diff --git a/LeanPool.lean b/LeanPool.lean index 56b67b59e0..c2ee331250 100644 --- a/LeanPool.lean +++ b/LeanPool.lean @@ -6031,6 +6031,60 @@ public import LeanPool.MooreBound.PrimeNumberTheoremAnd.Wiener public import LeanPool.MoserLatticeColorings public import LeanPool.MoserLatticeColorings.Basic public import LeanPool.MoserLatticeColorings.Ring +public import LeanPool.MovingSofa +public import LeanPool.MovingSofa.Development.Geometry.Applications.Development001 +public import LeanPool.MovingSofa.Development.Geometry.Applications.Development002 +public import LeanPool.MovingSofa.Development.Geometry.Applications.Development003 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development001 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development002 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development003 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development004 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development005 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development006 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development007 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development008 +public import LeanPool.MovingSofa.Development.IntervalArithmetic.Foundations.Development001 +public import LeanPool.MovingSofa.Development.IntervalArithmetic.Foundations.Development002 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle001 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle002 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle003 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle004 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle006 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle007 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle008 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle001 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle002 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle003 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle004 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle005 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle006 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle007 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle008 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle009 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle010 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle011 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle012 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle013 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle014 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle015 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle016 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle017 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle018 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle019 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle020 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle021 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle022 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle023 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle024 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle025 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle026 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle027 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle028 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle029 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle030 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle031 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle032 public import LeanPool.MulticolorTriangleRamsey public import LeanPool.NagataFactoriality public import LeanPool.NagataFactoriality.NagataFactoriality diff --git a/LeanPool/MovingSofa.lean b/LeanPool/MovingSofa.lean new file mode 100644 index 0000000000..e084957c6b --- /dev/null +++ b/LeanPool/MovingSofa.lean @@ -0,0 +1,71 @@ +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ + +module + +public import LeanPool.MovingSofa.Development.Geometry.Applications.Development003 + +/-! +# Optimality of Gerver's sofa + +Source: arxiv:2411.19826, url:https://github.com/deancureton/MovingSofa/tree/4d5569131940815f47a9ccf3e90a4c5043c56127 +Authors: Dean Cureton, Dawid Trela, Rado Kirov, Kirill Alkhimov +Status: verified +Main declarations: `MovingSofa.sofaConstant_eq_volume_gerversSofa` +Tags: convex-geometry, moving-sofa-problem, geometric-optimization, interval-arithmetic +MSC: 52A40, 52A10, 49Q10 +-/ + +/-! +## Imported sources and provenance + +The main formalization is from Dean Cureton's `deancureton/MovingSofa` at +`4d5569131940815f47a9ccf3e90a4c5043c56127` (Apache-2.0). The proofs were produced using +Codex and Claude Code under Cureton's direction. Completion was announced on 20 September 2026. + +The coherent dependency closure also contains: + +* Dawid Trela's `dawidmtrela-dotcom/GerverSofaLean`, release v1.1.0 + (MIT; notice below), including its Part F bridge. +* `alerad/leancert` at `571a228555ae38742448854be81d7b59d994a8e3` (Apache-2.0): + pure interval arithmetic and its soundness proofs, without the metaprogramming front end. +* Rado Kirov's `rkirov/jordan_pick` at + `b3c9b7cf7358bf81a077d78ad67e6e8247869ddd` (Apache-2.0): Jordan separation and Brouwer. +* The Tau Ceti contributors: `TauCetiProject/TauCeti` at + `c52a81811e4626d2e9769fe9b0c701168c211332` (Apache-2.0): + variation, filled hulls, and supporting topology. +* The Formal Conjectures Authors: `google-deepmind/formal-conjectures` at + `ddfbaf90f4482030d88aae5233fe933874296a23` + (Apache-2.0): the moving-sofa definitions, with its open parameter theorem proved here. + +Jonathan Ho's isoperimetric infrastructure is reused from `LeanPool.Isoperimetric`. +-/ + +/- +The GerverSofa dependency retains its original MIT licence: + +MIT License + +Copyright (c) 2026 Dawid Trela + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +-/ diff --git a/LeanPool/MovingSofa/Development/Geometry/Applications/Development001.lean b/LeanPool/MovingSofa/Development/Geometry/Applications/Development001.lean new file mode 100644 index 0000000000..6d691edd82 --- /dev/null +++ b/LeanPool/MovingSofa/Development/Geometry/Applications/Development001.lean @@ -0,0 +1,10227 @@ +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +module + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development006 + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development007 + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development005 + + + + + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development004 + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development002 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development001 + + + + +/-! +# Moving sofa: related mathematical developments + +* `Area.Applications.Development001`. +* `Area.Applications.Development002`. +* `Area.Applications.Development003`. +* `Cap.Applications.Development001`. +* `Gerver.Applications.Development001`. +* `Gerver.Applications.Development002`. +* `Polygon.Applications.Development001`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Area.Middle`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! # The middle part of the niche + +`capMiddle_area_lower_bound` bounds the area of the part of a special cap's niche outside both +distinguished tail half-planes from below by the three signed areas of the middle fan: the two +wedge triangles and the inner-corner arc. + +The geometry is that of the paper's proof. Writing `φ` for the right distinguished angle, +`l = π/2 - φ` for the left one and `k = tan φ`, the two distinguished tail support lines are +`X = w - k y` and `X = z + k y`, where `w` and `z` are the horizontal coordinates of the two fan +points `W` and `Z`; the inner corner runs from the first line to the second through the open cone +between them, with strictly decreasing horizontal coordinate. Adding a base line `y = -h` strictly +below the arc turns the arc together with the two side segments into a strictly monotone +three-piece roof over that base line, and the region under the roof exceeds the base trapezoid by +the asserted three signed areas. Every point of the open region above the trapezoid lies in the +niche, because the roof point vertically above it exhibits a time whose open inward quadrant +contains it. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The middle area bound obtained from cap area, endpoint segments and the corner-path +integral. -/ +def upperBoundMiddle (K : SpecialCapSpace) : ℝ := + ClassicalResults.area (K.val.val : Set Point) + + segmentArea (distinguishedCapSides K.val).2.fanPoint + (distinguishedCapSides K.val).2.corner - + curveAreaFunctional (capMiddleBV K) + + segmentArea (distinguishedCapSides K.val).1.corner + (distinguishedCapSides K.val).1.fanPoint + +/-! ### Arithmetic of a side segment of the middle cone + +The two side segments of the four-piece loop run along the two tail support lines, so their +displacements `(Δ₀, Δ₁)` satisfy `Δ₀ cos = Δ₁ sin` for the relevant frame angle. The two lemmas +below are the resulting sign computations for a point `δ` below such a segment. -/ + +/-- On a segment parallel to the frame tangent, the frame's normal coordinate of a point below the +segment is the vertical drop only. -/ +private theorem segment_cross_eq {cs sn Δ0 Δ1 u δ : ℝ} (hΔ : Δ0 * cs = Δ1 * sn) : + u * Δ0 * cs + (-(u * Δ1) - δ) * sn = -(δ * sn) := by linear_combination u * hΔ + +/-- On a segment parallel to the frame tangent, the frame's tangent coordinate of a point below the +segment is negative. -/ +private theorem segment_normal_neg {cs sn Δ0 Δ1 u δ : ℝ} (hcs : 0 < cs) + (hpy : sn ^ 2 + cs ^ 2 = 1) (hΔ : Δ0 * cs = Δ1 * sn) (hΔ1 : 0 < Δ1) + (hu0 : 0 ≤ u) (hδ : 0 < δ) : + -(u * Δ0) * sn + (-(u * Δ1) - δ) * cs < 0 := by + have key : (-(u * Δ0) * sn + (-(u * Δ1) - δ) * cs) * cs = -(u * Δ1) - δ * cs ^ 2 := by + linear_combination (-(u * sn)) * hΔ + (-(u * Δ1)) * hpy + have hneg : (-(u * Δ0) * sn + (-(u * Δ1) - δ) * cs) * cs < 0 * cs := by + rw [key, zero_mul] + have h1 : 0 ≤ u * Δ1 := mul_nonneg hu0 hΔ1.le + have h2 : 0 < δ * cs ^ 2 := mul_pos hδ (pow_pos hcs 2) + linarith + exact lt_of_mul_lt_mul_right hneg hcs.le + +/-! ### The cone between the two distinguished tail support lines -/ + +/-- Both distinguished fan points lie on the horizontal axis, at the horizontal intercepts of the +two distinguished tail support lines. -/ +private theorem distinguishedCapSides_fanPoint_coordinates (K : SpecialCapSpace) : + (distinguishedCapSides K.val).1.fanPoint 0 = + (supportValue (K.val.val : Set Point) (paperGerverConstants.2.1 : Real.Angle) - 1) / + Real.cos paperGerverConstants.2.1 ∧ + (distinguishedCapSides K.val).1.fanPoint 1 = 0 ∧ + (distinguishedCapSides K.val).2.fanPoint 0 = + -((supportValue (K.val.val : Set Point) + ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos paperGerverConstants.2.1) ∧ + (distinguishedCapSides K.val).2.fanPoint 1 = 0 := by + obtain ⟨-, -, hsum⟩ := paperGerverConstants_snd_mem_Ioo + have hsinl : Real.sin paperGerverConstants.2.2 = Real.cos paperGerverConstants.2.1 := by + rw [show paperGerverConstants.2.2 = Real.pi / 2 - paperGerverConstants.2.1 by linarith, + Real.sin_pi_div_two_sub] + obtain ⟨hW0, hW1⟩ := wedgeEndpoints_fst_coords K.val paperGerverConstants.2.1 + obtain ⟨hZ0, hZ1⟩ := wedgeEndpoints_snd_coords K.val paperGerverConstants.2.2 + rw [hsinl] at hZ0 + rw [distinguishedCapSides_fst_fanPoint, distinguishedCapSides_snd_fanPoint] + exact ⟨hW0, hW1, hZ0, hZ1⟩ + +/-- The left fan point lies strictly to the left of the right one: otherwise the right fan point +would lie in the cap and in both tail half-planes, which the separation lemma forbids. -/ +private theorem distinguishedCapSides_fanPoint_fst_lt (K : SpecialCapSpace) : + (distinguishedCapSides K.val).2.fanPoint 0 < (distinguishedCapSides K.val).1.fanPoint 0 := by + obtain ⟨hrIoo, -, hsum⟩ := paperGerverConstants_snd_mem_Ioo + obtain ⟨hW0, hW1, hZ0, -⟩ := distinguishedCapSides_fanPoint_coordinates K + have hcosr : 0 < Real.cos paperGerverConstants.2.1 := + Real.cos_pos_of_mem_Ioo ⟨by linarith [Real.pi_pos, hrIoo.1], hrIoo.2⟩ + have hsinl : Real.sin paperGerverConstants.2.2 = Real.cos paperGerverConstants.2.1 := by + rw [show paperGerverConstants.2.2 = Real.pi / 2 - paperGerverConstants.2.1 by linarith, + Real.sin_pi_div_two_sub] + have hcosladd : Real.cos (paperGerverConstants.2.2 + Real.pi / 2) = + -Real.cos paperGerverConstants.2.1 := by + rw [Real.cos_add, Real.cos_pi_div_two, Real.sin_pi_div_two, hsinl] + ring + have hsr1 : supportValue (K.val.val : Set Point) + (paperGerverConstants.2.1 : Real.Angle) - 1 = + (distinguishedCapSides K.val).1.fanPoint 0 * Real.cos paperGerverConstants.2.1 := by + rw [hW0] + field_simp + have hsl1 : supportValue (K.val.val : Set Point) + ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle) - 1 = + -((distinguishedCapSides K.val).2.fanPoint 0 * Real.cos paperGerverConstants.2.1) := by + rw [hZ0] + field_simp + by_contra hcon + rw [not_lt] at hcon + have hmul := mul_le_mul_of_nonneg_right hcon hcosr.le + have h1 : (distinguishedCapSides K.val).1.fanPoint ∈ + (distinguishedCapSides K.val).1.upperHalfPlane := by + change _ ≤ inner ℝ _ (normalVector (paperGerverConstants.2.1 : Real.Angle)) + rw [inner_normalVector_real, hW1, hsr1] + simp + have h2 : (distinguishedCapSides K.val).1.fanPoint ∈ + (distinguishedCapSides K.val).2.upperHalfPlane := by + change _ ≤ inner ℝ _ + (normalVector ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle)) + rw [inner_normalVector_real, hW1, hcosladd, hsl1] + linarith only [hmul] + exact Set.eq_empty_iff_forall_notMem.mp (cap_and_niche_tail_separation K).1 _ + ⟨⟨(specialCap_wedgeEndpoints_in_bottomEdge K).1.1.1, h1⟩, h2⟩ + +/-- The inner corner traverses the closed cone between the two distinguished tail support lines +`X = w - k y` and `X = z + k y` on the middle interval, with its two endpoints on the two lines. +Here `k = tan φ` is encoded by `hk`, and `w`, `z` by the two intercept equations. -/ +private theorem capInnerCorner_mem_cone (K : SpecialCapSpace) {k w z : ℝ} + (hk : k * Real.cos paperGerverConstants.2.1 = Real.sin paperGerverConstants.2.1) + (hw : supportValue (K.val.val : Set Point) (paperGerverConstants.2.1 : Real.Angle) - 1 = + w * Real.cos paperGerverConstants.2.1) + (hz : supportValue (K.val.val : Set Point) + ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle) - 1 = + -(z * Real.cos paperGerverConstants.2.1)) : + capInnerCorner K.val paperGerverConstants.2.1 0 + + k * capInnerCorner K.val paperGerverConstants.2.1 1 = w ∧ + capInnerCorner K.val paperGerverConstants.2.2 0 - + k * capInnerCorner K.val paperGerverConstants.2.2 1 = z ∧ + (∀ t ∈ Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2, + capInnerCorner K.val t 0 + k * capInnerCorner K.val t 1 ≤ w) ∧ + (∀ t ∈ Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2, + z ≤ capInnerCorner K.val t 0 - k * capInnerCorner K.val t 1) := by + obtain ⟨hrIoo, hlIoo, hsum⟩ := paperGerverConstants_snd_mem_Ioo + set r : ℝ := paperGerverConstants.2.1 with hrdef + set l : ℝ := paperGerverConstants.2.2 with hldef + set xc : ℝ → Point := capInnerCorner K.val with hxcdef + have hcosr : 0 < Real.cos r := + Real.cos_pos_of_mem_Ioo ⟨by linarith [Real.pi_pos, hrIoo.1], hrIoo.2⟩ + have hsinl : Real.sin l = Real.cos r := by + rw [show l = Real.pi / 2 - r by linarith, Real.sin_pi_div_two_sub] + have hcosl : Real.cos l = Real.sin r := by + rw [show l = Real.pi / 2 - r by linarith, Real.cos_pi_div_two_sub] + have hcosladd : Real.cos (l + Real.pi / 2) = -Real.cos r := by + rw [Real.cos_add, Real.cos_pi_div_two, Real.sin_pi_div_two, hsinl] + ring + have hsinladd : Real.sin (l + Real.pi / 2) = Real.sin r := by + rw [Real.sin_add, Real.cos_pi_div_two, Real.sin_pi_div_two, hcosl] + ring + -- the right endpoint is on the right line, the left endpoint on the left line + have hXR : xc r 0 + k * xc r 1 = w := by + have h := inner_capInnerCorner_normalVector K.val r + rw [inner_normalVector_real, hw] at h + refine mul_right_cancel₀ (ne_of_gt hcosr) ?_ + linear_combination h + xc r 1 * hk + have hXL : xc l 0 - k * xc l 1 = z := by + have h := inner_capInnerCorner_tangentVector K.val l + rw [inner_tangentVector_real, hsinl, hcosl, hz] at h + refine mul_right_cancel₀ (ne_of_gt hcosr) ?_ + linear_combination -h - xc l 1 * hk + -- strictly inside the cone away from the two endpoints, by the monotonicity intervals + obtain ⟨hmonoR, hmonoL, -, -⟩ := cap_tail_monotonicity_intervals K + have hnotR : ∀ t ∈ Set.Ioc r (Real.pi / 2), xc t 0 + k * xc t 1 < w := by + intro t ht + have h : ¬ (supportValue (K.val.val : Set Point) (r : Real.Angle) - 1 ≤ + inner ℝ (xc t) (normalVector (r : Real.Angle))) := + fun hc ↦ (hmonoR t ht).1 hc + rw [not_le, inner_normalVector_real, hw] at h + refine lt_of_mul_lt_mul_right ?_ hcosr.le + have he : (xc t 0 + k * xc t 1) * Real.cos r = + xc t 0 * Real.cos r + xc t 1 * Real.sin r := by + linear_combination xc t 1 * hk + rw [he] + exact h + have hnotL : ∀ t ∈ Set.Ico (0 : ℝ) l, z < xc t 0 - k * xc t 1 := by + intro t ht + have h : ¬ (supportValue (K.val.val : Set Point) ((l + Real.pi / 2 : ℝ) : Real.Angle) - 1 ≤ + inner ℝ (xc t) (normalVector ((l + Real.pi / 2 : ℝ) : Real.Angle))) := + fun hc ↦ (hmonoL t ht).1 hc + rw [not_le, inner_normalVector_real, hcosladd, hsinladd, hz] at h + refine lt_of_mul_lt_mul_right ?_ hcosr.le + have he2 : (xc t 0 - k * xc t 1) * Real.cos r = + xc t 0 * Real.cos r - xc t 1 * Real.sin r := by + linear_combination -(xc t 1) * hk + rw [he2] + linarith only [h] + refine ⟨hXR, hXL, fun t ht ↦ ?_, fun t ht ↦ ?_⟩ + · rcases eq_or_lt_of_le ht.1 with heq | hlt + · rw [← heq, hXR] + · exact (hnotR t ⟨hlt, le_trans ht.2 hlIoo.2.le⟩).le + · rcases eq_or_lt_of_le ht.2 with heq | hlt + · rw [heq, hXL] + · exact (hnotL t ⟨le_trans hrIoo.1.le ht.1, hlt⟩).le + +/-- A horizontal line strictly below the inner corner on a compact subinterval of `[0, π/2]`. -/ +private theorem exists_lt_capInnerCorner_snd (K : SpecialCapSpace) {a b : ℝ} (hab : a ≤ b) + (ha : 0 ≤ a) (hb : b ≤ Real.pi / 2) : + ∃ h : ℝ, 0 < h ∧ ∀ t ∈ Set.Icc a b, -h < capInnerCorner K.val t 1 := by + have hsub : Set.Icc a b ⊆ Set.Icc (0 : ℝ) (Real.pi / 2) := fun t ht ↦ + ⟨le_trans ha ht.1, le_trans ht.2 hb⟩ + have hcont : ContinuousOn (fun t ↦ capInnerCorner K.val t 1) (Set.Icc a b) := + (PiLp.continuous_apply 2 _ 1).comp_continuousOn (K.property.1.2.1.continuousOn.mono hsub) + obtain ⟨t0, -, hmin⟩ := isCompact_Icc.exists_isMinOn (⟨a, le_rfl, hab⟩ : (Set.Icc a b).Nonempty) + hcont + refine ⟨|capInnerCorner K.val t0 1| + 1, by positivity, fun t ht ↦ ?_⟩ + have hle : capInnerCorner K.val t0 1 ≤ capInnerCorner K.val t 1 := hmin ht + linarith only [hle, neg_abs_le (capInnerCorner K.val t0 1)] + +/-- The area of the trapezoid cut from the strip `-h ≤ y ≤ 0` by two lines of opposite slope +meeting the horizontal axis at `z` and `w`. -/ +private theorem volume_slantedTrapezoid {z w k h : ℝ} (hk : 0 ≤ k) (hzw : z ≤ w) (hh : 0 ≤ h) : + MeasureTheory.volume {p : Point | p 1 ∈ Set.Icc (-h) 0 ∧ + p 0 ∈ Set.Icc (z + k * p 1) (w - k * p 1)} = + ENNReal.ofReal (h * (w - z) + k * h ^ 2) := by + have hkh : 0 ≤ k * h := mul_nonneg hk hh + rw [show {p : Point | p 1 ∈ Set.Icc (-h) 0 ∧ + p 0 ∈ Set.Icc (z + k * p 1) (w - k * p 1)} = + {p : Point | p 1 ∈ Set.Icc (-h) 0 ∧ + p 0 ∈ Set.Icc (z + k * p 1) (w + -k * p 1)} from by + refine Set.ext fun p ↦ ?_ + simp only [Set.mem_ofPred_eq, show w + -k * p 1 = w - k * p 1 from by ring], + EuclideanSpace.volume_horizontalTrapezoid_band (by linarith) (by linarith) (by linarith)] + congr 1 + ring + +/-! ### The niche contains the open region above the base trapezoid -/ + +/-- Every point strictly below the three-piece roof made of the inner-corner arc and the two side +segments, and outside the base trapezoid, lies in the niche outside both distinguished tail +half-planes. The roof point vertically above such a point exhibits a time of the closed middle +interval whose open inward quadrant contains it, and the strict cone bounds plus the point's +positive height put it in the fan and outside the two half-planes. -/ +private theorem region_under_roof_diff_subset (K : SpecialCapSpace) {k w z h : ℝ} (hk0 : 0 < k) + (hk : k * Real.cos paperGerverConstants.2.1 = Real.sin paperGerverConstants.2.1) + (hw : supportValue (K.val.val : Set Point) (paperGerverConstants.2.1 : Real.Angle) - 1 = + w * Real.cos paperGerverConstants.2.1) + (hz : supportValue (K.val.val : Set Point) + ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle) - 1 = + -(z * Real.cos paperGerverConstants.2.1)) + (P Q : Point) (γ : ContinuousBVPaths 0 3) (hP1 : P 1 = -h) (hQ1 : Q 1 = -h) + (hγ0 : ∀ s : Set.Icc (0 : ℝ) 3, (s : ℝ) ≤ 1 → + γ.val s = P + (s : ℝ) • (capInnerCorner K.val paperGerverConstants.2.2 - P)) + (hγ1 : ∀ s : Set.Icc (0 : ℝ) 3, 1 ≤ (s : ℝ) → (s : ℝ) ≤ 2 → + γ.val s = capInnerCorner K.val (paperGerverConstants.2.2 + + ((s : ℝ) - 1) * (paperGerverConstants.2.1 - paperGerverConstants.2.2))) + (hγ2 : ∀ s : Set.Icc (0 : ℝ) 3, 2 ≤ (s : ℝ) → + γ.val s = capInnerCorner K.val paperGerverConstants.2.1 + + ((s : ℝ) - 2) • (Q - capInnerCorner K.val paperGerverConstants.2.1)) + (hconeR : ∀ s : Set.Icc (0 : ℝ) 3, γ.val s 0 + k * γ.val s 1 ≤ w) + (hconeL : ∀ s : Set.Icc (0 : ℝ) 3, z ≤ γ.val s 0 - k * γ.val s 1) + (hPpar : (capInnerCorner K.val paperGerverConstants.2.2 0 - P 0) * + Real.cos paperGerverConstants.2.1 = + (capInnerCorner K.val paperGerverConstants.2.2 1 - P 1) * + Real.sin paperGerverConstants.2.1) + (hQpar : (Q 0 - capInnerCorner K.val paperGerverConstants.2.1 0) * + Real.cos paperGerverConstants.2.1 = + (capInnerCorner K.val paperGerverConstants.2.1 1 - Q 1) * + Real.sin paperGerverConstants.2.1) : + {p : Point | ∃ s : Set.Icc (0 : ℝ) 3, p 0 = γ.val s 0 ∧ -h < p 1 ∧ p 1 < γ.val s 1} \ + {p : Point | p 1 ∈ Set.Icc (-h) 0 ∧ p 0 ∈ Set.Icc (z + k * p 1) (w - k * p 1)} ⊆ + (capNiche K.val \ (distinguishedCapSides K.val).1.upperHalfPlane) \ + (distinguishedCapSides K.val).2.upperHalfPlane := by + obtain ⟨hrIoo, hlIoo, hsum⟩ := paperGerverConstants_snd_mem_Ioo + set r : ℝ := paperGerverConstants.2.1 with hrdef + set l : ℝ := paperGerverConstants.2.2 with hldef + set xc : ℝ → Point := capInnerCorner K.val with hxcdef + have hrl : r < l := paperGerverConstants_snd_fst_lt_snd_snd + have hcosr : 0 < Real.cos r := + Real.cos_pos_of_mem_Ioo ⟨by linarith [Real.pi_pos, hrIoo.1], hrIoo.2⟩ + have hsinr : 0 < Real.sin r := + Real.sin_pos_of_pos_of_lt_pi hrIoo.1 (by linarith [Real.pi_pos, hrIoo.2]) + have hpy : Real.sin r ^ 2 + Real.cos r ^ 2 = 1 := Real.sin_sq_add_cos_sq r + have hsinl : Real.sin l = Real.cos r := by + rw [show l = Real.pi / 2 - r by linarith, Real.sin_pi_div_two_sub] + have hcosl : Real.cos l = Real.sin r := by + rw [show l = Real.pi / 2 - r by linarith, Real.cos_pi_div_two_sub] + have hcosladd : Real.cos (l + Real.pi / 2) = -Real.cos r := by + rw [Real.cos_add, Real.cos_pi_div_two, Real.sin_pi_div_two, hsinl] + ring + have hsinladd : Real.sin (l + Real.pi / 2) = Real.sin r := by + rw [Real.sin_add, Real.cos_pi_div_two, Real.sin_pi_div_two, hcosl] + ring + have hcoord : ∀ (p q : Point) (c : ℝ) (i : Fin 2), + (p + c • (q - p)) i = p i + c * (q i - p i) := fun _ _ _ _ ↦ by simp + rintro p ⟨hpP, hpR⟩ + obtain ⟨s, hs0, hs1, hs2⟩ := hpP + obtain ⟨δ, hδ0, hδeq⟩ : ∃ δ : ℝ, 0 < δ ∧ p 1 = γ.val s 1 - δ := + ⟨γ.val s 1 - p 1, by linarith only [hs2], by ring⟩ + have hkp : k * p 1 < k * γ.val s 1 := mul_lt_mul_of_pos_left hs2 hk0 + -- the point is strictly inside the open cone + have hstrictR : p 0 + k * p 1 < w := by + have h := hconeR s + rw [hs0] + linarith only [h, hkp] + have hstrictL : z < p 0 - k * p 1 := by + have h := hconeL s + rw [hs0] + linarith only [h, hkp] + -- being outside the trapezoid, its height is positive + have hp1pos : 0 < p 1 := by + by_contra hcon + rw [not_lt] at hcon + exact hpR ⟨⟨hs1.le, hcon⟩, ⟨by linarith only [hstrictL], by linarith only [hstrictR]⟩⟩ + have hnotHR : p ∉ (distinguishedCapSides K.val).1.upperHalfPlane := by + intro hc + replace hc : supportValue (K.val.val : Set Point) (r : Real.Angle) - 1 ≤ + inner ℝ p (normalVector (r : Real.Angle)) := hc + rw [inner_normalVector_real, hw] at hc + have hm : (p 0 + k * p 1) * Real.cos r < w * Real.cos r := + mul_lt_mul_of_pos_right hstrictR hcosr + have he : (p 0 + k * p 1) * Real.cos r = p 0 * Real.cos r + p 1 * Real.sin r := by + linear_combination p 1 * hk + rw [he] at hm + linarith only [hc, hm] + have hnotHL : p ∉ (distinguishedCapSides K.val).2.upperHalfPlane := by + intro hc + replace hc : supportValue (K.val.val : Set Point) ((l + Real.pi / 2 : ℝ) : Real.Angle) - 1 ≤ + inner ℝ p (normalVector ((l + Real.pi / 2 : ℝ) : Real.Angle)) := hc + rw [inner_normalVector_real, hcosladd, hsinladd, hz] at hc + have hm : z * Real.cos r < (p 0 - k * p 1) * Real.cos r := + mul_lt_mul_of_pos_right hstrictL hcosr + have he : (p 0 - k * p 1) * Real.cos r = p 0 * Real.cos r - p 1 * Real.sin r := by + linear_combination -(p 1) * hk + rw [he] at hm + linarith only [hc, hm] + have hfan : p ∈ capFan (Real.pi / 2) := by + refine ⟨?_, ?_⟩ <;> + · change (0 : ℝ) ≤ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + rw [inner_normalVector_pi_div_two] + exact hp1pos.le + -- the roof point above `p` provides the time whose inward quadrant contains `p` + have hquad : ∃ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + p ∈ innerQuadrant (K.val.val : Set Point) t := by + rcases le_or_gt (s : ℝ) 1 with hc | hc + · -- the left side segment, with witness time `l` + have hγs1 : γ.val s 1 = P 1 + (s : ℝ) * (xc l 1 - P 1) := by + rw [hγ0 s hc, hcoord] + have hΔ1 : 0 < xc l 1 - P 1 := by + nlinarith only [hγs1, hs1, hs2, hP1, s.property.1] + have hΔ : (xc l 0 - P 0) * Real.sin l = (xc l 1 - P 1) * Real.cos l := by + rw [hsinl, hcosl] + exact hPpar + have e0 : p 0 - xc l 0 = -((1 - (s : ℝ)) * (xc l 0 - P 0)) := by + rw [hs0, hγ0 s hc, hcoord] + ring + have e1 : p 1 - xc l 1 = -((1 - (s : ℝ)) * (xc l 1 - P 1)) - δ := by + rw [hδeq, hγ0 s hc, hcoord] + ring + refine ⟨l, ⟨hlIoo.1, hlIoo.2⟩, mem_innerQuadrant_of_frame_coordinates_neg K.val l p ?_ ?_⟩ + · rw [e0, e1] + have hnn := segment_normal_neg (cs := Real.sin l) (sn := Real.cos l) + (u := 1 - (s : ℝ)) (δ := δ) (by rw [hsinl]; exact hcosr) + (by rw [hsinl, hcosl]; linarith only [hpy]) hΔ hΔ1 (by linarith only [hc]) hδ0 + linarith only [hnn] + · rw [e0, e1] + have hcr := segment_cross_eq (cs := Real.sin l) (sn := Real.cos l) + (u := 1 - (s : ℝ)) (δ := δ) hΔ + have hps : 0 < δ * Real.cos l := by + rw [hcosl] + exact mul_pos hδ0 hsinr + linarith only [hcr, hps] + · rcases le_or_gt (s : ℝ) 2 with hc2 | hc2 + · -- the middle arc, with witness time in `[r, l]` + have htI := mem_Icc_roofArcTime hrl hc.le hc2 + set t : ℝ := l + ((s : ℝ) - 1) * (r - l) with htdef + have hgs : γ.val s = xc t := hγ1 s hc.le hc2 + have e0 : p 0 - xc t 0 = 0 := by rw [hs0, hgs]; ring + have e1 : p 1 - xc t 1 = -δ := by rw [hδeq, hgs]; ring + have ht0 : 0 < t := lt_of_lt_of_le hrIoo.1 htI.1 + have htpi : t < Real.pi / 2 := lt_of_le_of_lt htI.2 hlIoo.2 + have hsint : 0 < Real.sin t := + Real.sin_pos_of_pos_of_lt_pi ht0 (by linarith only [Real.pi_pos, htpi]) + have hcost : 0 < Real.cos t := + Real.cos_pos_of_mem_Ioo ⟨by linarith only [Real.pi_pos, ht0], htpi⟩ + refine ⟨t, ⟨ht0, htpi⟩, mem_innerQuadrant_of_frame_coordinates_neg K.val t p ?_ ?_⟩ + · rw [e0, e1] + have hps := mul_pos hδ0 hsint + linarith only [hps] + · rw [e0, e1] + have hps := mul_pos hδ0 hcost + linarith only [hps] + · -- the right side segment, with witness time `r` + have hγs1 : γ.val s 1 = xc r 1 + ((s : ℝ) - 2) * (Q 1 - xc r 1) := by + rw [hγ2 s hc2.le, hcoord] + have hΔ1 : 0 < xc r 1 - Q 1 := by + nlinarith only [hγs1, hs1, hs2, hQ1, hc2, s.property.2] + have e0 : p 0 - xc r 0 = ((s : ℝ) - 2) * (Q 0 - xc r 0) := by + rw [hs0, hγ2 s hc2.le, hcoord] + ring + have e1 : p 1 - xc r 1 = -(((s : ℝ) - 2) * (xc r 1 - Q 1)) - δ := by + rw [hδeq, hγ2 s hc2.le, hcoord] + ring + refine ⟨r, ⟨hrIoo.1, hrIoo.2⟩, + mem_innerQuadrant_of_frame_coordinates_neg K.val r p ?_ ?_⟩ + · rw [e0, e1] + have hcr := segment_cross_eq (cs := Real.cos r) (sn := Real.sin r) + (u := (s : ℝ) - 2) (δ := δ) hQpar + have hps := mul_pos hδ0 hsinr + linarith only [hcr, hps] + · rw [e0, e1] + have hnn := segment_normal_neg (cs := Real.cos r) (sn := Real.sin r) + (u := (s : ℝ) - 2) (δ := δ) hcosr hpy hQpar hΔ1 (by linarith only [hc2]) hδ0 + linarith only [hnn] + obtain ⟨t, htmem, hq⟩ := hquad + exact ⟨⟨⟨hfan, Set.mem_biUnion htmem hq⟩, hnotHR⟩, hnotHL⟩ + +/-! ### The lower estimate -/ + +theorem capMiddle_area_lower_bound (K : SpecialCapSpace) : + segmentArea (distinguishedCapSides K.val).1.fanPoint + (distinguishedCapSides K.val).1.corner + + curveAreaFunctional (capMiddleBV K) + + segmentArea (distinguishedCapSides K.val).2.corner + (distinguishedCapSides K.val).2.fanPoint ≤ + ClassicalResults.area + ((capNiche K.val \ (distinguishedCapSides K.val).1.upperHalfPlane) \ + (distinguishedCapSides K.val).2.upperHalfPlane) := by + obtain ⟨hW0, hW1, hZ0, hZ1⟩ := distinguishedCapSides_fanPoint_coordinates K + obtain ⟨hrIoo, hlIoo, hsum⟩ := paperGerverConstants_snd_mem_Ioo + set r : ℝ := paperGerverConstants.2.1 with hrdef + set l : ℝ := paperGerverConstants.2.2 with hldef + have hrl : r < l := paperGerverConstants_snd_fst_lt_snd_snd + have hcosr : 0 < Real.cos r := + Real.cos_pos_of_mem_Ioo ⟨by linarith [Real.pi_pos, hrIoo.1], hrIoo.2⟩ + have hsinr : 0 < Real.sin r := + Real.sin_pos_of_pos_of_lt_pi hrIoo.1 (by linarith [Real.pi_pos, hrIoo.2]) + -- the cone's slope `k = tan φ` and the horizontal intercepts `w`, `z` of its two lines + set kk : ℝ := Real.sin r / Real.cos r with hkkdef + have hkk0 : 0 < kk := div_pos hsinr hcosr + have hkcos : kk * Real.cos r = Real.sin r := by + rw [hkkdef] + field_simp + set xc : ℝ → Point := capInnerCorner K.val with hxcdef + set W : Point := (distinguishedCapSides K.val).1.fanPoint with hWdef + set Z : Point := (distinguishedCapSides K.val).2.fanPoint with hZdef + have hsr1 : supportValue (K.val.val : Set Point) (r : Real.Angle) - 1 = W 0 * Real.cos r := by + rw [hW0, div_mul_cancel₀ _ (ne_of_gt hcosr)] + have hsl1 : supportValue (K.val.val : Set Point) ((l + Real.pi / 2 : ℝ) : Real.Angle) - 1 = + -(Z 0 * Real.cos r) := by + rw [hZ0, neg_mul, div_mul_cancel₀ _ (ne_of_gt hcosr), neg_neg] + have hzw : Z 0 < W 0 := distinguishedCapSides_fanPoint_fst_lt K + -- the arc runs through the closed cone from one boundary line to the other + obtain ⟨hXR, hXL, harcR, harcL⟩ := capInnerCorner_mem_cone K hkcos hsr1 hsl1 + -- a base line `y = -hgt` strictly below the arc, and the two base corners on it + obtain ⟨hgt, hgt0, hgtlow⟩ := exists_lt_capInnerCorner_snd K hrl.le hrIoo.1.le hlIoo.2.le + have hkh : (0 : ℝ) ≤ kk * hgt := mul_nonneg hkk0.le hgt0.le + set Bp : Point := !₂[W 0 + kk * hgt, -hgt] with hBpdef + set Dp : Point := !₂[Z 0 - kk * hgt, -hgt] with hDpdef + have hBp0 : Bp 0 = W 0 + kk * hgt := rfl + have hBp1 : Bp 1 = -hgt := rfl + have hDp0 : Dp 0 = Z 0 - kk * hgt := rfl + have hDp1 : Dp 1 = -hgt := rfl + -- the three-piece roof `Dp → x(l) → arc → x(r) → Bp` + obtain ⟨γ, hγ0, hγ1, hγ2, hγmono⟩ := + exists_strictMono_roof_of_strictAntiOn hrl (capMiddleBV K) xc Dp Bp (fun _ _ ↦ rfl) + (strictAntiOn_capInnerCorner_fst K hrIoo.1.le hlIoo.2.le) + (by + rw [hDp0] + have h : 0 < kk * (xc l 1 + hgt) := + mul_pos hkk0 (by linarith only [hgtlow l ⟨hrl.le, le_rfl⟩]) + linarith only [hXL, h]) + (by + rw [hBp0] + have h : 0 < kk * (xc r 1 + hgt) := + mul_pos hkk0 (by linarith only [hgtlow r ⟨le_rfl, hrl.le⟩]) + linarith only [hXR, h]) + -- the roof stays in the closed cone above the base line + have hγconeR : ∀ s : Set.Icc (0 : ℝ) 3, γ.val s 0 + kk * γ.val s 1 ≤ W 0 := fun s ↦ by + have h := le_of_threePieceRoof (α := 1) (β := kk) (cc := W 0) hrl xc Dp Bp γ hγ0 hγ1 hγ2 + (by rw [hDp0, hDp1]; linarith only [hzw, hkh]) + (by rw [hBp0, hBp1]; linarith only []) (fun t ht ↦ by linarith only [harcR t ht]) s + linarith only [h] + have hγconeL : ∀ s : Set.Icc (0 : ℝ) 3, Z 0 ≤ γ.val s 0 - kk * γ.val s 1 := fun s ↦ by + have h := le_of_threePieceRoof (α := -1) (β := kk) (cc := -Z 0) hrl xc Dp Bp γ hγ0 hγ1 hγ2 + (by rw [hDp0, hDp1]; linarith only []) + (by rw [hBp0, hBp1]; linarith only [hzw, hkh]) + (fun t ht ↦ by linarith only [harcL t ht]) s + linarith only [h] + have hγlow : ∀ s : Set.Icc (0 : ℝ) 3, -hgt ≤ γ.val s 1 := fun s ↦ by + have h := le_of_threePieceRoof (α := 0) (β := -1) (cc := hgt) hrl xc Dp Bp γ hγ0 hγ1 hγ2 + (by rw [hDp1]; linarith only []) (by rw [hBp1]; linarith only []) + (fun t ht ↦ by linarith only [hgtlow t ht]) s + linarith only [h] + -- the closed region under the roof and the base trapezoid + set Pu : Set Point := + {p : Point | ∃ s : Set.Icc (0 : ℝ) 3, p 0 = γ.val s 0 ∧ -hgt ≤ p 1 ∧ p 1 ≤ γ.val s 1} + with hPudef + set Rg : Set Point := + {p : Point | p 1 ∈ Set.Icc (-hgt) 0 ∧ p 0 ∈ Set.Icc (Z 0 + kk * p 1) (W 0 - kk * p 1)} + with hRgdef + have hRgarea : MeasureTheory.volume Rg = + ENNReal.ofReal (hgt * (W 0 - Z 0) + kk * hgt ^ 2) := + volume_slantedTrapezoid hkk0.le hzw.le hgt0.le + have hRgreal : ClassicalResults.area Rg = hgt * (W 0 - Z 0) + kk * hgt ^ 2 := by + rw [ClassicalResults.area, hRgarea, ENNReal.toReal_ofReal] + positivity + -- the four-piece signed area of the loop bounding the region + have hPuarea : ClassicalResults.area Pu = + segmentArea Bp (xc r) + curveAreaFunctional (capMiddleBV K) + + segmentArea (xc l) Dp + segmentArea Dp Bp := + area_region_under_strictMono_roof hrl (capMiddleBV K) xc Dp Bp γ (fun _ _ ↦ rfl) hDp1 hBp1 + hγ0 hγ1 hγ2 hγmono hγlow + -- the strict region above the trapezoid lies in the niche outside both half-planes + have hincl := region_under_roof_diff_subset K hkk0 hkcos hsr1 hsl1 Dp Bp γ hDp1 hBp1 + hγ0 hγ1 hγ2 hγconeR hγconeL + (by + rw [hDp0, hDp1] + linear_combination Real.cos r * hXL + (xc l 1 + hgt) * hkcos) + (by + rw [hBp0, hBp1] + linear_combination (-Real.cos r) * hXR + (xc r 1 + hgt) * hkcos) + -- comparing the three areas + have hTgtfin : MeasureTheory.volume + ((capNiche K.val \ (distinguishedCapSides K.val).1.upperHalfPlane) \ + (distinguishedCapSides K.val).2.upperHalfPlane) ≠ ⊤ := + ne_top_of_le_ne_top (niche_uniform_bounds.1 _ K.val).2.2.1.ne + (MeasureTheory.measure_mono (Set.sdiff_subset.trans Set.sdiff_subset)) + have hbase : ∀ p : Point, (∃ s : Set.Icc (0 : ℝ) 3, p 0 = γ.val s 0) → p 1 = -hgt → p ∈ Rg := by + rintro p ⟨s, hs0⟩ hp1 + have h1 : γ.val ⟨0, le_rfl, by norm_num⟩ 0 ≤ γ.val s 0 := + hγmono.monotone (show (⟨0, le_rfl, by norm_num⟩ : Set.Icc (0 : ℝ) 3) ≤ s from s.property.1) + have h2 : γ.val s 0 ≤ γ.val ⟨3, by norm_num, le_rfl⟩ 0 := + hγmono.monotone (show s ≤ (⟨3, by norm_num, le_rfl⟩ : Set.Icc (0 : ℝ) 3) from s.property.2) + rw [show γ.val ⟨0, le_rfl, by norm_num⟩ = Dp from by rw [hγ0 _ (by norm_num)]; simp] at h1 + rw [show γ.val ⟨3, by norm_num, le_rfl⟩ = Bp from by rw [hγ2 _ (by norm_num)]; norm_num] at h2 + rw [hDp0] at h1 + rw [hBp0] at h2 + refine ⟨⟨le_of_eq hp1.symm, by rw [hp1]; linarith only [hgt0]⟩, ?_⟩ + rw [hp1, hs0] + exact ⟨by linarith only [h1], by linarith only [h2]⟩ + have hreal := area_region_under_roof_le γ hγmono Rg _ + (by rw [hRgarea]; exact ENNReal.ofReal_ne_top) hTgtfin hbase hincl + -- the signed-area cancellation along the base line + have harith : segmentArea W (xc r) + curveAreaFunctional (capMiddleBV K) + + segmentArea (xc l) Z = ClassicalResults.area Pu - ClassicalResults.area Rg := by + rw [hPuarea, hRgreal] + simp only [segmentArea, planeCrossProduct, hBp0, hBp1, hDp0, hDp1, hW1, hZ1] + linear_combination (-(hgt / 2)) * hXR + (hgt / 2) * hXL + rw [show (distinguishedCapSides K.val).1.corner = xc r from rfl, + show (distinguishedCapSides K.val).2.corner = xc l from rfl] + linarith [harith, hreal] + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Area.Mamikon.Properties`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Area / Mamikon / Properties +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- The tangential displacement from an exposed-edge endpoint to the path, extended by zero. -/ +def mamikonOffset (K : ConvexBody Point) {a b : ℝ} (z : ContinuousBVPaths a b) + (t : ℝ) : ℝ := + if ht : t ∈ Set.Icc a b then + inner ℝ (z.val ⟨t, ht⟩ - (edgeVertices K (t : Real.Angle)).1) + (tangentVector (t : Real.Angle)) + else 0 + +/-- Half the square integral of a bounded measurable family of integrands that is pointwise +convex-linear in its parameter is a quadratic and convex functional of that parameter. -/ +theorem sqIntegral_quadratic_convex {α : Type*} {Ω : Type*} [MeasurableSpace Ω] + (c : unitInterval → α → α → α) (μ : Measure Ω) [IsFiniteMeasure μ] (g : α → Ω → ℝ) + (hmeas : ∀ x, Measurable (g x)) (hbdd : ∀ x, ∃ C, ∀ ω, |g x ω| ≤ C) + (hlin : ∀ (s : unitInterval) (x y : α) (ω : Ω), + g (c s x y) ω = (1 - (s : ℝ)) * g x ω + (s : ℝ) * g y ω) + (f : α → ℝ) (hf : ∀ x, f x = (∫ ω, g x ω ^ 2 ∂μ) / 2) : + IsQuadraticFunctional c f ∧ IsConvexFunctional c f false := by + have hint : ∀ x y, Integrable (fun ω ↦ g x ω * g y ω) μ := by + intro x y + obtain ⟨Cx, hCx⟩ := hbdd x + obtain ⟨Cy, hCy⟩ := hbdd y + refine Integrable.mono' (integrable_const (|Cx| * |Cy|)) + ((hmeas x).mul (hmeas y)).aestronglyMeasurable (Filter.Eventually.of_forall fun ω ↦ ?_) + rw [Real.norm_eq_abs, abs_mul] + exact mul_le_mul ((hCx ω).trans (le_abs_self _)) ((hCy ω).trans (le_abs_self _)) + (abs_nonneg _) (abs_nonneg _) + set B : α → α → ℝ := fun x y ↦ (∫ ω, g x ω * g y ω ∂μ) / 2 + have hBval : ∀ x y, B x y = (∫ ω, g x ω * g y ω ∂μ) / 2 := fun _ _ ↦ rfl + have hBsymm : ∀ x y, B x y = B y x := fun x y ↦ by + rw [hBval, hBval, integral_congr_ae (Filter.Eventually.of_forall fun ω ↦ mul_comm _ _)] + have hBleft : ∀ (s : unitInterval) (x y z : α), + B (c s x y) z = realCombination s (B x z) (B y z) := by + intro s x y z + rw [hBval, hBval, hBval, realCombination, + integral_congr_ae (Filter.Eventually.of_forall fun ω ↦ + show g (c s x y) ω * g z ω = + (1 - (s : ℝ)) * (g x ω * g z ω) + (s : ℝ) * (g y ω * g z ω) by + rw [hlin]; ring), + integral_add ((hint x z).const_mul _) ((hint y z).const_mul _), + integral_const_mul, integral_const_mul] + ring + have hB : IsConvexBilinear c c realCombination B := by + refine ⟨fun x s y z ↦ ?_, fun z s x y ↦ hBleft s x y z⟩ + rw [hBsymm x (c s y z), hBleft s y z x, hBsymm y x, hBsymm z x] + have hfB : ∀ x, f x = B x x := fun x ↦ by + rw [hf x, hBval, integral_congr_ae (Filter.Eventually.of_forall fun ω ↦ pow_two (g x ω))] + refine ⟨⟨B, hB, hfB⟩, fun s x y ↦ ?_⟩ + change f (c s x y) ≤ realCombination s (f x) (f y) + have hnn : 0 ≤ B x x - B x y - B y x + B y y := by + have i1 : Integrable (fun ω ↦ g x ω * g x ω - g x ω * g y ω) μ := (hint x x).sub (hint x y) + have i2 : Integrable (fun ω ↦ g x ω * g x ω - g x ω * g y ω - g y ω * g x ω) μ := + i1.sub (hint y x) + have hsplit : (∫ ω, (g x ω * g x ω - g x ω * g y ω - g y ω * g x ω + g y ω * g y ω) ∂μ) = + (∫ ω, g x ω * g x ω ∂μ) - (∫ ω, g x ω * g y ω ∂μ) - (∫ ω, g y ω * g x ω ∂μ) + + ∫ ω, g y ω * g y ω ∂μ := by + rw [integral_add i2 (hint y y), integral_sub i1 (hint y x), + integral_sub (hint x x) (hint x y)] + have hpos : 0 ≤ ∫ ω, (g x ω * g x ω - g x ω * g y ω - g y ω * g x ω + g y ω * g y ω) ∂μ := + integral_nonneg fun ω ↦ by + change (0 : ℝ) ≤ g x ω * g x ω - g x ω * g y ω - g y ω * g x ω + g y ω * g y ω + nlinarith [sq_nonneg (g x ω - g y ω)] + rw [hsplit] at hpos + rw [hBval, hBval, hBval, hBval] + linarith + have hexp : B (c s x y) (c s x y) = (1 - (s : ℝ)) ^ 2 * B x x + + (s : ℝ) * (1 - (s : ℝ)) * (B x y + B y x) + (s : ℝ) ^ 2 * B y y := by + rw [hBleft s x y (c s x y), realCombination, hB.1 x s x y, hB.1 y s x y, realCombination, + realCombination] + ring + rw [hfB, hfB, hfB, realCombination, hexp] + nlinarith [mul_nonneg (mul_nonneg s.2.1 (sub_nonneg.mpr s.2.2)) hnn] + +/-- The Mamikon offset is convex-linear in the body along a convex-linear family of paths. -/ +theorem mamikonOffset_convexBodyCombination (s : unitInterval) (K L : ConvexBody Point) + {a b : ℝ} (zK zL : ContinuousBVPaths a b) (t : ℝ) : + mamikonOffset (convexBodyCombination s K L) (bvPathCombination s zK zL) t = + (1 - (s : ℝ)) * mamikonOffset K zK t + (s : ℝ) * mamikonOffset L zL t := by + by_cases ht : t ∈ Set.Icc a b + · have hz : (bvPathCombination s zK zL).val ⟨t, ht⟩ = + (1 - (s : ℝ)) • zK.val ⟨t, ht⟩ + (s : ℝ) • zL.val ⟨t, ht⟩ := rfl + have hv := ((convexBody_maps_linear s K L).2.1 (t : Real.Angle)).1 + simp only [mamikonOffset, dite_eq_left ht, hz, hv, inner_sub_left, inner_add_left, + real_inner_smul_left] + ring + · simp only [mamikonOffset, dite_eq_right ht] + ring + +private theorem mamikon_frame_identity (K : ConvexBody Point) {a b : ℝ} + (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) (z : ContinuousBVPaths a b) + (S : Set (Set.Icc a b)) (hSmeas : MeasurableSet S) + (hSa : ∀ t ∈ S, a < (t : ℝ)) + (W Z U T D : Fin 2 → RightContinuousIntervalBV a b) + (hW : ∀ i t, (W i).toFun t = (edgeVertices K ((t : ℝ) : Real.Angle)).1 i) + (hWm : ∀ i (E : Set (Set.Icc a b)), MeasurableSet E → + (∀ t ∈ E, a < (t : ℝ)) → + intervalStieltjesMeasure (W i) E = + ∫ u in (fun t : Set.Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, + tangentVector u i ∂surfaceAreaMeasure K) + (hZ : ∀ i t, (Z i).toFun t = z.val t i) + (hU : ∀ i t, (U i).toFun t = normalVector ((t : ℝ) : Real.Angle) i) + (hUd : ∀ i, HasIntervalStieltjesDensity (U i) + (fun t ↦ tangentVector (t : Real.Angle) i)) + (hT : ∀ i t, (T i).toFun t = tangentVector ((t : ℝ) : Real.Angle) i) + (hUc : ∀ i, Continuous (U i).toFun) + (hDval : ∀ i t, (D i).toFun t = + z.val t i - (edgeVertices K ((t : ℝ) : Real.Angle)).1 i) + (A : RightContinuousIntervalBV a b) + (hA : ∀ t, A.toFun t = ∑ i, (D i).toFun t * (T i).toFun t) + (hAmeas : Measurable A.toFun) + (hzt : ∀ t : Set.Icc a b, inner ℝ (z.val t) (normalVector ((t : ℝ) : Real.Angle)) = + supportValue K ((t : ℝ) : Real.Angle)) + (CA : ℝ) (hCA : ∀ t, ‖A.toFun t‖ ≤ CA) (hCA0 : 0 ≤ CA) + (hAUb : ∀ i t, ‖A.toFun t * (U i).toFun t‖ ≤ CA) + (hperpframe : ∀ u : Real.Angle, + normalVector u 0 * tangentVector u 0 + normalVector u 1 * tangentVector u 1 = 0) : + intervalStieltjesIntegral (Z 0) (fun t ↦ A.toFun t * (U 0).toFun t) S + + intervalStieltjesIntegral (Z 1) (fun t ↦ A.toFun t * (U 1).toFun t) S = + -(∫ t in S, (A.toFun t) ^ 2 ∂volume.comap (Subtype.val : Set.Icc a b → ℝ)) := by + -- the integrated product rule against the rotating normal frame + choose zu hzu hzum using fun i : Fin 2 ↦ + intervalStieltjes_product a b (Z i) (U i) (Or.inr (hUc i)) + choose wu hwu hwum using fun i : Fin 2 ↦ + intervalStieltjes_product a b (W i) (U i) (Or.inr (hUc i)) + obtain ⟨ZU, hZU, hZUm⟩ := intervalStieltjes_linear_combination a b (zu 0) (zu 1) 1 1 + obtain ⟨WU, hWU, hWUm⟩ := intervalStieltjes_linear_combination a b (wu 0) (wu 1) 1 1 + have hZUWU : ZU = WU := by + refine RightContinuousIntervalBV.toFun_injective (funext fun t ↦ ?_) + rw [hZU t, hWU t, hzu 0 t, hzu 1 t, hwu 0 t, hwu 1 t, hZ, hZ, hW, hW, hU, hU] + have h1 := hzt t + have h2 : inner ℝ (edgeVertices K ((t : ℝ) : Real.Angle)).1 + (normalVector ((t : ℝ) : Real.Angle)) = supportValue K ((t : ℝ) : Real.Angle) := + (edgeVertices_fst_mem K ((t : ℝ) : Real.Angle)).2 + simp only [PiLp.inner_apply, RCLike.inner_apply, conj_trivial, Fin.sum_univ_two] at h1 h2 + linear_combination h1 - h2 + have hAint : ∀ F : RightContinuousIntervalBV a b, + (intervalStieltjesMeasure F).Integrable A.toFun := by + intro F + have _ : IsFiniteMeasure (intervalStieltjesMeasure F).variation := + BoundedVariationOn.instIsFiniteMeasureVariationVectorMeasure F.boundedVariation + exact A.boundedVariation.integrable + have hsplitsum : ∀ F G H : RightContinuousIntervalBV a b, + intervalStieltjesMeasure H = + (1 : ℝ) • intervalStieltjesMeasure F + (1 : ℝ) • intervalStieltjesMeasure G → + intervalStieltjesIntegral H A.toFun S = + intervalStieltjesIntegral F A.toFun S + intervalStieltjesIntegral G A.toFun S := by + intro F G H hH + unfold intervalStieltjesIntegral + rw [hH] + simp only [one_smul] + rw [VectorMeasure.restrict_add, + VectorMeasure.integral_add_vectorMeasure (hAint F).integrableOn (hAint G).integrableOn] + have hH2 : ∀ (i : Fin 2) (F P : RightContinuousIntervalBV a b), + (∀ t, P.toFun t = F.toFun t * (U i).toFun t) → + intervalStieltjesIntegral P A.toFun S = + intervalStieltjesIntegral F (fun t ↦ A.toFun t * (U i).toFun t) S + + intervalStieltjesIntegral (U i) (fun t ↦ A.toFun t * F.toFun t) S := fun i F P hP ↦ + intervalStieltjesIntegral_product_of_bounded hab.le F (U i) P (hUc i) hP A.toFun + hAmeas CA hCA S hSmeas + have hkey := hsplitsum (zu 0) (zu 1) ZU hZUm + rw [hZUWU, hsplitsum (wu 0) (wu 1) WU hWUm, hH2 0 (Z 0) (zu 0) (hzu 0), + hH2 1 (Z 1) (zu 1) (hzu 1), hH2 0 (W 0) (wu 0) (hwu 0), hH2 1 (W 1) (wu 1) (hwu 1)] at hkey + -- the vertex measure pairs to zero against the rotating normal frame + have hWzero : intervalStieltjesIntegral (W 0) (fun t ↦ A.toFun t * (U 0).toFun t) S + + intervalStieltjesIntegral (W 1) (fun t ↦ A.toFun t * (U 1).toFun t) S = 0 := by + have hdot := sum_intervalStieltjesIntegral_positiveVertex_dot K hab hturn W hWm + (fun i t ↦ A.toFun t * (U i).toFun t) CA hCA0 + (fun i ↦ hAmeas.mul (U i).boundedVariation.measurable) hAUb (fun _ ↦ 0) + (by + intro t _ + rw [Fin.sum_univ_two] + simp only [hU] + linear_combination (A.toFun t) * hperpframe ((t : ℝ) : Real.Angle)) + S hSmeas hSa + simpa [Fin.sum_univ_two] using hdot + -- the Lebesgue density of the rotating frame + have hfinite : IsFiniteMeasure (volume.comap (Subtype.val : Set.Icc a b → ℝ)) := ⟨by + rw [comap_subtype_coe_apply measurableSet_Icc] + simp only [Set.image_univ, Subtype.range_val] + exact measure_Icc_lt_top⟩ + let _ := hfinite + have hdens : ∀ (i : Fin 2) (F : RightContinuousIntervalBV a b), + intervalStieltjesIntegral (U i) (fun t ↦ A.toFun t * F.toFun t) S = + ∫ t in S, A.toFun t * F.toFun t * tangentVector ((t : ℝ) : Real.Angle) i + ∂volume.comap (Subtype.val : Set.Icc a b → ℝ) := fun i F ↦ + intervalStieltjesIntegral_eq_integral_mul_of_density_bv hab.le (U i) (hUd i) + (A.boundedVariation.bilinear_comp F.boundedVariation (ContinuousLinearMap.mul ℝ ℝ)) S hSmeas + have hintd : ∀ (i : Fin 2) (F : RightContinuousIntervalBV a b), + Integrable (fun t : Set.Icc a b ↦ + A.toFun t * F.toFun t * tangentVector ((t : ℝ) : Real.Angle) i) + (volume.comap (Subtype.val : Set.Icc a b → ℝ)) := by + intro i F + refine (A.boundedVariation.bilinear_comp F.boundedVariation + (ContinuousLinearMap.mul ℝ ℝ)).integrable.mul_bdd (c := 1) ?_ ?_ + · have h : Continuous fun u : Real.Angle ↦ tangentVector u i := by + fin_cases i + · exact Real.Angle.continuous_sin.neg + · exact Real.Angle.continuous_cos + exact (h.comp (Real.Angle.continuous_coe.comp continuous_subtype_val)).aestronglyMeasurable + · filter_upwards with t + fin_cases i + · simpa [tangentVector, frame] using Real.abs_sin_le_one (t : ℝ) + · simpa [tangentVector, frame] using Real.abs_cos_le_one (t : ℝ) + have haddZ : Integrable (fun t : Set.Icc a b ↦ + A.toFun t * (Z 0).toFun t * tangentVector ((t : ℝ) : Real.Angle) 0 + + A.toFun t * (Z 1).toFun t * tangentVector ((t : ℝ) : Real.Angle) 1) + (volume.comap (Subtype.val : Set.Icc a b → ℝ)) := (hintd 0 (Z 0)).add (hintd 1 (Z 1)) + have haddW : Integrable (fun t : Set.Icc a b ↦ + A.toFun t * (W 0).toFun t * tangentVector ((t : ℝ) : Real.Angle) 0 + + A.toFun t * (W 1).toFun t * tangentVector ((t : ℝ) : Real.Angle) 1) + (volume.comap (Subtype.val : Set.Icc a b → ℝ)) := (hintd 0 (W 0)).add (hintd 1 (W 1)) + have hsquare : (intervalStieltjesIntegral (U 0) (fun t ↦ A.toFun t * (Z 0).toFun t) S + + intervalStieltjesIntegral (U 1) (fun t ↦ A.toFun t * (Z 1).toFun t) S) - + (intervalStieltjesIntegral (U 0) (fun t ↦ A.toFun t * (W 0).toFun t) S + + intervalStieltjesIntegral (U 1) (fun t ↦ A.toFun t * (W 1).toFun t) S) = + ∫ t in S, (A.toFun t) ^ 2 ∂volume.comap (Subtype.val : Set.Icc a b → ℝ) := by + rw [hdens 0 (Z 0), hdens 1 (Z 1), hdens 0 (W 0), hdens 1 (W 1), + ← integral_add (hintd 0 (Z 0)).integrableOn (hintd 1 (Z 1)).integrableOn, + ← integral_add (hintd 0 (W 0)).integrableOn (hintd 1 (W 1)).integrableOn, + ← integral_sub haddZ.integrableOn haddW.integrableOn] + refine setIntegral_congr_fun hSmeas fun t _ ↦ ?_ + have h := hA t + rw [Fin.sum_univ_two, hDval, hDval, hT, hT] at h + simp only [hZ, hW] + linear_combination (-A.toFun t) * h + linarith [hkey, hWzero, hsquare] + +private theorem mamikon_arc_identity (K : ConvexBody Point) {a b : ℝ} + (hab : a < b) (hba : b < a + Real.pi) (hturn : b ≤ a + 2 * Real.pi) + (z : ContinuousBVPaths a b) (S : Set (Set.Icc a b)) + (hSmeas : MeasurableSet S) (hSa : ∀ t ∈ S, a < (t : ℝ)) + (W Z : Fin 2 → RightContinuousIntervalBV a b) + (hWm : ∀ i (E : Set (Set.Icc a b)), MeasurableSet E → + (∀ t ∈ E, a < (t : ℝ)) → + intervalStieltjesMeasure (W i) E = + ∫ u in (fun t : Set.Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, + tangentVector u i ∂surfaceAreaMeasure K) + (hZ : ∀ i t, (Z i).toFun t = z.val t i) + (hzt : ∀ t : Set.Icc a b, inner ℝ (z.val t) (normalVector ((t : ℝ) : Real.Angle)) = + supportValue K ((t : ℝ) : Real.Angle)) + (himg : (fun t : Set.Icc a b ↦ ((t : ℝ) : Real.Angle)) '' S = + (fun t : ℝ ↦ (t : Real.Angle)) '' Set.Ioo a b) : + intervalStieltjesIntegral (W 1) (Z 0).toFun S - + intervalStieltjesIntegral (W 0) (Z 1).toFun S = 2 * convexArcArea K a b := by + obtain ⟨C0, hC0⟩ := (Z 0).exists_norm_bound hab.le + obtain ⟨C1, hC1⟩ := (Z 1).exists_norm_bound hab.le + have hCz0 : 0 ≤ max C0 C1 := le_trans (norm_nonneg _) ((hC0 ⟨a, le_rfl, hab.le⟩).trans + (le_max_left _ _)) + have hdot := sum_intervalStieltjesIntegral_positiveVertex_dot K hab hturn W hWm + ![fun t ↦ -(Z 1).toFun t, (Z 0).toFun] (max C0 C1) hCz0 + (by + intro i + fin_cases i + · exact ((Z 1).boundedVariation.measurable).neg + · exact (Z 0).boundedVariation.measurable) + (by + intro i t + fin_cases i + · simpa using (hC1 t).trans (le_max_right _ _) + · simpa using (hC0 t).trans (le_max_left _ _)) + (fun u ↦ supportValue K u) + (by + intro t _ + have h := planeCrossProduct_tangentVector (z.val t) ((t : ℝ) : Real.Angle) + rw [hzt t] at h + simp only [planeCrossProduct] at h + simp only [Fin.sum_univ_two, Matrix.cons_val_zero, Matrix.cons_val_one, hZ] + linarith) + S hSmeas hSa + rw [Fin.sum_univ_two] at hdot + simp only [Matrix.cons_val_zero, Matrix.cons_val_one] at hdot + rw [show intervalStieltjesIntegral (W 0) (fun t ↦ -(Z 1).toFun t) S = + -intervalStieltjesIntegral (W 0) (Z 1).toFun S from + VectorMeasure.integral_fun_neg _ _ _] at hdot + rw [himg] at hdot + have harea := (convexArc_area a b hab hba).2.1 K + rw [← hdot] at harea + linarith + +private theorem mamikon_endpoint_identity (K : ConvexBody Point) {a b : ℝ} + (hab : a < b) (z : ContinuousBVPaths a b) + (W Z : Fin 2 → RightContinuousIntervalBV a b) + (hW : ∀ i t, (W i).toFun t = (edgeVertices K ((t : ℝ) : Real.Angle)).1 i) + (hZ : ∀ i t, (Z i).toFun t = z.val t i) + (hZc : ∀ i, Continuous (Z i).toFun) : + let a' : Set.Icc a b := ⟨a, le_rfl, hab.le⟩ + let b' : Set.Icc a b := ⟨b, hab.le, le_rfl⟩ + let S : Set (Set.Icc a b) := Set.Ioo a' b' + (intervalStieltjesIntegral (W 1) (Z 0).toFun S + + intervalStieltjesIntegral (Z 0) (W 1).toFun S) - + (intervalStieltjesIntegral (W 0) (Z 1).toFun S + + intervalStieltjesIntegral (Z 1) (W 0).toFun S) = + 2 * segmentArea (edgeVertices K ((a : ℝ) : Real.Angle)).1 (z.val a') + + 2 * segmentArea (z.val b') (edgeVertices K ((b : ℝ) : Real.Angle)).2 := by + let a' : Set.Icc a b := ⟨a, le_rfl, hab.le⟩ + let b' : Set.Icc a b := ⟨b, hab.le, le_rfl⟩ + let S : Set (Set.Icc a b) := Set.Ioo a' b' + have hS : S = Set.Ioo a' b' := rfl + have hSmeas : MeasurableSet S := measurableSet_Ioo + -- the product-rule endpoint identity + obtain ⟨p1, hp1, hp1m⟩ := intervalStieltjes_product a b (W 1) (Z 0) (Or.inr (hZc 0)) + obtain ⟨p0, hp0, hp0m⟩ := intervalStieltjes_product a b (W 0) (Z 1) (Or.inr (hZc 1)) + have hab' : a' < b' := hab + have hIoo : ∀ P : RightContinuousIntervalBV a b, + intervalStieltjesMeasure P S = Function.leftLim P.toFun b' - P.toFun a' := by + intro P + rw [hS, intervalStieltjesMeasure, P.boundedVariation.vectorMeasure_Ioo hab', + (P.right_continuous a').rightLim_eq] + have hleftLimP : ∀ (i j : Fin 2) (P : RightContinuousIntervalBV a b), + (∀ t, P.toFun t = (W i).toFun t * (Z j).toFun t) → + Function.leftLim P.toFun b' = + (edgeVertices K ((b : ℝ) : Real.Angle)).2 i * z.val b' j := by + intro i j P hP + have hne : (nhdsWithin b' (Set.Iio b')).NeBot := nhdsLT_neBot_of_exists_lt ⟨a', hab'⟩ + let _ := hne + refine tendsto_nhds_unique (P.boundedVariation.tendsto_leftLim b') ?_ + have h1 := (W i).boundedVariation.tendsto_leftLim b' + rw [leftLim_positiveVertex_coordinate K W hW i b' hab] at h1 + have h2 : Filter.Tendsto (Z j).toFun (nhdsWithin b' (Set.Iio b')) (nhds ((Z j).toFun b')) := + (hZc j).continuousAt.continuousWithinAt + rw [hZ j b'] at h2 + exact (h1.mul h2).congr fun t ↦ (hP t).symm + have hEndpoint : (intervalStieltjesIntegral (W 1) (Z 0).toFun S + + intervalStieltjesIntegral (Z 0) (W 1).toFun S) - + (intervalStieltjesIntegral (W 0) (Z 1).toFun S + + intervalStieltjesIntegral (Z 1) (W 0).toFun S) = + 2 * segmentArea (edgeVertices K ((a : ℝ) : Real.Angle)).1 (z.val a') + + 2 * segmentArea (z.val b') (edgeVertices K ((b : ℝ) : Real.Angle)).2 := by + rw [← hp1m S hSmeas, ← hp0m S hSmeas, hIoo p1, hIoo p0, + hleftLimP 1 0 p1 hp1, hleftLimP 0 1 p0 hp0, hp1 a', hp0 a', hW, hW, hZ, hZ] + simp only [segmentArea, planeCrossProduct] + ring + exact hEndpoint + +theorem mamikon_integral (K : ConvexBody Point) (a b : ℝ) + (hab : a < b) (hba : b < a + Real.pi) (z : ContinuousBVPaths a b) + (hz : ∀ t : Set.Icc a b, + z.val t ∈ (supportingLineHalfPlane K (t.val : Real.Angle)).1) : + Measurable (mamikonOffset K z) ∧ + (∃ C : ℝ, ∀ t, |mamikonOffset K z t| ≤ C) ∧ + (∀ t : Set.Icc a b, z.val t = (edgeVertices K (t.val : Real.Angle)).1 + + mamikonOffset K z t.val • tangentVector (t.val : Real.Angle)) ∧ + mamikonFunctional K a b hab hba z hz = + (∫ t in Set.Icc a b, (mamikonOffset K z t) ^ 2) / 2 := by + have hturn : b ≤ a + 2 * Real.pi := by linarith [Real.pi_pos] + set a' : Set.Icc a b := ⟨a, le_rfl, hab.le⟩ with ha' + set b' : Set.Icc a b := ⟨b, hab.le, le_rfl⟩ with hb' + set S : Set (Set.Icc a b) := Set.Ioo a' b' with hS + have hSmeas : MeasurableSet S := measurableSet_Ioo + have hSa : ∀ t ∈ S, a < (t : ℝ) := fun t ht ↦ ht.1 + -- the frame data + obtain ⟨W, hW, hWm⟩ := positiveVertex_stieltjes_surface K a b hab hturn + set Z : Fin 2 → RightContinuousIntervalBV a b := fun i ↦ continuousBVCoordinate z i with hZdef + have hZ : ∀ i (t : Set.Icc a b), (Z i).toFun t = z.val t i := fun _ _ ↦ rfl + have hZc : ∀ i, Continuous (Z i).toFun := fun i ↦ + (PiLp.continuous_apply 2 _ i).comp z.property.1 + choose U hU hUd using fun i : Fin 2 ↦ exists_normalVector_coordinate_intervalBV hab.le i + choose T hT hTd using fun i : Fin 2 ↦ exists_tangentVector_coordinate_intervalBV hab.le i + have hUc : ∀ i, Continuous (U i).toFun := by + intro i + have h : Continuous fun u : Real.Angle ↦ normalVector u i := by + fin_cases i + · exact Real.Angle.continuous_cos + · exact Real.Angle.continuous_sin + exact (h.comp (Real.Angle.continuous_coe.comp continuous_subtype_val)).congr + fun t ↦ (hU i t).symm + have hTc : ∀ i, Continuous (T i).toFun := by + intro i + have h : Continuous fun u : Real.Angle ↦ tangentVector u i := by + fin_cases i + · exact Real.Angle.continuous_sin.neg + · exact Real.Angle.continuous_cos + exact (h.comp (Real.Angle.continuous_coe.comp continuous_subtype_val)).congr + fun t ↦ (hT i t).symm + choose D hD hDm using fun i : Fin 2 ↦ + intervalStieltjes_linear_combination a b (Z i) (W i) 1 (-1) + have hDval : ∀ i (t : Set.Icc a b), + (D i).toFun t = z.val t i - (edgeVertices K ((t : ℝ) : Real.Angle)).1 i := by + intro i t + rw [hD i t, hZ i t, hW i t] + ring + obtain ⟨A, hA, hAm⟩ := intervalStieltjes_inner_fin_two D T hTc + have hAmeas : Measurable A.toFun := A.boundedVariation.measurable + -- the offset is the tangent projection of the difference + have hoffset : ∀ t : Set.Icc a b, mamikonOffset K z (t : ℝ) = A.toFun t := by + intro t + rw [hA t] + simp only [mamikonOffset, dite_eq_left t.property, Subtype.coe_eta, hDval, hT, + PiLp.inner_apply, RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, PiLp.sub_apply] + ring + have hoffsetval : ∀ t : Set.Icc a b, mamikonOffset K z (t : ℝ) = + inner ℝ (z.val t - (edgeVertices K ((t : ℝ) : Real.Angle)).1) + (tangentVector ((t : ℝ) : Real.Angle)) := fun t ↦ by + simp only [mamikonOffset, dite_eq_left t.property, Subtype.coe_eta] + have hzt : ∀ t : Set.Icc a b, + inner ℝ (z.val t) (normalVector ((t : ℝ) : Real.Angle)) = + supportValue K ((t : ℝ) : Real.Angle) := fun t ↦ hz t + -- measurability and boundedness of the offset + have hmeas : Measurable (mamikonOffset K z) := by + refine measurable_of_restrict_of_restrict_compl (s := Set.Icc a b) measurableSet_Icc ?_ ?_ + · change Measurable fun t : Set.Icc a b ↦ mamikonOffset K z (t : ℝ) + rw [funext hoffset] + exact hAmeas + · change Measurable fun t : ((Set.Icc a b)ᶜ : Set ℝ) ↦ mamikonOffset K z (t : ℝ) + rw [show (fun t : ((Set.Icc a b)ᶜ : Set ℝ) ↦ mamikonOffset K z (t : ℝ)) = fun _ ↦ 0 from + funext fun t ↦ dite_eq_right t.property] + exact measurable_const + obtain ⟨CA, hCA⟩ := A.exists_norm_bound hab.le + have hbound : ∀ t : ℝ, |mamikonOffset K z t| ≤ max CA 0 := by + intro t + by_cases ht : t ∈ Set.Icc a b + · have h := hCA ⟨t, ht⟩ + rw [Real.norm_eq_abs] at h + rw [hoffset ⟨t, ht⟩] + exact h.trans (le_max_left _ _) + · simp only [mamikonOffset, dite_eq_right ht, abs_zero] + exact le_max_right _ _ + have hrecon : ∀ t : Set.Icc a b, z.val t = (edgeVertices K ((t : ℝ) : Real.Angle)).1 + + mamikonOffset K z (t : ℝ) • tangentVector ((t : ℝ) : Real.Angle) := by + intro t + have hperp : inner ℝ (z.val t - (edgeVertices K ((t : ℝ) : Real.Angle)).1) + (normalVector ((t : ℝ) : Real.Angle)) = 0 := by + rw [inner_sub_left, hzt t, (edgeVertices_fst_mem K ((t : ℝ) : Real.Angle)).2, sub_self] + have hdec := inner_normalVector_smul_add_inner_tangentVector_smul + (z.val t - (edgeVertices K ((t : ℝ) : Real.Angle)).1) ((t : ℝ) : Real.Angle) + rw [hperp, zero_smul, zero_add] at hdec + rw [hoffsetval t, hdec, add_sub_cancel] + refine ⟨hmeas, ⟨max CA 0, hbound⟩, hrecon, ?_⟩ + have hCA0 : 0 ≤ CA := le_trans (norm_nonneg _) (hCA a') + have himg : (fun t : Set.Icc a b ↦ ((t : ℝ) : Real.Angle)) '' S = + (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b := by + ext u + constructor + · rintro ⟨t, ht, rfl⟩ + exact ⟨(t : ℝ), ⟨ht.1, ht.2⟩, rfl⟩ + · rintro ⟨s, hs, rfl⟩ + exact ⟨⟨s, hs.1.le, hs.2.le⟩, ⟨hs.1, hs.2⟩, rfl⟩ + have hUb : ∀ (i : Fin 2) (t : Set.Icc a b), ‖(U i).toFun t‖ ≤ 1 := by + intro i t + simp only [hU] + fin_cases i + · simpa [normalVector, frame] using Real.abs_cos_le_one (t : ℝ) + · simpa [normalVector, frame] using Real.abs_sin_le_one (t : ℝ) + have hAUb : ∀ (i : Fin 2) (t : Set.Icc a b), ‖A.toFun t * (U i).toFun t‖ ≤ CA := by + intro i t + rw [norm_mul] + calc ‖A.toFun t‖ * ‖(U i).toFun t‖ ≤ CA * 1 := + mul_le_mul (hCA t) (hUb i t) (norm_nonneg _) hCA0 + _ = CA := mul_one CA + have hperpframe : ∀ u : Real.Angle, + normalVector u 0 * tangentVector u 0 + normalVector u 1 * tangentVector u 1 = 0 := by + intro u + simp only [normalVector, tangentVector, frame, Matrix.cons_val_zero, Matrix.cons_val_one] + ring + have hTU0 : ∀ t : Set.Icc a b, (T 0).toFun t = -(U 1).toFun t := by + intro t + rw [hT, hU] + simp [normalVector, tangentVector, frame] + have hTU1 : ∀ t : Set.Icc a b, (T 1).toFun t = (U 0).toFun t := by + intro t + rw [hT, hU] + simp [normalVector, tangentVector, frame] + have hDA : ∀ (i : Fin 2) (t : Set.Icc a b), (D i).toFun t = A.toFun t * (T i).toFun t := by + intro i t + have h := congrArg (fun p : Point ↦ p i) (hrecon t) + simp only [PiLp.add_apply, PiLp.smul_apply, smul_eq_mul] at h + rw [hDval i t, hT i t, ← hoffset t] + linarith [h] + have hDU0 : ∀ t : Set.Icc a b, + (Z 0).toFun t - (W 0).toFun t = -(A.toFun t * (U 1).toFun t) := by + intro t + have h := hDA 0 t + rw [hD 0 t, hTU0 t] at h + rw [show (Z 0).toFun t - (W 0).toFun t = 1 * (Z 0).toFun t + -1 * (W 0).toFun t by ring, h] + ring + have hDU1 : ∀ t : Set.Icc a b, + (Z 1).toFun t - (W 1).toFun t = A.toFun t * (U 0).toFun t := by + intro t + have h := hDA 1 t + rw [hD 1 t, hTU1 t] at h + rw [show (Z 1).toFun t - (W 1).toFun t = 1 * (Z 1).toFun t + -1 * (W 1).toFun t by ring, h] + -- integrability of interval-BV integrands + have hFint : ∀ F G : RightContinuousIntervalBV a b, + ((intervalStieltjesMeasure G).restrict S).Integrable F.toFun := by + intro F G + have _ : IsFiniteMeasure (intervalStieltjesMeasure G).variation := + BoundedVariationOn.instIsFiniteMeasureVariationVectorMeasure G.boundedVariation + exact (show (intervalStieltjesMeasure G).Integrable F.toFun from + F.boundedVariation.integrable).integrableOn + have hsubint : ∀ F G H : RightContinuousIntervalBV a b, + intervalStieltjesIntegral H (fun t ↦ F.toFun t - G.toFun t) S = + intervalStieltjesIntegral H F.toFun S - intervalStieltjesIntegral H G.toFun S := + fun F G H ↦ VectorMeasure.integral_fun_sub (hFint F H) (hFint G H) + -- the curve area functional over the open interval + have hJ : 2 * curveAreaFunctional z = + intervalStieltjesIntegral (Z 1) (Z 0).toFun S - + intervalStieltjesIntegral (Z 0) (Z 1).toFun S := by + rw [curveAreaFunctional, + show (fun t : Set.Icc a b ↦ z.val t 0) = (Z 0).toFun from rfl, + show (fun t : Set.Icc a b ↦ z.val t 1) = (Z 1).toFun from rfl, + show continuousBVCoordinate z 1 = Z 1 from rfl, + show continuousBVCoordinate z 0 = Z 0 from rfl, + intervalStieltjesIntegral_univ_eq_Ioo_of_continuous hab.le (Z 1) (hZc 1) _ (hZc 0), + intervalStieltjesIntegral_univ_eq_Ioo_of_continuous hab.le (Z 0) (hZc 0) _ (hZc 1)] + rw [← hS] + ring + have hArc := mamikon_arc_identity K hab hba hturn z S hSmeas hSa W Z hWm hZ hzt himg + have hEndpoint := mamikon_endpoint_identity K hab z W Z hW hZ hZc + have hframe := mamikon_frame_identity K hab hturn z S hSmeas hSa W Z U T D + hW hWm hZ hU hUd hT hUc hDval A hA hAmeas hzt CA hCA hCA0 hAUb hperpframe + -- the offset difference of the two coordinate integrals + have hGval : (intervalStieltjesIntegral (Z 1) (Z 0).toFun S - + intervalStieltjesIntegral (Z 1) (W 0).toFun S) - + (intervalStieltjesIntegral (Z 0) (Z 1).toFun S - + intervalStieltjesIntegral (Z 0) (W 1).toFun S) = + -(intervalStieltjesIntegral (Z 0) (fun t ↦ A.toFun t * (U 0).toFun t) S + + intervalStieltjesIntegral (Z 1) (fun t ↦ A.toFun t * (U 1).toFun t) S) := by + rw [← hsubint (Z 0) (W 0) (Z 1), ← hsubint (Z 1) (W 1) (Z 0), + show intervalStieltjesIntegral (Z 1) (fun t ↦ (Z 0).toFun t - (W 0).toFun t) S = + intervalStieltjesIntegral (Z 1) (fun t ↦ -(A.toFun t * (U 1).toFun t)) S from + VectorMeasure.setIntegral_congr_fun fun t _ ↦ hDU0 t, + show intervalStieltjesIntegral (Z 0) (fun t ↦ (Z 1).toFun t - (W 1).toFun t) S = + intervalStieltjesIntegral (Z 0) (fun t ↦ A.toFun t * (U 0).toFun t) S from + VectorMeasure.setIntegral_congr_fun fun t _ ↦ hDU1 t, + show intervalStieltjesIntegral (Z 1) (fun t ↦ -(A.toFun t * (U 1).toFun t)) S = + -intervalStieltjesIntegral (Z 1) (fun t ↦ A.toFun t * (U 1).toFun t) S from + VectorMeasure.integral_fun_neg _ _ _] + ring + -- the open-interval subtype integral is the closed-interval Lebesgue integral + have hLeb : ∫ t in S, (A.toFun t) ^ 2 ∂volume.comap (Subtype.val : Set.Icc a b → ℝ) = + ∫ t in Set.Icc a b, (mamikonOffset K z t) ^ 2 := by + have hpre : {x : Set.Icc a b | (x : ℝ) ∈ Set.Ioo a b} = S := by + ext t + exact ⟨fun h ↦ ⟨h.1, h.2⟩, fun h ↦ ⟨h.1, h.2⟩⟩ + have hsubtype := integral_subtype_preimage (μ := volume) (s := Set.Icc a b) + (t := Set.Ioo a b) measurableSet_Icc measurableSet_Ioo + (fun s : ℝ ↦ (mamikonOffset K z s) ^ 2) + rw [hpre, Measure.restrict_restrict_of_subset Set.Ioo_subset_Icc_self] at hsubtype + rw [show ∫ t in S, (A.toFun t) ^ 2 ∂volume.comap (Subtype.val : Set.Icc a b → ℝ) = + ∫ t in S, (mamikonOffset K z (t : ℝ)) ^ 2 + ∂volume.comap (Subtype.val : Set.Icc a b → ℝ) from + setIntegral_congr_fun hSmeas fun t _ ↦ by rw [hoffset t], hsubtype] + exact setIntegral_congr_set Ioo_ae_eq_Icc + -- assemble + unfold mamikonFunctional + rw [← ha', ← hb'] + linarith [hJ, hArc, hEndpoint, hframe, hGval, hLeb] + +theorem mamikon_quadratic_convex (a b : ℝ) (hab : a < b) (hba : b < a + Real.pi) + (F : ConvexBody Point → ContinuousBVPaths a b) + (hF : ∀ K : ConvexBody Point, ∀ t : Set.Icc a b, + (F K).val t ∈ (supportingLineHalfPlane K (t.val : Real.Angle)).1) + (hlinear : IsConvexLinear convexBodyCombination bvPathCombination F) : + IsQuadraticFunctional convexBodyCombination + (fun K ↦ mamikonFunctional K a b hab hba (F K) (hF K)) ∧ + IsConvexFunctional convexBodyCombination + (fun K ↦ mamikonFunctional K a b hab hba (F K) (hF K)) false := by + have hdata := fun K : ConvexBody Point ↦ mamikon_integral K a b hab hba (F K) (hF K) + refine sqIntegral_quadratic_convex convexBodyCombination (volume.restrict (Set.Icc a b)) + (fun K ↦ mamikonOffset K (F K)) (fun K ↦ (hdata K).1) (fun K ↦ (hdata K).2.1) ?_ _ + (fun K ↦ (hdata K).2.2.2) + intro s K L t + rw [show F (convexBodyCombination s K L) = bvPathCombination s (F K) (F L) from hlinear s K L] + exact mamikonOffset_convexBodyCombination s K L (F K) (F L) t + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Area.Mamikon.Tails`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Area / Mamikon / Tails +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The signed area between a convex boundary arc and its endpoint tangent segments. -/ +def tangentMamikonValue (K : ConvexBody Point) (a b : ℝ) : ℝ := + segmentArea (edgeVertices K (a : Real.Angle)).1 + (supportingIntersection K (a : Real.Angle) (b : Real.Angle)) + + segmentArea (supportingIntersection K (a : Real.Angle) (b : Real.Angle)) + (edgeVertices K (b : Real.Angle)).2 - convexArcArea K a b + +/-- The Mamikon value of the right tail on its Gerver angle interval. -/ +def rightTailMamikon (B : ConvexBody Point) : ℝ := + tangentMamikonValue B (Real.pi + paperGerverConstants.2.1) (3 * Real.pi / 2) + +/-- The Mamikon value of the left tail on its Gerver angle interval. -/ +def leftTailMamikon (D : ConvexBody Point) : ℝ := + tangentMamikonValue D (3 * Real.pi / 2) (3 * Real.pi / 2 + paperGerverConstants.2.2) + +/-- Bundle the right and left tail Mamikon functionals. -/ +def tailMamikonFunctionals : (ConvexBody Point → ℝ) × (ConvexBody Point → ℝ) := + (rightTailMamikon, leftTailMamikon) + +/-- The support and endpoint identities of a cap-tail triple, in segment-area form. -/ +theorem tailFanPoint_identities + (K : RightAngleCapSpace) (B D : ConvexBody Point) {r l : ℝ} + (hr : r ∈ Set.Ioo 0 (Real.pi / 2)) (hl : l ∈ Set.Ioo 0 (Real.pi / 2)) + (hB1 : supportValue (B : Set Point) ((Real.pi + r : ℝ) : Real.Angle) = + 1 - supportValue (K.1 : Set Point) ((r : ℝ) : Real.Angle)) + (hB2 : supportValue (B : Set Point) ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0) + (hD1 : supportValue (D : Set Point) ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0) + (hD2 : supportValue (D : Set Point) ((3 * Real.pi / 2 + l : ℝ) : Real.Angle) = + 1 - supportValue (K.1 : Set Point) ((Real.pi / 2 + l : ℝ) : Real.Angle)) : + supportingIntersection B ((Real.pi + r : ℝ) : Real.Angle) + ((3 * Real.pi / 2 : ℝ) : Real.Angle) = (wedgeEndpoints K r).1 ∧ + supportingIntersection D ((3 * Real.pi / 2 : ℝ) : Real.Angle) + ((3 * Real.pi / 2 + l : ℝ) : Real.Angle) = (wedgeEndpoints K l).2 ∧ + segmentArea (wedgeEndpoints K r).1 + (edgeVertices B ((3 * Real.pi / 2 : ℝ) : Real.Angle)).2 = 0 ∧ + segmentArea (edgeVertices D ((3 * Real.pi / 2 : ℝ) : Real.Angle)).1 + (wedgeEndpoints K l).2 = 0 ∧ + segmentArea (capInnerCorner K r) (wedgeEndpoints K r).1 - + segmentArea (edgeVertices B ((Real.pi + r : ℝ) : Real.Angle)).1 + (wedgeEndpoints K r).1 = + segmentArea (capInnerCorner K r) + (edgeVertices B ((Real.pi + r : ℝ) : Real.Angle)).1 ∧ + segmentArea (wedgeEndpoints K l).2 (capInnerCorner K l) - + segmentArea (wedgeEndpoints K l).2 + (edgeVertices D ((3 * Real.pi / 2 + l : ℝ) : Real.Angle)).2 = + segmentArea (edgeVertices D ((3 * Real.pi / 2 + l : ℝ) : Real.Angle)).2 + (capInnerCorner K l) := by + obtain ⟨hr0, hr2⟩ := hr + obtain ⟨hl0, hl2⟩ := hl + have hpi := Real.pi_pos + have hcosr : 0 < Real.cos r := Real.cos_pos_of_mem_Ioo ⟨by linarith, hr2⟩ + have hsinl : 0 < Real.sin l := Real.sin_pos_of_pos_of_lt_pi hl0 (by linarith) + have hcast : ∀ a b : ℝ, a = b → ((a : ℝ) : Real.Angle) = ((b : ℝ) : Real.Angle) := + fun a b h => by rw [h] + -- opposite normals + have hnr : normalVector ((Real.pi + r : ℝ) : Real.Angle) = + -normalVector ((r : ℝ) : Real.Angle) := by + rw [hcast _ _ (show Real.pi + r = r + Real.pi by ring), normalVector_add_pi] + have hn32 : normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle) = + -normalVector ((Real.pi / 2 : ℝ) : Real.Angle) := by + rw [hcast _ _ (show 3 * Real.pi / 2 = Real.pi / 2 + Real.pi by ring), normalVector_add_pi] + have hn32l : normalVector ((3 * Real.pi / 2 + l : ℝ) : Real.Angle) = + -normalVector ((Real.pi / 2 + l : ℝ) : Real.Angle) := by + rw [hcast _ _ (show 3 * Real.pi / 2 + l = (Real.pi / 2 + l) + Real.pi by ring), + normalVector_add_pi] + have hnl : normalVector ((Real.pi / 2 + l : ℝ) : Real.Angle) = + tangentVector ((l : ℝ) : Real.Angle) := by + rw [hcast _ _ (show Real.pi / 2 + l = l + Real.pi / 2 by ring), + normalVector_add_pi_div_two_real] + have hKl : supportValue (K.1 : Set Point) ((l + Real.pi / 2 : ℝ) : Real.Angle) = + supportValue (K.1 : Set Point) ((Real.pi / 2 + l : ℝ) : Real.Angle) := by + rw [hcast _ _ (show l + Real.pi / 2 = Real.pi / 2 + l by ring)] + -- the two fan points + have h1 : inner ℝ (wedgeEndpoints K r).1 (normalVector ((r : ℝ) : Real.Angle)) = + supportValue (K.1 : Set Point) ((r : ℝ) : Real.Angle) - 1 := by + change inner ℝ (((supportValue (K.1 : Set Point) ((r : ℝ) : Real.Angle) - 1) / + Real.cos r) • normalVector 0) _ = _ + rw [real_inner_smul_left, ← Real.Angle.coe_zero, inner_normalVector_normalVector, + zero_sub, Real.cos_neg] + field_simp + have h2 : inner ℝ (wedgeEndpoints K r).1 + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 := by + change inner ℝ (((supportValue (K.1 : Set Point) ((r : ℝ) : Real.Angle) - 1) / + Real.cos r) • normalVector 0) _ = _ + rw [real_inner_smul_left, ← Real.Angle.coe_zero, inner_normalVector_normalVector, + zero_sub, Real.cos_neg, Real.cos_pi_div_two, mul_zero] + have h5 : inner ℝ (wedgeEndpoints K l).2 + (normalVector ((Real.pi / 2 + l : ℝ) : Real.Angle)) = + supportValue (K.1 : Set Point) ((Real.pi / 2 + l : ℝ) : Real.Angle) - 1 := by + change inner ℝ (((supportValue (K.1 : Set Point) ((l + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos (Real.pi / 2 - l)) • tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) _ = _ + rw [real_inner_smul_left, inner_tangentVector_normalVector_real, + Real.cos_pi_div_two_sub, hKl, show Real.pi / 2 + l - Real.pi / 2 = l by ring] + field_simp + have h6 : inner ℝ (wedgeEndpoints K l).2 + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 := by + change inner ℝ (((supportValue (K.1 : Set Point) ((l + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos (Real.pi / 2 - l)) • tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) _ = _ + rw [real_inner_smul_left, inner_tangentVector_normalVector_real, sub_self, + Real.sin_zero, mul_zero] + -- the two supporting intersections + have hs1 : Real.sin (3 * Real.pi / 2 - (Real.pi + r)) ≠ 0 := by + rw [show 3 * Real.pi / 2 - (Real.pi + r) = Real.pi / 2 - r by ring, Real.sin_pi_div_two_sub] + exact ne_of_gt hcosr + have hs2 : Real.sin (3 * Real.pi / 2 + l - 3 * Real.pi / 2) ≠ 0 := by + rw [show 3 * Real.pi / 2 + l - 3 * Real.pi / 2 = l by ring] + exact ne_of_gt hsinl + have h3 : inner ℝ (supportingIntersection B ((Real.pi + r : ℝ) : Real.Angle) + ((3 * Real.pi / 2 : ℝ) : Real.Angle)) (normalVector ((r : ℝ) : Real.Angle)) = + supportValue (K.1 : Set Point) ((r : ℝ) : Real.Angle) - 1 := by + have h := supportingIntersection_inner_left B (Real.pi + r) (3 * Real.pi / 2) + rw [hnr, inner_neg_right, hB1] at h + linarith + have h4 : inner ℝ (supportingIntersection B ((Real.pi + r : ℝ) : Real.Angle) + ((3 * Real.pi / 2 : ℝ) : Real.Angle)) + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 := by + have h := supportingIntersection_inner_right B (Real.pi + r) (3 * Real.pi / 2) hs1 + rw [hn32, inner_neg_right, hB2] at h + linarith + have h7 : inner ℝ (supportingIntersection D ((3 * Real.pi / 2 : ℝ) : Real.Angle) + ((3 * Real.pi / 2 + l : ℝ) : Real.Angle)) + (normalVector ((Real.pi / 2 + l : ℝ) : Real.Angle)) = + supportValue (K.1 : Set Point) ((Real.pi / 2 + l : ℝ) : Real.Angle) - 1 := by + have h := supportingIntersection_inner_right D (3 * Real.pi / 2) + (3 * Real.pi / 2 + l) hs2 + rw [hn32l, inner_neg_right, hD2] at h + linarith + have h8 : inner ℝ (supportingIntersection D ((3 * Real.pi / 2 : ℝ) : Real.Angle) + ((3 * Real.pi / 2 + l : ℝ) : Real.Angle)) + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 := by + have h := supportingIntersection_inner_left D (3 * Real.pi / 2) (3 * Real.pi / 2 + l) + rw [hn32, inner_neg_right, hD1] at h + linarith + -- the cap corners and the tail vertices + have h9 : inner ℝ (capInnerCorner K r) (normalVector ((r : ℝ) : Real.Angle)) = + supportValue (K.1 : Set Point) ((r : ℝ) : Real.Angle) - 1 := (inner_capInnerCorner K r).1 + have h13 : inner ℝ (capInnerCorner K l) + (normalVector ((Real.pi / 2 + l : ℝ) : Real.Angle)) = + supportValue (K.1 : Set Point) ((Real.pi / 2 + l : ℝ) : Real.Angle) - 1 := by + rw [hnl, (inner_capInnerCorner K l).2, hKl] + have h10 : inner ℝ (edgeVertices B ((Real.pi + r : ℝ) : Real.Angle)).1 + (normalVector ((r : ℝ) : Real.Angle)) = + supportValue (K.1 : Set Point) ((r : ℝ) : Real.Angle) - 1 := by + have h : inner ℝ (edgeVertices B ((Real.pi + r : ℝ) : Real.Angle)).1 + (normalVector ((Real.pi + r : ℝ) : Real.Angle)) = + supportValue (B : Set Point) ((Real.pi + r : ℝ) : Real.Angle) := + (edgeVertices_fst_mem B ((Real.pi + r : ℝ) : Real.Angle)).2 + rw [hnr, inner_neg_right, hB1] at h + linarith + have h11 : inner ℝ (edgeVertices B ((3 * Real.pi / 2 : ℝ) : Real.Angle)).2 + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 := by + have h : inner ℝ (edgeVertices B ((3 * Real.pi / 2 : ℝ) : Real.Angle)).2 + (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue (B : Set Point) ((3 * Real.pi / 2 : ℝ) : Real.Angle) := + (edgeVertices_snd_mem B ((3 * Real.pi / 2 : ℝ) : Real.Angle)).2 + rw [hn32, inner_neg_right, hB2] at h + linarith + have h12 : inner ℝ (edgeVertices D ((3 * Real.pi / 2 : ℝ) : Real.Angle)).1 + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 := by + have h : inner ℝ (edgeVertices D ((3 * Real.pi / 2 : ℝ) : Real.Angle)).1 + (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue (D : Set Point) ((3 * Real.pi / 2 : ℝ) : Real.Angle) := + (edgeVertices_fst_mem D ((3 * Real.pi / 2 : ℝ) : Real.Angle)).2 + rw [hn32, inner_neg_right, hD1] at h + linarith + have h14 : inner ℝ (edgeVertices D ((3 * Real.pi / 2 + l : ℝ) : Real.Angle)).2 + (normalVector ((Real.pi / 2 + l : ℝ) : Real.Angle)) = + supportValue (K.1 : Set Point) ((Real.pi / 2 + l : ℝ) : Real.Angle) - 1 := by + have h : inner ℝ (edgeVertices D ((3 * Real.pi / 2 + l : ℝ) : Real.Angle)).2 + (normalVector ((3 * Real.pi / 2 + l : ℝ) : Real.Angle)) = + supportValue (D : Set Point) ((3 * Real.pi / 2 + l : ℝ) : Real.Angle) := + (edgeVertices_snd_mem D ((3 * Real.pi / 2 + l : ℝ) : Real.Angle)).2 + rw [hn32l, inner_neg_right, hD2] at h + linarith + refine ⟨?_, ?_, segmentArea_eq_zero_of_inner_normalVector_eq_zero h2 h11, + segmentArea_eq_zero_of_inner_normalVector_eq_zero h12 h6, + segmentArea_sub_segmentArea_of_inner_normalVector_eq h9 h10 h1, ?_⟩ + · refine eq_of_inner_normalVector_eq (s := r) (t := Real.pi / 2) ?_ + (h3.trans h1.symm) (h4.trans h2.symm) + rw [show r - Real.pi / 2 = -(Real.pi / 2 - r) by ring, Real.sin_neg, + Real.sin_pi_div_two_sub] + exact neg_ne_zero.mpr (ne_of_gt hcosr) + · refine eq_of_inner_normalVector_eq (s := Real.pi / 2 + l) (t := Real.pi / 2) ?_ + (h7.trans h5.symm) (h8.trans h6.symm) + rw [show Real.pi / 2 + l - Real.pi / 2 = l by ring] + exact ne_of_gt hsinl + · have h := segmentArea_sub_segmentArea_of_inner_normalVector_eq h13 h14 h5 + linarith [segmentArea_swap (wedgeEndpoints K l).2 (capInnerCorner K l), + segmentArea_swap (wedgeEndpoints K l).2 + (edgeVertices D ((3 * Real.pi / 2 + l : ℝ) : Real.Angle)).2, + segmentArea_swap (capInnerCorner K l) + (edgeVertices D ((3 * Real.pi / 2 + l : ℝ) : Real.Angle)).2] + +theorem upperBoundQ_decomposition (X : CapTailSpace) : + upperBoundQ X = upperBoundMiddle X.cap - rightTailMamikon X.rightBody - + leftTailMamikon X.leftBody := by + obtain ⟨hr, hl, -⟩ := paperGerverConstants_snd_mem_Ioo + have hcast : ∀ a b : ℝ, a = b → ((a : ℝ) : Real.Angle) = ((b : ℝ) : Real.Angle) := + fun a b h => by rw [h] + have htop : supportValue (X.cap.1.1 : Set Point) ((Real.pi / 2 : ℝ) : Real.Angle) = 1 := + X.cap.1.property.2.2.2.1 + have hB1 : supportValue (X.rightBody : Set Point) + ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle) = + 1 - supportValue (X.cap.1.1 : Set Point) + ((paperGerverConstants.2.1 : ℝ) : Real.Angle) := by + have h := X.right_eq paperGerverConstants.2.1 (by simp) + linarith + have hB2 : supportValue (X.rightBody : Set Point) + ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 := by + have h := X.right_eq (Real.pi / 2) (by simp) + rw [hcast _ _ (show Real.pi + Real.pi / 2 = 3 * Real.pi / 2 by ring), htop] at h + linarith + have hD1 : supportValue (X.leftBody : Set Point) + ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 := by + have h := X.left_eq 0 (by simp) + rw [hcast _ _ (show Real.pi / 2 + (0 : ℝ) = Real.pi / 2 by ring), + hcast _ _ (show 3 * Real.pi / 2 + (0 : ℝ) = 3 * Real.pi / 2 by ring), htop] at h + linarith + have hD2 : supportValue (X.leftBody : Set Point) + ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle) = + 1 - supportValue (X.cap.1.1 : Set Point) + ((Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle) := by + have h := X.left_eq paperGerverConstants.2.2 (by simp) + linarith + obtain ⟨e1, e2, e3, e4, e5, e6⟩ := + tailFanPoint_identities X.cap.val X.rightBody X.leftBody hr hl hB1 hB2 hD1 hD2 + simp only [upperBoundQ, upperBoundMiddle, rightTailMamikon, leftTailMamikon, + tangentMamikonValue, rightLeftTailArcs, distinguishedCapSides] + rw [e1, e2] + linarith + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Cap.PolylineBoundary`. +* `Cap.PolylineDefinition`. +* `Cap.Polyline`. +* `Cap.UpperBoundary.Polygon`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Polyline Boundary +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The slope and intercept of the inner B-wall line at angle `t`. -/ +def capBAffine {Θ : AngleSet} (K : PolygonCapSpace Θ) (t : ℝ) : ℝ × ℝ := + (-Real.cos t / Real.sin t, + (supportValue K.val.val (t : Real.Angle) - 1) / Real.sin t) + +/-- The slope and intercept of the inner D-wall line at angle `t`. -/ +def capDAffine {Θ : AngleSet} (K : PolygonCapSpace Θ) (t : ℝ) : ℝ × ℝ := + (Real.sin t / Real.cos t, + (supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) / Real.cos t) + +/-- The slope and zero intercept of the slanted fan boundary. -/ +def fanAffine (ω : ℝ) : ℝ × ℝ := + (-Real.cos ω / Real.sin ω, 0) + +private def capAffinePieces {Θ : AngleSet} (K : PolygonCapSpace Θ) : Finset (ℝ × ℝ) := + {(0, 0), fanAffine Θ.angle} ∪ + Θ.directions.biUnion fun t ↦ {capBAffine K t, capDAffine K t} + +/-- The lower boundary height of a polygon cap after removing its niche. -/ +def capBoundaryHeight {Θ : AngleSet} (K : PolygonCapSpace Θ) (x : ℝ) : ℝ := + max 0 (max (affineValue (fanAffine Θ.angle) x) + (Θ.directions.sup' Θ.nonempty fun t ↦ + min (affineValue (capBAffine K t) x) (affineValue (capDAffine K t) x))) + +private theorem continuous_capBoundaryHeight {Θ : AngleSet} (K : PolygonCapSpace Θ) : + Continuous (capBoundaryHeight K) := by + unfold capBoundaryHeight + apply Continuous.max continuous_const + apply Continuous.max (continuous_affineValue _) + apply Continuous.finset_sup'_apply Θ.nonempty + intro t ht + exact (continuous_affineValue _).min (continuous_affineValue _) + +private theorem capBoundaryHeight_eq_affineValue {Θ : AngleSet} + (K : PolygonCapSpace Θ) (x : ℝ) : + ∃ c ∈ capAffinePieces K, capBoundaryHeight K x = affineValue c x := by + obtain hzero | hrest := max_choice 0 + (max (affineValue (fanAffine Θ.angle) x) + (Θ.directions.sup' Θ.nonempty fun t ↦ + min (affineValue (capBAffine K t) x) (affineValue (capDAffine K t) x))) + · refine ⟨(0, 0), by simp [capAffinePieces], ?_⟩ + simpa [capBoundaryHeight, affineValue] using hzero + · obtain hfan | hsup := max_choice (affineValue (fanAffine Θ.angle) x) + (Θ.directions.sup' Θ.nonempty fun t ↦ + min (affineValue (capBAffine K t) x) (affineValue (capDAffine K t) x)) + · refine ⟨fanAffine Θ.angle, by simp [capAffinePieces], ?_⟩ + rw [capBoundaryHeight, hrest, hfan] + · obtain ⟨t, ht, htEq⟩ := Finset.exists_mem_eq_sup' Θ.nonempty + (fun t ↦ min (affineValue (capBAffine K t) x) + (affineValue (capDAffine K t) x)) + obtain hB | hD := min_choice (affineValue (capBAffine K t) x) + (affineValue (capDAffine K t) x) + · refine ⟨capBAffine K t, ?_, ?_⟩ + · apply Finset.mem_union.mpr + right + exact Finset.mem_biUnion.mpr ⟨t, ht, by simp⟩ + · rw [capBoundaryHeight, hrest, hsup, htEq, hB] + · refine ⟨capDAffine K t, ?_, ?_⟩ + · apply Finset.mem_union.mpr + right + exact Finset.mem_biUnion.mpr ⟨t, ht, by simp⟩ + · rw [capBoundaryHeight, hrest, hsup, htEq, hD] + +private theorem capAffinePieces_has_normal {Θ : AngleSet} (K : PolygonCapSpace Θ) + {c : ℝ × ℝ} (hc : c ∈ capAffinePieces K) : + ∃ t ∈ angleDomain Θ, Real.cos t + c.1 * Real.sin t = 0 := by + rw [capAffinePieces, Finset.mem_union] at hc + rcases hc with hc | hc + · simp only [Finset.mem_insert, Finset.mem_singleton] at hc + rcases hc with rfl | rfl + · refine ⟨Real.pi / 2, ?_, ?_⟩ + · simp [angleDomain] + · simp + · refine ⟨Θ.angle, ?_, ?_⟩ + · simp [angleDomain] + · simp only [fanAffine] + have hs : Real.sin Θ.angle ≠ 0 := (Real.sin_pos_of_pos_of_lt_pi Θ.angle_pos + (Θ.angle_le.trans_lt (by linarith [Real.pi_pos]))).ne' + field_simp + ring + · obtain ⟨t, ht, hc⟩ := Finset.mem_biUnion.mp hc + simp only [Finset.mem_insert, Finset.mem_singleton] at hc + rcases hc with rfl | rfl + · refine ⟨t, by simp [angleDomain, ht], ?_⟩ + simp only [capBAffine] + have hs : Real.sin t ≠ 0 := (Real.sin_pos_of_pos_of_lt_pi + (Θ.interior t ht).1 + ((Θ.interior t ht).2.trans_le Θ.angle_le |>.trans + (by linarith [Real.pi_pos]))).ne' + field_simp + ring + · refine ⟨t + Real.pi / 2, ?_, ?_⟩ + · simp [angleDomain, ht] + · simp only [capDAffine, Real.cos_add_pi_div_two, Real.sin_add_pi_div_two] + have hc : Real.cos t ≠ 0 := (Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, (Θ.interior t ht).1], + (Θ.interior t ht).2.trans_le Θ.angle_le⟩).ne' + field_simp + ring + +private theorem mem_innerQuadrant_iff_lt_min_affine {Θ : AngleSet} + (K : PolygonCapSpace Θ) {t : ℝ} (ht : t ∈ Θ.directions) (p : Point) : + p ∈ innerQuadrant K.val.val t ↔ + p 1 < min (affineValue (capBAffine K t) (p 0)) + (affineValue (capDAffine K t) (p 0)) := by + have htt := Θ.interior t ht + have hs : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi htt.1 + ((htt.2.trans_le Θ.angle_le).trans (by linarith [Real.pi_pos])) + have hc : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, htt.1], htt.2.trans_le Θ.angle_le⟩ + simp only [innerQuadrant, normalHalfPlane, Set.mem_inter_iff, + Bool.false_eq_true, ite_false, ite_true] + simp only [normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, PiLp.inner_apply, + RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, Matrix.cons_val_zero, + Matrix.cons_val_one, Matrix.cons_val_fin_one, Set.mem_ofPred_eq, Real.cos_add, + Real.cos_pi_div_two, mul_zero, Real.sin_pi_div_two, mul_one, zero_sub, Real.sin_add, + zero_add, neg_mul, neg_add_lt_iff_lt_add, lt_min_iff] + change + (Real.cos t * p 0 + Real.sin t * p 1 < + supportValue K.val.val (t : Real.Angle) - 1 ∧ + Real.cos t * p 1 < Real.sin t * p 0 + + (supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1)) ↔ _ + simp only [affineValue, capBAffine, capDAffine] + have heqB : -Real.cos t / Real.sin t * p 0 + + (supportValue K.val.val (t : Real.Angle) - 1) / Real.sin t = + (supportValue K.val.val (t : Real.Angle) - 1 - Real.cos t * p 0) / + Real.sin t := by + field_simp + ring + have heqD : Real.sin t / Real.cos t * p 0 + + (supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos t = + (Real.sin t * p 0 + + (supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1)) / + Real.cos t := by + field_simp + rw [heqB, heqD] + constructor + · rintro ⟨hB, hD⟩ + constructor + · apply (lt_div_iff₀ hs).2 + nlinarith + · apply (lt_div_iff₀ hc).2 + nlinarith + · rintro ⟨hB, hD⟩ + constructor + · apply (lt_div_iff₀ hs).mp at hB + nlinarith + · apply (lt_div_iff₀ hc).mp at hD + nlinarith + +private theorem mem_capFan_iff_max_affine_le {Θ : AngleSet} + (p : Point) : + p ∈ capFan Θ.angle ↔ + max 0 (affineValue (fanAffine Θ.angle) (p 0)) ≤ p 1 := by + have hs : 0 < Real.sin Θ.angle := Real.sin_pos_of_pos_of_lt_pi Θ.angle_pos + (Θ.angle_le.trans_lt (by linarith [Real.pi_pos])) + simp only [capFan, normalHalfPlane, ↓reduceIte, Bool.false_eq_true, normalVector, frame, + Real.Angle.cos_coe, Real.Angle.sin_coe, PiLp.inner_apply, RCLike.inner_apply, conj_trivial, + Fin.sum_univ_two, Fin.isValue, Matrix.cons_val_zero, Matrix.cons_val_one, + Matrix.cons_val_fin_one, Real.cos_pi_div_two, Real.sin_pi_div_two, zero_mul, one_mul, + zero_add, Set.mem_inter_iff, Set.mem_ofPred_eq, affineValue, fanAffine, add_zero, + sup_le_iff] + have heq : -Real.cos Θ.angle / Real.sin Θ.angle * p 0 = + (-Real.cos Θ.angle * p 0) / Real.sin Θ.angle := by ring + rw [heq] + constructor + · rintro ⟨hfan, hy⟩ + exact ⟨hy, (div_le_iff₀ hs).2 (by nlinarith)⟩ + · rintro ⟨hy, hfan⟩ + apply (div_le_iff₀ hs).mp at hfan + exact ⟨by nlinarith, hy⟩ + +/-- The fan outside the polygon niche is the epigraph of its boundary height. -/ +theorem capFan_sdiff_polygonNiche_eq_epigraph {Θ : AngleSet} + (K : PolygonCapSpace Θ) : + capFan Θ.angle \ polygonNiche Θ K.val = + {p | capBoundaryHeight K (p 0) ≤ p 1} := by + ext p + constructor + · rintro ⟨hfan, hniche⟩ + have hnotUnion : p ∉ ⋃ t ∈ Θ.directions, innerQuadrant K.val.val t := by + intro hp + exact hniche ⟨hfan, hp⟩ + have hfan' := (mem_capFan_iff_max_affine_le (Θ := Θ) p).mp hfan + change capBoundaryHeight K (p 0) ≤ p 1 + unfold capBoundaryHeight + apply max_le + · exact (le_max_left _ _).trans hfan' + · apply max_le + · exact (le_max_right _ _).trans hfan' + · apply (Finset.sup'_le_iff Θ.nonempty _).2 + intro t ht + apply le_of_not_gt + intro hlt + apply hnotUnion + exact Set.mem_iUnion₂.mpr + ⟨t, ht, (mem_innerQuadrant_iff_lt_min_affine K ht p).mpr hlt⟩ + · intro hp + change capBoundaryHeight K (p 0) ≤ p 1 at hp + unfold capBoundaryHeight at hp + have hzero : 0 ≤ p 1 := by + exact (le_max_left 0 _).trans hp + have hfanLine : affineValue (fanAffine Θ.angle) (p 0) ≤ p 1 := by + exact (le_max_left _ _).trans <| + (le_max_right 0 _).trans hp + have hsup : (Θ.directions.sup' Θ.nonempty fun t ↦ + min (affineValue (capBAffine K t) (p 0)) + (affineValue (capDAffine K t) (p 0))) ≤ p 1 := by + exact (le_max_right _ _).trans <| + (le_max_right 0 _).trans hp + have hfan : p ∈ capFan Θ.angle := + (mem_capFan_iff_max_affine_le (Θ := Θ) p).mpr (max_le hzero hfanLine) + refine ⟨hfan, ?_⟩ + rintro ⟨-, hunion⟩ + obtain ⟨t, ht, hquad⟩ := Set.mem_iUnion₂.mp hunion + have hlt := (mem_innerQuadrant_iff_lt_min_affine K ht p).mp hquad + have hle := ((Finset.sup'_le_iff Θ.nonempty _).1 hsup) t ht + exact (not_lt_of_ge hle) hlt + +/-- The cap outside its polygon niche is closed, with frontier the boundary graph. -/ +theorem capFan_sdiff_polygonNiche_closed_frontier {Θ : AngleSet} + (K : PolygonCapSpace Θ) : + IsClosed (capFan Θ.angle \ polygonNiche Θ K.val) ∧ + frontier (capFan Θ.angle \ polygonNiche Θ K.val) = + Set.range (pointOnGraph (capBoundaryHeight K)) := by + rw [capFan_sdiff_polygonNiche_eq_epigraph K] + exact ⟨isClosed_verticalEpigraph (continuous_capBoundaryHeight K), + frontier_verticalEpigraph (continuous_capBoundaryHeight K)⟩ + +/-- Every compact interval of the polygon-cap boundary graph is a finite polyline. -/ +theorem exists_capBoundary_graphPolyline {Θ : AngleSet} + (K : PolygonCapSpace Θ) {a b : ℝ} (hab : a < b) : + ∃ p : XMonotonePolylineData, + 0 < p.edges ∧ + p.vertices 0 = pointOnGraph (capBoundaryHeight K) a ∧ + p.vertices (Fin.last p.edges) = pointOnGraph (capBoundaryHeight K) b ∧ + p.carrier = pointOnGraph (capBoundaryHeight K) '' Set.Icc a b ∧ + (∀ i : Fin p.edges, ∃ t ∈ angleDomain Θ, + inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (t : Real.Angle)) = 0) := by + obtain ⟨p, hp, hp0, hp1, hpcarrier, hgraph, hpieces⟩ := + exists_graphPolyline_of_finite_affine_selector hab (capAffinePieces K) + (continuous_capBoundaryHeight K).continuousOn + (fun x _ ↦ capBoundaryHeight_eq_affineValue K x) + refine ⟨p, hp, hp0, hp1, hpcarrier, ?_⟩ + intro i + obtain ⟨c, hcL, hc⟩ := hpieces i + obtain ⟨t, ht, horth⟩ := capAffinePieces_has_normal K hcL + refine ⟨t, ht, ?_⟩ + have hab' : p.vertices i.castSucc 0 ≤ p.vertices i.succ 0 := + (p.increasing i.castSucc_lt_succ).le + rw [hgraph i.succ, hgraph i.castSucc] + change Set.EqOn (capBoundaryHeight K) (fun x ↦ c.1 * x + c.2) + (Set.Icc (p.vertices i.castSucc 0) (p.vertices i.succ 0)) at hc + exact inner_pointOnGraph_sub_normalVector_eq_zero + (m := c.1) (c := c.2) (t := t) + hc hab' horth + +/-- The lower endpoint of the zero-angle cap face lies on the horizontal axis. -/ +theorem capVertices_zero_snd_eq {Θ : AngleSet} (K : PolygonCapSpace Θ) : + (capVertices K.val 0).1.2 = + supportValue K.val.val (0 : Real.Angle) • normalVector (0 : Real.Angle) := by + let A := supportValue K.val.val (0 : Real.Angle) • normalVector (0 : Real.Angle) + have hAK : A ∈ (K.val.val : Set Point) := + supportValue_zero_smul_normalVector_mem K.val + have hAedge : A ∈ exposedEdge K.val.val (0 : Real.Angle) := by + refine ⟨hAK, ?_⟩ + change inner ℝ A (normalVector (0 : Real.Angle)) = + supportValue K.val.val (0 : Real.Angle) + dsimp [A] + simp [normalVector, frame, PiLp.inner_apply] + change (edgeVertices K.val.val (0 : Real.Angle)).2 = A + apply edgeVertices_snd_eq_of_tangent_isLeast K.val.val _ hAedge + intro q hq + have hqFan := K.val.subset_capFan hq.1 + have hqy : 0 ≤ q 1 := by + have h := hqFan.2 + change 0 ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at h + simpa [normalVector, frame, PiLp.inner_apply] using h + simp only [normalVector, frame, Real.Angle.cos_zero, Real.Angle.sin_zero, neg_zero, + tangentVector, PiLp.inner_apply, PiLp.smul_apply, smul_eq_mul, RCLike.inner_apply, + conj_trivial, Fin.sum_univ_two, Fin.isValue, Matrix.cons_val_zero, mul_one, zero_mul, + Matrix.cons_val_one, Matrix.cons_val_fin_one, mul_zero, add_zero, one_mul, zero_add, + ge_iff_le, A] + exact hqy + +/-- The terminal positive cap contact lies on the lower fan ray. -/ +theorem capVertices_angle_fst_eq {Θ : AngleSet} (K : PolygonCapSpace Θ) : + (capVertices K.val Θ.angle).2.1 = + supportValue K.val.val ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) • + tangentVector (Θ.angle : Real.Angle) := by + let L := supportValue K.val.val + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) + let C := L • tangentVector (Θ.angle : Real.Angle) + have hCK : C ∈ (K.val.val : Set Point) := by + by_cases hω : Θ.angle = Real.pi / 2 + · have hmem := supportValue_pi_smul_normalVector_mem_of_eq K.val hω + simpa [C, L, hω, tangentVector, normalVector, frame, PiLp.inner_apply] using hmem + · exact supportValue_add_pi_div_two_smul_tangentVector_mem_of_lt K.val + (Θ.angle_le.lt_of_ne hω) + have hCedge : C ∈ exposedEdge K.val.val + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) := by + refine ⟨hCK, ?_⟩ + change inner ℝ C + (normalVector ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle)) = L + rw [show ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) = + (Θ.angle : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) by rfl, + normalVector_add_pi_div_two, real_inner_smul_left, + inner_tangentVector_self] + ring + change (edgeVertices K.val.val + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle)).1 = C + apply edgeVertices_fst_eq_of_tangent_isGreatest K.val.val _ hCedge + intro q hq + have hqFan := K.val.subset_capFan hq.1 + have hqu : 0 ≤ inner ℝ q (normalVector (Θ.angle : Real.Angle)) := hqFan.1 + rw [tangentVector_add_pi_div_two] + simp only [inner_neg_right] + have hCzero : inner ℝ C (normalVector (Θ.angle : Real.Angle)) = 0 := by + dsimp [C] + rw [real_inner_smul_left, real_inner_comm, + inner_normalVector_tangentVector] + simp + rw [hCzero] + simpa using neg_nonpos.mpr hqu + +/-- The terminal cap contacts occur in strictly increasing horizontal order. -/ +theorem polygonCap_left_x_lt_right_x {Θ : AngleSet} (K : PolygonCapSpace Θ) : + ((capVertices K.val Θ.angle).2.1) 0 < ((capVertices K.val 0).1.2) 0 := by + let C := (capVertices K.val Θ.angle).2.1 + let A := (capVertices K.val 0).1.2 + have hq_le_A : ∀ q ∈ (K.val.val : Set Point), q 0 ≤ A 0 := by + intro q hq + have hq' := inner_le_supportValue K.val.val hq (0 : Real.Angle) + have hA := (edgeVertices_snd_mem K.val.val (0 : Real.Angle)).2 + change inner ℝ A (normalVector (0 : Real.Angle)) = + supportValue K.val.val (0 : Real.Angle) at hA + calc + q 0 = inner ℝ q (normalVector (0 : Real.Angle)) := by + simp [normalVector, frame, PiLp.inner_apply] + _ ≤ supportValue K.val.val (0 : Real.Angle) := hq' + _ = inner ℝ A (normalVector (0 : Real.Angle)) := hA.symm + _ = A 0 := by simp [normalVector, frame, PiLp.inner_apply] + by_cases hω : Θ.angle = Real.pi / 2 + · have hC_le_q : ∀ q ∈ (K.val.val : Set Point), C 0 ≤ q 0 := by + intro q hq + have hq' := inner_le_supportValue K.val.val hq (Real.pi : Real.Angle) + have hC := (edgeVertices_fst_mem K.val.val + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle)).2 + change inner ℝ C + (normalVector ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue K.val.val ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) at hC + have hang : ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) = + (Real.pi : Real.Angle) := by + congr 1 + rw [hω] + ring + rw [hang] at hC + have hqcoord : -q 0 ≤ supportValue K.val.val (Real.pi : Real.Angle) := by + simpa [normalVector, frame, PiLp.inner_apply] using hq' + have hCcoord : -C 0 = supportValue K.val.val (Real.pi : Real.Angle) := by + simpa [normalVector, frame, PiLp.inner_apply] using hC + linarith + by_contra hnot + have hAC : A 0 = C 0 := by + apply le_antisymm (le_of_not_gt hnot) + exact hC_le_q A (edgeVertices_snd_mem K.val.val (0 : Real.Angle)).1 + have hx : ∀ q ∈ (K.val.val : Set Point), q 0 = A 0 := by + intro q hq + exact le_antisymm (hq_le_A q hq) (hAC.trans_le (hC_le_q q hq)) + obtain ⟨u, huK, hu⟩ := exists_mem_inner_eq_supportValue K.val.val + ((Real.pi / 2 : ℝ) : Real.Angle) + obtain ⟨l, hlK, hl⟩ := exists_mem_inner_eq_supportValue K.val.val + ((3 * Real.pi / 2 : ℝ) : Real.Angle) + have huy : u 1 = 1 := by + rw [K.val.property.2.2.2.1] at hu + simpa [normalVector, frame, PiLp.inner_apply] using hu + have hly : l 1 = 0 := by + rw [K.val.property.2.2.2.2.2.1, inner_normalVector_three_pi_div_two] at hl + linarith + let m : Point := (2 : ℝ)⁻¹ • (u + l) + let N : Set Real.Angle := + ((fun t : ℝ ↦ (t : Real.Angle)) '' angleDomain Θ) ∪ capLowerNormals Θ.angle + let U : Set Point := ⋂ t ∈ N, + {p | inner ℝ p (normalVector t) < supportValue K.val.val t} + have hdomain_finite : (angleDomain Θ).Finite := by + unfold angleDomain + exact (Θ.directions.finite_toSet.union + (Θ.directions.finite_toSet.image (fun t ↦ t + Real.pi / 2))).union + (Set.toFinite _) + have hlower_finite : (capLowerNormals Θ.angle).Finite := by + simp [capLowerNormals] + have hNfinite : N.Finite := by + dsimp [N] + exact (hdomain_finite.image fun t : ℝ ↦ (t : Real.Angle)).union hlower_finite + have hUopen : IsOpen U := by + dsimp [U] + apply hNfinite.isOpen_biInter + intro t ht + exact isOpen_lt (by fun_prop) continuous_const + have hmU : m ∈ U := by + dsimp [U] + simp only [Set.mem_iInter] + intro t htN + rcases htN with ⟨r, hr, rfl⟩ | htLower + · have hrI : r ∈ Set.Ioo 0 Real.pi := by + rcases hr with (hr | ⟨s, hs, rfl⟩) | hr + · exact ⟨(Θ.interior r hr).1, + by linarith [(Θ.interior r hr).2, Θ.angle_le, Real.pi_pos]⟩ + · exact ⟨by linarith [(Θ.interior s hs).1, Real.pi_pos], + by linarith [(Θ.interior s hs).2, hω, Real.pi_pos]⟩ + · rcases hr with rfl | hr + · rw [hω] + constructor <;> linarith [Real.pi_pos] + · have hr : r = Real.pi / 2 := hr + rw [hr] + constructor <;> linarith [Real.pi_pos] + have hsin : 0 < Real.sin r := Real.sin_pos_of_pos_of_lt_pi hrI.1 hrI.2 + have htop : inner ℝ m (normalVector (r : Real.Angle)) < + inner ℝ u (normalVector (r : Real.Angle)) := by + have hux : u 0 = l 0 := (hx u huK).trans (hx l hlK).symm + simp only [smul_add, normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, + PiLp.inner_apply, PiLp.add_apply, PiLp.smul_apply, smul_eq_mul, RCLike.inner_apply, + conj_trivial, Fin.sum_univ_two, Fin.isValue, Matrix.cons_val_zero, + Matrix.cons_val_one, Matrix.cons_val_fin_one, huy, mul_one, hly, mul_zero, add_zero, + gt_iff_lt, m] + rw [hux] + norm_num + nlinarith + exact htop.trans_le (inner_le_supportValue K.val.val huK _) + · simp only [capLowerNormals, Set.mem_insert_iff, Set.mem_singleton_iff] at htLower + rcases htLower with rfl | rfl + · rw [K.val.property.2.2.2.2.1] + norm_num [m, hω, normalVector, frame, PiLp.inner_apply, huy, hly] + · rw [K.val.property.2.2.2.2.2.1] + change inner ℝ m + (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) < 0 + rw [inner_normalVector_three_pi_div_two] + simp [m, huy, hly] + obtain ⟨ε, hε, hball⟩ := (Metric.isOpen_iff.mp hUopen) m hmU + let q : Point := m + (ε / 2) • normalVector (0 : Real.Angle) + have hqm : q ∈ Metric.ball m ε := by + rw [Metric.mem_ball, dist_eq_norm] + simp only [q, add_sub_cancel_left, norm_smul] + rw [Real.norm_eq_abs, abs_of_pos (half_pos hε)] + have hn : ‖normalVector (0 : Real.Angle)‖ = 1 := by + simpa only [Real.Angle.coe_zero] using norm_normalVector_real 0 + rw [hn, mul_one] + linarith + have hqU : q ∈ U := hball hqm + have hqK : q ∈ (K.val.val : Set Point) := by + rw [K.property.eq_iInter_supportValue] + simp only [Set.mem_iInter] + intro t ht + have hqt := Set.mem_iInter.mp (Set.mem_iInter.mp hqU t) ht + change inner ℝ q (normalVector t) < supportValue K.val.val t at hqt + exact hqt.le + have hq0 : q 0 = A 0 + ε / 2 := by + simp [q, m, normalVector, frame, hx u huK, hx l hlK] + ring + have := hq_le_A q hqK + rw [hq0] at this + linarith + · have hωlt : Θ.angle < Real.pi / 2 := Θ.angle_le.lt_of_ne hω + rw [capVertices_zero_snd_eq K, capVertices_angle_fst_eq K] + have hA0 : 0 < supportValue K.val.val (0 : Real.Angle) := by + obtain ⟨p, hpK, hp⟩ := exists_mem_inner_eq_supportValue K.val.val + (Θ.angle : Real.Angle) + have hpy : p 1 ≤ 1 := by + have hpy' := inner_le_supportValue K.val.val hpK + ((Real.pi / 2 : ℝ) : Real.Angle) + rw [K.val.property.2.2.2.1] at hpy' + simpa [normalVector, frame, PiLp.inner_apply] using hpy' + rw [K.val.property.2.2.1] at hp + have hcos : 0 < Real.cos Θ.angle := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Θ.angle_pos, Real.pi_pos], hωlt⟩ + have hsin_lt : Real.sin Θ.angle < 1 := by + nlinarith only [Real.sin_sq_add_cos_sq Θ.angle, sq_pos_of_pos hcos] + have hpx : 0 < p 0 := by + simp [normalVector, frame, PiLp.inner_apply] at hp + have hsin : 0 ≤ Real.sin Θ.angle := + (Real.sin_pos_of_pos_of_lt_pi Θ.angle_pos + (Θ.angle_le.trans_lt (by linarith [Real.pi_pos]))).le + have hmul := mul_le_mul_of_nonneg_left hpy hsin + nlinarith + exact hpx.trans_le (by + have := inner_le_supportValue K.val.val hpK (0 : Real.Angle) + simpa [normalVector, frame, PiLp.inner_apply] using this) + have hL0 : 0 ≤ supportValue K.val.val + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) := + supportValue_nonneg_of_mem_capUpperAngles K.val hωlt + (Or.inr ⟨by linarith [Θ.angle_pos, Real.pi_pos], le_rfl⟩) + have hs : 0 < Real.sin Θ.angle := Real.sin_pos_of_pos_of_lt_pi Θ.angle_pos + (Θ.angle_le.trans_lt (by linarith [Real.pi_pos])) + have hprod : 0 ≤ supportValue K.val.val + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) * Real.sin Θ.angle := + mul_nonneg hL0 hs.le + have hprod' : 0 ≤ supportValue K.val.val + ((Θ.angle : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) * + Real.sin Θ.angle := by + simpa only [Real.Angle.coe_add] using hprod + simp [normalVector, tangentVector, frame] + nlinarith + +private theorem capBoundaryHeight_eq_zero_of_right {Θ : AngleSet} + (K : PolygonCapSpace Θ) {x : ℝ} + (hx : ((capVertices K.val 0).1.2) 0 ≤ x) : + capBoundaryHeight K x = 0 := by + let A := (capVertices K.val 0).1.2 + have hAeq := capVertices_zero_snd_eq K + have hsinω : 0 < Real.sin Θ.angle := Real.sin_pos_of_pos_of_lt_pi Θ.angle_pos + (Θ.angle_le.trans_lt (by linarith [Real.pi_pos])) + have hcosω : 0 ≤ Real.cos Θ.angle := Real.cos_nonneg_of_mem_Icc + ⟨by linarith [Θ.angle_pos, Real.pi_pos], Θ.angle_le⟩ + have hAfan := K.val.subset_capFan (edgeVertices_snd_mem K.val.val + (0 : Real.Angle)).1 + have hfanA : affineValue (fanAffine Θ.angle) (A 0) ≤ 0 := by + change A = supportValue K.val.val (0 : Real.Angle) • + normalVector (0 : Real.Angle) at hAeq + change A ∈ capFan Θ.angle at hAfan + have h := hAfan.1 + change 0 ≤ inner ℝ A (normalVector (Θ.angle : Real.Angle)) at h + rw [hAeq] at h + simp only [normalVector, frame, Real.Angle.cos_zero, Real.Angle.sin_zero, neg_zero, + Real.Angle.cos_coe, Real.Angle.sin_coe, PiLp.inner_apply, PiLp.smul_apply, + smul_eq_mul, RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, + Matrix.cons_val_zero, mul_one, Matrix.cons_val_one, Matrix.cons_val_fin_one, + mul_zero, add_zero] at h + have hAcoord : A 0 = supportValue K.val.val (0 : Real.Angle) := by + rw [hAeq] + simp [normalVector, frame] + rw [hAcoord] + simp only [affineValue, fanAffine, add_zero] + have heq : -Real.cos Θ.angle / Real.sin Θ.angle * + supportValue K.val.val (0 : Real.Angle) = + (-Real.cos Θ.angle * supportValue K.val.val (0 : Real.Angle)) / + Real.sin Θ.angle := by ring + rw [heq] + apply div_nonpos_of_nonpos_of_nonneg + · nlinarith [h] + · exact hsinω.le + have hfan : affineValue (fanAffine Θ.angle) x ≤ 0 := by + simp only [affineValue, fanAffine, add_zero] at hfanA ⊢ + have hslope : -Real.cos Θ.angle / Real.sin Θ.angle ≤ 0 := + div_nonpos_of_nonpos_of_nonneg (neg_nonpos.mpr hcosω) hsinω.le + exact (mul_le_mul_of_nonpos_left hx hslope).trans hfanA + have hpieces : (Θ.directions.sup' Θ.nonempty fun t ↦ + min (affineValue (capBAffine K t) x) + (affineValue (capDAffine K t) x)) ≤ 0 := by + apply (Finset.sup'_le_iff Θ.nonempty _).2 + intro t ht + apply (min_le_left _ _).trans + have htt := Θ.interior t ht + have hsint : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi htt.1 + ((htt.2.trans_le Θ.angle_le).trans (by linarith [Real.pi_pos])) + have hcost : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [htt.1, Real.pi_pos], htt.2.trans_le Θ.angle_le⟩ + have hgapBounds := wedgeGaps_positive_lower_bound K.val t htt + have hgap : 0 < (wedgeGaps K.val t).1 := + hgapBounds.2.1.trans_le hgapBounds.1 + rw [wedgeGaps_fst_eq_supportValue] at hgap + have hAcoord : A 0 = supportValue K.val.val (0 : Real.Angle) := by + change A = supportValue K.val.val (0 : Real.Angle) • + normalVector (0 : Real.Angle) at hAeq + rw [hAeq] + simp [normalVector, frame] + have hnum : supportValue K.val.val (t : Real.Angle) - 1 - Real.cos t * x < 0 := by + have hdiv := (sub_pos.mp hgap) + have hmul := (div_lt_iff₀ hcost).mp hdiv + rw [hAcoord] at hx + nlinarith + simp only [affineValue, capBAffine] + have heq : -Real.cos t / Real.sin t * x + + (supportValue K.val.val (t : Real.Angle) - 1) / Real.sin t = + (supportValue K.val.val (t : Real.Angle) - 1 - Real.cos t * x) / + Real.sin t := by + field_simp + ring + rw [heq] + exact div_nonpos_of_nonpos_of_nonneg hnum.le hsint.le + unfold capBoundaryHeight + rw [max_eq_left (max_le hfan hpieces)] + +private theorem capBoundaryHeight_eq_fanAffine_of_left {Θ : AngleSet} + (K : PolygonCapSpace Θ) {x : ℝ} + (hx : x ≤ ((capVertices K.val Θ.angle).2.1) 0) : + capBoundaryHeight K x = affineValue (fanAffine Θ.angle) x := by + let C := (capVertices K.val Θ.angle).2.1 + let L := supportValue K.val.val + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) + have hCeq := capVertices_angle_fst_eq K + have hsinω : 0 < Real.sin Θ.angle := Real.sin_pos_of_pos_of_lt_pi Θ.angle_pos + (Θ.angle_le.trans_lt (by linarith [Real.pi_pos])) + have hcosω : 0 ≤ Real.cos Θ.angle := Real.cos_nonneg_of_mem_Icc + ⟨by linarith [Θ.angle_pos, Real.pi_pos], Θ.angle_le⟩ + have hfan_nonneg : 0 ≤ affineValue (fanAffine Θ.angle) x := by + by_cases hω : Θ.angle = Real.pi / 2 + · simp [affineValue, fanAffine, hω] + · have hωlt : Θ.angle < Real.pi / 2 := Θ.angle_le.lt_of_ne hω + have hL : 0 ≤ L := supportValue_nonneg_of_mem_capUpperAngles K.val hωlt + (Or.inr ⟨by linarith [Θ.angle_pos, Real.pi_pos], le_rfl⟩) + have hCx : C 0 = -L * Real.sin Θ.angle := by + change C = L • tangentVector (Θ.angle : Real.Angle) at hCeq + rw [hCeq] + simp [tangentVector, frame] + have hx0 : x ≤ 0 := by + rw [hCx] at hx + nlinarith [mul_nonneg hL hsinω.le] + simp only [affineValue, fanAffine, add_zero] + exact mul_nonneg_of_nonpos_of_nonpos + (div_nonpos_of_nonpos_of_nonneg (neg_nonpos.mpr hcosω) hsinω.le) hx0 + have hpieces : (Θ.directions.sup' Θ.nonempty fun t ↦ + min (affineValue (capBAffine K t) x) + (affineValue (capDAffine K t) x)) ≤ + affineValue (fanAffine Θ.angle) x := by + apply (Finset.sup'_le_iff Θ.nonempty _).2 + intro t ht + apply (min_le_right _ _).trans + have htt := Θ.interior t ht + have hcost : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [htt.1, Real.pi_pos], htt.2.trans_le Θ.angle_le⟩ + have hcosδ : 0 < Real.cos (Θ.angle - t) := Real.cos_pos_of_mem_Ioo + ⟨by linarith [htt.2, Real.pi_pos], by linarith [htt.1, Θ.angle_le]⟩ + have hgapBounds := wedgeGaps_positive_lower_bound K.val t htt + have hgap : 0 < (wedgeGaps K.val t).2 := + hgapBounds.2.2.2.trans_le hgapBounds.2.2.1 + rw [wedgeGaps_snd_eq_supportValue] at hgap + have hCx : C 0 = -L * Real.sin Θ.angle := by + change C = L • tangentVector (Θ.angle : Real.Angle) at hCeq + rw [hCeq] + simp [tangentVector, frame] + have hsupport : + supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 < + L * Real.cos (Θ.angle - t) := by + have hdiv := sub_pos.mp hgap + exact (div_lt_iff₀ hcosδ).mp hdiv + have hnum : Real.cos (Θ.angle - t) / Real.sin Θ.angle * x + + supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 < 0 := by + have hcoef : 0 < Real.cos (Θ.angle - t) / Real.sin Θ.angle := + div_pos hcosδ hsinω + have hxC : x ≤ C 0 := by simpa [C] using hx + have hx' : x ≤ -L * Real.sin Θ.angle := hCx ▸ hxC + have hmul := mul_le_mul_of_nonneg_left hx' hcoef.le + have hrhs : Real.cos (Θ.angle - t) / Real.sin Θ.angle * + (-L * Real.sin Θ.angle) = -L * Real.cos (Θ.angle - t) := by + field_simp [hsinω.ne'] + rw [hrhs] at hmul + nlinarith + have hdiff : affineValue (capDAffine K t) x - + affineValue (fanAffine Θ.angle) x = + (Real.cos (Θ.angle - t) / Real.sin Θ.angle * x + + supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos t := by + simp only [affineValue, capDAffine, fanAffine] + rw [Real.cos_sub] + field_simp [hcost.ne', hsinω.ne'] + ring + rw [sub_eq_iff_eq_add] at hdiff + rw [hdiff] + have hdiv := div_nonpos_of_nonpos_of_nonneg hnum.le hcost.le + linarith + unfold capBoundaryHeight + rw [max_eq_left hpieces, max_eq_right hfan_nonneg] + +/-- The right cap contact lies on the boundary graph. -/ +theorem pointOnGraph_capBoundaryHeight_rightEndpoint {Θ : AngleSet} + (K : PolygonCapSpace Θ) : + pointOnGraph (capBoundaryHeight K) (((capVertices K.val 0).1.2) 0) = + (capVertices K.val 0).1.2 := by + have hAeq := capVertices_zero_snd_eq K + have hh := capBoundaryHeight_eq_zero_of_right K + (x := ((capVertices K.val 0).1.2) 0) le_rfl + ext i + fin_cases i + · rfl + · change capBoundaryHeight K (((capVertices K.val 0).1.2) 0) = + ((capVertices K.val 0).1.2) 1 + rw [hh, hAeq] + simp [normalVector, frame] + +/-- The left cap contact lies on the boundary graph. -/ +theorem pointOnGraph_capBoundaryHeight_leftEndpoint {Θ : AngleSet} + (K : PolygonCapSpace Θ) : + pointOnGraph (capBoundaryHeight K) (((capVertices K.val Θ.angle).2.1) 0) = + (capVertices K.val Θ.angle).2.1 := by + let C := (capVertices K.val Θ.angle).2.1 + let L := supportValue K.val.val + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) + have hCeq := capVertices_angle_fst_eq K + have hh := capBoundaryHeight_eq_fanAffine_of_left K + (x := ((capVertices K.val Θ.angle).2.1) 0) le_rfl + change C = L • tangentVector (Θ.angle : Real.Angle) at hCeq + ext i + fin_cases i + · rfl + · change capBoundaryHeight K (C 0) = C 1 + change capBoundaryHeight K (((capVertices K.val Θ.angle).2.1) 0) = C 1 + rw [hh] + have hCxy : C 0 = -L * Real.sin Θ.angle ∧ + C 1 = L * Real.cos Θ.angle := by + rw [hCeq] + simp [tangentVector, frame] + rw [hCxy.1, hCxy.2] + simp [affineValue, fanAffine] + field_simp [(Real.sin_pos_of_pos_of_lt_pi Θ.angle_pos + (Θ.angle_le.trans_lt (by linarith [Real.pi_pos]))).ne'] + +/-- The open ray to the right of a polygon-cap boundary is the right graph tail. -/ +theorem capRightOpenRay_eq_graph_image {Θ : AngleSet} + (K : PolygonCapSpace Θ) : + {q | ∃ s : ℝ, 0 < s ∧ + q = (capVertices K.val 0).1.2 + s • normalVector 0} = + pointOnGraph (capBoundaryHeight K) '' + Set.Ioi (((capVertices K.val 0).1.2) 0) := by + let A := (capVertices K.val 0).1.2 + have hAeq := capVertices_zero_snd_eq K + have hAy : A 1 = 0 := by + change A = supportValue K.val.val (0 : Real.Angle) • + normalVector (0 : Real.Angle) at hAeq + rw [hAeq] + simp [normalVector, frame] + ext q + constructor + · rintro ⟨s, hs, rfl⟩ + refine ⟨A 0 + s, ?_, ?_⟩ + · change ((capVertices K.val 0).1.2) 0 < A 0 + s + simpa [A] using (show A 0 < A 0 + s by linarith) + · have hh := capBoundaryHeight_eq_zero_of_right K + (x := A 0 + s) (by simpa [A] using (show A 0 ≤ A 0 + s by linarith)) + ext i + fin_cases i <;> simp [pointOnGraph, hh, A, hAy, normalVector, frame] + · rintro ⟨x, hx, rfl⟩ + refine ⟨x - A 0, ?_, ?_⟩ + · exact sub_pos.mpr (by simpa [A] using hx) + · have hh := capBoundaryHeight_eq_zero_of_right K + (x := x) (by simpa [A] using hx.le) + ext i + fin_cases i <;> simp [pointOnGraph, hh, A, hAy, normalVector, frame] + +/-- The open ray to the left of a polygon-cap boundary is the left graph tail. -/ +theorem capLeftOpenRay_eq_graph_image {Θ : AngleSet} + (K : PolygonCapSpace Θ) : + {q | ∃ s : ℝ, 0 < s ∧ q = (capVertices K.val Θ.angle).2.1 + + s • tangentVector (Θ.angle : Real.Angle)} = + pointOnGraph (capBoundaryHeight K) '' + Set.Iio (((capVertices K.val Θ.angle).2.1) 0) := by + let C := (capVertices K.val Θ.angle).2.1 + let L := supportValue K.val.val + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) + have hCeq := capVertices_angle_fst_eq K + have hs : 0 < Real.sin Θ.angle := Real.sin_pos_of_pos_of_lt_pi Θ.angle_pos + (Θ.angle_le.trans_lt (by linarith [Real.pi_pos])) + have hCxy : C 0 = -L * Real.sin Θ.angle ∧ C 1 = L * Real.cos Θ.angle := by + change C = L • tangentVector (Θ.angle : Real.Angle) at hCeq + rw [hCeq] + simp [tangentVector, frame] + ext q + constructor + · rintro ⟨s, hspos, rfl⟩ + let x := C 0 - s * Real.sin Θ.angle + have hx : x < C 0 := by dsimp [x]; nlinarith + refine ⟨x, by simpa [C] using hx, ?_⟩ + have hh := capBoundaryHeight_eq_fanAffine_of_left K + (x := x) (by simpa [C] using hx.le) + ext i + fin_cases i + · change x = C 0 + s * (-Real.sin Θ.angle) + dsimp [x] + ring + · change capBoundaryHeight K x = C 1 + s * Real.cos Θ.angle + rw [hh, hCxy.2] + simp only [affineValue, fanAffine, add_zero] + dsimp [x] + rw [hCxy.1] + field_simp [hs.ne'] + ring + · rintro ⟨x, hx, rfl⟩ + let s := (C 0 - x) / Real.sin Θ.angle + have hspos : 0 < s := div_pos (sub_pos.mpr (by simpa [C] using hx)) hs + refine ⟨s, hspos, ?_⟩ + have hh := capBoundaryHeight_eq_fanAffine_of_left K + (x := x) (by simpa [C] using hx.le) + ext i + fin_cases i + · change x = C 0 + s * (-Real.sin Θ.angle) + dsimp [s] + field_simp [hs.ne'] + ring + · change capBoundaryHeight K x = C 1 + s * Real.cos Θ.angle + rw [hh, hCxy.2] + simp only [affineValue, fanAffine, add_zero] + dsimp [s] + rw [hCxy.1] + field_simp [hs.ne'] + ring + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Polyline Definition +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The open ray starting at `p` in direction `v`, excluding its initial point. -/ +def openRay (p v : Point) : Set Point := + {q | ∃ s : ℝ, 0 < s ∧ q = p + s • v} + +/-- The polyline and two disjoint endpoint rays describe the fan-minus-niche frontier. -/ +def IsCapPolyline {Θ : AngleSet} (K : PolygonCapSpace Θ) + (p : XMonotonePolylineData) : Prop := + 0 < p.edges ∧ + p.vertices 0 = (capVertices K.val Θ.angle).2.1 ∧ + p.vertices (Fin.last p.edges) = (capVertices K.val 0).1.2 ∧ + (∀ i : Fin p.edges, ∃ t : angleDomain Θ, + inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (t.val : Real.Angle)) = 0) ∧ + IsClosed (capFan Θ.angle \ polygonNiche Θ K.val) ∧ + frontier (capFan Θ.angle \ polygonNiche Θ K.val) = + openRay ((capVertices K.val Θ.angle).2.1) (tangentVector (Θ.angle : Real.Angle)) ∪ + p.carrier ∪ openRay ((capVertices K.val 0).1.2) (normalVector 0) ∧ + Disjoint (openRay ((capVertices K.val Θ.angle).2.1) + (tangentVector (Θ.angle : Real.Angle))) p.carrier ∧ + Disjoint p.carrier (openRay ((capVertices K.val 0).1.2) (normalVector 0)) ∧ + Disjoint (openRay ((capVertices K.val Θ.angle).2.1) + (tangentVector (Θ.angle : Real.Angle))) + (openRay ((capVertices K.val 0).1.2) (normalVector 0)) + +theorem polygonCap_polyline {Θ : AngleSet} (K : PolygonCapSpace Θ) : + ∃ p : XMonotonePolylineData, IsCapPolyline K p := by + let C := (capVertices K.val Θ.angle).2.1 + let A := (capVertices K.val 0).1.2 + have hCA : C 0 < A 0 := polygonCap_left_x_lt_right_x K + obtain ⟨p, hpedge, hpC, hpA, hcarrier, hedge⟩ := + exists_capBoundary_graphPolyline K hCA + refine ⟨p, hpedge, ?_, ?_, ?_, ?_, ?_, ?_, ?_, ?_⟩ + · rw [hpC] + exact pointOnGraph_capBoundaryHeight_leftEndpoint K + · rw [hpA] + exact pointOnGraph_capBoundaryHeight_rightEndpoint K + · intro i + obtain ⟨t, ht, hi⟩ := hedge i + exact ⟨⟨t, ht⟩, hi⟩ + · exact (capFan_sdiff_polygonNiche_closed_frontier K).1 + · rw [(capFan_sdiff_polygonNiche_closed_frontier K).2, + show openRay ((capVertices K.val Θ.angle).2.1) + (tangentVector (Θ.angle : Real.Angle)) = _ by + simpa [openRay] using capLeftOpenRay_eq_graph_image K, + show openRay ((capVertices K.val 0).1.2) (normalVector 0) = _ by + simpa [openRay] using capRightOpenRay_eq_graph_image K, hcarrier] + ext q + constructor + · rintro ⟨x, rfl⟩ + rcases lt_or_ge x (C 0) with hx | hx + · apply Or.inl + apply Or.inl + exact ⟨x, by simpa [C] using hx, rfl⟩ + · rcases le_or_gt x (A 0) with hxA | hxA + · apply Or.inl + apply Or.inr + exact ⟨x, ⟨hx, hxA⟩, rfl⟩ + · apply Or.inr + exact ⟨x, by simpa [A] using hxA, rfl⟩ + · rintro ((⟨x, hx, rfl⟩ | ⟨x, hx, rfl⟩) | ⟨x, hx, rfl⟩) <;> + exact ⟨x, rfl⟩ + · rw [show openRay ((capVertices K.val Θ.angle).2.1) + (tangentVector (Θ.angle : Real.Angle)) = _ by + simpa [openRay] using capLeftOpenRay_eq_graph_image K, hcarrier] + apply pointOnGraph_image_disjoint + rw [Set.disjoint_left] + intro x hx hy + have hx' : x < C 0 := by simpa [C] using hx + exact (not_lt_of_ge hy.1) hx' + · rw [hcarrier, show openRay ((capVertices K.val 0).1.2) (normalVector 0) = _ by + simpa [openRay] using capRightOpenRay_eq_graph_image K] + apply pointOnGraph_image_disjoint + rw [Set.disjoint_left] + intro x hx hy + have hy' : A 0 < x := by simpa [A] using hy + exact (not_lt_of_ge hx.2) hy' + · rw [show openRay ((capVertices K.val Θ.angle).2.1) + (tangentVector (Θ.angle : Real.Angle)) = _ by + simpa [openRay] using capLeftOpenRay_eq_graph_image K, + show openRay ((capVertices K.val 0).1.2) (normalVector 0) = _ by + simpa [openRay] using capRightOpenRay_eq_graph_image K] + apply pointOnGraph_image_disjoint + rw [Set.disjoint_left] + intro x hx hy + have hx' : x < C 0 := by simpa [C] using hx + have hy' : A 0 < x := by simpa [A] using hy + linarith + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Polyline +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A chosen monotone polyline describing the polygonal cap’s niche boundary. -/ +def polygonCapPolyline {Θ : AngleSet} (K : PolygonCapSpace Θ) : XMonotonePolylineData := + (polygonCap_polyline K).choose + +/-- Sum the lengths of polyline edges perpendicular to a prescribed wall direction. -/ +def polygonCapPolylineLength {Θ : AngleSet} (K : PolygonCapSpace Θ) + (t : angleDomain Θ) : ℝ := by + classical + let p := polygonCapPolyline K + exact ∑ i : Fin p.edges, + if inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (t.val : Real.Angle)) = 0 then + dist (p.vertices i.castSucc) (p.vertices i.succ) else 0 + +/-- The cap’s surface measure at each wall direction equals the corresponding polyline length. -/ +def IsBalancedPolygonCap {Θ : AngleSet} (K : PolygonCapSpace Θ) : Prop := + ∀ t : angleDomain Θ, surfaceAreaMeasure K.val.val {(t.val : Real.Angle)} = + ENNReal.ofReal (polygonCapPolylineLength K t) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Upper Boundary / Polygon +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open MeasureTheory + +private lemma PolygonCapSpace.eq_of_mem_of_fst_eq_of_fst_extremal {Θ : AngleSet} + (K : PolygonCapSpace Θ) {a b : Point} + (ha : a ∈ (K.val.val : Set Point)) (hb : b ∈ (K.val.val : Set Point)) + (hab : a 0 = b 0) + (hext : (∀ q ∈ (K.val.val : Set Point), q 0 ≤ a 0) ∨ + (∀ q ∈ (K.val.val : Set Point), a 0 ≤ q 0)) : a = b := by + apply ConvexBody.eq_of_mem_of_fst_eq_of_fst_extremal K.val.val + (((fun t : ℝ ↦ (t : Real.Angle)) '' angleDomain Θ) ∪ capLowerNormals Θ.angle) + _ K.property _ ha hb hab hext + · have hfinite : (angleDomain Θ).Finite := by + unfold angleDomain + exact (Θ.directions.finite_toSet.union + (Θ.directions.finite_toSet.image (fun t ↦ t + Real.pi / 2))).union + (Set.toFinite _) + exact (hfinite.image _).union (by simp [capLowerNormals]) + · intro t ht + rcases ht with ⟨r, hr, rfl⟩ | ht + · exact (Real.sin_pos_of_pos_of_lt_pi + (angleDomain_subset_Ioo Θ hr).1 (angleDomain_subset_Ioo Θ hr).2).ne' + · simp only [capLowerNormals, Set.mem_insert_iff, Set.mem_singleton_iff] at ht + rcases ht with rfl | rfl + · change Real.sin (Θ.angle + Real.pi) ≠ 0 + rw [Real.sin_add_pi] + exact neg_ne_zero.mpr (Real.sin_pos_of_pos_of_lt_pi Θ.angle_pos + (by linarith [Θ.angle_le, Real.pi_pos])).ne' + · change Real.sin (3 * Real.pi / 2) ≠ 0 + norm_num [show 3 * Real.pi / 2 = Real.pi + Real.pi / 2 by ring, + Real.sin_add] + +private def upperSupportAffine (K : ConvexBody Point) (t : ℝ) : ℝ × ℝ := + (-Real.cos t / Real.sin t, supportValue K (t : Real.Angle) / Real.sin t) + +private def upperSupportHeight (K : ConvexBody Point) (D : Finset ℝ) + (hne : D.Nonempty) (x : ℝ) : ℝ := + D.inf' hne (fun t ↦ affineValue (upperSupportAffine K t) x) + +private lemma continuous_upperSupportHeight (K : ConvexBody Point) (D : Finset ℝ) + (hne : D.Nonempty) : Continuous (upperSupportHeight K D hne) := by + apply Continuous.finset_inf'_apply hne + intro t ht + exact continuous_affineValue _ + +private lemma upperSupportHeight_eq_affineValue (K : ConvexBody Point) (D : Finset ℝ) + (hne : D.Nonempty) (x : ℝ) : + ∃ c ∈ D.image (upperSupportAffine K), + upperSupportHeight K D hne x = affineValue c x := by + obtain ⟨t, ht, heq⟩ := Finset.exists_mem_eq_inf' hne + (fun t ↦ affineValue (upperSupportAffine K t) x) + exact ⟨upperSupportAffine K t, Finset.mem_image.mpr ⟨t, ht, rfl⟩, heq⟩ + +private lemma inner_le_support_iff_snd_le_affine (K : ConvexBody Point) + {t : ℝ} (ht : 0 < Real.sin t) (q : Point) : + inner ℝ q (normalVector (t : Real.Angle)) ≤ supportValue K (t : Real.Angle) ↔ + q 1 ≤ affineValue (upperSupportAffine K t) (q 0) := by + have hformula : affineValue (upperSupportAffine K t) (q 0) = + (supportValue K (t : Real.Angle) - q 0 * Real.cos t) / Real.sin t := by + simp only [affineValue, upperSupportAffine] + ring + rw [hformula, le_div_iff₀ ht] + simp only [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + simp only [Fin.isValue, Real.Angle.cos_coe, Real.Angle.sin_coe, Matrix.cons_val_zero, + RCLike.inner_apply, conj_trivial, Matrix.cons_val_one, Matrix.cons_val_fin_one] + constructor <;> intro h <;> nlinarith + +private lemma snd_le_upperSupportHeight_iff (K : ConvexBody Point) + (D : Finset ℝ) (hne : D.Nonempty) (hD : ∀ t ∈ D, 0 < Real.sin t) (q : Point) : + q 1 ≤ upperSupportHeight K D hne (q 0) ↔ + ∀ t ∈ D, inner ℝ q (normalVector (t : Real.Angle)) ≤ + supportValue K (t : Real.Angle) := by + rw [upperSupportHeight, Finset.le_inf'_iff] + exact forall_congr' fun t ↦ forall_congr' fun ht ↦ + (inner_le_support_iff_snd_le_affine K (hD t ht) q).symm + +private lemma PolygonCapSpace.mem_iff_mem_capFan_and_support_le {Θ : AngleSet} + (K : PolygonCapSpace Θ) (p : Point) : + p ∈ (K.val.val : Set Point) ↔ p ∈ capFan Θ.angle ∧ + ∀ t ∈ angleDomain Θ, + inner ℝ p (normalVector (t : Real.Angle)) ≤ supportValue K.val.val (t : Real.Angle) := by + constructor + · intro hp + exact ⟨K.val.subset_capFan hp, fun t _ ↦ inner_le_supportValue K.val.val hp _⟩ + · rintro ⟨hp, hupper⟩ + rw [K.property.eq_iInter_supportValue] + simp only [Set.mem_iInter] + intro a ha + rcases ha with ⟨t, ht, rfl⟩ | ha + · exact hupper t ht + rcases ha with rfl | rfl + · change inner ℝ p (normalVector ((Θ.angle + Real.pi : ℝ) : Real.Angle)) ≤ _ + rw [K.val.property.2.2.2.2.1, normalVector_add_pi, inner_neg_right] + exact neg_nonpos.mpr hp.1 + · have hang : ((3 * Real.pi / 2 : ℝ) : Real.Angle) = + (((Real.pi / 2 + Real.pi : ℝ) : Real.Angle)) := by congr 1; ring + change inner ℝ p (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) ≤ _ + rw [K.val.property.2.2.2.2.2.1, hang, normalVector_add_pi, inner_neg_right] + exact neg_nonpos.mpr hp.2 + +private lemma mem_capFan_of_fst_eq_of_snd_le {ω : ℝ} (hω : 0 ≤ Real.sin ω) + {p q : Point} (hp : p ∈ capFan ω) (hx : p 0 = q 0) (hy : p 1 ≤ q 1) : + q ∈ capFan ω := by + change 0 ≤ inner ℝ q (normalVector (ω : Real.Angle)) ∧ + 0 ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + change 0 ≤ inner ℝ p (normalVector (ω : Real.Angle)) ∧ + 0 ≤ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at hp + simp only [normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, + PiLp.inner_apply, RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, + Matrix.cons_val_zero, Matrix.cons_val_one, Matrix.cons_val_fin_one, + Real.cos_pi_div_two, Real.sin_pi_div_two, zero_mul, one_mul, zero_add] at hp ⊢ + rw [hx] at hp + constructor + · nlinarith [hp.1, mul_nonneg hω (sub_nonneg.mpr hy)] + · exact hp.2.trans hy + +private lemma pointOnGraph_upperSupportHeight_mem {Θ : AngleSet} (K : PolygonCapSpace Θ) + (D : Finset ℝ) (hne : D.Nonempty) (hD : (D : Set ℝ) = angleDomain Θ) + (hsin : ∀ t ∈ D, 0 < Real.sin t) {x : ℝ} + (hx : ∃ q ∈ (K.val.val : Set Point), q 0 = x) : + pointOnGraph (upperSupportHeight K.val.val D hne) x ∈ (K.val.val : Set Point) := by + obtain ⟨q, hq, hqx⟩ := hx + have hqle : q 1 ≤ upperSupportHeight K.val.val D hne x := by + rw [← hqx, snd_le_upperSupportHeight_iff K.val.val D hne hsin] + exact fun t _ ↦ inner_le_supportValue K.val.val hq _ + apply (K.mem_iff_mem_capFan_and_support_le _).mpr + constructor + · apply mem_capFan_of_fst_eq_of_snd_le + (Real.sin_nonneg_of_nonneg_of_le_pi Θ.angle_pos.le + (Θ.angle_le.trans (by linarith [Real.pi_pos]))) (K.val.subset_capFan hq) + · exact hqx + · exact hqle + · intro t ht + have htD : t ∈ D := by change t ∈ (D : Set ℝ); rwa [hD] + apply (inner_le_support_iff_snd_le_affine K.val.val (hsin t htD) _).mpr + change upperSupportHeight K.val.val D hne x ≤ + affineValue (upperSupportAffine K.val.val t) x + exact Finset.inf'_le _ htD + +private lemma exists_upperSupportHeight_polyline {Θ : AngleSet} (K : PolygonCapSpace Θ) + (D : Finset ℝ) (hne : D.Nonempty) (hD : (D : Set ℝ) = angleDomain Θ) + (hsin : ∀ t ∈ D, 0 < Real.sin t) {a b : ℝ} (hab : a < b) + (hfeasible : ∀ x ∈ Set.Icc a b, ∃ q ∈ (K.val.val : Set Point), q 0 = x) : + ∃ p : XMonotonePolylineData, + 0 < p.edges ∧ + p.vertices 0 = pointOnGraph (upperSupportHeight K.val.val D hne) a ∧ + p.vertices (Fin.last p.edges) = pointOnGraph (upperSupportHeight K.val.val D hne) b ∧ + p.carrier = pointOnGraph (upperSupportHeight K.val.val D hne) '' Set.Icc a b ∧ + p.carrier ⊆ (K.val.val : Set Point) ∧ + ∀ i : Fin p.edges, ∃ t ∈ D, + inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (t : Real.Angle)) = 0 ∧ + inner ℝ (p.vertices i.castSucc) (normalVector (t : Real.Angle)) = + supportValue K.val.val (t : Real.Angle) := by + obtain ⟨p, hp, hpa, hpb, hcarrier, hvertices, hpieces⟩ := + exists_graphPolyline_of_finite_affine_selector hab (D.image (upperSupportAffine K.val.val)) + (continuous_upperSupportHeight K.val.val D hne).continuousOn + (fun x _ ↦ upperSupportHeight_eq_affineValue K.val.val D hne x) + refine ⟨p, hp, hpa, hpb, hcarrier, ?_, ?_⟩ + · rw [hcarrier] + rintro q ⟨x, hx, rfl⟩ + exact pointOnGraph_upperSupportHeight_mem K D hne hD hsin (hfeasible x hx) + · intro i + obtain ⟨c, hc, heq⟩ := hpieces i + obtain ⟨t, ht, rfl⟩ := Finset.mem_image.mp hc + refine ⟨t, ht, ?_, ?_⟩ + · rw [hvertices i.succ, hvertices i.castSucc] + apply inner_pointOnGraph_sub_normalVector_eq_zero heq + (p.increasing i.castSucc_lt_succ).le + dsimp [upperSupportAffine] + field_simp [(hsin t ht).ne'] + ring + · have hstart := heq ⟨le_rfl, (p.increasing i.castSucc_lt_succ).le⟩ + rw [hvertices i.castSucc] + simp only [pointOnGraph, normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + simp only [Real.Angle.cos_coe, Real.Angle.sin_coe] + change Real.cos t * (p.vertices i.castSucc) 0 + + Real.sin t * upperSupportHeight K.val.val D hne ((p.vertices i.castSucc) 0) = _ + rw [hstart] + dsimp [upperSupportAffine, affineValue] + field_simp [(hsin t ht).ne'] + ring + +private lemma exists_upperSupportHeight_polyline_with_endpoints {Θ : AngleSet} + (K : PolygonCapSpace Θ) (D : Finset ℝ) (hne : D.Nonempty) + (hD : (D : Set ℝ) = angleDomain Θ) {a b : Point} + (ha : a ∈ (K.val.val : Set Point)) (hb : b ∈ (K.val.val : Set Point)) + (hab : a 0 < b 0) + (hmin : ∀ q ∈ (K.val.val : Set Point), a 0 ≤ q 0) + (hmax : ∀ q ∈ (K.val.val : Set Point), q 0 ≤ b 0) : + ∃ p : XMonotonePolylineData, 0 < p.edges ∧ p.vertices 0 = a ∧ + p.vertices (Fin.last p.edges) = b ∧ + p.carrier = pointOnGraph (upperSupportHeight K.val.val D hne) '' Set.Icc (a 0) (b 0) ∧ + p.carrier ⊆ (K.val.val : Set Point) ∧ + ∀ i : Fin p.edges, ∃ t ∈ D, + inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (t : Real.Angle)) = 0 ∧ + inner ℝ (p.vertices i.castSucc) (normalVector (t : Real.Angle)) = + supportValue K.val.val (t : Real.Angle) := by + have hsin : ∀ t ∈ D, 0 < Real.sin t := by + intro t ht + have ht' : t ∈ angleDomain Θ := hD ▸ ht + exact Real.sin_pos_of_pos_of_lt_pi (angleDomain_subset_Ioo Θ ht').1 + (angleDomain_subset_Ioo Θ ht').2 + obtain ⟨p, hp, hpa, hpb, hc, hK, hn⟩ := + exists_upperSupportHeight_polyline K D hne hD hsin hab + (fun _ hx ↦ ConvexBody.exists_mem_fst_eq_of_mem_Icc K.val.val ha hb hab hx) + refine ⟨p, hp, ?_, ?_, hc, hK, hn⟩ + · rw [hpa] + apply K.eq_of_mem_of_fst_eq_of_fst_extremal + (pointOnGraph_upperSupportHeight_mem K D hne hD hsin ⟨a, ha, rfl⟩) ha rfl + exact Or.inr hmin + · rw [hpb] + apply K.eq_of_mem_of_fst_eq_of_fst_extremal + (pointOnGraph_upperSupportHeight_mem K D hne hD hsin ⟨b, hb, rfl⟩) hb rfl + exact Or.inl hmax + +/-- The terminal cap contacts bound every horizontal coordinate of a polygon cap. -/ +lemma PolygonCapSpace.capVertices_fst_bounds {Θ : AngleSet} (K : PolygonCapSpace Θ) + {q : Point} (hq : q ∈ (K.val.val : Set Point)) : + ((capVertices K.val Θ.angle).2.1) 0 ≤ q 0 ∧ + q 0 ≤ ((capVertices K.val 0).1.2) 0 := by + constructor + · rw [capVertices_angle_fst_eq] + have hu := (K.val.subset_capFan hq).1 + have hv := inner_le_supportValue K.val.val hq + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) + have hs : 0 ≤ Real.sin Θ.angle := (Real.sin_pos_of_pos_of_lt_pi Θ.angle_pos + (by linarith [Θ.angle_le, Real.pi_pos])).le + have hc : 0 ≤ Real.cos Θ.angle := Real.cos_nonneg_of_mem_Icc + ⟨by linarith [Θ.angle_pos, Real.pi_pos], Θ.angle_le⟩ + change 0 ≤ inner ℝ q (normalVector (Θ.angle : Real.Angle)) at hu + simp [normalVector, tangentVector, frame, PiLp.inner_apply, + Real.Angle.cos_add_pi_div_two, Real.Angle.sin_add_pi_div_two] at hu hv ⊢ + nlinarith [congrArg (fun z : ℝ ↦ z * q 0) (Real.sin_sq_add_cos_sq Θ.angle), + mul_nonneg hu hc, mul_le_mul_of_nonneg_right hv hs, + sq_nonneg (Real.sin Θ.angle), sq_nonneg (Real.cos Θ.angle)] + · have hq' := inner_le_supportValue K.val.val hq (0 : Real.Angle) + have hA := (edgeVertices_snd_mem K.val.val (0 : Real.Angle)).2 + change inner ℝ ((capVertices K.val 0).1.2) (normalVector (0 : Real.Angle)) = + supportValue K.val.val (0 : Real.Angle) at hA + simp [normalVector, frame, PiLp.inner_apply] at hq' hA + linarith + +private lemma PolygonCapSpace.exists_upperBoundary_polyline {Θ : AngleSet} + (K : PolygonCapSpace Θ) (D : Finset ℝ) (hne : D.Nonempty) + (hD : (D : Set ℝ) = angleDomain Θ) : + ∃ p : XMonotonePolylineData, 0 < p.edges ∧ + p.vertices 0 = (capVertices K.val Θ.angle).2.1 ∧ + p.vertices (Fin.last p.edges) = (capVertices K.val 0).1.2 ∧ + p.carrier = pointOnGraph (upperSupportHeight K.val.val D hne) '' + Set.Icc (((capVertices K.val Θ.angle).2.1) 0) + (((capVertices K.val 0).1.2) 0) ∧ + p.carrier ⊆ (K.val.val : Set Point) ∧ + ∀ i : Fin p.edges, ∃ t ∈ D, + inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (t : Real.Angle)) = 0 ∧ + inner ℝ (p.vertices i.castSucc) (normalVector (t : Real.Angle)) = + supportValue K.val.val (t : Real.Angle) := by + apply exists_upperSupportHeight_polyline_with_endpoints K D hne hD + (edgeVertices_fst_mem K.val.val + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle)).1 + (edgeVertices_snd_mem K.val.val (0 : Real.Angle)).1 + (polygonCap_left_x_lt_right_x K) + · exact fun q hq ↦ (K.capVertices_fst_bounds hq).1 + · exact fun q hq ↦ (K.capVertices_fst_bounds hq).2 + +private lemma PolygonCapSpace.exposedEdge_eq_upperSupportGraph_inter {Θ : AngleSet} + (K : PolygonCapSpace Θ) (D : Finset ℝ) (hne : D.Nonempty) + (hD : (D : Set ℝ) = angleDomain Θ) {t : ℝ} (ht : t ∈ D) : + exposedEdge K.val.val (t : Real.Angle) = + (pointOnGraph (upperSupportHeight K.val.val D hne) '' + Set.Icc (((capVertices K.val Θ.angle).2.1) 0) + (((capVertices K.val 0).1.2) 0)) ∩ + {q | inner ℝ q (normalVector (t : Real.Angle)) = + supportValue K.val.val (t : Real.Angle)} := by + have hsin : ∀ r ∈ D, 0 < Real.sin r := by + intro r hr + have hr' : r ∈ angleDomain Θ := hD ▸ hr + exact Real.sin_pos_of_pos_of_lt_pi (angleDomain_subset_Ioo Θ hr').1 + (angleDomain_subset_Ioo Θ hr').2 + ext q + constructor + · rintro ⟨hq, heq⟩ + refine ⟨⟨q 0, K.capVertices_fst_bounds hq, ?_⟩, heq⟩ + have hle : q 1 ≤ upperSupportHeight K.val.val D hne (q 0) := + (snd_le_upperSupportHeight_iff K.val.val D hne hsin q).mpr + (fun r _ ↦ inner_le_supportValue K.val.val hq _) + have hge := Finset.inf'_le (fun r ↦ affineValue (upperSupportAffine K.val.val r) (q 0)) ht + have haff : affineValue (upperSupportAffine K.val.val t) (q 0) = q 1 := by + change inner ℝ q (normalVector (t : Real.Angle)) = + supportValue K.val.val (t : Real.Angle) at heq + simp [normalVector, frame, PiLp.inner_apply] at heq + dsimp [affineValue, upperSupportAffine] + field_simp [(hsin t ht).ne'] + nlinarith [heq] + have hy : upperSupportHeight K.val.val D hne (q 0) = q 1 := + le_antisymm (haff ▸ hge) hle + ext i + fin_cases i + · rfl + · exact hy + · rintro ⟨⟨x, hx, rfl⟩, heq⟩ + refine ⟨pointOnGraph_upperSupportHeight_mem K D hne hD hsin ?_, heq⟩ + exact ConvexBody.exists_mem_fst_eq_of_mem_Icc K.val.val + (edgeVertices_fst_mem K.val.val + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle)).1 + (edgeVertices_snd_mem K.val.val (0 : Real.Angle)).1 + (polygonCap_left_x_lt_right_x K) hx + +/-- The sine-weighted exposed-face lengths equal the horizontal separation of cap contacts. -/ +lemma PolygonCapSpace.sum_hausdorffMeasure_exposedEdge_mul_sin {Θ : AngleSet} + (K : PolygonCapSpace Θ) (D : Finset ℝ) (hne : D.Nonempty) + (hD : (D : Set ℝ) = angleDomain Θ) : + ∑ t ∈ D, (Measure.hausdorffMeasure 1 (exposedEdge K.val.val (t : Real.Angle))).toReal * + Real.sin t = ((capVertices K.val 0).1.2) 0 - ((capVertices K.val Θ.angle).2.1) 0 := by + classical + obtain ⟨p, hp, hpa, hpb, hc, hK, hn⟩ := K.exists_upperBoundary_polyline D hne hD + have hangle : ∀ t ∈ D, t ∈ Set.Ioo 0 Real.pi := by + intro t ht + exact angleDomain_subset_Ioo Θ (hD ▸ ht) + have hface (t : ℝ) (ht : t ∈ D) : + (Measure.hausdorffMeasure 1 (exposedEdge K.val.val (t : Real.Angle))).toReal = + ∑ i : Fin p.edges, + if inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (t : Real.Angle)) = 0 then + dist (p.vertices i.castSucc) (p.vertices i.succ) else 0 := by + rw [K.exposedEdge_eq_upperSupportGraph_inter D hne hD ht, ← hc] + apply p.toReal_hausdorffMeasure_carrier_inter_hyperplane + intro i hi + obtain ⟨r, hr, horth, hstart⟩ := hn i + have hrt := eq_of_inner_sub_normalVector_eq_zero (hangle r hr) (hangle t ht) + (p.increasing i.castSucc_lt_succ) horth hi + subst r + intro q hq + rw [segment_eq_image'] at hq + obtain ⟨c, hcoef, rfl⟩ := hq + change inner ℝ (p.vertices i.castSucc + c • + (p.vertices i.succ - p.vertices i.castSucc)) (normalVector (t : Real.Angle)) = _ + rw [inner_add_left, real_inner_smul_left, hi, mul_zero, add_zero, hstart] + calc + _ = ∑ t ∈ D, (∑ i : Fin p.edges, + if inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (t : Real.Angle)) = 0 then + dist (p.vertices i.castSucc) (p.vertices i.succ) else 0) * Real.sin t := by + apply Finset.sum_congr rfl + intro t ht + rw [hface t ht] + _ = _ := by + rw [p.sum_normal_lengths_mul_sin D hangle + (fun i ↦ by obtain ⟨t, ht, ho, _⟩ := hn i; exact ⟨t, ht, ho⟩), hpa, hpb] + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Gerver.Area.Evaluator`. +* `Gerver.Area.CapFan`. +* `Gerver.Area.NicheCover`. +* `Gerver.Area`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Soundness of the contact evaluator + +`GerverAreaCert.evalZ s z kind` evaluates one of the five phase formulas of Gerver's sofa, +and one of its four contact curves, on an interval of rotation angles. This module proves +that it encloses the analytic value: `gerverBranch_eq` identifies the branch that the +piecewise vendor definitions `GerverSofa.Romik.path` and `GerverSofa.PartC.alphaBetaAt` +select, the five per-stage lemmas verify the phase formulas and the two velocity +coefficients against `GerverSofa.Romik.path1 … path5` and +`GerverSofa.Romik.alphaBeta1 … alphaBeta5`, and `evalZ_sound` assembles them through the +coordinate dictionary `fromPlane_paperGerverContacts`. `contactZ_sound` and +`evalZ_interval_sound` specialise this to a grid angle and to a whole grid subinterval. +-/ + +/-! ### The contact evaluator -/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open GerverAreaCert + +/-- The five certified phase maps, selected by stage index. -/ +def gerverBranchPath : ℕ → ℝ → GerverSofa.Point + | 1 => GerverSofa.Romik.path1 GerverSofa.PartB.params + | 2 => GerverSofa.Romik.path2 GerverSofa.PartB.params + | 3 => GerverSofa.Romik.path3 GerverSofa.PartB.params + | 4 => GerverSofa.Romik.path4 GerverSofa.PartB.params + | _ => GerverSofa.Romik.path5 GerverSofa.PartB.params + +/-- The five certified velocity-coefficient pairs, selected by stage index. -/ +def gerverBranchAlphaBeta : ℕ → ℝ → GerverSofa.Point + | 1 => GerverSofa.Romik.alphaBeta1 GerverSofa.PartB.params + | 2 => GerverSofa.Romik.alphaBeta2 GerverSofa.PartB.params + | 3 => GerverSofa.Romik.alphaBeta3 GerverSofa.PartB.params + | 4 => GerverSofa.Romik.alphaBeta4 GerverSofa.PartB.params + | _ => GerverSofa.Romik.alphaBeta5 GerverSofa.PartB.params + +/-- On a grid angle of stage `s` both piecewise definitions select branch `s`. -/ +theorem gerverBranch_eq (s : ℕ) (hs1 : 1 ≤ s) (hs5 : s ≤ 5) {x : ℝ} + (hxhi : x ≤ gerverStageTime s) (hxlo : 2 ≤ s → gerverStageTime (s - 1) < x) : + GerverSofa.Romik.path GerverSofa.PartB.params x = gerverBranchPath s x ∧ + GerverSofa.PartC.alphaBetaAt x = gerverBranchAlphaBeta s x := by + have o12 : GerverSofa.PartB.params.phi < GerverSofa.PartB.params.theta := by + have := gerverStageTime_lt_succ 1 (by norm_num) + rwa [gerverStageTime_one, gerverStageTime_two] at this + have o23 : GerverSofa.PartB.params.theta < GerverSofa.PartC.eta := by + have := gerverStageTime_lt_succ 2 (by norm_num) + rwa [gerverStageTime_two, gerverStageTime_three] at this + have o34 : GerverSofa.PartC.eta < GerverSofa.PartC.tau := by + have := gerverStageTime_lt_succ 3 (by norm_num) + rwa [gerverStageTime_three, gerverStageTime_four] at this + have hpath : GerverSofa.Romik.path GerverSofa.PartB.params x = + if x ≤ GerverSofa.PartB.params.phi then + GerverSofa.Romik.path1 GerverSofa.PartB.params x + else if x ≤ GerverSofa.PartB.params.theta then + GerverSofa.Romik.path2 GerverSofa.PartB.params x + else if x ≤ GerverSofa.PartC.eta then + GerverSofa.Romik.path3 GerverSofa.PartB.params x + else if x ≤ GerverSofa.PartC.tau then + GerverSofa.Romik.path4 GerverSofa.PartB.params x + else GerverSofa.Romik.path5 GerverSofa.PartB.params x := rfl + have hab : GerverSofa.PartC.alphaBetaAt x = + if x ≤ GerverSofa.PartB.params.phi then + GerverSofa.Romik.alphaBeta1 GerverSofa.PartB.params x + else if x ≤ GerverSofa.PartB.params.theta then + GerverSofa.Romik.alphaBeta2 GerverSofa.PartB.params x + else if x ≤ GerverSofa.PartC.eta then + GerverSofa.Romik.alphaBeta3 GerverSofa.PartB.params x + else if x ≤ GerverSofa.PartC.tau then + GerverSofa.Romik.alphaBeta4 GerverSofa.PartB.params x + else GerverSofa.Romik.alphaBeta5 GerverSofa.PartB.params x := rfl + interval_cases s + · rw [gerverStageTime_one] at hxhi + refine ⟨?_, ?_⟩ + · rw [hpath, ite_eq_left hxhi]; rfl + · rw [hab, ite_eq_left hxhi]; rfl + · rw [gerverStageTime_two] at hxhi + have h1 : ¬ x ≤ GerverSofa.PartB.params.phi := by + have := hxlo (by norm_num) + rw [gerverStageTime_one] at this + exact not_le.mpr this + refine ⟨?_, ?_⟩ + · rw [hpath, ite_eq_right h1, ite_eq_left hxhi]; rfl + · rw [hab, ite_eq_right h1, ite_eq_left hxhi]; rfl + · rw [gerverStageTime_three] at hxhi + have h2 : GerverSofa.PartB.params.theta < x := by + have := hxlo (by norm_num) + rwa [gerverStageTime_two] at this + have h1 : ¬ x ≤ GerverSofa.PartB.params.phi := not_le.mpr (o12.trans h2) + refine ⟨?_, ?_⟩ + · rw [hpath, ite_eq_right h1, ite_eq_right (not_le.mpr h2), ite_eq_left hxhi]; rfl + · rw [hab, ite_eq_right h1, ite_eq_right (not_le.mpr h2), ite_eq_left hxhi]; rfl + · rw [gerverStageTime_four] at hxhi + have h3 : GerverSofa.PartC.eta < x := by + have := hxlo (by norm_num) + rwa [gerverStageTime_three] at this + have h2 : GerverSofa.PartB.params.theta < x := o23.trans h3 + have h1 : ¬ x ≤ GerverSofa.PartB.params.phi := not_le.mpr (o12.trans h2) + refine ⟨?_, ?_⟩ + · rw [hpath, ite_eq_right h1, ite_eq_right (not_le.mpr h2), ite_eq_right (not_le.mpr h3), + ite_eq_left hxhi] + rfl + · rw [hab, ite_eq_right h1, ite_eq_right (not_le.mpr h2), ite_eq_right (not_le.mpr h3), + ite_eq_left hxhi] + rfl + · have h4 : GerverSofa.PartC.tau < x := by + have := hxlo (by norm_num) + rwa [gerverStageTime_four] at this + have h3 : GerverSofa.PartC.eta < x := o34.trans h4 + have h2 : GerverSofa.PartB.params.theta < x := o23.trans h3 + have h1 : ¬ x ≤ GerverSofa.PartB.params.phi := not_le.mpr (o12.trans h2) + refine ⟨?_, ?_⟩ + · rw [hpath, ite_eq_right h1, ite_eq_right (not_le.mpr h2), ite_eq_right (not_le.mpr h3), + ite_eq_right (not_le.mpr h4)] + rfl + · rw [hab, ite_eq_right h1, ite_eq_right (not_le.mpr h2), ite_eq_right (not_le.mpr h3), + ite_eq_right (not_le.mpr h4)] + rfl + +/-- Transport an enclosure along an equality of the enclosed real number. -/ +private theorem contains_of_eq_real {z : SI} {a b : ℝ} (hab : a = b) (h : SI.Contains z a) : + SI.Contains z b := hab ▸ h + +open SI in +/-- Stage-1 interval soundness of the phase map and of the two velocity offsets. -/ +private theorem evalZ_stage1_sound {z : SI} {x : ℝ} + (hsin : SI.Contains (trigZ z).1 (Real.sin x)) + (hcos : SI.Contains (trigZ z).2 (Real.cos x)) : + SI.Contains (evalZ 1 z 0).1 (gerverBranchPath 1 x).1 ∧ + SI.Contains (evalZ 1 z 0).2 (gerverBranchPath 1 x).2 ∧ + SI.Contains (evalZ 1 z 2).1 + ((gerverBranchPath 1 x).1 - (gerverBranchAlphaBeta 1 x).1 * Real.sin x) ∧ + SI.Contains (evalZ 1 z 2).2 + ((gerverBranchPath 1 x).2 + (gerverBranchAlphaBeta 1 x).1 * Real.cos x) ∧ + SI.Contains (evalZ 1 z 4).1 + ((gerverBranchPath 1 x).1 - (gerverBranchAlphaBeta 1 x).2 * Real.cos x) ∧ + SI.Contains (evalZ 1 z 4).2 + ((gerverBranchPath 1 x).2 - (gerverBranchAlphaBeta 1 x).2 * Real.sin x) := by + obtain ⟨hk11, hk12, -, -, -, -, -, -, -, -, ha1, ha2, -⟩ := contains_params + have hf := contains_add (contains_add (contains_mul ha1 hcos) (contains_mul ha2 hsin)) + (contains_ratI (a := -1) (b := 1) (by norm_num)) + have hg := contains_add (contains_add (contains_mul (contains_neg ha2) hcos) + (contains_mul ha1 hsin)) (contains_ratI (a := -1) (b := 2) (by norm_num)) + have hal := contains_add (contains_add (contains_mul (contains_imul (-2) ha1) hsin) + (contains_mul (contains_imul 2 ha2) hcos)) (contains_ratI (a := 1) (b := 2) (by norm_num)) + have hbe := contains_add (contains_add (contains_mul (contains_imul 2 ha1) hcos) + (contains_mul (contains_imul 2 ha2) hsin)) (contains_ratI (a := -1) (b := 1) (by norm_num)) + have hx := contains_add (contains_sub (contains_mul hcos hf) (contains_mul hsin hg)) hk11 + have hy := contains_add (contains_add (contains_mul hsin hf) (contains_mul hcos hg)) hk12 + refine ⟨contains_of_eq_real ?_ hx, contains_of_eq_real ?_ hy, + contains_of_eq_real ?_ (contains_sub hx (contains_mul hal hsin)), + contains_of_eq_real ?_ (contains_add hy (contains_mul hal hcos)), + contains_of_eq_real ?_ (contains_sub hx (contains_mul hbe hcos)), + contains_of_eq_real ?_ (contains_sub hy (contains_mul hbe hsin))⟩ <;> + · simp only [gerverBranchPath, gerverBranchAlphaBeta, GerverSofa.Romik.path1, + GerverSofa.Romik.alphaBeta1, GerverSofa.Romik.addK, GerverSofa.Romik.rot] + push_cast + ring + +open SI in +/-- Stage-2 interval soundness of the phase map and of the two velocity offsets. -/ +private theorem evalZ_stage2_sound {z : SI} {x : ℝ} (hz : SI.Contains z x) + (hsin : SI.Contains (trigZ z).1 (Real.sin x)) + (hcos : SI.Contains (trigZ z).2 (Real.cos x)) : + SI.Contains (evalZ 2 z 0).1 (gerverBranchPath 2 x).1 ∧ + SI.Contains (evalZ 2 z 0).2 (gerverBranchPath 2 x).2 ∧ + SI.Contains (evalZ 2 z 2).1 + ((gerverBranchPath 2 x).1 - (gerverBranchAlphaBeta 2 x).1 * Real.sin x) ∧ + SI.Contains (evalZ 2 z 2).2 + ((gerverBranchPath 2 x).2 + (gerverBranchAlphaBeta 2 x).1 * Real.cos x) ∧ + SI.Contains (evalZ 2 z 4).1 + ((gerverBranchPath 2 x).1 - (gerverBranchAlphaBeta 2 x).2 * Real.cos x) ∧ + SI.Contains (evalZ 2 z 4).2 + ((gerverBranchPath 2 x).2 - (gerverBranchAlphaBeta 2 x).2 * Real.sin x) := by + obtain ⟨-, -, hk21, hk22, -, -, -, -, -, -, -, -, hb1, hb2, -⟩ := contains_params + have hf := contains_add (contains_add + (contains_divn (b := 4) (by norm_num) (contains_neg (contains_mul hz hz))) + (contains_mul hb1 hz)) hb2 + have hg := contains_add (contains_add (contains_divn (b := 2) (by norm_num) hz) + (contains_neg hb1)) (contains_ratI (a := -1) (b := 1) (by norm_num)) + have hal := contains_add (contains_add (contains_ratI (a := 1) (b := 1) (by norm_num)) + (contains_imul 2 hb1)) (contains_neg hz) + have hbe := contains_add hf (contains_ratI (a := 1) (b := 2) (by norm_num)) + have hx := contains_add (contains_sub (contains_mul hcos hf) (contains_mul hsin hg)) hk21 + have hy := contains_add (contains_add (contains_mul hsin hf) (contains_mul hcos hg)) hk22 + refine ⟨contains_of_eq_real ?_ hx, contains_of_eq_real ?_ hy, + contains_of_eq_real ?_ (contains_sub hx (contains_mul hal hsin)), + contains_of_eq_real ?_ (contains_add hy (contains_mul hal hcos)), + contains_of_eq_real ?_ (contains_sub hx (contains_mul hbe hcos)), + contains_of_eq_real ?_ (contains_sub hy (contains_mul hbe hsin))⟩ <;> + · simp only [gerverBranchPath, gerverBranchAlphaBeta, GerverSofa.Romik.path2, + GerverSofa.Romik.alphaBeta2, GerverSofa.Romik.addK, GerverSofa.Romik.rot] + push_cast + ring + +open SI in +/-- Stage-3 interval soundness of the phase map and of the two velocity offsets. -/ +private theorem evalZ_stage3_sound {z : SI} {x : ℝ} (hz : SI.Contains z x) + (hsin : SI.Contains (trigZ z).1 (Real.sin x)) + (hcos : SI.Contains (trigZ z).2 (Real.cos x)) : + SI.Contains (evalZ 3 z 0).1 (gerverBranchPath 3 x).1 ∧ + SI.Contains (evalZ 3 z 0).2 (gerverBranchPath 3 x).2 ∧ + SI.Contains (evalZ 3 z 2).1 + ((gerverBranchPath 3 x).1 - (gerverBranchAlphaBeta 3 x).1 * Real.sin x) ∧ + SI.Contains (evalZ 3 z 2).2 + ((gerverBranchPath 3 x).2 + (gerverBranchAlphaBeta 3 x).1 * Real.cos x) ∧ + SI.Contains (evalZ 3 z 4).1 + ((gerverBranchPath 3 x).1 - (gerverBranchAlphaBeta 3 x).2 * Real.cos x) ∧ + SI.Contains (evalZ 3 z 4).2 + ((gerverBranchPath 3 x).2 - (gerverBranchAlphaBeta 3 x).2 * Real.sin x) := by + obtain ⟨-, -, -, -, hk31, hk32, -, -, -, -, -, -, -, -, hc1, hc2, -⟩ := contains_params + have hf := contains_sub hc1 hz + have hg := contains_add hc2 hz + have hal := contains_add (contains_ratI (a := -1) (b := 1) (by norm_num)) (contains_neg hg) + have hbe := contains_add (contains_ratI (a := 1) (b := 1) (by norm_num)) hf + have hx := contains_add (contains_sub (contains_mul hcos hf) (contains_mul hsin hg)) hk31 + have hy := contains_add (contains_add (contains_mul hsin hf) (contains_mul hcos hg)) hk32 + refine ⟨contains_of_eq_real ?_ hx, contains_of_eq_real ?_ hy, + contains_of_eq_real ?_ (contains_sub hx (contains_mul hal hsin)), + contains_of_eq_real ?_ (contains_add hy (contains_mul hal hcos)), + contains_of_eq_real ?_ (contains_sub hx (contains_mul hbe hcos)), + contains_of_eq_real ?_ (contains_sub hy (contains_mul hbe hsin))⟩ <;> + simp only [gerverBranchPath, gerverBranchAlphaBeta, GerverSofa.Romik.path3, + GerverSofa.Romik.alphaBeta3, GerverSofa.Romik.addK, GerverSofa.Romik.rot] <;> + push_cast <;> ring + +open SI in +/-- Stage-4 interval soundness of the phase map and of the two velocity offsets. -/ +private theorem evalZ_stage4_sound {z : SI} {x : ℝ} (hz : SI.Contains z x) + (hsin : SI.Contains (trigZ z).1 (Real.sin x)) + (hcos : SI.Contains (trigZ z).2 (Real.cos x)) : + SI.Contains (evalZ 4 z 0).1 (gerverBranchPath 4 x).1 ∧ + SI.Contains (evalZ 4 z 0).2 (gerverBranchPath 4 x).2 ∧ + SI.Contains (evalZ 4 z 2).1 + ((gerverBranchPath 4 x).1 - (gerverBranchAlphaBeta 4 x).1 * Real.sin x) ∧ + SI.Contains (evalZ 4 z 2).2 + ((gerverBranchPath 4 x).2 + (gerverBranchAlphaBeta 4 x).1 * Real.cos x) ∧ + SI.Contains (evalZ 4 z 4).1 + ((gerverBranchPath 4 x).1 - (gerverBranchAlphaBeta 4 x).2 * Real.cos x) ∧ + SI.Contains (evalZ 4 z 4).2 + ((gerverBranchPath 4 x).2 - (gerverBranchAlphaBeta 4 x).2 * Real.sin x) := by + obtain ⟨-, -, -, -, -, -, hk41, hk42, -, -, -, -, -, -, -, -, hd1, hd2, -⟩ := contains_params + have hf := contains_add (contains_add + (contains_neg (contains_divn (b := 2) (by norm_num) hz)) hd1) + (contains_ratI (a := -1) (b := 1) (by norm_num)) + have hg := contains_add (contains_add + (contains_divn (b := 4) (by norm_num) (contains_neg (contains_mul hz hz))) + (contains_mul hd1 hz)) hd2 + have hal := contains_add (contains_neg hg) (contains_ratI (a := -1) (b := 2) (by norm_num)) + have hbe := contains_add (contains_add (contains_imul 2 hd1) + (contains_ratI (a := -1) (b := 1) (by norm_num))) (contains_neg hz) + have hx := contains_add (contains_sub (contains_mul hcos hf) (contains_mul hsin hg)) hk41 + have hy := contains_add (contains_add (contains_mul hsin hf) (contains_mul hcos hg)) hk42 + refine ⟨contains_of_eq_real ?_ hx, contains_of_eq_real ?_ hy, + contains_of_eq_real ?_ (contains_sub hx (contains_mul hal hsin)), + contains_of_eq_real ?_ (contains_add hy (contains_mul hal hcos)), + contains_of_eq_real ?_ (contains_sub hx (contains_mul hbe hcos)), + contains_of_eq_real ?_ (contains_sub hy (contains_mul hbe hsin))⟩ <;> + · simp only [gerverBranchPath, gerverBranchAlphaBeta, GerverSofa.Romik.path4, + GerverSofa.Romik.alphaBeta4, GerverSofa.Romik.addK, GerverSofa.Romik.rot] + push_cast + ring + +open SI in +/-- Stage-5 interval soundness of the phase map and of the two velocity offsets. -/ +private theorem evalZ_stage5_sound {z : SI} {x : ℝ} + (hsin : SI.Contains (trigZ z).1 (Real.sin x)) + (hcos : SI.Contains (trigZ z).2 (Real.cos x)) : + SI.Contains (evalZ 5 z 0).1 (gerverBranchPath 5 x).1 ∧ + SI.Contains (evalZ 5 z 0).2 (gerverBranchPath 5 x).2 ∧ + SI.Contains (evalZ 5 z 2).1 + ((gerverBranchPath 5 x).1 - (gerverBranchAlphaBeta 5 x).1 * Real.sin x) ∧ + SI.Contains (evalZ 5 z 2).2 + ((gerverBranchPath 5 x).2 + (gerverBranchAlphaBeta 5 x).1 * Real.cos x) ∧ + SI.Contains (evalZ 5 z 4).1 + ((gerverBranchPath 5 x).1 - (gerverBranchAlphaBeta 5 x).2 * Real.cos x) ∧ + SI.Contains (evalZ 5 z 4).2 + ((gerverBranchPath 5 x).2 - (gerverBranchAlphaBeta 5 x).2 * Real.sin x) := by + obtain ⟨-, -, -, -, -, -, -, -, hk51, hk52, -, -, -, -, -, -, -, -, he1, he2, -⟩ := + contains_params + have hf := contains_add (contains_add (contains_mul he1 hcos) (contains_mul he2 hsin)) + (contains_ratI (a := -1) (b := 2) (by norm_num)) + have hg := contains_add (contains_add (contains_mul (contains_neg he2) hcos) + (contains_mul he1 hsin)) (contains_ratI (a := -1) (b := 1) (by norm_num)) + have hal := contains_add (contains_add (contains_ratI (a := 1) (b := 1) (by norm_num)) + (contains_mul (contains_imul (-2) he1) hsin)) (contains_mul (contains_imul 2 he2) hcos) + have hbe := contains_add (contains_add (contains_mul (contains_imul 2 he1) hcos) + (contains_mul (contains_imul 2 he2) hsin)) (contains_ratI (a := -1) (b := 2) (by norm_num)) + have hx := contains_add (contains_sub (contains_mul hcos hf) (contains_mul hsin hg)) hk51 + have hy := contains_add (contains_add (contains_mul hsin hf) (contains_mul hcos hg)) hk52 + refine ⟨contains_of_eq_real ?_ hx, contains_of_eq_real ?_ hy, + contains_of_eq_real ?_ (contains_sub hx (contains_mul hal hsin)), + contains_of_eq_real ?_ (contains_add hy (contains_mul hal hcos)), + contains_of_eq_real ?_ (contains_sub hx (contains_mul hbe hcos)), + contains_of_eq_real ?_ (contains_sub hy (contains_mul hbe hsin))⟩ <;> + · simp only [gerverBranchPath, gerverBranchAlphaBeta, GerverSofa.Romik.path5, + GerverSofa.Romik.alphaBeta5, GerverSofa.Romik.addK, GerverSofa.Romik.rot] + push_cast + ring + +/-- Per-stage soundness of the phase-map evaluation, i.e. of the `kind = 0` output. +Pure interval arithmetic against `GerverSofa.Romik.path1 … path5`: five cases, each a chain +of `SI.contains_*` applications on top of `contains_params`, `hsin` and `hcos`. -/ +theorem evalZ_zero_sound (s : ℕ) (hs1 : 1 ≤ s) (hs5 : s ≤ 5) {z : SI} {x : ℝ} + (hz : SI.Contains z x) (hsin : SI.Contains (trigZ z).1 (Real.sin x)) + (hcos : SI.Contains (trigZ z).2 (Real.cos x)) : + SI.Contains (evalZ s z 0).1 (gerverBranchPath s x).1 ∧ + SI.Contains (evalZ s z 0).2 (gerverBranchPath s x).2 := by + interval_cases s + · exact ⟨(evalZ_stage1_sound hsin hcos).1, (evalZ_stage1_sound hsin hcos).2.1⟩ + · exact ⟨(evalZ_stage2_sound hz hsin hcos).1, (evalZ_stage2_sound hz hsin hcos).2.1⟩ + · exact ⟨(evalZ_stage3_sound hz hsin hcos).1, (evalZ_stage3_sound hz hsin hcos).2.1⟩ + · exact ⟨(evalZ_stage4_sound hz hsin hcos).1, (evalZ_stage4_sound hz hsin hcos).2.1⟩ + · exact ⟨(evalZ_stage5_sound hsin hcos).1, (evalZ_stage5_sound hsin hcos).2.1⟩ + +/-- Per-stage soundness of the `B` and `D` offsets, i.e. of the two velocity +coefficients `α` and `β` against `GerverSofa.Romik.alphaBeta1 … alphaBeta5`. Note +`evalZ s z 1 = evalZ s z 2` shifted by `(cos x, sin x)` and +`evalZ s z 3 = evalZ s z 4` shifted by `(-sin x, cos x)`, so the remaining two kinds need no +separate stage analysis. -/ +theorem evalZ_offset_sound (s : ℕ) (hs1 : 1 ≤ s) (hs5 : s ≤ 5) {z : SI} {x : ℝ} + (hz : SI.Contains z x) (hsin : SI.Contains (trigZ z).1 (Real.sin x)) + (hcos : SI.Contains (trigZ z).2 (Real.cos x)) : + SI.Contains (evalZ s z 2).1 + ((gerverBranchPath s x).1 - (gerverBranchAlphaBeta s x).1 * Real.sin x) ∧ + SI.Contains (evalZ s z 2).2 + ((gerverBranchPath s x).2 + (gerverBranchAlphaBeta s x).1 * Real.cos x) ∧ + SI.Contains (evalZ s z 4).1 + ((gerverBranchPath s x).1 - (gerverBranchAlphaBeta s x).2 * Real.cos x) ∧ + SI.Contains (evalZ s z 4).2 + ((gerverBranchPath s x).2 - (gerverBranchAlphaBeta s x).2 * Real.sin x) := by + interval_cases s + · exact (evalZ_stage1_sound hsin hcos).2.2 + · exact (evalZ_stage2_sound hz hsin hcos).2.2 + · exact (evalZ_stage3_sound hz hsin hcos).2.2 + · exact (evalZ_stage4_sound hz hsin hcos).2.2 + · exact (evalZ_stage5_sound hsin hcos).2.2 + +/-- Soundness of the executable phase/contact evaluator: on the branch that the +piecewise definitions select, the interval evaluation encloses both coordinates of the +selected curve. Reduces to `gerverBranch_eq`, `evalZ_zero_sound`, `evalZ_offset_sound`, +`trigZ_sound` and the coordinate dictionary +`fromPlane_paperGerverContacts` (`GerverSofa.u t = (cos t, sin t)`, +`GerverSofa.v t = (-sin t, cos t)`). -/ +theorem evalZ_sound (s : ℕ) (hs1 : 1 ≤ s) (hs5 : s ≤ 5) {z : SI} {x : ℝ} + (hz : SI.Contains z x) (hx0 : 0 ≤ x) (hxT : x ≤ Real.pi / 2) + (hxhi : x ≤ gerverStageTime s) (hxlo : 2 ≤ s → gerverStageTime (s - 1) < x) + (kind : ℕ) (hk : kind ≤ 4) : + SI.Contains (evalZ s z kind).1 (gerverContactPoint kind x 0) ∧ + SI.Contains (evalZ s z kind).2 (gerverContactPoint kind x 1) := by + have hx2 : x ≤ 2 := by linarith [Real.pi_lt_d2] + obtain ⟨hsin, hcos⟩ := trigZ_sound hz hx0 hx2 + obtain ⟨hp, hab⟩ := gerverBranch_eq s hs1 hs5 hxhi hxlo + obtain ⟨h0x, h0y⟩ := evalZ_zero_sound s hs1 hs5 hz hsin hcos + obtain ⟨h2x, h2y, h4x, h4y⟩ := evalZ_offset_sound s hs1 hs5 hz hsin hcos + have ht : x ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨hx0, hxT⟩ + -- The four contact curves in terms of the branch phase map and coefficients. + set P : ℝ × ℝ := gerverBranchPath s x with hPdef + set AB : ℝ × ℝ := gerverBranchAlphaBeta s x with hABdef + have hpath1 : (GerverSofa.Romik.path GerverSofa.PartB.params x).1 = P.1 := by rw [hp] + have hpath2 : (GerverSofa.Romik.path GerverSofa.PartB.params x).2 = P.2 := by rw [hp] + have hal : (GerverSofa.PartC.alphaBetaAt x).1 = AB.1 := by rw [hab] + have hbe : (GerverSofa.PartC.alphaBetaAt x).2 = AB.2 := by rw [hab] + have hdA1 : gerverContactPoint 1 x 0 = P.1 - AB.1 * Real.sin x + Real.cos x := by + have h' : gerverContactPoint 1 x 0 = (GerverSofa.PartC.A x).1 := + congrArg Prod.fst (fromPlane_paperGerverContacts x ht 0) + rw [h'] + change (GerverSofa.Romik.path GerverSofa.PartB.params x).1 + + (GerverSofa.PartC.alphaBetaAt x).1 * (GerverSofa.v x).1 + (GerverSofa.u x).1 = _ + rw [hpath1, hal] + change P.1 + AB.1 * (-Real.sin x) + Real.cos x = _ + ring + have hdA2 : gerverContactPoint 1 x 1 = P.2 + AB.1 * Real.cos x + Real.sin x := by + have h' : gerverContactPoint 1 x 1 = (GerverSofa.PartC.A x).2 := + congrArg Prod.snd (fromPlane_paperGerverContacts x ht 0) + rw [h'] + change (GerverSofa.Romik.path GerverSofa.PartB.params x).2 + + (GerverSofa.PartC.alphaBetaAt x).1 * (GerverSofa.v x).2 + (GerverSofa.u x).2 = _ + rw [hpath2, hal] + change P.2 + AB.1 * Real.cos x + Real.sin x = _ + ring + have hdB1 : gerverContactPoint 2 x 0 = P.1 - AB.1 * Real.sin x := by + have h' : gerverContactPoint 2 x 0 = (GerverSofa.PartC.B x).1 := + congrArg Prod.fst (fromPlane_paperGerverContacts x ht 1) + rw [h'] + change (GerverSofa.Romik.path GerverSofa.PartB.params x).1 + + (GerverSofa.PartC.alphaBetaAt x).1 * (GerverSofa.v x).1 = _ + rw [hpath1, hal] + change P.1 + AB.1 * (-Real.sin x) = _ + ring + have hdB2 : gerverContactPoint 2 x 1 = P.2 + AB.1 * Real.cos x := by + have h' : gerverContactPoint 2 x 1 = (GerverSofa.PartC.B x).2 := + congrArg Prod.snd (fromPlane_paperGerverContacts x ht 1) + rw [h'] + change (GerverSofa.Romik.path GerverSofa.PartB.params x).2 + + (GerverSofa.PartC.alphaBetaAt x).1 * (GerverSofa.v x).2 = _ + rw [hpath2, hal] + rfl + have hdC1 : gerverContactPoint 3 x 0 = P.1 - AB.2 * Real.cos x - Real.sin x := by + have h' : gerverContactPoint 3 x 0 = (GerverSofa.PartC.C x).1 := + congrArg Prod.fst (fromPlane_paperGerverContacts x ht 2) + rw [h'] + change (GerverSofa.Romik.path GerverSofa.PartB.params x).1 - + (GerverSofa.PartC.alphaBetaAt x).2 * (GerverSofa.u x).1 + (GerverSofa.v x).1 = _ + rw [hpath1, hbe] + change P.1 - AB.2 * Real.cos x + -Real.sin x = _ + ring + have hdC2 : gerverContactPoint 3 x 1 = P.2 - AB.2 * Real.sin x + Real.cos x := by + have h' : gerverContactPoint 3 x 1 = (GerverSofa.PartC.C x).2 := + congrArg Prod.snd (fromPlane_paperGerverContacts x ht 2) + rw [h'] + change (GerverSofa.Romik.path GerverSofa.PartB.params x).2 - + (GerverSofa.PartC.alphaBetaAt x).2 * (GerverSofa.u x).2 + (GerverSofa.v x).2 = _ + rw [hpath2, hbe] + rfl + have hdD1 : gerverContactPoint 4 x 0 = P.1 - AB.2 * Real.cos x := by + have h' : gerverContactPoint 4 x 0 = (GerverSofa.PartC.D x).1 := + congrArg Prod.fst (fromPlane_paperGerverContacts x ht 3) + rw [h'] + change (GerverSofa.Romik.path GerverSofa.PartB.params x).1 - + (GerverSofa.PartC.alphaBetaAt x).2 * (GerverSofa.u x).1 = _ + rw [hpath1, hbe] + rfl + have hdD2 : gerverContactPoint 4 x 1 = P.2 - AB.2 * Real.sin x := by + have h' : gerverContactPoint 4 x 1 = (GerverSofa.PartC.D x).2 := + congrArg Prod.snd (fromPlane_paperGerverContacts x ht 3) + rw [h'] + change (GerverSofa.Romik.path GerverSofa.PartB.params x).2 - + (GerverSofa.PartC.alphaBetaAt x).2 * (GerverSofa.u x).2 = _ + rw [hpath2, hbe] + rfl + have hd01 : gerverContactPoint 0 x 0 = P.1 := hpath1 + have hd02 : gerverContactPoint 0 x 1 = P.2 := hpath2 + -- The `A` and `C` outputs are the `B` and `D` outputs shifted by the frame vectors. + have eA1 : (evalZ s z 1).1 = SI.add (evalZ s z 2).1 (trigZ z).2 := rfl + have eA2 : (evalZ s z 1).2 = SI.add (evalZ s z 2).2 (trigZ z).1 := rfl + have eC1 : (evalZ s z 3).1 = SI.sub (evalZ s z 4).1 (trigZ z).1 := rfl + have eC2 : (evalZ s z 3).2 = SI.add (evalZ s z 4).2 (trigZ z).2 := rfl + interval_cases kind + · exact ⟨hd01 ▸ h0x, hd02 ▸ h0y⟩ + · refine ⟨?_, ?_⟩ + · rw [hdA1, eA1] + exact SI.contains_add h2x hcos + · rw [hdA2, eA2] + exact SI.contains_add h2y hsin + · exact ⟨hdB1 ▸ h2x, hdB2 ▸ h2y⟩ + · refine ⟨?_, ?_⟩ + · rw [hdC1, eC1] + exact SI.contains_sub h4x hsin + · rw [hdC2, eC2] + exact SI.contains_add h4y hcos + · exact ⟨hdD1 ▸ h4x, hdD2 ▸ h4y⟩ + +/-- The left endpoint of the branch selected at the right end of a grid subinterval +does not exceed the left end of that subinterval. -/ +theorem stageTime_pred_le_gerverGridTime (m : ℕ) (hm : m + 1 ≤ 5 * NN) + (h2 : 2 ≤ stageOf (m + 1)) : + gerverStageTime (stageOf (m + 1) - 1) ≤ gerverGridTime m := by + have hNN : 0 < NN := by norm_num [NN] + rw [stageOf] at h2 ⊢ + split_ifs at h2 ⊢ with h + · have hd : 2 ≤ (m + 1) / NN := by + rcases le_max_iff.mp h2 with h' | h' + · exact absurd h' (by norm_num) + · exact h' + have hk : (m + 1) / NN * NN = m + 1 := Nat.div_mul_cancel (Nat.dvd_of_mod_eq_zero h) + have hstep : ((m + 1) / NN - 1) * NN = m + 1 - NN := by rw [Nat.sub_one_mul, hk] + have hle : ((m + 1) / NN - 1) * NN ≤ m := by rw [hstep]; omega + rw [max_eq_right (Nat.le_of_succ_le hd), ← gerverGridTime_mul_NN ((m + 1) / NN - 1)] + exact gerverGridTime_le_of_le hle (by omega) + · rw [Nat.add_sub_cancel] + have hle1 : (m + 1) / NN * NN ≤ m + 1 := Nat.div_mul_le_self (m + 1) NN + have hne : (m + 1) / NN * NN ≠ m + 1 := by + intro he + exact h (by rw [← he]; exact Nat.mul_mod_left _ _) + have hle : (m + 1) / NN * NN ≤ m := Nat.lt_succ_iff.mp (lt_of_le_of_ne hle1 hne) + rw [← gerverGridTime_mul_NN ((m + 1) / NN)] + exact gerverGridTime_le_of_le hle (by omega) + +/-- The evaluator at a grid angle. -/ +theorem contactZ_sound (m : ℕ) (hm : m ≤ 5 * NN) (kind : ℕ) (hk : kind ≤ 4) : + SI.Contains (contactZ m kind).1 (gerverContactPoint kind (gerverGridTime m) 0) ∧ + SI.Contains (contactZ m kind).2 (gerverContactPoint kind (gerverGridTime m) 1) := by + obtain ⟨h1, h5⟩ := stageOf_mem m hm + obtain ⟨hg0, hgT⟩ := gerverGridTime_mem_Icc m hm + exact evalZ_sound (stageOf m) h1 h5 (ttZ_sound m hm) hg0 hgT + (gerverGridTime_le_stageTime m hm) (fun h ↦ stageTime_lt_gerverGridTime m hm h) kind hk + +/-- The evaluator over a whole grid subinterval, on the branch selected at its right +endpoint (which is the branch of every angle in the half-open subinterval). -/ +theorem evalZ_interval_sound (m : ℕ) (hm : m + 1 ≤ 5 * NN) (kind : ℕ) (hk : kind ≤ 4) + {x : ℝ} (hx : x ∈ Set.Ioc (gerverGridTime m) (gerverGridTime (m + 1))) : + SI.Contains (evalZ (stageOf (m + 1)) + ⟨(ttZ m).lo, (ttZ (m + 1)).hi⟩ kind).1 (gerverContactPoint kind x 0) ∧ + SI.Contains (evalZ (stageOf (m + 1)) + ⟨(ttZ m).lo, (ttZ (m + 1)).hi⟩ kind).2 (gerverContactPoint kind x 1) := by + have hmm : m ≤ 5 * NN := by omega + obtain ⟨hxl, hxr⟩ := hx + obtain ⟨h1, h5⟩ := stageOf_mem (m + 1) hm + obtain ⟨hg0, -⟩ := gerverGridTime_mem_Icc m hmm + obtain ⟨-, hgT⟩ := gerverGridTime_mem_Icc (m + 1) hm + have hM := SI.Mpos + have hz : SI.Contains (⟨(ttZ m).lo, (ttZ (m + 1)).hi⟩ : SI) x := by + obtain ⟨ha, -⟩ := ttZ_sound m hmm + obtain ⟨-, hb⟩ := ttZ_sound (m + 1) hm + exact ⟨ha.trans (mul_le_mul_of_nonneg_left hxl.le hM.le), + (mul_le_mul_of_nonneg_left hxr hM.le).trans hb⟩ + refine evalZ_sound (stageOf (m + 1)) h1 h5 hz (hg0.trans hxl.le) (hxr.trans hgT) + (hxr.trans (gerverGridTime_le_stageTime (m + 1) hm)) (fun h2 ↦ ?_) kind hk + exact lt_of_le_of_lt (stageTime_pred_le_gerverGridTime m hm h2) hxl + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The support-contact fan of the Gerver outer cap + +The literal Gerver outer cap is a compact convex subset of the plane lying in the closed +quadrant above the fan anchor `L = C (π / 2)`, which sits on the wall. The `640` listed +contacts `A (t)` and `C (t)` at the grid angles attain the cap support at the strictly +increasing normals `t` and `t + π / 2` of `[0, π)`, so `supportContact_fan_area` bounds the +cap area below by half the shoelace sum of the fan over the anchor. The certificate +encloses that sum (`capDoubledZ_sound`), and its kernel-checked numeric conclusion +`GerverAreaCert.capOK_true` turns the enclosure into `28609 / 10000 ≤ |K₀|`. +-/ + +/-! ### Elementary geometry of the outer cap -/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open MeasureTheory +open GerverAreaCert + +/-- The paper path starts at the origin. -/ +theorem paperGerverPath_zero : paperGerverPath 0 = 0 := by + have hreg := gerver_direct_path_regularity GerverSofa.PartB.params + GerverSofa.PartB.params_mem GerverSofa.PartB.params_equations + change GerverSofa.PartF.Coordinates.toPlane + (GerverSofa.Romik.path GerverSofa.PartB.params 0) = 0 + rw [hreg.2.1] + ext i + fin_cases i <;> rfl + +/-- The outer cap written as an intersection of closed half-planes. -/ +theorem gerverOuterCap_eq_iInter : + gerverOuterCap = + {q : Point | 0 ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle))} ∩ + ⋂ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + ({q : Point | inner ℝ q (normalVector (t : Real.Angle)) ≤ + inner ℝ (paperGerverPath t) (normalVector (t : Real.Angle)) + 1} ∩ + {q : Point | inner ℝ q (tangentVector (t : Real.Angle)) ≤ + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) + 1}) := by + ext q + simp only [gerverOuterCap, Set.mem_ofPred_eq, Set.mem_inter_iff, Set.mem_iInter₂, + inner_normalVector_pi_div_two] + +/-- The outer cap is closed, being an intersection of closed half-spaces. -/ +theorem isClosed_gerverOuterCap : IsClosed gerverOuterCap := by + rw [gerverOuterCap_eq_iInter] + refine IsClosed.inter (isClosed_le continuous_const + (continuous_id.inner continuous_const)) ?_ + exact isClosed_biInter fun t _ ↦ IsClosed.inter + (isClosed_le (continuous_id.inner continuous_const) continuous_const) + (isClosed_le (continuous_id.inner continuous_const) continuous_const) + +/-- The outer cap is convex, being an intersection of half-spaces. -/ +theorem convex_gerverOuterCap : Convex ℝ gerverOuterCap := by + rw [gerverOuterCap_eq_iInter] + refine Convex.inter (convex_halfSpace_ge (isLinearMap_inner_left _) 0) ?_ + exact convex_iInter₂ fun t _ ↦ Convex.inter + (convex_halfSpace_le (isLinearMap_inner_left _) _) + (convex_halfSpace_le (isLinearMap_inner_left _) _) + +/-- The outer cap is contained in an explicit coordinate rectangle. -/ +theorem gerverOuterCap_subset_box : + gerverOuterCap ⊆ {p : Point | + p 0 ∈ Set.Icc (-(inner ℝ (paperGerverPath (Real.pi / 2)) + (tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) + 1)) 1 ∧ p 1 ∈ Set.Icc 0 1} := by + have hTpos : (0 : ℝ) < Real.pi / 2 := by positivity + intro q hq + obtain ⟨hy, hcap⟩ := hq + have h0 := hcap 0 ⟨le_rfl, hTpos.le⟩ + have hT := hcap (Real.pi / 2) ⟨hTpos.le, le_rfl⟩ + rw [paperGerverPath_zero, inner_normalVector_zero, inner_normalVector_zero, + inner_tangentVector_zero, inner_tangentVector_zero] at h0 + refine ⟨⟨?_, ?_⟩, hy, ?_⟩ + · have h := hT.2 + rw [inner_tangentVector_pi_div_two] at h + linarith + · have h := h0.1 + simpa using h + · have h := h0.2 + simpa using h + +/-- The outer cap is compact: it is closed and contained in a coordinate rectangle. -/ +theorem isCompact_gerverOuterCap : IsCompact gerverOuterCap := by + refine Metric.isCompact_of_isClosed_isBounded isClosed_gerverOuterCap ?_ + set c : ℝ := -(inner ℝ (paperGerverPath (Real.pi / 2)) + (tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) + 1) with hc + set K : ℝ := |c| + 1 with hK + rw [isBounded_iff_forall_norm_le] + refine ⟨2 * K, fun q hq ↦ ?_⟩ + obtain ⟨⟨hx0, hx1⟩, hy0, hy1⟩ := gerverOuterCap_subset_box hq + have hK1 : (1 : ℝ) ≤ K := by rw [hK]; linarith [abs_nonneg c] + have hsq : ‖q‖ ^ 2 = q 0 ^ 2 + q 1 ^ 2 := by + rw [EuclideanSpace.norm_eq, Real.sq_sqrt (by positivity)] + simp [Fin.sum_univ_two, sq_abs] + have hx : |q 0| ≤ K := by + rw [abs_le] + refine ⟨?_, by rw [hK]; linarith [abs_nonneg c]⟩ + have hcle : -|c| ≤ c := neg_abs_le c + rw [hK] + linarith [hx0] + have hy : |q 1| ≤ K := by + rw [abs_le] + exact ⟨by linarith, by linarith⟩ + have hx2 : q 0 ^ 2 ≤ K ^ 2 := by nlinarith [sq_abs (q 0), abs_nonneg (q 0)] + have hy2 : q 1 ^ 2 ≤ K ^ 2 := by nlinarith [sq_abs (q 1), abs_nonneg (q 1)] + nlinarith [norm_nonneg q, hsq, hx2, hy2, hK1] + +/-- The outer cap is Borel measurable. -/ +theorem measurableSet_gerverOuterCap : MeasurableSet gerverOuterCap := + isClosed_gerverOuterCap.measurableSet + +/-- The outer cap has finite planar volume. -/ +theorem volume_gerverOuterCap_lt_top : volume gerverOuterCap < ⊤ := + isCompact_gerverOuterCap.measure_lt_top + +/-! ### The support-contact fan and the cap lower bound -/ + +/-- The fan anchor `L = C (π / 2)`. -/ +def gerverFanAnchor : Point := paperGerverContacts (Real.pi / 2) 2 + +/-- The `i`-th listed support contact, `i < fanCount`. -/ +def gerverFanPoint (i : ℕ) : Point := + gerverContactPoint (fanKind i) (gerverGridTime (fanIdx i)) + +/-- The support normal of the `i`-th listed contact. -/ +def gerverFanNormal (i : ℕ) : ℝ := + if i ≤ 5 * NN then gerverGridTime i else gerverGridTime (i - 5 * NN) + Real.pi / 2 + +/-- The support value of the first outer contact in its own normal direction. -/ +private theorem inner_paperGerverContacts_zero_normalVector (t : ℝ) : + inner ℝ (paperGerverContacts t 0) (normalVector (t : Real.Angle)) = + inner ℝ (paperGerverPath t) (normalVector (t : Real.Angle)) + 1 := by + change inner ℝ (paperGerverPath t + + (paperGerverVelocityComponents t).1 • tangentVector (t : Real.Angle) + + normalVector (t : Real.Angle)) (normalVector (t : Real.Angle)) = _ + rw [inner_add_left, inner_add_left, real_inner_smul_left, + inner_tangentVector_normalVector_real, inner_normalVector_self] + simp + +/-- The support value of the third outer contact in the rotated normal direction. -/ +private theorem inner_paperGerverContacts_two_tangentVector (t : ℝ) : + inner ℝ (paperGerverContacts t 2) (tangentVector (t : Real.Angle)) = + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) + 1 := by + change inner ℝ (paperGerverPath t - + (paperGerverVelocityComponents t).2 • normalVector (t : Real.Angle) + + tangentVector (t : Real.Angle)) (tangentVector (t : Real.Angle)) = _ + rw [inner_add_left, inner_sub_left, real_inner_smul_left, + inner_normalVector_tangentVector, inner_tangentVector_self] + ring + +/-- `A t` attains the cap support at normal `t`. -/ +theorem gerverOuterCap_support_A (t : ℝ) (ht : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) + {q : Point} (hq : q ∈ gerverOuterCap) : + inner ℝ q (normalVector (t : Real.Angle)) ≤ + inner ℝ (paperGerverContacts t 0) (normalVector (t : Real.Angle)) := by + rw [inner_paperGerverContacts_zero_normalVector] + exact (hq.2 t ht).1 + +/-- `C t` attains the cap support at normal `t + π / 2`. -/ +theorem gerverOuterCap_support_C (t : ℝ) (ht : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) + {q : Point} (hq : q ∈ gerverOuterCap) : + inner ℝ q (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) ≤ + inner ℝ (paperGerverContacts t 2) (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) := by + rw [normalVector_add_pi_div_two_real, inner_paperGerverContacts_two_tangentVector] + exact (hq.2 t ht).2 + +/-- The anchor sits on the wall. -/ +theorem gerverFanAnchor_snd : gerverFanAnchor 1 = 0 := by + have hTpos : (0 : ℝ) < Real.pi / 2 := by positivity + have hT : (Real.pi / 2) ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨hTpos.le, le_rfl⟩ + have h := congrArg Prod.snd (fromPlane_paperGerverContacts (Real.pi / 2) hT 2) + have hC : (GerverSofa.PartC.C (Real.pi / 2)).2 = 0 := + GerverSofa.PartC.Stage2.C_T_snd_zero + change (GerverSofa.PartF.Coordinates.fromPlane (paperGerverContacts (Real.pi / 2) 2)).2 = 0 + rw [h] + simpa using hC + +/-- The cap lies in the closed quadrant above the anchor. -/ +theorem gerverOuterCap_quadrant {q : Point} (hq : q ∈ gerverOuterCap) : + gerverFanAnchor 0 ≤ q 0 ∧ 0 ≤ q 1 := by + have hTpos : (0 : ℝ) < Real.pi / 2 := by positivity + have hT : (Real.pi / 2) ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨hTpos.le, le_rfl⟩ + refine ⟨?_, hq.1⟩ + have h := gerverOuterCap_support_C (Real.pi / 2) hT hq + have hsplit : (Real.pi / 2 + Real.pi / 2 : ℝ) = 0 + Real.pi := by ring + rw [hsplit, normalVector_add_pi, inner_neg_right, inner_neg_right, + inner_normalVector_zero, inner_normalVector_zero] at h + change gerverFanAnchor 0 ≤ q 0 + simp only [gerverFanAnchor] + linarith + +/-- The listed support normals are strictly increasing. -/ +theorem gerverFanNormal_lt_succ (i : ℕ) (hi : i + 1 < fanCount) : + gerverFanNormal i < gerverFanNormal (i + 1) := by + have hNN : NN = 64 := rfl + simp only [fanCount] at hi + simp only [gerverFanNormal] + split_ifs with h1 h2 + · exact gerverGridTime_lt_succ i (by omega) + · have hi5 : i = 5 * NN := by omega + subst hi5 + rw [Nat.add_sub_cancel_left, gerverGridTime_top] + have h0 : gerverGridTime 0 < gerverGridTime 1 := gerverGridTime_lt_succ 0 (by omega) + rw [gerverGridTime_zero] at h0 + linarith + · omega + · have hrw : i + 1 - 5 * NN = (i - 5 * NN) + 1 := by omega + rw [hrw] + have h := gerverGridTime_lt_succ (i - 5 * NN) (by omega) + linarith + +/-- The listed support normals lie in `[0, π)`. -/ +theorem gerverFanNormal_mem_Ico (i : ℕ) (hi : i < fanCount) : + 0 ≤ gerverFanNormal i ∧ gerverFanNormal i < Real.pi := by + have hNN : NN = 64 := rfl + simp only [fanCount] at hi + have hTpos : (0 : ℝ) < Real.pi / 2 := by positivity + simp only [gerverFanNormal] + split_ifs with h1 + · obtain ⟨hlo, hhi⟩ := gerverGridTime_mem_Icc i h1 + exact ⟨hlo, by linarith⟩ + · have hlt : i - 5 * NN < 5 * NN := by omega + have hstrict := gerverGridTime_lt_of_lt hlt le_rfl + rw [gerverGridTime_top] at hstrict + obtain ⟨hlo, -⟩ := gerverGridTime_mem_Icc (i - 5 * NN) hlt.le + exact ⟨by linarith, by linarith⟩ + +/-- The `kind = 1` slot of the contact dictionary is the first outer contact. -/ +private theorem gerverContactPoint_one (x : ℝ) : + gerverContactPoint 1 x = paperGerverContacts x 0 := rfl + +/-- The `kind = 3` slot of the contact dictionary is the third outer contact. -/ +private theorem gerverContactPoint_three (x : ℝ) : + gerverContactPoint 3 x = paperGerverContacts x 2 := rfl + +/-- Every listed contact lies in the cap. -/ +theorem gerverFanPoint_mem (i : ℕ) (hi : i < fanCount) : + gerverFanPoint i ∈ gerverOuterCap := by + have hNN : NN = 64 := rfl + simp only [fanCount] at hi + simp only [gerverFanPoint, fanKind, fanIdx] + split_ifs with h1 + · rw [gerverContactPoint_one] + exact gerver_outer_contact_A _ (gerverGridTime_mem_Icc i h1) + · rw [gerverContactPoint_three] + exact gerver_outer_contact_C _ (gerverGridTime_mem_Icc (i - 5 * NN) (by omega)) + +/-- Every listed contact attains the cap support at its listed normal. -/ +theorem gerverFanPoint_support (i : ℕ) (hi : i < fanCount) {q : Point} + (hq : q ∈ gerverOuterCap) : + inner ℝ q (normalVector (gerverFanNormal i : Real.Angle)) ≤ + inner ℝ (gerverFanPoint i) (normalVector (gerverFanNormal i : Real.Angle)) := by + have hNN : NN = 64 := rfl + simp only [fanCount] at hi + simp only [gerverFanPoint, gerverFanNormal, fanKind, fanIdx] + split_ifs with h1 + · rw [gerverContactPoint_one] + exact gerverOuterCap_support_A _ (gerverGridTime_mem_Icc i h1) hq + · rw [gerverContactPoint_three] + exact gerverOuterCap_support_C _ (gerverGridTime_mem_Icc (i - 5 * NN) (by omega)) hq + +/-- The certificate encloses both coordinates of every listed fan contact. -/ +private theorem fanZ_sound (i : ℕ) (hi : i < fanCount) : + SI.Contains (fanZ i).1 (gerverFanPoint i 0) ∧ + SI.Contains (fanZ i).2 (gerverFanPoint i 1) := by + have hNN : NN = 64 := rfl + simp only [fanCount] at hi + have hidx : fanIdx i ≤ 5 * NN := by + simp only [fanIdx] + split_ifs with h <;> omega + have hkind : fanKind i ≤ 4 := by + simp only [fanKind] + split_ifs <;> norm_num + exact contactZ_sound (fanIdx i) hidx (fanKind i) hkind + +/-- The certificate encloses both coordinates of the fan anchor. -/ +private theorem anchorZ_sound : + SI.Contains anchorZ.1 (gerverFanAnchor 0) ∧ SI.Contains anchorZ.2 (gerverFanAnchor 1) := by + have h := contactZ_sound (5 * NN) le_rfl 3 (by norm_num) + rwa [gerverGridTime_top] at h + +/-- The certificate encloses the fan shoelace sum. -/ +theorem capDoubledZ_sound : + SI.Contains capDoubledZ (∑ i ∈ Finset.range (fanCount - 1), + planeCrossProduct (gerverFanPoint i - gerverFanAnchor) + (gerverFanPoint (i + 1) - gerverFanAnchor)) := by + have hNN : NN = 64 := rfl + refine SI.contains_foldl_range (fanCount - 1) fun i hi => ?_ + simp only [fanCount] at hi + obtain ⟨ha1, ha2⟩ := fanZ_sound i (by simp only [fanCount]; omega) + obtain ⟨hb1, hb2⟩ := fanZ_sound (i + 1) (by simp only [fanCount]; omega) + obtain ⟨hL1, hL2⟩ := anchorZ_sound + have hcross : planeCrossProduct (gerverFanPoint i - gerverFanAnchor) + (gerverFanPoint (i + 1) - gerverFanAnchor) = + (gerverFanPoint i 0 - gerverFanAnchor 0) * + (gerverFanPoint (i + 1) 1 - gerverFanAnchor 1) - + (gerverFanPoint i 1 - gerverFanAnchor 1) * + (gerverFanPoint (i + 1) 0 - gerverFanAnchor 0) := by + simp [planeCrossProduct] + rw [hcross] + exact SI.contains_sub + (SI.contains_mul (SI.contains_sub ha1 hL1) (SI.contains_sub hb2 hL2)) + (SI.contains_mul (SI.contains_sub ha2 hL2) (SI.contains_sub hb1 hL1)) + +/-- The cap area lower bound. -/ +theorem gerverOuterCap_area_certified_lower_bound : + (28609 : ℝ) / 10000 ≤ ClassicalResults.area gerverOuterCap := by + have hNN : NN = 64 := rfl + have hTpos : (0 : ℝ) < Real.pi / 2 := by positivity + have hcount : fanCount = 640 := rfl + -- The fan data on `Fin 640`. + have hlt : ∀ i : Fin 640, (i : ℕ) < fanCount := fun i => by + rw [hcount]; exact i.isLt + have hmono : StrictMono fun i : Fin 640 => gerverFanNormal (i : ℕ) := by + refine Fin.strictMono_iff_lt_succ.2 fun i => ?_ + simpa using gerverFanNormal_lt_succ (i : ℕ) (by rw [hcount]; omega) + obtain ⟨-, hfan⟩ := supportContact_fan_area gerverOuterCap + isCompact_gerverOuterCap convex_gerverOuterCap gerverFanAnchor + (gerver_outer_contact_C (Real.pi / 2) ⟨hTpos.le, le_rfl⟩) + gerverFanAnchor_snd (fun _ hq => gerverOuterCap_quadrant hq) 639 + (fun i : Fin 640 => gerverFanNormal (i : ℕ)) hmono + (fun i => gerverFanNormal_mem_Ico (i : ℕ) (hlt i)) + (fun i : Fin 640 => gerverFanPoint (i : ℕ)) (fun i => gerverFanPoint_mem (i : ℕ) (hlt i)) + (fun i q hq => gerverFanPoint_support (i : ℕ) (hlt i) hq) + -- Identify the `Fin`-indexed fan sum with the certificate's range sum. + rw [show (∑ i : Fin 639, planeCrossProduct + (gerverFanPoint (i.castSucc : Fin 640) - gerverFanAnchor) + (gerverFanPoint (i.succ : Fin 640) - gerverFanAnchor)) = + ∑ i ∈ Finset.range (fanCount - 1), + planeCrossProduct (gerverFanPoint i - gerverFanAnchor) + (gerverFanPoint (i + 1) - gerverFanAnchor) by + rw [hcount] + exact Fin.sum_univ_eq_sum_range (fun i => planeCrossProduct + (gerverFanPoint i - gerverFanAnchor) (gerverFanPoint (i + 1) - gerverFanAnchor)) 639] at hfan + -- The kernel-checked numeric inequality. The fan sum and the certificate endpoint are + -- abstracted into local variables first, and the arithmetic tactics are used in their + -- `only` form, so that no tactic ever tries to evaluate the 639-term fold. + obtain ⟨S, hS⟩ : ∃ S : ℝ, (∑ i ∈ Finset.range (fanCount - 1), + planeCrossProduct (gerverFanPoint i - gerverFanAnchor) + (gerverFanPoint (i + 1) - gerverFanAnchor)) = S := ⟨_, rfl⟩ + obtain ⟨z, hz⟩ : ∃ z : ℤ, capDoubledZ.lo = z := ⟨_, rfl⟩ + obtain ⟨hlo, -⟩ := capDoubledZ_sound + rw [hS] at hfan + rw [hS, hz] at hlo + have hOK : 2 * 28609 * M ≤ 10000 * capDoubledZ.lo := by + have h := capOK_true + unfold capOK at h + exact of_decide_eq_true h + rw [hz] at hOK + have hOK' : (2 * 28609 * (M : ℝ)) ≤ 10000 * (z : ℝ) := by exact_mod_cast hOK + have hM : (0 : ℝ) < (M : ℝ) := SI.Mpos + have hkey : 2 * 28609 ≤ 10000 * S := by nlinarith only [hlo, hOK', hM] + refine le_trans ?_ hfan + linarith only [hkey] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The rectangle cover of the literal Gerver niche + +The literal niche is the union of the strict vertical fills under the three pieces of its +roof (`gerver_niche_vertical_fills`). Each piece is traversed with monotone horizontal +coordinate, so subdividing the seven monotone roof stretches at the grid angles covers the +niche by `7 * NN` coordinate rectangles whose widths and heights the certificate encloses +(`gerverNicheRect_covers`). The kernel-checked numeric conclusion +`GerverAreaCert.nicheOK_true` bounds the total rectangle area, hence `|N₀| ≤ 3301 / 5000`. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open MeasureTheory +open GerverAreaCert + +/-- The literal niche is Borel measurable: it is a closed half-plane intersected with a +countable union of open sets. -/ +theorem measurableSet_gerverLiteralNiche : MeasurableSet gerverLiteralNiche := by + have h : gerverLiteralNiche = + {q : Point | 0 ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle))} ∩ + ⋃ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + ({q : Point | inner ℝ (q - paperGerverPath t) (normalVector (t : Real.Angle)) < 0} ∩ + {q : Point | + inner ℝ (q - paperGerverPath t) (tangentVector (t : Real.Angle)) < 0}) := by + ext q + simp only [gerverLiteralNiche, Set.mem_ofPred_eq, Set.mem_inter_iff, Set.mem_iUnion₂, + inner_normalVector_pi_div_two] + tauto + rw [h] + refine MeasurableSet.inter + ((isClosed_le continuous_const (continuous_id.inner continuous_const)).measurableSet) ?_ + refine IsOpen.measurableSet (isOpen_biUnion fun t _ ↦ IsOpen.inter ?_ ?_) + · exact isOpen_lt ((continuous_id.sub continuous_const).inner continuous_const) continuous_const + · exact isOpen_lt ((continuous_id.sub continuous_const).inner continuous_const) continuous_const + +/-! ### The rectangle cover and the niche upper bound -/ + +/-- The covering rectangle of the `j`-th subinterval of roof piece `r`. -/ +def gerverNicheRect (r j : ℕ) : Set Point := + {p : Point | p 0 ∈ Set.Icc (((rectLoZ r j : ℤ) : ℝ) / (M : ℝ)) + (((rectHiZ r j : ℤ) : ℝ) / (M : ℝ)) ∧ + p 1 ∈ Set.Icc 0 (((rectHZ r j : ℤ) : ℝ) / (M : ℝ))} + +/-- A strict vertical fill splits along a subdivision of its parameter interval. -/ +theorem strictVerticalFill_Icc_union {f : ℝ → Point} {a b c : ℝ} (hab : a ≤ b) (hbc : b ≤ c) : + strictVerticalFill f (Set.Icc a c) = + strictVerticalFill f (Set.Icc a b) ∪ strictVerticalFill f (Set.Icc b c) := by + ext q + simp only [strictVerticalFill, Set.mem_ofPred_eq, Set.mem_union, Set.mem_Icc] + constructor + · rintro ⟨t, ⟨h1, h2⟩, h3⟩ + rcases le_total t b with h | h + · exact Or.inl ⟨t, ⟨h1, h⟩, h3⟩ + · exact Or.inr ⟨t, ⟨h, h2⟩, h3⟩ + · rintro (⟨t, ⟨h1, h2⟩, h3⟩ | ⟨t, ⟨h1, h2⟩, h3⟩) + · exact ⟨t, ⟨h1, h2.trans hbc⟩, h3⟩ + · exact ⟨t, ⟨hab.trans h1, h2⟩, h3⟩ + +/-- The strictly increasing chain of the six `ℕ`-indexed stage endpoints. -/ +private theorem gerverStageTime_chain : + gerverStageTime 0 = 0 ∧ gerverStageTime 0 < gerverStageTime 1 ∧ + gerverStageTime 1 < gerverStageTime 2 ∧ gerverStageTime 2 < gerverStageTime 3 ∧ + gerverStageTime 3 < gerverStageTime 4 ∧ gerverStageTime 4 < gerverStageTime 5 ∧ + gerverStageTime 5 = Real.pi / 2 := + ⟨gerverStageTime_zero, gerverStageTime_lt_succ 0 (by norm_num), + gerverStageTime_lt_succ 1 (by norm_num), gerverStageTime_lt_succ 2 (by norm_num), + gerverStageTime_lt_succ 3 (by norm_num), gerverStageTime_lt_succ 4 (by norm_num), + gerverStageTime_five⟩ + +/-- `gerverRoofReverseTime` written in the `ℕ`-indexed stage endpoints. -/ +private theorem gerverRoofReverseTime_eq_stageTime (s : ℝ) : + gerverRoofReverseTime s = gerverStageTime 4 - + (gerverStageTime 4 - gerverStageTime 1) / (gerverStageTime 3 - gerverStageTime 2) * + (s - gerverStageTime 2) := rfl + +/-- The first roof piece, in the `ℕ`-indexed stage endpoints. -/ +private theorem gerverNicheRoof_eq_D {s : ℝ} (hs : s ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) + (h : s ≤ gerverStageTime 2) : + gerverNicheRoof ⟨s, hs⟩ = paperGerverContacts s 3 := + gerverNicheRoof_of_le_two hs h + +/-- The middle roof piece, in the `ℕ`-indexed stage endpoints. -/ +private theorem gerverNicheRoof_eq_path {s : ℝ} (hs : s ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) + (h2 : gerverStageTime 2 ≤ s) (h3 : s ≤ gerverStageTime 3) : + gerverNicheRoof ⟨s, hs⟩ = paperGerverPath (gerverRoofReverseTime s) := + gerverNicheRoof_mid hs h2 h3 + +/-- The last roof piece, in the `ℕ`-indexed stage endpoints. -/ +private theorem gerverNicheRoof_eq_B {s : ℝ} (hs : s ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) + (h3 : gerverStageTime 3 ≤ s) : + gerverNicheRoof ⟨s, hs⟩ = paperGerverContacts s 1 := + gerverNicheRoof_of_ge_three hs h3 + +/-- Two roof arguments compare as their underlying reals. -/ +private theorem gerverNicheRoof_fst_le_of_le {a b : ℝ} (ha : a ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) + (hb : b ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) (hab : a ≤ b) : + gerverNicheRoof ⟨a, ha⟩ 0 ≤ gerverNicheRoof ⟨b, hb⟩ 0 := + gerver_niche_roof_strictMono.monotone (Subtype.mk_le_mk.mpr hab) + +/-- The `D` piece has monotone horizontal coordinate. -/ +private theorem monotoneOn_paperGerverContacts_three_fst : + MonotoneOn (fun t ↦ paperGerverContacts t 3 0) + (Set.Icc (gerverStageTime 0) (gerverStageTime 2)) := by + obtain ⟨h0, c01, c12, c23, c34, c45, h5⟩ := gerverStageTime_chain + intro a ha b hb hab + have hA : a ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨by linarith [ha.1], by linarith [ha.2]⟩ + have hB : b ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨by linarith [hb.1], by linarith [hb.2]⟩ + have h := gerverNicheRoof_fst_le_of_le hA hB hab + rwa [gerverNicheRoof_eq_D hA ha.2, gerverNicheRoof_eq_D hB hb.2] at h + +/-- The `B` piece has monotone horizontal coordinate. -/ +private theorem monotoneOn_paperGerverContacts_one_fst : + MonotoneOn (fun t ↦ paperGerverContacts t 1 0) + (Set.Icc (gerverStageTime 3) (gerverStageTime 5)) := by + obtain ⟨h0, c01, c12, c23, c34, c45, h5⟩ := gerverStageTime_chain + intro a ha b hb hab + have hA : a ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨by linarith [ha.1], by linarith [ha.2]⟩ + have hB : b ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨by linarith [hb.1], by linarith [hb.2]⟩ + have h := gerverNicheRoof_fst_le_of_le hA hB hab + rwa [gerverNicheRoof_eq_B hA ha.1, gerverNicheRoof_eq_B hB hb.1] at h + +/-- The ambient path has antitone horizontal coordinate over the middle roof piece. -/ +private theorem antitoneOn_paperGerverPath_fst : + AntitoneOn (fun t ↦ paperGerverPath t 0) + (Set.Icc (gerverStageTime 1) (gerverStageTime 4)) := by + obtain ⟨h0, c01, c12, c23, c34, c45, h5⟩ := gerverStageTime_chain + have hne32 : gerverStageTime 3 - gerverStageTime 2 ≠ 0 := + sub_ne_zero_of_ne (by intro hz; linarith) + have hne41 : gerverStageTime 4 - gerverStageTime 1 ≠ 0 := + sub_ne_zero_of_ne (by intro hz; linarith) + have hc : 0 < (gerverStageTime 4 - gerverStageTime 1) / + (gerverStageTime 3 - gerverStageTime 2) := div_pos (by linarith) (by linarith) + have hcne : (gerverStageTime 4 - gerverStageTime 1) / + (gerverStageTime 3 - gerverStageTime 2) ≠ 0 := ne_of_gt hc + set c := (gerverStageTime 4 - gerverStageTime 1) / + (gerverStageTime 3 - gerverStageTime 2) with hcdef + -- The reverse-time map is inverted by `t ↦ e₂ + (e₄ - t) / c`. + have hinv : ∀ t : ℝ, gerverRoofReverseTime (gerverStageTime 2 + + (gerverStageTime 4 - t) / c) = t := by + intro t + rw [gerverRoofReverseTime_eq_stageTime, ← hcdef] + field_simp + ring + have heq : (gerverStageTime 4 - gerverStageTime 1) / c = + gerverStageTime 3 - gerverStageTime 2 := by + rw [hcdef] + field_simp + have hmem : ∀ t : ℝ, gerverStageTime 1 ≤ t → t ≤ gerverStageTime 4 → + gerverStageTime 2 ≤ gerverStageTime 2 + (gerverStageTime 4 - t) / c ∧ + gerverStageTime 2 + (gerverStageTime 4 - t) / c ≤ gerverStageTime 3 := by + intro t ht1 ht4 + have hnn : 0 ≤ (gerverStageTime 4 - t) / c := div_nonneg (by linarith) hc.le + have hstep : (gerverStageTime 4 - gerverStageTime 1) / c - + (gerverStageTime 4 - t) / c = (t - gerverStageTime 1) / c := by + field_simp + ring + have hnn2 : 0 ≤ (t - gerverStageTime 1) / c := div_nonneg (by linarith) hc.le + exact ⟨by linarith, by linarith⟩ + intro a ha b hb hab + obtain ⟨ha2, ha3⟩ := hmem a ha.1 ha.2 + obtain ⟨hb2, hb3⟩ := hmem b hb.1 hb.2 + have hAmem : gerverStageTime 2 + (gerverStageTime 4 - a) / c ∈ + Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨by linarith, by linarith⟩ + have hBmem : gerverStageTime 2 + (gerverStageTime 4 - b) / c ∈ + Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨by linarith, by linarith⟩ + have hba : gerverStageTime 2 + (gerverStageTime 4 - b) / c ≤ + gerverStageTime 2 + (gerverStageTime 4 - a) / c := by + have hsub : (gerverStageTime 4 - a) / c - (gerverStageTime 4 - b) / c = (b - a) / c := by + field_simp + ring + have hnn : 0 ≤ (b - a) / c := div_nonneg (by linarith) hc.le + linarith + have h := gerverNicheRoof_fst_le_of_le hBmem hAmem hba + rwa [gerverNicheRoof_eq_path hBmem hb2 hb3, gerverNicheRoof_eq_path hAmem ha2 ha3, + hinv a, hinv b] at h + +/-- Each roof piece has monotone horizontal coordinate in the direction recorded by +`rowFwd`. -/ +theorem gerverNicheRow_monotone (r : ℕ) (hr : r < 7) : + (rowFwd r = true → MonotoneOn (fun t ↦ gerverContactPoint (rowKind r) t 0) + (Set.Icc (gerverStageTime (rowStage r - 1)) (gerverStageTime (rowStage r)))) ∧ + (rowFwd r = false → AntitoneOn (fun t ↦ gerverContactPoint (rowKind r) t 0) + (Set.Icc (gerverStageTime (rowStage r - 1)) (gerverStageTime (rowStage r)))) := by + obtain ⟨-, c01, c12, c23, c34, c45, -⟩ := gerverStageTime_chain + have sD0 : Set.Icc (gerverStageTime 0) (gerverStageTime 1) ⊆ + Set.Icc (gerverStageTime 0) (gerverStageTime 2) := Set.Icc_subset_Icc le_rfl c12.le + have sD1 : Set.Icc (gerverStageTime 1) (gerverStageTime 2) ⊆ + Set.Icc (gerverStageTime 0) (gerverStageTime 2) := Set.Icc_subset_Icc c01.le le_rfl + have sP2 : Set.Icc (gerverStageTime 3) (gerverStageTime 4) ⊆ + Set.Icc (gerverStageTime 1) (gerverStageTime 4) := + Set.Icc_subset_Icc (c12.trans c23).le le_rfl + have sP3 : Set.Icc (gerverStageTime 2) (gerverStageTime 3) ⊆ + Set.Icc (gerverStageTime 1) (gerverStageTime 4) := Set.Icc_subset_Icc c12.le c34.le + have sP4 : Set.Icc (gerverStageTime 1) (gerverStageTime 2) ⊆ + Set.Icc (gerverStageTime 1) (gerverStageTime 4) := + Set.Icc_subset_Icc le_rfl (c23.trans c34).le + have sB5 : Set.Icc (gerverStageTime 3) (gerverStageTime 4) ⊆ + Set.Icc (gerverStageTime 3) (gerverStageTime 5) := Set.Icc_subset_Icc le_rfl c45.le + have sB6 : Set.Icc (gerverStageTime 4) (gerverStageTime 5) ⊆ + Set.Icc (gerverStageTime 3) (gerverStageTime 5) := Set.Icc_subset_Icc c34.le le_rfl + interval_cases r + · exact ⟨fun _ ↦ monotoneOn_paperGerverContacts_three_fst.mono sD0, fun h ↦ absurd h (by decide)⟩ + · exact ⟨fun _ ↦ monotoneOn_paperGerverContacts_three_fst.mono sD1, fun h ↦ absurd h (by decide)⟩ + · exact ⟨fun h ↦ absurd h (by decide), fun _ ↦ antitoneOn_paperGerverPath_fst.mono sP2⟩ + · exact ⟨fun h ↦ absurd h (by decide), fun _ ↦ antitoneOn_paperGerverPath_fst.mono sP3⟩ + · exact ⟨fun h ↦ absurd h (by decide), fun _ ↦ antitoneOn_paperGerverPath_fst.mono sP4⟩ + · exact ⟨fun _ ↦ monotoneOn_paperGerverContacts_one_fst.mono sB5, fun h ↦ absurd h (by decide)⟩ + · exact ⟨fun _ ↦ monotoneOn_paperGerverContacts_one_fst.mono sB6, fun h ↦ absurd h (by decide)⟩ + +/-- An integer lower bound at scale `M` read as a bound on the real quotient. -/ +private theorem div_M_le_of_le {p : ℤ} {x : ℝ} (h : (p : ℝ) ≤ (M : ℝ) * x) : + (p : ℝ) / (M : ℝ) ≤ x := + (div_le_iff₀ SI.Mpos).2 (by linarith) + +/-- An integer upper bound at scale `M` read as a bound on the real quotient. -/ +private theorem le_div_M_of_le {p : ℤ} {x : ℝ} (h : (M : ℝ) * x ≤ (p : ℝ)) : + x ≤ (p : ℝ) / (M : ℝ) := + (le_div_iff₀ SI.Mpos).2 (by linarith) + +/-- A strict vertical fill over an increasing subdivision of its parameter interval is the +union of the fills of the pieces. Iterated form of `strictVerticalFill_Icc_union`. -/ +private theorem strictVerticalFill_Icc_biUnion {f : ℝ → Point} (a : ℕ → ℝ) : + ∀ n : ℕ, 0 < n → (∀ i j, i ≤ j → j ≤ n → a i ≤ a j) → + strictVerticalFill f (Set.Icc (a 0) (a n)) = + ⋃ i ∈ Finset.range n, strictVerticalFill f (Set.Icc (a i) (a (i + 1))) := by + intro n + induction n with + | zero => intro h; exact absurd h (by omega) + | succ n ih => + intro _ ha + rcases Nat.eq_zero_or_pos n with rfl | hpos + · simp + · rw [strictVerticalFill_Icc_union (ha 0 n (Nat.zero_le _) (by omega)) + (ha n (n + 1) (by omega) le_rfl), + ih hpos fun i j hij hj => ha i j hij (by omega), + Finset.range_add_one, Finset.set_biUnion_insert, Set.union_comm] + +/-- Each covering rectangle contains the strict vertical fill of its subinterval. -/ +theorem gerverNicheRect_covers (r j : ℕ) (hr : r < 7) (hj : j < NN) : + strictVerticalFill (gerverContactPoint (rowKind r)) + (Set.Icc (gerverGridTime (rowBase r j)) (gerverGridTime (rowBase r j + 1))) ⊆ + gerverNicheRect r j := by + have hNN : NN = 64 := rfl + have hM := SI.Mpos + have hk : rowKind r ≤ 4 := by interval_cases r <;> decide + have hS1 : 1 ≤ rowStage r := by interval_cases r <;> decide + have hS5 : rowStage r ≤ 5 := by interval_cases r <;> decide + have hj64 : j < 64 := by rwa [hNN] at hj + have hm1 : rowBase r j + 1 ≤ 5 * NN := by simp only [rowBase, hNN]; omega + have hm : rowBase r j ≤ 5 * NN := by omega + have hlo : gerverStageTime (rowStage r - 1) ≤ gerverGridTime (rowBase r j) := by + have h := gerverGridTime_le_of_le + (show (rowStage r - 1) * NN ≤ rowBase r j by simp only [rowBase]; omega) hm + rwa [gerverGridTime_mul_NN] at h + have hhi : gerverGridTime (rowBase r j + 1) ≤ gerverStageTime (rowStage r) := by + have h := gerverGridTime_le_of_le + (show rowBase r j + 1 ≤ rowStage r * NN by simp only [rowBase, hNN]; omega) + (Nat.mul_le_mul_right NN hS5) + rwa [gerverGridTime_mul_NN] at h + have hstep : gerverGridTime (rowBase r j) ≤ gerverGridTime (rowBase r j + 1) := + gerverGridTime_le_of_le (Nat.le_succ _) hm1 + have hmemL : gerverGridTime (rowBase r j) ∈ + Set.Icc (gerverStageTime (rowStage r - 1)) (gerverStageTime (rowStage r)) := + ⟨hlo, hstep.trans hhi⟩ + have hmemR : gerverGridTime (rowBase r j + 1) ∈ + Set.Icc (gerverStageTime (rowStage r - 1)) (gerverStageTime (rowStage r)) := + ⟨hlo.trans hstep, hhi⟩ + obtain ⟨hmono, hanti⟩ := gerverNicheRow_monotone r hr + rintro q ⟨t, ⟨htl, htr⟩, hq0, hq1a, hq1b⟩ + have hmemt : t ∈ Set.Icc (gerverStageTime (rowStage r - 1)) (gerverStageTime (rowStage r)) := + ⟨hlo.trans htl, htr.trans hhi⟩ + have hHmax : rectHZ r j = max + (evalZ (stageOf (rowBase r j + 1)) + ⟨(ttZ (rowBase r j)).lo, (ttZ (rowBase r j + 1)).hi⟩ (rowKind r)).2.hi + (contactZ (rowBase r j) (rowKind r)).2.hi := by + simp only [rectHZ, SI.imax_eq_max] + have hH : (M : ℝ) * gerverContactPoint (rowKind r) t 1 ≤ (rectHZ r j : ℝ) := by + rcases eq_or_lt_of_le htl with heq | hlt + · have h := (contactZ_sound (rowBase r j) hm (rowKind r) hk).2.2 + rw [← heq] + refine h.trans ?_ + rw [hHmax] + exact_mod_cast le_max_right _ _ + · have h := (evalZ_interval_sound (rowBase r j) hm1 (rowKind r) hk ⟨hlt, htr⟩).2.2 + refine h.trans ?_ + rw [hHmax] + exact_mod_cast le_max_left _ _ + refine ⟨⟨?_, ?_⟩, hq1a, ?_⟩ + · rcases Bool.eq_false_or_eq_true (rowFwd r) with hf | hf + · have hlo' : rectLoZ r j = (contactZ (rowBase r j) (rowKind r)).1.lo := by + simp [rectLoZ, hf] + have hx : gerverContactPoint (rowKind r) (gerverGridTime (rowBase r j)) 0 ≤ + gerverContactPoint (rowKind r) t 0 := hmono hf hmemL hmemt htl + have h := (contactZ_sound (rowBase r j) hm (rowKind r) hk).1.1 + refine div_M_le_of_le ?_ + rw [hq0, hlo'] + exact h.trans (mul_le_mul_of_nonneg_left hx hM.le) + · have hlo' : rectLoZ r j = (contactZ (rowBase r j + 1) (rowKind r)).1.lo := by + simp [rectLoZ, hf] + have hx : gerverContactPoint (rowKind r) (gerverGridTime (rowBase r j + 1)) 0 ≤ + gerverContactPoint (rowKind r) t 0 := hanti hf hmemt hmemR htr + have h := (contactZ_sound (rowBase r j + 1) hm1 (rowKind r) hk).1.1 + refine div_M_le_of_le ?_ + rw [hq0, hlo'] + exact h.trans (mul_le_mul_of_nonneg_left hx hM.le) + · rcases Bool.eq_false_or_eq_true (rowFwd r) with hf | hf + · have hhi' : rectHiZ r j = (contactZ (rowBase r j + 1) (rowKind r)).1.hi := by + simp [rectHiZ, hf] + have hx : gerverContactPoint (rowKind r) t 0 ≤ + gerverContactPoint (rowKind r) (gerverGridTime (rowBase r j + 1)) 0 := + hmono hf hmemt hmemR htr + have h := (contactZ_sound (rowBase r j + 1) hm1 (rowKind r) hk).1.2 + refine le_div_M_of_le ?_ + rw [hq0, hhi'] + exact (mul_le_mul_of_nonneg_left hx hM.le).trans h + · have hhi' : rectHiZ r j = (contactZ (rowBase r j) (rowKind r)).1.hi := by + simp [rectHiZ, hf] + have hx : gerverContactPoint (rowKind r) t 0 ≤ + gerverContactPoint (rowKind r) (gerverGridTime (rowBase r j)) 0 := + hanti hf hmemL hmemt htl + have h := (contactZ_sound (rowBase r j) hm (rowKind r) hk).1.2 + refine le_div_M_of_le ?_ + rw [hq0, hhi'] + exact (mul_le_mul_of_nonneg_left hx hM.le).trans h + · have h2 : (M : ℝ) * q 1 ≤ (M : ℝ) * gerverContactPoint (rowKind r) t 1 := + mul_le_mul_of_nonneg_left hq1b.le hM.le + exact le_div_M_of_le (h2.trans hH) + +/-- The `NN` rectangles of a row cover the strict vertical fill of its whole stage. -/ +private theorem strictVerticalFill_row_subset (r : ℕ) (hr : r < 7) : + strictVerticalFill (gerverContactPoint (rowKind r)) + (Set.Icc (gerverStageTime (rowStage r - 1)) (gerverStageTime (rowStage r))) ⊆ + ⋃ j ∈ Finset.range NN, gerverNicheRect r j := by + have hNN : NN = 64 := rfl + have hS1 : 1 ≤ rowStage r := by interval_cases r <;> decide + have hS5 : rowStage r ≤ 5 := by interval_cases r <;> decide + have ha0 : gerverGridTime (rowBase r 0) = gerverStageTime (rowStage r - 1) := by + simpa [rowBase] using gerverGridTime_mul_NN (rowStage r - 1) + have haN : gerverGridTime (rowBase r NN) = gerverStageTime (rowStage r) := by + have hb : rowBase r NN = rowStage r * NN := by simp only [rowBase, hNN]; omega + rw [hb, gerverGridTime_mul_NN] + have hmono : ∀ i j, i ≤ j → j ≤ NN → + gerverGridTime (rowBase r i) ≤ gerverGridTime (rowBase r j) := by + intro i j hij hj + refine gerverGridTime_le_of_le (by simp only [rowBase]; omega) ?_ + simp only [rowBase, hNN]; omega + have hsplit : strictVerticalFill (gerverContactPoint (rowKind r)) + (Set.Icc (gerverGridTime (rowBase r 0)) (gerverGridTime (rowBase r NN))) = + ⋃ i ∈ Finset.range NN, strictVerticalFill (gerverContactPoint (rowKind r)) + (Set.Icc (gerverGridTime (rowBase r i)) (gerverGridTime (rowBase r i + 1))) := + strictVerticalFill_Icc_biUnion (fun i => gerverGridTime (rowBase r i)) NN + (by simp [hNN]) hmono + rw [← ha0, ← haN, hsplit] + refine Set.iUnion₂_subset fun i hi q hq => ?_ + simp only [Set.mem_iUnion, exists_prop] + exact ⟨i, hi, gerverNicheRect_covers r i hr (Finset.mem_range.1 hi) hq⟩ + +/-- The `7 * NN` rectangles cover the literal niche. -/ +theorem gerverLiteralNiche_subset_rects : + gerverLiteralNiche ⊆ + ⋃ r ∈ Finset.range 7, ⋃ j ∈ Finset.range NN, gerverNicheRect r j := by + have e0 : gerverStageTimes 0 = gerverStageTime 0 := rfl + have e1 : gerverStageTimes 1 = gerverStageTime 1 := rfl + have e2 : gerverStageTimes 2 = gerverStageTime 2 := rfl + have e3 : gerverStageTimes 3 = gerverStageTime 3 := rfl + have e4 : gerverStageTimes 4 = gerverStageTime 4 := rfl + have e5 : gerverStageTimes 5 = gerverStageTime 5 := rfl + have h01 : gerverStageTime 0 ≤ gerverStageTime 1 := (gerverStageTime_lt_succ 0 (by norm_num)).le + have h12 : gerverStageTime 1 ≤ gerverStageTime 2 := (gerverStageTime_lt_succ 1 (by norm_num)).le + have h23 : gerverStageTime 2 ≤ gerverStageTime 3 := (gerverStageTime_lt_succ 2 (by norm_num)).le + have h34 : gerverStageTime 3 ≤ gerverStageTime 4 := (gerverStageTime_lt_succ 3 (by norm_num)).le + have h45 : gerverStageTime 4 ≤ gerverStageTime 5 := (gerverStageTime_lt_succ 4 (by norm_num)).le + have hrow : ∀ r, r < 7 → strictVerticalFill (gerverContactPoint (rowKind r)) + (Set.Icc (gerverStageTime (rowStage r - 1)) (gerverStageTime (rowStage r))) ⊆ + ⋃ r ∈ Finset.range 7, ⋃ j ∈ Finset.range NN, gerverNicheRect r j := by + intro r hr q hq + have h := strictVerticalFill_row_subset r hr hq + simp only [Set.mem_iUnion, exists_prop] at h ⊢ + obtain ⟨j, hj, hjq⟩ := h + exact ⟨r, Finset.mem_range.2 hr, j, hj, hjq⟩ + rw [gerver_niche_vertical_fills, e0, e1, e2, e3, e4, e5] + refine Set.union_subset (Set.union_subset ?_ ?_) ?_ + · rw [strictVerticalFill_Icc_union h01 h12] + exact Set.union_subset (hrow 0 (by norm_num)) (hrow 1 (by norm_num)) + · rw [strictVerticalFill_Icc_union h12 (h23.trans h34), strictVerticalFill_Icc_union h23 h34] + exact Set.union_subset (hrow 4 (by norm_num)) + (Set.union_subset (hrow 3 (by norm_num)) (hrow 2 (by norm_num))) + · rw [strictVerticalFill_Icc_union h34 h45] + exact Set.union_subset (hrow 5 (by norm_num)) (hrow 6 (by norm_num)) + +/-- The planar volume of one covering rectangle. -/ +theorem volume_gerverNicheRect (r j : ℕ) : + volume (gerverNicheRect r j) = + ENNReal.ofReal ((((rectHiZ r j - rectLoZ r j : ℤ)) : ℝ) / (M : ℝ)) * + ENNReal.ofReal (((rectHZ r j : ℤ) : ℝ) / (M : ℝ)) := by + rw [gerverNicheRect, EuclideanSpace.volume_setOf_apply_mem_Icc] + congr 2 + · push_cast + ring + · ring + +/-- The certificate bounds the total rectangle volume. -/ +theorem gerverNicheRect_volume_sum_le : + ∑ r ∈ Finset.range 7, ∑ j ∈ Finset.range NN, volume (gerverNicheRect r j) ≤ + ENNReal.ofReal ((3301 : ℝ) / 5000) := by + have hM := SI.Mpos + have hQ : (0 : ℝ) < (M : ℝ) * (M : ℝ) := mul_pos hM hM + -- `unfold` rather than a type ascription: matching `nicheOK` against `decide _` by + -- unification would force the elaborator to evaluate the whole certificate. + have hcert : 5000 * nicheSumZ ≤ 3301 * M * M := by + have h := nicheOK_true + unfold nicheOK at h + exact of_decide_eq_true h + have harea : ∀ r j : ℕ, + rectAreaZ r j = max 0 (rectHiZ r j - rectLoZ r j) * max 0 (rectHZ r j) := by + intro r j + simp only [rectAreaZ, SI.imax_eq_max] + have hnn : ∀ r j : ℕ, (0 : ℝ) ≤ (rectAreaZ r j : ℝ) / ((M : ℝ) * (M : ℝ)) := by + intro r j + refine div_nonneg ?_ hQ.le + have : (0 : ℤ) ≤ rectAreaZ r j := by + rw [harea] + exact mul_nonneg (le_max_left _ _) (le_max_left _ _) + exact_mod_cast this + have hcell : ∀ r j : ℕ, volume (gerverNicheRect r j) ≤ + ENNReal.ofReal ((rectAreaZ r j : ℝ) / ((M : ℝ) * (M : ℝ))) := by + intro r j + have hA : ((rectHiZ r j - rectLoZ r j : ℤ) : ℝ) / (M : ℝ) ≤ + ((max 0 (rectHiZ r j - rectLoZ r j) : ℤ) : ℝ) / (M : ℝ) := by + gcongr + exact_mod_cast le_max_right (0 : ℤ) (rectHiZ r j - rectLoZ r j) + have hB : ((rectHZ r j : ℤ) : ℝ) / (M : ℝ) ≤ + ((max 0 (rectHZ r j) : ℤ) : ℝ) / (M : ℝ) := by + gcongr + exact_mod_cast le_max_right (0 : ℤ) (rectHZ r j) + have hA0 : (0 : ℝ) ≤ ((max 0 (rectHiZ r j - rectLoZ r j) : ℤ) : ℝ) / (M : ℝ) := by + refine div_nonneg ?_ hM.le + exact_mod_cast le_max_left (0 : ℤ) (rectHiZ r j - rectLoZ r j) + rw [volume_gerverNicheRect] + refine le_trans (mul_le_mul' (ENNReal.ofReal_le_ofReal hA) (ENNReal.ofReal_le_ofReal hB)) ?_ + rw [← ENNReal.ofReal_mul hA0] + refine ENNReal.ofReal_le_ofReal (le_of_eq ?_) + rw [harea] + push_cast + field_simp + have hns : nicheSumZ = ∑ r ∈ Finset.range 7, ∑ j ∈ Finset.range NN, rectAreaZ r j := by + rw [nicheSumZ, SI.foldl_range_int] + exact Finset.sum_congr rfl fun r _ => by rw [rowSumZ, SI.foldl_range_int] + have hsum : ∑ r ∈ Finset.range 7, ∑ j ∈ Finset.range NN, + (rectAreaZ r j : ℝ) / ((M : ℝ) * (M : ℝ)) = + (nicheSumZ : ℝ) / ((M : ℝ) * (M : ℝ)) := by + rw [hns] + push_cast + simp only [← Finset.sum_div] + calc ∑ r ∈ Finset.range 7, ∑ j ∈ Finset.range NN, volume (gerverNicheRect r j) + ≤ ∑ r ∈ Finset.range 7, ∑ j ∈ Finset.range NN, + ENNReal.ofReal ((rectAreaZ r j : ℝ) / ((M : ℝ) * (M : ℝ))) := + Finset.sum_le_sum fun r _ => Finset.sum_le_sum fun j _ => hcell r j + _ = ∑ r ∈ Finset.range 7, ENNReal.ofReal + (∑ j ∈ Finset.range NN, (rectAreaZ r j : ℝ) / ((M : ℝ) * (M : ℝ))) := + Finset.sum_congr rfl fun r _ => + (ENNReal.ofReal_sum_of_nonneg fun j _ => hnn r j).symm + _ = ENNReal.ofReal (∑ r ∈ Finset.range 7, ∑ j ∈ Finset.range NN, + (rectAreaZ r j : ℝ) / ((M : ℝ) * (M : ℝ))) := + (ENNReal.ofReal_sum_of_nonneg fun r _ => Finset.sum_nonneg fun j _ => hnn r j).symm + _ ≤ ENNReal.ofReal ((3301 : ℝ) / 5000) := by + refine ENNReal.ofReal_le_ofReal ?_ + rw [hsum, div_le_div_iff₀ hQ (by norm_num)] + have hR : (5000 : ℝ) * (nicheSumZ : ℝ) ≤ 3301 * (M : ℝ) * (M : ℝ) := by + exact_mod_cast hcert + linarith + +/-- The niche volume bound. -/ +theorem gerver_niche_volume_le : + volume gerverLiteralNiche ≤ ENNReal.ofReal ((3301 : ℝ) / 5000) := by + calc volume gerverLiteralNiche + ≤ volume (⋃ r ∈ Finset.range 7, ⋃ j ∈ Finset.range NN, gerverNicheRect r j) := + measure_mono gerverLiteralNiche_subset_rects + _ ≤ ∑ r ∈ Finset.range 7, volume (⋃ j ∈ Finset.range NN, gerverNicheRect r j) := + measure_biUnion_finset_le _ _ + _ ≤ ∑ r ∈ Finset.range 7, ∑ j ∈ Finset.range NN, volume (gerverNicheRect r j) := + Finset.sum_le_sum fun _ _ => measure_biUnion_finset_le _ _ + _ ≤ ENNReal.ofReal ((3301 : ℝ) / 5000) := gerverNicheRect_volume_sum_le + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Rational area bounds for the canonical Gerver sofa + +The canonical Gerver sofa is the paper's literal set (`gerver_canonical_paper_literal`), the +difference of the literal outer cap and the literal niche. The cap and the niche are Borel +of finite area with `28609 / 10000 ≤ |K₀|` and `|N₀| ≤ 3301 / 5000` +(`gerver_geometric_area_bounds`), both numeric bounds coming from the kernel-checked +certificate `MovingSofa.Gerver.AreaCertificate` through the fan bound of +`MovingSofa.Gerver.Area.CapFan` and the rectangle cover of +`MovingSofa.Gerver.Area.NicheCover`. Subadditivity of area then gives +`11 / 5 ≤ |G|` (`gerver_area_lower_bound`). +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open MeasureTheory + +theorem gerver_canonical_paper_literal : + gerversSofa = paperGerverSofa ∧ paperGerverSofa = gerverLiteralSofa := by + refine ⟨?_, paperGerverSofa_eq_literal⟩ + have hTpos : (0 : ℝ) < Real.pi / 2 := by positivity + have hT0 : (0 : ℝ) ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨le_rfl, hTpos.le⟩ + have hTT : (Real.pi / 2) ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨hTpos.le, le_rfl⟩ + -- Translate-then-rotate splits into rotation of the point plus rotation of the shift. + have hrt : ∀ (α : Real.Angle) (v s : Point), + rotateTranslate α v s = rotationMap α s + rotationMap α v := by + intro α v s + change (EuclideanGeometry.o.rotation α) (s + v) = _ + exact map_add _ _ _ + -- The canonical placements agree with the paper ones on `[0, π/2]`. + have himg : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), ∀ S : Set Point, + rotateTranslate (t : Real.Angle) (GerversSofa.p t) '' S = + (fun s ↦ rotationMap (t : Real.Angle) s + paperGerverPath t) '' S := by + intro t ht S + apply Set.image_congr' + intro s + rw [hrt, canonical_path_rotation_eq_paper t ht] + -- Membership in a rotated-translated coordinate region is read off in the moving frame. + have himage : ∀ (P : ℝ → ℝ → Prop) (S : Set Point), + (∀ s : Point, s ∈ S ↔ P (s 0) (s 1)) → + ∀ (t : Real.Angle) (v z : Point), + z ∈ (fun s ↦ rotationMap t s + v) '' S ↔ + P (inner ℝ (z - v) (normalVector t)) (inner ℝ (z - v) (tangentVector t)) := by + intro P S hS t v z + constructor + · rintro ⟨s, hs, rfl⟩ + have h0 : inner ℝ (rotationMap t s + v - v) (normalVector t) = s 0 := by + rw [add_sub_cancel_right, inner_rotationMap_normalVector] + have h1 : inner ℝ (rotationMap t s + v - v) (tangentVector t) = s 1 := by + rw [add_sub_cancel_right, inner_rotationMap_tangentVector] + rw [h0, h1] + exact (hS s).1 hs + · intro h + obtain ⟨s, hs⟩ := (EuclideanGeometry.o.rotation t).surjective (z - v) + have hsz : rotationMap t s = z - v := hs + have h0 : s 0 = inner ℝ (z - v) (normalVector t) := by + rw [← inner_rotationMap_normalVector s t, hsz] + have h1 : s 1 = inner ℝ (z - v) (tangentVector t) := by + rw [← inner_rotationMap_tangentVector s t, hsz] + refine ⟨s, (hS s).2 ?_, ?_⟩ + · rw [h0, h1]; exact h + · change rotationMap t s + v = z + rw [hsz]; abel + have hhoriz : ∀ s : Point, s ∈ horizontalHallway ↔ s 0 ≤ 1 ∧ 0 ≤ s 1 ∧ s 1 ≤ 1 := + fun s => ⟨mem_horizontalHallway_coordinates, + fun h => mem_horizontalHallway_of_coordinates s h.1 ⟨h.2.1, h.2.2⟩⟩ + have hvert : ∀ s : Point, s ∈ verticalHallway ↔ 0 ≤ s 0 ∧ s 0 ≤ 1 ∧ s 1 ≤ 1 := + fun s => ⟨mem_verticalHallway_coordinates, + fun h => mem_verticalHallway_of_coordinates s ⟨h.1, h.2.1⟩ h.2.2⟩ + have hhall : ∀ s : Point, s ∈ hallway ↔ (s 0 ≤ 1 ∧ s 1 ≤ 1) ∧ (0 ≤ s 0 ∨ 0 ≤ s 1) := + mem_hallway_iff + -- Endpoint normalisations of the paper path. + have hreg := gerver_direct_path_regularity GerverSofa.PartB.params + GerverSofa.PartB.params_mem GerverSofa.PartB.params_equations + have hpath0 : paperGerverPath 0 = 0 := by + change GerverSofa.PartF.Coordinates.toPlane + (GerverSofa.Romik.path GerverSofa.PartB.params 0) = 0 + rw [hreg.2.1] + ext i + fin_cases i <;> rfl + have hpathT : paperGerverPath (Real.pi / 2) 1 = 0 := + GerverSofa.Romik.path_end_y_zero_of_mem_box_and_equations + GerverSofa.PartB.params_mem GerverSofa.PartB.params_equations + have hstrip : ∀ z : Point, + z ∈ (strips (Real.pi / 2)).1 ∩ (strips (Real.pi / 2)).2.2 ↔ 0 ≤ z 1 ∧ z 1 ≤ 1 := by + intro z + have h := mem_stripParallelogram_iff (Real.pi / 2) z + rw [inner_normalVector_pi_div_two] at h + have hset : (strips (Real.pi / 2)).1 ∩ (strips (Real.pi / 2)).2.2 = + (stripParallelogram (Real.pi / 2)).1 := rfl + rw [hset, h] + tauto + -- Rewrite both endpoint arms and the family of hallways in the paper frame. + have hzero : ((0 : ℝ) : Real.Angle) = (0 : Real.Angle) := Real.Angle.coe_zero + have hgs : gerversSofa = + ((fun s ↦ rotationMap ((0 : ℝ) : Real.Angle) s + paperGerverPath 0) '' + horizontalHallway ∩ + (fun s ↦ rotationMap ((Real.pi / 2 : ℝ) : Real.Angle) s + + paperGerverPath (Real.pi / 2)) '' verticalHallway) ∩ + ⋂ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + (fun s ↦ rotationMap (t : Real.Angle) s + paperGerverPath t) '' hallway := by + change rotateTranslate 0 (GerversSofa.p 0) '' horizontalHallway ∩ + rotateTranslate ((Real.pi / 2 : ℝ) : Real.Angle) + (GerversSofa.p (Real.pi / 2)) '' verticalHallway ∩ + (⋂ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + rotateTranslate (t : Real.Angle) (GerversSofa.p t) '' hallway) = _ + rw [← hzero, himg 0 hT0 horizontalHallway, + himg (Real.pi / 2) hTT verticalHallway, + Set.iInter₂_congr (fun t (ht : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) => himg t ht hallway)] + have hpaper : paperGerverSofa = + {z : Point | 0 ≤ z 1 ∧ z 1 ≤ 1} ∩ + ⋂ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + (fun s ↦ rotationMap (t : Real.Angle) s + paperGerverPath t) '' hallway := by + change (strips (Real.pi / 2)).1 ∩ (strips (Real.pi / 2)).2.2 ∩ _ = _ + rw [Set.ext hstrip] + rfl + rw [hgs, hpaper] + ext q + have hn0 : inner ℝ (q - paperGerverPath 0) (normalVector ((0 : ℝ) : Real.Angle)) = q 0 := by + rw [hpath0, sub_zero, inner_normalVector_zero] + have hg0 : inner ℝ (q - paperGerverPath 0) (tangentVector ((0 : ℝ) : Real.Angle)) = q 1 := by + rw [hpath0, sub_zero, inner_tangentVector_zero] + have hnT : inner ℝ (q - paperGerverPath (Real.pi / 2)) + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = q 1 := by + rw [inner_normalVector_pi_div_two] + change q 1 - paperGerverPath (Real.pi / 2) 1 = q 1 + rw [hpathT, sub_zero] + have hAhoriz := himage (fun a b => a ≤ 1 ∧ 0 ≤ b ∧ b ≤ 1) horizontalHallway hhoriz + have hAvert := himage (fun a b => 0 ≤ a ∧ a ≤ 1 ∧ b ≤ 1) verticalHallway hvert + have hAhall := himage (fun a b => (a ≤ 1 ∧ b ≤ 1) ∧ (0 ≤ a ∨ 0 ≤ b)) hallway hhall + simp only [Set.mem_inter_iff, Set.mem_iInter₂, Set.mem_ofPred_eq, hAhoriz, hAvert, hAhall, + hn0, hg0, hnT] + constructor + · rintro ⟨⟨⟨-, hb0, hb1⟩, -⟩, hC⟩ + exact ⟨⟨hb0, hb1⟩, hC⟩ + · rintro ⟨⟨hb0, hb1⟩, hC⟩ + refine ⟨⟨⟨?_, hb0, hb1⟩, hb0, hb1, ?_⟩, hC⟩ + · have h := (hC 0 hT0).1.1 + rwa [hn0] at h + · exact (hC (Real.pi / 2) hTT).1.2 + +theorem gerver_geometric_area_bounds : + MeasurableSet gerverOuterCap ∧ volume gerverOuterCap < ⊤ ∧ + MeasurableSet gerverLiteralNiche ∧ volume gerverLiteralNiche < ⊤ ∧ + (28609 : ℝ) / 10000 ≤ ClassicalResults.area gerverOuterCap ∧ + ClassicalResults.area gerverLiteralNiche ≤ (3301 : ℝ) / 5000 := by + have hfin : volume gerverLiteralNiche ≤ ENNReal.ofReal ((3301 : ℝ) / 5000) := + gerver_niche_volume_le + refine ⟨measurableSet_gerverOuterCap, volume_gerverOuterCap_lt_top, + measurableSet_gerverLiteralNiche, lt_of_le_of_lt hfin ENNReal.ofReal_lt_top, + gerverOuterCap_area_certified_lower_bound, ?_⟩ + calc ClassicalResults.area gerverLiteralNiche + = (volume gerverLiteralNiche).toReal := rfl + _ ≤ (ENNReal.ofReal ((3301 : ℝ) / 5000)).toReal := + ENNReal.toReal_mono ENNReal.ofReal_ne_top hfin + _ = (3301 : ℝ) / 5000 := ENNReal.toReal_ofReal (by norm_num) + +theorem gerver_area_lower_bound : + volume gerversSofa < ⊤ ∧ (11 : ℝ) / 5 ≤ ClassicalResults.area gerversSofa := by + obtain ⟨-, hKtop, -, hNtop, hKarea, hNarea⟩ := gerver_geometric_area_bounds + have hG : gerversSofa = gerverOuterCap \ gerverLiteralNiche := + gerver_canonical_paper_literal.1.trans gerver_canonical_paper_literal.2 + have hGtop : volume gerversSofa < ⊤ := + lt_of_le_of_lt (measure_mono (hG ▸ Set.sdiff_subset)) hKtop + refine ⟨hGtop, ?_⟩ + -- The cap is covered by the sofa together with the niche, so areas are subadditive. + have hcover : volume gerverOuterCap ≤ volume gerversSofa + volume gerverLiteralNiche := by + refine le_trans (measure_mono ?_) (measure_union_le _ _) + rw [hG] + exact Set.subset_sdiff_union _ _ + have hreal : ClassicalResults.area gerverOuterCap ≤ + ClassicalResults.area gerversSofa + ClassicalResults.area gerverLiteralNiche := by + have h := ENNReal.toReal_mono (by finiteness) hcover + rwa [ENNReal.toReal_add hGtop.ne hNtop.ne] at h + linarith only [hreal, hKarea, hNarea] + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Gerver.CapIdentification`. +* `Gerver.Niche.Identification`. +* `Gerver.SurfaceDensity`. +* `Gerver.VelocityAndCapArea`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Gerver / Cap Identification +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +private theorem gerver_cap_fiber_has_sofa_point + (hKcomp : IsCompact gerverOuterCap) : + ∀ q ∈ gerverOuterCap, + ∃ p ∈ gerverLiteralSofa, p 0 = q 0 ∧ q 1 ≤ p 1 := by + intro q hq + have hFcomp : IsCompact (gerverOuterCap ∩ {z : Point | + inner ℝ z (normalVector ((0 : ℝ) : Real.Angle)) = + inner ℝ q (normalVector ((0 : ℝ) : Real.Angle))}) := + hKcomp.inter_right (isClosed_eq (continuous_id.inner continuous_const) continuous_const) + obtain ⟨p, hpF, hpmax⟩ := hFcomp.exists_isMaxOn ⟨q, hq, rfl⟩ + (f := fun z : Point => inner ℝ z (normalVector ((Real.pi / 2 : ℝ) : Real.Angle))) + (continuous_id.inner continuous_const).continuousOn + have hpx : p 0 = q 0 := by + have h : inner ℝ p (normalVector ((0 : ℝ) : Real.Angle)) = + inner ℝ q (normalVector ((0 : ℝ) : Real.Angle)) := hpF.2 + rwa [inner_normalVector_zero, inner_normalVector_zero] at h + have hpy : q 1 ≤ p 1 := by + have h : inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) ≤ + inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) := hpmax ⟨hq, rfl⟩ + rwa [inner_normalVector_pi_div_two, inner_normalVector_pi_div_two] at h + have hnofill : ∀ (f : ℝ → Point) (I : Set ℝ), (∀ t ∈ I, f t ∈ gerverOuterCap) → + p ∉ strictVerticalFill f I := by + rintro f I hf ⟨t, ht, h0, -, h2⟩ + have hmem : f t ∈ gerverOuterCap ∩ {z : Point | + inner ℝ z (normalVector ((0 : ℝ) : Real.Angle)) = + inner ℝ q (normalVector ((0 : ℝ) : Real.Angle))} := by + refine ⟨hf t ht, ?_⟩ + change inner ℝ (f t) (normalVector ((0 : ℝ) : Real.Angle)) = + inner ℝ q (normalVector ((0 : ℝ) : Real.Angle)) + rw [inner_normalVector_zero, inner_normalVector_zero, ← h0, hpx] + have hle : inner ℝ (f t) (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) ≤ + inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) := hpmax hmem + rw [inner_normalVector_pi_div_two, inner_normalVector_pi_div_two] at hle + linarith + obtain ⟨hroofD, hroofx, hroofB⟩ := gerver_niche_roof_membership + refine ⟨p, ⟨hpF.1, ?_⟩, hpx, hpy⟩ + rw [gerver_niche_vertical_fills] + rintro ((h | h) | h) + · exact hnofill _ _ hroofD h + · exact hnofill _ _ hroofx h + · exact hnofill _ _ hroofB h + +private theorem gerver_cap_contact_faces (Kb : ConvexBody Point) + (hKset : (Kb : Set Point) = gerverOuterCap) + (hKcap : IsCap (Real.pi / 2) Kb) + (hC1 : ContDiff ℝ 1 (GerverSofa.Romik.path GerverSofa.PartB.params)) + (hAn : ∀ t : ℝ, inner ℝ (paperGerverContacts t 0) (normalVector (t : Real.Angle)) = + inner ℝ (paperGerverPath t) (normalVector (t : Real.Angle)) + 1) + (hAt : ∀ t : ℝ, inner ℝ (paperGerverContacts t 0) (tangentVector (t : Real.Angle)) = + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) + + (paperGerverVelocityComponents t).1) + (hCn : ∀ t : ℝ, inner ℝ (paperGerverContacts t 2) (normalVector (t : Real.Angle)) = + inner ℝ (paperGerverPath t) (normalVector (t : Real.Angle)) - + (paperGerverVelocityComponents t).2) + (hCt : ∀ t : ℝ, inner ℝ (paperGerverContacts t 2) (tangentVector (t : Real.Angle)) = + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) + 1) + (hsupK : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + supportValue gerverOuterCap (t : Real.Angle) = + inner ℝ (paperGerverPath t) (normalVector (t : Real.Angle)) + 1 ∧ + supportValue gerverOuterCap ((Real.pi / 2 + t : ℝ) : Real.Angle) = + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) + 1) + (hTpos : (0 : ℝ) < Real.pi / 2) : + ∃ K : CapSpace (Real.pi / 2), (K.val : Set Point) = gerverOuterCap ∧ + (∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + exposedEdge K.val (t : Real.Angle) = {paperGerverContacts t 0} ∧ + exposedEdge K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) = {paperGerverContacts t 2}) ∧ + paperGerverContacts 0 0 = (edgeVertices K.val (0 : Real.Angle)).1 ∧ + paperGerverContacts (Real.pi / 2) 0 = + (edgeVertices K.val ((Real.pi / 2 : ℝ) : Real.Angle)).2 ∧ + paperGerverContacts 0 2 = (edgeVertices K.val ((Real.pi / 2 : ℝ) : Real.Angle)).1 ∧ + paperGerverContacts (Real.pi / 2) 2 = (edgeVertices K.val (Real.pi : Real.Angle)).2 := by + -- a plane point is determined by its two frame coordinates + have hpteq : ∀ (a : Real.Angle) (p q : Point), + inner ℝ p (normalVector a) = inner ℝ q (normalVector a) → + inner ℝ p (tangentVector a) = inner ℝ q (tangentVector a) → p = q := by + intro a p q h1 h2 + rw [← inner_normalVector_smul_add_inner_tangentVector_smul p a, + ← inner_normalVector_smul_add_inner_tangentVector_smul q a, h1, h2] + have hdx : ∀ t : ℝ, HasDerivAt paperGerverPath (deriv paperGerverPath t) t := fun t => by + rw [deriv_paperGerverPath hC1 t] + exact hasDerivAt_paperGerverPath hC1 t + -- exposed faces of the certified body, read in the cap's own description + have hexp : ∀ (a : Real.Angle) (z : Point), z ∈ exposedEdge Kb a ↔ + (z ∈ gerverOuterCap ∧ + inner ℝ z (normalVector a) = supportValue gerverOuterCap a) := by + intro a z + constructor + · intro h + refine ⟨hKset ▸ h.1, ?_⟩ + have h2 : inner ℝ z (normalVector a) = supportValue (Kb : Set Point) a := h.2 + rwa [hKset] at h2 + · intro h + refine ⟨hKset ▸ h.1, ?_⟩ + change inner ℝ z (normalVector a) = supportValue (Kb : Set Point) a + rw [hKset] + exact h.2 + have hsingleV : ∀ (a : Real.Angle) (p : Point), exposedEdge Kb a = {p} → + (edgeVertices Kb a).1 = p ∧ (edgeVertices Kb a).2 = p := fun a p h => + ⟨Set.mem_singleton_iff.1 (h ▸ edgeVertices_fst_mem Kb a), + Set.mem_singleton_iff.1 (h ▸ edgeVertices_snd_mem Kb a)⟩ + -- interior uniqueness in the normal family + have hnormaledge : ∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), ∀ z ∈ gerverOuterCap, + inner ℝ z (normalVector (t : Real.Angle)) = + inner ℝ (paperGerverPath t) (normalVector (t : Real.Angle)) + 1 → + z = paperGerverContacts t 0 := by + intro t ht z hz heq + have hgd : HasDerivAt (fun s : ℝ => + (inner ℝ (paperGerverPath s) (normalVector (s : Real.Angle)) + 1) - + inner ℝ z (normalVector (s : Real.Angle))) + ((inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) + + (paperGerverVelocityComponents t).1) - + inner ℝ z (tangentVector (t : Real.Angle))) t := + (((hdx t).inner ℝ (hasDerivAt_normalVector t)).add_const 1).sub + (hasDerivAt_inner_normalVector z t) + have hgmin : IsLocalMin (fun s : ℝ => + (inner ℝ (paperGerverPath s) (normalVector (s : Real.Angle)) + 1) - + inner ℝ z (normalVector (s : Real.Angle))) t := by + refine IsMinOn.isLocalMin ?_ (Icc_mem_nhds ht.1 ht.2) + intro s hs + have h := (hz.2 s hs).1 + change (inner ℝ (paperGerverPath t) (normalVector (t : Real.Angle)) + 1) - + inner ℝ z (normalVector (t : Real.Angle)) ≤ + (inner ℝ (paperGerverPath s) (normalVector (s : Real.Angle)) + 1) - + inner ℝ z (normalVector (s : Real.Angle)) + linarith + have hzero := hgmin.hasDerivAt_eq_zero hgd + refine hpteq (t : Real.Angle) z (paperGerverContacts t 0) ?_ ?_ + · rw [hAn t]; exact heq + · rw [hAt t]; linarith + -- interior uniqueness in the tangent family + have htangentedge : ∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), ∀ z ∈ gerverOuterCap, + inner ℝ z (tangentVector (t : Real.Angle)) = + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) + 1 → + z = paperGerverContacts t 2 := by + intro t ht z hz heq + have hzt : HasDerivAt (fun s : ℝ => inner ℝ z (tangentVector (s : Real.Angle))) + (-inner ℝ z (normalVector (t : Real.Angle))) t := by + simpa using (hasDerivAt_const t z).inner ℝ (hasDerivAt_tangentVector t) + have hgd : HasDerivAt (fun s : ℝ => + (inner ℝ (paperGerverPath s) (tangentVector (s : Real.Angle)) + 1) - + inner ℝ z (tangentVector (s : Real.Angle))) + ((inner ℝ (paperGerverPath t) (-normalVector (t : Real.Angle)) + + (paperGerverVelocityComponents t).2) - + -inner ℝ z (normalVector (t : Real.Angle))) t := + (((hdx t).inner ℝ (hasDerivAt_tangentVector t)).add_const 1).sub hzt + have hgmin : IsLocalMin (fun s : ℝ => + (inner ℝ (paperGerverPath s) (tangentVector (s : Real.Angle)) + 1) - + inner ℝ z (tangentVector (s : Real.Angle))) t := by + refine IsMinOn.isLocalMin ?_ (Icc_mem_nhds ht.1 ht.2) + intro s hs + have h := (hz.2 s hs).2 + change (inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) + 1) - + inner ℝ z (tangentVector (t : Real.Angle)) ≤ + (inner ℝ (paperGerverPath s) (tangentVector (s : Real.Angle)) + 1) - + inner ℝ z (tangentVector (s : Real.Angle)) + linarith + have hzero := hgmin.hasDerivAt_eq_zero hgd + rw [inner_neg_right] at hzero + refine hpteq (t : Real.Angle) z (paperGerverContacts t 2) ?_ ?_ + · rw [hCn t]; linarith + · rw [hCt t]; exact heq + -- the interior exposed faces are the two contact singletons + have hedgeA : ∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + exposedEdge Kb (t : Real.Angle) = {paperGerverContacts t 0} := by + intro t ht + have htI : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := Set.Ioo_subset_Icc_self ht + refine Set.eq_singleton_iff_unique_mem.2 + ⟨(hexp _ _).2 ⟨gerver_outer_contact_A t htI, ?_⟩, fun z hz => ?_⟩ + · rw [hAn t, (hsupK t htI).1] + · rw [hexp] at hz + exact hnormaledge t ht z hz.1 (by rw [hz.2, (hsupK t htI).1]) + have hedgeC : ∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + exposedEdge Kb ((t + Real.pi / 2 : ℝ) : Real.Angle) = {paperGerverContacts t 2} := by + intro t ht + have htI : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := Set.Ioo_subset_Icc_self ht + have hang : ((t + Real.pi / 2 : ℝ) : Real.Angle) = + ((Real.pi / 2 + t : ℝ) : Real.Angle) := by rw [add_comm] + have hsv : supportValue gerverOuterCap ((t + Real.pi / 2 : ℝ) : Real.Angle) = + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) + 1 := by + rw [hang]; exact (hsupK t htI).2 + refine Set.eq_singleton_iff_unique_mem.2 + ⟨(hexp _ _).2 ⟨gerver_outer_contact_C t htI, ?_⟩, fun z hz => ?_⟩ + · rw [normalVector_add_pi_div_two_real, hCt t, hsv] + · rw [hexp] at hz + refine htangentedge t ht z hz.1 ?_ + have h := hz.2 + rwa [normalVector_add_pi_div_two_real, hsv] at h + -- the four contact curves are continuous + have hcontacts : Continuous paperGerverContacts := paperGerverContactData_properties.2.1 + have hcontA : Continuous fun s : ℝ => paperGerverContacts s 0 := + (continuous_apply 0).comp hcontacts + have hcontC : Continuous fun s : ℝ => paperGerverContacts s 2 := + (continuous_apply 2).comp hcontacts + -- vertex limits at the four endpoints + have hpi : (0 : ℝ) < Real.pi := Real.pi_pos + have heventA : ∀ᶠ s : ℝ in nhdsWithin 0 (Set.Ioi 0), + paperGerverContacts s 0 = (edgeVertices Kb (s : Real.Angle)).1 := by + filter_upwards [Ioo_mem_nhdsGT hTpos] with s hs + exact ((hsingleV _ _ (hedgeA s hs)).1).symm + have heventA' : ∀ᶠ s : ℝ in nhdsWithin (Real.pi / 2) (Set.Iio (Real.pi / 2)), + paperGerverContacts s 0 = (edgeVertices Kb (s : Real.Angle)).1 := by + filter_upwards [Ioo_mem_nhdsLT hTpos] with s hs + exact ((hsingleV _ _ (hedgeA s hs)).1).symm + have hCshift : ∀ s : ℝ, s ∈ Set.Ioo (Real.pi / 2) Real.pi → + paperGerverContacts (s - Real.pi / 2) 2 = (edgeVertices Kb (s : Real.Angle)).1 := by + intro s hs + have hs' : s - Real.pi / 2 ∈ Set.Ioo (0 : ℝ) (Real.pi / 2) := + ⟨by linarith [hs.1], by linarith [hs.2]⟩ + have hang : ((s : ℝ) : Real.Angle) = + ((s - Real.pi / 2 + Real.pi / 2 : ℝ) : Real.Angle) := by rw [sub_add_cancel] + rw [hang] + exact ((hsingleV _ _ (hedgeC (s - Real.pi / 2) hs')).1).symm + have heventC : ∀ᶠ s : ℝ in nhdsWithin (Real.pi / 2) (Set.Ioi (Real.pi / 2)), + paperGerverContacts (s - Real.pi / 2) 2 = (edgeVertices Kb (s : Real.Angle)).1 := by + filter_upwards [Ioo_mem_nhdsGT (show Real.pi / 2 < Real.pi by linarith)] with s hs + exact hCshift s hs + have heventC' : ∀ᶠ s : ℝ in nhdsWithin Real.pi (Set.Iio Real.pi), + paperGerverContacts (s - Real.pi / 2) 2 = (edgeVertices Kb (s : Real.Angle)).1 := by + filter_upwards [Ioo_mem_nhdsLT (show Real.pi / 2 < Real.pi by linarith)] with s hs + exact hCshift s hs + have hcontCshift : Continuous fun s : ℝ => paperGerverContacts (s - Real.pi / 2) 2 := + hcontC.comp (continuous_id.sub continuous_const) + refine ⟨⟨Kb, hKcap⟩, hKset, fun t ht => ⟨hedgeA t ht, hedgeC t ht⟩, ?_, ?_, ?_, ?_⟩ + · rw [← Real.Angle.coe_zero] + refine tendsto_nhds_unique ?_ (contact_oneSided_limits Kb 0).1 + exact Filter.Tendsto.congr' heventA ((hcontA.tendsto 0).mono_left nhdsWithin_le_nhds) + · refine tendsto_nhds_unique ?_ (contact_oneSided_limits Kb (Real.pi / 2)).2.2.2.1 + exact Filter.Tendsto.congr' heventA' + ((hcontA.tendsto (Real.pi / 2)).mono_left nhdsWithin_le_nhds) + · refine tendsto_nhds_unique ?_ (contact_oneSided_limits Kb (Real.pi / 2)).1 + have h : Filter.Tendsto (fun s : ℝ => paperGerverContacts (s - Real.pi / 2) 2) + (nhdsWithin (Real.pi / 2) (Set.Ioi (Real.pi / 2))) + (nhds (paperGerverContacts 0 2)) := by + have := (hcontCshift.tendsto (Real.pi / 2)).mono_left + (nhdsWithin_le_nhds (s := Set.Ioi (Real.pi / 2))) + rwa [sub_self] at this + exact Filter.Tendsto.congr' heventC h + · refine tendsto_nhds_unique ?_ (contact_oneSided_limits Kb Real.pi).2.2.2.1 + have h : Filter.Tendsto (fun s : ℝ => paperGerverContacts (s - Real.pi / 2) 2) + (nhdsWithin Real.pi (Set.Iio Real.pi)) + (nhds (paperGerverContacts (Real.pi / 2) 2)) := by + have := (hcontCshift.tendsto Real.pi).mono_left + (nhdsWithin_le_nhds (s := Set.Iio Real.pi)) + rwa [show Real.pi - Real.pi / 2 = Real.pi / 2 by ring] at this + exact Filter.Tendsto.congr' heventC' h + +private theorem gerver_literal_standard_position + (hTpos : (0 : ℝ) < Real.pi / 2) + (hTmem : (Real.pi / 2) ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) + (hGcomp : IsCompact gerverLiteralSofa) + (hmotioncont : Continuous fun r : unitInterval => + rotateTranslate ((-(r.val * (Real.pi / 2)) : ℝ) : Real.Angle) + (-paperGerverPath (r.val * (Real.pi / 2)))) + (hpath0 : paperGerverPath 0 = 0) + (hpathTy : paperGerverPath (Real.pi / 2) 1 = 0) + (hcapx1 : ∀ q ∈ gerverOuterCap, q 0 ≤ 1) + (hcapy1 : ∀ q ∈ gerverOuterCap, q 1 ≤ 1) + (hsv1 : supportValue gerverLiteralSofa ((Real.pi / 2 : ℝ) : Real.Angle) = 1) : + IsStandardPosition gerverLiteralSofa (Real.pi / 2) := by + -- ### Frame readers for the clockwise motion + have hinnertan : ∀ (w : Point) (t : ℝ), inner ℝ w (tangentVector (t : Real.Angle)) = + -(w 0 * Real.sin t) + w 1 * Real.cos t := by + intro w t + simp [tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + ring + have hmapply : ∀ (t : ℝ) (v p : Point), + rotateTranslate ((-t : ℝ) : Real.Angle) (-v) p = + rotationMap ((-t : ℝ) : Real.Angle) (p - v) := by + intro t v p + change (EuclideanGeometry.o.rotation ((-t : ℝ) : Real.Angle)) (p + -v) = + (EuclideanGeometry.o.rotation ((-t : ℝ) : Real.Angle)) (p - v) + rw [← sub_eq_add_neg] + have hrotinv : ∀ (t : ℝ) (w : Point), + rotationMap ((-t : ℝ) : Real.Angle) (rotationMap ((t : ℝ) : Real.Angle) w) = w := by + intro t w + change (EuclideanGeometry.o.rotation ((-t : ℝ) : Real.Angle)) + ((EuclideanGeometry.o.rotation ((t : ℝ) : Real.Angle)) w) = w + rw [Real.Angle.coe_neg, ← Orientation.rotation_symm] + exact (EuclideanGeometry.o.rotation ((t : ℝ) : Real.Angle)).symm_apply_apply w + have hcoord0 : ∀ (t : ℝ) (w : Point), rotationMap ((-t : ℝ) : Real.Angle) w 0 = + inner ℝ w (normalVector (t : Real.Angle)) := by + intro t w + rw [rotationMap_apply_zero, inner_normalVector_real, Real.Angle.cos_coe, Real.Angle.sin_coe, + Real.cos_neg, Real.sin_neg] + ring + have hcoord1 : ∀ (t : ℝ) (w : Point), rotationMap ((-t : ℝ) : Real.Angle) w 1 = + inner ℝ w (tangentVector (t : Real.Angle)) := by + intro t w + rw [rotationMap_apply_one, hinnertan, Real.Angle.cos_coe, Real.Angle.sin_coe, + Real.cos_neg, Real.sin_neg] + ring + refine ⟨hGcomp, ⟨fun r => rotateTranslate ((-(r.val * (Real.pi / 2)) : ℝ) : Real.Angle) + (-paperGerverPath (r.val * (Real.pi / 2))), + ⟨gerver_literal_connected, hGcomp.isClosed, ?_, ⟨0, ?_⟩, ?_, ?_, ?_, ?_⟩, + fun r => -(r.val * (Real.pi / 2)), + (continuous_subtype_val.mul continuous_const).neg, + by simp, by simp, ?_⟩, + hTpos, le_rfl, hsv1, hsv1⟩ + · exact hmotioncont + · -- the motion starts at the identity + intro p + rw [hmapply] + simp only [Set.Icc.coe_zero, zero_mul, neg_zero, Real.Angle.coe_zero, hpath0, + sub_zero, add_zero] + change (EuclideanGeometry.o.rotation 0) p = p + simp + · -- each placement is a rotation followed by a translation + intro r + refine ⟨(((-(r.val * (Real.pi / 2))) : ℝ) : Real.Angle), fun p => ?_⟩ + rw [hmapply, hmapply] + simp only [rotationMap, zero_sub, map_sub, map_neg] + abel + · -- the initial placement lands in the horizontal arm + rintro _ ⟨z, hz, rfl⟩ + have heq : rotateTranslate + ((-((0 : unitInterval).val * (Real.pi / 2)) : ℝ) : Real.Angle) + (-paperGerverPath ((0 : unitInterval).val * (Real.pi / 2))) z = z := by + rw [hmapply] + simp only [Set.Icc.coe_zero, zero_mul, neg_zero, Real.Angle.coe_zero, hpath0, + sub_zero] + change (EuclideanGeometry.o.rotation 0) z = z + simp + rw [heq] + exact mem_horizontalHallway_of_coordinates z (hcapx1 z hz.1) + ⟨hz.1.1, hcapy1 z hz.1⟩ + · -- every intermediate placement lands in the hallway + intro r + rintro _ ⟨z, hz, rfl⟩ + have ht : r.val * (Real.pi / 2) ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨mul_nonneg r.2.1 hTpos.le, by + nlinarith [r.2.2, hTpos]⟩ + have hzP : z ∈ paperGerverSofa := by rw [paperGerverSofa_eq_literal]; exact hz + obtain ⟨w, hw, hwz⟩ := + Set.mem_iInter₂.1 hzP.2 (r.val * (Real.pi / 2)) ht + rw [hmapply] + have hzw : z - paperGerverPath (r.val * (Real.pi / 2)) = + rotationMap ((r.val * (Real.pi / 2) : ℝ) : Real.Angle) w := by + rw [← hwz] + change rotationMap ((r.val * (Real.pi / 2) : ℝ) : Real.Angle) w + + paperGerverPath (r.val * (Real.pi / 2)) - + paperGerverPath (r.val * (Real.pi / 2)) = + rotationMap ((r.val * (Real.pi / 2) : ℝ) : Real.Angle) w + abel + rw [hzw, hrotinv] + exact hw + · -- the final placement lands in the vertical arm + rintro _ ⟨z, hz, rfl⟩ + have hTm' : (1 : unitInterval).val * (Real.pi / 2) = Real.pi / 2 := by + rw [Set.Icc.coe_one, one_mul] + rw [hmapply] + refine mem_verticalHallway_of_coordinates _ ⟨?_, ?_⟩ ?_ + · rw [hcoord0, hTm', inner_sub_left, inner_normalVector_pi_div_two, + inner_normalVector_pi_div_two, hpathTy, sub_zero] + exact hz.1.1 + · rw [hcoord0, hTm', inner_sub_left, inner_normalVector_pi_div_two, + inner_normalVector_pi_div_two, hpathTy, sub_zero] + exact hcapy1 z hz.1 + · rw [hcoord1, hTm', inner_sub_left] + have h := (hz.1.2 (Real.pi / 2) hTmem).2 + linarith + · -- the motion realizes the lifted clockwise angle + intro r p + rw [hmapply, hmapply] + simp only [rotationMap, zero_sub, map_sub, map_neg] + abel + +private theorem gerver_literal_cap_eq + (hsupG : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + supportValue gerverLiteralSofa (t : Real.Angle) = + inner ℝ (paperGerverPath t) (normalVector (t : Real.Angle)) + 1 ∧ + supportValue gerverLiteralSofa ((Real.pi / 2 + t : ℝ) : Real.Angle) = + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) + 1) + (hcapy1 : ∀ q ∈ gerverOuterCap, q 1 ≤ 1) : + capOfSofa gerverLiteralSofa (Real.pi / 2) = gerverOuterCap := by + have hangsum : ∀ t : ℝ, (t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) = + ((Real.pi / 2 + t : ℝ) : Real.Angle) := fun t => by + rw [← Real.Angle.coe_add, add_comm] + have houter : ∀ t : ℝ, + (rotatingHallwayParts gerverLiteralSofa (t : Real.Angle)).outerQuadrant = + normalHalfPlane (t : Real.Angle) + (supportValue gerverLiteralSofa (t : Real.Angle)) false false ∩ + normalHalfPlane ((t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) + (supportValue gerverLiteralSofa + ((t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle))) false false := + fun t => (rotatingHallwayParts_formulas gerverLiteralSofa + (t : Real.Angle)).2.2.2.2.2.2.2.1 + ext z + constructor + · rintro ⟨hstrip, hint⟩ + rw [mem_stripParallelogram_iff] at hstrip + refine ⟨hstrip.1.1, fun t ht => ?_⟩ + have hq : z ∈ (rotatingHallwayParts gerverLiteralSofa (t : Real.Angle)).outerQuadrant := + Set.mem_iInter₂.1 hint t ht + rw [houter t] at hq + have h1 : inner ℝ z (normalVector (t : Real.Angle)) ≤ + supportValue gerverLiteralSofa (t : Real.Angle) := hq.1 + have h2 : inner ℝ z + (normalVector ((t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle))) ≤ + supportValue gerverLiteralSofa + ((t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) := hq.2 + rw [normalVector_add_pi_div_two, hangsum t, (hsupG t ht).2] at h2 + rw [(hsupG t ht).1] at h1 + exact ⟨h1, h2⟩ + · intro hz + refine ⟨?_, Set.mem_iInter₂.2 fun t ht => ?_⟩ + · rw [mem_stripParallelogram_iff, inner_normalVector_pi_div_two] + exact ⟨⟨hz.1, hcapy1 z hz⟩, hz.1, hcapy1 z hz⟩ + · rw [houter t] + refine ⟨?_, ?_⟩ + · change inner ℝ z (normalVector (t : Real.Angle)) ≤ + supportValue gerverLiteralSofa (t : Real.Angle) + rw [(hsupG t ht).1] + exact (hz.2 t ht).1 + · change inner ℝ z + (normalVector ((t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle))) ≤ + supportValue gerverLiteralSofa + ((t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) + rw [normalVector_add_pi_div_two, hangsum t, (hsupG t ht).2] + exact (hz.2 t ht).2 + +theorem gerver_capSupport_identification : + (∀ q ∈ gerverOuterCap, ∃ p ∈ gerverLiteralSofa, p 0 = q 0 ∧ q 1 ≤ p 1) ∧ + paperGerverSofa = gerverLiteralSofa ∧ + IsStandardPosition gerverLiteralSofa (Real.pi / 2) ∧ + (∀ s ∈ Set.Icc (0 : ℝ) Real.pi, + supportValue gerverLiteralSofa (s : Real.Angle) = supportValue gerverOuterCap (s : + Real.Angle)) ∧ + capOfSofa gerverLiteralSofa (Real.pi / 2) = gerverOuterCap ∧ + (∃ K : CapSpace (Real.pi / 2), (K.val : Set Point) = gerverOuterCap ∧ + (∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + exposedEdge K.val (t : Real.Angle) = {paperGerverContacts t 0} ∧ + exposedEdge K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) = {paperGerverContacts t 2}) ∧ + paperGerverContacts 0 0 = (edgeVertices K.val (0 : Real.Angle)).1 ∧ + paperGerverContacts (Real.pi / 2) 0 = + (edgeVertices K.val ((Real.pi / 2 : ℝ) : Real.Angle)).2 ∧ + paperGerverContacts 0 2 = (edgeVertices K.val ((Real.pi / 2 : ℝ) : Real.Angle)).1 ∧ + paperGerverContacts (Real.pi / 2) 2 = (edgeVertices K.val (Real.pi : Real.Angle)).2) ∧ + (∀ S ∈ ({gerverOuterCap, gerverLiteralSofa} : Set (Set Point)), + ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + supportValue S (t : Real.Angle) = + inner ℝ (paperGerverPath t) (normalVector (t : Real.Angle)) + 1 ∧ + supportValue S ((Real.pi / 2 + t : ℝ) : Real.Angle) = + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) + 1) := by + have hTpos : (0 : ℝ) < Real.pi / 2 := by positivity + have h0mem : (0 : ℝ) ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨le_rfl, hTpos.le⟩ + have hTmem : (Real.pi / 2) ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨hTpos.le, le_rfl⟩ + -- ### Path regularity and endpoints + have hreg := gerver_direct_path_regularity GerverSofa.PartB.params + GerverSofa.PartB.params_mem GerverSofa.PartB.params_equations + have hC1 : ContDiff ℝ 1 (GerverSofa.Romik.path GerverSofa.PartB.params) := hreg.1 + have hpathcont : Continuous paperGerverPath := continuous_paperGerverPath hC1 + -- The clockwise motion used for the moving-sofa property, and its continuity. + have hmotioncont : Continuous fun r : unitInterval => + rotateTranslate ((-(r.val * (Real.pi / 2)) : ℝ) : Real.Angle) + (-paperGerverPath (r.val * (Real.pi / 2))) := by + have hpair : Continuous fun r : unitInterval => + ((((-(r.val * (Real.pi / 2))) : ℝ) : Real.Angle), + -paperGerverPath (r.val * (Real.pi / 2))) := + (Real.Angle.continuous_coe.comp (continuous_subtype_val.mul continuous_const).neg).prodMk + ((hpathcont.comp (continuous_subtype_val.mul continuous_const)).neg) + have heq : (fun r : unitInterval => + rotateTranslate ((-(r.val * (Real.pi / 2)) : ℝ) : Real.Angle) + (-paperGerverPath (r.val * (Real.pi / 2)))) = + (fun q : Real.Angle × Point => (AffineIsometryEquiv.vaddConst ℝ q.2).trans + (EuclideanGeometry.o.rotation q.1).toAffineIsometryEquiv) ∘ + (fun r : unitInterval => ((((-(r.val * (Real.pi / 2))) : ℝ) : Real.Angle), + -paperGerverPath (r.val * (Real.pi / 2)))) := rfl + rw [heq] + exact continuous_vaddConst_trans_rotation.comp hpair + have hpath0 : paperGerverPath 0 = 0 := by + change GerverSofa.PartF.Coordinates.toPlane + (GerverSofa.Romik.path GerverSofa.PartB.params 0) = 0 + rw [hreg.2.1] + ext i + fin_cases i <;> rfl + have hpathTy : paperGerverPath (Real.pi / 2) 1 = 0 := + GerverSofa.Romik.path_end_y_zero_of_mem_box_and_equations + GerverSofa.PartB.params_mem GerverSofa.PartB.params_equations + -- ### Coordinate images and compactness + have hKimg : gerverOuterCap = + GerverSofa.PartF.Coordinates.toPlane '' GerverSofa.Romik.K0 GerverSofa.PartB.params := by + rw [GerverSofa.PartF.Coordinates.image_eq_preimage] + exact Set.ext mem_gerverOuterCap_iff + have hKcomp : IsCompact gerverOuterCap := by + rw [hKimg] + exact GerverSofa.PartC.Stage4.K_compact_direct.image + GerverSofa.PartF.Coordinates.continuous_toPlane + have hGimg : gerverLiteralSofa = + GerverSofa.PartF.Coordinates.toPlane '' GerverSofa.PartC.G := by + rw [GerverSofa.PartF.Coordinates.image_eq_preimage] + exact Set.ext fun q => + and_congr (mem_gerverOuterCap_iff q) (not_congr (mem_gerverLiteralNiche_iff q)) + have hGcomp : IsCompact gerverLiteralSofa := by + rw [hGimg] + exact GerverSofa.PartC.Stage4.G_compact_direct.image + GerverSofa.PartF.Coordinates.continuous_toPlane + -- ### Contact coordinates in the moving frame + have hvn : ∀ t : ℝ, inner ℝ (tangentVector (t : Real.Angle)) + (normalVector (t : Real.Angle)) = 0 := fun t => by + rw [real_inner_comm, inner_normalVector_tangentVector] + have hAn : ∀ t : ℝ, inner ℝ (paperGerverContacts t 0) (normalVector (t : Real.Angle)) = + inner ℝ (paperGerverPath t) (normalVector (t : Real.Angle)) + 1 := fun t => by + simp only [paperGerverContacts, Matrix.cons_val_zero, inner_add_left, real_inner_smul_left, + inner_normalVector_self, hvn t] + ring + have hAt : ∀ t : ℝ, inner ℝ (paperGerverContacts t 0) (tangentVector (t : Real.Angle)) = + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) + + (paperGerverVelocityComponents t).1 := fun t => by + simp only [paperGerverContacts, Matrix.cons_val_zero, inner_add_left, real_inner_smul_left, + inner_tangentVector_self, inner_normalVector_tangentVector] + ring + have hCn : ∀ t : ℝ, inner ℝ (paperGerverContacts t 2) (normalVector (t : Real.Angle)) = + inner ℝ (paperGerverPath t) (normalVector (t : Real.Angle)) - + (paperGerverVelocityComponents t).2 := fun t => by + simp only [paperGerverContacts, Matrix.cons_val_two, Matrix.tail_cons, Matrix.head_cons, + inner_add_left, inner_sub_left, real_inner_smul_left, inner_normalVector_self, hvn t] + ring + have hCt : ∀ t : ℝ, inner ℝ (paperGerverContacts t 2) (tangentVector (t : Real.Angle)) = + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) + 1 := fun t => by + simp only [paperGerverContacts, Matrix.cons_val_two, Matrix.tail_cons, Matrix.head_cons, + inner_add_left, inner_sub_left, real_inner_smul_left, inner_tangentVector_self, + inner_normalVector_tangentVector] + ring + -- ### The cap is the outer path constraint set + have hOPCS : outerPathConstraintSet + (fun t : Set.Icc (0 : ℝ) (Real.pi / 2) => paperGerverPath t.val) = gerverOuterCap := by + ext q + constructor + · rintro ⟨hy, h⟩ + exact ⟨hy, fun t ht => h ⟨t, ht⟩⟩ + · rintro ⟨hy, h⟩ + exact ⟨hy, fun t => h t.val t.2⟩ + -- ### The two normalizing contacts + have halpha0 : (paperGerverVelocityComponents 0).1 = 0 := by + rw [paperGerverVelocityComponents_eq_alphaBetaAt 0 h0mem] + have hab : GerverSofa.PartC.alphaBetaAt 0 = + GerverSofa.Romik.alphaBeta1 GerverSofa.PartB.params 0 := by + rw [GerverSofa.PartC.alphaBetaAt] + simp [GerverSofa.PartC.Stage4.phi_pos.le] + have ha2 := GerverSofa.Romik.a2_eq_neg_quarter_of_equations GerverSofa.PartB.params_equations + rw [hab] + simp only [GerverSofa.Romik.alphaBeta1, Real.sin_zero, Real.cos_zero, ha2] + ring + have hA0y : paperGerverContacts 0 0 1 = 0 := by + have h := inner_tangentVector_zero (paperGerverContacts 0 0) + rw [hAt 0, hpath0, inner_zero_left, halpha0] at h + linarith + have hC0y : paperGerverContacts 0 2 1 = 1 := by + have h := inner_tangentVector_zero (paperGerverContacts 0 2) + rw [hCt 0, hpath0, inner_zero_left] at h + linarith + obtain ⟨Kb, hKset, hKcap⟩ := outerPathConstraintSet_isCap + (fun t : Set.Icc (0 : ℝ) (Real.pi / 2) => paperGerverPath t.val) + (by simpa using hpath0) + ⟨paperGerverContacts 0 0, by rw [hOPCS]; exact gerver_outer_contact_A 0 h0mem, hA0y⟩ + ⟨paperGerverContacts 0 2, by rw [hOPCS]; exact gerver_outer_contact_C 0 h0mem, hC0y⟩ + rw [hOPCS] at hKset + -- ### Conjunct 1: every cap fibre has a sofa point at least as high + have hfiber := gerver_cap_fiber_has_sofa_point hKcomp + -- ### The support values of the cap + have hcapy1 : ∀ q ∈ gerverOuterCap, q 1 ≤ 1 := by + rintro q ⟨-, hc⟩ + have h := (hc 0 h0mem).2 + rw [hpath0, inner_zero_left, inner_tangentVector_zero] at h + linarith + have hcapx1 : ∀ q ∈ gerverOuterCap, q 0 ≤ 1 := by + rintro q ⟨-, hc⟩ + have h := (hc 0 h0mem).1 + rw [hpath0, inner_zero_left, inner_normalVector_zero] at h + linarith + have hsupK : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + supportValue gerverOuterCap (t : Real.Angle) = + inner ℝ (paperGerverPath t) (normalVector (t : Real.Angle)) + 1 ∧ + supportValue gerverOuterCap ((Real.pi / 2 + t : ℝ) : Real.Angle) = + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) + 1 := by + intro t ht + have hAmem := gerver_outer_contact_A t ht + have hCmem := gerver_outer_contact_C t ht + have hang : ((Real.pi / 2 + t : ℝ) : Real.Angle) = + ((t + Real.pi / 2 : ℝ) : Real.Angle) := by rw [add_comm] + refine ⟨?_, ?_⟩ + · simp only [supportValue] + refine IsGreatest.csSup_eq ⟨⟨paperGerverContacts t 0, hAmem, hAn t⟩, ?_⟩ + rintro _ ⟨z, hz, rfl⟩ + exact (hz.2 t ht).1 + · rw [supportValue, hang, normalVector_add_pi_div_two_real] + refine IsGreatest.csSup_eq ⟨⟨paperGerverContacts t 2, hCmem, hCt t⟩, ?_⟩ + rintro _ ⟨z, hz, rfl⟩ + exact (hz.2 t ht).2 + -- ### Conjunct 4: the sofa and the cap have the same upper support + have hGne : gerverLiteralSofa.Nonempty := gerver_literal_connected.1 + have hsupeq : ∀ s ∈ Set.Icc (0 : ℝ) Real.pi, + supportValue gerverLiteralSofa (s : Real.Angle) = + supportValue gerverOuterCap (s : Real.Angle) := by + intro s hs + have hsin : 0 ≤ Real.sin s := Real.sin_nonneg_of_nonneg_of_le_pi hs.1 hs.2 + refine (supportValue_eq_of_subset_of_inner_le hGne (fun z hz => hz.1) + (s : Real.Angle) ?_).symm + intro z hz + obtain ⟨w, hw, hwx, hwy⟩ := hfiber z hz + have h1 : inner ℝ z (normalVector (s : Real.Angle)) ≤ + inner ℝ w (normalVector (s : Real.Angle)) := by + rw [inner_normalVector_real, inner_normalVector_real, hwx] + have := mul_le_mul_of_nonneg_right hwy hsin + linarith + exact h1.trans (inner_le_supportValue_of_isCompact hGcomp hw _) + have hsupG : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + supportValue gerverLiteralSofa (t : Real.Angle) = + inner ℝ (paperGerverPath t) (normalVector (t : Real.Angle)) + 1 ∧ + supportValue gerverLiteralSofa ((Real.pi / 2 + t : ℝ) : Real.Angle) = + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) + 1 := by + intro t ht + refine ⟨?_, ?_⟩ + · rw [hsupeq t ⟨ht.1, by linarith [ht.2, Real.pi_pos]⟩] + exact (hsupK t ht).1 + · rw [hsupeq (Real.pi / 2 + t) ⟨by linarith [ht.1], by linarith [ht.2]⟩] + exact (hsupK t ht).2 + -- ### Conjunct 3: standard position + have hsv1 : supportValue gerverLiteralSofa ((Real.pi / 2 : ℝ) : Real.Angle) = 1 := by + have h := (hsupG 0 h0mem).2 + rw [add_zero, hpath0, inner_zero_left] at h + linarith + have hstd := gerver_literal_standard_position hTpos hTmem hGcomp hmotioncont hpath0 hpathTy + hcapx1 hcapy1 hsv1 + -- ### Conjunct 5: the paper cap of the sofa is the certified cap + have hcapOf := gerver_literal_cap_eq hsupG hcapy1 + -- ### Conjunct 6: the cap representative and its contact faces + have hfaces := gerver_cap_contact_faces Kb hKset hKcap hC1 hAn hAt hCn hCt hsupK hTpos + refine ⟨hfiber, paperGerverSofa_eq_literal, hstd, hsupeq, hcapOf, hfaces, ?_⟩ + rintro S (rfl | rfl) + · exact hsupK + · exact hsupG + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Gerver / Niche / Identification +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem gerver_paperNiche_identification : + (∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + supportingHallway gerverOuterCap (t : Real.Angle) = + supportingHallway paperGerverSofa (t : Real.Angle) ∧ + supportingHallway paperGerverSofa (t : Real.Angle) = + (fun p ↦ rotationMap (t : Real.Angle) p + paperGerverPath t) '' hallway ∧ + (rotatingHallwayParts gerverOuterCap (t : Real.Angle)).innerCorner = paperGerverPath t) ∧ + (∃ K : CapSpace (Real.pi / 2), (K.val : Set Point) = gerverOuterCap ∧ + capNiche K = gerverLiteralNiche) ∧ + monotonization paperGerverSofa (Real.pi / 2) = paperGerverSofa ∧ + IsMonotoneSofa paperGerverSofa := by + obtain ⟨-, hGeq, hstd, -, -, ⟨K, hKset, -⟩, hsup⟩ := gerver_capSupport_identification + have hangsum : ∀ t : ℝ, (t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) = + ((Real.pi / 2 + t : ℝ) : Real.Angle) := fun t => by + rw [← Real.Angle.coe_add, add_comm] + -- ### The supporting placement is the paper motion + have hplace : ∀ S ∈ ({gerverOuterCap, gerverLiteralSofa} : Set (Set Point)), + ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), ∀ p : Point, + supportingPlacement S (t : Real.Angle) p = + rotationMap (t : Real.Angle) p + paperGerverPath t := by + intro S hS t ht p + rw [supportingPlacement, hangsum t, (hsup S hS t ht).1, (hsup S hS t ht).2, + add_sub_cancel_right, add_sub_cancel_right, add_assoc, + inner_normalVector_smul_add_inner_tangentVector_smul] + have hplaceK : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), ∀ p : Point, + supportingPlacement gerverOuterCap (t : Real.Angle) p = + rotationMap (t : Real.Angle) p + paperGerverPath t := + hplace gerverOuterCap (Or.inl rfl) + have hplaceG : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), ∀ p : Point, + supportingPlacement paperGerverSofa (t : Real.Angle) p = + rotationMap (t : Real.Angle) p + paperGerverPath t := by + rw [hGeq] + exact hplace gerverLiteralSofa (Or.inr rfl) + have hhallG : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + supportingHallway paperGerverSofa (t : Real.Angle) = + (fun p ↦ rotationMap (t : Real.Angle) p + paperGerverPath t) '' hallway := + fun t ht => Set.image_congr' (hplaceG t ht) + have hhallK : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + supportingHallway gerverOuterCap (t : Real.Angle) = + (fun p ↦ rotationMap (t : Real.Angle) p + paperGerverPath t) '' hallway := + fun t ht => Set.image_congr' (hplaceK t ht) + -- ### The monotonization fixed point + have hmono : monotonization paperGerverSofa (Real.pi / 2) = paperGerverSofa := by + rw [monotonization, Set.iInter₂_congr hhallG] + rfl + refine ⟨fun t ht => ⟨(hhallK t ht).trans (hhallG t ht).symm, hhallG t ht, ?_⟩, ⟨K, hKset, ?_⟩, + hmono, paperGerverSofa, Real.pi / 2, by rw [hGeq]; exact hstd, hmono.symm⟩ + · change supportingPlacement gerverOuterCap (t : Real.Angle) hallwayParts.innerCorner = + paperGerverPath t + rw [hplaceK t ht] + change rotationMap (t : Real.Angle) 0 + paperGerverPath t = paperGerverPath t + rw [rotationMap, map_zero, zero_add] + -- ### The cap niche is the literal niche + · have hfan : ∀ q : Point, q ∈ capFan (Real.pi / 2) ↔ 0 ≤ q 1 := by + intro q + have h : (q ∈ capFan (Real.pi / 2)) ↔ + ((0 : ℝ) ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) ∧ + (0 : ℝ) ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle))) := Iff.rfl + rw [h, inner_normalVector_pi_div_two, and_self] + have hquad : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), ∀ q : Point, + q ∈ innerQuadrant gerverOuterCap t ↔ + inner ℝ (q - paperGerverPath t) (normalVector (t : Real.Angle)) < 0 ∧ + inner ℝ (q - paperGerverPath t) (tangentVector (t : Real.Angle)) < 0 := by + intro t ht q + have hang : ((t + Real.pi / 2 : ℝ) : Real.Angle) = + ((Real.pi / 2 + t : ℝ) : Real.Angle) := by rw [add_comm] + have h : (q ∈ innerQuadrant gerverOuterCap t) ↔ + (inner ℝ q (normalVector (t : Real.Angle)) < + supportValue gerverOuterCap (t : Real.Angle) - 1 ∧ + inner ℝ q (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < + supportValue gerverOuterCap ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) := Iff.rfl + rw [h, normalVector_add_pi_div_two_real, hang, + (hsup gerverOuterCap (Or.inl rfl) t ht).1, (hsup gerverOuterCap (Or.inl rfl) t ht).2, + add_sub_cancel_right, add_sub_cancel_right, inner_sub_left, inner_sub_left, + sub_neg, sub_neg] + rw [capNiche, hKset] + ext q + constructor + · rintro ⟨hq, hmem⟩ + obtain ⟨t, ht, hqt⟩ := Set.mem_iUnion₂.1 hmem + exact ⟨(hfan q).1 hq, t, ht, (hquad t (Set.Ioo_subset_Icc_self ht) q).1 hqt⟩ + · rintro ⟨hy, t, ht, hqt⟩ + exact ⟨(hfan q).2 hy, + Set.mem_iUnion₂.2 ⟨t, ht, (hquad t (Set.Ioo_subset_Icc_self ht) q).2 hqt⟩⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Surface densities of the certified Gerver cap + +The certified Gerver cap carries the two envelope densities `GerverSofa.PartC.Stage2.rhoA` and +`rhoC` of the vendor development: its surface-area measure is `rhoA (t) dt` on the angular arc +`[0, π/2)` and `rhoC (t - π/2) dt` on `(π/2, π]`. + +The argument is stage by stage. On each of the five closed stages the selected (positive) vertex +of the cap is a globally analytic branch of the certified phase curves, with derivative +`rhoA t • v t` for the first contact and `-rhoC t • u t` for the third, so +`surfaceAreaMeasure_angleImage_eq_withDensity_of_hasDerivAt` identifies the surface measure with +the exact Lebesgue density on that stage. The stages are then glued with +`measure_angleImage_eq_of_union`; only the last `rhoA` stage needs an interior exhaustion, +because the positive vertex jumps at `π/2`. + +The same stagewise phase curves describe the two *inner* contacts, because `B = A - u` and +`D = C - v` differ from the outer contacts by a frame vector +(`paperGerverContacts_one_eq_sub`, `paperGerverContacts_three_eq_sub`). Subtracting the frame +vector from a phase curve therefore produces a globally differentiable branch curve for `B` on +the last two stages and for `D` on the first two, with the nonnegative speeds `1 - rhoA` and +`1 - rhoC` (`exists_branch_paperGerverContacts_one`, +`exists_branch_paperGerverContacts_three`); the two speed bounds are again coarse box bounds on +the certified parameters. +-/ + +/-! ### Coordinate transport of derivatives -/ + +@[expose] public section + +noncomputable section + +open scoped NNReal + +namespace MovingSofa + +open MeasureTheory Set +open scoped ENNReal + +/-- The vendor coordinate identification is homogeneous. -/ +private theorem toPlane_smul (c : ℝ) (q : GerverSofa.Point) : + GerverSofa.PartF.Coordinates.toPlane (c • q) = + c • GerverSofa.PartF.Coordinates.toPlane q := by + ext i + fin_cases i <;> rfl + +/-! ### The certified switching angles -/ + +/-- The paper's two switching angles are the vendor parameter angles, strictly ordered. -/ +private theorem paperGerver_switchAngles : + GerverSofa.PartB.params.phi = GerversSofa.φ ∧ + GerverSofa.PartB.params.theta = GerversSofa.θ ∧ + GerverSofa.PartB.params.phi < GerverSofa.PartB.params.theta ∧ + GerverSofa.PartB.params.theta < Real.pi / 4 := by + obtain ⟨-, hphi, htheta, -, hphitheta, hthetalt, -⟩ := + gerver_parameter_identification.1 GerverSofa.PartB.params GerverSofa.PartB.params_mem + GerverSofa.PartB.params_equations + have hphi' : GerverSofa.PartB.params.phi = GerversSofa.φ := hphi.trans selected_phi + have htheta' : GerverSofa.PartB.params.theta = GerversSofa.θ := htheta.trans selected_theta + refine ⟨hphi', htheta', ?_, ?_⟩ + · rw [hphi', htheta']; exact hphitheta + · rw [htheta']; exact hthetalt + +/-! ### The contact curves as transported certified phase curves -/ + +/-- The first contact of the paper Gerver cap is the transported point `x + α v + u`. -/ +private theorem paperGerverContacts_zero_eq_toPlane {X W : ℝ → GerverSofa.Point} {t : ℝ} + (hx : GerverSofa.Romik.path GerverSofa.PartB.params t = X t) + (hw : paperGerverVelocityComponents t = W t) : + paperGerverContacts t 0 = + GerverSofa.PartF.Coordinates.toPlane (X t + (W t).1 • GerverSofa.v t + GerverSofa.u t) := by + have hp : paperGerverPath t = GerverSofa.PartF.Coordinates.toPlane (X t) := by + change GerverSofa.PartF.Coordinates.toPlane + (GerverSofa.Romik.path GerverSofa.PartB.params t) = _ + rw [hx] + simp only [paperGerverContacts, Matrix.cons_val_zero, hw, hp] + ext i + fin_cases i <;> rfl + +/-- The third contact of the paper Gerver cap is the transported point `x - β u + v`. -/ +private theorem paperGerverContacts_two_eq_toPlane {X W : ℝ → GerverSofa.Point} {t : ℝ} + (hx : GerverSofa.Romik.path GerverSofa.PartB.params t = X t) + (hw : paperGerverVelocityComponents t = W t) : + paperGerverContacts t 2 = + GerverSofa.PartF.Coordinates.toPlane (X t - (W t).2 • GerverSofa.u t + GerverSofa.v t) := by + have hp : paperGerverPath t = GerverSofa.PartF.Coordinates.toPlane (X t) := by + change GerverSofa.PartF.Coordinates.toPlane + (GerverSofa.Romik.path GerverSofa.PartB.params t) = _ + rw [hx] + simp only [paperGerverContacts, hw, hp] + ext i + fin_cases i <;> rfl + +open GerverSofa.PartC.Stage2 GerverSofa.Romik in +/-- On each of the five stages the two contact curves are transported analytic phase curves whose +derivatives are `rA • v` and `-rC • u` for continuous factors agreeing with `rhoA`, `rhoC`. -/ +private theorem exists_phaseCurves_of_stage (j : Fin 5) : + ∃ (PA PC : ℝ → GerverSofa.Point) (rA rC : ℝ → ℝ), + (∀ t, HasDerivAt PA (rA t • GerverSofa.v t) t) ∧ + (∀ t, HasDerivAt PC (-(rC t) • GerverSofa.u t) t) ∧ + Continuous rA ∧ Continuous rC ∧ + (∀ t ∈ gerverStageIntervals j, + paperGerverContacts t 0 = GerverSofa.PartF.Coordinates.toPlane (PA t) ∧ + paperGerverContacts t 2 = GerverSofa.PartF.Coordinates.toPlane (PC t)) ∧ + (∀ t ∈ Set.Ioc (gerverStageTimes j.castSucc) (gerverStageTimes j.succ), + rhoA t = rA t ∧ rhoC t = rC t) := by + classical + obtain ⟨hphi', htheta', hφθ', hθq'⟩ := paperGerver_switchAngles + have heqs : Equations GerverSofa.PartB.params := GerverSofa.PartB.params_equations + have hφθ : GerversSofa.φ < GerversSofa.θ := by rw [← hphi', ← htheta']; exact hφθ' + have hθq : GerversSofa.θ < Real.pi / 4 := by rw [← htheta']; exact hθq' + have hθη : GerversSofa.θ ≤ Real.pi / 2 - GerversSofa.θ := by + have := GerverSofa.PartC.switchOrder.theta_le_eta + rw [htheta'] at this; exact this + have hητ : Real.pi / 2 - GerversSofa.θ ≤ Real.pi / 2 - GerversSofa.φ := by linarith + have heta : GerverSofa.PartC.eta = Real.pi / 2 - GerversSofa.θ := by + simp only [GerverSofa.PartC.eta, GerverSofa.PartC.T, htheta'] + have htau : GerverSofa.PartC.tau = Real.pi / 2 - GerversSofa.φ := by + simp only [GerverSofa.PartC.tau, GerverSofa.PartC.T, hphi'] + have hvel : ∀ (i : Fin 5), ∀ t ∈ gerverStageIntervals i, + paperGerverVelocityComponents t = gerverBranchVelocityComponents i t := + paperGerverContactData_properties.2.2.2 + fin_cases j + · refine ⟨phaseA1, phaseC1, fun _ ↦ 0, fun _ ↦ 1 / 2, fun t ↦ A1_hasDerivAt_public t, + fun t ↦ C1_hasDerivAt_public t, continuous_const, continuous_const, ?_, ?_⟩ + · change ∀ t ∈ Set.Icc (0 : ℝ) GerversSofa.φ, _ + intro t ht + have hx : path GerverSofa.PartB.params t = path1 GerverSofa.PartB.params t := + path_eq_path1_of_mem_Icc _ (by rw [hphi']; exact ht) + have hw : paperGerverVelocityComponents t = alphaBeta1 GerverSofa.PartB.params t := + hvel 0 t ht + exact ⟨paperGerverContacts_zero_eq_toPlane hx hw, paperGerverContacts_two_eq_toPlane hx hw⟩ + · change ∀ t ∈ Set.Ioc (0 : ℝ) GerversSofa.φ, _ + intro t ht + refine ⟨?_, ?_⟩ <;> simp only [rhoA, rhoC, hphi', htheta', heta, htau] <;> + split_ifs with h1 h2 h3 h4 <;> + first + | rfl + | (exfalso; linarith [ht.1, ht.2, hφθ, hθη, hητ]) + · refine ⟨phaseA2, phaseC2, + fun t ↦ -(1 / 4 : ℝ) * t * t + GerverSofa.PartC.params.b1 * t + + GerverSofa.PartC.params.b2 + 1 / 2, + fun t ↦ t / 2 - GerverSofa.PartC.params.b1, + fun t ↦ A2_hasDerivAt_public t, fun t ↦ C2_hasDerivAt_public t, by fun_prop, by fun_prop, + ?_, ?_⟩ + · change ∀ t ∈ Set.Icc GerversSofa.φ GerversSofa.θ, _ + intro t ht + have hx : path GerverSofa.PartB.params t = path2 GerverSofa.PartB.params t := + path_eq_path2_of_mem_Icc heqs (by rw [hphi', htheta']; exact ht) + have hw : paperGerverVelocityComponents t = alphaBeta2 GerverSofa.PartB.params t := + hvel 1 t ht + exact ⟨paperGerverContacts_zero_eq_toPlane hx hw, paperGerverContacts_two_eq_toPlane hx hw⟩ + · change ∀ t ∈ Set.Ioc GerversSofa.φ GerversSofa.θ, _ + intro t ht + refine ⟨?_, ?_⟩ <;> simp only [rhoA, rhoC, hphi', htheta', heta, htau] <;> + split_ifs with h1 h2 h3 h4 <;> + first + | rfl + | (exfalso; linarith [ht.1, ht.2, hφθ, hθη, hητ]) + · refine ⟨phaseA3, phaseC3, fun t ↦ 1 + GerverSofa.PartC.params.c1 - t, + fun t ↦ 1 + GerverSofa.PartC.params.c2 + t, + fun t ↦ A3_hasDerivAt_public t, fun t ↦ C3_hasDerivAt_public t, by fun_prop, by fun_prop, + ?_, ?_⟩ + · change ∀ t ∈ Set.Icc GerversSofa.θ (Real.pi / 2 - GerversSofa.θ), _ + intro t ht + have hx : path GerverSofa.PartB.params t = path3 GerverSofa.PartB.params t := + path_eq_path3_of_mem_Icc heqs hφθ' (by rw [htheta']; exact ht) + have hw : paperGerverVelocityComponents t = alphaBeta3 GerverSofa.PartB.params t := + hvel 2 t ht + exact ⟨paperGerverContacts_zero_eq_toPlane hx hw, paperGerverContacts_two_eq_toPlane hx hw⟩ + · change ∀ t ∈ Set.Ioc GerversSofa.θ (Real.pi / 2 - GerversSofa.θ), _ + intro t ht + refine ⟨?_, ?_⟩ <;> simp only [rhoA, rhoC, hphi', htheta', heta, htau] <;> + split_ifs with h1 h2 h3 h4 <;> + first + | rfl + | (exfalso; linarith [ht.1, ht.2, hφθ, hθη, hητ]) + · refine ⟨phaseA4, phaseC4, fun t ↦ GerverSofa.PartC.params.d1 - t / 2, + fun t ↦ -(1 / 4 : ℝ) * t * t + GerverSofa.PartC.params.d1 * t + + GerverSofa.PartC.params.d2 + 1 / 2, + fun t ↦ A4_hasDerivAt_public t, fun t ↦ C4_hasDerivAt_public t, by fun_prop, by fun_prop, + ?_, ?_⟩ + · change ∀ t ∈ Set.Icc (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2 - GerversSofa.φ), _ + intro t ht + have hx : path GerverSofa.PartB.params t = path4 GerverSofa.PartB.params t := + path_eq_path4_of_mem_Icc heqs hφθ' hθq' (by rw [hphi', htheta']; exact ht) + have hw : paperGerverVelocityComponents t = alphaBeta4 GerverSofa.PartB.params t := + hvel 3 t ht + exact ⟨paperGerverContacts_zero_eq_toPlane hx hw, paperGerverContacts_two_eq_toPlane hx hw⟩ + · change ∀ t ∈ Set.Ioc (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2 - GerversSofa.φ), _ + intro t ht + refine ⟨?_, ?_⟩ <;> simp only [rhoA, rhoC, hphi', htheta', heta, htau] <;> + split_ifs with h1 h2 h3 h4 <;> + first + | rfl + | (exfalso; linarith [ht.1, ht.2, hφθ, hθη, hητ]) + · refine ⟨phaseA5, phaseC5, fun _ ↦ 1 / 2, fun _ ↦ 0, fun t ↦ A5_hasDerivAt_public t, + fun t ↦ by simpa using C5_hasDerivAt_public t, continuous_const, continuous_const, ?_, ?_⟩ + · change ∀ t ∈ Set.Icc (Real.pi / 2 - GerversSofa.φ) (Real.pi / 2), _ + intro t ht + have hx : path GerverSofa.PartB.params t = path5 GerverSofa.PartB.params t := + path_eq_path5_of_mem_Icc heqs hφθ' hθq' (by rw [hphi']; exact ht) + have hw : paperGerverVelocityComponents t = alphaBeta5 GerverSofa.PartB.params t := + hvel 4 t ht + exact ⟨paperGerverContacts_zero_eq_toPlane hx hw, paperGerverContacts_two_eq_toPlane hx hw⟩ + · change ∀ t ∈ Set.Ioc (Real.pi / 2 - GerversSofa.φ) (Real.pi / 2), _ + intro t ht + refine ⟨?_, ?_⟩ <;> simp only [rhoA, rhoC, hphi', htheta', heta, htau] <;> + split_ifs with h1 h2 h3 h4 <;> + first + | rfl + | (exfalso; linarith [ht.1, ht.2, hφθ, hθη, hητ]) + +/-! ### Contact derivatives on the open stages -/ + +/-- A branch curve agreeing with a global curve on a closed stage computes the global derivative +at every interior parameter of that stage. -/ +theorem hasDerivAt_of_eqOn_stage {G F : ℝ → Point} {w : ℝ → Point} {i : Fin 5} + (hF : ∀ s, HasDerivAt F (w s) s) (hGF : ∀ t ∈ gerverStageIntervals i, G t = F t) + {t : ℝ} (ht : t ∈ Set.Ioo (gerverStageTimes i.castSucc) (gerverStageTimes i.succ)) : + HasDerivAt G (w t) t := + (hF t).congr_of_eventuallyEq (Filter.eventuallyEq_of_mem (Ioo_mem_nhds ht.1 ht.2) + fun u hu ↦ hGF u (Set.Ioo_subset_Icc_self hu)) + +/-- The transported phase curves of a stage are differentiable everywhere, with the two branch +speeds against the moving frame. -/ +private theorem hasDerivAt_toPlane_phaseCurves {PA PC : ℝ → GerverSofa.Point} + {rA rC : ℝ → ℝ} (hPA : ∀ t, HasDerivAt PA (rA t • GerverSofa.v t) t) + (hPC : ∀ t, HasDerivAt PC (-(rC t) • GerverSofa.u t) t) : + (∀ s, HasDerivAt (fun u ↦ GerverSofa.PartF.Coordinates.toPlane (PA u)) + (rA s • tangentVector (s : Real.Angle)) s) ∧ + ∀ s, HasDerivAt (fun u ↦ GerverSofa.PartF.Coordinates.toPlane (PC u)) + (-(rC s) • normalVector (s : Real.Angle)) s := by + refine ⟨fun s ↦ ?_, fun s ↦ ?_⟩ + · have h := hasDerivAt_toPlane (hPA s) + rwa [toPlane_smul] at h + · have h := hasDerivAt_toPlane (hPC s) + rwa [toPlane_smul] at h + +/-- Inside each open stage the two contact curves are differentiable with the envelope +densities as their speed factors. -/ +private theorem hasDerivAt_paperGerverContacts_of_mem_stage (j : Fin 5) {t : ℝ} + (ht : t ∈ Set.Ioo (gerverStageTimes j.castSucc) (gerverStageTimes j.succ)) : + HasDerivAt (fun u ↦ paperGerverContacts u 0) + (GerverSofa.PartC.Stage2.rhoA t • tangentVector (t : Real.Angle)) t ∧ + HasDerivAt (fun u ↦ paperGerverContacts u 2) + (-(GerverSofa.PartC.Stage2.rhoC t) • normalVector (t : Real.Angle)) t := by + obtain ⟨PA, PC, rA, rC, hPA, hPC, -, -, hmem, hrho⟩ := exists_phaseCurves_of_stage j + obtain ⟨hrA, hrC⟩ := hrho t (Set.Ioo_subset_Ioc_self ht) + obtain ⟨hA, hC⟩ := hasDerivAt_toPlane_phaseCurves hPA hPC + refine ⟨?_, ?_⟩ + · rw [hrA] + exact hasDerivAt_of_eqOn_stage hA (fun u hu ↦ (hmem u hu).1) ht + · rw [hrC] + exact hasDerivAt_of_eqOn_stage hC (fun u hu ↦ (hmem u hu).2) ht + +/-! ### Singleton faces have no surface atom -/ + +/-- A face whose positive tangent endpoint does not exceed its negative one carries no surface +atom: the atom is exactly the tangential gap between the two endpoints. -/ +private theorem surfaceAreaMeasure_singleton_eq_zero_of_inner_edgeVertices_le + (K : ConvexBody Point) (t : Real.Angle) + (h : inner ℝ (edgeVertices K t).1 (tangentVector t) ≤ + inner ℝ (edgeVertices K t).2 (tangentVector t)) : + surfaceAreaMeasure K {t} = 0 := by + have hfin : IsFiniteMeasure (surfaceAreaMeasure K) := (surfaceAreaMeasure_face_union K).1 + have hsplit := (surfaceAreaMeasure_atom_length K t).2.2 + have hone : inner ℝ (tangentVector t) (tangentVector t) = 1 := by + rw [real_inner_self_eq_norm_sq, norm_tangentVector] + norm_num + have hinner : inner ℝ (edgeVertices K t).1 (tangentVector t) = + inner ℝ (edgeVertices K t).2 (tangentVector t) + + (surfaceAreaMeasure K {t}).toReal := by + rw [hsplit, inner_add_left, real_inner_smul_left, hone, mul_one] + have hle : (surfaceAreaMeasure K {t}).toReal ≤ 0 := by linarith + have hzero : (surfaceAreaMeasure K {t}).toReal = 0 := + le_antisymm hle ENNReal.toReal_nonneg + rcases (ENNReal.toReal_eq_zero_iff _).1 hzero with h0 | htop + · exact h0 + · exact absurd htop (measure_ne_top _ _) + +/-! ### Measurability and boundedness of the two envelope densities -/ + +private theorem measurable_rhoA : Measurable GerverSofa.PartC.Stage2.rhoA := by + unfold GerverSofa.PartC.Stage2.rhoA + refine Measurable.ite measurableSet_Iic measurable_const ?_ + refine Measurable.ite measurableSet_Iic (by fun_prop) ?_ + refine Measurable.ite measurableSet_Iic (by fun_prop) ?_ + exact Measurable.ite measurableSet_Iic (by fun_prop) measurable_const + +private theorem measurable_rhoC : Measurable GerverSofa.PartC.Stage2.rhoC := by + unfold GerverSofa.PartC.Stage2.rhoC + refine Measurable.ite measurableSet_Iic measurable_const ?_ + refine Measurable.ite measurableSet_Iic (by fun_prop) ?_ + refine Measurable.ite measurableSet_Iic (by fun_prop) ?_ + exact Measurable.ite measurableSet_Iic (by fun_prop) measurable_const + +open GerverSofa.PartC.Stage2 in +/-- Each of the finitely many branch polynomials of the two envelope densities is continuous, +hence bounded on the compact physical interval. -/ +private theorem exists_bound_rhoA_rhoC : ∃ M : ℝ, ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + rhoA t ≤ M ∧ rhoC t ≤ M := by + have key : ∀ f : ℝ → ℝ, Continuous f → + ∃ M : ℝ, ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), f t ≤ M := by + intro f hf + obtain ⟨x, hx, hmax⟩ := isCompact_Icc.exists_isMaxOn + (Set.nonempty_Icc.2 (show (0 : ℝ) ≤ Real.pi / 2 by linarith [Real.pi_pos])) + hf.continuousOn + exact ⟨f x, fun t ht ↦ isMaxOn_iff.1 hmax t ht⟩ + obtain ⟨M1, h1⟩ := key (fun t ↦ -(1 / 4 : ℝ) * t * t + GerverSofa.PartC.params.b1 * t + + GerverSofa.PartC.params.b2 + 1 / 2) (by fun_prop) + obtain ⟨M2, h2⟩ := key (fun t ↦ 1 + GerverSofa.PartC.params.c1 - t) (by fun_prop) + obtain ⟨M3, h3⟩ := key (fun t ↦ GerverSofa.PartC.params.d1 - t / 2) (by fun_prop) + obtain ⟨M4, h4⟩ := key (fun t ↦ t / 2 - GerverSofa.PartC.params.b1) (by fun_prop) + obtain ⟨M5, h5⟩ := key (fun t ↦ 1 + GerverSofa.PartC.params.c2 + t) (by fun_prop) + obtain ⟨M6, h6⟩ := key (fun t ↦ -(1 / 4 : ℝ) * t * t + GerverSofa.PartC.params.d1 * t + + GerverSofa.PartC.params.d2 + 1 / 2) (by fun_prop) + refine ⟨max (max (max M1 M2) (max M3 M4)) (max (max M5 M6) 1), fun t ht ↦ ⟨?_, ?_⟩⟩ + · rw [rhoA] + split_ifs + · exact le_trans (by norm_num) (le_max_right _ _ |>.trans' (le_max_right _ _)) + · exact (h1 t ht).trans (le_max_of_le_left (le_max_of_le_left (le_max_left _ _))) + · exact (h2 t ht).trans (le_max_of_le_left (le_max_of_le_left (le_max_right _ _))) + · exact (h3 t ht).trans (le_max_of_le_left (le_max_of_le_right (le_max_left _ _))) + · exact le_trans (by norm_num) (le_max_of_le_right (le_max_right _ _)) + · rw [rhoC] + split_ifs + · exact le_trans (by norm_num) (le_max_of_le_right (le_max_right _ _)) + · exact (h4 t ht).trans (le_max_of_le_left (le_max_of_le_right (le_max_right _ _))) + · exact (h5 t ht).trans (le_max_of_le_right (le_max_of_le_left (le_max_left _ _))) + · exact (h6 t ht).trans (le_max_of_le_right (le_max_of_le_left (le_max_right _ _))) + · exact le_trans (by norm_num) (le_max_of_le_right (le_max_right _ _)) + +/-! ### Elementary facts about the stage endpoints and the frame -/ + +/-- The two Gerver switch angles satisfy `0 < φ < θ < π/4`. -/ +private theorem gerver_switch_angle_bounds : + (0 : ℝ) < GerversSofa.φ ∧ GerversSofa.φ < GerversSofa.θ ∧ GerversSofa.θ < Real.pi / 4 := by + obtain ⟨-, -, -, hpos, hlt, hq, -⟩ := + gerver_parameter_identification.1 GerverSofa.PartB.params GerverSofa.PartB.params_mem + GerverSofa.PartB.params_equations + refine ⟨selected_phi ▸ hpos, ?_, selected_theta ▸ hq⟩ + rw [← selected_phi, ← selected_theta] + exact hlt + +private theorem gerverStageTimes_nonneg (k : Fin 6) : 0 ≤ gerverStageTimes k := by + obtain ⟨h0, h1, h2⟩ := gerver_switch_angle_bounds + have hpi := Real.pi_gt_three + fin_cases k + · change (0 : ℝ) ≤ 0 + exact le_refl 0 + · change (0 : ℝ) ≤ GerversSofa.φ + linarith + · change (0 : ℝ) ≤ GerversSofa.θ + linarith + · change (0 : ℝ) ≤ Real.pi / 2 - GerversSofa.θ + linarith + · change (0 : ℝ) ≤ Real.pi / 2 - GerversSofa.φ + linarith + · change (0 : ℝ) ≤ Real.pi / 2 + linarith + +private theorem gerverStageTimes_le_pi_div_two (k : Fin 6) : gerverStageTimes k ≤ Real.pi / 2 := by + obtain ⟨h0, h1, h2⟩ := gerver_switch_angle_bounds + have hpi := Real.pi_gt_three + fin_cases k + · change (0 : ℝ) ≤ Real.pi / 2 + linarith + · change GerversSofa.φ ≤ Real.pi / 2 + linarith + · change GerversSofa.θ ≤ Real.pi / 2 + linarith + · change Real.pi / 2 - GerversSofa.θ ≤ Real.pi / 2 + linarith + · change Real.pi / 2 - GerversSofa.φ ≤ Real.pi / 2 + linarith + · change Real.pi / 2 ≤ Real.pi / 2 + exact le_refl _ + +private theorem gerverStageTimes_lt_succ (j : Fin 5) : + gerverStageTimes j.castSucc < gerverStageTimes j.succ := by + obtain ⟨h0, h1, h2⟩ := gerver_switch_angle_bounds + have hpi := Real.pi_gt_three + fin_cases j + · change (0 : ℝ) < GerversSofa.φ + linarith + · change GerversSofa.φ < GerversSofa.θ + linarith + · change GerversSofa.θ < Real.pi / 2 - GerversSofa.θ + linarith + · change Real.pi / 2 - GerversSofa.θ < Real.pi / 2 - GerversSofa.φ + linarith + · change Real.pi / 2 - GerversSofa.φ < Real.pi / 2 + linarith + +private theorem gerverStageTimes_four_lt_pi_div_two : gerverStageTimes 4 < Real.pi / 2 := by + have h : gerverStageTimes 4 < gerverStageTimes 5 := gerverStageTimes_lt_succ 4 + have h5 : gerverStageTimes 5 = Real.pi / 2 := rfl + linarith + +/-! ### Almost every parameter lies in an open stage -/ + +/-- A parameter of the rotation interval that is none of the six stage times lies in an open +stage. -/ +theorem mem_openStage_of_mem_Ico {t : ℝ} (ht : t ∈ Set.Ico (0 : ℝ) (Real.pi / 2)) + (hne : ∀ k : Fin 6, t ≠ gerverStageTimes k) : + ∃ j : Fin 5, t ∈ Set.Ioo (gerverStageTimes j.castSucc) (gerverStageTimes j.succ) := by + have hlow : gerverStageTimes 0 < t := + lt_of_le_of_ne (gerverStageTimes_zero ▸ ht.1) fun h ↦ hne 0 h.symm + have hhigh : t < gerverStageTimes 5 := ht.2 + rcases lt_or_gt_of_ne (hne 1) with h1 | h1 + · exact ⟨0, hlow, h1⟩ + · rcases lt_or_gt_of_ne (hne 2) with h2 | h2 + · exact ⟨1, h1, h2⟩ + · rcases lt_or_gt_of_ne (hne 3) with h3 | h3 + · exact ⟨2, h2, h3⟩ + · rcases lt_or_gt_of_ne (hne 4) with h4 | h4 + · exact ⟨3, h3, h4⟩ + · exact ⟨4, h4, hhigh⟩ + +/-- Almost every parameter of a measurable subset of the shifted rotation interval lies in a +shifted open stage. -/ +theorem ae_mem_openStage (c : ℝ) {S : Set ℝ} (hS : MeasurableSet S) + (hSsub : S ⊆ Set.Icc c (c + Real.pi / 2)) : + ∀ᵐ u ∂volume.restrict S, ∃ j : Fin 5, + u - c ∈ Set.Ioo (gerverStageTimes j.castSucc) (gerverStageTimes j.succ) := by + refine ae_restrict_mem_of_countable_diff hS + (((Set.finite_range gerverStageTimes).countable).image fun x ↦ x + c) ?_ + rintro u ⟨hu, hu'⟩ + by_contra hcon + have hne : ∀ k : Fin 6, u - c ≠ gerverStageTimes k := by + intro k hk + exact hcon ⟨gerverStageTimes k, Set.mem_range_self k, by rw [← hk]; ring⟩ + have hmem : u - c ∈ Set.Ico (0 : ℝ) (Real.pi / 2) := by + refine ⟨by linarith [(hSsub hu).1], ?_⟩ + have h5 : u - c ≠ gerverStageTimes 5 := hne 5 + rw [show gerverStageTimes 5 = Real.pi / 2 from rfl] at h5 + exact lt_of_le_of_ne (by linarith [(hSsub hu).2]) h5 + exact hu' (mem_openStage_of_mem_Ico hmem hne) + +/-! ### Branch curves for the two inner contacts + +The second contact `B = x + α v` is the first contact `A = x + α v + u` translated by `-u`, and +the fourth contact `D = x - β u` is the third contact `C = x - β u + v` translated by `-v`. So +subtracting a frame vector from the transported phase curve of a stage produces a globally +differentiable branch curve for `B` and for `D`, whose speed against the frame is `1 - rhoA` +resp. `1 - rhoC`. Both are nonnegative exactly where the inner contact is a genuine contact: +after the third stage time for `B` and before the second for `D`. +-/ + +/-- The second contact curve is the first one translated by `-u_t`. -/ +theorem paperGerverContacts_one_eq_sub (t : ℝ) : + paperGerverContacts t 1 = paperGerverContacts t 0 - normalVector (t : Real.Angle) := by + change _ = paperGerverPath t + (paperGerverVelocityComponents t).1 • + tangentVector (t : Real.Angle) + normalVector (t : Real.Angle) - normalVector _ + rw [add_sub_cancel_right] + rfl + +/-- The fourth contact curve is the third one translated by `-v_t`. -/ +theorem paperGerverContacts_three_eq_sub (t : ℝ) : + paperGerverContacts t 3 = paperGerverContacts t 2 - tangentVector (t : Real.Angle) := by + change _ = paperGerverPath t - (paperGerverVelocityComponents t).2 • + normalVector (t : Real.Angle) + tangentVector (t : Real.Angle) - tangentVector _ + rw [add_sub_cancel_right] + rfl + +open GerverSofa.PartC.Stage2 in +/-- After the third stage time the first contact never outruns the rotating frame: its tangential +speed `rhoA` is at most the unit speed of `u`. On the fourth stage this is the coarse bound +`d₁ ≤ 33/25` against `t > π/2 - θ > 4/5`; on the fifth the speed is the constant `1/2`. -/ +private theorem rhoA_le_one_of_gerverStageTimes_three_lt {t : ℝ} + (ht : gerverStageTimes 3 < t) : rhoA t ≤ 1 := by + have h1 : gerverStageTimes 1 = GerverSofa.PartB.params.phi := gerverStageTimes_one + have h2 : gerverStageTimes 2 = GerverSofa.PartB.params.theta := gerverStageTimes_two + have h3 : gerverStageTimes 3 = GerverSofa.PartC.eta := gerverStageTimes_three + have h4 : gerverStageTimes 4 = GerverSofa.PartC.tau := gerverStageTimes_four + have h12 : gerverStageTimes 1 < gerverStageTimes 2 := gerverStageTimes_lt_succ 1 + have h23 : gerverStageTimes 2 < gerverStageTimes 3 := gerverStageTimes_lt_succ 2 + have h32 : gerverStageTimes 3 = Real.pi / 2 - gerverStageTimes 2 := rfl + have hd1 := gerverDirectBox_d1_upper_bound GerverSofa.PartB.params_mem + have hθ := gerverStageTimes_two_le_seven_div_ten + have hpi := Real.pi_gt_three + rw [rhoA] + split_ifs with hphi htheta heta + · exact absurd (h1 ▸ hphi) (by linarith) + · exact absurd (h2 ▸ htheta) (by linarith) + · exact absurd (h3 ▸ heta) (by linarith) + · linarith + · norm_num + +open GerverSofa.PartC.Stage2 in +/-- Before the second stage time the third contact never outruns the rotating frame: its normal +speed `rhoC` is at most the unit speed of `v`. On the first stage the speed is the constant +`1/2`; on the second this is the coarse bound `b₁ ≥ -53/100` against `t ≤ θ ≤ 7/10`. -/ +private theorem rhoC_le_one_of_le_gerverStageTimes_two {t : ℝ} + (ht : t ≤ gerverStageTimes 2) : rhoC t ≤ 1 := by + have h2 : gerverStageTimes 2 = GerverSofa.PartB.params.theta := gerverStageTimes_two + have hb1 := gerverDirectBox_b1_lower_bound GerverSofa.PartB.params_mem + have hθ := gerverStageTimes_two_le_seven_div_ten + rw [rhoC] + split_ifs with hphi htheta + · norm_num + · linarith + · exact absurd (h2 ▸ ht) (by linarith) + · exact absurd (h2 ▸ ht) (by linarith) + · exact absurd (h2 ▸ ht) (by linarith) + +/-- On each of the last two stages the second contact curve agrees with a globally differentiable +branch curve whose derivative is `-(g t) • v_t` for a continuous factor `g` that is nonnegative +on the stage. -/ +theorem exists_branch_paperGerverContacts_one {i : Fin 5} (hi : i = 3 ∨ i = 4) : + ∃ (F : ℝ → Point) (g : ℝ → ℝ), + (∀ s, HasDerivAt F (-(g s) • tangentVector (s : Real.Angle)) s) ∧ Continuous g ∧ + (∀ t ∈ Set.Ioc (gerverStageTimes i.castSucc) (gerverStageTimes i.succ), 0 ≤ g t) ∧ + (∀ t ∈ gerverStageIntervals i, paperGerverContacts t 1 = F t) := by + obtain ⟨PA, PC, rA, rC, hPA, hPC, hcA, -, hmem, hrho⟩ := exists_phaseCurves_of_stage i + obtain ⟨hA, -⟩ := hasDerivAt_toPlane_phaseCurves hPA hPC + have h3i : gerverStageTimes 3 ≤ gerverStageTimes i.castSucc := + gerverStageTimes_strictMono.monotone (by rcases hi with rfl | rfl <;> decide) + refine ⟨fun s ↦ GerverSofa.PartF.Coordinates.toPlane (PA s) - normalVector (s : Real.Angle), + fun s ↦ 1 - rA s, fun s ↦ ?_, continuous_const.sub hcA, fun t ht ↦ ?_, fun t ht ↦ ?_⟩ + · refine ((hA s).sub (hasDerivAt_normalVector s)).congr_deriv ?_ + module + · have hrA := (hrho t ht).1 + linarith [rhoA_le_one_of_gerverStageTimes_three_lt (lt_of_le_of_lt h3i ht.1)] + · rw [paperGerverContacts_one_eq_sub, (hmem t ht).1] + +/-- On each of the first two stages the fourth contact curve agrees with a globally differentiable +branch curve whose derivative is `g t • u_t` for a continuous factor `g` that is nonnegative on +the stage. -/ +theorem exists_branch_paperGerverContacts_three {i : Fin 5} (hi : i = 0 ∨ i = 1) : + ∃ (F : ℝ → Point) (g : ℝ → ℝ), + (∀ s, HasDerivAt F (g s • normalVector (s : Real.Angle)) s) ∧ Continuous g ∧ + (∀ t ∈ Set.Ioc (gerverStageTimes i.castSucc) (gerverStageTimes i.succ), 0 ≤ g t) ∧ + (∀ t ∈ gerverStageIntervals i, paperGerverContacts t 3 = F t) := by + obtain ⟨PA, PC, rA, rC, hPA, hPC, -, hcC, hmem, hrho⟩ := exists_phaseCurves_of_stage i + obtain ⟨-, hC⟩ := hasDerivAt_toPlane_phaseCurves hPA hPC + have hi2 : gerverStageTimes i.succ ≤ gerverStageTimes 2 := + gerverStageTimes_strictMono.monotone (by rcases hi with rfl | rfl <;> decide) + refine ⟨fun s ↦ GerverSofa.PartF.Coordinates.toPlane (PC s) - tangentVector (s : Real.Angle), + fun s ↦ 1 - rC s, fun s ↦ ?_, continuous_const.sub hcC, fun t ht ↦ ?_, fun t ht ↦ ?_⟩ + · refine ((hC s).sub (hasDerivAt_tangentVector s)).congr_deriv ?_ + module + · have hrC := (hrho t ht).2 + linarith [rhoC_le_one_of_le_gerverStageTimes_two (le_trans ht.2 hi2)] + · rw [paperGerverContacts_three_eq_sub, (hmem t ht).2] + +/-! ### The certified cap witness and its positive vertex curves -/ + +/-- The certified cap witness of support identification, together with the identification of its +positive vertex by the two contact curves on the whole closed parameter interval and the +vanishing of the surface atom at the included endpoint `0`. + +Both included endpoint faces are singletons: at `0` the first contact is the anchor `(1, 0)` +and the cap lies in `0 ≤ q 1`, and at `π` the third contact has vanishing second coordinate, +so in each case the positive tangent endpoint cannot exceed the negative one. -/ +private theorem exists_gerverCap_positiveVertex : + ∃ K : CapSpace (Real.pi / 2), + (K.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2) ∧ + surfaceAreaMeasure K.val {((0 : ℝ) : Real.Angle)} = 0 ∧ + (∀ t ∈ Set.Ico (0 : ℝ) (Real.pi / 2), + (edgeVertices K.val ((t : ℝ) : Real.Angle)).1 = paperGerverContacts t 0) ∧ + (∀ s ∈ Set.Icc (Real.pi / 2) Real.pi, + (edgeVertices K.val ((s : ℝ) : Real.Angle)).1 = + paperGerverContacts (s - Real.pi / 2) 2) := by + have hpi := Real.pi_gt_three + have hTpos : (0 : ℝ) < Real.pi / 2 := by linarith + have h0mem : (0 : ℝ) ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨le_rfl, hTpos.le⟩ + have hTmem : Real.pi / 2 ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨hTpos.le, le_rfl⟩ + obtain ⟨-, hpaper, -, -, hcapEq, ⟨K, hKset, hedges, hA0, -, hC0, hCT⟩, -⟩ := + gerver_capSupport_identification + have hKupper : ∀ q ∈ (K.val : Set Point), 0 ≤ q 1 := by + intro q hq + rw [hKset] at hq + exact hq.1 + -- the two included endpoint contacts lie on the lower fan boundary + have hcontactA0y : paperGerverContacts 0 0 1 = 0 := by + have h := fromPlane_paperGerverContacts 0 h0mem 0 + have h2 : paperGerverContacts 0 0 = + GerverSofa.PartF.Coordinates.toPlane (GerverSofa.PartC.A 0) := by + rw [← GerverSofa.PartF.Coordinates.toPlane_fromPlane (paperGerverContacts 0 0), h] + rfl + rw [h2, GerverSofa.PartC.Stage2.A_zero_eq_anchor] + rfl + have hcontactCTy : paperGerverContacts (Real.pi / 2) 2 1 = 0 := by + have h := fromPlane_paperGerverContacts (Real.pi / 2) hTmem 2 + have h2 : paperGerverContacts (Real.pi / 2) 2 = + GerverSofa.PartF.Coordinates.toPlane (GerverSofa.PartC.C (Real.pi / 2)) := by + rw [← GerverSofa.PartF.Coordinates.toPlane_fromPlane + (paperGerverContacts (Real.pi / 2) 2), h] + rfl + rw [h2] + exact GerverSofa.PartC.Stage2.C_T_snd_zero + -- hence both included endpoint faces are singletons and carry no atom + have hatom0 : surfaceAreaMeasure K.val {((0 : ℝ) : Real.Angle)} = 0 := by + refine surfaceAreaMeasure_singleton_eq_zero_of_inner_edgeVertices_le K.val _ ?_ + have hfst : (edgeVertices K.val ((0 : ℝ) : Real.Angle)).1 = paperGerverContacts 0 0 := by + rw [Real.Angle.coe_zero] + exact hA0.symm + rw [inner_tangentVector_zero, inner_tangentVector_zero, hfst, hcontactA0y] + exact hKupper _ (edgeVertices_snd_mem K.val _).1 + have hatompi : surfaceAreaMeasure K.val {((Real.pi : ℝ) : Real.Angle)} = 0 := by + refine surfaceAreaMeasure_singleton_eq_zero_of_inner_edgeVertices_le K.val _ ?_ + rw [inner_tangentVector_pi, inner_tangentVector_pi, ← hCT, hcontactCTy] + have h := hKupper _ (edgeVertices_fst_mem K.val ((Real.pi : ℝ) : Real.Angle)).1 + linarith + refine ⟨K, by rw [hpaper, hcapEq]; exact hKset, hatom0, ?_, ?_⟩ + · intro t ht + rcases eq_or_lt_of_le ht.1 with h | h + · rw [← h, Real.Angle.coe_zero] + exact hA0.symm + · rw [edgeVertices_eq_of_exposedEdge_singleton (hedges t ⟨h, ht.2⟩).1] + · intro s hs + rcases eq_or_lt_of_le hs.1 with h1 | h1 + · rw [← h1, sub_self] + exact hC0.symm + rcases eq_or_lt_of_le hs.2 with h2 | h2 + · have hatom := (surfaceAreaMeasure_atom_length K.val ((Real.pi : ℝ) : Real.Angle)).2.2 + rw [hatompi] at hatom + simp only [ENNReal.toReal_zero, zero_smul, add_zero] at hatom + rw [h2, show Real.pi - Real.pi / 2 = Real.pi / 2 from by ring, hatom, ← hCT] + · have htmem : s - Real.pi / 2 ∈ Set.Ioo (0 : ℝ) (Real.pi / 2) := + ⟨by linarith, by linarith⟩ + have h := (hedges (s - Real.pi / 2) htmem).2 + rw [show s - Real.pi / 2 + Real.pi / 2 = s from by ring] at h + rw [edgeVertices_eq_of_exposedEdge_singleton h] + +/-! ### The stagewise density identities -/ + +/-- On a subinterval of a single stage, strictly below the switch `π/2`, the surface measure of +an angular image is the `rhoA`-weighted Lebesgue measure. -/ +private theorem surfaceAreaMeasure_angleImage_eq_withDensity_rhoA_of_stage (K : ConvexBody Point) + (hvertexA : ∀ t ∈ Set.Ico (0 : ℝ) (Real.pi / 2), + (edgeVertices K ((t : ℝ) : Real.Angle)).1 = paperGerverContacts t 0) + (j : Fin 5) (a b : ℝ) (hja : gerverStageTimes j.castSucc ≤ a) + (hjb : b ≤ gerverStageTimes j.succ) (hbT : b < Real.pi / 2) + (S : Set ℝ) (hS : MeasurableSet S) (hSsub : S ⊆ Set.Ioc a b) : + surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + volume.withDensity (fun s ↦ ENNReal.ofReal (GerverSofa.PartC.Stage2.rhoA s)) S := by + have hpi := Real.pi_gt_three + rcases le_or_gt b a with hle | hab + · have hempty : S = ∅ := by + refine Set.eq_empty_iff_forall_notMem.2 fun x hx ↦ ?_ + have hx' := hSsub hx + rw [Set.mem_Ioc] at hx' + linarith [hx'.1, hx'.2] + rw [hempty] + simp + obtain ⟨PA, PC, rA, rC, hPA, hPC, hcA, hcC, hmem, hrho⟩ := exists_phaseCurves_of_stage j + have ha0 : 0 ≤ a := le_trans (gerverStageTimes_nonneg _) hja + refine surfaceAreaMeasure_angleImage_eq_withDensity_of_hasDerivAt K hab (by linarith) + (fun s ↦ GerverSofa.PartF.Coordinates.toPlane (PA s)) rA + GerverSofa.PartC.Stage2.rhoA (fun s ↦ ?_) hcA ?_ ?_ ?_ S hS hSsub + · have h := hasDerivAt_toPlane (hPA s) + rw [toPlane_smul] at h + exact h + · intro s hs + rw [hvertexA s ⟨le_trans ha0 hs.1, lt_of_le_of_lt hs.2 hbT⟩] + exact (hmem s ⟨le_trans hja hs.1, le_trans hs.2 hjb⟩).1 + · intro s hs + exact (hrho s ⟨lt_of_le_of_lt hja hs.1, le_trans hs.2 hjb⟩).1 + · intro s hs + have hs0 : (0 : ℝ) ≤ s := by linarith [hs.1] + have hsT : s ≤ Real.pi / 2 := by linarith [hs.2] + exact GerverSofa.PartC.Stage2.rhoA_nonneg ⟨hs0, hsT⟩ + +/-- On a subinterval of a single shifted stage the surface measure of an angular image is the +translated `rhoC`-weighted Lebesgue measure. -/ +private theorem surfaceAreaMeasure_angleImage_eq_withDensity_rhoC_of_stage (K : ConvexBody Point) + (hvertexC : ∀ s ∈ Set.Icc (Real.pi / 2) Real.pi, + (edgeVertices K ((s : ℝ) : Real.Angle)).1 = paperGerverContacts (s - Real.pi / 2) 2) + (j : Fin 5) (a b : ℝ) (hja : Real.pi / 2 + gerverStageTimes j.castSucc ≤ a) + (hjb : b ≤ Real.pi / 2 + gerverStageTimes j.succ) + (S : Set ℝ) (hS : MeasurableSet S) (hSsub : S ⊆ Set.Ioc a b) : + surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + volume.withDensity + (fun u ↦ ENNReal.ofReal (GerverSofa.PartC.Stage2.rhoC (u - Real.pi / 2))) S := by + have hpi := Real.pi_gt_three + rcases le_or_gt b a with hle | hab + · have hempty : S = ∅ := by + refine Set.eq_empty_iff_forall_notMem.2 fun x hx ↦ ?_ + have hx' := hSsub hx + rw [Set.mem_Ioc] at hx' + linarith [hx'.1, hx'.2] + rw [hempty] + simp + obtain ⟨PA, PC, rA, rC, hPA, hPC, hcA, hcC, hmem, hrho⟩ := exists_phaseCurves_of_stage j + have ha0 : Real.pi / 2 ≤ a := le_trans (by linarith [gerverStageTimes_nonneg j.castSucc]) hja + have hbpi : b ≤ Real.pi := by + have := gerverStageTimes_le_pi_div_two j.succ + linarith + refine surfaceAreaMeasure_angleImage_eq_withDensity_of_hasDerivAt K hab (by linarith) + (fun s ↦ GerverSofa.PartF.Coordinates.toPlane (PC (s - Real.pi / 2))) + (fun s ↦ rC (s - Real.pi / 2)) + (fun u ↦ GerverSofa.PartC.Stage2.rhoC (u - Real.pi / 2)) (fun s ↦ ?_) + (hcC.comp (continuous_id.sub continuous_const)) ?_ ?_ ?_ S hS hSsub + · have hinner : HasDerivAt (fun x : ℝ ↦ x - Real.pi / 2) 1 s := + (hasDerivAt_id s).sub_const _ + have h1 : HasDerivAt (fun x : ℝ ↦ PC (x - Real.pi / 2)) + (-(rC (s - Real.pi / 2)) • GerverSofa.u (s - Real.pi / 2)) s := by + simpa [Function.comp_def] using (hPC (s - Real.pi / 2)).scomp s hinner + have h2 := hasDerivAt_toPlane h1 + rw [toPlane_smul] at h2 + have hangle : tangentVector ((s : ℝ) : Real.Angle) = + -normalVector (((s - Real.pi / 2 : ℝ)) : Real.Angle) := by + have h := tangentVector_add_pi_div_two (s - Real.pi / 2) + rw [show s - Real.pi / 2 + Real.pi / 2 = s from by ring] at h + exact h + rw [hangle, smul_neg, ← neg_smul] + exact h2 + · intro s hs + rw [hvertexC s ⟨le_trans ha0 hs.1, le_trans hs.2 hbpi⟩] + exact (hmem (s - Real.pi / 2) ⟨by linarith [hs.1], by linarith [hs.2]⟩).2 + · intro s hs + exact (hrho (s - Real.pi / 2) ⟨by linarith [hs.1], by linarith [hs.2]⟩).2 + · intro s hs + have hs0 : (0 : ℝ) ≤ s - Real.pi / 2 := by linarith [hs.1] + have hsT : s - Real.pi / 2 ≤ Real.pi / 2 := by linarith [hs.2, hbpi] + exact GerverSofa.PartC.Stage2.rhoC_nonneg ⟨hs0, hsT⟩ + +/-! ### Exhausting the last stage of the first arc from inside -/ + +/-- The positive vertex jumps at `π/2`, so the last `rhoA` stage is reached by exhausting its +open interval by half-open subintervals. -/ +private theorem surfaceAreaMeasure_angleImage_eq_withDensity_rhoA_of_final_stage + (K : ConvexBody Point) + (hvertexA : ∀ t ∈ Set.Ico (0 : ℝ) (Real.pi / 2), + (edgeVertices K ((t : ℝ) : Real.Angle)).1 = paperGerverContacts t 0) + (S : Set ℝ) (hS : MeasurableSet S) (hSsub : S ⊆ Set.Ioo (gerverStageTimes 4) (Real.pi / 2)) : + surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + volume.withDensity (fun s ↦ ENNReal.ofReal (GerverSofa.PartC.Stage2.rhoA s)) S := by + have h4T := gerverStageTimes_four_lt_pi_div_two + have hpos : 0 < Real.pi / 2 - gerverStageTimes 4 := by linarith + have hbnlt : ∀ n : ℕ, Real.pi / 2 - + (Real.pi / 2 - gerverStageTimes 4) / ((n : ℝ) + 2) < Real.pi / 2 := by + intro n + have h : 0 < (Real.pi / 2 - gerverStageTimes 4) / ((n : ℝ) + 2) := by positivity + linarith + refine measure_angleImage_eq_of_iUnion + (J := fun n : ℕ ↦ Set.Ioc (gerverStageTimes 4) + (Real.pi / 2 - (Real.pi / 2 - gerverStageTimes 4) / ((n : ℝ) + 2))) + ?_ (fun n ↦ measurableSet_Ioc) ?_ S hS ?_ + · intro m n hmn + refine Set.Ioc_subset_Ioc_right ?_ + have hmn' : ((m : ℝ) + 2) ≤ ((n : ℝ) + 2) := by + have : (m : ℝ) ≤ (n : ℝ) := Nat.cast_le.2 hmn + linarith + have hd : (Real.pi / 2 - gerverStageTimes 4) / ((n : ℝ) + 2) ≤ + (Real.pi / 2 - gerverStageTimes 4) / ((m : ℝ) + 2) := by + gcongr + linarith + · intro n S' hS' hS'sub + exact surfaceAreaMeasure_angleImage_eq_withDensity_rhoA_of_stage K hvertexA 4 _ _ + (le_refl _) (hbnlt n).le (hbnlt n) S' hS' hS'sub + · intro x hx + have hx' := hSsub hx + obtain ⟨n, hn⟩ := exists_nat_gt ((Real.pi / 2 - gerverStageTimes 4) / (Real.pi / 2 - x)) + refine Set.mem_iUnion.2 ⟨n, ⟨hx'.1, ?_⟩⟩ + have h1 : 0 < Real.pi / 2 - x := by linarith [hx'.2] + rw [div_lt_iff₀ h1] at hn + have h4 : (Real.pi / 2 - gerverStageTimes 4) / ((n : ℝ) + 2) < Real.pi / 2 - x := by + rw [div_lt_iff₀ (by positivity)] + nlinarith [h1] + linarith + +/-! ### Gluing two adjacent arcs -/ + +/-- Two adjacent windows inside `[0, π/2]` on which the `rhoA` identity holds may be merged. -/ +private theorem surfaceAreaMeasure_angleImage_eq_withDensity_rhoA_of_union (K : ConvexBody Point) + (x y z : ℝ) (hx : 0 ≤ x) (hxy : x ≤ y) (hyz : y ≤ z) (hz : z ≤ Real.pi / 2) + (hI : ∀ S, MeasurableSet S → S ⊆ Set.Icc x y → + surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + volume.withDensity (fun s ↦ ENNReal.ofReal (GerverSofa.PartC.Stage2.rhoA s)) S) + (hJ : ∀ S, MeasurableSet S → S ⊆ Set.Ioc y z → + surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + volume.withDensity (fun s ↦ ENNReal.ofReal (GerverSofa.PartC.Stage2.rhoA s)) S) + (S : Set ℝ) (hS : MeasurableSet S) (hSsub : S ⊆ Set.Icc x z) : + surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + volume.withDensity (fun s ↦ ENNReal.ofReal (GerverSofa.PartC.Stage2.rhoA s)) S := by + have hpi := Real.pi_gt_three + refine measure_angleImage_eq_of_union (c := -1) (d := Real.pi / 2) (by linarith) + (I := Set.Icc x y) (J := Set.Ioc y z) + (fun u hu ↦ ⟨by linarith [hu.1], by linarith [hu.2]⟩) + (fun u hu ↦ ⟨by linarith [hu.1], by linarith [hu.2]⟩) + measurableSet_Icc measurableSet_Ioc ?_ hI hJ S hS ?_ + · rw [Set.disjoint_left] + intro u hu hu' + linarith [hu.2, hu'.1] + · rw [Set.Icc_union_Ioc_eq_Icc hxy hyz] + exact hSsub + +/-- Two adjacent windows inside `[π/2, π]` on which the `rhoC` identity holds may be merged. -/ +private theorem surfaceAreaMeasure_angleImage_eq_withDensity_rhoC_of_union (K : ConvexBody Point) + (x y z : ℝ) (hx : Real.pi / 2 ≤ x) (hxy : x ≤ y) (hyz : y ≤ z) (hz : z ≤ Real.pi) + (hI : ∀ S, MeasurableSet S → S ⊆ Set.Ioc x y → + surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + volume.withDensity + (fun u ↦ ENNReal.ofReal (GerverSofa.PartC.Stage2.rhoC (u - Real.pi / 2))) S) + (hJ : ∀ S, MeasurableSet S → S ⊆ Set.Ioc y z → + surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + volume.withDensity + (fun u ↦ ENNReal.ofReal (GerverSofa.PartC.Stage2.rhoC (u - Real.pi / 2))) S) + (S : Set ℝ) (hS : MeasurableSet S) (hSsub : S ⊆ Set.Ioc x z) : + surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + volume.withDensity + (fun u ↦ ENNReal.ofReal (GerverSofa.PartC.Stage2.rhoC (u - Real.pi / 2))) S := by + have hpi := Real.pi_gt_three + refine measure_angleImage_eq_of_union (c := Real.pi / 2) (d := Real.pi) (by linarith) + (I := Set.Ioc x y) (J := Set.Ioc y z) + (fun u hu ↦ ⟨by linarith [hu.1], by linarith [hu.2]⟩) + (fun u hu ↦ ⟨by linarith [hu.1], by linarith [hu.2]⟩) + measurableSet_Ioc measurableSet_Ioc ?_ hI hJ S hS ?_ + · rw [Set.disjoint_left] + intro u hu hu' + linarith [hu.2, hu'.1] + · rw [Set.Ioc_union_Ioc_eq_Ioc hxy hyz] + exact hSsub + +/-! ### The density identity on each full arc -/ + +/-- The surface measure of the angular image of any measurable subset of `[0, π/2)` is the +`rhoA`-weighted Lebesgue measure. -/ +private theorem surfaceAreaMeasure_angleImage_eq_withDensity_rhoA (K : ConvexBody Point) + (hatom0 : surfaceAreaMeasure K {((0 : ℝ) : Real.Angle)} = 0) + (hvertexA : ∀ t ∈ Set.Ico (0 : ℝ) (Real.pi / 2), + (edgeVertices K ((t : ℝ) : Real.Angle)).1 = paperGerverContacts t 0) + (S : Set ℝ) (hS : MeasurableSet S) (hSsub : S ⊆ Set.Ico 0 (Real.pi / 2)) : + surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + volume.withDensity (fun s ↦ ENNReal.ofReal (GerverSofa.PartC.Stage2.rhoA s)) S := by + have hpi := Real.pi_gt_three + have hT0 : gerverStageTimes 0 = 0 := rfl + have hlt01 : gerverStageTimes 0 < gerverStageTimes 1 := gerverStageTimes_lt_succ 0 + have hlt12 : gerverStageTimes 1 < gerverStageTimes 2 := gerverStageTimes_lt_succ 1 + have hlt23 : gerverStageTimes 2 < gerverStageTimes 3 := gerverStageTimes_lt_succ 2 + have hlt34 : gerverStageTimes 3 < gerverStageTimes 4 := gerverStageTimes_lt_succ 3 + have h4T := gerverStageTimes_four_lt_pi_div_two + have h1T : gerverStageTimes 1 < Real.pi / 2 := by linarith + have h2T : gerverStageTimes 2 < Real.pi / 2 := by linarith + have h3T : gerverStageTimes 3 < Real.pi / 2 := by linarith + have h04 : gerverStageTimes 0 ≤ gerverStageTimes 4 := by linarith + -- the left endpoint carries no atom + have hzeroA : ∀ S, MeasurableSet S → + S ⊆ Set.Icc (gerverStageTimes 0) (gerverStageTimes 0) → + surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + volume.withDensity (fun s ↦ ENNReal.ofReal (GerverSofa.PartC.Stage2.rhoA s)) S := by + intro S hS hSsub + have h1 : surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = 0 := by + refine measure_mono_null ?_ hatom0 + rintro u ⟨x, hx, rfl⟩ + have hx' := hSsub hx + rw [Set.Icc_self, Set.mem_singleton_iff, hT0] at hx' + rw [hx'] + exact rfl + have h2 : volume.withDensity + (fun s ↦ ENNReal.ofReal (GerverSofa.PartC.Stage2.rhoA s)) S = 0 := by + refine measure_mono_null hSsub ?_ + rw [Set.Icc_self] + exact (withDensity_absolutelyContinuous volume _) (measure_singleton _) + rw [h1, h2] + -- glue the left endpoint and the first four stages + have hstep1 := surfaceAreaMeasure_angleImage_eq_withDensity_rhoA_of_union K + (gerverStageTimes 0) (gerverStageTimes 0) (gerverStageTimes 1) + hT0.ge le_rfl hlt01.le h1T.le hzeroA + (surfaceAreaMeasure_angleImage_eq_withDensity_rhoA_of_stage K hvertexA 0 _ _ + (le_refl _) (le_refl _) h1T) + have hstep2 := surfaceAreaMeasure_angleImage_eq_withDensity_rhoA_of_union K + (gerverStageTimes 0) (gerverStageTimes 1) (gerverStageTimes 2) + hT0.ge hlt01.le hlt12.le h2T.le hstep1 + (surfaceAreaMeasure_angleImage_eq_withDensity_rhoA_of_stage K hvertexA 1 _ _ + (le_refl _) (le_refl _) h2T) + have hstep3 := surfaceAreaMeasure_angleImage_eq_withDensity_rhoA_of_union K + (gerverStageTimes 0) (gerverStageTimes 2) (gerverStageTimes 3) + hT0.ge (by linarith) hlt23.le h3T.le hstep2 + (surfaceAreaMeasure_angleImage_eq_withDensity_rhoA_of_stage K hvertexA 2 _ _ + (le_refl _) (le_refl _) h3T) + have hstep4 := surfaceAreaMeasure_angleImage_eq_withDensity_rhoA_of_union K + (gerverStageTimes 0) (gerverStageTimes 3) (gerverStageTimes 4) + hT0.ge (by linarith) hlt34.le h4T.le hstep3 + (surfaceAreaMeasure_angleImage_eq_withDensity_rhoA_of_stage K hvertexA 3 _ _ + (le_refl _) (le_refl _) h4T) + -- glue the exhausted last stage + refine measure_angleImage_eq_of_union (c := -1) (d := Real.pi / 2) (by linarith) + (I := Set.Icc (gerverStageTimes 0) (gerverStageTimes 4)) + (J := Set.Ioo (gerverStageTimes 4) (Real.pi / 2)) + (fun u hu ↦ ⟨by linarith [hu.1, hT0], by linarith [hu.2, h4T]⟩) + (fun u hu ↦ ⟨by linarith [hu.1, hT0, h04], by linarith [hu.2]⟩) + measurableSet_Icc measurableSet_Ioo ?_ hstep4 + (surfaceAreaMeasure_angleImage_eq_withDensity_rhoA_of_final_stage K hvertexA) S hS ?_ + · rw [Set.disjoint_left] + intro u hu hu' + linarith [hu.2, hu'.1] + · rw [Set.Icc_union_Ioo_eq_Ico h04 h4T, hT0] + exact hSsub + +/-- The surface measure of the angular image of any measurable subset of `(π/2, π]` is the +translated `rhoC`-weighted Lebesgue measure. -/ +private theorem surfaceAreaMeasure_angleImage_eq_withDensity_rhoC (K : ConvexBody Point) + (hvertexC : ∀ s ∈ Set.Icc (Real.pi / 2) Real.pi, + (edgeVertices K ((s : ℝ) : Real.Angle)).1 = paperGerverContacts (s - Real.pi / 2) 2) + (S : Set ℝ) (hS : MeasurableSet S) + (hSsub : S ⊆ Set.Ioc (Real.pi / 2) (Real.pi / 2 + Real.pi / 2)) : + surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + volume.withDensity + (fun u ↦ ENNReal.ofReal (GerverSofa.PartC.Stage2.rhoC (u - Real.pi / 2))) S := by + have hpi := Real.pi_gt_three + have hT0 : gerverStageTimes 0 = 0 := rfl + have hT5 : gerverStageTimes 5 = Real.pi / 2 := rfl + have hlt01 : gerverStageTimes 0 < gerverStageTimes 1 := gerverStageTimes_lt_succ 0 + have hlt12 : gerverStageTimes 1 < gerverStageTimes 2 := gerverStageTimes_lt_succ 1 + have hlt23 : gerverStageTimes 2 < gerverStageTimes 3 := gerverStageTimes_lt_succ 2 + have hlt34 : gerverStageTimes 3 < gerverStageTimes 4 := gerverStageTimes_lt_succ 3 + have hlt45 : gerverStageTimes 4 < gerverStageTimes 5 := gerverStageTimes_lt_succ 4 + have hc0 := surfaceAreaMeasure_angleImage_eq_withDensity_rhoC_of_stage K hvertexC 0 + (Real.pi / 2 + gerverStageTimes 0) (Real.pi / 2 + gerverStageTimes 1) (le_refl _) (le_refl _) + have hc1 := surfaceAreaMeasure_angleImage_eq_withDensity_rhoC_of_stage K hvertexC 1 + (Real.pi / 2 + gerverStageTimes 1) (Real.pi / 2 + gerverStageTimes 2) (le_refl _) (le_refl _) + have hc2 := surfaceAreaMeasure_angleImage_eq_withDensity_rhoC_of_stage K hvertexC 2 + (Real.pi / 2 + gerverStageTimes 2) (Real.pi / 2 + gerverStageTimes 3) (le_refl _) (le_refl _) + have hc3 := surfaceAreaMeasure_angleImage_eq_withDensity_rhoC_of_stage K hvertexC 3 + (Real.pi / 2 + gerverStageTimes 3) (Real.pi / 2 + gerverStageTimes 4) (le_refl _) (le_refl _) + have hc4 := surfaceAreaMeasure_angleImage_eq_withDensity_rhoC_of_stage K hvertexC 4 + (Real.pi / 2 + gerverStageTimes 4) (Real.pi / 2 + gerverStageTimes 5) (le_refl _) (le_refl _) + have hstep1 := surfaceAreaMeasure_angleImage_eq_withDensity_rhoC_of_union K + (Real.pi / 2 + gerverStageTimes 0) + (Real.pi / 2 + gerverStageTimes 1) (Real.pi / 2 + gerverStageTimes 2) + (by linarith [gerverStageTimes_nonneg 0]) (by linarith) (by linarith) + (by linarith [gerverStageTimes_le_pi_div_two 2]) hc0 hc1 + have hstep2 := surfaceAreaMeasure_angleImage_eq_withDensity_rhoC_of_union K + (Real.pi / 2 + gerverStageTimes 0) + (Real.pi / 2 + gerverStageTimes 2) (Real.pi / 2 + gerverStageTimes 3) + (by linarith [gerverStageTimes_nonneg 0]) (by linarith) (by linarith) + (by linarith [gerverStageTimes_le_pi_div_two 3]) hstep1 hc2 + have hstep3 := surfaceAreaMeasure_angleImage_eq_withDensity_rhoC_of_union K + (Real.pi / 2 + gerverStageTimes 0) + (Real.pi / 2 + gerverStageTimes 3) (Real.pi / 2 + gerverStageTimes 4) + (by linarith [gerverStageTimes_nonneg 0]) (by linarith) (by linarith) + (by linarith [gerverStageTimes_le_pi_div_two 4]) hstep2 hc3 + have hstep4 := surfaceAreaMeasure_angleImage_eq_withDensity_rhoC_of_union K + (Real.pi / 2 + gerverStageTimes 0) + (Real.pi / 2 + gerverStageTimes 4) (Real.pi / 2 + gerverStageTimes 5) + (by linarith [gerverStageTimes_nonneg 0]) (by linarith) (by linarith) + (by linarith [gerverStageTimes_le_pi_div_two 5]) hstep3 hc4 + refine hstep4 S hS ?_ + rw [hT0, hT5, add_zero] + exact hSsub + +theorem gerver_surface_densities : + ∃ K : RightAngleCapSpace, + (K.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2) ∧ + ∃ r s : ℝ → ℝ≥0, HasCapDensities K r s ∧ + (∃ M : ℝ, ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + (r t : ℝ) ≤ M ∧ (s t : ℝ) ≤ M) ∧ + (∀ i : Fin 5, ∀ t ∈ Set.Ioo (gerverStageTimes i.castSucc) (gerverStageTimes i.succ), + HasDerivAt (fun u ↦ paperGerverContacts u 0) + ((r t : ℝ) • tangentVector (t : Real.Angle)) t ∧ + HasDerivAt (fun u ↦ paperGerverContacts u 2) + (-(s t : ℝ) • normalVector (t : Real.Angle)) t) := by + obtain ⟨K, hKcap, hatom0, hvertexA, hvertexC⟩ := exists_gerverCap_positiveVertex + obtain ⟨M, hM⟩ := exists_bound_rhoA_rhoC + refine ⟨K, hKcap, fun t ↦ Real.toNNReal (GerverSofa.PartC.Stage2.rhoA t), + fun t ↦ Real.toNNReal (GerverSofa.PartC.Stage2.rhoC t), + ⟨measurable_real_toNNReal.comp measurable_rhoA, + measurable_real_toNNReal.comp measurable_rhoC, ?_, ?_⟩, + ⟨max M 0, fun t ht ↦ ⟨?_, ?_⟩⟩, ?_⟩ + · exact surfaceAreaMeasure_restrict_eq_map_withDensity measurableSet_Ico + (surfaceAreaMeasure_angleImage_eq_withDensity_rhoA K.val hatom0 hvertexA) + · rw [show Set.Ioc (Real.pi / 2) Real.pi = + Set.Ioc (Real.pi / 2) (Real.pi / 2 + Real.pi / 2) from by + rw [show Real.pi / 2 + Real.pi / 2 = Real.pi from by ring]] + exact surfaceAreaMeasure_restrict_eq_map_add_withDensity + (surfaceAreaMeasure_angleImage_eq_withDensity_rhoC K.val hvertexC) + · rw [Real.coe_toNNReal'] + exact max_le_max (hM t ht).1 le_rfl + · rw [Real.coe_toNNReal'] + exact max_le_max (hM t ht).2 le_rfl + · intro i t ht + have htIcc : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨le_trans (gerverStageTimes_nonneg _) ht.1.le, + le_trans ht.2.le (gerverStageTimes_le_pi_div_two _)⟩ + obtain ⟨hA, hC⟩ := hasDerivAt_paperGerverContacts_of_mem_stage i ht + rw [Real.coe_toNNReal _ (GerverSofa.PartC.Stage2.rhoA_nonneg htIcc), + Real.coe_toNNReal _ (GerverSofa.PartC.Stage2.rhoC_nonneg htIcc)] + exact ⟨hA, hC⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Gerver / Velocity And Cap Area +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem gerver_strict_velocity (t : ℝ) (ht : t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2)) : + (paperGerverVelocityComponents t).1 < 0 ∧ 0 < (paperGerverVelocityComponents t).2 ∧ + inner ℝ (deriv paperGerverPath t) (normalVector (t : Real.Angle)) < 0 ∧ + 0 < inner ℝ (deriv paperGerverPath t) (tangentVector (t : Real.Angle)) := by + open GerverSofa.Romik in + -- The certified direct parameter vector, its box enclosures and its equations. + obtain ⟨p, hp⟩ : ∃ p : Params, GerverSofa.PartB.params = p := ⟨_, rfl⟩ + have hmem : p ∈ gerverDirectBox := hp ▸ GerverSofa.PartB.params_mem + have heqs : gerverDirectEquations p := hp ▸ GerverSofa.PartB.params_equations + obtain ⟨-, hphieq, hthetaeq, hphipos, -, -, -⟩ := + gerver_parameter_identification.1 p hmem heqs + have hphi' : p.phi = GerversSofa.φ := hphieq.trans selected_phi + have htheta' : p.theta = GerversSofa.θ := hthetaeq.trans selected_theta + have hphi0 : (0 : ℝ) < p.phi := by rw [hphieq]; exact hphipos + have ha2 : p.a2 = -(1 / 4 : ℝ) := a2_eq_neg_quarter_of_equations heqs + have he1 : p.e1 = p.a1 := e1_eq_a1_of_equations heqs + have he2 : p.e2 = -p.a2 := e2_eq_neg_a2_of_equations heqs + have hbox : p ∈ GerverSofa.Romik.box := hmem + dsimp only [GerverSofa.Romik.box, GerverSofa.qR, Set.mem_ofPred_eq] at hbox + obtain ⟨-, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, + ha1lo, -, -, -, hb1lo, hb1hi, hb2lo, -, hc1lo, -, hc2lo, -, hd1lo, -, hd2lo, -, + -, -, -, -, -, hphihi, -, hthetahi⟩ := hbox + have ha1 : (6 : ℝ) / 5 ≤ p.a1 := le_trans (by norm_num) ha1lo + have hb1u : p.b1 ≤ -(1 / 2 : ℝ) := le_trans hb1hi (by norm_num) + have hb1l : -(53 / 100 : ℝ) ≤ p.b1 := le_trans (by norm_num) hb1lo + have hb2 : (9 : ℝ) / 10 ≤ p.b2 := le_trans (by norm_num) hb2lo + have hc1 : (3 : ℝ) / 5 ≤ p.c1 := le_trans (by norm_num) hc1lo + have hc2 : (-1 : ℝ) ≤ p.c2 := le_trans (by norm_num) hc2lo + have hd1 : (13 : ℝ) / 10 ≤ p.d1 := le_trans (by norm_num) hd1lo + have hd2 : -(53 / 100 : ℝ) ≤ p.d2 := le_trans (by norm_num) hd2lo + have hphiu : p.phi ≤ (1 : ℝ) / 20 := le_trans hphihi (by norm_num) + have hthetau : p.theta ≤ (7 : ℝ) / 10 := le_trans hthetahi (by norm_num) + have hpilo : (3 : ℝ) < Real.pi := Real.pi_gt_three + have hpihi : Real.pi < (63 : ℝ) / 20 := by linarith only [Real.pi_lt_d2] + -- The two strict first-phase estimates, also used on the reflected fifth phase. + have hkeyA : ∀ s : ℝ, 0 ≤ s → s ≤ (1 : ℝ) / 20 → + (alphaBeta1 p s).1 ≤ -(2 * s) := by + intro s hs0 hs20 + have hspi : s ≤ Real.pi := by linarith only [hs20, hpilo] + have hsin0 : 0 ≤ Real.sin s := Real.sin_nonneg_of_nonneg_of_le_pi hs0 hspi + have hsinlo : s - s ^ 3 / 6 ≤ Real.sin s := Real.sin_ge_sub_cube hs0 + have hcoslo : 1 - s ^ 2 / 2 ≤ Real.cos s := Real.one_sub_sq_div_two_le_cos + have hmul : (12 / 5 : ℝ) * Real.sin s ≤ 2 * p.a1 * Real.sin s := by + nlinarith only [ha1, hsin0] + have hquad : 0 ≤ s * ((1 / 20 : ℝ) - s) := mul_nonneg hs0 (by linarith only [hs20]) + have hcube : 0 ≤ s ^ 2 * ((1 / 20 : ℝ) - s) := + mul_nonneg (sq_nonneg s) (by linarith only [hs20]) + dsimp [alphaBeta1] + rw [ha2] + linarith only [hmul, hsinlo, hcoslo, hquad, hcube, hs0] + have hkeyB : ∀ s : ℝ, 0 ≤ s → s ≤ (1 : ℝ) / 20 → + (343 : ℝ) / 250 ≤ (alphaBeta1 p s).2 := by + intro s hs0 hs20 + have hspi : s ≤ Real.pi := by linarith only [hs20, hpilo] + have hsinhi : Real.sin s ≤ s := Real.sin_le hs0 + have hcoslo : 1 - s ^ 2 / 2 ≤ Real.cos s := Real.one_sub_sq_div_two_le_cos + have hcos0 : 0 ≤ Real.cos s := + Real.cos_nonneg_of_mem_Icc ⟨by linarith only [hs0, hpilo], by linarith only [hs20, hpilo]⟩ + have hmul : (12 / 5 : ℝ) * Real.cos s ≤ 2 * p.a1 * Real.cos s := by + nlinarith only [ha1, hcos0] + have hquad : 0 ≤ s * ((1 / 20 : ℝ) - s) := mul_nonneg hs0 (by linarith only [hs20]) + dsimp [alphaBeta1] + rw [ha2] + linarith only [hmul, hsinhi, hcoslo, hquad, hs0, hs20] + -- The fifth phase is the reflection of the first one through the angle `π/4`. + have hrefl : ∀ s : ℝ, alphaBeta5 p (Real.pi / 2 - s) = + (-(alphaBeta1 p s).2, -(alphaBeta1 p s).1) := by + intro s + dsimp [alphaBeta5, alphaBeta1] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub, he1, he2] + simp only [Prod.mk.injEq] + constructor <;> ring + -- The five closed stage intervals in terms of the direct switching angles. + have hI0 : gerverStageIntervals 0 = Set.Icc 0 p.phi := by + simp [gerverStageIntervals, gerverStageTimes, hphi'] + have hI1 : gerverStageIntervals 1 = Set.Icc p.phi p.theta := by + simp [gerverStageIntervals, gerverStageTimes, hphi', htheta'] + have hI2 : gerverStageIntervals 2 = Set.Icc p.theta (Real.pi / 2 - p.theta) := by + simp [gerverStageIntervals, gerverStageTimes, htheta'] + have hI3 : gerverStageIntervals 3 = + Set.Icc (Real.pi / 2 - p.theta) (Real.pi / 2 - p.phi) := by + simp [gerverStageIntervals, gerverStageTimes, hphi', htheta'] + have hI4 : gerverStageIntervals 4 = Set.Icc (Real.pi / 2 - p.phi) (Real.pi / 2) := by + simp [gerverStageIntervals, gerverStageTimes, hphi'] + have hval := paperGerverContactData_properties.2.2.2 + have hmain : (paperGerverVelocityComponents t).1 < 0 ∧ + 0 < (paperGerverVelocityComponents t).2 := by + rcases le_or_gt t p.phi with hs1 | hs1 + · -- Phase 1: `α ≤ -2t < 0` and `β ≥ 343/250 > 0`. + have hv : paperGerverVelocityComponents t = alphaBeta1 p t := by + rw [hval 0 t (by rw [hI0]; exact ⟨ht.1.le, hs1⟩)] + simp [gerverBranchVelocityComponents, hp] + have htu : t ≤ (1 : ℝ) / 20 := le_trans hs1 hphiu + rw [hv] + exact ⟨by linarith only [hkeyA t ht.1.le htu, ht.1], + by linarith only [hkeyB t ht.1.le htu]⟩ + rcases le_or_gt t p.theta with hs2 | hs2 + · -- Phase 2: `α ≤ -t < 0` and `β ≥ 1813/2000 > 0`. + have hv : paperGerverVelocityComponents t = alphaBeta2 p t := by + rw [hval 1 t (by rw [hI1]; exact ⟨hs1.le, hs2⟩)] + simp [gerverBranchVelocityComponents, hp] + have htu : t ≤ (7 : ℝ) / 10 := le_trans hs2 hthetau + have hbt : 0 ≤ (p.b1 + 53 / 100) * t := mul_nonneg (by linarith only [hb1l]) ht.1.le + have hst : 0 ≤ ((7 : ℝ) / 10 - t) * t := mul_nonneg (by linarith only [htu]) ht.1.le + rw [hv] + dsimp [alphaBeta2] + exact ⟨by linarith only [hb1u, ht.1], by linarith only [hb2, hbt, hst, htu]⟩ + rcases le_or_gt t (Real.pi / 2 - p.theta) with hs3 | hs3 + · -- Phase 3: `α ≤ -t < 0` and `β ≥ 8/5 - t > 0`. + have hv : paperGerverVelocityComponents t = alphaBeta3 p t := by + rw [hval 2 t (by rw [hI2]; exact ⟨hs2.le, hs3⟩)] + simp [gerverBranchVelocityComponents, hp] + rw [hv] + dsimp [alphaBeta3] + exact ⟨by linarith only [hc2, ht.1], by linarith only [hc1, ht.2, hpihi]⟩ + rcases le_or_gt t (Real.pi / 2 - p.phi) with hs4 | hs4 + · -- Phase 4: `-α > 69/100 > 0` and `β ≥ 8/5 - t > 0`. + have hv : paperGerverVelocityComponents t = alphaBeta4 p t := by + rw [hval 3 t (by rw [hI3]; exact ⟨hs3.le, hs4⟩)] + simp [gerverBranchVelocityComponents, hp] + have htlo : (4 : ℝ) / 5 < t := by linarith only [hs3, hthetau, hpilo] + have hthi : t < (8 : ℝ) / 5 := by linarith only [ht.2, hpihi] + have hcoef : (9 : ℝ) / 10 ≤ p.d1 - t / 4 := by linarith only [hd1, hthi] + have hprod : (18 : ℝ) / 25 < t * (p.d1 - t / 4) := by nlinarith only [htlo, hcoef] + rw [hv] + dsimp [alphaBeta4] + exact ⟨by linarith only [hprod, hd2], by linarith only [hd1, hthi]⟩ + · -- Phase 5: the reflected first-phase estimates at `s = π/2 - t ∈ (0, φ]`. + have hv : paperGerverVelocityComponents t = alphaBeta5 p t := by + rw [hval 4 t (by rw [hI4]; exact ⟨hs4.le, ht.2.le⟩)] + simp [gerverBranchVelocityComponents, hp] + have hs0 : 0 < Real.pi / 2 - t := by linarith only [ht.2] + have hsu : Real.pi / 2 - t ≤ (1 : ℝ) / 20 := by linarith only [hs4, hphiu] + have hA := hkeyA (Real.pi / 2 - t) hs0.le hsu + have hB := hkeyB (Real.pi / 2 - t) hs0.le hsu + have h5 := hrefl (Real.pi / 2 - t) + rw [show Real.pi / 2 - (Real.pi / 2 - t) = t by ring] at h5 + have hfst : (alphaBeta5 p t).1 = -(alphaBeta1 p (Real.pi / 2 - t)).2 := by rw [h5] + have hsnd : (alphaBeta5 p t).2 = -(alphaBeta1 p (Real.pi / 2 - t)).1 := by rw [h5] + rw [hv, hfst, hsnd] + exact ⟨by linarith only [hB], by linarith only [hA, hs0]⟩ + exact ⟨hmain.1, hmain.2, hmain.1, hmain.2⟩ + +/-- The tangential velocity component is nonpositive on the whole closed rotation interval: +the strict inequality of `gerver_strict_velocity` holds on the open interval, and the +component is continuous, so the closed condition propagates to the two endpoints. -/ +theorem paperGerverVelocityComponents_fst_nonpos {t : ℝ} + (ht : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) : (paperGerverVelocityComponents t).1 ≤ 0 := by + have hpi : (0 : ℝ) < Real.pi / 2 := by positivity + have hcl : IsClosed {s : ℝ | (paperGerverVelocityComponents s).1 ≤ 0} := + isClosed_le (continuous_fst.comp paperGerverContactData_properties.1) continuous_const + have h := closure_minimal + (fun s hs => (gerver_strict_velocity s hs).1.le : Set.Ioo (0 : ℝ) (Real.pi / 2) ⊆ _) hcl + rw [closure_Ioo hpi.ne] at h + exact h ht + +/-- The normal velocity component is nonnegative on the whole closed rotation interval; see +`paperGerverVelocityComponents_fst_nonpos` for the argument. -/ +theorem paperGerverVelocityComponents_snd_nonneg {t : ℝ} + (ht : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) : 0 ≤ (paperGerverVelocityComponents t).2 := by + have hpi : (0 : ℝ) < Real.pi / 2 := by positivity + have hcl : IsClosed {s : ℝ | 0 ≤ (paperGerverVelocityComponents s).2} := + isClosed_le continuous_const (continuous_snd.comp paperGerverContactData_properties.1) + have h := closure_minimal + (fun s hs => (gerver_strict_velocity s hs).2.1.le : Set.Ioo (0 : ℝ) (Real.pi / 2) ⊆ _) hcl + rw [closure_Ioo hpi.ne] at h + exact h ht + +theorem gerver_cap_area_lower_bound : + 2 * GerverSofa.PartB.params.a1 ≤ ClassicalResults.area gerverOuterCap ∧ + (12 : ℝ) / 5 ≤ 2 * GerverSofa.PartB.params.a1 ∧ (11 : ℝ) / 5 < 12 / 5 := by + open GerverSofa.Romik in + -- The certified direct parameter vector, its box enclosures and its equations. + obtain ⟨p, hp⟩ : ∃ p : Params, GerverSofa.PartB.params = p := ⟨_, rfl⟩ + rw [hp] + have hmem : p ∈ gerverDirectBox := hp ▸ GerverSofa.PartB.params_mem + have heqs : gerverDirectEquations p := hp ▸ GerverSofa.PartB.params_equations + obtain ⟨-, hphieq, hthetaeq, hphipos, hphitheta, hthetalt, -⟩ := + gerver_parameter_identification.1 p hmem heqs + have hphi' : p.phi = GerversSofa.φ := hphieq.trans selected_phi + have h0 : (0 : ℝ) < p.phi := by rw [hphieq]; exact hphipos + have h1 : p.phi < p.theta := by rw [hphieq, hthetaeq]; exact hphitheta + have h2 : p.theta < Real.pi / 4 := by rw [hthetaeq]; exact hthetalt + have hpi : (3 : ℝ) < Real.pi := Real.pi_gt_three + have hbox : p ∈ GerverSofa.Romik.box := hmem + dsimp only [GerverSofa.Romik.box, GerverSofa.qR, Set.mem_ofPred_eq] at hbox + obtain ⟨-, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, hk51lo, hk51hi, -, -, + ha1lo, ha1hi, -, -, -, -, -, -, -, -, -, -, -, -, -, -, + -, -, -, -, -, -, -, -⟩ := hbox + have ha1 : (6 : ℝ) / 5 ≤ p.a1 := le_trans (by norm_num) ha1lo + have ha1' : p.a1 ≤ (61 : ℝ) / 50 := le_trans ha1hi (by norm_num) + have hk51 : -(51 : ℝ) / 50 ≤ p.k51 := le_trans (by norm_num) hk51lo + have hk51' : p.k51 ≤ -1 := le_trans hk51hi (by norm_num) + have ha2 : p.a2 = -(1 / 4 : ℝ) := a2_eq_neg_quarter_of_equations heqs + have he1 : p.e1 = p.a1 := e1_eq_a1_of_equations heqs + have he2 : p.e2 = -p.a2 := e2_eq_neg_a2_of_equations heqs + have hk52 : p.k52 = (1 / 4 : ℝ) := k52_eq_quarter_of_equations heqs + -- The two path endpoints: `x(0) = 0` and `x(π/2) = (1 - a₁ + k₅₁, 0)`. + obtain ⟨-, hzero, -⟩ := gerver_direct_path_regularity p hmem heqs + have hpath0 : paperGerverPath 0 = 0 := by + change GerverSofa.PartF.Coordinates.toPlane (path GerverSofa.PartB.params 0) = 0 + rw [hp, hzero] + ext i + fin_cases i <;> rfl + have hpathT : path p (Real.pi / 2) = (1 - p.a1 + p.k51, 0) := by + rw [path_eq_path5_of_mem_Icc heqs h1 h2 ⟨by linarith, le_rfl⟩] + simp only [path5, addK, rot, Real.cos_pi_div_two, Real.sin_pi_div_two, he1, he2, ha2, hk52, + Prod.mk.injEq] + constructor <;> ring + have hxT0 : paperGerverPath (Real.pi / 2) 0 = 1 - p.a1 + p.k51 := by + change (path GerverSofa.PartB.params (Real.pi / 2)).1 = _ + rw [hp, hpathT] + have hxT1 : paperGerverPath (Real.pi / 2) 1 = 0 := by + change (path GerverSofa.PartB.params (Real.pi / 2)).2 = _ + rw [hp, hpathT] + -- The velocity components at the two endpoints. + have hvel := paperGerverContactData_properties.2.2.2 + have hI0 : gerverStageIntervals 0 = Set.Icc 0 p.phi := by + simp [gerverStageIntervals, gerverStageTimes, hphi'] + have hI4 : gerverStageIntervals 4 = Set.Icc (Real.pi / 2 - p.phi) (Real.pi / 2) := by + simp [gerverStageIntervals, gerverStageTimes, hphi'] + have halpha0 : (paperGerverVelocityComponents 0).1 = 0 := by + rw [hvel 0 0 (by rw [hI0]; exact ⟨le_rfl, h0.le⟩)] + simp [gerverBranchVelocityComponents, hp, alphaBeta1, ha2] + norm_num + have hbeta0 : (paperGerverVelocityComponents 0).2 = 2 * p.a1 - 1 := by + rw [hvel 0 0 (by rw [hI0]; exact ⟨le_rfl, h0.le⟩)] + simp [gerverBranchVelocityComponents, hp, alphaBeta1, ha2] + have halphaT : (paperGerverVelocityComponents (Real.pi / 2)).1 = 1 - 2 * p.a1 := by + rw [hvel 4 (Real.pi / 2) (by rw [hI4]; exact ⟨by linarith, le_rfl⟩)] + simp [gerverBranchVelocityComponents, hp, alphaBeta5, he1] + have hbetaT : (paperGerverVelocityComponents (Real.pi / 2)).2 = 0 := by + rw [hvel 4 (Real.pi / 2) (by rw [hI4]; exact ⟨by linarith, le_rfl⟩)] + simp [gerverBranchVelocityComponents, hp, alphaBeta5, he2, ha2] + norm_num + -- The four displayed cap contacts, in coordinates. + have hpteq : ∀ z w : Point, z 0 = w 0 → z 1 = w 1 → z = w := by + intro z w hz hw + ext i + fin_cases i + · exact hz + · exact hw + have hA0 : paperGerverContacts 0 0 = (!₂[1, 0] : Point) := by + refine hpteq _ _ ?_ ?_ <;> + simp [paperGerverContacts, normalVector, tangentVector, frame, halpha0, hpath0] + have hC0 : paperGerverContacts 0 2 = (!₂[1 - 2 * p.a1, 1] : Point) := by + refine hpteq _ _ ?_ ?_ <;> + simp [paperGerverContacts, normalVector, tangentVector, frame, hbeta0, hpath0] + have hAT : paperGerverContacts (Real.pi / 2) 0 = (!₂[p.a1 + p.k51, 1] : Point) := by + refine hpteq _ _ ?_ ?_ <;> + simp [paperGerverContacts, normalVector, tangentVector, frame, halphaT, hxT0, hxT1] + ring + have hCT : paperGerverContacts (Real.pi / 2) 2 = (!₂[p.k51 - p.a1, 0] : Point) := by + refine hpteq _ _ ?_ ?_ <;> + simp [paperGerverContacts, normalVector, tangentVector, frame, hbetaT, hxT0, hxT1] + ring + -- The cap is a convex body, so it is convex and of finite area. + obtain ⟨-, -, -, -, -, ⟨K, hKset, -⟩, -⟩ := gerver_capSupport_identification + have hconv : Convex ℝ gerverOuterCap := hKset ▸ K.val.convex' + have hcomp : IsCompact gerverOuterCap := hKset ▸ K.val.isCompact' + -- The inscribed trapezoid and its area. + have hsub := EuclideanSpace.horizontalTrapezoid_subset_of_convex hconv + (l₀ := p.k51 - p.a1) (r₀ := 1) (l₁ := 1 - 2 * p.a1) (r₁ := p.a1 + p.k51) + (hCT ▸ gerver_outer_contact_C (Real.pi / 2) ⟨by positivity, le_rfl⟩) + (hA0 ▸ gerver_outer_contact_A 0 ⟨le_rfl, by positivity⟩) + (hC0 ▸ gerver_outer_contact_C 0 ⟨le_rfl, by positivity⟩) + (hAT ▸ gerver_outer_contact_A (Real.pi / 2) ⟨by positivity, le_rfl⟩) + have hvol := EuclideanSpace.volume_horizontalTrapezoid (l₀ := p.k51 - p.a1) (r₀ := 1) + (l₁ := 1 - 2 * p.a1) (r₁ := p.a1 + p.k51) (by linarith) (by linarith) + have hkey : ENNReal.ofReal (2 * p.a1) ≤ MeasureTheory.volume gerverOuterCap := by + rw [show (2 * p.a1 : ℝ) = + (1 - (p.k51 - p.a1) + (p.a1 + p.k51 - (1 - 2 * p.a1))) / 2 by ring, ← hvol] + exact MeasureTheory.measure_mono hsub + refine ⟨?_, by linarith, by norm_num⟩ + rw [ClassicalResults.area] + exact (ENNReal.ofReal_le_iff_le_toReal hcomp.measure_lt_top.ne).1 hkey + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Polygon.BalancedContainment`. +* `Polygon.Polyline.Length.Basic`. +* `Polygon.Polyline.Length.Boundary`. +* `Polygon.Polyline.Length`. +* `Polygon.Balancing.Coefficients`. +* `Polygon.Balancing.Estimate`. +* `Polygon.Balancing`. +* `Polygon.EdgeNormals`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Balanced Containment +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Balance bounds the polyline projections by the surface-area atoms. -/ +theorem polygonCapPolyline_inner_le_of_balanced {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hK : IsBalancedPolygonCap K) + (D : Finset ℝ) (hD : (D : Set ℝ) = angleDomain Θ) (s : ℝ) + {q : Point} (hq : q ∈ (polygonCapPolyline K).carrier) : + inner ℝ q (normalVector (s : Real.Angle)) ≤ + inner ℝ ((capVertices K.val 0).1.2) (normalVector (s : Real.Angle)) + + ∑ u ∈ D, (surfaceAreaMeasure K.val.val {(u : Real.Angle)}).toReal * + max (Real.sin (s - u)) 0 := by + classical + have hp : IsCapPolyline K (polygonCapPolyline K) := (polygonCap_polyline K).choose_spec + have hmem (u : ℝ) (hu : u ∈ D) : u ∈ angleDomain Θ := by + rw [← hD] + exact hu + have hb := (polygonCapPolyline K).inner_le_endpoint_add_sum_normal_lengths D + (fun u hu ↦ angleDomain_subset_Ioo Θ (hmem u hu)) + (fun i ↦ by + obtain ⟨t, ht⟩ := hp.2.2.2.1 i + refine ⟨t.val, ?_, ht⟩ + have := t.property + simpa only [← hD, Finset.mem_coe] using this) s hq + rw [hp.2.2.1] at hb + convert hb using 2 + apply Finset.sum_congr rfl + intro u hu + have heq := hK ⟨u, hmem u hu⟩ + rw [heq, ENNReal.toReal_ofReal] + · rfl + · unfold polygonCapPolylineLength + positivity + +/-- A balanced polygon cap bounds every upper-normal projection of its polyline. -/ +theorem polygonCapPolyline_inner_le_support_of_balanced {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hK : IsBalancedPolygonCap K) + (D : Finset ℝ) (hD : (D : Set ℝ) = angleDomain Θ) + {s : ℝ} (hs : s ∈ Set.Ioo 0 Real.pi) + {q : Point} (hq : q ∈ (polygonCapPolyline K).carrier) : + inner ℝ q (normalVector (s : Real.Angle)) ≤ supportValue K.val.val (s : Real.Angle) := by + have hpoly := polygonCapPolyline_inner_le_of_balanced K hK D hD s hq + have hsum := sum_surfaceAreaMeasure_mul_pos_sin_le K.val.val D + (fun t ht ↦ angleDomain_subset_Ioo Θ (by rw [← hD]; exact ht)) hs + have hstart := inner_negativeVertex_zero_le_positiveVertex K.val.val ⟨hs.1.le, hs.2.le⟩ + change inner ℝ q (normalVector (s : Real.Angle)) ≤ + inner ℝ (edgeVertices K.val.val 0).2 (normalVector (s : Real.Angle)) + _ at hpoly + rw [real_inner_comm (normalVector (s : Real.Angle)) (edgeVertices K.val.val 0).2] at hpoly + linarith + +/-- The polyline of a balanced polygon cap lies inside the cap. -/ +theorem polygonCapPolyline_subset_of_balanced {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hK : IsBalancedPolygonCap K) : + (polygonCapPolyline K).carrier ⊆ (K.val.val : Set Point) := by + classical + let D := Θ.directions ∪ Θ.directions.image (fun t ↦ t + Real.pi / 2) ∪ + {Θ.angle, Real.pi / 2} + have hD : (D : Set ℝ) = angleDomain Θ := by + simp [D, angleDomain] + intro q hq + have hp : IsCapPolyline K (polygonCapPolyline K) := (polygonCap_polyline K).choose_spec + have hfront : q ∈ frontier (capFan Θ.angle \ polygonNiche Θ K.val) := by + rw [hp.2.2.2.2.2.1] + exact Or.inl (Or.inr hq) + have hfan : q ∈ capFan Θ.angle := by + have hmem := frontier_subset_closure hfront + rw [hp.2.2.2.2.1.closure_eq] at hmem + exact hmem.1 + rw [K.property.eq_iInter_supportValue] + simp only [Set.mem_iInter] + intro a ha + rcases ha with ⟨t, ht, rfl⟩ | ha + · exact polygonCapPolyline_inner_le_support_of_balanced K hK D hD + (angleDomain_subset_Ioo Θ ht) hq + rcases ha with rfl | rfl + · change inner ℝ q (normalVector ((Θ.angle + Real.pi : ℝ) : Real.Angle)) ≤ + supportValue K.val.val ((Θ.angle + Real.pi : ℝ) : Real.Angle) + rw [K.val.property.2.2.2.2.1, normalVector_add_pi, inner_neg_right] + exact neg_nonpos.mpr hfan.1 + · have hang : ((3 * Real.pi / 2 : ℝ) : Real.Angle) = + (((Real.pi / 2 + Real.pi : ℝ) : Real.Angle)) := by + congr 1 + ring + change inner ℝ q (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) ≤ + supportValue K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) + rw [K.val.property.2.2.2.2.2.1, hang, normalVector_add_pi, inner_neg_right] + exact neg_nonpos.mpr hfan.2 + +/-- A polygon niche lies in its cap whenever its upper boundary polyline does. -/ +theorem polygonNiche_subset_of_polyline_subset {Θ : AngleSet} + (K : PolygonCapSpace Θ) + (hpoly : (polygonCapPolyline K).carrier ⊆ (K.val.val : Set Point)) : + polygonNiche Θ K.val ⊆ (K.val.val : Set Point) := by + intro q hq + have hfan : q ∈ capFan Θ.angle := hq.1 + have hheight : q 1 < capBoundaryHeight K (q 0) := by + by_contra hn + have hmem : q ∈ capFan Θ.angle \ polygonNiche Θ K.val := by + rw [capFan_sdiff_polygonNiche_eq_epigraph K] + exact le_of_not_gt hn + exact hmem.2 hq + let r := pointOnGraph (capBoundaryHeight K) (q 0) + have hrx : r 0 = q 0 := by simp [r, pointOnGraph] + have hry : q 1 < r 1 := by simpa [r, pointOnGraph] using hheight + have hrfront : r ∈ frontier (capFan Θ.angle \ polygonNiche Θ K.val) := by + rw [(capFan_sdiff_polygonNiche_closed_frontier K).2] + exact ⟨q 0, rfl⟩ + have hp : IsCapPolyline K (polygonCapPolyline K) := (polygonCap_polyline K).choose_spec + rw [hp.2.2.2.2.2.1] at hrfront + have hrpoly : r ∈ (polygonCapPolyline K).carrier := by + rcases hrfront with (hrleft | hrpoly) | hrright + · obtain ⟨c, hc, hr⟩ := hrleft + have hrzero : inner ℝ r (normalVector (Θ.angle : Real.Angle)) = 0 := by + rw [hr, capVertices_angle_fst_eq K, inner_add_left, + real_inner_smul_left, real_inner_smul_left] + have hz : inner ℝ (tangentVector (Θ.angle : Real.Angle)) + (normalVector (Θ.angle : Real.Angle)) = 0 := by + rw [real_inner_comm (normalVector (Θ.angle : Real.Angle))] + exact inner_normalVector_tangentVector Θ.angle + rw [hz] + ring + have hqnonneg := hfan.1 + change 0 ≤ inner ℝ q (normalVector (Θ.angle : Real.Angle)) at hqnonneg + have hs : 0 < Real.sin Θ.angle := Real.sin_pos_of_pos_of_lt_pi Θ.angle_pos + (by linarith [Θ.angle_le, Real.pi_pos]) + simp [normalVector, frame, PiLp.inner_apply, hrx] at hrzero hqnonneg + exfalso + nlinarith + · exact hrpoly + · obtain ⟨c, hc, hr⟩ := hrright + have hrzero : r 1 = 0 := by + rw [hr, capVertices_zero_snd_eq K] + simp [normalVector, frame] + have hqnonneg := hfan.2 + change 0 ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at hqnonneg + simp [normalVector, frame, PiLp.inner_apply] at hqnonneg + exfalso + linarith + exact K.val.mem_of_fst_eq_of_snd_le (hpoly hrpoly) hfan hrx.symm hry.le + +/-- Every balanced polygon cap contains its polygon niche. -/ +theorem polygonNiche_subset_of_balanced {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hK : IsBalancedPolygonCap K) : + polygonNiche Θ K.val ⊆ (K.val.val : Set Point) := + polygonNiche_subset_of_polyline_subset K (polygonCapPolyline_subset_of_balanced K hK) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Polyline / Length / Basic +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Extend the directional polyline-length function by zero outside the angle domain. -/ +def polygonPolylineLengthAt {Θ : AngleSet} (K : PolygonCapSpace Θ) (t : ℝ) : ℝ := by + classical + exact if ht : t ∈ angleDomain Θ then polygonCapPolylineLength K ⟨t, ht⟩ else 0 + +/-- The one-dimensional Hausdorff measure of the niche frontier inside a specified set. -/ +def nicheBoundaryLength {Θ : AngleSet} (K : PolygonCapSpace Θ) (S : Set Point) : ℝ := + (MeasureTheory.Measure.hausdorffMeasure 1 (frontier (polygonNiche Θ K.val) ∩ S)).toReal + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Polyline / Length / Boundary +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +private lemma fst_mem_Icc_of_mem_segment_mc4d199c {a b q : Point} + (hab : a 0 ≤ b 0) (hq : q ∈ segment ℝ a b) : q 0 ∈ Set.Icc (a 0) (b 0) := by + rw [segment_eq_image'] at hq + obtain ⟨r, hr, rfl⟩ := hq + change a 0 + r * (b 0 - a 0) ∈ Set.Icc (a 0) (b 0) + constructor <;> nlinarith [hr.1, hr.2] + +private theorem frontier_inter_open_eq_frontier_sdiff_open_on_interior + {F X : Set Point} : + frontier (F ∩ X) ∩ interior F = frontier (F \ X) ∩ interior F := by + have hInt : IsOpen (interior F) := isOpen_interior + calc + frontier (F ∩ X) ∩ interior F = + frontier ((F ∩ X) ∩ interior F) ∩ interior F := + (frontier_inter_open_inter hInt).symm + _ = frontier (X ∩ interior F) ∩ interior F := by + congr 2 + ext p + simp only [Set.mem_inter_iff] + constructor + · rintro ⟨⟨-, hpX⟩, hpF⟩ + exact ⟨hpX, hpF⟩ + · rintro ⟨hpX, hpF⟩ + exact ⟨⟨interior_subset hpF, hpX⟩, hpF⟩ + _ = frontier X ∩ interior F := frontier_inter_open_inter hInt + _ = frontier Xᶜ ∩ interior F := by rw [frontier_compl] + _ = frontier (Xᶜ ∩ interior F) ∩ interior F := + (frontier_inter_open_inter hInt).symm + _ = frontier ((F \ X) ∩ interior F) ∩ interior F := by + congr 2 + ext p + simp only [Set.mem_inter_iff, Set.mem_compl_iff, Set.mem_sdiff] + constructor + · rintro ⟨hpX, hpF⟩ + exact ⟨⟨interior_subset hpF, hpX⟩, hpF⟩ + · rintro ⟨⟨-, hpX⟩, hpF⟩ + exact ⟨hpX, hpF⟩ + _ = frontier (F \ X) ∩ interior F := frontier_inter_open_inter hInt + +private theorem frontier_inter_open_symmDiff_subset_frontier + {F X : Set Point} (hF : IsClosed F) : + (frontier (F ∩ X) \ frontier (F \ X)) ∪ + (frontier (F \ X) \ frontier (F ∩ X)) ⊆ frontier F := by + have heq := frontier_inter_open_eq_frontier_sdiff_open_on_interior (F := F) (X := X) + intro p hp + by_contra hpF + have hmemF_of_left (hpN : p ∈ frontier (F ∩ X)) : p ∈ F := by + have hpcl : p ∈ closure (F ∩ X) := frontier_subset_closure hpN + exact hF.closure_eq ▸ closure_mono Set.inter_subset_left hpcl + have hmemF_of_right (hpC : p ∈ frontier (F \ X)) : p ∈ F := by + have hpcl : p ∈ closure (F \ X) := frontier_subset_closure hpC + exact hF.closure_eq ▸ closure_mono Set.sdiff_subset hpcl + rcases hp with hp | hp + · have hpInt : p ∈ interior F := by + simpa using (mem_frontier_iff_notMem_interior (hmemF_of_left hp.1)).not.mp hpF + have : p ∈ frontier (F \ X) ∩ interior F := heq ▸ ⟨hp.1, hpInt⟩ + exact hp.2 this.1 + · have hpInt : p ∈ interior F := by + simpa using (mem_frontier_iff_notMem_interior (hmemF_of_right hp.1)).not.mp hpF + have : p ∈ frontier (F ∩ X) ∩ interior F := heq.symm ▸ ⟨hp.1, hpInt⟩ + exact hp.2 this.1 + +private theorem measure_eq_of_symmDiff_subset_null + (μ : Measure Point) {A B E : Set Point} + (hsub : (A \ B) ∪ (B \ A) ⊆ E) (hE : μ E = 0) : μ A = μ B := by + apply measure_congr + rw [ae_eq_set] + constructor + · exact measure_mono_null (fun _ hp ↦ hsub (Or.inl hp)) hE + · exact measure_mono_null (fun _ hp ↦ hsub (Or.inr hp)) hE + +/-- The fan clipping the niche is closed. -/ +theorem isClosed_capFan (ω : ℝ) : IsClosed (capFan ω) := by + unfold capFan normalHalfPlane + exact (isClosed_le continuous_const (by fun_prop)).inter + (isClosed_le continuous_const (by fun_prop)) + +/-- The inward quadrant of a supporting hallway is open. -/ +theorem isOpen_innerQuadrant (S : Set Point) (t : ℝ) : + IsOpen (innerQuadrant S t) := by + unfold innerQuadrant normalHalfPlane + exact (isOpen_lt (by fun_prop) continuous_const).inter + (isOpen_lt (by fun_prop) continuous_const) + +private theorem frontier_normalHalfPlane_lower_strict_subset_normalLine + (t : Real.Angle) (h : ℝ) : + frontier (normalHalfPlane t h false true) ⊆ normalLine t h := by + change frontier {p : Point | inner ℝ p (normalVector t) < h} ⊆ + {p | inner ℝ p (normalVector t) = h} + exact frontier_lt_subset_eq (by fun_prop) continuous_const + +private theorem frontier_normalHalfPlane_upper_closed_subset_normalLine + (t : Real.Angle) (h : ℝ) : + frontier (normalHalfPlane t h true false) ⊆ normalLine t h := by + change frontier {p : Point | h ≤ inner ℝ p (normalVector t)} ⊆ + {p | inner ℝ p (normalVector t) = h} + exact frontier_ge_subset_eq continuous_const (by fun_prop) + +private def polygonCapBoundaryLines {Θ : AngleSet} (K : PolygonCapSpace Θ) : + Finset (Real.Angle × ℝ) := by + classical + exact {(((Θ.angle : ℝ) : Real.Angle), 0), + (((Real.pi / 2 : ℝ) : Real.Angle), 0)} ∪ + Θ.directions.biUnion fun t ↦ + {(((t : ℝ) : Real.Angle), supportValue K.val.val (t : Real.Angle) - 1), + (((t + Real.pi / 2 : ℝ) : Real.Angle), + supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1)} + +private theorem frontier_capFan_subset_boundaryLines {Θ : AngleSet} + (K : PolygonCapSpace Θ) : + frontier (capFan Θ.angle) ⊆ + ⋃ l ∈ polygonCapBoundaryLines K, normalLine l.1 l.2 := by + intro p hp + have hp' := frontier_inter_subset + (normalHalfPlane (Θ.angle : Real.Angle) 0 true false) + (normalHalfPlane ((Real.pi / 2 : ℝ) : Real.Angle) 0 true false) hp + rcases hp' with hp' | hp' + · have hline := frontier_normalHalfPlane_upper_closed_subset_normalLine + (Θ.angle : Real.Angle) 0 hp'.1 + apply Set.mem_iUnion₂.mpr + exact ⟨(((Θ.angle : ℝ) : Real.Angle), 0), by simp [polygonCapBoundaryLines], hline⟩ + · have hline := frontier_normalHalfPlane_upper_closed_subset_normalLine + ((Real.pi / 2 : ℝ) : Real.Angle) 0 hp'.2 + apply Set.mem_iUnion₂.mpr + exact ⟨(((Real.pi / 2 : ℝ) : Real.Angle), 0), + by simp [polygonCapBoundaryLines], hline⟩ + +private theorem frontier_innerQuadrant_subset_boundaryLines {Θ : AngleSet} + (K : PolygonCapSpace Θ) {t : ℝ} (ht : t ∈ Θ.directions) : + frontier (innerQuadrant K.val.val t) ⊆ + ⋃ l ∈ polygonCapBoundaryLines K, normalLine l.1 l.2 := by + classical + intro p hp + have hp' := frontier_inter_subset + (normalHalfPlane (t : Real.Angle) (supportValue K.val.val (t : Real.Angle) - 1) + false true) + (normalHalfPlane ((t + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) false true) hp + rcases hp' with hp' | hp' + · have hline := frontier_normalHalfPlane_lower_strict_subset_normalLine + (t : Real.Angle) (supportValue K.val.val (t : Real.Angle) - 1) hp'.1 + apply Set.mem_iUnion₂.mpr + refine ⟨(((t : ℝ) : Real.Angle), supportValue K.val.val (t : Real.Angle) - 1), + ?_, hline⟩ + simp only [polygonCapBoundaryLines, Finset.mem_union] + right + exact Finset.mem_biUnion.mpr ⟨t, ht, by simp⟩ + · have hline := frontier_normalHalfPlane_lower_strict_subset_normalLine + ((t + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) hp'.2 + apply Set.mem_iUnion₂.mpr + refine ⟨(((t + Real.pi / 2 : ℝ) : Real.Angle), + supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1), ?_, hline⟩ + simp only [polygonCapBoundaryLines, Finset.mem_union] + right + exact Finset.mem_biUnion.mpr ⟨t, ht, by simp⟩ + +private theorem frontier_polygonComplement_subset_boundaryLines {Θ : AngleSet} + (K : PolygonCapSpace Θ) : + frontier (capFan Θ.angle \ polygonNiche Θ K.val) ⊆ + ⋃ l ∈ polygonCapBoundaryLines K, normalLine l.1 l.2 := by + let X : Set Point := ⋃ t ∈ Θ.directions, innerQuadrant K.val.val t + have hset : capFan Θ.angle \ polygonNiche Θ K.val = capFan Θ.angle \ X := by + simp [polygonNiche, X] + rw [hset, Set.sdiff_eq] + intro p hp + have hp' := frontier_inter_subset (capFan Θ.angle) Xᶜ hp + rcases hp' with hp | hp + · exact frontier_capFan_subset_boundaryLines K hp.1 + · have hpX : p ∈ frontier X := by simpa [frontier_compl] using hp.2 + have hmem := Finset.frontier_biUnion_subset Θ.directions + (fun t ↦ innerQuadrant K.val.val t) hpX + obtain ⟨t, ht, hpt⟩ := Set.mem_iUnion₂.mp hmem + exact frontier_innerQuadrant_subset_boundaryLines K ht hpt + +private theorem real_eq_of_normal_orthogonal_of_mem_Ioo_zero_pi + {v : Point} (hv : v ≠ 0) {s t : ℝ} + (hs : s ∈ Set.Ioo 0 Real.pi) (ht : t ∈ Set.Ioo 0 Real.pi) + (hvs : inner ℝ v (normalVector (s : Real.Angle)) = 0) + (hvt : inner ℝ v (normalVector (t : Real.Angle)) = 0) : s = t := by + apply eq_of_inner_sub_normalVector_eq_zero_of_ne (a := 0) (b := v) hs ht hv.symm + · simpa using hvs + · simpa using hvt + +private theorem normalLine_inter_normalLine_subsingleton {s t c d : ℝ} + (hs : s ∈ Set.Ioo 0 Real.pi) (ht : t ∈ Set.Ioo 0 Real.pi) (hst : s ≠ t) : + (normalLine (s : Real.Angle) c ∩ normalLine (t : Real.Angle) d).Subsingleton := by + intro p hp q hq + by_contra hpq + have hv : p - q ≠ 0 := sub_ne_zero.mpr hpq + have hsorth : inner ℝ (p - q) (normalVector (s : Real.Angle)) = 0 := by + have hps : inner ℝ p (normalVector (s : Real.Angle)) = c := hp.1 + have hqs : inner ℝ q (normalVector (s : Real.Angle)) = c := hq.1 + rw [inner_sub_left, hps, hqs, sub_self] + have htorth : inner ℝ (p - q) (normalVector (t : Real.Angle)) = 0 := by + have hpt : inner ℝ p (normalVector (t : Real.Angle)) = d := hp.2 + have hqt : inner ℝ q (normalVector (t : Real.Angle)) = d := hq.2 + rw [inner_sub_left, hpt, hqt, sub_self] + exact hst (real_eq_of_normal_orthogonal_of_mem_Ioo_zero_pi hv hs ht hsorth htorth) + +private theorem hausdorffMeasure_normalLine_inter_normalLine_eq_zero {s t c d : ℝ} + (hs : s ∈ Set.Ioo 0 Real.pi) (ht : t ∈ Set.Ioo 0 Real.pi) (hst : s ≠ t) : + Measure.hausdorffMeasure 1 + (normalLine (s : Real.Angle) c ∩ normalLine (t : Real.Angle) d) = 0 := by + have := Measure.nullSingletonClass_hausdorff Point (by norm_num : (0 : ℝ) < 1) + exact (normalLine_inter_normalLine_subsingleton hs ht hst).countable.measure_zero _ + +private theorem openRay_inter_hyperplane_subsingleton {p v n : Point} {c : ℝ} + (hvn : inner ℝ v n ≠ 0) : + (openRay p v ∩ {q | inner ℝ q n = c}).Subsingleton := by + rintro x ⟨⟨r, hr, rfl⟩, hxr⟩ y ⟨⟨s, hs, rfl⟩, hyr⟩ + have hrs : r * inner ℝ v n = s * inner ℝ v n := by + simp only [Set.mem_ofPred_eq, inner_add_left, real_inner_smul_left] at hxr hyr + linarith + rw [mul_right_cancel₀ hvn hrs] + +private theorem hausdorffMeasure_openRay_inter_hyperplane_eq_zero {p v n : Point} {c : ℝ} + (hvn : inner ℝ v n ≠ 0) : + Measure.hausdorffMeasure 1 (openRay p v ∩ {q | inner ℝ q n = c}) = 0 := by + have := Measure.nullSingletonClass_hausdorff Point (by norm_num : (0 : ℝ) < 1) + exact (openRay_inter_hyperplane_subsingleton hvn).countable.measure_zero _ + +private theorem hausdorffMeasure_frontier_capFan_inter_normalLine_eq_zero + {ω t c : ℝ} (hω : ω ∈ Set.Ioo 0 Real.pi) (ht : t ∈ Set.Ioo 0 Real.pi) + (htω : t ≠ ω) (htT : t ≠ Real.pi / 2) : + Measure.hausdorffMeasure 1 + (frontier (capFan ω) ∩ normalLine (t : Real.Angle) c) = 0 := by + apply measure_mono_null (t := + (normalLine (ω : Real.Angle) 0 ∩ normalLine (t : Real.Angle) c) ∪ + (normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0 ∩ + normalLine (t : Real.Angle) c)) + · rintro p ⟨hp, hpt⟩ + have hp' := frontier_inter_subset + (normalHalfPlane (ω : Real.Angle) 0 true false) + (normalHalfPlane ((Real.pi / 2 : ℝ) : Real.Angle) 0 true false) hp + rcases hp' with hp' | hp' + · exact Or.inl ⟨frontier_normalHalfPlane_upper_closed_subset_normalLine _ _ hp'.1, hpt⟩ + · exact Or.inr ⟨frontier_normalHalfPlane_upper_closed_subset_normalLine _ _ hp'.2, hpt⟩ + · rw [measure_union_null] + · exact hausdorffMeasure_normalLine_inter_normalLine_eq_zero hω ht htω.symm + · exact hausdorffMeasure_normalLine_inter_normalLine_eq_zero + ⟨by positivity, by linarith [Real.pi_pos]⟩ ht htT.symm + +private theorem frontier_capFan_inter_normalLine_countable + {ω t c : ℝ} (hω : ω ∈ Set.Ioo 0 Real.pi) (ht : t ∈ Set.Ioo 0 Real.pi) + (htω : t ≠ ω) (htT : t ≠ Real.pi / 2) : + (frontier (capFan ω) ∩ normalLine (t : Real.Angle) c).Countable := by + refine ((normalLine_inter_normalLine_subsingleton hω ht htω.symm + (c := 0) (d := c)).countable.union + (normalLine_inter_normalLine_subsingleton + (s := Real.pi / 2) (t := t) (c := 0) (d := c) + ⟨by positivity, by linarith [Real.pi_pos]⟩ ht htT.symm).countable).mono ?_ + rintro p ⟨hp, hpt⟩ + have hp' := frontier_inter_subset + (normalHalfPlane (ω : Real.Angle) 0 true false) + (normalHalfPlane ((Real.pi / 2 : ℝ) : Real.Angle) 0 true false) hp + rcases hp' with hp' | hp' + · exact Or.inl ⟨frontier_normalHalfPlane_upper_closed_subset_normalLine _ _ hp'.1, hpt⟩ + · exact Or.inr ⟨frontier_normalHalfPlane_upper_closed_subset_normalLine _ _ hp'.2, hpt⟩ + +private theorem hausdorffMeasure_frontier_polygonNiche_inter_normalLine_eq_complement + {Θ : AngleSet} (K : PolygonCapSpace Θ) {t c : ℝ} + (ht : t ∈ Set.Ioo 0 Real.pi) (htω : t ≠ Θ.angle) + (htT : t ≠ Real.pi / 2) : + Measure.hausdorffMeasure 1 + (frontier (polygonNiche Θ K.val) ∩ normalLine (t : Real.Angle) c) = + Measure.hausdorffMeasure 1 + (frontier (capFan Θ.angle \ polygonNiche Θ K.val) ∩ + normalLine (t : Real.Angle) c) := by + let X : Set Point := ⋃ s ∈ Θ.directions, innerQuadrant K.val.val s + have hN : polygonNiche Θ K.val = capFan Θ.angle ∩ X := by simp [polygonNiche, X] + have hC : capFan Θ.angle \ polygonNiche Θ K.val = capFan Θ.angle \ X := by + simp [polygonNiche, X] + rw [hC, hN] + apply measure_eq_of_symmDiff_subset_null (E := + frontier (capFan Θ.angle) ∩ normalLine (t : Real.Angle) c) + · intro p hp + rcases hp with hp | hp + · refine ⟨frontier_inter_open_symmDiff_subset_frontier + (isClosed_capFan Θ.angle) (Or.inl ⟨hp.1.1, ?_⟩), hp.1.2⟩ + intro hpC + exact hp.2 ⟨hpC, hp.1.2⟩ + · refine ⟨frontier_inter_open_symmDiff_subset_frontier + (isClosed_capFan Θ.angle) (Or.inr ⟨hp.1.1, ?_⟩), hp.1.2⟩ + intro hpN + exact hp.2 ⟨hpN, hp.1.2⟩ + · exact hausdorffMeasure_frontier_capFan_inter_normalLine_eq_zero + ⟨Θ.angle_pos, Θ.angle_le.trans_lt (by linarith [Real.pi_pos])⟩ ht htω htT + +private theorem hausdorffMeasure_frontier_polygonComplement_inter_normalLine_eq_carrier + {Θ : AngleSet} (K : PolygonCapSpace Θ) {t c : ℝ} + (hleft : inner ℝ (tangentVector (Θ.angle : Real.Angle)) + (normalVector (t : Real.Angle)) ≠ 0) + (hright : inner ℝ (normalVector 0) (normalVector (t : Real.Angle)) ≠ 0) : + Measure.hausdorffMeasure 1 + (frontier (capFan Θ.angle \ polygonNiche Θ K.val) ∩ + normalLine (t : Real.Angle) c) = + Measure.hausdorffMeasure 1 + ((polygonCapPolyline K).carrier ∩ normalLine (t : Real.Angle) c) := by + let p := polygonCapPolyline K + have hp : IsCapPolyline K p := (polygonCap_polyline K).choose_spec + let L := openRay ((capVertices K.val Θ.angle).2.1) + (tangentVector (Θ.angle : Real.Angle)) + let R := openRay ((capVertices K.val 0).1.2) (normalVector 0) + have hnullL : Measure.hausdorffMeasure 1 + (L ∩ normalLine (t : Real.Angle) c) = 0 := by + exact hausdorffMeasure_openRay_inter_hyperplane_eq_zero hleft + have hnullR : Measure.hausdorffMeasure 1 + (R ∩ normalLine (t : Real.Angle) c) = 0 := by + exact hausdorffMeasure_openRay_inter_hyperplane_eq_zero hright + apply measure_eq_of_symmDiff_subset_null + (E := (L ∩ normalLine (t : Real.Angle) c) ∪ + (R ∩ normalLine (t : Real.Angle) c)) + · intro q hq + rcases hq with hq | hq + · rw [hp.2.2.2.2.2.1] at hq + rcases hq.1.1 with hL | hR + · rcases hL with hL | hcarrier + · exact Or.inl ⟨hL, hq.1.2⟩ + · exact False.elim (hq.2 ⟨hcarrier, hq.1.2⟩) + · exact Or.inr ⟨hR, hq.1.2⟩ + · exact False.elim (hq.2 ⟨by + rw [hp.2.2.2.2.2.1] + exact Or.inl (Or.inr hq.1.1), hq.1.2⟩) + · rw [measure_union_null hnullL hnullR] + +private theorem edge_direction_ne_zero (p : XMonotonePolylineData) + (i : Fin p.edges) : p.vertices i.succ - p.vertices i.castSucc ≠ 0 := by + rw [sub_ne_zero] + intro h + have hcoord := congrArg (fun q : Point ↦ q 0) h + exact (ne_of_gt (p.increasing i.castSucc_lt_succ)) hcoord + +private theorem IsCapPolyline.edge_subset_boundaryLine {Θ : AngleSet} + {K : PolygonCapSpace Θ} {p : XMonotonePolylineData} + (hp : IsCapPolyline K p) (i : Fin p.edges) : + ∃ l ∈ polygonCapBoundaryLines K, + segment ℝ (p.vertices i.castSucc) (p.vertices i.succ) ⊆ + normalLine l.1 l.2 := by + classical + simpa only [normalLine] using EuclideanGeometry.exists_segment_subset_hyperplane_of_finite_cover + (I := polygonCapBoundaryLines K) (n := fun l ↦ normalVector l.1) (c := Prod.snd) + (a := p.vertices i.castSucc) (b := p.vertices i.succ) + (sub_ne_zero.mp (edge_direction_ne_zero p i)).symm (by + intro q hq + have hcarrier : q ∈ p.carrier := by + rw [XMonotonePolylineData.carrier] + exact Set.mem_iUnion.mpr ⟨i, hq⟩ + have hfrontier : q ∈ frontier (capFan Θ.angle \ polygonNiche Θ K.val) := by + rw [hp.2.2.2.2.2.1] + exact Or.inl (Or.inr hcarrier) + exact frontier_polygonComplement_subset_boundaryLines K hfrontier) + +private theorem IsCapPolyline.edge_subset_bLine_of_orthogonal {Θ : AngleSet} + {K : PolygonCapSpace Θ} {p : XMonotonePolylineData} + (hp : IsCapPolyline K p) {t : ℝ} (ht : t ∈ Θ.directions) + (i : Fin p.edges) + (hi : inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (t : Real.Angle)) = 0) : + segment ℝ (p.vertices i.castSucc) (p.vertices i.succ) ⊆ + normalLine (t : Real.Angle) (supportValue K.val.val (t : Real.Angle) - 1) := by + classical + obtain ⟨l, hl, hline⟩ := hp.edge_subset_boundaryLine i + have hleft := hline (left_mem_segment ℝ _ _) + have hright := hline (right_mem_segment ℝ _ _) + have hlorth : inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector l.1) = 0 := by + change inner ℝ (p.vertices i.castSucc) (normalVector l.1) = l.2 at hleft + change inner ℝ (p.vertices i.succ) (normalVector l.1) = l.2 at hright + rw [inner_sub_left, hright, hleft, sub_self] + have htI : t ∈ Set.Ioo 0 Real.pi := + ⟨(Θ.interior t ht).1, + ((Θ.interior t ht).2.trans_le Θ.angle_le).trans (by linarith [Real.pi_pos])⟩ + simp only [polygonCapBoundaryLines, Finset.mem_union] at hl + rcases hl with hl | hl + · simp only [Finset.mem_insert, Finset.mem_singleton] at hl + rcases hl with rfl | rfl + · have heq := real_eq_of_normal_orthogonal_of_mem_Ioo_zero_pi + (edge_direction_ne_zero p i) + ⟨Θ.angle_pos, Θ.angle_le.trans_lt (by linarith [Real.pi_pos])⟩ htI hlorth hi + linarith [(Θ.interior t ht).2] + · have heq := real_eq_of_normal_orthogonal_of_mem_Ioo_zero_pi + (edge_direction_ne_zero p i) + ⟨by positivity, by linarith [Real.pi_pos]⟩ htI hlorth hi + linarith [(Θ.interior t ht).2, Θ.angle_le] + · obtain ⟨s, hs, hsl⟩ := Finset.mem_biUnion.mp hl + simp only [Finset.mem_insert, Finset.mem_singleton] at hsl + rcases hsl with rfl | rfl + · have heq := real_eq_of_normal_orthogonal_of_mem_Ioo_zero_pi + (edge_direction_ne_zero p i) + ⟨(Θ.interior s hs).1, + ((Θ.interior s hs).2.trans_le Θ.angle_le).trans + (by linarith [Real.pi_pos])⟩ htI hlorth hi + simpa [heq] using hline + · have hsI : s + Real.pi / 2 ∈ Set.Ioo 0 Real.pi := by + constructor + · linarith [(Θ.interior s hs).1, Real.pi_pos] + · linarith [(Θ.interior s hs).2, Θ.angle_le] + have heq := real_eq_of_normal_orthogonal_of_mem_Ioo_zero_pi + (edge_direction_ne_zero p i) hsI htI hlorth hi + linarith [(Θ.interior t ht).2, Θ.angle_le, (Θ.interior s hs).1, Real.pi_pos] + +private theorem IsCapPolyline.edge_subset_dLine_of_orthogonal {Θ : AngleSet} + {K : PolygonCapSpace Θ} {p : XMonotonePolylineData} + (hp : IsCapPolyline K p) {t : ℝ} (ht : t ∈ Θ.directions) + (i : Fin p.edges) + (hi : inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) = 0) : + segment ℝ (p.vertices i.castSucc) (p.vertices i.succ) ⊆ + normalLine ((t + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) := by + classical + obtain ⟨l, hl, hline⟩ := hp.edge_subset_boundaryLine i + have hleft := hline (left_mem_segment ℝ _ _) + have hright := hline (right_mem_segment ℝ _ _) + have hlorth : inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector l.1) = 0 := by + change inner ℝ (p.vertices i.castSucc) (normalVector l.1) = l.2 at hleft + change inner ℝ (p.vertices i.succ) (normalVector l.1) = l.2 at hright + rw [inner_sub_left, hright, hleft, sub_self] + have htI : t + Real.pi / 2 ∈ Set.Ioo 0 Real.pi := by + constructor + · linarith [(Θ.interior t ht).1, Real.pi_pos] + · linarith [(Θ.interior t ht).2, Θ.angle_le] + simp only [polygonCapBoundaryLines, Finset.mem_union] at hl + rcases hl with hl | hl + · simp only [Finset.mem_insert, Finset.mem_singleton] at hl + rcases hl with rfl | rfl + · have heq := real_eq_of_normal_orthogonal_of_mem_Ioo_zero_pi + (edge_direction_ne_zero p i) + ⟨Θ.angle_pos, Θ.angle_le.trans_lt (by linarith [Real.pi_pos])⟩ htI hlorth hi + linarith [(Θ.interior t ht).1, Θ.angle_le, Real.pi_pos] + · have heq := real_eq_of_normal_orthogonal_of_mem_Ioo_zero_pi + (edge_direction_ne_zero p i) + ⟨by positivity, by linarith [Real.pi_pos]⟩ htI hlorth hi + linarith [(Θ.interior t ht).1] + · obtain ⟨s, hs, hsl⟩ := Finset.mem_biUnion.mp hl + simp only [Finset.mem_insert, Finset.mem_singleton] at hsl + rcases hsl with rfl | rfl + · have hsI : s ∈ Set.Ioo 0 Real.pi := + ⟨(Θ.interior s hs).1, + ((Θ.interior s hs).2.trans_le Θ.angle_le).trans + (by linarith [Real.pi_pos])⟩ + have heq := real_eq_of_normal_orthogonal_of_mem_Ioo_zero_pi + (edge_direction_ne_zero p i) hsI htI hlorth hi + linarith [(Θ.interior s hs).2, (Θ.interior t ht).1, Θ.angle_le] + · have hsI : s + Real.pi / 2 ∈ Set.Ioo 0 Real.pi := by + constructor + · linarith [(Θ.interior s hs).1, Real.pi_pos] + · linarith [(Θ.interior s hs).2, Θ.angle_le] + have heq := real_eq_of_normal_orthogonal_of_mem_Ioo_zero_pi + (edge_direction_ne_zero p i) hsI htI hlorth hi + have hst : s = t := by linarith + simpa [hst] using hline + +private theorem polygonCapPolyline_spec {Θ : AngleSet} (K : PolygonCapSpace Θ) : + IsCapPolyline K (polygonCapPolyline K) := by + exact (polygonCap_polyline K).choose_spec + +private theorem polygonCapPolyline_bLine_length {Θ : AngleSet} + (K : PolygonCapSpace Θ) {t : ℝ} (ht : t ∈ Θ.directions) : + (Measure.hausdorffMeasure 1 + ((polygonCapPolyline K).carrier ∩ + normalLine (t : Real.Angle) (supportValue K.val.val (t : Real.Angle) - 1))).toReal = + polygonPolylineLengthAt K t := by + let p := polygonCapPolyline K + have hp : IsCapPolyline K p := polygonCapPolyline_spec K + have hmeasure := p.toReal_hausdorffMeasure_carrier_inter_hyperplane + (normalVector (t : Real.Angle)) (supportValue K.val.val (t : Real.Angle) - 1) + (fun i hi ↦ hp.edge_subset_bLine_of_orthogonal ht i hi) + have htDomain : t ∈ angleDomain Θ := by + exact Or.inl (Or.inl ht) + rw [show normalLine (t : Real.Angle) + (supportValue K.val.val (t : Real.Angle) - 1) = + {q | inner ℝ q (normalVector (t : Real.Angle)) = + supportValue K.val.val (t : Real.Angle) - 1} by rfl, + hmeasure] + simp [polygonPolylineLengthAt, htDomain, polygonCapPolylineLength, p] + +private theorem polygonCapPolyline_dLine_length {Θ : AngleSet} + (K : PolygonCapSpace Θ) {t : ℝ} (ht : t ∈ Θ.directions) : + (Measure.hausdorffMeasure 1 + ((polygonCapPolyline K).carrier ∩ + normalLine ((t + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1))).toReal = + polygonPolylineLengthAt K (t + Real.pi / 2) := by + let p := polygonCapPolyline K + have hp : IsCapPolyline K p := polygonCapPolyline_spec K + have hmeasure := p.toReal_hausdorffMeasure_carrier_inter_hyperplane + (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) + (supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) + (fun i hi ↦ hp.edge_subset_dLine_of_orthogonal ht i hi) + have htDomain : t + Real.pi / 2 ∈ angleDomain Θ := by + exact Or.inl (Or.inr ⟨t, ht, rfl⟩) + rw [show normalLine ((t + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) = + {q | inner ℝ q (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1} by rfl, + hmeasure] + simp [polygonPolylineLengthAt, htDomain, polygonCapPolylineLength, p] + +private theorem tangentVector_angle_inner_normalVector_direction_ne_zero + {Θ : AngleSet} {t : ℝ} (ht : t ∈ Θ.directions) : + inner ℝ (tangentVector (Θ.angle : Real.Angle)) + (normalVector (t : Real.Angle)) ≠ 0 := by + have hsin : 0 < Real.sin (Θ.angle - t) := Real.sin_pos_of_pos_of_lt_pi + (by linarith [(Θ.interior t ht).2]) + (by linarith [(Θ.interior t ht).1, Θ.angle_le, Real.pi_pos]) + have h := sin_sub_eq_neg_inner_normalVector_tangentVector + (t : Real.Angle) (Θ.angle : Real.Angle) + change Real.sin (Θ.angle - t) = + -inner ℝ (normalVector (t : Real.Angle)) + (tangentVector (Θ.angle : Real.Angle)) at h + rw [real_inner_comm] + linarith + +private theorem tangentVector_angle_inner_normalVector_direction_add_ne_zero + {Θ : AngleSet} {t : ℝ} (ht : t ∈ Θ.directions) : + inner ℝ (tangentVector (Θ.angle : Real.Angle)) + (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) ≠ 0 := by + have hneg : -Real.pi < Θ.angle - (t + Real.pi / 2) := by + linarith [(Θ.interior t ht).2, Real.pi_pos] + have hzero : Θ.angle - (t + Real.pi / 2) < 0 := by + linarith [(Θ.interior t ht).1, Θ.angle_le] + have hsin : Real.sin (Θ.angle - (t + Real.pi / 2)) < 0 := + Real.sin_neg_of_neg_of_neg_pi_lt hzero hneg + have h := sin_sub_eq_neg_inner_normalVector_tangentVector + ((t + Real.pi / 2 : ℝ) : Real.Angle) (Θ.angle : Real.Angle) + change Real.sin (Θ.angle - (t + Real.pi / 2)) = + -inner ℝ (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) + (tangentVector (Θ.angle : Real.Angle)) at h + rw [real_inner_comm] + linarith + +private theorem normalVector_zero_inner_normalVector_direction_ne_zero + {Θ : AngleSet} {t : ℝ} (ht : t ∈ Θ.directions) : + inner ℝ (normalVector 0) (normalVector (t : Real.Angle)) ≠ 0 := by + rw [show (0 : Real.Angle) = ((0 : ℝ) : Real.Angle) by rfl, + inner_normalVector_normalVector] + have hcos : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, (Θ.interior t ht).1], + (Θ.interior t ht).2.trans_le Θ.angle_le⟩ + simpa [Real.cos_neg] using hcos.ne' + +private theorem normalVector_zero_inner_normalVector_direction_add_ne_zero + {Θ : AngleSet} {t : ℝ} (ht : t ∈ Θ.directions) : + inner ℝ (normalVector 0) + (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) ≠ 0 := by + rw [show (0 : Real.Angle) = ((0 : ℝ) : Real.Angle) by rfl, + inner_normalVector_normalVector] + have hsin : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi + (Θ.interior t ht).1 + (by linarith [(Θ.interior t ht).2, Θ.angle_le, Real.pi_pos]) + rw [show 0 - (t + Real.pi / 2) = -(t + Real.pi / 2) by ring, + Real.cos_neg, Real.cos_add_pi_div_two] + exact neg_ne_zero.mpr hsin.ne' + +private theorem polygonNiche_bLine_length {Θ : AngleSet} + (K : PolygonCapSpace Θ) {t : ℝ} (ht : t ∈ Θ.directions) : + (Measure.hausdorffMeasure 1 + (frontier (polygonNiche Θ K.val) ∩ + normalLine (t : Real.Angle) (supportValue K.val.val (t : Real.Angle) - 1))).toReal = + polygonPolylineLengthAt K t := by + have htI : t ∈ Set.Ioo 0 Real.pi := + ⟨(Θ.interior t ht).1, + ((Θ.interior t ht).2.trans_le Θ.angle_le).trans (by linarith [Real.pi_pos])⟩ + rw [hausdorffMeasure_frontier_polygonNiche_inter_normalLine_eq_complement K htI + (ne_of_lt (Θ.interior t ht).2) (ne_of_lt + ((Θ.interior t ht).2.trans_le Θ.angle_le)), + hausdorffMeasure_frontier_polygonComplement_inter_normalLine_eq_carrier K + (tangentVector_angle_inner_normalVector_direction_ne_zero ht) + (normalVector_zero_inner_normalVector_direction_ne_zero ht)] + exact polygonCapPolyline_bLine_length K ht + +private theorem polygonNiche_dLine_length {Θ : AngleSet} + (K : PolygonCapSpace Θ) {t : ℝ} (ht : t ∈ Θ.directions) : + (Measure.hausdorffMeasure 1 + (frontier (polygonNiche Θ K.val) ∩ + normalLine ((t + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1))).toReal = + polygonPolylineLengthAt K (t + Real.pi / 2) := by + have htI : t + Real.pi / 2 ∈ Set.Ioo 0 Real.pi := by + constructor + · linarith [(Θ.interior t ht).1, Real.pi_pos] + · linarith [(Θ.interior t ht).2, Θ.angle_le] + rw [hausdorffMeasure_frontier_polygonNiche_inter_normalLine_eq_complement K htI + (by linarith [(Θ.interior t ht).1, Θ.angle_le, Real.pi_pos]) + (by linarith [(Θ.interior t ht).1]), + hausdorffMeasure_frontier_polygonComplement_inter_normalLine_eq_carrier K + (tangentVector_angle_inner_normalVector_direction_add_ne_zero ht) + (normalVector_zero_inner_normalVector_direction_add_ne_zero ht)] + exact polygonCapPolyline_dLine_length K ht + +private theorem frontier_innerQuadrant_inter_bLine_subset_bRay + (s : Set Point) (t : ℝ) : + frontier (innerQuadrant s t) ∩ + normalLine (t : Real.Angle) (supportValue s (t : Real.Angle) - 1) ⊆ + (rotatingHallwayParts s (t : Real.Angle)).bRay := by + intro p hp + rw [mem_rotatingHallwayParts_bRay_iff] + refine ⟨hp.2, ?_⟩ + apply closure_minimal (t := {q | inner ℝ q (tangentVector (t : Real.Angle)) ≤ + supportValue s ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1}) + (fun q hq ↦ ?_) (isClosed_le (by fun_prop) continuous_const) + (frontier_subset_closure hp.1) + change q ∈ innerQuadrant s t at hq + have h := hq.2 + change inner ℝ q (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < + supportValue s ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 at h + rw [show ((t + Real.pi / 2 : ℝ) : Real.Angle) = + (t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) by rfl, + normalVector_add_pi_div_two] at h + exact h.le + +private theorem frontier_innerQuadrant_inter_dLine_subset_dRay + (s : Set Point) (t : ℝ) : + frontier (innerQuadrant s t) ∩ + normalLine ((t + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue s ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) ⊆ + (rotatingHallwayParts s (t : Real.Angle)).dRay := by + intro p hp + rw [mem_rotatingHallwayParts_dRay_iff] + refine ⟨?_, ?_⟩ + · apply closure_minimal (t := {q | inner ℝ q (normalVector (t : Real.Angle)) ≤ + supportValue s (t : Real.Angle) - 1}) + (fun q hq ↦ ?_) (isClosed_le (by fun_prop) continuous_const) + (frontier_subset_closure hp.1) + change q ∈ innerQuadrant s t at hq + have h := hq.1 + change inner ℝ q (normalVector (t : Real.Angle)) < + supportValue s (t : Real.Angle) - 1 at h + exact h.le + · have hline := hp.2 + change inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue s ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 at hline + rw [show ((t + Real.pi / 2 : ℝ) : Real.Angle) = + (t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) by rfl, + normalVector_add_pi_div_two] at hline + exact hline + +private theorem frontier_innerQuadrant_inter_bLine_countable_of_ne + {Θ : AngleSet} (K : PolygonCapSpace Θ) {s t : ℝ} + (hs : s ∈ Θ.directions) (ht : t ∈ Θ.directions) (hst : s ≠ t) : + (frontier (innerQuadrant K.val.val s) ∩ + normalLine (t : Real.Angle) (supportValue K.val.val (t : Real.Angle) - 1)).Countable := by + have hsI : s ∈ Set.Ioo 0 Real.pi := + ⟨(Θ.interior s hs).1, + ((Θ.interior s hs).2.trans_le Θ.angle_le).trans (by linarith [Real.pi_pos])⟩ + have htI : t ∈ Set.Ioo 0 Real.pi := + ⟨(Θ.interior t ht).1, + ((Θ.interior t ht).2.trans_le Θ.angle_le).trans (by linarith [Real.pi_pos])⟩ + have hsTI : s + Real.pi / 2 ∈ Set.Ioo 0 Real.pi := by + constructor + · linarith [(Θ.interior s hs).1, Real.pi_pos] + · linarith [(Θ.interior s hs).2, Θ.angle_le] + have hfirst := normalLine_inter_normalLine_subsingleton hsI htI hst + (c := supportValue K.val.val (s : Real.Angle) - 1) + (d := supportValue K.val.val (t : Real.Angle) - 1) + have hsecond := normalLine_inter_normalLine_subsingleton hsTI htI + (by linarith [(Θ.interior s hs).1, (Θ.interior t ht).2, Θ.angle_le]) + (c := supportValue K.val.val ((s + Real.pi / 2 : ℝ) : Real.Angle) - 1) + (d := supportValue K.val.val (t : Real.Angle) - 1) + refine (hfirst.countable.union hsecond.countable).mono ?_ + rintro p ⟨hp, hpt⟩ + have hp' := frontier_inter_subset + (normalHalfPlane (s : Real.Angle) (supportValue K.val.val (s : Real.Angle) - 1) + false true) + (normalHalfPlane ((s + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue K.val.val ((s + Real.pi / 2 : ℝ) : Real.Angle) - 1) false true) hp + rcases hp' with hp' | hp' + · exact Or.inl + ⟨frontier_normalHalfPlane_lower_strict_subset_normalLine _ _ hp'.1, hpt⟩ + · exact Or.inr + ⟨frontier_normalHalfPlane_lower_strict_subset_normalLine _ _ hp'.2, hpt⟩ + +private theorem frontier_innerQuadrant_inter_dLine_countable_of_ne + {Θ : AngleSet} (K : PolygonCapSpace Θ) {s t : ℝ} + (hs : s ∈ Θ.directions) (ht : t ∈ Θ.directions) (hst : s ≠ t) : + (frontier (innerQuadrant K.val.val s) ∩ + normalLine ((t + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1)).Countable := by + have hsI : s ∈ Set.Ioo 0 Real.pi := + ⟨(Θ.interior s hs).1, + ((Θ.interior s hs).2.trans_le Θ.angle_le).trans (by linarith [Real.pi_pos])⟩ + have hsTI : s + Real.pi / 2 ∈ Set.Ioo 0 Real.pi := by + constructor + · linarith [(Θ.interior s hs).1, Real.pi_pos] + · linarith [(Θ.interior s hs).2, Θ.angle_le] + have htTI : t + Real.pi / 2 ∈ Set.Ioo 0 Real.pi := by + constructor + · linarith [(Θ.interior t ht).1, Real.pi_pos] + · linarith [(Θ.interior t ht).2, Θ.angle_le] + have hfirst := normalLine_inter_normalLine_subsingleton hsI htTI + (by linarith [(Θ.interior s hs).2, (Θ.interior t ht).1, Θ.angle_le]) + (c := supportValue K.val.val (s : Real.Angle) - 1) + (d := supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) + have hsecond := normalLine_inter_normalLine_subsingleton hsTI htTI + (by + intro h + apply hst + linarith) + (c := supportValue K.val.val ((s + Real.pi / 2 : ℝ) : Real.Angle) - 1) + (d := supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) + refine (hfirst.countable.union hsecond.countable).mono ?_ + rintro p ⟨hp, hpt⟩ + have hp' := frontier_inter_subset + (normalHalfPlane (s : Real.Angle) (supportValue K.val.val (s : Real.Angle) - 1) + false true) + (normalHalfPlane ((s + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue K.val.val ((s + Real.pi / 2 : ℝ) : Real.Angle) - 1) false true) hp + rcases hp' with hp' | hp' + · exact Or.inl + ⟨frontier_normalHalfPlane_lower_strict_subset_normalLine _ _ hp'.1, hpt⟩ + · exact Or.inr + ⟨frontier_normalHalfPlane_lower_strict_subset_normalLine _ _ hp'.2, hpt⟩ + +private theorem frontier_polygonNiche_bLine_sdiff_bRay_countable + {Θ : AngleSet} (K : PolygonCapSpace Θ) {t : ℝ} (ht : t ∈ Θ.directions) : + ((frontier (polygonNiche Θ K.val) ∩ + normalLine (t : Real.Angle) (supportValue K.val.val (t : Real.Angle) - 1)) \ + (rotatingHallwayParts (K.val.val : Set Point) (t : Real.Angle)).bRay).Countable := by + let L := normalLine (t : Real.Angle) (supportValue K.val.val (t : Real.Angle) - 1) + let R := (rotatingHallwayParts (K.val.val : Set Point) (t : Real.Angle)).bRay + let X : Set Point := ⋃ s ∈ Θ.directions, innerQuadrant K.val.val s + let E : Θ.directions → Set Point := fun s ↦ + (frontier (innerQuadrant K.val.val s) ∩ L) \ R + have htI : t ∈ Set.Ioo 0 Real.pi := + ⟨(Θ.interior t ht).1, + ((Θ.interior t ht).2.trans_le Θ.angle_le).trans (by linarith [Real.pi_pos])⟩ + have hfan : (frontier (capFan Θ.angle) ∩ L).Countable := + frontier_capFan_inter_normalLine_countable + ⟨Θ.angle_pos, Θ.angle_le.trans_lt (by linarith [Real.pi_pos])⟩ htI + (ne_of_lt (Θ.interior t ht).2) + (ne_of_lt ((Θ.interior t ht).2.trans_le Θ.angle_le)) + have hE (s : Θ.directions) : (E s).Countable := by + by_cases hst : (s : ℝ) = t + · apply Set.countable_empty.mono + intro p hp + exfalso + apply hp.2 + apply frontier_innerQuadrant_inter_bLine_subset_bRay + (s := (K.val.val : Set Point)) (t := t) + simpa [E, L, R, hst] using hp.1 + · exact (frontier_innerQuadrant_inter_bLine_countable_of_ne K s.property ht hst).mono + (by intro p hp; exact hp.1) + refine (hfan.union (Set.countable_iUnion hE)).mono ?_ + intro p hp + have hp' : p ∈ frontier (capFan Θ.angle ∩ X) := by + simpa [polygonNiche, X] using hp.1.1 + rcases frontier_inter_subset (capFan Θ.angle) X hp' with hpF | hpX + · exact Or.inl ⟨hpF.1, hp.1.2⟩ + · right + have hmem := Finset.frontier_biUnion_subset Θ.directions + (fun s ↦ innerQuadrant K.val.val s) hpX.2 + obtain ⟨s, hs, hps⟩ := Set.mem_iUnion₂.mp hmem + exact Set.mem_iUnion.mpr ⟨⟨s, hs⟩, ⟨⟨hps, hp.1.2⟩, hp.2⟩⟩ + +private theorem frontier_polygonNiche_dLine_sdiff_dRay_countable + {Θ : AngleSet} (K : PolygonCapSpace Θ) {t : ℝ} (ht : t ∈ Θ.directions) : + ((frontier (polygonNiche Θ K.val) ∩ + normalLine ((t + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1)) \ + (rotatingHallwayParts (K.val.val : Set Point) (t : Real.Angle)).dRay).Countable := by + let L := normalLine ((t + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) + let R := (rotatingHallwayParts (K.val.val : Set Point) (t : Real.Angle)).dRay + let X : Set Point := ⋃ s ∈ Θ.directions, innerQuadrant K.val.val s + let E : Θ.directions → Set Point := fun s ↦ + (frontier (innerQuadrant K.val.val s) ∩ L) \ R + have htI : t + Real.pi / 2 ∈ Set.Ioo 0 Real.pi := by + constructor + · linarith [(Θ.interior t ht).1, Real.pi_pos] + · linarith [(Θ.interior t ht).2, Θ.angle_le] + have hfan : (frontier (capFan Θ.angle) ∩ L).Countable := + frontier_capFan_inter_normalLine_countable + ⟨Θ.angle_pos, Θ.angle_le.trans_lt (by linarith [Real.pi_pos])⟩ htI + (by linarith [(Θ.interior t ht).1, Θ.angle_le, Real.pi_pos]) + (by linarith [(Θ.interior t ht).1]) + have hE (s : Θ.directions) : (E s).Countable := by + by_cases hst : (s : ℝ) = t + · apply Set.countable_empty.mono + intro p hp + exfalso + apply hp.2 + apply frontier_innerQuadrant_inter_dLine_subset_dRay + (s := (K.val.val : Set Point)) (t := t) + simpa [E, L, R, hst] using hp.1 + · exact (frontier_innerQuadrant_inter_dLine_countable_of_ne K s.property ht hst).mono + (by intro p hp; exact hp.1) + refine (hfan.union (Set.countable_iUnion hE)).mono ?_ + intro p hp + have hp' : p ∈ frontier (capFan Θ.angle ∩ X) := by + simpa [polygonNiche, X] using hp.1.1 + rcases frontier_inter_subset (capFan Θ.angle) X hp' with hpF | hpX + · exact Or.inl ⟨hpF.1, hp.1.2⟩ + · right + have hmem := Finset.frontier_biUnion_subset Θ.directions + (fun s ↦ innerQuadrant K.val.val s) hpX.2 + obtain ⟨s, hs, hps⟩ := Set.mem_iUnion₂.mp hmem + exact Set.mem_iUnion.mpr ⟨⟨s, hs⟩, ⟨⟨hps, hp.1.2⟩, hp.2⟩⟩ + +private theorem rotatingHallwayParts_bRay_subset_bLine + (s : Set Point) (t : ℝ) : + (rotatingHallwayParts s (t : Real.Angle)).bRay ⊆ + normalLine (t : Real.Angle) (supportValue s (t : Real.Angle) - 1) := by + intro p hp + exact (mem_rotatingHallwayParts_bRay_iff s (t : Real.Angle) p).mp hp |>.1 + +private theorem rotatingHallwayParts_dRay_subset_dLine + (s : Set Point) (t : ℝ) : + (rotatingHallwayParts s (t : Real.Angle)).dRay ⊆ + normalLine ((t + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue s ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) := by + intro p hp + have h := (mem_rotatingHallwayParts_dRay_iff s (t : Real.Angle) p).mp hp |>.2 + change inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue s ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 + rw [show ((t + Real.pi / 2 : ℝ) : Real.Angle) = + (t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) by rfl, + normalVector_add_pi_div_two] + exact h + +private theorem polygonNiche_bRay_length {Θ : AngleSet} + (K : PolygonCapSpace Θ) {t : ℝ} (ht : t ∈ Θ.directions) : + (Measure.hausdorffMeasure 1 + (frontier (polygonNiche Θ K.val) ∩ + (rotatingHallwayParts (K.val.val : Set Point) (t : Real.Angle)).bRay)).toReal = + polygonPolylineLengthAt K t := by + let L := normalLine (t : Real.Angle) (supportValue K.val.val (t : Real.Angle) - 1) + let R := (rotatingHallwayParts (K.val.val : Set Point) (t : Real.Angle)).bRay + have hRL : R ⊆ L := rotatingHallwayParts_bRay_subset_bLine K.val.val t + have hmeasure : Measure.hausdorffMeasure 1 + (frontier (polygonNiche Θ K.val) ∩ L) = + Measure.hausdorffMeasure 1 (frontier (polygonNiche Θ K.val) ∩ R) := by + apply measure_eq_of_symmDiff_subset_null (E := + (frontier (polygonNiche Θ K.val) ∩ L) \ R) + · intro p hp + rcases hp with hp | hp + · exact ⟨hp.1, fun hpR ↦ hp.2 ⟨hp.1.1, hpR⟩⟩ + · exfalso + exact hp.2 ⟨hp.1.1, hRL hp.1.2⟩ + · have := Measure.nullSingletonClass_hausdorff Point (by norm_num : (0 : ℝ) < 1) + exact (frontier_polygonNiche_bLine_sdiff_bRay_countable K ht).measure_zero _ + rw [← hmeasure] + exact polygonNiche_bLine_length K ht + +private theorem polygonNiche_dRay_length {Θ : AngleSet} + (K : PolygonCapSpace Θ) {t : ℝ} (ht : t ∈ Θ.directions) : + (Measure.hausdorffMeasure 1 + (frontier (polygonNiche Θ K.val) ∩ + (rotatingHallwayParts (K.val.val : Set Point) (t : Real.Angle)).dRay)).toReal = + polygonPolylineLengthAt K (t + Real.pi / 2) := by + let L := normalLine ((t + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) + let R := (rotatingHallwayParts (K.val.val : Set Point) (t : Real.Angle)).dRay + have hRL : R ⊆ L := rotatingHallwayParts_dRay_subset_dLine K.val.val t + have hmeasure : Measure.hausdorffMeasure 1 + (frontier (polygonNiche Θ K.val) ∩ L) = + Measure.hausdorffMeasure 1 (frontier (polygonNiche Θ K.val) ∩ R) := by + apply measure_eq_of_symmDiff_subset_null (E := + (frontier (polygonNiche Θ K.val) ∩ L) \ R) + · intro p hp + rcases hp with hp | hp + · exact ⟨hp.1, fun hpR ↦ hp.2 ⟨hp.1.1, hpR⟩⟩ + · exfalso + exact hp.2 ⟨hp.1.1, hRL hp.1.2⟩ + · have := Measure.nullSingletonClass_hausdorff Point (by norm_num : (0 : ℝ) < 1) + exact (frontier_polygonNiche_dLine_sdiff_dRay_countable K ht).measure_zero _ + rw [← hmeasure] + exact polygonNiche_dLine_length K ht + +private theorem exposedEdge_bottom_eq_segment_zero_right {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hω : Θ.angle < Real.pi / 2) : + exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) = + segment ℝ 0 (capVertices K.val 0).1.2 := by + let A := (capVertices K.val 0).1.2 + have hAeq := capVertices_zero_snd_eq K + change A = supportValue K.val.val (0 : Real.Angle) • + normalVector (0 : Real.Angle) at hAeq + have htangent : tangentVector ((3 * Real.pi / 2 : ℝ) : Real.Angle) = + normalVector (0 : Real.Angle) := by + ext i + fin_cases i <;> + simp [tangentVector, normalVector, frame, + show 3 * Real.pi / 2 = Real.pi + Real.pi / 2 by ring, + Real.sin_add, Real.cos_add, -Real.Angle.coe_add] + have hAK : A ∈ (K.val.val : Set Point) := by + rw [hAeq] + exact supportValue_zero_smul_normalVector_mem K.val + have hAedge : A ∈ exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + refine ⟨hAK, ?_⟩ + change inner ℝ A (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) + rw [K.val.property.2.2.2.2.2.1, hAeq, inner_normalVector_three_pi_div_two] + simp [normalVector, frame] + have h0edge : (0 : Point) ∈ + exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + refine ⟨zero_mem_cap_of_lt K.val hω, ?_⟩ + change inner ℝ (0 : Point) (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) + rw [K.val.property.2.2.2.2.2.1] + simp + have hfst : (edgeVertices K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle)).1 = A := by + apply edgeVertices_fst_eq_of_tangent_isGreatest K.val.val _ hAedge + intro q hq + have hqx := inner_le_supportValue K.val.val hq.1 (0 : Real.Angle) + have hA := (edgeVertices_snd_mem K.val.val (0 : Real.Angle)).2 + change inner ℝ A (normalVector (0 : Real.Angle)) = + supportValue K.val.val (0 : Real.Angle) at hA + rw [htangent] + exact hqx.trans_eq hA.symm + have hsnd : (edgeVertices K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle)).2 = 0 := by + apply edgeVertices_snd_eq_of_tangent_isLeast K.val.val _ h0edge + intro q hq + have hfan := K.val.subset_capFan hq.1 + have hqy : q 1 = 0 := by + have h := hq.2 + change inner ℝ q (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) at h + rw [K.val.property.2.2.2.2.2.1] at h + simpa only [inner_normalVector_three_pi_div_two, neg_eq_zero] using h + have hcos : 0 < Real.cos Θ.angle := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Θ.angle_pos, Real.pi_pos], hω⟩ + have hqx : 0 ≤ q 0 := by + have h := hfan.1 + change 0 ≤ inner ℝ q (normalVector (Θ.angle : Real.Angle)) at h + simp only [normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, PiLp.inner_apply, + RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, + Matrix.cons_val_zero, Matrix.cons_val_one, Matrix.cons_val_fin_one, hqy, mul_zero, + add_zero] at h + exact nonneg_of_mul_nonneg_left (by simpa [mul_comm] using h) hcos + rw [htangent] + simpa [normalVector, frame, PiLp.inner_apply] using hqx + rw [exposedEdge_eq_segment_edgeVertices, hfst, hsnd] + +private theorem exposedEdge_left_eq_segment_zero_left {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hω : Θ.angle < Real.pi / 2) : + exposedEdge K.val.val ((Θ.angle + Real.pi : ℝ) : Real.Angle) = + segment ℝ 0 (capVertices K.val Θ.angle).2.1 := by + let C := (capVertices K.val Θ.angle).2.1 + let L := supportValue K.val.val ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) + have hCeq := capVertices_angle_fst_eq K + change C = L • tangentVector (Θ.angle : Real.Angle) at hCeq + have hnormal : normalVector ((Θ.angle + Real.pi : ℝ) : Real.Angle) = + -normalVector (Θ.angle : Real.Angle) := normalVector_add_pi Θ.angle + have htangent : tangentVector ((Θ.angle + Real.pi : ℝ) : Real.Angle) = + -tangentVector (Θ.angle : Real.Angle) := by + ext i + fin_cases i <;> + simp [tangentVector, frame, Real.sin_add, Real.cos_add, -Real.Angle.coe_add] + have hCK : C ∈ (K.val.val : Set Point) := by + rw [hCeq] + exact supportValue_add_pi_div_two_smul_tangentVector_mem_of_lt K.val hω + have hCedge : C ∈ exposedEdge K.val.val + ((Θ.angle + Real.pi : ℝ) : Real.Angle) := by + refine ⟨hCK, ?_⟩ + change inner ℝ C (normalVector ((Θ.angle + Real.pi : ℝ) : Real.Angle)) = + supportValue K.val.val ((Θ.angle + Real.pi : ℝ) : Real.Angle) + rw [K.val.property.2.2.2.2.1, hnormal, hCeq, inner_neg_right, + real_inner_smul_left, real_inner_comm, inner_normalVector_tangentVector] + simp + have h0edge : (0 : Point) ∈ + exposedEdge K.val.val ((Θ.angle + Real.pi : ℝ) : Real.Angle) := by + refine ⟨zero_mem_cap_of_lt K.val hω, ?_⟩ + change inner ℝ (0 : Point) (normalVector ((Θ.angle + Real.pi : ℝ) : Real.Angle)) = + supportValue K.val.val ((Θ.angle + Real.pi : ℝ) : Real.Angle) + rw [K.val.property.2.2.2.2.1] + simp + have hfst : (edgeVertices K.val.val + ((Θ.angle + Real.pi : ℝ) : Real.Angle)).1 = 0 := by + apply edgeVertices_fst_eq_of_tangent_isGreatest K.val.val _ h0edge + intro q hq + have hfan := K.val.subset_capFan hq.1 + have hqn : inner ℝ q (normalVector (Θ.angle : Real.Angle)) = 0 := by + have h := hq.2 + change inner ℝ q (normalVector ((Θ.angle + Real.pi : ℝ) : Real.Angle)) = + supportValue K.val.val ((Θ.angle + Real.pi : ℝ) : Real.Angle) at h + rw [K.val.property.2.2.2.2.1, hnormal, inner_neg_right] at h + linarith + let μ := inner ℝ q (tangentVector (Θ.angle : Real.Angle)) + have hqeq : μ • tangentVector (Θ.angle : Real.Angle) = q := by + have hframe := inner_normalVector_smul_add_inner_tangentVector_smul + q (Θ.angle : Real.Angle) + rw [hqn, zero_smul, zero_add] at hframe + exact hframe + have hμ : 0 ≤ μ := by + have hqy := hfan.2 + change 0 ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at hqy + have hcoord := congrArg (fun p : Point ↦ p 1) hqeq + change μ * Real.cos Θ.angle = q 1 at hcoord + have hqy' : 0 ≤ q 1 := by + simpa [normalVector, frame, PiLp.inner_apply] using hqy + rw [← hcoord] at hqy' + exact nonneg_of_mul_nonneg_left hqy' (Real.cos_pos_of_mem_Ioo + ⟨by linarith [Θ.angle_pos, Real.pi_pos], hω⟩) + rw [htangent, inner_neg_right] + simpa using neg_nonpos.mpr hμ + have hsnd : (edgeVertices K.val.val + ((Θ.angle + Real.pi : ℝ) : Real.Angle)).2 = C := by + apply edgeVertices_snd_eq_of_tangent_isLeast K.val.val _ hCedge + intro q hq + have hqL := inner_le_supportValue K.val.val hq.1 + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) + rw [show ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) = + (Θ.angle : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) by rfl, + normalVector_add_pi_div_two] at hqL + change inner ℝ q (tangentVector (Θ.angle : Real.Angle)) ≤ L at hqL + rw [htangent, hCeq, inner_neg_right, inner_neg_right, real_inner_smul_left, + inner_tangentVector_self] + linarith + rw [exposedEdge_eq_segment_edgeVertices, hfst, hsnd, segment_symm] + +private theorem exposedEdge_bottom_eq_segment_left_right {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hω : Θ.angle = Real.pi / 2) : + exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) = + segment ℝ (capVertices K.val Θ.angle).2.1 (capVertices K.val 0).1.2 := by + let A := (capVertices K.val 0).1.2 + let C := (capVertices K.val Θ.angle).2.1 + have hAeq := capVertices_zero_snd_eq K + change A = supportValue K.val.val (0 : Real.Angle) • + normalVector (0 : Real.Angle) at hAeq + have hCeq := capVertices_angle_fst_eq K + change C = supportValue K.val.val ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) • + tangentVector (Θ.angle : Real.Angle) at hCeq + have htangent : tangentVector ((3 * Real.pi / 2 : ℝ) : Real.Angle) = + normalVector (0 : Real.Angle) := by + ext i + fin_cases i <;> + simp [tangentVector, normalVector, frame, + show 3 * Real.pi / 2 = Real.pi + Real.pi / 2 by ring, + Real.sin_add, Real.cos_add, -Real.Angle.coe_add] + have hAK : A ∈ (K.val.val : Set Point) := by + rw [hAeq] + exact supportValue_zero_smul_normalVector_mem K.val + have hCK : C ∈ (K.val.val : Set Point) := by + exact (edgeVertices_fst_mem K.val.val + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle)).1 + have hAedge : A ∈ exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + refine ⟨hAK, ?_⟩ + change inner ℝ A (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) + rw [K.val.property.2.2.2.2.2.1, hAeq, inner_normalVector_three_pi_div_two] + simp [normalVector, frame] + have hCedge : C ∈ exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + refine ⟨hCK, ?_⟩ + change inner ℝ C (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) + rw [K.val.property.2.2.2.2.2.1, hCeq, inner_normalVector_three_pi_div_two] + simp [hω, tangentVector, frame] + have hfst : (edgeVertices K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle)).1 = A := by + apply edgeVertices_fst_eq_of_tangent_isGreatest K.val.val _ hAedge + intro q hq + have hqx := inner_le_supportValue K.val.val hq.1 (0 : Real.Angle) + have hA := (edgeVertices_snd_mem K.val.val (0 : Real.Angle)).2 + change inner ℝ A (normalVector (0 : Real.Angle)) = + supportValue K.val.val (0 : Real.Angle) at hA + rw [htangent] + exact hqx.trans_eq hA.symm + have hsnd : (edgeVertices K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle)).2 = C := by + apply edgeVertices_snd_eq_of_tangent_isLeast K.val.val _ hCedge + intro q hq + have hqx := inner_le_supportValue K.val.val hq.1 (Real.pi : Real.Angle) + have hC := (edgeVertices_fst_mem K.val.val + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle)).2 + change inner ℝ C + (normalVector ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue K.val.val ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) at hC + have hang : ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) = + (Real.pi : Real.Angle) := by + congr 1 + rw [hω] + ring + rw [hang] at hC + rw [htangent] + simpa [normalVector, frame, PiLp.inner_apply] using hqx.trans_eq hC.symm + rw [exposedEdge_eq_segment_edgeVertices, hfst, hsnd] + +private theorem XMonotonePolylineData.carrier_fst_mem_Icc + (p : XMonotonePolylineData) {q : Point} (hq : q ∈ p.carrier) : + q 0 ∈ Set.Icc ((p.vertices 0) 0) ((p.vertices (Fin.last p.edges)) 0) := by + rw [XMonotonePolylineData.carrier] at hq + obtain ⟨i, hqi⟩ := Set.mem_iUnion.mp hq + have hi := fst_mem_Icc_of_mem_segment_mc4d199c (p.increasing i.castSucc_lt_succ).le hqi + exact ⟨(p.increasing.monotone (Fin.zero_le i.castSucc)).trans hi.1, + hi.2.trans (p.increasing.monotone (Fin.le_last i.succ))⟩ + +private theorem mem_segment_of_fst_mem_Icc_of_mem_normalLine + {a b q : Point} {t c : ℝ} (hab : a 0 < b 0) + (ht : t ∈ Set.Ioo 0 Real.pi) + (ha : a ∈ normalLine (t : Real.Angle) c) + (hb : b ∈ normalLine (t : Real.Angle) c) + (hq : q ∈ normalLine (t : Real.Angle) c) + (hx : q 0 ∈ Set.Icc (a 0) (b 0)) : q ∈ segment ℝ a b := by + let r := (q 0 - a 0) / (b 0 - a 0) + have hden : 0 < b 0 - a 0 := sub_pos.mpr hab + have hr : r ∈ Set.Icc (0 : ℝ) 1 := by + constructor + · exact div_nonneg (sub_nonneg.mpr hx.1) hden.le + · exact (div_le_one hden).2 (by linarith [hx.2]) + rw [segment_eq_image'] + refine ⟨r, hr, ?_⟩ + change a + r • (b - a) = q + have hxcoord : (a + r • (b - a)) 0 = q 0 := by + dsimp [r] + field_simp + ring + have hline : a + r • (b - a) ∈ normalLine (t : Real.Angle) c := by + change inner ℝ (a + r • (b - a)) (normalVector (t : Real.Angle)) = c + change inner ℝ a (normalVector (t : Real.Angle)) = c at ha + change inner ℝ b (normalVector (t : Real.Angle)) = c at hb + rw [inner_add_left, real_inner_smul_left, inner_sub_left, ha, hb, sub_self, + mul_zero, add_zero] + ext i + fin_cases i + · exact hxcoord + · change (a + r • (b - a)) 1 = q 1 + change inner ℝ (a + r • (b - a)) (normalVector (t : Real.Angle)) = c at hline + change inner ℝ q (normalVector (t : Real.Angle)) = c at hq + simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] at hline hq + simp only [PiLp.add_apply, PiLp.smul_apply, PiLp.sub_apply, smul_eq_mul] at hxcoord ⊢ + apply mul_left_cancel₀ (Real.sin_pos_of_pos_of_lt_pi ht.1 ht.2).ne' + linear_combination hline - hq - Real.cos t * hxcoord + +private theorem eq_of_fst_eq_of_mem_normalLine {p q : Point} {t c : ℝ} + (ht : t ∈ Set.Ioo 0 Real.pi) + (hp : p ∈ normalLine (t : Real.Angle) c) + (hq : q ∈ normalLine (t : Real.Angle) c) (hx : p 0 = q 0) : p = q := by + ext i + fin_cases i + · exact hx + · change p 1 = q 1 + change inner ℝ p (normalVector (t : Real.Angle)) = c at hp + change inner ℝ q (normalVector (t : Real.Angle)) = c at hq + simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] at hp hq + apply mul_left_cancel₀ (Real.sin_pos_of_pos_of_lt_pi ht.1 ht.2).ne' + linear_combination hp - hq - Real.cos t * hx + +private theorem polygonCapPolyline_carrier_inter_bottom_subset_exposedEdge_of_lt + {Θ : AngleSet} (K : PolygonCapSpace Θ) (hω : Θ.angle < Real.pi / 2) : + (polygonCapPolyline K).carrier ∩ + normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0 ⊆ + exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + let p := polygonCapPolyline K + let A := (capVertices K.val 0).1.2 + let C := (capVertices K.val Θ.angle).2.1 + have hp : IsCapPolyline K p := polygonCapPolyline_spec K + have hAeq := capVertices_zero_snd_eq K + change A = supportValue K.val.val (0 : Real.Angle) • + normalVector (0 : Real.Angle) at hAeq + have hCeq := capVertices_angle_fst_eq K + change C = supportValue K.val.val ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) • + tangentVector (Θ.angle : Real.Angle) at hCeq + have hL : 0 ≤ supportValue K.val.val + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) := + supportValue_nonneg_of_mem_capUpperAngles K.val hω + (Or.inr ⟨by linarith [Θ.angle_pos, Real.pi_pos], le_rfl⟩) + have hC0 : C 0 ≤ 0 := by + rw [hCeq] + simp [tangentVector, frame] + simpa only [Real.Angle.coe_add] using mul_nonneg hL + (Real.sin_nonneg_of_nonneg_of_le_pi Θ.angle_pos.le + (Θ.angle_le.trans (by linarith [Real.pi_pos]))) + have hA0support : 0 < supportValue K.val.val (0 : Real.Angle) := by + obtain ⟨u, huK, hu⟩ := exists_mem_inner_eq_supportValue K.val.val + (Θ.angle : Real.Angle) + have huy : u 1 ≤ 1 := by + have huy' := inner_le_supportValue K.val.val huK + ((Real.pi / 2 : ℝ) : Real.Angle) + rw [K.val.property.2.2.2.1] at huy' + simpa [normalVector, frame, PiLp.inner_apply] using huy' + rw [K.val.property.2.2.1] at hu + have hcos : 0 < Real.cos Θ.angle := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Θ.angle_pos, Real.pi_pos], hω⟩ + have hsin_lt : Real.sin Θ.angle < 1 := by + nlinarith only [Real.sin_sq_add_cos_sq Θ.angle, sq_pos_of_pos hcos] + have hux : 0 < u 0 := by + simp [normalVector, frame, PiLp.inner_apply] at hu + have hsin : 0 ≤ Real.sin Θ.angle := + (Real.sin_pos_of_pos_of_lt_pi Θ.angle_pos + (Θ.angle_le.trans_lt (by linarith [Real.pi_pos]))).le + have hmul := mul_le_mul_of_nonneg_left huy hsin + nlinarith + exact hux.trans_le (by + have := inner_le_supportValue K.val.val huK (0 : Real.Angle) + simpa [normalVector, frame, PiLp.inner_apply] using this) + have hA0 : 0 < A 0 := by + rw [hAeq] + simpa [normalVector, frame] using hA0support + intro q hq + rw [exposedEdge_bottom_eq_segment_zero_right K hω] + apply mem_segment_of_fst_mem_Icc_of_mem_normalLine hA0 + (t := Real.pi / 2) (c := 0) + ⟨by positivity, by linarith [Real.pi_pos]⟩ + · simp [normalLine, normalVector, frame, PiLp.inner_apply] + · change inner ℝ (capVertices K.val 0).1.2 + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 + rw [capVertices_zero_snd_eq K] + simp [normalVector, frame, PiLp.inner_apply] + · exact hq.2 + · have hxbounds := p.carrier_fst_mem_Icc hq.1 + rw [hp.2.1, hp.2.2.1] at hxbounds + refine ⟨?_, hxbounds.2⟩ + have hfront : q ∈ frontier (capFan Θ.angle \ polygonNiche Θ K.val) := by + rw [hp.2.2.2.2.2.1] + exact Or.inl (Or.inr hq.1) + have hclosed : IsClosed (capFan Θ.angle \ polygonNiche Θ K.val) := hp.2.2.2.2.1 + have hfan : q ∈ capFan Θ.angle := + (hclosed.closure_eq ▸ frontier_subset_closure hfront).1 + have hqy : q 1 = 0 := by + have h := hq.2 + change inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 at h + simpa [normalVector, frame, PiLp.inner_apply] using h + have hcos : 0 < Real.cos Θ.angle := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Θ.angle_pos, Real.pi_pos], hω⟩ + have h := hfan.1 + change 0 ≤ inner ℝ q (normalVector (Θ.angle : Real.Angle)) at h + simp only [normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, PiLp.inner_apply, + RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, + Matrix.cons_val_zero, Matrix.cons_val_one, Matrix.cons_val_fin_one, hqy, mul_zero, + add_zero] at h + exact nonneg_of_mul_nonneg_left (by simpa [mul_comm] using h) hcos + +private theorem polygonCapPolyline_carrier_inter_left_subset_exposedEdge_of_lt + {Θ : AngleSet} (K : PolygonCapSpace Θ) (hω : Θ.angle < Real.pi / 2) : + (polygonCapPolyline K).carrier ∩ normalLine (Θ.angle : Real.Angle) 0 ⊆ + exposedEdge K.val.val ((Θ.angle + Real.pi : ℝ) : Real.Angle) := by + let p := polygonCapPolyline K + let C := (capVertices K.val Θ.angle).2.1 + have hp : IsCapPolyline K p := polygonCapPolyline_spec K + have hCeq := capVertices_angle_fst_eq K + change C = supportValue K.val.val ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) • + tangentVector (Θ.angle : Real.Angle) at hCeq + have hL : 0 ≤ supportValue K.val.val + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) := + supportValue_nonneg_of_mem_capUpperAngles K.val hω + (Or.inr ⟨by linarith [Θ.angle_pos, Real.pi_pos], le_rfl⟩) + have hC0 : C 0 ≤ 0 := by + rw [hCeq] + simp [tangentVector, frame] + simpa only [Real.Angle.coe_add] using mul_nonneg hL + (Real.sin_nonneg_of_nonneg_of_le_pi Θ.angle_pos.le + (Θ.angle_le.trans (by linarith [Real.pi_pos]))) + intro q hq + rw [exposedEdge_left_eq_segment_zero_left K hω, segment_symm] + have hfront : q ∈ frontier (capFan Θ.angle \ polygonNiche Θ K.val) := by + rw [hp.2.2.2.2.2.1] + exact Or.inl (Or.inr hq.1) + have hclosed : IsClosed (capFan Θ.angle \ polygonNiche Θ K.val) := hp.2.2.2.2.1 + have hfan : q ∈ capFan Θ.angle := + (hclosed.closure_eq ▸ frontier_subset_closure hfront).1 + have hxbounds := p.carrier_fst_mem_Icc hq.1 + rw [hp.2.1, hp.2.2.1] at hxbounds + have hq0 : q 0 ≤ 0 := by + have hline := hq.2 + change inner ℝ q (normalVector (Θ.angle : Real.Angle)) = 0 at hline + have hqy := hfan.2 + change 0 ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at hqy + have hqy' : 0 ≤ q 1 := by + simpa [normalVector, frame, PiLp.inner_apply] using hqy + simp [normalVector, frame, PiLp.inner_apply] at hline + have hcos : 0 < Real.cos Θ.angle := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Θ.angle_pos, Real.pi_pos], hω⟩ + have hsin : 0 < Real.sin Θ.angle := Real.sin_pos_of_pos_of_lt_pi Θ.angle_pos + (by linarith [Θ.angle_le, Real.pi_pos]) + nlinarith + have hCline : C ∈ normalLine (Θ.angle : Real.Angle) 0 := by + change inner ℝ C (normalVector (Θ.angle : Real.Angle)) = 0 + rw [hCeq, real_inner_smul_left, real_inner_comm, inner_normalVector_tangentVector] + simp + have h0line : (0 : Point) ∈ normalLine (Θ.angle : Real.Angle) 0 := by + simp [normalLine] + by_cases hCstrict : C 0 < 0 + · exact mem_segment_of_fst_mem_Icc_of_mem_normalLine hCstrict + ⟨Θ.angle_pos, Θ.angle_le.trans_lt (by linarith [Real.pi_pos])⟩ + hCline h0line hq.2 ⟨hxbounds.1, hq0⟩ + · have hCzero : C 0 = 0 := le_antisymm hC0 (le_of_not_gt hCstrict) + have hqzero : q 0 = C 0 := by linarith [hxbounds.1, hq0] + have hqC := eq_of_fst_eq_of_mem_normalLine + ⟨Θ.angle_pos, Θ.angle_le.trans_lt (by linarith [Real.pi_pos])⟩ + hq.2 hCline hqzero + rw [hqC] + exact left_mem_segment ℝ C 0 + +private theorem polygonCapPolyline_carrier_inter_bottom_subset_exposedEdge_of_eq + {Θ : AngleSet} (K : PolygonCapSpace Θ) (hω : Θ.angle = Real.pi / 2) : + (polygonCapPolyline K).carrier ∩ + normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0 ⊆ + exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + let p := polygonCapPolyline K + let A := (capVertices K.val 0).1.2 + let C := (capVertices K.val Θ.angle).2.1 + have hp : IsCapPolyline K p := polygonCapPolyline_spec K + have hAeq := capVertices_zero_snd_eq K + change A = supportValue K.val.val (0 : Real.Angle) • + normalVector (0 : Real.Angle) at hAeq + have hCeq := capVertices_angle_fst_eq K + change C = supportValue K.val.val ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) • + tangentVector (Θ.angle : Real.Angle) at hCeq + intro q hq + rw [exposedEdge_bottom_eq_segment_left_right K hω] + apply mem_segment_of_fst_mem_Icc_of_mem_normalLine (polygonCap_left_x_lt_right_x K) + (t := Real.pi / 2) (c := 0) + ⟨by positivity, by linarith [Real.pi_pos]⟩ + · change inner ℝ C (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 + rw [hCeq] + simp [hω, tangentVector, normalVector, frame, PiLp.inner_apply] + · change inner ℝ A (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 + rw [hAeq] + simp [normalVector, frame, PiLp.inner_apply] + · exact hq.2 + · have hxbounds := p.carrier_fst_mem_Icc hq.1 + simpa [hp.2.1, hp.2.2.1] using hxbounds + +private theorem IsCapPolyline.edge_subset_fanLine_of_orthogonal + {Θ : AngleSet} {K : PolygonCapSpace Θ} {p : XMonotonePolylineData} + (hp : IsCapPolyline K p) {t : ℝ} (ht : t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) + (i : Fin p.edges) + (hi : inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (t : Real.Angle)) = 0) : + segment ℝ (p.vertices i.castSucc) (p.vertices i.succ) ⊆ + normalLine (t : Real.Angle) 0 := by + classical + obtain ⟨l, hl, hline⟩ := hp.edge_subset_boundaryLine i + have hleft := hline (left_mem_segment ℝ _ _) + have hright := hline (right_mem_segment ℝ _ _) + have hlorth : inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector l.1) = 0 := by + change inner ℝ (p.vertices i.castSucc) (normalVector l.1) = l.2 at hleft + change inner ℝ (p.vertices i.succ) (normalVector l.1) = l.2 at hright + rw [inner_sub_left, hright, hleft, sub_self] + have hωI : Θ.angle ∈ Set.Ioo 0 Real.pi := + ⟨Θ.angle_pos, Θ.angle_le.trans_lt (by linarith [Real.pi_pos])⟩ + have hTI : Real.pi / 2 ∈ Set.Ioo 0 Real.pi := + ⟨by positivity, by linarith [Real.pi_pos]⟩ + rcases Set.mem_insert_iff.mp ht with rfl | ht + · simp only [polygonCapBoundaryLines, Finset.mem_union] at hl + rcases hl with hl | hl + · simp only [Finset.mem_insert, Finset.mem_singleton] at hl + rcases hl with rfl | rfl + · exact hline + · have heq := real_eq_of_normal_orthogonal_of_mem_Ioo_zero_pi + (edge_direction_ne_zero p i) hTI hωI hlorth hi + simpa [heq] using hline + · obtain ⟨s, hs, hsl⟩ := Finset.mem_biUnion.mp hl + simp only [Finset.mem_insert, Finset.mem_singleton] at hsl + rcases hsl with rfl | rfl + · have hsI : s ∈ Set.Ioo 0 Real.pi := + ⟨(Θ.interior s hs).1, + ((Θ.interior s hs).2.trans_le Θ.angle_le).trans + (by linarith [Real.pi_pos])⟩ + have heq := real_eq_of_normal_orthogonal_of_mem_Ioo_zero_pi + (edge_direction_ne_zero p i) hsI hωI hlorth hi + linarith [(Θ.interior s hs).2] + · have hsI : s + Real.pi / 2 ∈ Set.Ioo 0 Real.pi := by + constructor + · linarith [(Θ.interior s hs).1, Real.pi_pos] + · linarith [(Θ.interior s hs).2, Θ.angle_le] + have heq := real_eq_of_normal_orthogonal_of_mem_Ioo_zero_pi + (edge_direction_ne_zero p i) hsI hωI hlorth hi + linarith [(Θ.interior s hs).1, Θ.angle_le, Real.pi_pos] + · have ht : t = Real.pi / 2 := Set.mem_singleton_iff.mp ht + subst t + simp only [polygonCapBoundaryLines, Finset.mem_union] at hl + rcases hl with hl | hl + · simp only [Finset.mem_insert, Finset.mem_singleton] at hl + rcases hl with rfl | rfl + · have heq := real_eq_of_normal_orthogonal_of_mem_Ioo_zero_pi + (edge_direction_ne_zero p i) hωI hTI hlorth hi + simpa [heq] using hline + · exact hline + · obtain ⟨s, hs, hsl⟩ := Finset.mem_biUnion.mp hl + simp only [Finset.mem_insert, Finset.mem_singleton] at hsl + rcases hsl with rfl | rfl + · have hsI : s ∈ Set.Ioo 0 Real.pi := + ⟨(Θ.interior s hs).1, + ((Θ.interior s hs).2.trans_le Θ.angle_le).trans + (by linarith [Real.pi_pos])⟩ + have heq := real_eq_of_normal_orthogonal_of_mem_Ioo_zero_pi + (edge_direction_ne_zero p i) hsI hTI hlorth hi + linarith [(Θ.interior s hs).2, Θ.angle_le] + · have hsI : s + Real.pi / 2 ∈ Set.Ioo 0 Real.pi := by + constructor + · linarith [(Θ.interior s hs).1, Real.pi_pos] + · linarith [(Θ.interior s hs).2, Θ.angle_le] + have heq := real_eq_of_normal_orthogonal_of_mem_Ioo_zero_pi + (edge_direction_ne_zero p i) hsI hTI hlorth hi + linarith [(Θ.interior s hs).1] + +private theorem polygonCapPolyline_fanLine_length {Θ : AngleSet} + (K : PolygonCapSpace Θ) {t : ℝ} (ht : t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + (Measure.hausdorffMeasure 1 + ((polygonCapPolyline K).carrier ∩ normalLine (t : Real.Angle) 0)).toReal = + polygonPolylineLengthAt K t := by + let p := polygonCapPolyline K + have hp : IsCapPolyline K p := polygonCapPolyline_spec K + have hmeasure := p.toReal_hausdorffMeasure_carrier_inter_hyperplane + (normalVector (t : Real.Angle)) 0 + (fun i hi ↦ hp.edge_subset_fanLine_of_orthogonal ht i hi) + have htDomain : t ∈ angleDomain Θ := Or.inr ht + rw [show normalLine (t : Real.Angle) 0 = + {q | inner ℝ q (normalVector (t : Real.Angle)) = 0} by rfl, + hmeasure] + simp [polygonPolylineLengthAt, htDomain, polygonCapPolylineLength, p] + +private theorem polygonNiche_inter_bottom_subset_exposedEdge_of_lt + {Θ : AngleSet} (K : PolygonCapSpace Θ) (hω : Θ.angle < Real.pi / 2) : + polygonNiche Θ K.val ∩ normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0 ⊆ + exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + intro q hq + rw [exposedEdge_bottom_eq_segment_zero_right K hω] + rcases Set.mem_iUnion.mp hq.1.2 with ⟨t, ht⟩ + rcases Set.mem_iUnion.mp ht with ⟨htΘ, hqt⟩ + have htt := Θ.interior t htΘ + have hcost : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [htt.1, Real.pi_pos], htt.2.trans_le Θ.angle_le⟩ + have hgapBounds := wedgeGaps_positive_lower_bound K.val t htt + have hgap : 0 < (wedgeGaps K.val t).1 := hgapBounds.2.1.trans_le hgapBounds.1 + have hqy : q 1 = 0 := by + have hline := hq.2 + change inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 at hline + simpa [normalVector, frame, PiLp.inner_apply] using hline + have hqx_endpoint : q 0 < (wedgeEndpoints K.val t).1 0 := by + have hb := hqt.1 + change inner ℝ q (normalVector (t : Real.Angle)) < + supportValue K.val.val (t : Real.Angle) - 1 at hb + simp only [normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, PiLp.inner_apply, + RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, + Matrix.cons_val_zero, Matrix.cons_val_one, Matrix.cons_val_fin_one, hqy, mul_zero, + add_zero] at hb + simp only [wedgeEndpoints] + simp only [Fin.isValue, normalVector, frame, Real.Angle.cos_zero, Real.Angle.sin_zero, neg_zero, + PiLp.smul_apply, Matrix.cons_val_zero, smul_eq_mul, mul_one, gt_iff_lt] + exact (lt_div_iff₀ hcost).2 (by simpa [mul_comm] using hb) + have hendpoint_A : (wedgeEndpoints K.val t).1 0 < (capVertices K.val 0).1.2 0 := by + simpa [wedgeGaps, inner_sub_left, normalVector, frame, PiLp.inner_apply] using hgap + have hqx_nonneg : 0 ≤ q 0 := by + have hfan := hq.1.1.1 + change 0 ≤ inner ℝ q (normalVector (Θ.angle : Real.Angle)) at hfan + simp only [normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, + PiLp.inner_apply, RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, + Matrix.cons_val_zero, Matrix.cons_val_one, Matrix.cons_val_fin_one, hqy, mul_zero, + add_zero] at hfan + have hcosω : 0 < Real.cos Θ.angle := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Θ.angle_pos, Real.pi_pos], hω⟩ + exact nonneg_of_mul_nonneg_left (by simpa [mul_comm] using hfan) hcosω + have hApos : 0 < (capVertices K.val 0).1.2 0 := + hqx_nonneg.trans_lt (hqx_endpoint.trans hendpoint_A) + apply mem_segment_of_fst_mem_Icc_of_mem_normalLine hApos + (t := Real.pi / 2) (c := 0) + ⟨by positivity, by linarith [Real.pi_pos]⟩ + · simp [normalLine, normalVector, frame, PiLp.inner_apply] + · rw [capVertices_zero_snd_eq K] + simp [normalLine, normalVector, frame, PiLp.inner_apply] + · exact hq.2 + · exact ⟨hqx_nonneg, (hqx_endpoint.trans hendpoint_A).le⟩ + +private theorem mem_segment_of_inner_tangent_mem_Icc_of_mem_normalLine + {a b q : Point} {t : Real.Angle} {c : ℝ} + (hab : inner ℝ a (tangentVector t) < inner ℝ b (tangentVector t)) + (ha : a ∈ normalLine t c) (hb : b ∈ normalLine t c) + (hq : q ∈ normalLine t c) + (hx : inner ℝ q (tangentVector t) ∈ + Set.Icc (inner ℝ a (tangentVector t)) (inner ℝ b (tangentVector t))) : + q ∈ segment ℝ a b := by + let r := (inner ℝ q (tangentVector t) - inner ℝ a (tangentVector t)) / + (inner ℝ b (tangentVector t) - inner ℝ a (tangentVector t)) + have hden : 0 < inner ℝ b (tangentVector t) - inner ℝ a (tangentVector t) := + sub_pos.mpr hab + have hr : r ∈ Set.Icc (0 : ℝ) 1 := by + constructor + · exact div_nonneg (sub_nonneg.mpr hx.1) hden.le + · exact (div_le_one hden).2 (by linarith [hx.2]) + rw [segment_eq_image'] + refine ⟨r, hr, ?_⟩ + change a + r • (b - a) = q + have hn : inner ℝ (a + r • (b - a)) (normalVector t) = + inner ℝ q (normalVector t) + := by + change inner ℝ a (normalVector t) = c at ha + change inner ℝ b (normalVector t) = c at hb + change inner ℝ q (normalVector t) = c at hq + rw [inner_add_left, real_inner_smul_left, inner_sub_left, ha, hb, sub_self, + mul_zero, add_zero, hq] + have htangent : inner ℝ (a + r • (b - a)) (tangentVector t) = + inner ℝ q (tangentVector t) + := by + rw [inner_add_left, real_inner_smul_left, inner_sub_left] + dsimp [r] + field_simp + ring + rw [← inner_normalVector_smul_add_inner_tangentVector_smul + (a + r • (b - a)) t, + ← inner_normalVector_smul_add_inner_tangentVector_smul q t, hn, htangent] + +private theorem polygonNiche_inter_left_subset_exposedEdge_of_lt + {Θ : AngleSet} (K : PolygonCapSpace Θ) (hω : Θ.angle < Real.pi / 2) : + polygonNiche Θ K.val ∩ normalLine (Θ.angle : Real.Angle) 0 ⊆ + exposedEdge K.val.val ((Θ.angle + Real.pi : ℝ) : Real.Angle) := by + intro q hq + rw [exposedEdge_left_eq_segment_zero_left K hω] + rcases Set.mem_iUnion.mp hq.1.2 with ⟨t, ht⟩ + rcases Set.mem_iUnion.mp ht with ⟨htΘ, hqt⟩ + have htt := Θ.interior t htΘ + have hcosδ : 0 < Real.cos (Θ.angle - t) := Real.cos_pos_of_mem_Ioo + ⟨by linarith [htt.2, Real.pi_pos], by linarith [htt.1, Θ.angle_le]⟩ + have hgapBounds := wedgeGaps_positive_lower_bound K.val t htt + have hgap : 0 < (wedgeGaps K.val t).2 := + hgapBounds.2.2.2.trans_le hgapBounds.2.2.1 + have hqcoord_endpoint : inner ℝ q (tangentVector (Θ.angle : Real.Angle)) < + inner ℝ (wedgeEndpoints K.val t).2 + (tangentVector (Θ.angle : Real.Angle)) := by + have hd := hqt.2 + change inner ℝ q (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < + supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 at hd + have hqdecomp := inner_normalVector_smul_add_inner_tangentVector_smul + q (Θ.angle : Real.Angle) + have hqnormal := hq.2 + change inner ℝ q (normalVector (Θ.angle : Real.Angle)) = 0 at hqnormal + rw [hqnormal, zero_smul, zero_add] at hqdecomp + rw [← hqdecomp, real_inner_smul_left] at hd + have hinner : inner ℝ (tangentVector (Θ.angle : Real.Angle)) + (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) = + Real.cos (Θ.angle - t) := by + rw [Real.Angle.coe_add, normalVector_add_pi_div_two] + simp [tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two, + Real.cos_sub] + ring_nf + rw [hinner] at hd + have hendpoint : inner ℝ (wedgeEndpoints K.val t).2 + (tangentVector (Θ.angle : Real.Angle)) = + (supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos (Θ.angle - t) := by + simp only [wedgeEndpoints, real_inner_smul_left] + rw [show inner ℝ (tangentVector (Θ.angle : Real.Angle)) + (tangentVector (Θ.angle : Real.Angle)) = 1 by + exact inner_tangentVector_self Θ.angle, mul_one] + rw [hendpoint] + exact (lt_div_iff₀ hcosδ).2 (by linarith [hd]) + have hendpoint_C : inner ℝ (wedgeEndpoints K.val t).2 + (tangentVector (Θ.angle : Real.Angle)) < + inner ℝ (capVertices K.val Θ.angle).2.1 + (tangentVector (Θ.angle : Real.Angle)) := by + simpa [wedgeGaps, inner_sub_left] using hgap + have hqcoord_nonneg : 0 ≤ inner ℝ q (tangentVector (Θ.angle : Real.Angle)) := by + have hfan := hq.1.1.2 + change 0 ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at hfan + have hqdecomp := inner_normalVector_smul_add_inner_tangentVector_smul + q (Θ.angle : Real.Angle) + have hqnormal := hq.2 + change inner ℝ q (normalVector (Θ.angle : Real.Angle)) = 0 at hqnormal + rw [hqnormal, zero_smul, zero_add] at hqdecomp + rw [← hqdecomp, real_inner_smul_left] at hfan + have hcosω : 0 < Real.cos Θ.angle := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Θ.angle_pos, Real.pi_pos], hω⟩ + have hinner : inner ℝ (tangentVector (Θ.angle : Real.Angle)) + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = Real.cos Θ.angle := by + simp [tangentVector, normalVector, frame, PiLp.inner_apply, + Fin.sum_univ_two] + rw [hinner] at hfan + exact nonneg_of_mul_nonneg_left hfan hcosω + have hCpos : 0 < inner ℝ (capVertices K.val Θ.angle).2.1 + (tangentVector (Θ.angle : Real.Angle)) := + hqcoord_nonneg.trans_lt (hqcoord_endpoint.trans hendpoint_C) + apply mem_segment_of_inner_tangent_mem_Icc_of_mem_normalLine + (t := (Θ.angle : Real.Angle)) (c := 0) (by simpa using hCpos) + · simp [normalLine] + · have hCeq := capVertices_angle_fst_eq K + change inner ℝ (capVertices K.val Θ.angle).2.1 + (normalVector (Θ.angle : Real.Angle)) = 0 + rw [hCeq, real_inner_smul_left, real_inner_comm, + inner_normalVector_tangentVector, mul_zero] + · exact hq.2 + · exact ⟨by simpa using hqcoord_nonneg, (hqcoord_endpoint.trans hendpoint_C).le⟩ + +private theorem polygonNiche_inter_bottom_subset_exposedEdge_of_eq + {Θ : AngleSet} (K : PolygonCapSpace Θ) (hω : Θ.angle = Real.pi / 2) : + polygonNiche Θ K.val ∩ normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0 ⊆ + exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + intro q hq + rw [exposedEdge_bottom_eq_segment_left_right K hω] + rcases Set.mem_iUnion.mp hq.1.2 with ⟨t, ht⟩ + rcases Set.mem_iUnion.mp ht with ⟨htΘ, hqt⟩ + have htt := Θ.interior t htΘ + have hcost : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [htt.1, Real.pi_pos], htt.2.trans_le Θ.angle_le⟩ + have hcosδ : 0 < Real.cos (Θ.angle - t) := Real.cos_pos_of_mem_Ioo + ⟨by linarith [htt.2, Real.pi_pos], by linarith [htt.1, Θ.angle_le]⟩ + have hgapBounds := wedgeGaps_positive_lower_bound K.val t htt + have hgapA : 0 < (wedgeGaps K.val t).1 := hgapBounds.2.1.trans_le hgapBounds.1 + have hgapC : 0 < (wedgeGaps K.val t).2 := + hgapBounds.2.2.2.trans_le hgapBounds.2.2.1 + have hqy : q 1 = 0 := by + have hline := hq.2 + change inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 at hline + simpa [normalVector, frame, PiLp.inner_apply] using hline + have hqx_endpoint : q 0 < (wedgeEndpoints K.val t).1 0 := by + have hb := hqt.1 + change inner ℝ q (normalVector (t : Real.Angle)) < + supportValue K.val.val (t : Real.Angle) - 1 at hb + simp only [normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, PiLp.inner_apply, + RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, + Matrix.cons_val_zero, Matrix.cons_val_one, Matrix.cons_val_fin_one, hqy, mul_zero, + add_zero] at hb + simp only [wedgeEndpoints] + simp only [Fin.isValue, normalVector, frame, Real.Angle.cos_zero, Real.Angle.sin_zero, neg_zero, + PiLp.smul_apply, Matrix.cons_val_zero, smul_eq_mul, mul_one, gt_iff_lt] + exact (lt_div_iff₀ hcost).2 (by simpa [mul_comm] using hb) + have hendpoint_A : (wedgeEndpoints K.val t).1 0 < (capVertices K.val 0).1.2 0 := by + simpa [wedgeGaps, inner_sub_left, normalVector, frame, PiLp.inner_apply] using hgapA + have hqcoord_endpoint : inner ℝ q + (tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) < + inner ℝ (wedgeEndpoints K.val t).2 + (tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) := by + have hd := hqt.2 + change inner ℝ q (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < + supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 at hd + have hqdecomp := inner_normalVector_smul_add_inner_tangentVector_smul + q ((Real.pi / 2 : ℝ) : Real.Angle) + have hqnormal := hq.2 + change inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 at hqnormal + rw [hqnormal, zero_smul, zero_add] at hqdecomp + rw [← hqdecomp, real_inner_smul_left] at hd + have hinner : inner ℝ (tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) + (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) = + Real.cos (Real.pi / 2 - t) := by + rw [Real.Angle.coe_add, normalVector_add_pi_div_two] + simp [tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two, + Real.cos_sub] + rw [hinner] at hd + have hcosEq : Real.cos (Θ.angle - t) = Real.cos (Real.pi / 2 - t) := by + rw [hω] + have hendpoint : inner ℝ (wedgeEndpoints K.val t).2 + (tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) = + (supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos (Real.pi / 2 - t) := by + calc + _ = (supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos (Θ.angle - t) := by + rw [show tangentVector ((Real.pi / 2 : ℝ) : Real.Angle) = + tangentVector (Θ.angle : Real.Angle) by rw [hω]] + simp only [wedgeEndpoints, real_inner_smul_left] + rw [show inner ℝ (tangentVector (Θ.angle : Real.Angle)) + (tangentVector (Θ.angle : Real.Angle)) = 1 by + exact inner_tangentVector_self Θ.angle, mul_one] + _ = _ := by rw [hcosEq] + rw [hendpoint] + have hcosT : 0 < Real.cos (Real.pi / 2 - t) := by simpa [hω] using hcosδ + exact (lt_div_iff₀ hcosT).2 (by linarith [hd]) + have hendpoint_C : inner ℝ (wedgeEndpoints K.val t).2 + (tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) < + inner ℝ (capVertices K.val Θ.angle).2.1 + (tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) := by + rw [← hω] + simpa [wedgeGaps, inner_sub_left] using hgapC + have hCx_lt_qx : (capVertices K.val Θ.angle).2.1 0 < q 0 := by + have h := hqcoord_endpoint.trans hendpoint_C + simp [tangentVector, frame, PiLp.inner_apply, hω] at h + simpa [hω] using h + have hqx_lt_Ax : q 0 < (capVertices K.val 0).1.2 0 := + hqx_endpoint.trans hendpoint_A + apply mem_segment_of_fst_mem_Icc_of_mem_normalLine (polygonCap_left_x_lt_right_x K) + (t := Real.pi / 2) (c := 0) + ⟨by positivity, by linarith [Real.pi_pos]⟩ + · rw [capVertices_angle_fst_eq K] + simp [normalLine, normalVector, tangentVector, frame, PiLp.inner_apply, hω] + · rw [capVertices_zero_snd_eq K] + simp [normalLine, normalVector, frame, PiLp.inner_apply] + · exact hq.2 + · exact ⟨hCx_lt_qx.le, hqx_lt_Ax.le⟩ + +private theorem mem_frontier_normalHalfPlane_upper_closed_of_mem_normalLine + (t : ℝ) (c : ℝ) {q : Point} (hq : q ∈ normalLine (t : Real.Angle) c) : + q ∈ frontier (normalHalfPlane (t : Real.Angle) c true false) := by + have hqH : q ∈ normalHalfPlane (t : Real.Angle) c true false := by + change c ≤ inner ℝ q (normalVector (t : Real.Angle)) + exact hq.ge + apply (mem_frontier_iff_notMem_interior hqH).mpr + intro hqInt + obtain ⟨ε, hε, hball⟩ := Metric.isOpen_iff.mp isOpen_interior q hqInt + let e := ε / 2 + let z := q - e • normalVector (t : Real.Angle) + have he : 0 < e := half_pos hε + have hzball : z ∈ Metric.ball q ε := by + change dist z q < ε + simp [z, norm_smul, norm_normalVector_real, abs_of_pos he] + dsimp [e] + linarith + have hz := interior_subset (hball hzball) + change c ≤ inner ℝ z (normalVector (t : Real.Angle)) at hz + change inner ℝ q (normalVector (t : Real.Angle)) = c at hq + dsimp [z] at hz + rw [inner_sub_left, real_inner_smul_left, inner_normalVector_self, mul_one, hq] at hz + linarith + +private theorem capFan_inter_fanLine_subset_frontier {Θ : AngleSet} {t : ℝ} + (ht : t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + capFan Θ.angle ∩ normalLine (t : Real.Angle) 0 ⊆ frontier (capFan Θ.angle) := by + intro q hq + apply (mem_frontier_iff_notMem_interior hq.1).mpr + intro hqInt + rcases Set.mem_insert_iff.mp ht with rfl | ht + · have hInt := interior_mono Set.inter_subset_left hqInt + have hfront := mem_frontier_normalHalfPlane_upper_closed_of_mem_normalLine + Θ.angle 0 hq.2 + exact (mem_frontier_iff_notMem_interior hq.1.1).mp hfront hInt + · have ht : t = Real.pi / 2 := Set.mem_singleton_iff.mp ht + subst t + have hInt := interior_mono Set.inter_subset_right hqInt + have hfront := mem_frontier_normalHalfPlane_upper_closed_of_mem_normalLine + (Real.pi / 2) 0 hq.2 + exact (mem_frontier_iff_notMem_interior hq.1.2).mp hfront hInt + +private theorem frontier_innerQuadrant_inter_fanLine_countable + {Θ : AngleSet} (K : PolygonCapSpace Θ) {s t : ℝ} + (hs : s ∈ Θ.directions) (ht : t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + (frontier (innerQuadrant K.val.val s) ∩ normalLine (t : Real.Angle) 0).Countable := by + have hsI : s ∈ Set.Ioo 0 Real.pi := + ⟨(Θ.interior s hs).1, + ((Θ.interior s hs).2.trans_le Θ.angle_le).trans (by linarith [Real.pi_pos])⟩ + have hsTI : s + Real.pi / 2 ∈ Set.Ioo 0 Real.pi := by + constructor + · linarith [(Θ.interior s hs).1, Real.pi_pos] + · linarith [(Θ.interior s hs).2, Θ.angle_le] + have htI : t ∈ Set.Ioo 0 Real.pi := by + rcases Set.mem_insert_iff.mp ht with rfl | ht + · exact ⟨Θ.angle_pos, Θ.angle_le.trans_lt (by linarith [Real.pi_pos])⟩ + · rw [Set.mem_singleton_iff.mp ht] + exact ⟨by positivity, by linarith [Real.pi_pos]⟩ + have hst : s ≠ t := by + rcases Set.mem_insert_iff.mp ht with rfl | ht + · exact ne_of_lt (Θ.interior s hs).2 + · rw [Set.mem_singleton_iff.mp ht] + exact ne_of_lt ((Θ.interior s hs).2.trans_le Θ.angle_le) + have hsTt : s + Real.pi / 2 ≠ t := by + rcases Set.mem_insert_iff.mp ht with rfl | ht + · intro heq + linarith [(Θ.interior s hs).1, Θ.angle_le] + · rw [Set.mem_singleton_iff.mp ht] + exact ne_of_gt (by linarith [(Θ.interior s hs).1]) + refine ((normalLine_inter_normalLine_subsingleton hsI htI hst + (c := supportValue K.val.val (s : Real.Angle) - 1) (d := 0)).countable.union + (normalLine_inter_normalLine_subsingleton hsTI htI hsTt + (c := supportValue K.val.val ((s + Real.pi / 2 : ℝ) : Real.Angle) - 1) + (d := 0)).countable).mono ?_ + rintro q ⟨hqfront, hqline⟩ + have hfront := frontier_inter_subset + (normalHalfPlane (s : Real.Angle) (supportValue K.val.val (s : Real.Angle) - 1) + false true) + (normalHalfPlane ((s + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue K.val.val ((s + Real.pi / 2 : ℝ) : Real.Angle) - 1) + false true) hqfront + rcases hfront with hfront | hfront + · exact Or.inl ⟨frontier_normalHalfPlane_lower_strict_subset_normalLine _ _ hfront.1, + hqline⟩ + · exact Or.inr ⟨frontier_normalHalfPlane_lower_strict_subset_normalLine _ _ hfront.2, + hqline⟩ + +private theorem frontier_polygonNiche_inter_fanLine_eq_niche_inter + {Θ : AngleSet} (K : PolygonCapSpace Θ) {t : ℝ} + (ht : t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + Measure.hausdorffMeasure 1 + (frontier (polygonNiche Θ K.val) ∩ normalLine (t : Real.Angle) 0) = + Measure.hausdorffMeasure 1 + (polygonNiche Θ K.val ∩ normalLine (t : Real.Angle) 0) := by + let X : Set Point := ⋃ s ∈ Θ.directions, innerQuadrant K.val.val s + have hN : polygonNiche Θ K.val = capFan Θ.angle ∩ X := by simp [polygonNiche, X] + rw [hN] + apply measure_eq_of_symmDiff_subset_null (E := frontier X ∩ normalLine (t : Real.Angle) 0) + · intro q hq + rcases hq with hq | hq + · refine ⟨?_, hq.1.2⟩ + rw [← closure_sdiff_interior] + refine ⟨closure_mono Set.inter_subset_right (frontier_subset_closure hq.1.1), ?_⟩ + intro hqInt + have hqX : q ∈ X := interior_subset hqInt + have hqF : q ∈ capFan Θ.angle := by + have hqcl := frontier_subset_closure hq.1.1 + exact (isClosed_capFan Θ.angle).closure_eq ▸ + closure_mono Set.inter_subset_left hqcl + exact hq.2 ⟨⟨hqF, hqX⟩, hq.1.2⟩ + · have hqFront : q ∈ frontier (capFan Θ.angle ∩ X) := by + apply (mem_frontier_iff_notMem_interior hq.1.1).mpr + intro hqInt + have hqFInt := interior_mono Set.inter_subset_left hqInt + exact (mem_frontier_iff_notMem_interior hq.1.1.1).mp + (capFan_inter_fanLine_subset_frontier ht ⟨hq.1.1.1, hq.1.2⟩) hqFInt + exact (hq.2 ⟨hqFront, hq.1.2⟩).elim + · have hcount : (frontier X ∩ normalLine (t : Real.Angle) 0).Countable := by + refine (Set.Countable.biUnion Θ.directions.countable_toSet fun s hs ↦ + frontier_innerQuadrant_inter_fanLine_countable K hs ht).mono ?_ + rintro q ⟨hqX, hqline⟩ + have hqUnion := Finset.frontier_biUnion_subset Θ.directions + (fun s ↦ innerQuadrant K.val.val s) hqX + obtain ⟨s, hs, hqs⟩ := Set.mem_iUnion₂.mp hqUnion + exact Set.mem_iUnion₂.mpr ⟨s, hs, ⟨hqs, hqline⟩⟩ + have := Measure.nullSingletonClass_hausdorff Point (by norm_num : (0 : ℝ) < 1) + exact hcount.measure_zero (Measure.hausdorffMeasure 1) + +private theorem capVertices_zero_fst_pos_of_lt {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hω : Θ.angle < Real.pi / 2) : + 0 < (capVertices K.val 0).1.2 0 := by + obtain ⟨u, huK, hu⟩ := exists_mem_inner_eq_supportValue K.val.val + (Θ.angle : Real.Angle) + have huy : u 1 ≤ 1 := by + have huy' := inner_le_supportValue K.val.val huK + ((Real.pi / 2 : ℝ) : Real.Angle) + rw [K.val.property.2.2.2.1] at huy' + simpa [normalVector, frame, PiLp.inner_apply] using huy' + have hcos : 0 < Real.cos Θ.angle := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Θ.angle_pos, Real.pi_pos], hω⟩ + have hsin_lt : Real.sin Θ.angle < 1 := by + nlinarith only [Real.sin_sq_add_cos_sq Θ.angle, sq_pos_of_pos hcos] + have hux : 0 < u 0 := by + rw [K.val.property.2.2.1] at hu + simp [normalVector, frame, PiLp.inner_apply] at hu + have hsin : 0 ≤ Real.sin Θ.angle := + (Real.sin_pos_of_pos_of_lt_pi Θ.angle_pos + (Θ.angle_le.trans_lt (by linarith [Real.pi_pos]))).le + have hmul := mul_le_mul_of_nonneg_left huy hsin + nlinarith + have hsupport : 0 < supportValue K.val.val (0 : Real.Angle) := + hux.trans_le (by + have := inner_le_supportValue K.val.val huK (0 : Real.Angle) + simpa [normalVector, frame, PiLp.inner_apply] using this) + rw [capVertices_zero_snd_eq K] + simpa [normalVector, frame] using hsupport + +private theorem hausdorffMeasure_bottom_exposedEdge_sdiff_niche_eq_carrier_of_lt + {Θ : AngleSet} (K : PolygonCapSpace Θ) (hω : Θ.angle < Real.pi / 2) : + Measure.hausdorffMeasure 1 + ((exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) \ + polygonNiche Θ K.val) ∩ normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0) = + Measure.hausdorffMeasure 1 + ((polygonCapPolyline K).carrier ∩ + normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0) := by + let p := polygonCapPolyline K + let A := (capVertices K.val 0).1.2 + let C := (capVertices K.val Θ.angle).2.1 + let L := openRay C (tangentVector (Θ.angle : Real.Angle)) + have hp : IsCapPolyline K p := polygonCapPolyline_spec K + have hclosed : IsClosed (capFan Θ.angle \ polygonNiche Θ K.val) := hp.2.2.2.2.1 + apply measure_eq_of_symmDiff_subset_null (E := + L ∩ normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0) + · intro q hq + rcases hq with hq | hq + · have hqF : q ∈ capFan Θ.angle := K.val.subset_capFan hq.1.1.1.1 + have hqFrontF := capFan_inter_fanLine_subset_frontier + (Θ := Θ) (t := Real.pi / 2) (by simp) ⟨hqF, hq.1.2⟩ + have hqC : q ∈ capFan Θ.angle \ polygonNiche Θ K.val := ⟨hqF, hq.1.1.2⟩ + have hqFrontC : q ∈ frontier (capFan Θ.angle \ polygonNiche Θ K.val) := by + apply (mem_frontier_iff_notMem_interior hqC).mpr + intro hqInt + exact (mem_frontier_iff_notMem_interior hqF).mp hqFrontF + (interior_mono Set.sdiff_subset hqInt) + rw [hp.2.2.2.2.2.1] at hqFrontC + rcases hqFrontC with hqL | hqR + · rcases hqL with hqL | hqcarrier + · exact ⟨hqL, hq.1.2⟩ + · exact (hq.2 ⟨hqcarrier, hq.1.2⟩).elim + · rcases hqR with ⟨r, hr, hqr⟩ + have hD := hq.1.1.1 + rw [exposedEdge_bottom_eq_segment_zero_right K hω] at hD + have hApos : 0 < A 0 := capVertices_zero_fst_pos_of_lt K hω + have hqx := (fst_mem_Icc_of_mem_segment_mc4d199c hApos.le hD).2 + have hqx' : A 0 < q 0 := by + rw [hqr] + simp [A, normalVector, frame] + linarith + linarith + · have hD := polygonCapPolyline_carrier_inter_bottom_subset_exposedEdge_of_lt + K hω hq.1 + have hqFrontC : q ∈ frontier (capFan Θ.angle \ polygonNiche Θ K.val) := by + rw [hp.2.2.2.2.2.1] + exact Or.inl (Or.inr hq.1.1) + have hqC : q ∈ capFan Θ.angle \ polygonNiche Θ K.val := + hclosed.closure_eq ▸ frontier_subset_closure hqFrontC + exact (hq.2 ⟨⟨hD, hqC.2⟩, hq.1.2⟩).elim + · have hinner : inner ℝ (tangentVector (Θ.angle : Real.Angle)) + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) ≠ 0 := by + have hcos : 0 < Real.cos Θ.angle := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Θ.angle_pos, Real.pi_pos], hω⟩ + simpa [tangentVector, normalVector, frame, PiLp.inner_apply, + Fin.sum_univ_two] using hcos.ne' + exact hausdorffMeasure_openRay_inter_hyperplane_eq_zero hinner + +private theorem hausdorffMeasure_left_exposedEdge_sdiff_niche_eq_carrier_of_lt + {Θ : AngleSet} (K : PolygonCapSpace Θ) (hω : Θ.angle < Real.pi / 2) : + Measure.hausdorffMeasure 1 + ((exposedEdge K.val.val ((Θ.angle + Real.pi : ℝ) : Real.Angle) \ + polygonNiche Θ K.val) ∩ normalLine (Θ.angle : Real.Angle) 0) = + Measure.hausdorffMeasure 1 + ((polygonCapPolyline K).carrier ∩ normalLine (Θ.angle : Real.Angle) 0) := by + let p := polygonCapPolyline K + let A := (capVertices K.val 0).1.2 + let C := (capVertices K.val Θ.angle).2.1 + let R := openRay A (normalVector 0) + have hp : IsCapPolyline K p := polygonCapPolyline_spec K + have hclosed : IsClosed (capFan Θ.angle \ polygonNiche Θ K.val) := hp.2.2.2.2.1 + have hCeq := capVertices_angle_fst_eq K + change C = supportValue K.val.val + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) • + tangentVector (Θ.angle : Real.Angle) at hCeq + have hL : 0 ≤ supportValue K.val.val + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) := + supportValue_nonneg_of_mem_capUpperAngles K.val hω + (Or.inr ⟨by linarith [Θ.angle_pos, Real.pi_pos], le_rfl⟩) + have hCcoord : 0 ≤ inner ℝ C (tangentVector (Θ.angle : Real.Angle)) := by + rw [hCeq, real_inner_smul_left] + rw [show inner ℝ (tangentVector (Θ.angle : Real.Angle)) + (tangentVector (Θ.angle : Real.Angle)) = 1 by + exact inner_tangentVector_self Θ.angle, mul_one] + exact hL + apply measure_eq_of_symmDiff_subset_null (E := + R ∩ normalLine (Θ.angle : Real.Angle) 0) + · intro q hq + rcases hq with hq | hq + · have hqF : q ∈ capFan Θ.angle := K.val.subset_capFan hq.1.1.1.1 + have hqFrontF := capFan_inter_fanLine_subset_frontier + (Θ := Θ) (t := Θ.angle) (by simp) ⟨hqF, hq.1.2⟩ + have hqC : q ∈ capFan Θ.angle \ polygonNiche Θ K.val := ⟨hqF, hq.1.1.2⟩ + have hqFrontC : q ∈ frontier (capFan Θ.angle \ polygonNiche Θ K.val) := by + apply (mem_frontier_iff_notMem_interior hqC).mpr + intro hqInt + exact (mem_frontier_iff_notMem_interior hqF).mp hqFrontF + (interior_mono Set.sdiff_subset hqInt) + rw [hp.2.2.2.2.2.1] at hqFrontC + rcases hqFrontC with hqL | hqR + · rcases hqL with hqL | hqcarrier + · rcases hqL with ⟨r, hr, hqr⟩ + have hD := hq.1.1.1 + rw [exposedEdge_left_eq_segment_zero_left K hω] at hD + rcases hD with ⟨u, v, hu, hv, huv, hqseg⟩ + have hvle : v ≤ 1 := by linarith + have hqcoord_le : inner ℝ q (tangentVector (Θ.angle : Real.Angle)) ≤ + inner ℝ C (tangentVector (Θ.angle : Real.Angle)) := by + rw [← hqseg, inner_add_left, real_inner_smul_left, + real_inner_smul_left, inner_zero_left, mul_zero, zero_add] + exact mul_le_of_le_one_left hCcoord hvle + have hqcoord_gt : inner ℝ C (tangentVector (Θ.angle : Real.Angle)) < + inner ℝ q (tangentVector (Θ.angle : Real.Angle)) := by + change inner ℝ (capVertices K.val Θ.angle).2.1 + (tangentVector (Θ.angle : Real.Angle)) < + inner ℝ q (tangentVector (Θ.angle : Real.Angle)) + rw [hqr, inner_add_left, real_inner_smul_left] + rw [show inner ℝ (tangentVector (Θ.angle : Real.Angle)) + (tangentVector (Θ.angle : Real.Angle)) = 1 by + exact inner_tangentVector_self Θ.angle] + simp only [mul_one, lt_add_iff_pos_right] + exact hr + exact (not_lt_of_ge hqcoord_le hqcoord_gt).elim + · exact (hq.2 ⟨hqcarrier, hq.1.2⟩).elim + · exact ⟨hqR, hq.1.2⟩ + · have hD := polygonCapPolyline_carrier_inter_left_subset_exposedEdge_of_lt + K hω hq.1 + have hqFrontC : q ∈ frontier (capFan Θ.angle \ polygonNiche Θ K.val) := by + rw [hp.2.2.2.2.2.1] + exact Or.inl (Or.inr hq.1.1) + have hqC : q ∈ capFan Θ.angle \ polygonNiche Θ K.val := + hclosed.closure_eq ▸ frontier_subset_closure hqFrontC + exact (hq.2 ⟨⟨hD, hqC.2⟩, hq.1.2⟩).elim + · have hinner : inner ℝ (normalVector 0) + (normalVector (Θ.angle : Real.Angle)) ≠ 0 := by + have hcos : 0 < Real.cos Θ.angle := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Θ.angle_pos, Real.pi_pos], hω⟩ + rw [show (0 : Real.Angle) = ((0 : ℝ) : Real.Angle) by rfl, + inner_normalVector_normalVector, zero_sub, Real.cos_neg] + exact hcos.ne' + exact hausdorffMeasure_openRay_inter_hyperplane_eq_zero hinner + +private theorem bottom_exposedEdge_sdiff_niche_inter_eq_carrier_of_eq + {Θ : AngleSet} (K : PolygonCapSpace Θ) (hω : Θ.angle = Real.pi / 2) : + (exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) \ + polygonNiche Θ K.val) ∩ normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0 = + (polygonCapPolyline K).carrier ∩ + normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0 := by + let p := polygonCapPolyline K + let A := (capVertices K.val 0).1.2 + let C := (capVertices K.val Θ.angle).2.1 + have hp : IsCapPolyline K p := polygonCapPolyline_spec K + have hclosed : IsClosed (capFan Θ.angle \ polygonNiche Θ K.val) := hp.2.2.2.2.1 + ext q + constructor + · intro hq + have hqF : q ∈ capFan Θ.angle := K.val.subset_capFan hq.1.1.1 + have hqFrontF := capFan_inter_fanLine_subset_frontier + (Θ := Θ) (t := Real.pi / 2) (by simp) ⟨hqF, hq.2⟩ + have hqC : q ∈ capFan Θ.angle \ polygonNiche Θ K.val := ⟨hqF, hq.1.2⟩ + have hqFrontC : q ∈ frontier (capFan Θ.angle \ polygonNiche Θ K.val) := by + apply (mem_frontier_iff_notMem_interior hqC).mpr + intro hqInt + exact (mem_frontier_iff_notMem_interior hqF).mp hqFrontF + (interior_mono Set.sdiff_subset hqInt) + rw [hp.2.2.2.2.2.1] at hqFrontC + rcases hqFrontC with hqL | hqR + · rcases hqL with hqL | hqcarrier + · rcases hqL with ⟨r, hr, hqr⟩ + have hD := hq.1.1 + rw [exposedEdge_bottom_eq_segment_left_right K hω] at hD + have hqx := fst_mem_Icc_of_mem_segment_mc4d199c + (polygonCap_left_x_lt_right_x K).le hD + have hqx' : q 0 < C 0 := by + rw [hqr] + simp only [Fin.isValue, hω, tangentVector, frame, Real.Angle.cos_coe, Real.cos_pi_div_two, + Real.Angle.sin_coe, Real.sin_pi_div_two, PiLp.add_apply, PiLp.smul_apply, + Matrix.cons_val_zero, smul_eq_mul, mul_neg, mul_one, add_lt_iff_neg_left, + Left.neg_neg_iff, C] + exact hr + exact (not_lt_of_ge (by simpa [C] using hqx.1) hqx').elim + · exact ⟨hqcarrier, hq.2⟩ + · rcases hqR with ⟨r, hr, hqr⟩ + have hD := hq.1.1 + rw [exposedEdge_bottom_eq_segment_left_right K hω] at hD + have hqx := fst_mem_Icc_of_mem_segment_mc4d199c + (polygonCap_left_x_lt_right_x K).le hD + have hqx' : A 0 < q 0 := by + rw [hqr] + simp only [Fin.isValue, normalVector, frame, Real.Angle.cos_zero, + Real.Angle.sin_zero, neg_zero, + PiLp.add_apply, PiLp.smul_apply, Matrix.cons_val_zero, smul_eq_mul, mul_one, + lt_add_iff_pos_right, A] + exact hr + exact (not_lt_of_ge (by simpa [A] using hqx.2) hqx').elim + · intro hq + have hD := polygonCapPolyline_carrier_inter_bottom_subset_exposedEdge_of_eq + K hω hq + have hqFrontC : q ∈ frontier (capFan Θ.angle \ polygonNiche Θ K.val) := by + rw [hp.2.2.2.2.2.1] + exact Or.inl (Or.inr hq.1) + have hqC : q ∈ capFan Θ.angle \ polygonNiche Θ K.val := + hclosed.closure_eq ▸ frontier_subset_closure hqFrontC + exact ⟨⟨hD, hqC.2⟩, hq.2⟩ + +private theorem segment_subset_normalLine {a b : Point} {t : Real.Angle} {c : ℝ} + (ha : a ∈ normalLine t c) (hb : b ∈ normalLine t c) : + segment ℝ a b ⊆ normalLine t c := by + rintro q ⟨u, v, hu, hv, huv, rfl⟩ + change inner ℝ (u • a + v • b) (normalVector t) = c + change inner ℝ a (normalVector t) = c at ha + change inner ℝ b (normalVector t) = c at hb + rw [inner_add_left, real_inner_smul_left, real_inner_smul_left, ha, hb] + linear_combination c * huv + +private theorem hausdorffMeasure_niche_inter_eq_exposedEdge_sub_carrier + {Θ : AngleSet} (K : PolygonCapSpace Θ) {t : ℝ} + (hDline : exposedEdge K.val.val ((t + Real.pi : ℝ) : Real.Angle) ⊆ + normalLine (t : Real.Angle) 0) + (hNsub : polygonNiche Θ K.val ∩ normalLine (t : Real.Angle) 0 ⊆ + exposedEdge K.val.val ((t + Real.pi : ℝ) : Real.Angle)) + (hcomp : Measure.hausdorffMeasure 1 + ((exposedEdge K.val.val ((t + Real.pi : ℝ) : Real.Angle) \ + polygonNiche Θ K.val) ∩ normalLine (t : Real.Angle) 0) = + Measure.hausdorffMeasure 1 + ((polygonCapPolyline K).carrier ∩ normalLine (t : Real.Angle) 0)) : + (Measure.hausdorffMeasure 1 + (polygonNiche Θ K.val ∩ normalLine (t : Real.Angle) 0)).toReal = + (Measure.hausdorffMeasure 1 + (exposedEdge K.val.val ((t + Real.pi : ℝ) : Real.Angle))).toReal - + (Measure.hausdorffMeasure 1 + ((polygonCapPolyline K).carrier ∩ normalLine (t : Real.Angle) 0)).toReal := by + let μ : Measure Point := Measure.hausdorffMeasure 1 + let D := exposedEdge K.val.val ((t + Real.pi : ℝ) : Real.Angle) + let M := polygonNiche Θ K.val ∩ normalLine (t : Real.Angle) 0 + have hdiff : D \ M = + (D \ polygonNiche Θ K.val) ∩ normalLine (t : Real.Angle) 0 := by + ext q + constructor + · intro hq + exact ⟨⟨hq.1, fun hqN ↦ hq.2 ⟨hqN, hDline hq.1⟩⟩, hDline hq.1⟩ + · intro hq + exact ⟨hq.1.1, fun hqM ↦ hq.1.2 hqM.1⟩ + have hNMeas : MeasurableSet (polygonNiche Θ K.val) := by + exact (isClosed_capFan Θ.angle).measurableSet.inter + (isOpen_iUnion fun s ↦ isOpen_iUnion fun _ ↦ + isOpen_innerQuadrant K.val.val s).measurableSet + have hMMeas : MeasurableSet M := + hNMeas.inter (isClosed_eq (by fun_prop) continuous_const).measurableSet + have hDfinite : μ D ≠ ⊤ := by + dsimp [μ, D] + rw [exposedEdge_eq_segment_edgeVertices, MeasureTheory.hausdorffMeasure_segment, + edist_dist] + simp + have hreal := MeasureTheory.measureReal_sdiff (μ := μ) hNsub hMMeas hDfinite + change (μ (D \ M)).toReal = (μ D).toReal - (μ M).toReal at hreal + rw [hdiff] at hreal + have hcompReal := congrArg ENNReal.toReal hcomp + dsimp [μ, D, M] at hreal hcompReal ⊢ + rw [hcompReal] at hreal + linarith + +private theorem bottom_exposedEdge_subset_fanLine_of_lt {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hω : Θ.angle < Real.pi / 2) : + exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) ⊆ + normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0 := by + rw [exposedEdge_bottom_eq_segment_zero_right K hω] + apply segment_subset_normalLine + · simp [normalLine] + · rw [capVertices_zero_snd_eq K] + simp [normalLine, normalVector, frame, PiLp.inner_apply] + +private theorem left_exposedEdge_subset_fanLine_of_lt {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hω : Θ.angle < Real.pi / 2) : + exposedEdge K.val.val ((Θ.angle + Real.pi : ℝ) : Real.Angle) ⊆ + normalLine (Θ.angle : Real.Angle) 0 := by + rw [exposedEdge_left_eq_segment_zero_left K hω] + apply segment_subset_normalLine + · simp [normalLine] + · change inner ℝ (capVertices K.val Θ.angle).2.1 + (normalVector (Θ.angle : Real.Angle)) = 0 + rw [capVertices_angle_fst_eq K, real_inner_smul_left, + show inner ℝ (tangentVector (Θ.angle : Real.Angle)) + (normalVector (Θ.angle : Real.Angle)) = 0 by + rw [real_inner_comm, inner_normalVector_tangentVector], mul_zero] + +private theorem bottom_exposedEdge_subset_fanLine_of_eq {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hω : Θ.angle = Real.pi / 2) : + exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) ⊆ + normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0 := by + rw [exposedEdge_bottom_eq_segment_left_right K hω] + apply segment_subset_normalLine + · rw [capVertices_angle_fst_eq K] + simp [normalLine, normalVector, tangentVector, frame, PiLp.inner_apply, hω] + · rw [capVertices_zero_snd_eq K] + simp [normalLine, normalVector, frame, PiLp.inner_apply] + +private theorem polygonNiche_fanLine_length {Θ : AngleSet} + (K : PolygonCapSpace Θ) {t : ℝ} (ht : t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + (Measure.hausdorffMeasure 1 + (polygonNiche Θ K.val ∩ normalLine (t : Real.Angle) 0)).toReal = + (Measure.hausdorffMeasure 1 + (exposedEdge K.val.val ((t + Real.pi : ℝ) : Real.Angle))).toReal - + polygonPolylineLengthAt K t := by + by_cases hω : Θ.angle < Real.pi / 2 + · rcases Set.mem_insert_iff.mp ht with rfl | ht + · rw [← polygonCapPolyline_fanLine_length K (by simp)] + exact hausdorffMeasure_niche_inter_eq_exposedEdge_sub_carrier K + (left_exposedEdge_subset_fanLine_of_lt K hω) + (polygonNiche_inter_left_subset_exposedEdge_of_lt K hω) + (hausdorffMeasure_left_exposedEdge_sdiff_niche_eq_carrier_of_lt K hω) + · have ht : t = Real.pi / 2 := Set.mem_singleton_iff.mp ht + subst t + rw [← polygonCapPolyline_fanLine_length K (by simp)] + apply hausdorffMeasure_niche_inter_eq_exposedEdge_sub_carrier K + · convert bottom_exposedEdge_subset_fanLine_of_lt K hω using 1; ring_nf + · convert polygonNiche_inter_bottom_subset_exposedEdge_of_lt K hω using 1; ring_nf + · convert hausdorffMeasure_bottom_exposedEdge_sdiff_niche_eq_carrier_of_lt + K hω using 1; ring_nf + · have hωeq : Θ.angle = Real.pi / 2 := le_antisymm Θ.angle_le (le_of_not_gt hω) + have htT : t = Real.pi / 2 := by + rcases Set.mem_insert_iff.mp ht with ht | ht + · exact ht.trans hωeq + · exact Set.mem_singleton_iff.mp ht + subst t + rw [← polygonCapPolyline_fanLine_length K (by simp)] + apply hausdorffMeasure_niche_inter_eq_exposedEdge_sub_carrier K + · convert bottom_exposedEdge_subset_fanLine_of_eq K hωeq using 1; ring_nf + · convert polygonNiche_inter_bottom_subset_exposedEdge_of_eq K hωeq using 1; ring_nf + · convert congrArg (Measure.hausdorffMeasure 1) + (bottom_exposedEdge_sdiff_niche_inter_eq_carrier_of_eq K hωeq) using 1; + ring_nf + +/-- The niche trace on a fan line is the lower face length minus polyline length. -/ +theorem polygonNiche_fanLine_lengths {Θ : AngleSet} + (K : PolygonCapSpace Θ) {t : ℝ} (ht : t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + nicheBoundaryLength K (normalLine t 0) = + (surfaceAreaMeasure K.val.val {((t + Real.pi : ℝ) : Real.Angle)}).toReal - + polygonPolylineLengthAt K t ∧ + (Measure.hausdorffMeasure 1 + (polygonNiche Θ K.val ∩ normalLine t 0)).toReal = + (surfaceAreaMeasure K.val.val {((t + Real.pi : ℝ) : Real.Angle)}).toReal - + polygonPolylineLengthAt K t := by + have hN := polygonNiche_fanLine_length K ht + have hatom := congrArg ENNReal.toReal + (surfaceAreaMeasure_atom_length K.val.val + ((t + Real.pi : ℝ) : Real.Angle)).1 + rw [← hatom] at hN + refine ⟨?_, hN⟩ + unfold nicheBoundaryLength + rw [frontier_polygonNiche_inter_fanLine_eq_niche_inter K ht] + exact hN + +/-- Inner-wall and inner-ray niche lengths agree with the corresponding polyline lengths. -/ +theorem polygonNiche_wall_lengths {Θ : AngleSet} (K : PolygonCapSpace Θ) + {t : ℝ} (ht : t ∈ Θ.directions) : + nicheBoundaryLength K (rotatingHallwayParts (K.val.val : Set Point) t).b = + polygonPolylineLengthAt K t ∧ + nicheBoundaryLength K (rotatingHallwayParts (K.val.val : Set Point) t).bRay = + polygonPolylineLengthAt K t ∧ + nicheBoundaryLength K (rotatingHallwayParts (K.val.val : Set Point) t).d = + polygonPolylineLengthAt K (t + Real.pi / 2) ∧ + nicheBoundaryLength K (rotatingHallwayParts (K.val.val : Set Point) t).dRay = + polygonPolylineLengthAt K (t + Real.pi / 2) := by + have hf := rotatingHallwayParts_formulas + (K.val.val : Set Point) (t : Real.Angle) + refine ⟨?_, ?_, ?_, ?_⟩ + · unfold nicheBoundaryLength + rw [hf.2.2.2.2.1] + exact polygonNiche_bLine_length K ht + · unfold nicheBoundaryLength + exact polygonNiche_bRay_length K ht + · unfold nicheBoundaryLength + rw [hf.2.2.2.2.2.2.1] + exact polygonNiche_dLine_length K ht + · unfold nicheBoundaryLength + exact polygonNiche_dRay_length K ht + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Polyline / Length +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem polygonCap_polyline_lengths {Θ : AngleSet} (K : PolygonCapSpace Θ) : + (∀ t ∈ Θ.directions, + nicheBoundaryLength K (rotatingHallwayParts (K.val.val : Set Point) t).b = + polygonPolylineLengthAt K t ∧ + nicheBoundaryLength K (rotatingHallwayParts (K.val.val : Set Point) t).bRay = + polygonPolylineLengthAt K t ∧ + nicheBoundaryLength K (rotatingHallwayParts (K.val.val : Set Point) t).d = + polygonPolylineLengthAt K (t + Real.pi / 2) ∧ + nicheBoundaryLength K (rotatingHallwayParts (K.val.val : Set Point) t).dRay = + polygonPolylineLengthAt K (t + Real.pi / 2)) ∧ + (∀ t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + nicheBoundaryLength K (normalLine t 0) = + (surfaceAreaMeasure K.val.val {((t + Real.pi : ℝ) : Real.Angle)}).toReal - + polygonPolylineLengthAt K t ∧ + (MeasureTheory.Measure.hausdorffMeasure 1 + (polygonNiche Θ K.val ∩ normalLine t 0)).toReal = + (surfaceAreaMeasure K.val.val {((t + Real.pi : ℝ) : Real.Angle)}).toReal - + polygonPolylineLengthAt K t) := by + exact ⟨fun _ ht ↦ polygonNiche_wall_lengths K ht, + fun _ ht ↦ polygonNiche_fanLine_lengths K ht⟩ + +private lemma polygonCapPolyline_sum_length_mul_sin {Θ : AngleSet} (K : PolygonCapSpace Θ) + (D : Finset ℝ) (hD : (D : Set ℝ) = angleDomain Θ) : + ∑ t ∈ D, polygonPolylineLengthAt K t * Real.sin t = + ((capVertices K.val 0).1.2) 0 - ((capVertices K.val Θ.angle).2.1) 0 := by + classical + let p := polygonCapPolyline K + have hp : IsCapPolyline K p := (polygonCap_polyline K).choose_spec + have hmem (t : ℝ) : t ∈ D ↔ t ∈ angleDomain Θ := by + change t ∈ (D : Set ℝ) ↔ _ + rw [hD] + have h := p.sum_normal_lengths_mul_sin D + (fun t ht ↦ angleDomain_subset_Ioo Θ ((hmem t).mp ht)) (by + intro i + obtain ⟨t, ht⟩ := hp.2.2.2.1 i + exact ⟨t.val, (hmem t.val).mpr t.property, ht⟩) + have heq : ∑ t ∈ D, polygonPolylineLengthAt K t * Real.sin t = + ∑ t ∈ D, (∑ i : Fin p.edges, + if inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (t : Real.Angle)) = 0 then + dist (p.vertices i.castSucc) (p.vertices i.succ) else 0) * Real.sin t := by + apply Finset.sum_congr rfl + intro t ht + simp only [polygonPolylineLengthAt, dite_eq_left ((hmem t).mp ht), polygonCapPolylineLength] + rfl + rw [heq, h, hp.2.1, hp.2.2.1] + +theorem polygonCap_not_balanced_positive {Θ : AngleSet} (K : PolygonCapSpace Θ) + (h : ¬ IsBalancedPolygonCap K) : + ∃ t : angleDomain Θ, + ENNReal.ofReal (polygonCapPolylineLength K t) < + surfaceAreaMeasure K.val.val {(t.val : Real.Angle)} := by + classical + by_contra hnot + push Not at hnot + have hfinite : (angleDomain Θ).Finite := by + unfold angleDomain + exact (Θ.directions.finite_toSet.union + (Θ.directions.finite_toSet.image (fun t ↦ t + Real.pi / 2))).union (Set.toFinite _) + let D := hfinite.toFinset + have hD : (D : Set ℝ) = angleDomain Θ := hfinite.coe_toFinset + have hne : D.Nonempty := by + refine ⟨Θ.angle, ?_⟩ + change Θ.angle ∈ hfinite.toFinset + simp [angleDomain] + have hmem (t : ℝ) : t ∈ D ↔ t ∈ angleDomain Θ := by + change t ∈ (D : Set ℝ) ↔ _ + rw [hD] + have hpoly (t : angleDomain Θ) : 0 ≤ polygonCapPolylineLength K t := by + unfold polygonCapPolylineLength + exact Finset.sum_nonneg (fun _ _ ↦ by split_ifs <;> positivity) + have htop (t : ℝ) : surfaceAreaMeasure K.val.val {(t : Real.Angle)} ≠ ⊤ := by + rw [(surfaceAreaMeasure_atom_length K.val.val (t : Real.Angle)).2.1] + exact ENNReal.ofReal_ne_top + have hle (t : ℝ) (ht : t ∈ D) : + (surfaceAreaMeasure K.val.val {(t : Real.Angle)}).toReal ≤ polygonPolylineLengthAt K t := by + have hh := ENNReal.toReal_mono ENNReal.ofReal_ne_top (hnot ⟨t, (hmem t).mp ht⟩) + simpa [polygonPolylineLengthAt, (hmem t).mp ht, ENNReal.toReal_ofReal + (hpoly ⟨t, (hmem t).mp ht⟩)] using hh + have hsum : ∑ t ∈ D, + (polygonPolylineLengthAt K t - + (surfaceAreaMeasure K.val.val {(t : Real.Angle)}).toReal) * Real.sin t = 0 := by + simp_rw [sub_mul] + rw [Finset.sum_sub_distrib, polygonCapPolyline_sum_length_mul_sin K D hD] + have hh := K.sum_hausdorffMeasure_exposedEdge_mul_sin D hne hD + have heq : ∑ t ∈ D, + (surfaceAreaMeasure K.val.val {(t : Real.Angle)}).toReal * Real.sin t = + ((capVertices K.val 0).1.2) 0 - ((capVertices K.val Θ.angle).2.1) 0 := by + simpa only [(surfaceAreaMeasure_atom_length K.val.val _).1] using hh + rw [heq, sub_self] + have hzero := (Finset.sum_eq_zero_iff_of_nonneg (fun t ht ↦ + mul_nonneg (sub_nonneg.mpr (hle t ht)) + (Real.sin_pos_of_pos_of_lt_pi (angleDomain_subset_Ioo Θ ((hmem t).mp ht)).1 + (angleDomain_subset_Ioo Θ ((hmem t).mp ht)).2).le)).mp hsum + apply h + intro t + have ht := (hmem t.val).mpr t.property + have hz := hzero t.val ht + have hs := Real.sin_pos_of_pos_of_lt_pi (angleDomain_subset_Ioo Θ t.property).1 + (angleDomain_subset_Ioo Θ t.property).2 + have heq := sub_eq_zero.mp ((mul_eq_zero.mp hz).resolve_right hs.ne') + apply (ENNReal.toReal_eq_toReal_iff' (htop t.val) ENNReal.ofReal_ne_top).mp + simpa [polygonPolylineLengthAt, t.property, ENNReal.toReal_ofReal (hpoly t)] using heq.symm + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Balancing / Coefficients +-/ + +@[expose] public section + +noncomputable section +namespace MovingSofa + +/-- A convex body's frontier on a supporting line is its exposed edge. -/ +theorem frontier_inter_supportingLine_eq_exposedEdge (K : ConvexBody Point) + (t : Real.Angle) : + frontier (K : Set Point) ∩ normalLine t (supportValue K t) = exposedEdge K t := by + ext p + constructor + · rintro ⟨hp, hline⟩ + exact ⟨K.isCompact.isClosed.closure_subset (frontier_subset_closure hp), hline⟩ + · intro hp + refine ⟨mem_frontier_of_mem_of_isExteriorNormal K (a := t) hp.1 ?_, hp.2⟩ + intro q hq + change inner ℝ (q - p) (normalVector t) ≤ 0 + rw [inner_sub_left, show inner ℝ p (normalVector t) = supportValue K t from hp.2] + exact sub_nonpos.mpr (inner_le_supportValue K hq t) + +/-- The surface-area atom is the length of the frontier on its supporting line. -/ +theorem hausdorffMeasure_frontier_inter_supportingLine (K : ConvexBody Point) + (t : Real.Angle) : + MeasureTheory.Measure.hausdorffMeasure 1 + (frontier (K : Set Point) ∩ normalLine t (supportValue K t)) = + surfaceAreaMeasure K {t} := by + rw [frontier_inter_supportingLine_eq_exposedEdge] + exact (surfaceAreaMeasure_atom_length K t).1.symm + +/-- An endpoint cap's lower wall has the surface-area atom of the opposite normal. -/ +theorem hausdorffMeasure_frontier_inter_lowerLine_of_endpoint {Θ : AngleSet} + (K : PolygonCapSpace Θ) {t : ℝ} + (ht : t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + MeasureTheory.Measure.hausdorffMeasure 1 + (frontier (K.val.val : Set Point) ∩ + normalLine (t : Real.Angle) (supportValue K.val.val (t : Real.Angle) - 1)) = + surfaceAreaMeasure K.val.val {((t + Real.pi : ℝ) : Real.Angle)} := by + have htSupport : supportValue K.val.val (t : Real.Angle) = 1 := by + rcases Set.mem_insert_iff.mp ht with ht | ht + · subst t + exact K.val.property.2.2.1 + · have ht' := Set.mem_singleton_iff.mp ht + subst t + exact K.val.property.2.2.2.1 + have htOpposite : + supportValue K.val.val ((t + Real.pi : ℝ) : Real.Angle) = 0 := by + rcases Set.mem_insert_iff.mp ht with ht | ht + · subst t + exact K.val.property.2.2.2.2.1 + · have ht' := Set.mem_singleton_iff.mp ht + subst t + convert K.val.property.2.2.2.2.2.1 using 1 + ring_nf + rw [htSupport, sub_self, show normalLine (t : Real.Angle) 0 = + normalLine ((t + Real.pi : ℝ) : Real.Angle) 0 by + ext p + change inner ℝ p (normalVector (t : Real.Angle)) = 0 ↔ + inner ℝ p (normalVector ((t : Real.Angle) + Real.pi)) = 0 + rw [normalVector_add_pi_angle] + simp] + rw [← htOpposite] + exact hausdorffMeasure_frontier_inter_supportingLine K.val.val _ + +/-- Away from endpoint normals, the niche boundary on the lower wall has polyline length. -/ +theorem nicheBoundaryLength_lowerLine_of_not_endpoint {Θ : AngleSet} + (K : PolygonCapSpace Θ) (t : angleDomain Θ) + (ht : t.val ∉ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + nicheBoundaryLength K + (normalLine (t.val : Real.Angle) + (supportValue K.val.val (t.val : Real.Angle) - 1)) = + polygonCapPolylineLength K t := by + rw [show polygonCapPolylineLength K t = polygonPolylineLengthAt K t.val by + simp [polygonPolylineLengthAt, t.property]] + rcases t.property with htInner | htEndpoint + · rcases htInner with htDirection | ⟨s, hs, hst⟩ + · have hline := (rotatingHallwayParts_formulas + (K.val.val : Set Point) (t.val : Real.Angle)).2.2.2.2.1 + rw [← hline] + exact ((polygonCap_polyline_lengths K).1 t.val htDirection).1 + · have hline := (rotatingHallwayParts_formulas + (K.val.val : Set Point) (s : Real.Angle)).2.2.2.2.2.2.1 + rw [← hst] + change nicheBoundaryLength K + (normalLine ((s + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue K.val.val ((s + Real.pi / 2 : ℝ) : Real.Angle) - 1)) = + polygonPolylineLengthAt K (s + Real.pi / 2) + have hline' : + (rotatingHallwayParts (K.val.val : Set Point) (s : Real.Angle)).d = + normalLine ((s + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue K.val.val ((s + Real.pi / 2 : ℝ) : Real.Angle) - 1) := by + simpa only [Real.Angle.coe_add] using hline + rw [← hline'] + exact ((polygonCap_polyline_lengths K).1 s hs).2.2.1 + · exact False.elim (ht htEndpoint) + +/-- At an endpoint normal, the lower-wall niche length is the opposite-face length +minus the polyline length. -/ +theorem nicheBoundaryLength_lowerLine_of_endpoint {Θ : AngleSet} + (K : PolygonCapSpace Θ) (t : angleDomain Θ) + (ht : t.val ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + nicheBoundaryLength K + (normalLine (t.val : Real.Angle) + (supportValue K.val.val (t.val : Real.Angle) - 1)) = + (surfaceAreaMeasure K.val.val + {((t.val + Real.pi : ℝ) : Real.Angle)}).toReal - + polygonCapPolylineLength K t := by + have htSupport : supportValue K.val.val (t.val : Real.Angle) = 1 := by + rcases Set.mem_insert_iff.mp ht with ht | ht + · rw [ht] + exact K.val.property.2.2.1 + · rw [Set.mem_singleton_iff.mp ht] + exact K.val.property.2.2.2.1 + rw [htSupport, sub_self] + simpa [polygonPolylineLengthAt, t.property] using + (polygonCap_polyline_lengths K).2 t.val ht |>.1 + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Balancing / Estimate +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +private def polygonCapSupportHeight {Θ : AngleSet} (K : PolygonCapSpace Θ) : + PolygonHeightSpace Θ := + fun s ↦ supportValue K.val.val (s.val : Real.Angle) + +private theorem raisedPolygonSupport_eq_update {Θ : AngleSet} (K : PolygonCapSpace Θ) + (t : angleDomain Θ) (varepsilon : ℝ) : + raisedPolygonSupport K t varepsilon = + Function.update (polygonCapSupportHeight K) t + (polygonCapSupportHeight K t + varepsilon) := by + classical + unfold raisedPolygonSupport polygonCapSupportHeight PolygonHeightSpace + funext s + by_cases hst : s = t + · subst s + simp + · simp [Function.update, hst] + +private theorem raisedPolygonSupport_zero {Θ : AngleSet} (K : PolygonCapSpace Θ) + (t : angleDomain Θ) : raisedPolygonSupport K t 0 = polygonCapSupportHeight K := by + unfold raisedPolygonSupport polygonCapSupportHeight PolygonHeightSpace + funext s + simp + +private theorem update_sub_one {Θ : AngleSet} (h : PolygonHeightSpace Θ) + (t : angleDomain Θ) (varepsilon : ℝ) : + Function.update (fun s ↦ h s - 1) t (h t - 1 + varepsilon) = + fun s ↦ Function.update h t (h t + varepsilon) s - 1 := by + classical + change angleDomain Θ → ℝ at h + funext s + by_cases hst : s = t + · subst s + simp + ring + · simp [Function.update, hst] + +private theorem polygonHeightCap_supportHeight {Θ : AngleSet} (K : PolygonCapSpace Θ) : + polygonHeightCap (polygonCapSupportHeight K) = K.val.val := by + let K' : PolygonCapTranslateSpace Θ := + ⟨K.val.val, ⟨K, 0, by simp⟩⟩ + change polygonHeightCap + (fun s ↦ supportValue K.val.val (s.val : Real.Angle)) = K.val.val + exact polygonHeightCap_of_translate K' + +private theorem polygonHeightNiche_supportHeight {Θ : AngleSet} (K : PolygonCapSpace Θ) : + polygonHeightNiche (polygonCapSupportHeight K) = polygonNiche Θ K.val := by + change polygonHeightNiche + (fun s ↦ supportValue K.val.val (s.val : Real.Angle)) = polygonNiche Θ K.val + exact (polygonHeightNiche_of_cap K).1 + +private theorem independentWallCap_update_eq_of_not_endpoint {Θ : AngleSet} + (h : PolygonHeightSpace Θ) (t : angleDomain Θ) (varepsilon : ℝ) + (ht : t.val ∉ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + independentWallCap (Function.update h t (h t + varepsilon)) (fun s ↦ h s - 1) = + polygonHeightCap (Function.update h t (h t + varepsilon)) := by + classical + calc + independentWallCap (Function.update h t (h t + varepsilon)) (fun s ↦ h s - 1) = + independentWallCap (Function.update h t (h t + varepsilon)) + (fun s ↦ Function.update h t (h t + varepsilon) s - 1) := by + ext p + simp only [independentWallCap, Set.mem_inter_iff, Set.mem_iInter] + apply and_congr + · apply forall_congr' + intro s + apply forall_congr' + intro hs + have hst : (⟨s, Or.inr hs⟩ : angleDomain Θ) ≠ t := by + intro hst + apply ht + have hval : s = t.val := congrArg Subtype.val hst + rwa [hval] at hs + simp [polygonHeightValue, Function.update, hst] + · rfl + _ = polygonHeightCap (Function.update h t (h t + varepsilon)) := + independentWallCap_sub_one (Θ := Θ) _ + +private theorem independentWallCap_update_both_eq {Θ : AngleSet} + (h : PolygonHeightSpace Θ) (t : angleDomain Θ) (varepsilon : ℝ) : + independentWallCap (Function.update h t (h t + varepsilon)) + (Function.update (fun s ↦ h s - 1) t (h t - 1 + varepsilon)) = + polygonHeightCap (Function.update h t (h t + varepsilon)) := by + rw [update_sub_one] + exact independentWallCap_sub_one (Θ := Θ) _ + +private theorem independentWallNiche_update_eq {Θ : AngleSet} + (h : PolygonHeightSpace Θ) (t : angleDomain Θ) (varepsilon : ℝ) : + independentWallNiche + (Function.update (fun s ↦ h s - 1) t (h t - 1 + varepsilon)) = + polygonHeightNiche (Function.update h t (h t + varepsilon)) := by + rw [update_sub_one] + exact independentWallNiche_sub_one (Θ := Θ) _ + +/-- The balancing area estimate when the perturbed normal is not an endpoint. -/ +theorem polygonCap_balancing_estimate_of_not_endpoint {Θ : AngleSet} + (K : PolygonCapSpace Θ) (t : angleDomain Θ) + (ht : t.val ∉ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + ∃ C eta : ℝ, 0 ≤ C ∧ 0 < eta ∧ ∀ varepsilon : ℝ, + 0 ≤ varepsilon → varepsilon ≤ eta → + |polygonHeightArea (raisedPolygonSupport K t varepsilon) - + polygonHeightArea (raisedPolygonSupport K t 0) - + ((surfaceAreaMeasure K.val.val {(t.val : Real.Angle)}).toReal - + polygonCapPolylineLength K t) * varepsilon| ≤ C * varepsilon ^ 2 := by + classical + let h := polygonCapSupportHeight K + obtain ⟨⟨nc, Hc, hHc, hSc⟩, ⟨nn, Hn, hHn, hSn⟩⟩ := polygonCap_niche_simpleNef Θ h + have htInner : t.val ∈ (Θ.directions : Set ℝ) ∪ + ((fun s : ℝ ↦ s + Real.pi / 2) '' Θ.directions) := by + rcases t.property with htInner | htEndpoint + · exact htInner + · exact False.elim (ht htEndpoint) + have hcMem : + (⟨(t.val : Real.Angle), h t, false, false⟩ : PlanarHalfPlaneData) ∈ + Set.range Hc := by + rw [hHc] + exact Or.inl ⟨t.val, t.property, by simp [polygonHeightValue]⟩ + obtain ⟨ic, hic⟩ := hcMem + have hnMem : + (⟨(t.val : Real.Angle), h t - 1, false, true⟩ : PlanarHalfPlaneData) ∈ + Set.range Hn := by + rw [hHn] + exact Or.inl ⟨t.val, htInner, by simp [polygonHeightValue, t.property]⟩ + obtain ⟨in_, hin⟩ := hnMem + obtain ⟨Cc, etac, hCc, hetac, hcap⟩ := + polygonCap_upper_wall_area_variation h Hc hHc hSc.1 ic t hic + obtain ⟨tn, Cn, etan, htnAngle, hCn, hetan, hniche⟩ := + polygonNiche_wall_area_variation h Hn hHn hSn.1 in_ + have hinAngle : (Hn in_).angle = (t.val : Real.Angle) := by rw [hin] + have htn : tn = t := angleDomain_coe_injective Θ (htnAngle.symm.trans hinAngle) + subst tn + have hcapCoeff : + (MeasureTheory.Measure.hausdorffMeasure 1 + (frontier (polygonHeightCap h) ∩ (Hc ic).boundaryLine)).toReal = + (surfaceAreaMeasure K.val.val {(t.val : Real.Angle)}).toReal := by + rw [polygonHeightCap_supportHeight K, hic] + simpa [PlanarHalfPlaneData.boundaryLine, h, polygonCapSupportHeight] using + congrArg ENNReal.toReal + (hausdorffMeasure_frontier_inter_supportingLine K.val.val + (t.val : Real.Angle)) + have hnicheCoeff : + (MeasureTheory.Measure.hausdorffMeasure 1 + (frontier (polygonHeightNiche h) ∩ (Hn in_).boundaryLine)).toReal = + polygonCapPolylineLength K t := by + rw [polygonHeightNiche_supportHeight K, hin] + simpa [nicheBoundaryLength, PlanarHalfPlaneData.boundaryLine, h, + polygonCapSupportHeight] using nicheBoundaryLength_lowerLine_of_not_endpoint K t ht + refine ⟨Cc + Cn, min etac etan, add_nonneg hCc hCn, lt_min hetac hetan, ?_⟩ + intro varepsilon hvarepsilon hvarepsilonEta + have hvarepsilonC : |varepsilon| ≤ etac := by + rw [abs_of_nonneg hvarepsilon] + exact hvarepsilonEta.trans (min_le_left _ _) + have hvarepsilonN : |varepsilon| ≤ etan := by + rw [abs_of_nonneg hvarepsilon] + exact hvarepsilonEta.trans (min_le_right _ _) + have hc := hcap varepsilon hvarepsilonC + have hn := hniche varepsilon hvarepsilonN + rw [hcapCoeff, independentWallCap_update_eq_of_not_endpoint h t varepsilon ht] at hc + rw [hnicheCoeff, independentWallNiche_update_eq h t varepsilon] at hn + simp only [hin, Bool.false_eq_true, ite_false, one_mul] at hn + rw [raisedPolygonSupport_eq_update K t varepsilon, raisedPolygonSupport_zero K t, + polygonHeightArea] + change + |(ClassicalResults.area (polygonHeightCap (Function.update h t (h t + varepsilon))) - + ClassicalResults.area (polygonHeightNiche (Function.update h t (h t + varepsilon)))) - + (ClassicalResults.area (polygonHeightCap h) - + ClassicalResults.area (polygonHeightNiche h)) - + ((surfaceAreaMeasure K.val.val {(t.val : Real.Angle)}).toReal - + polygonCapPolylineLength K t) * varepsilon| ≤ + (Cc + Cn) * varepsilon ^ 2 + calc + _ = |(ClassicalResults.area + (polygonHeightCap (Function.update h t (h t + varepsilon))) - + ClassicalResults.area (polygonHeightCap h) - + (surfaceAreaMeasure K.val.val {(t.val : Real.Angle)}).toReal * varepsilon) - + (ClassicalResults.area + (polygonHeightNiche (Function.update h t (h t + varepsilon))) - + ClassicalResults.area (polygonHeightNiche h) - + polygonCapPolylineLength K t * varepsilon)| := by ring_nf + _ ≤ |ClassicalResults.area + (polygonHeightCap (Function.update h t (h t + varepsilon))) - + ClassicalResults.area (polygonHeightCap h) - + (surfaceAreaMeasure K.val.val {(t.val : Real.Angle)}).toReal * varepsilon| + + |ClassicalResults.area + (polygonHeightNiche (Function.update h t (h t + varepsilon))) - + ClassicalResults.area (polygonHeightNiche h) - + polygonCapPolylineLength K t * varepsilon| := abs_sub _ _ + _ ≤ Cc * varepsilon ^ 2 + Cn * varepsilon ^ 2 := add_le_add hc hn + _ = (Cc + Cn) * varepsilon ^ 2 := by ring + +/-- The balancing area estimate for a simultaneous endpoint-wall displacement. -/ +theorem polygonCap_balancing_estimate_of_endpoint {Θ : AngleSet} + (K : PolygonCapSpace Θ) (t : angleDomain Θ) + (ht : t.val ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + ∃ C eta : ℝ, 0 ≤ C ∧ 0 < eta ∧ ∀ varepsilon : ℝ, + 0 ≤ varepsilon → varepsilon ≤ eta → + |polygonHeightArea (raisedPolygonSupport K t varepsilon) - + polygonHeightArea (raisedPolygonSupport K t 0) - + ((surfaceAreaMeasure K.val.val {(t.val : Real.Angle)}).toReal - + polygonCapPolylineLength K t) * varepsilon| ≤ C * varepsilon ^ 2 := by + classical + let h := polygonCapSupportHeight K + obtain ⟨⟨nc, Hc, hHc, hSc⟩, ⟨nn, Hn, hHn, hSn⟩⟩ := polygonCap_niche_simpleNef Θ h + have hcuMem : + (⟨(t.val : Real.Angle), h t, false, false⟩ : PlanarHalfPlaneData) ∈ + Set.range Hc := by + rw [hHc] + exact Or.inl ⟨t.val, t.property, by simp [polygonHeightValue]⟩ + obtain ⟨icu, hicu⟩ := hcuMem + have hclMem : + (⟨(t.val : Real.Angle), h t - 1, true, false⟩ : PlanarHalfPlaneData) ∈ + Set.range Hc := by + rw [hHc] + exact Or.inr ⟨t.val, ht, by simp [polygonHeightValue, t.property]⟩ + obtain ⟨icl, hicl⟩ := hclMem + have hnMem : + (⟨(t.val : Real.Angle), h t - 1, true, false⟩ : PlanarHalfPlaneData) ∈ + Set.range Hn := by + rw [hHn] + exact Or.inr ⟨t.val, ht, by simp [polygonHeightValue, t.property]⟩ + obtain ⟨in_, hin⟩ := hnMem + obtain ⟨Cu, etau, hCu, hetau, hcapUpper⟩ := + polygonCap_upper_wall_area_variation h Hc hHc hSc.1 icu t hicu + obtain ⟨Cl, etal, hCl, hetal, hcapLower⟩ := + polygonCap_lower_wall_area_variation h Hc hHc hSc.1 icl t hicl + obtain ⟨tn, Cn, etan, htnAngle, hCn, hetan, hniche⟩ := + polygonNiche_wall_area_variation h Hn hHn hSn.1 in_ + have hinAngle : (Hn in_).angle = (t.val : Real.Angle) := by rw [hin] + have htn : tn = t := angleDomain_coe_injective Θ (htnAngle.symm.trans hinAngle) + subst tn + obtain ⟨R, epsilonZero, hR, hepsilonZero, huniform⟩ := + polygonPerturbation_uniform_bounds Θ h + have hupperCoeff : + (MeasureTheory.Measure.hausdorffMeasure 1 + (frontier (polygonHeightCap h) ∩ (Hc icu).boundaryLine)).toReal = + (surfaceAreaMeasure K.val.val {(t.val : Real.Angle)}).toReal := by + rw [polygonHeightCap_supportHeight K, hicu] + simpa [PlanarHalfPlaneData.boundaryLine, h, polygonCapSupportHeight] using + congrArg ENNReal.toReal + (hausdorffMeasure_frontier_inter_supportingLine K.val.val + (t.val : Real.Angle)) + have hlowerCoeff : + (MeasureTheory.Measure.hausdorffMeasure 1 + (frontier (polygonHeightCap h) ∩ (Hc icl).boundaryLine)).toReal = + (surfaceAreaMeasure K.val.val + {((t.val + Real.pi : ℝ) : Real.Angle)}).toReal := by + rw [polygonHeightCap_supportHeight K, hicl] + simpa [PlanarHalfPlaneData.boundaryLine, h, polygonCapSupportHeight] using + congrArg ENNReal.toReal + (hausdorffMeasure_frontier_inter_lowerLine_of_endpoint K ht) + have hnicheCoeff : + (MeasureTheory.Measure.hausdorffMeasure 1 + (frontier (polygonHeightNiche h) ∩ (Hn in_).boundaryLine)).toReal = + (surfaceAreaMeasure K.val.val + {((t.val + Real.pi : ℝ) : Real.Angle)}).toReal - + polygonCapPolylineLength K t := by + rw [polygonHeightNiche_supportHeight K, hin] + simpa [nicheBoundaryLength, PlanarHalfPlaneData.boundaryLine, h, + polygonCapSupportHeight] using nicheBoundaryLength_lowerLine_of_endpoint K t ht + let eta := min etau (min etal (min etan (min epsilonZero 1))) + refine ⟨Cu + Cl + Cn, eta, add_nonneg (add_nonneg hCu hCl) hCn, + lt_min hetau (lt_min hetal (lt_min hetan (lt_min hepsilonZero zero_lt_one))), ?_⟩ + intro varepsilon hvarepsilon hvarepsilonEta + have hvarepsilonU : |varepsilon| ≤ etau := by + rw [abs_of_nonneg hvarepsilon] + exact hvarepsilonEta.trans (by simp [eta]) + have hvarepsilonL : |varepsilon| ≤ etal := by + rw [abs_of_nonneg hvarepsilon] + exact hvarepsilonEta.trans (by simp [eta]) + have hvarepsilonN : |varepsilon| ≤ etan := by + rw [abs_of_nonneg hvarepsilon] + exact hvarepsilonEta.trans (by simp [eta]) + have hvarepsilonZero : varepsilon ≤ epsilonZero := + hvarepsilonEta.trans (by simp [eta]) + have hvarepsilonOne : varepsilon ≤ 1 := + hvarepsilonEta.trans (by simp [eta]) + have hu := hcapUpper varepsilon hvarepsilonU + have hl := hcapLower varepsilon hvarepsilonL + have hn := hniche varepsilon hvarepsilonN + rw [hupperCoeff] at hu + rw [hlowerCoeff] at hl + rw [hnicheCoeff, independentWallNiche_update_eq h t varepsilon] at hn + simp only [hin, ↓reduceIte, Real.Angle.coe_add, neg_mul, one_mul, neg_sub] at hn + have hchangeUpper (s : angleDomain Θ) : + |Function.update h t (h t + varepsilon) s - h s| ≤ epsilonZero := by + by_cases hst : s = t + · subst s + have hself : Function.update h t (h t + varepsilon) t = h t + varepsilon := + Function.update_self t (h t + varepsilon) h + rw [hself] + simpa [abs_of_nonneg hvarepsilon] using hvarepsilonZero + · simp [Function.update, hst, le_of_lt hepsilonZero] + have hchangeLower (s : angleDomain Θ) : + |Function.update (fun r ↦ h r - 1) t (h t - 1 + varepsilon) s - + (h s - 1)| ≤ epsilonZero := by + by_cases hst : s = t + · subst s + have hself : + Function.update (fun r ↦ h r - 1) t (h t - 1 + varepsilon) t = + h t - 1 + varepsilon := + Function.update_self t (h t - 1 + varepsilon) (fun r ↦ h r - 1) + rw [hself] + simpa [abs_of_nonneg hvarepsilon] using hvarepsilonZero + · simp [Function.update, hst, le_of_lt hepsilonZero] + have hbound (upper lower : PolygonHeightSpace Θ) + (hupper : upper = h ∨ upper = Function.update h t (h t + varepsilon)) + (hlower : lower = (fun s ↦ h s - 1) ∨ + lower = Function.update (fun s ↦ h s - 1) t (h t - 1 + varepsilon)) : + independentWallCap upper lower ⊆ Metric.closedBall 0 R := by + apply (huniform upper lower ?_ ?_).1 + · rcases hupper with rfl | rfl + · intro s + simp [le_of_lt hepsilonZero] + · exact hchangeUpper + · rcases hlower with rfl | rfl + · intro s + simp [le_of_lt hepsilonZero] + · exact hchangeLower + have hadd := independentWallCap_area_update_add h t varepsilon R + hvarepsilon hvarepsilonOne hbound + rw [independentWallCap_update_both_eq h t varepsilon, + independentWallCap_sub_one (Θ := Θ)] at hadd + rw [raisedPolygonSupport_eq_update K t varepsilon, raisedPolygonSupport_zero K t, + polygonHeightArea] + change + |(ClassicalResults.area (polygonHeightCap (Function.update h t (h t + varepsilon))) - + ClassicalResults.area (polygonHeightNiche (Function.update h t (h t + varepsilon)))) - + (ClassicalResults.area (polygonHeightCap h) - + ClassicalResults.area (polygonHeightNiche h)) - + ((surfaceAreaMeasure K.val.val {(t.val : Real.Angle)}).toReal - + polygonCapPolylineLength K t) * varepsilon| ≤ + (Cu + Cl + Cn) * varepsilon ^ 2 + let upperResidual := + ClassicalResults.area + (independentWallCap (Function.update h t (h t + varepsilon)) (fun s ↦ h s - 1)) - + ClassicalResults.area (polygonHeightCap h) - + (surfaceAreaMeasure K.val.val {(t.val : Real.Angle)}).toReal * varepsilon + let lowerResidual := + ClassicalResults.area + (independentWallCap h + (Function.update (fun s ↦ h s - 1) t (h t - 1 + varepsilon))) - + ClassicalResults.area (polygonHeightCap h) + + (surfaceAreaMeasure K.val.val + {((t.val + Real.pi : ℝ) : Real.Angle)}).toReal * varepsilon + let nicheResidual := + ClassicalResults.area (polygonHeightNiche (Function.update h t (h t + varepsilon))) - + ClassicalResults.area (polygonHeightNiche h) + + ((surfaceAreaMeasure K.val.val + {((t.val + Real.pi : ℝ) : Real.Angle)}).toReal - + polygonCapPolylineLength K t) * varepsilon + have hn' : |nicheResidual| ≤ Cn * varepsilon ^ 2 := by + dsimp [nicheResidual] + convert hn using 1 + ring_nf + have hresidual : + (ClassicalResults.area (polygonHeightCap (Function.update h t (h t + varepsilon))) - + ClassicalResults.area + (polygonHeightNiche (Function.update h t (h t + varepsilon)))) - + (ClassicalResults.area (polygonHeightCap h) - + ClassicalResults.area (polygonHeightNiche h)) - + ((surfaceAreaMeasure K.val.val {(t.val : Real.Angle)}).toReal - + polygonCapPolylineLength K t) * varepsilon = + upperResidual + lowerResidual - nicheResidual := by + dsimp [upperResidual, lowerResidual, nicheResidual] + linarith [hadd] + rw [hresidual] + calc + |upperResidual + lowerResidual - nicheResidual| ≤ + |upperResidual + lowerResidual| + |nicheResidual| := abs_sub _ _ + _ ≤ (|upperResidual| + |lowerResidual|) + |nicheResidual| := + add_le_add (abs_add_le _ _) (le_refl _) + _ ≤ (Cu * varepsilon ^ 2 + Cl * varepsilon ^ 2) + Cn * varepsilon ^ 2 := by + exact add_le_add (add_le_add hu hl) hn' + _ = (Cu + Cl + Cn) * varepsilon ^ 2 := by ring + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Balancing +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +private lemma exists_pos_lt_of_quadratic_error {f : ℝ → ℝ} {a C η δ : ℝ} + (ha : 0 < a) (hC : 0 ≤ C) (hη : 0 < η) (hδ : 0 < δ) + (herror : ∀ ε, 0 ≤ ε → ε ≤ η → |f ε - f 0 - a * ε| ≤ C * ε ^ 2) : + ∃ ε, 0 < ε ∧ ε < δ ∧ f 0 < f ε := by + let ε := min (η / 2) (min (δ / 2) (a / (2 * (C + 1)))) + have hε : 0 < ε := lt_min (half_pos hη) + (lt_min (half_pos hδ) (div_pos ha (by positivity))) + have hεη : ε ≤ η := (min_le_left _ _).trans (by linarith) + have hεδ : ε < δ := (min_le_right _ _).trans_lt + ((min_le_left _ _).trans_lt (by linarith)) + have hεa : ε ≤ a / (2 * (C + 1)) := (min_le_right _ _).trans (min_le_right _ _) + have hprod : ε * (2 * (C + 1)) ≤ a := + (le_div_iff₀ (by positivity : 0 < 2 * (C + 1))).mp hεa + have hsmall : C * ε < a := by nlinarith + have hquad : C * ε ^ 2 < a * ε := by nlinarith [mul_pos (sub_pos.mpr hsmall) hε] + have hlower := (abs_le.mp (herror ε hε.le hεη)).1 + exact ⟨ε, hε, hεδ, by linarith⟩ + +/-- A support-height increment has the balancing first-order area term. -/ +theorem polygonCap_balancing_estimate {Θ : AngleSet} (K : PolygonCapSpace Θ) + (t : angleDomain Θ) : + ∃ C η : ℝ, 0 ≤ C ∧ 0 < η ∧ ∀ ε : ℝ, 0 ≤ ε → ε ≤ η → + |polygonHeightArea (raisedPolygonSupport K t ε) - + polygonHeightArea (raisedPolygonSupport K t 0) - + ((surfaceAreaMeasure K.val.val {(t.val : Real.Angle)}).toReal - + polygonCapPolylineLength K t) * ε| ≤ C * ε ^ 2 := by + by_cases ht : t.val ∈ ({Θ.angle, Real.pi / 2} : Set ℝ) + · exact polygonCap_balancing_estimate_of_endpoint K t ht + · exact polygonCap_balancing_estimate_of_not_endpoint K t ht + +/-- A maximum polygon cap has balanced boundary coefficients. -/ +theorem maximumPolygonCap_balanced {Θ : AngleSet} (K : PolygonCapSpace Θ) + (hK : IsMaximumPolygonCap Θ K) : IsBalancedPolygonCap K := by + classical + by_contra hnot + obtain ⟨t, ht⟩ := polygonCap_not_balanced_positive K hnot + have hnonneg : 0 ≤ polygonCapPolylineLength K t := by + unfold polygonCapPolylineLength + exact Finset.sum_nonneg (fun _ _ ↦ by split_ifs <;> positivity) + have hfinite : surfaceAreaMeasure K.val.val {(t.val : Real.Angle)} ≠ ⊤ := by + let := (surfaceAreaMeasure_face_union K.val.val).1 + exact MeasureTheory.measure_ne_top _ _ + have hpos : 0 < surfaceAreaMeasure K.val.val {(t.val : Real.Angle)} := + lt_of_le_of_lt zero_le ht + have hgain : 0 < (surfaceAreaMeasure K.val.val {(t.val : Real.Angle)}).toReal - + polygonCapPolylineLength K t := by + have hh := (ENNReal.toReal_lt_toReal ENNReal.ofReal_ne_top hfinite).mpr ht + rw [ENNReal.toReal_ofReal hnonneg] at hh + exact sub_pos.mpr hh + obtain ⟨C, η, hC, hη, herror⟩ := polygonCap_balancing_estimate K t + obtain ⟨δ, hδ, hfeasible⟩ := polygonCap_positive_height_increment K t hpos + obtain ⟨ε, hε, hεδ, harea⟩ := exists_pos_lt_of_quadratic_error hgain hC hη hδ herror + obtain ⟨K', hK'⟩ := hfeasible ε hε hεδ + obtain ⟨L, v, htranslate⟩ := K'.property + have hreduce := polygonHeightArea_le_translateArea (raisedPolygonSupport K t ε) K' hK'.symm + rw [(polygonTranslateExtensions_eq L v K' htranslate).2] at hreduce + have hzero : raisedPolygonSupport K t 0 = + (fun s ↦ supportValue (K.val.val : Set Point) (s.val : Real.Angle)) := by + funext s + simp [raisedPolygonSupport] + rw [hzero, (polygonHeightNiche_of_cap K).2] at harea + exact (not_lt_of_ge (hK.2 L)) (harea.trans_le hreduce) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Edge normals and contact vertices of a finite half-plane intersection + +A convex body presented as a finite intersection of closed half-planes has only finitely many +possible contact points and only finitely many possible proper edge normals. This file records +both facts in the form used by the discrete estimates on polygon caps: + +* `exists_active_constraint_of_mem_notMem_interior`: a boundary point activates a constraint; +* `exists_active_constraint_of_forall_notMem_add_smul`: a direction that immediately leaves the + body activates a constraint increasing along it; +* `properEdgeNormal_eq_constraint_or_add_pi`: a nondegenerate exposed edge has a constraint + normal, up to half a turn; +* `properEdgeNormal_eq_constraint`: the same, without the antipodal alternative; +* `PolygonCapSpace.properEdgeNormal_mem_allowed_or_antipodal` and + `PolygonCapSpace.properEdgeNormal_mem_allowed`: the polygon-cap versions; +* `finiteConstraintVertices`: the finite set of transversal constraint-line intersections, which + contains every singleton exposed edge; +* `PolygonCapSpace.surfaceAreaMeasure_compl_properEdgeNormals_eq_zero`: the surface measure of a + polygon cap is carried by its proper edge normals. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A point of a finite half-plane intersection off its interior lies on an active constraint. -/ +theorem exists_active_constraint_of_mem_notMem_interior + (C : Set (Real.Angle × ℝ)) (hC : C.Finite) (S : Set Point) + (hS : S = ⋂ c ∈ C, normalHalfPlane c.1 c.2 false false) + {x : Point} (hxS : x ∈ S) (hxint : x ∉ interior S) : + ∃ c ∈ C, inner ℝ x (normalVector c.1) = c.2 := by + by_contra h + push Not at h + apply hxint + rw [hS, hC.interior_biInter] + simp only [Set.mem_iInter] + intro c hc + have hxc : inner ℝ x (normalVector c.1) < c.2 := by + rw [hS] at hxS + have hle := Set.mem_iInter.mp (Set.mem_iInter.mp hxS c) hc + change inner ℝ x (normalVector c.1) ≤ c.2 at hle + exact lt_of_le_of_ne hle (h c hc) + have hUopen : IsOpen {p : Point | inner ℝ p (normalVector c.1) < c.2} := + isOpen_lt (by fun_prop) continuous_const + apply mem_interior_iff_mem_nhds.mpr + apply Filter.mem_of_superset (hUopen.mem_nhds hxc) + intro p hp + change inner ℝ p (normalVector c.1) < c.2 at hp + change inner ℝ p (normalVector c.1) ≤ c.2 + exact hp.le + +/-- A nondegenerate exposed edge has the normal angle of one of the constraints, up to half a +turn. -/ +theorem properEdgeNormal_eq_constraint_or_add_pi + (K : ConvexBody Point) (C : Set (Real.Angle × ℝ)) (hC : C.Finite) + (hK : (K : Set Point) = ⋂ c ∈ C, normalHalfPlane c.1 c.2 false false) + (t : Real.Angle) (ht : (edgeVertices K t).1 ≠ (edgeVertices K t).2) : + ∃ c ∈ C, t = c.1 ∨ t = c.1 + (Real.pi : Real.Angle) := by + set p := (edgeVertices K t).1 with hpdef + set q := (edgeVertices K t).2 with hqdef + have hp : p ∈ exposedEdge K t := edgeVertices_fst_mem K t + have hq : q ∈ exposedEdge K t := edgeVertices_snd_mem K t + have hxedge : midpoint ℝ p q ∈ exposedEdge K t := + (convex_exposedEdge K t).segment_subset hp hq (midpoint_mem_segment p q) + have hxfront : midpoint ℝ p q ∈ frontier (K : Set Point) := by + rw [← frontier_inter_supportingLine_eq_exposedEdge K t] at hxedge + exact hxedge.1 + obtain ⟨c, hcC, hcx⟩ := exists_active_constraint_of_mem_notMem_interior + C hC (K : Set Point) hK hxedge.1 hxfront.2 + refine ⟨c, hcC, ?_⟩ + have hpc : inner ℝ p (normalVector c.1) ≤ c.2 := by + have hpK : p ∈ (K : Set Point) := hp.1 + rw [hK] at hpK + exact Set.mem_iInter.mp (Set.mem_iInter.mp hpK c) hcC + have hqc : inner ℝ q (normalVector c.1) ≤ c.2 := by + have hqK : q ∈ (K : Set Point) := hq.1 + rw [hK] at hqK + exact Set.mem_iInter.mp (Set.mem_iInter.mp hqK c) hcC + rw [midpoint_eq_smul_add, inner_smul_left, inner_add_left] at hcx + norm_num at hcx + have hpcEq : inner ℝ p (normalVector c.1) = c.2 := by linarith + have hqcEq : inner ℝ q (normalVector c.1) = c.2 := by linarith + have hvt : inner ℝ (p - q) (normalVector t) = 0 := by + rw [inner_sub_left, hp.2, hq.2, sub_self] + have hvc : inner ℝ (p - q) (normalVector c.1) = 0 := by + rw [inner_sub_left, hpcEq, hqcEq, sub_self] + exact normalVector_eq_or_eq_add_pi_of_orthogonal (sub_ne_zero.mpr ht) hvt hvc + +/-- If a direction immediately leaves a finite intersection of closed half-planes at a point of +it, some constraint is active there and increases along that direction. -/ +theorem exists_active_constraint_of_forall_notMem_add_smul + (C : Set (Real.Angle × ℝ)) (hC : C.Finite) (S : Set Point) + (hS : S = ⋂ c ∈ C, normalHalfPlane c.1 c.2 false false) + {x w : Point} (hxS : x ∈ S) (hw : ∀ r : ℝ, 0 < r → x + r • w ∉ S) : + ∃ c ∈ C, inner ℝ x (normalVector c.1) = c.2 ∧ 0 < inner ℝ w (normalVector c.1) := by + by_contra hcon + push Not at hcon + have hmem : ∀ c ∈ C, inner ℝ x (normalVector c.1) ≤ c.2 := by + intro c hc + rw [hS] at hxS + have hle := Set.mem_iInter.mp (Set.mem_iInter.mp hxS c) hc + change inner ℝ x (normalVector c.1) ≤ c.2 at hle + exact hle + have hall : ∀ᶠ r : ℝ in nhdsWithin 0 (Set.Ioi 0), ∀ c ∈ C, + inner ℝ (x + r • w) (normalVector c.1) ≤ c.2 := by + refine hC.eventually_all.mpr ?_ + intro c hc + by_cases hact : inner ℝ x (normalVector c.1) = c.2 + · have hwc : inner ℝ w (normalVector c.1) ≤ 0 := hcon c hc hact + filter_upwards [self_mem_nhdsWithin] with r hr + rw [inner_add_left, real_inner_smul_left, hact] + have hrw : r * inner ℝ w (normalVector c.1) ≤ 0 := + mul_nonpos_of_nonneg_of_nonpos (le_of_lt hr) hwc + linarith + · have hlt : inner ℝ x (normalVector c.1) < c.2 := lt_of_le_of_ne (hmem c hc) hact + have hcont : Continuous fun r : ℝ ↦ inner ℝ (x + r • w) (normalVector c.1) := by + fun_prop + have h0 : inner ℝ (x + (0 : ℝ) • w) (normalVector c.1) < c.2 := by simpa using hlt + have hev := (hcont.tendsto 0).eventually (gt_mem_nhds h0) + exact (hev.filter_mono nhdsWithin_le_nhds).mono fun r hr ↦ hr.le + obtain ⟨r, hrall, hrpos⟩ := (hall.and self_mem_nhdsWithin).exists + refine hw r hrpos ?_ + rw [hS] + refine Set.mem_iInter.2 fun c ↦ Set.mem_iInter.2 fun hc ↦ ?_ + change inner ℝ (x + r • w) (normalVector c.1) ≤ c.2 + exact hrall c hc + +/-- The normal of a nondegenerate exposed edge of a finite intersection of closed half-planes is +itself a constraint normal. -/ +theorem properEdgeNormal_eq_constraint (K : ConvexBody Point) + (C : Set (Real.Angle × ℝ)) (hC : C.Finite) + (hK : (K : Set Point) = ⋂ c ∈ C, normalHalfPlane c.1 c.2 false false) + (t : Real.Angle) (ht : (edgeVertices K t).1 ≠ (edgeVertices K t).2) : + ∃ c ∈ C, t = c.1 := by + set p := (edgeVertices K t).1 with hpdef + set q := (edgeVertices K t).2 with hqdef + have hp : p ∈ exposedEdge K t := edgeVertices_fst_mem K t + have hq : q ∈ exposedEdge K t := edgeVertices_snd_mem K t + have hx : (1 / 2 : ℝ) • p + (1 / 2 : ℝ) • q ∈ exposedEdge K t := + (convex_exposedEdge K t) hp hq (by norm_num) (by norm_num) (by norm_num) + have hout : ∀ r : ℝ, 0 < r → + (1 / 2 : ℝ) • p + (1 / 2 : ℝ) • q + r • normalVector t ∉ (K : Set Point) := by + intro r hr hmemK + have hle := inner_le_supportValue K hmemK t + rw [inner_add_left, real_inner_smul_left, inner_normalVector_self_angle, mul_one, + hx.2] at hle + linarith + obtain ⟨c, hcC, hact, hpos⟩ := + exists_active_constraint_of_forall_notMem_add_smul C hC _ hK hx.1 hout + have hpc : inner ℝ p (normalVector c.1) ≤ c.2 := by + have hpK : p ∈ (K : Set Point) := hp.1 + rw [hK] at hpK + have h := Set.mem_iInter.mp (Set.mem_iInter.mp hpK c) hcC + change inner ℝ p (normalVector c.1) ≤ c.2 at h + exact h + have hqc : inner ℝ q (normalVector c.1) ≤ c.2 := by + have hqK : q ∈ (K : Set Point) := hq.1 + rw [hK] at hqK + have h := Set.mem_iInter.mp (Set.mem_iInter.mp hqK c) hcC + change inner ℝ q (normalVector c.1) ≤ c.2 at h + exact h + have hmid : inner ℝ ((1 / 2 : ℝ) • p + (1 / 2 : ℝ) • q) (normalVector c.1) = + (inner ℝ p (normalVector c.1) + inner ℝ q (normalVector c.1)) / 2 := by + rw [inner_add_left, real_inner_smul_left, real_inner_smul_left] + ring + rw [hmid] at hact + have hpceq : inner ℝ p (normalVector c.1) = c.2 := by linarith + have hqceq : inner ℝ q (normalVector c.1) = c.2 := by linarith + have hvt : inner ℝ (p - q) (normalVector t) = 0 := by + rw [inner_sub_left, hp.2, hq.2, sub_self] + have hvc : inner ℝ (p - q) (normalVector c.1) = 0 := by + rw [inner_sub_left, hpceq, hqceq, sub_self] + rcases normalVector_eq_or_eq_add_pi_of_orthogonal (sub_ne_zero.mpr ht) hvt hvc with h | h + · exact ⟨c, hcC, h⟩ + · exfalso + rw [h, normalVector_add_pi_angle, inner_neg_left, inner_normalVector_self_angle] at hpos + linarith + +/-- The allowed normal set of a polygon cap is finite. -/ +theorem finite_polygonCapNormals (Θ : AngleSet) : + (((fun r : ℝ ↦ (r : Real.Angle)) '' angleDomain Θ) ∪ + capLowerNormals Θ.angle).Finite := by + have hdomain : (angleDomain Θ).Finite := by + unfold angleDomain + exact ((Θ.directions.finite_toSet.union + (Θ.directions.finite_toSet.image (fun t ↦ t + Real.pi / 2))).union + ((Set.finite_singleton (Real.pi / 2)).insert Θ.angle)) + exact (hdomain.image _).union ((Set.finite_singleton _).insert _) + +/-- Every nondegenerate exposed edge of a polygon cap has an allowed or antipodal normal. -/ +theorem PolygonCapSpace.properEdgeNormal_mem_allowed_or_antipodal + {Θ : AngleSet} (K : PolygonCapSpace Θ) (t : Real.Angle) + (ht : (edgeVertices K.val.val t).1 ≠ (edgeVertices K.val.val t).2) : + t ∈ ((fun r : ℝ ↦ (r : Real.Angle)) '' angleDomain Θ) ∪ + capLowerNormals Θ.angle ∪ + ((fun u : Real.Angle ↦ u + (Real.pi : Real.Angle)) '' + (((fun r : ℝ ↦ (r : Real.Angle)) '' angleDomain Θ) ∪ + capLowerNormals Θ.angle)) := by + obtain ⟨C, hC, hCN, hKC⟩ := K.property.finite_constraints (finite_polygonCapNormals Θ) + obtain ⟨c, hcC, htc | htc⟩ := + properEdgeNormal_eq_constraint_or_add_pi K.val.val C hC hKC t ht + · exact Or.inl (htc ▸ hCN c hcC) + · exact Or.inr ⟨c.1, hCN c hcC, htc.symm⟩ + +/-- Every proper edge normal of a polygon cap is an allowed normal. -/ +theorem PolygonCapSpace.properEdgeNormal_mem_allowed {Θ : AngleSet} + (K : PolygonCapSpace Θ) (t : Real.Angle) + (ht : (edgeVertices K.val.val t).1 ≠ (edgeVertices K.val.val t).2) : + t ∈ ((fun r : ℝ ↦ (r : Real.Angle)) '' angleDomain Θ) ∪ capLowerNormals Θ.angle := by + obtain ⟨C, hC, hCN, hKC⟩ := K.property.finite_constraints (finite_polygonCapNormals Θ) + obtain ⟨c, hcC, htc⟩ := properEdgeNormal_eq_constraint K.val.val C hC hKC t ht + exact htc ▸ hCN c hcC + +/-- The finitely many transversal intersection points of a finite constraint family. -/ +def finiteConstraintVertices (C : Set (Real.Angle × ℝ)) : Set Point := by + classical + exact ⋃ c ∈ C, ⋃ d ∈ C, + if c.1 = d.1 ∨ c.1 = d.1 + (Real.pi : Real.Angle) then ∅ + else normalLine c.1 c.2 ∩ normalLine d.1 d.2 + +/-- A finite constraint family has finitely many transversal intersection points. -/ +theorem finite_finiteConstraintVertices (C : Set (Real.Angle × ℝ)) + (hC : C.Finite) : (finiteConstraintVertices C).Finite := by + classical + unfold finiteConstraintVertices + refine hC.biUnion fun c _ ↦ hC.biUnion fun d _ ↦ ?_ + split_ifs with hparallel + · exact Set.finite_empty + · apply Set.Subsingleton.finite + intro p hp q hq + simp only [Set.mem_inter_iff, normalLine, Set.mem_ofPred_eq] at hp hq + by_contra hpq + have hcorth : inner ℝ (p - q) (normalVector c.1) = 0 := by + rw [inner_sub_left, hp.1, hq.1, sub_self] + have hdorth : inner ℝ (p - q) (normalVector d.1) = 0 := by + rw [inner_sub_left, hp.2, hq.2, sub_self] + exact hparallel (normalVector_eq_or_eq_add_pi_of_orthogonal + (sub_ne_zero.mpr hpq) hcorth hdorth) + +/-- A singleton exposed edge of a finite half-plane intersection is a constraint vertex. -/ +theorem singleton_exposedEdge_mem_finiteConstraintVertices + (C : Set (Real.Angle × ℝ)) (hC : C.Finite) (K : ConvexBody Point) + (hK : (K : Set Point) = ⋂ c ∈ C, normalHalfPlane c.1 c.2 false false) + {t : Real.Angle} {p : Point} (hp : exposedEdge K t = {p}) : + p ∈ finiteConstraintVertices C := by + classical + have hpedge : p ∈ exposedEdge K t := by rw [hp]; exact Set.mem_singleton p + have hpfront : p ∈ frontier (K : Set Point) := by + rw [← frontier_inter_supportingLine_eq_exposedEdge K t] at hpedge + exact hpedge.1 + obtain ⟨c, hc, hpc⟩ := exists_active_constraint_of_mem_notMem_interior + C hC (K : Set Point) hK hpedge.1 hpfront.2 + by_contra hnot + have hparallel (d : Real.Angle × ℝ) (hd : d ∈ C) + (hpd : inner ℝ p (normalVector d.1) = d.2) : + c.1 = d.1 ∨ c.1 = d.1 + (Real.pi : Real.Angle) := by + by_contra hnon + apply hnot + unfold finiteConstraintVertices + exact Set.mem_iUnion.2 ⟨c, Set.mem_iUnion.2 ⟨hc, Set.mem_iUnion.2 ⟨d, + Set.mem_iUnion.2 ⟨hd, by simp only [hnon, ↓reduceIte]; exact ⟨hpc, hpd⟩⟩⟩⟩⟩ + have horth : inner ℝ (tangentVector c.1) (normalVector c.1) = 0 := by + induction c.1 using Real.Angle.induction_on with + | _ r => rw [real_inner_comm, inner_normalVector_tangentVector] + have hvne : tangentVector c.1 ≠ 0 := by + have hvself : inner ℝ (tangentVector c.1) (tangentVector c.1) = 1 := by + induction c.1 using Real.Angle.induction_on with + | _ r => exact inner_tangentVector_self r + intro hv + simp [hv] at hvself + have hevent : ∀ᶠ r : ℝ in nhds 0, p + r • tangentVector c.1 ∈ (K : Set Point) := by + have hall : ∀ᶠ r : ℝ in nhds 0, ∀ d ∈ C, + inner ℝ (p + r • tangentVector c.1) (normalVector d.1) ≤ d.2 := by + apply hC.eventually_all.mpr + intro d hd + by_cases hpd : inner ℝ p (normalVector d.1) = d.2 + · have hvd : inner ℝ (tangentVector c.1) (normalVector d.1) = 0 := by + rcases hparallel d hd hpd with heq | heq + · rwa [← heq] + · have hnn : normalVector d.1 = -normalVector c.1 := by + rw [heq, normalVector_add_pi_angle, neg_neg] + rw [hnn, inner_neg_right, horth, neg_zero] + exact Filter.Eventually.of_forall fun r ↦ by + rw [inner_add_left, real_inner_smul_left, hvd, mul_zero, add_zero, hpd] + · have hple : inner ℝ p (normalVector d.1) ≤ d.2 := by + have hm := hpedge.1 + rw [hK] at hm + exact Set.mem_iInter.mp (Set.mem_iInter.mp hm d) hd + have hlt : inner ℝ p (normalVector d.1) < d.2 := lt_of_le_of_ne hple hpd + have hcont : Continuous + (fun r : ℝ ↦ inner ℝ (p + r • tangentVector c.1) (normalVector d.1)) := by + fun_prop + have hzero : inner ℝ (p + (0 : ℝ) • tangentVector c.1) (normalVector d.1) < d.2 := by + simpa using hlt + filter_upwards [(hcont.tendsto 0).eventually (gt_mem_nhds hzero)] with r hr + exact hr.le + filter_upwards [hall] with r hr + rw [hK] + exact Set.mem_iInter.2 fun d ↦ Set.mem_iInter.2 fun hd ↦ hr d hd + obtain ⟨ε, hε, hball⟩ := Metric.mem_nhds_iff.mp hevent + have hplus : p + (ε / 2) • tangentVector c.1 ∈ (K : Set Point) := hball (by + simp only [Metric.mem_ball, dist_zero_right, Real.norm_eq_abs] + rw [abs_of_pos (by positivity : 0 < ε / 2)] + linarith) + have hminus : p + (-(ε / 2)) • tangentVector c.1 ∈ (K : Set Point) := hball (by + simp only [Metric.mem_ball, dist_zero_right, Real.norm_eq_abs, abs_neg] + rw [abs_of_pos (by positivity : 0 < ε / 2)] + linarith) + have hplusle := inner_le_supportValue K hplus t + have hminusle := inner_le_supportValue K hminus t + rw [inner_add_left, real_inner_smul_left, hpedge.2] at hplusle hminusle + have hvt : inner ℝ (tangentVector c.1) (normalVector t) = 0 := by nlinarith + have hplusface : p + (ε / 2) • tangentVector c.1 ∈ exposedEdge K t := by + refine ⟨hplus, ?_⟩ + change inner ℝ (p + (ε / 2) • tangentVector c.1) (normalVector t) = supportValue K t + rw [inner_add_left, real_inner_smul_left, hvt, mul_zero, add_zero, hpedge.2] + rw [hp, Set.mem_singleton_iff] at hplusface + have hzero : (ε / 2) • tangentVector c.1 = 0 := + add_left_cancel (show p + (ε / 2) • tangentVector c.1 = p + 0 by simpa using hplusface) + exact hvne ((smul_eq_zero.mp hzero).resolve_left (ne_of_gt (by positivity))) + +/-- The transversal constraint vertices form a one-dimensional null set. -/ +theorem finiteConstraintVertices_measure_zero (C : Set (Real.Angle × ℝ)) + (hC : C.Finite) : + MeasureTheory.Measure.hausdorffMeasure 1 (finiteConstraintVertices C) = 0 := by + let _ := MeasureTheory.Measure.nullSingletonClass_hausdorff Point (by norm_num : (0 : ℝ) < 1) + exact (finite_finiteConstraintVertices C hC).measure_zero _ + +/-- Surface measure of a finite intersection of closed half-planes is carried by its proper +edge normals. -/ +theorem surfaceAreaMeasure_compl_properEdgeNormals_eq_zero_of_finite_constraints + (C : Set (Real.Angle × ℝ)) (hC : C.Finite) (K : ConvexBody Point) + (hK : (K : Set Point) = ⋂ c ∈ C, normalHalfPlane c.1 c.2 false false) : + surfaceAreaMeasure K {t | (edgeVertices K t).1 = (edgeVertices K t).2} = 0 := by + have hN : {t | (edgeVertices K t).1 ≠ (edgeVertices K t).2}.Finite := by + apply (hC.image Prod.fst).subset + intro t ht + obtain ⟨c, hc, heq⟩ := properEdgeNormal_eq_constraint K C hC hK t ht + exact ⟨c, hc, heq.symm⟩ + apply surfaceAreaMeasure_compl_properEdgeNormals_eq_zero_of_finite_carrier + K hN (finiteConstraintVertices C) (finiteConstraintVertices_measure_zero C hC) + intro p hp + obtain ⟨t, ht, hp⟩ := Set.mem_iUnion₂.mp hp + have hsingle : exposedEdge K t = {(edgeVertices K t).1} := by + rw [exposedEdge_eq_segment_edgeVertices, ht, segment_same] + have hpeq : p = (edgeVertices K t).1 := by simpa [hsingle] using hp + exact hpeq ▸ singleton_exposedEdge_mem_finiteConstraintVertices C hC K hK hsingle + +/-- Surface measure of a polygon cap is carried by its proper edge normals. -/ +theorem PolygonCapSpace.surfaceAreaMeasure_compl_properEdgeNormals_eq_zero + {Θ : AngleSet} (K : PolygonCapSpace Θ) : + surfaceAreaMeasure K.val.val + {t | (edgeVertices K.val.val t).1 = (edgeVertices K.val.val t).2} = 0 := by + obtain ⟨C, hC, _, hKC⟩ := K.property.finite_constraints (finite_polygonCapNormals Θ) + exact surfaceAreaMeasure_compl_properEdgeNormals_eq_zero_of_finite_constraints + C hC K.val.val hKC + +end MovingSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/Development/Geometry/Applications/Development002.lean b/LeanPool/MovingSofa/Development/Geometry/Applications/Development002.lean new file mode 100644 index 0000000000..a4c274c9cd --- /dev/null +++ b/LeanPool/MovingSofa/Development/Geometry/Applications/Development002.lean @@ -0,0 +1,7720 @@ +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +module + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development005 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development006 +public import LeanPool.MovingSofa.Development.Geometry.Applications.Development001 + + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development007 + + + + + + + + + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development001 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development002 + + + + + +/-! +# Moving sofa: related mathematical developments + +* `Bounds.Applications.Development001`. +* `Cap.Applications.Development002`. +* `Polygon.Applications.Development002`. +* `Cap.Applications.Development003`. +* `Bounds.Applications.Development002`. +* `Cap.Applications.Development004`. +* `Gerver.Applications.Development003`. +* `Cap.Applications.Development005`. +* `Cap.Applications.Development006`. +* `Area.Applications.Development004`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Bounds.Arm.Estimates`. +* `Bounds.WedgeGap.Infimum`. +* `Bounds.WedgeGap.Limit`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Bounds / Arm / Estimates +-/ + +@[expose] public section + +noncomputable section + +open Filter MeasureTheory Set +open scoped Topology BoundedContinuousFunction + +namespace MovingSofa + +private def positiveArmKernel (t : ℝ) (u : Real.Angle) : ℝ := + if 0 < (u - (t : Real.Angle)).sin ∧ 0 ≤ (u - (t : Real.Angle)).cos then + (u - (t : Real.Angle)).sin + else 0 + +private theorem measurable_positiveArmKernel : + Measurable (Function.uncurry positiveArmKernel) := by + have hs : Continuous (fun z : ℝ × Real.Angle ↦ + (z.2 - (z.1 : Real.Angle)).sin) := + Real.Angle.continuous_sin.comp + (continuous_snd.sub (Real.Angle.continuous_coe.comp continuous_fst)) + have hc : Continuous (fun z : ℝ × Real.Angle ↦ + (z.2 - (z.1 : Real.Angle)).cos) := + Real.Angle.continuous_cos.comp + (continuous_snd.sub (Real.Angle.continuous_coe.comp continuous_fst)) + exact hs.measurable.piecewise + ((measurableSet_lt measurable_const hs.measurable).inter + (measurableSet_le measurable_const hc.measurable)) measurable_const + +private theorem mem_positiveArmArc_iff {t : ℝ} (u : Real.Angle) : + u ∈ (fun s : ℝ ↦ (s : Real.Angle)) '' Ioc t (t + Real.pi / 2) ↔ + 0 < (u - (t : Real.Angle)).sin ∧ 0 ≤ (u - (t : Real.Angle)).cos := by + constructor + · rintro ⟨x, hx, rfl⟩ + simp only [← Real.Angle.coe_sub, Real.Angle.sin_coe, Real.Angle.cos_coe] + exact ⟨Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hx.1) + (by linarith [hx.2, Real.pi_pos]), + Real.cos_nonneg_of_mem_Icc ⟨by linarith [Real.pi_pos, hx.1], by linarith [hx.2]⟩⟩ + · intro hu + let d := (u - (t : Real.Angle)).toReal + have hdpos : 0 < d := by + have hsign : (u - (t : Real.Angle)).sign = 1 := by + simpa only [Real.Angle.sign, sign_eq_one_iff] using hu.1 + exact (Real.Angle.toReal_mem_Ioo_iff_sign_pos.mpr hsign).1 + have hdle : d ≤ Real.pi / 2 := by + have habs := Real.Angle.cos_nonneg_iff_abs_toReal_le_pi_div_two.1 hu.2 + exact (le_abs_self d).trans habs + refine ⟨t + d, ⟨by linarith, by linarith⟩, ?_⟩ + change (((t + d : ℝ) : Real.Angle)) = u + calc + (((t + d : ℝ) : Real.Angle)) = (t : Real.Angle) + (d : Real.Angle) := + Real.Angle.coe_add t d + _ = (t : Real.Angle) + (u - (t : Real.Angle)) := by + congr 1 + exact Real.Angle.coe_toReal (u - (t : Real.Angle)) + _ = u := by abel + +private theorem positiveArmKernel_eq_indicator (t : ℝ) : + positiveArmKernel t = + ((fun s : ℝ ↦ (s : Real.Angle)) '' Ioc t (t + Real.pi / 2)).indicator + (fun u ↦ (u - (t : Real.Angle)).sin) := by + classical + funext u + rw [Set.indicator_apply] + simp only [positiveArmKernel, mem_positiveArmArc_iff] + +private theorem stronglyMeasurable_integral_positiveArmKernel (μ : Measure Real.Angle) + [SFinite μ] : StronglyMeasurable (fun t ↦ ∫ u, positiveArmKernel t u ∂μ) := by + exact measurable_positiveArmKernel.stronglyMeasurable.integral_prod_right + +/-- The positive tangent arm length is almost everywhere strongly measurable. -/ +theorem aestronglyMeasurable_tangentArm_fst (C : RightAngleCapSpace) : + AEStronglyMeasurable (fun t ↦ (tangentArmLengths C t).2.1) + (volume.restrict (Ioc 0 (Real.pi / 2))) := by + let _ : IsFiniteMeasure (surfaceAreaMeasure C.val) := + (surfaceAreaMeasure_face_union C.val).1 + apply (stronglyMeasurable_integral_positiveArmKernel + (surfaceAreaMeasure C.val)).aestronglyMeasurable.congr + filter_upwards [] with t + rw [tangentArm_convolution C t, positiveArmKernel_eq_indicator] + exact integral_indicator (μ := surfaceAreaMeasure C.val) + (f := fun u : Real.Angle ↦ (u - (t : Real.Angle)).sin) + (Real.Angle.measurableSet_image_Ioc t (t + Real.pi / 2)) + +/-- The positive tangent arm length is nonnegative: it is the integral of the sine of a +quarter-turn of normal directions against the surface area measure. -/ +theorem tangentArm_fst_nonneg (C : RightAngleCapSpace) {t : ℝ} : + 0 ≤ (tangentArmLengths C t).2.1 := by + rw [tangentArm_convolution C t] + refine setIntegral_nonneg (Real.Angle.measurableSet_image_Ioc t (t + Real.pi / 2)) ?_ + rintro u ⟨v, hv, rfl⟩ + rw [← Real.Angle.coe_sub, Real.Angle.sin_coe] + exact Real.sin_nonneg_of_nonneg_of_le_pi (by linarith [hv.1]) + (by linarith [hv.2, Real.pi_pos]) + +/-- Both right tangent arm lengths of a right-angle cap are nonnegative: the outer corner +realizes the support value in the tangent direction, while the two contacts lie in the cap. -/ +theorem tangentArmLengths_right_nonneg (K : RightAngleCapSpace) (t : ℝ) : + 0 ≤ (tangentArmLengths K t).1.1 ∧ 0 ≤ (tangentArmLengths K t).1.2 := by + have hy : inner ℝ (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).outerCorner + (tangentVector (t : Real.Angle)) = + supportValue K.val ((t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) := by + change inner ℝ (supportingPlacement (K.val : Set Point) (t : Real.Angle) + hallwayParts.outerCorner) _ = _ + rw [inner_supportingPlacement_tangentVector] + simp [hallwayParts] + have hmem (p : Point) (hp : p ∈ (K.val : Set Point)) : + inner ℝ p (tangentVector (t : Real.Angle)) ≤ + supportValue K.val ((t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) := by + rw [← normalVector_add_pi_div_two (t : Real.Angle)] + exact inner_le_supportValue K.val hp _ + simp only [tangentArmLengths, capVertices, inner_sub_left, hy] + exact ⟨sub_nonneg.mpr (hmem _ (edgeVertices_fst_mem K.val _).1), + sub_nonneg.mpr (hmem _ (edgeVertices_snd_mem K.val _).1)⟩ + +/-- The positive tangent arm length is bounded by the total mass of the surface area measure. -/ +theorem abs_tangentArm_fst_le (C : RightAngleCapSpace) {t : ℝ} : + |(tangentArmLengths C t).2.1| ≤ (surfaceAreaMeasure C.val).real Set.univ := by + let _ : IsFiniteMeasure (surfaceAreaMeasure C.val) := + (surfaceAreaMeasure_face_union C.val).1 + rw [tangentArm_convolution C t] + change ‖∫ u in (fun s : ℝ ↦ (s : Real.Angle)) '' Ioc t (t + Real.pi / 2), + (u - (t : Real.Angle)).sin ∂surfaceAreaMeasure C.val‖ ≤ _ + calc + _ ≤ 1 * (surfaceAreaMeasure C.val).real + ((fun s : ℝ ↦ (s : Real.Angle)) '' Ioc t (t + Real.pi / 2)) := by + apply norm_setIntegral_le_of_norm_le_const + · finiteness + · intro u hu + simp only [Real.norm_eq_abs] + rw [← Real.Angle.sin_toReal] + exact Real.abs_sin_le_one _ + _ ≤ (surfaceAreaMeasure C.val).real Set.univ := by + simpa only [one_mul] using + measureReal_mono (μ := surfaceAreaMeasure C.val) (Set.subset_univ _) + (measure_ne_top _ _) + +/-- The positive tangent arm length is bounded by the total surface mass, hence integrable. -/ +theorem intervalIntegrable_tangentArm_fst (C : RightAngleCapSpace) : + IntervalIntegrable (fun t ↦ (tangentArmLengths C t).2.1) + volume 0 (Real.pi / 2) := by + apply (intervalIntegrable_iff_integrableOn_Ioc_of_le (by positivity)).2 + apply (integrableOn_const + (μ := volume) (s := Ioc 0 (Real.pi / 2)) (measure_Ioc_lt_top.ne) + (C := (surfaceAreaMeasure C.val).real Set.univ)).mono' + (aestronglyMeasurable_tangentArm_fst C) + filter_upwards [] with t + exact abs_tangentArm_fst_le C + +private theorem maximumPolygonCap_diam_le (n : ℕ) (K : RightAngleCapSpace) + (hK : IsMaximumPolygonCapSteps n K) : Metric.diam (K.val : Set Point) ≤ 5 := by + classical + obtain ⟨hn, ⟨k, hk⟩, P, hPK, hmax⟩ := hK + have hs2 : Real.sqrt 2 * Real.sqrt 2 = 2 := Real.mul_self_sqrt (by norm_num) + have hs2pos : (0 : ℝ) < Real.sqrt 2 := Real.sqrt_pos.mpr (by norm_num) + have hs2lt : Real.sqrt 2 < 3 / 2 := by nlinarith + have hinner : ∀ (p : Point) (s : ℝ), + inner ℝ p (normalVector (s : Real.Angle)) = p 0 * Real.cos s + p 1 * Real.sin s := by + intro p s + simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two, Real.Angle.cos_coe, + Real.Angle.sin_coe] + ring + have hc1 : Real.cos (Real.pi / 4) = Real.sqrt 2 / 2 := Real.cos_pi_div_four + have hsn1 : Real.sin (Real.pi / 4) = Real.sqrt 2 / 2 := Real.sin_pi_div_four + have hc2 : Real.cos (Real.pi / 4 + Real.pi / 2) = -(Real.sqrt 2 / 2) := by + rw [Real.cos_add, Real.cos_pi_div_four, Real.sin_pi_div_four, Real.cos_pi_div_two, + Real.sin_pi_div_two] + ring + have hsn2 : Real.sin (Real.pi / 4 + Real.pi / 2) = Real.sqrt 2 / 2 := by + rw [Real.sin_add, Real.cos_pi_div_four, Real.sin_pi_div_four, Real.cos_pi_div_two, + Real.sin_pi_div_two] + ring + set h1 : ℝ := supportValue (K.val : Set Point) ((Real.pi / 4 : ℝ) : Real.Angle) + set h2 : ℝ := supportValue (K.val : Set Point) + ((Real.pi / 4 + Real.pi / 2 : ℝ) : Real.Angle) + have htop : ∀ p ∈ (K.val : Set Point), p 1 ≤ 1 := by + intro p hp + have hle := inner_le_supportValue K.val hp ((Real.pi / 2 : ℝ) : Real.Angle) + rw [hinner, Real.cos_pi_div_two, Real.sin_pi_div_two, K.property.2.2.2.1] at hle + linarith + have hbot : ∀ p ∈ (K.val : Set Point), 0 ≤ p 1 := by + intro p hp + have hle := inner_le_supportValue K.val hp ((3 * Real.pi / 2 : ℝ) : Real.Angle) + have hcc : Real.cos (3 * Real.pi / 2) = 0 := by + rw [show (3 : ℝ) * Real.pi / 2 = Real.pi + Real.pi / 2 by ring, Real.cos_add, + Real.cos_pi, Real.sin_pi, Real.cos_pi_div_two, Real.sin_pi_div_two] + ring + have hss : Real.sin (3 * Real.pi / 2) = -1 := by + rw [show (3 : ℝ) * Real.pi / 2 = Real.pi + Real.pi / 2 by ring, Real.sin_add, + Real.cos_pi, Real.sin_pi, Real.cos_pi_div_two, Real.sin_pi_div_two] + ring + rw [hinner, hcc, hss, K.property.2.2.2.2.2.1] at hle + linarith + have hsupp1 : ∀ p ∈ (K.val : Set Point), + p 0 * (Real.sqrt 2 / 2) + p 1 * (Real.sqrt 2 / 2) ≤ h1 := by + intro p hp + have hle := inner_le_supportValue K.val hp ((Real.pi / 4 : ℝ) : Real.Angle) + rwa [hinner, hc1, hsn1] at hle + have hsupp2 : ∀ p ∈ (K.val : Set Point), + p 0 * -(Real.sqrt 2 / 2) + p 1 * (Real.sqrt 2 / 2) ≤ h2 := by + intro p hp + have hle := inner_le_supportValue K.val hp ((Real.pi / 4 + Real.pi / 2 : ℝ) : Real.Angle) + rwa [hinner, hc2, hsn2] at hle + -- the diagonal angle belongs to the dyadic grid + have hdir : (rightAngleSet n hn).directions = + (Finset.Ioo 0 n).image (fun i : ℕ ↦ (i : ℝ) / n * (Real.pi / 2)) := rfl + have hquarter : Real.pi / 4 ∈ (rightAngleSet n hn).directions := by + obtain ⟨m, rfl⟩ : ∃ m, k = m + 1 := by + cases k with + | zero => rw [pow_zero] at hk; omega + | succ m => exact ⟨m, rfl⟩ + rw [hdir] + refine Finset.mem_image.mpr ⟨2 ^ m, Finset.mem_Ioo.mpr ⟨?_, ?_⟩, ?_⟩ + · positivity + · rw [hk] + exact Nat.pow_lt_pow_right (by norm_num) (Nat.lt_succ_self m) + · rw [hk] + have hpos : (0 : ℝ) < 2 ^ m := by positivity + push_cast + rw [pow_succ] + field_simp + ring + -- the inner corner at the diagonal angle has height at most one + have hsum : h1 + h2 ≤ 2 + Real.sqrt 2 := by + by_contra hcon + rw [not_le] at hcon + set e : ℝ := (h1 + h2 - 2 - Real.sqrt 2) / 4 with he + have hepos : 0 < e := by rw [he]; linarith + set q : Point := !₂[Real.sqrt 2 / 2 * (h1 - h2), + Real.sqrt 2 / 2 * (h1 + h2 - 2 - 2 * e)] + have hq0 : q 0 = Real.sqrt 2 / 2 * (h1 - h2) := rfl + have hq1 : q 1 = Real.sqrt 2 / 2 * (h1 + h2 - 2 - 2 * e) := rfl + have hqheight : 1 < q 1 := by + rw [hq1, he] + nlinarith + have hqu : inner ℝ q (normalVector ((Real.pi / 4 : ℝ) : Real.Angle)) = h1 - 1 - e := by + rw [hinner, hq0, hq1, hc1, hsn1] + linear_combination ((h1 - 1 - e) / 2) * hs2 + have hqv : inner ℝ q (normalVector ((Real.pi / 4 + Real.pi / 2 : ℝ) : Real.Angle)) + = h2 - 1 - e := by + rw [hinner, hq0, hq1, hc2, hsn2] + linear_combination ((h2 - 1 - e) / 2) * hs2 + have hqe : inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = q 1 := by + rw [hinner, Real.cos_pi_div_two, Real.sin_pi_div_two] + ring + have hangle : (rightAngleSet n hn).angle = Real.pi / 2 := rfl + have hfan : q ∈ capFan (rightAngleSet n hn).angle := by + rw [hangle] + refine ⟨?_, ?_⟩ <;> + · change (0 : ℝ) ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + rw [hqe] + linarith + have hquad : q ∈ innerQuadrant (P.val.val : Set Point) (Real.pi / 4) := by + rw [hPK] + refine ⟨?_, ?_⟩ + · change inner ℝ q (normalVector ((Real.pi / 4 : ℝ) : Real.Angle)) < h1 - 1 + rw [hqu] + linarith + · change inner ℝ q (normalVector ((Real.pi / 4 + Real.pi / 2 : ℝ) : Real.Angle)) < h2 - 1 + rw [hqv] + linarith + have hmemniche : q ∈ polygonNiche (rightAngleSet n hn) P.val := + ⟨hfan, Set.mem_biUnion hquarter hquad⟩ + have hsub := polygonNiche_subset_of_balanced P (maximumPolygonCap_balanced P hmax) + have hqK : q ∈ (P.val.val : Set Point) := hsub hmemniche + rw [hPK] at hqK + exact absurd (htop q hqK) (not_le.mpr hqheight) + -- the outer corner height and the trapezoid containing the cap + set hgt : ℝ := Real.sqrt 2 / 2 * (h1 + h2) with hgtdef + set ctr : ℝ := Real.sqrt 2 / 2 * (h1 - h2) with hctrdef + have hgtle : hgt ≤ 1 + Real.sqrt 2 := by + rw [hgtdef] + nlinarith + have hsum1 : hgt + ctr = Real.sqrt 2 * h1 := by rw [hgtdef, hctrdef]; ring + have hsum2 : hgt - ctr = Real.sqrt 2 * h2 := by rw [hgtdef, hctrdef]; ring + have htrap1 : ∀ p ∈ (K.val : Set Point), p 0 + p 1 ≤ hgt + ctr := by + intro p hp + have hm := mul_le_mul_of_nonneg_left (hsupp1 p hp) hs2pos.le + have hkey : Real.sqrt 2 * (p 0 * (Real.sqrt 2 / 2) + p 1 * (Real.sqrt 2 / 2)) + = p 0 + p 1 := by linear_combination (p 0 / 2 + p 1 / 2) * hs2 + rw [hkey] at hm + linarith + have htrap2 : ∀ p ∈ (K.val : Set Point), p 1 - p 0 ≤ hgt - ctr := by + intro p hp + have hm := mul_le_mul_of_nonneg_left (hsupp2 p hp) hs2pos.le + have hkey : Real.sqrt 2 * (p 0 * -(Real.sqrt 2 / 2) + p 1 * (Real.sqrt 2 / 2)) + = p 1 - p 0 := by linear_combination (p 1 / 2 - p 0 / 2) * hs2 + rw [hkey] at hm + linarith + have hgtge : 1 ≤ hgt := by + have hle : supportValue (K.val : Set Point) ((Real.pi / 2 : ℝ) : Real.Angle) ≤ hgt := by + apply csSup_le (K.val.nonempty.image _) + rintro _ ⟨p, hp, rfl⟩ + change inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) ≤ hgt + rw [hinner, Real.cos_pi_div_two, Real.sin_pi_div_two] + have h1p := htrap1 p hp + have h2p := htrap2 p hp + linarith + rw [K.property.2.2.2.1] at hle + exact hle + -- every distance inside the trapezoid is at most the length of its bottom side + have hdiam : Metric.diam (K.val : Set Point) ≤ 2 * hgt := by + refine Metric.diam_le_of_forall_dist_le (by linarith) ?_ + intro p hp q hq + have hp1 := htrap1 p hp + have hp2 := htrap2 p hp + have hq1 := htrap1 q hq + have hq2 := htrap2 q hq + have hpt := htop p hp + have hpb := hbot p hp + have hqt := htop q hq + have hqb := hbot q hq + have hd : dist p q = Real.sqrt ((p 0 - q 0) ^ 2 + (p 1 - q 1) ^ 2) := by + rw [EuclideanSpace.dist_eq, Fin.sum_univ_two] + simp [Real.dist_eq, sq_abs] + rw [hd, show (2 : ℝ) * hgt = Real.sqrt ((2 * hgt) ^ 2) from + (Real.sqrt_sq (by linarith)).symm] + apply Real.sqrt_le_sqrt + have kx : (p 0 - q 0) ^ 2 ≤ (2 * hgt - p 1 - q 1) ^ 2 := by + nlinarith [mul_nonneg (by linarith : (0 : ℝ) ≤ 2 * hgt - p 1 - q 1 - (p 0 - q 0)) + (by linarith : (0 : ℝ) ≤ 2 * hgt - p 1 - q 1 + (p 0 - q 0))] + nlinarith [kx, mul_nonneg (by linarith : (0 : ℝ) ≤ 4 * hgt - 2) + (by linarith : (0 : ℝ) ≤ p 1 + q 1), + mul_nonneg hpb (by linarith : (0 : ℝ) ≤ 1 - p 1), + mul_nonneg hqb (by linarith : (0 : ℝ) ≤ 1 - q 1)] + have hdiam5 : Metric.diam (K.val : Set Point) ≤ 5 := by linarith + exact hdiam5 + +private theorem tangentArmLengths_le_of_diam (K : RightAngleCapSpace) + (hdiam5 : Metric.diam (K.val : Set Point) ≤ 5) : + ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + (tangentArmLengths K t).1.1 ∈ Set.Icc (0 : ℝ) 5 ∧ + (tangentArmLengths K t).1.2 ∈ Set.Icc (0 : ℝ) 5 ∧ + (tangentArmLengths K t).2.1 ∈ Set.Icc (0 : ℝ) 5 ∧ + (tangentArmLengths K t).2.2 ∈ Set.Icc (0 : ℝ) 5 := by + intro t ht + obtain ⟨hAp, hAm, hCp, hCm⟩ := capTangentArm_identities K t + have huu : inner ℝ (normalVector (t : Real.Angle)) (normalVector (t : Real.Angle)) = 1 := + inner_normalVector_self t + have hvv : inner ℝ (tangentVector (t : Real.Angle)) (tangentVector (t : Real.Angle)) = 1 := + inner_tangentVector_self t + have huv : inner ℝ (normalVector (t : Real.Angle)) (tangentVector (t : Real.Angle)) = 0 := + inner_normalVector_tangentVector t + have hvu : inner ℝ (tangentVector (t : Real.Angle)) (normalVector (t : Real.Angle)) = 0 := by + rw [real_inner_comm, huv] + have hnu : ‖normalVector (t : Real.Angle)‖ = 1 := norm_normalVector_real t + have hvn : normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle) = + tangentVector (t : Real.Angle) := by + rw [Real.Angle.coe_add, normalVector_add_pi_div_two] + have hnv : ‖tangentVector (t : Real.Angle)‖ = 1 := by + rw [← hvn] + exact norm_normalVector_real _ + have hyu : inner ℝ (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).outerCorner + (normalVector (t : Real.Angle)) = supportValue (K.val : Set Point) (t : Real.Angle) := by + rw [outerCorner_eq_support_sum, inner_add_left, real_inner_smul_left, real_inner_smul_left, + huu, hvu] + ring + have hyv : inner ℝ (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).outerCorner + (tangentVector (t : Real.Angle)) = + supportValue (K.val : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) := by + rw [outerCorner_eq_support_sum, inner_add_left, real_inner_smul_left, real_inner_smul_left, + huv, hvv] + ring + have hApmem : (capVertices K t).1.1 ∈ (K.val : Set Point) := + (edgeVertices_fst_mem K.val (t : Real.Angle)).1 + have hAmmem : (capVertices K t).1.2 ∈ (K.val : Set Point) := + (edgeVertices_snd_mem K.val (t : Real.Angle)).1 + have hCpmem : (capVertices K t).2.1 ∈ (K.val : Set Point) := + (edgeVertices_fst_mem K.val ((t + Real.pi / 2 : ℝ) : Real.Angle)).1 + have hCmmem : (capVertices K t).2.2 ∈ (K.val : Set Point) := + (edgeVertices_snd_mem K.val ((t + Real.pi / 2 : ℝ) : Real.Angle)).1 + have hsupv : ∀ p ∈ (K.val : Set Point), + inner ℝ p (tangentVector (t : Real.Angle)) ≤ + supportValue (K.val : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) := by + intro p hp + have hle := inner_le_supportValue K.val hp ((t + Real.pi / 2 : ℝ) : Real.Angle) + rwa [hvn] at hle + have hsupu : ∀ p ∈ (K.val : Set Point), + inner ℝ p (normalVector (t : Real.Angle)) ≤ + supportValue (K.val : Set Point) (t : Real.Angle) := + fun p hp ↦ inner_le_supportValue K.val hp (t : Real.Angle) + -- the arm identities in projected form + have harm : ∀ (A C : Point) (f g : ℝ), + (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).outerCorner = + A + f • tangentVector (t : Real.Angle) → + (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).outerCorner = + C + g • normalVector (t : Real.Angle) → + A ∈ (K.val : Set Point) → C ∈ (K.val : Set Point) → + (f ∈ Set.Icc (0 : ℝ) 5 ∧ g ∈ Set.Icc (0 : ℝ) 5) := by + intro A C f g hfA hgC hAmem hCmem + have hfv : inner ℝ A (tangentVector (t : Real.Angle)) + f = + supportValue (K.val : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) := by + rw [← hyv, hfA, inner_add_left, real_inner_smul_left, hvv] + ring + have hgu : inner ℝ C (normalVector (t : Real.Angle)) + g = + supportValue (K.val : Set Point) (t : Real.Angle) := by + rw [← hyu, hgC, inner_add_left, real_inner_smul_left, huu] + ring + have hAC : A + f • tangentVector (t : Real.Angle) = C + g • normalVector (t : Real.Angle) := + hfA ▸ hgC + have hprojv := congrArg (fun z : Point ↦ inner ℝ z (tangentVector (t : Real.Angle))) hAC + have hproju := congrArg (fun z : Point ↦ inner ℝ z (normalVector (t : Real.Angle))) hAC + simp only [inner_add_left, real_inner_smul_left, hvv, hvu, huu, huv, mul_one, + mul_zero, add_zero] at hprojv hproju + have hdist : dist A C ≤ Metric.diam (K.val : Set Point) := + Metric.dist_le_diam_of_mem K.val.isCompact.isBounded hAmem hCmem + have hfeq : f = inner ℝ (C - A) (tangentVector (t : Real.Angle)) := by + rw [inner_sub_left] + linarith + have hgeq : g = inner ℝ (A - C) (normalVector (t : Real.Angle)) := by + rw [inner_sub_left] + linarith + constructor + · refine ⟨by linarith [hsupv A hAmem], ?_⟩ + have hb : inner ℝ (C - A) (tangentVector (t : Real.Angle)) ≤ + ‖C - A‖ * ‖tangentVector (t : Real.Angle)‖ := real_inner_le_norm _ _ + rw [hnv, mul_one, norm_sub_rev, ← dist_eq_norm] at hb + rw [hfeq] + linarith + · refine ⟨by linarith [hsupu C hCmem], ?_⟩ + have hb : inner ℝ (A - C) (normalVector (t : Real.Angle)) ≤ + ‖A - C‖ * ‖normalVector (t : Real.Angle)‖ := real_inner_le_norm _ _ + rw [hnu, mul_one, ← dist_eq_norm] at hb + rw [hgeq] + linarith + obtain ⟨hf1, hg1⟩ := harm (capVertices K t).1.1 (capVertices K t).2.1 + (tangentArmLengths K t).1.1 (tangentArmLengths K t).2.1 hAp hCp hApmem hCpmem + obtain ⟨hf2, hg2⟩ := harm (capVertices K t).1.2 (capVertices K t).2.2 + (tangentArmLengths K t).1.2 (tangentArmLengths K t).2.2 hAm hCm hAmmem hCmmem + exact ⟨hf1, hf2, hg1, hg2⟩ + + +theorem maximumPolygonCap_arm_bound (n : ℕ) (K : RightAngleCapSpace) + (hK : IsMaximumPolygonCapSteps n K) : + Metric.diam (K.val : Set Point) ≤ 5 ∧ + ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + (tangentArmLengths K t).1.1 ∈ Set.Icc (0 : ℝ) 5 ∧ + (tangentArmLengths K t).1.2 ∈ Set.Icc (0 : ℝ) 5 ∧ + (tangentArmLengths K t).2.1 ∈ Set.Icc (0 : ℝ) 5 ∧ + (tangentArmLengths K t).2.2 ∈ Set.Icc (0 : ℝ) 5 := by + have hdiam := maximumPolygonCap_diam_le n K hK + exact ⟨hdiam, tangentArmLengths_le_of_diam K hdiam⟩ + +/-! ### Helpers for the discrete arm bound -/ + +/-- Two representatives of the same angle in one turn agree. -/ +private theorem coe_angle_inj_Ioc {x y : ℝ} (hx : x ∈ Set.Ioc (0 : ℝ) (2 * Real.pi)) + (hy : y ∈ Set.Ioc (0 : ℝ) (2 * Real.pi)) (h : (x : Real.Angle) = (y : Real.Angle)) : + x = y := + Real.Angle.injOn_coe_Ioc (a := 0) (b := 2 * Real.pi) (by linarith) hx hy h + +/-- Between consecutive grid normals a right-angle polygon cap has no exposed edge, both at +the direction itself and at the direction shifted by a right angle. -/ +private theorem rightAnglePolygonCap_edgeVertices_eq (n : ℕ) (hn : 2 ≤ n) + (K : PolygonCapSpace (rightAngleSet n hn)) {s : ℝ} + (hs : s ∈ Set.Ioo (0 : ℝ) (Real.pi / 2)) + (hgrid : s ∉ (rightAngleSet n hn).directions) : + (edgeVertices K.val.val (s : Real.Angle)).1 = + (edgeVertices K.val.val (s : Real.Angle)).2 ∧ + (edgeVertices K.val.val ((s + Real.pi / 2 : ℝ) : Real.Angle)).1 = + (edgeVertices K.val.val ((s + Real.pi / 2 : ℝ) : Real.Angle)).2 := by + have hpi := Real.pi_pos + have hdirI : ∀ r ∈ (rightAngleSet n hn).directions, r ∈ Set.Ioo (0 : ℝ) (Real.pi / 2) := + fun r hr ↦ (rightAngleSet n hn).interior r hr + -- the possible normals of a nondegenerate exposed edge in the upper half turn + have hkey : ∀ x : ℝ, x ∈ Set.Ioo (0 : ℝ) Real.pi → + (edgeVertices K.val.val (x : Real.Angle)).1 ≠ + (edgeVertices K.val.val (x : Real.Angle)).2 → + x ∈ (rightAngleSet n hn).directions ∨ + (∃ r ∈ (rightAngleSet n hn).directions, x = r + Real.pi / 2) ∨ + x = Real.pi / 2 := by + intro x hx hne + have hxIoc : x ∈ Set.Ioc (0 : ℝ) (2 * Real.pi) := ⟨hx.1, by linarith [hx.2]⟩ + have hlow : ∀ z : Real.Angle, z ∈ capLowerNormals (rightAngleSet n hn).angle → + z = ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + intro z hz + rcases hz with hz | hz + · rw [hz] + congr 1 + show (rightAngleSet n hn).angle + Real.pi = 3 * Real.pi / 2 + change Real.pi / 2 + Real.pi = 3 * Real.pi / 2 + ring + · exact hz + rcases K.properEdgeNormal_mem_allowed_or_antipodal (x : Real.Angle) hne with + (⟨r, hr, hrx⟩ | hlowx) | ⟨z, hz, hzx⟩ + · have hrI := angleDomain_subset_Ioo (rightAngleSet n hn) hr + have hxr : x = r := coe_angle_inj_Ioc hxIoc ⟨hrI.1, by linarith [hrI.2]⟩ hrx.symm + subst hxr + rcases hr with (hr | ⟨r, hr, hrx⟩) | hr + · exact Or.inl hr + · exact Or.inr (Or.inl ⟨r, hr, hrx.symm⟩) + · rcases hr with hr | hr + · exact Or.inr (Or.inr hr) + · exact Or.inr (Or.inr hr) + · exfalso + have hx3 : x = 3 * Real.pi / 2 := + coe_angle_inj_Ioc hxIoc ⟨by linarith, by linarith⟩ (hlow _ hlowx) + linarith [hx.2] + · rcases hz with ⟨r, hr, rfl⟩ | hz + · exfalso + have hrI := angleDomain_subset_Ioo (rightAngleSet n hn) hr + have hxr : x = r + Real.pi := by + refine coe_angle_inj_Ioc hxIoc ⟨by linarith [hrI.1], by linarith [hrI.2]⟩ ?_ + rw [Real.Angle.coe_add] + exact hzx.symm + linarith [hx.2, hrI.1] + · right; right + refine coe_angle_inj_Ioc hxIoc ⟨by linarith, by linarith⟩ ?_ + have hxz : (x : Real.Angle) = + ((3 * Real.pi / 2 : ℝ) : Real.Angle) + (Real.pi : Real.Angle) := by + rw [← hzx, hlow _ hz] + rw [hxz, ← Real.Angle.coe_add, Real.Angle.angle_eq_iff_two_pi_dvd_sub] + exact ⟨1, by push_cast; ring⟩ + constructor + · by_contra hne + rcases hkey s ⟨hs.1, by linarith [hs.2]⟩ hne with h | ⟨r, hr, hrs⟩ | h + · exact hgrid h + · linarith [(hdirI r hr).1, hs.2] + · linarith [hs.2] + · by_contra hne + rcases hkey (s + Real.pi / 2) ⟨by linarith [hs.1], by linarith [hs.2]⟩ hne with + h | ⟨r, hr, hrs⟩ | h + · linarith [(hdirI _ h).2, hs.1] + · exact hgrid (by rwa [show s = r by linarith]) + · linarith [hs.1] + +/-- On a cell of degenerate exposed edges whose contacts lie in a finite set, the contact point +is constant and agrees with both endpoint conventions. -/ +private theorem exists_edgeVertices_const_of_degenerate (K : ConvexBody Point) + {S : Set Point} (hS : S.Finite) {a b : ℝ} (hab : a < b) + (hdeg : ∀ s ∈ Set.Ioo a b, + (edgeVertices K (s : Real.Angle)).1 = (edgeVertices K (s : Real.Angle)).2) + (hmem : ∀ s ∈ Set.Ioo a b, (edgeVertices K (s : Real.Angle)).1 ∈ S) : + ∃ A : Point, (∀ s ∈ Set.Ioo a b, (edgeVertices K (s : Real.Angle)).1 = A) ∧ + (edgeVertices K (a : Real.Angle)).1 = A ∧ + (edgeVertices K (b : Real.Angle)).2 = A := by + classical + have hloc : ∀ u ∈ Set.Ioo a b, ∀ᶠ r : ℝ in 𝓝 u, + (edgeVertices K (r : Real.Angle)).1 = (edgeVertices K (u : Real.Angle)).1 := by + intro u hu + have hIoo : Set.Ioo a b ∈ 𝓝 u := isOpen_Ioo.mem_nhds hu + have hnbhd : (S \ {(edgeVertices K (u : Real.Angle)).1})ᶜ ∈ + 𝓝 (edgeVertices K (u : Real.Angle)).1 := + (hS.sdiff (t := {(edgeVertices K (u : Real.Angle)).1})).isClosed.isOpen_compl.mem_nhds + (by simp) + have hright := (contact_oneSided_limits K u).1 hnbhd + have hleft := (contact_oneSided_limits K u).2.2.2.1 + rw [← hdeg u hu] at hleft + have hleft' := hleft hnbhd + have hfin : ∀ᶠ r : ℝ in 𝓝[≠] u, + (edgeVertices K (r : Real.Angle)).1 = (edgeVertices K (u : Real.Angle)).1 := by + rw [← nhdsLT_sup_nhdsGT] + refine Filter.eventually_sup.mpr ⟨?_, ?_⟩ + · filter_upwards [hleft', nhdsWithin_le_nhds hIoo] with r hr hrI + by_contra hcon + exact hr ⟨hmem r hrI, hcon⟩ + · filter_upwards [hright, nhdsWithin_le_nhds hIoo] with r hr hrI + by_contra hcon + exact hr ⟨hmem r hrI, hcon⟩ + rw [← nhdsNE_sup_pure u] + exact Filter.eventually_sup.mpr ⟨hfin, Filter.eventually_pure.mpr rfl⟩ + have hmI : (a + b) / 2 ∈ Set.Ioo a b := ⟨by linarith, by linarith⟩ + have hconst : ∀ s ∈ Set.Ioo a b, (edgeVertices K (s : Real.Angle)).1 = + (edgeVertices K (((a + b) / 2 : ℝ) : Real.Angle)).1 := by + intro s hs + by_contra hne + have hUopen : IsOpen {r : ℝ | ∀ᶠ x : ℝ in 𝓝 r, (edgeVertices K (x : Real.Angle)).1 = + (edgeVertices K (((a + b) / 2 : ℝ) : Real.Angle)).1} := + isOpen_iff_mem_nhds.2 fun r hr ↦ eventually_eventually_nhds.2 hr + have hVopen : IsOpen {r : ℝ | ∀ᶠ x : ℝ in 𝓝 r, (edgeVertices K (x : Real.Angle)).1 ≠ + (edgeVertices K (((a + b) / 2 : ℝ) : Real.Angle)).1} := + isOpen_iff_mem_nhds.2 fun r hr ↦ eventually_eventually_nhds.2 hr + have hcover : Set.Ioo a b ⊆ + {r : ℝ | ∀ᶠ x : ℝ in 𝓝 r, (edgeVertices K (x : Real.Angle)).1 = + (edgeVertices K (((a + b) / 2 : ℝ) : Real.Angle)).1} ∪ + {r : ℝ | ∀ᶠ x : ℝ in 𝓝 r, (edgeVertices K (x : Real.Angle)).1 ≠ + (edgeVertices K (((a + b) / 2 : ℝ) : Real.Angle)).1} := by + intro r hr + by_cases hcase : (edgeVertices K (r : Real.Angle)).1 = + (edgeVertices K (((a + b) / 2 : ℝ) : Real.Angle)).1 + · exact Or.inl (by filter_upwards [hloc r hr] with x hx; rw [hx, hcase]) + · exact Or.inr (by filter_upwards [hloc r hr] with x hx; rw [hx]; exact hcase) + obtain ⟨x, _, hxU, hxV⟩ := isPreconnected_Ioo _ _ hUopen hVopen hcover + ⟨(a + b) / 2, hmI, hloc _ hmI⟩ + ⟨s, hs, by filter_upwards [hloc s hs] with x hx; rw [hx]; exact hne⟩ + obtain ⟨y, hy1, hy2⟩ := (hxU.and hxV).exists + exact hy2 hy1 + refine ⟨(edgeVertices K (((a + b) / 2 : ℝ) : Real.Angle)).1, hconst, ?_, ?_⟩ + · refine tendsto_nhds_unique (contact_oneSided_limits K a).1 + (Filter.Tendsto.congr' ?_ tendsto_const_nhds) + filter_upwards [Ioo_mem_nhdsGT hab] with r hr + exact (hconst r hr).symm + · refine tendsto_nhds_unique (contact_oneSided_limits K b).2.2.2.1 + (Filter.Tendsto.congr' ?_ tendsto_const_nhds) + filter_upwards [Ioo_mem_nhdsLT hab] with r hr + exact (hconst r hr).symm + +private theorem normalVector_chord_norm_le (t δ : ℝ) (hδnonneg : 0 ≤ δ) : + ‖(1 - Real.cos δ) • normalVector (t : Real.Angle) - + Real.sin δ • tangentVector (t : Real.Angle)‖ ≤ δ := by + have huu : inner ℝ (normalVector (t : Real.Angle)) (normalVector (t : Real.Angle)) = 1 := + inner_normalVector_self t + have hvv : inner ℝ (tangentVector (t : Real.Angle)) (tangentVector (t : Real.Angle)) = 1 := + inner_tangentVector_self t + have huv : inner ℝ (normalVector (t : Real.Angle)) (tangentVector (t : Real.Angle)) = 0 := + inner_normalVector_tangentVector t + have hvu : inner ℝ (tangentVector (t : Real.Angle)) (normalVector (t : Real.Angle)) = 0 := by + rw [real_inner_comm] + exact huv + have hsqn : ‖(1 - Real.cos (δ)) • normalVector (t : Real.Angle) - + Real.sin (δ) • tangentVector (t : Real.Angle)‖ ^ 2 = + 2 - 2 * Real.cos (δ) := by + rw [← real_inner_self_eq_norm_sq] + simp only [inner_sub_left, inner_sub_right, real_inner_smul_left, real_inner_smul_right, + huu, hvv, huv, hvu] + nlinarith [Real.sin_sq_add_cos_sq (δ)] + have hznorm : ‖(1 - Real.cos (δ)) • normalVector (t : Real.Angle) - + Real.sin (δ) • tangentVector (t : Real.Angle)‖ ≤ + δ := by + have hcosb : 1 - δ ^ 2 / 2 ≤ Real.cos (δ) := + Real.one_sub_sq_div_two_le_cos + nlinarith [norm_nonneg ((1 - Real.cos (δ)) • normalVector (t : Real.Angle) - + Real.sin (δ) • tangentVector (t : Real.Angle)), hsqn, hδnonneg] + exact hznorm + +private theorem tangentArmLengths_snd_support (K : RightAngleCapSpace) : + ∀ s : ℝ, + (tangentArmLengths K s).2.1 = supportValue (K.val : Set Point) (s : Real.Angle) - + inner ℝ (capVertices K s).2.1 (normalVector (s : Real.Angle)) ∧ + (tangentArmLengths K s).2.2 = supportValue (K.val : Set Point) (s : Real.Angle) - + inner ℝ (capVertices K s).2.2 (normalVector (s : Real.Angle)) := by + have hy : ∀ s : ℝ, inner ℝ + (rotatingHallwayParts (K.val : Set Point) (s : Real.Angle)).outerCorner + (normalVector (s : Real.Angle)) = supportValue (K.val : Set Point) (s : Real.Angle) := by + intro s + have hvu : inner ℝ (tangentVector (s : Real.Angle)) (normalVector (s : Real.Angle)) = 0 := by + rw [real_inner_comm] + exact inner_normalVector_tangentVector s + rw [outerCorner_eq_support_sum, inner_add_left, real_inner_smul_left, real_inner_smul_left, + inner_normalVector_self s, hvu] + ring + intro s + constructor <;> + · change inner ℝ (_ - _) (normalVector (s : Real.Angle)) = _ + rw [inner_sub_left, hy s] + +theorem maximumPolygonCap_arm_cell (n : ℕ) (hn : 2 ≤ n) (K : RightAngleCapSpace) + (hK : IsMaximumPolygonCapSteps n K) (t : ℝ) + (ht : t = 0 ∨ t ∈ (rightAngleSet n hn).directions) : + (∀ u ∈ Set.Ioo t (t + polygonStepSize n), + (tangentArmLengths K u).2.1 ≤ (tangentArmLengths K t).2.1 ∧ + (tangentArmLengths K u).2.1 = (tangentArmLengths K u).2.2 ∧ + (tangentArmLengths K (t + polygonStepSize n)).2.2 ≤ + (tangentArmLengths K u).2.2) ∧ + (tangentArmLengths K t).2.1 - + (tangentArmLengths K (t + polygonStepSize n)).2.2 ≤ 5 * polygonStepSize n := by + classical + obtain ⟨hdiam, harmbd⟩ := maximumPolygonCap_arm_bound n K hK + obtain ⟨hn2, -, P, hPK, -⟩ := hK + have hPKval : (P.val.val : ConvexBody Point) = K.val := congrArg Subtype.val hPK + have hpi := Real.pi_pos + have hnR : (0 : ℝ) < n := by exact_mod_cast (show 0 < n by omega) + have hnR2 : (2 : ℝ) ≤ n := by exact_mod_cast hn + have hδpos : 0 < polygonStepSize n := div_pos (by linarith) hnR + have hδle : polygonStepSize n ≤ Real.pi / 4 := by + change Real.pi / 2 / n ≤ Real.pi / 4 + rw [div_le_iff₀ hnR] + nlinarith + -- the cell lies in the parameter range and contains no grid direction + have hcell0 : 0 ≤ t ∧ t + polygonStepSize n ≤ Real.pi / 2 := by + rcases ht with rfl | ht' + · exact ⟨le_rfl, by linarith⟩ + · obtain ⟨h1, h2⟩ := rightAngleSet_direction_bounds n hn ht' + exact ⟨by linarith, by linarith⟩ + obtain ⟨ht0, htδ⟩ := hcell0 + have hnogrid : ∀ s ∈ Set.Ioo t (t + polygonStepSize n), + s ∉ (rightAngleSet n hn).directions := by + intro s hs hcon + rcases ht with rfl | ht' + · linarith [(rightAngleSet_direction_bounds n hn hcon).1, hs.2] + · rcases rightAngleSet_direction_le_or_succ_le n hn hcon ht' with h | h + · linarith [hs.1] + · linarith [hs.2] + -- no exposed edge has its normal inside the open cell, shifted or not + have hdegen : ∀ s ∈ Set.Ioo t (t + polygonStepSize n), + (edgeVertices K.val (s : Real.Angle)).1 = (edgeVertices K.val (s : Real.Angle)).2 ∧ + (edgeVertices K.val ((s + Real.pi / 2 : ℝ) : Real.Angle)).1 = + (edgeVertices K.val ((s + Real.pi / 2 : ℝ) : Real.Angle)).2 := by + intro s hs + have hsI : s ∈ Set.Ioo (0 : ℝ) (Real.pi / 2) := + ⟨by linarith [hs.1], by linarith [hs.2]⟩ + have h := rightAnglePolygonCap_edgeVertices_eq n hn2 P hsI (hnogrid s hs) + rwa [hPKval] at h + have hdegen2 : ∀ s ∈ Set.Ioo (t + Real.pi / 2) (t + polygonStepSize n + Real.pi / 2), + (edgeVertices K.val (s : Real.Angle)).1 = (edgeVertices K.val (s : Real.Angle)).2 := by + intro s hs + have hr : s - Real.pi / 2 ∈ Set.Ioo t (t + polygonStepSize n) := + ⟨by linarith [hs.1], by linarith [hs.2]⟩ + have h := (hdegen _ hr).2 + rwa [show s - Real.pi / 2 + Real.pi / 2 = s by ring] at h + -- singleton contacts range over a finite set of constraint vertices + have hdomain : (angleDomain (rightAngleSet n hn2)).Finite := + (((rightAngleSet n hn2).directions.finite_toSet.union + ((rightAngleSet n hn2).directions.finite_toSet.image + (fun r ↦ r + Real.pi / 2))).union + ((Set.finite_singleton (Real.pi / 2)).insert (rightAngleSet n hn2).angle)) + have hNfin : (((fun r : ℝ ↦ (r : Real.Angle)) '' angleDomain (rightAngleSet n hn2)) ∪ + capLowerNormals (rightAngleSet n hn2).angle).Finite := + (hdomain.image (fun r : ℝ ↦ (r : Real.Angle))).union + ((Set.finite_singleton _).insert _) + obtain ⟨Cs, hCsfin, -, hKCs⟩ := P.property.finite_constraints hNfin + rw [hPKval] at hKCs + have hSfin : (finiteConstraintVertices Cs).Finite := + finite_finiteConstraintVertices Cs hCsfin + have hSmem : ∀ θ : Real.Angle, (edgeVertices K.val θ).1 = (edgeVertices K.val θ).2 → + (edgeVertices K.val θ).1 ∈ finiteConstraintVertices Cs := by + intro θ hθ + refine singleton_exposedEdge_mem_finiteConstraintVertices Cs hCsfin K.val hKCs (t := θ) ?_ + rw [exposedEdge_eq_segment_edgeVertices, ← hθ, segment_same] + -- the two contact points that are constant across the cell + obtain ⟨A, hAcell, hAleft, hAright⟩ := exists_edgeVertices_const_of_degenerate K.val hSfin + (a := t) (b := t + polygonStepSize n) (by linarith) + (fun s hs ↦ (hdegen s hs).1) (fun s hs ↦ hSmem _ (hdegen s hs).1) + obtain ⟨Cp, hCcell, hCleft, hCright⟩ := exists_edgeVertices_const_of_degenerate K.val hSfin + (a := t + Real.pi / 2) (b := t + polygonStepSize n + Real.pi / 2) (by linarith) + hdegen2 (fun s hs ↦ hSmem _ (hdegen2 s hs)) + -- the arm lengths in support-function coordinates + have harm := tangentArmLengths_snd_support K + have hAK : A ∈ (K.val : Set Point) := by + rw [← hAleft] + exact (edgeVertices_fst_mem K.val (t : Real.Angle)).1 + have hCK : Cp ∈ (K.val : Set Point) := by + rw [← hCleft] + exact (edgeVertices_fst_mem K.val ((t + Real.pi / 2 : ℝ) : Real.Angle)).1 + have hAsup : ∀ s : ℝ, (edgeVertices K.val (s : Real.Angle)).1 = A → + inner ℝ A (normalVector (s : Real.Angle)) = + supportValue (K.val : Set Point) (s : Real.Angle) := by + intro s hsA + rw [← hsA] + exact (edgeVertices_fst_mem K.val (s : Real.Angle)).2 + have hAsup' : ∀ s : ℝ, (edgeVertices K.val (s : Real.Angle)).2 = A → + inner ℝ A (normalVector (s : Real.Angle)) = + supportValue (K.val : Set Point) (s : Real.Angle) := by + intro s hsA + rw [← hsA] + exact (edgeVertices_snd_mem K.val (s : Real.Angle)).2 + -- the smooth comparison function and its sign conditions + have hadd : ∀ s ε : ℝ, inner ℝ (A - Cp) (normalVector ((s + ε : ℝ) : Real.Angle)) = + Real.cos ε * inner ℝ (A - Cp) (normalVector (s : Real.Angle)) + + Real.sin ε * inner ℝ (A - Cp) (tangentVector (s : Real.Angle)) := by + intro s ε + rw [normalVector_add_real, inner_add_right, real_inner_smul_right, real_inner_smul_right] + have hDsign : ∀ s : ℝ, (edgeVertices K.val ((s + Real.pi / 2 : ℝ) : Real.Angle)).1 = Cp → + inner ℝ (A - Cp) (tangentVector (s : Real.Angle)) ≤ 0 := by + intro s hsC + rw [← normalVector_add_pi_div_two_real s, inner_sub_left] + have hA' := inner_le_supportValue K.val hAK ((s + Real.pi / 2 : ℝ) : Real.Angle) + have hC' : inner ℝ Cp (normalVector ((s + Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue (K.val : Set Point) ((s + Real.pi / 2 : ℝ) : Real.Angle) := by + rw [← hsC] + exact (edgeVertices_fst_mem K.val ((s + Real.pi / 2 : ℝ) : Real.Angle)).2 + linarith + have hgt : (tangentArmLengths K t).2.1 = + inner ℝ (A - Cp) (normalVector (t : Real.Angle)) := by + rw [(harm t).1, inner_sub_left, hAsup t hAleft, + show (capVertices K t).2.1 = Cp from hCleft] + have hgb : (tangentArmLengths K (t + polygonStepSize n)).2.2 = + inner ℝ (A - Cp) (normalVector ((t + polygonStepSize n : ℝ) : Real.Angle)) := by + rw [(harm (t + polygonStepSize n)).2, inner_sub_left, + hAsup' (t + polygonStepSize n) hAright, + show (capVertices K (t + polygonStepSize n)).2.2 = Cp from hCright] + have hgu : ∀ u ∈ Set.Ioo t (t + polygonStepSize n), + (tangentArmLengths K u).2.1 = inner ℝ (A - Cp) (normalVector (u : Real.Angle)) ∧ + (tangentArmLengths K u).2.2 = inner ℝ (A - Cp) (normalVector (u : Real.Angle)) := by + intro u hu + have hCu : (edgeVertices K.val ((u + Real.pi / 2 : ℝ) : Real.Angle)).1 = Cp := + hCcell (u + Real.pi / 2) ⟨by linarith [hu.1], by linarith [hu.2]⟩ + have hCu2 : (capVertices K u).2.2 = Cp := by + rw [show (capVertices K u).2.2 = + (edgeVertices K.val ((u + Real.pi / 2 : ℝ) : Real.Angle)).2 from rfl, ← (hdegen u hu).2] + exact hCu + refine ⟨?_, ?_⟩ + · rw [(harm u).1, inner_sub_left, hAsup u (hAcell u hu), + show (capVertices K u).2.1 = Cp from hCu] + · rw [(harm u).2, inner_sub_left, hAsup u (hAcell u hu), hCu2] + have hGt0 : 0 ≤ inner ℝ (A - Cp) (normalVector (t : Real.Angle)) := by + rw [← hgt] + exact ((harmbd t ⟨ht0, by linarith⟩).2.2.1).1 + have hGt5 : inner ℝ (A - Cp) (normalVector (t : Real.Angle)) ≤ 5 := by + rw [← hgt] + exact ((harmbd t ⟨ht0, by linarith⟩).2.2.1).2 + constructor + · intro u hu + have hCu : (edgeVertices K.val ((u + Real.pi / 2 : ℝ) : Real.Angle)).1 = Cp := + hCcell (u + Real.pi / 2) ⟨by linarith [hu.1], by linarith [hu.2]⟩ + have hGu0 : 0 ≤ inner ℝ (A - Cp) (normalVector (u : Real.Angle)) := by + rw [← (hgu u hu).2] + exact ((harmbd u ⟨by linarith [hu.1], by linarith [hu.2]⟩).2.2.2).1 + have hkey : inner ℝ (A - Cp) (normalVector (u : Real.Angle)) = + Real.cos (u - t) * inner ℝ (A - Cp) (normalVector (t : Real.Angle)) + + Real.sin (u - t) * inner ℝ (A - Cp) (tangentVector (t : Real.Angle)) := by + rw [show ((u : ℝ) : Real.Angle) = ((t + (u - t) : ℝ) : Real.Angle) by + rw [show t + (u - t) = u by ring], hadd] + have hkey2 : inner ℝ (A - Cp) (normalVector ((t + polygonStepSize n : ℝ) : Real.Angle)) = + Real.cos (t + polygonStepSize n - u) * + inner ℝ (A - Cp) (normalVector (u : Real.Angle)) + + Real.sin (t + polygonStepSize n - u) * + inner ℝ (A - Cp) (tangentVector (u : Real.Angle)) := by + rw [show ((t + polygonStepSize n : ℝ) : Real.Angle) = + ((u + (t + polygonStepSize n - u) : ℝ) : Real.Angle) by + rw [show u + (t + polygonStepSize n - u) = t + polygonStepSize n by ring], hadd] + have hD := hDsign t hCleft + have hDu := hDsign u hCu + have hc1 : Real.cos (u - t) ≤ 1 := Real.cos_le_one _ + have hs1 : 0 ≤ Real.sin (u - t) := + Real.sin_nonneg_of_nonneg_of_le_pi (by linarith [hu.1]) (by linarith [hu.2]) + have hc2 : Real.cos (t + polygonStepSize n - u) ≤ 1 := Real.cos_le_one _ + have hs2 : 0 ≤ Real.sin (t + polygonStepSize n - u) := + Real.sin_nonneg_of_nonneg_of_le_pi (by linarith [hu.2]) (by linarith [hu.1]) + refine ⟨?_, ?_, ?_⟩ + · rw [(hgu u hu).1, hgt, hkey] + linarith [mul_nonneg (sub_nonneg.mpr hc1) hGt0, + mul_nonneg hs1 (neg_nonneg.mpr hD)] + · rw [(hgu u hu).1, (hgu u hu).2] + · rw [hgb, (hgu u hu).2, hkey2] + linarith [mul_nonneg (sub_nonneg.mpr hc2) hGu0, + mul_nonneg hs2 (neg_nonneg.mpr hDu)] + · have hD := hDsign t hCleft + have hz : (tangentArmLengths K t).2.1 - + (tangentArmLengths K (t + polygonStepSize n)).2.2 = + inner ℝ (A - Cp) + ((1 - Real.cos (polygonStepSize n)) • normalVector (t : Real.Angle) - + Real.sin (polygonStepSize n) • tangentVector (t : Real.Angle)) := by + rw [hgt, hgb, hadd t (polygonStepSize n), inner_sub_right, real_inner_smul_right, + real_inner_smul_right] + ring + have hznorm := normalVector_chord_norm_le t (polygonStepSize n) hδpos.le + have hwnorm : ‖A - Cp‖ ≤ 5 := by + rw [← dist_eq_norm] + exact le_trans (Metric.dist_le_diam_of_mem K.val.isCompact.isBounded hAK hCK) hdiam + rw [hz] + calc inner ℝ (A - Cp) + ((1 - Real.cos (polygonStepSize n)) • normalVector (t : Real.Angle) - + Real.sin (polygonStepSize n) • tangentVector (t : Real.Angle)) + ≤ ‖A - Cp‖ * ‖(1 - Real.cos (polygonStepSize n)) • normalVector (t : Real.Angle) - + Real.sin (polygonStepSize n) • tangentVector (t : Real.Angle)‖ := + real_inner_le_norm _ _ + _ ≤ 5 * polygonStepSize n := + mul_le_mul hwnorm hznorm (norm_nonneg _) (by norm_num) + +theorem polygonCap_arm_integral_limit (K : ℕ → RightAngleCapSpace) + (L : RightAngleCapSpace) + (hlim : Tendsto (fun i ↦ Metric.hausdorffDist ((K i).val : Set Point) + (L.val : Set Point)) atTop (𝓝 0)) : + Tendsto (fun i ↦ ∫ t in (0 : ℝ)..(Real.pi / 2), + |(tangentArmLengths (K i) t).2.1 - (tangentArmLengths L t).2.1|) + atTop (𝓝 0) := by + let μs : ℕ → FiniteMeasure Real.Angle := fun n ↦ + ⟨surfaceAreaMeasure (K n).val, (surfaceAreaMeasure_face_union (K n).val).1⟩ + let μ : FiniteMeasure Real.Angle := + ⟨surfaceAreaMeasure L.val, (surfaceAreaMeasure_face_union L.val).1⟩ + have hμ : Tendsto μs atTop (𝓝 μ) := by + apply FiniteMeasure.tendsto_iff_forall_integral_tendsto.mpr + intro f + exact surfaceAreaMeasure_weak_continuity (fun n ↦ (K n).val) L.val hlim f f.continuous + have hmass : Tendsto (fun n ↦ (μs n).mass) atTop (𝓝 μ.mass) := hμ.mass + obtain ⟨M, hM⟩ := hmass.bddAbove_range + have hmass_le (n : ℕ) : (μs n).mass ≤ M := hM ⟨n, rfl⟩ + have hcoe_inj : Set.InjOn (fun t : ℝ ↦ (t : Real.Angle)) + (Ioc 0 (Real.pi / 2)) := + Real.Angle.injOn_coe_Ioc (by linarith [Real.pi_pos]) + have hshift_inj : Set.InjOn + (fun t : ℝ ↦ ((t + Real.pi / 2 : ℝ) : Real.Angle)) + (Ioc 0 (Real.pi / 2)) := by + intro x hx y hy hxy + apply hcoe_inj hx hy + simp only [Real.Angle.coe_add] at hxy + exact add_right_cancel hxy + have hae_left : ∀ᵐ t : ℝ ∂volume.restrict (Ioc 0 (Real.pi / 2)), + (μ : Measure Real.Angle) {(t : Real.Angle)} = 0 := + ae_measure_singleton_comp_eq_zero_of_injOn (μ : Measure Real.Angle) + measurableSet_Ioc hcoe_inj + have hae_right : ∀ᵐ t : ℝ ∂volume.restrict (Ioc 0 (Real.pi / 2)), + (μ : Measure Real.Angle) {((t + Real.pi / 2 : ℝ) : Real.Angle)} = 0 := + ae_measure_singleton_comp_eq_zero_of_injOn (μ : Measure Real.Angle) + measurableSet_Ioc hshift_inj + have hpoint : ∀ᵐ t ∂volume.restrict (Ioc 0 (Real.pi / 2)), + Tendsto (fun n ↦ (tangentArmLengths (K n) t).2.1) atTop + (𝓝 (tangentArmLengths L t).2.1) := by + filter_upwards [ae_restrict_mem measurableSet_Ioc, hae_left, hae_right] with t ht hleft hright + let A := (fun s : ℝ ↦ (s : Real.Angle)) '' Ioc t (t + Real.pi / 2) + have hfrontier : (μ : Measure Real.Angle) (frontier A) = 0 := by + apply measure_mono_null (Real.Angle.frontier_image_Ioc_subset + (by linarith [Real.pi_pos])) + simp only [insert_eq, measure_union_null hleft hright] + have hAmeas : MeasurableSet A := + Real.Angle.measurableSet_image_Ioc t (t + Real.pi / 2) + have hfrontier' : μ (frontier A) = 0 := by + rw [← ENNReal.coe_eq_zero, FiniteMeasure.ennreal_coeFn_eq_coeFn_toMeasure] + exact hfrontier + have hres := FiniteMeasure.tendsto_restrict_of_null_frontier + hAmeas hμ hfrontier' + let f : Real.Angle →ᵇ ℝ := BoundedContinuousFunction.mkOfCompact + ⟨fun u ↦ (u - (t : Real.Angle)).sin, + Real.Angle.continuous_sin.comp (continuous_id.sub continuous_const)⟩ + have hint := FiniteMeasure.tendsto_iff_forall_integral_tendsto.mp hres f + change Tendsto (fun n ↦ ∫ u in A, + (u - (t : Real.Angle)).sin ∂surfaceAreaMeasure (K n).val) atTop + (𝓝 (∫ u in A, (u - (t : Real.Angle)).sin ∂surfaceAreaMeasure L.val)) at hint + have hKt (n : ℕ) := tangentArm_convolution (K n) t + have hLt := tangentArm_convolution L t + simpa only [A, hKt, hLt] using hint + have hmeas_arm := aestronglyMeasurable_tangentArm_fst + have hmeas : ∀ n, AEStronglyMeasurable + (fun t ↦ |(tangentArmLengths (K n) t).2.1 - (tangentArmLengths L t).2.1|) + (volume.restrict (Ioc 0 (Real.pi / 2))) := by + intro n + have hm := ((hmeas_arm (K n)).sub (hmeas_arm L)).norm + convert hm using 1 + have hbound : ∀ n, ∀ᵐ t ∂volume.restrict (Ioc 0 (Real.pi / 2)), + ‖|(tangentArmLengths (K n) t).2.1 - (tangentArmLengths L t).2.1|‖ ≤ + (M : ℝ) + (μ.mass : ℝ) := by + intro n + filter_upwards [] with t + rw [Real.norm_eq_abs, abs_abs] + calc + |(tangentArmLengths (K n) t).2.1 - (tangentArmLengths L t).2.1| ≤ + |(tangentArmLengths (K n) t).2.1| + |(tangentArmLengths L t).2.1| := + abs_sub _ _ + _ ≤ (surfaceAreaMeasure (K n).val).real Set.univ + + (surfaceAreaMeasure L.val).real Set.univ := + add_le_add (abs_tangentArm_fst_le (K n) (t := t)) + (abs_tangentArm_fst_le L (t := t)) + _ = ((μs n).mass : ℝ) + (μ.mass : ℝ) := by + change (μs n : Measure Real.Angle).real univ + + (μ : Measure Real.Angle).real univ = _ + simp [Measure.real, ← FiniteMeasure.ennreal_mass] + _ ≤ (M : ℝ) + (μ.mass : ℝ) := by + have hn : ((μs n).mass : ℝ) ≤ (M : ℝ) := by exact_mod_cast hmass_le n + exact add_le_add hn le_rfl + have hlim_zero : ∀ᵐ t ∂volume.restrict (Ioc 0 (Real.pi / 2)), + Tendsto (fun n ↦ |(tangentArmLengths (K n) t).2.1 - + (tangentArmLengths L t).2.1|) atTop (𝓝 0) := by + filter_upwards [hpoint] with t ht + have hc : Tendsto (fun _ : ℕ ↦ (tangentArmLengths L t).2.1) atTop + (𝓝 (tangentArmLengths L t).2.1) := tendsto_const_nhds + simpa only [sub_self, abs_zero] using (ht.sub hc).abs + have hdom := tendsto_integral_of_dominated_convergence + (μ := volume.restrict (Ioc 0 (Real.pi / 2))) + (fun _ ↦ (M : ℝ) + (μ.mass : ℝ)) hmeas + (integrableOn_const (μ := volume) (s := Ioc 0 (Real.pi / 2)) + (measure_Ioc_lt_top.ne)) hbound hlim_zero + simpa only [intervalIntegral.integral_of_le (by positivity : (0 : ℝ) ≤ Real.pi / 2), + integral_zero] using hdom + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Bounds / Wedge Gap / Infimum +-/ + +@[expose] public section + +noncomputable section + +open Filter MeasureTheory Set +open scoped Topology + +namespace MovingSofa + +/-- The two infima of the wedge-gap components over interior rotation angles. -/ +def wedgeGapInfimum {ω : ℝ} (K : CapSpace ω) : ℝ × ℝ := + (sInf ((fun t ↦ (wedgeGaps K t).1) '' Set.Ioo 0 ω), + sInf ((fun t ↦ (wedgeGaps K t).2) '' Set.Ioo 0 ω)) + +private theorem bddBelow_wedgeGaps_fst {ω : ℝ} (K : CapSpace ω) : + BddBelow ((fun t ↦ (wedgeGaps K t).1) '' Ioo 0 ω) := by + refine ⟨0, ?_⟩ + rintro _ ⟨t, ht, rfl⟩ + have h := wedgeGaps_positive_lower_bound K t ht + exact h.2.1.le.trans h.1 + +private theorem wedgeGapInfimum_fst_nonneg {ω : ℝ} (K : CapSpace ω) : + 0 ≤ (wedgeGapInfimum K).1 := by + rw [wedgeGapInfimum] + apply le_csInf + · exact (nonempty_Ioo.mpr K.property.1).image _ + · rintro _ ⟨t, ht, rfl⟩ + have h := wedgeGaps_positive_lower_bound K t ht + exact h.2.1.le.trans h.1 + +private theorem wedgeGapInfimum_fst_le_supportValue_zero {ω : ℝ} + (K : CapSpace ω) (hω : ω < Real.pi / 2) : + (wedgeGapInfimum K).1 ≤ supportValue K.val (0 : Real.Angle) := by + let f := fun t : ℝ ↦ supportValue K.val (0 : Real.Angle) - + (supportValue K.val (t : Real.Angle) - 1) / Real.cos t + have hcos : Real.cos ω ≠ 0 := (Real.cos_pos_of_mem_Ioo + ⟨by linarith [K.property.1, Real.pi_pos], hω⟩).ne' + have hf : ContinuousAt f ω := continuousAt_const.sub + (((continuous_supportValue_real K.val).continuousAt.sub continuousAt_const).div + Real.continuous_cos.continuousAt hcos) + have hf' : Tendsto f (𝓝[<] ω) (𝓝 (f ω)) := + hf.tendsto.mono_left inf_le_left + have hlim : Tendsto f (𝓝[<] ω) + (𝓝 (supportValue K.val (0 : Real.Angle))) := by + convert hf' using 1 + simp [f, K.property.2.2.1] + apply ge_of_tendsto hlim + filter_upwards [Ioo_mem_nhdsLT K.property.1] with t ht + rw [wedgeGapInfimum] + have hle := csInf_le (bddBelow_wedgeGaps_fst K) ⟨t, ht, rfl⟩ + simpa only [f, wedgeGaps_fst_eq_supportValue] using hle + +private def bottomGapSegment {ω : ℝ} (K : CapSpace ω) : Set Point := + let a := supportValue K.val (0 : Real.Angle) + let w := (wedgeGapInfimum K).1 + segment ℝ ((a - w) • normalVector (0 : Real.Angle)) + (a • normalVector (0 : Real.Angle)) + +private theorem point_eq_fst_smul_normalVector_zero_of_mem_normalLine + {p : Point} (hp : p ∈ normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0) : + p = p 0 • normalVector (0 : Real.Angle) := by + have hpy : p 1 = 0 := by + change inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 at hp + simpa [normalVector, frame, PiLp.inner_apply] using hp + ext i + fin_cases i <;> simp [normalVector, frame, hpy] + +private theorem bottomGapSegment_subset_exposedEdge {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hω : Θ.angle < Real.pi / 2) : + bottomGapSegment K.val ⊆ + exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + let a := supportValue K.val.val (0 : Real.Angle) + let w := (wedgeGapInfimum K.val).1 + let A := a • normalVector (0 : Real.Angle) + let B := (a - w) • normalVector (0 : Real.Angle) + have hzeroK : (0 : Point) ∈ (K.val.val : Set Point) := zero_mem_cap_of_lt K.val hω + have hAK : A ∈ (K.val.val : Set Point) := by + exact supportValue_zero_smul_normalVector_mem K.val + have hw0 : 0 ≤ w := wedgeGapInfimum_fst_nonneg K.val + have hwa : w ≤ a := wedgeGapInfimum_fst_le_supportValue_zero K.val hω + have hBK : B ∈ (K.val.val : Set Point) := by + exact K.val.val.convex.smul_mem_of_nonneg_of_le hzeroK hAK + (sub_nonneg.mpr hwa) (by linarith) + have hbottom : supportValue K.val.val + ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 := K.val.property.2.2.2.2.2.1 + have hAedge : A ∈ exposedEdge K.val.val + ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + refine ⟨hAK, ?_⟩ + change inner ℝ A (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) = _ + rw [hbottom] + rw [inner_normalVector_three_pi_div_two] + simp [A, normalVector, frame] + have hBedge : B ∈ exposedEdge K.val.val + ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + refine ⟨hBK, ?_⟩ + change inner ℝ B (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) = _ + rw [hbottom] + rw [inner_normalVector_three_pi_div_two] + simp [B, normalVector, frame] + exact (convex_exposedEdge K.val.val _).segment_subset hBedge hAedge + +private theorem polygonNiche_fanLine_fst_lt_gapStart {Θ : AngleSet} + (K : PolygonCapSpace Θ) {q : Point} + (hq : q ∈ polygonNiche Θ K.val ∩ + normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0) : + q 0 < supportValue K.val.val (0 : Real.Angle) - + (wedgeGapInfimum K.val).1 := by + obtain ⟨t, ht, hqt⟩ := Set.mem_iUnion₂.mp hq.1.2 + have htt := Θ.interior t ht + have hcost : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [htt.1, Real.pi_pos], htt.2.trans_le Θ.angle_le⟩ + have hqy : q 1 = 0 := by + have hline := hq.2 + change inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 at hline + simpa [normalVector, frame, PiLp.inner_apply] using hline + have hqx_endpoint : q 0 < (wedgeEndpoints K.val t).1 0 := by + have hb := hqt.1 + change inner ℝ q (normalVector (t : Real.Angle)) < + supportValue K.val.val (t : Real.Angle) - 1 at hb + simp only [normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, PiLp.inner_apply, + RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, + Matrix.cons_val_zero, Matrix.cons_val_one, Matrix.cons_val_fin_one, hqy, mul_zero, + add_zero] at hb + simp only [wedgeEndpoints] + simp only [Fin.isValue, normalVector, frame, Real.Angle.cos_zero, Real.Angle.sin_zero, neg_zero, + PiLp.smul_apply, Matrix.cons_val_zero, smul_eq_mul, mul_one, gt_iff_lt] + exact (lt_div_iff₀ hcost).2 (by simpa [mul_comm] using hb) + have hinf : (wedgeGapInfimum K.val).1 ≤ (wedgeGaps K.val t).1 := by + rw [wedgeGapInfimum] + exact csInf_le (bddBelow_wedgeGaps_fst K.val) ⟨t, htt, rfl⟩ + have hgap : (wedgeGaps K.val t).1 = + supportValue K.val.val (0 : Real.Angle) - (wedgeEndpoints K.val t).1 0 := by + rw [wedgeGaps_fst_eq_supportValue] + simp [wedgeEndpoints, normalVector, frame] + rw [hgap] at hinf + linarith + +private theorem polygonNiche_fanLine_subset_bottom_exposedEdge {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hω : Θ.angle < Real.pi / 2) : + polygonNiche Θ K.val ∩ normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0 ⊆ + exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + intro q hq + let a := supportValue K.val.val (0 : Real.Angle) + let A := a • normalVector (0 : Real.Angle) + have hzeroK : (0 : Point) ∈ (K.val.val : Set Point) := zero_mem_cap_of_lt K.val hω + have hAK : A ∈ (K.val.val : Set Point) := supportValue_zero_smul_normalVector_mem K.val + have hqx0 : 0 ≤ q 0 := by + have hfan := hq.1.1.1 + have hqy : q 1 = 0 := by + have hline := hq.2 + change inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 at hline + simpa [normalVector, frame, PiLp.inner_apply] using hline + change 0 ≤ inner ℝ q (normalVector (Θ.angle : Real.Angle)) at hfan + simp only [normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, + PiLp.inner_apply, RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, + Matrix.cons_val_zero, Matrix.cons_val_one, Matrix.cons_val_fin_one, hqy, mul_zero, + add_zero] at hfan + exact nonneg_of_mul_nonneg_left (by simpa [mul_comm] using hfan) + (Real.cos_pos_of_mem_Ioo + ⟨by linarith [Θ.angle_pos, Real.pi_pos], hω⟩) + have hqxa : q 0 ≤ a := by + have hlt := polygonNiche_fanLine_fst_lt_gapStart K hq + have hw0 := wedgeGapInfimum_fst_nonneg K.val + dsimp only [a] + linarith + have hqeq := point_eq_fst_smul_normalVector_zero_of_mem_normalLine hq.2 + have hqK : q ∈ (K.val.val : Set Point) := by + rw [hqeq] + exact K.val.val.convex.smul_mem_of_nonneg_of_le hzeroK hAK hqx0 hqxa + refine ⟨hqK, ?_⟩ + change inner ℝ q (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) + rw [K.val.property.2.2.2.2.2.1] + have hqy : q 1 = 0 := by + have hline := hq.2 + change inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 at hline + simpa [normalVector, frame, PiLp.inner_apply] using hline + rw [inner_normalVector_three_pi_div_two] + simp [hqy] + +private theorem bottomGapSegment_disjoint_polygonNiche_fanLine {Θ : AngleSet} + (K : PolygonCapSpace Θ) : + Disjoint (bottomGapSegment K.val) + (polygonNiche Θ K.val ∩ normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0) := by + rw [Set.disjoint_left] + intro q hqS hqN + let a := supportValue K.val.val (0 : Real.Angle) + let w := (wedgeGapInfimum K.val).1 + let B := (a - w) • normalVector (0 : Real.Angle) + let A := a • normalVector (0 : Real.Angle) + have hw0 : 0 ≤ w := wedgeGapInfimum_fst_nonneg K.val + have hqx : a - w ≤ q 0 := by + change q ∈ segment ℝ B A at hqS + rw [segment_eq_image'] at hqS + obtain ⟨r, hr, rfl⟩ := hqS + have heq : (B + r • (A - B)) 0 = a - w + r * w := by + simp [B, A, normalVector, frame] + rw [heq] + nlinarith [hr.1] + have hlt := polygonNiche_fanLine_fst_lt_gapStart K hqN + exact (not_lt_of_ge hqx) (by simpa only [a, w] using hlt) + +private theorem hausdorffMeasure_bottomGapSegment {ω : ℝ} (K : CapSpace ω) : + (Measure.hausdorffMeasure 1 (bottomGapSegment K)).toReal = + (wedgeGapInfimum K).1 := by + have hw0 := wedgeGapInfimum_fst_nonneg K + rw [show bottomGapSegment K = + segment ℝ + ((supportValue K.val (0 : Real.Angle) - (wedgeGapInfimum K).1) • + normalVector (0 : Real.Angle)) + (supportValue K.val (0 : Real.Angle) • normalVector (0 : Real.Angle)) by rfl, + MeasureTheory.hausdorffMeasure_segment, edist_dist, ENNReal.toReal_ofReal dist_nonneg, + dist_eq_norm] + have hdiff : + (supportValue K.val (0 : Real.Angle) - (wedgeGapInfimum K).1) • + normalVector (0 : Real.Angle) - + supportValue K.val (0 : Real.Angle) • normalVector (0 : Real.Angle) = + (-(wedgeGapInfimum K).1) • normalVector (0 : Real.Angle) := by module + rw [hdiff, norm_smul, Real.norm_eq_abs, abs_neg, abs_of_nonneg hw0, + norm_normalVector, mul_one] + +private theorem wedgeGapInfimum_fst_le_surface_of_balanced {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hω : Θ.angle < Real.pi / 2) + (hbal : IsBalancedPolygonCap K) : + (wedgeGapInfimum K.val).1 ≤ + (surfaceAreaMeasure K.val.val + {((Real.pi / 2 : ℝ) : Real.Angle)}).toReal := by + let μ : Measure Point := Measure.hausdorffMeasure 1 + let S := bottomGapSegment K.val + let M := polygonNiche Θ K.val ∩ + normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0 + let E := exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) + have hSsub : S ⊆ E := bottomGapSegment_subset_exposedEdge K hω + have hMsub : M ⊆ E := polygonNiche_fanLine_subset_bottom_exposedEdge K hω + have hSMsub : S ∪ M ⊆ E := Set.union_subset hSsub hMsub + have hdisj : Disjoint S M := bottomGapSegment_disjoint_polygonNiche_fanLine K + have hMMeas : MeasurableSet M := by + apply (measurableSet_polygonNiche Θ K.val).inter + exact (isClosed_eq (by fun_prop) continuous_const).measurableSet + have hSne : μ S ≠ ⊤ := by + dsimp only [μ, S] + rw [show bottomGapSegment K.val = + segment ℝ + ((supportValue K.val.val (0 : Real.Angle) - (wedgeGapInfimum K.val).1) • + normalVector (0 : Real.Angle)) + (supportValue K.val.val (0 : Real.Angle) • normalVector (0 : Real.Angle)) by rfl, + MeasureTheory.hausdorffMeasure_segment, edist_dist] + exact ENNReal.ofReal_ne_top + have hatom := surfaceAreaMeasure_atom_length K.val.val + ((3 * Real.pi / 2 : ℝ) : Real.Angle) + have hEne : μ E ≠ ⊤ := by + dsimp only [μ, E] + rw [← hatom.1, hatom.2.1] + exact ENNReal.ofReal_ne_top + have hMne : μ M ≠ ⊤ := measure_ne_top_of_subset hMsub hEne + have hunion := measureReal_union hdisj hMMeas hSne hMne + have hmono : μ.real (S ∪ M) ≤ μ.real E := + ENNReal.toReal_mono hEne (measure_mono hSMsub) + have hSreal : μ.real S = (wedgeGapInfimum K.val).1 := by + exact hausdorffMeasure_bottomGapSegment K.val + have hMreal : μ.real M = + (surfaceAreaMeasure K.val.val + {((3 * Real.pi / 2 : ℝ) : Real.Angle)}).toReal - + polygonPolylineLengthAt K (Real.pi / 2) := by + have h := (polygonCap_polyline_lengths K).2 (Real.pi / 2) (by simp) + dsimp only [μ, M] + change (Measure.hausdorffMeasure 1 + (polygonNiche Θ K.val ∩ + normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0)).toReal = _ + have hang : (((Real.pi / 2 + Real.pi : ℝ) : Real.Angle)) = + ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + congr 1 + ring + simpa only [hang] using h.2 + have hEreal : μ.real E = + (surfaceAreaMeasure K.val.val + {((3 * Real.pi / 2 : ℝ) : Real.Angle)}).toReal := by + exact (congrArg ENNReal.toReal hatom.1).symm + have htT : Real.pi / 2 ∈ angleDomain Θ := by simp [angleDomain] + let tT : angleDomain Θ := ⟨Real.pi / 2, htT⟩ + have hpoly0 : 0 ≤ polygonCapPolylineLength K tT := by + unfold polygonCapPolylineLength + exact Finset.sum_nonneg fun _ _ ↦ by split_ifs <;> positivity + have hbalReal : + (surfaceAreaMeasure K.val.val + {((Real.pi / 2 : ℝ) : Real.Angle)}).toReal = + polygonCapPolylineLength K tT := by + simpa only [tT, ENNReal.toReal_ofReal hpoly0] using + congrArg ENNReal.toReal (hbal tT) + have hlength : polygonPolylineLengthAt K (Real.pi / 2) = + (surfaceAreaMeasure K.val.val + {((Real.pi / 2 : ℝ) : Real.Angle)}).toReal := by + simp only [polygonPolylineLengthAt, dite_eq_left htT] + exact hbalReal.symm + rw [hunion, hSreal, hMreal, hEreal, hlength] at hmono + linarith + +theorem maximumPolygonCap_gap_le_surface {Θ : AngleSet} (K : PolygonCapSpace Θ) + (hK : IsMaximumPolygonCap Θ K) (hω : Θ.angle < Real.pi / 2) : + (wedgeGapInfimum K.val).1 ≤ + (surfaceAreaMeasure K.val.val {((Real.pi / 2 : ℝ) : Real.Angle)}).toReal ∧ + (wedgeGapInfimum K.val).2 ≤ + (surfaceAreaMeasure K.val.val {(Θ.angle : Real.Angle)}).toReal := by + have hbal := maximumPolygonCap_balanced K hK + refine ⟨wedgeGapInfimum_fst_le_surface_of_balanced K hω hbal, ?_⟩ + obtain ⟨Q, hQcarrier, hQmax⟩ := maximumPolygonCap_mirror Θ K hK + obtain ⟨P, hPcarrier, _hHall, hgap, _hupper, _hniche, hsurface⟩ := + cap_mirror_features K.val + have hPQ : P = Q.val := by + apply Subtype.ext + apply ConvexBody.ext + exact hPcarrier.trans hQcarrier.symm + have hQbal := maximumPolygonCap_balanced Q hQmax + have hQright := wedgeGapInfimum_fst_le_surface_of_balanced Q hω hQbal + have himage : + (fun t ↦ (wedgeGaps Q.val t).1) '' Ioo 0 Θ.angle = + (fun t ↦ (wedgeGaps K.val t).2) '' Ioo 0 Θ.angle := by + ext x + constructor + · rintro ⟨t, ht, rfl⟩ + rcases ht with ⟨ht0, htω⟩ + refine ⟨Θ.angle - t, ⟨by linarith, by linarith⟩, ?_⟩ + have hg := (hgap t ⟨ht0, htω⟩).2.2.1 + rw [hPQ] at hg + change (wedgeGaps Q.val t).1 = (wedgeGaps K.val (Θ.angle - t)).2 at hg + exact hg.symm + · rintro ⟨t, ht, rfl⟩ + rcases ht with ⟨ht0, htω⟩ + have hcomp : Θ.angle - t ∈ Ioo 0 Θ.angle := ⟨by linarith, by linarith⟩ + refine ⟨Θ.angle - t, hcomp, ?_⟩ + have hg := (hgap (Θ.angle - t) hcomp).2.2.1 + rw [hPQ] at hg + change (wedgeGaps Q.val (Θ.angle - t)).1 = + (wedgeGaps K.val (Θ.angle - (Θ.angle - t))).2 at hg + simpa only [sub_sub_cancel] using hg + have hinf : (wedgeGapInfimum Q.val).1 = (wedgeGapInfimum K.val).2 := by + change sInf ((fun t ↦ (wedgeGaps Q.val t).1) '' Ioo 0 Θ.angle) = + sInf ((fun t ↦ (wedgeGaps K.val t).2) '' Ioo 0 Θ.angle) + exact congrArg sInf himage + have hsurface' : + surfaceAreaMeasure Q.val.val {((Real.pi / 2 : ℝ) : Real.Angle)} = + surfaceAreaMeasure K.val.val {(Θ.angle : Real.Angle)} := by + have hs := hsurface {((Real.pi / 2 : ℝ) : Real.Angle)} + (measurableSet_singleton _) + rw [hPQ] at hs + rw [Set.image_singleton] at hs + have hang : + ((Θ.angle + Real.pi / 2 : ℝ) : Real.Angle) - + ((Real.pi / 2 : ℝ) : Real.Angle) = + (Θ.angle : Real.Angle) := by + rw [← Real.Angle.coe_sub] + congr 1 + ring + simpa only [hang] using hs + rw [hinf, hsurface'] at hQright + exact hQright + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Bounds / Wedge Gap / Limit +-/ + +@[expose] public section + +noncomputable section + +open Filter MeasureTheory Set +open scoped Topology + +namespace MovingSofa + +theorem wedgeGapInfimum_hausdorff_bound {ω : ℝ} (K L : CapSpace ω) + (hω : ω < Real.pi / 2) : + |(wedgeGapInfimum K).1 - (wedgeGapInfimum L).1| ≤ + (1 + (Real.cos ω)⁻¹) * Metric.hausdorffDist (K.val : Set Point) L.val := by + let d := Metric.hausdorffDist (K.val : Set Point) L.val + let C := (1 + (Real.cos ω)⁻¹) * d + let f := fun t : ℝ ↦ (wedgeGaps K t).1 + let g := fun t : ℝ ↦ (wedgeGaps L t).1 + have hω0 : 0 < ω := K.property.1 + have hcosω : 0 < Real.cos ω := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, hω0], hω⟩ + have hcost {t : ℝ} (ht : t ∈ Icc 0 ω) : 0 < Real.cos t := + Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, ht.1], ht.2.trans_lt hω⟩ + have hsupport := compactSet_support_continuity (K.val : Set Point) (L.val : Set Point) + K.val.nonempty K.val.isCompact L.val.nonempty L.val.isCompact + have hsupport' (t : ℝ) : + |supportValue K.val (t : Real.Angle) - supportValue L.val (t : Real.Angle)| ≤ d := by + change |vectorSupport (K.val : Set Point) (normalVector (t : Real.Angle)) - + vectorSupport (L.val : Set Point) (normalVector (t : Real.Angle))| ≤ d + exact hsupport.2.1 _ (norm_normalVector_real t) + have hpoint (t : ℝ) (ht : t ∈ Ioo 0 ω) : |f t - g t| ≤ C := by + have hct : 0 < Real.cos t := hcost ⟨ht.1.le, ht.2.le⟩ + have hcos_le : Real.cos ω ≤ Real.cos t := + Real.cos_le_cos_of_nonneg_of_le_pi ht.1.le + (by linarith [Real.pi_pos, hω]) ht.2.le + dsimp only [f, g] + rw [wedgeGaps_fst_eq_supportValue, wedgeGaps_fst_eq_supportValue] + calc + |(supportValue K.val (0 : Real.Angle) - + (supportValue K.val (t : Real.Angle) - 1) / Real.cos t) - + (supportValue L.val (0 : Real.Angle) - + (supportValue L.val (t : Real.Angle) - 1) / Real.cos t)| = + |(supportValue K.val (0 : Real.Angle) - + supportValue L.val (0 : Real.Angle)) - + (supportValue K.val (t : Real.Angle) - + supportValue L.val (t : Real.Angle)) / Real.cos t| := by + congr 1 + field_simp + ring + _ ≤ |supportValue K.val (0 : Real.Angle) - + supportValue L.val (0 : Real.Angle)| + + |(supportValue K.val (t : Real.Angle) - + supportValue L.val (t : Real.Angle)) / Real.cos t| := abs_sub _ _ + _ = |supportValue K.val (0 : Real.Angle) - + supportValue L.val (0 : Real.Angle)| + + |supportValue K.val (t : Real.Angle) - + supportValue L.val (t : Real.Angle)| / Real.cos t := by + rw [abs_div, abs_of_pos hct] + _ ≤ d + d / Real.cos t := add_le_add (hsupport' 0) + (div_le_div_of_nonneg_right (hsupport' t) hct.le) + _ ≤ d + d / Real.cos ω := add_le_add le_rfl + (div_le_div_of_nonneg_left Metric.hausdorffDist_nonneg hcosω hcos_le) + _ = C := by simp only [C, div_eq_mul_inv]; ring + have hf_cont : ContinuousOn f (Icc 0 ω) := by + have hnum : Continuous fun t : ℝ ↦ + supportValue K.val (t : Real.Angle) - 1 := + (hsupport.2.2.1.comp Real.Angle.continuous_coe).sub continuous_const + have hquot : ContinuousOn (fun t : ℝ ↦ + (supportValue K.val (t : Real.Angle) - 1) / Real.cos t) (Icc 0 ω) := + hnum.continuousOn.div Real.continuous_cos.continuousOn + (fun t ht ↦ (hcost ht).ne') + have hf_eq : f = fun t : ℝ ↦ supportValue K.val (0 : Real.Angle) - + (supportValue K.val (t : Real.Angle) - 1) / Real.cos t := by + funext t + exact wedgeGaps_fst_eq_supportValue K t + rw [hf_eq] + convert continuousOn_const.sub hquot using 1 + have hsupportL := compactSet_support_continuity (L.val : Set Point) (K.val : Set Point) + L.val.nonempty L.val.isCompact K.val.nonempty K.val.isCompact + have hg_cont : ContinuousOn g (Icc 0 ω) := by + have hnum : Continuous fun t : ℝ ↦ + supportValue L.val (t : Real.Angle) - 1 := + (hsupportL.2.2.1.comp Real.Angle.continuous_coe).sub continuous_const + have hquot : ContinuousOn (fun t : ℝ ↦ + (supportValue L.val (t : Real.Angle) - 1) / Real.cos t) (Icc 0 ω) := + hnum.continuousOn.div Real.continuous_cos.continuousOn + (fun t ht ↦ (hcost ht).ne') + have hg_eq : g = fun t : ℝ ↦ supportValue L.val (0 : Real.Angle) - + (supportValue L.val (t : Real.Angle) - 1) / Real.cos t := by + funext t + exact wedgeGaps_fst_eq_supportValue L t + rw [hg_eq] + convert continuousOn_const.sub hquot using 1 + have hf : BddBelow (f '' Ioo 0 ω) := + (IsCompact.bddBelow_image isCompact_Icc hf_cont).mono (image_mono Ioo_subset_Icc_self) + have hg : BddBelow (g '' Ioo 0 ω) := + (IsCompact.bddBelow_image isCompact_Icc hg_cont).mono (image_mono Ioo_subset_Icc_self) + simpa only [wedgeGapInfimum, f, g, C, d] using + abs_sInf_image_sub_sInf_image_le (nonempty_Ioo.mpr hω0) f g hf hg hpoint + +/-- The left wedge-gap infimum obeys the same Hausdorff estimate as the right one. -/ +theorem wedgeGapInfimum_snd_hausdorff_bound {ω : ℝ} (K L : CapSpace ω) + (hω : ω < Real.pi / 2) : + |(wedgeGapInfimum K).2 - (wedgeGapInfimum L).2| ≤ + (1 + (Real.cos ω)⁻¹) * Metric.hausdorffDist (K.val : Set Point) L.val := by + let d := Metric.hausdorffDist (K.val : Set Point) L.val + let C := (1 + (Real.cos ω)⁻¹) * d + let f := fun t : ℝ ↦ (wedgeGaps K t).2 + let g := fun t : ℝ ↦ (wedgeGaps L t).2 + have hω0 : 0 < ω := K.property.1 + have hcosω : 0 < Real.cos ω := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, hω0], hω⟩ + have hcosδ {t : ℝ} (ht : t ∈ Icc 0 ω) : 0 < Real.cos (ω - t) := + Real.cos_pos_of_mem_Ioo + ⟨by linarith [ht.2], by linarith [Real.pi_pos, ht.1, hω]⟩ + have hsupport := compactSet_support_continuity (K.val : Set Point) (L.val : Set Point) + K.val.nonempty K.val.isCompact L.val.nonempty L.val.isCompact + have hsupport' (t : ℝ) : + |supportValue K.val (t : Real.Angle) - supportValue L.val (t : Real.Angle)| ≤ d := by + change |vectorSupport (K.val : Set Point) (normalVector (t : Real.Angle)) - + vectorSupport (L.val : Set Point) (normalVector (t : Real.Angle))| ≤ d + exact hsupport.2.1 _ (norm_normalVector_real t) + have hpoint (t : ℝ) (ht : t ∈ Ioo 0 ω) : |f t - g t| ≤ C := by + have hct : 0 < Real.cos (ω - t) := hcosδ ⟨ht.1.le, ht.2.le⟩ + have hcos_le : Real.cos ω ≤ Real.cos (ω - t) := + Real.cos_le_cos_of_nonneg_of_le_pi (sub_nonneg.mpr ht.2.le) + (by linarith [Real.pi_pos, hω]) (by linarith [ht.1]) + dsimp only [f, g] + rw [wedgeGaps_snd_eq_supportValue, wedgeGaps_snd_eq_supportValue] + calc + |(supportValue K.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) - + (supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos (ω - t)) - + (supportValue L.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) - + (supportValue L.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos (ω - t))| = + |(supportValue K.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) - + supportValue L.val ((ω + Real.pi / 2 : ℝ) : Real.Angle)) - + (supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - + supportValue L.val ((t + Real.pi / 2 : ℝ) : Real.Angle)) / + Real.cos (ω - t)| := by + congr 1 + field_simp + ring + _ ≤ |supportValue K.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) - + supportValue L.val ((ω + Real.pi / 2 : ℝ) : Real.Angle)| + + |(supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - + supportValue L.val ((t + Real.pi / 2 : ℝ) : Real.Angle)) / + Real.cos (ω - t)| := abs_sub _ _ + _ = |supportValue K.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) - + supportValue L.val ((ω + Real.pi / 2 : ℝ) : Real.Angle)| + + |supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - + supportValue L.val ((t + Real.pi / 2 : ℝ) : Real.Angle)| / + Real.cos (ω - t) := by + rw [abs_div, abs_of_pos hct] + _ ≤ d + d / Real.cos (ω - t) := add_le_add (hsupport' (ω + Real.pi / 2)) + (div_le_div_of_nonneg_right (hsupport' (t + Real.pi / 2)) hct.le) + _ ≤ d + d / Real.cos ω := add_le_add le_rfl + (div_le_div_of_nonneg_left Metric.hausdorffDist_nonneg hcosω hcos_le) + _ = C := by simp only [C, div_eq_mul_inv]; ring + have hf_cont : ContinuousOn f (Icc 0 ω) := by + have hnum : Continuous fun t : ℝ ↦ + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := + (hsupport.2.2.1.comp + (Real.Angle.continuous_coe.comp (continuous_id.add continuous_const))).sub + continuous_const + have hquot : ContinuousOn (fun t : ℝ ↦ + (supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos (ω - t)) (Icc 0 ω) := + hnum.continuousOn.div + (Real.continuous_cos.comp (continuous_const.sub continuous_id)).continuousOn + (fun t ht ↦ (hcosδ ht).ne') + have hf_eq : f = fun t : ℝ ↦ + supportValue K.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) - + (supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos (ω - t) := by + funext t + exact wedgeGaps_snd_eq_supportValue K t + rw [hf_eq] + exact continuousOn_const.sub hquot + have hsupportL := compactSet_support_continuity (L.val : Set Point) (K.val : Set Point) + L.val.nonempty L.val.isCompact K.val.nonempty K.val.isCompact + have hg_cont : ContinuousOn g (Icc 0 ω) := by + have hnum : Continuous fun t : ℝ ↦ + supportValue L.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := + (hsupportL.2.2.1.comp + (Real.Angle.continuous_coe.comp (continuous_id.add continuous_const))).sub + continuous_const + have hquot : ContinuousOn (fun t : ℝ ↦ + (supportValue L.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos (ω - t)) (Icc 0 ω) := + hnum.continuousOn.div + (Real.continuous_cos.comp (continuous_const.sub continuous_id)).continuousOn + (fun t ht ↦ (hcosδ ht).ne') + have hg_eq : g = fun t : ℝ ↦ + supportValue L.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) - + (supportValue L.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos (ω - t) := by + funext t + exact wedgeGaps_snd_eq_supportValue L t + rw [hg_eq] + exact continuousOn_const.sub hquot + have hf : BddBelow (f '' Ioo 0 ω) := + (IsCompact.bddBelow_image isCompact_Icc hf_cont).mono (image_mono Ioo_subset_Icc_self) + have hg : BddBelow (g '' Ioo 0 ω) := + (IsCompact.bddBelow_image isCompact_Icc hg_cont).mono (image_mono Ioo_subset_Icc_self) + simpa only [wedgeGapInfimum, f, g, C, d] using + abs_sInf_image_sub_sInf_image_le (nonempty_Ioo.mpr hω0) f g hf hg hpoint + +theorem balancedMaximumCap_gap_le_surface {ω : ℝ} (K : CapSpace ω) + (hK : IsBalancedMaximumCap K) (hω : ω < Real.pi / 2) : + (wedgeGapInfimum K).1 ≤ + (surfaceAreaMeasure K.val {((Real.pi / 2 : ℝ) : Real.Angle)}).toReal ∧ + (wedgeGapInfimum K).2 ≤ + (surfaceAreaMeasure K.val {(ω : Real.Angle)}).toReal := by + obtain ⟨n, hn, _hmono, _hdyadic, P, hmax, hlim⟩ := hK + let Θ (i : ℕ) := uniformAngleSet ω K.property.1 K.property.2.1 (n i) (hn i) + have hpolygon (i : ℕ) := maximumPolygonCap_gap_le_surface (P i) (hmax i) hω + have hfst : Tendsto (fun i ↦ (wedgeGapInfimum (P i).val).1) atTop + (𝓝 (wedgeGapInfimum K).1) := by + apply tendsto_iff_dist_tendsto_zero.mpr + apply squeeze_zero (fun _ ↦ dist_nonneg) _ (by + simpa only [mul_zero] using + Tendsto.const_mul (1 + (Real.cos ω)⁻¹) hlim) + intro i + simpa only [Real.dist_eq, uniformAngleSet] using + wedgeGapInfimum_hausdorff_bound (P i).val K hω + have hsnd : Tendsto (fun i ↦ (wedgeGapInfimum (P i).val).2) atTop + (𝓝 (wedgeGapInfimum K).2) := by + apply tendsto_iff_dist_tendsto_zero.mpr + apply squeeze_zero (fun _ ↦ dist_nonneg) _ (by + simpa only [mul_zero] using + Tendsto.const_mul (1 + (Real.cos ω)⁻¹) hlim) + intro i + simpa only [Real.dist_eq, uniformAngleSet] using + wedgeGapInfimum_snd_hausdorff_bound (P i).val K hω + constructor + · exact le_surfaceAreaMeasure_atom_of_tendsto hlim hfst (fun i ↦ (hpolygon i).1) + · apply le_surfaceAreaMeasure_atom_of_tendsto hlim hsnd + intro i + simpa only [Θ, uniformAngleSet] using (hpolygon i).2 + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Cap.BalancedExistence`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Balanced Existence +-/ + +@[expose] public section + +noncomputable section + +open Filter +open scoped Topology + +namespace MovingSofa + +private def polygonSeedSet (Θ : AngleSet) : Set Point := + capFan Θ.angle ∩ ⋂ t ∈ angleDomain Θ, + normalHalfPlane (t : Real.Angle) 1 false false + +private theorem mem_polygonSeedSet_iff (Θ : AngleSet) (p : Point) : + p ∈ polygonSeedSet Θ ↔ + p ∈ capFan Θ.angle ∧ + ∀ t ∈ angleDomain Θ, inner ℝ p (normalVector (t : Real.Angle)) ≤ 1 := by + simp [polygonSeedSet, normalHalfPlane] + +private theorem normalVector_mem_polygonSeedSet (Θ : AngleSet) {t : ℝ} + (ht : t ∈ angleDomain Θ) : normalVector (t : Real.Angle) ∈ polygonSeedSet Θ := by + apply (mem_polygonSeedSet_iff Θ _).mpr + have htupper : t ∈ capUpperAngles Θ.angle := by + rcases ht with (ht | ⟨s, hs, rfl⟩) | ht + · exact Or.inl ⟨(Θ.interior t ht).1.le, (Θ.interior t ht).2.le⟩ + · exact Or.inr ⟨by dsimp; linarith [(Θ.interior s hs).1], + by dsimp; linarith [(Θ.interior s hs).2]⟩ + · rcases ht with rfl | rfl + · exact Or.inl ⟨Θ.angle_pos.le, le_rfl⟩ + · exact Or.inr ⟨le_rfl, by linarith [Θ.angle_pos]⟩ + have ht0 : 0 ≤ t := by + rcases htupper with ⟨h0, _⟩ | ⟨hT, _⟩ + · exact h0 + · linarith [Real.pi_pos] + have htpi : t ≤ Real.pi := by + rcases htupper with ⟨_, hω⟩ | ⟨_, hω⟩ + · linarith [Θ.angle_le, Real.pi_pos] + · linarith [Θ.angle_le] + have htω : -(Real.pi / 2) ≤ t - Θ.angle ∧ t - Θ.angle ≤ Real.pi / 2 := by + rcases htupper with ⟨h0, hω⟩ | ⟨hT, hω⟩ <;> + constructor <;> linarith [Θ.angle_le] + constructor + · constructor + · change 0 ≤ inner ℝ (normalVector (t : Real.Angle)) + (normalVector (Θ.angle : Real.Angle)) + rw [inner_normalVector_normalVector] + exact Real.cos_nonneg_of_mem_Icc htω + · change 0 ≤ inner ℝ (normalVector (t : Real.Angle)) + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + simp only [normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, Real.cos_pi_div_two, + Real.sin_pi_div_two, PiLp.inner_apply, RCLike.inner_apply, conj_trivial, + Fin.sum_univ_two, Fin.isValue, Matrix.cons_val_zero, zero_mul, Matrix.cons_val_one, + Matrix.cons_val_fin_one, one_mul, zero_add] + exact Real.sin_nonneg_of_nonneg_of_le_pi ht0 htpi + · intro s hs + calc + inner ℝ (normalVector (t : Real.Angle)) (normalVector (s : Real.Angle)) ≤ + ‖normalVector (t : Real.Angle)‖ * ‖normalVector (s : Real.Angle)‖ := + real_inner_le_norm _ _ + _ = 1 := by rw [norm_normalVector_real, norm_normalVector_real, mul_one] + +private theorem zero_mem_polygonSeedSet (Θ : AngleSet) : + (0 : Point) ∈ polygonSeedSet Θ := by + rw [mem_polygonSeedSet_iff] + simp [capFan, normalHalfPlane] + +private theorem convex_polygonSeedSet (Θ : AngleSet) : Convex ℝ (polygonSeedSet Θ) := by + rw [polygonSeedSet] + apply Convex.inter + · apply Convex.inter + · exact convex_halfSpace_ge + ⟨fun x y ↦ inner_add_left x y _, fun a x ↦ by simp [real_inner_smul_left]⟩ 0 + · exact convex_halfSpace_ge + ⟨fun x y ↦ inner_add_left x y _, fun a x ↦ by simp [real_inner_smul_left]⟩ 0 + · apply convex_iInter + intro t + apply convex_iInter + intro _ + exact convex_halfSpace_le + ⟨fun x y ↦ inner_add_left x y _, fun a x ↦ by simp [real_inner_smul_left]⟩ 1 + +private theorem isClosed_polygonSeedSet (Θ : AngleSet) : IsClosed (polygonSeedSet Θ) := by + rw [polygonSeedSet] + apply IsClosed.inter + · apply IsClosed.inter <;> exact isClosed_le continuous_const (by fun_prop) + · apply isClosed_iInter + intro t + apply isClosed_iInter + intro _ + exact isClosed_le (by fun_prop) continuous_const + +private theorem isBounded_polygonSeedSet (Θ : AngleSet) : + Bornology.IsBounded (polygonSeedSet Θ) := by + obtain ⟨t, ht⟩ := Θ.nonempty + have hti := Θ.interior t ht + have hc : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, hti.1], hti.2.trans_le Θ.angle_le⟩ + have hs : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi hti.1 + (by linarith [hti.2, Θ.angle_le, Real.pi_pos]) + let l := -1 / Real.sin t + let r := 1 / Real.cos t + let M := |l| + |r| + have hM : 0 ≤ M := by dsimp [M]; positivity + apply isBounded_iff_forall_norm_le.mpr + refine ⟨M + 1, ?_⟩ + intro p hp + obtain ⟨hfan, hupp⟩ := (mem_polygonSeedSet_iff Θ p).mp hp + have htmem : t ∈ angleDomain Θ := Or.inl (Or.inl ht) + have htmem' : t + Real.pi / 2 ∈ angleDomain Θ := + Or.inl (Or.inr ⟨t, ht, rfl⟩) + have ha := hupp t htmem + have hb := hupp (t + Real.pi / 2) htmem' + have hy0 : 0 ≤ p 1 := by + have := hfan.2 + simpa [normalHalfPlane, normalVector, frame, PiLp.inner_apply] using this + have hy1 : p 1 ≤ 1 := by + have htop := hupp (Real.pi / 2) (Or.inr (Or.inr rfl)) + simpa [normalVector, frame, PiLp.inner_apply] using htop + simp [normalVector, frame, PiLp.inner_apply, Real.cos_add, Real.sin_add, + -Real.Angle.coe_add] at ha hb + have hl : l ≤ p 0 := by + apply (div_le_iff₀ hs).mpr + dsimp [l] + nlinarith [mul_nonneg hc.le hy0] + have hr : p 0 ≤ r := by + apply (le_div_iff₀ hc).mpr + dsimp [r] + nlinarith [mul_nonneg hs.le hy0] + have hx : |p 0| ≤ M := by + apply abs_le.mpr + dsimp [M] + constructor <;> linarith [neg_abs_le l, le_abs_self r, abs_nonneg l, abs_nonneg r] + have hx2 := (sq_le_sq₀ (abs_nonneg (p 0)) hM).mpr hx + have hy2 : (p 1) ^ 2 ≤ 1 := by nlinarith + have hn := EuclideanSpace.norm_sq_eq p + simp only [Fin.sum_univ_two, Real.norm_eq_abs, sq_abs] at hn hx2 + nlinarith [norm_nonneg p] + +private def polygonSeedBody (Θ : AngleSet) : ConvexBody Point where + carrier := polygonSeedSet Θ + convex' := convex_polygonSeedSet Θ + isCompact' := Metric.isCompact_iff_isClosed_bounded.mpr + ⟨isClosed_polygonSeedSet Θ, isBounded_polygonSeedSet Θ⟩ + nonempty' := ⟨0, zero_mem_polygonSeedSet Θ⟩ + +private theorem supportValue_polygonSeedBody_upper (Θ : AngleSet) {t : ℝ} + (ht : t ∈ angleDomain Θ) : + supportValue (polygonSeedBody Θ) (t : Real.Angle) = 1 := by + apply le_antisymm + · apply supportValue_le_of_subset_normalHalfPlane + intro p hp + exact ((mem_polygonSeedSet_iff Θ p).mp hp).2 t ht + · have hmem := normalVector_mem_polygonSeedSet Θ ht + have hle := inner_le_supportValue (polygonSeedBody Θ) hmem (t : Real.Angle) + rwa [inner_normalVector_self] at hle + +private theorem supportValue_polygonSeedBody_lower_angle (Θ : AngleSet) : + supportValue (polygonSeedBody Θ) ((Θ.angle + Real.pi : ℝ) : Real.Angle) = 0 := by + apply le_antisymm + · apply csSup_le ((polygonSeedBody Θ).nonempty.image _) + rintro _ ⟨p, hp, rfl⟩ + have hfan := ((mem_polygonSeedSet_iff Θ p).mp hp).1.1 + change 0 ≤ inner ℝ p (normalVector (Θ.angle : Real.Angle)) at hfan + change inner ℝ p (normalVector ((Θ.angle + Real.pi : ℝ) : Real.Angle)) ≤ 0 + rw [normalVector_add_pi, inner_neg_right] + exact neg_nonpos.mpr hfan + · apply le_csSup ((polygonSeedBody Θ).isCompact.image + (continuous_inner.comp (continuous_id.prodMk continuous_const))).bddAbove + exact ⟨0, zero_mem_polygonSeedSet Θ, by simp⟩ + +private theorem supportValue_polygonSeedBody_lower_vertical (Θ : AngleSet) : + supportValue (polygonSeedBody Θ) ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 := by + apply le_antisymm + · apply csSup_le ((polygonSeedBody Θ).nonempty.image _) + rintro _ ⟨p, hp, rfl⟩ + have hfan := ((mem_polygonSeedSet_iff Θ p).mp hp).1.2 + change 0 ≤ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at hfan + change inner ℝ p (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) ≤ 0 + rw [show (3 * Real.pi / 2 : ℝ) = Real.pi / 2 + Real.pi by ring, + normalVector_add_pi, inner_neg_right] + exact neg_nonpos.mpr hfan + · apply le_csSup ((polygonSeedBody Θ).isCompact.image + (continuous_inner.comp (continuous_id.prodMk continuous_const))).bddAbove + exact ⟨0, zero_mem_polygonSeedSet Θ, by simp⟩ + +private theorem polygonSeedBody_representation (Θ : AngleSet) : + HasHalfPlaneRepresentation (polygonSeedBody Θ) + (((fun t : ℝ ↦ (t : Real.Angle)) '' angleDomain Θ) ∪ + capLowerNormals Θ.angle) := by + let C : Set (Real.Angle × ℝ) := + (fun t : ℝ ↦ ((t : Real.Angle), 1)) '' angleDomain Θ ∪ + {(((Θ.angle + Real.pi : ℝ) : Real.Angle), 0), + (((3 * Real.pi / 2 : ℝ) : Real.Angle), 0)} + refine ⟨C, ?_, ?_⟩ + · rintro c (⟨t, ht, rfl⟩ | hc) + · exact Or.inl ⟨t, ht, rfl⟩ + · rcases hc with rfl | hc + · exact Or.inr (Or.inl rfl) + · have hc' : c = ((((3 * Real.pi / 2 : ℝ) : Real.Angle), 0)) := hc + subst c + exact Or.inr (Or.inr rfl) + · ext p + change p ∈ polygonSeedSet Θ ↔ _ + rw [mem_polygonSeedSet_iff] + simp only [C, Set.mem_iInter, Set.mem_union, Set.mem_image, Set.mem_insert_iff, + Set.mem_singleton_iff, normalHalfPlane, Bool.false_eq_true, ↓reduceIte] + constructor + · rintro ⟨hfan, hupp⟩ c (⟨t, ht, rfl⟩ | hc) + · exact hupp t ht + · rcases hc with rfl | rfl + · change inner ℝ p (normalVector ((Θ.angle + Real.pi : ℝ) : Real.Angle)) ≤ 0 + rw [normalVector_add_pi, inner_neg_right] + exact neg_nonpos.mpr hfan.1 + · change inner ℝ p (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) ≤ 0 + rw [inner_normalVector_three_pi_div_two] + have hy : 0 ≤ p 1 := by + simpa [capFan, normalHalfPlane, normalVector, frame, PiLp.inner_apply] using hfan.2 + exact neg_nonpos.mpr hy + · intro hp + constructor + · constructor + · change 0 ≤ inner ℝ p (normalVector (Θ.angle : Real.Angle)) + have h := hp (((Θ.angle + Real.pi : ℝ) : Real.Angle), 0) + (Or.inr (Or.inl rfl)) + change inner ℝ p (normalVector ((Θ.angle + Real.pi : ℝ) : Real.Angle)) ≤ 0 at h + rw [normalVector_add_pi, inner_neg_right] at h + exact neg_nonpos.mp h + · have h := hp (((3 * Real.pi / 2 : ℝ) : Real.Angle), 0) + (Or.inr (Or.inr rfl)) + change inner ℝ p (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) ≤ 0 at h + rw [inner_normalVector_three_pi_div_two] at h + change p ∈ normalHalfPlane ((Real.pi / 2 : ℝ) : Real.Angle) 0 true false + simpa [normalHalfPlane, normalVector, frame, PiLp.inner_apply] using h + · intro t ht + exact hp ((t : Real.Angle), 1) (Or.inl ⟨t, ht, rfl⟩) + +private def polygonSeedCap (Θ : AngleSet) : PolygonCapSpace Θ := by + let K := polygonSeedBody Θ + have hrepr := polygonSeedBody_representation Θ + have hdomain : angleDomain Θ ⊆ capUpperAngles Θ.angle := by + rintro t ((ht | ⟨s, hs, rfl⟩) | ht) + · exact Or.inl ⟨(Θ.interior t ht).1.le, (Θ.interior t ht).2.le⟩ + · exact Or.inr ⟨by dsimp; linarith [(Θ.interior s hs).1], + by dsimp; linarith [(Θ.interior s hs).2]⟩ + · rcases ht with rfl | rfl + · exact Or.inl ⟨Θ.angle_pos.le, le_rfl⟩ + · exact Or.inr ⟨le_rfl, by linarith [Θ.angle_pos]⟩ + have hcaprepr : HasHalfPlaneRepresentation K + (((fun t : ℝ ↦ (t : Real.Angle)) '' capUpperAngles Θ.angle) ∪ + capLowerNormals Θ.angle) := by + obtain ⟨C, hC, hKC⟩ := hrepr + refine ⟨C, ?_, hKC⟩ + intro c hc + rcases hC c hc with ⟨t, ht, heq⟩ | ht + · exact Or.inl ⟨t, hdomain ht, heq⟩ + · exact Or.inr ht + have hcap : IsCap Θ.angle K := by + refine ⟨Θ.angle_pos, Θ.angle_le, ?_, ?_, ?_, ?_, hcaprepr⟩ + · exact supportValue_polygonSeedBody_upper Θ (Or.inr (Or.inl rfl)) + · exact supportValue_polygonSeedBody_upper Θ (Or.inr (Or.inr rfl)) + · exact supportValue_polygonSeedBody_lower_angle Θ + · exact supportValue_polygonSeedBody_lower_vertical Θ + exact ⟨⟨K, hcap⟩, hrepr⟩ + +private theorem supportValue_polygonSeedCap_upper (Θ : AngleSet) {t : ℝ} + (ht : t ∈ angleDomain Θ) : + supportValue (polygonSeedCap Θ).val.val (t : Real.Angle) = 1 := by + change supportValue (polygonSeedBody Θ) (t : Real.Angle) = 1 + exact supportValue_polygonSeedBody_upper Θ ht + +private theorem polygonNiche_polygonSeedCap (Θ : AngleSet) : + polygonNiche Θ (polygonSeedCap Θ).val = ∅ := by + apply Set.eq_empty_iff_forall_notMem.mpr + intro p hp + obtain ⟨hfan, hq⟩ := hp + obtain ⟨t, ht, hq⟩ := Set.mem_iUnion₂.mp hq + have hti := Θ.interior t ht + have hc : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, hti.1], hti.2.trans_le Θ.angle_le⟩ + have hs : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi hti.1 + (by linarith [hti.2, Θ.angle_le, Real.pi_pos]) + have hy : 0 ≤ p 1 := by + have := hfan.2 + simpa [capFan, normalHalfPlane, normalVector, frame, PiLp.inner_apply] using this + have h₁ := hq.1 + have h₂ := hq.2 + change inner ℝ p (normalVector (t : Real.Angle)) < + supportValue (polygonSeedCap Θ).val.val (t : Real.Angle) - 1 at h₁ + change inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < + supportValue (polygonSeedCap Θ).val.val + ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 at h₂ + rw [supportValue_polygonSeedCap_upper Θ (Or.inl (Or.inl ht))] at h₁ + rw [supportValue_polygonSeedCap_upper Θ (Or.inl (Or.inr ⟨t, ht, rfl⟩))] at h₂ + simp only [normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, + PiLp.inner_apply, RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, + Matrix.cons_val_zero, Matrix.cons_val_one, Matrix.cons_val_fin_one, sub_self, + Real.cos_add, Real.cos_pi_div_two, mul_zero, Real.sin_pi_div_two, mul_one, + zero_sub, Real.sin_add, zero_add, neg_mul, neg_add_lt_iff_lt_add, add_zero] at h₁ h₂ + have h₁' := mul_lt_mul_of_pos_left h₁ hs + have h₂' := mul_lt_mul_of_pos_left h₂ hc + nlinarith [Real.sin_sq_add_cos_sq t] + +private theorem polygonSeedCap_area_nonneg (Θ : AngleSet) : + 0 ≤ polygonAreaFunctional Θ (polygonSeedCap Θ).val := by + rw [(polygonArea_upperBound Θ).1, polygonNiche_polygonSeedCap] + simp [ClassicalResults.area] + +private theorem angleDomain_distance_midpoint (Θ : AngleSet) {t : ℝ} + (ht : t ∈ angleDomain Θ) : + Real.pi / 4 - Θ.angle / 2 ≤ + |t - (Real.pi / 4 + Θ.angle / 2)| ∧ + |t - (Real.pi / 4 + Θ.angle / 2)| ≤ Real.pi / 2 := by + have htupper : t ∈ capUpperAngles Θ.angle := by + rcases ht with (ht | ⟨s, hs, rfl⟩) | ht + · exact Or.inl ⟨(Θ.interior t ht).1.le, (Θ.interior t ht).2.le⟩ + · exact Or.inr ⟨by dsimp; linarith [(Θ.interior s hs).1], + by dsimp; linarith [(Θ.interior s hs).2]⟩ + · rcases ht with rfl | rfl + · exact Or.inl ⟨Θ.angle_pos.le, le_rfl⟩ + · exact Or.inr ⟨le_rfl, by linarith [Θ.angle_pos]⟩ + rcases htupper with ⟨ht0, htω⟩ | ⟨htT, htωT⟩ + · rw [abs_of_nonpos (by linarith [Θ.angle_le])] + constructor <;> linarith [Θ.angle_le, Real.pi_pos] + · rw [abs_of_nonneg (by linarith [Θ.angle_le])] + constructor <;> linarith [Θ.angle_le] + +private theorem stripParallelogram_top_mem_polygonSeedCap (Θ : AngleSet) : + (stripParallelogram Θ.angle).2.2 ∈ ((polygonSeedCap Θ).val.val : Set Point) := by + change (stripParallelogram Θ.angle).2.2 ∈ polygonSeedSet Θ + apply (mem_polygonSeedSet_iff Θ _).mpr + let β := Real.pi / 4 - Θ.angle / 2 + let m := Real.pi / 4 + Θ.angle / 2 + have hβ0 : 0 ≤ β := by dsimp [β]; linarith [Θ.angle_le] + have hβlt : β < Real.pi / 2 := by + dsimp [β] + linarith [Θ.angle_pos, Real.pi_pos] + have hcosβ : 0 < Real.cos β := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos], hβlt⟩ + have htanβ : 0 ≤ Real.tan β := + Real.tan_nonneg_of_nonneg_of_le_pi_div_two hβ0 hβlt.le + have hcosω : 0 ≤ Real.cos Θ.angle := Real.cos_nonneg_of_mem_Icc + ⟨by linarith [Θ.angle_pos, Real.pi_pos], Θ.angle_le⟩ + have hsinω : 0 ≤ Real.sin Θ.angle := Real.sin_nonneg_of_nonneg_of_le_pi + Θ.angle_pos.le (by linarith [Θ.angle_le]) + constructor + · constructor + · change 0 ≤ inner ℝ (!₂[Real.tan β, 1] : Point) + (normalVector (Θ.angle : Real.Angle)) + simp only [normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, PiLp.inner_apply, + RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, Matrix.cons_val_zero, + Matrix.cons_val_one, Matrix.cons_val_fin_one, mul_one] + positivity + · change 0 ≤ inner ℝ (!₂[Real.tan β, 1] : Point) + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + simp [normalVector, frame, PiLp.inner_apply] + · intro t ht + have hd := angleDomain_distance_midpoint Θ ht + have hdpi : |t - m| ≤ Real.pi := by dsimp [m]; linarith [hd.2, Real.pi_pos] + have hcosabs : Real.cos |t - m| ≤ Real.cos β := + Real.cos_le_cos_of_nonneg_of_le_pi hβ0 hdpi (by simpa [β, m] using hd.1) + have hcos : Real.cos (t - m) ≤ Real.cos β := by + simpa only [Real.cos_abs] using hcosabs + change inner ℝ (!₂[Real.tan β, 1] : Point) (normalVector (t : Real.Angle)) ≤ 1 + simp only [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two, + Matrix.cons_val_zero, Matrix.cons_val_one, Real.inner_apply] + have htrig : Real.sin β * Real.cos t + Real.cos β * Real.sin t = + Real.cos (t - m) := by + calc + Real.sin β * Real.cos t + Real.cos β * Real.sin t = + Real.sin (β + t) := by rw [Real.sin_add] + _ = Real.cos (Real.pi / 2 - (β + t)) := by rw [Real.cos_pi_div_two_sub] + _ = Real.cos (m - t) := by congr 1; dsimp [β, m]; ring + _ = Real.cos (t - m) := by rw [← Real.cos_neg]; congr 1; ring + apply le_of_mul_le_mul_left ?_ hcosβ + rw [Real.tan_eq_sin_div_cos] + field_simp [hcosβ.ne'] + change Real.sin β * Real.cos t + Real.cos β * Real.sin t ≤ Real.cos β + rw [htrig] + exact hcos + +private def IsPolygonMaximizationCandidate (Θ : AngleSet) (K : PolygonCapSpace Θ) : Prop := + (stripParallelogram Θ.angle).2.2 ∈ (K.val.val : Set Point) ∧ + 0 ≤ polygonAreaFunctional Θ K.val + +private theorem exists_compact_polygonCap_bound (ω : ℝ) (hω : 0 < ω) + (hω' : ω ≤ Real.pi / 2) (t : ℝ) (ht : t ∈ Set.Ioo 0 ω) : + ∃ A : Set Point, IsCompact A ∧ ∀ (Θ : AngleSet), Θ.angle = ω → + t ∈ Θ.directions → ∀ K : PolygonCapSpace Θ, + IsPolygonMaximizationCandidate Θ K → (K.val.val : Set Point) ⊆ A := by + obtain ⟨c, hc, hwidth⟩ := polygonCap_width_bound ω t hω hω' ht + let o := (stripParallelogram ω).2.2 + let R := c + |o 0| + 2 + refine ⟨Metric.closedBall 0 R, isCompact_closedBall 0 R, ?_⟩ + intro Θ hΘ hdir K hK p hp + subst ω + have hw := hwidth Θ rfl hdir K hK.2 + have hp0 := inner_le_supportValue K.val.val hp (0 : Real.Angle) + have hpπ := inner_le_supportValue K.val.val hp (Real.pi : Real.Angle) + have ho0 := inner_le_supportValue K.val.val hK.1 (0 : Real.Angle) + have hoπ := inner_le_supportValue K.val.val hK.1 (Real.pi : Real.Angle) + simp [directionalWidth, supportValue, normalVector, frame, PiLp.inner_apply] + at hw hp0 hpπ ho0 hoπ + have hpx : |p 0| ≤ c + |o 0| := by + rw [abs_le] + constructor + · linarith [neg_abs_le (o 0)] + · linarith [le_abs_self (o 0)] + have hpy := K.val.mem_horizontalStrip hp + have hR0 : 0 ≤ R := by dsimp [R]; positivity + rw [Metric.mem_closedBall] + have hpx2 := (sq_le_sq₀ (abs_nonneg (p 0)) (by positivity : 0 ≤ c + |o 0|)).mpr hpx + have hpy2 : (p 1) ^ 2 ≤ 1 := by nlinarith [hpy.1, hpy.2] + have ha0 : 0 ≤ c + |o 0| := by positivity + have hn := EuclideanSpace.norm_sq_eq p + simp only [Fin.sum_univ_two, Real.norm_eq_abs, sq_abs] at hn hpx2 + have hsquare : ‖p‖ ^ 2 ≤ R ^ 2 := by + dsimp [R] + nlinarith + simpa [dist_eq_norm] using + ((sq_le_sq₀ (norm_nonneg p) hR0).mp hsquare) + +private theorem exists_compact_polygonCandidate_bound (Θ : AngleSet) : + ∃ A : Set Point, IsCompact A ∧ ∀ K : PolygonCapSpace Θ, + IsPolygonMaximizationCandidate Θ K → (K.val.val : Set Point) ⊆ A := by + obtain ⟨t, ht⟩ := Θ.nonempty + obtain ⟨A, hA, hbound⟩ := exists_compact_polygonCap_bound Θ.angle + Θ.angle_pos Θ.angle_le t (Θ.interior t ht) + exact ⟨A, hA, fun K hK ↦ hbound Θ rfl ht K hK⟩ + +private theorem tendsto_supportValue_of_hausdorffBodies + (K : ℕ → ConvexBody Point) (L : ConvexBody Point) + (hlim : Tendsto (fun i ↦ Metric.hausdorffDist (K i : Set Point) + (L : Set Point)) atTop (𝓝 0)) (t : ℝ) : + Tendsto (fun i ↦ supportValue (K i) (t : Real.Angle)) atTop + (𝓝 (supportValue L (t : Real.Angle))) := by + apply tendsto_iff_dist_tendsto_zero.mpr + apply squeeze_zero (fun _ ↦ dist_nonneg) _ hlim + intro i + simpa only [Real.dist_eq, vectorSupport, supportValue] using + (compactSet_support_continuity (K i) L (K i).nonempty + (K i).isCompact L.nonempty L.isCompact).2.1 + (normalVector (t : Real.Angle)) (norm_normalVector_real t) + +private theorem polygonCandidate_values_bddAbove (Θ : AngleSet) : + BddAbove {r : ℝ | ∃ K : PolygonCapSpace Θ, + IsPolygonMaximizationCandidate Θ K ∧ polygonAreaFunctional Θ K.val = r} := by + obtain ⟨A, hA, hbound⟩ := exists_compact_polygonCandidate_bound Θ + refine ⟨ClassicalResults.area A, ?_⟩ + rintro r ⟨K, hK, rfl⟩ + rw [(polygonArea_upperBound Θ).1 K] + calc + ClassicalResults.area (K.val.val : Set Point) - + ClassicalResults.area (polygonNiche Θ K.val) ≤ + ClassicalResults.area (K.val.val : Set Point) := by + linarith [show 0 ≤ ClassicalResults.area (polygonNiche Θ K.val) from + ENNReal.toReal_nonneg] + _ ≤ ClassicalResults.area A := by + exact ENNReal.toReal_mono hA.measure_ne_top (MeasureTheory.measure_mono (hbound K hK)) + +private theorem supportValue_limit_eq {K : ℕ → ConvexBody Point} {L : ConvexBody Point} + (hlim : Tendsto (fun i ↦ Metric.hausdorffDist (K i : Set Point) + (L : Set Point)) atTop (𝓝 0)) (t c : ℝ) + (hvalue : ∀ i, supportValue (K i) (t : Real.Angle) = c) : + supportValue L (t : Real.Angle) = c := by + apply tendsto_nhds_unique (tendsto_supportValue_of_hausdorffBodies K L hlim t) + simpa only [hvalue] using (tendsto_const_nhds : Tendsto (fun _ : ℕ ↦ c) atTop (𝓝 c)) + +private theorem mem_hausdorffLimit {K : ℕ → ConvexBody Point} {L : ConvexBody Point} + (hlim : Tendsto (fun i ↦ Metric.hausdorffDist (K i : Set Point) + (L : Set Point)) atTop (𝓝 0)) {p : Point} (hp : ∀ i, p ∈ (K i : Set Point)) : + p ∈ (L : Set Point) := by + have hle : (fun _ : ℕ ↦ Metric.infDist p (L : Set Point)) ≤ᶠ[atTop] + (fun i ↦ Metric.hausdorffDist (K i : Set Point) (L : Set Point)) := by + filter_upwards [] with i + exact Metric.infDist_le_hausdorffDist_of_mem (hp i) + (Metric.hausdorffEDist_ne_top_of_nonempty_of_bounded + (K i).nonempty L.nonempty (K i).isCompact.isBounded L.isCompact.isBounded) + have hz : Metric.infDist p (L : Set Point) ≤ 0 := + le_of_tendsto_of_tendsto tendsto_const_nhds hlim hle + exact (L.isClosed.mem_iff_infDist_zero L.nonempty).mpr + (le_antisymm hz Metric.infDist_nonneg) + +private theorem exists_polygonCap_of_hausdorffLimit (Θ : AngleSet) + (K : ℕ → PolygonCapSpace Θ) (L : ConvexBody Point) + (hlim : Tendsto (fun i ↦ Metric.hausdorffDist (K i).val.val (L : Set Point)) + atTop (𝓝 0)) : + ∃ P : PolygonCapSpace Θ, (P.val.val : Set Point) = (L : Set Point) := by + let N : Set Real.Angle := + ((fun t : ℝ ↦ (t : Real.Angle)) '' angleDomain Θ) ∪ capLowerNormals Θ.angle + let U : Set Point := normalVector '' N + have hU : ∀ u ∈ U, ‖u‖ = 1 := by + rintro u ⟨a, ha, rfl⟩ + rcases ha with ⟨t, _, rfl⟩ | ha + · exact norm_normalVector_real t + · rcases ha with rfl | rfl + · exact norm_normalVector_real (Θ.angle + Real.pi) + · exact norm_normalVector_real (3 * Real.pi / 2) + have hK (i : ℕ) : ((K i).val.val : Set Point) = ⋂ u ∈ U, + {x | inner ℝ x u ≤ vectorSupport (K i).val.val u} := by + calc + ((K i).val.val : Set Point) = ⋂ a ∈ N, + normalHalfPlane a (supportValue (K i).val.val a) false false := + (K i).property.eq_iInter_supportValue + _ = ⋂ u ∈ U, {x | inner ℝ x u ≤ vectorSupport (K i).val.val u} := by + ext p + simp [U, normalHalfPlane, supportValue, vectorSupport] + have hclosed := fixedNormalBody_closed U hU (fun i ↦ (K i).val.val) L hK hlim + have hrepr : HasHalfPlaneRepresentation L N := by + refine ⟨(fun t ↦ (t, supportValue L t)) '' N, ?_, ?_⟩ + · rintro _ ⟨t, ht, rfl⟩ + exact ht + · calc + (L : Set Point) = ⋂ u ∈ U, + {x | inner ℝ x u ≤ vectorSupport L u} := hclosed + _ = ⋂ t ∈ N, normalHalfPlane t (supportValue L t) false false := by + ext p + simp [U, normalHalfPlane, supportValue, vectorSupport] + _ = ⋂ c ∈ (fun t ↦ (t, supportValue L t)) '' N, + normalHalfPlane c.1 c.2 false false := by + ext p + simp + have hω := supportValue_limit_eq hlim Θ.angle 1 + (fun i ↦ (K i).val.property.2.2.1) + have hT := supportValue_limit_eq hlim (Real.pi / 2) 1 + (fun i ↦ (K i).val.property.2.2.2.1) + have hωπ := supportValue_limit_eq hlim (Θ.angle + Real.pi) 0 + (fun i ↦ (K i).val.property.2.2.2.2.1) + have h3T := supportValue_limit_eq hlim (3 * Real.pi / 2) 0 + (fun i ↦ (K i).val.property.2.2.2.2.2.1) + have hdomain : angleDomain Θ ⊆ capUpperAngles Θ.angle := by + rintro t ((ht | ⟨s, hs, rfl⟩) | ht) + · exact Or.inl ⟨(Θ.interior t ht).1.le, (Θ.interior t ht).2.le⟩ + · exact Or.inr ⟨by dsimp; linarith [(Θ.interior s hs).1], + by dsimp; linarith [(Θ.interior s hs).2]⟩ + · rcases ht with rfl | rfl + · exact Or.inl ⟨Θ.angle_pos.le, le_rfl⟩ + · exact Or.inr ⟨le_rfl, by linarith [Θ.angle_pos]⟩ + have hcaprepr : HasHalfPlaneRepresentation L + (((fun t : ℝ ↦ (t : Real.Angle)) '' capUpperAngles Θ.angle) ∪ + capLowerNormals Θ.angle) := by + obtain ⟨C, hCN, hLC⟩ := hrepr + refine ⟨C, ?_, hLC⟩ + intro c hc + rcases hCN c hc with ⟨t, ht, heq⟩ | ht + · exact Or.inl ⟨t, hdomain ht, heq⟩ + · exact Or.inr ht + have hcap : IsCap Θ.angle L := + ⟨Θ.angle_pos, Θ.angle_le, hω, hT, hωπ, h3T, hcaprepr⟩ + exact ⟨⟨⟨L, hcap⟩, hrepr⟩, rfl⟩ + +private theorem exists_maximum_polygonCandidate (Θ : AngleSet) : + ∃ K : PolygonCapSpace Θ, IsPolygonMaximizationCandidate Θ K ∧ + ∀ L : PolygonCapSpace Θ, IsPolygonMaximizationCandidate Θ L → + polygonAreaFunctional Θ L.val ≤ polygonAreaFunctional Θ K.val := by + let S : Set ℝ := {r | ∃ K : PolygonCapSpace Θ, + IsPolygonMaximizationCandidate Θ K ∧ polygonAreaFunctional Θ K.val = r} + have hS : S.Nonempty := by + refine ⟨polygonAreaFunctional Θ (polygonSeedCap Θ).val, polygonSeedCap Θ, ?_, rfl⟩ + exact ⟨stripParallelogram_top_mem_polygonSeedCap Θ, polygonSeedCap_area_nonneg Θ⟩ + have hSbdd : BddAbove S := polygonCandidate_values_bddAbove Θ + obtain ⟨u, _, hu, huS⟩ := exists_seq_tendsto_sSup hS hSbdd + choose K hK hKu using huS + obtain ⟨A, hA, hbound⟩ := exists_compact_polygonCandidate_bound Θ + obtain ⟨φ, L, hφ, hlim⟩ := convexBody_selection A hA (fun i ↦ (K i).val.val) + (fun i ↦ hbound (K i) (hK i)) + obtain ⟨P, hPL⟩ := exists_polygonCap_of_hausdorffLimit Θ (fun i ↦ K (φ i)) L hlim + have hlimP : Tendsto (fun i ↦ Metric.hausdorffDist ((K (φ i)).val.val : Set Point) + (P.val.val : Set Point)) atTop (𝓝 0) := by + simpa only [hPL] using hlim + have hcont := (polygonArea_continuity Θ (fun i ↦ (K (φ i)).val) P.val hlimP).2 + have huφ : Tendsto (fun i ↦ u (φ i)) atTop (𝓝 (sSup S)) := + hu.comp hφ.tendsto_atTop + have hfuncSup : polygonAreaFunctional Θ P.val = sSup S := by + apply tendsto_nhds_unique hcont + simpa only [hKu] using huφ + have hPtop : (stripParallelogram Θ.angle).2.2 ∈ (P.val.val : Set Point) := by + rw [hPL] + exact mem_hausdorffLimit hlim (fun i ↦ (hK (φ i)).1) + have hPnonneg : 0 ≤ polygonAreaFunctional Θ P.val := by + apply ge_of_tendsto hcont + exact Eventually.of_forall fun i ↦ (hK (φ i)).2 + refine ⟨P, ⟨hPtop, hPnonneg⟩, ?_⟩ + intro Q hQ + rw [hfuncSup] + exact le_csSup hSbdd ⟨Q, hQ, rfl⟩ + +private theorem innerQuadrant_translate (K : ConvexBody Point) (v : Point) (t : ℝ) : + innerQuadrant (ConvexBody.translate K v : Set Point) t = + (fun p ↦ p + v) '' innerQuadrant (K : Set Point) t := by + have hsupp (a : Real.Angle) : supportValue (ConvexBody.translate K v) a = + supportValue K a + inner ℝ v (normalVector a) := supportValue_image_add K v a + ext q + simp only [innerQuadrant, normalHalfPlane, Set.mem_inter_iff, Bool.false_eq_true, + ↓reduceIte, Set.mem_image] + rw [hsupp, hsupp] + constructor + · intro h + change inner ℝ q (normalVector (t : Real.Angle)) < + supportValue K (t : Real.Angle) + inner ℝ v (normalVector (t : Real.Angle)) - 1 ∧ + inner ℝ q (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < + supportValue K ((t + Real.pi / 2 : ℝ) : Real.Angle) + + inner ℝ v (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) - 1 at h + refine ⟨q - v, ?_, by simp⟩ + constructor + · change inner ℝ (q - v) (normalVector (t : Real.Angle)) < _ + rw [inner_sub_left] + linarith [h.1] + · change inner ℝ (q - v) (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < _ + rw [inner_sub_left] + linarith [h.2] + · rintro ⟨p, hp, rfl⟩ + change inner ℝ p (normalVector (t : Real.Angle)) < supportValue K (t : Real.Angle) - 1 ∧ + inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < + supportValue K ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 at hp + constructor + · change inner ℝ (p + v) (normalVector (t : Real.Angle)) < _ + rw [inner_add_left] + linarith [hp.1] + · change inner ℝ (p + v) (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < _ + rw [inner_add_left] + linarith [hp.2] + +private theorem exists_candidate_translate_rightAngle (Θ : AngleSet) + (hΘ : Θ.angle = Real.pi / 2) (K : PolygonCapSpace Θ) + (hK : 0 ≤ polygonAreaFunctional Θ K.val) : + ∃ P : PolygonCapSpace Θ, IsPolygonMaximizationCandidate Θ P ∧ + polygonAreaFunctional Θ P.val = polygonAreaFunctional Θ K.val := by + obtain ⟨p, hp, hpeq⟩ := (K.val.val.isCompact.image + (continuous_inner.comp (continuous_id.prodMk continuous_const))).sSup_mem + (K.val.val.nonempty.image + (fun q ↦ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)))) + have hp1 : p 1 = 1 := by + change inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue K.val.val ((Real.pi / 2 : ℝ) : Real.Angle) at hpeq + rw [K.val.property.2.2.2.1] at hpeq + simpa [normalVector, frame, PiLp.inner_apply] using hpeq + let v : Point := !₂[-p 0, 0] + let L := ConvexBody.translate K.val.val v + have hv (a : Real.Angle) (ha : a = ((Real.pi / 2 : ℝ) : Real.Angle) ∨ + a = ((3 * Real.pi / 2 : ℝ) : Real.Angle)) : + inner ℝ v (normalVector a) = 0 := by + rcases ha with rfl | rfl <;> + simp [v, normalVector, frame, PiLp.inner_apply, + show 3 * Real.pi / 2 = Real.pi + Real.pi / 2 by ring, + Real.cos_add, Real.sin_add, -Real.Angle.coe_add] + have hsupp (a : Real.Angle) : supportValue L a = supportValue K.val.val a + + inner ℝ v (normalVector a) := supportValue_image_add K.val.val v a + have hrepr := K.property.translate v + have hcaprepr := K.val.property.2.2.2.2.2.2.translate v + have htopω : supportValue K.val.val ((Real.pi / 2 : ℝ) : Real.Angle) = 1 := by + simpa only [hΘ] using K.val.property.2.2.1 + have hbotω : supportValue K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 := by + have ha : (((Θ.angle + Real.pi : ℝ) : Real.Angle)) = + ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by rw [hΘ]; congr 1; ring + simpa only [ha] using K.val.property.2.2.2.2.1 + have hcap : IsCap Θ.angle L := by + refine ⟨Θ.angle_pos, Θ.angle_le, ?_, ?_, ?_, ?_, hcaprepr⟩ + · rw [hΘ, hsupp, htopω, hv _ (Or.inl rfl), add_zero] + · rw [hsupp, K.val.property.2.2.2.1, hv _ (Or.inl rfl), add_zero] + · have ha : (((Θ.angle + Real.pi : ℝ) : Real.Angle)) = + ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by rw [hΘ]; congr 1; ring + rw [ha, hsupp, hbotω, hv _ (Or.inr rfl), add_zero] + · rw [hsupp, K.val.property.2.2.2.2.2.1, hv _ (Or.inr rfl), add_zero] + let P : PolygonCapSpace Θ := ⟨⟨L, hcap⟩, hrepr⟩ + have htop : (stripParallelogram Θ.angle).2.2 ∈ (P.val.val : Set Point) := by + refine ⟨p, hp, ?_⟩ + ext i + fin_cases i + · simp only [Fin.isValue, Fin.zero_eta, PiLp.add_apply, Matrix.cons_val_zero, add_neg_cancel, + stripParallelogram, hΘ, v] + rw [show Real.pi / 4 - Real.pi / 2 / 2 = 0 by ring, Real.tan_zero] + · simp [v, hΘ, stripParallelogram, hp1] + have hfan : capFan Θ.angle = (fun q ↦ q + v) '' capFan Θ.angle := by + ext q + rw [hΘ] + simp only [capFan, normalHalfPlane, Set.mem_inter_iff, Bool.false_eq_true, + ↓reduceIte, Set.mem_image] + constructor + · intro hq + refine ⟨q - v, ?_, by simp⟩ + simpa [v, normalVector, frame, PiLp.inner_apply, inner_sub_left] using hq + · rintro ⟨r, hr, rfl⟩ + simpa [v, normalVector, frame, PiLp.inner_apply, inner_add_left] using hr + have hniche : polygonNiche Θ P.val = + (fun q ↦ q + v) '' polygonNiche Θ K.val := by + have hquad (t : ℝ) : innerQuadrant (P.val.val : Set Point) t = + (fun q ↦ q + v) '' innerQuadrant (K.val.val : Set Point) t := + innerQuadrant_translate K.val.val v t + have hunion : (⋃ t ∈ Θ.directions, innerQuadrant (P.val.val : Set Point) t) = + (fun q ↦ q + v) '' ⋃ t ∈ Θ.directions, + innerQuadrant (K.val.val : Set Point) t := by + rw [Set.image_iUnion] + congr 1 + funext t + rw [Set.image_iUnion] + congr 1 + funext ht + exact hquad t + unfold polygonNiche + calc + capFan Θ.angle ∩ ⋃ t ∈ Θ.directions, innerQuadrant (P.val.val : Set Point) t = + (fun q ↦ q + v) '' capFan Θ.angle ∩ + (fun q ↦ q + v) '' ⋃ t ∈ Θ.directions, + innerQuadrant (K.val.val : Set Point) t := + congrArg₂ (· ∩ ·) hfan hunion + _ = (fun q ↦ q + v) '' (capFan Θ.angle ∩ ⋃ t ∈ Θ.directions, + innerQuadrant (K.val.val : Set Point) t) := + (Set.image_inter (Equiv.addRight v).injective).symm + have harea : polygonAreaFunctional Θ P.val = polygonAreaFunctional Θ K.val := by + rw [(polygonArea_upperBound Θ).1 P, (polygonArea_upperBound Θ).1 K] + change ClassicalResults.area ((fun q ↦ q + v) '' (K.val.val : Set Point)) - + ClassicalResults.area (polygonNiche Θ P.val) = _ + rw [ClassicalResults.area_image_add, hniche, ClassicalResults.area_image_add] + exact ⟨P, ⟨htop, harea.symm ▸ hK⟩, harea⟩ + +theorem exists_maximumPolygonCap (Θ : AngleSet) : + ∃ K : PolygonCapSpace Θ, IsMaximumPolygonCap Θ K ∧ 0 ≤ polygonAreaFunctional Θ K.val := by + obtain ⟨K, hK, hmax⟩ := exists_maximum_polygonCandidate Θ + refine ⟨K, ⟨hK.1, ?_⟩, hK.2⟩ + intro L + by_cases hL : 0 ≤ polygonAreaFunctional Θ L.val + · rcases lt_or_eq_of_le Θ.angle_le with hΘ | hΘ + · exact hmax L ⟨stripParallelogram_top_mem_of_angle_lt Θ hΘ L, hL⟩ + · obtain ⟨P, hP, heq⟩ := exists_candidate_translate_rightAngle Θ hΘ L hL + rw [← heq] + exact hmax P hP + · exact (le_of_not_ge hL).trans hK.2 + +theorem maximumPolygonCap_niche_subset {Θ : AngleSet} (K : PolygonCapSpace Θ) + (hK : IsMaximumPolygonCap Θ K) : polygonNiche Θ K.val ⊆ (K.val.val : Set Point) := by + exact polygonNiche_subset_of_balanced K (maximumPolygonCap_balanced K hK) + +private theorem isCap_of_hausdorffLimit {ω : ℝ} (K : ℕ → CapSpace ω) + (L : ConvexBody Point) + (hlim : Tendsto (fun i ↦ Metric.hausdorffDist ((K i).val : Set Point) + (L : Set Point)) atTop (𝓝 0)) : IsCap ω L := by + let N : Set Real.Angle := + ((fun t : ℝ ↦ (t : Real.Angle)) '' capUpperAngles ω) ∪ capLowerNormals ω + let U : Set Point := normalVector '' N + have hU : ∀ u ∈ U, ‖u‖ = 1 := by + rintro u ⟨a, _, rfl⟩ + induction a using Real.Angle.induction_on with + | _ a => exact norm_normalVector_real a + have hrepr (i : ℕ) : ((K i).val : Set Point) = ⋂ u ∈ U, + {x | inner ℝ x u ≤ vectorSupport (K i).val u} := by + calc + ((K i).val : Set Point) = ⋂ a ∈ N, + normalHalfPlane a (supportValue (K i).val a) false false := + (K i).property.2.2.2.2.2.2.eq_iInter_supportValue + _ = ⋂ u ∈ U, {x | inner ℝ x u ≤ vectorSupport (K i).val u} := by + ext p + simp [U, normalHalfPlane, supportValue, vectorSupport] + have hclosed := fixedNormalBody_closed U hU (fun i ↦ (K i).val) L hrepr hlim + refine ⟨(K 0).property.1, (K 0).property.2.1, + supportValue_limit_eq hlim ω 1 (fun i ↦ (K i).property.2.2.1), + supportValue_limit_eq hlim (Real.pi / 2) 1 (fun i ↦ (K i).property.2.2.2.1), + supportValue_limit_eq hlim (ω + Real.pi) 0 (fun i ↦ (K i).property.2.2.2.2.1), + supportValue_limit_eq hlim (3 * Real.pi / 2) 0 + (fun i ↦ (K i).property.2.2.2.2.2.1), ?_⟩ + refine ⟨(fun t ↦ (t, supportValue L t)) '' N, ?_, ?_⟩ + · rintro _ ⟨t, ht, rfl⟩ + exact ht + · calc + (L : Set Point) = ⋂ u ∈ U, + {x | inner ℝ x u ≤ vectorSupport L u} := hclosed + _ = ⋂ c ∈ (fun t ↦ (t, supportValue L t)) '' N, + normalHalfPlane c.1 c.2 false false := by + ext p + simp [U, normalHalfPlane, supportValue, vectorSupport] + +theorem exists_balancedMaximumCap (ω : ℝ) (hω : 0 < ω) (hω' : ω ≤ Real.pi / 2) : + ∃ K : CapSpace ω, IsBalancedMaximumCap K := by + let n : ℕ → ℕ := fun i ↦ 2 ^ (i + 1) + have hn (i : ℕ) : 2 ≤ n i := by + dsimp [n] + have h : 1 ≤ 2 ^ i := Nat.one_le_pow i 2 (by omega) + rw [pow_succ] + omega + let Θ (i : ℕ) := uniformAngleSet ω hω hω' (n i) (hn i) + have hmid (i : ℕ) : ω / 2 ∈ (Θ i).directions := by + apply Finset.mem_image.mpr + refine ⟨2 ^ i, Finset.mem_Ioo.mpr ⟨by positivity, ?_⟩, ?_⟩ + · change 2 ^ i < 2 ^ (i + 1) + exact pow_lt_pow_right₀ (by norm_num) (Nat.lt_succ_self i) + · simp only [n, Nat.cast_pow, Nat.cast_ofNat, pow_succ] + field_simp + push_cast + ring + choose Q hQmax hQnonneg using fun i ↦ exists_maximumPolygonCap (Θ i) + obtain ⟨A, hA, hbound⟩ := exists_compact_polygonCap_bound ω hω hω' (ω / 2) + ⟨by linarith, by linarith⟩ + obtain ⟨φ, L, hφ, hlim⟩ := convexBody_selection A hA (fun i ↦ (Q i).val.val) + (fun i ↦ hbound (Θ i) rfl (hmid i) (Q i) ⟨(hQmax i).1, hQnonneg i⟩) + let K : CapSpace ω := ⟨L, isCap_of_hausdorffLimit (fun i ↦ (Q (φ i)).val) L hlim⟩ + refine ⟨K, (fun i ↦ n (φ i)), (fun i ↦ hn (φ i)), ?_, ?_, ?_⟩ + · intro i j hij + apply pow_lt_pow_right₀ (by norm_num) + exact Nat.add_lt_add_right (hφ hij) 1 + · exact fun i ↦ ⟨φ i + 1, rfl⟩ + · exact ⟨(fun i ↦ Q (φ i)), (fun i ↦ hQmax (φ i)), hlim⟩ + +theorem balancedMaximumCap_niche_subset {ω : ℝ} (K : CapSpace ω) + (hK : IsBalancedMaximumCap K) : capNiche K ⊆ (K.val : Set Point) := by + obtain ⟨n, hn, hmono, hdyadic, P, hmax, hlim⟩ := hK + exact capNiche_subset_of_uniform_polygonNiche_subset K n hn hmono hdyadic P + (fun i ↦ maximumPolygonCap_niche_subset (P i) (hmax i)) hlim + +theorem balancedMaximumCap_maximizes_area {ω : ℝ} (K : CapSpace ω) + (hK : IsBalancedMaximumCap K) : + ∀ L : CapSpace ω, capAreaFunctional L ≤ capAreaFunctional K := by + obtain ⟨n, hn, hmono, hdyadic, P, hmax, hlim⟩ := hK + let Θ (i : ℕ) := uniformAngleSet ω K.property.1 K.property.2.1 (n i) (hn i) + have harealim := convexArea_hausdorff_continuity (fun i ↦ (P i).val.val) K.val hlim + have hniche := maximizingPolygon_nicheArea_limit ω K.property.1 K.property.2.1 + n hn hmono hdyadic P hmax K hlim + have hfunc : Tendsto (fun i ↦ polygonAreaFunctional (Θ i) (P i).val) atTop + (𝓝 (capAreaFunctional K)) := by + have hsub := harealim.sub hniche + convert hsub using 1 + · funext i + exact (polygonArea_upperBound (Θ i)).1 (P i) + · rfl + intro L + apply ge_of_tendsto hfunc + filter_upwards [] with i + exact ((polygonArea_upperBound (Θ i)).2 L).trans + (polygonAreaFunctional_le_maximum (Θ i) (P i) (hmax i) L) + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Polygon.BalancedInequalities`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Balanced Inequalities +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- A real angle strictly inside one full turn is not the zero angle. -/ +private theorem coe_ne_zero_of_pos_of_lt_two_pi {x : ℝ} (h0 : 0 < x) + (h2 : x < 2 * Real.pi) : ((x : ℝ) : Real.Angle) ≠ (0 : Real.Angle) := by + rw [← Real.Angle.coe_zero] + refine Real.Angle.coe_ne_coe_of_abs_sub_lt (by linarith) ?_ + rw [abs_lt] + constructor <;> linarith [Real.pi_pos] + +/-- Adding half a turn keeps a small positive angle away from zero. -/ +private theorem coe_add_pi_ne_zero_of_pos_of_lt_pi {x : ℝ} (h0 : 0 < x) + (h1 : x < Real.pi) : + ((x : ℝ) : Real.Angle) + ((Real.pi : ℝ) : Real.Angle) ≠ (0 : Real.Angle) := by + rw [← Real.Angle.coe_add] + exact coe_ne_zero_of_pos_of_lt_two_pi (by linarith) (by linarith) + +/-- A right-angle polygon cap has no face with horizontal outward normal. -/ +private theorem rightAngle_edgeVertices_zero_eq (n : ℕ) (hn : 2 ≤ n) + (K : PolygonCapSpace (rightAngleSet n hn)) : + (edgeVertices K.val.val (0 : Real.Angle)).1 = + (edgeVertices K.val.val (0 : Real.Angle)).2 := by + by_contra hne + have hpi := Real.pi_pos + have hangle : (rightAngleSet n hn).angle = Real.pi / 2 := rfl + have hlow : ∀ u ∈ capLowerNormals (rightAngleSet n hn).angle, + u = ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + intro u hu + simp only [capLowerNormals, hangle, Set.mem_insert_iff, Set.mem_singleton_iff] at hu + rcases hu with rfl | rfl + · congr 1 + ring + · rfl + have h3zero : ((3 * Real.pi / 2 : ℝ) : Real.Angle) ≠ (0 : Real.Angle) := + coe_ne_zero_of_pos_of_lt_two_pi (by linarith) (by linarith) + have h3pi : ((3 * Real.pi / 2 : ℝ) : Real.Angle) + ((Real.pi : ℝ) : Real.Angle) ≠ + (0 : Real.Angle) := by + have hshift : ((3 * Real.pi / 2 : ℝ) : Real.Angle) + ((Real.pi : ℝ) : Real.Angle) = + ((Real.pi / 2 : ℝ) : Real.Angle) := by + rw [← Real.Angle.coe_add, Real.Angle.angle_eq_iff_two_pi_dvd_sub] + exact ⟨1, by push_cast; ring⟩ + rw [hshift] + exact coe_ne_zero_of_pos_of_lt_two_pi (by linarith) (by linarith) + have hmain := K.properEdgeNormal_mem_allowed_or_antipodal (0 : Real.Angle) hne + rcases hmain with (⟨r, hr, hr0⟩ | hlowmem) | ⟨u, huN, hu0⟩ + · exact coe_ne_zero_of_pos_of_lt_two_pi + (angleDomain_subset_Ioo _ hr).1 + (by linarith [(angleDomain_subset_Ioo _ hr).2]) hr0 + · exact h3zero (hlow _ hlowmem).symm + · rcases huN with ⟨r, hr, rfl⟩ | hlowmem + · exact coe_add_pi_ne_zero_of_pos_of_lt_pi + (angleDomain_subset_Ioo _ hr).1 (angleDomain_subset_Ioo _ hr).2 hu0 + · rw [hlow _ hlowmem] at hu0 + exact h3pi hu0 + +/-- The surface measure of a right-angle polygon cap has no horizontal-normal atom. -/ +private theorem rightAngle_surfaceAreaMeasure_zero (n : ℕ) (hn : 2 ≤ n) + (K : PolygonCapSpace (rightAngleSet n hn)) : + surfaceAreaMeasure K.val.val {((0 : ℝ) : Real.Angle)} = 0 := by + rw [Real.Angle.coe_zero, (surfaceAreaMeasure_atom_length K.val.val (0 : Real.Angle)).2.1, + rightAngle_edgeVertices_zero_eq n hn K] + simp + +/-- The real-arithmetic core of the discrete balancing inequality. -/ +private theorem magicBound_of_le {δ T c s gp gm : ℝ} (hδpos : 0 < δ) (hδ45 : δ ≤ 4 / 5) + (hTub : T ≤ δ + 4 / 3 * δ ^ 3) (hTpos : 0 < T) + (hcub : c ≤ δ / 2 + 4 / 3 * (δ / 2) ^ 3) (hcpos : 0 < c) + (hgp5 : gp ≤ 5) (hgm0 : 0 ≤ gm) (hgle : gm ≤ gp) + (hsum : s ≤ T * max 0 (gm - 1 + c) + T * max 0 (1 - gp + c) + max 0 (2 * c - s)) : + s ≤ max |gp - 1| ((|gp - 1| + 1) / 2) * δ + 8 * δ ^ 2 := by + have hW0 : 0 ≤ max 0 (gm - 1) + max 0 (1 - gp) := by positivity + have hMsum : max 0 (gm - 1) + max 0 (1 - gp) ≤ |gp - 1| := by + rcases le_total gp 1 with hg | hg + · rw [abs_of_nonpos (by linarith), max_eq_left (show gm - 1 ≤ 0 by linarith), + max_eq_right (show (0 : ℝ) ≤ 1 - gp by linarith)] + linarith + · rw [abs_of_nonneg (by linarith), max_eq_left (show (1 : ℝ) - gp ≤ 0 by linarith)] + rcases le_total gm 1 with h2 | h2 + · rw [max_eq_left (show gm - 1 ≤ 0 by linarith)] + linarith + · rw [max_eq_right (show (0 : ℝ) ≤ gm - 1 by linarith)] + linarith + have hMsum4 : max 0 (gm - 1) + max 0 (1 - gp) ≤ 4 := by + rcases le_total gm 1 with h2 | h2 + · rw [max_eq_left (show gm - 1 ≤ 0 by linarith)] + have h3 : max 0 (1 - gp) ≤ 1 := max_le (by norm_num) (by linarith) + linarith + · rw [max_eq_left (show (1 : ℝ) - gp ≤ 0 by linarith), + max_eq_right (show (0 : ℝ) ≤ gm - 1 by linarith)] + linarith + have hstep1 : max 0 (gm - 1 + c) ≤ max 0 (gm - 1) + c := by + rcases le_total (gm - 1 + c) 0 with h | h + · rw [max_eq_left h] + linarith [le_max_left (0 : ℝ) (gm - 1)] + · rw [max_eq_right h] + linarith [le_max_right (0 : ℝ) (gm - 1)] + have hstep2 : max 0 (1 - gp + c) ≤ max 0 (1 - gp) + c := by + rcases le_total (1 - gp + c) 0 with h | h + · rw [max_eq_left h] + linarith [le_max_left (0 : ℝ) (1 - gp)] + · rw [max_eq_right h] + linarith [le_max_right (0 : ℝ) (1 - gp)] + have e1 : T * max 0 (gm - 1 + c) ≤ T * (max 0 (gm - 1) + c) := + mul_le_mul_of_nonneg_left hstep1 hTpos.le + have e2 : T * max 0 (1 - gp + c) ≤ T * (max 0 (1 - gp) + c) := + mul_le_mul_of_nonneg_left hstep2 hTpos.le + have hcombine : s ≤ T * (max 0 (gm - 1) + max 0 (1 - gp)) + 2 * (T * c) + + max 0 (2 * c - s) := by nlinarith only [e1, e2, hsum] + have p3 : δ ^ 3 ≤ 4 / 5 * δ ^ 2 := by + nlinarith only [mul_nonneg (sq_nonneg δ) (sub_nonneg.mpr hδ45)] + have hδsq : δ ^ 2 ≤ 16 / 25 := by nlinarith only [hδpos, hδ45] + have p4 : δ ^ 4 ≤ 16 / 25 * δ ^ 2 := by + nlinarith only [mul_nonneg (sq_nonneg δ) (sub_nonneg.mpr hδsq)] + have p6 : δ ^ 6 ≤ 1 / 2 * δ ^ 2 := by + nlinarith only [mul_nonneg (sq_nonneg δ) + (show (0 : ℝ) ≤ 1 / 2 - δ ^ 4 by nlinarith only [p4, hδsq])] + have f1 : T * (max 0 (gm - 1) + max 0 (1 - gp)) ≤ + (δ + 4 / 3 * δ ^ 3) * (max 0 (gm - 1) + max 0 (1 - gp)) := + mul_le_mul_of_nonneg_right hTub hW0 + have f2 : δ * (max 0 (gm - 1) + max 0 (1 - gp)) ≤ δ * |gp - 1| := + mul_le_mul_of_nonneg_left hMsum hδpos.le + have f3 : 4 / 3 * δ ^ 3 * (max 0 (gm - 1) + max 0 (1 - gp)) ≤ 4 / 3 * δ ^ 3 * 4 := + mul_le_mul_of_nonneg_left hMsum4 (by positivity) + have f4 : T * c ≤ (δ + 4 / 3 * δ ^ 3) * (δ / 2 + 4 / 3 * (δ / 2) ^ 3) := + mul_le_mul hTub hcub hcpos.le (by positivity) + have hE : T * (max 0 (gm - 1) + max 0 (1 - gp)) + 2 * (T * c) ≤ + |gp - 1| * δ + 7 * δ ^ 2 := by + nlinarith only [f1, f2, f3, f4, p3, p4, p6] + have hak1 : |gp - 1| * δ ≤ max |gp - 1| ((|gp - 1| + 1) / 2) * δ := + mul_le_mul_of_nonneg_right (le_max_left _ _) hδpos.le + have hak2 : (|gp - 1| + 1) / 2 * δ ≤ max |gp - 1| ((|gp - 1| + 1) / 2) * δ := + mul_le_mul_of_nonneg_right (le_max_right _ _) hδpos.le + have h2c : 2 * c ≤ δ + 1 / 3 * δ ^ 3 := by nlinarith only [hcub] + rcases le_total (2 * c - s) 0 with hcase | hcase + · rw [max_eq_left hcase] at hcombine + nlinarith only [hcombine, hE, hak1, sq_nonneg δ] + · rw [max_eq_right hcase] at hcombine + nlinarith only [hcombine, hE, hak2, h2c, p3, sq_nonneg δ] + +private theorem bRay_horizontal_boundary_measure_zero (K : ConvexBody Point) + (t : ℝ) (htIoo : t ∈ Set.Ioo 0 (Real.pi / 2)) : + Measure.hausdorffMeasure 1 + ((rotatingHallwayParts (K : Set Point) (t : Real.Angle)).bRay ∩ + {p : Point | inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0}) = 0 := by + have hpi := Real.pi_pos + have hns : NullSingletonClass (Measure.hausdorffMeasure 1 : Measure Point) := + Measure.nullSingletonClass_hausdorff Point one_pos + refine Set.Subsingleton.measure_zero ?_ _ + intro x hx y hy + by_contra hxy + have h1 : inner ℝ (x - y) (normalVector (t : Real.Angle)) = 0 := by + rw [inner_sub_left, ((mem_rotatingHallwayParts_bRay_iff _ _ x).mp hx.1).1, + ((mem_rotatingHallwayParts_bRay_iff _ _ y).mp hy.1).1, sub_self] + have hx2 : inner ℝ x (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 := hx.2 + have hy2 : inner ℝ y (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 := hy.2 + have h2 : inner ℝ (x - y) (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 := by + rw [inner_sub_left, hx2, hy2, sub_self] + rcases normalVector_eq_or_eq_add_pi_of_orthogonal (sub_ne_zero.mpr hxy) h1 h2 with hA | hA + · exact Real.Angle.coe_ne_coe_of_abs_sub_lt (by linarith [htIoo.2]) + (by rw [abs_lt]; constructor <;> linarith [htIoo.1, htIoo.2]) hA + · rw [← Real.Angle.coe_add] at hA + exact Real.Angle.coe_ne_coe_of_abs_sub_lt (by linarith [htIoo.2]) + (by rw [abs_lt]; constructor <;> linarith [htIoo.1, htIoo.2]) hA + +/-- The magic function `k₀` read as a function on all reals through truncation. -/ +def magicDensity (x : ℝ) : ℝ := magicFunctions.1 x.toNNReal + +theorem maximumPolygonCap_surfaceAtom_bound (n : ℕ) (hn : 2 ≤ n) + (K : RightAngleCapSpace) (hK : IsMaximumPolygonCapSteps n K) (t : ℝ) + (ht : t = 0 ∨ t ∈ (rightAngleSet n hn).directions) : + surfaceAreaMeasure K.val {(t : Real.Angle)} ≤ + ENNReal.ofReal (magicFunctions.1 (Real.toNNReal (tangentArmLengths K t).2.1) * + polygonStepSize n + 8 * polygonStepSize n ^ 2) := by + classical + obtain ⟨hn2, hdy, P, hPK, hmax⟩ := hK + subst hPK + have hpi := Real.pi_pos + have hnR : (2 : ℝ) ≤ (n : ℝ) := by exact_mod_cast hn + have hδpos : 0 < polygonStepSize n := by + have hn0 : (0 : ℝ) < n := by linarith + simp only [polygonStepSize] + positivity + have hδle : polygonStepSize n ≤ Real.pi / 4 := by + have hn0 : (0 : ℝ) < n := by linarith + rw [polygonStepSize, div_le_iff₀ hn0] + nlinarith + rcases ht with rfl | ht + · rw [rightAngle_surfaceAreaMeasure_zero n hn2 P] + exact zero_le + · have htIoo : t ∈ Set.Ioo 0 (Real.pi / 2) := (rightAngleSet n hn2).interior t ht + have hcap : supportValue (P.val.val : Set Point) ((Real.pi / 2 : ℝ) : Real.Angle) = 1 := + P.val.property.2.2.2.1 + have htdom : t ∈ angleDomain (rightAngleSet n hn2) := + Set.mem_union_left _ (Set.mem_union_left _ (Finset.mem_coe.mpr ht)) + have hatom : surfaceAreaMeasure P.val.val {(t : Real.Angle)} = + ENNReal.ofReal (polygonCapPolylineLength P ⟨t, htdom⟩) := + maximumPolygonCap_balanced P hmax ⟨t, htdom⟩ + have hlenat : polygonPolylineLengthAt P t = polygonCapPolylineLength P ⟨t, htdom⟩ := by + simp only [polygonPolylineLengthAt, htdom, ↓reduceDIte] + have hwall : (Measure.hausdorffMeasure 1 + (frontier (polygonNiche (rightAngleSet n hn2) P.val) ∩ + (rotatingHallwayParts (P.val.val : Set Point) (t : Real.Angle)).bRay)).toReal = + polygonPolylineLengthAt P t := (polygonNiche_wall_lengths P ht).2.1 + have hτnonneg : 0 ≤ polygonCapPolylineLength P ⟨t, htdom⟩ := by + rw [← hlenat, ← hwall] + exact ENNReal.toReal_nonneg + -- the three pieces + have hlegs := maximumPolygonCap_leg_lengths n hn2 P t ht + have hsubset : frontier (polygonNiche (rightAngleSet n hn2) P.val) ∩ + (rotatingHallwayParts (P.val.val : Set Point) (t : Real.Angle)).bRay ⊆ + (((rotatingHallwayParts (P.val.val : Set Point) (t : Real.Angle)).bRay ∩ + {p : Point | inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0}) ∪ + ((rotatingHallwayParts (P.val.val : Set Point) (t : Real.Angle)).bRay ∩ + (innerWallUpperHalfPlanes P.val (t - polygonStepSize n)).2)) ∪ + ((rotatingHallwayParts (P.val.val : Set Point) (t : Real.Angle)).bRay ∩ + (innerWallUpperHalfPlanes P.val (t + polygonStepSize n)).2) ∪ + ({p : Point | inner ℝ p (normalVector (t : Real.Angle)) = + supportValue (P.val.val : Set Point) (t : Real.Angle) - 1} ∩ + ((innerWallUpperHalfPlanes P.val (t - polygonStepSize n)).1 ∩ + (innerWallUpperHalfPlanes P.val (t + polygonStepSize n)).1)) := by + rintro p ⟨hpfront, hpray⟩ + have hpline : inner ℝ p (normalVector (t : Real.Angle)) = + supportValue (P.val.val : Set Point) (t : Real.Angle) - 1 := + ((mem_rotatingHallwayParts_bRay_iff _ _ p).mp hpray).1 + by_cases hzero : inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 + · exact Or.inl (Or.inl (Or.inl ⟨hpray, hzero⟩)) + · have hclos : p ∈ capFan (rightAngleSet n hn2).angle := by + have hsub : closure (polygonNiche (rightAngleSet n hn2) P.val) ⊆ + capFan (rightAngleSet n hn2).angle := + (isClosed_capFan _).closure_subset_iff.mpr (fun q hq ↦ hq.1) + exact hsub hpfront.1 + have hppos : 0 < inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) := + lt_of_le_of_ne hclos.2 (Ne.symm hzero) + have hnotN : p ∉ polygonNiche (rightAngleSet n hn2) P.val := by + intro hpN + refine hpfront.2 ?_ + have hUopen : IsOpen {q : Point | + 0 < inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle))} := + isOpen_lt continuous_const (by fun_prop) + have hVopen : IsOpen (⋃ u ∈ (rightAngleSet n hn2).directions, + innerQuadrant (P.val.val : Set Point) u) := + isOpen_biUnion (fun u _ ↦ isOpen_innerQuadrant _ u) + refine interior_maximal ?_ (hUopen.inter hVopen) ⟨hppos, hpN.2⟩ + rintro q ⟨hq1, hq2⟩ + have hq1' : (0 : ℝ) < inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) := hq1 + exact ⟨⟨hq1'.le, hq1'.le⟩, hq2⟩ + have hquad : ∀ u : ℝ, + (u = 0 ∨ u = Real.pi / 2 ∨ u ∈ (rightAngleSet n hn2).directions) → + p ∉ innerQuadrant (P.val.val : Set Point) u := by + rintro u (rfl | rfl | hu) + · intro hq + have h2 : inner ℝ p (normalVector ((0 + Real.pi / 2 : ℝ) : Real.Angle)) < + supportValue (P.val.val : Set Point) + ((0 + Real.pi / 2 : ℝ) : Real.Angle) - 1 := hq.2 + rw [show (0 + Real.pi / 2 : ℝ) = Real.pi / 2 by ring, hcap] at h2 + linarith + · intro hq + have h1 : inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) < + supportValue (P.val.val : Set Point) + ((Real.pi / 2 : ℝ) : Real.Angle) - 1 := hq.1 + rw [hcap] at h1 + linarith + · intro hq + exact hnotN ⟨hclos, Set.mem_biUnion hu hq⟩ + have hq1 : p ∉ innerQuadrant (P.val.val : Set Point) (t - polygonStepSize n) := + hquad _ ((rightAngleSet_sub_step n hn2 ht).imp id Or.inr) + have hq2 : p ∉ innerQuadrant (P.val.val : Set Point) (t + polygonStepSize n) := + hquad _ (Or.inr ((rightAngleSet_add_step n hn2 ht).imp id id)) + rcases (notMem_innerQuadrant_iff _ _ _).mp hq1 with hb1 | hd1 + · rcases (notMem_innerQuadrant_iff _ _ _).mp hq2 with hb2 | hd2 + · exact Or.inr ⟨hpline, hb1, hb2⟩ + · exact Or.inl (Or.inr ⟨hpray, hd2⟩) + · exact Or.inl (Or.inl (Or.inr ⟨hpray, hd1⟩)) + have hz := bRay_horizontal_boundary_measure_zero P.val.val t htIoo + have hslice := hausdorffMeasure_faceLine_inter_innerWalls_le P.val.val t + (polygonStepSize n) hδpos (by linarith) + have hbound : Measure.hausdorffMeasure 1 + (frontier (polygonNiche (rightAngleSet n hn2) P.val) ∩ + (rotatingHallwayParts (P.val.val : Set Point) (t : Real.Angle)).bRay) ≤ + ENNReal.ofReal (Real.tan (polygonStepSize n) * + max 0 ((tangentArmLengths P.val t).2.2 - 1 + + Real.tan (polygonStepSize n / 2))) + + ENNReal.ofReal (Real.tan (polygonStepSize n) * + max 0 (1 - (tangentArmLengths P.val t).2.1 + + Real.tan (polygonStepSize n / 2))) + + ENNReal.ofReal (max 0 (2 * Real.tan (polygonStepSize n / 2) - + (surfaceAreaMeasure P.val.val {(t : Real.Angle)}).toReal)) := by + have hAB : Measure.hausdorffMeasure 1 + (((rotatingHallwayParts (P.val.val : Set Point) (t : Real.Angle)).bRay ∩ + {p : Point | inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0}) ∪ + ((rotatingHallwayParts (P.val.val : Set Point) (t : Real.Angle)).bRay ∩ + (innerWallUpperHalfPlanes P.val (t - polygonStepSize n)).2)) ≤ + ENNReal.ofReal (Real.tan (polygonStepSize n) * + max 0 ((tangentArmLengths P.val t).2.2 - 1 + + Real.tan (polygonStepSize n / 2))) := by + refine (measure_union_le _ _).trans ?_ + rw [hz, hlegs.1, zero_add] + exact (measure_mono hsubset).trans ((measure_union_le _ _).trans + (add_le_add ((measure_union_le _ _).trans + (add_le_add hAB (le_of_eq hlegs.2))) hslice)) + have harm := (maximumPolygonCap_arm_bound n P.val ⟨hn2, hdy, P, rfl, hmax⟩).2 t + ⟨htIoo.1.le, htIoo.2.le⟩ + have hgp0 : 0 ≤ (tangentArmLengths P.val t).2.1 := harm.2.2.1.1 + have hgp5 : (tangentArmLengths P.val t).2.1 ≤ 5 := harm.2.2.1.2 + have hgm0 : 0 ≤ (tangentArmLengths P.val t).2.2 := harm.2.2.2.1 + have harm1 : (tangentArmLengths P.val t).2.1 = + inner ℝ ((rotatingHallwayParts (P.val.val : Set Point) (t : Real.Angle)).outerCorner - + (edgeVertices P.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle)).1) + (normalVector (t : Real.Angle)) := rfl + have harm2 : (tangentArmLengths P.val t).2.2 = + inner ℝ ((rotatingHallwayParts (P.val.val : Set Point) (t : Real.Angle)).outerCorner - + (edgeVertices P.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle)).2) + (normalVector (t : Real.Angle)) := rfl + have hgle : (tangentArmLengths P.val t).2.2 ≤ (tangentArmLengths P.val t).2.1 := by + have hC : (edgeVertices P.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle)).1 = + (edgeVertices P.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle)).2 - + (surfaceAreaMeasure P.val.val {((t + Real.pi / 2 : ℝ) : Real.Angle)}).toReal • + normalVector (t : Real.Angle) := by + rw [(surfaceAreaMeasure_atom_length P.val.val + ((t + Real.pi / 2 : ℝ) : Real.Angle)).2.2, tangentVector_add_pi_div_two] + module + rw [harm1, harm2, hC, show (rotatingHallwayParts (P.val.val : Set Point) + (t : Real.Angle)).outerCorner - + ((edgeVertices P.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle)).2 - + (surfaceAreaMeasure P.val.val {((t + Real.pi / 2 : ℝ) : Real.Angle)}).toReal • + normalVector (t : Real.Angle)) = + ((rotatingHallwayParts (P.val.val : Set Point) (t : Real.Angle)).outerCorner - + (edgeVertices P.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle)).2) + + (surfaceAreaMeasure P.val.val {((t + Real.pi / 2 : ℝ) : Real.Angle)}).toReal • + normalVector (t : Real.Angle) from by module, + inner_add_left, real_inner_smul_left, inner_normalVector_self, mul_one] + have := ENNReal.toReal_nonneg (a := surfaceAreaMeasure P.val.val + {((t + Real.pi / 2 : ℝ) : Real.Angle)}) + linarith + have hstoReal : (surfaceAreaMeasure P.val.val {(t : Real.Angle)}).toReal = + polygonCapPolylineLength P ⟨t, htdom⟩ := by + rw [hatom, ENNReal.toReal_ofReal hτnonneg] + have hXeq : (surfaceAreaMeasure P.val.val {(t : Real.Angle)}).toReal = + (Measure.hausdorffMeasure 1 + (frontier (polygonNiche (rightAngleSet n hn2) P.val) ∩ + (rotatingHallwayParts (P.val.val : Set Point) (t : Real.Angle)).bRay)).toReal := by + rw [hstoReal, ← hlenat] + exact hwall.symm + have hTpos : 0 < Real.tan (polygonStepSize n) := + Real.tan_pos_of_pos_of_lt_pi_div_two hδpos (by linarith) + have hcpos : 0 < Real.tan (polygonStepSize n / 2) := + Real.tan_pos_of_pos_of_lt_pi_div_two (by linarith) (by linarith) + rw [← ENNReal.ofReal_add (by positivity) (by positivity), + ← ENNReal.ofReal_add (by positivity) (le_max_left _ _)] at hbound + have hsum : (surfaceAreaMeasure P.val.val {(t : Real.Angle)}).toReal ≤ + Real.tan (polygonStepSize n) * + max 0 ((tangentArmLengths P.val t).2.2 - 1 + Real.tan (polygonStepSize n / 2)) + + Real.tan (polygonStepSize n) * + max 0 (1 - (tangentArmLengths P.val t).2.1 + Real.tan (polygonStepSize n / 2)) + + max 0 (2 * Real.tan (polygonStepSize n / 2) - + (surfaceAreaMeasure P.val.val {(t : Real.Angle)}).toReal) := by + conv_lhs => rw [hXeq] + refine (ENNReal.toReal_mono ENNReal.ofReal_ne_top hbound).trans_eq ?_ + exact ENNReal.toReal_ofReal (by positivity) + have hmagic : magicFunctions.1 (Real.toNNReal (tangentArmLengths P.val t).2.1) = + max |(tangentArmLengths P.val t).2.1 - 1| + ((|(tangentArmLengths P.val t).2.1 - 1| + 1) / 2) := by + simp only [magicFunctions, Real.coe_toNNReal _ hgp0] + rw [hatom] + refine ENNReal.ofReal_le_ofReal ?_ + rw [← hstoReal, hmagic] + refine magicBound_of_le hδpos ?_ ?_ hTpos ?_ hcpos hgp5 hgm0 hgle hsum + · linarith [Real.pi_lt_d2] + · exact Real.tan_le_self_add_cube hδpos.le (by linarith [Real.pi_le_four]) + · exact Real.tan_le_self_add_cube (by linarith) (by linarith [Real.pi_le_four]) + +section Domination + +open Filter Set +open scoped Topology + +/-! ### The magic density -/ + +private theorem magicDensity_eq (x : ℝ) : + magicDensity x = max |max x 0 - 1| ((|max x 0 - 1| + 1) / 2) := by + simp [magicDensity, magicFunctions] + +/-- The magic function `k₀` is nonnegative. -/ +theorem magicDensity_nonneg (x : ℝ) : 0 ≤ magicDensity x := by + rw [magicDensity_eq] + exact (abs_nonneg _).trans (le_max_left _ _) + +private theorem continuous_magicDensity : Continuous magicDensity := by + unfold magicDensity magicFunctions + fun_prop + +/-- The magic function `k₀` is `1`-Lipschitz. -/ +private theorem abs_magicDensity_sub_le (x y : ℝ) : + |magicDensity x - magicDensity y| ≤ |x - y| := by + rw [magicDensity_eq, magicDensity_eq] + have hxy : |max x 0 - max y 0| ≤ |x - y| := by + calc + |max x 0 - max y 0| ≤ max |x - y| |(0 : ℝ) - 0| := + abs_max_sub_max_le_max x 0 y 0 + _ = |x - y| := by simp + have habs : abs (|max x 0 - 1| - |max y 0 - 1|) ≤ |x - y| := by + calc + abs (|max x 0 - 1| - |max y 0 - 1|) ≤ + |(max x 0 - 1) - (max y 0 - 1)| := abs_abs_sub_abs_le_abs_sub _ _ + _ = |max x 0 - max y 0| := by ring_nf + _ ≤ |x - y| := hxy + have hhalf : + |((|max x 0 - 1| + 1) / 2) - ((|max y 0 - 1| + 1) / 2)| ≤ |x - y| := by + rw [show ((|max x 0 - 1| + 1) / 2) - ((|max y 0 - 1| + 1) / 2) = + (|max x 0 - 1| - |max y 0 - 1|) / 2 by ring, abs_div] + norm_num + linarith [abs_nonneg (|max x 0 - 1| - |max y 0 - 1|)] + calc + |max |max x 0 - 1| ((|max x 0 - 1| + 1) / 2) - + max |max y 0 - 1| ((|max y 0 - 1| + 1) / 2)| ≤ + max (abs (|max x 0 - 1| - |max y 0 - 1|)) + |((|max x 0 - 1| + 1) / 2) - ((|max y 0 - 1| + 1) / 2)| := + abs_max_sub_max_le_max _ _ _ _ + _ ≤ |x - y| := max_le habs hhalf + +/-- The magic function `k₀` grows at most linearly: `k₀ x ≤ |x| + 1`. -/ +theorem magicDensity_le_abs_add_one (x : ℝ) : magicDensity x ≤ |x| + 1 := by + have hzero : magicDensity 0 = 1 := by norm_num [magicDensity, magicFunctions] + have h := abs_magicDensity_sub_le x 0 + rw [hzero, sub_zero] at h + linarith [le_abs_self (magicDensity x - 1)] + +/-! ### Integrability of the magic density -/ + +/-- The magic density of the positive tangent arm length is almost everywhere strongly +measurable on the rotation interval. -/ +theorem aestronglyMeasurable_magicDensity_tangentArm_fst (C : RightAngleCapSpace) : + AEStronglyMeasurable (fun t ↦ magicDensity (tangentArmLengths C t).2.1) + (volume.restrict (Ioc 0 (Real.pi / 2))) := + continuous_magicDensity.comp_aestronglyMeasurable (aestronglyMeasurable_tangentArm_fst C) + +/-- The magic density of the positive tangent arm length is integrable on the rotation +interval. -/ +private theorem intervalIntegrable_magicDensity_tangentArm_fst (C : RightAngleCapSpace) : + IntervalIntegrable (fun t ↦ magicDensity (tangentArmLengths C t).2.1) + volume 0 (Real.pi / 2) := by + have hdensity' : AEStronglyMeasurable + (fun t ↦ magicDensity (tangentArmLengths C t).2.1) + (volume.restrict (uIoc 0 (Real.pi / 2))) := by + simpa only [uIoc_of_le (by positivity : (0 : ℝ) ≤ Real.pi / 2)] using + aestronglyMeasurable_magicDensity_tangentArm_fst C + have harmInt := intervalIntegrable_tangentArm_fst C + apply (harmInt.norm.add (intervalIntegrable_const (c := (1 : ℝ)))).mono_fun hdensity' + filter_upwards [] with t + change |magicDensity (tangentArmLengths C t).2.1| ≤ + abs (|(tangentArmLengths C t).2.1| + 1) + rw [abs_of_nonneg (magicDensity_nonneg _), + abs_of_nonneg (add_nonneg (abs_nonneg (tangentArmLengths C t).2.1) zero_le_one)] + exact magicDensity_le_abs_add_one _ + +private theorem integrableOn_magicDensity_tangentArm_fst (C : RightAngleCapSpace) + {S : Set ℝ} (hS : S ⊆ Icc (0 : ℝ) (Real.pi / 2)) : + IntegrableOn (fun t ↦ magicDensity (tangentArmLengths C t).2.1) S volume := by + have hIoc := (intervalIntegrable_iff_integrableOn_Ioc_of_le + (by positivity : (0 : ℝ) ≤ Real.pi / 2)).1 + (intervalIntegrable_magicDensity_tangentArm_fst C) + have hIcc : IntegrableOn (fun t ↦ magicDensity (tangentArmLengths C t).2.1) + (Icc (0 : ℝ) (Real.pi / 2)) volume := by + rwa [IntegrableOn, Measure.restrict_congr_set Ioc_ae_eq_Icc] at hIoc + exact hIcc.mono_set hS + +/-! ### The density measure of a cap -/ + +/-- The measure `k₀(g⁺_K(t)) dt` on the rotation interval. -/ +private def armDensityMeasure (C : RightAngleCapSpace) : Measure ℝ := + (volume.restrict (Ioc 0 (Real.pi / 2))).withDensity + (fun t ↦ ENNReal.ofReal (magicDensity (tangentArmLengths C t).2.1)) + +private theorem armDensityMeasure_apply (C : RightAngleCapSpace) {S : Set ℝ} + (hS : MeasurableSet S) : + armDensityMeasure C S = ∫⁻ t in S ∩ Ioc 0 (Real.pi / 2), + ENNReal.ofReal (magicDensity (tangentArmLengths C t).2.1) := by + rw [armDensityMeasure, withDensity_apply _ hS, Measure.restrict_restrict hS] + +private theorem lintegral_magicDensity_eq_ofReal (C : RightAngleCapSpace) {S : Set ℝ} + (hS : S ⊆ Icc (0 : ℝ) (Real.pi / 2)) : + ∫⁻ t in S, ENNReal.ofReal (magicDensity (tangentArmLengths C t).2.1) = + ENNReal.ofReal (∫ t in S, magicDensity (tangentArmLengths C t).2.1) := by + rw [← ofReal_integral_eq_lintegral_ofReal + (integrableOn_magicDensity_tangentArm_fst C hS) + (Filter.Eventually.of_forall fun t ↦ magicDensity_nonneg _)] + +private theorem armDensityMeasure_ne_top (C : RightAngleCapSpace) : + armDensityMeasure C Set.univ ≠ ⊤ := by + rw [armDensityMeasure_apply C MeasurableSet.univ, Set.univ_inter, + lintegral_magicDensity_eq_ofReal C Ioc_subset_Icc_self] + exact ENNReal.ofReal_ne_top + +private theorem armDensityMeasure_eq_ofReal_integral (C : RightAngleCapSpace) {S : Set ℝ} + (hSm : MeasurableSet S) (hS : S ⊆ Ico (0 : ℝ) (Real.pi / 2)) : + armDensityMeasure C S = + ENNReal.ofReal (∫ t in S, magicDensity (tangentArmLengths C t).2.1) := by + have hnull : S ∩ Ioc 0 (Real.pi / 2) =ᵐ[volume] S := by + have hsub : S \ (S ∩ Ioc 0 (Real.pi / 2)) ⊆ {0} := by + intro x hx + have hxS := hx.1 + have hx2 : x ∉ Ioc 0 (Real.pi / 2) := fun h ↦ hx.2 ⟨hxS, h⟩ + have hxIco := hS hxS + have : x = 0 := by + by_contra hne + exact hx2 ⟨lt_of_le_of_ne hxIco.1 (Ne.symm hne), hxIco.2.le⟩ + simp [this] + refine (Filter.EventuallyEq.symm ?_) + refine (ae_eq_set.mpr ⟨?_, ?_⟩) + · exact measure_mono_null hsub (measure_singleton 0) + · simp [Set.sdiff_eq_empty.2 Set.inter_subset_left] + rw [armDensityMeasure_apply C hSm, setLIntegral_congr hnull, + lintegral_magicDensity_eq_ofReal C (hS.trans Ico_subset_Icc_self)] + +/-- Comparing two cap densities costs at most the `L¹` distance of their arm lengths. -/ +private theorem armDensityMeasure_le_add_l1 (C D : RightAngleCapSpace) {S : Set ℝ} + (hS : MeasurableSet S) : + armDensityMeasure C S ≤ armDensityMeasure D S + + ENNReal.ofReal (∫ t in (0 : ℝ)..(Real.pi / 2), + |magicDensity (tangentArmLengths C t).2.1 - + magicDensity (tangentArmLengths D t).2.1|) := by + have hT : (0 : ℝ) ≤ Real.pi / 2 := by positivity + have hdiff : IntervalIntegrable (fun t ↦ |magicDensity (tangentArmLengths C t).2.1 - + magicDensity (tangentArmLengths D t).2.1|) volume 0 (Real.pi / 2) := by + simpa only [Real.norm_eq_abs] using + ((intervalIntegrable_magicDensity_tangentArm_fst C).sub + (intervalIntegrable_magicDensity_tangentArm_fst D)).norm + have hdiffIoc := (intervalIntegrable_iff_integrableOn_Ioc_of_le hT).1 hdiff + have hmeasD : AEMeasurable + (fun t ↦ ENNReal.ofReal (magicDensity (tangentArmLengths D t).2.1)) + (volume.restrict (S ∩ Ioc 0 (Real.pi / 2))) := by + refine (ENNReal.measurable_ofReal.comp_aemeasurable ?_) + exact ((continuous_magicDensity.comp_aestronglyMeasurable + (aestronglyMeasurable_tangentArm_fst D)).aemeasurable).mono_measure + (Measure.restrict_mono Set.inter_subset_right le_rfl) + rw [armDensityMeasure_apply C hS, armDensityMeasure_apply D hS] + calc + ∫⁻ t in S ∩ Ioc 0 (Real.pi / 2), + ENNReal.ofReal (magicDensity (tangentArmLengths C t).2.1) ≤ + ∫⁻ t in S ∩ Ioc 0 (Real.pi / 2), + (ENNReal.ofReal (magicDensity (tangentArmLengths D t).2.1) + + ENNReal.ofReal |magicDensity (tangentArmLengths C t).2.1 - + magicDensity (tangentArmLengths D t).2.1|) := by + refine lintegral_mono fun t ↦ ?_ + rw [← ENNReal.ofReal_add (magicDensity_nonneg _) (abs_nonneg _)] + refine ENNReal.ofReal_le_ofReal ?_ + linarith [le_abs_self (magicDensity (tangentArmLengths C t).2.1 - + magicDensity (tangentArmLengths D t).2.1)] + _ = (∫⁻ t in S ∩ Ioc 0 (Real.pi / 2), + ENNReal.ofReal (magicDensity (tangentArmLengths D t).2.1)) + + ∫⁻ t in S ∩ Ioc 0 (Real.pi / 2), + ENNReal.ofReal |magicDensity (tangentArmLengths C t).2.1 - + magicDensity (tangentArmLengths D t).2.1| := lintegral_add_left' hmeasD _ + _ ≤ (∫⁻ t in S ∩ Ioc 0 (Real.pi / 2), + ENNReal.ofReal (magicDensity (tangentArmLengths D t).2.1)) + + ∫⁻ t in Ioc 0 (Real.pi / 2), + ENNReal.ofReal |magicDensity (tangentArmLengths C t).2.1 - + magicDensity (tangentArmLengths D t).2.1| := by + gcongr + exact Set.inter_subset_right + _ = _ := by + rw [← ofReal_integral_eq_lintegral_ofReal hdiffIoc + (Filter.Eventually.of_forall fun t ↦ abs_nonneg _), + intervalIntegral.integral_of_le hT] + +/-! ### Surface measure support of a right-angle polygon cap -/ + +/-- Angular images of Borel subsets of the half-open rotation interval are Borel. -/ +private theorem measurableSet_coe_image_of_subset_Ico {E : Set ℝ} (hE : MeasurableSet E) + (hET : E ⊆ Ico (0 : ℝ) (Real.pi / 2)) : + MeasurableSet ((fun t : ℝ ↦ (t : Real.Angle)) '' E) := + Real.Angle.measurableSet_image_of_subset_Ioc (a := -Real.pi) (b := Real.pi) + (by linarith [Real.pi_pos]) hE fun t ht ↦ + ⟨by linarith [Real.pi_pos, (hET ht).1], + (hET ht).2.le.trans (half_le_self Real.pi_pos.le)⟩ + +private theorem rightAngle_properEdgeNormal_real (n : ℕ) (hn : 2 ≤ n) + (K : PolygonCapSpace (rightAngleSet n hn)) {s : ℝ} (hs : s ∈ Ioc (-Real.pi) Real.pi) + (hedge : (edgeVertices K.val.val (s : Real.Angle)).1 ≠ + (edgeVertices K.val.val (s : Real.Angle)).2) : + s ∈ angleDomain (rightAngleSet n hn) ∨ s = -(Real.pi / 2) := by + have hpi := Real.pi_pos + have h := K.properEdgeNormal_mem_allowed (s : Real.Angle) hedge + rw [rightAngle_polygon_normals_eq n hn] at h + obtain ⟨r, hr, hrs⟩ := h + rcases hr with hr | rfl + · left + have hrb := angleDomain_subset_Ioo (rightAngleSet n hn) hr + have hsr : s = r := Real.Angle.injOn_coe_Ioc (a := -Real.pi) (b := Real.pi) + (by linarith) hs ⟨by linarith [hrb.1], hrb.2.le⟩ hrs.symm + exact hsr ▸ hr + · right + have hrs' : ((3 * Real.pi / 2 : ℝ) : Real.Angle) = ((s : ℝ) : Real.Angle) := hrs + refine Real.Angle.injOn_coe_Ioc (a := -Real.pi) (b := Real.pi) (by linarith) hs + ⟨by linarith, by linarith⟩ ?_ + change ((s : ℝ) : Real.Angle) = ((-(Real.pi / 2) : ℝ) : Real.Angle) + rw [← hrs', Real.Angle.angle_eq_iff_two_pi_dvd_sub] + exact ⟨1, by push_cast; ring⟩ + +private theorem rightAngle_properEdgeNormal_mem_directions (n : ℕ) (hn : 2 ≤ n) + (K : PolygonCapSpace (rightAngleSet n hn)) {s : ℝ} + (hs : s ∈ Ico (0 : ℝ) (Real.pi / 2)) + (hedge : (edgeVertices K.val.val (s : Real.Angle)).1 ≠ + (edgeVertices K.val.val (s : Real.Angle)).2) : + s ∈ (rightAngleSet n hn).directions := by + have hpi := Real.pi_pos + have hsIoc : s ∈ Ioc (-Real.pi) Real.pi := + ⟨by linarith [hs.1], by linarith [hs.2]⟩ + rcases rightAngle_properEdgeNormal_real n hn K hsIoc hedge with hdom | hneg + · rcases hdom with (hd | ⟨r, hr, hrs⟩) | hd + · exact hd + · exact absurd hs.2 (by + have hr0 := ((rightAngleSet n hn).interior r hr).1 + rw [← hrs] + push Not + linarith) + · exfalso + have hangle : (rightAngleSet n hn).angle = Real.pi / 2 := rfl + simp only [hangle, Set.mem_insert_iff, Set.mem_singleton_iff] at hd + rcases hd with hd | hd <;> (rw [hd] at hs; linarith [hs.2]) + · exfalso + rw [hneg] at hs + linarith [hs.1] + +private theorem rightAngle_edgeVertices_eq_of_mem_Ioo_neg (n : ℕ) (hn : 2 ≤ n) + (K : PolygonCapSpace (rightAngleSet n hn)) {s : ℝ} + (hs : s ∈ Ioo (-(Real.pi / 2)) 0) : + (edgeVertices K.val.val (s : Real.Angle)).1 = + (edgeVertices K.val.val (s : Real.Angle)).2 := by + have hpi := Real.pi_pos + by_contra hne + have hsIoc : s ∈ Ioc (-Real.pi) Real.pi := + ⟨by linarith [hs.1], by linarith [hs.2]⟩ + rcases rightAngle_properEdgeNormal_real n hn K hsIoc hne with hdom | hneg + · have hrb := angleDomain_subset_Ioo (rightAngleSet n hn) hdom + linarith [hrb.1, hs.2] + · rw [hneg] at hs + linarith [hs.1] + +private theorem surfaceAreaMeasure_rightAngle_compl_grid_eq_zero (n : ℕ) (hn : 2 ≤ n) + (K : PolygonCapSpace (rightAngleSet n hn)) : + surfaceAreaMeasure K.val.val + (((fun s : ℝ ↦ (s : Real.Angle)) '' Ico (0 : ℝ) (Real.pi / 2)) \ + ((fun s : ℝ ↦ (s : Real.Angle)) '' + ({0} ∪ ((rightAngleSet n hn).directions : Set ℝ)))) = 0 := by + apply measure_mono_null _ K.surfaceAreaMeasure_compl_properEdgeNormals_eq_zero + rintro u ⟨⟨s, hs, rfl⟩, hnot⟩ + by_contra hne + exact hnot ⟨s, Or.inr (rightAngle_properEdgeNormal_mem_directions n hn K hs hne), rfl⟩ + +private theorem surfaceAreaMeasure_rightAngle_Ioo_neg_eq_zero (n : ℕ) (hn : 2 ≤ n) + (K : PolygonCapSpace (rightAngleSet n hn)) : + surfaceAreaMeasure K.val.val + ((fun s : ℝ ↦ (s : Real.Angle)) '' Ioo (-(Real.pi / 2)) 0) = 0 := by + apply measure_mono_null _ K.surfaceAreaMeasure_compl_properEdgeNormals_eq_zero + rintro u ⟨s, hs, rfl⟩ + exact rightAngle_edgeVertices_eq_of_mem_Ioo_neg n hn K hs + +/-! ### Discrete cell bounds -/ + +private theorem maximumPolygonCap_arm_cell_abs_le (n : ℕ) (hn : 2 ≤ n) + (K : RightAngleCapSpace) (hK : IsMaximumPolygonCapSteps n K) (t u : ℝ) + (ht : t = 0 ∨ t ∈ (rightAngleSet n hn).directions) + (hu : u ∈ Ioo t (t + polygonStepSize n)) : + |(tangentArmLengths K u).2.1 - (tangentArmLengths K t).2.1| ≤ + 5 * polygonStepSize n := by + obtain ⟨hcell, hdrop⟩ := maximumPolygonCap_arm_cell n hn K hK t ht + have hu' := hcell u hu + have hlower : + (tangentArmLengths K t).2.1 - 5 * polygonStepSize n ≤ + (tangentArmLengths K u).2.1 := by + rw [hu'.2.1] + linarith [hu'.2.2] + rw [abs_le] + constructor <;> linarith [hu'.1] + +private theorem magicDensity_mul_le_integral_add_of_cell_bound + (f : ℝ → ℝ) (t δ c : ℝ) (hδ : 0 ≤ δ) + (hint : IntervalIntegrable (fun u ↦ magicDensity (f u)) volume t (t + δ)) + (hvar : ∀ᵐ u ∂volume.restrict (Icc t (t + δ)), |f u - f t| ≤ c) : + magicDensity (f t) * δ ≤ + (∫ u in t..(t + δ), magicDensity (f u)) + c * δ := by + have hp : ∀ᵐ u ∂volume.restrict (Icc t (t + δ)), + magicDensity (f t) ≤ magicDensity (f u) + c := by + filter_upwards [hvar] with u hu + have hle : magicDensity (f t) - magicDensity (f u) ≤ c := by + calc + magicDensity (f t) - magicDensity (f u) ≤ + |magicDensity (f t) - magicDensity (f u)| := le_abs_self _ + _ ≤ |f t - f u| := abs_magicDensity_sub_le _ _ + _ = |f u - f t| := abs_sub_comm _ _ + _ ≤ c := hu + linarith + have hc : IntervalIntegrable (fun _ : ℝ ↦ c) volume t (t + δ) := + intervalIntegrable_const + have hi := intervalIntegral.integral_mono_ae_restrict + (show t ≤ t + δ by linarith) + (intervalIntegrable_const : + IntervalIntegrable (fun _ : ℝ ↦ magicDensity (f t)) volume t (t + δ)) + (hint.add hc) hp + rw [intervalIntegral.integral_add hint hc, intervalIntegral.integral_const, + intervalIntegral.integral_const] at hi + simpa only [add_sub_cancel_left, smul_eq_mul, mul_comm] using hi + +private theorem maximumPolygonCap_magicDensity_cell_bound + (n : ℕ) (hn : 2 ≤ n) (K : RightAngleCapSpace) + (hK : IsMaximumPolygonCapSteps n K) (t : ℝ) + (ht : t = 0 ∨ t ∈ (rightAngleSet n hn).directions) + (hint : IntervalIntegrable + (fun u ↦ magicDensity (tangentArmLengths K u).2.1) + volume t (t + polygonStepSize n)) : + magicDensity (tangentArmLengths K t).2.1 * polygonStepSize n ≤ + (∫ u in t..(t + polygonStepSize n), + magicDensity (tangentArmLengths K u).2.1) + + 5 * polygonStepSize n ^ 2 := by + have haeIoo : ∀ᵐ u ∂volume.restrict + (Icc t (t + polygonStepSize n)), u ∈ Ioo t (t + polygonStepSize n) := by + rw [ae_iff] + change (volume.restrict (Icc t (t + polygonStepSize n))) + (Ioo t (t + polygonStepSize n))ᶜ = 0 + rw [Measure.restrict_apply measurableSet_Ioo.compl] + have hsub : (Ioo t (t + polygonStepSize n))ᶜ ∩ + Icc t (t + polygonStepSize n) ⊆ {t, t + polygonStepSize n} := by + intro x hx + simp only [mem_inter_iff, mem_Icc, mem_compl_iff, mem_Ioo, not_and_or, + not_lt, Set.mem_insert_iff, Set.mem_singleton_iff] at hx ⊢ + rcases hx with ⟨hxt | hux, htx, hxu⟩ + · exact Or.inl (le_antisymm hxt htx) + · exact Or.inr (le_antisymm hxu hux) + exact measure_mono_null hsub + ((Set.finite_singleton (t + polygonStepSize n)).insert t |>.measure_zero volume) + have hvar : ∀ᵐ u ∂volume.restrict (Icc t (t + polygonStepSize n)), + |(tangentArmLengths K u).2.1 - (tangentArmLengths K t).2.1| ≤ + 5 * polygonStepSize n := by + filter_upwards [haeIoo] with u hu + exact maximumPolygonCap_arm_cell_abs_le n hn K hK t u ht hu + have hδ : 0 ≤ polygonStepSize n := by + simp only [polygonStepSize] + positivity + have h := magicDensity_mul_le_integral_add_of_cell_bound + (fun u ↦ (tangentArmLengths K u).2.1) t (polygonStepSize n) + (5 * polygonStepSize n) hδ hint hvar + nlinarith [sq_nonneg (polygonStepSize n)] + +private theorem maximumPolygonCap_surfaceAtom_le_lintegral_cell + (n : ℕ) (hn : 2 ≤ n) (K : RightAngleCapSpace) + (hK : IsMaximumPolygonCapSteps n K) (t : ℝ) + (ht : t = 0 ∨ t ∈ (rightAngleSet n hn).directions) + (hmem : Icc t (t + polygonStepSize n) ⊆ Icc (0 : ℝ) (Real.pi / 2)) : + surfaceAreaMeasure K.val {(t : Real.Angle)} ≤ + (∫⁻ u in Ioc t (t + polygonStepSize n), + ENNReal.ofReal (magicDensity (tangentArmLengths K u).2.1)) + + ENNReal.ofReal (13 * polygonStepSize n ^ 2) := by + have hnR : (0 : ℝ) < n := by + have : 0 < n := lt_of_lt_of_le zero_lt_two hn + exact_mod_cast this + have hδ : 0 < polygonStepSize n := + div_pos (by linarith [Real.pi_pos]) hnR + have hle : t ≤ t + polygonStepSize n := by linarith + have hint : IntervalIntegrable + (fun u ↦ magicDensity (tangentArmLengths K u).2.1) volume t (t + polygonStepSize n) := by + apply (intervalIntegrable_magicDensity_tangentArm_fst K).mono_set + rw [uIcc_of_le hle, uIcc_of_le (by positivity : (0 : ℝ) ≤ Real.pi / 2)] + exact hmem + have hcell := maximumPolygonCap_magicDensity_cell_bound n hn K hK t ht hint + have hnonneg : 0 ≤ ∫ u in t..(t + polygonStepSize n), + magicDensity (tangentArmLengths K u).2.1 := + intervalIntegral.integral_nonneg hle fun u _ ↦ magicDensity_nonneg _ + have hlint : ENNReal.ofReal (∫ u in t..(t + polygonStepSize n), + magicDensity (tangentArmLengths K u).2.1) = + ∫⁻ u in Ioc t (t + polygonStepSize n), + ENNReal.ofReal (magicDensity (tangentArmLengths K u).2.1) := by + rw [intervalIntegral.integral_of_le hle] + exact ofReal_integral_eq_lintegral_ofReal + ((intervalIntegrable_iff_integrableOn_Ioc_of_le hle).1 hint) + (Filter.Eventually.of_forall fun u ↦ magicDensity_nonneg _) + calc + surfaceAreaMeasure K.val {(t : Real.Angle)} ≤ + ENNReal.ofReal (magicFunctions.1 (Real.toNNReal (tangentArmLengths K t).2.1) * + polygonStepSize n + 8 * polygonStepSize n ^ 2) := + maximumPolygonCap_surfaceAtom_bound n hn K hK t ht + _ ≤ ENNReal.ofReal ((∫ u in t..(t + polygonStepSize n), + magicDensity (tangentArmLengths K u).2.1) + 13 * polygonStepSize n ^ 2) := by + refine ENNReal.ofReal_le_ofReal ?_ + change magicDensity (tangentArmLengths K t).2.1 * polygonStepSize n + + 8 * polygonStepSize n ^ 2 ≤ _ + linarith + _ = _ := by rw [ENNReal.ofReal_add hnonneg (by positivity), hlint] + +/-! ### The per-level grid bound -/ + +private theorem maximumPolygonCap_surface_image_le_thickening + (n : ℕ) (hn : 2 ≤ n) (K : RightAngleCapSpace) (hK : IsMaximumPolygonCapSteps n K) + (S : Set ℝ) (hSm : MeasurableSet S) (hST : S ⊆ Ico (0 : ℝ) (Real.pi / 2)) + {ε : ℝ} (hε : polygonStepSize n < ε) : + surfaceAreaMeasure K.val ((fun t : ℝ ↦ (t : Real.Angle)) '' S) ≤ + armDensityMeasure K (Metric.thickening ε S) + + ENNReal.ofReal (13 * (Real.pi / 2) * polygonStepSize n) := by + classical + have hpi := Real.pi_pos + have hK0 := hK + obtain ⟨hn', hdy, P, hPK, hmax⟩ := hK + have hnR : (0 : ℝ) < n := by + have : 0 < n := lt_of_lt_of_le zero_lt_two hn + exact_mod_cast this + have hδpos : 0 < polygonStepSize n := div_pos (by linarith) hnR + have hnδ : (n : ℝ) * polygonStepSize n = Real.pi / 2 := by + rw [polygonStepSize] + field_simp + have hinj : Set.InjOn (fun t : ℝ ↦ (t : Real.Angle)) (Ico (0 : ℝ) (Real.pi / 2)) := by + apply (Real.Angle.injOn_coe_Ioc (a := -Real.pi) (b := Real.pi) (by linarith)).mono + intro t ht + exact ⟨by linarith [ht.1], by linarith [ht.2]⟩ + have hgridmem : ∀ i : ℕ, i < n → + (i : ℝ) * polygonStepSize n ∈ Ico (0 : ℝ) (Real.pi / 2) := by + intro i hi + have hin : (i : ℝ) < n := by exact_mod_cast hi + refine ⟨mul_nonneg (Nat.cast_nonneg i) hδpos.le, ?_⟩ + calc (i : ℝ) * polygonStepSize n < (n : ℝ) * polygonStepSize n := by + exact mul_lt_mul_of_pos_right hin hδpos + _ = Real.pi / 2 := hnδ + have hcellIcc : ∀ i : ℕ, i < n → + Icc ((i : ℝ) * polygonStepSize n) ((i : ℝ) * polygonStepSize n + polygonStepSize n) ⊆ + Icc (0 : ℝ) (Real.pi / 2) := by + intro i hi x hx + have hsucc : ((i : ℝ) + 1) ≤ (n : ℝ) := by exact_mod_cast Nat.succ_le_of_lt hi + refine ⟨le_trans (mul_nonneg (Nat.cast_nonneg i) hδpos.le) hx.1, hx.2.trans ?_⟩ + calc (i : ℝ) * polygonStepSize n + polygonStepSize n = + ((i : ℝ) + 1) * polygonStepSize n := by ring + _ ≤ (n : ℝ) * polygonStepSize n := mul_le_mul_of_nonneg_right hsucc hδpos.le + _ = Real.pi / 2 := hnδ + have hgriddir : ∀ i : ℕ, i < n → + (i : ℝ) * polygonStepSize n = 0 ∨ + (i : ℝ) * polygonStepSize n ∈ (rightAngleSet n hn').directions := by + intro i hi + by_cases hi0 : i = 0 + · exact Or.inl (by simp [hi0]) + · exact Or.inr ((mem_rightAngleSet_directions_iff n hn' _).2 + ⟨i, Finset.mem_Ioo.2 ⟨Nat.pos_of_ne_zero hi0, hi⟩, rfl⟩) + -- the surface measure restricted to the arc of interest + have hSimage : MeasurableSet ((fun t : ℝ ↦ (t : Real.Angle)) '' S) := + measurableSet_coe_image_of_subset_Ico hSm hST + have hμS : ((surfaceAreaMeasure K.val).restrict + ((fun t : ℝ ↦ (t : Real.Angle)) '' Ico (0 : ℝ) (Real.pi / 2))) + ((fun t : ℝ ↦ (t : Real.Angle)) '' S) = + surfaceAreaMeasure K.val ((fun t : ℝ ↦ (t : Real.Angle)) '' S) := by + rw [Measure.restrict_apply hSimage, + Set.inter_eq_left.2 (Set.image_mono hST)] + -- the atom decomposition over the grid + have hbound := measure_le_sum_of_measure_compl_image_eq_zero + ((surfaceAreaMeasure K.val).restrict + ((fun t : ℝ ↦ (t : Real.Angle)) '' Ico (0 : ℝ) (Real.pi / 2))) + (Finset.range n) + ((Finset.range n).filter (fun i : ℕ ↦ ((i : ℝ) * polygonStepSize n) ∈ S)) + (fun i : ℕ ↦ (((i : ℝ) * polygonStepSize n : ℝ) : Real.Angle)) + (fun i : ℕ ↦ (∫⁻ u in Ioc ((i : ℝ) * polygonStepSize n) + ((i : ℝ) * polygonStepSize n + polygonStepSize n), + ENNReal.ofReal (magicDensity (tangentArmLengths K u).2.1)) + + ENNReal.ofReal (13 * polygonStepSize n ^ 2)) + ?_ ?_ ?_ ((fun t : ℝ ↦ (t : Real.Angle)) '' S) hSimage ?_ + · rw [hμS] at hbound + refine hbound.trans ?_ + rw [Finset.sum_add_distrib] + have hdisj : ((Finset.range n).filter + (fun i : ℕ ↦ ((i : ℝ) * polygonStepSize n) ∈ S) : Set ℕ).PairwiseDisjoint + (fun i : ℕ ↦ Ioc ((i : ℝ) * polygonStepSize n) + ((i : ℝ) * polygonStepSize n + polygonStepSize n)) := by + intro i _ j _ hij + simp only [Function.onFun, Set.disjoint_left] + intro x hx hx' + rcases lt_or_gt_of_ne hij with h | h + · have hle : (i : ℝ) + 1 ≤ (j : ℝ) := by exact_mod_cast Nat.succ_le_of_lt h + have : (i : ℝ) * polygonStepSize n + polygonStepSize n ≤ + (j : ℝ) * polygonStepSize n := by + nlinarith [hδpos] + linarith [hx.2, hx'.1] + · have hle : (j : ℝ) + 1 ≤ (i : ℝ) := by exact_mod_cast Nat.succ_le_of_lt h + have : (j : ℝ) * polygonStepSize n + polygonStepSize n ≤ + (i : ℝ) * polygonStepSize n := by + nlinarith [hδpos] + linarith [hx.1, hx'.2] + have hsumlint : ∑ i ∈ (Finset.range n).filter + (fun i : ℕ ↦ ((i : ℝ) * polygonStepSize n) ∈ S), + (∫⁻ u in Ioc ((i : ℝ) * polygonStepSize n) + ((i : ℝ) * polygonStepSize n + polygonStepSize n), + ENNReal.ofReal (magicDensity (tangentArmLengths K u).2.1)) = + ∫⁻ u in ⋃ i ∈ (Finset.range n).filter + (fun i : ℕ ↦ ((i : ℝ) * polygonStepSize n) ∈ S), + Ioc ((i : ℝ) * polygonStepSize n) + ((i : ℝ) * polygonStepSize n + polygonStepSize n), + ENNReal.ofReal (magicDensity (tangentArmLengths K u).2.1) := + (lintegral_biUnion_finset hdisj (fun i _ ↦ measurableSet_Ioc) _).symm + have hsubset : (⋃ i ∈ (Finset.range n).filter + (fun i : ℕ ↦ ((i : ℝ) * polygonStepSize n) ∈ S), + Ioc ((i : ℝ) * polygonStepSize n) + ((i : ℝ) * polygonStepSize n + polygonStepSize n)) ⊆ + Metric.thickening ε S ∩ Ioc 0 (Real.pi / 2) := by + intro x hx + obtain ⟨i, hi, hxi⟩ := Set.mem_iUnion₂.mp hx + obtain ⟨hiR, hiS⟩ := Finset.mem_filter.1 hi + have hi' : i < n := Finset.mem_range.1 hiR + refine ⟨?_, ?_⟩ + · refine Metric.mem_thickening_iff.2 ⟨(i : ℝ) * polygonStepSize n, hiS, ?_⟩ + rw [Real.dist_eq, abs_of_nonneg (by linarith [hxi.1])] + linarith [hxi.2] + · exact ⟨lt_of_le_of_lt (hgridmem i hi').1 hxi.1, + (hcellIcc i hi' ⟨hxi.1.le, hxi.2⟩).2⟩ + have hcard : (((Finset.range n).filter + (fun i : ℕ ↦ ((i : ℝ) * polygonStepSize n) ∈ S)).card : ENNReal) ≤ + (n : ENNReal) := by + have := Finset.card_filter_le (Finset.range n) + (fun i : ℕ ↦ ((i : ℝ) * polygonStepSize n) ∈ S) + rw [Finset.card_range] at this + exact_mod_cast this + have hconst : ∑ _i ∈ (Finset.range n).filter + (fun i : ℕ ↦ ((i : ℝ) * polygonStepSize n) ∈ S), + ENNReal.ofReal (13 * polygonStepSize n ^ 2) ≤ + ENNReal.ofReal (13 * (Real.pi / 2) * polygonStepSize n) := by + rw [Finset.sum_const, nsmul_eq_mul] + calc + (((Finset.range n).filter + (fun i : ℕ ↦ ((i : ℝ) * polygonStepSize n) ∈ S)).card : ENNReal) * + ENNReal.ofReal (13 * polygonStepSize n ^ 2) ≤ + (n : ENNReal) * ENNReal.ofReal (13 * polygonStepSize n ^ 2) := by + gcongr + _ = ENNReal.ofReal (13 * (Real.pi / 2) * polygonStepSize n) := by + rw [show ((n : ENNReal)) = ENNReal.ofReal ((n : ℝ)) by + simp [ENNReal.ofReal_natCast], + ← ENNReal.ofReal_mul (Nat.cast_nonneg n)] + congr 1 + nlinarith [hnδ] + refine add_le_add ?_ hconst + rw [hsumlint, armDensityMeasure_apply K Metric.isOpen_thickening.measurableSet] + exact lintegral_mono_set hsubset + · -- injectivity of the grid map + intro i hi j hj hij + have hi' : i < n := Finset.mem_range.1 (Finset.mem_coe.1 hi) + have hj' : j < n := Finset.mem_range.1 (Finset.mem_coe.1 hj) + have heq : (i : ℝ) * polygonStepSize n = (j : ℝ) * polygonStepSize n := + hinj (hgridmem i hi') (hgridmem j hj') hij + have hij' : (i : ℝ) = (j : ℝ) := mul_right_cancel₀ hδpos.ne' heq + exact_mod_cast hij' + · -- the surface measure is carried by the grid + have himagegrid : + (fun i : ℕ ↦ (((i : ℝ) * polygonStepSize n : ℝ) : Real.Angle)) '' + (Finset.range n : Set ℕ) = + (fun s : ℝ ↦ (s : Real.Angle)) '' + ({0} ∪ ((rightAngleSet n hn').directions : Set ℝ)) := by + ext u + constructor + · rintro ⟨i, hi, rfl⟩ + have hi' : i < n := Finset.mem_range.1 (Finset.mem_coe.1 hi) + rcases hgriddir i hi' with h0 | hdir + · exact ⟨(i : ℝ) * polygonStepSize n, Or.inl h0, rfl⟩ + · exact ⟨(i : ℝ) * polygonStepSize n, Or.inr hdir, rfl⟩ + · rintro ⟨s, hs, rfl⟩ + rcases hs with hs | hs + · refine ⟨0, Finset.mem_coe.2 (Finset.mem_range.2 (by omega)), ?_⟩ + simp only [Set.mem_singleton_iff] at hs + simp [hs] + · obtain ⟨i, hi, rfl⟩ := (mem_rightAngleSet_directions_iff n hn' s).1 hs + exact ⟨i, Finset.mem_coe.2 (Finset.mem_range.2 (Finset.mem_Ioo.1 hi).2), rfl⟩ + rw [himagegrid, Measure.restrict_apply + (((Set.finite_singleton (0 : ℝ)).union + (rightAngleSet n hn').directions.finite_toSet).image + (fun s : ℝ ↦ (s : Real.Angle))).measurableSet.compl, + Set.inter_comm] + have hsupp := surfaceAreaMeasure_rightAngle_compl_grid_eq_zero n hn' P + rw [hPK] at hsupp + exact hsupp + · -- the atom bound at each grid point + intro i hi + have hi' : i < n := Finset.mem_range.1 hi + refine le_trans (Measure.restrict_apply_le _ _) ?_ + exact maximumPolygonCap_surfaceAtom_le_lintegral_cell n hn' K hK0 + ((i : ℝ) * polygonStepSize n) (hgriddir i hi') (hcellIcc i hi') + · -- only grid points inside `S` contribute + intro i hi hmem + have hi' : i < n := Finset.mem_range.1 hi + obtain ⟨s, hsS, hseq⟩ := hmem + have hs : s = (i : ℝ) * polygonStepSize n := + hinj (hST hsS) (hgridmem i hi') hseq + exact Finset.mem_filter.2 ⟨hi, hs ▸ hsS⟩ + +/-! ### Passing to the limit -/ + +private theorem tendsto_integral_abs_magicDensity_sub_of_dominated + (f g : ℕ → ℝ → ℝ) (hfi : ∀ i, IntervalIntegrable (f i) volume 0 (Real.pi / 2)) + (hgi : ∀ i, IntervalIntegrable (g i) volume 0 (Real.pi / 2)) + (hlim : Tendsto (fun i ↦ ∫ t in (0 : ℝ)..(Real.pi / 2), |f i t - g i t|) + atTop (𝓝 0)) : + Tendsto (fun i ↦ ∫ t in (0 : ℝ)..(Real.pi / 2), + |magicDensity (f i t) - magicDensity (g i t)|) atTop (𝓝 0) := by + have hsource (i : ℕ) : + IntervalIntegrable (fun t ↦ |f i t - g i t|) volume 0 (Real.pi / 2) := + ((hfi i).sub (hgi i)).norm + have htarget (i : ℕ) : IntervalIntegrable + (fun t ↦ |magicDensity (f i t) - magicDensity (g i t)|) + volume 0 (Real.pi / 2) := by + apply (hsource i).mono_fun + · rw [uIoc_of_le (by positivity : (0 : ℝ) ≤ Real.pi / 2)] + convert ((continuous_magicDensity.comp_aestronglyMeasurable + (hfi i).aestronglyMeasurable).sub + (continuous_magicDensity.comp_aestronglyMeasurable + (hgi i).aestronglyMeasurable)).norm using 1 + · filter_upwards [] with t + simpa only [Real.norm_eq_abs, abs_abs] using abs_magicDensity_sub_le (f i t) (g i t) + apply squeeze_zero + · intro i + exact intervalIntegral.integral_nonneg (by positivity) (fun _ _ ↦ abs_nonneg _) + · intro i + apply intervalIntegral.integral_mono_on (by positivity) (htarget i) (hsource i) + intro t _ + exact abs_magicDensity_sub_le (f i t) (g i t) + · exact hlim + +private theorem IsBalancedMaximumCap.approximatingPolygonCaps + (K : RightAngleCapSpace) (hK : IsBalancedMaximumCap K) : + ∃ (n : ℕ → ℕ) (P : ℕ → RightAngleCapSpace), StrictMono n ∧ + (∀ i, IsMaximumPolygonCapSteps (n i) (P i)) ∧ + Tendsto (fun i ↦ Metric.hausdorffDist ((P i).val : Set Point) (K.val : Set Point)) + atTop (𝓝 0) ∧ + Tendsto (fun i ↦ ∫ t in (0 : ℝ)..(Real.pi / 2), + |magicDensity (tangentArmLengths (P i) t).2.1 - + magicDensity (tangentArmLengths K t).2.1|) atTop (𝓝 0) := by + obtain ⟨n, hn, hmono, hdyadic, Q, hQmax, hQlim⟩ := hK + refine ⟨n, fun i ↦ (Q i).val, hmono, fun i ↦ ⟨hn i, hdyadic i, Q i, rfl, hQmax i⟩, + hQlim, ?_⟩ + apply tendsto_integral_abs_magicDensity_sub_of_dominated + (fun i t ↦ (tangentArmLengths ((Q i).val) t).2.1) + (fun _ t ↦ (tangentArmLengths K t).2.1) + (fun i ↦ intervalIntegrable_tangentArm_fst _) + (fun i ↦ intervalIntegrable_tangentArm_fst K) + exact polygonCap_arm_integral_limit (fun i ↦ (Q i).val) K hQlim + +/-- The limit of the discrete inequalities on a compact subset of the rotation interval. -/ +private theorem balancedMaximumCap_surface_isCompact_le (K : RightAngleCapSpace) + (hK : IsBalancedMaximumCap K) {C : Set ℝ} (hC : IsCompact C) + (hCT : C ⊆ Ico (0 : ℝ) (Real.pi / 2)) : + surfaceAreaMeasure K.val ((fun t : ℝ ↦ (t : Real.Angle)) '' C) ≤ + armDensityMeasure K C := by + have hpi := Real.pi_pos + obtain ⟨n, P, hmono, hPmax, hPlim, hL1⟩ := + IsBalancedMaximumCap.approximatingPolygonCaps K hK + set err : ℕ → ℝ := fun i ↦ ∫ t in (0 : ℝ)..(Real.pi / 2), + |magicDensity (tangentArmLengths (P i) t).2.1 - + magicDensity (tangentArmLengths K t).2.1| with herrdef + have herr0 : ∀ i, 0 ≤ err i := fun i ↦ + intervalIntegral.integral_nonneg (by positivity) fun t _ ↦ abs_nonneg _ + have hδpos : ∀ i, 0 < polygonStepSize (n i) := by + intro i + obtain ⟨hn', _⟩ := hPmax i + have hnR : (0 : ℝ) < n i := by + have : 0 < n i := lt_of_lt_of_le zero_lt_two hn' + exact_mod_cast this + exact div_pos (by linarith) hnR + have hδtend : Tendsto (fun i ↦ polygonStepSize (n i)) atTop (𝓝 0) := by + have h := (tendsto_const_div_atTop_nhds_zero_nat (Real.pi / 2)).comp + hmono.tendsto_atTop + simpa only [polygonStepSize, Function.comp_def] using h + -- weak convergence of the surface measures + let μs : ℕ → FiniteMeasure Real.Angle := fun i ↦ + ⟨surfaceAreaMeasure (P i).val, (surfaceAreaMeasure_face_union (P i).val).1⟩ + let μ : FiniteMeasure Real.Angle := + ⟨surfaceAreaMeasure K.val, (surfaceAreaMeasure_face_union K.val).1⟩ + have hweak : Tendsto μs atTop (𝓝 μ) := by + apply MeasureTheory.FiniteMeasure.tendsto_iff_forall_integral_tendsto.mpr + intro f + exact surfaceAreaMeasure_weak_continuity (fun i ↦ (P i).val) K.val hPlim f f.continuous + -- the estimate at every positive thickening radius + have hkey : ∀ η : ℝ, 0 < η → + surfaceAreaMeasure K.val ((fun t : ℝ ↦ (t : Real.Angle)) '' C) ≤ + armDensityMeasure K (Metric.thickening (2 * η) C) := by + intro η hη + set V := (Metric.thickening η C ∩ Ioo (-(Real.pi / 2)) (Real.pi / 2)) ∪ + Ioo (-(Real.pi / 2)) 0 with hVdef + have hVopen : IsOpen V := + (Metric.isOpen_thickening.inter isOpen_Ioo).union isOpen_Ioo + have hCV : C ⊆ V := by + intro x hx + exact Or.inl ⟨Metric.self_subset_thickening hη C hx, + ⟨by linarith [(hCT hx).1], (hCT hx).2⟩⟩ + have hVsubIoo : V ⊆ Ioo (-(Real.pi / 2)) (Real.pi / 2) := by + rintro x (hx | hx) + · exact hx.2 + · exact ⟨hx.1, by linarith [hx.2]⟩ + have hVsubThick : V ∩ Ico (0 : ℝ) (Real.pi / 2) ⊆ Metric.thickening η C := by + rintro x ⟨hxV, hxI⟩ + rcases hxV with hx | hx + · exact hx.1 + · exact absurd hxI.1 (by simpa using hx.2) + have hVmeas : MeasurableSet (V ∩ Ico (0 : ℝ) (Real.pi / 2)) := + hVopen.measurableSet.inter measurableSet_Ico + have hφVopen : IsOpen ((fun t : ℝ ↦ (t : Real.Angle)) '' V) := + QuotientAddGroup.isOpenMap_coe _ hVopen + have hstep1 : surfaceAreaMeasure K.val ((fun t : ℝ ↦ (t : Real.Angle)) '' C) ≤ + Filter.liminf (fun i ↦ surfaceAreaMeasure (P i).val + ((fun t : ℝ ↦ (t : Real.Angle)) '' V)) atTop := by + refine le_trans (measure_mono (Set.image_mono hCV)) ?_ + exact FiniteMeasure.le_liminf_measure_open_of_tendsto (μ := μ) (μs := μs) + hweak hφVopen + have hev : ∀ᶠ i in atTop, surfaceAreaMeasure (P i).val + ((fun t : ℝ ↦ (t : Real.Angle)) '' V) ≤ + armDensityMeasure K (Metric.thickening (2 * η) C) + + ENNReal.ofReal (err i + 13 * (Real.pi / 2) * polygonStepSize (n i)) := by + filter_upwards [hδtend.eventually (gt_mem_nhds (show (0 : ℝ) < η / 2 by positivity))] + with i hi + obtain ⟨hn', hdy, Q, hQK, hQmax⟩ := hPmax i + have hQval : Q.val.val = (P i).val := by rw [hQK] + have hneg : surfaceAreaMeasure (P i).val + ((fun s : ℝ ↦ (s : Real.Angle)) '' Ioo (-(Real.pi / 2)) 0) = 0 := by + rw [← hQval] + exact surfaceAreaMeasure_rightAngle_Ioo_neg_eq_zero (n i) hn' Q + have hsplit : ((fun t : ℝ ↦ (t : Real.Angle)) '' V) ⊆ + ((fun t : ℝ ↦ (t : Real.Angle)) '' (V ∩ Ico (0 : ℝ) (Real.pi / 2))) ∪ + ((fun s : ℝ ↦ (s : Real.Angle)) '' Ioo (-(Real.pi / 2)) 0) := by + rintro u ⟨x, hxV, rfl⟩ + rcases lt_or_ge x 0 with hx | hx + · exact Or.inr ⟨x, ⟨(hVsubIoo hxV).1, hx⟩, rfl⟩ + · exact Or.inl ⟨x, ⟨hxV, ⟨hx, (hVsubIoo hxV).2⟩⟩, rfl⟩ + have hthick : Metric.thickening (2 * polygonStepSize (n i)) + (V ∩ Ico (0 : ℝ) (Real.pi / 2)) ⊆ Metric.thickening (2 * η) C := by + calc + Metric.thickening (2 * polygonStepSize (n i)) + (V ∩ Ico (0 : ℝ) (Real.pi / 2)) ⊆ + Metric.thickening (2 * polygonStepSize (n i)) + (Metric.thickening η C) := + Metric.thickening_subset_of_subset _ hVsubThick + _ ⊆ Metric.thickening (2 * polygonStepSize (n i) + η) C := + Metric.thickening_thickening_subset _ _ _ + _ ⊆ Metric.thickening (2 * η) C := + Metric.thickening_mono (by linarith) C + calc + surfaceAreaMeasure (P i).val ((fun t : ℝ ↦ (t : Real.Angle)) '' V) ≤ + surfaceAreaMeasure (P i).val + ((fun t : ℝ ↦ (t : Real.Angle)) '' (V ∩ Ico (0 : ℝ) (Real.pi / 2))) + + surfaceAreaMeasure (P i).val + ((fun s : ℝ ↦ (s : Real.Angle)) '' Ioo (-(Real.pi / 2)) 0) := + (measure_mono hsplit).trans (measure_union_le _ _) + _ = surfaceAreaMeasure (P i).val + ((fun t : ℝ ↦ (t : Real.Angle)) '' (V ∩ Ico (0 : ℝ) (Real.pi / 2))) := by + rw [hneg, add_zero] + _ ≤ armDensityMeasure (P i) (Metric.thickening (2 * polygonStepSize (n i)) + (V ∩ Ico (0 : ℝ) (Real.pi / 2))) + + ENNReal.ofReal (13 * (Real.pi / 2) * polygonStepSize (n i)) := + maximumPolygonCap_surface_image_le_thickening (n i) hn' (P i) (hPmax i) + (V ∩ Ico (0 : ℝ) (Real.pi / 2)) hVmeas Set.inter_subset_right + (by linarith [hδpos i]) + _ ≤ armDensityMeasure (P i) (Metric.thickening (2 * η) C) + + ENNReal.ofReal (13 * (Real.pi / 2) * polygonStepSize (n i)) := by + gcongr + _ ≤ (armDensityMeasure K (Metric.thickening (2 * η) C) + + ENNReal.ofReal (err i)) + + ENNReal.ofReal (13 * (Real.pi / 2) * polygonStepSize (n i)) := by + gcongr + exact armDensityMeasure_le_add_l1 (P i) K Metric.isOpen_thickening.measurableSet + _ = armDensityMeasure K (Metric.thickening (2 * η) C) + + ENNReal.ofReal (err i + 13 * (Real.pi / 2) * polygonStepSize (n i)) := by + rw [ENNReal.ofReal_add (herr0 i) + (mul_nonneg (by positivity) (hδpos i).le), add_assoc] + have htend : Tendsto (fun i ↦ armDensityMeasure K (Metric.thickening (2 * η) C) + + ENNReal.ofReal (err i + 13 * (Real.pi / 2) * polygonStepSize (n i))) atTop + (𝓝 (armDensityMeasure K (Metric.thickening (2 * η) C))) := by + have hsum : Tendsto (fun i ↦ err i + 13 * (Real.pi / 2) * polygonStepSize (n i)) + atTop (𝓝 0) := by + have h13 : Tendsto (fun i ↦ 13 * (Real.pi / 2) * polygonStepSize (n i)) + atTop (𝓝 0) := by + simpa using (tendsto_const_nhds (x := 13 * (Real.pi / 2)) + (f := atTop (α := ℕ))).mul hδtend + simpa using hL1.add h13 + have h0 : Tendsto (fun i ↦ ENNReal.ofReal + (err i + 13 * (Real.pi / 2) * polygonStepSize (n i))) atTop (𝓝 0) := by + simpa using ENNReal.tendsto_ofReal hsum + simpa using (tendsto_const_nhds + (x := armDensityMeasure K (Metric.thickening (2 * η) C)) + (f := atTop (α := ℕ))).add h0 + exact hstep1.trans ((Filter.liminf_le_liminf hev).trans (le_of_eq htend.liminf_eq)) + -- shrink the radius to zero + have hinter : (⋂ m : ℕ, Metric.thickening (2 * (1 / (m + 1) : ℝ)) C) = C := by + refine Set.Subset.antisymm ?_ ?_ + · intro x hx + have hclos : x ∈ closure C := by + rw [Metric.mem_closure_iff] + intro r hr + obtain ⟨m, hm⟩ := exists_nat_gt (2 / r) + obtain ⟨y, hyC, hy⟩ := Metric.mem_thickening_iff.1 (Set.mem_iInter.1 hx m) + refine ⟨y, hyC, lt_of_lt_of_le hy ?_⟩ + have hmpos : (0 : ℝ) < (m : ℝ) + 1 := by positivity + rw [mul_one_div, div_le_iff₀ hmpos] + have h2r : 2 / r < (m : ℝ) := hm + have : 2 < r * (m : ℝ) := by + rw [div_lt_iff₀ hr] at h2r + linarith + nlinarith + rwa [hC.isClosed.closure_eq] at hclos + · exact Set.subset_iInter fun m ↦ + Metric.self_subset_thickening (by positivity) C + have hanti : Antitone (fun m : ℕ ↦ Metric.thickening (2 * (1 / (m + 1) : ℝ)) C) := by + intro a b hab + refine Metric.thickening_mono ?_ C + have ha : (0 : ℝ) < (a : ℝ) + 1 := by positivity + have hb : (0 : ℝ) < (b : ℝ) + 1 := by positivity + have hab' : (a : ℝ) ≤ (b : ℝ) := by exact_mod_cast hab + rw [mul_one_div, mul_one_div] + gcongr + have hfin : ∃ m : ℕ, armDensityMeasure K + (Metric.thickening (2 * (1 / (m + 1) : ℝ)) C) ≠ ⊤ := by + refine ⟨0, ?_⟩ + exact ne_top_of_le_ne_top (armDensityMeasure_ne_top K) + (measure_mono (Set.subset_univ _)) + have hseq := tendsto_measure_iInter_atTop + (μ := armDensityMeasure K) + (s := fun m : ℕ ↦ Metric.thickening (2 * (1 / (m + 1) : ℝ)) C) + (fun m ↦ Metric.isOpen_thickening.measurableSet.nullMeasurableSet) hanti hfin + rw [hinter] at hseq + refine ge_of_tendsto hseq (Filter.Eventually.of_forall fun m ↦ ?_) + exact hkey _ (by positivity) + +private theorem exists_isCompact_preimage {E : Set ℝ} + (hET : E ⊆ Ico (0 : ℝ) (Real.pi / 2)) {F : Set Real.Angle} (hF : IsCompact F) + (hFE : F ⊆ (fun t : ℝ ↦ (t : Real.Angle)) '' E) : + ∃ C : Set ℝ, IsCompact C ∧ C ⊆ E ∧ F ⊆ (fun t : ℝ ↦ (t : Real.Angle)) '' C := by + have hpi := Real.pi_pos + have hinj : Set.InjOn (fun t : ℝ ↦ (t : Real.Angle)) (Icc (0 : ℝ) (Real.pi / 2)) := by + apply (Real.Angle.injOn_coe_Ioc (a := -Real.pi) (b := Real.pi) + (by linarith)).mono + intro t ht + exact ⟨by linarith [ht.1], by linarith [ht.2]⟩ + have hclosed : IsClosed ((fun t : ℝ ↦ (t : Real.Angle)) ⁻¹' F) := + hF.isClosed.preimage Real.Angle.continuous_coe + refine ⟨(fun t : ℝ ↦ (t : Real.Angle)) ⁻¹' F ∩ Icc 0 (Real.pi / 2), + isCompact_Icc.inter_left hclosed, ?_, ?_⟩ + · rintro t ⟨htF, htI⟩ + obtain ⟨e, heE, het⟩ := hFE htF + have : e = t := hinj (Ico_subset_Icc_self (hET heE)) htI het + exact this ▸ heE + · intro u hu + obtain ⟨e, heE, rfl⟩ := hFE hu + exact ⟨e, ⟨hu, Ico_subset_Icc_self (hET heE)⟩, rfl⟩ + +end Domination + +theorem balancedMaximumCap_surface_domination (K : RightAngleCapSpace) + (hK : IsBalancedMaximumCap K) (E : Set ℝ) (hE : MeasurableSet E) + (hET : E ⊆ Set.Ico (0 : ℝ) (Real.pi / 2)) : + surfaceAreaMeasure K.val ((fun t : ℝ ↦ (t : Real.Angle)) '' E) ≤ + ENNReal.ofReal (∫ t in E, + magicFunctions.1 (Real.toNNReal (tangentArmLengths K t).2.1)) := by + classical + let _ : IsFiniteMeasure (surfaceAreaMeasure K.val) := + (surfaceAreaMeasure_face_union K.val).1 + have hEimage : MeasurableSet ((fun t : ℝ ↦ (t : Real.Angle)) '' E) := + measurableSet_coe_image_of_subset_Ico hE hET + rw [show ENNReal.ofReal (∫ t in E, magicFunctions.1 + (Real.toNNReal (tangentArmLengths K t).2.1)) = armDensityMeasure K E from + (armDensityMeasure_eq_ofReal_integral K hE hET).symm, + MeasurableSet.measure_eq_iSup_isCompact hEimage (surfaceAreaMeasure K.val)] + refine iSup_le fun F ↦ iSup_le fun hFE ↦ iSup_le fun hFcomp ↦ ?_ + obtain ⟨C, hCcomp, hCE, hFC⟩ := exists_isCompact_preimage hET hFcomp hFE + exact (measure_mono hFC).trans + ((balancedMaximumCap_surface_isCompact_le K hK hCcomp (hCE.trans hET)).trans + (measure_mono hCE)) + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Cap.DensityExistence`. +* `Cap.Interpolation`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Existence and uniqueness of the surface densities of a balanced maximum cap + +A balanced maximum cap of rotation angle `π / 2` satisfies the density clause of the +injectivity condition: its surface area measure has nonnegative measurable densities on the +quarter arcs `[0, π / 2)` and `(π / 2, π]`, unique up to Lebesgue-null sets. + +On the first arc the density comes from the limiting inequality +`balancedMaximumCap_surface_domination` together with the Radon–Nikodym construction +`exists_nnreal_density_of_domination`. On the second arc the mirror image of the cap is again a +balanced maximum cap, and the surface-measure identity of `cap_mirror_features` transports its +first-arc density back along the reflection `a ↦ π - a` of normal angles. + +On the first arc the domination inequality also bounds the density: the real density produced by +`exists_capDensity_right_le_magicDensity` is at most `k₀` of the positive tangent arm length. +-/ + +/-! ### A continuous section of the angular projection -/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped NNReal ENNReal + +namespace MovingSofa + +/-- A continuous left inverse of the angle coercion on `[-(π / 2), π / 2]`. -/ +private def angleSection (a : Real.Angle) : ℝ := Real.arcsin a.sin + +private theorem continuous_angleSection : Continuous angleSection := + Real.continuous_arcsin.comp Real.Angle.continuous_sin + +private theorem angleSection_coe {t : ℝ} (ht : t ∈ Icc (-(Real.pi / 2)) (Real.pi / 2)) : + angleSection (t : Real.Angle) = t := by + rw [angleSection, Real.Angle.sin_coe, Real.arcsin_sin ht.1 ht.2] + +/-- After a quarter-turn shift, `angleSection` inverts the angle coercion on `[0, π]`. -/ +private theorem angleSection_sub_coe {t : ℝ} (ht : t ∈ Icc (-(Real.pi / 2)) (Real.pi / 2)) : + angleSection (((t + Real.pi / 2 : ℝ) : Real.Angle) - + ((Real.pi / 2 : ℝ) : Real.Angle)) = t := by + rw [← Real.Angle.coe_sub, add_sub_cancel_right, angleSection_coe ht] + +/-- The second quarter arc, parametrized from `0` by a quarter-turn shift. -/ +private theorem image_coe_add_pi_div_two_Ioc : + (fun t : ℝ ↦ ((t + Real.pi / 2 : ℝ) : Real.Angle)) '' Ioc 0 (Real.pi / 2) = + (fun t : ℝ ↦ (t : Real.Angle)) '' Ioc (Real.pi / 2) Real.pi := by + rw [show (fun t : ℝ ↦ ((t + Real.pi / 2 : ℝ) : Real.Angle)) = + (fun u : ℝ ↦ (u : Real.Angle)) ∘ (fun t : ℝ ↦ t + Real.pi / 2) from rfl, + Set.image_comp, Set.image_add_const_Ioc, zero_add, add_halves] + +/-- If `ψ` inverts `φ` on `S`, then cutting a `ψ`-preimage down to the `φ`-image of `S` is the +same as taking the `φ`-image of the corresponding part of `S`. -/ +private theorem preimage_inter_image_eq_image_inter {α β : Type*} {φ : α → β} {ψ : β → α} + {S : Set α} (hsec : ∀ t ∈ S, ψ (φ t) = t) (E : Set α) : + ψ ⁻¹' E ∩ φ '' S = φ '' (E ∩ S) := by + ext a + constructor + · rintro ⟨haE, t, ht, rfl⟩ + rw [mem_preimage, hsec t ht] at haE + exact ⟨t, ⟨haE, ht⟩, rfl⟩ + · rintro ⟨t, ⟨htE, ht⟩, rfl⟩ + exact ⟨by rw [mem_preimage, hsec t ht]; exact htE, t, ht, rfl⟩ + +/-! ### Densities on an arc from a domination inequality -/ + +/-- Transport of the bounded-density construction to an arc of normal angles. If the angular +parametrization `φ` has a measurable left inverse on a measurable set `S` that fills +`[0, π / 2]` up to a null set, and the mass that `μ₀` gives to `φ '' E` is dominated by the +integral of a bounded nonnegative function `f` over `E ⊆ S`, then `μ₀` restricted to the arc +`φ '' S` is the pushforward along `φ` of a weighted Lebesgue measure on `S`. -/ +private theorem exists_arcDensity_of_domination (μ₀ : Measure Real.Angle) [IsFiniteMeasure μ₀] + {φ : ℝ → Real.Angle} (hφ : Measurable φ) {ψ : Real.Angle → ℝ} (hψ : Measurable ψ) + {S : Set ℝ} (hS : MeasurableSet S) (hSae : S =ᵐ[volume] Icc (0 : ℝ) (Real.pi / 2)) + (hSsub : S ⊆ Icc (0 : ℝ) (Real.pi / 2)) (hA : MeasurableSet (φ '' S)) + (hsec : ∀ t ∈ S, ψ (φ t) = t) + (f : ℝ → ℝ) (hf : AEStronglyMeasurable f (volume.restrict (Icc (0 : ℝ) (Real.pi / 2)))) + (hf_nonneg : ∀ t ∈ Icc (0 : ℝ) (Real.pi / 2), 0 ≤ f t) + {M : ℝ} (hf_bound : ∀ t ∈ Icc (0 : ℝ) (Real.pi / 2), f t ≤ M) + (hdom : ∀ E : Set ℝ, MeasurableSet E → E ⊆ S → + μ₀ (φ '' E) ≤ ENNReal.ofReal (∫ t in E, f t)) : + ∃ r : ℝ → ℝ≥0, Measurable r ∧ + μ₀.restrict (φ '' S) = + Measure.map φ ((volume.restrict S).withDensity fun t ↦ (r t : ℝ≥0∞)) := by + classical + set μ : Measure ℝ := Measure.map ψ (μ₀.restrict (φ '' S)) with hμ + have hμ_apply : ∀ E : Set ℝ, MeasurableSet E → μ E = μ₀ (φ '' (E ∩ S)) := fun E hE ↦ by + rw [hμ, Measure.map_apply hψ hE, Measure.restrict_apply (hψ hE), + preimage_inter_image_eq_image_inter hsec E] + have : IsFiniteMeasure μ := by + refine ⟨?_⟩ + rw [hμ_apply univ MeasurableSet.univ] + exact measure_lt_top _ _ + have hμ_compl : μ (Icc (0 : ℝ) (Real.pi / 2))ᶜ = 0 := by + rw [hμ_apply _ measurableSet_Icc.compl, + show (Icc (0 : ℝ) (Real.pi / 2))ᶜ ∩ S = ∅ from + eq_empty_of_subset_empty fun x hx ↦ hx.1 (hSsub hx.2), + Set.image_empty, measure_empty] + have hdom' : ∀ E : Set ℝ, MeasurableSet E → E ⊆ Icc (0 : ℝ) (Real.pi / 2) → + μ E ≤ ENNReal.ofReal (∫ t in E, f t) := by + intro E hE hEsub + have hES : E ∩ S =ᵐ[volume] E := by + have h := Filter.EventuallyEqSet.inter (Filter.EventuallyEq.refl _ E) hSae + rwa [inter_eq_left.mpr hEsub] at h + rw [hμ_apply E hE] + exact (hdom _ (hE.inter hS) inter_subset_right).trans + (le_of_eq (congrArg ENNReal.ofReal (setIntegral_congr_set hES))) + obtain ⟨r, hr, hreq⟩ := + exists_nnreal_density_of_domination μ hμ_compl f hf hf_nonneg hf_bound hdom' + refine ⟨r, hr, ?_⟩ + have hmap : Measure.map φ μ = μ₀.restrict (φ '' S) := by + rw [hμ] + refine Measure.map_map_of_ae_leftInverse hψ hφ ?_ + filter_upwards [ae_restrict_mem hA] with a ha + obtain ⟨t, ht, rfl⟩ := ha + rw [hsec t ht] + rw [← hmap, hreq, ← Measure.restrict_congr_set hSae] + +/-! ### The density on the first arc -/ + +private theorem exists_capDensity_right (K : RightAngleCapSpace) + (hK : IsBalancedMaximumCap K) : + ∃ r : ℝ → ℝ≥0, Measurable r ∧ + (surfaceAreaMeasure K.1).restrict + ((fun t : ℝ ↦ (t : Real.Angle)) '' Ico 0 (Real.pi / 2)) = + Measure.map (fun t : ℝ ↦ (t : Real.Angle)) + ((volume.restrict (Ico 0 (Real.pi / 2))).withDensity + (fun t ↦ (r t : ℝ≥0∞))) := by + have hpi := Real.pi_pos + have _ : IsFiniteMeasure (surfaceAreaMeasure K.val) := + (surfaceAreaMeasure_face_union K.val).1 + have hmeas : AEStronglyMeasurable (fun t ↦ magicDensity (tangentArmLengths K t).2.1) + (volume.restrict (Icc (0 : ℝ) (Real.pi / 2))) := by + rw [← Measure.restrict_congr_set Ioc_ae_eq_Icc] + exact aestronglyMeasurable_magicDensity_tangentArm_fst K + refine exists_arcDensity_of_domination (surfaceAreaMeasure K.val) + Real.Angle.continuous_coe.measurable continuous_angleSection.measurable + measurableSet_Ico Ico_ae_eq_Icc Ico_subset_Icc_self ?_ + (fun t ht ↦ angleSection_coe ⟨by linarith [ht.1], ht.2.le⟩) + (fun t ↦ magicDensity (tangentArmLengths K t).2.1) hmeas + (fun t _ ↦ magicDensity_nonneg _) + (M := (surfaceAreaMeasure K.val).real univ + 1) + (fun t _ ↦ (magicDensity_le_abs_add_one _).trans + (by linarith [abs_tangentArm_fst_le K (t := t)])) + fun E hE hEsub ↦ balancedMaximumCap_surface_domination K hK E hE hEsub + exact Real.Angle.measurableSet_image_of_subset_Ioc (a := -Real.pi) (b := Real.pi) + (by linarith) measurableSet_Ico fun t ht ↦ ⟨by linarith [ht.1], by linarith [ht.2]⟩ + +/-- On the first quarter arc the surface area measure of a balanced maximum cap is the integral +of a real density on the rotation interval which is bounded by the magic density of the positive +tangent arm length. This refines `exists_capDensity_right`, which only records the existence of a +density, by the pointwise bound carried by the limiting inequality +`balancedMaximumCap_surface_domination`. -/ +theorem exists_capDensity_right_le_magicDensity (K : RightAngleCapSpace) + (hK : IsBalancedMaximumCap K) : + ∃ ρ : ℝ → ℝ, IntegrableOn ρ (Icc 0 (Real.pi / 2)) volume ∧ + (∀ᵐ t ∂volume.restrict (Icc 0 (Real.pi / 2)), + 0 ≤ ρ t ∧ ρ t ≤ magicDensity (tangentArmLengths K t).2.1) ∧ + ∀ E : Set ℝ, MeasurableSet E → E ⊆ Ico 0 (Real.pi / 2) → + (surfaceAreaMeasure K.val ((fun t : ℝ ↦ (t : Real.Angle)) '' E)).toReal = + ∫ t in E, ρ t := by + have hpi := Real.pi_pos + have _ : IsFiniteMeasure (surfaceAreaMeasure K.val) := + (surfaceAreaMeasure_face_union K.val).1 + have hsec : ∀ t ∈ Ico (0 : ℝ) (Real.pi / 2), angleSection (t : Real.Angle) = t := + fun t ht ↦ angleSection_coe ⟨by linarith [ht.1], ht.2.le⟩ + set μ : Measure ℝ := Measure.map angleSection ((surfaceAreaMeasure K.val).restrict + ((fun t : ℝ ↦ (t : Real.Angle)) '' Ico 0 (Real.pi / 2))) with hμdef + have hμ_apply : ∀ E : Set ℝ, MeasurableSet E → + μ E = surfaceAreaMeasure K.val + ((fun t : ℝ ↦ (t : Real.Angle)) '' (E ∩ Ico 0 (Real.pi / 2))) := fun E hE ↦ by + rw [hμdef, Measure.map_apply continuous_angleSection.measurable hE, + Measure.restrict_apply (continuous_angleSection.measurable hE), + preimage_inter_image_eq_image_inter hsec E] + have _ : IsFiniteMeasure μ := by + refine ⟨?_⟩ + rw [hμ_apply univ MeasurableSet.univ] + exact measure_lt_top _ _ + have hμ_compl : μ (Icc (0 : ℝ) (Real.pi / 2))ᶜ = 0 := by + rw [hμ_apply _ measurableSet_Icc.compl, + show (Icc (0 : ℝ) (Real.pi / 2))ᶜ ∩ Ico 0 (Real.pi / 2) = ∅ from + eq_empty_of_subset_empty fun x hx ↦ hx.1 (Ico_subset_Icc_self hx.2), + Set.image_empty, measure_empty] + have hmeas : AEStronglyMeasurable (fun t ↦ magicDensity (tangentArmLengths K t).2.1) + (volume.restrict (Icc (0 : ℝ) (Real.pi / 2))) := by + rw [← Measure.restrict_congr_set Ioc_ae_eq_Icc] + exact aestronglyMeasurable_magicDensity_tangentArm_fst K + have hdom : ∀ E : Set ℝ, MeasurableSet E → E ⊆ Icc 0 (Real.pi / 2) → + μ E ≤ ENNReal.ofReal (∫ t in E, magicDensity (tangentArmLengths K t).2.1) := by + intro E hE hEsub + have hES : E ∩ Ico (0 : ℝ) (Real.pi / 2) =ᵐ[volume] E := by + have h := Filter.EventuallyEqSet.inter (Filter.EventuallyEq.refl _ E) + (Ico_ae_eq_Icc (μ := volume) (a := (0 : ℝ)) (b := Real.pi / 2)) + rwa [inter_eq_left.mpr hEsub] at h + rw [hμ_apply E hE] + exact (balancedMaximumCap_surface_domination K hK _ (hE.inter measurableSet_Ico) + inter_subset_right).trans + (le_of_eq (congrArg ENNReal.ofReal (setIntegral_congr_set hES))) + obtain ⟨ρ, -, hρint, hρle, hρeq⟩ := exists_density_le_of_domination μ hμ_compl + (fun t ↦ magicDensity (tangentArmLengths K t).2.1) hmeas (fun t _ ↦ magicDensity_nonneg _) + (M := (surfaceAreaMeasure K.val).real univ + 1) + (fun t _ ↦ (magicDensity_le_abs_add_one _).trans + (by linarith [abs_tangentArm_fst_le K (t := t)])) hdom + refine ⟨ρ, hρint, hρle, fun E hE hEsub ↦ ?_⟩ + have hEIcc : E ⊆ Icc (0 : ℝ) (Real.pi / 2) := hEsub.trans Ico_subset_Icc_self + have hEint : Integrable ρ (volume.restrict E) := hρint.mono_set hEIcc + have hEnn : 0 ≤ᵐ[volume.restrict E] ρ := + (ae_restrict_of_ae_restrict_of_subset hEIcc hρle).mono fun t h ↦ h.1 + have hEμ : μ E = surfaceAreaMeasure K.val ((fun t : ℝ ↦ (t : Real.Angle)) '' E) := by + rw [hμ_apply E hE, inter_eq_left.mpr hEsub] + rw [← hEμ, hρeq, withDensity_apply _ hE, Measure.restrict_restrict_of_subset hEIcc, + ← ofReal_integral_eq_lintegral_ofReal hEint hEnn] + exact ENNReal.toReal_ofReal (integral_nonneg_of_ae hEnn) + +/-! ### The mirrored cap and the density on the second arc -/ + +/-- The mirror image of a balanced maximum right-angle cap is again a balanced maximum cap, and +the surface area measure of the cap is obtained from that of its mirror image by reflecting +normal angles through `a ↦ π - a`. -/ +private theorem exists_mirror_balancedMaximumCap (K : RightAngleCapSpace) + (hK : IsBalancedMaximumCap K) : + ∃ P : RightAngleCapSpace, IsBalancedMaximumCap P ∧ + ∀ E : Set Real.Angle, MeasurableSet E → + surfaceAreaMeasure K.val E = + surfaceAreaMeasure P.val + ((fun a : Real.Angle ↦ ((Real.pi : ℝ) : Real.Angle) - a) '' E) := by + obtain ⟨P, hPset, hPbal⟩ := balancedMaximumCap_mirror K hK + obtain ⟨Q, hQset, -, -, -, -, hQmeas⟩ := cap_mirror_features K + have hQP : Q = P := Subtype.ext (ConvexBody.ext (by rw [hQset, hPset])) + have hF : Function.Involutive (fun a : Real.Angle ↦ ((Real.pi : ℝ) : Real.Angle) - a) := + fun a ↦ sub_sub_cancel _ _ + refine ⟨P, hPbal, fun E hE ↦ ?_⟩ + have hFEmeas : MeasurableSet + ((fun a : Real.Angle ↦ ((Real.pi : ℝ) : Real.Angle) - a) '' E) := by + rw [Set.image_eq_preimage_of_inverse hF hF] + exact (continuous_const.sub continuous_id).measurable hE + have himg : (fun a : Real.Angle ↦ ((Real.pi / 2 + Real.pi / 2 : ℝ) : Real.Angle) - a) '' + ((fun a : Real.Angle ↦ ((Real.pi : ℝ) : Real.Angle) - a) '' E) = E := by + rw [show ((Real.pi / 2 + Real.pi / 2 : ℝ) : Real.Angle) = ((Real.pi : ℝ) : Real.Angle) from + by rw [add_halves], Set.image_image, show (fun a : Real.Angle ↦ + ((Real.pi : ℝ) : Real.Angle) - (((Real.pi : ℝ) : Real.Angle) - a)) = fun a ↦ a from + funext hF, Set.image_id'] + have hkey := hQmeas _ hFEmeas + rw [hQP, himg] at hkey + exact hkey.symm + +private theorem exists_capDensity_left (K : RightAngleCapSpace) + (hK : IsBalancedMaximumCap K) : + ∃ s : ℝ → ℝ≥0, Measurable s ∧ + (surfaceAreaMeasure K.1).restrict + ((fun t : ℝ ↦ (t : Real.Angle)) '' Ioc (Real.pi / 2) Real.pi) = + Measure.map (fun t : ℝ ↦ ((t + Real.pi / 2 : ℝ) : Real.Angle)) + ((volume.restrict (Ioc 0 (Real.pi / 2))).withDensity + (fun t ↦ (s t : ℝ≥0∞))) := by + obtain ⟨P, hPbal, hPmeas⟩ := exists_mirror_balancedMaximumCap K hK + have hpi := Real.pi_pos + have _ : IsFiniteMeasure (surfaceAreaMeasure K.val) := + (surfaceAreaMeasure_face_union K.val).1 + have hrefl : Function.Involutive (fun t : ℝ ↦ Real.pi / 2 - t) := fun t ↦ sub_sub_cancel _ _ + have hmp : MeasurePreserving (fun t : ℝ ↦ Real.pi / 2 - t) + (volume.restrict (Icc (0 : ℝ) (Real.pi / 2))) + (volume.restrict (Icc (0 : ℝ) (Real.pi / 2))) := by + have h := (Measure.measurePreserving_sub_left volume (Real.pi / 2)).restrict_preimage + (measurableSet_Icc (a := (0 : ℝ)) (b := Real.pi / 2)) + have hpre : (fun t : ℝ ↦ Real.pi / 2 - t) ⁻¹' Icc (0 : ℝ) (Real.pi / 2) = + Icc (0 : ℝ) (Real.pi / 2) := by + ext x + simp only [mem_preimage, mem_Icc] + constructor <;> intro hx <;> exact ⟨by linarith [hx.2], by linarith [hx.1]⟩ + rwa [hpre] at h + have hmeas : AEStronglyMeasurable (fun u ↦ magicDensity (tangentArmLengths P u).2.1) + (volume.restrict (Icc (0 : ℝ) (Real.pi / 2))) := by + rw [← Measure.restrict_congr_set Ioc_ae_eq_Icc] + exact aestronglyMeasurable_magicDensity_tangentArm_fst P + have hbound : ∀ t ∈ Icc (0 : ℝ) (Real.pi / 2), + magicDensity (tangentArmLengths P (Real.pi / 2 - t)).2.1 ≤ + (surfaceAreaMeasure P.val).real univ + 1 := by + intro t _ + refine (magicDensity_le_abs_add_one _).trans ?_ + have harm := abs_tangentArm_fst_le P (t := Real.pi / 2 - t) + linarith + rw [← image_coe_add_pi_div_two_Ioc] + refine exists_arcDensity_of_domination (surfaceAreaMeasure K.val) + (φ := fun t : ℝ ↦ ((t + Real.pi / 2 : ℝ) : Real.Angle)) + (ψ := fun a : Real.Angle ↦ angleSection (a - ((Real.pi / 2 : ℝ) : Real.Angle))) + (Real.Angle.continuous_coe.comp (continuous_id.add continuous_const)).measurable + (continuous_angleSection.comp (continuous_id.sub continuous_const)).measurable + measurableSet_Ioc Ioc_ae_eq_Icc Ioc_subset_Icc_self ?_ + (fun t ht ↦ angleSection_sub_coe ⟨by linarith [ht.1], ht.2⟩) + (fun t ↦ magicDensity (tangentArmLengths P (Real.pi / 2 - t)).2.1) + (hmeas.comp_measurePreserving hmp) (fun t _ ↦ magicDensity_nonneg _) hbound ?_ + · rw [image_coe_add_pi_div_two_Ioc] + exact Real.Angle.measurableSet_image_of_subset_Ioc (a := -Real.pi) (b := Real.pi) + (by linarith) measurableSet_Ioc fun t ht ↦ ⟨by linarith [ht.1], ht.2⟩ + · intro E hE hEsub + have hgmeas : MeasurableSet ((fun t : ℝ ↦ Real.pi / 2 - t) '' E) := by + rw [Set.image_eq_preimage_of_inverse hrefl hrefl] + exact (measurable_const.sub measurable_id) hE + have hgsub : (fun t : ℝ ↦ Real.pi / 2 - t) '' E ⊆ Ico 0 (Real.pi / 2) := by + rintro u ⟨t, ht, rfl⟩ + exact ⟨by linarith [(hEsub ht).2], by linarith [(hEsub ht).1]⟩ + have hEarc : MeasurableSet + ((fun t : ℝ ↦ ((t + Real.pi / 2 : ℝ) : Real.Angle)) '' E) := by + rw [show (fun t : ℝ ↦ ((t + Real.pi / 2 : ℝ) : Real.Angle)) = + (fun u : ℝ ↦ (u : Real.Angle)) ∘ (fun t : ℝ ↦ t + Real.pi / 2) from rfl, + Set.image_comp] + refine Real.Angle.measurableSet_image_of_subset_Ioc (a := -Real.pi) (b := Real.pi) + (by linarith) ?_ ?_ + · rw [Set.image_add_right] + exact (measurable_id.add_const _) hE + · rintro u ⟨t, ht, rfl⟩ + exact ⟨by linarith [(hEsub ht).1], by linarith [(hEsub ht).2]⟩ + have hmirror : (fun a : Real.Angle ↦ ((Real.pi : ℝ) : Real.Angle) - a) '' + ((fun t : ℝ ↦ ((t + Real.pi / 2 : ℝ) : Real.Angle)) '' E) = + (fun u : ℝ ↦ (u : Real.Angle)) '' ((fun t : ℝ ↦ Real.pi / 2 - t) '' E) := by + rw [Set.image_image, Set.image_image] + refine Set.image_congr' fun t ↦ ?_ + show ((Real.pi : ℝ) : Real.Angle) - ((t + Real.pi / 2 : ℝ) : Real.Angle) = + ((Real.pi / 2 - t : ℝ) : Real.Angle) + rw [← Real.Angle.coe_sub] + congr 1 + ring + calc surfaceAreaMeasure K.val + ((fun t : ℝ ↦ ((t + Real.pi / 2 : ℝ) : Real.Angle)) '' E) + = surfaceAreaMeasure P.val ((fun u : ℝ ↦ (u : Real.Angle)) '' + ((fun t : ℝ ↦ Real.pi / 2 - t) '' E)) := by rw [hPmeas _ hEarc, hmirror] + _ ≤ ENNReal.ofReal (∫ t in (fun t : ℝ ↦ Real.pi / 2 - t) '' E, + magicDensity (tangentArmLengths P t).2.1) := + balancedMaximumCap_surface_domination P hPbal _ hgmeas hgsub + _ = ENNReal.ofReal + (∫ t in E, magicDensity (tangentArmLengths P (Real.pi / 2 - t)).2.1) := + congrArg ENNReal.ofReal + ((Measure.measurePreserving_sub_left volume (Real.pi / 2)).setIntegral_image_emb + (measurableEmbedding_subLeft _) _ E) + +/-! ### Uniqueness of the densities -/ + +/-- Two measurable weights on `S` whose pushforwards along `φ` agree are almost everywhere +equal, provided `φ` has a measurable left inverse on `S`. -/ +private theorem ae_eq_of_map_withDensity_eq {S : Set ℝ} (hS : MeasurableSet S) + {φ : ℝ → Real.Angle} (hφ : Measurable φ) {ψ : Real.Angle → ℝ} (hψ : Measurable ψ) + (hsec : ∀ t ∈ S, ψ (φ t) = t) {w₁ w₂ : ℝ → ℝ≥0} + (h₁ : Measurable w₁) (h₂ : Measurable w₂) + (h : Measure.map φ ((volume.restrict S).withDensity (fun t ↦ (w₁ t : ℝ≥0∞))) = + Measure.map φ ((volume.restrict S).withDensity (fun t ↦ (w₂ t : ℝ≥0∞)))) : + w₁ =ᵐ[volume.restrict S] w₂ := by + have key : ∀ w : ℝ → ℝ≥0, + Measure.map ψ (Measure.map φ ((volume.restrict S).withDensity + (fun t ↦ (w t : ℝ≥0∞)))) = + (volume.restrict S).withDensity (fun t ↦ (w t : ℝ≥0∞)) := by + intro w + refine Measure.map_map_of_ae_leftInverse hφ hψ ?_ + filter_upwards [(withDensity_absolutelyContinuous (volume.restrict S) + (fun t ↦ (w t : ℝ≥0∞))).ae_le (ae_restrict_mem hS)] with t ht + exact hsec t ht + have hν : (volume.restrict S).withDensity (fun t ↦ (w₁ t : ℝ≥0∞)) = + (volume.restrict S).withDensity (fun t ↦ (w₂ t : ℝ≥0∞)) := by + rw [← key w₁, ← key w₂, h] + filter_upwards [(withDensity_eq_iff_of_sigmaFinite + h₁.coe_nnreal_ennreal.aemeasurable h₂.coe_nnreal_ennreal.aemeasurable).mp hν] with t ht + exact ENNReal.coe_inj.mp ht + +/-- A right-angle cap determines its two surface densities up to Lebesgue-null sets: any two +pairs of densities of the same cap agree almost everywhere on `[0, π / 2]`. -/ +theorem HasCapDensities.ae_eq {K : RightAngleCapSpace} {r s r' s' : ℝ → ℝ≥0} + (h : HasCapDensities K r s) (h' : HasCapDensities K r' s') : + (r =ᵐ[volume.restrict (Set.Icc 0 (Real.pi / 2))] r') ∧ + (s =ᵐ[volume.restrict (Set.Icc 0 (Real.pi / 2))] s') := by + have hpi := Real.pi_pos + refine ⟨?_, ?_⟩ + · rw [← Measure.restrict_congr_set (Ico_ae_eq_Icc (a := (0 : ℝ)) (b := Real.pi / 2))] + exact ae_eq_of_map_withDensity_eq measurableSet_Ico + Real.Angle.continuous_coe.measurable continuous_angleSection.measurable + (fun t ht ↦ angleSection_coe ⟨by linarith [ht.1], ht.2.le⟩) + h.1 h'.1 (h.2.2.1.symm.trans h'.2.2.1) + · rw [← Measure.restrict_congr_set (Ioc_ae_eq_Icc (a := (0 : ℝ)) (b := Real.pi / 2))] + exact ae_eq_of_map_withDensity_eq measurableSet_Ioc + (φ := fun t : ℝ ↦ ((t + Real.pi / 2 : ℝ) : Real.Angle)) + (ψ := fun a : Real.Angle ↦ angleSection (a - ((Real.pi / 2 : ℝ) : Real.Angle))) + (Real.Angle.continuous_coe.comp (continuous_id.add continuous_const)).measurable + (continuous_angleSection.comp (continuous_id.sub continuous_const)).measurable + (fun t ht ↦ angleSection_sub_coe ⟨by linarith [ht.1], ht.2⟩) + h.2.1 h'.2.1 (h.2.2.2.symm.trans h'.2.2.2) + +theorem balancedMaximumCap_hasDensities (K : RightAngleCapSpace) + (hK : IsBalancedMaximumCap K) : + ∃ r s : ℝ → NNReal, HasCapDensities K r s ∧ + ∀ r' s', HasCapDensities K r' s' → + (r =ᵐ[volume.restrict (Set.Icc 0 (Real.pi / 2))] r') ∧ + (s =ᵐ[volume.restrict (Set.Icc 0 (Real.pi / 2))] s') := by + obtain ⟨r, hrmeas, hr⟩ := exists_capDensity_right K hK + obtain ⟨s, hsmeas, hs⟩ := exists_capDensity_left K hK + have h : HasCapDensities K r s := ⟨hrmeas, hsmeas, hr, hs⟩ + exact ⟨r, s, h, fun _ _ h' ↦ h.ae_eq h'⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Minkowski interpolation of right-angle caps + +The cap conditions of `IsCap (π / 2)` and the injectivity condition of +`SatisfiesInjectivityCondition` are preserved by the Minkowski interpolation +`convexBodyCombination t K L = (1 - t) • K + t • L` of two right-angle caps. Each statement +about the interpolation is phrased for an arbitrary cap whose underlying convex body is that +interpolation, so that it applies both to the cap produced by `isCap_convexBodyCombination` +and to an interpolated cap obtained by choice. +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory +open scoped NNReal ENNReal Pointwise unitInterval + +namespace MovingSofa + +/-- Lowering a point of an interpolated right-angle cap onto the base line keeps it inside, +because the same projection can be applied to both summands. -/ +theorem base_projection_mem_convexBodyCombination (t : I) (K L : CapSpace (Real.pi / 2)) + {q : Point} (hq : q ∈ (convexBodyCombination t K.val L.val : Set Point)) : + q - q 1 • normalVector ((Real.pi / 2 : ℝ) : Real.Angle) ∈ + (convexBodyCombination t K.val L.val : Set Point) := by + obtain ⟨a, ha, b, hb, rfl⟩ := (mem_convexBodyCombination_iff t K.val L.val q).1 hq + refine (mem_convexBodyCombination_iff t K.val L.val _).2 + ⟨_, K.base_projection_mem ha, _, L.base_projection_mem hb, ?_⟩ + have hcoord : ((1 - (t : ℝ)) • a + (t : ℝ) • b) 1 = + (1 - (t : ℝ)) * a 1 + (t : ℝ) * b 1 := by + simp only [PiLp.add_apply, PiLp.smul_apply, smul_eq_mul] + rw [hcoord] + module + +/-- Right-angle caps are closed under Minkowski interpolation. -/ +theorem isCap_convexBodyCombination (t : I) (K L : RightAngleCapSpace) : + IsCap (Real.pi / 2) (convexBodyCombination t K.val L.val) := by + have hsup := supportValue_convexBodyCombination t K.val L.val + have hbase : supportValue (convexBodyCombination t K.val L.val) + ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 := by + rw [hsup, K.property.2.2.2.2.2.1, L.property.2.2.2.2.2.1]; ring + refine ⟨by positivity, le_rfl, ?_, ?_, ?_, hbase, + hasHalfPlaneRepresentation_of_base_projection _ hbase + (fun q hq ↦ base_projection_mem_convexBodyCombination t K L hq)⟩ + · rw [hsup, K.property.2.2.1, L.property.2.2.1]; ring + · rw [hsup, K.property.2.2.2.1, L.property.2.2.2.1]; ring + · rw [hsup, K.property.2.2.2.2.1, L.property.2.2.2.2.1]; ring + +/-- An interpolated right-angle cap carries the interpolated surface densities: its surface +measure is the interpolation of the two surface measures, and pushing a weighted measure +forward is linear in the weight. -/ +theorem hasCapDensities_of_eq_convexBodyCombination {t : I} {K L M : RightAngleCapSpace} + (hM : (M.val : ConvexBody Point) = convexBodyCombination t K.val L.val) + {r₁ s₁ r₂ s₂ : ℝ → ℝ≥0} (hK : HasCapDensities K r₁ s₁) (hL : HasCapDensities L r₂ s₂) : + HasCapDensities M (fun x ↦ (1 - (t : ℝ)).toNNReal * r₁ x + (t : ℝ).toNNReal * r₂ x) + (fun x ↦ (1 - (t : ℝ)).toNNReal * s₁ x + (t : ℝ).toNNReal * s₂ x) := by + have hmeasure : surfaceAreaMeasure M.val = + ENNReal.ofReal (1 - (t : ℝ)) • surfaceAreaMeasure K.val + + ENNReal.ofReal (t : ℝ) • surfaceAreaMeasure L.val := by + rw [hM]; exact surfaceAreaMeasure_convexBodyCombination t K.val L.val + refine ⟨(measurable_const.mul hK.1).add (measurable_const.mul hL.1), + (measurable_const.mul hK.2.1).add (measurable_const.mul hL.2.1), ?_, ?_⟩ + · rw [hmeasure, Measure.restrict_add, Measure.restrict_smul, Measure.restrict_smul, + hK.2.2.1, hL.2.2.1] + exact (Measure.map_withDensity_eq_smul_add_smul _ Real.Angle.continuous_coe.measurable _ _ + hK.1.coe_nnreal_ennreal hL.1.coe_nnreal_ennreal (fun x ↦ by simp [ENNReal.ofReal])).symm + · rw [hmeasure, Measure.restrict_add, Measure.restrict_smul, Measure.restrict_smul, + hK.2.2.2, hL.2.2.2] + exact (Measure.map_withDensity_eq_smul_add_smul _ + (Real.Angle.continuous_coe.comp (continuous_id.add continuous_const)).measurable _ _ + hK.2.1.coe_nnreal_ennreal hL.2.1.coe_nnreal_ennreal + (fun x ↦ by simp [ENNReal.ofReal])).symm + +/-- The inner corner of an interpolated cap is the interpolation of the two inner corners. -/ +theorem capInnerCorner_of_eq_convexBodyCombination {t : I} {K L M : RightAngleCapSpace} + (hM : (M.val : ConvexBody Point) = convexBodyCombination t K.val L.val) (x : ℝ) : + capInnerCorner M x = + (1 - (t : ℝ)) • capInnerCorner K x + (t : ℝ) • capInnerCorner L x := by + simp only [capInnerCorner, (rotatingHallwayParts_formulas _ _).2.1, hM, + supportValue_convexBodyCombination] + module + +/-- The injectivity condition is inherited by Minkowski interpolations of right-angle caps: the +inner corner interpolates, so its two frame velocity components are the same combinations of +the original ones, and a combination with nonnegative weights summing to one preserves their +strict signs even at the two degenerate weights. -/ +theorem satisfiesInjectivityCondition_of_eq_convexBodyCombination {t : I} + {K L M : RightAngleCapSpace} + (hM : (M.val : ConvexBody Point) = convexBodyCombination t K.val L.val) + (hK : SatisfiesInjectivityCondition K) (hL : SatisfiesInjectivityCondition L) : + SatisfiesInjectivityCondition M := by + obtain ⟨⟨r₁, s₁, hd₁, -⟩, hC₁, hsign₁⟩ := hK + obtain ⟨⟨r₂, s₂, hd₂, -⟩, hC₂, hsign₂⟩ := hL + have hcornerfun : capInnerCorner M = + fun x ↦ (1 - (t : ℝ)) • capInnerCorner K x + (t : ℝ) • capInnerCorner L x := + funext (capInnerCorner_of_eq_convexBodyCombination hM) + have hpi : (0 : ℝ) < Real.pi / 2 := by positivity + have ht0 : (0 : ℝ) ≤ (t : ℝ) := t.2.1 + have ht1 : (0 : ℝ) ≤ 1 - (t : ℝ) := sub_nonneg.mpr t.2.2 + -- A combination of two negative quantities with weights summing to one is negative. + have hneg : ∀ a b : ℝ, a < 0 → b < 0 → (1 - (t : ℝ)) * a + (t : ℝ) * b < 0 := by + intro a b ha hb + rcases eq_or_lt_of_le ht0 with h | h + · rw [← h]; simpa using ha + · nlinarith [mul_nonpos_of_nonneg_of_nonpos ht1 ha.le, mul_neg_of_pos_of_neg h hb] + have hpos : ∀ a b : ℝ, 0 < a → 0 < b → 0 < (1 - (t : ℝ)) * a + (t : ℝ) * b := by + intro a b ha hb + have := hneg (-a) (-b) (by linarith) (by linarith) + linarith + -- Density uniqueness needs no proof here: it holds for every right-angle cap. + have hdens := hasCapDensities_of_eq_convexBodyCombination hM hd₁ hd₂ + refine ⟨⟨_, _, hdens, fun _ _ h' ↦ hdens.ae_eq h'⟩, ?_, ?_⟩ + · rw [hcornerfun] + exact (hC₁.const_smul _).add (hC₂.const_smul _) + · intro x hx + have hxmem : x ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨hx.1.le, hx.2.le⟩ + have hdK := ((hC₁.differentiableOn one_ne_zero) x hxmem).hasDerivWithinAt + have hdL := ((hC₂.differentiableOn one_ne_zero) x hxmem).hasDerivWithinAt + have hdM : HasDerivWithinAt (capInnerCorner M) + ((1 - (t : ℝ)) • derivWithin (capInnerCorner K) (Set.Icc 0 (Real.pi / 2)) x + + (t : ℝ) • derivWithin (capInnerCorner L) (Set.Icc 0 (Real.pi / 2)) x) + (Set.Icc 0 (Real.pi / 2)) x := by + rw [hcornerfun] + exact (hdK.const_smul (1 - (t : ℝ))).add (hdL.const_smul (t : ℝ)) + rw [hdM.derivWithin (uniqueDiffOn_Icc hpi x hxmem), inner_add_left, inner_add_left, + real_inner_smul_left, real_inner_smul_left, real_inner_smul_left, real_inner_smul_left] + exact ⟨hneg _ _ (hsign₁ x hx).1 (hsign₂ x hx).1, + hpos _ _ (hsign₁ x hx).2 (hsign₂ x hx).2⟩ + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Bounds.Arm.Regularity`. +* `Bounds.Lower.Sequence`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Regularity of the arm length function of a balanced maximum cap + +For a balanced maximum cap `K` of rotation angle `π / 2` the arm length function `f_K` is +absolutely continuous on `[0, π / 2]` and satisfies `f_K' ≥ m₀ ∘ g_K` almost everywhere on +`(0, π / 2)`. + +The argument combines three inputs. The differentiation identity +`positiveArm_stieltjes_surface` for the positive arm length, read on an interval `(0, t]` with +`t < π / 2`, expresses `f_K(t) - f_K(0)` as the integral of `g_K` minus the surface measure of the +arc traversed. The surface measure on that arc has a real density bounded by `k₀ ∘ g_K`, by +`exists_capDensity_right_le_magicDensity`. Together they present `f_K` on `[0, π / 2)` as the +primitive of `w = g_K - ρ`; continuity of `f_K` on the closed interval +(`nondegenerateCap_continuity`) upgrades the representation to `[0, π / 2]`, whence absolute +continuity and `f_K' = w ≥ g_K - k₀ ∘ g_K = m₀ ∘ g_K` almost everywhere. + +The module also records the pointwise data accompanying that differential inequality: both arm +length functions of a nondegenerate cap are nonnegative, and the right one has initial value +`f_K(0) = 1`. +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- A function on the interval subtype `Set.Icc a b`, extended to `ℝ` by zero. -/ +def extendIntervalScalar {a b : ℝ} (f : Set.Icc a b → ℝ) (t : ℝ) : ℝ := by + classical + exact if h : t ∈ Set.Icc a b then f ⟨t, h⟩ else 0 + +/-- Inside its interval the zero extension agrees with the original subtype function. -/ +theorem extendIntervalScalar_of_mem {a b : ℝ} (f : Set.Icc a b → ℝ) {t : ℝ} + (ht : t ∈ Set.Icc a b) : extendIntervalScalar f t = f ⟨t, ht⟩ := by + classical + simp only [extendIntervalScalar, dite_eq_left ht] + +/-- The right arm length of a nondegenerate right-angle cap at the horizontal normal equals one. +Lowering the contact there onto the base line stays inside the cap and meets the same supporting +line, so the infimum of the tangent heights of that edge is at most zero; the contacts coincide, +so the contact itself has height zero, and the outer corner at that angle has height +`h_K(π / 2) = 1`. -/ +theorem tangentArmLengths_right_zero_eq_one (K : RightAngleCapSpace) + (hD : ∃ r s, HasCapDensities K r s) : (tangentArmLengths K 0).1.1 = 1 := by + have hAmem : (edgeVertices K.val ((0 : ℝ) : Real.Angle)).1 ∈ + exposedEdge K.val ((0 : ℝ) : Real.Angle) := edgeVertices_fst_mem _ _ + set A : Point := (edgeVertices K.val ((0 : ℝ) : Real.Angle)).1 with hAdef + set B : Point := A - A 1 • normalVector ((Real.pi / 2 : ℝ) : Real.Angle) with hBdef + -- the lowered contact lies on the same supporting line and on the base line + have hBline : B ∈ exposedEdge K.val ((0 : ℝ) : Real.Angle) := by + refine ⟨K.base_projection_mem hAmem.1, ?_⟩ + change inner ℝ B (normalVector ((0 : ℝ) : Real.Angle)) = supportValue K.val _ + rw [hBdef, inner_sub_left, real_inner_smul_left, inner_normalVector_normalVector] + simp only [sub_zero, Real.cos_pi_div_two, mul_zero, sub_zero] + exact hAmem.2 + have hBtan : inner ℝ B (tangentVector ((0 : ℝ) : Real.Angle)) = 0 := by + rw [hBdef, inner_sub_left, real_inner_smul_left, inner_tangentVector_zero, + ← normalVector_add_pi_div_two_real 0, inner_normalVector_normalVector] + norm_num + -- the two contacts coincide, so the edge is a single point of height zero + have hcontact := (capDensities_contact_eq K hD).1 0 ⟨le_rfl, by positivity⟩ + have hAeq : A = (edgeVertices K.val ((0 : ℝ) : Real.Angle)).2 := hcontact.1 + have hA1le : A 1 ≤ 0 := by + have h1 : A 1 = sInf ((fun p ↦ inner ℝ p (tangentVector ((0 : ℝ) : Real.Angle))) '' + exposedEdge K.val ((0 : ℝ) : Real.Angle)) := by + rw [← inner_tangentVector_zero A, hAeq, inner_edgeVertices_snd_tangent] + rw [h1] + refine csInf_le ?_ ⟨B, hBline, hBtan⟩ + exact ((isCompact_exposedEdge K.val _).image + (continuous_id.inner continuous_const)).bddBelow + have hA1ge : 0 ≤ A 1 := by + simpa only [inner_normalVector_pi_div_two] using + K.inner_normalVector_pi_div_two_nonneg hAmem.1 + have hA1 : A 1 = 0 := le_antisymm hA1le hA1ge + -- the outer corner at the horizontal normal has unit height + have hy : inner ℝ + (rotatingHallwayParts (K.val : Set Point) ((0 : ℝ) : Real.Angle)).outerCorner + (tangentVector ((0 : ℝ) : Real.Angle)) = 1 := by + change inner ℝ (supportingPlacement (K.val : Set Point) ((0 : ℝ) : Real.Angle) + hallwayParts.outerCorner) _ = 1 + rw [inner_supportingPlacement_tangentVector, Real.Angle.coe_zero, zero_add, + K.property.2.2.2.1] + simp [hallwayParts] + simp only [tangentArmLengths, capVertices, inner_sub_left, hy, ← hAdef, + inner_tangentVector_zero, hA1, sub_zero] + +/-- Both arm length functions of a nondegenerate right-angle cap are nonnegative. -/ +theorem nondegenerateCapData_arm_nonneg (K : RightAngleCapSpace) + (hD : ∃ r s, HasCapDensities K r s) (t : Set.Icc (0 : ℝ) (Real.pi / 2)) : + 0 ≤ (nondegenerateCapData K hD).2.1 t ∧ 0 ≤ (nondegenerateCapData K hD).2.2 t := by + refine ⟨?_, tangentArm_fst_nonneg K⟩ + simp only [nondegenerateCapData] + split_ifs + · exact (tangentArmLengths_right_nonneg K t).2 + · exact (tangentArmLengths_right_nonneg K t).1 + +/-- Absolute continuity and the almost everywhere derivative of a function `G` that agrees on +`[a, b]` with a function `F` which is a primitive of `w` on the half-open interval `[a, b)`. Only +continuity of `F` at `b` is needed there, so no limit of the primitive has to be computed. -/ +private theorem absolutelyContinuousOnInterval_and_ae_hasDerivAt_of_eqOn_Ico + {a b : ℝ} (hab : a < b) {F G w : ℝ → ℝ} (hF : ContinuousOn F (Set.Icc a b)) + (hw : IntervalIntegrable w volume a b) + (hFw : ∀ t ∈ Set.Ico a b, F t = F a + ∫ y in a..t, w y) + (hGF : Set.EqOn G F (Set.Icc a b)) : + AbsolutelyContinuousOnInterval G a b ∧ + ∀ᵐ t ∂volume.restrict (Set.Ioo a b), HasDerivAt G (w t) t := by + set Φ : ℝ → ℝ := fun x ↦ F a + ∫ y in a..x, w y + have hΦAC : AbsolutelyContinuousOnInterval Φ a b := + ((LipschitzWith.const (F a)).lipschitzOnWith.absolutelyContinuousOnInterval).add + (hw.absolutelyContinuousOnInterval_intervalIntegral (c := a) (by simp [hab.le])) + have hΦcont : ContinuousOn Φ (Set.Icc a b) := by + simpa only [Set.uIcc_of_le hab.le] using hΦAC.continuousOn + have heq : Set.EqOn G Φ (Set.Icc a b) := by + refine hGF.trans (Set.EqOn.of_subset_closure (fun x hx ↦ hFw x hx) hF hΦcont + Set.Ico_subset_Icc_self ?_) + rw [closure_Ico hab.ne] + refine ⟨hΦAC.congr fun x hx ↦ + (heq (by simpa only [Set.uIcc_of_le hab.le] using hx)).symm, ?_⟩ + refine (ae_restrict_iff' measurableSet_Ioo).2 ?_ + filter_upwards [hw.ae_hasDerivAt_integral] with x hx hxo + have hxu : x ∈ Set.uIcc a b := by + simpa only [Set.uIcc_of_le hab.le] using ⟨hxo.1.le, hxo.2.le⟩ + refine ((hx hxu a (by simp [hab.le])).const_add (F a)).congr_of_eventuallyEq ?_ + filter_upwards [isOpen_Ioo.mem_nhds hxo] with y hyo + exact heq ⟨hyo.1.le, hyo.2.le⟩ + +/-- The differentiation identity for the positive arm length, restricted to an interval `(0, t]` +with `t < π / 2`: the positive arm length increases by the integral of the positive tangent arm +length minus the surface measure of the arc of normal directions traversed. Restricting to +`t < π / 2` keeps the possibly nonzero top-face atom of the surface measure out of the +identity. -/ +private theorem positiveArm_sub_eq_integral_sub_surface (K : RightAngleCapSpace) {t : ℝ} + (ht : t ∈ Set.Ico (0 : ℝ) (Real.pi / 2)) : + (tangentArmLengths K t).1.1 - (tangentArmLengths K 0).1.1 = + (∫ u in Set.Ioc (0 : ℝ) t, (tangentArmLengths K u).2.1) - + (surfaceAreaMeasure K.val + ((fun u : ℝ ↦ (u : Real.Angle)) '' Set.Ioc (0 : ℝ) t)).toReal := by + have hle : (0 : ℝ) ≤ Real.pi / 2 := by positivity + have hmem0 : (0 : ℝ) ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨le_rfl, hle⟩ + have htmem : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨ht.1, ht.2.le⟩ + obtain ⟨F, hF, hinc⟩ := positiveArm_stieltjes_surface K + have hzx : (⟨0, hmem0⟩ : Set.Icc (0 : ℝ) (Real.pi / 2)) ≤ ⟨t, htmem⟩ := + Subtype.mk_le_mk.mpr ht.1 + have himg : (fun u : Set.Icc (0 : ℝ) (Real.pi / 2) ↦ (u : ℝ)) '' + Set.Ioc (⟨0, hmem0⟩ : Set.Icc (0 : ℝ) (Real.pi / 2)) ⟨t, htmem⟩ = + Set.Ioc (0 : ℝ) t := by + apply Set.eq_of_subset_of_subset + · rintro y ⟨u, hu, rfl⟩ + exact ⟨hu.1, hu.2⟩ + · intro y hy + exact ⟨⟨y, ⟨hy.1.le, hy.2.trans ht.2.le⟩⟩, ⟨hy.1, hy.2⟩, rfl⟩ + have himg2 : (fun u : Set.Icc (0 : ℝ) (Real.pi / 2) ↦ ((u : ℝ) : Real.Angle)) '' + Set.Ioc (⟨0, hmem0⟩ : Set.Icc (0 : ℝ) (Real.pi / 2)) ⟨t, htmem⟩ = + (fun y : ℝ ↦ (y : Real.Angle)) '' Set.Ioc (0 : ℝ) t := by + rw [← himg, Set.image_image] + have hEpos : ∀ y ∈ Set.Ioc (⟨0, hmem0⟩ : Set.Icc (0 : ℝ) (Real.pi / 2)) ⟨t, htmem⟩, + 0 < (y : ℝ) := fun y hy ↦ hy.1 + have h := hinc _ measurableSet_Ioc hEpos + rw [intervalStieltjesMeasure_Ioc F _ _ hzx, himg, himg2, hF, hF] at h + push_cast at h ⊢ + linarith [h] + +theorem balancedMaximumCap_arm_regularity (K : RightAngleCapSpace) + (hK : IsBalancedMaximumCap K) : + ∃ hD : ∃ r s, HasCapDensities K r s, + AbsolutelyContinuousOnInterval + (extendIntervalScalar (nondegenerateCapData K hD).2.1) 0 (Real.pi / 2) ∧ + ∀ᵐ t ∂volume.restrict (Set.Ioo (0 : ℝ) (Real.pi / 2)), + magicFunctions.2 + (Real.toNNReal (extendIntervalScalar (nondegenerateCapData K hD).2.2 t)) ≤ + deriv (extendIntervalScalar (nondegenerateCapData K hD).2.1) t := by + have hTpos : (0 : ℝ) < Real.pi / 2 := by positivity + have hle : (0 : ℝ) ≤ Real.pi / 2 := hTpos.le + obtain ⟨rd, sd, hrs, -⟩ := balancedMaximumCap_hasDensities K hK + have hD : ∃ r s, HasCapDensities K r s := ⟨rd, sd, hrs⟩ + refine ⟨hD, ?_⟩ + obtain ⟨-, -, hFcont, hGcont, -, -, -⟩ := nondegenerateCap_continuity K hD + -- the continuous representatives of `f_K` and `g_K`, obtained by clamping the parameter + set fc : ℝ → ℝ := + fun t ↦ (nondegenerateCapData K hD).2.1 (Set.projIcc 0 (Real.pi / 2) hle t) with hfcdef + set gc : ℝ → ℝ := + fun t ↦ (nondegenerateCapData K hD).2.2 (Set.projIcc 0 (Real.pi / 2) hle t) with hgcdef + have hfccont : Continuous fc := hFcont.comp continuous_projIcc + have hgccont : Continuous gc := hGcont.comp continuous_projIcc + have hext_f : Set.EqOn (extendIntervalScalar (nondegenerateCapData K hD).2.1) fc + (Set.Icc 0 (Real.pi / 2)) := by + intro x hx + rw [extendIntervalScalar_of_mem _ hx, hfcdef] + simp only [Set.projIcc_of_mem hle hx] + have hext_g : ∀ x ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + extendIntervalScalar (nondegenerateCapData K hD).2.2 x = gc x := by + intro x hx + rw [extendIntervalScalar_of_mem _ hx, hgcdef] + simp only [Set.projIcc_of_mem hle hx] + -- on `[0, π / 2)` the arm length function is the positive arm length `f⁺_K` + have hfcval : ∀ x ∈ Set.Ico (0 : ℝ) (Real.pi / 2), fc x = (tangentArmLengths K x).1.1 := by + intro x hx + rw [hfcdef] + simp only [Set.projIcc_of_mem hle (Set.Ico_subset_Icc_self hx), nondegenerateCapData, + ite_eq_right (ne_of_lt hx.2)] + have hgcval : ∀ x ∈ Set.Icc (0 : ℝ) (Real.pi / 2), gc x = (tangentArmLengths K x).2.1 := by + intro x hx + rw [hgcdef] + simp only [Set.projIcc_of_mem hle hx] + rfl + have hgcnonneg : ∀ x, 0 ≤ gc x := fun x ↦ by + rw [hgcdef] + exact tangentArm_fst_nonneg K + -- the density of the surface measure on the first arc, bounded by `k₀ ∘ g_K` + obtain ⟨ρ, hρint, hρle, hρeq⟩ := exists_capDensity_right_le_magicDensity K hK + set w : ℝ → ℝ := fun t ↦ gc t - ρ t + have hwint : IntervalIntegrable w volume 0 (Real.pi / 2) := + (intervalIntegrable_iff_integrableOn_Icc_of_le hle).2 + ((hgccont.continuousOn.integrableOn_Icc).sub hρint) + -- the integral representation of the arm length function on `[0, π / 2)` + have hrepr : ∀ t ∈ Set.Ico (0 : ℝ) (Real.pi / 2), + fc t = fc 0 + ∫ y in (0 : ℝ)..t, w y := by + intro t ht + have hIocsub : Set.Ioc (0 : ℝ) t ⊆ Set.Ico 0 (Real.pi / 2) := + fun y hy ↦ ⟨hy.1.le, lt_of_le_of_lt hy.2 ht.2⟩ + have hIccsub : Set.Ioc (0 : ℝ) t ⊆ Set.Icc 0 (Real.pi / 2) := + hIocsub.trans Set.Ico_subset_Icc_self + have hsplit : (∫ y in Set.Ioc (0 : ℝ) t, w y) = + (∫ u in Set.Ioc (0 : ℝ) t, gc u) - ∫ y in Set.Ioc (0 : ℝ) t, ρ y := + integral_sub (hgccont.continuousOn.integrableOn_Icc.mono_set hIccsub) + (hρint.mono_set hIccsub) + have harm : (∫ u in Set.Ioc (0 : ℝ) t, gc u) = + ∫ u in Set.Ioc (0 : ℝ) t, (tangentArmLengths K u).2.1 := + setIntegral_congr_fun measurableSet_Ioc fun u hu ↦ hgcval u (hIccsub hu) + rw [intervalIntegral.integral_of_le ht.1, hsplit, harm, + ← hρeq _ measurableSet_Ioc hIocsub, hfcval t ht, hfcval 0 ⟨le_rfl, hTpos⟩] + linarith [positiveArm_sub_eq_integral_sub_surface K ht] + -- absolute continuity on `[0, π / 2]` and the almost everywhere derivative on `(0, π / 2)` + obtain ⟨hAC, hderiv⟩ := absolutelyContinuousOnInterval_and_ae_hasDerivAt_of_eqOn_Ico + hTpos hfccont.continuousOn hwint hrepr hext_f + refine ⟨hAC, ?_⟩ + have hρIoo : ∀ᵐ t ∂volume.restrict (Set.Ioo (0 : ℝ) (Real.pi / 2)), + 0 ≤ ρ t ∧ ρ t ≤ magicDensity (tangentArmLengths K t).2.1 := + ae_restrict_of_ae_restrict_of_subset Set.Ioo_subset_Icc_self hρle + filter_upwards [hderiv, hρIoo, ae_restrict_mem measurableSet_Ioo] with t h1 h2 h3 + have h3' : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := Set.Ioo_subset_Icc_self h3 + rw [h1.deriv, hext_g t h3'] + have hval : magicFunctions.2 (Real.toNNReal (gc t)) = gc t - magicDensity (gc t) := by + simp only [magicDensity, magicFunctions, Real.coe_toNNReal _ (hgcnonneg t)] + have hw : w t = gc t - ρ t := rfl + rw [hval, hw, hgcval t h3'] + linarith [h2.2] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Bounds / Lower / Sequence +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The nonnegative-real version of the continuous lower-bound profile. -/ +def nonnegativeLowerBoundProfile (c : Set.Icc (0 : ℝ) 1) : + C(Set.Icc (0 : ℝ) (Real.pi / 2), NNReal) where + toFun x := Real.toNNReal (lowerBoundProfile c x) + continuous_toFun := continuous_real_toNNReal.comp (lowerBoundProfile c).continuous + +theorem armIntegralOperator_monotone + (f g : C(Set.Icc (0 : ℝ) (Real.pi / 2), NNReal)) + (hfg : ∀ x, f x ≤ g x) : + ∀ x, armIntegralOperator f x ≤ armIntegralOperator g x := by + have hc (k : C(Set.Icc (0 : ℝ) (Real.pi / 2), NNReal)) : + Continuous (fun u : ℝ ↦ magicFunctions.2 + (k (Set.projIcc 0 (Real.pi / 2) (by positivity) (Real.pi / 2 - u)))) := by + unfold magicFunctions + fun_prop + intro x + change (1 : ℝ) + _ ≤ 1 + _ + apply add_le_add le_rfl + exact intervalIntegral.integral_mono x.property.1 + ((hc f).intervalIntegrable _ _) ((hc g).intervalIntegrable _ _) + (fun u ↦ magicFunctions_snd_monotone (hfg _)) + +private theorem magicFunction_eq_affine_of_mem_Icc (y : ℝ) (hy0 : 0 ≤ y) (hy1 : y ≤ 1) : + magicFunctions.2 (Real.toNNReal y) = 3 / 2 * y - 1 := by + simp only [magicFunctions, Real.toNNReal_of_nonneg hy0, NNReal.coe_mk, abs_of_nonpos (by + linarith : y - 1 ≤ 0), neg_sub] + rw [max_eq_right (by linarith)] + ring + +private theorem armIntegralOperator_nonnegativeLowerBoundProfile_eq + (c : ℝ) (hc : 0 ≤ c) (hc' : c ≤ 2 / 3) + (x : Set.Icc (0 : ℝ) (Real.pi / 2)) : + armIntegralOperator (nonnegativeLowerBoundProfile ⟨c, ⟨hc, by linarith⟩⟩) x = + 1 - (x : ℝ) + (3 / 2) * + (∫ u in (0 : ℝ)..(x : ℝ), max (1 - (Real.pi / 2 - u)) c) := by + have hintegrand (u : ℝ) (hu : u ∈ Set.uIcc (0 : ℝ) (x : ℝ)) : + magicFunctions.2 + ((nonnegativeLowerBoundProfile ⟨c, hc, by linarith⟩) + (Set.projIcc 0 (Real.pi / 2) (by positivity) (Real.pi / 2 - u))) = + 3 / 2 * max (1 - (Real.pi / 2 - u)) c - 1 := by + rw [Set.uIcc_of_le x.property.1] at hu + have hu0 : 0 ≤ u := hu.1 + have huT : Real.pi / 2 - u ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := by + constructor <;> linarith [hu.2, x.property.2, Real.pi_pos] + rw [Set.projIcc_of_mem (by positivity) huT] + apply magicFunction_eq_affine_of_mem_Icc + · exact le_max_of_le_right hc + · apply max_le + · linarith [huT.1] + · linarith + change + (1 + ∫ u in (0 : ℝ)..(x : ℝ), + magicFunctions.2 + ((nonnegativeLowerBoundProfile ⟨c, ⟨hc, by linarith⟩⟩) + (Set.projIcc 0 (Real.pi / 2) (by positivity) (Real.pi / 2 - u)))) = _ + have hcont : Continuous (fun u : ℝ ↦ max (1 - (Real.pi / 2 - u)) c) := by + fun_prop + rw [intervalIntegral.integral_congr (fun u hu ↦ hintegrand u hu)] + have hsplit : + (∫ u in (0 : ℝ)..(x : ℝ), 3 / 2 * max (1 - (Real.pi / 2 - u)) c - 1) = + (3 / 2) * (∫ u in (0 : ℝ)..(x : ℝ), max (1 - (Real.pi / 2 - u)) c) - (x : ℝ) := by + calc + _ = (∫ u in (0 : ℝ)..(x : ℝ), 3 / 2 * max (1 - (Real.pi / 2 - u)) c) - + ∫ u in (0 : ℝ)..(x : ℝ), (1 : ℝ) := by + rw [intervalIntegral.integral_sub ((hcont.const_mul (3 / 2)).intervalIntegrable _ _) + intervalIntegrable_const] + _ = _ := by + nth_rewrite 1 [intervalIntegral.integral_const_mul] + nth_rewrite 1 [intervalIntegral.integral_const] + simp only [smul_eq_mul, sub_zero] + ring + rw [hsplit] + ring + +private theorem split_le_integral_lowerBoundProfile (c : ℝ) (hc : 0 ≤ c) + (x : Set.Icc (0 : ℝ) (Real.pi / 2)) (hsx : Real.pi / 2 - 1 + c ≤ (x : ℝ)) : + c * (Real.pi / 2 - 1 + c) + (((x : ℝ) + 1 - Real.pi / 2) ^ 2 - c ^ 2) / 2 ≤ + ∫ u in (0 : ℝ)..(x : ℝ), max (1 - (Real.pi / 2 - u)) c := by + have hcont : Continuous (fun u : ℝ ↦ max (1 - (Real.pi / 2 - u)) c) := by + fun_prop + have hlin (s t : ℝ) : + (∫ u in s..t, 1 - Real.pi / 2 + u) = + ((t + 1 - Real.pi / 2) ^ 2 - (s + 1 - Real.pi / 2) ^ 2) / 2 := by + rw [intervalIntegral.integral_add (f := fun _ : ℝ ↦ 1 - Real.pi / 2) + (g := fun u : ℝ ↦ u) + (a := s) (b := t) (intervalIntegrable_const) + (continuous_id.intervalIntegrable _ _)] + rw [intervalIntegral.integral_const, integral_id] + ring + let s : ℝ := Real.pi / 2 - 1 + c + have hq : Continuous (fun u : ℝ ↦ max (1 - (Real.pi / 2 - u)) c) := hcont + have hfirst := intervalIntegral.integral_mono (μ := MeasureTheory.volume) + (f := fun _ : ℝ ↦ c) (g := fun u : ℝ ↦ max (1 - (Real.pi / 2 - u)) c) + (a := (0 : ℝ)) (b := s) (by dsimp [s]; linarith [Real.pi_gt_three]) + (intervalIntegrable_const (μ := MeasureTheory.volume)) (hq.intervalIntegrable _ _) + (fun u ↦ (le_max_right _ _ : c ≤ max (1 - (Real.pi / 2 - u)) c)) + have hcontlin : Continuous (fun u : ℝ ↦ 1 - Real.pi / 2 + u) := by fun_prop + have hsecond := intervalIntegral.integral_mono (μ := MeasureTheory.volume) + (f := fun u : ℝ ↦ 1 - Real.pi / 2 + u) + (g := fun u : ℝ ↦ max (1 - (Real.pi / 2 - u)) c) (a := s) (b := (x : ℝ)) hsx + (hcontlin.intervalIntegrable _ _) (hq.intervalIntegrable _ _) + (fun u ↦ by + change 1 - Real.pi / 2 + u ≤ max (1 - (Real.pi / 2 - u)) c + have hu : 1 - Real.pi / 2 + u = 1 - (Real.pi / 2 - u) := by ring + exact hu.le.trans (le_max_left _ _)) + have hadd := intervalIntegral.integral_add_adjacent_intervals (μ := MeasureTheory.volume) + (hq.intervalIntegrable (0 : ℝ) s) (hq.intervalIntegrable s (x : ℝ)) + rw [hlin s (x : ℝ)] at hsecond + have hfirst' : c * s ≤ ∫ u in (0 : ℝ)..s, + max (1 - (Real.pi / 2 - u)) c := by + convert hfirst using 1 + simp [intervalIntegral.integral_const, smul_eq_mul, mul_comm] + have hsum : c * s + ∫ u in s..(x : ℝ), max (1 - (Real.pi / 2 - u)) c ≤ + ∫ u in (0 : ℝ)..(x : ℝ), max (1 - (Real.pi / 2 - u)) c := by + calc + _ ≤ (∫ u in (0 : ℝ)..s, max (1 - (Real.pi / 2 - u)) c) + + ∫ u in s..(x : ℝ), max (1 - (Real.pi / 2 - u)) c := + by + simpa [add_comm, add_left_comm, add_assoc] using + add_le_add_right hfirst' (∫ u in s..(x : ℝ), + max (1 - (Real.pi / 2 - u)) c) + _ = _ := hadd + calc + c * s + (((x : ℝ) + 1 - Real.pi / 2) ^ 2 - c ^ 2) / 2 ≤ + c * s + ∫ u in s..(x : ℝ), max (1 - (Real.pi / 2 - u)) c := by + dsimp [s] at * + nlinarith [hsecond] + _ ≤ _ := hsum + +theorem armIntegralOperator_profile_step (c : ℝ) (hc : 0 ≤ c) (hc' : c ≤ 2 / 3) : + ∀ x, lowerBoundProfile ⟨c + 1 / 12, by constructor <;> linarith⟩ x ≤ + armIntegralOperator + (nonnegativeLowerBoundProfile ⟨c, hc, by linarith⟩) x := by + intro x + rw [armIntegralOperator_nonnegativeLowerBoundProfile_eq c hc hc' x] + simp only [lowerBoundProfile, ContinuousMap.coe_mk] + have hcont : Continuous (fun u : ℝ ↦ max (1 - (Real.pi / 2 - u)) c) := by + fun_prop + have hI : c * (x : ℝ) ≤ + ∫ u in (0 : ℝ)..(x : ℝ), max (1 - (Real.pi / 2 - u)) c := by + have h := intervalIntegral.integral_mono (μ := MeasureTheory.volume) + (f := fun _ : ℝ ↦ c) (g := fun u : ℝ ↦ max (1 - (Real.pi / 2 - u)) c) x.property.1 + (intervalIntegrable_const (μ := MeasureTheory.volume)) (hcont.intervalIntegrable _ _) + (fun u ↦ (le_max_right _ _ : c ≤ max (1 - (Real.pi / 2 - u)) c)) + convert h using 1 + simp [intervalIntegral.integral_const, smul_eq_mul, mul_comm] + let s : ℝ := Real.pi / 2 - 1 + c + apply max_le + · have hnonneg : 0 ≤ ∫ u in (0 : ℝ)..(x : ℝ), max (1 - (Real.pi / 2 - u)) c := by + exact intervalIntegral.integral_nonneg x.property.1 + (fun _ _ ↦ le_max_of_le_right hc) + linarith + · have hpi : Real.pi ≤ 22 / 7 := by linarith [Real.pi_lt_d20] + have hmul : 0 ≤ (22 / 7 - Real.pi) * (2 / 3 - c) := + mul_nonneg (sub_nonneg.mpr hpi) (sub_nonneg.mpr hc') + by_cases hsx : s ≤ (x : ℝ) + · have hs := split_le_integral_lowerBoundProfile c hc x hsx + nlinarith [sq_nonneg ((x : ℝ) - (Real.pi / 2 - 1 / 3)), + sq_nonneg (c - 2 / 21), hmul] + · have hxs : (x : ℝ) ≤ s := le_of_not_ge hsx + have hprod : 0 ≤ (s - (x : ℝ)) * (1 - 3 / 2 * c) := + mul_nonneg (sub_nonneg.mpr hxs) (by linarith) + dsimp [s] at hxs hprod ⊢ + nlinarith [hI, sq_nonneg (c - 7 / 6 + Real.pi / 4), hprod, hmul] + +private theorem armIntegralOperator_le_sequence_succ (n : ℕ) + (x : Set.Icc (0 : ℝ) (Real.pi / 2)) : + armIntegralOperator (armLowerBoundSequence n) x ≤ + (armLowerBoundSequence (n + 1) x : ℝ) := by + exact (Real.le_coe_toNNReal _).trans (NNReal.coe_le_coe.mpr (le_max_right _ _)) + +private theorem lowerBoundProfile_zero_le_one + (x : Set.Icc (0 : ℝ) (Real.pi / 2)) : + lowerBoundProfile ⟨0, by constructor <;> norm_num⟩ x ≤ + (armLowerBoundSequence 1 x : ℝ) := by + change max (1 - (x : ℝ)) 0 ≤ _ + simp only [armLowerBoundSequence, ContinuousMap.coe_mk, NNReal.coe_max, + NNReal.coe_zero] + simp only [armIntegralOperator, magicFunctions, ContinuousMap.coe_mk, NNReal.coe_zero, zero_sub, + abs_neg, abs_one, add_self_div_two, max_self, intervalIntegral.integral_neg, + intervalIntegral.integral_const, sub_zero, smul_eq_mul, mul_one, + Real.coe_toNNReal', le_max_iff, le_add_neg_iff_add_le, zero_add, Std.le_refl, or_true, + sup_of_le_right, sup_le_iff, tsub_le_iff_right, and_true] + by_cases hx : 1 ≤ (x : ℝ) + · exact Or.inr hx + · left + rw [max_eq_left (by linarith)] + linarith + +private theorem lowerBoundProfile_le_sequence_succ (n : ℕ) (hn : n ≤ 9) + (x : Set.Icc (0 : ℝ) (Real.pi / 2)) : + lowerBoundProfile ⟨(n : ℝ) / 12, by + have hnR : (n : ℝ) ≤ 9 := by exact_mod_cast hn + constructor + · positivity + · linarith⟩ x ≤ + (armLowerBoundSequence (n + 1) x : ℝ) := by + induction n generalizing x with + | zero => simpa [lowerBoundProfile] using lowerBoundProfile_zero_le_one x + | succ n ih => + have hn' : n ≤ 9 := by omega + have hn8 : n ≤ 8 := by omega + have hn8r : (n : ℝ) ≤ 8 := by exact_mod_cast hn8 + have hprof := armIntegralOperator_profile_step ((n : ℝ) / 12) (by positivity) + (by nlinarith) + have hmon := armIntegralOperator_monotone + (nonnegativeLowerBoundProfile ⟨(n : ℝ) / 12, by + have hnR : (n : ℝ) ≤ 9 := by exact_mod_cast hn' + constructor <;> nlinarith [Nat.cast_nonneg (α := ℝ) n]⟩) + (armLowerBoundSequence (n + 1)) (by + intro y + exact Real.toNNReal_le_iff_le_coe.mpr (ih hn' y)) + have hop : lowerBoundProfile ⟨(n + 1) / 12, by + have hnR : ((n + 1 : ℕ) : ℝ) ≤ 9 := by exact_mod_cast hn + constructor <;> nlinarith [Nat.cast_nonneg (α := ℝ) n]⟩ x ≤ + armIntegralOperator (armLowerBoundSequence (n + 1)) x := by + have heq : (n : ℝ) / 12 + 1 / 12 = (n + 1) / 12 := by ring + simpa only [heq] using (hprof x).trans (hmon x) + simpa only [Nat.cast_add, Nat.cast_one] using + hop.trans (armIntegralOperator_le_sequence_succ (n + 1) x) + +theorem armLowerBoundSequence_threshold : + ∀ x : Set.Icc (0 : ℝ) (Real.pi / 2), 0 < (x : ℝ) → + 1 < (armLowerBoundSequence 11 x : ℝ) := by + intro x hx + let f : C(Set.Icc (0 : ℝ) (Real.pi / 2), NNReal) := ⟨fun _ ↦ 3 / 4, continuous_const⟩ + have hbound (y : Set.Icc (0 : ℝ) (Real.pi / 2)) : f y ≤ armLowerBoundSequence 10 y := by + have h := lowerBoundProfile_le_sequence_succ 9 (by omega) y + have hreal : (3 / 4 : ℝ) ≤ (armLowerBoundSequence 10 y : ℝ) := by + norm_num [lowerBoundProfile] at h + exact h.2 + exact_mod_cast hreal + have hmon := armIntegralOperator_monotone f (armLowerBoundSequence 10) hbound x + have hconst : armIntegralOperator f x = 1 + (x : ℝ) / 8 := by + norm_num [armIntegralOperator, f, magicFunctions, intervalIntegral.integral_const] + rw [hconst] at hmon + have hstep := armIntegralOperator_le_sequence_succ 10 x + linarith + +/-- The mirror reflection turns the right arm length function of a nondegenerate right-angle cap +into the reflected left arm length function of the original cap. At the two endpoints the +prescribed one-sided conventions match: `f⁺` of the mirror at `π / 2 - t = 0` is the terminal +`g⁻`, and `f⁻` of the mirror at `π / 2` is the prescribed `g⁺` at `0`. -/ +private theorem nondegenerateCapData_arm_mirror (K P : RightAngleCapSpace) + (hP : (P.val : Set Point) = mirrorReflection (Real.pi / 2) '' (K.val : Set Point)) + (hDK : ∃ r s, HasCapDensities K r s) (hDP : ∃ r s, HasCapDensities P r s) + (t : ℝ) (ht : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) : + (nondegenerateCapData P hDP).2.1 + ⟨Real.pi / 2 - t, ⟨by linarith [ht.2], by linarith [ht.1]⟩⟩ = + (nondegenerateCapData K hDK).2.2 ⟨t, ht⟩ := by + have hT : Real.pi / 2 - t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨by linarith [ht.2], by linarith [ht.1]⟩ + obtain ⟨h1, h2, -, -⟩ := tangentArms_mirror K P hP (Real.pi / 2 - t) hT + rw [show Real.pi / 2 - (Real.pi / 2 - t) = t by ring] at h1 h2 + simp only [nondegenerateCapData] + split_ifs with hcase + · exact h2 + · have htpos : 0 < t := lt_of_le_of_ne ht.1 fun h ↦ hcase (by rw [← h]; ring) + rw [h1] + exact ((capDensities_contact_eq K hDK).2 t ⟨htpos, ht.2⟩).2.symm + +/-- The integral operator is a lower bound for the right arm length function of a balanced +maximum cap, for every continuous profile `f` with `f(π / 2 - u) ≤ g_K(u)`. Absolute continuity +of `f_K` on `[0, t]` turns it into the integral of its derivative, the differential inequality +`f_K' ≥ m₀ ∘ g_K` bounds that derivative from below almost everywhere, and `m₀` is nondecreasing; +the initial value `f_K(0) = 1` supplies the constant term of the operator. -/ +private theorem armIntegralOperator_le_nondegenerateCapData_right (K : RightAngleCapSpace) + (hK : IsBalancedMaximumCap K) (hD : ∃ r s, HasCapDensities K r s) + (f : C(Set.Icc (0 : ℝ) (Real.pi / 2), NNReal)) + (hf : ∀ (u : ℝ) (hu : u ∈ Set.Icc (0 : ℝ) (Real.pi / 2)), + (f ⟨Real.pi / 2 - u, ⟨by linarith [hu.2], by linarith [hu.1]⟩⟩ : ℝ) ≤ + (nondegenerateCapData K hD).2.2 ⟨u, hu⟩) + (t : ℝ) (ht : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) : + armIntegralOperator f ⟨t, ht⟩ ≤ (nondegenerateCapData K hD).2.1 ⟨t, ht⟩ := by + have hTle : (0 : ℝ) ≤ Real.pi / 2 := by positivity + obtain ⟨hD', hAC, hderiv⟩ := balancedMaximumCap_arm_regularity K hK + -- proof irrelevance retypes the regularity statement for the witness `hD` + have hACf : AbsolutelyContinuousOnInterval + (extendIntervalScalar (nondegenerateCapData K hD).2.1) 0 (Real.pi / 2) := hAC + have hderivf : ∀ᵐ u ∂MeasureTheory.volume.restrict (Set.Ioo (0 : ℝ) (Real.pi / 2)), + magicFunctions.2 + (Real.toNNReal (extendIntervalScalar (nondegenerateCapData K hD).2.2 u)) ≤ + deriv (extendIntervalScalar (nondegenerateCapData K hD).2.1) u := hderiv + have hACt := hACf.mono (by + rw [Set.uIcc_of_le ht.1, Set.uIcc_of_le hTle] + exact Set.Icc_subset_Icc le_rfl ht.2) + have hFTC := hACt.integral_deriv_eq_sub + have hF0 : extendIntervalScalar (nondegenerateCapData K hD).2.1 0 = 1 := by + rw [extendIntervalScalar_of_mem _ ⟨le_rfl, hTle⟩] + simp only [nondegenerateCapData, + ite_eq_right (ne_of_lt (show (0 : ℝ) < Real.pi / 2 by positivity))] + exact tangentArmLengths_right_zero_eq_one K hD + have hFt : extendIntervalScalar (nondegenerateCapData K hD).2.1 t = + (nondegenerateCapData K hD).2.1 ⟨t, ht⟩ := extendIntervalScalar_of_mem _ ht + have hcont : Continuous (fun u : ℝ ↦ magicFunctions.2 + (f (Set.projIcc 0 (Real.pi / 2) hTle (Real.pi / 2 - u)))) := by + unfold magicFunctions + fun_prop + -- the integrand of the operator is dominated by the derivative almost everywhere + have hae : (fun u : ℝ ↦ magicFunctions.2 + (f (Set.projIcc 0 (Real.pi / 2) hTle (Real.pi / 2 - u)))) ≤ᵐ[ + MeasureTheory.volume.restrict (Set.Icc (0 : ℝ) t)] + deriv (extendIntervalScalar (nondegenerateCapData K hD).2.1) := by + rw [← MeasureTheory.restrict_Ioo_eq_restrict_Icc] + filter_upwards [MeasureTheory.ae_restrict_of_ae_restrict_of_subset + (Set.Ioo_subset_Ioo le_rfl ht.2) hderivf, + MeasureTheory.ae_restrict_mem measurableSet_Ioo] with u h1 h2 + refine le_trans ?_ h1 + have humem : u ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨h2.1.le, h2.2.le.trans ht.2⟩ + have hTu : Real.pi / 2 - u ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨by linarith [humem.2], by linarith [humem.1]⟩ + apply magicFunctions_snd_monotone + rw [Set.projIcc_of_mem hTle hTu, extendIntervalScalar_of_mem _ humem, + Real.le_toNNReal_iff_coe_le (nondegenerateCapData_arm_nonneg K hD ⟨u, humem⟩).2] + exact hf u humem + have hmono := intervalIntegral.integral_mono_ae_restrict ht.1 + (hcont.intervalIntegrable _ _) hACt.intervalIntegrable_deriv hae + have hval : armIntegralOperator f ⟨t, ht⟩ = + 1 + ∫ u in (0 : ℝ)..t, magicFunctions.2 + (f (Set.projIcc 0 (Real.pi / 2) hTle (Real.pi / 2 - u))) := rfl + rw [hval, ← hFt] + linarith [hFTC, hmono, hF0] + +/-- The simultaneous lower bound for the two arm length functions of a balanced maximum +right-angle cap. The induction on `n` quantifies over every balanced maximum cap, because the +bound for the left arm is obtained by applying the bound for the right arm to the mirror cap. -/ +private theorem armLowerBoundSequence_le_nondegenerateCapData (n : ℕ) : + ∀ (K : RightAngleCapSpace), IsBalancedMaximumCap K → + ∀ (hD : ∃ r s, HasCapDensities K r s) (t : ℝ) + (ht : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)), + (armLowerBoundSequence n ⟨t, ht⟩ : ℝ) ≤ + (nondegenerateCapData K hD).2.1 ⟨t, ht⟩ ∧ + (armLowerBoundSequence n + ⟨Real.pi / 2 - t, ⟨by linarith [ht.2], by linarith [ht.1]⟩⟩ : ℝ) ≤ + (nondegenerateCapData K hD).2.2 ⟨t, ht⟩ := by + induction n with + | zero => + intro K hK hD t ht + simpa only [armLowerBoundSequence, ContinuousMap.coe_mk, NNReal.coe_zero] using + nondegenerateCapData_arm_nonneg K hD ⟨t, ht⟩ + | succ n ih => + -- the bound for the right arm, proved for every balanced maximum cap at once + have hfirst : ∀ (K : RightAngleCapSpace), IsBalancedMaximumCap K → + ∀ (hD : ∃ r s, HasCapDensities K r s) (t : ℝ) + (ht : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)), + (armLowerBoundSequence (n + 1) ⟨t, ht⟩ : ℝ) ≤ + (nondegenerateCapData K hD).2.1 ⟨t, ht⟩ := by + intro K hK hD t ht + have hop := armIntegralOperator_le_nondegenerateCapData_right K hK hD + (armLowerBoundSequence n) (fun u hu ↦ (ih K hK hD u hu).2) t ht + simp only [armLowerBoundSequence, ContinuousMap.coe_mk, NNReal.coe_max, + Real.coe_toNNReal'] + exact max_le (ih K hK hD t ht).1 + (max_le hop (nondegenerateCapData_arm_nonneg K hD ⟨t, ht⟩).1) + intro K hK hD t ht + refine ⟨hfirst K hK hD t ht, ?_⟩ + obtain ⟨P, hP, hPbal⟩ := balancedMaximumCap_mirror K hK + obtain ⟨r, s, hrs, -⟩ := balancedMaximumCap_hasDensities P hPbal + have hT : Real.pi / 2 - t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨by linarith [ht.2], by linarith [ht.1]⟩ + rw [← nondegenerateCapData_arm_mirror K P hP hD ⟨r, s, hrs⟩ t ht] + exact hfirst P hPbal ⟨r, s, hrs⟩ (Real.pi / 2 - t) hT + +theorem balancedMaximumCap_sequence_bound (K : RightAngleCapSpace) + (hK : IsBalancedMaximumCap K) : + ∃ hD : ∃ r s, HasCapDensities K r s, + ∀ (n : ℕ) (t : Set.Icc (0 : ℝ) (Real.pi / 2)), + (armLowerBoundSequence n t : ℝ) ≤ (nondegenerateCapData K hD).2.1 t ∧ + (armLowerBoundSequence n + ⟨Real.pi / 2 - t, by constructor <;> linarith [t.property.1, t.property.2]⟩ : ℝ) ≤ + (nondegenerateCapData K hD).2.2 t := by + obtain ⟨r, s, hrs, -⟩ := balancedMaximumCap_hasDensities K hK + refine ⟨⟨r, s, hrs⟩, fun n t ↦ ?_⟩ + exact armLowerBoundSequence_le_nondegenerateCapData n K hK ⟨r, s, hrs⟩ t t.property + +theorem balancedMaximumCap_arm_gt_one (K : RightAngleCapSpace) + (hK : IsBalancedMaximumCap K) : + ∃ hD : ∃ r s, HasCapDensities K r s, + (∀ t : Set.Icc (0 : ℝ) (Real.pi / 2), 0 < (t : ℝ) → + 1 < (nondegenerateCapData K hD).2.1 t) ∧ + (∀ t : Set.Icc (0 : ℝ) (Real.pi / 2), (t : ℝ) < Real.pi / 2 → + 1 < (nondegenerateCapData K hD).2.2 t) := by + obtain ⟨hD, hbound⟩ := balancedMaximumCap_sequence_bound K hK + refine ⟨hD, fun t ht ↦ ?_, fun t ht ↦ ?_⟩ + · exact (armLowerBoundSequence_threshold t ht).trans_le (hbound 11 t).1 + · have hT : Real.pi / 2 - (t : ℝ) ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := by + constructor <;> linarith [t.property.1, t.property.2] + exact (armLowerBoundSequence_threshold ⟨Real.pi / 2 - (t : ℝ), hT⟩ + (by linarith)).trans_le (hbound 11 t).2 + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Cap.Injectivity`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The injectivity condition for balanced maximum caps + +Every balanced maximum cap of rotation angle `π / 2` satisfies the injectivity condition: its +surface measure has densities that are unique up to null sets, its inner corner is continuously +differentiable, and the two frame components of the corner velocity have strict signs on the open +rotation interval. + +The theorem lives downstream of `MovingSofa/Cap/Regularity.lean` because its inputs +`balancedMaximumCap_hasDensities` and `balancedMaximumCap_arm_gt_one` depend on that module. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem balancedMaximumCap_injectivity (K : RightAngleCapSpace) + (hK : IsBalancedMaximumCap K) : SatisfiesInjectivityCondition K := by + obtain ⟨hD, hf, hg⟩ := balancedMaximumCap_arm_gt_one K hK + obtain ⟨-, -, -, -, hC1, -, hderiv⟩ := nondegenerateCap_continuity K hD + refine ⟨balancedMaximumCap_hasDensities K hK, hC1, fun t ht ↦ ?_⟩ + have hmem : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨ht.1.le, ht.2.le⟩ + have hvn : inner ℝ (tangentVector (t : Real.Angle)) (normalVector (t : Real.Angle)) = 0 := by + rw [real_inner_comm]; exact inner_normalVector_tangentVector t + rw [(hderiv ⟨t, hmem⟩).1.derivWithin (uniqueDiffOn_Icc (by positivity) t hmem)] + refine ⟨?_, ?_⟩ + · have h := hf ⟨t, hmem⟩ ht.1 + simp only [inner_add_left, real_inner_smul_left, inner_normalVector_self, hvn, mul_one, + mul_zero, add_zero] + linarith + · have h := hg ⟨t, hmem⟩ ht.2 + simp only [inner_add_left, real_inner_smul_left, inner_normalVector_tangentVector, + inner_tangentVector_self, mul_one, mul_zero, zero_add] + linarith + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Gerver.Injectivity`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Gerver / Injectivity +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- On the rotation interval the inner corner of the cap of Gerver's sofa is the certified +direct Gerver path. The rotating-hallway coordinates of the inner corner are the cap's two +support values at `t` and `t + π / 2`, and `gerver_capSupport_identification` evaluates those +at the frame coordinates of the paper path. -/ +theorem capInnerCorner_eq_paperGerverPath (K : RightAngleCapSpace) + (hK : (K.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) + {t : ℝ} (ht : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) : + capInnerCorner K t = paperGerverPath t := by + obtain ⟨-, hGeq, -, -, hcapeq, -, hsup⟩ := gerver_capSupport_identification + -- The certified cap is the outer half-plane cap, so its support values are the paper ones. + have hKmem : (K.val : Set Point) ∈ + ({gerverOuterCap, gerverLiteralSofa} : Set (Set Point)) := by + refine Or.inl ?_ + rw [hK, hGeq, hcapeq] + have hangsum : (t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) = + ((Real.pi / 2 + t : ℝ) : Real.Angle) := by + rw [← Real.Angle.coe_add, add_comm] + rw [capInnerCorner, + (rotatingHallwayParts_formulas (K.val : Set Point) (t : Real.Angle)).2.1, hangsum, + (hsup _ hKmem t ht).1, (hsup _ hKmem t ht).2, add_sub_cancel_right, + add_sub_cancel_right, inner_normalVector_smul_add_inner_tangentVector_smul] + +/-- On the open rotation interval the inner-corner velocity of the cap of Gerver's sofa is the +velocity of the certified direct Gerver path. -/ +theorem derivWithin_capInnerCorner_eq_deriv_paperGerverPath (K : RightAngleCapSpace) + (hK : (K.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) + {t : ℝ} (ht : t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2)) : + derivWithin (capInnerCorner K) (Set.Icc 0 (Real.pi / 2)) t = deriv paperGerverPath t := by + have hcorner : ∀ s ∈ Set.Icc (0 : ℝ) (Real.pi / 2), capInnerCorner K s = paperGerverPath s := + fun _ hs ↦ capInnerCorner_eq_paperGerverPath K hK hs + rw [derivWithin_congr hcorner (hcorner t ⟨ht.1.le, ht.2.le⟩), + derivWithin_of_mem_nhds (Icc_mem_nhds ht.1 ht.2)] + +theorem paperGerverCap_injectivity : + ∃ K : RightAngleCapSpace, + (K.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2) ∧ + SatisfiesInjectivityCondition K := by + obtain ⟨K, hKset, r, s, hdens, -, -⟩ := gerver_surface_densities + have hcorner : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + capInnerCorner K t = paperGerverPath t := + fun _ ht ↦ capInnerCorner_eq_paperGerverPath K hKset ht + refine ⟨K, hKset, ⟨r, s, hdens, fun r' s' h' ↦ hdens.ae_eq h'⟩, + contDiff_paperGerverPath.contDiffOn.congr hcorner, fun t ht ↦ ?_⟩ + rw [derivWithin_capInnerCorner_eq_deriv_paperGerverPath K hKset ht] + exact ⟨(gerver_strict_velocity t ht).2.2.1, (gerver_strict_velocity t ht).2.2.2⟩ + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Cap.Special.Domain`. +* `Cap.Special.AreaVariation`. +* `Cap.Tail.Interpolation`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Special / Domain +-/ + +@[expose] public section + +noncomputable section + +open scoped unitInterval + +namespace MovingSofa + +/-- Choose the special cap representing a convex body combination, with a fallback to the +first cap. -/ +def specialCapCombination (t : I) (K L : SpecialCapSpace) : SpecialCapSpace := by + classical + exact if h : ∃ M : SpecialCapSpace, + M.val.val = convexBodyCombination t K.val.val L.val.val then h.choose else K + +theorem specialCap_isConvexDomain : + (∀ t K L, (specialCapCombination t K L).val.val = + convexBodyCombination t K.val.val L.val.val) ∧ + IsConvexDomain.{0, 0} specialCapCombination ∧ + (∀ K : RightAngleCapSpace, IsBalancedMaximumCap K → + ∃ L : SpecialCapSpace, L.val = K) ∧ + (∃ K : SpecialCapSpace, + (K.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) := by + -- ### The special class is closed under Minkowski interpolation + have hclosed : ∀ (t : I) (K L : SpecialCapSpace), ∃ M : SpecialCapSpace, + M.val.val = convexBodyCombination t K.val.val L.val.val := fun t K L ↦ + ⟨⟨⟨convexBodyCombination t K.val.val L.val.val, + isCap_convexBodyCombination t K.val L.val⟩, + satisfiesInjectivityCondition_of_eq_convexBodyCombination rfl K.property.1 L.property.1, + convexBody_area_superlevel _ _ K.property.2 L.property.2 t⟩, rfl⟩ + have h1 : ∀ (t : I) (K L : SpecialCapSpace), (specialCapCombination t K L).val.val = + convexBodyCombination t K.val.val L.val.val := by + intro t K L + have h := hclosed t K L + rw [specialCapCombination, dite_eq_left h] + exact h.choose_spec + -- ### The sofa area functional is bounded by the cap area + have hfunc : ∀ C : RightAngleCapSpace, + capAreaFunctional C ≤ ClassicalResults.area (C.val : Set Point) := by + intro C + have h : (0 : ℝ) ≤ ClassicalResults.area (capNiche C) := ENNReal.toReal_nonneg + simp only [capAreaFunctional] + linarith + -- ### Gerver's cap is a special cap + obtain ⟨KG, hKGset, hKGinj⟩ := paperGerverCap_injectivity + have hstd : IsStandardPosition paperGerverSofa (Real.pi / 2) := + gerver_capSupport_identification.2.1 ▸ gerver_capSupport_identification.2.2.1 + have hGfunc : capAreaFunctional KG = ClassicalResults.area paperGerverSofa := + capAreaFunctional_eq_sofaArea paperGerverSofa (Real.pi / 2) + ⟨paperGerverSofa, hstd, gerver_paperNiche_identification.2.2.1.symm⟩ KG hKGset + have hGbound : (11 : ℝ) / 5 ≤ capAreaFunctional KG := by + rw [hGfunc, ← gerver_canonical_paper_literal.1] + exact gerver_area_lower_bound.2 + have hGarea : (11 : ℝ) / 5 ≤ ClassicalResults.area (KG.val : Set Point) := + hGbound.trans (hfunc KG) + refine ⟨h1, ?_, ?_, ⟨⟨KG, hKGinj, hGarea⟩, hKGset⟩⟩ + -- ### The convex-domain structure restricts from the ambient body domain + · obtain ⟨V, e, hinj, -, hcomb⟩ := convexBody_isConvexDomain + refine ⟨V, fun K ↦ e K.val.val, ?_, ?_, fun t K L ↦ + (congrArg e (h1 t K L)).trans (hcomb t K.val.val L.val.val)⟩ + · intro K L h + exact Subtype.ext (Subtype.ext (hinj h)) + · rintro _ ⟨K, rfl⟩ _ ⟨L, rfl⟩ a b ha hb hab + have hb1 : b ≤ 1 := by linarith + refine ⟨specialCapCombination ⟨b, hb, hb1⟩ K L, ?_⟩ + have hba : 1 - b = a := by linarith + simpa only [hba] using (congrArg e (h1 ⟨b, hb, hb1⟩ K L)).trans + (hcomb ⟨b, hb, hb1⟩ K.val.val L.val.val) + -- ### Every balanced maximum cap is special + · intro K hK + refine ⟨⟨K, balancedMaximumCap_injectivity K hK, ?_⟩, rfl⟩ + exact hGbound.trans ((balancedMaximumCap_maximizes_area K hK KG).trans (hfunc K)) + +/-- The extreme face vertices and the intersections of supporting lines of a special cap are +convex-linear along `specialCapCombination`: the underlying bodies interpolate, and both quantities +are convex-linear in the body. -/ +theorem specialCap_maps_linear (t : I) (K L : SpecialCapSpace) : + (∀ a : Real.Angle, + (edgeVertices (specialCapCombination t K L).val.val a).1 = + (1 - (t : ℝ)) • (edgeVertices K.val.val a).1 + + (t : ℝ) • (edgeVertices L.val.val a).1 ∧ + (edgeVertices (specialCapCombination t K L).val.val a).2 = + (1 - (t : ℝ)) • (edgeVertices K.val.val a).2 + + (t : ℝ) • (edgeVertices L.val.val a).2) ∧ + ∀ a b : ℝ, a < b → b < a + Real.pi → + supportingIntersection (specialCapCombination t K L).val.val (a : Real.Angle) + (b : Real.Angle) = + (1 - (t : ℝ)) • supportingIntersection K.val.val (a : Real.Angle) (b : Real.Angle) + + (t : ℝ) • supportingIntersection L.val.val (a : Real.Angle) (b : Real.Angle) := by + obtain ⟨-, hev, hsi, -⟩ := convexBody_maps_linear t K.val.val L.val.val + rw [specialCap_isConvexDomain.1 t K L] + exact ⟨hev, hsi⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Special / Area Variation +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +theorem specialCapArea_variation : + IsQuadraticFunctional specialCapCombination + (fun K ↦ ClassicalResults.area (K.val.val : Set Point)) ∧ + ∀ K L : SpecialCapSpace, + convexDirectionalDerivative specialCapCombination + (fun M ↦ ClassicalResults.area (M.val.val : Set Point)) K L = + ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Icc 0 Real.pi, + (supportValue L.val.val t - supportValue K.val.val t) ∂surfaceAreaMeasure K.val.val := by + obtain ⟨harea, hbil, -⟩ := convexBody_area_support_integral + have hcomb := specialCap_isConvexDomain.1 + -- ### Quadraticity is the ambient bilinear form restricted to the special caps + refine ⟨⟨fun K L ↦ (1 / 2 : ℝ) * ∫ a : Real.Angle, + supportValue K.val.val a ∂surfaceAreaMeasure L.val.val, ⟨?_, ?_⟩, + fun K ↦ harea K.val.val⟩, ?_⟩ + · intro K t L M + change (1 / 2 : ℝ) * ∫ a : Real.Angle, supportValue K.val.val a + ∂surfaceAreaMeasure (specialCapCombination t L M).val.val = _ + rw [hcomb t L M] + exact hbil.1 K.val.val t L.val.val M.val.val + · intro M t K L + change (1 / 2 : ℝ) * ∫ a : Real.Angle, + supportValue (specialCapCombination t K L).val.val a + ∂surfaceAreaMeasure M.val.val = _ + rw [hcomb t K L] + exact hbil.2 M.val.val t K.val.val L.val.val + intro K L + -- ### The support difference is integrable against the finite surface area measure + let _ : IsFiniteMeasure (surfaceAreaMeasure K.val.val) := + (surfaceAreaMeasure_face_union K.val.val).1 + have hint : ∀ M : ConvexBody Point, + Integrable (supportValue M) (surfaceAreaMeasure K.val.val) := by + intro M + have hcont : Continuous (supportValue M) := + (compactSet_support_continuity M M M.nonempty M.isCompact M.nonempty M.isCompact).2.2.1 + exact hcont.integrable_of_hasCompactSupport + (isCompact_univ.of_isClosed_subset isClosed_closure (Set.subset_univ _)) + have hdiff : Integrable (fun t ↦ supportValue L.val.val t - supportValue K.val.val t) + (surfaceAreaMeasure K.val.val) := (hint L.val.val).sub (hint K.val.val) + -- ### Interpolating special caps is interpolating convex bodies, so the two segment + -- functionals are equal as functions and the mixed-area derivative transports + have hseg : segmentFunctional specialCapCombination + (fun M : SpecialCapSpace ↦ ClassicalResults.area (M.val.val : Set Point)) K L = + segmentFunctional convexBodyCombination + (fun M : ConvexBody Point ↦ ClassicalResults.area (M : Set Point)) + K.val.val L.val.val := by + funext t + by_cases ht : t ∈ Set.Icc (0 : ℝ) 1 + · simp only [segmentFunctional, ht, ↓reduceDIte] + exact congrArg (fun s : Set Point ↦ ClassicalResults.area s) + (congrArg (fun M : ConvexBody Point ↦ (M : Set Point)) (hcomb ⟨t, ht⟩ K L)) + · simp only [segmentFunctional, ht, ↓reduceDIte] + -- ### Both caps have vanishing base support value, so the lower normals contribute nothing + have hzero := K.val.setIntegral_compl_image_Icc_zero_pi_eq_zero + (fun t ↦ supportValue L.val.val t - supportValue K.val.val t) + (by rw [K.val.property.2.2.2.2.2.1, L.val.property.2.2.2.2.2.1, sub_zero]) + have hS : MeasurableSet ((fun s : ℝ ↦ (s : Real.Angle)) '' Set.Icc 0 Real.pi) := + (isCompact_Icc.image Real.Angle.continuous_coe).isClosed.measurableSet + rw [convexDirectionalDerivative, hseg, + ((supportMeasure_mixedArea_symmetry K.val.val L.val.val).2).derivWithin + (uniqueDiffOn_Icc_zero_one.uniqueDiffWithinAt (by norm_num)), + ← integral_add_compl hS hdiff, hzero, add_zero] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Tail / Interpolation +-/ + +@[expose] public section + +noncomputable section + +open scoped unitInterval + +namespace MovingSofa + +/-- The cap and both tail bodies are the corresponding convex body combinations. -/ +def IsCapTailCombination (t : I) (X Y Z : CapTailSpace) : Prop := + Z.cap.val.val = convexBodyCombination t X.cap.val.val Y.cap.val.val ∧ + Z.rightBody = convexBodyCombination t X.rightBody Y.rightBody ∧ + Z.leftBody = convexBodyCombination t X.leftBody Y.leftBody + +/-- Choose a cap-tail triple representing componentwise convex combination, with a fallback to +`X`. -/ +def capTailCombination (t : I) (X Y : CapTailSpace) : CapTailSpace := by + classical + exact if h : ∃ Z, IsCapTailCombination t X Y Z then h.choose else X + +theorem capTail_isConvexDomain : + (∀ t X Y, IsCapTailCombination t X Y (capTailCombination t X Y)) ∧ + IsConvexDomain.{0, 0} capTailCombination := by + -- A cap-tail triple is determined by its three convex bodies. + have hext : ∀ X Y : CapTailSpace, X.cap = Y.cap → X.rightBody = Y.rightBody → + X.leftBody = Y.leftBody → X = Y := by + intro X Y hcap hright hleft + revert hcap hright hleft + obtain ⟨c₁, r₁, l₁, -, -, -, -, -, -⟩ := X + obtain ⟨c₂, r₂, l₂, -, -, -, -, -, -⟩ := Y + intro hcap hright hleft + subst hcap; subst hright; subst hleft + rfl + -- Minkowski interpolation is monotone in both of its convex-body arguments. + have hmono : ∀ (t : I) (A B C D : ConvexBody Point), (A : Set Point) ⊆ (C : Set Point) → + (B : Set Point) ⊆ (D : Set Point) → + (convexBodyCombination t A B : Set Point) ⊆ + (convexBodyCombination t C D : Set Point) := by + intro t A B C D hAC hBD z hz + obtain ⟨x, hx, y, hy, rfl⟩ := (mem_convexBodyCombination_iff t A B z).1 hz + exact (mem_convexBodyCombination_iff t C D _).2 ⟨x, hAC hx, y, hBD hy, rfl⟩ + -- ### The cap-tail conditions are closed under componentwise Minkowski interpolation + have hclosed : ∀ (t : I) (X Y : CapTailSpace), ∃ Z, IsCapTailCombination t X Y Z := by + intro t X Y + have hKval : (specialCapCombination t X.cap Y.cap).val.val = + convexBodyCombination t X.cap.val.val Y.cap.val.val := + specialCap_isConvexDomain.1 t X.cap Y.cap + have hlin : ∀ (K L : ConvexBody Point) (a : Real.Angle), + supportValue (convexBodyCombination t K L) a = + (1 - (t : ℝ)) * supportValue K a + (t : ℝ) * supportValue L a := + fun K L ↦ (convexBody_maps_linear t K L).1 + have ht0 : (0 : ℝ) ≤ (t : ℝ) := t.2.1 + have ht1 : (0 : ℝ) ≤ 1 - (t : ℝ) := sub_nonneg.mpr t.2.2 + have hb : ∀ a b c d : ℝ, a + b ≤ 1 → c + d ≤ 1 → + ((1 - (t : ℝ)) * a + (t : ℝ) * c) + ((1 - (t : ℝ)) * b + (t : ℝ) * d) ≤ 1 := by + intro a b c d h₁ h₂ + nlinarith [mul_le_mul_of_nonneg_left h₁ ht1, mul_le_mul_of_nonneg_left h₂ ht0] + have he : ∀ a b c d : ℝ, a + b = 1 → c + d = 1 → + ((1 - (t : ℝ)) * a + (t : ℝ) * c) + ((1 - (t : ℝ)) * b + (t : ℝ) * d) = 1 := by + intro a b c d h₁ h₂ + linear_combination (1 - (t : ℝ)) * h₁ + (t : ℝ) * h₂ + refine ⟨⟨specialCapCombination t X.cap Y.cap, + convexBodyCombination t X.rightBody Y.rightBody, + convexBodyCombination t X.leftBody Y.leftBody, + ?_, ?_, ?_, ?_, ?_, ?_⟩, hKval, rfl, rfl⟩ + · rw [hKval] + exact hmono t _ _ _ _ X.right_subset Y.right_subset + · rw [hKval] + exact hmono t _ _ _ _ X.left_subset Y.left_subset + · intro s hs + rw [hKval, hlin, hlin] + exact hb _ _ _ _ (X.right_bound s hs) (Y.right_bound s hs) + · intro s hs + rw [hKval, hlin, hlin] + exact he _ _ _ _ (X.right_eq s hs) (Y.right_eq s hs) + · intro s hs + rw [hKval, hlin, hlin] + exact hb _ _ _ _ (X.left_bound s hs) (Y.left_bound s hs) + · intro s hs + rw [hKval, hlin, hlin] + exact he _ _ _ _ (X.left_eq s hs) (Y.left_eq s hs) + -- ### The totalized selection therefore always matches + have h1 : ∀ (t : I) (X Y : CapTailSpace), + IsCapTailCombination t X Y (capTailCombination t X Y) := by + intro t X Y + have h := hclosed t X Y + rw [capTailCombination, dite_eq_left h] + exact h.choose_spec + refine ⟨h1, ?_⟩ + -- ### The convex-domain structure is inherited from three copies of the body domain + obtain ⟨V, e, hinj, -, hcomb⟩ := convexBody_isConvexDomain + refine ⟨ModuleCat.of ℝ (V × V × V), + fun X ↦ (e X.cap.val.val, e X.rightBody, e X.leftBody), ?_, ?_, ?_⟩ + · intro X Y h + simp only [Prod.mk.injEq] at h + exact hext X Y (Subtype.ext (Subtype.ext (hinj h.1))) (hinj h.2.1) (hinj h.2.2) + · rintro _ ⟨X, rfl⟩ _ ⟨Y, rfl⟩ a b ha hb hab + have hb1 : b ≤ 1 := by linarith + have hba : 1 - b = a := by linarith + obtain ⟨hc, hr, hl⟩ := h1 ⟨b, hb, hb1⟩ X Y + refine ⟨capTailCombination ⟨b, hb, hb1⟩ X Y, ?_⟩ + simp only [Prod.smul_mk, Prod.mk_add_mk, Prod.mk.injEq] + refine ⟨?_, ?_, ?_⟩ + · simpa only [hba] using (congrArg e hc).trans (hcomb ⟨b, hb, hb1⟩ _ _) + · simpa only [hba] using (congrArg e hr).trans (hcomb ⟨b, hb, hb1⟩ _ _) + · simpa only [hba] using (congrArg e hl).trans (hcomb ⟨b, hb, hb1⟩ _ _) + · intro t X Y + obtain ⟨hc, hr, hl⟩ := h1 t X Y + simp only [Prod.smul_mk, Prod.mk_add_mk, Prod.mk.injEq] + exact ⟨(congrArg e hc).trans (hcomb t _ _), (congrArg e hr).trans (hcomb t _ _), + (congrArg e hl).trans (hcomb t _ _)⟩ + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Cap.InnerCornerVariation`. +* `Cap.CornerModuloLinear`. +* `Cap.Tail.AreaBounds`. +* `Cap.UpperBoundaryTracing`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The inner-corner variation on the middle window + +On the middle window `I = [φᴿ, φᴸ]` the inner corner of a special cap is +`(h_K(t) - 1) • u_t + (h_K(t + π/2) - 1) • v_t`, an affine expression in two support values, so it +depends convex-linearly on the cap. `capInnerCorner_variation` pulls the quadratic curve-area +functional back along that convex-linear map, which gives quadraticity of +`K ↦ 𝒥(x_K|_I)` and reduces its directional derivative to the curve-variation formula. + +The remaining work is to recognize the two mixed Stieltjes integrals of that formula as the +pairing of the support increment against the corner measure. The inner corner is `C¹` on the cap +domain by the injectivity condition, so its Stieltjes measure is its classical velocity times +Lebesgue measure; the frame identity `planeCrossProduct_eq_inner_frame` then turns the pointwise +cross product into the corner density against the support increment, on `I` and on `I + π/2` +separately. +-/ + +/-! ### The middle window -/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- The two distinguished Gerver angles are positive, ordered, and below `π / 2`, so the middle +window `[φᴿ, φᴸ]` and its quarter turn are disjoint subsets of `[0, π]`. -/ +private theorem middleWindow_bounds : + 0 < paperGerverConstants.2.1 ∧ paperGerverConstants.2.1 ≤ paperGerverConstants.2.2 ∧ + paperGerverConstants.2.2 < Real.pi / 2 := by + obtain ⟨hr, hl, hsum⟩ := paperGerverConstants_snd_mem_Ioo + have hle : paperGerverConstants.2.1 ≤ Real.pi / 4 := by + have h := GerversSofa.ABφθSpec.existsUnique.choose_spec.1 + exact le_trans h.2.1 h.2.2.1 + exact ⟨hr.1, by linarith only [hle, hsum], hl.2⟩ + +/-- The middle window lies inside the cap's angular domain. -/ +private theorem middleWindow_subset : + Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2 ⊆ Set.Icc 0 (Real.pi / 2) := by + obtain ⟨hrpos, -, hlpi⟩ := middleWindow_bounds + exact Set.Icc_subset_Icc hrpos.le hlpi.le + +/-! ### Regularity of the inner corner of a special cap -/ + +/-- The inner corner of a special cap is continuously differentiable on the cap domain. -/ +private theorem specialCap_contDiffOn (K : SpecialCapSpace) : + ContDiffOn ℝ 1 (capInnerCorner K.val) (Set.Icc 0 (Real.pi / 2)) := + K.property.1.2.1 + +/-- At an interior time the inner corner of a special cap has an honest derivative. -/ +private theorem specialCap_hasDerivAt (K : SpecialCapSpace) {t : ℝ} + (ht : t ∈ Set.Ioo 0 (Real.pi / 2)) : + HasDerivAt (capInnerCorner K.val) + (derivWithin (capInnerCorner K.val) (Set.Icc 0 (Real.pi / 2)) t) t := + ((specialCap_contDiffOn K).differentiableOn one_ne_zero t + (Set.Ioo_subset_Icc_self ht)).hasDerivWithinAt.hasDerivAt (Icc_mem_nhds ht.1 ht.2) + +/-! ### The corner density on the two middle windows -/ + +/-- On the right middle window the corner density is the tangent velocity component. -/ +private theorem capCornerDensity_eq_right (K : SpecialCapSpace) {s : ℝ} + (hs : s ∈ Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2) : + capCornerDensity K s = (capVelocityCoefficients K s).2 := by + obtain ⟨hrpos, -, hlpi⟩ := middleWindow_bounds + rw [capCornerDensity, ite_eq_left ⟨lt_of_lt_of_le hrpos hs.1, hs.2.trans hlpi.le⟩] + +/-- On the left middle window the corner density is the shifted normal velocity component. -/ +private theorem capCornerDensity_eq_left (K : SpecialCapSpace) {s : ℝ} + (hs : s ∈ Set.Icc (Real.pi / 2 + paperGerverConstants.2.1) + (Real.pi / 2 + paperGerverConstants.2.2)) : + capCornerDensity K s = -(capVelocityCoefficients K (s - Real.pi / 2)).1 := by + obtain ⟨hrpos, -, hlpi⟩ := middleWindow_bounds + have h1 : Real.pi / 2 < s := by linarith [hs.1] + have h2 : s ≤ Real.pi := by linarith [hs.2] + rw [capCornerDensity, ite_eq_right (by rintro ⟨-, h⟩; linarith), ite_eq_left ⟨h1, h2⟩] + +/-- The corner density is nonnegative on the middle windows, by the injectivity signs. -/ +private theorem capCornerDensity_nonneg_middle (K : SpecialCapSpace) {s : ℝ} + (hs : s ∈ Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2 ∪ + Set.Icc (Real.pi / 2 + paperGerverConstants.2.1) + (Real.pi / 2 + paperGerverConstants.2.2)) : + 0 ≤ capCornerDensity K s := by + obtain ⟨hrpos, -, hlpi⟩ := middleWindow_bounds + have hsign := K.property.1.2.2 + rcases hs with hs | hs + · rw [capCornerDensity_eq_right K hs] + exact (hsign s ⟨lt_of_lt_of_le hrpos hs.1, lt_of_le_of_lt hs.2 hlpi⟩).2.le + · rw [capCornerDensity_eq_left K hs] + have hmem : s - Real.pi / 2 ∈ Set.Ioo (0 : ℝ) (Real.pi / 2) := + ⟨by linarith [hs.1], by linarith [hs.2]⟩ + exact neg_nonneg.mpr (hsign _ hmem).1.le + +/-- The corner density is continuous on each of the two middle windows. -/ +private theorem continuousOn_capCornerDensity_middle (K : SpecialCapSpace) : + ContinuousOn (capCornerDensity K) + (Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2) ∧ + ContinuousOn (capCornerDensity K) + (Set.Icc (Real.pi / 2 + paperGerverConstants.2.1) + (Real.pi / 2 + paperGerverConstants.2.2)) := by + obtain ⟨hα, hβ⟩ := continuousOn_capVelocityCoefficients K + refine ⟨(hβ.mono middleWindow_subset).congr fun s hs ↦ capCornerDensity_eq_right K hs, ?_⟩ + have hmaps : Set.MapsTo (fun s : ℝ ↦ s - Real.pi / 2) + (Set.Icc (Real.pi / 2 + paperGerverConstants.2.1) + (Real.pi / 2 + paperGerverConstants.2.2)) + (Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2) := by + intro s hs + exact ⟨by linarith [hs.1], by linarith [hs.2]⟩ + refine ContinuousOn.congr ?_ fun s hs ↦ capCornerDensity_eq_left K hs + exact (((hα.mono middleWindow_subset).comp + (continuous_id.sub continuous_const).continuousOn hmaps)).neg + +/-! ### Integrating against the corner angle measure -/ + +/-- On a parameter window inside `[0, π]` the corner angle measure integrates a continuous +function against the real corner density. -/ +private theorem setIntegral_capCornerAngleMeasure (K : SpecialCapSpace) {S : Set ℝ} + (hSmeas : MeasurableSet S) (hS : S ⊆ Set.Icc 0 Real.pi) + (hd : AEMeasurable (capCornerDensity K) (volume.restrict S)) + (hdpos : ∀ s ∈ S, 0 ≤ capCornerDensity K s) {f : Real.Angle → ℝ} (hf : Continuous f) : + ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' S, f t ∂capCornerAngleMeasure K = + ∫ s in S, capCornerDensity K s * f (s : Real.Angle) := by + have hcoe : Measurable fun s : ℝ ↦ (s : Real.Angle) := Real.Angle.continuous_coe.measurable + have hturn : Real.pi ≤ -1 + 2 * Real.pi := by linarith [Real.pi_gt_three] + have hSIoc : S ⊆ Set.Ioc (-1) Real.pi := fun s hs ↦ ⟨by linarith [(hS hs).1], (hS hs).2⟩ + have himg : MeasurableSet ((fun s : ℝ ↦ (s : Real.Angle)) '' S) := + Real.Angle.measurableSet_image_of_subset_Ioc hturn hSmeas hSIoc + have hApre : MeasurableSet ((fun s : ℝ ↦ (s : Real.Angle)) ⁻¹' + ((fun s : ℝ ↦ (s : Real.Angle)) '' S)) := himg.preimage hcoe + have hAS : ((fun s : ℝ ↦ (s : Real.Angle)) ⁻¹' + ((fun s : ℝ ↦ (s : Real.Angle)) '' S)) ∩ Set.Icc 0 Real.pi = S := by + refine Set.Subset.antisymm ?_ fun s hs ↦ ⟨⟨s, hs, rfl⟩, hS hs⟩ + rintro x ⟨⟨s, hs, hxs⟩, hx⟩ + have hxIoc : x ∈ Set.Ioc (-1) Real.pi := ⟨by linarith [hx.1], hx.2⟩ + exact (Real.Angle.injOn_coe_Ioc hturn (hSIoc hs) hxIoc hxs) ▸ hs + have h1 : ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' S, f t ∂capCornerAngleMeasure K = + ∫ s in (fun s : ℝ ↦ (s : Real.Angle)) ⁻¹' ((fun s : ℝ ↦ (s : Real.Angle)) '' S), + f (s : Real.Angle) ∂capCornerMeasure K := by + rw [capCornerAngleMeasure] + exact setIntegral_map himg hf.aestronglyMeasurable hcoe.aemeasurable + have hrestrict : (volume.restrict (Set.Icc 0 Real.pi)).restrict + ((fun s : ℝ ↦ (s : Real.Angle)) ⁻¹' ((fun s : ℝ ↦ (s : Real.Angle)) '' S)) = + volume.restrict S := by + rw [Measure.restrict_restrict hApre, hAS] + have haem : AEMeasurable (fun s ↦ ENNReal.ofReal (capCornerDensity K s)) + ((volume.restrict (Set.Icc 0 Real.pi)).restrict + ((fun s : ℝ ↦ (s : Real.Angle)) ⁻¹' ((fun s : ℝ ↦ (s : Real.Angle)) '' S))) := by + rw [hrestrict] + exact ENNReal.measurable_ofReal.comp_aemeasurable hd + have h2 : ∫ s in (fun s : ℝ ↦ (s : Real.Angle)) ⁻¹' ((fun s : ℝ ↦ (s : Real.Angle)) '' S), + f (s : Real.Angle) ∂capCornerMeasure K = + ∫ s in (fun s : ℝ ↦ (s : Real.Angle)) ⁻¹' ((fun s : ℝ ↦ (s : Real.Angle)) '' S), + (ENNReal.ofReal (capCornerDensity K s)).toReal • f (s : Real.Angle) + ∂volume.restrict (Set.Icc 0 Real.pi) := by + rw [capCornerMeasure] + exact setIntegral_withDensity_eq_setIntegral_toReal_smul₀ haem + (Filter.Eventually.of_forall fun _ ↦ ENNReal.ofReal_lt_top) _ hApre + rw [h1, h2] + change ∫ s, _ ∂((volume.restrict (Set.Icc 0 Real.pi)).restrict _) = _ + rw [hrestrict] + refine setIntegral_congr_fun hSmeas fun s hs ↦ ?_ + rw [ENNReal.toReal_ofReal (hdpos s hs), smul_eq_mul] + +/-! ### The middle Stieltjes integrals as weighted Lebesgue integrals -/ + +/-- The middle corner path's Stieltjes measure has the inner-corner velocity as density. -/ +private theorem capMiddle_stieltjesDensity (K : SpecialCapSpace) (i : Fin 2) : + HasIntervalStieltjesDensity (continuousBVCoordinate (capMiddleBV K) i) + (fun t ↦ derivWithin (capInnerCorner K.val) (Set.Icc 0 (Real.pi / 2)) t i) := by + obtain ⟨hrpos, hrl, hlpi⟩ := middleWindow_bounds + have hproj : ContDiff ℝ 1 fun p : Point ↦ p i := + (EuclideanSpace.proj (𝕜 := ℝ) i).contDiff + refine hasIntervalStieltjesDensity_of_hasDerivAt hrl _ + (fun s ↦ capInnerCorner K.val s i) _ (fun _ ↦ rfl) ?_ ?_ ?_ + · refine ContDiffOn.absolutelyContinuousOnInterval ?_ + rw [Set.uIcc_of_le hrl] + exact hproj.comp_contDiffOn ((specialCap_contDiffOn K).mono middleWindow_subset) + · intro t ht + have ht' : t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2) := ⟨hrpos.trans ht.1, ht.2.trans hlpi⟩ + exact (EuclideanSpace.proj (𝕜 := ℝ) i).hasFDerivAt.comp_hasDerivAt t + (specialCap_hasDerivAt K ht') + · exact (((PiLp.continuous_apply 2 _ i).comp_continuousOn + ((continuousOn_derivWithin_capInnerCorner K).mono middleWindow_subset))).integrableOn_compact + isCompact_Icc + +/-- A mixed Stieltjes integral over the middle window is the corresponding weighted Lebesgue +integral of the inner-corner velocity. -/ +private theorem capMiddle_stieltjesIntegral_eq (K L : SpecialCapSpace) (i j : Fin 2) : + intervalStieltjesIntegral (continuousBVCoordinate (capMiddleBV K) i) + (fun t ↦ (capMiddleBV L).val t j - (capMiddleBV K).val t j) Set.univ = + ∫ t in Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2, + (capInnerCorner L.val t j - capInnerCorner K.val t j) * + derivWithin (capInnerCorner K.val) (Set.Icc 0 (Real.pi / 2)) t i := by + have hq : Continuous fun t : Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2 ↦ + (capMiddleBV L).val t j - (capMiddleBV K).val t j := + ((PiLp.continuous_apply 2 _ j).comp (capMiddleBV L).property.1).sub + ((PiLp.continuous_apply 2 _ j).comp (capMiddleBV K).property.1) + have hval : ∀ (M : SpecialCapSpace) + (t : Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2), + (capMiddleBV M).val t = capInnerCorner M.val t.val := fun _ _ ↦ rfl + rw [intervalStieltjesIntegral_eq_integral_mul_of_density _ (capMiddle_stieltjesDensity K i) + hq Set.univ MeasurableSet.univ, Measure.restrict_univ] + simp only [hval] + have key := MeasureTheory.integral_subtype_preimage (μ := volume) + (s := Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2) measurableSet_Icc + (MeasurableSet.univ (α := ℝ)) + (fun t : ℝ ↦ (capInnerCorner L.val t j - capInnerCorner K.val t j) * + derivWithin (capInnerCorner K.val) (Set.Icc 0 (Real.pi / 2)) t i) + simp only [Set.mem_univ, Set.ofPred_true, Measure.restrict_univ] at key + exact key + +/-! ### The variation of the inner corner -/ + +theorem capInnerCorner_variation : + IsConvexLinear specialCapCombination bvPathCombination capMiddleBV ∧ + IsQuadraticFunctional specialCapCombination (fun K ↦ curveAreaFunctional (capMiddleBV K)) ∧ + ∀ K L : SpecialCapSpace, + convexDirectionalDerivative specialCapCombination + (fun M ↦ curveAreaFunctional (capMiddleBV M)) K L = + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' + (Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2 ∪ + Set.Icc (Real.pi / 2 + paperGerverConstants.2.1) + (Real.pi / 2 + paperGerverConstants.2.2)), + (supportValue L.val.val t - supportValue K.val.val t) ∂capCornerAngleMeasure K) + + (segmentArea (distinguishedCapSides K.val).2.corner + (distinguishedCapSides L.val).2.corner - + segmentArea (distinguishedCapSides K.val).1.corner + (distinguishedCapSides L.val).1.corner) := by + obtain ⟨hrpos, hrl, hlpi⟩ := middleWindow_bounds + -- ### The middle corner path is convex-linear + have hlinear : IsConvexLinear specialCapCombination bvPathCombination capMiddleBV := by + intro t K L + refine Subtype.ext (funext fun s ↦ ?_) + change capInnerCorner (specialCapCombination t K L).val s.val = _ + rw [capInnerCorner_of_eq_convexBodyCombination (specialCap_isConvexDomain.1 t K L)] + rfl + refine ⟨hlinear, (curveArea_variation _ _ hrl).1.comp_isConvexLinear hlinear, ?_⟩ + intro K L + rw [convexDirectionalDerivative_comp_isConvexLinear hlinear _ K L, + (curveArea_variation _ _ hrl).2] + refine congrArg₂ (· + ·) ?_ rfl + -- ### The middle window and the corner density on it + have hSmeas : MeasurableSet (Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2 ∪ + Set.Icc (Real.pi / 2 + paperGerverConstants.2.1) + (Real.pi / 2 + paperGerverConstants.2.2)) := measurableSet_Icc.union measurableSet_Icc + have hSsub : Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2 ∪ + Set.Icc (Real.pi / 2 + paperGerverConstants.2.1) + (Real.pi / 2 + paperGerverConstants.2.2) ⊆ Set.Icc 0 Real.pi := by + have hpi := Real.pi_pos + rintro s (hs | hs) + · exact ⟨by linarith [hs.1], by linarith [hs.2]⟩ + · exact ⟨by linarith [hs.1], by linarith [hs.2]⟩ + obtain ⟨hdc1, hdc2⟩ := continuousOn_capCornerDensity_middle K + have hd : AEMeasurable (capCornerDensity K) + (volume.restrict (Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2 ∪ + Set.Icc (Real.pi / 2 + paperGerverConstants.2.1) + (Real.pi / 2 + paperGerverConstants.2.2))) := + (hdc1.union_of_isClosed hdc2 isClosed_Icc isClosed_Icc).aemeasurable hSmeas + have hcont (M : ConvexBody Point) : Continuous fun u : Real.Angle ↦ supportValue M u := + (compactSet_support_continuity M M M.nonempty M.isCompact M.nonempty M.isCompact).2.2.1 + have hfcont : Continuous fun u : Real.Angle ↦ supportValue (L.val.val : Set Point) u - + supportValue (K.val.val : Set Point) u := (hcont L.val.val).sub (hcont K.val.val) + have hfreal : Continuous fun s : ℝ ↦ supportValue (L.val.val : Set Point) (s : Real.Angle) - + supportValue (K.val.val : Set Point) (s : Real.Angle) := + hfcont.comp Real.Angle.continuous_coe + -- ### Continuity of the four Lebesgue integrands on the middle window + have hXc : ContinuousOn (capInnerCorner K.val) + (Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2) := + ((specialCap_contDiffOn K).mono middleWindow_subset).continuousOn + have hYc : ContinuousOn (capInnerCorner L.val) + (Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2) := + ((specialCap_contDiffOn L).mono middleWindow_subset).continuousOn + have hDc : ContinuousOn (derivWithin (capInnerCorner K.val) (Set.Icc 0 (Real.pi / 2))) + (Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2) := + (continuousOn_derivWithin_capInnerCorner K).mono middleWindow_subset + have hmixed (i j : Fin 2) : IntegrableOn + (fun t ↦ (capInnerCorner L.val t j - capInnerCorner K.val t j) * + derivWithin (capInnerCorner K.val) (Set.Icc 0 (Real.pi / 2)) t i) + (Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2) := + ((((PiLp.continuous_apply 2 _ j).comp_continuousOn hYc).sub + ((PiLp.continuous_apply 2 _ j).comp_continuousOn hXc)).mul + ((PiLp.continuous_apply 2 _ i).comp_continuousOn hDc)).integrableOn_compact isCompact_Icc + have hG1 : IntegrableOn (fun s ↦ capCornerDensity K s * + (supportValue (L.val.val : Set Point) (s : Real.Angle) - + supportValue (K.val.val : Set Point) (s : Real.Angle))) + (Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2) := + (hdc1.mul hfreal.continuousOn).integrableOn_compact isCompact_Icc + have hG2 : IntegrableOn (fun s ↦ capCornerDensity K s * + (supportValue (L.val.val : Set Point) (s : Real.Angle) - + supportValue (K.val.val : Set Point) (s : Real.Angle))) + (Set.Icc (Real.pi / 2 + paperGerverConstants.2.1) + (Real.pi / 2 + paperGerverConstants.2.2)) := + (hdc2.mul hfreal.continuousOn).integrableOn_compact isCompact_Icc + have hmaps : Set.MapsTo (fun t : ℝ ↦ t + Real.pi / 2) + (Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2) + (Set.Icc (Real.pi / 2 + paperGerverConstants.2.1) + (Real.pi / 2 + paperGerverConstants.2.2)) := + fun s hs ↦ ⟨by linarith [hs.1], by linarith [hs.2]⟩ + have hG2' : IntegrableOn (fun t ↦ capCornerDensity K (t + Real.pi / 2) * + (supportValue (L.val.val : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) - + supportValue (K.val.val : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle))) + (Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2) := + (((hdc2.mul hfreal.continuousOn).comp + (continuous_id.add continuous_const).continuousOn hmaps)).integrableOn_compact isCompact_Icc + -- ### Both sides are Lebesgue integrals over the middle window + rw [capMiddle_stieltjesIntegral_eq K L 1 0, capMiddle_stieltjesIntegral_eq K L 0 1, + setIntegral_capCornerAngleMeasure K hSmeas hSsub hd + (fun s hs ↦ capCornerDensity_nonneg_middle K hs) hfcont, + setIntegral_union (Set.disjoint_left.mpr fun s hs hs' ↦ by linarith [hs.2, hs'.1]) + measurableSet_Icc hG1 hG2, + integral_Icc_const_add_eq (Real.pi / 2), + ← integral_sub (hmixed 1 0) (hmixed 0 1), ← integral_add hG1 hG2'] + -- ### The pointwise cross-product identity + refine setIntegral_congr_fun measurableSet_Icc fun t ht ↦ ?_ + have hts : t + Real.pi / 2 ∈ Set.Icc (Real.pi / 2 + paperGerverConstants.2.1) + (Real.pi / 2 + paperGerverConstants.2.2) := hmaps ht + have hdens1 : capCornerDensity K t = + inner ℝ (derivWithin (capInnerCorner K.val) (Set.Icc 0 (Real.pi / 2)) t) + (tangentVector (t : Real.Angle)) := capCornerDensity_eq_right K ht + have hdens2 : capCornerDensity K (t + Real.pi / 2) = + -inner ℝ (derivWithin (capInnerCorner K.val) (Set.Icc 0 (Real.pi / 2)) t) + (normalVector (t : Real.Angle)) := by + rw [capCornerDensity_eq_left K hts] + simp only [add_sub_cancel_right, capVelocityCoefficients] + have hu : inner ℝ (capInnerCorner L.val t - capInnerCorner K.val t) + (normalVector (t : Real.Angle)) = + supportValue (L.val.val : Set Point) (t : Real.Angle) - + supportValue (K.val.val : Set Point) (t : Real.Angle) := by + rw [inner_sub_left, inner_capInnerCorner_normalVector, inner_capInnerCorner_normalVector] + ring + have hv : inner ℝ (capInnerCorner L.val t - capInnerCorner K.val t) + (tangentVector (t : Real.Angle)) = + supportValue (L.val.val : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) - + supportValue (K.val.val : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) := by + rw [inner_sub_left, inner_capInnerCorner_tangentVector, inner_capInnerCorner_tangentVector] + ring + have hframe := planeCrossProduct_eq_inner_frame + (capInnerCorner L.val t - capInnerCorner K.val t) + (derivWithin (capInnerCorner K.val) (Set.Icc 0 (Real.pi / 2)) t) t + have hs0 : (capInnerCorner L.val t - capInnerCorner K.val t) 0 = + capInnerCorner L.val t 0 - capInnerCorner K.val t 0 := by simp + have hs1 : (capInnerCorner L.val t - capInnerCorner K.val t) 1 = + capInnerCorner L.val t 1 - capInnerCorner K.val t 1 := by simp + rw [planeCrossProduct, hs0, hs1] at hframe + rw [hdens1, hdens2, ← hu, ← hv] + linear_combination hframe + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The outer corner and the two wedge segments, modulo convex-linear functionals + +On the middle window `I = [φᴿ, φᴸ]` the outer corner of a cap is its inner corner translated by the +`K`-independent frame sum `c t = u_t + v_t`, so the two curve-area functionals differ by the two +mixed Stieltjes cross integrals, each convex-linear in `K`, plus the constant area of `c`. + +The same happens at the two ends of the window: the tangent-line intersection point and the wedge +endpoint differ by a fixed vector, as do the outer and the inner corner, so each of the two +segment-area comparisons differs by a determinant that is affine in the support values and in the +inner corner, hence convex-linear in `K` as well. +-/ + +/-! ### The outer corner path on the middle window -/ + +@[expose] public section + +noncomputable section + +open scoped unitInterval + +namespace MovingSofa + +/-- The frame sum `t ↦ u_t + v_t`, as a continuous path of bounded variation. -/ +def frameSumBV (a b : ℝ) : ContinuousBVPaths a b := + continuousBVOfContDiffOn + (fun t ↦ normalVector (t : Real.Angle) + tangentVector (t : Real.Angle)) + ((contDiff_normalVector.add contDiff_tangentVector).of_le + (by exact_mod_cast le_top)).contDiffOn + +/-- The outer corner of a special cap on the middle window, as a continuous path of bounded +variation: the inner-corner path translated by the frame sum. -/ +def capOuterMiddleBV (K : SpecialCapSpace) : + ContinuousBVPaths paperGerverConstants.2.1 paperGerverConstants.2.2 := + capMiddleBV K + frameSumBV paperGerverConstants.2.1 paperGerverConstants.2.2 + +/-- The outer middle path of a special cap traces the outer corner of its body. -/ +theorem capOuterMiddleBV_val (K : SpecialCapSpace) + (s : Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2) : + (capOuterMiddleBV K).val s = + (rotatingHallwayParts (K.val.val : Set Point) ((s : ℝ) : Real.Angle)).outerCorner := + (outerCorner_eq_innerCorner_add K.val.val (s : ℝ)).symm + +/-! ### The two end segments -/ + +/-- At the right Gerver angle the tangent-line intersection point is the right wedge endpoint +translated by a `K`-independent vector. -/ +private theorem supportingIntersection_eq_wedgeEndpoints_add_fst (K : RightAngleCapSpace) + (hcos : Real.cos paperGerverConstants.2.1 ≠ 0) : + supportingIntersection K.val (paperGerverConstants.2.1 : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) = + (wedgeEndpoints K paperGerverConstants.2.1).1 + + !₂[(1 - Real.sin paperGerverConstants.2.1) / + Real.cos paperGerverConstants.2.1, 1] := by + have hangle : ((Real.pi / 2 : ℝ) : Real.Angle) - (paperGerverConstants.2.1 : Real.Angle) = + ((Real.pi / 2 - paperGerverConstants.2.1 : ℝ) : Real.Angle) := by rw [Real.Angle.coe_sub] + have hpyth := Real.sin_sq_add_cos_sq paperGerverConstants.2.1 + obtain ⟨hW0, hW1⟩ := wedgeEndpoints_fst_coords K paperGerverConstants.2.1 + rw [supportingIntersection, hangle, Real.Angle.cos_coe, Real.Angle.sin_coe, + Real.cos_pi_div_two_sub, Real.sin_pi_div_two_sub, K.property.2.2.1] + ext i + fin_cases i <;> + simp only [Fin.zero_eta, Fin.mk_one, PiLp.add_apply, PiLp.smul_apply, smul_eq_mul, + normalVector, tangentVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, + Matrix.cons_val_zero, Matrix.cons_val_one, hW0, hW1] + · field_simp + linear_combination (supportValue (K.val : Set Point) + (paperGerverConstants.2.1 : Real.Angle)) * hpyth + · field_simp + ring + +/-- At the left Gerver angle the tangent-line intersection point is the left wedge endpoint +translated by a `K`-independent vector. -/ +private theorem supportingIntersection_eq_wedgeEndpoints_add_snd (K : RightAngleCapSpace) + (hsin : Real.sin paperGerverConstants.2.2 ≠ 0) : + supportingIntersection K.val ((Real.pi / 2 : ℝ) : Real.Angle) + ((Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle) = + (wedgeEndpoints K paperGerverConstants.2.2).2 + + !₂[(Real.cos paperGerverConstants.2.2 - 1) / + Real.sin paperGerverConstants.2.2, 1] := by + have hangle : ((Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle) - + ((Real.pi / 2 : ℝ) : Real.Angle) = (paperGerverConstants.2.2 : Real.Angle) := by + rw [← Real.Angle.coe_sub, show Real.pi / 2 + paperGerverConstants.2.2 - Real.pi / 2 = + paperGerverConstants.2.2 from by ring] + obtain ⟨hZ0, hZ1⟩ := wedgeEndpoints_snd_coords K paperGerverConstants.2.2 + rw [supportingIntersection, hangle, Real.Angle.cos_coe, Real.Angle.sin_coe, + K.property.2.2.1] + ext i + fin_cases i <;> + simp only [Fin.zero_eta, Fin.mk_one, PiLp.add_apply, PiLp.smul_apply, smul_eq_mul, + normalVector, tangentVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, + Real.cos_pi_div_two, Real.sin_pi_div_two, Matrix.cons_val_zero, Matrix.cons_val_one, + hZ0, hZ1] <;> + field_simp <;> ring_nf + +/-- A pair of segment areas whose endpoints are fixed translates of a second pair differs from it +by a determinant, which is convex-linear as soon as the two base points are. -/ +private theorem segmentArea_equivalent_of_translations {α : Type*} (cα : I → α → α → α) + {W X P Q : α → Point} {v w : Point} (hP : ∀ K, P K = W K + w) (hQ : ∀ K, Q K = X K + v) + (hW : ∀ (t : I) (K L : α), W (cα t K L) = (1 - (t : ℝ)) • W K + (t : ℝ) • W L) + (hX : ∀ (t : I) (K L : α), X (cα t K L) = (1 - (t : ℝ)) • X K + (t : ℝ) • X L) : + EquivalentModuloConvexLinear cα (fun K ↦ segmentArea (P K) (Q K)) + (fun K ↦ segmentArea (W K) (X K)) := by + intro t K L + simp only [hP, hQ, hW, hX, realCombination, segmentArea, planeCrossProduct, PiLp.add_apply, + PiLp.smul_apply, smul_eq_mul] + ring + +/-! ### The main equivalence -/ + +theorem cornerArea_equivalent_modulo_linear : + ∃ F : SpecialCapSpace → + ContinuousBVPaths paperGerverConstants.2.1 paperGerverConstants.2.2, + (∀ K, (F K).val = fun t ↦ + (rotatingHallwayParts (K.val.val : Set Point) (t.val : Real.Angle)).outerCorner) ∧ + EquivalentModuloConvexLinear specialCapCombination + (fun K ↦ curveAreaFunctional (F K)) + (fun K ↦ curveAreaFunctional (capMiddleBV K)) ∧ + EquivalentModuloConvexLinear specialCapCombination + (fun K ↦ segmentArea + (supportingIntersection K.val.val (paperGerverConstants.2.1 : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) + (rotatingHallwayParts (K.val.val : Set Point) + (paperGerverConstants.2.1 : Real.Angle)).outerCorner) + (fun K ↦ segmentArea (distinguishedCapSides K.val).1.fanPoint + (distinguishedCapSides K.val).1.corner) ∧ + EquivalentModuloConvexLinear specialCapCombination + (fun K ↦ segmentArea + (supportingIntersection K.val.val ((Real.pi / 2 : ℝ) : Real.Angle) + ((Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)) + (rotatingHallwayParts (K.val.val : Set Point) + (paperGerverConstants.2.2 : Real.Angle)).outerCorner) + (fun K ↦ segmentArea (distinguishedCapSides K.val).2.fanPoint + (distinguishedCapSides K.val).2.corner) := by + obtain ⟨hr, hl, -⟩ := paperGerverConstants_snd_mem_Ioo + have hrl : paperGerverConstants.2.1 ≤ paperGerverConstants.2.2 := + paperGerverConstants_snd_fst_lt_snd_snd.le + refine ⟨capOuterMiddleBV, fun K ↦ funext (capOuterMiddleBV_val K), ?_, ?_, ?_⟩ + -- ### The middle window: translation by the frame-sum path + · intro t K L + change curveAreaFunctional (capMiddleBV (specialCapCombination t K L) + + frameSumBV paperGerverConstants.2.1 paperGerverConstants.2.2) - + curveAreaFunctional (capMiddleBV (specialCapCombination t K L)) = _ + rw [capInnerCorner_variation.1 t K L] + exact curveArea_translation_convexLinear _ t (capMiddleBV K) (capMiddleBV L) + -- ### The right end: both endpoints move by fixed vectors + · have hcos : 0 < Real.cos paperGerverConstants.2.1 := + Real.cos_pos_of_mem_Ioo ⟨by linarith [Real.pi_pos, hr.1], hr.2⟩ + simp only [distinguishedCapSides_fst_fanPoint, distinguishedCapSides_fst_corner] + refine segmentArea_equivalent_of_translations specialCapCombination + (w := !₂[(1 - Real.sin paperGerverConstants.2.1) / Real.cos paperGerverConstants.2.1, 1]) + (v := normalVector (paperGerverConstants.2.1 : Real.Angle) + + tangentVector (paperGerverConstants.2.1 : Real.Angle)) + (fun K ↦ supportingIntersection_eq_wedgeEndpoints_add_fst K.val hcos.ne') + (fun K ↦ outerCorner_eq_innerCorner_add K.val.val paperGerverConstants.2.1) + (fun t K L ↦ ?_) (fun t K L ↦ ?_) + · show (wedgeEndpoints (specialCapCombination t K L).val paperGerverConstants.2.1).1 = _ + simp only [wedgeEndpoints, specialCap_isConvexDomain.1 t K L, + supportValue_convexBodyCombination] + match_scalars + ring + · exact capInnerCorner_of_eq_convexBodyCombination (specialCap_isConvexDomain.1 t K L) + paperGerverConstants.2.1 + -- ### The left end: the same, with the complementary trigonometric normalisation + · have hsin : 0 < Real.sin paperGerverConstants.2.2 := + Real.sin_pos_of_pos_of_lt_pi hl.1 (by linarith [Real.pi_pos, hl.2]) + simp only [distinguishedCapSides_snd_fanPoint, distinguishedCapSides_snd_corner] + refine segmentArea_equivalent_of_translations specialCapCombination + (w := !₂[(Real.cos paperGerverConstants.2.2 - 1) / Real.sin paperGerverConstants.2.2, 1]) + (v := normalVector (paperGerverConstants.2.2 : Real.Angle) + + tangentVector (paperGerverConstants.2.2 : Real.Angle)) + (fun K ↦ supportingIntersection_eq_wedgeEndpoints_add_snd K.val hsin.ne') + (fun K ↦ outerCorner_eq_innerCorner_add K.val.val paperGerverConstants.2.2) + (fun t K L ↦ ?_) (fun t K L ↦ ?_) + · show (wedgeEndpoints (specialCapCombination t K L).val paperGerverConstants.2.2).2 = _ + simp only [wedgeEndpoints, specialCap_isConvexDomain.1 t K L, + supportValue_convexBodyCombination] + match_scalars + ring + · exact capInnerCorner_of_eq_convexBodyCombination (specialCap_isConvexDomain.1 t K L) + paperGerverConstants.2.2 + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Tail / Area Bounds +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A point of a special cap above both the right inner wall at `φᴿ` and the bottom axis that +misses the right canonical tail lies in the niche, on the right side. -/ +private theorem mem_capNiche_inter_right_of_notMem_canonicalTail (K : SpecialCapSpace) + {q : Point} (hwall : q ∈ (innerWallUpperHalfPlanes K.val paperGerverConstants.2.1).1) + (hup : q ∈ normalHalfPlane ((Real.pi / 2 : ℝ) : Real.Angle) 0 true false) + (hqK : q ∈ (K.1.1 : Set Point)) (hq : q ∉ (canonicalTailSets K).1) : + q ∈ capNiche K.val ∩ (distinguishedCapSides K.val).1.upperHalfPlane := by + obtain ⟨hrIoo, -, -⟩ := paperGerverConstants_snd_mem_Ioo + obtain ⟨hmonR, -, -, -⟩ := cap_tail_monotonicity_intervals K + have hUpEqR : (innerWallUpperHalfPlanes K.val (Real.pi / 2)).1 = + normalHalfPlane ((Real.pi / 2 : ℝ) : Real.Angle) 0 true false := by + change normalHalfPlane _ (supportValue (K.1.1 : Set Point) _ - 1) true false = _ + rw [K.1.property.2.2.2.1, sub_self] + obtain ⟨t, ht, hqt⟩ : ∃ t ∈ Set.Icc paperGerverConstants.2.1 (Real.pi / 2), + q ∉ (innerWallUpperHalfPlanes K.val t).1 := by + by_contra hc + exact hq ⟨hqK, Set.mem_iInter₂.mpr fun t ht ↦ not_not.mp fun h ↦ hc ⟨t, ht, h⟩⟩ + have htlow : paperGerverConstants.2.1 < t := + ht.1.lt_of_ne fun h ↦ hqt (h ▸ hwall) + have hthigh : t < Real.pi / 2 := + ht.2.lt_of_ne fun h ↦ hqt (by rw [h, hUpEqR]; exact hup) + have hmem : q ∈ (distinguishedCapSides K.val).1.upperHalfPlane ∩ + innerQuadrant (K.val.val : Set Point) t := by + rw [(hmonR t ⟨htlow, ht.2⟩).2] + exact ⟨hwall, hqt⟩ + exact ⟨⟨⟨hup, hup⟩, + Set.mem_iUnion₂.mpr ⟨t, ⟨hrIoo.1.trans htlow, hthigh⟩, hmem.2⟩⟩, hwall⟩ + +/-- A point of a special cap above both the left inner wall at `φᴸ` and the bottom axis that +misses the left canonical tail lies in the niche, on the left side. -/ +private theorem mem_capNiche_inter_left_of_notMem_canonicalTail (K : SpecialCapSpace) + {q : Point} (hwall : q ∈ (innerWallUpperHalfPlanes K.val paperGerverConstants.2.2).2) + (hup : q ∈ normalHalfPlane ((Real.pi / 2 : ℝ) : Real.Angle) 0 true false) + (hqK : q ∈ (K.1.1 : Set Point)) (hq : q ∉ (canonicalTailSets K).2) : + q ∈ capNiche K.val ∩ (distinguishedCapSides K.val).2.upperHalfPlane := by + obtain ⟨-, hlIoo, -⟩ := paperGerverConstants_snd_mem_Ioo + obtain ⟨-, hmonL, -, -⟩ := cap_tail_monotonicity_intervals K + have hUpEqL : (innerWallUpperHalfPlanes K.val 0).2 = + normalHalfPlane ((Real.pi / 2 : ℝ) : Real.Angle) 0 true false := by + have hzero : ((((0 : ℝ) + Real.pi / 2 : ℝ) : Real.Angle)) = + ((Real.pi / 2 : ℝ) : Real.Angle) := by rw [zero_add] + change normalHalfPlane (((0 : ℝ) + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue (K.1.1 : Set Point) (((0 : ℝ) + Real.pi / 2 : ℝ) : Real.Angle) - 1) + true false = _ + rw [hzero, K.1.property.2.2.2.1, sub_self] + obtain ⟨t, ht, hqt⟩ : ∃ t ∈ Set.Icc (0 : ℝ) paperGerverConstants.2.2, + q ∉ (innerWallUpperHalfPlanes K.val t).2 := by + by_contra hc + exact hq ⟨hqK, Set.mem_iInter₂.mpr fun t ht ↦ not_not.mp fun h ↦ hc ⟨t, ht, h⟩⟩ + have htlow : 0 < t := ht.1.lt_of_ne fun h ↦ hqt (by rw [← h, hUpEqL]; exact hup) + have hthigh : t < paperGerverConstants.2.2 := ht.2.lt_of_ne fun h ↦ hqt (h ▸ hwall) + have hmem : q ∈ (distinguishedCapSides K.val).2.upperHalfPlane ∩ + innerQuadrant (K.val.val : Set Point) t := by + rw [(hmonL t ⟨ht.1, hthigh⟩).2] + exact ⟨hwall, hqt⟩ + exact ⟨⟨⟨hup, hup⟩, + Set.mem_iUnion₂.mpr ⟨t, ⟨htlow, hthigh.trans hlIoo.2⟩, hmem.2⟩⟩, hwall⟩ + +theorem canonicalTail_niche_area_lower_bounds (K : SpecialCapSpace) + (B D : ConvexBody Point) + (hB : (B : Set Point) = (canonicalTailSets K).1) + (hD : (D : Set Point) = (canonicalTailSets K).2) : + segmentArea (rightLeftTailArcs B D).1.startPoint + (distinguishedCapSides K.val).1.fanPoint - + convexArcArea B (Real.pi + paperGerverConstants.2.1) (3 * Real.pi / 2) ≤ + ClassicalResults.area + (capNiche K.val ∩ (distinguishedCapSides K.val).1.upperHalfPlane) ∧ + segmentArea (distinguishedCapSides K.val).2.fanPoint + (rightLeftTailArcs B D).2.endPoint - + convexArcArea D (3 * Real.pi / 2) (3 * Real.pi / 2 + paperGerverConstants.2.2) ≤ + ClassicalResults.area + (capNiche K.val ∩ (distinguishedCapSides K.val).2.upperHalfPlane) := by + obtain ⟨hrIoo, hlIoo, -⟩ := paperGerverConstants_snd_mem_Ioo + have hpi := Real.pi_pos + have hcast : ∀ a b : ℝ, a = b → ((a : ℝ) : Real.Angle) = ((b : ℝ) : Real.Angle) := + fun a b h => by rw [h] + have htop : supportValue (K.1.1 : Set Point) ((Real.pi / 2 : ℝ) : Real.Angle) = 1 := + K.1.property.2.2.2.1 + obtain ⟨-, -, -, hBsub, -, -, -, hDsub, -, hBeq, -, -, -, hDeq, -, -⟩ := + canonicalTailSets_properties K + -- endpoint support values of the two tails + have hB1 : supportValue (B : Set Point) + ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle) = + 1 - supportValue (K.1.1 : Set Point) + ((paperGerverConstants.2.1 : ℝ) : Real.Angle) := by + have h := hBeq paperGerverConstants.2.1 (by simp) + rw [hB] + linarith + have hB2 : supportValue (B : Set Point) ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 := by + have h := hBeq (Real.pi / 2) (by simp) + rw [hcast _ _ (show Real.pi + Real.pi / 2 = 3 * Real.pi / 2 by ring), htop] at h + rw [hB] + linarith + have hD1 : supportValue (D : Set Point) ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 := by + have h := hDeq 0 (by simp) + rw [hcast _ _ (show Real.pi / 2 + (0 : ℝ) = Real.pi / 2 by ring), + hcast _ _ (show 3 * Real.pi / 2 + (0 : ℝ) = 3 * Real.pi / 2 by ring), htop] at h + rw [hD] + linarith + have hD2 : supportValue (D : Set Point) + ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle) = + 1 - supportValue (K.1.1 : Set Point) + ((Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle) := by + have h := hDeq paperGerverConstants.2.2 (by simp) + rw [hD] + linarith + obtain ⟨hOB, hOD, hsegB, hsegD, -, -⟩ := + tailFanPoint_identities K.val B D hrIoo hlIoo hB1 hB2 hD1 hD2 + obtain ⟨hWmem, hZmem⟩ := specialCap_wedgeEndpoints_in_bottomEdge K + have hnichefin : MeasureTheory.volume (capNiche K.val) ≠ ⊤ := + ne_of_lt (niche_uniform_bounds.1 _ K.val).2.2.1 + have hRfin : ∀ S : Set Point, + MeasureTheory.volume (capNiche K.val ∩ S) ≠ ⊤ := fun S ↦ + ne_top_of_le_ne_top hnichefin (MeasureTheory.measure_mono Set.inter_subset_left) + have hKconv : Convex ℝ (K.1.1 : Set Point) := K.1.1.convex + have hKclosed : IsClosed (K.1.1 : Set Point) := K.1.1.isCompact.isClosed + constructor + · -- right tail + have hHa : (supportingLineHalfPlane (B : Set Point) + ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle)).2 = + (distinguishedCapSides K.val).1.upperHalfPlane := by + refine supportingLineHalfPlane_snd_eq_normalHalfPlane ?_ ?_ + · rw [hcast _ _ (show Real.pi + paperGerverConstants.2.1 = + paperGerverConstants.2.1 + Real.pi by ring), normalVector_add_pi] + · rw [hB1]; ring + have hHb : (supportingLineHalfPlane (B : Set Point) + ((3 * Real.pi / 2 : ℝ) : Real.Angle)).2 = + normalHalfPlane ((Real.pi / 2 : ℝ) : Real.Angle) 0 true false := by + refine supportingLineHalfPlane_snd_eq_normalHalfPlane ?_ ?_ + · rw [hcast _ _ (show 3 * Real.pi / 2 = Real.pi / 2 + Real.pi by ring), + normalVector_add_pi] + · rw [hB2]; ring + have hmain := convexArc_tangentRegion_area_le B + (Real.pi + paperGerverConstants.2.1) (3 * Real.pi / 2) + (by linarith [hrIoo.2]) (by linarith [hrIoo.1]) + hKconv hKclosed (by rw [hB]; exact hBsub) (by rw [hOB]; exact hWmem.1.1) + (hRfin _) (fun q hq hqK hqB ↦ by + have hq' := interior_subset hq + rw [hHa, hHb] at hq' + exact mem_capNiche_inter_right_of_notMem_canonicalTail K hq'.1 hq'.2 hqK + (by rwa [hB] at hqB)) + rw [hOB] at hmain + rw [show (rightLeftTailArcs B D).1.startPoint = + (edgeVertices B ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle)).1 from rfl, + show (distinguishedCapSides K.val).1.fanPoint = + (wedgeEndpoints K.val paperGerverConstants.2.1).1 from rfl] + linarith [hmain, hsegB] + · -- left tail + have hHa : (supportingLineHalfPlane (D : Set Point) + ((3 * Real.pi / 2 : ℝ) : Real.Angle)).2 = + normalHalfPlane ((Real.pi / 2 : ℝ) : Real.Angle) 0 true false := by + refine supportingLineHalfPlane_snd_eq_normalHalfPlane ?_ ?_ + · rw [hcast _ _ (show 3 * Real.pi / 2 = Real.pi / 2 + Real.pi by ring), + normalVector_add_pi] + · rw [hD1]; ring + have hHb : (supportingLineHalfPlane (D : Set Point) + ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)).2 = + (distinguishedCapSides K.val).2.upperHalfPlane := by + refine supportingLineHalfPlane_snd_eq_normalHalfPlane ?_ ?_ + · rw [hcast _ _ (show 3 * Real.pi / 2 + paperGerverConstants.2.2 = + (paperGerverConstants.2.2 + Real.pi / 2) + Real.pi by ring), normalVector_add_pi] + · rw [hD2, hcast _ _ (show Real.pi / 2 + paperGerverConstants.2.2 = + paperGerverConstants.2.2 + Real.pi / 2 by ring)] + ring + have hmain := convexArc_tangentRegion_area_le D + (3 * Real.pi / 2) (3 * Real.pi / 2 + paperGerverConstants.2.2) + (by linarith [hlIoo.1]) (by linarith [hlIoo.2]) + hKconv hKclosed (by rw [hD]; exact hDsub) (by rw [hOD]; exact hZmem.1.1) + (hRfin _) (fun q hq hqK hqD ↦ by + have hq' := interior_subset hq + rw [hHa, hHb] at hq' + exact mem_capNiche_inter_left_of_notMem_canonicalTail K hq'.2 hq'.1 hqK + (by rwa [hD] at hqD)) + rw [hOD] at hmain + rw [show (rightLeftTailArcs B D).2.endPoint = + (edgeVertices D ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)).2 + from rfl, + show (distinguishedCapSides K.val).2.fanPoint = + (wedgeEndpoints K.val paperGerverConstants.2.2).2 from rfl] + linarith [hmain, hsegD] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Tracing the area of a special cap along its upper boundary + +The area of a convex body is half the integral of its support function against its surface area +measure. For a special cap that measure is carried by the closed upper semicircle of normals, +because the two open quarter arcs of lower normals carry degenerate faces +(`MovingSofa.CapSpace.surfaceAreaMeasure_image_Ioo_lower_eq_zero`) and the bottom normal carries +support value zero. The injectivity condition provides angular densities on the two upper quarter +circles, so the four distinguished angles `0`, `φᴿ`, `φᴸ` and `π` are not atoms, and the semicircle +splits — up to a null set — into the four open arcs `(0, φᴿ)`, `(φᴿ, φᴸ)`, `(φᴸ, π / 2)`, +`(π / 2, π)` and the top normal `π / 2`. Each open arc is shorter than `π`, so the convex arc area +formula applies to it, and the top normal contributes half the mass of a single atom +(`MovingSofa.HasCapDensities.area_eq_upper_arcs_add_top_atom`). Evaluating the surface area +measure at that fixed angle is convex-linear on the convex domain of special caps, whence the cap +area agrees with the sum of the four arc areas modulo convex-linear functionals +(`MovingSofa.specialCapArea_equivalent_upper_arcs`). +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory +open scoped NNReal + +namespace MovingSofa + +/-- On an open arc shorter than `π` the support-area integral is twice the convex arc area. -/ +private theorem setIntegral_image_Ioo_eq_two_mul_convexArcArea (K : ConvexBody Point) + {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) : + ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue (K : Set Point) t ∂surfaceAreaMeasure K = + 2 * convexArcArea K a b := by + rw [(convexArc_area a b hab hba).2.1 K] + ring + +/-- Up to half the mass of the atom at its top normal, the area of a right-angle cap carrying +angular densities is the sum of the areas of the four upper boundary arcs cut out by the two +distinguished Gerver angles. -/ +theorem HasCapDensities.area_eq_upper_arcs_add_top_atom {C : RightAngleCapSpace} + {dr dl : ℝ → ℝ≥0} (hdens : HasCapDensities C dr dl) : + ClassicalResults.area (C.val : Set Point) = + (convexArcArea C.val 0 paperGerverConstants.2.1 + + convexArcArea C.val paperGerverConstants.2.1 paperGerverConstants.2.2 + + convexArcArea C.val paperGerverConstants.2.2 (Real.pi / 2) + + convexArcArea C.val (Real.pi / 2) Real.pi) + + (surfaceAreaMeasure C.val {((Real.pi / 2 : ℝ) : Real.Angle)}).toReal / 2 := by + have hpi := Real.pi_pos + obtain ⟨⟨hrpos, -⟩, ⟨-, hlT⟩, -⟩ := paperGerverConstants_snd_mem_Ioo + have hrl := paperGerverConstants_snd_fst_lt_snd_snd + set r := paperGerverConstants.2.1 + set l := paperGerverConstants.2.2 + -- ### The surface measure is finite, so the continuous support function is integrable + have hfinite : IsFiniteMeasure (surfaceAreaMeasure C.val) := + (surfaceAreaMeasure_face_union C.val).1 + have hint : Integrable (fun a : Real.Angle ↦ supportValue (C.val : Set Point) a) + (surfaceAreaMeasure C.val) := + ((compactSet_support_continuity (C.val : Set Point) (C.val : Set Point) C.val.nonempty' + C.val.isCompact' C.val.nonempty' C.val.isCompact').2.2.1).integrable_of_hasCompactSupport + (isCompact_univ.of_isClosed_subset isClosed_closure (Set.subset_univ _)) + -- ### The five pieces of the closed upper semicircle that carry the surface measure + set U : Set ℝ := Set.Ioo 0 r ∪ Set.Ioo r l ∪ Set.Ioo l (Real.pi / 2) ∪ + Set.Ioo (Real.pi / 2) Real.pi ∪ {Real.pi / 2} with hUdef + have hs1 : Set.Ioo (0 : ℝ) r ⊆ Set.Ioc 0 (2 * Real.pi) := fun x hx ↦ + ⟨hx.1, by linarith [hx.2]⟩ + have hs2 : Set.Ioo r l ⊆ Set.Ioc 0 (2 * Real.pi) := fun x hx ↦ + ⟨by linarith [hx.1], by linarith [hx.2]⟩ + have hs3 : Set.Ioo l (Real.pi / 2) ⊆ Set.Ioc 0 (2 * Real.pi) := fun x hx ↦ + ⟨by linarith [hx.1], by linarith [hx.2]⟩ + have hs4 : Set.Ioo (Real.pi / 2) Real.pi ⊆ Set.Ioc 0 (2 * Real.pi) := fun x hx ↦ + ⟨by linarith [hx.1], by linarith [hx.2]⟩ + have hs5 : ({Real.pi / 2} : Set ℝ) ⊆ Set.Ioc 0 (2 * Real.pi) := by + rintro x rfl + exact ⟨by linarith, by linarith⟩ + have hUsub : U ⊆ Set.Ioc 0 (2 * Real.pi) := + Set.union_subset (Set.union_subset (Set.union_subset (Set.union_subset hs1 hs2) hs3) hs4) hs5 + have hUIcc : U ⊆ Set.Icc 0 Real.pi := by + refine Set.union_subset (Set.union_subset (Set.union_subset (Set.union_subset + (fun x hx ↦ ⟨hx.1.le, by linarith [hx.2]⟩) + (fun x hx ↦ ⟨by linarith [hx.1], by linarith [hx.2]⟩)) + (fun x hx ↦ ⟨by linarith [hx.1], by linarith [hx.2]⟩)) + (fun x hx ↦ ⟨by linarith [hx.1], hx.2.le⟩)) ?_ + rintro x rfl + exact ⟨by linarith, by linarith⟩ + have hUmeas : MeasurableSet U := + (((measurableSet_Ioo.union measurableSet_Ioo).union measurableSet_Ioo).union + measurableSet_Ioo).union (measurableSet_singleton _) + -- ### Angular images of disjoint pieces of one turn are disjoint, and Borel pieces stay Borel + have hdisj : ∀ {X Y : Set ℝ}, X ⊆ Set.Ioc 0 (2 * Real.pi) → + Y ⊆ Set.Ioc 0 (2 * Real.pi) → Disjoint X Y → + Disjoint ((fun t : ℝ ↦ (t : Real.Angle)) '' X) + ((fun t : ℝ ↦ (t : Real.Angle)) '' Y) := by + intro X Y hX hY hXY + rw [Set.disjoint_left] + rintro a ⟨x, hx, rfl⟩ ⟨y, hy, hyx⟩ + have hyx' : y = x := + Real.Angle.injOn_coe_Ioc (a := 0) (b := 2 * Real.pi) (by linarith) (hY hy) (hX hx) hyx + exact Set.disjoint_left.mp hXY hx (hyx' ▸ hy) + have hmimg : ∀ {Y : Set ℝ}, MeasurableSet Y → Y ⊆ Set.Ioc 0 (2 * Real.pi) → + MeasurableSet ((fun t : ℝ ↦ (t : Real.Angle)) '' Y) := fun hY hYs ↦ + Real.Angle.measurableSet_image_of_subset_Ioc (by linarith) hY hYs + -- ### Splitting the last piece off an angular union + have hstep : ∀ {X Y : Set ℝ}, X ⊆ Set.Ioc 0 (2 * Real.pi) → + Y ⊆ Set.Ioc 0 (2 * Real.pi) → Disjoint X Y → MeasurableSet Y → + ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' (X ∪ Y), + supportValue (C.val : Set Point) t ∂surfaceAreaMeasure C.val = + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' X, + supportValue (C.val : Set Point) t ∂surfaceAreaMeasure C.val) + + ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Y, + supportValue (C.val : Set Point) t ∂surfaceAreaMeasure C.val := by + intro X Y hX hY hXY hmY + rw [Set.image_union, setIntegral_union (hdisj hX hY hXY) (hmimg hmY hY) + hint.integrableOn hint.integrableOn] + -- ### The four distinguished angles of the upper semicircle are not atoms + have hatom0 : surfaceAreaMeasure C.val {((0 : ℝ) : Real.Angle)} = 0 := + hdens.surfaceAreaMeasure_singleton_eq_zero_of_mem_Ico ⟨le_rfl, by positivity⟩ + have hatomr : surfaceAreaMeasure C.val {(r : Real.Angle)} = 0 := + hdens.surfaceAreaMeasure_singleton_eq_zero_of_mem_Ico ⟨hrpos.le, by linarith⟩ + have hatoml : surfaceAreaMeasure C.val {(l : Real.Angle)} = 0 := + hdens.surfaceAreaMeasure_singleton_eq_zero_of_mem_Ico ⟨by linarith, hlT⟩ + have hatompi : surfaceAreaMeasure C.val {((Real.pi : ℝ) : Real.Angle)} = 0 := by + have h := hdens.surfaceAreaMeasure_singleton_eq_zero_of_mem_Ioc + (t := Real.pi / 2) ⟨by positivity, le_rfl⟩ + rwa [show (Real.pi / 2 + Real.pi / 2 : ℝ) = Real.pi by ring] at h + -- ### The five pieces cover the upper semicircle up to those four angles + have hcover : Set.Icc (0 : ℝ) Real.pi ⊆ U ∪ {0, r, l, Real.pi} := by + intro x hx + rcases eq_or_lt_of_le hx.1 with h0 | h0 + · exact Or.inr (by simp [← h0]) + rcases lt_trichotomy x r with h | h | h + · exact Or.inl (Or.inl (Or.inl (Or.inl (Or.inl ⟨h0, h⟩)))) + · exact Or.inr (by simp [h]) + rcases lt_trichotomy x l with h' | h' | h' + · exact Or.inl (Or.inl (Or.inl (Or.inl (Or.inr ⟨h, h'⟩)))) + · exact Or.inr (by simp [h']) + rcases lt_trichotomy x (Real.pi / 2) with h'' | h'' | h'' + · exact Or.inl (Or.inl (Or.inl (Or.inr ⟨h', h''⟩))) + · exact Or.inl (Or.inr h'') + rcases eq_or_lt_of_le hx.2 with h₃ | h₃ + · exact Or.inr (by simp [h₃]) + · exact Or.inl (Or.inl (Or.inr ⟨h'', h₃⟩)) + have hnull : surfaceAreaMeasure C.val + ((fun t : ℝ ↦ (t : Real.Angle)) '' Set.Icc 0 Real.pi \ + (fun t : ℝ ↦ (t : Real.Angle)) '' U) = 0 := by + refine measure_mono_null (t := {((0 : ℝ) : Real.Angle), (r : Real.Angle), (l : Real.Angle), + ((Real.pi : ℝ) : Real.Angle)}) ?_ ?_ + · rw [Set.sdiff_subset_iff] + refine (Set.image_mono hcover).trans ?_ + rw [Set.image_union] + exact Set.union_subset_union_right _ (by simp [Set.image_insert_eq]) + · simp only [Set.insert_eq] + exact measure_union_null hatom0 + (measure_union_null hatomr (measure_union_null hatoml hatompi)) + -- ### The support-area integral is carried by the angular image of the five pieces + have hSmeas : MeasurableSet ((fun t : ℝ ↦ (t : Real.Angle)) '' Set.Icc 0 Real.pi) := + (isCompact_Icc.image Real.Angle.continuous_coe).isClosed.measurableSet + have htotal : ∫ a, supportValue (C.val : Set Point) a ∂surfaceAreaMeasure C.val = + ∫ a in (fun t : ℝ ↦ (t : Real.Angle)) '' U, + supportValue (C.val : Set Point) a ∂surfaceAreaMeasure C.val := by + rw [← integral_add_compl hSmeas hint, + C.setIntegral_compl_image_Icc_zero_pi_eq_zero _ C.property.2.2.2.2.2.1, add_zero, + ← Set.union_sdiff_cancel (Set.image_mono hUIcc), + setIntegral_union Set.disjoint_sdiff_right (hSmeas.diff (hmimg hUmeas hUsub)) + hint.integrableOn hint.integrableOn, + setIntegral_measure_zero _ hnull, add_zero] + -- ### The four short arcs contribute their arc areas and the top normal its atom + have hI1 : ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo (0 : ℝ) r, + supportValue (C.val : Set Point) t ∂surfaceAreaMeasure C.val = + 2 * convexArcArea C.val 0 r := + setIntegral_image_Ioo_eq_two_mul_convexArcArea C.val hrpos (by linarith) + have hI2 : ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo r l, + supportValue (C.val : Set Point) t ∂surfaceAreaMeasure C.val = + 2 * convexArcArea C.val r l := + setIntegral_image_Ioo_eq_two_mul_convexArcArea C.val hrl (by linarith) + have hI3 : ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo l (Real.pi / 2), + supportValue (C.val : Set Point) t ∂surfaceAreaMeasure C.val = + 2 * convexArcArea C.val l (Real.pi / 2) := + setIntegral_image_Ioo_eq_two_mul_convexArcArea C.val hlT (by linarith) + have hI4 : ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo (Real.pi / 2) Real.pi, + supportValue (C.val : Set Point) t ∂surfaceAreaMeasure C.val = + 2 * convexArcArea C.val (Real.pi / 2) Real.pi := + setIntegral_image_Ioo_eq_two_mul_convexArcArea C.val (by linarith) (by linarith) + have hIT : ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' ({Real.pi / 2} : Set ℝ), + supportValue (C.val : Set Point) t ∂surfaceAreaMeasure C.val = + (surfaceAreaMeasure C.val {((Real.pi / 2 : ℝ) : Real.Angle)}).toReal := by + rw [Set.image_singleton, integral_singleton, C.property.2.2.2.1, smul_eq_mul, mul_one, + measureReal_def] + -- ### Assembling the support-area identity + rw [convexBody_area_support_integral.1 C.val, htotal, hUdef, + hstep (Set.union_subset (Set.union_subset (Set.union_subset hs1 hs2) hs3) hs4) hs5 + (by rw [Set.disjoint_singleton_right] + rintro (((⟨-, h⟩ | ⟨-, h⟩) | ⟨-, h⟩) | ⟨h, -⟩) <;> linarith) + (measurableSet_singleton _), + hstep (Set.union_subset (Set.union_subset hs1 hs2) hs3) hs4 + (by rw [Set.disjoint_left] + rintro x ((⟨-, h⟩ | ⟨-, h⟩) | ⟨-, h⟩) ⟨h', -⟩ <;> linarith) + measurableSet_Ioo, + hstep (Set.union_subset hs1 hs2) hs3 + (by rw [Set.disjoint_left] + rintro x (⟨-, h⟩ | ⟨-, h⟩) ⟨h', -⟩ <;> linarith) + measurableSet_Ioo, + hstep hs1 hs2 + (by rw [Set.disjoint_left] + rintro x ⟨-, h⟩ ⟨h', -⟩ + linarith) + measurableSet_Ioo, + hI1, hI2, hI3, hI4, hIT] + ring + +theorem specialCapArea_equivalent_upper_arcs : + EquivalentModuloConvexLinear specialCapCombination + (fun K ↦ ClassicalResults.area (K.val.val : Set Point)) + (fun K ↦ convexArcArea K.val.val 0 paperGerverConstants.2.1 + + convexArcArea K.val.val paperGerverConstants.2.1 paperGerverConstants.2.2 + + convexArcArea K.val.val paperGerverConstants.2.2 (Real.pi / 2) + + convexArcArea K.val.val (Real.pi / 2) Real.pi) := by + -- ### The discrepancy is half the mass of the surface measure at the fixed top normal + have key : ∀ M : SpecialCapSpace, + ClassicalResults.area (M.val.val : Set Point) - + (convexArcArea M.val.val 0 paperGerverConstants.2.1 + + convexArcArea M.val.val paperGerverConstants.2.1 paperGerverConstants.2.2 + + convexArcArea M.val.val paperGerverConstants.2.2 (Real.pi / 2) + + convexArcArea M.val.val (Real.pi / 2) Real.pi) = + (surfaceAreaMeasure M.val.val {((Real.pi / 2 : ℝ) : Real.Angle)}).toReal / 2 := + fun M ↦ by + obtain ⟨dr, dl, hdens, -⟩ := M.property.1.1 + rw [hdens.area_eq_upper_arcs_add_top_atom] + ring + intro t K L + have hKfin : IsFiniteMeasure (surfaceAreaMeasure K.val.val) := + (surfaceAreaMeasure_face_union K.val.val).1 + have hLfin : IsFiniteMeasure (surfaceAreaMeasure L.val.val) := + (surfaceAreaMeasure_face_union L.val.val).1 + simp only [realCombination, key] + rw [specialCap_isConvexDomain.1 t K L, surfaceAreaMeasure_convexBodyCombination, + Measure.add_apply, Measure.smul_apply, Measure.smul_apply, smul_eq_mul, smul_eq_mul, + ENNReal.toReal_add (ENNReal.mul_ne_top ENNReal.ofReal_ne_top (measure_ne_top _ _)) + (ENNReal.mul_ne_top ENNReal.ofReal_ne_top (measure_ne_top _ _)), + ENNReal.toReal_mul, ENNReal.toReal_mul, + ENNReal.toReal_ofReal (by linarith [t.2.2] : (0 : ℝ) ≤ 1 - (t : ℝ)), + ENNReal.toReal_ofReal t.2.1] + ring + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Area.Mamikon.Middle`. +* `Area.Mamikon.TangentValues`. +* `Area.Mamikon.SofaConvex`. +* `Area.QVariation`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The middle Mamikon functional of a special cap + +`middleMamikon` is the evaluated four-term Mamikon decomposition of the part of a special cap's +niche cut out by the two straight tangent paths on `[0, φᴿ]` and `[φᴸ, π / 2]`, the outer-corner arc +on the middle window `[φᴿ, φᴸ]` and the terminal tangent path on `[π / 2, π]`. This module proves +that it agrees with `-upperBoundMiddle` modulo convex-linear functionals of the cap. + +The four summands already express their straight paths as endpoint segment areas, so the whole +functional is a sum of eleven signed segment areas, one curve area and four convex arc areas. The +four arc areas add up to the cap area modulo a convex-linear functional +(`specialCapArea_equivalent_upper_arcs`), which supplies the `-|K|` of the upper bound. Of the +eleven segments, five are convex-linear and therefore discarded +(`middleMamikon_segments_isConvexLinear`): all their endpoints move convex-linearly with the cap and +stay on the two fixed horizontal lines `y = 0` and `y = 1`, the latter being the top supporting +line, so no determinant of two moving coordinates ever appears. Two more pairs collapse at the two +Gerver angles, where the extreme faces are singletons: at `φᴿ` the tangent-line intersection, the +face and the outer corner are collinear, so the two segments merge +(`middleMamikon_segments_merge_right`), and at `φᴸ` the tangent-line intersection *is* the outer +corner, so the two segments cancel (`middleMamikon_segments_cancel_left`). What remains are exactly +the three comparisons of `cornerArea_equivalent_modulo_linear`, the last of them reversed. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The signed area between a convex boundary arc and the specified broken straight path. -/ +def straightMamikonValue (K : ConvexBody Point) (a b : ℝ) (p q : Point) : ℝ := + segmentArea (edgeVertices K (a : Real.Angle)).1 p + segmentArea p q + + segmentArea q (edgeVertices K (b : Real.Angle)).2 - convexArcArea K a b + +/-- The middle Mamikon functional constructed from the special cap’s hallway-corner geometry. -/ +def middleMamikon (K : SpecialCapSpace) : ℝ := + let B := K.val.val + let r := paperGerverConstants.2.1 + let l := paperGerverConstants.2.2 + let T := Real.pi / 2 + let y := fun t : ℝ ↦ (rotatingHallwayParts (B : Set Point) (t : Real.Angle)).outerCorner + straightMamikonValue B 0 r + (supportingIntersection B 0 (T : Real.Angle)) + (supportingIntersection B (r : Real.Angle) (T : Real.Angle)) + + (segmentArea (edgeVertices B (r : Real.Angle)).1 (y r) + + curveAreaFunctional (capOuterMiddleBV K) + + segmentArea (y l) (edgeVertices B (l : Real.Angle)).2 - convexArcArea B r l) + + straightMamikonValue B l T + (supportingIntersection B (l : Real.Angle) ((T + l : ℝ) : Real.Angle)) + (supportingIntersection B (T : Real.Angle) ((T + l : ℝ) : Real.Angle)) + + tangentMamikonValue B T Real.pi + +/-! ### The singleton faces of a special cap and their positions -/ + +/-- The extreme faces of a special cap at the upper normals other than the vertical one are +singletons, because its injectivity condition supplies angular densities. -/ +private theorem specialCap_edgeVertices_eq (K : SpecialCapSpace) {t : ℝ} + (ht : t ∈ Set.Icc 0 Real.pi) (htop : t ≠ Real.pi / 2) : + (edgeVertices K.val.val (t : Real.Angle)).1 = + (edgeVertices K.val.val (t : Real.Angle)).2 := by + obtain ⟨r, s, hdens, -⟩ := K.property.1.1 + exact capDensities_edgeVertices_eq K.val ⟨r, s, hdens⟩ ht htop + +/-- Both horizontal extreme faces of a special cap lie on the base line: they are singletons, and a +singleton horizontal face of a right-angle cap cannot have positive height. -/ +private theorem specialCap_horizontal_edgeVertices_apply_one (K : SpecialCapSpace) : + (edgeVertices K.val.val ((0 : ℝ) : Real.Angle)).1 1 = 0 ∧ + (edgeVertices K.val.val ((Real.pi : ℝ) : Real.Angle)).2 1 = 0 := by + have hpi := Real.pi_pos + have h0 := specialCap_edgeVertices_eq K (t := 0) ⟨le_rfl, hpi.le⟩ + (by positivity : (0 : ℝ) < Real.pi / 2).ne + have hp := specialCap_edgeVertices_eq K (t := Real.pi) ⟨hpi.le, le_rfl⟩ + (by linarith : Real.pi / 2 < Real.pi).ne' + refine ⟨K.val.edgeVertices_fst_apply_one_eq_zero Real.sin_zero h0, ?_⟩ + rw [← hp] + exact K.val.edgeVertices_fst_apply_one_eq_zero Real.sin_pi hp + +/-- At the left Gerver angle the two supporting lines of the middle Mamikon loop are at angular +difference `π / 2`, so they meet at the outer corner of the supporting hallway. -/ +private theorem specialCap_supportingIntersection_left_eq_outerCorner (K : SpecialCapSpace) : + supportingIntersection K.val.val (paperGerverConstants.2.2 : Real.Angle) + ((Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle) = + (rotatingHallwayParts (K.val.val : Set Point) + (paperGerverConstants.2.2 : Real.Angle)).outerCorner := by + rw [show (Real.pi / 2 + paperGerverConstants.2.2 : ℝ) = + paperGerverConstants.2.2 + Real.pi / 2 from by ring] + exact supportingIntersection_add_pi_div_two_eq_outerCorner _ _ + +/-! ### The convex-linear segments -/ + +/-- The signed area of the segment between two convex-linear point functionals of a special cap +that both keep a constant height is convex-linear. -/ +private theorem segmentArea_isConvexLinear_of_apply_one_eq (P Q : SpecialCapSpace → Point) + {a b : ℝ} + (hP : ∀ (t : unitInterval) (K L : SpecialCapSpace), + P (specialCapCombination t K L) = (1 - (t : ℝ)) • P K + (t : ℝ) • P L) + (hQ : ∀ (t : unitInterval) (K L : SpecialCapSpace), + Q (specialCapCombination t K L) = (1 - (t : ℝ)) • Q K + (t : ℝ) • Q L) + (hPa : ∀ K, P K 1 = a) (hQb : ∀ K, Q K 1 = b) : + IsConvexLinear specialCapCombination realCombination fun K ↦ segmentArea (P K) (Q K) := + fun t K L ↦ by + change segmentArea (P (specialCapCombination t K L)) (Q (specialCapCombination t K L)) = + realCombination t (segmentArea (P K) (Q K)) (segmentArea (P L) (Q L)) + rw [hP, hQ, realCombination] + exact segmentArea_combination_of_apply_one_eq _ ((hPa K).trans (hPa L).symm) + ((hQb K).trans (hQb L).symm) + +/-- The five straight segments that the reductions leave in place have convex-linear total signed +area. In the order of the four-term definition they are the bottom segment at the horizontal normal +`0`, the chord of the top supporting line from `l_K^T(0)` to `l_K^T(φᴿ)`, the chord from +`l_K^{T + φᴸ}(T)` to the negative top vertex `v_K^-(T)`, the chord from the positive top vertex +`v_K^+(T)` to `l_K^π(T)`, and the bottom segment at the normal `π`. All ten endpoints are +convex-linear in the cap, and each lies on one of the two fixed horizontal lines `y = 0` — the two +singleton horizontal contacts — and `y = 1` — the top supporting line. -/ +private theorem middleMamikon_segments_isConvexLinear : + IsConvexLinear specialCapCombination realCombination fun K ↦ + segmentArea (edgeVertices K.val.val ((0 : ℝ) : Real.Angle)).1 + (supportingIntersection K.val.val 0 ((Real.pi / 2 : ℝ) : Real.Angle)) + + segmentArea (supportingIntersection K.val.val 0 ((Real.pi / 2 : ℝ) : Real.Angle)) + (supportingIntersection K.val.val (paperGerverConstants.2.1 : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) + + segmentArea (supportingIntersection K.val.val ((Real.pi / 2 : ℝ) : Real.Angle) + ((Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)) + (edgeVertices K.val.val ((Real.pi / 2 : ℝ) : Real.Angle)).2 + + segmentArea (edgeVertices K.val.val ((Real.pi / 2 : ℝ) : Real.Angle)).1 + (supportingIntersection K.val.val ((Real.pi / 2 : ℝ) : Real.Angle) + ((Real.pi : ℝ) : Real.Angle)) + + segmentArea (supportingIntersection K.val.val ((Real.pi / 2 : ℝ) : Real.Angle) + ((Real.pi : ℝ) : Real.Angle)) + (edgeVertices K.val.val ((Real.pi : ℝ) : Real.Angle)).2 := by + have hpi := Real.pi_pos + obtain ⟨hr, hl, -⟩ := paperGerverConstants_snd_mem_Ioo + -- ### The endpoints move convex-linearly + have hev := fun (a : Real.Angle) (t : unitInterval) (M N : SpecialCapSpace) ↦ + (specialCap_maps_linear t M N).1 a + have hsi := fun (a b : ℝ) (hab : a < b) (hba : b < a + Real.pi) (t : unitInterval) + (M N : SpecialCapSpace) ↦ (specialCap_maps_linear t M N).2 a b hab hba + have hsi0 : ∀ (t : unitInterval) (M N : SpecialCapSpace), + supportingIntersection (specialCapCombination t M N).val.val 0 + ((Real.pi / 2 : ℝ) : Real.Angle) = + (1 - (t : ℝ)) • supportingIntersection M.val.val 0 ((Real.pi / 2 : ℝ) : Real.Angle) + + (t : ℝ) • supportingIntersection N.val.val 0 ((Real.pi / 2 : ℝ) : Real.Angle) := + fun t M N ↦ by + simpa only [Real.Angle.coe_zero] using + hsi 0 (Real.pi / 2) (by positivity) (by linarith) t M N + -- ### The endpoints keep their heights + have htop : ∀ (M : SpecialCapSpace) (p : Point), + inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue (M.val.val : Set Point) ((Real.pi / 2 : ℝ) : Real.Angle) → p 1 = 1 := + fun M _ hp ↦ M.val.apply_one_eq_one hp + have hsiL : ∀ (M : SpecialCapSpace) (s : ℝ), + supportingIntersection M.val.val ((Real.pi / 2 : ℝ) : Real.Angle) (s : Real.Angle) 1 = 1 := + fun M s ↦ htop M _ (supportingIntersection_inner_left _ _ s) + have hsiR : ∀ (M : SpecialCapSpace) (s : ℝ), Real.sin (Real.pi / 2 - s) ≠ 0 → + supportingIntersection M.val.val (s : Real.Angle) ((Real.pi / 2 : ℝ) : Real.Angle) 1 = 1 := + fun M s hs ↦ htop M _ (supportingIntersection_inner_right _ s _ hs) + have hsi0h : ∀ M : SpecialCapSpace, + supportingIntersection M.val.val 0 ((Real.pi / 2 : ℝ) : Real.Angle) 1 = 1 := fun M ↦ by + simpa only [Real.Angle.coe_zero] using + hsiR M 0 (by rw [sub_zero, Real.sin_pi_div_two]; norm_num) + have hvtop : ∀ M : SpecialCapSpace, + (edgeVertices M.val.val ((Real.pi / 2 : ℝ) : Real.Angle)).1 1 = 1 ∧ + (edgeVertices M.val.val ((Real.pi / 2 : ℝ) : Real.Angle)).2 1 = 1 := + fun M ↦ ⟨htop M _ (edgeVertices_fst_mem _ _).2, htop M _ (edgeVertices_snd_mem _ _).2⟩ + have hsinr : Real.sin (Real.pi / 2 - paperGerverConstants.2.1) ≠ 0 := by + rw [Real.sin_pi_div_two_sub] + exact (Real.cos_pos_of_mem_Ioo ⟨by linarith [hr.1], hr.2⟩).ne' + -- ### The five segments + have h1 := segmentArea_isConvexLinear_of_apply_one_eq + (fun M ↦ (edgeVertices M.val.val ((0 : ℝ) : Real.Angle)).1) + (fun M ↦ supportingIntersection M.val.val 0 ((Real.pi / 2 : ℝ) : Real.Angle)) + (fun t M N ↦ (hev _ t M N).1) hsi0 + (fun M ↦ (specialCap_horizontal_edgeVertices_apply_one M).1) hsi0h + have h2 := segmentArea_isConvexLinear_of_apply_one_eq + (fun M ↦ supportingIntersection M.val.val 0 ((Real.pi / 2 : ℝ) : Real.Angle)) + (fun M ↦ supportingIntersection M.val.val (paperGerverConstants.2.1 : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) + hsi0 (hsi paperGerverConstants.2.1 (Real.pi / 2) hr.2 (by linarith [hr.1])) + hsi0h (fun M ↦ hsiR M paperGerverConstants.2.1 hsinr) + have h3 := segmentArea_isConvexLinear_of_apply_one_eq + (fun M ↦ supportingIntersection M.val.val ((Real.pi / 2 : ℝ) : Real.Angle) + ((Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)) + (fun M ↦ (edgeVertices M.val.val ((Real.pi / 2 : ℝ) : Real.Angle)).2) + (hsi (Real.pi / 2) (Real.pi / 2 + paperGerverConstants.2.2) (by linarith [hl.1]) + (by linarith [hl.2])) + (fun t M N ↦ (hev _ t M N).2) + (fun M ↦ hsiL M (Real.pi / 2 + paperGerverConstants.2.2)) (fun M ↦ (hvtop M).2) + have h4 := segmentArea_isConvexLinear_of_apply_one_eq + (fun M ↦ (edgeVertices M.val.val ((Real.pi / 2 : ℝ) : Real.Angle)).1) + (fun M ↦ supportingIntersection M.val.val ((Real.pi / 2 : ℝ) : Real.Angle) + ((Real.pi : ℝ) : Real.Angle)) + (fun t M N ↦ (hev _ t M N).1) (hsi (Real.pi / 2) Real.pi (by linarith) (by linarith)) + (fun M ↦ (hvtop M).1) (fun M ↦ hsiL M Real.pi) + have h5 := segmentArea_isConvexLinear_of_apply_one_eq + (fun M ↦ supportingIntersection M.val.val ((Real.pi / 2 : ℝ) : Real.Angle) + ((Real.pi : ℝ) : Real.Angle)) + (fun M ↦ (edgeVertices M.val.val ((Real.pi : ℝ) : Real.Angle)).2) + (hsi (Real.pi / 2) Real.pi (by linarith) (by linarith)) (fun t M N ↦ (hev _ t M N).2) + (fun M ↦ hsiL M Real.pi) + (fun M ↦ (specialCap_horizontal_edgeVertices_apply_one M).2) + intro t M N + have e1 := h1 t M N + have e2 := h2 t M N + have e3 := h3 t M N + have e4 := h4 t M N + have e5 := h5 t M N + simp only [realCombination] at e1 e2 e3 e4 e5 ⊢ + linear_combination e1 + e2 + e3 + e4 + e5 + +/-! ### The two collapsing pairs at the Gerver angles -/ + +/-- At the right Gerver angle the tangent-line intersection, the singleton extreme face and the +outer corner all lie on the same supporting line, so the two segments through the face merge into a +single chord. -/ +private theorem middleMamikon_segments_merge_right (K : SpecialCapSpace) : + segmentArea (supportingIntersection K.val.val (paperGerverConstants.2.1 : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) + (edgeVertices K.val.val (paperGerverConstants.2.1 : Real.Angle)).2 + + segmentArea (edgeVertices K.val.val (paperGerverConstants.2.1 : Real.Angle)).1 + (rotatingHallwayParts (K.val.val : Set Point) + (paperGerverConstants.2.1 : Real.Angle)).outerCorner = + segmentArea (supportingIntersection K.val.val (paperGerverConstants.2.1 : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) + (rotatingHallwayParts (K.val.val : Set Point) + (paperGerverConstants.2.1 : Real.Angle)).outerCorner := by + have hpi := Real.pi_pos + obtain ⟨hr, -, -⟩ := paperGerverConstants_snd_mem_Ioo + have h1 := supportingIntersection_inner_left K.val.val paperGerverConstants.2.1 (Real.pi / 2) + have h2 : inner ℝ (edgeVertices K.val.val (paperGerverConstants.2.1 : Real.Angle)).2 + (normalVector (paperGerverConstants.2.1 : Real.Angle)) = + supportValue (K.val.val : Set Point) (paperGerverConstants.2.1 : Real.Angle) := + (edgeVertices_snd_mem _ _).2 + have h3 : inner ℝ (rotatingHallwayParts (K.val.val : Set Point) + (paperGerverConstants.2.1 : Real.Angle)).outerCorner + (normalVector (paperGerverConstants.2.1 : Real.Angle)) = + supportValue (K.val.val : Set Point) (paperGerverConstants.2.1 : Real.Angle) := by + rw [outerCorner_eq_support_sum, inner_add_left, real_inner_smul_left, real_inner_smul_left, + inner_normalVector_self, inner_tangentVector_normalVector_real, sub_self, Real.sin_zero] + ring + have h := segmentArea_sub_segmentArea_of_inner_normalVector_eq h1 h3 h2 + rw [specialCap_edgeVertices_eq K ⟨hr.1.le, by linarith [hr.2]⟩ hr.2.ne] + linarith [segmentArea_swap (edgeVertices K.val.val + (paperGerverConstants.2.1 : Real.Angle)).2 + (rotatingHallwayParts (K.val.val : Set Point) + (paperGerverConstants.2.1 : Real.Angle)).outerCorner] + +/-- At the left Gerver angle the extreme face is a single point and the tangent-line intersection is +the outer corner, so the two segments through the face cancel by antisymmetry. -/ +private theorem middleMamikon_segments_cancel_left (K : SpecialCapSpace) : + segmentArea (rotatingHallwayParts (K.val.val : Set Point) + (paperGerverConstants.2.2 : Real.Angle)).outerCorner + (edgeVertices K.val.val (paperGerverConstants.2.2 : Real.Angle)).2 + + segmentArea (edgeVertices K.val.val (paperGerverConstants.2.2 : Real.Angle)).1 + (supportingIntersection K.val.val (paperGerverConstants.2.2 : Real.Angle) + ((Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)) = 0 := by + have hpi := Real.pi_pos + obtain ⟨-, hl, -⟩ := paperGerverConstants_snd_mem_Ioo + rw [specialCap_supportingIntersection_left_eq_outerCorner, + specialCap_edgeVertices_eq K ⟨hl.1.le, by linarith [hl.2]⟩ hl.2.ne] + linarith [segmentArea_swap (rotatingHallwayParts (K.val.val : Set Point) + (paperGerverConstants.2.2 : Real.Angle)).outerCorner + (edgeVertices K.val.val (paperGerverConstants.2.2 : Real.Angle)).2] + +/-! ### The equivalence -/ + +theorem middleMamikon_equivalent_neg_upperBoundMiddle : + EquivalentModuloConvexLinear specialCapCombination middleMamikon + (fun K ↦ -upperBoundMiddle K) := by + obtain ⟨F, hFval, hmid, hright, hleft⟩ := cornerArea_equivalent_modulo_linear + have hF : ∀ M : SpecialCapSpace, F M = capOuterMiddleBV M := fun M ↦ + Subtype.ext ((hFval M).trans (funext (capOuterMiddleBV_val M)).symm) + -- The chord closing the third straight path reverses the left comparison chord. + have hrev : ∀ M : SpecialCapSpace, + segmentArea (supportingIntersection M.val.val (paperGerverConstants.2.2 : Real.Angle) + ((Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)) + (supportingIntersection M.val.val ((Real.pi / 2 : ℝ) : Real.Angle) + ((Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)) = + -segmentArea (supportingIntersection M.val.val ((Real.pi / 2 : ℝ) : Real.Angle) + ((Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)) + (rotatingHallwayParts (M.val.val : Set Point) + (paperGerverConstants.2.2 : Real.Angle)).outerCorner := fun M ↦ by + rw [specialCap_supportingIntersection_left_eq_outerCorner] + exact segmentArea_swap _ _ + -- The right wedge segment of the upper bound runs in the opposite orientation. + have hswap : ∀ M : SpecialCapSpace, + segmentArea (distinguishedCapSides M.val).1.corner + (distinguishedCapSides M.val).1.fanPoint = + -segmentArea (distinguishedCapSides M.val).1.fanPoint + (distinguishedCapSides M.val).1.corner := fun M ↦ segmentArea_swap _ _ + intro t K L + have e1 := specialCapArea_equivalent_upper_arcs t K L + have e2 := hmid t K L + have e3 := hright t K L + have e4 := hleft t K L + have f := middleMamikon_segments_isConvexLinear t K L + simp only [hF, realCombination] at e1 e2 e3 e4 f + simp only [middleMamikon, straightMamikonValue, tangentMamikonValue, upperBoundMiddle, + realCombination, hrev, hswap] + linear_combination f + e1 + e2 + e3 - e4 + + middleMamikon_segments_merge_right (specialCapCombination t K L) + + middleMamikon_segments_cancel_left (specialCapCombination t K L) - + (1 - (t : ℝ)) * (middleMamikon_segments_merge_right K + + middleMamikon_segments_cancel_left K) - + (t : ℝ) * (middleMamikon_segments_merge_right L + + middleMamikon_segments_cancel_left L) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Mamikon values of tangent-line chords + +For a fixed tangent normal `q`, the tangent-line parametrization of a convex body is a +continuous bounded-variation path, convex-linear in the body, each of whose values lies on the +supporting line at its own path parameter. Mamikon convexity therefore makes the enclosed area +`straightMamikonValue` a convex quadratic functional of the body, and the terminal case `q = b` +does the same for `tangentMamikonValue`. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The Mamikon value of a straight tangent-line chord is a convex quadratic functional of the +body. -/ +theorem straightMamikon_quadratic_convex (t a b : ℝ) + (ha : a ∈ Set.Ioc (t - Real.pi) t) (hb : b ∈ Set.Ioc (t - Real.pi) t) + (hab : a < b) (hba : b < a + Real.pi) : + IsQuadraticFunctional convexBodyCombination + (fun K ↦ straightMamikonValue K a b (tangentLinePath K t ⟨a, ha⟩) + (tangentLinePath K t ⟨b, hb⟩)) ∧ + IsConvexFunctional convexBodyCombination + (fun K ↦ straightMamikonValue K a b (tangentLinePath K t ⟨a, ha⟩) + (tangentLinePath K t ⟨b, hb⟩)) false := by + obtain ⟨F, hFval, hFlin⟩ := tangentLinePath_convexLinear t a b ha hb hab.le + have hF : ∀ (K : ConvexBody Point) (s : Set.Icc a b), + (F K).val s ∈ (supportingLineHalfPlane (K : Set Point) ((s : ℝ) : Real.Angle)).1 := by + intro K s + rw [hFval K] + exact tangentLinePath_mem_supportingLine K t + ⟨(s : ℝ), lt_of_lt_of_le ha.1 s.property.1, le_trans s.property.2 hb.2⟩ + have hval : ∀ K : ConvexBody Point, + mamikonFunctional K a b hab hba (F K) (hF K) = + straightMamikonValue K a b (tangentLinePath K t ⟨a, ha⟩) + (tangentLinePath K t ⟨b, hb⟩) := by + intro K + have hchoose : F K = (tangentLinePath_segment_area K t a b ha hb hab.le).choose := + Subtype.ext ((hFval K).trans + (tangentLinePath_segment_area K t a b ha hb hab.le).choose_spec.1.symm) + have hstart : (F K).val ⟨a, le_rfl, hab.le⟩ = tangentLinePath K t ⟨a, ha⟩ := by + rw [hFval K]; rfl + have hend : (F K).val ⟨b, hab.le, le_rfl⟩ = tangentLinePath K t ⟨b, hb⟩ := by + rw [hFval K]; rfl + have harea : curveAreaFunctional (F K) = + segmentArea (tangentLinePath K t ⟨a, ha⟩) (tangentLinePath K t ⟨b, hb⟩) := by + rw [hchoose] + exact (tangentLinePath_segment_area K t a b ha hb hab.le).choose_spec.2.2.2 + unfold mamikonFunctional straightMamikonValue + rw [hstart, hend, harea] + have hmain := mamikon_quadratic_convex a b hab hba F hF hFlin + rw [funext hval] at hmain + exact hmain + +/-- The Mamikon value of a terminal tangent normal is a convex quadratic functional of the body. -/ +theorem tangentMamikon_quadratic_convex (a b : ℝ) (hab : a < b) (hba : b < a + Real.pi) : + IsQuadraticFunctional convexBodyCombination (fun K ↦ tangentMamikonValue K a b) ∧ + IsConvexFunctional convexBodyCombination (fun K ↦ tangentMamikonValue K a b) false := by + have ha : a ∈ Set.Ioc (b - Real.pi) b := ⟨by linarith, hab.le⟩ + have hb : b ∈ Set.Ioc (b - Real.pi) b := ⟨by linarith [Real.pi_pos], le_rfl⟩ + have hmain := straightMamikon_quadratic_convex b a b ha hb hab hba + have hval : ∀ K : ConvexBody Point, + straightMamikonValue K a b (tangentLinePath K b ⟨a, ha⟩) (tangentLinePath K b ⟨b, hb⟩) = + tangentMamikonValue K a b := by + intro K + have hstart : tangentLinePath K b ⟨a, ha⟩ = + supportingIntersection K (a : Real.Angle) (b : Real.Angle) := by + unfold tangentLinePath + rw [ite_eq_left hab] + have hend : tangentLinePath K b ⟨b, hb⟩ = (edgeVertices K (b : Real.Angle)).2 := by + unfold tangentLinePath + rw [ite_eq_right (lt_irrefl b)] + have hdeg : segmentArea (edgeVertices K (b : Real.Angle)).2 + (edgeVertices K (b : Real.Angle)).2 = 0 := by + have h := segmentArea_swap (edgeVertices K (b : Real.Angle)).2 + (edgeVertices K (b : Real.Angle)).2 + linarith + unfold straightMamikonValue tangentMamikonValue + rw [hstart, hend, hdeg] + ring + rw [funext hval] at hmain + exact hmain + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Area / Mamikon / Sofa Convex +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem sofaMamikon_quadratic_convex : + IsConvexFunctional specialCapCombination middleMamikon false ∧ + IsQuadraticFunctional specialCapCombination middleMamikon ∧ + IsConvexFunctional convexBodyCombination rightTailMamikon false ∧ + IsQuadraticFunctional convexBodyCombination rightTailMamikon ∧ + IsConvexFunctional convexBodyCombination leftTailMamikon false ∧ + IsQuadraticFunctional convexBodyCombination leftTailMamikon := by + obtain ⟨hrIoo, hlIoo, hsum⟩ := paperGerverConstants_snd_mem_Ioo + have hpi := Real.pi_pos + have hrl := paperGerverConstants_snd_fst_lt_snd_snd + have hr0 := hrIoo.1 + have hr2 := hrIoo.2 + have hl0 := hlIoo.1 + have hl2 := hlIoo.2 + -- ### The two tail functionals are terminal tangent Mamikon values + have htailR := tangentMamikon_quadratic_convex (Real.pi + paperGerverConstants.2.1) + (3 * Real.pi / 2) (by linarith) (by linarith) + have htailL := tangentMamikon_quadratic_convex (3 * Real.pi / 2) + (3 * Real.pi / 2 + paperGerverConstants.2.2) (by linarith) (by linarith) + -- ### The first middle summand + have ha1 : (0 : ℝ) ∈ Set.Ioc (Real.pi / 2 - Real.pi) (Real.pi / 2) := + ⟨by linarith, by linarith⟩ + have hb1 : paperGerverConstants.2.1 ∈ Set.Ioc (Real.pi / 2 - Real.pi) (Real.pi / 2) := + ⟨by linarith, by linarith⟩ + have hmid1 := straightMamikon_quadratic_convex (Real.pi / 2) 0 paperGerverConstants.2.1 + ha1 hb1 (by linarith) (by linarith) + -- ### The third middle summand + have ha3 : paperGerverConstants.2.2 ∈ + Set.Ioc (Real.pi / 2 + paperGerverConstants.2.2 - Real.pi) + (Real.pi / 2 + paperGerverConstants.2.2) := ⟨by linarith, by linarith⟩ + have hb3 : (Real.pi / 2 : ℝ) ∈ + Set.Ioc (Real.pi / 2 + paperGerverConstants.2.2 - Real.pi) + (Real.pi / 2 + paperGerverConstants.2.2) := ⟨by linarith, by linarith⟩ + have hmid3 := straightMamikon_quadratic_convex (Real.pi / 2 + paperGerverConstants.2.2) + paperGerverConstants.2.2 (Real.pi / 2) ha3 hb3 (by linarith) (by linarith) + -- ### The fourth middle summand + have hmid4 := tangentMamikon_quadratic_convex (Real.pi / 2) Real.pi (by linarith) (by linarith) + -- ### The second middle summand, the Mamikon value of the outer-corner path + obtain ⟨γ, hγ, hγlin⟩ := exists_outerCornerBV_convexLinear paperGerverConstants.2.1 + paperGerverConstants.2.2 + have hγmem : ∀ (B : ConvexBody Point) + (s : Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2), + (γ B).val s ∈ (supportingLineHalfPlane (B : Set Point) ((s : ℝ) : Real.Angle)).1 := by + intro B s + rw [hγ B s] + change inner ℝ (rotatingHallwayParts (B : Set Point) ((s : ℝ) : Real.Angle)).outerCorner + (normalVector ((s : ℝ) : Real.Angle)) = supportValue (B : Set Point) ((s : ℝ) : Real.Angle) + rw [outerCorner_eq_support_sum B (s : ℝ), inner_add_left, real_inner_smul_left, + real_inner_smul_left, inner_normalVector_self, real_inner_comm, + inner_normalVector_tangentVector] + ring + have hmid2 := mamikon_quadratic_convex paperGerverConstants.2.1 paperGerverConstants.2.2 + hrl (by linarith) γ hγmem hγlin + -- ### The four middle summands assemble to the middle functional on all bodies + have hquadAll := ((hmid1.1.add hmid2.1).add hmid3.1).add hmid4.1 + have hconvAll := ((hmid1.2.add hmid2.2).add hmid3.2).add hmid4.2 + have hbody : IsConvexLinear specialCapCombination convexBodyCombination + fun K : SpecialCapSpace ↦ K.val.val := specialCap_isConvexDomain.1 + have hquad := hquadAll.comp_isConvexLinear hbody + have hconv := hconvAll.comp_isConvexLinear hbody + have hmideq : (fun K : SpecialCapSpace ↦ + ((straightMamikonValue K.val.val 0 paperGerverConstants.2.1 + (tangentLinePath K.val.val (Real.pi / 2) ⟨0, ha1⟩) + (tangentLinePath K.val.val (Real.pi / 2) ⟨paperGerverConstants.2.1, hb1⟩) + + mamikonFunctional K.val.val paperGerverConstants.2.1 paperGerverConstants.2.2 hrl + (by linarith) (γ K.val.val) (hγmem K.val.val)) + + straightMamikonValue K.val.val paperGerverConstants.2.2 (Real.pi / 2) + (tangentLinePath K.val.val (Real.pi / 2 + paperGerverConstants.2.2) + ⟨paperGerverConstants.2.2, ha3⟩) + (tangentLinePath K.val.val (Real.pi / 2 + paperGerverConstants.2.2) + ⟨Real.pi / 2, hb3⟩)) + + tangentMamikonValue K.val.val (Real.pi / 2) Real.pi) = middleMamikon := by + funext K + have hpath1 : tangentLinePath K.val.val (Real.pi / 2) ⟨0, ha1⟩ = + supportingIntersection K.val.val 0 ((Real.pi / 2 : ℝ) : Real.Angle) := by + unfold tangentLinePath + rw [ite_eq_left (show (0 : ℝ) < Real.pi / 2 by linarith), Real.Angle.coe_zero] + have hpath2 : tangentLinePath K.val.val (Real.pi / 2) + ⟨paperGerverConstants.2.1, hb1⟩ = + supportingIntersection K.val.val ((paperGerverConstants.2.1 : ℝ) : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) := by + unfold tangentLinePath + rw [ite_eq_left hr2] + have hpath3 : tangentLinePath K.val.val (Real.pi / 2 + paperGerverConstants.2.2) + ⟨paperGerverConstants.2.2, ha3⟩ = + supportingIntersection K.val.val ((paperGerverConstants.2.2 : ℝ) : Real.Angle) + ((Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle) := by + unfold tangentLinePath + rw [ite_eq_left (by linarith)] + have hpath4 : tangentLinePath K.val.val (Real.pi / 2 + paperGerverConstants.2.2) + ⟨Real.pi / 2, hb3⟩ = + supportingIntersection K.val.val ((Real.pi / 2 : ℝ) : Real.Angle) + ((Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle) := by + unfold tangentLinePath + rw [ite_eq_left (by linarith)] + have hγeq : γ K.val.val = capOuterMiddleBV K := + Subtype.ext (funext fun s ↦ (hγ K.val.val s).trans (capOuterMiddleBV_val K s).symm) + have hmam : mamikonFunctional K.val.val paperGerverConstants.2.1 + paperGerverConstants.2.2 hrl (by linarith) (γ K.val.val) (hγmem K.val.val) = + segmentArea (edgeVertices K.val.val ((paperGerverConstants.2.1 : ℝ) : Real.Angle)).1 + ((rotatingHallwayParts (K.val.val : Set Point) + ((paperGerverConstants.2.1 : ℝ) : Real.Angle)).outerCorner) + + curveAreaFunctional (capOuterMiddleBV K) + + segmentArea ((rotatingHallwayParts (K.val.val : Set Point) + ((paperGerverConstants.2.2 : ℝ) : Real.Angle)).outerCorner) + (edgeVertices K.val.val ((paperGerverConstants.2.2 : ℝ) : Real.Angle)).2 - + convexArcArea K.val.val paperGerverConstants.2.1 paperGerverConstants.2.2 := by + unfold mamikonFunctional + rw [hγ K.val.val ⟨paperGerverConstants.2.1, le_rfl, hrl.le⟩, + hγ K.val.val ⟨paperGerverConstants.2.2, hrl.le, le_rfl⟩, hγeq] + change _ = middleMamikon K + unfold middleMamikon + rw [hpath1, hpath2, hpath3, hpath4, hmam] + rw [hmideq] at hquad hconv + exact ⟨hconv, hquad, htailR.2, htailR.1, htailL.2, htailL.1⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The directional derivative of the upper bound `𝒬` + +`upperBoundQ` is a signed sum of six area functionals of a cap-tail triple: the cap area, the two +tail arc areas, the inner-corner curve area and the two areas of the segments joining a tail +endpoint to the corresponding cap corner. Each summand is quadratic along the barycentric +interpolation of cap-tail triples, so each segment function is differentiable at the base point +with the summand's `convexDirectionalDerivative` as its derivative; adding those six derivatives +computes the derivative of the segment function of `𝒬` itself. + +Five of the twelve endpoint contributions cancel in pairs. The remaining two are the segment +areas at the far ends of the two tails, and they vanish because the cap-tail constraints force the +support value of both tails in the direction `3π/2` to be zero, so all four points involved lie on +the horizontal axis. What survives is `qVariationIntegral`: the cap surface integral, the +inner-corner integral, and the two tail integrals rewritten in opposite-angle coordinates. +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- The support-function variation integral for the cap and its two tail bodies. -/ +def qVariationIntegral (X Y : CapTailSpace) : ℝ := + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Icc 0 Real.pi, + (supportValue Y.cap.val.val t - supportValue X.cap.val.val t) + ∂surfaceAreaMeasure X.cap.val.val) - + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' + (Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2 ∪ + Set.Icc (Real.pi / 2 + paperGerverConstants.2.1) + (Real.pi / 2 + paperGerverConstants.2.2)), + (supportValue Y.cap.val.val t - supportValue X.cap.val.val t) + ∂capCornerAngleMeasure X.cap) + + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' + Set.Ioo paperGerverConstants.2.1 (Real.pi / 2), + ((oppositeSurfaceData Y.rightBody).2 t - (oppositeSurfaceData X.rightBody).2 t) + ∂(oppositeSurfaceData X.rightBody).1) + + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' + Set.Ioo (Real.pi / 2) (Real.pi / 2 + paperGerverConstants.2.2), + ((oppositeSurfaceData Y.leftBody).2 t - (oppositeSurfaceData X.leftBody).2 t) + ∂(oppositeSurfaceData X.leftBody).1) + +private theorem capTail_leftPair_isConvexLinear : + IsConvexLinear capTailCombination pointPairCombination + (fun Z : CapTailSpace ↦ ((rightLeftTailArcs Z.rightBody Z.leftBody).2.endPoint, + (distinguishedCapSides Z.cap.val).2.corner)) := by + obtain ⟨hcomb, -⟩ := capTail_isConvexDomain + intro t Z W + have hvertex : (rightLeftTailArcs (capTailCombination t Z W).rightBody + (capTailCombination t Z W).leftBody).2.endPoint = + (1 - (t : ℝ)) • (rightLeftTailArcs Z.rightBody Z.leftBody).2.endPoint + + (t : ℝ) • (rightLeftTailArcs W.rightBody W.leftBody).2.endPoint := by + change (edgeVertices (capTailCombination t Z W).leftBody + ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)).2 = _ + rw [(hcomb t Z W).2.2] + exact ((convexBody_maps_linear t Z.leftBody W.leftBody).2.1 _).2 + have hcorner : (distinguishedCapSides (capTailCombination t Z W).cap.val).2.corner = + (1 - (t : ℝ)) • (distinguishedCapSides Z.cap.val).2.corner + + (t : ℝ) • (distinguishedCapSides W.cap.val).2.corner := + capInnerCorner_of_eq_convexBodyCombination (hcomb t Z W).1 paperGerverConstants.2.2 + change ((rightLeftTailArcs (capTailCombination t Z W).rightBody + (capTailCombination t Z W).leftBody).2.endPoint, + (distinguishedCapSides (capTailCombination t Z W).cap.val).2.corner) = _ + rw [hvertex, hcorner] + rfl + +private theorem capTail_rightPair_isConvexLinear : + IsConvexLinear capTailCombination pointPairCombination + (fun Z : CapTailSpace ↦ ((distinguishedCapSides Z.cap.val).1.corner, + (rightLeftTailArcs Z.rightBody Z.leftBody).1.startPoint)) := by + obtain ⟨hcomb, -⟩ := capTail_isConvexDomain + intro t Z W + have hcorner : (distinguishedCapSides (capTailCombination t Z W).cap.val).1.corner = + (1 - (t : ℝ)) • (distinguishedCapSides Z.cap.val).1.corner + + (t : ℝ) • (distinguishedCapSides W.cap.val).1.corner := + capInnerCorner_of_eq_convexBodyCombination (hcomb t Z W).1 paperGerverConstants.2.1 + have hvertex : (rightLeftTailArcs (capTailCombination t Z W).rightBody + (capTailCombination t Z W).leftBody).1.startPoint = + (1 - (t : ℝ)) • (rightLeftTailArcs Z.rightBody Z.leftBody).1.startPoint + + (t : ℝ) • (rightLeftTailArcs W.rightBody W.leftBody).1.startPoint := by + change (edgeVertices (capTailCombination t Z W).rightBody + ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle)).1 = _ + rw [(hcomb t Z W).2.1] + exact ((convexBody_maps_linear t Z.rightBody W.rightBody).2.1 _).1 + change ((distinguishedCapSides (capTailCombination t Z W).cap.val).1.corner, + (rightLeftTailArcs (capTailCombination t Z W).rightBody + (capTailCombination t Z W).leftBody).1.startPoint) = _ + rw [hcorner, hvertex] + rfl + +private theorem capTail_far_segmentAreas (X Y : CapTailSpace) : + (segmentArea (rightLeftTailArcs X.rightBody X.leftBody).1.endPoint + (rightLeftTailArcs Y.rightBody Y.leftBody).1.endPoint = 0) ∧ + (segmentArea (rightLeftTailArcs X.rightBody X.leftBody).2.startPoint + (rightLeftTailArcs Y.rightBody Y.leftBody).2.startPoint = 0) := by + -- ### The far endpoints of the two tails lie on the horizontal axis + have hsupp : ∀ Z : CapTailSpace, + supportValue (Z.rightBody : Set Point) ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 ∧ + supportValue (Z.leftBody : Set Point) ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 := by + intro Z + have hcapval : + supportValue (Z.cap.val.val : Set Point) ((Real.pi / 2 : ℝ) : Real.Angle) = 1 := + Z.cap.val.property.2.2.2.1 + have hr := Z.right_eq (Real.pi / 2) (by simp) + have hl := Z.left_eq 0 (by simp) + rw [show ((Real.pi + Real.pi / 2 : ℝ) : Real.Angle) = + ((3 * Real.pi / 2 : ℝ) : Real.Angle) from by congr 1; ring] at hr + rw [show ((Real.pi / 2 + (0 : ℝ) : ℝ) : Real.Angle) = + ((Real.pi / 2 : ℝ) : Real.Angle) from by congr 1; ring, + show ((3 * Real.pi / 2 + (0 : ℝ) : ℝ) : Real.Angle) = + ((3 * Real.pi / 2 : ℝ) : Real.Angle) from by congr 1; ring] at hl + exact ⟨by linarith, by linarith⟩ + have hheight : ∀ K : ConvexBody Point, + supportValue (K : Set Point) ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 → + (edgeVertices K ((3 * Real.pi / 2 : ℝ) : Real.Angle)).1 1 = 0 ∧ + (edgeVertices K ((3 * Real.pi / 2 : ℝ) : Real.Angle)).2 1 = 0 := by + intro K hK + have hn : normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle) = + -normalVector ((Real.pi / 2 : ℝ) : Real.Angle) := by + rw [show ((3 * Real.pi / 2 : ℝ) : Real.Angle) = + ((Real.pi / 2 + Real.pi : ℝ) : Real.Angle) from by congr 1; ring] + exact normalVector_add_pi _ + have key : ∀ p : Point, + inner ℝ p (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) = 0 → p 1 = 0 := by + intro p hp + rw [hn, inner_neg_right, inner_normalVector_real, Real.cos_pi_div_two, + Real.sin_pi_div_two] at hp + linarith + have hfst : inner ℝ (edgeVertices K ((3 * Real.pi / 2 : ℝ) : Real.Angle)).1 + (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue (K : Set Point) ((3 * Real.pi / 2 : ℝ) : Real.Angle) := + (edgeVertices_fst_mem K _).2 + have hsnd : inner ℝ (edgeVertices K ((3 * Real.pi / 2 : ℝ) : Real.Angle)).2 + (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue (K : Set Point) ((3 * Real.pi / 2 : ℝ) : Real.Angle) := + (edgeVertices_snd_mem K _).2 + exact ⟨key _ (hfst.trans hK), key _ (hsnd.trans hK)⟩ + have hzeroSegment : ∀ p q : Point, p 1 = 0 → q 1 = 0 → segmentArea p q = 0 := by + intro p q hp hq + simp [segmentArea, planeCrossProduct, hp, hq] + have hrightFar : segmentArea (rightLeftTailArcs X.rightBody X.leftBody).1.endPoint + (rightLeftTailArcs Y.rightBody Y.leftBody).1.endPoint = 0 := + hzeroSegment _ _ (hheight X.rightBody (hsupp X).1).2 (hheight Y.rightBody (hsupp Y).1).2 + have hleftFar : segmentArea (rightLeftTailArcs X.rightBody X.leftBody).2.startPoint + (rightLeftTailArcs Y.rightBody Y.leftBody).2.startPoint = 0 := + hzeroSegment _ _ (hheight X.leftBody (hsupp X).2).1 (hheight Y.leftBody (hsupp Y).2).1 + exact ⟨hrightFar, hleftFar⟩ + +private theorem capTail_left_segment_variation (X Y : CapTailSpace) + (hL : (rightLeftTailArcs X.rightBody X.leftBody).2.endPoint = + (distinguishedCapSides X.cap.val).2.corner) : + convexDirectionalDerivative capTailCombination + (fun Z : CapTailSpace ↦ segmentArea (rightLeftTailArcs Z.rightBody Z.leftBody).2.endPoint + (distinguishedCapSides Z.cap.val).2.corner) X Y = + segmentArea (distinguishedCapSides X.cap.val).2.corner + (distinguishedCapSides Y.cap.val).2.corner - + segmentArea (rightLeftTailArcs X.rightBody X.leftBody).2.endPoint + (rightLeftTailArcs Y.rightBody Y.leftBody).2.endPoint := by + have hleftPair := capTail_leftPair_isConvexLinear + have hvar := segmentArea_variation.2 + (rightLeftTailArcs X.rightBody X.leftBody).2.endPoint + (distinguishedCapSides X.cap.val).2.corner + (rightLeftTailArcs Y.rightBody Y.leftBody).2.endPoint + (distinguishedCapSides Y.cap.val).2.corner + have hbulk : (planeCrossProduct + ((rightLeftTailArcs Y.rightBody Y.leftBody).2.endPoint + + (distinguishedCapSides Y.cap.val).2.corner) + ((distinguishedCapSides X.cap.val).2.corner - + (rightLeftTailArcs X.rightBody X.leftBody).2.endPoint) - + 2 * planeCrossProduct (rightLeftTailArcs X.rightBody X.leftBody).2.endPoint + (distinguishedCapSides X.cap.val).2.corner) / 2 = 0 := by + rw [← hL] + simp only [planeCrossProduct, sub_self, WithLp.ofLp_zero, Pi.zero_apply, mul_zero] + ring + rw [hbulk, zero_add] at hvar + exact (convexDirectionalDerivative_comp_isConvexLinear hleftPair + (fun x : Point × Point ↦ segmentArea x.1 x.2) X Y).trans hvar + +theorem upperBoundQ_variation (X Y : CapTailSpace) + (hR : (rightLeftTailArcs X.rightBody X.leftBody).1.startPoint = + (distinguishedCapSides X.cap.val).1.corner) + (hL : (rightLeftTailArcs X.rightBody X.leftBody).2.endPoint = + (distinguishedCapSides X.cap.val).2.corner) : + convexDirectionalDerivative capTailCombination upperBoundQ X Y = qVariationIntegral X Y := by + obtain ⟨hcomb, -⟩ := capTail_isConvexDomain + obtain ⟨hrIoo, hlIoo, -⟩ := paperGerverConstants_snd_mem_Ioo + have hpi := Real.pi_pos + -- ### The three components of a cap-tail triple depend convex-linearly on it + have hcap : IsConvexLinear capTailCombination specialCapCombination + (fun Z : CapTailSpace ↦ Z.cap) := fun t Z W ↦ + Subtype.ext (Subtype.ext ((hcomb t Z W).1.trans + (specialCap_isConvexDomain.1 t Z.cap W.cap).symm)) + have hright : IsConvexLinear capTailCombination convexBodyCombination + (fun Z : CapTailSpace ↦ Z.rightBody) := fun t Z W ↦ (hcomb t Z W).2.1 + have hleft : IsConvexLinear capTailCombination convexBodyCombination + (fun Z : CapTailSpace ↦ Z.leftBody) := fun t Z W ↦ (hcomb t Z W).2.2 + -- ### The two segment endpoint pairs depend convex-linearly on the triple + have hleftPair := capTail_leftPair_isConvexLinear + have hrightPair := capTail_rightPair_isConvexLinear + -- ### Quadraticity of the six summands of `𝒬` + have hq1 : IsQuadraticFunctional capTailCombination + (fun Z : CapTailSpace ↦ ClassicalResults.area (Z.cap.val.val : Set Point)) := + specialCapArea_variation.1.comp_isConvexLinear hcap + have hq2 : IsQuadraticFunctional capTailCombination + (fun Z : CapTailSpace ↦ convexArcArea Z.leftBody (3 * Real.pi / 2) + (3 * Real.pi / 2 + paperGerverConstants.2.2)) := + (convexArcArea_variation _ _ (by linarith [hlIoo.1]) (by linarith [hlIoo.2])).1 + |>.comp_isConvexLinear hleft + have hq3 : IsQuadraticFunctional capTailCombination + (fun Z : CapTailSpace ↦ segmentArea (rightLeftTailArcs Z.rightBody Z.leftBody).2.endPoint + (distinguishedCapSides Z.cap.val).2.corner) := + segmentArea_variation.1.comp_isConvexLinear hleftPair + have hq4 : IsQuadraticFunctional capTailCombination + (fun Z : CapTailSpace ↦ curveAreaFunctional (capMiddleBV Z.cap)) := + capInnerCorner_variation.2.1.comp_isConvexLinear hcap + have hq5 : IsQuadraticFunctional capTailCombination + (fun Z : CapTailSpace ↦ segmentArea (distinguishedCapSides Z.cap.val).1.corner + (rightLeftTailArcs Z.rightBody Z.leftBody).1.startPoint) := + segmentArea_variation.1.comp_isConvexLinear hrightPair + have hq6 : IsQuadraticFunctional capTailCombination + (fun Z : CapTailSpace ↦ convexArcArea Z.rightBody (Real.pi + paperGerverConstants.2.1) + (3 * Real.pi / 2)) := + (convexArcArea_variation _ _ (by linarith [hrIoo.2]) (by linarith [hrIoo.1])).1 + |>.comp_isConvexLinear hright + -- ### The four summands whose derivatives contribute an integral + have hd1 : convexDirectionalDerivative capTailCombination + (fun Z : CapTailSpace ↦ ClassicalResults.area (Z.cap.val.val : Set Point)) X Y = + ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Icc 0 Real.pi, + (supportValue Y.cap.val.val t - supportValue X.cap.val.val t) + ∂surfaceAreaMeasure X.cap.val.val := + (convexDirectionalDerivative_comp_isConvexLinear hcap + (fun K : SpecialCapSpace ↦ ClassicalResults.area (K.val.val : Set Point)) X Y).trans + (specialCapArea_variation.2 X.cap Y.cap) + have hd2 : convexDirectionalDerivative capTailCombination + (fun Z : CapTailSpace ↦ convexArcArea Z.leftBody (3 * Real.pi / 2) + (3 * Real.pi / 2 + paperGerverConstants.2.2)) X Y = + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' + Set.Ioo (3 * Real.pi / 2) (3 * Real.pi / 2 + paperGerverConstants.2.2), + (supportValue Y.leftBody t - supportValue X.leftBody t) + ∂surfaceAreaMeasure X.leftBody) + + (segmentArea (rightLeftTailArcs X.rightBody X.leftBody).2.endPoint + (rightLeftTailArcs Y.rightBody Y.leftBody).2.endPoint - + segmentArea (rightLeftTailArcs X.rightBody X.leftBody).2.startPoint + (rightLeftTailArcs Y.rightBody Y.leftBody).2.startPoint) := + (convexDirectionalDerivative_comp_isConvexLinear hleft + (fun M : ConvexBody Point ↦ convexArcArea M (3 * Real.pi / 2) + (3 * Real.pi / 2 + paperGerverConstants.2.2)) X Y).trans + ((convexArcArea_variation _ _ (by linarith [hlIoo.1]) (by linarith [hlIoo.2])).2 + X.leftBody Y.leftBody) + have hd4 : convexDirectionalDerivative capTailCombination + (fun Z : CapTailSpace ↦ curveAreaFunctional (capMiddleBV Z.cap)) X Y = + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' + (Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2 ∪ + Set.Icc (Real.pi / 2 + paperGerverConstants.2.1) + (Real.pi / 2 + paperGerverConstants.2.2)), + (supportValue Y.cap.val.val t - supportValue X.cap.val.val t) + ∂capCornerAngleMeasure X.cap) + + (segmentArea (distinguishedCapSides X.cap.val).2.corner + (distinguishedCapSides Y.cap.val).2.corner - + segmentArea (distinguishedCapSides X.cap.val).1.corner + (distinguishedCapSides Y.cap.val).1.corner) := + (convexDirectionalDerivative_comp_isConvexLinear hcap + (fun M : SpecialCapSpace ↦ curveAreaFunctional (capMiddleBV M)) X Y).trans + (capInnerCorner_variation.2.2 X.cap Y.cap) + have hd6 : convexDirectionalDerivative capTailCombination + (fun Z : CapTailSpace ↦ convexArcArea Z.rightBody (Real.pi + paperGerverConstants.2.1) + (3 * Real.pi / 2)) X Y = + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' + Set.Ioo (Real.pi + paperGerverConstants.2.1) (3 * Real.pi / 2), + (supportValue Y.rightBody t - supportValue X.rightBody t) + ∂surfaceAreaMeasure X.rightBody) + + (segmentArea (rightLeftTailArcs X.rightBody X.leftBody).1.endPoint + (rightLeftTailArcs Y.rightBody Y.leftBody).1.endPoint - + segmentArea (rightLeftTailArcs X.rightBody X.leftBody).1.startPoint + (rightLeftTailArcs Y.rightBody Y.leftBody).1.startPoint) := + (convexDirectionalDerivative_comp_isConvexLinear hright + (fun M : ConvexBody Point ↦ convexArcArea M (Real.pi + paperGerverConstants.2.1) + (3 * Real.pi / 2)) X Y).trans + ((convexArcArea_variation _ _ (by linarith [hrIoo.2]) (by linarith [hrIoo.1])).2 + X.rightBody Y.rightBody) + -- ### The two segment summands: their bulk terms vanish because the base endpoints coincide + have hd3 := capTail_left_segment_variation X Y hL + have hd5 : convexDirectionalDerivative capTailCombination + (fun Z : CapTailSpace ↦ segmentArea (distinguishedCapSides Z.cap.val).1.corner + (rightLeftTailArcs Z.rightBody Z.leftBody).1.startPoint) X Y = + segmentArea (rightLeftTailArcs X.rightBody X.leftBody).1.startPoint + (rightLeftTailArcs Y.rightBody Y.leftBody).1.startPoint - + segmentArea (distinguishedCapSides X.cap.val).1.corner + (distinguishedCapSides Y.cap.val).1.corner := by + have hvar := segmentArea_variation.2 + (distinguishedCapSides X.cap.val).1.corner + (rightLeftTailArcs X.rightBody X.leftBody).1.startPoint + (distinguishedCapSides Y.cap.val).1.corner + (rightLeftTailArcs Y.rightBody Y.leftBody).1.startPoint + have hbulk : (planeCrossProduct + ((distinguishedCapSides Y.cap.val).1.corner + + (rightLeftTailArcs Y.rightBody Y.leftBody).1.startPoint) + ((rightLeftTailArcs X.rightBody X.leftBody).1.startPoint - + (distinguishedCapSides X.cap.val).1.corner) - + 2 * planeCrossProduct (distinguishedCapSides X.cap.val).1.corner + (rightLeftTailArcs X.rightBody X.leftBody).1.startPoint) / 2 = 0 := by + rw [hR] + simp only [planeCrossProduct, sub_self, WithLp.ofLp_zero, Pi.zero_apply, mul_zero] + ring + rw [hbulk, zero_add] at hvar + exact (convexDirectionalDerivative_comp_isConvexLinear hrightPair + (fun x : Point × Point ↦ segmentArea x.1 x.2) X Y).trans hvar + -- ### The derivative of `𝒬` is the signed sum of the six derivatives + have hsplit : ∀ t : ℝ, segmentFunctional capTailCombination upperBoundQ X Y t = + segmentFunctional capTailCombination + (fun Z : CapTailSpace ↦ ClassicalResults.area (Z.cap.val.val : Set Point)) X Y t + + segmentFunctional capTailCombination + (fun Z : CapTailSpace ↦ convexArcArea Z.leftBody (3 * Real.pi / 2) + (3 * Real.pi / 2 + paperGerverConstants.2.2)) X Y t + + segmentFunctional capTailCombination + (fun Z : CapTailSpace ↦ segmentArea + (rightLeftTailArcs Z.rightBody Z.leftBody).2.endPoint + (distinguishedCapSides Z.cap.val).2.corner) X Y t - + segmentFunctional capTailCombination + (fun Z : CapTailSpace ↦ curveAreaFunctional (capMiddleBV Z.cap)) X Y t + + segmentFunctional capTailCombination + (fun Z : CapTailSpace ↦ segmentArea (distinguishedCapSides Z.cap.val).1.corner + (rightLeftTailArcs Z.rightBody Z.leftBody).1.startPoint) X Y t + + segmentFunctional capTailCombination + (fun Z : CapTailSpace ↦ convexArcArea Z.rightBody + (Real.pi + paperGerverConstants.2.1) (3 * Real.pi / 2)) X Y t := by + intro t + simp only [segmentFunctional] + split_ifs with ht + · rfl + · norm_num + have hD1 := hq1.hasDerivWithinAt_segmentFunctional X Y + have hD2 := hq2.hasDerivWithinAt_segmentFunctional X Y + have hD3 := hq3.hasDerivWithinAt_segmentFunctional X Y + have hD4 := hq4.hasDerivWithinAt_segmentFunctional X Y + have hD5 := hq5.hasDerivWithinAt_segmentFunctional X Y + have hD6 := hq6.hasDerivWithinAt_segmentFunctional X Y + rw [hd1] at hD1 + rw [hd2] at hD2 + rw [hd3] at hD3 + rw [hd4] at hD4 + rw [hd5] at hD5 + rw [hd6] at hD6 + have hderiv := convexDirectionalDerivative_eq_of_hasDerivWithinAt capTailCombination + upperBoundQ X Y ((((((hD1.add hD2).add hD3).sub hD4).add hD5).add hD6).congr + (fun t _ ↦ hsplit t) (hsplit 0)) + obtain ⟨hrightFar, hleftFar⟩ := capTail_far_segmentAreas X Y + -- ### The two tail integrals in opposite-angle coordinates + have hrightTail : (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' + Set.Ioo (Real.pi + paperGerverConstants.2.1) (3 * Real.pi / 2), + (supportValue Y.rightBody t - supportValue X.rightBody t) + ∂surfaceAreaMeasure X.rightBody) = + ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' + Set.Ioo paperGerverConstants.2.1 (Real.pi / 2), + ((oppositeSurfaceData Y.rightBody).2 t - (oppositeSurfaceData X.rightBody).2 t) + ∂(oppositeSurfaceData X.rightBody).1 := + (setIntegral_oppositeSurfaceData_angleImage_Ioo X.rightBody + (a := paperGerverConstants.2.1) (b := Real.pi / 2) (by ring) (by ring) + (f := fun u : Real.Angle ↦ supportValue Y.rightBody u - supportValue X.rightBody u) + ((continuous_supportValue Y.rightBody).sub + (continuous_supportValue X.rightBody)).measurable).symm + have hleftTail : (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' + Set.Ioo (3 * Real.pi / 2) (3 * Real.pi / 2 + paperGerverConstants.2.2), + (supportValue Y.leftBody t - supportValue X.leftBody t) + ∂surfaceAreaMeasure X.leftBody) = + ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' + Set.Ioo (Real.pi / 2) (Real.pi / 2 + paperGerverConstants.2.2), + ((oppositeSurfaceData Y.leftBody).2 t - (oppositeSurfaceData X.leftBody).2 t) + ∂(oppositeSurfaceData X.leftBody).1 := + (setIntegral_oppositeSurfaceData_angleImage_Ioo X.leftBody + (a := Real.pi / 2) (b := Real.pi / 2 + paperGerverConstants.2.2) (by ring) (by ring) + (f := fun u : Real.Angle ↦ supportValue Y.leftBody u - supportValue X.leftBody u) + ((continuous_supportValue Y.leftBody).sub + (continuous_supportValue X.leftBody)).measurable).symm + -- ### Collecting the six contributions + rw [hderiv] + simp only [qVariationIntegral] + linarith [hrightTail, hleftTail, hrightFar, hleftFar] + +end MovingSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/Development/Geometry/Applications/Development003.lean b/LeanPool/MovingSofa/Development/Geometry/Applications/Development003.lean new file mode 100644 index 0000000000..d611810911 --- /dev/null +++ b/LeanPool/MovingSofa/Development/Geometry/Applications/Development003.lean @@ -0,0 +1,6022 @@ +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +module + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development006 +public import LeanPool.MovingSofa.Development.Geometry.Applications.Development002 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development007 + + + + + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development005 + + + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development008 +public import LeanPool.MovingSofa.Development.Geometry.Applications.Development001 + + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development003 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development002 + + + + +/-! +# Moving sofa: related mathematical developments + +* `Gerver.Applications.Development004`. +* `Bounds.Applications.Development003`. +* `Sofa.Applications.Development001`. +* `Motion.Applications.Development001`. +* `Sofa.Applications.Development002`. +* `Sofa.Applications.Development003`. +* `Motion.Applications.Development002`. +* `Main`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Gerver.Niche.Orientation`. +* `Gerver.ContactGeometry`. +* `Gerver.TailGeometry`. +* `Gerver.MeasureTranslation`. +* `Gerver.PhaseMeasures`. +* `Gerver.PhaseIntegration`. +* `Gerver.QMatch`. +* `Gerver.QVariation`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Orientation of the certified Gerver niche boundary + +The niche of the certified Gerver outer cap is the strict region under the niche roof, and the +roof is the graph of a continuous height function `f` over the horizontal extent +`[gerverNicheLeft, gerverNicheRight]` of the roof (`exists_gerverRoofHeight`). The closure of +the niche is therefore the closed subgraph of `f`, its interior the open subgraph, and the +counterclockwise loop `positiveGraphLoop` around that region traces their common frontier. + +`gerverNicheBoundary` is the explicit four-piece traversal of that frontier: the second contact +curve reversed, the ambient path forwards, the fourth contact curve reversed, and the base +segment. It runs backwards along the roof through a decreasing piecewise affine parameter +change (`gerverBoundaryParam`), so it is the positive-graph loop reparametrized by an increasing +map (`gerverNicheBoundary_orientedJordan`). The main result `gerver_niche_orientation` collects +the consequences: the traversal is a continuous path of bounded variation, a counterclockwise +Jordan parametrization of the frontier of the closed niche, its signed curve area is the area of +the niche, and no roof point lies in the niche. + +The same description of the niche as the strict region under the roof settles the opposite +inclusion for the fourth boundary piece: every interior point of the base segment does lie in +the niche (`gerver_bottom_segment_mem_gerverLiteralNiche`). +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The stage-time inequalities of `gerverStageTimes_strictMono`, in the packaged form used +throughout this file. -/ +private theorem gerverStageTimes_order : + gerverStageTimes 0 = 0 ∧ gerverStageTimes 5 = Real.pi / 2 ∧ + 0 < gerverStageTimes 1 ∧ gerverStageTimes 1 < gerverStageTimes 2 ∧ + gerverStageTimes 2 < gerverStageTimes 3 ∧ gerverStageTimes 3 < gerverStageTimes 4 ∧ + gerverStageTimes 4 < Real.pi / 2 := by + have h := gerverStageTimes_strictMono + exact ⟨gerverStageTimes_zero, rfl, h (show (0 : Fin 6) < 1 by decide), + h (show (1 : Fin 6) < 2 by decide), h (show (2 : Fin 6) < 3 by decide), + h (show (3 : Fin 6) < 4 by decide), h (show (4 : Fin 6) < 5 by decide)⟩ + +/-! ## The roof as the graph of a continuous height function -/ + +/-- The left end of the horizontal extent of the niche roof. -/ +private def gerverNicheLeft : ℝ := paperGerverContacts 0 3 0 + +/-- The right end of the horizontal extent of the niche roof. -/ +private def gerverNicheRight : ℝ := paperGerverContacts (Real.pi / 2) 1 0 + +private theorem gerverNicheRoof_zero : + gerverNicheRoof ⟨0, le_rfl, by positivity⟩ = paperGerverContacts 0 3 := by + obtain ⟨-, -, h01, h12, -, -, -⟩ := gerverStageTimes_order + exact gerverNicheRoof_of_le_two _ (by linarith) + +private theorem gerverNicheRoof_top : + gerverNicheRoof ⟨Real.pi / 2, by positivity, le_rfl⟩ = + paperGerverContacts (Real.pi / 2) 1 := by + obtain ⟨-, -, -, -, -, h34, h45⟩ := gerverStageTimes_order + exact gerverNicheRoof_of_ge_three _ (by linarith) + +/-- The niche roof is the graph of a continuous function over its horizontal extent, which +vanishes at the two ends and is positive in between. -/ +private theorem exists_gerverRoofHeight : + ∃ f : ℝ → ℝ, Continuous f ∧ + (∀ s : Set.Icc (0 : ℝ) (Real.pi / 2), f (gerverNicheRoof s 0) = gerverNicheRoof s 1) ∧ + (∀ c ∈ Set.Icc gerverNicheLeft gerverNicheRight, + ∃ s : Set.Icc (0 : ℝ) (Real.pi / 2), gerverNicheRoof s 0 = c) ∧ + gerverNicheLeft < gerverNicheRight ∧ + f gerverNicheLeft = 0 ∧ f gerverNicheRight = 0 ∧ + ∀ c ∈ Set.Ioo gerverNicheLeft gerverNicheRight, 0 < f c := by + have hpi : (0 : ℝ) < Real.pi / 2 := by positivity + set A : Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨0, le_rfl, hpi.le⟩ with hA + set B : Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨Real.pi / 2, hpi.le, le_rfl⟩ with hB + have hk : StrictMono fun s : Set.Icc (0 : ℝ) (Real.pi / 2) ↦ gerverNicheRoof s 0 := + gerver_niche_roof_strictMono + have hk0 : Continuous fun s : Set.Icc (0 : ℝ) (Real.pi / 2) ↦ gerverNicheRoof s 0 := + (PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 0).comp continuous_gerverNicheRoof + have hk1 : Continuous fun s : Set.Icc (0 : ℝ) (Real.pi / 2) ↦ gerverNicheRoof s 1 := + (PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 1).comp continuous_gerverNicheRoof + have hAleft : gerverNicheRoof A 0 = gerverNicheLeft := by rw [gerverNicheRoof_zero]; rfl + have hBright : gerverNicheRoof B 0 = gerverNicheRight := by rw [gerverNicheRoof_top]; rfl + have hab : gerverNicheLeft < gerverNicheRight := by + rw [← hAleft, ← hBright] + exact hk (show A < B from hpi) + have hmem : ∀ s, gerverNicheRoof s 0 ∈ Set.Icc gerverNicheLeft gerverNicheRight := fun s ↦ + ⟨hAleft ▸ hk.monotone (show A ≤ s from s.2.1), hBright ▸ hk.monotone (show s ≤ B from s.2.2)⟩ + set kmap : Set.Icc (0 : ℝ) (Real.pi / 2) → Set.Icc gerverNicheLeft gerverNicheRight := + fun s ↦ ⟨gerverNicheRoof s 0, hmem s⟩ with hkmap + have hkc : Continuous kmap := hk0.subtype_mk _ + have hkinj : Function.Injective kmap := fun x y h ↦ hk.injective (congrArg Subtype.val h) + have : PreconnectedSpace (Set.Icc (0 : ℝ) (Real.pi / 2)) := + Subtype.preconnectedSpace isPreconnected_Icc + have hksurj : Function.Surjective kmap := by + intro s + obtain ⟨t, ht⟩ := intermediate_value_univ A B hk0 (by rw [hAleft, hBright]; exact s.property) + exact ⟨t, Subtype.ext ht⟩ + set khom : Set.Icc (0 : ℝ) (Real.pi / 2) ≃ₜ Set.Icc gerverNicheLeft gerverNicheRight := + Continuous.homeoOfEquivCompactToT2 (f := Equiv.ofBijective kmap ⟨hkinj, hksurj⟩) hkc + with hkhom + have hkhom_apply : ∀ s, (khom s : ℝ) = gerverNicheRoof s 0 := fun _ ↦ rfl + have hsymm : ∀ x : Set.Icc gerverNicheLeft gerverNicheRight, + gerverNicheRoof (khom.symm x) 0 = (x : ℝ) := by + intro x + rw [← hkhom_apply, khom.apply_symm_apply] + refine ⟨fun c ↦ gerverNicheRoof (khom.symm (Set.projIcc _ _ hab.le c)) 1, + hk1.comp (khom.symm.continuous.comp continuous_projIcc), ?_, ?_, hab, ?_, ?_, ?_⟩ + · -- the height function inverts the horizontal coordinate + intro s + have hval : Set.projIcc gerverNicheLeft gerverNicheRight hab.le (gerverNicheRoof s 0) = + khom s := by + rw [← hkhom_apply s, Set.projIcc_val] + dsimp only + rw [hval, khom.symm_apply_apply] + · intro c hc + exact ⟨khom.symm ⟨c, hc⟩, by rw [hsymm ⟨c, hc⟩]⟩ + · have hmemL : gerverNicheLeft ∈ Set.Icc gerverNicheLeft gerverNicheRight := + Set.left_mem_Icc.mpr hab.le + have hval : Set.projIcc gerverNicheLeft gerverNicheRight hab.le gerverNicheLeft = + ⟨gerverNicheLeft, hmemL⟩ := Set.projIcc_of_mem hab.le hmemL + have hsA : khom.symm ⟨gerverNicheLeft, hmemL⟩ = A := + hk.injective (by dsimp only; rw [hsymm ⟨gerverNicheLeft, hmemL⟩, hAleft]) + dsimp only + rw [hval, hsA, hA, gerverNicheRoof_zero] + exact gerver_niche_piece_endpoints.2.2.2 + · have hmemR : gerverNicheRight ∈ Set.Icc gerverNicheLeft gerverNicheRight := + Set.right_mem_Icc.mpr hab.le + have hval : Set.projIcc gerverNicheLeft gerverNicheRight hab.le gerverNicheRight = + ⟨gerverNicheRight, hmemR⟩ := Set.projIcc_of_mem hab.le hmemR + have hsB : khom.symm ⟨gerverNicheRight, hmemR⟩ = B := + hk.injective (by dsimp only; rw [hsymm ⟨gerverNicheRight, hmemR⟩, hBright]) + dsimp only + rw [hval, hsB, hB, gerverNicheRoof_top] + exact gerver_niche_piece_endpoints.2.2.1 + · intro c hc + have hval : Set.projIcc gerverNicheLeft gerverNicheRight hab.le c = + ⟨c, hc.1.le, hc.2.le⟩ := Set.projIcc_of_mem hab.le ⟨hc.1.le, hc.2.le⟩ + dsimp only + rw [hval] + set s := khom.symm (⟨c, hc.1.le, hc.2.le⟩ : Set.Icc gerverNicheLeft gerverNicheRight) with hs + have hcs : gerverNicheRoof s 0 = c := hsymm _ + refine gerver_niche_roof_positive s ⟨?_, ?_⟩ + · rcases eq_or_lt_of_le s.2.1 with h | h + · exact absurd (by rw [show s = A from Subtype.ext h.symm, hAleft] at hcs; exact hcs) + hc.1.ne + · exact h + · rcases eq_or_lt_of_le s.2.2 with h | h + · exact absurd (by rw [show s = B from Subtype.ext h, hBright] at hcs; exact hcs.symm) + hc.2.ne + · exact h + +/-! ## The literal niche is the strict region under the roof -/ + +/-- Every central path time is the reverse time of a middle roof parameter. -/ +private theorem exists_gerverRoofReverseTime {t : ℝ} + (ht : t ∈ Set.Icc (gerverStageTimes 1) (gerverStageTimes 4)) : + ∃ s : ℝ, gerverStageTimes 2 ≤ s ∧ s ≤ gerverStageTimes 3 ∧ gerverRoofReverseTime s = t := by + obtain ⟨-, -, -, h12, h23, h34, -⟩ := gerverStageTimes_order + have hd : (0 : ℝ) < gerverStageTimes 3 - gerverStageTimes 2 := by linarith + have he : (0 : ℝ) < gerverStageTimes 4 - gerverStageTimes 1 := by linarith + refine ⟨gerverStageTimes 2 + (gerverStageTimes 4 - t) * + (gerverStageTimes 3 - gerverStageTimes 2) / (gerverStageTimes 4 - gerverStageTimes 1), + ?_, ?_, ?_⟩ + · have : 0 ≤ (gerverStageTimes 4 - t) * (gerverStageTimes 3 - gerverStageTimes 2) / + (gerverStageTimes 4 - gerverStageTimes 1) := + div_nonneg (mul_nonneg (by linarith [ht.2]) hd.le) he.le + linarith + · have : (gerverStageTimes 4 - t) * (gerverStageTimes 3 - gerverStageTimes 2) / + (gerverStageTimes 4 - gerverStageTimes 1) ≤ + gerverStageTimes 3 - gerverStageTimes 2 := by + rw [div_le_iff₀ he] + nlinarith [ht.1, hd] + linarith + · rw [gerverRoofReverseTime] + field_simp + ring + +/-- The literal niche is the strict vertical region under the niche roof. -/ +private theorem gerverLiteralNiche_eq_roofFill : + gerverLiteralNiche = + {q : Point | ∃ s : Set.Icc (0 : ℝ) (Real.pi / 2), + q 0 = gerverNicheRoof s 0 ∧ 0 ≤ q 1 ∧ q 1 < gerverNicheRoof s 1} := by + obtain ⟨h0, h5, h01, h12, h23, h34, h45⟩ := gerverStageTimes_order + rw [gerver_niche_vertical_fills] + ext q + simp only [strictVerticalFill, Set.mem_union, Set.mem_ofPred_eq] + constructor + · rintro ((⟨t, ht, hq0, hq1, hq2⟩ | ⟨t, ht, hq0, hq1, hq2⟩) | ⟨t, ht, hq0, hq1, hq2⟩) + · rw [h0] at ht + have hs : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨ht.1, by linarith [ht.2]⟩ + refine ⟨⟨t, hs⟩, ?_, hq1, ?_⟩ + · rw [gerverNicheRoof_of_le_two hs ht.2]; exact hq0 + · rw [gerverNicheRoof_of_le_two hs ht.2]; exact hq2 + · obtain ⟨s, hs1, hs2, hsrev⟩ := exists_gerverRoofReverseTime ht + have hs : s ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨by linarith, by linarith⟩ + refine ⟨⟨s, hs⟩, ?_, hq1, ?_⟩ + · rw [gerverNicheRoof_mid hs hs1 hs2, hsrev]; exact hq0 + · rw [gerverNicheRoof_mid hs hs1 hs2, hsrev]; exact hq2 + · rw [h5] at ht + have hs : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨by linarith [ht.1], ht.2⟩ + refine ⟨⟨t, hs⟩, ?_, hq1, ?_⟩ + · rw [gerverNicheRoof_of_ge_three hs ht.1]; exact hq0 + · rw [gerverNicheRoof_of_ge_three hs ht.1]; exact hq2 + · rintro ⟨s, hq0, hq1, hq2⟩ + rcases le_or_gt s.val (gerverStageTimes 2) with hle | hgt + · refine Or.inl (Or.inl ⟨s.val, ⟨by rw [h0]; exact s.2.1, hle⟩, ?_, hq1, ?_⟩) + · rw [← gerverNicheRoof_of_le_two s.2 hle]; exact hq0 + · rw [← gerverNicheRoof_of_le_two s.2 hle]; exact hq2 + rcases le_or_gt s.val (gerverStageTimes 3) with hle3 | hgt3 + · refine Or.inl (Or.inr ⟨gerverRoofReverseTime s.val, + gerverRoofReverseTime_mem_Icc hgt.le hle3, ?_, hq1, ?_⟩) + · rw [← gerverNicheRoof_mid s.2 hgt.le hle3]; exact hq0 + · rw [← gerverNicheRoof_mid s.2 hgt.le hle3]; exact hq2 + · refine Or.inr ⟨s.val, ⟨hgt3.le, by rw [h5]; exact s.2.2⟩, ?_, hq1, ?_⟩ + · rw [← gerverNicheRoof_of_ge_three s.2 hgt3.le]; exact hq0 + · rw [← gerverNicheRoof_of_ge_three s.2 hgt3.le]; exact hq2 + +/-- The horizontal coordinate of the roof stays in its horizontal extent. -/ +private theorem gerverNicheRoof_fst_mem (s : Set.Icc (0 : ℝ) (Real.pi / 2)) : + gerverNicheRoof s 0 ∈ Set.Icc gerverNicheLeft gerverNicheRight := by + have hpi : (0 : ℝ) < Real.pi / 2 := by positivity + have hk := gerver_niche_roof_strictMono + constructor + · have h := hk.monotone (show (⟨0, le_rfl, hpi.le⟩ : Set.Icc (0 : ℝ) (Real.pi / 2)) ≤ s + from s.2.1) + simp only [gerverNicheRoof_zero] at h + exact h + · have h := hk.monotone (show s ≤ (⟨Real.pi / 2, hpi.le, le_rfl⟩ : + Set.Icc (0 : ℝ) (Real.pi / 2)) from s.2.2) + simp only [gerverNicheRoof_top] at h + exact h + +/-- Read through the roof height function, the literal niche is the strict subgraph. -/ +private theorem gerverLiteralNiche_eq_strictSubgraph {f : ℝ → ℝ} + (hfgraph : ∀ s : Set.Icc (0 : ℝ) (Real.pi / 2), + f (gerverNicheRoof s 0) = gerverNicheRoof s 1) + (hfsurj : ∀ c ∈ Set.Icc gerverNicheLeft gerverNicheRight, + ∃ s : Set.Icc (0 : ℝ) (Real.pi / 2), gerverNicheRoof s 0 = c) : + gerverLiteralNiche = strictSubgraph gerverNicheLeft gerverNicheRight f := by + rw [gerverLiteralNiche_eq_roofFill] + ext q + simp only [strictSubgraph, Set.mem_ofPred_eq] + constructor + · rintro ⟨s, hq0, hq1, hq2⟩ + have hmem := gerverNicheRoof_fst_mem s + rw [← hq0] at hmem + exact ⟨hmem.1, hmem.2, hq1, by rw [hq0, hfgraph s]; exact hq2⟩ + · rintro ⟨h1, h2, h3, h4⟩ + obtain ⟨s, hs⟩ := hfsurj (q 0) ⟨h1, h2⟩ + exact ⟨s, hs.symm, h3, by rw [← hfgraph s, hs]; exact h4⟩ + +/-- The closed boundary parametrization of the Gerver niche. -/ +def gerverNicheBoundary (s : Set.Icc (0 : ℝ) 4) : Point := + if s.val ≤ 1 then + paperGerverContacts + (Real.pi / 2 - (Real.pi / 2 - gerverStageTimes 3) * s.val) 1 + else if s.val ≤ 2 then + paperGerverPath + (gerverStageTimes 1 + (gerverStageTimes 4 - gerverStageTimes 1) * (s.val - 1)) + else if s.val ≤ 3 then + paperGerverContacts (gerverStageTimes 2 * (3 - s.val)) 3 + else + (4 - s.val) • paperGerverContacts 0 3 + + (s.val - 3) • paperGerverContacts (Real.pi / 2) 1 + +/-! ## The four-piece traversal of the niche boundary -/ + +/-- On its first piece the niche traversal runs backwards along the second contact curve `B`, +from `B (π / 2)` at `s = 0` to `B t₃` at `s = 1`. -/ +theorem gerverNicheBoundary_of_le_one {s : ℝ} (hs : s ∈ Set.Icc (0 : ℝ) 4) (h : s ≤ 1) : + gerverNicheBoundary ⟨s, hs⟩ = + paperGerverContacts (Real.pi / 2 - (Real.pi / 2 - gerverStageTimes 3) * s) 1 := + ite_eq_left h + +/-- On its second piece the niche traversal runs forwards along the direct Gerver path, from +`x t₁` at `s = 1` to `x t₄` at `s = 2`. -/ +theorem gerverNicheBoundary_mid {s : ℝ} (hs : s ∈ Set.Icc (0 : ℝ) 4) + (h1 : 1 ≤ s) (h2 : s ≤ 2) : + gerverNicheBoundary ⟨s, hs⟩ = + paperGerverPath (gerverStageTimes 1 + + (gerverStageTimes 4 - gerverStageTimes 1) * (s - 1)) := by + rcases eq_or_lt_of_le h1 with heq | hlt + · rw [gerverNicheBoundary_of_le_one hs heq.ge, ← heq, + show Real.pi / 2 - (Real.pi / 2 - gerverStageTimes 3) * 1 = gerverStageTimes 3 by ring, + show gerverStageTimes 1 + (gerverStageTimes 4 - gerverStageTimes 1) * ((1 : ℝ) - 1) = + gerverStageTimes 1 by ring] + exact gerver_niche_piece_endpoints.1 + · rw [gerverNicheBoundary, ite_eq_right (not_le.mpr hlt), ite_eq_left h2] + +/-- On its third piece the niche traversal runs backwards along the fourth contact curve `D`, +from `D t₂` at `s = 2` to `D 0` at `s = 3`. -/ +theorem gerverNicheBoundary_third {s : ℝ} (hs : s ∈ Set.Icc (0 : ℝ) 4) + (h1 : 2 ≤ s) (h2 : s ≤ 3) : + gerverNicheBoundary ⟨s, hs⟩ = paperGerverContacts (gerverStageTimes 2 * (3 - s)) 3 := by + rcases eq_or_lt_of_le h1 with heq | hlt + · rw [gerverNicheBoundary_mid hs (by linarith) heq.ge, ← heq, + show gerverStageTimes 1 + (gerverStageTimes 4 - gerverStageTimes 1) * ((2 : ℝ) - 1) = + gerverStageTimes 4 by ring, + show gerverStageTimes 2 * ((3 : ℝ) - 2) = gerverStageTimes 2 by ring] + exact gerver_niche_piece_endpoints.2.1.symm + · rw [gerverNicheBoundary, ite_eq_right (not_le.mpr (by linarith)), + ite_eq_right (not_le.mpr hlt), ite_eq_left h2] + +/-- On its last piece the niche traversal runs along the base segment of the niche, from `D 0` +at `s = 3` to `B (π / 2)` at `s = 4`. -/ +theorem gerverNicheBoundary_base {s : ℝ} (hs : s ∈ Set.Icc (0 : ℝ) 4) (h : 3 ≤ s) : + gerverNicheBoundary ⟨s, hs⟩ = + (4 - s) • paperGerverContacts 0 3 + (s - 3) • paperGerverContacts (Real.pi / 2) 1 := by + rcases eq_or_lt_of_le h with heq | hlt + · rw [gerverNicheBoundary_third hs (by linarith) heq.ge, ← heq, + show gerverStageTimes 2 * ((3 : ℝ) - 3) = 0 by ring] + norm_num + · rw [gerverNicheBoundary, ite_eq_right (not_le.mpr (by linarith)), + ite_eq_right (not_le.mpr (by linarith)), ite_eq_right (not_le.mpr hlt)] + +private theorem continuous_gerverNicheBoundary : Continuous gerverNicheBoundary := by + have hc1 : Continuous fun s : Set.Icc (0 : ℝ) 4 ↦ + paperGerverContacts (Real.pi / 2 - (Real.pi / 2 - gerverStageTimes 3) * s.val) 1 := + (continuous_paperGerverContact 1).comp (by fun_prop) + have hc2 : Continuous fun s : Set.Icc (0 : ℝ) 4 ↦ + paperGerverPath (gerverStageTimes 1 + + (gerverStageTimes 4 - gerverStageTimes 1) * (s.val - 1)) := + contDiff_paperGerverPath.continuous.comp (by fun_prop) + have hc3 : Continuous fun s : Set.Icc (0 : ℝ) 4 ↦ + paperGerverContacts (gerverStageTimes 2 * (3 - s.val)) 3 := + (continuous_paperGerverContact 3).comp (by fun_prop) + have hc4 : Continuous fun s : Set.Icc (0 : ℝ) 4 ↦ + (4 - s.val) • paperGerverContacts 0 3 + + (s.val - 3) • paperGerverContacts (Real.pi / 2) 1 := by fun_prop + have hinner2 : Continuous fun s : Set.Icc (0 : ℝ) 4 ↦ + if s.val ≤ 3 then paperGerverContacts (gerverStageTimes 2 * (3 - s.val)) 3 + else (4 - s.val) • paperGerverContacts 0 3 + + (s.val - 3) • paperGerverContacts (Real.pi / 2) 1 := by + refine continuous_if_le continuous_subtype_val continuous_const hc3.continuousOn + hc4.continuousOn ?_ + intro s hsv + rw [hsv, show gerverStageTimes 2 * ((3 : ℝ) - 3) = 0 by ring] + norm_num + have hinner1 : Continuous fun s : Set.Icc (0 : ℝ) 4 ↦ + if s.val ≤ 2 then + paperGerverPath (gerverStageTimes 1 + + (gerverStageTimes 4 - gerverStageTimes 1) * (s.val - 1)) + else if s.val ≤ 3 then paperGerverContacts (gerverStageTimes 2 * (3 - s.val)) 3 + else (4 - s.val) • paperGerverContacts 0 3 + + (s.val - 3) • paperGerverContacts (Real.pi / 2) 1 := by + refine continuous_if_le continuous_subtype_val continuous_const hc2.continuousOn + hinner2.continuousOn ?_ + intro s hsv + rw [hsv, ite_eq_left (show (2 : ℝ) ≤ 3 by norm_num), + show gerverStageTimes 1 + (gerverStageTimes 4 - gerverStageTimes 1) * ((2 : ℝ) - 1) = + gerverStageTimes 4 by ring, + show gerverStageTimes 2 * ((3 : ℝ) - 2) = gerverStageTimes 2 by ring] + exact gerver_niche_piece_endpoints.2.1.symm + unfold gerverNicheBoundary + refine continuous_if_le continuous_subtype_val continuous_const hc1.continuousOn + hinner1.continuousOn ?_ + intro s hsv + rw [hsv, ite_eq_left (show (1 : ℝ) ≤ 2 by norm_num), + show Real.pi / 2 - (Real.pi / 2 - gerverStageTimes 3) * (1 : ℝ) = gerverStageTimes 3 by ring, + show gerverStageTimes 1 + (gerverStageTimes 4 - gerverStageTimes 1) * ((1 : ℝ) - 1) = + gerverStageTimes 1 by ring] + exact gerver_niche_piece_endpoints.1 + +/-- The four-piece niche traversal is a continuous path of bounded variation: each of its six +analytic pieces is continuously differentiable on a closed parameter interval. -/ +private theorem gerverNicheBoundary_mem_continuousBV : + gerverNicheBoundary ∈ continuousBVSubmodule 0 4 := by + obtain ⟨h0, h5, h01, h12, h23, h34, h45⟩ := gerverStageTimes_order + refine ⟨continuous_gerverNicheBoundary, fun i ↦ ?_⟩ + have hd3 : (0 : ℝ) < Real.pi / 2 - gerverStageTimes 3 := by linarith + set c1 : ℝ := (Real.pi / 2 - gerverStageTimes 4) / (Real.pi / 2 - gerverStageTimes 3) with hc1def + set c2 : ℝ := 3 - gerverStageTimes 1 / gerverStageTimes 2 with hc2def + have hv : (Real.pi / 2 - gerverStageTimes 3) * c1 = Real.pi / 2 - gerverStageTimes 4 := by + rw [hc1def, mul_comm, div_mul_cancel₀ _ hd3.ne'] + have hu : gerverStageTimes 2 * (gerverStageTimes 1 / gerverStageTimes 2) = + gerverStageTimes 1 := by + rw [mul_comm, div_mul_cancel₀ _ (show gerverStageTimes 2 ≠ 0 by + exact ne_of_gt (by linarith))] + have hc10 : (0 : ℝ) ≤ c1 := by rw [hc1def]; exact div_nonneg (by linarith) hd3.le + have hc11 : c1 ≤ 1 := by rw [hc1def]; exact (div_le_one hd3).mpr (by linarith) + have hq0 : (0 : ℝ) ≤ gerverStageTimes 1 / gerverStageTimes 2 := + div_nonneg (by linarith) (by linarith) + have hq1 : gerverStageTimes 1 / gerverStageTimes 2 ≤ 1 := + (div_le_one (by linarith)).mpr (by linarith) + have hc22 : (2 : ℝ) ≤ c2 := by rw [hc2def]; linarith + have hc23 : c2 ≤ 3 := by rw [hc2def]; linarith + -- a contact curve composed with a smooth time change staying in one stage + have hcontact : ∀ (j : Fin 4) (k : Fin 5) (arg : ℝ → ℝ) (l r : ℝ), ContDiff ℝ 1 arg → + Set.MapsTo arg (Set.Icc l r) (gerverStageIntervals k) → + ContDiffOn ℝ 1 (fun s ↦ paperGerverContacts (arg s) j) (Set.Icc l r) := + fun j k arg l r harg hmaps ↦ + (contDiffOn_paperGerverContact j k).comp harg.contDiffOn hmaps + have harg1 : ContDiff ℝ 1 fun s : ℝ ↦ + Real.pi / 2 - (Real.pi / 2 - gerverStageTimes 3) * s := by fun_prop + have harg3 : ContDiff ℝ 1 fun s : ℝ ↦ gerverStageTimes 2 * (3 - s) := by fun_prop + -- the six pieces + have hp1 : ContDiffOn ℝ 1 (fun s ↦ paperGerverContacts + (Real.pi / 2 - (Real.pi / 2 - gerverStageTimes 3) * s) 1) (Set.Icc 0 c1) := by + refine hcontact 1 4 _ 0 c1 harg1 ?_ + intro s hs + rw [gerverStageIntervals_four, h5] + have hmul := mul_le_mul_of_nonneg_left hs.2 hd3.le + rw [hv] at hmul + exact ⟨by linarith, by nlinarith [hs.1]⟩ + have hp2 : ContDiffOn ℝ 1 (fun s ↦ paperGerverContacts + (Real.pi / 2 - (Real.pi / 2 - gerverStageTimes 3) * s) 1) (Set.Icc c1 1) := by + refine hcontact 1 3 _ c1 1 harg1 ?_ + intro s hs + rw [gerverStageIntervals_three] + have hmul := mul_le_mul_of_nonneg_left hs.1 hd3.le + rw [hv] at hmul + exact ⟨by nlinarith [hs.2], by linarith⟩ + have hp3 : ContDiffOn ℝ 1 (fun s ↦ paperGerverPath (gerverStageTimes 1 + + (gerverStageTimes 4 - gerverStageTimes 1) * (s - 1))) (Set.Icc 1 2) := + (contDiff_paperGerverPath.comp (by fun_prop)).contDiffOn + have hp4 : ContDiffOn ℝ 1 (fun s ↦ paperGerverContacts (gerverStageTimes 2 * (3 - s)) 3) + (Set.Icc 2 c2) := by + refine hcontact 3 1 _ 2 c2 harg3 ?_ + intro s hs + rw [gerverStageIntervals_one] + have hmul := mul_le_mul_of_nonneg_left (show 3 - s ≥ 3 - c2 by linarith [hs.2]) + (show (0:ℝ) ≤ gerverStageTimes 2 by linarith) + rw [show (3 : ℝ) - c2 = gerverStageTimes 1 / gerverStageTimes 2 by rw [hc2def]; ring, hu] + at hmul + exact ⟨hmul, by nlinarith [hs.1]⟩ + have hp5 : ContDiffOn ℝ 1 (fun s ↦ paperGerverContacts (gerverStageTimes 2 * (3 - s)) 3) + (Set.Icc c2 3) := by + refine hcontact 3 0 _ c2 3 harg3 ?_ + intro s hs + rw [gerverStageIntervals_zero, h0] + have hmul := mul_le_mul_of_nonneg_left (show 3 - s ≤ 3 - c2 by linarith [hs.1]) + (show (0:ℝ) ≤ gerverStageTimes 2 by linarith) + rw [show (3 : ℝ) - c2 = gerverStageTimes 1 / gerverStageTimes 2 by rw [hc2def]; ring, hu] + at hmul + exact ⟨by nlinarith [hs.2], hmul⟩ + have hp6 : ContDiffOn ℝ 1 (fun s : ℝ ↦ (4 - s) • paperGerverContacts 0 3 + + (s - 3) • paperGerverContacts (Real.pi / 2) 1) (Set.Icc 3 4) := by + apply ContDiff.contDiffOn + fun_prop + -- the variation of each coordinate on each of the six pieces + have e1 := boundedVariationOn_coord_Icc_of_contDiffOn gerverNicheBoundary le_rfl hc10 + (show c1 ≤ 4 by linarith) hp1 + (fun t ↦ gerverNicheBoundary_of_le_one _ (t.2.2.trans hc11)) i + have e2 := boundedVariationOn_coord_Icc_of_contDiffOn gerverNicheBoundary hc10 hc11 + (show (1 : ℝ) ≤ 4 by norm_num) hp2 + (fun t ↦ gerverNicheBoundary_of_le_one _ t.2.2) i + have e3 := boundedVariationOn_coord_Icc_of_contDiffOn gerverNicheBoundary + (show (0 : ℝ) ≤ 1 by norm_num) (show (1 : ℝ) ≤ 2 by norm_num) + (show (2 : ℝ) ≤ 4 by norm_num) hp3 + (fun t ↦ gerverNicheBoundary_mid _ t.2.1 t.2.2) i + have e4 := boundedVariationOn_coord_Icc_of_contDiffOn gerverNicheBoundary + (show (0 : ℝ) ≤ 2 by norm_num) hc22 (show c2 ≤ 4 by linarith) hp4 + (fun t ↦ gerverNicheBoundary_third _ t.2.1 (t.2.2.trans hc23)) i + have e5 := boundedVariationOn_coord_Icc_of_contDiffOn gerverNicheBoundary + (show (0 : ℝ) ≤ c2 by linarith) hc23 (show (3 : ℝ) ≤ 4 by norm_num) hp5 + (fun t ↦ gerverNicheBoundary_third _ (hc22.trans t.2.1) t.2.2) i + have e6 := boundedVariationOn_coord_Icc_of_contDiffOn gerverNicheBoundary + (show (0 : ℝ) ≤ 3 by norm_num) (show (3 : ℝ) ≤ 4 by norm_num) le_rfl hp6 + (fun t ↦ gerverNicheBoundary_base _ t.2.1) i + -- glue them along the subdivision `0 ≤ c₁ ≤ 1 ≤ 2 ≤ c₂ ≤ 3 ≤ 4` + have hsub : ∀ {x y : ℝ} {hx : x ∈ Set.Icc (0 : ℝ) 4} {hy : y ∈ Set.Icc (0 : ℝ) 4}, + x ≤ y → (⟨x, hx⟩ : Set.Icc (0 : ℝ) 4) ≤ ⟨y, hy⟩ := fun h ↦ h + have q01 : (0 : ℝ) ≤ 1 := by norm_num + have q12 : (1 : ℝ) ≤ 2 := by norm_num + have q02 : (0 : ℝ) ≤ 2 := by norm_num + have q03 : (0 : ℝ) ≤ 3 := by norm_num + have q34 : (3 : ℝ) ≤ 4 := by norm_num + have q0c2 : (0 : ℝ) ≤ c2 := by linarith + have g1 := BoundedVariationOn.Icc_union_Icc (hsub hc10) (hsub hc11) e1 e2 + have g2 := BoundedVariationOn.Icc_union_Icc (hsub q01) (hsub q12) g1 e3 + have g3 := BoundedVariationOn.Icc_union_Icc (hsub q02) (hsub hc22) g2 e4 + have g4 := BoundedVariationOn.Icc_union_Icc (hsub q0c2) (hsub hc23) g3 e5 + change BoundedVariationOn (fun t : Set.Icc (0 : ℝ) 4 ↦ gerverNicheBoundary t i) Set.univ + exact BoundedVariationOn.univ_of_Icc_endpoints (show (0 : ℝ) ≤ 4 by norm_num) + (BoundedVariationOn.Icc_union_Icc (hsub q03) (hsub q34) g4 e6) + +/-! ## The traversal is the roof, run backwards -/ + +/-- The decreasing piecewise affine parameter change carrying `[0, 3]` onto the roof +interval `[0, π/2]`. -/ +private def gerverBoundaryParam (s : ℝ) : ℝ := + if s ≤ 1 then Real.pi / 2 - (Real.pi / 2 - gerverStageTimes 3) * s + else if s ≤ 2 then gerverStageTimes 2 + (gerverStageTimes 3 - gerverStageTimes 2) * (2 - s) + else gerverStageTimes 2 * (3 - s) + +private theorem gerverBoundaryParam_first {s : ℝ} (h : s ≤ 1) : + gerverBoundaryParam s = Real.pi / 2 - (Real.pi / 2 - gerverStageTimes 3) * s := + ite_eq_left h + +private theorem gerverBoundaryParam_second {s : ℝ} (h1 : 1 ≤ s) (h2 : s ≤ 2) : + gerverBoundaryParam s = + gerverStageTimes 2 + (gerverStageTimes 3 - gerverStageTimes 2) * (2 - s) := by + rcases eq_or_lt_of_le h1 with heq | hlt + · rw [gerverBoundaryParam_first heq.ge, ← heq]; ring + · rw [gerverBoundaryParam, ite_eq_right (not_le.mpr hlt), ite_eq_left h2] + +private theorem gerverBoundaryParam_third {s : ℝ} (h1 : 2 ≤ s) : + gerverBoundaryParam s = gerverStageTimes 2 * (3 - s) := by + rcases eq_or_lt_of_le h1 with heq | hlt + · rw [gerverBoundaryParam_second (by linarith) heq.ge, ← heq]; ring + · rw [gerverBoundaryParam, ite_eq_right (not_le.mpr (by linarith)), + ite_eq_right (not_le.mpr hlt)] + +private theorem gerverBoundaryParam_strictAntiOn : + StrictAntiOn gerverBoundaryParam (Set.Icc (0 : ℝ) 3) := by + obtain ⟨-, -, h01, h12, h23, h34, h45⟩ := gerverStageTimes_order + have hD : (0 : ℝ) < Real.pi / 2 - gerverStageTimes 3 := by linarith + have hE : (0 : ℝ) < gerverStageTimes 3 - gerverStageTimes 2 := by linarith + have hF : (0 : ℝ) < gerverStageTimes 2 := by linarith + have hle1 : ∀ s : ℝ, s ≤ 1 → gerverStageTimes 3 ≤ gerverBoundaryParam s := by + intro s hs + rw [gerverBoundaryParam_first hs] + nlinarith + have hlt1 : ∀ s : ℝ, 1 < s → s ≤ 3 → gerverBoundaryParam s < gerverStageTimes 3 := by + intro s hs hs3 + rcases le_or_gt s 2 with h | h + · rw [gerverBoundaryParam_second hs.le h]; nlinarith + · rw [gerverBoundaryParam_third h.le]; nlinarith + have hle2 : ∀ s : ℝ, 1 ≤ s → s ≤ 2 → gerverStageTimes 2 ≤ gerverBoundaryParam s := by + intro s hs1 hs2 + rw [gerverBoundaryParam_second hs1 hs2] + nlinarith + have hlt2 : ∀ s : ℝ, 2 < s → gerverBoundaryParam s < gerverStageTimes 2 := by + intro s hs + rw [gerverBoundaryParam_third hs.le] + nlinarith + intro x hx y hy hxy + rcases le_or_gt y 1 with hy1 | hy1 + · rw [gerverBoundaryParam_first (hxy.le.trans hy1), gerverBoundaryParam_first hy1] + nlinarith + rcases le_or_gt x 1 with hx1 | hx1 + · exact lt_of_lt_of_le (hlt1 y hy1 hy.2) (hle1 x hx1) + rcases le_or_gt y 2 with hy2 | hy2 + · rw [gerverBoundaryParam_second hx1.le (hxy.le.trans hy2), + gerverBoundaryParam_second (by linarith) hy2] + nlinarith + rcases le_or_gt x 2 with hx2 | hx2 + · exact lt_of_lt_of_le (hlt2 y hy2) (hle2 x hx1.le hx2) + · rw [gerverBoundaryParam_third hx2.le, gerverBoundaryParam_third (by linarith)] + nlinarith + +private theorem gerverBoundaryParam_zero : gerverBoundaryParam 0 = Real.pi / 2 := by + rw [gerverBoundaryParam_first (by norm_num)]; ring + +private theorem gerverBoundaryParam_three : gerverBoundaryParam 3 = 0 := by + rw [gerverBoundaryParam_third (by norm_num)]; ring + +private theorem gerverBoundaryParam_mem {s : ℝ} (h1 : 0 ≤ s) (h2 : s ≤ 3) : + gerverBoundaryParam s ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := by + have hanti := gerverBoundaryParam_strictAntiOn.antitoneOn + refine ⟨?_, ?_⟩ + · rw [← gerverBoundaryParam_three] + exact hanti ⟨h1, h2⟩ (by norm_num) h2 + · rw [← gerverBoundaryParam_zero] + exact hanti (by norm_num) ⟨h1, h2⟩ h1 + +/-- On its first three pieces the traversal runs backwards along the niche roof. -/ +private theorem gerverNicheBoundary_eq_roof {s : ℝ} (hs : s ∈ Set.Icc (0 : ℝ) 4) (h : s ≤ 3) : + gerverNicheBoundary ⟨s, hs⟩ = + gerverNicheRoof ⟨gerverBoundaryParam s, gerverBoundaryParam_mem hs.1 h⟩ := by + obtain ⟨-, -, h01, h12, h23, h34, h45⟩ := gerverStageTimes_order + have hne : gerverStageTimes 3 - gerverStageTimes 2 ≠ 0 := by + exact ne_of_gt (by linarith) + rcases le_or_gt s 1 with h1 | h1 + · rw [gerverNicheBoundary_of_le_one hs h1, + gerverNicheRoof_of_ge_three _ (by rw [gerverBoundaryParam_first h1]; nlinarith), + gerverBoundaryParam_first h1] + rcases le_or_gt s 2 with h2 | h2 + · rw [gerverNicheBoundary_mid hs h1.le h2, + gerverNicheRoof_mid _ (by rw [gerverBoundaryParam_second h1.le h2]; nlinarith) + (by rw [gerverBoundaryParam_second h1.le h2]; nlinarith)] + congr 1 + rw [gerverRoofReverseTime, gerverBoundaryParam_second h1.le h2] + field_simp + ring + · rw [gerverNicheBoundary_third hs h2.le h, + gerverNicheRoof_of_le_two _ (by rw [gerverBoundaryParam_third h2.le]; nlinarith), + gerverBoundaryParam_third h2.le] + +/-- The four-piece traversal has the same image as the counterclockwise loop around the +region under the roof, and is a counterclockwise Jordan parametrization of it. -/ +private theorem gerverNicheBoundary_orientedJordan {f : ℝ → ℝ} (hfc : Continuous f) + (hfgraph : ∀ s : Set.Icc (0 : ℝ) (Real.pi / 2), + f (gerverNicheRoof s 0) = gerverNicheRoof s 1) + (hab : gerverNicheLeft < gerverNicheRight) + (hfa : f gerverNicheLeft = 0) (hfb : f gerverNicheRight = 0) + (hfpos : ∀ c ∈ Set.Ioo gerverNicheLeft gerverNicheRight, 0 < f c) : + Set.range gerverNicheBoundary = + Set.range (positiveGraphLoop gerverNicheLeft gerverNicheRight f) ∧ + IsOrientedJordanParametrization (show (0 : ℝ) ≤ 4 by norm_num) + (Set.range (positiveGraphLoop gerverNicheLeft gerverNicheRight f)) true + gerverNicheBoundary := by + have hba : (0 : ℝ) < gerverNicheRight - gerverNicheLeft := by linarith + obtain ⟨hjor, -⟩ := positiveGraphLoop_counterclockwise gerverNicheLeft gerverNicheRight + hab f hfc.continuousOn hfa hfb hfpos + -- the reparametrization of the loop by the four-piece traversal + have hbnd : ∀ s : Set.Icc (0 : ℝ) 4, s.val ≤ 3 → + gerverNicheBoundary s 0 ∈ Set.Icc gerverNicheLeft gerverNicheRight := by + intro s hs + rw [gerverNicheBoundary_eq_roof s.2 hs] + exact gerverNicheRoof_fst_mem _ + have hpsimem : ∀ s : Set.Icc (0 : ℝ) 4, + (if s.val ≤ 3 then (gerverNicheRight - gerverNicheBoundary s 0) / + (gerverNicheRight - gerverNicheLeft) else s.val - 2) ∈ Set.Icc (0 : ℝ) 2 := by + intro s + by_cases hs : s.val ≤ 3 + · obtain ⟨hl, hr⟩ := hbnd s hs + rw [ite_eq_left hs] + exact ⟨div_nonneg (by linarith) hba.le, by + refine le_trans ((div_le_one hba).mpr (by linarith)) (by norm_num)⟩ + · rw [ite_eq_right hs] + exact ⟨by linarith [not_le.mp hs], by linarith [s.2.2]⟩ + set ψ : Set.Icc (0 : ℝ) 4 → Set.Icc (0 : ℝ) 2 := fun s ↦ ⟨_, hpsimem s⟩ with hψdef + have hψval : ∀ s : Set.Icc (0 : ℝ) 4, (ψ s : ℝ) = + if s.val ≤ 3 then (gerverNicheRight - gerverNicheBoundary s 0) / + (gerverNicheRight - gerverNicheLeft) else s.val - 2 := fun _ ↦ rfl + have hψle : ∀ s : Set.Icc (0 : ℝ) 4, s.val ≤ 3 → (ψ s : ℝ) ≤ 1 := by + intro s hs + rw [hψval, ite_eq_left hs] + exact (div_le_one hba).mpr (by linarith [(hbnd s hs).1]) + have hψeq : ∀ s : Set.Icc (0 : ℝ) 4, s.val ≤ 3 → + gerverNicheRight - (gerverNicheRight - gerverNicheLeft) * (ψ s : ℝ) = + gerverNicheBoundary s 0 := by + intro s hs + rw [hψval, ite_eq_left hs, mul_div_cancel₀ _ hba.ne'] + ring + have hbthree : ∀ s : Set.Icc (0 : ℝ) 4, s.val = 3 → + gerverNicheBoundary s 0 = gerverNicheLeft := by + intro s hs + rw [gerverNicheBoundary_eq_roof s.2 hs.le] + have h3 : gerverBoundaryParam s.val = 0 := by rw [hs]; exact gerverBoundaryParam_three + simp only [h3] + rw [gerverNicheRoof_zero] + rfl + -- the traversal is the loop, reparametrized + have hΓψ : ∀ s : Set.Icc (0 : ℝ) 4, + gerverNicheBoundary s = positiveGraphLoop gerverNicheLeft gerverNicheRight f (ψ s) := by + intro s + by_cases hs : s.val ≤ 3 + · rw [positiveGraphLoop_apply_of_le (hpsimem s) (hψle s hs), hψeq s hs] + have hroof := gerverNicheBoundary_eq_roof s.2 hs + have hheight : f (gerverNicheBoundary s 0) = gerverNicheBoundary s 1 := by + rw [hroof, hfgraph] + rw [hheight] + exact Point.eq_vecNotation _ + · have hs' : (3 : ℝ) ≤ s.val := (not_le.mp hs).le + rw [positiveGraphLoop_apply_of_not_le (hpsimem s) (by + rw [ite_eq_right hs]; exact not_le.mpr (by linarith [not_le.mp hs])), + ite_eq_right hs, gerverNicheBoundary_base s.2 hs'] + have hD : paperGerverContacts 0 3 = !₂[gerverNicheLeft, (0 : ℝ)] := by + rw [Point.eq_vecNotation (paperGerverContacts 0 3), gerver_niche_piece_endpoints.2.2.2] + rfl + have hB : paperGerverContacts (Real.pi / 2) 1 = !₂[gerverNicheRight, (0 : ℝ)] := by + rw [Point.eq_vecNotation (paperGerverContacts (Real.pi / 2) 1), + gerver_niche_piece_endpoints.2.2.1] + rfl + rw [hD, hB] + ext i + fin_cases i + · simp + ring + · simp + have hΓfun : gerverNicheBoundary = + positiveGraphLoop gerverNicheLeft gerverNicheRight f ∘ ψ := funext hΓψ + -- strict monotonicity of the reparametrization + have hψmono : StrictMono ψ := by + intro s t hst + have hstv : s.val < t.val := hst + have hlt : (ψ s : ℝ) < (ψ t : ℝ) := by + by_cases hs : s.val ≤ 3 + · by_cases ht : t.val ≤ 3 + · have hΓ : gerverNicheBoundary t 0 < gerverNicheBoundary s 0 := by + rw [gerverNicheBoundary_eq_roof s.2 hs, gerverNicheBoundary_eq_roof t.2 ht] + exact gerver_niche_roof_strictMono + (show (⟨gerverBoundaryParam t.val, gerverBoundaryParam_mem t.2.1 ht⟩ : + Set.Icc (0 : ℝ) (Real.pi / 2)) < + ⟨gerverBoundaryParam s.val, gerverBoundaryParam_mem s.2.1 hs⟩ from + gerverBoundaryParam_strictAntiOn ⟨s.2.1, hs⟩ ⟨t.2.1, ht⟩ hstv) + rw [hψval s, hψval t, ite_eq_left hs, ite_eq_left ht] + have h2 : gerverNicheRight - gerverNicheBoundary s 0 < + gerverNicheRight - gerverNicheBoundary t 0 := by linarith + gcongr + · rw [hψval t, ite_eq_right ht] + exact lt_of_le_of_lt (hψle s hs) (by linarith [not_le.mp ht]) + · have ht : ¬ t.val ≤ 3 := fun h ↦ hs (le_trans hstv.le h) + rw [hψval s, hψval t, ite_eq_right hs, ite_eq_right ht] + linarith + exact hlt + -- the reparametrization matches the endpoints and is a continuous surjection + have hz0 : (0 : ℝ) ∈ Set.Icc (0 : ℝ) 4 := ⟨le_rfl, by norm_num⟩ + have hz4 : (4 : ℝ) ∈ Set.Icc (0 : ℝ) 4 := ⟨by norm_num, le_rfl⟩ + have hu0 : (0 : ℝ) ∈ Set.Icc (0 : ℝ) 2 := ⟨le_rfl, by norm_num⟩ + have hu2 : (2 : ℝ) ∈ Set.Icc (0 : ℝ) 2 := ⟨by norm_num, le_rfl⟩ + have hbzero : gerverNicheBoundary ⟨0, hz0⟩ 0 = gerverNicheRight := by + rw [gerverNicheBoundary_eq_roof hz0 (by norm_num)] + have h3 : gerverBoundaryParam (0 : ℝ) = Real.pi / 2 := gerverBoundaryParam_zero + simp only [h3] + rw [gerverNicheRoof_top] + rfl + have hψ0 : ψ ⟨0, hz0⟩ = ⟨0, hu0⟩ := by + refine Subtype.ext ?_ + rw [hψval, ite_eq_left (by norm_num), hbzero, sub_self, zero_div] + have hψ4 : ψ ⟨4, hz4⟩ = ⟨2, hu2⟩ := by + refine Subtype.ext ?_ + rw [hψval, ite_eq_right (by norm_num)] + norm_num + have hψcont : Continuous ψ := by + refine Continuous.subtype_mk ?_ _ + refine continuous_if_le continuous_subtype_val continuous_const + ((continuous_const.sub ((PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 0).comp + continuous_gerverNicheBoundary)).div_const _).continuousOn + (continuous_subtype_val.sub continuous_const).continuousOn ?_ + intro s hsv + rw [hbthree s hsv, hsv, div_self hba.ne'] + norm_num + have : PreconnectedSpace (Set.Icc (0 : ℝ) 4) := Subtype.preconnectedSpace isPreconnected_Icc + have hψsurj : Function.Surjective ψ := by + intro u + have hcont : Continuous fun s : Set.Icc (0 : ℝ) 4 ↦ (ψ s : ℝ) := + continuous_subtype_val.comp hψcont + have hmemu : (u : ℝ) ∈ Set.Icc + ((fun s : Set.Icc (0 : ℝ) 4 ↦ (ψ s : ℝ)) ⟨0, hz0⟩) + ((fun s : Set.Icc (0 : ℝ) 4 ↦ (ψ s : ℝ)) ⟨4, hz4⟩) := by + simp only + rw [congrArg Subtype.val hψ0, congrArg Subtype.val hψ4] + exact u.property + obtain ⟨t, ht⟩ := intermediate_value_univ _ _ hcont hmemu + exact ⟨t, Subtype.ext ht⟩ + -- the traversal traces the loop, once + have hrange : Set.range gerverNicheBoundary = + Set.range (positiveGraphLoop gerverNicheLeft gerverNicheRight f) := by + rw [hΓfun, Set.range_comp, hψsurj.range_eq, Set.image_univ] + have hinj : Set.InjOn gerverNicheBoundary {t : Set.Icc (0 : ℝ) 4 | (t : ℝ) < 4} := by + intro x hx y hy hxy + have hlt2 : ∀ z : Set.Icc (0 : ℝ) 4, (z : ℝ) < 4 → + (ψ z : Set.Icc (0 : ℝ) 2) ∈ {t : Set.Icc (0 : ℝ) 2 | (t : ℝ) < 2} := by + intro z hz + have h := hψmono (show z < (⟨4, hz4⟩ : Set.Icc (0 : ℝ) 4) from hz) + rw [hψ4] at h + exact h + refine hψmono.injective (hjor.2.2.2.2.2.1 (hlt2 x hx) (hlt2 y hy) ?_) + rw [← hΓψ x, ← hΓψ y] + exact hxy + have hclosedpath : gerverNicheBoundary ⟨0, hz0⟩ = gerverNicheBoundary ⟨4, hz4⟩ := by + rw [hΓψ, hΓψ, hψ0, hψ4] + exact hjor.2.2.2.2.1 + have hwind : ∀ p ∈ jordanInterior + (Set.range (positiveGraphLoop gerverNicheLeft gerverNicheRight f)), + curveWinding (show (0 : ℝ) ≤ 4 by norm_num) gerverNicheBoundary p = 1 := by + intro p hp + have hw2 : curveWinding (show (0 : ℝ) ≤ 2 by norm_num) + (positiveGraphLoop gerverNicheLeft gerverNicheRight f) p = 1 := by + simpa using hjor.2.2.2.2.2.2 p hp + have hne : curveWinding (show (0 : ℝ) ≤ 2 by norm_num) + (positiveGraphLoop gerverNicheLeft gerverNicheRight f) p ≠ 0 := by + rw [hw2]; norm_num + have hcomp := curveWinding_comp_of_endpoints (show (0 : ℝ) ≤ 2 by norm_num) + (show (0 : ℝ) ≤ 4 by norm_num) + (exists_curveAngleLift_of_curveWinding_ne_zero _ hne) hψcont hψ0 hψ4 + rw [← hΓfun] at hcomp + rw [hcomp, hw2] + have hOJP : IsOrientedJordanParametrization (show (0 : ℝ) ≤ 4 by norm_num) + (Set.range (positiveGraphLoop gerverNicheLeft gerverNicheRight f)) true + gerverNicheBoundary := + ⟨by norm_num, hjor.2.1, continuous_gerverNicheBoundary, hrange, hclosedpath, hinj, + fun p hp ↦ by simpa using hwind p hp⟩ + exact ⟨hrange, hOJP⟩ + +/-- No point of the niche roof lies in the strict region under the roof: the roof is the graph +of the height function, and that region lies strictly below the graph. -/ +private theorem gerverNicheRoof_notMem_strictSubgraph {f : ℝ → ℝ} + (hfgraph : ∀ s : Set.Icc (0 : ℝ) (Real.pi / 2), + f (gerverNicheRoof s 0) = gerverNicheRoof s 1) + (s : Set.Icc (0 : ℝ) (Real.pi / 2)) : + gerverNicheRoof s ∉ strictSubgraph gerverNicheLeft gerverNicheRight f := by + intro hmem + have h := hmem.2.2.2 + rw [hfgraph s] at h + exact absurd h (lt_irrefl _) + +theorem gerver_niche_orientation : + ∃ K : RightAngleCapSpace, (K.val : Set Point) = gerverOuterCap ∧ + ∃ Γ : ContinuousBVPaths 0 4, Γ.val = gerverNicheBoundary ∧ + IsOrientedJordanParametrization (by norm_num : (0 : ℝ) ≤ 4) + (frontier (closure (capNiche K))) true Γ.val ∧ + closure (capNiche K) = jordanInterior (Set.range Γ.val) ∪ Set.range Γ.val ∧ + ClassicalResults.area (closure (capNiche K)) = ClassicalResults.area (capNiche K) ∧ + curveAreaFunctional Γ = ClassicalResults.area (capNiche K) ∧ + (∀ t ∈ Set.Icc (gerverStageTimes 3) (gerverStageTimes 5), + paperGerverContacts t 1 ∉ capNiche K) ∧ + (∀ t ∈ Set.Icc (gerverStageTimes 1) (gerverStageTimes 4), + paperGerverPath t ∉ capNiche K) ∧ + (∀ t ∈ Set.Icc (gerverStageTimes 0) (gerverStageTimes 2), + paperGerverContacts t 3 ∉ capNiche K) := by + obtain ⟨-, ⟨K, hKset, hKniche⟩, -, -⟩ := gerver_paperNiche_identification + obtain ⟨f, hfc, hfgraph, hfsurj, hab, hfa, hfb, hfpos⟩ := exists_gerverRoofHeight + obtain ⟨h0, h5, h01, h12, h23, h34, h45⟩ := gerverStageTimes_order + have hfcon : ContinuousOn f (Set.Icc gerverNicheLeft gerverNicheRight) := hfc.continuousOn + -- the niche and its closure, read as subgraphs of the roof height + have hniche : capNiche K = strictSubgraph gerverNicheLeft gerverNicheRight f := by + rw [hKniche, gerverLiteralNiche_eq_strictSubgraph hfgraph hfsurj] + have hclos : closure (capNiche K) = closedSubgraph gerverNicheLeft gerverNicheRight f := by + rw [hniche, closure_strictSubgraph hab hfcon hfa hfb hfpos] + -- the region enclosed by the counterclockwise loop around the same graph + have hintU := jordanInterior_range_positiveGraphLoop hab hfcon hfa hfb hfpos + have hdiff := closedSubgraph_sdiff_openSubgraph hab hfcon hfa hfb hfpos + have hCUR := closedSubgraph_eq_openSubgraph_union_range hab hfcon hfa hfb hfpos + have hfront : frontier (closure (capNiche K)) = + Set.range (positiveGraphLoop gerverNicheLeft gerverNicheRight f) := by + rw [hclos] + exact frontier_closedSubgraph hab hfcon hfa hfb hfpos + obtain ⟨hrange, hOJP⟩ := gerverNicheBoundary_orientedJordan hfc hfgraph hab hfa hfb hfpos + -- the boundary traversal sweeps a null set, so all three regions have the same area + have hvolR : MeasureTheory.volume + (Set.range (positiveGraphLoop gerverNicheLeft gerverNicheRight f)) = 0 := by + rw [← hrange] + exact ContinuousBVPaths.volume_range_eq_zero_of_injOn (show (0 : ℝ) ≤ 4 by norm_num) + ⟨gerverNicheBoundary, gerverNicheBoundary_mem_continuousBV⟩ hOJP.2.2.2.2.2.1 + have hCU : MeasureTheory.volume (closedSubgraph gerverNicheLeft gerverNicheRight f) = + MeasureTheory.volume (openSubgraph gerverNicheLeft gerverNicheRight f) := + (MeasureTheory.measure_eq_measure_of_null_sdiff openSubgraph_subset_closedSubgraph + (by rw [hdiff]; exact hvolR)).symm + have hCS : MeasureTheory.volume (closedSubgraph gerverNicheLeft gerverNicheRight f) = + MeasureTheory.volume (strictSubgraph gerverNicheLeft gerverNicheRight f) := by + refine (MeasureTheory.measure_eq_measure_of_null_sdiff strictSubgraph_subset_closedSubgraph + (MeasureTheory.measure_mono_null ?_ hvolR)).symm + rw [← hdiff] + exact fun q hq ↦ ⟨hq.1, fun hU ↦ hq.2 ⟨hq.1.1, hq.1.2.1, hq.1.2.2.1, hU.2.2.2⟩⟩ + have hroofnot : ∀ s : Set.Icc (0 : ℝ) (Real.pi / 2), gerverNicheRoof s ∉ capNiche K := + fun s ↦ hniche ▸ gerverNicheRoof_notMem_strictSubgraph hfgraph s + refine ⟨K, hKset, ⟨gerverNicheBoundary, gerverNicheBoundary_mem_continuousBV⟩, rfl, ?_, ?_, + ?_, ?_, ?_, ?_, ?_⟩ + · rw [hfront] + exact hOJP + · rw [hclos, show Set.range (⟨gerverNicheBoundary, gerverNicheBoundary_mem_continuousBV⟩ : + ContinuousBVPaths 0 4).val = Set.range gerverNicheBoundary from rfl, hrange, hintU, hCUR] + · rw [hclos, hniche] + unfold ClassicalResults.area + rw [hCS] + · rw [curveArea_eq_jordanInterior_area 0 4 (show (0 : ℝ) ≤ 4 by norm_num) + (Set.range (positiveGraphLoop gerverNicheLeft gerverNicheRight f)) + ⟨gerverNicheBoundary, gerverNicheBoundary_mem_continuousBV⟩ hOJP, hintU, hniche] + unfold ClassicalResults.area + rw [← hCU, hCS] + · intro t ht + rw [h5] at ht + have htI : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨by linarith [ht.1], ht.2⟩ + rw [← gerverNicheRoof_of_ge_three htI ht.1] + exact hroofnot _ + · intro t ht + obtain ⟨σ, hσ1, hσ2, hσ⟩ := exists_gerverRoofReverseTime ht + have hσI : σ ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨by linarith, by linarith⟩ + rw [← hσ, ← gerverNicheRoof_mid hσI hσ1 hσ2] + exact hroofnot _ + · intro t ht + rw [h0] at ht + have htI : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨ht.1, by linarith [ht.2]⟩ + rw [← gerverNicheRoof_of_le_two htI ht.2] + exact hroofnot _ + +/-! ## The interior of the base segment -/ + +/-- The two ends of the base segment of the niche boundary are distinct: they are the images +of the parameters `3` and `0` of the boundary traversal, which is injective on `[0, 4)`. -/ +theorem gerver_niche_bottom_ends_ne : + paperGerverContacts 0 3 ≠ paperGerverContacts (Real.pi / 2) 1 := by + obtain ⟨_, _, Γ, hΓ, hOJP, -⟩ := gerver_niche_orientation + have hmem0 : (0 : ℝ) ∈ Set.Icc (0 : ℝ) 4 := by norm_num + have hmem3 : (3 : ℝ) ∈ Set.Icc (0 : ℝ) 4 := by norm_num + have hb0 : gerverNicheBoundary ⟨0, hmem0⟩ = paperGerverContacts (Real.pi / 2) 1 := by + norm_num [gerverNicheBoundary] + have hb3 : gerverNicheBoundary ⟨3, hmem3⟩ = paperGerverContacts 0 3 := by + norm_num [gerverNicheBoundary] + intro heq + have hinj := hOJP.2.2.2.2.2.1 + rw [hΓ] at hinj + have h := hinj (show ((⟨3, hmem3⟩ : Set.Icc (0 : ℝ) 4) : ℝ) < 4 by norm_num) + (show ((⟨0, hmem0⟩ : Set.Icc (0 : ℝ) 4) : ℝ) < 4 by norm_num) (by rw [hb3, hb0, heq]) + have h' := congrArg Subtype.val h + norm_num at h' + +/-- Every interior point of the base segment of the niche boundary, which runs from `D(0)` to +`B(π/2)`, lies in the literal Gerver niche. Both ends sit on the wall, so the segment is +horizontal and its interior points have strictly intermediate horizontal coordinate; the +intermediate value theorem then puts a roof point directly above such a point, where the roof +has strictly positive height, and the description of the niche as the strict region under the +roof concludes. -/ +theorem gerver_bottom_segment_mem_gerverLiteralNiche {a : ℝ} (ha : a ∈ Set.Ioo (0 : ℝ) 1) : + (1 - a) • paperGerverContacts 0 3 + a • paperGerverContacts (Real.pi / 2) 1 ∈ + gerverLiteralNiche := by + obtain ⟨h0, h5, h01, h12, h23, h34, h45⟩ := gerverStageTimes_order + have hpi : (0 : ℝ) < Real.pi / 2 := by positivity + have hD0y : paperGerverContacts 0 3 1 = 0 := gerver_niche_piece_endpoints.2.2.2 + have hBTy : paperGerverContacts (Real.pi / 2) 1 1 = 0 := gerver_niche_piece_endpoints.2.2.1 + -- The two ends differ, and they agree in their second coordinate, so they differ in the first. + have hx : paperGerverContacts 0 3 0 ≠ paperGerverContacts (Real.pi / 2) 1 0 := by + intro h + refine gerver_niche_bottom_ends_ne ?_ + ext i + fin_cases i + · exact h + · exact hD0y.trans hBTy.symm + set P : Point := (1 - a) • paperGerverContacts 0 3 + a • paperGerverContacts (Real.pi / 2) 1 + with hPdef + have hP0 : P 0 = (1 - a) * paperGerverContacts 0 3 0 + + a * paperGerverContacts (Real.pi / 2) 1 0 := by + simp [hPdef, PiLp.add_apply, PiLp.smul_apply, smul_eq_mul] + have hP1 : P 1 = 0 := by + simp [hPdef, PiLp.add_apply, PiLp.smul_apply, smul_eq_mul, hD0y, hBTy] + -- The roof, read as a curve of a real parameter, runs from one end of the segment to the other. + have hR0 : gerverRoofCurve 0 = paperGerverContacts 0 3 := by + rw [gerverRoofCurve, ite_eq_left (show (0 : ℝ) ≤ gerverStageTimes 2 by linarith)] + have hRT : gerverRoofCurve (Real.pi / 2) = paperGerverContacts (Real.pi / 2) 1 := by + rw [gerverRoofCurve, ite_eq_right (not_le.mpr (by linarith)), + ite_eq_right (not_le.mpr (by linarith))] + -- The intermediate value theorem produces a roof parameter above `P`. + have hcont : ContinuousOn (fun s : ℝ ↦ gerverRoofCurve s 0) (Set.uIcc 0 (Real.pi / 2)) := + ((PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 0).comp + continuous_gerverRoofCurve).continuousOn + have hPmem : P 0 ∈ Set.uIcc (gerverRoofCurve 0 0) (gerverRoofCurve (Real.pi / 2) 0) := by + rw [hR0, hRT, Set.mem_uIcc, hP0] + rcases lt_or_gt_of_ne hx with h | h + · exact Or.inl ⟨by nlinarith [ha.1, ha.2], by nlinarith [ha.1, ha.2]⟩ + · exact Or.inr ⟨by nlinarith [ha.1, ha.2], by nlinarith [ha.1, ha.2]⟩ + obtain ⟨σ, hσmem, hσraw⟩ := intermediate_value_uIcc hcont hPmem + have hσ : gerverRoofCurve σ 0 = P 0 := hσraw + rw [Set.uIcc_of_le hpi.le] at hσmem + -- That parameter is interior, because `P` is not an end of the segment. + have hσ0 : σ ≠ 0 := by + intro h + rw [h, hR0, hP0] at hσ + rcases mul_eq_zero.mp (show a * (paperGerverContacts (Real.pi / 2) 1 0 - + paperGerverContacts 0 3 0) = 0 by linarith) with h' | h' + · exact absurd h' (ne_of_gt ha.1) + · exact hx (by linarith) + have hσT : σ ≠ Real.pi / 2 := by + intro h + rw [h, hRT, hP0] at hσ + rcases mul_eq_zero.mp (show (1 - a) * (paperGerverContacts (Real.pi / 2) 1 0 - + paperGerverContacts 0 3 0) = 0 by linarith) with h' | h' + · exact absurd h' (by linarith [ha.2] : (1 : ℝ) - a ≠ 0) + · exact hx (by linarith) + have hheight : 0 < gerverNicheRoof ⟨σ, hσmem⟩ 1 := + gerver_niche_roof_positive ⟨σ, hσmem⟩ + ⟨lt_of_le_of_ne hσmem.1 (Ne.symm hσ0), lt_of_le_of_ne hσmem.2 hσT⟩ + rw [gerverLiteralNiche_eq_roofFill] + exact ⟨⟨σ, hσmem⟩, by rw [← gerverRoofCurve_eq ⟨σ, hσmem⟩]; exact hσ.symm, + hP1.ge, by rw [hP1]; exact hheight⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The contact geometry of the paper Gerver sofa + +Gerver's sofa is a monotone sofa, and its right-angle cap has all the contact geometry the +upper-bound argument reads off a monotone sofa: selected cap vertices and inner corner given +by the paper's curves `A`, `C` and `x`, a counterclockwise Jordan traversal of the niche +boundary, the interior of the base segment inside the niche and the three roof pieces outside +it, the two inner contact curves on the two inner walls of the supporting hallway, and the +signs of their stage speeds along the frame directions. + +Every clause is about one and the same cap. The cap is taken from `paperGerverCap_injectivity` +— which also supplies the density hypothesis that makes the selected contacts well defined — +and the caps produced by cap-support identification, niche identification and niche +orientation are identified with it through their common carrier `gerverOuterCap`. The clauses +themselves are then assembled from the identification theorems together with +`gerver_bottom_segment_mem_gerverLiteralNiche`, the frame descriptions +`mem_rotatingHallwayParts_bRay_iff` and `mem_rotatingHallwayParts_dRay_iff` of the two inner +walls, the closed-interval velocity signs `paperGerverVelocityComponents_fst_nonpos` and +`paperGerverVelocityComponents_snd_nonneg`, and the stage speeds +`hasDerivWithinAt_paperGerverContacts_one_neg_smul` and +`hasDerivWithinAt_paperGerverContacts_three_pos_smul`. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem paperGerver_contact_geometry : + IsMonotoneSofa paperGerverSofa ∧ + ∃ K : RightAngleCapSpace, + (K.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2) ∧ + ∃ hK : ∃ r s, HasCapDensities K r s, + (∀ t : Set.Icc (0 : ℝ) (Real.pi / 2), + (nondegenerateCapData K hK).1.1 t = paperGerverContacts t 0 ∧ + (nondegenerateCapData K hK).1.2 t = paperGerverContacts t 2 ∧ + capInnerCorner K t = paperGerverPath t) ∧ + (∃ Γ : ContinuousBVPaths 0 4, Γ.val = gerverNicheBoundary ∧ + IsOrientedJordanParametrization (by norm_num : (0 : ℝ) ≤ 4) + (frontier (closure (capNiche K))) true Γ.val ∧ + closure (capNiche K) = jordanInterior (Set.range Γ.val) ∪ Set.range Γ.val ∧ + ClassicalResults.area (closure (capNiche K)) = ClassicalResults.area (capNiche K)) ∧ + (∀ a ∈ Set.Ioo (0 : ℝ) 1, + (1 - a) • paperGerverContacts 0 3 + + a • paperGerverContacts (Real.pi / 2) 1 ∈ capNiche K) ∧ + (∀ t ∈ Set.Icc (gerverStageTimes 3) (gerverStageTimes 5), + paperGerverContacts t 1 ∉ capNiche K ∧ + paperGerverContacts t 1 ∈ + (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).bRay) ∧ + (∀ t ∈ Set.Icc (gerverStageTimes 1) (gerverStageTimes 4), + paperGerverPath t ∉ capNiche K) ∧ + (∀ t ∈ Set.Icc (gerverStageTimes 0) (gerverStageTimes 2), + paperGerverContacts t 3 ∉ capNiche K ∧ + paperGerverContacts t 3 ∈ + (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).dRay) ∧ + (∀ i : Fin 5, i = 3 ∨ i = 4 → ∀ t ∈ gerverStageIntervals i, + ∃ c : ℝ, c < 0 ∧ + HasDerivWithinAt (fun s ↦ paperGerverContacts s 1) + (c • tangentVector (t : Real.Angle)) (gerverStageIntervals i) t) ∧ + (∀ i : Fin 5, i = 0 ∨ i = 1 → ∀ t ∈ gerverStageIntervals i, + ∃ c : ℝ, 0 < c ∧ + HasDerivWithinAt (fun s ↦ paperGerverContacts s 3) + (c • normalVector (t : Real.Angle)) (gerverStageIntervals i) t) := by + have hpi : (0 : ℝ) < Real.pi / 2 := by positivity + have hangsum : ∀ t : ℝ, (t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) = + ((Real.pi / 2 + t : ℝ) : Real.Angle) := fun t => by + rw [← Real.Angle.coe_add, add_comm] + have ht0 : gerverStageTimes 0 = 0 := gerverStageTimes_zero + have ht5 : gerverStageTimes 5 = Real.pi / 2 := rfl + have h03 : (0 : ℝ) < gerverStageTimes 3 := by + rw [← ht0]; exact gerverStageTimes_strictMono (by decide) + have h25 : gerverStageTimes 2 < Real.pi / 2 := by + rw [← ht5]; exact gerverStageTimes_strictMono (by decide) + -- ### One cap serves every clause: the four theorems below all speak about `gerverOuterCap` + obtain ⟨K, hKset, ⟨r, s, hdens, -⟩, -, -⟩ := paperGerverCap_injectivity + have hK : ∃ r s, HasCapDensities K r s := ⟨r, s, hdens⟩ + obtain ⟨-, hGeq, -, -, hcapeq, ⟨K₁, hK₁set, hsing, hA0, hAT, hC0, hCT⟩, hsup⟩ := + gerver_capSupport_identification + have hKcarrier : (K.val : Set Point) = gerverOuterCap := by rw [hKset, hGeq, hcapeq] + have hcapK : ∀ K' : RightAngleCapSpace, (K'.val : Set Point) = gerverOuterCap → K' = K := + fun K' h => Subtype.ext (SetLike.coe_injective (h.trans hKcarrier.symm)) + rw [hcapK K₁ hK₁set] at hsing hA0 hAT hC0 hCT + obtain ⟨-, ⟨K₂, hK₂set, hniche⟩, -, hmono⟩ := gerver_paperNiche_identification + rw [hcapK K₂ hK₂set] at hniche + obtain ⟨K₃, hK₃set, Γ, hΓ, hOJP, hclos, harea, -, hnotB, hnotx, hnotD⟩ := + gerver_niche_orientation + rw [hcapK K₃ hK₃set] at hOJP hclos harea hnotB hnotx hnotD + -- ### The two support values of the cap, and the resulting inner corner + have hsupK : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + supportValue (K.val : Set Point) (t : Real.Angle) = + inner ℝ (paperGerverPath t) (normalVector (t : Real.Angle)) + 1 ∧ + supportValue (K.val : Set Point) ((Real.pi / 2 + t : ℝ) : Real.Angle) = + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) + 1 := by + rw [hKcarrier] + exact hsup gerverOuterCap (Or.inl rfl) + have hcorner : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + capInnerCorner K t = paperGerverPath t := by + intro t ht + rw [capInnerCorner, + (rotatingHallwayParts_formulas (K.val : Set Point) (t : Real.Angle)).2.1, hangsum, + (hsupK t ht).1, (hsupK t ht).2, add_sub_cancel_right, add_sub_cancel_right, + inner_normalVector_smul_add_inner_tangentVector_smul] + refine ⟨hmono, K, hKset, hK, ?_, ⟨Γ, hΓ, hOJP, hclos, harea⟩, ?_, ?_, hnotx, ?_, + fun i hi t ht => hasDerivWithinAt_paperGerverContacts_one_neg_smul hi ht, + fun i hi t ht => hasDerivWithinAt_paperGerverContacts_three_pos_smul hi ht⟩ + · -- ### The selected cap vertices and the inner corner + -- Strictly inside the interval the two exposed faces are singletons; at the two endpoints + -- the selected contacts are the frozen one-sided contacts of cap-support identification, + -- with the nondegeneracy proposition equating the two vertices at `π / 2`. + intro t + have htI : (t : ℝ) ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := t.2 + refine ⟨?_, ?_, hcorner t htI⟩ + · dsimp only [nondegenerateCapData] + split_ifs with hT + · rw [hT, hAT] + rfl + · rcases eq_or_lt_of_le htI.1 with h0 | h0 + · rw [← h0, hA0] + exact congrArg (fun a : Real.Angle ↦ (edgeVertices (K.val) a).1) Real.Angle.coe_zero + · have hmem : (t : ℝ) ∈ Set.Ioo (0 : ℝ) (Real.pi / 2) := + ⟨h0, lt_of_le_of_ne htI.2 hT⟩ + change (edgeVertices (K.val) ((t : ℝ) : Real.Angle)).1 = _ + rw [edgeVertices_eq_of_exposedEdge_singleton (hsing _ hmem).1] + · change (edgeVertices (K.val) (((t : ℝ) + Real.pi / 2 : ℝ) : Real.Angle)).1 = _ + rcases eq_or_lt_of_le htI.1 with h0 | h0 + · rw [← h0, zero_add, hC0] + rcases eq_or_lt_of_le htI.2 with hT | hT + · have hnd : (edgeVertices (K.val) ((Real.pi / 2 + Real.pi / 2 : ℝ) : Real.Angle)).1 = + (edgeVertices (K.val) ((Real.pi / 2 + Real.pi / 2 : ℝ) : Real.Angle)).2 := + ((capDensities_contact_eq K hK).2 (Real.pi / 2) ⟨hpi, le_rfl⟩).1 + rw [hT, hnd, hCT] + exact congrArg (fun a : Real.Angle ↦ (edgeVertices (K.val) a).2) + (congrArg (fun x : ℝ ↦ (x : Real.Angle)) (by ring)) + · rw [edgeVertices_eq_of_exposedEdge_singleton (hsing _ ⟨h0, hT⟩).2] + · -- ### The open base segment lies in the niche + intro a ha + rw [hniche] + exact gerver_bottom_segment_mem_gerverLiteralNiche ha + · -- ### The second contact curve lies on the downward inner wall + -- With `B = x + α v`, the two support values turn the wall condition into `α t ≤ 0`. + intro t ht + refine ⟨hnotB t ht, ?_⟩ + have htI : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨by linarith [ht.1], by rw [← ht5]; exact ht.2⟩ + rw [mem_rotatingHallwayParts_bRay_iff, hangsum, (hsupK t htI).1, (hsupK t htI).2, + add_sub_cancel_right, add_sub_cancel_right] + have hB : paperGerverContacts t 1 = + paperGerverPath t + (paperGerverVelocityComponents t).1 • + tangentVector (t : Real.Angle) := rfl + rw [hB, inner_add_left, inner_add_left, real_inner_smul_left, real_inner_smul_left, + inner_tangentVector_normalVector_real t t, sub_self, Real.sin_zero, + inner_tangentVector_self] + exact ⟨by ring, by nlinarith [paperGerverVelocityComponents_fst_nonpos htI]⟩ + · -- ### The fourth contact curve lies on the leftward inner wall + -- With `D = x - β u`, the same two support values turn the wall condition into `0 ≤ β t`. + intro t ht + refine ⟨hnotD t ht, ?_⟩ + have htI : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨by rw [← ht0]; exact ht.1, by linarith [ht.2]⟩ + rw [mem_rotatingHallwayParts_dRay_iff, hangsum, (hsupK t htI).1, (hsupK t htI).2, + add_sub_cancel_right, add_sub_cancel_right] + have hD : paperGerverContacts t 3 = + paperGerverPath t - (paperGerverVelocityComponents t).2 • + normalVector (t : Real.Angle) := rfl + rw [hD, inner_sub_left, inner_sub_left, real_inner_smul_left, real_inner_smul_left, + inner_normalVector_self, inner_normalVector_tangentVector] + exact ⟨by nlinarith [paperGerverVelocityComponents_snd_nonneg htI], by ring⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The left and right tails of the Gerver cap + +`gerver_tailGeometry` identifies the two tails cut out of the Gerver cap by the inner hallway +walls. Each tail is cut out by a one-parameter family of supporting half-planes whose contact +points are the two inner Gerver contact curves `B` and `D`, so the envelope-tangency lemmas of +`MovingSofa/Convex/EnvelopeFace.lean` identify every intervening face of a tail with a single +point of the corresponding contact curve, and the stagewise monotonicity of the contact curves +against a fixed frame direction (`MovingSofa/Gerver/StageRegularity.lean`) supplies both the +containment of the contact curves in the tails and the injectivity of the two +parametrizations. The support sums are the cut identity `h_L (s + π) = -m s`. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A continuous injective parametrization traces the directed arc with the specified +endpoints. -/ +def ParametrizesDirectedArc (f : ℝ → Point) (a b : ℝ) (Γ : DirectedArcData) : Prop := + a < b ∧ ContinuousOn f (Set.Icc a b) ∧ Set.InjOn f (Set.Icc a b) ∧ + f '' Set.Icc a b = Γ.carrier ∧ f a = Γ.startPoint ∧ f b = Γ.endPoint + +private def gerverLeftTailSupport (s : ℝ) : ℝ := + inner ℝ (paperGerverPath (s - Real.pi / 2)) + (tangentVector ((s - Real.pi / 2 : ℝ) : Real.Angle)) + +private def gerverRightTailSupport (s : ℝ) : ℝ := + inner ℝ (paperGerverPath s) (normalVector (s : Real.Angle)) + +private theorem gerver_tail_membership (K : SpecialCapSpace) (B D : ConvexBody Point) + (hK : (K.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) + (hB : (B : Set Point) = (canonicalTailSets K).1) + (hD : (D : Set Point) = (canonicalTailSets K).2) : + (StrictAntiOn (fun s ↦ inner ℝ (paperGerverContacts s 3) + (tangentVector ((gerverStageTimes 4 : ℝ) : Real.Angle))) + (Set.Icc (gerverStageTimes 0) (gerverStageTimes 2))) ∧ + (StrictMonoOn (fun s ↦ inner ℝ (paperGerverContacts s 1) + (normalVector ((gerverStageTimes 1 : ℝ) : Real.Angle))) + (Set.Icc (gerverStageTimes 3) (gerverStageTimes 5))) ∧ + (∀ t ∈ Set.Icc (gerverStageTimes 0) (gerverStageTimes 2), + paperGerverContacts t 3 ∈ (D : Set Point)) ∧ + (∀ t ∈ Set.Icc (gerverStageTimes 3) (gerverStageTimes 5), + paperGerverContacts t 1 ∈ (B : Set Point)) := by + -- ### One cap serves every clause, and it carries the literal contact geometry + obtain ⟨-, hGeq, -, -, hcapeq, -, -⟩ := gerver_capSupport_identification + have hcarrier : (K.val.val : Set Point) = gerverOuterCap := by rw [hK, hGeq, hcapeq] + obtain ⟨-, K', hK'set, hdens, hsel, -, -, hBwall, -, hDwall, -, -⟩ := + paperGerver_contact_geometry + have hKeq : K' = K.val := Subtype.ext (SetLike.coe_injective (hK'set.trans hK.symm)) + subst hKeq + have ht0 : gerverStageTimes 0 = 0 := gerverStageTimes_zero + have ht5 : gerverStageTimes 5 = Real.pi / 2 := rfl + have hr : paperGerverConstants.2.1 = gerverStageTimes 1 := rfl + have hl : paperGerverConstants.2.2 = gerverStageTimes 4 := rfl + have h01' : gerverStageTimes 0 < gerverStageTimes 1 := gerverStageTimes_strictMono (by decide) + have h12 : gerverStageTimes 1 < gerverStageTimes 2 := gerverStageTimes_strictMono (by decide) + have h23 : gerverStageTimes 2 < gerverStageTimes 3 := gerverStageTimes_strictMono (by decide) + have h34 : gerverStageTimes 3 < gerverStageTimes 4 := gerverStageTimes_strictMono (by decide) + have h45' : gerverStageTimes 4 < gerverStageTimes 5 := gerverStageTimes_strictMono (by decide) + have h01 : (0 : ℝ) < gerverStageTimes 1 := ht0 ▸ h01' + have h45 : gerverStageTimes 4 < Real.pi / 2 := ht5 ▸ h45' + -- ### The support coordinates of the cap along the path + have hcorner : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), capInnerCorner K.val t = paperGerverPath t := + fun t ht ↦ (hsel ⟨t, ht⟩).2.2 + have hsupu : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + inner ℝ (paperGerverPath t) (normalVector (t : Real.Angle)) = + supportValue (K.val.val : Set Point) (t : Real.Angle) - 1 := by + intro t ht + rw [← hcorner t ht] + exact inner_capInnerCorner_normalVector K.val t + have hsupv : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) = + supportValue (K.val.val : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := by + intro t ht + rw [← hcorner t ht] + exact inner_capInnerCorner_tangentVector K.val t + -- ### The two families of supporting lines cutting the tails out of the cap + have hmDval : ∀ t : ℝ, gerverLeftTailSupport (t + Real.pi / 2) = + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) := by + intro t + simp only [gerverLeftTailSupport, add_sub_cancel_right] + have hmDsup : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), gerverLeftTailSupport (t + Real.pi / 2) = + supportValue (K.val.val : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := + fun t ht ↦ (hmDval t).trans (hsupv t ht) + have hcapupper : ∀ q ∈ (K.val.val : Set Point), 0 ≤ q 1 := fun q hq ↦ by + simpa only [inner_normalVector_pi_div_two] using + K.val.inner_normalVector_pi_div_two_nonneg hq + have hcapD : ∀ t ∈ Set.Icc (gerverStageTimes 0) (gerverStageTimes 2), + paperGerverContacts t 3 ∈ (K.val.val : Set Point) := fun t ht ↦ + hcarrier ▸ gerver_niche_roof_membership.1 t ht + have hcapB : ∀ t ∈ Set.Icc (gerverStageTimes 3) (gerverStageTimes 5), + paperGerverContacts t 1 ∈ (K.val.val : Set Point) := fun t ht ↦ + hcarrier ▸ gerver_niche_roof_membership.2.2 t ht + -- ### Each contact curve stays above its own distinguished wall + have hantiD : ∀ i : Fin 5, (i = 0 ∨ i = 1) → + StrictAntiOn (fun s ↦ inner ℝ (paperGerverContacts s 3) + (tangentVector ((gerverStageTimes 4 : ℝ) : Real.Angle))) (gerverStageIntervals i) := by + intro i hi + refine strictAntiOn_inner_paperGerverContacts_three hi ?_ ?_ <;> intro s hs <;> + rcases hi with rfl | rfl + · rw [gerverStageIntervals_zero] at hs; linarith only [hs.2, h12, h23, h34] + · rw [gerverStageIntervals_one] at hs; linarith only [hs.2, h23, h34] + · rw [gerverStageIntervals_zero] at hs; linarith only [hs.1, ht0, h45, Real.pi_pos] + · rw [gerverStageIntervals_one] at hs; linarith only [hs.1, h01, h45, Real.pi_pos] + have hmonoB : ∀ i : Fin 5, (i = 3 ∨ i = 4) → + StrictMonoOn (fun s ↦ inner ℝ (paperGerverContacts s 1) + (normalVector ((gerverStageTimes 1 : ℝ) : Real.Angle))) (gerverStageIntervals i) := by + intro i hi + refine strictMonoOn_inner_paperGerverContacts_one hi ?_ ?_ <;> intro s hs <;> + rcases hi with rfl | rfl + · rw [gerverStageIntervals_three] at hs; linarith only [hs.1, h12, h23] + · rw [gerverStageIntervals_four] at hs; linarith only [hs.1, h12, h23, h34] + · rw [gerverStageIntervals_three] at hs; linarith only [hs.2, h45, h01, Real.pi_pos] + · rw [gerverStageIntervals_four] at hs; linarith only [hs.2, ht5, h01, Real.pi_pos] + have hstrictD : StrictAntiOn (fun s ↦ inner ℝ (paperGerverContacts s 3) + (tangentVector ((gerverStageTimes 4 : ℝ) : Real.Angle))) + (Set.Icc (gerverStageTimes 0) (gerverStageTimes 2)) := by + rw [← Set.Icc_union_Icc_eq_Icc h01'.le h12.le] + exact (gerverStageIntervals_zero ▸ hantiD 0 (Or.inl rfl)).union + (gerverStageIntervals_one ▸ hantiD 1 (Or.inr rfl)) + (isGreatest_Icc h01'.le) (isLeast_Icc h12.le) + have hstrictB : StrictMonoOn (fun s ↦ inner ℝ (paperGerverContacts s 1) + (normalVector ((gerverStageTimes 1 : ℝ) : Real.Angle))) + (Set.Icc (gerverStageTimes 3) (gerverStageTimes 5)) := by + rw [← Set.Icc_union_Icc_eq_Icc h34.le h45'.le] + exact (gerverStageIntervals_three ▸ hmonoB 3 (Or.inl rfl)).union + (gerverStageIntervals_four ▸ hmonoB 4 (Or.inr rfl)) + (isGreatest_Icc h34.le) (isLeast_Icc h45'.le) + have hkeyD : ∀ t ∈ Set.Icc (gerverStageTimes 0) (gerverStageTimes 2), + inner ℝ (paperGerverContacts (gerverStageTimes 2) 3) + (tangentVector ((gerverStageTimes 4 : ℝ) : Real.Angle)) ≤ + inner ℝ (paperGerverContacts t 3) + (tangentVector ((gerverStageTimes 4 : ℝ) : Real.Angle)) := + fun t ht ↦ hstrictD.antitoneOn ht ⟨ht.1.trans ht.2, le_rfl⟩ ht.2 + have hkeyB : ∀ t ∈ Set.Icc (gerverStageTimes 3) (gerverStageTimes 5), + inner ℝ (paperGerverContacts (gerverStageTimes 3) 1) + (normalVector ((gerverStageTimes 1 : ℝ) : Real.Angle)) ≤ + inner ℝ (paperGerverContacts t 1) + (normalVector ((gerverStageTimes 1 : ℝ) : Real.Angle)) := + fun t ht ↦ hstrictB.monotoneOn ⟨le_rfl, ht.1.trans ht.2⟩ ht ht.1 + have hDfix : ∀ t ∈ Set.Icc (gerverStageTimes 0) (gerverStageTimes 2), + paperGerverContacts t 3 ∈ (innerWallUpperHalfPlanes K.val (gerverStageTimes 4)).2 := by + intro t ht + have hl4 : gerverStageTimes 4 ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨by linarith only [h01, h12, h23, h34], h45.le⟩ + change supportValue (K.val.val : Set Point) + ((gerverStageTimes 4 + Real.pi / 2 : ℝ) : Real.Angle) - 1 ≤ + inner ℝ (paperGerverContacts t 3) + (normalVector ((gerverStageTimes 4 + Real.pi / 2 : ℝ) : Real.Angle)) + rw [← hmDsup _ hl4, hmDval, normalVector_add_pi_div_two_real, + ← gerver_niche_piece_endpoints.2.1] + exact hkeyD t ht + have hBfix : ∀ t ∈ Set.Icc (gerverStageTimes 3) (gerverStageTimes 5), + paperGerverContacts t 1 ∈ (innerWallUpperHalfPlanes K.val (gerverStageTimes 1)).1 := by + intro t ht + have hr1 : gerverStageTimes 1 ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨h01.le, by linarith only [h12, h23, h34, h45]⟩ + change supportValue (K.val.val : Set Point) ((gerverStageTimes 1 : ℝ) : Real.Angle) - 1 ≤ + inner ℝ (paperGerverContacts t 1) (normalVector ((gerverStageTimes 1 : ℝ) : Real.Angle)) + rw [← hsupu _ hr1, ← gerver_niche_piece_endpoints.1] + exact hkeyB t ht + -- ### The remaining walls are excluded by the niche + have hiq : ∀ s : ℝ, (rotatingHallwayParts (K.val.val : Set Point) (s : Real.Angle)).innerQuadrant + = innerQuadrant (K.val.val : Set Point) s := by + intro s + rw [(rotatingHallwayParts_formulas (K.val.val : Set Point) + (s : Real.Angle)).2.2.2.2.2.2.2.2, innerQuadrant, ← Real.Angle.coe_add] + have hDside : (distinguishedCapSides K.val).2.upperHalfPlane = + (innerWallUpperHalfPlanes K.val (gerverStageTimes 4)).2 := by rw [← hl]; rfl + have hBside : (distinguishedCapSides K.val).1.upperHalfPlane = + (innerWallUpperHalfPlanes K.val (gerverStageTimes 1)).1 := by rw [← hr]; rfl + have hDwedge : ∀ t ∈ Set.Icc (gerverStageTimes 0) (gerverStageTimes 2), + ∀ s ∈ Set.Ioo (0 : ℝ) (gerverStageTimes 4), + paperGerverContacts t 3 ∈ (innerWallUpperHalfPlanes K.val s).2 := by + intro t ht s hs + by_contra hmem + have hquad := (cap_tail_monotonicity_intervals K).2.2.2 s + ⟨hs.1.le, by rw [hl]; exact hs.2⟩ ⟨hs.1, by linarith only [hs.2, h45]⟩ + have hfix : paperGerverContacts t 3 ∈ (distinguishedCapSides K.val).2.upperHalfPlane := by + rw [hDside] + exact hDfix t ht + have hin : paperGerverContacts t 3 ∈ + ((distinguishedCapSides K.val).2.upperHalfPlane ∩ {p : Point | 0 ≤ p 1}) \ + (innerWallUpperHalfPlanes K.val s).2 := + ⟨⟨hfix, hcapupper _ (hcapD t ht)⟩, hmem⟩ + rw [← hquad] at hin + exact (hDwall t ht).1 ⟨hin.2.1, Set.mem_iUnion₂.2 + ⟨s, ⟨hs.1, by linarith only [hs.2, h45]⟩, (hiq s) ▸ hin.2.2⟩⟩ + have hBwedge : ∀ t ∈ Set.Icc (gerverStageTimes 3) (gerverStageTimes 5), + ∀ s ∈ Set.Ioo (gerverStageTimes 1) (Real.pi / 2), + paperGerverContacts t 1 ∈ (innerWallUpperHalfPlanes K.val s).1 := by + intro t ht s hs + by_contra hmem + have hquad := (cap_tail_monotonicity_intervals K).2.2.1 s + ⟨by rw [hr]; exact hs.1, hs.2.le⟩ ⟨by linarith only [hs.1, h01], hs.2⟩ + have hfix : paperGerverContacts t 1 ∈ (distinguishedCapSides K.val).1.upperHalfPlane := by + rw [hBside] + exact hBfix t ht + have hin : paperGerverContacts t 1 ∈ + ((distinguishedCapSides K.val).1.upperHalfPlane ∩ {p : Point | 0 ≤ p 1}) \ + (innerWallUpperHalfPlanes K.val s).1 := + ⟨⟨hfix, hcapupper _ (hcapB t ht)⟩, hmem⟩ + rw [← hquad] at hin + exact (hBwall t ht).1 ⟨hin.2.1, Set.mem_iUnion₂.2 + ⟨s, ⟨by linarith only [hs.1, h01], hs.2⟩, (hiq s) ▸ hin.2.2⟩⟩ + -- ### Both contact curves lie in their tails + have hDmem : ∀ t ∈ Set.Icc (gerverStageTimes 0) (gerverStageTimes 2), + paperGerverContacts t 3 ∈ (D : Set Point) := by + intro t ht + rw [hD] + refine ⟨hcapD t ht, Set.mem_iInter₂.2 fun s hs ↦ ?_⟩ + rw [hl] at hs + rcases eq_or_lt_of_le hs.1 with h0 | h0 + · change supportValue (K.val.val : Set Point) ((s + Real.pi / 2 : ℝ) : Real.Angle) - 1 ≤ + inner ℝ (paperGerverContacts t 3) (normalVector ((s + Real.pi / 2 : ℝ) : Real.Angle)) + rw [← h0, zero_add, K.val.property.2.2.2.1, inner_normalVector_pi_div_two] + simpa only [sub_self] using hcapupper _ (hcapD t ht) + rcases eq_or_lt_of_le hs.2 with h4 | h4 + · exact h4 ▸ hDfix t ht + · exact hDwedge t ht s ⟨h0, h4⟩ + have hBmem : ∀ t ∈ Set.Icc (gerverStageTimes 3) (gerverStageTimes 5), + paperGerverContacts t 1 ∈ (B : Set Point) := by + intro t ht + rw [hB] + refine ⟨hcapB t ht, Set.mem_iInter₂.2 fun s hs ↦ ?_⟩ + rw [hr] at hs + rcases eq_or_lt_of_le hs.2 with hT | hT + · change supportValue (K.val.val : Set Point) (s : Real.Angle) - 1 ≤ + inner ℝ (paperGerverContacts t 1) (normalVector (s : Real.Angle)) + rw [hT, K.val.property.2.2.2.1, inner_normalVector_pi_div_two] + simpa only [sub_self] using hcapupper _ (hcapB t ht) + rcases eq_or_lt_of_le hs.1 with h1 | h1 + · exact h1 ▸ hBfix t ht + · exact hBwedge t ht s ⟨h1, hT⟩ + -- ### The singleton faces along the two contact curves + exact ⟨hstrictD, hstrictB, hDmem, hBmem⟩ + +private theorem gerver_tail_support_lines (K : SpecialCapSpace) (B D : ConvexBody Point) + (hK : (K.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) + (hB : (B : Set Point) = (canonicalTailSets K).1) + (hD : (D : Set Point) = (canonicalTailSets K).2) : + (∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + inner ℝ (paperGerverPath t) (normalVector (t : Real.Angle)) = + supportValue (K.val.val : Set Point) (t : Real.Angle) - 1) ∧ + (∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) = + supportValue (K.val.val : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) ∧ + (∀ t : ℝ, gerverLeftTailSupport (t + Real.pi / 2) = + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle))) ∧ + (∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), gerverLeftTailSupport (t + Real.pi / 2) = + supportValue (K.val.val : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) ∧ + (∀ t : ℝ, HasDerivAt gerverLeftTailSupport + (inner ℝ (paperGerverContacts t 3) (tangentVector ((t + Real.pi / 2 : ℝ) : Real.Angle))) + (t + Real.pi / 2)) ∧ + (∀ t : ℝ, HasDerivAt gerverRightTailSupport + (inner ℝ (paperGerverContacts t 1) (tangentVector (t : Real.Angle))) t) ∧ + (∀ q ∈ (D : Set Point), ∀ s ∈ Set.Icc (Real.pi / 2) + (gerverStageTimes 4 + Real.pi / 2), gerverLeftTailSupport s ≤ inner ℝ q (normalVector (s : + Real.Angle))) ∧ + (∀ q ∈ (B : Set Point), ∀ s ∈ Set.Icc (gerverStageTimes 1) (Real.pi / 2), + gerverRightTailSupport s ≤ inner ℝ q (normalVector (s : Real.Angle))) ∧ + (∀ t ∈ Set.Icc (gerverStageTimes 0) (gerverStageTimes 2), + inner ℝ (paperGerverContacts t 3) (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) = + gerverLeftTailSupport (t + Real.pi / 2)) ∧ + (∀ t ∈ Set.Icc (gerverStageTimes 3) (gerverStageTimes 5), + inner ℝ (paperGerverContacts t 1) (normalVector (t : Real.Angle)) = gerverRightTailSupport t) + := by + -- ### One cap serves every clause, and it carries the literal contact geometry + obtain ⟨-, K', hK'set, hdens, hsel, -, -, hBwall, -, hDwall, -, -⟩ := + paperGerver_contact_geometry + have hKeq : K' = K.val := Subtype.ext (SetLike.coe_injective (hK'set.trans hK.symm)) + subst hKeq + have ht0 : gerverStageTimes 0 = 0 := gerverStageTimes_zero + have ht5 : gerverStageTimes 5 = Real.pi / 2 := rfl + have hr : paperGerverConstants.2.1 = gerverStageTimes 1 := rfl + have hl : paperGerverConstants.2.2 = gerverStageTimes 4 := rfl + have h01' : gerverStageTimes 0 < gerverStageTimes 1 := gerverStageTimes_strictMono (by decide) + have h12 : gerverStageTimes 1 < gerverStageTimes 2 := gerverStageTimes_strictMono (by decide) + have h23 : gerverStageTimes 2 < gerverStageTimes 3 := gerverStageTimes_strictMono (by decide) + have h34 : gerverStageTimes 3 < gerverStageTimes 4 := gerverStageTimes_strictMono (by decide) + have h45' : gerverStageTimes 4 < gerverStageTimes 5 := gerverStageTimes_strictMono (by decide) + have h01 : (0 : ℝ) < gerverStageTimes 1 := ht0 ▸ h01' + have h45 : gerverStageTimes 4 < Real.pi / 2 := ht5 ▸ h45' + -- ### The support coordinates of the cap along the path + have hcorner : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), capInnerCorner K.val t = paperGerverPath t := + fun t ht ↦ (hsel ⟨t, ht⟩).2.2 + have hsupu : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + inner ℝ (paperGerverPath t) (normalVector (t : Real.Angle)) = + supportValue (K.val.val : Set Point) (t : Real.Angle) - 1 := by + intro t ht + rw [← hcorner t ht] + exact inner_capInnerCorner_normalVector K.val t + have hsupv : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) = + supportValue (K.val.val : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := by + intro t ht + rw [← hcorner t ht] + exact inner_capInnerCorner_tangentVector K.val t + -- ### The two families of supporting lines cutting the tails out of the cap + have hmDval : ∀ t : ℝ, gerverLeftTailSupport (t + Real.pi / 2) = + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) := by + intro t + simp only [gerverLeftTailSupport, add_sub_cancel_right] + have hmDsup : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), gerverLeftTailSupport (t + Real.pi / 2) = + supportValue (K.val.val : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := + fun t ht ↦ (hmDval t).trans (hsupv t ht) + have hmDderiv : ∀ t : ℝ, HasDerivAt gerverLeftTailSupport + (inner ℝ (paperGerverContacts t 3) (tangentVector ((t + Real.pi / 2 : ℝ) : Real.Angle))) + (t + Real.pi / 2) := by + intro t + have h := (hasDerivAt_inner_paperGerverPath_tangentVector (t + Real.pi / 2 - Real.pi / 2)).comp + (t + Real.pi / 2) ((hasDerivAt_id (t + Real.pi / 2)).sub_const (Real.pi / 2)) + rw [add_sub_cancel_right] at h + rw [tangentVector_add_pi_div_two, inner_neg_right] + unfold gerverLeftTailSupport + simpa only [Function.comp_def, mul_one, id_eq] using h + have hmBderiv : ∀ t : ℝ, HasDerivAt gerverRightTailSupport + (inner ℝ (paperGerverContacts t 1) (tangentVector (t : Real.Angle))) t := by + intro t + unfold gerverRightTailSupport + exact hasDerivAt_inner_paperGerverPath_normalVector t + have hDle : ∀ q ∈ (D : Set Point), ∀ s ∈ Set.Icc (Real.pi / 2) + (gerverStageTimes 4 + Real.pi / 2), gerverLeftTailSupport s ≤ inner ℝ q (normalVector (s : + Real.Angle)) := by + intro q hq s hs + rw [hD] at hq + have hs' : s - Real.pi / 2 ∈ Set.Icc (0 : ℝ) paperGerverConstants.2.2 := + ⟨by linarith only [hs.1], by rw [hl]; linarith only [hs.2]⟩ + have h : supportValue (K.val.val : Set Point) + ((s - Real.pi / 2 + Real.pi / 2 : ℝ) : Real.Angle) - 1 ≤ + inner ℝ q (normalVector ((s - Real.pi / 2 + Real.pi / 2 : ℝ) : Real.Angle)) := + Set.mem_iInter₂.mp hq.2 (s - Real.pi / 2) hs' + rw [sub_add_cancel] at h + have hmem : s - Real.pi / 2 ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨hs'.1, by linarith only [hs'.2, hl ▸ hs'.2, h45, ht5]⟩ + rw [show gerverLeftTailSupport s = gerverLeftTailSupport (s - Real.pi / 2 + Real.pi / 2) by rw + [sub_add_cancel], + hmDsup _ hmem, sub_add_cancel] + exact h + have hBle : ∀ q ∈ (B : Set Point), ∀ s ∈ Set.Icc (gerverStageTimes 1) (Real.pi / 2), + gerverRightTailSupport s ≤ inner ℝ q (normalVector (s : Real.Angle)) := by + intro q hq s hs + rw [hB] at hq + have h : supportValue (K.val.val : Set Point) (s : Real.Angle) - 1 ≤ + inner ℝ q (normalVector (s : Real.Angle)) := + Set.mem_iInter₂.mp hq.2 s ⟨by rw [hr]; exact hs.1, hs.2⟩ + simp only [gerverRightTailSupport] + rw [hsupu s ⟨by linarith only [hs.1, h01], hs.2⟩] + exact h + -- ### The two contact curves touch their defining lines + have hDtouch : ∀ t ∈ Set.Icc (gerverStageTimes 0) (gerverStageTimes 2), + inner ℝ (paperGerverContacts t 3) (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) = + gerverLeftTailSupport (t + Real.pi / 2) := by + intro t ht + have htI : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨ht0 ▸ ht.1, by linarith only [ht.2, h23, h34, h45]⟩ + have h := (mem_rotatingHallwayParts_dRay_iff _ _ _).mp (hDwall t ht).2 + rw [normalVector_add_pi_div_two_real, hmDval t, h.2, hsupv t htI, Real.Angle.coe_add] + have hBtouch : ∀ t ∈ Set.Icc (gerverStageTimes 3) (gerverStageTimes 5), + inner ℝ (paperGerverContacts t 1) (normalVector (t : Real.Angle)) = gerverRightTailSupport t + := by + intro t ht + have htI : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨by linarith only [ht.1, h01, h12, h23], ht5 ▸ ht.2⟩ + have h := (mem_rotatingHallwayParts_bRay_iff _ _ _).mp (hBwall t ht).2 + simp only [gerverRightTailSupport] + rw [hsupu t htI] + exact h.1 + -- ### The cap lies in the upper half-plane, and both contact curves lie in the cap + exact ⟨hsupu, hsupv, hmDval, hmDsup, hmDderiv, hmBderiv, hDle, hBle, hDtouch, hBtouch⟩ + +private theorem gerver_tail_contact_faces (K : SpecialCapSpace) (B D : ConvexBody Point) + (hK : (K.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) + (hB : (B : Set Point) = (canonicalTailSets K).1) + (hD : (D : Set Point) = (canonicalTailSets K).2) : + (∀ t ∈ Set.Ioc (gerverStageTimes 0) (gerverStageTimes 2), + exposedEdge D ((3 * Real.pi / 2 + t : ℝ) : Real.Angle) = {paperGerverContacts t 3}) ∧ + (∀ t ∈ Set.Ico (gerverStageTimes 3) (gerverStageTimes 5), + exposedEdge B ((Real.pi + t : ℝ) : Real.Angle) = {paperGerverContacts t 1}) ∧ + ((edgeVertices D ((3 * Real.pi / 2 + gerverStageTimes 4 : ℝ) : Real.Angle)).2 = + paperGerverContacts (gerverStageTimes 2) 3) ∧ + ((edgeVertices B ((Real.pi + gerverStageTimes 1 : ℝ) : Real.Angle)).1 = + paperGerverContacts (gerverStageTimes 3) 1) ∧ + ((edgeVertices D ((3 * Real.pi / 2 : ℝ) : Real.Angle)).1 = + paperGerverContacts 0 3) ∧ + ((edgeVertices B ((3 * Real.pi / 2 : ℝ) : Real.Angle)).2 = + paperGerverContacts (Real.pi / 2) 1) ∧ + (paperGerverContacts (gerverStageTimes 2) 3 ∈ + exposedEdge D ((3 * Real.pi / 2 + gerverStageTimes 4 : ℝ) : Real.Angle)) ∧ + (paperGerverContacts (gerverStageTimes 3) 1 ∈ + exposedEdge B ((Real.pi + gerverStageTimes 1 : ℝ) : Real.Angle)) := by + -- ### One cap serves every clause, and it carries the literal contact geometry + obtain ⟨-, hGeq, -, -, hcapeq, -, -⟩ := gerver_capSupport_identification + have hcarrier : (K.val.val : Set Point) = gerverOuterCap := by rw [hK, hGeq, hcapeq] + obtain ⟨-, K', hK'set, hdens, hsel, -, -, hBwall, -, hDwall, -, -⟩ := + paperGerver_contact_geometry + have hKeq : K' = K.val := Subtype.ext (SetLike.coe_injective (hK'set.trans hK.symm)) + subst hKeq + obtain ⟨hstrictD, hstrictB, hDmem, hBmem⟩ := + gerver_tail_membership K B D hK hB hD + obtain ⟨hsupu, hsupv, hmDval, hmDsup, hmDderiv, hmBderiv, hDle, hBle, hDtouch, hBtouch⟩ := + gerver_tail_support_lines K B D hK hB hD + have ht0 : gerverStageTimes 0 = 0 := gerverStageTimes_zero + have ht5 : gerverStageTimes 5 = Real.pi / 2 := rfl + have h01' : gerverStageTimes 0 < gerverStageTimes 1 := gerverStageTimes_strictMono (by decide) + have h12 : gerverStageTimes 1 < gerverStageTimes 2 := gerverStageTimes_strictMono (by decide) + have h23 : gerverStageTimes 2 < gerverStageTimes 3 := gerverStageTimes_strictMono (by decide) + have h34 : gerverStageTimes 3 < gerverStageTimes 4 := gerverStageTimes_strictMono (by decide) + have h45' : gerverStageTimes 4 < gerverStageTimes 5 := gerverStageTimes_strictMono (by decide) + have h01 : (0 : ℝ) < gerverStageTimes 1 := ht0 ▸ h01' + have h45 : gerverStageTimes 4 < Real.pi / 2 := ht5 ▸ h45' + -- ### The support coordinates of the cap along the path + have hcast : ∀ x y : ℝ, x = y → ((x : ℝ) : Real.Angle) = ((y : ℝ) : Real.Angle) := + fun x y h ↦ by rw [h] + have h02 : (0 : ℝ) < gerverStageTimes 2 := by linarith only [h01, h12] + have h24 : gerverStageTimes 2 < gerverStageTimes 4 := by linarith only [h23, h34] + have hl4I : gerverStageTimes 4 ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨by linarith only [h01, h12, h23, h34], h45.le⟩ + have hmemD0 : (0 : ℝ) ∈ Set.Icc (gerverStageTimes 0) (gerverStageTimes 2) := + ⟨ht0.le, h02.le⟩ + have hmemD2 : gerverStageTimes 2 ∈ Set.Icc (gerverStageTimes 0) (gerverStageTimes 2) := + ⟨by linarith only [ht0.le, h02], le_rfl⟩ + have hmemB3 : gerverStageTimes 3 ∈ Set.Icc (gerverStageTimes 3) (gerverStageTimes 5) := + ⟨le_rfl, by linarith only [ht5.ge, h34, h45]⟩ + have hmemB5 : Real.pi / 2 ∈ Set.Icc (gerverStageTimes 3) (gerverStageTimes 5) := + ⟨by linarith only [h34, h45], ht5.ge⟩ + have hDleIoo : ∀ q ∈ (D : Set Point), ∀ s ∈ Set.Ioo (Real.pi / 2) + (gerverStageTimes 4 + Real.pi / 2), gerverLeftTailSupport s ≤ inner ℝ q (normalVector (s : + Real.Angle)) := + fun q hq s hs ↦ hDle q hq s ⟨hs.1.le, hs.2.le⟩ + have hBleIoo : ∀ q ∈ (B : Set Point), ∀ s ∈ Set.Ioo (gerverStageTimes 1) (Real.pi / 2), + gerverRightTailSupport s ≤ inner ℝ q (normalVector (s : Real.Angle)) := + fun q hq s hs ↦ hBle q hq s ⟨hs.1.le, hs.2.le⟩ + have hDface : ∀ t ∈ Set.Ioc (gerverStageTimes 0) (gerverStageTimes 2), + exposedEdge D ((3 * Real.pi / 2 + t : ℝ) : Real.Angle) = {paperGerverContacts t 3} := by + intro t ht + have htI : t ∈ Set.Icc (gerverStageTimes 0) (gerverStageTimes 2) := ⟨ht.1.le, ht.2⟩ + rw [ht0] at ht + have h := exposedEdge_add_pi_eq_singleton_of_mem_Ioo (L := D) (m := gerverLeftTailSupport) (t + := t + Real.pi / 2) + ⟨by linarith only [ht.1], by linarith only [ht.2, h24]⟩ hDleIoo (hDmem t htI) + (hDtouch t htI) (hmDderiv t) + rwa [hcast _ _ (show t + Real.pi / 2 + Real.pi = 3 * Real.pi / 2 + t by ring)] at h + have hBface : ∀ t ∈ Set.Ico (gerverStageTimes 3) (gerverStageTimes 5), + exposedEdge B ((Real.pi + t : ℝ) : Real.Angle) = {paperGerverContacts t 1} := by + intro t ht + have htI : t ∈ Set.Icc (gerverStageTimes 3) (gerverStageTimes 5) := ⟨ht.1, ht.2.le⟩ + rw [ht5] at ht + have h := exposedEdge_add_pi_eq_singleton_of_mem_Ioo (L := B) (m := gerverRightTailSupport) (t + := t) + ⟨by linarith only [ht.1, h12, h23], ht.2⟩ hBleIoo (hBmem t htI) (hBtouch t htI) + (hmBderiv t) + rwa [hcast _ _ (show t + Real.pi = Real.pi + t by ring)] at h + -- ### The two exact joins are contacts of the outer walls as well + have hDjoin : inner ℝ (paperGerverContacts (gerverStageTimes 2) 3) + (normalVector ((gerverStageTimes 4 + Real.pi / 2 : ℝ) : Real.Angle)) = + gerverLeftTailSupport (gerverStageTimes 4 + Real.pi / 2) := by + rw [hmDval, normalVector_add_pi_div_two_real, gerver_niche_piece_endpoints.2.1] + have hBjoin : inner ℝ (paperGerverContacts (gerverStageTimes 3) 1) + (normalVector ((gerverStageTimes 1 : ℝ) : Real.Angle)) = gerverRightTailSupport + (gerverStageTimes 1) := by + simp only [gerverRightTailSupport] + rw [gerver_niche_piece_endpoints.1] + have hDouter : paperGerverContacts (gerverStageTimes 2) 3 ∈ + exposedEdge D ((3 * Real.pi / 2 + gerverStageTimes 4 : ℝ) : Real.Angle) := by + have h := exposedEdge_add_pi_eq_of_forall_le + (fun q hq ↦ hDle q hq _ ⟨by linarith only [hl4I.1], le_rfl⟩) (hDmem _ hmemD2) hDjoin + rw [hcast _ _ (show gerverStageTimes 4 + Real.pi / 2 + Real.pi = + 3 * Real.pi / 2 + gerverStageTimes 4 by ring)] at h + rw [h] + exact ⟨hDmem _ hmemD2, hDjoin⟩ + have hBouter : paperGerverContacts (gerverStageTimes 3) 1 ∈ + exposedEdge B ((Real.pi + gerverStageTimes 1 : ℝ) : Real.Angle) := by + have h := exposedEdge_add_pi_eq_of_forall_le + (fun q hq ↦ hBle q hq _ ⟨le_rfl, by linarith only [h12, h23, h34, h45]⟩) + (hBmem _ hmemB3) hBjoin + rw [hcast _ _ (show gerverStageTimes 1 + Real.pi = Real.pi + gerverStageTimes 1 by ring)] at h + rw [h] + exact ⟨hBmem _ hmemB3, hBjoin⟩ + -- ### The two arc endpoints at the outer normals + have hDend : (edgeVertices D ((3 * Real.pi / 2 + gerverStageTimes 4 : ℝ) : Real.Angle)).2 = + paperGerverContacts (gerverStageTimes 2) 3 := by + have hsin : Real.sin (3 * Real.pi / 2 + gerverStageTimes 2 - + (3 * Real.pi / 2 + gerverStageTimes 4)) ≠ 0 := by + have : Real.sin (gerverStageTimes 4 - gerverStageTimes 2) > 0 := + Real.sin_pos_of_pos_of_lt_pi (by linarith only [h24]) + (by linarith only [h45, h02, Real.pi_pos]) + rw [show 3 * Real.pi / 2 + gerverStageTimes 2 - (3 * Real.pi / 2 + gerverStageTimes 4) = + -(gerverStageTimes 4 - gerverStageTimes 2) by ring, Real.sin_neg] + linarith only [this] + have hp := eq_supportingIntersection_of_mem_exposedEdge hsin + ((hDface _ ⟨by linarith only [ht0.le, h02], le_rfl⟩) ▸ rfl) hDouter + have hmem : supportingIntersection D ((3 * Real.pi / 2 + gerverStageTimes 2 : ℝ) : Real.Angle) + ((3 * Real.pi / 2 + gerverStageTimes 4 : ℝ) : Real.Angle) ∈ D := by + rw [← hp] + exact hDmem _ hmemD2 + rw [← supportingIntersection_eq_edgeVertices_snd_of_mem D (by linarith only [h24]) + (by linarith only [h45, h02, Real.pi_pos]) hmem, ← hp] + have hBstart : (edgeVertices B ((Real.pi + gerverStageTimes 1 : ℝ) : Real.Angle)).1 = + paperGerverContacts (gerverStageTimes 3) 1 := by + have hsin : Real.sin (Real.pi + gerverStageTimes 1 - (Real.pi + gerverStageTimes 3)) ≠ 0 := by + have : Real.sin (gerverStageTimes 3 - gerverStageTimes 1) > 0 := + Real.sin_pos_of_pos_of_lt_pi (by linarith only [h12, h23]) + (by linarith only [h34, h45, h01, Real.pi_pos]) + rw [show Real.pi + gerverStageTimes 1 - (Real.pi + gerverStageTimes 3) = + -(gerverStageTimes 3 - gerverStageTimes 1) by ring, Real.sin_neg] + linarith only [this] + have hp := eq_supportingIntersection_of_mem_exposedEdge hsin hBouter + ((hBface _ ⟨le_rfl, by linarith only [ht5.ge, h34, h45]⟩) ▸ rfl) + have hmem : supportingIntersection B ((Real.pi + gerverStageTimes 1 : ℝ) : Real.Angle) + ((Real.pi + gerverStageTimes 3 : ℝ) : Real.Angle) ∈ B := by + rw [← hp] + exact hBmem _ hmemB3 + rw [← supportingIntersection_eq_edgeVertices_fst_of_mem B (by linarith only [h12, h23]) + (by linarith only [h34, h45, h01, Real.pi_pos]) hmem, ← hp] + have hDstart : (edgeVertices D ((3 * Real.pi / 2 : ℝ) : Real.Angle)).1 = + paperGerverContacts 0 3 := by + have hpm : inner ℝ (paperGerverContacts 0 3) + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = gerverLeftTailSupport (Real.pi / 2) := by + have h := hDtouch 0 hmemD0 + rwa [zero_add] at h + have h := edgeVertices_add_pi_fst_eq_of_lt (L := D) (m := gerverLeftTailSupport) + (a := Real.pi / 2) (b := gerverStageTimes 4 + Real.pi / 2) + (by linarith only [hl4I.1, h01, h12, h23, h34]) hDleIoo + (fun q hq ↦ hDle q hq _ ⟨le_rfl, by linarith only [hl4I.1]⟩) (hDmem 0 hmemD0) hpm + (by simpa only [zero_add] using hmDderiv 0) + rwa [hcast _ _ (show Real.pi / 2 + Real.pi = 3 * Real.pi / 2 by ring)] at h + have hBend : (edgeVertices B ((3 * Real.pi / 2 : ℝ) : Real.Angle)).2 = + paperGerverContacts (Real.pi / 2) 1 := by + have h := edgeVertices_add_pi_snd_eq_of_lt (L := B) (m := gerverRightTailSupport) + (a := gerverStageTimes 1) (b := Real.pi / 2) + (by linarith only [h12, h23, h34, h45]) hBleIoo + (fun q hq ↦ hBle q hq _ ⟨by linarith only [h12, h23, h34, h45], le_rfl⟩) + (hBmem _ hmemB5) (hBtouch _ hmemB5) (hmBderiv _) + rwa [hcast _ _ (show Real.pi / 2 + Real.pi = 3 * Real.pi / 2 by ring)] at h + exact ⟨hDface, hBface, hDend, hBstart, hDstart, hBend, hDouter, hBouter⟩ + +theorem gerver_tailGeometry (K : SpecialCapSpace) (B D : ConvexBody Point) + (hK : (K.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) + (hB : (B : Set Point) = (canonicalTailSets K).1) + (hD : (D : Set Point) = (canonicalTailSets K).2) : + (∀ t ∈ Set.Ioo (gerverStageTimes 0) (gerverStageTimes 2), + edgeVertices D ((3 * Real.pi / 2 + t : ℝ) : Real.Angle) = + (paperGerverContacts t 3, paperGerverContacts t 3)) ∧ + (∀ t ∈ Set.Ioo (gerverStageTimes 3) (gerverStageTimes 5), + edgeVertices B ((Real.pi + t : ℝ) : Real.Angle) = + (paperGerverContacts t 1, paperGerverContacts t 1)) ∧ + (distinguishedCapSides K.val).2.corner = paperGerverContacts (gerverStageTimes 2) 3 ∧ + (rightLeftTailArcs B D).2.endPoint = paperGerverContacts (gerverStageTimes 2) 3 ∧ + edgeVertices D ((3 * Real.pi / 2 + gerverStageTimes 2 : ℝ) : Real.Angle) = + (paperGerverContacts (gerverStageTimes 2) 3, paperGerverContacts (gerverStageTimes 2) 3) ∧ + ParametrizesDirectedArc (fun t ↦ paperGerverContacts t 3) + (gerverStageTimes 0) (gerverStageTimes 2) (rightLeftTailArcs B D).2 ∧ + (distinguishedCapSides K.val).1.corner = paperGerverContacts (gerverStageTimes 3) 1 ∧ + (rightLeftTailArcs B D).1.startPoint = paperGerverContacts (gerverStageTimes 3) 1 ∧ + edgeVertices B ((Real.pi + gerverStageTimes 3 : ℝ) : Real.Angle) = + (paperGerverContacts (gerverStageTimes 3) 1, paperGerverContacts (gerverStageTimes 3) 1) ∧ + ParametrizesDirectedArc (fun t ↦ paperGerverContacts t 1) + (gerverStageTimes 3) (gerverStageTimes 5) (rightLeftTailArcs B D).1 ∧ + (∀ t ∈ Set.Icc (gerverStageTimes 0) (gerverStageTimes 2), + supportValue K.val.val ((Real.pi / 2 + t : ℝ) : Real.Angle) + + supportValue D ((3 * Real.pi / 2 + t : ℝ) : Real.Angle) = 1) ∧ + (∀ t ∈ Set.Icc (gerverStageTimes 3) (gerverStageTimes 5), + supportValue K.val.val (t : Real.Angle) + + supportValue B ((Real.pi + t : ℝ) : Real.Angle) = 1) := by + -- ### One cap serves every clause, and it carries the literal contact geometry + obtain ⟨-, hGeq, -, -, hcapeq, -, -⟩ := gerver_capSupport_identification + have hcarrier : (K.val.val : Set Point) = gerverOuterCap := by rw [hK, hGeq, hcapeq] + obtain ⟨-, K', hK'set, hdens, hsel, -, -, hBwall, -, hDwall, -, -⟩ := + paperGerver_contact_geometry + have hKeq : K' = K.val := Subtype.ext (SetLike.coe_injective (hK'set.trans hK.symm)) + subst hKeq + obtain ⟨hstrictD, hstrictB, hDmem, hBmem⟩ := + gerver_tail_membership K B D hK hB hD + obtain ⟨hsupu, hsupv, hmDval, hmDsup, hmDderiv, hmBderiv, hDle, hBle, hDtouch, hBtouch⟩ := + gerver_tail_support_lines K B D hK hB hD + obtain ⟨hDface, hBface, hDend, hBstart, hDstart, hBend, hDouter, hBouter⟩ := + gerver_tail_contact_faces K B D hK hB hD + have ht0 : gerverStageTimes 0 = 0 := gerverStageTimes_zero + have ht5 : gerverStageTimes 5 = Real.pi / 2 := rfl + have hr : paperGerverConstants.2.1 = gerverStageTimes 1 := rfl + have hl : paperGerverConstants.2.2 = gerverStageTimes 4 := rfl + have h01' : gerverStageTimes 0 < gerverStageTimes 1 := gerverStageTimes_strictMono (by decide) + have h12 : gerverStageTimes 1 < gerverStageTimes 2 := gerverStageTimes_strictMono (by decide) + have h23 : gerverStageTimes 2 < gerverStageTimes 3 := gerverStageTimes_strictMono (by decide) + have h34 : gerverStageTimes 3 < gerverStageTimes 4 := gerverStageTimes_strictMono (by decide) + have h45' : gerverStageTimes 4 < gerverStageTimes 5 := gerverStageTimes_strictMono (by decide) + have h01 : (0 : ℝ) < gerverStageTimes 1 := ht0 ▸ h01' + have h45 : gerverStageTimes 4 < Real.pi / 2 := ht5 ▸ h45' + -- ### The support coordinates of the cap along the path + have hcorner : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), capInnerCorner K.val t = paperGerverPath t := + fun t ht ↦ (hsel ⟨t, ht⟩).2.2 + have hcast : ∀ x y : ℝ, x = y → ((x : ℝ) : Real.Angle) = ((y : ℝ) : Real.Angle) := + fun x y h ↦ by rw [h] + have h02 : (0 : ℝ) < gerverStageTimes 2 := by linarith only [h01, h12] + have h24 : gerverStageTimes 2 < gerverStageTimes 4 := by linarith only [h23, h34] + have hl4I : gerverStageTimes 4 ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨by linarith only [h01, h12, h23, h34], h45.le⟩ + have hmemD0 : (0 : ℝ) ∈ Set.Icc (gerverStageTimes 0) (gerverStageTimes 2) := + ⟨ht0.le, h02.le⟩ + have hmemD2 : gerverStageTimes 2 ∈ Set.Icc (gerverStageTimes 0) (gerverStageTimes 2) := + ⟨by linarith only [ht0.le, h02], le_rfl⟩ + have hmemB3 : gerverStageTimes 3 ∈ Set.Icc (gerverStageTimes 3) (gerverStageTimes 5) := + ⟨le_rfl, by linarith only [ht5.ge, h34, h45]⟩ + have hmemB5 : Real.pi / 2 ∈ Set.Icc (gerverStageTimes 3) (gerverStageTimes 5) := + ⟨by linarith only [h34, h45], ht5.ge⟩ + -- ### Injectivity of the two contact parametrizations + have hinjD : Set.InjOn (fun t ↦ paperGerverContacts t 3) + (Set.Icc (gerverStageTimes 0) (gerverStageTimes 2)) := fun x hx y hy hxy ↦ + hstrictD.injOn hx hy (by + simpa only using congrArg (fun p : Point ↦ inner ℝ p + (tangentVector ((gerverStageTimes 4 : ℝ) : Real.Angle))) hxy) + have hinjB : Set.InjOn (fun t ↦ paperGerverContacts t 1) + (Set.Icc (gerverStageTimes 3) (gerverStageTimes 5)) := fun x hx y hy hxy ↦ + hstrictB.injOn hx hy (by + simpa only using congrArg (fun p : Point ↦ inner ℝ p + (normalVector ((gerverStageTimes 1 : ℝ) : Real.Angle))) hxy) + -- ### Assembling the twelve conclusions + have hmemD2' : gerverStageTimes 2 ∈ Set.Ioc (gerverStageTimes 0) (gerverStageTimes 2) := + ⟨by linarith only [ht0.le, h02], le_rfl⟩ + have hmemB3' : gerverStageTimes 3 ∈ Set.Ico (gerverStageTimes 3) (gerverStageTimes 5) := + ⟨le_rfl, by linarith only [ht5.ge, h34, h45]⟩ + have hr1I : gerverStageTimes 1 ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨h01.le, by linarith only [h12, h23, h34, h45]⟩ + have hDinner : paperGerverContacts (gerverStageTimes 2) 3 ∈ + exposedEdge D ((3 * Real.pi / 2 + gerverStageTimes 2 : ℝ) : Real.Angle) := by + rw [hDface _ hmemD2'] + rfl + have hBinner : paperGerverContacts (gerverStageTimes 3) 1 ∈ + exposedEdge B ((Real.pi + gerverStageTimes 3 : ℝ) : Real.Angle) := by + rw [hBface _ hmemB3'] + rfl + refine ⟨fun t ht ↦ edgeVertices_eq_of_exposedEdge_singleton (hDface t ⟨ht.1, ht.2.le⟩), + fun t ht ↦ edgeVertices_eq_of_exposedEdge_singleton (hBface t ⟨ht.1.le, ht.2⟩), ?_, ?_, + edgeVertices_eq_of_exposedEdge_singleton (hDface _ hmemD2'), ?_, ?_, ?_, + edgeVertices_eq_of_exposedEdge_singleton (hBface _ hmemB3'), ?_, ?_, ?_⟩ + · change capInnerCorner K.val paperGerverConstants.2.2 = _ + rw [hl, hcorner _ hl4I] + exact gerver_niche_piece_endpoints.2.1.symm + · change (edgeVertices D ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)).2 = _ + rw [hl] + exact hDend + · refine ⟨by linarith only [ht0.le, h02], (continuous_paperGerverContact 3).continuousOn, + hinjD, ?_, ?_, ?_⟩ + · change (fun t ↦ paperGerverContacts t 3) '' + Set.Icc (gerverStageTimes 0) (gerverStageTimes 2) = + convexBoundaryArc D (3 * Real.pi / 2) (3 * Real.pi / 2 + paperGerverConstants.2.2) + rw [hl, convexBoundaryArc] + refine Set.Subset.antisymm ?_ ?_ + · rintro p ⟨t, ht, rfl⟩ + rcases eq_or_lt_of_le ht.1 with h0 | h0 + · exact Or.inl (Or.inl (by rw [Set.mem_singleton_iff, hDstart, ← h0, ht0])) + · refine Or.inl (Or.inr (Set.mem_iUnion₂.2 ⟨3 * Real.pi / 2 + t, + ⟨by linarith only [h0, ht0.ge], by linarith only [ht.2, h24]⟩, ?_⟩)) + rw [hDface t ⟨h0, ht.2⟩] + rfl + · rintro p ((hp | hp) | hp) + · rw [Set.mem_singleton_iff, hDstart] at hp + exact ⟨0, hmemD0, hp.symm⟩ + · obtain ⟨s, hs, hps⟩ := Set.mem_iUnion₂.1 hp + rcases le_or_gt (s - 3 * Real.pi / 2) (gerverStageTimes 2) with h | h + · have hmem : s - 3 * Real.pi / 2 ∈ + Set.Ioc (gerverStageTimes 0) (gerverStageTimes 2) := + ⟨by linarith only [hs.1, ht0.le], h⟩ + have hface := hDface (s - 3 * Real.pi / 2) hmem + rw [hcast _ _ (show 3 * Real.pi / 2 + (s - 3 * Real.pi / 2) = s by ring)] at hface + rw [hface, Set.mem_singleton_iff] at hps + exact ⟨s - 3 * Real.pi / 2, ⟨hmem.1.le, hmem.2⟩, hps.symm⟩ + · have hface := exposedEdge_eq_singleton_of_mem_exposedEdge_of_mem_Ioo + (L := D) (a := 3 * Real.pi / 2 + gerverStageTimes 2) + (b := 3 * Real.pi / 2 + gerverStageTimes 4) (s := s) + (by linarith only [h45, h02, Real.pi_pos]) + ⟨by linarith only [h], hs.2⟩ hDinner hDouter + rw [hface, Set.mem_singleton_iff] at hps + exact ⟨gerverStageTimes 2, hmemD2, hps.symm⟩ + · rw [Set.mem_singleton_iff, hDend] at hp + exact ⟨gerverStageTimes 2, hmemD2, hp.symm⟩ + · change paperGerverContacts (gerverStageTimes 0) 3 = + (edgeVertices D ((3 * Real.pi / 2 : ℝ) : Real.Angle)).1 + rw [hDstart, ht0] + · change paperGerverContacts (gerverStageTimes 2) 3 = + (edgeVertices D ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)).2 + rw [hl, hDend] + · change capInnerCorner K.val paperGerverConstants.2.1 = _ + rw [hr, hcorner _ hr1I] + exact gerver_niche_piece_endpoints.1.symm + · change (edgeVertices B ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle)).1 = _ + rw [hr] + exact hBstart + · refine ⟨by linarith only [h34, h45, ht5.ge], (continuous_paperGerverContact 1).continuousOn, + hinjB, ?_, ?_, ?_⟩ + · change (fun t ↦ paperGerverContacts t 1) '' + Set.Icc (gerverStageTimes 3) (gerverStageTimes 5) = + convexBoundaryArc B (Real.pi + paperGerverConstants.2.1) (3 * Real.pi / 2) + rw [hr, convexBoundaryArc] + refine Set.Subset.antisymm ?_ ?_ + · rintro p ⟨t, ht, rfl⟩ + rcases eq_or_lt_of_le ht.2 with hT | hT + · exact Or.inr (by rw [Set.mem_singleton_iff, hBend, hT, ht5]) + · refine Or.inl (Or.inr (Set.mem_iUnion₂.2 ⟨Real.pi + t, + ⟨by linarith only [ht.1, h12, h23], by linarith only [hT, ht5.le]⟩, ?_⟩)) + rw [hBface t ⟨ht.1, hT⟩] + rfl + · rintro p ((hp | hp) | hp) + · rw [Set.mem_singleton_iff, hBstart] at hp + exact ⟨gerverStageTimes 3, hmemB3, hp.symm⟩ + · obtain ⟨s, hs, hps⟩ := Set.mem_iUnion₂.1 hp + rcases lt_or_ge (s - Real.pi) (gerverStageTimes 3) with h | h + · have hface := exposedEdge_eq_singleton_of_mem_exposedEdge_of_mem_Ioo + (L := B) (a := Real.pi + gerverStageTimes 1) + (b := Real.pi + gerverStageTimes 3) (s := s) + (by linarith only [h34, h45, h01, Real.pi_pos]) + ⟨hs.1, by linarith only [h]⟩ hBouter hBinner + rw [hface, Set.mem_singleton_iff] at hps + exact ⟨gerverStageTimes 3, hmemB3, hps.symm⟩ + · have hmem : s - Real.pi ∈ Set.Ico (gerverStageTimes 3) (gerverStageTimes 5) := + ⟨h, by rw [ht5]; linarith only [hs.2]⟩ + have hface := hBface (s - Real.pi) hmem + rw [hcast _ _ (show Real.pi + (s - Real.pi) = s by ring)] at hface + rw [hface, Set.mem_singleton_iff] at hps + exact ⟨s - Real.pi, ⟨hmem.1, hmem.2.le⟩, hps.symm⟩ + · rw [Set.mem_singleton_iff, hBend] at hp + exact ⟨Real.pi / 2, hmemB5, hp.symm⟩ + · change paperGerverContacts (gerverStageTimes 3) 1 = + (edgeVertices B ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle)).1 + rw [hr, hBstart] + · change paperGerverContacts (gerverStageTimes 5) 1 = + (edgeVertices B ((3 * Real.pi / 2 : ℝ) : Real.Angle)).2 + rw [hBend, ht5] + · intro t ht + have htI : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨ht0 ▸ ht.1, by linarith only [ht.2, h23, h34, h45]⟩ + have hsup : supportValue D ((3 * Real.pi / 2 + t : ℝ) : Real.Angle) = + -gerverLeftTailSupport (t + Real.pi / 2) := by + have h := supportValue_add_pi_eq_neg_of_forall_le (L := D) + (fun q hq ↦ hDle q hq (t + Real.pi / 2) + ⟨by linarith only [htI.1], by linarith only [ht.2, h23, h34]⟩) + (hDmem t ht) (hDtouch t ht) + rwa [hcast _ _ (show t + Real.pi / 2 + Real.pi = 3 * Real.pi / 2 + t by ring)] at h + rw [hsup, hmDsup t htI, hcast _ _ (show Real.pi / 2 + t = t + Real.pi / 2 by ring)] + ring + · intro t ht + have htI : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨by linarith only [ht.1, h01, h12, h23], ht5 ▸ ht.2⟩ + have hsup : supportValue B ((Real.pi + t : ℝ) : Real.Angle) = -gerverRightTailSupport t := by + have h := supportValue_add_pi_eq_neg_of_forall_le (L := B) + (fun q hq ↦ hBle q hq t ⟨by linarith only [ht.1, h12, h23], htI.2⟩) + (hBmem t ht) (hBtouch t ht) + rwa [hcast _ _ (show t + Real.pi = Real.pi + t by ring)] at h + rw [hsup] + simp only [gerverRightTailSupport] + rw [hsupu t htI] + ring + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The four contact densities of Gerver's cap + +The rotating frame reads the four contact curves of Gerver's sofa as angular densities of two +surface measures: the two outer contacts `A`, `C` against the cap `K = C(G)` itself, and the two +inner contacts `B`, `D` against the two tail bodies through the opposite surface measure. + +The two outer clauses are exactly the certified cap densities `gerver_surface_densities`, +rewritten with the tautological identity `⟨r • v_t, v_t⟩ = r` and translated by the quarter +turn that separates the `A` arc from the `C` arc. The two inner clauses use that `B = A - u` and +`D = C - v` are the outer contacts translated by a frame vector, so each closed stage carries a +globally differentiable branch curve for them (`exists_branch_paperGerverContacts_one`, +`exists_branch_paperGerverContacts_three`); the tail geometry identifies those curves with the +positive vertices of the two tail bodies at the opposite normal, and +`oppositeSurfaceData_angleImage_eq_withDensity` turns each stage into a Lebesgue density. The +stages are glued with `measure_angleImage_eq_of_union`, which puts every interior switch inside a +window that is closed on the right, so the only atom to compute is the one at the included left +endpoint `t₃` of the `B` arc. +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- Push a real density measure on an angle window to angles modulo a full turn. -/ +def angularDensityMeasure (f : ℝ → ℝ) (S : Set ℝ) : Measure Real.Angle := + Measure.map (fun t : ℝ ↦ (t : Real.Angle)) + ((volume.restrict S).withDensity (fun t ↦ ENNReal.ofReal (f t))) + +/-- The measure has the specified integrable nonnegative density on the angular image of a +window. -/ +def HasAngularDensity (μ : Measure Real.Angle) (f : ℝ → ℝ) (S : Set ℝ) : Prop := + Integrable f (volume.restrict S) ∧ (∀ᵐ t ∂volume.restrict S, 0 ≤ f t) ∧ + μ.restrict ((fun t : ℝ ↦ (t : Real.Angle)) '' S) = angularDensityMeasure f S + +/-- An angular density identity on a window of at most one turn computes the measure of the +angular image of every measurable subset of the window. -/ +theorem HasAngularDensity.angleImage_eq_setLIntegral {μ : Measure Real.Angle} {f : ℝ → ℝ} + {S : Set ℝ} (h : HasAngularDensity μ f S) {a b : ℝ} (hturn : b ≤ a + 2 * Real.pi) + (hS : S ⊆ Set.Ioc a b) {T : Set ℝ} (hT : MeasurableSet T) (hTS : T ⊆ S) : + μ ((fun t : ℝ ↦ (t : Real.Angle)) '' T) = + ∫⁻ t in T, ENNReal.ofReal (f t) ∂volume := by + have himage : MeasurableSet ((fun t : ℝ ↦ (t : Real.Angle)) '' T) := + Real.Angle.measurableSet_image_of_subset_Ioc hturn hT (hTS.trans hS) + have hrestrict : μ ((fun t : ℝ ↦ (t : Real.Angle)) '' T) = + μ.restrict ((fun t : ℝ ↦ (t : Real.Angle)) '' S) + ((fun t : ℝ ↦ (t : Real.Angle)) '' T) := by + rw [Measure.restrict_apply himage, Set.inter_eq_left.2 (Set.image_mono hTS)] + rw [hrestrict, h.2.2, angularDensityMeasure, + Real.Angle.map_coe_withDensity_image_eq_setLIntegral hturn hS hT hTS] + +private theorem gerver_angular_density_outer_first (K : SpecialCapSpace) + (hK : (K.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) : + HasAngularDensity (surfaceAreaMeasure K.val.val) + (fun t ↦ inner ℝ (deriv (fun s ↦ paperGerverContacts s 0) t) + (tangentVector (t : Real.Angle))) (Set.Ico 0 (Real.pi / 2)) := by + -- ### The certified cap carries the two envelope densities + obtain ⟨K', hK'set, r, sden, hdens, ⟨M, hM⟩, hstage⟩ := gerver_surface_densities + have hKeq : K' = K.val := Subtype.ext (SetLike.coe_injective (hK'set.trans hK.symm)) + subst hKeq + have haeval : ∀ᵐ t ∂volume.restrict (Set.Ico (0 : ℝ) (Real.pi / 2)), + inner ℝ (deriv (fun s ↦ paperGerverContacts s 0) t) (tangentVector (t : Real.Angle)) = + (r t : ℝ) := by + filter_upwards [ae_mem_openStage 0 (S := Set.Ico (0 : ℝ) (Real.pi / 2)) measurableSet_Ico + (fun t ht ↦ ⟨ht.1, by linarith [ht.2]⟩)] with t ht + obtain ⟨j, hj⟩ := ht + rw [sub_zero] at hj + rw [(hstage j t hj).1.deriv, real_inner_smul_left, inner_tangentVector_self, mul_one] + have hrint : Integrable (fun t ↦ ((r t : ℝ))) + (volume.restrict (Set.Ico (0 : ℝ) (Real.pi / 2))) := by + have hfin : IsFiniteMeasure (volume.restrict (Set.Ico (0 : ℝ) (Real.pi / 2))) := by + refine ⟨?_⟩ + rw [Measure.restrict_apply_univ, Real.volume_Ico] + exact ENNReal.ofReal_lt_top + refine Integrable.mono' (integrable_const M) + hdens.1.coe_nnreal_real.aestronglyMeasurable ?_ + filter_upwards [ae_restrict_mem measurableSet_Ico] with t ht + rw [Real.norm_eq_abs, abs_of_nonneg (r t).coe_nonneg] + exact (hM t ⟨ht.1, ht.2.le⟩).1 + refine ⟨hrint.congr (Filter.EventuallyEq.symm haeval), ?_, ?_⟩ + · filter_upwards [haeval] with t ht + rw [ht] + exact (r t).coe_nonneg + · rw [hdens.2.2.1, angularDensityMeasure] + congr 1 + refine withDensity_congr_ae ?_ + filter_upwards [haeval] with t ht + rw [ht, ENNReal.ofReal_coe_nnreal] + +private theorem gerver_angular_density_right_tail (K : SpecialCapSpace) (B D : ConvexBody Point) + (hK : (K.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) + (hB : (B : Set Point) = (canonicalTailSets K).1) + (hD : (D : Set Point) = (canonicalTailSets K).2) : + HasAngularDensity (oppositeSurfaceData B).1 + (fun t ↦ inner ℝ (-(deriv (fun s ↦ paperGerverContacts s 1) t)) + (tangentVector (t : Real.Angle))) + (Set.Ico (gerverStageTimes 3) (gerverStageTimes 5)) := by + -- ### The strictly increasing stage times + have h0 : gerverStageTimes 0 = 0 := gerverStageTimes_zero + have h5 : gerverStageTimes 5 = Real.pi / 2 := rfl + have h01 : gerverStageTimes 0 < gerverStageTimes 1 := gerverStageTimes_strictMono (by decide) + have h12 : gerverStageTimes 1 < gerverStageTimes 2 := gerverStageTimes_strictMono (by decide) + have h23 : gerverStageTimes 2 < gerverStageTimes 3 := gerverStageTimes_strictMono (by decide) + have h34 : gerverStageTimes 3 < gerverStageTimes 4 := gerverStageTimes_strictMono (by decide) + have h45 : gerverStageTimes 4 < gerverStageTimes 5 := gerverStageTimes_strictMono (by decide) + have hpi : (3 : ℝ) < Real.pi := Real.pi_gt_three + -- ### The certified cap carries the two envelope densities + obtain ⟨K', hK'set, r, sden, hdens, ⟨M, hM⟩, hstage⟩ := gerver_surface_densities + have hKeq : K' = K.val := Subtype.ext (SetLike.coe_injective (hK'set.trans hK.symm)) + subst hKeq + -- ### The two tails are traced by the two inner contact curves + obtain ⟨htailD, htailB, -, -, htailD2, -, -, -, htailB3, -, -, -⟩ := + gerver_tailGeometry K B D hK hB hD + obtain ⟨fB, hfBdef⟩ : ∃ f : ℝ → ℝ, f = fun t ↦ inner ℝ + (-(deriv (fun s ↦ paperGerverContacts s 1) t)) (tangentVector (t : Real.Angle)) := + ⟨_, rfl⟩ + rw [← hfBdef] + obtain ⟨F3, g3, hF3, hg3, hg3nn, hFeq3⟩ := + exists_branch_paperGerverContacts_one (i := 3) (Or.inl rfl) + obtain ⟨F4, g4, hF4, hg4, hg4nn, hFeq4⟩ := + exists_branch_paperGerverContacts_one (i := 4) (Or.inr rfl) + -- the positive vertex of `B` at normal `π + s` is the inner contact + have hvB : ∀ s ∈ Set.Ico (gerverStageTimes 3) (gerverStageTimes 5), + (edgeVertices B ((Real.pi + s : ℝ) : Real.Angle)).1 = paperGerverContacts s 1 := by + intro s hs + rcases eq_or_lt_of_le hs.1 with heq | hlt + · rw [← heq, htailB3] + · rw [htailB s ⟨hlt, hs.2⟩] + -- the target density is the branch speed inside each of the two open stages + have hfB3 : ∀ t ∈ Set.Ioo (gerverStageTimes 3) (gerverStageTimes 4), fB t = g3 t := by + intro t ht + simp only [hfBdef] + rw [(hasDerivAt_of_eqOn_stage hF3 hFeq3 ht).deriv, neg_smul, neg_neg, real_inner_smul_left, + inner_tangentVector_self, mul_one] + have hfB4 : ∀ t ∈ Set.Ioo (gerverStageTimes 4) (gerverStageTimes 5), fB t = g4 t := by + intro t ht + simp only [hfBdef] + rw [(hasDerivAt_of_eqOn_stage hF4 hFeq4 ht).deriv, neg_smul, neg_neg, real_inner_smul_left, + inner_tangentVector_self, mul_one] + -- the two stage windows + have hagree3 : ∀ T, MeasurableSet T → + T ⊆ Set.Ioc (gerverStageTimes 3) (gerverStageTimes 4) → + (oppositeSurfaceData B).1 ((fun s : ℝ ↦ (s : Real.Angle)) '' T) = + volume.withDensity (fun s ↦ ENNReal.ofReal (fB s)) T := by + intro T hT hTsub + refine oppositeSurfaceData_angleImage_eq_withDensity B h34 (by linarith) F3 fB g3 hF3 hg3 + hg3nn hfB3 ?_ hT hTsub + exact fun s hs ↦ (hvB s ⟨hs.1, by linarith [hs.2]⟩).trans (hFeq3 s hs) + have hagree4 : ∀ T, MeasurableSet T → + T ⊆ Set.Ioo (gerverStageTimes 4) (gerverStageTimes 5) → + (oppositeSurfaceData B).1 ((fun s : ℝ ↦ (s : Real.Angle)) '' T) = + volume.withDensity (fun s ↦ ENNReal.ofReal (fB s)) T := by + intro T hT hTsub + refine oppositeSurfaceData_angleImage_eq_withDensity_of_openRight B h45 (by linarith) F4 fB + g4 hF4 hg4 (fun s hs ↦ hg4nn s ⟨hs.1, hs.2.le⟩) hfB4 ?_ hT hTsub + exact fun s hs ↦ (hvB s ⟨by linarith [hs.1], hs.2⟩).trans (hFeq4 s ⟨hs.1, hs.2.le⟩) + -- the included left endpoint carries no surface atom + have hatom : (oppositeSurfaceData B).1 + ((fun s : ℝ ↦ (s : Real.Angle)) '' {gerverStageTimes 3}) = 0 := by + rw [oppositeSurfaceData_angleImage B + (by rw [Set.image_singleton]; exact measurableSet_singleton _), + Set.image_singleton, Set.image_singleton, + (surfaceAreaMeasure_atom_length B + ((gerverStageTimes 3 + Real.pi : ℝ) : Real.Angle)).2.1, + show ((gerverStageTimes 3 + Real.pi : ℝ) : Real.Angle) = + ((Real.pi + gerverStageTimes 3 : ℝ) : Real.Angle) from by rw [add_comm], htailB3] + simp + have hagreeAtom : ∀ T, MeasurableSet T → T ⊆ {gerverStageTimes 3} → + (oppositeSurfaceData B).1 ((fun s : ℝ ↦ (s : Real.Angle)) '' T) = + volume.withDensity (fun s ↦ ENNReal.ofReal (fB s)) T := by + have hatomν : volume.withDensity (fun s ↦ ENNReal.ofReal (fB s)) + {gerverStageTimes 3} = 0 := by + rw [withDensity_apply _ (measurableSet_singleton _)] + exact setLIntegral_measure_zero _ _ (by simp) + intro T _ hTsub + rw [measure_mono_null (Set.image_mono hTsub) hatom, measure_mono_null hTsub hatomν] + -- gluing the closed stage and then the final open stage + have hstep1 : ∀ T, MeasurableSet T → + T ⊆ Set.Icc (gerverStageTimes 3) (gerverStageTimes 4) → + (oppositeSurfaceData B).1 ((fun s : ℝ ↦ (s : Real.Angle)) '' T) = + volume.withDensity (fun s ↦ ENNReal.ofReal (fB s)) T := by + intro T hT hTsub + refine measure_angleImage_eq_of_union (c := gerverStageTimes 3 - 1) + (d := gerverStageTimes 5) (by linarith) (I := {gerverStageTimes 3}) + (J := Set.Ioc (gerverStageTimes 3) (gerverStageTimes 4)) ?_ ?_ + (measurableSet_singleton _) measurableSet_Ioc ?_ hagreeAtom hagree3 T hT ?_ + · intro x hx + rw [Set.mem_singleton_iff] at hx + exact ⟨by linarith, by linarith⟩ + · exact fun x hx ↦ ⟨by linarith [hx.1], by linarith [hx.2]⟩ + · rw [Set.disjoint_singleton_left] + simp + · intro x hx + rcases eq_or_lt_of_le (hTsub hx).1 with heq | hlt + · exact Or.inl heq.symm + · exact Or.inr ⟨hlt, (hTsub hx).2⟩ + have hstep2 : ∀ T, MeasurableSet T → + T ⊆ Set.Ico (gerverStageTimes 3) (gerverStageTimes 5) → + (oppositeSurfaceData B).1 ((fun s : ℝ ↦ (s : Real.Angle)) '' T) = + volume.withDensity (fun s ↦ ENNReal.ofReal (fB s)) T := by + intro T hT hTsub + refine measure_angleImage_eq_of_union (c := gerverStageTimes 3 - 1) + (d := gerverStageTimes 5) (by linarith) + (I := Set.Icc (gerverStageTimes 3) (gerverStageTimes 4)) + (J := Set.Ioo (gerverStageTimes 4) (gerverStageTimes 5)) ?_ ?_ + measurableSet_Icc measurableSet_Ioo ?_ hstep1 hagree4 T hT ?_ + · exact fun x hx ↦ ⟨by linarith [hx.1], by linarith [hx.2]⟩ + · exact fun x hx ↦ ⟨by linarith [hx.1], by linarith [hx.2]⟩ + · rw [Set.disjoint_left] + exact fun x hx hx' ↦ absurd hx'.1 (not_lt.2 hx.2) + · intro x hx + rcases le_or_gt x (gerverStageTimes 4) with h | h + · exact Or.inl ⟨(hTsub hx).1, h⟩ + · exact Or.inr ⟨h, (hTsub hx).2⟩ + -- almost every parameter of the window lies in one of the two open stages + have hae : ∀ᵐ t ∂volume.restrict (Set.Ico (gerverStageTimes 3) (gerverStageTimes 5)), + t ∈ Set.Ioo (gerverStageTimes 3) (gerverStageTimes 4) ∪ + Set.Ioo (gerverStageTimes 4) (gerverStageTimes 5) := by + refine ae_restrict_mem_of_countable_diff measurableSet_Ico + ((Set.countable_singleton (gerverStageTimes 4)).insert (gerverStageTimes 3)) ?_ + rintro x ⟨hx, hx'⟩ + rcases eq_or_lt_of_le hx.1 with heq | hlt + · exact Or.inl heq.symm + · rcases lt_trichotomy x (gerverStageTimes 4) with h | h | h + · exact absurd (Or.inl ⟨hlt, h⟩) hx' + · exact Or.inr (Set.mem_singleton_iff.2 h) + · exact absurd (Or.inr ⟨h, hx.2⟩) hx' + have hsplit : Set.Ico (gerverStageTimes 3) (gerverStageTimes 5) = + Set.Icc (gerverStageTimes 3) (gerverStageTimes 4) ∪ + Set.Ioo (gerverStageTimes 4) (gerverStageTimes 5) := + (Set.Icc_union_Ioo_eq_Ico h34.le h45).symm + refine ⟨?_, ?_, ?_⟩ + · have h1 : IntegrableOn fB (Set.Icc (gerverStageTimes 3) (gerverStageTimes 4)) volume := by + refine (ContinuousOn.integrableOn_compact isCompact_Icc hg3.continuousOn).congr ?_ + have hae3 : ∀ᵐ t ∂volume.restrict (Set.Icc (gerverStageTimes 3) (gerverStageTimes 4)), + t ∈ Set.Ioo (gerverStageTimes 3) (gerverStageTimes 4) := by + refine ae_restrict_mem_of_countable_diff measurableSet_Icc + ((Set.countable_singleton (gerverStageTimes 4)).insert (gerverStageTimes 3)) ?_ + rintro x ⟨hx, hx'⟩ + rcases eq_or_lt_of_le hx.1 with heq | hlt + · exact Or.inl heq.symm + · rcases eq_or_lt_of_le hx.2 with heq2 | hlt2 + · exact Or.inr (Set.mem_singleton_iff.2 heq2) + · exact absurd ⟨hlt, hlt2⟩ hx' + filter_upwards [hae3] with t ht using (hfB3 t ht).symm + have h2 : IntegrableOn fB (Set.Ioo (gerverStageTimes 4) (gerverStageTimes 5)) volume := by + refine (((ContinuousOn.integrableOn_compact (isCompact_Icc + (a := gerverStageTimes 4) (b := gerverStageTimes 5)) + hg4.continuousOn)).mono_set Set.Ioo_subset_Icc_self).congr ?_ + filter_upwards [ae_restrict_mem measurableSet_Ioo] with t ht using (hfB4 t ht).symm + rw [show Integrable fB (volume.restrict (Set.Ico (gerverStageTimes 3) + (gerverStageTimes 5))) = IntegrableOn fB (Set.Ico (gerverStageTimes 3) + (gerverStageTimes 5)) volume from rfl, hsplit] + exact h1.union h2 + · filter_upwards [hae] with t ht + rcases ht with ht | ht + · rw [hfB3 t ht] + exact hg3nn t ⟨ht.1, ht.2.le⟩ + · rw [hfB4 t ht] + exact hg4nn t ⟨ht.1, ht.2.le⟩ + · rw [angularDensityMeasure] + exact measure_restrict_eq_map_withDensity measurableSet_Ico hstep2 + +private theorem gerver_angular_density_outer_second (K : SpecialCapSpace) + (hK : (K.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) : + HasAngularDensity (surfaceAreaMeasure K.val.val) + (fun t ↦ inner ℝ (-(deriv (fun s ↦ paperGerverContacts s 2) (t - Real.pi / 2))) + (normalVector ((t - Real.pi / 2 : ℝ) : Real.Angle))) + (Set.Ioc (Real.pi / 2) Real.pi) := by + -- ### The certified cap carries the two envelope densities + obtain ⟨K', hK'set, r, sden, hdens, ⟨M, hM⟩, hstage⟩ := gerver_surface_densities + have hKeq : K' = K.val := Subtype.ext (SetLike.coe_injective (hK'set.trans hK.symm)) + subst hKeq + have haeval : ∀ᵐ u ∂volume.restrict (Set.Ioc (Real.pi / 2) Real.pi), + inner ℝ (-(deriv (fun s ↦ paperGerverContacts s 2) (u - Real.pi / 2))) + (normalVector ((u - Real.pi / 2 : ℝ) : Real.Angle)) = + (sden (u - Real.pi / 2) : ℝ) := by + filter_upwards [ae_mem_openStage (Real.pi / 2) (S := Set.Ioc (Real.pi / 2) Real.pi) + measurableSet_Ioc (fun u hu ↦ ⟨hu.1.le, by linarith [hu.2]⟩)] with u hu + obtain ⟨j, hj⟩ := hu + rw [(hstage j _ hj).2.deriv, neg_smul, neg_neg, real_inner_smul_left, + inner_normalVector_self, mul_one] + have hsint : Integrable (fun u ↦ ((sden (u - Real.pi / 2) : ℝ))) + (volume.restrict (Set.Ioc (Real.pi / 2) Real.pi)) := by + have hfin : IsFiniteMeasure (volume.restrict (Set.Ioc (Real.pi / 2) Real.pi)) := by + refine ⟨?_⟩ + rw [Measure.restrict_apply_univ, Real.volume_Ioc] + exact ENNReal.ofReal_lt_top + refine Integrable.mono' (integrable_const M) + ((hdens.2.1.coe_nnreal_real.comp (measurable_id.sub_const _)).aestronglyMeasurable) ?_ + filter_upwards [ae_restrict_mem measurableSet_Ioc] with u hu + rw [Real.norm_eq_abs, abs_of_nonneg (sden _).coe_nonneg] + exact (hM (u - Real.pi / 2) ⟨by linarith [hu.1], by linarith [hu.2]⟩).2 + refine ⟨hsint.congr (Filter.EventuallyEq.symm haeval), ?_, ?_⟩ + · filter_upwards [haeval] with u hu + rw [hu] + exact (sden _).coe_nonneg + · have himg : (fun t : ℝ ↦ t + Real.pi / 2) '' Set.Ioc 0 (Real.pi / 2) = + Set.Ioc (Real.pi / 2) Real.pi := by + ext u + simp only [Set.mem_image, Set.mem_Ioc] + constructor + · rintro ⟨t, ⟨h1, h2⟩, rfl⟩ + exact ⟨by linarith, by linarith⟩ + · rintro ⟨h1, h2⟩ + exact ⟨u - Real.pi / 2, ⟨by linarith, by linarith⟩, by ring⟩ + have hcomp : (fun t : ℝ ↦ ((t + Real.pi / 2 : ℝ) : Real.Angle)) = + (fun u : ℝ ↦ (u : Real.Angle)) ∘ (fun t : ℝ ↦ t + Real.pi / 2) := rfl + rw [hdens.2.2.2, angularDensityMeasure, hcomp, + ← Measure.map_map (g := fun u : ℝ ↦ (u : Real.Angle)) + (f := fun t : ℝ ↦ t + Real.pi / 2) Real.Angle.continuous_coe.measurable (by fun_prop), + map_add_right_restrict_withDensity (Real.pi / 2), himg] + congr 1 + refine withDensity_congr_ae ?_ + filter_upwards [haeval] with u hu + rw [hu, ENNReal.ofReal_coe_nnreal] + +private theorem gerver_angular_density_left_tail (K : SpecialCapSpace) (B D : ConvexBody Point) + (hK : (K.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) + (hB : (B : Set Point) = (canonicalTailSets K).1) + (hD : (D : Set Point) = (canonicalTailSets K).2) : + HasAngularDensity (oppositeSurfaceData D).1 + (fun t ↦ inner ℝ (deriv (fun s ↦ paperGerverContacts s 3) (t - Real.pi / 2)) + (normalVector ((t - Real.pi / 2 : ℝ) : Real.Angle))) + (Set.Ioc (Real.pi / 2 + gerverStageTimes 0) + (Real.pi / 2 + gerverStageTimes 2)) := by + -- ### The strictly increasing stage times + have h0 : gerverStageTimes 0 = 0 := gerverStageTimes_zero + have h5 : gerverStageTimes 5 = Real.pi / 2 := rfl + have h01 : gerverStageTimes 0 < gerverStageTimes 1 := gerverStageTimes_strictMono (by decide) + have h12 : gerverStageTimes 1 < gerverStageTimes 2 := gerverStageTimes_strictMono (by decide) + have h23 : gerverStageTimes 2 < gerverStageTimes 3 := gerverStageTimes_strictMono (by decide) + have h34 : gerverStageTimes 3 < gerverStageTimes 4 := gerverStageTimes_strictMono (by decide) + have h45 : gerverStageTimes 4 < gerverStageTimes 5 := gerverStageTimes_strictMono (by decide) + have hpi : (3 : ℝ) < Real.pi := Real.pi_gt_three + -- ### The certified cap carries the two envelope densities + obtain ⟨K', hK'set, r, sden, hdens, ⟨M, hM⟩, hstage⟩ := gerver_surface_densities + have hKeq : K' = K.val := Subtype.ext (SetLike.coe_injective (hK'set.trans hK.symm)) + subst hKeq + -- ### The two tails are traced by the two inner contact curves + obtain ⟨htailD, htailB, -, -, htailD2, -, -, -, htailB3, -, -, -⟩ := + gerver_tailGeometry K B D hK hB hD + obtain ⟨fD, hfDdef⟩ : ∃ f : ℝ → ℝ, f = fun t ↦ inner ℝ + (deriv (fun s ↦ paperGerverContacts s 3) (t - Real.pi / 2)) + (normalVector ((t - Real.pi / 2 : ℝ) : Real.Angle)) := ⟨_, rfl⟩ + rw [← hfDdef] + obtain ⟨F0, g0, hF0, hg0, hg0nn, hFeq0⟩ := + exists_branch_paperGerverContacts_three (i := 0) (Or.inl rfl) + obtain ⟨F1, g1, hF1, hg1, hg1nn, hFeq1⟩ := + exists_branch_paperGerverContacts_three (i := 1) (Or.inr rfl) + -- the stage data with the stage times spelled out, so that `linarith` sees them + have hg0nn' : ∀ t ∈ Set.Ioc (gerverStageTimes 0) (gerverStageTimes 1), 0 ≤ g0 t := hg0nn + have hFeq0' : ∀ t ∈ Set.Icc (gerverStageTimes 0) (gerverStageTimes 1), + paperGerverContacts t 3 = F0 t := hFeq0 + have hg1nn' : ∀ t ∈ Set.Ioc (gerverStageTimes 1) (gerverStageTimes 2), 0 ≤ g1 t := hg1nn + have hFeq1' : ∀ t ∈ Set.Icc (gerverStageTimes 1) (gerverStageTimes 2), + paperGerverContacts t 3 = F1 t := hFeq1 + -- reparametrising the quarter-turn shift turns the normal speed into a tangent speed + have hshift : ∀ (F : ℝ → Point) (g : ℝ → ℝ), + (∀ s, HasDerivAt F (g s • normalVector (s : Real.Angle)) s) → + ∀ u : ℝ, HasDerivAt (fun v : ℝ ↦ F (v - Real.pi / 2)) + (-(g (u - Real.pi / 2)) • tangentVector (u : Real.Angle)) u := by + intro F g hF u + have h := (hF (u - Real.pi / 2)).scomp u ((hasDerivAt_id u).sub_const (Real.pi / 2)) + have hv : tangentVector (u : Real.Angle) = + -normalVector ((u - Real.pi / 2 : ℝ) : Real.Angle) := by + have h2 := tangentVector_add_pi_div_two (u - Real.pi / 2) + rw [show u - Real.pi / 2 + Real.pi / 2 = u from by ring] at h2 + exact h2 + rw [hv] + refine h.congr_deriv ?_ + module + -- the positive vertex of `D` at normal `π + u` is the inner contact + have hvD : ∀ u ∈ Set.Ioc (Real.pi / 2 + gerverStageTimes 0) + (Real.pi / 2 + gerverStageTimes 2), + (edgeVertices D ((Real.pi + u : ℝ) : Real.Angle)).1 = + paperGerverContacts (u - Real.pi / 2) 3 := by + intro u hu + rw [show ((Real.pi + u : ℝ) : Real.Angle) = + ((3 * Real.pi / 2 + (u - Real.pi / 2) : ℝ) : Real.Angle) from by congr 1; ring] + rcases eq_or_lt_of_le hu.2 with heq | hlt + · rw [show u - Real.pi / 2 = gerverStageTimes 2 from by linarith, htailD2] + · rw [htailD (u - Real.pi / 2) ⟨by linarith [hu.1], by linarith⟩] + -- the target density is the shifted branch speed inside each of the two open stages + have hfD0 : ∀ u ∈ Set.Ioo (Real.pi / 2 + gerverStageTimes 0) + (Real.pi / 2 + gerverStageTimes 1), fD u = g0 (u - Real.pi / 2) := by + intro u hu + simp only [hfDdef] + rw [(hasDerivAt_of_eqOn_stage hF0 hFeq0 (show u - Real.pi / 2 ∈ + Set.Ioo (gerverStageTimes 0) (gerverStageTimes 1) from + ⟨by linarith [hu.1], by linarith [hu.2]⟩)).deriv, real_inner_smul_left, + inner_normalVector_self, mul_one] + have hfD1 : ∀ u ∈ Set.Ioo (Real.pi / 2 + gerverStageTimes 1) + (Real.pi / 2 + gerverStageTimes 2), fD u = g1 (u - Real.pi / 2) := by + intro u hu + simp only [hfDdef] + rw [(hasDerivAt_of_eqOn_stage hF1 hFeq1 (show u - Real.pi / 2 ∈ + Set.Ioo (gerverStageTimes 1) (gerverStageTimes 2) from + ⟨by linarith [hu.1], by linarith [hu.2]⟩)).deriv, real_inner_smul_left, + inner_normalVector_self, mul_one] + -- the two stage windows + have hagree0 : ∀ T, MeasurableSet T → + T ⊆ Set.Ioc (Real.pi / 2 + gerverStageTimes 0) (Real.pi / 2 + gerverStageTimes 1) → + (oppositeSurfaceData D).1 ((fun s : ℝ ↦ (s : Real.Angle)) '' T) = + volume.withDensity (fun s ↦ ENNReal.ofReal (fD s)) T := by + intro T hT hTsub + refine oppositeSurfaceData_angleImage_eq_withDensity_of_openLeft D (by linarith) + (by linarith) (fun v ↦ F0 (v - Real.pi / 2)) fD (fun u ↦ g0 (u - Real.pi / 2)) + (hshift F0 g0 hF0) (hg0.comp (continuous_id.sub continuous_const)) + (fun s hs ↦ hg0nn' _ ⟨by linarith [hs.1], by linarith [hs.2]⟩) hfD0 ?_ hT hTsub + exact fun s hs ↦ (hvD s ⟨hs.1, by linarith [hs.2]⟩).trans + (hFeq0' _ ⟨by linarith [hs.1], by linarith [hs.2]⟩) + have hagree1 : ∀ T, MeasurableSet T → + T ⊆ Set.Ioc (Real.pi / 2 + gerverStageTimes 1) (Real.pi / 2 + gerverStageTimes 2) → + (oppositeSurfaceData D).1 ((fun s : ℝ ↦ (s : Real.Angle)) '' T) = + volume.withDensity (fun s ↦ ENNReal.ofReal (fD s)) T := by + intro T hT hTsub + refine oppositeSurfaceData_angleImage_eq_withDensity D (by linarith) (by linarith) + (fun v ↦ F1 (v - Real.pi / 2)) fD (fun u ↦ g1 (u - Real.pi / 2)) (hshift F1 g1 hF1) + (hg1.comp (continuous_id.sub continuous_const)) + (fun s hs ↦ hg1nn' _ ⟨by linarith [hs.1], by linarith [hs.2]⟩) hfD1 ?_ hT hTsub + exact fun s hs ↦ (hvD s ⟨by linarith [hs.1], by linarith [hs.2]⟩).trans + (hFeq1' _ ⟨by linarith [hs.1], by linarith [hs.2]⟩) + have hstep : ∀ T, MeasurableSet T → + T ⊆ Set.Ioc (Real.pi / 2 + gerverStageTimes 0) (Real.pi / 2 + gerverStageTimes 2) → + (oppositeSurfaceData D).1 ((fun s : ℝ ↦ (s : Real.Angle)) '' T) = + volume.withDensity (fun s ↦ ENNReal.ofReal (fD s)) T := by + intro T hT hTsub + refine measure_angleImage_eq_of_union (c := Real.pi / 2 + gerverStageTimes 0) + (d := Real.pi / 2 + gerverStageTimes 2) (by linarith) + (I := Set.Ioc (Real.pi / 2 + gerverStageTimes 0) (Real.pi / 2 + gerverStageTimes 1)) + (J := Set.Ioc (Real.pi / 2 + gerverStageTimes 1) (Real.pi / 2 + gerverStageTimes 2)) ?_ ?_ + measurableSet_Ioc measurableSet_Ioc ?_ hagree0 hagree1 T hT ?_ + · exact fun x hx ↦ ⟨hx.1, by linarith [hx.2]⟩ + · exact fun x hx ↦ ⟨by linarith [hx.1], hx.2⟩ + · rw [Set.disjoint_left] + exact fun x hx hx' ↦ absurd hx'.1 (not_lt.2 hx.2) + · intro x hx + rcases le_or_gt x (Real.pi / 2 + gerverStageTimes 1) with h | h + · exact Or.inl ⟨(hTsub hx).1, h⟩ + · exact Or.inr ⟨h, (hTsub hx).2⟩ + have hsplit : Set.Ioc (Real.pi / 2 + gerverStageTimes 0) (Real.pi / 2 + gerverStageTimes 2) = + Set.Ioc (Real.pi / 2 + gerverStageTimes 0) (Real.pi / 2 + gerverStageTimes 1) ∪ + Set.Ioc (Real.pi / 2 + gerverStageTimes 1) (Real.pi / 2 + gerverStageTimes 2) := + (Set.Ioc_union_Ioc_eq_Ioc (by linarith) (by linarith)).symm + have hae : ∀ᵐ u ∂volume.restrict (Set.Ioc (Real.pi / 2 + gerverStageTimes 0) + (Real.pi / 2 + gerverStageTimes 2)), + u ∈ Set.Ioo (Real.pi / 2 + gerverStageTimes 0) (Real.pi / 2 + gerverStageTimes 1) ∪ + Set.Ioo (Real.pi / 2 + gerverStageTimes 1) (Real.pi / 2 + gerverStageTimes 2) := by + refine ae_restrict_mem_of_countable_diff measurableSet_Ioc + ((Set.countable_singleton (Real.pi / 2 + gerverStageTimes 2)).insert + (Real.pi / 2 + gerverStageTimes 1)) ?_ + rintro x ⟨hx, hx'⟩ + rcases lt_trichotomy x (Real.pi / 2 + gerverStageTimes 1) with h | h | h + · exact absurd (Or.inl ⟨hx.1, h⟩) hx' + · exact Or.inl h + · rcases eq_or_lt_of_le hx.2 with heq | hlt + · exact Or.inr (Set.mem_singleton_iff.2 heq) + · exact absurd (Or.inr ⟨h, hlt⟩) hx' + refine ⟨?_, ?_, ?_⟩ + · have hae01 : ∀ a b : ℝ, ∀ᵐ u ∂volume.restrict (Set.Ioc a b), + u ∈ Set.Ioo a b := by + intro a b + refine ae_restrict_mem_of_countable_diff measurableSet_Ioc + (Set.countable_singleton b) ?_ + rintro x ⟨hx, hx'⟩ + exact le_antisymm hx.2 (not_lt.1 fun h ↦ hx' ⟨hx.1, h⟩) + have hint0 : IntegrableOn fD (Set.Ioc (Real.pi / 2 + gerverStageTimes 0) + (Real.pi / 2 + gerverStageTimes 1)) volume := by + have hc0 : Continuous fun u : ℝ ↦ g0 (u - Real.pi / 2) := + hg0.comp (continuous_id.sub continuous_const) + refine (((ContinuousOn.integrableOn_compact (isCompact_Icc + (a := Real.pi / 2 + gerverStageTimes 0) (b := Real.pi / 2 + gerverStageTimes 1)) + hc0.continuousOn)).mono_set Set.Ioc_subset_Icc_self).congr ?_ + filter_upwards [hae01 _ _] with u hu using (hfD0 u hu).symm + have hint1 : IntegrableOn fD (Set.Ioc (Real.pi / 2 + gerverStageTimes 1) + (Real.pi / 2 + gerverStageTimes 2)) volume := by + have hc1 : Continuous fun u : ℝ ↦ g1 (u - Real.pi / 2) := + hg1.comp (continuous_id.sub continuous_const) + refine (((ContinuousOn.integrableOn_compact (isCompact_Icc + (a := Real.pi / 2 + gerverStageTimes 1) (b := Real.pi / 2 + gerverStageTimes 2)) + hc1.continuousOn)).mono_set Set.Ioc_subset_Icc_self).congr ?_ + filter_upwards [hae01 _ _] with u hu using (hfD1 u hu).symm + rw [show Integrable fD (volume.restrict (Set.Ioc (Real.pi / 2 + gerverStageTimes 0) + (Real.pi / 2 + gerverStageTimes 2))) = IntegrableOn fD + (Set.Ioc (Real.pi / 2 + gerverStageTimes 0) + (Real.pi / 2 + gerverStageTimes 2)) volume from rfl, hsplit] + exact hint0.union hint1 + · filter_upwards [hae] with u hu + rcases hu with hu | hu + · rw [hfD0 u hu] + exact hg0nn' _ ⟨by linarith [hu.1], by linarith [hu.2]⟩ + · rw [hfD1 u hu] + exact hg1nn' _ ⟨by linarith [hu.1], by linarith [hu.2]⟩ + · rw [angularDensityMeasure] + exact measure_restrict_eq_map_withDensity measurableSet_Ioc hstep + +theorem gerver_measureTranslation (K : SpecialCapSpace) (B D : ConvexBody Point) + (hK : (K.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) + (hB : (B : Set Point) = (canonicalTailSets K).1) + (hD : (D : Set Point) = (canonicalTailSets K).2) : + HasAngularDensity (surfaceAreaMeasure K.val.val) + (fun t ↦ inner ℝ (deriv (fun s ↦ paperGerverContacts s 0) t) + (tangentVector (t : Real.Angle))) (Set.Ico 0 (Real.pi / 2)) ∧ + HasAngularDensity (oppositeSurfaceData B).1 + (fun t ↦ inner ℝ (-(deriv (fun s ↦ paperGerverContacts s 1) t)) + (tangentVector (t : Real.Angle))) + (Set.Ico (gerverStageTimes 3) (gerverStageTimes 5)) ∧ + HasAngularDensity (surfaceAreaMeasure K.val.val) + (fun t ↦ inner ℝ (-(deriv (fun s ↦ paperGerverContacts s 2) (t - Real.pi / 2))) + (normalVector ((t - Real.pi / 2 : ℝ) : Real.Angle))) + (Set.Ioc (Real.pi / 2) Real.pi) ∧ + HasAngularDensity (oppositeSurfaceData D).1 + (fun t ↦ inner ℝ (deriv (fun s ↦ paperGerverContacts s 3) (t - Real.pi / 2)) + (normalVector ((t - Real.pi / 2 : ℝ) : Real.Angle))) + (Set.Ioc (Real.pi / 2 + gerverStageTimes 0) + (Real.pi / 2 + gerverStageTimes 2)) := by + exact ⟨gerver_angular_density_outer_first K hK, + gerver_angular_density_right_tail K B D hK hB hD, + gerver_angular_density_outer_second K hK, + gerver_angular_density_left_tail K B D hK hB hD⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The eight phase identities of Gerver's cap + +The ten Gerver phase intervals cut the angular window `[0, π]` at the five stage times and at +their reflections. On each of them the surface-area measure of the cap `K = C(G)` of Gerver's +sofa is one of: zero, the inner-corner measure `ι_K`, the opposite surface measure of one of the +two tail bodies, or a sum of the last two (`gerver_phaseMeasures`). + +Every clause is proved set-wise. The translated-measure proposition `gerver_measureTranslation` +presents the surface measure of the cap and the two opposite tail measures as angular densities +on the two half-windows, so each of them gives the angular image of a measurable subset of a +phase interval the Lebesgue integral of the corresponding contact derivative +(`HasAngularDensity.angleImage_eq_setLIntegral`), and the corner measure does the same with its +own density (`capCornerAngleMeasure_angleImage_eq_setLIntegral`). The five stagewise contact +equations `gerver_stageODEs` identify those densities on the interior of each stage, which is +almost all of it, and `Real.Angle.measure_restrict_image_congr_of_ae_eq` turns an +almost-everywhere identity of densities into an equality of the restricted measures. No atom +computation at the included stage endpoints is needed: a single parameter is Lebesgue-null and +the four measures are only ever evaluated through their densities. +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- The angular image of one of the ten phase intervals. -/ +def gerverPhaseAngles (j : Fin 10) : Set Real.Angle := + (fun t : ℝ ↦ (t : Real.Angle)) '' gerverPhaseIntervals j + +/-- The phase-by-phase surface-measure identities relating the cap, corner and two tail +bodies. -/ +def GerverPhaseMeasureIdentities (K : SpecialCapSpace) (B D : ConvexBody Point) : Prop := + (surfaceAreaMeasure K.val.val).restrict (gerverPhaseAngles 0) = 0 ∧ + (surfaceAreaMeasure K.val.val).restrict (gerverPhaseAngles 1 ∪ gerverPhaseAngles 2) = + (capCornerAngleMeasure K).restrict (gerverPhaseAngles 1 ∪ gerverPhaseAngles 2) ∧ + (surfaceAreaMeasure K.val.val).restrict (gerverPhaseAngles 3) = + ((oppositeSurfaceData B).1 + capCornerAngleMeasure K).restrict (gerverPhaseAngles 3) ∧ + (surfaceAreaMeasure K.val.val).restrict (gerverPhaseAngles 4) = + (oppositeSurfaceData B).1.restrict (gerverPhaseAngles 4) ∧ + (surfaceAreaMeasure K.val.val).restrict (gerverPhaseAngles 5) = + (oppositeSurfaceData D).1.restrict (gerverPhaseAngles 5) ∧ + (surfaceAreaMeasure K.val.val).restrict (gerverPhaseAngles 6) = + ((oppositeSurfaceData D).1 + capCornerAngleMeasure K).restrict (gerverPhaseAngles 6) ∧ + (surfaceAreaMeasure K.val.val).restrict (gerverPhaseAngles 7 ∪ gerverPhaseAngles 8) = + (capCornerAngleMeasure K).restrict (gerverPhaseAngles 7 ∪ gerverPhaseAngles 8) ∧ + (surfaceAreaMeasure K.val.val).restrict (gerverPhaseAngles 9) = 0 + +/-! ### The corner density of the cap of Gerver's sofa + +On each of the two open quarter turns the inner corner of the cap is the direct Gerver path +(`derivWithin_capInnerCorner_eq_deriv_paperGerverPath`), so the two branches of +`capCornerDensity` are the two velocity components `β` and `-α` of that path. -/ + +/-- On the first open quarter turn the corner density of the cap of Gerver's sofa is the +tangential velocity component of the direct Gerver path. -/ +theorem capCornerDensity_eq_velocity_tangential (K : SpecialCapSpace) + (hK : (K.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) {s : ℝ} + (hs : s ∈ Set.Ioo (0 : ℝ) (Real.pi / 2)) : + capCornerDensity K s = (paperGerverVelocityComponents s).2 := by + simp only [capCornerDensity] + split_ifs with h1 h2 + · simp only [capVelocityCoefficients, paperGerverVelocityComponents, + derivWithin_capInnerCorner_eq_deriv_paperGerverPath K.val hK hs] + · exact absurd ⟨hs.1, hs.2.le⟩ h1 + · exact absurd ⟨hs.1, hs.2.le⟩ h1 + +/-- On the second open quarter turn the corner density of the cap of Gerver's sofa is minus the +normal velocity component of the direct Gerver path, at the parameter shifted by a quarter +turn. -/ +theorem capCornerDensity_eq_neg_velocity_normal (K : SpecialCapSpace) + (hK : (K.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) {s : ℝ} + (hs : s ∈ Set.Ioo (Real.pi / 2) Real.pi) : + capCornerDensity K s = -(paperGerverVelocityComponents (s - Real.pi / 2)).1 := by + have hs' : s - Real.pi / 2 ∈ Set.Ioo (0 : ℝ) (Real.pi / 2) := + ⟨by linarith [hs.1], by linarith [hs.2]⟩ + simp only [capCornerDensity] + split_ifs with h1 h2 + · exact absurd h1.2 (not_le.2 hs.1) + · simp only [capVelocityCoefficients, paperGerverVelocityComponents, + derivWithin_capInnerCorner_eq_deriv_paperGerverPath K.val hK hs'] + · exact absurd ⟨hs.1, hs.2.le⟩ h2 + +private theorem gerver_contact_density_stage_identities + (fA fB fC fD : ℝ → ℝ) + (hfAdef : fA = fun t ↦ inner ℝ + (deriv (fun s ↦ paperGerverContacts s 0) t) (tangentVector (t : Real.Angle))) + (hfBdef : fB = fun t ↦ inner ℝ + (-(deriv (fun s ↦ paperGerverContacts s 1) t)) + (tangentVector (t : Real.Angle))) + (hfCdef : fC = fun t ↦ inner ℝ + (-(deriv (fun s ↦ paperGerverContacts s 2) (t - Real.pi / 2))) + (normalVector ((t - Real.pi / 2 : ℝ) : Real.Angle))) + (hfDdef : fD = fun t ↦ inner ℝ + (deriv (fun s ↦ paperGerverContacts s 3) (t - Real.pi / 2)) + (normalVector ((t - Real.pi / 2 : ℝ) : Real.Angle))) + : (∀ t ∈ Set.Ioo (0 : ℝ) GerversSofa.φ, + fA t = 0 ∧ fC (t + Real.pi / 2) = fD (t + Real.pi / 2)) ∧ + (∀ t ∈ Set.Ioo GerversSofa.φ GerversSofa.θ, + fA t = (paperGerverVelocityComponents t).2 ∧ + fC (t + Real.pi / 2) = + fD (t + Real.pi / 2) - (paperGerverVelocityComponents t).1) ∧ + (∀ t ∈ Set.Ioo GerversSofa.θ (Real.pi / 2 - GerversSofa.θ), + fA t = (paperGerverVelocityComponents t).2 ∧ + fC (t + Real.pi / 2) = -(paperGerverVelocityComponents t).1) ∧ + (∀ t ∈ Set.Ioo (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2 - GerversSofa.φ), + fA t = fB t + (paperGerverVelocityComponents t).2 ∧ + fC (t + Real.pi / 2) = -(paperGerverVelocityComponents t).1) ∧ + (∀ t ∈ Set.Ioo (Real.pi / 2 - GerversSofa.φ) (Real.pi / 2), + fA t = fB t ∧ fC (t + Real.pi / 2) = 0) := by + -- ### The five closed stage intervals + have hI0 : gerverStageIntervals 0 = Set.Icc 0 GerversSofa.φ := by + simp [gerverStageIntervals, gerverStageTimes] + have hI1 : gerverStageIntervals 1 = Set.Icc GerversSofa.φ GerversSofa.θ := by + simp [gerverStageIntervals, gerverStageTimes] + have hI2 : gerverStageIntervals 2 = + Set.Icc GerversSofa.θ (Real.pi / 2 - GerversSofa.θ) := by + simp [gerverStageIntervals, gerverStageTimes] + have hI3 : gerverStageIntervals 3 = + Set.Icc (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2 - GerversSofa.φ) := by + simp [gerverStageIntervals, gerverStageTimes] + have hI4 : gerverStageIntervals 4 = + Set.Icc (Real.pi / 2 - GerversSofa.φ) (Real.pi / 2) := by + simp [gerverStageIntervals, gerverStageTimes] + -- ### Inside an open stage the stagewise derivatives are the global ones + have hconv : ∀ (i : Fin 5) (a b t : ℝ), gerverStageIntervals i = Set.Icc a b → + a < t → t < b → + gerverStageContactDerivatives i t 0 = fA t ∧ + gerverStageContactDerivatives i t 1 = -fB t ∧ + gerverStageContactDerivatives i t 2 = fC (t + Real.pi / 2) ∧ + gerverStageContactDerivatives i t 3 = fD (t + Real.pi / 2) := by + intro i a b t hI ha hb + have hn : gerverStageIntervals i ∈ nhds t := by rw [hI]; exact Icc_mem_nhds ha hb + have e : ∀ k : Fin 4, + derivWithin (fun s ↦ paperGerverContacts s k) (gerverStageIntervals i) t = + deriv (fun s ↦ paperGerverContacts s k) t := fun _ ↦ derivWithin_of_mem_nhds hn + refine ⟨?_, ?_, ?_, ?_⟩ + · change inner ℝ (derivWithin (fun s ↦ paperGerverContacts s 0) (gerverStageIntervals i) t) + (tangentVector (t : Real.Angle)) = fA t + rw [e 0, hfAdef] + · change inner ℝ (derivWithin (fun s ↦ paperGerverContacts s 1) (gerverStageIntervals i) t) + (tangentVector (t : Real.Angle)) = -fB t + rw [e 1, hfBdef] + simp [inner_neg_left] + · change inner ℝ (-derivWithin (fun s ↦ paperGerverContacts s 2) (gerverStageIntervals i) t) + (normalVector (t : Real.Angle)) = fC (t + Real.pi / 2) + rw [e 2, hfCdef] + simp + · change inner ℝ (derivWithin (fun s ↦ paperGerverContacts s 3) (gerverStageIntervals i) t) + (normalVector (t : Real.Angle)) = fD (t + Real.pi / 2) + rw [e 3, hfDdef] + simp + -- ### The five stage coefficient identities, at interior parameters + have hode : ∀ (i : Fin 5) (a b t : ℝ), gerverStageIntervals i = Set.Icc a b → + a < t → t < b → + (gerverStageContactDerivatives i t 0, gerverStageContactDerivatives i t 2) = + ![(0, gerverStageContactDerivatives i t 3), + ((paperGerverVelocityComponents t).2, + gerverStageContactDerivatives i t 3 - (paperGerverVelocityComponents t).1), + ((paperGerverVelocityComponents t).2, -(paperGerverVelocityComponents t).1), + (-gerverStageContactDerivatives i t 1 + (paperGerverVelocityComponents t).2, + -(paperGerverVelocityComponents t).1), + (-gerverStageContactDerivatives i t 1, 0)] i := + fun i a b t hI ha hb ↦ gerver_stageODEs i t (by rw [hI]; exact ⟨ha.le, hb.le⟩) + have hs0 : ∀ t ∈ Set.Ioo (0 : ℝ) GerversSofa.φ, + fA t = 0 ∧ fC (t + Real.pi / 2) = fD (t + Real.pi / 2) := by + intro t ht + obtain ⟨e0, -, e2, e3⟩ := hconv 0 _ _ t hI0 ht.1 ht.2 + have h := hode 0 _ _ t hI0 ht.1 ht.2 + simp only [Matrix.cons_val, Prod.mk.injEq] at h + exact ⟨e0.symm.trans h.1, e2.symm.trans (h.2.trans e3)⟩ + have hs1 : ∀ t ∈ Set.Ioo GerversSofa.φ GerversSofa.θ, + fA t = (paperGerverVelocityComponents t).2 ∧ + fC (t + Real.pi / 2) = + fD (t + Real.pi / 2) - (paperGerverVelocityComponents t).1 := by + intro t ht + obtain ⟨e0, -, e2, e3⟩ := hconv 1 _ _ t hI1 ht.1 ht.2 + have h := hode 1 _ _ t hI1 ht.1 ht.2 + simp only [Matrix.cons_val, Prod.mk.injEq] at h + exact ⟨e0.symm.trans h.1, e2.symm.trans (h.2.trans (by rw [e3]))⟩ + have hs2 : ∀ t ∈ Set.Ioo GerversSofa.θ (Real.pi / 2 - GerversSofa.θ), + fA t = (paperGerverVelocityComponents t).2 ∧ + fC (t + Real.pi / 2) = -(paperGerverVelocityComponents t).1 := by + intro t ht + obtain ⟨e0, -, e2, -⟩ := hconv 2 _ _ t hI2 ht.1 ht.2 + have h := hode 2 _ _ t hI2 ht.1 ht.2 + simp only [Matrix.cons_val, Prod.mk.injEq] at h + exact ⟨e0.symm.trans h.1, e2.symm.trans h.2⟩ + have hs3 : ∀ t ∈ Set.Ioo (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2 - GerversSofa.φ), + fA t = fB t + (paperGerverVelocityComponents t).2 ∧ + fC (t + Real.pi / 2) = -(paperGerverVelocityComponents t).1 := by + intro t ht + obtain ⟨e0, e1, e2, -⟩ := hconv 3 _ _ t hI3 ht.1 ht.2 + have h := hode 3 _ _ t hI3 ht.1 ht.2 + simp only [Matrix.cons_val, Prod.mk.injEq] at h + refine ⟨e0.symm.trans (h.1.trans ?_), e2.symm.trans h.2⟩ + rw [e1, neg_neg] + have hs4 : ∀ t ∈ Set.Ioo (Real.pi / 2 - GerversSofa.φ) (Real.pi / 2), + fA t = fB t ∧ fC (t + Real.pi / 2) = 0 := by + intro t ht + obtain ⟨e0, e1, e2, -⟩ := hconv 4 _ _ t hI4 ht.1 ht.2 + have h := hode 4 _ _ t hI4 ht.1 ht.2 + simp only [Matrix.cons_val, Prod.mk.injEq] at h + refine ⟨e0.symm.trans (h.1.trans ?_), e2.symm.trans h.2⟩ + rw [e1, neg_neg] + exact ⟨hs0, hs1, hs2, hs3, hs4⟩ + +private theorem gerver_phaseMeasures_first_half (K : SpecialCapSpace) (B D : ConvexBody Point) + (hK : (K.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) + (hB : (B : Set Point) = (canonicalTailSets K).1) + (hD : (D : Set Point) = (canonicalTailSets K).2) : + (surfaceAreaMeasure K.val.val).restrict (gerverPhaseAngles 0) = 0 ∧ + (surfaceAreaMeasure K.val.val).restrict (gerverPhaseAngles 1 ∪ gerverPhaseAngles 2) = + (capCornerAngleMeasure K).restrict (gerverPhaseAngles 1 ∪ gerverPhaseAngles 2) ∧ + (surfaceAreaMeasure K.val.val).restrict (gerverPhaseAngles 3) = + ((oppositeSurfaceData B).1 + capCornerAngleMeasure K).restrict (gerverPhaseAngles 3) ∧ + (surfaceAreaMeasure K.val.val).restrict (gerverPhaseAngles 4) = + (oppositeSurfaceData B).1.restrict (gerverPhaseAngles 4) := by + -- ### The six stage endpoints, written out + have hmono := gerverStageTimes_strictMono + have h01 := hmono (show (0 : Fin 6) < 1 by decide) + have h12 := hmono (show (1 : Fin 6) < 2 by decide) + have h23 := hmono (show (2 : Fin 6) < 3 by decide) + have h34 := hmono (show (3 : Fin 6) < 4 by decide) + have h45 := hmono (show (4 : Fin 6) < 5 by decide) + simp only [gerverStageTimes, Matrix.cons_val] at h01 h12 h23 h34 h45 + have hpi : (3 : ℝ) < Real.pi := Real.pi_gt_three + have hturn : Real.pi ≤ -1 + 2 * Real.pi := by linarith + -- ### The five relevant phase intervals + have hJ0 : gerverPhaseIntervals 0 = Set.Ico 0 GerversSofa.φ := + gerverPhaseIntervals_explicit 0 + have hJ1 : gerverPhaseIntervals 1 = Set.Ico GerversSofa.φ GerversSofa.θ := + gerverPhaseIntervals_explicit 1 + have hJ2 : gerverPhaseIntervals 2 = + Set.Ico GerversSofa.θ (Real.pi / 2 - GerversSofa.θ) := + gerverPhaseIntervals_explicit 2 + have hJ3 : gerverPhaseIntervals 3 = + Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2 - GerversSofa.φ) := + gerverPhaseIntervals_explicit 3 + have hJ4 : gerverPhaseIntervals 4 = + Set.Ico (Real.pi / 2 - GerversSofa.φ) (Real.pi / 2) := + gerverPhaseIntervals_explicit 4 + -- ### The four contact densities of the translated-measure proposition + have hd := gerver_measureTranslation K B D hK hB hD + obtain ⟨fA, hfAdef⟩ : ∃ f : ℝ → ℝ, f = fun t ↦ inner ℝ + (deriv (fun s ↦ paperGerverContacts s 0) t) (tangentVector (t : Real.Angle)) := ⟨_, rfl⟩ + obtain ⟨fB, hfBdef⟩ : ∃ f : ℝ → ℝ, f = fun t ↦ inner ℝ + (-(deriv (fun s ↦ paperGerverContacts s 1) t)) + (tangentVector (t : Real.Angle)) := ⟨_, rfl⟩ + obtain ⟨fC, hfCdef⟩ : ∃ f : ℝ → ℝ, f = fun t ↦ inner ℝ + (-(deriv (fun s ↦ paperGerverContacts s 2) (t - Real.pi / 2))) + (normalVector ((t - Real.pi / 2 : ℝ) : Real.Angle)) := ⟨_, rfl⟩ + obtain ⟨fD, hfDdef⟩ : ∃ f : ℝ → ℝ, f = fun t ↦ inner ℝ + (deriv (fun s ↦ paperGerverContacts s 3) (t - Real.pi / 2)) + (normalVector ((t - Real.pi / 2 : ℝ) : Real.Angle)) := ⟨_, rfl⟩ + rw [← hfAdef, ← hfBdef, ← hfCdef, ← hfDdef, + show Set.Ico (gerverStageTimes 3) (gerverStageTimes 5) = + Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2) from by simp [gerverStageTimes], + show Set.Ioc (Real.pi / 2 + gerverStageTimes 0) (Real.pi / 2 + gerverStageTimes 2) = + Set.Ioc (Real.pi / 2) (Real.pi / 2 + GerversSofa.θ) from by simp [gerverStageTimes]] at hd + obtain ⟨hdA, hdB, -, -⟩ := hd + -- ### The two relevant density windows sit inside a single turn + have hsubA : Set.Ico (0 : ℝ) (Real.pi / 2) ⊆ Set.Ioc (-1 : ℝ) Real.pi := + fun x hx ↦ ⟨by linarith [hx.1], by linarith [hx.2]⟩ + have hsubB : Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2) ⊆ + Set.Ioc (-1 : ℝ) Real.pi := fun x hx ↦ ⟨by linarith [hx.1], by linarith [hx.2]⟩ + obtain ⟨hs0, hs1, hs2, hs3, hs4⟩ := + gerver_contact_density_stage_identities fA fB fC fD hfAdef hfBdef hfCdef hfDdef + -- ### The strict interior signs of the injectivity condition of the given special cap + have hβ : ∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + 0 ≤ (paperGerverVelocityComponents t).2 := by + intro t ht + have h := (K.2.1.2.2 t ht).2 + rw [derivWithin_capInnerCorner_eq_deriv_paperGerverPath K.val hK ht] at h + exact h.le + refine ⟨?_, ?_, ?_, ?_⟩ + · have hsub : Set.Ico (0 : ℝ) GerversSofa.φ ⊆ Set.Ico (0 : ℝ) (Real.pi / 2) := + fun x hx ↦ ⟨hx.1, by linarith [hx.2]⟩ + simp only [gerverPhaseAngles, hJ0] + rw [Measure.restrict_eq_zero, + hdA.angleImage_eq_setLIntegral hturn hsubA measurableSet_Ico hsub] + refine (lintegral_congr_ae ?_).trans lintegral_zero + filter_upwards [ae_restrict_Ico_mem_Ioo (μ := volume) 0 GerversSofa.φ] with t ht + rw [(hs0 t ht).1, ENNReal.ofReal_zero] + · have hsub : Set.Ico GerversSofa.φ (Real.pi / 2 - GerversSofa.θ) ⊆ + Set.Ico (0 : ℝ) (Real.pi / 2) := + fun x hx ↦ ⟨by linarith [hx.1], by linarith [hx.2]⟩ + have hsubI : Set.Ico GerversSofa.φ (Real.pi / 2 - GerversSofa.θ) ⊆ + Set.Icc (0 : ℝ) Real.pi := + fun x hx ↦ ⟨by linarith [hx.1], by linarith [hx.2]⟩ + have hU : gerverPhaseAngles 1 ∪ gerverPhaseAngles 2 = + (fun s : ℝ ↦ (s : Real.Angle)) '' + Set.Ico GerversSofa.φ (Real.pi / 2 - GerversSofa.θ) := by + simp only [gerverPhaseAngles, hJ1, hJ2, ← Set.image_union, + Set.Ico_union_Ico_eq_Ico h12.le h23.le] + rw [hU] + refine Real.Angle.measure_restrict_image_congr_of_ae_eq measurableSet_Ico + (fun T hT hTsub ↦ hdA.angleImage_eq_setLIntegral hturn hsubA hT (hTsub.trans hsub)) + (fun T hT hTsub ↦ capCornerAngleMeasure_angleImage_eq_setLIntegral K hT + (hTsub.trans hsubI)) ?_ + filter_upwards [ae_restrict_Ico_mem_Ioo_union_Ioo (μ := volume) GerversSofa.φ GerversSofa.θ + (Real.pi / 2 - GerversSofa.θ)] with t ht + rcases ht with ht | ht + · rw [(hs1 t ht).1, + capCornerDensity_eq_velocity_tangential K hK ⟨by linarith [ht.1], by linarith [ht.2]⟩] + · rw [(hs2 t ht).1, + capCornerDensity_eq_velocity_tangential K hK ⟨by linarith [ht.1], by linarith [ht.2]⟩] + · have hsub : Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2 - GerversSofa.φ) ⊆ + Set.Ico (0 : ℝ) (Real.pi / 2) := + fun x hx ↦ ⟨by linarith [hx.1], by linarith [hx.2]⟩ + have hsubB' : Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2 - GerversSofa.φ) ⊆ + Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2) := + fun x hx ↦ ⟨hx.1, by linarith [hx.2]⟩ + have hsubI : Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2 - GerversSofa.φ) ⊆ + Set.Icc (0 : ℝ) Real.pi := + fun x hx ↦ ⟨by linarith [hx.1], by linarith [hx.2]⟩ + have hsubO : Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2 - GerversSofa.φ) ⊆ + Set.Ioo (0 : ℝ) (Real.pi / 2) := + fun x hx ↦ ⟨by linarith [hx.1], by linarith [hx.2]⟩ + have hcorner : ∀ T, MeasurableSet T → + T ⊆ Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2 - GerversSofa.φ) → + capCornerAngleMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' T) = + ∫⁻ t in T, ENNReal.ofReal ((paperGerverVelocityComponents t).2) ∂volume := by + intro T hT hTsub + rw [capCornerAngleMeasure_angleImage_eq_setLIntegral K hT (hTsub.trans hsubI)] + exact setLIntegral_congr_fun hT fun t ht ↦ by + rw [capCornerDensity_eq_velocity_tangential K hK (hsubO (hTsub ht))] + have hf0 : ∀ᵐ t ∂volume.restrict + (Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2 - GerversSofa.φ)), 0 ≤ fB t := + ae_restrict_of_ae_restrict_of_subset hsubB' hdB.2.1 + have hg0 : ∀ᵐ t ∂volume.restrict + (Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2 - GerversSofa.φ)), + 0 ≤ (paperGerverVelocityComponents t).2 := by + filter_upwards [ae_restrict_mem measurableSet_Ico] with t ht using hβ t (hsubO ht) + have hsum : ∀ᵐ t ∂volume.restrict + (Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2 - GerversSofa.φ)), + fA t = fB t + (paperGerverVelocityComponents t).2 := by + filter_upwards [ae_restrict_Ico_mem_Ioo (μ := volume) (Real.pi / 2 - GerversSofa.θ) + (Real.pi / 2 - GerversSofa.φ)] with t ht using (hs3 t ht).1 + simp only [gerverPhaseAngles, hJ3] + exact Real.Angle.measure_restrict_image_congr_add measurableSet_Ico + (fun T hT hTsub ↦ hdA.angleImage_eq_setLIntegral hturn hsubA hT (hTsub.trans hsub)) + (fun T hT hTsub ↦ hdB.angleImage_eq_setLIntegral hturn hsubB hT (hTsub.trans hsubB')) + hcorner (hdB.1.aemeasurable.mono_measure (Measure.restrict_mono hsubB' le_rfl)) + hf0 hg0 hsum + · have hsub : Set.Ico (Real.pi / 2 - GerversSofa.φ) (Real.pi / 2) ⊆ + Set.Ico (0 : ℝ) (Real.pi / 2) := fun x hx ↦ ⟨by linarith [hx.1], hx.2⟩ + have hsubB' : Set.Ico (Real.pi / 2 - GerversSofa.φ) (Real.pi / 2) ⊆ + Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2) := + fun x hx ↦ ⟨by linarith [hx.1], hx.2⟩ + simp only [gerverPhaseAngles, hJ4] + refine Real.Angle.measure_restrict_image_congr_of_ae_eq measurableSet_Ico + (fun T hT hTsub ↦ hdA.angleImage_eq_setLIntegral hturn hsubA hT (hTsub.trans hsub)) + (fun T hT hTsub ↦ hdB.angleImage_eq_setLIntegral hturn hsubB hT (hTsub.trans hsubB')) ?_ + filter_upwards [ae_restrict_Ico_mem_Ioo (μ := volume) (Real.pi / 2 - GerversSofa.φ) + (Real.pi / 2)] with t ht + rw [(hs4 t ht).1] + +private theorem gerver_phaseMeasures_second_half (K : SpecialCapSpace) (B D : ConvexBody Point) + (hK : (K.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) + (hB : (B : Set Point) = (canonicalTailSets K).1) + (hD : (D : Set Point) = (canonicalTailSets K).2) : + (surfaceAreaMeasure K.val.val).restrict (gerverPhaseAngles 5) = + (oppositeSurfaceData D).1.restrict (gerverPhaseAngles 5) ∧ + (surfaceAreaMeasure K.val.val).restrict (gerverPhaseAngles 6) = + ((oppositeSurfaceData D).1 + capCornerAngleMeasure K).restrict (gerverPhaseAngles 6) ∧ + (surfaceAreaMeasure K.val.val).restrict (gerverPhaseAngles 7 ∪ gerverPhaseAngles 8) = + (capCornerAngleMeasure K).restrict (gerverPhaseAngles 7 ∪ gerverPhaseAngles 8) ∧ + (surfaceAreaMeasure K.val.val).restrict (gerverPhaseAngles 9) = 0 := by + -- ### The six stage endpoints, written out + have hmono := gerverStageTimes_strictMono + have h01 := hmono (show (0 : Fin 6) < 1 by decide) + have h12 := hmono (show (1 : Fin 6) < 2 by decide) + have h23 := hmono (show (2 : Fin 6) < 3 by decide) + have h34 := hmono (show (3 : Fin 6) < 4 by decide) + have h45 := hmono (show (4 : Fin 6) < 5 by decide) + simp only [gerverStageTimes, Matrix.cons_val] at h01 h12 h23 h34 h45 + have hpi : (3 : ℝ) < Real.pi := Real.pi_gt_three + have hturn : Real.pi ≤ -1 + 2 * Real.pi := by linarith + -- ### The five relevant phase intervals + have hJ5 : gerverPhaseIntervals 5 = + Set.Ioc (Real.pi / 2) (Real.pi / 2 + GerversSofa.φ) := + gerverPhaseIntervals_explicit 5 + have hJ6 : gerverPhaseIntervals 6 = + Set.Ioc (Real.pi / 2 + GerversSofa.φ) (Real.pi / 2 + GerversSofa.θ) := + gerverPhaseIntervals_explicit 6 + have hJ7 : gerverPhaseIntervals 7 = + Set.Ioc (Real.pi / 2 + GerversSofa.θ) (Real.pi - GerversSofa.θ) := + gerverPhaseIntervals_explicit 7 + have hJ8 : gerverPhaseIntervals 8 = + Set.Ioc (Real.pi - GerversSofa.θ) (Real.pi - GerversSofa.φ) := + gerverPhaseIntervals_explicit 8 + have hJ9 : gerverPhaseIntervals 9 = Set.Ioc (Real.pi - GerversSofa.φ) Real.pi := + gerverPhaseIntervals_explicit 9 + -- ### The four contact densities of the translated-measure proposition + have hd := gerver_measureTranslation K B D hK hB hD + obtain ⟨fA, hfAdef⟩ : ∃ f : ℝ → ℝ, f = fun t ↦ inner ℝ + (deriv (fun s ↦ paperGerverContacts s 0) t) (tangentVector (t : Real.Angle)) := ⟨_, rfl⟩ + obtain ⟨fB, hfBdef⟩ : ∃ f : ℝ → ℝ, f = fun t ↦ inner ℝ + (-(deriv (fun s ↦ paperGerverContacts s 1) t)) + (tangentVector (t : Real.Angle)) := ⟨_, rfl⟩ + obtain ⟨fC, hfCdef⟩ : ∃ f : ℝ → ℝ, f = fun t ↦ inner ℝ + (-(deriv (fun s ↦ paperGerverContacts s 2) (t - Real.pi / 2))) + (normalVector ((t - Real.pi / 2 : ℝ) : Real.Angle)) := ⟨_, rfl⟩ + obtain ⟨fD, hfDdef⟩ : ∃ f : ℝ → ℝ, f = fun t ↦ inner ℝ + (deriv (fun s ↦ paperGerverContacts s 3) (t - Real.pi / 2)) + (normalVector ((t - Real.pi / 2 : ℝ) : Real.Angle)) := ⟨_, rfl⟩ + rw [← hfAdef, ← hfBdef, ← hfCdef, ← hfDdef, + show Set.Ico (gerverStageTimes 3) (gerverStageTimes 5) = + Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2) from by simp [gerverStageTimes], + show Set.Ioc (Real.pi / 2 + gerverStageTimes 0) (Real.pi / 2 + gerverStageTimes 2) = + Set.Ioc (Real.pi / 2) (Real.pi / 2 + GerversSofa.θ) from by simp [gerverStageTimes]] at hd + obtain ⟨-, -, hdC, hdD⟩ := hd + -- ### The two relevant density windows sit inside a single turn + have hsubC : Set.Ioc (Real.pi / 2) Real.pi ⊆ Set.Ioc (-1 : ℝ) Real.pi := + fun x hx ↦ ⟨by linarith [hx.1], hx.2⟩ + have hsubD : Set.Ioc (Real.pi / 2) (Real.pi / 2 + GerversSofa.θ) ⊆ + Set.Ioc (-1 : ℝ) Real.pi := fun x hx ↦ ⟨by linarith [hx.1], by linarith [hx.2]⟩ + obtain ⟨hs0, hs1, hs2, hs3, hs4⟩ := + gerver_contact_density_stage_identities fA fB fC fD hfAdef hfBdef hfCdef hfDdef + -- ### The strict interior signs of the injectivity condition of the given special cap + have hα : ∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + 0 ≤ -(paperGerverVelocityComponents t).1 := by + intro t ht + have h := (K.2.1.2.2 t ht).1 + rw [derivWithin_capInnerCorner_eq_deriv_paperGerverPath K.val hK ht] at h + exact neg_nonneg.2 h.le + refine ⟨?_, ?_, ?_, ?_⟩ + · have hsub : Set.Ioc (Real.pi / 2) (Real.pi / 2 + GerversSofa.φ) ⊆ + Set.Ioc (Real.pi / 2) Real.pi := fun x hx ↦ ⟨hx.1, by linarith [hx.2]⟩ + have hsubD' : Set.Ioc (Real.pi / 2) (Real.pi / 2 + GerversSofa.φ) ⊆ + Set.Ioc (Real.pi / 2) (Real.pi / 2 + GerversSofa.θ) := + fun x hx ↦ ⟨hx.1, by linarith [hx.2]⟩ + simp only [gerverPhaseAngles, hJ5] + refine Real.Angle.measure_restrict_image_congr_of_ae_eq measurableSet_Ioc + (fun T hT hTsub ↦ hdC.angleImage_eq_setLIntegral hturn hsubC hT (hTsub.trans hsub)) + (fun T hT hTsub ↦ hdD.angleImage_eq_setLIntegral hturn hsubD hT (hTsub.trans hsubD')) ?_ + filter_upwards [ae_restrict_Ioc_mem_Ioo (μ := volume) (Real.pi / 2) + (Real.pi / 2 + GerversSofa.φ)] with u hu + have h := (hs0 (u - Real.pi / 2) ⟨by linarith [hu.1], by linarith [hu.2]⟩).2 + rw [show u - Real.pi / 2 + Real.pi / 2 = u from by ring] at h + rw [h] + · have hsub : Set.Ioc (Real.pi / 2 + GerversSofa.φ) (Real.pi / 2 + GerversSofa.θ) ⊆ + Set.Ioc (Real.pi / 2) Real.pi := + fun x hx ↦ ⟨by linarith [hx.1], by linarith [hx.2]⟩ + have hsubD' : Set.Ioc (Real.pi / 2 + GerversSofa.φ) (Real.pi / 2 + GerversSofa.θ) ⊆ + Set.Ioc (Real.pi / 2) (Real.pi / 2 + GerversSofa.θ) := + fun x hx ↦ ⟨by linarith [hx.1], hx.2⟩ + have hsubI : Set.Ioc (Real.pi / 2 + GerversSofa.φ) (Real.pi / 2 + GerversSofa.θ) ⊆ + Set.Icc (0 : ℝ) Real.pi := + fun x hx ↦ ⟨by linarith [hx.1], by linarith [hx.2]⟩ + have hsubO : Set.Ioc (Real.pi / 2 + GerversSofa.φ) (Real.pi / 2 + GerversSofa.θ) ⊆ + Set.Ioo (Real.pi / 2) Real.pi := + fun x hx ↦ ⟨by linarith [hx.1], by linarith [hx.2]⟩ + have hcorner : ∀ T, MeasurableSet T → + T ⊆ Set.Ioc (Real.pi / 2 + GerversSofa.φ) (Real.pi / 2 + GerversSofa.θ) → + capCornerAngleMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' T) = + ∫⁻ u in T, + ENNReal.ofReal (-(paperGerverVelocityComponents (u - Real.pi / 2)).1) ∂volume := by + intro T hT hTsub + rw [capCornerAngleMeasure_angleImage_eq_setLIntegral K hT (hTsub.trans hsubI)] + exact setLIntegral_congr_fun hT fun u hu ↦ by + rw [capCornerDensity_eq_neg_velocity_normal K hK (hsubO (hTsub hu))] + have hf0 : ∀ᵐ u ∂volume.restrict + (Set.Ioc (Real.pi / 2 + GerversSofa.φ) (Real.pi / 2 + GerversSofa.θ)), 0 ≤ fD u := + ae_restrict_of_ae_restrict_of_subset hsubD' hdD.2.1 + have hg0 : ∀ᵐ u ∂volume.restrict + (Set.Ioc (Real.pi / 2 + GerversSofa.φ) (Real.pi / 2 + GerversSofa.θ)), + 0 ≤ -(paperGerverVelocityComponents (u - Real.pi / 2)).1 := by + filter_upwards [ae_restrict_mem measurableSet_Ioc] with u hu + exact hα _ ⟨by linarith [hu.1], by linarith [hu.2]⟩ + have hsum : ∀ᵐ u ∂volume.restrict + (Set.Ioc (Real.pi / 2 + GerversSofa.φ) (Real.pi / 2 + GerversSofa.θ)), + fC u = fD u + -(paperGerverVelocityComponents (u - Real.pi / 2)).1 := by + filter_upwards [ae_restrict_Ioc_mem_Ioo (μ := volume) (Real.pi / 2 + GerversSofa.φ) + (Real.pi / 2 + GerversSofa.θ)] with u hu + have h := (hs1 (u - Real.pi / 2) ⟨by linarith [hu.1], by linarith [hu.2]⟩).2 + rw [show u - Real.pi / 2 + Real.pi / 2 = u from by ring] at h + rw [h] + ring + simp only [gerverPhaseAngles, hJ6] + exact Real.Angle.measure_restrict_image_congr_add measurableSet_Ioc + (fun T hT hTsub ↦ hdC.angleImage_eq_setLIntegral hturn hsubC hT (hTsub.trans hsub)) + (fun T hT hTsub ↦ hdD.angleImage_eq_setLIntegral hturn hsubD hT (hTsub.trans hsubD')) + hcorner (hdD.1.aemeasurable.mono_measure (Measure.restrict_mono hsubD' le_rfl)) + hf0 hg0 hsum + · have hsub : Set.Ioc (Real.pi / 2 + GerversSofa.θ) (Real.pi - GerversSofa.φ) ⊆ + Set.Ioc (Real.pi / 2) Real.pi := + fun x hx ↦ ⟨by linarith [hx.1], by linarith [hx.2]⟩ + have hsubI : Set.Ioc (Real.pi / 2 + GerversSofa.θ) (Real.pi - GerversSofa.φ) ⊆ + Set.Icc (0 : ℝ) Real.pi := + fun x hx ↦ ⟨by linarith [hx.1], by linarith [hx.2]⟩ + have hU : gerverPhaseAngles 7 ∪ gerverPhaseAngles 8 = + (fun s : ℝ ↦ (s : Real.Angle)) '' + Set.Ioc (Real.pi / 2 + GerversSofa.θ) (Real.pi - GerversSofa.φ) := by + simp only [gerverPhaseAngles, hJ7, hJ8, ← Set.image_union, + Set.Ioc_union_Ioc_eq_Ioc (by linarith : Real.pi / 2 + GerversSofa.θ ≤ + Real.pi - GerversSofa.θ) (by linarith : Real.pi - GerversSofa.θ ≤ + Real.pi - GerversSofa.φ)] + rw [hU] + refine Real.Angle.measure_restrict_image_congr_of_ae_eq measurableSet_Ioc + (fun T hT hTsub ↦ hdC.angleImage_eq_setLIntegral hturn hsubC hT (hTsub.trans hsub)) + (fun T hT hTsub ↦ capCornerAngleMeasure_angleImage_eq_setLIntegral K hT + (hTsub.trans hsubI)) ?_ + filter_upwards [ae_restrict_Ioc_mem_Ioo_union_Ioo (μ := volume) + (Real.pi / 2 + GerversSofa.θ) (Real.pi - GerversSofa.θ) + (Real.pi - GerversSofa.φ)] with u hu + have hmem : u ∈ Set.Ioo (Real.pi / 2) Real.pi := by + rcases hu with hu | hu + · exact ⟨by linarith [hu.1], by linarith [hu.2]⟩ + · exact ⟨by linarith [hu.1], by linarith [hu.2]⟩ + rw [capCornerDensity_eq_neg_velocity_normal K hK hmem] + rcases hu with hu | hu + · have h := (hs2 (u - Real.pi / 2) ⟨by linarith [hu.1], by linarith [hu.2]⟩).2 + rw [show u - Real.pi / 2 + Real.pi / 2 = u from by ring] at h + rw [h] + · have h := (hs3 (u - Real.pi / 2) ⟨by linarith [hu.1], by linarith [hu.2]⟩).2 + rw [show u - Real.pi / 2 + Real.pi / 2 = u from by ring] at h + rw [h] + · have hsub : Set.Ioc (Real.pi - GerversSofa.φ) Real.pi ⊆ + Set.Ioc (Real.pi / 2) Real.pi := fun x hx ↦ ⟨by linarith [hx.1], hx.2⟩ + simp only [gerverPhaseAngles, hJ9] + rw [Measure.restrict_eq_zero, + hdC.angleImage_eq_setLIntegral hturn hsubC measurableSet_Ioc hsub] + refine (lintegral_congr_ae ?_).trans lintegral_zero + filter_upwards [ae_restrict_Ioc_mem_Ioo (μ := volume) (Real.pi - GerversSofa.φ) + Real.pi] with u hu + have h := (hs4 (u - Real.pi / 2) ⟨by linarith [hu.1], by linarith [hu.2]⟩).2 + rw [show u - Real.pi / 2 + Real.pi / 2 = u from by ring] at h + rw [h, ENNReal.ofReal_zero] + +theorem gerver_phaseMeasures (K : SpecialCapSpace) (B D : ConvexBody Point) + (hK : (K.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) + (hB : (B : Set Point) = (canonicalTailSets K).1) + (hD : (D : Set Point) = (canonicalTailSets K).2) : + GerverPhaseMeasureIdentities K B D := by + obtain ⟨h0, h1, h2, h3⟩ := gerver_phaseMeasures_first_half K B D hK hB hD + obtain ⟨h4, h5, h6, h7⟩ := gerver_phaseMeasures_second_half K B D hK hB hD + exact ⟨h0, h1, h2, h3, h4, h5, h6, h7⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Integrating the variation of `𝒬` over the Gerver phases + +The ten phase windows `gerverPhaseAngles j` partition the angular window `[0, π]` except for the +single angle `π/2`, and six of them cover the domain of the inner-corner measure except for two +angles. Since the cap surface measure integrates a continuous integrand and the corner measure +has no atoms, `qVariationIntegral_eq_phaseSum` rewrites the four integrals of the variation +formula as the eight contributions of the source table (`gerverPhaseContribution`), grouped so +that `gerver_phaseMeasures` applies to each of them. + +`gerverPhaseContribution_nonpos` then signs each contribution. Six of the eight vanish or cancel +outright against the corner measure; on the two active right windows and the two active left +windows the phase identities turn the remaining cap measure into the tail measure, and the +resulting integrand is the difference between the competitor's support sum and the base support +sum, which is `≤ 1 - 1 = 0` by the cap-tail constraints. +-/ + +/-! ### The angular phase windows are measurable -/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- Each of the ten angular phase windows of Gerver's cap is a Borel set. -/ +theorem measurableSet_gerverPhaseAngles (j : Fin 10) : MeasurableSet (gerverPhaseAngles j) := by + have hmono := gerverStageTimes_strictMono + have h01 := hmono (show (0 : Fin 6) < 1 by decide) + have h12 := hmono (show (1 : Fin 6) < 2 by decide) + have h23 := hmono (show (2 : Fin 6) < 3 by decide) + have h34 := hmono (show (3 : Fin 6) < 4 by decide) + have h45 := hmono (show (4 : Fin 6) < 5 by decide) + simp only [gerverStageTimes, Matrix.cons_val] at h01 h12 h23 h34 h45 + have hpi : (3 : ℝ) < Real.pi := Real.pi_gt_three + have hturn : Real.pi ≤ -1 + 2 * Real.pi := by linarith + simp only [gerverPhaseAngles, gerverPhaseIntervals_explicit] + fin_cases j <;> + refine Real.Angle.measurableSet_image_of_subset_Ioc hturn + (by first | exact measurableSet_Ico | exact measurableSet_Ioc) ?_ <;> + exact fun x hx ↦ ⟨by linarith [hx.1, hx.2], by linarith [hx.1, hx.2]⟩ + +/-! ### The phase windows partition the upper half-circle -/ + +private theorem injOn_angleCoe_Icc_zero_pi : + Set.InjOn (fun t : ℝ ↦ (t : Real.Angle)) (Set.Icc 0 Real.pi) := by + have hsub : Set.Icc (0 : ℝ) Real.pi ⊆ Set.Ioc (-1 : ℝ) Real.pi := + fun x hx ↦ ⟨by linarith [hx.1, Real.pi_pos], hx.2⟩ + exact (Real.Angle.injOn_coe_Ioc (by linarith [Real.pi_gt_three])).mono hsub + +private theorem iUnion_gerverPhaseIntervals : + (⋃ j, gerverPhaseIntervals j) = + Set.Ico 0 (Real.pi / 2) ∪ Set.Ioc (Real.pi / 2) Real.pi := by + have horder := gerverStageTimes_strictMono + have h01 := horder (show (0 : Fin 6) < 1 by decide) + have h12 := horder (show (1 : Fin 6) < 2 by decide) + have h23 := horder (show (2 : Fin 6) < 3 by decide) + have h34 := horder (show (3 : Fin 6) < 4 by decide) + have h45 := horder (show (4 : Fin 6) < 5 by decide) + simp only [gerverStageTimes, Matrix.cons_val] at h01 h12 h23 h34 h45 + simp only [gerverPhaseIntervals_explicit] + simp only [Set.iUnion_fin_add_one_eq_iUnion_succ, Function.comp_def, + Matrix.cons_val_zero, Matrix.cons_val_succ, Set.iUnion_of_empty, Set.union_empty] + have hlo : (((Set.Ico 0 GerversSofa.φ ∪ Set.Ico GerversSofa.φ GerversSofa.θ) ∪ + Set.Ico GerversSofa.θ (Real.pi / 2 - GerversSofa.θ)) ∪ + Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2 - GerversSofa.φ)) ∪ + Set.Ico (Real.pi / 2 - GerversSofa.φ) (Real.pi / 2) = + Set.Ico 0 (Real.pi / 2) := by + rw [Set.Ico_union_Ico_eq_Ico h01.le h12.le, + Set.Ico_union_Ico_eq_Ico (by linarith) h23.le, + Set.Ico_union_Ico_eq_Ico (by linarith) h34.le, + Set.Ico_union_Ico_eq_Ico (by linarith) h45.le] + have hhi : (((Set.Ioc (Real.pi / 2) (Real.pi / 2 + GerversSofa.φ) ∪ + Set.Ioc (Real.pi / 2 + GerversSofa.φ) (Real.pi / 2 + GerversSofa.θ)) ∪ + Set.Ioc (Real.pi / 2 + GerversSofa.θ) (Real.pi - GerversSofa.θ)) ∪ + Set.Ioc (Real.pi - GerversSofa.θ) (Real.pi - GerversSofa.φ)) ∪ + Set.Ioc (Real.pi - GerversSofa.φ) Real.pi = Set.Ioc (Real.pi / 2) Real.pi := by + rw [Set.Ioc_union_Ioc_eq_Ioc (by linarith) (by linarith), + Set.Ioc_union_Ioc_eq_Ioc (by linarith) (by linarith), + Set.Ioc_union_Ioc_eq_Ioc (by linarith) (by linarith), + Set.Ioc_union_Ioc_eq_Ioc (by linarith) (by linarith)] + rw [← hlo, ← hhi] + ac_rfl + +private theorem pairwise_disjoint_gerverPhaseIntervals : + Pairwise (fun i j ↦ Disjoint (gerverPhaseIntervals i) (gerverPhaseIntervals j)) := by + have horder := gerverStageTimes_strictMono + have h01 := horder (show (0 : Fin 6) < 1 by decide) + have h12 := horder (show (1 : Fin 6) < 2 by decide) + have h23 := horder (show (2 : Fin 6) < 3 by decide) + have h34 := horder (show (3 : Fin 6) < 4 by decide) + have h45 := horder (show (4 : Fin 6) < 5 by decide) + simp only [gerverStageTimes, Matrix.cons_val] at h01 h12 h23 h34 h45 + intro i j hij + apply Set.disjoint_left.mpr + intro t hi hj + rw [gerverPhaseIntervals_explicit] at hi hj + fin_cases i <;> fin_cases j <;> simp_all only [ne_eq, not_true_eq_false] + all_goals linarith [hi.1, hi.2, hj.1, hj.2] + +private theorem gerverPhaseIntervals_subset_Icc (k : Fin 10) : + gerverPhaseIntervals k ⊆ Set.Icc 0 Real.pi := by + intro z hz + have hz' := Set.mem_iUnion.mpr ⟨k, hz⟩ + rw [iUnion_gerverPhaseIntervals] at hz' + rcases hz' with h | h + · exact ⟨h.1, by linarith [h.2, Real.pi_pos]⟩ + · exact ⟨by linarith [h.1, Real.pi_pos], h.2⟩ + +private theorem iUnion_gerverPhaseAngles_union_top : + (⋃ j, gerverPhaseAngles j) ∪ {((Real.pi / 2 : ℝ) : Real.Angle)} = + (fun t : ℝ ↦ (t : Real.Angle)) '' Set.Icc 0 Real.pi := by + have hreal : (⋃ j, gerverPhaseIntervals j) ∪ {Real.pi / 2} = Set.Icc 0 Real.pi := by + rw [iUnion_gerverPhaseIntervals] + ext t + simp only [Set.mem_union, Set.mem_Ico, Set.mem_Ioc, Set.mem_singleton_iff, Set.mem_Icc] + constructor + · rintro ((h | h) | rfl) <;> constructor <;> linarith [Real.pi_pos] + · intro ht + rcases lt_trichotomy t (Real.pi / 2) with h | h | h + · exact Or.inl (Or.inl ⟨ht.1, h⟩) + · exact Or.inr h + · exact Or.inl (Or.inr ⟨h, ht.2⟩) + rw [← hreal, Set.image_union, Set.image_iUnion] + simp only [gerverPhaseAngles, Set.image_singleton] + +private theorem pairwise_disjoint_gerverPhaseAngles : + Pairwise (fun i j ↦ Disjoint (gerverPhaseAngles i) (gerverPhaseAngles j)) := by + intro i j hij + apply Set.disjoint_left.mpr + rintro t ⟨x, hx, rfl⟩ ⟨y, hy, heq⟩ + have hxy := injOn_angleCoe_Icc_zero_pi (gerverPhaseIntervals_subset_Icc j hy) + (gerverPhaseIntervals_subset_Icc i hx) heq + subst y + exact Set.disjoint_left.mp (pairwise_disjoint_gerverPhaseIntervals hij) hx hy + +/-- The two active right-tail phases make up the angular window `[π/2 - θ, π/2)`. -/ +theorem gerverPhaseAngles_three_union_four : + gerverPhaseAngles 3 ∪ gerverPhaseAngles 4 = + (fun t : ℝ ↦ (t : Real.Angle)) '' + Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2) := by + have horder := gerverStageTimes_strictMono + have h34 := horder (show (3 : Fin 6) < 4 by decide) + have h45 := horder (show (4 : Fin 6) < 5 by decide) + simp only [gerverStageTimes, Matrix.cons_val] at h34 h45 + simp only [gerverPhaseAngles, ← Set.image_union, gerverPhaseIntervals_explicit, + Matrix.cons_val] + rw [Set.Ico_union_Ico_eq_Ico h34.le h45.le] + +/-- The two active left-tail phases make up the angular window `(π/2, π/2 + θ]`. -/ +theorem gerverPhaseAngles_five_union_six : + gerverPhaseAngles 5 ∪ gerverPhaseAngles 6 = + (fun t : ℝ ↦ (t : Real.Angle)) '' + Set.Ioc (Real.pi / 2) (Real.pi / 2 + GerversSofa.θ) := by + have horder := gerverStageTimes_strictMono + have h01 := horder (show (0 : Fin 6) < 1 by decide) + have h12 := horder (show (1 : Fin 6) < 2 by decide) + simp only [gerverStageTimes, Matrix.cons_val] at h01 h12 + simp only [gerverPhaseAngles, ← Set.image_union, gerverPhaseIntervals_explicit, + Matrix.cons_val] + rw [Set.Ioc_union_Ioc_eq_Ioc (by linarith) (by linarith)] + +/-! ### Splitting the four variation integrals over the phase windows -/ + +private theorem setIntegral_union_eq_left_of_measure_eq_zero (μ : Measure Real.Angle) + (f : Real.Angle → ℝ) {S T : Set Real.Angle} (hT : μ T = 0) : + (∫ t in S ∪ T, f t ∂μ) = ∫ t in S, f t ∂μ := by + apply integral_union_eq_left_of_ae + rw [Measure.restrict_eq_zero.mpr hT] + simp + +private theorem setIntegral_angleImage_Icc_eq_sum (μ : Measure Real.Angle) + (f : Real.Angle → ℝ) (hf : Integrable f μ) + (htop : f ((Real.pi / 2 : ℝ) : Real.Angle) = 0) : + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Icc 0 Real.pi, f t ∂μ) = + ∑ j, ∫ t in gerverPhaseAngles j, f t ∂μ := by + rw [← iUnion_gerverPhaseAngles_union_top, + integral_union_eq_left_of_forall (measurableSet_singleton _) (by + intro t ht + obtain rfl := Set.mem_singleton_iff.mp ht + exact htop)] + exact integral_iUnion_fintype measurableSet_gerverPhaseAngles + pairwise_disjoint_gerverPhaseAngles fun _ ↦ hf.restrict + +private theorem setIntegral_right_window_eq_add (μ : Measure Real.Angle) (f : Real.Angle → ℝ) + (hf : Integrable f μ) + (hinactive : μ ((fun s : ℝ ↦ (s : Real.Angle)) '' + Set.Ioo paperGerverConstants.2.1 (Real.pi / 2 - GerversSofa.θ)) = 0) : + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' + Set.Ioo paperGerverConstants.2.1 (Real.pi / 2), f t ∂μ) = + (∫ t in gerverPhaseAngles 3, f t ∂μ) + (∫ t in gerverPhaseAngles 4, f t ∂μ) := by + have horder := gerverStageTimes_strictMono + have h13 := horder (show (1 : Fin 6) < 3 by decide) + have h35 := horder (show (3 : Fin 6) < 5 by decide) + simp only [gerverStageTimes, Matrix.cons_val] at h13 h35 + have hreal : Set.Ioo paperGerverConstants.2.1 (Real.pi / 2) = + Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2) ∪ + Set.Ioo paperGerverConstants.2.1 (Real.pi / 2 - GerversSofa.θ) := by + ext t + change (_ < t ∧ t < _) ↔ (_ ≤ t ∧ t < _) ∨ (_ < t ∧ t < _) + change (GerversSofa.φ < t ∧ t < Real.pi / 2) ↔ _ + constructor + · intro ht + by_cases h : Real.pi / 2 - GerversSofa.θ ≤ t + · exact Or.inl ⟨h, ht.2⟩ + · exact Or.inr ⟨ht.1, lt_of_not_ge h⟩ + · rintro (h | h) <;> (try simp only [paperGerverConstants] at h) <;> + constructor <;> linarith [h.1, h.2] + rw [hreal, Set.image_union, ← gerverPhaseAngles_three_union_four, + setIntegral_union_eq_left_of_measure_eq_zero μ f hinactive] + exact setIntegral_union (pairwise_disjoint_gerverPhaseAngles (by decide : (3 : Fin 10) ≠ 4)) + (measurableSet_gerverPhaseAngles 4) hf.restrict hf.restrict + +private theorem setIntegral_left_window_eq_add (μ : Measure Real.Angle) (f : Real.Angle → ℝ) + (hf : Integrable f μ) + (hinactive : μ ((fun s : ℝ ↦ (s : Real.Angle)) '' + Set.Ioo (Real.pi / 2 + GerversSofa.θ) + (Real.pi / 2 + paperGerverConstants.2.2)) = 0) : + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' + Set.Ioo (Real.pi / 2) (Real.pi / 2 + paperGerverConstants.2.2), f t ∂μ) = + (∫ t in gerverPhaseAngles 5, f t ∂μ) + (∫ t in gerverPhaseAngles 6, f t ∂μ) := by + have horder := gerverStageTimes_strictMono + have h02 := horder (show (0 : Fin 6) < 2 by decide) + have h24 := horder (show (2 : Fin 6) < 4 by decide) + simp only [gerverStageTimes, Matrix.cons_val] at h02 h24 + have hreal : Set.Ioo (Real.pi / 2) (Real.pi / 2 + paperGerverConstants.2.2) = + Set.Ioc (Real.pi / 2) (Real.pi / 2 + GerversSofa.θ) ∪ + Set.Ioo (Real.pi / 2 + GerversSofa.θ) + (Real.pi / 2 + paperGerverConstants.2.2) := by + ext t + change (_ < t ∧ t < _) ↔ (_ < t ∧ t ≤ _) ∨ (_ < t ∧ t < _) + change (Real.pi / 2 < t ∧ t < Real.pi / 2 + (Real.pi / 2 - GerversSofa.φ)) ↔ _ + constructor + · intro ht + by_cases h : t ≤ Real.pi / 2 + GerversSofa.θ + · exact Or.inl ⟨ht.1, h⟩ + · exact Or.inr ⟨lt_of_not_ge h, ht.2⟩ + · rintro (h | h) <;> (try simp only [paperGerverConstants] at h) <;> + constructor <;> linarith [h.1, h.2] + rw [hreal, Set.image_union, ← gerverPhaseAngles_five_union_six, + setIntegral_union_eq_left_of_measure_eq_zero μ f hinactive] + exact setIntegral_union (pairwise_disjoint_gerverPhaseAngles (by decide : (5 : Fin 10) ≠ 6)) + (measurableSet_gerverPhaseAngles 6) hf.restrict hf.restrict + +/-- The six phases on which the inner-corner measure is active. -/ +private def cornerPhaseIndex : Fin 6 → Fin 10 := ![1, 2, 3, 6, 7, 8] + +private theorem iUnion_gerverPhaseIntervals_cornerPhaseIndex : + (⋃ i, gerverPhaseIntervals (cornerPhaseIndex i)) = + Set.Ico paperGerverConstants.2.1 paperGerverConstants.2.2 ∪ + Set.Ioc (Real.pi / 2 + paperGerverConstants.2.1) + (Real.pi / 2 + paperGerverConstants.2.2) := by + have horder := gerverStageTimes_strictMono + have h12 := horder (show (1 : Fin 6) < 2 by decide) + have h23 := horder (show (2 : Fin 6) < 3 by decide) + have h34 := horder (show (3 : Fin 6) < 4 by decide) + simp only [gerverStageTimes, Matrix.cons_val] at h12 h23 h34 + simp only [Set.iUnion_fin_add_one_eq_iUnion_succ, Function.comp_def, + cornerPhaseIndex, Matrix.cons_val_zero, Matrix.cons_val_succ, + Set.iUnion_of_empty, Set.union_empty, gerverPhaseIntervals_explicit] + simp only [Matrix.cons_val, paperGerverConstants] + have hlo : (Set.Ico GerversSofa.φ GerversSofa.θ ∪ + Set.Ico GerversSofa.θ (Real.pi / 2 - GerversSofa.θ)) ∪ + Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2 - GerversSofa.φ) = + Set.Ico GerversSofa.φ (Real.pi / 2 - GerversSofa.φ) := by + rw [Set.Ico_union_Ico_eq_Ico h12.le h23.le, Set.Ico_union_Ico_eq_Ico (by linarith) h34.le] + have hhi : (Set.Ioc (Real.pi / 2 + GerversSofa.φ) (Real.pi / 2 + GerversSofa.θ) ∪ + Set.Ioc (Real.pi / 2 + GerversSofa.θ) (Real.pi - GerversSofa.θ)) ∪ + Set.Ioc (Real.pi - GerversSofa.θ) (Real.pi - GerversSofa.φ) = + Set.Ioc (Real.pi / 2 + GerversSofa.φ) (Real.pi - GerversSofa.φ) := by + rw [Set.Ioc_union_Ioc_eq_Ioc (by linarith) (by linarith), + Set.Ioc_union_Ioc_eq_Ioc (by linarith) (by linarith)] + have hend : Real.pi / 2 + (Real.pi / 2 - GerversSofa.φ) = Real.pi - GerversSofa.φ := by ring + rw [hend, ← hlo, ← hhi] + ac_rfl + +private theorem iUnion_gerverPhaseAngles_cornerPhaseIndex_union_ends : + (⋃ i, gerverPhaseAngles (cornerPhaseIndex i)) ∪ + {((paperGerverConstants.2.2 : ℝ) : Real.Angle), + ((Real.pi / 2 + paperGerverConstants.2.1 : ℝ) : Real.Angle)} = + (fun t : ℝ ↦ (t : Real.Angle)) '' + (Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2 ∪ + Set.Icc (Real.pi / 2 + paperGerverConstants.2.1) + (Real.pi / 2 + paperGerverConstants.2.2)) := by + have horder := gerverStageTimes_strictMono + have h14 := horder (show (1 : Fin 6) < 4 by decide) + change paperGerverConstants.2.1 < paperGerverConstants.2.2 at h14 + have hreal : (⋃ i, gerverPhaseIntervals (cornerPhaseIndex i)) ∪ + {paperGerverConstants.2.2, Real.pi / 2 + paperGerverConstants.2.1} = + Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2 ∪ + Set.Icc (Real.pi / 2 + paperGerverConstants.2.1) + (Real.pi / 2 + paperGerverConstants.2.2) := by + rw [iUnion_gerverPhaseIntervals_cornerPhaseIndex] + ext t + simp only [Set.mem_union, Set.mem_Ico, Set.mem_Ioc, Set.mem_insert_iff, + Set.mem_singleton_iff, Set.mem_Icc] + constructor + · rintro ((h | h) | (rfl | rfl)) + · exact Or.inl ⟨h.1, h.2.le⟩ + · exact Or.inr ⟨h.1.le, h.2⟩ + · exact Or.inl ⟨h14.le, le_rfl⟩ + · exact Or.inr ⟨le_rfl, by linarith⟩ + · rintro (h | h) + · rcases lt_or_eq_of_le h.2 with hlt | heq + · exact Or.inl (Or.inl ⟨h.1, hlt⟩) + · exact Or.inr (Or.inl heq) + · rcases lt_or_eq_of_le h.1 with hlt | heq + · exact Or.inl (Or.inr ⟨hlt, h.2⟩) + · exact Or.inr (Or.inr heq.symm) + rw [← hreal, Set.image_union, Set.image_iUnion] + simp only [gerverPhaseAngles, Set.image_pair] + +private theorem setIntegral_corner_window_eq_sum (μ : Measure Real.Angle) + [NullSingletonClass μ] (f : Real.Angle → ℝ) (hf : Integrable f μ) : + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' + (Set.Icc paperGerverConstants.2.1 paperGerverConstants.2.2 ∪ + Set.Icc (Real.pi / 2 + paperGerverConstants.2.1) + (Real.pi / 2 + paperGerverConstants.2.2)), f t ∂μ) = + ∑ i, ∫ t in gerverPhaseAngles (cornerPhaseIndex i), f t ∂μ := by + rw [← iUnion_gerverPhaseAngles_cornerPhaseIndex_union_ends, + setIntegral_union_eq_left_of_measure_eq_zero μ f + (((Set.finite_singleton _).insert _).measure_zero μ)] + have hinj : Function.Injective cornerPhaseIndex := by + intro i j h + fin_cases i <;> fin_cases j <;> simp_all [cornerPhaseIndex] + exact integral_iUnion_fintype (fun i ↦ measurableSet_gerverPhaseAngles (cornerPhaseIndex i)) + (fun i j hij ↦ pairwise_disjoint_gerverPhaseAngles fun h ↦ hij (hinj h)) fun _ ↦ hf.restrict + +/-! ### The eight phase contributions of the variation integral -/ + +/-- The eight contributions of the source table of the variation of `𝒬`: on each group of phases, +the cap surface integral of the support difference, minus the active inner-corner integral, plus +the active tail integral of the tail support difference. -/ +def gerverPhaseContribution (X Y : CapTailSpace) : Fin 8 → ℝ := + let f := fun t ↦ supportValue Y.cap.val.val t - supportValue X.cap.val.val t + let g := fun t ↦ (oppositeSurfaceData Y.rightBody).2 t - + (oppositeSurfaceData X.rightBody).2 t + let h := fun t ↦ (oppositeSurfaceData Y.leftBody).2 t - + (oppositeSurfaceData X.leftBody).2 t + let a := fun S ↦ ∫ t in S, f t ∂surfaceAreaMeasure X.cap.val.val + let c := fun S ↦ ∫ t in S, f t ∂capCornerAngleMeasure X.cap + let b := fun S ↦ ∫ t in S, g t ∂(oppositeSurfaceData X.rightBody).1 + let d := fun S ↦ ∫ t in S, h t ∂(oppositeSurfaceData X.leftBody).1 + ![a (gerverPhaseAngles 0), + a (gerverPhaseAngles 1 ∪ gerverPhaseAngles 2) - + c (gerverPhaseAngles 1 ∪ gerverPhaseAngles 2), + a (gerverPhaseAngles 3) - c (gerverPhaseAngles 3) + b (gerverPhaseAngles 3), + a (gerverPhaseAngles 4) + b (gerverPhaseAngles 4), + a (gerverPhaseAngles 5) + d (gerverPhaseAngles 5), + a (gerverPhaseAngles 6) - c (gerverPhaseAngles 6) + d (gerverPhaseAngles 6), + a (gerverPhaseAngles 7 ∪ gerverPhaseAngles 8) - + c (gerverPhaseAngles 7 ∪ gerverPhaseAngles 8), + a (gerverPhaseAngles 9)] + +private theorem setIntegral_add_of_restrict_eq_add {S : Set Real.Angle} + {μ ν κ : Measure Real.Angle} {f g : Real.Angle → ℝ} + (h : μ.restrict S = (ν + κ).restrict S) + (hfν : Integrable f ν) (hfκ : Integrable f κ) (hg : Integrable g ν) : + (∫ t in S, f t ∂μ) - (∫ t in S, f t ∂κ) + (∫ t in S, g t ∂ν) = + ∫ t in S, (f t + g t) ∂ν := by + rw [h, Measure.restrict_add, integral_add_measure hfν.restrict hfκ.restrict, + integral_add hfν.restrict hg.restrict] + ring + +private theorem setIntegral_add_of_restrict_eq {S : Set Real.Angle} + {μ ν : Measure Real.Angle} {f g : Real.Angle → ℝ} + (h : μ.restrict S = ν.restrict S) + (hf : Integrable f ν) (hg : Integrable g ν) : + (∫ t in S, f t ∂μ) + (∫ t in S, g t ∂ν) = + ∫ t in S, (f t + g t) ∂ν := by + rw [h, integral_add hf.restrict hg.restrict] + +private theorem right_support_difference_nonpos (X Y : CapTailSpace) (t : ℝ) + (ht : t ∈ Set.Icc paperGerverConstants.2.1 (Real.pi / 2)) + (hX : supportValue X.cap.val.val (t : Real.Angle) + + (oppositeSurfaceData X.rightBody).2 (t : Real.Angle) = 1) : + (supportValue Y.cap.val.val (t : Real.Angle) - + supportValue X.cap.val.val (t : Real.Angle)) + + ((oppositeSurfaceData Y.rightBody).2 (t : Real.Angle) - + (oppositeSurfaceData X.rightBody).2 (t : Real.Angle)) ≤ 0 := by + have hY := Y.right_bound t ht + simp only [oppositeSurfaceData] at hX ⊢ + simp only [Real.Angle.coe_add, add_comm (Real.pi : Real.Angle)] at hY + linarith + +private theorem left_support_difference_nonpos (X Y : CapTailSpace) (t : ℝ) + (ht : t ∈ Set.Icc (0 : ℝ) paperGerverConstants.2.2) + (hX : supportValue X.cap.val.val ((Real.pi / 2 + t : ℝ) : Real.Angle) + + (oppositeSurfaceData X.leftBody).2 ((Real.pi / 2 + t : ℝ) : Real.Angle) = 1) : + (supportValue Y.cap.val.val ((Real.pi / 2 + t : ℝ) : Real.Angle) - + supportValue X.cap.val.val ((Real.pi / 2 + t : ℝ) : Real.Angle)) + + ((oppositeSurfaceData Y.leftBody).2 ((Real.pi / 2 + t : ℝ) : Real.Angle) - + (oppositeSurfaceData X.leftBody).2 ((Real.pi / 2 + t : ℝ) : Real.Angle)) ≤ 0 := by + have hY := Y.left_bound t ht + have heq : (((Real.pi / 2 + t : ℝ) : Real.Angle) + (Real.pi : Real.Angle)) = + ((3 * Real.pi / 2 + t : ℝ) : Real.Angle) := by + rw [← Real.Angle.coe_add] + congr 1 + ring + simp only [oppositeSurfaceData, heq] at hX ⊢ + linarith + +private theorem exists_mem_right_tail_domain {t : Real.Angle} + (ht : t ∈ gerverPhaseAngles 3 ∪ gerverPhaseAngles 4) : + ∃ s ∈ Set.Icc paperGerverConstants.2.1 (Real.pi / 2), (s : Real.Angle) = t := by + have horder := gerverStageTimes_strictMono + have h13 := horder (show (1 : Fin 6) < 3 by decide) + have h35 := horder (show (3 : Fin 6) < 5 by decide) + simp only [gerverStageTimes, Matrix.cons_val] at h13 h35 + rw [gerverPhaseAngles_three_union_four] at ht + obtain ⟨s, hs, rfl⟩ := ht + exact ⟨s, ⟨le_trans h13.le hs.1, hs.2.le⟩, rfl⟩ + +private theorem exists_mem_left_tail_domain {t : Real.Angle} + (ht : t ∈ gerverPhaseAngles 5 ∪ gerverPhaseAngles 6) : + ∃ s ∈ Set.Icc (0 : ℝ) paperGerverConstants.2.2, + ((Real.pi / 2 + s : ℝ) : Real.Angle) = t := by + have horder := gerverStageTimes_strictMono + have h02 := horder (show (0 : Fin 6) < 2 by decide) + have h24 := horder (show (2 : Fin 6) < 4 by decide) + simp only [gerverStageTimes, Matrix.cons_val] at h02 h24 + rw [gerverPhaseAngles_five_union_six] at ht + obtain ⟨s, hs, rfl⟩ := ht + refine ⟨s - Real.pi / 2, ⟨by linarith [hs.1], ?_⟩, ?_⟩ + · change s - Real.pi / 2 ≤ Real.pi / 2 - GerversSofa.φ + linarith [hs.2] + · congr 1 + ring + +/-- Each of the eight phase contributions is nonpositive: the phase measure identities cancel the +cap measure against the active corner and tail measures, and the cap-tail constraints sign the +remaining tail integrands. -/ +theorem gerverPhaseContribution_nonpos (X Y : CapTailSpace) + (hphase : GerverPhaseMeasureIdentities X.cap X.rightBody X.leftBody) + (hbaseB : ∀ t ∈ gerverPhaseAngles 3 ∪ gerverPhaseAngles 4, + supportValue X.cap.val.val t + (oppositeSurfaceData X.rightBody).2 t = 1) + (hbaseD : ∀ t ∈ gerverPhaseAngles 5 ∪ gerverPhaseAngles 6, + supportValue X.cap.val.val t + (oppositeSurfaceData X.leftBody).2 t = 1) + (i : Fin 8) : gerverPhaseContribution X Y i ≤ 0 := by + obtain ⟨h0, h12, h3, h4, h5, h6, h78, h9⟩ := hphase + have hfB : Integrable (fun t ↦ supportValue Y.cap.val.val t - + supportValue X.cap.val.val t) (oppositeSurfaceData X.rightBody).1 := + Real.Angle.integrable_of_continuous + ((continuous_supportValue _).sub (continuous_supportValue _)) + have hfD : Integrable (fun t ↦ supportValue Y.cap.val.val t - + supportValue X.cap.val.val t) (oppositeSurfaceData X.leftBody).1 := + Real.Angle.integrable_of_continuous + ((continuous_supportValue _).sub (continuous_supportValue _)) + have hfC : Integrable (fun t ↦ supportValue Y.cap.val.val t - + supportValue X.cap.val.val t) (capCornerAngleMeasure X.cap) := + Real.Angle.integrable_of_continuous + ((continuous_supportValue _).sub (continuous_supportValue _)) + have hgB : Integrable (fun t ↦ (oppositeSurfaceData Y.rightBody).2 t - + (oppositeSurfaceData X.rightBody).2 t) (oppositeSurfaceData X.rightBody).1 := + Real.Angle.integrable_of_continuous + ((continuous_oppositeSurfaceData_snd _).sub (continuous_oppositeSurfaceData_snd _)) + have hgD : Integrable (fun t ↦ (oppositeSurfaceData Y.leftBody).2 t - + (oppositeSurfaceData X.leftBody).2 t) (oppositeSurfaceData X.leftBody).1 := + Real.Angle.integrable_of_continuous + ((continuous_oppositeSurfaceData_snd _).sub (continuous_oppositeSurfaceData_snd _)) + have hB : ∀ t ∈ gerverPhaseAngles 3 ∪ gerverPhaseAngles 4, + (supportValue Y.cap.val.val t - supportValue X.cap.val.val t) + + ((oppositeSurfaceData Y.rightBody).2 t - + (oppositeSurfaceData X.rightBody).2 t) ≤ 0 := by + intro t ht + obtain ⟨s, hs, rfl⟩ := exists_mem_right_tail_domain ht + exact right_support_difference_nonpos X Y s hs (hbaseB _ ht) + have hD : ∀ t ∈ gerverPhaseAngles 5 ∪ gerverPhaseAngles 6, + (supportValue Y.cap.val.val t - supportValue X.cap.val.val t) + + ((oppositeSurfaceData Y.leftBody).2 t - + (oppositeSurfaceData X.leftBody).2 t) ≤ 0 := by + intro t ht + obtain ⟨s, hs, rfl⟩ := exists_mem_left_tail_domain ht + exact left_support_difference_nonpos X Y s hs (hbaseD _ ht) + fin_cases i + · simp [gerverPhaseContribution, h0] + · simp [gerverPhaseContribution, h12] + · change (_ - _ + _) ≤ 0 + rw [setIntegral_add_of_restrict_eq_add h3 hfB hfC hgB] + exact setIntegral_nonpos (measurableSet_gerverPhaseAngles 3) fun t ht ↦ hB t (Or.inl ht) + · change (_ + _) ≤ 0 + rw [setIntegral_add_of_restrict_eq h4 hfB hgB] + exact setIntegral_nonpos (measurableSet_gerverPhaseAngles 4) fun t ht ↦ hB t (Or.inr ht) + · change (_ + _) ≤ 0 + rw [setIntegral_add_of_restrict_eq h5 hfD hgD] + exact setIntegral_nonpos (measurableSet_gerverPhaseAngles 5) fun t ht ↦ hD t (Or.inl ht) + · change (_ - _ + _) ≤ 0 + rw [setIntegral_add_of_restrict_eq_add h6 hfD hfC hgD] + exact setIntegral_nonpos (measurableSet_gerverPhaseAngles 6) fun t ht ↦ hD t (Or.inr ht) + · simp [gerverPhaseContribution, h78] + · simp [gerverPhaseContribution, h9] + +/-! ### The four variation integrals as the eight phase contributions -/ + +/-- The four integrals of the variation formula regroup into the eight contributions of the source +table, given that the two tails carry no surface measure between their active windows. -/ +theorem qVariationIntegral_eq_phaseSum (X Y : CapTailSpace) + (hinactiveB : (oppositeSurfaceData X.rightBody).1 ((fun s : ℝ ↦ (s : Real.Angle)) '' + Set.Ioo paperGerverConstants.2.1 (Real.pi / 2 - GerversSofa.θ)) = 0) + (hinactiveD : (oppositeSurfaceData X.leftBody).1 ((fun s : ℝ ↦ (s : Real.Angle)) '' + Set.Ioo (Real.pi / 2 + GerversSofa.θ) (Real.pi / 2 + paperGerverConstants.2.2)) = 0) : + qVariationIntegral X Y = ∑ i, gerverPhaseContribution X Y i := by + have hfK : Integrable (fun t ↦ supportValue Y.cap.val.val t - + supportValue X.cap.val.val t) (surfaceAreaMeasure X.cap.val.val) := + Real.Angle.integrable_of_continuous + ((continuous_supportValue _).sub (continuous_supportValue _)) + have hfC : Integrable (fun t ↦ supportValue Y.cap.val.val t - + supportValue X.cap.val.val t) (capCornerAngleMeasure X.cap) := + Real.Angle.integrable_of_continuous + ((continuous_supportValue _).sub (continuous_supportValue _)) + have hgB : Integrable (fun t ↦ (oppositeSurfaceData Y.rightBody).2 t - + (oppositeSurfaceData X.rightBody).2 t) (oppositeSurfaceData X.rightBody).1 := + Real.Angle.integrable_of_continuous + ((continuous_oppositeSurfaceData_snd _).sub (continuous_oppositeSurfaceData_snd _)) + have hgD : Integrable (fun t ↦ (oppositeSurfaceData Y.leftBody).2 t - + (oppositeSurfaceData X.leftBody).2 t) (oppositeSurfaceData X.leftBody).1 := + Real.Angle.integrable_of_continuous + ((continuous_oppositeSurfaceData_snd _).sub (continuous_oppositeSurfaceData_snd _)) + rw [qVariationIntegral, + setIntegral_angleImage_Icc_eq_sum _ _ hfK (by + rw [Y.cap.val.property.2.2.2.1, X.cap.val.property.2.2.2.1, sub_self]), + setIntegral_corner_window_eq_sum _ _ hfC, + setIntegral_right_window_eq_add _ _ hgB hinactiveB, + setIntegral_left_window_eq_add _ _ hgD hinactiveD] + have h12 := pairwise_disjoint_gerverPhaseAngles (by decide : (1 : Fin 10) ≠ 2) + have h78 := pairwise_disjoint_gerverPhaseAngles (by decide : (7 : Fin 10) ≠ 8) + have hK12 := setIntegral_union h12 (measurableSet_gerverPhaseAngles 2) + hfK.restrict hfK.restrict + have hC12 := setIntegral_union h12 (measurableSet_gerverPhaseAngles 2) + hfC.restrict hfC.restrict + have hK78 := setIntegral_union h78 (measurableSet_gerverPhaseAngles 8) + hfK.restrict hfK.restrict + have hC78 := setIntegral_union h78 (measurableSet_gerverPhaseAngles 8) + hfC.restrict hfC.restrict + simp only [gerverPhaseContribution, Fin.sum_univ_succ, Fin.sum_univ_zero, + Matrix.cons_val_zero, Matrix.cons_val_succ, cornerPhaseIndex, + hK12, hC12, hK78, hC78] + ring! + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Gerver's cap attains the upper bound `Q` + +`gerver_upperBoundQ_matches` evaluates the upper-bound functional `Q` at the cap of Gerver's +sofa together with its two canonical tails, and finds the sofa area functional `A` there. + +The niche area is read off the four-piece counterclockwise traversal of the niche boundary +(`gerver_niche_orientation`): additivity of the curve area functional over that traversal +(`curveArea_concatenation`) expresses the niche area as the curve area of the middle corner +path minus the curve areas of the two inner contact curves, because the two contact pieces are +traversed backwards and the base segment lies on the line `y = 0`. The tail geometry +(`gerver_tailGeometry`) identifies the two contact curves with the two convex tail arcs, so +their curve areas are the two `convexArcArea` terms of `Q`, and it identifies the two corners +of `Q`'s connector segments, whose signed areas therefore vanish. +-/ + +/-! ## The four-piece traversal of the niche boundary -/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The niche traversal is the concatenation of four pieces, each reparametrized by `[0, 1]` +through an increasing surjection: the second contact curve reversed, the inner corner path over +`[t₁, t₄]`, the fourth contact curve reversed, and the base segment. The two reversed contact +pieces enter as bounded-variation paths `y₁`, `y₃` on `[0, 1]`, described by the two affine +parameter changes of the traversal. -/ +private theorem isPathConcatenation_gerverNicheBoundary (K : SpecialCapSpace) + (hcorner : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + capInnerCorner K.val t = paperGerverPath t) + {Γ : ContinuousBVPaths 0 4} (hΓ : Γ.val = gerverNicheBoundary) + {y₁ y₃ : ContinuousBVPaths 0 1} + (hy₁ : ∀ u : Set.Icc (0 : ℝ) 1, y₁.val u = + paperGerverContacts (Real.pi / 2 - (Real.pi / 2 - gerverStageTimes 3) * (u : ℝ)) 1) + (hy₃ : ∀ u : Set.Icc (0 : ℝ) 1, y₃.val u = + paperGerverContacts (gerverStageTimes 2 * (1 - (u : ℝ))) 3) : + IsPathConcatenation (⟨0, 4, by norm_num, Γ⟩ : RectifiablePathData) + ![(⟨0, 1, zero_le_one, y₁⟩ : RectifiablePathData), + ⟨gerverStageTimes 1, gerverStageTimes 4, + (gerverStageTimes_strictMono (show (1 : Fin 6) < 4 by decide)).le, capMiddleBV K⟩, + ⟨0, 1, zero_le_one, y₃⟩, + ⟨0, 1, zero_le_one, lineSegmentBVPath (paperGerverContacts 0 3) + (paperGerverContacts (Real.pi / 2) 1)⟩] := by + have h0 : gerverStageTimes 0 = 0 := gerverStageTimes_zero + have h5 : gerverStageTimes 5 = Real.pi / 2 := rfl + have h01 : gerverStageTimes 0 < gerverStageTimes 1 := + gerverStageTimes_strictMono (show (0 : Fin 6) < 1 by decide) + have h45 : gerverStageTimes 4 < gerverStageTimes 5 := + gerverStageTimes_strictMono (show (4 : Fin 6) < 5 by decide) + obtain ⟨ψ₂, hψ₂c, hψ₂m, hψ₂s, hψ₂v⟩ := Set.Icc.exists_affine_monotone_surjection zero_lt_one + (gerverStageTimes_strictMono (show (1 : Fin 6) < 4 by decide)) + refine ⟨by norm_num, ![⟨0, by norm_num⟩, ⟨1, by norm_num⟩, ⟨2, by norm_num⟩, + ⟨3, by norm_num⟩, ⟨4, by norm_num⟩], ?_, rfl, rfl, ?_⟩ + · intro i j hij + fin_cases i <;> fin_cases j <;> + first + | rfl + | (exact absurd hij (by decide)) + | (refine Subtype.mk_le_mk.mpr ?_; norm_num) + · intro i + fin_cases i + -- ### `[0, 1]`: the second contact curve, reversed + · obtain ⟨ϕ, hϕc, hϕm, hϕs, hϕv⟩ : + ∃ ϕ : Set.Icc (0 : ℝ) 1 → Set.Icc (0 : ℝ) 1, Continuous ϕ ∧ Monotone ϕ ∧ + Function.Surjective ϕ ∧ ∀ u : Set.Icc (0 : ℝ) 1, (ϕ u : ℝ) = 0 + (u : ℝ) := + Set.Icc.exists_translation_surjection (by norm_num) + refine ⟨ϕ, id, hϕc, hϕm, hϕs, continuous_id, monotone_id, Function.surjective_id, + fun u ↦ ?_⟩ + have hv := hϕv u + have hmem : (ϕ u : ℝ) ∈ Set.Icc (0 : ℝ) 4 := + ⟨by rw [hv]; linarith [u.2.1], by rw [hv]; linarith [u.2.2]⟩ + have harg : Real.pi / 2 - (Real.pi / 2 - gerverStageTimes 3) * (ϕ u : ℝ) = + Real.pi / 2 - (Real.pi / 2 - gerverStageTimes 3) * (u : ℝ) := by rw [hv]; ring + rw [hΓ] + refine (gerverNicheBoundary_of_le_one hmem (by rw [hv]; linarith [u.2.2])).trans ?_ + rw [harg] + exact (hy₁ u).symm + -- ### `[1, 2]`: the inner corner path, forwards + · obtain ⟨ϕ, hϕc, hϕm, hϕs, hϕv⟩ : + ∃ ϕ : Set.Icc (0 : ℝ) 1 → Set.Icc (1 : ℝ) 2, Continuous ϕ ∧ Monotone ϕ ∧ + Function.Surjective ϕ ∧ ∀ u : Set.Icc (0 : ℝ) 1, (ϕ u : ℝ) = 1 + (u : ℝ) := + Set.Icc.exists_translation_surjection (by norm_num) + refine ⟨ϕ, ψ₂, hϕc, hϕm, hϕs, hψ₂c, hψ₂m, hψ₂s, fun u ↦ ?_⟩ + have hv := hϕv u + have hmem : (ϕ u : ℝ) ∈ Set.Icc (0 : ℝ) 4 := + ⟨by rw [hv]; linarith [u.2.1], by rw [hv]; linarith [u.2.2]⟩ + have hψmem : (ψ₂ u : ℝ) ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨by linarith [(ψ₂ u).2.1], by linarith [(ψ₂ u).2.2]⟩ + have harg : gerverStageTimes 1 + + (gerverStageTimes 4 - gerverStageTimes 1) * ((ϕ u : ℝ) - 1) = (ψ₂ u : ℝ) := by + rw [hv, hψ₂v u]; ring + rw [hΓ] + refine (gerverNicheBoundary_mid hmem (by rw [hv]; linarith [u.2.1]) + (by rw [hv]; linarith [u.2.2])).trans ?_ + rw [harg] + exact (hcorner _ hψmem).symm + -- ### `[2, 3]`: the fourth contact curve, reversed + · obtain ⟨ϕ, hϕc, hϕm, hϕs, hϕv⟩ : + ∃ ϕ : Set.Icc (0 : ℝ) 1 → Set.Icc (2 : ℝ) 3, Continuous ϕ ∧ Monotone ϕ ∧ + Function.Surjective ϕ ∧ ∀ u : Set.Icc (0 : ℝ) 1, (ϕ u : ℝ) = 2 + (u : ℝ) := + Set.Icc.exists_translation_surjection (by norm_num) + refine ⟨ϕ, id, hϕc, hϕm, hϕs, continuous_id, monotone_id, Function.surjective_id, + fun u ↦ ?_⟩ + have hv := hϕv u + have hmem : (ϕ u : ℝ) ∈ Set.Icc (0 : ℝ) 4 := + ⟨by rw [hv]; linarith [u.2.1], by rw [hv]; linarith [u.2.2]⟩ + have harg : gerverStageTimes 2 * (3 - (ϕ u : ℝ)) = + gerverStageTimes 2 * (1 - (u : ℝ)) := by rw [hv]; ring + rw [hΓ] + refine (gerverNicheBoundary_third hmem (by rw [hv]; linarith [u.2.1]) + (by rw [hv]; linarith [u.2.2])).trans ?_ + rw [harg] + exact (hy₃ u).symm + -- ### `[3, 4]`: the base segment + · obtain ⟨ϕ, hϕc, hϕm, hϕs, hϕv⟩ : + ∃ ϕ : Set.Icc (0 : ℝ) 1 → Set.Icc (3 : ℝ) 4, Continuous ϕ ∧ Monotone ϕ ∧ + Function.Surjective ϕ ∧ ∀ u : Set.Icc (0 : ℝ) 1, (ϕ u : ℝ) = 3 + (u : ℝ) := + Set.Icc.exists_translation_surjection (by norm_num) + refine ⟨ϕ, id, hϕc, hϕm, hϕs, continuous_id, monotone_id, Function.surjective_id, + fun u ↦ ?_⟩ + have hv := hϕv u + have hmem : (ϕ u : ℝ) ∈ Set.Icc (0 : ℝ) 4 := + ⟨by rw [hv]; linarith [u.2.1], by rw [hv]; linarith [u.2.2]⟩ + rw [hΓ] + refine (gerverNicheBoundary_base hmem (by rw [hv]; linarith [u.2.1])).trans ?_ + change _ = (lineSegmentBVPath (paperGerverContacts 0 3) + (paperGerverContacts (Real.pi / 2) 1)).val u + rw [lineSegmentBVPath_apply, hv, show (4 : ℝ) - (3 + (u : ℝ)) = 1 - (u : ℝ) from by ring, + show (3 : ℝ) + (u : ℝ) - 3 = (u : ℝ) from by ring] + +/-- Additivity of the curve area functional over the four-piece traversal of the niche +boundary. The base segment contributes nothing because both of its endpoints lie on the line +`y = 0`, and the two contact pieces are traversed backwards, so their reparametrizations +contribute the negatives of their curve areas. -/ +private theorem curveAreaFunctional_gerverNicheBoundary (K : SpecialCapSpace) + (hcorner : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + capInnerCorner K.val t = paperGerverPath t) + {Γ : ContinuousBVPaths 0 4} (hΓ : Γ.val = gerverNicheBoundary) : + curveAreaFunctional Γ = curveAreaFunctional (capMiddleBV K) - + curveAreaFunctional gerverRightContactBV - curveAreaFunctional gerverLeftContactBV := by + have h0 : gerverStageTimes 0 = 0 := gerverStageTimes_zero + have h5 : gerverStageTimes 5 = Real.pi / 2 := rfl + have h35 : gerverStageTimes 3 < gerverStageTimes 5 := + gerverStageTimes_strictMono (show (3 : Fin 6) < 5 by decide) + have h02 : gerverStageTimes 0 < gerverStageTimes 2 := + gerverStageTimes_strictMono (show (0 : Fin 6) < 2 by decide) + obtain ⟨φ₁, hφ₁c, hφ₁a, hφ₁s, hφ₁v⟩ := + Set.Icc.exists_affine_antitone_surjection zero_lt_one h35 + obtain ⟨φ₃, hφ₃c, hφ₃a, hφ₃s, hφ₃v⟩ := + Set.Icc.exists_affine_antitone_surjection zero_lt_one h02 + obtain ⟨y₁, hy₁val, -, hy₁area⟩ := curveArea_reparametrization.1 _ _ 0 1 h35 zero_lt_one + gerverRightContactBV φ₁ hφ₁c hφ₁s (Or.inr hφ₁a) + obtain ⟨y₃, hy₃val, -, hy₃area⟩ := curveArea_reparametrization.1 _ _ 0 1 h02 zero_lt_one + gerverLeftContactBV φ₃ hφ₃c hφ₃s (Or.inr hφ₃a) + have hy₁ : ∀ u : Set.Icc (0 : ℝ) 1, y₁.val u = + paperGerverContacts (Real.pi / 2 - (Real.pi / 2 - gerverStageTimes 3) * (u : ℝ)) 1 := by + intro u + rw [hy₁val] + exact congrArg (fun r : ℝ ↦ paperGerverContacts r 1) (by rw [hφ₁v u, h5]; ring) + have hy₃ : ∀ u : Set.Icc (0 : ℝ) 1, y₃.val u = + paperGerverContacts (gerverStageTimes 2 * (1 - (u : ℝ))) 3 := by + intro u + rw [hy₃val] + exact congrArg (fun r : ℝ ↦ paperGerverContacts r 3) (by rw [hφ₃v u, h0]; ring) + have hsum : curveAreaFunctional Γ = curveAreaFunctional y₁ + + curveAreaFunctional (capMiddleBV K) + curveAreaFunctional y₃ + + curveAreaFunctional (lineSegmentBVPath (paperGerverContacts 0 3) + (paperGerverContacts (Real.pi / 2) 1)) := by + have h := curveArea_concatenation (⟨0, 4, by norm_num, Γ⟩ : RectifiablePathData) _ + (isPathConcatenation_gerverNicheBoundary K hcorner hΓ hy₁ hy₃) + rw [Fin.sum_univ_four] at h + exact h + have hseg : curveAreaFunctional (lineSegmentBVPath (paperGerverContacts 0 3) + (paperGerverContacts (Real.pi / 2) 1)) = 0 := by + rw [curveAreaFunctional_lineSegmentBVPath, segmentArea, planeCrossProduct, + gerver_niche_piece_endpoints.2.2.1, gerver_niche_piece_endpoints.2.2.2] + ring + rw [hsum, hseg, hy₁area hφ₁a, hy₃area hφ₃a] + ring + +/-! ## The niche area of the Gerver cap -/ + +/-- The niche area of the Gerver cap, in terms of the signed curve areas of the three +nondegenerate pieces of its boundary traversal: the middle corner path, and the two inner +contact curves, which the traversal runs backwards. -/ +theorem gerver_capNiche_area_eq (K : SpecialCapSpace) + (hK : (K.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) : + ClassicalResults.area (capNiche K.val) = + curveAreaFunctional (capMiddleBV K) - curveAreaFunctional gerverRightContactBV - + curveAreaFunctional gerverLeftContactBV := by + obtain ⟨-, hGeq, -, -, hcapeq, -, -⟩ := gerver_capSupport_identification + have hcarrier : (K.val.val : Set Point) = gerverOuterCap := by rw [hK, hGeq, hcapeq] + obtain ⟨K₃, hK₃set, Γ, hΓ, -, -, -, harea, -, -, -⟩ := gerver_niche_orientation + have h3eq : K₃ = K.val := Subtype.ext (SetLike.coe_injective (hK₃set.trans hcarrier.symm)) + subst h3eq + rw [← harea] + exact curveAreaFunctional_gerverNicheBoundary K + (fun _ ht ↦ capInnerCorner_eq_paperGerverPath K.val hK ht) hΓ + +/-! ## The value of `Q` at Gerver's cap -/ + +theorem gerver_upperBoundQ_matches (X : CapTailSpace) + (hK : (X.cap.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) + (hB : (X.rightBody : Set Point) = (canonicalTailSets X.cap).1) + (hD : (X.leftBody : Set Point) = (canonicalTailSets X.cap).2) : + rightAngleAreaFunctional X.cap.val = upperBoundQ X := by + obtain ⟨-, -, hxL, hYD, -, hparamD, hxR, hXB, -, hparamB, -, -⟩ := + gerver_tailGeometry X.cap X.rightBody X.leftBody hK hB hD + obtain ⟨hltB, -, hinjB, himgB, hstartB, hendB⟩ := hparamB + obtain ⟨hltD, -, hinjD, himgD, hstartD, hendD⟩ := hparamD + -- ### The two tail arcs carry the curve areas of the two inner contact curves + have hareaB : convexArcArea X.rightBody (Real.pi + paperGerverConstants.2.1) + (3 * Real.pi / 2) = curveAreaFunctional gerverRightContactBV := + convexArcArea_eq_curveAreaFunctional_of_injOn gerverRightContactBV hltB + gerverRightContactBV_apply hinjB himgB hstartB hendB + have hareaD : convexArcArea X.leftBody (3 * Real.pi / 2) + (3 * Real.pi / 2 + paperGerverConstants.2.2) = curveAreaFunctional gerverLeftContactBV := + convexArcArea_eq_curveAreaFunctional_of_injOn gerverLeftContactBV hltD + gerverLeftContactBV_apply hinjD himgD hstartD hendD + -- ### Both connector segments have coincident endpoints, hence vanishing signed area + have hsegL : segmentArea (rightLeftTailArcs X.rightBody X.leftBody).2.endPoint + (distinguishedCapSides X.cap.val).2.corner = 0 := by + rw [hYD, hxL, segmentArea, planeCrossProduct]; ring + have hsegR : segmentArea (distinguishedCapSides X.cap.val).1.corner + (rightLeftTailArcs X.rightBody X.leftBody).1.startPoint = 0 := by + rw [hxR, hXB, segmentArea, planeCrossProduct]; ring + simp only [rightAngleAreaFunctional, capAreaFunctional, upperBoundQ] + rw [hareaB, hareaD, hsegL, hsegR, gerver_capNiche_area_eq X.cap hK] + ring + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The variation of `𝒬` at Gerver's cap is nonpositive + +At the Gerver base triple the tail geometry identifies the two tail endpoints with the two cap +corners, so `upperBoundQ_variation` presents the derivative as `qVariationIntegral`. Two of its +four integration windows are larger than the two active tail windows, and the excess is null: +on `(φᴿ, π/2 - θ)` one and the same contact point supports the right tail at both endpoint +normals, and likewise for the left tail on `(π/2 + θ, π/2 + φᴸ)`, so +`oppositeSurfaceData_angleImage_Ioo_eq_zero_of_mem_exposedEdge` applies. + +The variation integral is therefore the sum of the eight phase contributions +(`qVariationIntegral_eq_phaseSum`), and each of them is nonpositive +(`gerverPhaseContribution_nonpos`) because the tail support sums are exactly `1` on the two active +windows while the competitor's are at most `1`. +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +theorem gerver_upperBoundQ_variation (X Y : CapTailSpace) + (hK : (X.cap.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2)) + (hB : (X.rightBody : Set Point) = (canonicalTailSets X.cap).1) + (hD : (X.leftBody : Set Point) = (canonicalTailSets X.cap).2) : + convexDirectionalDerivative capTailCombination upperBoundQ X Y ≤ 0 := by + have horder := gerverStageTimes_strictMono + have h01 := horder (show (0 : Fin 6) < 1 by decide) + have h02 := horder (show (0 : Fin 6) < 2 by decide) + have h13 := horder (show (1 : Fin 6) < 3 by decide) + have h24 := horder (show (2 : Fin 6) < 4 by decide) + have hpi : (3 : ℝ) < Real.pi := Real.pi_gt_three + have hr : paperGerverConstants.2.1 = GerversSofa.φ := rfl + have ht2 : gerverStageTimes 2 = GerversSofa.θ := by simp [gerverStageTimes] + have ht3 : gerverStageTimes 3 = Real.pi / 2 - GerversSofa.θ := by simp [gerverStageTimes] + simp only [gerverStageTimes, Matrix.cons_val] at h01 h02 h13 h24 + obtain ⟨-, -, hLcorner, hLend, hDvert, -, hRcorner, hRstart, hBvert, -, hsumD, hsumB⟩ := + gerver_tailGeometry X.cap X.rightBody X.leftBody hK hB hD + -- ### The general variation formula applies at this base triple + rw [upperBoundQ_variation X Y (hRstart.trans hRcorner.symm) (hLend.trans hLcorner.symm)] + -- ### The right tail carries no surface measure between its two active windows + have hinactiveB : (oppositeSurfaceData X.rightBody).1 ((fun s : ℝ ↦ (s : Real.Angle)) '' + Set.Ioo paperGerverConstants.2.1 (Real.pi / 2 - GerversSofa.θ)) = 0 := by + refine oppositeSurfaceData_angleImage_Ioo_eq_zero_of_mem_exposedEdge X.rightBody + (p := paperGerverContacts (gerverStageTimes 3) 1) h13 (by rw [hr]; linarith) ?_ ?_ + · have h : paperGerverContacts (gerverStageTimes 3) 1 = + (edgeVertices X.rightBody + ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle)).1 := hRstart.symm + rw [h, show ((paperGerverConstants.2.1 + Real.pi : ℝ) : Real.Angle) = + ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle) from by congr 1; ring] + exact edgeVertices_fst_mem _ _ + · have h : paperGerverContacts (gerverStageTimes 3) 1 = + (edgeVertices X.rightBody + ((Real.pi + gerverStageTimes 3 : ℝ) : Real.Angle)).2 := by rw [hBvert] + rw [h, show ((Real.pi / 2 - GerversSofa.θ + Real.pi : ℝ) : Real.Angle) = + ((Real.pi + gerverStageTimes 3 : ℝ) : Real.Angle) from by rw [ht3]; congr 1; ring] + exact edgeVertices_snd_mem _ _ + -- ### The left tail carries no surface measure between its two active windows + have hinactiveD : (oppositeSurfaceData X.leftBody).1 ((fun s : ℝ ↦ (s : Real.Angle)) '' + Set.Ioo (Real.pi / 2 + GerversSofa.θ) + (Real.pi / 2 + paperGerverConstants.2.2)) = 0 := by + have hlt : Real.pi / 2 + GerversSofa.θ < Real.pi / 2 + paperGerverConstants.2.2 := by + change Real.pi / 2 + GerversSofa.θ < Real.pi / 2 + (Real.pi / 2 - GerversSofa.φ) + linarith + refine oppositeSurfaceData_angleImage_Ioo_eq_zero_of_mem_exposedEdge X.leftBody + (p := paperGerverContacts (gerverStageTimes 2) 3) hlt (by + change Real.pi / 2 + (Real.pi / 2 - GerversSofa.φ) < + Real.pi / 2 + GerversSofa.θ + Real.pi + linarith) ?_ ?_ + · have h : paperGerverContacts (gerverStageTimes 2) 3 = + (edgeVertices X.leftBody + ((3 * Real.pi / 2 + gerverStageTimes 2 : ℝ) : Real.Angle)).1 := by rw [hDvert] + rw [h, show ((Real.pi / 2 + GerversSofa.θ + Real.pi : ℝ) : Real.Angle) = + ((3 * Real.pi / 2 + gerverStageTimes 2 : ℝ) : Real.Angle) from by + rw [ht2]; congr 1; ring] + exact edgeVertices_fst_mem _ _ + · have h : paperGerverContacts (gerverStageTimes 2) 3 = + (edgeVertices X.leftBody + ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)).2 := hLend.symm + rw [h, show ((Real.pi / 2 + paperGerverConstants.2.2 + Real.pi : ℝ) : Real.Angle) = + ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle) from by congr 1; ring] + exact edgeVertices_snd_mem _ _ + -- ### On the two active windows the base support sums are exactly one + have hbaseB : ∀ t ∈ gerverPhaseAngles 3 ∪ gerverPhaseAngles 4, + supportValue X.cap.val.val t + (oppositeSurfaceData X.rightBody).2 t = 1 := by + intro t ht + rw [gerverPhaseAngles_three_union_four] at ht + obtain ⟨s, hs, rfl⟩ := ht + have h := hsumB s (by rw [ht3]; exact ⟨hs.1, hs.2.le⟩) + simp only [oppositeSurfaceData] + rw [show ((s : Real.Angle) + ((Real.pi : ℝ) : Real.Angle)) = + ((Real.pi + s : ℝ) : Real.Angle) from by rw [← Real.Angle.coe_add]; congr 1; ring] + exact h + have hbaseD : ∀ t ∈ gerverPhaseAngles 5 ∪ gerverPhaseAngles 6, + supportValue X.cap.val.val t + (oppositeSurfaceData X.leftBody).2 t = 1 := by + intro t ht + rw [gerverPhaseAngles_five_union_six] at ht + obtain ⟨u, hu, rfl⟩ := ht + have h := hsumD (u - Real.pi / 2) (by + rw [gerverStageTimes_zero, ht2] + exact ⟨by linarith [hu.1], by linarith [hu.2]⟩) + rw [show ((Real.pi / 2 + (u - Real.pi / 2) : ℝ) : Real.Angle) = (u : Real.Angle) from by + congr 1; ring] at h + simp only [oppositeSurfaceData] + rw [show ((u : Real.Angle) + ((Real.pi : ℝ) : Real.Angle)) = + ((3 * Real.pi / 2 + (u - Real.pi / 2) : ℝ) : Real.Angle) from by + rw [← Real.Angle.coe_add]; congr 1; ring] + exact h + -- ### Each of the eight phase contributions is nonpositive + rw [qVariationIntegral_eq_phaseSum X Y hinactiveB hinactiveD] + exact Finset.sum_nonpos fun i _ ↦ gerverPhaseContribution_nonpos X Y + (gerver_phaseMeasures X.cap X.rightBody X.leftBody hK hB hD) hbaseB hbaseD i + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Bounds.Upper.Properties`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Bounds / Upper / Properties +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem upperBoundQ_quadratic_concave : + IsQuadraticFunctional capTailCombination upperBoundQ ∧ + IsConvexFunctional capTailCombination upperBoundQ true := by + obtain ⟨hcomb, -⟩ := capTail_isConvexDomain + obtain ⟨hmidConv, hmidQuad, hrConv, hrQuad, hlConv, hlQuad⟩ := sofaMamikon_quadratic_convex + -- ### The three coordinate projections preserve the interpolation + have hcapval : ∀ t X Y, (capTailCombination t X Y).cap = specialCapCombination t X.cap Y.cap := + fun t X Y ↦ Subtype.ext (Subtype.ext + ((hcomb t X Y).1.trans (specialCap_isConvexDomain.1 t X.cap Y.cap).symm)) + have hcap : IsConvexLinear capTailCombination specialCapCombination + fun X : CapTailSpace ↦ X.cap := hcapval + have hright : IsConvexLinear capTailCombination convexBodyCombination + fun X : CapTailSpace ↦ X.rightBody := fun t X Y ↦ (hcomb t X Y).2.1 + have hleft : IsConvexLinear capTailCombination convexBodyCombination + fun X : CapTailSpace ↦ X.leftBody := fun t X Y ↦ (hcomb t X Y).2.2 + -- ### The middle equivalence exhibits the affine part of the cap term + have hAlin : IsConvexLinear capTailCombination realCombination + fun X : CapTailSpace ↦ middleMamikon X.cap + upperBoundMiddle X.cap := by + intro t X Y + have h := middleMamikon_equivalent_neg_upperBoundMiddle t X.cap Y.cap + simp only [sub_neg_eq_add, realCombination] at h + change middleMamikon (capTailCombination t X Y).cap + + upperBoundMiddle (capTailCombination t X Y).cap = realCombination t _ _ + rw [hcapval t X Y] + simp only [realCombination] + linarith + -- ### The exact decomposition, with the cap term split as affine minus convex + have hQ : upperBoundQ = fun X : CapTailSpace ↦ + ((middleMamikon X.cap + upperBoundMiddle X.cap + -middleMamikon X.cap) + + -rightTailMamikon X.rightBody) + -leftTailMamikon X.leftBody := by + funext X + rw [upperBoundQ_decomposition X] + ring + rw [hQ] + exact ⟨((hAlin.isQuadraticFunctional.add (hmidQuad.comp_isConvexLinear hcap).neg).add + (hrQuad.comp_isConvexLinear hright).neg).add (hlQuad.comp_isConvexLinear hleft).neg, + (((hAlin.isConvexFunctional true).add (hmidConv.comp_isConvexLinear hcap).neg).add + (hrConv.comp_isConvexLinear hright).neg).add (hlConv.comp_isConvexLinear hleft).neg⟩ + +/-- The right tail's initial vertex, the right fan point and the right inner corner all lie on the +right distinguished inner wall `b_K(φᴿ)`, so the two signed segment areas along it add. -/ +private theorem segmentArea_add_segmentArea_rightWall (X : CapTailSpace) : + segmentArea (rightLeftTailArcs X.rightBody X.leftBody).1.startPoint + (distinguishedCapSides X.cap.val).1.fanPoint + + segmentArea (distinguishedCapSides X.cap.val).1.fanPoint + (distinguishedCapSides X.cap.val).1.corner = + segmentArea (rightLeftTailArcs X.rightBody X.leftBody).1.startPoint + (distinguishedCapSides X.cap.val).1.corner := by + obtain ⟨hrIoo, -, -⟩ := paperGerverConstants_snd_mem_Ioo + have hcosr : 0 < Real.cos paperGerverConstants.2.1 := + Real.cos_pos_of_mem_Ioo ⟨by linarith [Real.pi_pos, hrIoo.1], hrIoo.2⟩ + have hXBdef : (rightLeftTailArcs X.rightBody X.leftBody).1.startPoint = + (edgeVertices X.rightBody ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle)).1 := rfl + have hWdef : (distinguishedCapSides X.cap.val).1.fanPoint = + (wedgeEndpoints X.cap.val paperGerverConstants.2.1).1 := rfl + have hxRdef : (distinguishedCapSides X.cap.val).1.corner = + capInnerCorner X.cap.val paperGerverConstants.2.1 := rfl + have hXB : inner ℝ + (edgeVertices X.rightBody ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle)).1 + (normalVector ((paperGerverConstants.2.1 : ℝ) : Real.Angle)) = + supportValue (X.cap.val.val : Set Point) + ((paperGerverConstants.2.1 : ℝ) : Real.Angle) - 1 := by + have hmem : inner ℝ + (edgeVertices X.rightBody ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle)).1 + (normalVector ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle)) = + supportValue (X.rightBody : Set Point) + ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle) := + (edgeVertices_fst_mem X.rightBody _).2 + have hneg : normalVector ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle) = + -normalVector ((paperGerverConstants.2.1 : ℝ) : Real.Angle) := by + rw [show (Real.pi + paperGerverConstants.2.1 : ℝ) = + paperGerverConstants.2.1 + Real.pi from by ring] + exact normalVector_add_pi _ + rw [hneg, inner_neg_right] at hmem + have heq := X.right_eq paperGerverConstants.2.1 (by simp) + linarith + have hW : inner ℝ (wedgeEndpoints X.cap.val paperGerverConstants.2.1).1 + (normalVector ((paperGerverConstants.2.1 : ℝ) : Real.Angle)) = + supportValue (X.cap.val.val : Set Point) + ((paperGerverConstants.2.1 : ℝ) : Real.Angle) - 1 := by + change inner ℝ (((supportValue (X.cap.val.val : Set Point) + ((paperGerverConstants.2.1 : ℝ) : Real.Angle) - 1) / + Real.cos paperGerverConstants.2.1) • normalVector 0) + (normalVector ((paperGerverConstants.2.1 : ℝ) : Real.Angle)) = _ + have h0 : normalVector (0 : Real.Angle) 0 = 1 := by simp [normalVector, frame] + have h1 : normalVector (0 : Real.Angle) 1 = 0 := by simp [normalVector, frame] + rw [real_inner_smul_left, inner_normalVector_real, h0, h1, one_mul, zero_mul, add_zero, + div_mul_cancel₀ _ hcosr.ne'] + rw [hXBdef, hWdef, hxRdef] + linarith [segmentArea_sub_segmentArea_of_inner_normalVector_eq hXB hW + (inner_capInnerCorner_normalVector X.cap.val paperGerverConstants.2.1)] + +/-- The left inner corner, the left fan point and the left tail's final vertex all lie on the +left distinguished inner wall `d_K(φᴸ)`, so the two signed segment areas along it add. -/ +private theorem segmentArea_add_segmentArea_leftWall (X : CapTailSpace) : + segmentArea (distinguishedCapSides X.cap.val).2.corner + (distinguishedCapSides X.cap.val).2.fanPoint + + segmentArea (distinguishedCapSides X.cap.val).2.fanPoint + (rightLeftTailArcs X.rightBody X.leftBody).2.endPoint = + segmentArea (distinguishedCapSides X.cap.val).2.corner + (rightLeftTailArcs X.rightBody X.leftBody).2.endPoint := by + obtain ⟨-, hlIoo, -⟩ := paperGerverConstants_snd_mem_Ioo + have hsinl : 0 < Real.sin paperGerverConstants.2.2 := + Real.sin_pos_of_pos_of_lt_pi hlIoo.1 (by linarith [Real.pi_pos, hlIoo.2]) + have hZdef : (distinguishedCapSides X.cap.val).2.fanPoint = + (wedgeEndpoints X.cap.val paperGerverConstants.2.2).2 := rfl + have hxLdef : (distinguishedCapSides X.cap.val).2.corner = + capInnerCorner X.cap.val paperGerverConstants.2.2 := rfl + have hYDdef : (rightLeftTailArcs X.rightBody X.leftBody).2.endPoint = + (edgeVertices X.leftBody + ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)).2 := rfl + have hxL : inner ℝ (capInnerCorner X.cap.val paperGerverConstants.2.2) + (normalVector ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue (X.cap.val.val : Set Point) + ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle) - 1 := by + rw [normalVector_add_pi_div_two_real] + exact inner_capInnerCorner_tangentVector X.cap.val paperGerverConstants.2.2 + have hZ : inner ℝ (wedgeEndpoints X.cap.val paperGerverConstants.2.2).2 + (normalVector ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue (X.cap.val.val : Set Point) + ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle) - 1 := by + change inner ℝ (((supportValue (X.cap.val.val : Set Point) + ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos (Real.pi / 2 - paperGerverConstants.2.2)) • + tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) + (normalVector ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle)) = _ + rw [real_inner_smul_left, inner_tangentVector_normalVector_real, + show paperGerverConstants.2.2 + Real.pi / 2 - Real.pi / 2 = paperGerverConstants.2.2 from + by ring, Real.cos_pi_div_two_sub, div_mul_cancel₀ _ hsinl.ne'] + have hYD : inner ℝ (edgeVertices X.leftBody + ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)).2 + (normalVector ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue (X.cap.val.val : Set Point) + ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle) - 1 := by + have hmem : inner ℝ (edgeVertices X.leftBody + ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)).2 + (normalVector ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)) = + supportValue (X.leftBody : Set Point) + ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle) := + (edgeVertices_snd_mem X.leftBody _).2 + have hneg : normalVector ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle) = + -normalVector ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle) := by + rw [show (3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) = + paperGerverConstants.2.2 + Real.pi / 2 + Real.pi from by ring] + exact normalVector_add_pi _ + rw [hneg, inner_neg_right] at hmem + have heq := X.left_eq paperGerverConstants.2.2 (by simp) + rw [show (Real.pi / 2 + paperGerverConstants.2.2 : ℝ) = + paperGerverConstants.2.2 + Real.pi / 2 from by ring] at heq + linarith + rw [hZdef, hxLdef, hYDdef] + linarith [segmentArea_sub_segmentArea_of_inner_normalVector_eq hxL hZ hYD] + +theorem areaFunctional_le_upperBoundQ (X : CapTailSpace) + (hB : (X.rightBody : Set Point) = (canonicalTailSets X.cap).1) + (hD : (X.leftBody : Set Point) = (canonicalTailSets X.cap).2) : + rightAngleAreaFunctional X.cap.val ≤ upperBoundQ X := by + have hsplit := (niche_three_regions_area X.cap _ _ _ rfl rfl rfl).2.2.2.2.2.2.2.2.2.2 + have hmid := capMiddle_area_lower_bound X.cap + rw [Set.sdiff_sdiff] at hmid + obtain ⟨hrightTail, hleftTail⟩ := + canonicalTail_niche_area_lower_bounds X.cap X.rightBody X.leftBody hB hD + have hwallR := segmentArea_add_segmentArea_rightWall X + have hwallL := segmentArea_add_segmentArea_leftWall X + have hswapR := segmentArea_swap (rightLeftTailArcs X.rightBody X.leftBody).1.startPoint + (distinguishedCapSides X.cap.val).1.corner + have hswapL := segmentArea_swap (distinguishedCapSides X.cap.val).2.corner + (rightLeftTailArcs X.rightBody X.leftBody).2.endPoint + simp only [rightAngleAreaFunctional, capAreaFunctional, upperBoundQ] + linarith + +theorem gerver_upperBoundQ_maximum : + ∃ X : CapTailSpace, + (X.cap.val.val : Set Point) = capOfSofa paperGerverSofa (Real.pi / 2) ∧ + (X.rightBody : Set Point) = (canonicalTailSets X.cap).1 ∧ + (X.leftBody : Set Point) = (canonicalTailSets X.cap).2 ∧ + ∀ Y : CapTailSpace, upperBoundQ Y ≤ upperBoundQ X := by + -- ### The special-cap space contains Gerver's cap, and the canonical tails extend it to `𝓛` + obtain ⟨K, hK⟩ := specialCap_isConvexDomain.2.2.2 + obtain ⟨X, hXcap, hB, hD⟩ := exists_canonicalCapTail K + subst K + refine ⟨X, hK, hB, hD, ?_⟩ + -- ### `𝒬` is quadratic and concave, so nonpositive variation is exactly maximality + obtain ⟨hquad, hconcave⟩ := upperBoundQ_quadratic_concave + exact (quadratic_maximum_iff capTailCombination capTail_isConvexDomain.2 upperBoundQ hquad + hconcave X).mpr fun Y ↦ gerver_upperBoundQ_variation X Y hK hB hD + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Sofa.Balanced`. +* `Sofa.BalancedConsumed`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Sofa / Balanced +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A monotonized standard-position sofa whose associated cap is a balanced maximum cap. -/ +def IsBalancedMaximumSofa (s : Set Point) (ω : ℝ) : Prop := + (∃ s₀ : Set Point, IsStandardPosition s₀ ω ∧ s = monotonization s₀ ω) ∧ + ∃ K : CapSpace ω, (K.val : Set Point) = capOfSofa s ω ∧ IsBalancedMaximumCap K + +theorem exists_balancedMaximumSofa (ω : ℝ) (hω : 0 < ω) + (hω' : ω ≤ Real.pi / 2) : + ∃ K : CapSpace ω, IsBalancedMaximumCap K ∧ + IsBalancedMaximumSofa ((K.val : Set Point) \ capNiche K) ω ∧ + ∀ s : Set Point, HasRotationAngle s ω → + ClassicalResults.area s ≤ ClassicalResults.area ((K.val : Set Point) \ capNiche K) := by + obtain ⟨K, hK⟩ := exists_balancedMaximumCap ω hω hω' + obtain ⟨s₀, hs₀, hcap⟩ := (cap_isMonotoneCap_iff_niche_subset K).mpr + (balancedMaximumCap_niche_subset K hK) + have hshape := monotoneSofa_structure (monotonization s₀ ω) ω ⟨s₀, hs₀, rfl⟩ K hcap + have hmonoS : ∃ s₀ : Set Point, IsStandardPosition s₀ ω ∧ + (K.val : Set Point) \ capNiche K = monotonization s₀ ω := ⟨s₀, hs₀, hshape.symm⟩ + have hcapS : (K.val : Set Point) = capOfSofa ((K.val : Set Point) \ capNiche K) ω := by + rwa [← hshape] + have hareaK := capAreaFunctional_eq_sofaArea _ ω hmonoS K hcapS + refine ⟨K, hK, ⟨hmonoS, K, hcapS, hK⟩, ?_⟩ + intro s hs + obtain ⟨v, hv⟩ := (exists_standardPosition_translation s ω hs ⟨hω, hω'⟩).1 + let s₁ := (fun p ↦ p + v) '' s + have hstd := standardPosition_monotonization_standard s₁ ω hv + obtain ⟨L, hL⟩ := standardPosition_cap (monotonization s₁ ω) ω hstd.1 + calc + ClassicalResults.area s = ClassicalResults.area s₁ := + (ClassicalResults.area_image_add s v).symm + _ ≤ ClassicalResults.area (monotonization s₁ ω) := + MeasureTheory.measureReal_mono hstd.2 hstd.1.1.measure_lt_top.ne + _ = capAreaFunctional L := + (capAreaFunctional_eq_sofaArea _ ω ⟨s₁, hv, rfl⟩ L hL).symm + _ ≤ capAreaFunctional K := balancedMaximumCap_maximizes_area K hK L + _ = _ := hareaK + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Sofa / Balanced Consumed +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The right wedge gap is bounded below by the calculation variable `g`. -/ +private theorem le_wedgeGaps_fst_of_calculationVariables {ω : ℝ} (K : CapSpace ω) + (hω' : ω < Real.pi / 2) {c d r g : ℝ} + (hccos : c * Real.cos ω = 1 - Real.sin ω) + (hsupp : supportValue K.val (0 : Real.Angle) = c + d) + (hrsin : r * Real.sin ω = Real.sin ω - d * Real.cos ω) + (hgsq : g ^ 2 = 1 - r ^ 2) + {t : ℝ} (ht : t ∈ Set.Ioo 0 ω) : + g ≤ (wedgeGaps K t).1 := by + have hpi := Real.pi_pos + have hω0 : 0 < ω := K.property.1 + have hcos : 0 < Real.cos ω := Real.cos_pos_of_mem_Ioo ⟨by linarith, hω'⟩ + have hsin : 0 < Real.sin ω := Real.sin_pos_of_pos_of_lt_pi hω0 (by linarith) + have hcost : 0 < Real.cos t := + Real.cos_pos_of_mem_Ioo ⟨by linarith [ht.1], by linarith [ht.2]⟩ + have hsint : 0 ≤ Real.sin t := (Real.sin_pos_of_pos_of_lt_pi ht.1 (by linarith [ht.2])).le + have hsinδ : 0 ≤ Real.sin ω * Real.cos t - Real.cos ω * Real.sin t := by + rw [← Real.sin_sub] + exact (Real.sin_pos_of_pos_of_lt_pi (by linarith [ht.2]) (by linarith [ht.1])).le + have hcs : r * Real.sin t + g * Real.cos t ≤ 1 := by + nlinarith [sq_nonneg (r - Real.sin t), sq_nonneg (g - Real.cos t), + Real.sin_sq_add_cos_sq t] + -- the support value at `t` is bounded by the value at the intersection point `R` + have hbound : Real.sin ω * supportValue K.val (t : Real.Angle) ≤ + Real.sin (ω - t) * (c + d) + Real.sin t := by + rw [mul_comm, ← le_div_iff₀ hsin] + apply csSup_le (K.val.nonempty.image _) + rintro _ ⟨p, hp, rfl⟩ + have hx : p 0 ≤ c + d := by + rw [← hsupp] + simpa [normalVector, frame, PiLp.inner_apply] using + inner_le_supportValue K.val hp (0 : Real.Angle) + have hu : Real.cos ω * p 0 + Real.sin ω * p 1 ≤ 1 := by + have hle := inner_le_supportValue K.val hp (ω : Real.Angle) + rw [K.property.2.2.1] at hle + simpa [normalVector, frame, PiLp.inner_apply] using hle + have hval : inner ℝ p (normalVector (t : Real.Angle)) = + Real.cos t * p 0 + Real.sin t * p 1 := by + simp [normalVector, frame, PiLp.inner_apply] + simp only [le_div_iff₀ hsin, hval, Real.sin_sub] + nlinarith [mul_nonneg hsinδ (sub_nonneg.2 hx), mul_nonneg hsint (sub_nonneg.2 hu)] + have hRu : Real.sin ω * ((c + d) * Real.cos t + r * Real.sin t) = + Real.sin (ω - t) * (c + d) + Real.sin t := by + rw [Real.sin_sub] + linear_combination Real.sin t * hrsin + Real.sin t * hccos + have hSle : supportValue K.val (t : Real.Angle) ≤ (c + d) * Real.cos t + r * Real.sin t := by + rw [← hRu] at hbound + exact le_of_mul_le_mul_left hbound hsin + have hkey : supportValue K.val (t : Real.Angle) - 1 ≤ (c + d - g) * Real.cos t := by + nlinarith + rw [wedgeGaps_fst_eq_supportValue, hsupp, ← sub_nonneg] + have := (div_le_iff₀ hcost).2 hkey + linarith + +/-- The exposed top face of a cap contains the horizontal segment of its own atomic +surface mass, measured leftwards from the upper distinguished point. -/ +private theorem topFace_sub_smul_normalVector_mem {ω : ℝ} (K : CapSpace ω) + (ho : (stripParallelogram ω).2.2 ∈ (K.val : Set Point)) {c g : ℝ} + (hccos : c * Real.cos ω = 1 - Real.sin ω) + (hcoord : (stripParallelogram ω).2.2 = !₂[c, 1]) (hcos : 0 < Real.cos ω) + (hgnn : 0 ≤ g) + (hg : g ≤ (surfaceAreaMeasure K.val {((Real.pi / 2 : ℝ) : Real.Angle)}).toReal) : + (stripParallelogram ω).2.2 - g • normalVector (0 : Real.Angle) ∈ (K.val : Set Point) := by + have hT1 : supportValue K.val ((Real.pi / 2 : ℝ) : Real.Angle) = 1 := K.property.2.2.2.1 + have htan : tangentVector ((Real.pi / 2 : ℝ) : Real.Angle) = -normalVector (0 : Real.Angle) := by + ext i + fin_cases i <;> simp [tangentVector, normalVector, frame] + have hface : ∀ p ∈ exposedEdge K.val ((Real.pi / 2 : ℝ) : Real.Angle), p 1 = 1 ∧ p 0 ≤ c := by + intro p hp + have hpe : inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue K.val ((Real.pi / 2 : ℝ) : Real.Angle) := hp.2 + rw [hT1] at hpe + have h1 : p 1 = 1 := by simpa [normalVector, frame, PiLp.inner_apply] using hpe + refine ⟨h1, ?_⟩ + have hle := inner_le_supportValue K.val hp.1 (ω : Real.Angle) + rw [K.property.2.2.1] at hle + simp [normalVector, frame, PiLp.inner_apply, h1] at hle + nlinarith + have hoedge : (stripParallelogram ω).2.2 ∈ + exposedEdge K.val ((Real.pi / 2 : ℝ) : Real.Angle) := by + refine ⟨ho, ?_⟩ + change inner ℝ (stripParallelogram ω).2.2 (normalVector _) = _ + rw [hT1, hcoord] + simp [normalVector, frame, PiLp.inner_apply] + have hsnd := edgeVertices_snd_mem K.val ((Real.pi / 2 : ℝ) : Real.Angle) + have hsndle : inner ℝ (edgeVertices K.val ((Real.pi / 2 : ℝ) : Real.Angle)).2 + (tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) ≤ + inner ℝ (stripParallelogram ω).2.2 (tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) := by + rw [inner_edgeVertices_snd_tangent] + refine csInf_le ?_ ⟨_, hoedge, rfl⟩ + exact ((isCompact_exposedEdge K.val _).image (continuous_id.inner continuous_const)).bddBelow + have hsndeq : (edgeVertices K.val ((Real.pi / 2 : ℝ) : Real.Angle)).2 = + (stripParallelogram ω).2.2 := by + obtain ⟨hy, hx⟩ := hface _ hsnd + have hocx : inner ℝ (stripParallelogram ω).2.2 + (tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) = -c := by + rw [htan, inner_neg_right, hcoord] + simp [normalVector, frame, PiLp.inner_apply] + have hvx : inner ℝ (edgeVertices K.val ((Real.pi / 2 : ℝ) : Real.Angle)).2 + (tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) = + -(edgeVertices K.val ((Real.pi / 2 : ℝ) : Real.Angle)).2 0 := by + rw [htan, inner_neg_right] + simp [normalVector, frame, PiLp.inner_apply] + rw [hocx, hvx] at hsndle + have hx0 : (edgeVertices K.val ((Real.pi / 2 : ℝ) : Real.Angle)).2 0 = c := by linarith + rw [hcoord] + ext i + fin_cases i + · simpa using hx0 + · simpa using hy + obtain ⟨L, hL⟩ : ∃ L, (surfaceAreaMeasure K.val {((Real.pi / 2 : ℝ) : Real.Angle)}).toReal = L := + ⟨_, rfl⟩ + rw [hL] at hg + have hatom := surfaceAreaMeasure_atom_length K.val ((Real.pi / 2 : ℝ) : Real.Angle) + rw [hL] at hatom + have hfstK : (stripParallelogram ω).2.2 - L • normalVector (0 : Real.Angle) ∈ + (K.val : Set Point) := by + rw [show (stripParallelogram ω).2.2 - L • normalVector (0 : Real.Angle) = + (edgeVertices K.val ((Real.pi / 2 : ℝ) : Real.Angle)).1 from by + rw [hatom.2.2, hsndeq, htan, smul_neg, ← sub_eq_add_neg]] + exact (edgeVertices_fst_mem K.val _).1 + rcases eq_or_lt_of_le (hgnn.trans hg) with hL0 | hLpos + · have hg0 : g = 0 := le_antisymm (hg.trans hL0.symm.le) hgnn + simpa [hg0] using ho + · have hkey := K.val.convex ho hfstK (a := 1 - g / L) (b := g / L) + (by + have : g / L ≤ 1 := (div_le_one hLpos).2 hg + linarith) + (div_nonneg hgnn hLpos.le) (by ring) + have hsmul : (1 - g / L) • (stripParallelogram ω).2.2 + + (g / L) • ((stripParallelogram ω).2.2 - L • normalVector (0 : Real.Angle)) = + (stripParallelogram ω).2.2 - g • normalVector (0 : Real.Angle) := by + rw [smul_sub, smul_smul, div_mul_cancel₀ _ hLpos.ne'] + module + rwa [hsmul] at hkey + +/-- The three distinguished points lie in the inward quadrant at the angle `π / 2 - ω` +once the two contact points realize the strict calculation inequalities. -/ +private theorem consumed_points_subset_innerQuadrant {ω : ℝ} (K : CapSpace ω) + (hω4 : Real.pi / 4 < ω) (hω' : ω < Real.pi / 2) {c : ℝ} (hcpos : 0 < c) + (hc0 : (stripParallelogram ω).2.2 - tangentVector 0 = c • normalVector (0 : Real.Angle)) + (hcω : (stripParallelogram ω).2.2 - normalVector (ω : Real.Angle) = + c • tangentVector (ω : Real.Angle)) + {p q : Point} (hp : p ∈ (K.val : Set Point)) (hq : q ∈ (K.val : Set Point)) + (h1 : 1 < inner ℝ (p - ((stripParallelogram ω).2.2 - tangentVector 0)) + (normalVector ((Real.pi / 2 - ω : ℝ) : Real.Angle))) + (h2 : 1 < inner ℝ (q - ((stripParallelogram ω).2.2 - normalVector (ω : Real.Angle))) + (tangentVector ((Real.pi / 2 - ω : ℝ) : Real.Angle))) : + ({0, (stripParallelogram ω).2.2 - tangentVector 0, + (stripParallelogram ω).2.2 - normalVector (ω : Real.Angle)} : Set Point) ⊆ + innerQuadrant (K.val : Set Point) (Real.pi / 2 - ω) := by + have hpi := Real.pi_pos + have hcos : 0 < Real.cos ω := Real.cos_pos_of_mem_Ioo ⟨by linarith, hω'⟩ + have hsin : 0 < Real.sin ω := Real.sin_pos_of_pos_of_lt_pi (by linarith) (by linarith) + have hcslt : Real.cos ω < Real.sin ω := by + rw [← Real.sin_pi_div_two_sub] + exact Real.strictMonoOn_sin ⟨by linarith, by linarith⟩ ⟨by linarith, by linarith⟩ (by linarith) + have hnt : normalVector ((Real.pi / 2 - ω + Real.pi / 2 : ℝ) : Real.Angle) = + tangentVector ((Real.pi / 2 - ω : ℝ) : Real.Angle) := by + ext i + fin_cases i <;> + simp [normalVector, tangentVector, frame, Real.cos_add, Real.sin_add, + -Real.Angle.coe_sub, -Real.Angle.coe_add] + have hnn : inner ℝ (normalVector (0 : Real.Angle)) + (normalVector ((Real.pi / 2 - ω : ℝ) : Real.Angle)) = Real.sin ω := by + simp [normalVector, frame, PiLp.inner_apply, Real.cos_pi_div_two_sub, -Real.Angle.coe_sub] + have hnt' : inner ℝ (normalVector (0 : Real.Angle)) + (tangentVector ((Real.pi / 2 - ω : ℝ) : Real.Angle)) = -Real.cos ω := by + simp [normalVector, tangentVector, frame, PiLp.inner_apply, Real.sin_pi_div_two_sub, + -Real.Angle.coe_sub] + have htn : inner ℝ (tangentVector (ω : Real.Angle)) + (normalVector ((Real.pi / 2 - ω : ℝ) : Real.Angle)) = + Real.cos ω ^ 2 - Real.sin ω ^ 2 := by + simp [tangentVector, normalVector, frame, PiLp.inner_apply, Real.cos_pi_div_two_sub, + Real.sin_pi_div_two_sub, -Real.Angle.coe_sub] + ring + have htt : inner ℝ (tangentVector (ω : Real.Angle)) + (tangentVector ((Real.pi / 2 - ω : ℝ) : Real.Angle)) = + 2 * (Real.sin ω * Real.cos ω) := by + simp [tangentVector, frame, PiLp.inner_apply, Real.cos_pi_div_two_sub, + Real.sin_pi_div_two_sub, -Real.Angle.coe_sub] + ring + have hA := inner_le_supportValue K.val hp ((Real.pi / 2 - ω : ℝ) : Real.Angle) + have hB := inner_le_supportValue K.val hq ((Real.pi / 2 - ω + Real.pi / 2 : ℝ) : Real.Angle) + rw [hnt] at hB + have hstrict1 : c * Real.sin ω < + supportValue K.val ((Real.pi / 2 - ω : ℝ) : Real.Angle) - 1 := by + rw [inner_sub_left, hc0, real_inner_smul_left, hnn] at h1 + linarith + have hstrict2 : c * (2 * (Real.sin ω * Real.cos ω)) < + supportValue K.val ((Real.pi / 2 - ω + Real.pi / 2 : ℝ) : Real.Angle) - 1 := by + rw [inner_sub_left, hcω, real_inner_smul_left, htt] at h2 + linarith + have hmem : ∀ x : Point, + inner ℝ x (normalVector ((Real.pi / 2 - ω : ℝ) : Real.Angle)) < + supportValue K.val ((Real.pi / 2 - ω : ℝ) : Real.Angle) - 1 → + inner ℝ x (tangentVector ((Real.pi / 2 - ω : ℝ) : Real.Angle)) < + supportValue K.val ((Real.pi / 2 - ω + Real.pi / 2 : ℝ) : Real.Angle) - 1 → + x ∈ innerQuadrant (K.val : Set Point) (Real.pi / 2 - ω) := by + intro x hx1 hx2 + refine ⟨hx1, ?_⟩ + change inner ℝ x (normalVector ((Real.pi / 2 - ω + Real.pi / 2 : ℝ) : Real.Angle)) < _ + rwa [hnt] + have hpos1 : 0 < c * Real.sin ω := mul_pos hcpos hsin + have hpos2 : 0 < c * (2 * (Real.sin ω * Real.cos ω)) := by + have := mul_pos hsin hcos + nlinarith + intro x hx + simp only [Set.mem_insert_iff, Set.mem_singleton_iff] at hx + rcases hx with rfl | rfl | rfl + · exact hmem _ (by rw [inner_zero_left]; linarith) (by rw [inner_zero_left]; linarith) + · refine hmem _ ?_ ?_ + · rw [hc0, real_inner_smul_left, hnn] + exact hstrict1 + · rw [hc0, real_inner_smul_left, hnt'] + nlinarith + · refine hmem _ ?_ ?_ + · rw [hcω, real_inner_smul_left, htn] + have hneg : c * (Real.cos ω ^ 2 - Real.sin ω ^ 2) < 0 := + mul_neg_of_pos_of_neg hcpos (by nlinarith) + linarith + · rw [hcω, real_inner_smul_left, htt] + exact hstrict2 + +/-- Auxiliary form of the consumption theorem under the right-hand support bound. -/ +private theorem consumed_of_le_supportValue_zero {ω : ℝ} + (hω : Real.arccos (5 / 11 : ℝ) ≤ ω) (hω' : ω < Real.pi / 2) + (K : CapSpace ω) (hBalanced : IsBalancedMaximumCap K) + (ho : (stripParallelogram ω).2.2 ∈ (K.val : Set Point)) + (hd : rotationCalculationMinimum ⟨ω, hω, hω'⟩ + Real.tan ((Real.pi / 2 - ω) / 2) ≤ + supportValue K.val (0 : Real.Angle)) : + ({0, (stripParallelogram ω).2.2 - tangentVector 0, + (stripParallelogram ω).2.2 - normalVector (ω : Real.Angle)} : Set Point) ⊆ + innerQuadrant (K.val : Set Point) (Real.pi / 2 - ω) := by + have hpi := Real.pi_pos + have hω4 : Real.pi / 4 < ω := rotationCalculation_angle_bounds.1.trans_le hω + have hω0 : 0 < ω := by linarith + have hcos : 0 < Real.cos ω := Real.cos_pos_of_mem_Ioo ⟨by linarith, hω'⟩ + have hsin : 0 < Real.sin ω := Real.sin_pos_of_pos_of_lt_pi hω0 (by linarith) + have hgap := parallelogram_gap ω ⟨hω0.le, hω'⟩ + have hcpos : 0 < Real.tan ((Real.pi / 2 - ω) / 2) := + Real.tan_pos_of_pos_of_lt_pi_div_two (by linarith) (by linarith) + have hccos : Real.tan ((Real.pi / 2 - ω) / 2) * Real.cos ω = 1 - Real.sin ω := by + rw [hgap.2.2.2.2, Real.tan_eq_sin_div_cos] + field_simp + obtain ⟨d, hsupp⟩ : ∃ d, supportValue K.val (0 : Real.Angle) = + Real.tan ((Real.pi / 2 - ω) / 2) + d := + ⟨supportValue K.val (0 : Real.Angle) - Real.tan ((Real.pi / 2 - ω) / 2), by ring⟩ + have hdmin : rotationCalculationMinimum ⟨ω, hω, hω'⟩ ≤ d := by + rw [hsupp] at hd; linarith + have hdpos : 0 < d := (rotationCalculationMinimum_pos _).trans_le hdmin + have hq0K : supportValue K.val (0 : Real.Angle) • normalVector (0 : Real.Angle) ∈ + (K.val : Set Point) := supportValue_zero_smul_normalVector_mem K + have hdtan : d ≤ Real.tan ω := by + have hle := inner_le_supportValue K.val hq0K (ω : Real.Angle) + rw [K.property.2.2.1, real_inner_smul_left] at hle + have hinner : inner ℝ (normalVector (0 : Real.Angle)) + (normalVector (ω : Real.Angle)) = Real.cos ω := by + simp [normalVector, frame, PiLp.inner_apply] + rw [hinner, hsupp] at hle + rw [Real.tan_eq_sin_div_cos, le_div_iff₀ hcos] + linarith + have hrnn : 0 ≤ (rotationCalculationValues ⟨ω, hω, hω'⟩ ⟨d, hdmin, hdtan⟩).1 := by + change 0 ≤ 1 - d * (Real.cos ω / Real.sin ω) + rw [sub_nonneg, mul_div_assoc', div_le_one hsin] + rw [Real.tan_eq_sin_div_cos, le_div_iff₀ hcos] at hdtan + exact hdtan + obtain ⟨r, hr⟩ : + ∃ r, (rotationCalculationValues ⟨ω, hω, hω'⟩ ⟨d, hdmin, hdtan⟩).1 = r := ⟨_, rfl⟩ + obtain ⟨g, hg⟩ : + ∃ g, (rotationCalculationValues ⟨ω, hω, hω'⟩ ⟨d, hdmin, hdtan⟩).2.1 = g := ⟨_, rfl⟩ + have hrval : r = 1 - d * (Real.cos ω / Real.sin ω) := by rw [← hr]; rfl + have hgval : g = Real.sqrt (1 - r ^ 2) := by rw [← hg, ← hr]; rfl + have hrnn' : 0 ≤ r := by rw [← hr]; exact hrnn + have hrle : r ≤ 1 := by + rw [hrval] + have := mul_nonneg hdpos.le (div_nonneg hcos.le hsin.le) + linarith + have hgnn : 0 ≤ g := by rw [hgval]; exact Real.sqrt_nonneg _ + have hgsq : g ^ 2 = 1 - r ^ 2 := by + rw [hgval] + exact Real.sq_sqrt (by nlinarith) + have hrsin : r * Real.sin ω = Real.sin ω - d * Real.cos ω := by + rw [hrval] + field_simp + -- the wedge-gap infimum, hence the vertical surface atom, is at least `g` + have hinf : g ≤ (wedgeGapInfimum K).1 := by + apply le_csInf ((Set.nonempty_Ioo.mpr hω0).image _) + rintro _ ⟨t, ht, rfl⟩ + exact le_wedgeGaps_fst_of_calculationVariables K hω' hccos hsupp hrsin hgsq ht + have hsurf := hinf.trans (balancedMaximumCap_gap_le_surface K hBalanced hω').1 + have hcoord : (stripParallelogram ω).2.2 = !₂[Real.tan ((Real.pi / 2 - ω) / 2), 1] := by + have harg : Real.pi / 4 - ω / 2 = (Real.pi / 2 - ω) / 2 := by ring + simp only [stripParallelogram, harg] + have hq1K := topFace_sub_smul_normalVector_mem K ho hccos hcoord hcos hgnn hsurf + have hineq := rotationCalculation_inequalities ⟨ω, hω, hω'⟩ ⟨d, hdmin, hdtan⟩ hrnn + have hP0 : (rotationCalculationValues ⟨ω, hω, hω'⟩ ⟨d, hdmin, hdtan⟩).2.2.1 ∈ + (K.val : Set Point) := by + have hq : (rotationCalculationValues ⟨ω, hω, hω'⟩ ⟨d, hdmin, hdtan⟩).2.2.1 = + (stripParallelogram ω).2.2 - tangentVector 0 + d • normalVector (0 : Real.Angle) := rfl + rw [hq, hgap.1, ← add_smul, ← hsupp] + exact hq0K + have hP1 : (rotationCalculationValues ⟨ω, hω, hω'⟩ ⟨d, hdmin, hdtan⟩).2.2.2 ∈ + (K.val : Set Point) := by + have hq : (rotationCalculationValues ⟨ω, hω, hω'⟩ ⟨d, hdmin, hdtan⟩).2.2.2 = + (stripParallelogram ω).2.2 - + (rotationCalculationValues ⟨ω, hω, hω'⟩ ⟨d, hdmin, hdtan⟩).2.1 • + normalVector (0 : Real.Angle) := rfl + rw [hq, hg] + exact hq1K + exact consumed_points_subset_innerQuadrant K hω4 hω' hcpos hgap.1 hgap.2.1 hP0 hP1 + hineq.1 hineq.2 + +theorem balancedMaximumCap_consumed {ω : ℝ} (K : CapSpace ω) + (hω : Real.arccos (5 / 11 : ℝ) ≤ ω) (hω' : ω < Real.pi / 2) + (hBalanced : IsBalancedMaximumCap K) (hArea : 11 / 5 ≤ capAreaFunctional K) : + ∃ t ∈ Set.Ioo 0 ω, + ({0, (stripParallelogram ω).2.2 - tangentVector 0, + (stripParallelogram ω).2.2 - normalVector (ω : Real.Angle)} : Set Point) ⊆ + (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerQuadrant := by + have hpi := Real.pi_pos + have hω4 : Real.pi / 4 < ω := rotationCalculation_angle_bounds.1.trans_le hω + have hω0 : 0 < ω := by linarith + have hcos : 0 < Real.cos ω := Real.cos_pos_of_mem_Ioo ⟨by linarith, hω'⟩ + have hsin : 0 < Real.sin ω := Real.sin_pos_of_pos_of_lt_pi hω0 (by linarith) + have hgap := parallelogram_gap ω ⟨hω0.le, hω'⟩ + have hccos : Real.tan ((Real.pi / 2 - ω) / 2) * Real.cos ω = 1 - Real.sin ω := by + rw [hgap.2.2.2.2, Real.tan_eq_sin_div_cos] + field_simp + have hcoord : (stripParallelogram ω).2.2 = !₂[Real.tan ((Real.pi / 2 - ω) / 2), 1] := by + have harg : Real.pi / 4 - ω / 2 = (Real.pi / 2 - ω) / 2 := by ring + simp only [stripParallelogram, harg] + -- the upper distinguished point belongs to the limiting cap + have ho : (stripParallelogram ω).2.2 ∈ (K.val : Set Point) := by + obtain ⟨n, hn, -, -, P, hmax, hlim⟩ := hBalanced + exact ConvexBody.mem_of_tendsto_hausdorffDist _ (fun i ↦ (P i).val.val) K.val + (Filter.Eventually.of_forall fun i ↦ (hmax i).1) hlim + by_cases hcase : rotationCalculationMinimum ⟨ω, hω, hω'⟩ + + Real.tan ((Real.pi / 2 - ω) / 2) ≤ supportValue K.val (0 : Real.Angle) + · refine ⟨Real.pi / 2 - ω, ⟨by linarith, by linarith⟩, ?_⟩ + rw [rotatingHallwayParts_innerQuadrant] + exact consumed_of_le_supportValue_zero hω hω' K hBalanced ho hcase + push Not at hcase + -- otherwise the clipped-cap area bound forces the left support value to be large + have hother : rotationCalculationMinimum ⟨ω, hω, hω'⟩ + Real.tan ((Real.pi / 2 - ω) / 2) ≤ + supportValue K.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) := by + by_contra hcon + push Not at hcon + have hsub : (K.val : Set Point) ⊆ + clippedCap ω (rotationCalculationMinimum ⟨ω, hω, hω'⟩) := by + intro p hp + exact ⟨⟨K.subset_stripParallelogram hp, + (inner_le_supportValue K.val hp (0 : Real.Angle)).trans hcase.le⟩, + (inner_le_supportValue K.val hp ((ω + Real.pi / 2 : ℝ) : Real.Angle)).trans hcon.le⟩ + have hbdd : Bornology.IsBounded + (clippedCap ω (rotationCalculationMinimum ⟨ω, hω, hω'⟩)) := by + refine (EuclideanSpace.isBounded_coordinate_rectangle + (-((rotationCalculationMinimum ⟨ω, hω, hω'⟩ + + Real.tan ((Real.pi / 2 - ω) / 2)) / Real.sin ω)) + (rotationCalculationMinimum ⟨ω, hω, hω'⟩ + Real.tan ((Real.pi / 2 - ω) / 2)) + 0 1).subset ?_ + intro p hp + obtain ⟨⟨hy0, hy1⟩, -, hx, hz⟩ := (mem_clippedCap_iff _ _ p).1 hp + refine ⟨?_, hx, hy0, hy1⟩ + have h2 : -(rotationCalculationMinimum ⟨ω, hω, hω'⟩ + + Real.tan ((Real.pi / 2 - ω) / 2)) ≤ p 0 * Real.sin ω := by + nlinarith [mul_nonneg hcos.le hy0] + have h3 := (div_le_iff₀ hsin).2 h2 + rwa [neg_div] at h3 + have harea : ClassicalResults.area (K.val : Set Point) ≤ + ClassicalResults.area (clippedCap ω (rotationCalculationMinimum ⟨ω, hω, hω'⟩)) := + ENNReal.toReal_mono hbdd.measure_lt_top.ne (MeasureTheory.measure_mono hsub) + have hmin : ClassicalResults.area + (clippedCap ω (rotationCalculationMinimum ⟨ω, hω, hω'⟩)) < 11 / 5 := + clippedCap_minimum_area ⟨ω, hω, hω'⟩ + have hniche : 0 ≤ ClassicalResults.area (capNiche K) := ENNReal.toReal_nonneg + rw [capAreaFunctional] at hArea + linarith + -- pass to the mirror cap, whose zero-angle support value is the left one + have hMeq : mirrorReflection ω = ((capReflection ω : Point ≃ₗᵢ[ℝ] Point) : Point → Point) := + stripTopReflection_eq_capReflection ω hω0 K.property.2.1 + have htanω : normalVector ((ω + Real.pi / 2 : ℝ) : Real.Angle) = + tangentVector (ω : Real.Angle) := by + ext i + fin_cases i <;> + simp [normalVector, tangentVector, frame, Real.cos_add, Real.sin_add, -Real.Angle.coe_add] + have htanT : tangentVector ((Real.pi / 2 : ℝ) : Real.Angle) = -normalVector (0 : Real.Angle) := by + ext i + fin_cases i <;> simp [tangentVector, normalVector, frame] + have hu0 : capReflection ω (normalVector (0 : Real.Angle)) = tangentVector (ω : Real.Angle) := by + rw [capReflection_normalVector_angle, + show reflectedAngle ω (0 : Real.Angle) = ((ω + Real.pi / 2 : ℝ) : Real.Angle) from by + simp [reflectedAngle]] + exact htanω + have hvω : capReflection ω (tangentVector (ω : Real.Angle)) = normalVector (0 : Real.Angle) := by + rw [capReflection_tangentVector_angle, + show reflectedAngle ω (ω : Real.Angle) = ((Real.pi / 2 : ℝ) : Real.Angle) from by + simp [reflectedAngle, Real.Angle.coe_add], + htanT, neg_neg] + have hc1 : Real.tan ((Real.pi / 2 - ω) / 2) * (1 + Real.sin ω) = Real.cos ω := by + apply mul_right_cancel₀ hcos.ne' + nlinarith [hccos, Real.sin_sq_add_cos_sq ω] + have hfix : capReflection ω (stripParallelogram ω).2.2 = (stripParallelogram ω).2.2 := by + have hx0 : capReflection ω (stripParallelogram ω).2.2 0 = (stripParallelogram ω).2.2 0 := by + rw [capReflection_apply_zero, hcoord] + simp only [Matrix.cons_val_zero, Matrix.cons_val_one] + linarith + have hx1 : capReflection ω (stripParallelogram ω).2.2 1 = (stripParallelogram ω).2.2 1 := by + rw [capReflection_apply_one, hcoord] + simp only [Matrix.cons_val_zero, Matrix.cons_val_one] + linarith + ext i + fin_cases i + · exact hx0 + · exact hx1 + have hQbal : IsBalancedMaximumCap + (⟨reflectedBody ω K.val, reflectedBody_isCap K⟩ : CapSpace ω) := by + obtain ⟨P, hPset, hPbal⟩ := balancedMaximumCap_mirror K hBalanced + have hPQ : P = (⟨reflectedBody ω K.val, reflectedBody_isCap K⟩ : CapSpace ω) := by + apply Subtype.ext + apply ConvexBody.ext + rw [hPset, hMeq] + rfl + exact hPQ ▸ hPbal + have hoQ : (stripParallelogram ω).2.2 ∈ (reflectedBody ω K.val : Set Point) := + ⟨_, ho, hfix⟩ + have hQsupp : supportValue (reflectedBody ω K.val) (0 : Real.Angle) = + supportValue K.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) := by + rw [supportValue_reflectedBody] + congr 1 + simp [reflectedAngle] + have hmain : ({0, (stripParallelogram ω).2.2 - tangentVector 0, + (stripParallelogram ω).2.2 - normalVector (ω : Real.Angle)} : Set Point) ⊆ + innerQuadrant (reflectedBody ω K.val : Set Point) (Real.pi / 2 - ω) := + consumed_of_le_supportValue_zero hω hω' ⟨reflectedBody ω K.val, reflectedBody_isCap K⟩ + hQbal hoQ (by rw [hQsupp]; exact hother) + have hR1 : capReflection ω ((stripParallelogram ω).2.2 - tangentVector 0) = + (stripParallelogram ω).2.2 - normalVector (ω : Real.Angle) := by + rw [hgap.1, hgap.2.1, map_smul, hu0] + have hR2 : capReflection ω ((stripParallelogram ω).2.2 - normalVector (ω : Real.Angle)) = + (stripParallelogram ω).2.2 - tangentVector 0 := by + rw [hgap.1, hgap.2.1, map_smul, hvω] + refine ⟨ω - (Real.pi / 2 - ω), ⟨by linarith, by linarith⟩, ?_⟩ + rw [rotatingHallwayParts_innerQuadrant] + intro y hy + simp only [Set.mem_insert_iff, Set.mem_singleton_iff] at hy + have hyR : capReflection ω y ∈ ({0, (stripParallelogram ω).2.2 - tangentVector 0, + (stripParallelogram ω).2.2 - normalVector (ω : Real.Angle)} : Set Point) := by + rcases hy with rfl | rfl | rfl + · simp + · rw [hR1]; simp + · rw [hR2]; simp + have h1 := hmain hyR + rw [innerQuadrant_reflection, ← capReflection_preimage_eq_image] at h1 + simpa [capReflection_involutive] using h1 + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Motion.RotationAngle`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Motion / Rotation Angle +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A nonnegative combination of two points of a convex set containing the origin, with +coefficient sum at most one, lies in the set. -/ +private theorem smul_add_smul_mem_of_convex {U : Set Point} (hU : Convex ℝ U) + (h0 : (0 : Point) ∈ U) {x y : Point} (hx : x ∈ U) (hy : y ∈ U) + {a b : ℝ} (ha : 0 ≤ a) (hb : 0 ≤ b) (hab : a + b ≤ 1) : + a • x + b • y ∈ U := by + have hw : ∀ i ∈ (Finset.univ : Finset (Fin 3)), 0 ≤ (![a, b, 1 - a - b] : Fin 3 → ℝ) i := by + intro i _ + fin_cases i + · exact ha + · exact hb + · change (0 : ℝ) ≤ 1 - a - b + linarith + have hsum : ∑ i ∈ (Finset.univ : Finset (Fin 3)), (![a, b, 1 - a - b] : Fin 3 → ℝ) i = 1 := by + simp [Fin.sum_univ_three] + have hz : ∀ i ∈ (Finset.univ : Finset (Fin 3)), + (![x, y, (0 : Point)] : Fin 3 → Point) i ∈ U := by + intro i _ + fin_cases i + · exact hx + · exact hy + · exact h0 + simpa [Fin.sum_univ_three] using hU.sum_mem hw hsum hz + +/-- A point of the strip parallelogram on or below the line through `o_ω - v₀` and +`o_ω - u_ω` lies in every convex set containing the origin and those two points. -/ +private theorem mem_of_inner_add_le_one_sub_sin {ω : ℝ} (hω0 : 0 < ω) (hω : ω < Real.pi / 2) + {U : Set Point} (hU : Convex ℝ U) (h0 : (0 : Point) ∈ U) + (ha : (stripParallelogram ω).2.2 - tangentVector 0 ∈ U) + (hb : (stripParallelogram ω).2.2 - normalVector (ω : Real.Angle) ∈ U) + {p : Point} (hy : 0 ≤ p 1) (hx : 0 ≤ inner ℝ p (normalVector (ω : Real.Angle))) + (hsum : inner ℝ p (normalVector (ω : Real.Angle)) + p 1 ≤ 1 - Real.sin ω) : + p ∈ U := by + have hpi := Real.pi_pos + have hcos : 0 < Real.cos ω := Real.cos_pos_of_mem_Ioo ⟨by linarith, hω⟩ + have hsinlt : Real.sin ω < 1 := by nlinarith [Real.sin_sq_add_cos_sq ω] + have hgap := parallelogram_gap ω ⟨hω0.le, hω⟩ + have hccos : Real.tan ((Real.pi / 2 - ω) / 2) * Real.cos ω = 1 - Real.sin ω := by + rw [hgap.2.2.2.2, Real.tan_eq_sin_div_cos] + field_simp + have hi1 : inner ℝ (normalVector (0 : Real.Angle)) (normalVector (ω : Real.Angle)) = + Real.cos ω := by + rw [← Real.Angle.coe_zero, inner_normalVector_normalVector, zero_sub, Real.cos_neg] + have hi2 : inner ℝ (normalVector (0 : Real.Angle)) + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 := by + rw [← Real.Angle.coe_zero, inner_normalVector_normalVector, zero_sub, Real.cos_neg, + Real.cos_pi_div_two] + have hi3 : inner ℝ (tangentVector (ω : Real.Angle)) (normalVector (ω : Real.Angle)) = 0 := by + rw [inner_tangentVector_normalVector_real, sub_self, Real.sin_zero] + have hi4 : inner ℝ (tangentVector (ω : Real.Angle)) + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = Real.cos ω := by + rw [inner_tangentVector_normalVector_real, Real.sin_pi_div_two_sub] + have hsne : Real.sin (ω - Real.pi / 2) = -Real.cos ω := by + rw [Real.sin_sub, Real.sin_pi_div_two, Real.cos_pi_div_two] + ring + have hden : (1 : ℝ) - Real.sin ω ≠ 0 := by linarith + have hkey : p = (inner ℝ p (normalVector (ω : Real.Angle)) / (1 - Real.sin ω)) • + ((stripParallelogram ω).2.2 - tangentVector 0) + + (p 1 / (1 - Real.sin ω)) • + ((stripParallelogram ω).2.2 - normalVector (ω : Real.Angle)) := by + refine eq_of_inner_normalVector_eq (s := ω) (t := Real.pi / 2) ?_ ?_ ?_ + · rw [hsne] + exact neg_ne_zero.mpr hcos.ne' + · rw [hgap.1, hgap.2.1, inner_add_left, real_inner_smul_left, real_inner_smul_left, + real_inner_smul_left, real_inner_smul_left, hi1, hi3, hccos] + field_simp + ring + · rw [inner_normalVector_pi_div_two, hgap.1, hgap.2.1, inner_add_left, + real_inner_smul_left, real_inner_smul_left, real_inner_smul_left, + real_inner_smul_left, hi2, hi4, hccos] + field_simp + ring + rw [hkey] + refine smul_add_smul_mem_of_convex hU h0 ha hb (div_nonneg hx (by linarith)) + (div_nonneg hy (by linarith)) ?_ + rw [← add_div, div_le_one (by linarith)] + linarith + +/-- The width of a clipped strip parallelogram is at most one in every direction between +its rotation angle and a right angle. -/ +private theorem inner_sub_inner_le_one_of_clipped {ω : ℝ} (hω0 : 0 ≤ ω) + (hcos : 0 < Real.cos ω) {p q : Point} + (hpA : inner ℝ p (normalVector (ω : Real.Angle)) ≤ 1) (hpB : p 1 ≤ 1) + (hqA : 0 ≤ inner ℝ q (normalVector (ω : Real.Angle))) (hqB : 0 ≤ q 1) + (hq : 1 - Real.sin ω ≤ inner ℝ q (normalVector (ω : Real.Angle)) + q 1) + {t : ℝ} (ht : ω ≤ t) (ht' : t ≤ Real.pi / 2) : + inner ℝ p (normalVector (t : Real.Angle)) - + inner ℝ q (normalVector (t : Real.Angle)) ≤ 1 := by + have hpi := Real.pi_pos + have hct : 0 ≤ Real.cos t := Real.cos_nonneg_of_mem_Icc ⟨by linarith, ht'⟩ + have hst : 0 ≤ Real.sin (t - ω) := + Real.sin_nonneg_of_nonneg_of_le_pi (by linarith) (by linarith) + have hsub : Real.sin (t - ω) = Real.sin t * Real.cos ω - Real.cos t * Real.sin ω := + Real.sin_sub t ω + have hid : ∀ z : Point, Real.cos ω * inner ℝ z (normalVector (t : Real.Angle)) = + Real.cos t * inner ℝ z (normalVector (ω : Real.Angle)) + Real.sin (t - ω) * z 1 := by + intro z + rw [inner_normalVector_real, inner_normalVector_real, hsub] + ring + have hmain : Real.cos ω * (inner ℝ p (normalVector (t : Real.Angle)) - + inner ℝ q (normalVector (t : Real.Angle))) ≤ Real.cos ω := by + rw [mul_sub, hid p, hid q] + have h1 : Real.cos t * inner ℝ p (normalVector (ω : Real.Angle)) ≤ Real.cos t := + mul_le_of_le_one_right hct hpA + have h2 : Real.sin (t - ω) * p 1 ≤ Real.sin (t - ω) := + mul_le_of_le_one_right hst hpB + rcases le_total (Real.cos t) (Real.sin (t - ω)) with hle | hle + · have e1 : Real.cos t * (1 - Real.sin ω) ≤ + Real.cos t * (inner ℝ q (normalVector (ω : Real.Angle)) + q 1) := + mul_le_mul_of_nonneg_left hq hct + have e2 : 0 ≤ (Real.sin (t - ω) - Real.cos t) * q 1 := mul_nonneg (by linarith) hqB + have h3 : Real.cos t * (1 - Real.sin ω) ≤ + Real.cos t * inner ℝ q (normalVector (ω : Real.Angle)) + Real.sin (t - ω) * q 1 := by + nlinarith [e1, e2] + have h4 : Real.sin (t - ω) + Real.cos t * Real.sin ω = Real.sin t * Real.cos ω := by + rw [hsub]; ring + have h5 : Real.sin t * Real.cos ω ≤ Real.cos ω := by + nlinarith [Real.sin_le_one t] + linarith + · have e1 : Real.sin (t - ω) * (1 - Real.sin ω) ≤ + Real.sin (t - ω) * (inner ℝ q (normalVector (ω : Real.Angle)) + q 1) := + mul_le_mul_of_nonneg_left hq hst + have e2 : 0 ≤ (Real.cos t - Real.sin (t - ω)) * + inner ℝ q (normalVector (ω : Real.Angle)) := mul_nonneg (by linarith) hqA + have h3 : Real.sin (t - ω) * (1 - Real.sin ω) ≤ + Real.cos t * inner ℝ q (normalVector (ω : Real.Angle)) + Real.sin (t - ω) * q 1 := by + nlinarith [e1, e2] + have h4 : Real.cos t + Real.sin (t - ω) * Real.sin ω = + Real.cos ω * Real.cos (t - ω) := by + rw [hsub, Real.cos_sub] + linear_combination (-Real.cos t) * Real.sin_sq_add_cos_sq ω + have h5 : Real.cos ω * Real.cos (t - ω) ≤ Real.cos ω := by + nlinarith [Real.cos_le_one (t - ω)] + linarith + nlinarith [hmain] + +/-- Normalizing data for the rotated copies of a sofa of width at most one: a continuous +minimal height and a uniform horizontal bound. -/ +private theorem exists_normalization_of_width {s : Set Point} {ω : ℝ} + (hcpt : IsCompact s) (hne : s.Nonempty) + (hwidth : ∀ t : ℝ, ω ≤ t → t ≤ Real.pi / 2 → ∀ p ∈ s, ∀ q ∈ s, + inner ℝ p (normalVector (t : Real.Angle)) - + inner ℝ q (normalVector (t : Real.Angle)) ≤ 1) : + ∃ (low : ℝ → ℝ) (M : ℝ), Continuous low ∧ + (∀ d : ℝ, ∀ p ∈ s, (rotationMap ((d : ℝ) : Real.Angle) p) 0 ≤ M) ∧ + (∀ d : ℝ, ∀ p ∈ s, low d ≤ (rotationMap ((d : ℝ) : Real.Angle) p) 1) ∧ + (∀ d : ℝ, 0 ≤ d → d ≤ Real.pi / 2 - ω → ∀ p ∈ s, + (rotationMap ((d : ℝ) : Real.Angle) p) 1 - low d ≤ 1) := by + have hcoord1 : ∀ (d : ℝ) (p : Point), (rotationMap ((d : ℝ) : Real.Angle) p) 1 = + inner ℝ p (normalVector ((Real.pi / 2 - d : ℝ) : Real.Angle)) := by + intro d p + rw [rotationMap_apply_one, inner_normalVector_real, Real.Angle.cos_coe, Real.Angle.sin_coe, + Real.cos_pi_div_two_sub, Real.sin_pi_div_two_sub] + ring + obtain ⟨R, hR⟩ := hcpt.isBounded.subset_closedBall (0 : Point) + refine ⟨fun d ↦ -supportValue s ((Real.pi / 2 - d + Real.pi : ℝ) : Real.Angle), + max R 0, ?_, ?_, ?_, ?_⟩ + · exact ((compactSet_support_continuity s s hne hcpt hne hcpt).2.2.1.comp + (Real.Angle.continuous_coe.comp (by fun_prop))).neg + · intro d p hp + have hnp : ‖p‖ ≤ max R 0 := by + have h := hR hp + rw [Metric.mem_closedBall, dist_zero_right] at h + exact h.trans (le_max_left _ _) + have hn : ‖rotationMap ((d : ℝ) : Real.Angle) p‖ = ‖p‖ := by + change ‖(EuclideanGeometry.o.rotation ((d : ℝ) : Real.Angle)) p‖ = ‖p‖ + exact LinearIsometryEquiv.norm_map _ p + calc (rotationMap ((d : ℝ) : Real.Angle) p) 0 + = inner ℝ (rotationMap ((d : ℝ) : Real.Angle) p) + (normalVector ((0 : ℝ) : Real.Angle)) := (inner_normalVector_zero _).symm + _ ≤ ‖rotationMap ((d : ℝ) : Real.Angle) p‖ * + ‖normalVector ((0 : ℝ) : Real.Angle)‖ := real_inner_le_norm _ _ + _ = ‖p‖ := by rw [norm_normalVector_real, hn, mul_one] + _ ≤ max R 0 := hnp + · intro d p hp + rw [hcoord1] + have h := inner_le_supportValue_of_isCompact hcpt hp + ((Real.pi / 2 - d + Real.pi : ℝ) : Real.Angle) + rw [normalVector_add_pi, inner_neg_right] at h + change -supportValue s ((Real.pi / 2 - d + Real.pi : ℝ) : Real.Angle) ≤ _ + linarith + · intro d hd0 hd1 p hp + have ht : ω ≤ Real.pi / 2 - d := by linarith + have ht' : Real.pi / 2 - d ≤ Real.pi / 2 := by linarith + have hstep : supportValue s ((Real.pi / 2 - d + Real.pi : ℝ) : Real.Angle) ≤ + 1 - inner ℝ p (normalVector ((Real.pi / 2 - d : ℝ) : Real.Angle)) := by + refine csSup_le (hne.image _) ?_ + rintro _ ⟨q, hq, rfl⟩ + simp only [normalVector_add_pi, inner_neg_right] + have h := hwidth (Real.pi / 2 - d) ht ht' p hp q hq + linarith + rw [hcoord1] + change inner ℝ p (normalVector ((Real.pi / 2 - d : ℝ) : Real.Angle)) - + -supportValue s ((Real.pi / 2 - d + Real.pi : ℝ) : Real.Angle) ≤ 1 + linarith + +/-- A sofa of rotation angle `ω` that can be placed at height between zero and one in every +intermediate rotated position admits, after rotating by `π/2 - ω`, a motion of rotation +angle `π/2`. -/ +private theorem hasRotationAngle_rotationMap_of_normalization {s : Set Point} {ω : ℝ} + (hlt : ω < Real.pi / 2) (hconn : IsConnected s) (hcpt : IsCompact s) + (hrot : HasRotationAngle s ω) (low : ℝ → ℝ) (M : ℝ) (hlowcont : Continuous low) + (hhoriz : ∀ d : ℝ, ∀ p ∈ s, (rotationMap ((d : ℝ) : Real.Angle) p) 0 ≤ M) + (hloleq : ∀ d : ℝ, ∀ p ∈ s, low d ≤ (rotationMap ((d : ℝ) : Real.Angle) p) 1) + (hupleq : ∀ d : ℝ, 0 ≤ d → d ≤ Real.pi / 2 - ω → ∀ p ∈ s, + (rotationMap ((d : ℝ) : Real.Angle) p) 1 - low d ≤ 1) : + HasRotationAngle (rotationMap ((Real.pi / 2 - ω : ℝ) : Real.Angle) '' s) + (Real.pi / 2) := by + have hrot0 : ∀ p : Point, rotationMap ((0 : ℝ) : Real.Angle) p = p := by + intro p + rw [rotationMap, Real.Angle.coe_zero, Orientation.rotation_zero] + rfl + set δ₀ : ℝ := Real.pi / 2 - ω with hδ₀def + have hδ₀pos : 0 < δ₀ := by rw [hδ₀def]; linarith + -- the original motion witnessing rotation angle `ω` + obtain ⟨m₀, hm₀, α₀, hα₀c, hα₀0, hα₀1, hm₀lift⟩ := hrot + obtain ⟨v, hv⟩ := hm₀.2.2.2.1 + have hm₀0 : m₀ 0 0 = v := by rw [hv]; exact zero_add v + have hinit : ∀ p ∈ s, p 0 + v 0 ≤ 1 ∧ 0 ≤ p 1 + v 1 ∧ p 1 + v 1 ≤ 1 := by + intro p hp + exact mem_horizontalHallway_coordinates (hm₀.2.2.2.2.2.1 ⟨p, hp, hv p⟩) + have hmcam : Continuous + (fun t : unitInterval ↦ (m₀ t).toAffineIsometry.toContinuousAffineMap) := + continuous_induced_dom.comp hm₀.2.2.1 + -- the reparametrized motion of the rotated sofa + have hτmem : ∀ r : unitInterval, max (3 * (r : ℝ) - 2) 0 ∈ unitInterval := + fun r ↦ ⟨le_max_right _ _, max_le (by linarith [r.2.2]) (by norm_num)⟩ + set τ : unitInterval → unitInterval := fun r ↦ ⟨max (3 * (r : ℝ) - 2) 0, hτmem r⟩ with hτdef + set Θ : unitInterval → ℝ := fun r ↦ -δ₀ * min (3 * (r : ℝ)) 1 + α₀ (τ r) with hΘdef + set dd : unitInterval → ℝ := fun r ↦ δ₀ * (1 - min (3 * (r : ℝ)) 1) with hdddef + set σ : unitInterval → ℝ := fun r ↦ min (max (3 * (r : ℝ) - 1) 0) 1 with hσdef + set C : unitInterval → Point := fun r ↦ + (1 - σ r) • (!₂[-M, -low (dd r)] : Point) + σ r • v + (m₀ (τ r) 0 - v) with hCdef + set n : unitInterval → Point ≃ᵃⁱ[ℝ] Point := fun r ↦ + (EuclideanGeometry.o.rotation ((Θ r : ℝ) : Real.Angle)).toAffineIsometryEquiv.trans + (AffineIsometryEquiv.vaddConst ℝ (C r)) with hndef + have hnapp : ∀ (r : unitInterval) (p : Point), + n r p = rotationMap ((Θ r : ℝ) : Real.Angle) p + C r := fun _ _ ↦ rfl + have hn0eq : ∀ r : unitInterval, n r 0 = C r := by + intro r + rw [hnapp, rotationMap] + simp + have hcompose : ∀ (r : unitInterval) (p : Point), + n r (rotationMap ((δ₀ : ℝ) : Real.Angle) p) = + rotationMap ((dd r + α₀ (τ r) : ℝ) : Real.Angle) p + C r := by + intro r p + have hΘsum : Θ r + δ₀ = dd r + α₀ (τ r) := by + change -δ₀ * min (3 * (r : ℝ)) 1 + α₀ (τ r) + δ₀ = + δ₀ * (1 - min (3 * (r : ℝ)) 1) + α₀ (τ r) + ring + rw [hnapp] + congr 1 + change (EuclideanGeometry.o.rotation ((Θ r : ℝ) : Real.Angle)) + ((EuclideanGeometry.o.rotation ((δ₀ : ℝ) : Real.Angle)) p) = + (EuclideanGeometry.o.rotation ((dd r + α₀ (τ r) : ℝ) : Real.Angle)) p + rw [Orientation.rotation_rotation, ← Real.Angle.coe_add, hΘsum] + have hτzero : ∀ r : unitInterval, 3 * (r : ℝ) ≤ 2 → τ r = 0 := by + intro r hr + apply Subtype.ext + change max (3 * (r : ℝ) - 2) 0 = 0 + exact max_eq_right (by linarith) + -- phase one: rotating down to the horizontal position + have hphaseA : ∀ r : unitInterval, 3 * (r : ℝ) ≤ 1 → ∀ p ∈ s, + n r (rotationMap ((δ₀ : ℝ) : Real.Angle) p) ∈ horizontalHallway := by + intro r hr p hp + have hr0 : (0 : ℝ) ≤ (r : ℝ) := r.2.1 + have hτ0 : τ r = 0 := hτzero r (by linarith) + have hσ0 : σ r = 0 := by + change min (max (3 * (r : ℝ) - 1) 0) 1 = 0 + rw [max_eq_right (by linarith)] + exact min_eq_left (by norm_num) + have hdd : dd r = δ₀ * (1 - 3 * (r : ℝ)) := by + change δ₀ * (1 - min (3 * (r : ℝ)) 1) = _ + rw [min_eq_left hr] + have hdd0 : 0 ≤ dd r := by + rw [hdd] + exact mul_nonneg hδ₀pos.le (by linarith) + have hdd1 : dd r ≤ δ₀ := by + have h := mul_le_mul_of_nonneg_left (show 1 - 3 * (r : ℝ) ≤ 1 by linarith) hδ₀pos.le + rw [hdd] + linarith [h] + have hC : C r = (!₂[-M, -low (dd r)] : Point) := by + change (1 - σ r) • (!₂[-M, -low (dd r)] : Point) + σ r • v + (m₀ (τ r) 0 - v) = _ + rw [hσ0, hτ0, hm₀0] + simp + have heval : n r (rotationMap ((δ₀ : ℝ) : Real.Angle) p) = + rotationMap ((dd r : ℝ) : Real.Angle) p + (!₂[-M, -low (dd r)] : Point) := by + rw [hcompose, hτ0, hα₀0, add_zero, hC] + rw [heval] + refine mem_horizontalHallway_of_coordinates _ ?_ ⟨?_, ?_⟩ + · change (rotationMap ((dd r : ℝ) : Real.Angle) p) 0 + -M ≤ 1 + have h := hhoriz (dd r) p hp + linarith + · change (0 : ℝ) ≤ (rotationMap ((dd r : ℝ) : Real.Angle) p) 1 + -low (dd r) + have h := hloleq (dd r) p hp + linarith + · change (rotationMap ((dd r : ℝ) : Real.Angle) p) 1 + -low (dd r) ≤ 1 + have h := hupleq (dd r) hdd0 hdd1 p hp + linarith + -- phase two: translating to the initial placement of the original motion + have hphaseB : ∀ r : unitInterval, 1 ≤ 3 * (r : ℝ) → 3 * (r : ℝ) ≤ 2 → ∀ p ∈ s, + n r (rotationMap ((δ₀ : ℝ) : Real.Angle) p) ∈ horizontalHallway := by + intro r hr hr' p hp + have hτ0 : τ r = 0 := hτzero r hr' + have hσ : σ r = 3 * (r : ℝ) - 1 := by + change min (max (3 * (r : ℝ) - 1) 0) 1 = _ + rw [max_eq_left (by linarith)] + exact min_eq_left (by linarith) + have hσ0 : 0 ≤ σ r := by rw [hσ]; linarith + have hσ1 : σ r ≤ 1 := by rw [hσ]; linarith + have hdd : dd r = 0 := by + change δ₀ * (1 - min (3 * (r : ℝ)) 1) = 0 + rw [min_eq_right hr] + ring + have hC : C r = (1 - σ r) • (!₂[-M, -low 0] : Point) + σ r • v := by + change (1 - σ r) • (!₂[-M, -low (dd r)] : Point) + σ r • v + (m₀ (τ r) 0 - v) = _ + rw [hdd, hτ0, hm₀0] + simp + have heval : n r (rotationMap ((δ₀ : ℝ) : Real.Angle) p) = + p + ((1 - σ r) • (!₂[-M, -low 0] : Point) + σ r • v) := by + rw [hcompose, hτ0, hα₀0, add_zero, hdd, hrot0, hC] + have h1 := hloleq 0 p hp + have h2 := hupleq 0 le_rfl hδ₀pos.le p hp + have hhz := hhoriz 0 p hp + rw [hrot0] at h1 h2 hhz + obtain ⟨hi1, hi2, hi3⟩ := hinit p hp + rw [heval] + refine mem_horizontalHallway_of_coordinates _ ?_ ⟨?_, ?_⟩ + · change p 0 + ((1 - σ r) * -M + σ r * v 0) ≤ 1 + have k1 : 0 ≤ (1 - σ r) * (M - p 0) := mul_nonneg (by linarith) (by linarith) + have k2 : 0 ≤ σ r * (1 - (p 0 + v 0)) := mul_nonneg hσ0 (by linarith) + nlinarith only [k1, k2, hσ1] + · change (0 : ℝ) ≤ p 1 + ((1 - σ r) * -low 0 + σ r * v 1) + have k3 : 0 ≤ (1 - σ r) * (p 1 - low 0) := mul_nonneg (by linarith) (by linarith) + have k4 : 0 ≤ σ r * (p 1 + v 1) := mul_nonneg hσ0 (by linarith) + nlinarith only [k3, k4] + · change p 1 + ((1 - σ r) * -low 0 + σ r * v 1) ≤ 1 + have k5 : 0 ≤ (1 - σ r) * (1 - (p 1 - low 0)) := mul_nonneg (by linarith) (by linarith) + have k6 : 0 ≤ σ r * (1 - (p 1 + v 1)) := mul_nonneg hσ0 (by linarith) + nlinarith only [k5, k6] + -- phase three: the original motion + have hphaseC : ∀ r : unitInterval, 2 ≤ 3 * (r : ℝ) → ∀ p : Point, + n r (rotationMap ((δ₀ : ℝ) : Real.Angle) p) = m₀ (τ r) p := by + intro r hr p + have hσ1 : σ r = 1 := by + change min (max (3 * (r : ℝ) - 1) 0) 1 = 1 + rw [max_eq_left (by linarith)] + exact min_eq_right (by linarith) + have hdd : dd r = 0 := by + change δ₀ * (1 - min (3 * (r : ℝ)) 1) = 0 + rw [min_eq_right (by linarith)] + ring + have hC : C r = m₀ (τ r) 0 := by + change (1 - σ r) • (!₂[-M, -low (dd r)] : Point) + σ r • v + (m₀ (τ r) 0 - v) = _ + rw [hσ1] + simp + rw [hcompose, hC, hdd, zero_add, hm₀lift (τ r) p] + -- continuity of the reparametrized motion + have hτcont : Continuous τ := by + rw [hτdef] + exact Continuous.subtype_mk (by fun_prop) _ + have hσcont : Continuous σ := by rw [hσdef]; fun_prop + have hddcont : Continuous dd := by rw [hdddef]; fun_prop + have hΘcont : Continuous Θ := by + rw [hΘdef] + exact (continuous_const.mul (by fun_prop)).add (hα₀c.comp hτcont) + have hbasecont : Continuous (fun r : unitInterval ↦ (!₂[-M, -low (dd r)] : Point)) := by + have h : Continuous (fun r : unitInterval ↦ -low (dd r)) := (hlowcont.comp hddcont).neg + fun_prop + have hCcont : Continuous C := by + rw [hCdef] + exact (((continuous_const.sub hσcont).smul hbasecont).add + (hσcont.smul continuous_const)).add + (((hmcam.eval_const 0).comp hτcont).sub continuous_const) + have hncont : Continuous n := by + rw [hndef] + exact continuous_rotation_trans_vaddConst (Real.Angle.continuous_coe.comp hΘcont) hCcont + -- endpoint values + have hτ1 : τ 1 = 1 := by + apply Subtype.ext + change max (3 * ((1 : unitInterval) : ℝ) - 2) 0 = ((1 : unitInterval) : ℝ) + norm_num + have hΘ0 : Θ 0 = 0 := by + change -δ₀ * min (3 * ((0 : unitInterval) : ℝ)) 1 + α₀ (τ 0) = 0 + rw [hτzero 0 (by norm_num), hα₀0] + norm_num + have hΘ1 : Θ 1 = -(Real.pi / 2) := by + change -δ₀ * min (3 * ((1 : unitInterval) : ℝ)) 1 + α₀ (τ 1) = -(Real.pi / 2) + rw [hτ1, hα₀1, show (3 : ℝ) * ((1 : unitInterval) : ℝ) = 3 by norm_num, + min_eq_right (by norm_num : (1 : ℝ) ≤ 3), hδ₀def] + ring + have hrotcont : Continuous (rotationMap ((δ₀ : ℝ) : Real.Angle)) := + (EuclideanGeometry.o.rotation ((δ₀ : ℝ) : Real.Angle)).continuous + refine ⟨n, ⟨hconn.image _ hrotcont.continuousOn, (hcpt.image hrotcont).isClosed, hncont, + ⟨C 0, ?_⟩, ?_, ?_, ?_, ?_⟩, Θ, hΘcont, hΘ0, hΘ1, ?_⟩ + · intro p + rw [hnapp, hΘ0, hrot0] + · intro t + exact ⟨((Θ t : ℝ) : Real.Angle), fun p ↦ by rw [hnapp, hn0eq]⟩ + · rintro _ ⟨_, ⟨p, hp, rfl⟩, rfl⟩ + exact hphaseA 0 (by norm_num) p hp + · intro r + rintro _ ⟨_, ⟨p, hp, rfl⟩, rfl⟩ + rcases le_total (3 * (r : ℝ)) 1 with h | h + · exact Set.subset_union_left (hphaseA r h p hp) + · rcases le_total (3 * (r : ℝ)) 2 with h' | h' + · exact Set.subset_union_left (hphaseB r h h' p hp) + · rw [hphaseC r h' p] + exact hm₀.2.2.2.2.2.2.1 (τ r) ⟨p, hp, rfl⟩ + · rintro _ ⟨_, ⟨p, hp, rfl⟩, rfl⟩ + rw [hphaseC 1 (by norm_num) p, hτ1] + exact hm₀.2.2.2.2.2.2.2 ⟨p, hp, rfl⟩ + · intro r p + rw [hnapp, hn0eq] + +theorem balancedMaximumSofa_rightAngle (s : Set Point) (ω : ℝ) + (hs : IsBalancedMaximumSofa s ω) + (hω : ω ∈ Set.Icc (Real.arccos (5 / 11 : ℝ)) (Real.pi / 2)) + (hArea : 11 / 5 ≤ ClassicalResults.area s) : + ∃ α : Real.Angle, HasRotationAngle (rotationMap α '' s) (Real.pi / 2) := by + have hpi := Real.pi_pos + obtain ⟨⟨s₀, hs₀, hsdef⟩, K, hKcap, hKbal⟩ := hs + have hstd : IsStandardPosition s ω := by + rw [hsdef] + exact (standardPosition_monotonization_standard s₀ ω hs₀).1 + have hω0 : 0 < ω := hstd.2.2.1 + have hconn : IsConnected s := by + rw [hsdef] + exact standardPosition_monotonization_connected s₀ ω hs₀ + have hcpt : IsCompact s := hstd.1 + have hrot : HasRotationAngle s ω := hstd.2.1 + rcases eq_or_lt_of_le hω.2 with heq | hlt + · refine ⟨((0 : ℝ) : Real.Angle), ?_⟩ + have hrot0 : ∀ p : Point, rotationMap ((0 : ℝ) : Real.Angle) p = p := by + intro p + rw [rotationMap, Real.Angle.coe_zero, Orientation.rotation_zero] + rfl + rw [show rotationMap ((0 : ℝ) : Real.Angle) = id from funext hrot0, Set.image_id] + exact heq ▸ hrot + -- the consumed corner triangle of the balanced maximum cap + have hcos : 0 < Real.cos ω := Real.cos_pos_of_mem_Ioo ⟨by linarith, hlt⟩ + have hstrip : s ⊆ (stripParallelogram ω).1 := by + rw [hsdef] + exact Set.inter_subset_left + have hareaK : (11 : ℝ) / 5 ≤ capAreaFunctional K := by + rw [capAreaFunctional_eq_sofaArea s ω ⟨s₀, hs₀, hsdef⟩ K hKcap] + exact hArea + have hsK : s = (K.val : Set Point) \ capNiche K := + monotoneSofa_structure s ω ⟨s₀, hs₀, hsdef⟩ K hKcap + obtain ⟨t₀, ht₀, hsub3⟩ := balancedMaximumCap_consumed K hω.1 hlt hKbal hareaK + rw [rotatingHallwayParts_innerQuadrant] at hsub3 + have hgap := parallelogram_gap ω ⟨hω0.le, hlt⟩ + have hccos : Real.tan ((Real.pi / 2 - ω) / 2) * Real.cos ω = 1 - Real.sin ω := by + rw [hgap.2.2.2.2, Real.tan_eq_sin_div_cos] + field_simp + have hsinlt : Real.sin ω < 1 := by nlinarith [Real.sin_sq_add_cos_sq ω] + have hcpos : 0 < Real.tan ((Real.pi / 2 - ω) / 2) := by nlinarith + have hmem_capFan : ∀ z : Point, 0 ≤ inner ℝ z (normalVector (ω : Real.Angle)) → + 0 ≤ inner ℝ z (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) → z ∈ capFan ω := + fun _ h1 h2 ↦ ⟨h1, h2⟩ + have hfan0 : (0 : Point) ∈ capFan ω := hmem_capFan 0 (by simp) (by simp) + have hfana : (stripParallelogram ω).2.2 - tangentVector 0 ∈ capFan ω := by + rw [hgap.1] + refine hmem_capFan _ ?_ ?_ + · rw [real_inner_smul_left, ← Real.Angle.coe_zero, inner_normalVector_normalVector, + zero_sub, Real.cos_neg] + exact mul_nonneg hcpos.le hcos.le + · rw [real_inner_smul_left, ← Real.Angle.coe_zero, inner_normalVector_normalVector, + zero_sub, Real.cos_neg, Real.cos_pi_div_two, mul_zero] + have hfanb : (stripParallelogram ω).2.2 - normalVector (ω : Real.Angle) ∈ capFan ω := by + rw [hgap.2.1] + refine hmem_capFan _ ?_ ?_ + · rw [real_inner_smul_left, inner_tangentVector_normalVector_real, sub_self, + Real.sin_zero, mul_zero] + · rw [real_inner_smul_left, inner_tangentVector_normalVector_real, + Real.sin_pi_div_two_sub] + exact mul_nonneg hcpos.le hcos.le + have hUconv : Convex ℝ (capFan ω ∩ innerQuadrant (K.val : Set Point) t₀) := + (convex_capFan ω).inter (convex_innerQuadrant _ _) + have hUniche : capFan ω ∩ innerQuadrant (K.val : Set Point) t₀ ⊆ capNiche K := + fun z hz ↦ ⟨hz.1, Set.mem_iUnion₂.mpr ⟨t₀, ht₀, hz.2⟩⟩ + have h0U : (0 : Point) ∈ capFan ω ∩ innerQuadrant (K.val : Set Point) t₀ := + ⟨hfan0, hsub3 (by simp)⟩ + have haU : (stripParallelogram ω).2.2 - tangentVector 0 ∈ + capFan ω ∩ innerQuadrant (K.val : Set Point) t₀ := ⟨hfana, hsub3 (by simp)⟩ + have hbU : (stripParallelogram ω).2.2 - normalVector (ω : Real.Angle) ∈ + capFan ω ∩ innerQuadrant (K.val : Set Point) t₀ := ⟨hfanb, hsub3 (by simp)⟩ + have hlowbd : ∀ p ∈ s, 1 - Real.sin ω ≤ inner ℝ p (normalVector (ω : Real.Angle)) + p 1 := by + intro p hp + by_contra hcon + push Not at hcon + obtain ⟨hy, hx⟩ := (mem_stripParallelogram_iff ω p).1 (hstrip hp) + have hmem := hUniche (mem_of_inner_add_le_one_sub_sin hω0 hlt hUconv h0U haU hbU + hy.1 hx.1 hcon.le) + rw [hsK] at hp + exact hp.2 hmem + have hwidth : ∀ t : ℝ, ω ≤ t → t ≤ Real.pi / 2 → ∀ p ∈ s, ∀ q ∈ s, + inner ℝ p (normalVector (t : Real.Angle)) - + inner ℝ q (normalVector (t : Real.Angle)) ≤ 1 := by + intro t ht ht' p hp q hq + obtain ⟨hp1, hp2⟩ := (mem_stripParallelogram_iff ω p).1 (hstrip hp) + obtain ⟨hq1, hq2⟩ := (mem_stripParallelogram_iff ω q).1 (hstrip hq) + exact inner_sub_inner_le_one_of_clipped hω0.le hcos hp2.2 hp1.2 hq2.1 hq1.1 + (hlowbd q hq) ht ht' + obtain ⟨low, M, hlowcont, hhoriz, hloleq, hupleq⟩ := + exists_normalization_of_width hcpt hconn.nonempty hwidth + exact ⟨((Real.pi / 2 - ω : ℝ) : Real.Angle), + hasRotationAngle_rotationMap_of_normalization hlt hconn hcpt hrot low M hlowcont + hhoriz hloleq hupleq⟩ + +private theorem hasRotationAngle_right_of_reaches_right (S : Set Point) + (m : unitInterval → Point ≃ᵃⁱ[ℝ] Point) (hm : IsMovingSofa S m) + (α : unitInterval → ℝ) (e : unitInterval → Point) + (hαc : Continuous α) (hα0 : α 0 = 0) + (hlift : ∀ t p, m t p = rotationMap (α t : Real.Angle) p + e t) + (ts : unitInterval) (hts : α ts = -(Real.pi / 2)) : + HasRotationAngle S (Real.pi / 2) := by + have hcoord : ∀ (u v : Point) (i : Fin 2), (u + v) i = u i + v i := fun _ _ _ ↦ rfl + have hH : ∀ p ∈ S, 0 ≤ p 1 ∧ p 1 ≤ 1 := by + intro p hp + obtain ⟨-, h1, h2⟩ := mem_horizontalHallway_coordinates (hm.initial hp) + exact ⟨h1, h2⟩ + have hLt : ∀ (t : unitInterval) (p : Point), p ∈ S → + (m t p) 0 ≤ 1 ∧ (m t p) 1 ≤ 1 ∧ (0 ≤ (m t p) 0 ∨ 0 ≤ (m t p) 1) := by + intro t p hp + obtain ⟨⟨h1, h2⟩, h3⟩ := (mem_hallway_iff _).mp (hm.subset_hallway t ⟨p, hp, rfl⟩) + exact ⟨h1, h2, h3⟩ + have hcs : ((α ts : ℝ) : Real.Angle).cos = 0 := by + rw [Real.Angle.cos_coe, hts] + simp + have hsns : ((α ts : ℝ) : Real.Angle).sin = -1 := by + rw [Real.Angle.sin_coe, hts] + simp + have hmts0 : ∀ p : Point, (m ts p) 0 = p 1 + (e ts) 0 := by + intro p + rw [hlift ts p, hcoord, rotationMap_apply_zero, hcs, hsns] + ring + have hmts1 : ∀ p : Point, (m ts p) 1 = -p 0 + (e ts) 1 := by + intro p + rw [hlift ts p, hcoord, rotationMap_apply_one, hcs, hsns] + ring + -- the supremum of the vertical coordinates of the initial placement + obtain ⟨p₀, hp₀⟩ := hm.isConnected.nonempty + have hTne : ((fun p : Point ↦ p 1) '' S).Nonempty := ⟨p₀ 1, p₀, hp₀, rfl⟩ + have hTbdd : BddAbove ((fun p : Point ↦ p 1) '' S) := by + refine ⟨1, ?_⟩ + rintro _ ⟨p, hp, rfl⟩ + exact (hH p hp).2 + set N : ℝ := sSup ((fun p : Point ↦ p 1) '' S) with hNdef + have hNub : ∀ p ∈ S, p 1 ≤ N := fun p hp ↦ le_csSup hTbdd ⟨p, hp, rfl⟩ + have hNle : N ≤ 1 := by + refine csSup_le hTne ?_ + rintro _ ⟨p, hp, rfl⟩ + exact (hH p hp).2 + have hNd : N + (e ts) 0 ≤ 1 := by + have hle : N ≤ 1 - (e ts) 0 := by + refine csSup_le hTne ?_ + rintro _ ⟨p, hp, rfl⟩ + have hx := (hLt ts p hp).1 + rw [hmts0 p] at hx + linarith + linarith + set δ : ℝ := 1 - N - (e ts) 0 with hδdef + have hδ : 0 ≤ δ := by + rw [hδdef] + linarith + -- the reparametrized motion, followed by the horizontal translation + have hφmem : ∀ r : unitInterval, min (2 * (r : ℝ)) 1 * (ts : ℝ) ∈ unitInterval := by + intro r + constructor + · exact mul_nonneg (le_min (by linarith [r.2.1]) (by norm_num)) ts.2.1 + · calc min (2 * (r : ℝ)) 1 * (ts : ℝ) ≤ 1 * 1 := + mul_le_mul (min_le_right _ _) ts.2.2 ts.2.1 (by norm_num) + _ = 1 := one_mul 1 + set φ : unitInterval → unitInterval := + fun r ↦ ⟨min (2 * (r : ℝ)) 1 * (ts : ℝ), hφmem r⟩ with hφdef + set ψ : unitInterval → ℝ := fun r ↦ max (2 * (r : ℝ) - 1) 0 with hψdef + set w : Point := !₂[δ, 0] with hwdef + have hw0 : w 0 = δ := rfl + have hw1 : w 1 = 0 := rfl + set n : unitInterval → Point ≃ᵃⁱ[ℝ] Point := + fun r ↦ (m (φ r)).trans (AffineIsometryEquiv.vaddConst ℝ (ψ r • w)) with hndef + have hnapp : ∀ (r : unitInterval) (p : Point), n r p = m (φ r) p + ψ r • w := fun _ _ ↦ rfl + have hφcont : Continuous φ := by + rw [hφdef] + exact Continuous.subtype_mk (by fun_prop) _ + have hψcont : Continuous ψ := by + rw [hψdef] + fun_prop + have hφ0 : φ 0 = 0 := by + apply Subtype.ext + change min (2 * ((0 : unitInterval) : ℝ)) 1 * (ts : ℝ) = 0 + norm_num + have hφ1 : φ 1 = ts := by + apply Subtype.ext + change min (2 * ((1 : unitInterval) : ℝ)) 1 * (ts : ℝ) = (ts : ℝ) + norm_num + have hψ0 : ψ 0 = 0 := by + change max (2 * ((0 : unitInterval) : ℝ) - 1) 0 = 0 + norm_num + have hψ1 : ψ 1 = 1 := by + change max (2 * ((1 : unitInterval) : ℝ) - 1) 0 = 1 + norm_num + have hψnn : ∀ r : unitInterval, 0 ≤ ψ r := fun r ↦ le_max_right _ _ + have hψle : ∀ r : unitInterval, ψ r ≤ 1 := by + intro r + exact max_le (by linarith [r.2.2]) (by norm_num) + have hψpos : ∀ r : unitInterval, ψ r ≠ 0 → φ r = ts := by + intro r hr + have hlt : 1 < 2 * (r : ℝ) := by + by_contra hcon + push Not at hcon + apply hr + change max (2 * (r : ℝ) - 1) 0 = 0 + exact max_eq_right (by linarith) + apply Subtype.ext + change min (2 * (r : ℝ)) 1 * (ts : ℝ) = (ts : ℝ) + rw [min_eq_right hlt.le, one_mul] + -- the hallway containment of the new motion + have hnhall : ∀ (r : unitInterval), n r '' S ⊆ hallway := by + rintro r _ ⟨p, hp, rfl⟩ + obtain ⟨hy0, hy1⟩ := hH p hp + obtain ⟨hx1, hx2, hx3⟩ := hLt (φ r) p hp + by_cases hr : ψ r = 0 + · have heq : n r p = m (φ r) p := by + rw [hnapp, hr, zero_smul, add_zero] + rw [heq] + exact (mem_hallway_iff _).mpr ⟨⟨hx1, hx2⟩, hx3⟩ + · have hφr := hψpos r hr + obtain ⟨hz1, hz2, hz3⟩ := hLt ts p hp + have hc0 : (n r p) 0 = p 1 + (e ts) 0 + ψ r * δ := by + rw [hnapp, hcoord, hφr, hmts0 p] + change p 1 + (e ts) 0 + ψ r * w 0 = _ + rw [hw0] + have hc1 : (n r p) 1 = -p 0 + (e ts) 1 := by + rw [hnapp, hcoord, hφr, hmts1 p] + change -p 0 + (e ts) 1 + ψ r * w 1 = _ + rw [hw1] + ring + rw [hmts0 p] at hz1 hz3 + rw [hmts1 p] at hz2 hz3 + refine (mem_hallway_iff _).mpr ⟨⟨?_, ?_⟩, ?_⟩ + · rw [hc0] + have hmul : ψ r * δ ≤ 1 * δ := mul_le_mul_of_nonneg_right (hψle r) hδ + have := hNub p hp + rw [hδdef] at hmul + linarith + · rw [hc1] + linarith + · rcases hz3 with h | h + · left + rw [hc0] + have : 0 ≤ ψ r * δ := mul_nonneg (hψnn r) hδ + linarith + · right + rw [hc1] + linarith + have hnfinal : n 1 '' S ⊆ verticalHallway := by + rintro _ ⟨p, hp, rfl⟩ + obtain ⟨hy0, hy1⟩ := hH p hp + obtain ⟨hz1, hz2, hz3⟩ := hLt ts p hp + rw [hmts1 p] at hz2 + have hc0 : (n 1 p) 0 = p 1 + (e ts) 0 + δ := by + rw [hnapp, hcoord, hφ1, hmts0 p, hψ1] + change p 1 + (e ts) 0 + 1 * w 0 = _ + rw [hw0] + ring + have hc1 : (n 1 p) 1 = -p 0 + (e ts) 1 := by + rw [hnapp, hcoord, hφ1, hmts1 p, hψ1] + change -p 0 + (e ts) 1 + 1 * w 1 = _ + rw [hw1] + ring + refine mem_verticalHallway_of_coordinates _ ⟨?_, ?_⟩ ?_ + · rw [hc0, hδdef] + linarith + · rw [hc0, hδdef] + have := hNub p hp + linarith + · rw [hc1] + linarith + have hmcam : Continuous (fun t : unitInterval ↦ (m t).toAffineIsometry.toContinuousAffineMap) := + continuous_induced_dom.comp hm.continuous + have hncont : Continuous n := by + rw [continuous_induced_rng] + refine ContinuousAffineMap.continuous_rng (fun p ↦ ?_) ?_ + · change Continuous fun r : unitInterval ↦ m (φ r) p + ψ r • w + exact ((hmcam.comp hφcont).eval_const p).add (hψcont.smul continuous_const) + · change Continuous fun r : unitInterval ↦ + ((m (φ r)).toAffineIsometry.toContinuousAffineMap).contLinear + exact ContinuousAffineMap.continuous_contLinear.comp (hmcam.comp hφcont) + refine ⟨n, ⟨hm.isConnected, hm.isClosed, hncont, ⟨0, ?_⟩, ?_, ?_, hnhall, hnfinal⟩, + fun r ↦ α (φ r), hαc.comp hφcont, ?_, ?_, ?_⟩ + · intro p + rw [hnapp, hφ0, hψ0, zero_smul, add_zero, hm.zero] + simp + · intro r + exact ⟨((α (φ r) : ℝ) : Real.Angle), fun p ↦ by + rw [hnapp, hnapp, hlift (φ r) p, hlift (φ r) 0] + simp [rotationMap] + abel⟩ + · rintro _ ⟨p, hp, rfl⟩ + have hid : n 0 p = p := by + rw [hnapp, hφ0, hψ0, zero_smul, add_zero, hm.zero] + rfl + rw [hid] + exact hm.initial hp + · change α (φ 0) = 0 + rw [hφ0, hα0] + · change α (φ 1) = -(Real.pi / 2) + rw [hφ1, hts] + · intro r p + rw [hnapp, hnapp, hlift (φ r) p, hlift (φ r) 0] + simp [rotationMap] + abel + +theorem movingSofa_rotationAngle_bound (s : Set Point) + (hs : IsPaperMovingSofa s) (hArea : 11 / 5 ≤ ClassicalResults.area s) : + ∃ ω ∈ Set.Icc (Real.arccos (5 / 11 : ℝ)) (Real.pi / 2), + HasRotationAngle s ω := by + obtain ⟨q, m, hm, hvol⟩ := canonical_paper_motion_bridge.1 s hs + set S : Set Point := (fun p ↦ p + q) '' s with hSdef + obtain ⟨α, e, hαc, hec, hα0, he0, hlift⟩ := + exists_continuous_motion_angle_lift m hm.continuous hm.zero + have hcoord : ∀ (u v : Point) (i : Fin 2), (u + v) i = u i + v i := fun _ _ _ ↦ rfl + have htransfer : ∀ ω : ℝ, HasRotationAngle S ω → HasRotationAngle s ω := by + intro ω hω + have h := hasRotationAngle_image_add S (-q) ω hω + have himg : (fun p : Point ↦ p + -q) '' S = s := by + rw [hSdef, Set.image_image] + simp + rwa [himg] at h + have harea : (11 : ℝ) / 5 ≤ (MeasureTheory.volume S).toReal := by + rw [hSdef, hvol] + exact hArea + have hH : ∀ p ∈ S, 0 ≤ p 1 ∧ p 1 ≤ 1 := by + intro p hp + obtain ⟨-, h1, h2⟩ := mem_horizontalHallway_coordinates (hm.initial hp) + exact ⟨h1, h2⟩ + have hLt : ∀ (t : unitInterval) (p : Point), p ∈ S → + (m t p) 0 ≤ 1 ∧ (m t p) 1 ≤ 1 ∧ (0 ≤ (m t p) 0 ∨ 0 ≤ (m t p) 1) := by + intro t p hp + obtain ⟨⟨h1, h2⟩, h3⟩ := (mem_hallway_iff _).mp (hm.subset_hallway t ⟨p, hp, rfl⟩) + exact ⟨h1, h2, h3⟩ + have hVf : ∀ p ∈ S, 0 ≤ (m 1 p) 0 ∧ (m 1 p) 0 ≤ 1 ∧ (m 1 p) 1 ≤ 1 := + fun p hp ↦ mem_verticalHallway_coordinates (hm.final ⟨p, hp, rfl⟩) + -- the clockwise angle never reaches a counterclockwise quarter of a right angle + have hquarter : ∀ t : unitInterval, α t ≠ Real.pi / 4 := by + intro t ht + set r := Real.sqrt 2 with hrdef + have hrsq : r * r = 2 := Real.mul_self_sqrt (by norm_num) + have hrpos : 0 < r := by rw [hrdef]; positivity + have hc : ((α t : ℝ) : Real.Angle).cos = r / 2 := by + rw [Real.Angle.cos_coe, ht, Real.cos_pi_div_four] + have hsn : ((α t : ℝ) : Real.Angle).sin = r / 2 := by + rw [Real.Angle.sin_coe, ht, Real.sin_pi_div_four] + have hmul : ∀ x : ℝ, r * (r / 2 * x) = x := by + intro x + linear_combination x / 2 * hrsq + have hbound : MeasureTheory.volume S ≤ ENNReal.ofReal r := by + refine volume_le_of_subset_horizontalBand + (f := fun y ↦ min (y + (r - r * (e t) 0)) (-y + (r - r * (e t) 1)) - r) + (c := r) (by fun_prop) hrpos.le ?_ + intro p hp + obtain ⟨hy0, hy1⟩ := hH p hp + obtain ⟨hx1, hx2, hx3⟩ := hLt t p hp + have hm0 : (m t p) 0 = r / 2 * p 0 - r / 2 * p 1 + (e t) 0 := by + rw [hlift t p, hcoord, rotationMap_apply_zero, hc, hsn] + have hm1 : (m t p) 1 = r / 2 * p 0 + r / 2 * p 1 + (e t) 1 := by + rw [hlift t p, hcoord, rotationMap_apply_one, hc, hsn] + rw [hm0] at hx1 + rw [hm1] at hx2 + rw [hm0, hm1] at hx3 + have g1 : p 0 - p 1 + r * (e t) 0 ≤ r := by + have h := mul_le_mul_of_nonneg_left hx1 hrpos.le + rwa [mul_add, mul_sub, hmul, hmul, mul_one] at h + have g2 : p 0 + p 1 + r * (e t) 1 ≤ r := by + have h := mul_le_mul_of_nonneg_left hx2 hrpos.le + rwa [mul_add, mul_add, hmul, hmul, mul_one] at h + have hmin := min_le_left (p 1 + (r - r * (e t) 0)) (-p 1 + (r - r * (e t) 1)) + have hmin' := min_le_right (p 1 + (r - r * (e t) 0)) (-p 1 + (r - r * (e t) 1)) + refine ⟨⟨hy0, hy1⟩, ?_, ?_⟩ + · simp only + rcases hx3 with h | h + · have h' := mul_le_mul_of_nonneg_left h hrpos.le + rw [mul_zero, mul_add, mul_sub, hmul, hmul] at h' + linarith + · have h' := mul_le_mul_of_nonneg_left h hrpos.le + rw [mul_zero, mul_add, mul_add, hmul, hmul] at h' + linarith + · simp only + have hle' : p 0 ≤ min (p 1 + (r - r * (e t) 0)) (-p 1 + (r - r * (e t) 1)) := + le_min (by linarith) (by linarith) + linarith + have hle : (MeasureTheory.volume S).toReal ≤ r := ENNReal.toReal_le_of_le_ofReal hrpos.le hbound + nlinarith [hrsq, hrpos, harea, hle, sq_nonneg (r - 11 / 5)] + have hquarter' : ∀ t : unitInterval, α t < Real.pi / 4 := by + intro t + rcases lt_trichotomy (α t) (Real.pi / 4) with h | h | h + · exact h + · exact absurd h (hquarter t) + · exfalso + have hmem : Real.pi / 4 ∈ Set.range α := by + refine intermediate_value_univ 0 t hαc ?_ + rw [hα0] + exact ⟨by positivity, h.le⟩ + obtain ⟨u, hu⟩ := hmem + exact hquarter u hu + -- the final clockwise angle has small cosine + have hcosbound : |Real.cos (α 1)| ≤ 5 / 11 := by + by_contra hcon + push Not at hcon + have habs : (0 : ℝ) < |Real.cos (α 1)| := by linarith + have hne : Real.cos (α 1) ≠ 0 := by + intro h0 + rw [h0] at habs + simp at habs + have hbound : MeasureTheory.volume S ≤ ENNReal.ofReal (1 / |Real.cos (α 1)|) := by + refine le_trans (MeasureTheory.measure_mono ?_) + (volume_horizontalBand_inter_le (Real.cos (α 1)) (-Real.sin (α 1)) (-(e 1) 0) hne) + intro p hp + obtain ⟨hy0, hy1⟩ := hH p hp + obtain ⟨hv0, hv1, -⟩ := hVf p hp + have hm0 : (m 1 p) 0 = Real.cos (α 1) * p 0 - Real.sin (α 1) * p 1 + (e 1) 0 := by + rw [hlift 1 p, hcoord, rotationMap_apply_zero, Real.Angle.cos_coe, Real.Angle.sin_coe] + rw [hm0] at hv0 hv1 + exact ⟨⟨hy0, hy1⟩, by linarith, by linarith⟩ + have hle : (MeasureTheory.volume S).toReal ≤ 1 / |Real.cos (α 1)| := + ENNReal.toReal_le_of_le_ofReal (by positivity) hbound + have hlt : 1 / |Real.cos (α 1)| < 11 / 5 := by + rw [div_lt_iff₀ habs] + linarith + linarith + -- the angle constants + set A := Real.arccos (5 / 11 : ℝ) with hAdef + have hcosA : Real.cos A = 5 / 11 := Real.cos_arccos (by norm_num) (by norm_num) + have hApi2 : A ≤ Real.pi / 2 := Real.arccos_le_pi_div_two.mpr (by norm_num) + have hApi : A ≤ Real.pi := Real.arccos_le_pi _ + have hAquarter : Real.pi / 4 < A := by + have hs2 : Real.sqrt 2 * Real.sqrt 2 = 2 := Real.mul_self_sqrt (by norm_num) + have hs2pos : (0 : ℝ) < Real.sqrt 2 := by positivity + have hlt : (5 : ℝ) / 11 < Real.sqrt 2 / 2 := by nlinarith + have h4 : Real.arccos (Real.sqrt 2 / 2) = Real.pi / 4 := by + rw [← Real.cos_pi_div_four, Real.arccos_cos (by positivity) (by linarith [Real.pi_pos])] + rw [hAdef, ← h4] + exact Real.arccos_lt_arccos (by norm_num) hlt (by nlinarith) + have hfinal : α 1 ≤ -A := by + by_contra hcon + push Not at hcon + have habs : |α 1| < A := by + rw [abs_lt] + exact ⟨by linarith, lt_trans (hquarter' 1) hAquarter⟩ + have hmono : Real.cos A < Real.cos |α 1| := + Real.cos_lt_cos_of_nonneg_of_le_pi (abs_nonneg _) hApi habs + rw [Real.cos_abs] at hmono + have := le_abs_self (Real.cos (α 1)) + linarith + have hm0e : ∀ t : unitInterval, m t 0 = e t := by + intro t + rw [hlift t 0] + simp [rotationMap] + have hrot : HasRotationAngle S (-α 1) := by + refine ⟨m, hm.isPaperMotion, α, hαc, hα0, by ring, fun t p ↦ ?_⟩ + rw [hlift t p, hm0e t] + by_cases hbig : -α 1 ≤ Real.pi / 2 + · exact ⟨-α 1, ⟨by linarith, hbig⟩, htransfer _ hrot⟩ + · push Not at hbig + refine ⟨Real.pi / 2, ⟨hApi2, le_refl _⟩, htransfer _ ?_⟩ + -- the intermediate right-angle time + have hmemr : -(Real.pi / 2) ∈ Set.range α := by + refine intermediate_value_univ 1 0 hαc ?_ + rw [hα0] + exact ⟨by linarith, by linarith [Real.pi_pos]⟩ + obtain ⟨ts, hts⟩ := hmemr + exact hasRotationAngle_right_of_reaches_right S m hm α e hαc hα0 hlift ts hts + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Sofa.BalancedRightAngle`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Sofa / Balanced Right Angle +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem exists_dominating_balancedRightAngleSofa (s : Set Point) + (hs : IsPaperMovingSofa s) (harea : (11 : ℝ) / 5 ≤ ClassicalResults.area s) : + ∃ s' : Set Point, IsBalancedMaximumSofa s' (Real.pi / 2) ∧ + ClassicalResults.area s ≤ ClassicalResults.area s' := by + obtain ⟨ω, hω, hrot⟩ := movingSofa_rotationAngle_bound s hs harea + have hω0 : 0 < ω := lt_of_lt_of_le (Real.arccos_pos.2 (by norm_num)) hω.1 + obtain ⟨K, -, hBsofa, hBmax⟩ := exists_balancedMaximumSofa ω hω0 hω.2 + have hsB : ClassicalResults.area s ≤ + ClassicalResults.area ((K.val : Set Point) \ capNiche K) := hBmax s hrot + obtain ⟨α, hrotB⟩ := balancedMaximumSofa_rightAngle _ ω hBsofa hω (harea.trans hsB) + obtain ⟨K', -, hS'sofa, hS'max⟩ := + exists_balancedMaximumSofa (Real.pi / 2) (by positivity) le_rfl + refine ⟨(K'.val : Set Point) \ capNiche K', hS'sofa, hsB.trans ?_⟩ + calc ClassicalResults.area ((K.val : Set Point) \ capNiche K) + = ClassicalResults.area (rotationMap α '' ((K.val : Set Point) \ capNiche K)) := + (area_image_rotationMap α _).symm + _ ≤ _ := hS'max _ hrotB + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Sofa.Maximum`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Gerver's sofa attains the maximum moving-sofa area + +The paper's main theorem: Gerver's paper-frame set `paperGerverSofa` is a moving +sofa, and every moving sofa has area at most its area. + +The proof splits on the certified lower bound `11 / 5`. A sofa below that bound +is dominated outright. A sofa at or above it is dominated by a balanced maximum +sofa of angle `π / 2`, whose cap lies in the special domain and extends to a +triple in the cap-tail space; the area functional is then bounded by `Q`, which +is maximized by Gerver's triple and matches the area functional there. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem paperGerverSofa_maximum : + IsPaperMovingSofa paperGerverSofa ∧ + ∀ s : Set Point, IsPaperMovingSofa s → + ClassicalResults.area s ≤ ClassicalResults.area paperGerverSofa := by + -- `G` is a moving sofa in standard position at angle `π / 2`. + have hstd : IsStandardPosition paperGerverSofa (Real.pi / 2) := by + rw [gerver_capSupport_identification.2.1] + exact gerver_capSupport_identification.2.2.1 + -- `G` is monotone, so the sofa-area identity applies to it. + have hmono : ∃ s₀ : Set Point, IsStandardPosition s₀ (Real.pi / 2) ∧ + paperGerverSofa = monotonization s₀ (Real.pi / 2) := + ⟨paperGerverSofa, hstd, (gerver_paperNiche_identification.2.2.1).symm⟩ + -- The certified lower bound, transported along the path identification. + have hG : (11 : ℝ) / 5 ≤ ClassicalResults.area paperGerverSofa := by + rw [← gerver_canonical_paper_literal.1] + exact gerver_area_lower_bound.2 + refine ⟨?_, ?_⟩ + · obtain ⟨m, hm, -⟩ := hstd.2.1 + exact ⟨m, hm⟩ + intro s hs + by_cases harea : (11 : ℝ) / 5 ≤ ClassicalResults.area s + · -- `K_G` maximizes `Q`, and `Q (K_G, B, D) = A (K_G) = |G|`. + obtain ⟨X, hK, hB, hD, hmax⟩ := gerver_upperBoundQ_maximum + have hGarea : rightAngleAreaFunctional X.cap.val = ClassicalResults.area paperGerverSofa := + capAreaFunctional_eq_sofaArea paperGerverSofa (Real.pi / 2) hmono X.cap.val hK + -- Dominate `S` by a balanced maximum sofa of angle `π / 2`. + obtain ⟨s', ⟨hmono', L, hL, hbalanced⟩, hdom⟩ := + exists_dominating_balancedRightAngleSofa s hs harea + obtain ⟨M, hM⟩ := specialCap_isConvexDomain.2.2.1 L hbalanced + obtain ⟨Y, rfl, hYR, hYL⟩ := exists_canonicalCapTail M + calc + ClassicalResults.area s ≤ ClassicalResults.area s' := hdom + _ = rightAngleAreaFunctional L := + (capAreaFunctional_eq_sofaArea s' (Real.pi / 2) hmono' L hL).symm + _ = rightAngleAreaFunctional Y.cap.val := by rw [hM] + _ ≤ upperBoundQ Y := areaFunctional_le_upperBoundQ Y hYR hYL + _ ≤ upperBoundQ X := hmax Y + _ = rightAngleAreaFunctional X.cap.val := (gerver_upperBoundQ_matches X hK hB hD).symm + _ = ClassicalResults.area paperGerverSofa := hGarea + · exact (le_of_not_ge harea).trans hG + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Motion.CanonicalUpperBound`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The paper's upper bound transported to the canonical target + +The paper's main theorem bounds the real area of every moving sofa in the paper normalization by +the area of the paper Gerver sofa. The canonical and paper Gerver sets coincide, every admissible +set is a paper moving sofa, and admissible sets are compact, so the comparison of real areas is a +comparison of Lebesgue measures. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open MeasureTheory +open scoped unitInterval + +/-- Every admissible set has Lebesgue measure at most that of Gerver's sofa. -/ +theorem areaUpperBound : AreaUpperBound := by + intro s m hs + have harea := paperGerverSofa_maximum.2 s (canonical_paper_motion_bridge.2 s m hs) + rw [← gerver_canonical_paper_literal.1] at harea + obtain ⟨-, -, hfinS⟩ := canonical_motion_compactness s m hs + obtain ⟨mG, hmG⟩ := isMovingSofa_gerversSofa + obtain ⟨-, -, hfinG⟩ := canonical_motion_compactness gerversSofa mG hmG + exact (real_area_le_iff_volume_le s gerversSofa hfinS hfinG).mp harea + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The moving sofa problem: proofs + +The imported development proves uniqueness of Gerver's defining parameters in +`MovingSofa.GerversSofa.ABφθSpec.existsUnique` and admissibility of the resulting shape in +`MovingSofa.isMovingSofa_gerversSofa`. The main theorem combines this admissibility result +with the proved area upper bound `MovingSofa.areaUpperBound`. +-/ + +@[expose] public section + +namespace MovingSofa + +open MeasureTheory + +/-- Gerver's sofa attains the sofa constant (Baek, arXiv:2411.19826). -/ +theorem sofaConstant_eq_volume_gerversSofa : sofaConstant = volume gerversSofa := by + apply optimality_of_areaUpperBound + exact areaUpperBound + +end MovingSofa + +end + +end diff --git a/LeanPool/MovingSofa/Development/Geometry/Foundations/Development001.lean b/LeanPool/MovingSofa/Development/Geometry/Foundations/Development001.lean new file mode 100644 index 0000000000..95d69b668c --- /dev/null +++ b/LeanPool/MovingSofa/Development/Geometry/Foundations/Development001.lean @@ -0,0 +1,11648 @@ +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +module + +public import Mathlib.Algebra.BigOperators.Fin +public import Mathlib.Algebra.BigOperators.Group.Finset.Basic +public import Mathlib.Algebra.BigOperators.Group.Finset.Sigma +public import Mathlib.Algebra.Order.Archimedean.Real.Basic +public import Mathlib.Analysis.Calculus.ContDiff.Deriv +public import Mathlib.Analysis.Calculus.Deriv.Prod +public import Mathlib.Analysis.Calculus.Deriv.Shift +public import Mathlib.Analysis.Calculus.Deriv.Slope +public import Mathlib.Analysis.Calculus.LocalExtr.Basic +public import Mathlib.Analysis.Calculus.MeanValue +public import Mathlib.Analysis.Calculus.Rademacher +public import Mathlib.Analysis.Complex.MeanValue +public import Mathlib.Analysis.Convex.Basic +public import Mathlib.Analysis.Convex.Body +public import Mathlib.Analysis.Convex.Combination +public import Mathlib.Analysis.Convex.Deriv +public import Mathlib.Analysis.Convex.Function +public import Mathlib.Analysis.Convex.Gauge +public import Mathlib.Analysis.Convex.GaugeRescale +public import Mathlib.Analysis.Convex.Segment +public import Mathlib.Analysis.Convex.Topology +public import Mathlib.Analysis.InnerProductSpace.Basic +public import Mathlib.Analysis.InnerProductSpace.Calculus +public import Mathlib.Analysis.InnerProductSpace.Continuous +public import Mathlib.Analysis.InnerProductSpace.PiL2 +public import Mathlib.Analysis.InnerProductSpace.Projection.Minimal +public import Mathlib.Analysis.Normed.Affine.AddTorsorBases +public import Mathlib.Analysis.Normed.Affine.ContinuousAffineMap +public import Mathlib.Analysis.Normed.Group.Bounded +public import Mathlib.Analysis.Normed.Group.Uniform +public import Mathlib.Analysis.Normed.Lp.MeasurableSpace +public import Mathlib.Analysis.Normed.Module.Basic +public import Mathlib.Analysis.Real.Pi.Bounds +public import Mathlib.Analysis.SpecialFunctions.Complex.Arg +public import Mathlib.Analysis.SpecialFunctions.Integrals.Basic +public import Mathlib.Analysis.SpecialFunctions.Pow.NNReal +public import Mathlib.Analysis.SpecialFunctions.Pow.Real +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.Angle +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.ArctanDeriv +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.Basic +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.Deriv +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.Series +public import Mathlib.Analysis.SpecificLimits.Basic +public import Mathlib.Analysis.SpecificLimits.Normed +public import Mathlib.Basic.Real.Basic +public import Mathlib.Data.Fin.Basic +public import Mathlib.Data.Fin.SuccPredOrder +public import Mathlib.Data.Finset.Sort +public import Mathlib.Data.Fintype.EquivFin +public import Mathlib.Data.List.MinMax +public import Mathlib.Geometry.Euclidean.Angle.Oriented.Rotation +public import Mathlib.LinearAlgebra.AffineSpace.FiniteDimensional +public import Mathlib.MeasureTheory.Constructions.BorelSpace.Basic +public import Mathlib.MeasureTheory.Constructions.BorelSpace.Order +public import Mathlib.MeasureTheory.Function.AbsolutelyContinuous +public import Mathlib.MeasureTheory.Integral.Bochner.Basic +public import Mathlib.MeasureTheory.Integral.Bochner.Set +public import Mathlib.MeasureTheory.Integral.Bochner.SumMeasure +public import Mathlib.MeasureTheory.Integral.DominatedConvergence +public import Mathlib.MeasureTheory.Integral.IntervalIntegral.AbsolutelyContinuousFun +public import Mathlib.MeasureTheory.Integral.IntervalIntegral.Basic +public import Mathlib.MeasureTheory.Measure.Decomposition.RadonNikodym +public import Mathlib.MeasureTheory.Measure.FiniteMeasure +public import Mathlib.MeasureTheory.Measure.Haar.InnerProductSpace +public import Mathlib.MeasureTheory.Measure.Hausdorff +public import Mathlib.MeasureTheory.Measure.Lebesgue.Basic +public import Mathlib.MeasureTheory.Measure.Lebesgue.EqHaar +public import Mathlib.MeasureTheory.Measure.Lebesgue.Integral +public import Mathlib.MeasureTheory.Measure.Lebesgue.VolumeOfBalls +public import Mathlib.MeasureTheory.Measure.Map +public import Mathlib.MeasureTheory.Measure.Portmanteau +public import Mathlib.MeasureTheory.Measure.WithDensity +public import Mathlib.MeasureTheory.SetSemiring +public import Mathlib.MeasureTheory.VectorMeasure.BoundedVariation +public import Mathlib.MeasureTheory.VectorMeasure.IntegrationByParts +public import Mathlib.MeasureTheory.VectorMeasure.WithDensity +public import Mathlib.Order.ConditionallyCompleteLattice.Basic +public import Mathlib.Order.Fin.Basic +public import Mathlib.Order.Hom.Set +public import Mathlib.Order.SuccPred.IntervalSucc +public import Mathlib.Order.SuccPred.LinearLocallyFinite +public import Mathlib.Tactic +public import Mathlib.Tactic.FieldSimp +public import Mathlib.Tactic.FinCases +public import Mathlib.Tactic.FunProp +public import Mathlib.Tactic.GCongr +public import Mathlib.Tactic.Linarith +public import Mathlib.Tactic.LinearCombination +public import Mathlib.Tactic.NormNum +public import Mathlib.Tactic.Positivity +public import Mathlib.Tactic.Ring +public import Mathlib.Tactic.SplitIfs +public import Mathlib.Topology.Algebra.Group.Quotient +public import Mathlib.Topology.Algebra.Ring.Real +public import Mathlib.Topology.Covering.AddCircle +public import Mathlib.Topology.EMetricSpace.BoundedVariation +public import Mathlib.Topology.EMetricSpace.VariationOnFromTo +public import Mathlib.Topology.Homotopy.Lifting +public import Mathlib.Topology.Instances.AddCircle.Real +public import Mathlib.Topology.Instances.Matrix +public import Mathlib.Topology.Instances.Real.Lemmas +public import Mathlib.Topology.MetricSpace.Closeds +public import Mathlib.Topology.MetricSpace.HausdorffDistance +public import Mathlib.Topology.Order.Compact +public import Mathlib.Topology.Order.IntermediateValue +public import Mathlib.Topology.Order.LeftRightNhds +public import Mathlib.Topology.Order.MonotoneContinuity +public import Mathlib.Topology.Order.ProjIcc +public import Mathlib.Topology.Separation.Lemmas +public import Mathlib.Topology.Sequences +public import Mathlib.Topology.UniformSpace.Compact + +/-! +# Moving sofa: related mathematical developments + +* `Infrastructure.Analysis.Foundations.Development001`. +* `Infrastructure.Geometry.Foundations.Development001`. +* `Infrastructure.MathlibExtensions.Foundations.Development001`. +* `Infrastructure.Geometry.Foundations.Development002`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Analysis.Foundations.Development001`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Analysis.BoundedDensity`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Bounded Density +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory +open scoped NNReal ENNReal + +namespace MovingSofa + +theorem boundedDensity_of_domination (a b : ℝ) (μ : Measure ℝ) [IsFiniteMeasure μ] + (q : ℝ → ℝ) (hq : Measurable q) + (hq_nonneg : ∀ t ∈ Set.Icc a b, 0 ≤ q t) + (hq_bound : ∃ C : ℝ, ∀ t ∈ Set.Icc a b, q t ≤ C) + (hdom : ∀ E : Set ℝ, MeasurableSet E → + μ E ≤ ENNReal.ofReal (∫ t in E, q t ∂volume.restrict (Set.Icc a b))) : + ∃ r : ℝ → ℝ, Measurable r ∧ Integrable r (volume.restrict (Set.Icc a b)) ∧ + (∀ᵐ t ∂volume.restrict (Set.Icc a b), 0 ≤ r t ∧ r t ≤ q t) ∧ + μ = (volume.restrict (Set.Icc a b)).withDensity (fun t ↦ ENNReal.ofReal (r t)) ∧ + (∃ C : ℝ, ∀ᵐ t ∂volume.restrict (Set.Icc a b), |r t| ≤ C) := by + classical + obtain ⟨C, hC⟩ := hq_bound + let lam : Measure ℝ := volume.restrict (Set.Icc a b) + let nu : Measure ℝ := lam.withDensity (fun t ↦ ENNReal.ofReal (q t)) + have hq_ae : 0 ≤ᵐ[lam] q := by + filter_upwards [ae_restrict_mem measurableSet_Icc] with t ht + exact hq_nonneg t ht + have hq_bound_ae : ∀ᵐ t ∂lam, ‖q t‖ ≤ max C 0 := by + filter_upwards [ae_restrict_mem measurableSet_Icc] with t ht + rw [Real.norm_eq_abs, abs_of_nonneg (hq_nonneg t ht)] + exact le_max_of_le_left (hC t ht) + have hq_int : Integrable q lam := by + exact Measure.integrableOn_of_bounded (μ := volume) + (s := Set.Icc a b) (M := max C 0) (by simp) hq.aestronglyMeasurable hq_bound_ae + have hν_apply : ∀ E : Set ℝ, MeasurableSet E → + nu E = ENNReal.ofReal (∫ t in E, q t ∂lam) := by + intro E hE + change (lam.withDensity (fun t ↦ ENNReal.ofReal (q t))) E = _ + rw [withDensity_apply _ hE] + exact (ofReal_integral_eq_lintegral_ofReal + (μ := lam.restrict E) hq_int.integrableOn + (ae_restrict_of_ae hq_ae)).symm + have hμν : μ ≤ nu := by + rw [Measure.le_iff] + intro E hE + rw [hν_apply E hE] + exact hdom E hE + have hνlam : nu.AbsolutelyContinuous lam := + withDensity_absolutelyContinuous lam _ + have hμlam : μ.AbsolutelyContinuous lam := + (Measure.absolutelyContinuous_of_le hμν).trans hνlam + let r : ℝ → ℝ := fun t ↦ (μ.rnDeriv lam t).toReal + have hr_meas : Measurable r := by + exact (Measure.measurable_rnDeriv μ lam).ennreal_toReal + have hr_int : Integrable r lam := by + simpa [r] using + (Measure.integrableOn_toReal_rnDeriv + (μ := μ) (ν := lam) (s := Set.univ) (by simp)) + have hr_eq : lam.withDensity (fun t ↦ μ.rnDeriv lam t) = μ := + Measure.withDensity_rnDeriv_eq μ lam hμlam + have hr_le_q_enn : μ.rnDeriv lam ≤ᵐ[lam] (fun t ↦ ENNReal.ofReal (q t)) := by + apply ae_le_of_forall_setLIntegral_le_of_sigmaFinite + (Measure.measurable_rnDeriv μ lam) + intro E hE hEfin + rw [Measure.setLIntegral_rnDeriv hμlam E] + calc + μ E ≤ nu E := hμν E + _ = ∫⁻ t in E, ENNReal.ofReal (q t) ∂lam := by + exact withDensity_apply' _ _ + have hr_bounds : ∀ᵐ t ∂lam, 0 ≤ r t ∧ r t ≤ q t := by + filter_upwards [hr_le_q_enn, Measure.rnDeriv_ne_top μ lam, + ae_restrict_mem measurableSet_Icc] with t hle htop ht + constructor + · exact ENNReal.toReal_nonneg + · have hto := (ENNReal.toReal_le_toReal htop ENNReal.ofReal_ne_top).mpr hle + simpa [r, ENNReal.toReal_ofReal (hq_nonneg t ht)] using hto + have hfun : (fun t ↦ ENNReal.ofReal (r t)) =ᵐ[lam] μ.rnDeriv lam := by + filter_upwards [Measure.rnDeriv_ne_top μ lam] with t htop + simpa [r] using ENNReal.ofReal_toReal htop + have hr_eq' : lam.withDensity (fun t ↦ ENNReal.ofReal (r t)) = μ := by + rw [← hr_eq] + exact withDensity_congr_ae hfun + have hr_bound : ∃ K : ℝ, ∀ᵐ t ∂lam, |r t| ≤ K := by + refine ⟨max C 0, ?_⟩ + filter_upwards [hr_bounds, ae_restrict_mem measurableSet_Icc] with t ⟨h₀, hq⟩ ht + rw [abs_of_nonneg h₀] + exact hq.trans ((hC t ht).trans (le_max_left _ _)) + refine ⟨r, hr_meas, hr_int, hr_bounds, ?_, hr_bound⟩ + simpa [lam] using hr_eq'.symm + +/-- A finite measure carried by `Set.Icc a b` and dominated on that interval by the integral of +a bounded, almost everywhere strongly measurable nonnegative function `f` has an integrable real +density with respect to the Lebesgue measure on `Set.Icc a b`, and that density is bounded above +by `f` almost everywhere. -/ +theorem exists_density_le_of_domination {a b : ℝ} (μ : Measure ℝ) [IsFiniteMeasure μ] + (hμ : μ (Set.Icc a b)ᶜ = 0) (f : ℝ → ℝ) + (hf : AEStronglyMeasurable f (volume.restrict (Set.Icc a b))) + (hf_nonneg : ∀ t ∈ Set.Icc a b, 0 ≤ f t) + {M : ℝ} (hf_bound : ∀ t ∈ Set.Icc a b, f t ≤ M) + (hdom : ∀ E : Set ℝ, MeasurableSet E → E ⊆ Set.Icc a b → + μ E ≤ ENNReal.ofReal (∫ t in E, f t)) : + ∃ r : ℝ → ℝ, Measurable r ∧ IntegrableOn r (Set.Icc a b) volume ∧ + (∀ᵐ t ∂volume.restrict (Set.Icc a b), 0 ≤ r t ∧ r t ≤ f t) ∧ + μ = (volume.restrict (Set.Icc a b)).withDensity (fun t ↦ ENNReal.ofReal (r t)) := by + classical + obtain ⟨g, hg, hgf⟩ := hf + set q : ℝ → ℝ := fun t ↦ max 0 (min M (g t)) with hq + have hq_meas : Measurable q := measurable_const.max (measurable_const.min hg.measurable) + have hq_nonneg : ∀ t, 0 ≤ q t := fun t ↦ le_max_left _ _ + have hq_bound : ∀ t, q t ≤ max M 0 := fun t ↦ + max_le (le_max_right M 0) ((min_le_left _ _).trans (le_max_left _ _)) + have hqf : f =ᵐ[volume.restrict (Set.Icc a b)] q := by + filter_upwards [hgf, ae_restrict_mem measurableSet_Icc] with t hgt ht + simp only [hq, ← hgt, min_eq_right (hf_bound t ht), max_eq_right (hf_nonneg t ht)] + have hdom' : ∀ E : Set ℝ, MeasurableSet E → + μ E ≤ ENNReal.ofReal (∫ t in E, q t ∂volume.restrict (Set.Icc a b)) := by + intro E hE + have hnull : μ (E \ Set.Icc a b) = 0 := measure_mono_null (fun x hx ↦ hx.2) hμ + have hEsub : μ E ≤ μ (E ∩ Set.Icc a b) := + calc μ E ≤ μ (E ∩ Set.Icc a b) + μ (E \ Set.Icc a b) := measure_le_inter_add_sdiff μ E _ + _ = μ (E ∩ Set.Icc a b) := by rw [hnull, add_zero] + refine hEsub.trans ((hdom _ (hE.inter measurableSet_Icc) Set.inter_subset_right).trans ?_) + rw [Measure.restrict_restrict hE] + exact le_of_eq (congrArg ENNReal.ofReal (integral_congr_ae + (ae_restrict_of_ae_restrict_of_subset Set.inter_subset_right hqf))) + obtain ⟨r, hr_meas, hr_int, hr_bounds, hr_eq, -⟩ := + boundedDensity_of_domination a b μ q hq_meas (fun t _ ↦ hq_nonneg t) + ⟨max M 0, fun t _ ↦ hq_bound t⟩ hdom' + refine ⟨r, hr_meas, hr_int, ?_, hr_eq⟩ + filter_upwards [hr_bounds, hqf] with t ht htq + exact ⟨ht.1, htq ▸ ht.2⟩ + +/-- A finite measure carried by `Set.Icc a b` and dominated on that interval by the integral of +a bounded, almost everywhere strongly measurable nonnegative function has a measurable +`ℝ≥0`-valued density with respect to the Lebesgue measure on `Set.Icc a b`. -/ +theorem exists_nnreal_density_of_domination {a b : ℝ} (μ : Measure ℝ) [IsFiniteMeasure μ] + (hμ : μ (Set.Icc a b)ᶜ = 0) (f : ℝ → ℝ) + (hf : AEStronglyMeasurable f (volume.restrict (Set.Icc a b))) + (hf_nonneg : ∀ t ∈ Set.Icc a b, 0 ≤ f t) + {M : ℝ} (hf_bound : ∀ t ∈ Set.Icc a b, f t ≤ M) + (hdom : ∀ E : Set ℝ, MeasurableSet E → E ⊆ Set.Icc a b → + μ E ≤ ENNReal.ofReal (∫ t in E, f t)) : + ∃ r : ℝ → ℝ≥0, Measurable r ∧ + μ = (volume.restrict (Set.Icc a b)).withDensity (fun t ↦ (r t : ℝ≥0∞)) := by + obtain ⟨r, hr_meas, -, -, hr_eq⟩ := + exists_density_le_of_domination μ hμ f hf hf_nonneg hf_bound hdom + exact ⟨fun t ↦ (r t).toNNReal, hr_meas.real_toNNReal, hr_eq⟩ + +end MovingSofa + +end + +end + +end + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Classical.Foundations.Development001`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Classical.Area`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Planar area + +The real-valued Lebesgue area of a planar set, and its invariance under translation. +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set + +namespace MovingSofa.ClassicalResults + +/-- The Euclidean plane. -/ +abbrev Plane := EuclideanSpace ℝ (Fin 2) + +/-- The real-valued Lebesgue area of a planar set. -/ +def area (s : Set Plane) : ℝ := (volume s).toReal + +/-- Planar area is invariant under translation. -/ +theorem area_image_add (S : Set Plane) (v : Plane) : + area ((fun p ↦ p + v) '' S) = area S := by + change (MeasureTheory.volume ((fun p ↦ p + v) '' S)).toReal = + (MeasureTheory.volume S).toReal + rw [Set.image_add_right] + have hf : (fun x : Plane ↦ x + -v) = fun x ↦ -v + x := by + funext x + exact add_comm x (-v) + rw [hf, MeasureTheory.measure_preimage_add] + +end MovingSofa.ClassicalResults + +end + +end + +end + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `ForMathlib.Algebra.Foundations.Development001`. +* `ForMathlib.Analysis.Foundations.Development001`. +* `ForMathlib.BoundedVariation.Foundations.Development001`. +* `ForMathlib.Convex.Foundations.Development001`. +* `ForMathlib.Geometry.Foundations.Development001`. +* `ForMathlib.MeasureTheory.Foundations.Development001`. +* `ForMathlib.Order.Foundations.Development001`. +* `ForMathlib.Topology.Foundations.Development001`. +* `ForMathlib.MeasureTheory.Foundations.Development002`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `ForMathlib.Algebra.BigOperators.Triangle`. +* `ForMathlib.Algebra.Order.Fin`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Triangular rearrangement of a double sum over a `Finset` + +A double sum over `s ×ˢ s` splits into the closed lower triangle `{(u, t) | u ≤ t}` and its +transpose. The two pieces overlap exactly on the diagonal, so for a kernel vanishing there the +lower-triangular sum plus its transpose recovers the whole double sum. + +`Finset.sum_sum_Ioi_add_eq_sum_sum_off_diag` is the `Fintype` and `LocallyFiniteOrder` analogue, +and `Fin.sum_sum_eq_sum_triangle_add` the `Fin` analogue; neither applies to a general `Finset` +of a plain `LinearOrder`. +-/ + +@[expose] public section + +namespace Finset + +variable {ι M : Type*} [LinearOrder ι] [AddCommMonoid M] + +/-- For a kernel vanishing on the diagonal, the closed lower-triangular double sum plus the same +sum with the two arguments swapped is the full double sum. -/ +theorem sum_filter_le_add_sum_filter_le_swap (s : Finset ι) (f : ι → ι → M) + (hdiag : ∀ x, f x x = 0) : + ((∑ t ∈ s, ∑ u ∈ s.filter (fun u ↦ u ≤ t), f u t) + + ∑ t ∈ s, ∑ u ∈ s.filter (fun u ↦ u ≤ t), f t u) = + ∑ x ∈ s, ∑ y ∈ s, f x y := by + classical + calc ((∑ t ∈ s, ∑ u ∈ s.filter (fun u ↦ u ≤ t), f u t) + + ∑ t ∈ s, ∑ u ∈ s.filter (fun u ↦ u ≤ t), f t u) + = (∑ t ∈ s, ∑ u ∈ s.filter (fun u ↦ t < u), f t u) + + ∑ t ∈ s, ∑ u ∈ s.filter (fun u ↦ u ≤ t), f t u := by + rw [Finset.sum_comm' (t' := s) (s' := fun u ↦ s.filter (fun t ↦ u ≤ t)) + (by simp; tauto)] + refine congrArg₂ _ (Finset.sum_congr rfl fun t _ ↦ (Finset.sum_subset + (monotone_filter_right _ fun _ _ ↦ le_of_lt) fun u hu hu' ↦ ?_).symm) rfl + simp only [mem_filter, not_and, not_lt] at hu hu' + rw [le_antisymm (hu' hu.1) hu.2, hdiag] + _ = ∑ x ∈ s, ∑ y ∈ s, f x y := by + rw [add_comm, ← Finset.sum_add_distrib] + exact Finset.sum_congr rfl fun x _ ↦ by + simpa using Finset.sum_filter_add_sum_filter_not s (· ≤ x) (f x) + +end Finset + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Algebra / Order / Fin +-/ + +@[expose] public section + +noncomputable section + +namespace Fin + +/-- A finite sequence is bounded by its final value plus its positive backward increments. -/ +theorem apply_le_last_add_sum_max_sub {n : ℕ} (f : Fin (n + 1) → ℝ) (i : Fin (n + 1)) : + f i ≤ f (Fin.last n) + ∑ j : Fin n, max (f j.castSucc - f j.succ) 0 := by + induction n with + | zero => fin_cases i; simp + | succ n ih => + rw [Fin.sum_univ_succ] + have htail (k : Fin (n + 1)) := ih (fun j ↦ f j.succ) k + have hnonneg : 0 ≤ max (f 0 - f (Fin.succ 0)) 0 := le_max_right _ _ + refine Fin.cases ?_ (fun k ↦ ?_) i + · have h := htail 0 + have hmax := le_max_left (f 0 - f (Fin.succ 0)) 0 + simpa only [Fin.succ_last, Fin.succ_castSucc, Fin.castSucc_zero] using + (show f 0 ≤ f (Fin.last (n + 1)) + + (max (f 0 - f (Fin.succ 0)) 0 + + ∑ j : Fin n, max (f j.castSucc.succ - f j.succ.succ) 0) by + simp only [Fin.succ_last] at h + linarith) + · have h := htail k + simpa only [Fin.succ_last, Fin.succ_castSucc, Fin.castSucc_zero] using + (show f k.succ ≤ f (Fin.last (n + 1)) + + (max (f 0 - f (Fin.succ 0)) 0 + + ∑ j : Fin n, max (f j.castSucc.succ - f j.succ.succ) 0) by + simp only [Fin.succ_last] at h + linarith) + +end Fin + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `ForMathlib.Analysis.Calculus.Deriv.Shift`. +* `ForMathlib.Analysis.Calculus.FirstReturn`. +* `ForMathlib.Analysis.Calculus.Interval`. +* `ForMathlib.Analysis.Calculus.LocalExtr.OneSided`. +* `ForMathlib.Analysis.Complex.DiskIntegral`. +* `ForMathlib.Analysis.Convex.Basic`. +* `ForMathlib.Analysis.Convex.Deriv`. +* `ForMathlib.Analysis.Convex.Gauge`. +* `ForMathlib.Analysis.Convex.GaugeRescale`. +* `ForMathlib.Analysis.Convex.Radial`. +* `ForMathlib.Analysis.FiniteEnvelope`. +* `ForMathlib.Analysis.InnerProductSpace.Box`. +* `ForMathlib.Analysis.InnerProductSpace.Linear`. +* `ForMathlib.Analysis.Normed.Affine.ContinuousAffineMap`. +* `ForMathlib.Analysis.SpecialFunctions.Angle`. +* `ForMathlib.Analysis.SpecialFunctions.AngleLift`. +* `ForMathlib.Analysis.SpecialFunctions.Arctan`. +* `ForMathlib.Analysis.SpecificLimits.AlternatingBracket`. +* `ForMathlib.Analysis.SpecialFunctions.Trigonometric`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Shifting the base point of a derivative + +`HasDerivAt.comp_add_const` transports a derivative at a shifted base point to the shifted +function; this file records the converse implication, packaged as an `Iff`. +-/ + +@[expose] public section + +/-- A derivative at a shifted base point is the derivative of the shifted function. -/ +theorem hasDerivAt_comp_add_const_iff {𝕜 : Type*} [NontriviallyNormedField 𝕜] {F : Type*} + [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : 𝕜 → F} {f' : F} (x a : 𝕜) : + HasDerivAt (fun u ↦ f (u + a)) f' x ↔ HasDerivAt f f' (x + a) := by + refine ⟨fun h ↦ ?_, fun h ↦ h.comp_add_const x a⟩ + have h' : HasDerivAt (fun u ↦ f (u + a)) f' (x + a + -a) := by simpa using h + simpa using h'.comp_add_const (x + a) (-a) + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# First return to a level + +A continuous real function that starts strictly below a level and reaches it has a smallest +time at which it attains that level, and its derivative there is nonnegative. +-/ + +@[expose] public section + +/-- A continuous function below a level at the left end has a first return to that level. -/ +theorem exists_first_return {g : ℝ → ℝ} {a b c : ℝ} (hab : a < b) + (hcont : ContinuousOn g (Set.Icc a b)) (hga : g a < c) (hgb : c ≤ g b) : + ∃ t ∈ Set.Ioc a b, g t = c ∧ ∀ u ∈ Set.Ico a t, g u < c := by + set E : Set ℝ := Set.Icc a b ∩ g ⁻¹' Set.Ici c with hE + have hEcl : IsClosed E := hcont.preimage_isClosed_of_isClosed isClosed_Icc isClosed_Ici + have hEne : E.Nonempty := ⟨b, ⟨hab.le, le_refl b⟩, hgb⟩ + have hEbdd : BddBelow E := ⟨a, fun u hu => hu.1.1⟩ + set t : ℝ := sInf E with ht + have htE : t ∈ E := hEcl.csInf_mem hEne hEbdd + have htlb : ∀ u ∈ E, t ≤ u := fun u hu => csInf_le hEbdd hu + have hta : a < t := by + rcases eq_or_lt_of_le htE.1.1 with h | h + · exact absurd htE.2 (by rw [← h]; exact not_le.mpr hga) + · exact h + have hleft : ∀ u ∈ Set.Ico a t, g u < c := by + intro u hu + by_contra hcc + push Not at hcc + exact absurd (htlb u ⟨⟨hu.1, le_trans hu.2.le htE.1.2⟩, hcc⟩) (not_le.mpr hu.2) + have hIco : Set.Ico a t ∈ nhdsWithin t (Set.Iio t) := Ico_mem_nhdsLT hta + have hsub : Set.Ico a t ⊆ Set.Icc a b := fun u hu => ⟨hu.1, le_trans hu.2.le htE.1.2⟩ + have htend : Filter.Tendsto g (nhdsWithin t (Set.Iio t)) (nhds (g t)) := + ((hcont t htE.1).mono hsub).tendsto.mono_left (nhdsWithin_le_of_mem hIco) + refine ⟨t, ⟨hta, htE.1.2⟩, le_antisymm ?_ htE.2, hleft⟩ + exact le_of_tendsto htend (Filter.eventually_of_mem hIco fun u hu => (hleft u hu).le) + +/-- At a first return from below, the derivative is nonnegative. -/ +theorem nonneg_of_first_return {g : ℝ → ℝ} {a t c d : ℝ} (hat : a < t) + (hd : HasDerivAt g d t) (hgt : g t = c) (hleft : ∀ u ∈ Set.Ico a t, g u < c) : + 0 ≤ d := by + have hIco : Set.Ico a t ∈ nhdsWithin t (Set.Iio t) := Ico_mem_nhdsLT hat + have hsl := (hasDerivAt_iff_tendsto_slope.mp hd).mono_left + (nhdsWithin_mono t (fun x hx => ne_of_lt hx) : + nhdsWithin t (Set.Iio t) ≤ nhdsWithin t {t}ᶜ) + refine ge_of_tendsto hsl (Filter.eventually_of_mem hIco fun u hu => ?_) + rw [slope_def_field, hgt] + exact le_of_lt (div_pos_of_neg_of_neg (by linarith only [hleft u hu]) + (by linarith only [hu.2])) + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Analysis / Calculus / Interval +-/ + +@[expose] public section + +open Set + +/-- Glue one-sided derivatives on a closed interval, including its endpoints. -/ +theorem hasDerivWithinAt_Icc_of_oneSided {E : Type*} + [NormedAddCommGroup E] [NormedSpace ℝ E] {a b t : ℝ} (hab : a < b) + (ht : t ∈ Icc a b) {f : ℝ → E} {d : E} + (hr : t < b → HasDerivWithinAt f d (Ici t) t) + (hl : a < t → HasDerivWithinAt f d (Iic t) t) : + HasDerivWithinAt f d (Icc a b) t := by + rcases eq_or_lt_of_le ht.1 with rfl | hat + · exact (hr hab).mono Icc_subset_Ici_self + · rcases lt_or_eq_of_le ht.2 with htb | rfl + · have h := (hl hat).union (hr htb) + rw [Iic_union_Ici] at h + exact h.mono (subset_univ _) + · exact (hl hat).mono Icc_subset_Iic_self + +/-- A continuous derivative field on a uniquely differentiable set gives order-one regularity. -/ +theorem contDiffOn_one_of_continuous_derivative {E : Type*} + [NormedAddCommGroup E] [NormedSpace ℝ E] {s : Set ℝ} + (hs : UniqueDiffOn ℝ s) (f : ℝ → E) (d : s → E) (hd : Continuous d) + (hf : ∀ t : s, HasDerivWithinAt f (d t) s t) : ContDiffOn ℝ 1 f s := by + apply (contDiffOn_one_iff_derivWithin hs).mpr + refine ⟨fun t ht ↦ (hf ⟨t, ht⟩).differentiableWithinAt, ?_⟩ + apply continuousOn_iff_continuous_domRestrict.mpr + apply hd.congr + intro t + exact ((hf t).derivWithin (hs t t.property)).symm + +/-- Glue two everywhere differentiable functions along the switch `{s ≤ c}`. If the values +and the derivatives agree at `c`, the glued function is differentiable everywhere and its +derivative is the analogous glue of the two derivative fields. At `c` itself the statement +is genuine two-sided differentiability, obtained from the two one-sided derivatives. -/ +theorem hasDerivAt_if_le {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] + {f g f' g' : ℝ → E} {c : ℝ} + (hf : ∀ t, HasDerivAt f (f' t) t) (hg : ∀ t, HasDerivAt g (g' t) t) + (hfg : f c = g c) (hfg' : f' c = g' c) (t : ℝ) : + HasDerivAt (fun s => if s ≤ c then f s else g s) (if t ≤ c then f' t else g' t) t := by + rcases lt_trichotomy t c with ht | ht | ht + · rw [ite_eq_left ht.le] + refine (hf t).congr_of_eventuallyEq ?_ + filter_upwards [Iio_mem_nhds ht] with s hs + exact ite_eq_left (le_of_lt hs) + · subst ht + rw [ite_eq_left le_rfl] + have hl : HasDerivWithinAt (fun s => if s ≤ t then f s else g s) (f' t) (Iic t) t := + (hf t).hasDerivWithinAt.congr (fun _ hs => ite_eq_left hs) (ite_eq_left le_rfl) + have hr : HasDerivWithinAt (fun s => if s ≤ t then f s else g s) (f' t) (Ici t) t := by + rw [hfg'] + refine (hg t).hasDerivWithinAt.congr (fun s hs => ?_) (by rw [ite_eq_left le_rfl, hfg]) + rcases eq_or_lt_of_le (mem_Ici.mp hs) with rfl | hlt + · rw [ite_eq_left le_rfl, hfg] + · rw [ite_eq_right (not_le.mpr hlt)] + have hu := hl.union hr + rw [Iic_union_Ici] at hu + exact hasDerivWithinAt_univ.mp hu + · rw [ite_eq_right (not_le.mpr ht)] + refine (hg t).congr_of_eventuallyEq ?_ + filter_upwards [Ioi_mem_nhds ht] with s hs + exact ite_eq_right (not_le.mpr hs) + +/-- A globally defined continuous derivative field witnesses continuous differentiability. -/ +theorem contDiff_one_of_hasDerivAt {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] + {f f' : ℝ → E} (hf : ∀ t, HasDerivAt f (f' t) t) (hf' : Continuous f') : + ContDiff ℝ 1 f := + contDiff_one_iff_deriv.2 ⟨fun t => (hf t).differentiableAt, deriv_eq hf ▸ hf'⟩ + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Fermat's theorem for one-sided derivatives on the real line + +`IsLocalMinOn.hasFDerivWithinAt_nonneg` signs a derivative within a set against the positive +tangent cone of that set. On the real line the positive tangent cones of the two half-lines +at `a` are generated by `1` and by `-1`, which turns that statement into the two familiar +one-sided derivative tests at a one-sided minimum. +-/ + +@[expose] public section + +/-- The forward direction belongs to the positive tangent cone of a right half-line. -/ +theorem one_mem_posTangentConeAt_Ici (a : ℝ) : (1 : ℝ) ∈ posTangentConeAt (Set.Ici a) a := + mem_posTangentConeAt_of_segment_subset + ((convex_Ici a).segment_subset (Set.mem_Ici.2 le_rfl) (Set.mem_Ici.2 (by linarith))) + +/-- The backward direction belongs to the positive tangent cone of a left half-line. -/ +theorem neg_one_mem_posTangentConeAt_Iic (a : ℝ) : + (-1 : ℝ) ∈ posTangentConeAt (Set.Iic a) a := + mem_posTangentConeAt_of_segment_subset + ((convex_Iic a).segment_subset (Set.mem_Iic.2 le_rfl) (Set.mem_Iic.2 (by linarith))) + +/-- A right derivative at a minimum over a right half-line is nonnegative. -/ +theorem IsLocalMinOn.hasDerivWithinAt_Ici_nonneg {f : ℝ → ℝ} {f' a : ℝ} + (h : IsLocalMinOn f (Set.Ici a) a) (hf : HasDerivWithinAt f f' (Set.Ici a) a) : 0 ≤ f' := by + simpa using h.hasFDerivWithinAt_nonneg hf (one_mem_posTangentConeAt_Ici a) + +/-- A left derivative at a minimum over a left half-line is nonpositive. -/ +theorem IsLocalMinOn.hasDerivWithinAt_Iic_nonpos {f : ℝ → ℝ} {f' a : ℝ} + (h : IsLocalMinOn f (Set.Iic a) a) (hf : HasDerivWithinAt f f' (Set.Iic a) a) : f' ≤ 0 := + neg_nonneg.1 <| by + simpa using h.hasFDerivWithinAt_nonneg hf (neg_one_mem_posTangentConeAt_Iic a) + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Analysis / Complex / Disk Integral +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace Complex + +private theorem integrableOn_polarCoord_target + {F : Type*} [NormedAddCommGroup F] [NormedSpace ℝ F] + (g : ℝ × ℝ → F) (hg : Integrable g) : + IntegrableOn (fun p : ℝ × ℝ ↦ p.1 • g (polarCoord.symm p)) + polarCoord.target := by + have hinj : Set.InjOn (polarCoord.symm : ℝ × ℝ → ℝ × ℝ) + polarCoord.target := by + rw [← polarCoord.symm_source] + exact polarCoord.symm.injOn + have himage : polarCoord.symm '' polarCoord.target = + polarCoord.source := by + rw [← polarCoord.symm_source, ← polarCoord.symm_target] + exact polarCoord.symm.image_source_eq_target + have hj := (integrableOn_image_iff_integrableOn_abs_det_fderiv_smul + (s := polarCoord.target) volume polarCoord.open_target.measurableSet + (fun p _ ↦ (hasFDerivAt_polarCoord_symm p).hasFDerivWithinAt) + hinj g).mp (by + rw [himage] + exact hg.integrableOn) + refine hj.congr_fun ?_ polarCoord.open_target.measurableSet + intro p hp + dsimp only + rw [det_fderivPolarCoordSymm, abs_of_pos hp.1] + +private theorem integrableOn_complex_polarCoord_target + {F : Type*} [NormedAddCommGroup F] [NormedSpace ℝ F] + (f : ℂ → F) (hf : Integrable f) : + IntegrableOn (fun p : ℝ × ℝ ↦ p.1 • f (Complex.polarCoord.symm p)) + Complex.polarCoord.target := by + rw [Complex.polarCoord_target] + let g : ℝ × ℝ → F := f ∘ Complex.measurableEquivRealProd.symm + have hg : Integrable g := + ((Complex.volume_preserving_equiv_real_prod.symm).integrable_comp_emb + Complex.measurableEquivRealProd.symm.measurableEmbedding).mpr hf + have h := integrableOn_polarCoord_target g hg + change IntegrableOn + (fun p ↦ p.1 • (f ∘ Complex.measurableEquivRealProd.symm) + (polarCoord.symm p)) (Set.Ioi 0 ×ˢ Set.Ioo (-Real.pi) Real.pi) at h + simpa only [Function.comp_apply, + Complex.measurableEquivRealProd_symm_polarCoord_symm_apply] using h + +private theorem integral_circleMap_Ioo_eq_circleAverage + {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] + (f : ℂ → E) (r : ℝ) : + (∫ θ in Set.Ioo (-Real.pi) Real.pi, f (circleMap 0 r θ)) = + (2 * Real.pi) • Real.circleAverage f 0 r := by + rw [Real.circleAverage_eq_integral_add (-Real.pi), smul_smul] + have hp : (2 * Real.pi) * (2 * Real.pi)⁻¹ = 1 := by + field_simp [Real.pi_ne_zero] + rw [hp, one_smul, ← MeasureTheory.integral_Ioc_eq_integral_Ioo, + ← intervalIntegral.integral_of_le (le_of_lt (neg_lt_self Real.pi_pos))] + have hshift := intervalIntegral.integral_comp_add_right + (f := fun θ ↦ f (circleMap 0 r θ)) (a := 0) (b := 2 * Real.pi) (-Real.pi) + simpa [two_mul] using hshift.symm + +/-- The radial profile of the inverse distance truncated to a disk of radius `S`. -/ +private def invNormCutoff (S r : ℝ) : ℝ := if r < S then r⁻¹ else 0 + +private theorem indicator_ball_inv_norm_eq (S : ℝ) : + (fun p : ℂ ↦ (Metric.ball 0 S).indicator (fun p ↦ ‖p‖⁻¹) p) = + fun p ↦ invNormCutoff S ‖p‖ := by + funext p + rw [Set.indicator] + simp only [Metric.mem_ball, dist_zero_right, invNormCutoff] + +private theorem radial_invNormCutoff_ae (S : ℝ) : + (fun y : ℝ ↦ y ^ (Module.finrank ℝ ℂ - 1) • invNormCutoff S y) + =ᵐ[volume.restrict (Set.Ioi 0)] + (Set.Iio S).indicator (fun _ ↦ (1 : ℝ)) := by + filter_upwards [ae_restrict_mem measurableSet_Ioi] with y hy + have hy0 : y ≠ 0 := ne_of_gt hy + simp [invNormCutoff, Set.indicator, smul_eq_mul, hy0] + +/-- Inverse distance from zero is integrable on a complex disk centred at zero. -/ +theorem integrableOn_inv_norm_ball (S : ℝ) : + IntegrableOn (fun p : ℂ ↦ ‖p‖⁻¹) (Metric.ball 0 S) := by + rw [← integrable_indicator_iff measurableSet_ball] + change Integrable (fun p : ℂ ↦ (Metric.ball 0 S).indicator (fun p ↦ ‖p‖⁻¹) p) + rw [indicator_ball_inv_norm_eq, + MeasureTheory.integrable_fun_norm_addHaar volume (f := invNormCutoff S)] + refine IntegrableOn.congr_fun_ae ?_ (radial_invNormCutoff_ae S).symm + rw [integrableOn_indicator_iff measurableSet_Iio, Set.Iio_inter_Ioi] + exact integrableOn_const (by simp) + +/-- The integral of inverse distance from zero over a complex disk centred at zero. -/ +theorem setIntegral_inv_norm_ball (S : ℝ) (hS : 0 < S) : + (∫ p : ℂ in Metric.ball 0 S, ‖p‖⁻¹) = 2 * Real.pi * S := by + rw [← integral_indicator (f := fun p : ℂ ↦ ‖p‖⁻¹) measurableSet_ball, + indicator_ball_inv_norm_eq, + MeasureTheory.integral_fun_norm_addHaar volume (invNormCutoff S), + integral_congr_ae (radial_invNormCutoff_ae S), + setIntegral_indicator measurableSet_Iio, Set.Ioi_inter_Iio] + simp [hS.le, Measure.real, Complex.volume_ball, mul_assoc] + +private theorem integrableOn_inv_sub_ball (R : ℝ) (a : ℂ) (ha : ‖a‖ < R) : + IntegrableOn (fun q : ℂ ↦ (a - q)⁻¹) (Metric.ball 0 R) := by + rw [← integrable_indicator_iff measurableSet_ball] + let g : ℂ → ℝ := + (Metric.ball a (2 * R)).indicator (fun q ↦ ‖a - q‖⁻¹) + have hg : Integrable g := by + have hcenter : (fun q : ℂ ↦ + (Metric.ball a (2 * R)).indicator (fun q ↦ ‖a - q‖⁻¹) q) = + fun q ↦ (Metric.ball 0 (2 * R)).indicator (fun w ↦ ‖w‖⁻¹) (a - q) := by + funext q + have hm : q ∈ Metric.ball a (2 * R) ↔ a - q ∈ Metric.ball 0 (2 * R) := by + simp only [Metric.mem_ball, dist_eq_norm] + simp [sub_zero, norm_sub_rev] + by_cases hq : q ∈ Metric.ball a (2 * R) + · simp [hq, hm.mp hq] + · simp [hq, mt hm.mpr hq] + change Integrable (fun q : ℂ ↦ + (Metric.ball a (2 * R)).indicator (fun q ↦ ‖a - q‖⁻¹) q) + rw [hcenter, MeasureTheory.integrable_comp_sub_left] + exact (integrable_indicator_iff measurableSet_ball).mpr + (integrableOn_inv_norm_ball (2 * R)) + refine Integrable.mono' hg ?_ ?_ + · exact ((measurable_const.sub measurable_id).inv.indicator + measurableSet_ball).aestronglyMeasurable + · filter_upwards with q + by_cases hq : q ∈ Metric.ball (0 : ℂ) R + · have hqa : q ∈ Metric.ball a (2 * R) := by + rw [Metric.mem_ball, dist_eq_norm] + have hqR : ‖q‖ < R := by simpa [Metric.mem_ball, dist_eq_norm] using hq + calc + ‖q - a‖ ≤ ‖q‖ + ‖a‖ := norm_sub_le q a + _ < R + R := add_lt_add hqR ha + _ = 2 * R := by ring + simp only [Set.indicator_of_mem hq, norm_inv] + simp [g, hqa] + · simp only [Set.indicator, hq, ↓reduceIte, norm_zero] + exact Set.indicator_apply_nonneg fun _ ↦ by positivity + +private theorem circleAverage_inv_sub_eq_inv_of_radius_lt_norm + (a : ℂ) (r : ℝ) (hr : 0 ≤ r) (hout : r < ‖a‖) : + Real.circleAverage (fun w ↦ (a - w)⁻¹) 0 r = a⁻¹ := by + have hne : ∀ w ∈ Metric.closedBall (0 : ℂ) |r|, a - w ≠ 0 := by + intro w hw hwa + have hwa' : w = a := (sub_eq_zero.mp hwa).symm + subst a + have : ‖w‖ ≤ r := by simpa [abs_of_nonneg hr, dist_eq_norm] using hw + linarith + have hcont : ContinuousOn (fun w : ℂ ↦ (a - w)⁻¹) (Metric.closedBall 0 |r|) := + ((continuous_const.sub continuous_id).continuousOn).inv₀ hne + have hdiff : DiffContOnCl ℂ (fun w : ℂ ↦ (a - w)⁻¹) (Metric.ball 0 |r|) := + DiffContOnCl.mk_ball + (fun w hw ↦ (((differentiableAt_const a).sub differentiableAt_id).inv + (hne w (Metric.ball_subset_closedBall hw))).differentiableWithinAt) hcont + simpa using hdiff.circleAverage + +private theorem partialFraction_circleIntegral_congr (a : ℂ) (r : ℝ) (hr : 0 < r) + (ha : a ≠ 0) (hra : ‖a‖ ≠ r) : + (∮ w in C(0, r), (w - 0)⁻¹ * (a - w)⁻¹) = + ∮ w in C(0, r), a⁻¹ * ((w - 0)⁻¹ - (w - a)⁻¹) := by + refine circleIntegral.integral_congr hr.le fun w hw ↦ ?_ + have hw0 : w ≠ 0 := by + intro h + subst w + have hz : (0 : ℝ) = r := by simpa using (Metric.mem_sphere.mp hw) + linarith + have hwa : w ≠ a := by + intro h + subst w + exact hra (by simpa [dist_eq_norm] using (Metric.mem_sphere.mp hw)) + field_simp + ring + +private theorem circleIntegrable_sub_inv_of_norm_ne (a : ℂ) (r : ℝ) (hr : 0 < r) + (hra : ‖a‖ ≠ r) : CircleIntegrable (fun w : ℂ ↦ (w - a)⁻¹) 0 r := + circleIntegrable_sub_inv_iff.mpr (Or.inr fun h ↦ + hra (by simpa [dist_eq_norm, abs_of_pos hr] using (Metric.mem_sphere.mp h))) + +private theorem circleAverage_inv_sub_eq_zero_of_norm_lt_radius + (a : ℂ) (r : ℝ) (hr : 0 < r) (ha : a ≠ 0) (hinner : ‖a‖ < r) : + Real.circleAverage (fun w ↦ (a - w)⁻¹) 0 r = 0 := by + rw [Real.circleAverage_eq_circleIntegral hr.ne'] + change (2 * (Real.pi : ℂ) * Complex.I)⁻¹ * + (∮ z in C(0, r), (z - 0)⁻¹ * (a - z)⁻¹) = 0 + have hmem : a ∈ Metric.ball (0 : ℂ) r := by + simpa [Metric.mem_ball, dist_eq_norm] using hinner + rw [partialFraction_circleIntegral_congr a r hr ha hinner.ne, + circleIntegral.integral_const_mul, + circleIntegral.integral_sub + (circleIntegrable_sub_inv_of_norm_ne 0 r hr (by simpa using hr.ne)) + (circleIntegrable_sub_inv_of_norm_ne a r hr hinner.ne), + circleIntegral.integral_sub_center_inv 0 hr.ne', + circleIntegral.integral_sub_inv_of_mem_ball hmem] + simp + +private theorem setIntegral_inv_sub_ball_of_ne_zero (R : ℝ) (a : ℂ) (ha0 : a ≠ 0) + (ha : ‖a‖ < R) : + (∫ q in Metric.ball 0 R, (a - q)⁻¹) = Real.pi * starRingEnd ℂ a := by + let f : ℂ → ℂ := (Metric.ball 0 R).indicator (fun q ↦ (a - q)⁻¹) + have hf : Integrable f := + (integrable_indicator_iff measurableSet_ball).mpr (integrableOn_inv_sub_ball R a ha) + have hpInt := integrableOn_complex_polarCoord_target f hf + have hpolar := Complex.integral_comp_polarCoord_symm f + have hprod : + (∫ p in polarCoord.target, + p.1 • f (Complex.polarCoord.symm p)) = + ∫ r in Set.Ioi (0 : ℝ), ∫ θ in Set.Ioo (-Real.pi) Real.pi, + r • f (Complex.polarCoord.symm (r, θ)) := by + change (∫ p in Set.Ioi (0 : ℝ) ×ˢ Set.Ioo (-Real.pi) Real.pi, + p.1 • f (Complex.polarCoord.symm p)) = _ + exact setIntegral_prod _ (by + rw [← Measure.volume_eq_prod ℝ ℝ] + simpa only [Complex.polarCoord_target] using hpInt) + rw [← integral_indicator measurableSet_ball] + change (∫ q, f q) = _ + rw [← hpolar, hprod] + have hinner : ∀ r ∈ Set.Ioi (0 : ℝ), + (∫ θ in Set.Ioo (-Real.pi) Real.pi, + r • f (Complex.polarCoord.symm (r, θ))) = + if r < R then r • ((2 * Real.pi) • + Real.circleAverage (fun q ↦ (a - q)⁻¹) 0 r) else 0 := by + intro r hr + have hr0 : 0 < r := hr + have hpoint : ∀ θ, Complex.polarCoord.symm (r, θ) = circleMap 0 r θ := by + intro θ + rw [Complex.polarCoord_symm_apply, circleMap_zero, Complex.exp_mul_I] + simp + by_cases hrR : r < R + · simp only [hrR, ↓reduceIte] + have hmem : ∀ θ, Complex.polarCoord.symm (r, θ) ∈ Metric.ball (0 : ℂ) R := by + intro θ + rw [hpoint] + simpa [Metric.mem_ball, dist_eq_norm, abs_of_pos hr0] using hrR + simp_rw [f, Set.indicator_of_mem (hmem _), hpoint] + rw [integral_smul] + rw [integral_circleMap_Ioo_eq_circleAverage (fun q ↦ (a - q)⁻¹) r] + · simp only [hrR, ↓reduceIte] + have hnotmem : ∀ θ, Complex.polarCoord.symm (r, θ) ∉ Metric.ball (0 : ℂ) R := by + intro θ hθ + rw [hpoint] at hθ + have : r < R := by + simpa [Metric.mem_ball, dist_eq_norm, abs_of_pos hr0] using hθ + exact hrR this + simp_rw [f, Set.indicator, hnotmem] + simp + rw [setIntegral_congr_fun measurableSet_Ioi hinner] + have hradial : + (fun r : ℝ ↦ if r < R then r • ((2 * Real.pi) • + Real.circleAverage (fun q ↦ (a - q)⁻¹) 0 r) else 0) + =ᵐ[volume.restrict (Set.Ioi 0)] + fun r ↦ if r < ‖a‖ then r • ((2 * Real.pi) • a⁻¹) else 0 := by + filter_upwards [ae_restrict_mem measurableSet_Ioi, + ae_restrict_of_ae (Measure.ae_ne volume ‖a‖)] with r hr hra + have hr0 : 0 < r := hr + by_cases hra' : r < ‖a‖ + · have hrR : r < R := hra'.trans ha + simp only [hrR, hra', ↓reduceIte] + rw [circleAverage_inv_sub_eq_inv_of_radius_lt_norm a r hr0.le hra'] + · have har : ‖a‖ < r := lt_of_le_of_ne (le_of_not_gt hra') (Ne.symm hra) + by_cases hrR : r < R + · simp only [hrR, hra', ↓reduceIte] + rw [circleAverage_inv_sub_eq_zero_of_norm_lt_radius a r hr0 ha0 har, smul_zero] + simp + · simp only [hrR, hra', ↓reduceIte] + rw [integral_congr_ae hradial] + rw [show (fun r : ℝ ↦ if r < ‖a‖ then r • ((2 * Real.pi) • a⁻¹) else 0) = + (Set.Iio ‖a‖).indicator (fun r ↦ r • ((2 * Real.pi) • a⁻¹)) by + funext r + simp [Set.indicator]] + rw [setIntegral_indicator measurableSet_Iio, Set.Ioi_inter_Iio] + rw [← integral_Ioc_eq_integral_Ioo, + ← intervalIntegral.integral_of_le (norm_nonneg a)] + rw [intervalIntegral.integral_smul_const] + rw [integral_id] + rw [Complex.inv_def] + simp only [starRingEnd_apply, Complex.normSq_eq_norm_sq, Complex.real_smul] + have hnorm : ‖a‖ ≠ 0 := norm_ne_zero_iff.mpr ha0 + have hnormc : (‖a‖ : ℂ) ≠ 0 := by exact_mod_cast hnorm + push_cast + field_simp [hnormc] + ring + +private theorem setIntegral_inv_sub_ball_zero (R : ℝ) : + (∫ q in Metric.ball 0 R, ((0 : ℂ) - q)⁻¹) = 0 := by + rw [← integral_indicator (f := fun q : ℂ ↦ ((0 : ℂ) - q)⁻¹) measurableSet_ball] + let f : ℂ → ℂ := (Metric.ball 0 R).indicator (fun q ↦ ((0 : ℂ) - q)⁻¹) + have hodd : ∀ q, f (-q) = -f q := by + intro q + have hm : -q ∈ Metric.ball (0 : ℂ) R ↔ q ∈ Metric.ball 0 R := by + simp [Metric.mem_ball, dist_eq_norm] + by_cases hq : q ∈ Metric.ball (0 : ℂ) R + · simp [f, hq, hm.mpr hq] + · simp [f, hq, mt hm.mp hq] + have hneg : (∫ q, f (-q)) = -(∫ q, f q) := by + rw [integral_congr_ae (Filter.Eventually.of_forall hodd), integral_neg] + have hself : (∫ q, f q) = -(∫ q, f q) := + (MeasureTheory.integral_neg_eq_self f volume).symm.trans hneg + have ht : (2 : ℝ) • (∫ q, f q) = 0 := by + rw [two_smul] + calc + (∫ q, f q) + ∫ q, f q = -(∫ q, f q) + ∫ q, f q := + congrArg (fun x ↦ x + ∫ q, f q) hself + _ = 0 := neg_add_cancel _ + exact (smul_eq_zero.mp ht).resolve_left (by norm_num) + +/-- The integral of `q ↦ (a - q)⁻¹` over a disk centred at zero containing `a`. -/ +theorem setIntegral_inv_sub_ball (R : ℝ) (a : ℂ) (ha : ‖a‖ < R) : + (∫ q in Metric.ball 0 R, (a - q)⁻¹) = Real.pi * starRingEnd ℂ a := by + by_cases ha0 : a = 0 + · subst a + simpa using setIntegral_inv_sub_ball_zero R + · exact setIntegral_inv_sub_ball_of_ne_zero R a ha0 ha + +end Complex + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Analysis / Convex / Basic +-/ + +@[expose] public section + +namespace Convex + +/-- Every nonnegative scalar between zero and a known scalar multiple stays in a convex set. -/ +theorem smul_mem_of_nonneg_of_le {E : Type*} [AddCommGroup E] [Module ℝ E] + {s : Set E} (hs : Convex ℝ s) {v : E} {x a : ℝ} + (hzero : (0 : E) ∈ s) (ha : a • v ∈ s) (hx : 0 ≤ x) (hxa : x ≤ a) : + x • v ∈ s := by + by_cases ha0 : a = 0 + · have hx0 : x = 0 := by linarith + simpa [hx0] using hzero + · have hapos : 0 < a := lt_of_le_of_ne (hx.trans hxa) (Ne.symm ha0) + have hratio : x / a ∈ Set.Icc (0 : ℝ) 1 := + ⟨div_nonneg hx hapos.le, (div_le_one hapos).2 hxa⟩ + have hmem := hs.smul_mem_of_zero_mem hzero ha hratio + simpa only [smul_smul, div_mul_cancel₀ x ha0] using hmem + +end Convex + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Analysis / Convex / Deriv +-/ + +@[expose] public section + +open Filter Set +open scoped Topology + +namespace ConcaveOn + +/-- A differentiable concave real function lies below its tangent line. -/ +theorem le_add_deriv_mul_sub {s : Set ℝ} {g : ℝ → ℝ} + (hg : ConcaveOn ℝ s g) {x : ℝ} (hx : x ∈ s) + (hdiff : DifferentiableAt ℝ g x) {y : ℝ} (hy : y ∈ s) : + g y ≤ g x + deriv g x * (y - x) := by + rcases lt_trichotomy y x with hyx | rfl | hxy + · have hslope := hg.deriv_le_slope hy hx hyx hdiff + rw [slope] at hslope + have hpos : 0 < x - y := sub_pos.mpr hyx + have hs : deriv g x * (x - y) ≤ g x - g y := by + apply (le_div_iff₀ hpos).mp + simpa [smul_eq_mul, inv_mul_eq_div] using hslope + nlinarith + · simp + · have hslope := hg.slope_le_of_hasDerivAt hx hy hxy hdiff.hasDerivAt + rw [slope] at hslope + have hpos : 0 < y - x := sub_pos.mpr hxy + have hs : g y - g x ≤ deriv g x * (y - x) := by + apply (div_le_iff₀ hpos).mp + simpa [smul_eq_mul, inv_mul_eq_div] using hslope + linarith + +/-- Pointwise convergence of concave functions forces derivative convergence at a common +differentiability point in the interior of an interval. -/ +theorem tendsto_deriv_of_tendsto_Ioo {ι : Type*} {F : Filter ι} + {f : ι → ℝ → ℝ} {g : ℝ → ℝ} + {a b x : ℝ} (hx : x ∈ Ioo a b) + (hf : ∀ᶠ n in F, ConcaveOn ℝ (Ioo a b) (f n)) + (hlim : ∀ y ∈ Ioo a b, Tendsto (fun n ↦ f n y) F (𝓝 (g y))) + (hdf : ∀ᶠ n in F, DifferentiableAt ℝ (f n) x) + (hdg : DifferentiableAt ℝ g x) : + Tendsto (fun n ↦ deriv (f n) x) F (𝓝 (deriv g x)) := by + have hslope (y : ℝ) (hy : y ∈ Ioo a b) : + Tendsto (fun n ↦ slope (f n) x y) F (𝓝 (slope g x y)) := by + simpa only [slope, smul_eq_mul, vsub_eq_sub] using + ((hlim y hy).sub (hlim x hx)).const_mul (y - x)⁻¹ + have hnear : ∀ᶠ y in 𝓝 x, y ∈ Ioo a b := isOpen_Ioo.mem_nhds hx + apply tendsto_order.mpr + constructor + · intro l hl + have hright := hdg.hasDerivAt.tendsto_slope.mono_left (nhdsGT_le_nhdsNE x) + have hgood : ∀ᶠ y in 𝓝[>] x, y ∈ Ioo a b ∧ x < y ∧ l < slope g x y := by + filter_upwards [hnear.filter_mono nhdsWithin_le_nhds, self_mem_nhdsWithin, + hright.eventually (lt_mem_nhds hl)] with y hy hxy hsy + exact ⟨hy, hxy, hsy⟩ + obtain ⟨y, hy, hxy, hly⟩ := hgood.exists + filter_upwards [hf, hdf, (hslope y hy).eventually (lt_mem_nhds hly)] with n hfn hdn hn + exact hn.trans_le (hfn.slope_le_of_hasDerivAt hx hy hxy hdn.hasDerivAt) + · intro u hu + have hleft := hdg.hasDerivAt.tendsto_slope.mono_left (nhdsLT_le_nhdsNE x) + have hgood : ∀ᶠ y in 𝓝[<] x, y ∈ Ioo a b ∧ y < x ∧ slope g x y < u := by + filter_upwards [hnear.filter_mono nhdsWithin_le_nhds, self_mem_nhdsWithin, + hleft.eventually (gt_mem_nhds hu)] with y hy hyx hsy + exact ⟨hy, hyx, hsy⟩ + obtain ⟨y, hy, hyx, hyu⟩ := hgood.exists + filter_upwards [hf, hdf, (hslope y hy).eventually (gt_mem_nhds hyu)] with n hfn hdn hn + have hle := hfn.deriv_le_slope hy hx hyx hdn + rw [slope_comm] at hle + exact hle.trans_lt hn + +end ConcaveOn + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Analysis / Convex / Gauge +-/ + +@[expose] public section + +open Set +open scoped Topology NNReal + +variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] + +/-- A direction of positive gauge has a unique positive multiple on the frontier. -/ +lemma Convex.existsUnique_pos_smul_mem_frontier_of_gauge_pos {s : Set E} + (hs : Convex ℝ s) (h₀ : s ∈ nhds (0 : E)) {u : E} (hu : 0 < gauge s u) : + ∃! r : ℝ, 0 < r ∧ r • u ∈ frontier s := by + refine ⟨(gauge s u)⁻¹, ⟨inv_pos.mpr hu, ?_⟩, ?_⟩ + · apply (gauge_eq_one_iff_mem_frontier hs h₀).mp + rw [gauge_smul_of_nonneg (inv_nonneg.mpr hu.le), smul_eq_mul, inv_mul_cancel₀ hu.ne'] + · intro r hr + have h := (gauge_eq_one_iff_mem_frontier hs h₀).mpr hr.2 + rw [gauge_smul_of_nonneg hr.1.le, smul_eq_mul] at h + simpa only [one_div] using (eq_div_iff hu.ne').mpr h + +/-- Every nonzero direction has a unique positive multiple on the frontier of a bounded convex +neighborhood of zero. -/ +lemma Convex.existsUnique_pos_smul_mem_frontier {s : Set E} + (hs : Convex ℝ s) (h₀ : s ∈ nhds (0 : E)) + (hb : Bornology.IsVonNBounded ℝ s) {u : E} (hu : u ≠ 0) : + ∃! r : ℝ, 0 < r ∧ r • u ∈ frontier s := + hs.existsUnique_pos_smul_mem_frontier_of_gauge_pos h₀ + ((gauge_pos (absorbent_nhds_zero h₀) hb).mpr hu) + +/-- Reciprocation is Lipschitz on real numbers bounded below by a positive constant. -/ +lemma Real.dist_inv_le_of_pos_lower_bound {a b c : ℝ} (hc : 0 < c) + (ha : c ≤ a) (hb : c ≤ b) : + dist a⁻¹ b⁻¹ ≤ c⁻¹ ^ 2 * dist a b := by + have ha₀ := hc.trans_le ha + have hb₀ := hc.trans_le hb + rw [dist_inv_inv₀ ha₀.ne' hb₀.ne', Real.norm_eq_abs, Real.norm_eq_abs, + abs_of_pos ha₀, abs_of_pos hb₀] + calc + dist a b / (a * b) ≤ dist a b / (c * c) := by gcongr + _ = c⁻¹ ^ 2 * dist a b := by ring + +/-- The reciprocal of a positive uniformly bounded-below Lipschitz function is Lipschitz. -/ +lemma LipschitzWith.inv_of_pos_lower_bound {X : Type*} [PseudoMetricSpace X] + {f : X → ℝ} {K : ℝ≥0} (hf : LipschitzWith K f) {c : ℝ} + (hc : 0 < c) (hbound : ∀ x, c ≤ f x) : + LipschitzWith (Real.toNNReal (c⁻¹ ^ 2) * K) (fun x ↦ (f x)⁻¹) := by + apply LipschitzWith.of_dist_le_mul + intro x y + calc + dist (f x)⁻¹ (f y)⁻¹ ≤ c⁻¹ ^ 2 * dist (f x) (f y) := + Real.dist_inv_le_of_pos_lower_bound hc (hbound x) (hbound y) + _ ≤ c⁻¹ ^ 2 * ((K : ℝ) * dist x y) := + mul_le_mul_of_nonneg_left (hf.dist_le_mul x y) (sq_nonneg _) + _ = _ := by + rw [NNReal.coe_mul, Real.coe_toNNReal _ (sq_nonneg _)] + ring + +/-- The reciprocal gauge is Lipschitz on the unit sphere of a bounded convex neighborhood of zero. +-/ +lemma Convex.exists_lipschitzWith_inv_gauge_sphere {s : Set E} + (hs : Convex ℝ s) (h₀ : s ∈ nhds (0 : E)) {R : ℝ} (hR : 0 < R) + (hbound : s ⊆ Metric.closedBall 0 R) : + ∃ C, LipschitzWith C (fun u : {u : E | ‖u‖ = 1} ↦ (gauge s u.val)⁻¹) := by + obtain ⟨K, hK⟩ := hs.lipschitz_gauge h₀ + have hf : LipschitzWith K (fun u : {u : E | ‖u‖ = 1} ↦ gauge s u.val) := + by + apply LipschitzWith.of_dist_le_mul + intro u v + exact hK.dist_le_mul u.val v.val + have hlower (u : {u : E | ‖u‖ = 1}) : 1 / R ≤ gauge s u.val := by + have hu : ‖(u : E)‖ = 1 := u.property + calc + 1 / R = ‖u.val‖ / R := congrArg (fun r ↦ r / R) hu.symm + _ ≤ gauge s u.val := + le_gauge_of_subset_closedBall (absorbent_nhds_zero h₀) hR.le hbound + exact ⟨_, hf.inv_of_pos_lower_bound (one_div_pos.mpr hR) hlower⟩ + +/-- Radial gauge rescaling is Lipschitz on the unit sphere. -/ +lemma Convex.exists_lipschitzWith_radial_gauge_sphere {s : Set E} + (hs : Convex ℝ s) (h₀ : s ∈ nhds (0 : E)) {R : ℝ} (hR : 0 < R) + (hbound : s ⊆ Metric.closedBall 0 R) : + ∃ C, LipschitzWith C + (fun u : {u : E | ‖u‖ = 1} ↦ (gauge s u.val)⁻¹ • u.val) := by + obtain ⟨C, hC⟩ := hs.exists_lipschitzWith_inv_gauge_sphere h₀ hR hbound + have hr (u : {u : E | ‖u‖ = 1}) : 0 ≤ (gauge s u.val)⁻¹ ∧ + (gauge s u.val)⁻¹ ≤ R := by + have hu : ‖u.val‖ = 1 := u.property + have hlower : 1 / R ≤ gauge s u.val := by + calc + 1 / R = ‖u.val‖ / R := congrArg (fun r ↦ r / R) hu.symm + _ ≤ _ := le_gauge_of_subset_closedBall (absorbent_nhds_zero h₀) hR.le hbound + refine ⟨inv_nonneg.mpr (gauge_nonneg _), ?_⟩ + simpa only [one_div, inv_inv] using + one_div_le_one_div_of_le (one_div_pos.mpr hR) hlower + refine ⟨Real.toNNReal R + C, LipschitzWith.of_dist_le_mul fun u v ↦ ?_⟩ + have hv : ‖v.val‖ = 1 := v.property + calc + dist ((gauge s u.val)⁻¹ • u.val) ((gauge s v.val)⁻¹ • v.val) ≤ + dist ((gauge s u.val)⁻¹ • u.val) ((gauge s u.val)⁻¹ • v.val) + + dist ((gauge s u.val)⁻¹ • v.val) ((gauge s v.val)⁻¹ • v.val) := + dist_triangle _ _ _ + _ = (gauge s u.val)⁻¹ * dist u v + + dist (gauge s u.val)⁻¹ (gauge s v.val)⁻¹ := by + rw [dist_smul₀, Real.norm_eq_abs, abs_of_nonneg (hr u).1] + congr 1 + rw [dist_eq_norm, ← sub_smul, norm_smul, hv, mul_one, dist_eq_norm] + _ ≤ R * dist u v + (C : ℝ) * dist u v := + add_le_add (mul_le_mul_of_nonneg_right (hr u).2 dist_nonneg) (hC.dist_le_mul u v) + _ = _ := by rw [NNReal.coe_add, Real.coe_toNNReal _ hR.le]; ring + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Analysis / Convex / Gauge Rescale +-/ + +@[expose] public section + +open Set +open scoped Topology NNReal Pointwise + +variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] + +/-- Gauge rescaling identifies the unit sphere with the frontier of a bounded convex neighborhood. +-/ +noncomputable def radialGaugeHomeomorph {s : Set E} + (hs : Convex ℝ s) (h₀ : s ∈ nhds (0 : E)) + (hb : Bornology.IsVonNBounded ℝ s) : + {u : E | ‖u‖ = 1} ≃ₜ ↥(frontier s) := by + let e := gaugeRescaleHomeomorph (Metric.ball (0 : E) 1) s + (convex_ball 0 1) (Metric.ball_mem_nhds _ (by norm_num)) + (NormedSpace.isVonNBounded_ball ℝ E 1) hs h₀ hb + have he : e '' frontier (Metric.ball (0 : E) 1) = frontier s := by + rw [← closure_sdiff_interior, Set.image_sdiff e.injective] + rw [image_gaugeRescaleHomeomorph_closure, image_gaugeRescaleHomeomorph_interior] + exact closure_sdiff_interior s + have hunit : {u : E | ‖u‖ = 1} = frontier (Metric.ball (0 : E) 1) := by + rw [frontier_ball _ one_ne_zero] + ext u + simp + exact (Homeomorph.setCongr hunit).trans ((e.image _).trans (Homeomorph.setCongr he)) + +/-- The radial gauge homeomorphism sends a unit vector to its reciprocal-gauge multiple. -/ +lemma radialGaugeHomeomorph_apply {s : Set E} + (hs : Convex ℝ s) (h₀ : s ∈ nhds (0 : E)) + (hb : Bornology.IsVonNBounded ℝ s) (u : {u : E | ‖u‖ = 1}) : + (radialGaugeHomeomorph hs h₀ hb u : E) = (gauge s u.val)⁻¹ • u.val := by + change (gauge (Metric.ball (0 : E) 1) u.val / gauge s u.val) • u.val = _ + rw [gauge_ball (by norm_num), div_one] + have hu : ‖u.val‖ = 1 := u.property + rw [hu, one_div] + +open scoped Pointwise + +/-- Translate the radial gauge homeomorphism by a fixed vector. -/ +noncomputable def translatedRadialGaugeHomeomorph {s : Set E} + (hs : Convex ℝ s) (h₀ : s ∈ nhds (0 : E)) + (hb : Bornology.IsVonNBounded ℝ s) (o : E) : + {u : E | ‖u‖ = 1} ≃ₜ ↥(frontier (o +ᵥ s)) := by + let e : E ≃ₜ E := Homeomorph.addLeft o + have he : e '' frontier s = frontier (o +ᵥ s) := by + rw [e.image_frontier] + rfl + exact (radialGaugeHomeomorph hs h₀ hb).trans + ((e.image _).trans (Homeomorph.setCongr he)) + +/-- The translated radial gauge homeomorphism has the expected affine formula. -/ +lemma translatedRadialGaugeHomeomorph_apply {s : Set E} + (hs : Convex ℝ s) (h₀ : s ∈ nhds (0 : E)) + (hb : Bornology.IsVonNBounded ℝ s) (o : E) (u : {u : E | ‖u‖ = 1}) : + (translatedRadialGaugeHomeomorph hs h₀ hb o u : E) = + o + (gauge s u.val)⁻¹ • u.val := by + change o + (radialGaugeHomeomorph hs h₀ hb u : E) = _ + rw [radialGaugeHomeomorph_apply] + +/-- The translated radial gauge homeomorphism is Lipschitz on the unit sphere. -/ +lemma exists_lipschitzWith_translatedRadialGaugeHomeomorph {s : Set E} + (hs : Convex ℝ s) (h₀ : s ∈ nhds (0 : E)) + (hb : Bornology.IsVonNBounded ℝ s) (o : E) {R : ℝ} (hR : 0 < R) + (hbound : s ⊆ Metric.closedBall 0 R) : + ∃ C, LipschitzWith C (fun u ↦ (translatedRadialGaugeHomeomorph hs h₀ hb o u : E)) := by + obtain ⟨C, hC⟩ := hs.exists_lipschitzWith_radial_gauge_sphere h₀ hR hbound + refine ⟨C, LipschitzWith.of_dist_le_mul fun u v ↦ ?_⟩ + rw [translatedRadialGaugeHomeomorph_apply, translatedRadialGaugeHomeomorph_apply, + dist_add_left] + exact hC.dist_le_mul u v + +/-- A bounded convex set with an interior basepoint admits a positive Lipschitz radial +parametrization of its frontier. -/ +lemma exists_radial_homeomorph {s : Set E} + (hs : Convex ℝ s) (hb : Bornology.IsBounded s) (o : E) (ho : o ∈ interior s) : + ∃ (ρ : E → ℝ) (e : {u : E | ‖u‖ = 1} ≃ₜ ↥(frontier s)) (C : NNReal), + (∀ u, ‖u‖ = 1 → 0 < ρ u ∧ o + ρ u • u ∈ frontier s ∧ + ∀ r : ℝ, 0 < r → o + r • u ∈ frontier s → r = ρ u) ∧ + (∀ u, (e u : E) = o + ρ u.val • u.val) ∧ + LipschitzWith C (fun u ↦ (e u : E)) := by + let t : Set E := -o +ᵥ s + have htconv : Convex ℝ t := hs.vadd (-o) + have htzero : t ∈ nhds (0 : E) := by + simpa [t, ← mem_interior_iff_mem_nhds, interior_vadd, + mem_vadd_set_iff_neg_vadd_mem] using ho + have htbound : Bornology.IsBounded t := hb.vadd (-o) + have htbounded := NormedSpace.isVonNBounded_of_isBounded ℝ htbound + have htranslate : o +ᵥ t = s := by simp [t] + let e := (translatedRadialGaugeHomeomorph htconv htzero htbounded o).trans + (Homeomorph.setCongr (congrArg frontier htranslate)) + obtain ⟨R, hR, hnorm⟩ := htbound.exists_pos_norm_le + have hball : t ⊆ Metric.closedBall 0 R := by + intro x hx + simpa using hnorm x hx + obtain ⟨C, hC⟩ := exists_lipschitzWith_translatedRadialGaugeHomeomorph + htconv htzero htbounded o hR hball + refine ⟨fun u ↦ (gauge t u)⁻¹, e, C, ?_, ?_, ?_⟩ + · intro u hu + have hune : u ≠ 0 := by intro h; simp [h] at hu + have hg := (gauge_pos (absorbent_nhds_zero htzero) htbounded).mpr hune + refine ⟨inv_pos.mpr hg, ?_, ?_⟩ + · have hm := (e ⟨u, hu⟩).property + change (translatedRadialGaugeHomeomorph htconv htzero htbounded o ⟨u, hu⟩ : E) + ∈ frontier s at hm + rwa [translatedRadialGaugeHomeomorph_apply] at hm + · intro r hr hru + have hz : r • u ∈ frontier t := by + change r • u ∈ frontier (-o +ᵥ s) + rw [frontier, closure_vadd, interior_vadd] + simpa only [frontier, Set.mem_sdiff, mem_vadd_set_iff_neg_vadd_mem, neg_neg, vadd_eq_add] + using hru + have hgauge := (gauge_eq_one_iff_mem_frontier htconv htzero).mpr hz + rw [gauge_smul_of_nonneg hr.le, smul_eq_mul] at hgauge + simpa only [one_div] using (eq_div_iff hg.ne').mpr hgauge + · intro u + exact translatedRadialGaugeHomeomorph_apply htconv htzero htbounded o u + · exact hC + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Radial exit points of a convex set + +From an interior base point of a compact convex set, every point of the set lies on a segment +ending at a boundary point, and that boundary point is unique. These are the facts behind a +radial decomposition of a convex body into cones over its boundary. +-/ + +@[expose] public section + +open Set +open scoped Topology Pointwise + +open Set +open scoped Topology + +variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] + +/-- A point lying a fixed fraction of the way, less than all of it, from an interior point of a +convex set towards a point of the set is itself an interior point. -/ +theorem Convex.mem_interior_of_sub_eq_smul_sub {s : Set E} (hs : Convex ℝ s) {o w z : E} + {γ : ℝ} (ho : o ∈ interior s) (hw : w ∈ s) (hγ₀ : 0 ≤ γ) (hγ₁ : γ < 1) + (h : z - o = γ • (w - o)) : z ∈ interior s := by + have hz : z = (1 - γ) • o + γ • w := by + have hzo : z = o + γ • (w - o) := by rw [← h]; abel + rw [hzo, smul_sub, sub_smul, one_smul] + abel + rw [hz] + exact hs.combo_interior_closure_mem_interior ho (subset_closure hw) (by linarith) hγ₀ (by ring) + +/-- From an interior base point, every point of a compact convex set lies on a segment ending at +a boundary point: the radial exit point of its direction. -/ +theorem Convex.exists_mem_frontier_mem_segment [Nontrivial E] {s : Set E} (hs : Convex ℝ s) + (hcomp : IsCompact s) {o : E} (ho : o ∈ interior s) {x : E} (hx : x ∈ s) : + ∃ p ∈ frontier s, x ∈ segment ℝ o p := by + have himage : ((-o) +ᵥ s) = (fun z : E ↦ -o + z) '' s := (Set.image_vadd).symm + have hsconv : Convex ℝ ((-o) +ᵥ s) := by + rw [himage]; exact hs.translate (-o) + have hscompact : IsCompact ((-o) +ᵥ s) := by + rw [himage]; exact hcomp.image (continuous_const.add continuous_id) + have h0 : (0 : E) ∈ interior ((-o) +ᵥ s) := by + rw [interior_vadd] + exact ⟨o, ho, by simp only [vadd_eq_add]; abel⟩ + have hnhds : ((-o) +ᵥ s) ∈ 𝓝 (0 : E) := mem_interior_iff_mem_nhds.mp h0 + have hgbound := NormedSpace.isVonNBounded_of_isBounded ℝ hscompact.isBounded + have hfrontier : ∀ {z : E}, z ∈ frontier ((-o) +ᵥ s) → o + z ∈ frontier s := by + intro z hz + have hzs : z ∈ ((-o) +ᵥ s) := by + have h := frontier_subset_closure hz + rwa [hscompact.isClosed.closure_eq] at h + obtain ⟨k, hk, hkeq⟩ := hzs + have hok : o + z = k := by rw [← hkeq]; simp only [vadd_eq_add]; abel + rw [hok, mem_frontier_iff_notMem_interior hk] + intro hkint + exact hz.2 (by rw [interior_vadd]; exact ⟨k, hkint, hkeq⟩) + by_cases hxo : x = o + · obtain ⟨u, hu⟩ := exists_ne (0 : E) + obtain ⟨r, hr, -⟩ := hsconv.existsUnique_pos_smul_mem_frontier hnhds hgbound hu + exact ⟨o + r • u, hfrontier hr.2, hxo ▸ left_mem_segment ℝ o _⟩ + have hxs : x - o ∈ ((-o) +ᵥ s) := ⟨x, hx, by simp only [vadd_eq_add]; abel⟩ + have hgpos : 0 < gauge ((-o) +ᵥ s) (x - o) := + (gauge_pos (absorbent_nhds_zero hnhds) hgbound).mpr (sub_ne_zero.mpr hxo) + have hgle : gauge ((-o) +ᵥ s) (x - o) ≤ 1 := gauge_le_one_of_mem hxs + have hfr : (gauge ((-o) +ᵥ s) (x - o))⁻¹ • (x - o) ∈ frontier ((-o) +ᵥ s) := by + apply (gauge_eq_one_iff_mem_frontier hsconv hnhds).mp + rw [gauge_smul_of_nonneg (inv_nonneg.mpr hgpos.le), smul_eq_mul, inv_mul_cancel₀ hgpos.ne'] + refine ⟨o + (gauge ((-o) +ᵥ s) (x - o))⁻¹ • (x - o), hfrontier hfr, ?_⟩ + rw [segment_eq_image'] + refine ⟨gauge ((-o) +ᵥ s) (x - o), ⟨hgpos.le, hgle⟩, ?_⟩ + change o + gauge ((-o) +ᵥ s) (x - o) • (o + (gauge ((-o) +ᵥ s) (x - o))⁻¹ • (x - o) - o) = x + rw [add_sub_cancel_left, smul_smul, mul_inv_cancel₀ hgpos.ne', one_smul] + abel + +/-- The radial exit point from an interior base point is unique. -/ +theorem Convex.eq_of_mem_frontier_of_mem_segment {s : Set E} (hs : Convex ℝ s) + (hclosed : IsClosed s) {o x z w : E} (ho : o ∈ interior s) (hxo : x ≠ o) + (hz : z ∈ frontier s) (hw : w ∈ frontier s) (hxz : x ∈ segment ℝ o z) + (hxw : x ∈ segment ℝ o w) : z = w := by + have hzs : z ∈ s := hclosed.frontier_subset hz + have hws : w ∈ s := hclosed.frontier_subset hw + have hzint : z ∉ interior s := (mem_frontier_iff_notMem_interior hzs).mp hz + have hwint : w ∉ interior s := (mem_frontier_iff_notMem_interior hws).mp hw + rw [segment_eq_image'] at hxz hxw + obtain ⟨α, hα, hxα⟩ := hxz + obtain ⟨β, hβ, hxβ⟩ := hxw + have hxα' : o + α • (z - o) = x := hxα + have hxβ' : o + β • (w - o) = x := hxβ + have hαpos : 0 < α := hα.1.lt_or_eq.resolve_right fun h ↦ hxo (by rw [← hxα', ← h]; simp) + have hβpos : 0 < β := hβ.1.lt_or_eq.resolve_right fun h ↦ hxo (by rw [← hxβ', ← h]; simp) + have hkey : α • (z - o) = β • (w - o) := add_left_cancel (hxα'.trans hxβ'.symm) + have hzw : z - o = (α⁻¹ * β) • (w - o) := by + rw [mul_smul, ← hkey, smul_smul, inv_mul_cancel₀ hαpos.ne', one_smul] + have hwz : w - o = (α⁻¹ * β)⁻¹ • (z - o) := by + rw [hzw, smul_smul, inv_mul_cancel₀ (by positivity), one_smul] + rcases lt_trichotomy (α⁻¹ * β) 1 with hlt | heq | hgt + · exact absurd (hs.mem_interior_of_sub_eq_smul_sub ho hws (by positivity) hlt hzw) hzint + · have hzo : z - o = w - o := by rw [hzw, heq, one_smul] + simpa using congrArg (fun p : E ↦ p + o) hzo + · refine absurd (hs.mem_interior_of_sub_eq_smul_sub ho hzs (by positivity) ?_ hwz) hwint + rw [inv_lt_one_iff₀] + exact Or.inr hgt + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Analysis / Finite Envelope +-/ + +@[expose] public section + +noncomputable section + +namespace List + +open Filter Topology + +lemma abs_foldr_min_apply_sub_le (l : List (ℝ → ℝ)) (r L x z : ℝ) (hL : 0 ≤ L) + (hl : ∀ f ∈ l, |f x - f z| ≤ L * |x - z|) : + |l.foldr (fun f s ↦ min (f x) s) r - + l.foldr (fun f s ↦ min (f z) s) r| ≤ L * |x - z| := by + induction l with + | nil => simpa using mul_nonneg hL (abs_nonneg (x - z)) + | cons f l ih => + simp only [List.foldr_cons] + refine (abs_min_sub_min_le_max _ _ _ _).trans (max_le ?_ ?_) + · exact hl f (by simp) + · exact ih (fun g hg ↦ hl g (by simp [hg])) + +lemma abs_foldr_max_apply_sub_le (l : List (ℝ → ℝ)) (r L x z : ℝ) (hL : 0 ≤ L) + (hl : ∀ f ∈ l, |f x - f z| ≤ L * |x - z|) : + |l.foldr (fun f s ↦ max (f x) s) r - + l.foldr (fun f s ↦ max (f z) s) r| ≤ L * |x - z| := by + induction l with + | nil => simpa using mul_nonneg hL (abs_nonneg (x - z)) + | cons f l ih => + simp only [List.foldr_cons] + refine (abs_max_sub_max_le_max _ _ _ _).trans (max_le ?_ ?_) + · exact hl f (by simp) + · exact ih (fun g hg ↦ hl g (by simp [hg])) + +lemma le_foldr_min_apply_iff (l : List (ℝ → ℝ)) (r x y : ℝ) : + y ≤ l.foldr (fun f s ↦ min (f x) s) r ↔ y ≤ r ∧ ∀ f ∈ l, y ≤ f x := by + induction l with + | nil => simp + | cons f l ih => simp [ih, and_left_comm] + +lemma foldr_max_apply_le_iff (l : List (ℝ → ℝ)) (r x y : ℝ) : + l.foldr (fun f s ↦ max (f x) s) r ≤ y ↔ r ≤ y ∧ ∀ f ∈ l, f x ≤ y := by + induction l with + | nil => simp + | cons f l ih => simp [ih, and_left_comm] + +end List + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Analysis / Inner Product Space / Box +-/ + +@[expose] public section + +namespace EuclideanSpace + +/-- A rectangle with finite coordinate bounds is bounded in the Euclidean plane. -/ +theorem isBounded_coordinate_rectangle (l r a b : ℝ) : + Bornology.IsBounded {p : EuclideanSpace ℝ (Fin 2) | l ≤ p 0 ∧ p 0 ≤ r ∧ a ≤ p 1 ∧ p 1 ≤ b} := by + apply isBounded_iff_forall_norm_le.mpr + refine ⟨(|l| + |r|) + (|a| + |b|), ?_⟩ + rintro p ⟨hl, hr, ha, hb⟩ + have hx : |p 0| ≤ |l| + |r| := abs_le.mpr + ⟨by linarith [neg_abs_le l, abs_nonneg r], + by linarith [le_abs_self r, abs_nonneg l]⟩ + have hy : |p 1| ≤ |a| + |b| := abs_le.mpr + ⟨by linarith [neg_abs_le a, abs_nonneg b], + by linarith [le_abs_self b, abs_nonneg a]⟩ + have hx2 := (sq_le_sq₀ (abs_nonneg (p 0)) (by positivity)).mpr hx + have hy2 := (sq_le_sq₀ (abs_nonneg (p 1)) (by positivity)).mpr hy + have hn := EuclideanSpace.norm_sq_eq p + simp only [Fin.sum_univ_two, Real.norm_eq_abs, sq_abs] at hn hx2 hy2 + nlinarith [mul_nonneg (by positivity : 0 ≤ |l| + |r|) + (by positivity : 0 ≤ |a| + |b|), norm_nonneg p, + abs_nonneg l, abs_nonneg r, abs_nonneg a, abs_nonneg b] + +end EuclideanSpace + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Linearity of a real inner product in its left argument + +`Mathlib.Analysis.InnerProductSpace.Basic` provides the continuous linear map +`innerSL ℝ v = fun x ↦ ⟪v, x⟫`; the bundled form of the symmetric slot is what the +half-space convexity lemmas `convex_halfSpace_le` and `convex_halfSpace_ge` consume. +-/ + +@[expose] public section + +/-- `x ↦ ⟪x, v⟫` is a linear map of a real inner product space. -/ +theorem isLinearMap_inner_left {E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E] + (v : E) : IsLinearMap ℝ fun x : E ↦ inner ℝ x v := + ⟨fun a b ↦ inner_add_left a b v, fun c a ↦ real_inner_smul_left a v c⟩ + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Analysis / Normed / Affine / Continuous Affine Map +-/ + +@[expose] public section + +namespace ContinuousAffineMap + +variable {E F G : Type*} [NormedAddCommGroup E] [NormedAddCommGroup F] + [NormedAddCommGroup G] [NormedSpace ℝ E] [NormedSpace ℝ F] [NormedSpace ℝ G] + +/-- Precomposition by a fixed continuous affine map is continuous. -/ +theorem continuous_comp_right (g : E →ᴬ[ℝ] F) : + Continuous (fun f : F →ᴬ[ℝ] G ↦ f.comp g) := by + let C : NNReal := ⟨‖g‖ + 1, by positivity⟩ + apply (LipschitzWith.of_dist_le_mul (K := C) fun f h ↦ ?_).continuous + rw [dist_eq_norm, dist_eq_norm] + have heq : f.comp g - h.comp g = (f - h).comp g := by + ext x + simp + rw [heq] + calc + ‖(f - h).comp g‖ ≤ ‖f - h‖ * ‖g‖ + ‖(f - h) 0‖ := + ContinuousAffineMap.norm_comp_le _ _ + _ ≤ ‖f - h‖ * ‖g‖ + ‖f - h‖ := by + gcongr + exact ContinuousAffineMap.norm_image_zero_le _ + _ = (C : ℝ) * ‖f - h‖ := by + change _ = (‖g‖ + 1) * ‖f - h‖ + ring + +end ContinuousAffineMap + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Analysis / Special Functions / Angle +-/ + +@[expose] public section + +namespace Real.Angle + +/-- Distinct reals at distance less than a full turn have distinct angles. -/ +theorem coe_ne_coe_of_abs_sub_lt {x y : ℝ} (hne : x ≠ y) (h : |x - y| < 2 * Real.pi) : + ((x : ℝ) : Real.Angle) ≠ ((y : ℝ) : Real.Angle) := by + intro he + rw [Real.Angle.angle_eq_iff_two_pi_dvd_sub] at he + obtain ⟨k, hk⟩ := he + have hpi := Real.pi_pos + rw [abs_lt] at h + rcases lt_trichotomy k 0 with hk0 | rfl | hk0 + · have hk' : (k : ℝ) ≤ -1 := by exact_mod_cast (by omega : k ≤ -1) + nlinarith [h.1] + · simp only [Int.cast_zero, mul_zero] at hk + exact hne (by linarith) + · have hk' : (1 : ℝ) ≤ (k : ℝ) := by exact_mod_cast (by omega : (1 : ℤ) ≤ k) + nlinarith [h.2] + +end Real.Angle + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Analysis / Special Functions / Angle Lift +-/ + +@[expose] public section + +namespace Real + +/-- Continuous real angle lifts of the same circle-valued map differ by a constant. -/ +theorem sub_eq_sub_of_cos_eq_cos_of_sin_eq_sin {X : Type*} [TopologicalSpace X] [PreconnectedSpace + X] + {θ ψ : X → ℝ} (hθ : Continuous θ) (hψ : Continuous ψ) + (hcos : ∀ x, Real.cos (θ x) = Real.cos (ψ x)) + (hsin : ∀ x, Real.sin (θ x) = Real.sin (ψ x)) (x y : X) : + θ x - ψ x = θ y - ψ y := by + have hsub : Set.range (fun z ↦ θ z - ψ z) ⊆ Set.range (fun n : ℤ ↦ 2 * Real.pi * n) := by + rintro _ ⟨z, rfl⟩ + obtain ⟨n, hn⟩ := Real.Angle.angle_eq_iff_two_pi_dvd_sub.mp + (Real.Angle.cos_sin_inj (hcos z) (hsin z)) + exact ⟨n, hn.symm⟩ + have hconst := (Set.countable_range (fun n : ℤ ↦ 2 * Real.pi * n)).isTotallyDisconnected + _ hsub (isPreconnected_range (hθ.sub hψ)) + exact hconst (Set.mem_range_self x) (Set.mem_range_self y) + +end Real + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# A cubic remainder bound for the arctangent + +`Real.abs_arctan_sub_self_le` complements `Real.abs_arctan_le_abs` by quantifying the +first-order approximation `arctan s ≈ s` near the origin. +-/ + +@[expose] public section + +namespace Real + +/-- The arctangent differs from the identity by at most a cubic error. -/ +theorem abs_arctan_sub_self_le (s : ℝ) : |arctan s - s| ≤ |s| ^ 3 := by + have hderiv : ∀ u ∈ Set.uIcc (0 : ℝ) s, + HasDerivWithinAt (fun u : ℝ ↦ arctan u - u) (1 / (1 + u ^ 2) - 1) + (Set.uIcc (0 : ℝ) s) u := fun u _ ↦ + ((hasDerivAt_arctan u).sub (hasDerivAt_id u)).hasDerivWithinAt + have hbound : ∀ u ∈ Set.uIcc (0 : ℝ) s, ‖1 / (1 + u ^ 2) - 1‖ ≤ s ^ 2 := by + intro u hu + have hu' : |u| ≤ |s| := by + rcases Set.mem_uIcc.mp hu with ⟨h1, h2⟩ | ⟨h1, h2⟩ <;> + rcases abs_cases u with ⟨e1, e2⟩ | ⟨e1, e2⟩ <;> + rcases abs_cases s with ⟨f1, f2⟩ | ⟨f1, f2⟩ <;> linarith + have hpos : (0 : ℝ) < 1 + u ^ 2 := by positivity + have heq : 1 / (1 + u ^ 2) - 1 = -(u ^ 2 / (1 + u ^ 2)) := by field_simp; ring + rw [heq, norm_neg, Real.norm_eq_abs, abs_of_nonneg (by positivity), div_le_iff₀ hpos] + nlinarith [sq_abs u, sq_abs s, abs_nonneg u, abs_nonneg s, sq_nonneg u] + have hmain := (convex_uIcc (0 : ℝ) s).norm_image_sub_le_of_norm_hasDerivWithin_le + hderiv hbound Set.left_mem_uIcc Set.right_mem_uIcc + have hmain' : |arctan s - s| ≤ s ^ 2 * |s| := by simpa using hmain + calc |arctan s - s| ≤ s ^ 2 * |s| := hmain' + _ = |s| ^ 3 := by rw [← sq_abs s]; ring + +/-- First-order angle estimate. If `W = (w0, w1)` has norm `nw > 0` and the displacement +`d = (d0, d1)` has norm `nd` with `2 * nd ≤ nw`, then the principal angle between `W` and +`W + d`, in the arctangent form given by their cross and dot products, differs from its +linearization `(w0 * d1 - w1 * d0) / nw ^ 2` by at most `6 * nd ^ 2 / nw ^ 2`. -/ +theorem abs_arctan_div_sub_le_of_small {w0 w1 d0 d1 nw nd : ℝ} + (hnw : 0 < nw) (hnw2 : nw ^ 2 = w0 ^ 2 + w1 ^ 2) + (hnd : 0 ≤ nd) (hnd2 : nd ^ 2 = d0 ^ 2 + d1 ^ 2) + (hsmall : 2 * nd ≤ nw) : + |arctan ((w0 * d1 - w1 * d0) / (nw ^ 2 + (w0 * d0 + w1 * d1))) - + (w0 * d1 - w1 * d0) / nw ^ 2| ≤ 6 * nd ^ 2 / nw ^ 2 := by + set N := w0 * d1 - w1 * d0 with hN + set P := w0 * d0 + w1 * d1 with hP + have hlag : N ^ 2 + P ^ 2 = nw ^ 2 * nd ^ 2 := by + rw [hN, hP, hnw2, hnd2]; ring + have hprod : 0 ≤ nw * nd := mul_nonneg hnw.le hnd + have hCS : |N| ≤ nw * nd := by + nlinarith [sq_abs N, abs_nonneg N, sq_nonneg P] + have hCS' : |P| ≤ nw * nd := by + nlinarith [sq_abs P, abs_nonneg P, sq_nonneg N] + set D := nw ^ 2 + P with hD + have hPlow : -(nw * nd) ≤ P := neg_le_of_abs_le hCS' + have hDlow : nw ^ 2 / 2 ≤ D := by nlinarith + have hD0 : 0 < D := lt_of_lt_of_le (by positivity) hDlow + set s := N / D with hs + have hsle : |s| ≤ 2 * nd / nw := by + rw [hs, abs_div, abs_of_pos hD0, div_le_div_iff₀ hD0 hnw] + nlinarith [abs_nonneg N] + have hs1 : |s| ≤ 1 := by + refine hsle.trans ?_ + rw [div_le_one hnw] + linarith + have h1 : |arctan s - s| ≤ 4 * nd ^ 2 / nw ^ 2 := by + refine (abs_arctan_sub_self_le s).trans ?_ + have hstep : |s| ^ 3 ≤ (2 * nd / nw) ^ 2 := by + nlinarith [abs_nonneg s, hsle, hs1, sq_nonneg (|s|)] + refine hstep.trans_eq ?_ + field_simp + ring + have h2 : |s - N / nw ^ 2| ≤ 2 * nd ^ 2 / nw ^ 2 := by + have heq : s - N / nw ^ 2 = -(N * P) / (D * nw ^ 2) := by + rw [hs, hD] + rw [div_sub_div _ _ (ne_of_gt hD0) (by positivity : (nw : ℝ) ^ 2 ≠ 0)] + rw [hD] + ring_nf + rw [heq, abs_div, abs_neg, abs_mul, abs_of_pos (by positivity : (0 : ℝ) < D * nw ^ 2), + div_le_div_iff₀ (by positivity) (by positivity : (0 : ℝ) < nw ^ 2)] + nlinarith [mul_le_mul hCS hCS' (abs_nonneg P) hprod, abs_nonneg N, abs_nonneg P, + mul_nonneg (abs_nonneg N) (abs_nonneg P), sq_nonneg nd, sq_nonneg nw] + calc |arctan s - N / nw ^ 2| ≤ |arctan s - s| + |s - N / nw ^ 2| := + abs_sub_le _ _ _ + _ ≤ 4 * nd ^ 2 / nw ^ 2 + 2 * nd ^ 2 / nw ^ 2 := add_le_add h1 h2 + _ = 6 * nd ^ 2 / nw ^ 2 := by ring + +end Real + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Two-sided bracketing of an alternating series with an antitone tail + +`alternating_series_bracket_of_antitone_shift` upgrades the one-sided Leibniz estimates +`Antitone.alternating_series_le_tendsto` and `Antitone.tendsto_le_alternating_series` to a +two-sided bracket for an alternating series whose term magnitudes are antitone only from an +even index `2 * N` onwards: the sum then lies between the partial sums of `2 * N` and of +`2 * N + 1` terms. `antitone_pow_div_factorial_two_mul_add` is the antitonicity criterion +for the stride-two factorial quotients `x ^ (2 * n + a) / (2 * n + a)!` that the Taylor +series of the trigonometric functions produce. +-/ + +@[expose] public section + +/-- The stride-two factorial quotients `x ^ (2 * n + a) / (2 * n + a)!` are antitone as soon +as `x ^ 2 ≤ (a + 1) * (a + 2)`, i.e. as soon as the first term ratio is at most one. -/ +theorem antitone_pow_div_factorial_two_mul_add {x : ℝ} (hx0 : 0 ≤ x) {a : ℕ} + (hx : x ^ 2 ≤ ((a + 1) * (a + 2) : ℕ)) : + Antitone fun n : ℕ ↦ x ^ (2 * n + a) / (Nat.factorial (2 * n + a) : ℝ) := by + refine antitone_nat_of_succ_le fun n ↦ ?_ + set m := 2 * n + a with hm + have ham : a ≤ m := by omega + have hstep : 2 * (n + 1) + a = m + 1 + 1 := by omega + have hfac : (0 : ℝ) < (Nat.factorial m : ℝ) := by positivity + have hle : x ^ 2 ≤ ((m : ℝ) + 1) * ((m : ℝ) + 2) := by + refine hx.trans ?_ + have hcast : (a : ℝ) ≤ (m : ℝ) := by exact_mod_cast ham + have h0 : (0 : ℝ) ≤ (a : ℝ) := Nat.cast_nonneg a + push_cast + nlinarith + have hpow : x ^ (m + 1 + 1) = x ^ m * x * x := by ring + rw [hstep, Nat.factorial_succ, Nat.factorial_succ, hpow, + div_le_div_iff₀ (by positivity) hfac] + push_cast + nlinarith [mul_nonneg (mul_nonneg (pow_nonneg hx0 m) hfac.le) (sub_nonneg.2 hle)] + +/-- Leibniz bracketing for an alternating series whose term magnitudes are antitone only +from index `2 * N` onwards: the limit lies between the partial sums of `2 * N` and of +`2 * N + 1` terms. -/ +theorem alternating_series_bracket_of_antitone_shift {f : ℕ → ℝ} {l : ℝ} (N : ℕ) + (hfl : Filter.Tendsto (fun n ↦ ∑ i ∈ Finset.range n, (-1 : ℝ) ^ i * f i) + Filter.atTop (nhds l)) + (hfa : Antitone fun n ↦ f (2 * N + n)) : + (∑ i ∈ Finset.range (2 * N), (-1 : ℝ) ^ i * f i) ≤ l ∧ + l ≤ ∑ i ∈ Finset.range (2 * N + 1), (-1 : ℝ) ^ i * f i := by + set S := ∑ i ∈ Finset.range (2 * N), (-1 : ℝ) ^ i * f i with hS + have key : ∀ n : ℕ, (∑ i ∈ Finset.range n, (-1 : ℝ) ^ i * f (2 * N + i)) + = (∑ i ∈ Finset.range (2 * N + n), (-1 : ℝ) ^ i * f i) - S := by + intro n + rw [hS, Finset.sum_range_add] + simp [pow_add, pow_mul] + have hshift : Filter.Tendsto + (fun n ↦ ∑ i ∈ Finset.range (2 * N + n), (-1 : ℝ) ^ i * f i) + Filter.atTop (nhds l) := by + have h := hfl.comp (Filter.tendsto_add_atTop_nat (2 * N)) + simpa [Function.comp_def, Nat.add_comm] using h + have htend : Filter.Tendsto + (fun n ↦ ∑ i ∈ Finset.range n, (-1 : ℝ) ^ i * f (2 * N + i)) + Filter.atTop (nhds (l - S)) := by + simp only [key] + exact hshift.sub_const S + have hlow := Antitone.alternating_series_le_tendsto htend hfa 0 + have hhigh := Antitone.tendsto_le_alternating_series htend hfa 0 + simp only [Nat.mul_zero, Finset.range_zero, Finset.sum_empty, Nat.zero_add, + Finset.sum_range_one, pow_zero, one_mul, Nat.add_zero] at hlow hhigh + refine ⟨by linarith, ?_⟩ + rw [Finset.sum_range_succ, ← hS, pow_mul] + simp only [neg_one_sq, one_pow, one_mul] + linarith + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Analysis / Special Functions / Trigonometric +-/ + +@[expose] public section + +/-- The tangent of half a complementary angle is secant minus tangent on the first quadrant. -/ +theorem Real.tan_pi_div_two_sub_div_two (ω : ℝ) (hω : ω ∈ Set.Ico 0 (Real.pi / 2)) : + Real.tan ((Real.pi / 2 - ω) / 2) = (Real.cos ω)⁻¹ - Real.tan ω := by + let u := (Real.pi / 2 - ω) / 2 + have hu : 0 < Real.cos u := Real.cos_pos_of_mem_Ioo ⟨by + dsimp [u] + linarith [Real.pi_pos, hω.1, hω.2], by + dsimp [u] + linarith [Real.pi_pos, hω.1, hω.2]⟩ + have hw : 0 < Real.cos ω := + Real.cos_pos_of_mem_Ioo ⟨by linarith [Real.pi_pos, hω.1, hω.2], hω.2⟩ + have h2 : 2 * u = Real.pi / 2 - ω := by + dsimp [u] + ring + have hs : 2 * Real.sin u * Real.cos u = Real.cos ω := by + rw [← Real.sin_two_mul, h2, Real.sin_pi_div_two_sub] + have hc : 2 * Real.cos u ^ 2 - 1 = Real.sin ω := by + rw [← Real.cos_two_mul, h2, Real.cos_pi_div_two_sub] + change Real.tan u = _ + rw [Real.tan_eq_sin_div_cos, Real.tan_eq_sin_div_cos] + field_simp [hu.ne', hw.ne'] + nlinarith [Real.sin_sq_add_cos_sq u] + +/-- Cotangent is antitone between its consecutive poles at negative pi and zero. -/ +theorem Real.antitoneOn_cos_div_sin_Ioo_neg_pi_zero : + AntitoneOn (fun x : ℝ ↦ Real.cos x / Real.sin x) (Set.Ioo (-Real.pi) 0) := by + intro x hx y hy hxy + have hxsin := Real.sin_neg_of_neg_of_neg_pi_lt hx.2 hx.1 + have hysin := Real.sin_neg_of_neg_of_neg_pi_lt hy.2 hy.1 + change Real.cos y / Real.sin y ≤ Real.cos x / Real.sin x + rw [← neg_div_neg_eq (Real.cos y) (Real.sin y), + ← neg_div_neg_eq (Real.cos x) (Real.sin x)] + apply (div_le_div_iff₀ (neg_pos.mpr hysin) (neg_pos.mpr hxsin)).mpr + have hsin : 0 ≤ Real.sin (y - x) := Real.sin_nonneg_of_nonneg_of_le_pi + (by linarith) (by linarith [hx.1, hy.2]) + rw [Real.sin_sub] at hsin + nlinarith + +/-- A cubic upper bound for the tangent on `[0, 1]`, companion to `Real.sin_gt_sub_cube`. -/ +theorem Real.tan_le_self_add_cube {x : ℝ} (hx : 0 ≤ x) (hx1 : x ≤ 1) : + Real.tan x ≤ x + 4 / 3 * x ^ 3 := by + have hpi : (3 : ℝ) < Real.pi := Real.pi_gt_three + have hcos : 0 < Real.cos x := + Real.cos_pos_of_mem_Ioo ⟨by linarith, by linarith⟩ + have hcl : 1 - x ^ 2 / 2 ≤ Real.cos x := Real.one_sub_sq_div_two_le_cos + have hs : Real.sin x ≤ x := Real.sin_le hx + rw [Real.tan_eq_sin_div_cos, div_le_iff₀ hcos] + have h1 : (0 : ℝ) ≤ x + 4 / 3 * x ^ 3 := by positivity + have h2 : (x + 4 / 3 * x ^ 3) * (1 - x ^ 2 / 2) ≤ (x + 4 / 3 * x ^ 3) * Real.cos x := + mul_le_mul_of_nonneg_left hcl h1 + have h3 : x ≤ (x + 4 / 3 * x ^ 3) * (1 - x ^ 2 / 2) := by + nlinarith [mul_nonneg (pow_nonneg hx 3) (show (0 : ℝ) ≤ 5 / 6 - 2 / 3 * x ^ 2 by nlinarith)] + linarith + +/-- Leibniz bracketing of the sine by its Maclaurin partial sums: for `0 ≤ x` with +`x ^ 2 ≤ (4 * N + 2) * (4 * N + 3)` the value `Real.sin x` lies between the partial sums of +`2 * N` and of `2 * N + 1` terms, the first of which undershoots and the second overshoots. -/ +theorem Real.sin_mem_Icc_taylor_sums (N : ℕ) {x : ℝ} (hx0 : 0 ≤ x) + (hx : x ^ 2 ≤ ((4 * N + 2) * (4 * N + 3) : ℕ)) : + Real.sin x ∈ Set.Icc + (∑ k ∈ Finset.range (2 * N), + (-1 : ℝ) ^ k * x ^ (2 * k + 1) / (Nat.factorial (2 * k + 1) : ℝ)) + (∑ k ∈ Finset.range (2 * N + 1), + (-1 : ℝ) ^ k * x ^ (2 * k + 1) / (Nat.factorial (2 * k + 1) : ℝ)) := by + have hsum : ∀ n : ℕ, (∑ i ∈ Finset.range n, + (-1 : ℝ) ^ i * (x ^ (2 * i + 1) / (Nat.factorial (2 * i + 1) : ℝ))) + = ∑ k ∈ Finset.range n, + (-1 : ℝ) ^ k * x ^ (2 * k + 1) / (Nat.factorial (2 * k + 1) : ℝ) := + fun n ↦ Finset.sum_congr rfl fun k _ ↦ (mul_div_assoc _ _ _).symm + have htend : Filter.Tendsto (fun n ↦ ∑ i ∈ Finset.range n, + (-1 : ℝ) ^ i * (x ^ (2 * i + 1) / (Nat.factorial (2 * i + 1) : ℝ))) + Filter.atTop (nhds (Real.sin x)) := by + have h := (Real.hasSum_sin x).tendsto_sum_nat + simpa only [mul_div_assoc] using h + have hfa : Antitone fun n : ℕ ↦ + x ^ (2 * (2 * N + n) + 1) / (Nat.factorial (2 * (2 * N + n) + 1) : ℝ) := by + have e : ∀ n : ℕ, 2 * (2 * N + n) + 1 = 2 * n + (4 * N + 1) := fun n ↦ by omega + simp only [e] + refine antitone_pow_div_factorial_two_mul_add (a := 4 * N + 1) hx0 ?_ + refine hx.trans (le_of_eq ?_) + push_cast + ring + obtain ⟨hlow, hhigh⟩ := + alternating_series_bracket_of_antitone_shift + (f := fun k : ℕ ↦ x ^ (2 * k + 1) / (Nat.factorial (2 * k + 1) : ℝ)) N htend hfa + rw [hsum] at hlow hhigh + exact ⟨hlow, hhigh⟩ + +/-- Leibniz bracketing of the cosine by its Maclaurin partial sums: for `0 ≤ x` with +`x ^ 2 ≤ (4 * N + 1) * (4 * N + 2)` the value `Real.cos x` lies between the partial sums of +`2 * N` and of `2 * N + 1` terms, the first of which undershoots and the second overshoots. -/ +theorem Real.cos_mem_Icc_taylor_sums (N : ℕ) {x : ℝ} (hx0 : 0 ≤ x) + (hx : x ^ 2 ≤ ((4 * N + 1) * (4 * N + 2) : ℕ)) : + Real.cos x ∈ Set.Icc + (∑ k ∈ Finset.range (2 * N), + (-1 : ℝ) ^ k * x ^ (2 * k) / (Nat.factorial (2 * k) : ℝ)) + (∑ k ∈ Finset.range (2 * N + 1), + (-1 : ℝ) ^ k * x ^ (2 * k) / (Nat.factorial (2 * k) : ℝ)) := by + have hsum : ∀ n : ℕ, (∑ i ∈ Finset.range n, + (-1 : ℝ) ^ i * (x ^ (2 * i) / (Nat.factorial (2 * i) : ℝ))) + = ∑ k ∈ Finset.range n, + (-1 : ℝ) ^ k * x ^ (2 * k) / (Nat.factorial (2 * k) : ℝ) := + fun n ↦ Finset.sum_congr rfl fun k _ ↦ (mul_div_assoc _ _ _).symm + have htend : Filter.Tendsto (fun n ↦ ∑ i ∈ Finset.range n, + (-1 : ℝ) ^ i * (x ^ (2 * i) / (Nat.factorial (2 * i) : ℝ))) + Filter.atTop (nhds (Real.cos x)) := by + have h := (Real.hasSum_cos x).tendsto_sum_nat + simpa only [mul_div_assoc] using h + have hfa : Antitone fun n : ℕ ↦ + x ^ (2 * (2 * N + n)) / (Nat.factorial (2 * (2 * N + n)) : ℝ) := by + have e : ∀ n : ℕ, 2 * (2 * N + n) = 2 * n + 4 * N := fun n ↦ by omega + simp only [e] + refine antitone_pow_div_factorial_two_mul_add (a := 4 * N) hx0 ?_ + refine hx.trans (le_of_eq ?_) + push_cast + ring + obtain ⟨hlow, hhigh⟩ := + alternating_series_bracket_of_antitone_shift + (f := fun k : ℕ ↦ x ^ (2 * k) / (Nat.factorial (2 * k) : ℝ)) N htend hfa + rw [hsum] at hlow hhigh + exact ⟨hlow, hhigh⟩ + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `ForMathlib.BoundedVariation`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Bounded Variation +-/ + +@[expose] public section + +/-- The variation of a sum is at most the sum of the variations. -/ +theorem eVariationOn.add_le {α E : Type*} [LinearOrder α] + [SeminormedAddCommGroup E] (f g : α → E) (s : Set α) : + eVariationOn (f + g) s ≤ eVariationOn f s + eVariationOn g s := by + apply iSup_le + rintro ⟨n, u, hu, hus⟩ + calc + _ ≤ ∑ i ∈ Finset.range n, + (edist (f (u (i + 1))) (f (u i)) + edist (g (u (i + 1))) (g (u i))) := + Finset.sum_le_sum fun _ _ ↦ edist_add_add_le _ _ _ _ + _ = _ := Finset.sum_add_distrib + _ ≤ _ := add_le_add (eVariationOn.sum_le hu hus) (eVariationOn.sum_le hu hus) + +/-- A sum of two functions of bounded variation has bounded variation. -/ +theorem BoundedVariationOn.add {α E : Type*} [LinearOrder α] + [SeminormedAddCommGroup E] {f g : α → E} {s : Set α} + (hf : BoundedVariationOn f s) (hg : BoundedVariationOn g s) : + BoundedVariationOn (f + g) s := by + refine ne_top_of_le_ne_top (ENNReal.add_ne_top.mpr ⟨hf, hg⟩) ?_ + exact eVariationOn.add_le f g s + +/-- Variation bounds the increments along a finite monotone partition. -/ +theorem eVariationOn.sum_edist_fin_le {α E : Type*} [LinearOrder α] [PseudoEMetricSpace E] + {f : α → E} {s : Set α} {n : ℕ} (u : Fin (n + 1) → α) + (hu : Monotone u) (hus : ∀ i, u i ∈ s) : + ∑ i : Fin n, edist (f (u i.succ)) (f (u i.castSucc)) ≤ eVariationOn f s := by + let v : ℕ → α := fun k ↦ u ⟨min k n, by omega⟩ + have hv : Monotone v := fun i j hij ↦ hu (min_le_min_right n hij) + have h := eVariationOn.sum_le (f := f) (n := n) hv + (fun k ↦ hus ⟨min k n, by omega⟩) + rw [← Fin.sum_univ_eq_sum_range] at h + convert h using 1 + apply Finset.sum_congr rfl + intro i _ + simp only [v] + have h₁ : min (i.val + 1) n = i.val + 1 := Nat.min_eq_left (by omega) + have h₀ : min i.val n = i.val := Nat.min_eq_left (by omega) + congr 2 <;> apply congrArg u <;> apply Fin.ext + · exact h₁.symm + · exact h₀.symm + +/-- Total variation bounds the sum of norms of increments on a finite partition. -/ +theorem BoundedVariationOn.sum_norm_sub_fin_le {α E : Type*} [LinearOrder α] + [NormedAddCommGroup E] {f : α → E} {s : Set α} (hf : BoundedVariationOn f s) + {n : ℕ} (u : Fin (n + 1) → α) (hu : Monotone u) (hus : ∀ i, u i ∈ s) : + ∑ i : Fin n, ‖f (u i.succ) - f (u i.castSucc)‖ ≤ (eVariationOn f s).toReal := by + have h := ENNReal.toReal_mono hf (eVariationOn.sum_edist_fin_le u hu hus) + rw [ENNReal.toReal_sum (fun i _ ↦ edist_ne_top _ _)] at h + simpa only [edist_dist, dist_eq_norm, ENNReal.toReal_ofReal (norm_nonneg _)] using h + +/-- Squared increments are bounded by the largest increment times the total variation. -/ +theorem BoundedVariationOn.sum_norm_sub_sq_fin_le {α E : Type*} [LinearOrder α] + [NormedAddCommGroup E] {f : α → E} {s : Set α} (hf : BoundedVariationOn f s) + {n : ℕ} (u : Fin (n + 1) → α) (hu : Monotone u) (hus : ∀ i, u i ∈ s) + {δ : ℝ} (hδ : 0 ≤ δ) (hbound : ∀ i : Fin n, ‖f (u i.succ) - f (u i.castSucc)‖ ≤ δ) : + ∑ i : Fin n, ‖f (u i.succ) - f (u i.castSucc)‖ ^ 2 ≤ δ * (eVariationOn f s).toReal := by + calc + _ ≤ ∑ i : Fin n, δ * ‖f (u i.succ) - f (u i.castSucc)‖ := by + apply Finset.sum_le_sum + intro i _ + nlinarith [hbound i, norm_nonneg (f (u i.succ) - f (u i.castSucc))] + _ = δ * ∑ i : Fin n, ‖f (u i.succ) - f (u i.castSucc)‖ := by + rw [Finset.mul_sum] + _ ≤ _ := mul_le_mul_of_nonneg_left (hf.sum_norm_sub_fin_le u hu hus) hδ + +/-- A telescoping sum of increments with quadratic remainders is controlled by the +largest increment times the total variation. -/ +theorem BoundedVariationOn.abs_sub_sum_le_of_param_quadratic_remainder + {α E : Type*} [LinearOrder α] [NormedAddCommGroup E] + {f : α → E} {s : Set α} (hf : BoundedVariationOn f s) + {n : ℕ} (u : Fin (n + 1) → α) (hu : Monotone u) (hus : ∀ i, u i ∈ s) + (A : α → ℝ) (L : Fin n → ℝ) {C δ : ℝ} (hC : 0 ≤ C) (hδ : 0 ≤ δ) + (hbound : ∀ i : Fin n, ‖f (u i.succ) - f (u i.castSucc)‖ ≤ δ) + (herror : ∀ i : Fin n, + |A (u i.succ) - A (u i.castSucc) - L i| ≤ + C * ‖f (u i.succ) - f (u i.castSucc)‖ ^ 2) : + |A (u (Fin.last n)) - A (u 0) - ∑ i, L i| ≤ C * δ * (eVariationOn f s).toReal := by + have htel : ∑ i : Fin n, (A (u i.succ) - A (u i.castSucc)) = + A (u (Fin.last n)) - A (u 0) := by + have hfirst := Fin.sum_univ_succ (fun i ↦ A (u i)) + have hlast := Fin.sum_univ_castSucc (fun i ↦ A (u i)) + rw [Finset.sum_sub_distrib] + linarith + rw [← htel, ← Finset.sum_sub_distrib] + calc + _ ≤ ∑ i : Fin n, |A (u i.succ) - A (u i.castSucc) - L i| := + Finset.abs_sum_le_sum_abs _ _ + _ ≤ ∑ i : Fin n, C * ‖f (u i.succ) - f (u i.castSucc)‖ ^ 2 := + Finset.sum_le_sum (fun i _ ↦ herror i) + _ = C * ∑ i : Fin n, ‖f (u i.succ) - f (u i.castSucc)‖ ^ 2 := by + rw [Finset.mul_sum] + _ ≤ C * (δ * (eVariationOn f s).toReal) := + mul_le_mul_of_nonneg_left (hf.sum_norm_sub_sq_fin_le u hu hus hδ hbound) hC + _ = _ := by ring + +/-- If the increments of a real function `A` agree with a linear functional of the +increments of a bounded variation path up to a quadratic remainder on all parameter +pairs closer than a fixed positive threshold, then the linear sums along any family of +partitions whose mesh tends to zero converge to the endpoint increment of `A`. -/ +theorem BoundedVariationOn.tendsto_sum_of_local_quadratic_remainder + {E : Type*} [NormedAddCommGroup E] {a b : ℝ} (hab : a ≤ b) + {f : Set.Icc a b → E} (hf : BoundedVariationOn f Set.univ) (hfc : Continuous f) + (A : Set.Icc a b → ℝ) (L : Set.Icc a b → E → ℝ) {C : ℝ} (hC : 0 ≤ C) + {δ₀ : ℝ} (hδ₀ : 0 < δ₀) + (herror : ∀ t u : Set.Icc a b, (t : ℝ) ≤ (u : ℝ) → (u : ℝ) - (t : ℝ) < δ₀ → + |A u - A t - L t (f u - f t)| ≤ C * ‖f u - f t‖ ^ 2) + (N : ℕ → ℕ) (cuts : ∀ k, Fin (N k + 1) → Set.Icc a b) + (hcuts : ∀ k, Monotone (cuts k)) + (hzero : ∀ k, (cuts k 0 : ℝ) = a) + (hlast : ∀ k, (cuts k (Fin.last (N k)) : ℝ) = b) + (hmesh : ∀ δ > 0, ∀ᶠ k in Filter.atTop, ∀ i : Fin (N k), + (cuts k i.succ : ℝ) - (cuts k i.castSucc : ℝ) < δ) : + Filter.Tendsto (fun k ↦ ∑ i : Fin (N k), + L (cuts k i.castSucc) (f (cuts k i.succ) - f (cuts k i.castSucc))) + Filter.atTop (nhds (A ⟨b, hab, le_rfl⟩ - A ⟨a, le_rfl, hab⟩)) := by + rw [Metric.tendsto_nhds] + intro ε hε + set V := (eVariationOn f Set.univ).toReal with hVdef + have hV : 0 ≤ V := ENNReal.toReal_nonneg + set η := ε / (C * V + 1) with hηdef + have hη : 0 < η := div_pos hε (by positivity) + obtain ⟨δ, hδ, hmod⟩ := Metric.uniformContinuous_iff.mp + (CompactSpace.uniformContinuous_of_continuous hfc) η hη + filter_upwards [hmesh (min δ δ₀) (lt_min hδ hδ₀)] with k hk + have hinc (i : Fin (N k)) : + ‖f (cuts k i.succ) - f (cuts k i.castSucc)‖ ≤ η := by + have hle : (cuts k i.castSucc : ℝ) ≤ (cuts k i.succ : ℝ) := + hcuts k (Fin.castSucc_le_succ i) + have hd : dist (cuts k i.succ) (cuts k i.castSucc) < δ := by + rw [Subtype.dist_eq, Real.dist_eq, abs_of_nonneg (sub_nonneg.mpr hle)] + exact lt_of_lt_of_le (hk i) (min_le_left _ _) + simpa only [dist_eq_norm] using (hmod hd).le + have hbound := hf.abs_sub_sum_le_of_param_quadratic_remainder (cuts k) (hcuts k) + (fun _ ↦ Set.mem_univ _) A + (fun i ↦ L (cuts k i.castSucc) (f (cuts k i.succ) - f (cuts k i.castSucc))) + hC hη.le hinc + (fun i ↦ herror (cuts k i.castSucc) (cuts k i.succ) (hcuts k (Fin.castSucc_le_succ i)) + (lt_of_lt_of_le (hk i) (min_le_right _ _))) + have hleft : cuts k 0 = ⟨a, le_rfl, hab⟩ := Subtype.ext (hzero k) + have hright : cuts k (Fin.last (N k)) = ⟨b, hab, le_rfl⟩ := Subtype.ext (hlast k) + rw [hleft, hright] at hbound + rw [Real.dist_eq, abs_sub_comm] + apply hbound.trans_lt + have hcancel : η * (C * V + 1) = ε := div_mul_cancel₀ ε (by positivity) + change C * η * V < ε + nlinarith + +/-- Bounded variation on two adjacent closed intervals gives bounded variation on their +union. -/ +theorem BoundedVariationOn.Icc_union_Icc {α E : Type*} [LinearOrder α] + [PseudoEMetricSpace E] {f : α → E} {a b c : α} (hab : a ≤ b) (hbc : b ≤ c) + (h₁ : BoundedVariationOn f (Set.Icc a b)) (h₂ : BoundedVariationOn f (Set.Icc b c)) : + BoundedVariationOn f (Set.Icc a c) := by + have h := eVariationOn.Icc_add_Icc f hab hbc (Set.mem_univ b) + simp only [Set.univ_inter] at h + change eVariationOn f (Set.Icc a c) ≠ ⊤ + rw [← h] + exact ENNReal.add_ne_top.mpr ⟨h₁, h₂⟩ + +/-- A function on the order subtype `Set.Icc a b` has bounded variation everywhere as soon as +it has bounded variation on the closed interval between the two endpoints of that subtype. -/ +theorem BoundedVariationOn.univ_of_Icc_endpoints {α E : Type*} [LinearOrder α] + [PseudoEMetricSpace E] {a b : α} (hab : a ≤ b) {g : Set.Icc a b → E} + (h : BoundedVariationOn g (Set.Icc ⟨a, le_rfl, hab⟩ ⟨b, hab, le_rfl⟩)) : + BoundedVariationOn g Set.univ := by + have huniv : Set.Icc (⟨a, le_rfl, hab⟩ : Set.Icc a b) ⟨b, hab, le_rfl⟩ = Set.univ := by + ext x + simp only [Set.mem_Icc, Set.mem_univ, iff_true] + exact ⟨x.2.1, x.2.2⟩ + rwa [huniv] at h + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `ForMathlib.Convex.Body.BoundaryMeasure`. +* `ForMathlib.Convex.Body.Hausdorff`. +* `ForMathlib.Convex.Collinear`. +* `ForMathlib.Convex.Body.Segment`. +* `ForMathlib.Convex.Function`. +* `ForMathlib.Convex.Hausdorff`. +* `ForMathlib.Convex.Support`. +* `ForMathlib.Convex.Translation`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Convex / Body / Boundary Measure +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory +open scoped ENNReal Pointwise Topology + +namespace ConvexBody + +private abbrev Plane_m58ecd66 := EuclideanSpace ℝ (Fin 2) + +private def unitCircleParam (t : ℝ) : Plane_m58ecd66 := + WithLp.toLp 2 (![Real.cos t, Real.sin t] : Fin 2 → ℝ) + +private theorem lipschitzWith_unitCircleParam : + LipschitzWith 2 unitCircleParam := by + rw [lipschitzWith_iff_dist_le_mul] + intro x y + rw [dist_eq_norm] + rw [Real.dist_eq] + apply (sq_le_sq₀ (norm_nonneg _) (mul_nonneg (by positivity) (abs_nonneg _))).mp + rw [EuclideanSpace.norm_sq_eq] + simp only [unitCircleParam, PiLp.sub_apply, Fin.sum_univ_two, Real.norm_eq_abs, + Matrix.cons_val_zero, Matrix.cons_val_one] + have hc : |Real.cos x - Real.cos y| ≤ |x - y| := by + exact Real.abs_cos_sub_cos_le x y + have hs : |Real.sin x - Real.sin y| ≤ |x - y| := by + exact Real.abs_sin_sub_sin_le x y + have hxy : 0 ≤ |x - y| := abs_nonneg _ + have hc_sq := sq_le_sq₀ (abs_nonneg _) hxy |>.mpr hc + have hs_sq := sq_le_sq₀ (abs_nonneg _) hxy |>.mpr hs + norm_num + nlinarith [sq_abs (Real.cos x - Real.cos y), sq_abs (Real.sin x - Real.sin y)] + +private theorem hausdorffMeasure_one_sphere_lt_top : + Measure.hausdorffMeasure 1 (Metric.sphere (0 : Plane_m58ecd66) 1) < ⊤ := by + have hsphere : Metric.sphere (0 : Plane_m58ecd66) 1 ⊆ + unitCircleParam '' Set.Icc (-Real.pi) Real.pi := by + intro p hp + have hnorm : ‖p‖ = 1 := by simpa [Metric.mem_sphere, dist_zero_right] using hp + let z : ℂ := ⟨p 0, p 1⟩ + have hzNorm : ‖z‖ = 1 := by + rw [Complex.norm_def, show Complex.normSq z = ‖p‖ ^ 2 by + rw [EuclideanSpace.norm_sq_eq] + simp [z, Complex.normSq_apply, Fin.sum_univ_two, pow_two, Real.norm_eq_abs]] + simp [hnorm] + have hz : z ≠ 0 := by + intro hz + simp [hz] at hzNorm + refine ⟨z.arg, ⟨(Complex.neg_pi_lt_arg z).le, Complex.arg_le_pi z⟩, ?_⟩ + ext i + fin_cases i + · simpa [unitCircleParam, z, hzNorm] using Complex.cos_arg hz + · simpa [unitCircleParam, z, hzNorm] using Complex.sin_arg z + calc + Measure.hausdorffMeasure 1 (Metric.sphere (0 : Plane_m58ecd66) 1) ≤ + Measure.hausdorffMeasure 1 (unitCircleParam '' Set.Icc (-Real.pi) Real.pi) := + measure_mono hsphere + _ ≤ ((2 : NNReal) : ENNReal) ^ (1 : ℝ) * + Measure.hausdorffMeasure 1 (Set.Icc (-Real.pi) Real.pi) := + lipschitzWith_unitCircleParam.hausdorffMeasure_image_le (by positivity) _ + _ < ⊤ := by + rw [hausdorffMeasure_real, Real.volume_Icc] + finiteness + +private theorem image_gaugeRescale_unitSphere_eq_frontier {s : Set Plane_m58ecd66} + (hconv : Convex ℝ s) (h₀ : s ∈ nhds (0 : Plane_m58ecd66)) (hbounded : Bornology.IsBounded s) + (hclosed : IsClosed s) : + gaugeRescale (Metric.ball 0 1) s '' Metric.sphere 0 1 = frontier s := by + have hvnb : Bornology.IsVonNBounded ℝ s := + NormedSpace.isVonNBounded_of_isBounded ℝ hbounded + let h := gaugeRescaleHomeomorph (Metric.ball (0 : Plane_m58ecd66) 1) s + (convex_ball 0 1) (Metric.ball_mem_nhds 0 zero_lt_one) + (NormedSpace.isVonNBounded_ball ℝ Plane_m58ecd66 1) hconv h₀ hvnb + change h '' Metric.sphere 0 1 = frontier s + rw [← frontier_ball, ← closure_sdiff_interior, Set.image_sdiff h.injective] + · rw [image_gaugeRescaleHomeomorph_closure, image_gaugeRescaleHomeomorph_interior] + rw [hclosed.closure_eq] + simpa [hclosed.closure_eq] using closure_sdiff_interior s + · norm_num + +private theorem exists_lipschitzOnWith_gaugeRescale_unitSphere {s : Set Plane_m58ecd66} + (hconv : Convex ℝ s) (h₀ : s ∈ nhds (0 : Plane_m58ecd66)) (hbounded : Bornology.IsBounded s) : + ∃ C, LipschitzOnWith C (gaugeRescale (Metric.ball 0 1) s) (Metric.sphere 0 1) := by + obtain ⟨r, hr, hrs⟩ := Metric.mem_nhds_iff.mp h₀ + obtain ⟨B, hB⟩ := hbounded.exists_norm_le + let R : ℝ := |B| + 1 + have hR : 0 < R := by dsimp [R]; positivity + have hsR : s ⊆ Metric.closedBall (0 : Plane_m58ecd66) R := by + intro x hx + rw [Metric.mem_closedBall, dist_zero_right] + exact (hB x hx).trans (by dsimp [R]; linarith [le_abs_self B]) + have habs : Absorbent ℝ s := absorbent_nhds_zero h₀ + let rn : NNReal := ⟨r, hr.le⟩ + have hg : LipschitzWith rn⁻¹ (gauge s) := hconv.lipschitzWith_gauge hr hrs + let C : NNReal := ⟨R + (rn⁻¹ : ℝ) * R ^ 2, by positivity⟩ + refine ⟨C, ?_⟩ + rw [lipschitzOnWith_iff_dist_le_mul] + intro x hx y hy + have hnx : ‖x‖ = 1 := by simpa [Metric.mem_sphere, dist_zero_right] using hx + have hny : ‖y‖ = 1 := by simpa [Metric.mem_sphere, dist_zero_right] using hy + have hgx : 1 / R ≤ gauge s x := by + simpa [hnx] using (le_gauge_of_subset_closedBall habs hR.le hsR : ‖x‖ / R ≤ gauge s x) + have hgy : 1 / R ≤ gauge s y := by + simpa [hny] using (le_gauge_of_subset_closedBall habs hR.le hsR : ‖y‖ / R ≤ gauge s y) + have hgxpos : 0 < gauge s x := (div_pos one_pos hR).trans_le hgx + have hgypos : 0 < gauge s y := (div_pos one_pos hR).trans_le hgy + have hinvx : (gauge s x)⁻¹ ≤ R := by + rw [inv_le_comm₀ hgxpos hR] + simpa [div_eq_inv_mul] using hgx + have hinvy : (gauge s y)⁻¹ ≤ R := by + rw [inv_le_comm₀ hgypos hR] + simpa [div_eq_inv_mul] using hgy + have hginv : dist (gauge s x)⁻¹ (gauge s y)⁻¹ ≤ + (rn⁻¹ : ℝ) * R ^ 2 * dist x y := by + rw [dist_inv_inv₀ hgxpos.ne' hgypos.ne'] + have hdist := hg.dist_le_mul x y + have hprod : 1 / R ^ 2 ≤ ‖gauge s x‖ * ‖gauge s y‖ := by + rw [Real.norm_eq_abs, Real.norm_eq_abs, abs_of_pos hgxpos, abs_of_pos hgypos] + calc + 1 / R ^ 2 = (1 / R) * (1 / R) := by ring_nf + _ ≤ gauge s x * gauge s y := + mul_le_mul hgx hgy (div_nonneg one_pos.le hR.le) hgxpos.le + calc + dist (gauge s x) (gauge s y) / (‖gauge s x‖ * ‖gauge s y‖) ≤ + dist (gauge s x) (gauge s y) / (1 / R ^ 2) := by + exact div_le_div_of_nonneg_left (dist_nonneg) (by positivity) hprod + _ ≤ ((rn⁻¹ : ℝ) * dist x y) / (1 / R ^ 2) := by + apply div_le_div_of_nonneg_right _ (by positivity) + simpa [NNReal.coe_inv] using hdist + _ = (rn⁻¹ : ℝ) * R ^ 2 * dist x y := by field_simp + change dist ((gauge (Metric.ball 0 1) x / gauge s x) • x) + ((gauge (Metric.ball 0 1) y / gauge s y) • y) ≤ (C : ℝ) * dist x y + simp_rw [gauge_ball (by positivity : (0 : ℝ) ≤ 1)] + rw [hnx, hny] + simp only [inv_one, one_div] + rw [dist_eq_norm] + calc + ‖(gauge s x)⁻¹ • x - (gauge s y)⁻¹ • y‖ ≤ + ‖(gauge s x)⁻¹ • (x - y)‖ + + ‖((gauge s x)⁻¹ - (gauge s y)⁻¹) • y‖ := by + have heq : (gauge s x)⁻¹ • x - (gauge s y)⁻¹ • y = + (gauge s x)⁻¹ • (x - y) + + ((gauge s x)⁻¹ - (gauge s y)⁻¹) • y := by module + rw [heq] + exact norm_add_le _ _ + _ ≤ R * dist x y + ((rn⁻¹ : ℝ) * R ^ 2 * dist x y) := by + simp only [norm_smul, Real.norm_eq_abs, dist_eq_norm] + have hix : |(gauge s x)⁻¹| ≤ R := by rw [abs_of_pos (inv_pos.mpr hgxpos)]; exact hinvx + have hid : |(gauge s x)⁻¹ - (gauge s y)⁻¹| ≤ + (rn⁻¹ : ℝ) * R ^ 2 * ‖x - y‖ := by simpa [dist_eq_norm] using hginv + rw [hny, mul_one] + exact add_le_add (mul_le_mul_of_nonneg_right hix (norm_nonneg _)) hid + _ = (C : ℝ) * dist x y := by + change _ = (R + (rn⁻¹ : ℝ) * R ^ 2) * dist x y + ring + +private theorem hausdorffMeasure_frontier_lt_top_of_mem_nhds_zero {s : Set Plane_m58ecd66} + (hconv : Convex ℝ s) (h₀ : s ∈ nhds (0 : Plane_m58ecd66)) (hcompact : IsCompact s) : + Measure.hausdorffMeasure 1 (frontier s) < ⊤ := by + obtain ⟨C, hC⟩ := + exists_lipschitzOnWith_gaugeRescale_unitSphere hconv h₀ hcompact.isBounded + rw [← image_gaugeRescale_unitSphere_eq_frontier hconv h₀ hcompact.isBounded hcompact.isClosed] + refine (hC.hausdorffMeasure_image_le (by positivity)).trans_lt ?_ + exact ENNReal.mul_lt_top (ENNReal.rpow_lt_top_of_nonneg (by positivity) (by simp)) + hausdorffMeasure_one_sphere_lt_top + +/-- The frontier of a planar convex body with nonempty interior has finite +one-dimensional Hausdorff measure. -/ +theorem hausdorffMeasure_frontier_lt_top + (K : ConvexBody (EuclideanSpace ℝ (Fin 2))) + (hint : (interior (K : Set (EuclideanSpace ℝ (Fin 2)))).Nonempty) : + Measure.hausdorffMeasure 1 + (frontier (K : Set (EuclideanSpace ℝ (Fin 2)))) < ⊤ := by + obtain ⟨c, hc⟩ := hint + let s : Set Plane_m58ecd66 := -c +ᵥ (K : Set Plane_m58ecd66) + have hsconv : Convex ℝ s := K.convex.vadd (-c) + have hscompact : IsCompact s := by + change IsCompact ((fun x : Plane_m58ecd66 ↦ -c + x) '' (K : Set Plane_m58ecd66)) + exact K.isCompact.image (continuous_const.add continuous_id) + have hs₀ : s ∈ nhds (0 : Plane_m58ecd66) := by + rw [← mem_interior_iff_mem_nhds] + change (0 : Plane_m58ecd66) ∈ interior (-c +ᵥ (K : Set Plane_m58ecd66)) + rw [interior_vadd] + simpa [Set.mem_vadd_set_iff_neg_vadd_mem] using hc + have hsfinite := hausdorffMeasure_frontier_lt_top_of_mem_nhds_zero hsconv hs₀ hscompact + have himage : (fun z : Plane_m58ecd66 ↦ c + z) '' frontier s = frontier (K : Set Plane_m58ecd66) + := by + calc + (fun z : Plane_m58ecd66 ↦ c + z) '' frontier s = + frontier ((fun z : Plane_m58ecd66 ↦ c + z) '' s) := + (Homeomorph.addLeft c).image_frontier s + _ = frontier (K : Set Plane_m58ecd66) := by + congr 1 + ext x + simp [s, Set.mem_vadd_set_iff_neg_vadd_mem] + have hisom : Isometry (fun z : Plane_m58ecd66 ↦ c + z) := by + intro x y + simp + rw [← himage, hisom.hausdorffMeasure_image (Or.inl zero_le_one)] + exact hsfinite + +end ConvexBody + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Convex / Body / Hausdorff +-/ + +@[expose] public section + +open Filter +open scoped Topology + +namespace ConvexBody + +variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] + +/-- Eventual membership persists in a Hausdorff limit of convex bodies. -/ +theorem mem_of_tendsto_hausdorffDist (q : E) (K : ℕ → ConvexBody E) (L : ConvexBody E) + (hev : ∀ᶠ n in atTop, q ∈ (K n : Set E)) + (hlim : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set E) (L : Set E)) + atTop (𝓝 0)) : q ∈ (L : Set E) := by + have hle : (fun _ : ℕ ↦ Metric.infDist q (L : Set E)) ≤ᶠ[atTop] + (fun n ↦ Metric.hausdorffDist (K n : Set E) (L : Set E)) := by + filter_upwards [hev] with n hn + exact Metric.infDist_le_hausdorffDist_of_mem hn + (Metric.hausdorffEDist_ne_top_of_nonempty_of_bounded + (K n).nonempty L.nonempty (K n).isCompact.isBounded L.isCompact.isBounded) + have hz : Metric.infDist q (L : Set E) ≤ 0 := + le_of_tendsto_of_tendsto tendsto_const_nhds hlim hle + exact (IsClosed.mem_iff_infDist_zero L.isClosed L.nonempty).mpr + (le_antisymm hz Metric.infDist_nonneg) + +end ConvexBody + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Convex / Collinear +-/ + +@[expose] public section + +open Module + +/-- A convex set with empty interior in dimension at most two is collinear. -/ +theorem Convex.collinear_of_interior_eq_empty {E : Type*} + [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] + {s : Set E} (hs : Convex ℝ s) (hdim : finrank ℝ E ≤ 2) + (hint : interior s = ∅) : Collinear ℝ s := by + rcases s.eq_empty_or_nonempty with rfl | hne + · exact collinear_empty ℝ E + have hspan : vectorSpan ℝ s ≠ ⊤ := by + intro h + have ha : affineSpan ℝ s = ⊤ := + (AffineSubspace.direction_eq_top_iff_of_nonempty + (hne.mono (subset_affineSpan ℝ s))).mp (by simpa only [direction_affineSpan] using h) + have hi := hs.interior_nonempty_iff_affineSpan_eq_top.mpr ha + simp [hint] at hi + apply collinear_iff_finrank_le_one.mpr + have hlt := Submodule.finrank_lt_finrank_of_lt (lt_top_iff_ne_top.mpr hspan) + simp only [finrank_top] at hlt + omega + +/-- A separating linear functional orders points on a line into a segment. -/ +theorem Collinear.mem_segment_of_apply_le {E : Type*} [AddCommGroup E] [Module ℝ E] + {s : Set E} (hs : Collinear ℝ s) {a p x : E} + (ha : a ∈ s) (hp : p ∈ s) (hx : x ∈ s) (f : E →ₗ[ℝ] ℝ) + (hpos : 0 < f (p - a)) (hle : f p ≤ f x) : p ∈ segment ℝ a x := by + have hne : a ≠ p := by + intro h + simp [h] at hpos + obtain ⟨r, hr⟩ := mem_affineSpan_pair_iff_exists_lineMap_eq.mp + (hs.mem_affineSpan_of_mem_of_ne ha hp hx hne) + have hrle : 1 ≤ r := by + rw [← hr, AffineMap.lineMap_apply_module', map_add, map_smul] at hle + have hsub := f.map_sub p a + change f p ≤ r * f (p - a) + f a at hle + nlinarith + have hrpos : 0 < r := lt_of_lt_of_le zero_lt_one hrle + have hinv : r⁻¹ ∈ Set.Icc (0 : ℝ) 1 := + ⟨inv_nonneg.mpr hrpos.le, inv_le_one_of_one_le₀ hrle⟩ + have hmem := lineMap_mem_segment ℝ a x hinv + rw [← hr, AffineMap.lineMap_lineMap_right, inv_mul_cancel₀ hrpos.ne', + AffineMap.lineMap_apply_one] at hmem + simpa only [hr] using hmem + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Convex / Body / Segment +-/ + +@[expose] public section + +noncomputable section + +open scoped Pointwise + +namespace ConvexBody + +private abbrev Plane_mea511e5 := EuclideanSpace ℝ (Fin 2) + +/-- A nonsingleton planar convex body with empty interior is a nontrivial segment. -/ +theorem exists_eq_segment_of_interior_empty + (K : ConvexBody (EuclideanSpace ℝ (Fin 2))) + (hsub : ¬(K : Set (EuclideanSpace ℝ (Fin 2))).Subsingleton) + (hint : interior (K : Set (EuclideanSpace ℝ (Fin 2))) = ∅) : + ∃ a b, a ≠ b ∧ + (K : Set (EuclideanSpace ℝ (Fin 2))) = segment ℝ a b := by + have hcol : Collinear ℝ (K : Set Plane_mea511e5) := + K.convex.collinear_of_interior_eq_empty + (by simp) hint + obtain ⟨p₀, v, hv⟩ := (collinear_iff_exists_forall_eq_smul_vadd + (k := ℝ) (K : Set Plane_mea511e5)).mp hcol + have hv₀ : v ≠ 0 := by + intro hz + apply hsub + intro p hp q hq + obtain ⟨r, hr⟩ := hv p hp + obtain ⟨s, hs⟩ := hv q hq + simpa [hz] using hr.trans (by simpa [hz] using hs.symm) + let f : Plane_mea511e5 → ℝ := fun p ↦ inner ℝ v (p - p₀) / inner ℝ v v + have hvv : inner ℝ v v ≠ 0 := inner_self_ne_zero.mpr hv₀ + have hrepr : ∀ p ∈ (K : Set Plane_mea511e5), p = f p • v + p₀ := by + intro p hp + obtain ⟨r, rfl⟩ := hv p hp + have hf : f (r • v + p₀) = r := by + dsimp [f] + rw [add_sub_cancel_right, inner_smul_right] + field_simp [hvv] + change r • v + p₀ = f (r • v + p₀) • v + p₀ + rw [hf] + have hfcont : Continuous f := by fun_prop + obtain ⟨a, ha, hamin⟩ := K.isCompact.exists_isMinOn K.nonempty hfcont.continuousOn + obtain ⟨b, hb, hbmax⟩ := K.isCompact.exists_isMaxOn K.nonempty hfcont.continuousOn + have habf : f a < f b := by + apply lt_of_le_of_ne (hamin hb) + intro heq + apply hsub + intro p hp q hq + rw [hrepr p hp, hrepr q hq] + have hpfa : f p = f a := + le_antisymm ((hbmax hp).trans_eq heq.symm) (hamin hp) + have hqfa : f q = f a := + le_antisymm ((hbmax hq).trans_eq heq.symm) (hamin hq) + rw [hpfa, hqfa] + refine ⟨a, b, ?_, Set.Subset.antisymm ?_ ?_⟩ + · intro hab + rw [hab] at habf + exact habf.false + · intro p hp + rw [segment_eq_image'] + let t := (f p - f a) / (f b - f a) + have ht : t ∈ Set.Icc (0 : ℝ) 1 := ⟨ + div_nonneg (sub_nonneg.mpr (hamin hp)) (sub_nonneg.mpr habf.le), + (div_le_one (sub_pos.mpr habf)).mpr (sub_le_sub_right (hbmax hp) _)⟩ + refine ⟨t, ht, ?_⟩ + rw [hrepr p hp, hrepr a ha, hrepr b hb] + have hden : f b - f a ≠ 0 := sub_ne_zero.mpr habf.ne' + have htalg : f a + t * (f b - f a) = f p := by + dsimp [t] + field_simp [hden] + ring + rw [← htalg] + module + · exact K.convex.segment_subset ha hb + +end ConvexBody + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Convex / Function +-/ + +@[expose] public section + +/-- A convex function stays below a bound before the right endpoint if the left +endpoint is strictly below the bound and the right endpoint is at most the bound. -/ +theorem ConvexOn.lt_on_Ico_of_lt_of_le {f : ℝ → ℝ} {a b t c : ℝ} + (hf : ConvexOn ℝ (Set.Icc a b) f) (ha : f a < c) (hb : f b ≤ c) + (hat : a ≤ t) (htb : t < b) : f t < c := by + have hab : a < b := lt_of_le_of_lt hat htb + let u := (b - t) / (b - a) + let v := (t - a) / (b - a) + have hu : 0 < u := div_pos (sub_pos.mpr htb) (sub_pos.mpr hab) + have hv : 0 ≤ v := div_nonneg (sub_nonneg.mpr hat) (sub_nonneg.mpr hab.le) + have huv : u + v = 1 := by dsimp [u, v]; field_simp [ne_of_gt (sub_pos.mpr hab)]; ring + have ht : u * a + v * b = t := by dsimp [u, v]; field_simp [ne_of_gt (sub_pos.mpr hab)]; ring + have h := hf.2 ⟨le_rfl, hab.le⟩ ⟨hab.le, le_rfl⟩ hu.le hv huv + simp only [smul_eq_mul, ht] at h + have hleft : u * f a < u * c := mul_lt_mul_of_pos_left ha hu + have hright : v * f b ≤ v * c := mul_le_mul_of_nonneg_left hb hv + calc + f t ≤ u * f a + v * f b := h + _ < u * c + v * c := add_lt_add_of_lt_of_le hleft hright + _ = c := by rw [← add_mul, huv, one_mul] + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Convex / Hausdorff +-/ + +@[expose] public section + +open Filter TopologicalSpace +open scoped Topology + +/-- Hausdorff limits of nonempty compact convex sets are convex. -/ +theorem TopologicalSpace.NonemptyCompacts.convex_of_tendsto {E ι : Type*} + [NormedAddCommGroup E] [NormedSpace ℝ E] + {l : Filter ι} [l.NeBot] {K : ι → NonemptyCompacts E} {L : NonemptyCompacts E} + (hK : ∀ n, Convex ℝ (K n : Set E)) (hlim : Tendsto K l (𝓝 L)) : + Convex ℝ (L : Set E) := by + have happrox : ∀ x ∈ (L : Set E), ∃ p : ι → E, + (∀ n, p n ∈ (K n : Set E)) ∧ Tendsto p l (𝓝 x) := by + intro x hx + choose p hp hd using fun n ↦ (K n).isCompact.exists_infDist_eq_dist (K n).nonempty x + refine ⟨p, hp, ?_⟩ + have hinf := (NonemptyCompacts.lipschitz_infDist_const x).continuous.tendsto L |>.comp hlim + have hz : Metric.infDist x (L : Set E) = 0 := Metric.infDist_zero_of_mem hx + rw [hz] at hinf + change Tendsto (fun n ↦ Metric.infDist x (K n : Set E)) l (𝓝 0) at hinf + apply tendsto_iff_dist_tendsto_zero.mpr + simpa only [Function.comp_apply, hd, dist_comm] using hinf + intro x hx y hy a b ha hb hab + obtain ⟨p, hp, hpx⟩ := happrox x hx + obtain ⟨q, hq, hqy⟩ := happrox y hy + have hz := (hpx.const_smul a).add (hqy.const_smul b) + have hi := NonemptyCompacts.uniformContinuous_infDist.continuous.tendsto + (a • x + b • y, L) |>.comp (hz.prodMk_nhds hlim) + have hzero : (fun n ↦ Metric.infDist (a • p n + b • q n) (K n : Set E)) = fun _ ↦ 0 := by + funext n + exact Metric.infDist_zero_of_mem (hK n (hp n) (hq n) ha hb hab) + change Tendsto (fun n ↦ Metric.infDist (a • p n + b • q n) (K n : Set E)) + l (𝓝 (Metric.infDist (a • x + b • y) (L : Set E))) at hi + rw [hzero] at hi + exact (L.isCompact.isClosed.mem_iff_infDist_zero L.nonempty).mpr + (tendsto_nhds_unique hi tendsto_const_nhds) + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Convex / Support +-/ + +@[expose] public section + +open scoped ENNReal + +/-- Support values of compact sets differ by at most their Hausdorff distance times the norm of +the direction. -/ +theorem IsCompact.abs_csSup_inner_sub_le_hausdorffDist + {E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E] + {S T : Set E} (hS : IsCompact S) (hneS : S.Nonempty) + (hT : IsCompact T) (hneT : T.Nonempty) (u : E) : + |sSup ((fun x ↦ inner ℝ x u) '' S) - sSup ((fun x ↦ inner ℝ x u) '' T)| ≤ + Metric.hausdorffDist S T * ‖u‖ := by + obtain ⟨x, hxS, hx, hxmax⟩ := hS.exists_sSup_image_eq_and_ge + (f := fun x : E ↦ inner ℝ x u) hneS + (continuous_inner.comp (continuous_id.prodMk continuous_const)).continuousOn + obtain ⟨y, hyT, hy⟩ := hT.exists_infDist_eq_dist hneT x + obtain ⟨z, hzT, hz, hzmax⟩ := hT.exists_sSup_image_eq_and_ge + (f := fun x : E ↦ inner ℝ x u) hneT + (continuous_inner.comp (continuous_id.prodMk continuous_const)).continuousOn + have hfin : Metric.hausdorffEDist S T ≠ ⊤ := + Metric.hausdorffEDist_ne_top_of_nonempty_of_bounded hneS hneT + hS.isBounded hT.isBounded + have hdist : ‖x - y‖ ≤ Metric.hausdorffDist S T := by + calc + ‖x - y‖ = dist x y := (dist_eq_norm x y).symm + _ = Metric.infDist x T := hy.symm + _ ≤ Metric.hausdorffDist S T := Metric.infDist_le_hausdorffDist_of_mem hxS hfin + have hupper : sSup ((fun x ↦ inner ℝ x u) '' S) - + sSup ((fun x ↦ inner ℝ x u) '' T) ≤ Metric.hausdorffDist S T * ‖u‖ := by + rw [hx, hz] + calc + inner ℝ x u - inner ℝ z u ≤ inner ℝ x u - inner ℝ y u := + sub_le_sub_left (hzmax y hyT) _ + _ = inner ℝ (x - y) u := by rw [inner_sub_left] + _ ≤ |inner ℝ (x - y) u| := le_abs_self _ + _ ≤ ‖x - y‖ * ‖u‖ := by + simpa only [Real.norm_eq_abs] using norm_inner_le_norm (𝕜 := ℝ) (x - y) u + _ ≤ Metric.hausdorffDist S T * ‖u‖ := by gcongr + have hreverse : sSup ((fun x ↦ inner ℝ x u) '' T) - + sSup ((fun x ↦ inner ℝ x u) '' S) ≤ Metric.hausdorffDist S T * ‖u‖ := by + have hfin' : Metric.hausdorffEDist T S ≠ ⊤ := + Metric.hausdorffEDist_ne_top_of_nonempty_of_bounded hneT hneS + hT.isBounded hS.isBounded + obtain ⟨x', hx'S, hx'⟩ := hS.exists_infDist_eq_dist hneS z + have hdist' : ‖z - x'‖ ≤ Metric.hausdorffDist S T := by + calc + ‖z - x'‖ = dist z x' := (dist_eq_norm z x').symm + _ = Metric.infDist z S := hx'.symm + _ ≤ Metric.hausdorffDist T S := + Metric.infDist_le_hausdorffDist_of_mem hzT hfin' + _ = Metric.hausdorffDist S T := Metric.hausdorffDist_comm + rw [hz, hx] + calc + inner ℝ z u - inner ℝ x u ≤ inner ℝ z u - inner ℝ x' u := + sub_le_sub_left (hxmax x' hx'S) _ + _ = inner ℝ (z - x') u := by rw [inner_sub_left] + _ ≤ |inner ℝ (z - x') u| := le_abs_self _ + _ ≤ ‖z - x'‖ * ‖u‖ := by + simpa only [Real.norm_eq_abs] using norm_inner_le_norm (𝕜 := ℝ) (z - x') u + _ ≤ Metric.hausdorffDist S T * ‖u‖ := by gcongr + rw [abs_le] + constructor <;> linarith + +/-- The support values of a compact set are Lipschitz in the direction, with constant equal to the +maximum norm of a point in the set. -/ +theorem IsCompact.abs_csSup_inner_sub_le + {E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E] + {S : Set E} (hS : IsCompact S) (hneS : S.Nonempty) (u v : E) : + |sSup ((fun x ↦ inner ℝ x u) '' S) - sSup ((fun x ↦ inner ℝ x v) '' S)| ≤ + sSup (norm '' S) * ‖u - v‖ := by + obtain ⟨x, hxS, hxu, hxu'⟩ := hS.exists_sSup_image_eq_and_ge + (f := fun x : E ↦ inner ℝ x u) hneS + (continuous_inner.comp (continuous_id.prodMk continuous_const)).continuousOn + obtain ⟨y, hyS, hyv, hyv'⟩ := hS.exists_sSup_image_eq_and_ge + (f := fun x : E ↦ inner ℝ x v) hneS + (continuous_inner.comp (continuous_id.prodMk continuous_const)).continuousOn + have hbound (z : E) (hz : z ∈ S) (w : E) : + |inner ℝ z w| ≤ sSup (norm '' S) * ‖w‖ := by + calc + |inner ℝ z w| ≤ ‖z‖ * ‖w‖ := by + simpa only [Real.norm_eq_abs] using norm_inner_le_norm (𝕜 := ℝ) z w + _ ≤ sSup (norm '' S) * ‖w‖ := by + gcongr + exact le_csSup (hS.bddAbove_image continuous_norm.continuousOn) ⟨z, hz, rfl⟩ + have huv : sSup ((fun x ↦ inner ℝ x u) '' S) - + sSup ((fun x ↦ inner ℝ x v) '' S) ≤ sSup (norm '' S) * ‖u - v‖ := by + rw [hxu, hyv] + calc + inner ℝ x u - inner ℝ y v ≤ inner ℝ x u - inner ℝ x v := + sub_le_sub_left (hyv' x hxS) _ + _ = inner ℝ x (u - v) := by rw [inner_sub_right] + _ ≤ |inner ℝ x (u - v)| := le_abs_self _ + _ ≤ sSup (norm '' S) * ‖u - v‖ := hbound x hxS (u - v) + have hvu : sSup ((fun x ↦ inner ℝ x v) '' S) - + sSup ((fun x ↦ inner ℝ x u) '' S) ≤ sSup (norm '' S) * ‖u - v‖ := by + rw [hyv, hxu] + calc + inner ℝ y v - inner ℝ x u ≤ inner ℝ y v - inner ℝ y u := + sub_le_sub_left (hxu' y hyS) _ + _ = inner ℝ y (v - u) := by rw [inner_sub_right] + _ ≤ |inner ℝ y (v - u)| := le_abs_self _ + _ ≤ sSup (norm '' S) * ‖v - u‖ := hbound y hyS (v - u) + _ = sSup (norm '' S) * ‖u - v‖ := by rw [norm_sub_rev] + rw [abs_le] + constructor <;> linarith + +/-- A convex body in a real inner product space is the intersection of its supporting +half-spaces. -/ +theorem ConvexBody.eq_iInter_halfSpaces + {E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E] + (K : ConvexBody E) : + (K : Set E) = ⋂ u ∈ {u : E | ‖u‖ = 1}, + {p : E | inner ℝ p u ≤ sSup ((fun x ↦ inner ℝ x u) '' (K : Set E))} := by + apply Set.Subset.antisymm + · intro p hp + simp only [Set.mem_iInter, Set.mem_ofPred_eq] + intro u _ + obtain ⟨x, hx, hxmax, hmax⟩ := K.isCompact.exists_sSup_image_eq_and_ge + (f := fun x : E ↦ inner ℝ x u) K.nonempty + (continuous_inner.comp (continuous_id.prodMk continuous_const)).continuousOn + rw [hxmax] + exact hmax p hp + · intro p hp + by_contra hpK + obtain ⟨q, hq, hqmin⟩ := + exists_norm_eq_iInf_of_complete_convex K.nonempty K.isCompact.isComplete K.convex p + have hpq : p - q ≠ 0 := sub_ne_zero.mpr (fun h ↦ hpK (h ▸ hq)) + let u : E := ‖p - q‖⁻¹ • (p - q) + have hnorm : 0 < ‖p - q‖ := norm_pos_iff.mpr hpq + have hu : ‖u‖ = 1 := by simp [u, norm_smul, hnorm.ne'] + have hproj : ∀ y ∈ (K : Set E), inner ℝ (p - q) (y - q) ≤ 0 := + (norm_eq_iInf_iff_real_inner_le_zero K.convex hq).mp hqmin + have hqmax : sSup ((fun x ↦ inner ℝ x u) '' (K : Set E)) = inner ℝ q u := by + obtain ⟨x, hx, hxmax, hmax⟩ := K.isCompact.exists_sSup_image_eq_and_ge + (f := fun x : E ↦ inner ℝ x u) K.nonempty + (continuous_inner.comp (continuous_id.prodMk continuous_const)).continuousOn + rw [hxmax] + apply le_antisymm + · dsimp [u] + rw [inner_smul_right, inner_smul_right] + apply mul_le_mul_of_nonneg_left _ (inv_nonneg.mpr hnorm.le) + have h := hproj x hx + have h' : inner ℝ (x - q) (p - q) ≤ 0 := by rwa [real_inner_comm] + rw [inner_sub_left] at h' + linarith + · exact hmax q hq + have hpu := Set.mem_iInter.mp (Set.mem_iInter.mp hp u) hu + rw [hqmax] at hpu + have hstrict : inner ℝ q u < inner ℝ p u := by + dsimp [u] + rw [inner_smul_right, inner_smul_right] + have hself : 0 < inner ℝ (p - q) (p - q) := by + rw [real_inner_self_eq_norm_sq] + positivity + rw [← sub_pos, ← mul_sub, ← inner_sub_left] + exact mul_pos (inv_pos.mpr hnorm) hself + exact (not_lt_of_ge hpu) hstrict + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Convex / Translation +-/ + +@[expose] public section + +/-- Translation of a convex body by a vector. -/ +def ConvexBody.translate {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] + (K : ConvexBody E) (v : E) : ConvexBody E where + carrier := (fun p ↦ p + v) '' (K : Set E) + convex' := by simpa only [add_comm] using K.convex.translate v + isCompact' := K.isCompact.image (continuous_id.add continuous_const) + nonempty' := K.nonempty.image _ + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `ForMathlib.Geometry.Euclidean.Segment`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Geometry / Euclidean / Segment +-/ + +@[expose] public section + +open MeasureTheory + +namespace EuclideanGeometry + +/-- Two unit vectors perpendicular to the same nonzero planar vector agree up to sign. -/ +theorem eq_or_eq_neg_of_unit_orthogonal + (o : Orientation ℝ (EuclideanSpace ℝ (Fin 2)) (Fin 2)) + {v n m : EuclideanSpace ℝ (Fin 2)} (hv : v ≠ 0) + (hn : ‖n‖ = 1) (hm : ‖m‖ = 1) + (hvn : inner ℝ v n = 0) (hvm : inner ℝ v m = 0) : n = m ∨ n = -m := by + let _ : Fact (Module.finrank ℝ (EuclideanSpace ℝ (Fin 2)) = 2) := + ⟨by simp [finrank_euclideanSpace]⟩ + obtain ⟨r, hr⟩ := + ((o.inner_eq_zero_iff_eq_zero_or_eq_smul_rotation_pi_div_two).mp hvn).resolve_left hv + obtain ⟨s, hs⟩ := + ((o.inner_eq_zero_iff_eq_zero_or_eq_smul_rotation_pi_div_two).mp hvm).resolve_left hv + have hvnorm : 0 < ‖v‖ := norm_pos_iff.mpr hv + have hrabs : |r| * ‖v‖ = 1 := by + calc + |r| * ‖v‖ = ‖r • o.rotation (Real.pi / 2 : ℝ) v‖ := by simp [norm_smul] + _ = ‖n‖ := congrArg norm hr + _ = 1 := hn + have hsabs : |s| * ‖v‖ = 1 := by + calc + |s| * ‖v‖ = ‖s • o.rotation (Real.pi / 2 : ℝ) v‖ := by simp [norm_smul] + _ = ‖m‖ := congrArg norm hs + _ = 1 := hm + have habs : |r| = |s| := mul_right_cancel₀ (ne_of_gt hvnorm) (hrabs.trans hsabs.symm) + rcases (abs_eq_abs.mp habs) with hrs | hrs + · left + rw [← hr, ← hs, hrs] + · right + rw [← hr, ← hs, hrs, neg_smul] + +/-- Equal segments have the same orthogonal directions. -/ +theorem inner_direction_eq_zero_of_segment_eq + {a b c d n : (EuclideanSpace ℝ (Fin 2))} (hseg : segment ℝ a b = segment ℝ c d) + (hcdn : inner ℝ (d - c) n = 0) : inner ℝ (b - a) n = 0 := by + have ha : a ∈ segment ℝ c d := hseg ▸ left_mem_segment ℝ a b + have hb : b ∈ segment ℝ c d := hseg ▸ right_mem_segment ℝ a b + rw [segment_eq_image'] at ha hb + obtain ⟨r, _, hr⟩ := ha + obtain ⟨s, _, hs⟩ := hb + rw [← hr, ← hs] + have heq : c + s • (d - c) - (c + r • (d - c)) = (s - r) • (d - c) := by + module + rw [heq] + rw [inner_smul_left, hcdn, mul_zero] + +/-- Equal segments have equal endpoint distances. -/ +theorem dist_eq_of_segment_eq {a b c d : (EuclideanSpace ℝ (Fin 2))} + (hseg : segment ℝ a b = segment ℝ c d) : dist a b = dist c d := by + have h := congrArg (Measure.hausdorffMeasure 1) hseg + simpa only [MeasureTheory.hausdorffMeasure_segment, edist_dist, + ENNReal.ofReal_eq_ofReal_iff, dist_nonneg] using h + +/-- A segment transverse to a hyperplane meets it in at most one point. -/ +lemma segment_inter_hyperplane_subsingleton {a b n : EuclideanSpace ℝ (Fin 2)} {c : ℝ} + (h : inner ℝ (b - a) n ≠ 0) : + (segment ℝ a b ∩ {q | inner ℝ q n = c}).Subsingleton := by + rintro x ⟨hx, hxc⟩ y ⟨hy, hyc⟩ + rw [segment_eq_image'] at hx hy + obtain ⟨r, hr, rfl⟩ := hx + obtain ⟨s, hs, rfl⟩ := hy + have heq : r * inner ℝ (b - a) n = s * inner ℝ (b - a) n := by + have hx : inner ℝ a n + r * inner ℝ (b - a) n = c := by + simpa only [Set.mem_ofPred_eq, inner_add_left, real_inner_smul_left] using hxc + have hy : inner ℝ a n + s * inner ℝ (b - a) n = c := by + simpa only [Set.mem_ofPred_eq, inner_add_left, real_inner_smul_left] using hyc + linarith + rw [mul_right_cancel₀ h heq] + +/-- A transverse segment has zero length on a hyperplane. -/ +lemma hausdorffMeasure_segment_inter_hyperplane_eq_zero {a b n : EuclideanSpace ℝ (Fin 2)} {c : ℝ} + (h : inner ℝ (b - a) n ≠ 0) : + Measure.hausdorffMeasure 1 (segment ℝ a b ∩ {q | inner ℝ q n = c}) = 0 := by + have := Measure.nullSingletonClass_hausdorff (EuclideanSpace ℝ (Fin 2)) (by norm_num : (0 : ℝ) < + 1) + exact (segment_inter_hyperplane_subsingleton h).countable.measure_zero _ + +/-- A segment not contained in a hyperplane meets it in at most one point. -/ +lemma segment_inter_hyperplane_subsingleton_of_not_subset {a b n : EuclideanSpace ℝ (Fin 2)} {c : ℝ} + (hnot : ¬ segment ℝ a b ⊆ {q | inner ℝ q n = c}) : + (segment ℝ a b ∩ {q | inner ℝ q n = c}).Subsingleton := by + by_cases hdir : inner ℝ (b - a) n = 0 + · intro x hx y hy + exfalso + apply hnot + have hconstant {q : EuclideanSpace ℝ (Fin 2)} (hq : q ∈ segment ℝ a b) : + inner ℝ q n = inner ℝ a n := by + rw [segment_eq_image'] at hq + obtain ⟨r, hr, rfl⟩ := hq + simp only [inner_add_left, real_inner_smul_left, hdir, mul_zero, add_zero] + intro q hq + exact (hconstant hq).trans ((hconstant hx.1).symm.trans hx.2) + · exact segment_inter_hyperplane_subsingleton hdir + +/-- A nondegenerate segment covered by finitely many hyperplanes lies in one of them. -/ +lemma exists_segment_subset_hyperplane_of_finite_cover {ι : Type*} + (I : Finset ι) (n : ι → EuclideanSpace ℝ (Fin 2)) (c : ι → ℝ) {a b : EuclideanSpace ℝ (Fin 2)} + (hab : a ≠ b) + (hcover : segment ℝ a b ⊆ ⋃ i ∈ I, {q | inner ℝ q (n i) = c i}) : + ∃ i ∈ I, segment ℝ a b ⊆ {q | inner ℝ q (n i) = c i} := by + classical + have := Measure.nullSingletonClass_hausdorff (EuclideanSpace ℝ (Fin 2)) (by norm_num : (0 : ℝ) < + 1) + by_contra hnot + push Not at hnot + have hnull (i : ι) (hi : i ∈ I) : + Measure.hausdorffMeasure 1 (segment ℝ a b ∩ {q | inner ℝ q (n i) = c i}) = 0 := + (segment_inter_hyperplane_subsingleton_of_not_subset (hnot i hi)).countable.measure_zero _ + have hsub : segment ℝ a b ⊆ + ⋃ i ∈ I, segment ℝ a b ∩ {q | inner ℝ q (n i) = c i} := by + intro q hq + obtain ⟨i, hi, hqi⟩ := Set.mem_iUnion₂.mp (hcover hq) + exact Set.mem_iUnion₂.mpr ⟨i, hi, hq, hqi⟩ + have hm := measure_mono_null hsub + ((measure_biUnion_null_iff I.finite_toSet.countable).mpr hnull) + rw [hausdorffMeasure_segment] at hm + exact hab (edist_eq_zero.mp hm) + +end EuclideanGeometry + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `ForMathlib.MeasureTheory.EuclideanSpace`. +* `ForMathlib.MeasureTheory.FiniteMeasure.Portmanteau`. +* `ForMathlib.MeasureTheory.FiniteMeasure.Restriction`. +* `ForMathlib.MeasureTheory.Angle`. +* `ForMathlib.MeasureTheory.Hausdorff.Arclength`. +* `ForMathlib.MeasureTheory.Hausdorff.Graph`. +* `ForMathlib.MeasureTheory.Hausdorff.PlanarGraph`. +* `ForMathlib.MeasureTheory.Integral.AtomicBounds`. +* `ForMathlib.MeasureTheory.Integral.IntervalExhaustion`. +* `ForMathlib.MeasureTheory.Integral.MovingIntervals`. +* `ForMathlib.MeasureTheory.Integral.Translation`. +* `ForMathlib.MeasureTheory.Measure.Atoms`. +* `ForMathlib.MeasureTheory.Measure.HaarNullSets`. +* `ForMathlib.MeasureTheory.Measure.Map`. +* `ForMathlib.MeasureTheory.Measure.WithDensity`. +* `ForMathlib.MeasureTheory.RegionBetween`. +* `ForMathlib.MeasureTheory.Measure.PlanarTrapezoid`. +* `ForMathlib.MeasureTheory.Measure.PlanarTriangle`. +* `ForMathlib.MeasureTheory.StieltjesDensity`. +* `ForMathlib.MeasureTheory.VectorMeasure.Interval`. +* `ForMathlib.MeasureTheory.VectorMeasure.WithDensity`. +* `ForMathlib.MeasureTheory.Volume`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Euclidean Space +-/ + +@[expose] public section + +open MeasureTheory + +namespace EuclideanSpace + +theorem volume_preserving_finTwoCoordinates : + MeasurePreserving (fun p : EuclideanSpace ℝ (Fin 2) ↦ (p 0, p 1)) volume volume := by + exact (volume_preserving_finTwoArrow ℝ).comp + (EuclideanSpace.volume_preserving_symm_measurableEquiv_toLp (Fin 2)) + +/-- The volume of a closed coordinate box of the Euclidean plane. -/ +theorem volume_setOf_apply_mem_Icc (l r b t : ℝ) : + volume {p : EuclideanSpace ℝ (Fin 2) | p 0 ∈ Set.Icc l r ∧ p 1 ∈ Set.Icc b t} = + ENNReal.ofReal (r - l) * ENNReal.ofReal (t - b) := by + have h := volume_preserving_finTwoCoordinates.measure_preimage + ((measurableSet_Icc.prod measurableSet_Icc).nullMeasurableSet : + NullMeasurableSet (Set.Icc l r ×ˢ Set.Icc b t) (volume : Measure (ℝ × ℝ))) + calc + volume {p : EuclideanSpace ℝ (Fin 2) | p 0 ∈ Set.Icc l r ∧ p 1 ∈ Set.Icc b t} = + volume (Set.Icc l r ×ˢ Set.Icc b t) := by + convert h using 1 + congr 1 + _ = _ := by rw [Measure.volume_eq_prod, Measure.prod_prod, Real.volume_Icc, Real.volume_Icc] + +/-- The coordinates of a point of the Euclidean plane, listed second coordinate first. -/ +def finTwoCoordinatesSwap (p : EuclideanSpace ℝ (Fin 2)) : ℝ × ℝ := + (p 1, p 0) + +/-- Reading the plane coordinates in the reversed order is measure preserving. -/ +theorem volume_preserving_finTwoCoordinatesSwap : + MeasurePreserving finTwoCoordinatesSwap volume + ((volume : Measure ℝ).prod (volume : Measure ℝ)) := by + have hswap : MeasurePreserving Prod.swap + ((volume : Measure ℝ).prod (volume : Measure ℝ)) + ((volume : Measure ℝ).prod (volume : Measure ℝ)) := + Measure.measurePreserving_swap + convert hswap.comp volume_preserving_finTwoCoordinates using 1 + funext p + rfl + +end EuclideanSpace + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Portmanteau for finite measures: the open-set inequality + +Mathlib proves the open-set portmanteau inequality +`MeasureTheory.ProbabilityMeasure.le_liminf_measure_open_of_tendsto` for probability measures and +only the closed-set inequality `MeasureTheory.FiniteMeasure.limsup_measure_closed_le_of_tendsto` +for finite measures. This file supplies the missing open-set inequality for finite measures, by +combining the closed-set inequality on the complement with the convergence of the total masses. +-/ + +@[expose] public section + +noncomputable section + +open Filter Set +open scoped Topology + +namespace MeasureTheory.FiniteMeasure + +/-- Portmanteau for finite measures: weak convergence bounds the mass of an open set by the +lower limit of the approximating masses. -/ +theorem le_liminf_measure_open_of_tendsto + {Ω ι : Type*} {L : Filter ι} + [MeasurableSpace Ω] [TopologicalSpace Ω] [HasOuterApproxClosed Ω] + [OpensMeasurableSpace Ω] {μ : FiniteMeasure Ω} {μs : ι → FiniteMeasure Ω} + (hlim : Tendsto μs L (𝓝 μ)) {G : Set Ω} (hG : IsOpen G) : + (μ : Measure Ω) G ≤ L.liminf (fun i ↦ (μs i : Measure Ω) G) := by + have hclosed := MeasureTheory.FiniteMeasure.limsup_measure_closed_le_of_tendsto hlim + hG.isClosed_compl + rw [le_liminf_iff (by isBoundedDefault) (by isBoundedDefault)] + intro y hy + have hμGtop : (μ : Measure Ω) G ≠ ⊤ := measure_ne_top _ _ + have hyTop : y ≠ ⊤ := ne_top_of_lt (hy.trans_le (le_top)) + have hyR : y.toReal < ((μ : Measure Ω) G).toReal := + (ENNReal.toReal_lt_toReal hyTop hμGtop).mpr hy + let d : ℝ := (((μ : Measure Ω) G).toReal - y.toReal) / 3 + have hd : 0 < d := by + dsimp [d] + linarith + have hmass : Tendsto (fun i ↦ ((μs i).mass : ℝ)) L (𝓝 (μ.mass : ℝ)) := + (NNReal.continuous_coe.tendsto μ.mass).comp + (MeasureTheory.FiniteMeasure.continuous_mass.tendsto μ |>.comp hlim) + have hevmass : ∀ᶠ i in L, (μ.mass : ℝ) - d < ((μs i).mass : ℝ) := + hmass.eventually_const_lt (sub_lt_self _ hd) + let q : ENNReal := ENNReal.ofReal (((μ : Measure Ω) Gᶜ).toReal + d) + have hqd : 0 ≤ ((μ : Measure Ω) Gᶜ).toReal + d := by + have hcR : 0 ≤ ((μ : Measure Ω) Gᶜ).toReal := ENNReal.toReal_nonneg + linarith + have hcompq : (μ : Measure Ω) Gᶜ < q := by + rw [← ENNReal.toReal_lt_toReal (measure_ne_top _ _) ENNReal.ofReal_ne_top] + simp only [ENNReal.toReal_ofReal hqd] + linarith + have hlsq : L.limsup (fun i ↦ (μs i : Measure Ω) Gᶜ) < q := + hclosed.trans_lt hcompq + have hevcomp : ∀ᶠ i in L, (μs i : Measure Ω) Gᶜ < q := + eventually_lt_of_limsup_lt hlsq + filter_upwards [hevmass, hevcomp] with i him hic + have hmassEq : ((μs i : Measure Ω) univ).toReal = ((μs i).mass : ℝ) := by + simp [← MeasureTheory.FiniteMeasure.ennreal_mass] + have hcompR : ((μs i : Measure Ω) Gᶜ).toReal < + ((μ : Measure Ω) Gᶜ).toReal + d := by + have h := (ENNReal.toReal_lt_toReal (measure_ne_top _ _) + ENNReal.ofReal_ne_top).mpr hic + simpa [q, ENNReal.toReal_ofReal hqd] using h + have hsplit : ((μs i : Measure Ω) G).toReal = + ((μs i).mass : ℝ) - ((μs i : Measure Ω) Gᶜ).toReal := by + rw [show (μs i : Measure Ω) G = (μs i : Measure Ω) univ - + (μs i : Measure Ω) Gᶜ by + rw [measure_compl hG.measurableSet (measure_ne_top _ _), + ENNReal.sub_sub_cancel (measure_ne_top _ _) + (measure_mono (subset_univ G))]] + rw [ENNReal.toReal_sub_of_le (measure_mono (subset_univ _)) + (measure_ne_top _ _), hmassEq] + have hμsplit : ((μ : Measure Ω) G).toReal = + (μ.mass : ℝ) - ((μ : Measure Ω) Gᶜ).toReal := by + rw [show (μ : Measure Ω) G = (μ : Measure Ω) univ - + (μ : Measure Ω) Gᶜ by + rw [measure_compl hG.measurableSet (measure_ne_top _ _), + ENNReal.sub_sub_cancel (measure_ne_top _ _) + (measure_mono (subset_univ G))]] + rw [ENNReal.toReal_sub_of_le (measure_mono (subset_univ _)) + (measure_ne_top _ _)] + simp [← MeasureTheory.FiniteMeasure.ennreal_mass] + apply (ENNReal.toReal_lt_toReal hyTop (measure_ne_top _ _)).mp + rw [hsplit] + dsimp [d] at him hcompR hd + linarith [hyR, hμsplit] + +end MeasureTheory.FiniteMeasure + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Finite Measure / Restriction +-/ + +@[expose] public section + +noncomputable section + +open Filter Set +open scoped BoundedContinuousFunction ENNReal NNReal Topology + +namespace MeasureTheory.FiniteMeasure + +/-- Weak convergence of finite measures and their restrictions implies weak +convergence of the complementary restrictions. -/ +theorem tendsto_restrict_compl_of_tendsto_restrict + {X ι : Type*} [TopologicalSpace X] [MeasurableSpace X] [OpensMeasurableSpace X] + {F : Filter ι} {μs : ι → FiniteMeasure X} {μ : FiniteMeasure X} {s : Set X} + (hs : MeasurableSet s) (hμ : Tendsto μs F (𝓝 μ)) + (hsμ : Tendsto (fun n ↦ (μs n).restrict s) F (𝓝 (μ.restrict s))) : + Tendsto (fun n ↦ (μs n).restrict sᶜ) F (𝓝 (μ.restrict sᶜ)) := by + apply tendsto_iff_forall_integral_tendsto.mpr + intro f + have hi (ν : FiniteMeasure X) : + (∫ x, f x ∂(ν.restrict sᶜ : Measure X)) = + (∫ x, f x ∂(ν : Measure X)) - (∫ x, f x ∂(ν.restrict s : Measure X)) := by + have h := integral_add_compl hs (f.integrable (μ := (ν : Measure X))) + change (∫ x in sᶜ, f x ∂(ν : Measure X)) = + (∫ x, f x ∂(ν : Measure X)) - (∫ x in s, f x ∂(ν : Measure X)) + linarith + simpa only [hi] using + ((tendsto_iff_forall_integral_tendsto.mp hμ) f).sub + ((tendsto_iff_forall_integral_tendsto.mp hsμ) f) + +end MeasureTheory.FiniteMeasure + +namespace MeasureTheory.FiniteMeasure + +/-- A continuity set has convergent masses under weak convergence of finite measures. -/ +theorem tendsto_apply_of_null_frontier + {X ι : Type*} [TopologicalSpace X] [MeasurableSpace X] [OpensMeasurableSpace X] + [HasOuterApproxClosed X] [Nonempty X] + {F : Filter ι} {μs : ι → FiniteMeasure X} {μ : FiniteMeasure X} {s : Set X} + (hμ : Tendsto μs F (𝓝 μ)) (hs : μ (frontier s) = 0) : + Tendsto (fun n ↦ μs n s) F (𝓝 (μ s)) := by + by_cases hzero : μ = 0 + · subst μ + have hm := hμ.mass + simp only [zero_mass] at hm + have hlim := tendsto_of_tendsto_of_tendsto_of_le_of_le + (tendsto_const_nhds : Tendsto (fun _ : ι ↦ (0 : ℝ≥0)) F (𝓝 0)) hm + (fun _ ↦ zero_le) (fun n ↦ (μs n).apply_le_mass s) + simpa using hlim + · have hn := μ.tendsto_normalize_of_tendsto hμ hzero + have hs' : μ.normalize (frontier s) = 0 := by + rw [μ.normalize_eq_of_nonzero hzero, hs, mul_zero] + have hset := ProbabilityMeasure.tendsto_measure_of_null_frontier_of_tendsto hn hs' + simpa only [← self_eq_mass_mul_normalize] using hμ.mass.mul hset + +end MeasureTheory.FiniteMeasure + +namespace MeasureTheory.Measure + +/-- Equal atoms on a finite set give equal restrictions to that set. -/ +theorem restrict_finset_eq_of_singleton_eq + {X : Type*} [MeasurableSpace X] [MeasurableSingletonClass X] + {μ ν : Measure X} (s : Finset X) (h : ∀ x ∈ s, μ {x} = ν {x}) : + μ.restrict (s : Set X) = ν.restrict (s : Set X) := by + classical + induction s using Finset.induction_on with + | empty => simp + | @insert a s ha ih => + have hd : Disjoint ({a} : Set X) (s : Set X) := by simpa using ha + have heq := ih (fun x hx ↦ h x (Finset.mem_insert_of_mem hx)) + rw [Finset.coe_insert, ← Set.singleton_union] + rw [restrict_union hd s.measurableSet, restrict_union hd s.measurableSet] + rw [restrict_singleton, restrict_singleton, h a (Finset.mem_insert_self _ _), heq] + +end MeasureTheory.Measure + +namespace MeasureTheory.FiniteMeasure + +/-- Removing finitely many fixed atoms preserves weak convergence. -/ +theorem tendsto_restrict_compl_finset_of_singleton_eq + {X ι : Type*} [TopologicalSpace X] [MeasurableSpace X] [OpensMeasurableSpace X] + [MeasurableSingletonClass X] {F : Filter ι} + {μs : ι → FiniteMeasure X} {μ : FiniteMeasure X} (s : Finset X) + (hμ : Tendsto μs F (𝓝 μ)) + (h : ∀ n x, x ∈ s → (μs n : Measure X) {x} = (μ : Measure X) {x}) : + Tendsto (fun n ↦ (μs n).restrict (s : Set X)ᶜ) F + (𝓝 (μ.restrict (s : Set X)ᶜ)) := by + apply tendsto_restrict_compl_of_tendsto_restrict s.measurableSet hμ + have heq (n : ι) : (μs n).restrict (s : Set X) = μ.restrict (s : Set X) := + Subtype.ext (Measure.restrict_finset_eq_of_singleton_eq s (h n)) + simpa only [heq] using + (tendsto_const_nhds : Tendsto (fun _ : ι ↦ μ.restrict (s : Set X)) F + (𝓝 (μ.restrict (s : Set X)))) + +/-- A finite measure weighted by a bounded continuous nonnegative function. -/ +private def withDensityNN {X : Type*} [TopologicalSpace X] [MeasurableSpace X] + (μ : FiniteMeasure X) (g : X →ᵇ ℝ≥0) : FiniteMeasure X := + ⟨(μ : Measure X).withDensity (fun x ↦ g x), + isFiniteMeasure_withDensity (g.lintegral_lt_top_of_nnreal μ).ne⟩ + +/-- Weighting by a fixed bounded continuous nonnegative function preserves weak convergence. -/ +private theorem tendsto_withDensityNN + {X ι : Type*} [TopologicalSpace X] [MeasurableSpace X] [OpensMeasurableSpace X] + {F : Filter ι} {μs : ι → FiniteMeasure X} {μ : FiniteMeasure X} + (hμ : Tendsto μs F (𝓝 μ)) (g : X →ᵇ ℝ≥0) : + Tendsto (fun n ↦ withDensityNN (μs n) g) F (𝓝 (withDensityNN μ g)) := by + apply tendsto_iff_forall_lintegral_tendsto.mpr + intro f + have hprod := (tendsto_iff_forall_lintegral_tendsto.mp hμ) (g * f) + have h_lintegral (ν : FiniteMeasure X) : + (∫⁻ x, (f x : ℝ≥0∞) ∂(withDensityNN ν g : Measure X)) = + ∫⁻ x, ((g * f) x : ℝ≥0∞) ∂(ν : Measure X) := by + rw [withDensityNN, toMeasure_mk, lintegral_withDensity_eq_lintegral_mul] + · simp + · exact (ENNReal.continuous_coe.comp g.continuous).measurable + · exact (ENNReal.continuous_coe.comp f.continuous).measurable + simpa only [h_lintegral] using hprod + +/-- Weak convergence is preserved by restriction to a measurable continuity set. -/ +theorem tendsto_restrict_of_null_frontier + {X ι : Type*} [TopologicalSpace X] [MeasurableSpace X] [OpensMeasurableSpace X] + [HasOuterApproxClosed X] [Nonempty X] + {F : Filter ι} {μs : ι → FiniteMeasure X} {μ : FiniteMeasure X} {s : Set X} + (hs : MeasurableSet s) (hμ : Tendsto μs F (𝓝 μ)) + (hfrontier : μ (frontier s) = 0) : + Tendsto (fun n ↦ (μs n).restrict s) F (𝓝 (μ.restrict s)) := by + apply tendsto_iff_forall_lintegral_tendsto.mpr + intro g + have hweighted := tendsto_withDensityNN hμ g + have hfrontier' : (withDensityNN μ g) (frontier s) = 0 := by + apply ENNReal.coe_eq_zero.mp + rw [ennreal_coeFn_eq_coeFn_toMeasure] + apply withDensity_absolutelyContinuous (μ : Measure X) (fun x ↦ g x) + simpa only [← ennreal_coeFn_eq_coeFn_toMeasure, ENNReal.coe_zero] using + congrArg ((↑) : ℝ≥0 → ℝ≥0∞) hfrontier + have hmass := tendsto_apply_of_null_frontier hweighted hfrontier' + have hmass_ennreal := (ENNReal.continuous_coe.tendsto _).comp hmass + change Tendsto (fun n ↦ (withDensityNN (μs n) g s : ℝ≥0∞)) F + (𝓝 (withDensityNN μ g s : ℝ≥0∞)) at hmass_ennreal + have h_lintegral (ν : FiniteMeasure X) : + (withDensityNN ν g s : ℝ≥0∞) = + ∫⁻ x in s, (g x : ℝ≥0∞) ∂(ν : Measure X) := by + rw [ennreal_coeFn_eq_coeFn_toMeasure, withDensityNN, toMeasure_mk, withDensity_apply _ hs] + simpa only [h_lintegral, restrict_measure_eq] using hmass_ennreal + +/-- Fixed atoms on a finite set containing the frontier allow weak restriction convergence. -/ +theorem tendsto_restrict_of_frontier_subset_finset + {X ι : Type*} [TopologicalSpace X] [MeasurableSpace X] [OpensMeasurableSpace X] + [HasOuterApproxClosed X] [Nonempty X] [MeasurableSingletonClass X] + {F : Filter ι} {μs : ι → FiniteMeasure X} {μ : FiniteMeasure X} {s : Set X} + (hs : MeasurableSet s) (t : Finset X) (hfrontier : frontier s ⊆ (t : Set X)) + (hμ : Tendsto μs F (𝓝 μ)) + (hatoms : ∀ n x, x ∈ t → (μs n : Measure X) {x} = (μ : Measure X) {x}) : + Tendsto (fun n ↦ (μs n).restrict s) F (𝓝 (μ.restrict s)) := by + have hremoved := tendsto_restrict_compl_finset_of_singleton_eq t hμ hatoms + have hzero : (μ.restrict (t : Set X)ᶜ) (frontier s) = 0 := by + apply (null_iff_toMeasure_null _ _).mpr + rw [restrict_measure_eq, Measure.restrict_apply measurableSet_frontier] + have he : frontier s ∩ (t : Set X)ᶜ = ∅ := by + apply Set.eq_empty_iff_forall_notMem.mpr + intro x hx + exact hx.2 (hfrontier hx.1) + rw [he, measure_empty] + have hrestricted := tendsto_restrict_of_null_frontier hs hremoved hzero + have hfixed (n : ι) : ((μs n).restrict (t : Set X)).restrict s = + (μ.restrict (t : Set X)).restrict s := by + congr 1 + exact Subtype.ext (Measure.restrict_finset_eq_of_singleton_eq t (hatoms n)) + have hsplit (ν : FiniteMeasure X) : ν.restrict s = + (ν.restrict (t : Set X)ᶜ).restrict s + (ν.restrict (t : Set X)).restrict s := by + apply Subtype.ext + change (ν : Measure X).restrict s = + ((ν : Measure X).restrict (t : Set X)ᶜ).restrict s + + ((ν : Measure X).restrict (t : Set X)).restrict s + rw [← Measure.restrict_add] + congr 1 + rw [add_comm, Measure.restrict_add_restrict_compl t.measurableSet] + have hconst : Tendsto (fun n ↦ ((μs n).restrict (t : Set X)).restrict s) F + (𝓝 ((μ.restrict (t : Set X)).restrict s)) := by + simpa only [hfixed] using + (tendsto_const_nhds : Tendsto (fun _ : ι ↦ (μ.restrict (t : Set X)).restrict s) F _) + simpa only [← hsplit] using hrestricted.add hconst + +end MeasureTheory.FiniteMeasure + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Angle +-/ + +@[expose] public section + +noncomputable section + +open Filter Set MeasureTheory +open scoped Topology BoundedContinuousFunction + +namespace Real.Angle + +/-- A half-open interval of at most one turn has distinct angular representatives. -/ +theorem injOn_coe_Ioc {a b : ℝ} (h : b ≤ a + 2 * Real.pi) : + Set.InjOn (fun t : ℝ ↦ (t : Angle)) (Ioc a b) := by + let : Fact (0 < 2 * Real.pi) := ⟨mul_pos (by norm_num) Real.pi_pos⟩ + intro x hx y hy hxy + exact (AddCircle.coe_eq_coe_iff_of_mem_Ioc + ⟨hx.1, hx.2.trans h⟩ ⟨hy.1, hy.2.trans h⟩).mp hxy + +/-- Every fibre of the angular projection is countable, being a full residue class. -/ +theorem countable_preimage_coe_singleton (x : Angle) : + ((fun s : ℝ ↦ (s : Angle)) ⁻¹' {x}).Countable := by + refine Set.Countable.mono ?_ + (Set.countable_range fun k : ℤ ↦ x.toReal + 2 * Real.pi * (k : ℝ)) + intro y hy + have hy' : ((y : ℝ) : Angle) = ((x.toReal : ℝ) : Angle) := by + rw [mem_preimage, mem_singleton_iff] at hy + rw [hy, coe_toReal] + obtain ⟨k, hk⟩ := angle_eq_iff_two_pi_dvd_sub.mp hy' + exact ⟨k, by linarith [hk]⟩ + +/-- The quotient map sends an open real interval to an open angular arc. -/ +theorem isOpen_image_Ioo (a b : ℝ) : + IsOpen ((fun t : ℝ ↦ (t : Angle)) '' Ioo a b) := by + exact QuotientAddGroup.isOpenMap_coe _ isOpen_Ioo + +/-- The frontier of an angular arc is contained in its two endpoint angles. -/ +theorem frontier_image_Ioo_subset (a b : ℝ) : + frontier ((fun t : ℝ ↦ (t : Angle)) '' Ioo a b) ⊆ + {(a : Angle), (b : Angle)} := by + intro x hx + have hc : IsClosed ((fun t : ℝ ↦ (t : Angle)) '' Icc a b) := + (isCompact_Icc.image continuous_coe).isClosed + have hx' : x ∈ (fun t : ℝ ↦ (t : Angle)) '' Icc a b := + closure_minimal (image_mono Ioo_subset_Icc_self) hc hx.1 + obtain ⟨t, ht, rfl⟩ := hx' + have hout : (t : Angle) ∉ (fun t : ℝ ↦ (t : Angle)) '' Ioo a b := by + simpa only [(isOpen_image_Ioo a b).interior_eq] using hx.2 + have hends : t = a ∨ t = b := by + by_contra h + push Not at h + exact hout ⟨t, ⟨lt_of_le_of_ne ht.1 (Ne.symm h.1), + lt_of_le_of_ne ht.2 h.2⟩, rfl⟩ + rcases hends with rfl | rfl <;> simp + +/-- A nonempty half-open arc consists of its open arc and its terminal angle. -/ +theorem image_Ioc_eq_image_Ioo_union {a b : ℝ} (hab : a < b) : + (fun t : ℝ ↦ (t : Angle)) '' Ioc a b = + (fun t : ℝ ↦ (t : Angle)) '' Ioo a b ∪ {(b : Angle)} := by + rw [← Ioo_union_right hab, image_union, image_singleton] + +/-- The frontier of a nonempty half-open angular arc lies in its two endpoint angles. -/ +theorem frontier_image_Ioc_subset {a b : ℝ} (hab : a < b) : + frontier ((fun t : ℝ ↦ (t : Angle)) '' Ioc a b) ⊆ + {(a : Angle), (b : Angle)} := by + rw [image_Ioc_eq_image_Ioo_union hab] + refine (frontier_union_subset _ _).trans ?_ + refine union_subset ?_ ?_ + · exact inter_subset_left.trans (frontier_image_Ioo_subset a b) + · refine inter_subset_right.trans (frontier_subset_closure.trans ?_) + simp + +/-- Half-open real intervals have measurable angular images. -/ +theorem measurableSet_image_Ioc [MeasurableSpace Angle] [BorelSpace Angle] (a b : ℝ) : + MeasurableSet ((fun t : ℝ ↦ (t : Angle)) '' Ioc a b) := by + by_cases hab : a < b + · rw [image_Ioc_eq_image_Ioo_union hab] + exact (isOpen_image_Ioo a b).measurableSet.union (measurableSet_singleton _) + · simp [Ioc_eq_empty_of_le (le_of_not_gt hab)] + +/-- A Borel subset of a real interval of at most one turn has a Borel angular image. -/ +theorem measurableSet_image_of_subset_Ioc [MeasurableSpace Angle] [BorelSpace Angle] + {a b : ℝ} (hab : b ≤ a + 2 * Real.pi) {E : Set ℝ} (hE : MeasurableSet E) + (hEab : E ⊆ Ioc a b) : + MeasurableSet ((fun t : ℝ ↦ (t : Angle)) '' E) := + hE.image_of_continuousOn_injOn continuous_coe.continuousOn ((injOn_coe_Ioc hab).mono hEab) + +/-- The preimage of an open angular arc under the half-turn shift is the shifted arc. -/ +theorem preimage_sub_pi_image_Ioo (a b : ℝ) : + (fun t : Angle ↦ t - ((Real.pi : ℝ) : Angle)) ⁻¹' + ((fun s : ℝ ↦ (s : Angle)) '' Ioo a b) = + (fun s : ℝ ↦ (s : Angle)) '' Ioo (a + Real.pi) (b + Real.pi) := by + ext x + simp only [mem_preimage, mem_image, mem_Ioo] + constructor + · rintro ⟨s, hs, hsx⟩ + refine ⟨s + Real.pi, ⟨by linarith [hs.1], by linarith [hs.2]⟩, ?_⟩ + rw [coe_add, hsx] + abel + · rintro ⟨r, hr, hrx⟩ + refine ⟨r - Real.pi, ⟨by linarith [hr.1], by linarith [hr.2]⟩, ?_⟩ + rw [coe_sub, hrx] + +/-- The terminal atom is disjoint from the open arc, even for a full turn. -/ +theorem disjoint_image_Ioo_singleton {a b : ℝ} (h : b ≤ a + 2 * Real.pi) : + Disjoint ((fun t : ℝ ↦ (t : Angle)) '' Ioo a b) {(b : Angle)} := by + rw [Set.disjoint_singleton_right] + rintro ⟨t, ht, heq⟩ + have htb := injOn_coe_Ioc h ⟨ht.1, ht.2.le⟩ ⟨ht.1.trans ht.2, le_rfl⟩ heq + exact ht.2.ne htb + +/-- Passing from an open arc to a half-open arc restores exactly its terminal atom. -/ +theorem integral_image_Ioc [MeasurableSpace Angle] [BorelSpace Angle] + (μ : MeasureTheory.FiniteMeasure Angle) (f : Angle →ᵇ ℝ) + {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) : + (∫ x in (fun t : ℝ ↦ (t : Angle)) '' Ioc a b, f x ∂(μ : MeasureTheory.Measure Angle)) = + (∫ x in (fun t : ℝ ↦ (t : Angle)) '' Ioo a b, f x ∂(μ : MeasureTheory.Measure Angle)) + + (μ : MeasureTheory.Measure Angle).real {(b : Angle)} * f (b : Angle) := by + rw [image_Ioc_eq_image_Ioo_union hab, MeasureTheory.setIntegral_union + (disjoint_image_Ioo_singleton hturn) (measurableSet_singleton _) + (f.integrable (μ := (μ : Measure Angle))).integrableOn + (f.integrable (μ := (μ : Measure Angle))).integrableOn] + rw [MeasureTheory.integral_singleton] + rfl + +/-- Weak convergence with fixed endpoint atoms preserves integrals on half-open angular arcs. -/ +theorem tendsto_integral_image_Ioc_of_fixed_endpoint_atoms + [MeasurableSpace Angle] [BorelSpace Angle] + {ι : Type*} {F : Filter ι} {μs : ι → FiniteMeasure Angle} {μ : FiniteMeasure Angle} + {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) + (hμ : Tendsto μs F (𝓝 μ)) + (ha : ∀ n, (μs n : Measure Angle) {(a : Angle)} = (μ : Measure Angle) {(a : Angle)}) + (hb : ∀ n, (μs n : Measure Angle) {(b : Angle)} = (μ : Measure Angle) {(b : Angle)}) + (f : Angle →ᵇ ℝ) : + Tendsto (fun n ↦ ∫ x in (fun t : ℝ ↦ (t : Angle)) '' Ioc a b, + f x ∂(μs n : Measure Angle)) F + (𝓝 (∫ x in (fun t : ℝ ↦ (t : Angle)) '' Ioc a b, f x ∂(μ : Measure Angle))) := by + classical + have hatoms : ∀ n x, x ∈ ({(a : Angle), (b : Angle)} : Finset Angle) → + (μs n : Measure Angle) {x} = (μ : Measure Angle) {x} := by + intro n x hx + simp only [Finset.mem_insert, Finset.mem_singleton] at hx + rcases hx with rfl | rfl + · exact ha n + · exact hb n + have hres := FiniteMeasure.tendsto_restrict_of_frontier_subset_finset + (isOpen_image_Ioo a b).measurableSet ({(a : Angle), (b : Angle)} : Finset Angle) + (by simpa using frontier_image_Ioo_subset a b) hμ hatoms + have hint := FiniteMeasure.tendsto_iff_forall_integral_tendsto.mp hres f + have hatom (n : ι) : (μs n : Measure Angle).real {(b : Angle)} = + (μ : Measure Angle).real {(b : Angle)} := by + exact congrArg ENNReal.toReal (hb n) + simpa only [integral_image_Ioc _ _ hab hturn, hatom, + FiniteMeasure.restrict_measure_eq] using + hint.add (tendsto_const_nhds (x := (μ : Measure Angle).real {(b : Angle)} * f (b : Angle))) + +/-! ### Integration over the circle of directions -/ + +/-- A continuous function of a direction is integrable for every finite angular measure, the +circle of directions being compact. -/ +theorem integrable_of_continuous [MeasurableSpace Angle] [BorelSpace Angle] {E : Type*} + [NormedAddCommGroup E] {μ : Measure Angle} [IsFiniteMeasure μ] {f : Angle → E} + (hf : Continuous f) : Integrable f μ := by + have : Fact (0 < 2 * Real.pi) := ⟨mul_pos (by norm_num) Real.pi_pos⟩ + have : CompactSpace Angle := inferInstanceAs (CompactSpace (AddCircle (2 * Real.pi))) + exact hf.integrable_of_hasCompactSupport (HasCompactSupport.of_compactSpace f) + +/-! ### Angular measures reading a real density -/ + +/-- On a real window of at most one turn, the pushforward of a weighted measure along the +angular projection gives the angular image of a measurable subset the integral of the weight +over that subset. -/ +theorem map_coe_withDensity_image_eq_setLIntegral [MeasurableSpace Angle] [BorelSpace Angle] + {ν : Measure ℝ} {w : ℝ → ENNReal} {S T : Set ℝ} {a b : ℝ} + (hturn : b ≤ a + 2 * Real.pi) (hS : S ⊆ Ioc a b) (hT : MeasurableSet T) (hTS : T ⊆ S) : + Measure.map (fun t : ℝ ↦ (t : Angle)) ((ν.restrict S).withDensity w) + ((fun t : ℝ ↦ (t : Angle)) '' T) = ∫⁻ t in T, w t ∂ν := by + have hmeas : Measurable fun t : ℝ ↦ (t : Angle) := continuous_coe.measurable + have himage : MeasurableSet ((fun t : ℝ ↦ (t : Angle)) '' T) := + measurableSet_image_of_subset_Ioc hturn hT (hTS.trans hS) + have hpre : MeasurableSet ((fun t : ℝ ↦ (t : Angle)) ⁻¹' + ((fun t : ℝ ↦ (t : Angle)) '' T)) := himage.preimage hmeas + have hback : (fun t : ℝ ↦ (t : Angle)) ⁻¹' ((fun t : ℝ ↦ (t : Angle)) '' T) ∩ S = T := by + refine Subset.antisymm ?_ fun x hx ↦ ⟨mem_image_of_mem _ hx, hTS hx⟩ + rintro x ⟨⟨y, hy, hxy⟩, hxS⟩ + exact injOn_coe_Ioc hturn (hS (hTS hy)) (hS hxS) hxy ▸ hy + rw [Measure.map_apply hmeas himage, withDensity_apply _ hpre, Measure.restrict_restrict hpre, + hback] + +/-- Two angular measures that agree on the angular image of every measurable subset of a real +window agree after restriction to that window's angular image. -/ +theorem measure_restrict_image_congr [MeasurableSpace Angle] [BorelSpace Angle] + {μ ν : Measure Angle} {J : Set ℝ} (hJ : MeasurableSet J) + (h : ∀ T, MeasurableSet T → T ⊆ J → + μ ((fun t : ℝ ↦ (t : Angle)) '' T) = ν ((fun t : ℝ ↦ (t : Angle)) '' T)) : + μ.restrict ((fun t : ℝ ↦ (t : Angle)) '' J) = + ν.restrict ((fun t : ℝ ↦ (t : Angle)) '' J) := by + have hmeas : Measurable fun t : ℝ ↦ (t : Angle) := continuous_coe.measurable + ext A hA + have hpre : MeasurableSet ((fun t : ℝ ↦ (t : Angle)) ⁻¹' A) := hA.preimage hmeas + rw [Measure.restrict_apply hA, Measure.restrict_apply hA, inter_comm, + ← image_inter_preimage, h _ (hJ.inter hpre) inter_subset_left] + +/-- Two angular measures reading extended-real weights on a real window agree after restriction +to its angular image as soon as the weights agree almost everywhere on the window. -/ +theorem measure_restrict_image_congr_of_ae_eq [MeasurableSpace Angle] [BorelSpace Angle] + {μ ν : Measure Angle} {ρ : Measure ℝ} {w w' : ℝ → ENNReal} {J : Set ℝ} + (hJ : MeasurableSet J) + (hμ : ∀ T, MeasurableSet T → T ⊆ J → + μ ((fun t : ℝ ↦ (t : Angle)) '' T) = ∫⁻ t in T, w t ∂ρ) + (hν : ∀ T, MeasurableSet T → T ⊆ J → + ν ((fun t : ℝ ↦ (t : Angle)) '' T) = ∫⁻ t in T, w' t ∂ρ) + (hw : ∀ᵐ t ∂ρ.restrict J, w t = w' t) : + μ.restrict ((fun t : ℝ ↦ (t : Angle)) '' J) = + ν.restrict ((fun t : ℝ ↦ (t : Angle)) '' J) := by + refine measure_restrict_image_congr hJ fun T hT hTJ ↦ ?_ + rw [hμ T hT hTJ, hν T hT hTJ] + exact lintegral_congr_ae (ae_restrict_of_ae_restrict_of_subset hTJ hw) + +/-- An angular measure reading a real density on a window agrees, after restriction to the +window's angular image, with a sum of two angular measures whose densities add up to it almost +everywhere. -/ +theorem measure_restrict_image_congr_add [MeasurableSpace Angle] [BorelSpace Angle] + {μ ν₁ ν₂ : Measure Angle} {ρ : Measure ℝ} {f g h : ℝ → ℝ} {J : Set ℝ} + (hJ : MeasurableSet J) + (hμ : ∀ T, MeasurableSet T → T ⊆ J → + μ ((fun t : ℝ ↦ (t : Angle)) '' T) = ∫⁻ t in T, ENNReal.ofReal (h t) ∂ρ) + (hν₁ : ∀ T, MeasurableSet T → T ⊆ J → + ν₁ ((fun t : ℝ ↦ (t : Angle)) '' T) = ∫⁻ t in T, ENNReal.ofReal (f t) ∂ρ) + (hν₂ : ∀ T, MeasurableSet T → T ⊆ J → + ν₂ ((fun t : ℝ ↦ (t : Angle)) '' T) = ∫⁻ t in T, ENNReal.ofReal (g t) ∂ρ) + (hf : AEMeasurable f (ρ.restrict J)) (hf0 : ∀ᵐ t ∂ρ.restrict J, 0 ≤ f t) + (hg0 : ∀ᵐ t ∂ρ.restrict J, 0 ≤ g t) (hfg : ∀ᵐ t ∂ρ.restrict J, h t = f t + g t) : + μ.restrict ((fun t : ℝ ↦ (t : Angle)) '' J) = + (ν₁ + ν₂).restrict ((fun t : ℝ ↦ (t : Angle)) '' J) := by + refine measure_restrict_image_congr hJ fun T hT hTJ ↦ ?_ + have hsplit : ∀ᵐ t ∂ρ.restrict T, + ENNReal.ofReal (h t) = ENNReal.ofReal (f t) + ENNReal.ofReal (g t) := by + filter_upwards [ae_restrict_of_ae_restrict_of_subset hTJ hf0, + ae_restrict_of_ae_restrict_of_subset hTJ hg0, + ae_restrict_of_ae_restrict_of_subset hTJ hfg] with t h1 h2 h3 + rw [h3, ENNReal.ofReal_add h1 h2] + have hfT : AEMeasurable (fun t ↦ ENNReal.ofReal (f t)) (ρ.restrict T) := + ENNReal.measurable_ofReal.comp_aemeasurable + (hf.mono_measure (Measure.restrict_mono hTJ le_rfl)) + rw [hμ T hT hTJ, Measure.add_apply, hν₁ T hT hTJ, hν₂ T hT hTJ, lintegral_congr_ae hsplit, + lintegral_add_left' hfT] + +end Real.Angle + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Hausdorff / Arclength +-/ + +@[expose] public section + +noncomputable section + +open Filter +open scoped Topology + +open MeasureTheory + +namespace MeasureTheory + +private theorem dist_le_hausdorffMeasure_image_Icc_of_continuousOn + (γ : ℝ → (EuclideanSpace ℝ (Fin 2))) {a b : ℝ} (hab : a ≤ b) (hγ : ContinuousOn γ (Set.Icc a + b)) : + ENNReal.ofReal (dist (γ a) (γ b)) ≤ + Measure.hausdorffMeasure 1 (γ '' Set.Icc a b) := by + by_cases heq : γ a = γ b + · simp [heq] + let n : (EuclideanSpace ℝ (Fin 2)) := ‖γ b - γ a‖⁻¹ • (γ b - γ a) + let f : (EuclideanSpace ℝ (Fin 2)) → ℝ := fun p ↦ inner ℝ (p - γ a) n + have hnorm : ‖n‖ = 1 := by + rw [norm_smul, Real.norm_eq_abs, abs_inv, abs_norm, + inv_mul_cancel₀ (norm_ne_zero_iff.mpr (sub_ne_zero.mpr (Ne.symm heq)))] + have hf : LipschitzWith 1 f := by + apply LipschitzWith.of_dist_le_mul + intro p q + rw [NNReal.coe_one, one_mul, Real.dist_eq] + change |inner ℝ (p - γ a) n - inner ℝ (q - γ a) n| ≤ dist p q + rw [← inner_sub_left] + have h := abs_real_inner_le_norm ((p - γ a) - (q - γ a)) n + rw [hnorm, mul_one, show (p - γ a) - (q - γ a) = p - q by module, + ← dist_eq_norm] at h + simpa [sub_eq_add_neg, add_assoc, add_left_comm, add_comm] using h + have hfa : f (γ a) = 0 := by simp [f] + have hfb : f (γ b) = dist (γ a) (γ b) := by + dsimp only [f, n] + rw [inner_smul_right, real_inner_self_eq_norm_sq, dist_eq_norm, inv_mul_eq_div, + norm_sub_rev] + field_simp [norm_ne_zero_iff.mpr (sub_ne_zero.mpr (Ne.symm heq))] + have hinterval : Set.Icc 0 (dist (γ a) (γ b)) ⊆ f '' (γ '' Set.Icc a b) := by + rw [← hfa, ← hfb] + intro y hy + obtain ⟨x, hx, hxy⟩ := intermediate_value_Icc hab (hf.continuous.comp_continuousOn hγ) hy + exact ⟨γ x, ⟨x, hx, rfl⟩, hxy⟩ + calc + ENNReal.ofReal (dist (γ a) (γ b)) = + Measure.hausdorffMeasure 1 (Set.Icc 0 (dist (γ a) (γ b))) := by + rw [MeasureTheory.hausdorffMeasure_real, Real.volume_Icc] + simp + _ ≤ Measure.hausdorffMeasure 1 (f '' (γ '' Set.Icc a b)) := measure_mono hinterval + _ ≤ ((1 : NNReal) : ENNReal) ^ (1 : ℝ) * + Measure.hausdorffMeasure 1 (γ '' Set.Icc a b) := + hf.hausdorffMeasure_image_le (by norm_num) _ + _ = Measure.hausdorffMeasure 1 (γ '' Set.Icc a b) := by simp + +private theorem hausdorffMeasure_image_Icc_add_of_injectiveOn + (γ : ℝ → (EuclideanSpace ℝ (Fin 2))) {a b c : ℝ} (hac : a ≤ c) (hcb : c ≤ b) + (hγ : ContinuousOn γ (Set.Icc a b)) + (hinj : Set.InjOn γ (Set.Icc a b)) : + Measure.hausdorffMeasure 1 (γ '' Set.Icc a b) = + Measure.hausdorffMeasure 1 (γ '' Set.Icc a c) + + Measure.hausdorffMeasure 1 (γ '' Set.Icc c b) := by + let μ : Measure (EuclideanSpace ℝ (Fin 2)) := Measure.hausdorffMeasure 1 + have hleft : Set.Icc a c ⊆ Set.Icc a b := Set.Icc_subset_Icc_right hcb + have hright : Set.Icc c b ⊆ Set.Icc a b := Set.Icc_subset_Icc_left hac + have hinter : γ '' Set.Icc a c ∩ γ '' Set.Icc c b ⊆ {γ c} := by + rintro p ⟨⟨x, hx, rfl⟩, ⟨y, hy, hxy⟩⟩ + have hxeq : x = y := hinj (hleft hx) (hright hy) hxy.symm + have : x = c := le_antisymm hx.2 (hxeq ▸ hy.1) + simp [this] + have hnull : μ (γ '' Set.Icc a c ∩ γ '' Set.Icc c b) = 0 := by + let _ := Measure.nullSingletonClass_hausdorff (EuclideanSpace ℝ (Fin 2)) + (by norm_num : (0 : ℝ) < 1) + exact measure_mono_null hinter (measure_singleton (γ c)) + have hmeas : MeasurableSet (γ '' Set.Icc c b) := + (isCompact_Icc.image_of_continuousOn (hγ.mono hright)).measurableSet + have hunion : γ '' Set.Icc a b = γ '' Set.Icc a c ∪ γ '' Set.Icc c b := by + rw [← Set.image_union, Set.Icc_union_Icc_eq_Icc hac hcb] + rw [hunion] + exact measure_union₀ hmeas.nullMeasurableSet hnull + +private theorem hausdorff_partition_sum_le (γ : ℝ → (EuclideanSpace ℝ (Fin 2))) (u : ℕ → ℝ) (n : ℕ) + (hu : Monotone u) (hγ : ContinuousOn γ (Set.Icc (u 0) (u n))) + (hinj : Set.InjOn γ (Set.Icc (u 0) (u n))) : + (∑ i ∈ Finset.range n, edist (γ (u (i + 1))) (γ (u i))) ≤ + Measure.hausdorffMeasure 1 (γ '' Set.Icc (u 0) (u n)) := by + induction n generalizing u with + | zero => simp + | succ n ih => + let v : ℕ → ℝ := fun i ↦ u (i + 1) + have huv : u 0 ≤ u 1 := hu (Nat.zero_le 1) + have hvn : u 1 ≤ u (n + 1) := hu (Nat.succ_le_succ (Nat.zero_le n)) + have hwhole : u 0 ≤ u (n + 1) := huv.trans hvn + have hleft : Set.Icc (u 0) (u 1) ⊆ Set.Icc (u 0) (u (n + 1)) := + Set.Icc_subset_Icc_right hvn + have hright : Set.Icc (u 1) (u (n + 1)) ⊆ Set.Icc (u 0) (u (n + 1)) := + Set.Icc_subset_Icc_left huv + rw [Finset.sum_range_succ'] + have htail : (∑ i ∈ Finset.range n, + edist (γ (u (i + 1 + 1))) (γ (u (i + 1)))) ≤ + Measure.hausdorffMeasure 1 (γ '' Set.Icc (u 1) (u (n + 1))) := by + simpa [v, Nat.add_assoc] using ih v (fun _ _ hij ↦ hu (Nat.add_le_add_right hij 1)) + (hγ.mono hright) (hinj.mono hright) + have hfirst := dist_le_hausdorffMeasure_image_Icc_of_continuousOn γ huv + (hγ.mono hleft) + rw [edist_dist] + rw [hausdorffMeasure_image_Icc_add_of_injectiveOn γ huv hvn hγ hinj] + simpa [add_comm, dist_comm] using add_le_add htail hfirst + +private theorem eVariationOn_le_hausdorffMeasure_image_Icc_of_injectiveOn + (γ : ℝ → (EuclideanSpace ℝ (Fin 2))) {a b : ℝ} (hγ : ContinuousOn γ (Set.Icc a b)) + (hinj : Set.InjOn γ (Set.Icc a b)) : + eVariationOn γ (Set.Icc a b) ≤ + Measure.hausdorffMeasure 1 (γ '' Set.Icc a b) := by + rw [eVariationOn] + refine iSup_le fun p ↦ ?_ + rcases p with ⟨n, u, hu, hus⟩ + have hu0 := hus 0 + have hun := hus n + have hsub : Set.Icc (u 0) (u n) ⊆ Set.Icc a b := + Set.Icc_subset_Icc hu0.1 hun.2 + calc + (∑ i ∈ Finset.range n, edist (γ (u (i + 1))) (γ (u i))) ≤ + Measure.hausdorffMeasure 1 (γ '' Set.Icc (u 0) (u n)) := + hausdorff_partition_sum_le γ u n hu (hγ.mono hsub) (hinj.mono hsub) + _ ≤ Measure.hausdorffMeasure 1 (γ '' Set.Icc a b) := + measure_mono (Set.image_mono hsub) + +private theorem hausdorffMeasure_image_Icc_le_eVariationOn_of_injectiveOn + (γ : ℝ → (EuclideanSpace ℝ (Fin 2))) {a b : ℝ} (hab : a ≤ b) + (hinj : Set.InjOn γ (Set.Icc a b)) + (hBV : BoundedVariationOn γ (Set.Icc a b)) : + Measure.hausdorffMeasure 1 (γ '' Set.Icc a b) ≤ + eVariationOn γ (Set.Icc a b) := by + let ℓ : ℝ → ℝ := variationOnFromTo γ (Set.Icc a b) a + have hℓstrict : StrictMonoOn ℓ (Set.Icc a b) := by + intro x hx y hy hxy + have hnonneg : 0 ≤ variationOnFromTo γ (Set.Icc a b) x y := + variationOnFromTo.nonneg_of_le γ _ hxy.le + have hadd := variationOnFromTo.add hBV.locallyBoundedVariationOn + (Set.left_mem_Icc.mpr hab) hx hy + have hle : ℓ x ≤ ℓ y := by dsimp only [ℓ]; linarith + refine lt_of_le_of_ne hle ?_ + intro heq + have hzero : variationOnFromTo γ (Set.Icc a b) x y = 0 := by + dsimp only [ℓ] at heq + linarith + have hed := variationOnFromTo.edist_zero_of_eq_zero hBV.locallyBoundedVariationOn + hx hy hzero + have hxy' : γ x = γ y := edist_eq_zero.mp hed + exact hxy.ne (hinj hx hy hxy') + let iso := hℓstrict.orderIso ℓ (Set.Icc a b) + let Γ : (ℓ '' Set.Icc a b) → (EuclideanSpace ℝ (Fin 2)) := fun z ↦ γ (iso.symm z) + have hΓle : ∀ z w : (ℓ '' Set.Icc a b), z ≤ w → + dist (Γ z) (Γ w) ≤ dist z w := by + intro z w hzw + have hxy : (iso.symm z : ℝ) ≤ iso.symm w := iso.symm.monotone hzw + have hvar : dist (γ (iso.symm z)) (γ (iso.symm w)) ≤ + variationOnFromTo γ (Set.Icc a b) (iso.symm z) (iso.symm w) := by + rw [variationOnFromTo.eq_of_le _ _ hxy, dist_edist] + apply ENNReal.toReal_mono + (hBV.locallyBoundedVariationOn _ _ (iso.symm z).property (iso.symm w).property) + exact eVariationOn.edist_le γ + ⟨(iso.symm z).property, le_rfl, hxy⟩ + ⟨(iso.symm w).property, hxy, le_rfl⟩ + have hadd := variationOnFromTo.add hBV.locallyBoundedVariationOn + (Set.left_mem_Icc.mpr hab) (iso.symm z).property (iso.symm w).property + change dist (γ (iso.symm z)) (γ (iso.symm w)) ≤ dist (z : ℝ) (w : ℝ) + rw [Real.dist_eq, abs_of_nonpos (sub_nonpos.mpr (show (z : ℝ) ≤ (w : ℝ) from hzw))] + have hz : ℓ (iso.symm z) = z := congrArg Subtype.val (iso.apply_symm_apply z) + have hw : ℓ (iso.symm w) = w := congrArg Subtype.val (iso.apply_symm_apply w) + dsimp only [ℓ] at hz hw + linarith + have hΓ : LipschitzWith 1 Γ := by + apply LipschitzWith.of_dist_le_mul + intro z w + simp only [NNReal.coe_one, one_mul] + rcases le_total z w with hzw | hwz + · exact hΓle z w hzw + · simpa only [dist_comm] using hΓle w z hwz + have himage : Γ '' Set.univ = γ '' Set.Icc a b := by + ext p + constructor + · rintro ⟨z, _, rfl⟩ + exact ⟨iso.symm z, (iso.symm z).property, rfl⟩ + · rintro ⟨x, hx, rfl⟩ + refine ⟨iso ⟨x, hx⟩, Set.mem_univ _, ?_⟩ + simp [Γ] + have hval : (Subtype.val : (ℓ '' Set.Icc a b) → ℝ) '' Set.univ = + ℓ '' Set.Icc a b := by + ext x + constructor + · rintro ⟨z, _, rfl⟩; exact z.property + · intro hx; exact ⟨⟨x, hx⟩, Set.mem_univ _, rfl⟩ + have hdom : Measure.hausdorffMeasure 1 (Set.univ : Set (ℓ '' Set.Icc a b)) = + Measure.hausdorffMeasure 1 (ℓ '' Set.Icc a b) := by + conv_rhs => rw [← hval] + have hi : Isometry (Subtype.val : (ℓ '' Set.Icc a b) → ℝ) := fun _ _ ↦ rfl + exact (hi.hausdorffMeasure_image (Or.inl (by norm_num : (0 : ℝ) ≤ 1)) _).symm + have hsub : ℓ '' Set.Icc a b ⊆ + Set.Icc 0 (eVariationOn γ (Set.Icc a b)).toReal := by + rintro _ ⟨x, hx, rfl⟩ + exact ⟨variationOnFromTo.nonneg_of_le γ _ hx.1, + (le_abs_self _).trans (variationOnFromTo.abs_le_eVariationOn hBV)⟩ + calc + Measure.hausdorffMeasure 1 (γ '' Set.Icc a b) = + Measure.hausdorffMeasure 1 (Γ '' Set.univ) := congrArg _ himage.symm + _ ≤ Measure.hausdorffMeasure 1 (Set.univ : Set (ℓ '' Set.Icc a b)) := by + simpa using hΓ.hausdorffMeasure_image_le (by norm_num : (0 : ℝ) ≤ 1) Set.univ + _ = Measure.hausdorffMeasure 1 (ℓ '' Set.Icc a b) := hdom + _ ≤ Measure.hausdorffMeasure 1 + (Set.Icc 0 (eVariationOn γ (Set.Icc a b)).toReal) := measure_mono hsub + _ = eVariationOn γ (Set.Icc a b) := by + rw [hausdorffMeasure_real, Real.volume_Icc, sub_zero, ENNReal.ofReal_toReal hBV] + +/-- Hausdorff length of a continuous injective arc is its total variation. -/ +theorem hausdorffMeasure_image_Icc_eq_eVariationOn + (γ : ℝ → (EuclideanSpace ℝ (Fin 2))) {a b : ℝ} (hab : a ≤ b) + (hγ : ContinuousOn γ (Set.Icc a b)) + (hinj : Set.InjOn γ (Set.Icc a b)) + (hBV : BoundedVariationOn γ (Set.Icc a b)) : + Measure.hausdorffMeasure 1 (γ '' Set.Icc a b) = + eVariationOn γ (Set.Icc a b) := + le_antisymm (hausdorffMeasure_image_Icc_le_eVariationOn_of_injectiveOn γ hab hinj hBV) + (eVariationOn_le_hausdorffMeasure_image_Icc_of_injectiveOn γ hγ hinj) + +private theorem eVariationOn_Icc_le_of_lipschitzOn + {γ : ℝ → (EuclideanSpace ℝ (Fin 2))} {C : NNReal} {a b : ℝ} + (hγ : LipschitzOnWith C γ (Set.Icc a b)) : + eVariationOn γ (Set.Icc a b) ≤ C * ENNReal.ofReal (b - a) := by + simpa using hγ.comp_eVariationOn_le (g := id) (s := Set.Icc a b) (fun _ hx ↦ hx) + +/-- Accumulated variation preserves a curve's Lipschitz bound. -/ +private theorem lipschitzOnWith_variationOnFromTo + {γ : ℝ → (EuclideanSpace ℝ (Fin 2))} {C : NNReal} {a b : ℝ} (hab : a ≤ b) + (hγ : LipschitzOnWith C γ (Set.Icc a b)) : + LipschitzOnWith C (variationOnFromTo γ (Set.Icc a b) a) (Set.Icc a b) := by + let ℓ := variationOnFromTo γ (Set.Icc a b) a + have hBV : BoundedVariationOn γ (Set.Icc a b) := + ne_top_of_le_ne_top (by finiteness) (eVariationOn_Icc_le_of_lipschitzOn hγ) + have hbound : ∀ x ∈ Set.Icc a b, ∀ y ∈ Set.Icc a b, x ≤ y → + dist (ℓ x) (ℓ y) ≤ C * dist x y := by + intro x hx y hy hxy + have hsub : Set.Icc x y ⊆ Set.Icc a b := Set.Icc_subset_Icc hx.1 hy.2 + have hvar := eVariationOn_Icc_le_of_lipschitzOn (hγ.mono hsub) + have hreal := ENNReal.toReal_mono (by finiteness) hvar + rw [ENNReal.toReal_mul, ENNReal.coe_toReal, + ENNReal.toReal_ofReal (sub_nonneg.mpr hxy)] at hreal + have hadd := variationOnFromTo.add hBV.locallyBoundedVariationOn + (Set.left_mem_Icc.mpr hab) hx hy + have hm := variationOnFromTo.monotoneOn hBV.locallyBoundedVariationOn + (Set.left_mem_Icc.mpr hab) hx hy hxy + rw [variationOnFromTo.eq_of_le _ _ hxy, Set.inter_eq_right.mpr hsub] at hadd + change dist (variationOnFromTo γ (Set.Icc a b) a x) + (variationOnFromTo γ (Set.Icc a b) a y) ≤ _ + rw [Real.dist_eq, abs_of_nonpos (sub_nonpos.mpr hm), Real.dist_eq, + abs_of_nonpos (sub_nonpos.mpr hxy)] + linarith + apply LipschitzOnWith.of_dist_le_mul + intro x hx y hy + rcases le_total x y with hxy | hyx + · exact hbound x hx y hy hxy + · simpa only [dist_comm] using hbound y hy x hx hyx + +/-- Total variation of a Lipschitz curve is the integral of its accumulated variation derivative. -/ +private theorem integral_deriv_variationOnFromTo + {γ : ℝ → (EuclideanSpace ℝ (Fin 2))} {C : NNReal} {a b : ℝ} (hab : a ≤ b) + (hγ : LipschitzOnWith C γ (Set.Icc a b)) : + (∫ x in a..b, deriv (variationOnFromTo γ (Set.Icc a b) a) x) = + (eVariationOn γ (Set.Icc a b)).toReal := by + have hL := lipschitzOnWith_variationOnFromTo hab hγ + have hAC := (show LipschitzOnWith C (variationOnFromTo γ (Set.Icc a b) a) + (Set.uIcc a b) by simpa only [Set.uIcc_of_le hab] using hL).absolutelyContinuousOnInterval + rw [hAC.integral_deriv_eq_sub, variationOnFromTo.self, + variationOnFromTo.eq_of_le _ _ hab, Set.inter_self, sub_zero] + +private theorem norm_deriv_le_abs_deriv_of_eventually_dist_le + {γ : ℝ → (EuclideanSpace ℝ (Fin 2))} {ℓ : ℝ → ℝ} {x : ℝ} + (hγ : DifferentiableAt ℝ γ x) (hℓ : DifferentiableAt ℝ ℓ x) + (hbound : ∀ᶠ y in nhds x, dist (γ y) (γ x) ≤ dist (ℓ y) (ℓ x)) : + ‖deriv γ x‖ ≤ |deriv ℓ x| := by + have hγlim := hγ.hasDerivAt.tendsto_slope.norm + have hℓlim := hℓ.hasDerivAt.tendsto_slope.norm + change Filter.Tendsto _ _ (nhds |deriv ℓ x|) at hℓlim + apply le_of_tendsto_of_tendsto hγlim hℓlim + filter_upwards [hbound.filter_mono nhdsWithin_le_nhds] with y hy + simp only [slope, norm_smul] + rw [dist_eq_norm, dist_eq_norm] at hy + exact mul_le_mul_of_nonneg_left hy (norm_nonneg _) + +private theorem dist_le_dist_variationOnFromTo + {γ : ℝ → (EuclideanSpace ℝ (Fin 2))} {a b x y : ℝ} (hab : a ≤ b) + (hBV : BoundedVariationOn γ (Set.Icc a b)) + (hx : x ∈ Set.Icc a b) (hy : y ∈ Set.Icc a b) : + dist (γ x) (γ y) ≤ + dist (variationOnFromTo γ (Set.Icc a b) a x) + (variationOnFromTo γ (Set.Icc a b) a y) := by + wlog hxy : x ≤ y generalizing x y + · simpa only [dist_comm] using this hy hx (le_of_not_ge hxy) + have hvar : dist (γ x) (γ y) ≤ variationOnFromTo γ (Set.Icc a b) x y := by + rw [variationOnFromTo.eq_of_le _ _ hxy, dist_edist] + apply ENNReal.toReal_mono (hBV.locallyBoundedVariationOn _ _ hx hy) + exact eVariationOn.edist_le γ ⟨hx, le_rfl, hxy⟩ ⟨hy, hxy, le_rfl⟩ + have hadd := variationOnFromTo.add hBV.locallyBoundedVariationOn + (Set.left_mem_Icc.mpr hab) hx hy + have hm := variationOnFromTo.monotoneOn hBV.locallyBoundedVariationOn + (Set.left_mem_Icc.mpr hab) hx hy hxy + rw [Real.dist_eq, abs_of_nonpos (sub_nonpos.mpr hm)] + linarith + +/-- The derivative norm of a curve is bounded by the derivative of accumulated variation. -/ +private theorem norm_deriv_le_deriv_variationOnFromTo + {γ : ℝ → (EuclideanSpace ℝ (Fin 2))} {a b x : ℝ} + (hBV : BoundedVariationOn γ (Set.Icc a b)) (hx : x ∈ Set.Ioo a b) + (hγ : DifferentiableAt ℝ γ x) + (hℓ : DifferentiableAt ℝ (variationOnFromTo γ (Set.Icc a b) a) x) : + ‖deriv γ x‖ ≤ deriv (variationOnFromTo γ (Set.Icc a b) a) x := by + have hab := hx.1.le.trans hx.2.le + have hnhds := Icc_mem_nhds hx.1 hx.2 + have hbound : ∀ᶠ y in nhds x, dist (γ y) (γ x) ≤ + dist (variationOnFromTo γ (Set.Icc a b) a y) + (variationOnFromTo γ (Set.Icc a b) a x) := by + filter_upwards [hnhds] with y hy + exact dist_le_dist_variationOnFromTo hab hBV hy ⟨hx.1.le, hx.2.le⟩ + have h := norm_deriv_le_abs_deriv_of_eventually_dist_le hγ hℓ hbound + have hm := variationOnFromTo.monotoneOn hBV.locallyBoundedVariationOn + (Set.left_mem_Icc.mpr hab) + have hnonneg := hm.derivWithin_nonneg (x := x) + rw [derivWithin_of_mem_nhds hnhds] at hnonneg + rwa [abs_of_nonneg hnonneg] at h + +/-- The derivative of a planar Lipschitz curve is integrable on its interval. -/ +theorem integrableOn_deriv_of_lipschitzOn + {γ : ℝ → (EuclideanSpace ℝ (Fin 2))} {C : NNReal} {a b : ℝ} + (hγ : LipschitzOnWith C γ (Set.Icc a b)) : + IntegrableOn (deriv γ) (Set.Icc a b) := by + rw [IntegrableOn, ← restrict_Ioo_eq_restrict_Icc] + apply (integrable_const (C : ℝ)).mono' (aestronglyMeasurable_deriv γ _) + filter_upwards [ae_restrict_mem measurableSet_Ioo] with x hx + exact norm_deriv_le_of_lipschitzOn (Icc_mem_nhds hx.1 hx.2) hγ + +/-- The integral of speed is bounded by the total variation of a Lipschitz curve. -/ +private theorem integral_norm_deriv_le_eVariationOn + {γ : ℝ → (EuclideanSpace ℝ (Fin 2))} {C : NNReal} {a b : ℝ} (hab : a ≤ b) + (hγ : LipschitzOnWith C γ (Set.Icc a b)) : + (∫ x in a..b, ‖deriv γ x‖) ≤ (eVariationOn γ (Set.Icc a b)).toReal := by + let ℓ := variationOnFromTo γ (Set.Icc a b) a + have hL := lipschitzOnWith_variationOnFromTo hab hγ + have hAC := (show LipschitzOnWith C ℓ (Set.uIcc a b) by + simpa only [Set.uIcc_of_le hab] using hL).absolutelyContinuousOnInterval + have hBV : BoundedVariationOn γ (Set.Icc a b) := + ne_top_of_le_ne_top (by finiteness) (eVariationOn_Icc_le_of_lipschitzOn hγ) + rw [← integral_deriv_variationOnFromTo hab hγ] + apply intervalIntegral.integral_mono_ae_restrict hab + ((intervalIntegrable_iff_integrableOn_Icc_of_le hab).mpr + (integrableOn_deriv_of_lipschitzOn hγ).norm) hAC.intervalIntegrable_deriv + rw [Filter.EventuallyLE, ae_restrict_iff' measurableSet_Icc] + filter_upwards [hγ.ae_differentiableWithinAt_of_mem, + hL.ae_differentiableWithinAt_of_mem, + show ∀ᵐ x : ℝ, x ≠ a by simp [ae_iff, measure_singleton], + show ∀ᵐ x : ℝ, x ≠ b by simp [ae_iff, measure_singleton]] with x hxγ hxL hxa hxb hx + have hx' : x ∈ Set.Ioo a b := ⟨lt_of_le_of_ne hx.1 (Ne.symm hxa), lt_of_le_of_ne hx.2 hxb⟩ + have hxcc : x ∈ Set.Icc a b := ⟨hx'.1.le, hx'.2.le⟩ + exact norm_deriv_le_deriv_variationOnFromTo hBV hx' + ((hxγ hxcc).differentiableAt (Icc_mem_nhds hx'.1 hx'.2)) + ((hxL hxcc).differentiableAt (Icc_mem_nhds hx'.1 hx'.2)) + +/-- Fundamental theorem of calculus for a planar Lipschitz curve. -/ +private theorem integral_deriv_eq_sub_of_lipschitzOn + {γ : ℝ → (EuclideanSpace ℝ (Fin 2))} {C : NNReal} {a b : ℝ} (hab : a ≤ b) + (hγ : LipschitzOnWith C γ (Set.Icc a b)) : + (∫ x in a..b, deriv γ x) = γ b - γ a := by + have hint : IntervalIntegrable (deriv γ) volume a b := + (intervalIntegrable_iff_integrableOn_Icc_of_le hab).mpr + (integrableOn_deriv_of_lipschitzOn hγ) + ext i + let L : (EuclideanSpace ℝ (Fin 2)) →L[ℝ] ℝ := PiLp.proj 2 (fun _ : Fin 2 ↦ ℝ) i + have hcoord := L.lipschitzWith.comp_lipschitzOnWith hγ + have hAC := (show LipschitzOnWith _ (fun x ↦ L (γ x)) (Set.uIcc a b) by + simpa only [Set.uIcc_of_le hab, LipschitzOnWith, Function.comp_apply] using + hcoord).absolutelyContinuousOnInterval + change L (∫ x in a..b, deriv γ x) = L (γ b - γ a) + rw [← L.intervalIntegral_comp_comm hint, map_sub, ← hAC.integral_deriv_eq_sub] + apply intervalIntegral.integral_congr_ae + filter_upwards [hγ.ae_differentiableWithinAt_of_mem, + show ∀ᵐ x : ℝ, x ≠ b by simp [ae_iff, measure_singleton]] with x hx hxb hxI + have hx' : x ∈ Set.Ioo a b := by + rw [Set.uIoc_of_le hab] at hxI + exact ⟨hxI.1, lt_of_le_of_ne hxI.2 hxb⟩ + have hd := (hx ⟨hx'.1.le, hx'.2.le⟩).differentiableAt (Icc_mem_nhds hx'.1 hx'.2) + exact ((L.hasFDerivAt.comp_hasDerivAt x hd.hasDerivAt).deriv).symm + +private theorem edist_le_ofReal_integral_norm_deriv + {γ : ℝ → (EuclideanSpace ℝ (Fin 2))} {C : NNReal} {a b : ℝ} (hab : a ≤ b) + (hγ : LipschitzOnWith C γ (Set.Icc a b)) : + edist (γ b) (γ a) ≤ ENNReal.ofReal (∫ x in a..b, ‖deriv γ x‖) := by + rw [edist_dist, dist_eq_norm, ← integral_deriv_eq_sub_of_lipschitzOn hab hγ] + exact ENNReal.ofReal_le_ofReal (intervalIntegral.norm_integral_le_integral_norm hab) + +/-- Total variation is bounded by the integral of speed for a Lipschitz curve. -/ +private theorem eVariationOn_le_ofReal_integral_norm_deriv + {γ : ℝ → (EuclideanSpace ℝ (Fin 2))} {C : NNReal} {a b : ℝ} (hab : a ≤ b) + (hγ : LipschitzOnWith C γ (Set.Icc a b)) : + eVariationOn γ (Set.Icc a b) ≤ ENNReal.ofReal (∫ x in a..b, ‖deriv γ x‖) := by + have hint : IntervalIntegrable (fun x ↦ ‖deriv γ x‖) volume a b := + (intervalIntegrable_iff_integrableOn_Icc_of_le hab).mpr + (integrableOn_deriv_of_lipschitzOn hγ).norm + rw [eVariationOn] + refine iSup_le fun p ↦ ?_ + rcases p with ⟨n, u, hu, hus⟩ + have hsub (i : ℕ) : Set.Icc (u i) (u (i + 1)) ⊆ Set.Icc a b := + Set.Icc_subset_Icc (hus i).1 (hus (i + 1)).2 + have hints (i : ℕ) : IntervalIntegrable (fun x ↦ ‖deriv γ x‖) volume (u i) (u (i + 1)) := + (intervalIntegrable_iff_integrableOn_Icc_of_le (hu (Nat.le_succ i))).mpr + (IntegrableOn.mono_set (integrableOn_deriv_of_lipschitzOn hγ).norm (hsub i)) + calc + (∑ i ∈ Finset.range n, edist (γ (u (i + 1))) (γ (u i))) ≤ + ∑ i ∈ Finset.range n, ENNReal.ofReal (∫ x in u i..u (i + 1), ‖deriv γ x‖) := + Finset.sum_le_sum fun i _ ↦ + edist_le_ofReal_integral_norm_deriv (hu (Nat.le_succ i)) (hγ.mono (hsub i)) + _ = ENNReal.ofReal (∑ i ∈ Finset.range n, ∫ x in u i..u (i + 1), ‖deriv γ x‖) := by + symm + exact ENNReal.ofReal_sum_of_nonneg fun i _ ↦ + intervalIntegral.integral_nonneg (hu (Nat.le_succ i)) (fun _ _ ↦ norm_nonneg _) + _ = ENNReal.ofReal (∫ x in u 0..u n, ‖deriv γ x‖) := by + rw [intervalIntegral.sum_integral_adjacent_intervals (fun i _ ↦ hints i)] + _ ≤ ENNReal.ofReal (∫ x in a..b, ‖deriv γ x‖) := by + apply ENNReal.ofReal_le_ofReal + exact intervalIntegral.integral_mono_interval (hus 0).1 (hu (Nat.zero_le n)) (hus n).2 + (Filter.Eventually.of_forall fun _ ↦ norm_nonneg _) hint + +/-- Total variation of a planar Lipschitz curve is the integral of its speed. -/ +theorem eVariationOn_eq_ofReal_integral_norm_deriv + {γ : ℝ → (EuclideanSpace ℝ (Fin 2))} {C : NNReal} {a b : ℝ} (hab : a ≤ b) + (hγ : LipschitzOnWith C γ (Set.Icc a b)) : + eVariationOn γ (Set.Icc a b) = ENNReal.ofReal (∫ x in a..b, ‖deriv γ x‖) := by + apply le_antisymm (eVariationOn_le_ofReal_integral_norm_deriv hab hγ) + have hBV : eVariationOn γ (Set.Icc a b) ≠ ⊤ := + ne_top_of_le_ne_top (by finiteness) (eVariationOn_Icc_le_of_lipschitzOn hγ) + rw [ENNReal.ofReal_le_iff_le_toReal hBV] + exact integral_norm_deriv_le_eVariationOn hab hγ + +/-- Hausdorff length of a planar injective Lipschitz curve is the integral of its speed. -/ +theorem hausdorffMeasure_image_Icc_eq_ofReal_integral_norm_deriv + {γ : ℝ → (EuclideanSpace ℝ (Fin 2))} {C : NNReal} {a b : ℝ} (hab : a ≤ b) + (hγ : LipschitzOnWith C γ (Set.Icc a b)) (hinj : Set.InjOn γ (Set.Icc a b)) : + Measure.hausdorffMeasure 1 (γ '' Set.Icc a b) = + ENNReal.ofReal (∫ x in a..b, ‖deriv γ x‖) := by + rw [hausdorffMeasure_image_Icc_eq_eVariationOn γ hab hγ.continuousOn hinj + (ne_top_of_le_ne_top (by finiteness) (eVariationOn_Icc_le_of_lipschitzOn hγ)), + eVariationOn_eq_ofReal_integral_norm_deriv hab hγ] + +/-- The image of a continuous injective planar arc of bounded variation is Lebesgue null. -/ +theorem volume_image_Icc_eq_zero_of_boundedVariationOn + (γ : ℝ → (EuclideanSpace ℝ (Fin 2))) {a b : ℝ} (hab : a ≤ b) + (hγ : ContinuousOn γ (Set.Icc a b)) (hinj : Set.InjOn γ (Set.Icc a b)) + (hBV : BoundedVariationOn γ (Set.Icc a b)) : + volume (γ '' Set.Icc a b) = 0 := by + have hlength : Measure.hausdorffMeasure 1 (γ '' Set.Icc a b) ≠ ⊤ := by + rw [hausdorffMeasure_image_Icc_eq_eVariationOn γ hab hγ hinj hBV] + exact hBV + have harea : Measure.hausdorffMeasure 2 (γ '' Set.Icc a b) = 0 := + (Measure.hausdorffMeasure_zero_or_top (by norm_num : (1 : ℝ) < 2) _).resolve_right hlength + have habs := MeasureTheory.Measure.absolutelyContinuous_isAddHaarMeasure + (volume : Measure (EuclideanSpace ℝ (Fin 2))) + (Measure.hausdorffMeasure (Module.finrank ℝ (EuclideanSpace ℝ (Fin 2)))) + apply habs + simpa [finrank_euclideanSpace_fin] using harea + +end MeasureTheory + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Hausdorff / Graph +-/ + +@[expose] public section + +noncomputable section + +open Filter +open scoped Topology + +namespace MeasureTheory + +private theorem map_firstCoordinate_restrict_curve_Icc + (γ : ℝ → (EuclideanSpace ℝ (Fin 2))) (a b c d : ℝ) + (hcoord : ∀ x ∈ Set.Icc a b, γ x 0 = x) : + Measure.map (fun p : (EuclideanSpace ℝ (Fin 2)) ↦ p 0) + ((Measure.hausdorffMeasure 1).restrict (γ '' Set.Icc a b)) (Set.Icc c d) = + Measure.hausdorffMeasure 1 (γ '' Set.Icc (max a c) (min b d)) := by + have hm : Measurable (fun p : (EuclideanSpace ℝ (Fin 2)) ↦ p 0) := + (PiLp.proj (𝕜 := ℝ) 2 (fun _ : Fin 2 ↦ ℝ) 0).continuous.measurable + rw [Measure.map_apply hm measurableSet_Icc, + Measure.restrict_apply (hm measurableSet_Icc)] + congr 1 + ext p + constructor + · rintro ⟨hp, x, hx, rfl⟩ + refine ⟨x, ?_, rfl⟩ + change γ x 0 ∈ Set.Icc c d at hp + rw [hcoord x hx] at hp + exact ⟨max_le hx.1 hp.1, le_min hx.2 hp.2⟩ + · rintro ⟨x, hx, rfl⟩ + refine ⟨?_, x, ⟨(le_max_left _ _).trans hx.1, hx.2.trans (min_le_left _ _)⟩, rfl⟩ + change γ x 0 ∈ Set.Icc c d + rw [hcoord x ⟨(le_max_left _ _).trans hx.1, hx.2.trans (min_le_left _ _)⟩] + exact ⟨(le_max_right _ _).trans hx.1, hx.2.trans (min_le_right _ _)⟩ + +/-- Projected Hausdorff measure on a Lipschitz graph has speed as its density. -/ +theorem map_firstCoordinate_restrict_curve_eq_withDensity + {γ : ℝ → (EuclideanSpace ℝ (Fin 2))} {C : NNReal} {a b : ℝ} (hab : a ≤ b) + (hγ : LipschitzOnWith C γ (Set.Icc a b)) (hcoord : ∀ x ∈ Set.Icc a b, γ x 0 = x) : + Measure.map (fun p : (EuclideanSpace ℝ (Fin 2)) ↦ p 0) + ((Measure.hausdorffMeasure 1).restrict (γ '' Set.Icc a b)) = + (volume.restrict (Set.Icc a b)).withDensity (fun x ↦ ENNReal.ofReal ‖deriv γ x‖) := by + have hinj : Set.InjOn γ (Set.Icc a b) := by + intro x hx y hy hxy + simpa only [hcoord x hx, hcoord y hy] using congrArg (fun p : (EuclideanSpace ℝ (Fin 2)) ↦ p + 0) hxy + have hfinite : Measure.hausdorffMeasure 1 (γ '' Set.Icc a b) ≠ ⊤ := by + rw [hausdorffMeasure_image_Icc_eq_ofReal_integral_norm_deriv hab hγ hinj] + exact ENNReal.ofReal_ne_top + let _ : IsFiniteMeasure ((Measure.hausdorffMeasure 1).restrict (γ '' Set.Icc a b)) := + (isFiniteMeasure_restrict).mpr hfinite + apply Measure.ext_of_Icc + intro c d _ + rw [map_firstCoordinate_restrict_curve_Icc γ a b c d hcoord, + withDensity_apply _ measurableSet_Icc, + Measure.restrict_restrict measurableSet_Icc] + have hinter : Set.Icc c d ∩ Set.Icc a b = Set.Icc (max a c) (min b d) := by + rw [Set.Icc_inter_Icc] + simp only [max_comm, min_comm] + rw [hinter] + by_cases hcd : max a c ≤ min b d + · have hsub : Set.Icc (max a c) (min b d) ⊆ Set.Icc a b := + Set.Icc_subset_Icc (le_max_left _ _) (min_le_left _ _) + rw [hausdorffMeasure_image_Icc_eq_ofReal_integral_norm_deriv hcd + (hγ.mono hsub) (hinj.mono hsub)] + rw [intervalIntegral.integral_of_le hcd, ← integral_Icc_eq_integral_Ioc] + exact ofReal_integral_eq_lintegral_ofReal + (IntegrableOn.mono_set (integrableOn_deriv_of_lipschitzOn hγ).norm hsub) + (Filter.Eventually.of_forall fun _ ↦ norm_nonneg _) + · rw [Set.Icc_eq_empty_of_lt (lt_of_not_ge hcd)] + simp + +/-- Weighted arclength formula for a planar Lipschitz graph on a compact interval. -/ +theorem integral_restrict_curve_eq_integral_norm_deriv_mul + {γ : ℝ → (EuclideanSpace ℝ (Fin 2))} {C : NNReal} {a b : ℝ} (hab : a ≤ b) + (hγ : LipschitzOnWith C γ (Set.Icc a b)) (hcoord : ∀ x ∈ Set.Icc a b, γ x 0 = x) + {φ : (EuclideanSpace ℝ (Fin 2)) → ℝ} (hφ : Measurable φ) : + (∫ p, φ p ∂(Measure.hausdorffMeasure 1).restrict (γ '' Set.Icc a b)) = + ∫ x in a..b, ‖deriv γ x‖ * φ (γ x) := by + let γc : ℝ → (EuclideanSpace ℝ (Fin 2)) := fun x ↦ γ (max a (min x b)) + have hc : Continuous γc := hγ.continuousOn.comp_continuous + (continuous_const.max (continuous_id.min continuous_const)) + (fun x ↦ ⟨le_max_left _ _, max_le hab (min_le_right _ _)⟩) + have hceq (x : ℝ) (hx : x ∈ Set.Icc a b) : γc x = γ x := by + simp only [γc, min_eq_left hx.2, max_eq_right hx.1] + have hm : Measurable (fun p : (EuclideanSpace ℝ (Fin 2)) ↦ p 0) := + (PiLp.proj (𝕜 := ℝ) 2 (fun _ : Fin 2 ↦ ℝ) 0).continuous.measurable + have hset : MeasurableSet (γ '' Set.Icc a b) := + (isCompact_Icc.image_of_continuousOn hγ.continuousOn).measurableSet + have heq : (fun p ↦ φ (γc (p 0))) =ᵐ[ + (Measure.hausdorffMeasure 1).restrict (γ '' Set.Icc a b)] φ := by + filter_upwards [ae_restrict_mem hset] with p hp + obtain ⟨x, hx, rfl⟩ := hp + rw [hcoord x hx, hceq x hx] + rw [← integral_congr_ae heq, + ← integral_map (μ := (Measure.hausdorffMeasure 1).restrict (γ '' Set.Icc a b)) + (f := fun x : ℝ ↦ φ (γc x)) hm.aemeasurable + (hφ.comp hc.measurable).aestronglyMeasurable, + map_firstCoordinate_restrict_curve_eq_withDensity hab hγ hcoord, + integral_withDensity_eq_integral_toReal_smul + (measurable_deriv γ |>.norm |>.ennreal_ofReal) + (Filter.Eventually.of_forall fun _ ↦ ENNReal.ofReal_lt_top)] + simp only [ENNReal.toReal_ofReal (norm_nonneg _), smul_eq_mul] + rw [intervalIntegral.integral_of_le hab, ← integral_Icc_eq_integral_Ioc] + apply setIntegral_congr_fun measurableSet_Icc + intro x hx + dsimp only + rw [hceq x hx] + +end MeasureTheory + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Hausdorff / Planar Graph +-/ + +@[expose] public section + +noncomputable section + +open Filter +open scoped ENNReal Topology + +namespace MeasureTheory + +private theorem lipschitzOnWith_planarGraph {g : ℝ → ℝ} {s : Set ℝ} {C : NNReal} + (hg : LipschitzOnWith C g s) : + LipschitzOnWith (C + 1) (fun x ↦ !₂[x, g x] : ℝ → EuclideanSpace ℝ (Fin 2)) s := by + rw [lipschitzOnWith_iff_dist_le_mul] + intro x hx y hy + have hgxy := hg.dist_le_mul x hx y hy + rw [dist_eq_norm, EuclideanSpace.norm_eq] + simp only [PiLp.sub_apply, Fin.sum_univ_two, Real.norm_eq_abs, pow_two] + have hxy : dist x y = |x - y| := Real.dist_eq x y + have hgy : |g x - g y| ≤ (C : ℝ) * |x - y| := by + simpa [Real.dist_eq] using hgxy + have hnonneg : 0 ≤ ((C : ℝ) + 1) * |x - y| := mul_nonneg (by positivity) (abs_nonneg _) + simp only [Matrix.cons_val_zero, Matrix.cons_val_one, NNReal.coe_add, NNReal.coe_one, + Real.dist_eq] + rw [Real.sqrt_le_iff] + constructor + · exact hnonneg + · have hsq := mul_self_le_mul_self (abs_nonneg (g x - g y)) hgy + nlinarith [sq_nonneg ((C : ℝ) * |x - y|), NNReal.coe_nonneg C] + +private theorem hausdorffMeasure_planarGraph_eq_zero {g : ℝ → ℝ} {s t : Set ℝ} + {C : NNReal} (hg : LipschitzOnWith C g s) (hts : t ⊆ s) (ht : volume t = 0) : + Measure.hausdorffMeasure 1 + ((fun x ↦ !₂[x, g x] : ℝ → EuclideanSpace ℝ (Fin 2)) '' t) = 0 := by + have hgraph := (lipschitzOnWith_planarGraph hg).mono hts + apply le_zero_iff.mp + calc + Measure.hausdorffMeasure 1 + ((fun x ↦ !₂[x, g x] : ℝ → EuclideanSpace ℝ (Fin 2)) '' t) ≤ + ((C + 1 : NNReal) : ENNReal) ^ (1 : ℝ) * Measure.hausdorffMeasure 1 t := + hgraph.hausdorffMeasure_image_le (by positivity) + _ = 0 := by rw [MeasureTheory.hausdorffMeasure_real, ht, mul_zero] + +private theorem hausdorffMeasure_planarGraph_nondifferentiableOn_Icc_eq_zero + {g : ℝ → ℝ} {a b : ℝ} {C : NNReal} + (hg : LipschitzOnWith C g (Set.Icc a b)) : + Measure.hausdorffMeasure 1 + ((fun x ↦ !₂[x, g x] : ℝ → EuclideanSpace ℝ (Fin 2)) '' + {x | x ∈ Set.Icc a b ∧ ¬ DifferentiableAt ℝ g x}) = 0 := by + apply hausdorffMeasure_planarGraph_eq_zero hg (by + intro x hx + exact hx.1) + rcases le_total a b with hab | hba + · rw [MeasureTheory.measure_eq_zero_iff_ae_notMem] + have hg' : LipschitzOnWith C g (Set.uIcc a b) := by + rwa [Set.uIcc_of_le hab] + have hBV := hg'.absolutelyContinuousOnInterval.boundedVariationOn + have hdiff := hBV.ae_differentiableAt_of_mem_uIcc + rw [Set.uIcc_of_le hab] at hdiff + filter_upwards [hdiff] with x hx hbad + exact hbad.2 (hx hbad.1) + · rcases hba.eq_or_lt with rfl | hba + · apply measure_mono_null (by aesop) (MeasureTheory.measure_singleton b) + · rw [Set.Icc_eq_empty (not_le_of_gt hba)] + simp + +private theorem hausdorffMeasure_planarGraph_nondifferentiableOn_Ioo_eq_zero + {g : ℝ → ℝ} {a b : ℝ} (hg : LocallyLipschitzOn (Set.Ioo a b) g) : + Measure.hausdorffMeasure 1 + ((fun x ↦ !₂[x, g x] : ℝ → EuclideanSpace ℝ (Fin 2)) '' + {x | x ∈ Set.Ioo a b ∧ ¬ DifferentiableAt ℝ g x}) = 0 := by + let s : ℕ → Set ℝ := fun n ↦ + Set.Icc (a + 1 / (n + 1 : ℝ)) (b - 1 / (n + 1 : ℝ)) + let bad : ℕ → Set ℝ := fun n ↦ {x | x ∈ s n ∧ ¬ DifferentiableAt ℝ g x} + have hs (n : ℕ) : s n ⊆ Set.Ioo a b := by + intro x hx + dsimp only [s] at hx + have hpos : 0 < 1 / (n + 1 : ℝ) := by positivity + exact ⟨lt_of_lt_of_le (lt_add_of_pos_right a hpos) hx.1, + lt_of_le_of_lt hx.2 (sub_lt_self b hpos)⟩ + have hzero (n : ℕ) : Measure.hausdorffMeasure 1 + ((fun x ↦ !₂[x, g x] : ℝ → EuclideanSpace ℝ (Fin 2)) '' bad n) = 0 := by + obtain ⟨C, hC⟩ := LocallyLipschitzOn.exists_lipschitzOnWith_of_compact + isCompact_Icc (hg.mono (hs n)) + exact hausdorffMeasure_planarGraph_nondifferentiableOn_Icc_eq_zero hC + apply measure_mono_null + (t := ⋃ n, (fun x ↦ !₂[x, g x] : ℝ → EuclideanSpace ℝ (Fin 2)) '' bad n) ?_ + (MeasureTheory.measure_iUnion_null hzero) + rintro p ⟨x, hx, rfl⟩ + have hδ : 0 < min (x - a) (b - x) := lt_min (sub_pos.mpr hx.1.1) (sub_pos.mpr hx.1.2) + obtain ⟨n, hn⟩ := exists_nat_one_div_lt hδ + rw [Set.mem_iUnion] + refine ⟨n, x, ?_, rfl⟩ + refine ⟨?_, hx.2⟩ + dsimp only [s] + constructor <;> linarith [lt_of_lt_of_le hn (min_le_left _ _), + lt_of_lt_of_le hn (min_le_right _ _)] + +/-- The graph image of the nondifferentiability set of a locally Lipschitz real +function has zero one-dimensional Hausdorff measure, in isometric coordinates. -/ +theorem hausdorffMeasure_coordinateGraph_nondifferentiable_eq_zero + {g : ℝ → ℝ} {a b : ℝ} (hg : LocallyLipschitzOn (Set.Ioo a b) g) + (o : EuclideanSpace ℝ (Fin 2)) + (e : EuclideanSpace ℝ (Fin 2) ≃ₗᵢ[ℝ] EuclideanSpace ℝ (Fin 2)) : + Measure.hausdorffMeasure 1 + ((fun x ↦ o + e.symm !₂[x, g x]) '' + {x | x ∈ Set.Ioo a b ∧ ¬ DifferentiableAt ℝ g x}) = 0 := by + let graph : ℝ → EuclideanSpace ℝ (Fin 2) := fun x ↦ !₂[x, g x] + let transform : EuclideanSpace ℝ (Fin 2) → EuclideanSpace ℝ (Fin 2) := + fun p ↦ o + e.symm p + have htransform : LipschitzWith 1 transform := by + apply LipschitzWith.of_dist_le_mul + intro p q + simp only [transform, NNReal.coe_one, one_mul, dist_add_left] + rw [e.symm.dist_map] + have hzero := hausdorffMeasure_planarGraph_nondifferentiableOn_Ioo_eq_zero hg + apply le_zero_iff.mp + rw [show (fun x ↦ o + e.symm !₂[x, g x]) '' + {x | x ∈ Set.Ioo a b ∧ ¬ DifferentiableAt ℝ g x} = + transform '' (graph '' {x | x ∈ Set.Ioo a b ∧ ¬ DifferentiableAt ℝ g x}) by + simp only [transform, graph, Set.image_image]] + calc + Measure.hausdorffMeasure 1 + (transform '' (graph '' {x | x ∈ Set.Ioo a b ∧ ¬ DifferentiableAt ℝ g x})) ≤ + ((1 : NNReal) : ENNReal) ^ (1 : ℝ) * Measure.hausdorffMeasure 1 + (graph '' {x | x ∈ Set.Ioo a b ∧ ¬ DifferentiableAt ℝ g x}) := + htransform.hausdorffMeasure_image_le (by positivity) _ + _ = 0 := by rw [hzero, mul_zero] + +private theorem norm_coordinateGraph_deriv (g : ℝ → ℝ) (x : ℝ) : + ‖(!₂[1, deriv g x] : EuclideanSpace ℝ (Fin 2))‖ = Real.sqrt (1 + (deriv g x) ^ 2) := by + rw [EuclideanSpace.norm_eq] + congr 1 + simp [Fin.sum_univ_two, Real.norm_eq_abs, pow_two] + +private theorem hasDerivAt_coordinateGraph {g : ℝ → ℝ} {x : ℝ} + (hg : DifferentiableAt ℝ g x) : + HasDerivAt (fun y ↦ !₂[y, g y] : ℝ → EuclideanSpace ℝ (Fin 2)) + !₂[1, deriv g x] x := by + let L := (PiLp.continuousLinearEquiv 2 ℝ (fun _ : Fin 2 ↦ ℝ)).symm.toContinuousLinearMap + have hpi : HasDerivAt (fun y i ↦ !₂[y, g y].ofLp i) + (fun i ↦ !₂[1, deriv g x].ofLp i) x := by + rw [hasDerivAt_pi] + intro i + fin_cases i + · exact hasDerivAt_id x + · exact hg.hasDerivAt + have hcomp := L.hasFDerivAt.comp x hpi + have hfun : (L ∘ fun y i ↦ !₂[y, g y].ofLp i) = + (fun y ↦ !₂[y, g y] : ℝ → EuclideanSpace ℝ (Fin 2)) := rfl + have hder : L.comp (ContinuousLinearMap.toSpanSingleton ℝ + (fun i ↦ !₂[1, deriv g x].ofLp i)) = + ContinuousLinearMap.toSpanSingleton ℝ + (!₂[1, deriv g x] : EuclideanSpace ℝ (Fin 2)) := by + apply ContinuousLinearMap.ext + intro r + rw [WithLp.ext_iff] + funext i + fin_cases i <;> simp [L, ContinuousLinearMap.comp_apply] + rw [hfun, hder] at hcomp + exact hcomp + +private theorem integral_restrict_planarGraph_eq_integral_sqrt_mul + {g : ℝ → ℝ} {C : NNReal} {a b : ℝ} (hab : a ≤ b) + (hg : LipschitzOnWith C g (Set.Icc a b)) + {φ : EuclideanSpace ℝ (Fin 2) → ℝ} (hφ : Measurable φ) : + (∫ p, φ p ∂(Measure.hausdorffMeasure 1).restrict + ((fun x ↦ !₂[x, g x] : ℝ → EuclideanSpace ℝ (Fin 2)) '' Set.Icc a b)) = + ∫ x in a..b, Real.sqrt (1 + (deriv g x) ^ 2) * φ !₂[x, g x] := by + let γ : ℝ → EuclideanSpace ℝ (Fin 2) := fun x ↦ !₂[x, g x] + rw [MeasureTheory.integral_restrict_curve_eq_integral_norm_deriv_mul hab + (lipschitzOnWith_planarGraph hg) (fun _ _ ↦ rfl) hφ] + apply intervalIntegral.integral_congr_ae + have hg' : LipschitzOnWith C g (Set.uIcc a b) := by + rw [Set.uIcc_of_le hab] + exact hg + have hdiff := hg'.absolutelyContinuousOnInterval.boundedVariationOn + |>.ae_differentiableAt_of_mem_uIcc + filter_upwards [hdiff] with x hx hxi + have hderiv := (hasDerivAt_coordinateGraph (hx ⟨le_of_lt hxi.1, hxi.2⟩)).deriv + rw [hderiv, norm_coordinateGraph_deriv] + +/-- Weighted Hausdorff integration over an isometric planar graph equals the +parameter integral weighted by its almost-everywhere speed. -/ +theorem integral_restrict_coordinateGraph_eq_integral_sqrt_mul + {g : ℝ → ℝ} {C : NNReal} {a b : ℝ} (hab : a ≤ b) + (hg : LipschitzOnWith C g (Set.Icc a b)) (o : EuclideanSpace ℝ (Fin 2)) + (e : EuclideanSpace ℝ (Fin 2) ≃ₗᵢ[ℝ] EuclideanSpace ℝ (Fin 2)) + {φ : EuclideanSpace ℝ (Fin 2) → ℝ} (hφ : Measurable φ) : + (∫ p, φ p ∂(Measure.hausdorffMeasure 1).restrict + ((fun x ↦ o + e.symm !₂[x, g x] : ℝ → EuclideanSpace ℝ (Fin 2)) '' Set.Icc a b)) = + ∫ x in a..b, Real.sqrt (1 + (deriv g x) ^ 2) * φ (o + e.symm !₂[x, g x]) := by + let F : EuclideanSpace ℝ (Fin 2) ≃ᵢ EuclideanSpace ℝ (Fin 2) := + e.symm.toIsometryEquiv.trans + (AffineIsometryEquiv.vaddConst (V := EuclideanSpace ℝ (Fin 2)) + (P := EuclideanSpace ℝ (Fin 2)) ℝ o).toIsometryEquiv + let γ : ℝ → EuclideanSpace ℝ (Fin 2) := fun x ↦ !₂[x, g x] + have hF : ∀ p, F p = o + e.symm p := by + intro p + simp [F, add_comm] + rw [show (fun x ↦ o + e.symm !₂[x, g x] : ℝ → EuclideanSpace ℝ (Fin 2)) '' Set.Icc a b = + F '' (γ '' Set.Icc a b) by + rw [Set.image_image] + congr 1 + funext x + exact (hF _).symm] + rw [(F.measurePreserving_hausdorffMeasure 1).setIntegral_image_emb + F.toHomeomorph.measurableEmbedding φ (γ '' Set.Icc a b)] + have hbase := integral_restrict_planarGraph_eq_integral_sqrt_mul hab hg + (hφ.comp F.continuous.measurable) + simpa only [γ, Function.comp_apply, hF] using hbase + +end MeasureTheory + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Integral / Atomic Bounds +-/ + +@[expose] public section + +noncomputable section + +namespace MeasureTheory + +/-- A finite sum of atomic contributions is bounded by the integral of a nonnegative function. -/ +theorem sum_measureReal_mul_le_setIntegral {α : Type*} [MeasurableSpace α] + [MeasurableSingletonClass α] (μ : MeasureTheory.Measure α) (D : Finset α) + {E : Set α} {f : α → ℝ} (hE : MeasurableSet E) + (hDE : (D : Set α) ⊆ E) (hf : MeasureTheory.IntegrableOn f E μ) + (hnonneg : ∀ x ∈ E, 0 ≤ f x) : + ∑ x ∈ D, (μ {x}).toReal * f x ≤ ∫ x in E, f x ∂μ := by + have hfinite := MeasureTheory.setIntegral_finset D (hf.mono_set hDE) + simp only [smul_eq_mul, MeasureTheory.measureReal_def] at hfinite + rw [← hfinite] + apply MeasureTheory.setIntegral_mono_set hf + · exact (MeasureTheory.ae_restrict_iff' hE).mpr (Filter.Eventually.of_forall hnonneg) + · exact Filter.Eventually.of_forall hDE + +end MeasureTheory + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Integral / Interval Exhaustion +-/ + +@[expose] public section + +noncomputable section + +open Filter +open scoped Topology + +namespace MeasureTheory + +/-- Every interior point eventually belongs to the standard inner exhaustion of an interval. -/ +theorem eventually_mem_innerIcc_of_mem_Ioo {a b x : ℝ} + (hx : x ∈ Set.Ioo a b) : + ∀ᶠ n : ℕ in atTop, + x ∈ Set.Icc (a + 1 / ((n : ℝ) + 1)) (b - 1 / ((n : ℝ) + 1)) := by + have hleft := (tendsto_one_div_add_atTop_nhds_zero_nat (𝕜 := ℝ)).eventually + (Iio_mem_nhds (sub_pos.mpr hx.1)) + have hright := (tendsto_one_div_add_atTop_nhds_zero_nat (𝕜 := ℝ)).eventually + (Iio_mem_nhds (sub_pos.mpr hx.2)) + exact (hleft.and hright).mono fun n hn ↦ by + constructor <;> linarith [hn.1, hn.2] + +/-- Each interval in the standard inner exhaustion lies in the open interval. -/ +theorem innerIcc_subset_Ioo (a b : ℝ) (n : ℕ) : + Set.Icc (a + 1 / ((n : ℝ) + 1)) (b - 1 / ((n : ℝ) + 1)) ⊆ + Set.Ioo a b := by + intro x hx + have hn : 0 < 1 / ((n : ℝ) + 1) := by positivity + constructor <;> linarith [hx.1, hx.2] + +/-- Integrals over compact intervals exhausting the interior converge to the +integral over the full compact interval. -/ +theorem tendsto_integral_innerIcc + {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] + {f : ℝ → E} {a b : ℝ} (hf : Integrable f (volume.restrict (Set.Icc a b))) : + Tendsto (fun n : ℕ ↦ ∫ x in Set.Icc (a + 1 / ((n : ℝ) + 1)) + (b - 1 / ((n : ℝ) + 1)), f x) + atTop (nhds (∫ x in Set.Icc a b, f x)) := by + let t := Set.Icc a b + let s : ℕ → Set ℝ := fun n ↦ + Set.Icc (a + 1 / ((n : ℝ) + 1)) (b - 1 / ((n : ℝ) + 1)) + have hs (n : ℕ) : MeasurableSet (s n) := measurableSet_Icc + have hft : Integrable (t.indicator f) volume := + IntegrableOn.integrable_indicator hf measurableSet_Icc + have hmeas (n : ℕ) : AEStronglyMeasurable ((s n).indicator f) volume := by + apply (hft.1.indicator (hs n)).congr + filter_upwards [] with x + by_cases hx : x ∈ s n + · have hxi := innerIcc_subset_Ioo a b n hx + have hxt : x ∈ t := ⟨hxi.1.le, hxi.2.le⟩ + simp [Set.indicator, hx, hxt] + · simp [Set.indicator, hx] + have hbound (n : ℕ) : ∀ᵐ x ∂volume, + ‖(s n).indicator f x‖ ≤ ‖t.indicator f x‖ := + Filter.Eventually.of_forall fun x ↦ by + by_cases hx : x ∈ s n + · have hxi := innerIcc_subset_Ioo a b n hx + have hxt : x ∈ t := ⟨hxi.1.le, hxi.2.le⟩ + simp [Set.indicator, hx, hxt] + · simp only [Set.indicator, hx, ↓reduceIte, norm_zero] + exact norm_nonneg _ + have hIooVolume : Set.Ioo a b =ᵐ[volume] Set.Icc a b := Ioo_ae_eq_Icc + have hlim : ∀ᵐ x ∂volume, Tendsto (fun n ↦ (s n).indicator f x) + atTop (nhds (t.indicator f x)) := by + filter_upwards [hIooVolume] with x hxeq + by_cases hx : x ∈ Set.Ioo a b + · have hev := eventually_mem_innerIcc_of_mem_Ioo hx + apply tendsto_const_nhds.congr' + exact hev.mono fun n hn ↦ + (Set.indicator_of_mem (hxeq.mp hx) f).trans + (Set.indicator_of_mem hn f).symm + · have hxt : x ∉ t := fun h ↦ hx (hxeq.mpr h) + apply tendsto_const_nhds.congr' + filter_upwards [] with n + have hxn : x ∉ s n := fun h ↦ by + have hxi := innerIcc_subset_Ioo a b n h + exact hxt ⟨hxi.1.le, hxi.2.le⟩ + simp only [Set.indicator, hxn, hxt, ↓reduceIte] + have ht := tendsto_integral_of_dominated_convergence (μ := volume) + (fun x ↦ ‖t.indicator f x‖) hmeas hft.norm hbound hlim + simpa only [s, t, integral_indicator, hs, measurableSet_Icc] using ht + +end MeasureTheory + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Integral / Moving Intervals +-/ + +@[expose] public section + +noncomputable section + +open Filter Set +open scoped Topology + +namespace MeasureTheory + +/-- Moving interval cutoffs preserve almost-everywhere convergence on the limiting interior. -/ +theorem ae_tendsto_indicator_Icc_of_tendsto_endpoints + {E : Type*} [NormedAddCommGroup E] {a b : ℕ → ℝ} {c d : ℝ} + {f : ℕ → ℝ → E} {g : ℝ → E} + (ha : Tendsto a atTop (𝓝 c)) (hb : Tendsto b atTop (𝓝 d)) + (hf : ∀ᵐ x ∂volume, x ∈ Ioo c d → Tendsto (fun n ↦ f n x) atTop (𝓝 (g x))) : + ∀ᵐ x ∂volume, Tendsto (fun n ↦ (Icc (a n) (b n)).indicator (f n) x) + atTop (𝓝 ((Icc c d).indicator g x)) := by + have hne (y : ℝ) : ∀ᵐ x ∂volume, x ≠ y := by + simpa using (measure_eq_zero_iff_ae_notMem.mp (measure_singleton y : + volume ({y} : Set ℝ) = 0)) + filter_upwards [hf, hne c, hne d] with x hx hxc hxd + by_cases hmem : x ∈ Icc c d + · have hxi : x ∈ Ioo c d := + ⟨lt_of_le_of_ne hmem.1 (Ne.symm hxc), lt_of_le_of_ne hmem.2 hxd⟩ + rw [indicator_of_mem hmem] + apply (hx hxi).congr' + filter_upwards [ha.eventually (gt_mem_nhds hxi.1), + hb.eventually (lt_mem_nhds hxi.2)] with n hn hn' + exact (indicator_of_mem (show x ∈ Icc (a n) (b n) from ⟨hn.le, hn'.le⟩) _).symm + · rw [indicator_of_notMem hmem] + apply tendsto_const_nhds.congr' + have hout : x < c ∨ d < x := by + simpa only [mem_Icc, not_and_or, not_le] using hmem + rcases hout with hleft | hright + · filter_upwards [ha.eventually (lt_mem_nhds hleft)] with n hn + exact (indicator_of_notMem (show x ∉ Icc (a n) (b n) from + fun h ↦ (not_le.mpr hn) h.1) _).symm + · filter_upwards [hb.eventually (gt_mem_nhds hright)] with n hn + exact (indicator_of_notMem (show x ∉ Icc (a n) (b n) from + fun h ↦ (not_le.mpr hn) h.2) _).symm + +/-- Dominated convergence on intervals whose endpoints converge, using convergence +only in the interior of the limiting interval. -/ +theorem tendsto_integral_Icc_of_tendsto_endpoints + {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] + {a b : ℕ → ℝ} {c d : ℝ} {f : ℕ → ℝ → E} {g : ℝ → E} {bound : ℝ → ℝ} + (ha : Tendsto a atTop (𝓝 c)) (hb : Tendsto b atTop (𝓝 d)) + (hmeas : ∀ᶠ n in atTop, AEStronglyMeasurable (f n) (volume.restrict (Icc (a n) (b n)))) + (hbound : Integrable bound) (hbound_nonneg : ∀ᵐ x ∂volume, 0 ≤ bound x) + (hdom : ∀ᶠ n in atTop, ∀ᵐ x ∂volume, x ∈ Icc (a n) (b n) → ‖f n x‖ ≤ bound x) + (hf : ∀ᵐ x ∂volume, x ∈ Ioo c d → Tendsto (fun n ↦ f n x) atTop (𝓝 (g x))) : + Tendsto (fun n ↦ ∫ x in Icc (a n) (b n), f n x) atTop + (𝓝 (∫ x in Icc c d, g x)) := by + have hm : ∀ᶠ n in atTop, + AEStronglyMeasurable ((Icc (a n) (b n)).indicator (f n)) volume := by + filter_upwards [hmeas] with n hn + exact (aestronglyMeasurable_indicator_iff measurableSet_Icc).mpr hn + have hd : ∀ᶠ n in atTop, ∀ᵐ x ∂volume, + ‖(Icc (a n) (b n)).indicator (f n) x‖ ≤ bound x := by + filter_upwards [hdom] with n hn + filter_upwards [hn, hbound_nonneg] with x hx hnonneg + by_cases hmem : x ∈ Icc (a n) (b n) + · simpa only [indicator_of_mem hmem] using hx hmem + · simpa only [indicator_of_notMem hmem, norm_zero] using hnonneg + have h := tendsto_integral_filter_of_dominated_convergence bound hm hd hbound + (ae_tendsto_indicator_Icc_of_tendsto_endpoints ha hb hf) + simpa only [integral_indicator measurableSet_Icc] using h + +/-- A uniform bound on moving finite intervals suffices for dominated convergence. -/ +theorem tendsto_integral_Icc_of_tendsto_endpoints_of_bound + {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] + {a b : ℕ → ℝ} {c d M : ℝ} {f : ℕ → ℝ → E} {g : ℝ → E} + (ha : Tendsto a atTop (𝓝 c)) (hb : Tendsto b atTop (𝓝 d)) + (hmeas : ∀ᶠ n in atTop, AEStronglyMeasurable (f n) (volume.restrict (Icc (a n) (b n)))) + (hM : 0 ≤ M) + (hdom : ∀ᶠ n in atTop, ∀ᵐ x ∂volume, x ∈ Icc (a n) (b n) → ‖f n x‖ ≤ M) + (hf : ∀ᵐ x ∂volume, x ∈ Ioo c d → Tendsto (fun n ↦ f n x) atTop (𝓝 (g x))) : + Tendsto (fun n ↦ ∫ x in Icc (a n) (b n), f n x) atTop + (𝓝 (∫ x in Icc c d, g x)) := by + let s := Icc (c - 1) (d + 1) + have hs : MeasurableSet s := measurableSet_Icc + have hi : Integrable (s.indicator (fun _ : ℝ ↦ M)) volume := by + apply IntegrableOn.integrable_indicator _ hs + exact integrableOn_const isCompact_Icc.measure_lt_top.ne + apply tendsto_integral_Icc_of_tendsto_endpoints ha hb hmeas hi + · exact Eventually.of_forall fun x ↦ by + by_cases hx : x ∈ s <;> simp [indicator, hx, hM] + · filter_upwards [hdom, ha.eventually (lt_mem_nhds (show c - 1 < c by linarith)), + hb.eventually (gt_mem_nhds (show d < d + 1 by linarith))] with n hn hna hnb + filter_upwards [hn] with x hx + intro hmem + have hxs : x ∈ s := ⟨hna.le.trans hmem.1, hmem.2.trans hnb.le⟩ + simpa only [indicator_of_mem hxs] using hx hmem + · exact hf + +end MeasureTheory + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Integral / Translation +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped ENNReal Topology + +namespace MeasureTheory + +/-- Translation of a measurable real set preserves integrals. -/ +theorem integral_image_add_right_eq (c : ℝ) (E : Set ℝ) (hE : MeasurableSet E) + (f : ℝ → ℝ) : + (∫ y in (fun x : ℝ ↦ x + c) '' E, f y) = ∫ x in E, f (x + c) := by + let φ : ℝ → ℝ := fun x ↦ x + c + have hφ : MeasurableEmbedding φ := + (Homeomorph.addRight c).isClosedEmbedding.measurableEmbedding + have hpres : MeasurePreserving φ volume volume := + ⟨hφ.measurable, map_add_right_eq_self volume c⟩ + have himage : MeasurableSet (φ '' E) := hφ.measurableSet_image' hE + have hpre : φ ⁻¹' (φ '' E) = E := Set.preimage_image_eq E hφ.injective + have hr := hpres.restrict_preimage himage + rw [hpre] at hr + exact (hr.integral_comp hφ f).symm + +/-- Translating both endpoints of a closed real interval translates the integrand. -/ +theorem integral_Icc_const_add_eq (c a b : ℝ) (f : ℝ → ℝ) : + (∫ y in Icc (c + a) (c + b), f y) = ∫ x in Icc a b, f (x + c) := by + rw [show c + a = a + c from add_comm c a, show c + b = b + c from add_comm c b, + ← Set.image_add_const_Icc, integral_image_add_right_eq c _ measurableSet_Icc] + +/-- Integrability on a translated measurable set is preserved by translation. -/ +theorem integrableOn_comp_add_right_iff (c : ℝ) (E : Set ℝ) (hE : MeasurableSet E) + (f : ℝ → ℝ) : + IntegrableOn (fun x ↦ f (x + c)) E ↔ + IntegrableOn f ((fun x : ℝ ↦ x + c) '' E) := by + let φ : ℝ → ℝ := fun x ↦ x + c + have hφ : MeasurableEmbedding φ := + (Homeomorph.addRight c).isClosedEmbedding.measurableEmbedding + have hpres : MeasurePreserving φ volume volume := + ⟨hφ.measurable, map_add_right_eq_self volume c⟩ + have himage : MeasurableSet (φ '' E) := hφ.measurableSet_image' hE + have hpre : φ ⁻¹' (φ '' E) = E := Set.preimage_image_eq E hφ.injective + have hr := hpres.restrict_preimage himage + rw [hpre] at hr + exact hr.integrable_comp_emb hφ + +/-- A lower Lebesgue integral of a right-translated function is the integral of the function +itself over the translated set. -/ +theorem setLIntegral_comp_sub_right (w : ℝ → ℝ≥0∞) (c : ℝ) (A : Set ℝ) : + ∫⁻ u in A, w (u - c) = ∫⁻ t in (fun t : ℝ ↦ t + c) ⁻¹' A, w t := by + have hemb : MeasurableEmbedding fun t : ℝ ↦ t + c := + (MeasurableEquiv.addRight c).measurableEmbedding + simpa using ((measurePreserving_add_right (volume : Measure ℝ) c).setLIntegral_comp_preimage_emb + hemb (fun u ↦ w (u - c)) A).symm + +/-- Pushing a weighted restriction of Lebesgue measure forward along `t ↦ t + c` translates both +the set and the weight. -/ +theorem map_add_right_restrict_withDensity (c : ℝ) (S : Set ℝ) (w : ℝ → ℝ≥0∞) : + Measure.map (fun t : ℝ ↦ t + c) ((volume.restrict S).withDensity w) = + (volume.restrict ((fun t : ℝ ↦ t + c) '' S)).withDensity (fun u ↦ w (u - c)) := by + have hemb : MeasurableEmbedding fun t : ℝ ↦ t + c := + (MeasurableEquiv.addRight c).measurableEmbedding + ext A hA + have hpre : MeasurableSet ((fun t : ℝ ↦ t + c) ⁻¹' A) := hA.preimage hemb.measurable + rw [Measure.map_apply hemb.measurable hA, withDensity_apply _ hpre, + Measure.restrict_restrict hpre, withDensity_apply _ hA, Measure.restrict_restrict hA, + setLIntegral_comp_sub_right, Set.preimage_inter, hemb.injective.preimage_image] + +end MeasureTheory + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Measure / Atoms +-/ + +@[expose] public section + +noncomputable section + +open Set + +namespace MeasureTheory + +/-- A membership that fails only on a countable set holds almost everywhere on the restriction +of a measure with null singletons. -/ +theorem ae_restrict_mem_of_countable_diff {α : Type*} [MeasurableSpace α] {μ : Measure α} + [NullSingletonClass μ] {S A N : Set α} (hS : MeasurableSet S) (hN : N.Countable) + (hsub : S \ A ⊆ N) : ∀ᵐ x ∂μ.restrict S, x ∈ A := by + rw [ae_iff, Measure.restrict_apply' hS] + exact measure_mono_null (fun x hx ↦ hsub ⟨hx.2, hx.1⟩) (hN.measure_zero μ) + +/-- Along an injective parametrization, a finite-measure atom occurs only almost nowhere. -/ +theorem ae_measure_singleton_comp_eq_zero_of_injOn + {X : Type*} [MeasurableSpace X] [MeasurableSingletonClass X] + (μ : Measure X) [SFinite μ] {s : Set ℝ} (hs : MeasurableSet s) + {f : ℝ → X} (hf : Set.InjOn f s) : + ∀ᵐ t ∂volume.restrict s, μ {f t} = 0 := by + let A : Set X := {x | 0 < μ {x}} + have hA : A.Countable := μ.countable_meas_level_set_pos measurable_id + let B : Set ℝ := {t | t ∈ s ∧ f t ∈ A} + have hmaps : MapsTo f B A := fun _ h ↦ h.2 + have hB : B.Countable := hmaps.countable_of_injOn (hf.mono fun _ h ↦ h.1) hA + filter_upwards [ae_restrict_mem hs, hB.ae_notMem (volume.restrict s)] with t hts htB + by_contra hne + exact htB ⟨hts, pos_iff_ne_zero.mpr hne⟩ + +/-- A measure carried by a finite set is the sum of its atomic contributions. -/ +theorem measure_eq_sum_singleton_inter_of_compl_eq_zero + {α : Type*} [MeasurableSpace α] [MeasurableSingletonClass α] + (μ : Measure α) (S : Finset α) (hS : μ (S : Set α)ᶜ = 0) + (E : Set α) (hE : MeasurableSet E) : + μ E = ∑ x ∈ S, μ ({x} ∩ E) := by + classical + have hae : ∀ᵐ x ∂μ, x ∈ (S : Set α) := by + rw [ae_iff] + exact hS + have hrestrict : μ.restrict (S : Set α) = μ := + Measure.restrict_eq_self_of_ae_mem hae + have hinter : μ E = μ (E ∩ (S : Set α)) := by + calc + μ E = (μ.restrict (S : Set α)) E := by rw [hrestrict] + _ = μ (E ∩ (S : Set α)) := Measure.restrict_apply hE + rw [hinter] + have heq : E ∩ (S : Set α) = ⋃ x ∈ S, ({x} ∩ E : Set α) := by + ext x + simp [and_comm] + rw [heq, measure_biUnion_finset] + · intro i _ j _ hij + simp only [Set.disjoint_left] + intro x hxi hxj + exact hij (hxi.1.symm.trans hxj.1) + · intro b _ + exact (measurableSet_singleton b).inter hE + +/-- A measure carried by the image of a finite index set is bounded by the sum of atomic bounds +over any index subset containing every index whose atom meets the measured set. -/ +theorem measure_le_sum_of_measure_compl_image_eq_zero + {α ι : Type*} [MeasurableSpace α] [MeasurableSingletonClass α] + (μ : Measure α) (S S' : Finset ι) (f : ι → α) (b : ι → ENNReal) + (hf : Set.InjOn f (S : Set ι)) (hS : μ (f '' (S : Set ι))ᶜ = 0) + (hb : ∀ i ∈ S, μ {f i} ≤ b i) (E : Set α) (hE : MeasurableSet E) + (hactive : ∀ i ∈ S, f i ∈ E → i ∈ S') : + μ E ≤ ∑ i ∈ S', b i := by + classical + have himage : ((S.image f : Finset α) : Set α) = f '' (S : Set ι) := by + ext x + simp + rw [measure_eq_sum_singleton_inter_of_compl_eq_zero μ (S.image f) + (by rw [himage]; exact hS) E hE] + calc + ∑ x ∈ S.image f, μ ({x} ∩ E) = ∑ i ∈ S, μ ({f i} ∩ E) := + Finset.sum_image fun i hi j hj h ↦ hf (Finset.mem_coe.2 hi) (Finset.mem_coe.2 hj) h + _ ≤ ∑ i ∈ S, (if f i ∈ E then b i else 0) := by + refine Finset.sum_le_sum fun i hi ↦ ?_ + by_cases hfi : f i ∈ E + · have hinter : ({f i} : Set α) ∩ E = {f i} := by + ext y + simp [hfi] + simp only [hinter, hfi, ite_true] + exact hb i hi + · have hinter : ({f i} : Set α) ∩ E = ∅ := by + ext y + simp [hfi] + simp [hinter, hfi] + _ = ∑ i ∈ S.filter (fun i ↦ f i ∈ E), b i := (Finset.sum_filter _ _).symm + _ ≤ ∑ i ∈ S', b i := by + refine Finset.sum_le_sum_of_subset fun i hi ↦ ?_ + obtain ⟨hiS, hiE⟩ := Finset.mem_filter.1 hi + exact hactive i hiS hiE + +/-! ### Almost every point of a half-open interval is interior -/ + +/-- Almost every point of a half-open interval, for a measure with null singletons, lies in the +corresponding open interval. -/ +theorem ae_restrict_Ico_mem_Ioo {μ : Measure ℝ} [NullSingletonClass μ] (a b : ℝ) : + ∀ᵐ t ∂μ.restrict (Ico a b), t ∈ Ioo a b := + ae_restrict_mem_of_countable_diff measurableSet_Ico (countable_singleton a) + fun _ ⟨hx, hx'⟩ ↦ mem_singleton_iff.2 (le_antisymm (not_lt.1 fun h ↦ hx' ⟨h, hx.2⟩) hx.1) + +/-- Almost every point of a half-open interval, for a measure with null singletons, lies in the +corresponding open interval. -/ +theorem ae_restrict_Ioc_mem_Ioo {μ : Measure ℝ} [NullSingletonClass μ] (a b : ℝ) : + ∀ᵐ t ∂μ.restrict (Ioc a b), t ∈ Ioo a b := + ae_restrict_mem_of_countable_diff measurableSet_Ioc (countable_singleton b) + fun _ ⟨hx, hx'⟩ ↦ mem_singleton_iff.2 (le_antisymm hx.2 (not_lt.1 fun h ↦ hx' ⟨hx.1, h⟩)) + +/-- Almost every point of a half-open interval, for a measure with null singletons, lies in one +of the two open intervals cut out by an arbitrary intermediate point. -/ +theorem ae_restrict_Ico_mem_Ioo_union_Ioo {μ : Measure ℝ} [NullSingletonClass μ] (a b c : ℝ) : + ∀ᵐ t ∂μ.restrict (Ico a c), t ∈ Ioo a b ∪ Ioo b c := by + refine ae_restrict_mem_of_countable_diff measurableSet_Ico + ((countable_singleton b).insert a) ?_ + rintro x ⟨hx, hx'⟩ + rcases lt_trichotomy x b with h | h | h + · exact Or.inl (le_antisymm (not_lt.1 fun hlt ↦ hx' (Or.inl ⟨hlt, h⟩)) hx.1) + · exact Or.inr (mem_singleton_iff.2 h) + · exact absurd (Or.inr ⟨h, hx.2⟩) hx' + +/-- Almost every point of a half-open interval, for a measure with null singletons, lies in one +of the two open intervals cut out by an arbitrary intermediate point. -/ +theorem ae_restrict_Ioc_mem_Ioo_union_Ioo {μ : Measure ℝ} [NullSingletonClass μ] (a b c : ℝ) : + ∀ᵐ t ∂μ.restrict (Ioc a c), t ∈ Ioo a b ∪ Ioo b c := by + refine ae_restrict_mem_of_countable_diff measurableSet_Ioc + ((countable_singleton c).insert b) ?_ + rintro x ⟨hx, hx'⟩ + rcases lt_trichotomy x b with h | h | h + · exact absurd (Or.inl ⟨hx.1, h⟩) hx' + · exact Or.inl h + · exact Or.inr (mem_singleton_iff.2 + (le_antisymm hx.2 (not_lt.1 fun hlt ↦ hx' (Or.inr ⟨h, hlt⟩)))) + +end MeasureTheory + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Haar-null lines and inner-product level sets + +Lines and hyperplanes of a finite-dimensional real normed space carry no additive Haar mass. +This file records the two convenient forms used when a planar region is exhausted by triangles +up to the rays through finitely many vertices. +-/ + +@[expose] public section + +open MeasureTheory +open scoped Pointwise + +variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] + +/-- A line through the origin is a proper subspace once the ambient dimension exceeds one. -/ +theorem Submodule.span_singleton_ne_top (h : 1 < Module.finrank ℝ E) (v : E) : + (ℝ ∙ v) ≠ ⊤ := by + rcases eq_or_ne v 0 with rfl | hv + · have : Nontrivial E := Module.nontrivial_of_finrank_pos (R := ℝ) (M := E) (by omega) + rw [Submodule.span_zero_singleton] + exact bot_ne_top + · intro htop + have hfin : Module.finrank ℝ E = 1 := (finrank_eq_one_iff_of_nonzero v hv).2 htop + omega + +variable [MeasurableSpace E] [BorelSpace E] [FiniteDimensional ℝ E] + +/-- Any line in a space of dimension at least two is null for an additive Haar measure. -/ +theorem MeasureTheory.Measure.addHaar_vadd_span_singleton (μ : Measure E) + [μ.IsAddHaarMeasure] (h : 1 < Module.finrank ℝ E) (o v : E) : + μ (o +ᵥ (ℝ ∙ v : Set E)) = 0 := by + rw [measure_vadd] + exact μ.addHaar_submodule _ (Submodule.span_singleton_ne_top h v) + +/-- A countable union of lines through a common point is null. -/ +theorem MeasureTheory.Measure.addHaar_iUnion_vadd_span_singleton {ι : Type*} [Countable ι] + (μ : Measure E) [μ.IsAddHaarMeasure] (h : 1 < Module.finrank ℝ E) (o : E) (v : ι → E) : + μ (⋃ i, o +ᵥ (ℝ ∙ v i : Set E)) = 0 := + measure_iUnion_null fun i ↦ μ.addHaar_vadd_span_singleton h o (v i) + +/-- A level set of a nonzero inner-product functional is null for an additive Haar measure. -/ +theorem MeasureTheory.Measure.addHaar_setOf_real_inner_eq {F : Type*} [NormedAddCommGroup F] + [InnerProductSpace ℝ F] [MeasurableSpace F] [BorelSpace F] [FiniteDimensional ℝ F] + (μ : Measure F) [μ.IsAddHaarMeasure] {u : F} (hu : u ≠ 0) (c : ℝ) : + μ {p : F | inner ℝ p u = c} = 0 := by + have hu2 : (0 : ℝ) < ‖u‖ ^ 2 := by positivity + set f : F →ᵃ[ℝ] ℝ := (innerSL ℝ u).toLinearMap.toAffineMap with hf + set A := (AffineSubspace.mk' c (⊥ : Submodule ℝ ℝ)).comap f with hA + have hAset : (A : Set F) = {p : F | inner ℝ p u = c} := by + ext p + simp [hA, hf, AffineSubspace.mem_mk', real_inner_comm, sub_eq_zero] + rw [← hAset] + refine μ.addHaar_affineSubspace _ fun htop ↦ ?_ + have hp : ((c + ‖u‖ ^ 2) / ‖u‖ ^ 2) • u ∈ A := by rw [htop]; trivial + rw [← SetLike.mem_coe, hAset, Set.mem_ofPred_eq] at hp + have : inner ℝ (((c + ‖u‖ ^ 2) / ‖u‖ ^ 2) • u) u = c + ‖u‖ ^ 2 := by + rw [real_inner_smul_left, real_inner_self_eq_norm_sq] + field_simp + rw [this] at hp + linarith + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Measure / Map +-/ + +@[expose] public section + +namespace MeasureTheory.Measure + +variable {α β : Type*} [MeasurableSpace α] [MeasurableSpace β] {μ : Measure α} + +/-- If `g` is almost everywhere a left inverse of `f`, then pushing a measure forward along `f` +and then along `g` recovers it. This is the almost-everywhere form of +`MeasurableEquiv.map_symm_map`. -/ +theorem map_map_of_ae_leftInverse {f : α → β} (hf : Measurable f) {g : β → α} + (hg : Measurable g) (h : ∀ᵐ a ∂μ, g (f a) = a) : + (μ.map f).map g = μ := by + rw [map_map hg hf, show μ.map (g ∘ f) = μ.map id from map_congr h, map_id] + +end MeasureTheory.Measure + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Measure / With Density +-/ + +@[expose] public section + +open Set +open scoped ENNReal + +namespace MeasureTheory.Measure + +/-- An injective image of a weighted restriction preserves null singleton masses. -/ +theorem map_restrict_withDensity_singleton {α β : Type*} + [MeasurableSpace α] [MeasurableSpace β] [MeasurableSingletonClass β] + (μ : Measure α) [NullSingletonClass μ] (f : α → β) (hf : Measurable f) + (s : Set α) (hinj : Set.InjOn f s) (w : α → ℝ≥0∞) {x : α} (hx : x ∈ s) : + Measure.map f ((μ.restrict s).withDensity w) {f x} = 0 := by + rw [Measure.map_apply hf (measurableSet_singleton _)] + apply withDensity_absolutelyContinuous + rw [Measure.restrict_apply (hf (measurableSet_singleton _))] + have heq : f ⁻¹' {f x} ∩ s = {x} := by + ext y + simp only [mem_inter_iff, mem_preimage, mem_singleton_iff] + exact ⟨fun h ↦ hinj h.2 hx h.1, fun h ↦ by subst y; exact ⟨rfl, hx⟩⟩ + rw [heq, measure_singleton] + +/-- Pushing a weighted measure forward along a measurable map is linear in the weight: if `w` is +the pointwise combination `a * w₁ + b * w₂`, then the pushforward of `μ.withDensity w` is the +same combination of the pushforwards of `μ.withDensity w₁` and `μ.withDensity w₂`. -/ +theorem map_withDensity_eq_smul_add_smul {α β : Type*} [MeasurableSpace α] [MeasurableSpace β] + (μ : Measure α) {φ : α → β} (hφ : Measurable φ) (a b : ℝ≥0∞) {w w₁ w₂ : α → ℝ≥0∞} + (h₁ : Measurable w₁) (h₂ : Measurable w₂) (hw : ∀ x, w x = a * w₁ x + b * w₂ x) : + Measure.map φ (μ.withDensity w) = + a • Measure.map φ (μ.withDensity w₁) + b • Measure.map φ (μ.withDensity w₂) := by + have hwfun : w = a • w₁ + b • w₂ := funext hw + rw [hwfun, withDensity_add_left (h₁.const_smul a), withDensity_smul _ h₁, + withDensity_smul _ h₂, Measure.map_add _ _ hφ, Measure.map_smul _ hφ.aemeasurable, + Measure.map_smul _ hφ.aemeasurable] + +end MeasureTheory.Measure + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Region Between +-/ + +@[expose] public section + +open EuclideanSpace MeasureTheory Set + +theorem volume_setOf_mem_Icc_eq_volume_regionBetween {f g : ℝ → ℝ} {s : Set ℝ} + (hf : Measurable f) (hg : Measurable g) (hs : MeasurableSet s) : + volume {p : ℝ × ℝ | p.1 ∈ s ∧ p.2 ∈ Icc (f p.1) (g p.1)} = + volume (regionBetween f g s) := by + change (volume.prod volume) _ = (volume.prod volume) _ + rw [Measure.prod_apply (measurableSet_region_between_cc hf hg hs), + Measure.prod_apply (measurableSet_regionBetween hf hg hs)] + apply lintegral_congr + intro x + by_cases hx : x ∈ s + · simp only [regionBetween, Set.preimage_ofPred_eq, hx, true_and] + change volume (Icc (f x) (g x)) = volume (Ioo (f x) (g x)) + rw [Real.volume_Icc, Real.volume_Ioo] + · simp [regionBetween, hx] + +theorem volume_regionBetween_triangle {b h : ℝ} (hb : 0 < b) (hh : 0 ≤ h) : + volume (regionBetween (fun _ : ℝ ↦ 0) (fun x ↦ h - h / b * x) (Ioc 0 b)) = + ENNReal.ofReal (b * h / 2) := by + have hc : Continuous (fun x : ℝ ↦ h - h / b * x) := by fun_prop + have hi := hc.intervalIntegrable (μ := volume) 0 b + have hz := (continuous_const : Continuous (fun _ : ℝ ↦ (0 : ℝ))).intervalIntegrable + (μ := volume) 0 b + change (volume.prod volume) _ = _ + rw [volume_regionBetween_eq_integral + ((intervalIntegrable_iff_integrableOn_Ioc_of_le hb.le).mp hz) + ((intervalIntegrable_iff_integrableOn_Ioc_of_le hb.le).mp hi) measurableSet_Ioc] + · congr 1 + simp only [Pi.sub_apply, sub_zero] + rw [← intervalIntegral.integral_of_le hb.le] + have hm : IntervalIntegrable (fun x : ℝ ↦ h / b * x) volume 0 b := + (continuous_const.mul continuous_id).intervalIntegrable 0 b + have hh' : IntervalIntegrable (fun _ : ℝ ↦ h) volume 0 b := + continuous_const.intervalIntegrable 0 b + rw [intervalIntegral.integral_sub hh' hm, + intervalIntegral.integral_const, + intervalIntegral.integral_const_mul, integral_id] + simp only [sub_zero, smul_eq_mul] + field_simp + ring + · intro x hx + have := mul_le_mul_of_nonneg_left hx.2 (div_nonneg hh hb.le) + have heq : h / b * b = h := div_mul_cancel₀ h hb.ne' + linarith + +theorem volume_setOf_mem_Ioc_eq_volume_regionBetween + {f g : ℝ → ℝ} {s : Set ℝ} + (hf : Measurable f) (hg : Measurable g) (hs : MeasurableSet s) : + volume {p : ℝ × ℝ | p.1 ∈ s ∧ p.2 ∈ Ioc (f p.1) (g p.1)} = + volume (regionBetween f g s) := by + change (volume.prod volume) _ = (volume.prod volume) _ + rw [Measure.prod_apply (measurableSet_region_between_oc hf hg hs), + Measure.prod_apply (measurableSet_regionBetween hf hg hs)] + apply lintegral_congr + intro x + by_cases hx : x ∈ s + · simp only [regionBetween, Set.preimage_ofPred_eq, hx, true_and] + change volume (Ioc (f x) (g x)) = volume (Ioo (f x) (g x)) + rw [Real.volume_Ioc, Real.volume_Ioo] + · simp [regionBetween, hx] + +/-- The planar volume of the horizontal band between the graphs of `f` and `g` over `s`, +where the first coordinate is the one squeezed between the two graphs. -/ +theorem volume_horizontalIcc {f g : ℝ → ℝ} {s : Set ℝ} + (hf : Measurable f) (hg : Measurable g) (hs : MeasurableSet s) + (hfi : IntegrableOn f s) (hgi : IntegrableOn g s) + (hfg : ∀ x ∈ s, f x ≤ g x) : + volume {p : EuclideanSpace ℝ (Fin 2) | p 1 ∈ s ∧ p 0 ∈ Icc (f (p 1)) (g (p 1))} = + ENNReal.ofReal (∫ x in s, (g - f) x) := by + let T : Set (ℝ × ℝ) := + {p | p.1 ∈ s ∧ p.2 ∈ Icc (f p.1) (g p.1)} + have hT : MeasurableSet T := measurableSet_region_between_cc hf hg hs + rw [show {p : EuclideanSpace ℝ (Fin 2) | p 1 ∈ s ∧ p 0 ∈ Icc (f (p 1)) (g (p 1))} = + finTwoCoordinatesSwap ⁻¹' T by rfl, + volume_preserving_finTwoCoordinatesSwap.measure_preimage hT.nullMeasurableSet] + change volume T = _ + rw [volume_setOf_mem_Icc_eq_volume_regionBetween hf hg hs] + change (volume.prod volume) (regionBetween f g s) = _ + rw [volume_regionBetween_eq_integral hfi hgi hs hfg] + +/-- The half-open variant of `volume_horizontalIcc`. -/ +theorem volume_horizontalIoc {f g : ℝ → ℝ} {s : Set ℝ} + (hf : Measurable f) (hg : Measurable g) (hs : MeasurableSet s) + (hfi : IntegrableOn f s) (hgi : IntegrableOn g s) + (hfg : ∀ x ∈ s, f x ≤ g x) : + volume {p : EuclideanSpace ℝ (Fin 2) | p 1 ∈ s ∧ p 0 ∈ Ioc (f (p 1)) (g (p 1))} = + ENNReal.ofReal (∫ x in s, (g - f) x) := by + let T : Set (ℝ × ℝ) := + {p | p.1 ∈ s ∧ p.2 ∈ Ioc (f p.1) (g p.1)} + have hT : MeasurableSet T := measurableSet_region_between_oc hf hg hs + rw [show {p : EuclideanSpace ℝ (Fin 2) | p 1 ∈ s ∧ p 0 ∈ Ioc (f (p 1)) (g (p 1))} = + finTwoCoordinatesSwap ⁻¹' T by rfl, + volume_preserving_finTwoCoordinatesSwap.measure_preimage hT.nullMeasurableSet] + change volume T = _ + rw [volume_setOf_mem_Ioc_eq_volume_regionBetween hf hg hs] + change (volume.prod volume) (regionBetween f g s) = _ + rw [volume_regionBetween_eq_integral hfi hgi hs hfg] + +/-- A planar set whose second coordinate lies in `[0, 1]` and whose first coordinate is +squeezed between a continuous graph and its horizontal translate by `c` has volume at +most `c`. Only the upper bound is asserted, so no measurability of the set is needed. -/ +theorem volume_le_of_subset_horizontalBand {X : Set (EuclideanSpace ℝ (Fin 2))} + {f : ℝ → ℝ} {c : ℝ} (hf : Continuous f) (hc : 0 ≤ c) + (hX : ∀ p ∈ X, (0 ≤ p 1 ∧ p 1 ≤ 1) ∧ f (p 1) ≤ p 0 ∧ p 0 ≤ f (p 1) + c) : + volume X ≤ ENNReal.ofReal c := by + have hg : Continuous (fun y ↦ f y + c) := hf.add continuous_const + have hfi : IntegrableOn f (Icc (0 : ℝ) 1) := + (intervalIntegrable_iff_integrableOn_Icc_of_le (by norm_num)).mp + (hf.intervalIntegrable 0 1) + have hgi : IntegrableOn (fun y ↦ f y + c) (Icc (0 : ℝ) 1) := + (intervalIntegrable_iff_integrableOn_Icc_of_le (by norm_num)).mp + (hg.intervalIntegrable 0 1) + have key := volume_horizontalIcc (f := f) (g := fun y ↦ f y + c) + (s := Icc (0 : ℝ) 1) hf.measurable hg.measurable measurableSet_Icc hfi hgi + (fun x _ ↦ by simp [hc]) + have hint : ∫ x in Icc (0 : ℝ) 1, ((fun y ↦ f y + c) - f) x = c := by + have hdiff : ((fun y ↦ f y + c) - f) = fun _ ↦ c := by funext y; simp + rw [hdiff, setIntegral_const] + simp + rw [hint] at key + refine le_trans (measure_mono ?_) key.le + intro p hp + obtain ⟨h1, h2, h3⟩ := hX p hp + exact ⟨h1, h2, h3⟩ + +/-- The horizontal unit strip meets the band `c ≤ a * x + b * y ≤ c + 1` in a +parallelogram of area `1 / |a|`. Only the upper bound is asserted. -/ +theorem volume_horizontalBand_inter_le (a b c : ℝ) (ha : a ≠ 0) : + volume {p : EuclideanSpace ℝ (Fin 2) | (0 ≤ p 1 ∧ p 1 ≤ 1) ∧ + (c ≤ a * p 0 + b * p 1 ∧ a * p 0 + b * p 1 ≤ c + 1)} ≤ + ENNReal.ofReal (1 / |a|) := by + have habs : 0 < |a| := abs_pos.mpr ha + rcases lt_or_gt_of_ne ha with hneg | hpos + · refine volume_le_of_subset_horizontalBand (f := fun y ↦ (c + 1 - b * y) / a) + (c := 1 / |a|) (by fun_prop) (by positivity) ?_ + rintro p ⟨h1, h2, h3⟩ + refine ⟨h1, ?_, ?_⟩ + · rw [div_le_iff_of_neg hneg] + linarith + · have hrw : (c + 1 - b * p 1) / a + 1 / |a| = (c - b * p 1) / a := by + rw [abs_of_neg hneg] + field_simp + ring + rw [hrw, le_div_iff_of_neg hneg] + linarith + · refine volume_le_of_subset_horizontalBand (f := fun y ↦ (c - b * y) / a) + (c := 1 / |a|) (by fun_prop) (by positivity) ?_ + rintro p ⟨h1, h2, h3⟩ + refine ⟨h1, ?_, ?_⟩ + · rw [div_le_iff₀ hpos] + linarith + · have hrw : (c - b * p 1) / a + 1 / |a| = (c + 1 - b * p 1) / a := by + rw [abs_of_pos hpos] + field_simp + ring + rw [hrw, le_div_iff₀ hpos] + linarith + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Planar trapezoids with horizontal parallel sides +-/ + +@[expose] public section + +namespace EuclideanSpace + +/-- A convex planar set containing the four vertices of a trapezoid whose parallel sides are +the horizontal segments at heights `0` and `1` contains the whole trapezoid. -/ +theorem horizontalTrapezoid_subset_of_convex {S : Set (EuclideanSpace ℝ (Fin 2))} + (hS : Convex ℝ S) {l₀ r₀ l₁ r₁ : ℝ} + (h₀l : (!₂[l₀, 0] : EuclideanSpace ℝ (Fin 2)) ∈ S) + (h₀r : (!₂[r₀, 0] : EuclideanSpace ℝ (Fin 2)) ∈ S) + (h₁l : (!₂[l₁, 1] : EuclideanSpace ℝ (Fin 2)) ∈ S) + (h₁r : (!₂[r₁, 1] : EuclideanSpace ℝ (Fin 2)) ∈ S) : + {q : EuclideanSpace ℝ (Fin 2) | q 1 ∈ Set.Icc (0 : ℝ) 1 ∧ + q 0 ∈ Set.Icc ((1 - q 1) * l₀ + q 1 * l₁) ((1 - q 1) * r₀ + q 1 * r₁)} ⊆ S := by + rintro q ⟨⟨hy0, hy1⟩, hql, hqr⟩ + have hleft : ((1 - q 1) • (!₂[l₀, 0] : EuclideanSpace ℝ (Fin 2)) + q 1 • !₂[l₁, 1]) ∈ S := + hS h₀l h₁l (by linarith) hy0 (by ring) + have hright : ((1 - q 1) • (!₂[r₀, 0] : EuclideanSpace ℝ (Fin 2)) + q 1 • !₂[r₁, 1]) ∈ S := + hS h₀r h₁r (by linarith) hy0 (by ring) + obtain ⟨s, hs0, hs1, hs⟩ : ∃ s : ℝ, 0 ≤ s ∧ s ≤ 1 ∧ + q 0 = (1 - s) * ((1 - q 1) * l₀ + q 1 * l₁) + s * ((1 - q 1) * r₀ + q 1 * r₁) := by + rcases (hql.trans hqr).eq_or_lt with hLR | hLR + · exact ⟨0, le_rfl, zero_le_one, by rw [sub_zero, one_mul, zero_mul, add_zero]; linarith⟩ + · have hne : (1 - q 1) * r₀ + q 1 * r₁ - ((1 - q 1) * l₀ + q 1 * l₁) ≠ 0 := by linarith + refine ⟨(q 0 - ((1 - q 1) * l₀ + q 1 * l₁)) / + ((1 - q 1) * r₀ + q 1 * r₁ - ((1 - q 1) * l₀ + q 1 * l₁)), + div_nonneg (by linarith) (by linarith), by rw [div_le_one (by linarith)]; linarith, ?_⟩ + field_simp + ring + have hcoord : ∀ z w : EuclideanSpace ℝ (Fin 2), z 0 = w 0 → z 1 = w 1 → z = w := by + intro z w h0 h1 + ext i + fin_cases i + · exact h0 + · exact h1 + have heq : q = (1 - s) • ((1 - q 1) • (!₂[l₀, 0] : EuclideanSpace ℝ (Fin 2)) + q 1 • !₂[l₁, 1]) + + s • ((1 - q 1) • (!₂[r₀, 0] : EuclideanSpace ℝ (Fin 2)) + q 1 • !₂[r₁, 1]) := by + refine hcoord _ _ ?_ ?_ + · simp only [PiLp.add_apply, PiLp.smul_apply, smul_eq_mul, Matrix.cons_val_zero] + linear_combination hs + · simp only [PiLp.add_apply, PiLp.smul_apply, smul_eq_mul, Matrix.cons_val_one, + Matrix.cons_val_fin_one] + ring + rw [heq] + exact hS hleft hright (by linarith) hs0 (by ring) + +/-- The planar area of the trapezoid cut from the horizontal band `y₀ ≤ y ≤ y₁` by the two lines +`x = a + b * y` and `x = c + d * y`: the height of the band times the mean of the lengths of its +two horizontal sides. -/ +theorem volume_horizontalTrapezoid_band {y₀ y₁ a b c d : ℝ} (hy : y₀ ≤ y₁) + (h₀ : a + b * y₀ ≤ c + d * y₀) (h₁ : a + b * y₁ ≤ c + d * y₁) : + MeasureTheory.volume {q : EuclideanSpace ℝ (Fin 2) | q 1 ∈ Set.Icc y₀ y₁ ∧ + q 0 ∈ Set.Icc (a + b * q 1) (c + d * q 1)} = + ENNReal.ofReal ((y₁ - y₀) * + ((c + d * y₀ - (a + b * y₀)) + (c + d * y₁ - (a + b * y₁))) / 2) := by + have hfc : Continuous fun y : ℝ ↦ a + b * y := by fun_prop + have hgc : Continuous fun y : ℝ ↦ c + d * y := by fun_prop + rw [volume_horizontalIcc (f := fun y : ℝ ↦ a + b * y) (g := fun y : ℝ ↦ c + d * y) + (s := Set.Icc y₀ y₁) hfc.measurable hgc.measurable measurableSet_Icc + ((intervalIntegrable_iff_integrableOn_Icc_of_le hy).mp (hfc.intervalIntegrable y₀ y₁)) + ((intervalIntegrable_iff_integrableOn_Icc_of_le hy).mp (hgc.intervalIntegrable y₀ y₁)) + (fun y hy' ↦ by + rcases hy.eq_or_lt with rfl | hylt + · have : y = y₀ := le_antisymm hy'.2 hy'.1 + rw [this] + exact h₀ + · have hcoef : (y₁ - y) * (c + d * y₀ - (a + b * y₀)) + + (y - y₀) * (c + d * y₁ - (a + b * y₁)) = + (y₁ - y₀) * (c + d * y - (a + b * y)) := by ring + nlinarith [mul_nonneg (by linarith [hy'.2] : (0 : ℝ) ≤ y₁ - y) (by linarith : (0 : ℝ) ≤ + c + d * y₀ - (a + b * y₀)), + mul_nonneg (by linarith [hy'.1] : (0 : ℝ) ≤ y - y₀) (by linarith : (0 : ℝ) ≤ + c + d * y₁ - (a + b * y₁))])] + congr 1 + have hrw : ((fun y : ℝ ↦ c + d * y) - fun y : ℝ ↦ a + b * y) = + fun y : ℝ ↦ (c - a) + (d - b) * y := by + funext y + simp only [Pi.sub_apply] + ring + have hii : IntervalIntegrable (fun x : ℝ ↦ (d - b) * x) MeasureTheory.volume y₀ y₁ := + (by fun_prop : Continuous fun x : ℝ ↦ (d - b) * x).intervalIntegrable y₀ y₁ + rw [hrw, MeasureTheory.integral_Icc_eq_integral_Ioc, + ← intervalIntegral.integral_of_le hy, + intervalIntegral.integral_add intervalIntegrable_const hii, + intervalIntegral.integral_const, intervalIntegral.integral_const_mul, integral_id] + simp only [smul_eq_mul] + ring + +/-- The planar area of a trapezoid whose parallel sides are the horizontal segments +`[l₀, r₀] × {0}` and `[l₁, r₁] × {1}` is the mean of their lengths. -/ +theorem volume_horizontalTrapezoid {l₀ r₀ l₁ r₁ : ℝ} (h₀ : l₀ ≤ r₀) (h₁ : l₁ ≤ r₁) : + MeasureTheory.volume {q : EuclideanSpace ℝ (Fin 2) | q 1 ∈ Set.Icc (0 : ℝ) 1 ∧ + q 0 ∈ Set.Icc ((1 - q 1) * l₀ + q 1 * l₁) ((1 - q 1) * r₀ + q 1 * r₁)} = + ENNReal.ofReal ((r₀ - l₀ + (r₁ - l₁)) / 2) := by + have hset : {q : EuclideanSpace ℝ (Fin 2) | q 1 ∈ Set.Icc (0 : ℝ) 1 ∧ + q 0 ∈ Set.Icc ((1 - q 1) * l₀ + q 1 * l₁) ((1 - q 1) * r₀ + q 1 * r₁)} = + {q : EuclideanSpace ℝ (Fin 2) | q 1 ∈ Set.Icc (0 : ℝ) 1 ∧ + q 0 ∈ Set.Icc (l₀ + (l₁ - l₀) * q 1) (r₀ + (r₁ - r₀) * q 1)} := by + refine Set.ext fun q ↦ ?_ + simp only [Set.mem_ofPred_eq, + show (1 - q 1) * l₀ + q 1 * l₁ = l₀ + (l₁ - l₀) * q 1 from by ring, + show (1 - q 1) * r₀ + q 1 * r₁ = r₀ + (r₁ - r₀) * q 1 from by ring] + rw [hset, volume_horizontalTrapezoid_band zero_le_one (by simpa using h₀) (by simpa using h₁)] + congr 1 + ring + +end EuclideanSpace + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The area of a planar triangle + +The convex hull of three points of the Euclidean plane has area one half of the absolute +determinant of the two edge vectors emanating from the first point. The proof transports the +standard right triangle, whose area is computed by integration, along the linear map sending +the coordinate basis to the two edge vectors. +-/ + +@[expose] public section + +open MeasureTheory Set +open scoped Pointwise + +namespace EuclideanSpace + +private def standardTriangleProd : Set (ℝ × ℝ) := + {p | p.1 ∈ Ioc 0 1 ∧ p.2 ∈ Icc 0 (1 - p.1)} + +private theorem measurableSet_standardTriangleProd : MeasurableSet standardTriangleProd := by + have h : MeasurableSet {p : ℝ × ℝ | (0 < p.1 ∧ p.1 ≤ 1) ∧ 0 ≤ p.2 ∧ p.2 ≤ 1 - p.1} := + ((measurableSet_lt measurable_const measurable_fst).inter + (measurableSet_le measurable_fst measurable_const)).inter + ((measurableSet_le measurable_const measurable_snd).inter + (measurableSet_le measurable_snd (measurable_const.sub measurable_fst))) + simpa only [standardTriangleProd, Set.mem_Ioc, Set.mem_Icc] using h + +private theorem volume_standardTriangleProd : + volume standardTriangleProd = ENNReal.ofReal (1 / 2) := by + rw [show standardTriangleProd = + {p : ℝ × ℝ | p.1 ∈ Ioc 0 1 ∧ p.2 ∈ Icc (0 : ℝ) (1 - p.1)} from rfl, + volume_setOf_mem_Icc_eq_volume_regionBetween + (f := fun _ : ℝ ↦ 0) (g := fun x ↦ 1 - x) (s := Ioc 0 1) + measurable_const (measurable_const.sub measurable_id) measurableSet_Ioc] + simpa using + (volume_regionBetween_triangle (b := 1) (h := 1) + (by norm_num : (0 : ℝ) < 1) (by norm_num : (0 : ℝ) ≤ 1)) + +private def standardTriangle : Set (EuclideanSpace ℝ (Fin 2)) := + {p | p 0 ∈ Ioc 0 1 ∧ p 1 ∈ Icc 0 (1 - p 0)} + +private theorem volume_standardTriangle : volume standardTriangle = ENNReal.ofReal (1 / 2) := by + have hpre := volume_preserving_finTwoCoordinates.measure_preimage + measurableSet_standardTriangleProd.nullMeasurableSet + rw [show (fun p : EuclideanSpace ℝ (Fin 2) ↦ (p 0, p 1)) ⁻¹' standardTriangleProd = + standardTriangle from rfl, volume_standardTriangleProd] at hpre + exact hpre + +private def closedStandardTriangle : Set (EuclideanSpace ℝ (Fin 2)) := + {p | 0 ≤ p 0 ∧ 0 ≤ p 1 ∧ p 1 ≤ 1 - p 0} + +private theorem volume_closedStandardTriangle : + volume closedStandardTriangle = ENNReal.ofReal (1 / 2) := by + rw [← volume_standardTriangle] + refine (measure_eq_measure_of_null_sdiff (μ := volume) ?_ ?_).symm + · exact fun p hp ↦ ⟨hp.1.1.le, hp.2⟩ + · refine measure_mono_null + (t := {p : EuclideanSpace ℝ (Fin 2) | inner ℝ p (EuclideanSpace.single 0 (1 : ℝ)) = 0}) + (fun p hp ↦ ?_) ?_ + · have hp0 : p 0 = 0 := by + refine le_antisymm (le_of_not_gt fun hpos ↦ hp.2 ⟨⟨hpos, ?_⟩, hp.1.2⟩) hp.1.1 + linarith [hp.1.2.1, hp.1.2.2] + simpa [EuclideanSpace.inner_single_right] using hp0 + · refine volume.addHaar_setOf_real_inner_eq (fun h ↦ ?_) 0 + have hone : (1 : ℝ) = 0 := by + simpa [PiLp.single_apply] using congrArg (fun p : EuclideanSpace ℝ (Fin 2) ↦ p 0) h + exact one_ne_zero hone + +private def standardTriangleVertices : Set (EuclideanSpace ℝ (Fin 2)) := + {0, EuclideanSpace.single 0 (1 : ℝ), EuclideanSpace.single 1 (1 : ℝ)} + +private theorem convex_closedStandardTriangle : Convex ℝ closedStandardTriangle := by + intro p hp q hq a b ha hb hab + simp only [closedStandardTriangle, Set.mem_ofPred_eq] at hp hq ⊢ + refine ⟨?_, ?_, ?_⟩ <;> + simp only [PiLp.add_apply, PiLp.smul_apply, smul_eq_mul] <;> + nlinarith [hp.1, hq.1, hp.2.1, hq.2.1, hp.2.2, hq.2.2] + +private theorem convexHull_standardTriangleVertices : + convexHull ℝ standardTriangleVertices = closedStandardTriangle := by + refine Set.Subset.antisymm (convexHull_min (fun p hp ↦ ?_) convex_closedStandardTriangle) + (fun p hp ↦ ?_) + · simp only [standardTriangleVertices, Set.mem_insert_iff, Set.mem_singleton_iff] at hp + rcases hp with rfl | rfl | rfl <;> + norm_num [closedStandardTriangle, PiLp.single_apply] + · simp only [closedStandardTriangle, Set.mem_ofPred_eq] at hp + refine mem_convexHull_of_exists_fintype ![1 - p 0 - p 1, p 0, p 1] + ![0, EuclideanSpace.single 0 (1 : ℝ), EuclideanSpace.single 1 (1 : ℝ)] ?_ ?_ ?_ ?_ + · intro i + fin_cases i <;> simp <;> linarith + · simp [Fin.sum_univ_succ] + · intro i + fin_cases i <;> simp [standardTriangleVertices] + · ext i + fin_cases i <;> simp [Fin.sum_univ_succ] + +private def triangleMap (u v : EuclideanSpace ℝ (Fin 2)) : + EuclideanSpace ℝ (Fin 2) →ₗ[ℝ] EuclideanSpace ℝ (Fin 2) where + toFun p := p 0 • u + p 1 • v + map_add' p q := by + ext i + simp [add_smul, add_assoc, add_left_comm] + map_smul' c p := by + ext i + simp [mul_smul] + +private theorem det_triangleMap (u v : EuclideanSpace ℝ (Fin 2)) : + LinearMap.det (triangleMap u v) = u 0 * v 1 - v 0 * u 1 := by + rw [← LinearMap.det_toMatrix (PiLp.basisFun 2 ℝ (Fin 2)), Matrix.det_fin_two] + simp only [LinearMap.toMatrix_apply, PiLp.basisFun_repr, triangleMap, + PiLp.basisFun_apply, Fin.isValue] + norm_num + +private theorem convexHull_triple_eq_image (u v : EuclideanSpace ℝ (Fin 2)) : + convexHull ℝ ({0, u, v} : Set (EuclideanSpace ℝ (Fin 2))) = + triangleMap u v '' closedStandardTriangle := by + have himage : triangleMap u v '' standardTriangleVertices = + ({0, u, v} : Set (EuclideanSpace ℝ (Fin 2))) := by + ext p + constructor + · rintro ⟨q, hq, rfl⟩ + simp only [standardTriangleVertices, Set.mem_insert_iff, Set.mem_singleton_iff] at hq + rcases hq with rfl | rfl | rfl <;> simp [triangleMap] + · intro hp + simp only [Set.mem_insert_iff, Set.mem_singleton_iff] at hp + rcases hp with rfl | rfl | rfl + · exact ⟨0, by simp [standardTriangleVertices], by simp [triangleMap]⟩ + · exact ⟨EuclideanSpace.single 0 (1 : ℝ), by simp [standardTriangleVertices], + by simp [triangleMap]⟩ + · exact ⟨EuclideanSpace.single 1 (1 : ℝ), by simp [standardTriangleVertices], + by simp [triangleMap]⟩ + rw [← himage, ← LinearMap.image_convexHull, convexHull_standardTriangleVertices] + +/-- The triangle spanned by the origin and two vectors of the Euclidean plane has area one +half of the absolute determinant of their coordinates. -/ +theorem volume_convexHull_zero_pair (u v : EuclideanSpace ℝ (Fin 2)) : + volume (convexHull ℝ ({0, u, v} : Set (EuclideanSpace ℝ (Fin 2)))) = + ENNReal.ofReal (|u 0 * v 1 - v 0 * u 1| / 2) := by + rw [convexHull_triple_eq_image, Measure.addHaar_image_linearMap, det_triangleMap, + volume_closedStandardTriangle, ← ENNReal.ofReal_mul (abs_nonneg _)] + congr 1 + ring + +/-- The area of a planar triangle is one half of the absolute coordinate determinant of its +two edge vectors. -/ +theorem volume_convexHull_triple (a b c : EuclideanSpace ℝ (Fin 2)) : + volume (convexHull ℝ ({a, b, c} : Set (EuclideanSpace ℝ (Fin 2)))) = + ENNReal.ofReal (|(b - a) 0 * (c - a) 1 - (c - a) 0 * (b - a) 1| / 2) := by + have hvertices : ({a, b, c} : Set (EuclideanSpace ℝ (Fin 2))) = + a +ᵥ ({0, b - a, c - a} : Set (EuclideanSpace ℝ (Fin 2))) := by + ext p + simp only [Set.mem_insert_iff, Set.mem_singleton_iff, Set.mem_vadd_set] + constructor + · intro hp + rcases hp with hp | hp | hp + · exact ⟨0, by simp, by simp [hp]⟩ + · refine ⟨b - a, by simp, ?_⟩ + rw [hp] + change a + (b - a) = b + abel + · refine ⟨c - a, by simp, ?_⟩ + rw [hp] + change a + (c - a) = c + abel + · rintro ⟨q, hq, hp⟩ + rcases hq with hq | hq | hq + · subst hq + simp only [vadd_eq_add, add_zero] at hp + exact hp ▸ Or.inl rfl + · refine Or.inr (Or.inl ?_) + rw [← hp, hq] + change a + (b - a) = b + abel + · refine Or.inr (Or.inr ?_) + rw [← hp, hq] + change a + (c - a) = c + abel + rw [hvertices, convexHull_vadd, measure_vadd, volume_convexHull_zero_pair] + +end EuclideanSpace + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Stieltjes Density +-/ + +@[expose] public section + +open MeasureTheory Set + +/-- Equality of interval increments identifies a continuous BV function's vector measure. -/ +theorem BoundedVariationOn.vectorMeasure_eq_withDensity_of_integral_Icc + {α E : Type*} [LinearOrder α] [DenselyOrdered α] [TopologicalSpace α] [OrderTopology α] + [SecondCountableTopology α] [MeasurableSpace α] [BorelSpace α] + [CompactIccSpace α] [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E] + {f r : α → E} {μ : Measure α} (hf : BoundedVariationOn f univ) + (hcont : Continuous f) (hr : Integrable r μ) + (hinc : ∀ a b, a ≤ b → f b - f a = ∫ x in Icc a b, r x ∂μ) : + hf.vectorMeasure = μ.withDensityᵥ r := by + apply VectorMeasure.ext_of_Icc + intro a b hab + rw [hf.vectorMeasure_Icc hab, (hcont.continuousAt (x := b)).continuousWithinAt.rightLim_eq, + (hcont.continuousAt (x := a)).continuousWithinAt.leftLim_eq, + withDensityᵥ_apply hr measurableSet_Icc] + exact hinc a b hab + +/-- Integrating on a subtype and a measurable preimage agrees with restricting both sets. -/ +theorem MeasureTheory.integral_subtype_preimage {α E : Type*} [MeasurableSpace α] {μ : Measure α} + [NormedAddCommGroup E] [NormedSpace ℝ E] + {s t : Set α} (hs : MeasurableSet s) (ht : MeasurableSet t) (f : α → E) : + (∫ x in {x : s | (x : α) ∈ t}, f (x : α) ∂μ.comap Subtype.val) = + ∫ x in t, f x ∂μ.restrict s := by + have hpre : MeasurableSet {x : s | (x : α) ∈ t} := ht.preimage measurable_subtype_coe + rw [← integral_indicator (μ := μ.comap (Subtype.val : s → α)) + (f := fun x : s ↦ f (x : α)) hpre] + change (∫ x : s, (t.indicator f) (x : α) ∂μ.comap Subtype.val) = _ + rw [integral_subtype_comap hs, integral_indicator ht] + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Vector Measure / Interval +-/ + +@[expose] public section + +noncomputable section + +open Set MeasureTheory + +namespace MeasureTheory.VectorMeasure + +/-- Agreement on half-open intervals and the whole space determines a vector measure. -/ +theorem ext_of_Ioc {α E : Type*} [LinearOrder α] [TopologicalSpace α] [OrderTopology α] + [SecondCountableTopology α] [MeasurableSpace α] [BorelSpace α] + [NormedAddCommGroup E] (μ ν : VectorMeasure α E) + (h : ∀ a b, a < b → μ (Ioc a b) = ν (Ioc a b)) + (huniv : μ univ = ν univ) : μ = ν := by + apply ext_of_generateFrom {s | ∃ a b, a < b ∧ Ioc a b = s} _ + (BorelSpace.measurable_eq.trans (borel_eq_generateFrom_Ioc α)) + (isPiSystem_Ioc id id) huniv + rintro s ⟨a, b, hab, rfl⟩ + exact h a b hab + +end MeasureTheory.VectorMeasure + +/-- Pulling an integrable density back along a measurable embedding gives its image integrals. -/ +theorem MeasurableEmbedding.exists_vectorMeasure_image_integral + {α β E : Type*} [MeasurableSpace α] [MeasurableSpace β] + [NormedAddCommGroup E] [NormedSpace ℝ E] + {f : α → β} (hf : MeasurableEmbedding f) (μ : Measure β) (g : β → E) + (hg : Integrable g μ) : + ∃ ν : VectorMeasure α E, ∀ s, MeasurableSet s → ν s = ∫ x in f '' s, g x ∂μ := by + have hi : Integrable (fun x ↦ g (f x)) (μ.comap f) := by + apply hf.integrable_map_iff.mp + rw [hf.map_comap] + exact hg.integrableOn + refine ⟨(μ.comap f).withDensityᵥ (fun x ↦ g (f x)), ?_⟩ + intro s hs + rw [withDensityᵥ_apply hi hs] + have h := hf.setIntegral_map (μ := μ.comap f) g (f '' s) + rw [hf.map_comap, hf.injective.preimage_image, + Measure.restrict_restrict_of_subset (image_subset_range _ _)] at h + exact h.symm + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Vector Measure / With Density +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped Topology + +namespace MeasureTheory + +/-- Integrating a bounded function against a real signed density multiplies the ordinary +integrand by that density. -/ +theorem VectorMeasure.setIntegral_withDensity_mul_of_bounded + {X : Type*} [MeasurableSpace X] + {μ : Measure X} {r q : X → ℝ} + (hr : Integrable r μ) (hq : AEStronglyMeasurable q μ) (C : ℝ) + (hq_bound : ∀ x, ‖q x‖ ≤ C) (E : Set X) (hE : MeasurableSet E) : + (∫ᵛ x in E, q x ∂[ContinuousLinearMap.mul ℝ ℝ; μ.withDensityᵥ r]) = + ∫ x in E, q x * r x ∂μ := by + rw [withDensityᵥ_eq_withDensity_pos_part_sub_withDensity_neg_part hr] + let μp := μ.withDensity fun x ↦ ENNReal.ofReal (r x) + let μn := μ.withDensity fun x ↦ ENNReal.ofReal (-r x) + let _ : IsFiniteMeasure μp := isFiniteMeasure_withDensity_ofReal hr.2 + let _ : IsFiniteMeasure μn := isFiniteMeasure_withDensity_ofReal hr.neg.2 + have hqp : (μp.toSignedMeasure : SignedMeasure X).Integrable q := by + rw [VectorMeasure.Integrable, Measure.variation_toSignedMeasure] + exact Integrable.of_bound (hq.mono_ac (withDensity_absolutelyContinuous _ _)) C + (ae_of_all _ hq_bound) + have hqn : (μn.toSignedMeasure : SignedMeasure X).Integrable q := by + rw [VectorMeasure.Integrable, Measure.variation_toSignedMeasure] + exact Integrable.of_bound (hq.mono_ac (withDensity_absolutelyContinuous _ _)) C + (ae_of_all _ hq_bound) + have hmul : ContinuousLinearMap.mul ℝ ℝ = + (ContinuousLinearMap.lsmul ℝ ℝ).flip := by + ext; simp + change ∫ᵛ x, q x ∂[ContinuousLinearMap.mul ℝ ℝ; + ((μp.toSignedMeasure : SignedMeasure X) - μn.toSignedMeasure).restrict E] = _ + rw [VectorMeasure.restrict_sub, + VectorMeasure.integral_sub_vectorMeasure hqp.restrict hqn.restrict] + have hp : (∫ᵛ x in E, q x ∂[ContinuousLinearMap.mul ℝ ℝ; μp.toSignedMeasure]) = + ∫ x in E, q x ∂μp := by + rw [hmul] + exact VectorMeasure.setIntegral_toSignedMeasure hE + have hn : (∫ᵛ x in E, q x ∂[ContinuousLinearMap.mul ℝ ℝ; μn.toSignedMeasure]) = + ∫ x in E, q x ∂μn := by + rw [hmul] + exact VectorMeasure.setIntegral_toSignedMeasure hE + have hdp : ∫ x in E, q x ∂μp = + ∫ x in E, (ENNReal.ofReal (r x)).toReal • q x ∂μ := by + apply setIntegral_withDensity_eq_setIntegral_toReal_smul₀ + · exact hr.aestronglyMeasurable.aemeasurable.ennreal_ofReal.restrict + · filter_upwards with x + simp + · exact hE + have hdn : ∫ x in E, q x ∂μn = + ∫ x in E, (ENNReal.ofReal (-r x)).toReal • q x ∂μ := by + apply setIntegral_withDensity_eq_setIntegral_toReal_smul₀ + · exact hr.neg.aestronglyMeasurable.aemeasurable.ennreal_ofReal.restrict + · filter_upwards with x + simp + · exact hE + rw [hp, hn, hdp, hdn] + have hip : Integrable (fun x ↦ (ENNReal.ofReal (r x)).toReal • q x) μ := by + simpa only [ENNReal.toReal_ofReal', smul_eq_mul, mul_comm] using + hr.pos_part.bdd_mul hq (ae_of_all _ hq_bound) + have hin : Integrable (fun x ↦ (ENNReal.ofReal (-r x)).toReal • q x) μ := by + simpa only [ENNReal.toReal_ofReal', smul_eq_mul, mul_comm] using + hr.neg_part.bdd_mul hq (ae_of_all _ hq_bound) + rw [← MeasureTheory.integral_sub hip.integrableOn hin.integrableOn] + apply MeasureTheory.integral_congr_ae + filter_upwards with x + simp only [smul_eq_mul] + rcases le_total 0 (r x) with hx | hx + · rw [ENNReal.toReal_ofReal', ENNReal.toReal_ofReal'] + simp only [max_eq_left hx, max_eq_right (neg_nonpos.mpr hx)] + ring + · rw [ENNReal.toReal_ofReal', ENNReal.toReal_ofReal'] + simp only [max_eq_right hx, max_eq_left (neg_nonneg.mpr hx)] + ring + +/-- Integrating a continuous real function on a compact space against a signed density +multiplies the ordinary integrand by that density. -/ +theorem VectorMeasure.setIntegral_withDensity_mul + {X : Type*} [MeasurableSpace X] [TopologicalSpace X] [BorelSpace X] [CompactSpace X] + {μ : Measure X} {r q : X → ℝ} + (hr : Integrable r μ) (hq : Continuous q) (E : Set X) (hE : MeasurableSet E) : + (∫ᵛ x in E, q x ∂[ContinuousLinearMap.mul ℝ ℝ; μ.withDensityᵥ r]) = + ∫ x in E, q x * r x ∂μ := by + let q' : BoundedContinuousFunction X ℝ := + ContinuousMap.equivBoundedOfCompact X ℝ ⟨q, hq⟩ + exact VectorMeasure.setIntegral_withDensity_mul_of_bounded hr hq.aestronglyMeasurable ‖q'‖ + (fun x ↦ BoundedContinuousFunction.norm_coe_le_norm q' x) E hE + +end MeasureTheory + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Volume +-/ + +@[expose] public section + +open scoped Pointwise + +namespace MeasureTheory + +/-- The square root of planar volume scales linearly under nonnegative dilations. -/ +theorem volume_smul_rpow_half (S : Set (EuclideanSpace ℝ (Fin 2))) (a : ℝ) (ha : 0 ≤ a) : + volume (a • S) ^ (2 : ℝ)⁻¹ = ENNReal.ofReal a * volume S ^ (2 : ℝ)⁻¹ := by + rw [MeasureTheory.Measure.addHaar_smul_of_nonneg (μ := volume) ha] + simp only [finrank_euclideanSpace_fin] + rw [ENNReal.mul_rpow_of_nonneg _ _ (by positivity)] + congr 1 + rw [ENNReal.ofReal_pow ha] + simpa using ENNReal.pow_rpow_inv_natCast (by norm_num : (2 : ℕ) ≠ 0) (ENNReal.ofReal a) + +end MeasureTheory + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `ForMathlib.Order.Infimum`. +* `ForMathlib.Order.IntervalPartition`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Order / Infimum +-/ + +@[expose] public section + +open Set + +/-- Uniformly close real functions have uniformly close infima on a nonempty set. -/ +theorem abs_sInf_image_sub_sInf_image_le {ι : Type*} {s : Set ι} + (hs : s.Nonempty) (f g : ι → ℝ) (hf : BddBelow (f '' s)) (hg : BddBelow (g '' s)) + {C : ℝ} (h : ∀ x ∈ s, |f x - g x| ≤ C) : + |sInf (f '' s) - sInf (g '' s)| ≤ C := by + have hfg : sInf (f '' s) - C ≤ sInf (g '' s) := by + apply le_csInf (hs.image g) + rintro _ ⟨x, hx, rfl⟩ + have hfx : sInf (f '' s) ≤ f x := csInf_le hf ⟨x, hx, rfl⟩ + have hpoint := (abs_le.mp (h x hx)).2 + linarith + have hgf : sInf (g '' s) - C ≤ sInf (f '' s) := by + apply le_csInf (hs.image f) + rintro _ ⟨x, hx, rfl⟩ + have hgx : sInf (g '' s) ≤ g x := csInf_le hg ⟨x, hx, rfl⟩ + have hpoint := (abs_le.mp (h x hx)).1 + linarith + rw [abs_le] + constructor <;> linarith + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Order / Interval Partition +-/ + +@[expose] public section + +open Set + +/-- Adjacent half-open intervals of a finite monotone sequence cover its endpoint interval. -/ +theorem Monotone.iUnion_Ioc_fin {α : Type*} [LinearOrder α] {n : ℕ} (cuts : Fin (n + 1) → α) + (hcuts : Monotone cuts) : + (⋃ i : Fin n, Ioc (cuts i.castSucc) (cuts i.succ)) = Ioc (cuts 0) (cuts (Fin.last n)) := by + rw [← hcuts.biUnion_Ico_Ioc_map_succ 0 (Fin.last n)] + ext x + simp only [mem_iUnion] + constructor + · rintro ⟨i, hi⟩ + refine ⟨i.castSucc, ⟨Fin.zero_le _, i.castSucc_lt_last⟩, ?_⟩ + simpa only [Fin.orderSucc_castSucc] using hi + · rintro ⟨i, hi, hx⟩ + have hn : i.val < n := hi.2 + refine ⟨⟨i, hn⟩, ?_⟩ + change x ∈ Ioc (cuts (⟨i, hn⟩ : Fin n).castSucc) + (cuts (Order.succ (⟨i, hn⟩ : Fin n).castSucc)) at hx + simpa only [Fin.orderSucc_castSucc] using hx + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `ForMathlib.Topology.Angle`. +* `ForMathlib.Topology.Order.Compact`. +* `ForMathlib.Topology.Order.Concatenation`. +* `ForMathlib.Topology.Order.Interval`. +* `ForMathlib.Topology.Order.IntervalExtension`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Topology / Angle +-/ + +@[expose] public section + +open scoped unitInterval + +namespace Real.Angle + +/-- A continuous angle path starting at zero has a continuous real lift starting at zero. -/ +theorem exists_continuous_lift_zero (θ : I → Real.Angle) (hθ : Continuous θ) + (hzero : θ 0 = 0) : + ∃ α : I → ℝ, Continuous α ∧ α 0 = 0 ∧ ∀ t, (α t : Real.Angle) = θ t := by + have hcov : IsCoveringMap ((↑) : ℝ → Real.Angle) := AddCircle.isCoveringMap_coe (2 * Real.pi) + obtain ⟨α, hα, hα0⟩ := hcov.exists_path_lifts + (⟨θ, hθ⟩ : C(I, Real.Angle)) (0 : ℝ) (by simpa using hzero) + exact ⟨α, α.continuous, hα0, fun t ↦ congrFun hα t⟩ + +end Real.Angle + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Topology / Order / Compact +-/ + +@[expose] public section + +/-- A positive continuous function has a positive uniform lower bound on a nonempty compact set. -/ +theorem IsCompact.exists_pos_forall_le {X : Type*} [TopologicalSpace X] + {s : Set X} (hs : IsCompact s) (hne : s.Nonempty) {f : X → ℝ} + (hf : ContinuousOn f s) (hpos : ∀ x ∈ s, 0 < f x) : + ∃ m > 0, ∀ x ∈ s, m ≤ f x := by + obtain ⟨x, hx, hxmin⟩ := hs.exists_isMinOn hne hf + exact ⟨f x, hpos x hx, fun y hy ↦ hxmin hy⟩ + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Topology / Order / Concatenation +-/ + +@[expose] public section + +namespace Function + +/-- Concatenate two functions on `[0, 1]` on the interval `[0, 2]`. -/ +noncomputable def concatUnitIntervals {E : Type*} (x y : Set.Icc (0 : ℝ) 1 → E) + (t : Set.Icc (0 : ℝ) 2) : E := + if (t : ℝ) ≤ 1 then x (Set.projIcc 0 1 (by norm_num) t) + else y (Set.projIcc 0 1 (by norm_num) ((t : ℝ) - 1)) + +/-- Concatenation is continuous when the endpoint values agree. -/ +theorem continuous_concatUnitIntervals {E : Type*} [TopologicalSpace E] + {x y : Set.Icc (0 : ℝ) 1 → E} (hx : Continuous x) (hy : Continuous y) + (hjoin : x ⟨1, by norm_num⟩ = y ⟨0, by norm_num⟩) : + Continuous (concatUnitIntervals x y) := by + unfold concatUnitIntervals + apply continuous_if_le continuous_subtype_val continuous_const + · simpa only [Function.comp_def] using + (hx.comp (continuous_projIcc.comp continuous_subtype_val)).continuousOn + · simpa only [Function.comp_def, Pi.sub_apply] using + (hy.comp + (continuous_projIcc.comp (continuous_subtype_val.sub continuous_const))).continuousOn + intro t ht + simpa [ht] using hjoin + +@[simp] theorem concatUnitIntervals_zero {E : Type*} (x y : Set.Icc (0 : ℝ) 1 → E) : + concatUnitIntervals x y ⟨0, by norm_num⟩ = x ⟨0, by norm_num⟩ := by + simp [concatUnitIntervals] + +@[simp] theorem concatUnitIntervals_one {E : Type*} (x y : Set.Icc (0 : ℝ) 1 → E) : + concatUnitIntervals x y ⟨1, by norm_num⟩ = x ⟨1, by norm_num⟩ := by + simp [concatUnitIntervals] + +@[simp] theorem concatUnitIntervals_two {E : Type*} (x y : Set.Icc (0 : ℝ) 1 → E) : + concatUnitIntervals x y ⟨2, by norm_num⟩ = y ⟨1, by norm_num⟩ := by + norm_num [concatUnitIntervals] + +/-- Joined paths have precisely the union of the two original ranges. -/ +theorem range_concatUnitIntervals {E : Type*} (x y : Set.Icc (0 : ℝ) 1 → E) + (hjoin : x ⟨1, by norm_num⟩ = y ⟨0, by norm_num⟩) : + Set.range (concatUnitIntervals x y) = Set.range x ∪ Set.range y := by + ext z + constructor + · rintro ⟨t, rfl⟩ + unfold concatUnitIntervals + split_ifs + · exact Or.inl (Set.mem_range_self _) + · exact Or.inr (Set.mem_range_self _) + · rintro (⟨t, rfl⟩ | ⟨t, rfl⟩) + · refine ⟨⟨t, t.property.1, t.property.2.trans (by norm_num)⟩, ?_⟩ + simp [concatUnitIntervals, t.property.2, Set.projIcc_of_mem (by norm_num) t.property] + · by_cases ht : (t : ℝ) = 0 + · refine ⟨⟨1, by norm_num⟩, ?_⟩ + rw [concatUnitIntervals_one, hjoin] + congr 1 + exact Subtype.ext ht.symm + · have htpos : 0 < (t : ℝ) := lt_of_le_of_ne t.property.1 (Ne.symm ht) + refine ⟨⟨(t : ℝ) + 1, by constructor <;> linarith [t.property.1, t.property.2]⟩, ?_⟩ + have hnot : ¬(t : ℝ) + 1 ≤ 1 := by linarith + simp [concatUnitIntervals, hnot, Set.projIcc_of_mem (by norm_num) t.property] + +/-- A strict cyclic cut preserves injectivity away from the final endpoint. -/ +theorem injOn_concatUnitIntervals_comp_of_cyclic_endpoints + {E : Type*} {a b : ℝ} (hab : a ≤ b) {x : Set.Icc a b → E} + (hinj : Set.InjOn x {t | (t : ℝ) < b}) + (hclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + (s : Set.Icc a b) (has : a < s) (hsb : (s : ℝ) < b) + (φ ψ : Set.Icc (0 : ℝ) 1 → Set.Icc a b) + (hφ : StrictMono φ) (hψ : StrictMono ψ) + (hφ₀ : φ ⟨0, by norm_num⟩ = s) + (hψ₀ : ψ ⟨0, by norm_num⟩ = ⟨a, le_rfl, hab⟩) + (hψ₁ : ψ ⟨1, by norm_num⟩ = s) : + Set.InjOn (concatUnitIntervals (x ∘ φ) (x ∘ ψ)) {t | (t : ℝ) < 2} := by + have hab' : a < b := has.trans hsb + have hinj' : Set.InjOn x {t | a < (t : ℝ)} := by + intro p hp q hq hpq + by_cases hpb : (p : ℝ) < b + · by_cases hqb : (q : ℝ) < b + · exact hinj hpb hqb hpq + · have hqeq : q = (⟨b, hab, le_rfl⟩ : Set.Icc a b) := by + apply Subtype.ext + exact le_antisymm q.property.2 (le_of_not_gt hqb) + have hpa : p = (⟨a, le_rfl, hab⟩ : Set.Icc a b) := by + apply hinj hpb hab' + rw [hqeq] at hpq + exact hpq.trans hclosed.symm + exact False.elim ((ne_of_gt hp) (congrArg Subtype.val hpa)) + · have hpeq : p = (⟨b, hab, le_rfl⟩ : Set.Icc a b) := by + apply Subtype.ext + exact le_antisymm p.property.2 (le_of_not_gt hpb) + by_cases hqb : (q : ℝ) < b + · have hqa : q = (⟨a, le_rfl, hab⟩ : Set.Icc a b) := by + apply hinj hqb hab' + rw [hpeq] at hpq + exact hpq.symm.trans hclosed.symm + exact False.elim ((ne_of_gt hq) (congrArg Subtype.val hqa)) + · have hqeq : q = (⟨b, hab, le_rfl⟩ : Set.Icc a b) := by + apply Subtype.ext + exact le_antisymm q.property.2 (le_of_not_gt hqb) + exact hpeq.trans hqeq.symm + intro u hu v hv huv + have hu0 : 0 ≤ (u : ℝ) := u.property.1 + have hv0 : 0 ≤ (v : ℝ) := v.property.1 + have hu2 : (u : ℝ) < 2 := hu + have hv2 : (v : ℝ) < 2 := hv + by_cases hu1 : (u : ℝ) ≤ 1 + · let pu : Set.Icc (0 : ℝ) 1 := ⟨u, hu0, hu1⟩ + have hueval : concatUnitIntervals (x ∘ φ) (x ∘ ψ) u = x (φ pu) := by + simp [concatUnitIntervals, hu1, pu, + Set.projIcc_of_mem (by norm_num) ⟨hu0, hu1⟩] + have hφu : (s : ℝ) ≤ φ pu := by + rw [← hφ₀] + exact hφ.monotone pu.property.1 + by_cases hv1 : (v : ℝ) ≤ 1 + · let pv : Set.Icc (0 : ℝ) 1 := ⟨v, hv0, hv1⟩ + have hveval : concatUnitIntervals (x ∘ φ) (x ∘ ψ) v = x (φ pv) := by + simp [concatUnitIntervals, hv1, pv, + Set.projIcc_of_mem (by norm_num) ⟨hv0, hv1⟩] + have hφv : (s : ℝ) ≤ φ pv := by + rw [← hφ₀] + exact hφ.monotone pv.property.1 + have hp : φ pu = φ pv := hinj' (has.trans_le hφu) (has.trans_le hφv) + (hueval ▸ huv ▸ hveval) + apply Subtype.ext + simpa [pu, pv] using congrArg Subtype.val (hφ.injective hp) + · have hv1' : 1 < (v : ℝ) := lt_of_not_ge hv1 + have hvp : 0 ≤ (v : ℝ) - 1 ∧ (v : ℝ) - 1 ≤ 1 := ⟨by linarith, by linarith⟩ + let pv : Set.Icc (0 : ℝ) 1 := ⟨(v : ℝ) - 1, hvp⟩ + have hveval : concatUnitIntervals (x ∘ φ) (x ∘ ψ) v = x (ψ pv) := by + simp [concatUnitIntervals, hv1, pv, + Set.projIcc_of_mem (by norm_num) hvp] + have hψvpos : a < (ψ pv : ℝ) := by + have h := hψ (show (⟨0, by norm_num⟩ : Set.Icc (0 : ℝ) 1) < pv by + change 0 < (v : ℝ) - 1 + linarith) + rw [hψ₀] at h + exact h + have hp : φ pu = ψ pv := hinj' (has.trans_le hφu) hψvpos + (hueval ▸ huv ▸ hveval) + have hψvlt : (ψ pv : ℝ) < s := by + have h := hψ (show pv < (⟨1, by norm_num⟩ : Set.Icc (0 : ℝ) 1) by + change (v : ℝ) - 1 < 1 + linarith) + rw [hψ₁] at h + exact h + exact False.elim ((not_le_of_gt hψvlt) (hp ▸ hφu)) + · have hu1' : 1 < (u : ℝ) := lt_of_not_ge hu1 + have hup : 0 ≤ (u : ℝ) - 1 ∧ (u : ℝ) - 1 ≤ 1 := ⟨by linarith, by linarith⟩ + let pu : Set.Icc (0 : ℝ) 1 := ⟨(u : ℝ) - 1, hup⟩ + have hueval : concatUnitIntervals (x ∘ φ) (x ∘ ψ) u = x (ψ pu) := by + simp [concatUnitIntervals, hu1, pu, + Set.projIcc_of_mem (by norm_num) hup] + have hψupos : a < (ψ pu : ℝ) := by + have h := hψ (show (⟨0, by norm_num⟩ : Set.Icc (0 : ℝ) 1) < pu by + change 0 < (u : ℝ) - 1 + linarith) + rw [hψ₀] at h + exact h + by_cases hv1 : (v : ℝ) ≤ 1 + · let pv : Set.Icc (0 : ℝ) 1 := ⟨v, hv0, hv1⟩ + have hveval : concatUnitIntervals (x ∘ φ) (x ∘ ψ) v = x (φ pv) := by + simp [concatUnitIntervals, hv1, pv, + Set.projIcc_of_mem (by norm_num) ⟨hv0, hv1⟩] + have hφv : (s : ℝ) ≤ φ pv := by + rw [← hφ₀] + exact hφ.monotone pv.property.1 + have hp : ψ pu = φ pv := hinj' hψupos (has.trans_le hφv) + (hueval ▸ huv ▸ hveval) + have hψult : (ψ pu : ℝ) < s := by + have h := hψ (show pu < (⟨1, by norm_num⟩ : Set.Icc (0 : ℝ) 1) by + change (u : ℝ) - 1 < 1 + linarith) + rw [hψ₁] at h + exact h + exact False.elim ((not_le_of_gt hψult) (hp ▸ hφv)) + · have hvp : 0 ≤ (v : ℝ) - 1 ∧ (v : ℝ) - 1 ≤ 1 := ⟨by linarith, by linarith⟩ + let pv : Set.Icc (0 : ℝ) 1 := ⟨(v : ℝ) - 1, hvp⟩ + have hveval : concatUnitIntervals (x ∘ φ) (x ∘ ψ) v = x (ψ pv) := by + simp [concatUnitIntervals, hv1, pv, + Set.projIcc_of_mem (by norm_num) hvp] + have hψvpos : a < (ψ pv : ℝ) := by + have h := hψ (show (⟨0, by norm_num⟩ : Set.Icc (0 : ℝ) 1) < pv by + change 0 < (v : ℝ) - 1 + linarith) + rw [hψ₀] at h + exact h + have hp : ψ pu = ψ pv := hinj' hψupos hψvpos (hueval ▸ huv ▸ hveval) + have hp' := congrArg Subtype.val (hψ.injective hp) + apply Subtype.ext + simp [pu, pv] at hp' + linarith + +end Function + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Topology / Order / Interval +-/ + +@[expose] public section + +namespace Set + +instance instCompactIccSpaceIcc (a b : ℝ) : CompactIccSpace (Icc a b) := + ⟨fun {_ _} ↦ isClosed_Icc.isCompact⟩ + +end Set + +/-- Reverse a closed real interval about its midpoint. -/ +def Set.Icc.reverse {a b : ℝ} (_hab : a ≤ b) : + Set.Icc a b → Set.Icc a b := fun t ↦ + ⟨a + b - t, by linarith [t.property.2], by linarith [t.property.1]⟩ + +/-- Interval reversal is continuous. -/ +theorem Set.Icc.continuous_reverse {a b : ℝ} (hab : a ≤ b) : + Continuous (Set.Icc.reverse hab) := + (continuous_const.add continuous_const |>.sub continuous_subtype_val).subtype_mk _ + +/-- Interval reversal is antitone. -/ +theorem Set.Icc.antitone_reverse {a b : ℝ} (hab : a ≤ b) : + Antitone (Set.Icc.reverse hab) := by + intro x y hxy + have hxy' : (x : ℝ) ≤ y := hxy + change a + b - (y : ℝ) ≤ a + b - (x : ℝ) + linarith + +/-- Reversing a closed interval twice is the identity. -/ +theorem Set.Icc.involutive_reverse {a b : ℝ} (hab : a ≤ b) : + Function.Involutive (Set.Icc.reverse hab) := by + intro x + apply Subtype.ext + simp [Set.Icc.reverse] + +/-- Interval reversal is surjective. -/ +theorem Set.Icc.surjective_reverse {a b : ℝ} (hab : a ≤ b) : + Function.Surjective (Set.Icc.reverse hab) := + (Set.Icc.involutive_reverse hab).surjective + +open Set Filter +open scoped Topology + +/-- Replace the terminal value of a one-sided continuous function by its left limit. -/ +theorem continuousOn_replace_right_endpoint {E : Type*} [TopologicalSpace E] + {a b : ℝ} (hab : a < b) (f : ℝ → E) (z : E) + (hr : ∀ t ∈ Ico a b, Tendsto f (𝓝[>] t) (𝓝 (f t))) + (hl : ∀ t ∈ Ioo a b, Tendsto f (𝓝[<] t) (𝓝 (f t))) + (hb : Tendsto f (𝓝[<] b) (𝓝 z)) : + ContinuousOn (fun t ↦ if t = b then z else f t) (Icc a b) := by + let g : ℝ → E := fun t ↦ if t = b then z else f t + have heql {t : ℝ} (ht : t ≤ b) : g =ᶠ[𝓝[<] t] f := by + filter_upwards [self_mem_nhdsWithin] with u hu + have hne : u ≠ b := (lt_of_lt_of_le hu ht).ne + simp [g, hne] + have heqr {t : ℝ} (ht : t < b) : g =ᶠ[𝓝[>] t] f := by + filter_upwards [nhdsWithin_le_nhds (Iio_mem_nhds ht)] with u hu + simp [g, (show u ≠ b from hu.ne)] + intro t ht + change ContinuousWithinAt g (Icc a b) t + rcases eq_or_lt_of_le ht.1 with rfl | hat + · have h : ContinuousWithinAt g (Ioi a) a := by + change Tendsto g _ _ + simpa only [g, ite_eq_right hab.ne] using (hr a ⟨le_rfl, hab⟩).congr' (heqr hab).symm + exact (continuousWithinAt_Ioi_iff_Ici.mp h).mono Icc_subset_Ici_self + · rcases lt_or_eq_of_le ht.2 with htb | rfl + · apply ContinuousAt.continuousWithinAt + apply continuousAt_iff_continuous_left'_right'.mpr + constructor + · change Tendsto g _ _ + simpa only [g, ite_eq_right htb.ne] using (hl t ⟨hat, htb⟩).congr' (heql htb.le).symm + · change Tendsto g _ _ + simpa only [g, ite_eq_right htb.ne] using (hr t ⟨hat.le, htb⟩).congr' (heqr htb).symm + · have h : ContinuousWithinAt g (Iio t) t := by + change Tendsto g _ _ + simpa only [g, ite_eq_left rfl] using hb.congr' (heql le_rfl).symm + exact (continuousWithinAt_Iio_iff_Iic.mp h).mono Icc_subset_Iic_self + +/-- Every compact real interval carries finite monotone partitions, with prescribed +endpoints, whose mesh eventually falls below any positive threshold. -/ +theorem Set.Icc.exists_partitions_mesh_tendsto_zero {a b : ℝ} (hab : a ≤ b) : + ∃ cuts : ∀ k : ℕ, Fin (k + 2) → Set.Icc a b, + (∀ k, Monotone (cuts k)) ∧ (∀ k, (cuts k 0 : ℝ) = a) ∧ + (∀ k, (cuts k (Fin.last (k + 1)) : ℝ) = b) ∧ + ∀ δ > 0, ∀ᶠ k in Filter.atTop, ∀ i : Fin (k + 1), + (cuts k i.succ : ℝ) - (cuts k i.castSucc : ℝ) < δ := by + let cuts (k : ℕ) (i : Fin (k + 2)) : Set.Icc a b := + ⟨a + (b - a) * (i : ℝ) / (k + 1), by + have hk : (0 : ℝ) < k + 1 := by positivity + have hi : (i : ℝ) ≤ k + 1 := by exact_mod_cast Nat.le_of_lt_succ i.isLt + constructor + · exact le_add_of_nonneg_right (div_nonneg + (mul_nonneg (sub_nonneg.mpr hab) (Nat.cast_nonneg _)) hk.le) + · have hmul := mul_le_mul_of_nonneg_left hi (sub_nonneg.mpr hab) + have hdiv : (b - a) * (i : ℝ) / (k + 1) ≤ b - a := + (div_le_iff₀ hk).mpr hmul + linarith⟩ + refine ⟨cuts, ?_, ?_, ?_, ?_⟩ + · intro k i j hij + change a + (b - a) * (i : ℝ) / (k + 1) ≤ a + (b - a) * (j : ℝ) / (k + 1) + gcongr + exact_mod_cast hij + · intro k + simp [cuts] + · intro k + dsimp [cuts] + push_cast + rw [mul_div_cancel_right₀ _ (by positivity)] + ring + · intro δ hδ + have ht : Filter.Tendsto (fun k : ℕ ↦ (b - a) / (k + 1)) + Filter.atTop (nhds 0) := + tendsto_const_nhds.div_atTop (Filter.tendsto_atTop_add_const_right _ 1 + tendsto_natCast_atTop_atTop) + filter_upwards [ht.eventually (gt_mem_nhds hδ)] with k hk + intro i + convert hk using 1 + dsimp [cuts] + push_cast + ring + +/-- The increasing affine surjection between two nondegenerate closed intervals. -/ +theorem Set.Icc.exists_affine_monotone_surjection {a b c d : ℝ} (hab : a < b) (hcd : c < d) : + ∃ φ : Set.Icc a b → Set.Icc c d, Continuous φ ∧ Monotone φ ∧ Function.Surjective φ ∧ + ∀ t : Set.Icc a b, (φ t : ℝ) = c + ((t : ℝ) - a) / (b - a) * (d - c) := by + have hba : (0 : ℝ) < b - a := by linarith + have hdc : (0 : ℝ) < d - c := by linarith + have hfrac : ∀ t : Set.Icc a b, + 0 ≤ ((t : ℝ) - a) / (b - a) ∧ ((t : ℝ) - a) / (b - a) ≤ 1 := by + intro t + refine ⟨div_nonneg (by linarith [t.property.1]) hba.le, ?_⟩ + rw [div_le_one hba] + linarith [t.property.2] + refine ⟨fun t ↦ ⟨c + ((t : ℝ) - a) / (b - a) * (d - c), ?_, ?_⟩, ?_, ?_, ?_, fun _ ↦ rfl⟩ + · nlinarith [(hfrac t).1] + · nlinarith [(hfrac t).2] + · exact Continuous.subtype_mk (by fun_prop) _ + · intro s t hst + have hst' : (s : ℝ) ≤ (t : ℝ) := hst + have hdiv : ((s : ℝ) - a) / (b - a) ≤ ((t : ℝ) - a) / (b - a) := by gcongr + change c + ((s : ℝ) - a) / (b - a) * (d - c) ≤ c + ((t : ℝ) - a) / (b - a) * (d - c) + nlinarith + · intro y + have hyl : 0 ≤ ((y : ℝ) - c) / (d - c) := div_nonneg (by linarith [y.property.1]) hdc.le + have hyr : ((y : ℝ) - c) / (d - c) ≤ 1 := by + rw [div_le_one hdc] + linarith [y.property.2] + refine ⟨⟨a + ((y : ℝ) - c) / (d - c) * (b - a), by nlinarith, by nlinarith⟩, ?_⟩ + apply Subtype.ext + change c + (a + ((y : ℝ) - c) / (d - c) * (b - a) - a) / (b - a) * (d - c) = (y : ℝ) + field_simp + ring + +/-- The decreasing affine surjection between two nondegenerate closed intervals: the increasing +one reflected in the midpoint of its codomain. -/ +theorem Set.Icc.exists_affine_antitone_surjection {a b c d : ℝ} (hab : a < b) (hcd : c < d) : + ∃ φ : Set.Icc a b → Set.Icc c d, Continuous φ ∧ Antitone φ ∧ Function.Surjective φ ∧ + ∀ t : Set.Icc a b, (φ t : ℝ) = d - ((t : ℝ) - a) / (b - a) * (d - c) := by + obtain ⟨φ, hφc, hφm, hφs, hφv⟩ := Set.Icc.exists_affine_monotone_surjection hab hcd + refine ⟨fun t ↦ ⟨c + d - (φ t : ℝ), ?_, ?_⟩, ?_, ?_, ?_, fun t ↦ ?_⟩ + · linarith [(φ t).property.2] + · linarith [(φ t).property.1] + · exact (continuous_const.sub (continuous_subtype_val.comp hφc)).subtype_mk _ + · intro s t hst + exact Subtype.mk_le_mk.mpr (by linarith [show (φ s : ℝ) ≤ (φ t : ℝ) from hφm hst]) + · intro y + have hy : c + d - (y : ℝ) ∈ Set.Icc c d := + ⟨by linarith [y.property.2], by linarith [y.property.1]⟩ + obtain ⟨t, ht⟩ := hφs ⟨c + d - (y : ℝ), hy⟩ + refine ⟨t, Subtype.ext ?_⟩ + change c + d - (φ t : ℝ) = (y : ℝ) + rw [show (φ t : ℝ) = c + d - (y : ℝ) from congrArg Subtype.val ht] + ring + · change c + d - (φ t : ℝ) = _ + rw [hφv t] + ring + +/-- The translation of the unit interval onto a closed interval of length one. -/ +theorem Set.Icc.exists_translation_surjection {c d : ℝ} (hcd : d = c + 1) : + ∃ φ : Set.Icc (0 : ℝ) 1 → Set.Icc c d, Continuous φ ∧ Monotone φ ∧ + Function.Surjective φ ∧ ∀ u : Set.Icc (0 : ℝ) 1, (φ u : ℝ) = c + (u : ℝ) := by + obtain ⟨φ, hφc, hφm, hφs, hφv⟩ := + Set.Icc.exists_affine_monotone_surjection zero_lt_one (show c < d by rw [hcd]; linarith) + exact ⟨φ, hφc, hφm, hφs, fun u ↦ by rw [hφv u, hcd]; ring⟩ + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Topology / Order / Interval Extension +-/ + +@[expose] public section + +noncomputable section +namespace OrderIso + +/-- Extend an order isomorphism of open real intervals by matching the endpoints. -/ +def extendIoo {a b c d : ℝ} (hcd : c < d) + (e : Set.Ioo a b ≃o Set.Ioo c d) (x : Set.Icc a b) : Set.Icc c d := + if hxa : (x : ℝ) = a then ⟨c, le_rfl, hcd.le⟩ + else if hxb : (x : ℝ) = b then ⟨d, hcd.le, le_rfl⟩ + else let t := e ⟨x, lt_of_le_of_ne x.property.1 (Ne.symm hxa), + lt_of_le_of_ne x.property.2 hxb⟩ + ⟨t, t.property.1.le, t.property.2.le⟩ + +/-- The extension maps the left endpoint to the left endpoint. -/ +theorem extendIoo_left {a b c d : ℝ} (hab : a < b) (hcd : c < d) + (e : Set.Ioo a b ≃o Set.Ioo c d) : + extendIoo hcd e ⟨a, le_rfl, hab.le⟩ = ⟨c, le_rfl, hcd.le⟩ := by + simp [extendIoo] + +/-- The extension maps the right endpoint to the right endpoint. -/ +theorem extendIoo_right {a b c d : ℝ} (hab : a < b) (hcd : c < d) + (e : Set.Ioo a b ≃o Set.Ioo c d) : + extendIoo hcd e ⟨b, hab.le, le_rfl⟩ = ⟨d, hcd.le, le_rfl⟩ := by + simp [extendIoo, ne_of_gt hab] + +/-- The extension agrees with the original order isomorphism on the interior. -/ +theorem extendIoo_interior {a b c d : ℝ} (hcd : c < d) + (e : Set.Ioo a b ≃o Set.Ioo c d) (x : Set.Ioo a b) : + (extendIoo hcd e ⟨x, x.property.1.le, x.property.2.le⟩ : ℝ) = e x := by + simp [extendIoo, ne_of_gt x.property.1, ne_of_lt x.property.2] + +/-- The endpoint extension is monotone. -/ +theorem monotone_extendIoo {a b c d : ℝ} (hab : a < b) (hcd : c < d) + (e : Set.Ioo a b ≃o Set.Ioo c d) : Monotone (extendIoo hcd e) := by + intro x y hxy + by_cases hx : (x : ℝ) = a + · have he : x = ⟨a, le_rfl, hab.le⟩ := Subtype.ext hx + rw [he, extendIoo_left hab] + exact (extendIoo hcd e y).property.1 + by_cases hy : (y : ℝ) = b + · have he : y = ⟨b, hab.le, le_rfl⟩ := Subtype.ext hy + rw [he, extendIoo_right hab] + exact (extendIoo hcd e x).property.2 + have hxlo : a < (x : ℝ) := lt_of_le_of_ne x.property.1 (Ne.symm hx) + have hyhi : (y : ℝ) < b := lt_of_le_of_ne y.property.2 hy + have hxhi : (x : ℝ) < b := lt_of_le_of_lt hxy hyhi + have hylo : a < (y : ℝ) := lt_of_lt_of_le hxlo hxy + change (extendIoo hcd e x : ℝ) ≤ extendIoo hcd e y + rw [extendIoo_interior hcd e ⟨x, hxlo, hxhi⟩, + extendIoo_interior hcd e ⟨y, hylo, hyhi⟩] + exact e.monotone hxy + +/-- The endpoint extension is surjective. -/ +theorem surjective_extendIoo {a b c d : ℝ} (hab : a < b) (hcd : c < d) + (e : Set.Ioo a b ≃o Set.Ioo c d) : Function.Surjective (extendIoo hcd e) := by + intro y + by_cases hyc : (y : ℝ) = c + · refine ⟨⟨a, le_rfl, hab.le⟩, ?_⟩ + rw [extendIoo_left hab] + exact Subtype.ext hyc.symm + by_cases hyd : (y : ℝ) = d + · refine ⟨⟨b, hab.le, le_rfl⟩, ?_⟩ + rw [extendIoo_right hab] + exact Subtype.ext hyd.symm + let y' : Set.Ioo c d := ⟨y, lt_of_le_of_ne y.property.1 (Ne.symm hyc), + lt_of_le_of_ne y.property.2 hyd⟩ + let x := e.symm y' + refine ⟨⟨x, x.property.1.le, x.property.2.le⟩, Subtype.ext ?_⟩ + rw [extendIoo_interior] + exact congrArg Subtype.val (e.apply_symm_apply y') + +/-- The endpoint extension is continuous. -/ +theorem continuous_extendIoo {a b c d : ℝ} (hab : a < b) (hcd : c < d) + (e : Set.Ioo a b ≃o Set.Ioo c d) : Continuous (extendIoo hcd e) := + (monotone_extendIoo hab hcd e).continuous_of_surjective (surjective_extendIoo hab hcd e) + +end OrderIso + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `ForMathlib.MeasureTheory.StieltjesTransport`. +* `ForMathlib.MeasureTheory.VectorMeasure.LocallyConstant`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Stieltjes Transport +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set + +/-- A monotone surjection of compact intervals preserves bounded variation. -/ +theorem BoundedVariationOn.comp_monotone_surjective_Icc + {a b c d : ℝ} (_hab : a ≤ b) {f : Set.Icc a b → ℝ} + (hf : BoundedVariationOn f Set.univ) + {φ : Set.Icc c d → Set.Icc a b} (hφ : Monotone φ) (hφs : Function.Surjective φ) : + BoundedVariationOn (f ∘ φ) Set.univ := by + let _ : Fact (a ≤ b) := ⟨_hab⟩ + rw [BoundedVariationOn, + eVariationOn.comp_eq_of_monotoneOn (t := Set.univ) f φ + (fun _ _ _ _ hxy ↦ hφ hxy)] + rw [Set.image_univ, hφs.range_eq] + exact hf + +/-- The Stieltjes measure is preserved by continuous monotone surjective reparametrization. -/ +theorem BoundedVariationOn.vectorMeasure_map_comp_monotone_surjective_Icc + {a b c d : ℝ} (hab : a ≤ b) (hcd : c ≤ d) {f : Set.Icc a b → ℝ} + (hf : BoundedVariationOn f Set.univ) + (hfc : Continuous f) {φ : Set.Icc c d → Set.Icc a b} (hφc : Continuous φ) + (hφ : Monotone φ) (hφs : Function.Surjective φ) : + (BoundedVariationOn.comp_monotone_surjective_Icc hab hf hφ hφs).vectorMeasure.map φ = + hf.vectorMeasure := by + let _ : Fact (a ≤ b) := ⟨hab⟩ + let _ : Fact (c ≤ d) := ⟨hcd⟩ + let hfφ := BoundedVariationOn.comp_monotone_surjective_Icc hab hf hφ hφs + have fiberGreatest (y : Set.Icc a b) : + ∃ x, IsGreatest (φ ⁻¹' {y}) x := by + apply (isClosed_singleton.preimage hφc).isCompact.exists_isGreatest + rcases hφs y with ⟨x, rfl⟩ + exact ⟨x, rfl⟩ + have preimage_Ioc (u v : Set.Icc a b) : + ∃ x y, φ x = u ∧ φ y = v ∧ (u ≤ v → x ≤ y) ∧ + φ ⁻¹' Ioc u v = Ioc x y := by + obtain ⟨x, hxmem, hxmax⟩ := fiberGreatest u + obtain ⟨y, hymem, hymax⟩ := fiberGreatest v + change φ x = u at hxmem + change φ y = v at hymem + have hxy : u ≤ v → x ≤ y := by + intro huv + by_contra hxy + have hyx : y ≤ x := le_of_not_ge hxy + have huv' : u = v := le_antisymm huv (hxmem ▸ hymem ▸ hφ hyx) + exact hxy (hymax (by change φ x = v; rw [hxmem, huv'])) + refine ⟨x, y, hxmem, hymem, hxy, Set.ext fun z ↦ ?_⟩ + simp only [mem_preimage, mem_Ioc] + constructor <;> intro hz + · constructor + · by_contra hzx + have hzx' : z ≤ x := le_of_not_gt hzx + exact (not_le_of_gt hz.1) (hxmem ▸ hφ hzx') + · by_contra hyz + have hyz' : y < z := lt_of_not_ge hyz + have hvz : v ≤ φ z := hymem ▸ hφ hyz'.le + have : φ z = v := le_antisymm hz.2 hvz + exact (not_le_of_gt hyz') (hymax this) + · constructor + · have hux : u ≤ φ z := hxmem ▸ hφ hz.1.le + exact hux.lt_of_ne fun hzu ↦ (not_le_of_gt hz.1) (hxmax hzu.symm) + · exact hymem ▸ hφ hz.2 + have hright (x : Set.Icc a b) : f.rightLim x = f x := + hfc.continuousAt.continuousWithinAt.rightLim_eq + have hright_comp (x : Set.Icc c d) : (f ∘ φ).rightLim x = (f ∘ φ) x := + (hfc.comp hφc).continuousAt.continuousWithinAt.rightLim_eq + have hinterval (u v : Set.Icc a b) (huv : u ≤ v) : + (hfφ.vectorMeasure.map φ) (Ioc u v) = hf.vectorMeasure (Ioc u v) := by + obtain ⟨x, y, hx, hy, hxy, hpre⟩ := preimage_Ioc u v + rw [VectorMeasure.map_apply _ hφc.measurable measurableSet_Ioc, hpre, + hfφ.vectorMeasure_Ioc (hxy huv), hf.vectorMeasure_Ioc huv, hright_comp, hright_comp, + hright, hright, Function.comp_apply, Function.comp_apply, hx, hy] + apply VectorMeasure.ext_of_generateFrom + {s | ∃ u v : Set.Icc a b, u ≤ v ∧ s = Ioc u v} + · rintro s ⟨u, v, huv, rfl⟩ + exact hinterval u v huv + · exact BorelSpace.measurable_eq.trans <| by + rw [borel_eq_generateFrom_Ioc_le] + congr 1 + ext s + simp only [Set.mem_ofPred_eq] + constructor + · rintro ⟨u, v, huv, rfl⟩ + exact ⟨u, v, huv, rfl⟩ + · rintro ⟨u, v, huv, rfl⟩ + exact ⟨u, v, huv, rfl⟩ + · exact IsSetSemiring.isPiSystem IsSetSemiring.Ioc + · have hφtop : φ ⊤ = ⊤ := by + obtain ⟨x, hx⟩ := hφs ⊤ + exact top_unique (hx ▸ hφ le_top) + have hφbot : φ ⊥ = ⊥ := by + obtain ⟨x, hx⟩ := hφs ⊥ + exact bot_unique (hx ▸ hφ bot_le) + have htopφ : Filter.atTop.limUnder (f ∘ φ) = (f ∘ φ) ⊤ := by + apply tendsto_nhds_unique hfφ.tendsto_atTop_limUnder + rw [Filter.atTop_eq_pure_of_isTop isTop_top] + exact tendsto_pure_nhds _ _ + have hbotφ : Filter.atBot.limUnder (f ∘ φ) = (f ∘ φ) ⊥ := by + apply tendsto_nhds_unique hfφ.tendsto_atBot_limUnder + rw [Filter.atBot_eq_pure_of_isBot isBot_bot] + exact tendsto_pure_nhds _ _ + have htop : Filter.atTop.limUnder f = f ⊤ := by + apply tendsto_nhds_unique hf.tendsto_atTop_limUnder + rw [Filter.atTop_eq_pure_of_isTop isTop_top] + exact tendsto_pure_nhds _ _ + have hbot : Filter.atBot.limUnder f = f ⊥ := by + apply tendsto_nhds_unique hf.tendsto_atBot_limUnder + rw [Filter.atBot_eq_pure_of_isBot isBot_bot] + exact tendsto_pure_nhds _ _ + rw [VectorMeasure.map_apply _ hφc.measurable MeasurableSet.univ, preimage_univ, + hfφ.vectorMeasure_univ, hf.vectorMeasure_univ, htopφ, hbotφ, htop, hbot, + Function.comp_apply, Function.comp_apply, hφtop, hφbot] + +/-- The Stieltjes measure of a continuous BV function has no point masses. -/ +theorem BoundedVariationOn.vectorMeasure_singleton_eq_zero_of_continuous + {a b : ℝ} {f : Set.Icc a b → ℝ} (hf : BoundedVariationOn f Set.univ) + (hfc : Continuous f) (x : Set.Icc a b) : hf.vectorMeasure {x} = 0 := by + rw [hf.vectorMeasure_singleton, + hfc.continuousAt.continuousWithinAt.rightLim_eq, + hfc.continuousAt.continuousWithinAt.leftLim_eq, sub_self] + +/-- The Stieltjes measure on a closed subinterval pushes forward to the half-open restriction. -/ +theorem BoundedVariationOn.vectorMeasure_map_Icc_inclusion + {a b : ℝ} {f : Set.Icc a b → ℝ} (hf : BoundedVariationOn f Set.univ) + (hfc : Continuous f) (l u : Set.Icc a b) (hlu : l ≤ u) : + let ι : Set.Icc (l : ℝ) u → Set.Icc a b := fun x ↦ + ⟨x, le_trans l.property.1 x.property.1, le_trans x.property.2 u.property.2⟩ + let hfr : BoundedVariationOn (f ∘ ι) Set.univ := + ne_top_of_le_ne_top hf (eVariationOn.comp_le_of_monotoneOn f ι + (fun _ _ _ _ h ↦ h) (mapsTo_univ ι _)) + hfr.vectorMeasure.map ι = hf.vectorMeasure.restrict (Ioc l u) := by + dsimp only + let ι : Set.Icc (l : ℝ) u → Set.Icc a b := fun x ↦ + ⟨x, le_trans l.property.1 x.property.1, le_trans x.property.2 u.property.2⟩ + let hfr : BoundedVariationOn (f ∘ ι) Set.univ := + ne_top_of_le_ne_top hf (eVariationOn.comp_le_of_monotoneOn f ι + (fun _ _ _ _ h ↦ h) (mapsTo_univ ι _)) + let _ : Fact ((l : ℝ) ≤ u) := ⟨hlu⟩ + change hfr.vectorMeasure.map ι = hf.vectorMeasure.restrict (Ioc l u) + have hι : Continuous ι := continuous_subtype_val.subtype_mk _ + have hright (x : Set.Icc a b) : f.rightLim x = f x := + hfc.continuousAt.continuousWithinAt.rightLim_eq + have hright_comp (x : Set.Icc (l : ℝ) u) : (f ∘ ι).rightLim x = (f ∘ ι) x := + (hfc.comp hι).continuousAt.continuousWithinAt.rightLim_eq + have htop : Filter.atTop.limUnder (f ∘ ι) = (f ∘ ι) ⊤ := by + apply tendsto_nhds_unique hfr.tendsto_atTop_limUnder + rw [Filter.atTop_eq_pure_of_isTop isTop_top] + exact tendsto_pure_nhds _ _ + have hbot : Filter.atBot.limUnder (f ∘ ι) = (f ∘ ι) ⊥ := by + apply tendsto_nhds_unique hfr.tendsto_atBot_limUnder + rw [Filter.atBot_eq_pure_of_isBot isBot_bot] + exact tendsto_pure_nhds _ _ + apply VectorMeasure.ext_of_generateFrom (Set.range Iic) + · rintro s ⟨x, rfl⟩ + rw [VectorMeasure.map_apply _ hι.measurable measurableSet_Iic, + VectorMeasure.restrict_apply _ measurableSet_Ioc measurableSet_Iic] + by_cases hxl : x < l + · have hp : ι ⁻¹' Iic x = ∅ := by + apply eq_empty_iff_forall_notMem.mpr + intro y hy + exact (not_le_of_gt hxl) (le_trans y.property.1 hy) + have hi : Iic x ∩ Ioc l u = ∅ := by ext y; simp; grind + simp [hp, hi] + · by_cases hxu : u ≤ x + · have hp : ι ⁻¹' Iic x = Set.univ := by + apply eq_univ_of_forall + intro y + exact le_trans y.property.2 hxu + have hi : Iic x ∩ Ioc l u = Ioc l u := by ext y; simp; grind + rw [hp, hi, hfr.vectorMeasure_univ, hf.vectorMeasure_Ioc hlu] + rw [htop, hbot, hright, hright] + rfl + · have hlx : l ≤ x := le_of_not_gt hxl + have hxu' : x ≤ u := le_of_not_ge hxu + let y : Set.Icc (l : ℝ) u := ⟨x, hlx, hxu'⟩ + have hp : ι ⁻¹' Iic x = Iic y := by ext z; rfl + have hi : Iic x ∩ Ioc l u = Ioc l x := by ext z; simp; grind + rw [hp, hi, hfr.vectorMeasure_Iic, hf.vectorMeasure_Ioc hlx, + hright_comp, hbot, hright, hright] + rfl + · exact BorelSpace.measurable_eq.trans (borel_eq_generateFrom_Iic _) + · exact isPiSystem_Iic + · rw [VectorMeasure.map_apply _ hι.measurable MeasurableSet.univ, + preimage_univ, VectorMeasure.restrict_apply_univ, + hfr.vectorMeasure_univ, hf.vectorMeasure_Ioc hlu, htop, hbot, hright, hright] + rfl + +/-- An antitone surjection of compact intervals preserves bounded variation. -/ +theorem BoundedVariationOn.comp_antitone_surjective_Icc + {a b c d : ℝ} (_hab : a ≤ b) {f : Set.Icc a b → ℝ} + (hf : BoundedVariationOn f Set.univ) + {φ : Set.Icc c d → Set.Icc a b} (hφ : Antitone φ) + (hφs : Function.Surjective φ) : + BoundedVariationOn (f ∘ φ) Set.univ := by + let _ : Fact (a ≤ b) := ⟨_hab⟩ + rw [BoundedVariationOn, + eVariationOn.comp_eq_of_antitoneOn (t := Set.univ) f φ + (fun _ _ _ _ hxy ↦ hφ hxy)] + rw [Set.image_univ, hφs.range_eq] + exact hf + +/-- Reversing a continuous BV function negates its transported Stieltjes measure. -/ +theorem BoundedVariationOn.vectorMeasure_map_reverse_Icc + {a b : ℝ} (hab : a ≤ b) {f : Set.Icc a b → ℝ} + (hf : BoundedVariationOn f Set.univ) (hfc : Continuous f) : + let r := Set.Icc.reverse hab + let hfr := BoundedVariationOn.comp_antitone_surjective_Icc hab hf + (Set.Icc.antitone_reverse hab) (Set.Icc.surjective_reverse hab) + hfr.vectorMeasure.map r = -hf.vectorMeasure := by + dsimp only + let _ : Fact (a ≤ b) := ⟨hab⟩ + let r := Set.Icc.reverse hab + let hfr := BoundedVariationOn.comp_antitone_surjective_Icc hab hf + (Set.Icc.antitone_reverse hab) (Set.Icc.surjective_reverse hab) + have hr : Continuous r := Set.Icc.continuous_reverse hab + have hleft (x : Set.Icc a b) : f.leftLim x = f x := + hfc.continuousAt.continuousWithinAt.leftLim_eq + have hleft_comp (x : Set.Icc a b) : (f ∘ r).leftLim x = (f ∘ r) x := + (hfc.comp hr).continuousAt.continuousWithinAt.leftLim_eq + have hright (x : Set.Icc a b) : f.rightLim x = f x := + hfc.continuousAt.continuousWithinAt.rightLim_eq + have hpre (u v : Set.Icc a b) : + r ⁻¹' Ioc u v = Ico (r v) (r u) := by + ext x + simp only [mem_preimage, mem_Ioc, mem_Ico] + change (u : ℝ) < a + b - x ∧ a + b - x ≤ v ↔ + a + b - v ≤ x ∧ x < a + b - u + constructor <;> intro hx <;> constructor <;> linarith + have hinterval (u v : Set.Icc a b) (huv : u ≤ v) : + (hfr.vectorMeasure.map r) (Ioc u v) = (-hf.vectorMeasure) (Ioc u v) := by + rw [MeasureTheory.VectorMeasure.map_apply _ hr.measurable measurableSet_Ioc, hpre, + hfr.vectorMeasure_Ico ((Set.Icc.antitone_reverse hab) huv)] + change _ = -(hf.vectorMeasure (Ioc u v)) + rw [hf.vectorMeasure_Ioc huv, hleft_comp, hleft_comp, hright, hright] + simp [r, Set.Icc.reverse, Function.comp_apply] + apply MeasureTheory.VectorMeasure.ext_of_generateFrom + {s | ∃ u v : Set.Icc a b, u ≤ v ∧ s = Ioc u v} + · rintro s ⟨u, v, huv, rfl⟩ + exact hinterval u v huv + · exact BorelSpace.measurable_eq.trans <| by + rw [borel_eq_generateFrom_Ioc_le] + congr 1 + ext s + simp only [Set.mem_ofPred_eq] + constructor + · rintro ⟨u, v, huv, rfl⟩ + exact ⟨u, v, huv, rfl⟩ + · rintro ⟨u, v, huv, rfl⟩ + exact ⟨u, v, huv, rfl⟩ + · exact IsSetSemiring.isPiSystem IsSetSemiring.Ioc + · rw [MeasureTheory.VectorMeasure.map_apply _ hr.measurable MeasurableSet.univ, + preimage_univ, hfr.vectorMeasure_univ] + change _ = -(hf.vectorMeasure Set.univ) + rw [hf.vectorMeasure_univ] + have htop : Filter.atTop.limUnder (f ∘ r) = f ⊥ := by + apply tendsto_nhds_unique hfr.tendsto_atTop_limUnder + rw [Filter.atTop_eq_pure_of_isTop isTop_top] + convert tendsto_pure_nhds (f ∘ r) ⊤ using 1 + apply congrArg nhds + apply congrArg f + apply Subtype.ext + change a = a + b - b + ring + have hbot : Filter.atBot.limUnder (f ∘ r) = f ⊤ := by + apply tendsto_nhds_unique hfr.tendsto_atBot_limUnder + rw [Filter.atBot_eq_pure_of_isBot isBot_bot] + convert tendsto_pure_nhds (f ∘ r) ⊥ using 1 + apply congrArg nhds + apply congrArg f + apply Subtype.ext + change b = a + b - a + ring + have htopf : Filter.atTop.limUnder f = f ⊤ := by + apply tendsto_nhds_unique hf.tendsto_atTop_limUnder + rw [Filter.atTop_eq_pure_of_isTop isTop_top] + exact tendsto_pure_nhds _ _ + have hbotf : Filter.atBot.limUnder f = f ⊥ := by + apply tendsto_nhds_unique hf.tendsto_atBot_limUnder + rw [Filter.atBot_eq_pure_of_isBot isBot_bot] + exact tendsto_pure_nhds _ _ + rw [htop, hbot, htopf, hbotf] + simp + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# For Mathlib / Measure Theory / Vector Measure / Locally Constant +-/ + +@[expose] public section + +noncomputable section + +open Filter MeasureTheory +open scoped Topology + +/-- Local constancy away from the initial endpoint gives a variation-null neighborhood. -/ +theorem BoundedVariationOn.exists_nhds_variation_vectorMeasure_eq_zero_of_eventuallyEq_const + {a b : ℝ} (hab : a < b) {g : Set.Icc a b → ℝ} + (hg : BoundedVariationOn g Set.univ) + (hr : ∀ y, ContinuousWithinAt g (Set.Ici y) y) (x : Set.Icc a b) + (hxbot : a < (x : ℝ)) + (hx : g =ᶠ[𝓝 x] fun _ ↦ g x) : + ∃ U ∈ 𝓝 x, hg.vectorMeasure.variation U = 0 := by + let _ : Fact (a ≤ b) := ⟨hab.le⟩ + let _ : Nontrivial (Set.Icc a b) := + ⟨⟨⟨a, le_rfl, hab.le⟩, ⟨b, hab.le, le_rfl⟩, fun h ↦ + hab.ne (congrArg Subtype.val h)⟩⟩ + have hright (y : Set.Icc a b) : Function.rightLim g y = g y := + (hr y).rightLim_eq + by_cases hxtop : x = ⊤ + · subst x + obtain ⟨c, hc, hsub⟩ := (nhds_top_basis.mem_iff.mp hx) + refine ⟨Set.Ioi c, nhds_top_basis.mem_iff.mpr ⟨c, hc, subset_rfl⟩, ?_⟩ + rw [hg.variation_vectorMeasure_Ioi] + rw [show Function.rightLim g = g from funext hright] + apply eVariationOn.constant_on + rintro _ ⟨y, hy, rfl⟩ _ ⟨z, hz, rfl⟩ + exact (hsub hy).trans (hsub hz).symm + · have hxlt : x < ⊤ := lt_top_iff_ne_top.mpr hxtop + have hxgt : ⊥ < x := hxbot + obtain ⟨c, d, hxcd, hsub⟩ := + (mem_nhds_iff_exists_Ioo_subset' ⟨⊥, hxgt⟩ ⟨⊤, hxlt⟩).mp hx + refine ⟨Set.Ioo c d, Ioo_mem_nhds hxcd.1 hxcd.2, ?_⟩ + rw [hg.variation_vectorMeasure_Ioo_right] + rw [show Function.rightLim g = g from funext hright] + apply eVariationOn.constant_on + rintro _ ⟨y, hy, rfl⟩ _ ⟨z, hz, rfl⟩ + exact (hsub hy).trans (hsub hz).symm + +end + +end + +end + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Geometry.Foundations.Development001`. +* `Cap.Foundations.Development001`. +* `Polygon.Foundations.Development001`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Geometry.Plane`. +* `Geometry.Basic`. +* `Geometry.Frame`. +* `Geometry.NormalLines`. +* `Geometry.QuadrantBounds`. +* `Geometry.Subgraph`. +* `Geometry.Support`. +* `Geometry.Contacts`. +* `Geometry.FrameCalculus`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Plane +-/ + +@[expose] public section + +namespace MovingSofa + +/-- The two-dimensional real Euclidean space used for sofa geometry. -/ +abbrev Point := EuclideanSpace ℝ (Fin 2) + +/-- The squared norm of a planar point in coordinates. -/ +theorem Point.norm_sq_eq (z : Point) : ‖z‖ ^ 2 = z 0 ^ 2 + z 1 ^ 2 := by + rw [EuclideanSpace.norm_sq_eq] + simp [Fin.sum_univ_two, Real.norm_eq_abs, sq_abs] + +/-- Cauchy-Schwarz for the coordinate form of the planar inner product. -/ +theorem Point.abs_inner_coords_le (w d : Point) : + |w 0 * d 0 + w 1 * d 1| ≤ ‖w‖ * ‖d‖ := by + have hinner : (inner ℝ w d : ℝ) = w 0 * d 0 + w 1 * d 1 := by + simp [inner, Fin.sum_univ_two] + ring + rw [← hinner] + exact abs_real_inner_le_norm w d + +/-- Each coordinate of a planar point is bounded by its norm. -/ +theorem Point.abs_apply_le_norm (z : Point) (i : Fin 2) : |z i| ≤ ‖z‖ := by + simpa [PiLp.norm_single, EuclideanSpace.inner_single_right] using + abs_real_inner_le_norm z (EuclideanSpace.single i (1 : ℝ)) + +end MovingSofa + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Basic +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The normal and positively oriented tangent at an angular direction. -/ +def frame (t : Real.Angle) : Point × Point := + (!₂[t.cos, t.sin], !₂[-t.sin, t.cos]) + +/-- The unit normal of the angular frame. -/ +abbrev normalVector (t : Real.Angle) : Point := (frame t).1 + +/-- The counterclockwise unit tangent of the angular frame. -/ +abbrev tangentVector (t : Real.Angle) : Point := (frame t).2 + +/-- The support value; geometric results require a nonempty compact set. -/ +def supportValue (s : Set Point) (t : Real.Angle) : ℝ := + sSup ((fun p ↦ inner ℝ p (normalVector t)) '' s) + +/-- The line with the given unit normal and signed offset. -/ +def normalLine (t : Real.Angle) (h : ℝ) : Set Point := + {p | inner ℝ p (normalVector t) = h} + +/-- A normal half-plane: `upper` chooses the greater side, `strict` its open version. -/ +def normalHalfPlane (t : Real.Angle) (h : ℝ) (upper strict : Bool) : Set Point := + {p | if upper then + if strict then h < inner ℝ p (normalVector t) else h ≤ inner ℝ p (normalVector t) + else + if strict then inner ℝ p (normalVector t) < h else inner ℝ p (normalVector t) ≤ h} + +/-- Closed normal half-planes are closed, on either side of the boundary line. -/ +theorem isClosed_normalHalfPlane (t : Real.Angle) (h : ℝ) (upper : Bool) : + IsClosed (normalHalfPlane t h upper false) := by + cases upper + · exact isClosed_le (continuous_id.inner continuous_const) continuous_const + · exact isClosed_le continuous_const (continuous_id.inner continuous_const) + +/-- Closed normal half-planes are convex, on either side of the boundary line. -/ +theorem convex_normalHalfPlane (t : Real.Angle) (h : ℝ) (upper : Bool) : + Convex ℝ (normalHalfPlane t h upper false) := by + have hlin : IsLinearMap ℝ fun p : Point ↦ inner ℝ p (normalVector t) := + isLinearMap_inner_left _ + cases upper + · exact convex_halfSpace_le hlin h + · exact convex_halfSpace_ge hlin h + +/-- Open normal half-planes are convex, on either side of the boundary line. -/ +theorem convex_normalHalfPlane_open (t : Real.Angle) (h : ℝ) (upper : Bool) : + Convex ℝ (normalHalfPlane t h upper true) := by + have hlin : IsLinearMap ℝ fun p : Point ↦ inner ℝ p (normalVector t) := + isLinearMap_inner_left _ + cases upper + · exact convex_halfSpace_lt hlin h + · exact convex_halfSpace_gt hlin h + +/-- The supporting line and closed containing half-plane of a nonempty compact set. -/ +def supportingLineHalfPlane (s : Set Point) (t : Real.Angle) : Set Point × Set Point := + (normalLine t (supportValue s t), normalHalfPlane t (supportValue s t) false false) + +/-- A closed supporting half-plane, read through the opposite normal direction. -/ +theorem supportingLineHalfPlane_snd_eq_normalHalfPlane {s : Set Point} {t u : Real.Angle} + {h : ℝ} (hn : normalVector u = -normalVector t) (hs : supportValue s u = -h) : + (supportingLineHalfPlane s u).2 = normalHalfPlane t h true false := by + ext q + change inner ℝ q (normalVector u) ≤ supportValue s u ↔ h ≤ inner ℝ q (normalVector t) + rw [hn, inner_neg_right, hs] + constructor <;> intro hq <;> linarith + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Frame +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Every unit vector is the normal vector of an angular frame. -/ +theorem exists_angle_normalVector_eq {u : Point} (hu : ‖u‖ = 1) : + ∃ t : Real.Angle, normalVector t = u := by + let z : ℂ := ⟨u 0, u 1⟩ + have hzNorm : ‖z‖ = 1 := by + rw [Complex.norm_def, show Complex.normSq z = ‖u‖ ^ 2 by + rw [EuclideanSpace.norm_sq_eq] + simp [z, Complex.normSq_apply, Fin.sum_univ_two, pow_two, Real.norm_eq_abs]] + simp [hu] + have hz : z ≠ 0 := by + intro hz + simp [hz] at hzNorm + refine ⟨(z.arg : ℝ), ?_⟩ + ext i + fin_cases i + · simpa [normalVector, frame, z, hzNorm] using Complex.cos_arg hz + · simpa [normalVector, frame, z, hzNorm] using Complex.sin_arg z + +theorem continuous_normalVector_real : + Continuous (fun t : ℝ ↦ normalVector (t : Real.Angle)) := by + let c : ℝ → (i : Fin 2) → ℝ := fun t i ↦ + Fin.cases (Real.cos t) (fun _ ↦ Real.sin t) i + have hc : Continuous c := by + apply continuous_pi + intro i + fin_cases i + · exact Real.continuous_cos + · exact Real.continuous_sin + have heq : (fun t : ℝ ↦ normalVector (t : Real.Angle)) = + (fun t ↦ WithLp.toLp 2 (c t)) := by + funext t + ext i + fin_cases i <;> rfl + rw [heq] + exact (PiLp.continuous_toLp (2 : ENNReal) (fun _ : Fin 2 ↦ ℝ)).comp hc + +/-- Opposite real angles give opposite normal vectors. -/ +theorem normalVector_add_pi (t : ℝ) : + normalVector ((t + Real.pi : ℝ) : Real.Angle) = -normalVector (t : Real.Angle) := by + ext i + fin_cases i <;> simp [normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe] + +/-- Opposite real angles give opposite tangent vectors. -/ +theorem tangentVector_add_pi (t : ℝ) : + tangentVector ((t + Real.pi : ℝ) : Real.Angle) = -tangentVector (t : Real.Angle) := by + ext i + fin_cases i <;> simp [tangentVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe] + +/-- The projection onto the normal direction of a real angle, in coordinates. -/ +theorem inner_normalVector_real (p : Point) (t : ℝ) : + inner ℝ p (normalVector (t : Real.Angle)) = p 0 * Real.cos t + p 1 * Real.sin t := by + simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + ring + +/-- The projection onto the tangent direction of a real angle, in coordinates. -/ +theorem inner_tangentVector_real (p : Point) (t : ℝ) : + inner ℝ p (tangentVector (t : Real.Angle)) = -(p 0 * Real.sin t) + p 1 * Real.cos t := by + simp [tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + ring + +/-- The inner product of two unit normals is the cosine of their angle difference. -/ +theorem inner_normalVector_normalVector (s t : ℝ) : + inner ℝ (normalVector (s : Real.Angle)) (normalVector (t : Real.Angle)) = + Real.cos (s - t) := by + simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two, Real.cos_sub] + ring + +/-- A normal vector has squared length one. -/ +theorem inner_normalVector_self (t : ℝ) : + inner ℝ (normalVector (t : Real.Angle)) (normalVector (t : Real.Angle)) = 1 := by + rw [inner_normalVector_normalVector] + simp + +/-- A normal vector at an angle has squared length one. -/ +theorem inner_normalVector_self_angle (t : Real.Angle) : + inner ℝ (normalVector t) (normalVector t) = 1 := by + induction t using Real.Angle.induction_on with + | _ r => exact inner_normalVector_self r + +/-- A normal vector at a real angle has length one. -/ +theorem norm_normalVector_real (t : ℝ) : ‖normalVector (t : Real.Angle)‖ = 1 := by + rw [← sq_eq_sq₀ (norm_nonneg _) (by norm_num : (0 : ℝ) ≤ 1)] + rw [EuclideanSpace.norm_sq_eq] + simp [normalVector, frame, Fin.sum_univ_two] + +theorem inner_normalVector_smul_add_inner_tangentVector_smul (p : Point) (t : Real.Angle) : + inner ℝ p (normalVector t) • normalVector t + + inner ℝ p (tangentVector t) • tangentVector t = p := by + ext i + fin_cases i <;> + simp [normalVector, tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two] <;> + nlinarith [congrArg (fun r : ℝ ↦ r * p 0) t.cos_sq_add_sin_sq, + congrArg (fun r : ℝ ↦ r * p 1) t.cos_sq_add_sin_sq] + +theorem normalVector_add_real (t δ : ℝ) : + normalVector ((t + δ : ℝ) : Real.Angle) = + Real.cos δ • normalVector (t : Real.Angle) + + Real.sin δ • tangentVector (t : Real.Angle) := by + ext i + fin_cases i <;> simp [normalVector, tangentVector, frame, -Real.Angle.coe_add, Real.cos_add, + Real.sin_add] <;> ring + +theorem inner_normalVector_tangentVector (t : ℝ) : + inner ℝ (normalVector (t : Real.Angle)) (tangentVector (t : Real.Angle)) = 0 := by + simp [normalVector, tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + ring + +theorem inner_tangentVector_self (t : ℝ) : + inner ℝ (tangentVector (t : Real.Angle)) (tangentVector (t : Real.Angle)) = 1 := by + rw [PiLp.inner_apply] + simp [tangentVector, frame, Fin.sum_univ_two, Real.sin_sq_add_cos_sq] + +theorem tangentVector_add_pi_div_two (t : ℝ) : + tangentVector ((t + Real.pi / 2 : ℝ) : Real.Angle) = -normalVector (t : Real.Angle) := by + ext i + fin_cases i <;> simp [normalVector, tangentVector, frame, + Real.Angle.sin_add_pi_div_two, Real.Angle.cos_add_pi_div_two] + +/-- Adding pi to an angle reverses its normal vector. -/ +theorem normalVector_add_pi_angle (a : Real.Angle) : + normalVector (a + ((Real.pi : ℝ) : Real.Angle)) = -normalVector a := by + induction a using Real.Angle.induction_on with + | _ a => simpa only [Real.Angle.coe_add] using normalVector_add_pi a + +/-- The sine convolution kernel is the negative normal projection of the moving tangent. -/ +theorem sin_sub_eq_neg_inner_normalVector_tangentVector (t u : Real.Angle) : + (u - t).sin = -inner ℝ (normalVector t) (tangentVector u) := by + induction t using Real.Angle.induction_on with + | _ t => + induction u using Real.Angle.induction_on with + | _ u => + change Real.sin (u - t) = _ + simp [normalVector, tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two, + Real.sin_sub] + ring + +/-- The normal projection of a tangent vector is the sine of the angle difference. -/ +theorem inner_tangentVector_normalVector_real (t s : ℝ) : + inner ℝ (tangentVector (t : Real.Angle)) (normalVector (s : Real.Angle)) = + Real.sin (s - t) := by + simp [tangentVector, normalVector, frame, PiLp.inner_apply, Real.sin_sub] + ring + +/-- The inner product of two unit tangents is the cosine of their angle difference. -/ +theorem inner_tangentVector_tangentVector (s t : ℝ) : + inner ℝ (tangentVector (s : Real.Angle)) (tangentVector (t : Real.Angle)) = + Real.cos (s - t) := by + simp [tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two, Real.cos_sub] + ring + +/-- The normal coordinate of a vector in the frame at another angle. -/ +theorem inner_normalVector_eq_frame_rotate (w : Point) (s t : ℝ) : + inner ℝ w (normalVector (t : Real.Angle)) = + inner ℝ w (normalVector (s : Real.Angle)) * Real.cos (s - t) - + inner ℝ w (tangentVector (s : Real.Angle)) * Real.sin (s - t) := by + nth_rewrite 1 [← inner_normalVector_smul_add_inner_tangentVector_smul w (s : Real.Angle)] + rw [inner_add_left, real_inner_smul_left, real_inner_smul_left, + inner_normalVector_normalVector, inner_tangentVector_normalVector_real, + show t - s = -(s - t) by ring, Real.sin_neg] + ring + +/-- The tangent coordinate of a vector in the frame at another angle. -/ +theorem inner_tangentVector_eq_frame_rotate (w : Point) (s t : ℝ) : + inner ℝ w (tangentVector (t : Real.Angle)) = + inner ℝ w (normalVector (s : Real.Angle)) * Real.sin (s - t) + + inner ℝ w (tangentVector (s : Real.Angle)) * Real.cos (s - t) := by + have hcross : inner ℝ (normalVector (s : Real.Angle)) (tangentVector (t : Real.Angle)) = + Real.sin (s - t) := by + rw [real_inner_comm] + exact inner_tangentVector_normalVector_real t s + nth_rewrite 1 [← inner_normalVector_smul_add_inner_tangentVector_smul w (s : Real.Angle)] + rw [inner_add_left, real_inner_smul_left, real_inner_smul_left, + inner_tangentVector_tangentVector, hcross] + +/-- Two points whose normal coordinates agree at two transverse angles coincide. -/ +theorem eq_of_inner_normalVector_eq {p q : Point} {s t : ℝ} + (hst : Real.sin (s - t) ≠ 0) + (hs : inner ℝ p (normalVector (s : Real.Angle)) = + inner ℝ q (normalVector (s : Real.Angle))) + (ht : inner ℝ p (normalVector (t : Real.Angle)) = + inner ℝ q (normalVector (t : Real.Angle))) : p = q := by + have hp := inner_normalVector_eq_frame_rotate p s t + have hq := inner_normalVector_eq_frame_rotate q s t + have hmul : (inner ℝ p (tangentVector (s : Real.Angle)) - + inner ℝ q (tangentVector (s : Real.Angle))) * Real.sin (s - t) = 0 := by + linear_combination hp - hq - ht + Real.cos (s - t) * hs + have hv : inner ℝ p (tangentVector (s : Real.Angle)) = + inner ℝ q (tangentVector (s : Real.Angle)) := + sub_eq_zero.mp ((mul_eq_zero.mp hmul).resolve_right hst) + calc p = inner ℝ p (normalVector (s : Real.Angle)) • normalVector (s : Real.Angle) + + inner ℝ p (tangentVector (s : Real.Angle)) • tangentVector (s : Real.Angle) := + (inner_normalVector_smul_add_inner_tangentVector_smul p (s : Real.Angle)).symm + _ = inner ℝ q (normalVector (s : Real.Angle)) • normalVector (s : Real.Angle) + + inner ℝ q (tangentVector (s : Real.Angle)) • tangentVector (s : Real.Angle) := by + rw [hs, hv] + _ = q := inner_normalVector_smul_add_inner_tangentVector_smul q (s : Real.Angle) + +/-- Each coordinate of the frame tangent is continuous in the angle. -/ +theorem continuous_tangentVector_coordinate (i : Fin 2) : + Continuous fun u : Real.Angle ↦ tangentVector u i := by + fin_cases i + · exact Real.Angle.continuous_sin.neg + · exact Real.Angle.continuous_cos + +/-- The frame tangent is a unit vector. -/ +theorem norm_tangentVector (t : Real.Angle) : ‖tangentVector t‖ = 1 := by + rw [← sq_eq_sq₀ (norm_nonneg _) (by norm_num : (0 : ℝ) ≤ 1), Point.norm_sq_eq] + simp [tangentVector, frame, add_comm] + +/-- Each coordinate of the frame tangent is bounded by one. -/ +theorem norm_tangentVector_coordinate_le_one (t : Real.Angle) (i : Fin 2) : + ‖tangentVector t i‖ ≤ 1 := by + simpa [Real.norm_eq_abs, norm_tangentVector t] using + Point.abs_apply_le_norm (tangentVector t) i + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Normal Lines +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A nontrivial segment has at most one normal direction strictly between zero and pi. -/ +theorem eq_of_inner_sub_normalVector_eq_zero_of_ne {a b : Point} {s t : ℝ} + (hs : s ∈ Set.Ioo 0 Real.pi) (ht : t ∈ Set.Ioo 0 Real.pi) (hab : a ≠ b) + (horths : inner ℝ (b - a) (normalVector (s : Real.Angle)) = 0) + (hortht : inner ℝ (b - a) (normalVector (t : Real.Angle)) = 0) : s = t := by + have hs' : (b 0 - a 0) * Real.cos s + (b 1 - a 1) * Real.sin s = 0 := by + simpa [normalVector, frame, PiLp.inner_apply, mul_comm] using horths + have ht' : (b 0 - a 0) * Real.cos t + (b 1 - a 1) * Real.sin t = 0 := by + simpa [normalVector, frame, PiLp.inner_apply, mul_comm] using hortht + have hxprod : (b 0 - a 0) * Real.sin (s - t) = 0 := by + rw [Real.sin_sub] + linear_combination Real.sin s * ht' - Real.sin t * hs' + have hyprod : (b 1 - a 1) * Real.sin (s - t) = 0 := by + rw [Real.sin_sub] + linear_combination Real.cos t * hs' - Real.cos s * ht' + have hsin : Real.sin (s - t) = 0 := by + by_contra hne + have hx : b 0 = a 0 := by + exact sub_eq_zero.mp ((mul_eq_zero.mp hxprod).resolve_right hne) + have hy : b 1 = a 1 := by + exact sub_eq_zero.mp ((mul_eq_zero.mp hyprod).resolve_right hne) + apply hab + ext i + fin_cases i + · exact hx.symm + · exact hy.symm + have hz := (Real.sin_eq_zero_iff_of_lt_of_lt + (by linarith [hs.1, ht.2]) (by linarith [hs.2, ht.1])).mp hsin + linarith + +/-- Normal lines with angles strictly between zero and pi agree exactly when their data agree. -/ +theorem normalLine_eq_iff_of_mem_Ioo {s t c d : ℝ} + (hs : s ∈ Set.Ioo 0 Real.pi) (ht : t ∈ Set.Ioo 0 Real.pi) : + normalLine (s : Real.Angle) c = normalLine (t : Real.Angle) d ↔ + s = t ∧ c = d := by + constructor + · intro hline + let p := c • normalVector (s : Real.Angle) + let q := p + tangentVector (s : Real.Angle) + have hp : p ∈ normalLine (s : Real.Angle) c := by + change inner ℝ p (normalVector (s : Real.Angle)) = c + rw [show p = c • normalVector (s : Real.Angle) by rfl, + real_inner_smul_left, inner_normalVector_self] + simp + have hq : q ∈ normalLine (s : Real.Angle) c := by + change inner ℝ q (normalVector (s : Real.Angle)) = c + rw [show q = p + tangentVector (s : Real.Angle) by rfl, inner_add_left] + rw [show inner ℝ p (normalVector (s : Real.Angle)) = c by exact hp] + rw [real_inner_comm, inner_normalVector_tangentVector, add_zero] + have hp' : p ∈ normalLine (t : Real.Angle) d := hline ▸ hp + have hq' : q ∈ normalLine (t : Real.Angle) d := hline ▸ hq + have hv : tangentVector (s : Real.Angle) ≠ 0 := by + intro hz + have hinner := inner_tangentVector_self s + rw [hz, inner_zero_left] at hinner + norm_num at hinner + have hsorth : inner ℝ (tangentVector (s : Real.Angle)) + (normalVector (s : Real.Angle)) = 0 := by + rw [real_inner_comm, inner_normalVector_tangentVector] + have htorth : inner ℝ (tangentVector (s : Real.Angle)) + (normalVector (t : Real.Angle)) = 0 := by + rw [show tangentVector (s : Real.Angle) = q - p by simp [q]] + rw [inner_sub_left, show inner ℝ q (normalVector (t : Real.Angle)) = d by exact hq', + show inner ℝ p (normalVector (t : Real.Angle)) = d by exact hp', sub_self] + have hst := eq_of_inner_sub_normalVector_eq_zero_of_ne + (a := 0) (b := tangentVector (s : Real.Angle)) hs ht hv.symm + (by simpa using hsorth) (by simpa using htorth) + subst t + refine ⟨rfl, ?_⟩ + change inner ℝ p (normalVector (s : Real.Angle)) = d at hp' + rw [show inner ℝ p (normalVector (s : Real.Angle)) = c by exact hp] at hp' + exact hp' + · rintro ⟨rfl, rfl⟩ + rfl + +/-- Opposite normal angles describe the same line with the opposite offset. -/ +theorem normalLine_eq_of_cut {a b c : ℝ} + (hab : ((b : ℝ) : Real.Angle) = ((a + Real.pi : ℝ) : Real.Angle)) : + normalLine ((b : ℝ) : Real.Angle) c = normalLine ((a : ℝ) : Real.Angle) (-c) := by + rw [hab] + ext p + simp only [normalLine, Set.mem_ofPred_eq, normalVector_add_pi, inner_neg_right] + constructor <;> intro h <;> linarith only [h] +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Quadrant Bounds +-/ + +@[expose] public section + +namespace MovingSofa + +/-- A horizontal lower bound cuts a first-quadrant pair of upper projection bounds to a bounded set. +-/ +theorem isBounded_setOf_le_snd_and_inner_lt (a b c t : ℝ) (ht : t ∈ Set.Ioo 0 (Real.pi / 2)) : + Bornology.IsBounded {p : Point | a ≤ p 1 ∧ + inner ℝ p (normalVector (t : Real.Angle)) < b ∧ + inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < c} := by + have hs : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi ht.1 + (ht.2.trans (by linarith [Real.pi_pos])) + have hc : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [ht.1, Real.pi_pos], ht.2⟩ + apply (EuclideanSpace.isBounded_coordinate_rectangle ((Real.cos t * a - c) / Real.sin t) + ((b - Real.sin t * a) / Real.cos t) a (Real.sin t * b + Real.cos t * c)).subset + rintro p ⟨hy, h₁, h₂⟩ + have hb : Real.cos t * p 0 + Real.sin t * p 1 < b := by + simpa [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two, mul_comm] using h₁ + have hd : -Real.sin t * p 0 + Real.cos t * p 1 < c := by + simpa [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two, + Real.cos_add, Real.sin_add, -Real.Angle.coe_add, mul_comm] using h₂ + refine ⟨?_, ?_, hy, ?_⟩ + · apply (div_le_iff₀ hs).2 + nlinarith only [hd, mul_le_mul_of_nonneg_left hy hc.le] + · apply (le_div_iff₀ hc).2 + nlinarith only [hb, mul_le_mul_of_nonneg_left hy hs.le] + · have hyid : (Real.sin t ^ 2 + Real.cos t ^ 2) * p 1 = p 1 := by + rw [Real.sin_sq_add_cos_sq, one_mul] + have hb' := mul_lt_mul_of_pos_left hb hs + have hd' := mul_lt_mul_of_pos_left hd hc + nlinarith only [hyid, hb', hd'] + +end MovingSofa + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The planar region under the graph of a function + +For `a b : ℝ` and `f : ℝ → ℝ` this file describes the three planar regions between the +horizontal axis and the graph of `f` over `[a, b]`: `closedSubgraph`, which contains both the +base segment and the graph, `strictSubgraph`, which contains the base but not the graph, and +`openSubgraph`, which contains neither. + +For a function continuous on `[a, b]`, vanishing at `a` and `b` and positive in between, the +closed region is the closure of either smaller region (`closure_openSubgraph`, +`closure_strictSubgraph`) and the open region is its interior (`interior_closedSubgraph`). +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A planar point is recovered from its two coordinates. -/ +theorem Point.eq_vecNotation (z : Point) : z = !₂[z 0, z 1] := by + ext i + fin_cases i <;> simp + +/-- The closed region between the base and the graph of `f` over `[a, b]`. -/ +def closedSubgraph (a b : ℝ) (f : ℝ → ℝ) : Set Point := + {q | a ≤ q 0 ∧ q 0 ≤ b ∧ 0 ≤ q 1 ∧ q 1 ≤ f (q 0)} + +/-- The region under the graph of `f` over `[a, b]`, including the base but not the graph. -/ +def strictSubgraph (a b : ℝ) (f : ℝ → ℝ) : Set Point := + {q | a ≤ q 0 ∧ q 0 ≤ b ∧ 0 ≤ q 1 ∧ q 1 < f (q 0)} + +/-- The open region strictly between the base and the graph of `f` over `(a, b)`. -/ +def openSubgraph (a b : ℝ) (f : ℝ → ℝ) : Set Point := + {q | a < q 0 ∧ q 0 < b ∧ 0 < q 1 ∧ q 1 < f (q 0)} + +section Subgraph + +variable {a b : ℝ} {f : ℝ → ℝ} + +/-- The open subgraph omits the base, which the strict subgraph contains. -/ +theorem openSubgraph_subset_strictSubgraph : openSubgraph a b f ⊆ strictSubgraph a b f := + fun _ h ↦ ⟨h.1.le, h.2.1.le, h.2.2.1.le, h.2.2.2⟩ + +/-- The strict subgraph omits the graph, which the closed subgraph contains. -/ +theorem strictSubgraph_subset_closedSubgraph : strictSubgraph a b f ⊆ closedSubgraph a b f := + fun _ h ↦ ⟨h.1, h.2.1, h.2.2.1, h.2.2.2.le⟩ + +/-- The open subgraph is contained in the closed one. -/ +theorem openSubgraph_subset_closedSubgraph : openSubgraph a b f ⊆ closedSubgraph a b f := + openSubgraph_subset_strictSubgraph.trans strictSubgraph_subset_closedSubgraph + +/-- The vertical line through a fixed horizontal coordinate is continuous. -/ +private theorem continuous_verticalLine (c : ℝ) : + Continuous fun y : ℝ ↦ (!₂[c, y] : Point) := + (PiLp.continuous_toLp (2 : ENNReal) fun _ : Fin 2 ↦ ℝ).comp + (continuous_const.matrixVecCons (continuous_id.matrixVecCons continuous_const)) + +/-- The closed subgraph of a function continuous on the base interval is closed. -/ +theorem isClosed_closedSubgraph (hf : ContinuousOn f (Set.Icc a b)) : + IsClosed (closedSubgraph a b f) := by + have hc0 : Continuous fun q : Point ↦ q 0 := PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 0 + have hc1 : Continuous fun q : Point ↦ q 1 := PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 1 + have hSclosed : IsClosed {q : Point | q 0 ∈ Set.Icc a b} := isClosed_Icc.preimage hc0 + have hgS : ContinuousOn (fun q : Point ↦ f (q 0) - q 1) {q : Point | q 0 ∈ Set.Icc a b} := + (hf.comp hc0.continuousOn fun q hq ↦ hq).sub hc1.continuousOn + have hone := hgS.preimage_isClosed_of_isClosed hSclosed (isClosed_Ici (a := (0 : ℝ))) + have htwo : IsClosed {q : Point | 0 ≤ q 1} := isClosed_Ici.preimage hc1 + have hsplit : closedSubgraph a b f = ({q : Point | q 0 ∈ Set.Icc a b} ∩ + (fun q : Point ↦ f (q 0) - q 1) ⁻¹' Set.Ici 0) ∩ {q : Point | 0 ≤ q 1} := by + ext q + simp only [closedSubgraph, Set.mem_ofPred_eq, Set.mem_inter_iff, Set.mem_Icc, + Set.mem_preimage, Set.mem_Ici, sub_nonneg] + tauto + rw [hsplit] + exact hone.inter htwo + +/-- The open subgraph of a function continuous on the base interval is open. -/ +theorem isOpen_openSubgraph (hf : ContinuousOn f (Set.Icc a b)) : + IsOpen (openSubgraph a b f) := by + have hc0 : Continuous fun q : Point ↦ q 0 := PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 0 + have hc1 : Continuous fun q : Point ↦ q 1 := PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 1 + rw [isOpen_iff_mem_nhds] + rintro p ⟨h1, h2, h3, h4⟩ + have hfat : ContinuousAt f (p 0) := + (hf.mono Set.Ioo_subset_Icc_self).continuousAt (Ioo_mem_nhds h1 h2) + have hgap : ContinuousAt (fun q : Point ↦ f (q 0) - q 1) p := + (ContinuousAt.comp (g := f) (f := fun q : Point ↦ q 0) (x := p) hfat + hc0.continuousAt).sub hc1.continuousAt + filter_upwards [hc0.continuousAt (isOpen_Ioo.mem_nhds (⟨h1, h2⟩ : p 0 ∈ Set.Ioo a b)), + hc1.continuousAt (isOpen_Ioi.mem_nhds (show p 1 ∈ Set.Ioi (0 : ℝ) from h3)), + hgap (isOpen_Ioi.mem_nhds (show f (p 0) - p 1 ∈ Set.Ioi (0 : ℝ) from sub_pos.mpr h4))] + with q hq1 hq2 hq3 + exact ⟨hq1.1, hq1.2, hq2, by simpa using sub_pos.mp hq3⟩ + +/-- The closed subgraph is the closure of the open one: interior graph points are limits from +below, base points at interior horizontal coordinates are limits from above, and the two +corners are limits of half-height points over the open base interval. -/ +theorem closure_openSubgraph (hab : a < b) (hf : ContinuousOn f (Set.Icc a b)) + (ha : f a = 0) (hb : f b = 0) (hpos : ∀ x ∈ Set.Ioo a b, 0 < f x) : + closure (openSubgraph a b f) = closedSubgraph a b f := by + refine Set.Subset.antisymm ((isClosed_closedSubgraph hf).closure_subset_iff.mpr ?_) ?_ + · rintro q ⟨h1, h2, h3, h4⟩ + exact ⟨h1.le, h2.le, h3.le, h4.le⟩ + · have hF : ContinuousOn (fun c ↦ (!₂[c, f c / 2] : Point)) (Set.Icc a b) := + (PiLp.continuous_toLp (2 : ENNReal) fun _ : Fin 2 ↦ ℝ).comp_continuousOn + (continuous_id.continuousOn.matrixVecCons + ((hf.div_const 2).matrixVecCons continuousOn_const)) + have hFsub : (fun c ↦ (!₂[c, f c / 2] : Point)) '' Set.Ioo a b ⊆ openSubgraph a b f := by + rintro _ ⟨c, hc, rfl⟩ + have hfc := hpos c hc + exact ⟨by simpa using hc.1, by simpa using hc.2, by simpa using by linarith, + by simpa using by linarith⟩ + have hcl : closure (Set.Ioo a b) = Set.Icc a b := closure_Ioo hab.ne + have hF' : ContinuousOn (fun c ↦ (!₂[c, f c / 2] : Point)) (closure (Set.Ioo a b)) := by + rw [hcl]; exact hF + have hcorner : ∀ c ∈ Set.Icc a b, (!₂[c, f c / 2] : Point) ∈ closure (openSubgraph a b f) := + fun c hc ↦ closure_mono hFsub (hF'.image_closure ⟨c, by rw [hcl]; exact hc, rfl⟩) + rintro q ⟨h1, h2, h3, h4⟩ + rcases eq_or_lt_of_le h1 with hqa | hqa + · have : q 1 = 0 := le_antisymm (by rw [← hqa, ha] at h4; exact h4) h3 + have hq : q = !₂[a, f a / 2] := by + rw [Point.eq_vecNotation q, ← hqa, this, ha] + norm_num + rw [hq] + exact hcorner a ⟨le_rfl, hab.le⟩ + rcases eq_or_lt_of_le h2 with hqb | hqb + · have : q 1 = 0 := le_antisymm (by rw [hqb, hb] at h4; exact h4) h3 + have hq : q = !₂[b, f b / 2] := by + rw [Point.eq_vecNotation q, hqb, this, hb] + norm_num + rw [hq] + exact hcorner b ⟨hab.le, le_rfl⟩ + · have hfc : 0 < f (q 0) := hpos _ ⟨hqa, hqb⟩ + have hsub : (fun y : ℝ ↦ (!₂[q 0, y] : Point)) '' Set.Ioo 0 (f (q 0)) ⊆ + openSubgraph a b f := by + rintro _ ⟨y, hy, rfl⟩ + exact ⟨by simpa using hqa, by simpa using hqb, by simpa using hy.1, + by simpa using hy.2⟩ + refine closure_mono hsub ?_ + have := image_closure_subset_closure_image (continuous_verticalLine (q 0)) + (s := Set.Ioo 0 (f (q 0))) + ⟨q 1, by rw [closure_Ioo hfc.ne]; exact ⟨h3, h4⟩, rfl⟩ + have heq : (!₂[q 0, q 1] : Point) = q := (Point.eq_vecNotation q).symm + simpa only [heq] using this + +/-- A point of the closed subgraph which is not in the open one lies on the base or on the +graph, hence is a limit of points outside the closed subgraph. -/ +private theorem mem_closure_compl_closedSubgraph (ha : f a = 0) (hb : f b = 0) + {q : Point} (hq : q ∈ closedSubgraph a b f) + (hq' : q ∉ openSubgraph a b f) : q ∈ closure (closedSubgraph a b f)ᶜ := by + obtain ⟨h1, h2, h3, h4⟩ := hq + have hbelow : q 1 = 0 → q ∈ closure (closedSubgraph a b f)ᶜ := by + intro hz + have hsub : (fun y : ℝ ↦ (!₂[q 0, y] : Point)) '' Set.Iio 0 ⊆ + (closedSubgraph a b f)ᶜ := by + rintro _ ⟨y, hy, rfl⟩ + intro hmem + have h := hmem.2.2.1 + simp only [Matrix.cons_val_one, Matrix.cons_val_fin_one] at h + exact absurd h (not_le.mpr hy) + refine closure_mono hsub ?_ + have := image_closure_subset_closure_image (continuous_verticalLine (q 0)) (s := Set.Iio 0) + ⟨q 1, by rw [closure_Iio]; exact hz.le, rfl⟩ + have heq : (!₂[q 0, q 1] : Point) = q := (Point.eq_vecNotation q).symm + simpa only [heq] using this + rcases eq_or_lt_of_le h3 with hz | hz + · exact hbelow hz.symm + rcases eq_or_lt_of_le h4 with htop | htop + · -- the point sits on the graph, which is strictly above the base here + have hfpos : 0 < f (q 0) := htop ▸ hz + have hsub : (fun y : ℝ ↦ (!₂[q 0, y] : Point)) '' Set.Ioi (f (q 0)) ⊆ + (closedSubgraph a b f)ᶜ := by + rintro _ ⟨y, hy, rfl⟩ + intro hmem + have h := hmem.2.2.2 + simp only [Matrix.cons_val_zero, Matrix.cons_val_one, Matrix.cons_val_fin_one] at h + exact absurd h (not_le.mpr hy) + refine closure_mono hsub ?_ + have := image_closure_subset_closure_image (continuous_verticalLine (q 0)) + (s := Set.Ioi (f (q 0))) ⟨q 1, by rw [closure_Ioi]; exact htop.ge, rfl⟩ + have heq : (!₂[q 0, q 1] : Point) = q := (Point.eq_vecNotation q).symm + simpa only [heq] using this + · -- strictly between base and graph: the horizontal coordinate must be interior + exfalso + have hfpos : 0 < f (q 0) := hz.trans htop + have hqa : a < q 0 := by + rcases eq_or_lt_of_le h1 with h | h + · rw [← h, ha] at hfpos; exact absurd hfpos (lt_irrefl 0) + · exact h + have hqb : q 0 < b := by + rcases eq_or_lt_of_le h2 with h | h + · rw [h, hb] at hfpos; exact absurd hfpos (lt_irrefl 0) + · exact h + exact hq' ⟨hqa, hqb, hz, htop⟩ + +/-- The open subgraph is the interior of the closed one. -/ +theorem interior_closedSubgraph (hf : ContinuousOn f (Set.Icc a b)) + (ha : f a = 0) (hb : f b = 0) : + interior (closedSubgraph a b f) = openSubgraph a b f := by + refine Set.Subset.antisymm ?_ (interior_maximal openSubgraph_subset_closedSubgraph + (isOpen_openSubgraph hf)) + intro q hq + by_contra hqU + have h2 := mem_closure_compl_closedSubgraph ha hb (interior_subset hq) hqU + rw [closure_compl] at h2 + exact h2 hq + +/-- The closed subgraph is also the closure of the strict subgraph. -/ +theorem closure_strictSubgraph (hab : a < b) (hf : ContinuousOn f (Set.Icc a b)) + (ha : f a = 0) (hb : f b = 0) (hpos : ∀ x ∈ Set.Ioo a b, 0 < f x) : + closure (strictSubgraph a b f) = closedSubgraph a b f := by + refine Set.Subset.antisymm + ((isClosed_closedSubgraph hf).closure_subset_iff.mpr + strictSubgraph_subset_closedSubgraph) ?_ + rw [← closure_openSubgraph hab hf ha hb hpos] + exact closure_mono openSubgraph_subset_strictSubgraph + +end Subgraph + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Support +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A compact convex body attains its support value in every normal direction. -/ +theorem exists_mem_inner_eq_supportValue (K : ConvexBody Point) (t : Real.Angle) : + ∃ p ∈ (K : Set Point), inner ℝ p (normalVector t) = supportValue K t := by + obtain ⟨p, hp, hmax, _⟩ := K.isCompact.exists_sSup_image_eq_and_ge + (f := fun p : Point ↦ inner ℝ p (normalVector t)) K.nonempty + (continuous_inner.comp (continuous_id.prodMk continuous_const)).continuousOn + exact ⟨p, hp, by simpa only [supportValue] using hmax.symm⟩ + +/-- Translating a nonempty compact set adds the normal component to its support value. -/ +theorem supportValue_image_add_of_isCompact {s : Set Point} + (hs : IsCompact s) (hne : s.Nonempty) (v : Point) (t : Real.Angle) : + supportValue ((fun p ↦ p + v) '' s) t = + supportValue s t + inner ℝ v (normalVector t) := by + obtain ⟨x, hx, hmax, hbound⟩ := hs.exists_sSup_image_eq_and_ge + (f := fun p : Point ↦ inner ℝ p (normalVector t)) hne + (continuous_inner.comp (continuous_id.prodMk continuous_const)).continuousOn + apply IsGreatest.csSup_eq + constructor + · refine ⟨x + v, ⟨x, hx, rfl⟩, ?_⟩ + simpa only [inner_add_left, supportValue] using congrArg + (fun r ↦ r + inner ℝ v (normalVector t)) hmax.symm + · rintro z ⟨y, ⟨p, hp, rfl⟩, rfl⟩ + simp only [inner_add_left] + simpa only [supportValue, hmax] using + add_le_add (hbound p hp) (le_refl (inner ℝ v (normalVector t))) + +/-- Translating a compact convex body adds the normal component of the translation to support. -/ +theorem supportValue_image_add (K : ConvexBody Point) (v : Point) (t : Real.Angle) : + supportValue ((fun p ↦ p + v) '' (K : Set Point)) t = + supportValue K t + inner ℝ v (normalVector t) := + supportValue_image_add_of_isCompact K.isCompact K.nonempty v t + +/-- Every point of a compact set lies below its support value. -/ +theorem inner_le_supportValue_of_isCompact {s : Set Point} + (hs : IsCompact s) {p : Point} (hp : p ∈ s) (a : Real.Angle) : + inner ℝ p (normalVector a) ≤ supportValue s a := by + apply le_csSup (hs.image + (continuous_inner.comp (continuous_id.prodMk continuous_const))).bddAbove + exact ⟨p, hp, rfl⟩ + +/-- A point of a convex body lies below each supporting line. -/ +theorem inner_le_supportValue (K : ConvexBody Point) {p : Point} + (hp : p ∈ K) (t : Real.Angle) : inner ℝ p (normalVector t) ≤ supportValue K t := + inner_le_supportValue_of_isCompact K.isCompact hp t + +/-- Containment in a closed normal half-plane bounds the support value. -/ +theorem supportValue_le_of_subset_normalHalfPlane (K : ConvexBody Point) + (t : Real.Angle) (c : ℝ) + (hK : (K : Set Point) ⊆ normalHalfPlane t c false false) : + supportValue K t ≤ c := by + apply csSup_le (K.nonempty.image _) + rintro _ ⟨p, hp, rfl⟩ + exact hK hp + +/-- Enlarging a nonempty set without increasing its directional upper bound preserves support. -/ +theorem supportValue_eq_of_subset_of_inner_le {s u : Set Point} + (hs : s.Nonempty) (hsu : s ⊆ u) (a : Real.Angle) + (hu : ∀ p ∈ u, inner ℝ p (normalVector a) ≤ supportValue s a) : + supportValue u a = supportValue s a := by + have hbounded : BddAbove ((fun p ↦ inner ℝ p (normalVector a)) '' u) := + ⟨supportValue s a, by rintro _ ⟨p, hp, rfl⟩; exact hu p hp⟩ + apply le_antisymm + · exact csSup_le ((hs.mono hsu).image _) (by rintro _ ⟨p, hp, rfl⟩; exact hu p hp) + · exact csSup_le_csSup hbounded (hs.image _) (Set.image_mono hsu) + +/-- A convex set meets every intermediate level of a linear functional. -/ +theorem exists_mem_inner_eq_of_convex {s : Set Point} (hconv : Convex ℝ s) + {A C : Point} (hA : A ∈ s) (hC : C ∈ s) {u : Point} {c : ℝ} + (hCle : inner ℝ C u ≤ c) (hAge : c ≤ inner ℝ A u) : + ∃ q ∈ s, inner ℝ q u = c := by + rcases eq_or_lt_of_le (hCle.trans hAge) with heq | hlt + · exact ⟨C, hC, le_antisymm hCle (heq ▸ hAge)⟩ + · set d : ℝ := inner ℝ A u - inner ℝ C u with hd + have hdpos : 0 < d := by simp only [hd]; linarith + set lam : ℝ := (c - inner ℝ C u) / d with hlam + have hlam0 : 0 ≤ lam := div_nonneg (by linarith) hdpos.le + have hlam1 : lam ≤ 1 := by + rw [hlam, div_le_one hdpos] + simp only [hd]; linarith + refine ⟨lam • A + (1 - lam) • C, hconv hA hC hlam0 (by linarith) (by ring), ?_⟩ + rw [inner_add_left, real_inner_smul_left, real_inner_smul_left, hlam] + field_simp + simp only [hd] + ring + +/-- Support bound in the direction opposite to a cut line lying below the set. -/ +theorem supportValue_le_of_cut {s : Set Point} (hne : s.Nonempty) {a b c : ℝ} + (hab : ((b : ℝ) : Real.Angle) = ((a + Real.pi : ℝ) : Real.Angle)) + (hs : ∀ p ∈ s, c ≤ inner ℝ p (normalVector (a : Real.Angle))) : + supportValue s ((b : ℝ) : Real.Angle) ≤ -c := by + rw [hab] + refine csSup_le (hne.image _) ?_ + rintro _ ⟨p, hp, rfl⟩ + dsimp only + rw [normalVector_add_pi, inner_neg_right] + linarith only [hs p hp] + +/-- A contact point on a cut line attains the opposite support value. -/ +theorem le_supportValue_of_cut {s : Set Point} (hcomp : IsCompact s) {a b c : ℝ} {p : Point} + (hab : ((b : ℝ) : Real.Angle) = ((a + Real.pi : ℝ) : Real.Angle)) (hp : p ∈ s) + (hpc : inner ℝ p (normalVector (a : Real.Angle)) = c) : + -c ≤ supportValue s ((b : ℝ) : Real.Angle) := by + rw [hab] + have h := inner_le_supportValue_of_isCompact hcomp hp ((a + Real.pi : ℝ) : Real.Angle) + rw [normalVector_add_pi, inner_neg_right, hpc] at h + linarith only [h] +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Contacts +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The exposed edge at a normal direction, including singleton edges. -/ +def exposedEdge (K : ConvexBody Point) (t : Real.Angle) : Set Point := + (K : Set Point) ∩ (supportingLineHalfPlane K t).1 + +/-- The positive and negative tangent endpoints of an exposed edge. -/ +def edgeVertices (K : ConvexBody Point) (t : Real.Angle) : Point × Point := + let heights := (fun p ↦ inner ℝ p (tangentVector t)) '' exposedEdge K t + (supportValue K t • normalVector t + sSup heights • tangentVector t, + supportValue K t • normalVector t + sInf heights • tangentVector t) + +/-- The intersection point of two supporting lines at nonparallel normal directions. -/ +def supportingIntersection (K : ConvexBody Point) (a b : Real.Angle) : Point := + supportValue K a • normalVector a + + ((supportValue K b - supportValue K a * (b - a).cos) / (b - a).sin) • tangentVector a + +theorem exposedEdge_nonempty (K : ConvexBody Point) (t : Real.Angle) : + (exposedEdge K t).Nonempty := by + obtain ⟨x, hx, hxmax, _⟩ := K.isCompact.exists_sSup_image_eq_and_ge + (f := fun x : Point ↦ inner ℝ x (normalVector t)) K.nonempty + (continuous_inner.comp (continuous_id.prodMk continuous_const)).continuousOn + refine ⟨x, hx, ?_⟩ + simpa [supportingLineHalfPlane, normalLine, supportValue] using hxmax.symm + +theorem convex_exposedEdge (K : ConvexBody Point) (t : Real.Angle) : + Convex ℝ (exposedEdge K t) := by + apply K.convex.inter + intro x hx y hy a b ha hb hab + change inner ℝ x (normalVector t) = supportValue K t at hx + change inner ℝ y (normalVector t) = supportValue K t at hy + change inner ℝ (a • x + b • y) (normalVector t) = supportValue K t + rw [inner_add_left, inner_smul_left, inner_smul_left, hx, hy] + simp only [RCLike.conj_to_real] + rw [← add_mul, hab, one_mul] + +theorem isConnected_exposedEdge (K : ConvexBody Point) (t : Real.Angle) : + IsConnected (exposedEdge K t) := + (convex_exposedEdge K t).isConnected (exposedEdge_nonempty K t) + +theorem supportingIntersection_inner_left (K : ConvexBody Point) (s t : ℝ) : + inner ℝ (supportingIntersection K (s : Real.Angle) (t : Real.Angle)) + (normalVector (s : Real.Angle)) = supportValue K (s : Real.Angle) := by + have htn : inner ℝ (tangentVector (s : Real.Angle)) (normalVector (s : Real.Angle)) = 0 := by + rw [real_inner_comm, inner_normalVector_tangentVector] + simp only [supportingIntersection, inner_add_left, real_inner_smul_left, + inner_normalVector_self, htn, mul_one, mul_zero, add_zero] + +theorem supportingIntersection_inner_right (K : ConvexBody Point) (s t : ℝ) + (h : Real.sin (t - s) ≠ 0) : + inner ℝ (supportingIntersection K (s : Real.Angle) (t : Real.Angle)) + (normalVector (t : Real.Angle)) = supportValue K (t : Real.Angle) := by + have hn : normalVector (t : Real.Angle) = + Real.cos (t - s) • normalVector (s : Real.Angle) + + Real.sin (t - s) • tangentVector (s : Real.Angle) := by + simpa only [add_sub_cancel] using normalVector_add_real s (t - s) + rw [hn, inner_add_right, inner_smul_right, inner_smul_right, + supportingIntersection_inner_left] + simp only [supportingIntersection, inner_add_left, real_inner_smul_left, + inner_normalVector_tangentVector, inner_tangentVector_self, mul_zero, mul_one, zero_add, + ← Real.Angle.coe_sub, Real.Angle.cos_coe, Real.Angle.sin_coe] + field_simp + ring + +theorem supportingIntersection_comm (K : ConvexBody Point) (s t : ℝ) + (h : Real.sin (t - s) ≠ 0) : + supportingIntersection K (s : Real.Angle) (t : Real.Angle) = + supportingIntersection K (t : Real.Angle) (s : Real.Angle) := by + have h' : Real.sin (s - t) ≠ 0 := by + rw [show s - t = -(t - s) by ring, Real.sin_neg] + exact neg_ne_zero.mpr h + let p := supportingIntersection K (t : Real.Angle) (s : Real.Angle) + have hp := supportingIntersection_inner_right K t s h' + have hq := supportingIntersection_inner_left K t s + change inner ℝ p (normalVector (s : Real.Angle)) = _ at hp + change inner ℝ p (normalVector (t : Real.Angle)) = _ at hq + have hn : normalVector (t : Real.Angle) = + Real.cos (t - s) • normalVector (s : Real.Angle) + + Real.sin (t - s) • tangentVector (s : Real.Angle) := by + simpa only [add_sub_cancel] using normalVector_add_real s (t - s) + rw [hn, inner_add_right, inner_smul_right, inner_smul_right, hp] at hq + have ht : inner ℝ p (tangentVector (s : Real.Angle)) = + (supportValue K (t : Real.Angle) - supportValue K (s : Real.Angle) * + Real.cos (t - s)) / Real.sin (t - s) := by + apply (eq_div_iff h).mpr + linarith + have heq := inner_normalVector_smul_add_inner_tangentVector_smul p (s : Real.Angle) + rw [hp, ht] at heq + simpa only [p, supportingIntersection, ← Real.Angle.coe_sub, Real.Angle.cos_coe, + Real.Angle.sin_coe] using heq + +/-- Every exposed edge of a compact convex body is compact. -/ +theorem isCompact_exposedEdge (K : ConvexBody Point) (t : Real.Angle) : + IsCompact (exposedEdge K t) := + K.isCompact.inter_right (isClosed_eq + (continuous_id.inner continuous_const) continuous_const) + +/-- The positive tangent endpoint belongs to its exposed edge. -/ +theorem edgeVertices_fst_mem (K : ConvexBody Point) (t : Real.Angle) : + (edgeVertices K t).1 ∈ exposedEdge K t := by + obtain ⟨p, hp, hmax⟩ := (isCompact_exposedEdge K t).exists_sSup_image_eq + (exposedEdge_nonempty K t) + (f := fun p : Point ↦ inner ℝ p (tangentVector t)) + (continuous_id.inner continuous_const).continuousOn + have hpnormal : inner ℝ p (normalVector t) = supportValue K t := hp.2 + have heq : (edgeVertices K t).1 = p := by + change supportValue K t • normalVector t + + sSup ((fun q ↦ inner ℝ q (tangentVector t)) '' exposedEdge K t) • tangentVector t = p + rw [hmax, ← hpnormal] + exact inner_normalVector_smul_add_inner_tangentVector_smul p t + exact heq ▸ hp + +/-- The negative tangent endpoint belongs to its exposed edge. -/ +theorem edgeVertices_snd_mem (K : ConvexBody Point) (t : Real.Angle) : + (edgeVertices K t).2 ∈ exposedEdge K t := by + obtain ⟨p, hp, hmin⟩ := (isCompact_exposedEdge K t).exists_sInf_image_eq + (exposedEdge_nonempty K t) + (f := fun p : Point ↦ inner ℝ p (tangentVector t)) + (continuous_id.inner continuous_const).continuousOn + have hpnormal : inner ℝ p (normalVector t) = supportValue K t := hp.2 + have heq : (edgeVertices K t).2 = p := by + change supportValue K t • normalVector t + + sInf ((fun q ↦ inner ℝ q (tangentVector t)) '' exposedEdge K t) • tangentVector t = p + rw [hmin, ← hpnormal] + exact inner_normalVector_smul_add_inner_tangentVector_smul p t + exact heq ▸ hp + +/-- A singleton exposed face is both of its tangent endpoints. -/ +theorem edgeVertices_eq_of_exposedEdge_singleton {K : ConvexBody Point} {t : Real.Angle} + {p : Point} (h : exposedEdge K t = {p}) : edgeVertices K t = (p, p) := by + have h1 := edgeVertices_fst_mem K t + have h2 := edgeVertices_snd_mem K t + rw [h, Set.mem_singleton_iff] at h1 h2 + exact Prod.ext h1 h2 + +/-- The positive face vertex attains the largest tangent coordinate. -/ +theorem inner_edgeVertices_fst_tangent (K : ConvexBody Point) (t : Real.Angle) : + inner ℝ (edgeVertices K t).1 (tangentVector t) = + sSup ((fun p ↦ inner ℝ p (tangentVector t)) '' exposedEdge K t) := by + induction t using Real.Angle.induction_on with + | _ t => + simp only [edgeVertices, inner_add_left, real_inner_smul_left, + inner_normalVector_tangentVector, inner_tangentVector_self] + ring + +/-- The negative face vertex attains the smallest tangent coordinate. -/ +theorem inner_edgeVertices_snd_tangent (K : ConvexBody Point) (t : Real.Angle) : + inner ℝ (edgeVertices K t).2 (tangentVector t) = + sInf ((fun p ↦ inner ℝ p (tangentVector t)) '' exposedEdge K t) := by + induction t using Real.Angle.induction_on with + | _ t => + simp only [edgeVertices, inner_add_left, real_inner_smul_left, + inner_normalVector_tangentVector, inner_tangentVector_self] + ring + +private theorem exposedEdge_subset_segment_edgeVertices (K : ConvexBody Point) + (t : Real.Angle) : + exposedEdge K t ⊆ segment ℝ (edgeVertices K t).2 (edgeVertices K t).1 := by + intro p hp + let lo := (edgeVertices K t).2 + let hi := (edgeVertices K t).1 + let z := inner ℝ p (tangentVector t) + let zlo := inner ℝ lo (tangentVector t) + let zhi := inner ℝ hi (tangentVector t) + have hbddBelow : BddBelow ((fun q ↦ inner ℝ q (tangentVector t)) '' exposedEdge K t) := + (isCompact_exposedEdge K t).image + (continuous_id.inner continuous_const) |>.bddBelow + have hbddAbove : BddAbove ((fun q ↦ inner ℝ q (tangentVector t)) '' exposedEdge K t) := + (isCompact_exposedEdge K t).image + (continuous_id.inner continuous_const) |>.bddAbove + have hzmem : z ∈ (fun q ↦ inner ℝ q (tangentVector t)) '' exposedEdge K t := + ⟨p, hp, rfl⟩ + have hzlo : zlo ≤ z := by + dsimp only [zlo, z, lo] + rw [inner_edgeVertices_snd_tangent] + exact csInf_le hbddBelow hzmem + have hzhi : z ≤ zhi := by + dsimp only [zhi, z, hi] + rw [inner_edgeVertices_fst_tangent] + exact le_csSup hbddAbove hzmem + by_cases hzh : zlo = zhi + · have hz : z = zlo := le_antisymm (hzhi.trans_eq hzh.symm) hzlo + have hpnormal : inner ℝ p (normalVector t) = supportValue K t := hp.2 + have hlonormal : inner ℝ lo (normalVector t) = supportValue K t := + (edgeVertices_snd_mem K t).2 + have hpl : p = lo := by + rw [← inner_normalVector_smul_add_inner_tangentVector_smul p t, + ← inner_normalVector_smul_add_inner_tangentVector_smul lo t, + hpnormal, hlonormal] + change inner ℝ p (tangentVector t) = inner ℝ lo (tangentVector t) at hz + rw [hz] + simpa only [lo, hi, hpl] using left_mem_segment ℝ lo hi + · have hlt : zlo < zhi := lt_of_le_of_ne (hzlo.trans hzhi) hzh + let u := (z - zlo) / (zhi - zlo) + have hu : u ∈ Set.Icc (0 : ℝ) 1 := by + constructor + · exact div_nonneg (sub_nonneg.mpr hzlo) (sub_nonneg.mpr hlt.le) + · rw [div_le_one (sub_pos.mpr hlt)] + linarith + rw [segment_eq_image] + refine ⟨u, hu, ?_⟩ + change (1 - u) • lo + u • hi = p + have hpnormal : inner ℝ p (normalVector t) = supportValue K t := hp.2 + have hlonormal : inner ℝ lo (normalVector t) = supportValue K t := + (edgeVertices_snd_mem K t).2 + have hhinormal : inner ℝ hi (normalVector t) = supportValue K t := + (edgeVertices_fst_mem K t).2 + have hnormal : inner ℝ ((1 - u) • lo + u • hi) (normalVector t) = + inner ℝ p (normalVector t) := by + simp only [inner_add_left, real_inner_smul_left, hlonormal, hhinormal, hpnormal] + ring + have htangent : inner ℝ ((1 - u) • lo + u • hi) (tangentVector t) = + inner ℝ p (tangentVector t) := by + simp only [inner_add_left, real_inner_smul_left] + change (1 - u) * zlo + u * zhi = z + dsimp [u] + field_simp [sub_ne_zero.mpr (ne_of_gt hlt)] + ring + rw [← inner_normalVector_smul_add_inner_tangentVector_smul + ((1 - u) • lo + u • hi) t, + ← inner_normalVector_smul_add_inner_tangentVector_smul p t, + hnormal, htangent] + +/-- An exposed face is the segment joining its two tangent-extreme vertices. -/ +theorem exposedEdge_eq_segment_edgeVertices (K : ConvexBody Point) + (t : Real.Angle) : + exposedEdge K t = segment ℝ (edgeVertices K t).2 (edgeVertices K t).1 := by + apply Set.Subset.antisymm (exposedEdge_subset_segment_edgeVertices K t) + exact (convex_exposedEdge K t).segment_subset + (edgeVertices_snd_mem K t) (edgeVertices_fst_mem K t) + +/-- An exposed face determines the support value and both of its endpoint vertices. -/ +theorem edgeVertices_eq_of_exposedEdge_eq (K L : ConvexBody Point) (u : Real.Angle) + (h : exposedEdge K u = exposedEdge L u) : edgeVertices K u = edgeVertices L u := by + obtain ⟨p, hp⟩ := exposedEdge_nonempty K u + have hpL : p ∈ exposedEdge L u := h ▸ hp + have hK : inner ℝ p (normalVector u) = supportValue K u := hp.2 + have hL : inner ℝ p (normalVector u) = supportValue L u := hpL.2 + simp only [edgeVertices, hK.symm.trans hL, h] + +/-- A support-line intersection in the body is the negative endpoint at the later normal. -/ +theorem supportingIntersection_eq_edgeVertices_snd_of_mem (K : ConvexBody Point) {a b : ℝ} + (hab : 0 < b - a) (hpi : b - a < Real.pi) + (hp : supportingIntersection K (a : Real.Angle) (b : Real.Angle) ∈ K) : + supportingIntersection K (a : Real.Angle) (b : Real.Angle) = + (edgeVertices K (b : Real.Angle)).2 := by + let p := supportingIntersection K (a : Real.Angle) (b : Real.Angle) + let e := (edgeVertices K (b : Real.Angle)).2 + have hsin : 0 < Real.sin (b - a) := Real.sin_pos_of_pos_of_lt_pi hab hpi + have hsina : Real.sin (a - b) < 0 := by + rw [show a - b = -(b - a) by ring, Real.sin_neg] + exact neg_neg_of_pos hsin + have hpa : inner ℝ p (normalVector (a : Real.Angle)) = + supportValue K (a : Real.Angle) := supportingIntersection_inner_left K a b + have hpb : inner ℝ p (normalVector (b : Real.Angle)) = + supportValue K (b : Real.Angle) := + supportingIntersection_inner_right K a b hsin.ne' + have hpedge : p ∈ exposedEdge K (b : Real.Angle) := ⟨hp, hpb⟩ + have heedge := edgeVertices_snd_mem K (b : Real.Angle) + have hen : inner ℝ e (normalVector (b : Real.Angle)) = + supportValue K (b : Real.Angle) := heedge.2 + have hpt : inner ℝ p (tangentVector (b : Real.Angle)) = + inner ℝ e (tangentVector (b : Real.Angle)) := by + rw [inner_edgeVertices_snd_tangent] + apply le_antisymm + · apply le_csInf ((exposedEdge_nonempty K _).image _) + rintro _ ⟨q, hq, rfl⟩ + have hqa := inner_le_supportValue K hq.1 (a : Real.Angle) + have hna : normalVector (a : Real.Angle) = + Real.cos (a - b) • normalVector (b : Real.Angle) + + Real.sin (a - b) • tangentVector (b : Real.Angle) := by + simpa only [add_sub_cancel] using normalVector_add_real b (a - b) + rw [← hpa, hna] at hqa + simp only [inner_add_right, inner_smul_right] at hqa + rw [hpb, hq.2] at hqa + nlinarith + · exact csInf_le ((isCompact_exposedEdge K _).image + (continuous_id.inner continuous_const)).bddBelow ⟨p, hpedge, rfl⟩ + change p = e + rw [← inner_normalVector_smul_add_inner_tangentVector_smul p (b : Real.Angle), + ← inner_normalVector_smul_add_inner_tangentVector_smul e (b : Real.Angle), hpb, hen, + hpt] + +/-- A support-line intersection in the body is the positive endpoint at the earlier normal. -/ +theorem supportingIntersection_eq_edgeVertices_fst_of_mem (K : ConvexBody Point) {a b : ℝ} + (hab : 0 < b - a) (hpi : b - a < Real.pi) + (hp : supportingIntersection K (a : Real.Angle) (b : Real.Angle) ∈ K) : + supportingIntersection K (a : Real.Angle) (b : Real.Angle) = + (edgeVertices K (a : Real.Angle)).1 := by + let p := supportingIntersection K (a : Real.Angle) (b : Real.Angle) + let e := (edgeVertices K (a : Real.Angle)).1 + have hsin : 0 < Real.sin (b - a) := Real.sin_pos_of_pos_of_lt_pi hab hpi + have hpa : inner ℝ p (normalVector (a : Real.Angle)) = + supportValue K (a : Real.Angle) := supportingIntersection_inner_left K a b + have hpb : inner ℝ p (normalVector (b : Real.Angle)) = + supportValue K (b : Real.Angle) := + supportingIntersection_inner_right K a b hsin.ne' + have hpedge : p ∈ exposedEdge K (a : Real.Angle) := ⟨hp, hpa⟩ + have heedge := edgeVertices_fst_mem K (a : Real.Angle) + have hen : inner ℝ e (normalVector (a : Real.Angle)) = + supportValue K (a : Real.Angle) := heedge.2 + have hpt : inner ℝ p (tangentVector (a : Real.Angle)) = + inner ℝ e (tangentVector (a : Real.Angle)) := by + rw [inner_edgeVertices_fst_tangent] + apply le_antisymm + · exact le_csSup ((isCompact_exposedEdge K _).image + (continuous_id.inner continuous_const)).bddAbove ⟨p, hpedge, rfl⟩ + · apply csSup_le ((exposedEdge_nonempty K _).image _) + rintro _ ⟨q, hq, rfl⟩ + have hqb := inner_le_supportValue K hq.1 (b : Real.Angle) + have hnb : normalVector (b : Real.Angle) = + Real.cos (b - a) • normalVector (a : Real.Angle) + + Real.sin (b - a) • tangentVector (a : Real.Angle) := by + simpa only [add_sub_cancel] using normalVector_add_real a (b - a) + rw [← hpb, hnb] at hqb + simp only [inner_add_right, inner_smul_right] at hqb + rw [hpa, hq.2] at hqb + nlinarith + change p = e + rw [← inner_normalVector_smul_add_inner_tangentVector_smul p (a : Real.Angle), + ← inner_normalVector_smul_add_inner_tangentVector_smul e (a : Real.Angle), hpa, hen, + hpt] + +/-- The first endpoint reaches the adjacent supporting-line intersection along a positive +tangent ray. -/ +theorem supportingIntersection_eq_fst_add_pos_tangent + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (hne : (edgeVertices K (a : Real.Angle)).1 ≠ + (edgeVertices K (b : Real.Angle)).2) : + ∃ d : ℝ, 0 < d ∧ supportingIntersection K a b = + (edgeVertices K (a : Real.Angle)).1 + d • tangentVector (a : Real.Angle) := by + let O := supportingIntersection K (a : Real.Angle) (b : Real.Angle) + let P := (edgeVertices K (a : Real.Angle)).1 + let d := inner ℝ (O - P) (tangentVector (a : Real.Angle)) + have hsin : 0 < Real.sin (b - a) := + Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hab) (by linarith) + have hOn : inner ℝ O (normalVector (a : Real.Angle)) = supportValue K a := + supportingIntersection_inner_left K a b + have hPn : inner ℝ P (normalVector (a : Real.Angle)) = supportValue K a := + (edgeVertices_fst_mem K (a : Real.Angle)).2 + have hnormal : inner ℝ (O - P) (normalVector (a : Real.Angle)) = 0 := by + rw [inner_sub_left, hOn, hPn, sub_self] + have hdir : O = P + d • tangentVector (a : Real.Angle) := by + rw [show O = P + (O - P) by abel, ← inner_normalVector_smul_add_inner_tangentVector_smul + (O - P) (a : Real.Angle), hnormal, zero_smul, zero_add] + have hdnonneg : 0 ≤ d := by + have hOb : inner ℝ O (normalVector (b : Real.Angle)) = supportValue K b := + supportingIntersection_inner_right K a b hsin.ne' + have hPb := inner_le_supportValue K (edgeVertices_fst_mem K (a : Real.Angle)).1 + (b : Real.Angle) + change inner ℝ P (normalVector (b : Real.Angle)) ≤ supportValue K b at hPb + have hnb : normalVector (b : Real.Angle) = + Real.cos (b - a) • normalVector (a : Real.Angle) + + Real.sin (b - a) • tangentVector (a : Real.Angle) := by + simpa only [add_sub_cancel] using normalVector_add_real a (b - a) + rw [← hOb, hdir, hnb, inner_add_left, inner_add_right, inner_smul_right, + inner_smul_right, real_inner_smul_left, hPn] at hPb + have htn : inner ℝ (tangentVector (a : Real.Angle)) + (normalVector (a : Real.Angle)) = 0 := by + rw [real_inner_comm, inner_normalVector_tangentVector] + simp only [inner_add_right, inner_smul_right, htn, + inner_tangentVector_self, mul_zero, mul_one, zero_add] at hPb + nlinarith + have hdne : d ≠ 0 := by + intro hd + have hOP : O = P := by simpa [hd] using hdir + have hOmem : O ∈ K := hOP ▸ (edgeVertices_fst_mem K _).1 + have hOQ := supportingIntersection_eq_edgeVertices_snd_of_mem K + (sub_pos.mpr hab) (by linarith) hOmem + exact hne (hOP.symm.trans hOQ) + exact ⟨d, lt_of_le_of_ne hdnonneg (Ne.symm hdne), hdir⟩ + +/-- The second endpoint reaches the adjacent supporting-line intersection against a positive +tangent ray. -/ +theorem supportingIntersection_eq_snd_sub_pos_tangent + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (hne : (edgeVertices K (a : Real.Angle)).1 ≠ + (edgeVertices K (b : Real.Angle)).2) : + ∃ d : ℝ, 0 < d ∧ supportingIntersection K a b = + (edgeVertices K (b : Real.Angle)).2 - d • tangentVector (b : Real.Angle) := by + let O := supportingIntersection K (a : Real.Angle) (b : Real.Angle) + let Q := (edgeVertices K (b : Real.Angle)).2 + let d := inner ℝ (Q - O) (tangentVector (b : Real.Angle)) + have hsin : 0 < Real.sin (b - a) := + Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hab) (by linarith) + have hOn : inner ℝ O (normalVector (b : Real.Angle)) = supportValue K b := + supportingIntersection_inner_right K a b hsin.ne' + have hQn : inner ℝ Q (normalVector (b : Real.Angle)) = supportValue K b := + (edgeVertices_snd_mem K (b : Real.Angle)).2 + have hnormal : inner ℝ (Q - O) (normalVector (b : Real.Angle)) = 0 := by + rw [inner_sub_left, hQn, hOn, sub_self] + have hdir : O = Q - d • tangentVector (b : Real.Angle) := by + rw [show O = Q - (Q - O) by abel, ← inner_normalVector_smul_add_inner_tangentVector_smul + (Q - O) (b : Real.Angle), hnormal, zero_smul, zero_add] + have hdnonneg : 0 ≤ d := by + have hOa : inner ℝ O (normalVector (a : Real.Angle)) = supportValue K a := + supportingIntersection_inner_left K a b + have hQa := inner_le_supportValue K (edgeVertices_snd_mem K (b : Real.Angle)).1 + (a : Real.Angle) + change inner ℝ Q (normalVector (a : Real.Angle)) ≤ supportValue K a at hQa + have hna : normalVector (a : Real.Angle) = + Real.cos (a - b) • normalVector (b : Real.Angle) + + Real.sin (a - b) • tangentVector (b : Real.Angle) := by + simpa only [add_sub_cancel] using normalVector_add_real b (a - b) + rw [← hOa, hdir, hna, inner_sub_left, inner_add_right, inner_smul_right, + inner_smul_right, real_inner_smul_left, hQn] at hQa + have htn : inner ℝ (tangentVector (b : Real.Angle)) + (normalVector (b : Real.Angle)) = 0 := by + rw [real_inner_comm, inner_normalVector_tangentVector] + simp only [inner_add_right, inner_smul_right, htn, + inner_tangentVector_self, mul_zero, mul_one, zero_add] at hQa + have hsneg : Real.sin (a - b) < 0 := by + rw [show a - b = -(b - a) by ring, Real.sin_neg] + exact neg_neg_of_pos hsin + nlinarith + have hdne : d ≠ 0 := by + intro hd + have hOQ : O = Q := by simpa [hd] using hdir + have hOmem : O ∈ K := hOQ ▸ (edgeVertices_snd_mem K _).1 + have hOP := supportingIntersection_eq_edgeVertices_fst_of_mem K + (sub_pos.mpr hab) (by linarith) hOmem + exact hne (hOP.symm.trans hOQ) + exact ⟨d, lt_of_le_of_ne hdnonneg (Ne.symm hdne), hdir⟩ + +/-! ### Faces at a reversed normal direction -/ + +/-- A body bounded below in a normal direction, with the bound attained, has the opposite +support value in the reversed direction. -/ +theorem supportValue_add_pi_eq_neg_of_forall_le {L : ConvexBody Point} {c t : ℝ} {p : Point} + (hle : ∀ q ∈ (L : Set Point), c ≤ inner ℝ q (normalVector (t : Real.Angle))) + (hp : p ∈ (L : Set Point)) (hpc : inner ℝ p (normalVector (t : Real.Angle)) = c) : + supportValue L ((t + Real.pi : ℝ) : Real.Angle) = -c := + le_antisymm (supportValue_le_of_cut L.nonempty rfl hle) + (le_supportValue_of_cut L.isCompact rfl hp hpc) + +/-- The face at a reversed normal direction consists of the points attaining the attained +lower bound. -/ +theorem exposedEdge_add_pi_eq_of_forall_le {L : ConvexBody Point} {c t : ℝ} {p : Point} + (hle : ∀ q ∈ (L : Set Point), c ≤ inner ℝ q (normalVector (t : Real.Angle))) + (hp : p ∈ (L : Set Point)) (hpc : inner ℝ p (normalVector (t : Real.Angle)) = c) : + exposedEdge L ((t + Real.pi : ℝ) : Real.Angle) = + {q | q ∈ (L : Set Point) ∧ inner ℝ q (normalVector (t : Real.Angle)) = c} := by + have hsup := supportValue_add_pi_eq_neg_of_forall_le hle hp hpc + ext q + constructor + · intro hq + have h2 : inner ℝ q (normalVector ((t + Real.pi : ℝ) : Real.Angle)) = + supportValue L ((t + Real.pi : ℝ) : Real.Angle) := hq.2 + rw [normalVector_add_pi, inner_neg_right, hsup] at h2 + exact ⟨hq.1, by linarith only [h2]⟩ + · rintro ⟨hqL, hqc⟩ + refine ⟨hqL, ?_⟩ + change inner ℝ q (normalVector ((t + Real.pi : ℝ) : Real.Angle)) = _ + rw [normalVector_add_pi, inner_neg_right, hsup, hqc] + +/-! ### Faces between two supporting normals with a common contact point -/ + +/-- A point on two transverse supporting lines is their intersection. -/ +theorem eq_supportingIntersection_of_mem_exposedEdge {L : ConvexBody Point} {a b : ℝ} + {p : Point} (hsin : Real.sin (a - b) ≠ 0) (hpa : p ∈ exposedEdge L (a : Real.Angle)) + (hpb : p ∈ exposedEdge L (b : Real.Angle)) : + p = supportingIntersection L (a : Real.Angle) (b : Real.Angle) := by + have hsin' : Real.sin (b - a) ≠ 0 := by + rw [show b - a = -(a - b) by ring, Real.sin_neg] + exact neg_ne_zero.mpr hsin + refine eq_of_inner_normalVector_eq hsin ?_ ?_ + · rw [supportingIntersection_inner_left] + exact hpa.2 + · rw [supportingIntersection_inner_right L a b hsin'] + exact hpb.2 + +/-- Between two supporting normals less than a straight angle apart with a common contact +point, every intervening face is that point. -/ +theorem exposedEdge_eq_singleton_of_mem_exposedEdge_of_mem_Ioo {L : ConvexBody Point} + {a b s : ℝ} {p : Point} (hba : b < a + Real.pi) (hs : s ∈ Set.Ioo a b) + (hpa : p ∈ exposedEdge L (a : Real.Angle)) (hpb : p ∈ exposedEdge L (b : Real.Angle)) : + exposedEdge L (s : Real.Angle) = {p} := by + have hab : a < b := hs.1.trans hs.2 + have hsba : 0 < Real.sin (b - a) := + Real.sin_pos_of_pos_of_lt_pi (by linarith only [hab]) (by linarith only [hba]) + have hsbs : 0 < Real.sin (b - s) := + Real.sin_pos_of_pos_of_lt_pi (by linarith only [hs.2]) (by linarith only [hba, hs.1]) + have hssa : 0 < Real.sin (s - a) := + Real.sin_pos_of_pos_of_lt_pi (by linarith only [hs.1]) (by linarith only [hba, hs.2]) + -- the positive combination of the two endpoint normals + have hcomb : ∀ q : Point, Real.sin (b - s) * inner ℝ q (normalVector (a : Real.Angle)) + + Real.sin (s - a) * inner ℝ q (normalVector (b : Real.Angle)) = + Real.sin (b - a) * inner ℝ q (normalVector (s : Real.Angle)) := by + intro q + rw [inner_normalVector_real, inner_normalVector_real, inner_normalVector_real, + Real.sin_sub, Real.sin_sub, Real.sin_sub] + ring + have hqa : ∀ q ∈ (L : Set Point), inner ℝ q (normalVector (a : Real.Angle)) ≤ + inner ℝ p (normalVector (a : Real.Angle)) := by + intro q hq + rw [hpa.2] + exact inner_le_supportValue L hq _ + have hqb : ∀ q ∈ (L : Set Point), inner ℝ q (normalVector (b : Real.Angle)) ≤ + inner ℝ p (normalVector (b : Real.Angle)) := by + intro q hq + rw [hpb.2] + exact inner_le_supportValue L hq _ + have hps : ∀ q ∈ (L : Set Point), inner ℝ q (normalVector (s : Real.Angle)) ≤ + inner ℝ p (normalVector (s : Real.Angle)) := by + intro q hq + have h1 := mul_le_mul_of_nonneg_left (hqa q hq) hsbs.le + have h2 := mul_le_mul_of_nonneg_left (hqb q hq) hssa.le + have h := add_le_add h1 h2 + rw [hcomb q, hcomb p] at h + exact le_of_mul_le_mul_left (by linarith only [h]) hsba + have hpsval : inner ℝ p (normalVector (s : Real.Angle)) = supportValue L (s : Real.Angle) := + le_antisymm (inner_le_supportValue L hpa.1 _) (csSup_le (L.nonempty.image _) + (by rintro _ ⟨q, hq, rfl⟩; exact hps q hq)) + ext q + simp only [Set.mem_singleton_iff] + refine ⟨fun hq ↦ ?_, fun hq ↦ hq ▸ ⟨hpa.1, hpsval⟩⟩ + have hqs : inner ℝ q (normalVector (s : Real.Angle)) = + inner ℝ p (normalVector (s : Real.Angle)) := by rw [hq.2, hpsval] + have hsum : Real.sin (b - s) * + (inner ℝ p (normalVector (a : Real.Angle)) - inner ℝ q (normalVector (a : Real.Angle))) + + Real.sin (s - a) * + (inner ℝ p (normalVector (b : Real.Angle)) - inner ℝ q (normalVector (b : Real.Angle))) + = 0 := by + have h1 := hcomb p + have h2 := hcomb q + rw [hqs] at h2 + linear_combination h1 - h2 + have hza : inner ℝ q (normalVector (a : Real.Angle)) = + inner ℝ p (normalVector (a : Real.Angle)) := by + nlinarith only [hsum, hsbs, hssa, hqa q hq.1, hqb q hq.1] + have hzb : inner ℝ q (normalVector (b : Real.Angle)) = + inner ℝ p (normalVector (b : Real.Angle)) := by + nlinarith only [hsum, hsbs, hssa, hqa q hq.1, hqb q hq.1] + have hsinab : Real.sin (a - b) ≠ 0 := by + rw [show a - b = -(b - a) by ring, Real.sin_neg] + exact neg_ne_zero.mpr hsba.ne' + exact eq_of_inner_normalVector_eq hsinab hza hzb + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Frame Calculus +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem hasDerivAt_normalVector (t : ℝ) : + HasDerivAt (fun s : ℝ ↦ normalVector (s : Real.Angle)) + (tangentVector (t : Real.Angle)) t := by + have h : HasDerivAt (fun s : ℝ ↦ (![Real.cos s, Real.sin s] : Fin 2 → ℝ)) + (![-Real.sin t, Real.cos t] : Fin 2 → ℝ) t := by + apply hasDerivAt_pi.mpr + intro i + fin_cases i + · exact Real.hasDerivAt_cos t + · exact Real.hasDerivAt_sin t + exact (PiLp.continuousLinearEquiv 2 ℝ (fun _ : Fin 2 ↦ ℝ)).symm.hasFDerivAt.comp_hasDerivAt t h + +theorem hasDerivAt_tangentVector (t : ℝ) : + HasDerivAt (fun s : ℝ ↦ tangentVector (s : Real.Angle)) + (-normalVector (t : Real.Angle)) t := by + have h : HasDerivAt (fun s : ℝ ↦ (![-Real.sin s, Real.cos s] : Fin 2 → ℝ)) + (![-Real.cos t, -Real.sin t] : Fin 2 → ℝ) t := by + apply hasDerivAt_pi.mpr + intro i + fin_cases i + · exact (Real.hasDerivAt_sin t).neg + · exact Real.hasDerivAt_cos t + convert (PiLp.continuousLinearEquiv 2 ℝ (fun _ : Fin 2 ↦ ℝ)).symm.hasFDerivAt.comp_hasDerivAt t + h using 1 + · rfl + · ext i + fin_cases i <;> rfl + +/-- The angular unit-normal parametrization is one-Lipschitz. -/ +theorem lipschitzWith_normalVector_real : + LipschitzWith 1 (fun t : ℝ ↦ normalVector (t : Real.Angle)) := by + apply lipschitzWith_of_nnnorm_deriv_le + (fun t ↦ (hasDerivAt_normalVector t).differentiableAt) + intro t + rw [(hasDerivAt_normalVector t).deriv] + change ‖tangentVector (t : Real.Angle)‖ ≤ (1 : ℝ) + rw [norm_tangentVector] + +/-- The angular unit-tangent parametrization is one-Lipschitz. -/ +theorem lipschitzWith_tangentVector_real : + LipschitzWith 1 (fun t : ℝ ↦ tangentVector (t : Real.Angle)) := by + apply lipschitzWith_of_nnnorm_deriv_le + (fun t ↦ (hasDerivAt_tangentVector t).differentiableAt) + intro t + rw [(hasDerivAt_tangentVector t).deriv] + change ‖-normalVector (t : Real.Angle)‖ ≤ (1 : ℝ) + rw [norm_neg, norm_normalVector_real] + +/-- A combination of the rotating frame whose coefficients are globally Lipschitz and bounded on a +set is Lipschitz on that set. -/ +theorem lipschitzOnWith_frameCombination {f g : ℝ → ℝ} {C M : ℝ} {D : NNReal} {s : Set ℝ} + (hD : 2 * (C + M) ≤ (D : ℝ)) (hM : 0 ≤ M) + (hf : ∀ x y : ℝ, |f x - f y| ≤ C * |x - y|) (hg : ∀ x y : ℝ, |g x - g y| ≤ C * |x - y|) + (hfM : ∀ x ∈ s, |f x| ≤ M) (hgM : ∀ x ∈ s, |g x| ≤ M) : + LipschitzOnWith D (fun x : ℝ ↦ f x • normalVector (x : Real.Angle) + + g x • tangentVector (x : Real.Angle)) s := by + refine LipschitzOnWith.of_dist_le_mul fun x hx y hy ↦ ?_ + have hframe (u v : ℝ) : dist (normalVector (u : Real.Angle)) (normalVector (v : Real.Angle)) ≤ + |u - v| ∧ dist (tangentVector (u : Real.Angle)) (tangentVector (v : Real.Angle)) ≤ + |u - v| := by + constructor + · simpa [Real.dist_eq] using lipschitzWith_normalVector_real.dist_le_mul u v + · simpa [Real.dist_eq] using lipschitzWith_tangentVector_real.dist_le_mul u v + have hpair (p q : ℝ) (u w : Point) (hu : ‖u‖ = 1) (hq : |q| ≤ M) + (huw : dist u w ≤ |x - y|) : dist (p • u) (q • w) ≤ |p - q| + M * |x - y| := by + have h1 : dist (p • u) (q • u) ≤ |p - q| := by + simpa [hu, Real.dist_eq] using dist_pair_smul p q u + have h2 : dist (q • u) (q • w) ≤ M * |x - y| := by + refine (dist_smul_pair q u w).trans ?_ + rw [Real.dist_eq, sub_zero] + exact mul_le_mul hq huw dist_nonneg hM + exact (dist_triangle _ _ _).trans (add_le_add h1 h2) + have h1 := hpair (f x) (f y) (normalVector (x : Real.Angle)) (normalVector (y : Real.Angle)) + (norm_normalVector_real x) (hfM y hy) (hframe x y).1 + have h2 := hpair (g x) (g y) (tangentVector (x : Real.Angle)) (tangentVector (y : Real.Angle)) + (norm_tangentVector _) (hgM y hy) (hframe x y).2 + have htri := dist_add_add_le (f x • normalVector (x : Real.Angle)) + (g x • tangentVector (x : Real.Angle)) (f y • normalVector (y : Real.Angle)) + (g y • tangentVector (y : Real.Angle)) + have hfxy := hf x y + have hgxy := hg x y + have hd : 2 * (C + M) * |x - y| ≤ (D : ℝ) * |x - y| := + mul_le_mul_of_nonneg_right hD (abs_nonneg _) + rw [Real.dist_eq] + linarith + +/-- The angular derivative of a fixed normal projection is its tangent projection. -/ +theorem hasDerivAt_inner_normalVector (A : Point) (t : ℝ) : + HasDerivAt (fun u : ℝ ↦ inner ℝ A (normalVector (u : Real.Angle))) + (inner ℝ A (tangentVector (t : Real.Angle))) t := by + simpa using (hasDerivAt_const t A).inner ℝ (hasDerivAt_normalVector t) + +/-- A contact point in a normal direction has the support derivative as tangent coordinate. -/ +theorem exists_contact_of_hasDerivAt {s : Set Point} (hcomp : IsCompact s) + (hne : s.Nonempty) {t d : ℝ} + (hd : HasDerivAt (fun u : ℝ ↦ supportValue s (u : Real.Angle)) d t) : + ∃ A ∈ s, inner ℝ A (normalVector (t : Real.Angle)) = supportValue s (t : Real.Angle) ∧ + inner ℝ A (tangentVector (t : Real.Angle)) = d := by + obtain ⟨A, hA, hmax, -⟩ := hcomp.exists_sSup_image_eq_and_ge + (f := fun p : Point ↦ inner ℝ p (normalVector (t : Real.Angle))) hne + (continuous_inner.comp (continuous_id.prodMk continuous_const)).continuousOn + have hAt : inner ℝ A (normalVector (t : Real.Angle)) = supportValue s (t : Real.Angle) := by + simpa only [supportValue] using hmax.symm + refine ⟨A, hA, hAt, ?_⟩ + set F : ℝ → ℝ := fun u ↦ supportValue s (u : Real.Angle) - + inner ℝ A (normalVector (u : Real.Angle)) with hF + have hFmin : IsLocalMin F t := by + filter_upwards with u + have h1 : inner ℝ A (normalVector (u : Real.Angle)) ≤ supportValue s (u : Real.Angle) := + inner_le_supportValue_of_isCompact hcomp hA _ + simp only [hF, hAt, sub_self] + linarith + have hFderiv : HasDerivAt F (d - inner ℝ A (tangentVector (t : Real.Angle))) t := + hd.sub (hasDerivAt_inner_normalVector A t) + have := hFmin.hasDerivAt_eq_zero hFderiv + linarith +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Cap.Basic`. +* `Cap.AngleDomain`. +* `Cap.Area`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Basic +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The two real intervals of upper cap normals. -/ +def capUpperAngles (ω : ℝ) : Set ℝ := + Set.Icc 0 ω ∪ Set.Icc (Real.pi / 2) (ω + Real.pi / 2) + +/-- The normal directions of the two lower strip boundaries. -/ +def capLowerNormals (ω : ℝ) : Set Real.Angle := + {((ω + Real.pi : ℝ) : Real.Angle), ((3 * Real.pi / 2 : ℝ) : Real.Angle)} + +/-- A set represented by closed lower half-planes with allowed normal directions. -/ +def HasHalfPlaneRepresentation (s : Set Point) (normals : Set Real.Angle) : Prop := + ∃ constraints : Set (Real.Angle × ℝ), + (∀ c ∈ constraints, c.1 ∈ normals) ∧ + s = ⋂ c ∈ constraints, normalHalfPlane c.1 c.2 false false + +/-- The normalized cap conditions, including its nonzero rotation-angle domain. -/ +def IsCap (ω : ℝ) (K : ConvexBody Point) : Prop := + 0 < ω ∧ ω ≤ Real.pi / 2 ∧ + supportValue K (ω : Real.Angle) = 1 ∧ + supportValue K ((Real.pi / 2 : ℝ) : Real.Angle) = 1 ∧ + supportValue K ((ω + Real.pi : ℝ) : Real.Angle) = 0 ∧ + supportValue K ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 ∧ + HasHalfPlaneRepresentation K + (((fun t : ℝ ↦ (t : Real.Angle)) '' capUpperAngles ω) ∪ capLowerNormals ω) + +/-- The space of caps at a fixed rotation angle. -/ +def CapSpace (ω : ℝ) := {K : ConvexBody Point // IsCap ω K} + +/-- A nonempty finite set of angles strictly between zero and its rotation angle. -/ +structure AngleSet where + /-- The terminal rotation angle of the polygonal approximation. -/ + angle : ℝ + angle_pos : 0 < angle + angle_le : angle ≤ Real.pi / 2 + /-- The finite nonempty set of interior wall directions. -/ + directions : Finset ℝ + nonempty : directions.Nonempty + interior : ∀ t ∈ directions, t ∈ Set.Ioo 0 angle + +/-- The finite upper-normal domain associated with an angle set. -/ +def angleDomain (Θ : AngleSet) : Set ℝ := + (Θ.directions : Set ℝ) ∪ + ((fun t ↦ t + Real.pi / 2) '' (Θ.directions : Set ℝ)) ∪ + {Θ.angle, Real.pi / 2} + +/-- Polygon caps whose upper normals belong to the specified angle domain. -/ +def PolygonCapSpace (Θ : AngleSet) := + {K : CapSpace Θ.angle // HasHalfPlaneRepresentation (K.1 : Set Point) + (((fun t : ℝ ↦ (t : Real.Angle)) '' angleDomain Θ) ∪ capLowerNormals Θ.angle)} + +/-- The fan above both lower strip boundaries. -/ +def capFan (ω : ℝ) : Set Point := + normalHalfPlane (ω : Real.Angle) 0 true false ∩ + normalHalfPlane ((Real.pi / 2 : ℝ) : Real.Angle) 0 true false + +/-- The fan of a rotation angle is convex. -/ +theorem convex_capFan (ω : ℝ) : Convex ℝ (capFan ω) := + (convex_normalHalfPlane _ _ _).inter (convex_normalHalfPlane _ _ _) + +/-- The open inward quadrant of the supporting hallway, in support coordinates. -/ +def innerQuadrant (s : Set Point) (t : ℝ) : Set Point := + normalHalfPlane (t : Real.Angle) (supportValue s (t : Real.Angle) - 1) false true ∩ + normalHalfPlane ((t + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue s ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) false true + +/-- The open inward quadrant of a supporting hallway is convex. -/ +theorem convex_innerQuadrant (s : Set Point) (t : ℝ) : Convex ℝ (innerQuadrant s t) := + (convex_normalHalfPlane_open _ _ _).inter (convex_normalHalfPlane_open _ _ _) + +/-- The niche is the union of inward quadrants clipped by the fan. -/ +def capNiche {ω : ℝ} (K : CapSpace ω) : Set Point := + capFan ω ∩ ⋃ t ∈ Set.Ioo 0 ω, innerQuadrant (K.1 : Set Point) t + +/-- The finite-angle niche uses the same fan clipping as the continuous niche. -/ +def polygonNiche (Θ : AngleSet) (K : CapSpace Θ.angle) : Set Point := + capFan Θ.angle ∩ ⋃ t ∈ Θ.directions, innerQuadrant (K.1 : Set Point) t + +/-- Avoiding an inward quadrant means lying above one of its two inner walls. -/ +theorem notMem_innerQuadrant_iff (S : Set Point) (u : ℝ) (p : Point) : + p ∉ innerQuadrant S u ↔ + p ∈ normalHalfPlane (u : Real.Angle) (supportValue S (u : Real.Angle) - 1) true false ∨ + p ∈ normalHalfPlane ((u + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue S ((u + Real.pi / 2 : ℝ) : Real.Angle) - 1) true false := by + have h1 : (p ∈ innerQuadrant S u) ↔ + (inner ℝ p (normalVector (u : Real.Angle)) < supportValue S (u : Real.Angle) - 1 ∧ + inner ℝ p (normalVector ((u + Real.pi / 2 : ℝ) : Real.Angle)) < + supportValue S ((u + Real.pi / 2 : ℝ) : Real.Angle) - 1) := Iff.rfl + have h2 : (p ∈ normalHalfPlane (u : Real.Angle) + (supportValue S (u : Real.Angle) - 1) true false) ↔ + (supportValue S (u : Real.Angle) - 1 ≤ inner ℝ p (normalVector (u : Real.Angle))) := Iff.rfl + have h3 : (p ∈ normalHalfPlane ((u + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue S ((u + Real.pi / 2 : ℝ) : Real.Angle) - 1) true false) ↔ + (supportValue S ((u + Real.pi / 2 : ℝ) : Real.Angle) - 1 ≤ + inner ℝ p (normalVector ((u + Real.pi / 2 : ℝ) : Real.Angle))) := Iff.rfl + rw [h1, h2, h3, not_and_or, not_lt, not_lt] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Angle Domain +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Every upper normal of an angle set has strictly positive sine. -/ +lemma angleDomain_subset_Ioo (Θ : AngleSet) : angleDomain Θ ⊆ Set.Ioo 0 Real.pi := by + intro t ht + rcases ht with (ht | ⟨s, hs, rfl⟩) | ht + · have h := Θ.interior t ht + constructor <;> linarith [h.1, h.2, Θ.angle_le, Real.pi_pos] + · have h := Θ.interior s hs + constructor <;> linarith [h.1, h.2, Θ.angle_le, Real.pi_pos] + · rcases ht with rfl | ht + · constructor <;> linarith [Θ.angle_pos, Θ.angle_le, Real.pi_pos] + · have ht : t = Real.pi / 2 := ht + rw [ht] + constructor <;> linarith [Real.pi_pos] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Area +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Cap area minus niche area, with real Lebesgue area as in the classical interface. -/ +def capAreaFunctional {ω : ℝ} (K : CapSpace ω) : ℝ := + ClassicalResults.area (K.1 : Set Point) - ClassicalResults.area (capNiche K) + +/-- The cap space at a right angle. -/ +abbrev RightAngleCapSpace := CapSpace (Real.pi / 2) + +/-- The sofa area functional on the right-angle cap space. -/ +def rightAngleAreaFunctional (K : RightAngleCapSpace) : ℝ := capAreaFunctional K + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Polygon.AngleSet`. +* `Polygon.BooleanFunctions`. +* `Polygon.Height.Space`. +* `Polygon.Height.Bounds`. +* `Polygon.Height.RaisedSupport`. +* `Polygon.Nef.Basic`. +* `Polygon.Nef.CapConstruction`. +* `Polygon.Nef.Cells`. +* `Polygon.Nef.Height`. +* `Polygon.PerturbationBounds`. +* `Polygon.Polyline.Basic`. +* `Polygon.Polyline.Displacement`. +* `Polygon.Polyline.Graph`. +* `Polygon.Polyline.Measure`. +* `Polygon.Polyline.Projection`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Angle Set +-/ + +@[expose] public section + +noncomputable section + +open Filter +open scoped Topology + +namespace MovingSofa + +/-- The interior points of the uniform angular grid. -/ +def uniformAngleSet (ω : ℝ) (hω : 0 < ω) (hω' : ω ≤ Real.pi / 2) + (n : ℕ) (hn : 2 ≤ n) : AngleSet where + angle := ω + angle_pos := hω + angle_le := hω' + directions := (Finset.Ioo 0 n).image (fun i : ℕ ↦ (i : ℝ) / n * ω) + nonempty := by + apply Finset.Nonempty.image + exact ⟨1, by simp; omega⟩ + interior := by + intro t ht + obtain ⟨i, hi, rfl⟩ := Finset.mem_image.mp ht + obtain ⟨hi, hin⟩ := Finset.mem_Ioo.mp hi + have hn' : (0 : ℝ) < n := by exact_mod_cast (show 0 < n by omega) + have hi' : (0 : ℝ) < i := by exact_mod_cast hi + have hin' : (i : ℝ) < n := by exact_mod_cast hin + refine ⟨mul_pos (div_pos hi' hn') hω, ?_⟩ + exact (mul_lt_mul_of_pos_right ((div_lt_one hn').2 hin') hω).trans_eq (one_mul ω) + +/-- A divisible grid refines the original grid. -/ +theorem uniformAngleSet_directions_mono_of_dvd (ω : ℝ) (hω : 0 < ω) + (hω' : ω ≤ Real.pi / 2) {m n : ℕ} (hm : 2 ≤ m) (hn : 2 ≤ n) + (hmn : m ∣ n) : + (uniformAngleSet ω hω hω' m hm).directions ⊆ + (uniformAngleSet ω hω hω' n hn).directions := by + obtain ⟨k, rfl⟩ := hmn + intro t ht + obtain ⟨j, hj, rfl⟩ := Finset.mem_image.mp ht + obtain ⟨hj0, hjm⟩ := Finset.mem_Ioo.mp hj + have hk : 0 < k := by nlinarith + apply Finset.mem_image.mpr + refine ⟨j * k, Finset.mem_Ioo.mpr ⟨Nat.mul_pos hj0 hk, + Nat.mul_lt_mul_of_pos_right hjm hk⟩, ?_⟩ + have hk' : (k : ℝ) ≠ 0 := by exact_mod_cast hk.ne' + push_cast + rw [mul_div_mul_right _ _ hk'] + +/-- Monotone dyadic grids have nested directions. -/ +theorem uniformAngleSet_directions_mono_of_dyadic (ω : ℝ) (hω : 0 < ω) + (hω' : ω ≤ Real.pi / 2) (n : ℕ → ℕ) (hn : ∀ i, 2 ≤ n i) + (hmono : Monotone n) (hdyadic : ∀ i, ∃ k : ℕ, n i = 2 ^ k) + {i j : ℕ} (hij : i ≤ j) : + (uniformAngleSet ω hω hω' (n i) (hn i)).directions ⊆ + (uniformAngleSet ω hω hω' (n j) (hn j)).directions := by + apply uniformAngleSet_directions_mono_of_dvd + obtain ⟨a, ha⟩ := hdyadic i + obtain ⟨b, hb⟩ := hdyadic j + have hab : a ≤ b := by + apply (pow_le_pow_iff_right₀ (by norm_num : 1 < (2 : ℕ))).mp + simpa only [← ha, ← hb] using hmono hij + rw [ha, hb] + exact pow_dvd_pow 2 hab + +/-- An interval longer than the mesh contains a grid direction. -/ +theorem exists_uniformAngleSet_mem_Ioo (ω : ℝ) (hω : 0 < ω) + (hω' : ω ≤ Real.pi / 2) (n : ℕ) (hn : 2 ≤ n) + {a b : ℝ} (ha : 0 ≤ a) (hb : b ≤ ω) (hmesh : ω / n < b - a) : + ∃ t ∈ (uniformAngleSet ω hω hω' n hn).directions, t ∈ Set.Ioo a b := by + have hnpos : (0 : ℝ) < n := by exact_mod_cast (show 0 < n by omega) + let j := ⌊a * n / ω⌋₊ + 1 + have hjpos : 0 < j := by dsimp [j]; omega + have hfloor := Nat.floor_le (show 0 ≤ a * n / ω by positivity) + have hfloor' := Nat.lt_floor_add_one (a * n / ω) + have hjlo : a < (j : ℝ) / n * ω := by + have h : a * n < (j : ℝ) * ω := by + apply (div_lt_iff₀ hω).mp + simpa only [j, Nat.cast_add, Nat.cast_one] using hfloor' + rw [div_mul_eq_mul_div] + exact (lt_div_iff₀ hnpos).mpr h + have hjhi : (j : ℝ) / n * ω ≤ a + ω / n := by + have h : ((j : ℝ) - 1) * ω ≤ a * n := by + apply (le_div_iff₀ hω).mp + simpa only [j, Nat.cast_add, Nat.cast_one, add_sub_cancel_right] using hfloor + rw [div_mul_eq_mul_div] + apply (div_le_iff₀ hnpos).mpr + rw [add_mul, div_mul_cancel₀ _ hnpos.ne'] + nlinarith + have hjb : (j : ℝ) / n * ω < b := hjhi.trans_lt (by linarith) + have hjn : j < n := by + have h : (j : ℝ) / n < 1 := (mul_lt_mul_iff_left₀ hω).mp (by simpa using hjb.trans_le hb) + exact_mod_cast (div_lt_one hnpos).mp h + refine ⟨(j : ℝ) / n * ω, Finset.mem_image.mpr ⟨j, Finset.mem_Ioo.mpr ⟨hjpos, hjn⟩, rfl⟩, + hjlo, hjb⟩ + +/-- An increasing sequence of grids eventually meets each interior open interval. -/ +theorem eventually_exists_uniformAngleSet_mem_Ioo (ω : ℝ) (hω : 0 < ω) + (hω' : ω ≤ Real.pi / 2) (n : ℕ → ℕ) (hn : ∀ i, 2 ≤ n i) + (hmono : StrictMono n) {a b : ℝ} (ha : 0 ≤ a) (hab : a < b) (hb : b ≤ ω) : + ∀ᶠ i in atTop, ∃ t ∈ (uniformAngleSet ω hω hω' (n i) (hn i)).directions, + t ∈ Set.Ioo a b := by + have hlim : Tendsto (fun i ↦ ω / (n i : ℝ)) atTop (𝓝 0) := + (tendsto_const_div_atTop_nhds_zero_nat ω).comp hmono.tendsto_atTop + filter_upwards [hlim.eventually_lt_const (sub_pos.mpr hab)] with i hi + exact exists_uniformAngleSet_mem_Ioo ω hω hω' (n i) (hn i) ha hb hi + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Boolean Functions +-/ + +@[expose] public section + +namespace MovingSofa + +/-- Boolean functions of finitely many Boolean variables. -/ +abbrev BooleanFunction (n : ℕ) := (Fin n → Bool) → Bool + +/-- Changing inputs from false to true cannot change a true output to false. -/ +def IsMonotoneBooleanFunction {n : ℕ} (E : BooleanFunction n) : Prop := + ∀ P Q, (∀ i, P i = true → Q i = true) → E P = true → E Q = true + +/-- Formulas built from variables using only conjunction and disjunction. -/ +inductive PositiveBooleanFormula (n : ℕ) where + | variable (i : Fin n) + | conjunction (left right : PositiveBooleanFormula n) + | disjunction (left right : PositiveBooleanFormula n) + +/-- Evaluate a positive formula under a Boolean assignment. -/ +def PositiveBooleanFormula.eval {n : ℕ} : PositiveBooleanFormula n → BooleanFunction n + | .variable i => fun P ↦ P i + | .conjunction left right => fun P ↦ left.eval P && right.eval P + | .disjunction left right => fun P ↦ left.eval P || right.eval P + +theorem positiveBooleanFormula_monotone {n : ℕ} (E : PositiveBooleanFormula n) : + IsMonotoneBooleanFunction E.eval := by + induction E <;> + simp_all [IsMonotoneBooleanFunction, PositiveBooleanFormula.eval, + Bool.and_eq_true, Bool.or_eq_true] <;> + aesop + +end MovingSofa + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Height / Space +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Point sets obtained by translating a polygonal cap with the fixed angle data. -/ +def PolygonCapTranslateSpace (Θ : AngleSet) := + {S : Set Point // ∃ (K : PolygonCapSpace Θ) (q : Point), + S = (fun p ↦ p + q) '' (K.val.val : Set Point)} + +/-- Real wall heights indexed by the finite angle domain. -/ +def PolygonHeightSpace (Θ : AngleSet) := angleDomain Θ → ℝ + +/-- Extend a wall-height function by zero outside its angle domain. -/ +def polygonHeightValue {Θ : AngleSet} (h : PolygonHeightSpace Θ) (t : ℝ) : ℝ := by + classical + exact if ht : t ∈ angleDomain Θ then h ⟨t, ht⟩ else 0 + +/-- Intersect the two endpoint strips of unit width determined by the height data. -/ +def polygonHeightParallelogram {Θ : AngleSet} (h : PolygonHeightSpace Θ) : Set Point := + ⋂ t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + normalHalfPlane (t : Real.Angle) (polygonHeightValue h t) false false ∩ + normalHalfPlane (t : Real.Angle) (polygonHeightValue h t - 1) true false + +/-- Cut the endpoint parallelogram by all upper wall half-planes. -/ +def polygonHeightCap {Θ : AngleSet} (h : PolygonHeightSpace Θ) : Set Point := + polygonHeightParallelogram h ∩ + ⋂ t ∈ (Θ.directions : Set ℝ) ∪ ((fun t : ℝ ↦ t + Real.pi / 2) '' Θ.directions), + normalHalfPlane (t : Real.Angle) (polygonHeightValue h t) false false + +/-- Intersect the lower half-planes at the two endpoint directions. -/ +def polygonHeightFan {Θ : AngleSet} (h : PolygonHeightSpace Θ) : Set Point := + ⋂ t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + normalHalfPlane (t : Real.Angle) (polygonHeightValue h t - 1) true false + +/-- Intersect the endpoint fan with the union of forbidden inner corners. -/ +def polygonHeightNiche {Θ : AngleSet} (h : PolygonHeightSpace Θ) : Set Point := + polygonHeightFan h ∩ ⋃ t ∈ Θ.directions, + normalHalfPlane (t : Real.Angle) (polygonHeightValue h t - 1) false true ∩ + normalHalfPlane ((t + Real.pi / 2 : ℝ) : Real.Angle) + (polygonHeightValue h (t + Real.pi / 2) - 1) false true + +/-- The real area of the cap minus the real area of its niche. -/ +def polygonHeightArea {Θ : AngleSet} (h : PolygonHeightSpace Θ) : ℝ := + ClassicalResults.area (polygonHeightCap h) - ClassicalResults.area (polygonHeightNiche h) + +/-- Bundle the parallelogram, cap, fan, niche and area constructed from wall heights. -/ +def polygonHeightExtensions {Θ : AngleSet} (h : PolygonHeightSpace Θ) : + Set Point × Set Point × Set Point × Set Point × ℝ := + (polygonHeightParallelogram h, polygonHeightCap h, polygonHeightFan h, + polygonHeightNiche h, polygonHeightArea h) + +/-- Take support values of a translated cap in the prescribed directions. -/ +def polygonTranslateHeight {Θ : AngleSet} (K : PolygonCapTranslateSpace Θ) : + PolygonHeightSpace Θ := fun t ↦ supportValue K.val (t.val : Real.Angle) + +/-- The niche and area functional associated with a translated cap. -/ +def polygonTranslateExtensions {Θ : AngleSet} (K : PolygonCapTranslateSpace Θ) : + Set Point × ℝ := + (polygonHeightNiche (polygonTranslateHeight K), polygonHeightArea (polygonTranslateHeight K)) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Height / Bounds +-/ + +@[expose] public section + +namespace MovingSofa + +/-- A height cap satisfies each selected upper half-plane constraint. -/ +theorem polygonHeightCap_subset_normalHalfPlane {Θ : AngleSet} (h : PolygonHeightSpace Θ) + {t : ℝ} (ht : t ∈ angleDomain Θ) : + polygonHeightCap h ⊆ normalHalfPlane (t : Real.Angle) + (polygonHeightValue h t) false false := by + intro p hp + rcases ht with ht | ht + · exact Set.mem_iInter₂.mp hp.2 t ht + · exact (Set.mem_iInter₂.mp hp.1 t ht).1 + +/-- The support of a reconstructed height cap is bounded by each defining height. -/ +theorem supportValue_le_polygonHeightValue {Θ : AngleSet} (h : PolygonHeightSpace Θ) + (K : ConvexBody Point) (hK : polygonHeightCap h = (K : Set Point)) + {t : ℝ} (ht : t ∈ angleDomain Θ) : + supportValue K (t : Real.Angle) ≤ polygonHeightValue h t := by + apply supportValue_le_of_subset_normalHalfPlane + rw [← hK] + exact polygonHeightCap_subset_normalHalfPlane h ht + +/-- Unit width forces equality with the height of a distinguished strip. -/ +theorem supportValue_eq_polygonHeightValue_of_width_one {Θ : AngleSet} + (h : PolygonHeightSpace Θ) (K : ConvexBody Point) + (hK : polygonHeightCap h = (K : Set Point)) {t : ℝ} + (ht : t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) + (hw : supportValue K (t : Real.Angle) + + supportValue K ((t + Real.pi : ℝ) : Real.Angle) = 1) : + supportValue K (t : Real.Angle) = polygonHeightValue h t := by + apply le_antisymm (supportValue_le_polygonHeightValue h K hK (Or.inr ht)) + have hopp : supportValue K ((t + Real.pi : ℝ) : Real.Angle) ≤ + 1 - polygonHeightValue h t := by + apply supportValue_le_of_subset_normalHalfPlane + intro p hp + have hp' : p ∈ polygonHeightCap h := hK.symm ▸ hp + have hl := (Set.mem_iInter₂.mp hp'.1 t ht).2 + change polygonHeightValue h t - 1 ≤ inner ℝ p (normalVector (t : Real.Angle)) at hl + change inner ℝ p (normalVector ((t + Real.pi : ℝ) : Real.Angle)) ≤ _ + rw [normalVector_add_pi, inner_neg_right] + linarith + linarith + +/-- Niches grow with their heights when the fan remains fixed. -/ +theorem polygonHeightNiche_mono_of_eq_endpoints {Θ : AngleSet} + {h g : PolygonHeightSpace Θ} (hle : ∀ t, h t ≤ g t) + (heq : ∀ t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + polygonHeightValue h t = polygonHeightValue g t) : + polygonHeightNiche h ⊆ polygonHeightNiche g := by + have hval (t : ℝ) (ht : t ∈ angleDomain Θ) : + polygonHeightValue h t ≤ polygonHeightValue g t := by + simpa only [polygonHeightValue, dite_eq_left ht] using hle ⟨t, ht⟩ + rintro p ⟨hpF, hpN⟩ + constructor + · apply Set.mem_iInter₂.mpr + intro t ht + have hp := Set.mem_iInter₂.mp hpF t ht + rwa [heq t ht] at hp + · obtain ⟨t, ht, hp⟩ := Set.mem_iUnion₂.mp hpN + apply Set.mem_iUnion₂.mpr + refine ⟨t, ht, ?_, ?_⟩ + · change inner ℝ p (normalVector (t : Real.Angle)) < polygonHeightValue g t - 1 + have hp₁ : inner ℝ p (normalVector (t : Real.Angle)) < + polygonHeightValue h t - 1 := hp.1 + exact hp₁.trans_le (sub_le_sub_right (hval t (Or.inl (Or.inl ht))) 1) + · change inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < + polygonHeightValue g (t + Real.pi / 2) - 1 + have hp₂ : inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < + polygonHeightValue h (t + Real.pi / 2) - 1 := hp.2 + exact hp₂.trans_le (sub_le_sub_right + (hval (t + Real.pi / 2) (Or.inl (Or.inr ⟨t, ht, rfl⟩))) 1) + +/-- Every polygon height niche is bounded. -/ +theorem isBounded_polygonHeightNiche {Θ : AngleSet} (h : PolygonHeightSpace Θ) : + Bornology.IsBounded (polygonHeightNiche h) := by + let a := polygonHeightValue h (Real.pi / 2) - 1 + let Q (t : ℝ) : Set Point := {p | a ≤ p 1 ∧ + inner ℝ p (normalVector (t : Real.Angle)) < polygonHeightValue h t - 1 ∧ + inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < + polygonHeightValue h (t + Real.pi / 2) - 1} + have hQ : Bornology.IsBounded (⋃ t ∈ Θ.directions, Q t) := by + apply (Bornology.isBounded_biUnion_finset Θ.directions).2 + intro t ht + exact isBounded_setOf_le_snd_and_inner_lt _ _ _ t + ⟨(Θ.interior t ht).1, (Θ.interior t ht).2.trans_le Θ.angle_le⟩ + apply hQ.subset + rintro p ⟨hpF, hpN⟩ + obtain ⟨t, ht, hp⟩ := Set.mem_iUnion₂.mp hpN + apply Set.mem_iUnion₂.mpr + refine ⟨t, ht, ?_, hp⟩ + have hpT := Set.mem_iInter₂.mp hpF (Real.pi / 2) (by simp) + change a ≤ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at hpT + simpa [normalVector, frame, PiLp.inner_apply] using hpT + +end MovingSofa + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Height / Raised Support +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Increase one selected support height by the prescribed amount. -/ +def raisedPolygonSupport {Θ : AngleSet} (K : PolygonCapSpace Θ) + (t : angleDomain Θ) (ε : ℝ) : PolygonHeightSpace Θ := by + classical + exact fun s ↦ supportValue (K.val.val : Set Point) (s.val : Real.Angle) + + if s = t then ε else 0 + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Nef / Basic +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Normal direction, height and boundary conventions specifying a planar half-plane. -/ +structure PlanarHalfPlaneData where + /-- The angle of the half-plane’s normal vector. -/ + angle : Real.Angle + /-- The scalar-product threshold defining the boundary line. -/ + height : ℝ + /-- Select the side above the threshold when true, or below it when false. -/ + upper : Bool + /-- Exclude the boundary line when true. -/ + strict : Bool + +/-- The half-plane defined by the recorded normal, threshold and conventions. -/ +def PlanarHalfPlaneData.carrier (H : PlanarHalfPlaneData) : Set Point := + normalHalfPlane H.angle H.height H.upper H.strict + +/-- The line where the normal scalar product equals the recorded height. -/ +def PlanarHalfPlaneData.boundaryLine (H : PlanarHalfPlaneData) : Set Point := + normalLine H.angle H.height + +/-- Evaluate a Boolean function on the point’s memberships in a finite family of sets. -/ +def booleanSet {n : ℕ} (E : BooleanFunction n) (H : Fin n → Set Point) : Set Point := by + classical + exact {p | E (fun i ↦ decide (p ∈ H i)) = true} + +/-- The set is a finite Boolean combination of planar half-planes. -/ +def IsNefPolygon (X : Set Point) : Prop := + ∃ (n : ℕ) (E : BooleanFunction n) (H : Fin n → PlanarHalfPlaneData), + X = booleanSet E (fun i ↦ (H i).carrier) + +/-- A monotone Boolean representation uses the supplied walls with distinct boundary lines. -/ +def IsSimpleNefPolygonWith {n : ℕ} (X : Set Point) + (H : Fin n → PlanarHalfPlaneData) : Prop := + Function.Injective (fun i ↦ (H i).boundaryLine) ∧ + ∃ E : BooleanFunction n, IsMonotoneBooleanFunction E ∧ + X = booleanSet E (fun i ↦ (H i).carrier) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Nef / Cap Construction +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The upper walls and two lower endpoint walls defining the polygonal cap. -/ +def polygonCapWalls {Θ : AngleSet} (h : PolygonHeightSpace Θ) : Set PlanarHalfPlaneData := + (fun t : ℝ ↦ (⟨(t : Real.Angle), polygonHeightValue h t, false, false⟩ : + PlanarHalfPlaneData)) '' angleDomain Θ ∪ + (fun t : ℝ ↦ (⟨(t : Real.Angle), polygonHeightValue h t - 1, true, false⟩ : + PlanarHalfPlaneData)) '' {Θ.angle, Real.pi / 2} + +/-- The strict inner walls and two lower endpoint walls defining the polygonal niche. -/ +def polygonNicheWalls {Θ : AngleSet} (h : PolygonHeightSpace Θ) : Set PlanarHalfPlaneData := + (fun t : ℝ ↦ (⟨(t : Real.Angle), polygonHeightValue h t - 1, false, true⟩ : + PlanarHalfPlaneData)) '' + ((Θ.directions : Set ℝ) ∪ ((fun t : ℝ ↦ t + Real.pi / 2) '' Θ.directions)) ∪ + (fun t : ℝ ↦ (⟨(t : Real.Angle), polygonHeightValue h t - 1, true, false⟩ : + PlanarHalfPlaneData)) '' {Θ.angle, Real.pi / 2} + +private theorem angleDomain_finite (Θ : AngleSet) : (angleDomain Θ).Finite := by + unfold angleDomain + exact (Θ.directions.finite_toSet.union + (Θ.directions.finite_toSet.image (fun t : ℝ ↦ t + Real.pi / 2))).union + (Set.finite_singleton (Real.pi / 2) |>.insert Θ.angle) + +private theorem polygonInnerAngles_finite (Θ : AngleSet) : + ((Θ.directions : Set ℝ) ∪ + ((fun t : ℝ ↦ t + Real.pi / 2) '' Θ.directions)).Finite := + Θ.directions.finite_toSet.union + (Θ.directions.finite_toSet.image (fun t : ℝ ↦ t + Real.pi / 2)) + +private theorem polygonInnerAngles_subset_angleDomain (Θ : AngleSet) : + (Θ.directions : Set ℝ) ∪ + ((fun t : ℝ ↦ t + Real.pi / 2) '' Θ.directions) ⊆ angleDomain Θ := by + intro t ht + exact Or.inl ht + +private theorem polygonInnerAngle_ne_endpoint {Θ : AngleSet} {s t : ℝ} + (hs : s ∈ (Θ.directions : Set ℝ) ∪ + ((fun r : ℝ ↦ r + Real.pi / 2) '' Θ.directions)) + (ht : t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) : s ≠ t := by + rcases hs with hs | ⟨r, hr, rfl⟩ + · have hsI := Θ.interior s hs + rcases ht with ht | ht + · intro hst + exact hsI.2.ne (hst.trans ht) + · have ht' : t = Real.pi / 2 := by simpa using ht + intro hst + exact (ne_of_lt (hsI.2.trans_le Θ.angle_le)) (hst.trans ht') + · have hrI := Θ.interior r hr + rcases ht with ht | ht + · intro hst + have hgt : Θ.angle < r + Real.pi / 2 := by + linarith [Θ.angle_le, hrI.1, Real.pi_pos] + exact hgt.ne' (hst.trans ht) + · have ht' : t = Real.pi / 2 := by simpa using ht + intro hst + have hgt : Real.pi / 2 < r + Real.pi / 2 := by linarith [hrI.1] + exact hgt.ne' (hst.trans ht') + +private theorem polygonCapWalls_finite {Θ : AngleSet} (h : PolygonHeightSpace Θ) : + (polygonCapWalls h).Finite := by + unfold polygonCapWalls + exact ((angleDomain_finite Θ).image _).union + ((Set.finite_singleton (Real.pi / 2) |>.insert Θ.angle).image _) + +private theorem polygonNicheWalls_finite {Θ : AngleSet} (h : PolygonHeightSpace Θ) : + (polygonNicheWalls h).Finite := by + unfold polygonNicheWalls + exact ((polygonInnerAngles_finite Θ).image _).union + ((Set.finite_singleton (Real.pi / 2) |>.insert Θ.angle).image _) + +private def polygonUpperWall {Θ : AngleSet} (h : PolygonHeightSpace Θ) + (t : ℝ) : PlanarHalfPlaneData := + ⟨(t : Real.Angle), polygonHeightValue h t, false, false⟩ + +private def polygonLowerWall {Θ : AngleSet} (h : PolygonHeightSpace Θ) + (t : ℝ) : PlanarHalfPlaneData := + ⟨(t : Real.Angle), polygonHeightValue h t - 1, true, false⟩ + +private def polygonInnerWall {Θ : AngleSet} (h : PolygonHeightSpace Θ) + (t : ℝ) : PlanarHalfPlaneData := + ⟨(t : Real.Angle), polygonHeightValue h t - 1, false, true⟩ + +private theorem polygonCapWalls_eq {Θ : AngleSet} (h : PolygonHeightSpace Θ) : + polygonCapWalls h = + polygonUpperWall h '' angleDomain Θ ∪ + polygonLowerWall h '' ({Θ.angle, Real.pi / 2} : Set ℝ) := by + rfl + +private theorem polygonNicheWalls_eq {Θ : AngleSet} (h : PolygonHeightSpace Θ) : + polygonNicheWalls h = + polygonInnerWall h '' + ((Θ.directions : Set ℝ) ∪ + ((fun t : ℝ ↦ t + Real.pi / 2) '' Θ.directions)) ∪ + polygonLowerWall h '' ({Θ.angle, Real.pi / 2} : Set ℝ) := by + rfl + +private theorem boundaryLine_injOn_polygonCapWalls {Θ : AngleSet} + (h : PolygonHeightSpace Θ) : + Set.InjOn PlanarHalfPlaneData.boundaryLine (polygonCapWalls h) := by + intro A hA B hB hline + rw [polygonCapWalls_eq] at hA hB + rcases hA with ⟨s, hs, rfl⟩ | ⟨s, hs, rfl⟩ <;> + rcases hB with ⟨t, ht, rfl⟩ | ⟨t, ht, rfl⟩ + · have hst := (normalLine_eq_iff_of_mem_Ioo + (angleDomain_subset_Ioo Θ hs) (angleDomain_subset_Ioo Θ ht)).mp hline + simp [hst.1] + · have htD : t ∈ angleDomain Θ := Or.inr ht + have hst := (normalLine_eq_iff_of_mem_Ioo + (angleDomain_subset_Ioo Θ hs) (angleDomain_subset_Ioo Θ htD)).mp hline + have hfalse := hst.2 + simp [polygonUpperWall, polygonLowerWall, hst.1] at hfalse + exfalso + linarith + · have hsD : s ∈ angleDomain Θ := Or.inr hs + have hst := (normalLine_eq_iff_of_mem_Ioo + (angleDomain_subset_Ioo Θ hsD) (angleDomain_subset_Ioo Θ ht)).mp hline + have hfalse := hst.2 + simp [polygonUpperWall, polygonLowerWall, hst.1] at hfalse + · have hsD : s ∈ angleDomain Θ := Or.inr hs + have htD : t ∈ angleDomain Θ := Or.inr ht + have hst := (normalLine_eq_iff_of_mem_Ioo + (angleDomain_subset_Ioo Θ hsD) (angleDomain_subset_Ioo Θ htD)).mp hline + simp [hst.1] + +private theorem boundaryLine_injOn_polygonNicheWalls {Θ : AngleSet} + (h : PolygonHeightSpace Θ) : + Set.InjOn PlanarHalfPlaneData.boundaryLine (polygonNicheWalls h) := by + intro A hA B hB hline + rw [polygonNicheWalls_eq] at hA hB + rcases hA with ⟨s, hs, rfl⟩ | ⟨s, hs, rfl⟩ <;> + rcases hB with ⟨t, ht, rfl⟩ | ⟨t, ht, rfl⟩ + · have hsD := polygonInnerAngles_subset_angleDomain Θ hs + have htD := polygonInnerAngles_subset_angleDomain Θ ht + have hst := (normalLine_eq_iff_of_mem_Ioo + (angleDomain_subset_Ioo Θ hsD) (angleDomain_subset_Ioo Θ htD)).mp hline + simp [hst.1] + · have hsD := polygonInnerAngles_subset_angleDomain Θ hs + have htD : t ∈ angleDomain Θ := Or.inr ht + have hst := (normalLine_eq_iff_of_mem_Ioo + (angleDomain_subset_Ioo Θ hsD) (angleDomain_subset_Ioo Θ htD)).mp hline + exact (polygonInnerAngle_ne_endpoint hs ht hst.1).elim + · have hsD : s ∈ angleDomain Θ := Or.inr hs + have htD := polygonInnerAngles_subset_angleDomain Θ ht + have hst := (normalLine_eq_iff_of_mem_Ioo + (angleDomain_subset_Ioo Θ hsD) (angleDomain_subset_Ioo Θ htD)).mp hline + exact (polygonInnerAngle_ne_endpoint ht hs hst.1.symm).elim + · have hsD : s ∈ angleDomain Θ := Or.inr hs + have htD : t ∈ angleDomain Θ := Or.inr ht + have hst := (normalLine_eq_iff_of_mem_Ioo + (angleDomain_subset_Ioo Θ hsD) (angleDomain_subset_Ioo Θ htD)).mp hline + simp [hst.1] + +private def PositiveBooleanFormula.conjunctions {n : ℕ} + (default : PositiveBooleanFormula n) : + List (PositiveBooleanFormula n) → PositiveBooleanFormula n + | [] => default + | E :: Es => .conjunction E (conjunctions default Es) + +private def PositiveBooleanFormula.disjunctions {n : ℕ} + (default : PositiveBooleanFormula n) : + List (PositiveBooleanFormula n) → PositiveBooleanFormula n + | [] => default + | E :: Es => .disjunction E (disjunctions default Es) + +private theorem PositiveBooleanFormula.conjunctions_eval_eq_true {n : ℕ} + (default : PositiveBooleanFormula n) (Es : List (PositiveBooleanFormula n)) + (P : Fin n → Bool) : + (default.conjunctions Es).eval P = true ↔ + default.eval P = true ∧ ∀ E ∈ Es, E.eval P = true := by + induction Es with + | nil => simp [PositiveBooleanFormula.conjunctions] + | cons E Es ih => + simp [PositiveBooleanFormula.conjunctions, PositiveBooleanFormula.eval, ih, + and_left_comm] + +private theorem PositiveBooleanFormula.disjunctions_eval_eq_true {n : ℕ} + (default : PositiveBooleanFormula n) (Es : List (PositiveBooleanFormula n)) + (P : Fin n → Bool) : + (default.disjunctions Es).eval P = true ↔ + default.eval P = true ∨ ∃ E ∈ Es, E.eval P = true := by + induction Es with + | nil => simp [PositiveBooleanFormula.disjunctions] + | cons E Es ih => + simp [PositiveBooleanFormula.disjunctions, PositiveBooleanFormula.eval, ih, + or_left_comm] + +private theorem mem_polygonHeightCap_iff_walls {Θ : AngleSet} + (h : PolygonHeightSpace Θ) (p : Point) : + p ∈ polygonHeightCap h ↔ + ∀ W ∈ polygonCapWalls h, p ∈ W.carrier := by + simp only [polygonHeightCap, polygonHeightParallelogram, polygonCapWalls, + Set.mem_inter_iff, Set.mem_iInter, Set.mem_union, Set.mem_image] + constructor + · rintro ⟨hendpoint, hinner⟩ W + rintro (⟨t, ht, rfl⟩ | ⟨t, ht, rfl⟩) + · change p ∈ normalHalfPlane (t : Real.Angle) (polygonHeightValue h t) false false + rcases ht with ht | ht + · exact hinner t ht + · exact (hendpoint t ht).1 + · change p ∈ normalHalfPlane (t : Real.Angle) + (polygonHeightValue h t - 1) true false + exact (hendpoint t ht).2 + · intro hall + refine ⟨?_, ?_⟩ + · intro t ht + constructor + · exact hall (polygonUpperWall h t) (Or.inl ⟨t, Or.inr ht, rfl⟩) + · exact hall (polygonLowerWall h t) (Or.inr ⟨t, ht, rfl⟩) + · intro t ht + exact hall (polygonUpperWall h t) (Or.inl ⟨t, Or.inl ht, rfl⟩) + +private theorem mem_polygonHeightNiche_iff_walls {Θ : AngleSet} + (h : PolygonHeightSpace Θ) (p : Point) : + p ∈ polygonHeightNiche h ↔ + (∀ t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + p ∈ (polygonLowerWall h t).carrier) ∧ + ∃ t ∈ Θ.directions, + p ∈ (polygonInnerWall h t).carrier ∧ + p ∈ (polygonInnerWall h (t + Real.pi / 2)).carrier := by + unfold polygonHeightNiche polygonHeightFan + simp only [Set.mem_inter_iff, Set.mem_iInter] + constructor + · rintro ⟨hfan, hniche⟩ + refine ⟨?_, ?_⟩ + · intro t ht + exact hfan t ht + · obtain ⟨t, ht, hp⟩ := Set.mem_iUnion₂.mp hniche + exact ⟨t, ht, hp⟩ + · rintro ⟨hfan, t, ht, hp⟩ + refine ⟨hfan, Set.mem_iUnion₂.mpr ⟨t, ht, ?_⟩⟩ + exact hp + +private theorem exists_polygonHeightCap_simpleNef (Θ : AngleSet) + (h : PolygonHeightSpace Θ) : + ∃ (n : ℕ) (H : Fin n → PlanarHalfPlaneData), + Set.range H = polygonCapWalls h ∧ + IsSimpleNefPolygonWith (polygonHeightCap h) H := by + classical + let S : Set PlanarHalfPlaneData := polygonCapWalls h + have hSfinite : S.Finite := polygonCapWalls_finite h + let _ : Fintype S := hSfinite.fintype + let n := Fintype.card S + let e : Fin n ≃ S := (Fintype.equivFin S).symm + let H : Fin n → PlanarHalfPlaneData := fun i ↦ (e i).1 + have hrange : Set.range H = polygonCapWalls h := by + ext W + constructor + · rintro ⟨i, rfl⟩ + exact (e i).2 + · intro hW + obtain ⟨i, hi⟩ := e.surjective ⟨W, hW⟩ + exact ⟨i, congrArg Subtype.val hi⟩ + have hHinj : Function.Injective (fun i ↦ (H i).boundaryLine) := by + intro i j hij + apply e.injective + apply Subtype.ext + exact boundaryLine_injOn_polygonCapWalls h (e i).2 (e j).2 hij + have hupperω : polygonUpperWall h Θ.angle ∈ S := by + exact Or.inl ⟨Θ.angle, by simp [angleDomain], rfl⟩ + let i₀ : Fin n := e.symm ⟨polygonUpperWall h Θ.angle, hupperω⟩ + let varList : List (PositiveBooleanFormula n) := + List.ofFn fun i : Fin n ↦ PositiveBooleanFormula.variable i + let formula : PositiveBooleanFormula n := + (PositiveBooleanFormula.variable i₀).conjunctions varList + refine ⟨n, H, hrange, hHinj, formula.eval, + positiveBooleanFormula_monotone formula, ?_⟩ + ext p + rw [mem_polygonHeightCap_iff_walls] + change (∀ W ∈ polygonCapWalls h, p ∈ W.carrier) ↔ + formula.eval (fun i ↦ decide (p ∈ (H i).carrier)) = true + have hformula (P : Fin n → Bool) : + formula.eval P = true ↔ ∀ i, P i = true := by + rw [show formula = (PositiveBooleanFormula.variable i₀).conjunctions varList by rfl, + PositiveBooleanFormula.conjunctions_eval_eq_true] + simp [varList, PositiveBooleanFormula.eval] + aesop + rw [hformula] + constructor + · intro hall i + apply decide_eq_true + exact hall (H i) (e i).2 + · intro hall W hW + obtain ⟨i, hi⟩ := e.surjective ⟨W, hW⟩ + have hi' : H i = W := congrArg Subtype.val hi + subst W + exact of_decide_eq_true (hall i) + +private theorem exists_polygonHeightNiche_simpleNef (Θ : AngleSet) + (h : PolygonHeightSpace Θ) : + ∃ (n : ℕ) (H : Fin n → PlanarHalfPlaneData), + Set.range H = polygonNicheWalls h ∧ + IsSimpleNefPolygonWith (polygonHeightNiche h) H := by + classical + let S : Set PlanarHalfPlaneData := polygonNicheWalls h + have hSfinite : S.Finite := polygonNicheWalls_finite h + let _ : Fintype S := hSfinite.fintype + let n := Fintype.card S + let e : Fin n ≃ S := (Fintype.equivFin S).symm + let H : Fin n → PlanarHalfPlaneData := fun i ↦ (e i).1 + have hrange : Set.range H = polygonNicheWalls h := by + ext W + constructor + · rintro ⟨i, rfl⟩ + exact (e i).2 + · intro hW + obtain ⟨i, hi⟩ := e.surjective ⟨W, hW⟩ + exact ⟨i, congrArg Subtype.val hi⟩ + have hHinj : Function.Injective (fun i ↦ (H i).boundaryLine) := by + intro i j hij + apply e.injective + apply Subtype.ext + exact boundaryLine_injOn_polygonNicheWalls h (e i).2 (e j).2 hij + have hlowerω : polygonLowerWall h Θ.angle ∈ S := by + exact Or.inr ⟨Θ.angle, by simp, rfl⟩ + have hlowerT : polygonLowerWall h (Real.pi / 2) ∈ S := by + exact Or.inr ⟨Real.pi / 2, by simp, rfl⟩ + have hinner (t : ℝ) (ht : t ∈ Θ.directions) : + polygonInnerWall h t ∈ S := by + exact Or.inl ⟨t, Or.inl ht, rfl⟩ + have hinnerShift (t : ℝ) (ht : t ∈ Θ.directions) : + polygonInnerWall h (t + Real.pi / 2) ∈ S := by + exact Or.inl ⟨t + Real.pi / 2, Or.inr ⟨t, ht, rfl⟩, rfl⟩ + let iω : Fin n := e.symm ⟨polygonLowerWall h Θ.angle, hlowerω⟩ + let iT : Fin n := e.symm ⟨polygonLowerWall h (Real.pi / 2), hlowerT⟩ + let innerIndex : Θ.directions → Fin n := + fun t ↦ e.symm ⟨polygonInnerWall h t, hinner t t.property⟩ + let shiftedIndex : Θ.directions → Fin n := + fun t ↦ e.symm ⟨polygonInnerWall h (t + Real.pi / 2), hinnerShift t t.property⟩ + let pairFormula : Θ.directions → PositiveBooleanFormula n := + fun t ↦ .conjunction (.variable (innerIndex t)) (.variable (shiftedIndex t)) + let t₀ : Θ.directions := ⟨Θ.nonempty.choose, Θ.nonempty.choose_spec⟩ + let pairList : List (PositiveBooleanFormula n) := + Θ.directions.attach.toList.map pairFormula + let endpointFormula : PositiveBooleanFormula n := + .conjunction (.variable iω) (.variable iT) + let interiorFormula : PositiveBooleanFormula n := + (pairFormula t₀).disjunctions pairList + let formula : PositiveBooleanFormula n := + .conjunction endpointFormula interiorFormula + have hHiω : H iω = polygonLowerWall h Θ.angle := by + exact congrArg Subtype.val (e.apply_symm_apply + ⟨polygonLowerWall h Θ.angle, hlowerω⟩) + have hHiT : H iT = polygonLowerWall h (Real.pi / 2) := by + exact congrArg Subtype.val (e.apply_symm_apply + ⟨polygonLowerWall h (Real.pi / 2), hlowerT⟩) + have hHinner (t : Θ.directions) : + H (innerIndex t) = polygonInnerWall h t := by + exact congrArg Subtype.val (e.apply_symm_apply + ⟨polygonInnerWall h t, hinner t t.property⟩) + have hHshift (t : Θ.directions) : + H (shiftedIndex t) = polygonInnerWall h (t + Real.pi / 2) := by + exact congrArg Subtype.val (e.apply_symm_apply + ⟨polygonInnerWall h (t + Real.pi / 2), hinnerShift t t.property⟩) + refine ⟨n, H, hrange, hHinj, formula.eval, + positiveBooleanFormula_monotone formula, ?_⟩ + ext p + rw [mem_polygonHeightNiche_iff_walls] + change ((∀ t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + p ∈ (polygonLowerWall h t).carrier) ∧ + ∃ t ∈ Θ.directions, + p ∈ (polygonInnerWall h t).carrier ∧ + p ∈ (polygonInnerWall h (t + Real.pi / 2)).carrier) ↔ + formula.eval (fun i ↦ decide (p ∈ (H i).carrier)) = true + have hpair (t : Θ.directions) (P : Fin n → Bool) : + (pairFormula t).eval P = true ↔ + P (innerIndex t) = true ∧ P (shiftedIndex t) = true := by + simp [pairFormula, PositiveBooleanFormula.eval] + have hinterior (P : Fin n → Bool) : + interiorFormula.eval P = true ↔ + ∃ t : Θ.directions, + P (innerIndex t) = true ∧ P (shiftedIndex t) = true := by + rw [show interiorFormula = (pairFormula t₀).disjunctions pairList by rfl, + PositiveBooleanFormula.disjunctions_eval_eq_true] + simp only [hpair] + constructor + · rintro (ht₀ | ⟨E, hE, hEval⟩) + · exact ⟨t₀, ht₀⟩ + · rw [show pairList = Θ.directions.attach.toList.map pairFormula by rfl] at hE + obtain ⟨t, ht, rfl⟩ := List.mem_map.mp hE + exact ⟨t, (hpair t P).mp hEval⟩ + · rintro ⟨t, hEval⟩ + right + refine ⟨pairFormula t, ?_, (hpair t P).mpr hEval⟩ + rw [show pairList = Θ.directions.attach.toList.map pairFormula by rfl] + exact List.mem_map.mpr ⟨t, by simp, rfl⟩ + have hformula (P : Fin n → Bool) : + formula.eval P = true ↔ + (P iω = true ∧ P iT = true) ∧ + ∃ t : Θ.directions, + P (innerIndex t) = true ∧ P (shiftedIndex t) = true := by + rw [show formula = .conjunction endpointFormula interiorFormula by rfl] + simp only [PositiveBooleanFormula.eval, Bool.and_eq_true, hinterior] + simp [endpointFormula, PositiveBooleanFormula.eval] + rw [hformula] + constructor + · rintro ⟨hendpoint, t, ht, htinner, htshift⟩ + let ts : Θ.directions := ⟨t, ht⟩ + refine ⟨⟨?_, ?_⟩, ts, ?_, ?_⟩ + · apply decide_eq_true + rw [hHiω] + exact hendpoint Θ.angle (by simp) + · apply decide_eq_true + rw [hHiT] + exact hendpoint (Real.pi / 2) (by simp) + · apply decide_eq_true + rw [hHinner ts] + exact htinner + · apply decide_eq_true + rw [hHshift ts] + exact htshift + · rintro ⟨⟨hω, hT⟩, t, htinner, htshift⟩ + refine ⟨?_, t, t.property, ?_, ?_⟩ + · intro s hs + rcases hs with hs | hs + · have hsval : s = Θ.angle := hs + subst s + rw [← hHiω] + exact of_decide_eq_true hω + · have hsval : s = Real.pi / 2 := by simpa using hs + subst s + rw [← hHiT] + exact of_decide_eq_true hT + · rw [← hHinner t] + exact of_decide_eq_true htinner + · rw [← hHshift t] + exact of_decide_eq_true htshift + +theorem polygonCap_niche_simpleNef (Θ : AngleSet) (h : PolygonHeightSpace Θ) : + (∃ (n : ℕ) (H : Fin n → PlanarHalfPlaneData), + Set.range H = polygonCapWalls h ∧ IsSimpleNefPolygonWith (polygonHeightCap h) H) ∧ + (∃ (n : ℕ) (H : Fin n → PlanarHalfPlaneData), + Set.range H = polygonNicheWalls h ∧ IsSimpleNefPolygonWith (polygonHeightNiche h) H) := by + exact ⟨exists_polygonHeightCap_simpleNef Θ h, exists_polygonHeightNiche_simpleNef Θ h⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Nef / Cells +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa.Nef + +open Filter Topology + +lemma monotoneBoolean_update_false {n : ℕ} {E : BooleanFunction n} + (hE : IsMonotoneBooleanFunction E) (P : Fin n → Bool) (i : Fin n) : + E (Function.update P i false) = true → E P = true := by + apply hE + intro j hj + by_cases hji : j = i + · subst j + simp at hj + · simpa [Function.update_of_ne hji] using hj + +lemma monotoneBoolean_update_true {n : ℕ} {E : BooleanFunction n} + (hE : IsMonotoneBooleanFunction E) (P : Fin n → Bool) (i : Fin n) : + E P = true → E (Function.update P i true) = true := by + apply hE + intro j hj + by_cases hji : j = i + · subst j + simp + · simpa [Function.update_of_ne hji] using hj + +lemma monotoneBoolean_eval_iff {n : ℕ} {E : BooleanFunction n} + (hE : IsMonotoneBooleanFunction E) (P : Fin n → Bool) (i : Fin n) : + E P = true ↔ E (Function.update P i false) = true ∨ + (P i = true ∧ E (Function.update P i true) = true) := by + constructor + · intro h + cases hp : P i + · left + rwa [← hp, Function.update_eq_self] + · exact Or.inr ⟨rfl, monotoneBoolean_update_true hE P i h⟩ + · rintro (h | ⟨hp, h⟩) + · exact monotoneBoolean_update_false hE P i h + · rwa [(Function.update_eq_self_iff).mpr hp.symm] at h + +lemma booleanSet_update_eq {n : ℕ} {E : BooleanFunction n} + (hE : IsMonotoneBooleanFunction E) (H : Fin n → Set Point) (i : Fin n) + (S : Set Point) : + booleanSet E (Function.update H i S) = + booleanSet E (Function.update H i ∅) ∪ + (S ∩ booleanSet E (Function.update H i Set.univ)) := by + classical + ext p + have hfun (T : Set Point) : + (fun j ↦ decide (p ∈ Function.update H i T j)) = + Function.update (fun j ↦ decide (p ∈ H j)) i (decide (p ∈ T)) := by + funext j + by_cases hji : j = i <;> simp [hji, Function.update_of_ne] + simp only [booleanSet, Set.mem_ofPred_eq, Set.mem_union, Set.mem_inter_iff, hfun] + simp only [Set.mem_empty_iff_false, decide_false, Set.mem_univ, decide_true] + have h := monotoneBoolean_eval_iff hE + (Function.update (fun j ↦ decide (p ∈ H j)) i (decide (p ∈ S))) i + simpa only [Function.update_idem, Function.update_self, decide_eq_true_eq] using h + +lemma booleanSet_update_sdiff {n : ℕ} {E : BooleanFunction n} + (hE : IsMonotoneBooleanFunction E) (H : Fin n → Set Point) (i : Fin n) + (S T : Set Point) : + booleanSet E (Function.update H i S) \ booleanSet E (Function.update H i T) = + (S \ T) ∩ (booleanSet E (Function.update H i Set.univ) \ + booleanSet E (Function.update H i ∅)) := by + rw [booleanSet_update_eq hE H i S, booleanSet_update_eq hE H i T] + ext p + simp only [Set.mem_sdiff, Set.mem_union, Set.mem_inter_iff] + tauto + +lemma booleanSet_mono {n : ℕ} {E : BooleanFunction n} + (hE : IsMonotoneBooleanFunction E) {H G : Fin n → Set Point} + (hHG : ∀ i, H i ⊆ G i) : booleanSet E H ⊆ booleanSet E G := by + classical + intro p hp + apply hE _ _ ?_ hp + intro i hi + simp only [decide_eq_true_eq] at hi ⊢ + exact hHG i hi + +/-- The points realizing exactly the specified Boolean membership pattern. -/ +def booleanCell {n : ℕ} (H : Fin n → Set Point) (P : Fin n → Bool) : Set Point := + ⋂ j, if P j then H j else (H j)ᶜ + +/-- The vector of membership decisions for a point in a finite set family. -/ +def setMembershipPattern {n : ℕ} (H : Fin n → Set Point) (p : Point) : Fin n → Bool := by + classical + exact fun j ↦ decide (p ∈ H j) + +lemma mem_booleanCell_iff {n : ℕ} (H : Fin n → Set Point) (P : Fin n → Bool) + (p : Point) : + p ∈ booleanCell H P ↔ setMembershipPattern H p = P := by + classical + simp only [booleanCell, Set.mem_iInter] + constructor + · intro hp + funext j + have hj := hp j + cases hP : P j <;> simp only [hP, Bool.false_eq_true, ↓reduceIte, Set.mem_compl_iff, + setMembershipPattern, + decide_eq_false_iff_not, decide_eq_true_eq] at hj ⊢ <;> exact hj + · intro hp j + have hj := congrFun hp j + cases hP : P j <;> simp only [setMembershipPattern, hP, decide_eq_false_iff_not, + Bool.false_eq_true, ↓reduceIte, + Set.mem_compl_iff, decide_eq_true_eq] at hj ⊢ <;> exact hj + +lemma booleanSet_eq_iUnion_booleanCell {n : ℕ} (E : BooleanFunction n) + (H : Fin n → Set Point) : + booleanSet E H = ⋃ P : Fin n → Bool, if E P = true then booleanCell H P else ∅ := by + classical + ext p + simp only [booleanSet, Set.mem_ofPred_eq, Set.mem_iUnion, Set.mem_ite_empty_right] + constructor + · intro hp + change E (setMembershipPattern H p) = true at hp + refine ⟨setMembershipPattern H p, ?_, (mem_booleanCell_iff H _ p).mpr rfl⟩ + exact hp + · rintro ⟨P, hEP, hp⟩ + have hpat := (mem_booleanCell_iff H P p).mp hp + calc + E (fun j ↦ decide (p ∈ H j)) = E (setMembershipPattern H p) := by + congr 1 + _ = E P := congrArg E hpat + _ = true := hEP + +/-- Intersect the closed sides of each wall selected by the Boolean pattern. -/ +def closedBooleanCell {n : ℕ} (H : Fin n → PlanarHalfPlaneData) + (P : Fin n → Bool) : Set Point := + ⋂ j, normalHalfPlane (H j).angle (H j).height + (if P j then (H j).upper else !(H j).upper) false + +lemma mem_booleanCell_iff_mem_closedBooleanCell_of_ne {n : ℕ} + (H : Fin n → PlanarHalfPlaneData) (P : Fin n → Bool) (p : Point) + (hp : ∀ j, inner ℝ p (normalVector (H j).angle) ≠ (H j).height) : + p ∈ booleanCell (fun j ↦ (H j).carrier) P ↔ p ∈ closedBooleanCell H P := by + simp only [booleanCell, closedBooleanCell, Set.mem_iInter] + constructor <;> intro h j + · have hj := h j + have hne := hp j + rcases lt_or_gt_of_ne hne with hlt | hgt <;> + cases hP : P j <;> cases hu : (H j).upper <;> cases hs : (H j).strict <;> + simp only [hP, hu, hs, PlanarHalfPlaneData.carrier, normalHalfPlane, + Bool.false_eq_true, Bool.not_false, Bool.not_true, ↓reduceIte, + Set.mem_compl_iff, Set.mem_ofPred_eq] at hj ⊢ <;> linarith + · have hj := h j + have hne := hp j + rcases lt_or_gt_of_ne hne with hlt | hgt <;> + cases hP : P j <;> cases hu : (H j).upper <;> cases hs : (H j).strict <;> + simp only [hP, hu, hs, PlanarHalfPlaneData.carrier, normalHalfPlane, + Bool.false_eq_true, Bool.not_false, Bool.not_true, ↓reduceIte, + Set.mem_compl_iff, Set.mem_ofPred_eq] at hj ⊢ <;> linarith + +/-- Switching the selected input from false to true switches the output to true. -/ +def IsActiveBooleanPattern {n : ℕ} (E : BooleanFunction n) (i : Fin n) + (P : Fin n → Bool) : Prop := + E (Function.update P i false) = false ∧ + E (Function.update P i true) = true + +/-- All input patterns for which the selected Boolean variable is active. -/ +def activeBooleanPatterns {n : ℕ} (E : BooleanFunction n) (i : Fin n) : + Finset (Fin n → Bool) := by + classical + exact Finset.univ.filter (IsActiveBooleanPattern E i) + +/-- The set gained by making the selected wall universally true rather than false. -/ +def activeBooleanRegion {n : ℕ} (E : BooleanFunction n) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) : Set Point := + booleanSet E (Function.update (fun j ↦ (H j).carrier) i Set.univ) \ + booleanSet E (Function.update (fun j ↦ (H j).carrier) i ∅) + +lemma mem_activeBooleanRegion_iff {n : ℕ} (E : BooleanFunction n) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) (p : Point) : + p ∈ activeBooleanRegion E H i ↔ + IsActiveBooleanPattern E i (setMembershipPattern (fun j ↦ (H j).carrier) p) := by + classical + unfold activeBooleanRegion IsActiveBooleanPattern + simp only [Set.mem_sdiff, booleanSet, Set.mem_ofPred_eq] + have huniv : (fun j ↦ decide (p ∈ Function.update + (fun j ↦ (H j).carrier) i Set.univ j)) = + Function.update (setMembershipPattern (fun j ↦ (H j).carrier) p) i true := by + funext j + by_cases hji : j = i <;> + simp [hji, Function.update_of_ne, setMembershipPattern] + have hempty : (fun j ↦ decide (p ∈ Function.update + (fun j ↦ (H j).carrier) i ∅ j)) = + Function.update (setMembershipPattern (fun j ↦ (H j).carrier) p) i false := by + funext j + by_cases hji : j = i <;> + simp [hji, Function.update_of_ne, setMembershipPattern] + rw [huniv, hempty] + cases hfalse : E (Function.update (setMembershipPattern + (fun j ↦ (H j).carrier) p) i false) <;> simp + +lemma measurableSet_planarHalfPlane_carrier (H : PlanarHalfPlaneData) : + MeasurableSet H.carrier := by + cases hu : H.upper <;> cases hs : H.strict <;> + simp only [PlanarHalfPlaneData.carrier, normalHalfPlane, hu, hs, + Bool.false_eq_true, ↓reduceIte] <;> measurability + +lemma eventually_mem_carrier_iff_of_not_mem_boundaryLine (H : PlanarHalfPlaneData) + (p : Point) (hp : p ∉ H.boundaryLine) : + ∀ᶠ q in 𝓝 p, (q ∈ H.carrier ↔ p ∈ H.carrier) := by + have hpne : inner ℝ p (normalVector H.angle) ≠ H.height := hp + have hcont : Continuous (fun q : Point ↦ inner ℝ q (normalVector H.angle)) := by + fun_prop + rcases lt_or_gt_of_ne hpne with hplt | hpgt + · have hev : ∀ᶠ q in 𝓝 p, inner ℝ q (normalVector H.angle) < H.height := + hcont.continuousAt.eventually_lt continuousAt_const hplt + filter_upwards [hev] with q hq + change (q ∈ normalHalfPlane H.angle H.height H.upper H.strict ↔ + p ∈ normalHalfPlane H.angle H.height H.upper H.strict) + simp only [normalHalfPlane, Set.mem_ofPred_eq] + cases H.upper <;> cases H.strict <;> + simp only [Bool.false_eq_true, ↓reduceIte] <;> + constructor <;> intro hm <;> linarith + · have hev : ∀ᶠ q in 𝓝 p, H.height < inner ℝ q (normalVector H.angle) := + continuousAt_const.eventually_lt hcont.continuousAt hpgt + filter_upwards [hev] with q hq + change (q ∈ normalHalfPlane H.angle H.height H.upper H.strict ↔ + p ∈ normalHalfPlane H.angle H.height H.upper H.strict) + simp only [normalHalfPlane, Set.mem_ofPred_eq] + cases H.upper <;> cases H.strict <;> + simp only [Bool.false_eq_true, ↓reduceIte] <;> + constructor <;> intro hm <;> linarith + +lemma eventually_setMembershipPattern_eq_of_ne {n : ℕ} + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) (p : Point) + (hp : ∀ j, j ≠ i → p ∉ (H j).boundaryLine) : + ∀ᶠ q in 𝓝 p, ∀ j, j ≠ i → + setMembershipPattern (fun k ↦ (H k).carrier) q j = + setMembershipPattern (fun k ↦ (H k).carrier) p j := by + suffices ∀ᶠ q in 𝓝 p, ∀ j ∈ (Set.univ : Set (Fin n)), j ≠ i → + setMembershipPattern (fun k ↦ (H k).carrier) q j = + setMembershipPattern (fun k ↦ (H k).carrier) p j by + exact this.mono fun q hq j ↦ hq j (Set.mem_univ j) + apply (Filter.eventually_all_finite Set.finite_univ).2 + intro j _ + by_cases hji : j = i + · exact Filter.Eventually.of_forall fun _ hj ↦ (hj hji).elim + · filter_upwards [eventually_mem_carrier_iff_of_not_mem_boundaryLine (H j) p + (hp j hji)] with q hq + intro _ + simp only [setMembershipPattern] + apply Bool.eq_iff_iff.mpr + simpa only [decide_eq_true_eq] using hq + +lemma measurableSet_booleanCell {n : ℕ} (H : Fin n → PlanarHalfPlaneData) + (P : Fin n → Bool) : + MeasurableSet (booleanCell (fun j ↦ (H j).carrier) P) := by + apply MeasurableSet.iInter + intro j + cases hP : P j + · simpa [booleanCell, hP] using (measurableSet_planarHalfPlane_carrier (H j)).compl + · simpa [booleanCell, hP] using measurableSet_planarHalfPlane_carrier (H j) + +lemma measurableSet_booleanSet {n : ℕ} (E : BooleanFunction n) + (H : Fin n → PlanarHalfPlaneData) : + MeasurableSet (booleanSet E (fun j ↦ (H j).carrier)) := by + rw [booleanSet_eq_iUnion_booleanCell] + apply MeasurableSet.iUnion + intro P + by_cases hP : E P = true + · simpa [hP] using measurableSet_booleanCell H P + · simp [hP] + +lemma monotoneBoolean_update_false_true {n : ℕ} {E : BooleanFunction n} + (hE : IsMonotoneBooleanFunction E) (i : Fin n) (P : Fin n → Bool) : + E (Function.update P i false) = true → + E (Function.update P i true) = true := by + intro htrue + apply hE _ _ _ htrue + intro j hj + by_cases hji : j = i + · subst j + simp + · simpa [Function.update_of_ne hji] using hj + +lemma not_isActiveBooleanPattern_iff {n : ℕ} {E : BooleanFunction n} + (hE : IsMonotoneBooleanFunction E) (i : Fin n) (P : Fin n → Bool) : + ¬IsActiveBooleanPattern E i P ↔ + E (Function.update P i false) = E (Function.update P i true) := by + unfold IsActiveBooleanPattern + constructor + · intro hnot + cases hf : E (Function.update P i false) <;> + cases ht : E (Function.update P i true) + · rfl + · exact (hnot ⟨hf, ht⟩).elim + · have hcontra := monotoneBoolean_update_false_true hE i P hf + rw [ht] at hcontra + exact (Bool.false_ne_true hcontra).elim + · rfl + · intro heq hactive + rw [hactive.1, hactive.2] at heq + exact Bool.false_ne_true heq + +end MovingSofa.Nef + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Nef / Height +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Change one wall’s height by `δ` in a Boolean half-plane representation. -/ +def perturbNefHeight {n : ℕ} (E : BooleanFunction n) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) (δ : ℝ) : Set Point := + booleanSet E (fun j ↦ + (if j = i then { H j with height := (H j).height + δ } else H j).carrier) + +end MovingSofa + +namespace MovingSofa.Nef + +open Filter Topology + +lemma perturbNefHeight_eq_update {n : ℕ} (E : BooleanFunction n) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) (δ : ℝ) : + perturbNefHeight E H i δ = booleanSet E + (Function.update (fun j ↦ (H j).carrier) i + ({ H i with height := (H i).height + δ }).carrier) := by + unfold perturbNefHeight + congr 1 + funext j + by_cases hji : j = i <;> simp [hji, Function.update_of_ne] + +lemma perturbNefHeight_sdiff {n : ℕ} {E : BooleanFunction n} + (hE : IsMonotoneBooleanFunction E) (H : Fin n → PlanarHalfPlaneData) + (i : Fin n) (δ ε : ℝ) : + perturbNefHeight E H i δ \ perturbNefHeight E H i ε = + (({ H i with height := (H i).height + δ }).carrier \ + ({ H i with height := (H i).height + ε }).carrier) ∩ + (booleanSet E (Function.update (fun j ↦ (H j).carrier) i Set.univ) \ + booleanSet E (Function.update (fun j ↦ (H j).carrier) i ∅)) := by + rw [perturbNefHeight_eq_update, perturbNefHeight_eq_update] + exact booleanSet_update_sdiff hE _ _ _ _ + +/-- The half-open strip-height interval matching the wall’s strictness convention. -/ +def heightInterval (strict : Bool) (h δ ε : ℝ) : Set ℝ := + if strict then Set.Ico (h + ε) (h + δ) else Set.Ioc (h + ε) (h + δ) + +lemma measurableSet_heightInterval (strict : Bool) (h δ ε : ℝ) : + MeasurableSet (heightInterval strict h δ ε) := by + cases strict <;> simp [heightInterval] + +lemma integral_heightInterval_eq_intervalIntegral (strict : Bool) + (h δ ε : ℝ) (f : ℝ → ℝ) (hεδ : ε ≤ δ) : + (∫ x in heightInterval strict h δ ε, f x) = + ∫ x in h + ε..h + δ, f x := by + have hle : h + ε ≤ h + δ := by linarith + cases strict + · simp only [heightInterval, Bool.false_eq_true, ↓reduceIte] + exact (intervalIntegral.integral_of_le hle).symm + · simp only [heightInterval, ↓reduceIte] + rw [MeasureTheory.integral_Ico_eq_integral_Ioc] + exact (intervalIntegral.integral_of_le hle).symm + +lemma mem_heightInterval_bounds {strict : Bool} {h δ ε x : ℝ} + (hx : x ∈ heightInterval strict h δ ε) : + h + ε ≤ x ∧ x ≤ h + δ := by + cases strict <;> simp [heightInterval] at hx <;> + constructor <;> linarith [hx.1, hx.2] + +lemma carrier_sdiff_carrier_eq_heightInterval (H : PlanarHalfPlaneData) + (hSide : H.upper = false) (δ ε : ℝ) : + ({ H with height := H.height + δ }).carrier \ + ({ H with height := H.height + ε }).carrier = + {p | inner ℝ p (normalVector H.angle) ∈ + heightInterval H.strict H.height δ ε} := by + ext p + cases hs : H.strict <;> + simp [PlanarHalfPlaneData.carrier, normalHalfPlane, hSide, + heightInterval] <;> tauto + +lemma perturbNefHeight_sdiff_eq_heightInterval {n : ℕ} + {E : BooleanFunction n} (hE : IsMonotoneBooleanFunction E) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) + (hSide : (H i).upper = false) (δ ε : ℝ) : + perturbNefHeight E H i δ \ perturbNefHeight E H i ε = + {p | inner ℝ p (normalVector (H i).angle) ∈ + heightInterval (H i).strict (H i).height δ ε} ∩ + (booleanSet E (Function.update (fun j ↦ (H j).carrier) i Set.univ) \ + booleanSet E (Function.update (fun j ↦ (H j).carrier) i ∅)) := by + rw [perturbNefHeight_sdiff hE H i δ ε, + carrier_sdiff_carrier_eq_heightInterval (H i) hSide] + +lemma perturbNefHeight_mono {n : ℕ} {E : BooleanFunction n} + (hE : IsMonotoneBooleanFunction E) (H : Fin n → PlanarHalfPlaneData) + (i : Fin n) (hSide : (H i).upper = false) : + Monotone (perturbNefHeight E H i) := by + intro δ ε hδε + apply booleanSet_mono hE + intro j p hp + by_cases hji : j = i + · subst j + simp only at hp ⊢ + change p ∈ normalHalfPlane (H i).angle ((H i).height + δ) (H i).upper + (H i).strict at hp + change p ∈ normalHalfPlane (H i).angle ((H i).height + ε) (H i).upper + (H i).strict + cases hstrict : (H i).strict <;> + simp only [normalHalfPlane, hSide, hstrict, Bool.false_eq_true, ite_false, + ite_true, Set.mem_ofPred_eq] at hp ⊢ + · exact hp.trans (add_le_add_right hδε _) + · exact hp.trans_le (add_le_add_right hδε _) + · simpa only [ite_eq_right hji] using hp + +lemma measurableSet_perturbNefHeight {n : ℕ} (E : BooleanFunction n) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) (δ : ℝ) : + MeasurableSet (perturbNefHeight E H i δ) := by + unfold perturbNefHeight + apply measurableSet_booleanSet + +lemma area_perturb_sub_eq_volume_sdiff {n : ℕ} {E : BooleanFunction n} + (hE : IsMonotoneBooleanFunction E) (H : Fin n → PlanarHalfPlaneData) + (i : Fin n) (hSide : (H i).upper = false) (R ε₀ δ ε : ℝ) + (hεδ : ε ≤ δ) (hδ : |δ| ≤ ε₀) (hε : |ε| ≤ ε₀) + (hBound : ∀ z : ℝ, |z| ≤ ε₀ → + perturbNefHeight E H i z ⊆ Metric.closedBall 0 R) : + ClassicalResults.area (perturbNefHeight E H i δ) - + ClassicalResults.area (perturbNefHeight E H i ε) = + (MeasureTheory.volume + (perturbNefHeight E H i δ \ perturbNefHeight E H i ε)).toReal := by + have hmono := perturbNefHeight_mono hE H i hSide hεδ + have hfiniteδ : MeasureTheory.volume (perturbNefHeight E H i δ) ≠ ⊤ := by + apply ne_of_lt + exact lt_of_le_of_lt (MeasureTheory.measure_mono (hBound δ hδ)) + MeasureTheory.measure_closedBall_lt_top + have hfiniteε : MeasureTheory.volume (perturbNefHeight E H i ε) ≠ ⊤ := by + apply ne_of_lt + exact lt_of_le_of_lt (MeasureTheory.measure_mono (hBound ε hε)) + MeasureTheory.measure_closedBall_lt_top + rw [ClassicalResults.area, ClassicalResults.area, + ← ENNReal.toReal_sub_of_le (MeasureTheory.measure_mono hmono) hfiniteδ, + ← MeasureTheory.measure_sdiff hmono + (measurableSet_perturbNefHeight E H i ε).nullMeasurableSet hfiniteε] + +lemma perturbNefHeight_zero {n : ℕ} (E : BooleanFunction n) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) : + perturbNefHeight E H i 0 = booleanSet E (fun j ↦ (H j).carrier) := by + ext p + simp [perturbNefHeight, PlanarHalfPlaneData.carrier] + +end MovingSofa.Nef + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Perturbation Bounds +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The polygonal cap with independently specified upper and lower wall heights. -/ +def independentWallCap {Θ : AngleSet} (upper lower : PolygonHeightSpace Θ) : Set Point := + (⋂ t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + normalHalfPlane (t : Real.Angle) (polygonHeightValue upper t) false false ∩ + normalHalfPlane (t : Real.Angle) (polygonHeightValue lower t) true false) ∩ + ⋂ t ∈ (Θ.directions : Set ℝ) ∪ ((fun t : ℝ ↦ t + Real.pi / 2) '' Θ.directions), + normalHalfPlane (t : Real.Angle) (polygonHeightValue upper t) false false + +/-- The polygonal niche determined by independently specified lower wall heights. -/ +def independentWallNiche {Θ : AngleSet} (lower : PolygonHeightSpace Θ) : Set Point := + (⋂ t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + normalHalfPlane (t : Real.Angle) (polygonHeightValue lower t) true false) ∩ + ⋃ t ∈ Θ.directions, + normalHalfPlane (t : Real.Angle) (polygonHeightValue lower t) false true ∩ + normalHalfPlane ((t + Real.pi / 2 : ℝ) : Real.Angle) + (polygonHeightValue lower (t + Real.pi / 2)) false true + +theorem polygonPerturbation_uniform_bounds (Θ : AngleSet) + (h : PolygonHeightSpace Θ) : + ∃ R ε₀ : ℝ, 0 < R ∧ 0 < ε₀ ∧ + ∀ upper lower : PolygonHeightSpace Θ, + (∀ t, |upper t - h t| ≤ ε₀) → + (∀ t, |lower t - (h t - 1)| ≤ ε₀) → + independentWallCap upper lower ⊆ Metric.closedBall 0 R ∧ + independentWallNiche lower ⊆ Metric.closedBall 0 R := by + let a := polygonHeightValue h (Real.pi / 2) - 2 + let Q (t : ℝ) : Set Point := {p | a ≤ p 1 ∧ + inner ℝ p (normalVector (t : Real.Angle)) < polygonHeightValue h t + 2 ∧ + inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < + polygonHeightValue h (t + Real.pi / 2) + 2} + have hQ : Bornology.IsBounded (⋃ t ∈ Θ.directions, Q t) := by + apply (Bornology.isBounded_biUnion_finset Θ.directions).2 + intro t ht + exact isBounded_setOf_le_snd_and_inner_lt _ _ _ t + ⟨(Θ.interior t ht).1, (Θ.interior t ht).2.trans_le Θ.angle_le⟩ + obtain ⟨R, hR, hbound⟩ := hQ.exists_pos_norm_le + refine ⟨R, 1, hR, zero_lt_one, ?_⟩ + intro upper lower hu hl + have huv (t : ℝ) (ht : t ∈ angleDomain Θ) : + polygonHeightValue upper t ≤ polygonHeightValue h t + 1 := by + have hh := (abs_le.mp (hu ⟨t, ht⟩)).2 + simp only [polygonHeightValue, dite_eq_left ht] + linarith + have hlv (t : ℝ) (ht : t ∈ angleDomain Θ) : + polygonHeightValue h t - 2 ≤ polygonHeightValue lower t ∧ + polygonHeightValue lower t ≤ polygonHeightValue h t := by + have hh := abs_le.mp (hl ⟨t, ht⟩) + simp only [polygonHeightValue, dite_eq_left ht] + constructor <;> linarith [hh.1, hh.2] + have hy {p : Point} + (hp : p ∈ ⋂ t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + normalHalfPlane (t : Real.Angle) (polygonHeightValue lower t) true false) : + a ≤ p 1 := by + have hp' := Set.mem_iInter₂.mp hp (Real.pi / 2) (by simp) + have hb := (hlv (Real.pi / 2) (Or.inr (by simp))).1 + have hp'' : polygonHeightValue lower (Real.pi / 2) ≤ p 1 := by + simpa [normalHalfPlane, normalVector, frame, PiLp.inner_apply] using hp' + exact hb.trans hp'' + have hball {p : Point} (hp : p ∈ ⋃ t ∈ Θ.directions, Q t) : + p ∈ Metric.closedBall 0 R := by + simpa only [Metric.mem_closedBall, dist_zero_right] using hbound p hp + constructor + · intro p hp + apply hball + obtain ⟨t, ht⟩ := Θ.nonempty + apply Set.mem_iUnion₂.mpr + refine ⟨t, ht, ?_, ?_, ?_⟩ + · apply hy + exact Set.mem_iInter₂.mpr fun s hs ↦ (Set.mem_iInter₂.mp hp.1 s hs).2 + · have hb := Set.mem_iInter₂.mp hp.2 t (Or.inl ht) + change inner ℝ p (normalVector (t : Real.Angle)) ≤ polygonHeightValue upper t at hb + have hu' := huv t (Or.inl (Or.inl ht)) + linarith + · have hb := Set.mem_iInter₂.mp hp.2 (t + Real.pi / 2) (Or.inr ⟨t, ht, rfl⟩) + change inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) ≤ + polygonHeightValue upper (t + Real.pi / 2) at hb + have hu' := huv (t + Real.pi / 2) (Or.inl (Or.inr ⟨t, ht, rfl⟩)) + linarith + · rintro p ⟨hpF, hpN⟩ + apply hball + obtain ⟨t, ht, hp⟩ := Set.mem_iUnion₂.mp hpN + apply Set.mem_iUnion₂.mpr + refine ⟨t, ht, hy hpF, ?_, ?_⟩ + · have hb := (hlv t (Or.inl (Or.inl ht))).2 + have hp₁ : inner ℝ p (normalVector (t : Real.Angle)) < + polygonHeightValue lower t := hp.1 + exact hp₁.trans_le (by linarith) + · have hb := (hlv (t + Real.pi / 2) (Or.inl (Or.inr ⟨t, ht, rfl⟩))).2 + exact hp.2.trans_le (by linarith) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Polyline / Basic +-/ + +@[expose] public section + +namespace MovingSofa + +/-- A finite vertex sequence whose horizontal coordinates strictly increase. -/ +structure XMonotonePolylineData where + /-- The number of consecutive line segments in the polyline. -/ + edges : ℕ + /-- The ordered sequence of polyline vertices. -/ + vertices : Fin (edges + 1) → Point + increasing : StrictMono (fun i ↦ vertices i 0) + +/-- The union of the segments between consecutive vertices. -/ +def XMonotonePolylineData.carrier (p : XMonotonePolylineData) : Set Point := + ⋃ i : Fin p.edges, segment ℝ (p.vertices i.castSucc) (p.vertices i.succ) + +/-- The set is the carrier of a polyline with strictly increasing horizontal coordinates. -/ +def IsXMonotonePolyline (S : Set Point) : Prop := + ∃ p : XMonotonePolylineData, S = p.carrier + +end MovingSofa + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Polyline / Displacement +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The horizontal displacement of a rightward edge is its length times the sine of its normal. -/ +lemma dist_mul_sin_eq_fst_sub_of_inner_sub_eq_zero {a b : Point} {t : ℝ} + (ht : t ∈ Set.Ioo 0 Real.pi) (hab : a 0 < b 0) + (horth : inner ℝ (b - a) (normalVector (t : Real.Angle)) = 0) : + dist a b * Real.sin t = b 0 - a 0 := by + let r := inner ℝ (b - a) (tangentVector (t : Real.Angle)) + have hvec : r • tangentVector (t : Real.Angle) = b - a := by + simpa only [horth, zero_smul, zero_add] using + inner_normalVector_smul_add_inner_tangentVector_smul (b - a) (t : Real.Angle) + have hcoord : -(r * Real.sin t) = b 0 - a 0 := by + have h := congrArg (fun p : Point ↦ p 0) hvec + simpa [tangentVector, frame] using h + have hsin := Real.sin_pos_of_pos_of_lt_pi ht.1 ht.2 + have hr : r < 0 := by nlinarith + have hn : ‖tangentVector (t : Real.Angle)‖ = 1 := by + rw [← sq_eq_sq₀ (norm_nonneg _) (by norm_num : (0 : ℝ) ≤ 1)] + rw [EuclideanSpace.norm_sq_eq] + simp [tangentVector, frame, Fin.sum_univ_two, Real.sin_sq_add_cos_sq] + have hdist : dist a b = -r := by + rw [dist_comm, dist_eq_norm, ← hvec, norm_smul, hn, mul_one, + Real.norm_eq_abs, abs_of_neg hr] + rw [hdist] + linarith + +/-- The sine-weighted edge lengths telescope to the horizontal endpoint displacement. -/ +lemma XMonotonePolylineData.sum_dist_mul_sin + (p : XMonotonePolylineData) (t : Fin p.edges → ℝ) + (ht : ∀ i, t i ∈ Set.Ioo 0 Real.pi) + (horth : ∀ i, inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (t i : Real.Angle)) = 0) : + ∑ i : Fin p.edges, + dist (p.vertices i.castSucc) (p.vertices i.succ) * Real.sin (t i) = + p.vertices (Fin.last p.edges) 0 - p.vertices 0 0 := by + have hedge (i : Fin p.edges) := dist_mul_sin_eq_fst_sub_of_inner_sub_eq_zero + (ht i) (p.increasing i.castSucc_lt_succ) (horth i) + simp_rw [hedge] + rw [Finset.sum_sub_distrib] + have hfirst := Fin.sum_univ_succ (fun i : Fin (p.edges + 1) ↦ p.vertices i 0) + have hlast := Fin.sum_univ_castSucc (fun i : Fin (p.edges + 1) ↦ p.vertices i 0) + linarith + +/-- A nonvertical segment has at most one normal angle strictly between zero and pi. -/ +lemma eq_of_inner_sub_normalVector_eq_zero {a b : Point} {s t : ℝ} + (hs : s ∈ Set.Ioo 0 Real.pi) (ht : t ∈ Set.Ioo 0 Real.pi) + (hab : a 0 < b 0) + (horths : inner ℝ (b - a) (normalVector (s : Real.Angle)) = 0) + (hortht : inner ℝ (b - a) (normalVector (t : Real.Angle)) = 0) : s = t := by + have hs' : (b 0 - a 0) * Real.cos s + (b 1 - a 1) * Real.sin s = 0 := by + simpa [normalVector, frame, PiLp.inner_apply, mul_comm] using horths + have ht' : (b 0 - a 0) * Real.cos t + (b 1 - a 1) * Real.sin t = 0 := by + simpa [normalVector, frame, PiLp.inner_apply, mul_comm] using hortht + have hprod : (b 0 - a 0) * Real.sin (s - t) = 0 := by + rw [Real.sin_sub] + linear_combination Real.sin s * ht' - Real.sin t * hs' + have hz : Real.sin (s - t) = 0 := + (mul_eq_zero.mp hprod).resolve_left (sub_pos.mpr hab).ne' + have := (Real.sin_eq_zero_iff_of_lt_of_lt + (by linarith [hs.1, ht.2]) (by linarith [hs.2, ht.1])).mp hz + linarith + +/-- Grouping edge lengths by normal preserves the horizontal displacement identity. -/ +lemma XMonotonePolylineData.sum_normal_lengths_mul_sin + (p : XMonotonePolylineData) (D : Finset ℝ) + (hD : ∀ t ∈ D, t ∈ Set.Ioo 0 Real.pi) + (hlabels : ∀ i : Fin p.edges, ∃ t ∈ D, + inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (t : Real.Angle)) = 0) : + ∑ t ∈ D, (∑ i : Fin p.edges, + if inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (t : Real.Angle)) = 0 then + dist (p.vertices i.castSucc) (p.vertices i.succ) else 0) * Real.sin t = + p.vertices (Fin.last p.edges) 0 - p.vertices 0 0 := by + classical + choose t ht horth using hlabels + calc + _ = ∑ i : Fin p.edges, ∑ u ∈ D, + (if inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (u : Real.Angle)) = 0 then + dist (p.vertices i.castSucc) (p.vertices i.succ) else 0) * Real.sin u := by + simp_rw [Finset.sum_mul] + rw [Finset.sum_comm] + _ = ∑ i : Fin p.edges, + dist (p.vertices i.castSucc) (p.vertices i.succ) * Real.sin (t i) := by + apply Finset.sum_congr rfl + intro i _ + rw [Finset.sum_eq_single (t i)] + · rw [ite_eq_left (horth i)] + · intro u hu hut + have hne : inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (u : Real.Angle)) ≠ 0 := by + intro hzero + exact hut (eq_of_inner_sub_normalVector_eq_zero (hD u hu) (hD _ (ht i)) + (p.increasing i.castSucc_lt_succ) hzero (horth i)) + simp [hne] + · exact fun hnot ↦ (hnot (ht i)).elim + _ = _ := p.sum_dist_mul_sin t (fun i ↦ hD _ (ht i)) horth + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Polyline / Graph +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The point on the graph of a real-valued function above a given abscissa. -/ +def pointOnGraph (f : ℝ → ℝ) (x : ℝ) : Point := !₂[x, f x] + +/-- Evaluation of the affine function with slope-intercept pair `c`. -/ +def affineValue (c : ℝ × ℝ) (x : ℝ) : ℝ := c.1 * x + c.2 + +/-- An affine real-valued function is continuous. -/ +theorem continuous_affineValue (c : ℝ × ℝ) : Continuous (affineValue c) := by + unfold affineValue + fun_prop + +private def affineCrossings (L : Finset (ℝ × ℝ)) : Set ℝ := + ⋃ c ∈ L, ⋃ d ∈ L.erase c, {x | affineValue c x = affineValue d x} + +private theorem finite_affineValue_eq_of_ne {c d : ℝ × ℝ} (hcd : c ≠ d) : + {x | affineValue c x = affineValue d x}.Finite := by + apply Set.Subsingleton.finite + intro x hx y hy + simp only [Set.mem_ofPred_eq, affineValue] at hx hy + by_cases hm : c.1 = d.1 + · rw [hm] at hx + have hb : c.2 = d.2 := by linarith + exact (hcd (Prod.ext hm hb)).elim + · have hs : c.1 - d.1 ≠ 0 := sub_ne_zero.mpr hm + have hprod : (c.1 - d.1) * (x - y) = 0 := by nlinarith + exact sub_eq_zero.mp ((mul_eq_zero.mp hprod).resolve_left hs) + +private theorem finite_affineCrossings (L : Finset (ℝ × ℝ)) : + (affineCrossings L).Finite := by + apply L.finite_toSet.biUnion + intro c hc + apply (L.erase c).finite_toSet.biUnion + intro d hd + exact finite_affineValue_eq_of_ne (Finset.ne_of_mem_erase hd).symm + +@[simp] theorem pointOnGraph_apply_zero (f : ℝ → ℝ) (x : ℝ) : + pointOnGraph f x 0 = x := by + rfl + +@[simp] theorem pointOnGraph_apply_one (f : ℝ → ℝ) (x : ℝ) : + pointOnGraph f x 1 = f x := by + rfl + +/-- The closed vertical epigraph of a real-valued function. -/ +def verticalEpigraph (f : ℝ → ℝ) : Set Point := + {p | f (p 0) ≤ p 1} + +/-- A continuous function has a closed vertical epigraph. -/ +theorem isClosed_verticalEpigraph {f : ℝ → ℝ} (hf : Continuous f) : + IsClosed (verticalEpigraph f) := by + exact isClosed_le + (hf.comp (PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 0)) + (PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 1) + +private theorem pointOnGraph_not_mem_interior_verticalEpigraph + (f : ℝ → ℝ) (x : ℝ) : + pointOnGraph f x ∉ interior (verticalEpigraph f) := by + intro hx + let q : ℕ → Point := fun n ↦ !₂[x, f x - (1 : ℝ) / (n + 1)] + have hq : Filter.Tendsto q Filter.atTop (nhds (pointOnGraph f x)) := by + apply (PiLp.homeomorph 2 (fun _ : Fin 2 ↦ ℝ)).isInducing.tendsto_nhds_iff.mpr + apply tendsto_pi_nhds.mpr + intro i + fin_cases i + · change Filter.Tendsto (fun _ : ℕ ↦ x) Filter.atTop (nhds x) + exact tendsto_const_nhds + · change Filter.Tendsto (fun n : ℕ ↦ f x - (1 : ℝ) / (n + 1)) + Filter.atTop (nhds (f x)) + simpa using (tendsto_const_nhds.sub + (tendsto_one_div_add_atTop_nhds_zero_nat (𝕜 := ℝ))) + have hev : ∀ᶠ n in Filter.atTop, q n ∈ interior (verticalEpigraph f) := + hq (isOpen_interior.mem_nhds hx) + obtain ⟨n, hn⟩ := hev.exists + have hn' := interior_subset hn + change f x ≤ f x - (1 : ℝ) / (n + 1) at hn' + have : 0 < (1 : ℝ) / (n + 1) := by positivity + linarith + +/-- The frontier of a continuous vertical epigraph is its graph. -/ +theorem frontier_verticalEpigraph {f : ℝ → ℝ} (hf : Continuous f) : + frontier (verticalEpigraph f) = Set.range (pointOnGraph f) := by + have hclosed := isClosed_verticalEpigraph hf + ext p + constructor + · intro hp + have hpE : p ∈ verticalEpigraph f := by + exact hclosed.closure_eq ▸ frontier_subset_closure hp + have hpNotInt : p ∉ interior (verticalEpigraph f) := + (mem_frontier_iff_notMem_interior hpE).mp hp + have heq : f (p 0) = p 1 := by + apply le_antisymm hpE + apply le_of_not_gt + intro hlt + apply hpNotInt + have hopen : IsOpen {q : Point | f (q 0) < q 1} := + isOpen_lt + (hf.comp (PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 0)) + (PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 1) + exact interior_maximal (fun q hq ↦ by + change f (q 0) ≤ q 1 + exact hq.le) hopen hlt + refine ⟨p 0, ?_⟩ + ext i + fin_cases i + · simp [pointOnGraph] + · simpa [pointOnGraph] using heq + · rintro ⟨x, rfl⟩ + apply (mem_frontier_iff_notMem_interior (s := verticalEpigraph f) + (x := pointOnGraph f x) (by + change f x ≤ f x + exact le_rfl)).mpr + exact pointOnGraph_not_mem_interior_verticalEpigraph f x + +private def graphPolyline (n : ℕ) (x : Fin (n + 1) → ℝ) + (hx : StrictMono x) (f : ℝ → ℝ) : XMonotonePolylineData where + edges := n + vertices i := pointOnGraph f (x i) + increasing := by + simpa only [pointOnGraph_apply_zero] using hx + +@[simp] private theorem graphPolyline_vertices (n : ℕ) (x : Fin (n + 1) → ℝ) + (hx : StrictMono x) (f : ℝ → ℝ) (i : Fin (n + 1)) : + (graphPolyline n x hx f).vertices i = pointOnGraph f (x i) := by + rfl + +private theorem segment_pointOnGraph_affine {f : ℝ → ℝ} {m c a b : ℝ} + (hab : a ≤ b) (hf : ∀ z ∈ Set.Icc a b, f z = m * z + c) : + segment ℝ (pointOnGraph f a) (pointOnGraph f b) = + pointOnGraph f '' Set.Icc a b := by + ext p + constructor + · rintro ⟨u, v, hu, hv, huv, rfl⟩ + let z := u * a + v * b + have hz : z ∈ Set.Icc a b := by + constructor + · calc + a = (u + v) * a := by rw [huv]; ring + _ = u * a + v * a := by ring + _ ≤ u * a + v * b := add_le_add (le_refl _) (mul_le_mul_of_nonneg_left hab hv) + · calc + u * a + v * b ≤ u * b + v * b := + add_le_add (mul_le_mul_of_nonneg_left hab hu) (le_refl _) + _ = (u + v) * b := by ring + _ = b := by rw [huv]; ring + refine ⟨z, hz, ?_⟩ + have hfa := hf a ⟨le_rfl, hab⟩ + have hfb := hf b ⟨hab, le_rfl⟩ + have hfz := hf z hz + ext i + fin_cases i + · simp [pointOnGraph, z] + · simp only [pointOnGraph, hfz, Fin.mk_one, Fin.isValue, Matrix.cons_val_one, + Matrix.cons_val_fin_one, hfa, hfb, PiLp.add_apply, PiLp.smul_apply, smul_eq_mul, z] + calc + m * (u * a + v * b) + c = + u * (m * a) + v * (m * b) + (u + v) * c := by rw [huv]; ring + _ = u * (m * a + c) + v * (m * b + c) := by ring + · rintro ⟨z, hz, rfl⟩ + by_cases hab' : a = b + · subst b + have : z = a := by exact le_antisymm hz.2 hz.1 + subst z + simp + · have hlt : a < b := lt_of_le_of_ne hab hab' + let u := (b - z) / (b - a) + let v := (z - a) / (b - a) + have hden : 0 < b - a := sub_pos.mpr hlt + have hu : 0 ≤ u := div_nonneg (sub_nonneg.mpr hz.2) hden.le + have hv : 0 ≤ v := div_nonneg (sub_nonneg.mpr hz.1) hden.le + have huv : u + v = 1 := by + dsimp [u, v] + field_simp + ring + refine ⟨u, v, hu, hv, huv, ?_⟩ + have hfa := hf a ⟨le_rfl, hab⟩ + have hfb := hf b ⟨hab, le_rfl⟩ + have hfz := hf z hz + ext i + fin_cases i + · simp [pointOnGraph] + dsimp [u, v] + field_simp + ring + · simp [pointOnGraph, hfz, hfa, hfb] + dsimp [u, v] + field_simp + ring + +/-- A graph segment of slope `m` is orthogonal to each normal annihilating `(1,m)`. -/ +theorem inner_pointOnGraph_sub_normalVector_eq_zero {f : ℝ → ℝ} + {m c a b t : ℝ} + (hf : Set.EqOn f (fun x ↦ m * x + c) (Set.Icc a b)) + (hab : a ≤ b) (horth : Real.cos t + m * Real.sin t = 0) : + inner ℝ (pointOnGraph f b - pointOnGraph f a) + (normalVector (t : Real.Angle)) = 0 := by + have hfa := hf ⟨le_rfl, hab⟩ + have hfb := hf ⟨hab, le_rfl⟩ + simp [pointOnGraph, normalVector, frame, PiLp.inner_apply, hfa, hfb] + nlinarith + +private theorem graphPolyline_carrier_eq_image_Icc {n : ℕ} {x : Fin (n + 1) → ℝ} + (hx : StrictMono x) {f : ℝ → ℝ} + (hpiece : ∀ i : Fin n, ∃ m c : ℝ, ∀ z ∈ Set.Icc (x i.castSucc) (x i.succ), + f z = m * z + c) + (hcover : Set.Icc (x 0) (x (Fin.last n)) = + ⋃ i : Fin n, Set.Icc (x i.castSucc) (x i.succ)) : + (graphPolyline n x hx f).carrier = + pointOnGraph f '' Set.Icc (x 0) (x (Fin.last n)) := by + rw [hcover, Set.image_iUnion] + apply Set.iUnion_congr + intro i + obtain ⟨m, c, hi⟩ := hpiece i + exact segment_pointOnGraph_affine (hx i.castSucc_lt_succ).le hi + +private theorem iUnion_Icc_fin {n : ℕ} (hn : 0 < n) {x : Fin (n + 1) → ℝ} + (hx : StrictMono x) : + Set.Icc (x 0) (x (Fin.last n)) = + ⋃ i : Fin n, Set.Icc (x i.castSucc) (x i.succ) := by + induction n with + | zero => simp at hn + | succ n ih => + by_cases hn0 : n = 0 + · subst n + ext z + constructor + · intro hz + exact Set.mem_iUnion.mpr ⟨0, by simpa using hz⟩ + · intro hz + obtain ⟨i, hi⟩ := Set.mem_iUnion.mp hz + fin_cases i + simpa using hi + · have hnpos : 0 < n := Nat.pos_of_ne_zero hn0 + let y : Fin (n + 1) → ℝ := fun i ↦ x i.castSucc + have hy : StrictMono y := hx.comp Fin.strictMono_castSucc + have hprefix := ih hnpos hy + have hprefix' : Set.Icc (x 0) (x (Fin.last n).castSucc) = + ⋃ i : Fin n, Set.Icc (x i.castSucc.castSucc) (x i.succ.castSucc) := by + simpa [y] using hprefix + have hprefix'' : Set.Icc (x 0) (x (Fin.last n).castSucc) = + Set.iUnion ((fun i : Fin (n + 1) ↦ + Set.Icc (x i.castSucc) (x i.succ)) ∘ Fin.castSucc) := by + rw [hprefix'] + apply Set.iUnion_congr + intro i + congr 2 + rw [Set.iUnion_fin_add_one_eq_iUnion_castSucc] + rw [← hprefix''] + exact (Set.Icc_union_Icc_eq_Icc + (hx.monotone (Fin.zero_le _)) + (hx (Fin.last n).castSucc_lt_succ).le).symm + +private theorem exists_affineValue_eqOn_of_finite_selector {I : Set ℝ} + (hI : IsPreconnected I) (L : Finset (ℝ × ℝ)) {f : ℝ → ℝ} + (hf : ContinuousOn f I) + (hsel : ∀ x ∈ I, ∃ c ∈ L, f x = affineValue c x) + (hsep : ∀ c ∈ L, ∀ d ∈ L, c ≠ d → + ∀ x ∈ I, affineValue c x ≠ affineValue d x) + (hIne : I.Nonempty) : + ∃ c ∈ L, Set.EqOn f (affineValue c) I := by + classical + let _ : PreconnectedSpace I := Subtype.preconnectedSpace hI + obtain ⟨x₀, hx₀⟩ := hIne + obtain ⟨c₀, hc₀L, hc₀⟩ := hsel x₀ hx₀ + let A : Set I := {x | f x = affineValue c₀ x} + have hAclosed : IsClosed A := by + apply isClosed_eq + · change Continuous (I.domRestrict f) + exact continuousOn_iff_continuous_domRestrict.mp hf + · exact (continuous_affineValue c₀).comp continuous_subtype_val + have hAc : Aᶜ = ⋃ d ∈ L.erase c₀, + {x : I | f x = affineValue d x} := by + ext x + constructor + · intro hx + have hxne : f x ≠ affineValue c₀ x := by simpa [A] using hx + obtain ⟨d, hdL, hd⟩ := hsel x x.2 + have hdc : d ≠ c₀ := by + intro h + subst d + exact hxne hd + exact Set.mem_iUnion₂.mpr ⟨d, Finset.mem_erase.mpr ⟨hdc, hdL⟩, hd⟩ + · intro hx + obtain ⟨d, hdL, hd⟩ := Set.mem_iUnion₂.mp hx + have hdc := (Finset.mem_erase.mp hdL).1 + intro hxc + exact hsep d (Finset.mem_of_mem_erase hdL) c₀ hc₀L hdc x x.2 (hd.symm.trans hxc) + have hAcclosed : IsClosed Aᶜ := by + rw [hAc] + apply isClosed_biUnion_finset + intro d hd + apply isClosed_eq + · change Continuous (I.domRestrict f) + exact continuousOn_iff_continuous_domRestrict.mp hf + · exact (continuous_affineValue d).comp continuous_subtype_val + have hAclopen : IsClopen A := ⟨hAclosed, isClosed_compl_iff.mp hAcclosed⟩ + have hAnonempty : A.Nonempty := ⟨⟨x₀, hx₀⟩, hc₀⟩ + have hAuniv : A = Set.univ := hAclopen.eq_univ hAnonempty + refine ⟨c₀, hc₀L, ?_⟩ + intro x hx + have : (⟨x, hx⟩ : I) ∈ A := hAuniv.symm ▸ Set.mem_univ _ + exact this + +private theorem exists_affineValue_eqOn_Icc_of_avoids_crossings {a b : ℝ} + (hab : a < b) (L : Finset (ℝ × ℝ)) {f : ℝ → ℝ} + (hf : ContinuousOn f (Set.Icc a b)) + (hsel : ∀ x ∈ Set.Icc a b, ∃ c ∈ L, f x = affineValue c x) + (hcross : Set.Ioo a b ∩ affineCrossings L = ∅) : + ∃ c ∈ L, Set.EqOn f (affineValue c) (Set.Icc a b) := by + classical + have hf' : ContinuousOn f (Set.Ioo a b) := + hf.mono (Set.Ioo_subset_Icc_self) + have hsel' : ∀ x ∈ Set.Ioo a b, ∃ c ∈ L, f x = affineValue c x := + fun x hx ↦ hsel x (Set.Ioo_subset_Icc_self hx) + have hsep : ∀ c ∈ L, ∀ d ∈ L, c ≠ d → + ∀ x ∈ Set.Ioo a b, affineValue c x ≠ affineValue d x := by + intro c hc d hd hcd x hx hEq + have hxCross : x ∈ affineCrossings L := by + exact Set.mem_iUnion₂.mpr ⟨c, hc, Set.mem_iUnion₂.mpr + ⟨d, Finset.mem_erase.mpr ⟨hcd.symm, hd⟩, hEq⟩⟩ + have : x ∈ Set.Ioo a b ∩ affineCrossings L := ⟨hx, hxCross⟩ + simp [hcross] at this + obtain ⟨c, hcL, hc⟩ := exists_affineValue_eqOn_of_finite_selector + isPreconnected_Ioo L hf' hsel' hsep (Set.nonempty_Ioo.mpr hab) + refine ⟨c, hcL, ?_⟩ + exact hc.of_subset_closure hf (continuous_affineValue c).continuousOn + Set.Ioo_subset_Icc_self (by simp [closure_Ioo hab.ne]) + +/-- A continuous finite selector of affine functions on a compact interval is a polyline. -/ +theorem exists_graphPolyline_of_finite_affine_selector {a b : ℝ} + (hab : a < b) (L : Finset (ℝ × ℝ)) {f : ℝ → ℝ} + (hf : ContinuousOn f (Set.Icc a b)) + (hsel : ∀ x ∈ Set.Icc a b, ∃ c ∈ L, f x = affineValue c x) : + ∃ p : XMonotonePolylineData, + 0 < p.edges ∧ + p.vertices 0 = pointOnGraph f a ∧ + p.vertices (Fin.last p.edges) = pointOnGraph f b ∧ + p.carrier = pointOnGraph f '' Set.Icc a b ∧ + (∀ i : Fin (p.edges + 1), + p.vertices i = pointOnGraph f (p.vertices i 0)) ∧ + ∀ i : Fin p.edges, ∃ c ∈ L, + Set.EqOn f (affineValue c) + (Set.Icc (p.vertices i.castSucc 0) (p.vertices i.succ 0)) := by + classical + let C := (finite_affineCrossings L).toFinset.filter (· ∈ Set.Icc a b) + let B := insert a (insert b C) + have haB : a ∈ B := by simp [B] + have hbB : b ∈ B := by simp [B] + have hBsub : ∀ z ∈ B, z ∈ Set.Icc a b := by + intro z hz + simp only [B, Finset.mem_insert] at hz + rcases hz with rfl | rfl | hz + · exact ⟨le_rfl, hab.le⟩ + · exact ⟨hab.le, le_rfl⟩ + · exact (Finset.mem_filter.mp hz).2 + have hcard2 : 2 ≤ B.card := by + have hsub : ({a, b} : Finset ℝ) ⊆ B := by + intro z hz + simp only [Finset.mem_insert, Finset.mem_singleton] at hz + rcases hz with rfl | rfl + · exact haB + · exact hbB + have hcard := Finset.card_le_card hsub + simpa [hab.ne] using hcard + let n := B.card - 1 + have hnpos : 0 < n := by dsimp [n]; omega + have hcard : B.card = n + 1 := by dsimp [n]; omega + let x : Fin (n + 1) → ℝ := B.orderEmbOfFin hcard + have hx : StrictMono x := (B.orderEmbOfFin hcard).strictMono + have hxmem (i : Fin (n + 1)) : x i ∈ B := by + exact B.orderEmbOfFin_mem hcard i + have hxrange : Set.range x = B := by + exact B.range_orderEmbOfFin hcard + have hxzero : x 0 = a := by + apply le_antisymm + · have haRange : a ∈ Set.range x := by simpa [hxrange] using haB + obtain ⟨i, hi⟩ := haRange + rw [← hi] + exact hx.monotone (Fin.zero_le i) + · exact (hBsub _ (hxmem 0)).1 + have hxlast : x (Fin.last n) = b := by + apply le_antisymm + · exact (hBsub _ (hxmem (Fin.last n))).2 + · have hbRange : b ∈ Set.range x := by simpa [hxrange] using hbB + obtain ⟨i, hi⟩ := hbRange + rw [← hi] + exact hx.monotone (Fin.le_last i) + have hnocross (i : Fin n) : + Set.Ioo (x i.castSucc) (x i.succ) ∩ affineCrossings L = ∅ := by + ext z + constructor + · intro hz + have hzab : z ∈ Set.Icc a b := by + rw [← hxzero, ← hxlast] + exact ⟨(hx.monotone (Fin.zero_le i.castSucc)).trans hz.1.1.le, + hz.1.2.le.trans (hx.monotone (Fin.le_last i.succ))⟩ + have hzB : z ∈ B := by + apply Finset.mem_insert.mpr + right + apply Finset.mem_insert.mpr + right + apply Finset.mem_filter.mpr + exact ⟨(finite_affineCrossings L).mem_toFinset.mpr hz.2, hzab⟩ + have hzRange : z ∈ Set.range x := by simpa [hxrange] using hzB + obtain ⟨j, hj⟩ := hzRange + rw [← hj] at hz + have hij : i.castSucc < j := hx.lt_iff_lt.mp hz.1.1 + have hji : j < i.succ := hx.lt_iff_lt.mp hz.1.2 + change i.val < j.val at hij + change j.val < i.val + 1 at hji + omega + · intro hz + exact hz.elim + have hpiece : ∀ i : Fin n, ∃ c ∈ L, + Set.EqOn f (affineValue c) (Set.Icc (x i.castSucc) (x i.succ)) := by + intro i + exact exists_affineValue_eqOn_Icc_of_avoids_crossings + (hx i.castSucc_lt_succ) L + (hf.mono (Set.Icc_subset_Icc + (by rw [← hxzero]; exact hx.monotone (Fin.zero_le _)) + (by rw [← hxlast]; exact hx.monotone (Fin.le_last _)))) + (fun z hz ↦ hsel z (Set.Icc_subset_Icc + (by rw [← hxzero]; exact hx.monotone (Fin.zero_le _)) + (by rw [← hxlast]; exact hx.monotone (Fin.le_last _)) hz)) + (hnocross i) + let p := graphPolyline n x hx f + refine ⟨p, hnpos, ?_, ?_, ?_, ?_, ?_⟩ + · change pointOnGraph f (x 0) = pointOnGraph f a + rw [hxzero] + · change pointOnGraph f (x (Fin.last n)) = pointOnGraph f b + rw [hxlast] + · rw [graphPolyline_carrier_eq_image_Icc hx] + · simp [hxzero, hxlast] + · intro i + obtain ⟨c, -, hc⟩ := hpiece i + exact ⟨c.1, c.2, hc⟩ + · exact iUnion_Icc_fin hnpos hx + · intro i + rfl + · intro i + change ∃ c ∈ L, Set.EqOn f (affineValue c) + (Set.Icc (x i.castSucc) (x i.succ)) + exact hpiece i + +/-- Injective graph parametrizations preserve disjointness of parameter sets. -/ +theorem pointOnGraph_image_disjoint + (f : ℝ → ℝ) {s t : Set ℝ} (hst : Disjoint s t) : + Disjoint (pointOnGraph f '' s) (pointOnGraph f '' t) := by + rw [Set.disjoint_left] + rintro q ⟨x, hx, rfl⟩ ⟨y, hy, hxy⟩ + have heq : x = y := by + have := congrArg (fun p : Point ↦ p 0) hxy + simpa [pointOnGraph] using this.symm + exact Set.disjoint_left.mp hst hx (heq ▸ hy) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Polyline / Measure +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +private lemma fst_mem_Icc_of_mem_segment_mbe8a367 {a b q : Point} + (hab : a 0 ≤ b 0) (hq : q ∈ segment ℝ a b) : q 0 ∈ Set.Icc (a 0) (b 0) := by + rw [segment_eq_image'] at hq + obtain ⟨r, hr, rfl⟩ := hq + change a 0 + r * (b 0 - a 0) ∈ Set.Icc (a 0) (b 0) + constructor <;> nlinarith [hr.1, hr.2] + +private lemma eq_right_of_mem_segment_of_fst_eq {a b q : Point} + (hab : a 0 < b 0) (hq : q ∈ segment ℝ a b) (heq : q 0 = b 0) : q = b := by + rw [segment_eq_image'] at hq + obtain ⟨r, hr, rfl⟩ := hq + have hcoord : a 0 + r * (b 0 - a 0) = b 0 := heq + have hrone : r = 1 := by nlinarith + simp [hrone] + +/-- Distinct increasing polyline segments meet only at a possible common endpoint. -/ +lemma XMonotonePolylineData.segment_inter_subset_singleton + (p : XMonotonePolylineData) {i j : Fin p.edges} (hij : i < j) : + segment ℝ (p.vertices i.castSucc) (p.vertices i.succ) ∩ + segment ℝ (p.vertices j.castSucc) (p.vertices j.succ) ⊆ + {p.vertices i.succ} := by + intro q hq + have hi := fst_mem_Icc_of_mem_segment_mbe8a367 (p.increasing i.castSucc_lt_succ).le hq.1 + have hj := fst_mem_Icc_of_mem_segment_mbe8a367 (p.increasing j.castSucc_lt_succ).le hq.2 + have hindex : i.succ ≤ j.castSucc := by + change i.val + 1 ≤ j.val + exact hij + have horder := p.increasing.monotone hindex + apply Set.mem_singleton_iff.mpr + exact eq_right_of_mem_segment_of_fst_eq (p.increasing i.castSucc_lt_succ) hq.1 + (le_antisymm hi.2 (horder.trans hj.1)) + +open MeasureTheory + +/-- The segments of an increasing polyline are almost disjoint for length measure. -/ +lemma XMonotonePolylineData.pairwise_aedisjoint_segments + (p : XMonotonePolylineData) : + Pairwise (fun i j : Fin p.edges ↦ AEDisjoint (Measure.hausdorffMeasure 1) + (segment ℝ (p.vertices i.castSucc) (p.vertices i.succ)) + (segment ℝ (p.vertices j.castSucc) (p.vertices j.succ))) := by + have := Measure.nullSingletonClass_hausdorff Point (by norm_num : (0 : ℝ) < 1) + have hlt (i j : Fin p.edges) (hij : i < j) : + AEDisjoint (Measure.hausdorffMeasure 1) + (segment ℝ (p.vertices i.castSucc) (p.vertices i.succ)) + (segment ℝ (p.vertices j.castSucc) (p.vertices j.succ)) := by + exact measure_mono_null (p.segment_inter_subset_singleton hij) (measure_singleton _) + intro i j hij + rcases lt_or_gt_of_ne hij with h | h + · exact hlt i j h + · exact (hlt j i h).symm + +/-- A supporting-line slice has the sum of the lengths of its parallel segments. -/ +lemma XMonotonePolylineData.hausdorffMeasure_carrier_inter_hyperplane + (p : XMonotonePolylineData) (n : Point) (c : ℝ) + (hparallel : ∀ i : Fin p.edges, + inner ℝ (p.vertices i.succ - p.vertices i.castSucc) n = 0 → + segment ℝ (p.vertices i.castSucc) (p.vertices i.succ) ⊆ + {q | inner ℝ q n = c}) : + Measure.hausdorffMeasure 1 (p.carrier ∩ {q | inner ℝ q n = c}) = + ∑ i : Fin p.edges, + if inner ℝ (p.vertices i.succ - p.vertices i.castSucc) n = 0 then + ENNReal.ofReal (dist (p.vertices i.castSucc) (p.vertices i.succ)) else 0 := by + classical + have hd : Pairwise (fun i j : Fin p.edges ↦ AEDisjoint (Measure.hausdorffMeasure 1) + (segment ℝ (p.vertices i.castSucc) (p.vertices i.succ) ∩ {q | inner ℝ q n = c}) + (segment ℝ (p.vertices j.castSucc) (p.vertices j.succ) ∩ {q | inner ℝ q n = c})) := by + intro i j hij + exact (p.pairwise_aedisjoint_segments hij).mono Set.inter_subset_left Set.inter_subset_left + rw [XMonotonePolylineData.carrier, Set.iUnion_inter, measure_iUnion₀ hd, tsum_fintype] + · apply Finset.sum_congr rfl + intro i _ + by_cases hi : inner ℝ (p.vertices i.succ - p.vertices i.castSucc) n = 0 + · rw [ite_eq_left hi, Set.inter_eq_left.mpr (hparallel i hi), hausdorffMeasure_segment, + edist_dist] + · rw [ite_eq_right hi] + exact EuclideanGeometry.hausdorffMeasure_segment_inter_hyperplane_eq_zero hi + · intro i + have hc : IsCompact (segment ℝ (p.vertices i.castSucc) (p.vertices i.succ)) := by + rw [segment_eq_image'] + exact isCompact_Icc.image (by fun_prop) + exact (hc.isClosed.measurableSet.inter + (isClosed_eq (by fun_prop) continuous_const).measurableSet).nullMeasurableSet + +/-- The real length of a supporting-line slice is the sum of its parallel segment lengths. -/ +lemma XMonotonePolylineData.toReal_hausdorffMeasure_carrier_inter_hyperplane + (p : XMonotonePolylineData) (n : Point) (c : ℝ) + (hparallel : ∀ i : Fin p.edges, + inner ℝ (p.vertices i.succ - p.vertices i.castSucc) n = 0 → + segment ℝ (p.vertices i.castSucc) (p.vertices i.succ) ⊆ + {q | inner ℝ q n = c}) : + (Measure.hausdorffMeasure 1 (p.carrier ∩ {q | inner ℝ q n = c})).toReal = + ∑ i : Fin p.edges, + if inner ℝ (p.vertices i.succ - p.vertices i.castSucc) n = 0 then + dist (p.vertices i.castSucc) (p.vertices i.succ) else 0 := by + classical + rw [p.hausdorffMeasure_carrier_inter_hyperplane n c hparallel, + ENNReal.toReal_sum (by intro i _; split_ifs <;> simp)] + apply Finset.sum_congr rfl + intro i _ + split_ifs <;> simp [dist_nonneg] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Polyline / Projection +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A leftward edge displacement is its length times its oriented tangent. -/ +theorem sub_eq_dist_smul_tangentVector {a b : Point} {t : ℝ} + (ht : t ∈ Set.Ioo 0 Real.pi) (hab : a 0 < b 0) + (horth : inner ℝ (b - a) (normalVector (t : Real.Angle)) = 0) : + a - b = dist a b • tangentVector (t : Real.Angle) := by + let r := inner ℝ (b - a) (tangentVector (t : Real.Angle)) + have hvec : r • tangentVector (t : Real.Angle) = b - a := by + simpa only [horth, zero_smul, zero_add] using + inner_normalVector_smul_add_inner_tangentVector_smul (b - a) (t : Real.Angle) + have hcoord : -(r * Real.sin t) = b 0 - a 0 := by + have h := congrArg (fun p : Point ↦ p 0) hvec + simpa [tangentVector, frame] using h + have hdist := dist_mul_sin_eq_fst_sub_of_inner_sub_eq_zero ht hab horth + have hr : r = -dist a b := by + have hs := Real.sin_pos_of_pos_of_lt_pi ht.1 ht.2 + nlinarith + rw [hr, neg_smul] at hvec + simpa only [neg_neg, neg_sub] using (congrArg Neg.neg hvec).symm + +/-- Every point of a polyline satisfies the bound by positive projected edge increments. -/ +theorem XMonotonePolylineData.inner_le_endpoint_add_sum_pos + (p : XMonotonePolylineData) (u : Point) {q : Point} (hq : q ∈ p.carrier) : + inner ℝ q u ≤ inner ℝ (p.vertices (Fin.last p.edges)) u + + ∑ i : Fin p.edges, max (inner ℝ (p.vertices i.castSucc - p.vertices i.succ) u) 0 := by + have hvertex (i : Fin (p.edges + 1)) := + Fin.apply_le_last_add_sum_max_sub (fun i ↦ inner ℝ (p.vertices i) u) i + simp only [← inner_sub_left] at hvertex + obtain ⟨i, hqi⟩ := Set.mem_iUnion.mp hq + obtain ⟨a, b, ha, hb, hab, rfl⟩ := hqi + rw [inner_add_left, real_inner_smul_left, real_inner_smul_left] + have h₁ := mul_le_mul_of_nonneg_left (hvertex i.castSucc) ha + have h₂ := mul_le_mul_of_nonneg_left (hvertex i.succ) hb + have h := add_le_add h₁ h₂ + rwa [← add_mul, hab, one_mul] at h + +/-- Grouping edge lengths by their unique normal preserves every weighted sum. -/ +theorem XMonotonePolylineData.sum_normal_lengths_mul + (p : XMonotonePolylineData) (D : Finset ℝ) (g : ℝ → ℝ) + (hD : ∀ t ∈ D, t ∈ Set.Ioo 0 Real.pi) + (t : Fin p.edges → ℝ) (ht : ∀ i, t i ∈ D) + (horth : ∀ i, inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (t i : Real.Angle)) = 0) : + ∑ u ∈ D, (∑ i : Fin p.edges, + if inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (u : Real.Angle)) = 0 then + dist (p.vertices i.castSucc) (p.vertices i.succ) else 0) * g u = + ∑ i : Fin p.edges, dist (p.vertices i.castSucc) (p.vertices i.succ) * g (t i) := by + classical + simp_rw [Finset.sum_mul] + rw [Finset.sum_comm] + apply Finset.sum_congr rfl + intro i _ + rw [Finset.sum_eq_single (t i)] + · rw [ite_eq_left (horth i)] + · intro u hu hut + have hne : inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (u : Real.Angle)) ≠ 0 := by + intro hzero + exact hut (eq_of_inner_sub_normalVector_eq_zero (hD u hu) (hD _ (ht i)) + (p.increasing i.castSucc_lt_succ) hzero (horth i)) + simp [hne] + · exact fun hnot ↦ (hnot (ht i)).elim + +/-- Positive normal projections bound every point of a polyline by its right endpoint. -/ +theorem XMonotonePolylineData.inner_le_endpoint_add_sum_normal_lengths + (p : XMonotonePolylineData) (D : Finset ℝ) + (hD : ∀ t ∈ D, t ∈ Set.Ioo 0 Real.pi) + (hlabels : ∀ i : Fin p.edges, ∃ t ∈ D, + inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (t : Real.Angle)) = 0) + (s : ℝ) {q : Point} (hq : q ∈ p.carrier) : + inner ℝ q (normalVector (s : Real.Angle)) ≤ + inner ℝ (p.vertices (Fin.last p.edges)) (normalVector (s : Real.Angle)) + + ∑ u ∈ D, (∑ i : Fin p.edges, + if inner ℝ (p.vertices i.succ - p.vertices i.castSucc) + (normalVector (u : Real.Angle)) = 0 then + dist (p.vertices i.castSucc) (p.vertices i.succ) else 0) * + max (Real.sin (s - u)) 0 := by + classical + choose t ht horth using hlabels + rw [p.sum_normal_lengths_mul D (fun u ↦ max (Real.sin (s - u)) 0) hD t ht horth] + have h := p.inner_le_endpoint_add_sum_pos (normalVector (s : Real.Angle)) hq + convert h using 2 + apply Finset.sum_congr rfl + intro i _ + rw [sub_eq_dist_smul_tangentVector (hD _ (ht i)) + (p.increasing i.castSucc_lt_succ) (horth i), real_inner_smul_left, + inner_tangentVector_normalVector_real, mul_max_of_nonneg _ _ dist_nonneg, mul_zero] + +end MovingSofa + +end + +end + +end + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/Development/Geometry/Foundations/Development002.lean b/LeanPool/MovingSofa/Development/Geometry/Foundations/Development002.lean new file mode 100644 index 0000000000..d4a5780132 --- /dev/null +++ b/LeanPool/MovingSofa/Development/Geometry/Foundations/Development002.lean @@ -0,0 +1,9903 @@ +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +module + +public import LeanPool.Isoperimetric.BrunnMinkowski +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development001 + + +public import Mathlib.Algebra.Category.ModuleCat.Basic +public import Mathlib.Analysis.BoundedVariation +public import Mathlib.Analysis.Calculus.ContDiff.Deriv +public import Mathlib.Analysis.Calculus.ContDiff.RCLike +public import Mathlib.Analysis.Calculus.Deriv.Add +public import Mathlib.Analysis.Calculus.Deriv.Basic +public import Mathlib.Analysis.Calculus.Deriv.Mul +public import Mathlib.Analysis.Calculus.Deriv.Polynomial +public import Mathlib.Analysis.Calculus.Deriv.Prod +public import Mathlib.Analysis.Calculus.LocalExtr.Basic +public import Mathlib.Analysis.Calculus.MeanValue +public import Mathlib.Analysis.Complex.Circle +public import Mathlib.Analysis.Convex.Measure +public import Mathlib.Analysis.InnerProductSpace.Dual +public import Mathlib.Analysis.LocallyConvex.Separation +public import Mathlib.Analysis.Normed.Lp.MeasurableSpace +public import Mathlib.Analysis.Normed.Lp.PiLp +public import Mathlib.Analysis.Normed.Operator.BoundedLinearMaps +public import Mathlib.Analysis.SpecialFunctions.Complex.Arg +public import Mathlib.Analysis.SpecialFunctions.Complex.Circle +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.Arctan +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.Basic +public import Mathlib.MeasureTheory.Constructions.BorelSpace.Basic +public import Mathlib.MeasureTheory.Function.AbsolutelyContinuous +public import Mathlib.MeasureTheory.Function.LocallyIntegrable +public import Mathlib.MeasureTheory.Integral.Bochner.Basic +public import Mathlib.MeasureTheory.Integral.DominatedConvergence +public import Mathlib.MeasureTheory.Integral.IntervalIntegral.AbsolutelyContinuousFun +public import Mathlib.MeasureTheory.Integral.IntervalIntegral.Basic +public import Mathlib.MeasureTheory.Integral.IntervalIntegral.FundThmCalculus +public import Mathlib.MeasureTheory.Measure.Haar.InnerProductSpace +public import Mathlib.MeasureTheory.Measure.Hausdorff +public import Mathlib.MeasureTheory.Measure.Map +public import Mathlib.MeasureTheory.VectorMeasure.BoundedVariation +public import Mathlib.MeasureTheory.VectorMeasure.Decomposition.RadonNikodym +public import Mathlib.MeasureTheory.VectorMeasure.IntegrationByParts +public import Mathlib.MeasureTheory.VectorMeasure.SetIntegral +public import Mathlib.MeasureTheory.VectorMeasure.WithDensityVec +public import Mathlib.Tactic +public import Mathlib.Tactic.Linarith +public import Mathlib.Topology.Connected.Basic +public import Mathlib.Topology.ContinuousMap.Algebra +public import Mathlib.Topology.EMetricSpace.BoundedVariation +public import Mathlib.Topology.Homeomorph.Lemmas +public import Mathlib.Topology.LocallyConstant.Basic +public import Mathlib.Topology.Maps.Proper.Basic +public import Mathlib.Topology.MetricSpace.HausdorffDistance +public import Mathlib.Topology.MetricSpace.Thickening +public import Mathlib.Topology.Order.IntermediateValue +/-! +# Moving sofa: related mathematical developments + +* `Infrastructure.Analysis.Foundations.Development002`. +* `Infrastructure.Curves.Foundations.Development001`. +* `Infrastructure.Analysis.Foundations.Development004`. +* `Infrastructure.Geometry.Foundations.Development003`. +* `Infrastructure.Analysis.Foundations.Development003`. +* `Infrastructure.Geometry.Foundations.Development004`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Analysis.Foundations.Development002`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Analysis.BoundedVariation`. +* `Analysis.MeasureProducts`. +* `Analysis.Stieltjes.Integral`. +* `Analysis.Stieltjes.AbsoluteContinuity`. +* `Analysis.Stieltjes.Calculus`. +* `Analysis.Stieltjes.DensityIntegration`. +* `Analysis.Stieltjes.Linearity`. +* `Analysis.Stieltjes.InnerProduct`. +* `Analysis.Stieltjes.Smooth`. +* `Analysis.Stieltjes.Frame`. +* `Analysis.Stieltjes.Transport`. +* `Analysis.Stieltjes.Continuous`. +* `Analysis.Stieltjes.Affine`. +* `Analysis.Stieltjes.RiemannSums`. +* `Analysis.Stieltjes.Shift`. +* `Analysis.SurfaceMeasure.Basic`. +* `Analysis.SurfaceMeasure.ExteriorNormal`. +* `Analysis.SurfaceMeasure.GraphDefinitions`. +* `Analysis.SurfaceMeasure.Regularity`. +* `Analysis.SurfaceMeasure.Segment`. +* `Analysis.SurfaceMeasure.SegmentFaces`. +* `Analysis.SurfaceMeasure.SegmentGraph`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Bounded Variation +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Bounded variation for a real function on its actual closed-interval domain. -/ +def IsIntervalBoundedVariation (a b : ℝ) (f : Set.Icc a b → ℝ) : Prop := + BoundedVariationOn f Set.univ + +private theorem intervalBV_add {a b : ℝ} {f g : Set.Icc a b → ℝ} + (hf : IsIntervalBoundedVariation a b f) (hg : IsIntervalBoundedVariation a b g) : + IsIntervalBoundedVariation a b (f + g) := by + refine ne_top_of_le_ne_top (ENNReal.add_ne_top.mpr ⟨hf, hg⟩) ?_ + apply iSup_le + rintro ⟨n, u, hu, hus⟩ + calc + _ ≤ ∑ i ∈ Finset.range n, + (edist (f (u (i + 1))) (f (u i)) + edist (g (u (i + 1))) (g (u i))) := + Finset.sum_le_sum fun _ _ ↦ edist_add_add_le _ _ _ _ + _ = _ := Finset.sum_add_distrib + _ ≤ _ := add_le_add (eVariationOn.sum_le hu hus) (eVariationOn.sum_le hu hus) + +/-- The submodule of continuous planar interval functions with coordinatewise finite variation. -/ +def continuousBVSubmodule (a b : ℝ) : Submodule ℝ (Set.Icc a b → Point) where + carrier := {f | Continuous f ∧ + ∀ i : Fin 2, IsIntervalBoundedVariation a b (fun t ↦ f t i)} + zero_mem' := by + refine ⟨continuous_const, fun i ↦ ?_⟩ + simp [IsIntervalBoundedVariation, BoundedVariationOn, eVariationOn] + add_mem' := by + intro f g hf hg + exact ⟨hf.1.add hg.1, fun i ↦ intervalBV_add (hf.2 i) (hg.2 i)⟩ + smul_mem' := by + intro c f hf + refine ⟨continuous_const.smul hf.1, fun i ↦ ?_⟩ + exact (ContinuousLinearMap.lsmul ℝ ℝ c).lipschitzWith.comp_boundedVariationOn (hf.2 i) + +/-- The real vector space of continuous planar BV paths on a closed interval. -/ +abbrev ContinuousBVPaths (a b : ℝ) : Type := continuousBVSubmodule a b + +/-- A continuous planar BV path has finite vector variation on its whole domain. -/ +theorem ContinuousBVPaths.boundedVariationOn {a b : ℝ} (x : ContinuousBVPaths a b) : + BoundedVariationOn x.val Set.univ := by + have hdist (p q : Point) : edist p q ≤ edist (p 0) (q 0) + edist (p 1) (q 1) := by + have hnorm (z : Point) : ‖z‖ ≤ |z 0| + |z 1| := by + nlinarith [Point.norm_sq_eq z, sq_abs (z 0), sq_abs (z 1), abs_nonneg (z 0), + abs_nonneg (z 1), norm_nonneg z, mul_nonneg (abs_nonneg (z 0)) (abs_nonneg (z 1))] + simp only [edist_dist, dist_eq_norm, Real.norm_eq_abs] + rw [← ENNReal.ofReal_add (abs_nonneg _) (abs_nonneg _)] + exact ENNReal.ofReal_le_ofReal (by simpa using hnorm (p - q)) + refine ne_top_of_le_ne_top (ENNReal.add_ne_top.mpr ⟨x.property.2 0, x.property.2 1⟩) ?_ + apply iSup_le + rintro ⟨n, u, hu, hus⟩ + calc + _ ≤ ∑ i ∈ Finset.range n, + (edist (x.val (u (i + 1)) 0) (x.val (u i) 0) + + edist (x.val (u (i + 1)) 1) (x.val (u i) 1)) := + Finset.sum_le_sum fun _ _ ↦ hdist _ _ + _ = _ := Finset.sum_add_distrib + _ ≤ _ := add_le_add (eVariationOn.sum_le (f := fun t ↦ x.val t 0) (n := n) hu hus) + (eVariationOn.sum_le (f := fun t ↦ x.val t 1) (n := n) hu hus) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Measure Products +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- Multiply a signed measure by a real density using the continuous multiplication map. -/ +def functionMeasureMul {X : Type*} [MeasurableSpace X] + (f : X → ℝ) (μ : SignedMeasure X) : SignedMeasure X := + μ.withDensity f (ContinuousLinearMap.mul ℝ ℝ) + +/-- Multiply one signed measure by each of two scalar densities. -/ +def pairFunctionMeasureMul {X : Type*} [MeasurableSpace X] + (f : (X → ℝ) × (X → ℝ)) (μ : SignedMeasure X) : + SignedMeasure X × SignedMeasure X := + (functionMeasureMul f.1 μ, functionMeasureMul f.2 μ) + +/-- Multiply both components of a signed-measure pair by one scalar density. -/ +def functionPairMeasureMul {X : Type*} [MeasurableSpace X] + (f : X → ℝ) (μ : SignedMeasure X × SignedMeasure X) : + SignedMeasure X × SignedMeasure X := + (functionMeasureMul f μ.1, functionMeasureMul f μ.2) + +/-- The sum of the coordinatewise density products of a function pair and measure pair. -/ +def functionMeasureDot {X : Type*} [MeasurableSpace X] + (f : (X → ℝ) × (X → ℝ)) (μ : SignedMeasure X × SignedMeasure X) : + SignedMeasure X := + functionMeasureMul f.1 μ.1 + functionMeasureMul f.2 μ.2 + +/-- The oriented planar determinant `p₀ q₁ - p₁ q₀`. -/ +def planeCrossProduct (p q : Point) : ℝ := + p 0 * q 1 - p 1 * q 0 + +/-- The signed-measure determinant of a function pair and a measure pair. -/ +def functionMeasureCross {X : Type*} [MeasurableSpace X] + (f : (X → ℝ) × (X → ℝ)) (μ : SignedMeasure X × SignedMeasure X) : + SignedMeasure X := + functionMeasureMul f.1 μ.2 - functionMeasureMul f.2 μ.1 + +/-- Bundle the scalar, vector and dot-product operations on signed measures. -/ +def functionMeasureProducts (X : Type*) [MeasurableSpace X] : + ((X → ℝ) → SignedMeasure X → SignedMeasure X) × + (((X → ℝ) × (X → ℝ)) → SignedMeasure X → SignedMeasure X × SignedMeasure X) × + ((X → ℝ) → (SignedMeasure X × SignedMeasure X) → SignedMeasure X × SignedMeasure X) × + (((X → ℝ) × (X → ℝ)) → (SignedMeasure X × SignedMeasure X) → SignedMeasure X) := + (functionMeasureMul, pairFunctionMeasureMul, functionPairMeasureMul, functionMeasureDot) + +/-- Bundle the planar determinant and its signed-measure counterpart. -/ +def planeCrossProducts (X : Type*) [MeasurableSpace X] : + (Point → Point → ℝ) × + (((X → ℝ) × (X → ℝ)) → (SignedMeasure X × SignedMeasure X) → SignedMeasure X) := + (planeCrossProduct, functionMeasureCross) + +/-! ### The oriented planar determinant + +Basic algebra of `planeCrossProduct`, the transitivity of the order it induces on the closed +first quadrant, and the two shapes of level set used when a planar region is fanned into +triangles over a base point. +-/ + +@[simp] theorem planeCrossProduct_self (p : Point) : planeCrossProduct p p = 0 := by + simp only [planeCrossProduct] + ring + +@[simp] theorem planeCrossProduct_zero_left (p : Point) : planeCrossProduct 0 p = 0 := by + simp [planeCrossProduct] + +@[simp] theorem planeCrossProduct_zero_right (p : Point) : planeCrossProduct p 0 = 0 := by + simp [planeCrossProduct] + +/-- The oriented determinant is antisymmetric. -/ +theorem planeCrossProduct_swap (p q : Point) : + planeCrossProduct p q = -planeCrossProduct q p := by + simp only [planeCrossProduct] + ring + +/-- The oriented determinant is the inner product against the quarter turn of its first +argument. -/ +theorem planeCrossProduct_eq_inner (p q : Point) : + planeCrossProduct p q = inner ℝ q !₂[-p 1, p 0] := by + simp [planeCrossProduct, PiLp.inner_apply, Fin.sum_univ_two] + ring + +/-- In the closed first quadrant the oriented determinant order is transitive: if `v` is +nonzero and both `u × v` and `v × w` are nonnegative, then so is `u × w`. -/ +theorem planeCrossProduct_nonneg_trans {u v w : Point} (hv : v ≠ 0) + (hu0 : 0 ≤ u 0) (hu1 : 0 ≤ u 1) (hv0 : 0 ≤ v 0) (hv1 : 0 ≤ v 1) + (hw0 : 0 ≤ w 0) (hw1 : 0 ≤ w 1) + (huv : 0 ≤ planeCrossProduct u v) (hvw : 0 ≤ planeCrossProduct v w) : + 0 ≤ planeCrossProduct u w := by + have hvpos : 0 < v 0 ^ 2 + v 1 ^ 2 := by + rcases eq_or_lt_of_le (by positivity : (0 : ℝ) ≤ v 0 ^ 2 + v 1 ^ 2) with h | h + · refine absurd ?_ hv + have h0 : v 0 = 0 := by nlinarith [sq_nonneg (v 0), sq_nonneg (v 1)] + have h1 : v 1 = 0 := by nlinarith [sq_nonneg (v 0), sq_nonneg (v 1)] + ext i + fin_cases i + · simpa using h0 + · simpa using h1 + · exact h + have hid : planeCrossProduct u w * (v 0 ^ 2 + v 1 ^ 2) + = (w 0 * v 0 + w 1 * v 1) * planeCrossProduct u v + + planeCrossProduct v w * (u 0 * v 0 + u 1 * v 1) := by + simp only [planeCrossProduct] + ring + nlinarith [mul_nonneg (add_nonneg (mul_nonneg hw0 hv0) (mul_nonneg hw1 hv1)) huv, + mul_nonneg hvw (add_nonneg (mul_nonneg hu0 hv0) (mul_nonneg hu1 hv1))] + +/-- The closed angular sector between two rays through a base point is convex. -/ +theorem convex_setOf_planeCrossProduct_fan (u v L : Point) : + Convex ℝ {x : Point | 0 ≤ planeCrossProduct u (x - L) ∧ + 0 ≤ planeCrossProduct (x - L) v} := by + intro x hx y hy a b ha hb hab + obtain rfl : b = 1 - a := by linarith + simp only [Set.mem_ofPred_eq, planeCrossProduct, PiLp.sub_apply, PiLp.add_apply, + PiLp.smul_apply, smul_eq_mul] at hx hy ⊢ + constructor + · nlinarith [mul_nonneg ha hx.1, mul_nonneg hb hy.1] + · nlinarith [mul_nonneg ha hx.2, mul_nonneg hb hy.2] + +/-- The line through a base point in a nonzero direction carries no planar area. -/ +theorem volume_setOf_planeCrossProduct_sub_eq_zero {w : Point} (hw : w ≠ 0) (L : Point) : + volume {x : Point | planeCrossProduct w (x - L) = 0} = 0 := by + have hrot : (!₂[-w 1, w 0] : Point) ≠ 0 := by + intro h + refine hw ?_ + have h0 : w 0 = 0 := by simpa using congrArg (fun v : Point ↦ v 1) h + have h1 : w 1 = 0 := by simpa using congrArg (fun v : Point ↦ v 0) h + ext i + fin_cases i + · simpa using h0 + · simpa using h1 + have hset : {x : Point | planeCrossProduct w (x - L) = 0} + = {x : Point | inner ℝ x (!₂[-w 1, w 0] : Point) = + inner ℝ L (!₂[-w 1, w 0] : Point)} := by + ext x + simp only [Set.mem_ofPred_eq, planeCrossProduct_eq_inner, inner_sub_left, sub_eq_zero] + rw [hset] + exact volume.addHaar_setOf_real_inner_eq hrot _ + +/-- The planar cross product is the frame determinant at every angle. -/ +theorem planeCrossProduct_eq_inner_frame (a b : Point) (t : ℝ) : + planeCrossProduct a b = + inner ℝ a (normalVector (t : Real.Angle)) * inner ℝ b (tangentVector (t : Real.Angle)) - + inner ℝ a (tangentVector (t : Real.Angle)) * + inner ℝ b (normalVector (t : Real.Angle)) := by + simp only [planeCrossProduct, normalVector, tangentVector, frame, PiLp.inner_apply, + Fin.sum_univ_two, Real.Angle.cos_coe, Real.Angle.sin_coe, RCLike.inner_apply, + conj_trivial, Matrix.cons_val_zero, Matrix.cons_val_one] + linear_combination (a.ofLp 1 * b.ofLp 0 - a.ofLp 0 * b.ofLp 1) * (Real.sin_sq_add_cos_sq t) + +/-- The oriented determinant of a point against the frame tangent is its normal coordinate. -/ +theorem planeCrossProduct_tangentVector (p : Point) (t : Real.Angle) : + planeCrossProduct p (tangentVector t) = inner ℝ p (normalVector t) := by + simp [planeCrossProduct, normalVector, tangentVector, frame, PiLp.inner_apply, + Fin.sum_univ_two] + ring + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Stieltjes / Integral +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- A right-continuous real BV function on its actual closed-interval domain. -/ +structure RightContinuousIntervalBV (a b : ℝ) where + /-- The real-valued function on the closed parameter interval. -/ + toFun : Set.Icc a b → ℝ + boundedVariation : IsIntervalBoundedVariation a b toFun + right_continuous : ∀ t, ContinuousWithinAt toFun (Set.Ici t) t + +/-- A right-continuous interval-BV function is determined by its underlying function. -/ +theorem RightContinuousIntervalBV.toFun_injective {a b : ℝ} : + Function.Injective (@RightContinuousIntervalBV.toFun a b) := by + rintro ⟨f, hf, hfr⟩ ⟨g, hg, hgr⟩ hfg + cases hfg + rfl + +/-- A right-continuous interval-BV function on a nonempty interval is bounded, by its value at +the left endpoint plus the total variation. -/ +theorem RightContinuousIntervalBV.exists_norm_bound {a b : ℝ} (hab : a ≤ b) + (f : RightContinuousIntervalBV a b) : ∃ C : ℝ, ∀ t, ‖f.toFun t‖ ≤ C := by + refine ⟨‖f.toFun ⟨a, le_rfl, hab⟩‖ + (eVariationOn f.toFun Set.univ).toReal, fun t ↦ ?_⟩ + calc ‖f.toFun t‖ + ≤ ‖f.toFun ⟨a, le_rfl, hab⟩‖ + ‖f.toFun t - f.toFun ⟨a, le_rfl, hab⟩‖ := + norm_le_norm_add_norm_sub' _ _ + _ ≤ _ := by + gcongr + simpa [dist_eq_norm_sub] using + f.boundedVariation.dist_le (Set.mem_univ t) (Set.mem_univ ⟨a, le_rfl, hab⟩) + +/-- The finite signed Stieltjes measure on the interval, with zero initial atom. -/ +def intervalStieltjesMeasure {a b : ℝ} (f : RightContinuousIntervalBV a b) : + SignedMeasure (Set.Icc a b) := + f.boundedVariation.vectorMeasure + +/-- The Stieltjes integral, used for bounded measurable integrands and Borel subsets. -/ +def intervalStieltjesIntegral {a b : ℝ} (f : RightContinuousIntervalBV a b) + (g : Set.Icc a b → ℝ) (X : Set (Set.Icc a b)) : ℝ := + ∫ᵛ t in X, g t ∂[ContinuousLinearMap.mul ℝ ℝ; intervalStieltjesMeasure f] + +/-- Over the whole parameter interval, the interval Stieltjes integral is the unrestricted +vector-measure integral. -/ +theorem intervalStieltjesIntegral_univ {a b : ℝ} (f : RightContinuousIntervalBV a b) + (g : Set.Icc a b → ℝ) : + intervalStieltjesIntegral f g Set.univ = + VectorMeasure.integral (intervalStieltjesMeasure f) g (ContinuousLinearMap.mul ℝ ℝ) := by + simp only [intervalStieltjesIntegral, VectorMeasure.restrict_univ] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Stieltjes / Absolute Continuity +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set + +namespace MovingSofa + +/-- Extend an interval function to the real line by zero outside its domain. -/ +def stieltjesScalarExtension {a b : ℝ} (f : RightContinuousIntervalBV a b) + (t : ℝ) : ℝ := by + classical + exact if h : t ∈ Set.Icc a b then f.toFun ⟨t, h⟩ else 0 + +/-- An integrable density represents the interval Stieltjes measure on measurable sets. -/ +def HasIntervalStieltjesDensity {a b : ℝ} (f : RightContinuousIntervalBV a b) + (r : ℝ → ℝ) : Prop := + Integrable r (volume.restrict (Set.Icc a b)) ∧ + ∀ E : Set ℝ, MeasurableSet E → + intervalStieltjesMeasure f {t | (t : ℝ) ∈ E} = + ∫ t in E, r t ∂volume.restrict (Set.Icc a b) + +theorem intervalStieltjesMeasure_Ioc {a b : ℝ} + (f : RightContinuousIntervalBV a b) (c d : Set.Icc a b) (hcd : c ≤ d) : + intervalStieltjesMeasure f (Set.Ioc c d) = f.toFun d - f.toFun c := by + rw [intervalStieltjesMeasure, f.boundedVariation.vectorMeasure_Ioc hcd] + rw [f.right_continuous d |>.rightLim_eq, f.right_continuous c |>.rightLim_eq] + +private theorem stieltjesScalarExtension_eq_add_integral {a b : ℝ} (hab : a ≤ b) + (f : RightContinuousIntervalBV a b) (r : ℝ → ℝ) + (hr : HasIntervalStieltjesDensity f r) (t : Set.Icc a b) : + stieltjesScalarExtension f (t : ℝ) = + f.toFun ⟨a, le_rfl, hab⟩ + ∫ x in a..(t : ℝ), r x := by + have hinc := hr.2 (Ioc a (t : ℝ)) measurableSet_Ioc + have hset : {x : Icc a b | (x : ℝ) ∈ Ioc a (t : ℝ)} = + Ioc (⟨a, le_rfl, hab⟩ : Icc a b) t := rfl + rw [hset, intervalStieltjesMeasure_Ioc f _ _ t.property.1] at hinc + have hmeasure : + (volume.restrict (Set.Icc a b)).restrict (Set.Ioc a (t : ℝ)) = + volume.restrict (Set.Ioc a (t : ℝ)) := by + exact Measure.restrict_restrict_of_subset + (fun x hx ↦ ⟨hx.1.le, hx.2.trans t.property.2⟩) + have hrestrict : + (∫ x in Set.Ioc a (t : ℝ), r x ∂volume.restrict (Set.Icc a b)) = + ∫ x in Set.Ioc a (t : ℝ), r x := by + rw [hmeasure] + rw [stieltjesScalarExtension] + simp only [dite_eq_left t.2] + change f.toFun t = _ + rw [intervalIntegral.integral_of_le t.2.1] + have hinc' := hinc.trans hrestrict + linarith + +private theorem absolutelyContinuousOnInterval_of_stieltjesDensity {a b : ℝ} (hab : a ≤ b) + (f : RightContinuousIntervalBV a b) (r : ℝ → ℝ) + (hr : HasIntervalStieltjesDensity f r) : + AbsolutelyContinuousOnInterval (stieltjesScalarExtension f) a b := by + have hri : IntervalIntegrable r volume a b := + (intervalIntegrable_iff_integrableOn_Icc_of_le hab).2 hr.1 + have hp := hri.absolutelyContinuousOnInterval_intervalIntegral + (c := a) (by simp [hab]) + have hc : AbsolutelyContinuousOnInterval (fun _ : ℝ ↦ f.toFun ⟨a, le_rfl, hab⟩) a b := + (LipschitzWith.const _).lipschitzOnWith.absolutelyContinuousOnInterval + have hs := hc.add hp + apply hs.congr + intro x hx + have hx' : x ∈ Set.Icc a b := by + simpa [Set.uIcc_of_le hab] using hx + have hprim := stieltjesScalarExtension_eq_add_integral hab f r hr ⟨x, hx'⟩ + simpa [stieltjesScalarExtension, hx'] using hprim.symm + +private theorem ae_hasDerivAt_of_stieltjesDensity {a b : ℝ} (hab : a ≤ b) + (f : RightContinuousIntervalBV a b) (r : ℝ → ℝ) + (hr : HasIntervalStieltjesDensity f r) : + ∀ᵐ t ∂volume.restrict (Set.Ioo a b), + HasDerivAt (stieltjesScalarExtension f) (r t) t := by + have hri : IntervalIntegrable r volume a b := + (intervalIntegrable_iff_integrableOn_Icc_of_le hab).2 hr.1 + have hder := IntervalIntegrable.ae_hasDerivAt_integral hri + refine (ae_restrict_iff' measurableSet_Ioo).2 ?_ + filter_upwards [hder] with x hx hxo + have hxu : x ∈ Set.uIcc a b := by + simpa [Set.uIcc_of_le hab] using ⟨hxo.1.le, hxo.2.le⟩ + have hd := hx hxu a (by simp [hab]) + have hd' := hd.const_add (f.toFun ⟨a, le_rfl, hab⟩) + apply hd'.congr_of_eventuallyEq + filter_upwards [isOpen_Ioo.mem_nhds hxo] with y hyo + have hycc : y ∈ Set.Icc a b := ⟨hyo.1.le, hyo.2.le⟩ + have hprim := stieltjesScalarExtension_eq_add_integral hab f r hr ⟨y, hycc⟩ + simpa [stieltjesScalarExtension, hycc] using hprim + +private theorem intervalStieltjes_hasDensity_deriv {a b : ℝ} (hab : a ≤ b) + (f : RightContinuousIntervalBV a b) + (hf : AbsolutelyContinuousOnInterval (stieltjesScalarExtension f) a b) : + HasIntervalStieltjesDensity f (deriv (stieltjesScalarExtension f)) := by + let g := stieltjesScalarExtension f + have hr : IntegrableOn (deriv g) (Icc a b) := + (intervalIntegrable_iff_integrableOn_Icc_of_le hab).mp hf.intervalIntegrable_deriv + have hsub : Continuous f.toFun := by + have h := (continuousOn_iff_continuous_domRestrict).mp + (show ContinuousOn g (Icc a b) by simpa only [uIcc_of_le hab] using hf.continuousOn) + convert h using 1 + funext x + simp [g, stieltjesScalarExtension, x.property] + have hri : Integrable (fun x : Icc a b ↦ deriv g x) + (volume.comap (Subtype.val : Icc a b → ℝ)) := + (integrableOn_iff_comap_subtypeVal measurableSet_Icc).mp hr + have hmeasure : intervalStieltjesMeasure f = + (volume.comap (Subtype.val : Icc a b → ℝ)).withDensityᵥ + (fun x : Icc a b ↦ deriv g x) := by + apply f.boundedVariation.vectorMeasure_eq_withDensity_of_integral_Icc hsub hri + intro c d hcd + have hinc := (hf.mono (show uIcc (c : ℝ) (d : ℝ) ⊆ uIcc a b by + rw [uIcc_of_le (show (c : ℝ) ≤ d from hcd), uIcc_of_le hab] + exact Icc_subset_Icc c.property.1 d.property.2)).integral_deriv_eq_sub + have hset : Icc c d = {x : Icc a b | (x : ℝ) ∈ Icc (c : ℝ) (d : ℝ)} := rfl + rw [hset, integral_subtype_preimage measurableSet_Icc measurableSet_Icc] + rw [Measure.restrict_restrict_of_subset (Icc_subset_Icc c.property.1 d.property.2), + integral_Icc_eq_integral_Ioc, ← intervalIntegral.integral_of_le hcd, hinc] + simp [stieltjesScalarExtension, c.property, d.property] + refine ⟨hr, ?_⟩ + intro E hE + have hpre : MeasurableSet {t : Icc a b | (t : ℝ) ∈ E} := + hE.preimage measurable_subtype_coe + rw [hmeasure, withDensityᵥ_apply hri hpre, + integral_subtype_preimage measurableSet_Icc hE] + +theorem intervalStieltjes_absoluteContinuity (a b : ℝ) (hab : a ≤ b) + (f : RightContinuousIntervalBV a b) : + (AbsolutelyContinuousOnInterval (stieltjesScalarExtension f) a b ↔ + ∃ r : ℝ → ℝ, HasIntervalStieltjesDensity f r) ∧ + (∀ r : ℝ → ℝ, HasIntervalStieltjesDensity f r → + ∀ᵐ t ∂volume.restrict (Set.Ioo a b), + HasDerivAt (stieltjesScalarExtension f) (r t) t) := by + refine ⟨⟨?_, ?_⟩, fun r hr ↦ ae_hasDerivAt_of_stieltjesDensity hab f r hr⟩ + · intro hf + exact ⟨deriv (stieltjesScalarExtension f), intervalStieltjes_hasDensity_deriv hab f hf⟩ + · rintro ⟨r, hr⟩ + exact absolutelyContinuousOnInterval_of_stieltjesDensity hab f r hr + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Stieltjes / Calculus +-/ + +@[expose] public section + +noncomputable section + +open Filter MeasureTheory +open scoped Topology + +namespace MovingSofa + +theorem intervalStieltjes_integration_by_parts (a b : ℝ) (hab : a ≤ b) + (f g : RightContinuousIntervalBV a b) : + ∃ left : Set.Icc a b → ℝ, + (∀ t : Set.Icc a b, a < (t : ℝ) → + Tendsto f.toFun (nhdsWithin t (Set.Iio t)) (𝓝 (left t))) ∧ + intervalStieltjesIntegral f g.toFun {t | a < (t : ℝ)} + + intervalStieltjesIntegral g left {t | a < (t : ℝ)} = + f.toFun ⟨b, hab, le_rfl⟩ * g.toFun ⟨b, hab, le_rfl⟩ - + f.toFun ⟨a, le_rfl, hab⟩ * g.toFun ⟨a, le_rfl, hab⟩ := by + let a' : Set.Icc a b := ⟨a, le_rfl, hab⟩ + let b' : Set.Icc a b := ⟨b, hab, le_rfl⟩ + refine ⟨Function.leftLim f.toFun, fun t _ ↦ f.boundedVariation.tendsto_leftLim t, ?_⟩ + have hfa (t : Set.Icc a b) : Function.rightLim f.toFun t = f.toFun t := + (f.right_continuous t).rightLim_eq + have hga (t : Set.Icc a b) : Function.rightLim g.toFun t = g.toFun t := + (g.right_continuous t).rightLim_eq + have hparts := BoundedVariationOn.setIntegral_Ioc_leftLim_vectorMeasure_eq_sub + (B := ContinuousLinearMap.mul ℝ ℝ) f.boundedVariation g.boundedVariation (show a' ≤ b' by + exact hab) + have hset : {t : Set.Icc a b | a < (t : ℝ)} = Set.Ioc a' b' := by + ext t + constructor + · intro ht + exact ⟨ht, t.property.2⟩ + · exact fun ht ↦ ht.1 + have hmulflip : (ContinuousLinearMap.mul ℝ ℝ).flip = ContinuousLinearMap.mul ℝ ℝ := by + ext + simp + rw [hmulflip] at hparts + rw [hset] + unfold intervalStieltjesIntegral intervalStieltjesMeasure + change (∫ᵛ t in Set.Ioc a' b', g.toFun t + ∂[ContinuousLinearMap.mul ℝ ℝ; f.boundedVariation.vectorMeasure]) + + (∫ᵛ t in Set.Ioc a' b', Function.leftLim f.toFun t + ∂[ContinuousLinearMap.mul ℝ ℝ; g.boundedVariation.vectorMeasure]) = _ + rw [hparts] + simp only [hfa, hga] + change _ + (f.toFun b' * g.toFun b' - f.toFun a' * g.toFun a' - _) = _ + dsimp [a', b'] + ring + +/-- Stieltjes integration by parts on the open interval `(a, b)`: no endpoint atom is included +at `b`, and none is introduced at `a`. The left limit in the first integrand accounts for +simultaneous jumps. -/ +theorem intervalStieltjes_integration_by_parts_Ioo (a b : ℝ) (hab : a < b) + (f g : RightContinuousIntervalBV a b) : + intervalStieltjesIntegral g (Function.leftLim f.toFun) + {t | a < (t : ℝ) ∧ (t : ℝ) < b} + + intervalStieltjesIntegral f g.toFun {t | a < (t : ℝ) ∧ (t : ℝ) < b} = + Function.leftLim f.toFun ⟨b, hab.le, le_rfl⟩ * + Function.leftLim g.toFun ⟨b, hab.le, le_rfl⟩ - + f.toFun ⟨a, le_rfl, hab.le⟩ * g.toFun ⟨a, le_rfl, hab.le⟩ := by + have hfa (t : Set.Icc a b) : Function.rightLim f.toFun t = f.toFun t := + (f.right_continuous t).rightLim_eq + have hga (t : Set.Icc a b) : Function.rightLim g.toFun t = g.toFun t := + (g.right_continuous t).rightLim_eq + have hparts := BoundedVariationOn.setIntegral_Ioo_leftLim_vectorMeasure_eq_sub + (B := ContinuousLinearMap.mul ℝ ℝ) f.boundedVariation g.boundedVariation + (show (⟨a, le_rfl, hab.le⟩ : Set.Icc a b) < ⟨b, hab.le, le_rfl⟩ from hab) + have hset : {t : Set.Icc a b | a < (t : ℝ) ∧ (t : ℝ) < b} = + Set.Ioo (⟨a, le_rfl, hab.le⟩ : Set.Icc a b) ⟨b, hab.le, le_rfl⟩ := by + ext t + exact ⟨fun ht ↦ ⟨ht.1, ht.2⟩, fun ht ↦ ⟨ht.1, ht.2⟩⟩ + have hmulflip : (ContinuousLinearMap.mul ℝ ℝ).flip = ContinuousLinearMap.mul ℝ ℝ := by + ext + simp + rw [hmulflip] at hparts + rw [hset] + unfold intervalStieltjesIntegral intervalStieltjesMeasure + rw [hparts] + simp only [hfa, hga, ContinuousLinearMap.mul_apply'] + ring + +theorem intervalStieltjes_product (a b : ℝ) + (f g : RightContinuousIntervalBV a b) + (hcont : Continuous f.toFun ∨ Continuous g.toFun) : + ∃ h : RightContinuousIntervalBV a b, + (∀ t, h.toFun t = f.toFun t * g.toFun t) ∧ + ∀ E : Set (Set.Icc a b), MeasurableSet E → + intervalStieltjesMeasure h E = + intervalStieltjesIntegral f g.toFun E + intervalStieltjesIntegral g f.toFun E := by + let h : RightContinuousIntervalBV a b := + ⟨fun t ↦ f.toFun t * g.toFun t, + f.boundedVariation.bilinear_comp g.boundedVariation (ContinuousLinearMap.mul ℝ ℝ), + fun t ↦ (f.right_continuous t).mul (g.right_continuous t)⟩ + refine ⟨h, fun _ ↦ rfl, fun E _ ↦ ?_⟩ + have hflip : (ContinuousLinearMap.mul ℝ ℝ).flip = ContinuousLinearMap.mul ℝ ℝ := by + ext + simp + have hfr : Function.rightLim f.toFun = f.toFun := + funext fun t ↦ (f.right_continuous t).rightLim_eq + have hgr : Function.rightLim g.toFun = g.toFun := + funext fun t ↦ (g.right_continuous t).rightLim_eq + rcases hcont with hf | hg + · have hfl : Function.leftLim f.toFun = f.toFun := + funext fun t ↦ hf.continuousAt.continuousWithinAt.leftLim_eq + have hp := f.boundedVariation.setIntegral_leftLim_vectorMeasure_eq_sub + (B := ContinuousLinearMap.mul ℝ ℝ) g.boundedVariation (s := E) + rw [hflip, hfl, hgr] at hp + change _ = _ + _ + unfold intervalStieltjesIntegral intervalStieltjesMeasure + change (f.boundedVariation.bilinear_comp g.boundedVariation + (ContinuousLinearMap.mul ℝ ℝ)).vectorMeasure E = _ + linarith + · have hgl : Function.leftLim g.toFun = g.toFun := + funext fun t ↦ hg.continuousAt.continuousWithinAt.leftLim_eq + have hp := f.boundedVariation.setIntegral_rightLim_vectorMeasure_eq_sub + (B := ContinuousLinearMap.mul ℝ ℝ) g.boundedVariation (s := E) + rw [hflip, hfr, hgl] at hp + unfold intervalStieltjesIntegral intervalStieltjesMeasure + change (f.boundedVariation.bilinear_comp g.boundedVariation + (ContinuousLinearMap.mul ℝ ℝ)).vectorMeasure E = _ + linarith + +/-- The integrated Stieltjes product rule: a bounded measurable weight distributes over the +Lebesgue–Stieltjes measure of a product one factor of which is continuous. -/ +theorem intervalStieltjesIntegral_product_of_bounded {a b : ℝ} (hab : a ≤ b) + (f g h : RightContinuousIntervalBV a b) (hgc : Continuous g.toFun) + (hh : ∀ t, h.toFun t = f.toFun t * g.toFun t) + (φ : Set.Icc a b → ℝ) (hφ : Measurable φ) (C : ℝ) (hφb : ∀ t, ‖φ t‖ ≤ C) + (E : Set (Set.Icc a b)) (hE : MeasurableSet E) : + intervalStieltjesIntegral h φ E = + intervalStieltjesIntegral f (fun t ↦ φ t * g.toFun t) E + + intervalStieltjesIntegral g (fun t ↦ φ t * f.toFun t) E := by + obtain ⟨h', hh', hh'm⟩ := intervalStieltjes_product a b f g (Or.inr hgc) + have hheq : h = h' := + RightContinuousIntervalBV.toFun_injective (funext fun t ↦ (hh t).trans (hh' t).symm) + obtain ⟨Cf, hCf⟩ := f.exists_norm_bound hab + obtain ⟨Cg, hCg⟩ := g.exists_norm_bound hab + have hfm : Measurable f.toFun := f.boundedVariation.measurable + have hgm : Measurable g.toFun := g.boundedVariation.measurable + -- both Stieltjes measures are absolutely continuous over the sum of their total variations + set ρ : Measure (Set.Icc a b) := (intervalStieltjesMeasure f).totalVariation + + (intervalStieltjesMeasure g).totalVariation with hρ + have _ : IsFiniteMeasure ρ := by rw [hρ]; infer_instance + have hac : ∀ μ : SignedMeasure (Set.Icc a b), μ.totalVariation ≤ ρ → + μ ≪ᵥ ρ.toENNRealVectorMeasure := fun μ hle ↦ by + rw [SignedMeasure.absolutelyContinuous_ennreal_iff, + VectorMeasure.ennrealToMeasure_toENNRealVectorMeasure] + exact Measure.absolutelyContinuous_of_le hle + have hacf := hac (intervalStieltjesMeasure f) (by rw [hρ]; exact Measure.le_add_right le_rfl) + have hacg := hac (intervalStieltjesMeasure g) (by rw [hρ]; exact Measure.le_add_left le_rfl) + set rf : Set.Icc a b → ℝ := (intervalStieltjesMeasure f).rnDeriv ρ with hrf + set rg : Set.Icc a b → ℝ := (intervalStieltjesMeasure g).rnDeriv ρ with hrg + have hrfi : Integrable rf ρ := SignedMeasure.integrable_rnDeriv _ ρ + have hrgi : Integrable rg ρ := SignedMeasure.integrable_rnDeriv _ ρ + have hμf : ρ.withDensityᵥ rf = intervalStieltjesMeasure f := + SignedMeasure.withDensityᵥ_rnDeriv_eq _ ρ hacf + have hμg : ρ.withDensityᵥ rg = intervalStieltjesMeasure g := + SignedMeasure.withDensityᵥ_rnDeriv_eq _ ρ hacg + have hgrf : Integrable (fun x ↦ g.toFun x * rf x) ρ := + hrfi.bdd_mul hgm.aestronglyMeasurable (Filter.Eventually.of_forall hCg) + have hfrg : Integrable (fun x ↦ f.toFun x * rg x) ρ := + hrgi.bdd_mul hfm.aestronglyMeasurable (Filter.Eventually.of_forall hCf) + have hsumi : Integrable (fun x ↦ g.toFun x * rf x + f.toFun x * rg x) ρ := hgrf.add hfrg + have hφg : Measurable fun t ↦ φ t * g.toFun t := hφ.mul hgm + have hφf : Measurable fun t ↦ φ t * f.toFun t := hφ.mul hfm + -- the product measure is the density of the two-term Radon–Nikodym sum + have hsum : intervalStieltjesMeasure h = + ρ.withDensityᵥ (fun x ↦ g.toFun x * rf x + f.toFun x * rg x) := by + rw [hheq] + ext S hS + rw [withDensityᵥ_apply hsumi hS, hh'm S hS] + have h1 : intervalStieltjesIntegral f g.toFun S = ∫ x in S, g.toFun x * rf x ∂ρ := by + rw [intervalStieltjesIntegral, ← hμf, + VectorMeasure.setIntegral_withDensity_mul_of_bounded hrfi + hgm.aestronglyMeasurable Cg hCg S hS] + have h2 : intervalStieltjesIntegral g f.toFun S = ∫ x in S, f.toFun x * rg x ∂ρ := by + rw [intervalStieltjesIntegral, ← hμg, + VectorMeasure.setIntegral_withDensity_mul_of_bounded hrgi + hfm.aestronglyMeasurable Cf hCf S hS] + rw [h1, h2, integral_add hgrf.integrableOn hfrg.integrableOn] + have hb1 : ∀ x, ‖φ x * g.toFun x‖ ≤ C * Cg := fun x ↦ by + rw [norm_mul] + exact mul_le_mul (hφb x) (hCg x) (norm_nonneg _) ((norm_nonneg _).trans (hφb x)) + have hb2 : ∀ x, ‖φ x * f.toFun x‖ ≤ C * Cf := fun x ↦ by + rw [norm_mul] + exact mul_le_mul (hφb x) (hCf x) (norm_nonneg _) ((norm_nonneg _).trans (hφb x)) + have hi1 : Integrable (fun x ↦ φ x * g.toFun x * rf x) ρ := + hrfi.bdd_mul hφg.aestronglyMeasurable (Filter.Eventually.of_forall hb1) + have hi2 : Integrable (fun x ↦ φ x * f.toFun x * rg x) ρ := + hrgi.bdd_mul hφf.aestronglyMeasurable (Filter.Eventually.of_forall hb2) + rw [show intervalStieltjesIntegral h φ E = + ∫ x in E, φ x * (g.toFun x * rf x + f.toFun x * rg x) ∂ρ by + rw [intervalStieltjesIntegral, hsum, + VectorMeasure.setIntegral_withDensity_mul_of_bounded hsumi + hφ.aestronglyMeasurable C hφb E hE], + show intervalStieltjesIntegral f (fun t ↦ φ t * g.toFun t) E = + ∫ x in E, φ x * g.toFun x * rf x ∂ρ by + rw [intervalStieltjesIntegral, ← hμf, + VectorMeasure.setIntegral_withDensity_mul_of_bounded hrfi + hφg.aestronglyMeasurable (C * Cg) hb1 E hE], + show intervalStieltjesIntegral g (fun t ↦ φ t * f.toFun t) E = + ∫ x in E, φ x * f.toFun x * rg x ∂ρ by + rw [intervalStieltjesIntegral, ← hμg, + VectorMeasure.setIntegral_withDensity_mul_of_bounded hrgi + hφf.aestronglyMeasurable (C * Cf) hb2 E hE], + ← integral_add hi1.integrableOn hi2.integrableOn] + exact setIntegral_congr_fun hE fun x _ ↦ by ring + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Stieltjes / Density Integration +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped Topology + +namespace MovingSofa + +/-- A continuous integrand against an interval Stieltjes measure with an ordinary density is +the corresponding weighted Lebesgue integral on the interval subtype. -/ +theorem intervalStieltjesIntegral_eq_integral_mul_of_density + {a b : ℝ} (F : RightContinuousIntervalBV a b) {r : ℝ → ℝ} + (hr : HasIntervalStieltjesDensity F r) {q : Icc a b → ℝ} (hq : Continuous q) + (E : Set (Icc a b)) (hE : MeasurableSet E) : + intervalStieltjesIntegral F q E = + ∫ t in E, q t * r t ∂volume.comap (Subtype.val : Icc a b → ℝ) := by + have hri : Integrable (fun t : Icc a b ↦ r t) + (volume.comap (Subtype.val : Icc a b → ℝ)) := + (integrableOn_iff_comap_subtypeVal measurableSet_Icc).mp hr.1 + have hmeasure : intervalStieltjesMeasure F = + (volume.comap (Subtype.val : Icc a b → ℝ)).withDensityᵥ + (fun t : Icc a b ↦ r t) := by + ext S hS + have himage : MeasurableSet ((Subtype.val : Icc a b → ℝ) '' S) := + (MeasurableEmbedding.subtype_coe measurableSet_Icc).measurableSet_image' hS + have hpre : {t : Icc a b | (t : ℝ) ∈ (Subtype.val : Icc a b → ℝ) '' S} = S := + Set.preimage_image_eq S Subtype.val_injective + rw [withDensityᵥ_apply hri hS, ← hpre, + integral_subtype_preimage measurableSet_Icc himage] + exact hr.2 _ himage + let _ : IsFiniteMeasure (volume.comap (Subtype.val : Icc a b → ℝ)) := + ⟨by + rw [comap_subtype_coe_apply measurableSet_Icc] + simp only [image_univ, Subtype.range_val] + exact measure_Icc_lt_top⟩ + unfold intervalStieltjesIntegral + rw [hmeasure] + exact VectorMeasure.setIntegral_withDensity_mul hri hq E hE + +/-- The density formula also applies to a bounded-variation integrand on a nonempty compact +interval. -/ +theorem intervalStieltjesIntegral_eq_integral_mul_of_density_bv + {a b : ℝ} (hab : a ≤ b) (F : RightContinuousIntervalBV a b) {r : ℝ → ℝ} + (hr : HasIntervalStieltjesDensity F r) {q : Icc a b → ℝ} + (hq : BoundedVariationOn q univ) (E : Set (Icc a b)) (hE : MeasurableSet E) : + intervalStieltjesIntegral F q E = + ∫ t in E, q t * r t ∂volume.comap (Subtype.val : Icc a b → ℝ) := by + have hri : Integrable (fun t : Icc a b ↦ r t) + (volume.comap (Subtype.val : Icc a b → ℝ)) := + (integrableOn_iff_comap_subtypeVal measurableSet_Icc).mp hr.1 + have hmeasure : intervalStieltjesMeasure F = + (volume.comap (Subtype.val : Icc a b → ℝ)).withDensityᵥ + (fun t : Icc a b ↦ r t) := by + ext S hS + have himage : MeasurableSet ((Subtype.val : Icc a b → ℝ) '' S) := + (MeasurableEmbedding.subtype_coe measurableSet_Icc).measurableSet_image' hS + have hpre : {t : Icc a b | (t : ℝ) ∈ (Subtype.val : Icc a b → ℝ) '' S} = S := + Set.preimage_image_eq S Subtype.val_injective + rw [withDensityᵥ_apply hri hS, ← hpre, + integral_subtype_preimage measurableSet_Icc himage] + exact hr.2 _ himage + let _ : IsFiniteMeasure (volume.comap (Subtype.val : Icc a b → ℝ)) := + ⟨by + rw [comap_subtype_coe_apply measurableSet_Icc] + simp only [image_univ, Subtype.range_val] + exact measure_Icc_lt_top⟩ + let t₀ : Icc a b := ⟨a, le_rfl, hab⟩ + let C := ‖q t₀‖ + (eVariationOn q univ).toReal + have hq_bound : ∀ t, ‖q t‖ ≤ C := by + intro t + calc + ‖q t‖ ≤ ‖q t₀‖ + ‖q t - q t₀‖ := norm_le_norm_add_norm_sub' _ _ + _ ≤ ‖q t₀‖ + (eVariationOn q univ).toReal := by + gcongr + simpa [dist_eq_norm_sub] using hq.dist_le (mem_univ t) (mem_univ t₀) + _ = C := rfl + unfold intervalStieltjesIntegral + rw [hmeasure] + exact VectorMeasure.setIntegral_withDensity_mul_of_bounded hri + hq.stronglyMeasurable.aestronglyMeasurable C hq_bound E hE + +/-- A real function agreeing with a BV representative is integrable on its interval. -/ +theorem RightContinuousIntervalBV.integrableOn_Icc_of_eq + {a b : ℝ} (f : RightContinuousIntervalBV a b) (q : ℝ → ℝ) + (hq : ∀ t : Icc a b, q t = f.toFun t) : IntegrableOn q (Icc a b) := by + have hfinite : IsFiniteMeasure (volume.comap (Subtype.val : Icc a b → ℝ)) := + ⟨by + rw [comap_subtype_coe_apply measurableSet_Icc] + simp only [image_univ, Subtype.range_val] + exact measure_Icc_lt_top⟩ + let _ := hfinite + rw [IntegrableOn, ← map_comap_subtype_coe measurableSet_Icc, + (MeasurableEmbedding.subtype_coe measurableSet_Icc).integrable_map_iff + (μ := volume.comap (Subtype.val : Icc a b → ℝ))] + convert f.boundedVariation.integrable + (μ := volume.comap (Subtype.val : Icc a b → ℝ)) using 1 + funext t + exact hq t + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Stieltjes / Linearity +-/ + +@[expose] public section + +noncomputable section + +open scoped Topology + +namespace MovingSofa + +theorem intervalStieltjes_linear_combination (a b : ℝ) + (f g : RightContinuousIntervalBV a b) (r s : ℝ) : + ∃ h : RightContinuousIntervalBV a b, + (∀ t, h.toFun t = r * f.toFun t + s * g.toFun t) ∧ + intervalStieltjesMeasure h = + r • intervalStieltjesMeasure f + s • intervalStieltjesMeasure g := by + let hfun : Set.Icc a b → ℝ := fun t ↦ r * f.toFun t + s * g.toFun t + have hBV : IsIntervalBoundedVariation a b hfun := by + have hfr := (ContinuousLinearMap.lsmul ℝ ℝ r).lipschitzWith.comp_boundedVariationOn + f.boundedVariation + have hgr := (ContinuousLinearMap.lsmul ℝ ℝ s).lipschitzWith.comp_boundedVariationOn + g.boundedVariation + exact BoundedVariationOn.add hfr hgr + change BoundedVariationOn hfun Set.univ at hBV + let h : RightContinuousIntervalBV a b := + { toFun := hfun + boundedVariation := hBV + right_continuous := fun t ↦ by + exact (f.right_continuous t).const_mul r |>.add ((g.right_continuous t).const_mul s) } + refine ⟨h, ?_, ?_⟩ + · intro t + rfl + · apply MeasureTheory.VectorMeasure.ext_of_Icc + intro x y hxy + have hbv : BoundedVariationOn h.toFun Set.univ := h.boundedVariation + have hleft (z : Set.Icc a b) : + Function.leftLim h.toFun z = + r * Function.leftLim f.toFun z + s * Function.leftLim g.toFun z := by + rcases Filter.eq_or_neBot (𝓝[<] z) with hz | hz + · simp [leftLim_eq_of_eq_bot _ hz, h, hfun] + · exact tendsto_nhds_unique (hbv.tendsto_leftLim z) + ((f.boundedVariation.tendsto_leftLim z).const_smul r |>.add + ((g.boundedVariation.tendsto_leftLim z).const_smul s)) + have hfxy : Function.rightLim f.toFun y = f.toFun y := + (f.right_continuous y).rightLim_eq + have gfxy : Function.rightLim g.toFun y = g.toFun y := + (g.right_continuous y).rightLim_eq + have hxy' : Function.rightLim h.toFun y = h.toFun y := + (h.right_continuous y).rightLim_eq + simp only [smul_apply, add_apply] + rw [show intervalStieltjesMeasure h (Set.Icc x y) = + Function.rightLim h.toFun y - Function.leftLim h.toFun x by + exact BoundedVariationOn.vectorMeasure_Icc hbv hxy] + rw [show intervalStieltjesMeasure f (Set.Icc x y) = + Function.rightLim f.toFun y - Function.leftLim f.toFun x by + exact BoundedVariationOn.vectorMeasure_Icc f.boundedVariation hxy] + rw [show intervalStieltjesMeasure g (Set.Icc x y) = + Function.rightLim g.toFun y - Function.leftLim g.toFun x by + exact BoundedVariationOn.vectorMeasure_Icc g.boundedVariation hxy] + rw [hleft x] + rw [hxy', hfxy, gfxy] + simp [h, hfun, sub_eq_add_neg] + ring + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Stieltjes / Inner Product +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped Topology + +namespace MovingSofa + +/-- Componentwise product rule for the Euclidean pairing of two planar interval-BV functions, +when the second function is continuous. -/ +theorem intervalStieltjes_inner_fin_two {a b : ℝ} + (f g : Fin 2 → RightContinuousIntervalBV a b) + (hg : ∀ i, Continuous (g i).toFun) : + ∃ h : RightContinuousIntervalBV a b, + (∀ t, h.toFun t = ∑ i, (f i).toFun t * (g i).toFun t) ∧ + ∀ E : Set (Icc a b), MeasurableSet E → + intervalStieltjesMeasure h E = + ∑ i, (intervalStieltjesIntegral (f i) (g i).toFun E + + intervalStieltjesIntegral (g i) (f i).toFun E) := by + obtain ⟨p0, hp0, hp0m⟩ := intervalStieltjes_product a b (f 0) (g 0) (Or.inr (hg 0)) + obtain ⟨p1, hp1, hp1m⟩ := intervalStieltjes_product a b (f 1) (g 1) (Or.inr (hg 1)) + obtain ⟨h, hh, hhm⟩ := intervalStieltjes_linear_combination a b p0 p1 1 1 + refine ⟨h, ?_, ?_⟩ + · intro t + rw [hh, hp0, hp1, Fin.sum_univ_two] + ring + · intro E hE + rw [show intervalStieltjesMeasure h E = + intervalStieltjesMeasure p0 E + intervalStieltjesMeasure p1 E by + rw [hhm] + simp] + rw [hp0m E hE, hp1m E hE, Fin.sum_univ_two] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Stieltjes / Smooth +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped Topology + +namespace MovingSofa + +/-- A continuously differentiable real function restricted to a compact interval, together with +its Stieltjes density. -/ +theorem exists_intervalBV_of_hasDerivAt {a b : ℝ} (hab : a ≤ b) + (φ φ' : ℝ → ℝ) (hderiv : ∀ t, HasDerivAt φ (φ' t) t) (hφ' : Continuous φ') : + ∃ F : RightContinuousIntervalBV a b, + (∀ t, F.toFun t = φ t) ∧ HasIntervalStieltjesDensity F φ' := by + have hdiff : Differentiable ℝ φ := fun t ↦ (hderiv t).differentiableAt + have hcontDiff : ContDiff ℝ 1 φ := by + rw [contDiff_one_iff_deriv] + refine ⟨hdiff, ?_⟩ + convert hφ' using 1 + funext t + exact (hderiv t).deriv + have hBVreal : BoundedVariationOn φ (Icc a b) := by + simpa only [uIcc_of_le hab] using + (hcontDiff.contDiffOn.absolutelyContinuousOnInterval (a := a) (b := b)).boundedVariationOn + let ι : Icc a b → ℝ := (↑) + have hBV : BoundedVariationOn (φ ∘ ι) Set.univ := + ne_top_of_le_ne_top hBVreal + (eVariationOn.comp_le_of_monotoneOn φ ι + (fun _ _ _ _ h ↦ h) (fun t _ ↦ t.property)) + let F : RightContinuousIntervalBV a b := + { toFun := φ ∘ ι + boundedVariation := hBV + right_continuous := fun t ↦ + (hderiv (t : ℝ)).continuousAt.comp_continuousWithinAt + continuous_subtype_val.continuousWithinAt } + have hφ'int : Integrable φ' (volume.restrict (Icc a b)) := + hφ'.continuousOn.integrableOn_compact isCompact_Icc + have hsubtype : Integrable (fun t : Icc a b ↦ φ' t) + (volume.comap (Subtype.val : Icc a b → ℝ)) := + (integrableOn_iff_comap_subtypeVal measurableSet_Icc).mp hφ'int + have hmeasure : intervalStieltjesMeasure F = + (volume.comap (Subtype.val : Icc a b → ℝ)).withDensityᵥ + (fun t : Icc a b ↦ φ' t) := by + apply F.boundedVariation.vectorMeasure_eq_withDensity_of_integral_Icc + · exact (continuous_iff_continuousAt.2 fun t ↦ (hderiv t).continuousAt).comp + continuous_subtype_val + · exact hsubtype + · intro c d hcd + have hftc : ∫ x in (c : ℝ)..(d : ℝ), φ' x = φ d - φ c := + intervalIntegral.integral_eq_sub_of_hasDerivAt + (fun x _ ↦ hderiv x) (hφ'.intervalIntegrable (c : ℝ) (d : ℝ)) + have hset : Icc c d = {x : Icc a b | (x : ℝ) ∈ Icc (c : ℝ) (d : ℝ)} := rfl + rw [hset, integral_subtype_preimage measurableSet_Icc measurableSet_Icc, + Measure.restrict_restrict_of_subset + (Icc_subset_Icc c.property.1 d.property.2)] + rw [integral_Icc_eq_integral_Ioc, ← intervalIntegral.integral_of_le hcd, hftc] + simp [F, ι] + refine ⟨F, fun _ ↦ rfl, hφ'int, ?_⟩ + intro E hE + have hpre : MeasurableSet {t : Icc a b | (t : ℝ) ∈ E} := + hE.preimage measurable_subtype_coe + rw [hmeasure, withDensityᵥ_apply hsubtype hpre, + integral_subtype_preimage measurableSet_Icc hE] + +/-- A right-continuous interval bounded-variation function that agrees on its interval with an +absolutely continuous function differentiable on the open interval has that derivative as its +Stieltjes density. Unlike `exists_intervalBV_of_hasDerivAt` this identifies the density of a +*given* bounded-variation function, and asks for differentiability only in the interior. -/ +theorem hasIntervalStieltjesDensity_of_hasDerivAt {a b : ℝ} (hab : a ≤ b) + (F : RightContinuousIntervalBV a b) (φ φ' : ℝ → ℝ) + (hF : ∀ t : Icc a b, F.toFun t = φ t) + (hac : AbsolutelyContinuousOnInterval φ a b) + (hderiv : ∀ t ∈ Ioo a b, HasDerivAt φ (φ' t) t) + (hint : IntegrableOn φ' (Icc a b)) : + HasIntervalStieltjesDensity F φ' := by + have hext : ∀ t ∈ Icc a b, stieltjesScalarExtension F t = φ t := by + intro t ht + rw [stieltjesScalarExtension, dite_eq_left ht] + exact hF ⟨t, ht⟩ + have hac' : AbsolutelyContinuousOnInterval (stieltjesScalarExtension F) a b := + hac.congr fun t ht ↦ (hext t (by simpa only [uIcc_of_le hab] using ht)).symm + obtain ⟨ρ, hρ⟩ := (intervalStieltjes_absoluteContinuity a b hab F).1.1 hac' + have hIoo : ρ =ᵐ[volume.restrict (Ioo a b)] φ' := by + filter_upwards [(intervalStieltjes_absoluteContinuity a b hab F).2 ρ hρ, + ae_restrict_mem measurableSet_Ioo] with t ht htmem + refine ht.unique ((hderiv t htmem).congr_of_eventuallyEq ?_) + filter_upwards [isOpen_Ioo.mem_nhds htmem] with u hu + exact hext u (Ioo_subset_Icc_self hu) + have hIcc : ρ =ᵐ[volume.restrict (Icc a b)] φ' := by + rwa [Measure.restrict_congr_set (MeasureTheory.Ioo_ae_eq_Icc (μ := volume))] at hIoo + refine ⟨hint, fun E hE ↦ ?_⟩ + rw [hρ.2 E hE] + exact integral_congr_ae (hIcc.filter_mono (ae_mono Measure.restrict_le_self)) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Stieltjes / Frame +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped Topology + +namespace MovingSofa + +/-- A coordinate of the rotating normal frame is a continuous interval-BV function whose +Stieltjes density is the corresponding tangent coordinate. -/ +theorem exists_normalVector_coordinate_intervalBV {a b : ℝ} (hab : a ≤ b) (i : Fin 2) : + ∃ F : RightContinuousIntervalBV a b, + (∀ t, F.toFun t = normalVector (((t : ℝ) : Real.Angle)) i) ∧ + HasIntervalStieltjesDensity F + (fun t ↦ tangentVector ((t : ℝ) : Real.Angle) i) := by + refine exists_intervalBV_of_hasDerivAt hab + (fun t : ℝ ↦ normalVector (t : Real.Angle) i) + (fun t : ℝ ↦ tangentVector (t : Real.Angle) i) ?_ ?_ + · intro t + fin_cases i + · change HasDerivAt Real.cos (-Real.sin t) t + exact Real.hasDerivAt_cos t + · change HasDerivAt Real.sin (Real.cos t) t + exact Real.hasDerivAt_sin t + · fin_cases i + · change Continuous (fun t : ℝ ↦ -Real.sin t) + fun_prop + · change Continuous Real.cos + fun_prop + +/-- A coordinate of the rotating tangent frame is a continuous interval-BV function whose +Stieltjes density is the negative normal coordinate. -/ +theorem exists_tangentVector_coordinate_intervalBV {a b : ℝ} (hab : a ≤ b) (i : Fin 2) : + ∃ F : RightContinuousIntervalBV a b, + (∀ t, F.toFun t = tangentVector (((t : ℝ) : Real.Angle)) i) ∧ + HasIntervalStieltjesDensity F + (fun t ↦ -normalVector ((t : ℝ) : Real.Angle) i) := by + refine exists_intervalBV_of_hasDerivAt hab + (fun t : ℝ ↦ tangentVector (t : Real.Angle) i) + (fun t : ℝ ↦ -normalVector (t : Real.Angle) i) ?_ ?_ + · intro t + fin_cases i + · change HasDerivAt (fun t : ℝ ↦ -Real.sin t) (-Real.cos t) t + convert (Real.hasDerivAt_sin t).neg using 1 + · change HasDerivAt Real.cos (-Real.sin t) t + exact Real.hasDerivAt_cos t + · fin_cases i + · change Continuous (fun t : ℝ ↦ -Real.cos t) + fun_prop + · change Continuous (fun t : ℝ ↦ -Real.sin t) + fun_prop + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Stieltjes / Transport +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped Function + +namespace MovingSofa + +/-- Continuous monotone surjective reparametrization preserves the Stieltjes integral. -/ +theorem intervalStieltjesIntegral_comp_monotone_surjective + {a b c d : ℝ} (hab : a ≤ b) (hcd : c ≤ d) (F : RightContinuousIntervalBV a b) + (hFc : Continuous F.toFun) (g : Set.Icc a b → ℝ) (hgc : Continuous g) + (φ : Set.Icc c d → Set.Icc a b) (hφc : Continuous φ) (hφ : Monotone φ) + (hφs : Function.Surjective φ) : + intervalStieltjesIntegral F g Set.univ = + intervalStieltjesIntegral + { toFun := F.toFun ∘ φ + boundedVariation := BoundedVariationOn.comp_monotone_surjective_Icc + hab F.boundedVariation hφ hφs + right_continuous := fun _ ↦ + (hFc.comp hφc).continuousAt.continuousWithinAt } + (g ∘ φ) Set.univ := by + let Fφ : RightContinuousIntervalBV c d := + { toFun := F.toFun ∘ φ + boundedVariation := BoundedVariationOn.comp_monotone_surjective_Icc + hab F.boundedVariation hφ hφs + right_continuous := fun _ ↦ + (hFc.comp hφc).continuousAt.continuousWithinAt } + have hmap : (intervalStieltjesMeasure Fφ).map φ = intervalStieltjesMeasure F := + BoundedVariationOn.vectorMeasure_map_comp_monotone_surjective_Icc + hab hcd F.boundedVariation hFc hφc hφ hφs + let _ : IsFiniteMeasure (intervalStieltjesMeasure Fφ).variation := by + change IsFiniteMeasure Fφ.boundedVariation.vectorMeasure.variation + exact BoundedVariationOn.instIsFiniteMeasureVariationVectorMeasure Fφ.boundedVariation + have hgint : (intervalStieltjesMeasure Fφ).Integrable (g ∘ φ) := + (hgc.comp hφc).integrable_of_hasCompactSupport + (isCompact_univ.of_isClosed_subset isClosed_closure (subset_univ _)) + have hgm : AEStronglyMeasurable g + ((intervalStieltjesMeasure Fφ).variation.map φ) := + hgc.aestronglyMeasurable + unfold intervalStieltjesIntegral + simp only [VectorMeasure.restrict_univ] + rw [← hmap, MeasureTheory.VectorMeasure.integral_map hφc.measurable hgm hgint] + rfl + +/-- Restricting a continuous Stieltjes integral agrees with integration on the subinterval. -/ +theorem intervalStieltjesIntegral_Ioc_eq_inclusion + {a b : ℝ} (F : RightContinuousIntervalBV a b) (hFc : Continuous F.toFun) + (g : Set.Icc a b → ℝ) (hgc : Continuous g) (l u : Set.Icc a b) (hlu : l ≤ u) : + let ι : Set.Icc (l : ℝ) u → Set.Icc a b := fun x ↦ + ⟨x, le_trans l.property.1 x.property.1, le_trans x.property.2 u.property.2⟩ + let hfr : BoundedVariationOn (F.toFun ∘ ι) Set.univ := + ne_top_of_le_ne_top F.boundedVariation (eVariationOn.comp_le_of_monotoneOn F.toFun ι + (fun _ _ _ _ h ↦ h) (mapsTo_univ ι _)) + intervalStieltjesIntegral F g (Ioc l u) = + intervalStieltjesIntegral + { toFun := F.toFun ∘ ι + boundedVariation := hfr + right_continuous := fun _ ↦ + (hFc.comp (continuous_subtype_val.subtype_mk _)).continuousAt.continuousWithinAt } + (g ∘ ι) Set.univ := by + dsimp only + let ι : Set.Icc (l : ℝ) u → Set.Icc a b := fun x ↦ + ⟨x, le_trans l.property.1 x.property.1, le_trans x.property.2 u.property.2⟩ + let hfr : BoundedVariationOn (F.toFun ∘ ι) Set.univ := + ne_top_of_le_ne_top F.boundedVariation (eVariationOn.comp_le_of_monotoneOn F.toFun ι + (fun _ _ _ _ h ↦ h) (mapsTo_univ ι _)) + let Fr : RightContinuousIntervalBV (l : ℝ) u := + { toFun := F.toFun ∘ ι + boundedVariation := hfr + right_continuous := fun _ ↦ + (hFc.comp (continuous_subtype_val.subtype_mk _)).continuousAt.continuousWithinAt } + have hmap : (intervalStieltjesMeasure Fr).map ι = + (intervalStieltjesMeasure F).restrict (Ioc l u) := + BoundedVariationOn.vectorMeasure_map_Icc_inclusion F.boundedVariation hFc l u hlu + let _ : IsFiniteMeasure (intervalStieltjesMeasure Fr).variation := by + change IsFiniteMeasure hfr.vectorMeasure.variation + exact BoundedVariationOn.instIsFiniteMeasureVariationVectorMeasure hfr + have hgint : (intervalStieltjesMeasure Fr).Integrable (g ∘ ι) := + (hgc.comp (continuous_subtype_val.subtype_mk _)).integrable_of_hasCompactSupport + (isCompact_univ.of_isClosed_subset isClosed_closure (subset_univ _)) + have hgm : AEStronglyMeasurable g + ((intervalStieltjesMeasure Fr).variation.map ι) := + hgc.aestronglyMeasurable + unfold intervalStieltjesIntegral + simp only [VectorMeasure.restrict_univ] + rw [← hmap, MeasureTheory.VectorMeasure.integral_map + (continuous_subtype_val.subtype_mk _).measurable hgm hgint] + rfl + +/-- A continuous Stieltjes integral splits over a finite monotone partition. -/ +theorem intervalStieltjesIntegral_eq_sum_Ioc + {a b : ℝ} (F : RightContinuousIntervalBV a b) (hFc : Continuous F.toFun) + (g : Set.Icc a b → ℝ) (hgc : Continuous g) {n : ℕ} + (cuts : Fin (n + 1) → Set.Icc a b) (hcuts : Monotone cuts) + (hzero : (cuts 0 : ℝ) = a) (hlast : (cuts (Fin.last n) : ℝ) = b) : + intervalStieltjesIntegral F g Set.univ = + ∑ i : Fin n, intervalStieltjesIntegral F g (Ioc (cuts i.castSucc) (cuts i.succ)) := by + have hab : a ≤ b := by + calc + a = cuts 0 := hzero.symm + _ ≤ cuts (Fin.last n) := hcuts (Fin.zero_le _) + _ = b := hlast + let _ : Fact (a ≤ b) := ⟨hab⟩ + let _ : IsFiniteMeasure (intervalStieltjesMeasure F).variation := by + exact BoundedVariationOn.instIsFiniteMeasureVariationVectorMeasure F.boundedVariation + unfold intervalStieltjesIntegral + have hmeas (i : Fin n) : MeasurableSet (Ioc (cuts i.castSucc) (cuts i.succ)) := + measurableSet_Ioc + have hall : (intervalStieltjesMeasure F).Integrable g := + hgc.integrable_of_hasCompactSupport + (isCompact_univ.of_isClosed_subset isClosed_closure (subset_univ _)) + have hint (i : Fin n) : + (intervalStieltjesMeasure F).IntegrableOn g (Ioc (cuts i.castSucc) (cuts i.succ)) := + hall.integrableOn + have hpair : Set.Pairwise ((Finset.univ : Finset (Fin n)) : Set (Fin n)) + (Disjoint on fun i ↦ Ioc (cuts i.castSucc) (cuts i.succ)) := by + intro i _ j _ hij + change Disjoint (Ioc (cuts i.castSucc) (cuts i.succ)) + (Ioc (cuts j.castSucc) (cuts j.succ)) + rw [Set.disjoint_left] + intro x hxi hxj + rcases lt_or_gt_of_ne hij with hij' | hji' + · have hij_fin : i.succ ≤ j.castSucc := by + simpa using Nat.succ_le_of_lt hij' + exact (not_lt_of_ge (le_trans hxi.2 (hcuts hij_fin))) hxj.1 + · have hji_fin : j.succ ≤ i.castSucc := by + simpa using Nat.succ_le_of_lt hji' + exact (not_lt_of_ge (le_trans hxj.2 (hcuts hji_fin))) hxi.1 + rw [← MeasureTheory.VectorMeasure.setIntegral_biUnion_finset Finset.univ + (fun i _ ↦ hmeas i) hpair (fun i _ ↦ hint i)] + have hunion : + (⋃ i : Fin n, Ioc (cuts i.castSucc) (cuts i.succ)) = Set.univ \ {cuts 0} := by + rw [hcuts.iUnion_Ioc_fin] + ext x + simp only [mem_Ioc, mem_sdiff, mem_univ, true_and, mem_singleton_iff] + constructor + · rintro ⟨hx0, _⟩ hxe + exact hx0.ne' hxe + · intro hxe + exact ⟨lt_of_le_of_ne (by + change (cuts 0 : ℝ) ≤ (x : ℝ) + simpa [hzero] using x.property.1) (fun hx ↦ hxe hx.symm), + by + change (x : ℝ) ≤ (cuts (Fin.last n) : ℝ) + simpa [hlast] using x.property.2⟩ + simp only [Finset.mem_univ, iUnion_true] + rw [hunion] + rw [MeasureTheory.VectorMeasure.setIntegral_sdiff (s := Set.univ) (t := {cuts 0}) + MeasurableSet.univ (measurableSet_singleton _) hall.integrableOn (subset_univ _)] + rw [MeasureTheory.VectorMeasure.integral_singleton] + have hz : intervalStieltjesMeasure F {cuts 0} = 0 := + BoundedVariationOn.vectorMeasure_singleton_eq_zero_of_continuous F.boundedVariation hFc _ + rw [hz] + simp + +/-- Reversing both continuous integrand and BV integrator negates their Stieltjes integral. -/ +theorem intervalStieltjesIntegral_comp_reverse + {a b : ℝ} (hab : a ≤ b) (F : RightContinuousIntervalBV a b) + (hFc : Continuous F.toFun) (g : Set.Icc a b → ℝ) (hgc : Continuous g) : + let r := Set.Icc.reverse hab + let hfr := BoundedVariationOn.comp_antitone_surjective_Icc hab F.boundedVariation + (Set.Icc.antitone_reverse hab) (Set.Icc.surjective_reverse hab) + intervalStieltjesIntegral + { toFun := F.toFun ∘ r + boundedVariation := hfr + right_continuous := fun _ ↦ + (hFc.comp (Set.Icc.continuous_reverse hab)).continuousAt.continuousWithinAt } + (g ∘ r) Set.univ = + -intervalStieltjesIntegral F g Set.univ := by + dsimp only + let r := Set.Icc.reverse hab + let hfr := BoundedVariationOn.comp_antitone_surjective_Icc hab F.boundedVariation + (Set.Icc.antitone_reverse hab) (Set.Icc.surjective_reverse hab) + let Fr : RightContinuousIntervalBV a b := + { toFun := F.toFun ∘ r + boundedVariation := hfr + right_continuous := fun _ ↦ + (hFc.comp (Set.Icc.continuous_reverse hab)).continuousAt.continuousWithinAt } + have hmap : (intervalStieltjesMeasure Fr).map r = -intervalStieltjesMeasure F := + BoundedVariationOn.vectorMeasure_map_reverse_Icc hab F.boundedVariation hFc + let _ : IsFiniteMeasure (intervalStieltjesMeasure Fr).variation := by + change IsFiniteMeasure hfr.vectorMeasure.variation + exact BoundedVariationOn.instIsFiniteMeasureVariationVectorMeasure hfr + have hgint : (intervalStieltjesMeasure Fr).Integrable (g ∘ r) := + (hgc.comp (Set.Icc.continuous_reverse hab)).integrable_of_hasCompactSupport + (isCompact_univ.of_isClosed_subset isClosed_closure (subset_univ _)) + have hgm : AEStronglyMeasurable g + ((intervalStieltjesMeasure Fr).variation.map r) := + hgc.aestronglyMeasurable + unfold intervalStieltjesIntegral + simp only [MeasureTheory.VectorMeasure.restrict_univ] + rw [← MeasureTheory.VectorMeasure.integral_neg_vectorMeasure, ← hmap, + MeasureTheory.VectorMeasure.integral_map + (Set.Icc.continuous_reverse hab).measurable hgm hgint] + rfl + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Stieltjes / Continuous +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set + +namespace MovingSofa + +/-- A continuous function is integrable against a BV Stieltjes measure on a compact interval. -/ +theorem RightContinuousIntervalBV.integrable_of_continuous {a b : ℝ} (F : + RightContinuousIntervalBV a b) + {g : Set.Icc a b → ℝ} (hg : Continuous g) : (intervalStieltjesMeasure F).Integrable g := by + let _ : IsFiniteMeasure (intervalStieltjesMeasure F).variation := + BoundedVariationOn.instIsFiniteMeasureVariationVectorMeasure F.boundedVariation + exact hg.integrable_of_hasCompactSupport + (isCompact_univ.of_isClosed_subset isClosed_closure (subset_univ _)) + +private theorem intervalStieltjesIntegral_univ_eq_Ioc_of_continuous + {a b : ℝ} (hab : a ≤ b) (F : RightContinuousIntervalBV a b) + (hF : Continuous F.toFun) (g : Set.Icc a b → ℝ) (hg : Continuous g) : + intervalStieltjesIntegral F g Set.univ = + intervalStieltjesIntegral F g {t | a < (t : ℝ)} := by + let a' : Set.Icc a b := ⟨a, le_rfl, hab⟩ + let b' : Set.Icc a b := ⟨b, hab, le_rfl⟩ + let cuts : Fin 2 → Set.Icc a b := Fin.cases a' (fun _ ↦ b') + have hcuts : Monotone cuts := by + intro i j hij + fin_cases i <;> fin_cases j <;> simp only [Fin.zero_eta, Fin.isValue, Std.le_refl, + Nat.reduceAdd, Fin.cases_zero, cuts, a', b', + Fin.mk_one, zero_le, nonpos_iff_eq_zero, one_ne_zero] at hij ⊢ + exact hab + have hparts := intervalStieltjesIntegral_eq_sum_Ioc F hF g hg cuts hcuts rfl rfl + have hset : Set.Ioc a' b' = {t : Set.Icc a b | a < (t : ℝ)} := by + ext t + simp only [Set.mem_Ioc, Set.mem_ofPred_eq] + constructor + · exact fun ht ↦ ht.1 + · exact fun ht ↦ ⟨ht, t.property.2⟩ + dsimp [cuts] at hparts + simpa [Fin.sum_univ_succ, hset] using hparts + +/-- For a continuous driver and a continuous integrand, the closed-interval Stieltjes integral +agrees with the open-interval one: neither endpoint carries an atom. -/ +theorem intervalStieltjesIntegral_univ_eq_Ioo_of_continuous {a b : ℝ} (hab : a ≤ b) + (F : RightContinuousIntervalBV a b) (hF : Continuous F.toFun) + (g : Set.Icc a b → ℝ) (hg : Continuous g) : + intervalStieltjesIntegral F g Set.univ = + intervalStieltjesIntegral F g (Set.Ioo ⟨a, le_rfl, hab⟩ ⟨b, hab, le_rfl⟩) := by + set a' : Set.Icc a b := ⟨a, le_rfl, hab⟩ + set b' : Set.Icc a b := ⟨b, hab, le_rfl⟩ + have hdiff : (Set.univ : Set (Set.Icc a b)) \ Set.Ioo a' b' ⊆ {a'} ∪ {b'} := by + intro t ht + rcases lt_or_ge a' t with hlt | hle + · exact Or.inr (le_antisymm t.property.2 (not_lt.mp fun h ↦ ht.2 ⟨hlt, h⟩)) + · exact Or.inl (le_antisymm hle t.property.1) + have hzero : intervalStieltjesIntegral F g + ((Set.univ : Set (Set.Icc a b)) \ Set.Ioo a' b') = 0 := by + refine VectorMeasure.setIntegral_of_variation_apply_eq_zero _ (measure_mono_null hdiff ?_) + refine measure_union_null ?_ ?_ <;> + · rw [intervalStieltjesMeasure, F.boundedVariation.variation_vectorMeasure_singleton, + hF.continuousAt.continuousWithinAt.rightLim_eq, + hF.continuousAt.continuousWithinAt.leftLim_eq] + simp + have hsplit := VectorMeasure.setIntegral_inter_add_sdiff + (μ := intervalStieltjesMeasure F) (B := ContinuousLinearMap.mul ℝ ℝ) (f := g) + (s := (Set.univ : Set (Set.Icc a b))) (t := Set.Ioo a' b') + MeasurableSet.univ measurableSet_Ioo (F.integrable_of_continuous hg).integrableOn + rw [Set.univ_inter] at hsplit + change intervalStieltjesIntegral F g (Set.Ioo a' b') + + intervalStieltjesIntegral F g ((Set.univ : Set (Set.Icc a b)) \ Set.Ioo a' b') = + intervalStieltjesIntegral F g Set.univ at hsplit + rw [hzero, add_zero] at hsplit + exact hsplit.symm + +/-- Integration by parts for continuous BV functions on the full compact interval. -/ +theorem intervalStieltjes_integration_by_parts_of_continuous + (a b : ℝ) (hab : a ≤ b) (F G : RightContinuousIntervalBV a b) + (hF : Continuous F.toFun) (hG : Continuous G.toFun) : + intervalStieltjesIntegral F G.toFun Set.univ + + intervalStieltjesIntegral G F.toFun Set.univ = + F.toFun ⟨b, hab, le_rfl⟩ * G.toFun ⟨b, hab, le_rfl⟩ - + F.toFun ⟨a, le_rfl, hab⟩ * G.toFun ⟨a, le_rfl, hab⟩ := by + obtain ⟨left, hleft, hparts⟩ := intervalStieltjes_integration_by_parts a b hab F G + have hleft_eq : Set.EqOn left F.toFun {t | a < (t : ℝ)} := by + intro t ht + change a < (t : ℝ) at ht + have hnonempty : (Set.Iio t).Nonempty := by + let s : Set.Icc a b := ⟨(a + (t : ℝ)) / 2, by constructor <;> linarith [t.property.2]⟩ + exact ⟨s, by change (a + (t : ℝ)) / 2 < (t : ℝ); linarith⟩ + have hne : (nhdsWithin t (Set.Iio t)).NeBot := + nhdsWithin_Iio_neBot' hnonempty le_rfl + let _ : (nhdsWithin t (Set.Iio t)).NeBot := hne + have hcont : Filter.Tendsto F.toFun (nhdsWithin t (Set.Iio t)) + (nhds (F.toFun t)) := hF.continuousAt.continuousWithinAt + exact tendsto_nhds_unique (hleft t ht) hcont + have hintegrand : intervalStieltjesIntegral G left {t | a < (t : ℝ)} = + intervalStieltjesIntegral G F.toFun {t | a < (t : ℝ)} := by + unfold intervalStieltjesIntegral + exact MeasureTheory.VectorMeasure.setIntegral_congr_fun hleft_eq + rw [intervalStieltjesIntegral_univ_eq_Ioc_of_continuous hab F hF G.toFun hG, + intervalStieltjesIntegral_univ_eq_Ioc_of_continuous hab G hG F.toFun hF, + ← hintegrand] + exact hparts + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Stieltjes / Affine +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open MeasureTheory Set + +private def unitIntervalIdentity : RightContinuousIntervalBV 0 1 where + toFun t := t + boundedVariation := by + apply ((show Monotone ((↑) : Set.Icc (0 : ℝ) 1 → ℝ) from fun _ _ h ↦ h).monotoneOn + Set.univ).boundedVariationOn (C := 1) + intro t _ + rw [abs_of_nonneg t.property.1] + exact t.property.2 + right_continuous t := continuous_subtype_val.continuousAt.continuousWithinAt + +private theorem continuous_unitIntervalIdentity : + Continuous unitIntervalIdentity.toFun := + continuous_subtype_val + +/-- A continuous BV driver carries total Stieltjes mass equal to its increment. -/ +theorem intervalStieltjesMeasure_univ_of_continuous {a b : ℝ} (hab : a ≤ b) + (Q : RightContinuousIntervalBV a b) (hQ : Continuous Q.toFun) : + intervalStieltjesMeasure Q univ = + Q.toFun ⟨b, hab, le_rfl⟩ - Q.toFun ⟨a, le_rfl, hab⟩ := by + have hu : (univ : Set (Icc a b)) = Icc ⟨a, le_rfl, hab⟩ ⟨b, hab, le_rfl⟩ := by + ext x + simp only [mem_univ, mem_Icc, true_iff] + exact x.property + unfold intervalStieltjesMeasure + rw [hu, Q.boundedVariation.vectorMeasure_Icc (show + (⟨a, le_rfl, hab⟩ : Icc a b) ≤ ⟨b, hab, le_rfl⟩ from hab), + hQ.continuousAt.continuousWithinAt.rightLim_eq, + hQ.continuousAt.continuousWithinAt.leftLim_eq] + +/-- An affine function of a continuous BV driver has that driver's Stieltjes measure, scaled by +the affine map's slope. -/ +theorem intervalStieltjesMeasure_affine {a b : ℝ} + (Q F : RightContinuousIntervalBV a b) (hQ : Continuous Q.toFun) (u v : ℝ) + (hF : ∀ t, F.toFun t = u + v * Q.toFun t) : + intervalStieltjesMeasure F = v • intervalStieltjesMeasure Q := by + have hFc : Continuous F.toFun := by + rw [show F.toFun = fun t ↦ u + v * Q.toFun t from funext hF] + exact continuous_const.add (continuous_const.mul hQ) + apply VectorMeasure.ext_of_Icc + intro x y hxy + simp only [smul_apply] + unfold intervalStieltjesMeasure + rw [F.boundedVariation.vectorMeasure_Icc hxy, Q.boundedVariation.vectorMeasure_Icc hxy, + hFc.continuousAt.continuousWithinAt.rightLim_eq, + hFc.continuousAt.continuousWithinAt.leftLim_eq, + hQ.continuousAt.continuousWithinAt.rightLim_eq, + hQ.continuousAt.continuousWithinAt.leftLim_eq, hF x, hF y] + ring + +/-- Shifting a continuous BV driver and its integrand by constants shifts the interval Stieltjes +integral over the whole parameter interval by the integrand's shift times the driver's increment; +the driver's own shift has no effect. -/ +theorem intervalStieltjesIntegral_add_const {a b : ℝ} (hab : a ≤ b) + (F G : RightContinuousIntervalBV a b) (hF : Continuous F.toFun) (c : ℝ) + (hFG : ∀ t, G.toFun t = F.toFun t + c) (g : Icc a b → ℝ) (hg : Continuous g) (d : ℝ) : + intervalStieltjesIntegral G (fun t ↦ g t + d) univ = + intervalStieltjesIntegral F g univ + + d * (F.toFun ⟨b, hab, le_rfl⟩ - F.toFun ⟨a, le_rfl, hab⟩) := by + let _ : IsFiniteMeasure (intervalStieltjesMeasure F).variation := + BoundedVariationOn.instIsFiniteMeasureVariationVectorMeasure F.boundedVariation + have hmeas : intervalStieltjesMeasure G = intervalStieltjesMeasure F := by + rw [intervalStieltjesMeasure_affine F G hF c 1 fun t ↦ by rw [hFG t]; ring, one_smul] + have hsum : (fun t ↦ g t + d) = g + fun _ ↦ d := rfl + rw [intervalStieltjesIntegral_univ, intervalStieltjesIntegral_univ, hmeas, hsum, + VectorMeasure.integral_add (F.integrable_of_continuous hg) + (F.integrable_of_continuous continuous_const), + VectorMeasure.integral_const, ← intervalStieltjesMeasure_univ_of_continuous hab F hF] + simp + +/-- The signed cross integral of two affine functions of one continuous BV driver. -/ +theorem intervalStieltjesIntegral_affine_driver_cross {a b : ℝ} (hab : a ≤ b) + (Q F G : RightContinuousIntervalBV a b) (hQ : Continuous Q.toFun) + (u v w z : ℝ) (hF : ∀ t, F.toFun t = u + v * Q.toFun t) + (hG : ∀ t, G.toFun t = w + z * Q.toFun t) : + intervalStieltjesIntegral G F.toFun univ - intervalStieltjesIntegral F G.toFun univ = + (u * z - w * v) * (Q.toFun ⟨b, hab, le_rfl⟩ - Q.toFun ⟨a, le_rfl, hab⟩) := by + let _ : IsFiniteMeasure (intervalStieltjesMeasure Q).variation := + BoundedVariationOn.instIsFiniteMeasureVariationVectorMeasure Q.boundedVariation + have hFm := intervalStieltjesMeasure_affine Q F hQ u v hF + have hGm := intervalStieltjesMeasure_affine Q G hQ w z hG + have hi (H : RightContinuousIntervalBV a b) (c d : ℝ) + (hH : ∀ t, H.toFun t = c + d * Q.toFun t) : + intervalStieltjesIntegral Q H.toFun univ = + c * (Q.toFun ⟨b, hab, le_rfl⟩ - Q.toFun ⟨a, le_rfl, hab⟩) + + d * intervalStieltjesIntegral Q Q.toFun univ := by + have heq : H.toFun = (fun _ ↦ c) + d • Q.toFun := by + funext t + exact hH t + have hc := Q.integrable_of_continuous (g := fun _ ↦ c) continuous_const + have hd := Q.integrable_of_continuous (g := d • Q.toFun) (continuous_const.smul hQ) + unfold intervalStieltjesIntegral + simp only [VectorMeasure.restrict_univ, heq] + rw [VectorMeasure.integral_add hc hd, VectorMeasure.integral_smul, + VectorMeasure.integral_const, intervalStieltjesMeasure_univ_of_continuous hab Q hQ] + simp + have hFI := hi F u v hF + have hGI := hi G w z hG + unfold intervalStieltjesIntegral at hFI hGI ⊢ + simp only [VectorMeasure.restrict_univ] at hFI hGI ⊢ + rw [hFm, hGm, VectorMeasure.integral_smul_vectorMeasure, + VectorMeasure.integral_smul_vectorMeasure, hFI, hGI] + ring + +theorem intervalStieltjesIntegral_affine_cross + (F G : RightContinuousIntervalBV 0 1) (a b c d : ℝ) + (hF : ∀ t, F.toFun t = a + b * (t : ℝ)) + (hG : ∀ t, G.toFun t = c + d * (t : ℝ)) : + intervalStieltjesIntegral G F.toFun Set.univ - + intervalStieltjesIntegral F G.toFun Set.univ = a * d - c * b := by + simpa only [unitIntervalIdentity, sub_zero, mul_one] using + intervalStieltjesIntegral_affine_driver_cross (by norm_num : (0 : ℝ) ≤ 1) + unitIntervalIdentity F G continuous_unitIntervalIdentity a b c d hF hG + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Riemann-Stieltjes sums for continuous integrands + +Left-endpoint sums over finite monotone partitions converge to the interval Stieltjes +integral of a continuous integrand against a continuous BV integrator, uniformly in the +mesh of the partition. +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set + +namespace MovingSofa + +/-- Two Stieltjes integrals differ by at most the uniform distance of their integrands +times the total variation of the integrator. -/ +theorem intervalStieltjesIntegral_sub_le_of_abs_sub_le + {a b : ℝ} (F : RightContinuousIntervalBV a b) {g h : Set.Icc a b → ℝ} + (hg : (intervalStieltjesMeasure F).Integrable g) + (hh : (intervalStieltjesMeasure F).Integrable h) + {ε : ℝ} (hε : 0 ≤ ε) + (hbound : ∀ᵐ t ∂(intervalStieltjesMeasure F).variation, |g t - h t| ≤ ε) : + |intervalStieltjesIntegral F g univ - intervalStieltjesIntegral F h univ| ≤ + ε * (intervalStieltjesMeasure F).variation.real univ := by + let _ : IsFiniteMeasure (intervalStieltjesMeasure F).variation := + BoundedVariationOn.instIsFiniteMeasureVariationVectorMeasure F.boundedVariation + unfold intervalStieltjesIntegral + simp only [VectorMeasure.restrict_univ] + rw [← VectorMeasure.integral_sub hg hh, ← Real.norm_eq_abs] + have h := VectorMeasure.norm_integral_le_of_norm_le_const + (B := ContinuousLinearMap.mul ℝ ℝ) (by simpa only [Real.norm_eq_abs] using hbound) + refine h.trans ?_ + calc + ε * ‖ContinuousLinearMap.mul ℝ ℝ‖ * (intervalStieltjesMeasure F).variation.real univ ≤ + ε * 1 * (intervalStieltjesMeasure F).variation.real univ := by + gcongr + exact ContinuousLinearMap.opNorm_mul_le ℝ ℝ + _ = _ := by ring + +private theorem intervalStieltjesIntegral_sum_indicator_Ioc + {a b : ℝ} (F : RightContinuousIntervalBV a b) {ι : Type*} + (s : Finset ι) (l u : ι → Set.Icc a b) (c : ι → ℝ) + (hlu : ∀ i ∈ s, l i ≤ u i) : + intervalStieltjesIntegral F + (fun t ↦ ∑ i ∈ s, (Ioc (l i) (u i)).indicator (fun _ ↦ c i) t) univ = + ∑ i ∈ s, c i * (F.toFun (u i) - F.toFun (l i)) := by + classical + let _ : IsFiniteMeasure (intervalStieltjesMeasure F).variation := + BoundedVariationOn.instIsFiniteMeasureVariationVectorMeasure F.boundedVariation + unfold intervalStieltjesIntegral + rw [VectorMeasure.restrict_univ, VectorMeasure.integral_finsetSum] + · apply Finset.sum_congr rfl + intro i hi + rw [VectorMeasure.integral_indicator_const _ measurableSet_Ioc] + change c i * F.boundedVariation.vectorMeasure (Ioc (l i) (u i)) = _ + rw [F.boundedVariation.vectorMeasure_Ioc (hlu i hi), + (F.right_continuous (u i)).rightLim_eq, (F.right_continuous (l i)).rightLim_eq] + · intro i _ + exact (MeasureTheory.integrable_const (c i)).indicator measurableSet_Ioc + +/-- The error in a left-endpoint Stieltjes sum is controlled by the cell oscillation of the +integrand times the total variation of the integrator. -/ +theorem intervalStieltjesIntegral_sub_sum_le_of_oscillation + {a b : ℝ} (F : RightContinuousIntervalBV a b) (hF : Continuous F.toFun) + {g : Set.Icc a b → ℝ} (hg : Continuous g) {n : ℕ} + (cuts : Fin (n + 1) → Set.Icc a b) (hcuts : Monotone cuts) + (hzero : (cuts 0 : ℝ) = a) (hlast : (cuts (Fin.last n) : ℝ) = b) + {ε : ℝ} (hε : 0 ≤ ε) + (hosc : ∀ (i : Fin n) t, t ∈ Ioc (cuts i.castSucc) (cuts i.succ) → + |g t - g (cuts i.castSucc)| ≤ ε) : + |intervalStieltjesIntegral F g univ - + ∑ i : Fin n, g (cuts i.castSucc) * + (F.toFun (cuts i.succ) - F.toFun (cuts i.castSucc))| ≤ + ε * (intervalStieltjesMeasure F).variation.real univ := by + classical + let _ : IsFiniteMeasure (intervalStieltjesMeasure F).variation := + BoundedVariationOn.instIsFiniteMeasureVariationVectorMeasure F.boundedVariation + let step : Set.Icc a b → ℝ := fun t ↦ ∑ i : Fin n, + (Ioc (cuts i.castSucc) (cuts i.succ)).indicator (fun _ ↦ g (cuts i.castSucc)) t + have hstep : (intervalStieltjesMeasure F).Integrable step := by + apply MeasureTheory.integrable_finsetSum + intro i _ + exact (MeasureTheory.integrable_const _).indicator measurableSet_Ioc + have heval : intervalStieltjesIntegral F step univ = + ∑ i : Fin n, g (cuts i.castSucc) * + (F.toFun (cuts i.succ) - F.toFun (cuts i.castSucc)) := + intervalStieltjesIntegral_sum_indicator_Ioc (ι := Fin n) F Finset.univ + (fun i ↦ cuts i.castSucc) (fun i ↦ cuts i.succ) + (fun i ↦ g (cuts i.castSucc)) (fun i _ ↦ hcuts (Fin.castSucc_le_succ i)) + rw [← heval] + apply intervalStieltjesIntegral_sub_le_of_abs_sub_le F + (F.integrable_of_continuous hg) hstep hε + have hatom : (intervalStieltjesMeasure F).variation {cuts 0} = 0 := by + rw [VectorMeasure.variation_apply_singleton] + have hz : intervalStieltjesMeasure F {cuts 0} = 0 := + BoundedVariationOn.vectorMeasure_singleton_eq_zero_of_continuous + F.boundedVariation hF _ + simp [hz] + have hae : ∀ᵐ t ∂(intervalStieltjesMeasure F).variation, t ≠ cuts 0 := by + rw [ae_iff] + have hset : {x : Set.Icc a b | ¬x ≠ cuts 0} = {cuts 0} := by + ext x + simp + rw [hset] + exact hatom + filter_upwards [hae] with t ht + have htcell : t ∈ ⋃ i : Fin n, Ioc (cuts i.castSucc) (cuts i.succ) := by + rw [hcuts.iUnion_Ioc_fin] + refine ⟨lt_of_le_of_ne ?_ (Ne.symm ht), ?_⟩ + · change (cuts 0 : ℝ) ≤ (t : ℝ) + simpa [hzero] using t.property.1 + · change (t : ℝ) ≤ (cuts (Fin.last n) : ℝ) + simpa [hlast] using t.property.2 + obtain ⟨i, hi⟩ := Set.mem_iUnion.mp htcell + have hvalue : step t = g (cuts i.castSucc) := by + dsimp [step] + rw [Finset.sum_eq_single i] + · exact Set.indicator_of_mem hi _ + · intro j _ hji + apply Set.indicator_of_notMem + intro hj + rcases lt_or_gt_of_ne hji with hji | hij + · have hji' : j.succ ≤ i.castSucc := by simpa using Nat.succ_le_of_lt hji + exact (not_lt_of_ge (hj.2.trans (hcuts hji'))) hi.1 + · have hij' : i.succ ≤ j.castSucc := by simpa using Nat.succ_le_of_lt hij + exact (not_lt_of_ge (hi.2.trans (hcuts hij'))) hj.1 + · simp + rw [hvalue] + exact hosc i t hi + +/-- Sufficiently fine partitions approximate a continuous Stieltjes integrand uniformly. -/ +theorem exists_mesh_bound_intervalStieltjesIntegral_sub_sum + {a b : ℝ} (F : RightContinuousIntervalBV a b) (hF : Continuous F.toFun) + {g : Set.Icc a b → ℝ} (hg : Continuous g) {ε : ℝ} (hε : 0 < ε) : + ∃ δ > 0, ∀ {n : ℕ} (cuts : Fin (n + 1) → Set.Icc a b), + Monotone cuts → (cuts 0 : ℝ) = a → (cuts (Fin.last n) : ℝ) = b → + (∀ i : Fin n, (cuts i.succ : ℝ) - (cuts i.castSucc : ℝ) < δ) → + |intervalStieltjesIntegral F g univ - + ∑ i : Fin n, g (cuts i.castSucc) * + (F.toFun (cuts i.succ) - F.toFun (cuts i.castSucc))| ≤ + ε * (intervalStieltjesMeasure F).variation.real univ := by + obtain ⟨δ, hδ, hmod⟩ := Metric.uniformContinuous_iff.mp + (CompactSpace.uniformContinuous_of_continuous hg) ε hε + refine ⟨δ, hδ, fun cuts hcuts hzero hlast hmesh ↦ ?_⟩ + apply intervalStieltjesIntegral_sub_sum_le_of_oscillation F hF hg cuts hcuts hzero hlast + hε.le + intro i t ht + have hdist : dist t (cuts i.castSucc) < δ := by + rw [Subtype.dist_eq, Real.dist_eq, abs_of_nonneg + (sub_nonneg.mpr (show (cuts i.castSucc : ℝ) ≤ (t : ℝ) from ht.1.le))] + exact (sub_le_sub_right (show (t : ℝ) ≤ (cuts i.succ : ℝ) from ht.2) _).trans_lt + (hmesh i) + simpa only [Real.dist_eq] using (hmod hdist).le + +/-- Left-endpoint Stieltjes sums converge along any family of partitions whose mesh +tends to zero. -/ +theorem tendsto_stieltjesSum_of_mesh_tendsto_zero + {a b : ℝ} (F : RightContinuousIntervalBV a b) (hF : Continuous F.toFun) + {g : Set.Icc a b → ℝ} (hg : Continuous g) (N : ℕ → ℕ) + (cuts : ∀ k, Fin (N k + 1) → Set.Icc a b) + (hcuts : ∀ k, Monotone (cuts k)) + (hzero : ∀ k, (cuts k 0 : ℝ) = a) + (hlast : ∀ k, (cuts k (Fin.last (N k)) : ℝ) = b) + (hmesh : ∀ δ > 0, ∀ᶠ k in Filter.atTop, ∀ i : Fin (N k), + (cuts k i.succ : ℝ) - (cuts k i.castSucc : ℝ) < δ) : + Filter.Tendsto (fun k ↦ ∑ i : Fin (N k), g (cuts k i.castSucc) * + (F.toFun (cuts k i.succ) - F.toFun (cuts k i.castSucc))) + Filter.atTop (nhds (intervalStieltjesIntegral F g univ)) := by + rw [Metric.tendsto_nhds] + intro ε hε + set V := (intervalStieltjesMeasure F).variation.real univ with hVdef + have hV : 0 ≤ V := measureReal_nonneg + have hpos : 0 < ε / (V + 1) := div_pos hε (by positivity) + obtain ⟨δ, hδ, happrox⟩ := + exists_mesh_bound_intervalStieltjesIntegral_sub_sum F hF hg hpos + filter_upwards [hmesh δ hδ] with k hk + have hbound := happrox (cuts k) (hcuts k) (hzero k) (hlast k) hk + rw [Real.dist_eq, abs_sub_comm] + apply hbound.trans_lt + have hcancel : ε / (V + 1) * (V + 1) = ε := + div_mul_cancel₀ ε (by positivity) + change ε / (V + 1) * V < ε + nlinarith + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Stieltjes / Shift +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped Topology + +namespace MovingSofa + +/-- Translate a continuous interval-BV representative and its Stieltjes measure. -/ +theorem exists_intervalBV_shift_add {a b c : ℝ} (hab : a ≤ b) + (f : RightContinuousIntervalBV (a + c) (b + c)) (hfc : Continuous f.toFun) : + ∃ g : RightContinuousIntervalBV a b, + (∀ t, g.toFun t = f.toFun + ⟨(t : ℝ) + c, by constructor <;> linarith [t.property.1, t.property.2]⟩) ∧ + ∀ E : Set (Icc a b), MeasurableSet E → + intervalStieltjesMeasure g E = intervalStieltjesMeasure f + ((fun t : Icc a b ↦ + ⟨(t : ℝ) + c, by constructor <;> linarith [t.property.1, t.property.2]⟩) '' E) := by + let φ : Icc a b → Icc (a + c) (b + c) := fun t ↦ + ⟨(t : ℝ) + c, by constructor <;> linarith [t.property.1, t.property.2]⟩ + let ψ : Icc (a + c) (b + c) → Icc a b := fun t ↦ + ⟨(t : ℝ) - c, by constructor <;> linarith [t.property.1, t.property.2]⟩ + have hφc : Continuous φ := (continuous_subtype_val.add_const c).subtype_mk _ + have hψc : Continuous ψ := (continuous_subtype_val.sub continuous_const).subtype_mk _ + have hφm : Monotone φ := fun x y hxy ↦ by + change (x : ℝ) + c ≤ (y : ℝ) + c + linarith [show (x : ℝ) ≤ (y : ℝ) from hxy] + have hφs : Function.Surjective φ := by + intro y + refine ⟨ψ y, ?_⟩ + apply Subtype.ext + simp [φ, ψ] + have hφi : Function.Injective φ := by + intro x y hxy + apply Subtype.ext + simpa [φ] using congrArg Subtype.val hxy + let e : Icc a b ≃ₜ Icc (a + c) (b + c) := + { toFun := φ + invFun := ψ + left_inv := fun x ↦ by apply Subtype.ext; simp [φ, ψ] + right_inv := fun x ↦ by apply Subtype.ext; simp [φ, ψ] + continuous_toFun := hφc + continuous_invFun := hψc } + let hgbv := BoundedVariationOn.comp_monotone_surjective_Icc + (by linarith : a + c ≤ b + c) + f.boundedVariation hφm hφs + let g : RightContinuousIntervalBV a b := + { toFun := f.toFun ∘ φ + boundedVariation := hgbv + right_continuous := fun t ↦ + (hfc.comp hφc).continuousAt.continuousWithinAt } + refine ⟨g, fun _ ↦ rfl, ?_⟩ + intro E hE + have hmap := BoundedVariationOn.vectorMeasure_map_comp_monotone_surjective_Icc + (by linarith : a + c ≤ b + c) hab f.boundedVariation hfc hφc hφm hφs + have hφE : MeasurableSet (φ '' E) := e.measurableEmbedding.measurableSet_image' hE + change hgbv.vectorMeasure E = f.boundedVariation.vectorMeasure (φ '' E) + rw [← hmap, VectorMeasure.map_apply _ hφc.measurable hφE, + hφi.preimage_image] + +/-- Specialize interval translation to an interval starting at zero. -/ +theorem exists_intervalBV_shift_from_zero {b c : ℝ} (hb : 0 ≤ b) + (f : RightContinuousIntervalBV (0 + c) (b + c)) (hfc : Continuous f.toFun) : + ∃ g : RightContinuousIntervalBV 0 b, + (∀ t, g.toFun t = f.toFun + ⟨(t : ℝ) + c, by constructor <;> linarith [t.property.1, t.property.2]⟩) ∧ + ∀ E : Set (Icc 0 b), MeasurableSet E → + intervalStieltjesMeasure g E = intervalStieltjesMeasure f + ((fun t : Icc 0 b ↦ + ⟨(t : ℝ) + c, by constructor <;> linarith [t.property.1, t.property.2]⟩) '' E) := by + exact exists_intervalBV_shift_add (a := 0) (b := b) (c := c) hb f hfc + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Basic +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +instance angleMeasurableSpace : MeasurableSpace Real.Angle := borel Real.Angle + +instance angleBorelSpace : BorelSpace Real.Angle := ⟨rfl⟩ + +/-- An exterior normal direction at a point of a convex body. -/ +def IsExteriorNormal (K : ConvexBody Point) (p : Point) (a : Real.Angle) : Prop := + ∀ q ∈ (K : Set Point), inner ℝ (q - p) (normalVector a) ≤ 0 + +/-- Boundary points with exactly one exterior unit normal. -/ +def regularBoundary (K : ConvexBody Point) : Set Point := + {p | p ∈ frontier (K : Set Point) ∧ ∃! a, IsExteriorNormal K p a} + +/-- The unique exterior normal at regular points, extended by zero elsewhere. -/ +def exteriorNormalAngle (K : ConvexBody Point) (p : Point) : Real.Angle := by + classical + exact if h : ∃! a, IsExteriorNormal K p a then h.exists.choose else 0 + +/-- A nontrivial segment presentation and a perpendicular angular direction. -/ +def IsSegmentPresentation (K : ConvexBody Point) (d : Point × Point × Real.Angle) : Prop := + d.1 ≠ d.2.1 ∧ (K : Set Point) = segment ℝ d.1 d.2.1 ∧ + inner ℝ (d.2.1 - d.1) (normalVector d.2.2) = 0 + +/-- Surface measure in angular coordinates, including point and segment bodies. -/ +def surfaceAreaMeasure (K : ConvexBody Point) : Measure Real.Angle := by + classical + exact if (K : Set Point).Subsingleton then 0 + else if h : ∃ d, IsSegmentPresentation K d then + let d := h.choose + ENNReal.ofReal (dist d.1 d.2.1) • + (Measure.dirac d.2.2 + Measure.dirac (d.2.2 + ((Real.pi : ℝ) : Real.Angle))) + else + Measure.map (exteriorNormalAngle K) + ((Measure.hausdorffMeasure 1).restrict (regularBoundary K)) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Exterior Normal +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open Set + +/-- Every frontier point of a convex body with nonempty interior admits an exterior unit normal. -/ +theorem exists_isExteriorNormal_of_mem_frontier + (K : ConvexBody Point) (hK : (interior (K : Set Point)).Nonempty) + {p : Point} (hp : p ∈ frontier (K : Set Point)) : + ∃ a, IsExteriorNormal K p a := by + have hpnot : p ∉ interior (K : Set Point) := by + have hpK : p ∈ K := by + change p ∈ (K : Set Point) + rw [← K.isClosed.closure_eq] + exact frontier_subset_closure hp + exact (mem_frontier_iff_notMem_interior hpK).mp hp + obtain ⟨f, hf⟩ := geometric_hahn_banach_point_open K.convex.interior isOpen_interior hpnot + let fc : Point →L[ℝ] ℝ := f.toContinuousLinearMap + have hfne : fc ≠ 0 := by + obtain ⟨q, hq⟩ := hK + intro hzero + have h := hf q hq + have hfp : fc p = 0 := by rw [hzero]; rfl + have hfq : fc q = 0 := by rw [hzero]; rfl + change fc p < fc q at h + linarith + let w : Point := -(InnerProductSpace.toDual ℝ Point).symm fc + have hw : w ≠ 0 := by + intro hzero + apply hfne + apply (InnerProductSpace.toDual ℝ Point).symm.injective + simpa using neg_eq_zero.mp hzero + obtain ⟨a, ha⟩ := exists_angle_normalVector_eq (u := ‖w‖⁻¹ • w) (by + rw [norm_smul, norm_inv, Real.norm_eq_abs, abs_norm, + inv_mul_cancel₀ (norm_ne_zero_iff.mpr hw)]) + refine ⟨a, ?_⟩ + rw [IsExteriorNormal, ha] + intro q hq + have hclosed : IsClosed {q : Point | fc p ≤ fc q} := + isClosed_le continuous_const fc.continuous + have hinterior : interior (K : Set Point) ⊆ {q : Point | fc p ≤ fc q} := + fun q hq ↦ (hf q hq).le + have hsubset : (K : Set Point) ⊆ {q : Point | fc p ≤ fc q} := by + rw [← K.isClosed.closure_eq, + ← K.convex.closure_interior_eq_closure_of_nonempty_interior hK] + exact closure_minimal hinterior hclosed + have hfpq := hsubset hq + rw [inner_smul_right, inner_neg_right, real_inner_comm, + InnerProductSpace.toDual_symm_apply] + dsimp only [fc] at hfpq ⊢ + rw [map_sub] + exact mul_nonpos_of_nonneg_of_nonpos (inv_nonneg.mpr (norm_nonneg w)) + (neg_nonpos.mpr (sub_nonneg.mpr hfpq)) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Graph Definitions +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Project the convex body horizontally after translating and changing orthonormal frame. -/ +def horizontalProjection (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) : Set ℝ := + (fun p : Point ↦ e (p - o) 0) '' (K : Set Point) + +/-- The infimum and supremum of the body’s horizontal projection in the chosen frame. -/ +def horizontalBounds (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) : ℝ × ℝ := + (sInf (horizontalProjection K o e), sSup (horizontalProjection K o e)) + +/-- The supremum of the body’s vertical section at a given horizontal coordinate. -/ +def upperGraphHeight (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) (x : ℝ) : ℝ := + sSup {y : ℝ | o + e.symm !₂[x, y] ∈ (K : Set Point)} + +/-- The argument of a planar vector, viewed as an angle modulo a full turn. -/ +def vectorNormalAngle (p : Point) : Real.Angle := + (Complex.arg ⟨p 0, p 1⟩ : ℝ) + +/-- The normal vector associated to a nonzero planar vector is its normalization. -/ +theorem normalVector_vectorNormalAngle {p : Point} (hp : p ≠ 0) : + normalVector (vectorNormalAngle p) = ‖p‖⁻¹ • p := by + let z : ℂ := ⟨p 0, p 1⟩ + have hz : z ≠ 0 := by + intro hz + apply hp + ext i + fin_cases i + · exact congrArg Complex.re hz + · exact congrArg Complex.im hz + have hnorm : ‖z‖ = ‖p‖ := by + rw [Complex.norm_def, EuclideanSpace.norm_eq] + congr 1 + simp only [z, Complex.normSq_apply, Fin.sum_univ_two] + simp [Real.norm_eq_abs, pow_two] + ext i + fin_cases i + · simpa [vectorNormalAngle, normalVector, frame, z, hnorm, div_eq_inv_mul] using + Complex.cos_arg hz + · simpa [vectorNormalAngle, normalVector, frame, z, hnorm, div_eq_inv_mul] using + Complex.sin_arg z + +/-- Weight the upper graph by its normal direction and arc-length Jacobian. -/ +def upperGraphSurfaceIntegrand (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) (ψ : Real.Angle → ℝ) (x : ℝ) : ℝ := + ψ (vectorNormalAngle (e.symm !₂[-deriv (upperGraphHeight K o e) x, 1])) * + Real.sqrt (1 + (deriv (upperGraphHeight K o e) x) ^ 2) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Regularity +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +instance angleCompactSpace : CompactSpace Real.Angle := + AddCircle.homeomorphCircle'.symm.compactSpace + +/-- The unit normal depends continuously on its angle. -/ +theorem continuous_normalVector_angle : + Continuous normalVector := by + let c : Real.Angle → (i : Fin 2) → ℝ := fun t i ↦ + Fin.cases t.cos (fun _ ↦ t.sin) i + have hc : Continuous c := by + apply continuous_pi + intro i + fin_cases i + · exact Real.Angle.continuous_cos + · exact Real.Angle.continuous_sin + have heq : normalVector = (fun t ↦ WithLp.toLp 2 (c t)) := by + funext t + ext i + fin_cases i <;> rfl + rw [heq] + exact (PiLp.continuous_toLp (2 : ENNReal) (fun _ : Fin 2 ↦ ℝ)).comp hc + +private theorem isClosed_isExteriorNormal (K : ConvexBody Point) : + IsClosed {z : Point × Real.Angle | IsExteriorNormal K z.1 z.2} := by + change IsClosed {z : Point × Real.Angle | + ∀ q ∈ (K : Set Point), inner ℝ (q - z.1) (normalVector z.2) ≤ 0} + simp only [Set.ofPred_forall] + apply isClosed_iInter + intro q + apply isClosed_iInter + intro _ + apply isClosed_le + · exact (continuous_const.sub continuous_fst).inner + (continuous_normalVector_angle.comp continuous_snd) + · exact continuous_const + +private def normalGraph (K : ConvexBody Point) : Set (Point × Real.Angle) := + {z | z.1 ∈ frontier (K : Set Point) ∧ IsExteriorNormal K z.1 z.2} + +private theorem isCompact_normalGraph (K : ConvexBody Point) : + IsCompact (normalGraph K) := by + have hfront : IsCompact (frontier (K : Set Point)) := by + apply K.isCompact.of_isClosed_subset isClosed_frontier + simpa only [K.isClosed.closure_eq] using + (frontier_subset_closure : frontier (K : Set Point) ⊆ closure (K : Set Point)) + have hclosed : IsClosed (normalGraph K) := by + exact (isClosed_frontier.preimage continuous_fst).inter (isClosed_isExteriorNormal K) + apply (hfront.prod isCompact_univ).of_isClosed_subset + · exact hclosed + · rintro ⟨p, a⟩ ⟨hp, _⟩ + exact ⟨hp, Set.mem_univ a⟩ + +private def normalDomain (K : ConvexBody Point) : Set Point := + Prod.fst '' normalGraph K + +private theorem isCompact_normalDomain (K : ConvexBody Point) : + IsCompact (normalDomain K) := + (isCompact_normalGraph K).image continuous_fst + +private def separatedNormalPairs (K : ConvexBody Point) (n : ℕ) : + Set (Point × (Real.Angle × Real.Angle)) := + {z | z.1 ∈ frontier (K : Set Point) ∧ + IsExteriorNormal K z.1 z.2.1 ∧ IsExteriorNormal K z.1 z.2.2 ∧ + (1 : ℝ) / (n + 1) ≤ dist z.2.1 z.2.2} + +private theorem isCompact_separatedNormalPairs (K : ConvexBody Point) (n : ℕ) : + IsCompact (separatedNormalPairs K n) := by + have hfront : IsCompact (frontier (K : Set Point)) := by + apply K.isCompact.of_isClosed_subset isClosed_frontier + simpa only [K.isClosed.closure_eq] using + (frontier_subset_closure : frontier (K : Set Point) ⊆ closure (K : Set Point)) + have hrel₁ : IsClosed {z : Point × (Real.Angle × Real.Angle) | + IsExteriorNormal K z.1 z.2.1} := + (isClosed_isExteriorNormal K).preimage + (continuous_fst.prodMk (continuous_fst.comp continuous_snd)) + have hrel₂ : IsClosed {z : Point × (Real.Angle × Real.Angle) | + IsExteriorNormal K z.1 z.2.2} := + (isClosed_isExteriorNormal K).preimage + (continuous_fst.prodMk (continuous_snd.comp continuous_snd)) + have hsep : IsClosed {z : Point × (Real.Angle × Real.Angle) | + (1 : ℝ) / (n + 1) ≤ dist z.2.1 z.2.2} := by + exact isClosed_le continuous_const + ((continuous_fst.comp continuous_snd).dist (continuous_snd.comp continuous_snd)) + have hfclosed : IsClosed {z : Point × (Real.Angle × Real.Angle) | + z.1 ∈ frontier (K : Set Point)} := + isClosed_frontier.preimage continuous_fst + have hclosed : IsClosed (separatedNormalPairs K n) := by + have h := ((hfclosed.inter hrel₁).inter hrel₂).inter hsep + simpa only [separatedNormalPairs, Set.inter_def, Set.mem_ofPred_eq, and_assoc] using h + apply (hfront.prod (isCompact_univ.prod isCompact_univ)).of_isClosed_subset hclosed + rintro ⟨p, a, b⟩ ⟨hp, _⟩ + exact ⟨hp, Set.mem_univ _, Set.mem_univ _⟩ + +private def separatedNormalPoints (K : ConvexBody Point) (n : ℕ) : Set Point := + Prod.fst '' separatedNormalPairs K n + +private theorem isCompact_separatedNormalPoints (K : ConvexBody Point) (n : ℕ) : + IsCompact (separatedNormalPoints K n) := + (isCompact_separatedNormalPairs K n).image continuous_fst + +private theorem regularBoundary_eq_normalDomain_sdiff_iUnion (K : ConvexBody Point) : + regularBoundary K = normalDomain K \ ⋃ n, separatedNormalPoints K n := by + ext p + constructor + · rintro ⟨hp, a, ha, hua⟩ + refine ⟨⟨(p, a), ⟨hp, ha⟩, rfl⟩, ?_⟩ + intro hnonunique + obtain ⟨n, hn⟩ := Set.mem_iUnion.mp hnonunique + obtain ⟨⟨q, b, c⟩, ⟨_, hb, hc, hdist⟩, rfl⟩ := hn + rw [hua b hb, hua c hc, dist_self] at hdist + have hpos : 0 < (1 : ℝ) / (n + 1) := by positivity + linarith + · rintro ⟨hdom, hnot⟩ + obtain ⟨⟨q, a⟩, ⟨hp, ha⟩, hqp⟩ := hdom + change q = p at hqp + subst q + refine ⟨hp, a, ha, ?_⟩ + intro b hb + by_contra hba + have hdpos : 0 < dist a b := dist_pos.mpr (Ne.symm hba) + obtain ⟨n, hn⟩ := exists_nat_one_div_lt hdpos + apply hnot + apply Set.mem_iUnion.mpr + refine ⟨n, ⟨(p, (a, b)), ?_, rfl⟩⟩ + exact ⟨hp, ha, hb, hn.le⟩ + +/-- Points with a unique exterior normal form a Borel set. -/ +theorem measurableSet_regularBoundary (K : ConvexBody Point) : + MeasurableSet (regularBoundary K) := by + rw [regularBoundary_eq_normalDomain_sdiff_iUnion] + exact (isCompact_normalDomain K).measurableSet.diff + (MeasurableSet.iUnion fun n ↦ (isCompact_separatedNormalPoints K n).measurableSet) + +/-- The exterior normal varies continuously on the regular boundary. -/ +theorem continuousOn_exteriorNormalAngle_regularBoundary (K : ConvexBody Point) : + ContinuousOn (exteriorNormalAngle K) (regularBoundary K) := by + have hnormal (p : Point) (hp : p ∈ regularBoundary K) : + IsExteriorNormal K p (exteriorNormalAngle K p) := by + rcases hp.2 with ⟨a, ha, hua⟩ + dsimp only [exteriorNormalAngle] + split + · rename_i h + exact h.exists.choose_spec + · rename_i h + exact (h ⟨a, ha, hua⟩).elim + have hunique (p : Point) (hp : p ∈ regularBoundary K) (a : Real.Angle) + (ha : IsExteriorNormal K p a) : a = exteriorNormalAngle K p := by + rcases hp.2 with ⟨b, hb, hub⟩ + exact (hub a ha).trans (hub _ (hnormal p hp)).symm + rw [continuousOn_iff_continuous_domRestrict] + apply continuous_of_isClosed_graph + have hgraph : Function.graph ((regularBoundary K).domRestrict (exteriorNormalAngle K)) = + {z : (regularBoundary K) × Real.Angle | IsExteriorNormal K z.1 z.2} := by + ext z + constructor + · intro hz + change exteriorNormalAngle K z.1 = z.2 at hz + change IsExteriorNormal K z.1 z.2 + rw [← hz] + exact hnormal z.1 z.1.2 + · intro hz + change exteriorNormalAngle K z.1 = z.2 + exact (hunique z.1 z.1.2 z.2 hz).symm + rw [hgraph] + exact (isClosed_isExteriorNormal K).preimage + ((continuous_subtype_val.comp continuous_fst).prodMk continuous_snd) + +/-- The exterior normal is measurable for any measure restricted to the regular boundary. -/ +theorem aemeasurable_exteriorNormalAngle_restrict_regularBoundary + (K : ConvexBody Point) (μ : Measure Point) : + AEMeasurable (exteriorNormalAngle K) (μ.restrict (regularBoundary K)) := + aemeasurable_restrict_of_measurable_subtype (measurableSet_regularBoundary K) + (continuousOn_exteriorNormalAngle_regularBoundary K).domRestrict.measurable + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Segment +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- Two angular unit normals perpendicular to a nonzero planar vector are equal or antipodal. -/ +theorem normalVector_eq_or_eq_add_pi_of_orthogonal + {v : Point} (hv : v ≠ 0) {s t : Real.Angle} + (hvs : inner ℝ v (normalVector s) = 0) + (hvt : inner ℝ v (normalVector t) = 0) : s = t ∨ s = t + (Real.pi : Real.Angle) := by + let o : Orientation ℝ Point (Fin 2) := + (EuclideanSpace.basisFun (Fin 2) ℝ).toBasis.orientation + have hnorm (a : Real.Angle) : ‖normalVector a‖ = 1 := by + induction a using Real.Angle.induction_on with + | _ a => + rw [EuclideanSpace.norm_eq] + simp [normalVector, frame, Fin.sum_univ_two] + rcases EuclideanGeometry.eq_or_eq_neg_of_unit_orthogonal o hv (hnorm s) (hnorm t) hvs hvt with + h | h + · left + induction s using Real.Angle.induction_on with + | _ s => + induction t using Real.Angle.induction_on with + | _ t => + apply Real.Angle.cos_sin_inj + · exact congrFun (congrArg WithLp.ofLp h) 0 + · exact congrFun (congrArg WithLp.ofLp h) 1 + · right + induction s using Real.Angle.induction_on with + | _ s => + induction t using Real.Angle.induction_on with + | _ t => + apply Real.Angle.cos_sin_inj + · have h0 := congrFun (congrArg WithLp.ofLp h) 0 + simpa [normalVector, frame, Real.cos_add_pi] using h0 + · have h1 := congrFun (congrArg WithLp.ofLp h) 1 + simpa [normalVector, frame, Real.sin_add_pi] using h1 + +private theorem dirac_add_antipode_eq_of_orthogonal + {v : Point} (hv : v ≠ 0) {s t : Real.Angle} + (hvs : inner ℝ v (normalVector s) = 0) + (hvt : inner ℝ v (normalVector t) = 0) : + Measure.dirac s + Measure.dirac (s + (Real.pi : Real.Angle)) = + Measure.dirac t + Measure.dirac (t + (Real.pi : Real.Angle)) := by + rcases normalVector_eq_or_eq_add_pi_of_orthogonal hv hvs hvt with h | h + · rw [h] + · rw [h] + have hpi : (t + (Real.pi : Real.Angle)) + (Real.pi : Real.Angle) = t := by + rw [add_assoc, Real.Angle.coe_pi_add_coe_pi, add_zero] + rw [hpi, add_comm] + +/-- The atomic segment measure is independent of its segment presentation. -/ +theorem segmentPresentation_measure_eq (K : ConvexBody Point) + {d c : Point × Point × Real.Angle} + (hd : IsSegmentPresentation K d) (hc : IsSegmentPresentation K c) : + ENNReal.ofReal (dist d.1 d.2.1) • + (Measure.dirac d.2.2 + Measure.dirac (d.2.2 + (Real.pi : Real.Angle))) = + ENNReal.ofReal (dist c.1 c.2.1) • + (Measure.dirac c.2.2 + Measure.dirac (c.2.2 + (Real.pi : Real.Angle))) := by + have hseg : segment ℝ d.1 d.2.1 = segment ℝ c.1 c.2.1 := hd.2.1.symm.trans hc.2.1 + have hlen : dist d.1 d.2.1 = dist c.1 c.2.1 := EuclideanGeometry.dist_eq_of_segment_eq hseg + have hcn : inner ℝ (d.2.1 - d.1) (normalVector c.2.2) = 0 := + EuclideanGeometry.inner_direction_eq_zero_of_segment_eq hseg hc.2.2 + rw [hlen, dirac_add_antipode_eq_of_orthogonal (sub_ne_zero.mpr hd.1.symm) hd.2.2 hcn] + +/-- A singleton convex body has zero surface measure. -/ +theorem surfaceAreaMeasure_eq_zero_of_subsingleton (K : ConvexBody Point) + (hK : (K : Set Point).Subsingleton) : + surfaceAreaMeasure K = 0 := by + simp [surfaceAreaMeasure, hK] + +private theorem surfaceAreaMeasure_eq_chosenSegment (K : ConvexBody Point) + (hK : ¬(K : Set Point).Subsingleton) (hseg : ∃ d, IsSegmentPresentation K d) : + surfaceAreaMeasure K = + ENNReal.ofReal (dist hseg.choose.1 hseg.choose.2.1) • + (Measure.dirac hseg.choose.2.2 + + Measure.dirac (hseg.choose.2.2 + ((Real.pi : ℝ) : Real.Angle))) := by + simp [surfaceAreaMeasure, hK, hseg] + +/-- A nondegenerate segment presentation makes the represented convex body nonsingleton. -/ +theorem not_subsingleton_of_isSegmentPresentation (K : ConvexBody Point) + {d : Point × Point × Real.Angle} (hd : IsSegmentPresentation K d) : + ¬(K : Set Point).Subsingleton := by + intro hK + apply hd.1 + apply hK + · rw [hd.2.1] + exact left_mem_segment ℝ _ _ + · rw [hd.2.1] + exact right_mem_segment ℝ _ _ + +/-- The surface measure of a segment is its length times the two normal atoms. -/ +theorem surfaceAreaMeasure_eq_segmentPresentation (K : ConvexBody Point) + (d : Point × Point × Real.Angle) (hd : IsSegmentPresentation K d) : + surfaceAreaMeasure K = ENNReal.ofReal (dist d.1 d.2.1) • + (Measure.dirac d.2.2 + Measure.dirac (d.2.2 + (Real.pi : Real.Angle))) := by + let hseg : ∃ c, IsSegmentPresentation K c := ⟨d, hd⟩ + rw [surfaceAreaMeasure_eq_chosenSegment K + (not_subsingleton_of_isSegmentPresentation K hd) hseg] + exact segmentPresentation_measure_eq K hseg.choose_spec hd + +/-- The surface area measure of a singleton convex body is finite. -/ +theorem isFiniteMeasure_surfaceAreaMeasure_of_subsingleton (K : ConvexBody Point) + (hK : (K : Set Point).Subsingleton) : + IsFiniteMeasure (surfaceAreaMeasure K) := by + rw [surfaceAreaMeasure_eq_zero_of_subsingleton K hK] + infer_instance + +/-- The surface area measure of a convex body with a segment presentation is finite. -/ +theorem isFiniteMeasure_surfaceAreaMeasure_of_segmentPresentation (K : ConvexBody Point) + {d : Point × Point × Real.Angle} (hd : IsSegmentPresentation K d) : + IsFiniteMeasure (surfaceAreaMeasure K) := by + rw [surfaceAreaMeasure_eq_segmentPresentation K d hd] + exact (Measure.dirac d.2.2 + + Measure.dirac (d.2.2 + ((Real.pi : ℝ) : Real.Angle))).smul_finite + ENNReal.ofReal_ne_top + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Segment Faces +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +private theorem not_both_mem_short_angleArc {E : Set Real.Angle} {a b : ℝ} + (hab : a ≤ b) (hshort : b < a + Real.pi) + (hE : E ⊆ (fun t : ℝ ↦ (t : Real.Angle)) '' Set.Icc a b) + (t : Real.Angle) : ¬(t ∈ E ∧ t + (Real.pi : Real.Angle) ∈ E) := by + rintro ⟨ht, htpi⟩ + obtain ⟨s, hs, hst⟩ := hE ht + obtain ⟨u, hu, hut⟩ := hE htpi + have hang : (u : Real.Angle) = ((s + Real.pi : ℝ) : Real.Angle) := by + calc + (u : Real.Angle) = t + (Real.pi : Real.Angle) := hut + _ = (s : Real.Angle) + (Real.pi : Real.Angle) := by rw [← hst] + _ = ((s + Real.pi : ℝ) : Real.Angle) := Real.Angle.coe_add _ _ |>.symm + obtain ⟨k, hk⟩ := Real.Angle.angle_eq_iff_two_pi_dvd_sub.mp hang + have hlow : -(2 * Real.pi) < u - (s + Real.pi) := by + linarith [hs.1, hs.2, hu.1, hu.2] + have hupp : u - (s + Real.pi) < 0 := by + linarith [hs.1, hs.2, hu.1, hu.2] + rw [hk] at hlow hupp + have hkneg : (k : ℝ) < 0 := by nlinarith [Real.pi_pos] + have hkgt : (-1 : ℝ) < k := by nlinarith [Real.pi_pos] + rw [← Int.cast_zero] at hkneg + have hcast_neg_one : (((-1 : ℤ) : ℝ)) = -1 := by norm_num + rw [← hcast_neg_one] at hkgt + have hkneg' : k < 0 := Int.cast_lt.mp hkneg + have hkgt' : (-1 : ℤ) < k := Int.cast_lt.mp hkgt + omega + +/-- A normal perpendicular to a segment exposes the whole segment. -/ +theorem exposedEdge_eq_segment_of_orthogonal (K : ConvexBody Point) + (d : Point × Point × Real.Angle) (hd : IsSegmentPresentation K d) + (t : Real.Angle) (ht : inner ℝ (d.2.1 - d.1) (normalVector t) = 0) : + exposedEdge K t = (K : Set Point) := by + have hfst : d.1 ∈ K := by + change d.1 ∈ (K : Set Point) + rw [hd.2.1] + exact left_mem_segment ℝ _ _ + have hconst : ∀ p ∈ (K : Set Point), + inner ℝ p (normalVector t) = inner ℝ d.1 (normalVector t) := by + intro p hp + rw [hd.2.1, segment_eq_image'] at hp + obtain ⟨u, hu, rfl⟩ := hp + rw [inner_add_left, inner_smul_left, ht, mul_zero, add_zero] + have hsupport : supportValue K t = inner ℝ d.1 (normalVector t) := by + apply le_antisymm + · apply csSup_le (K.nonempty.image _) + rintro _ ⟨p, hp, rfl⟩ + exact (hconst p hp).le + · exact inner_le_supportValue K hfst t + ext p + constructor + · exact fun hp ↦ hp.1 + · intro hp + refine ⟨hp, ?_⟩ + change inner ℝ p (normalVector t) = supportValue K t + rw [hconst p hp, hsupport] + +private theorem exposedEdge_subset_endpoints_of_not_orthogonal (K : ConvexBody Point) + (d : Point × Point × Real.Angle) (hd : IsSegmentPresentation K d) + (t : Real.Angle) (ht : inner ℝ (d.2.1 - d.1) (normalVector t) ≠ 0) : + exposedEdge K t ⊆ {d.1, d.2.1} := by + have hfst : d.1 ∈ K := by + change d.1 ∈ (K : Set Point) + rw [hd.2.1] + exact left_mem_segment ℝ _ _ + have hsnd : d.2.1 ∈ K := by + change d.2.1 ∈ (K : Set Point) + rw [hd.2.1] + exact right_mem_segment ℝ _ _ + intro p hp + have hpK : p ∈ segment ℝ d.1 d.2.1 := by + rw [← hd.2.1] + exact hp.1 + rw [segment_eq_image'] at hpK + obtain ⟨u, hu, rfl⟩ := hpK + have hx := inner_le_supportValue K hfst t + have hy := inner_le_supportValue K hsnd t + rw [← hp.2] at hx hy + simp only [inner_add_left, inner_smul_left] at hx hy + let c := inner ℝ (d.2.1 - d.1) (normalVector t) + change inner ℝ d.1 (normalVector t) ≤ + inner ℝ d.1 (normalVector t) + u * c at hx + change inner ℝ d.2.1 (normalVector t) ≤ + inner ℝ d.1 (normalVector t) + u * c at hy + have hdiff : inner ℝ d.2.1 (normalVector t) = + inner ℝ d.1 (normalVector t) + c := by + dsimp only [c] + rw [inner_sub_left] + ring + rw [hdiff] at hy + have hc : c ≠ 0 := ht + rcases lt_or_gt_of_ne hc with hcneg | hcpos + · have hu0 : u = 0 := by + apply le_antisymm _ hu.1 + by_contra hnot + have hupos : 0 < u := lt_of_not_ge hnot + nlinarith + simp [hu0] + · have hu1 : u = 1 := by + apply le_antisymm hu.2 + by_contra hnot + have hult : u < 1 := lt_of_not_ge hnot + nlinarith + simp [hu1] + +/-- The face-union formula for a segment on an angular arc shorter than a half-turn. -/ +theorem surfaceAreaMeasure_face_union_of_segmentPresentation + (K : ConvexBody Point) (d : Point × Point × Real.Angle) + (hd : IsSegmentPresentation K d) (E : Set Real.Angle) (hE : MeasurableSet E) + {a b : ℝ} (hab : a ≤ b) (hshort : b < a + Real.pi) + (hsubset : E ⊆ (fun t : ℝ ↦ (t : Real.Angle)) '' Set.Icc a b) : + surfaceAreaMeasure K E = + Measure.hausdorffMeasure 1 (⋃ t ∈ E, exposedEdge K t) := by + have hnotboth := not_both_mem_short_angleArc hab hshort hsubset d.2.2 + have hnormalPi : + normalVector (d.2.2 + (Real.pi : Real.Angle)) = -normalVector d.2.2 := by + induction d.2.2 using Real.Angle.induction_on with + | _ t => simpa only [← Real.Angle.coe_add] using normalVector_add_pi t + have hpiorth : + inner ℝ (d.2.1 - d.1) + (normalVector (d.2.2 + (Real.pi : Real.Angle))) = 0 := by + rw [hnormalPi, inner_neg_right, hd.2.2, neg_zero] + by_cases hn : d.2.2 ∈ E + · have hnpi : d.2.2 + (Real.pi : Real.Angle) ∉ E := fun hnpi ↦ hnotboth ⟨hn, hnpi⟩ + have hunion : (⋃ t ∈ E, exposedEdge K t) = (K : Set Point) := by + apply Set.Subset.antisymm + · intro p hp + obtain ⟨t, ht, hpt⟩ := Set.mem_iUnion₂.mp hp + exact hpt.1 + · intro p hp + exact Set.mem_iUnion₂.mpr ⟨d.2.2, hn, by + rw [exposedEdge_eq_segment_of_orthogonal K d hd d.2.2 hd.2.2] + exact hp⟩ + rw [surfaceAreaMeasure_eq_segmentPresentation K d hd, hunion, hd.2.1] + simp [hE, hn, hnpi, edist_dist] + · by_cases hnpi : d.2.2 + (Real.pi : Real.Angle) ∈ E + · have hunion : (⋃ t ∈ E, exposedEdge K t) = (K : Set Point) := by + apply Set.Subset.antisymm + · intro p hp + obtain ⟨t, ht, hpt⟩ := Set.mem_iUnion₂.mp hp + exact hpt.1 + · intro p hp + exact Set.mem_iUnion₂.mpr ⟨d.2.2 + (Real.pi : Real.Angle), hnpi, by + rw [exposedEdge_eq_segment_of_orthogonal K d hd _ hpiorth] + exact hp⟩ + rw [surfaceAreaMeasure_eq_segmentPresentation K d hd, hunion, hd.2.1] + simp [hE, hn, hnpi, edist_dist] + · have hunion : (⋃ t ∈ E, exposedEdge K t) ⊆ {d.1, d.2.1} := by + intro p hp + obtain ⟨t, ht, hpt⟩ := Set.mem_iUnion₂.mp hp + have htorth : inner ℝ (d.2.1 - d.1) (normalVector t) ≠ 0 := by + intro hortho + rcases normalVector_eq_or_eq_add_pi_of_orthogonal + (sub_ne_zero.mpr hd.1.symm) hortho hd.2.2 with h | h + · exact hn (h ▸ ht) + · exact hnpi (h ▸ ht) + exact exposedEdge_subset_endpoints_of_not_orthogonal K d hd t htorth hpt + rw [surfaceAreaMeasure_eq_segmentPresentation K d hd] + have hzero : Measure.hausdorffMeasure 1 (⋃ t ∈ E, exposedEdge K t) = 0 := by + let _ := Measure.nullSingletonClass_hausdorff Point (by norm_num : (0 : ℝ) < 1) + exact measure_mono_null hunion + ((Set.finite_singleton d.2.1).insert d.1 |>.measure_zero _) + rw [hzero] + simp [hE, hn, hnpi] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Segment Graph +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- A singleton convex body has equal horizontal projection bounds. -/ +theorem horizontalBounds_eq_of_subsingleton (K : ConvexBody Point) + (hK : (K : Set Point).Subsingleton) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) : + (horizontalBounds K o e).1 = (horizontalBounds K o e).2 := by + obtain ⟨p, hp⟩ := K.nonempty + have hset : (K : Set Point) = {p} := + Set.eq_singleton_iff_unique_mem.mpr ⟨hp, fun x hx ↦ hK hx hp⟩ + simp [horizontalBounds, horizontalProjection, hset] + +/-- Every surface-area integral of a singleton convex body vanishes. -/ +theorem surfaceAreaMeasure_integral_eq_zero_of_subsingleton (K : ConvexBody Point) + (hK : (K : Set Point).Subsingleton) (ψ : Real.Angle → ℝ) : + (∫ t, ψ t ∂surfaceAreaMeasure K) = 0 := by + rw [surfaceAreaMeasure_eq_zero_of_subsingleton K hK] + simp + +private theorem horizontalProjection_segment (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) {a b : Point} + (hK : (K : Set Point) = segment ℝ a b) : + horizontalProjection K o e = Set.uIcc (e (a - o) 0) (e (b - o) 0) := by + rw [horizontalProjection, hK, segment_eq_image'] + calc + (fun p : Point ↦ e (p - o) 0) '' + ((fun t : ℝ ↦ a + t • (b - a)) '' Set.Icc 0 1) = + (fun t : ℝ ↦ e (a - o) 0 + t * (e (b - o) 0 - e (a - o) 0)) '' + Set.Icc 0 1 := by + rw [Set.image_image] + congr 1 + funext t + simp only [map_sub, map_add, map_smul, PiLp.add_apply, + PiLp.sub_apply, PiLp.smul_apply, smul_eq_mul] + ring + _ = segment ℝ (e (a - o) 0) (e (b - o) 0) := + (segment_eq_image' ℝ (e (a - o) 0) (e (b - o) 0)).symm + _ = Set.uIcc (e (a - o) 0) (e (b - o) 0) := segment_eq_uIcc _ _ + +private theorem horizontalBounds_segment (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) {a b : Point} + (hK : (K : Set Point) = segment ℝ a b) : + horizontalBounds K o e = + (min (e (a - o) 0) (e (b - o) 0), max (e (a - o) 0) (e (b - o) 0)) := by + rw [horizontalBounds, horizontalProjection_segment K o e hK] + simp [Set.uIcc, csInf_Icc, csSup_Icc] + +private theorem coordinate_normal_second_eq_zero_of_horizontalBounds_eq + (K : ConvexBody Point) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) + (d : Point × Point × Real.Angle) (hd : IsSegmentPresentation K d) + (hbounds : (horizontalBounds K o e).1 = (horizontalBounds K o e).2) : + e (normalVector d.2.2) 1 = 0 := by + have hb := horizontalBounds_segment K o e hd.2.1 + rw [hb] at hbounds + dsimp only at hbounds + have hx : e (d.1 - o) 0 = e (d.2.1 - o) 0 := by + have hle₁ := min_le_left (e (d.1 - o) 0) (e (d.2.1 - o) 0) + have hle₂ := min_le_right (e (d.1 - o) 0) (e (d.2.1 - o) 0) + have hge₁ := le_max_left (e (d.1 - o) 0) (e (d.2.1 - o) 0) + have hge₂ := le_max_right (e (d.1 - o) 0) (e (d.2.1 - o) 0) + linarith + have hdir0 : e (d.2.1 - d.1) 0 = 0 := by + simp only [map_sub, PiLp.sub_apply] at hx ⊢ + linarith + have hdir_ne : e (d.2.1 - d.1) 1 ≠ 0 := by + intro h + have hz : d.2.1 - d.1 = 0 := e.injective (by + simp only [map_zero] + ext i + fin_cases i + · exact hdir0 + · exact h) + exact hd.1.symm (sub_eq_zero.mp hz) + have hinner : inner ℝ (e (d.2.1 - d.1)) (e (normalVector d.2.2)) = 0 := by + rw [e.inner_map_map] + exact hd.2.2 + simp only [PiLp.inner_apply, RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, + hdir0, mul_zero, zero_add] at hinner + exact (mul_eq_zero.mp hinner).resolve_right hdir_ne + +/-- A segment with zero horizontal width contributes zero against weights supported on +normals with positive vertical coordinate. -/ +theorem segment_integral_eq_zero_of_horizontalBounds_eq + (K : ConvexBody Point) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) + (ψ : Real.Angle → ℝ) (ε : ℝ) (hε : 0 < ε) + (hsupport : ∀ t, e (normalVector t) 1 < ε → ψ t = 0) + (d : Point × Point × Real.Angle) (hd : IsSegmentPresentation K d) + (hbounds : (horizontalBounds K o e).1 = (horizontalBounds K o e).2) : + (∫ t, ψ t ∂surfaceAreaMeasure K) = 0 := by + have hn := coordinate_normal_second_eq_zero_of_horizontalBounds_eq K o e d hd hbounds + have hψn : ψ d.2.2 = 0 := hsupport d.2.2 (by linarith) + have hnpi : e (normalVector (d.2.2 + (Real.pi : Real.Angle))) 1 = 0 := by + have hv : normalVector (d.2.2 + (Real.pi : Real.Angle)) = -normalVector d.2.2 := by + induction d.2.2 using Real.Angle.induction_on with + | _ t => simpa only [← Real.Angle.coe_add] using normalVector_add_pi t + rw [hv, map_neg, PiLp.neg_apply, hn, neg_zero] + have hψnpi : ψ (d.2.2 + (Real.pi : Real.Angle)) = 0 := + hsupport _ (by rw [hnpi]; exact hε) + rw [surfaceAreaMeasure_eq_segmentPresentation K d hd] + rw [MeasureTheory.integral_smul_measure] + rw [MeasureTheory.integral_add_measure (MeasureTheory.integrable_dirac (by finiteness)) + (MeasureTheory.integrable_dirac (by finiteness))] + simp [hψn, hψnpi] + +private theorem upperGraphHeight_segment_of_lt (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) {a b : Point} + (hK : (K : Set Point) = segment ℝ a b) + (hab : e (a - o) 0 < e (b - o) 0) {x : ℝ} + (hx : x ∈ Set.Icc (e (a - o) 0) (e (b - o) 0)) : + upperGraphHeight K o e x = e (a - o) 1 + + ((x - e (a - o) 0) / (e (b - o) 0 - e (a - o) 0)) * + (e (b - o) 1 - e (a - o) 1) := by + let t := (x - e (a - o) 0) / (e (b - o) 0 - e (a - o) 0) + let y := e (a - o) 1 + t * (e (b - o) 1 - e (a - o) 1) + have ht : t ∈ Set.Icc (0 : ℝ) 1 := by + constructor + · exact div_nonneg (sub_nonneg.mpr hx.1) (sub_nonneg.mpr hab.le) + · exact (div_le_one (sub_pos.mpr hab)).mpr (by linarith [hx.2]) + have hfiber : {z : ℝ | o + e.symm !₂[x, z] ∈ (K : Set Point)} = {y} := by + ext z + rw [Set.mem_ofPred_eq, hK, segment_eq_image', Set.mem_image, Set.mem_singleton_iff] + constructor + · rintro ⟨r, hr, heq⟩ + have heq' := congrArg (fun p : Point ↦ e (p - o)) heq + have heq0 := congrFun (congrArg WithLp.ofLp heq') 0 + have heq1 := congrFun (congrArg WithLp.ofLp heq') 1 + have hrt : r = t := by + dsimp [t] + simp only [map_sub, map_add, map_smul, LinearIsometryEquiv.apply_symm_apply, + PiLp.add_apply, PiLp.sub_apply, PiLp.smul_apply, Matrix.cons_val_zero, + smul_eq_mul] at heq0 + simp at heq0 + apply (eq_div_iff (sub_ne_zero.mpr hab.ne')).mpr + simp only [map_sub, PiLp.sub_apply] + linarith + dsimp [y] + rw [← hrt] + simp only [map_sub, map_add, map_smul, LinearIsometryEquiv.apply_symm_apply, + PiLp.add_apply, PiLp.sub_apply, PiLp.smul_apply, Matrix.cons_val_one, + smul_eq_mul] at heq1 + simp at heq1 + simp only [map_sub, PiLp.sub_apply] + linarith + · intro hzy + subst z + refine ⟨t, ht, ?_⟩ + apply e.injective + ext i + fin_cases i + · have hdx : e b 0 - e a 0 ≠ 0 := by + simp only [map_sub, PiLp.sub_apply] at hab + linarith + simp only [map_add, map_sub, LinearIsometryEquiv.apply_symm_apply, map_smul, + PiLp.add_apply, PiLp.sub_apply, PiLp.smul_apply, smul_eq_mul] + simp + dsimp [t] + simp only [map_sub, PiLp.sub_apply] + field_simp [hdx] + ring + · simp only [map_add, map_sub, LinearIsometryEquiv.apply_symm_apply, map_smul, + PiLp.add_apply, PiLp.sub_apply, PiLp.smul_apply, smul_eq_mul] + simp + dsimp [y] + simp only [map_sub, PiLp.sub_apply] + ring + rw [upperGraphHeight, hfiber, csSup_singleton] + +private theorem deriv_upperGraphHeight_segment_of_lt (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) {a b : Point} + (hK : (K : Set Point) = segment ℝ a b) + (hab : e (a - o) 0 < e (b - o) 0) {x : ℝ} + (hx : x ∈ Set.Ioo (e (a - o) 0) (e (b - o) 0)) : + deriv (upperGraphHeight K o e) x = + (e (b - o) 1 - e (a - o) 1) / (e (b - o) 0 - e (a - o) 0) := by + let g : ℝ → ℝ := fun y ↦ e (a - o) 1 + + ((y - e (a - o) 0) / (e (b - o) 0 - e (a - o) 0)) * + (e (b - o) 1 - e (a - o) 1) + have hg : HasDerivAt g + ((e (b - o) 1 - e (a - o) 1) / (e (b - o) 0 - e (a - o) 0)) x := by + dsimp [g] + have hsub : HasDerivAt (fun y : ℝ ↦ y - e (a - o) 0) 1 x := + (hasDerivAt_id x).sub_const _ + have hdiv := HasDerivAt.div_const hsub (e (b - o) 0 - e (a - o) 0) + have hmul := HasDerivAt.mul_const hdiv (e (b - o) 1 - e (a - o) 1) + convert hmul.const_add (e (a - o) 1) using 1 + all_goals ring + have heq : upperGraphHeight K o e =ᶠ[nhds x] g := by + filter_upwards [isOpen_Ioo.mem_nhds hx] with y hy + exact upperGraphHeight_segment_of_lt K o e hK hab ⟨hy.1.le, hy.2.le⟩ + exact (hg.congr_of_eventuallyEq heq).deriv + +private theorem segment_graph_normal (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) {a b : Point} + (hab : e (a - o) 0 < e (b - o) 0) : + let m := (e (b - o) 1 - e (a - o) 1) / (e (b - o) 0 - e (a - o) 0) + let q := e.symm !₂[-m, 1] + q ≠ 0 ∧ inner ℝ (b - a) q = 0 ∧ + e (normalVector (vectorNormalAngle q)) 1 = ‖q‖⁻¹ ∧ + dist a b = (e (b - o) 0 - e (a - o) 0) * ‖q‖ := by + dsimp only + let m := (e (b - o) 1 - e (a - o) 1) / (e (b - o) 0 - e (a - o) 0) + let q := e.symm !₂[-m, 1] + have hq : q ≠ 0 := by + intro h + have h1 := congrFun (congrArg WithLp.ofLp (congrArg e h)) 1 + simp [q] at h1 + have hdx : 0 < e (b - o) 0 - e (a - o) 0 := sub_pos.mpr hab + have hden : e b 0 - e a 0 ≠ 0 := by + simp only [map_sub, PiLp.sub_apply] at hab + linarith + have horth : inner ℝ (b - a) q = 0 := by + rw [← e.inner_map_map] + simp only [q, m, LinearIsometryEquiv.apply_symm_apply, PiLp.inner_apply, + RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, map_sub, PiLp.sub_apply] + simp only [Matrix.cons_val_zero, Matrix.cons_val_one] + field_simp [hden] + ring + have hup : e (normalVector (vectorNormalAngle q)) 1 = ‖q‖⁻¹ := by + rw [normalVector_vectorNormalAngle hq, map_smul, PiLp.smul_apply] + simp [q] + have hlen : dist a b = (e (b - o) 0 - e (a - o) 0) * ‖q‖ := by + rw [dist_eq_norm, ← e.norm_map] + have hv : e (b - a) = (e (b - o) 0 - e (a - o) 0) • !₂[1, m] := by + ext i + fin_cases i + · simp [m] + · simp [m] + field_simp [hden] + rw [show a - b = -(b - a) by module, map_neg, norm_neg, hv, norm_smul, + Real.norm_eq_abs, abs_of_pos hdx] + congr 1 + rw [← e.norm_map q, LinearIsometryEquiv.apply_symm_apply] + rw [EuclideanSpace.norm_eq, EuclideanSpace.norm_eq] + congr 1 + simp [m, Real.norm_eq_abs, pow_two] + ring + exact ⟨hq, horth, hup, hlen⟩ + +private theorem segment_graph_integrand_ae (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) (ψ : Real.Angle → ℝ) {a b : Point} + (hK : (K : Set Point) = segment ℝ a b) + (hab : e (a - o) 0 < e (b - o) 0) : + let m := (e (b - o) 1 - e (a - o) 1) / (e (b - o) 0 - e (a - o) 0) + let q := e.symm !₂[-m, 1] + upperGraphSurfaceIntegrand K o e ψ =ᵐ[ + volume.restrict (Set.Icc (e (a - o) 0) (e (b - o) 0))] + fun _ ↦ ψ (vectorNormalAngle q) * ‖q‖ := by + dsimp only + let m := (e (b - o) 1 - e (a - o) 1) / (e (b - o) 0 - e (a - o) 0) + let q := e.symm !₂[-m, 1] + have hnormq : Real.sqrt (1 + m ^ 2) = ‖q‖ := by + rw [← e.norm_map q, LinearIsometryEquiv.apply_symm_apply, EuclideanSpace.norm_eq] + congr 1 + simp [Fin.sum_univ_two, Real.norm_eq_abs, pow_two] + ring + rw [← restrict_Ioo_eq_restrict_Icc] + refine ae_restrict_of_forall_mem measurableSet_Ioo fun x hx ↦ ?_ + rw [upperGraphSurfaceIntegrand, + deriv_upperGraphHeight_segment_of_lt K o e hK hab hx] + change ψ (vectorNormalAngle q) * Real.sqrt (1 + m ^ 2) = _ + rw [hnormq] + +private theorem integrable_segment_graph (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) (ψ : Real.Angle → ℝ) {a b : Point} + (hK : (K : Set Point) = segment ℝ a b) + (hab : e (a - o) 0 < e (b - o) 0) : + Integrable (upperGraphSurfaceIntegrand K o e ψ) + (volume.restrict (Set.Icc (e (a - o) 0) (e (b - o) 0))) := by + have hae := segment_graph_integrand_ae K o e ψ hK hab + have hc : Integrable (fun _ : ℝ ↦ ψ (vectorNormalAngle + (e.symm !₂[-((e (b - o) 1 - e (a - o) 1) / + (e (b - o) 0 - e (a - o) 0)), 1])) * + ‖e.symm !₂[-((e (b - o) 1 - e (a - o) 1) / + (e (b - o) 0 - e (a - o) 0)), 1]‖) + (volume.restrict (Set.Icc (e (a - o) 0) (e (b - o) 0))) := integrable_const _ + exact hc.congr hae.symm + +private theorem segment_graph_integral (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) (ψ : Real.Angle → ℝ) {a b : Point} + (hK : (K : Set Point) = segment ℝ a b) + (hab : e (a - o) 0 < e (b - o) 0) {ε : ℝ} (hε : 0 < ε) + (hsupport : ∀ t, e (normalVector t) 1 < ε → ψ t = 0) : + (∫ t, ψ t ∂surfaceAreaMeasure K) = + ∫ x in Set.Icc (e (a - o) 0) (e (b - o) 0), + upperGraphSurfaceIntegrand K o e ψ x := by + let m := (e (b - o) 1 - e (a - o) 1) / (e (b - o) 0 - e (a - o) 0) + let q := e.symm !₂[-m, 1] + let t := vectorNormalAngle q + obtain ⟨hq, horth, hup, hlen⟩ := segment_graph_normal o e hab + have hd : IsSegmentPresentation K (a, b, t) := by + refine ⟨?_, hK, ?_⟩ + · intro heq + have := hab + simp only at heq + rw [heq] at this + exact this.false + · dsimp [t] + rw [normalVector_vectorNormalAngle hq, inner_smul_right, horth, mul_zero] + have hqnorm : 0 < ‖q‖ := norm_pos_iff.mpr hq + have hdowncoord : e (normalVector (t + (Real.pi : Real.Angle))) 1 = -‖q‖⁻¹ := by + have hv : normalVector (t + (Real.pi : Real.Angle)) = -normalVector t := by + induction t using Real.Angle.induction_on with + | _ t => simpa only [← Real.Angle.coe_add] using normalVector_add_pi t + rw [hv, map_neg, PiLp.neg_apply] + exact congrArg Neg.neg hup + have hdown : ψ (t + (Real.pi : Real.Angle)) = 0 := + hsupport _ (by + rw [hdowncoord] + have hinv : 0 < ‖q‖⁻¹ := inv_pos.mpr hqnorm + linarith) + have hlhs : (∫ u, ψ u ∂surfaceAreaMeasure K) = dist a b * ψ t := by + rw [surfaceAreaMeasure_eq_segmentPresentation K (a, b, t) hd] + rw [MeasureTheory.integral_smul_measure] + rw [MeasureTheory.integral_add_measure (MeasureTheory.integrable_dirac (by finiteness)) + (MeasureTheory.integrable_dirac (by finiteness))] + simp [hdown, ENNReal.toReal_ofReal (dist_nonneg : 0 ≤ dist a b)] + rw [hlhs, hlen] + have hae := segment_graph_integrand_ae K o e ψ hK hab + rw [integral_congr_ae hae] + have hdx : 0 ≤ e (b - o) 0 - e (a - o) 0 := sub_nonneg.mpr hab.le + have hdx' : 0 ≤ e b 0 - e a 0 := by + simp only [map_sub, PiLp.sub_apply] at hdx + linarith + simp only [Fin.isValue, map_sub, PiLp.sub_apply, sub_sub_sub_cancel_right, norm_map, + integral_const, MeasurableSet.univ, measureReal_restrict_apply, Set.univ_inter, + Real.volume_real_Icc, smul_eq_mul, t, q, m] + rw [max_eq_left hdx'] + ring + +/-- The surface-area integral of a nonvertical segment agrees with its upper +graph integral. -/ +theorem segment_graph_formula (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) (ψ : Real.Angle → ℝ) {ε : ℝ} (hε : 0 < ε) + (hsupport : ∀ t, e (normalVector t) 1 < ε → ψ t = 0) + (d : Point × Point × Real.Angle) (hd : IsSegmentPresentation K d) + (hbounds : (horizontalBounds K o e).1 < (horizontalBounds K o e).2) : + Integrable (upperGraphSurfaceIntegrand K o e ψ) + (volume.restrict (Set.Icc (horizontalBounds K o e).1 + (horizontalBounds K o e).2)) ∧ + (∫ t, ψ t ∂surfaceAreaMeasure K) = + ∫ x in Set.Icc (horizontalBounds K o e).1 (horizontalBounds K o e).2, + upperGraphSurfaceIntegrand K o e ψ x := by + rw [horizontalBounds_segment K o e hd.2.1] at hbounds ⊢ + dsimp only at hbounds ⊢ + have hne : e (d.1 - o) 0 ≠ e (d.2.1 - o) 0 := by + intro heq + simp only [map_sub, PiLp.sub_apply] at heq hbounds + rw [heq, min_self, max_self] at hbounds + exact hbounds.false + rcases lt_or_gt_of_ne hne with hab | hba + · rw [min_eq_left hab.le, max_eq_right hab.le] at hbounds ⊢ + exact ⟨integrable_segment_graph K o e ψ hd.2.1 hbounds, + segment_graph_integral K o e ψ hd.2.1 hbounds hε hsupport⟩ + · rw [min_eq_right hba.le, max_eq_left hba.le] at hbounds ⊢ + have hK' : (K : Set Point) = segment ℝ d.2.1 d.1 := by + rw [segment_symm] + exact hd.2.1 + exact ⟨integrable_segment_graph K o e ψ hK' hbounds, + segment_graph_integral K o e ψ hK' hbounds hε hsupport⟩ + +/-- A nonsingleton planar convex body with empty interior has a segment presentation. -/ +theorem exists_segmentPresentation_of_interior_empty (K : ConvexBody Point) + (hsub : ¬(K : Set Point).Subsingleton) (hint : interior (K : Set Point) = ∅) : + ∃ d, IsSegmentPresentation K d := by + obtain ⟨a, b, hab, hK⟩ := K.exists_eq_segment_of_interior_empty hsub hint + let orient : Orientation ℝ Point (Fin 2) := + (EuclideanSpace.basisFun (Fin 2) ℝ).toBasis.orientation + let _ : Fact (Module.finrank ℝ Point = 2) := ⟨by simp [Point]⟩ + let n := ‖b - a‖⁻¹ • orient.rotation (Real.pi / 2 : ℝ) (b - a) + have hvnorm : 0 < ‖b - a‖ := norm_pos_iff.mpr (sub_ne_zero.mpr hab.symm) + have hn : ‖n‖ = 1 := by + rw [norm_smul, (orient.rotation (Real.pi / 2 : ℝ)).norm_map] + simp [hvnorm.ne'] + obtain ⟨t, ht⟩ := exists_angle_normalVector_eq hn + refine ⟨(a, b, t), hab, hK, ?_⟩ + rw [ht] + exact orient.inner_smul_rotation_pi_div_two_right (b - a) ‖b - a‖⁻¹ + +end MovingSofa + +end + +end + +end + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Curve.Foundations.Development001`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Curve.Area`. +* `Curve.AreaTransport`. +* `Curve.Concatenation`. +* `Curve.AreaAdditivity`. +* `Curve.CyclicRotation`. +* `Curve.Jordan.Basic`. +* `Curve.Jordan.Orientation`. +* `Curve.Jordan.Area`. +* `Curve.Jordan.ArcArea`. +* `Curve.Jordan.Parametrization`. +* `Curve.Jordan.UnitSphere`. +* `Curve.Jordan.Winding`. +* `Curve.Jordan.RadialWinding`. +* `Curve.Jordan.WindingConcatenation`. +* `Curve.Jordan.CyclicRotation`. +* `Curve.Jordan.WindingKernel`. +* `Curve.Jordan.WindingLocalConstancy`. +* `Curve.Jordan.WindingLifts`. +* `Curve.NullRange`. +* `Curve.SegmentArea`. +* `Curve.SegmentArea.Parametrization`. +* `Curve.SmoothIntervalPaths`. +* `Curve.Jordan.RadialLoop`. +* `Curve.StieltjesChainRule`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Area +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The constant planar path, as a continuous path of bounded variation. -/ +def constBVPath (a b : ℝ) (p : Point) : ContinuousBVPaths a b := + ⟨fun _ ↦ p, continuous_const, fun i ↦ by + simp [IsIntervalBoundedVariation, BoundedVariationOn, eVariationOn]⟩ + +/-- View one coordinate of a continuous BV path as a right-continuous BV function. -/ +def continuousBVCoordinate {a b : ℝ} (x : ContinuousBVPaths a b) (i : Fin 2) : + RightContinuousIntervalBV a b where + toFun t := x.val t i + boundedVariation := x.property.2 i + right_continuous _ := + ((PiLp.continuous_apply 2 _ i).comp x.property.1).continuousAt.continuousWithinAt + +/-- Half the difference of the two coordinate Stieltjes integrals, giving signed area. -/ +def curveAreaFunctional {a b : ℝ} (x : ContinuousBVPaths a b) : ℝ := + (intervalStieltjesIntegral (continuousBVCoordinate x 1) (fun t ↦ x.val t 0) Set.univ - + intervalStieltjesIntegral (continuousBVCoordinate x 0) (fun t ↦ x.val t 1) Set.univ) / 2 + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Area Transport +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open MeasureTheory Set + +/-- A continuous monotone surjection preserves continuous bounded variation. -/ +theorem continuousBVPaths_comp_monotone_surjective + {a b c d : ℝ} (hab : a ≤ b) (x : ContinuousBVPaths a b) + (φ : Set.Icc c d → Set.Icc a b) (hφc : Continuous φ) + (hφm : Monotone φ) (hφs : Function.Surjective φ) : + ∃ y : ContinuousBVPaths c d, y.val = x.val ∘ φ := by + let y : ContinuousBVPaths c d := + ⟨x.val ∘ φ, x.property.1.comp hφc, fun i ↦ + BoundedVariationOn.comp_monotone_surjective_Icc hab (x.property.2 i) hφm hφs⟩ + exact ⟨y, rfl⟩ + +/-- A continuous monotone surjection preserves signed path area. -/ +theorem curveArea_comp_monotone_surjective + {a b c d : ℝ} (hab : a ≤ b) (hcd : c ≤ d) (x : ContinuousBVPaths a b) + (φ : Set.Icc c d → Set.Icc a b) (hφc : Continuous φ) + (hφm : Monotone φ) (hφs : Function.Surjective φ) : + ∃ y : ContinuousBVPaths c d, + y.val = x.val ∘ φ ∧ curveAreaFunctional y = curveAreaFunctional x := by + let y : ContinuousBVPaths c d := + ⟨x.val ∘ φ, x.property.1.comp hφc, fun i ↦ + BoundedVariationOn.comp_monotone_surjective_Icc hab (x.property.2 i) hφm hφs⟩ + refine ⟨y, rfl, ?_⟩ + unfold curveAreaFunctional + rw [intervalStieltjesIntegral_comp_monotone_surjective hab hcd + (continuousBVCoordinate x 1) + ((PiLp.continuous_apply 2 _ 1).comp x.property.1) + (fun t ↦ x.val t 0) ((PiLp.continuous_apply 2 _ 0).comp x.property.1) + φ hφc hφm hφs, + intervalStieltjesIntegral_comp_monotone_surjective hab hcd + (continuousBVCoordinate x 0) + ((PiLp.continuous_apply 2 _ 0).comp x.property.1) + (fun t ↦ x.val t 1) ((PiLp.continuous_apply 2 _ 1).comp x.property.1) + φ hφc hφm hφs] + rfl + +/-- A continuous monotone surjective reparametrisation identifies the signed areas of two given +paths whenever one is the composite of the other with it. -/ +theorem curveAreaFunctional_eq_of_comp_monotone_surjective {a b c d : ℝ} + (hab : a ≤ b) (hcd : c ≤ d) (x : ContinuousBVPaths a b) (y : ContinuousBVPaths c d) + (φ : Set.Icc c d → Set.Icc a b) (hφc : Continuous φ) (hφm : Monotone φ) + (hφs : Function.Surjective φ) (hy : y.val = x.val ∘ φ) : + curveAreaFunctional y = curveAreaFunctional x := by + obtain ⟨z, hz, hza⟩ := curveArea_comp_monotone_surjective hab hcd x φ hφc hφm hφs + rw [show y = z from Subtype.ext (hy.trans hz.symm)] + exact hza + +/-- Translating a continuous BV path shifts its signed area by the cross product of the +translation vector with the path's total displacement, halved. -/ +theorem curveAreaFunctional_add_constBVPath {a b : ℝ} (hab : a ≤ b) + (x : ContinuousBVPaths a b) (v : Point) : + curveAreaFunctional (x + constBVPath a b v) = + curveAreaFunctional x + + (v 0 * (x.val ⟨b, hab, le_rfl⟩ 1 - x.val ⟨a, le_rfl, hab⟩ 1) - + v 1 * (x.val ⟨b, hab, le_rfl⟩ 0 - x.val ⟨a, le_rfl, hab⟩ 0)) / 2 := by + have hcont : ∀ i : Fin 2, Continuous (continuousBVCoordinate x i).toFun := + fun i ↦ (PiLp.continuous_apply 2 _ i).comp x.property.1 + have hval : ∀ (i : Fin 2) (t : Set.Icc a b), + (continuousBVCoordinate (x + constBVPath a b v) i).toFun t = + (continuousBVCoordinate x i).toFun t + v i := by + intro i t + change (x.val t + v) i = x.val t i + v i + simp + have hint : ∀ i j : Fin 2, + intervalStieltjesIntegral (continuousBVCoordinate (x + constBVPath a b v) i) + (fun t ↦ (x + constBVPath a b v).val t j) univ = + intervalStieltjesIntegral (continuousBVCoordinate x i) (fun t ↦ x.val t j) univ + + v j * (x.val ⟨b, hab, le_rfl⟩ i - x.val ⟨a, le_rfl, hab⟩ i) := by + intro i j + rw [show (fun t ↦ (x + constBVPath a b v).val t j) = + fun t ↦ (continuousBVCoordinate x j).toFun t + v j from funext (hval j)] + exact intervalStieltjesIntegral_add_const hab (continuousBVCoordinate x i) _ (hcont i) + (v i) (hval i) _ (hcont j) (v j) + unfold curveAreaFunctional + rw [hint 1 0, hint 0 1] + ring + +/-- Reversing a continuous BV path negates its signed area. -/ +theorem curveArea_comp_reverse + {a b : ℝ} (hab : a ≤ b) (x : ContinuousBVPaths a b) : + let r := Set.Icc.reverse hab + let y : ContinuousBVPaths a b := + ⟨x.val ∘ r, x.property.1.comp (Set.Icc.continuous_reverse hab), fun i ↦ + BoundedVariationOn.comp_antitone_surjective_Icc hab (x.property.2 i) + (Set.Icc.antitone_reverse hab) (Set.Icc.surjective_reverse hab)⟩ + curveAreaFunctional y = -curveAreaFunctional x := by + dsimp only + let r := Set.Icc.reverse hab + let y : ContinuousBVPaths a b := + ⟨x.val ∘ r, x.property.1.comp (Set.Icc.continuous_reverse hab), fun i ↦ + BoundedVariationOn.comp_antitone_surjective_Icc hab (x.property.2 i) + (Set.Icc.antitone_reverse hab) (Set.Icc.surjective_reverse hab)⟩ + have hcoord (p q : Fin 2) : + intervalStieltjesIntegral (continuousBVCoordinate y p) + (fun t ↦ y.val t q) Set.univ = + -intervalStieltjesIntegral (continuousBVCoordinate x p) + (fun t ↦ x.val t q) Set.univ := by + have hrev := intervalStieltjesIntegral_comp_reverse hab + (continuousBVCoordinate x p) + ((PiLp.continuous_apply 2 _ p).comp x.property.1) + (fun t ↦ x.val t q) ((PiLp.continuous_apply 2 _ q).comp x.property.1) + change intervalStieltjesIntegral _ _ Set.univ = -intervalStieltjesIntegral _ _ Set.univ + exact hrev + unfold curveAreaFunctional + rw [hcoord 1 0, hcoord 0 1] + ring + +/-- A continuous antitone surjection negates signed path area. -/ +theorem curveArea_comp_antitone_surjective + {a b c d : ℝ} (hab : a ≤ b) (hcd : c ≤ d) (x : ContinuousBVPaths a b) + (φ : Set.Icc c d → Set.Icc a b) (hφc : Continuous φ) + (hφa : Antitone φ) (hφs : Function.Surjective φ) : + ∃ y : ContinuousBVPaths c d, + y.val = x.val ∘ φ ∧ curveAreaFunctional y = -curveAreaFunctional x := by + let y : ContinuousBVPaths c d := + ⟨x.val ∘ φ, x.property.1.comp hφc, fun i ↦ + BoundedVariationOn.comp_antitone_surjective_Icc hab (x.property.2 i) hφa hφs⟩ + let r := Set.Icc.reverse hcd + let ψ : Set.Icc c d → Set.Icc a b := φ ∘ r + have hψc : Continuous ψ := hφc.comp (Set.Icc.continuous_reverse hcd) + have hψm : Monotone ψ := fun _ _ hst ↦ + hφa ((Set.Icc.antitone_reverse hcd) hst) + have hψs : Function.Surjective ψ := + hφs.comp (Set.Icc.surjective_reverse hcd) + obtain ⟨z, hz, hzarea⟩ := + curveArea_comp_monotone_surjective hab hcd x ψ hψc hψm hψs + have hyrev : curveAreaFunctional z = -curveAreaFunctional y := by + have hz' : z.val = y.val ∘ r := by + rw [hz] + rfl + let yr : ContinuousBVPaths c d := + ⟨y.val ∘ r, y.property.1.comp (Set.Icc.continuous_reverse hcd), fun i ↦ + BoundedVariationOn.comp_antitone_surjective_Icc hcd (y.property.2 i) + (Set.Icc.antitone_reverse hcd) (Set.Icc.surjective_reverse hcd)⟩ + have hyr := curveArea_comp_reverse hcd y + change curveAreaFunctional yr = -curveAreaFunctional y at hyr + have hzy : z = yr := by + apply Subtype.ext + exact hz' + simpa [hzy] using hyr + refine ⟨y, rfl, ?_⟩ + linarith + +/-- A constant path has zero signed area, including on an empty parameter interval. -/ +theorem curveAreaFunctional_eq_zero_of_constant + {a b : ℝ} (x : ContinuousBVPaths a b) (p : Point) + (hx : ∀ t, x.val t = p) : curveAreaFunctional x = 0 := by + have hfun : x.val = fun _ ↦ p := funext hx + have hcoord (i : Fin 2) : (fun t ↦ x.val t i) = fun _ ↦ p i := by + funext t + rw [hx t] + let _ : MeasureTheory.IsFiniteMeasure + (intervalStieltjesMeasure (continuousBVCoordinate x 0)).variation := + BoundedVariationOn.instIsFiniteMeasureVariationVectorMeasure (x.property.2 0) + let _ : MeasureTheory.IsFiniteMeasure + (intervalStieltjesMeasure (continuousBVCoordinate x 1)).variation := + BoundedVariationOn.instIsFiniteMeasureVariationVectorMeasure (x.property.2 1) + unfold curveAreaFunctional + unfold intervalStieltjesIntegral + rw [MeasureTheory.VectorMeasure.setIntegral_congr_fun + (s := Set.univ) (f := fun t ↦ x.val t 0) (g := fun _ ↦ p 0) + (fun _ _ ↦ congrFun (hcoord 0) _), + MeasureTheory.VectorMeasure.setIntegral_congr_fun + (s := Set.univ) (f := fun t ↦ x.val t 1) (g := fun _ ↦ p 1) + (fun _ _ ↦ congrFun (hcoord 1) _)] + rw [MeasureTheory.VectorMeasure.setIntegral_const, + MeasureTheory.VectorMeasure.setIntegral_const] + by_cases hab : a ≤ b + · let _ : Fact (a ≤ b) := ⟨hab⟩ + simp [intervalStieltjesMeasure, continuousBVCoordinate, hfun, Filter.limUnder, + Filter.map_const] + · let _ : IsEmpty (Set.Icc a b) := + ⟨fun t ↦ hab (le_trans t.property.1 t.property.2)⟩ + have hfilters : (Filter.atTop : Filter (Set.Icc a b)) = Filter.atBot := + Subsingleton.elim _ _ + simp [intervalStieltjesMeasure, continuousBVCoordinate, hfun, Filter.limUnder, hfilters] + +/-- A continuous monotone or antitone surjection transports BV paths and signed area. -/ +theorem curveArea_comp_monotone_or_antitone_surjective + {a b c d : ℝ} (hab : a ≤ b) (hcd : c ≤ d) (x : ContinuousBVPaths a b) + (φ : Set.Icc c d → Set.Icc a b) (hφc : Continuous φ) + (hφs : Function.Surjective φ) (hφ : Monotone φ ∨ Antitone φ) : + ∃ y : ContinuousBVPaths c d, y.val = x.val ∘ φ ∧ + (Monotone φ → curveAreaFunctional y = curveAreaFunctional x) ∧ + (Antitone φ → curveAreaFunctional y = -curveAreaFunctional x) := by + rcases hφ with hm | ha + · obtain ⟨y, hy, harea⟩ := curveArea_comp_monotone_surjective hab hcd x φ hφc hm hφs + refine ⟨y, hy, fun _ ↦ harea, ?_⟩ + intro ha + obtain ⟨z, hz, hzarea⟩ := curveArea_comp_antitone_surjective hab hcd x φ hφc ha hφs + have hzy : z = y := Subtype.ext (hz.trans hy.symm) + simpa only [hzy] using hzarea + · obtain ⟨y, hy, harea⟩ := curveArea_comp_antitone_surjective hab hcd x φ hφc ha hφs + refine ⟨y, hy, ?_, fun _ ↦ harea⟩ + intro hm + obtain ⟨z, hz, hzarea⟩ := curveArea_comp_monotone_surjective hab hcd x φ hφc hm hφs + have hzy : z = y := Subtype.ext (hz.trans hy.symm) + simpa only [hzy] using hzarea + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Concatenation +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A continuous path of bounded variation with an ordered real parameter interval. -/ +structure RectifiablePathData where + /-- The initial real parameter. -/ + a : ℝ + /-- The terminal real parameter. -/ + b : ℝ + ordered : a ≤ b + /-- The continuous parametrization of bounded variation. -/ + path : ContinuousBVPaths a b + +/-- An ordered interval partition identifies the path with a nonempty list of parametrized +pieces. -/ +def IsPathConcatenation (Γ : RectifiablePathData) {n : ℕ} + (pieces : Fin n → RectifiablePathData) : Prop := + 0 < n ∧ ∃ cuts : Fin (n + 1) → Set.Icc Γ.a Γ.b, + Monotone cuts ∧ (cuts 0 : ℝ) = Γ.a ∧ (cuts (Fin.last n) : ℝ) = Γ.b ∧ + ∀ i : Fin n, + ∃ (φ : Set.Icc (0 : ℝ) 1 → + Set.Icc (cuts i.castSucc : ℝ) (cuts i.succ : ℝ)) + (ψ : Set.Icc (0 : ℝ) 1 → Set.Icc (pieces i).a (pieces i).b), + Continuous φ ∧ Monotone φ ∧ Function.Surjective φ ∧ + Continuous ψ ∧ Monotone ψ ∧ Function.Surjective ψ ∧ + ∀ s, Γ.path.val ⟨(φ s : ℝ), + le_trans (cuts i.castSucc).property.1 (φ s).property.1, + le_trans (φ s).property.2 (cuts i.succ).property.2⟩ = (pieces i).path.val (ψ s) + +/-- A concatenated path stays inside the union of the ranges of its pieces. -/ +theorem IsPathConcatenation.range_subset_iUnion {Γ : RectifiablePathData} {n : ℕ} + {pieces : Fin n → RectifiablePathData} (h : IsPathConcatenation Γ pieces) : + Set.range Γ.path.val ⊆ ⋃ i, Set.range (pieces i).path.val := by + classical + obtain ⟨hn, cuts, hmono, hfirst, hlast, hconc⟩ := h + rintro _ ⟨t, rfl⟩ + obtain ⟨i, hi₁, hi₂⟩ : ∃ i : Fin n, + (cuts i.castSucc : ℝ) ≤ (t : ℝ) ∧ (t : ℝ) ≤ (cuts i.succ : ℝ) := by + set T := Finset.univ.filter fun i : Fin (n + 1) ↦ (t : ℝ) ≤ (cuts i : ℝ) with hT + have hmemT : ∀ i, i ∈ T ↔ (t : ℝ) ≤ (cuts i : ℝ) := fun i ↦ by simp [hT] + have hTne : T.Nonempty := + ⟨Fin.last n, (hmemT _).mpr (by rw [hlast]; exact t.property.2)⟩ + have hmin : (t : ℝ) ≤ (cuts (T.min' hTne) : ℝ) := (hmemT _).mp (T.min'_mem hTne) + rcases Fin.eq_zero_or_eq_succ (T.min' hTne) with hzero | ⟨j, hj⟩ + · refine ⟨⟨0, hn⟩, ?_, ?_⟩ + · rw [show ((⟨0, hn⟩ : Fin n).castSucc) = 0 from rfl, hfirst] + exact t.property.1 + · exact (hzero ▸ hmin).trans + (Subtype.coe_le_coe.mpr (hmono (Fin.zero_le ((⟨0, hn⟩ : Fin n).succ)))) + · refine ⟨j, ?_, by rw [← hj]; exact hmin⟩ + by_contra hlt + have hle := T.min'_le _ ((hmemT j.castSucc).mpr (not_le.mp hlt).le) + rw [hj] at hle + exact absurd (lt_of_lt_of_le (Fin.castSucc_lt_succ (i := j)) hle) (lt_irrefl _) + obtain ⟨φ, ψ, -, -, hφs, -, -, -, heq⟩ := hconc i + obtain ⟨s, hs⟩ := hφs ⟨(t : ℝ), hi₁, hi₂⟩ + have hval : ((φ s : ℝ)) = (t : ℝ) := congrArg Subtype.val hs + refine Set.mem_iUnion.mpr ⟨i, ψ s, ?_⟩ + rw [← heq s] + exact congrArg _ (Subtype.ext hval) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Area Additivity +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped Function + +namespace MovingSofa + +theorem curveArea_concatenation (Γ : RectifiablePathData) {n : ℕ} + (pieces : Fin n → RectifiablePathData) (h : IsPathConcatenation Γ pieces) : + curveAreaFunctional Γ.path = ∑ i, curveAreaFunctional (pieces i).path := by + rcases h with ⟨_, cuts, hcuts, hcuts_zero, hcuts_last, hpieces⟩ + have hcoord (i : Fin n) (p q : Fin 2) : + intervalStieltjesIntegral (continuousBVCoordinate Γ.path p) + (fun t ↦ Γ.path.val t q) (Ioc (cuts i.castSucc) (cuts i.succ)) = + intervalStieltjesIntegral (continuousBVCoordinate (pieces i).path p) + (fun t ↦ (pieces i).path.val t q) Set.univ := by + obtain ⟨φ, ψ, hφc, hφm, hφs, hψc, hψm, hψs, heq⟩ := hpieces i + let l := cuts i.castSucc + let u := cuts i.succ + let ι : Set.Icc (l : ℝ) u → Set.Icc Γ.a Γ.b := fun x ↦ + ⟨x, le_trans l.property.1 x.property.1, le_trans x.property.2 u.property.2⟩ + let hp : BoundedVariationOn ((continuousBVCoordinate Γ.path p).toFun ∘ ι) Set.univ := + ne_top_of_le_ne_top (continuousBVCoordinate Γ.path p).boundedVariation + (eVariationOn.comp_le_of_monotoneOn _ ι + (fun _ _ _ _ h ↦ h) (mapsTo_univ ι _)) + let Fp : RightContinuousIntervalBV (l : ℝ) u := + { toFun := (continuousBVCoordinate Γ.path p).toFun ∘ ι + boundedVariation := hp + right_continuous := fun _ ↦ + (((PiLp.continuous_apply 2 _ p).comp Γ.path.property.1).comp + (continuous_subtype_val.subtype_mk _)).continuousAt.continuousWithinAt } + rw [intervalStieltjesIntegral_Ioc_eq_inclusion + (continuousBVCoordinate Γ.path p) + ((PiLp.continuous_apply 2 _ p).comp Γ.path.property.1) + (fun t ↦ Γ.path.val t q) + ((PiLp.continuous_apply 2 _ q).comp Γ.path.property.1) l u + (hcuts (Fin.castSucc_le_succ i))] + change intervalStieltjesIntegral Fp + ((fun t ↦ Γ.path.val t q) ∘ ι) Set.univ = + intervalStieltjesIntegral (continuousBVCoordinate (pieces i).path p) + (fun t ↦ (pieces i).path.val t q) Set.univ + rw [intervalStieltjesIntegral_comp_monotone_surjective + (show (l : ℝ) ≤ u from hcuts (Fin.castSucc_le_succ i)) (by norm_num) Fp + (((PiLp.continuous_apply 2 _ p).comp Γ.path.property.1).comp + (continuous_subtype_val.subtype_mk _)) + ((fun t ↦ Γ.path.val t q) ∘ ι) + (((PiLp.continuous_apply 2 _ q).comp Γ.path.property.1).comp + (continuous_subtype_val.subtype_mk _)) + φ hφc hφm hφs, + intervalStieltjesIntegral_comp_monotone_surjective + (pieces i).ordered (by norm_num) (continuousBVCoordinate (pieces i).path p) + ((PiLp.continuous_apply 2 _ p).comp (pieces i).path.property.1) + (fun t ↦ (pieces i).path.val t q) + ((PiLp.continuous_apply 2 _ q).comp (pieces i).path.property.1) + ψ hψc hψm hψs] + congr 1 + · congr 1 + funext s + simpa [Fp, continuousBVCoordinate, ι, Function.comp_apply] using + congrArg (fun z ↦ z p) (heq s) + · funext s + simpa [continuousBVCoordinate, ι, Function.comp_apply] using + congrArg (fun z ↦ z q) (heq s) + unfold curveAreaFunctional + rw [intervalStieltjesIntegral_eq_sum_Ioc (continuousBVCoordinate Γ.path 1) + ((PiLp.continuous_apply 2 _ 1).comp Γ.path.property.1) + (fun t ↦ Γ.path.val t 0) ((PiLp.continuous_apply 2 _ 0).comp Γ.path.property.1) + cuts hcuts hcuts_zero hcuts_last, + intervalStieltjesIntegral_eq_sum_Ioc (continuousBVCoordinate Γ.path 0) + ((PiLp.continuous_apply 2 _ 0).comp Γ.path.property.1) + (fun t ↦ Γ.path.val t 1) ((PiLp.continuous_apply 2 _ 1).comp Γ.path.property.1) + cuts hcuts hcuts_zero hcuts_last] + simp_rw [hcoord] + rw [← Finset.sum_sub_distrib] + simp_rw [div_eq_mul_inv, Finset.sum_mul] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Cyclic Rotation +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open MeasureTheory Set + +/-- Restrict a continuous BV path to a closed subinterval. -/ +def ContinuousBVPaths.restrict {a b : ℝ} (x : ContinuousBVPaths a b) + (l u : Set.Icc a b) (_hlu : l ≤ u) : ContinuousBVPaths (l : ℝ) u := + let ι : Set.Icc (l : ℝ) u → Set.Icc a b := fun t ↦ + ⟨t, le_trans l.property.1 t.property.1, le_trans t.property.2 u.property.2⟩ + ⟨x.val ∘ ι, x.property.1.comp (continuous_subtype_val.subtype_mk _), fun i ↦ + ne_top_of_le_ne_top (x.property.2 i) + (eVariationOn.comp_le_of_monotoneOn (fun t ↦ x.val t i) ι + (fun _ _ _ _ h ↦ h) (mapsTo_univ ι _))⟩ + +private theorem curveArea_restrict_Ioc + {a b : ℝ} (x : ContinuousBVPaths a b) (l u : Set.Icc a b) (hlu : l ≤ u) : + (intervalStieltjesIntegral (continuousBVCoordinate x 1) + (fun t ↦ x.val t 0) (Ioc l u) - + intervalStieltjesIntegral (continuousBVCoordinate x 0) + (fun t ↦ x.val t 1) (Ioc l u)) / 2 = + curveAreaFunctional (ContinuousBVPaths.restrict x l u hlu) := by + unfold curveAreaFunctional + rw [intervalStieltjesIntegral_Ioc_eq_inclusion + (continuousBVCoordinate x 1) + ((PiLp.continuous_apply 2 _ 1).comp x.property.1) + (fun t ↦ x.val t 0) ((PiLp.continuous_apply 2 _ 0).comp x.property.1) + l u hlu, + intervalStieltjesIntegral_Ioc_eq_inclusion + (continuousBVCoordinate x 0) + ((PiLp.continuous_apply 2 _ 0).comp x.property.1) + (fun t ↦ x.val t 1) ((PiLp.continuous_apply 2 _ 1).comp x.property.1) + l u hlu] + rfl + +/-- Signed path area is additive along any monotone chain of cuts of the parameter interval. -/ +theorem curveArea_eq_sum_restrict {a b : ℝ} (x : ContinuousBVPaths a b) + {n : ℕ} (cuts : Fin (n + 1) → Set.Icc a b) (hcuts : Monotone cuts) + (hzero : (cuts 0 : ℝ) = a) (hlast : (cuts (Fin.last n) : ℝ) = b) : + curveAreaFunctional x = + ∑ i : Fin n, curveAreaFunctional (ContinuousBVPaths.restrict x (cuts i.castSucc) + (cuts i.succ) (hcuts (Fin.castSucc_le_succ i))) := by + simp_rw [← curveArea_restrict_Ioc x] + unfold curveAreaFunctional + rw [intervalStieltjesIntegral_eq_sum_Ioc (continuousBVCoordinate x 1) + ((PiLp.continuous_apply 2 _ 1).comp x.property.1) + (fun t ↦ x.val t 0) ((PiLp.continuous_apply 2 _ 0).comp x.property.1) + cuts hcuts hzero hlast, + intervalStieltjesIntegral_eq_sum_Ioc (continuousBVCoordinate x 0) + ((PiLp.continuous_apply 2 _ 0).comp x.property.1) + (fun t ↦ x.val t 1) ((PiLp.continuous_apply 2 _ 1).comp x.property.1) + cuts hcuts hzero hlast, ← Finset.sum_sub_distrib] + simp_rw [div_eq_mul_inv, Finset.sum_mul] + +/-- Split the signed area of a continuous BV path at any parameter value. -/ +theorem curveArea_eq_restriction_add_restriction + {a b : ℝ} (hab : a ≤ b) (x : ContinuousBVPaths a b) (s : Set.Icc a b) : + let a' : Set.Icc a b := ⟨a, le_rfl, hab⟩ + let b' : Set.Icc a b := ⟨b, hab, le_rfl⟩ + curveAreaFunctional x = + curveAreaFunctional (ContinuousBVPaths.restrict x a' s s.property.1) + + curveAreaFunctional (ContinuousBVPaths.restrict x s b' s.property.2) := by + let a' : Set.Icc a b := ⟨a, le_rfl, hab⟩ + let b' : Set.Icc a b := ⟨b, hab, le_rfl⟩ + have hs1 : a ≤ (s : ℝ) := s.property.1 + have hs2 : (s : ℝ) ≤ b := s.property.2 + change curveAreaFunctional x = + curveAreaFunctional (ContinuousBVPaths.restrict x a' s hs1) + + curveAreaFunctional (ContinuousBVPaths.restrict x s b' hs2) + have hcuts : Monotone (![a', s, b'] : Fin 3 → Set.Icc a b) := by + refine Fin.monotone_iff_le_succ.mpr fun i ↦ ?_ + fin_cases i + · exact hs1 + · exact hs2 + have hsum := curveArea_eq_sum_restrict x ![a', s, b'] hcuts rfl rfl + rw [Fin.sum_univ_two] at hsum + exact hsum + +/-- The tail and head restrictions have signed areas summing to the original area. -/ +theorem curveArea_cyclic_cut_sum + {a b : ℝ} (hab : a ≤ b) (x : ContinuousBVPaths a b) (s : Set.Icc a b) : + let a' : Set.Icc a b := ⟨a, le_rfl, hab⟩ + let b' : Set.Icc a b := ⟨b, hab, le_rfl⟩ + curveAreaFunctional x = + curveAreaFunctional (ContinuousBVPaths.restrict x s b' s.property.2) + + curveAreaFunctional (ContinuousBVPaths.restrict x a' s s.property.1) := by + rw [curveArea_eq_restriction_add_restriction hab x s, add_comm] + +/-- Package a restricted continuous BV path with its interval endpoints. -/ +def ContinuousBVPaths.restrictionData {a b : ℝ} (x : ContinuousBVPaths a b) + (l u : Set.Icc a b) (hlu : l ≤ u) : RectifiablePathData where + a := l + b := u + ordered := hlu + path := ContinuousBVPaths.restrict x l u hlu + +/-- A tail-then-head concatenation preserves the signed area. -/ +theorem curveArea_cyclic_rotation + {a b c d : ℝ} (hab : a ≤ b) (x : ContinuousBVPaths a b) + (s : Set.Icc a b) (rotated : ContinuousBVPaths c d) (hcd : c ≤ d) + (hrot : IsPathConcatenation + { a := c, b := d, ordered := hcd, path := rotated } + ![ContinuousBVPaths.restrictionData x s ⟨b, hab, le_rfl⟩ s.property.2, + ContinuousBVPaths.restrictionData x ⟨a, le_rfl, hab⟩ s s.property.1]) : + curveAreaFunctional rotated = curveAreaFunctional x := by + rw [curveArea_concatenation _ _ hrot] + simp only [Fin.sum_univ_two, Matrix.cons_val_zero, Matrix.cons_val_one, + ContinuousBVPaths.restrictionData] + exact (curveArea_cyclic_cut_sum hab x s).symm + +/-- Concatenating continuous paths with matching endpoints preserves coordinatewise variation. -/ +theorem boundedVariation_concatUnitIntervals_coordinate + (p q : ContinuousBVPaths 0 1) + (hjoin : p.val ⟨1, by norm_num⟩ = q.val ⟨0, by norm_num⟩) (i : Fin 2) : + BoundedVariationOn (fun t ↦ Function.concatUnitIntervals p.val q.val t i) Set.univ := by + let z : Set.Icc (0 : ℝ) 2 := ⟨0, by norm_num⟩ + let o : Set.Icc (0 : ℝ) 2 := ⟨1, by norm_num⟩ + let w : Set.Icc (0 : ℝ) 2 := ⟨2, by norm_num⟩ + let f := fun t ↦ Function.concatUnitIntervals p.val q.val t i + have hzo : z ≤ o := by change (0 : ℝ) ≤ 1; norm_num + have how : o ≤ w := by change (1 : ℝ) ≤ 2; norm_num + have hsplit := eVariationOn.Icc_add_Icc f hzo how (Set.mem_univ o) + simp only [Set.univ_inter] at hsplit + have hwhole : Set.Icc z w = Set.univ := by + ext t + change ((0 : ℝ) ≤ t ∧ (t : ℝ) ≤ 2) ↔ True + exact iff_true_intro t.property + rw [hwhole] at hsplit + change eVariationOn f Set.univ ≠ ⊤ + rw [← hsplit] + apply ENNReal.add_ne_top.mpr + constructor + · refine ne_top_of_le_ne_top (p.property.2 i) ?_ + calc + eVariationOn f (Set.Icc z o) = + eVariationOn (fun t : Set.Icc (0 : ℝ) 2 ↦ + p.val (Set.projIcc 0 1 (by norm_num) (t : ℝ)) i) + (Set.Icc z o) := by + apply eVariationOn.congr + intro t ht + have ht' : (t : ℝ) ≤ 1 := by exact ht.2 + simp [f, Function.concatUnitIntervals, ht'] + _ ≤ eVariationOn (fun t ↦ p.val t i) Set.univ := + by + simpa only [Function.comp_def] using + (eVariationOn.comp_le_of_monotoneOn (fun t ↦ p.val t i) + (t := Set.Icc z o) + (fun t : Set.Icc (0 : ℝ) 2 ↦ Set.projIcc 0 1 (by norm_num) (t : ℝ)) + (fun _ _ _ _ hxy ↦ Set.monotone_projIcc (by norm_num) hxy) + (mapsTo_univ _ _)) + · refine ne_top_of_le_ne_top (q.property.2 i) ?_ + calc + eVariationOn f (Set.Icc o w) = + eVariationOn + (fun t : Set.Icc (0 : ℝ) 2 ↦ + q.val (Set.projIcc 0 1 (by norm_num) ((t : ℝ) - 1)) i) + (Set.Icc o w) := by + apply eVariationOn.congr + intro t ht + have hleft : (1 : ℝ) ≤ t := by exact ht.1 + have ht' : ¬(t : ℝ) ≤ 1 ∨ (t : ℝ) = 1 := by + rcases lt_or_eq_of_le hleft with h | h + · exact Or.inl (not_le_of_gt h) + · exact Or.inr h.symm + rcases ht' with ht' | htEq + · simp [f, Function.concatUnitIntervals, ht'] + · simpa [f, Function.concatUnitIntervals, htEq] using congrArg (fun z ↦ z i) hjoin + _ ≤ eVariationOn (fun t ↦ q.val t i) Set.univ := + by + simpa only [Function.comp_def] using + (eVariationOn.comp_le_of_monotoneOn (fun t ↦ q.val t i) + (t := Set.Icc o w) + (fun t : Set.Icc (0 : ℝ) 2 ↦ + Set.projIcc 0 1 (by norm_num) ((t : ℝ) - 1)) + (fun _ _ _ _ hxy ↦ Set.monotone_projIcc (by norm_num) + (sub_le_sub_right (show (_ : ℝ) ≤ _ from hxy) 1)) + (mapsTo_univ _ _)) + +private def concatUnitPaths (p q : ContinuousBVPaths 0 1) + (hjoin : p.val ⟨1, by norm_num⟩ = q.val ⟨0, by norm_num⟩) : + ContinuousBVPaths 0 2 := + ⟨Function.concatUnitIntervals p.val q.val, + Function.continuous_concatUnitIntervals p.property.1 q.property.1 hjoin, + boundedVariation_concatUnitIntervals_coordinate p q hjoin⟩ + +private theorem isPathConcatenation_concatUnitPaths + (p q : ContinuousBVPaths 0 1) + (hjoin : p.val ⟨1, by norm_num⟩ = q.val ⟨0, by norm_num⟩) : + IsPathConcatenation + { a := 0, b := 2, ordered := by norm_num, path := concatUnitPaths p q hjoin } + ![{ a := 0, b := 1, ordered := by norm_num, path := p }, + { a := 0, b := 1, ordered := by norm_num, path := q }] := by + let cuts : Fin 3 → Set.Icc (0 : ℝ) 2 := + ![⟨0, by norm_num⟩, ⟨1, by norm_num⟩, ⟨2, by norm_num⟩] + refine ⟨by norm_num, cuts, ?_, rfl, rfl, ?_⟩ + · intro i j hij + fin_cases i <;> fin_cases j <;> simp [cuts, Matrix.cons_val_zero, + Matrix.cons_val_one] at hij ⊢ + intro i + fin_cases i + · let φ : Set.Icc (0 : ℝ) 1 → Set.Icc (cuts (Fin.castSucc 0) : ℝ) + (cuts (Fin.succ 0) : ℝ) := fun t ↦ ⟨t, by simp [cuts]⟩ + let ψ : Set.Icc (0 : ℝ) 1 → Set.Icc (0 : ℝ) 1 := id + refine ⟨φ, ψ, ?_, ?_, ?_, continuous_id, monotone_id, Function.surjective_id, ?_⟩ + · exact Continuous.subtype_mk continuous_subtype_val _ + · intro x y hxy + exact hxy + · intro y + exact ⟨⟨y, by simpa [cuts] using y.property⟩, Subtype.ext rfl⟩ + · intro t + have ht : (t : ℝ) ≤ 1 := t.property.2 + simp [φ, ψ, concatUnitPaths, Function.concatUnitIntervals, ht] + · let φ : Set.Icc (0 : ℝ) 1 → Set.Icc (cuts (Fin.castSucc 1) : ℝ) + (cuts (Fin.succ 1) : ℝ) := fun t ↦ ⟨(t : ℝ) + 1, by + change (1 : ℝ) ≤ (t : ℝ) + 1 ∧ (t : ℝ) + 1 ≤ 2 + constructor <;> linarith [t.property.1, t.property.2]⟩ + let ψ : Set.Icc (0 : ℝ) 1 → Set.Icc (0 : ℝ) 1 := id + refine ⟨φ, ψ, ?_, ?_, ?_, continuous_id, monotone_id, Function.surjective_id, ?_⟩ + · exact Continuous.subtype_mk (continuous_subtype_val.add continuous_const) _ + · intro x y hxy + change (x : ℝ) + 1 ≤ (y : ℝ) + 1 + linarith [show (x : ℝ) ≤ y from hxy] + · intro y + refine ⟨⟨(y : ℝ) - 1, ?_⟩, Subtype.ext ?_⟩ + · have hy1 : (1 : ℝ) ≤ y := by exact y.property.1 + have hy2 : (y : ℝ) ≤ 2 := by exact y.property.2 + constructor <;> linarith [y.property.1, y.property.2] + · simp [φ] + · intro t + by_cases ht : (t : ℝ) = 0 + · have htSub : t = (⟨0, by norm_num⟩ : Set.Icc (0 : ℝ) 1) := Subtype.ext ht + rw [htSub] + simpa [φ, ψ, concatUnitPaths, Function.concatUnitIntervals] using hjoin + · have htpos : 0 < (t : ℝ) := lt_of_le_of_ne t.property.1 (Ne.symm ht) + simp [φ, ψ, concatUnitPaths, Function.concatUnitIntervals, htpos] + +private def unitIntervalParam (a b : ℝ) (hab : a ≤ b) : + Set.Icc (0 : ℝ) 1 → Set.Icc a b := + Set.Icc.convexComb ⟨a, le_rfl, hab⟩ ⟨b, hab, le_rfl⟩ + +private theorem continuous_unitIntervalParam (a b : ℝ) (hab : a ≤ b) : + Continuous (unitIntervalParam a b hab) := Set.Icc.continuous_convexComb _ _ + +private theorem monotone_unitIntervalParam (a b : ℝ) (hab : a ≤ b) : + Monotone (unitIntervalParam a b hab) := by + intro s t hst + change (1 - (s : ℝ)) * a + (s : ℝ) * b ≤ (1 - (t : ℝ)) * a + (t : ℝ) * b + have hst' : (s : ℝ) ≤ t := hst + nlinarith + +private theorem surjective_unitIntervalParam (a b : ℝ) (hab : a ≤ b) : + Function.Surjective (unitIntervalParam a b hab) := by + intro x + rcases hab.eq_or_lt with rfl | hab + · refine ⟨⟨0, by norm_num⟩, Subtype.ext ?_⟩ + change (1 - (0 : ℝ)) * a + 0 * a = (x : ℝ) + have hx : (x : ℝ) = a := le_antisymm x.property.2 x.property.1 + simp [hx] + · refine ⟨⟨((x : ℝ) - a) / (b - a), ?_⟩, Subtype.ext ?_⟩ + · constructor + · exact div_nonneg (sub_nonneg.mpr x.property.1) (sub_nonneg.mpr hab.le) + · exact (div_le_one (sub_pos.mpr hab)).2 (sub_le_sub_right x.property.2 a) + · change (1 - ((x : ℝ) - a) / (b - a)) * a + ((x : ℝ) - a) / (b - a) * b = (x : ℝ) + field_simp [ne_of_gt (sub_pos.mpr hab)] + ring + +private theorem unitIntervalParam_zero (a b : ℝ) (hab : a ≤ b) : + unitIntervalParam a b hab ⟨0, by norm_num⟩ = ⟨a, le_rfl, hab⟩ := by + exact Set.Icc.convexComb_zero _ _ + +private theorem unitIntervalParam_one (a b : ℝ) (hab : a ≤ b) : + unitIntervalParam a b hab ⟨1, by norm_num⟩ = ⟨b, hab, le_rfl⟩ := by + exact Set.Icc.convexComb_one _ _ + +/-- Rotate a closed continuous BV path by concatenating its tail and head. -/ +theorem exists_cyclic_rotation_path {a b : ℝ} (hab : a ≤ b) (x : ContinuousBVPaths a b) + (s : Set.Icc a b) (hx : x.val ⟨b, hab, le_rfl⟩ = x.val ⟨a, le_rfl, hab⟩) : + ∃ rotated : ContinuousBVPaths 0 2, + rotated.val = Function.concatUnitIntervals + (x.val ∘ Set.Icc.convexComb s ⟨b, hab, le_rfl⟩) + (x.val ∘ Set.Icc.convexComb ⟨a, le_rfl, hab⟩ s) ∧ + IsPathConcatenation { a := 0, b := 2, ordered := by norm_num, path := rotated } + ![ContinuousBVPaths.restrictionData x s ⟨b, hab, le_rfl⟩ s.property.2, + ContinuousBVPaths.restrictionData x ⟨a, le_rfl, hab⟩ s s.property.1] := by + let tail := ContinuousBVPaths.restrict x s ⟨b, hab, le_rfl⟩ s.property.2 + let head := ContinuousBVPaths.restrict x ⟨a, le_rfl, hab⟩ s s.property.1 + obtain ⟨p, hp⟩ := continuousBVPaths_comp_monotone_surjective + s.property.2 tail + (unitIntervalParam s b s.property.2) (continuous_unitIntervalParam _ _ _) + (monotone_unitIntervalParam _ _ _) (surjective_unitIntervalParam _ _ _) + obtain ⟨q, hq⟩ := continuousBVPaths_comp_monotone_surjective + s.property.1 head + (unitIntervalParam a s s.property.1) (continuous_unitIntervalParam _ _ _) + (monotone_unitIntervalParam _ _ _) (surjective_unitIntervalParam _ _ _) + have hjoin : p.val ⟨1, by norm_num⟩ = q.val ⟨0, by norm_num⟩ := by + rw [hp, hq] + simp only [Function.comp_apply, unitIntervalParam_one, unitIntervalParam_zero] + exact hx + let rotated := concatUnitPaths p q hjoin + have hrot : IsPathConcatenation + { a := 0, b := 2, ordered := by norm_num, path := rotated } + ![ContinuousBVPaths.restrictionData x s ⟨b, hab, le_rfl⟩ s.property.2, + ContinuousBVPaths.restrictionData x ⟨a, le_rfl, hab⟩ s s.property.1] := by + obtain ⟨hn, cuts, hm, hz, ho, hc⟩ := isPathConcatenation_concatUnitPaths p q hjoin + refine ⟨hn, cuts, hm, hz, ho, ?_⟩ + intro i + fin_cases i + · obtain ⟨φ, ψ, hφc, hφm, hφs, hψc, hψm, hψs, heq⟩ := hc 0 + refine ⟨φ, unitIntervalParam s b s.property.2 ∘ ψ, hφc, hφm, hφs, + (continuous_unitIntervalParam _ _ _).comp hψc, + (monotone_unitIntervalParam _ _ _).comp hψm, + (surjective_unitIntervalParam _ _ _).comp hψs, ?_⟩ + intro t + have h := heq t + change rotated.val _ = p.val (ψ t) at h + rw [hp] at h + exact h + · obtain ⟨φ, ψ, hφc, hφm, hφs, hψc, hψm, hψs, heq⟩ := hc 1 + refine ⟨φ, unitIntervalParam a s s.property.1 ∘ ψ, hφc, hφm, hφs, + (continuous_unitIntervalParam _ _ _).comp hψc, + (monotone_unitIntervalParam _ _ _).comp hψm, + (surjective_unitIntervalParam _ _ _).comp hψs, ?_⟩ + intro t + have h := heq t + change rotated.val _ = q.val (ψ t) at h + rw [hq] at h + exact h + refine ⟨rotated, ?_, hrot⟩ + change Function.concatUnitIntervals p.val q.val = _ + rw [hp, hq] + rfl + +/-- Construct an area-preserving cyclic rotation of a closed continuous BV path. -/ +theorem exists_cyclic_rotation_eq_concat {a b : ℝ} (hab : a ≤ b) (x : ContinuousBVPaths a b) + (s : Set.Icc a b) (hx : x.val ⟨b, hab, le_rfl⟩ = x.val ⟨a, le_rfl, hab⟩) : + ∃ rotated : ContinuousBVPaths 0 2, + rotated.val = Function.concatUnitIntervals + (x.val ∘ Set.Icc.convexComb s ⟨b, hab, le_rfl⟩) + (x.val ∘ Set.Icc.convexComb ⟨a, le_rfl, hab⟩ s) ∧ + IsPathConcatenation { a := 0, b := 2, ordered := by norm_num, path := rotated } + ![ContinuousBVPaths.restrictionData x s ⟨b, hab, le_rfl⟩ s.property.2, + ContinuousBVPaths.restrictionData x ⟨a, le_rfl, hab⟩ s s.property.1] ∧ + curveAreaFunctional rotated = curveAreaFunctional x := by + obtain ⟨rotated, hr, hrot⟩ := exists_cyclic_rotation_path hab x s hx + exact ⟨rotated, hr, hrot, + curveArea_cyclic_rotation hab x s rotated (by norm_num) hrot⟩ + +private theorem mem_range_convexComb {a b : ℝ} (l u z : Set.Icc a b) + (hlz : l ≤ z) (hzu : z ≤ u) : z ∈ Set.range (Set.Icc.convexComb l u) := by + obtain ⟨t, ht⟩ := surjective_unitIntervalParam (l : ℝ) u (hlz.trans hzu) + ⟨z, hlz, hzu⟩ + refine ⟨t, Subtype.ext ?_⟩ + have h := congrArg (fun y : Set.Icc (l : ℝ) u ↦ (y : ℝ)) ht + exact h + +/-- Cutting and rejoining a closed path does not change its carrier. -/ +theorem range_cyclic_concat {a b : ℝ} (hab : a ≤ b) + (x : Set.Icc a b → Point) (s : Set.Icc a b) + (hx : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) : + Set.range (Function.concatUnitIntervals + (x ∘ Set.Icc.convexComb s ⟨b, hab, le_rfl⟩) + (x ∘ Set.Icc.convexComb ⟨a, le_rfl, hab⟩ s)) = Set.range x := by + have hjoin : (x ∘ Set.Icc.convexComb s ⟨b, hab, le_rfl⟩) ⟨1, by norm_num⟩ = + (x ∘ Set.Icc.convexComb ⟨a, le_rfl, hab⟩ s) ⟨0, by norm_num⟩ := by + simpa using hx.symm + rw [Function.range_concatUnitIntervals _ _ hjoin] + apply Set.Subset.antisymm + · exact Set.union_subset (Set.range_comp_subset_range _ _) (Set.range_comp_subset_range _ _) + · rintro _ ⟨t, rfl⟩ + by_cases hst : s ≤ t + · obtain ⟨r, hr⟩ := mem_range_convexComb s ⟨b, hab, le_rfl⟩ t hst t.property.2 + exact Or.inl ⟨r, congrArg x hr⟩ + · obtain ⟨r, hr⟩ := mem_range_convexComb ⟨a, le_rfl, hab⟩ s t t.property.1 + (le_of_not_ge hst) + exact Or.inr ⟨r, congrArg x hr⟩ + +/-- Every point of a nondegenerate closed path occurs before its terminal parameter. -/ +theorem exists_param_lt_top_of_mem_range {a b : ℝ} (hab : a < b) + (x : Set.Icc a b → Point) + (hx : x ⟨a, le_rfl, hab.le⟩ = x ⟨b, hab.le, le_rfl⟩) + {p : Point} (hp : p ∈ Set.range x) : + ∃ s : Set.Icc a b, (s : ℝ) < b ∧ x s = p := by + obtain ⟨s, hs⟩ := hp + by_cases hsb : (s : ℝ) < b + · exact ⟨s, hsb, hs⟩ + · have hst : s = ⟨b, hab.le, le_rfl⟩ := + Subtype.ext (le_antisymm s.property.2 (le_of_not_gt hsb)) + exact ⟨⟨a, le_rfl, hab.le⟩, hab, hx.trans (hst ▸ hs)⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Basic +-/ + +@[expose] public section + +namespace MovingSofa + +/-- The set is the range of an injective continuous map from a closed real interval. -/ +def IsJordanArc (Γ : Set Point) : Prop := + ∃ (a b : ℝ) (_ : a ≤ b) (x : Set.Icc a b → Point), + Continuous x ∧ Function.Injective x ∧ Set.range x = Γ + +/-- The set is the range of an injective continuous map from the circle. -/ +def IsJordanCurve (Γ : Set Point) : Prop := + ∃ x : Circle → Point, Continuous x ∧ Function.Injective x ∧ Set.range x = Γ + +/-- Bundle the predicates for Jordan arcs and Jordan curves. -/ +def jordanSets : (Set Point → Prop) × (Set Point → Prop) := + (IsJordanArc, IsJordanCurve) + +/-- A Jordan arc admits a parametrization with the specified starting and ending points. -/ +def IsOrientedJordanArc (Γ : Set Point) (p q : Point) : Prop := + ∃ (a b : ℝ) (hab : a ≤ b) (x : Set.Icc a b → Point), + Continuous x ∧ Function.Injective x ∧ Set.range x = Γ ∧ + x ⟨a, le_rfl, hab⟩ = p ∧ x ⟨b, hab, le_rfl⟩ = q + +/-- A Jordan arc equipped with ordered endpoints. -/ +structure OrientedJordanArc where + /-- The point set traced by the arc. -/ + carrier : Set Point + /-- The initial endpoint of the oriented arc. -/ + startPoint : Point + /-- The terminal endpoint of the oriented arc. -/ + endPoint : Point + parametrizable : IsOrientedJordanArc carrier startPoint endPoint + +end MovingSofa + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Orientation +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Points outside the curve whose connected component in its complement is bounded. -/ +def jordanInterior (Γ : Set Point) : Set Point := + {p | p ∉ Γ ∧ Bornology.IsBounded (connectedComponentIn Γᶜ p)} + +/-- A continuous real angle lifts the normalized displacement from the specified point. -/ +def IsCurveAngleLift {a b : ℝ} (x : Set.Icc a b → Point) (p : Point) + (θ : Set.Icc a b → ℝ) : Prop := + Continuous θ ∧ ∀ t, + Real.cos (θ t) = (x t - p) 0 / ‖x t - p‖ ∧ + Real.sin (θ t) = (x t - p) 1 / ‖x t - p‖ + +/-- The angle-lift increment divided by `2π`, with value zero if no lift exists. -/ +def curveWinding {a b : ℝ} (hab : a ≤ b) (x : Set.Icc a b → Point) (p : Point) : ℝ := by + classical + exact if h : ∃ θ, IsCurveAngleLift x p θ then + (h.choose ⟨b, hab, le_rfl⟩ - h.choose ⟨a, le_rfl, hab⟩) / (2 * Real.pi) + else 0 + +/-- A simple closed parametrization with the specified winding sign on the interior. -/ +def IsOrientedJordanParametrization {a b : ℝ} (hab : a ≤ b) + (Γ : Set Point) (counterclockwise : Bool) (x : Set.Icc a b → Point) : Prop := + a < b ∧ IsJordanCurve Γ ∧ Continuous x ∧ Set.range x = Γ ∧ + x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩ ∧ + Set.InjOn x {t | (t : ℝ) < b} ∧ + ∀ p ∈ jordanInterior Γ, curveWinding hab x p = if counterclockwise then 1 else -1 + +/-- A Jordan curve together with a choice of clockwise or counterclockwise orientation. -/ +structure OrientedJordanCurve where + /-- The point set traced by the Jordan curve. -/ + carrier : Set Point + isJordan : IsJordanCurve carrier + /-- Select positive winding orientation when true and negative orientation when false. -/ + counterclockwise : Bool + +/-- Bundle the winding functional and the oriented-parametrization predicate. -/ +def jordanCurveOrientation : + (∀ (a b : ℝ), a ≤ b → (Set.Icc a b → Point) → Point → ℝ) × + (∀ (a b : ℝ), a ≤ b → Set Point → Bool → (Set.Icc a b → Point) → Prop) := + (fun _ _ hab ↦ curveWinding hab, fun _ _ hab ↦ IsOrientedJordanParametrization hab) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Area +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- An injective continuous BV parametrization respecting an oriented arc’s endpoints. -/ +structure ArcBVParametrization (Γ : OrientedJordanArc) where + /-- The initial real parameter. -/ + a : ℝ + /-- The terminal real parameter. -/ + b : ℝ + ordered : a ≤ b + /-- The continuous parametrization of bounded variation. -/ + path : ContinuousBVPaths a b + injective : Function.Injective path.val + range_eq : Set.range path.val = Γ.carrier + start_eq : path.val ⟨a, le_rfl, ordered⟩ = Γ.startPoint + end_eq : path.val ⟨b, ordered, le_rfl⟩ = Γ.endPoint + +/-- A continuous BV parametrization respecting a Jordan curve’s orientation. -/ +structure ClosedBVParametrization (Γ : OrientedJordanCurve) where + /-- The initial real parameter. -/ + a : ℝ + /-- The terminal real parameter. -/ + b : ℝ + ordered : a ≤ b + /-- The continuous parametrization of bounded variation. -/ + path : ContinuousBVPaths a b + oriented : IsOrientedJordanParametrization ordered Γ.carrier Γ.counterclockwise path.val + +/-- Oriented Jordan arcs admitting a continuous BV parametrization. -/ +abbrev RectifiableOrientedArc := + {Γ : OrientedJordanArc // Nonempty (ArcBVParametrization Γ)} + +/-- Oriented Jordan curves admitting a continuous BV parametrization. -/ +abbrev RectifiableOrientedCurve := + {Γ : OrientedJordanCurve // Nonempty (ClosedBVParametrization Γ)} + +/-- The signed Stieltjes area of a chosen BV parametrization of the oriented arc. -/ +def jordanArcArea (Γ : RectifiableOrientedArc) : ℝ := + curveAreaFunctional (Classical.choice Γ.property).path + +/-- The signed Stieltjes area of a chosen BV parametrization of the oriented curve. -/ +def jordanClosedCurveArea (Γ : RectifiableOrientedCurve) : ℝ := + curveAreaFunctional (Classical.choice Γ.property).path + +/-- Bundle the signed area functionals for oriented arcs and closed curves. -/ +def jordanArea : (RectifiableOrientedArc → ℝ) × (RectifiableOrientedCurve → ℝ) := + (jordanArcArea, jordanClosedCurveArea) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Arc Area +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open MeasureTheory Set + +/-- Same-carrier Jordan arcs have equal or opposite signed areas according to their endpoints. -/ +theorem curveArea_arc_same_carrier + (Γ Δ : OrientedJordanArc) (x : ArcBVParametrization Γ) + (y : ArcBVParametrization Δ) (hcarrier : Γ.carrier = Δ.carrier) : + (Γ.startPoint = Δ.startPoint → Γ.endPoint = Δ.endPoint → + curveAreaFunctional x.path = curveAreaFunctional y.path) ∧ + (Γ.startPoint = Δ.endPoint → Γ.endPoint = Δ.startPoint → + curveAreaFunctional x.path = -curveAreaFunctional y.path) := by + let _ : Fact (x.a ≤ x.b) := ⟨x.ordered⟩ + let _ : Fact (y.a ≤ y.b) := ⟨y.ordered⟩ + have hxemb : Topology.IsEmbedding x.path.val := + (x.path.property.1.isClosedEmbedding x.injective).isEmbedding + let φ : Set.Icc y.a y.b → Set.Icc x.a x.b := fun t ↦ + hxemb.toHomeomorph.symm ⟨y.path.val t, by + rw [x.range_eq, hcarrier, ← y.range_eq] + exact Set.mem_range_self t⟩ + have hφc : Continuous φ := + hxemb.toHomeomorph.symm.continuous.comp <| + y.path.property.1.subtype_mk _ + have hxy (t : Set.Icc y.a y.b) : x.path.val (φ t) = y.path.val t := by + exact congrArg Subtype.val (hxemb.toHomeomorph.apply_symm_apply + ⟨y.path.val t, by + rw [x.range_eq, hcarrier, ← y.range_eq] + exact Set.mem_range_self t⟩) + have hφi : Function.Injective φ := fun s t hst ↦ + y.injective <| by rw [← hxy s, ← hxy t, hst] + have hφs : Function.Surjective φ := by + intro s + have hmem : x.path.val s ∈ Set.range y.path.val := by + rw [y.range_eq, ← hcarrier, ← x.range_eq] + exact Set.mem_range_self s + obtain ⟨t, ht⟩ := hmem + refine ⟨t, ?_⟩ + apply x.injective + rw [hxy t, ht] + have hxbot : x.path.val (⊥ : Set.Icc x.a x.b) = Γ.startPoint := by + convert x.start_eq using 1 + have hxtop : x.path.val (⊤ : Set.Icc x.a x.b) = Γ.endPoint := by + convert x.end_eq using 1 + have hybot : y.path.val (⊥ : Set.Icc y.a y.b) = Δ.startPoint := by + convert y.start_eq using 1 + have hytop : y.path.val (⊤ : Set.Icc y.a y.b) = Δ.endPoint := by + convert y.end_eq using 1 + have hmono (hstart : Γ.startPoint = Δ.startPoint) + (hend : Γ.endPoint = Δ.endPoint) : Monotone φ := by + apply (hφc.strictMono_of_inj_boundedOrder ?_ hφi).monotone + have hbot : φ ⊥ = ⊥ := by + apply x.injective + rw [hxy ⊥, hybot, ← hstart, hxbot] + have htop : φ ⊤ = ⊤ := by + apply x.injective + rw [hxy ⊤, hytop, ← hend, hxtop] + rw [hbot, htop] + exact bot_le + have hanti (hstart : Γ.startPoint = Δ.endPoint) + (hend : Γ.endPoint = Δ.startPoint) : Antitone φ := by + apply (hφc.strictAnti_of_inj_boundedOrder ?_ hφi).antitone + have htop : φ ⊤ = ⊥ := by + apply x.injective + rw [hxy ⊤, hytop, ← hstart, hxbot] + have hbot : φ ⊥ = ⊤ := by + apply x.injective + rw [hxy ⊥, hybot, ← hend, hxtop] + rw [htop, hbot] + exact bot_le + constructor + · intro hstart hend + obtain ⟨z, hz, hzarea⟩ := curveArea_comp_monotone_surjective + x.ordered y.ordered x.path φ hφc (hmono hstart hend) hφs + have hzy : z = y.path := by + apply Subtype.ext + rw [hz] + funext t + exact hxy t + simpa [hzy] using hzarea.symm + · intro hstart hend + obtain ⟨z, hz, hzarea⟩ := curveArea_comp_antitone_surjective + x.ordered y.ordered x.path φ hφc (hanti hstart hend) hφs + have hzy : z = y.path := by + apply Subtype.ext + rw [hz] + funext t + exact hxy t + rw [hzy] at hzarea + linarith + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Parametrization +-/ + +@[expose] public section + +noncomputable section + +open Set Function + +namespace MovingSofa + +/-- Identify an open interval with the corresponding subset of the closed interval. -/ +def openIntervalToIntervalInterior {a b : ℝ} (_hab : a < b) : + Set.Ioo a b ≃ₜ {t : Set.Icc a b | a < (t : ℝ) ∧ (t : ℝ) < b} where + toFun t := ⟨⟨t, t.property.1.le, t.property.2.le⟩, t.property⟩ + invFun t := ⟨t, t.property⟩ + left_inv _ := rfl + right_inv _ := rfl + continuous_toFun := + (continuous_subtype_val.subtype_mk fun t ↦ ⟨t.property.1.le, t.property.2.le⟩).subtype_mk _ + continuous_invFun := continuous_subtype_val.comp continuous_subtype_val |>.subtype_mk _ + +/-- Regard a parametrized point as an element of the path’s range. -/ +def intervalToRange {a b : ℝ} (x : Set.Icc a b → Point) : + Set.Icc a b → Set.range x := fun t ↦ ⟨x t, ⟨t, rfl⟩⟩ + +theorem intervalToRange_continuous {a b : ℝ} (x : Set.Icc a b → Point) + (hx : Continuous x) : Continuous (intervalToRange x) := + hx.subtype_mk fun t ↦ ⟨t, rfl⟩ + +theorem intervalToRange_surjective {a b : ℝ} (x : Set.Icc a b → Point) : + Function.Surjective (intervalToRange x) := by + rintro ⟨p, t, rfl⟩ + exact ⟨t, rfl⟩ + +/-- The carrier of a closed parametrized loop with its basepoint removed. -/ +def puncturedLoopRangeSet {a b : ℝ} (hab : a ≤ b) + (x : Set.Icc a b → Point) : Set (Set.range x) := + {p | (p : Point) ≠ x ⟨a, le_rfl, hab⟩} + +theorem puncturedLoopRangeSet_isOpen {a b : ℝ} (hab : a ≤ b) + (x : Set.Icc a b → Point) : IsOpen (puncturedLoopRangeSet hab x) := by + let p : Set.range x := ⟨x ⟨a, le_rfl, hab⟩, ⟨⟨a, le_rfl, hab⟩, rfl⟩⟩ + rw [show puncturedLoopRangeSet hab x = ({p}ᶜ : Set (Set.range x)) by + ext q + change ((q : Point) ≠ (p : Point)) ↔ q ≠ p + exact not_congr Subtype.ext_iff.symm] + exact isOpen_compl_singleton + +theorem intervalToRange_preimage_punctured {a b : ℝ} (hab : a ≤ b) + (hab' : a < b) (x : Set.Icc a b → Point) + (hclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + (hinj : Set.InjOn x {t | (t : ℝ) < b}) : + intervalToRange x ⁻¹' puncturedLoopRangeSet hab x = + {t : Set.Icc a b | a < (t : ℝ) ∧ (t : ℝ) < b} := by + ext t + simp only [Set.mem_preimage, puncturedLoopRangeSet, Set.mem_ofPred_eq, intervalToRange] + constructor + · intro ht + constructor + · exact lt_of_le_of_ne t.property.1 fun hta ↦ by + apply ht + exact congrArg x (Subtype.ext hta.symm) + · exact lt_of_le_of_ne t.property.2 fun htb ↦ by + apply ht + have ht_top : t = ⟨b, hab, le_rfl⟩ := Subtype.ext htb + rw [ht_top] + exact hclosed.symm + · rintro ⟨hat, htb⟩ htx + have : t = ⟨a, le_rfl, hab⟩ := hinj htb hab' htx + exact hat.ne (congrArg Subtype.val this).symm + +theorem intervalToPuncturedRange_injective {a b : ℝ} (hab : a ≤ b) + (_hab' : a < b) (x : Set.Icc a b → Point) + (hclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + (hinj : Set.InjOn x {t | (t : ℝ) < b}) : + Function.Injective + ((puncturedLoopRangeSet hab x).restrictPreimage (intervalToRange x)) := by + intro s t hst + apply Subtype.ext + apply hinj (x₁ := s.val) (x₂ := t.val) + · have hsne : x s.val ≠ x ⟨a, le_rfl, hab⟩ := s.property + exact lt_of_le_of_ne s.val.property.2 fun hsb ↦ by + apply hsne + have hs_top : s.val = ⟨b, hab, le_rfl⟩ := Subtype.ext hsb + rw [hs_top] + exact hclosed.symm + · have htne : x t.val ≠ x ⟨a, le_rfl, hab⟩ := t.property + exact lt_of_le_of_ne t.val.property.2 fun htb ↦ by + apply htne + have ht_top : t.val = ⟨b, hab, le_rfl⟩ := Subtype.ext htb + rw [ht_top] + exact hclosed.symm + · exact congrArg (fun p : puncturedLoopRangeSet hab x ↦ (p : Point)) hst + +/-- Removing the basepoint turns a closed once-traversal into a homeomorphism from the +open parameter interval onto the punctured carrier. -/ +noncomputable def openIntervalHomeomorphPuncturedRange {a b : ℝ} (hab : a ≤ b) + (hab' : a < b) (x : Set.Icc a b → Point) (hx : Continuous x) + (hclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + (hinj : Set.InjOn x {t | (t : ℝ) < b}) : + Set.Ioo a b ≃ₜ puncturedLoopRangeSet hab x := by + let f := intervalToRange x + let s := puncturedLoopRangeSet hab x + have hfq : Topology.IsQuotientMap f := + (intervalToRange_continuous x hx).isClosedMap.isQuotientMap + (intervalToRange_continuous x hx) (intervalToRange_surjective x) + have hgq : Topology.IsQuotientMap (s.restrictPreimage f) := + hfq.restrictPreimage_isOpen (puncturedLoopRangeSet_isOpen hab x) + have hgh : IsHomeomorph (s.restrictPreimage f) := + isHomeomorph_iff_isQuotientMap_injective.2 + ⟨hgq, intervalToPuncturedRange_injective hab hab' x hclosed hinj⟩ + exact (openIntervalToIntervalInterior hab').trans <| + (Homeomorph.setCongr + (intervalToRange_preimage_punctured hab hab' x hclosed hinj).symm).trans + (hgh.homeomorph _) + +/-- The punctured-loop homeomorphism agrees pointwise with the original path. -/ +theorem openIntervalHomeomorphPuncturedRange_coe {a b : ℝ} (hab : a ≤ b) + (hab' : a < b) (x : Set.Icc a b → Point) (hx : Continuous x) + (hclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + (hinj : Set.InjOn x {t | (t : ℝ) < b}) (t : Set.Ioo a b) : + ((openIntervalHomeomorphPuncturedRange hab hab' x hx hclosed hinj t : + puncturedLoopRangeSet hab x) : Point) = + x ⟨t, t.property.1.le, t.property.2.le⟩ := by + rfl + +private def puncturedLoopRangeHomeomorphOfEq + {a b c d : ℝ} (hab : a ≤ b) (hcd : c ≤ d) + (x : Set.Icc a b → Point) (y : Set.Icc c d → Point) + (hrange : Set.range x = Set.range y) + (hstart : x ⟨a, le_rfl, hab⟩ = y ⟨c, le_rfl, hcd⟩) : + puncturedLoopRangeSet hcd y ≃ₜ puncturedLoopRangeSet hab x where + toFun q := + ⟨⟨q, by rw [hrange]; exact q.val.property⟩, fun h ↦ q.property (h.trans hstart)⟩ + invFun q := + ⟨⟨q, by rw [← hrange]; exact q.val.property⟩, fun h ↦ q.property (h.trans hstart.symm)⟩ + left_inv _ := rfl + right_inv _ := rfl + continuous_toFun := + (continuous_subtype_val.comp continuous_subtype_val |>.subtype_mk _).subtype_mk _ + continuous_invFun := + (continuous_subtype_val.comp continuous_subtype_val |>.subtype_mk _).subtype_mk _ + +/-- The transition between two endpoint-matched once-traversals, restricted to their open +parameter intervals. -/ +private noncomputable def openIntervalClosedCurveTransition + {a b c d : ℝ} (hab : a ≤ b) (hab' : a < b) (hcd : c ≤ d) (hcd' : c < d) + (x : Set.Icc a b → Point) (y : Set.Icc c d → Point) + (hxc : Continuous x) (hyc : Continuous y) + (hxclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + (hyclosed : y ⟨c, le_rfl, hcd⟩ = y ⟨d, hcd, le_rfl⟩) + (hxinj : Set.InjOn x {t | (t : ℝ) < b}) + (hyinj : Set.InjOn y {t | (t : ℝ) < d}) + (hrange : Set.range x = Set.range y) + (hstart : x ⟨a, le_rfl, hab⟩ = y ⟨c, le_rfl, hcd⟩) : + Set.Ioo c d ≃ₜ Set.Ioo a b := + (openIntervalHomeomorphPuncturedRange hcd hcd' y hyc hyclosed hyinj).trans + ((puncturedLoopRangeHomeomorphOfEq hab hcd x y hrange hstart).trans + (openIntervalHomeomorphPuncturedRange hab hab' x hxc hxclosed hxinj).symm) + +private theorem openIntervalClosedCurveTransition_point + {a b c d : ℝ} (hab : a ≤ b) (hab' : a < b) (hcd : c ≤ d) (hcd' : c < d) + (x : Set.Icc a b → Point) (y : Set.Icc c d → Point) + (hxc : Continuous x) (hyc : Continuous y) + (hxclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + (hyclosed : y ⟨c, le_rfl, hcd⟩ = y ⟨d, hcd, le_rfl⟩) + (hxinj : Set.InjOn x {t | (t : ℝ) < b}) + (hyinj : Set.InjOn y {t | (t : ℝ) < d}) + (hrange : Set.range x = Set.range y) + (hstart : x ⟨a, le_rfl, hab⟩ = y ⟨c, le_rfl, hcd⟩) + (t : Set.Ioo c d) : + x ⟨openIntervalClosedCurveTransition hab hab' hcd hcd' x y hxc hyc hxclosed + hyclosed hxinj hyinj hrange hstart t, + (openIntervalClosedCurveTransition hab hab' hcd hcd' x y hxc hyc hxclosed + hyclosed hxinj hyinj hrange hstart t).property.1.le, + (openIntervalClosedCurveTransition hab hab' hcd hcd' x y hxc hyc hxclosed + hyclosed hxinj hyinj hrange hstart t).property.2.le⟩ = + y ⟨t, t.property.1.le, t.property.2.le⟩ := by + let ex := openIntervalHomeomorphPuncturedRange hab hab' x hxc hxclosed hxinj + let ey := openIntervalHomeomorphPuncturedRange hcd hcd' y hyc hyclosed hyinj + let ec := puncturedLoopRangeHomeomorphOfEq hab hcd x y hrange hstart + change x ⟨ex.symm (ec (ey t)), (ex.symm (ec (ey t))).property.1.le, + (ex.symm (ec (ey t))).property.2.le⟩ = + y ⟨t, t.property.1.le, t.property.2.le⟩ + rw [← openIntervalHomeomorphPuncturedRange_coe hab hab' x hxc hxclosed hxinj + (ex.symm (ec (ey t))), + ← openIntervalHomeomorphPuncturedRange_coe hcd hcd' y hyc hyclosed hyinj t] + exact congrArg (fun q : puncturedLoopRangeSet hab x ↦ (q : Point)) + (ex.apply_symm_apply (ec (ey t))) + +private theorem homeomorph_Ioo_strictMono_or_strictAnti + {a b c d : ℝ} (hcd : c < d) (e : Set.Ioo c d ≃ₜ Set.Ioo a b) : + StrictMono e ∨ StrictAnti e := by + let f : ℝ → ℝ := Function.extend ((↑) : Set.Ioo c d → ℝ) + (fun t ↦ (e t : ℝ)) 0 + have hf_apply (t : Set.Ioo c d) : f t = (e t : ℝ) := + Subtype.val_injective.extend_apply _ _ t + have hfc : ContinuousOn f (Set.Ioo c d) := by + rw [continuousOn_iff_continuous_domRestrict] + convert continuous_subtype_val.comp e.continuous using 1 + funext t + exact hf_apply t + have hfi : Set.InjOn f (Set.Ioo c d) := by + intro s hs t ht hst + have heq : e ⟨s, hs⟩ = e ⟨t, ht⟩ := by + apply Subtype.ext + calc + (e ⟨s, hs⟩ : ℝ) = f s := (hf_apply ⟨s, hs⟩).symm + _ = f t := hst + _ = (e ⟨t, ht⟩ : ℝ) := hf_apply ⟨t, ht⟩ + exact congrArg Subtype.val (e.injective heq) + rcases ContinuousOn.strictMonoOn_of_injOn_Ioo hcd hfc hfi with hm | ha + · left + intro s t hst + have := hm s.property t.property hst + change (e s : ℝ) < (e t : ℝ) + simpa only [hf_apply] using this + · right + intro s t hst + have := ha s.property t.property hst + change (e t : ℝ) < (e s : ℝ) + simpa only [hf_apply] using this + +private def closedIntervalReverse {a b : ℝ} (_hab : a ≤ b) : + Set.Icc a b ≃ₜ Set.Icc a b where + toFun t := ⟨a + b - t, by linarith [t.property.2], by linarith [t.property.1]⟩ + invFun t := ⟨a + b - t, by linarith [t.property.2], by linarith [t.property.1]⟩ + left_inv t := by apply Subtype.ext; dsimp; ring + right_inv t := by apply Subtype.ext; dsimp; ring + continuous_toFun := + (continuous_const.add continuous_const |>.sub continuous_subtype_val).subtype_mk _ + continuous_invFun := + (continuous_const.add continuous_const |>.sub continuous_subtype_val).subtype_mk _ + +private theorem closedIntervalReverse_antitone {a b : ℝ} (_hab : a ≤ b) : + Antitone (closedIntervalReverse _hab) := by + intro s t hst + have hst' : (s : ℝ) ≤ (t : ℝ) := hst + change a + b - (t : ℝ) ≤ a + b - (s : ℝ) + linarith + +private theorem closedIntervalReverse_left {a b : ℝ} (hab : a ≤ b) : + closedIntervalReverse hab ⟨a, le_rfl, hab⟩ = ⟨b, hab, le_rfl⟩ := by + apply Subtype.ext + dsimp [closedIntervalReverse] + ring + +private theorem closedIntervalReverse_right {a b : ℝ} (hab : a ≤ b) : + closedIntervalReverse hab ⟨b, hab, le_rfl⟩ = ⟨a, le_rfl, hab⟩ := by + apply Subtype.ext + dsimp [closedIntervalReverse] + ring + +private def openIntervalReverse {a b : ℝ} (_hab : a < b) : + Set.Ioo a b ≃ₜ Set.Ioo a b where + toFun t := ⟨a + b - t, by linarith [t.property.2], by linarith [t.property.1]⟩ + invFun t := ⟨a + b - t, by linarith [t.property.2], by linarith [t.property.1]⟩ + left_inv t := by apply Subtype.ext; dsimp; ring + right_inv t := by apply Subtype.ext; dsimp; ring + continuous_toFun := + (continuous_const.add continuous_const |>.sub continuous_subtype_val).subtype_mk _ + continuous_invFun := + (continuous_const.add continuous_const |>.sub continuous_subtype_val).subtype_mk _ + +private theorem openIntervalReverse_strictAnti {a b : ℝ} (_hab : a < b) : + StrictAnti (openIntervalReverse _hab) := by + intro s t hst + have hst' : (s : ℝ) < (t : ℝ) := hst + change a + b - (t : ℝ) < a + b - (s : ℝ) + linarith + +private theorem openIntervalClosedCurveTransition_strictMono_or_strictAnti + {a b c d : ℝ} (hab : a ≤ b) (hab' : a < b) (hcd : c ≤ d) (hcd' : c < d) + (x : Set.Icc a b → Point) (y : Set.Icc c d → Point) + (hxc : Continuous x) (hyc : Continuous y) + (hxclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + (hyclosed : y ⟨c, le_rfl, hcd⟩ = y ⟨d, hcd, le_rfl⟩) + (hxinj : Set.InjOn x {t | (t : ℝ) < b}) + (hyinj : Set.InjOn y {t | (t : ℝ) < d}) + (hrange : Set.range x = Set.range y) + (hstart : x ⟨a, le_rfl, hab⟩ = y ⟨c, le_rfl, hcd⟩) : + StrictMono (openIntervalClosedCurveTransition hab hab' hcd hcd' x y hxc hyc + hxclosed hyclosed hxinj hyinj hrange hstart) ∨ + StrictAnti (openIntervalClosedCurveTransition hab hab' hcd hcd' x y hxc hyc + hxclosed hyclosed hxinj hyinj hrange hstart) := + homeomorph_Ioo_strictMono_or_strictAnti hcd' + (openIntervalClosedCurveTransition hab hab' hcd hcd' x y hxc hyc hxclosed + hyclosed hxinj hyinj hrange hstart) + +/-- An endpoint-matched pair of continuous once-traversals of the same carrier differ by a +continuous surjective monotone or antitone reparametrization of the closed intervals. -/ +private theorem exists_reparametrization_with_endpoints + {a b c d : ℝ} (hab : a ≤ b) (hab' : a < b) (hcd : c ≤ d) (hcd' : c < d) + (x : Set.Icc a b → Point) (y : Set.Icc c d → Point) + (hxc : Continuous x) (hyc : Continuous y) + (hxclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + (hyclosed : y ⟨c, le_rfl, hcd⟩ = y ⟨d, hcd, le_rfl⟩) + (hxinj : Set.InjOn x {t | (t : ℝ) < b}) + (hyinj : Set.InjOn y {t | (t : ℝ) < d}) + (hrange : Set.range x = Set.range y) + (hstart : x ⟨a, le_rfl, hab⟩ = y ⟨c, le_rfl, hcd⟩) : + ∃ φ : Set.Icc c d → Set.Icc a b, + Continuous φ ∧ Function.Surjective φ ∧ + ((Monotone φ ∧ φ ⟨c, le_rfl, hcd⟩ = ⟨a, le_rfl, hab⟩ ∧ + φ ⟨d, hcd, le_rfl⟩ = ⟨b, hab, le_rfl⟩) ∨ + (Antitone φ ∧ φ ⟨c, le_rfl, hcd⟩ = ⟨b, hab, le_rfl⟩ ∧ + φ ⟨d, hcd, le_rfl⟩ = ⟨a, le_rfl, hab⟩)) ∧ + ∀ t, x (φ t) = y t := by + let e := openIntervalClosedCurveTransition hab hab' hcd hcd' x y hxc hyc + hxclosed hyclosed hxinj hyinj hrange hstart + rcases openIntervalClosedCurveTransition_strictMono_or_strictAnti hab hab' hcd hcd' + x y hxc hyc hxclosed hyclosed hxinj hyinj hrange hstart with hm | ha + · let eo : Set.Ioo c d ≃o Set.Ioo a b := + StrictMono.orderIsoOfRightInverse e hm e.symm e.apply_symm_apply + let φ := OrderIso.extendIoo hab' eo + refine ⟨φ, OrderIso.continuous_extendIoo hcd' hab' eo, + OrderIso.surjective_extendIoo hcd' hab' eo, Or.inl ⟨?_, ?_, ?_⟩, ?_⟩ + · exact OrderIso.monotone_extendIoo hcd' hab' eo + · exact OrderIso.extendIoo_left hcd' hab' eo + · exact OrderIso.extendIoo_right hcd' hab' eo + · intro t + by_cases htc : (t : ℝ) = c + · have ht : t = ⟨c, le_rfl, hcd⟩ := Subtype.ext htc + rw [ht, show φ ⟨c, le_rfl, hcd⟩ = ⟨a, le_rfl, hab⟩ from + OrderIso.extendIoo_left hcd' hab' eo] + exact hstart + by_cases htd : (t : ℝ) = d + · have ht : t = ⟨d, hcd, le_rfl⟩ := Subtype.ext htd + rw [ht, show φ ⟨d, hcd, le_rfl⟩ = ⟨b, hab, le_rfl⟩ from + OrderIso.extendIoo_right hcd' hab' eo] + exact hxclosed.symm.trans (hstart.trans hyclosed) + · let ti : Set.Ioo c d := + ⟨t, lt_of_le_of_ne t.property.1 (Ne.symm htc), + lt_of_le_of_ne t.property.2 htd⟩ + have hφ : φ t = ⟨e ti, (e ti).property.1.le, (e ti).property.2.le⟩ := by + apply Subtype.ext + have ht : t = ⟨ti, ti.property.1.le, ti.property.2.le⟩ := Subtype.ext rfl + rw [ht] + exact OrderIso.extendIoo_interior hab' eo ti + rw [hφ] + exact openIntervalClosedCurveTransition_point hab hab' hcd hcd' x y hxc hyc + hxclosed hyclosed hxinj hyinj hrange hstart ti + · let r := openIntervalReverse hab' + let g : Set.Ioo c d ≃ₜ Set.Ioo a b := e.trans r + have hgm : StrictMono g := by + intro s t hst + exact openIntervalReverse_strictAnti hab' (ha hst) + let go : Set.Ioo c d ≃o Set.Ioo a b := + StrictMono.orderIsoOfRightInverse g hgm g.symm g.apply_symm_apply + let ψ := OrderIso.extendIoo hab' go + let φ : Set.Icc c d → Set.Icc a b := fun t ↦ closedIntervalReverse hab (ψ t) + refine ⟨φ, (closedIntervalReverse hab).continuous.comp + (OrderIso.continuous_extendIoo hcd' hab' go), + (closedIntervalReverse hab).surjective.comp + (OrderIso.surjective_extendIoo hcd' hab' go), Or.inr ⟨?_, ?_, ?_⟩, ?_⟩ + · exact (closedIntervalReverse_antitone hab).comp_monotone + (OrderIso.monotone_extendIoo hcd' hab' go) + · rw [show φ ⟨c, le_rfl, hcd⟩ = + closedIntervalReverse hab (ψ ⟨c, le_rfl, hcd⟩) from rfl, + show ψ ⟨c, le_rfl, hcd⟩ = ⟨a, le_rfl, hab⟩ from + OrderIso.extendIoo_left hcd' hab' go] + apply Subtype.ext + dsimp [closedIntervalReverse] + ring + · rw [show φ ⟨d, hcd, le_rfl⟩ = + closedIntervalReverse hab (ψ ⟨d, hcd, le_rfl⟩) from rfl, + show ψ ⟨d, hcd, le_rfl⟩ = ⟨b, hab, le_rfl⟩ from + OrderIso.extendIoo_right hcd' hab' go] + apply Subtype.ext + dsimp [closedIntervalReverse] + ring + · intro t + by_cases htc : (t : ℝ) = c + · have ht : t = ⟨c, le_rfl, hcd⟩ := Subtype.ext htc + rw [ht] + change x (closedIntervalReverse hab (ψ ⟨c, le_rfl, hcd⟩)) = _ + rw [show ψ ⟨c, le_rfl, hcd⟩ = ⟨a, le_rfl, hab⟩ from + OrderIso.extendIoo_left hcd' hab' go] + rw [closedIntervalReverse_left hab] + exact hxclosed.symm.trans hstart + by_cases htd : (t : ℝ) = d + · have ht : t = ⟨d, hcd, le_rfl⟩ := Subtype.ext htd + rw [ht] + change x (closedIntervalReverse hab (ψ ⟨d, hcd, le_rfl⟩)) = _ + rw [show ψ ⟨d, hcd, le_rfl⟩ = ⟨b, hab, le_rfl⟩ from + OrderIso.extendIoo_right hcd' hab' go] + rw [closedIntervalReverse_right hab] + exact hstart.trans hyclosed + · let ti : Set.Ioo c d := + ⟨t, lt_of_le_of_ne t.property.1 (Ne.symm htc), + lt_of_le_of_ne t.property.2 htd⟩ + have hφ : φ t = ⟨e ti, (e ti).property.1.le, (e ti).property.2.le⟩ := by + apply Subtype.ext + have hψ := OrderIso.extendIoo_interior hab' go ti + dsimp [go, g, r] at hψ + change a + b - (ψ t : ℝ) = (e ti : ℝ) + rw [hψ] + change a + b - (a + b - (e ti : ℝ)) = (e ti : ℝ) + ring + rw [hφ] + exact openIntervalClosedCurveTransition_point hab hab' hcd hcd' x y hxc hyc + hxclosed hyclosed hxinj hyinj hrange hstart ti + +/-- Equal-start simple closed paths with the same range admit a monotone or antitone transition. -/ +theorem exists_reparametrization_of_range_eq_of_start_eq + {a b c d : ℝ} (hab : a ≤ b) (hab' : a < b) (hcd : c ≤ d) (hcd' : c < d) + (x : Set.Icc a b → Point) (y : Set.Icc c d → Point) + (hxc : Continuous x) (hyc : Continuous y) + (hxclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + (hyclosed : y ⟨c, le_rfl, hcd⟩ = y ⟨d, hcd, le_rfl⟩) + (hxinj : Set.InjOn x {t | (t : ℝ) < b}) + (hyinj : Set.InjOn y {t | (t : ℝ) < d}) + (hrange : Set.range x = Set.range y) + (hstart : x ⟨a, le_rfl, hab⟩ = y ⟨c, le_rfl, hcd⟩) : + ∃ φ : Set.Icc c d → Set.Icc a b, + Continuous φ ∧ Function.Surjective φ ∧ (Monotone φ ∨ Antitone φ) ∧ + y = x ∘ φ := by + rcases exists_reparametrization_with_endpoints hab hab' hcd hcd' x y hxc hyc + hxclosed hyclosed hxinj hyinj hrange hstart with ⟨φ, hφc, hφs, hφo, hφxy⟩ + refine ⟨φ, hφc, hφs, hφo.imp (fun h ↦ h.1) (fun h ↦ h.1), ?_⟩ + funext t + exact (hφxy t).symm + +/-- Equal-start closed Jordan parametrizations admit a monotone or antitone transition. -/ +theorem ClosedBVParametrization.exists_reparametrization_of_start_eq + {Γ Δ : OrientedJordanCurve} (x : ClosedBVParametrization Γ) + (y : ClosedBVParametrization Δ) (hcarrier : Γ.carrier = Δ.carrier) + (hstart : x.path.val ⟨x.a, le_rfl, x.ordered⟩ = + y.path.val ⟨y.a, le_rfl, y.ordered⟩) : + ∃ φ : Set.Icc y.a y.b → Set.Icc x.a x.b, + Continuous φ ∧ Function.Surjective φ ∧ (Monotone φ ∨ Antitone φ) ∧ + y.path.val = x.path.val ∘ φ := by + have hrange : Set.range x.path.val = Set.range y.path.val := by + rw [x.oriented.2.2.2.1, y.oriented.2.2.2.1] + exact hcarrier + exact exists_reparametrization_of_range_eq_of_start_eq x.ordered x.oriented.1 y.ordered + y.oriented.1 + x.path.val y.path.val x.path.property.1 y.path.property.1 + x.oriented.2.2.2.2.1 y.oriented.2.2.2.2.1 + x.oriented.2.2.2.2.2.1 y.oriented.2.2.2.2.2.1 hrange hstart + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Unit Sphere +-/ + +@[expose] public section + +noncomputable section +namespace MovingSofa + +private def circlePoint (z : Circle) : Point := WithLp.toLp 2 ![(z : ℂ).re, (z : ℂ).im] + +private lemma norm_circlePoint (z : Circle) : ‖circlePoint z‖ = 1 := by + rw [← sq_eq_sq₀ (norm_nonneg _) (by norm_num : (0 : ℝ) ≤ 1)] + rw [EuclideanSpace.norm_sq_eq] + simp only [circlePoint, Fin.sum_univ_two, WithLp.ofLp_toLp, Matrix.cons_val_zero, + Matrix.cons_val_one, Matrix.cons_val_fin_one, one_pow, Real.norm_eq_abs, sq_abs] + have h := Complex.sq_norm (z : ℂ) + simp only [Complex.normSq_apply, Circle.norm_coe] at h + nlinarith + +private lemma continuous_circlePoint : Continuous circlePoint := by + apply (PiLp.continuous_toLp 2 (fun _ : Fin 2 ↦ ℝ)).comp + apply continuous_pi + intro i + fin_cases i + · exact Complex.continuous_re.comp continuous_subtype_val + · exact Complex.continuous_im.comp continuous_subtype_val + +/-- A planar set homeomorphic to the unit sphere is a Jordan curve. -/ +lemma isJordanCurve_of_unitSphere_homeomorph {Γ : Set Point} + (e : {u : Point | ‖u‖ = 1} ≃ₜ ↥Γ) : IsJordanCurve Γ := by + let f : Circle → {u : Point | ‖u‖ = 1} := fun z ↦ ⟨circlePoint z, norm_circlePoint z⟩ + refine ⟨fun z ↦ (e (f z) : Point), continuous_subtype_val.comp + (e.continuous.comp (continuous_circlePoint.subtype_mk _)), ?_, ?_⟩ + · intro z w h + have he := e.injective (Subtype.ext h) + have hpoint := congrArg Subtype.val he + apply Subtype.ext + apply Complex.ext + · exact congrFun (congrArg WithLp.ofLp hpoint) 0 + · exact congrFun (congrArg WithLp.ofLp hpoint) 1 + · apply Set.Subset.antisymm + · rintro p ⟨z, rfl⟩ + exact (e (f z)).property + · intro p hp + let u := e.symm ⟨p, hp⟩ + let z : ℂ := ⟨u.val 0, u.val 1⟩ + have hz : ‖z‖ = 1 := by + rw [← sq_eq_sq₀ (norm_nonneg _) (by norm_num : (0 : ℝ) ≤ 1)] + rw [Complex.sq_norm] + have hu : ‖u.val‖ = 1 := u.property + have hsq := congrArg (fun r : ℝ ↦ r ^ 2) hu + rw [EuclideanSpace.norm_sq_eq] at hsq + simpa [z, Fin.sum_univ_two, sq] using hsq + let ζ : Circle := ⟨z, by + change z ∈ Metric.sphere 0 1 + simpa only [Metric.mem_sphere, dist_zero_right] using hz⟩ + refine ⟨ζ, ?_⟩ + have hf : f ζ = u := by + apply Subtype.ext + ext i + fin_cases i <;> rfl + change (e (f ζ) : Point) = p + rw [hf] + exact congrArg Subtype.val (e.apply_symm_apply ⟨p, hp⟩) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Winding +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Two continuous angle lifts have the same endpoint increment. -/ +theorem IsCurveAngleLift.endpoint_increment_eq {a b : ℝ} (hab : a ≤ b) + {x : Set.Icc a b → Point} {p : Point} {θ ψ : Set.Icc a b → ℝ} + (hθ : IsCurveAngleLift x p θ) (hψ : IsCurveAngleLift x p ψ) : + θ ⟨b, hab, le_rfl⟩ - θ ⟨a, le_rfl, hab⟩ = + ψ ⟨b, hab, le_rfl⟩ - ψ ⟨a, le_rfl, hab⟩ := by + let _ : PreconnectedSpace (Set.Icc a b) := Subtype.preconnectedSpace isPreconnected_Icc + have h := Real.sub_eq_sub_of_cos_eq_cos_of_sin_eq_sin hθ.1 hψ.1 + (fun t ↦ (hθ.2 t).1.trans (hψ.2 t).1.symm) + (fun t ↦ (hθ.2 t).2.trans (hψ.2 t).2.symm) + ⟨b, hab, le_rfl⟩ ⟨a, le_rfl, hab⟩ + linarith + +/-- Compute the winding value from any continuous angle lift. -/ +theorem IsCurveAngleLift.curveWinding_eq {a b : ℝ} (hab : a ≤ b) + {x : Set.Icc a b → Point} {p : Point} {θ : Set.Icc a b → ℝ} + (hθ : IsCurveAngleLift x p θ) : + curveWinding hab x p = (θ ⟨b, hab, le_rfl⟩ - θ ⟨a, le_rfl, hab⟩) / (2 * Real.pi) := by + unfold curveWinding + rw [dite_eq_left ⟨θ, hθ⟩] + congr 1 + exact IsCurveAngleLift.endpoint_increment_eq hab (Exists.choose_spec ⟨θ, hθ⟩) hθ + +/-- A nonzero winding value provides a continuous angle lift. -/ +theorem exists_curveAngleLift_of_curveWinding_ne_zero {a b : ℝ} (hab : a ≤ b) + {x : Set.Icc a b → Point} {p : Point} (h : curveWinding hab x p ≠ 0) : + ∃ θ, IsCurveAngleLift x p θ := by + by_contra hn + apply h + simp only [curveWinding, dite_eq_right hn] + +/-- Pull back an angle lift along a continuous parameter map. -/ +theorem IsCurveAngleLift.comp {a b c d : ℝ} + {x : Set.Icc a b → Point} {p : Point} {θ : Set.Icc a b → ℝ} + (hθ : IsCurveAngleLift x p θ) {φ : Set.Icc c d → Set.Icc a b} (hφ : Continuous φ) : + IsCurveAngleLift (x ∘ φ) p (θ ∘ φ) := + ⟨hθ.1.comp hφ, fun t ↦ hθ.2 (φ t)⟩ + +/-- Compute winding after continuous reparametrization from lifted endpoint values. -/ +theorem IsCurveAngleLift.curveWinding_comp {a b c d : ℝ} (hcd : c ≤ d) + {x : Set.Icc a b → Point} {p : Point} {θ : Set.Icc a b → ℝ} + (hθ : IsCurveAngleLift x p θ) {φ : Set.Icc c d → Set.Icc a b} (hφ : Continuous φ) : + curveWinding hcd (x ∘ φ) p = + (θ (φ ⟨d, hcd, le_rfl⟩) - θ (φ ⟨c, le_rfl, hcd⟩)) / (2 * Real.pi) := + (hθ.comp hφ).curveWinding_eq hcd + +/-- A continuous reparametrization preserving endpoints preserves winding. -/ +theorem curveWinding_comp_of_endpoints {a b c d : ℝ} (hab : a ≤ b) (hcd : c ≤ d) + {x : Set.Icc a b → Point} {p : Point} + (hx : ∃ θ, IsCurveAngleLift x p θ) {φ : Set.Icc c d → Set.Icc a b} (hφ : Continuous φ) + (hφa : φ ⟨c, le_rfl, hcd⟩ = ⟨a, le_rfl, hab⟩) + (hφb : φ ⟨d, hcd, le_rfl⟩ = ⟨b, hab, le_rfl⟩) : + curveWinding hcd (x ∘ φ) p = curveWinding hab x p := by + obtain ⟨θ, hθ⟩ := hx + rw [hθ.curveWinding_comp hcd hφ, hφa, hφb, hθ.curveWinding_eq hab] + +/-- A continuous reparametrization exchanging endpoints negates winding. -/ +theorem curveWinding_comp_of_reversed_endpoints {a b c d : ℝ} + (hab : a ≤ b) (hcd : c ≤ d) {x : Set.Icc a b → Point} {p : Point} + (hx : ∃ θ, IsCurveAngleLift x p θ) {φ : Set.Icc c d → Set.Icc a b} (hφ : Continuous φ) + (hφa : φ ⟨c, le_rfl, hcd⟩ = ⟨b, hab, le_rfl⟩) + (hφb : φ ⟨d, hcd, le_rfl⟩ = ⟨a, le_rfl, hab⟩) : + curveWinding hcd (x ∘ φ) p = -curveWinding hab x p := by + obtain ⟨θ, hθ⟩ := hx + rw [hθ.curveWinding_comp hcd hφ, hφa, hφb, hθ.curveWinding_eq hab] + ring + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Radial Winding +-/ + +@[expose] public section + +noncomputable section +namespace MovingSofa + +/-- The parameter angle lifts a positive radial loop about its center. -/ +lemma isCurveAngleLift_radial {a b : ℝ} (o : Point) (r : Set.Icc a b → ℝ) + (hr : ∀ t, 0 < r t) : + IsCurveAngleLift (fun t ↦ o + r t • normalVector ((t : ℝ) : Real.Angle)) o + (fun t ↦ (t : ℝ)) := by + refine ⟨continuous_subtype_val, fun t ↦ ?_⟩ + have hn : ‖r t • normalVector ((t : ℝ) : Real.Angle)‖ = r t := by + rw [norm_smul, Real.norm_eq_abs, abs_of_pos (hr t), norm_normalVector_real, mul_one] + simp only [add_sub_cancel_left, hn] + constructor + · change Real.cos (t : ℝ) = r t * Real.cos (t : ℝ) / r t + field_simp [(hr t).ne'] + · change Real.sin (t : ℝ) = r t * Real.sin (t : ℝ) / r t + field_simp [(hr t).ne'] + +/-- A positive radial loop winds once around its center. -/ +lemma curveWinding_radial_center (o : Point) (r : Set.Icc (0 : ℝ) (2 * Real.pi) → ℝ) + (hr : ∀ t, 0 < r t) : + curveWinding (by positivity) + (fun t ↦ o + r t • normalVector ((t : ℝ) : Real.Angle)) o = 1 := by + rw [(isCurveAngleLift_radial o r hr).curveWinding_eq] + simp + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Winding Concatenation +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +private theorem cos_sin_add_sub {α β : ℝ} + (hc : Real.cos α = Real.cos β) (hs : Real.sin α = Real.sin β) (t : ℝ) : + Real.cos (t + (α - β)) = Real.cos t ∧ + Real.sin (t + (α - β)) = Real.sin t := by + have hcd : Real.cos (α - β) = 1 := by + rw [Real.cos_sub, hc, hs] + nlinarith [Real.cos_sq_add_sin_sq β] + have hsd : Real.sin (α - β) = 0 := by + rw [Real.sin_sub, hc, hs] + ring + simp [Real.cos_add, Real.sin_add, hcd, hsd] + +/-- Winding is additive for two paths joined at a common endpoint. -/ +theorem curveWinding_concatUnitIntervals + {x y : Set.Icc (0 : ℝ) 1 → Point} {p : Point} + {θ ψ : Set.Icc (0 : ℝ) 1 → ℝ} + (hθ : IsCurveAngleLift x p θ) (hψ : IsCurveAngleLift y p ψ) + (hjoin : x ⟨1, by norm_num⟩ = y ⟨0, by norm_num⟩) : + curveWinding (by norm_num) (Function.concatUnitIntervals x y) p = + curveWinding (by norm_num) x p + curveWinding (by norm_num) y p := by + let δ := θ ⟨1, by norm_num⟩ - ψ ⟨0, by norm_num⟩ + have htrig (t : Set.Icc (0 : ℝ) 1) : + Real.cos (ψ t + δ) = Real.cos (ψ t) ∧ + Real.sin (ψ t + δ) = Real.sin (ψ t) := by + apply cos_sin_add_sub + · rw [(hθ.2 _).1, (hψ.2 _).1, hjoin] + · rw [(hθ.2 _).2, (hψ.2 _).2, hjoin] + let η := Function.concatUnitIntervals θ (fun t ↦ ψ t + δ) + have hη : IsCurveAngleLift (Function.concatUnitIntervals x y) p η := by + refine ⟨Function.continuous_concatUnitIntervals hθ.1 + (hψ.1.add continuous_const) (by dsimp [δ]; ring), ?_⟩ + intro t + dsimp [η, Function.concatUnitIntervals] + split_ifs with ht + · exact hθ.2 _ + · exact ⟨(htrig _).1.trans (hψ.2 _).1, (htrig _).2.trans (hψ.2 _).2⟩ + rw [hη.curveWinding_eq, hθ.curveWinding_eq, hψ.curveWinding_eq] + simp only [η, Function.concatUnitIntervals] + norm_num + dsimp [δ] + change (ψ ⟨1, _⟩ + (θ ⟨1, _⟩ - ψ ⟨0, _⟩) - θ ⟨0, _⟩) / (2 * Real.pi) = + (θ ⟨1, _⟩ - θ ⟨0, _⟩) / (2 * Real.pi) + + (ψ ⟨1, _⟩ - ψ ⟨0, _⟩) / (2 * Real.pi) + ring + +/-- Moving a closed path's cut point preserves winding. -/ +theorem curveWinding_concat_of_cyclic_endpoints {a b : ℝ} (hab : a ≤ b) + {x : Set.Icc a b → Point} {p : Point} {θ : Set.Icc a b → ℝ} + (hθ : IsCurveAngleLift x p θ) + (hx : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + (s : Set.Icc a b) (φ ψ : Set.Icc (0 : ℝ) 1 → Set.Icc a b) + (hφ : Continuous φ) (hψ : Continuous ψ) + (hφ₀ : φ ⟨0, by norm_num⟩ = s) + (hφ₁ : φ ⟨1, by norm_num⟩ = ⟨b, hab, le_rfl⟩) + (hψ₀ : ψ ⟨0, by norm_num⟩ = ⟨a, le_rfl, hab⟩) + (hψ₁ : ψ ⟨1, by norm_num⟩ = s) : + curveWinding (by norm_num) (Function.concatUnitIntervals (x ∘ φ) (x ∘ ψ)) p = + curveWinding hab x p := by + have hjoin : (x ∘ φ) ⟨1, by norm_num⟩ = (x ∘ ψ) ⟨0, by norm_num⟩ := by + simp only [Function.comp_apply, hφ₁, hψ₀] + exact hx.symm + rw [curveWinding_concatUnitIntervals (hθ.comp hφ) (hθ.comp hψ) hjoin, + hθ.curveWinding_comp (by norm_num) hφ, hθ.curveWinding_comp (by norm_num) hψ, + hφ₀, hφ₁, hψ₀, hψ₁, hθ.curveWinding_eq hab] + ring + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Cyclic Rotation +-/ + +@[expose] public section + +noncomputable section +namespace MovingSofa + +private theorem strictMono_convexComb {a b : ℝ} (l u : Set.Icc a b) (hlu : l < u) : + StrictMono (Set.Icc.convexComb l u) := by + intro s t hst + have hlu' : (l : ℝ) < u := hlu + have hst' : (s : ℝ) < t := hst + change (1 - (s : ℝ)) * l + (s : ℝ) * u < + (1 - (t : ℝ)) * l + (t : ℝ) * u + nlinarith [mul_pos (sub_pos.mpr hst') (sub_pos.mpr hlu')] + +/-- Moving an oriented Jordan path's start to an interior parameter preserves area and +orientation. -/ +theorem exists_oriented_cyclic_rotation {a b : ℝ} (hab : a ≤ b) + {Γ : Set Point} {ccw : Bool} (x : ContinuousBVPaths a b) + (hx : IsOrientedJordanParametrization hab Γ ccw x.val) + (s : Set.Icc a b) (has : a < s) (hsb : (s : ℝ) < b) : + ∃ r : ContinuousBVPaths 0 2, + IsOrientedJordanParametrization (by norm_num) Γ ccw r.val ∧ + r.val ⟨0, by norm_num⟩ = x.val s ∧ + curveAreaFunctional r = curveAreaFunctional x := by + have hclosed := hx.2.2.2.2.1 + obtain ⟨r, hr, _, harea⟩ := exists_cyclic_rotation_eq_concat hab x s hclosed.symm + refine ⟨r, ?_, ?_, harea⟩ + · refine ⟨by norm_num, hx.2.1, r.property.1, ?_, ?_, ?_, ?_⟩ + · rw [hr, range_cyclic_concat hab x.val s hclosed] + exact hx.2.2.2.1 + · rw [hr] + simp + · rw [hr] + exact Function.injOn_concatUnitIntervals_comp_of_cyclic_endpoints hab + hx.2.2.2.2.2.1 hclosed s has hsb + (Set.Icc.convexComb s ⟨b, hab, le_rfl⟩) + (Set.Icc.convexComb ⟨a, le_rfl, hab⟩ s) + (strictMono_convexComb _ _ hsb) (strictMono_convexComb _ _ has) + (by simp) (by simp) (by simp) + · intro p hp + have hxw := hx.2.2.2.2.2.2 p hp + have hn : curveWinding hab x.val p ≠ 0 := by + rw [hxw] + cases ccw <;> norm_num + obtain ⟨θ, hθ⟩ := exists_curveAngleLift_of_curveWinding_ne_zero hab hn + rw [hr, curveWinding_concat_of_cyclic_endpoints hab hθ hclosed s + (Set.Icc.convexComb s ⟨b, hab, le_rfl⟩) + (Set.Icc.convexComb ⟨a, le_rfl, hab⟩ s) + (Set.Icc.continuous_convexComb _ _) (Set.Icc.continuous_convexComb _ _) + (by simp) (by simp) (by simp) (by simp)] + exact hxw + · rw [hr] + simp + +/-- A cyclic rotation together with its literal tail-then-head formula. -/ +theorem exists_oriented_cyclic_rotation_eq_concat {a b : ℝ} (hab : a ≤ b) + {Γ : Set Point} {ccw : Bool} (x : ContinuousBVPaths a b) + (hx : IsOrientedJordanParametrization hab Γ ccw x.val) + (s : Set.Icc a b) (has : a < s) (hsb : (s : ℝ) < b) : + ∃ r : ContinuousBVPaths 0 2, + IsOrientedJordanParametrization (by norm_num) Γ ccw r.val ∧ + r.val = Function.concatUnitIntervals + (x.val ∘ Set.Icc.convexComb s ⟨b, hab, le_rfl⟩) + (x.val ∘ Set.Icc.convexComb ⟨a, le_rfl, hab⟩ s) := by + have hclosed := hx.2.2.2.2.1 + obtain ⟨r, hr, _⟩ := + exists_cyclic_rotation_path hab x s hclosed.symm + refine ⟨r, ?_, hr⟩ + refine ⟨by norm_num, hx.2.1, r.property.1, ?_, ?_, ?_, ?_⟩ + · rw [hr, range_cyclic_concat hab x.val s hclosed] + exact hx.2.2.2.1 + · rw [hr] + simp + · rw [hr] + exact Function.injOn_concatUnitIntervals_comp_of_cyclic_endpoints hab + hx.2.2.2.2.2.1 hclosed s has hsb + (Set.Icc.convexComb s ⟨b, hab, le_rfl⟩) + (Set.Icc.convexComb ⟨a, le_rfl, hab⟩ s) + (strictMono_convexComb _ _ hsb) + (strictMono_convexComb _ _ has) + (by simp) (by simp) (by simp) + · intro p hp + have hxw := hx.2.2.2.2.2.2 p hp + have hn : curveWinding hab x.val p ≠ 0 := by + rw [hxw] + cases ccw <;> norm_num + obtain ⟨θ, hθ⟩ := exists_curveAngleLift_of_curveWinding_ne_zero hab hn + rw [hr, curveWinding_concat_of_cyclic_endpoints hab hθ hclosed s + (Set.Icc.convexComb s ⟨b, hab, le_rfl⟩) + (Set.Icc.convexComb ⟨a, le_rfl, hab⟩ s) + (Set.Icc.continuous_convexComb _ _) (Set.Icc.continuous_convexComb _ _) + (by simp) (by simp) (by simp) (by simp)] + exact hxw + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Winding Kernel +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- The inverse-distance vector kernel based at `z`. -/ +def windingKernel (z p : Point) : Point := + (‖z - p‖ ^ 2)⁻¹ • (z - p) + +private def pointComplex : Point ≃ₗᵢ[ℝ] ℂ := + Complex.orthonormalBasisOneI.repr.symm + +private theorem pointComplex_windingKernel (z p : Point) : + pointComplex (windingKernel z p) = + (starRingEnd ℂ (pointComplex z - pointComplex p))⁻¹ := by + have hsub : pointComplex (z - p) = pointComplex z - pointComplex p := + map_sub pointComplex z p + rw [windingKernel, map_smul, hsub] + let v : ℂ := pointComplex z - pointComplex p + change (‖z - p‖ ^ 2)⁻¹ • v = (starRingEnd ℂ v)⁻¹ + rw [Complex.inv_def] + simp only [starRingEnd_apply, star_star, Complex.normSq_eq_norm_sq, norm_star] + have hn : ‖v‖ = ‖z - p‖ := by + rw [show v = pointComplex (z - p) by simp [v, hsub]] + exact LinearIsometryEquiv.norm_map pointComplex (z - p) + rw [hn, Complex.real_smul, Complex.ofReal_inv, Complex.ofReal_pow] + ring + +private theorem norm_windingKernel (z p : Point) : + ‖windingKernel z p‖ = if p = z then 0 else ‖z - p‖⁻¹ := by + by_cases hp : p = z + · subst p + simp [windingKernel] + · have hnorm : ‖z - p‖ ≠ 0 := by + simpa [norm_eq_zero, sub_eq_zero] using Ne.symm hp + rw [windingKernel, norm_smul, Real.norm_eq_abs] + simp only [abs_inv, abs_pow, abs_norm] + simp only [hp, ↓reduceIte] + field_simp + +private theorem ball_zero_subset_ball_two_mul (R : ℝ) (z : Point) + (hz : ‖z‖ < R) : Metric.ball 0 R ⊆ Metric.ball z (2 * R) := by + intro p hp + rw [Metric.mem_ball, dist_eq_norm] at hp ⊢ + have hp' : ‖p‖ < R := by simpa using hp + calc + ‖p - z‖ ≤ ‖p‖ + ‖z‖ := norm_sub_le p z + _ < R + R := add_lt_add hp' hz + _ = 2 * R := by ring + +private theorem measurable_windingKernel (z : Point) : Measurable (windingKernel z) := by + unfold windingKernel + exact (((measurable_const.sub measurable_id).norm.pow_const 2).inv.smul + (measurable_const.sub measurable_id)) + +private theorem indicator_inv_norm_pointComplex (S : ℝ) (p : Point) : + (Metric.ball (0 : Point) S).indicator (fun p ↦ ‖p‖⁻¹) p = + (Metric.ball (0 : ℂ) S).indicator (fun q ↦ ‖q‖⁻¹) (pointComplex p) := by + have hm : pointComplex p ∈ Metric.ball (0 : ℂ) S ↔ + p ∈ Metric.ball (0 : Point) S := by + simp [Metric.mem_ball, dist_eq_norm] + by_cases hp : p ∈ Metric.ball (0 : Point) S + · simp [hp, hm.mpr hp] + · simp [hp, mt hm.mp hp] + +private theorem integrableOn_inv_norm_ball (S : ℝ) : + IntegrableOn (fun p : Point ↦ ‖p‖⁻¹) (Metric.ball 0 S) := by + rw [← integrable_indicator_iff measurableSet_ball] + have hf : Integrable ((Metric.ball (0 : ℂ) S).indicator fun q ↦ ‖q‖⁻¹) := + (integrable_indicator_iff measurableSet_ball).mpr (Complex.integrableOn_inv_norm_ball S) + refine (((LinearIsometryEquiv.measurePreserving pointComplex).integrable_comp_emb + pointComplex.toHomeomorph.measurableEmbedding).mpr hf).congr ?_ + filter_upwards with p + exact (indicator_inv_norm_pointComplex S p).symm + +private theorem setIntegral_inv_norm_ball (S : ℝ) (hS : 0 < S) : + (∫ p : Point in Metric.ball 0 S, ‖p‖⁻¹) = 2 * Real.pi * S := by + rw [← integral_indicator (f := fun p : Point ↦ ‖p‖⁻¹) measurableSet_ball] + calc + (∫ p : Point, (Metric.ball 0 S).indicator (fun p ↦ ‖p‖⁻¹) p) = + ∫ p : Point, (Metric.ball (0 : ℂ) S).indicator (fun q ↦ ‖q‖⁻¹) (pointComplex p) := + integral_congr_ae (Filter.Eventually.of_forall (indicator_inv_norm_pointComplex S)) + _ = ∫ q : ℂ, (Metric.ball (0 : ℂ) S).indicator (fun q ↦ ‖q‖⁻¹) q := + (LinearIsometryEquiv.measurePreserving pointComplex).integral_comp + pointComplex.toHomeomorph.measurableEmbedding _ + _ = 2 * Real.pi * S := by + rw [integral_indicator measurableSet_ball] + exact Complex.setIntegral_inv_norm_ball S hS + +private theorem indicator_centered_inv_norm_eq (z : Point) (S : ℝ) : + (Metric.ball z S).indicator (fun p ↦ ‖z - p‖⁻¹) = + fun p ↦ (Metric.ball 0 S).indicator (fun q ↦ ‖q‖⁻¹) (z - p) := by + funext p + have hm : p ∈ Metric.ball z S ↔ z - p ∈ Metric.ball 0 S := by + simp only [Metric.mem_ball, dist_eq_norm] + simp [sub_zero, norm_sub_rev] + by_cases hp : p ∈ Metric.ball z S + · simp [hp, hm.mp hp] + · simp [hp, mt hm.mpr hp] + +private theorem indicator_centered_inv_norm_nonneg (z : Point) (S : ℝ) (p : Point) : + 0 ≤ (Metric.ball z S).indicator (fun p ↦ ‖z - p‖⁻¹) p := + Set.indicator_apply_nonneg fun _ ↦ by positivity + +private theorem integrable_indicator_centered_inv_norm (z : Point) (S : ℝ) : + Integrable ((Metric.ball z S).indicator fun p ↦ ‖z - p‖⁻¹) := by + rw [indicator_centered_inv_norm_eq, MeasureTheory.integrable_comp_sub_left] + exact (integrable_indicator_iff measurableSet_ball).mpr (integrableOn_inv_norm_ball S) + +private theorem integral_indicator_centered_inv_norm (z : Point) (S : ℝ) (hS : 0 < S) : + (∫ p : Point, (Metric.ball z S).indicator (fun p ↦ ‖z - p‖⁻¹) p) = 2 * Real.pi * S := by + rw [indicator_centered_inv_norm_eq, + MeasureTheory.integral_sub_left_eq_self _ volume z, integral_indicator measurableSet_ball] + exact setIntegral_inv_norm_ball S hS + +private theorem norm_windingKernel_le_indicator (R : ℝ) (z : Point) (hz : ‖z‖ < R) : + (fun p ↦ ‖windingKernel z p‖) ≤ᵐ[volume.restrict (Metric.ball 0 R)] + (Metric.ball z (2 * R)).indicator (fun p ↦ ‖z - p‖⁻¹) := by + filter_upwards [ae_restrict_mem measurableSet_ball] with p hp + have hpz : p ∈ Metric.ball z (2 * R) := ball_zero_subset_ball_two_mul R z hz hp + rw [norm_windingKernel] + by_cases heq : p = z + · simp only [heq, ↓reduceIte] + exact indicator_centered_inv_norm_nonneg z (2 * R) z + · simp [heq, hpz] + +/-- The winding kernel is integrable on a disk containing its base point. -/ +theorem integrableOn_windingKernel_ball (R : ℝ) (z : Point) (hz : ‖z‖ < R) : + IntegrableOn (windingKernel z) (Metric.ball 0 R) := + Integrable.mono' (integrable_indicator_centered_inv_norm z (2 * R)).integrableOn + (measurable_windingKernel z).aestronglyMeasurable + (norm_windingKernel_le_indicator R z hz) + +/-- The norm of the winding kernel has an integrable uniform majorant on an interior disk. -/ +theorem setIntegral_norm_windingKernel_ball_le + (R : ℝ) (hR : 0 < R) (z : Point) (hz : ‖z‖ < R) : + (∫ p in Metric.ball 0 R, ‖windingKernel z p‖) ≤ 4 * Real.pi * R := by + have hg : Integrable ((Metric.ball z (2 * R)).indicator fun p ↦ ‖z - p‖⁻¹) := + integrable_indicator_centered_inv_norm z (2 * R) + calc + (∫ p in Metric.ball 0 R, ‖windingKernel z p‖) ≤ + ∫ p in Metric.ball 0 R, (Metric.ball z (2 * R)).indicator (fun p ↦ ‖z - p‖⁻¹) p := + setIntegral_mono_ae_restrict (integrableOn_windingKernel_ball R z hz).norm + hg.integrableOn (norm_windingKernel_le_indicator R z hz) + _ ≤ ∫ p, (Metric.ball z (2 * R)).indicator (fun p ↦ ‖z - p‖⁻¹) p := + setIntegral_le_integral hg + (Filter.Eventually.of_forall (indicator_centered_inv_norm_nonneg z (2 * R))) + _ = 2 * Real.pi * (2 * R) := + integral_indicator_centered_inv_norm z (2 * R) (by linarith) + _ = 4 * Real.pi * R := by ring + +/-- The integral of the winding kernel over a disk is `π` times its base point. -/ +theorem setIntegral_windingKernel_ball (R : ℝ) (z : Point) (hz : ‖z‖ < R) : + (∫ p in Metric.ball 0 R, windingKernel z p) = Real.pi • z := by + have hInt := integrableOn_windingKernel_ball R z hz + let T : Point ≃ₗᵢ[ℝ] ℂ := pointComplex.trans Complex.conjLIE + let a : ℂ := T z + have ha : ‖a‖ < R := by simpa [a, T] using hz + have hc := Complex.setIntegral_inv_sub_ball R a ha + let G : ℂ → ℂ := (Metric.ball 0 R).indicator (fun q ↦ (a - q)⁻¹) + have hpres := (LinearIsometryEquiv.measurePreserving T).integral_comp + T.toHomeomorph.measurableEmbedding G + have hfun : ∀ p : Point, + G (T p) = (Metric.ball 0 R).indicator + (fun p ↦ pointComplex (windingKernel z p)) p := by + intro p + have hm : T p ∈ Metric.ball (0 : ℂ) R ↔ p ∈ Metric.ball (0 : Point) R := by + simp [Metric.mem_ball, dist_eq_norm, T] + by_cases hp : p ∈ Metric.ball (0 : Point) R + · rw [show G (T p) = (a - T p)⁻¹ by simp [G, hm.mpr hp]] + rw [show (Metric.ball (0 : Point) R).indicator + (fun p ↦ pointComplex (windingKernel z p)) p = + pointComplex (windingKernel z p) by simp [hp]] + rw [pointComplex_windingKernel] + simp only [a, T, LinearIsometryEquiv.trans_apply, Complex.conjLIE_apply, + map_sub] + · rw [show G (T p) = 0 by simp [G, mt hm.mp hp]] + simp [hp] + have htransport : + (∫ q in Metric.ball 0 R, (a - q)⁻¹) = + pointComplex (∫ p in Metric.ball 0 R, windingKernel z p) := by + rw [← integral_indicator measurableSet_ball] + change (∫ q, G q) = _ + rw [← hpres] + rw [integral_congr_ae (Filter.Eventually.of_forall hfun)] + rw [integral_indicator measurableSet_ball] + simpa using + (pointComplex.toContinuousLinearEquiv.toContinuousLinearMap.integral_comp_comm hInt) + apply pointComplex.injective + rw [← htransport, hc] + simp [a, T, Complex.real_smul] + +/-- Off the range of a continuous interval path, each coordinate of the winding kernel is +a bounded continuous function of the parameter. -/ +theorem windingKernel_coord_continuous_bounded + {a b : ℝ} {x : Set.Icc a b → Point} (hx : Continuous x) {p : Point} + (hp : p ∉ Set.range x) (i : Fin 2) : + Continuous (fun t ↦ windingKernel (x t) p i) ∧ + ∃ C : ℝ, ∀ t, |windingKernel (x t) p i| ≤ C := by + have hsub : Continuous (fun t ↦ x t - p) := hx.sub continuous_const + have hne : ∀ t, ‖x t - p‖ ^ 2 ≠ 0 := by + intro t + apply pow_ne_zero + rw [norm_ne_zero_iff] + intro h + exact hp ⟨t, sub_eq_zero.mp h⟩ + have hkernel : Continuous (fun t ↦ windingKernel (x t) p) := by + unfold windingKernel + exact ((hsub.norm.pow 2).inv₀ hne).smul hsub + have hcoord : Continuous (fun t ↦ windingKernel (x t) p i) := + (PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) i).comp hkernel + refine ⟨hcoord, ?_⟩ + have hbdd : BddAbove ((fun t ↦ |windingKernel (x t) p i|) '' Set.univ) := + isCompact_univ.bddAbove_image hcoord.abs.continuousOn + obtain ⟨C, hC⟩ := hbdd + exact ⟨C, fun t ↦ hC ⟨t, Set.mem_univ t, rfl⟩⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Winding Local Constancy +-/ + +@[expose] public section + +noncomputable section + +open scoped unitInterval + +namespace MovingSofa + +private lemma pointComplex_re_m85d0e79 (v : Point) : (Complex.orthonormalBasisOneI.repr.symm v).re = + v 0 := by + simp [Complex.orthonormalBasisOneI_repr_symm_apply] + +private lemma pointComplex_im_m85d0e79 (v : Point) : (Complex.orthonormalBasisOneI.repr.symm v).im = + v 1 := by + simp [Complex.orthonormalBasisOneI_repr_symm_apply] + +private lemma conj_pointComplex_mul_re_m85d0e79 (v w : Point) : + (starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm v) * + Complex.orthonormalBasisOneI.repr.symm w).re = inner ℝ v w := by + simp [Complex.orthonormalBasisOneI_repr_symm_apply, inner, Fin.sum_univ_two] + ring + +/-- The principal relative argument varies continuously while the relative dot product is +positive. This is the branch needed for a small displacement of the basepoint. -/ +lemma continuous_arg_conj_mul_of_re_pos {α : Type*} [TopologicalSpace α] + {z w : α → ℂ} (hz : Continuous z) (hw : Continuous w) + (hpos : ∀ t, 0 < (starRingEnd ℂ (z t) * w t).re) : + Continuous (fun t ↦ Complex.arg (starRingEnd ℂ (z t) * w t)) := by + have hf : Continuous (fun u ↦ starRingEnd ℂ (z u) * w u) := + (continuous_star.comp hz).mul hw + change Continuous (Complex.arg ∘ fun u ↦ starRingEnd ℂ (z u) * w u) + exact Complex.continuousOn_arg.comp_continuous hf (fun t ↦ Or.inl (hpos t)) + +/-- The principal relative argument rotates the normalized coordinates of `z` to those of `w`. -/ +lemma normalized_complex_rotation_by_arg {z w : ℂ} + (hz : z ≠ 0) (hw : w ≠ 0) : + Real.cos (Complex.arg z + Complex.arg (starRingEnd ℂ z * w)) = w.re / ‖w‖ ∧ + Real.sin (Complex.arg z + Complex.arg (starRingEnd ℂ z * w)) = w.im / ‖w‖ := by + have hzw : starRingEnd ℂ z * w ≠ 0 := + mul_ne_zero ((map_ne_zero (starRingEnd ℂ)).2 hz) hw + rw [Real.cos_add, Real.sin_add, Complex.cos_arg hz, Complex.sin_arg, + Complex.cos_arg hzw, Complex.sin_arg] + simp only [Complex.norm_mul, Complex.mul_re, Complex.mul_im, + Complex.conj_re, Complex.conj_im] + rw [Complex.norm_conj] + have hn : z.re ^ 2 + z.im ^ 2 = ‖z‖ ^ 2 := by + rw [Complex.sq_norm, Complex.normSq_apply] + ring + have hnz : ‖z‖ ≠ 0 := norm_ne_zero_iff.mpr hz + constructor + · field_simp [hnz] + linear_combination w.re * hn + · field_simp [hnz] + linear_combination w.im * hn + +/-- Coordinate form of the preceding rotation identity for any chosen real lift of `z`. -/ +lemma normalized_complex_rotation_by_relative_arg {z w : ℂ} {θ : ℝ} + (hz : z ≠ 0) (hw : w ≠ 0) + (hc : Real.cos θ = z.re / ‖z‖) (hs : Real.sin θ = z.im / ‖z‖) : + Real.cos (θ + Complex.arg (starRingEnd ℂ z * w)) = w.re / ‖w‖ ∧ + Real.sin (θ + Complex.arg (starRingEnd ℂ z * w)) = w.im / ‖w‖ := by + have hzw : starRingEnd ℂ z * w ≠ 0 := + mul_ne_zero ((map_ne_zero (starRingEnd ℂ)).2 hz) hw + rw [Real.cos_add, Real.sin_add, hc, hs, Complex.cos_arg hzw, Complex.sin_arg, + Complex.norm_mul, Complex.norm_conj] + simp only [Complex.mul_re, Complex.mul_im, Complex.conj_re, Complex.conj_im] + have hn : z.re ^ 2 + z.im ^ 2 = ‖z‖ ^ 2 := by + rw [Complex.sq_norm, Complex.normSq_apply] + ring + have hnz : ‖z‖ ≠ 0 := norm_ne_zero_iff.mpr hz + constructor + · field_simp [hnz] + linear_combination w.re * hn + · field_simp [hnz] + linear_combination w.im * hn + +/-- A positive relative dot product supplies the continuous principal correction between two +basepoints. -/ +lemma IsCurveAngleLift.add_principal_basepoint_correction {a b : ℝ} + {x : Set.Icc a b → Point} {p q : Point} {θ : Set.Icc a b → ℝ} + (hx : Continuous x) (hθ : IsCurveAngleLift x p θ) + (hpos : ∀ u, 0 < (starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm (x u - p)) * + Complex.orthonormalBasisOneI.repr.symm (x u - q)).re) : + IsCurveAngleLift x q (fun u ↦ θ u + + Complex.arg (starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm (x u - p)) * + Complex.orthonormalBasisOneI.repr.symm (x u - q))) := by + let z := fun u ↦ Complex.orthonormalBasisOneI.repr.symm (x u - p) + let w := fun u ↦ Complex.orthonormalBasisOneI.repr.symm (x u - q) + have hz : Continuous z := Complex.orthonormalBasisOneI.repr.symm.continuous.comp (hx.sub + continuous_const) + have hw : Continuous w := Complex.orthonormalBasisOneI.repr.symm.continuous.comp (hx.sub + continuous_const) + have hδ : Continuous (fun u ↦ Complex.arg (starRingEnd ℂ (z u) * w u)) := + continuous_arg_conj_mul_of_re_pos hz hw hpos + refine ⟨hθ.1.add hδ, fun u ↦ ?_⟩ + have hprod : starRingEnd ℂ (z u) * w u ≠ 0 := by + intro hzero + have := hpos u + rw [hzero] at this + simp at this + have hzne : z u ≠ 0 := fun hzero ↦ hprod (by simp [hzero]) + have hwne : w u ≠ 0 := fun hzero ↦ hprod (by simp [hzero]) + have hc : Real.cos (θ u) = (z u).re / ‖z u‖ := by + simpa only [z, pointComplex_re_m85d0e79, Complex.orthonormalBasisOneI.repr.symm.norm_map] + using (hθ.2 + u).1 + have hs : Real.sin (θ u) = (z u).im / ‖z u‖ := by + simpa only [z, pointComplex_im_m85d0e79, Complex.orthonormalBasisOneI.repr.symm.norm_map] + using (hθ.2 + u).2 + simpa only [z, w, pointComplex_re_m85d0e79, pointComplex_im_m85d0e79, + Complex.orthonormalBasisOneI.repr.symm.norm_map] using + normalized_complex_rotation_by_relative_arg hzne hwne hc hs + +/-- Moving the basepoint through the positive-relative-dot neighborhood preserves winding. -/ +theorem curveWinding_eq_of_relative_dot_pos {a b : ℝ} (hab : a ≤ b) + {x : Set.Icc a b → Point} (hx : Continuous x) + (hclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + {p q : Point} {θ : Set.Icc a b → ℝ} (hθ : IsCurveAngleLift x p θ) + (hpos : ∀ u, 0 < (starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm (x u - p)) * + Complex.orthonormalBasisOneI.repr.symm (x u - q)).re) : + curveWinding hab x q = curveWinding hab x p := by + let δ := fun u ↦ Complex.arg (starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm (x u - p)) * + Complex.orthonormalBasisOneI.repr.symm (x u - q)) + have hθδ : IsCurveAngleLift x q (fun u ↦ θ u + δ u) := + hθ.add_principal_basepoint_correction hx hpos + have hδ : δ ⟨a, le_rfl, hab⟩ = δ ⟨b, hab, le_rfl⟩ := by + simp only [δ, hclosed] + rw [hθδ.curveWinding_eq hab, hθ.curveWinding_eq hab] + rw [hδ] + ring + +/-- Off a compact continuous loop, every sufficiently nearby basepoint has positive relative dot +product with the original radial vectors. -/ +theorem exists_ball_relative_dot_pos {a b : ℝ} (hab : a ≤ b) + {x : Set.Icc a b → Point} (hx : Continuous x) {p : Point} + (hp : p ∉ Set.range x) : + ∃ r > 0, ∀ q, dist q p < r → ∀ u, + 0 < (starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm (x u - p)) * + Complex.orthonormalBasisOneI.repr.symm (x u - q)).re := by + let _ : Nonempty (Set.Icc a b) := ⟨⟨a, le_rfl, hab⟩⟩ + let f : Set.Icc a b → ℝ := fun u ↦ ‖x u - p‖ + have hf : Continuous f := (hx.sub continuous_const).norm + obtain ⟨u₀, -, hu₀⟩ := isCompact_univ.exists_isMinOn Set.univ_nonempty hf.continuousOn + have hne (u : Set.Icc a b) : x u - p ≠ 0 := by + intro hzero + apply hp + refine ⟨u, ?_⟩ + exact sub_eq_zero.mp hzero + have hfu₀ : 0 < f u₀ := norm_pos_iff.mpr (hne u₀) + refine ⟨f u₀ / 2, half_pos hfu₀, fun q hq u ↦ ?_⟩ + have hmin : f u₀ ≤ f u := hu₀ (Set.mem_univ u) + have hd : ‖p - q‖ < f u₀ / 2 := by + simpa [dist_eq_norm, norm_sub_rev] using hq + have hd' : ‖p - q‖ < ‖x u - p‖ := lt_of_lt_of_le hd (by linarith) + rw [conj_pointComplex_mul_re_m85d0e79] + have hw : x u - q = (x u - p) + (p - q) := by abel + rw [hw, inner_add_right, real_inner_self_eq_norm_sq] + have hcs := abs_real_inner_le_norm (x u - p) (p - q) + have hlower : -(‖x u - p‖ * ‖p - q‖) ≤ inner ℝ (x u - p) (p - q) := + (neg_le_of_abs_le hcs) + nlinarith [norm_pos_iff.mpr (hne u)] + +/-- Winding of a continuous closed loop is locally constant away from its range. -/ +theorem curveWinding_locally_constant_off_range {a b : ℝ} (hab : a ≤ b) + {x : Set.Icc a b → Point} (hx : Continuous x) + (hclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + {p : Point} (hp : p ∉ Set.range x) : + ∃ U : Set Point, IsOpen U ∧ p ∈ U ∧ + ∀ q ∈ U, curveWinding hab x q = curveWinding hab x p := by + obtain ⟨r, hr, hdot⟩ := exists_ball_relative_dot_pos hab hx hp + refine ⟨Metric.ball p r, Metric.isOpen_ball, Metric.mem_ball_self hr, fun q hq ↦ ?_⟩ + have hqp : dist q p < r := by simpa [dist_comm] using hq + have hpos := hdot q hqp + by_cases hpLift : ∃ θ, IsCurveAngleLift x p θ + · obtain ⟨θ, hθ⟩ := hpLift + exact curveWinding_eq_of_relative_dot_pos hab hx hclosed hθ hpos + · have hqLift : ¬∃ ψ, IsCurveAngleLift x q ψ := by + rintro ⟨ψ, hψ⟩ + have hrev : ∀ u, 0 < (starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm (x u - q)) * + Complex.orthonormalBasisOneI.repr.symm (x u - p)).re := by + intro u + rw [conj_pointComplex_mul_re_m85d0e79, real_inner_comm, ← conj_pointComplex_mul_re_m85d0e79] + exact hpos u + exact hpLift ⟨_, hψ.add_principal_basepoint_correction hx hrev⟩ + unfold curveWinding + rw [dite_eq_right hqLift, dite_eq_right hpLift] + +/-- While the relative dot product with the initial radius vector stays positive, the +increment of a continuous angle lift is the principal relative argument, computed as the +arctangent of the ratio of the relative cross product to the relative dot product. -/ +theorem IsCurveAngleLift.sub_eq_arctan_of_dot_pos {a b : ℝ} + {x : Set.Icc a b → Point} {p : Point} {θ : Set.Icc a b → ℝ} + (hx : Continuous x) (hθ : IsCurveAngleLift x p θ) {t u : Set.Icc a b} + (htu : (t : ℝ) ≤ (u : ℝ)) + (hpos : ∀ s : Set.Icc a b, (t : ℝ) ≤ (s : ℝ) → (s : ℝ) ≤ (u : ℝ) → + 0 < (x t - p) 0 * (x s - p) 0 + (x t - p) 1 * (x s - p) 1) : + θ u - θ t = Real.arctan + (((x t - p) 0 * (x u - p) 1 - (x t - p) 1 * (x u - p) 0) / + ((x t - p) 0 * (x u - p) 0 + (x t - p) 1 * (x u - p) 1)) := by + have hsub : ∀ s : Set.Icc (t : ℝ) (u : ℝ), (s : ℝ) ∈ Set.Icc a b := fun s ↦ + ⟨le_trans t.property.1 s.property.1, le_trans s.property.2 u.property.2⟩ + let ι : Set.Icc (t : ℝ) (u : ℝ) → Set.Icc a b := fun s ↦ ⟨s.val, hsub s⟩ + have hι : Continuous ι := continuous_subtype_val.subtype_mk _ + set y : Set.Icc (t : ℝ) (u : ℝ) → Point := x ∘ ι with hy + have hycont : Continuous y := hx.comp hι + have hιu : ι ⟨(u : ℝ), htu, le_rfl⟩ = u := Subtype.ext rfl + have hιt : ι ⟨(t : ℝ), le_rfl, htu⟩ = t := Subtype.ext rfl + set z : ℂ := Complex.orthonormalBasisOneI.repr.symm (x t - p) with hz + set w : Set.Icc (t : ℝ) (u : ℝ) → ℂ := + fun s ↦ Complex.orthonormalBasisOneI.repr.symm (y s - p) with hw + have hwcont : Continuous w := + Complex.orthonormalBasisOneI.repr.symm.continuous.comp (hycont.sub continuous_const) + have hre (s : Set.Icc (t : ℝ) (u : ℝ)) : + (starRingEnd ℂ z * w s).re = + (x t - p) 0 * (x (ι s) - p) 0 + (x t - p) 1 * (x (ι s) - p) 1 := by + simp only [hz, hw, hy, Complex.mul_re, Complex.conj_re, Complex.conj_im, + pointComplex_re_m85d0e79, pointComplex_im_m85d0e79, Function.comp_apply] + ring + have him (s : Set.Icc (t : ℝ) (u : ℝ)) : + (starRingEnd ℂ z * w s).im = + (x t - p) 0 * (x (ι s) - p) 1 - (x t - p) 1 * (x (ι s) - p) 0 := by + simp only [hz, hw, hy, Complex.mul_im, Complex.conj_re, Complex.conj_im, + pointComplex_re_m85d0e79, pointComplex_im_m85d0e79, Function.comp_apply] + ring + have hposC : ∀ s : Set.Icc (t : ℝ) (u : ℝ), 0 < (starRingEnd ℂ z * w s).re := by + intro s + rw [hre s] + exact hpos (ι s) s.property.1 s.property.2 + have hzne : z ≠ 0 := by + intro h0 + have := hposC ⟨(t : ℝ), le_rfl, htu⟩ + rw [h0] at this + simp at this + have hwne : ∀ s, w s ≠ 0 := by + intro s h0 + have := hposC s + rw [h0] at this + simp at this + have hznorm : ‖z‖ = ‖x t - p‖ := Complex.orthonormalBasisOneI.repr.symm.norm_map _ + have hc : Real.cos (θ t) = z.re / ‖z‖ := by + rw [hznorm, hz, pointComplex_re_m85d0e79]; exact (hθ.2 t).1 + have hsn : Real.sin (θ t) = z.im / ‖z‖ := by + rw [hznorm, hz, pointComplex_im_m85d0e79]; exact (hθ.2 t).2 + have hlift1 : IsCurveAngleLift y p (θ ∘ ι) := hθ.comp hι + have hlift2 : IsCurveAngleLift y p + (fun s ↦ θ t + Complex.arg (starRingEnd ℂ z * w s)) := by + refine ⟨continuous_const.add + (continuous_arg_conj_mul_of_re_pos continuous_const hwcont hposC), fun s ↦ ?_⟩ + have hrot := normalized_complex_rotation_by_relative_arg hzne (hwne s) hc hsn + have hwnorm : ‖w s‖ = ‖y s - p‖ := + Complex.orthonormalBasisOneI.repr.symm.norm_map _ + rw [hwnorm] at hrot + simpa only [hw, pointComplex_re_m85d0e79, pointComplex_im_m85d0e79] using hrot + have hincr := IsCurveAngleLift.endpoint_increment_eq htu hlift1 hlift2 + simp only [Function.comp_apply, hιu, hιt] at hincr + have hwt : w ⟨(t : ℝ), le_rfl, htu⟩ = z := by + simp only [hw, hy, Function.comp_apply, hιt, hz] + have hargt : Complex.arg (starRingEnd ℂ z * w ⟨(t : ℝ), le_rfl, htu⟩) = 0 := by + rw [hwt, mul_comm, Complex.mul_conj] + exact Complex.arg_ofReal_of_nonneg (Complex.normSq_nonneg z) + rw [hargt] at hincr + have hre' : (starRingEnd ℂ z * w ⟨(u : ℝ), htu, le_rfl⟩).re = + (x t - p) 0 * (x u - p) 0 + (x t - p) 1 * (x u - p) 1 := by + rw [hre ⟨(u : ℝ), htu, le_rfl⟩, hιu] + have him' : (starRingEnd ℂ z * w ⟨(u : ℝ), htu, le_rfl⟩).im = + (x t - p) 0 * (x u - p) 1 - (x t - p) 1 * (x u - p) 0 := by + rw [him ⟨(u : ℝ), htu, le_rfl⟩, hιu] + have hargu : Complex.arg (starRingEnd ℂ z * w ⟨(u : ℝ), htu, le_rfl⟩) = + Real.arctan + (((x t - p) 0 * (x u - p) 1 - (x t - p) 1 * (x u - p) 0) / + ((x t - p) 0 * (x u - p) 0 + (x t - p) 1 * (x u - p) 1)) := by + rw [← hre', ← him'] + have hlt : |Complex.arg (starRingEnd ℂ z * w ⟨(u : ℝ), htu, le_rfl⟩)| < Real.pi / 2 := + Complex.abs_arg_lt_pi_div_two_iff.mpr (Or.inl (hposC _)) + refine (Real.arctan_eq_of_tan_eq (Complex.tan_arg _) ?_).symm + exact ⟨neg_lt_of_abs_lt hlt, lt_of_abs_lt hlt⟩ + rw [hargu] at hincr + linarith [hincr] + +/-- Winding is constant on an open neighbourhood of any point off the range of a closed +continuous loop, and that neighbourhood avoids the range. -/ +theorem curveWinding_locally_constant_on_compl_range + {a b : ℝ} (hab : a ≤ b) {x : Set.Icc a b → Point} (hx : Continuous x) + (hclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + {p : Point} (hp : p ∉ Set.range x) : + ∃ U : Set Point, IsOpen U ∧ p ∈ U ∧ ∀ q ∈ U, + q ∉ Set.range x ∧ curveWinding hab x q = curveWinding hab x p := by + obtain ⟨U, hU, hpU, heq⟩ := curveWinding_locally_constant_off_range hab hx hclosed hp + have hclosedRange : IsClosed (Set.range x) := by + simpa only [Set.image_univ] using (isCompact_univ.image hx).isClosed + exact ⟨U ∩ (Set.range x)ᶜ, hU.inter hclosedRange.isOpen_compl, ⟨hpU, hp⟩, + fun q hq ↦ ⟨hq.2, heq q hq.1⟩⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Winding Lifts +-/ + +@[expose] public section + +noncomputable section + +open scoped unitInterval + +namespace MovingSofa + +private lemma pointComplex_re_m8588f5d (v : Point) : (Complex.orthonormalBasisOneI.repr.symm v).re = + v 0 := by + simp [Complex.orthonormalBasisOneI_repr_symm_apply] + +private lemma pointComplex_im_m8588f5d (v : Point) : (Complex.orthonormalBasisOneI.repr.symm v).im = + v 1 := by + simp [Complex.orthonormalBasisOneI_repr_symm_apply] + +private lemma conj_pointComplex_mul_re_m8588f5d (v w : Point) : + (starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm v) * + Complex.orthonormalBasisOneI.repr.symm w).re = inner ℝ v w := by + simp [Complex.orthonormalBasisOneI_repr_symm_apply, inner, Fin.sum_univ_two] + ring + +/-- Every continuous interval path avoiding a point admits a continuous angle lift. -/ +theorem exists_curveAngleLift_of_avoids {a b : ℝ} (hab : a < b) + {x : Set.Icc a b → Point} (hx : Continuous x) {p : Point} + (hp : p ∉ Set.range x) : ∃ α, IsCurveAngleLift x p α := by + let A : Set.Icc a b := ⟨a, le_rfl, hab.le⟩ + let B : Set.Icc a b := ⟨b, hab.le, le_rfl⟩ + let φ : I → Set.Icc a b := Set.Icc.convexComb A B + let z : I → ℂ := fun u ↦ Complex.orthonormalBasisOneI.repr.symm (x (φ u) - p) + have hz : Continuous z := + Complex.orthonormalBasisOneI.repr.symm.continuous.comp ((hx.comp (Set.Icc.continuous_convexComb + A B)).sub + continuous_const) + have hzne (u : I) : z u ≠ 0 := by + rw [← norm_ne_zero_iff, Complex.orthonormalBasisOneI.repr.symm.norm_map, norm_ne_zero_iff, + sub_ne_zero] + intro heq + exact hp ⟨φ u, heq⟩ + let ϑ : I → Real.Angle := fun u ↦ (Complex.arg (z u) : Real.Angle) + have hϑ : Continuous ϑ := by + rw [continuous_iff_continuousAt] + intro u + exact (Complex.continuousAt_arg_coe_angle (hzne u)).comp hz.continuousAt + let ϑ₀ := ϑ 0 + obtain ⟨β, hβ, hβ0, hβϑ⟩ := Real.Angle.exists_continuous_lift_zero + (fun u ↦ ϑ u - ϑ₀) (hϑ.sub continuous_const) (by simp [ϑ₀]) + let ψ : Set.Icc a b → I := fun u ↦ + ⟨((u : ℝ) - a) / (b - a), by + constructor + · exact div_nonneg (sub_nonneg.mpr u.property.1) (sub_nonneg.mpr hab.le) + · exact (div_le_one (sub_pos.mpr hab)).2 (by linarith [u.property.2])⟩ + have hψ : Continuous ψ := by + apply Continuous.subtype_mk + fun_prop + have hφψ (u : Set.Icc a b) : φ (ψ u) = u := by + apply Subtype.ext + simp [φ, ψ, A, B] + field_simp [sub_ne_zero.mpr hab.ne'] + ring + let c := Complex.arg (z 0) + refine ⟨fun u ↦ β (ψ u) + c, hβ.comp hψ |>.add continuous_const, fun u ↦ ?_⟩ + have hangle : ((β (ψ u) + c : ℝ) : Real.Angle) = Complex.arg + (Complex.orthonormalBasisOneI.repr.symm (x u - p)) := by + rw [Real.Angle.coe_add, hβϑ] + simp only [ϑ₀, c, ϑ] + change (Complex.arg (Complex.orthonormalBasisOneI.repr.symm (x (φ (ψ u)) - p)) : Real.Angle) - + (Complex.arg (z 0) : Real.Angle) + (Complex.arg (z 0) : Real.Angle) = _ + rw [hφψ] + simp + have hne : Complex.orthonormalBasisOneI.repr.symm (x u - p) ≠ 0 := by + rw [← norm_ne_zero_iff, Complex.orthonormalBasisOneI.repr.symm.norm_map, norm_ne_zero_iff, + sub_ne_zero] + intro heq + exact hp ⟨u, heq⟩ + constructor + · have := congrArg Real.Angle.cos hangle + rw [Real.Angle.cos_coe, Real.Angle.cos_coe, Complex.cos_arg hne] at this + simpa only [pointComplex_re_m8588f5d, Complex.orthonormalBasisOneI.repr.symm.norm_map] using + this + · have := congrArg Real.Angle.sin hangle + rw [Real.Angle.sin_coe, Real.Angle.sin_coe, Complex.sin_arg] at this + simpa only [pointComplex_im_m8588f5d, Complex.orthonormalBasisOneI.repr.symm.norm_map] using + this + +/-- A closed path contained in a strict half-plane about a point has winding zero there. -/ +theorem curveWinding_eq_zero_of_inner_pos {a b : ℝ} (hab : a ≤ b) + {x : Set.Icc a b → Point} (hx : Continuous x) + (hclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + (p v : Point) (hv : v ≠ 0) (hpos : ∀ u, 0 < inner ℝ v (x u - p)) : + curveWinding hab x p = 0 := by + let z := Complex.orthonormalBasisOneI.repr.symm v + let w := fun u ↦ Complex.orthonormalBasisOneI.repr.symm (x u - p) + have hz : z ≠ 0 := by + rw [← norm_ne_zero_iff, Complex.orthonormalBasisOneI.repr.symm.norm_map, norm_ne_zero_iff] + exact hv + have hpositive (u : Set.Icc a b) : 0 < (starRingEnd ℂ z * w u).re := by + rw [conj_pointComplex_mul_re_m8588f5d] + exact hpos u + have harg : Continuous (fun u ↦ Complex.arg (starRingEnd ℂ z * w u)) := + continuous_arg_conj_mul_of_re_pos continuous_const + (Complex.orthonormalBasisOneI.repr.symm.continuous.comp (hx.sub continuous_const)) hpositive + let α := fun u ↦ Complex.arg z + Complex.arg (starRingEnd ℂ z * w u) + have hα : IsCurveAngleLift x p α := by + refine ⟨continuous_const.add harg, fun u ↦ ?_⟩ + have hw : w u ≠ 0 := by + intro heq + simpa [heq] using hpositive u + simpa only [α, w, pointComplex_re_m8588f5d, pointComplex_im_m8588f5d, + Complex.orthonormalBasisOneI.repr.symm.norm_map] using + normalized_complex_rotation_by_arg hz hw + rw [hα.curveWinding_eq hab] + have hend : α ⟨b, hab, le_rfl⟩ = α ⟨a, le_rfl, hab⟩ := by + simp only [α, w, hclosed] + rw [hend, sub_self, zero_div] + +/-- A closed continuous loop has winding zero at every point of an unbounded connected +component of the complement of its range. -/ +theorem curveWinding_eq_zero_of_unbounded_component + {a b : ℝ} (hab : a ≤ b) {x : Set.Icc a b → Point} (hx : Continuous x) + (hclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + {p : Point} (hp : p ∉ Set.range x) + (hunbounded : ¬Bornology.IsBounded (connectedComponentIn (Set.range x)ᶜ p)) : + curveWinding hab x p = 0 := by + let V := connectedComponentIn (Set.range x)ᶜ p + let _ : PreconnectedSpace V := + Subtype.preconnectedSpace isPreconnected_connectedComponentIn + have hlc : IsLocallyConstant (fun z : V ↦ curveWinding hab x z.val) := by + apply (IsLocallyConstant.iff_exists_open _).mpr + intro z + have hzout : z.val ∉ Set.range x := connectedComponentIn_subset _ _ z.property + obtain ⟨W, hWopen, hzW, hWeq⟩ := + curveWinding_locally_constant_off_range hab hx hclosed hzout + exact ⟨Subtype.val ⁻¹' W, hWopen.preimage continuous_subtype_val, hzW, + fun z' hz' ↦ hWeq z'.val hz'⟩ + have hrangeBounded : Bornology.IsBounded (Set.range x) := by + simpa only [Set.image_univ] using (isCompact_univ.image hx).isBounded + obtain ⟨R, hR⟩ := (Metric.isBounded_iff_subset_closedBall (0 : Point)).mp hrangeBounded + have hRnonneg : 0 ≤ R := by + have h := hR (Set.mem_range_self ⟨a, le_rfl, hab⟩) + have hnorm : ‖x ⟨a, le_rfl, hab⟩‖ ≤ R := by + simpa [Metric.mem_closedBall, dist_zero_right] using h + exact (norm_nonneg _).trans hnorm + have hvfar : ∃ v ∈ V, R + 1 < ‖v‖ := by + by_contra hn + push Not at hn + apply hunbounded + refine (Metric.isBounded_iff_subset_closedBall (0 : Point)).2 ⟨R + 1, ?_⟩ + intro v hv + simpa [Metric.mem_closedBall, dist_zero_right] using hn v hv + obtain ⟨v, hvV, hvnorm⟩ := hvfar + have hvzero : curveWinding hab x v = 0 := by + apply curveWinding_eq_zero_of_inner_pos hab hx hclosed v (-v) + · exact neg_ne_zero.mpr (by + intro hv0 + rw [hv0, norm_zero] at hvnorm + linarith) + · intro u + rw [inner_neg_left, inner_sub_right, real_inner_self_eq_norm_sq] + rw [← real_inner_comm v (x u)] + have hxu := hR (Set.mem_range_self u) + have hxnorm : ‖x u‖ ≤ R := by + simpa [Metric.mem_closedBall, dist_zero_right] using hxu + have hvpos : 0 < ‖v‖ := lt_of_le_of_lt hRnonneg (lt_add_one R) |>.trans hvnorm + have hvlarge : R < ‖v‖ := lt_trans (lt_add_one R) hvnorm + have hinner := abs_real_inner_le_norm (x u) v + have hlower : inner ℝ (x u) v ≤ ‖x u‖ * ‖v‖ := le_trans (le_abs_self _) hinner + have hprod : ‖x u‖ * ‖v‖ < ‖v‖ * ‖v‖ := + lt_of_le_of_lt (mul_le_mul_of_nonneg_right hxnorm (norm_nonneg v)) + (mul_lt_mul_of_pos_right hvlarge hvpos) + rw [pow_two] + linarith + exact (hlc.apply_eq_of_preconnectedSpace ⟨p, mem_connectedComponentIn hp⟩ ⟨v, hvV⟩).trans + hvzero + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The range of an almost injective continuous BV path is null + +A continuous planar BV path that is injective on `[a, b)` sweeps a Lebesgue null set: each +compact initial subarc has finite Hausdorff length, hence vanishing Hausdorff `2`-measure, +and a rational exhaustion together with the terminal point covers the whole range. +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set + +namespace MovingSofa + +/-- The range of a continuous planar BV path injective on `[a, b)` is Lebesgue null. -/ +theorem ContinuousBVPaths.volume_range_eq_zero_of_injOn + {a b : ℝ} (hab : a ≤ b) (x : ContinuousBVPaths a b) + (hinj : Set.InjOn x.val {t | (t : ℝ) < b}) : volume (Set.range x.val) = 0 := by + let γ : ℝ → Point := x.val ∘ Set.projIcc a b hab + have hγcont : Continuous γ := x.property.1.comp continuous_projIcc + have hγBV (q : ℝ) : BoundedVariationOn γ (Icc a q) := by + apply ne_top_of_le_ne_top x.boundedVariationOn + exact eVariationOn.comp_le_of_monotoneOn x.val (Set.projIcc a b hab) + ((Set.monotone_projIcc hab).monotoneOn _) (fun _ _ ↦ mem_univ _) + have hnull (q : {q : ℚ // a ≤ (q : ℝ) ∧ (q : ℝ) < b}) : + volume (γ '' Icc a (q : ℝ)) = 0 := by + apply volume_image_Icc_eq_zero_of_boundedVariationOn γ q.property.1 hγcont.continuousOn + _ (hγBV _) + intro u hu v hv huv + have huab : u ∈ Icc a b := ⟨hu.1, hu.2.trans q.property.2.le⟩ + have hvab : v ∈ Icc a b := ⟨hv.1, hv.2.trans q.property.2.le⟩ + have heq := hinj (show (Set.projIcc a b hab u : ℝ) < b by + rw [Set.projIcc_of_mem hab huab]; exact hu.2.trans_lt q.property.2) + (show (Set.projIcc a b hab v : ℝ) < b by + rw [Set.projIcc_of_mem hab hvab]; exact hv.2.trans_lt q.property.2) huv + have hval := congrArg Subtype.val heq + simpa only [Set.projIcc_of_mem hab huab, Set.projIcc_of_mem hab hvab] using hval + apply measure_mono_null (t := {x.val ⟨b, hab, le_rfl⟩} ∪ + ⋃ q : {q : ℚ // a ≤ (q : ℝ) ∧ (q : ℝ) < b}, γ '' Icc a (q : ℝ)) + · rintro y ⟨t, rfl⟩ + by_cases ht : (t : ℝ) = b + · exact Or.inl (congrArg x.val (show t = ⟨b, hab, le_rfl⟩ from Subtype.ext ht)) + · have htb : (t : ℝ) < b := lt_of_le_of_ne t.property.2 ht + obtain ⟨q, htq, hqb⟩ := exists_rat_btwn htb + apply Or.inr + apply mem_iUnion.2 + refine ⟨⟨q, t.property.1.trans htq.le, hqb⟩, (t : ℝ), ⟨t.property.1, htq.le⟩, ?_⟩ + dsimp [γ] + rw [Set.projIcc_of_mem hab t.property] + · exact measure_union_null (measure_singleton _) (measure_iUnion_null hnull) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Segment Area +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Half the oriented determinant of the two endpoints. -/ +def segmentArea (p q : Point) : ℝ := planeCrossProduct p q / 2 + +/-- The signed segment area is antisymmetric in its two endpoints. -/ +theorem segmentArea_swap (p q : Point) : segmentArea p q = -segmentArea q p := by + rw [segmentArea, segmentArea, planeCrossProduct_swap p q] + ring + +/-- Translating both endpoints of a segment shifts its signed area by a boundary term. -/ +theorem segmentArea_add_right (p q v : Point) : + segmentArea (p + v) (q + v) = + segmentArea p q + (v 0 * (q 1 - p 1) - v 1 * (q 0 - p 0)) / 2 := by + have hadd : ∀ (x y : Point) (i : Fin 2), (x + y) i = x i + y i := fun _ _ _ ↦ by simp + simp only [segmentArea, planeCrossProduct, hadd] + ring + +/-- The signed area of the segment joining two convex combinations of endpoints is the same +combination of the two signed areas, provided the two endpoints of each pair have a common height: +the mixed terms then cancel. -/ +theorem segmentArea_combination_of_apply_one_eq (c : ℝ) {p₁ p₂ q₁ q₂ : Point} + (hp : p₁ 1 = p₂ 1) (hq : q₁ 1 = q₂ 1) : + segmentArea ((1 - c) • p₁ + c • p₂) ((1 - c) • q₁ + c • q₂) = + (1 - c) * segmentArea p₁ q₁ + c * segmentArea p₂ q₂ := by + simp only [segmentArea, planeCrossProduct, PiLp.add_apply, PiLp.smul_apply, smul_eq_mul, hp, hq] + ring + +/-- Two points on a normal line through the origin span no signed area. -/ +theorem segmentArea_eq_zero_of_inner_normalVector_eq_zero {p q : Point} {t : ℝ} + (hp : inner ℝ p (normalVector (t : Real.Angle)) = 0) + (hq : inner ℝ q (normalVector (t : Real.Angle)) = 0) : segmentArea p q = 0 := by + rw [segmentArea, planeCrossProduct_eq_inner_frame p q t, hp, hq] + ring + +/-- Collinear additivity of the signed segment area on a common normal line. -/ +theorem segmentArea_sub_segmentArea_of_inner_normalVector_eq {p q s : Point} {t c : ℝ} + (hp : inner ℝ p (normalVector (t : Real.Angle)) = c) + (hq : inner ℝ q (normalVector (t : Real.Angle)) = c) + (hs : inner ℝ s (normalVector (t : Real.Angle)) = c) : + segmentArea p s - segmentArea q s = segmentArea p q := by + rw [segmentArea, segmentArea, segmentArea, planeCrossProduct_eq_inner_frame p s t, + planeCrossProduct_eq_inner_frame q s t, planeCrossProduct_eq_inner_frame p q t, + hp, hq, hs] + ring + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Segment Area / Parametrization +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open MeasureTheory Set + +/-- The affine segment from `p` to `q`, bundled as a continuous BV path. -/ +def lineSegmentBVPath (p q : Point) : ContinuousBVPaths 0 1 where + val := Path.segment p q + property := by + constructor + · exact (Path.segment p q).continuous + · intro i + let C : NNReal := ⟨|q i - p i|, abs_nonneg _⟩ + have hLip : LipschitzWith C (fun r : ℝ ↦ p i + r * (q i - p i)) := by + apply LipschitzWith.of_dist_le_mul + intro x y + simp only [Real.dist_eq] + change |(p i + x * (q i - p i)) - (p i + y * (q i - p i))| ≤ + |q i - p i| * |x - y| + rw [show (p i + x * (q i - p i)) - (p i + y * (q i - p i)) = + (x - y) * (q i - p i) by ring, abs_mul, mul_comm] + have hid : BoundedVariationOn ((↑) : Set.Icc (0 : ℝ) 1 → ℝ) Set.univ := by + apply ((show Monotone ((↑) : Set.Icc (0 : ℝ) 1 → ℝ) from fun _ _ h ↦ h).monotoneOn + Set.univ).boundedVariationOn (C := 1) + intro t _ + rw [abs_of_nonneg t.property.1] + exact t.property.2 + have hbv := hLip.comp_boundedVariationOn hid + rw [show (fun t ↦ (Path.segment p q t) i) = + (fun r : ℝ ↦ p i + r * (q i - p i)) ∘ ((↑) : Set.Icc (0 : ℝ) 1 → ℝ) by + funext t + simp only [Path.segment_apply, AffineMap.lineMap_apply_module', PiLp.add_apply, + PiLp.smul_apply, + PiLp.sub_apply, smul_eq_mul, Function.comp_apply] + change (t : ℝ) * (q i - p i) + p i = + p i + (t : ℝ) * (q i - p i) + ring] + exact hbv + +/-- The affine parametrization of an oriented segment, evaluated. -/ +theorem lineSegmentBVPath_apply (p q : Point) (s : Set.Icc (0 : ℝ) 1) : + (lineSegmentBVPath p q).val s = (1 - (s : ℝ)) • p + (s : ℝ) • q := by + change Path.segment p q s = _ + simp [Path.segment_apply, AffineMap.lineMap_apply_module'] + module + +theorem curveAreaFunctional_lineSegmentBVPath (p q : Point) : + curveAreaFunctional (lineSegmentBVPath p q) = segmentArea p q := by + have hcoord (i : Fin 2) (t : Set.Icc (0 : ℝ) 1) : + (continuousBVCoordinate (lineSegmentBVPath p q) i).toFun t = + p i + (q i - p i) * (t : ℝ) := by + change (Path.segment p q t) i = _ + simp [Path.segment_apply, AffineMap.lineMap_apply_module'] + ring + unfold curveAreaFunctional segmentArea + change + (intervalStieltjesIntegral + (continuousBVCoordinate (lineSegmentBVPath p q) 1) + (continuousBVCoordinate (lineSegmentBVPath p q) 0).toFun Set.univ - + intervalStieltjesIntegral + (continuousBVCoordinate (lineSegmentBVPath p q) 0) + (continuousBVCoordinate (lineSegmentBVPath p q) 1).toFun Set.univ) / 2 = + planeCrossProduct p q / 2 + rw [intervalStieltjesIntegral_affine_cross + (continuousBVCoordinate (lineSegmentBVPath p q) 0) + (continuousBVCoordinate (lineSegmentBVPath p q) 1) + (p 0) (q 0 - p 0) (p 1) (q 1 - p 1) (hcoord 0) (hcoord 1)] + simp only [planeCrossProduct] + ring + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Smooth Interval Paths +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A continuously differentiable planar path on a compact interval has continuous +bounded-variation coordinates. -/ +def continuousBVOfContDiffOn {a b : ℝ} (f : ℝ → Point) + (hf : ContDiffOn ℝ 1 f (Set.Icc a b)) : ContinuousBVPaths a b := by + refine ⟨fun t ↦ f t, continuousOn_iff_continuous_domRestrict.mp hf.continuousOn, ?_⟩ + obtain ⟨C, hC⟩ := hf.exists_lipschitzOnWith (by norm_num) (convex_Icc a b) isCompact_Icc + have hid : BoundedVariationOn (fun t : Set.Icc a b ↦ (t : ℝ)) Set.univ := by + apply MonotoneOn.boundedVariationOn (C := |a| + |b|) + (show MonotoneOn (fun t : Set.Icc a b ↦ (t : ℝ)) Set.univ from + fun _ _ _ _ h ↦ h) + intro t _ + apply abs_le.mpr + constructor + · linarith [t.property.1, neg_abs_le a, abs_nonneg b] + · linarith [t.property.2, le_abs_self b, abs_nonneg a] + have hpath := hC.comp_boundedVariationOn (fun t _ ↦ t.property) hid + intro i + exact (EuclideanSpace.proj (𝕜 := ℝ) i).lipschitzWith.comp_boundedVariationOn hpath + +/-- A Lipschitz planar path on a compact interval has continuous bounded-variation coordinates. -/ +def continuousBVOfLipschitz {a b : ℝ} (f : Set.Icc a b → Point) + {C : NNReal} (hf : LipschitzWith C f) : ContinuousBVPaths a b := by + refine ⟨f, hf.continuous, ?_⟩ + have hid : BoundedVariationOn (fun t : Set.Icc a b ↦ (t : ℝ)) Set.univ := by + apply MonotoneOn.boundedVariationOn (C := |a| + |b|) + (show MonotoneOn (fun t : Set.Icc a b ↦ (t : ℝ)) Set.univ from + fun _ _ _ _ h ↦ h) + intro t _ + apply abs_le.mpr + constructor + · linarith [t.property.1, neg_abs_le a, abs_nonneg b] + · linarith [t.property.2, le_abs_self b, abs_nonneg a] + have hpath : BoundedVariationOn f Set.univ := by + exact hf.comp_boundedVariationOn + (show BoundedVariationOn (id : Set.Icc a b → Set.Icc a b) Set.univ from hid) + intro i + exact (EuclideanSpace.proj (𝕜 := ℝ) i).lipschitzWith.comp_boundedVariationOn hpath + +/-- A coordinate of an interval path has bounded variation on a closed subinterval on which the +path agrees with a continuously differentiable function. -/ +theorem boundedVariationOn_coord_Icc_of_contDiffOn {a b : ℝ} (g : Set.Icc a b → Point) + {l r : ℝ} (hl : a ≤ l) (hlr : l ≤ r) (hr : r ≤ b) {F : ℝ → Point} + (hF : ContDiffOn ℝ 1 F (Set.Icc l r)) + (hgF : ∀ t : Set.Icc l r, g ⟨t.val, hl.trans t.2.1, t.2.2.trans hr⟩ = F t.val) + (i : Fin 2) : + BoundedVariationOn (fun t : Set.Icc a b ↦ g t i) + (Set.Icc ⟨l, hl, hlr.trans hr⟩ ⟨r, hl.trans hlr, hr⟩) := by + set ι : Set.Icc l r → Set.Icc a b := fun t ↦ ⟨t.val, hl.trans t.2.1, t.2.2.trans hr⟩ + have hmono : MonotoneOn ι Set.univ := fun _ _ _ _ h ↦ h + have himg : ι '' Set.univ = + Set.Icc (⟨l, hl, hlr.trans hr⟩ : Set.Icc a b) ⟨r, hl.trans hlr, hr⟩ := by + ext x + constructor + · rintro ⟨t, -, rfl⟩ + exact ⟨t.2.1, t.2.2⟩ + · intro hx + exact ⟨⟨x.val, hx.1, hx.2⟩, Set.mem_univ _, Subtype.ext rfl⟩ + change eVariationOn _ _ ≠ ⊤ + rw [← himg, ← eVariationOn.comp_eq_of_monotoneOn _ ι hmono] + have hfun : ((fun t : Set.Icc a b ↦ g t i) ∘ ι) = fun t : Set.Icc l r ↦ F t.val i := by + funext t + exact congrArg (fun p : Point ↦ p i) (hgF t) + rw [hfun] + exact (continuousBVOfContDiffOn F hF).property.2 i + +/-- Gluing two continuously differentiable pieces along a shared endpoint gives a continuous +path of bounded variation. -/ +def continuousBVOfContDiffOnIccUnionIcc {a b c : ℝ} (f : ℝ → Point) (hab : a ≤ b) (hbc : b ≤ c) + (h₁ : ContDiffOn ℝ 1 f (Set.Icc a b)) (h₂ : ContDiffOn ℝ 1 f (Set.Icc b c)) : + ContinuousBVPaths a c := by + have hf : ContinuousOn f (Set.Icc a c) := by + rw [← Set.Icc_union_Icc_eq_Icc hab hbc] + exact h₁.continuousOn.union_of_isClosed h₂.continuousOn isClosed_Icc isClosed_Icc + refine ⟨fun t ↦ f t, continuousOn_iff_continuous_domRestrict.mp hf, fun i ↦ ?_⟩ + refine BoundedVariationOn.univ_of_Icc_endpoints (hab.trans hbc) + (BoundedVariationOn.Icc_union_Icc + (show (⟨a, le_rfl, hab.trans hbc⟩ : Set.Icc a c) ≤ ⟨b, hab, hbc⟩ from hab) + (show (⟨b, hab, hbc⟩ : Set.Icc a c) ≤ ⟨c, hab.trans hbc, le_rfl⟩ from hbc) + (boundedVariationOn_coord_Icc_of_contDiffOn _ le_rfl hab hbc h₁ (fun _ ↦ rfl) i) + (boundedVariationOn_coord_Icc_of_contDiffOn _ hab hbc le_rfl h₂ (fun _ ↦ rfl) i)) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Radial Loop +-/ + +@[expose] public section + +noncomputable section +namespace MovingSofa + +/-- A Lipschitz map on the unit circle induces a continuous BV loop in increasing angular order. -/ +def radialBVLoop (f : {u : Point | ‖u‖ = 1} → Point) {C : NNReal} + (hf : LipschitzWith C f) : ContinuousBVPaths 0 (2 * Real.pi) := by + let n : Set.Icc (0 : ℝ) (2 * Real.pi) → {u : Point | ‖u‖ = 1} := + fun t ↦ ⟨normalVector ((t : ℝ) : Real.Angle), norm_normalVector_real t⟩ + have hn : LipschitzWith 1 n := by + apply LipschitzWith.of_dist_le_mul + intro t u + exact lipschitzWith_normalVector_real.dist_le_mul t.val u.val + exact continuousBVOfLipschitz (f ∘ n) (hf.comp hn) + +/-- The radial BV loop evaluates by applying the circle map to the angular normal. -/ +lemma radialBVLoop_apply (f : {u : Point | ‖u‖ = 1} → Point) {C : NNReal} + (hf : LipschitzWith C f) (t : Set.Icc (0 : ℝ) (2 * Real.pi)) : + (radialBVLoop f hf).val t = + f ⟨normalVector ((t : ℝ) : Real.Angle), norm_normalVector_real t⟩ := rfl + +/-- The radial BV loop has equal endpoints. -/ +lemma radialBVLoop_closed (f : {u : Point | ‖u‖ = 1} → Point) {C : NNReal} + (hf : LipschitzWith C f) : + (radialBVLoop f hf).val ⟨0, le_rfl, by positivity⟩ = + (radialBVLoop f hf).val ⟨2 * Real.pi, by positivity, le_rfl⟩ := by + rw [radialBVLoop_apply, radialBVLoop_apply] + apply congrArg f + apply Subtype.ext + ext i + fin_cases i <;> simp [normalVector, frame] + +/-- An injective circle map gives a radial loop injective before its final endpoint. -/ +lemma radialBVLoop_injOn (f : {u : Point | ‖u‖ = 1} → Point) {C : NNReal} + (hf : LipschitzWith C f) (hinj : Function.Injective f) : + Set.InjOn (radialBVLoop f hf).val {t | (t : ℝ) < 2 * Real.pi} := by + intro t ht u hu h + let : Fact (0 < 2 * Real.pi) := ⟨by positivity⟩ + rw [radialBVLoop_apply, radialBVLoop_apply] at h + have hn := congrArg Subtype.val (hinj h) + have ha : (t.val : Real.Angle) = (u.val : Real.Angle) := by + apply Real.Angle.cos_sin_inj + · exact congrFun (congrArg WithLp.ofLp hn) 0 + · exact congrFun (congrArg WithLp.ofLp hn) 1 + apply Subtype.ext + exact (AddCircle.coe_eq_coe_iff_of_mem_Ico + (show t.val ∈ Set.Ico 0 (0 + 2 * Real.pi) from ⟨t.property.1, by simpa using ht⟩) + (show u.val ∈ Set.Ico 0 (0 + 2 * Real.pi) from ⟨u.property.1, by simpa using hu⟩)).mp ha + +/-- The radial BV loop has the same range as the underlying unit-circle map. -/ +lemma range_radialBVLoop (f : {u : Point | ‖u‖ = 1} → Point) {C : NNReal} + (hf : LipschitzWith C f) : Set.range (radialBVLoop f hf).val = Set.range f := by + apply Set.Subset.antisymm + · rintro p ⟨t, rfl⟩ + exact ⟨_, (radialBVLoop_apply f hf t).symm⟩ + · rintro p ⟨u, rfl⟩ + obtain ⟨θ, hθ⟩ := exists_angle_normalVector_eq u.property + let : Fact (0 < 2 * Real.pi) := ⟨by positivity⟩ + let t := AddCircle.equivIco (2 * Real.pi) 0 θ + have ht : (t.val : Real.Angle) = θ := AddCircle.coe_equivIco + refine ⟨⟨t.val, t.property.1, ?_⟩, ?_⟩ + · simpa using t.property.2.le + · rw [radialBVLoop_apply] + apply congrArg f + apply Subtype.ext + exact (congrArg normalVector ht).trans hθ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# A Stieltjes chain rule with a local quadratic remainder + +The hypothesis of `ContinuousBVPaths.stieltjes_chain_rule_of_local_quadratic_remainder` +quantifies the remainder only over parameter pairs closer than a fixed positive threshold. +This is what a locally defined argument branch supplies: no single plane function has to be +named, and no constant is needed across a branch cut. +-/ + +@[expose] public section + +noncomputable section + +open Set + +namespace MovingSofa + +/-- If a real parameter function `A` has increments matching the signed pair +`D₁ dγ₁ - D₀ dγ₀` up to a quadratic remainder on all parameter pairs closer than a fixed +positive threshold, then its endpoint increment is the corresponding difference of +coordinate Stieltjes integrals. -/ +theorem ContinuousBVPaths.stieltjes_chain_rule_of_local_quadratic_remainder + {a b : ℝ} (hab : a ≤ b) (x : ContinuousBVPaths a b) + (hBV : BoundedVariationOn x.val univ) (A : Set.Icc a b → ℝ) (D : Point → Fin 2 → ℝ) + (hD : ∀ i, Continuous (fun t ↦ D (x.val t) i)) {C : ℝ} (hC : 0 ≤ C) + {δ₀ : ℝ} (hδ₀ : 0 < δ₀) + (herror : ∀ t u : Set.Icc a b, (t : ℝ) ≤ (u : ℝ) → (u : ℝ) - (t : ℝ) < δ₀ → + |A u - A t - + (D (x.val t) 1 * (x.val u 1 - x.val t 1) - + D (x.val t) 0 * (x.val u 0 - x.val t 0))| ≤ C * ‖x.val u - x.val t‖ ^ 2) : + A ⟨b, hab, le_rfl⟩ - A ⟨a, le_rfl, hab⟩ = + intervalStieltjesIntegral (continuousBVCoordinate x 1) (fun t ↦ D (x.val t) 1) univ - + intervalStieltjesIntegral (continuousBVCoordinate x 0) (fun t ↦ D (x.val t) 0) univ := by + obtain ⟨cuts, hcuts, hzero, hlast, hmesh⟩ := + Set.Icc.exists_partitions_mesh_tendsto_zero hab + let N : ℕ → ℕ := fun k ↦ k + 1 + have htaylor := hBV.tendsto_sum_of_local_quadratic_remainder hab x.property.1 A + (fun t v ↦ D (x.val t) 1 * v 1 - D (x.val t) 0 * v 0) hC hδ₀ herror + N cuts hcuts hzero hlast hmesh + have hcoord (i : Fin 2) := tendsto_stieltjesSum_of_mesh_tendsto_zero + (continuousBVCoordinate x i) ((PiLp.continuous_apply 2 _ i).comp x.property.1) + (hD i) N cuts hcuts hzero hlast hmesh + have hsum := (hcoord 1).sub (hcoord 0) + simp only [← Finset.sum_sub_distrib, continuousBVCoordinate] at hsum + exact tendsto_nhds_unique htaylor hsum + +end MovingSofa + +end + +end + +end + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Area.Foundations.Development002`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Area.MonotoneRoof`. +* `Area.ThreePieceRoof`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Area / Monotone Roof +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Recover the vertical coordinate using a chosen inverse of the path’s horizontal +coordinate. -/ +def monotoneRoofHeight {a b : ℝ} (hab : a < b) (γ : ContinuousBVPaths a b) + (s : ℝ) : ℝ := by + classical + letI : Nonempty (Set.Icc a b) := ⟨⟨a, le_rfl, hab.le⟩⟩ + exact γ.val (Function.invFun (fun t ↦ γ.val t 0) s) 1 + +/-- The closed region between the horizontal axis and the path’s roof graph. -/ +def monotoneRoofRegion {a b : ℝ} (hab : a < b) (γ : ContinuousBVPaths a b) : Set Point := + {p | γ.val ⟨a, le_rfl, hab.le⟩ 0 ≤ p 0 ∧ + p 0 ≤ γ.val ⟨b, hab.le, le_rfl⟩ 0 ∧ 0 ≤ p 1 ∧ + p 1 ≤ monotoneRoofHeight hab γ (p 0)} + +/-- Traverse the roof path backwards and return along its horizontal base. -/ +def monotoneRoofLoop {a b : ℝ} (hab : a < b) (γ : ContinuousBVPaths a b) + (s : Set.Icc (0 : ℝ) 2) : Point := + if hs : s.val ≤ 1 then + γ.val ⟨b - (b - a) * s.val, by + constructor + · nlinarith [s.property.1] + · nlinarith [s.property.1]⟩ + else + (2 - s.val) • γ.val ⟨a, le_rfl, hab.le⟩ + + (s.val - 1) • γ.val ⟨b, hab.le, le_rfl⟩ + +private theorem monotoneRoofLoop_concatenation {a b : ℝ} (hab : a < b) + (γ γrev : ContinuousBVPaths a b) + (hγrev : γrev.val = γ.val ∘ Set.Icc.reverse hab.le) + (Γ : ContinuousBVPaths 0 2) (hΓval : Γ.val = monotoneRoofLoop hab γ) : + IsPathConcatenation (⟨0, 2, by norm_num, Γ⟩ : RectifiablePathData) + ![(⟨a, b, hab.le, γrev⟩ : RectifiablePathData), + ⟨0, 1, zero_le_one, lineSegmentBVPath + (γ.val ⟨a, le_rfl, hab.le⟩) (γ.val ⟨b, hab.le, le_rfl⟩)⟩] := by + let A : Set.Icc a b := ⟨a, le_rfl, hab.le⟩ + let B : Set.Icc a b := ⟨b, hab.le, le_rfl⟩ + have hba : (0 : ℝ) < b - a := sub_pos.mpr hab + refine ⟨by norm_num, + ![⟨0, by norm_num⟩, ⟨1, by norm_num⟩, ⟨2, by norm_num⟩], ?_, ?_, ?_, ?_⟩ + · intro i j hij + fin_cases i <;> fin_cases j <;> + first + | rfl + | (exact absurd hij (by decide)) + | (refine Subtype.mk_le_mk.mpr ?_; norm_num) + · rfl + · rfl + · intro i + fin_cases i + · change ∃ (ϕ : Set.Icc (0 : ℝ) 1 → Set.Icc (0 : ℝ) 1) + (ψ : Set.Icc (0 : ℝ) 1 → Set.Icc a b), + Continuous ϕ ∧ Monotone ϕ ∧ Function.Surjective ϕ ∧ + Continuous ψ ∧ Monotone ψ ∧ Function.Surjective ψ ∧ + ∀ u, Γ.val ⟨(ϕ u : ℝ), (ϕ u).property.1, + le_trans (ϕ u).property.2 (by norm_num)⟩ = γrev.val (ψ u) + refine ⟨fun u ↦ ⟨(u : ℝ), u.property.1, u.property.2⟩, + fun u ↦ ⟨a + (b - a) * (u : ℝ), + by linarith only [mul_nonneg hba.le u.property.1], + by linarith only [mul_le_mul_of_nonneg_left u.property.2 hba.le]⟩, + ?_, ?_, ?_, ?_, ?_, ?_, ?_⟩ + · exact continuous_subtype_val.subtype_mk _ + · exact fun x y hxy ↦ hxy + · exact fun z ↦ ⟨⟨(z : ℝ), z.property.1, z.property.2⟩, Subtype.ext rfl⟩ + · exact (continuous_const.add + (continuous_const.mul continuous_subtype_val)).subtype_mk _ + · intro x y hxy + have hxy' : (x : ℝ) ≤ (y : ℝ) := hxy + change a + (b - a) * (x : ℝ) ≤ a + (b - a) * (y : ℝ) + linarith only [mul_le_mul_of_nonneg_left hxy' hba.le] + · intro t + refine ⟨⟨((t : ℝ) - a) / (b - a), ?_, ?_⟩, ?_⟩ + · exact div_nonneg (by linarith only [t.property.1]) hba.le + · rw [div_le_one hba] + linarith only [t.property.2] + · apply Subtype.ext + change a + (b - a) * (((t : ℝ) - a) / (b - a)) = (t : ℝ) + field_simp + ring + · intro u + have h0 : (0 : ℝ) ≤ (u : ℝ) := u.property.1 + have h1 : (u : ℝ) ≤ 1 := u.property.2 + rw [hΓval, hγrev] + change monotoneRoofLoop hab γ ⟨(u : ℝ), h0, by linarith⟩ = + γ.val (Set.Icc.reverse hab.le ⟨a + (b - a) * (u : ℝ), + by linarith only [mul_nonneg hba.le h0], + by linarith only [mul_le_mul_of_nonneg_left h1 hba.le]⟩) + unfold monotoneRoofLoop + rw [dite_eq_left (show ((⟨(u : ℝ), h0, by linarith⟩ : Set.Icc (0 : ℝ) 2) : ℝ) ≤ 1 + from h1)] + exact congrArg (fun t ↦ γ.val t) (Subtype.ext (by + change b - (b - a) * (u : ℝ) = a + b - (a + (b - a) * (u : ℝ)) + ring)) + · change ∃ (ϕ : Set.Icc (0 : ℝ) 1 → Set.Icc (1 : ℝ) 2) + (ψ : Set.Icc (0 : ℝ) 1 → Set.Icc (0 : ℝ) 1), + Continuous ϕ ∧ Monotone ϕ ∧ Function.Surjective ϕ ∧ + Continuous ψ ∧ Monotone ψ ∧ Function.Surjective ψ ∧ + ∀ u, Γ.val ⟨(ϕ u : ℝ), le_trans (by norm_num) (ϕ u).property.1, + (ϕ u).property.2⟩ = + (lineSegmentBVPath (γ.val A) (γ.val B)).val (ψ u) + refine ⟨fun u ↦ ⟨1 + (u : ℝ), by linarith [u.property.1], by + linarith [u.property.2]⟩, + fun u ↦ u, ?_, ?_, ?_, ?_, ?_, ?_, ?_⟩ + · exact (continuous_const.add continuous_subtype_val).subtype_mk _ + · intro x y hxy + have hxy' : (x : ℝ) ≤ (y : ℝ) := hxy + change (1 : ℝ) + (x : ℝ) ≤ 1 + (y : ℝ) + linarith + · intro z + refine ⟨⟨(z : ℝ) - 1, by linarith [z.property.1], by + linarith [z.property.2]⟩, ?_⟩ + apply Subtype.ext + change (1 : ℝ) + ((z : ℝ) - 1) = (z : ℝ) + ring + · exact continuous_id + · exact fun x y hxy ↦ hxy + · exact fun z ↦ ⟨z, rfl⟩ + · intro u + have h0 : (0 : ℝ) ≤ (u : ℝ) := u.property.1 + have h1 : (u : ℝ) ≤ 1 := u.property.2 + rw [hΓval] + change monotoneRoofLoop hab γ ⟨1 + (u : ℝ), by linarith, by linarith⟩ = + Path.segment (γ.val A) (γ.val B) u + unfold monotoneRoofLoop + rcases eq_or_lt_of_le h0 with hu0 | hu0 + · rw [dite_eq_left (show ((⟨1 + (u : ℝ), by linarith, by linarith⟩ : + Set.Icc (0 : ℝ) 2) : ℝ) ≤ 1 from by simp [← hu0])] + have huval : (u : ℝ) = 0 := hu0.symm + have hseg : Path.segment (γ.val A) (γ.val B) u = γ.val A := by + rw [Path.segment_apply] + rw [show (u : ℝ) = 0 from huval] + simp + rw [hseg] + exact congrArg (fun t ↦ γ.val t) (Subtype.ext (by + change b - (b - a) * (1 + (u : ℝ)) = a + rw [huval] + ring)) + · rw [dite_eq_right (show ¬ ((⟨1 + (u : ℝ), by linarith, by linarith⟩ : + Set.Icc (0 : ℝ) 2) : ℝ) ≤ 1 from by + change ¬ (1 + (u : ℝ) ≤ 1) + linarith)] + change (2 - (1 + (u : ℝ))) • γ.val A + ((1 + (u : ℝ)) - 1) • γ.val B = + Path.segment (γ.val A) (γ.val B) u + rw [Path.segment_apply, AffineMap.lineMap_apply_module'] + module + +private theorem monotoneRoof_area {a b : ℝ} (hab : a < b) + (γ : ContinuousBVPaths a b) (hk : StrictMono (fun t ↦ γ.val t 0)) + (hh : ∀ t, 0 ≤ γ.val t 1) + (ha : γ.val ⟨a, le_rfl, hab.le⟩ 1 = 0) + (hb : γ.val ⟨b, hab.le, le_rfl⟩ 1 = 0) : + ClassicalResults.area (monotoneRoofRegion hab γ) = -curveAreaFunctional γ ∧ + ClassicalResults.area (monotoneRoofRegion hab γ) = + ∫ s in γ.val ⟨a, le_rfl, hab.le⟩ 0..γ.val ⟨b, hab.le, le_rfl⟩ 0, + monotoneRoofHeight hab γ s := by + classical + set A : Set.Icc a b := ⟨a, le_rfl, hab.le⟩ with hAdef + set B : Set.Icc a b := ⟨b, hab.le, le_rfl⟩ with hBdef + set c : ℝ := γ.val A 0 with hcdef + set d : ℝ := γ.val B 0 with hddef + have hAB : A < B := hab + have hcd : c < d := hk hAB + -- the horizontal coordinate as a map onto `[c, d]` + have hγ0 : Continuous fun t : Set.Icc a b ↦ γ.val t 0 := + (PiLp.continuous_apply 2 _ 0).comp γ.property.1 + have hγ1 : Continuous fun t : Set.Icc a b ↦ γ.val t 1 := + (PiLp.continuous_apply 2 _ 1).comp γ.property.1 + have hmem : ∀ t : Set.Icc a b, γ.val t 0 ∈ Set.Icc c d := fun t ↦ + ⟨hk.monotone (show A ≤ t from t.property.1), + hk.monotone (show t ≤ B from t.property.2)⟩ + set kmap : Set.Icc a b → Set.Icc c d := fun t ↦ ⟨γ.val t 0, hmem t⟩ with hkmapdef + have hkc : Continuous kmap := hγ0.subtype_mk _ + have hkinj : Function.Injective kmap := fun x y h ↦ hk.injective (congrArg Subtype.val h) + have : PreconnectedSpace (Set.Icc a b) := Subtype.preconnectedSpace isPreconnected_Icc + have hksurj : Function.Surjective kmap := by + intro s + obtain ⟨t, ht⟩ := intermediate_value_univ A B hγ0 s.property + exact ⟨t, Subtype.ext ht⟩ + -- the continuous monotone inverse `φ = k⁻¹` + set khom : Set.Icc a b ≃ₜ Set.Icc c d := + Continuous.homeoOfEquivCompactToT2 (f := Equiv.ofBijective kmap ⟨hkinj, hksurj⟩) hkc + with hkhomdef + set φ : Set.Icc c d → Set.Icc a b := ⇑khom.symm with hφdef + have hkhom_apply : ∀ t, khom t = kmap t := fun _ ↦ rfl + have hφk : ∀ s : Set.Icc c d, γ.val (φ s) 0 = (s : ℝ) := by + intro s + have := khom.apply_symm_apply s + rw [hkhom_apply] at this + exact congrArg Subtype.val this + have hφc : Continuous φ := khom.symm.continuous + have hφs : Function.Surjective φ := khom.symm.surjective + have hφm : Monotone φ := by + intro s t hst + by_contra hcon + have hlt : φ t < φ s := lt_of_not_ge hcon + have hlt2 := hk hlt + simp only [hφk] at hlt2 + exact absurd hst (not_le.mpr hlt2) + -- the roof height, as a globally continuous function on the line + set g : ℝ → ℝ := fun s ↦ γ.val (φ (Set.projIcc c d hcd.le s)) 1 with hgdef + have hgc : Continuous g := hγ1.comp (hφc.comp continuous_projIcc) + have hgnonneg : ∀ s, 0 ≤ g s := fun s ↦ hh _ + have hheight : ∀ s ∈ Set.Icc c d, monotoneRoofHeight hab γ s = g s := by + intro s hs + have hex : ∃ t : Set.Icc a b, γ.val t 0 = s := ⟨φ ⟨s, hs⟩, hφk ⟨s, hs⟩⟩ + have hinv := @Function.invFun_eq _ _ ⟨A⟩ (fun t ↦ γ.val t 0) s hex + have hpt : @Function.invFun _ _ ⟨A⟩ (fun t ↦ γ.val t 0) s = φ ⟨s, hs⟩ := + hk.injective (by simpa using hinv.trans (hφk ⟨s, hs⟩).symm) + change γ.val (@Function.invFun _ _ ⟨A⟩ (fun t ↦ γ.val t 0) s) 1 = g s + rw [hpt] + simp [hgdef, Set.projIcc_of_mem _ hs] + -- the roof region is the closed subgraph of `g` over `[c, d]` + have hregion : monotoneRoofRegion hab γ = + {p : Point | p 0 ∈ Set.Icc c d ∧ + p 1 ∈ Set.Icc ((fun _ : ℝ ↦ (0 : ℝ)) (p 0)) (g (p 0))} := by + ext p + constructor + · rintro ⟨h1, h2, h3, h4⟩ + exact ⟨⟨h1, h2⟩, h3, by rwa [hheight (p 0) ⟨h1, h2⟩] at h4⟩ + · rintro ⟨⟨h1, h2⟩, h3, h4⟩ + exact ⟨h1, h2, h3, by rwa [hheight (p 0) ⟨h1, h2⟩]⟩ + -- the planar volume of a closed vertical subgraph + have hvolVertical : ∀ (f₀ g₀ : ℝ → ℝ) (S : Set ℝ), Measurable f₀ → Measurable g₀ → + MeasurableSet S → MeasureTheory.IntegrableOn f₀ S → MeasureTheory.IntegrableOn g₀ S → + (∀ x ∈ S, f₀ x ≤ g₀ x) → + MeasureTheory.volume {p : Point | p 0 ∈ S ∧ p 1 ∈ Set.Icc (f₀ (p 0)) (g₀ (p 0))} = + ENNReal.ofReal (∫ x in S, (g₀ - f₀) x) := by + intro f₀ g₀ S hf hg hS hfi hgi hfg + have hT : MeasurableSet {q : ℝ × ℝ | q.1 ∈ S ∧ q.2 ∈ Set.Icc (f₀ q.1) (g₀ q.1)} := + measurableSet_region_between_cc hf hg hS + have hpre : {p : Point | p 0 ∈ S ∧ p 1 ∈ Set.Icc (f₀ (p 0)) (g₀ (p 0))} = + (fun p : Point ↦ (p 0, p 1)) ⁻¹' + {q : ℝ × ℝ | q.1 ∈ S ∧ q.2 ∈ Set.Icc (f₀ q.1) (g₀ q.1)} := rfl + rw [hpre, EuclideanSpace.volume_preserving_finTwoCoordinates.measure_preimage + hT.nullMeasurableSet] + rw [volume_setOf_mem_Icc_eq_volume_regionBetween hf hg hS] + change (MeasureTheory.volume.prod MeasureTheory.volume) (regionBetween f₀ g₀ S) = _ + rw [volume_regionBetween_eq_integral hfi hgi hS hfg] + have hgint : MeasureTheory.IntegrableOn g (Set.Icc c d) := + hgc.continuousOn.integrableOn_compact isCompact_Icc + have hIcc : (∫ x in Set.Icc c d, g x) = ∫ s in c..d, g s := by + rw [intervalIntegral.integral_of_le hcd.le, MeasureTheory.integral_Icc_eq_integral_Ioc] + have harea : ClassicalResults.area (monotoneRoofRegion hab γ) = ∫ s in c..d, g s := by + rw [ClassicalResults.area, hregion, + hvolVertical (fun _ ↦ 0) g (Set.Icc c d) measurable_const hgc.measurable + measurableSet_Icc (MeasureTheory.integrableOn_zero) hgint + (fun x _ ↦ hgnonneg x)] + rw [ENNReal.toReal_ofReal] + · simp only [Pi.sub_apply, sub_zero] + exact hIcc + · exact MeasureTheory.integral_nonneg (fun x ↦ by simp [hgnonneg x]) + -- the two coordinate Stieltjes drivers + have hBVext : ∀ {u v : ℝ} (F G : RightContinuousIntervalBV u v), + F.toFun = G.toFun → F = G := by + intro u v F G hFG + cases F + cases G + simp only at hFG + subst hFG + rfl + set K := continuousBVCoordinate γ 0 with hKdef + set H := continuousBVCoordinate γ 1 with hHdef + have hKcont : Continuous K.toFun := hγ0 + have hHcont : Continuous H.toFun := hγ1 + -- the identity driver on `[c, d]`, with Lebesgue density one + obtain ⟨Q, hQfun, hQdens⟩ := exists_intervalBV_of_hasDerivAt hcd.le (fun x ↦ x) + (fun _ ↦ (1 : ℝ)) (fun t ↦ hasDerivAt_id t) continuous_const + have hstieltjes : intervalStieltjesIntegral K H.toFun Set.univ = + intervalStieltjesIntegral Q (H.toFun ∘ φ) Set.univ := by + rw [intervalStieltjesIntegral_comp_monotone_surjective hab.le hcd.le K hKcont + H.toFun hHcont φ hφc hφm hφs] + congr 1 + apply hBVext + funext s + change γ.val (φ s) 0 = Q.toFun s + rw [hQfun s, hφk s] + have hroofint : intervalStieltjesIntegral K H.toFun Set.univ = ∫ s in c..d, g s := by + rw [hstieltjes, intervalStieltjesIntegral_eq_integral_mul_of_density Q hQdens + (hHcont.comp hφc) Set.univ MeasurableSet.univ, MeasureTheory.Measure.restrict_univ] + have hfun : (fun t : Set.Icc c d ↦ (H.toFun ∘ φ) t * (1 : ℝ)) = + fun t : Set.Icc c d ↦ g (t : ℝ) := by + funext t + simp only [Function.comp_apply, mul_one, hgdef, Set.projIcc_val] + rfl + rw [hfun, MeasureTheory.integral_subtype_comap measurableSet_Icc g, hIcc] + -- integration by parts identifies the curve area with the roof integral + have hparts := intervalStieltjes_integration_by_parts_of_continuous a b hab.le K H + hKcont hHcont + have hends : K.toFun B * H.toFun B - K.toFun A * H.toFun A = 0 := by + change γ.val B 0 * γ.val B 1 - γ.val A 0 * γ.val A 1 = 0 + rw [ha, hb] + ring + have hJγ : curveAreaFunctional γ = -intervalStieltjesIntegral K H.toFun Set.univ := by + have hform : curveAreaFunctional γ = + (intervalStieltjesIntegral H K.toFun Set.univ - + intervalStieltjesIntegral K H.toFun Set.univ) / 2 := rfl + rw [hform] + rw [hends] at hparts + linarith + have hheightint : (∫ s in c..d, monotoneRoofHeight hab γ s) = ∫ s in c..d, g s := by + apply intervalIntegral.integral_congr + intro s hs + exact hheight s (by rwa [Set.uIcc_of_le hcd.le] at hs) + constructor + · rw [hJγ, neg_neg, hroofint, harea] + · exact harea.trans hheightint.symm + +theorem monotone_roof_signed_area {a b : ℝ} (hab : a < b) + (γ : ContinuousBVPaths a b) (hk : StrictMono (fun t ↦ γ.val t 0)) + (hh : ∀ t, 0 ≤ γ.val t 1) + (ha : γ.val ⟨a, le_rfl, hab.le⟩ 1 = 0) + (hb : γ.val ⟨b, hab.le, le_rfl⟩ 1 = 0) : + ∃ Γ : ContinuousBVPaths 0 2, Γ.val = monotoneRoofLoop hab γ ∧ + curveAreaFunctional Γ = ClassicalResults.area (monotoneRoofRegion hab γ) ∧ + ClassicalResults.area (monotoneRoofRegion hab γ) = + ∫ s in γ.val ⟨a, le_rfl, hab.le⟩ 0..γ.val ⟨b, hab.le, le_rfl⟩ 0, + monotoneRoofHeight hab γ s := by + classical + let A : Set.Icc a b := ⟨a, le_rfl, hab.le⟩ + let B : Set.Icc a b := ⟨b, hab.le, le_rfl⟩ + obtain ⟨harea, hheight⟩ := monotoneRoof_area hab γ hk hh ha hb + -- the reversed roof, as a path on `[a, b]` + have hJrev := curveArea_comp_reverse hab.le γ + set γrev : ContinuousBVPaths a b := + ⟨γ.val ∘ Set.Icc.reverse hab.le, + γ.property.1.comp (Set.Icc.continuous_reverse hab.le), fun i ↦ + BoundedVariationOn.comp_antitone_surjective_Icc hab.le (γ.property.2 i) + (Set.Icc.antitone_reverse hab.le) (Set.Icc.surjective_reverse hab.le)⟩ with hγrevdef + change curveAreaFunctional γrev = -curveAreaFunctional γ at hJrev + -- the antitone reparametrization of `[0, 2]` onto `[a, b]`, pausing on `[1, 2]` + set revmap : Set.Icc (0 : ℝ) 2 → Set.Icc a b := + fun s ↦ Set.projIcc a b hab.le (b - (b - a) * (s : ℝ)) with hrevmapdef + have hrevc : Continuous revmap := + continuous_projIcc.comp (by fun_prop) + have hrevanti : Antitone revmap := by + intro s t hst + have hst' : (s : ℝ) ≤ (t : ℝ) := hst + have hmul := mul_le_mul_of_nonneg_left hst' (sub_nonneg.mpr hab.le) + change Set.projIcc a b hab.le (b - (b - a) * (t : ℝ)) ≤ + Set.projIcc a b hab.le (b - (b - a) * (s : ℝ)) + exact Set.monotone_projIcc hab.le (by linarith) + have hrevsurj : Function.Surjective revmap := by + intro t + have hba : (0 : ℝ) < b - a := by linarith + refine ⟨⟨(b - (t : ℝ)) / (b - a), ?_, ?_⟩, ?_⟩ + · exact div_nonneg (by linarith [t.property.2]) hba.le + · rw [div_le_iff₀ hba] + nlinarith [t.property.1] + · have hval : b - (b - a) * ((b - (t : ℝ)) / (b - a)) = (t : ℝ) := by + field_simp + ring + change Set.projIcc a b hab.le (b - (b - a) * ((b - (t : ℝ)) / (b - a))) = t + rw [hval, Set.projIcc_val] + -- the base segment piece, paused on `[0, 1]` + set w : Point := γ.val B - γ.val A with hwdef + set ρ : Set.Icc (0 : ℝ) 2 → Set.Icc (0 : ℝ) 1 := + fun s ↦ Set.projIcc 0 1 zero_le_one ((s : ℝ) - 1) with hρdef + have hρc : Continuous ρ := continuous_projIcc.comp (by fun_prop) + have hρm : Monotone ρ := by + intro s t hst + have hst' : (s : ℝ) ≤ (t : ℝ) := hst + change Set.projIcc 0 1 zero_le_one ((s : ℝ) - 1) ≤ + Set.projIcc 0 1 zero_le_one ((t : ℝ) - 1) + exact Set.monotone_projIcc zero_le_one (by linarith) + have hρs : Function.Surjective ρ := by + intro u + refine ⟨⟨(u : ℝ) + 1, ?_, ?_⟩, ?_⟩ + · linarith [u.property.1] + · linarith [u.property.2] + · change Set.projIcc 0 1 zero_le_one ((u : ℝ) + 1 - 1) = u + rw [show ((u : ℝ) + 1 - 1) = (u : ℝ) from by ring, Set.projIcc_val] + obtain ⟨Bpath, hBpathval⟩ := continuousBVPaths_comp_monotone_surjective + (by norm_num : (0 : ℝ) ≤ 1) (lineSegmentBVPath 0 w) ρ hρc hρm hρs + set Apath : ContinuousBVPaths 0 2 := + ⟨γ.val ∘ revmap, γ.property.1.comp hrevc, fun i ↦ + BoundedVariationOn.comp_antitone_surjective_Icc hab.le (γ.property.2 i) hrevanti + hrevsurj⟩ with hApathdef + set Γ : ContinuousBVPaths 0 2 := Apath + Bpath with hΓdef + have hΓval : Γ.val = monotoneRoofLoop hab γ := by + funext s + have h0 : (0 : ℝ) ≤ (s : ℝ) := s.property.1 + have h2 : (s : ℝ) ≤ 2 := s.property.2 + have hval : Γ.val s = γ.val (revmap s) + Path.segment (0 : Point) w (ρ s) := by + change Apath.val s + Bpath.val s = _ + rw [hBpathval] + rfl + rw [hval] + unfold monotoneRoofLoop + split_ifs with hs + · have hrevs : revmap s = ⟨b - (b - a) * (s : ℝ), + by constructor <;> nlinarith⟩ := by + change Set.projIcc a b hab.le (b - (b - a) * (s : ℝ)) = _ + exact Set.projIcc_of_mem hab.le _ + have hρ0 : ρ s = ⟨0, by norm_num⟩ := by + change Set.projIcc 0 1 zero_le_one ((s : ℝ) - 1) = _ + exact Set.projIcc_of_le_left zero_le_one (by linarith) + rw [hrevs, hρ0] + simp + · rw [not_le] at hs + have hrevs : revmap s = A := by + change Set.projIcc a b hab.le (b - (b - a) * (s : ℝ)) = _ + rw [Set.projIcc_of_le_left hab.le (by nlinarith)] + have hρ1 : ρ s = ⟨(s : ℝ) - 1, by constructor <;> linarith⟩ := by + change Set.projIcc 0 1 zero_le_one ((s : ℝ) - 1) = _ + exact Set.projIcc_of_mem zero_le_one _ + rw [hrevs, hρ1] + change γ.val A + AffineMap.lineMap (0 : Point) w ((s : ℝ) - 1) = + (2 - (s : ℝ)) • γ.val A + ((s : ℝ) - 1) • γ.val B + rw [AffineMap.lineMap_apply_module', hwdef] + module + -- additivity of the curve area along the cut at `s = 1` + have hΓ2 : (0 : ℝ) ≤ 2 := by norm_num + have hba : (0 : ℝ) < b - a := by linarith + have hconcat : IsPathConcatenation (⟨0, 2, hΓ2, Γ⟩ : RectifiablePathData) + ![(⟨a, b, hab.le, γrev⟩ : RectifiablePathData), + ⟨0, 1, zero_le_one, lineSegmentBVPath (γ.val A) (γ.val B)⟩] := + monotoneRoofLoop_concatenation hab γ γrev rfl Γ hΓval + -- the two pieces and the final assembly + have hsum := curveArea_concatenation (⟨0, 2, hΓ2, Γ⟩ : RectifiablePathData) + ![(⟨a, b, hab.le, γrev⟩ : RectifiablePathData), + ⟨0, 1, zero_le_one, lineSegmentBVPath (γ.val A) (γ.val B)⟩] hconcat + have hbase : curveAreaFunctional (lineSegmentBVPath (γ.val A) (γ.val B)) = 0 := by + rw [curveAreaFunctional_lineSegmentBVPath, segmentArea, planeCrossProduct, ha, hb] + ring + have hJΓ : curveAreaFunctional Γ = -curveAreaFunctional γ := by + have hΓsum : curveAreaFunctional Γ = + curveAreaFunctional γrev + + curveAreaFunctional (lineSegmentBVPath (γ.val A) (γ.val B)) := by + rw [show curveAreaFunctional Γ = + curveAreaFunctional (⟨0, 2, hΓ2, Γ⟩ : RectifiablePathData).path from rfl, hsum, + Fin.sum_univ_two] + rfl + rw [hΓsum, hbase, hJrev, add_zero] + exact ⟨Γ, hΓval, hJΓ.trans harea.symm, hheight⟩ + +/-- Above a parameter's abscissa, a strictly monotone roof has that parameter's ordinate. -/ +theorem monotoneRoofHeight_apply {a b : ℝ} (hab : a < b) (γ : ContinuousBVPaths a b) + (hk : StrictMono fun t ↦ γ.val t 0) (s : Set.Icc a b) : + monotoneRoofHeight hab γ (γ.val s 0) = γ.val s 1 := by + classical + have hne : Nonempty (Set.Icc a b) := ⟨⟨a, le_rfl, hab.le⟩⟩ + have hinv : @Function.invFun _ _ hne (fun t ↦ γ.val t 0) (γ.val s 0) = s := + hk.injective (@Function.invFun_eq _ _ hne (fun t ↦ γ.val t 0) _ ⟨s, rfl⟩) + change γ.val (@Function.invFun _ _ hne (fun t ↦ γ.val t 0) (γ.val s 0)) 1 = γ.val s 1 + rw [hinv] + +/-- Every abscissa between a roof's endpoints is the abscissa of a roof parameter. -/ +theorem exists_eq_monotoneRoof_fst {a b : ℝ} (hab : a < b) (γ : ContinuousBVPaths a b) + {c : ℝ} (hc : c ∈ Set.Icc (γ.val ⟨a, le_rfl, hab.le⟩ 0) (γ.val ⟨b, hab.le, le_rfl⟩ 0)) : + ∃ s : Set.Icc a b, γ.val s 0 = c := by + have : PreconnectedSpace (Set.Icc a b) := Subtype.preconnectedSpace isPreconnected_Icc + exact intermediate_value_univ _ _ ((PiLp.continuous_apply 2 _ 0).comp γ.property.1) hc + +/-- The closed region under a strictly monotone roof, described parametrically: it consists of the +points on or below the roof on the vertical line through some roof parameter. -/ +theorem monotoneRoofRegion_eq_param {a b : ℝ} (hab : a < b) (γ : ContinuousBVPaths a b) + (hk : StrictMono fun t ↦ γ.val t 0) : + monotoneRoofRegion hab γ = + {p : Point | ∃ s : Set.Icc a b, p 0 = γ.val s 0 ∧ 0 ≤ p 1 ∧ p 1 ≤ γ.val s 1} := by + ext p + constructor + · rintro ⟨h1, h2, h3, h4⟩ + obtain ⟨s, hs⟩ := exists_eq_monotoneRoof_fst hab γ ⟨h1, h2⟩ + refine ⟨s, hs.symm, h3, ?_⟩ + rwa [← hs, monotoneRoofHeight_apply hab γ hk s] at h4 + · rintro ⟨s, hs0, hs1, hs2⟩ + refine ⟨?_, ?_, hs1, ?_⟩ + · rw [hs0] + exact hk.monotone (show (⟨a, le_rfl, hab.le⟩ : Set.Icc a b) ≤ s from s.property.1) + · rw [hs0] + exact hk.monotone (show s ≤ (⟨b, hab.le, le_rfl⟩ : Set.Icc a b) from s.property.2) + · rw [hs0, monotoneRoofHeight_apply hab γ hk s] + exact hs2 + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! # Three-piece monotone roofs + +A *three-piece roof* over `[r, l]` is the continuous BV path on `[0, 3]` that runs up a straight +segment from a base point `P` to `f l`, traverses an arc `f` backwards from `l` to `r`, and runs +down a straight segment from `f r` to a base point `Q`. When the arc's first coordinate is +strictly decreasing and `P`, `Q` lie strictly to the left of `f l` resp. to the right of `f r`, the +resulting path has strictly increasing first coordinate, so it is a monotone roof in the sense of +`MovingSofa.monotoneRoofRegion`. + +`area_region_under_strictMono_roof` computes the area of the closed region under such a roof, above +the base line `y = -h` carrying `P` and `Q`, as the signed area of the four-piece closed loop that +bounds it, and `area_region_under_roof_le` compares that area with the areas of a base set and of a +set containing the rest of the open region. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A segment path, read as its base point plus a multiple of its displacement. -/ +private theorem segment_eq_add_smul (p q : Point) (u : Set.Icc (0 : ℝ) 1) : + Path.segment p q u = p + (u : ℝ) • (q - p) := by + rw [Path.segment_apply, AffineMap.lineMap_apply_module'] + module + +/-- Clamping to a nondegenerate interval is strictly monotone away from both clamps. -/ +private theorem projIcc_lt_projIcc {a b : ℝ} (hab : a < b) {s t : ℝ} (hst : s < t) + (hs : s < b) (ht : a < t) : + Set.projIcc a b hab.le s < Set.projIcc a b hab.le t := by + change max a (min b s) < max a (min b t) + rw [min_eq_right hs.le, max_eq_right (le_min hab.le ht.le)] + exact max_lt (lt_min hab ht) (lt_min hs hst) + +/-- A convex combination of two numbers bounded by `c` is bounded by `c`. -/ +private theorem affine_le_of_le {A B c s : ℝ} (hA : A ≤ c) (hB : B ≤ c) + (hs0 : 0 ≤ s) (hs1 : s ≤ 1) : A + s * (B - A) ≤ c := by nlinarith + +/-- The middle arc's parameter times run over the arc's own interval. -/ +theorem mem_Icc_roofArcTime {r l : ℝ} (hrl : r < l) {s : ℝ} (hs1 : 1 ≤ s) (hs2 : s ≤ 2) : + l + (s - 1) * (r - l) ∈ Set.Icc r l := by + refine ⟨?_, ?_⟩ + · have h : (0 : ℝ) ≤ (1 - (s - 1)) * (l - r) := + mul_nonneg (by linarith only [hs2]) (by linarith only [hrl]) + linarith only [h] + · have h : (s - 1) * (r - l) ≤ 0 := + mul_nonpos_of_nonneg_of_nonpos (by linarith only [hs1]) (by linarith only [hrl]) + linarith only [h] + +/-- Three pieces — a rising segment into the left end of a strictly decreasing arc, that arc +traversed backwards, and a rising segment out of its right end — assemble into a continuous BV +path on `[0, 3]` whose first coordinate is strictly increasing. -/ +theorem exists_strictMono_roof_of_strictAntiOn {r l : ℝ} (hrl : r < l) + (c : ContinuousBVPaths r l) (f : ℝ → Point) (P Q : Point) + (hf : ∀ (t : ℝ) (ht : t ∈ Set.Icc r l), c.val ⟨t, ht⟩ = f t) + (hanti : StrictAntiOn (fun t ↦ f t 0) (Set.Icc r l)) + (hP : P 0 < f l 0) (hQ : f r 0 < Q 0) : + ∃ γ : ContinuousBVPaths 0 3, + (∀ s : Set.Icc (0 : ℝ) 3, (s : ℝ) ≤ 1 → γ.val s = P + (s : ℝ) • (f l - P)) ∧ + (∀ s : Set.Icc (0 : ℝ) 3, 1 ≤ (s : ℝ) → (s : ℝ) ≤ 2 → + γ.val s = f (l + ((s : ℝ) - 1) * (r - l))) ∧ + (∀ s : Set.Icc (0 : ℝ) 3, 2 ≤ (s : ℝ) → + γ.val s = f r + ((s : ℝ) - 2) • (Q - f r)) ∧ + StrictMono fun s ↦ γ.val s 0 := by + have hlr : r - l < 0 := by linarith + have hcf : ∀ u : Set.Icc r l, c.val u = f (u : ℝ) := fun u ↦ hf u u.property + have hcanti : ∀ u v : Set.Icc r l, u ≤ v → f (v : ℝ) 0 ≤ f (u : ℝ) 0 := by + intro u v huv + rcases eq_or_lt_of_le huv with h | h + · rw [h] + · exact (hanti u.property v.property h).le + -- the antitone reparametrisation of `[0, 3]` onto the arc's domain + set μ : Set.Icc (0 : ℝ) 3 → Set.Icc r l := + fun s ↦ Set.projIcc r l hrl.le (l + ((s : ℝ) - 1) * (r - l)) with hμdef + have hμc : Continuous μ := continuous_projIcc.comp (by fun_prop) + have hμa : Antitone μ := by + intro s t hst + have hst' : (s : ℝ) ≤ t := hst + exact Set.monotone_projIcc hrl.le (by nlinarith) + have hμs : Function.Surjective μ := by + intro u + have hu1 : r ≤ (u : ℝ) := u.property.1 + have hu2 : (u : ℝ) ≤ l := u.property.2 + have hne : l - r ≠ 0 := by linarith + have hq : 0 ≤ (l - (u : ℝ)) / (l - r) := div_nonneg (by linarith) (by linarith) + have hq1 : (l - (u : ℝ)) / (l - r) ≤ 1 := by + rw [div_le_one (by linarith)] + linarith + refine ⟨⟨1 + (l - (u : ℝ)) / (l - r), by linarith, by linarith⟩, ?_⟩ + change Set.projIcc r l hrl.le (l + (1 + (l - (u : ℝ)) / (l - r) - 1) * (r - l)) = u + rw [show l + (1 + (l - (u : ℝ)) / (l - r) - 1) * (r - l) = (u : ℝ) by + field_simp; ring] + exact Set.projIcc_of_mem hrl.le u.property + have hμleft : ∀ s : Set.Icc (0 : ℝ) 3, (s : ℝ) ≤ 1 → μ s = ⟨l, hrl.le, le_rfl⟩ := by + intro s hs + change Set.projIcc r l hrl.le (l + ((s : ℝ) - 1) * (r - l)) = _ + exact Set.projIcc_of_right_le hrl.le + (le_add_of_nonneg_right (show (0 : ℝ) ≤ ((s : ℝ) - 1) * (r - l) by nlinarith)) + have hμmid : ∀ s : Set.Icc (0 : ℝ) 3, 1 ≤ (s : ℝ) → (s : ℝ) ≤ 2 → + (μ s : ℝ) = l + ((s : ℝ) - 1) * (r - l) := by + intro s hs1 hs2 + change (Set.projIcc r l hrl.le (l + ((s : ℝ) - 1) * (r - l)) : ℝ) = _ + rw [Set.projIcc_of_mem hrl.le ⟨by nlinarith, by nlinarith⟩] + have hμright : ∀ s : Set.Icc (0 : ℝ) 3, 2 ≤ (s : ℝ) → μ s = ⟨r, le_rfl, hrl.le⟩ := by + intro s hs + change Set.projIcc r l hrl.le (l + ((s : ℝ) - 1) * (r - l)) = _ + exact Set.projIcc_of_le_left hrl.le (by nlinarith) + have hμstrict : ∀ s t : Set.Icc (0 : ℝ) 3, 1 ≤ (s : ℝ) → (s : ℝ) < (t : ℝ) → + (t : ℝ) ≤ 2 → μ t < μ s := by + intro s t hs hst ht + exact projIcc_lt_projIcc hrl (by nlinarith) (by nlinarith) (by nlinarith) + -- the two clamped affine reparametrisations of the side segments + set ρ₀ : Set.Icc (0 : ℝ) 3 → Set.Icc (0 : ℝ) 1 := + fun s ↦ Set.projIcc 0 1 zero_le_one (s : ℝ) with hρ₀def + set ρ₂ : Set.Icc (0 : ℝ) 3 → Set.Icc (0 : ℝ) 1 := + fun s ↦ Set.projIcc 0 1 zero_le_one ((s : ℝ) - 2) with hρ₂def + have hρ₀c : Continuous ρ₀ := continuous_projIcc.comp (by fun_prop) + have hρ₂c : Continuous ρ₂ := continuous_projIcc.comp (by fun_prop) + have hρ₀m : Monotone ρ₀ := fun s t hst ↦ Set.monotone_projIcc zero_le_one hst + have hρ₂m : Monotone ρ₂ := fun s t hst ↦ + Set.monotone_projIcc zero_le_one (by linarith [show (s : ℝ) ≤ t from hst]) + have hρ₀s : Function.Surjective ρ₀ := fun u ↦ + ⟨⟨(u : ℝ), u.property.1, le_trans u.property.2 (by norm_num)⟩, + Set.projIcc_of_mem zero_le_one u.property⟩ + have hρ₂s : Function.Surjective ρ₂ := by + intro u + refine ⟨⟨(u : ℝ) + 2, by linarith [u.property.1], by linarith [u.property.2]⟩, ?_⟩ + change Set.projIcc 0 1 zero_le_one ((u : ℝ) + 2 - 2) = u + rw [show (u : ℝ) + 2 - 2 = (u : ℝ) by ring] + exact Set.projIcc_of_mem zero_le_one u.property + have hρ₀left : ∀ s : Set.Icc (0 : ℝ) 3, (s : ℝ) ≤ 1 → (ρ₀ s : ℝ) = (s : ℝ) := by + intro s hs + change (Set.projIcc 0 1 zero_le_one (s : ℝ) : ℝ) = _ + rw [Set.projIcc_of_mem zero_le_one ⟨s.property.1, hs⟩] + have hρ₀right : ∀ s : Set.Icc (0 : ℝ) 3, 1 ≤ (s : ℝ) → (ρ₀ s : ℝ) = 1 := by + intro s hs + change (Set.projIcc 0 1 zero_le_one (s : ℝ) : ℝ) = _ + rw [Set.projIcc_of_right_le zero_le_one hs] + have hρ₂left : ∀ s : Set.Icc (0 : ℝ) 3, (s : ℝ) ≤ 2 → (ρ₂ s : ℝ) = 0 := by + intro s hs + change (Set.projIcc 0 1 zero_le_one ((s : ℝ) - 2) : ℝ) = _ + rw [Set.projIcc_of_le_left zero_le_one (by linarith)] + have hρ₂right : ∀ s : Set.Icc (0 : ℝ) 3, 2 ≤ (s : ℝ) → (ρ₂ s : ℝ) = (s : ℝ) - 2 := by + intro s hs + change (Set.projIcc 0 1 zero_le_one ((s : ℝ) - 2) : ℝ) = _ + rw [Set.projIcc_of_mem zero_le_one ⟨by linarith, by linarith [s.property.2]⟩] + -- the three summands of the roof + obtain ⟨A₀, hA₀⟩ := continuousBVPaths_comp_monotone_surjective zero_le_one + (lineSegmentBVPath P (f l)) ρ₀ hρ₀c hρ₀m hρ₀s + obtain ⟨A₂, hA₂⟩ := continuousBVPaths_comp_monotone_surjective zero_le_one + (lineSegmentBVPath 0 (Q - f r)) ρ₂ hρ₂c hρ₂m hρ₂s + set A₁ : ContinuousBVPaths 0 3 := + ⟨c.val ∘ μ, c.property.1.comp hμc, fun i ↦ + BoundedVariationOn.comp_antitone_surjective_Icc hrl.le (c.property.2 i) hμa hμs⟩ + with hA₁def + have hval : ∀ s : Set.Icc (0 : ℝ) 3, + (A₀ + (A₁ - constBVPath 0 3 (f l)) + A₂).val s = + (P + (ρ₀ s : ℝ) • (f l - P)) + (f (μ s : ℝ) - f l) + + (ρ₂ s : ℝ) • (Q - f r) := by + intro s + change A₀.val s + (A₁.val s - f l) + A₂.val s = _ + rw [hA₀, hA₂] + change Path.segment P (f l) (ρ₀ s) + (c.val (μ s) - f l) + + Path.segment (0 : Point) (Q - f r) (ρ₂ s) = _ + rw [segment_eq_add_smul, segment_eq_add_smul, hcf (μ s)] + simp + have hcoord : ∀ s : Set.Icc (0 : ℝ) 3, + (A₀ + (A₁ - constBVPath 0 3 (f l)) + A₂).val s 0 = + P 0 + (ρ₀ s : ℝ) * (f l 0 - P 0) + (f (μ s : ℝ) 0 - f l 0) + + (ρ₂ s : ℝ) * (Q 0 - f r 0) := by + intro s + rw [hval s] + simp + refine ⟨A₀ + (A₁ - constBVPath 0 3 (f l)) + A₂, ?_, ?_, ?_, ?_⟩ + · intro s hs + rw [hval s, hρ₀left s hs, hμleft s hs] + simp [hρ₂left s (by linarith)] + · intro s hs1 hs2 + rw [hval s, hρ₀right s hs1, hμmid s hs1 hs2, hρ₂left s hs2] + simp + · intro s hs + rw [hval s, hρ₀right s (by linarith), hμright s hs, hρ₂right s hs] + simp + · intro s t hst + have hst' : (s : ℝ) < (t : ℝ) := hst + have hd0 : (0 : ℝ) < f l 0 - P 0 := by linarith + have hd2 : (0 : ℝ) < Q 0 - f r 0 := by linarith + have m0 : (ρ₀ s : ℝ) * (f l 0 - P 0) ≤ (ρ₀ t : ℝ) * (f l 0 - P 0) := + mul_le_mul_of_nonneg_right (hρ₀m hst.le) hd0.le + have m2 : (ρ₂ s : ℝ) * (Q 0 - f r 0) ≤ (ρ₂ t : ℝ) * (Q 0 - f r 0) := + mul_le_mul_of_nonneg_right (hρ₂m hst.le) hd2.le + have m1 : f (μ s : ℝ) 0 ≤ f (μ t : ℝ) 0 := hcanti (μ t) (μ s) (hμa hst.le) + simp only [hcoord] + rcases lt_or_ge (s : ℝ) 1 with hc | hc + · have hs0 : (ρ₀ s : ℝ) < (ρ₀ t : ℝ) := + projIcc_lt_projIcc zero_lt_one hst' hc (by linarith [s.property.1]) + have := mul_lt_mul_of_pos_right hs0 hd0 + linarith only [this, m1, m2] + · rcases le_or_gt (t : ℝ) 2 with hc2 | hc2 + · have hmid : f (μ s : ℝ) 0 < f (μ t : ℝ) 0 := + hanti (μ t).property (μ s).property (hμstrict s t hc hst' hc2) + linarith only [hmid, m0, m2] + · have hs2 : (ρ₂ s : ℝ) < (ρ₂ t : ℝ) := + projIcc_lt_projIcc zero_lt_one (by linarith) + (by linarith [t.property.2]) (by linarith) + have := mul_lt_mul_of_pos_right hs2 hd2 + linarith only [this, m0, m1] + +/-- A linear functional bounded at the two base corners of a three-piece roof and along its +middle arc is bounded along the whole roof. -/ +theorem le_of_threePieceRoof {r l α β cc : ℝ} (hrl : r < l) (f : ℝ → Point) (P Q : Point) + (γ : ContinuousBVPaths 0 3) + (hγ0 : ∀ s : Set.Icc (0 : ℝ) 3, (s : ℝ) ≤ 1 → γ.val s = P + (s : ℝ) • (f l - P)) + (hγ1 : ∀ s : Set.Icc (0 : ℝ) 3, 1 ≤ (s : ℝ) → (s : ℝ) ≤ 2 → + γ.val s = f (l + ((s : ℝ) - 1) * (r - l))) + (hγ2 : ∀ s : Set.Icc (0 : ℝ) 3, 2 ≤ (s : ℝ) → γ.val s = f r + ((s : ℝ) - 2) • (Q - f r)) + (hP : α * P 0 + β * P 1 ≤ cc) (hQ : α * Q 0 + β * Q 1 ≤ cc) + (harc : ∀ t ∈ Set.Icc r l, α * f t 0 + β * f t 1 ≤ cc) (s : Set.Icc (0 : ℝ) 3) : + α * γ.val s 0 + β * γ.val s 1 ≤ cc := by + have hcoord : ∀ (p q : Point) (u : ℝ) (i : Fin 2), + (p + u • (q - p)) i = p i + u * (q i - p i) := fun _ _ _ _ ↦ by simp + rcases le_or_gt (s : ℝ) 1 with hs | hs + · rw [hγ0 s hs, hcoord, hcoord] + have hmid := affine_le_of_le (A := α * P 0 + β * P 1) (B := α * f l 0 + β * f l 1) + (c := cc) (s := (s : ℝ)) hP (harc l ⟨hrl.le, le_rfl⟩) s.property.1 hs + calc α * (P 0 + (s : ℝ) * (f l 0 - P 0)) + β * (P 1 + (s : ℝ) * (f l 1 - P 1)) + = (α * P 0 + β * P 1) + + (s : ℝ) * ((α * f l 0 + β * f l 1) - (α * P 0 + β * P 1)) := by ring + _ ≤ cc := hmid + · rcases le_or_gt (s : ℝ) 2 with hs2 | hs2 + · rw [hγ1 s hs.le hs2] + exact harc _ (mem_Icc_roofArcTime hrl hs.le hs2) + · rw [hγ2 s hs2.le, hcoord, hcoord] + have hmid := affine_le_of_le (A := α * f r 0 + β * f r 1) (B := α * Q 0 + β * Q 1) + (c := cc) (s := (s : ℝ) - 2) (harc r ⟨le_rfl, hrl.le⟩) hQ + (by linarith only [hs2]) (by linarith only [s.property.2]) + calc α * (f r 0 + ((s : ℝ) - 2) * (Q 0 - f r 0)) + + β * (f r 1 + ((s : ℝ) - 2) * (Q 1 - f r 1)) + = (α * f r 0 + β * f r 1) + + ((s : ℝ) - 2) * ((α * Q 0 + β * Q 1) - (α * f r 0 + β * f r 1)) := by ring + _ ≤ cc := hmid + +/-- The closed region under a strictly monotone three-piece roof whose two side segments begin +and end on the line `y = -h` has area equal to the signed area of the four-piece loop that +bounds it: the base segment, the two side segments and the arc. -/ +theorem area_region_under_strictMono_roof {r l h : ℝ} (hrl : r < l) + (c : ContinuousBVPaths r l) (f : ℝ → Point) (P Q : Point) (γ : ContinuousBVPaths 0 3) + (hf : ∀ (t : ℝ) (ht : t ∈ Set.Icc r l), c.val ⟨t, ht⟩ = f t) + (hP : P 1 = -h) (hQ : Q 1 = -h) + (hγ0 : ∀ s : Set.Icc (0 : ℝ) 3, (s : ℝ) ≤ 1 → γ.val s = P + (s : ℝ) • (f l - P)) + (hγ1 : ∀ s : Set.Icc (0 : ℝ) 3, 1 ≤ (s : ℝ) → (s : ℝ) ≤ 2 → + γ.val s = f (l + ((s : ℝ) - 1) * (r - l))) + (hγ2 : ∀ s : Set.Icc (0 : ℝ) 3, 2 ≤ (s : ℝ) → γ.val s = f r + ((s : ℝ) - 2) • (Q - f r)) + (hγmono : StrictMono fun s ↦ γ.val s 0) + (hγlow : ∀ s : Set.Icc (0 : ℝ) 3, -h ≤ γ.val s 1) : + ClassicalResults.area {p : Point | ∃ s : Set.Icc (0 : ℝ) 3, + p 0 = γ.val s 0 ∧ -h ≤ p 1 ∧ p 1 ≤ γ.val s 1} = + segmentArea Q (f r) + curveAreaFunctional c + segmentArea (f l) P + segmentArea P Q := by + have h03 : (0 : ℝ) < 3 := by norm_num + have h02 : (0 : ℝ) ≤ 2 := by norm_num + have hadd : ∀ (x y : Point) (i : Fin 2), (x + y) i = x i + y i := fun _ _ _ ↦ by simp + have hcf : ∀ u : Set.Icc r l, c.val u = f (u : ℝ) := fun u ↦ hf u u.property + -- the upward shift taking the base line to the horizontal axis + set v : Point := !₂[0, h] with hvdef + have hv0 : v 0 = 0 := rfl + have hv1 : v 1 = h := rfl + set γ' : ContinuousBVPaths 0 3 := γ + constBVPath 0 3 v with hγ'def + have hγ'val : ∀ s, γ'.val s = γ.val s + v := fun _ ↦ rfl + have hγ'coord : ∀ (s : Set.Icc (0 : ℝ) 3) (i : Fin 2), γ'.val s i = γ.val s i + v i := by + intro s i + rw [hγ'val s, hadd] + have hγ'mono : StrictMono fun s ↦ γ'.val s 0 := by + intro s t hst + have hm : γ.val s 0 < γ.val t 0 := hγmono hst + change γ'.val s 0 < γ'.val t 0 + rw [hγ'coord s 0, hγ'coord t 0] + linarith only [hm] + have hγstart : γ.val ⟨0, le_rfl, h03.le⟩ = P := by + rw [hγ0 _ (by norm_num)] + simp + have hγend : γ.val ⟨3, h03.le, le_rfl⟩ = Q := by + rw [hγ2 _ (by norm_num)] + norm_num + have hγ'zero : γ'.val ⟨0, le_rfl, h03.le⟩ 1 = 0 := by + rw [hγ'coord, hγstart, hP, hv1] + ring + have hγ'three : γ'.val ⟨3, h03.le, le_rfl⟩ 1 = 0 := by + rw [hγ'coord, hγend, hQ, hv1] + ring + have hγ'nonneg : ∀ s, 0 ≤ γ'.val s 1 := by + intro s + rw [hγ'coord, hv1] + linarith only [hγlow s] + -- the region is the roof region of the shifted path, translated back down + have hregion : {p : Point | ∃ s : Set.Icc (0 : ℝ) 3, + p 0 = γ.val s 0 ∧ -h ≤ p 1 ∧ p 1 ≤ γ.val s 1} = + (fun q : Point ↦ q + v) ⁻¹' monotoneRoofRegion h03 γ' := by + rw [monotoneRoofRegion_eq_param h03 γ' hγ'mono] + ext p + simp only [Set.mem_preimage, Set.mem_ofPred_eq, hadd, hγ'coord, hv0, hv1, add_zero] + constructor + · rintro ⟨s, e1, e2, e3⟩ + exact ⟨s, e1, by linarith only [e2], by linarith only [e3]⟩ + · rintro ⟨s, e1, e2, e3⟩ + exact ⟨s, e1, by linarith only [e2], by linarith only [e3]⟩ + have harea : ClassicalResults.area {p : Point | ∃ s : Set.Icc (0 : ℝ) 3, + p 0 = γ.val s 0 ∧ -h ≤ p 1 ∧ p 1 ≤ γ.val s 1} = + ClassicalResults.area (monotoneRoofRegion h03 γ') := by + rw [ClassicalResults.area, ClassicalResults.area, hregion, + MeasureTheory.measure_preimage_add_right] + obtain ⟨Γ, hΓval, hΓarea, -⟩ := + monotone_roof_signed_area h03 γ' hγ'mono hγ'nonneg hγ'zero hγ'three + -- reading the closed loop on its two branches + have hloopLow : ∀ (t : Set.Icc (0 : ℝ) 2) (u : Set.Icc (0 : ℝ) 3), (t : ℝ) ≤ 1 → + (u : ℝ) = 3 - 3 * (t : ℝ) → Γ.val t = γ.val u + v := by + intro t u ht hu + rw [hΓval] + unfold monotoneRoofLoop + split_ifs with hs + · rw [hγ'val] + exact congrArg (fun z : Point ↦ z + v) (congrArg (fun z ↦ γ.val z) + (Subtype.ext (by rw [hu]; ring))) + · exact absurd ht hs + have hloopHigh : ∀ t : Set.Icc (0 : ℝ) 2, 1 ≤ (t : ℝ) → + Γ.val t = (2 - (t : ℝ)) • (P + v) + ((t : ℝ) - 1) • (Q + v) := by + intro t ht + rcases eq_or_lt_of_le ht with heq | hlt + · rw [hloopLow t ⟨0, le_rfl, h03.le⟩ (le_of_eq heq.symm) (by rw [← heq]; norm_num), + hγstart, ← heq] + module + · rw [hΓval] + unfold monotoneRoofLoop + split_ifs with hs + · exact absurd hs (not_le.mpr hlt) + · simp only [hγ'val, hγstart, hγend] + -- the four cuts of the loop's parameter interval + set e0 : Set.Icc (0 : ℝ) 2 := ⟨0, le_rfl, h02⟩ with he0 + set e1 : Set.Icc (0 : ℝ) 2 := ⟨1 / 3, by norm_num⟩ with he1 + set e2 : Set.Icc (0 : ℝ) 2 := ⟨2 / 3, by norm_num⟩ with he2 + set e3 : Set.Icc (0 : ℝ) 2 := ⟨1, by norm_num⟩ with he3 + set e4 : Set.Icc (0 : ℝ) 2 := ⟨2, h02, le_rfl⟩ with he4 + have hle01 : e0 ≤ e1 := by change (0 : ℝ) ≤ 1 / 3; norm_num + have hle12 : e1 ≤ e2 := by change (1 : ℝ) / 3 ≤ 2 / 3; norm_num + have hle23 : e2 ≤ e3 := by change (2 : ℝ) / 3 ≤ 1; norm_num + have hle34 : e3 ≤ e4 := by change (1 : ℝ) ≤ 2; norm_num + have hsplit : curveAreaFunctional Γ = + curveAreaFunctional (ContinuousBVPaths.restrict Γ e0 e1 hle01) + + curveAreaFunctional (ContinuousBVPaths.restrict Γ e1 e2 hle12) + + curveAreaFunctional (ContinuousBVPaths.restrict Γ e2 e3 hle23) + + curveAreaFunctional (ContinuousBVPaths.restrict Γ e3 e4 hle34) := by + have hcm : Monotone (![e0, e1, e2, e3, e4] : Fin 5 → Set.Icc (0 : ℝ) 2) := by + refine Fin.monotone_iff_le_succ.mpr fun i ↦ ?_ + fin_cases i + · exact hle01 + · exact hle12 + · exact hle23 + · exact hle34 + have hsum := curveArea_eq_sum_restrict Γ ![e0, e1, e2, e3, e4] hcm rfl rfl + rw [Fin.sum_univ_four] at hsum + exact hsum + -- each restriction, read off through an affine reparametrisation + have hres : ∀ (u1 u2 : Set.Icc (0 : ℝ) 2) (hu : u1 ≤ u2) + (t : Set.Icc ((u1 : ℝ)) ((u2 : ℝ))) (wp : Set.Icc (0 : ℝ) 2), (wp : ℝ) = (t : ℝ) → + (ContinuousBVPaths.restrict Γ u1 u2 hu).val t = Γ.val wp := + fun _ _ _ _ _ hw ↦ congrArg (fun z ↦ Γ.val z) (Subtype.ext hw.symm) + have hseg : ∀ (u1 u2 : Set.Icc (0 : ℝ) 2) (hu : u1 ≤ u2) (p q : Point) + (φ : Set.Icc ((u1 : ℝ)) ((u2 : ℝ)) → Set.Icc (0 : ℝ) 1), Continuous φ → Monotone φ → + Function.Surjective φ → + (ContinuousBVPaths.restrict Γ u1 u2 hu).val = (lineSegmentBVPath p q).val ∘ φ → + curveAreaFunctional (ContinuousBVPaths.restrict Γ u1 u2 hu) = segmentArea p q := by + intro u1 u2 hu p q φ hφc hφm hφs hcomp + rw [curveAreaFunctional_eq_of_comp_monotone_surjective zero_le_one hu + (lineSegmentBVPath p q) _ φ hφc hφm hφs hcomp, + curveAreaFunctional_lineSegmentBVPath] + obtain ⟨φ₁, hφ₁c, hφ₁m, hφ₁s, hφ₁v⟩ := + Set.Icc.exists_affine_monotone_surjection (show ((e0 : ℝ)) < ((e1 : ℝ)) by + change (0 : ℝ) < 1 / 3; norm_num) (show (0 : ℝ) < 1 by norm_num) + obtain ⟨φ₂, hφ₂c, hφ₂m, hφ₂s, hφ₂v⟩ := + Set.Icc.exists_affine_monotone_surjection (show ((e1 : ℝ)) < ((e2 : ℝ)) by + change (1 : ℝ) / 3 < 2 / 3; norm_num) hrl + obtain ⟨φ₃, hφ₃c, hφ₃m, hφ₃s, hφ₃v⟩ := + Set.Icc.exists_affine_monotone_surjection (show ((e2 : ℝ)) < ((e3 : ℝ)) by + change (2 : ℝ) / 3 < 1; norm_num) (show (0 : ℝ) < 1 by norm_num) + obtain ⟨φ₄, hφ₄c, hφ₄m, hφ₄s, hφ₄v⟩ := + Set.Icc.exists_affine_monotone_surjection (show ((e3 : ℝ)) < ((e4 : ℝ)) by + change (1 : ℝ) < 2; norm_num) (show (0 : ℝ) < 1 by norm_num) + have hp1 : curveAreaFunctional (ContinuousBVPaths.restrict Γ e0 e1 hle01) = + segmentArea (Q + v) (f r + v) := by + refine hseg e0 e1 hle01 _ _ φ₁ hφ₁c hφ₁m hφ₁s ?_ + funext t + have ht0 : (0 : ℝ) ≤ (t : ℝ) := t.property.1 + have ht1 : (t : ℝ) ≤ 1 / 3 := t.property.2 + rw [hres e0 e1 hle01 t ⟨(t : ℝ), by linarith, by linarith⟩ rfl, + hloopLow _ ⟨3 - 3 * (t : ℝ), by constructor <;> linarith⟩ (by linarith) rfl, + hγ2 _ (by change (2 : ℝ) ≤ 3 - 3 * (t : ℝ); linarith)] + change _ = Path.segment (Q + v) (f r + v) (φ₁ t) + rw [segment_eq_add_smul, hφ₁v t, + show (0 : ℝ) + ((t : ℝ) - ((e0 : ℝ))) / (((e1 : ℝ)) - ((e0 : ℝ))) * (1 - 0) = + 3 * (t : ℝ) from by change (0 : ℝ) + ((t : ℝ) - 0) / (1 / 3 - 0) * (1 - 0) = _; ring, + show ((3 : ℝ) - 3 * (t : ℝ)) - 2 = 1 - 3 * (t : ℝ) from by ring] + module + have hp2 : curveAreaFunctional (ContinuousBVPaths.restrict Γ e1 e2 hle12) = + curveAreaFunctional (c + constBVPath r l v) := by + refine curveAreaFunctional_eq_of_comp_monotone_surjective hrl.le hle12 + (c + constBVPath r l v) _ φ₂ hφ₂c hφ₂m hφ₂s ?_ + funext t + have ht0 : (1 : ℝ) / 3 ≤ (t : ℝ) := t.property.1 + have ht1 : (t : ℝ) ≤ 2 / 3 := t.property.2 + rw [hres e1 e2 hle12 t ⟨(t : ℝ), by linarith, by linarith⟩ rfl, + hloopLow _ ⟨3 - 3 * (t : ℝ), by constructor <;> linarith⟩ (by linarith) rfl, + hγ1 _ (by change (1 : ℝ) ≤ 3 - 3 * (t : ℝ); linarith) + (by change (3 : ℝ) - 3 * (t : ℝ) ≤ 2; linarith), + show l + (((3 : ℝ) - 3 * (t : ℝ)) - 1) * (r - l) = ((φ₂ t : ℝ)) from by + rw [hφ₂v t] + change _ = r + ((t : ℝ) - 1 / 3) / (2 / 3 - 1 / 3) * (l - r) + ring] + change f ((φ₂ t : ℝ)) + v = c.val (φ₂ t) + v + rw [hcf (φ₂ t)] + have hp3 : curveAreaFunctional (ContinuousBVPaths.restrict Γ e2 e3 hle23) = + segmentArea (f l + v) (P + v) := by + refine hseg e2 e3 hle23 _ _ φ₃ hφ₃c hφ₃m hφ₃s ?_ + funext t + have ht0 : (2 : ℝ) / 3 ≤ (t : ℝ) := t.property.1 + have ht1 : (t : ℝ) ≤ 1 := t.property.2 + rw [hres e2 e3 hle23 t ⟨(t : ℝ), by linarith, by linarith⟩ rfl, + hloopLow _ ⟨3 - 3 * (t : ℝ), by constructor <;> linarith⟩ ht1 rfl, + hγ0 _ (by change (3 : ℝ) - 3 * (t : ℝ) ≤ 1; linarith)] + change _ = Path.segment (f l + v) (P + v) (φ₃ t) + rw [segment_eq_add_smul, hφ₃v t, + show (0 : ℝ) + ((t : ℝ) - ((e2 : ℝ))) / (((e3 : ℝ)) - ((e2 : ℝ))) * (1 - 0) = + 3 * (t : ℝ) - 2 from by + change (0 : ℝ) + ((t : ℝ) - 2 / 3) / (1 - 2 / 3) * (1 - 0) = _ + ring] + module + have hp4 : curveAreaFunctional (ContinuousBVPaths.restrict Γ e3 e4 hle34) = + segmentArea (P + v) (Q + v) := by + refine hseg e3 e4 hle34 _ _ φ₄ hφ₄c hφ₄m hφ₄s ?_ + funext t + have ht0 : (1 : ℝ) ≤ (t : ℝ) := t.property.1 + have ht1 : (t : ℝ) ≤ 2 := t.property.2 + rw [hres e3 e4 hle34 t ⟨(t : ℝ), by linarith, by linarith⟩ rfl, + hloopHigh _ ht0] + change _ = Path.segment (P + v) (Q + v) (φ₄ t) + rw [segment_eq_add_smul, hφ₄v t, + show (0 : ℝ) + ((t : ℝ) - ((e3 : ℝ))) / (((e4 : ℝ)) - ((e3 : ℝ))) * (1 - 0) = + (t : ℝ) - 1 from by change (0 : ℝ) + ((t : ℝ) - 1) / (2 - 1) * (1 - 0) = _; ring] + module + -- assembling the four signed areas and undoing the shift + rw [harea, ← hΓarea, hsplit, hp1, hp2, hp3, hp4, + curveAreaFunctional_add_constBVPath hrl.le c v, hcf ⟨l, hrl.le, le_rfl⟩, + hcf ⟨r, le_rfl, hrl.le⟩] + simp only [segmentArea_add_right, hv0, hv1] + ring + +/-- Comparing the closed region under a strictly monotone roof with a base set that absorbs the +region's bottom edge and a set that absorbs the rest of the open region: the roof itself is a +null set, so the three areas satisfy the expected inequality. -/ +theorem area_region_under_roof_le {h : ℝ} (γ : ContinuousBVPaths 0 3) + (hγmono : StrictMono fun s ↦ γ.val s 0) (R T : Set Point) + (hRfin : MeasureTheory.volume R ≠ ⊤) (hTfin : MeasureTheory.volume T ≠ ⊤) + (hbase : ∀ p : Point, (∃ s : Set.Icc (0 : ℝ) 3, p 0 = γ.val s 0) → p 1 = -h → p ∈ R) + (hincl : {p : Point | ∃ s : Set.Icc (0 : ℝ) 3, + p 0 = γ.val s 0 ∧ -h < p 1 ∧ p 1 < γ.val s 1} \ R ⊆ T) : + ClassicalResults.area {p : Point | ∃ s : Set.Icc (0 : ℝ) 3, + p 0 = γ.val s 0 ∧ -h ≤ p 1 ∧ p 1 ≤ γ.val s 1} ≤ + ClassicalResults.area R + ClassicalResults.area T := by + have h03 : (0 : ℝ) < 3 := by norm_num + set Pu : Set Point := + {p : Point | ∃ s : Set.Icc (0 : ℝ) 3, p 0 = γ.val s 0 ∧ -h ≤ p 1 ∧ p 1 ≤ γ.val s 1} + with hPudef + set Pu' : Set Point := + {p : Point | ∃ s : Set.Icc (0 : ℝ) 3, p 0 = γ.val s 0 ∧ -h < p 1 ∧ p 1 < γ.val s 1} + with hPu'def + have hsplit : Pu \ R ⊆ (Pu' \ R) ∪ Set.range γ.val := by + rintro p ⟨hpP, hpR⟩ + obtain ⟨s, hs0, hs1, hs2⟩ := hpP + rcases eq_or_lt_of_le hs1 with heq | hlt + · exact absurd (hbase p ⟨s, hs0⟩ heq.symm) hpR + · rcases eq_or_lt_of_le hs2 with heq2 | hlt2 + · refine Or.inr ⟨s, ?_⟩ + ext i + fin_cases i + · exact hs0.symm + · exact heq2.symm + · exact Or.inl ⟨⟨s, hs0, hlt, hlt2⟩, hpR⟩ + have hnull : MeasureTheory.volume (Set.range γ.val) = 0 := by + refine ContinuousBVPaths.volume_range_eq_zero_of_injOn h03.le γ ?_ + intro a _ b _ hab + exact hγmono.injective (congrArg (fun p : Point ↦ p 0) hab) + have hkey : MeasureTheory.volume Pu ≤ MeasureTheory.volume R + MeasureTheory.volume T := by + refine le_trans (MeasureTheory.measure_le_inter_add_sdiff _ _ R) ?_ + refine add_le_add (MeasureTheory.measure_mono Set.inter_subset_right) ?_ + refine le_trans (MeasureTheory.measure_mono hsplit) ?_ + refine le_trans (MeasureTheory.measure_union_le _ _) ?_ + rw [hnull, add_zero] + exact MeasureTheory.measure_mono hincl + have hPufin : MeasureTheory.volume Pu ≠ ⊤ := + ne_top_of_le_ne_top (ENNReal.add_ne_top.mpr ⟨hRfin, hTfin⟩) hkey + simp only [ClassicalResults.area] + rw [← ENNReal.toReal_add hRfin hTfin] + exact (ENNReal.toReal_le_toReal hPufin (ENNReal.add_ne_top.mpr ⟨hRfin, hTfin⟩)).mpr hkey + +end MovingSofa + +end + +end + +end + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Convex.Foundations.Development001`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Convex.BoundaryVariation`. +* `Convex.BoundaryApproximation`. +* `Convex.Combination`. +* `Convex.AreaSuperlevel`. +* `Convex.CombinationPullback`. +* `Convex.ContactFanArea`. +* `Convex.ExposedFaces`. +* `Convex.Limits`. +* `Convex.SupportEmbedding`. +* `Convex.CombinationProperties`. +* `Convex.EnvelopeFace`. +* `Convex.Space`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Convex / Boundary Variation +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +private theorem tangent_cone_decomposition (p : Point) (s t : ℝ) + (h : Real.sin (t - s) ≠ 0) : + p = (inner ℝ p (normalVector (t : Real.Angle)) / Real.sin (t - s)) • + tangentVector (s : Real.Angle) + + (-inner ℝ p (normalVector (s : Real.Angle)) / Real.sin (t - s)) • + tangentVector (t : Real.Angle) := by + ext i + fin_cases i <;> + simp only [normalVector, tangentVector, frame, PiLp.inner_apply, + Fin.sum_univ_two, PiLp.add_apply, PiLp.smul_apply, smul_eq_mul, + Matrix.cons_val_zero, Matrix.cons_val_one, Real.Angle.cos_coe, + Real.Angle.sin_coe, Real.inner_apply] <;> + norm_num <;> field_simp [h] <;> rw [Real.sin_sub] <;> ring + +private theorem exists_nonneg_tangent_coefficients (p q : Point) (s t : ℝ) + (hst : s < t) (hts : t < s + Real.pi) + (hs : inner ℝ q (normalVector (s : Real.Angle)) ≤ + inner ℝ p (normalVector (s : Real.Angle))) + (ht : inner ℝ p (normalVector (t : Real.Angle)) ≤ + inner ℝ q (normalVector (t : Real.Angle))) : + ∃ α β : ℝ, 0 ≤ α ∧ 0 ≤ β ∧ + q - p = α • tangentVector (s : Real.Angle) + + β • tangentVector (t : Real.Angle) := by + have hsin : 0 < Real.sin (t - s) := + Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hst) (by linarith) + refine ⟨inner ℝ (q - p) (normalVector (t : Real.Angle)) / Real.sin (t - s), + -inner ℝ (q - p) (normalVector (s : Real.Angle)) / Real.sin (t - s), + ?_, ?_, tangent_cone_decomposition (q - p) s t hsin.ne'⟩ + · apply div_nonneg _ hsin.le + rw [inner_sub_left] + exact sub_nonneg.mpr ht + · apply div_nonneg _ hsin.le + rw [inner_sub_left] + linarith + +private theorem inner_tangent_normal (r a : ℝ) : + inner ℝ (tangentVector (r : Real.Angle)) (normalVector (a : Real.Angle)) = + -Real.sin (r - a) := by + simp [tangentVector, normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two, + Real.sin_sub] + ring + +private theorem inner_tangent_tangent (r a : ℝ) : + inner ℝ (tangentVector (r : Real.Angle)) (tangentVector (a : Real.Angle)) = + Real.cos (r - a) := by + simp [tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two, Real.cos_sub] + ring + +private theorem tangent_projection_signs {a r : ℝ} + (hr : r ∈ Set.Icc a (a + Real.pi / 2)) : + inner ℝ (tangentVector (r : Real.Angle)) (normalVector (a : Real.Angle)) ≤ 0 ∧ + 0 ≤ inner ℝ (tangentVector (r : Real.Angle)) (tangentVector (a : Real.Angle)) := by + rw [inner_tangent_normal, inner_tangent_tangent] + constructor + · exact neg_nonpos.mpr (Real.sin_nonneg_of_nonneg_of_le_pi (by linarith [hr.1]) + (by linarith [hr.2, Real.pi_pos])) + · exact Real.cos_nonneg_of_mem_Icc ⟨by linarith [hr.1, Real.pi_pos], + by linarith [hr.2]⟩ + +private theorem support_selection_projection_order (K : ConvexBody Point) + {a s t : ℝ} (hs : s ∈ Set.Icc a (a + Real.pi / 2)) + (ht : t ∈ Set.Icc a (a + Real.pi / 2)) (hst : s < t) + {p q : Point} (hp : p ∈ exposedEdge K (s : Real.Angle)) + (hq : q ∈ exposedEdge K (t : Real.Angle)) : + inner ℝ q (normalVector (a : Real.Angle)) ≤ + inner ℝ p (normalVector (a : Real.Angle)) ∧ + inner ℝ p (tangentVector (a : Real.Angle)) ≤ + inner ℝ q (tangentVector (a : Real.Angle)) := by + have hsp := inner_le_supportValue K hq.1 (s : Real.Angle) + have htp := inner_le_supportValue K hp.1 (t : Real.Angle) + rw [← hp.2] at hsp + rw [← hq.2] at htp + obtain ⟨α, β, hα, hβ, hrepr⟩ := exists_nonneg_tangent_coefficients p q s t hst + (by linarith [hs.1, ht.2, Real.pi_pos]) hsp htp + have hsigns := tangent_projection_signs hs + have hsignt := tangent_projection_signs ht + constructor + · have h := congrArg (fun p ↦ inner ℝ p (normalVector (a : Real.Angle))) hrepr + simp only [inner_sub_left, inner_add_left, real_inner_smul_left] at h + linarith [mul_nonpos_of_nonneg_of_nonpos hα hsigns.1, + mul_nonpos_of_nonneg_of_nonpos hβ hsignt.1] + · have h := congrArg (fun p ↦ inner ℝ p (tangentVector (a : Real.Angle))) hrepr + simp only [inner_sub_left, inner_add_left, real_inner_smul_left] at h + linarith [mul_nonneg hα hsigns.2, mul_nonneg hβ hsignt.2] + +private theorem support_selection_boundedVariationOn_quarter (K : ConvexBody Point) + (f : ℝ → Point) (a : ℝ) + (hf : ∀ t ∈ Set.Icc a (a + Real.pi / 2), f t ∈ exposedEdge K (t : Real.Angle)) : + BoundedVariationOn f (Set.Icc a (a + Real.pi / 2)) := by + let x : ℝ → ℝ := fun t ↦ -inner ℝ (f t) (normalVector (a : Real.Angle)) + let y : ℝ → ℝ := fun t ↦ inner ℝ (f t) (tangentVector (a : Real.Angle)) + have hx : MonotoneOn x (Set.Icc a (a + Real.pi / 2)) := by + intro s hs t ht hst + rcases hst.eq_or_lt with rfl | hst + · rfl + · exact neg_le_neg (support_selection_projection_order K hs ht hst (hf s hs) (hf t ht)).1 + have hy : MonotoneOn y (Set.Icc a (a + Real.pi / 2)) := by + intro s hs t ht hst + rcases hst.eq_or_lt with rfl | hst + · rfl + · exact (support_selection_projection_order K hs ht hst (hf s hs) (hf t ht)).2 + have ha : a ≤ a + Real.pi / 2 := by linarith [Real.pi_pos] + have hxv : BoundedVariationOn x (Set.Icc a (a + Real.pi / 2)) := by + simpa only [Set.inter_self] using + hx.locallyBoundedVariationOn a (a + Real.pi / 2) ⟨le_rfl, ha⟩ ⟨ha, le_rfl⟩ + have hyv : BoundedVariationOn y (Set.Icc a (a + Real.pi / 2)) := by + simpa only [Set.inter_self] using + hy.locallyBoundedVariationOn a (a + Real.pi / 2) ⟨le_rfl, ha⟩ ⟨ha, le_rfl⟩ + let U := ContinuousLinearMap.toSpanSingleton ℝ (-normalVector (a : Real.Angle)) + let V := ContinuousLinearMap.toSpanSingleton ℝ (tangentVector (a : Real.Angle)) + have hsum := (U.lipschitzWith.comp_boundedVariationOn hxv).add + (V.lipschitzWith.comp_boundedVariationOn hyv) + have heq : (U ∘ x) + (V ∘ y) = f := by + funext t + simpa [U, V, x, y, Function.comp_def] using + inner_normalVector_smul_add_inner_tangentVector_smul (f t) (a : Real.Angle) + rwa [heq] at hsum + +private theorem boundedVariationOn_Icc_trans {f : ℝ → Point} {a b c : ℝ} + (hab : a ≤ b) (hbc : b ≤ c) (hf : BoundedVariationOn f (Set.Icc a b)) + (hg : BoundedVariationOn f (Set.Icc b c)) : + BoundedVariationOn f (Set.Icc a c) := by + have h := eVariationOn.Icc_add_Icc f (s := Set.univ) hab hbc (Set.mem_univ b) + simp only [Set.univ_inter] at h + change eVariationOn f (Set.Icc a c) ≠ ⊤ + rw [← h] + exact ENNReal.add_ne_top.mpr ⟨hf, hg⟩ + +/-- Every selection of points from the exposed edges has bounded variation on bounded intervals. -/ +theorem boundedVariationOn_of_mem_exposedEdge (K : ConvexBody Point) + (f : ℝ → Point) (hf : ∀ t : ℝ, f t ∈ exposedEdge K (t : Real.Angle)) (a b : ℝ) : + BoundedVariationOn f (Set.Icc a b) := by + have hN : ∀ n : ℕ, BoundedVariationOn f (Set.Icc a (a + n * (Real.pi / 2))) := by + intro n + induction n with + | zero => + simp only [Nat.cast_zero, zero_mul, add_zero] + exact BoundedVariationOn.of_subsingleton (Set.subsingleton_Icc_of_ge (le_refl a)) + | succ n ih => + have hn : a ≤ a + n * (Real.pi / 2) := + le_add_of_nonneg_right (mul_nonneg (Nat.cast_nonneg n) (by positivity)) + have hn' : a + n * (Real.pi / 2) ≤ a + (n + 1) * (Real.pi / 2) := by + linarith [Real.pi_pos] + have hpiece := support_selection_boundedVariationOn_quarter K f + (a + n * (Real.pi / 2)) (fun t _ ↦ hf t) + have hstep := boundedVariationOn_Icc_trans hn hn' ih + (by convert hpiece using 1; congr 1; ring) + simpa only [Nat.cast_add, Nat.cast_one] using hstep + obtain ⟨n, hn⟩ := exists_nat_gt ((b - a) / (Real.pi / 2)) + have hb : b ≤ a + n * (Real.pi / 2) := by + have h := (div_lt_iff₀ (by positivity : 0 < Real.pi / 2)).mp hn + linarith + exact (hN n).mono (Set.Icc_subset_Icc_right hb) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Convex / Boundary Approximation +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem positiveVertex_boundedVariation (K : ConvexBody Point) (a b : ℝ) (hab : a ≤ b) : + BoundedVariationOn (fun t : ℝ ↦ (edgeVertices K (t : Real.Angle)).1) (Set.Icc a b) := by + rcases hab.eq_or_lt with rfl | hab + · exact BoundedVariationOn.of_subsingleton (Set.subsingleton_Icc_of_ge le_rfl) + · exact boundedVariationOn_of_mem_exposedEdge K _ (fun t ↦ edgeVertices_fst_mem K _) a b + +private theorem exists_facePreserving_polygon (K : ConvexBody Point) + (F : Finset Real.Angle) {ε : ℝ} (hε : 0 < ε) : + ∃ (V : Finset Point) (P : ConvexBody Point), + V.Nonempty ∧ + (P : Set Point) = convexHull ℝ (V : Set Point) ∧ + (P : Set Point) ⊆ (K : Set Point) ∧ + (∀ t ∈ F, exposedEdge P t = exposedEdge K t) ∧ + Metric.hausdorffDist (P : Set Point) (K : Set Point) ≤ ε := by + obtain ⟨S, hSK, hSfinite, hcover⟩ := + Metric.finite_approx_of_totallyBounded K.isCompact.totallyBounded ε hε + let N : Finset Point := hSfinite.toFinset + let E : Finset Point := + F.image (fun t ↦ (edgeVertices K t).1) ∪ + F.image (fun t ↦ (edgeVertices K t).2) + let p₀ : Point := Classical.choose K.nonempty + let V : Finset Point := insert p₀ (N ∪ E) + have hp₀ : p₀ ∈ K := Classical.choose_spec K.nonempty + have hVnonempty : V.Nonempty := by + exact ⟨p₀, Finset.mem_insert_self p₀ _⟩ + have hVsubset : (V : Set Point) ⊆ (K : Set Point) := by + intro p hp + simp only [V, E, Finset.mem_coe, Finset.mem_insert, Finset.mem_union, + Finset.mem_image] at hp + rcases hp with rfl | hpN | hpE + · exact hp₀ + · exact hSK (hSfinite.mem_toFinset.mp hpN) + · rcases hpE with hpE | hpE + · obtain ⟨t, ht, rfl⟩ := hpE + exact (edgeVertices_fst_mem K t).1 + · obtain ⟨t, ht, rfl⟩ := hpE + exact (edgeVertices_snd_mem K t).1 + let P : ConvexBody Point := + { carrier := convexHull ℝ (V : Set Point) + convex' := convex_convexHull ℝ _ + isCompact' := V.finite_toSet.isCompact_convexHull ℝ + nonempty' := ⟨p₀, subset_convexHull ℝ _ (Finset.mem_coe.mpr + (Finset.mem_insert_self p₀ _))⟩ } + have hPcarrier : (P : Set Point) = convexHull ℝ (V : Set Point) := rfl + have hPK : (P : Set Point) ⊆ (K : Set Point) := by + change convexHull ℝ (V : Set Point) ⊆ (K : Set Point) + exact convexHull_min hVsubset K.convex + have hfaces : ∀ t ∈ F, exposedEdge P t = exposedEdge K t := by + intro t ht + have hfstV : (edgeVertices K t).1 ∈ V := by + simp only [V, E, Finset.mem_insert, Finset.mem_union, Finset.mem_image] + exact Or.inr (Or.inr (Or.inl ⟨t, ht, rfl⟩)) + have hsndV : (edgeVertices K t).2 ∈ V := by + simp only [V, E, Finset.mem_insert, Finset.mem_union, Finset.mem_image] + exact Or.inr (Or.inr (Or.inr ⟨t, ht, rfl⟩)) + have hfstP : (edgeVertices K t).1 ∈ P := by + exact subset_convexHull ℝ (V : Set Point) hfstV + have hsndP : (edgeVertices K t).2 ∈ P := by + exact subset_convexHull ℝ (V : Set Point) hsndV + have hsupport : supportValue P t = supportValue K t := by + apply le_antisymm + · apply csSup_le (P.nonempty.image _) + rintro _ ⟨p, hp, rfl⟩ + exact inner_le_supportValue K (hPK hp) t + · have h := inner_le_supportValue P hfstP t + rw [(edgeVertices_fst_mem K t).2] at h + exact h + ext p + constructor + · intro hp + exact ⟨hPK hp.1, hp.2.trans hsupport⟩ + · intro hp + have hpseg : p ∈ segment ℝ (edgeVertices K t).2 (edgeVertices K t).1 := by + rw [← exposedEdge_eq_segment_edgeVertices] + exact hp + have hpP : p ∈ P := P.convex.segment_subset hsndP hfstP hpseg + exact ⟨hpP, hp.2.trans hsupport.symm⟩ + have hdist : Metric.hausdorffDist (P : Set Point) (K : Set Point) ≤ ε := by + apply Metric.hausdorffDist_le_of_mem_dist hε.le + · intro p hp + exact ⟨p, hPK hp, dist_self p ▸ hε.le⟩ + · intro p hp + have hpcover := hcover hp + simp only [Set.mem_iUnion, Metric.mem_ball] at hpcover + obtain ⟨q, hqS, hpq⟩ := hpcover + have hqN : q ∈ N := hSfinite.mem_toFinset.mpr hqS + have hqV : q ∈ V := by + simp only [V, Finset.mem_insert, Finset.mem_union] + exact Or.inr (Or.inl hqN) + have hqP : q ∈ P := subset_convexHull ℝ (V : Set Point) hqV + exact ⟨q, hqP, hpq.le⟩ + exact ⟨V, P, hVnonempty, hPcarrier, hPK, hfaces, hdist⟩ + +theorem exists_facePreserving_polygonApproximation (K : ConvexBody Point) + (F : Finset Real.Angle) : + ∃ (V : ℕ → Finset Point) (P : ℕ → ConvexBody Point), + (∀ n, (V n).Nonempty ∧ + (P n : Set Point) = convexHull ℝ (V n : Set Point) ∧ + (P n : Set Point) ⊆ (K : Set Point) ∧ + ∀ t ∈ F, exposedEdge (P n) t = exposedEdge K t) ∧ + ∀ n : ℕ, 1 ≤ n → Metric.hausdorffDist (P n : Set Point) (K : Set Point) ≤ 1 / (n : ℝ) := by + let m : ℕ → ℕ := fun n ↦ max n 1 + let V : ℕ → Finset Point := fun n ↦ + Classical.choose (exists_facePreserving_polygon K F + (show 0 < 1 / (m n : ℝ) by positivity)) + let P : ℕ → ConvexBody Point := fun n ↦ + Classical.choose (Classical.choose_spec (exists_facePreserving_polygon K F + (show 0 < 1 / (m n : ℝ) by positivity))) + have hdata (n : ℕ) := Classical.choose_spec (Classical.choose_spec + (exists_facePreserving_polygon K F (show 0 < 1 / (m n : ℝ) by positivity))) + refine ⟨V, P, ?_, ?_⟩ + · intro n + exact ⟨(hdata n).1, (hdata n).2.1, (hdata n).2.2.1, (hdata n).2.2.2.1⟩ + · intro n hn + have hmn : m n = n := max_eq_left hn + simpa only [P, m, hmn] using (hdata n).2.2.2.2 + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Convex / Combination +-/ + +@[expose] public section + +noncomputable section + +open scoped unitInterval + +universe u v w + +namespace MovingSofa + +/-- A barycentric operation has an injective realization as convex combinations in a real space. -/ +def IsConvexDomain {α : Type u} (c : I → α → α → α) : Prop := + ∃ (V : ModuleCat.{v} ℝ) (e : α → V), Function.Injective e ∧ + Convex ℝ (Set.range e) ∧ + ∀ (t : I) x y, e (c t x y) = (1 - (t : ℝ)) • e x + (t : ℝ) • e y + +/-- Preservation of the specified barycentric operations. -/ +def IsConvexLinear {α : Type u} {β : Type v} + (cα : I → α → α → α) (cβ : I → β → β → β) (f : α → β) : Prop := + ∀ t x y, f (cα t x y) = cβ t (f x) (f y) + +/-- Separate preservation of barycentric combinations in both variables. -/ +def IsConvexBilinear {α : Type u} {β : Type v} {γ : Type w} + (cα : I → α → α → α) (cβ : I → β → β → β) (cγ : I → γ → γ → γ) + (g : α → β → γ) : Prop := + (∀ x, IsConvexLinear cβ cγ (g x)) ∧ + ∀ y, IsConvexLinear cα cγ (fun x ↦ g x y) + +/-- The usual barycentric combination of real numbers. -/ +def realCombination (t : I) (x y : ℝ) : ℝ := (1 - (t : ℝ)) * x + (t : ℝ) * y + +/-- A quadratic functional is the diagonal of a separately convex-linear real map. -/ +def IsQuadraticFunctional {α : Type u} (c : I → α → α → α) (f : α → ℝ) : Prop := + ∃ g : α → α → ℝ, IsConvexBilinear c c realCombination g ∧ ∀ x, f x = g x x + +/-- Concavity or convexity according to the direction of the barycentric inequality. -/ +def IsConvexFunctional {α : Type u} (c : I → α → α → α) (f : α → ℝ) + (concave : Bool) : Prop := + ∀ t x y, if concave then realCombination t (f x) (f y) ≤ f (c t x y) + else f (c t x y) ≤ realCombination t (f x) (f y) + +/-- The segment function, extended by zero outside its parameter interval. -/ +def segmentFunctional {α : Type u} (c : I → α → α → α) (f : α → ℝ) + (x y : α) (t : ℝ) : ℝ := + if ht : t ∈ Set.Icc (0 : ℝ) 1 then f (c ⟨t, ht⟩ x y) else 0 + +/-- The right derivative along the barycentric segment; used for quadratic functionals. -/ +def convexDirectionalDerivative {α : Type u} (c : I → α → α → α) + (f : α → ℝ) (x y : α) : ℝ := + derivWithin (segmentFunctional c f x y) (Set.Icc 0 1) 0 + +/-- Minkowski interpolation of nonempty compact convex bodies, including both endpoints. -/ +def convexBodyCombination (t : I) (K L : ConvexBody Point) : ConvexBody Point := + (1 - (t : ℝ)) • K + (t : ℝ) • L + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Convex / Area Superlevel +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped Pointwise unitInterval + +namespace MovingSofa + +theorem convexBody_area_superlevel (K L : ConvexBody Point) + (hK : (11 : ℝ) / 5 ≤ ClassicalResults.area (K : Set Point)) + (hL : (11 : ℝ) / 5 ≤ ClassicalResults.area (L : Set Point)) (t : I) : + (11 : ℝ) / 5 ≤ ClassicalResults.area (convexBodyCombination t K L : Set Point) := by + let a : ℝ := 1 - (t : ℝ) + let b : ℝ := t + let A : Set Point := a • (K : Set Point) + let B : Set Point := b • (L : Set Point) + have ha : 0 ≤ a := by dsimp [a]; exact sub_nonneg.mpr t.2.2 + have hb : 0 ≤ b := t.2.1 + have hab : a + b = 1 := by dsimp [a, b]; ring + have hAcomp : IsCompact A := K.isCompact.smul a + have hBcomp : IsCompact B := L.isCompact.smul b + have hABcomp : IsCompact (A + B) := hAcomp.add hBcomp + have hbm : + volume A ^ (2 : ℝ)⁻¹ + volume B ^ (2 : ℝ)⁻¹ ≤ + volume (A + B) ^ (2 : ℝ)⁻¹ := by + convert brunn_minkowski_euclideanSpace (d := 1) (A := A) (B := B) + (K.nonempty.smul_set (a := a)) hAcomp.measurableSet + (L.nonempty.smul_set (a := b)) hBcomp.measurableSet hABcomp.measurableSet using 1 <;> + norm_num + have hKfin : volume (K : Set Point) ≠ ⊤ := K.isCompact.measure_lt_top.ne + have hLfin : volume (L : Set Point) ≠ ⊤ := L.isCompact.measure_lt_top.ne + have hABfin : volume (A + B) ≠ ⊤ := hABcomp.measure_lt_top.ne + have hKvol : ENNReal.ofReal ((11 : ℝ) / 5) ≤ volume (K : Set Point) := + (ENNReal.ofReal_le_iff_le_toReal hKfin).2 hK + have hLvol : ENNReal.ofReal ((11 : ℝ) / 5) ≤ volume (L : Set Point) := + (ENNReal.ofReal_le_iff_le_toReal hLfin).2 hL + have hKroot := ENNReal.monotone_rpow_of_nonneg (by positivity : 0 ≤ (2 : ℝ)⁻¹) hKvol + have hLroot := ENNReal.monotone_rpow_of_nonneg (by positivity : 0 ≤ (2 : ℝ)⁻¹) hLvol + have hroot : + ENNReal.ofReal ((11 : ℝ) / 5) ^ (2 : ℝ)⁻¹ ≤ + volume (A + B) ^ (2 : ℝ)⁻¹ := by + rw [volume_smul_rpow_half (K : Set Point) a ha, + volume_smul_rpow_half (L : Set Point) b hb] at hbm + calc + _ = (ENNReal.ofReal a + ENNReal.ofReal b) * + ENNReal.ofReal ((11 : ℝ) / 5) ^ (2 : ℝ)⁻¹ := by + rw [← ENNReal.ofReal_add ha hb, hab, ENNReal.ofReal_one, one_mul] + _ ≤ ENNReal.ofReal a * volume (K : Set Point) ^ (2 : ℝ)⁻¹ + + ENNReal.ofReal b * volume (L : Set Point) ^ (2 : ℝ)⁻¹ := by + rw [add_mul] + exact add_le_add + (by simpa [mul_comm] using mul_le_mul_left hKroot (ENNReal.ofReal a)) + (by simpa [mul_comm] using mul_le_mul_left hLroot (ENNReal.ofReal b)) + _ ≤ _ := hbm + have hvol : ENNReal.ofReal ((11 : ℝ) / 5) ≤ volume (A + B) := by + calc + _ = (ENNReal.ofReal ((11 : ℝ) / 5) ^ (2 : ℝ)⁻¹) ^ (2 : ℕ) := + (ENNReal.rpow_inv_natCast_pow (by norm_num) _).symm + _ ≤ (volume (A + B) ^ (2 : ℝ)⁻¹) ^ (2 : ℕ) := pow_le_pow_left' hroot 2 + _ = _ := ENNReal.rpow_inv_natCast_pow (by norm_num) _ + have hcomb : (convexBodyCombination t K L : Set Point) = A + B := by + rfl + rw [hcomb] + exact (ENNReal.ofReal_le_iff_le_toReal hABfin).1 hvol + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Pulling barycentric functionals back along convex-linear maps + +A convex-linear map transports one barycentric operation to another, so every notion defined +from that operation pulls back along it: a quadratic functional stays quadratic, and its +directional derivative along a segment is the directional derivative between the images of the +two endpoints. Neither statement needs any topology or differentiability: the two segment +functions are literally equal. +-/ + +@[expose] public section + +noncomputable section + +open scoped unitInterval + +universe u v + +namespace MovingSofa + +/-- A quadratic functional pulled back along a convex-linear map is quadratic. -/ +theorem IsQuadraticFunctional.comp_isConvexLinear {α : Type u} {β : Type v} + {cα : I → α → α → α} {cβ : I → β → β → β} {F : α → β} + (hF : IsConvexLinear cα cβ F) {f : β → ℝ} (hf : IsQuadraticFunctional cβ f) : + IsQuadraticFunctional cα fun x ↦ f (F x) := by + obtain ⟨g, hg, hfg⟩ := hf + refine ⟨fun x y ↦ g (F x) (F y), ⟨fun x s y z ↦ ?_, fun y s x z ↦ ?_⟩, fun x ↦ hfg (F x)⟩ + · change g (F x) (F (cα s y z)) = _ + rw [hF] + exact hg.1 (F x) s (F y) (F z) + · change g (F (cα s x z)) (F y) = _ + rw [hF] + exact hg.2 (F y) s (F x) (F z) + +/-- The directional derivative of a functional pulled back along a convex-linear map is the +directional derivative of the functional between the images. -/ +theorem convexDirectionalDerivative_comp_isConvexLinear {α : Type u} {β : Type v} + {cα : I → α → α → α} {cβ : I → β → β → β} {F : α → β} + (hF : IsConvexLinear cα cβ F) (f : β → ℝ) (x y : α) : + convexDirectionalDerivative cα (fun z ↦ f (F z)) x y = + convexDirectionalDerivative cβ f (F x) (F y) := by + unfold convexDirectionalDerivative + congr 1 + funext s + simp only [segmentFunctional] + split_ifs with hs + · exact congrArg f (hF _ x y) + · rfl + +/-- A convex or concave functional pulled back along a convex-linear map keeps its direction of +convexity. -/ +theorem IsConvexFunctional.comp_isConvexLinear {α : Type u} {β : Type v} + {cα : I → α → α → α} {cβ : I → β → β → β} {F : α → β} + (hF : IsConvexLinear cα cβ F) {f : β → ℝ} {concave : Bool} + (hf : IsConvexFunctional cβ f concave) : + IsConvexFunctional cα (fun x ↦ f (F x)) concave := by + intro s x y + have h := hf s (F x) (F y) + rw [← hF s x y] at h + exact h + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Area lower bound from ordered support contacts + +A compact convex set `K` of the plane that contains a base point `L = (ℓ, 0)` and lies in the +closed quadrant `{(a, b) | ℓ ≤ a, 0 ≤ b}` has area at least the shoelace expression of any +finite fan `L, P₀, …, P_n` of support contacts taken at strictly increasing normal angles in +`[0, π)`. + +Two ordered contacts span a nonnegatively oriented determinant over `L`: expanding the +support inequalities in coordinates turns `sin (β - α) · (P - L) × (Q - L)` into a sum of two +products of nonnegative factors. The fan triangles `convexHull ℝ {L, Pᵢ, Pᵢ₊₁}` therefore lie +in `K` with area one half of their determinant, and two of them can meet only along the line +through `L` and the contact they share, which is planar null. Finite additivity of the volume +off that null set and monotonicity give the bound. Repeated contacts, zero contact vectors and +collinear consecutive rays are allowed: a degenerate triangle simply has vanishing area. +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- Two ordered support contacts of a set lying in the closed quadrant above a base point +have nonnegative oriented determinant over that base point. -/ +theorem planeCrossProduct_sub_nonneg_of_support {K : Set Point} {L P Q : Point} + (hL : L ∈ K) (hquadrant : ∀ p ∈ K, L 0 ≤ p 0 ∧ 0 ≤ p 1) + {α β : ℝ} (hα : 0 ≤ α) (hαβ : α < β) (hβ : β < Real.pi) + (hP : P ∈ K) (hQ : Q ∈ K) + (hPs : ∀ x ∈ K, inner ℝ x (normalVector (α : Real.Angle)) ≤ + inner ℝ P (normalVector (α : Real.Angle))) + (hQs : ∀ x ∈ K, inner ℝ x (normalVector (β : Real.Angle)) ≤ + inner ℝ Q (normalVector (β : Real.Angle))) : + 0 ≤ planeCrossProduct (P - L) (Q - L) := by + have hsβ : 0 < Real.sin β := Real.sin_pos_of_pos_of_lt_pi (hα.trans_lt hαβ) hβ + have hsα : 0 ≤ Real.sin α := Real.sin_nonneg_of_nonneg_of_le_pi hα (by linarith) + have hsδ : 0 < Real.sin β * Real.cos α - Real.cos β * Real.sin α := by + have h := Real.sin_pos_of_pos_of_lt_pi (x := β - α) (by linarith) (by linarith) + rwa [Real.sin_sub] at h + have hz : 0 ≤ (P 0 - Q 0) * Real.cos α + (P 1 - Q 1) * Real.sin α := by + have h := hPs Q hQ + rw [inner_normalVector_real, inner_normalVector_real] at h + linarith + have hk : 0 ≤ (Q 0 - P 0) * Real.cos β + (Q 1 - P 1) * Real.sin β := by + have h := hQs P hP + rw [inner_normalVector_real, inner_normalVector_real] at h + linarith + have hB : 0 ≤ (Q 0 - L 0) * Real.cos β + (Q 1 - L 1) * Real.sin β := by + have h := hQs L hL + rw [inner_normalVector_real, inner_normalVector_real] at h + linarith + have hq0 : 0 ≤ Q 0 - L 0 := sub_nonneg.mpr (hquadrant Q hQ).1 + have hc : 0 ≤ (Q 0 - L 0) * Real.cos α + (Q 1 - L 1) * Real.sin α := by + have hid : Real.sin β * ((Q 0 - L 0) * Real.cos α + (Q 1 - L 1) * Real.sin α) + = Real.sin α * ((Q 0 - L 0) * Real.cos β + (Q 1 - L 1) * Real.sin β) + + (Real.sin β * Real.cos α - Real.cos β * Real.sin α) * (Q 0 - L 0) := by + ring + nlinarith [mul_nonneg hsα hB, mul_nonneg hsδ.le hq0] + have hcross : planeCrossProduct (P - L) (Q - L) + = (P 0 - L 0) * (Q 1 - L 1) - (P 1 - L 1) * (Q 0 - L 0) := by + simp [planeCrossProduct] + have hid2 : (Real.sin β * Real.cos α - Real.cos β * Real.sin α) * + ((P 0 - L 0) * (Q 1 - L 1) - (P 1 - L 1) * (Q 0 - L 0)) + = ((Q 0 - L 0) * Real.cos α + (Q 1 - L 1) * Real.sin α) * + ((Q 0 - P 0) * Real.cos β + (Q 1 - P 1) * Real.sin β) + + ((P 0 - Q 0) * Real.cos α + (P 1 - Q 1) * Real.sin α) * + ((Q 0 - L 0) * Real.cos β + (Q 1 - L 1) * Real.sin β) := by + ring + rw [hcross] + nlinarith [mul_nonneg hc hk, mul_nonneg hz hB] + +theorem supportContact_fan_area (K : Set Point) + (hcK : IsCompact K) (hvK : Convex ℝ K) (L : Point) (hL : L ∈ K) + (hLy : L 1 = 0) (hquadrant : ∀ p ∈ K, L 0 ≤ p 0 ∧ 0 ≤ p 1) + (n : ℕ) (θ : Fin (n + 1) → ℝ) + (hθ : StrictMono θ) (hθrange : ∀ i, 0 ≤ θ i ∧ θ i < Real.pi) + (P : Fin (n + 1) → Point) (hP : ∀ i, P i ∈ K) + (hsupport : ∀ i q, q ∈ K → + inner ℝ q (normalVector (θ i : Real.Angle)) ≤ + inner ℝ (P i) (normalVector (θ i : Real.Angle))) : + 0 ≤ (1 / 2 : ℝ) * ∑ i : Fin n, + planeCrossProduct (P i.castSucc - L) (P i.succ - L) ∧ + (1 / 2 : ℝ) * (∑ i : Fin n, + planeCrossProduct (P i.castSucc - L) (P i.succ - L)) ≤ ClassicalResults.area K := by + have hquad : ∀ x ∈ K, 0 ≤ (x - L) 0 ∧ 0 ≤ (x - L) 1 := by + intro x hx + obtain ⟨h1, h2⟩ := hquadrant x hx + exact ⟨by simpa using sub_nonneg.mpr h1, by simpa [hLy] using h2⟩ + have hmono : ∀ i j : Fin (n + 1), i ≤ j → 0 ≤ planeCrossProduct (P i - L) (P j - L) := by + intro i j hij + rcases eq_or_lt_of_le hij with rfl | hlt + · simp + · exact planeCrossProduct_sub_nonneg_of_support hL hquadrant (hθrange i).1 (hθ hlt) + (hθrange j).2 (hP i) (hP j) (fun x hx ↦ hsupport i x hx) (fun x hx ↦ hsupport j x hx) + have hcnn : ∀ i : Fin n, 0 ≤ planeCrossProduct (P i.castSucc - L) (P i.succ - L) := + fun i ↦ hmono _ _ Fin.castSucc_lt_succ.le + have hsumnn : 0 ≤ ∑ i : Fin n, planeCrossProduct (P i.castSucc - L) (P i.succ - L) := + Finset.sum_nonneg fun i _ ↦ hcnn i + refine ⟨by linarith, ?_⟩ + set T : Fin n → Set Point := fun i ↦ convexHull ℝ {L, P i.castSucc, P i.succ} with hTdef + have hTsub : ∀ i, T i ⊆ K := by + intro i + refine convexHull_min ?_ hvK + intro x hx + simp only [Set.mem_insert_iff, Set.mem_singleton_iff] at hx + rcases hx with rfl | rfl | rfl + exacts [hL, hP _, hP _] + have hTvol : ∀ i, volume (T i) = ENNReal.ofReal + ((1 / 2 : ℝ) * planeCrossProduct (P i.castSucc - L) (P i.succ - L)) := by + intro i + have hpos := hcnn i + simp only [planeCrossProduct] at hpos + simp only [hTdef, EuclideanSpace.volume_convexHull_triple] + congr 1 + rw [abs_of_nonneg (by linarith)] + simp only [planeCrossProduct] + ring + have hTmeas : ∀ i, NullMeasurableSet (T i) volume := by + intro i + refine (IsCompact.measurableSet ?_).nullMeasurableSet + exact (((Set.finite_singleton _).insert _).insert _).isCompact_convexHull ℝ + have hsector : ∀ i : Fin n, T i ⊆ {x : Point | + 0 ≤ planeCrossProduct (P i.castSucc - L) (x - L) ∧ + 0 ≤ planeCrossProduct (x - L) (P i.succ - L)} := by + intro i + refine convexHull_min ?_ (convex_setOf_planeCrossProduct_fan _ _ _) + intro x hx + simp only [Set.mem_insert_iff, Set.mem_singleton_iff] at hx + rcases hx with rfl | rfl | rfl + · exact ⟨by simp, by simp⟩ + · exact ⟨by simp, hcnn i⟩ + · exact ⟨hcnn i, by simp⟩ + have hdisj : Pairwise (Function.onFun (AEDisjoint volume) T) := by + have hkey : ∀ i j : Fin n, i < j → volume (T i ∩ T j) = 0 := by + intro i j hij + rcases eq_or_lt_of_le (hcnn i) with h0 | h0 + · exact measure_mono_null Set.inter_subset_left (by rw [hTvol i, ← h0]; simp) + rcases eq_or_lt_of_le (hcnn j) with h1 | h1 + · exact measure_mono_null Set.inter_subset_right (by rw [hTvol j, ← h1]; simp) + have hne2 : P j.castSucc - L ≠ 0 := by + intro h + rw [h] at h1 + simp [planeCrossProduct] at h1 + have hne1 : P i.succ - L ≠ 0 := by + intro h + rw [h] at h0 + simp [planeCrossProduct] at h0 + refine measure_mono_null ?_ (volume_setOf_planeCrossProduct_sub_eq_zero hne1 L) + rintro x ⟨hxi, hxj⟩ + have hxK : x ∈ K := hTsub i hxi + have h2 := (hsector i hxi).2 + have h3 := (hsector j hxj).1 + have hle : i.succ ≤ j.castSucc := by + have hij' : (i : ℕ) < (j : ℕ) := hij + rw [Fin.le_def] + simp only [Fin.val_succ, Fin.val_castSucc] + omega + have h5 : 0 ≤ planeCrossProduct (P i.succ - L) (x - L) := + planeCrossProduct_nonneg_trans hne2 + (hquad _ (hP _)).1 (hquad _ (hP _)).2 (hquad _ (hP _)).1 (hquad _ (hP _)).2 + (hquad x hxK).1 (hquad x hxK).2 (hmono _ _ hle) h3 + change planeCrossProduct (P i.succ - L) (x - L) = 0 + rw [planeCrossProduct_swap (x - L)] at h2 + linarith + intro i j hij + rcases lt_or_gt_of_ne hij with h | h + · exact hkey i j h + · change volume (T i ∩ T j) = 0 + rw [Set.inter_comm] + exact hkey j i h + have hunion : ∑ i : Fin n, volume (T i) ≤ volume K := by + have h := measure_iUnion₀ (μ := volume) hdisj hTmeas + rw [tsum_fintype] at h + rw [← h] + exact measure_mono (Set.iUnion_subset hTsub) + have hgoal : ENNReal.ofReal ((1 / 2 : ℝ) * ∑ i : Fin n, + planeCrossProduct (P i.castSucc - L) (P i.succ - L)) ≤ volume K := by + rw [Finset.mul_sum, ENNReal.ofReal_sum_of_nonneg (fun i _ ↦ by linarith [hcnn i])] + simpa only [hTvol] using hunion + exact (ENNReal.ofReal_le_iff_le_toReal hcK.measure_lt_top.ne).mp hgoal + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Convex / Exposed Faces +-/ + +@[expose] public section + +noncomputable section + +open scoped Pointwise unitInterval + +namespace MovingSofa + +private theorem support_bound (K : ConvexBody Point) (a : Real.Angle) + {x : Point} (hx : x ∈ K) : inner ℝ x (normalVector a) ≤ supportValue K a := by + apply le_csSup + · exact (K.isCompact.image (continuous_id.inner continuous_const)).bddAbove + · exact ⟨x, hx, rfl⟩ + +private theorem edge_nonempty (K : ConvexBody Point) (a : Real.Angle) : + (exposedEdge K a).Nonempty := by + obtain ⟨x, hx, he⟩ := (K.isCompact.image (continuous_id.inner continuous_const)).sSup_mem + (K.nonempty.image (fun x ↦ inner ℝ x (normalVector a))) + exact ⟨x, hx, he⟩ + +private theorem mem_edge_iff (K : ConvexBody Point) (a : Real.Angle) (x : Point) : + x ∈ exposedEdge K a ↔ x ∈ K ∧ ∀ y ∈ K, + inner ℝ y (normalVector a) ≤ inner ℝ x (normalVector a) := by + change (x ∈ K ∧ inner ℝ x (normalVector a) = supportValue K a) ↔ _ + constructor + · rintro ⟨hx, he⟩ + exact ⟨hx, fun y hy ↦ he ▸ support_bound K a hy⟩ + · rintro ⟨hx, hm⟩ + refine ⟨hx, le_antisymm (support_bound K a hx) ?_⟩ + exact csSup_le (K.nonempty.image _) (by rintro _ ⟨y, hy, rfl⟩; exact hm y hy) + +private theorem combination_zero (K L : ConvexBody Point) : + convexBodyCombination 0 K L = K := by + apply SetLike.coe_injective + simp [convexBodyCombination, Set.zero_smul_set L.nonempty] + +private theorem combination_one (K L : ConvexBody Point) : + convexBodyCombination 1 K L = L := by + apply SetLike.coe_injective + simp [convexBodyCombination, Set.zero_smul_set K.nonempty] + +/-- Exposed faces commute with convex interpolation, including zero and unit weights. -/ +theorem exposedEdge_convexBodyCombination (K L : ConvexBody Point) (a : Real.Angle) + (t : unitInterval) : + exposedEdge (convexBodyCombination t K L) a = + (1 - (t : ℝ)) • exposedEdge K a + (t : ℝ) • exposedEdge L a := by + by_cases h0 : t = 0 + · subst t + simp [combination_zero, Set.zero_smul_set (edge_nonempty L a)] + by_cases h1 : t = 1 + · subst t + simp [combination_one, Set.zero_smul_set (edge_nonempty K a)] + have ht : 0 < (t : ℝ) := lt_of_le_of_ne t.property.1 (by + intro h; exact h0 (Subtype.ext h.symm)) + have hu : 0 < 1 - (t : ℝ) := sub_pos.mpr (lt_of_le_of_ne t.property.2 (by + intro h; exact h1 (Subtype.ext h))) + have mem_combo (x y : Point) (hx : x ∈ K) (hy : y ∈ L) : + (1 - (t : ℝ)) • x + (t : ℝ) • y ∈ convexBodyCombination t K L := by + exact Set.add_mem_add (Set.smul_mem_smul_set hx) (Set.smul_mem_smul_set hy) + ext p + constructor + · intro hp + obtain ⟨hp, hm⟩ := (mem_edge_iff _ a p).mp hp + obtain ⟨u, huK, v, hvL, rfl⟩ := hp + obtain ⟨x, hx, rfl⟩ := huK + obtain ⟨y, hy, rfl⟩ := hvL + have hxedge : x ∈ exposedEdge K a := (mem_edge_iff K a x).mpr ⟨hx, by + intro z hz + have h := hm _ (mem_combo z y hz hy) + simp only [inner_add_left, inner_smul_left, RCLike.conj_to_real] at h + nlinarith⟩ + have hyedge : y ∈ exposedEdge L a := (mem_edge_iff L a y).mpr ⟨hy, by + intro z hz + have h := hm _ (mem_combo x z hx hz) + simp only [inner_add_left, inner_smul_left, RCLike.conj_to_real] at h + nlinarith⟩ + exact Set.add_mem_add (Set.smul_mem_smul_set hxedge) (Set.smul_mem_smul_set hyedge) + · rintro ⟨u, huK, v, hvL, rfl⟩ + obtain ⟨x, hx, rfl⟩ := huK + obtain ⟨y, hy, rfl⟩ := hvL + obtain ⟨hx, hmx⟩ := (mem_edge_iff K a x).mp hx + obtain ⟨hy, hmy⟩ := (mem_edge_iff L a y).mp hy + apply (mem_edge_iff _ a _).mpr + refine ⟨mem_combo x y hx hy, ?_⟩ + rintro p ⟨u, huK, v, hvL, rfl⟩ + obtain ⟨z, hz, rfl⟩ := huK + obtain ⟨w, hw, rfl⟩ := hvL + have hxz := hmx z hz + have hyw := hmy w hw + simp only [inner_add_left, inner_smul_left, RCLike.conj_to_real] + nlinarith + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Convex / Limits +-/ + +@[expose] public section + +noncomputable section + +open Filter +open scoped Topology + +namespace MovingSofa + +/-- The supremum of scalar products with a specified direction vector. -/ +def vectorSupport (S : Set Point) (u : Point) : ℝ := sSup ((fun x ↦ inner ℝ x u) '' S) + +/-- Support values in a unit direction vary by at most the Hausdorff distance. -/ +theorem abs_vectorSupport_sub_le_hausdorffDist {S T : Set Point} + (hS : S.Nonempty) (hcS : IsCompact S) (hT : T.Nonempty) (hcT : IsCompact T) + {u : Point} (hu : ‖u‖ = 1) : + |vectorSupport S u - vectorSupport T u| ≤ Metric.hausdorffDist S T := by + simpa only [vectorSupport, hu, mul_one] using + hcS.abs_csSup_inner_sub_le_hausdorffDist hS hcT hT u + +theorem convexBody_selection (A : Set Point) (hA : IsCompact A) + (K : ℕ → ConvexBody Point) (hK : ∀ n, (K n : Set Point) ⊆ A) : + ∃ (φ : ℕ → ℕ) (L : ConvexBody Point), StrictMono φ ∧ + Tendsto (fun n ↦ Metric.hausdorffDist (K (φ n) : Set Point) (L : Set Point)) + atTop (𝓝 0) := by + let C : ℕ → TopologicalSpace.NonemptyCompacts Point := fun n ↦ + ⟨⟨(K n : Set Point), (K n).isCompact⟩, (K n).nonempty⟩ + obtain ⟨L, hLA, φ, hφ, hlim⟩ := + (TopologicalSpace.NonemptyCompacts.isCompact_subsets_of_isCompact hA).tendsto_subseq + (show ∀ n, C n ∈ {L : TopologicalSpace.NonemptyCompacts Point | (L : Set Point) ⊆ A} + from hK) + have hconv : Convex ℝ (L : Set Point) := + TopologicalSpace.NonemptyCompacts.convex_of_tendsto (fun n ↦ (K (φ n)).convex) hlim + refine ⟨φ, ⟨(L : Set Point), hconv, L.isCompact, L.nonempty⟩, hφ, ?_⟩ + simpa only [C, Function.comp_apply, TopologicalSpace.NonemptyCompacts.dist_eq, + TopologicalSpace.NonemptyCompacts.coe_mk, TopologicalSpace.Compacts.coe_mk, ConvexBody.coe_mk] + using + (tendsto_iff_dist_tendsto_zero.mp hlim) + +theorem compactSet_support_continuity (S T : Set Point) + (hS : S.Nonempty) (hcS : IsCompact S) (hT : T.Nonempty) (hcT : IsCompact T) : + (∀ u v : Point, ‖u‖ = 1 → ‖v‖ = 1 → + |vectorSupport S u - vectorSupport S v| ≤ sSup (norm '' S) * ‖u - v‖) ∧ + (∀ u : Point, ‖u‖ = 1 → + |vectorSupport S u - vectorSupport T u| ≤ Metric.hausdorffDist S T) ∧ + Continuous (fun t : Real.Angle ↦ supportValue S t) ∧ + (∀ (K : ℕ → Set Point), (∀ n, (K n).Nonempty ∧ IsCompact (K n)) → + Tendsto (fun n ↦ Metric.hausdorffDist (K n) S) atTop (𝓝 0) → + TendstoUniformlyOn (fun n u ↦ vectorSupport (K n) u) (vectorSupport S) + atTop {u | ‖u‖ = 1}) := by + constructor + · intro u v _ _ + exact hcS.abs_csSup_inner_sub_le hS u v + constructor + · intro u hu + exact abs_vectorSupport_sub_le_hausdorffDist hS hcS hT hcT hu + constructor + · unfold supportValue + apply hcS.continuous_sSup + change Continuous (fun q : Real.Angle × Point ↦ inner ℝ q.2 (normalVector q.1)) + have hn : Continuous (fun q : Real.Angle × Point ↦ normalVector q.1) := by + let c : Real.Angle × Point → (i : Fin 2) → ℝ := + fun q i ↦ Fin.cases q.1.cos (fun _ ↦ q.1.sin) i + have hc : Continuous c := by + apply continuous_pi + intro i + fin_cases i + · exact Real.Angle.continuous_cos.comp continuous_fst + · exact Real.Angle.continuous_sin.comp continuous_fst + have heq : (fun q : Real.Angle × Point ↦ normalVector q.1) = + (fun q ↦ WithLp.toLp 2 (c q)) := by + funext q + ext i + fin_cases i <;> rfl + rw [heq] + exact (PiLp.continuous_toLp (2 : ENNReal) (fun _ : Fin 2 ↦ ℝ)).comp hc + simpa [Function.comp_def] using + (continuous_inner (𝕜 := ℝ) (E := Point)).comp (continuous_snd.prodMk hn) + · intro K hK hlim + apply Metric.tendstoUniformlyOn_iff.mpr + intro ε hε + filter_upwards [hlim.eventually (gt_mem_nhds hε)] with n hn + intro u hu + rw [Real.dist_eq] + exact (abs_vectorSupport_sub_le_hausdorffDist hS hcS + (hK n).1 (hK n).2 hu).trans_lt (by simpa [Metric.hausdorffDist_comm] using hn) + +private theorem exists_inner_pos_of_eq_iInter + (U : Set Point) (K : Set Point) (hne : K.Nonempty) (hbounded : Bornology.IsBounded K) + (hK : K = ⋂ u ∈ U, {x | inner ℝ x u ≤ vectorSupport K u}) : + ∀ d : Point, d ≠ 0 → ∃ u ∈ U, 0 < inner ℝ d u := by + intro d hd + by_contra hno + push Not at hno + obtain ⟨z, hz⟩ := hne + obtain ⟨R, hR⟩ := Metric.isBounded_iff_subset_closedBall (0 : Point) |>.1 hbounded + have hzI : z ∈ ⋂ u ∈ U, {x | inner ℝ x u ≤ vectorSupport K u} := by + rw [← hK] + exact hz + have hmem : ∀ t : ℝ, 0 ≤ t → z + t • d ∈ K := by + intro t ht + rw [hK] + simp only [Set.mem_iInter] + intro u hu + have hz' := (Set.mem_iInter.mp (Set.mem_iInter.mp hzI u) hu) + dsimp at hz' ⊢ + rw [inner_add_left, inner_smul_left] + change inner ℝ z u + t * inner ℝ d u ≤ vectorSupport K u + have hdu : inner ℝ d u ≤ 0 := hno u hu + have htd : t * inner ℝ d u ≤ 0 := mul_nonpos_of_nonneg_of_nonpos ht hdu + nlinarith [hz', htd] + have hnorm : ∀ t : ℝ, 0 ≤ t → ‖z + t • d‖ ≤ R := by + intro t ht + simpa [dist_eq_norm] using (Metric.mem_closedBall.mp (hR (hmem t ht))) + have hd' : 0 < ‖d‖ := norm_pos_iff.mpr hd + have hR0 : 0 ≤ R := dist_nonneg.trans (Metric.mem_closedBall.mp (hR hz)) + let t : ℝ := (R + ‖z‖ + 1) / ‖d‖ + have ht : 0 ≤ t := by dsimp [t]; exact div_nonneg (by positivity) (le_of_lt hd') + have hn := hnorm t ht + have hts : ‖t • d‖ = R + ‖z‖ + 1 := by + dsimp [t] + rw [norm_smul, Real.norm_eq_abs, abs_of_nonneg ht] + exact div_mul_cancel₀ _ (ne_of_gt hd') + have htriangle' : ‖t • d‖ ≤ ‖z + t • d‖ + ‖z‖ := by + have h := norm_sub_le (z + t • d) z + simpa [sub_eq_add_neg, add_assoc] using h + rw [hts] at htriangle' + nlinarith + +private theorem ball_support_margin + (U : Set Point) (L : Set Point) (q u : Point) (r : ℝ) (hr : 0 ≤ r) + (hu : u ∈ U) (hunit : ‖u‖ = 1) + (hball : Metric.closedBall q r ⊆ ⋂ u ∈ U, + {x | inner ℝ x u ≤ vectorSupport L u}) : + inner ℝ q u + r ≤ vectorSupport L u := by + have hp : q + r • u ∈ Metric.closedBall q r := by + rw [Metric.mem_closedBall, dist_eq_norm] + simp only [add_sub_cancel_left] + rw [norm_smul, Real.norm_eq_abs, abs_of_nonneg hr, hunit] + simp + have hp' := hball hp + have hpu := (Set.mem_iInter.mp (Set.mem_iInter.mp hp' u) hu) + dsimp at hpu + rw [inner_add_left, inner_smul_left] at hpu + have huu : inner ℝ u u = 1 := by + rw [real_inner_self_eq_norm_sq, hunit] + norm_num + simp only [huu] at hpu + simpa using hpu + +private theorem eventually_ball_center_mem + (U : Set Point) (q : Point) (r : ℝ) (hr : 0 < r) + (K : ℕ → ConvexBody Point) (L : ConvexBody Point) + (hK : ∀ n, (K n : Set Point) = ⋂ u ∈ U, + {x | inner ℝ x u ≤ vectorSupport (K n) u}) + (hlim : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) (L : Set Point)) + atTop (𝓝 0)) + (hq : ∀ u ∈ U, inner ℝ q u + r ≤ vectorSupport (L : Set Point) u) + (hU : ∀ u ∈ U, ‖u‖ = 1) : + ∀ᶠ n in atTop, q ∈ (K n : Set Point) := by + filter_upwards [hlim.eventually (gt_mem_nhds hr)] with n hn + rw [hK n] + simp only [Set.mem_iInter] + intro u hu + have habs := (compactSet_support_continuity (K n : Set Point) (L : Set Point) + (K n).nonempty (K n).isCompact L.nonempty L.isCompact).2.1 u (hU u hu) + have hlower : vectorSupport (L : Set Point) u - + Metric.hausdorffDist (K n : Set Point) (L : Set Point) ≤ + vectorSupport (K n : Set Point) u := by + linarith [neg_le_of_abs_le habs] + have hqr := hq u hu + change inner ℝ q u ≤ vectorSupport (K n : Set Point) u + calc + inner ℝ q u ≤ vectorSupport (L : Set Point) u - r := by linarith + _ ≤ vectorSupport (L : Set Point) u - Metric.hausdorffDist (K n : Set Point) L := by + exact le_of_lt (by linarith) + _ ≤ vectorSupport (K n : Set Point) u := hlower + +private theorem ball_center_mem_limit + (U : Set Point) (hU : ∀ u ∈ U, ‖u‖ = 1) (q : Point) (r : ℝ) (hr : 0 < r) + (K : ℕ → ConvexBody Point) (L : ConvexBody Point) + (hK : ∀ n, (K n : Set Point) = ⋂ u ∈ U, + {x | inner ℝ x u ≤ vectorSupport (K n) u}) + (hlim : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) (L : Set Point)) + atTop (𝓝 0)) + (hball : Metric.closedBall q r ⊆ ⋂ u ∈ U, + {x | inner ℝ x u ≤ vectorSupport L u}) : + q ∈ (L : Set Point) := by + exact ConvexBody.mem_of_tendsto_hausdorffDist q K L + (eventually_ball_center_mem U q r hr K L hK hlim + (fun u hu ↦ ball_support_margin U L q u r hr.le hu (hU u hu) hball) hU) hlim + +theorem fixedNormalBody_closed (U : Set Point) (hU : ∀ u ∈ U, ‖u‖ = 1) + (K : ℕ → ConvexBody Point) (L : ConvexBody Point) + (hK : ∀ n, (K n : Set Point) = ⋂ u ∈ U, {x | inner ℝ x u ≤ vectorSupport (K n) u}) + (hlim : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) (L : Set Point)) + atTop (𝓝 0)) : + (L : Set Point) = ⋂ u ∈ U, {x | inner ℝ x u ≤ vectorSupport L u} := by + let H : Set Point := ⋂ u ∈ U, {x | inner ℝ x u ≤ vectorSupport L u} + have hLH : (L : Set Point) ⊆ H := by + intro x hx + simp only [H, Set.mem_iInter, Set.mem_ofPred_eq] + intro u hu + exact le_csSup (L.isCompact.bddAbove_image + (continuous_inner.comp (continuous_id.prodMk continuous_const)).continuousOn) + ⟨x, hx, rfl⟩ + have hH : Convex ℝ H := by + intro x hx y hy a b ha hb hab + simp only [H, Set.mem_iInter, Set.mem_ofPred_eq] at hx hy ⊢ + intro u hu + rw [inner_add_left, real_inner_smul_left, real_inner_smul_left] + calc + a * inner ℝ x u + b * inner ℝ y u ≤ + a * vectorSupport L u + b * vectorSupport L u := + add_le_add (mul_le_mul_of_nonneg_left (hx u hu) ha) + (mul_le_mul_of_nonneg_left (hy u hu) hb) + _ = vectorSupport L u := by rw [← add_mul, hab, one_mul] + have hint : interior H ⊆ (L : Set Point) := by + intro x hx + obtain ⟨r, hr, hball⟩ := Metric.nhds_basis_closedBall.mem_iff.mp + (mem_interior_iff_mem_nhds.mp hx) + exact ball_center_mem_limit U hU x r hr K L hK hlim hball + apply Set.Subset.antisymm hLH + rcases (interior H).eq_empty_or_nonempty with hempty | hnonempty + · have hcol : Collinear ℝ H := hH.collinear_of_interior_eq_empty (by + simp [Point, finrank_euclideanSpace]) hempty + intro p hp + obtain ⟨a, ha⟩ := L.nonempty + by_cases hpa : p = a + · simpa only [hpa] using ha + obtain ⟨u, hu, hpos⟩ := exists_inner_pos_of_eq_iInter U (K 0) (K 0).nonempty + (K 0).isCompact.isBounded (hK 0) + (p - a) (sub_ne_zero.mpr hpa) + have hmax : ∃ x ∈ (L : Set Point), vectorSupport L u = inner ℝ x u ∧ + ∀ y ∈ (L : Set Point), inner ℝ y u ≤ inner ℝ x u := by + simpa only [vectorSupport, Function.comp_apply, id_eq] using + L.isCompact.exists_sSup_image_eq_and_ge (α := ℝ) (β := Point) + (f := fun x : Point ↦ inner ℝ x u) L.nonempty + (continuous_inner.comp (continuous_id.prodMk continuous_const)).continuousOn + obtain ⟨x, hx, hxu, _⟩ := hmax + have hle : inner ℝ p u ≤ inner ℝ x u := by + rw [← hxu] + exact Set.mem_iInter.mp (Set.mem_iInter.mp hp u) hu + have hsegment := hcol.mem_segment_of_apply_le (hLH ha) hp (hLH hx) + (innerSL ℝ u).toLinearMap (by change 0 < inner ℝ u (p - a); rwa [real_inner_comm]) + (by change inner ℝ u p ≤ inner ℝ u x; simpa only [real_inner_comm u] using hle) + exact L.convex.segment_subset ha hx hsegment + · have hclosure : closure (interior H) = closure H := + hH.closure_interior_eq_closure_of_nonempty_interior hnonempty + exact subset_closure.trans (hclosure ▸ L.isClosed.closure_subset_iff.mpr hint) + +theorem convexArea_hausdorff_continuity (K : ℕ → ConvexBody Point) (L : ConvexBody Point) + (hlim : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) (L : Set Point)) + atTop (𝓝 0)) : + Tendsto (fun n ↦ ClassicalResults.area (K n)) atTop (𝓝 (ClassicalResults.area L)) := by + let U : Set Point := {u | ‖u‖ = 1} + have hrepK : ∀ n, (K n : Set Point) = ⋂ u ∈ U, + {x | inner ℝ x u ≤ vectorSupport (K n) u} := by + intro n + simpa only [U, vectorSupport] using ConvexBody.eq_iInter_halfSpaces (K n) + have hrepL : (L : Set Point) = ⋂ u ∈ U, + {x | inner ℝ x u ≤ vectorSupport L u} := by + simpa only [U, vectorSupport] using ConvexBody.eq_iInter_halfSpaces L + obtain ⟨R, hR, hcompact⟩ := L.isCompact.exists_isCompact_cthickening + let C : Set Point := Metric.cthickening R (L : Set Point) + have hsubset : ∀ᶠ n in atTop, (K n : Set Point) ⊆ C := by + filter_upwards [hlim.eventually (gt_mem_nhds hR)] with n hn p hp + obtain ⟨q, hq, hpq⟩ := Metric.exists_dist_lt_of_hausdorffDist_lt hp hn + (Metric.hausdorffEDist_ne_top_of_nonempty_of_bounded + (K n).nonempty L.nonempty (K n).isCompact.isBounded L.isCompact.isBounded) + exact Metric.mem_cthickening_of_dist_le p q R L hq hpq.le + have hpointwise : ∀ p ∉ frontier (L : Set Point), + Tendsto (fun n ↦ (K n : Set Point).indicator (fun _ ↦ (1 : ℝ)) p) atTop + (𝓝 ((L : Set Point).indicator (fun _ ↦ (1 : ℝ)) p)) := by + intro p hpfrontier + by_cases hpL : p ∈ (L : Set Point) + · have hpint : p ∈ interior (L : Set Point) := by + by_contra hp + exact hpfrontier ((mem_frontier_iff_notMem_interior hpL).mpr hp) + obtain ⟨r, hr, hball⟩ := Metric.nhds_basis_closedBall.mem_iff.mp + (mem_interior_iff_mem_nhds.mp hpint) + have hmargin : ∀ u ∈ U, inner ℝ p u + r ≤ vectorSupport L u := by + intro u hu + rw [hrepL] at hball + exact ball_support_margin U L p u r hr.le hu hu hball + have hev := eventually_ball_center_mem U p r hr K L hrepK hlim hmargin + (fun _ hu ↦ hu) + apply tendsto_nhds_of_eventually_eq + filter_upwards [hev] with n hn + simp [hn, hpL] + · have hdist : 0 < Metric.infDist p (L : Set Point) := by + exact (Metric.infDist_pos_iff_notMem_closure L.nonempty).mp (by + rwa [L.isClosed.closure_eq]) + have hev : ∀ᶠ n in atTop, p ∉ (K n : Set Point) := by + filter_upwards [hlim.eventually (gt_mem_nhds hdist)] with n hn hpn + have hle := Metric.infDist_le_hausdorffDist_of_mem hpn + (Metric.hausdorffEDist_ne_top_of_nonempty_of_bounded + (K n).nonempty L.nonempty (K n).isCompact.isBounded L.isCompact.isBounded) + linarith + apply tendsto_nhds_of_eventually_eq + filter_upwards [hev] with n hn + simp [hn, hpL] + have hfrontier : MeasureTheory.volume (frontier (L : Set Point)) = 0 := + L.convex.addHaar_frontier MeasureTheory.volume + have hmeas : ∀ n, MeasurableSet (K n : Set Point) := fun n ↦ (K n).isCompact.measurableSet + have hCmeas : MeasurableSet C := hcompact.measurableSet + have hCint : MeasureTheory.Integrable (C.indicator fun _ ↦ (1 : ℝ)) := by + exact (MeasureTheory.integrableOn_const hcompact.measure_lt_top.ne).integrable_indicator hCmeas + have htendsto := MeasureTheory.tendsto_integral_filter_of_dominated_convergence + (μ := MeasureTheory.volume) + (F := fun n ↦ (K n : Set Point).indicator fun _ ↦ (1 : ℝ)) + (f := (L : Set Point).indicator fun _ ↦ (1 : ℝ)) + (C.indicator fun _ ↦ (1 : ℝ)) + (Filter.Eventually.of_forall fun n ↦ + (measurable_const.indicator (hmeas n)).aestronglyMeasurable) + (by + filter_upwards [hsubset] with n hn + filter_upwards [] with p + by_cases hp : p ∈ (K n : Set Point) + · have hpC := hn hp + simp [hp, hpC] + · by_cases hpC : p ∈ C <;> simp [hp, hpC]) + hCint + (by + filter_upwards [MeasureTheory.compl_mem_ae_iff.mpr hfrontier] with p hp + exact hpointwise p hp) + have heqK : ∀ n, (∫ p, (K n : Set Point).indicator (fun _ ↦ (1 : ℝ)) p) = + MeasureTheory.volume.real (K n : Set Point) := by + intro n + change (∫ p, (K n : Set Point).indicator 1 p) = _ + exact MeasureTheory.integral_indicator_one (μ := MeasureTheory.volume) (hmeas n) + have heqL : (∫ p, (L : Set Point).indicator (fun _ ↦ (1 : ℝ)) p) = + MeasureTheory.volume.real (L : Set Point) := by + change (∫ p, (L : Set Point).indicator 1 p) = _ + exact MeasureTheory.integral_indicator_one (μ := MeasureTheory.volume) + L.isCompact.measurableSet + simp_rw [heqK] at htendsto + rw [heqL] at htendsto + simpa [ClassicalResults.area, MeasureTheory.Measure.real] using htendsto + +/-- The support function of a convex body is continuous in the normal direction. -/ +theorem continuous_supportValue (K : ConvexBody Point) : + Continuous fun t : Real.Angle ↦ supportValue (K : Set Point) t := + (compactSet_support_continuity K K K.nonempty K.isCompact K.nonempty K.isCompact).2.2.1 + +theorem continuous_supportValue_real (K : ConvexBody Point) : + Continuous (fun t : ℝ ↦ supportValue K (t : Real.Angle)) := + (continuous_supportValue K).comp Real.Angle.continuous_coe + +/-- Support values of a nonempty compact set are Lipschitz in the real angle, with the largest +norm of a point of the set as Lipschitz constant. -/ +theorem abs_supportValue_sub_le_of_isCompact {s : Set Point} (hne : s.Nonempty) + (hc : IsCompact s) (x y : ℝ) : + |supportValue s (x : Real.Angle) - supportValue s (y : Real.Angle)| ≤ + sSup (norm '' s) * |x - y| := by + have hdir := (compactSet_support_continuity s s hne hc hne hc).1 + (normalVector (x : Real.Angle)) (normalVector (y : Real.Angle)) + (norm_normalVector_real x) (norm_normalVector_real y) + have hframe : ‖normalVector (x : Real.Angle) - normalVector (y : Real.Angle)‖ ≤ |x - y| := by + simpa [dist_eq_norm, Real.dist_eq] using lipschitzWith_normalVector_real.dist_le_mul x y + have h0 : 0 ≤ sSup (norm '' s) := + Real.sSup_nonneg (by rintro _ ⟨p, -, rfl⟩; exact norm_nonneg p) + exact hdir.trans (mul_le_mul_of_nonneg_left hframe h0) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Convex / Support Embedding +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem supportFunction_minkowski_embedding (K L : ConvexBody Point) : + (∀ (a b : ℝ), 0 ≤ a → 0 ≤ b → ∀ t : Real.Angle, + supportValue {z : Point | ∃ x ∈ (K : Set Point), ∃ y ∈ (L : Set Point), + z = a • x + b • y} t = + a * supportValue K t + b * supportValue L t) ∧ + ((∀ t : Real.Angle, supportValue K t = supportValue L t) → K = L) ∧ + Continuous (fun t : Real.Angle ↦ supportValue K t) ∧ + (K : Set Point) = ⋂ u ∈ {u : Point | ‖u‖ = 1}, + {p : Point | inner ℝ p u ≤ vectorSupport K u} := by + refine ⟨?_, ?_, (compactSet_support_continuity K K K.nonempty K.isCompact + K.nonempty K.isCompact).2.2.1, K.eq_iInter_halfSpaces⟩ + · intro a b ha hb t + obtain ⟨x, hx, hxmax, hxle⟩ := K.isCompact.exists_sSup_image_eq_and_ge + (f := fun x : Point ↦ inner ℝ x (normalVector t)) K.nonempty + (continuous_inner.comp (continuous_id.prodMk continuous_const)).continuousOn + obtain ⟨y, hy, hymax, hyle⟩ := L.isCompact.exists_sSup_image_eq_and_ge + (f := fun x : Point ↦ inner ℝ x (normalVector t)) L.nonempty + (continuous_inner.comp (continuous_id.prodMk continuous_const)).continuousOn + change sSup ((fun p ↦ inner ℝ p (normalVector t)) '' K) = _ at hxmax + change sSup ((fun p ↦ inner ℝ p (normalVector t)) '' L) = _ at hymax + unfold supportValue + apply IsGreatest.csSup_eq + constructor + · refine ⟨a • x + b • y, ?_, ?_⟩ + · exact ⟨x, hx, y, hy, rfl⟩ + · change inner ℝ (a • x + b • y) (normalVector t) = _ + rw [inner_add_left, inner_smul_left, inner_smul_left, ← hxmax, ← hymax] + simp + · intro r hr + obtain ⟨z, ⟨x', hx', y', hy', rfl⟩, rfl⟩ := hr + change inner ℝ (a • x' + b • y') (normalVector t) ≤ _ + rw [inner_add_left, inner_smul_left, inner_smul_left] + rw [hxmax, hymax] + exact add_le_add (mul_le_mul_of_nonneg_left (hxle x' hx') ha) + (mul_le_mul_of_nonneg_left (hyle y' hy') hb) + · intro hKL + have hvector (u : Point) (hu : ‖u‖ = 1) : vectorSupport K u = vectorSupport L u := by + obtain ⟨t, rfl⟩ := exists_angle_normalVector_eq hu + exact hKL t + simp only [vectorSupport] at hvector + apply ConvexBody.ext + rw [K.eq_iInter_halfSpaces, + L.eq_iInter_halfSpaces] + ext p + simp only [Set.mem_iInter, Set.mem_ofPred_eq] + constructor <;> intro hp u hu + · simpa [hvector u hu] using hp u hu + · simpa [hvector u hu] using hp u hu + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Convex / Combination Properties +-/ + +@[expose] public section + +noncomputable section + +open scoped Pointwise unitInterval + +namespace MovingSofa + +/-- Pointwise description of the Minkowski interpolation of two convex bodies. -/ +theorem mem_convexBodyCombination_iff (t : I) (K L : ConvexBody Point) (z : Point) : + z ∈ (convexBodyCombination t K L : Set Point) ↔ + ∃ x ∈ (K : Set Point), ∃ y ∈ (L : Set Point), + z = (1 - (t : ℝ)) • x + (t : ℝ) • y := by + change z ∈ (1 - (t : ℝ)) • (K : Set Point) + (t : ℝ) • (L : Set Point) ↔ _ + constructor + · rintro ⟨_, ⟨x, hx, rfl⟩, _, ⟨y, hy, rfl⟩, rfl⟩ + exact ⟨x, hx, y, hy, rfl⟩ + · rintro ⟨x, hx, y, hy, rfl⟩ + exact ⟨_, ⟨x, hx, rfl⟩, _, ⟨y, hy, rfl⟩, rfl⟩ + +/-- The first edge vertex maximizes tangent coordinate on its exposed edge. -/ +theorem inner_le_edgeVertices_fst_tangent (K : ConvexBody Point) + (a : Real.Angle) {p : Point} (hp : p ∈ exposedEdge K a) : + inner ℝ p (tangentVector a) ≤ inner ℝ (edgeVertices K a).1 (tangentVector a) := by + rw [inner_edgeVertices_fst_tangent] + exact le_csSup ((isCompact_exposedEdge K a).image + (continuous_id.inner continuous_const) |>.bddAbove) ⟨p, hp, rfl⟩ + +/-- A tangent-coordinate maximizer on an exposed edge is its first vertex. -/ +theorem edgeVertices_fst_eq_of_tangent_isGreatest (K : ConvexBody Point) + (a : Real.Angle) {p : Point} (hp : p ∈ exposedEdge K a) + (hmax : ∀ q ∈ exposedEdge K a, + inner ℝ q (tangentVector a) ≤ inner ℝ p (tangentVector a)) : + (edgeVertices K a).1 = p := by + have ht := le_antisymm (hmax _ (edgeVertices_fst_mem K a)) + (inner_le_edgeVertices_fst_tangent K a hp) + rw [← inner_normalVector_smul_add_inner_tangentVector_smul (edgeVertices K a).1 a, + ← inner_normalVector_smul_add_inner_tangentVector_smul p a, + (edgeVertices_fst_mem K a).2, hp.2, ht] + +/-- A tangent-coordinate minimizer on an exposed edge is its second vertex. -/ +theorem edgeVertices_snd_eq_of_tangent_isLeast (K : ConvexBody Point) + (a : Real.Angle) {p : Point} (hp : p ∈ exposedEdge K a) + (hmin : ∀ q ∈ exposedEdge K a, + inner ℝ p (tangentVector a) ≤ inner ℝ q (tangentVector a)) : + (edgeVertices K a).2 = p := by + have hbdd : BddBelow + ((fun q : Point ↦ inner ℝ q (tangentVector a)) '' exposedEdge K a) := + ((isCompact_exposedEdge K a).image + (continuous_id.inner continuous_const)).bddBelow + have ht : inner ℝ (edgeVertices K a).2 (tangentVector a) = + inner ℝ p (tangentVector a) := by + rw [inner_edgeVertices_snd_tangent] + apply le_antisymm (csInf_le hbdd ⟨p, hp, rfl⟩) + rw [← inner_edgeVertices_snd_tangent] + exact hmin _ (edgeVertices_snd_mem K a) + rw [← inner_normalVector_smul_add_inner_tangentVector_smul (edgeVertices K a).2 a, + ← inner_normalVector_smul_add_inner_tangentVector_smul p a, + (edgeVertices_snd_mem K a).2, hp.2, ht] + +private theorem inner_edgeVertices_snd_tangent_le_point (K : ConvexBody Point) + (a : Real.Angle) {p : Point} (hp : p ∈ exposedEdge K a) : + inner ℝ (edgeVertices K a).2 (tangentVector a) ≤ inner ℝ p (tangentVector a) := by + rw [inner_edgeVertices_snd_tangent] + exact csInf_le ((isCompact_exposedEdge K a).image + (continuous_id.inner continuous_const) |>.bddBelow) ⟨p, hp, rfl⟩ + +/-- The extreme points of exposed edges commute with convex combinations. -/ +theorem edgeVertices_convexBodyCombination (t : I) (K L : ConvexBody Point) + (a : Real.Angle) : + (edgeVertices (convexBodyCombination t K L) a).1 = + (1 - (t : ℝ)) • (edgeVertices K a).1 + (t : ℝ) • (edgeVertices L a).1 ∧ + (edgeVertices (convexBodyCombination t K L) a).2 = + (1 - (t : ℝ)) • (edgeVertices K a).2 + (t : ℝ) • (edgeVertices L a).2 := by + let M := convexBodyCombination t K L + have hedge := exposedEdge_convexBodyCombination K L a t + have hnonneg : 0 ≤ 1 - (t : ℝ) := sub_nonneg.mpr t.property.2 + have htnonneg : 0 ≤ (t : ℝ) := t.property.1 + constructor + · apply edgeVertices_fst_eq_of_tangent_isGreatest M a + · rw [hedge] + exact Set.add_mem_add (Set.smul_mem_smul_set (edgeVertices_fst_mem K a)) + (Set.smul_mem_smul_set (edgeVertices_fst_mem L a)) + · intro q hq + rw [hedge] at hq + obtain ⟨_, ⟨x, hx, rfl⟩, _, ⟨y, hy, rfl⟩, rfl⟩ := hq + simp only [inner_add_left, inner_smul_left, RCLike.conj_to_real] + exact add_le_add + (mul_le_mul_of_nonneg_left (inner_le_edgeVertices_fst_tangent K a hx) hnonneg) + (mul_le_mul_of_nonneg_left (inner_le_edgeVertices_fst_tangent L a hy) htnonneg) + · apply edgeVertices_snd_eq_of_tangent_isLeast M a + · rw [hedge] + exact Set.add_mem_add (Set.smul_mem_smul_set (edgeVertices_snd_mem K a)) + (Set.smul_mem_smul_set (edgeVertices_snd_mem L a)) + · intro q hq + rw [hedge] at hq + obtain ⟨_, ⟨x, hx, rfl⟩, _, ⟨y, hy, rfl⟩, rfl⟩ := hq + simp only [inner_add_left, inner_smul_left, RCLike.conj_to_real] + exact add_le_add + (mul_le_mul_of_nonneg_left (inner_edgeVertices_snd_tangent_le_point K a hx) hnonneg) + (mul_le_mul_of_nonneg_left (inner_edgeVertices_snd_tangent_le_point L a hy) htnonneg) + +/-- Support values commute with convex combinations. -/ +theorem supportValue_convexBodyCombination (t : I) (K L : ConvexBody Point) + (a : Real.Angle) : + supportValue (convexBodyCombination t K L) a = + (1 - (t : ℝ)) * supportValue K a + (t : ℝ) * supportValue L a := by + rw [show (convexBodyCombination t K L : Set Point) = + {z : Point | ∃ x ∈ (K : Set Point), ∃ y ∈ (L : Set Point), + z = (1 - (t : ℝ)) • x + (t : ℝ) • y} from + Set.ext (mem_convexBodyCombination_iff t K L)] + exact (supportFunction_minkowski_embedding K L).1 + (1 - (t : ℝ)) t (sub_nonneg.mpr t.property.2) t.property.1 a + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Faces of a body cut out by a differentiable family of half-planes + +Let `L` be a convex body lying in every half-plane `{q | m s ≤ ⟪q, u_s⟫}` of a family indexed +by a real angle parameter `s`, and let `p ∈ L` attain the bound at `s = t`. If `m` is +differentiable at `t` with `m' t = ⟪p, v_t⟫` — that is, if `p` is the first-order contact point +of the family — then the reversed face of `L` at `t + π` is pinned down by the sign of the +one-sided derivatives of `s ↦ ⟪z, u_s⟫ - m s` at `t`: +`exposedEdge_add_pi_eq_singleton_of_mem_Ioo` at an interior parameter gives the singleton +`{p}`, while `edgeVertices_add_pi_fst_eq_of_lt` and `edgeVertices_add_pi_snd_eq_of_lt` identify +`p` with one endpoint vertex of the face at the two boundary parameters. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The tangent coordinate of a point whose normal coordinate dominates a differentiable family +to the left of the touching parameter is at most that of the contact point. -/ +theorem inner_tangentVector_le_of_forall_le_Ioo {m : ℝ → ℝ} {p z : Point} {a t : ℝ} + (hat : a < t) (hle : ∀ s ∈ Set.Ioo a t, m s ≤ inner ℝ z (normalVector (s : Real.Angle))) + (hzm : inner ℝ z (normalVector (t : Real.Angle)) = m t) + (hd : HasDerivAt m (inner ℝ p (tangentVector (t : Real.Angle))) t) : + inner ℝ z (tangentVector (t : Real.Angle)) ≤ + inner ℝ p (tangentVector (t : Real.Angle)) := by + have hmin : IsLocalMinOn (fun s : ℝ ↦ inner ℝ z (normalVector (s : Real.Angle)) - m s) + (Set.Iic t) t := by + filter_upwards [nhdsWithin_le_nhds (Ioi_mem_nhds hat), self_mem_nhdsWithin] with s hs hst + rcases (Set.mem_Iic.1 hst).lt_or_eq with h | rfl + · simpa only [hzm, sub_self] using sub_nonneg.2 (hle s ⟨hs, h⟩) + · exact le_rfl + have hF := (hasDerivAt_inner_normalVector z t).sub hd + linarith only [hmin.hasDerivWithinAt_Iic_nonpos hF.hasDerivWithinAt] + +/-- The tangent coordinate of a point whose normal coordinate dominates a differentiable family +to the right of the touching parameter is at least that of the contact point. -/ +theorem le_inner_tangentVector_of_forall_le_Ioo {m : ℝ → ℝ} {p z : Point} {t b : ℝ} + (htb : t < b) (hle : ∀ s ∈ Set.Ioo t b, m s ≤ inner ℝ z (normalVector (s : Real.Angle))) + (hzm : inner ℝ z (normalVector (t : Real.Angle)) = m t) + (hd : HasDerivAt m (inner ℝ p (tangentVector (t : Real.Angle))) t) : + inner ℝ p (tangentVector (t : Real.Angle)) ≤ + inner ℝ z (tangentVector (t : Real.Angle)) := by + have hmin : IsLocalMinOn (fun s : ℝ ↦ inner ℝ z (normalVector (s : Real.Angle)) - m s) + (Set.Ici t) t := by + filter_upwards [nhdsWithin_le_nhds (Iio_mem_nhds htb), self_mem_nhdsWithin] with s hs hst + rcases (Set.mem_Ici.1 hst).lt_or_eq with h | rfl + · simpa only [hzm, sub_self] using sub_nonneg.2 (hle s ⟨h, hs⟩) + · exact le_rfl + have hF := (hasDerivAt_inner_normalVector z t).sub hd + linarith only [hmin.hasDerivWithinAt_Ici_nonneg hF.hasDerivWithinAt] + +/-- At an interior touching parameter of a differentiable family of supporting half-planes the +reversed face is the singleton contact point. -/ +theorem exposedEdge_add_pi_eq_singleton_of_mem_Ioo {L : ConvexBody Point} {m : ℝ → ℝ} + {p : Point} {a b t : ℝ} (ht : t ∈ Set.Ioo a b) + (hle : ∀ q ∈ (L : Set Point), ∀ s ∈ Set.Ioo a b, + m s ≤ inner ℝ q (normalVector (s : Real.Angle))) + (hp : p ∈ (L : Set Point)) + (hpm : inner ℝ p (normalVector (t : Real.Angle)) = m t) + (hd : HasDerivAt m (inner ℝ p (tangentVector (t : Real.Angle))) t) : + exposedEdge L ((t + Real.pi : ℝ) : Real.Angle) = {p} := by + have hlet : ∀ q ∈ (L : Set Point), m t ≤ inner ℝ q (normalVector (t : Real.Angle)) := + fun q hq ↦ hle q hq t ht + rw [exposedEdge_add_pi_eq_of_forall_le hlet hp hpm] + ext q + simp only [Set.mem_ofPred_eq, Set.mem_singleton_iff] + refine ⟨fun hq ↦ ?_, fun hq ↦ ⟨hq ▸ hp, hq ▸ hpm⟩⟩ + have h1 : inner ℝ q (tangentVector (t : Real.Angle)) ≤ + inner ℝ p (tangentVector (t : Real.Angle)) := + inner_tangentVector_le_of_forall_le_Ioo ht.1 + (fun s hs ↦ hle q hq.1 s ⟨hs.1, hs.2.trans ht.2⟩) hq.2 hd + have h2 : inner ℝ p (tangentVector (t : Real.Angle)) ≤ + inner ℝ q (tangentVector (t : Real.Angle)) := + le_inner_tangentVector_of_forall_le_Ioo ht.2 + (fun s hs ↦ hle q hq.1 s ⟨ht.1.trans hs.1, hs.2⟩) hq.2 hd + rw [← inner_normalVector_smul_add_inner_tangentVector_smul q (t : Real.Angle), + ← inner_normalVector_smul_add_inner_tangentVector_smul p (t : Real.Angle), + hq.2, hpm, le_antisymm h1 h2] + +/-- At the left endpoint parameter of a differentiable family of supporting half-planes the +contact point is the positive vertex of the reversed face. -/ +theorem edgeVertices_add_pi_fst_eq_of_lt {L : ConvexBody Point} {m : ℝ → ℝ} {p : Point} + {a b : ℝ} (hab : a < b) + (hle : ∀ q ∈ (L : Set Point), ∀ s ∈ Set.Ioo a b, + m s ≤ inner ℝ q (normalVector (s : Real.Angle))) + (hlea : ∀ q ∈ (L : Set Point), m a ≤ inner ℝ q (normalVector (a : Real.Angle))) + (hp : p ∈ (L : Set Point)) + (hpm : inner ℝ p (normalVector (a : Real.Angle)) = m a) + (hd : HasDerivAt m (inner ℝ p (tangentVector (a : Real.Angle))) a) : + (edgeVertices L ((a + Real.pi : ℝ) : Real.Angle)).1 = p := by + have hface := exposedEdge_add_pi_eq_of_forall_le hlea hp hpm + refine edgeVertices_fst_eq_of_tangent_isGreatest L _ (hface ▸ ⟨hp, hpm⟩) ?_ + intro q hq + rw [hface] at hq + have h1 : inner ℝ p (tangentVector (a : Real.Angle)) ≤ + inner ℝ q (tangentVector (a : Real.Angle)) := + le_inner_tangentVector_of_forall_le_Ioo hab (fun s hs ↦ hle q hq.1 s hs) hq.2 hd + rw [tangentVector_add_pi, inner_neg_right, inner_neg_right] + linarith only [h1] + +/-- At the right endpoint parameter of a differentiable family of supporting half-planes the +contact point is the negative vertex of the reversed face. -/ +theorem edgeVertices_add_pi_snd_eq_of_lt {L : ConvexBody Point} {m : ℝ → ℝ} {p : Point} + {a b : ℝ} (hab : a < b) + (hle : ∀ q ∈ (L : Set Point), ∀ s ∈ Set.Ioo a b, + m s ≤ inner ℝ q (normalVector (s : Real.Angle))) + (hleb : ∀ q ∈ (L : Set Point), m b ≤ inner ℝ q (normalVector (b : Real.Angle))) + (hp : p ∈ (L : Set Point)) + (hpm : inner ℝ p (normalVector (b : Real.Angle)) = m b) + (hd : HasDerivAt m (inner ℝ p (tangentVector (b : Real.Angle))) b) : + (edgeVertices L ((b + Real.pi : ℝ) : Real.Angle)).2 = p := by + have hface := exposedEdge_add_pi_eq_of_forall_le hleb hp hpm + refine edgeVertices_snd_eq_of_tangent_isLeast L _ (hface ▸ ⟨hp, hpm⟩) ?_ + intro q hq + rw [hface] at hq + have h1 : inner ℝ q (tangentVector (b : Real.Angle)) ≤ + inner ℝ p (tangentVector (b : Real.Angle)) := + inner_tangentVector_le_of_forall_le_Ioo hab (fun s hs ↦ hle q hq.1 s hs) hq.2 hd + rw [tangentVector_add_pi, inner_neg_right, inner_neg_right] + linarith only [h1] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Convex / Space +-/ + +@[expose] public section + +open scoped unitInterval Pointwise + +namespace MovingSofa + +/-- Convex bodies form a convex domain under Minkowski interpolation. -/ +theorem convexBody_isConvexDomain : IsConvexDomain.{0, 0} convexBodyCombination := by + let e : ConvexBody Point → C(Real.Angle, ℝ) := fun K ↦ + ⟨fun t ↦ supportValue K t, (supportFunction_minkowski_embedding K K).2.2.1⟩ + have he (t : I) (K L : ConvexBody Point) : + e (convexBodyCombination t K L) = (1 - (t : ℝ)) • e K + (t : ℝ) • e L := by + ext u + change supportValue (convexBodyCombination t K L) u = _ + exact supportValue_convexBodyCombination t K L u + refine ⟨ModuleCat.of ℝ C(Real.Angle, ℝ), e, ?_, ?_, he⟩ + · intro K L h + apply (supportFunction_minkowski_embedding K L).2.1 + intro t + exact congrArg (fun f : C(Real.Angle, ℝ) ↦ f t) h + · rintro _ ⟨K, rfl⟩ _ ⟨L, rfl⟩ a b ha hb hab + refine ⟨convexBodyCombination ⟨b, hb, by linarith⟩ K L, ?_⟩ + have h : 1 - b = a := by linarith + simpa only [h] using he ⟨b, hb, by linarith⟩ K L + +end MovingSofa + +end + +end + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Area.Foundations.Development001`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Area.ModuloLinear`. +* `Area.Quadratic`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Area / Modulo Linear +-/ + +@[expose] public section + +noncomputable section + +open scoped unitInterval + +universe u + +namespace MovingSofa + +/-- The difference of two functionals preserves the specified convex combinations. -/ +def EquivalentModuloConvexLinear {α : Type u} (c : I → α → α → α) + (f g : α → ℝ) : Prop := + IsConvexLinear c realCombination (fun x ↦ f x - g x) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Area / Quadratic +-/ + +@[expose] public section + +noncomputable section + +open scoped unitInterval + +universe u v + +namespace MovingSofa + +/-- The directional derivative along a barycentric segment is computed by any derivative of the +segment function at the base point. -/ +theorem convexDirectionalDerivative_eq_of_hasDerivWithinAt {α : Type u} (c : I → α → α → α) + (f : α → ℝ) (x y : α) {d : ℝ} + (h : HasDerivWithinAt (segmentFunctional c f x y) d (Set.Icc 0 1) 0) : + convexDirectionalDerivative c f x y = d := + h.derivWithin (uniqueDiffOn_Icc_zero_one.uniqueDiffWithinAt (by norm_num)) + +/-- A quadratic diagonal has the stated segment derivative, affine in its destination. -/ +theorem quadratic_directional_derivative {α : Type u} (c : I → α → α → α) (f : α → ℝ) (h : α → α → + ℝ) + (hh : IsConvexBilinear c c realCombination h) (hf : ∀ x, f x = h x x) : + (∀ x y, HasDerivWithinAt (segmentFunctional c f x y) + (h x y + h y x - 2 * h x x) (Set.Icc 0 1) 0) ∧ + (∀ x y, convexDirectionalDerivative c f x y = h x y + h y x - 2 * h x x) ∧ + ∀ x, IsConvexLinear c realCombination (fun y ↦ convexDirectionalDerivative c f x y) := by + have hquad (t : I) (x y : α) : + f (c t x y) = + (1 - (t : ℝ)) ^ 2 * h x x + + (t : ℝ) * (1 - (t : ℝ)) * (h x y + h y x) + (t : ℝ) ^ 2 * h y y := by + rw [hf] + have hleft := hh.2 (c t x y) t x y + change h (c t x y) (c t x y) = + realCombination t (h x (c t x y)) (h y (c t x y)) at hleft + rw [hleft, hh.1 x t x y, hh.1 y t x y] + simp only [realCombination] + ring + have hderiv (x y : α) : HasDerivAt + (fun t : ℝ ↦ (1 - t) ^ 2 * h x x + + t * (1 - t) * (h x y + h y x) + t ^ 2 * h y y) + (h x y + h y x - 2 * h x x) 0 := by + have hid : HasDerivAt (fun t : ℝ ↦ t) 1 0 := hasDerivAt_id 0 + have hsub : HasDerivAt (fun t : ℝ ↦ 1 - t) (-1) 0 := hid.const_sub 1 + convert (((hsub.pow 2).mul_const (h x x)).add + ((hid.mul hsub).mul_const (h x y + h y x))).add + ((hid.pow 2).mul_const (h y y)) using 1 + all_goals ring + have hfirst : ∀ x y, HasDerivWithinAt (segmentFunctional c f x y) + (h x y + h y x - 2 * h x x) (Set.Icc 0 1) 0 := by + intro x y + apply (hderiv x y).hasDerivWithinAt.congr + · intro t ht + simp only [segmentFunctional, ht, ↓reduceDIte] + exact hquad ⟨t, ht⟩ x y + · simp [segmentFunctional, hquad] + refine ⟨hfirst, ?_, ?_⟩ + · exact fun x y ↦ convexDirectionalDerivative_eq_of_hasDerivWithinAt c f x y (hfirst x y) + · intro x t y z + unfold convexDirectionalDerivative + have huniq : UniqueDiffWithinAt ℝ (Set.Icc (0 : ℝ) 1) 0 := + uniqueDiffOn_Icc_zero_one.uniqueDiffWithinAt (by norm_num) + change derivWithin (segmentFunctional c f x (c t y z)) (Set.Icc 0 1) 0 = + realCombination t + (derivWithin (segmentFunctional c f x y) (Set.Icc 0 1) 0) + (derivWithin (segmentFunctional c f x z) (Set.Icc 0 1) 0) + rw [(hfirst x (c t y z)).derivWithin huniq, + (hfirst x y).derivWithin huniq, (hfirst x z).derivWithin huniq] + simp only [realCombination] + have hright := hh.2 x t y z + change h (c t y z) x = realCombination t (h y x) (h z x) at hright + rw [hh.1 x t y z, hright] + simp only [realCombination] + ring + +/-- The segment function of a quadratic functional is differentiable at the base point, with the +directional derivative as its derivative. -/ +theorem IsQuadraticFunctional.hasDerivWithinAt_segmentFunctional {α : Type u} + {c : I → α → α → α} {f : α → ℝ} (hf : IsQuadraticFunctional c f) + (x y : α) : + HasDerivWithinAt (segmentFunctional c f x y) + (convexDirectionalDerivative c f x y) (Set.Icc 0 1) 0 := by + obtain ⟨g, hg, hfg⟩ := hf + obtain ⟨hderiv, hderiv_eq, -⟩ := quadratic_directional_derivative c f g hg hfg + rw [hderiv_eq x y] + exact hderiv x y + +/-- A concave quadratic functional is maximized exactly where all directional derivatives are +nonpositive. -/ +theorem quadratic_maximum_iff {α : Type u} (c : I → α → α → α) + (hc : IsConvexDomain.{u, v} c) (f : α → ℝ) + (hq : IsQuadraticFunctional c f) (hconcave : IsConvexFunctional c f true) (x : α) : + (∀ y, f y ≤ f x) ↔ ∀ y, convexDirectionalDerivative c f x y ≤ 0 := by + obtain ⟨g, hg, hfg⟩ := hq + obtain ⟨hderiv, hderiv_eq, -⟩ := + quadratic_directional_derivative c f g hg hfg + obtain ⟨V, e, he, -, hcmap⟩ := hc + have hc0 (z : α) : c 0 x z = x := by + apply he + rw [hcmap] + simp + have hquad (t : I) (y : α) : + f (c t x y) = + (1 - (t : ℝ)) ^ 2 * g x x + + (t : ℝ) * (1 - (t : ℝ)) * (g x y + g y x) + + (t : ℝ) ^ 2 * g y y := by + rw [hfg] + have hleft := hg.2 (c t x y) t x y + change g (c t x y) (c t x y) = + realCombination t (g x (c t x y)) (g y (c t x y)) at hleft + rw [hleft, hg.1 x t x y, hg.1 y t x y] + simp only [realCombination] + ring + constructor + · intro hmax y + have hlocal : IsLocalMaxOn (segmentFunctional c f x y) (Set.Icc 0 1) 0 := + by + filter_upwards [self_mem_nhdsWithin] with t ht + simp only [segmentFunctional, ht, ↓reduceDIte, Set.mem_Icc, Std.le_refl, zero_le_one, + and_self, + Set.Icc.mk_zero, hc0] + exact hmax _ + have htangent : (1 : ℝ) ∈ posTangentConeAt (Set.Icc 0 1) 0 := by + simpa using sub_mem_posTangentConeAt_of_segment_subset + (show segment ℝ (0 : ℝ) 1 ⊆ Set.Icc 0 1 by rw [segment_eq_Icc (by norm_num)]) + have := hlocal.hasFDerivWithinAt_nonpos (hderiv x y).hasFDerivWithinAt htangent + simpa [hderiv_eq] using this + · intro hd y + have hmid := hconcave (⟨1 / 2, by constructor <;> norm_num⟩ : I) x y + simp only [↓reduceIte, realCombination] at hmid + rw [hquad, hfg x, hfg y] at hmid + have hcoef : g x x - g x y - g y x + g y y ≤ 0 := by + norm_num at hmid ⊢ + linarith + have := hd y + rw [hderiv_eq x y] at this + rw [hfg y, hfg x] + linarith + +/-- A sum of quadratic functionals is quadratic. -/ +theorem IsQuadraticFunctional.add {α : Type u} {c : I → α → α → α} {f g : α → ℝ} + (hf : IsQuadraticFunctional c f) (hg : IsQuadraticFunctional c g) : + IsQuadraticFunctional c (fun x ↦ f x + g x) := by + obtain ⟨F, ⟨hFright, hFleft⟩, hFf⟩ := hf + obtain ⟨G, ⟨hGright, hGleft⟩, hGg⟩ := hg + refine ⟨fun x y ↦ F x y + G x y, ⟨fun x t y z ↦ ?_, fun z t x y ↦ ?_⟩, fun x ↦ ?_⟩ + · change F x (c t y z) + G x (c t y z) = realCombination t (F x y + G x y) (F x z + G x z) + rw [hFright x t y z, hGright x t y z] + simp only [realCombination] + ring + · have hF : F (c t x y) z = realCombination t (F x z) (F y z) := hFleft z t x y + have hG : G (c t x y) z = realCombination t (G x z) (G y z) := hGleft z t x y + change F (c t x y) z + G (c t x y) z = realCombination t (F x z + G x z) (F y z + G y z) + rw [hF, hG] + simp only [realCombination] + ring + · change f x + g x = F x x + G x x + rw [hFf x, hGg x] + +/-- A sum of convex functionals is convex, and a sum of concave functionals is concave. -/ +theorem IsConvexFunctional.add {α : Type u} {c : I → α → α → α} {f g : α → ℝ} {concave : Bool} + (hf : IsConvexFunctional c f concave) (hg : IsConvexFunctional c g concave) : + IsConvexFunctional c (fun x ↦ f x + g x) concave := by + intro t x y + have hsum : ∀ u v w z : ℝ, realCombination t u v + realCombination t w z = + realCombination t (u + w) (v + z) := by + intro u v w z + simp only [realCombination] + ring + cases concave + · have hfxy : f (c t x y) ≤ realCombination t (f x) (f y) := hf t x y + have hgxy : g (c t x y) ≤ realCombination t (g x) (g y) := hg t x y + change f (c t x y) + g (c t x y) ≤ realCombination t (f x + g x) (f y + g y) + rw [← hsum] + exact add_le_add hfxy hgxy + · have hfxy : realCombination t (f x) (f y) ≤ f (c t x y) := hf t x y + have hgxy : realCombination t (g x) (g y) ≤ g (c t x y) := hg t x y + change realCombination t (f x + g x) (f y + g y) ≤ f (c t x y) + g (c t x y) + rw [← hsum] + exact add_le_add hfxy hgxy + +/-- A convex-linear real functional satisfies both barycentric inequalities, with equality. -/ +theorem IsConvexLinear.isConvexFunctional {α : Type u} {c : I → α → α → α} {f : α → ℝ} + (hf : IsConvexLinear c realCombination f) (concave : Bool) : + IsConvexFunctional c f concave := by + intro t x y + cases concave + · change f (c t x y) ≤ realCombination t (f x) (f y) + exact (hf t x y).le + · change realCombination t (f x) (f y) ≤ f (c t x y) + exact (hf t x y).ge + +/-- A convex-linear real functional is quadratic: it is the diagonal of the mean of its values. -/ +theorem IsConvexLinear.isQuadraticFunctional {α : Type u} {c : I → α → α → α} {f : α → ℝ} + (hf : IsConvexLinear c realCombination f) : IsQuadraticFunctional c f := by + refine ⟨fun x y ↦ (f x + f y) / 2, ⟨fun x t y z ↦ ?_, fun z t x y ↦ ?_⟩, fun x ↦ ?_⟩ + · change (f x + f (c t y z)) / 2 = realCombination t ((f x + f y) / 2) ((f x + f z) / 2) + rw [hf t y z] + simp only [realCombination] + ring + · change (f (c t x y) + f z) / 2 = realCombination t ((f x + f z) / 2) ((f y + f z) / 2) + rw [hf t x y] + simp only [realCombination] + ring + · change f x = (f x + f x) / 2 + ring + +/-- Negation exchanges convexity and concavity. -/ +theorem IsConvexFunctional.neg {α : Type u} {c : I → α → α → α} {f : α → ℝ} {concave : Bool} + (hf : IsConvexFunctional c f concave) : IsConvexFunctional c (fun x ↦ -f x) (!concave) := by + intro t x y + have hneg : realCombination t (-f x) (-f y) = -realCombination t (f x) (f y) := by + simp only [realCombination] + ring + cases concave + · have h : f (c t x y) ≤ realCombination t (f x) (f y) := hf t x y + change realCombination t (-f x) (-f y) ≤ -f (c t x y) + rw [hneg] + exact neg_le_neg h + · have h : realCombination t (f x) (f y) ≤ f (c t x y) := hf t x y + change -f (c t x y) ≤ realCombination t (-f x) (-f y) + rw [hneg] + exact neg_le_neg h + +/-- The negative of a quadratic functional is quadratic. -/ +theorem IsQuadraticFunctional.neg {α : Type u} {c : I → α → α → α} {f : α → ℝ} + (hf : IsQuadraticFunctional c f) : IsQuadraticFunctional c (fun x ↦ -f x) := by + obtain ⟨F, ⟨hFright, hFleft⟩, hFf⟩ := hf + have hneg : ∀ (t : I) (u v : ℝ), -realCombination t u v = realCombination t (-u) (-v) := by + intro t u v + simp only [realCombination] + ring + refine ⟨fun x y ↦ -F x y, ⟨fun x t y z ↦ ?_, fun z t x y ↦ ?_⟩, fun x ↦ ?_⟩ + · change -F x (c t y z) = realCombination t (-F x y) (-F x z) + rw [hFright x t y z, hneg] + · have hF : F (c t x y) z = realCombination t (F x z) (F y z) := hFleft z t x y + change -F (c t x y) z = realCombination t (-F x z) (-F y z) + rw [hF, hneg] + · change -f x = -F x x + rw [hFf x] + +end MovingSofa + +end + +end + +end + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Geometry.Foundations.Development002`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Geometry.Convex.FrontierInterior`. +* `Geometry.RadialBoundary`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Convex / Frontier Interior +-/ + +@[expose] public section + +open Set +open scoped Topology + +namespace MovingSofa + +/-- A bounded component of the frontier complement that meets the set lies in its interior. -/ +lemma connectedComponentIn_compl_frontier_subset_interior {s : Set Point} + (hs : IsClosed s) {p : Point} (hp : p ∈ interior s) : + connectedComponentIn (frontier s)ᶜ p ⊆ interior s := by + have hsub : connectedComponentIn (frontier s)ᶜ p ⊆ interior s ∪ sᶜ := by + intro q hq + have hq' := connectedComponentIn_subset (frontier s)ᶜ p hq + simp only [frontier, hs.closure_eq, mem_compl_iff, mem_sdiff, not_and_or, + not_not] at hq' + exact hq'.symm + rcases isPreconnected_connectedComponentIn.subset_or_subset isOpen_interior + hs.isOpen_compl (disjoint_left.mpr (fun _ hx hy ↦ hy (interior_subset hx))) hsub with h | h + · exact h + · have hp' : p ∈ (frontier s)ᶜ := by + simp only [frontier, hs.closure_eq, mem_compl_iff, mem_sdiff, not_and_or, + not_not] + exact Or.inr hp + exact False.elim ((h (mem_connectedComponentIn hp')) (interior_subset hp)) + +/-- The interior of a bounded closed set lies in the bounded component of its frontier complement. +-/ +lemma interior_subset_jordanInterior_frontier {s : Set Point} + (hs : IsClosed s) (hb : Bornology.IsBounded s) : + interior s ⊆ jordanInterior (frontier s) := by + intro p hp + refine ⟨?_, hb.subset ((connectedComponentIn_compl_frontier_subset_interior hs hp).trans + interior_subset)⟩ + intro hfront + exact hfront.2 hp + +/-- The outward ray from a point outside a convex set remains outside the set. -/ +lemma ray_smul_sub_notMem {s : Set Point} (hs : Convex ℝ s) + {o p : Point} (ho : o ∈ s) (hp : p ∉ s) {r : ℝ} (hr : 1 ≤ r) : + o + r • (p - o) ∉ s := by + intro hq + have hrpos : 0 < r := lt_of_lt_of_le zero_lt_one hr + have h := (hs.starConvex ho).add_smul_sub_mem hq + (inv_nonneg.mpr hrpos.le) (inv_le_one_of_one_le₀ hr) + have heq : o + r⁻¹ • (o + r • (p - o) - o) = p := by + rw [add_sub_cancel_left, smul_smul, inv_mul_cancel₀ hrpos.ne', one_smul] + abel + exact hp (heq ▸ h) + +/-- Every exterior point of a nonempty bounded closed convex set has an unbounded component outside +its frontier. -/ +lemma exterior_component_unbounded {s : Set Point} (hs : Convex ℝ s) + (hclosed : IsClosed s) {o p : Point} (ho : o ∈ s) (hp : p ∉ s) : + ¬ Bornology.IsBounded (connectedComponentIn (frontier s)ᶜ p) := by + let f : ℝ → Point := fun r ↦ o + r • (p - o) + have hf : Continuous f := continuous_const.add (continuous_id.smul continuous_const) + have hpre : IsPreconnected (f '' Set.Ici 1) := + isPreconnected_Ici.image f hf.continuousOn + have hsub : f '' Set.Ici 1 ⊆ (frontier s)ᶜ := by + rintro q ⟨r, hr, rfl⟩ hq + exact ray_smul_sub_notMem hs ho hp hr (hclosed.closure_eq ▸ hq.1) + have hpmem : p ∈ f '' Set.Ici 1 := ⟨1, by simp, by simp [f]⟩ + have hcomp := hpre.subset_connectedComponentIn hpmem hsub + intro hb + obtain ⟨C, hC⟩ := hb.exists_norm_le + have hnorm : 0 < ‖p - o‖ := norm_pos_iff.mpr (sub_ne_zero.mpr (by + intro h; exact hp (h ▸ ho))) + let r := max 1 ((C + ‖o‖ + 1) / ‖p - o‖) + have hr : 1 ≤ r := le_max_left _ _ + have hq := hC (f r) (hcomp ⟨r, hr, rfl⟩) + have hdiff : ‖r • (p - o)‖ ≤ C + ‖o‖ := by + calc + ‖r • (p - o)‖ = ‖f r - o‖ := by simp [f] + _ ≤ ‖f r‖ + ‖o‖ := norm_sub_le _ _ + _ ≤ C + ‖o‖ := by linarith + rw [norm_smul, Real.norm_eq_abs, abs_of_nonneg (by linarith : 0 ≤ r)] at hdiff + have hlower := (div_le_iff₀ hnorm).mp (le_max_right 1 ((C + ‖o‖ + 1) / ‖p - o‖)) + change C + ‖o‖ + 1 ≤ r * ‖p - o‖ at hlower + linarith + +/-- The bounded complementary region of a nonempty compact convex set frontier is its interior. -/ +lemma jordanInterior_frontier_eq_interior {s : Set Point} (hs : Convex ℝ s) + (hclosed : IsClosed s) (hb : Bornology.IsBounded s) (hne : s.Nonempty) : + jordanInterior (frontier s) = interior s := by + apply Set.Subset.antisymm + · intro p hp + have hps : p ∈ s := by + by_contra hnot + obtain ⟨o, ho⟩ := hne + exact exterior_component_unbounded hs hclosed ho hnot hp.2 + by_contra hnot + exact hp.1 ⟨subset_closure hps, hnot⟩ + · exact interior_subset_jordanInterior_frontier hclosed hb + +end MovingSofa + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Radial Boundary +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem convexBody_radial_boundary (K : ConvexBody Point) (o : Point) + (ho : o ∈ interior (K : Set Point)) : + ∃ (ρ : Point → ℝ) + (e : {u : Point | ‖u‖ = 1} ≃ₜ ↥(frontier (K : Set Point))) + (C : NNReal) (γ : ContinuousBVPaths 0 (2 * Real.pi)), + (∀ u : Point, ‖u‖ = 1 → + 0 < ρ u ∧ o + ρ u • u ∈ frontier (K : Set Point) ∧ + ∀ r : ℝ, 0 < r → o + r • u ∈ frontier (K : Set Point) → r = ρ u) ∧ + (∀ u : {u : Point | ‖u‖ = 1}, (e u : Point) = o + ρ u • (u : Point)) ∧ + LipschitzWith C (fun u ↦ (e u : Point)) ∧ + (∀ t : Set.Icc (0 : ℝ) (2 * Real.pi), + γ.val t = o + ρ (normalVector ((t : ℝ) : Real.Angle)) • + normalVector ((t : ℝ) : Real.Angle)) ∧ + IsOrientedJordanParametrization (by positivity) + (frontier (K : Set Point)) true γ.val ∧ + jordanInterior (frontier (K : Set Point)) = interior (K : Set Point) := by + obtain ⟨ρ, e, C, hρ, he, hC⟩ := exists_radial_homeomorph K.convex K.isCompact.isBounded o ho + let f := fun u ↦ (e u : Point) + let γ := radialBVLoop f hC + have hrange : Set.range γ.val = frontier (K : Set Point) := by + rw [range_radialBVLoop] + ext p + constructor + · rintro ⟨u, rfl⟩ + exact (e u).property + · intro hp + obtain ⟨u, hu⟩ := e.surjective ⟨p, hp⟩ + exact ⟨u, congrArg Subtype.val hu⟩ + have hclosed := radialBVLoop_closed f hC + have hinj := radialBVLoop_injOn f hC (Subtype.val_injective.comp e.injective) + have hformula (t : Set.Icc (0 : ℝ) (2 * Real.pi)) : γ.val t = + o + ρ (normalVector ((t : ℝ) : Real.Angle)) • normalVector ((t : ℝ) : Real.Angle) := by + rw [radialBVLoop_apply] + exact he _ + have hinter := jordanInterior_frontier_eq_interior K.convex K.isCompact.isClosed + K.isCompact.isBounded K.nonempty + have hwcenter : curveWinding (by positivity) γ.val o = 1 := by + have hx := funext hformula + rw [hx] + exact curveWinding_radial_center o _ (fun t ↦ (hρ _ (norm_normalVector_real t)).1) + let : PreconnectedSpace ↥(interior (K : Set Point)) := + Subtype.preconnectedSpace K.convex.interior.isPreconnected + have hlc : IsLocallyConstant + (fun p : ↥(interior (K : Set Point)) ↦ curveWinding (by positivity) γ.val p.val) := by + apply (IsLocallyConstant.iff_exists_open _).mpr + intro p + have hp : p.val ∉ Set.range γ.val := by + rw [hrange] + exact fun h ↦ h.2 p.property + obtain ⟨U, hU, hpU, hUeq⟩ := + curveWinding_locally_constant_off_range (by positivity) γ.property.1 hclosed hp + exact ⟨Subtype.val ⁻¹' U, hU.preimage continuous_subtype_val, hpU, + fun q hq ↦ hUeq q.val hq⟩ + refine ⟨ρ, e, C, γ, hρ, he, hC, hformula, ?_, hinter⟩ + refine ⟨by positivity, isJordanCurve_of_unitSphere_homeomorph e, + γ.property.1, hrange, hclosed, hinj, ?_⟩ + intro p hp + rw [hinter] at hp + exact (hlc.apply_eq_of_preconnectedSpace ⟨p, hp⟩ ⟨o, ho⟩).trans hwcenter + +end MovingSofa + +end + +end + +end + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/Development/Geometry/Foundations/Development003.lean b/LeanPool/MovingSofa/Development/Geometry/Foundations/Development003.lean new file mode 100644 index 0000000000..088d3191f6 --- /dev/null +++ b/LeanPool/MovingSofa/Development/Geometry/Foundations/Development003.lean @@ -0,0 +1,9077 @@ +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +module + +public import LeanPool.Isoperimetric.BrunnMinkowski +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development002 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development001 + + +public import Mathlib.Algebra.Module.LinearMap.DivisionRing +public import Mathlib.Analysis.Calculus.MeanValue +public import Mathlib.Analysis.Complex.Isometry +public import Mathlib.Analysis.Complex.Tietze +public import Mathlib.Analysis.Convex.Basic +public import Mathlib.Analysis.Convex.GaugeRescale +public import Mathlib.Analysis.InnerProductSpace.PiL2 +public import Mathlib.Analysis.LocallyConvex.Separation +public import Mathlib.Analysis.LocallyConvex.WithSeminorms +public import Mathlib.Analysis.Normed.Module.Basic +public import Mathlib.Analysis.Normed.Module.Connected +public import Mathlib.Analysis.Normed.Module.Convex +public import Mathlib.Analysis.SpecialFunctions.Complex.Circle +public import Mathlib.LinearAlgebra.AffineSpace.FiniteDimensional +public import Mathlib.MeasureTheory.Integral.Bochner.Basic +public import Mathlib.MeasureTheory.Integral.IntervalIntegral.ContDiff +public import Mathlib.MeasureTheory.SetSemiring +public import Mathlib.MeasureTheory.VectorMeasure.BoundedVariation +public import Mathlib.MeasureTheory.VectorMeasure.IntegrationByParts +public import Mathlib.MeasureTheory.VectorMeasure.WithDensityVec +public import Mathlib.SetTheory.Cardinal.Finite +public import Mathlib.Tactic +public import Mathlib.Topology.Bornology.Basic +public import Mathlib.Topology.Connected.Basic +public import Mathlib.Topology.Connected.Clopen +public import Mathlib.Topology.Connected.LocallyConnected +public import Mathlib.Topology.EMetricSpace.BoundedVariation +public import Mathlib.Topology.Homeomorph.Lemmas +public import Mathlib.Topology.Homotopy.Lifting +public import Mathlib.Topology.Instances.AddCircle.Real +public import Mathlib.Topology.Maps.Basic +public import Mathlib.Topology.Separation.Hausdorff +/-! +# Moving sofa: related mathematical developments + +* `Infrastructure.Topology.Foundations.Development001`. +* `Infrastructure.Curves.Foundations.Development002`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `JordanPick.JordanCurve.Arcs`. +* `JordanPick.JordanCurve.Brouwer`. +* `JordanPick.JordanCurve.Counting`. +* `JordanPick.JordanCurve`. +* `TauCeti.Analysis.Calculus.MetricVariation`. +* `TauCeti.Analysis.Normed.Module.Ball.Exterior`. +* `TauCeti.Analysis.Normed.Module.HalfSpace`. +* `TauCeti.Topology.EMetricSpace.BoundedVariation`. +* `External`. +* `TauCeti.Topology.Frontier`. +* `TauCeti.Topology.FilledHull`. +* `TauCeti.Analysis.Normed.Module.FilledHull`. +* `TauCeti.Topology.LocallyConnected`. +* `TauCeti.Topology.JordanCurve.Basic`. +* `TauCeti.Topology.JordanCurve.Path`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Rado Kirov. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Rado Kirov +-/ +/-! +# Arc scaffolding for the (continuous) Jordan curve theorem + +Reusable topology lemmas that split a topological circle into closed arcs, each +homeomorphic to the unit interval. These feed Maehara's proof of the Jordan +curve theorem. + +`Plane := EuclideanSpace ℝ (Fin 2)` and the circle is `Metric.sphere (0:Plane) 1`. + +Main deliverables: +* `circleHomeoSphere` / `spherePlaneHomeoCircle` — the bridge between Mathlib's + `Circle` (unit circle in `ℂ`) and `sphere (0:Plane) 1`. +* `param` — the angle parametrization `ℝ → sphere (0:Plane) 1`, continuous, + `2π`-periodic, with explicit fibers and surjective. +* `arcHomeoUnitInterval` — a closed arc `param '' Icc a b` (with `a < b`, + `b - a < 2π`) is homeomorphic to `unitInterval`. +* `sphere_split` — two distinct points cut the circle into two closed arcs, each + `≃ₜ unitInterval`, with union the whole circle and intersection the two points. +* `jordanCurve_split` — transport of `sphere_split` across a homeomorphism + `sphere (0:Plane) 1 ≃ₜ K`. +* `exists_proper_arc` — a proper closed subset of the circle sits inside a proper + closed arc `≃ₜ unitInterval`. +-/ + +@[expose] public section + +namespace JordanCurve.Arcs + +open Metric Set Function Real + +/-- The plane `ℝ²`. -/ +abbrev Plane := EuclideanSpace ℝ (Fin 2) + +/-! ## 1. The circle model bridge -/ + +/-- A linear isometry equivalence `ℂ ≃ₗᵢ[ℝ] Plane`, from the standard orthonormal +basis of `EuclideanSpace ℝ (Fin 2)`. -/ +noncomputable def complexLIE : ℂ ≃ₗᵢ[ℝ] Plane := + Complex.isometryOfOrthonormal (EuclideanSpace.basisFun (Fin 2) ℝ) + +/-- The underlying `Equiv` between Mathlib's `Circle` and the unit sphere of the +plane, induced by `complexLIE`. -/ +noncomputable def circleEquivSphere : Circle ≃ sphere (0 : Plane) 1 where + toFun z := ⟨complexLIE z, by + rw [mem_sphere_zero_iff_norm, complexLIE.norm_map]; exact z.norm_coe⟩ + invFun w := ⟨complexLIE.symm w, by + change complexLIE.symm w ∈ sphere (0 : ℂ) 1 + rw [mem_sphere_zero_iff_norm, complexLIE.symm.norm_map, ← mem_sphere_zero_iff_norm] + exact w.2⟩ + left_inv z := by ext; simp [complexLIE.symm_apply_apply] + right_inv w := by ext; simp [complexLIE.apply_symm_apply] + +/-- **Circle model bridge.** `Circle ≃ₜ sphere (0:Plane) 1`. -/ +noncomputable def circleHomeoSphere : Circle ≃ₜ sphere (0 : Plane) 1 := + Continuous.homeoOfEquivCompactToT2 (f := circleEquivSphere) <| by + apply Continuous.subtype_mk + exact complexLIE.continuous.comp continuous_subtype_val + +/-- **Circle model bridge** (as requested): `sphere (0:Plane) 1 ≃ₜ Circle`. -/ +noncomputable def spherePlaneHomeoCircle : sphere (0 : Plane) 1 ≃ₜ Circle := + circleHomeoSphere.symm + +@[simp] lemma circleHomeoSphere_coe (z : Circle) : + (circleHomeoSphere z : Plane) = complexLIE z := rfl + +/-! ## 2. The angle parametrization -/ + +/-- The angle parametrization `ℝ → sphere (0:Plane) 1`, `θ ↦` the plane point at +angle `θ` on the unit circle. -/ +noncomputable def param (θ : ℝ) : sphere (0 : Plane) 1 := circleHomeoSphere (Circle.exp θ) + +@[continuity, fun_prop] +lemma continuous_param : Continuous param := + circleHomeoSphere.continuous.comp Circle.exp.continuous + +/-- Two angles give the same point iff they differ by an integer multiple of `2π`. -/ +lemma param_eq_iff {s t : ℝ} : param s = param t ↔ ∃ m : ℤ, s = t + m * (2 * π) := by + unfold param + rw [circleHomeoSphere.injective.eq_iff, Circle.exp_eq_exp] + +/-- The parametrization is surjective. -/ +lemma param_surjective : Surjective param := + circleHomeoSphere.surjective.comp Circle.exp_surjective + +/-- The parametrization is `2π`-periodic. -/ +lemma param_periodic : Function.Periodic param (2 * π) := by + intro θ + rw [param_eq_iff] + exact ⟨1, by push_cast; ring⟩ + +/-! ## 2. Closed arc ≃ₜ unitInterval -/ + +/-- On a closed interval shorter than a full turn, `param` is injective. -/ +lemma param_injOn {a b : ℝ} (h : b - a < 2 * π) : InjOn param (Icc a b) := by + intro s hs t ht hst + obtain ⟨m, hm⟩ := param_eq_iff.1 hst + have hp : (0 : ℝ) < 2 * π := by positivity + obtain ⟨hαs, hsβ⟩ := hs + obtain ⟨hat, htb⟩ := ht + have e : s - t = (m : ℝ) * (2 * π) := by linarith + have hlt : (m : ℝ) * (2 * π) < 1 * (2 * π) := by rw [one_mul, ← e]; linarith + have hgt : (-1 : ℝ) * (2 * π) < (m : ℝ) * (2 * π) := by rw [neg_one_mul, ← e]; linarith + have u1 : (m : ℝ) < 1 := lt_of_mul_lt_mul_right hlt hp.le + have u2 : (-1 : ℝ) < (m : ℝ) := lt_of_mul_lt_mul_right hgt hp.le + have hm0 : m = 0 := by + have b1 : m < (1 : ℤ) := by exact_mod_cast u1 + have b2 : (-1 : ℤ) < m := by exact_mod_cast u2 + omega + rw [hm0] at hm; push_cast at hm; linarith + +/-- Image of a closed interval of angles under `param` (a "closed arc"). -/ +lemma isClosed_arc (a b : ℝ) : IsClosed (param '' Icc a b) := + (isCompact_Icc.image continuous_param).isClosed + +/-- On a short closed interval `param` restricts to a homeomorphism onto its +image (the arc). -/ +noncomputable def arcHomeoIcc {a b : ℝ} (h : b - a < 2 * π) : + (Icc a b) ≃ₜ (param '' Icc a b) := + Continuous.homeoOfEquivCompactToT2 + (f := Equiv.Set.imageOfInjOn param (Icc a b) (param_injOn h)) + (continuous_induced_rng.2 (continuous_param.comp continuous_subtype_val)) + +/-- **Closed arc ≃ₜ unitInterval.** A closed arc `param '' Icc a b` with +`a < b` and `b - a < 2π` is homeomorphic to the unit interval. -/ +noncomputable def arcHomeoUnitInterval {a b : ℝ} (hab : a < b) (h : b - a < 2 * π) : + (param '' Icc a b) ≃ₜ unitInterval := + (arcHomeoIcc h).symm.trans (iccHomeoI a b hab) + +/-- The left endpoint `param a` of the arc maps to `0` under `arcHomeoUnitInterval`. -/ +lemma arcHomeoUnitInterval_apply_left {a b : ℝ} (hab : a < b) (h : b - a < 2 * π) + (hmem : param a ∈ param '' Icc a b) : + arcHomeoUnitInterval hab h ⟨param a, hmem⟩ = 0 := by + have ha : a ∈ Icc a b := left_mem_Icc.2 hab.le + have key : (arcHomeoIcc h) ⟨a, ha⟩ = ⟨param a, hmem⟩ := Subtype.ext rfl + have hsymm : (arcHomeoIcc h).symm ⟨param a, hmem⟩ = ⟨a, ha⟩ := by + rw [← key, Homeomorph.symm_apply_apply] + apply Subtype.ext + change ((arcHomeoIcc h).symm.trans (iccHomeoI a b hab) ⟨param a, hmem⟩ : ℝ) + = ((0 : unitInterval) : ℝ) + rw [Homeomorph.trans_apply, hsymm, iccHomeoI_apply_coe, Set.Icc.coe_zero] + change (a - a) / (b - a) = 0 + rw [sub_self, zero_div] + +/-- The right endpoint `param b` of the arc maps to `1` under `arcHomeoUnitInterval`. -/ +lemma arcHomeoUnitInterval_apply_right {a b : ℝ} (hab : a < b) (h : b - a < 2 * π) + (hmem : param b ∈ param '' Icc a b) : + arcHomeoUnitInterval hab h ⟨param b, hmem⟩ = 1 := by + have hb : b ∈ Icc a b := right_mem_Icc.2 hab.le + have key : (arcHomeoIcc h) ⟨b, hb⟩ = ⟨param b, hmem⟩ := Subtype.ext rfl + have hsymm : (arcHomeoIcc h).symm ⟨param b, hmem⟩ = ⟨b, hb⟩ := by + rw [← key, Homeomorph.symm_apply_apply] + apply Subtype.ext + change ((arcHomeoIcc h).symm.trans (iccHomeoI a b hab) ⟨param b, hmem⟩ : ℝ) + = ((1 : unitInterval) : ℝ) + rw [Homeomorph.trans_apply, hsymm, iccHomeoI_apply_coe, Set.Icc.coe_one] + change (b - a) / (b - a) = 1 + rw [div_self (by linarith : b - a ≠ 0)] + +/-! ## 2b. Interior of an arc is path-connected -/ + +/-- **Interior of an arc is path-connected.** If `A ≃ₜ unitInterval` via `e` and two +points `x, y ∈ A` are the endpoints (`{e x, e y} = {0, 1}`), then `A \ {x, y}` — the +arc with its endpoints removed — is path-connected. -/ +theorem arc_interior_isPathConnected {X : Type*} [TopologicalSpace X] {A : Set X} + (e : A ≃ₜ unitInterval) {x y : X} (hx : x ∈ A) (hy : y ∈ A) + (he : ({e ⟨x, hx⟩, e ⟨y, hy⟩} : Set unitInterval) = {0, 1}) : + IsPathConnected (A \ {x, y}) := by + -- endpoint values, extracted from the set equality + have hmx : e ⟨x, hx⟩ ∈ ({0, 1} : Set unitInterval) := by + rw [← he]; exact Set.mem_insert _ _ + have hmy : e ⟨y, hy⟩ ∈ ({0, 1} : Set unitInterval) := by + rw [← he]; exact Set.mem_insert_of_mem _ rfl + have h0 : (0 : unitInterval) ∈ ({e ⟨x, hx⟩, e ⟨y, hy⟩} : Set unitInterval) := by + rw [he]; exact Set.mem_insert _ _ + have h1 : (1 : unitInterval) ∈ ({e ⟨x, hx⟩, e ⟨y, hy⟩} : Set unitInterval) := by + rw [he]; exact Set.mem_insert_of_mem _ rfl + -- the parametrizing map from `Ioo 0 1 ⊆ ℝ` + set g : ℝ → X := fun s => ((e.symm (Set.projIcc 0 1 (by norm_num) s) : A) : X) with hg + have hgcont : Continuous g := + continuous_subtype_val.comp (e.symm.continuous.comp continuous_projIcc) + have hIoo : IsPathConnected (Set.Ioo (0 : ℝ) 1) := + (convex_Ioo (0 : ℝ) 1).isPathConnected ⟨1 / 2, by norm_num⟩ + have himg : g '' Set.Ioo (0 : ℝ) 1 = A \ {x, y} := by + ext p + simp only [Set.mem_image, Set.mem_sdiff, Set.mem_insert_iff, Set.mem_singleton_iff] + constructor + · rintro ⟨s, hs, rfl⟩ + have hsI : s ∈ Set.Icc (0 : ℝ) 1 := ⟨hs.1.le, hs.2.le⟩ + have hproj : Set.projIcc (0 : ℝ) 1 (by norm_num) s = ⟨s, hsI⟩ := + Set.projIcc_of_mem _ hsI + refine ⟨(e.symm _).2, ?_⟩ + rintro (hgx | hgy) + · -- g s = x is impossible + have heq : e.symm (Set.projIcc (0 : ℝ) 1 (by norm_num) s) = ⟨x, hx⟩ := + Subtype.ext hgx + have hval : Set.projIcc (0 : ℝ) 1 (by norm_num) s = e ⟨x, hx⟩ := by + rw [← heq, Homeomorph.apply_symm_apply] + rw [hproj] at hval + rcases hmx with hxe | hxe + · rw [hxe] at hval + exact absurd (congrArg Subtype.val hval) (by simpa using hs.1.ne') + · rw [Set.mem_singleton_iff] at hxe; rw [hxe] at hval + exact absurd (congrArg Subtype.val hval) (by simpa using hs.2.ne) + · -- g s = y is impossible + have heq : e.symm (Set.projIcc (0 : ℝ) 1 (by norm_num) s) = ⟨y, hy⟩ := + Subtype.ext hgy + have hval : Set.projIcc (0 : ℝ) 1 (by norm_num) s = e ⟨y, hy⟩ := by + rw [← heq, Homeomorph.apply_symm_apply] + rw [hproj] at hval + rcases hmy with hye | hye + · rw [hye] at hval + exact absurd (congrArg Subtype.val hval) (by simpa using hs.1.ne') + · rw [Set.mem_singleton_iff] at hye; rw [hye] at hval + exact absurd (congrArg Subtype.val hval) (by simpa using hs.2.ne) + · rintro ⟨hpA, hpxy⟩ + have hpx : p ≠ x := fun h => hpxy (Or.inl h) + have hpy : p ≠ y := fun h => hpxy (Or.inr h) + set t : unitInterval := e ⟨p, hpA⟩ with ht + have htne0 : t ≠ 0 := by + intro h; apply hpx + rcases h0 with h0e | h0e + · have : e ⟨p, hpA⟩ = e ⟨x, hx⟩ := by rw [← ht, h, h0e] + exact congrArg Subtype.val (e.injective this) + · rw [Set.mem_singleton_iff] at h0e + have : e ⟨p, hpA⟩ = e ⟨y, hy⟩ := by rw [← ht, h, h0e] + exact absurd (congrArg Subtype.val (e.injective this)) hpy + have htne1 : t ≠ 1 := by + intro h; apply hpx + rcases h1 with h1e | h1e + · have : e ⟨p, hpA⟩ = e ⟨x, hx⟩ := by rw [← ht, h, h1e] + exact congrArg Subtype.val (e.injective this) + · rw [Set.mem_singleton_iff] at h1e + have : e ⟨p, hpA⟩ = e ⟨y, hy⟩ := by rw [← ht, h, h1e] + exact absurd (congrArg Subtype.val (e.injective this)) hpy + have htmem : (t : ℝ) ∈ Set.Ioo (0 : ℝ) 1 := by + refine ⟨lt_of_le_of_ne t.2.1 ?_, lt_of_le_of_ne t.2.2 ?_⟩ + · intro h; exact htne0 (Subtype.ext h.symm) + · intro h; exact htne1 (Subtype.ext h) + refine ⟨(t : ℝ), htmem, ?_⟩ + have hproj : Set.projIcc (0 : ℝ) 1 (by norm_num) (t : ℝ) = t := + Set.projIcc_val _ t + change ((e.symm (Set.projIcc (0 : ℝ) 1 (by norm_num) (t : ℝ)) : A) : X) = p + rw [hproj, ht, Homeomorph.symm_apply_apply] + rw [← himg] + exact hIoo.image hgcont + +/-- **`arc_interior_joinedIn`.** For an arc `A ≃ₜ unitInterval` via `e` whose two +endpoints are `x, y` (`{e x, e y} = {0, 1}`), any two interior points `u, v ∈ A` +(neither equal to `x` nor `y`) are joined by a path inside `A \ {x, y}`. -/ +theorem arc_interior_joinedIn {X : Type*} [TopologicalSpace X] {A : Set X} + (e : A ≃ₜ unitInterval) {x y : X} (hx : x ∈ A) (hy : y ∈ A) + (he : ({e ⟨x, hx⟩, e ⟨y, hy⟩} : Set unitInterval) = {0, 1}) + {u v : X} (hu : u ∈ A) (hv : v ∈ A) + (hux : u ∉ ({x, y} : Set X)) (hvx : v ∉ ({x, y} : Set X)) : + JoinedIn (A \ {x, y}) u v := + (arc_interior_isPathConnected e hx hy he).joinedIn u ⟨hu, hux⟩ v ⟨hv, hvx⟩ + +/-! ## 3. The two-point split -/ + +/-- **Two-point split.** Two distinct points `x`, `y` on the circle cut it into +two closed arcs `A₁`, `A₂`, each homeomorphic to the unit interval, whose union +is the whole circle and whose intersection is exactly `{x, y}`. -/ +theorem sphere_split {x y : sphere (0 : Plane) 1} (hxy : x ≠ y) : + ∃ A₁ A₂ : Set (sphere (0 : Plane) 1), + IsClosed A₁ ∧ IsClosed A₂ ∧ A₁ ∪ A₂ = univ ∧ A₁ ∩ A₂ = {x, y} ∧ + Nonempty (A₁ ≃ₜ unitInterval) ∧ Nonempty (A₂ ≃ₜ unitInterval) ∧ + IsPathConnected (A₁ \ {x, y}) ∧ IsPathConnected (A₂ \ {x, y}) := by + have hp : (0 : ℝ) < 2 * π := by positivity + obtain ⟨α, hα⟩ := param_surjective x + obtain ⟨β₀, hβ₀⟩ := param_surjective y + set β := toIocMod hp α β₀ with hβdef + have hmemβ : β ∈ Ioc α (α + 2 * π) := toIocMod_mem_Ioc hp α β₀ + -- `param β = y` + have hpar_β : param β = y := by + have hz : β₀ - β = (toIocDiv hp α β₀ : ℤ) • (2 * π) := self_sub_toIocMod hp α β₀ + rw [zsmul_eq_mul] at hz + have hpp : param β = param β₀ := by + rw [param_eq_iff]; exact ⟨-(toIocDiv hp α β₀), by push_cast; linarith⟩ + rw [hpp, hβ₀] + -- `β < α + 2π` (else `y = x`) + have hβlt : β < α + 2 * π := by + rcases lt_or_eq_of_le hmemβ.2 with h | h + · exact h + · exact absurd (by rw [← hpar_β, h, param_periodic, hα] : y = x).symm hxy + have hlen1 : β - α < 2 * π := by linarith [hβlt] + have hlen2 : (α + 2 * π) - β < 2 * π := by linarith [hmemβ.1] + -- union is everything + have hunion : (param '' Icc α β) ∪ (param '' Icc β (α + 2 * π)) = univ := by + rw [← image_union, Icc_union_Icc_eq_Icc hmemβ.1.le hβlt.le, + param_periodic.image_Icc hp α, param_surjective.range_eq] + -- intersection is `{x, y}` + have hinter : (param '' Icc α β) ∩ (param '' Icc β (α + 2 * π)) = {x, y} := by + ext z + simp only [mem_inter_iff, mem_image, mem_insert_iff, mem_singleton_iff] + constructor + · rintro ⟨⟨s, hs, hsz⟩, ⟨t, ht, htz⟩⟩ + have hst : param s = param t := hsz.trans htz.symm + obtain ⟨m, hm⟩ := param_eq_iff.1 hst + obtain ⟨hαs, hsβ⟩ := hs + obtain ⟨hβt, htα⟩ := ht + have e : s - t = (m : ℝ) * (2 * π) := by linarith + have hm_ub : (m : ℝ) ≤ 0 := by + have h2 : (m : ℝ) * (2 * π) ≤ 0 * (2 * π) := by rw [zero_mul, ← e]; linarith + exact le_of_mul_le_mul_right h2 hp + have hm_lb : (-1 : ℝ) ≤ (m : ℝ) := by + have h2 : (-1 : ℝ) * (2 * π) ≤ (m : ℝ) * (2 * π) := by + rw [neg_one_mul, ← e]; linarith + exact le_of_mul_le_mul_right h2 hp + have hcase : m = 0 ∨ m = -1 := by + have a0 : m ≤ (0 : ℤ) := by exact_mod_cast hm_ub + have a1 : (-1 : ℤ) ≤ m := by exact_mod_cast hm_lb + omega + rcases hcase with h0 | h1 + · right + have hst2 : s = t := by rw [h0] at hm; push_cast at hm; linarith + have hsβeq : s = β := le_antisymm hsβ (by rw [hst2]; exact hβt) + rw [← hsz, hsβeq]; exact hpar_β + · left + have hst2 : s = t - 2 * π := by rw [h1] at hm; push_cast at hm; linarith + have hsαeq : s = α := le_antisymm (by rw [hst2]; linarith) hαs + rw [← hsz, hsαeq]; exact hα + · rintro (rfl | rfl) + · exact ⟨⟨α, ⟨le_refl α, hmemβ.1.le⟩, hα⟩, + ⟨α + 2 * π, ⟨hβlt.le, le_refl _⟩, by rw [param_periodic]; exact hα⟩⟩ + · exact ⟨⟨β, ⟨hmemβ.1.le, le_refl β⟩, hpar_β⟩, + ⟨β, ⟨le_refl β, hβlt.le⟩, hpar_β⟩⟩ + -- path-connectedness of the two arcs with their shared endpoints removed + have hmem_α₁ : param α ∈ param '' Icc α β := ⟨α, left_mem_Icc.2 hmemβ.1.le, rfl⟩ + have hmem_β₁ : param β ∈ param '' Icc α β := ⟨β, right_mem_Icc.2 hmemβ.1.le, rfl⟩ + have hxA1 : x ∈ param '' Icc α β := hα ▸ hmem_α₁ + have hyA1 : y ∈ param '' Icc α β := hpar_β ▸ hmem_β₁ + have hpc1 : IsPathConnected (param '' Icc α β \ {x, y}) := by + refine arc_interior_isPathConnected (arcHomeoUnitInterval hmemβ.1 hlen1) hxA1 hyA1 ?_ + have hex : arcHomeoUnitInterval hmemβ.1 hlen1 ⟨x, hxA1⟩ = 0 := by + rw [show (⟨x, hxA1⟩ : ↥(param '' Icc α β)) = ⟨param α, hmem_α₁⟩ from + Subtype.ext hα.symm] + exact arcHomeoUnitInterval_apply_left hmemβ.1 hlen1 hmem_α₁ + have hey : arcHomeoUnitInterval hmemβ.1 hlen1 ⟨y, hyA1⟩ = 1 := by + rw [show (⟨y, hyA1⟩ : ↥(param '' Icc α β)) = ⟨param β, hmem_β₁⟩ from + Subtype.ext hpar_β.symm] + exact arcHomeoUnitInterval_apply_right hmemβ.1 hlen1 hmem_β₁ + rw [hex, hey] + have hmem_β₂ : param β ∈ param '' Icc β (α + 2 * π) := + ⟨β, left_mem_Icc.2 hβlt.le, rfl⟩ + have hmem_α₂ : param (α + 2 * π) ∈ param '' Icc β (α + 2 * π) := + ⟨α + 2 * π, right_mem_Icc.2 hβlt.le, rfl⟩ + have hxeq : param (α + 2 * π) = x := by rw [param_periodic]; exact hα + have hxA2 : x ∈ param '' Icc β (α + 2 * π) := hxeq ▸ hmem_α₂ + have hyA2 : y ∈ param '' Icc β (α + 2 * π) := hpar_β ▸ hmem_β₂ + have hpc2 : IsPathConnected (param '' Icc β (α + 2 * π) \ {x, y}) := by + refine arc_interior_isPathConnected (arcHomeoUnitInterval hβlt hlen2) hxA2 hyA2 ?_ + have hex : arcHomeoUnitInterval hβlt hlen2 ⟨x, hxA2⟩ = 1 := by + rw [show (⟨x, hxA2⟩ : ↥(param '' Icc β (α + 2 * π))) = ⟨param (α + 2 * π), hmem_α₂⟩ + from Subtype.ext hxeq.symm] + exact arcHomeoUnitInterval_apply_right hβlt hlen2 hmem_α₂ + have hey : arcHomeoUnitInterval hβlt hlen2 ⟨y, hyA2⟩ = 0 := by + rw [show (⟨y, hyA2⟩ : ↥(param '' Icc β (α + 2 * π))) = ⟨param β, hmem_β₂⟩ from + Subtype.ext hpar_β.symm] + exact arcHomeoUnitInterval_apply_left hβlt hlen2 hmem_β₂ + rw [hex, hey]; exact Set.pair_comm 1 0 + exact ⟨param '' Icc α β, param '' Icc β (α + 2 * π), + isClosed_arc α β, isClosed_arc β (α + 2 * π), hunion, hinter, + ⟨arcHomeoUnitInterval hmemβ.1 hlen1⟩, ⟨arcHomeoUnitInterval hβlt hlen2⟩, hpc1, hpc2⟩ + +/-! ## 4. Transport across a homeomorphism to a Jordan curve -/ + +/-- **Transport to a Jordan curve.** Given a homeomorphism `f` from the circle to +a space `K` and two distinct points, the images of the two arcs split `K` into two +closed arcs `≃ₜ unitInterval` meeting exactly at `{f x, f y}`. -/ +theorem jordanCurve_split {K : Type*} [TopologicalSpace K] + (f : sphere (0 : Plane) 1 ≃ₜ K) {x y : sphere (0 : Plane) 1} (hxy : x ≠ y) : + ∃ A₁ A₂ : Set K, + IsClosed A₁ ∧ IsClosed A₂ ∧ A₁ ∪ A₂ = univ ∧ A₁ ∩ A₂ = {f x, f y} ∧ + Nonempty (A₁ ≃ₜ unitInterval) ∧ Nonempty (A₂ ≃ₜ unitInterval) ∧ + IsPathConnected (A₁ \ {f x, f y}) ∧ IsPathConnected (A₂ \ {f x, f y}) := by + obtain ⟨A₁, A₂, hc1, hc2, hu, hi, ⟨e1⟩, ⟨e2⟩, hpc1, hpc2⟩ := sphere_split hxy + have himg1 : f '' (A₁ \ {x, y}) = f '' A₁ \ {f x, f y} := by + rw [Set.image_sdiff f.injective, Set.image_insert_eq, Set.image_singleton] + have himg2 : f '' (A₂ \ {x, y}) = f '' A₂ \ {f x, f y} := by + rw [Set.image_sdiff f.injective, Set.image_insert_eq, Set.image_singleton] + refine ⟨f '' A₁, f '' A₂, f.isClosedMap _ hc1, f.isClosedMap _ hc2, ?_, ?_, + ⟨(f.image A₁).symm.trans e1⟩, ⟨(f.image A₂).symm.trans e2⟩, + himg1 ▸ hpc1.image f.continuous, himg2 ▸ hpc2.image f.continuous⟩ + · rw [← image_union, hu, image_univ, f.surjective.range_eq] + · rw [← Set.image_inter f.injective, hi, Set.image_insert_eq, Set.image_singleton] + +/-! ## 5. A proper closed arc containing a proper closed set -/ + +/-- **Proper arc containing a set.** A proper closed subset `C` of the circle is +contained in a proper closed arc `A` (homeomorphic to the unit interval). -/ +theorem exists_proper_arc {C : Set (sphere (0 : Plane) 1)} + (hC : IsClosed C) (hCne : C ≠ univ) : + ∃ A : Set (sphere (0 : Plane) 1), + C ⊆ A ∧ A ≠ univ ∧ IsClosed A ∧ Nonempty (A ≃ₜ unitInterval) := by + have hp : (0 : ℝ) < 2 * π := by positivity + obtain ⟨z, hz⟩ := (Set.ne_univ_iff_exists_notMem C).1 hCne + obtain ⟨γ, hγ⟩ := param_surjective z + have hopen : IsOpen (param ⁻¹' Cᶜ) := hC.isOpen_compl.preimage continuous_param + have hmemγ : γ ∈ param ⁻¹' Cᶜ := by rw [mem_preimage, hγ]; exact hz + obtain ⟨ε, hεpos, hball⟩ := Metric.isOpen_iff.1 hopen γ hmemγ + set δ := min (ε / 2) (π / 2) with hδdef + have hδpos : 0 < δ := lt_min (by linarith) (by positivity) + have hδπ : δ < π := lt_of_le_of_lt (min_le_right _ _) (by linarith [pi_pos]) + have hδε : δ ≤ ε := le_trans (min_le_left _ _) (by linarith) + have hsub : Ioo (γ - δ) (γ + δ) ⊆ param ⁻¹' Cᶜ := by + intro w hw + apply hball + rw [Metric.mem_ball, Real.dist_eq, abs_lt] + obtain ⟨hw1, hw2⟩ := hw + constructor <;> linarith + -- `z ∉ A`, so `A ≠ univ` + have hzA : z ∉ param '' Icc (γ + δ) (γ + 2 * π - δ) := by + rintro ⟨θ, hθ, hθz⟩ + have hpe : param θ = param γ := by rw [hθz, hγ] + obtain ⟨m, hm⟩ := param_eq_iff.1 hpe + obtain ⟨hθ1, hθ2⟩ := hθ + have e : (m : ℝ) * (2 * π) = θ - γ := by linarith + have hpos : (0 : ℝ) < (m : ℝ) * (2 * π) := by rw [e]; linarith + have hlt : (m : ℝ) * (2 * π) < 2 * π := by rw [e]; linarith + have m1 : (0 : ℝ) < (m : ℝ) := + lt_of_mul_lt_mul_right (by rw [zero_mul]; exact hpos) hp.le + have m2 : (m : ℝ) < 1 := + lt_of_mul_lt_mul_right (by rw [one_mul]; exact hlt) hp.le + have a0 : (0 : ℤ) < m := by exact_mod_cast m1 + have a1 : m < (1 : ℤ) := by exact_mod_cast m2 + omega + refine ⟨param '' Icc (γ + δ) (γ + 2 * π - δ), ?_, + (Set.ne_univ_iff_exists_notMem _).2 ⟨z, hzA⟩, isClosed_arc _ _, + ⟨arcHomeoUnitInterval (by linarith) (by linarith)⟩⟩ + -- `C ⊆ A` + intro c hc + obtain ⟨θc, hθc⟩ := param_surjective c + set θ' := toIcoMod hp (γ + δ) θc with hθ'def + have hmem' : θ' ∈ Ico (γ + δ) (γ + δ + 2 * π) := toIcoMod_mem_Ico hp (γ + δ) θc + have hpar' : param θ' = c := by + have hz2 : θc - θ' = (toIcoDiv hp (γ + δ) θc : ℤ) • (2 * π) := + self_sub_toIcoMod hp (γ + δ) θc + rw [zsmul_eq_mul] at hz2 + have : param θ' = param θc := by + rw [param_eq_iff]; exact ⟨-(toIcoDiv hp (γ + δ) θc), by push_cast; linarith⟩ + rw [this, hθc] + have hθ'ub : θ' ≤ γ + 2 * π - δ := by + by_contra h + rw [not_le] at h + have hmem2 : θ' - 2 * π ∈ Ioo (γ - δ) (γ + δ) := by + constructor + · linarith + · linarith [hmem'.2] + have hpre : (θ' - 2 * π) ∈ param ⁻¹' Cᶜ := hsub hmem2 + rw [mem_preimage] at hpre + have hpc : param (θ' - 2 * π) = c := by + rw [show θ' = (θ' - 2 * π) + 2 * π by ring, param_periodic] at hpar' + exact hpar' + rw [hpc] at hpre + exact hpre hc + exact ⟨θ', ⟨hmem'.1, hθ'ub⟩, hpar'⟩ + +end JordanCurve.Arcs + +end + +end + +section + +/- +Copyright (c) 2026 Rado Kirov. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Rado Kirov +-/ +/-! +# Toward the 2D Brouwer fixed point theorem + +We build the classical topological proof of the two-dimensional Brouwer fixed +point theorem, in four phases: + +* **Phase 1** — the once-around loop on `AddCircle 1` is not homotopic (rel + endpoints) to the constant loop. This is the mathematical heart: it is proved + from the covering `ℝ → AddCircle 1` via unique path lifting + (`IsCoveringMap.liftPath_apply_one_eq_of_homotopicRel`). +* **Phase 1.5** — transport of Phase 1 across `AddCircle 1 ≃ₜ Circle ≃ₜ + sphere (0 : ℝ²) 1` to obtain a non-nullhomotopic loop on the geometric circle. +* **Phase 2** — no retraction of the disk onto its boundary circle: a retraction + would give a null-homotopy of the Phase 1.5 loop. +* **Phase 3** — Brouwer for the closed unit disk (`brouwer_disk`): a + fixed-point-free self-map yields a retraction (ray construction). +* **Phase 4** — the general convex/compact/nonempty statement `brouwerFPT`. +-/ + +@[expose] public section + +namespace JordanCurve.Brouwer + +open Metric Set Function unitInterval Topology +open scoped RealInnerProductSpace + +/-- The plane `ℝ²`. -/ +abbrev Plane := EuclideanSpace ℝ (Fin 2) + +/-! ## Phase 1 — the once-around loop on `AddCircle 1` is not nullhomotopic -/ + +/-- The covering map `ℝ → AddCircle 1`. -/ +theorem cover : IsCoveringMap ((↑) : ℝ → AddCircle (1 : ℝ)) := + AddCircle.isCoveringMap_coe 1 + +/-- The once-around loop `t ↦ ↑t` in `AddCircle 1`. -/ +noncomputable def acLoop : C(I, AddCircle (1 : ℝ)) := + ⟨fun t => ((t : ℝ) : AddCircle (1 : ℝ)), cover.continuous.comp continuous_subtype_val⟩ + +/-- The lift of `acLoop` to `ℝ` starting at `0`: the identity `t ↦ ↑t`. -/ +noncomputable def idLift : C(I, ℝ) := ⟨fun t => (t : ℝ), continuous_subtype_val⟩ + +@[simp] lemma acLoop_apply (t : I) : acLoop t = ((t : ℝ) : AddCircle (1 : ℝ)) := rfl +@[simp] lemma idLift_apply (t : I) : idLift t = (t : ℝ) := rfl + +/-- **Phase 1.** The once-around loop is not homotopic rel endpoints to the +constant loop. -/ +theorem acLoop_not_homotopic : + ¬ acLoop.HomotopicRel (ContinuousMap.const I (0 : AddCircle (1 : ℝ))) {0, 1} := by + intro h + have h0 : acLoop 0 = ((0 : ℝ) : AddCircle (1 : ℝ)) := by simp + have h1 : (ContinuousMap.const I (0 : AddCircle (1 : ℝ))) 0 = ((0 : ℝ) : AddCircle (1 : ℝ)) := by + simp + have key := cover.liftPath_apply_one_eq_of_homotopicRel h (0 : ℝ) h0 h1 + -- Identify the two lifts. + have e1 : cover.liftPath acLoop (0 : ℝ) h0 = idLift := by + refine ((cover.eq_liftPath_iff' h0).mpr ⟨?_, ?_⟩).symm + · ext t; simp + · simp + have e2 : cover.liftPath (ContinuousMap.const I (0 : AddCircle (1 : ℝ))) (0 : ℝ) h1 + = ContinuousMap.const I (0 : ℝ) := cover.liftPath_const h1 + rw [e1, e2] at key + simp at key + +/-! ## Phase 1.5 — transport to the geometric circle `sphere (0 : ℝ²) 1` -/ + +/-- The homeomorphism `AddCircle 1 ≃ₜ sphere (0 : ℝ²) 1`, via `Circle`. -/ +noncomputable def acToSphere : AddCircle (1 : ℝ) ≃ₜ sphere (0 : Plane) 1 := + (AddCircle.homeomorphCircle (one_ne_zero)).trans Arcs.circleHomeoSphere + +/-- The base point of the sphere loop. -/ +noncomputable def sBase : sphere (0 : Plane) 1 := acToSphere 0 + +/-- The once-around loop on the geometric circle `sphere (0 : ℝ²) 1`. -/ +noncomputable def sLoop : C(I, sphere (0 : Plane) 1) := + (⟨acToSphere, acToSphere.continuous⟩ : C(AddCircle (1 : ℝ), sphere (0 : Plane) 1)).comp acLoop + +@[simp] lemma sLoop_apply (t : I) : sLoop t = acToSphere (acLoop t) := rfl + +lemma sLoop_zero : sLoop 0 = sBase := by simp [sBase] + +/-- **Phase 1.5.** The once-around loop on the geometric circle is not homotopic +rel endpoints to the constant loop. -/ +theorem sLoop_not_homotopic : + ¬ sLoop.HomotopicRel (ContinuousMap.const I sBase) {0, 1} := by + intro h + apply acLoop_not_homotopic + have hh := h.comp_continuousMap + (⟨acToSphere.symm, acToSphere.symm.continuous⟩ : C(sphere (0 : Plane) 1, AddCircle (1 : ℝ))) + have e1 : (⟨acToSphere.symm, acToSphere.symm.continuous⟩ : + C(sphere (0 : Plane) 1, AddCircle (1 : ℝ))).comp sLoop = acLoop := by + ext t; simp [sLoop, acToSphere.symm_apply_apply] + have e2 : (⟨acToSphere.symm, acToSphere.symm.continuous⟩ : + C(sphere (0 : Plane) 1, AddCircle (1 : ℝ))).comp (ContinuousMap.const I sBase) + = ContinuousMap.const I (0 : AddCircle (1 : ℝ)) := by + ext t; simp [sBase, acToSphere.symm_apply_apply] + rwa [e1, e2] at hh + +lemma sLoop_one : sLoop 1 = sBase := by + have : acLoop 1 = (0 : AddCircle (1 : ℝ)) := by + simp only [acLoop_apply] + have : ((1 : I) : ℝ) = (1 : ℝ) := rfl + rw [this]; exact AddCircle.coe_period 1 + simp [sBase, this] + +/-! ## Phase 2 — no retraction of the disk onto its boundary circle -/ + +/-- The straight-line contraction point `(1-t)·(loop s) + t·base` in the disk. -/ +noncomputable def diskPt (t s : I) : Plane := + (1 - (t : ℝ)) • (sLoop s : Plane) + (t : ℝ) • (sBase : Plane) + +lemma diskPt_mem (t s : I) : diskPt t s ∈ closedBall (0 : Plane) 1 := by + have hv : (sLoop s : Plane) ∈ closedBall (0 : Plane) 1 := + sphere_subset_closedBall (sLoop s).2 + have hw : (sBase : Plane) ∈ closedBall (0 : Plane) 1 := + sphere_subset_closedBall sBase.2 + exact convex_closedBall 0 1 hv hw (by unit_interval) (by unit_interval) (by ring) + +lemma continuous_diskPt : Continuous (fun p : I × I => diskPt p.1 p.2) := by + unfold diskPt + fun_prop + +/-- The contraction as a continuous map into the disk. -/ +noncomputable def diskMap : C(I × I, closedBall (0 : Plane) 1) := + ⟨fun p => ⟨diskPt p.1 p.2, diskPt_mem p.1 p.2⟩, + (continuous_diskPt).subtype_mk _⟩ + +/-- **Phase 2.** There is no retraction of the closed disk onto its boundary +circle. -/ +theorem no_retraction (ρ : C(closedBall (0 : Plane) 1, closedBall (0 : Plane) 1)) + (hrange : ∀ x, (ρ x : Plane) ∈ sphere (0 : Plane) 1) + (hid : ∀ x : closedBall (0 : Plane) 1, + (x : Plane) ∈ sphere (0 : Plane) 1 → (ρ x : Plane) = (x : Plane)) : + False := by + apply sLoop_not_homotopic + -- The homotopy `H t s = ρ ((1-t)·loop s + t·base)`, valued in the sphere. + set H : C(I × I, sphere (0 : Plane) 1) := + ⟨fun p => ⟨(ρ (diskMap p) : Plane), hrange _⟩, + (map_continuous ρ |>.comp (map_continuous diskMap)).subtype_val.subtype_mk _⟩ with hH + refine ⟨{ + toContinuousMap := H + map_zero_left := ?_ + map_one_left := ?_ + prop' := ?_ }⟩ + · -- H (0, s) = sLoop s + intro s + have hmem : (diskMap (0, s) : Plane) ∈ sphere (0 : Plane) 1 := by + change diskPt 0 s ∈ _ + simp only [diskPt, Set.Icc.coe_zero, sub_zero, one_smul, zero_smul, add_zero] + exact (sLoop s).2 + apply Subtype.ext + change (ρ (diskMap (0, s)) : Plane) = (sLoop s : Plane) + rw [hid _ hmem] + show (diskMap (0, s) : Plane) = (sLoop s : Plane) + change diskPt 0 s = (sLoop s : Plane) + simp [diskPt] + · -- H (1, s) = base + intro s + have hmem : (diskMap (1, s) : Plane) ∈ sphere (0 : Plane) 1 := by + change diskPt 1 s ∈ _ + simp only [diskPt, Set.Icc.coe_one, sub_self, zero_smul, one_smul, zero_add] + exact sBase.2 + apply Subtype.ext + change (ρ (diskMap (1, s)) : Plane) = (sBase : Plane) + rw [hid _ hmem] + show (diskMap (1, s) : Plane) = (sBase : Plane) + change diskPt 1 s = (sBase : Plane) + simp [diskPt] + · -- rel endpoints: for s ∈ {0,1}, H t s = sLoop s = base + intro t s hs + have hs' : (sLoop s : Plane) = (sBase : Plane) := by + rcases hs with h | h + · rw [show s = (0 : I) from h, sLoop_zero] + · rw [show s = (1 : I) from h, sLoop_one] + have hmem : (diskMap (t, s) : Plane) ∈ sphere (0 : Plane) 1 := by + change diskPt t s ∈ _ + simp only [diskPt, hs', ← add_smul, sub_add_cancel, one_smul] + exact sBase.2 + apply Subtype.ext + change (ρ (diskMap (t, s)) : Plane) = (sLoop s : Plane) + rw [hid _ hmem, hs'] + show (diskMap (t, s) : Plane) = (sBase : Plane) + change diskPt t s = (sBase : Plane) + simp only [diskPt, hs', ← add_smul, sub_add_cancel, one_smul] + +/-! ## Phase 3 — Brouwer for the closed unit disk + +Given a fixed-point-free self-map `f` of the disk, the ray from `f x` through `x` +exits the boundary circle at a point `ρ x`; this `ρ` is a retraction, forbidden +by Phase 2. -/ + +section Disk + +variable (f : C(closedBall (0 : Plane) 1, closedBall (0 : Plane) 1)) + +/-- The direction vector `x - f x` of the ray. -/ +noncomputable def dvec (x : closedBall (0 : Plane) 1) : Plane := (x : Plane) - (f x : Plane) + +/-- Quadratic coefficient `A = ‖x - f x‖²`. -/ +noncomputable def Acoef (x : closedBall (0 : Plane) 1) : ℝ := ⟪dvec f x, dvec f x⟫ +/-- Coefficient `B = ⟪f x, x - f x⟫`. -/ +noncomputable def Bcoef (x : closedBall (0 : Plane) 1) : ℝ := ⟪(f x : Plane), dvec f x⟫ +/-- Coefficient `C = ‖f x‖² - 1 ≤ 0`. -/ +noncomputable def Ccoef (x : closedBall (0 : Plane) 1) : ℝ := ‖(f x : Plane)‖ ^ 2 - 1 +/-- Discriminant `B² - A·C ≥ 0`. -/ +noncomputable def discr (x : closedBall (0 : Plane) 1) : ℝ := (Bcoef f x) ^ 2 - Acoef f x * Ccoef + f x +/-- The (larger) root parameter `t = (-B + √disc)/A`. -/ +noncomputable def tparam (x : closedBall (0 : Plane) 1) : ℝ := + (- Bcoef f x + Real.sqrt (discr f x)) / Acoef f x +/-- The exit point `ρ x = f x + t·(x - f x)` on the boundary circle. -/ +noncomputable def rhoPt (x : closedBall (0 : Plane) 1) : Plane := + (f x : Plane) + tparam f x • dvec f x + +variable (hf : ∀ x, (f x : Plane) ≠ (x : Plane)) +include hf + +lemma dvec_ne (x) : dvec f x ≠ 0 := by + simp only [dvec, sub_ne_zero]; exact fun h => hf x h.symm + +lemma Acoef_pos (x) : 0 < Acoef f x := by + rw [Acoef, real_inner_self_eq_norm_sq] + exact pow_pos (norm_pos_iff.mpr (dvec_ne f hf x)) 2 + +omit hf in +lemma Ccoef_nonpos (x) : Ccoef f x ≤ 0 := by + rw [Ccoef, sub_nonpos] + have : ‖(f x : Plane)‖ ≤ 1 := by + have := (f x).2; rw [mem_closedBall, dist_zero_right] at this; exact this + nlinarith [norm_nonneg (f x : Plane)] + +lemma discr_nonneg (x) : 0 ≤ discr f x := by + have hA := (Acoef_pos f hf x).le + have hC := Ccoef_nonpos f x + have : 0 ≤ Acoef f x * (- Ccoef f x) := mul_nonneg hA (by linarith) + rw [discr]; nlinarith [sq_nonneg (Bcoef f x)] + +/-- The exit point lies on the unit circle. -/ +lemma norm_rhoPt (x) : ‖rhoPt f x‖ = 1 := by + have hA := Acoef_pos f hf x + have hsq : (Real.sqrt (discr f x)) ^ 2 = discr f x := + Real.sq_sqrt (discr_nonneg f hf x) + have hnormsq : ‖rhoPt f x‖ ^ 2 = 1 := by + rw [rhoPt, norm_add_sq_real, norm_smul, real_inner_smul_right] + have hAe : ⟪dvec f x, dvec f x⟫ = Acoef f x := rfl + have hBe : ⟪(f x : Plane), dvec f x⟫ = Bcoef f x := rfl + have hCe : ‖(f x : Plane)‖ ^ 2 = Ccoef f x + 1 := by rw [Ccoef]; ring + rw [hBe, hCe] + have hnd : ‖dvec f x‖ ^ 2 = Acoef f x := by + rw [← real_inner_self_eq_norm_sq]; rfl + rw [Real.norm_eq_abs, mul_pow, sq_abs, hnd] + -- Now: (C+1) + 2*(t*B) + t^2 * A = 1, with t = (-B+√disc)/A + rw [tparam] + field_simp + rw [discr] at hsq ⊢ + nlinarith [hsq, hA] + have := norm_nonneg (rhoPt f x) + nlinarith [hnormsq, this] + +/-- On the boundary circle, `ρ` is the identity. -/ +lemma rhoPt_of_mem_sphere (x : closedBall (0 : Plane) 1) + (hx : (x : Plane) ∈ sphere (0 : Plane) 1) : + rhoPt f x = (x : Plane) := by + have hxn : ‖(x : Plane)‖ = 1 := by rwa [mem_sphere_zero_iff_norm] at hx + have hA := Acoef_pos f hf x + have eA : Acoef f x = ‖dvec f x‖ ^ 2 := real_inner_self_eq_norm_sq _ + have eC : Ccoef f x = ‖(f x : Plane)‖ ^ 2 - 1 := rfl + have hAdd : dvec f x + (f x : Plane) = (x : Plane) := by rw [dvec]; abel + have hcomm : ⟪dvec f x, (f x : Plane)⟫ = Bcoef f x := by rw [Bcoef, real_inner_comm] + have hexp : ‖(x : Plane)‖ ^ 2 + = ‖dvec f x‖ ^ 2 + 2 * ⟪dvec f x, (f x : Plane)⟫ + ‖(f x : Plane)‖ ^ 2 := by + rw [← hAdd, norm_add_sq_real] + rw [hxn, hcomm] at hexp + -- A + 2B + C = 0 + have hkey : Acoef f x + 2 * Bcoef f x + Ccoef f x = 0 := by + rw [eA, eC]; linear_combination -hexp + -- A + B = ⟪x, x - f x⟫ = 1 - ⟪x, f x⟫ ≥ 0 + have hApB : Acoef f x + Bcoef f x = ⟪(x : Plane), dvec f x⟫ := by + rw [Acoef, Bcoef, ← inner_add_left, hAdd] + have hxd : ⟪(x : Plane), dvec f x⟫ = 1 - ⟪(x : Plane), (f x : Plane)⟫ := by + rw [dvec, inner_sub_right, real_inner_self_eq_norm_sq, hxn]; norm_num + have hcs : ⟪(x : Plane), (f x : Plane)⟫ ≤ 1 := by + have hfn : ‖(f x : Plane)‖ ≤ 1 := by + have := (f x).2; rwa [mem_closedBall, dist_zero_right] at this + calc ⟪(x : Plane), (f x : Plane)⟫ ≤ ‖(x : Plane)‖ * ‖(f x : Plane)‖ := real_inner_le_norm _ _ + _ ≤ 1 * 1 := by rw [hxn]; exact mul_le_mul le_rfl hfn (norm_nonneg _) (by norm_num) + _ = 1 := by norm_num + have hAB : 0 ≤ Acoef f x + Bcoef f x := by rw [hApB, hxd]; linarith + -- disc = (A+B)², so √disc = A+B, t = 1 + have hdisc : discr f x = (Acoef f x + Bcoef f x) ^ 2 := by + rw [discr]; linear_combination (-Acoef f x) * hkey + have hsqrt : Real.sqrt (discr f x) = Acoef f x + Bcoef f x := by + rw [hdisc, Real.sqrt_sq hAB] + have ht1 : tparam f x = 1 := by + have hnum : -Bcoef f x + (Acoef f x + Bcoef f x) = Acoef f x := by ring + rw [tparam, hsqrt, hnum, div_self hA.ne'] + rw [rhoPt, ht1, one_smul, dvec]; abel + +/-! ### Continuity of the retraction -/ + +omit hf in +lemma continuous_fval : Continuous fun x : closedBall (0 : Plane) 1 => (f x : Plane) := + continuous_subtype_val.comp (map_continuous f) + +omit hf in +lemma continuous_dvec : Continuous (dvec f) := + continuous_subtype_val.sub (continuous_fval f) + +omit hf in +lemma continuous_Acoef : Continuous (Acoef f) := + (continuous_dvec f).inner (continuous_dvec f) + +omit hf in +lemma continuous_Bcoef : Continuous (Bcoef f) := + (continuous_fval f).inner (continuous_dvec f) + +omit hf in +lemma continuous_Ccoef : Continuous (Ccoef f) := + ((continuous_fval f).norm.pow 2).sub continuous_const + +omit hf in +lemma continuous_discr : Continuous (discr f) := + ((continuous_Bcoef f).pow 2).sub ((continuous_Acoef f).mul (continuous_Ccoef f)) + +lemma continuous_tparam : Continuous (tparam f) := + Continuous.div (((continuous_Bcoef f).neg).add (continuous_discr f).sqrt) + (continuous_Acoef f) (fun x => (Acoef_pos f hf x).ne') + +lemma continuous_rhoPt : Continuous (rhoPt f) := + (continuous_fval f).add ((continuous_tparam f hf).smul (continuous_dvec f)) + +end Disk + +/-- **Phase 3.** Brouwer's fixed point theorem for the closed unit disk. -/ +theorem brouwer_disk (f : C(closedBall (0 : Plane) 1, closedBall (0 : Plane) 1)) : + ∃ x, f x = x := by + by_contra hcon + push Not at hcon + have hf : ∀ x, (f x : Plane) ≠ (x : Plane) := fun x h => hcon x (Subtype.ext h) + have hρmem : ∀ x, rhoPt f x ∈ closedBall (0 : Plane) 1 := fun x => by + rw [mem_closedBall, dist_zero_right, norm_rhoPt f hf x] + refine no_retraction ⟨fun x => ⟨rhoPt f x, hρmem x⟩, (continuous_rhoPt f hf).subtype_mk _⟩ + (fun x => ?_) (fun x hx => ?_) + · change rhoPt f x ∈ sphere (0 : Plane) 1 + rw [mem_sphere_zero_iff_norm]; exact norm_rhoPt f hf x + · change rhoPt f x = (x : Plane) + exact rhoPt_of_mem_sphere f hf x hx + +/-! ## Phase 4 — general nonempty compact convex sets -/ + +/-- Transfer of the fixed-point property along a homeomorphism. -/ +theorem fixedPoint_transfer {X Y : Type*} [TopologicalSpace X] [TopologicalSpace Y] + (φ : X ≃ₜ Y) (hY : ∀ g : C(Y, Y), ∃ y, g y = y) (f : C(X, X)) : ∃ x, f x = x := by + obtain ⟨y, hy⟩ := hY ((⟨φ, φ.continuous⟩ : C(X, Y)).comp + (f.comp (⟨φ.symm, φ.symm.continuous⟩ : C(Y, X)))) + refine ⟨φ.symm y, ?_⟩ + have hfy : φ (f (φ.symm y)) = y := hy + calc f (φ.symm y) = φ.symm (φ (f (φ.symm y))) := (φ.symm_apply_apply _).symm + _ = φ.symm y := by rw [hfy] + +/-! ### Brouwer on an arbitrary closed ball (by rescaling) -/ + +/-- Rescaling homeomorphism `closedBall 0 R ≃ₜ closedBall 0 1` (`x ↦ R⁻¹ • x`). -/ +noncomputable def ballScale (R : ℝ) (hR : 0 < R) : + closedBall (0 : Plane) R ≃ₜ closedBall (0 : Plane) 1 where + toFun x := ⟨R⁻¹ • (x : Plane), by + rw [mem_closedBall, dist_zero_right, norm_smul, Real.norm_eq_abs, abs_of_pos (inv_pos.mpr hR)] + have hx : ‖(x : Plane)‖ ≤ R := by have := x.2; rwa [mem_closedBall, dist_zero_right] at this + rw [inv_mul_le_iff₀ hR]; simpa using hx⟩ + invFun y := ⟨R • (y : Plane), by + rw [mem_closedBall, dist_zero_right, norm_smul, Real.norm_eq_abs, abs_of_pos hR] + have hy : ‖(y : Plane)‖ ≤ 1 := by have := y.2; rwa [mem_closedBall, dist_zero_right] at this + nlinarith [norm_nonneg (y : Plane)]⟩ + left_inv x := by ext; simp [smul_smul, mul_inv_cancel₀ hR.ne'] + right_inv y := by ext; simp [smul_smul, inv_mul_cancel₀ hR.ne'] + -- `fun_prop` rather than term-mode `Continuous.subtype_mk`: since Mathlib + -- `905b9581`, unifying `Continuous.subtype_mk _ ?hp` against the `continuous_invFun` + -- field of this `where` block diverges (it exhausts even a 1M heartbeat budget in + -- `isDefEq`). Not a proof-size problem — hoisting the membership obligations into + -- standalone lemmas does not help; only avoiding that unification does. + continuous_toFun := by fun_prop + continuous_invFun := by fun_prop + +/-- **Brouwer for a closed ball of arbitrary positive radius.** -/ +theorem brouwer_ball (R : ℝ) (hR : 0 < R) + (f : C(closedBall (0 : Plane) R, closedBall (0 : Plane) R)) : ∃ x, f x = x := + fixedPoint_transfer (ballScale R hR) (fun g => brouwer_disk g) f + +/-! ### Nearest-point projection onto a nonempty compact convex set + +Any nonempty compact convex set `s ⊆ ℝ²` is a retract of any closed ball +containing it, via the (nonexpansive, hence continuous) nearest-point +projection. This yields Brouwer for all such `s` uniformly — in particular the +degenerate empty-interior case is handled without any dimension reduction. -/ + +section Projection + +variable {s : Set Plane} (hconv : Convex ℝ s) (hcomp : IsCompact s) (hne : s.Nonempty) + +/-- Nearest-point projection of `u` onto the nonempty compact convex set `s`. -/ +noncomputable def projFun (u : Plane) : Plane := + (exists_norm_eq_iInf_of_complete_convex hne hcomp.isComplete hconv u).choose + +lemma projFun_mem (u : Plane) : projFun hconv hcomp hne u ∈ s := + (exists_norm_eq_iInf_of_complete_convex hne hcomp.isComplete hconv u).choose_spec.1 + +/-- The variational characterization of the projection. -/ +lemma projFun_inner_le (u : Plane) {w : Plane} (hw : w ∈ s) : + ⟪u - projFun hconv hcomp hne u, w - projFun hconv hcomp hne u⟫ ≤ 0 := + (norm_eq_iInf_iff_real_inner_le_zero hconv (projFun_mem hconv hcomp hne u)).mp + (exists_norm_eq_iInf_of_complete_convex hne hcomp.isComplete hconv u).choose_spec.2 w hw + +/-- The projection fixes the points of `s`. -/ +lemma projFun_eq_self {u : Plane} (hu : u ∈ s) : projFun hconv hcomp hne u = u := by + have h := projFun_inner_le hconv hcomp hne u hu + rw [real_inner_self_eq_norm_sq] at h + have hz : u - projFun hconv hcomp hne u = 0 := by + have hn := norm_nonneg (u - projFun hconv hcomp hne u) + have : ‖u - projFun hconv hcomp hne u‖ = 0 := by nlinarith + rwa [norm_eq_zero] at this + rw [sub_eq_zero] at hz; exact hz.symm + +/-- The projection is nonexpansive. -/ +lemma projFun_dist_le (u₁ u₂ : Plane) : + ‖projFun hconv hcomp hne u₁ - projFun hconv hcomp hne u₂‖ ≤ ‖u₁ - u₂‖ := by + set v₁ := projFun hconv hcomp hne u₁ + set v₂ := projFun hconv hcomp hne u₂ + have hb1 : 0 ≤ ⟪u₁ - v₁, v₁ - v₂⟫ := by + have h := projFun_inner_le hconv hcomp hne u₁ (projFun_mem hconv hcomp hne u₂) + rw [show v₂ - v₁ = -(v₁ - v₂) by abel, inner_neg_right] at h + linarith + have hb2 : ⟪u₂ - v₂, v₁ - v₂⟫ ≤ 0 := + projFun_inner_le hconv hcomp hne u₂ (projFun_mem hconv hcomp hne u₁) + have decomp : ⟪u₁ - u₂, v₁ - v₂⟫ + = ⟪u₁ - v₁, v₁ - v₂⟫ - ⟪u₂ - v₂, v₁ - v₂⟫ + ⟪v₁ - v₂, v₁ - v₂⟫ := by + have hsum : u₁ - u₂ = (u₁ - v₁ - (u₂ - v₂)) + (v₁ - v₂) := by abel + rw [← inner_sub_left, ← inner_add_left, ← hsum] + have key : ‖v₁ - v₂‖ ^ 2 ≤ ⟪u₁ - u₂, v₁ - v₂⟫ := by + rw [decomp, ← real_inner_self_eq_norm_sq]; linarith + have hcs : ⟪u₁ - u₂, v₁ - v₂⟫ ≤ ‖u₁ - u₂‖ * ‖v₁ - v₂‖ := real_inner_le_norm _ _ + rcases (norm_nonneg (v₁ - v₂)).eq_or_lt with h0 | hpos + · rw [← h0]; exact norm_nonneg _ + · have hsq : ‖v₁ - v₂‖ * ‖v₁ - v₂‖ ≤ ‖u₁ - u₂‖ * ‖v₁ - v₂‖ := by + rw [← pow_two]; exact le_trans key hcs + exact le_of_mul_le_mul_right hsq hpos + +lemma continuous_projFun : Continuous (projFun hconv hcomp hne) := + (LipschitzWith.mk_one (fun u₁ u₂ => by + rw [dist_eq_norm, dist_eq_norm]; exact projFun_dist_le hconv hcomp hne u₁ u₂)).continuous + +end Projection + +/-- **The 2D Brouwer fixed point theorem.** Every continuous self-map of a +nonempty compact convex subset of `ℝ²` has a fixed point. This matches the +`JordanCurve.BrouwerFPT` interface used to discharge the Jordan curve theorem. + +The set `s` is contained in a closed ball `closedBall 0 R`; the nearest-point +projection `r : closedBall 0 R → s` is a continuous retraction, so the self-map +`incl ∘ f ∘ r` of the ball has (by `brouwer_ball`) a fixed point `x`, whose +coordinates lie in `s`, whence `r x` is a fixed point of `f`. -/ +theorem brouwerFPT : ∀ s : Set Plane, Convex ℝ s → IsCompact s → s.Nonempty → + ∀ f : C(s, s), ∃ x, f x = x := by + intro s hconv hcomp hne f + obtain ⟨R, hR, hsub⟩ := hcomp.isBounded.subset_closedBall_lt 0 0 + let incl : C(s, closedBall (0 : Plane) R) := + ⟨fun y => ⟨(y : Plane), hsub y.2⟩, continuous_subtype_val.subtype_mk _⟩ + let r : C(closedBall (0 : Plane) R, s) := + ⟨fun x => ⟨projFun hconv hcomp hne (x : Plane), projFun_mem hconv hcomp hne (x : Plane)⟩, + ((continuous_projFun hconv hcomp hne).comp continuous_subtype_val).subtype_mk _⟩ + obtain ⟨x, hx⟩ := brouwer_ball R hR (incl.comp (f.comp r)) + refine ⟨r x, ?_⟩ + apply Subtype.ext + have hval : (f (r x) : Plane) = (x : Plane) := congrArg Subtype.val hx + have hxs : (x : Plane) ∈ s := by rw [← hval]; exact (f (r x)).2 + have hrx : ((r x : s) : Plane) = (x : Plane) := projFun_eq_self hconv hcomp hne hxs + change (f (r x) : Plane) = ((r x : s) : Plane) + rw [hval, hrx] + +end Brouwer + +end JordanCurve + +end + +section + +/- +Copyright (c) 2026 Rado Kirov. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Rado Kirov +-/ +/-! +# Counting plumbing for the Jordan curve theorem + +Pure-topology lemmas, independent of any geometry, used to turn the statement +"the complement of the curve has exactly two connected components" into the +numerical fact `Nat.card (ConnectedComponents …) = 2`. + +The geometry side works with `connectedComponentIn S x` for `S : Set Plane` the +(open, nonempty) complement of the curve, and with two distinguished points in +the two components. This file provides: + +* `nat_card_connectedComponents_eq_two` — from two points in distinct components + together covering everything, conclude `Nat.card (ConnectedComponents X) = 2`. +* `connectedComponents_subtype_eq_iff` — the bridge identifying equality of + classes of subtype points with equality of `connectedComponentIn`. +-/ + +@[expose] public section + +namespace JordanCurve.Counting + +open Set + +variable {X : Type*} [TopologicalSpace X] + +/-- If a space `X` has two points `a`, `b` lying in distinct connected components +and every point's component is one of those two, then `X` has exactly two +connected components. -/ +theorem nat_card_connectedComponents_eq_two + (a b : X) (hab : ConnectedComponents.mk a ≠ ConnectedComponents.mk b) + (hcover : ∀ x : X, ConnectedComponents.mk x = ConnectedComponents.mk a + ∨ ConnectedComponents.mk x = ConnectedComponents.mk b) : + Nat.card (ConnectedComponents X) = 2 := by + rw [Nat.card_eq_two_iff] + refine ⟨ConnectedComponents.mk a, ConnectedComponents.mk b, hab, ?_⟩ + rw [eq_univ_iff_forall] + intro z + obtain ⟨x, rfl⟩ := ConnectedComponents.surjective_coe z + rcases hcover x with h | h + · exact mem_insert_iff.mpr (Or.inl h) + · exact mem_insert_iff.mpr (Or.inr (mem_singleton_iff.mpr h)) + +/-- Bridge lemma. For two points `x`, `y` of a subset `S`, the connected +components of the corresponding subtype points agree iff their +`connectedComponentIn S` subsets agree. This lets the geometry side, which +phrases things via `connectedComponentIn S`, feed +`nat_card_connectedComponents_eq_two`. -/ +theorem connectedComponents_subtype_eq_iff {S : Set X} {x y : X} + (hx : x ∈ S) (hy : y ∈ S) : + ConnectedComponents.mk (⟨x, hx⟩ : S) = ConnectedComponents.mk (⟨y, hy⟩ : S) + ↔ connectedComponentIn S x = connectedComponentIn S y := by + rw [connectedComponentIn_eq_image hx, connectedComponentIn_eq_image hy, + (image_injective.mpr Subtype.coe_injective).eq_iff, + ← ConnectedComponents.coe_eq_coe] + +end JordanCurve.Counting + +end + +end + +section + +/- +Copyright (c) 2026 Rado Kirov. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Rado Kirov +-/ +/-! +# The (continuous) Jordan Curve Theorem, via Brouwer — Maehara's proof + +Target (lean-eval `jordan_curve`, pure Mathlib): a continuous injection +`r : S¹ → ℝ²` has a complement with exactly two connected components. + +**Strategy (Maehara, *The Jordan curve theorem via the Brouwer fixed point +theorem*, Amer. Math. Monthly 1984).** Reduce to the Brouwer fixed point theorem, +taken here as an explicit interface `BrouwerFPT` (to be discharged from upstream +Mathlib — PR #36770 is landing Brouwer — or built separately). The reduction uses: + +* **Lemma 2 (crossing)** — two transversal paths in a rectangle must meet; proved + directly from Brouwer via an explicit map of the square to its boundary. +* **Lemma 1** — if `ℝ²∖J` is disconnected, each component has `J` as its + boundary; via the Tietze extension theorem + Brouwer. +* **Main construction** — using the farthest pair `a,b ∈ J` and the points + `l,m,p,q` on a vertical segment, show `ℝ²∖J` has exactly one bounded component; + with the unique unbounded component that gives exactly two. + +This file is imported by the top-level `JordanPick` module and is complete: +sorry-free, with `#print axioms JordanCurve.jordan_curve` reporting only +`[propext, Classical.choice, Quot.sound]`. +-/ + +@[expose] public section + +namespace JordanCurve + +open Metric Set Function Bornology + +/-- The plane `ℝ²` as used by the eval problem. -/ +abbrev Plane := EuclideanSpace ℝ (Fin 2) + +/-- **Brouwer fixed point theorem** (interface). Every continuous self-map of a +nonempty convex compact subset of the plane has a fixed point. Discharged +separately (upstream Mathlib PR #36770, or a standalone build). All of Maehara's +argument is `BrouwerFPT → …`. -/ +def BrouwerFPT : Prop := + ∀ s : Set Plane, Convex ℝ s → IsCompact s → s.Nonempty → + ∀ f : C(s, s), ∃ x, f x = x + +/-- **Lemma 2 (crossing lemma, Maehara).** Two continuous paths in a rectangle +`[a,b]×[c,d]`, one running from the left edge to the right edge (`h`), the other +from the bottom edge to the top edge (`v`), must meet. Proved directly from +Brouwer: if they were disjoint, the explicit normalized map +`F(s,t) = ((v₁ t − h₁ s)/N, (h₂ s − v₂ t)/N)` (with `N` the sup-norm of +`h s − v t`) sends the parameter square `[-1,1]²` to its boundary with no fixed +point. Coordinates are `p 0`, `p 1` of `p : Plane`. -/ +theorem crossing (hbr : BrouwerFPT) {a b c d : ℝ} (_hab : a ≤ b) (_hcd : c ≤ d) + (h v : ℝ → Plane) + (hh : ContinuousOn h (Icc (-1) 1)) (hv : ContinuousOn v (Icc (-1) 1)) + (hhE : ∀ t ∈ Icc (-1 : ℝ) 1, h t 0 ∈ Icc a b ∧ h t 1 ∈ Icc c d) + (hvE : ∀ t ∈ Icc (-1 : ℝ) 1, v t 0 ∈ Icc a b ∧ v t 1 ∈ Icc c d) + (hh1 : h (-1) 0 = a) (hh2 : h 1 0 = b) + (hv1 : v (-1) 1 = c) (hv2 : v 1 1 = d) : + ∃ s ∈ Icc (-1 : ℝ) 1, ∃ t ∈ Icc (-1 : ℝ) 1, h s = v t := by + by_contra hcon + push Not at hcon + -- `hcon : ∀ s ∈ Icc (-1) 1, ∀ t ∈ Icc (-1) 1, h s ≠ v t` + -- The parameter square `Q = [-1,1]²`. + set Q : Set Plane := {p | p 0 ∈ Icc (-1 : ℝ) 1 ∧ p 1 ∈ Icc (-1 : ℝ) 1} with hQdef + have hQ0 : ∀ p ∈ Q, p 0 ∈ Icc (-1 : ℝ) 1 := fun p hp => hp.1 + have hQ1 : ∀ p ∈ Q, p 1 ∈ Icc (-1 : ℝ) 1 := fun p hp => hp.2 + -- `Q` is convex. + have hconv : Convex ℝ Q := by + have c0 : Convex ℝ {p : Plane | p 0 ∈ Icc (-1 : ℝ) 1} := by + exact (convex_Icc (-1 : ℝ) 1).is_linear_preimage (EuclideanSpace.proj (0:Fin 2)).isLinear + have c1 : Convex ℝ {p : Plane | p 1 ∈ Icc (-1 : ℝ) 1} := by + exact (convex_Icc (-1 : ℝ) 1).is_linear_preimage (EuclideanSpace.proj (1:Fin 2)).isLinear + exact c0.inter c1 + -- `Q` is compact (closed and bounded in a finite-dimensional space). + have hcomp : IsCompact Q := by + apply Metric.isCompact_of_isClosed_isBounded + · have d0 : IsClosed {p : Plane | p 0 ∈ Icc (-1 : ℝ) 1} := + isClosed_Icc.preimage (EuclideanSpace.proj (0:Fin 2)).continuous + have d1 : IsClosed {p : Plane | p 1 ∈ Icc (-1 : ℝ) 1} := + isClosed_Icc.preimage (EuclideanSpace.proj (1:Fin 2)).continuous + exact d0.inter d1 + · apply (Metric.isBounded_closedBall (x := (0:Plane)) (r := 2)).subset + intro p hp + simp only [mem_closedBall, dist_zero_right] + have h0 : |p 0| ≤ 1 := abs_le.2 ⟨hp.1.1, hp.1.2⟩ + have h1 : |p 1| ≤ 1 := abs_le.2 ⟨hp.2.1, hp.2.2⟩ + rw [EuclideanSpace.norm_eq, Fin.sum_univ_two, Real.norm_eq_abs, Real.norm_eq_abs, + show (2 : ℝ) = Real.sqrt 4 by rw [show (4 : ℝ) = 2 ^ 2 by ring, Real.sqrt_sq]; norm_num] + apply Real.sqrt_le_sqrt + nlinarith [abs_nonneg (p 0), abs_nonneg (p 1)] + have hne0 : Q.Nonempty := by + refine ⟨0, ?_, ?_⟩ <;> + · simp only [mem_Icc, show (0:Plane) 0 = 0 from rfl, show (0:Plane) 1 = 0 from rfl] + norm_num + -- The sup-norm distance and the normalized boundary map. + let N : Plane → ℝ := fun p => max |h (p 0) 0 - v (p 1) 0| |h (p 0) 1 - v (p 1) 1| + let n0 : Plane → ℝ := fun p => (v (p 1) 0 - h (p 0) 0) / N p + let n1 : Plane → ℝ := fun p => (h (p 0) 1 - v (p 1) 1) / N p + let F : Plane → Plane := fun p => !₂[n0 p, n1 p] + have hNnn : ∀ p, 0 ≤ N p := fun p => le_trans (abs_nonneg _) (le_max_left _ _) + -- `N > 0` on `Q`: otherwise `h (p 0) = v (p 1)`, contradicting `hcon`. + have hNpos : ∀ p ∈ Q, 0 < N p := by + intro p hp + rcases (hNnn p).lt_or_eq with hlt | heq + · exact hlt + · exfalso + have hNz : N p = 0 := heq.symm + have hA0 : |h (p 0) 0 - v (p 1) 0| ≤ N p := le_max_left _ _ + have hB0 : |h (p 0) 1 - v (p 1) 1| ≤ N p := le_max_right _ _ + rw [hNz] at hA0 hB0 + have eA : h (p 0) 0 = v (p 1) 0 := by + have := le_antisymm hA0 (abs_nonneg _); rwa [abs_eq_zero, sub_eq_zero] at this + have eB : h (p 0) 1 = v (p 1) 1 := by + have := le_antisymm hB0 (abs_nonneg _); rwa [abs_eq_zero, sub_eq_zero] at this + refine hcon (p 0) (hQ0 p hp) (p 1) (hQ1 p hp) ?_ + ext i; fin_cases i + · exact eA + · exact eB + -- Continuity ingredients. + have hc0 : Continuous (fun p : Plane => p 0) := by fun_prop + have hc1 : Continuous (fun p : Plane => p 1) := by fun_prop + have mt0 : MapsTo (fun p : Plane => p 0) Q (Icc (-1 : ℝ) 1) := fun p hp => hQ0 p hp + have mt1 : MapsTo (fun p : Plane => p 1) Q (Icc (-1 : ℝ) 1) := fun p hp => hQ1 p hp + have hHx0 : ContinuousOn (fun p : Plane => h (p 0) 0) Q := + (hc0.comp_continuousOn hh).comp hc0.continuousOn mt0 + have hHx1 : ContinuousOn (fun p : Plane => h (p 0) 1) Q := + (hc1.comp_continuousOn hh).comp hc0.continuousOn mt0 + have hVx0 : ContinuousOn (fun p : Plane => v (p 1) 0) Q := + (hc0.comp_continuousOn hv).comp hc1.continuousOn mt1 + have hVx1 : ContinuousOn (fun p : Plane => v (p 1) 1) Q := + (hc1.comp_continuousOn hv).comp hc1.continuousOn mt1 + have hNcont : ContinuousOn N Q := + ContinuousOn.sup ((hHx0.sub hVx0).abs) ((hHx1.sub hVx1).abs) + have hn0c : ContinuousOn n0 Q := + (hVx0.sub hHx0).div hNcont (fun p hp => (hNpos p hp).ne') + have hn1c : ContinuousOn n1 Q := + (hHx1.sub hVx1).div hNcont (fun p hp => (hNpos p hp).ne') + have hFcont : ContinuousOn F Q := by + have hG : ContinuousOn (fun p : Plane => (![n0 p, n1 p] : Fin 2 → ℝ)) Q := by + rw [continuousOn_pi] + intro i; fin_cases i + · simpa using hn0c + · simpa using hn1c + exact (PiLp.continuous_toLp 2 (fun _ : Fin 2 => ℝ)).comp_continuousOn hG + -- `F` maps `Q` into `Q`: each coordinate has absolute value `≤ 1`. + have hbound : ∀ p ∈ Q, |n0 p| ≤ 1 ∧ |n1 p| ≤ 1 := by + intro p hp + have hN := hNpos p hp + refine ⟨?_, ?_⟩ + · change |(v (p 1) 0 - h (p 0) 0) / N p| ≤ 1 + rw [abs_div, abs_of_pos hN, div_le_one hN] + calc |v (p 1) 0 - h (p 0) 0| = |h (p 0) 0 - v (p 1) 0| := abs_sub_comm _ _ + _ ≤ N p := le_max_left _ _ + · change |(h (p 0) 1 - v (p 1) 1) / N p| ≤ 1 + rw [abs_div, abs_of_pos hN, div_le_one hN] + exact le_max_right _ _ + have hmaps : MapsTo F Q Q := by + intro p hp + obtain ⟨hb0, hb1⟩ := hbound p hp + exact ⟨mem_Icc.2 (abs_le.1 hb0), mem_Icc.2 (abs_le.1 hb1)⟩ + -- Package as a self-map of `Q` and apply Brouwer. + let f : C(Q, Q) := ⟨fun p => ⟨F p.1, hmaps p.2⟩, by + apply Continuous.subtype_mk; exact hFcont.domRestrict⟩ + obtain ⟨x, hx⟩ := hbr Q hconv hcomp hne0 f + set p₀ : Plane := (x : Plane) with hp0def + have hp0Q : p₀ ∈ Q := x.2 + have hN := hNpos p₀ hp0Q + have hfix : F p₀ = p₀ := congrArg Subtype.val hx + have hfix0 : p₀ 0 = (v (p₀ 1) 0 - h (p₀ 0) 0) / N p₀ := by + have e : (F p₀) 0 = (v (p₀ 1) 0 - h (p₀ 0) 0) / N p₀ := rfl + rw [← e, hfix] + have hfix1 : p₀ 1 = (h (p₀ 0) 1 - v (p₀ 1) 1) / N p₀ := by + have e : (F p₀) 1 = (h (p₀ 0) 1 - v (p₀ 1) 1) / N p₀ := rfl + rw [← e, hfix] + -- The fixed point lies on the boundary: `|p₀ 0| = 1` or `|p₀ 1| = 1`. + have a0 : |p₀ 0| = |h (p₀ 0) 0 - v (p₀ 1) 0| / N p₀ := by + conv_lhs => rw [hfix0] + rw [abs_div, abs_of_pos hN, abs_sub_comm] + have a1 : |p₀ 1| = |h (p₀ 0) 1 - v (p₀ 1) 1| / N p₀ := by + conv_lhs => rw [hfix1] + rw [abs_div, abs_of_pos hN] + have hbdry : |p₀ 0| = 1 ∨ |p₀ 1| = 1 := by + rcases le_total |h (p₀ 0) 1 - v (p₀ 1) 1| |h (p₀ 0) 0 - v (p₀ 1) 0| with hle | hle + · left + have hNA : N p₀ = |h (p₀ 0) 0 - v (p₀ 1) 0| := max_eq_left hle + rw [a0, hNA]; exact div_self (by rw [← hNA]; exact hN.ne') + · right + have hNB : N p₀ = |h (p₀ 0) 1 - v (p₀ 1) 1| := max_eq_right hle + rw [a1, hNB]; exact div_self (by rw [← hNB]; exact hN.ne') + -- Boundary contradiction in each of the four cases. + rcases hbdry with hb | hb + · rcases (abs_eq (by norm_num : (0 : ℝ) ≤ 1)).1 hb with hpos | hneg + · -- `p₀ 0 = 1`: then `h (p₀ 0) 0 = b ≥ v (p₀ 1) 0`, so `p₀ 0 ≤ 0`. + have hh0b : h (p₀ 0) 0 = b := by rw [hpos]; exact hh2 + have hvle : v (p₀ 1) 0 ≤ b := (hvE (p₀ 1) (hQ1 p₀ hp0Q)).1.2 + have : p₀ 0 ≤ 0 := by + rw [hfix0]; exact div_nonpos_of_nonpos_of_nonneg (by linarith) hN.le + linarith + · -- `p₀ 0 = -1`: then `h (p₀ 0) 0 = a ≤ v (p₀ 1) 0`, so `p₀ 0 ≥ 0`. + have hh0a : h (p₀ 0) 0 = a := by rw [hneg]; exact hh1 + have hvge : a ≤ v (p₀ 1) 0 := (hvE (p₀ 1) (hQ1 p₀ hp0Q)).1.1 + have : 0 ≤ p₀ 0 := by rw [hfix0]; exact div_nonneg (by linarith) hN.le + linarith + · rcases (abs_eq (by norm_num : (0 : ℝ) ≤ 1)).1 hb with hpos | hneg + · -- `p₀ 1 = 1`: then `v (p₀ 1) 1 = d ≥ h (p₀ 0) 1`, so `p₀ 1 ≤ 0`. + have hv1d : v (p₀ 1) 1 = d := by rw [hpos]; exact hv2 + have hhle : h (p₀ 0) 1 ≤ d := (hhE (p₀ 0) (hQ0 p₀ hp0Q)).2.2 + have : p₀ 1 ≤ 0 := by + rw [hfix1]; exact div_nonpos_of_nonpos_of_nonneg (by linarith) hN.le + linarith + · -- `p₀ 1 = -1`: then `v (p₀ 1) 1 = c ≤ h (p₀ 0) 1`, so `p₀ 1 ≥ 0`. + have hv1c : v (p₀ 1) 1 = c := by rw [hneg]; exact hv1 + have hhge : c ≤ h (p₀ 0) 1 := (hhE (p₀ 0) (hQ0 p₀ hp0Q)).2.1 + have : 0 ≤ p₀ 1 := by rw [hfix1]; exact div_nonneg (by linarith) hN.le + linarith + +/-! ### Foundational topology of a Jordan curve `J = range r` + +A Jordan curve is `J = range r` for `r : S¹ → ℝ²` continuous and injective. Here we +collect the purely topological facts about `J` and its complement that Maehara's +argument needs, independent of Brouwer: + +* `J` is compact and closed, its complement `Jᶜ` is open (tasks 1-2); +* `r` is a (closed) embedding, so `J ≃ₜ S¹` (task 3); +* `Jᶜ` has exactly one unbounded connected component (PRELIM (a)); +* each connected component of `Jᶜ` is open and path-connected (PRELIM (b)). +-/ + +/-- The plane has rank `2 > 1`; the engine for connectivity of ball-complements. -/ +theorem one_lt_rank_plane : 1 < Module.rank ℝ Plane := by + have h : Module.rank ℝ Plane = 2 := by + rw [← Module.finrank_eq_rank, finrank_euclideanSpace_fin]; norm_num + rw [h]; norm_num + +/-- The exterior `{x | R < ‖x‖}` of a closed ball is connected in the plane +(dimension `2 > 1`). Proved as the continuous image of the connected set +`sphere 0 1 ×ˢ Ioi R` under `(s, t) ↦ t • s`. -/ +theorem isConnected_compl_closedBall {R : ℝ} (hR : 0 ≤ R) : + IsConnected {x : Plane | R < ‖x‖} := by + have hconn : IsConnected ((sphere (0 : Plane) 1) ×ˢ (Ioi R)) := + (isConnected_sphere one_lt_rank_plane 0 zero_le_one).prod isConnected_Ioi + have himg := hconn.image (fun p : Plane × ℝ => p.2 • p.1) + (continuous_snd.smul continuous_fst).continuousOn + have hset : {x : Plane | R < ‖x‖} + = (fun p : Plane × ℝ => p.2 • p.1) '' ((sphere (0 : Plane) 1) ×ˢ (Ioi R)) := by + ext x + simp only [mem_ofPred_eq, mem_image, mem_prod, mem_Ioi, Prod.exists] + constructor + · intro hx + have hxpos : 0 < ‖x‖ := lt_of_le_of_lt hR hx + refine ⟨‖x‖⁻¹ • x, ‖x‖, ⟨?_, hx⟩, ?_⟩ + · rw [mem_sphere_zero_iff_norm, norm_smul, Real.norm_eq_abs, abs_inv, abs_norm, + inv_mul_cancel₀ (ne_of_gt hxpos)] + · rw [smul_smul, mul_inv_cancel₀ (ne_of_gt hxpos), one_smul] + · rintro ⟨s, t, ⟨hs, ht⟩, rfl⟩ + rw [mem_sphere_zero_iff_norm] at hs + rw [norm_smul, hs, mul_one, Real.norm_eq_abs, abs_of_pos (lt_of_le_of_lt hR ht)] + exact ht + rw [hset]; exact himg + +section JordanCurveData + +variable (r : sphere (0 : Plane) 1 → Plane) + +/-- **Task 1.** The Jordan curve `J = range r` is compact (continuous image of the +compact circle `S¹`). -/ +theorem jordanCurve_isCompact (hcont : Continuous r) : IsCompact (range r) := + isCompact_range hcont + +/-- **Task 1.** The Jordan curve `J = range r` is closed (compact in a Hausdorff +space). -/ +theorem jordanCurve_isClosed (hcont : Continuous r) : IsClosed (range r) := + (jordanCurve_isCompact r hcont).isClosed + +/-- **Task 2.** The complement of the Jordan curve is open. -/ +theorem isOpen_compl_jordanCurve (hcont : Continuous r) : IsOpen (range r)ᶜ := + (jordanCurve_isClosed r hcont).isOpen_compl + +/-- **Task 3.** A continuous injection of the compact circle into the plane is a +closed embedding. -/ +theorem r_isClosedEmbedding (hcont : Continuous r) (hinj : Injective r) : + Topology.IsClosedEmbedding r := + hcont.isClosedEmbedding hinj + +/-- **Task 3.** `r` is a topological embedding. -/ +theorem r_isEmbedding (hcont : Continuous r) (hinj : Injective r) : + Topology.IsEmbedding r := + (r_isClosedEmbedding r hcont hinj).isEmbedding + +/-- **Task 3.** The Jordan curve `J = range r` is homeomorphic to the circle `S¹`. -/ +noncomputable def jordanCurveHomeo (hcont : Continuous r) (hinj : Injective r) : + sphere (0 : Plane) 1 ≃ₜ (range r) := + (r_isEmbedding r hcont hinj).toHomeomorph + +/-- A radius `R ≥ 0` with `range r ⊆ closedBall 0 R` (compact ⇒ bounded). -/ +private theorem exists_jordanCurve_bound (hcont : Continuous r) : + ∃ R : ℝ, 0 ≤ R ∧ range r ⊆ closedBall (0 : Plane) R := by + obtain ⟨R, hR⟩ := (jordanCurve_isCompact r hcont).isBounded.subset_closedBall 0 + exact ⟨max R 0, le_max_right R 0, + hR.trans (closedBall_subset_closedBall (le_max_left R 0))⟩ + +/-- **PRELIM (a).** `Jᶜ` has an unbounded connected component: pick any point in the +cobounded exterior `{x | R < ‖x‖}` of a ball containing `J`; that exterior is +connected, lies in `Jᶜ`, and is unbounded, so the component containing it is +unbounded. -/ +theorem exists_unbounded_component (hcont : Continuous r) : + ∃ x ∈ (range r)ᶜ, ¬ IsBounded (connectedComponentIn (range r)ᶜ x) := by + obtain ⟨R, hR0, hsub⟩ := exists_jordanCurve_bound r hcont + have hEconn : IsConnected {z : Plane | R < ‖z‖} := isConnected_compl_closedBall hR0 + have hEsub : {z : Plane | R < ‖z‖} ⊆ (range r)ᶜ := by + intro z hz hzr + have := hsub hzr + rw [mem_closedBall_zero_iff] at this + exact absurd this (not_le.2 hz) + have hEnb : ¬ IsBounded {z : Plane | R < ‖z‖} := by + intro hb + obtain ⟨M, hM⟩ := hb.subset_closedBall 0 + obtain ⟨z, hz⟩ := NormedSpace.exists_lt_norm ℝ Plane (max M R) + have hzE : z ∈ {z : Plane | R < ‖z‖} := lt_of_le_of_lt (le_max_right M R) hz + have hzM := hM hzE + rw [mem_closedBall_zero_iff] at hzM + exact absurd (le_max_left M R) (not_le.2 (lt_of_lt_of_le hz hzM)) + obtain ⟨x, hxE⟩ := hEconn.nonempty + refine ⟨x, hEsub hxE, ?_⟩ + have hEcomp : {z : Plane | R < ‖z‖} ⊆ connectedComponentIn (range r)ᶜ x := + hEconn.isPreconnected.subset_connectedComponentIn hxE hEsub + exact fun hbdd => hEnb (hbdd.subset hEcomp) + +/-- **PRELIM (a).** Any two unbounded components of `Jᶜ` coincide: each unbounded +component must meet the connected cobounded exterior `{x | R < ‖x‖}`, which therefore +lies in a single component. -/ +theorem unbounded_component_unique (hcont : Continuous r) {x y : Plane} + (hxu : ¬ IsBounded (connectedComponentIn (range r)ᶜ x)) + (hyu : ¬ IsBounded (connectedComponentIn (range r)ᶜ y)) : + connectedComponentIn (range r)ᶜ x = connectedComponentIn (range r)ᶜ y := by + obtain ⟨R, hR0, hsub⟩ := exists_jordanCurve_bound r hcont + set E : Set Plane := {z : Plane | R < ‖z‖} with hE + have hEconn : IsConnected E := isConnected_compl_closedBall hR0 + have hEsub : E ⊆ (range r)ᶜ := by + intro z hz hzr + have := hsub hzr + rw [mem_closedBall_zero_iff] at this + exact absurd this (not_le.2 hz) + -- An unbounded component meets `E`. + have meetsE : ∀ z : Plane, + ¬ IsBounded (connectedComponentIn (range r)ᶜ z) → + ∃ w ∈ E, w ∈ connectedComponentIn (range r)ᶜ z := by + intro z hz + by_contra hcon + push Not at hcon + apply hz + have hsubBall : connectedComponentIn (range r)ᶜ z ⊆ closedBall (0 : Plane) R := by + intro w hw + rw [mem_closedBall_zero_iff] + by_contra hwn + exact hcon w (not_le.1 hwn) hw + exact isBounded_closedBall.subset hsubBall + obtain ⟨p, hpE⟩ := hEconn.nonempty + have hEcomp : E ⊆ connectedComponentIn (range r)ᶜ p := + hEconn.isPreconnected.subset_connectedComponentIn hpE hEsub + -- Both components equal the component of `p`. + obtain ⟨wx, hwxE, hwxc⟩ := meetsE x hxu + obtain ⟨wy, hwyE, hwyc⟩ := meetsE y hyu + have hx : connectedComponentIn (range r)ᶜ x = connectedComponentIn (range r)ᶜ p := by + rw [connectedComponentIn_eq hwxc, ← connectedComponentIn_eq (hEcomp hwxE)] + have hy : connectedComponentIn (range r)ᶜ y = connectedComponentIn (range r)ᶜ p := by + rw [connectedComponentIn_eq hwyc, ← connectedComponentIn_eq (hEcomp hwyE)] + rw [hx, hy] + +/-- **PRELIM (b).** Each connected component of `Jᶜ` is open (`Jᶜ` is open and the +plane is locally connected). -/ +theorem isOpen_component (hcont : Continuous r) (x : Plane) : + IsOpen (connectedComponentIn (range r)ᶜ x) := + (isOpen_compl_jordanCurve r hcont).connectedComponentIn + +/-- **PRELIM (b).** Each connected component of `Jᶜ` is path-connected (it is open +and connected in the locally path-connected plane). -/ +theorem isPathConnected_component (hcont : Continuous r) {x : Plane} + (hx : x ∈ (range r)ᶜ) : + IsPathConnected (connectedComponentIn (range r)ᶜ x) := + ((isOpen_component r hcont x).isConnected_iff_isPathConnected).mp + (isConnected_connectedComponentIn_iff.mpr hx) + +end JordanCurveData + +/-- **Maehara's Lemma 1 core: "an arc does not separate the plane".** If `A ⊆ ℝ²` +is an arc (homeomorphic to the unit interval `[0,1]`) then its complement `Aᶜ` is +connected. + +Proof (Brouwer + Tietze). If `Aᶜ` were disconnected it would have a bounded +component (there is a unique unbounded one, containing the cobounded exterior of a +disc through `A`); pick a point `o` in it. Since `A ≃ₜ [0,1]` and `[0,1]` is an +absolute retract (`TietzeExtension`), the identity `A → A` extends to a retraction +`ρ : ℝ² → A`. Glue `ρ` on the component `K ∋ o` with the identity elsewhere: the two +pieces agree on `frontier K ⊆ A` where `ρ = id`, giving a continuous +`Q : ℝ² → ℝ²∖{o}` that is the identity outside `K`. On a large disc `D = closedBall o R` +containing `A` and `K`, the map `z ↦ o - R·(Q z - o)/‖Q z - o‖` (antipodal radial +projection about `o`) is a fixed-point-free continuous self-map of `D`, contradicting +Brouwer. -/ +theorem arc_not_separates (hbr : BrouwerFPT) {A : Set Plane} + (φ : A ≃ₜ unitInterval) : IsConnected Aᶜ := by + classical + -- `A` is compact, hence closed, bounded, and `Aᶜ` is open. + have : CompactSpace ↥unitInterval := inferInstance + have hcsA : CompactSpace ↥A := φ.symm.compactSpace + have hAcpt : IsCompact A := isCompact_iff_compactSpace.mpr hcsA + have hAcl : IsClosed A := hAcpt.isClosed + have hAbd : IsBounded A := hAcpt.isBounded + have hAopen : IsOpen Aᶜ := hAcl.isOpen_compl + -- Tietze retraction `ρ : ℝ² → ℝ²`, `range ρ ⊆ A`, `ρ = id` on `A`. + have : TietzeExtension ↥A := TietzeExtension.of_homeo φ + obtain ⟨g, hg⟩ := ContinuousMap.exists_restrict_eq hAcl (ContinuousMap.id ↥A) + set ρ : Plane → Plane := fun x => (g x : Plane) with hρdef + have hρcont : Continuous ρ := continuous_subtype_val.comp g.continuous + have hρmem : ∀ x, ρ x ∈ A := fun x => (g x).2 + have hρid : ∀ a ∈ A, ρ a = a := by + intro a ha + have h1 := DFunLike.congr_fun hg ⟨a, ha⟩ + simp only [ContinuousMap.restrict_apply, ContinuousMap.id_apply] at h1 + change (g a : Plane) = a + exact congrArg Subtype.val h1 + -- A radius `R0 ≥ 0` with `A ⊆ closedBall 0 R0`; the cobounded exterior `E`. + obtain ⟨R0, hR0, hAsub⟩ : ∃ R0 : ℝ, 0 ≤ R0 ∧ A ⊆ closedBall (0 : Plane) R0 := by + obtain ⟨R, hR⟩ := hAbd.subset_closedBall (0 : Plane) + exact ⟨max R 0, le_max_right R 0, + hR.trans (closedBall_subset_closedBall (le_max_left R 0))⟩ + set E : Set Plane := {z : Plane | R0 < ‖z‖} with hEdef + have hEconn : IsConnected E := isConnected_compl_closedBall hR0 + have hEsub : E ⊆ Aᶜ := by + intro z hz hzA + have := hAsub hzA + rw [mem_closedBall_zero_iff] at this + exact absurd this (not_le.2 hz) + obtain ⟨p, hpE⟩ := hEconn.nonempty + have hpAc : p ∈ Aᶜ := hEsub hpE + have hEcomp : E ⊆ connectedComponentIn Aᶜ p := + hEconn.isPreconnected.subset_connectedComponentIn hpE hEsub + -- An unbounded component meets `E`. + have meetsE : ∀ z, z ∈ Aᶜ → ¬ IsBounded (connectedComponentIn Aᶜ z) → + ∃ w ∈ E, w ∈ connectedComponentIn Aᶜ z := by + intro z _ hzu + by_contra hcon + push Not at hcon + apply hzu + have hsubBall : connectedComponentIn Aᶜ z ⊆ closedBall (0 : Plane) R0 := by + intro w hw + rw [mem_closedBall_zero_iff] + by_contra hwn + exact hcon w (not_le.1 hwn) hw + exact isBounded_closedBall.subset hsubBall + refine ⟨⟨p, hpAc⟩, ?_⟩ + -- `IsPreconnected Aᶜ`: either every component is unbounded (⇒ connected), or a + -- bounded one exists (⇒ Brouwer contradiction). + by_cases hbdd : ∃ o ∈ Aᶜ, IsBounded (connectedComponentIn Aᶜ o) + · -- Bounded component: derive a contradiction via Brouwer. + exfalso + obtain ⟨o, hoAc, hKbd⟩ := hbdd + set K : Set Plane := connectedComponentIn Aᶜ o with hKdef + have hoK : o ∈ K := mem_connectedComponentIn hoAc + have hKopen : IsOpen K := hAopen.connectedComponentIn + have hoA : o ∉ A := hoAc + -- `frontier K ⊆ A`. + have hfrontier : frontier K ⊆ A := by + intro x hx + by_contra hxA + have hxAc : x ∈ Aᶜ := hxA + have hxcl : x ∈ closure K := frontier_subset_closure hx + have hxnK : x ∉ K := by + intro hxK + have : x ∈ K ∩ frontier K := ⟨hxK, hx⟩ + rw [hKopen.inter_frontier_eq] at this + exact absurd this (Set.notMem_empty x) + have hCxopen : IsOpen (connectedComponentIn Aᶜ x) := hAopen.connectedComponentIn + have hxCx : x ∈ connectedComponentIn Aᶜ x := mem_connectedComponentIn hxAc + rw [_root_.mem_closure_iff] at hxcl + obtain ⟨w, hwCx, hwK⟩ := hxcl _ hCxopen hxCx + have e1 : connectedComponentIn Aᶜ x = connectedComponentIn Aᶜ w := + connectedComponentIn_eq hwCx + rw [hKdef] at hwK + have e2 : connectedComponentIn Aᶜ o = connectedComponentIn Aᶜ w := + connectedComponentIn_eq hwK + rw [e1, ← e2] at hxCx + rw [← hKdef] at hxCx + exact hxnK hxCx + -- A radius `R > 0` with `A ⊆ ball o R` and `K ⊆ ball o R`. + obtain ⟨R, hRpos, hAR, hKR⟩ : + ∃ R : ℝ, 0 < R ∧ A ⊆ ball o R ∧ K ⊆ ball o R := by + obtain ⟨rA, hrA⟩ := hAbd.subset_closedBall o + obtain ⟨rK, hrK⟩ := hKbd.subset_closedBall o + refine ⟨max (max rA rK) 0 + 1, by positivity, ?_, ?_⟩ + · exact hrA.trans (closedBall_subset_ball + (lt_of_le_of_lt ((le_max_left rA rK).trans (le_max_left _ 0)) (lt_add_one _))) + · exact hrK.trans (closedBall_subset_ball + (lt_of_le_of_lt ((le_max_right rA rK).trans (le_max_left _ 0)) (lt_add_one _))) + -- The glued map `Q` and its properties. + set Q : Plane → Plane := K.piecewise ρ id with hQdef + have hQcont : Continuous Q := by + refine Continuous.piecewise ?_ hρcont continuous_id + intro a ha + show ρ a = id a + simpa using hρid a (hfrontier ha) + have hQA : ∀ z ∈ K, Q z = ρ z := fun z hz => by + rw [hQdef]; exact Set.piecewise_eq_of_mem _ _ _ hz + have hQid : ∀ z, z ∉ K → Q z = z := fun z hz => by + rw [hQdef]; exact Set.piecewise_eq_of_notMem _ _ _ hz + have hQne : ∀ z, Q z ≠ o := by + intro z + by_cases hz : z ∈ K + · rw [hQA z hz]; intro h; exact hoA (h ▸ hρmem z) + · rw [hQid z hz]; intro h; apply hz; rw [h]; exact hoK + -- The antipodal radial projection about `o`. + set Φ : Plane → Plane := fun z => o - R • (‖Q z - o‖⁻¹ • (Q z - o)) with hΦdef + have hΦcont : Continuous Φ := by + have h1 : Continuous (fun z => Q z - o) := hQcont.sub continuous_const + have h2 : Continuous (fun z => (‖Q z - o‖)⁻¹) := + h1.norm.inv₀ (fun z => by + simp only [ne_eq, norm_eq_zero, sub_eq_zero]; exact hQne z) + -- Each step is ascribed explicitly, and the scalar is passed to `const_smul` + -- rather than inferred: since Mathlib `905b9581`, `continuous_const.smul _` + -- leaves the scalar an undetermined metavariable, because unifying the `Pi`-level + -- `f • g` of `Continuous.smul` against `fun z ↦ R • …` no longer solves for it. + have h3 : Continuous (fun z => (‖Q z - o‖)⁻¹ • (Q z - o)) := h2.smul h1 + have h4 : Continuous (fun z => R • ((‖Q z - o‖)⁻¹ • (Q z - o))) := h3.const_smul R + exact continuous_const.sub h4 + have hΦsphere : ∀ z, ‖Φ z - o‖ = R := by + intro z + have hne : Q z - o ≠ 0 := sub_ne_zero.mpr (hQne z) + have hw1 : ‖‖Q z - o‖⁻¹ • (Q z - o)‖ = 1 := norm_smul_inv_norm hne + have he : Φ z - o = -(R • (‖Q z - o‖⁻¹ • (Q z - o))) := by + simp only [hΦdef]; abel + rw [he, norm_neg, norm_smul, Real.norm_eq_abs, abs_of_nonneg hRpos.le, hw1, + mul_one] + -- `Φ` maps `D = closedBall o R` into `D`. + set D : Set Plane := closedBall o R with hDdef + have hΦD : ∀ z ∈ D, Φ z ∈ D := by + intro z _ + rw [hDdef, mem_closedBall] + exact le_of_eq (by rw [dist_eq_norm]; exact hΦsphere z) + have hDconv : Convex ℝ D := convex_closedBall o R + have hDcomp : IsCompact D := isCompact_closedBall o R + have hDne : D.Nonempty := ⟨o, by rw [hDdef]; exact mem_closedBall_self hRpos.le⟩ + -- Package as a self-map of `D` and apply Brouwer. + let F : C(↥D, ↥D) := + ⟨fun z => ⟨Φ z.1, hΦD z.1 z.2⟩, + Continuous.subtype_mk (hΦcont.comp continuous_subtype_val) _⟩ + obtain ⟨x, hx⟩ := hbr D hDconv hDcomp hDne F + set x0 : Plane := (x : Plane) with hx0 + have hfix : Φ x0 = x0 := congrArg Subtype.val hx + have hx0R : ‖x0 - o‖ = R := by rw [← hfix]; exact hΦsphere x0 + have hx0nK : x0 ∉ K := by + intro hk + have hin := hKR hk + rw [mem_ball, dist_eq_norm, hx0R] at hin + exact lt_irrefl R hin + have hQx0 : Q x0 = x0 := hQid x0 hx0nK + have hcompute : Φ x0 = o - (x0 - o) := by + simp only [hΦdef] + rw [hQx0, hx0R, smul_smul, mul_inv_cancel₀ hRpos.ne', one_smul] + rw [hcompute] at hfix + have hz : x0 - o = 0 := by + have e : (2 : ℝ) • (x0 - o) = x0 - (o - (x0 - o)) := by rw [two_smul]; abel + have h20 : (2 : ℝ) • (x0 - o) = 0 := by rw [e, hfix]; abel + exact (smul_eq_zero.mp h20).resolve_left (by norm_num) + rw [hz, norm_zero] at hx0R + exact absurd hx0R.symm hRpos.ne' + · -- No bounded component: every point's component equals that of `p`. + push Not at hbdd + have hAeq : Aᶜ ⊆ connectedComponentIn Aᶜ p := by + intro x hx + obtain ⟨w, hwE, hwx⟩ := meetsE x hx (hbdd x hx) + have e1 : connectedComponentIn Aᶜ x = connectedComponentIn Aᶜ w := + connectedComponentIn_eq hwx + have e2 : connectedComponentIn Aᶜ p = connectedComponentIn Aᶜ w := + connectedComponentIn_eq (hEcomp hwE) + have hxc : x ∈ connectedComponentIn Aᶜ x := mem_connectedComponentIn hx + rw [e1, ← e2] at hxc + exact hxc + have hsup : connectedComponentIn Aᶜ p ⊆ Aᶜ := connectedComponentIn_subset Aᶜ p + rw [Set.Subset.antisymm hAeq hsup] + exact (isConnected_connectedComponentIn_iff.mpr hpAc).isPreconnected + +/-- **Maehara's Lemma 1.** If `ℝ²∖J` is disconnected, each component has the whole +Jordan curve `J = range r` as its boundary. We state (and prove) the sharper +unconditional form: for any `x` in the complement, the frontier of its connected +component equals `range r`. + +Proof (arc argument, via `arc_not_separates`). Write `U` for the component of `x`. +Always `frontier U ⊆ range r` (a boundary point outside the curve would lie in some +component of the open complement, forcing it into `U` — impossible for a frontier +point). If `frontier U ⊊ range r`, transport the proper closed set +`C = r⁻¹(frontier U) ⊊ S¹` to a proper closed arc `A₀` (via `exists_proper_arc`) and +push forward to `A = r '' A₀`, a proper arc with `frontier U ⊆ A ⊊ range r`. Then +`Aᶜ` is connected (`arc_not_separates`), yet `U` and `(closure U)ᶜ` split it into two +nonempty relatively open pieces (`x ∈ U`; a point of `range r ∖ A` lies in +`(closure U)ᶜ`) — contradicting connectedness. -/ +theorem component_boundary_eq (hbr : BrouwerFPT) + {r : sphere (0 : Plane) 1 → Plane} (hcont : Continuous r) (hinj : Injective r) + {x : Plane} (hx : x ∈ (range r)ᶜ) + (_hy : ∃ y ∈ (range r)ᶜ, + connectedComponentIn (range r)ᶜ y ≠ connectedComponentIn (range r)ᶜ x) : + frontier (connectedComponentIn (range r)ᶜ x) = range r := by + classical + set U := connectedComponentIn (range r)ᶜ x with hUdef + have hUopen : IsOpen U := isOpen_component r hcont x + have hxU : x ∈ U := mem_connectedComponentIn hx + -- **Step 1: `frontier U ⊆ range r`.** + have hsub : frontier U ⊆ range r := by + intro w hw + by_contra hwr + have hwc : w ∈ (range r)ᶜ := hwr + have hwcl : w ∈ closure U := frontier_subset_closure hw + have hWopen : IsOpen (connectedComponentIn (range r)ᶜ w) := + isOpen_component r hcont w + have hwW : w ∈ connectedComponentIn (range r)ᶜ w := mem_connectedComponentIn hwc + rw [_root_.mem_closure_iff] at hwcl + obtain ⟨v, hvW, hvU⟩ := hwcl _ hWopen hwW + have e1 : connectedComponentIn (range r)ᶜ w = connectedComponentIn (range r)ᶜ v := + connectedComponentIn_eq hvW + have e2 : U = connectedComponentIn (range r)ᶜ v := connectedComponentIn_eq hvU + have hwU : w ∈ U := by rw [e2, ← e1]; exact hwW + have : w ∈ U ∩ frontier U := ⟨hwU, hw⟩ + rw [hUopen.inter_frontier_eq] at this + exact absurd this (Set.notMem_empty w) + -- **Step 2: `frontier U = range r`.** + by_contra hne + have hssub : frontier U ⊂ range r := hsub.ssubset_of_ne hne + -- Pull `frontier U` back to a proper closed subset `C ⊊ S¹`. + set C : Set (sphere (0 : Plane) 1) := r ⁻¹' frontier U with hCdef + have hCclosed : IsClosed C := isClosed_frontier.preimage hcont + have hCne : C ≠ univ := by + intro h + apply hne + refine Set.Subset.antisymm hsub ?_ + intro w hw + obtain ⟨s, rfl⟩ := hw + have hsC : s ∈ C := h.symm ▸ mem_univ s + exact hsC + obtain ⟨A₀, hCA0, hA0ne, hA0closed, ⟨e0⟩⟩ := + JordanCurve.Arcs.exists_proper_arc hCclosed hCne + set A : Set Plane := r '' A₀ with hAdef + -- Compactness of the sphere subtype ⇒ of `A₀`, giving `A ≃ₜ unitInterval`. + have hcsSphere : CompactSpace (sphere (0 : Plane) 1) := + JordanCurve.Arcs.circleHomeoSphere.compactSpace + have hcsA0 : CompactSpace ↥A₀ := isCompact_iff_compactSpace.mp hA0closed.isCompact + have eImg : (↥A₀) ≃ₜ (↥A) := + Continuous.homeoOfEquivCompactToT2 (f := Equiv.Set.image r A₀ hinj) + (continuous_induced_rng.2 (hcont.comp continuous_subtype_val)) + have eA : A ≃ₜ unitInterval := eImg.symm.trans e0 + -- `A ⊆ range r`, `frontier U ⊆ A`, and a point of `range r ∖ A`. + have hAr : A ⊆ range r := by + rw [hAdef]; rintro _ ⟨s, _, rfl⟩; exact ⟨s, rfl⟩ + have hfrA : frontier U ⊆ A := by + rw [hAdef] + intro w hw + obtain ⟨s, rfl⟩ := hsub hw + exact ⟨s, hCA0 hw, rfl⟩ + obtain ⟨s₀, hs₀⟩ := (Set.ne_univ_iff_exists_notMem A₀).1 hA0ne + have hq'r : r s₀ ∈ range r := ⟨s₀, rfl⟩ + have hq'A : r s₀ ∉ A := by + rw [hAdef] + rintro ⟨s, hsA, hss⟩ + exact hs₀ (hinj hss ▸ hsA) + -- `Aᶜ` is connected (an arc does not separate the plane). + have hAconn : IsConnected Aᶜ := arc_not_separates hbr eA + -- The clopen (preconnectedness) contradiction. + have hUsub : U ⊆ (range r)ᶜ := connectedComponentIn_subset (range r)ᶜ x + have hUAc : U ⊆ Aᶜ := hUsub.trans (compl_subset_compl.mpr hAr) + have hxAc : x ∈ Aᶜ := hUAc hxU + have hVopen : IsOpen (closure U)ᶜ := isClosed_closure.isOpen_compl + have hcover : Aᶜ ⊆ U ∪ (closure U)ᶜ := by + intro w hwAc + by_cases hwcl : w ∈ closure U + · left + by_contra hwU + have hfr : w ∈ frontier U := by + refine ⟨hwcl, ?_⟩ + rw [hUopen.interior_eq]; exact hwU + exact hwAc (hfrA hfr) + · right; exact hwcl + have hqV : r s₀ ∈ (closure U)ᶜ := by + intro hcl + have hnU : r s₀ ∉ U := fun h => (hUsub h) hq'r + have hfr : r s₀ ∈ frontier U := by + refine ⟨hcl, ?_⟩ + rw [hUopen.interior_eq]; exact hnU + exact hq'A (hfrA hfr) + obtain ⟨w, _, hwU, hwV⟩ := + hAconn.isPreconnected U (closure U)ᶜ hUopen hVopen hcover + ⟨x, hxAc, hxU⟩ ⟨r s₀, hq'A, hqV⟩ + exact hwV (subset_closure hwU) + +/-! ## Normalization foundation (Maehara farthest-pair setup) + +We prepare Maehara's WLOG normalization: the diameter of `J = range r` is realized +by a farthest pair `a, b`, and a similarity homeomorphism `T` moves `a ↦ !₂[-1,0]`, +`b ↦ !₂[1,0]`, scaling every distance by the fixed factor `2 / dist a b`. This +reduces the geometric core (`step_A`, `step_B`) to *normalized* statements in which +the farthest pair sits at `(±1, 0)`. -/ + +/-- `complexLIE 1 = !₂[1,0]`. -/ +private lemma complexLIE_one : Arcs.complexLIE (1 : ℂ) = !₂[(1 : ℝ), 0] := by + have h := Complex.isometryOfOrthonormal_apply (EuclideanSpace.basisFun (Fin 2) ℝ) (1 : ℂ) + rw [show Arcs.complexLIE + = Complex.isometryOfOrthonormal (EuclideanSpace.basisFun (Fin 2) ℝ) from rfl, h] + simp only [Complex.one_re, Complex.one_im, one_smul, zero_smul, add_zero, + EuclideanSpace.basisFun_apply] + ext i; fin_cases i <;> + simp + +/-- `complexLIE (-1) = !₂[-1,0]`. -/ +private lemma complexLIE_negOne : Arcs.complexLIE (-1 : ℂ) = !₂[(-1 : ℝ), 0] := by + have h := Complex.isometryOfOrthonormal_apply (EuclideanSpace.basisFun (Fin 2) ℝ) (-1 : ℂ) + rw [show Arcs.complexLIE + = Complex.isometryOfOrthonormal (EuclideanSpace.basisFun (Fin 2) ℝ) from rfl, h] + simp only [Complex.neg_re, Complex.one_re, Complex.neg_im, Complex.one_im, neg_zero, + zero_smul, add_zero, EuclideanSpace.basisFun_apply] + ext i; fin_cases i <;> + simp + +/-- **Task 1 (farthest pair).** The compact curve `range r` contains a pair `a, b` +realizing the diameter of `J`, and `a ≠ b` (as `r` is injective on the sphere, which +has at least two points). -/ +theorem exists_farthest_pair {r : sphere (0 : Plane) 1 → Plane} + (hcont : Continuous r) (hinj : Injective r) : + ∃ a ∈ range r, ∃ b ∈ range r, + (∀ z ∈ range r, ∀ w ∈ range r, dist z w ≤ dist a b) ∧ a ≠ b := by + have hcpt : IsCompact (range r) := jordanCurve_isCompact r hcont + -- two explicit distinct points on the sphere, hence in `range r` + have hs1 : (!₂[(1 : ℝ), 0] : Plane) ∈ sphere (0 : Plane) 1 := by + rw [mem_sphere_zero_iff_norm, EuclideanSpace.norm_eq, Fin.sum_univ_two] + simp + have hs2 : (!₂[(-1 : ℝ), 0] : Plane) ∈ sphere (0 : Plane) 1 := by + rw [mem_sphere_zero_iff_norm, EuclideanSpace.norm_eq, Fin.sum_univ_two] + simp + set s1 : sphere (0 : Plane) 1 := ⟨!₂[(1 : ℝ), 0], hs1⟩ with hs1def + set s2 : sphere (0 : Plane) 1 := ⟨!₂[(-1 : ℝ), 0], hs2⟩ with hs2def + have hs12 : s1 ≠ s2 := by + intro h + rw [hs1def, hs2def, Subtype.mk_eq_mk] at h + have hh : (!₂[(1 : ℝ), 0] : Plane) 0 = (!₂[(-1 : ℝ), 0] : Plane) 0 := by rw [h] + norm_num [PiLp.toLp_apply] at hh + have hne : (range r).Nonempty := ⟨r s1, mem_range_self _⟩ + have hprod : IsCompact ((range r) ×ˢ (range r)) := hcpt.prod hcpt + have hpne : ((range r) ×ˢ (range r)).Nonempty := hne.prod hne + obtain ⟨⟨a, b⟩, hmem, hmax⟩ := + hprod.exists_isMaxOn hpne + (continuous_dist.continuousOn (s := (range r) ×ˢ (range r))) + rw [mem_prod] at hmem + refine ⟨a, hmem.1, b, hmem.2, ?_, ?_⟩ + · intro z hz w hw + exact isMaxOn_iff.mp hmax (z, w) (mem_prod.mpr ⟨hz, hw⟩) + · intro hEq + have hd0 : dist a b = 0 := by rw [hEq, dist_self] + have hle : dist (r s1) (r s2) ≤ dist a b := + isMaxOn_iff.mp hmax (r s1, r s2) (mem_prod.mpr ⟨mem_range_self _, mem_range_self _⟩) + rw [hd0] at hle + exact hs12 (hinj (eq_of_dist_eq_zero (le_antisymm hle dist_nonneg))) + +/-- **Task 2 (similarity normalization).** Given `a ≠ b` on the plane there is a +similarity homeomorphism `T : Plane ≃ₜ Plane` scaling every distance by the fixed +positive factor `2 / dist a b`, with `T a = !₂[-1,0]` and `T b = !₂[1,0]`. -/ +theorem exists_similarity {a b : Plane} (hab : a ≠ b) : + ∃ T : Plane ≃ₜ Plane, + (∀ z w, dist (T z) (T w) = (2 / dist a b) * dist z w) ∧ + T a = !₂[(-1 : ℝ), 0] ∧ T b = !₂[(1 : ℝ), 0] := by + set L := Arcs.complexLIE with hL + set A : ℂ := L.symm a with hA + set B : ℂ := L.symm b with hB + have hBAne : B ≠ A := by + intro h; exact hab (L.symm.injective h).symm + have hABne : B - A ≠ 0 := sub_ne_zero.mpr hBAne + set α : ℂ := 2 / (B - A) with hα + have hαne : α ≠ 0 := by rw [hα]; exact div_ne_zero two_ne_zero hABne + set β : ℂ := -(A + B) / (B - A) with hβ + set e : ℂ ≃ₜ ℂ := (Homeomorph.mulLeft₀ α hαne).trans (Homeomorph.addRight β) with he + have he_apply : ∀ w : ℂ, e w = α * w + β := by + intro w + rw [he] + simp only [Homeomorph.trans_apply, Homeomorph.coe_mulLeft₀, Homeomorph.coe_addRight] + set T : Plane ≃ₜ Plane := (L.symm.toHomeomorph).trans (e.trans L.toHomeomorph) with hT + have hT_apply : ∀ w : Plane, T w = L (α * L.symm w + β) := by + intro w + rw [hT] + simp only [Homeomorph.trans_apply, LinearIsometryEquiv.coe_toHomeomorph, he_apply] + refine ⟨T, ?_, ?_, ?_⟩ + · -- distance scaling + intro z w + rw [hT_apply, hT_apply, L.dist_map, dist_eq_norm, + show (α * L.symm z + β) - (α * L.symm w + β) = α * (L.symm z - L.symm w) by ring, + norm_mul, ← dist_eq_norm, L.symm.dist_map] + have hαnorm : ‖α‖ = 2 / dist a b := by + rw [hα, norm_div] + rw [show ‖(2:ℂ)‖ = 2 by norm_num] + congr 1 + rw [hB, hA, ← dist_eq_norm, L.symm.dist_map, dist_comm] + rw [hαnorm] + · -- T a = !₂[-1,0] + have hval : α * A + β = -1 := by rw [hα, hβ]; field_simp; ring + rw [hT_apply, ← hA, hval, hL]; exact complexLIE_negOne + · -- T b = !₂[1,0] + have hval : α * B + β = 1 := by rw [hα, hβ]; field_simp; ring + rw [hT_apply, ← hB, hval, hL]; exact complexLIE_one + +/-- Boundedness is preserved and reflected by a map scaling all distances by a fixed +positive factor. -/ +theorem isBounded_image_scaling {T : Plane → Plane} {c : ℝ} (hc : 0 < c) + (hscale : ∀ z w, dist (T z) (T w) = c * dist z w) (K : Set Plane) : + IsBounded (T '' K) ↔ IsBounded K := by + simp only [Metric.isBounded_iff] + constructor + · rintro ⟨C, hC⟩ + refine ⟨C / c, fun x hx y hy => ?_⟩ + have h := hC (mem_image_of_mem T hx) (mem_image_of_mem T hy) + rw [hscale] at h + rw [le_div_iff₀ hc, mul_comm]; exact h + · rintro ⟨C, hC⟩ + refine ⟨c * C, ?_⟩ + rintro _ ⟨x, hx, rfl⟩ _ ⟨y, hy, rfl⟩ + rw [hscale] + exact mul_le_mul_of_nonneg_left (hC hx hy) hc.le + +/-! ### Setup lemmas for the normalized frame (Steps A, B) -/ + +/-- Squared Euclidean distance in `Plane` expanded in coordinates. -/ +private lemma dist_sq_coord (z w : Plane) : + dist z w ^ 2 = (z 0 - w 0) ^ 2 + (z 1 - w 1) ^ 2 := by + rw [EuclideanSpace.dist_eq, Real.sq_sqrt (by positivity)] + simp [Fin.sum_univ_two, Real.dist_eq, sq_abs] + +/-- **Setup 1 (the "lens").** In the normalized frame with the farthest pair at +`a = !₂[-1,0]`, `b = !₂[1,0]` and diameter `2` (`hfar`), the whole curve lies in +the rectangle `[-1,1] × [-2,2]`. For `z ∈ range r`, both `dist z a ≤ 2` and +`dist z b ≤ 2`, i.e. `(z 0+1)²+(z 1)² ≤ 4` and `(z 0-1)²+(z 1)² ≤ 4`; these force +`z 0 ∈ [-1,1]` and (adding them) `(z 0)²+(z 1)² ≤ 3`, hence `z 1 ∈ [-2,2]`. -/ +theorem normalized_subset_rectangle + {r : sphere (0 : Plane) 1 → Plane} + (hm : (!₂[(-1 : ℝ), 0] : Plane) ∈ range r) (hp : (!₂[(1 : ℝ), 0] : Plane) ∈ range r) + (hfar : ∀ z ∈ range r, ∀ w ∈ range r, dist z w ≤ 2) : + range r ⊆ {p : Plane | p 0 ∈ Icc (-1 : ℝ) 1 ∧ p 1 ∈ Icc (-2 : ℝ) 2} := by + intro z hz + have hza : dist z (!₂[(-1 : ℝ), 0]) ≤ 2 := hfar z hz _ hm + have hzb : dist z (!₂[(1 : ℝ), 0]) ≤ 2 := hfar z hz _ hp + have hza2 : dist z (!₂[(-1 : ℝ), 0]) ^ 2 ≤ 4 := by + nlinarith [dist_nonneg (x := z) (y := (!₂[(-1 : ℝ), 0] : Plane))] + have hzb2 : dist z (!₂[(1 : ℝ), 0]) ^ 2 ≤ 4 := by + nlinarith [dist_nonneg (x := z) (y := (!₂[(1 : ℝ), 0] : Plane))] + rw [dist_sq_coord] at hza2 hzb2 + have ea0 : (!₂[(-1 : ℝ), 0] : Plane) 0 = -1 := by simp + have ea1 : (!₂[(-1 : ℝ), 0] : Plane) 1 = 0 := by simp + have eb0 : (!₂[(1 : ℝ), 0] : Plane) 0 = 1 := by simp + have eb1 : (!₂[(1 : ℝ), 0] : Plane) 1 = 0 := by simp + rw [ea0, ea1] at hza2 + rw [eb0, eb1] at hzb2 + simp only [mem_ofPred_eq, mem_Icc] + refine ⟨⟨?_, ?_⟩, ⟨?_, ?_⟩⟩ + · nlinarith [sq_nonneg (z 1)] + · nlinarith [sq_nonneg (z 1)] + · nlinarith [sq_nonneg (z 0), sq_nonneg (z 1 - 2), sq_nonneg (z 1 + 2)] + · nlinarith [sq_nonneg (z 0), sq_nonneg (z 1 - 2), sq_nonneg (z 1 + 2)] + +/-- **`arc_path` (reusable reparametrization).** A path in a set `S ⊆ Plane` +joining `a` to `b` can be reparametrized to a map `h : ℝ → Plane` on the interval +`[-1,1]`, with `h (-1) = a`, `h 1 = b`, continuous on `[-1,1]`, and staying in `S`. +This is exactly the shape required by the `crossing` lemma for the horizontal path +(endpoints on the left/right edges of a rectangle). -/ +theorem arc_path {S : Set Plane} {a b : Plane} (hj : JoinedIn S a b) : + ∃ h : ℝ → Plane, ContinuousOn h (Icc (-1 : ℝ) 1) ∧ h (-1) = a ∧ h 1 = b ∧ + ∀ t ∈ Icc (-1 : ℝ) 1, h t ∈ S := by + refine ⟨fun t => hj.somePath (Set.projIcc 0 1 (by norm_num) ((t + 1) / 2)), + ?_, ?_, ?_, ?_⟩ + · exact (hj.somePath.continuous.comp + (continuous_projIcc.comp (by fun_prop))).continuousOn + · change hj.somePath _ = a + rw [show Set.projIcc (0 : ℝ) 1 (by norm_num) (((-1 : ℝ) + 1) / 2) = 0 from + Subtype.ext (by rw [Set.coe_projIcc]; norm_num)] + exact hj.somePath.source + · change hj.somePath _ = b + rw [show Set.projIcc (0 : ℝ) 1 (by norm_num) (((1 : ℝ) + 1) / 2) = 1 from + Subtype.ext (by rw [Set.coe_projIcc]; norm_num)] + exact hj.somePath.target + · intro t _; exact hj.somePath_mem _ + +/-- **Setup 2 (segment meets curve).** The vertical segment from `s = !₂[0,-2]` to +`n = !₂[0,2]` meets the curve. Proof via the `crossing` lemma with horizontal path +`h` a curve-path from `a = !₂[-1,0]` to `b = !₂[1,0]` (the curve is path-connected, +reparametrized by `arc_path`) staying in the rectangle `[-1,1]×[-2,2]` +(`normalized_subset_rectangle`), and vertical path `v t = !₂[0, 2t]` running from the +bottom edge `y=-2` to the top edge `y=2`. Delivers a curve point on the vertical +axis. -/ +theorem segment_meets_curve (hbr : BrouwerFPT) + {r : sphere (0 : Plane) 1 → Plane} (hcont : Continuous r) (_hinj : Injective r) + (hm : (!₂[(-1 : ℝ), 0] : Plane) ∈ range r) (hp : (!₂[(1 : ℝ), 0] : Plane) ∈ range r) + (hfar : ∀ z ∈ range r, ∀ w ∈ range r, dist z w ≤ 2) : + ∃ p ∈ range r, p 0 = 0 ∧ p 1 ∈ Icc (-2 : ℝ) 2 := by + -- the curve is path-connected (continuous image of the path-connected circle) + have hsp : IsPathConnected (sphere (0:Plane) 1) := + isPathConnected_sphere one_lt_rank_plane 0 (by norm_num) + have : PathConnectedSpace ↥(sphere (0:Plane) 1) := + isPathConnected_iff_pathConnectedSpace.mp hsp + have h1 : IsPathConnected (univ : Set ↥(sphere (0:Plane) 1)) := + pathConnectedSpace_iff_univ.mp ‹_› + have hpc : IsPathConnected (range r) := by + have := h1.image hcont; rwa [image_univ] at this + have hjoin : JoinedIn (range r) (!₂[(-1 : ℝ), 0]) (!₂[(1 : ℝ), 0]) := + hpc.joinedIn _ hm _ hp + obtain ⟨h, hcontOn, hh1, hh2, hhmem⟩ := arc_path hjoin + have hrect := normalized_subset_rectangle hm hp hfar + -- vertical path `v t = !₂[0, 2t]` + set v : ℝ → Plane := fun t => !₂[(0 : ℝ), 2 * t] with hvdef + have hvcont : ContinuousOn v (Icc (-1 : ℝ) 1) := by + apply Continuous.continuousOn + apply (PiLp.continuous_toLp 2 (fun _ : Fin 2 => ℝ)).comp + refine continuous_pi (fun i => ?_) + fin_cases i <;> simp only [Nat.succ_eq_add_one, Nat.reduceAdd, Fin.zero_eta, Fin.isValue, + Matrix.cons_val_zero, + Fin.mk_one, Matrix.cons_val_one, Matrix.cons_val_fin_one]<;> fun_prop + have hv0 : ∀ t : ℝ, v t 0 = 0 := by intro t; simp [hvdef] + have hv1 : ∀ t : ℝ, v t 1 = 2 * t := by intro t; simp [hvdef] + -- edge/rectangle conditions + have hhE : ∀ t ∈ Icc (-1 : ℝ) 1, h t 0 ∈ Icc (-1 : ℝ) 1 ∧ h t 1 ∈ Icc (-2 : ℝ) 2 := + fun t ht => hrect (hhmem t ht) + have hvE : ∀ t ∈ Icc (-1 : ℝ) 1, v t 0 ∈ Icc (-1 : ℝ) 1 ∧ v t 1 ∈ Icc (-2 : ℝ) 2 := by + intro t ht + rw [mem_Icc] at ht + refine ⟨?_, ?_⟩ + · rw [hv0]; simp + · rw [hv1, mem_Icc]; constructor <;> nlinarith [ht.1, ht.2] + have hh1' : h (-1) 0 = -1 := by rw [hh1]; simp + have hh2' : h 1 0 = 1 := by rw [hh2]; simp + have hv1e : v (-1) 1 = -2 := by rw [hv1]; norm_num + have hv2e : v 1 1 = 2 := by rw [hv1]; norm_num + obtain ⟨s, hs, t, ht, heq⟩ := crossing hbr (by norm_num : (-1 : ℝ) ≤ 1) + (by norm_num : (-2 : ℝ) ≤ 2) h v hcontOn hvcont hhE hvE hh1' hh2' hv1e hv2e + refine ⟨h s, hhmem s hs, ?_, ?_⟩ + · rw [heq, hv0] + · rw [heq]; exact (hvE t ht).2 + +/-- **Setup 3 (top of the axis).** The intersection of the curve with the vertical +axis `Jax = {p ∈ range r | p 0 = 0}` is compact (closed subset of the compact +curve) and nonempty (`segment_meets_curve`), hence attains its `y`-maximum at some +point `l ∈ range r` with `l 0 = 0`. -/ +theorem exists_ymax_on_axis (hbr : BrouwerFPT) + {r : sphere (0 : Plane) 1 → Plane} (hcont : Continuous r) (hinj : Injective r) + (hm : (!₂[(-1 : ℝ), 0] : Plane) ∈ range r) (hp : (!₂[(1 : ℝ), 0] : Plane) ∈ range r) + (hfar : ∀ z ∈ range r, ∀ w ∈ range r, dist z w ≤ 2) : + ∃ l ∈ range r, l 0 = 0 ∧ ∀ p ∈ range r, p 0 = 0 → p 1 ≤ l 1 := by + set Jax : Set Plane := {p ∈ range r | p 0 = 0} with hJax + have hsub : Jax ⊆ range r := fun p hp => hp.1 + have hJaxcl : IsClosed Jax := + (jordanCurve_isClosed r hcont).inter (isClosed_eq (by fun_prop) continuous_const) + have hJaxcpt : IsCompact Jax := + (jordanCurve_isCompact r hcont).of_isClosed_subset hJaxcl hsub + have hne : Jax.Nonempty := by + obtain ⟨p, hpr, hp0, _⟩ := segment_meets_curve hbr hcont hinj hm hp hfar + exact ⟨p, hpr, hp0⟩ + have hcy : Continuous (fun p : Plane => p 1) := by fun_prop + obtain ⟨l, hlJax, hlmax⟩ := + hJaxcpt.exists_isMaxOn hne (f := fun p : Plane => p 1) hcy.continuousOn + refine ⟨l, hlJax.1, hlJax.2, ?_⟩ + intro p hpr hp0 + exact hlmax (show p ∈ Jax from ⟨hpr, hp0⟩) + +/-- **Image of an arc under the subtype coercion is again an arc.** If `A ⊆ ↥K` +(a subset of a subtype of `Plane`) is homeomorphic to `unitInterval`, then its image +`(↑) '' A ⊆ Plane` is homeomorphic to `unitInterval`. The composite coercion +`↥A → Plane` is a continuous injection from a compact space to a Hausdorff space, +hence a (closed) embedding, so `↥A ≃ₜ ↥(range …) = ↥((↑) '' A)`. -/ +private lemma planar_arc_homeo {K : Set Plane} {A : Set ↥K} + (e : A ≃ₜ unitInterval) : Nonempty (((↑) '' A : Set Plane) ≃ₜ unitInterval) := by + have : CompactSpace ↥A := e.symm.compactSpace + let k : ↥A → Plane := fun a => ((a : ↥K) : Plane) + have hkc : Continuous k := continuous_subtype_val.comp continuous_subtype_val + have hki : Injective k := Subtype.coe_injective.comp Subtype.coe_injective + have hemb : Topology.IsEmbedding k := (hkc.isClosedEmbedding hki).isEmbedding + have hrange : Set.range k = ((↑) '' A : Set Plane) := by + ext y + constructor + · rintro ⟨a, rfl⟩; exact ⟨a.1, a.2, rfl⟩ + · rintro ⟨x, hx, rfl⟩; exact ⟨⟨x, hx⟩, rfl⟩ + exact ⟨((Homeomorph.setCongr hrange).symm.trans hemb.toHomeomorph.symm).trans e⟩ + +/-- **Setup 4 (arc split at `a`, `b`).** The curve `range r` splits at the farthest +pair `a = !₂[-1,0]`, `b = !₂[1,0]` into two closed arcs `J_n`, `J_s ⊆ Plane`, each +`≃ₜ unitInterval`, with `J_n ∪ J_s = range r` and `J_n ∩ J_s = {a, b}`, labelled so +that the `y`-topmost axis point `l` lies in `J_n`. -/ +theorem jordan_arcs (hbr : BrouwerFPT) + {r : sphere (0 : Plane) 1 → Plane} (hcont : Continuous r) (hinj : Injective r) + (hm : (!₂[(-1 : ℝ), 0] : Plane) ∈ range r) (hp : (!₂[(1 : ℝ), 0] : Plane) ∈ range r) + (hfar : ∀ z ∈ range r, ∀ w ∈ range r, dist z w ≤ 2) : + ∃ J_n J_s : Set Plane, + IsClosed J_n ∧ IsClosed J_s ∧ + J_n ∪ J_s = range r ∧ + J_n ∩ J_s = {!₂[(-1 : ℝ), 0], !₂[(1 : ℝ), 0]} ∧ + Nonempty (J_n ≃ₜ unitInterval) ∧ Nonempty (J_s ≃ₜ unitInterval) ∧ + IsPathConnected (J_n \ {!₂[(-1 : ℝ), 0], !₂[(1 : ℝ), 0]}) ∧ + IsPathConnected (J_s \ {!₂[(-1 : ℝ), 0], !₂[(1 : ℝ), 0]}) ∧ + ∃ l ∈ range r, l 0 = 0 ∧ (∀ p ∈ range r, p 0 = 0 → p 1 ≤ l 1) ∧ l ∈ J_n := by + obtain ⟨l, hlr, hl0, hlmax⟩ := exists_ymax_on_axis hbr hcont hinj hm hp hfar + set J := jordanCurveHomeo r hcont hinj with hJdef + have hab : (!₂[(-1 : ℝ), 0] : Plane) ≠ !₂[(1 : ℝ), 0] := by + intro h + have h0 : (!₂[(-1 : ℝ), 0] : Plane) 0 = (!₂[(1 : ℝ), 0] : Plane) 0 := by rw [h] + rw [show (!₂[(-1 : ℝ), 0] : Plane) 0 = -1 from by simp, + show (!₂[(1 : ℝ), 0] : Plane) 0 = 1 from by simp] at h0 + norm_num at h0 + set x : sphere (0 : Plane) 1 := J.symm ⟨_, hm⟩ with hxdef + set y : sphere (0 : Plane) 1 := J.symm ⟨_, hp⟩ with hydef + have hxy : x ≠ y := by + intro h + exact hab (Subtype.ext_iff.mp (J.symm.injective h)) + obtain ⟨A₁, A₂, hc1, hc2, hu, hi, ⟨e1⟩, ⟨e2⟩, hpcA1, hpcA2⟩ := Arcs.jordanCurve_split J hxy + -- transported endpoints: `J x = ⟨a,hm⟩`, `J y = ⟨b,hp⟩` + have hJx : J x = ⟨_, hm⟩ := J.apply_symm_apply _ + have hJy : J y = ⟨_, hp⟩ := J.apply_symm_apply _ + -- planar images of the two arcs + set B₁ : Set Plane := (↑) '' A₁ with hB1 + set B₂ : Set Plane := (↑) '' A₂ with hB2 + have hBu : B₁ ∪ B₂ = range r := by + rw [hB1, hB2, ← Set.image_union, hu, Set.image_univ, Subtype.range_coe] + have hBi : B₁ ∩ B₂ = {!₂[(-1 : ℝ), 0], !₂[(1 : ℝ), 0]} := by + rw [hB1, hB2, ← Set.image_inter Subtype.coe_injective, hi, hJx, hJy, + Set.image_pair] + have hn1 : Nonempty (B₁ ≃ₜ unitInterval) := planar_arc_homeo e1 + have hn2 : Nonempty (B₂ ≃ₜ unitInterval) := planar_arc_homeo e2 + have hcl1 : IsClosed B₁ := + (isCompact_iff_compactSpace.mpr hn1.some.symm.compactSpace).isClosed + have hcl2 : IsClosed B₂ := + (isCompact_iff_compactSpace.mpr hn2.some.symm.compactSpace).isClosed + -- transport path-connectedness of the arc interiors down to the plane + have hpcB1 : IsPathConnected (B₁ \ {!₂[(-1 : ℝ), 0], !₂[(1 : ℝ), 0]}) := by + have h := hpcA1.image (continuous_subtype_val (p := fun z => z ∈ range r)) + rwa [Set.image_sdiff Subtype.coe_injective, Set.image_insert_eq, Set.image_singleton, + hJx, hJy] at h + have hpcB2 : IsPathConnected (B₂ \ {!₂[(-1 : ℝ), 0], !₂[(1 : ℝ), 0]}) := by + have h := hpcA2.image (continuous_subtype_val (p := fun z => z ∈ range r)) + rwa [Set.image_sdiff Subtype.coe_injective, Set.image_insert_eq, Set.image_singleton, + hJx, hJy] at h + -- `l` lies in `range r = B₁ ∪ B₂`; label the containing arc `J_n` + have hlB : l ∈ B₁ ∪ B₂ := by rw [hBu]; exact hlr + rcases hlB with hl | hl + · exact ⟨B₁, B₂, hcl1, hcl2, hBu, hBi, hn1, hn2, hpcB1, hpcB2, l, hlr, hl0, hlmax, hl⟩ + · refine ⟨B₂, B₁, hcl2, hcl1, ?_, ?_, hn2, hn1, hpcB2, hpcB1, l, hlr, hl0, hlmax, hl⟩ + · rw [Set.union_comm]; exact hBu + · rw [Set.inter_comm]; exact hBi + +/-! ### Path-concatenation infrastructure and Maehara's interior points + +The tools below package repeated use of the `crossing` lemma: any bottom-to-top +path in the normalized rectangle meets each arc (`vertical_meets_arc`), together with +the plumbing (`concatPath2`, `concatPath3`) that glues path pieces into one +continuous path on `[-1,1]` whose image is the union of the pieces. -/ + +/-- An arc `J ⊆ Plane` homeomorphic to `unitInterval` is path-connected. -/ +theorem arc_isPathConnected {J : Set Plane} (e : ↥J ≃ₜ unitInterval) : + IsPathConnected J := by + have : PathConnectedSpace unitInterval := + isPathConnected_iff_pathConnectedSpace.mp + ((convex_Icc (0 : ℝ) 1).isPathConnected (Set.nonempty_Icc.mpr (by norm_num))) + have h1 : IsPathConnected (univ : Set unitInterval) := isPathConnected_univ + have h2 := h1.image + (show Continuous (fun x : unitInterval => ((e.symm x : ↥J) : Plane)) from + continuous_subtype_val.comp e.symm.continuous) + rw [Set.image_univ] at h2 + have hrange : (Set.range fun x : unitInterval => ((e.symm x : ↥J) : Plane)) = J := by + ext p + simp only [Set.mem_range] + constructor + · rintro ⟨x, rfl⟩; exact (e.symm x).2 + · intro hp; exact ⟨e ⟨p, hp⟩, by simp⟩ + rwa [hrange] at h2 + +/-- An arc `J ≃ₜ unitInterval` joins any two of its points inside `J`. -/ +theorem arc_joinedIn {J : Set Plane} (e : ↥J ≃ₜ unitInterval) + {a b : Plane} (ha : a ∈ J) (hb : b ∈ J) : JoinedIn J a b := + (arc_isPathConnected e).joinedIn a ha b hb + +/-- **Key reusable tool.** Any path `v` running from the bottom edge (`v (-1) 1 = -2`) +to the top edge (`v 1 1 = 2`) of the normalized rectangle `[-1,1]×[-2,2]` must meet an +arc `J` that joins the left point `a = !₂[-1,0]` to the right point `b = !₂[1,0]` inside +the rectangle. Immediate from `crossing`, using `arc_path` for the horizontal path. -/ +theorem vertical_meets_arc (hbr : BrouwerFPT) {J : Set Plane} + (hJsub : J ⊆ {p : Plane | p 0 ∈ Icc (-1 : ℝ) 1 ∧ p 1 ∈ Icc (-2 : ℝ) 2}) + (hJoin : JoinedIn J (!₂[(-1 : ℝ), 0]) (!₂[(1 : ℝ), 0])) + {v : ℝ → Plane} (hvcont : ContinuousOn v (Icc (-1 : ℝ) 1)) + (hvE : ∀ t ∈ Icc (-1 : ℝ) 1, v t 0 ∈ Icc (-1 : ℝ) 1 ∧ v t 1 ∈ Icc (-2 : ℝ) 2) + (hv1 : v (-1) 1 = -2) (hv2 : v 1 1 = 2) : + ∃ t ∈ Icc (-1 : ℝ) 1, v t ∈ J := by + obtain ⟨h, hcontOn, hh1, hh2, hhmem⟩ := arc_path hJoin + have hhE : ∀ t ∈ Icc (-1 : ℝ) 1, h t 0 ∈ Icc (-1 : ℝ) 1 ∧ h t 1 ∈ Icc (-2 : ℝ) 2 := + fun t ht => hJsub (hhmem t ht) + have hh1' : h (-1) 0 = -1 := by rw [hh1]; simp + have hh2' : h 1 0 = 1 := by rw [hh2]; simp + obtain ⟨s, hs, t, ht, heq⟩ := crossing hbr (by norm_num : (-1 : ℝ) ≤ 1) + (by norm_num : (-2 : ℝ) ≤ 2) h v hcontOn hvcont hhE hvE hh1' hh2' hv1 hv2 + exact ⟨t, ht, heq ▸ hhmem s hs⟩ + +/-- A path piece `f : ℝ → Plane`, continuous on `[-1,1]`, as a `Path (f (-1)) (f 1)` +over `unitInterval` (reparametrized by `s ↦ 2s-1`). -/ +private noncomputable def pathOfPiece {f : ℝ → Plane} + (hf : ContinuousOn f (Icc (-1 : ℝ) 1)) : Path (f (-1)) (f 1) := + Path.mk ⟨fun s : unitInterval => f (2 * (s : ℝ) - 1), by + refine hf.comp_continuous (by fun_prop) (fun s => ?_) + have hs := s.2; rw [Set.mem_Icc] at hs ⊢ + constructor <;> [linarith [hs.1]; linarith [hs.2]]⟩ + (by norm_num [Set.Icc.coe_zero]) (by norm_num [Set.Icc.coe_one]) + +private lemma pathOfPiece_range {f : ℝ → Plane} + (hf : ContinuousOn f (Icc (-1 : ℝ) 1)) : + Set.range (pathOfPiece hf) = f '' Icc (-1 : ℝ) 1 := by + ext p + simp only [Set.mem_range, Set.mem_image, Set.mem_Icc] + constructor + · rintro ⟨s, rfl⟩ + have hs := s.2; rw [Set.mem_Icc] at hs + exact ⟨2 * (s : ℝ) - 1, ⟨by linarith [hs.1], by linarith [hs.2]⟩, rfl⟩ + · rintro ⟨y, ⟨hy1, hy2⟩, rfl⟩ + refine ⟨⟨(y + 1) / 2, by rw [Set.mem_Icc]; constructor <;> linarith⟩, ?_⟩ + change f (2 * ((y + 1) / 2) - 1) = f y + congr 1; ring + +/-- **Path concatenation (2 pieces).** Two path pieces on `[-1,1]` that chain up +(`f 1 = g (-1)`) glue to one path `c` on `[-1,1]` from `f (-1)` to `g 1`, whose image +is contained in the union of the pieces' images. -/ +theorem concatPath2 {f g : ℝ → Plane} + (hf : ContinuousOn f (Icc (-1 : ℝ) 1)) (hg : ContinuousOn g (Icc (-1 : ℝ) 1)) + (hchain : f 1 = g (-1)) : + ∃ c : ℝ → Plane, ContinuousOn c (Icc (-1 : ℝ) 1) ∧ c (-1) = f (-1) ∧ c 1 = g 1 ∧ + ∀ t ∈ Icc (-1 : ℝ) 1, c t ∈ f '' Icc (-1 : ℝ) 1 ∪ g '' Icc (-1 : ℝ) 1 := by + set P : Path (f (-1)) (g 1) := + (pathOfPiece hf).trans ((pathOfPiece hg).cast hchain rfl) with hP + refine ⟨fun t => P (Set.projIcc 0 1 (by norm_num) ((t + 1) / 2)), ?_, ?_, ?_, ?_⟩ + · exact (P.continuous.comp (continuous_projIcc.comp (by fun_prop))).continuousOn + · change P _ = f (-1) + rw [show Set.projIcc (0 : ℝ) 1 (by norm_num) (((-1 : ℝ) + 1) / 2) = 0 from + Subtype.ext (by rw [Set.coe_projIcc]; norm_num)] + exact P.source + · change P _ = g 1 + rw [show Set.projIcc (0 : ℝ) 1 (by norm_num) (((1 : ℝ) + 1) / 2) = 1 from + Subtype.ext (by rw [Set.coe_projIcc]; norm_num)] + exact P.target + · intro t _ + have hmem : P (Set.projIcc 0 1 (by norm_num) ((t + 1) / 2)) ∈ Set.range P := ⟨_, rfl⟩ + rw [hP, Path.trans_range] at hmem + have hr1 : Set.range (pathOfPiece hf) = f '' Icc (-1 : ℝ) 1 := pathOfPiece_range hf + have hr2 : Set.range ((pathOfPiece hg).cast hchain rfl) = g '' Icc (-1 : ℝ) 1 := by + simp only [Path.cast_coe]; exact pathOfPiece_range hg + rw [hr1, hr2] at hmem + exact hmem + +/-- **Path concatenation (3 pieces).** Three chained path pieces on `[-1,1]` glue to +one path `c` on `[-1,1]` from `f (-1)` to `h 1`, with image in the union of the three +pieces' images. -/ +theorem concatPath3 {f g h : ℝ → Plane} + (hf : ContinuousOn f (Icc (-1 : ℝ) 1)) (hg : ContinuousOn g (Icc (-1 : ℝ) 1)) + (hh : ContinuousOn h (Icc (-1 : ℝ) 1)) + (hfg : f 1 = g (-1)) (hgh : g 1 = h (-1)) : + ∃ c : ℝ → Plane, ContinuousOn c (Icc (-1 : ℝ) 1) ∧ c (-1) = f (-1) ∧ c 1 = h 1 ∧ + ∀ t ∈ Icc (-1 : ℝ) 1, + c t ∈ f '' Icc (-1 : ℝ) 1 ∪ g '' Icc (-1 : ℝ) 1 ∪ h '' Icc (-1 : ℝ) 1 := by + obtain ⟨c2, hc2cont, hc2a, hc2b, hc2mem⟩ := concatPath2 hf hg hfg + obtain ⟨c3, hc3cont, hc3a, hc3b, hc3mem⟩ := + concatPath2 hc2cont hh (by rw [hc2b]; exact hgh) + refine ⟨c3, hc3cont, by rw [hc3a, hc2a], hc3b, fun t ht => ?_⟩ + rcases hc3mem t ht with hin | hin + · obtain ⟨u, hu, huc⟩ := hin + exact Set.mem_union_left _ (huc ▸ hc2mem u hu) + · exact Set.mem_union_right _ hin + +/-- **Path concatenation (5 pieces).** Five chained path pieces on `[-1,1]` glue to one +path `c` on `[-1,1]` from `f1 (-1)` to `f5 1`, with image in the union of the five +pieces' images. -/ +theorem concatPath5 {f1 f2 f3 f4 f5 : ℝ → Plane} + (h1 : ContinuousOn f1 (Icc (-1 : ℝ) 1)) (h2 : ContinuousOn f2 (Icc (-1 : ℝ) 1)) + (h3 : ContinuousOn f3 (Icc (-1 : ℝ) 1)) (h4 : ContinuousOn f4 (Icc (-1 : ℝ) 1)) + (h5 : ContinuousOn f5 (Icc (-1 : ℝ) 1)) + (c12 : f1 1 = f2 (-1)) (c23 : f2 1 = f3 (-1)) (c34 : f3 1 = f4 (-1)) + (c45 : f4 1 = f5 (-1)) : + ∃ c : ℝ → Plane, ContinuousOn c (Icc (-1 : ℝ) 1) ∧ c (-1) = f1 (-1) ∧ c 1 = f5 1 ∧ + ∀ t ∈ Icc (-1 : ℝ) 1, + c t ∈ ((((f1 '' Icc (-1 : ℝ) 1 ∪ f2 '' Icc (-1 : ℝ) 1) ∪ f3 '' Icc (-1 : ℝ) 1) + ∪ f4 '' Icc (-1 : ℝ) 1) ∪ f5 '' Icc (-1 : ℝ) 1) := by + obtain ⟨c123, hc123cont, hc123a, hc123b, hc123mem⟩ := concatPath3 h1 h2 h3 c12 c23 + obtain ⟨c45, hc45cont, hc45a, hc45b, hc45mem⟩ := concatPath2 h4 h5 c45 + obtain ⟨c, hccont, hca, hcb, hcmem⟩ := + concatPath2 hc123cont hc45cont (by rw [hc123b, hc45a]; exact c34) + refine ⟨c, hccont, by rw [hca, hc123a], by rw [hcb, hc45b], fun t ht => ?_⟩ + rcases hcmem t ht with hin | hin + · obtain ⟨u, hu, hue⟩ := hin + have hmem := hc123mem u hu + rw [hue] at hmem + exact Or.inl (Or.inl hmem) + · obtain ⟨u, hu, hue⟩ := hin + have hmem := hc45mem u hu + rw [hue] at hmem + rcases hmem with h | h + · exact Or.inl (Or.inr h) + · exact Or.inr h + +/-- **Interior point `m`.** The intersection `J_n ∩ axis` (`axis = {p | p 0 = 0}`) is +compact and nonempty (it contains `l`), hence attains its `y`-minimum at a point `m`. -/ +theorem exists_ymin_Jn_axis {J_n : Set Plane} (hJncl : IsClosed J_n) + (hcpt : IsCompact J_n) {l : Plane} (hlJn : l ∈ J_n) (hl0 : l 0 = 0) : + ∃ m ∈ J_n, m 0 = 0 ∧ ∀ p ∈ J_n, p 0 = 0 → m 1 ≤ p 1 := by + set Jm : Set Plane := {p ∈ J_n | p 0 = 0} with hJm + have hsub : Jm ⊆ J_n := fun p hp => hp.1 + have hcl : IsClosed Jm := + hJncl.inter (isClosed_eq (by fun_prop) continuous_const) + have hJmcpt : IsCompact Jm := hcpt.of_isClosed_subset hcl hsub + have hne : Jm.Nonempty := ⟨l, hlJn, hl0⟩ + have hcy : Continuous (fun p : Plane => p 1) := by fun_prop + obtain ⟨m, hmJm, hmmin⟩ := + hJmcpt.exists_isMinOn hne (f := fun p : Plane => p 1) hcy.continuousOn + exact ⟨m, hmJm.1, hmJm.2, fun p hpJn hp0 => hmmin (show p ∈ Jm from ⟨hpJn, hp0⟩)⟩ + +/-- **The vertical segment `m → s` meets `J_s`.** With `s = !₂[0,-2]` (below the +rectangle's bottom edge), the axis segment from the interior point `m ∈ J_n` down to +`s` must cross the southern arc `J_s`. Proof by contradiction: were it disjoint from +`J_s`, the concatenation `s → m` (axis), `m → l` (a path inside `J_n \ {a,b}`), +`l → n` (axis, `n = !₂[0,2]`) would give a bottom-to-top path in the rectangle +avoiding `J_s`, contradicting `vertical_meets_arc` (`J_s` joins `a` to `b`). The +crossing point lies on the segment, so it sits on the axis at height `≤ m 1`. -/ +theorem ms_meets_Js (hbr : BrouwerFPT) + {r : sphere (0 : Plane) 1 → Plane} (_hcont : Continuous r) (_hinj : Injective r) + (hmr : (!₂[(-1 : ℝ), 0] : Plane) ∈ range r) (hpr : (!₂[(1 : ℝ), 0] : Plane) ∈ range r) + (hfar : ∀ z ∈ range r, ∀ w ∈ range r, dist z w ≤ 2) + {J_n J_s : Set Plane} + (hUnion : J_n ∪ J_s = range r) + (hInter : J_n ∩ J_s = {!₂[(-1 : ℝ), 0], !₂[(1 : ℝ), 0]}) + (eJs : ↥J_s ≃ₜ unitInterval) + (hpcJn : IsPathConnected (J_n \ {!₂[(-1 : ℝ), 0], !₂[(1 : ℝ), 0]})) + {l : Plane} (hlJn : l ∈ J_n) (hl0 : l 0 = 0) + (hlmax : ∀ q ∈ range r, q 0 = 0 → q 1 ≤ l 1) + {m : Plane} (hmJn : m ∈ J_n) (hm0 : m 0 = 0) : + ∃ w ∈ J_s, w 0 = 0 ∧ w 1 ≤ m 1 := by + set a : Plane := !₂[(-1 : ℝ), 0] with ha_def + set b : Plane := !₂[(1 : ℝ), 0] with hb_def + -- opaque bottom / top axis points (avoid unfolding `!₂` in later arithmetic) + obtain ⟨s, hs0, hs1⟩ : ∃ s : Plane, s 0 = 0 ∧ s 1 = -2 := + ⟨!₂[(0 : ℝ), -2], by simp, by simp⟩ + obtain ⟨nn, hn0, hn1⟩ : ∃ nn : Plane, nn 0 = 0 ∧ nn 1 = 2 := + ⟨!₂[(0 : ℝ), 2], by simp, by simp⟩ + have ha0 : a 0 = -1 := by simp [ha_def] + have hb0 : b 0 = 1 := by simp [hb_def] + -- basic containments and the rectangle bound + have hJnr : J_n ⊆ range r := by rw [← hUnion]; exact subset_union_left + have hJsr : J_s ⊆ range r := by rw [← hUnion]; exact subset_union_right + have hrect := normalized_subset_rectangle hmr hpr hfar + have hmrange : m ∈ range r := hJnr hmJn + have hlrange : l ∈ range r := hJnr hlJn + have hm1lb : (-2 : ℝ) ≤ m 1 := (hrect hmrange).2.1 + have hm1ub : m 1 ≤ 2 := (hrect hmrange).2.2 + have hl1lb : (-2 : ℝ) ≤ l 1 := (hrect hlrange).2.1 + have hl1ub : l 1 ≤ 2 := (hrect hlrange).2.2 + -- `a, b ∈ J_s`; `J_s` joins them + have haJs : a ∈ J_s := by + have : a ∈ J_n ∩ J_s := by rw [hInter]; exact Set.mem_insert _ _ + exact this.2 + have hbJs : b ∈ J_s := by + have : b ∈ J_n ∩ J_s := by rw [hInter]; exact Set.mem_insert_of_mem _ rfl + exact this.2 + have hJoinJs : JoinedIn J_s a b := arc_joinedIn eJs haJs hbJs + have hJsrect : J_s ⊆ {p : Plane | p 0 ∈ Icc (-1 : ℝ) 1 ∧ p 1 ∈ Icc (-2 : ℝ) 2} := + hJsr.trans hrect + -- `m, l ∉ {a,b}` (they are on the axis `x = 0`, while `a 0 = -1`, `b 0 = 1`) + have hmab : m ∉ ({a, b} : Set Plane) := by + simp only [Set.mem_insert_iff, Set.mem_singleton_iff] + rintro (h | h) <;> + (have hc := congrArg (fun p : Plane => p 0) h; + simp only [hm0, ha0, hb0] at hc; norm_num at hc) + have hlab : l ∉ ({a, b} : Set Plane) := by + simp only [Set.mem_insert_iff, Set.mem_singleton_iff] + rintro (h | h) <;> + (have hc := congrArg (fun p : Plane => p 0) h; + simp only [hl0, ha0, hb0] at hc; norm_num at hc) + by_contra hcon + push Not at hcon + -- `hcon : ∀ w ∈ J_s, w 0 = 0 → m 1 < w 1` + -- three path pieces on `[-1,1]` + set f1 : ℝ → Plane := fun t => s + ((t + 1) / 2) • (m - s) with hf1def + set f3 : ℝ → Plane := fun t => l + ((t + 1) / 2) • (nn - l) with hf3def + obtain ⟨f2, hf2cont, hf2m, hf2l, hf2mem⟩ := + arc_path (hpcJn.joinedIn m ⟨hmJn, hmab⟩ l ⟨hlJn, hlab⟩) + have hf1cont : ContinuousOn f1 (Icc (-1 : ℝ) 1) := (by fun_prop : Continuous f1).continuousOn + have hf3cont : ContinuousOn f3 (Icc (-1 : ℝ) 1) := (by fun_prop : Continuous f3).continuousOn + have hf1_1 : f1 1 = m := by simp [hf1def] + have hf1_m1 : f1 (-1) = s := by simp [hf1def] + have hf3_1 : f3 1 = nn := by simp [hf3def] + have hf3_m1 : f3 (-1) = l := by simp [hf3def] + have hf1f2 : f1 1 = f2 (-1) := by rw [hf1_1, hf2m] + have hf2f3 : f2 1 = f3 (-1) := by rw [hf2l, hf3_m1] + obtain ⟨c, hccont, hcs, hcn, hcmem⟩ := concatPath3 hf1cont hf2cont hf3cont hf1f2 hf2f3 + -- endpoints of the concatenation are on the bottom / top edges + have hcm1 : c (-1) 1 = -2 := by rw [hcs, hf1_m1]; exact hs1 + have hcn1 : c 1 1 = 2 := by rw [hcn, hf3_1]; exact hn1 + -- the three pieces stay in the rectangle + have hf1x : ∀ t, f1 t 0 = 0 := fun t => by simp [hf1def, hs0, hm0] + have hf3x : ∀ t, f3 t 0 = 0 := fun t => by simp [hf3def, hl0, hn0] + have hf1y_le : ∀ t ∈ Icc (-1 : ℝ) 1, f1 t 1 ≤ m 1 := by + intro t ht; rw [mem_Icc] at ht + simp only [hf1def, PiLp.add_apply, PiLp.smul_apply, PiLp.sub_apply, smul_eq_mul, hs1] + nlinarith [ht.1, ht.2, hm1lb] + have hf1y_ge : ∀ t ∈ Icc (-1 : ℝ) 1, (-2 : ℝ) ≤ f1 t 1 := by + intro t ht; rw [mem_Icc] at ht + simp only [hf1def, PiLp.add_apply, PiLp.smul_apply, PiLp.sub_apply, smul_eq_mul, hs1] + nlinarith [ht.1, ht.2, hm1lb] + have hf3y_ge : ∀ t ∈ Icc (-1 : ℝ) 1, l 1 ≤ f3 t 1 := by + intro t ht; rw [mem_Icc] at ht + simp only [hf3def, PiLp.add_apply, PiLp.smul_apply, PiLp.sub_apply, smul_eq_mul, hn1] + nlinarith [ht.1, ht.2, hl1ub] + have hf3y_le : ∀ t ∈ Icc (-1 : ℝ) 1, f3 t 1 ≤ 2 := by + intro t ht; rw [mem_Icc] at ht + simp only [hf3def, PiLp.add_apply, PiLp.smul_apply, PiLp.sub_apply, smul_eq_mul, hn1] + nlinarith [ht.1, ht.2, hl1lb, hl1ub] + have hbound : ∀ z ∈ (f1 '' Icc (-1 : ℝ) 1 ∪ f2 '' Icc (-1 : ℝ) 1) ∪ f3 '' Icc (-1 : ℝ) 1, + z 0 ∈ Icc (-1 : ℝ) 1 ∧ z 1 ∈ Icc (-2 : ℝ) 2 := by + rintro z ((⟨t1, ht1, rfl⟩ | ⟨t2, ht2, rfl⟩) | ⟨t3, ht3, rfl⟩) + · exact ⟨by rw [hf1x]; norm_num, + mem_Icc.2 ⟨hf1y_ge t1 ht1, le_trans (hf1y_le t1 ht1) hm1ub⟩⟩ + · exact hrect (hJnr (hf2mem t2 ht2).1) + · exact ⟨by rw [hf3x]; norm_num, + mem_Icc.2 ⟨le_trans hl1lb (hf3y_ge t3 ht3), hf3y_le t3 ht3⟩⟩ + have hcE : ∀ t ∈ Icc (-1 : ℝ) 1, c t 0 ∈ Icc (-1 : ℝ) 1 ∧ c t 1 ∈ Icc (-2 : ℝ) 2 := + fun t ht => hbound (c t) (hcmem t ht) + -- the concatenation is a bottom-to-top path, so it must meet `J_s` + obtain ⟨t, ht, hctJs⟩ := + vertical_meets_arc hbr hJsrect hJoinJs hccont hcE hcm1 hcn1 + rcases hcmem t ht with (⟨t1, ht1, ht1e⟩ | ⟨t2, ht2, ht2e⟩) | ⟨t3, ht3, ht3e⟩ + · -- on the lower axis segment: contradicts `hcon` (height `≤ m 1`) + have hct0 : c t 0 = 0 := by rw [← ht1e]; exact hf1x t1 + have hcty : c t 1 ≤ m 1 := by rw [← ht1e]; exact hf1y_le t1 ht1 + exact absurd (hcon (c t) hctJs hct0) (not_lt.2 hcty) + · -- on the middle piece: lands in `J_n \ {a,b}`, disjoint from `J_s` + have hctJn : c t ∈ J_n := ht2e ▸ (hf2mem t2 ht2).1 + have hctnab : c t ∉ ({a, b} : Set Plane) := ht2e ▸ (hf2mem t2 ht2).2 + have : c t ∈ J_n ∩ J_s := ⟨hctJn, hctJs⟩ + rw [hInter] at this + exact hctnab this + · -- on the upper axis segment: forced to equal `l`, but `l ∉ J_s` + have hct0 : c t 0 = 0 := by rw [← ht3e]; exact hf3x t3 + have hcty_ge : l 1 ≤ c t 1 := by rw [← ht3e]; exact hf3y_ge t3 ht3 + have hcty_le : c t 1 ≤ l 1 := hlmax (c t) (hJsr hctJs) hct0 + have hcty : c t 1 = l 1 := le_antisymm hcty_le hcty_ge + have hctl : c t = l := by ext i; fin_cases i <;> simp [hct0, hl0, hcty] + have hlnJs : l ∉ J_s := by + intro h + have : l ∈ J_n ∩ J_s := ⟨hlJn, h⟩ + rw [hInter] at this; exact hlab this + exact hlnJs (hctl ▸ hctJs) + +/-- **Maehara's construction points.** Bundles the five points of Maehara's figure +on the vertical axis `x = 0`: +* `l` — the topmost intersection of the axis with the curve (in `J_n`); +* `m` — the lowest point of `J_n` on the axis; +* `p` — the highest point of `J_s` on the axis lying at or below `m` (the top of the + southern arc on the segment `m → s`, via `ms_meets_Js`); +* `q` — the lowest point of `J_s` on the axis; +* `z₀` — the midpoint `!₂[0,(m 1 + p 1)/2]` of `m` and `p`. + +The established `y`-ordering is `q 1 ≤ p 1 ≤ z₀ 1 ≤ m 1 ≤ l 1`. (Note `p` is the +`J_s`-max **restricted to heights `≤ m 1`**; this is what makes `p 1 ≤ m 1` — hence +the placement of `z₀` between `p` and `m` — provable at this stage.) -/ +theorem exists_construction_points (hbr : BrouwerFPT) + {r : sphere (0 : Plane) 1 → Plane} (hcont : Continuous r) (hinj : Injective r) + (hm : (!₂[(-1 : ℝ), 0] : Plane) ∈ range r) (hp : (!₂[(1 : ℝ), 0] : Plane) ∈ range r) + (hfar : ∀ z ∈ range r, ∀ w ∈ range r, dist z w ≤ 2) : + ∃ (J_n J_s : Set Plane) (l m p q z₀ : Plane), + J_n ∪ J_s = range r ∧ + J_n ∩ J_s = {!₂[(-1 : ℝ), 0], !₂[(1 : ℝ), 0]} ∧ + IsPathConnected (J_n \ {!₂[(-1 : ℝ), 0], !₂[(1 : ℝ), 0]}) ∧ + (l ∈ J_n ∧ l 0 = 0 ∧ ∀ w ∈ range r, w 0 = 0 → w 1 ≤ l 1) ∧ + (m ∈ J_n ∧ m 0 = 0 ∧ ∀ w ∈ J_n, w 0 = 0 → m 1 ≤ w 1) ∧ + (p ∈ J_s ∧ p 0 = 0 ∧ p 1 ≤ m 1 ∧ ∀ w ∈ J_s, w 0 = 0 → w 1 ≤ m 1 → w 1 ≤ p 1) ∧ + (q ∈ J_s ∧ q 0 = 0 ∧ ∀ w ∈ J_s, w 0 = 0 → q 1 ≤ w 1) ∧ + z₀ = !₂[(0 : ℝ), (m 1 + p 1) / 2] ∧ + m 1 ≤ l 1 ∧ q 1 ≤ p 1 ∧ p 1 ≤ z₀ 1 ∧ z₀ 1 ≤ m 1 ∧ + IsPathConnected (J_s \ {!₂[(-1 : ℝ), 0], !₂[(1 : ℝ), 0]}) ∧ + JoinedIn J_n (!₂[(-1 : ℝ), 0]) (!₂[(1 : ℝ), 0]) ∧ + JoinedIn J_s (!₂[(-1 : ℝ), 0]) (!₂[(1 : ℝ), 0]) := by + obtain ⟨J_n, J_s, hJncl, hJscl, hUnion, hInter, ⟨eJn⟩, ⟨eJs⟩, hpcJn, hpcJs, + l, hlr, hl0, hlmax, hlJn⟩ := jordan_arcs hbr hcont hinj hm hp hfar + have hcptr : IsCompact (range r) := jordanCurve_isCompact r hcont + have hJnr : J_n ⊆ range r := by rw [← hUnion]; exact subset_union_left + have hJsr : J_s ⊆ range r := by rw [← hUnion]; exact subset_union_right + have hJncpt : IsCompact J_n := hcptr.of_isClosed_subset hJncl hJnr + have hJscpt : IsCompact J_s := hcptr.of_isClosed_subset hJscl hJsr + -- `m` : lowest point of `J_n` on the axis + obtain ⟨m, hmJn, hm0, hmmin⟩ := exists_ymin_Jn_axis hJncl hJncpt hlJn hl0 + -- `J_s` meets the axis below `m` + obtain ⟨w₀, hw₀Js, hw₀0, hw₀m⟩ := + ms_meets_Js hbr hcont hinj hm hp hfar hUnion hInter eJs hpcJn hlJn hl0 hlmax hmJn hm0 + -- `p` : highest point of `J_s` on the axis at or below `m` + set Sp : Set Plane := {w ∈ J_s | w 0 = 0 ∧ w 1 ≤ m 1} with hSpdef + have hSpcl : IsClosed Sp := by + have hEq : Sp = (J_s ∩ {w : Plane | w 0 = 0}) ∩ {w : Plane | w 1 ≤ m 1} := by + ext w + constructor + · rintro ⟨hJ, h0, hle⟩; exact ⟨⟨hJ, h0⟩, hle⟩ + · rintro ⟨⟨hJ, h0⟩, hle⟩; exact ⟨hJ, h0, hle⟩ + rw [hEq] + exact (hJscl.inter (isClosed_eq (by fun_prop) continuous_const)).inter + (isClosed_le (by fun_prop) continuous_const) + have hSpcpt : IsCompact Sp := hJscpt.of_isClosed_subset hSpcl (fun w hw => hw.1) + obtain ⟨p, hpSp, hpmax⟩ := hSpcpt.exists_isMaxOn ⟨w₀, hw₀Js, hw₀0, hw₀m⟩ + (f := fun w : Plane => w 1) (by fun_prop : Continuous (fun w : Plane => w 1)).continuousOn + -- `q` : lowest point of `J_s` on the axis + set Sq : Set Plane := {w ∈ J_s | w 0 = 0} with hSqdef + have hSqcl : IsClosed Sq := + hJscl.inter (isClosed_eq (by fun_prop) continuous_const) + have hSqcpt : IsCompact Sq := hJscpt.of_isClosed_subset hSqcl (fun w hw => hw.1) + obtain ⟨q, hqSq, hqmin⟩ := hSqcpt.exists_isMinOn ⟨w₀, hw₀Js, hw₀0⟩ + (f := fun w : Plane => w 1) (by fun_prop : Continuous (fun w : Plane => w 1)).continuousOn + -- extract the packaged facts + have hpm : p 1 ≤ m 1 := hpSp.2.2 + have hml : m 1 ≤ l 1 := hlmax m (hJnr hmJn) hm0 + have hqp : q 1 ≤ p 1 := hqmin ⟨hpSp.1, hpSp.2.1⟩ + have haJn : (!₂[(-1 : ℝ), 0] : Plane) ∈ J_n := by + have : (!₂[(-1 : ℝ), 0] : Plane) ∈ J_n ∩ J_s := by rw [hInter]; exact mem_insert _ _ + exact this.1 + have hbJn : (!₂[(1 : ℝ), 0] : Plane) ∈ J_n := by + have : (!₂[(1 : ℝ), 0] : Plane) ∈ J_n ∩ J_s := by rw [hInter]; exact mem_insert_of_mem _ rfl + exact this.1 + have haJs : (!₂[(-1 : ℝ), 0] : Plane) ∈ J_s := by + have : (!₂[(-1 : ℝ), 0] : Plane) ∈ J_n ∩ J_s := by rw [hInter]; exact mem_insert _ _ + exact this.2 + have hbJs : (!₂[(1 : ℝ), 0] : Plane) ∈ J_s := by + have : (!₂[(1 : ℝ), 0] : Plane) ∈ J_n ∩ J_s := by rw [hInter]; exact mem_insert_of_mem _ rfl + exact this.2 + have hJoinJn : JoinedIn J_n (!₂[(-1 : ℝ), 0]) (!₂[(1 : ℝ), 0]) := arc_joinedIn eJn haJn hbJn + have hJoinJs : JoinedIn J_s (!₂[(-1 : ℝ), 0]) (!₂[(1 : ℝ), 0]) := arc_joinedIn eJs haJs hbJs + refine ⟨J_n, J_s, l, m, p, q, !₂[(0 : ℝ), (m 1 + p 1) / 2], hUnion, hInter, hpcJn, + ⟨hlJn, hl0, hlmax⟩, ⟨hmJn, hm0, hmmin⟩, + ⟨hpSp.1, hpSp.2.1, hpm, fun w hwJs hw0 hwm => hpmax ⟨hwJs, hw0, hwm⟩⟩, + ⟨hqSq.1, hqSq.2, fun w hwJs hw0 => hqmin ⟨hwJs, hw0⟩⟩, rfl, hml, hqp, ?_, ?_, + hpcJs, hJoinJn, hJoinJs⟩ + · rw [show (!₂[(0 : ℝ), (m 1 + p 1) / 2] : Plane) 1 = (m 1 + p 1) / 2 from by simp] + linarith [hpm] + · rw [show (!₂[(0 : ℝ), (m 1 + p 1) / 2] : Plane) 1 = (m 1 + p 1) / 2 from by simp] + linarith [hpm] + +/-- **First-exit lemma (A.1).** A path `α` on `[0,1]` starting inside an open set `O` +and ending outside a closed superset `C ⊇ O` has a *first exit time* `tw ∈ (0,1]`: +`α tw` lies in the frontier layer `C \ O`, and `α u ∈ O` for all `u < tw`. -/ +theorem exists_first_exit {α : ℝ → Plane} {O C : Set Plane} + (hO : IsOpen O) (hC : IsClosed C) (hOC : O ⊆ C) + (hcont : ContinuousOn α (Icc (0 : ℝ) 1)) + (h0 : α 0 ∈ O) (h1 : α 1 ∉ C) : + ∃ tw ∈ Ioc (0 : ℝ) 1, α tw ∈ C ∧ α tw ∉ O ∧ ∀ u ∈ Ico (0 : ℝ) tw, α u ∈ O := by + set S : Set ℝ := {t ∈ Icc (0 : ℝ) 1 | α t ∉ O} with hSdef + -- `S` is closed: it is `Icc 0 1 ∩ α⁻¹(Oᶜ)` + have hScl : IsClosed S := by + have hEq : S = Icc (0 : ℝ) 1 ∩ α ⁻¹' Oᶜ := by + ext t; simp only [hSdef, mem_ofPred_eq, mem_inter_iff, mem_preimage, mem_compl_iff] + rw [hEq]; exact hcont.preimage_isClosed_of_isClosed isClosed_Icc hO.isClosed_compl + have hSne : S.Nonempty := + ⟨1, ⟨by norm_num, fun h => h1 (hOC h)⟩⟩ + have hSbdd : BddBelow S := ⟨0, fun t ht => ht.1.1⟩ + set tw := sInf S with htw + have htwS : tw ∈ S := hScl.csInf_mem hSne hSbdd + have htw01 : tw ∈ Icc (0 : ℝ) 1 := htwS.1 + have htwO : α tw ∉ O := htwS.2 + -- `tw > 0` (since `0 ∉ S`) + have h0S : (0 : ℝ) ∉ S := fun h => h.2 h0 + have htwpos : 0 < tw := lt_of_le_of_ne htw01.1 (fun h => h0S (h ▸ htwS)) + -- points strictly below `tw` are still in `O` + have hbelow : ∀ u ∈ Ico (0 : ℝ) tw, α u ∈ O := by + intro u hu + by_contra hnot + have huS : u ∈ S := ⟨⟨hu.1, le_trans hu.2.le htw01.2⟩, hnot⟩ + exact absurd (csInf_le hSbdd huS) (not_le.2 hu.2) + -- `α tw ∈ C` by closure of the pre-exit segment + have htwC : α tw ∈ C := by + have hT : IsClosed (Icc (0 : ℝ) 1 ∩ α ⁻¹' C) := + hcont.preimage_isClosed_of_isClosed isClosed_Icc hC + have hsub : Ico (0 : ℝ) tw ⊆ Icc (0 : ℝ) 1 ∩ α ⁻¹' C := by + intro u hu + exact ⟨⟨hu.1, le_trans hu.2.le htw01.2⟩, hOC (hbelow u hu)⟩ + have : tw ∈ Icc (0 : ℝ) 1 ∩ α ⁻¹' C := by + apply hT.closure_subset_iff.mpr hsub + rw [closure_Ico (ne_of_lt htwpos)] + exact ⟨htwpos.le, le_refl tw⟩ + exact this.2 + exact ⟨tw, ⟨htwpos, htw01.2⟩, htwC, htwO, hbelow⟩ + +/-- A vertical segment `{p | p 0 = c ∧ p 1 ∈ T}` (with `T` path-connected) is +path-connected: it is the image of `T` under `y ↦ !₂[c, y]`. -/ +theorem isPathConnected_vertSeg (c : ℝ) {T : Set ℝ} (hT : IsPathConnected T) : + IsPathConnected {p : Plane | p 0 = c ∧ p 1 ∈ T} := by + have hfcont : Continuous (fun y : ℝ => (!₂[c, y] : Plane)) := by + apply (PiLp.continuous_toLp 2 (fun _ : Fin 2 => ℝ)).comp + refine continuous_pi (fun i => ?_) + fin_cases i <;> simp only [Nat.succ_eq_add_one, Nat.reduceAdd, Fin.zero_eta, Fin.isValue, + Matrix.cons_val_zero, + Fin.mk_one, Matrix.cons_val_one, Matrix.cons_val_fin_one]<;> fun_prop + have himg := hT.image hfcont + have hEq : (fun y : ℝ => (!₂[c, y] : Plane)) '' T = {p : Plane | p 0 = c ∧ p 1 ∈ T} := by + ext p + simp only [mem_image, mem_ofPred_eq] + constructor + · rintro ⟨y, hy, rfl⟩; exact ⟨by simp, by simpa using hy⟩ + · rintro ⟨h0, h1⟩ + exact ⟨p 1, h1, by ext i; fin_cases i <;> simp [h0]⟩ + rwa [hEq] at himg + +/-- A horizontal segment `{p | p 1 = c ∧ p 0 ∈ T}` is path-connected. -/ +theorem isPathConnected_horizSeg (c : ℝ) {T : Set ℝ} (hT : IsPathConnected T) : + IsPathConnected {p : Plane | p 1 = c ∧ p 0 ∈ T} := by + have hfcont : Continuous (fun x : ℝ => (!₂[x, c] : Plane)) := by + apply (PiLp.continuous_toLp 2 (fun _ : Fin 2 => ℝ)).comp + refine continuous_pi (fun i => ?_) + fin_cases i <;> simp only [Nat.succ_eq_add_one, Nat.reduceAdd, Fin.zero_eta, Fin.isValue, + Matrix.cons_val_zero, + Fin.mk_one, Matrix.cons_val_one, Matrix.cons_val_fin_one]<;> fun_prop + have himg := hT.image hfcont + have hEq : (fun x : ℝ => (!₂[x, c] : Plane)) '' T = {p : Plane | p 1 = c ∧ p 0 ∈ T} := by + ext p + simp only [mem_image, mem_ofPred_eq] + constructor + · rintro ⟨y, hy, rfl⟩; exact ⟨by simp, by simpa using hy⟩ + · rintro ⟨h0, h1⟩ + exact ⟨p 0, h1, by ext i; fin_cases i <;> simp [h0]⟩ + rwa [hEq] at himg + +/-- **Curve meets the rectangle boundary only on the axis (A.2).** Any curve point on +the frontier of the normalized rectangle `[-1,1]×[-2,2]` has `y = 0` (so it is `a` or +`b`). The "lens" bound `(p 0±1)²+(p 1)² ≤ 4` rules out the top/bottom edges outright +and pins the left/right edges to `y = 0`. -/ +theorem curve_boundary_axis + {r : sphere (0 : Plane) 1 → Plane} + (hm : (!₂[(-1 : ℝ), 0] : Plane) ∈ range r) (hp : (!₂[(1 : ℝ), 0] : Plane) ∈ range r) + (hfar : ∀ z ∈ range r, ∀ w ∈ range r, dist z w ≤ 2) : + ∀ p ∈ range r, (p 0 = -1 ∨ p 0 = 1 ∨ p 1 = -2 ∨ p 1 = 2) → p 1 = 0 := by + intro p hp' hbdry + have hza : dist p (!₂[(-1 : ℝ), 0]) ^ 2 ≤ 4 := by + have := hfar p hp' _ hm; nlinarith [dist_nonneg (x := p) (y := (!₂[(-1 : ℝ),0] : Plane))] + have hzb : dist p (!₂[(1 : ℝ), 0]) ^ 2 ≤ 4 := by + have := hfar p hp' _ hp; nlinarith [dist_nonneg (x := p) (y := (!₂[(1 : ℝ),0] : Plane))] + rw [dist_sq_coord] at hza hzb + simp only [Matrix.cons_val_zero, Matrix.cons_val_one] at hza hzb + rcases hbdry with h | h | h | h + · have h2 : (p 1)^2 = 0 := le_antisymm (by nlinarith [hzb]) (sq_nonneg _) + exact pow_eq_zero_iff (by norm_num) |>.mp h2 + · have h2 : (p 1)^2 = 0 := le_antisymm (by nlinarith [hza]) (sq_nonneg _) + exact pow_eq_zero_iff (by norm_num) |>.mp h2 + · exfalso; nlinarith [hza, hzb, sq_nonneg (p 0 + 1), sq_nonneg (p 0 - 1), h, sq_nonneg (p 1 + 2)] + · exfalso; nlinarith [hza, hzb, sq_nonneg (p 0 + 1), sq_nonneg (p 0 - 1), h, sq_nonneg (p 1 - 2)] + +/-- **Lower boundary arc (A.2).** The part of the rectangle frontier with `y < 0` is +path-connected, contains the bottom axis point `!₂[0,-2]`, lies in the rectangle, and +avoids the curve; moreover any frontier point with `y < 0` lies in it. -/ +theorem exists_lower_boundary_path + {r : sphere (0 : Plane) 1 → Plane} + (hm : (!₂[(-1 : ℝ), 0] : Plane) ∈ range r) (hp : (!₂[(1 : ℝ), 0] : Plane) ∈ range r) + (hfar : ∀ z ∈ range r, ∀ w ∈ range r, dist z w ≤ 2) : + ∃ G : Set Plane, + IsPathConnected G ∧ + (!₂[(0 : ℝ), -2] : Plane) ∈ G ∧ + G ⊆ {p : Plane | p 0 ∈ Icc (-1 : ℝ) 1 ∧ p 1 ∈ Icc (-2 : ℝ) 2} ∧ + (∀ p ∈ G, p ∉ range r) ∧ + (∀ p : Plane, p 0 ∈ Icc (-1 : ℝ) 1 → p 1 ∈ Icc (-2 : ℝ) 2 → + ¬(p 0 ∈ Ioo (-1 : ℝ) 1 ∧ p 1 ∈ Ioo (-2 : ℝ) 2) → p 1 < 0 → p ∈ G) := by + set L : Set Plane := {p : Plane | p 0 = -1 ∧ p 1 ∈ Ico (-2 : ℝ) 0} with hLdef + set Rt : Set Plane := {p : Plane | p 0 = 1 ∧ p 1 ∈ Ico (-2 : ℝ) 0} with hRdef + set Bot : Set Plane := {p : Plane | p 1 = -2 ∧ p 0 ∈ Icc (-1 : ℝ) 1} with hBdef + have hLpc : IsPathConnected L := + isPathConnected_vertSeg (-1) ((convex_Ico _ _).isPathConnected (nonempty_Ico.mpr (by norm_num))) + have hRpc : IsPathConnected Rt := + isPathConnected_vertSeg 1 ((convex_Ico _ _).isPathConnected (nonempty_Ico.mpr (by norm_num))) + have hBpc : IsPathConnected Bot := + isPathConnected_horizSeg (-2) ((convex_Icc _ _).isPathConnected (nonempty_Icc.mpr + (by norm_num))) + have memL : (!₂[(-1 : ℝ), -2] : Plane) ∈ L := ⟨by simp, by rw [mem_Ico]; exact ⟨by simp, by + norm_num⟩⟩ + have memBotL : (!₂[(-1 : ℝ), -2] : Plane) ∈ Bot := ⟨by simp, by rw [mem_Icc]; exact ⟨by norm_num, + by norm_num⟩⟩ + have memBotR : (!₂[(1 : ℝ), -2] : Plane) ∈ Bot := ⟨by simp, by rw [mem_Icc]; exact ⟨by norm_num, + by norm_num⟩⟩ + have memR : (!₂[(1 : ℝ), -2] : Plane) ∈ Rt := ⟨by simp, by rw [mem_Ico]; exact ⟨by simp, by + norm_num⟩⟩ + have hLB : IsPathConnected (L ∪ Bot) := hLpc.union hBpc ⟨_, memL, memBotL⟩ + have hG : IsPathConnected ((L ∪ Bot) ∪ Rt) := hLB.union hRpc ⟨_, Or.inr memBotR, memR⟩ + refine ⟨(L ∪ Bot) ∪ Rt, hG, + Or.inl (Or.inr ⟨by simp, by rw [mem_Icc]; exact ⟨by norm_num, by norm_num⟩⟩), ?_, ?_, ?_⟩ + · rintro p ((hpp | hpp) | hpp) + · obtain ⟨h0, h1⟩ := hpp; rw [mem_Ico] at h1 + exact ⟨by rw [mem_Icc, h0]; norm_num, by rw [mem_Icc]; exact ⟨h1.1, by linarith [h1.2]⟩⟩ + · obtain ⟨h1, h0⟩ := hpp + exact ⟨h0, by rw [mem_Icc, h1]; norm_num⟩ + · obtain ⟨h0, h1⟩ := hpp; rw [mem_Ico] at h1 + exact ⟨by rw [mem_Icc, h0]; norm_num, by rw [mem_Icc]; exact ⟨h1.1, by linarith [h1.2]⟩⟩ + · rintro p ((hpp | hpp) | hpp) hpr + · have := curve_boundary_axis hm hp hfar p hpr (Or.inl hpp.1); linarith [hpp.2.2] + · have := curve_boundary_axis hm hp hfar p hpr (Or.inr (Or.inr (Or.inl hpp.1))); linarith + [hpp.1] + · have := curve_boundary_axis hm hp hfar p hpr (Or.inr (Or.inl hpp.1)); linarith [hpp.2.2] + · intro p hp0 hp1 hnint hpneg + rcases not_and_or.mp hnint with hn0 | hn1 + · rw [mem_Ioo, not_and_or] at hn0 + rcases hn0 with h | h + · exact Or.inl (Or.inl ⟨le_antisymm (not_lt.mp h) hp0.1, mem_Ico.mpr ⟨hp1.1, hpneg⟩⟩) + · exact Or.inr ⟨le_antisymm hp0.2 (not_lt.mp h), mem_Ico.mpr ⟨hp1.1, hpneg⟩⟩ + · rw [mem_Ioo, not_and_or] at hn1 + rcases hn1 with h | h + · exact Or.inl (Or.inr ⟨le_antisymm (not_lt.mp h) hp1.1, hp0⟩) + · exfalso; linarith [not_lt.mp h] + +/-- **Upper boundary arc (A.2).** The part of the rectangle frontier with `y > 0` is +path-connected, contains the top axis point `!₂[0,2]`, lies in the rectangle, and +avoids the curve; moreover any frontier point with `y > 0` lies in it. -/ +theorem exists_upper_boundary_path + {r : sphere (0 : Plane) 1 → Plane} + (hm : (!₂[(-1 : ℝ), 0] : Plane) ∈ range r) (hp : (!₂[(1 : ℝ), 0] : Plane) ∈ range r) + (hfar : ∀ z ∈ range r, ∀ w ∈ range r, dist z w ≤ 2) : + ∃ G : Set Plane, + IsPathConnected G ∧ + (!₂[(0 : ℝ), 2] : Plane) ∈ G ∧ + G ⊆ {p : Plane | p 0 ∈ Icc (-1 : ℝ) 1 ∧ p 1 ∈ Icc (-2 : ℝ) 2} ∧ + (∀ p ∈ G, p ∉ range r) ∧ + (∀ p : Plane, p 0 ∈ Icc (-1 : ℝ) 1 → p 1 ∈ Icc (-2 : ℝ) 2 → + ¬(p 0 ∈ Ioo (-1 : ℝ) 1 ∧ p 1 ∈ Ioo (-2 : ℝ) 2) → 0 < p 1 → p ∈ G) := by + set L : Set Plane := {p : Plane | p 0 = -1 ∧ p 1 ∈ Ioc (0 : ℝ) 2} with hLdef + set Rt : Set Plane := {p : Plane | p 0 = 1 ∧ p 1 ∈ Ioc (0 : ℝ) 2} with hRdef + set Top : Set Plane := {p : Plane | p 1 = 2 ∧ p 0 ∈ Icc (-1 : ℝ) 1} with hTdef + have hLpc : IsPathConnected L := + isPathConnected_vertSeg (-1) ((convex_Ioc _ _).isPathConnected (nonempty_Ioc.mpr (by norm_num))) + have hRpc : IsPathConnected Rt := + isPathConnected_vertSeg 1 ((convex_Ioc _ _).isPathConnected (nonempty_Ioc.mpr (by norm_num))) + have hTpc : IsPathConnected Top := + isPathConnected_horizSeg 2 ((convex_Icc _ _).isPathConnected (nonempty_Icc.mpr (by norm_num))) + have memL : (!₂[(-1 : ℝ), 2] : Plane) ∈ L := ⟨by simp, by rw [mem_Ioc]; exact ⟨by norm_num, by + simp⟩⟩ + have memTopL : (!₂[(-1 : ℝ), 2] : Plane) ∈ Top := ⟨by simp, by rw [mem_Icc]; exact ⟨by norm_num, + by norm_num⟩⟩ + have memTopR : (!₂[(1 : ℝ), 2] : Plane) ∈ Top := ⟨by simp, by rw [mem_Icc]; exact ⟨by norm_num, by + norm_num⟩⟩ + have memR : (!₂[(1 : ℝ), 2] : Plane) ∈ Rt := ⟨by simp, by rw [mem_Ioc]; exact ⟨by norm_num, by + simp⟩⟩ + have hLT : IsPathConnected (L ∪ Top) := hLpc.union hTpc ⟨_, memL, memTopL⟩ + have hG : IsPathConnected ((L ∪ Top) ∪ Rt) := hLT.union hRpc ⟨_, Or.inr memTopR, memR⟩ + refine ⟨(L ∪ Top) ∪ Rt, hG, + Or.inl (Or.inr ⟨by simp, by rw [mem_Icc]; exact ⟨by norm_num, by norm_num⟩⟩), ?_, ?_, ?_⟩ + · rintro p ((hpp | hpp) | hpp) + · obtain ⟨h0, h1⟩ := hpp; rw [mem_Ioc] at h1 + exact ⟨by rw [mem_Icc, h0]; norm_num, by rw [mem_Icc]; exact ⟨by linarith [h1.1], h1.2⟩⟩ + · obtain ⟨h1, h0⟩ := hpp + exact ⟨h0, by rw [mem_Icc, h1]; norm_num⟩ + · obtain ⟨h0, h1⟩ := hpp; rw [mem_Ioc] at h1 + exact ⟨by rw [mem_Icc, h0]; norm_num, by rw [mem_Icc]; exact ⟨by linarith [h1.1], h1.2⟩⟩ + · rintro p ((hpp | hpp) | hpp) hpr + · have := curve_boundary_axis hm hp hfar p hpr (Or.inl hpp.1); linarith [hpp.2.1] + · have := curve_boundary_axis hm hp hfar p hpr (Or.inr (Or.inr (Or.inr hpp.1))); linarith + [hpp.1] + · have := curve_boundary_axis hm hp hfar p hpr (Or.inr (Or.inl hpp.1)); linarith [hpp.2.1] + · intro p hp0 hp1 hnint hppos + rcases not_and_or.mp hnint with hn0 | hn1 + · rw [mem_Ioo, not_and_or] at hn0 + rcases hn0 with h | h + · exact Or.inl (Or.inl ⟨le_antisymm (not_lt.mp h) hp0.1, mem_Ioc.mpr ⟨hppos, hp1.2⟩⟩) + · exact Or.inr ⟨le_antisymm hp0.2 (not_lt.mp h), mem_Ioc.mpr ⟨hppos, hp1.2⟩⟩ + · rw [mem_Ioo, not_and_or] at hn1 + rcases hn1 with h | h + · exfalso; linarith [not_lt.mp h] + · exact Or.inl (Or.inr ⟨le_antisymm hp1.2 (not_lt.mp h), hp0⟩) + +/-- Points on the vertical axis are neither `!₂[-1,0]` nor `!₂[1,0]`. -/ +private lemma off_axis_endpoints {x : Plane} (hx : x 0 = 0) : + x ∉ ({!₂[(-1 : ℝ), 0], !₂[(1 : ℝ), 0]} : Set Plane) := by + simp only [Set.mem_insert_iff, Set.mem_singleton_iff] + rintro (h | h) <;> + (have hc := congrArg (fun w : Plane => w 0) h; simp only [hx] at hc; norm_num at hc) + +/-- `tw * u ∈ [0, tw]` for a unit-interval scalar `u`. -/ +private lemma mul_unit_mem_Icc {tw u : ℝ} (htw : 0 ≤ tw) (h0 : 0 ≤ u) (h1 : u ≤ 1) : + tw * u ∈ Icc (0 : ℝ) tw := by + rw [mem_Icc] + refine ⟨mul_nonneg htw h0, ?_⟩ + calc tw * u ≤ tw * 1 := mul_le_mul_of_nonneg_left h1 htw + _ = tw := mul_one tw + +/-- The vertical segment from `x` up to `y` on the axis, parametrized over `[-1,1]`. -/ +private lemma axis_segment {x y : Plane} (hx0 : x 0 = 0) (hy0 : y 0 = 0) (hxy : x 1 ≤ y 1) : + ∃ g : ℝ → Plane, ContinuousOn g (Icc (-1 : ℝ) 1) ∧ g (-1) = x ∧ g 1 = y ∧ + (∀ t, g t 0 = 0) ∧ ∀ t ∈ Icc (-1 : ℝ) 1, g t 1 ∈ Icc (x 1) (y 1) := by + refine ⟨fun t => x + ((t + 1) / 2) • (y - x), + (by fun_prop : Continuous fun t : ℝ => x + ((t + 1) / 2) • (y - x)).continuousOn, + by change x + (((-1 : ℝ) + 1) / 2) • (y - x) = x; module, + by change x + (((1 : ℝ) + 1) / 2) • (y - x) = y; module, + fun t => by simp [PiLp.add_apply, PiLp.smul_apply, PiLp.sub_apply, hx0, hy0], ?_⟩ + intro t ht; rw [mem_Icc] at ht ⊢ + simp only [PiLp.add_apply, PiLp.smul_apply, PiLp.sub_apply, smul_eq_mul] + have h0 : (0 : ℝ) ≤ (t + 1) / 2 := by linarith [ht.1] + have h1 : (t + 1) / 2 ≤ 1 := by linarith [ht.2] + have hd : (0 : ℝ) ≤ y 1 - x 1 := by linarith + constructor + · linarith [mul_nonneg h0 hd] + · linarith [mul_le_mul_of_nonneg_right h1 hd] + +/-- The closed rectangle `[-1,1] × [-2,2]` is bounded. -/ +private lemma isBounded_rectE : + IsBounded {w : Plane | w 0 ∈ Icc (-1 : ℝ) 1 ∧ w 1 ∈ Icc (-2 : ℝ) 2} := by + apply (Metric.isBounded_closedBall (x := (0:Plane)) (r := 3)).subset + intro z hz + rw [Metric.mem_closedBall] + have hz1 := hz.1; have hz2 := hz.2; rw [mem_Icc] at hz1 hz2 + have hsq : dist z (0:Plane) ^ 2 ≤ 9 := by + rw [dist_sq_coord, show (0:Plane) 0 = 0 from by simp, show (0:Plane) 1 = 0 from by simp] + nlinarith [hz1.1, hz1.2, hz2.1, hz2.2] + nlinarith [dist_nonneg (x := z) (y := (0:Plane)), hsq] + +/-- The open rectangle `(-1,1) × (-2,2)` is open. -/ +private lemma isOpen_rectO : + IsOpen {w : Plane | w 0 ∈ Ioo (-1 : ℝ) 1 ∧ w 1 ∈ Ioo (-2 : ℝ) 2} := by + have hEq : {w : Plane | w 0 ∈ Ioo (-1 : ℝ) 1 ∧ w 1 ∈ Ioo (-2 : ℝ) 2} + = (fun w : Plane => w 0) ⁻¹' Ioo (-1 : ℝ) 1 ∩ (fun w : Plane => w 1) ⁻¹' Ioo (-2 : ℝ) 2 := by + ext w; simp only [mem_ofPred_eq, mem_inter_iff, mem_preimage] + rw [hEq] + exact (isOpen_Ioo.preimage (by fun_prop)).inter (isOpen_Ioo.preimage (by fun_prop)) + +/-- The closed rectangle `[-1,1] × [-2,2]` is closed. -/ +private lemma isClosed_rectE : + IsClosed {w : Plane | w 0 ∈ Icc (-1 : ℝ) 1 ∧ w 1 ∈ Icc (-2 : ℝ) 2} := by + have hEq : {w : Plane | w 0 ∈ Icc (-1 : ℝ) 1 ∧ w 1 ∈ Icc (-2 : ℝ) 2} + = (fun w : Plane => w 0) ⁻¹' Icc (-1 : ℝ) 1 ∩ (fun w : Plane => w 1) ⁻¹' Icc (-2 : ℝ) 2 := by + ext w; simp only [mem_ofPred_eq, mem_inter_iff, mem_preimage] + rw [hEq] + exact (isClosed_Icc.preimage (by fun_prop)).inter (isClosed_Icc.preimage (by fun_prop)) + +/-- A point of the frontier `E ∖ O` on the horizontal axis is one of the endpoints +`!₂[±1, 0]`, hence on the curve. -/ +private lemma axis_zero_mem_range {r : sphere (0 : Plane) 1 → Plane} + (hm : (!₂[(-1 : ℝ), 0] : Plane) ∈ range r) (hp : (!₂[(1 : ℝ), 0] : Plane) ∈ range r) + {x : Plane} (hxIcc : x 0 ∈ Icc (-1 : ℝ) 1) + (hxO : ¬(x 0 ∈ Ioo (-1 : ℝ) 1 ∧ x 1 ∈ Ioo (-2 : ℝ) 2)) + (hx1 : x 1 = 0) : x ∈ range r := by + have hnotIoo0 : x 0 ∉ Ioo (-1 : ℝ) 1 := fun hIoo => + hxO ⟨hIoo, by rw [hx1, mem_Ioo]; constructor <;> norm_num⟩ + rw [mem_Ioo, not_and_or] at hnotIoo0 + rcases hnotIoo0 with h | h + · have hx : x 0 = -1 := le_antisymm (not_lt.mp h) hxIcc.1 + rw [show x = !₂[(-1 : ℝ), 0] from by ext i; fin_cases i <;> simp [hx, hx1]]; exact hm + · have hx : x 0 = 1 := le_antisymm hxIcc.2 (not_lt.mp h) + rw [show x = !₂[(1 : ℝ), 0] from by ext i; fin_cases i <;> simp [hx, hx1]]; exact hp + +/-- **Step A, low exit case.** If the escaping path first meets the frontier at a point +below the axis, the concatenation `s → w → z₀ → m → l → n` (lower boundary region, +escaping path reversed, axis, north arc, axis) misses `J_s`, contradicting +`vertical_meets_arc`. -/ +private lemma step_A_case_low (hbr : BrouwerFPT) + {r : sphere (0 : Plane) 1 → Plane} + (hm : (!₂[(-1 : ℝ), 0] : Plane) ∈ range r) (hp : (!₂[(1 : ℝ), 0] : Plane) ∈ range r) + (hfar : ∀ z ∈ range r, ∀ w ∈ range r, dist z w ≤ 2) + {J_n J_s : Set Plane} (hJnr : J_n ⊆ range r) (hJsr : J_s ⊆ range r) + (hInter : J_n ∩ J_s = ({!₂[(-1 : ℝ), 0], !₂[(1 : ℝ), 0]} : Set Plane)) + (hpcJn : IsPathConnected (J_n \ ({!₂[(-1 : ℝ), 0], !₂[(1 : ℝ), 0]} : Set Plane))) + (hJoinJs : JoinedIn J_s (!₂[(-1 : ℝ), 0]) (!₂[(1 : ℝ), 0])) + {l m p z₀ : Plane} + (hlJn : l ∈ J_n) (hl0 : l 0 = 0) (hlmax : ∀ w ∈ range r, w 0 = 0 → w 1 ≤ l 1) + (hmJn : m ∈ J_n) (hm0 : m 0 = 0) + (hpJs : p ∈ J_s) (hpmax : ∀ w ∈ J_s, w 0 = 0 → w 1 ≤ m 1 → w 1 ≤ p 1) + (hz₀0 : z₀ 0 = 0) (hpz₀_lt : p 1 < z₀ 1) (hz₀m_lt : z₀ 1 < m 1) + {α : ℝ → Plane} {tw : ℝ} + (hαcont : Continuous α) (hα0 : α 0 = z₀) (htw0 : 0 ≤ tw) + (hαE : ∀ u ∈ Icc (0 : ℝ) tw, α u 0 ∈ Icc (-1 : ℝ) 1 ∧ α u 1 ∈ Icc (-2 : ℝ) 2) + (hαnr : ∀ u : ℝ, α u ∉ range r) + (hwC0 : α tw 0 ∈ Icc (-1 : ℝ) 1) (hwC1 : α tw 1 ∈ Icc (-2 : ℝ) 2) + (hwO : ¬(α tw 0 ∈ Ioo (-1 : ℝ) 1 ∧ α tw 1 ∈ Ioo (-2 : ℝ) 2)) + (hwneg : α tw 1 < 0) : False := by + have hErect := normalized_subset_rectangle hm hp hfar + have hmab := off_axis_endpoints hm0 + have hlab := off_axis_endpoints hl0 + have hlE1 : l 1 ∈ Icc (-2 : ℝ) 2 := (hErect (hJnr hlJn)).2 + have hmE1 : m 1 ∈ Icc (-2 : ℝ) 2 := (hErect (hJnr hmJn)).2 + have hpE1 : p 1 ∈ Icc (-2 : ℝ) 2 := (hErect (hJsr hpJs)).2 + have hz₀1lb : (-2 : ℝ) ≤ z₀ 1 := le_of_lt (lt_of_le_of_lt hpE1.1 hpz₀_lt) + have hs1 : (!₂[(0 : ℝ), -2] : Plane) 1 = -2 := by simp + have hn1 : (!₂[(0 : ℝ), 2] : Plane) 1 = 2 := by simp + obtain ⟨Glo, hGloPC, hsGlo, hGloSub, hGloAvoid, hGloFrom⟩ := + exists_lower_boundary_path hm hp hfar + have hwGlo : α tw ∈ Glo := hGloFrom (α tw) hwC0 hwC1 hwO hwneg + -- piece 1 : `s → w` inside `Glo` + obtain ⟨g1, hg1cont, hg1a, hg1b, hg1mem⟩ := + arc_path (hGloPC.joinedIn (!₂[(0 : ℝ), -2]) hsGlo (α tw) hwGlo) + -- piece 2 : `w → z₀` along the escaping path + set g2 : ℝ → Plane := fun t => α (tw * (1 - t) / 2) with hg2def + have hg2cont : ContinuousOn g2 (Icc (-1 : ℝ) 1) := + (hαcont.comp (by fun_prop : Continuous fun t : ℝ => tw * (1 - t) / 2)).continuousOn + have hg2a : g2 (-1) = α tw := by change α (tw * (1 - (-1)) / 2) = α tw; congr 1; ring + have hg2b : g2 1 = z₀ := by + change α (tw * (1 - 1) / 2) = z₀; rw [show tw * (1 - 1) / 2 = (0 : ℝ) from by ring, hα0] + have hg2arg : ∀ t ∈ Icc (-1 : ℝ) 1, tw * (1 - t) / 2 ∈ Icc (0 : ℝ) tw := by + intro t ht; rw [mem_Icc] at ht + rw [mul_div_assoc] + exact mul_unit_mem_Icc htw0 (by linarith [ht.2]) (by linarith [ht.1]) + -- piece 3 : `z₀ → m` along the axis + obtain ⟨g3, hg3cont, hg3a, hg3b, hg3x, hg3y⟩ := axis_segment hz₀0 hm0 hz₀m_lt.le + have hg3missJs : ∀ t ∈ Icc (-1 : ℝ) 1, g3 t ∉ J_s := by + intro t ht hJs + have hy := hg3y t ht; rw [mem_Icc] at hy + have := hpmax (g3 t) hJs (hg3x t) hy.2 + linarith [hy.1, hpz₀_lt] + -- piece 4 : `m → l` inside `J_n \ {a,b}` + obtain ⟨g4, hg4cont, hg4a, hg4b, hg4mem⟩ := + arc_path (hpcJn.joinedIn m ⟨hmJn, hmab⟩ l ⟨hlJn, hlab⟩) + have hg4missJs : ∀ t ∈ Icc (-1 : ℝ) 1, g4 t ∉ J_s := by + intro t ht hJs + have hg4 := hg4mem t ht + have hmem : g4 t ∈ J_n ∩ J_s := ⟨hg4.1, hJs⟩ + rw [hInter] at hmem; exact hg4.2 hmem + -- piece 5 : `l → n` along the axis + obtain ⟨g5, hg5cont, hg5a, hg5b, hg5x, hg5y⟩ := + axis_segment hl0 (show (!₂[(0 : ℝ), 2] : Plane) 0 = 0 from by simp) (by rw [hn1]; exact hlE1.2) + have hg5missJs : ∀ t ∈ Icc (-1 : ℝ) 1, g5 t ∉ J_s := by + intro t ht hJs + have hy := hg5y t ht; rw [mem_Icc] at hy + have hle := hlmax (g5 t) (hJsr hJs) (hg5x t) + have heq : g5 t 1 = l 1 := le_antisymm hle hy.1 + have hgl : g5 t = l := by ext i; fin_cases i <;> simp [hg5x t, hl0, heq] + rw [hgl] at hJs + have hmem : l ∈ J_n ∩ J_s := ⟨hlJn, hJs⟩ + rw [hInter] at hmem; exact hlab hmem + -- concatenate `s → w → z₀ → m → l → n` + obtain ⟨V, hVcont, hVa, hVb, hVmem⟩ := + concatPath5 hg1cont hg2cont hg3cont hg4cont hg5cont + (by rw [hg1b, hg2a]) (by rw [hg2b, hg3a]) (by rw [hg3b, hg4a]) (by rw [hg4b, hg5a]) + have hVm1 : V (-1) 1 = -2 := by rw [hVa, hg1a]; exact hs1 + have hVn1 : V 1 1 = 2 := by rw [hVb, hg5b]; exact hn1 + have hVE : ∀ t ∈ Icc (-1 : ℝ) 1, V t 0 ∈ Icc (-1 : ℝ) 1 ∧ V t 1 ∈ Icc (-2 : ℝ) 2 := by + intro t ht + rcases hVmem t ht with ((((h | h) | h) | h) | h) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue]; exact hGloSub (hg1mem u hu) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue]; exact hαE _ (hg2arg u hu) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] + have hy := hg3y u hu; rw [mem_Icc] at hy + exact ⟨by rw [hg3x u, mem_Icc]; constructor <;> norm_num, + mem_Icc.2 ⟨le_trans hz₀1lb hy.1, le_trans hy.2 hmE1.2⟩⟩ + · obtain ⟨u, hu, hue⟩ := h; rw [← hue]; exact hErect (hJnr (hg4mem u hu).1) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] + have hy := hg5y u hu; rw [mem_Icc] at hy + exact ⟨by rw [hg5x u, mem_Icc]; constructor <;> norm_num, + mem_Icc.2 ⟨le_trans hlE1.1 hy.1, hy.2⟩⟩ + have hVmiss : ∀ t ∈ Icc (-1 : ℝ) 1, V t ∉ J_s := by + intro t ht hJs + rcases hVmem t ht with ((((h | h) | h) | h) | h) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] at hJs + exact hGloAvoid (g1 u) (hg1mem u hu) (hJsr hJs) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] at hJs + exact hαnr (tw * (1 - u) / 2) (hJsr hJs) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] at hJs; exact hg3missJs u hu hJs + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] at hJs; exact hg4missJs u hu hJs + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] at hJs; exact hg5missJs u hu hJs + have hJsrect : J_s ⊆ {w : Plane | w 0 ∈ Icc (-1 : ℝ) 1 ∧ w 1 ∈ Icc (-2 : ℝ) 2} := + fun w hw => hErect (hJsr hw) + obtain ⟨t, ht, htJs⟩ := vertical_meets_arc hbr hJsrect hJoinJs hVcont hVE hVm1 hVn1 + exact hVmiss t ht htJs + +/-- **Step A, high exit case.** Mirror of `step_A_case_low`: if the escaping path first +meets the frontier above the axis, the concatenation `s → q → p → z₀ → w → n` misses +`J_n`, contradicting `vertical_meets_arc`. -/ +private lemma step_A_case_high (hbr : BrouwerFPT) + {r : sphere (0 : Plane) 1 → Plane} + (hm : (!₂[(-1 : ℝ), 0] : Plane) ∈ range r) (hp : (!₂[(1 : ℝ), 0] : Plane) ∈ range r) + (hfar : ∀ z ∈ range r, ∀ w ∈ range r, dist z w ≤ 2) + {J_n J_s : Set Plane} (hJnr : J_n ⊆ range r) (hJsr : J_s ⊆ range r) + (hInter : J_n ∩ J_s = ({!₂[(-1 : ℝ), 0], !₂[(1 : ℝ), 0]} : Set Plane)) + (hpcJs : IsPathConnected (J_s \ ({!₂[(-1 : ℝ), 0], !₂[(1 : ℝ), 0]} : Set Plane))) + (hJoinJn : JoinedIn J_n (!₂[(-1 : ℝ), 0]) (!₂[(1 : ℝ), 0])) + {m p q z₀ : Plane} + (hmJn : m ∈ J_n) (_hm0 : m 0 = 0) (hmmin : ∀ w ∈ J_n, w 0 = 0 → m 1 ≤ w 1) + (hpJs : p ∈ J_s) (hp0 : p 0 = 0) + (hqJs : q ∈ J_s) (hq0 : q 0 = 0) (hqm : q 1 < m 1) + (hz₀0 : z₀ 0 = 0) (hpz₀_lt : p 1 < z₀ 1) (hz₀m_lt : z₀ 1 < m 1) + {α : ℝ → Plane} {tw : ℝ} + (hαcont : Continuous α) (hα0 : α 0 = z₀) (htw0 : 0 ≤ tw) + (hαE : ∀ u ∈ Icc (0 : ℝ) tw, α u 0 ∈ Icc (-1 : ℝ) 1 ∧ α u 1 ∈ Icc (-2 : ℝ) 2) + (hαnr : ∀ u : ℝ, α u ∉ range r) + (hwC0 : α tw 0 ∈ Icc (-1 : ℝ) 1) (hwC1 : α tw 1 ∈ Icc (-2 : ℝ) 2) + (hwO : ¬(α tw 0 ∈ Ioo (-1 : ℝ) 1 ∧ α tw 1 ∈ Ioo (-2 : ℝ) 2)) + (hwpos : 0 < α tw 1) : False := by + have hErect := normalized_subset_rectangle hm hp hfar + have hqab := off_axis_endpoints hq0 + have hpab := off_axis_endpoints hp0 + have hqE1 : q 1 ∈ Icc (-2 : ℝ) 2 := (hErect (hJsr hqJs)).2 + have hpE1 : p 1 ∈ Icc (-2 : ℝ) 2 := (hErect (hJsr hpJs)).2 + have hmE1 : m 1 ∈ Icc (-2 : ℝ) 2 := (hErect (hJnr hmJn)).2 + have hz₀1ub : z₀ 1 ≤ 2 := le_of_lt (lt_of_lt_of_le hz₀m_lt hmE1.2) + have hs1 : (!₂[(0 : ℝ), -2] : Plane) 1 = -2 := by simp + have hn1 : (!₂[(0 : ℝ), 2] : Plane) 1 = 2 := by simp + obtain ⟨Gup, hGupPC, hnGup, hGupSub, hGupAvoid, hGupFrom⟩ := + exists_upper_boundary_path hm hp hfar + have hwGup : α tw ∈ Gup := hGupFrom (α tw) hwC0 hwC1 hwO hwpos + -- piece 1 : `s → q` along the axis + obtain ⟨g1, hg1cont, hg1a, hg1b, hg1x, hg1y⟩ := + axis_segment (show (!₂[(0 : ℝ), -2] : Plane) 0 = 0 from by simp) hq0 (by rw [hs1]; exact hqE1.1) + have hg1missJn : ∀ t ∈ Icc (-1 : ℝ) 1, g1 t ∉ J_n := by + intro t ht hJn + have hy := hg1y t ht; rw [mem_Icc] at hy + have := hmmin (g1 t) hJn (hg1x t) + linarith [hy.2, hqm] + -- piece 2 : `q → p` inside `J_s \ {a,b}` + obtain ⟨g2, hg2cont, hg2a, hg2b, hg2mem⟩ := + arc_path (hpcJs.joinedIn q ⟨hqJs, hqab⟩ p ⟨hpJs, hpab⟩) + have hg2missJn : ∀ t ∈ Icc (-1 : ℝ) 1, g2 t ∉ J_n := by + intro t ht hJn + have hg2' := hg2mem t ht + have hmem : g2 t ∈ J_n ∩ J_s := ⟨hJn, hg2'.1⟩ + rw [hInter] at hmem; exact hg2'.2 hmem + -- piece 3 : `p → z₀` along the axis + obtain ⟨g3, hg3cont, hg3a, hg3b, hg3x, hg3y⟩ := axis_segment hp0 hz₀0 hpz₀_lt.le + have hg3missJn : ∀ t ∈ Icc (-1 : ℝ) 1, g3 t ∉ J_n := by + intro t ht hJn + have hy := hg3y t ht; rw [mem_Icc] at hy + have := hmmin (g3 t) hJn (hg3x t) + linarith [hy.2, hz₀m_lt] + -- piece 4 : `z₀ → w` along the escaping path + set g4 : ℝ → Plane := fun t => α (tw * (t + 1) / 2) with hg4def + have hg4cont : ContinuousOn g4 (Icc (-1 : ℝ) 1) := + (hαcont.comp (by fun_prop : Continuous fun t : ℝ => tw * (t + 1) / 2)).continuousOn + have hg4a : g4 (-1) = z₀ := by + change α (tw * ((-1) + 1) / 2) = z₀; rw [show tw * ((-1) + 1) / 2 = (0 : ℝ) from by ring, hα0] + have hg4b : g4 1 = α tw := by change α (tw * (1 + 1) / 2) = α tw; congr 1; ring + have hg4arg : ∀ t ∈ Icc (-1 : ℝ) 1, tw * (t + 1) / 2 ∈ Icc (0 : ℝ) tw := by + intro t ht; rw [mem_Icc] at ht + rw [mul_div_assoc] + exact mul_unit_mem_Icc htw0 (by linarith [ht.1]) (by linarith [ht.2]) + -- piece 5 : `w → n` inside `Gup` + obtain ⟨g5, hg5cont, hg5a, hg5b, hg5mem⟩ := + arc_path (hGupPC.joinedIn (α tw) hwGup (!₂[(0 : ℝ), 2]) hnGup) + have hg5missJn : ∀ t ∈ Icc (-1 : ℝ) 1, g5 t ∉ J_n := by + intro t ht hJn; exact hGupAvoid (g5 t) (hg5mem t ht) (hJnr hJn) + -- concatenate `s → q → p → z₀ → w → n` + obtain ⟨V, hVcont, hVa, hVb, hVmem⟩ := + concatPath5 hg1cont hg2cont hg3cont hg4cont hg5cont + (by rw [hg1b, hg2a]) (by rw [hg2b, hg3a]) (by rw [hg3b, hg4a]) (by rw [hg4b, hg5a]) + have hVm1 : V (-1) 1 = -2 := by rw [hVa, hg1a]; exact hs1 + have hVn1 : V 1 1 = 2 := by rw [hVb, hg5b]; exact hn1 + have hVE : ∀ t ∈ Icc (-1 : ℝ) 1, V t 0 ∈ Icc (-1 : ℝ) 1 ∧ V t 1 ∈ Icc (-2 : ℝ) 2 := by + intro t ht + rcases hVmem t ht with ((((h | h) | h) | h) | h) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] + have hy := hg1y u hu; rw [mem_Icc] at hy + exact ⟨by rw [hg1x u, mem_Icc]; constructor <;> norm_num, + mem_Icc.2 ⟨hy.1, le_trans hy.2 hqE1.2⟩⟩ + · obtain ⟨u, hu, hue⟩ := h; rw [← hue]; exact hErect (hJsr (hg2mem u hu).1) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] + have hy := hg3y u hu; rw [mem_Icc] at hy + exact ⟨by rw [hg3x u, mem_Icc]; constructor <;> norm_num, + mem_Icc.2 ⟨le_trans hpE1.1 hy.1, le_trans hy.2 hz₀1ub⟩⟩ + · obtain ⟨u, hu, hue⟩ := h; rw [← hue]; exact hαE _ (hg4arg u hu) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue]; exact hGupSub (hg5mem u hu) + have hVmiss : ∀ t ∈ Icc (-1 : ℝ) 1, V t ∉ J_n := by + intro t ht hJn + rcases hVmem t ht with ((((h | h) | h) | h) | h) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] at hJn; exact hg1missJn u hu hJn + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] at hJn; exact hg2missJn u hu hJn + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] at hJn; exact hg3missJn u hu hJn + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] at hJn + exact hαnr (tw * (u + 1) / 2) (hJnr hJn) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] at hJn; exact hg5missJn u hu hJn + have hJnrect : J_n ⊆ {w : Plane | w 0 ∈ Icc (-1 : ℝ) 1 ∧ w 1 ∈ Icc (-2 : ℝ) 2} := + fun w hw => hErect (hJnr hw) + obtain ⟨t, ht, htJn⟩ := vertical_meets_arc hbr hJnrect hJoinJn hVcont hVE hVm1 hVn1 + exact hVmiss t ht htJn + +/-- **Maehara Step A (normalized).** The geometric core in normalized coordinates: +the farthest pair sits at `!₂[-1,0]`, `!₂[1,0]` (so the diameter is `2`). -/ +theorem step_A_normalized (hbr : BrouwerFPT) + {r : sphere (0 : Plane) 1 → Plane} (hcont : Continuous r) (hinj : Injective r) + (hm : (!₂[(-1 : ℝ), 0] : Plane) ∈ range r) (hp : (!₂[(1 : ℝ), 0] : Plane) ∈ range r) + (hfar : ∀ z ∈ range r, ∀ w ∈ range r, dist z w ≤ 2) : + ∃ x ∈ (range r)ᶜ, IsBounded (connectedComponentIn (range r)ᶜ x) := by + classical + obtain ⟨J_n, J_s, l, m, p, q, z₀, hUnion, hInter, hpcJn, + ⟨hlJn, hl0, hlmax⟩, ⟨hmJn, hm0, hmmin⟩, ⟨hpJs, hp0, hpm, hpmax⟩, + ⟨hqJs, hq0, hqmin⟩, hz₀def, hml, hqp, hpz₀, hz₀m, + hpcJs, hJoinJn, hJoinJs⟩ := exists_construction_points hbr hcont hinj hm hp hfar + -- basic containments, coordinates, and rectangle bounds + have hJnr : J_n ⊆ range r := hUnion ▸ subset_union_left + have hJsr : J_s ⊆ range r := hUnion ▸ subset_union_right + have hErect := normalized_subset_rectangle hm hp hfar + have hz₀0 : z₀ 0 = 0 := by rw [hz₀def]; simp + have hz₀1e : z₀ 1 = (m 1 + p 1) / 2 := by rw [hz₀def]; simp + have hmE1 : m 1 ∈ Icc (-2 : ℝ) 2 := (hErect (hJnr hmJn)).2 + have hpE1 : p 1 ∈ Icc (-2 : ℝ) 2 := (hErect (hJsr hpJs)).2 + -- `p 1 < m 1` (else `p = m` would lie in `J_n ∩ J_s = {a,b}` off the axis) + have hpm_lt : p 1 < m 1 := by + rcases lt_or_eq_of_le hpm with h | h + · exact h + · exfalso + have hpm_eq : p = m := by ext i; fin_cases i <;> simp [hp0, hm0, h] + have hmem : m ∈ J_n ∩ J_s := ⟨hmJn, hpm_eq ▸ hpJs⟩ + rw [hInter] at hmem + rcases hmem with h' | h' <;> + (have hc := congrArg (fun x : Plane => x 0) h'; simp only [hm0] at hc; norm_num at hc) + have hqm : q 1 < m 1 := lt_of_le_of_lt hqp hpm_lt + have hpz₀_lt : p 1 < z₀ 1 := by rw [hz₀1e]; linarith + have hz₀m_lt : z₀ 1 < m 1 := by rw [hz₀1e]; linarith + -- **A.0** : `z₀ ∉ range r` + have hz₀c : z₀ ∈ (range r)ᶜ := by + intro hz₀r + rw [← hUnion] at hz₀r + rcases hz₀r with hJn | hJs + · exact absurd (hmmin z₀ hJn hz₀0) (not_le.2 hz₀m_lt) + · exact absurd (hpmax z₀ hJs hz₀0 hz₀m_lt.le) (not_le.2 hpz₀_lt) + refine ⟨z₀, hz₀c, ?_⟩ + -- the rectangle `E`, its open interior `O` + set E : Set Plane := {p : Plane | p 0 ∈ Icc (-1 : ℝ) 1 ∧ p 1 ∈ Icc (-2 : ℝ) 2} with hEdef + set O : Set Plane := {p : Plane | p 0 ∈ Ioo (-1 : ℝ) 1 ∧ p 1 ∈ Ioo (-2 : ℝ) 2} with hOdef + have hEbdd : IsBounded E := by rw [hEdef]; exact isBounded_rectE + have hOopen : IsOpen O := by rw [hOdef]; exact isOpen_rectO + have hEclosed : IsClosed E := by rw [hEdef]; exact isClosed_rectE + have hOE : O ⊆ E := fun w hw => ⟨Ioo_subset_Icc_self hw.1, Ioo_subset_Icc_self hw.2⟩ + have hz₀O : z₀ ∈ O := by + refine ⟨?_, ?_⟩ + · rw [mem_Ioo, hz₀0]; constructor <;> norm_num + · rw [mem_Ioo, hz₀1e]; exact ⟨by linarith [hpE1.1, hpm_lt], by linarith [hmE1.2, hpm_lt]⟩ + -- assume the component is unbounded and derive a contradiction + by_contra hUunb + set U : Set Plane := connectedComponentIn (range r)ᶜ z₀ with hUeq + have hUsub : U ⊆ (range r)ᶜ := connectedComponentIn_subset _ _ + have hz₀U : z₀ ∈ U := mem_connectedComponentIn hz₀c + have hUpc : IsPathConnected U := isPathConnected_component r hcont hz₀c + have hUnotsub : ¬ U ⊆ E := fun h => hUunb (hEbdd.subset h) + obtain ⟨y, hyU, hyE⟩ := Set.not_subset.mp hUnotsub + -- reparametrized escaping path `α : ℝ → Plane` + have hJoinU : JoinedIn U z₀ y := hUpc.joinedIn z₀ hz₀U y hyU + set α : ℝ → Plane := fun t => hJoinU.somePath (Set.projIcc (0 : ℝ) 1 (by norm_num) t) with hαdef + have hαcont : Continuous α := hJoinU.somePath.continuous.comp continuous_projIcc + have hα0 : α 0 = z₀ := by + change hJoinU.somePath _ = z₀ + rw [show Set.projIcc (0 : ℝ) 1 (by norm_num) 0 = 0 from Subtype.ext + (by rw [Set.coe_projIcc]; norm_num)] + exact hJoinU.somePath.source + have hα1 : α 1 = y := by + change hJoinU.somePath _ = y + rw [show Set.projIcc (0 : ℝ) 1 (by norm_num) 1 = 1 from Subtype.ext + (by rw [Set.coe_projIcc]; norm_num)] + exact hJoinU.somePath.target + have hαU : ∀ t : ℝ, α t ∈ U := fun t => hJoinU.somePath_mem _ + -- first exit through the frontier `E \ O` + obtain ⟨tw, htw, hwC, hwO, hbelow⟩ := + exists_first_exit hOopen hEclosed hOE hαcont.continuousOn (by rw [hα0]; exact hz₀O) + (by rw [hα1]; exact hyE) + have hαE : ∀ u ∈ Icc (0 : ℝ) tw, α u ∈ E := by + intro u hu + rcases eq_or_lt_of_le hu.2 with h | h + · rw [h]; exact hwC + · exact hOE (hbelow u ⟨hu.1, h⟩) + have hwnr : α tw ∉ range r := hUsub (hαU tw) + -- `α tw` is off the axis + have hw1ne : α tw 1 ≠ 0 := fun hzero => + hwnr (axis_zero_mem_range hm hp hwC.1 hwO hzero) + rcases lt_or_gt_of_ne hw1ne with hwneg | hwpos + · exact step_A_case_low hbr hm hp hfar hJnr hJsr hInter hpcJn hJoinJs + hlJn hl0 hlmax hmJn hm0 hpJs hpmax hz₀0 hpz₀_lt hz₀m_lt + hαcont hα0 htw.1.le (fun u hu => hαE u hu) (fun u => hUsub (hαU u)) + hwC.1 hwC.2 hwO hwneg + · exact step_A_case_high hbr hm hp hfar hJnr hJsr hInter hpcJs hJoinJn + hmJn hm0 hmmin hpJs hp0 hqJs hq0 hqm hz₀0 hpz₀_lt hz₀m_lt + hαcont hα0 htw.1.le (fun u hu => hαE u hu) (fun u => hUsub (hαU u)) + hwC.1 hwC.2 hwO hwpos + +/-- **Maehara Step A (geometric core).** The complement `ℝ²∖J` of a Jordan curve +has at least one *bounded* connected component. Reduced to the normalized version +`step_A_normalized` via the farthest-pair similarity `T`. -/ +theorem step_A_exists_bounded (hbr : BrouwerFPT) + {r : sphere (0 : Plane) 1 → Plane} (hcont : Continuous r) (hinj : Injective r) : + ∃ x ∈ (range r)ᶜ, IsBounded (connectedComponentIn (range r)ᶜ x) := by + obtain ⟨a, ha, b, hb, hfar, hab⟩ := exists_farthest_pair hcont hinj + obtain ⟨T, hscale, hTa, hTb⟩ := exists_similarity hab + have hdpos : 0 < dist a b := dist_pos.mpr hab + have hcpos : (0 : ℝ) < 2 / dist a b := by positivity + -- the transported curve `r' = T ∘ r` + set r' : sphere (0 : Plane) 1 → Plane := fun p => T (r p) with hr' + have hr'cont : Continuous r' := T.continuous.comp hcont + have hr'inj : Injective r' := T.injective.comp hinj + have hrange : range r' = T '' range r := by + rw [hr', show (fun p => T (r p)) = (T : Plane → Plane) ∘ r from rfl, Set.range_comp] + -- normalized hypotheses for `r'` + have hm' : (!₂[(-1 : ℝ), 0] : Plane) ∈ range r' := by + rw [hrange, ← hTa]; exact mem_image_of_mem _ ha + have hp' : (!₂[(1 : ℝ), 0] : Plane) ∈ range r' := by + rw [hrange, ← hTb]; exact mem_image_of_mem _ hb + have hfar' : ∀ z ∈ range r', ∀ w ∈ range r', dist z w ≤ 2 := by + rw [hrange] + rintro _ ⟨z, hz, rfl⟩ _ ⟨w, hw, rfl⟩ + rw [hscale] + calc 2 / dist a b * dist z w + ≤ 2 / dist a b * dist a b := by + exact mul_le_mul_of_nonneg_left (hfar z hz w hw) hcpos.le + _ = 2 := by field_simp + obtain ⟨x, hx, hxb⟩ := step_A_normalized hbr hr'cont hr'inj hm' hp' hfar' + -- transport the bounded component back by `T⁻¹` + rw [hrange] at hx hxb + -- `x ∈ (T '' range r)ᶜ = T '' (range r)ᶜ` + have himg : (T '' range r)ᶜ = T '' (range r)ᶜ := + (Set.image_compl_eq (f := (T : Plane → Plane)) T.bijective).symm + rw [himg] at hx hxb + obtain ⟨x₀, hx₀, rfl⟩ := hx + refine ⟨x₀, hx₀, ?_⟩ + -- component of `x = T x₀` corresponds to component of `x₀` under `T` + have hcc : connectedComponentIn ((T : Plane → Plane) '' (range r)ᶜ) (T x₀) + = T '' connectedComponentIn (range r)ᶜ x₀ := + (T.image_connectedComponentIn hx₀).symm + rw [hcc] at hxb + exact (isBounded_image_scaling hcpos hscale _).mp hxb + +/-- The Euclidean norm of an axis point `!₂[0,y]` equals `|y|`. -/ +private lemma norm_axis_pt (y : ℝ) : ‖(!₂[(0 : ℝ), y] : Plane)‖ = |y| := by + have e0 : (!₂[(0 : ℝ), y] : Plane) 0 = 0 := by simp + have e1 : (!₂[(0 : ℝ), y] : Plane) 1 = y := by simp + rw [EuclideanSpace.norm_eq, Fin.sum_univ_two, e0, e1] + simp [Real.sqrt_sq_eq_abs] + +/-- The upward axis ray `{p | p 0 = 0 ∧ c < p 1}` is unbounded. -/ +private lemma axis_ray_up_unbounded (c : ℝ) : + ¬ IsBounded {p : Plane | p 0 = 0 ∧ p 1 ∈ Ioi c} := by + intro hb + obtain ⟨M, hM⟩ := hb.subset_closedBall (0 : Plane) + have hy1 : (!₂[(0 : ℝ), |c| + |M| + 1] : Plane) 1 = |c| + |M| + 1 := by simp + have hmem : (!₂[(0 : ℝ), |c| + |M| + 1] : Plane) ∈ {p : Plane | p 0 = 0 ∧ p 1 ∈ Ioi c} := by + refine ⟨by simp, ?_⟩ + rw [mem_Ioi, hy1]; linarith [le_abs_self c, abs_nonneg M] + have hin := hM hmem + rw [mem_closedBall_zero_iff, norm_axis_pt, abs_of_nonneg (by positivity : (0 : ℝ) ≤ |c| + |M| + + 1)] at hin + linarith [le_abs_self M, abs_nonneg c] + +/-- The downward axis ray `{p | p 0 = 0 ∧ p 1 < c}` is unbounded. -/ +private lemma axis_ray_down_unbounded (c : ℝ) : + ¬ IsBounded {p : Plane | p 0 = 0 ∧ p 1 ∈ Iio c} := by + intro hb + obtain ⟨M, hM⟩ := hb.subset_closedBall (0 : Plane) + have hy1 : (!₂[(0 : ℝ), -(|c| + |M| + 1)] : Plane) 1 = -(|c| + |M| + 1) := by simp + have hmem : (!₂[(0 : ℝ), -(|c| + |M| + 1)] : Plane) ∈ {p : Plane | p 0 = 0 ∧ p 1 ∈ Iio c} := by + refine ⟨by simp, ?_⟩ + rw [mem_Iio, hy1]; linarith [neg_abs_le c, abs_nonneg M] + have hin := hM hmem + rw [mem_closedBall_zero_iff, norm_axis_pt, abs_neg, + abs_of_nonneg (by positivity : (0 : ℝ) ≤ |c| + |M| + 1)] at hin + linarith [le_abs_self M, abs_nonneg c] + +/-- The complement of the normalized rectangle `[-1,1]×[-2,2]` is preconnected +(it is the union of four half-planes chained around the rectangle). -/ +private lemma isPreconnected_rect_compl : + IsPreconnected {v : Plane | ¬(v 0 ∈ Icc (-1 : ℝ) 1 ∧ v 1 ∈ Icc (-2 : ℝ) 2)} := by + have cA : Convex ℝ {v : Plane | v 0 ∈ Iio (-1 : ℝ)} := + (convex_Iio _).is_linear_preimage (EuclideanSpace.proj (0:Fin 2)).isLinear + have cB : Convex ℝ {v : Plane | v 0 ∈ Ioi (1 : ℝ)} := + (convex_Ioi _).is_linear_preimage (EuclideanSpace.proj (0:Fin 2)).isLinear + have cC : Convex ℝ {v : Plane | v 1 ∈ Iio (-2 : ℝ)} := + (convex_Iio _).is_linear_preimage (EuclideanSpace.proj (1:Fin 2)).isLinear + have cD : Convex ℝ {v : Plane | v 1 ∈ Ioi (2 : ℝ)} := + (convex_Ioi _).is_linear_preimage (EuclideanSpace.proj (1:Fin 2)).isLinear + -- membership witnesses at the four "corners" + have mAD_A : (!₂[(-2 : ℝ), 3] : Plane) ∈ {v : Plane | v 0 ∈ Iio (-1 : ℝ)} := by + simp only [Set.mem_ofPred_eq, mem_Iio]; norm_num + have mAD_D : (!₂[(-2 : ℝ), 3] : Plane) ∈ {v : Plane | v 1 ∈ Ioi (2 : ℝ)} := by + simp only [Set.mem_ofPred_eq, mem_Ioi]; norm_num + have mB_D : (!₂[(2 : ℝ), 3] : Plane) ∈ {v : Plane | v 1 ∈ Ioi (2 : ℝ)} := by + simp only [Set.mem_ofPred_eq, mem_Ioi]; norm_num + have mB_B : (!₂[(2 : ℝ), 3] : Plane) ∈ {v : Plane | v 0 ∈ Ioi (1 : ℝ)} := by + simp only [Set.mem_ofPred_eq, mem_Ioi]; norm_num + have mC_B : (!₂[(2 : ℝ), -3] : Plane) ∈ {v : Plane | v 0 ∈ Ioi (1 : ℝ)} := by + simp only [Set.mem_ofPred_eq, mem_Ioi]; norm_num + have mC_C : (!₂[(2 : ℝ), -3] : Plane) ∈ {v : Plane | v 1 ∈ Iio (-2 : ℝ)} := by + simp only [Set.mem_ofPred_eq, mem_Iio]; norm_num + have hAD : IsPreconnected ({v : Plane | v 0 ∈ Iio (-1 : ℝ)} ∪ {v : Plane | v 1 ∈ Ioi (2 : ℝ)}) := + cA.isPreconnected.union _ mAD_A mAD_D cD.isPreconnected + have hADB : IsPreconnected (({v : Plane | v 0 ∈ Iio (-1 : ℝ)} ∪ {v : Plane | v 1 ∈ Ioi (2 : ℝ)}) + ∪ {v : Plane | v 0 ∈ Ioi (1 : ℝ)}) := + hAD.union _ (Or.inr mB_D) mB_B cB.isPreconnected + have hADBC : IsPreconnected ((({v : Plane | v 0 ∈ Iio (-1 : ℝ)} ∪ {v : Plane | v 1 ∈ Ioi (2 : ℝ)}) + ∪ {v : Plane | v 0 ∈ Ioi (1 : ℝ)}) ∪ {v : Plane | v 1 ∈ Iio (-2 : ℝ)}) := + hADB.union _ (Or.inr mC_B) mC_C cC.isPreconnected + have hEq : {v : Plane | ¬(v 0 ∈ Icc (-1 : ℝ) 1 ∧ v 1 ∈ Icc (-2 : ℝ) 2)} + = ((({v : Plane | v 0 ∈ Iio (-1 : ℝ)} ∪ {v : Plane | v 1 ∈ Ioi (2 : ℝ)}) + ∪ {v : Plane | v 0 ∈ Ioi (1 : ℝ)}) ∪ {v : Plane | v 1 ∈ Iio (-2 : ℝ)}) := by + ext v + simp only [mem_ofPred_eq, mem_union, mem_Icc, mem_Iio, mem_Ioi, not_and_or, not_le] + tauto + rw [hEq]; exact hADBC + +/-- Straight segment from `P` to `Q`, reparametrized on `[-1,1]`. -/ +private noncomputable def segP (P Q : Plane) : ℝ → Plane := fun t => P + ((t + 1) / 2) • (Q - P) + +private lemma segP_cont (P Q : Plane) : Continuous (segP P Q) := by unfold segP; fun_prop + +private lemma segP_neg1 (P Q : Plane) : segP P Q (-1) = P := by simp [segP] + +private lemma segP_one (P Q : Plane) : segP P Q 1 = Q := by simp [segP] + +private lemma segP_coord (P Q : Plane) (t : ℝ) (i : Fin 2) : + segP P Q t i = P i + ((t + 1) / 2) * (Q i - P i) := by + simp only [segP, PiLp.add_apply, PiLp.smul_apply, PiLp.sub_apply, smul_eq_mul] + +private lemma segP_dist_le (P Q : Plane) {t : ℝ} (ht : t ∈ Icc (-1 : ℝ) 1) : + dist (segP P Q t) P ≤ dist Q P := by + have hs : |(t + 1) / 2| ≤ 1 := by + rw [mem_Icc] at ht; rw [abs_le]; constructor <;> linarith [ht.1, ht.2] + have heq : dist (segP P Q t) P = |(t + 1) / 2| * dist Q P := by + rw [segP, dist_eq_norm, add_sub_cancel_left, norm_smul, Real.norm_eq_abs, ← dist_eq_norm] + rw [heq] + calc |(t + 1) / 2| * dist Q P ≤ 1 * dist Q P := + mul_le_mul_of_nonneg_right hs dist_nonneg + _ = dist Q P := one_mul _ + +private lemma segP_dist_le' (P Q : Plane) {t : ℝ} (ht : t ∈ Icc (-1 : ℝ) 1) : + dist (segP P Q t) Q ≤ dist P Q := by + have hs : |1 - (t + 1) / 2| ≤ 1 := by + rw [mem_Icc] at ht; rw [abs_le]; constructor <;> linarith [ht.1, ht.2] + have heq : dist (segP P Q t) Q = |1 - (t + 1) / 2| * dist P Q := by + rw [segP, dist_eq_norm, + show P + ((t + 1) / 2) • (Q - P) - Q = (1 - (t + 1) / 2) • (P - Q) from by module, + norm_smul, Real.norm_eq_abs, ← dist_eq_norm] + rw [heq] + calc |1 - (t + 1) / 2| * dist P Q ≤ 1 * dist P Q := + mul_le_mul_of_nonneg_right hs dist_nonneg + _ = dist P Q := one_mul _ + +/-- A coordinate of a segment point lies in any interval containing both endpoints' +corresponding coordinates. -/ +private lemma segP_coord_mem_Icc {P Q : Plane} (i : Fin 2) {lo hi : ℝ} + (hP : P i ∈ Icc lo hi) (hQ : Q i ∈ Icc lo hi) {t : ℝ} (ht : t ∈ Icc (-1 : ℝ) 1) : + segP P Q t i ∈ Icc lo hi := by + rw [mem_Icc] at hP hQ ht + rw [segP_coord, mem_Icc] + have hs0 : (0 : ℝ) ≤ (t + 1) / 2 := by linarith [ht.1] + have hs1 : (t + 1) / 2 ≤ 1 := by linarith [ht.2] + constructor + · nlinarith [mul_nonneg hs0 (by linarith [hQ.1] : (0 : ℝ) ≤ Q i - lo), + mul_nonneg (by linarith [hs1] : (0 : ℝ) ≤ 1 - (t + 1) / 2) (by linarith [hP.1] : (0 : ℝ) ≤ P + i - + lo)] + · nlinarith [mul_nonneg hs0 (by linarith [hQ.2] : (0 : ℝ) ≤ hi - Q i), + mul_nonneg (by linarith [hs1] : (0 : ℝ) ≤ 1 - (t + 1) / 2) (by linarith [hP.2] : (0 : ℝ) ≤ + hi - + P i)] + +/-- **Maehara Step B (normalized).** Uniqueness of the bounded component in +normalized coordinates (farthest pair at `!₂[-1,0]`, `!₂[1,0]`). Any bounded +component equals the `z₀`-component `U`, hence all bounded components coincide. -/ +private theorem bounded_component_subset_normalized_rectangle + {r : sphere (0 : Plane) 1 → Plane} + (hErect : range r ⊆ {p | p 0 ∈ Icc (-1 : ℝ) 1 ∧ p 1 ∈ Icc (-2 : ℝ) 2}) + (w : Plane) (hwb : IsBounded (connectedComponentIn (range r)ᶜ w)) : + connectedComponentIn (range r)ᶜ w ⊆ + {p | p 0 ∈ Icc (-1 : ℝ) 1 ∧ p 1 ∈ Icc (-2 : ℝ) 2} := by + let W := connectedComponentIn (range r)ᶜ w + have hbounded : IsBounded W := hwb + have compW : ∀ {v : Plane}, v ∈ W → connectedComponentIn (range r)ᶜ v = W := by + intro v hv + exact (connectedComponentIn_eq hv).symm + intro v hvW + by_contra hvE + change ¬(v 0 ∈ Icc (-1 : ℝ) 1 ∧ v 1 ∈ Icc (-2 : ℝ) 2) at hvE + have hvEc : v ∈ {u : Plane | ¬(u 0 ∈ Icc (-1 : ℝ) 1 ∧ u 1 ∈ Icc (-2 : ℝ) 2)} := hvE + have hEcc : {u : Plane | ¬(u 0 ∈ Icc (-1 : ℝ) 1 ∧ u 1 ∈ Icc (-2 : ℝ) 2)} ⊆ (range r)ᶜ := + fun u hu hur => hu (hErect hur) + have h1 := isPreconnected_rect_compl.subset_connectedComponentIn hvEc hEcc + have hup : {p : Plane | p 0 = 0 ∧ p 1 ∈ Ioi (2 : ℝ)} + ⊆ {u : Plane | ¬(u 0 ∈ Icc (-1 : ℝ) 1 ∧ u 1 ∈ Icc (-2 : ℝ) 2)} := by + rintro u ⟨_, hu1⟩ ⟨_, hu2⟩ + rw [mem_Icc] at hu2; rw [mem_Ioi] at hu1; linarith [hu2.2] + exact axis_ray_up_unbounded 2 (hbounded.subset (subset_trans hup (compW hvW ▸ h1))) + +private theorem path_component_crossing_contradiction (hbr : BrouwerFPT) + (W : Set Plane) (hWpc : IsPathConnected W) + (hWE : W ⊆ {p | p 0 ∈ Icc (-1 : ℝ) 1 ∧ p 1 ∈ Icc (-2 : ℝ) 2}) + (β : ℝ → Plane) (hβcont : ContinuousOn β (Icc (-1 : ℝ) 1)) + (hβE : ∀ t ∈ Icc (-1 : ℝ) 1, β t 0 ∈ Icc (-1 : ℝ) 1 ∧ β t 1 ∈ Icc (-2 : ℝ) 2) + (hβa : β (-1) = !₂[(0 : ℝ), 2]) (hβb : β 1 = !₂[(0 : ℝ), -2]) + (hβmiss : ∀ t ∈ Icc (-1 : ℝ) 1, β t ∉ W) + (haclW : (!₂[(-1 : ℝ), 0] : Plane) ∈ closure W) + (hbclW : (!₂[(1 : ℝ), 0] : Plane) ∈ closure W) + (ha_notβ : (!₂[(-1 : ℝ), 0] : Plane) ∉ β '' Icc (-1 : ℝ) 1) + (hb_notβ : (!₂[(1 : ℝ), 0] : Plane) ∉ β '' Icc (-1 : ℝ) 1) : False := by + classical + let βimg := β '' Icc (-1 : ℝ) 1 + have hβimg_closed : IsClosed βimg := (isCompact_Icc.image_of_continuousOn hβcont).isClosed + have ha0 : (!₂[(-1 : ℝ), 0] : Plane) 0 = -1 := by simp + have ha1 : (!₂[(-1 : ℝ), 0] : Plane) 1 = 0 := by simp + have hb0 : (!₂[(1 : ℝ), 0] : Plane) 0 = 1 := by simp + have hb1 : (!₂[(1 : ℝ), 0] : Plane) 1 = 0 := by simp + have hs0 : (!₂[(0 : ℝ), -2] : Plane) 0 = 0 := by simp + have hs1 : (!₂[(0 : ℝ), -2] : Plane) 1 = -2 := by simp + have hn0 : (!₂[(0 : ℝ), 2] : Plane) 0 = 0 := by simp + have hn1 : (!₂[(0 : ℝ), 2] : Plane) 1 = 2 := by simp + have hIcc0x : (0 : ℝ) ∈ Icc (-1 : ℝ) 1 := by rw [mem_Icc]; norm_num + have hIcc0y : (0 : ℝ) ∈ Icc (-2 : ℝ) 2 := by rw [mem_Icc]; norm_num + have hIcc2y : (2 : ℝ) ∈ Icc (-2 : ℝ) 2 := by rw [mem_Icc]; norm_num + have hIccm2y : (-2 : ℝ) ∈ Icc (-2 : ℝ) 2 := by rw [mem_Icc]; norm_num + have hIccm1x : (-1 : ℝ) ∈ Icc (-1 : ℝ) 1 := by rw [mem_Icc]; norm_num + have hIcc1x : (1 : ℝ) ∈ Icc (-1 : ℝ) 1 := by rw [mem_Icc]; norm_num + obtain ⟨εa, hεa, hballa⟩ := Metric.isOpen_iff.mp hβimg_closed.isOpen_compl _ ha_notβ + obtain ⟨εb, hεb, hballb⟩ := Metric.isOpen_iff.mp hβimg_closed.isOpen_compl _ hb_notβ + -- points of `W` near `a, b` + rw [Metric.mem_closure_iff] at haclW hbclW + obtain ⟨a₁, ha₁W, ha₁d⟩ := haclW εa hεa + obtain ⟨b₁, hb₁W, hb₁d⟩ := hbclW εb hεb + have ha₁E : a₁ 0 ∈ Icc (-1 : ℝ) 1 ∧ a₁ 1 ∈ Icc (-2 : ℝ) 2 := hWE ha₁W + have hb₁E : b₁ 0 ∈ Icc (-1 : ℝ) 1 ∧ b₁ 1 ∈ Icc (-2 : ℝ) 2 := hWE hb₁W + -- **path** `H : a → b`, left to right, inside `E`, missing `β` + have hHp1_cont : ContinuousOn (segP (!₂[(-1 : ℝ), 0]) a₁) (Icc (-1 : ℝ) 1) := (segP_cont _ + _).continuousOn + obtain ⟨Harc, hHarc_cont, hHarc_a, hHarc_b, hHarc_mem⟩ := + arc_path (hWpc.joinedIn a₁ ha₁W b₁ hb₁W) + have hHp3_cont : ContinuousOn (segP b₁ (!₂[(1 : ℝ), 0])) (Icc (-1 : ℝ) 1) := (segP_cont _ + _).continuousOn + obtain ⟨H, hHcont, hHa, hHb, hHmem⟩ := + concatPath3 hHp1_cont hHarc_cont hHp3_cont + (by rw [segP_one, hHarc_a]) (by rw [hHarc_b, segP_neg1]) + have hHa0 : H (-1) 0 = -1 := by rw [hHa, segP_neg1, ha0] + have hHb0 : H 1 0 = 1 := by rw [hHb, segP_one, hb0] + have hHE : ∀ t ∈ Icc (-1 : ℝ) 1, H t 0 ∈ Icc (-1 : ℝ) 1 ∧ H t 1 ∈ Icc (-2 : ℝ) 2 := by + intro t ht + rcases hHmem t ht with (h | h) | h + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] + exact ⟨segP_coord_mem_Icc 0 (by rw [ha0]; exact hIccm1x) ha₁E.1 hu, + segP_coord_mem_Icc 1 (by rw [ha1]; exact hIcc0y) ha₁E.2 hu⟩ + · obtain ⟨u, hu, hue⟩ := h; rw [← hue]; exact hWE (hHarc_mem u hu) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] + exact ⟨segP_coord_mem_Icc 0 hb₁E.1 (by rw [hb0]; exact hIcc1x) hu, + segP_coord_mem_Icc 1 hb₁E.2 (by rw [hb1]; exact hIcc0y) hu⟩ + have hHmiss : ∀ t ∈ Icc (-1 : ℝ) 1, H t ∉ βimg := by + intro t ht + rcases hHmem t ht with (h | h) | h + · obtain ⟨u, hu, hue⟩ := h; rw [← hue]; intro hmemβ + have hin : segP (!₂[(-1 : ℝ), 0]) a₁ u ∈ Metric.ball (!₂[(-1 : ℝ), 0] : Plane) εa := by + rw [Metric.mem_ball] + calc dist (segP (!₂[(-1 : ℝ), 0]) a₁ u) (!₂[(-1 : ℝ), 0]) + ≤ dist a₁ (!₂[(-1 : ℝ), 0]) := segP_dist_le _ _ hu + _ < εa := by rw [dist_comm]; exact ha₁d + exact hballa hin hmemβ + · obtain ⟨u, hu, hue⟩ := h; rw [← hue]; intro hmemβ + obtain ⟨t', ht', ht'e⟩ := hmemβ + exact hβmiss t' ht' (by rw [ht'e]; exact hHarc_mem u hu) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue]; intro hmemβ + have hin : segP b₁ (!₂[(1 : ℝ), 0]) u ∈ Metric.ball (!₂[(1 : ℝ), 0] : Plane) εb := by + rw [Metric.mem_ball] + calc dist (segP b₁ (!₂[(1 : ℝ), 0]) u) (!₂[(1 : ℝ), 0]) + ≤ dist b₁ (!₂[(1 : ℝ), 0]) := segP_dist_le' _ _ hu + _ < εb := by rw [dist_comm]; exact hb₁d + exact hballb hin hmemβ + -- reorient `β` bottom-to-top and cross with `H` + set v : ℝ → Plane := fun t => β (-t) with hvdef + have hvcont : ContinuousOn v (Icc (-1 : ℝ) 1) := + hβcont.comp continuous_neg.continuousOn (fun t ht => by + rw [mem_Icc] at ht ⊢; exact ⟨by linarith [ht.2], by linarith [ht.1]⟩) + have hvE : ∀ t ∈ Icc (-1 : ℝ) 1, v t 0 ∈ Icc (-1 : ℝ) 1 ∧ v t 1 ∈ Icc (-2 : ℝ) 2 := by + intro t ht; rw [mem_Icc] at ht + exact hβE (-t) (by rw [mem_Icc]; exact ⟨by linarith [ht.2], by linarith [ht.1]⟩) + have hv1 : v (-1) 1 = -2 := by change β (-(-1)) 1 = -2; rw [neg_neg, hβb, hs1] + have hv2 : v 1 1 = 2 := by change β (-1) 1 = 2; rw [hβa, hn1] + obtain ⟨s, hs, t, ht, heq⟩ := crossing hbr (by norm_num : (-1 : ℝ) ≤ 1) (by norm_num : (-2 : ℝ) + ≤ 2) + H v hHcont hvcont hHE hvE hHa0 hHb0 hv1 hv2 + apply hHmiss s hs + rw [heq] + exact Set.mem_image_of_mem β (show (-t) ∈ Icc (-1 : ℝ) 1 by + rw [mem_Icc] at ht ⊢; exact ⟨by linarith [ht.2], by linarith [ht.1]⟩) + +private theorem spine_image_avoids_horizontal_endpoint + (l m p q : Plane) (hl0 : l 0 = 0) (hm0 : m 0 = 0) (hp0 : p 0 = 0) (hq0 : q 0 = 0) + (lm pq β : ℝ → Plane) + (hβmem : ∀ t ∈ Icc (-1 : ℝ) 1, + β t ∈ ((((segP !₂[(0 : ℝ), 2] l '' Icc (-1 : ℝ) 1 ∪ + lm '' Icc (-1 : ℝ) 1) ∪ segP m p '' Icc (-1 : ℝ) 1) ∪ + pq '' Icc (-1 : ℝ) 1) ∪ segP q !₂[(0 : ℝ), -2] '' Icc (-1 : ℝ) 1)) + (u : Plane) (hu0 : u 0 ≠ 0) + (hLm : u ∉ lm '' Icc (-1 : ℝ) 1) (hPq : u ∉ pq '' Icc (-1 : ℝ) 1) : + u ∉ β '' Icc (-1 : ℝ) 1 := by + have hseg (a b : Plane) (ha : a 0 = 0) (hb : b 0 = 0) : + u ∉ segP a b '' Icc (-1 : ℝ) 1 := by + rintro ⟨t, _, htu⟩ + apply hu0 + rw [← htu, segP_coord, ha, hb] + ring + rintro ⟨t, ht, htu⟩ + have h := hβmem t ht + rw [htu] at h + rcases h with (((h | h) | h) | h) | h + · exact hseg _ _ (by simp) hl0 h + · exact hLm h + · exact hseg _ _ hm0 hp0 h + · exact hPq h + · exact hseg _ _ hq0 (by simp) h + +private theorem bounded_component_avoids_axis_up + (S W : Set Plane) (hWsub : W ⊆ Sᶜ) (hwb : IsBounded W) + (compW : ∀ {v : Plane}, v ∈ W → connectedComponentIn Sᶜ v = W) + (l : Plane) (hl0 : l 0 = 0) (hlr : l ∈ S) + (hRayNc : {v : Plane | v 0 = 0 ∧ v 1 ∈ Ioi (l 1)} ⊆ Sᶜ) : + ∀ v : Plane, v 0 = 0 → l 1 ≤ v 1 → v ∉ W := by + let RayN : Set Plane := {v : Plane | v 0 = 0 ∧ v 1 ∈ Ioi (l 1)} + have hRayNPC : IsPathConnected RayN := + isPathConnected_vertSeg 0 ((convex_Ioi (l 1)).isPathConnected Set.nonempty_Ioi) + intro v hv0 hvl hvW + rcases eq_or_lt_of_le hvl with h | h + · have hveq : v = l := by ext i; fin_cases i <;> simp [hv0, hl0, h] + exact hWsub hvW (by rw [hveq]; exact hlr) + · have h1 := hRayNPC.isConnected.isPreconnected.subset_connectedComponentIn + (show v ∈ RayN from ⟨hv0, h⟩) hRayNc + exact axis_ray_up_unbounded (l 1) (hwb.subset (compW hvW ▸ h1)) + +private theorem bounded_component_avoids_axis_down + (S W : Set Plane) (hWsub : W ⊆ Sᶜ) (hwb : IsBounded W) + (compW : ∀ {v : Plane}, v ∈ W → connectedComponentIn Sᶜ v = W) + (q : Plane) (hq0 : q 0 = 0) (hqr : q ∈ S) + (hRaySc : {v : Plane | v 0 = 0 ∧ v 1 ∈ Iio (q 1)} ⊆ Sᶜ) : + ∀ v : Plane, v 0 = 0 → v 1 ≤ q 1 → v ∉ W := by + let RayS : Set Plane := {v : Plane | v 0 = 0 ∧ v 1 ∈ Iio (q 1)} + have hRaySPC : IsPathConnected RayS := + isPathConnected_vertSeg 0 ((convex_Iio (q 1)).isPathConnected Set.nonempty_Iio) + intro v hv0 hvq hvW + rcases eq_or_lt_of_le hvq with h | h + · have hveq : v = q := by ext i; fin_cases i <;> simp [hv0, hq0, h] + exact hWsub hvW (by rw [hveq]; exact hqr) + · have h1 := hRaySPC.isConnected.isPreconnected.subset_connectedComponentIn + (show v ∈ RayS from ⟨hv0, h⟩) hRaySc + exact axis_ray_down_unbounded (q 1) (hwb.subset (compW hvW ▸ h1)) + +private theorem disjoint_component_avoids_axis_middle + (S W U : Set Plane) (hWsub : W ⊆ Sᶜ) (hWU_disj : Disjoint W U) + (p m : Plane) (hp0 : p 0 = 0) (hm0 : m 0 = 0) (hpr : p ∈ S) (hmr : m ∈ S) + (hMidU : {v : Plane | v 0 = 0 ∧ v 1 ∈ Ioo (p 1) (m 1)} ⊆ U) : + ∀ v : Plane, v 0 = 0 → p 1 ≤ v 1 → v 1 ≤ m 1 → v ∉ W := by + intro v hv0 hvp hvm hvW + rcases eq_or_lt_of_le hvp with h | h + · have hveq : v = p := by ext i; fin_cases i <;> simp [hv0, hp0, h] + exact hWsub hvW (by rw [hveq]; exact hpr) + · rcases eq_or_lt_of_le hvm with h' | h' + · have hveq : v = m := by ext i; fin_cases i <;> simp [hv0, hm0, h'] + exact hWsub hvW (by rw [hveq]; exact hmr) + · exact (Set.disjoint_left.mp hWU_disj hvW) (hMidU ⟨hv0, ⟨h, h'⟩⟩) + +private theorem axis_point_avoids_horizontal_endpoints (p : Plane) (hp : p 0 = 0) : + p ∉ ({!₂[(-1 : ℝ), 0], !₂[(1 : ℝ), 0]} : Set Plane) := by + simp only [Set.mem_insert_iff, Set.mem_singleton_iff] + rintro (h | h) <;> + (have hc := congrArg (fun x : Plane => x 0) h; simp only [hp] at hc; norm_num at hc) + +theorem step_B_normalized (hbr : BrouwerFPT) + {r : sphere (0 : Plane) 1 → Plane} (hcont : Continuous r) (hinj : Injective r) + (hm : (!₂[(-1 : ℝ), 0] : Plane) ∈ range r) (hp : (!₂[(1 : ℝ), 0] : Plane) ∈ range r) + (hfar : ∀ z ∈ range r, ∀ w ∈ range r, dist z w ≤ 2) : + ∀ x ∈ (range r)ᶜ, ∀ y ∈ (range r)ᶜ, + IsBounded (connectedComponentIn (range r)ᶜ x) → + IsBounded (connectedComponentIn (range r)ᶜ y) → + connectedComponentIn (range r)ᶜ x = connectedComponentIn (range r)ᶜ y := by + classical + obtain ⟨J_n, J_s, l, m, p, q, z₀, hUnion, hInter, hpcJn, + ⟨hlJn, hl0, hlmax⟩, ⟨hmJn, hm0, hmmin⟩, ⟨hpJs, hp0, hpm, hpmax⟩, + ⟨hqJs, hq0, hqmin⟩, hz₀def, hml, hqp, hpz₀, hz₀m, + hpcJs, hJoinJn, hJoinJs⟩ := exists_construction_points hbr hcont hinj hm hp hfar + -- basic containments, coordinates, and rectangle bounds + have hJnr : J_n ⊆ range r := hUnion ▸ subset_union_left + have hJsr : J_s ⊆ range r := hUnion ▸ subset_union_right + have hErect := normalized_subset_rectangle hm hp hfar + have hs0 : (!₂[(0 : ℝ), -2] : Plane) 0 = 0 := by simp + have hs1 : (!₂[(0 : ℝ), -2] : Plane) 1 = -2 := by simp + have hn0 : (!₂[(0 : ℝ), 2] : Plane) 0 = 0 := by simp + have hn1 : (!₂[(0 : ℝ), 2] : Plane) 1 = 2 := by simp + have hz₀0 : z₀ 0 = 0 := by rw [hz₀def]; simp + have hz₀1e : z₀ 1 = (m 1 + p 1) / 2 := by rw [hz₀def]; simp + have hmr : m ∈ range r := hJnr hmJn + have hlr : l ∈ range r := hJnr hlJn + have hpr : p ∈ range r := hJsr hpJs + have hqr : q ∈ range r := hJsr hqJs + have hmE1 : m 1 ∈ Icc (-2 : ℝ) 2 := (hErect hmr).2 + have hlE1 : l 1 ∈ Icc (-2 : ℝ) 2 := (hErect hlr).2 + have hpE1 : p 1 ∈ Icc (-2 : ℝ) 2 := (hErect hpr).2 + have hqE1 : q 1 ∈ Icc (-2 : ℝ) 2 := (hErect hqr).2 + have hpm_lt : p 1 < m 1 := by + rcases lt_or_eq_of_le hpm with h | h + · exact h + · exfalso + have hpm_eq : p = m := by ext i; fin_cases i <;> simp [hp0, hm0, h] + have hmem : m ∈ J_n ∩ J_s := ⟨hmJn, hpm_eq ▸ hpJs⟩ + rw [hInter] at hmem + rcases hmem with h' | h' <;> + (have hc := congrArg (fun x : Plane => x 0) h'; simp only [hm0] at hc; norm_num at hc) + have hpz₀_lt : p 1 < z₀ 1 := by rw [hz₀1e]; linarith + have hz₀m_lt : z₀ 1 < m 1 := by rw [hz₀1e]; linarith + have hmab := axis_point_avoids_horizontal_endpoints m hm0 + have hlab := axis_point_avoids_horizontal_endpoints l hl0 + have hqab := axis_point_avoids_horizontal_endpoints q hq0 + have hpab := axis_point_avoids_horizontal_endpoints p hp0 + have hz₀c : z₀ ∈ (range r)ᶜ := by + intro hz₀r + rw [← hUnion] at hz₀r + rcases hz₀r with hJn | hJs + · exact absurd (hmmin z₀ hJn hz₀0) (not_le.2 hz₀m_lt) + · exact absurd (hpmax z₀ hJs hz₀0 hz₀m_lt.le) (not_le.2 hpz₀_lt) + -- interval facts + have hIcc0x : (0 : ℝ) ∈ Icc (-1 : ℝ) 1 := by rw [mem_Icc]; norm_num + have hIcc2y : (2 : ℝ) ∈ Icc (-2 : ℝ) 2 := by rw [mem_Icc]; norm_num + have hIccm2y : (-2 : ℝ) ∈ Icc (-2 : ℝ) 2 := by rw [mem_Icc]; norm_num + -- the `z₀`-component `U`, the rectangle `E` + set U : Set Plane := connectedComponentIn (range r)ᶜ z₀ with hUdef + set E : Set Plane := {p : Plane | p 0 ∈ Icc (-1 : ℝ) 1 ∧ p 1 ∈ Icc (-2 : ℝ) 2} with hEdef + -- the open middle axis segment `(p,m)` lies in `U` + set Mid : Set Plane := {v : Plane | v 0 = 0 ∧ v 1 ∈ Ioo (p 1) (m 1)} with hMiddef + have hMidPC : IsPathConnected Mid := + isPathConnected_vertSeg 0 ((convex_Ioo (p 1) (m 1)).isPathConnected (Set.nonempty_Ioo.mpr + hpm_lt)) + have hMidc : Mid ⊆ (range r)ᶜ := by + rintro v ⟨hv0, hv1⟩ hvr + rw [← hUnion] at hvr + rcases hvr with h | h + · exact absurd (hmmin v h hv0) (not_le.2 hv1.2) + · exact absurd (hpmax v h hv0 hv1.2.le) (not_le.2 hv1.1) + have hz₀Mid : z₀ ∈ Mid := + ⟨hz₀0, by rw [hz₀1e]; exact ⟨by linarith [hpm_lt], by linarith [hpm_lt]⟩⟩ + have hMidU : Mid ⊆ U := + hMidPC.isConnected.isPreconnected.subset_connectedComponentIn hz₀Mid hMidc + -- upward and downward axis rays lie in the complement + set RayN : Set Plane := {v : Plane | v 0 = 0 ∧ v 1 ∈ Ioi (l 1)} with hRayNdef + have hRayNc : RayN ⊆ (range r)ᶜ := by + rintro v ⟨hv0, hv1⟩ hvr; exact absurd (hlmax v hvr hv0) (not_le.2 hv1) + set RayS : Set Plane := {v : Plane | v 0 = 0 ∧ v 1 ∈ Iio (q 1)} with hRaySdef + have hRaySc : RayS ⊆ (range r)ᶜ := by + rintro v ⟨hv0, hv1⟩ hvr + rw [← hUnion] at hvr + rcases hvr with h | h + · exact absurd (le_trans (le_trans hqp hpm) (hmmin v h hv0)) (not_le.2 hv1) + · exact absurd (hqmin v h hv0) (not_le.2 hv1) + -- **KEY**: every bounded component equals `U`. + have KEY : ∀ w ∈ (range r)ᶜ, IsBounded (connectedComponentIn (range r)ᶜ w) → + connectedComponentIn (range r)ᶜ w = U := by + intro w hw hwb + by_contra hWne + set W : Set Plane := connectedComponentIn (range r)ᶜ w with hWdef + have hWsub : W ⊆ (range r)ᶜ := connectedComponentIn_subset _ _ + have hWpc : IsPathConnected W := isPathConnected_component r hcont hw + -- `W` and `U` are disjoint + have hWU_disj : Disjoint W U := by + rw [Set.disjoint_left] + intro v hvW hvU + apply hWne + rw [hWdef, connectedComponentIn_eq (hWdef ▸ hvW), hUdef] + exact (connectedComponentIn_eq (hUdef ▸ hvU)).symm + -- component-equation helper: any `v ∈ W` has component `= W` + have compW : ∀ {v : Plane}, v ∈ W → connectedComponentIn (range r)ᶜ v = W := by + intro v hvW; rw [hWdef]; exact (connectedComponentIn_eq (hWdef ▸ hvW)).symm + -- avoid lemmas + have avoid_up := bounded_component_avoids_axis_up + (range r) W hWsub hwb compW l hl0 hlr hRayNc + have avoid_down := bounded_component_avoids_axis_down + (range r) W hWsub hwb compW q hq0 hqr hRaySc + have avoid_mid := disjoint_component_avoids_axis_middle + (range r) W U hWsub hWU_disj p m hp0 hm0 hpr hmr hMidU + -- `W ⊆ E` (a bounded component lies in the rectangle) + have hWE : W ⊆ E := bounded_component_subset_normalized_rectangle hErect w hwb + -- **spine path** `β : n → s`, top to bottom, missing `W`, inside `E` + have hnl_cont : ContinuousOn (segP (!₂[(0 : ℝ), 2]) l) (Icc (-1 : ℝ) 1) := (segP_cont _ + _).continuousOn + obtain ⟨lm, hlm_cont, hlm_a, hlm_b, hlm_mem⟩ := + arc_path (hpcJn.joinedIn l ⟨hlJn, hlab⟩ m ⟨hmJn, hmab⟩) + have hmp_cont : ContinuousOn (segP m p) (Icc (-1 : ℝ) 1) := (segP_cont _ _).continuousOn + obtain ⟨pq, hpq_cont, hpq_a, hpq_b, hpq_mem⟩ := + arc_path (hpcJs.joinedIn p ⟨hpJs, hpab⟩ q ⟨hqJs, hqab⟩) + have hqs_cont : ContinuousOn (segP q (!₂[(0 : ℝ), -2])) (Icc (-1 : ℝ) 1) := (segP_cont _ + _).continuousOn + obtain ⟨β, hβcont, hβa, hβb, hβmem⟩ := + concatPath5 hnl_cont hlm_cont hmp_cont hpq_cont hqs_cont + (by rw [segP_one, hlm_a]) (by rw [hlm_b, segP_neg1]) (by rw [segP_one, hpq_a]) + (by rw [hpq_b, segP_neg1]) + have hβE : ∀ t ∈ Icc (-1 : ℝ) 1, β t 0 ∈ Icc (-1 : ℝ) 1 ∧ β t 1 ∈ Icc (-2 : ℝ) 2 := by + intro t ht + rcases hβmem t ht with ((((h | h) | h) | h) | h) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] + exact ⟨segP_coord_mem_Icc 0 (by rw [hn0]; exact hIcc0x) (by rw [hl0]; exact hIcc0x) hu, + segP_coord_mem_Icc 1 (by rw [hn1]; exact hIcc2y) hlE1 hu⟩ + · obtain ⟨u, hu, hue⟩ := h; rw [← hue]; exact hErect (hJnr (hlm_mem u hu).1) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] + exact ⟨segP_coord_mem_Icc 0 (by rw [hm0]; exact hIcc0x) (by rw [hp0]; exact hIcc0x) hu, + segP_coord_mem_Icc 1 hmE1 hpE1 hu⟩ + · obtain ⟨u, hu, hue⟩ := h; rw [← hue]; exact hErect (hJsr (hpq_mem u hu).1) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] + exact ⟨segP_coord_mem_Icc 0 (by rw [hq0]; exact hIcc0x) (by rw [hs0]; exact hIcc0x) hu, + segP_coord_mem_Icc 1 hqE1 (by rw [hs1]; exact hIccm2y) hu⟩ + have hβmiss : ∀ t ∈ Icc (-1 : ℝ) 1, β t ∉ W := by + intro t ht + rcases hβmem t ht with ((((h | h) | h) | h) | h) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] + refine avoid_up _ ?_ ?_ + · rw [segP_coord, hn0, hl0]; ring + · rw [segP_coord, hn1]; rw [mem_Icc] at hu; nlinarith [hu.1, hu.2, hlE1.2] + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] + exact fun hW => hWsub hW (hJnr (hlm_mem u hu).1) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] + refine avoid_mid _ ?_ ?_ ?_ + · rw [segP_coord, hm0, hp0]; ring + · rw [segP_coord]; rw [mem_Icc] at hu; nlinarith [hu.1, hu.2, hpm_lt.le] + · rw [segP_coord]; rw [mem_Icc] at hu; nlinarith [hu.1, hu.2, hpm_lt.le] + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] + exact fun hW => hWsub hW (hJsr (hpq_mem u hu).1) + · obtain ⟨u, hu, hue⟩ := h; rw [← hue] + refine avoid_down _ ?_ ?_ + · rw [segP_coord, hq0, hs0]; ring + · rw [segP_coord, hs1]; rw [mem_Icc] at hu; nlinarith [hu.1, hu.2, hqE1.1] + -- `a, b ∈ closure W` (frontier of a component is the whole curve) + have hfrW : frontier W = range r := by + have hexists : ∃ y ∈ (range r)ᶜ, + connectedComponentIn (range r)ᶜ y ≠ connectedComponentIn (range r)ᶜ w := by + refine ⟨z₀, hz₀c, ?_⟩ + rw [← hUdef, ← hWdef]; exact fun h => hWne h.symm + have hcbe := component_boundary_eq hbr hcont hinj hw hexists + rwa [← hWdef] at hcbe + have hafrW : (!₂[(-1 : ℝ), 0] : Plane) ∈ frontier W := by rw [hfrW]; exact hm + have hbfrW : (!₂[(1 : ℝ), 0] : Plane) ∈ frontier W := by rw [hfrW]; exact hp + have haclW : (!₂[(-1 : ℝ), 0] : Plane) ∈ closure W := frontier_subset_closure hafrW + have hbclW : (!₂[(1 : ℝ), 0] : Plane) ∈ closure W := frontier_subset_closure hbfrW + -- The crossing contradiction uses horizontal endpoints outside the spine. + set βimg : Set Plane := β '' Icc (-1 : ℝ) 1 with hβimgdef + have ha_notβ : (!₂[(-1 : ℝ), 0] : Plane) ∉ βimg := by + apply spine_image_avoids_horizontal_endpoint l m p q hl0 hm0 hp0 hq0 lm pq β hβmem + (!₂[(-1 : ℝ), 0]) (by norm_num) + · rintro ⟨u, hu, hue⟩ + exact (hlm_mem u hu).2 (by rw [hue]; exact Set.mem_insert _ _) + · rintro ⟨u, hu, hue⟩ + exact (hpq_mem u hu).2 (by rw [hue]; exact Set.mem_insert _ _) + have hb_notβ : (!₂[(1 : ℝ), 0] : Plane) ∉ βimg := by + apply spine_image_avoids_horizontal_endpoint l m p q hl0 hm0 hp0 hq0 lm pq β hβmem + (!₂[(1 : ℝ), 0]) (by norm_num) + · rintro ⟨u, hu, hue⟩ + exact (hlm_mem u hu).2 (by rw [hue]; exact Set.mem_insert_of_mem _ rfl) + · rintro ⟨u, hu, hue⟩ + exact (hpq_mem u hu).2 (by rw [hue]; exact Set.mem_insert_of_mem _ rfl) + exact path_component_crossing_contradiction hbr W hWpc hWE β hβcont hβE + (by simpa only [segP_neg1] using hβa) (by simpa only [segP_one] using hβb) + hβmiss haclW hbclW ha_notβ hb_notβ + -- assemble: bounded components of `x, y` both equal `U` + intro x hx y hy hxb hyb + rw [KEY x hx hxb, KEY y hy hyb] + +/-- **Maehara Step B (geometric core).** Bounded components of `ℝ²∖J` are unique. +Reduced to the normalized version `step_B_normalized` via the farthest-pair +similarity `T`. -/ +theorem step_B_bounded_unique (hbr : BrouwerFPT) + {r : sphere (0 : Plane) 1 → Plane} (hcont : Continuous r) (hinj : Injective r) : + ∀ x ∈ (range r)ᶜ, ∀ y ∈ (range r)ᶜ, + IsBounded (connectedComponentIn (range r)ᶜ x) → + IsBounded (connectedComponentIn (range r)ᶜ y) → + connectedComponentIn (range r)ᶜ x = connectedComponentIn (range r)ᶜ y := by + intro x hx y hy hxb hyb + obtain ⟨a, ha, b, hb, hfar0, hab⟩ := exists_farthest_pair hcont hinj + obtain ⟨T, hscale, hTa, hTb⟩ := exists_similarity hab + have hdpos : 0 < dist a b := dist_pos.mpr hab + have hcpos : (0 : ℝ) < 2 / dist a b := by positivity + set r' : sphere (0 : Plane) 1 → Plane := fun p => T (r p) with hr' + have hr'cont : Continuous r' := T.continuous.comp hcont + have hr'inj : Injective r' := T.injective.comp hinj + have hrange : range r' = T '' range r := by + rw [hr', show (fun p => T (r p)) = (T : Plane → Plane) ∘ r from rfl, Set.range_comp] + have himg : (T '' range r)ᶜ = T '' (range r)ᶜ := + (Set.image_compl_eq (f := (T : Plane → Plane)) T.bijective).symm + have hrc : (range r')ᶜ = (T : Plane → Plane) '' (range r)ᶜ := by rw [hrange, himg] + have hm' : (!₂[(-1 : ℝ), 0] : Plane) ∈ range r' := by + rw [hrange, ← hTa]; exact mem_image_of_mem _ ha + have hp' : (!₂[(1 : ℝ), 0] : Plane) ∈ range r' := by + rw [hrange, ← hTb]; exact mem_image_of_mem _ hb + have hfar' : ∀ z ∈ range r', ∀ w ∈ range r', dist z w ≤ 2 := by + rw [hrange] + rintro _ ⟨z, hz, rfl⟩ _ ⟨w, hw, rfl⟩ + rw [hscale] + calc 2 / dist a b * dist z w + ≤ 2 / dist a b * dist a b := + mul_le_mul_of_nonneg_left (hfar0 z hz w hw) hcpos.le + _ = 2 := by field_simp + -- transport the two components forward by `T` + have hTx : T x ∈ (range r')ᶜ := by rw [hrc]; exact mem_image_of_mem _ hx + have hTy : T y ∈ (range r')ᶜ := by rw [hrc]; exact mem_image_of_mem _ hy + have hccx : connectedComponentIn (range r')ᶜ (T x) + = T '' connectedComponentIn (range r)ᶜ x := by + rw [hrc]; exact (T.image_connectedComponentIn hx).symm + have hccy : connectedComponentIn (range r')ᶜ (T y) + = T '' connectedComponentIn (range r)ᶜ y := by + rw [hrc]; exact (T.image_connectedComponentIn hy).symm + have hTxb : IsBounded (connectedComponentIn (range r')ᶜ (T x)) := by + rw [hccx]; exact (isBounded_image_scaling hcpos hscale _).mpr hxb + have hTyb : IsBounded (connectedComponentIn (range r')ᶜ (T y)) := by + rw [hccy]; exact (isBounded_image_scaling hcpos hscale _).mpr hyb + have hEq := step_B_normalized hbr hr'cont hr'inj hm' hp' hfar' + (T x) hTx (T y) hTy hTxb hTyb + rw [hccx, hccy] at hEq + exact Set.image_injective.mpr T.injective hEq + +/-- The Jordan curve theorem reduced to Brouwer (Maehara). The eval `jordan_curve` +follows by discharging `BrouwerFPT`. Given the two geometric core facts — existence +(`step_A_exists_bounded`) and uniqueness (`step_B_bounded_unique`) of a bounded +component — together with the unique unbounded component (`exists_unbounded_component`, +`unbounded_component_unique`), the complement has exactly two components. -/ +theorem jordan_curve_of_brouwer (hbr : BrouwerFPT) + (r : sphere (0 : Plane) 1 → Plane) + (hcont : Continuous r) (hinj : Injective r) : + Nat.card (ConnectedComponents ((range r)ᶜ : Set Plane)) = 2 := by + -- The unbounded component `x₀` and a bounded component `x₁`. + obtain ⟨x₀, hx₀S, hx₀u⟩ := exists_unbounded_component r hcont + obtain ⟨x₁, hx₁S, hx₁b⟩ := step_A_exists_bounded hbr hcont hinj + set a : ↥((range r)ᶜ) := ⟨x₀, hx₀S⟩ with ha + set b : ↥((range r)ᶜ) := ⟨x₁, hx₁S⟩ with hb + -- The two components are distinct: one unbounded, one bounded. + have hne : connectedComponentIn (range r)ᶜ x₀ ≠ connectedComponentIn (range r)ᶜ x₁ := by + intro heq + exact hx₀u (heq ▸ hx₁b) + have hab : ConnectedComponents.mk a ≠ ConnectedComponents.mk b := + (Counting.connectedComponents_subtype_eq_iff hx₀S hx₁S).not.mpr hne + -- Every component is either the bounded one (`= b`) or the unbounded one (`= a`). + have hcover : ∀ z : ↥((range r)ᶜ), + ConnectedComponents.mk z = ConnectedComponents.mk a + ∨ ConnectedComponents.mk z = ConnectedComponents.mk b := by + intro z + by_cases hzb : IsBounded (connectedComponentIn (range r)ᶜ z.val) + · right + exact (Counting.connectedComponents_subtype_eq_iff z.2 hx₁S).mpr + (step_B_bounded_unique hbr hcont hinj z.val z.2 x₁ hx₁S hzb hx₁b) + · left + exact (Counting.connectedComponents_subtype_eq_iff z.2 hx₀S).mpr + (unbounded_component_unique r hcont hzb hx₀u) + exact Counting.nat_card_connectedComponents_eq_two a b hab hcover + +/-- **Jordan curve theorem** (the eval statement). -/ +theorem jordan_curve + (r : sphere (0 : EuclideanSpace ℝ (Fin 2)) 1 → EuclideanSpace ℝ (Fin 2)) + (_hcont : Continuous r) (_hinj : Injective r) : + Nat.card (ConnectedComponents ((range r)ᶜ : Set (EuclideanSpace ℝ (Fin 2)))) = 2 := by + -- Brouwer FPT for the plane, built from scratch in `JordanCurve.Brouwer` + -- (circle non-nullhomotopy via Mathlib's covering-space lifting → no-retraction + -- → disk Brouwer → convex-compact). + have hbr : BrouwerFPT := Brouwer.brouwerFPT + exact jordan_curve_of_brouwer hbr r _hcont _hinj + +end JordanCurve + +end + +end + +section + +/- +Copyright (c) 2026 The Tau Ceti contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: The Tau Ceti contributors +-/ +/-! +# Metric variation of a continuously differentiable curve + +For a continuously differentiable curve in a complete real normed space, its +metric total variation equals the integral of the norm of its derivative. + +The upper bound sums the fundamental theorem of calculus over finite +partitions. For the reverse bound, the curve is clamped to the compact +parameter interval. The resulting globally Lipschitz curve has bounded +variation, and its associated vector measure has density given by the +derivative on the interval. + +## Main result + +* `TauCeti.eVariationOn_eq_lintegral_enorm_derivWithin`: metric variation + equals the integral of the derivative norm. + +## Roadmap alignment + +This module advances the `Regular reparametrization and limits` target under +`Layer 0: the reconciled Riemannian distance` in +`roadmap/HopfRinow/README.md`. It supplies the vector metric-variation +identity used as an analytic prerequisite by the lower-semicontinuity +comparison; this file does not claim the broader +Hopf--Rinow dependency path. + +## Provenance + +The partition-comparison architecture follows +`DoCarmoLib/Riemannian/Geodesic/HopfRinow/EVariationLePathELength.lean` in the +Apache-2.0 `frenzymath/Poincare-Conjecture` source at revision +`24f32e4d600878bfaac6bc2f2f9324175571c321`. That source proves the forward +comparison with Riemannian path length. The reverse derivative-integral +comparison here is a Tau Ceti proof using Mathlib's clamped-curve and +vector-measure APIs; it is not asserted to be present in that source. + +## References + +* M. P. do Carmo, *Riemannian Geometry*, Chapter 7, Section 2. +* The source-first Lean snapshot above, revision + `24f32e4d600878bfaac6bc2f2f9324175571c321`, supplies the partition architecture + via `eVariationOn_le_pathELength`; the reverse inequality is original to this + module. + +Original authors: The Tau Ceti contributors, Archon Horizon (claude+codex), Axel Delaval, +Chunlei Liu, Jinxuan Chen, Wanxu Yang, Zekun Sheng, Yuxuan Liao, Jie Xu. +-/ + +@[expose] public section + +open Filter Set MeasureTheory +open scoped ENNReal NNReal Topology + +namespace TauCeti + +noncomputable section + +variable {F : Type*} [NormedAddCommGroup F] [NormedSpace ℝ F] + +/-- For a `C¹` curve in a real normed space, metric total variation is bounded +by the integral of the norm of its derivative. -/ +theorem eVariationOn_le_lintegral_enorm_derivWithin {f : ℝ → F} {a b : ℝ} + (hf : ContDiffOn ℝ 1 f (Icc a b)) : + eVariationOn f (Icc a b) ≤ ∫⁻ t in Icc a b, ‖derivWithin f (Icc a b) t‖ₑ := by + let L : ℝ → ℝ → ℝ≥0∞ := fun c d ↦ + ∫⁻ t in Icc c d, ‖derivWithin f (Icc a b) t‖ₑ + have hL_add {c d e : ℝ} (hcd : c ≤ d) (hde : d ≤ e) : L c d + L d e = L c e := by + have hset : Icc c e = Icc c d ∪ Ioc d e := (Icc_union_Ioc_eq_Icc hcd hde).symm + simp only [L, hset] + rw [lintegral_union measurableSet_Ioc] + · simp only [restrict_Ioc_eq_restrict_Icc] + · exact disjoint_iff_forall_ne.mpr (fun u hu v hv ↦ (hu.2.trans_lt hv.1).ne) + apply iSup_le + rintro ⟨n, u, hu, hus⟩ + have hsegment : ∀ i, edist (f (u (i + 1))) (f (u i)) ≤ L (u i) (u (i + 1)) := by + intro i + have hlocal := enorm_sub_le_lintegral_derivWithin_Icc_of_contDiffOn_Icc + (hf.mono (Icc_subset_Icc (hus i).1 (hus (i + 1)).2)) (hu (Nat.le_succ i)) + calc + edist (f (u (i + 1))) (f (u i)) = ‖f (u (i + 1)) - f (u i)‖ₑ := by + rw [edist_eq_enorm_sub, enorm_sub_rev] + _ ≤ ∫⁻ t in Icc (u i) (u (i + 1)), + ‖derivWithin f (Icc (u i) (u (i + 1))) t‖ₑ := hlocal + _ = L (u i) (u (i + 1)) := by + simp only [L] + rw [← restrict_Ioo_eq_restrict_Icc] + apply setLIntegral_congr_fun measurableSet_Ioo + intro t ht + have hderiv : + derivWithin f (Icc (u i) (u (i + 1))) t = derivWithin f (Icc a b) t := by + rw [derivWithin_of_mem_nhds (Icc_mem_nhds ht.1 ht.2), + derivWithin_of_mem_nhds + (Icc_mem_nhds ((hus i).1.trans_lt ht.1) (ht.2.trans_le (hus (i + 1)).2))] + simp only [hderiv] + have htelescoping : ∀ m, ∑ i ∈ Finset.range m, L (u i) (u (i + 1)) = L (u 0) (u m) := by + intro m + induction m with + | zero => simp [L] + | succ k ih => rw [Finset.sum_range_succ, ih, hL_add + (hu (Nat.zero_le k)) (hu (Nat.le_succ k))] + calc + ∑ i ∈ Finset.range n, edist (f (u (i + 1))) (f (u i)) + ≤ ∑ i ∈ Finset.range n, L (u i) (u (i + 1)) := + Finset.sum_le_sum fun i _ ↦ hsegment i + _ = L (u 0) (u n) := htelescoping n + _ ≤ L a b := lintegral_mono_set (Icc_subset_Icc (hus 0).1 (hus n).2) + _ = ∫⁻ t in Icc a b, ‖derivWithin f (Icc a b) t‖ₑ := rfl + +variable [CompleteSpace F] + +/-- For a `C¹` curve in a complete real normed space, the integral of the norm +of its derivative is bounded by its metric total variation. -/ +theorem lintegral_enorm_derivWithin_le_eVariationOn {f : ℝ → F} {a b : ℝ} + (hf : ContDiffOn ℝ 1 f (Icc a b)) : + ∫⁻ t in Icc a b, ‖derivWithin f (Icc a b) t‖ₑ ≤ eVariationOn f (Icc a b) := by + by_cases hab : a ≤ b + swap + · rw [Icc_eq_empty hab] + simp + rcases hab.eq_or_lt with rfl | hab + · simp + let p : ℝ → ℝ := fun t ↦ (Set.projIcc a b hab.le t).val + let g : ℝ → F := f ∘ p + let D : ℝ → F := (Icc a b).indicator (derivWithin f (Icc a b)) + have hp_mono : Monotone p := fun x y hxy ↦ by + exact_mod_cast Set.monotone_projIcc hab.le hxy + have hp_mem : MapsTo p univ (Icc a b) := fun t _ ↦ (Set.projIcc a b hab.le t).2 + have hD_cont : ContinuousOn (derivWithin f (Icc a b)) (Icc a b) := + hf.continuousOn_derivWithin (uniqueDiffOn_Icc hab) (by norm_num) + obtain ⟨C, hCpos, hC⟩ := + (isCompact_Icc.image_of_continuousOn hD_cont).isBounded.exists_pos_norm_le + let K : ℝ≥0 := ⟨C, hCpos.le⟩ + have hK : LipschitzOnWith K f (Icc a b) := by + apply (convex_Icc a b).lipschitzOnWith_of_nnnorm_derivWithin_le + hf.differentiableOn_one + intro t ht + exact_mod_cast hC _ (mem_image_of_mem _ ht) + have hg_lip : LipschitzWith K g := by + have h := hK.comp (s := univ) (LipschitzWith.projIcc hab.le).lipschitzOnWith hp_mem + rw [mul_one, lipschitzOnWith_univ] at h + exact h + have hp_bv : BoundedVariationOn p univ := by + apply MonotoneOn.boundedVariationOn (hp_mono.monotoneOn univ) (C := max |a| |b|) + intro t _ + exact (abs_le_max_abs_abs (Set.projIcc a b hab.le t).2.1 + (Set.projIcc a b hab.le t).2.2) + have hg_bv : BoundedVariationOn g univ := hK.comp_boundedVariationOn hp_mem hp_bv + have hg_cont : Continuous g := hg_lip.continuous + have hright : Function.rightLim g = g := by + funext t + exact hg_cont.continuousWithinAt.rightLim_eq + have hD_int : Integrable D := + hD_cont.integrableOn_Icc.integrable_indicator measurableSet_Icc + have hprimitive : ∀ x : ℝ, ∫ t in a..x, D t = g x - g a := by + intro x + rcases le_total x a with hxa | hax + · have hz : ∫ t in x..a, D t = 0 := by + apply intervalIntegral.integral_zero_ae + filter_upwards [volume.ae_ne a] with t hne hmem + rw [uIoc_of_le hxa] at hmem + have hlt : t < a := lt_of_le_of_ne hmem.2 hne + have hnot : t ∉ Icc a b := fun hmem ↦ (not_le_of_gt hlt) hmem.1 + simp [D, hnot] + rw [intervalIntegral.integral_symm, hz, neg_zero] + have hpa : p a = a := by simp [p] + have hpx : p x = a := by simp [p, Set.projIcc_of_le_left hab.le hxa] + simp [g, hpa, hpx] + · rcases le_total x b with hxb | hbx + · have hcongr : ∫ t in a..x, D t = ∫ t in a..x, deriv f t := by + apply intervalIntegral.integral_congr_Ioo_of_le hax + intro t ht + have htab : t ∈ Icc a b := ⟨ht.1.le, ht.2.le.trans hxb⟩ + simp only [D, Set.indicator_of_mem htab] + exact derivWithin_of_mem_nhds (Icc_mem_nhds ht.1 (ht.2.trans_le hxb)) + rw [hcongr, intervalIntegral.integral_deriv_of_contDiffOn_Icc + (hf.mono (Icc_subset_Icc_right hxb)) hax] + have hpa : p a = a := by simp [p] + have hpx : p x = x := by simp [p, Set.projIcc_of_mem hab.le ⟨hax, hxb⟩] + simp [g, hpa, hpx] + · have hab_int : ∫ t in a..b, D t = f b - f a := by + have hcongr : ∫ t in a..b, D t = ∫ t in a..b, deriv f t := by + apply intervalIntegral.integral_congr_Ioo_of_le hab.le + intro t ht + simp only [D, Set.indicator_of_mem (Ioo_subset_Icc_self ht)] + exact derivWithin_of_mem_nhds (Icc_mem_nhds ht.1 ht.2) + rw [hcongr, intervalIntegral.integral_deriv_of_contDiffOn_Icc hf hab.le] + have hzero : ∫ t in b..x, D t = 0 := by + apply intervalIntegral.integral_zero_ae + filter_upwards with t ht + rw [uIoc_of_le hbx] at ht + have hnot : t ∉ Icc a b := fun hmem ↦ (not_le_of_gt ht.1) hmem.2 + simp [D, hnot] + rw [← intervalIntegral.integral_add_adjacent_intervals + hD_int.intervalIntegrable hD_int.intervalIntegrable, hab_int, hzero, add_zero] + have hpa : p a = a := by simp [p] + have hpx : p x = b := by simp [p, Set.projIcc_of_right_le hab.le hbx] + simp [g, hpa, hpx] + have hinterval : ∀ {c d : ℝ}, c ≤ d → ∫ t in c..d, D t = g d - g c := by + intro c d hcd + have hac := intervalIntegral.integral_add_adjacent_intervals + hD_int.intervalIntegrable hD_int.intervalIntegrable (a := a) (b := c) (c := d) + rw [hprimitive c, hprimitive d] at hac + apply eq_sub_iff_add_eq.mpr + calc + (∫ t in c..d, D t) + g c = (g c - g a + ∫ t in c..d, D t) + g a := by abel + _ = (g d - g a) + g a := by rw [hac] + _ = g d := by abel + have hmeasure : hg_bv.vectorMeasure = volume.withDensityᵥ D := by + apply VectorMeasure.ext_of_generateFrom + {s : Set ℝ | ∃ c d, c ≤ d ∧ s = Ioc c d} + · rintro s ⟨c, d, hcd, rfl⟩ + rw [hg_bv.vectorMeasure_Ioc hcd, hright, withDensityᵥ_apply hD_int measurableSet_Ioc, + ← intervalIntegral.integral_of_le hcd, hinterval hcd] + · convert! BorelSpace.measurable_eq.trans (borel_eq_generateFrom_Ioc_le ℝ) using 2; + grind only + · exact IsSetSemiring.Ioc.isPiSystem + · rw [hg_bv.vectorMeasure_univ, withDensityᵥ_apply hD_int MeasurableSet.univ] + simp only [Measure.restrict_univ, D] + rw [MeasureTheory.integral_indicator measurableSet_Icc, + MeasureTheory.integral_Icc_eq_integral_Ioc, + ← intervalIntegral.integral_of_le hab.le, + intervalIntegral.integral_derivWithin_Icc_of_contDiffOn_Icc hf hab.le] + have htop : Tendsto g atTop (𝓝 (f b)) := by + apply tendsto_const_nhds.congr' + filter_upwards [Ici_mem_atTop b] with t ht + simp [g, p, Set.projIcc_of_right_le hab.le ht] + have hbot : Tendsto g atBot (𝓝 (f a)) := by + apply tendsto_const_nhds.congr' + filter_upwards [Iic_mem_atBot a] with t ht + simp [g, p, Set.projIcc_of_le_left hab.le ht] + rw [tendsto_nhds_unique hg_bv.tendsto_atTop_limUnder htop, + tendsto_nhds_unique hg_bv.tendsto_atBot_limUnder hbot] + have hvariation : eVariationOn g univ = eVariationOn f (Icc a b) := by + apply le_antisymm + · apply iSup_le + rintro ⟨n, u, hu, -⟩ + simpa only [g, Function.comp_apply] using + (eVariationOn.sum_le (f := f) (hp_mono.comp hu) + (fun i ↦ hp_mem (mem_univ _))) + · calc + eVariationOn f (Icc a b) = eVariationOn g (Icc a b) := by + apply eVariationOn.eq_of_eqOn + intro t ht + simp [g, p, Set.projIcc_of_mem hab.le ht] + _ ≤ eVariationOn g univ := eVariationOn.mono g (subset_univ _) + calc + ∫⁻ t in Icc a b, ‖derivWithin f (Icc a b) t‖ₑ + = (volume.withDensity fun t ↦ ‖D t‖ₑ) univ := by + rw [withDensity_apply _ MeasurableSet.univ] + simp only [Measure.restrict_univ] + rw [← lintegral_indicator measurableSet_Icc] + apply lintegral_congr + intro t + by_cases ht : t ∈ Icc a b <;> simp [D, ht] + _ = (volume.withDensityᵥ D).variation univ := by + rw [Measure.variation_withDensityᵥ hD_int] + _ = hg_bv.vectorMeasure.variation univ := by rw [hmeasure] + _ ≤ eVariationOn g univ := hg_bv.variation_vectorMeasure_univ_le + _ = eVariationOn f (Icc a b) := hvariation + +/-- The metric total variation of a `C¹` curve in a complete real normed space +equals the integral of the norm of its derivative. -/ +theorem eVariationOn_eq_lintegral_enorm_derivWithin {f : ℝ → F} {a b : ℝ} + (hf : ContDiffOn ℝ 1 f (Icc a b)) : + eVariationOn f (Icc a b) = ∫⁻ t in Icc a b, ‖derivWithin f (Icc a b) t‖ₑ := + le_antisymm (eVariationOn_le_lintegral_enorm_derivWithin hf) + (lintegral_enorm_derivWithin_le_eVariationOn hf) + +end + +end TauCeti + +end + +end + +section + +/- +Copyright (c) 2026 The Tau Ceti contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: The Tau Ceti contributors +-/ +/-! +# The exterior of a closed ball is preconnected + +In a real normed space of dimension at least two the complement of a closed ball is preconnected: +it is the union, over the radii `M` exceeding the ball's, of the spheres of radius `M`, strung +together along a single ray from the centre. + +The consequences for bounded sets — uniqueness of the unbounded component and the filled-hull +alternative — are in `TauCeti/Analysis/Normed/Module/FilledHull.lean`. + +## Main results + +* `TauCeti.isPreconnected_compl_closedBall` — the exterior of a closed ball is preconnected in a + real normed space of dimension at least two. + +This is a prerequisite of the planar-separation step of the `ConformalMapping` roadmap (L5). + +## References + +* Ch. Pommerenke, *Boundary Behaviour of Conformal Maps*, Ch. 2. +-/ + +@[expose] public section + +namespace TauCeti + +open Bornology Metric Set + +variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] + +/-- **The exterior of a closed ball is preconnected** in a real normed space of dimension at least +two. -/ +theorem isPreconnected_compl_closedBall (h : 1 < Module.rank ℝ E) (x : E) (r : ℝ) : + IsPreconnected (closedBall x r)ᶜ := by + rcases lt_or_ge r 0 with hr | hr + · rw [closedBall_eq_empty.mpr hr, compl_empty] + exact isPreconnected_univ + have : Nontrivial E := rank_pos_iff_nontrivial.mp (zero_lt_one.trans h) + obtain ⟨u, hu⟩ := exists_norm_eq E zero_le_one + set L : Set E := (fun t : ℝ => x + t • u) '' Ioi r + have hLc : IsPreconnected L := + isPreconnected_Ioi.image _ (by fun_prop : Continuous fun t : ℝ => x + t • u).continuousOn + have hLmem : ∀ t, r < t → x + t • u ∈ L := fun t ht => ⟨t, ht, rfl⟩ + have hdist : ∀ t : ℝ, 0 ≤ t → dist (x + t • u) x = t := by + intro t ht + simp [dist_eq_norm, norm_smul, hu, abs_of_nonneg ht] + have hmem : ∀ w, w ∈ (closedBall x r)ᶜ ↔ r < dist w x := by + simp [mem_closedBall, not_le] + have hLsub : L ⊆ (closedBall x r)ᶜ := by + rintro _ ⟨t, ht, rfl⟩ + rw [hmem, hdist t (hr.trans ht.le)] + exact ht + have key : (closedBall x r)ᶜ = ⋃ M : Ioi r, (sphere x M ∪ L) := by + ext w + constructor + · intro hw + exact mem_iUnion.mpr ⟨⟨dist w x, (hmem w).mp hw⟩, Or.inl (mem_sphere.mpr rfl)⟩ + · intro hw + obtain ⟨⟨M, hM⟩, hwM⟩ := mem_iUnion.mp hw + rcases hwM with hwM | hwM + · rw [hmem]; rw [mem_sphere, dist_comm] at hwM; rw [dist_comm, hwM]; exact hM + · exact hLsub hwM + rw [key] + refine isPreconnected_iUnion ⟨x + (r + 1) • u, ?_⟩ fun ⟨M, hM⟩ => ?_ + · simp only [mem_iInter] + exact fun _ => Or.inr (hLmem _ (by linarith)) + · refine IsPreconnected.union (x + M • u) ?_ (hLmem M hM) (isPreconnected_sphere h x M) hLc + rw [mem_sphere, hdist M (hr.trans hM.le)] + +end TauCeti + +end + +end + +section + +/- +Copyright (c) 2026 The Tau Ceti contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: The Tau Ceti contributors +-/ +/-! +# Strict half-spaces of a real normed space are unbounded + +A strict half-space `{y | φ y < u}` cut out by a nonzero linear functional holds points of +arbitrarily large norm, and is therefore unbounded. Linearity alone suffices: `φ` need not be +continuous, so the results apply to a discontinuous functional on an infinite-dimensional space. +For such a `φ` the set need not be topologically open, which is why it is called strict rather +than open here. + +## Main results + +* `TauCeti.exists_apply_lt_and_lt_norm` and `TauCeti.exists_lt_apply_and_lt_norm` — either side + of a nonzero linear functional holds points of arbitrarily large norm. +* `TauCeti.not_isBounded_halfSpace_lt` and `TauCeti.not_isBounded_halfSpace_gt` — either strict + half-space is unbounded. +-/ + +@[expose] public section + +namespace TauCeti + +open Bornology + +variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] + +/-- **A strict half-space contains points of arbitrarily large norm.** For a nonzero linear +functional `φ`, every bound `u` and every radius `R` admit a `y` with `φ y < u` and `R < ‖y‖`. +Linearity suffices; `φ` need not be continuous. -/ +theorem exists_apply_lt_and_lt_norm {φ : E →ₗ[ℝ] ℝ} (hφ : φ ≠ 0) (u R : ℝ) : + ∃ y : E, φ y < u ∧ R < ‖y‖ := by + obtain ⟨v, hφv⟩ := LinearMap.surjective_iff_ne_zero.mpr hφ 1 + have hvnorm : 0 < ‖v‖ := norm_pos_iff.mpr fun h => by simp [h] at hφv + -- Walk to `-t • v` for a `t` large enough to break both the bound `u` and the radius `R`. + obtain ⟨t, ht1, ht2⟩ : ∃ t : ℝ, (R + 1) / ‖v‖ ≤ t ∧ |u| + 1 ≤ t := + ⟨_, le_max_left _ _, le_max_right _ _⟩ + have ht0 : 0 ≤ t := le_trans (by positivity) ht2 + refine ⟨(-t) • v, ?_, ?_⟩ + · rw [map_smul, hφv, smul_eq_mul, mul_one] + linarith [neg_abs_le u] + · rw [norm_smul, norm_neg, Real.norm_eq_abs, abs_of_nonneg ht0] + linarith [(div_le_iff₀ hvnorm).mp ht1] + +/-- **The other side of a nonzero linear functional also contains points of arbitrarily large +norm**: every bound `u` and radius `R` admit a `y` with `u < φ y` and `R < ‖y‖`. -/ +theorem exists_lt_apply_and_lt_norm {φ : E →ₗ[ℝ] ℝ} (hφ : φ ≠ 0) (u R : ℝ) : + ∃ y : E, u < φ y ∧ R < ‖y‖ := by + obtain ⟨y, hy, hn⟩ := exists_apply_lt_and_lt_norm (φ := -φ) (neg_ne_zero.mpr hφ) (-u) R + exact ⟨y, by simpa using hy, hn⟩ + +/-- **A strict half-space cut out by a nonzero linear functional is unbounded.** No radius bounds +`{y | φ y < u}`. Linearity suffices; `φ` need not be continuous. -/ +theorem not_isBounded_halfSpace_lt {φ : E →ₗ[ℝ] ℝ} (hφ : φ ≠ 0) (u : ℝ) : + ¬ IsBounded {y | φ y < u} := by + intro hbdd + obtain ⟨R, hR⟩ := isBounded_iff_forall_norm_le.mp hbdd + obtain ⟨y, hy, hn⟩ := exists_apply_lt_and_lt_norm hφ u R + exact absurd (hR y (by simpa using hy)) (not_le.mpr hn) + +/-- **The half-space on the other side of a nonzero linear functional is unbounded.** No radius +bounds `{y | u < φ y}` either. Linearity suffices; `φ` need not be continuous. -/ +theorem not_isBounded_halfSpace_gt {φ : E →ₗ[ℝ] ℝ} (hφ : φ ≠ 0) (u : ℝ) : + ¬ IsBounded {y | u < φ y} := by + intro hbdd + obtain ⟨R, hR⟩ := isBounded_iff_forall_norm_le.mp hbdd + obtain ⟨y, hy, hn⟩ := exists_lt_apply_and_lt_norm hφ u R + exact absurd (hR y (by simpa using hy)) (not_le.mpr hn) + +end TauCeti + +end + +end + +section + +/- +Copyright (c) 2026 The Tau Ceti contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: The Tau Ceti contributors +-/ +/-! +# Limits of total variation bounds + +This file transfers eventual upper bounds on the total variations of a family of maps to a +`liminf` bound on the total variation of a pointwise limit. + +## Main results + +* `TauCeti.eVariationOn_le_liminf_of_eventually_le`: an eventual bound on the total variations of + a family of maps bounds the total variation of a pointwise limit by the `liminf` of the bounds. +-/ + +@[expose] public section + +open Filter +open scoped ENNReal + +namespace TauCeti + +variable {α : Type*} [LinearOrder α] {X : Type*} [PseudoEMetricSpace X] + +/-- The metric variation of a path in a subtype is unchanged by applying its coercion. -/ +@[simp] theorem eVariationOn_subtypeVal_comp {s : Set X} {f : α → s} {t : Set α} : + eVariationOn f t = eVariationOn ((Subtype.val : s → X) ∘ f) t := by + rfl + +/-- If the total variations of the maps `F i` on `s` are eventually bounded by `u i`, then the +total variation on `s` of a pointwise limit of the `F i` is at most `liminf u`. -/ +theorem eVariationOn_le_liminf_of_eventually_le {ι : Type*} {l : Filter ι} {s : Set α} + {f : α → X} {F : ι → α → X} {u : ι → ℝ≥0∞} + (hu : ∀ᶠ i in l, eVariationOn (F i) s ≤ u i) + (hf : ∀ x ∈ s, Tendsto (fun i ↦ F i x) l (nhds (f x))) : + eVariationOn f s ≤ liminf u l := by + rw [le_liminf_iff] + intro v hv + filter_upwards [eVariationOn.lowerSemicontinuous_aux hf hv, hu] with i hi hui + exact hi.trans_le hui + +end TauCeti + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# External libraries + +The modules from Mathlib, lean-pool, TauCeti and jordan_pick that the development uses beyond its +own files, collected in one place. +-/ + +@[expose] public section + +end + +end + +section + +/- +Copyright (c) 2026 The Tau Ceti contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: The Tau Ceti contributors +-/ +/-! +# Three frontier lemmas: straddling, splitting a domain in two, and clinging to it from inside + +Three elementary facts about `frontier`, each the topological core of a step that a boundary +argument would otherwise carry out inside a concrete space. + +## A connected set that straddles a set meets its frontier + +A preconnected set that meets both a set `V` and its complement must meet `frontier V`: it cannot +cross from the inside of `V` to the outside without touching the boundary. This is the +intermediate-value principle in its purely topological form, and it is the mechanism by which a +*path* leaving a set produces a *boundary point* of that set. + +Mathlib records the two extreme cases — `frontier_eq_empty_iff` and `nonempty_frontier_iff` say +that in a preconnected *space* the frontier of `V` is empty exactly when `V` is `∅` or `univ` — but +not this relative form, which is the one an argument along a segment or a path needs. No hypothesis +is placed on `V`; only preconnectedness of the straddling set is used. + +The proof is the standard clopen argument: the complement of `frontier V` is the disjoint union of +the two open sets `interior V` and `interior Vᶜ` (`compl_frontier_eq_union_interior`), so a +preconnected set avoiding the frontier lies inside one of them, and then it misses `V` entirely or +is contained in `V` entirely. + +## Where the boundary of the image of one side of a split domain can lie + +Split a set `U` into two pieces `s` and `t` that a map `f` sends to *disjoint open* sets, plus a +remainder `u`. Then `frontier (f '' s) ⊆ f '' u ∪ frontier (f '' U)` +(`TauCeti.frontier_image_subset_image_union_frontier_image`): the boundary of the image of one side +consists of images of the remainder — the cut — and of boundary points of the whole image, and of +nothing else. + +The proof is a three-way case split. A point `p` of `frontier (f '' s)` lies in `closure (f '' U)`, +so if it is not on `frontier (f '' U)` it is a value `f w` with `w` in one of the three covering +sets. It cannot come from `s`, since `f '' s` is open and therefore disjoint from its own frontier; +and it cannot come from `t`, since `f '' t` is then an open neighbourhood of `p`, which must meet +`f '' s`, contradicting disjointness of the two images. So `w ∈ u`. + +The source carries no topology; the sides enter topologically only through their images, which are +asked to be open and disjoint, and that is all the argument uses of them. What is asked of the +sides themselves is purely set-theoretic: `s ⊆ U` and the covering `U ⊆ s ∪ t ∪ u`. In particular +`t` need not lie in `U`, and neither side need be open or disjoint from the other. A consumer whose +map is open and injective on two disjoint open sides supplies both image hypotheses, as the +conformal one below does through the open mapping theorem and `Disjoint.image`. + +## What a set's frontier sees of a subset + +A subset `A` of a set `V` cannot reach `frontier V` except through its own frontier: + +> `frontier V ∩ closure A = frontier V ∩ frontier A` + +(`TauCeti.frontier_inter_closure_eq_frontier_inter_frontier`). The reason is that `closure A` is +`A ∪ frontier A`, and a point of `A` on `frontier V` is already on `frontier A`: it is adherent to +`A` and, since `interior A ⊆ interior V`, it is not interior to `A`. So the part of `frontier V` +that `A` clings to has two interchangeable descriptions — as the reach of `closure A`, and as the +meeting of two frontiers. The first is the one an argument about limits of points of `A` produces; +the second is the one a diameter estimate consumes, `frontier` being where the estimates of a +domain-splitting argument live. + +## Consumers + +All three lemmas serve layer **L5** of `TauCetiRoadmap/ConformalMapping/README.md`, Carathéodory's +boundary correspondence. The first does so through +`TauCeti/Analysis/Normed/Module/DiamFrontier.lean`: a ray leaving a bounded set crosses its +frontier, which is what makes the frontier of such a set as wide as the set itself. The second is +the splitting step of `TauCeti/Analysis/Complex/Conformal/CutDiameter.lean`, where `s` and `t` are +the two sides of a circular crosscut of a domain and `u` is the crosscut arc. The third is what +lets `TauCeti/Analysis/Complex/Conformal/ClusterSet.lean` identify the boundary piece that one +side of such a crosscut cuts off, whose description as a union of cluster sets is naturally a +statement about a closure. Nothing here is specific to those uses; no lemma mentions a metric, let +alone a holomorphic map. + +## Main results + +* `IsPreconnected.inter_frontier_nonempty` — a preconnected set meeting both a set and its + complement meets the frontier of that set. +* `TauCeti.frontier_image_subset_image_union_frontier_image` — for a set split into two sides with + disjoint open images plus a remainder, the frontier of the image of the side lying in that set + lies on the image of the remainder and on the frontier of the image of the whole. +* `TauCeti.frontier_inter_closure_eq_frontier_inter_frontier` — the frontier of a set meets the + closure of a subset exactly where it meets that subset's frontier. +-/ + +@[expose] public section + +namespace TauCeti + +open Set + +section Straddle + +variable {X : Type*} [TopologicalSpace X] {S V : Set X} + +/-- **A preconnected set that meets both a set and its complement meets its frontier.** If `S` is +preconnected and contains a point of `V` and a point outside `V`, then `S` meets `frontier V`. + +Nothing is assumed about `V`; the argument is that `(frontier V)ᶜ` is the union of the two disjoint +open sets `interior V` and `interior Vᶜ`, so a preconnected set missing the frontier is confined to +one of them and therefore cannot straddle `V`. -/ +theorem _root_.IsPreconnected.inter_frontier_nonempty (hS : IsPreconnected S) + (h₁ : (S ∩ V).Nonempty) (h₂ : (S \ V).Nonempty) : (S ∩ frontier V).Nonempty := by + by_contra hcon + have hsub : S ⊆ interior V ∪ interior Vᶜ := by + rw [← compl_frontier_eq_union_interior] + exact fun x hx hxf => hcon ⟨x, hx, hxf⟩ + have hdisj : Disjoint (interior V) (interior Vᶜ) := + disjoint_compl_right.mono interior_subset interior_subset + rcases hS.subset_or_subset isOpen_interior isOpen_interior hdisj hsub with h | h + · obtain ⟨x, hxS, hxV⟩ := h₂ + exact hxV (interior_subset (h hxS)) + · obtain ⟨x, hxS, hxV⟩ := h₁ + exact interior_subset (h hxS) hxV + +end Straddle + +section ImageSplit + +variable {X Y : Type*} [TopologicalSpace Y] {f : X → Y} {U s t u : Set X} + +/-- **The boundary of the image of one side of a split domain lies on the image of the remainder +and on the boundary of the image of the domain.** If `U` is covered by two sets `s`, `t` with +disjoint open images together with a third set `u`, and `s ⊆ U`, then +`frontier (f '' s) ⊆ f '' u ∪ frontier (f '' U)`. + +The conclusion is about `s`, the side that is asked to lie in `U`. The argument treats the two +sides alike apart from that, so a consumer with `t ⊆ U` in hand bounds `t` as well by swapping +their roles. + +A frontier point of `f '' s` lies in `closure (f '' U)`, so if it is not a frontier point of +`f '' U` it is a value `f w` with `w` in one of the three covering sets: `w ∈ s` would place it +inside the open set `f '' s`, which is disjoint from its own frontier, and `w ∈ t` inside the open +set `f '' t`, which meets `f '' s` because the point is in its closure, contradicting disjointness +of the two images. So `w ∈ u`. + +The source carries no topology at all: `U` and the three sets covering it are constrained only by +the two set-theoretic hypotheses `hsU : s ⊆ U` and `hcov : U ⊆ s ∪ t ∪ u`, while every topological +hypothesis, and the conclusion, lives in the target. In particular `t` need not lie in `U`, and +the two sides need be neither open nor disjoint nor separated by injectivity — only their images +need be open and disjoint, which is what the argument uses and what an injective open map on two +disjoint open sides supplies. -/ +theorem frontier_image_subset_image_union_frontier_image (hfs : IsOpen (f '' s)) + (hft : IsOpen (f '' t)) (hst : Disjoint (f '' s) (f '' t)) (hsU : s ⊆ U) + (hcov : U ⊆ s ∪ t ∪ u) : + frontier (f '' s) ⊆ f '' u ∪ frontier (f '' U) := by + intro p hp + have hpΩ : p ∈ closure (f '' U) := closure_mono (image_mono hsU) hp.1 + rw [closure_eq_self_union_frontier] at hpΩ + rcases hpΩ with hpin | hpfr + · obtain ⟨w, hw, rfl⟩ := hpin + rcases hcov hw with (hws | hwt) | hwu + · exact absurd ⟨mem_image_of_mem f hws, hp⟩ + (eq_empty_iff_forall_notMem.mp hfs.inter_frontier_eq (f w)) + · obtain ⟨q, hqt, hqs⟩ := mem_closure_iff.mp hp.1 _ hft (mem_image_of_mem f hwt) + exact absurd hqs (disjoint_right.mp hst hqt) + · exact Or.inl (mem_image_of_mem f hwu) + · exact Or.inr hpfr + +end ImageSplit + +section Inside + +variable {X : Type*} [TopologicalSpace X] {A V : Set X} + +/-- **The frontier of a set meets the closure of a subset exactly where it meets that subset's +frontier.** For any `A ⊆ V`, + +> `frontier V ∩ closure A = frontier V ∩ frontier A`. + +Writing `closure A` as `A ∪ frontier A`, the first piece brings nothing new: a point of `A` on +`frontier V` is adherent to `A` and is kept out of `interior A` by `interior A ⊆ interior V`, so it +already lies on `frontier A`. Only the inclusion `A ⊆ V` is used — `V` need be neither open nor +closed, and `A` is arbitrary. + +So the part of `frontier V` that `A` clings to may be described either as its meeting with +`closure A` or as its meeting with `frontier A`. An argument about limits of points of `A` produces +the first; a diameter estimate obtained by splitting `V` into pieces consumes the second. -/ +theorem frontier_inter_closure_eq_frontier_inter_frontier (hAV : A ⊆ V) : + frontier V ∩ closure A = frontier V ∩ frontier A := by + rw [closure_eq_self_union_frontier, inter_union_distrib_left] + refine union_eq_right.mpr fun x hx => + ⟨hx.1, (mem_frontier_iff_notMem_interior hx.2).mpr fun hint => ?_⟩ + exact (mem_frontier_iff_notMem_interior (hAV hx.2)).mp hx.1 (interior_mono hAV hint) + +end Inside + +end TauCeti + +end + +end + +section + +/- +Copyright (c) 2026 The Tau Ceti contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: The Tau Ceti contributors +-/ +/-! +# Filling in the bounded complementary components of a set + +The **filled hull** `TauCeti.filledHull K` of a subset `K` of a topological space with a bornology +is `K` together with the bounded connected components of its complement: the points whose component +in `Kᶜ` is bounded. Points of `K` qualify vacuously, their component in `Kᶜ` being empty. Filling a +circle gives the closed disc it bounds; filling a segment, or any set whose complement is connected +and unbounded, changes nothing. + +This file is the topological layer: the definition and the structural facts, which ask only for a +topology and a bornology, being about components and boundedness and nothing else. That filling +does not make a set wider needs a real normed space and lives in +`TauCeti/Analysis/Normed/Module/FilledHull.lean`. + +The shape in which the structural side is spent is `IsPreconnected.subset_filledHull`: a +preconnected set disjoint from `K` is trapped inside the filled hull as soon as it meets it, since +it then lies in a single bounded component. Together with the width bound of the normed file it +says that *a connected set that a small `K` cuts off from infinity is itself small*, with no +regularity asked of `K`; that composite is `IsPreconnected.diam_le_diam_of_disjoint` there. + +The negation of membership — that the component of a point in the complement of `K` is *unbounded* +— already occurs, unfolded, in the winding-number layer: it is the hypothesis of +`TauCeti.Contour.windingNumber_eq_zero_of_unbounded_component` in +`TauCeti/Analysis/Contour/Winding/UnboundedComponent.lean` and of its cycle form +`TauCeti.Contour.Cycle.windingNumber_eq_zero_of_unbounded_component` in +`TauCeti/Analysis/Contour/Cycle/Winding.lean`, both of which say that the winding number vanishes +off the filled hull of the trace. Those statements are left as they stand: they are about the +unbounded side, which needs no name, whereas everything here is about the filled side. + +The hull is deliberately *not* claimed to be closed, connected, or idempotent — none of which is +needed downstream, and the first two of which fail without hypotheses on `K`. + +## Roadmap role + +Plane separation for Jordan curves was the open frontier item of layer **L5** of +`TauCetiRoadmap/ConformalMapping/README.md`, the Carathéodory boundary correspondence. The +enclosure step now runs through `IsPreconnected (K \ {f z₀})` and the winding-number two-sidedness +theorem +(`TauCeti.image_inter_ball_subset_filledHull_of_diam_lt_of_isPreconnected_sdiff_singleton`), +which `IsJordanCurve.isPathConnected_sdiff_singleton` discharges; `Caratheodory.lean` is +unconditional. +The inside of `J` is `filledHull J \ J` in the vocabulary defined here. Nothing here assumes +separation, or any other regularity of `K`. + +## Main results + +* `TauCeti.filledHull` — the filled hull, and `TauCeti.subset_filledHull`, + `TauCeti.filledHull_mono` its two structural properties. +* `TauCeti.filledHull_eq_self` — filling a set whose complement is preconnected and unbounded + changes nothing. +* `IsPreconnected.subset_filledHull` — a preconnected set disjoint from `K` that meets the + filled hull lies in it. +* `TauCeti.subset_filledHull_of_frontier_subset` — a bounded set whose frontier `K` swallows + lies in the filled hull, with no connectivity asked of it. +-/ + +@[expose] public section + +namespace TauCeti + +open Bornology Set + +variable {E : Type*} [TopologicalSpace E] [Bornology E] {K L S : Set E} {x : E} + +/-- The **filled hull** of a set `K`: the points whose connected component in the complement of `K` +is bounded. Equivalently, `K` together with the bounded connected components of `Kᶜ`; a point of +`K` belongs because its component in `Kᶜ` is empty. -/ +def filledHull (K : Set E) : Set E := {x | IsBounded (connectedComponentIn Kᶜ x)} + +@[simp] +theorem mem_filledHull_iff : x ∈ filledHull K ↔ IsBounded (connectedComponentIn Kᶜ x) := Iff.rfl + +/-- **A set lies in its filled hull.** For `x ∈ K` the component of `x` in `Kᶜ` is empty, and the +empty set is bounded. -/ +theorem subset_filledHull : K ⊆ filledHull K := by + intro x hx + have hxc : x ∉ Kᶜ := by simpa using hx + simp [mem_filledHull_iff, connectedComponentIn_eq_empty hxc] + +/-- **Filling is monotone.** Enlarging `K` shrinks the complement, hence shrinks each component of +it, hence can only turn unbounded components into bounded ones. -/ +@[gcongr] +theorem filledHull_mono (h : K ⊆ L) : filledHull K ⊆ filledHull L := fun _ hx => + mem_filledHull_iff.mpr <| + (mem_filledHull_iff.mp hx).subset (connectedComponentIn_mono _ (compl_subset_compl.mpr h)) + +/-- **Filling changes nothing when the complement is connected and unbounded.** The complement is +then a single component and that component is unbounded, so no point outside `K` is filled in. This +is the case of a segment in the plane, and of any set that does not separate the space. -/ +theorem filledHull_eq_self (h : IsPreconnected Kᶜ) (hu : ¬ IsBounded Kᶜ) : filledHull K = K := by + refine Subset.antisymm (fun x hx => ?_) subset_filledHull + by_contra hxK + exact hu ((mem_filledHull_iff.mp hx).subset + (h.subset_connectedComponentIn (mem_compl hxK) subset_rfl)) + +/-- **A preconnected set that a set cuts off from infinity lies in its filled hull.** If `S` is +preconnected and disjoint from `K`, then `S` lies in a single connected component of `Kᶜ`; meeting +the filled hull says that component is bounded, so all of `S` is in the hull. -/ +theorem _root_.IsPreconnected.subset_filledHull (hS : IsPreconnected S) (hSK : Disjoint S K) + (hne : (S ∩ filledHull K).Nonempty) : S ⊆ filledHull K := by + obtain ⟨x, hxS, hxH⟩ := hne + have hScompl : S ⊆ Kᶜ := fun y hy => Set.disjoint_left.mp hSK hy + have hScomp : S ⊆ connectedComponentIn Kᶜ x := hS.subset_connectedComponentIn hxS hScompl + intro y hy + rw [mem_filledHull_iff, ← connectedComponentIn_eq (hScomp hy)] + exact mem_filledHull_iff.mp hxH + +/-- **A bounded set whose frontier lies in `K` is cut off from infinity by `K`.** A point of +`S \ K` lies in `interior S`, since every non-interior point of `S` lies on `frontier S ⊆ K`. Its +connected component in `Kᶜ` cannot leave `interior S`: were it to, it would meet +`frontier (interior S) ⊆ frontier S ⊆ K` by `IsPreconnected.inter_frontier_nonempty`, +while lying in `Kᶜ`. So that component is bounded because `S` is. Points of `S ∩ K` lie in the +filled hull directly. + +Unlike `IsPreconnected.subset_filledHull` this asks nothing of the connectivity of `S` and +nothing about the hull being met, at the price of asking `K` to swallow the whole frontier — the +same trade as between `TauCeti.diam_le_diam_of_frontier_subset` and +`IsPreconnected.diam_le_diam_of_disjoint`. -/ +theorem subset_filledHull_of_frontier_subset (hSb : IsBounded S) (hfr : frontier S ⊆ K) : + S ⊆ filledHull K := by + intro x hx + by_cases hxK : x ∈ K + · exact subset_filledHull hxK + have hxKc : x ∈ Kᶜ := hxK + have hxi : x ∈ interior S := (mem_interior_iff_notMem_frontier hx).2 fun h => hxK (hfr h) + have hcomp : connectedComponentIn Kᶜ x ⊆ interior S := by + by_contra h + obtain ⟨y, hy, hyi⟩ := not_subset.mp h + obtain ⟨z, hz, hzf⟩ := isPreconnected_connectedComponentIn.inter_frontier_nonempty + ⟨x, mem_connectedComponentIn hxKc, hxi⟩ ⟨y, hy, hyi⟩ + exact connectedComponentIn_subset _ _ hz (hfr (frontier_interior_subset hzf)) + exact mem_filledHull_iff.mpr (hSb.subset (hcomp.trans interior_subset)) + +end TauCeti + +end + +end + +section + +/- +Copyright (c) 2026 The Tau Ceti contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: The Tau Ceti contributors +-/ +-- `NormedSpace.toLocallyConvexSpace`, needed to apply `geometric_hahn_banach_point_closed`. + +/-! +# The width of a filled hull + +The filled hull `TauCeti.filledHull K` — `K` together with the bounded connected components of its +complement — is defined in `TauCeti/Topology/FilledHull.lean`, where it needs only a topology and a +bornology. In a real normed space the one substantial fact is that filling does not make a set +wider: + +> `TauCeti.filledHull_subset_closedConvexHull` — `filledHull K ⊆ closedConvexHull ℝ K`, + +whence `TauCeti.diam_filledHull`: a set and its filled hull have the same diameter. The +mechanism is separation: a point `x` outside the closed convex hull of `K` is cut off +from it by a continuous linear functional (`geometric_hahn_banach_point_closed`), and the open +half-space `{y | φ y < u}` so produced is a convex — hence preconnected — subset of `Kᶜ` containing +`x`, and it is unbounded (`TauCeti.not_isBounded_halfSpace_lt`). So the component of `x` in `Kᶜ` is +unbounded and `x` is not in the filled hull. Nonemptiness of `K` is needed only to know that +`φ ≠ 0`; for `K = ∅` and a zero-dimensional space the convex-hull statement is false, the hull then +being everything and the convex hull empty. The diameter statements survive that case +unhypothesised, because `filledHull ∅` is empty in a nontrivial space +(`TauCeti.filledHull_empty`) and the single point of the zero space otherwise, of diameter `0` +either way. + +Because the width of a filled hull is controlled, so is that of anything inside it, and the shape +in which this is spent is `IsPreconnected.subset_filledHull`: a preconnected set disjoint from `K` +is trapped inside the filled hull as soon as it meets it. Their composite, +`IsPreconnected.diam_le_diam_of_disjoint`, says that *a connected set that a small `K` cuts off +from infinity is itself small*, with no regularity asked of `K`. + +## Roadmap role + +The filled hull is the vocabulary in which the enclosure step of layer **L5** of +`TauCetiRoadmap/ConformalMapping/README.md` is stated. That step is now unconditional: the +preconnectedness/winding-number route in `TauCeti/Analysis/Complex/Conformal/Crosscut/Inside.lean` +places one image piece of a crosscut in the filled hull without plane separation. In the diameter +bound that follows, `TauCeti/Analysis/Complex/Conformal/Crosscut/SmallJordanCurve.lean` encloses a +short image crosscut in an arbitrarily small Jordan curve `J`, and +`IsPreconnected.diam_le_diam_of_disjoint` makes the cut-off piece no wider than `J`. + +This is a different route to a diameter bound from `TauCeti.diam_le_diam_of_frontier_subset` of +`TauCeti/Analysis/Normed/Module/DiamFrontier.lean`, which bounds a set by *any* bounded set +containing its frontier: there the enclosing set must be known to contain the whole frontier, here +only that the set is cut off from infinity. The frontier route is the special case of the enclosure +route obtained from `TauCeti.subset_filledHull_of_frontier_subset`; the enclosure route does not +require the whole frontier to be caught. + +## Generality + +The width statements are stated for an arbitrary real normed space — nothing about the plane is +used, and the separation argument is the general Hahn–Banach one. + +## Main results + +* `TauCeti.filledHull_subset_closedConvexHull` — a filled hull lies in the closed convex hull. +* `TauCeti.diam_filledHull` and `TauCeti.isBounded_filledHull` — filling preserves the diameter, and + a filled hull is bounded exactly when the set filled is. +* `TauCeti.diam_le_diam_of_subset_filledHull` and + `IsPreconnected.diam_le_diam_of_disjoint` — a set inside the filled hull of a bounded `K`, + in particular a preconnected set that `K` cuts off from infinity, is no wider than `K`. +* `TauCeti.isBounded_closedConvexHull`, + `TauCeti.diam_closedConvexHull` — the closed forms of the two convex-hull facts the width + argument runs on. +* `TauCeti.connectedComponentIn_compl_eq_of_unbounded_component` — the unbounded connected + component of the complement of a bounded set is unique (dimension at least two). +* `TauCeti.mem_filledHull_or_mem_filledHull_of_notMem_connectedComponentIn` — of two points in + different components, at least one lies in the filled hull (dimension at least two). +-/ + +@[expose] public section + +namespace TauCeti + +open Bornology Metric Set + +variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] {K S : Set E} + +/-- **A closed convex hull is bounded exactly when the set is.** The closed form of +`isBounded_convexHull`, the closure adding nothing. -/ +@[simp] +theorem isBounded_closedConvexHull : IsBounded (closedConvexHull ℝ K) ↔ IsBounded K := by + rw [closedConvexHull_eq_closure_convexHull, isBounded_closure_iff, isBounded_convexHull] + +/-- **Taking the closed convex hull preserves the diameter.** The closed form of `convexHull_diam`, +the closure adding nothing by `Metric.diam_closure`. -/ +@[simp] +theorem diam_closedConvexHull : diam (closedConvexHull ℝ K) = diam K := by + rw [closedConvexHull_eq_closure_convexHull, diam_closure, convexHull_diam] + +/-- **The filled hull lies in the closed convex hull.** A point outside the closed convex hull of a +nonempty `K` is separated from it by a continuous linear functional; the open half-space this +produces is convex, avoids `K`, and is unbounded, so the component of the point in `Kᶜ` is +unbounded. + +Nonemptiness of `K` is what forces the separating functional to be nonzero, and so the half-space to +be unbounded; without it the statement fails in the zero space, where `filledHull ∅ = univ`. -/ +theorem filledHull_subset_closedConvexHull (hK : K.Nonempty) : + filledHull K ⊆ closedConvexHull ℝ K := by + intro x hx + rw [mem_filledHull_iff] at hx + by_contra hxC + obtain ⟨φ, u, hφx, hφC⟩ := geometric_hahn_banach_point_closed convex_closedConvexHull + isClosed_closedConvexHull hxC + -- The open half-space cut off by `φ` is a preconnected subset of `Kᶜ` containing `x`. + have hHK : {y | φ y < u} ⊆ Kᶜ := + fun y hy hyK => absurd (hφC y (subset_closedConvexHull hyK)) (not_lt.mpr hy.le) + have hsub : {y | φ y < u} ⊆ connectedComponentIn Kᶜ x := + (convex_halfSpace_lt φ.toLinearMap.isLinear u).isPreconnected.subset_connectedComponentIn + hφx hHK + -- It is unbounded, because a nonempty `K` forces `φ` to be nonzero. + obtain ⟨b, hb⟩ := hK + have hφne : (φ : E →ₗ[ℝ] ℝ) ≠ 0 := by + intro h + have hzero : ∀ y : E, φ y = 0 := fun y => + (LinearMap.congr_fun h y).trans (LinearMap.zero_apply y) + have hb' := hφC b (subset_closedConvexHull hb) + rw [hzero] at hφx hb' + linarith + exact not_isBounded_halfSpace_lt (φ := (φ : E →ₗ[ℝ] ℝ)) hφne u (hx.subset hsub) + +/-- **The filled hull of the empty set is empty** in a nontrivial space: the whole space is +connected and unbounded, so every component of `∅ᶜ = univ` is unbounded. -/ +@[simp] +theorem filledHull_empty [Nontrivial E] : filledHull (∅ : Set E) = ∅ := by + apply filledHull_eq_self + · rw [compl_empty] + exact isPreconnected_univ + · rw [compl_empty] + exact NormedSpace.unbounded_univ ℝ E + +/-- The filled hull of the empty set is a subsingleton: empty in a nontrivial space by +`TauCeti.filledHull_empty`, and the whole zero space, a single point, otherwise. Either way it is as +wide as `∅`, which is why the diameter statements below need no nonemptiness hypothesis. -/ +private theorem subsingleton_filledHull_empty : (filledHull (∅ : Set E)).Subsingleton := by + rcases subsingleton_or_nontrivial E with _ | _ + · exact fun a _ b _ => Subsingleton.elim a b + · rw [filledHull_empty] + exact subsingleton_empty + +/-- **A filled hull is bounded exactly when the set filled is.** One direction is +`TauCeti.subset_filledHull`; the other holds because the hull lies in the closed convex hull. -/ +@[simp] +theorem isBounded_filledHull : IsBounded (filledHull K) ↔ IsBounded K := by + refine ⟨fun h => h.subset subset_filledHull, fun hKb => ?_⟩ + rcases K.eq_empty_or_nonempty with rfl | hK + · exact subsingleton_filledHull_empty.finite.isBounded + · exact (isBounded_closedConvexHull.mpr hKb).subset (filledHull_subset_closedConvexHull hK) + +/-- **Filling preserves the diameter.** The hull contains `K`, and for nonempty `K` it is contained +in the closed convex hull of `K`, which by `TauCeti.diam_closedConvexHull` is exactly as wide as +`K`; `filledHull ∅` is a subsingleton, of diameter `0` like `∅` itself. An unbounded `K` has an +unbounded hull by `TauCeti.isBounded_filledHull`, and both diameters are then `0`. -/ +@[simp] +theorem diam_filledHull : diam (filledHull K) = diam K := by + by_cases hKb : IsBounded K + · rcases K.eq_empty_or_nonempty with rfl | hK + · rw [diam_subsingleton subsingleton_filledHull_empty, diam_empty] + refine le_antisymm ?_ (diam_mono subset_filledHull (isBounded_filledHull.mpr hKb)) + calc diam (filledHull K) ≤ diam (closedConvexHull ℝ K) := + diam_mono (filledHull_subset_closedConvexHull hK) (isBounded_closedConvexHull.mpr hKb) + _ = diam K := diam_closedConvexHull + · rw [diam_eq_zero_of_unbounded (mt isBounded_filledHull.mp hKb), diam_eq_zero_of_unbounded hKb] + +/-- **Anything a bounded `K` cuts off from infinity is no wider than `K`.** A set inside the filled +hull is no wider than the hull by `Metric.diam_mono`, and the hull is no wider than `K` by +`TauCeti.diam_filledHull`. -/ +theorem diam_le_diam_of_subset_filledHull (hK : IsBounded K) (h : S ⊆ filledHull K) : + diam S ≤ diam K := + (diam_mono h (isBounded_filledHull.mpr hK)).trans_eq diam_filledHull + +/-- **A preconnected set that a bounded `K` cuts off from infinity is no wider than `K`.** If `S` is +preconnected, disjoint from `K`, and meets the filled hull of `K`, then it lies inside that hull by +`IsPreconnected.subset_filledHull`, which is no wider than `K` by +`TauCeti.diam_filledHull`. No regularity is asked of `K`. -/ +theorem _root_.IsPreconnected.diam_le_diam_of_disjoint (hS : IsPreconnected S) (hSK : Disjoint S K) + (hne : (S ∩ filledHull K).Nonempty) (hK : IsBounded K) : diam S ≤ diam K := + diam_le_diam_of_subset_filledHull hK (hS.subset_filledHull hSK hne) + +variable {x y : E} + +/-- **The unbounded component of the complement of a bounded set is unique** in a real normed space +of dimension at least two. -/ +theorem connectedComponentIn_compl_eq_of_unbounded_component (h : 1 < Module.rank ℝ E) + (hK : IsBounded K) (hx : ¬ IsBounded (connectedComponentIn Kᶜ x)) + (hy : ¬ IsBounded (connectedComponentIn Kᶜ y)) : + connectedComponentIn Kᶜ x = connectedComponentIn Kᶜ y := by + obtain ⟨R, hR⟩ := hK.subset_closedBall (0 : E) + have hext : (closedBall (0 : E) R)ᶜ ⊆ Kᶜ := compl_subset_compl.mpr hR + have hesc : ∀ z : E, ¬ IsBounded (connectedComponentIn Kᶜ z) → + ∃ z' ∈ connectedComponentIn Kᶜ z, z' ∈ (closedBall (0 : E) R)ᶜ := fun z hz => by + by_contra hcon + push Not at hcon + exact hz ((isBounded_closedBall (x := (0 : E)) (r := R)).subset fun w hw => + notMem_compl_iff.mp (hcon w hw)) + obtain ⟨x', hx'c, hx'R⟩ := hesc x hx + obtain ⟨y', hy'c, hy'R⟩ := hesc y hy + have h1 : y' ∈ connectedComponentIn Kᶜ x' := + (isPreconnected_compl_closedBall h 0 R).subset_connectedComponentIn hx'R hext hy'R + rw [connectedComponentIn_eq hx'c, connectedComponentIn_eq h1, ← connectedComponentIn_eq hy'c] + +/-- **Two points in different components of the complement of a bounded set cannot both lie outside +the filled hull** in a real normed space of dimension at least two. -/ +theorem mem_filledHull_or_mem_filledHull_of_notMem_connectedComponentIn (h : 1 < Module.rank ℝ E) + (hK : IsBounded K) (hxy : y ∉ connectedComponentIn Kᶜ x) : + x ∈ filledHull K ∨ y ∈ filledHull K := by + by_cases hy : y ∈ K + · exact Or.inr (subset_filledHull hy) + · by_contra hcon + push Not at hcon + simp only [mem_filledHull_iff] at hcon + exact hxy ((connectedComponentIn_compl_eq_of_unbounded_component h hK hcon.1 hcon.2).symm ▸ + mem_connectedComponentIn (mem_compl hy)) + +end TauCeti + +end + +end + +section + +/- +Copyright (c) 2026 The Tau Ceti contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: The Tau Ceti contributors +-/ +/-! +# Local connectedness of continuous images of compact spaces + +Local connectedness is not preserved by continuous images in general — every metric space is a +continuous image of a discrete one — but it *is* preserved by quotient maps, and hence by the +continuous images that are automatically quotient maps: those of a compact space in a Hausdorff +one. This file proves that, in the type-level form and in the set-level form +`TauCeti.locallyConnectedSpace_image_of_isCompact` that a subset of a topological space needs. + +The quotient step itself is Mathlib's. `Topology.IsCoinducing.locallyConnectedSpace` states that +a topology coinduced by a locally connected one is locally connected, which reaches quotient maps +through `IsQuotientMap.isCoinducing` and is strictly more general, since coinducing does not ask +for surjectivity. What is added here is the passage from that to a continuous surjection out of a +compact space, which is closed and therefore a quotient map. + +The intended consumer is layer **L5** of the conformal-mapping roadmap, Carathéodory's boundary +correspondence: a conformal map that extends continuously to the closure of its domain carries a +locally connected boundary to a locally connected boundary, which is the necessary half of +Carathéodory's continuity theorem. That application is in +`TauCeti/Analysis/Complex/Conformal/LocallyConnectedBoundary.lean`; nothing here is specific to it. + +## Main results + +* `TauCeti.locallyConnectedSpace_of_continuous_surjective` — the continuous image of a compact + locally connected space in a Hausdorff space is locally connected. +* `TauCeti.locallyConnectedSpace_image_of_isCompact` — the set-level form: `f '' s` is locally + connected for a compact, locally connected `s` on which `f` is continuous. + +## References + +* Mathlib, `Mathlib.Topology.Connected.LocallyConnected`, + `Topology.IsCoinducing.locallyConnectedSpace`: a topology coinduced by a locally connected + topology is locally connected. This is the quotient-map result applied below. +-/ + +@[expose] public section + +namespace TauCeti + +open Set Topology + +variable {X Y : Type*} [TopologicalSpace X] [TopologicalSpace Y] + +/-- **The continuous image of a compact locally connected space in a Hausdorff space is locally +connected.** A continuous surjection out of a compact space onto a Hausdorff one is closed, hence +a quotient map, hence coinducing, so `Topology.IsCoinducing.locallyConnectedSpace` applies. -/ +theorem locallyConnectedSpace_of_continuous_surjective [LocallyConnectedSpace X] [CompactSpace X] + [T2Space Y] {f : X → Y} (hf : Continuous f) (hsurj : Function.Surjective f) : + LocallyConnectedSpace Y := + (hf.isClosedMap.isQuotientMap hf hsurj).isCoinducing.locallyConnectedSpace + +/-- **The set-level form: a compact, locally connected set has locally connected continuous +images.** Stated with the subtype topologies on `s` and on `f '' s`, which is how a boundary or a +closure of a subset of a normed space is met in practice. -/ +theorem locallyConnectedSpace_image_of_isCompact [T2Space Y] {s : Set X} {f : X → Y} + [LocallyConnectedSpace s] (hs : IsCompact s) (hf : ContinuousOn f s) : + LocallyConnectedSpace (f '' s) := by + have : CompactSpace s := isCompact_iff_compactSpace.mp hs + exact locallyConnectedSpace_of_continuous_surjective (hf.mapsToRestrict (mapsTo_image f s)) + (surjective_mapsTo_image_restrict f s) + +end TauCeti + +end + +end + +section + +/- +Copyright (c) 2026 The Tau Ceti contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: The Tau Ceti contributors +-/ +/-! +# Jordan curves + +A **Jordan curve** — a simple closed curve — is a subset of a topological space homeomorphic to +the circle. This file introduces the predicate `TauCeti.IsJordanCurve` and its basic API. + +The circle is Mathlib's `Circle`, the unit circle of `ℂ` as a topological group; the notion itself +is purely topological, so `TauCeti.IsJordanCurve` is stated for a subset of an arbitrary +topological space. `ℂ` is mentioned only by the two concrete curves towards the end of the file: +the model curve, a circle `Metric.sphere c r` of positive radius, and the frontier of a bounded +convex set with nonempty interior. The model is built from the complex affine change of coordinates +`w ↦ (w - c) / r`, so it uses the field structure of `ℂ` and not only its metric, and the convex +frontier is obtained from the model by transport. + +Phrasing the predicate as *the set is homeomorphic to the circle*, rather than *the set is the +range of a continuous map on `[0, 1]` that is injective except for matching endpoints*, is what +makes it usable: over a Hausdorff ambient space the two agree, because there a continuous injection +out of a compact space is an embedding, but the parametrized form buries that argument in every +use. Passing from a parametrization to the predicate is `TauCeti.IsJordanCurve.image`, which turns +a continuous injective map defined on a set already known to be a Jordan curve — a circle in `ℂ`, +say — into a proof that its image is one; `TauCeti.IsJordanCurve.of_image` runs the other way, +transporting the property back to a compact set from an image already known to be a Jordan curve. + +## Main definitions + +* `TauCeti.IsJordanCurve` — a set homeomorphic to the circle. +* `TauCeti.jordanParam` — the parametrization of a Jordan curve by the circle underlying a + homeomorphism of the curve with `Circle`. + +## Main results + +* `TauCeti.IsJordanCurve.isCompact`, `TauCeti.IsJordanCurve.isPathConnected`, + `TauCeti.IsJordanCurve.nonempty` and `TauCeti.IsJordanCurve.not_subsingleton` — a Jordan curve is + a nonempty compact path-connected set with more than one point. +* `TauCeti.IsJordanCurve.image` and `TauCeti.IsJordanCurve.of_image` — being a Jordan curve + transfers in both directions along a map that is continuous and injective on the set, provided + the codomain is Hausdorff (and, in the direction that transports the property back from the + image, the source set is known to be compact). +* `TauCeti.IsJordanCurve.image_homeomorph` and `TauCeti.isJordanCurve_image_homeomorph_iff` — being + a Jordan curve is invariant under a homeomorphism of the ambient spaces; no separation axiom is + needed. +* `TauCeti.continuous_jordanParam`, `TauCeti.jordanParam_injective`, + `TauCeti.isInducing_jordanParam`, `TauCeti.range_jordanParam`, `TauCeti.jordanParam_apply` and + `TauCeti.jordanParam_apply_apply` — the parametrization of a Jordan curve by the circle is a + continuous injection, is inducing, traces out exactly the curve, and undoes `e`; this is what + carries a statement about the circle to one about an arbitrary Jordan curve. +* `TauCeti.sphereCircleHomeomorph` and `TauCeti.isJordanCurve_sphere` — a circle of positive radius + in `ℂ` is a Jordan curve, by the affine change of coordinates `w ↦ (w - c) / r`. +* `TauCeti.isJordanCurve_frontier_of_convex` — the frontier of a bounded convex subset of `ℂ` with + nonempty interior is a Jordan curve. This is `TauCeti.isJordanCurve_sphere` with the disc + weakened to an arbitrary convex body, the affine change of coordinates being replaced by Mathlib's + gauge rescaling. +* `TauCeti.locallyConnectedSpace_sphere` and `TauCeti.IsJordanCurve.locallyConnectedSpace` — a + circle in `ℂ`, and hence every Jordan curve, is locally connected. + +## Motivation + +This is the vocabulary layer **L5** of the conformal-mapping roadmap +(`TauCetiRoadmap/ConformalMapping/README.md`) is stated in: its milestone, the Carathéodory +boundary correspondence, is about the Riemann map of a *Jordan domain*, and the roadmap records +that the pinned Mathlib has no Jordan-curve vocabulary to state it against. The complex-analytic +half — Jordan domains, the discs among them, and the boundary of a domain that a conformal map +carries onto a disc — is in `TauCeti/Analysis/Complex/Conformal/Jordan/Domain.lean`. + +Local connectedness of a Jordan curve is what that milestone needs of the *hypothesis* side: the +route to the extension theorem for a Jordan domain `Ω` runs through Carathéodory's continuity +theorem, whose hypothesis is that `frontier Ω` be locally connected, and +`TauCeti.IsJordanCurve.locallyConnectedSpace` is what discharges it (as +`TauCeti.IsJordanDomain.locallyConnectedSpace_frontier`). Mathlib knows the circle is compact, +connected and path connected, but records no local connectedness for it, and the property is not +preserved by continuous images, so it is proved here from +`TauCeti.locallyConnectedSpace_image_of_isCompact`. + +## References + +* C. Jordan, *Cours d'analyse de l'École Polytechnique*, vol. 3 (1887). +* Ch. Pommerenke, *Boundary Behaviour of Conformal Maps*, Ch. 2. +-/ + +@[expose] public section + +namespace TauCeti + +open Metric Set Topology + +variable {X Y : Type*} [TopologicalSpace X] [TopologicalSpace Y] {C : Set X} {p : X} {r : ℝ} + +/-- A **Jordan curve**, or simple closed curve, in a topological space: a subset homeomorphic to +the circle. + +The predicate is `Nonempty (C ≃ₜ Circle)` rather than a chosen homeomorphism, so that it is a +`Prop`; `TauCeti.isJordanCurve_iff` recovers the homeomorphism from another module, where the +definition itself is not exposed. -/ +def IsJordanCurve (C : Set X) : Prop := Nonempty (C ≃ₜ Circle) + +/-- A set is a Jordan curve exactly when it is homeomorphic to the circle. This is the interface +to `TauCeti.IsJordanCurve` outside its defining module. -/ +theorem isJordanCurve_iff : IsJordanCurve C ↔ Nonempty (C ≃ₜ Circle) := Iff.rfl + +/-- A continuous injection defined on a compact set is a homeomorphism onto its image, the image +carrying the subspace topology of a Hausdorff space. This is the set-level form of +`Continuous.homeoOfEquivCompactToT2`, and the engine of both transfer lemmas below. -/ +private noncomputable def imageHomeomorphOfIsCompact [T2Space Y] (hC : IsCompact C) {g : X → Y} + (hg : ContinuousOn g C) (hgi : InjOn g C) : C ≃ₜ g '' C := + haveI : CompactSpace C := isCompact_iff_compactSpace.mp hC + Continuous.homeoOfEquivCompactToT2 (f := hgi.bijOn_image.equiv g) + (hg.mapsToRestrict hgi.bijOn_image.mapsTo) + +/-- A Jordan curve is compact: the circle is. -/ +theorem IsJordanCurve.isCompact (h : IsJordanCurve C) : IsCompact C := by + obtain ⟨e⟩ := h + exact isCompact_iff_compactSpace.mpr e.symm.compactSpace + +/-- A Jordan curve in a Hausdorff space is closed. -/ +theorem IsJordanCurve.isClosed [T2Space X] (h : IsJordanCurve C) : IsClosed C := + h.isCompact.isClosed + +/-- A Jordan curve is path connected: the circle is. -/ +theorem IsJordanCurve.isPathConnected (h : IsJordanCurve C) : IsPathConnected C := by + obtain ⟨e⟩ := h + exact isPathConnected_iff_pathConnectedSpace.mpr + (e.symm.surjective.pathConnectedSpace e.symm.continuous) + +/-- A Jordan curve is connected. -/ +theorem IsJordanCurve.isConnected (h : IsJordanCurve C) : IsConnected C := + h.isPathConnected.isConnected + +/-- A Jordan curve is nonempty. -/ +theorem IsJordanCurve.nonempty (h : IsJordanCurve C) : C.Nonempty := h.isConnected.nonempty + +/-- A Jordan curve has more than one point: the circle contains both `1` and `-1`. Together with +`TauCeti.IsJordanCurve.isConnected` this rules out the degenerate curves, so a Jordan curve is a +nondegenerate continuum. -/ +theorem IsJordanCurve.not_subsingleton (h : IsJordanCurve C) : ¬ C.Subsingleton := by + obtain ⟨e⟩ := h + intro hsub + exact Circle.neg_ne_self 1 + (e.symm.injective (Subtype.ext (hsub (e.symm (-1)).2 (e.symm 1).2))) + +/-- **A Jordan curve is carried to a Jordan curve by a continuous injection.** Only continuity and +injectivity *on the curve* are needed, the curve supplying the compactness that upgrades them to a +homeomorphism onto the image. -/ +theorem IsJordanCurve.image [T2Space Y] (h : IsJordanCurve C) {g : X → Y} (hg : ContinuousOn g C) + (hgi : InjOn g C) : IsJordanCurve (g '' C) := by + have hC := h.isCompact + obtain ⟨e⟩ := h + exact ⟨(imageHomeomorphOfIsCompact hC hg hgi).symm.trans e⟩ + +/-- **A compact set carried onto a Jordan curve by a continuous injection is a Jordan curve.** +This is the converse of `TauCeti.IsJordanCurve.image`; compactness of the source has to be assumed +here, since it is no longer inherited from the curve. It is the form in which the predicate is +verified when the curve is the *unknown* rather than the parameter: one exhibits a continuous +injective map of the set onto a set already known to be a Jordan curve, as the boundary +correspondence does with the boundary of a disc. -/ +theorem IsJordanCurve.of_image [T2Space Y] (hC : IsCompact C) {g : X → Y} (hg : ContinuousOn g C) + (hgi : InjOn g C) (h : IsJordanCurve (g '' C)) : IsJordanCurve C := by + obtain ⟨e⟩ := h + exact ⟨(imageHomeomorphOfIsCompact hC hg hgi).trans e⟩ + +/-- The image of a Jordan curve under a homeomorphism of the ambient spaces is a Jordan curve. +Unlike `TauCeti.IsJordanCurve.image` this needs no separation axiom on the codomain, because +`Homeomorph.image` supplies the homeomorphism onto the image outright. -/ +theorem IsJordanCurve.image_homeomorph (h : IsJordanCurve C) (e : X ≃ₜ Y) : + IsJordanCurve (e '' C) := by + obtain ⟨f⟩ := h + exact ⟨(e.image C).symm.trans f⟩ + +/-- Being a Jordan curve is invariant under a homeomorphism of the ambient spaces. This is the +characteristic form of `TauCeti.IsJordanCurve.image_homeomorph`: the backward direction is that +lemma applied to `e.symm`, which no consumer then has to spell out. -/ +@[simp] +theorem isJordanCurve_image_homeomorph_iff (e : X ≃ₜ Y) : + IsJordanCurve (e '' C) ↔ IsJordanCurve C := + ⟨fun h => e.symm_image_image C ▸ h.image_homeomorph e.symm, fun h => h.image_homeomorph e⟩ + +/-! ## The parametrization by the circle + +Every transport of a statement about `Circle` to a Jordan curve goes through the parametrization +`jordanParam e` attached to a homeomorphism `e`, so its properties — continuity, injectivity, +range, and that it is inducing — are collected here rather than rebuilt at each use, both by the +cutting of a curve at one or two of its points +(`TauCeti/Topology/JordanCurve/Separation.lean`) and by the quantitative form of that cutting +(`TauCeti/Topology/JordanCurve/SmallArc.lean`). -/ + +/-- The parametrization of a Jordan curve by the circle underlying a homeomorphism `e`: the +composite of `e.symm` with the inclusion of the curve into the ambient space. -/ +noncomputable def jordanParam (e : C ≃ₜ Circle) : Circle → X := + fun u => ((e.symm u : C) : X) + +/-- The parametrization `TauCeti.jordanParam` of a Jordan curve by the circle is continuous. -/ +lemma continuous_jordanParam (e : C ≃ₜ Circle) : Continuous (jordanParam e) := + continuous_subtype_val.comp e.symm.continuous + +/-- The parametrization `TauCeti.jordanParam` of a Jordan curve by the circle is injective: this is +the simplicity of the curve. -/ +lemma jordanParam_injective (e : C ≃ₜ Circle) : Function.Injective (jordanParam e) := + Subtype.val_injective.comp e.symm.injective + +/-- The parametrization `TauCeti.jordanParam` of a Jordan curve by the circle is inducing, so +preconnectedness of a subset of the curve may be tested on its preimage of parameters. -/ +lemma isInducing_jordanParam (e : C ≃ₜ Circle) : Topology.IsInducing (jordanParam e) := + Topology.IsInducing.subtypeVal.comp e.symm.isInducing + +/-- The parametrization `TauCeti.jordanParam` of a Jordan curve by the circle traces out exactly the +curve. -/ +@[simp] +lemma range_jordanParam (e : C ≃ₜ Circle) : range (jordanParam e) = C := by + refine subset_antisymm ?_ fun x hx => ⟨e ⟨x, hx⟩, by simp [jordanParam]⟩ + rintro _ ⟨u, rfl⟩ + exact (e.symm u).2 + +/-- The defining equation of `TauCeti.jordanParam`: the parameter `u` names the point `e.symm u` of +the curve, read in the ambient space. This is the general application lemma, so a consumer never has +to unfold the definition. -/ +@[simp] +lemma jordanParam_apply (e : C ≃ₜ Circle) (u : Circle) : + jordanParam e u = ((e.symm u : C) : X) := by + simp [jordanParam] + +/-- The parametrization `TauCeti.jordanParam` of a Jordan curve by the circle undoes `e`: it sends +the parameter `e ⟨p, hp⟩` of a point `p` of the curve back to `p`. Simp proves this from +`TauCeti.jordanParam_apply`; it is stated for the `rw` steps that produce the point `p` itself +rather than a coerced parameter. -/ +lemma jordanParam_apply_apply (e : C ≃ₜ Circle) (hp : p ∈ C) : + jordanParam e (e ⟨p, hp⟩) = p := by + simp + +/-! ## The model curve: a circle in `ℂ` -/ + +/-- `Circle` is *by definition* the unit sphere of `ℂ`, but it is a `def` rather than an +abbreviation, so its topology is only definitionally the subtype topology. This identification is +the one place where that unfolding happens; the lemmas below then compute with the unit sphere +alone. -/ +noncomputable def unitSphereCircleHomeomorph : sphere (0 : ℂ) 1 ≃ₜ Circle := + Homeomorph.refl _ + +private lemma coe_unitSphereCircleHomeomorph (z : sphere (0 : ℂ) 1) : + (unitSphereCircleHomeomorph z : ℂ) = (z : ℂ) := rfl + +private lemma coe_unitSphereCircleHomeomorph_symm (z : Circle) : + ((unitSphereCircleHomeomorph.symm z : sphere (0 : ℂ) 1) : ℂ) = (z : ℂ) := rfl + +/-- The affine parametrization `w ↦ (w - c) / r` of a circle of centre `c` and positive radius `r` +in `ℂ` by the unit circle. It is the restriction to the spheres of the inverse of Mathlib's ambient +`affineHomeomorph r c`, so only the membership equivalence is proved here. -/ +noncomputable def sphereCircleHomeomorph (c : ℂ) (hr : 0 < r) : sphere c r ≃ₜ Circle := + haveI hr0 : (r : ℂ) ≠ 0 := by exact_mod_cast hr.ne' + (((affineHomeomorph (r : ℂ) c hr0).symm).subtype fun w => by + rw [affineHomeomorph_symm_apply] + simp [mem_sphere_iff_norm, abs_of_pos hr, div_eq_one_iff_eq, hr.ne']).trans + unitSphereCircleHomeomorph + +/-- The parametrization of `sphere c r` by the unit circle divides out the affine change of +coordinates. -/ +@[simp] +lemma coe_sphereCircleHomeomorph_apply (c : ℂ) (hr : 0 < r) (w : sphere c r) : + (sphereCircleHomeomorph c hr w : ℂ) = ((w : ℂ) - c) / r := by + simp [sphereCircleHomeomorph, coe_unitSphereCircleHomeomorph] + +/-- The inverse parametrization of `sphere c r` by the unit circle is the affine change of +coordinates. -/ +@[simp] +lemma coe_sphereCircleHomeomorph_symm_apply (c : ℂ) (hr : 0 < r) (z : Circle) : + (((sphereCircleHomeomorph c hr).symm z : sphere c r) : ℂ) = c + r * (z : ℂ) := by + simp [sphereCircleHomeomorph, coe_unitSphereCircleHomeomorph_symm, add_comm] + +/-- A circle of positive radius in `ℂ` is a Jordan curve. -/ +theorem isJordanCurve_sphere (c : ℂ) (hr : 0 < r) : IsJordanCurve (sphere c r) := + isJordanCurve_iff.mpr ⟨sphereCircleHomeomorph c hr⟩ + +/-- **The frontier of a bounded convex subset of `ℂ` with nonempty interior is a Jordan curve.** + +This is `TauCeti.isJordanCurve_sphere` with the disc weakened to an arbitrary convex body, which it +recovers at `s = Metric.ball c r`. The model curve transports because Mathlib's gauge rescaling +supplies an *ambient* homeomorphism `e : ℂ ≃ₜ ℂ` carrying `frontier s` onto the unit circle +(`exists_homeomorph_image_interior_closure_frontier_eq_unitBall`), so the affine change of +coordinates above is simply replaced by a nonlinear one and no further topology is needed. + +The set is asked neither to be open nor to be nonempty: what a convex set needs in order to have a +one-dimensional frontier is that it be *solid*, and that is `(interior s).Nonempty`. Without it the +statement fails — a segment is convex and bounded, and is its own frontier. -/ +theorem isJordanCurve_frontier_of_convex {s : Set ℂ} (hs : Convex ℝ s) + (hne : (interior s).Nonempty) (hb : Bornology.IsBounded s) : IsJordanCurve (frontier s) := by + obtain ⟨e, -, -, hfr⟩ := exists_homeomorph_image_interior_closure_frontier_eq_unitBall hs hne hb + refine (isJordanCurve_image_homeomorph_iff e).mp ?_ + rw [hfr] + exact isJordanCurve_sphere 0 one_pos + +/-! ## Local connectedness -/ + +open Complex in +/-- **A circle in `ℂ` is locally connected.** It is the image of the compact interval `[-π, π]`, +which is convex and hence locally connected, under the continuous `θ ↦ c + r * exp (θ * I)`, so +`TauCeti.locallyConnectedSpace_image_of_isCompact` applies. A sphere of negative radius is empty, +and vacuously locally connected. -/ +instance locallyConnectedSpace_sphere (c : ℂ) (r : ℝ) : LocallyConnectedSpace (sphere c r) := by + rcases lt_or_ge r 0 with hr | hr + · have hempty : sphere c r = (∅ : Set ℂ) := by + ext z + simp only [mem_sphere_iff_norm, mem_empty_iff_false, iff_false] + intro h + have : (0 : ℝ) ≤ r := h ▸ norm_nonneg (z - c) + linarith + rw [hempty] + exact ⟨fun x => absurd x.2 (notMem_empty _)⟩ + · have hparam : + sphere c r = (fun θ : ℝ => c + r * exp (θ * I)) '' Icc (-Real.pi) Real.pi := by + ext z + simp only [mem_sphere_iff_norm, mem_image, mem_Icc] + constructor + · intro hz + refine ⟨arg (z - c), ⟨(neg_pi_lt_arg (z - c)).le, arg_le_pi (z - c)⟩, ?_⟩ + rw [← hz, norm_mul_exp_arg_mul_I (z - c)] + ring + · rintro ⟨θ, -, rfl⟩ + simp [abs_of_nonneg hr] + have := (convex_Icc (-Real.pi) Real.pi).locallyPathConnectedSpace + rw [hparam] + exact locallyConnectedSpace_image_of_isCompact isCompact_Icc + (Continuous.continuousOn (by fun_prop)) + +/-- **The circle is locally connected.** `Circle` is the unit circle of `ℂ`, so this is the unit +case of `TauCeti.locallyConnectedSpace_sphere` transported along `TauCeti.sphereCircleHomeomorph`. +Mathlib records the circle as compact, connected and path connected, but not as locally +connected. -/ +instance locallyConnectedSpace_circle : LocallyConnectedSpace Circle := + (sphereCircleHomeomorph (0 : ℂ) one_pos).symm.locallyConnectedSpace + +/-- **A Jordan curve is locally connected**, being homeomorphic to the circle. + +This is the form in which the hypothesis of Carathéodory's continuity theorem — that the boundary +of the domain be locally connected — is met by a Jordan domain, which is what layer **L5** of the +conformal-mapping roadmap is about; see `TauCeti.IsJordanDomain.locallyConnectedSpace_frontier`. -/ +theorem IsJordanCurve.locallyConnectedSpace (h : IsJordanCurve C) : LocallyConnectedSpace C := + (isJordanCurve_iff.mp h).elim fun e => e.locallyConnectedSpace + +end TauCeti + +end + +end + +section + +/- +Copyright (c) 2026 The Tau Ceti contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: The Tau Ceti contributors +-/ +/-! +# Jordan curves traced by paths + +A path whose two endpoints agree is a parametrised closed curve, but its range need not be a +Jordan curve: the path may pause, retrace an arc, or cross itself. This file supplies the exact +criterion needed to exclude those degeneracies. If a closed path has no repeated values except +for its two endpoint parameters, its range is a Jordan curve +(`TauCeti.isJordanCurve_range_of_eq_or_eq_endpoints`). + +The proof uses the quotient model of the circle already in Mathlib. The extension of a path +`γ : Path x x` to `ℝ` has equal values at `0` and `1`, so +`AddCircle.liftIco 1 0 γ.extend` factors it through the additive circle `ℝ / ℤ`. The hypothesis on +repetitions says precisely that this factor is injective, and its range is the range of `γ`. The +additive circle is itself a Jordan curve, `AddCircle.homeomorphCircle` identifying it with +`Circle`, so `TauCeti.IsJordanCurve.image` carries that along the factor: the compactness argument +upgrading a continuous injection to a homeomorphism onto its image is already packaged there and is +not repeated here. + +The condition is stated directly rather than bundled as a new notion of simple closed path. This +is the only operation needed here, and keeping it as a theorem hypothesis avoids introducing a +second simplicity vocabulary alongside Mathlib's path API. + +## Gluing two arcs + +The criterion has one immediate use that is worth naming on its own: two *arcs* — ranges of +injective paths — that share their two endpoints and meet nowhere else glue to a Jordan curve +(`TauCeti.isJordanCurve_range_union_range_of_inter_eq_pair`). The closed path traversed is +`γ.trans δ.symm`, whose range is `range γ ∪ range δ`; the meeting hypothesis is what turns a +coincidence between a value of `γ` and a value of `δ` into a coincidence of endpoints, and +injectivity of each of the two paths handles the coincidences internal to one of them. The +endpoints are not asked to be distinct: injectivity of `δ` already forces that, since a path with +equal endpoints repeats the value at the two distinct parameters `0` and `1`. + +## Main results + +* `TauCeti.isJordanCurve_range_of_eq_or_eq_endpoints` — the range of a closed path whose only + possible repetition is its pair of endpoints is a Jordan curve. +* `TauCeti.isJordanCurve_range_union_range_of_inter_eq_pair` — two arcs with the same two + endpoints, meeting exactly there, glue to a Jordan curve. + +## Roadmap role + +This is the topological gluing step used by layer **L5** of +`TauCetiRoadmap/ConformalMapping/README.md`, the Carathéodory boundary correspondence. A +finite-length image crosscut is already packaged as a path with exactly this simplicity property in +`TauCeti/Analysis/Complex/Conformal/Crosscut/Path.lean`; when its two boundary ends coincide, the +first result below identifies the closure of that crosscut as a Jordan curve, and when they are +distinct the second closes that crosscut up with an arc of the boundary of the image domain. The +coincident-end specialization is in `TauCeti/Analysis/Complex/Conformal/Crosscut/Jordan.lean` and +the distinct-end one in `TauCeti/Analysis/Complex/Conformal/Crosscut/Arc.lean`. +-/ + +@[expose] public section + +namespace TauCeti + +open Set + +variable {X : Type*} [TopologicalSpace X] [T2Space X] {x : X} + +omit [T2Space X] in +/-- **A simple closed path lifts injectively to the circle.** If equality `γ s = γ t` forces `s = t` +or the unordered pair of parameters to be `{0, 1}`, then `AddCircle.liftIco 1 0 γ.extend` is +injective. -/ +private theorem liftIco_extend_injective (γ : Path x x) + (hγ : ∀ ⦃s t : unitInterval⦄, γ s = γ t → + s = t ∨ (s = 0 ∧ t = 1) ∨ (s = 1 ∧ t = 0)) : + Function.Injective (AddCircle.liftIco 1 0 γ.extend) := by + intro q q' hqq' + -- representatives in `[0, 1)` cannot form the exceptional endpoint pair + obtain ⟨s, hs, rfl⟩ := AddCircle.eq_coe_Ico q + obtain ⟨t, ht, rfl⟩ := AddCircle.eq_coe_Ico q' + rw [(AddCircle.liftIco_zero_coe_apply hs).trans (γ.extend_extends' ⟨s, hs.1, hs.2.le⟩), + (AddCircle.liftIco_zero_coe_apply ht).trans (γ.extend_extends' ⟨t, ht.1, ht.2.le⟩)] at hqq' + rcases hγ hqq' with hst | hends | hends + · exact congrArg (fun u : unitInterval => ((u : ℝ) : AddCircle (1 : ℝ))) hst + · exact absurd (congrArg ((↑) : unitInterval → ℝ) hends.2) ht.2.ne + · exact absurd (congrArg ((↑) : unitInterval → ℝ) hends.1) hs.2.ne + +/-- **The range of a simple closed path is a Jordan curve.** Let `γ : Path x x` be a closed path. +If equality `γ s = γ t` forces either `s = t` or the unordered pair of parameters to be `{0, 1}`, +then `range γ` is homeomorphic to the circle. + +The disjunction records both orientations of the exceptional endpoint pair explicitly. No local +injectivity or embedding hypothesis is needed, and no separation assumption on the ambient space +beyond the Hausdorffness that `TauCeti.IsJordanCurve.image` asks for. -/ +theorem isJordanCurve_range_of_eq_or_eq_endpoints (γ : Path x x) + (hγ : ∀ ⦃s t : unitInterval⦄, γ s = γ t → + s = t ∨ (s = 0 ∧ t = 1) ∨ (s = 1 ∧ t = 0)) : + IsJordanCurve (range γ) := by + -- Factor the extended path through `[0, 1]` with its endpoints identified; the additive circle + -- is a Jordan curve, and the factor carries it onto the range of `γ`. + have hg0 : γ.extend 0 = γ.extend 1 := by rw [γ.extend_zero, γ.extend_one] + have hgc : Continuous (AddCircle.liftIco 1 0 γ.extend) := + AddCircle.liftIco_zero_continuous hg0 γ.continuous_extend.continuousOn + have huniv : IsJordanCurve (univ : Set (AddCircle (1 : ℝ))) := + isJordanCurve_iff.mpr + ⟨(Homeomorph.Set.univ (AddCircle (1 : ℝ))).trans (AddCircle.homeomorphCircle one_ne_zero)⟩ + have himage := huniv.image hgc.continuousOn (liftIco_extend_injective γ hγ).injOn + -- present the lift as a quotient map off `[0, 1]` and read its range through the quotient + rwa [image_univ, AddCircle.liftIco_eq_lift_Icc (by simp), (Equiv.surjective _).range_comp, + Set.range_quot_lift, Set.range_domRestrict, γ.image_extend_of_subset (by norm_num)] at himage + +/-! ### Gluing two arcs along their endpoints -/ + +omit [T2Space X] in +/-- **A value shared by two arcs with the same endpoints is attained at a shared parameter.** If +the ranges of `γ δ : Path x y` meet exactly in `{x, y}`, then `γ a = δ b` forces both parameters to +be `0` or both to be `1`. + +The shared value lies in `range γ ∩ range δ = {x, y}`, and injectivity of each path identifies the +parameter at which it takes the endpoint value. -/ +private theorem eq_zero_and_eq_zero_or_eq_one_and_eq_one_of_apply_eq {y : X} {γ δ : Path x y} + (hγ : Function.Injective γ) (hδ : Function.Injective δ) + (hmeet : range γ ∩ range δ = {x, y}) {a b : unitInterval} (hab : γ a = δ b) : + (a = 0 ∧ b = 0) ∨ (a = 1 ∧ b = 1) := by + have hmem : γ a ∈ ({x, y} : Set X) := + hmeet ▸ ⟨mem_range_self a, hab ▸ mem_range_self b⟩ + rcases hmem with h | h + · exact Or.inl ⟨hγ (h.trans γ.source.symm), hδ (hab.symm.trans (h.trans δ.source.symm))⟩ + · exact Or.inr ⟨hγ (h.trans γ.target.symm), hδ (hab.symm.trans (h.trans δ.target.symm))⟩ + +/-- **Two arcs meeting exactly at their common endpoints glue to a Jordan curve.** Let +`γ δ : Path x y` be injective and let their ranges meet in exactly the two endpoints, +`range γ ∩ range δ = {x, y}`. Then `range γ ∪ range δ` is a Jordan curve. + +The curve traversed is `γ.trans δ.symm`, a closed path at `x` whose range is `range γ ∪ range δ` +by `Path.trans_range` and `Path.symm_range`. Its only repetitions are the ones +`TauCeti.isJordanCurve_range_of_eq_or_eq_endpoints` allows: a coincidence between two parameters on +the same half is excluded by injectivity of that half, and one between the two halves lands in +`{x, y}`, so it is either the pair `{0, 1}` of endpoint parameters or the single parameter `1 / 2` +at which the two halves are joined. + +Distinctness of `x` and `y` is a consequence rather than a hypothesis: `δ 0 = δ 1` would contradict +injectivity of `δ`. -/ +theorem isJordanCurve_range_union_range_of_inter_eq_pair {y : X} {γ δ : Path x y} + (hγ : Function.Injective γ) (hδ : Function.Injective δ) + (hmeet : range γ ∩ range δ = {x, y}) : + IsJordanCurve (range γ ∪ range δ) := by + have hrange : range (γ.trans δ.symm) = range γ ∪ range δ := by + rw [Path.trans_range, Path.symm_range] + rw [← hrange] + refine isJordanCurve_range_of_eq_or_eq_endpoints _ fun s t hst => ?_ + rw [Path.trans_apply, Path.trans_apply] at hst + split_ifs at hst with hs ht ht + · -- Both parameters on the first half: injectivity of `γ`. + have h : (2 : ℝ) * s = 2 * t := congrArg Subtype.val (hγ hst) + exact Or.inl (Subtype.ext (show (s : ℝ) = (t : ℝ) by linarith)) + · -- The first parameter on `γ`, the second on `δ` read backwards. + simp only [Path.symm_apply, Function.comp_apply] at hst + rcases eq_zero_and_eq_zero_or_eq_one_and_eq_one_of_apply_eq hγ hδ hmeet hst with ⟨ha, hb⟩ | h + · have h1 : (2 : ℝ) * s = 0 := congrArg Subtype.val ha + have h2 : 1 - (2 * (t : ℝ) - 1) = 0 := congrArg Subtype.val hb + exact Or.inr (Or.inl ⟨Subtype.ext (show (s : ℝ) = 0 by linarith), + Subtype.ext (show (t : ℝ) = 1 by linarith)⟩) + · have h1 : (2 : ℝ) * s = 1 := congrArg Subtype.val h.1 + have h2 : 1 - (2 * (t : ℝ) - 1) = 1 := congrArg Subtype.val h.2 + exact Or.inl (Subtype.ext (show (s : ℝ) = (t : ℝ) by linarith)) + · -- The mirror image of the previous case. + simp only [Path.symm_apply, Function.comp_apply] at hst + rcases eq_zero_and_eq_zero_or_eq_one_and_eq_one_of_apply_eq hγ hδ hmeet hst.symm with + ⟨ha, hb⟩ | h + · have h1 : (2 : ℝ) * t = 0 := congrArg Subtype.val ha + have h2 : 1 - (2 * (s : ℝ) - 1) = 0 := congrArg Subtype.val hb + exact Or.inr (Or.inr ⟨Subtype.ext (show (s : ℝ) = 1 by linarith), + Subtype.ext (show (t : ℝ) = 0 by linarith)⟩) + · have h1 : (2 : ℝ) * t = 1 := congrArg Subtype.val h.1 + have h2 : 1 - (2 * (s : ℝ) - 1) = 1 := congrArg Subtype.val h.2 + exact Or.inl (Subtype.ext (show (s : ℝ) = (t : ℝ) by linarith)) + · -- Both parameters on the second half: injectivity of `δ` read backwards. + simp only [Path.symm_apply, Function.comp_apply] at hst + have h : 1 - (2 * (s : ℝ) - 1) = 1 - (2 * (t : ℝ) - 1) := congrArg Subtype.val (hδ hst) + exact Or.inl (Subtype.ext (show (s : ℝ) = (t : ℝ) by linarith)) + +end TauCeti + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Curve.Foundations.Development002`. +* `Curve.Foundations.Development003`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Curve.Jordan.Separation`. +* `Curve.Jordan.Interior`. +* `Curve.Jordan.OrientationTransport`. +* `Curve.Jordan.AreaTransport`. +* `Curve.Jordan.ClosedArea`. +* `Curve.Jordan.SignedArea`. +* `Curve.Jordan.SupportingOrientation`. +* `Curve.Jordan.Subarc`. +* `Curve.Reparametrization`. +* `Curve.SegmentAreaProperties`. +* `Curve.Jordan.SubarcArea`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Separation +-/ + +@[expose] public section + +namespace MovingSofa + +private theorem IsJordanCurve.exists_sphere_parametrization {Γ : Set Point} + (hΓ : IsJordanCurve Γ) : + ∃ r : Metric.sphere (0 : Point) 1 → Point, + Continuous r ∧ Function.Injective r ∧ Set.range r = Γ := by + obtain ⟨f, hf, hfi, hfr⟩ := hΓ + let e := Complex.orthonormalBasisOneI.repr.symm + let φ : Metric.sphere (0 : Point) 1 → Circle := fun p ↦ + ⟨e p.val, mem_sphere_zero_iff_norm.mpr (by + rw [e.norm_map] + exact mem_sphere_zero_iff_norm.mp p.property)⟩ + have hφc : Continuous φ := (e.continuous.comp continuous_subtype_val).subtype_mk _ + have hφi : Function.Injective φ := by + intro p q h + apply Subtype.ext + exact e.injective (congrArg Subtype.val h) + have hφs : Function.Surjective φ := by + intro z + refine ⟨⟨e.symm z.val, mem_sphere_zero_iff_norm.mpr ?_⟩, Subtype.ext ?_⟩ + · rw [e.symm.norm_map] + exact Circle.norm_coe z + · exact e.apply_symm_apply z.val + refine ⟨f ∘ φ, hf.comp hφc, hfi.comp hφi, ?_⟩ + rw [Set.range_comp, hφs.range_eq, Set.image_univ, hfr] + +theorem jordan_separation {Γ : Set Point} (hΓ : IsJordanCurve Γ) : + ∃ U V : Set Point, + IsOpen U ∧ IsOpen V ∧ IsConnected U ∧ IsConnected V ∧ + Bornology.IsBounded U ∧ ¬Bornology.IsBounded V ∧ + Disjoint U V ∧ U ∪ V = Γᶜ ∧ frontier U = Γ ∧ frontier V = Γ ∧ + (∀ p ∈ U, connectedComponentIn Γᶜ p = U) ∧ + (∀ p ∈ V, connectedComponentIn Γᶜ p = V) := by + obtain ⟨r, hr, hri, hrΓ⟩ := hΓ.exists_sphere_parametrization + rw [← hrΓ] + obtain ⟨u, hu, hub⟩ := JordanCurve.step_A_exists_bounded JordanCurve.Brouwer.brouwerFPT hr hri + obtain ⟨v, hv, hvu⟩ := JordanCurve.exists_unbounded_component r hr + let U := connectedComponentIn (Set.range r)ᶜ u + let V := connectedComponentIn (Set.range r)ᶜ v + have hne : U ≠ V := by + intro h + change connectedComponentIn (Set.range r)ᶜ u = connectedComponentIn (Set.range r)ᶜ v at h + exact hvu (h ▸ hub) + have hdis : Disjoint U V := by + apply Set.disjoint_left.mpr + intro p hpU hpV + exact hne ((connectedComponentIn_eq hpU).trans (connectedComponentIn_eq hpV).symm) + have hcover : U ∪ V = (Set.range r)ᶜ := by + apply Set.Subset.antisymm + · exact Set.union_subset (connectedComponentIn_subset _ _) (connectedComponentIn_subset _ _) + · intro p hp + by_cases hpb : Bornology.IsBounded (connectedComponentIn (Set.range r)ᶜ p) + · left + have h := JordanCurve.step_B_bounded_unique JordanCurve.Brouwer.brouwerFPT hr hri + p hp u hu hpb hub + simpa only [U, ← h] using mem_connectedComponentIn hp + · right + have h := JordanCurve.unbounded_component_unique r hr hpb hvu + simpa only [V, ← h] using mem_connectedComponentIn hp + refine ⟨U, V, JordanCurve.isOpen_component r hr u, JordanCurve.isOpen_component r hr v, + isConnected_connectedComponentIn_iff.mpr hu, isConnected_connectedComponentIn_iff.mpr hv, + hub, hvu, hdis, hcover, ?_, ?_, ?_, ?_⟩ + · exact JordanCurve.component_boundary_eq JordanCurve.Brouwer.brouwerFPT hr hri hu + ⟨v, hv, hne.symm⟩ + · exact JordanCurve.component_boundary_eq JordanCurve.Brouwer.brouwerFPT hr hri hv + ⟨u, hu, hne⟩ + · intro p hp + exact (connectedComponentIn_eq hp).symm + · intro p hp + exact (connectedComponentIn_eq hp).symm + +end MovingSofa + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Interior +-/ + +@[expose] public section + +namespace MovingSofa + +/-- A Jordan curve has a point in its bounded complementary component. -/ +theorem IsJordanCurve.jordanInterior_nonempty {Γ : Set Point} + (hΓ : IsJordanCurve Γ) : (jordanInterior Γ).Nonempty := by + obtain ⟨U, V, _, _, hU, _, hUb, _, _, hcover, _, _, hcomp, _⟩ := + jordan_separation hΓ + obtain ⟨p, hp⟩ := hU.nonempty + refine ⟨p, ?_, ?_⟩ + · have : p ∈ Γᶜ := hcover ▸ Set.mem_union_left V hp + exact this + · rw [hcomp p hp] + exact hUb + +/-- The frontier of the bounded complementary component of a Jordan curve is the curve +itself. -/ +theorem IsJordanCurve.frontier_jordanInterior {Γ : Set Point} (hΓ : IsJordanCurve Γ) : + frontier (jordanInterior Γ) = Γ := by + obtain ⟨U, V, -, -, -, -, hUbdd, hVunbdd, -, hcover, hfrontU, -, hUcomp, hVcomp⟩ := + jordan_separation hΓ + have hUeq : jordanInterior Γ = U := by + ext p + simp only [jordanInterior, Set.mem_ofPred_eq] + constructor + · rintro ⟨hpΓ, hpb⟩ + rcases hcover.symm.subset hpΓ with h | h + · exact h + · rw [hVcomp p h] at hpb + exact absurd hpb hVunbdd + · intro hpU + refine ⟨?_, ?_⟩ + · have hmem : p ∈ Γᶜ := by rw [← hcover]; exact Or.inl hpU + exact hmem + · rw [hUcomp p hpU] + exact hUbdd + rw [hUeq] + exact hfrontU + +end MovingSofa + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Orientation Transport +-/ + +@[expose] public section + +noncomputable section +namespace MovingSofa + +/-- Endpoint-preserving continuous parameter changes preserve Jordan orientation. -/ +theorem IsOrientedJordanParametrization.orientation_eq_of_comp + {a b c d : ℝ} {hab : a ≤ b} {hcd : c ≤ d} {Γ : Set Point} + {ccw₁ ccw₂ : Bool} {x : Set.Icc a b → Point} {y : Set.Icc c d → Point} + (hx : IsOrientedJordanParametrization hab Γ ccw₁ x) + (hy : IsOrientedJordanParametrization hcd Γ ccw₂ y) + (φ : Set.Icc c d → Set.Icc a b) (hφ : Continuous φ) + (hφa : φ ⟨c, le_rfl, hcd⟩ = ⟨a, le_rfl, hab⟩) + (hφb : φ ⟨d, hcd, le_rfl⟩ = ⟨b, hab, le_rfl⟩) + (hxy : y = x ∘ φ) : ccw₂ = ccw₁ := by + obtain ⟨p, hp⟩ := hx.2.1.jordanInterior_nonempty + have hxw := hx.2.2.2.2.2.2 p hp + have hyw := hy.2.2.2.2.2.2 p hp + have hn : curveWinding hab x p ≠ 0 := by + rw [hxw] + cases ccw₁ <;> norm_num + have hw := curveWinding_comp_of_endpoints hab hcd + (exists_curveAngleLift_of_curveWinding_ne_zero hab hn) hφ hφa hφb + rw [← hxy, hxw, hyw] at hw + cases ccw₁ <;> cases ccw₂ <;> first | rfl | norm_num at hw + +/-- Exchanging the parameter endpoints reverses Jordan orientation. -/ +theorem IsOrientedJordanParametrization.orientation_eq_not_of_comp + {a b c d : ℝ} {hab : a ≤ b} {hcd : c ≤ d} {Γ : Set Point} + {ccw₁ ccw₂ : Bool} {x : Set.Icc a b → Point} {y : Set.Icc c d → Point} + (hx : IsOrientedJordanParametrization hab Γ ccw₁ x) + (hy : IsOrientedJordanParametrization hcd Γ ccw₂ y) + (φ : Set.Icc c d → Set.Icc a b) (hφ : Continuous φ) + (hφa : φ ⟨c, le_rfl, hcd⟩ = ⟨b, hab, le_rfl⟩) + (hφb : φ ⟨d, hcd, le_rfl⟩ = ⟨a, le_rfl, hab⟩) + (hxy : y = x ∘ φ) : ccw₂ = !ccw₁ := by + obtain ⟨p, hp⟩ := hx.2.1.jordanInterior_nonempty + have hxw := hx.2.2.2.2.2.2 p hp + have hyw := hy.2.2.2.2.2.2 p hp + have hn : curveWinding hab x p ≠ 0 := by + rw [hxw] + cases ccw₁ <;> norm_num + have hw := curveWinding_comp_of_reversed_endpoints hab hcd + (exists_curveAngleLift_of_curveWinding_ne_zero hab hn) hφ hφa hφb + rw [← hxy, hxw, hyw] at hw + cases ccw₁ <;> cases ccw₂ <;> first | rfl | norm_num at hw + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Area Transport +-/ + +@[expose] public section + +namespace MovingSofa + +/-- A monotone or antitone transition between oriented Jordan paths determines their +signed areas. -/ +theorem curveArea_eq_of_oriented_reparametrization + {a b c d : ℝ} (hab : a ≤ b) (hcd : c ≤ d) + {Γ : Set Point} {ccw₁ ccw₂ : Bool} + (x : ContinuousBVPaths a b) (y : ContinuousBVPaths c d) + (hx : IsOrientedJordanParametrization hab Γ ccw₁ x.val) + (hy : IsOrientedJordanParametrization hcd Γ ccw₂ y.val) + (φ : Set.Icc c d → Set.Icc a b) (hφc : Continuous φ) + (hφs : Function.Surjective φ) (hφ : Monotone φ ∨ Antitone φ) + (hcomp : y.val = x.val ∘ φ) : + (ccw₁ = ccw₂ → curveAreaFunctional x = curveAreaFunctional y) ∧ + (ccw₁ ≠ ccw₂ → curveAreaFunctional x = -curveAreaFunctional y) := by + obtain ⟨z, hz, hmarea, haarea⟩ := + curveArea_comp_monotone_or_antitone_surjective hab hcd x φ hφc hφs hφ + have hzy : z = y := Subtype.ext (hz.trans hcomp.symm) + subst z + obtain ⟨u, hu⟩ := hφs ⟨a, le_rfl, hab⟩ + obtain ⟨v, hv⟩ := hφs ⟨b, hab, le_rfl⟩ + rcases hφ with hm | ha + · have hleft : φ ⟨c, le_rfl, hcd⟩ = ⟨a, le_rfl, hab⟩ := by + apply le_antisymm + · simpa only [hu] using + hm (show (⟨c, le_rfl, hcd⟩ : Set.Icc c d) ≤ u from u.property.1) + · exact (φ ⟨c, le_rfl, hcd⟩).property.1 + have hright : φ ⟨d, hcd, le_rfl⟩ = ⟨b, hab, le_rfl⟩ := by + apply le_antisymm + · exact (φ ⟨d, hcd, le_rfl⟩).property.2 + · simpa only [hv] using + hm (show v ≤ (⟨d, hcd, le_rfl⟩ : Set.Icc c d) from v.property.2) + have horient := hx.orientation_eq_of_comp hy φ hφc hleft hright hcomp + exact ⟨fun _ ↦ (hmarea hm).symm, fun hn ↦ (hn horient.symm).elim⟩ + · have hleft : φ ⟨c, le_rfl, hcd⟩ = ⟨b, hab, le_rfl⟩ := by + apply le_antisymm + · exact (φ ⟨c, le_rfl, hcd⟩).property.2 + · simpa only [hv] using + ha (show (⟨c, le_rfl, hcd⟩ : Set.Icc c d) ≤ v from v.property.1) + have hright : φ ⟨d, hcd, le_rfl⟩ = ⟨a, le_rfl, hab⟩ := by + apply le_antisymm + · simpa only [hu] using + ha (show u ≤ (⟨d, hcd, le_rfl⟩ : Set.Icc c d) from u.property.2) + · exact (φ ⟨d, hcd, le_rfl⟩).property.1 + have horient := hx.orientation_eq_not_of_comp hy φ hφc hleft hright hcomp + constructor + · intro heq + have hf : ccw₁ = !ccw₁ := heq.trans horient + cases ccw₁ <;> contradiction + · intro _ + have heq := haarea ha + linarith + +end MovingSofa + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Closed Area +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Same-carrier closed Jordan parametrizations have signed areas determined by orientation. -/ +theorem curveArea_closed_same_carrier (Γ Δ : OrientedJordanCurve) + (x : ClosedBVParametrization Γ) (y : ClosedBVParametrization Δ) + (hcarrier : Γ.carrier = Δ.carrier) : + (Γ.counterclockwise = Δ.counterclockwise → + curveAreaFunctional x.path = curveAreaFunctional y.path) ∧ + (Γ.counterclockwise ≠ Δ.counterclockwise → + curveAreaFunctional x.path = -curveAreaFunctional y.path) := by + have hy : IsOrientedJordanParametrization y.ordered Γ.carrier Δ.counterclockwise y.path.val := by + rw [hcarrier] + exact y.oriented + have hcompare (z : ClosedBVParametrization Γ) + (hstart : z.path.val ⟨z.a, le_rfl, z.ordered⟩ = + y.path.val ⟨y.a, le_rfl, y.ordered⟩) : + (Γ.counterclockwise = Δ.counterclockwise → + curveAreaFunctional z.path = curveAreaFunctional y.path) ∧ + (Γ.counterclockwise ≠ Δ.counterclockwise → + curveAreaFunctional z.path = -curveAreaFunctional y.path) := by + obtain ⟨φ, hφc, hφs, hφo, hcomp⟩ := + z.exists_reparametrization_of_start_eq y hcarrier hstart + exact curveArea_eq_of_oriented_reparametrization z.ordered y.ordered z.path y.path + z.oriented hy φ hφc hφs hφo hcomp + by_cases hstart : x.path.val ⟨x.a, le_rfl, x.ordered⟩ = + y.path.val ⟨y.a, le_rfl, y.ordered⟩ + · exact hcompare x hstart + have hmem : y.path.val ⟨y.a, le_rfl, y.ordered⟩ ∈ Set.range x.path.val := by + rw [x.oriented.2.2.2.1, hcarrier, ← y.oriented.2.2.2.1] + exact Set.mem_range_self _ + obtain ⟨s, hsb, hs⟩ := exists_param_lt_top_of_mem_range x.oriented.1 x.path.val + x.oriented.2.2.2.2.1 hmem + have has : x.a < (s : ℝ) := by + apply lt_of_le_of_ne s.property.1 + intro heq + have hsa : s = ⟨x.a, le_rfl, x.ordered⟩ := Subtype.ext heq.symm + apply hstart + simpa only [hsa] using hs + obtain ⟨r, hr, hrstart, hrarea⟩ := + exists_oriented_cyclic_rotation x.ordered x.path x.oriented s has hsb + let z : ClosedBVParametrization Γ := + { a := 0, b := 2, ordered := by norm_num, path := r, oriented := hr } + have hzstart : z.path.val ⟨z.a, le_rfl, z.ordered⟩ = + y.path.val ⟨y.a, le_rfl, y.ordered⟩ := hrstart.trans hs + simpa only [show z.path = r from rfl, hrarea] using hcompare z hzstart + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Signed Area +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +theorem windingKernel_disk_integral (R : ℝ) (hR : 0 < R) (z : Point) (hz : ‖z‖ < R) : + Integrable (windingKernel z) (volume.restrict (Metric.ball 0 R)) ∧ + (∀ i : Fin 2, Integrable (fun p ↦ windingKernel z p i) + (volume.restrict (Metric.ball 0 R))) ∧ + (∫ p in Metric.ball 0 R, ‖windingKernel z p‖) ≤ 4 * Real.pi * R ∧ + (∫ p in Metric.ball 0 R, windingKernel z p) = Real.pi • z := by + have hInt := integrableOn_windingKernel_ball R z hz + exact ⟨hInt, fun i ↦ by + simpa using (EuclideanSpace.proj (𝕜 := ℝ) i).integrable_comp hInt, + setIntegral_norm_windingKernel_ball_le R hR z hz, + setIntegral_windingKernel_ball R z hz⟩ + +theorem jordanBV_winding_integral (a b : ℝ) (hab : a < b) (x : ContinuousBVPaths a b) + (hclosed : x.val ⟨a, le_rfl, hab.le⟩ = x.val ⟨b, hab.le, le_rfl⟩) + (hinj : Set.InjOn x.val {t | (t : ℝ) < b}) : + volume (Set.range x.val) = 0 ∧ + (∀ p ∉ Set.range x.val, + (∀ i : Fin 2, Continuous (fun t ↦ windingKernel (x.val t) p i) ∧ + ∃ C : ℝ, ∀ t, |windingKernel (x.val t) p i| ≤ C) ∧ + 2 * Real.pi * curveWinding hab.le x.val p = + intervalStieltjesIntegral (continuousBVCoordinate x 1) + (fun t ↦ windingKernel (x.val t) p 0) Set.univ - + intervalStieltjesIntegral (continuousBVCoordinate x 0) + (fun t ↦ windingKernel (x.val t) p 1) Set.univ) ∧ + (∀ p ∉ Set.range x.val, ∃ U : Set Point, IsOpen U ∧ p ∈ U ∧ + ∀ q ∈ U, q ∉ Set.range x.val ∧ + curveWinding hab.le x.val q = curveWinding hab.le x.val p) ∧ + (∀ p ∉ Set.range x.val, + ¬Bornology.IsBounded (connectedComponentIn (Set.range x.val)ᶜ p) → + curveWinding hab.le x.val p = 0) := by + refine ⟨x.volume_range_eq_zero_of_injOn hab.le hinj, ?_, ?_, ?_⟩ + · intro p hp + refine ⟨fun i ↦ windingKernel_coord_continuous_bounded x.property.1 hp i, ?_⟩ + obtain ⟨θ, hθ⟩ := exists_curveAngleLift_of_avoids hab x.property.1 hp + have hnormpos : ∀ t, 0 < ‖x.val t - p‖ := by + intro t + rw [norm_pos_iff, sub_ne_zero] + intro h + exact hp ⟨t, h⟩ + have : Nonempty (Set.Icc a b) := ⟨⟨a, le_rfl, hab.le⟩⟩ + obtain ⟨t₀, -, ht₀⟩ := isCompact_univ.exists_isMinOn (Set.univ_nonempty) + ((x.property.1.sub continuous_const).norm).continuousOn + set m : ℝ := ‖x.val t₀ - p‖ with hmdef + have hmpos : 0 < m := hnormpos t₀ + have hmle : ∀ t, m ≤ ‖x.val t - p‖ := fun t ↦ ht₀ (Set.mem_univ t) + obtain ⟨δ₀, hδ₀, hmod⟩ := Metric.uniformContinuous_iff.mp + (CompactSpace.uniformContinuous_of_continuous x.property.1) (m / 2) (by linarith) + have hclose : ∀ t u : Set.Icc a b, |(u : ℝ) - (t : ℝ)| < δ₀ → + ‖x.val u - x.val t‖ < m / 2 := by + intro t u hlt + have hd : dist u t < δ₀ := by + rw [Subtype.dist_eq, Real.dist_eq]; exact hlt + simpa only [dist_eq_norm] using hmod hd + set D : Point → Fin 2 → ℝ := fun z ↦ ![windingKernel z p 1, windingKernel z p 0] with hDdef + have hD0 : ∀ z, D z 0 = windingKernel z p 1 := fun z ↦ rfl + have hD1 : ∀ z, D z 1 = windingKernel z p 0 := fun z ↦ rfl + have hDcont : ∀ i, Continuous (fun t ↦ D (x.val t) i) := by + intro i + fin_cases i + · change Continuous (fun t ↦ D (x.val t) 0) + simpa only [hD0] using (windingKernel_coord_continuous_bounded x.property.1 hp 1).1 + · change Continuous (fun t ↦ D (x.val t) 1) + simpa only [hD1] using (windingKernel_coord_continuous_bounded x.property.1 hp 0).1 + have hcoordsub : ∀ (v w : Point) (i : Fin 2), (v - w) i = v i - w i := by + intro v w i; simp + have hkey : ∀ t u : Set.Icc a b, (t : ℝ) ≤ (u : ℝ) → (u : ℝ) - (t : ℝ) < δ₀ → + |θ u - θ t - + (D (x.val t) 1 * (x.val u 1 - x.val t 1) - + D (x.val t) 0 * (x.val u 0 - x.val t 0))| ≤ + 6 / m ^ 2 * ‖x.val u - x.val t‖ ^ 2 := by + intro t u htu hlt + have hnwpos : 0 < ‖x.val t - p‖ := hnormpos t + have hnw2 : ‖x.val t - p‖ ^ 2 = (x.val t - p) 0 ^ 2 + (x.val t - p) 1 ^ 2 := + Point.norm_sq_eq _ + have hnd2 : ‖x.val u - x.val t‖ ^ 2 = + (x.val u - x.val t) 0 ^ 2 + (x.val u - x.val t) 1 ^ 2 := Point.norm_sq_eq _ + have hndlt : ‖x.val u - x.val t‖ < m / 2 := + hclose t u (by rw [abs_of_nonneg (by linarith)]; exact hlt) + have hsmall : 2 * ‖x.val u - x.val t‖ ≤ ‖x.val t - p‖ := by + have := hmle t; linarith + have hposdot : ∀ s : Set.Icc a b, (t : ℝ) ≤ (s : ℝ) → (s : ℝ) ≤ (u : ℝ) → + 0 < (x.val t - p) 0 * (x.val s - p) 0 + (x.val t - p) 1 * (x.val s - p) 1 := by + intro s hts hsu + have hds : ‖x.val s - x.val t‖ < m / 2 := + hclose t s (by rw [abs_of_nonneg (by linarith)]; linarith) + have hdot := Point.abs_inner_coords_le (x.val t - p) (x.val s - x.val t) + have he0 : (x.val s - p) 0 = (x.val t - p) 0 + (x.val s - x.val t) 0 := by + rw [hcoordsub, hcoordsub, hcoordsub]; ring + have he1 : (x.val s - p) 1 = (x.val t - p) 1 + (x.val s - x.val t) 1 := by + rw [hcoordsub, hcoordsub, hcoordsub]; ring + rw [he0, he1] + have hmt := hmle t + have hnn := norm_nonneg (x.val s - x.val t) + nlinarith [abs_le.mp hdot, hnw2] + have hangle := hθ.sub_eq_arctan_of_dot_pos x.property.1 htu hposdot + have hest := Real.abs_arctan_div_sub_le_of_small (w0 := (x.val t - p) 0) + (w1 := (x.val t - p) 1) (d0 := (x.val u - x.val t) 0) + (d1 := (x.val u - x.val t) 1) (nw := ‖x.val t - p‖) + (nd := ‖x.val u - x.val t‖) hnwpos hnw2 (norm_nonneg _) hnd2 hsmall + have he0 : (x.val u - p) 0 = (x.val t - p) 0 + (x.val u - x.val t) 0 := by + rw [hcoordsub, hcoordsub, hcoordsub]; ring + have he1 : (x.val u - p) 1 = (x.val t - p) 1 + (x.val u - x.val t) 1 := by + rw [hcoordsub, hcoordsub, hcoordsub]; ring + have harg : + ((x.val t - p) 0 * (x.val u - x.val t) 1 - + (x.val t - p) 1 * (x.val u - x.val t) 0) / + (‖x.val t - p‖ ^ 2 + + ((x.val t - p) 0 * (x.val u - x.val t) 0 + + (x.val t - p) 1 * (x.val u - x.val t) 1)) = + ((x.val t - p) 0 * (x.val u - p) 1 - (x.val t - p) 1 * (x.val u - p) 0) / + ((x.val t - p) 0 * (x.val u - p) 0 + (x.val t - p) 1 * (x.val u - p) 1) := by + have hquot : ∀ A B C E : ℝ, + (A * E - B * C) / (A ^ 2 + B ^ 2 + (A * C + B * E)) = + (A * (B + E) - B * (A + C)) / (A * (A + C) + B * (B + E)) := by + intro A B C E + congr 1 <;> ring + rw [hnw2, he0, he1] + exact hquot _ _ _ _ + rw [harg, ← hangle] at hest + have hlin : D (x.val t) 1 * (x.val u 1 - x.val t 1) - + D (x.val t) 0 * (x.val u 0 - x.val t 0) = + ((x.val t - p) 0 * (x.val u - x.val t) 1 - + (x.val t - p) 1 * (x.val u - x.val t) 0) / ‖x.val t - p‖ ^ 2 := by + have hne : ‖x.val t - p‖ ≠ 0 := ne_of_gt hnwpos + rw [hD0, hD1] + simp only [windingKernel, PiLp.smul_apply, smul_eq_mul, hcoordsub] + field_simp + rw [hlin] + refine hest.trans ?_ + have hmsq : m ^ 2 ≤ ‖x.val t - p‖ ^ 2 := by + have := hmle t; nlinarith + rw [div_mul_eq_mul_div] + apply div_le_div_of_nonneg_left (by positivity) (by positivity) hmsq + have hchain := ContinuousBVPaths.stieltjes_chain_rule_of_local_quadratic_remainder + hab.le x x.boundedVariationOn θ D hDcont (by positivity) hδ₀ hkey + simp only [hD0, hD1] at hchain + rw [hθ.curveWinding_eq hab.le, ← hchain] + have hpi : (2 : ℝ) * Real.pi ≠ 0 := by positivity + field_simp + · intro p hp + exact curveWinding_locally_constant_on_compl_range hab.le x.property.1 hclosed hp + · intro p hp hub + exact curveWinding_eq_zero_of_unbounded_component hab.le x.property.1 hclosed hp hub + +/-- Joint measurability of the winding kernel along a continuous path. -/ +private theorem measurable_windingKernel_prod {a b : ℝ} (x : ContinuousBVPaths a b) : + Measurable fun q : Point × Set.Icc a b ↦ windingKernel (x.val q.2) q.1 := by + have h1 : Measurable fun q : Point × Set.Icc a b ↦ x.val q.2 - q.1 := + (x.property.1.measurable.comp measurable_snd).sub measurable_fst + have h2 : Measurable fun q : Point × Set.Icc a b ↦ + (‖x.val q.2 - q.1‖ ^ 2)⁻¹ • (x.val q.2 - q.1) := + Measurable.smul ((h1.norm.pow_const 2).inv) h1 + exact h2 + +/-- The winding kernel of a path is product-integrable against area on an enclosing disk +and any finite measure in the time variable. -/ +private theorem integrable_windingKernel_prod {a b : ℝ} (x : ContinuousBVPaths a b) + {R : ℝ} (hR : 0 < R) (hxR : ∀ t, ‖x.val t‖ < R) + (ν : Measure (Set.Icc a b)) [IsFiniteMeasure ν] : + Integrable (fun q : Point × Set.Icc a b ↦ windingKernel (x.val q.2) q.1) + ((volume.restrict (Metric.ball (0 : Point) R)).prod ν) := by + have hfinball : IsFiniteMeasure (volume.restrict (Metric.ball (0 : Point) R)) := + isFiniteMeasure_restrict.2 measure_ball_lt_top.ne + have hmeas := measurable_windingKernel_prod x + refine ⟨hmeas.aestronglyMeasurable, ?_⟩ + have hbound : ∀ t : Set.Icc a b, + (∫⁻ p, ‖windingKernel (x.val t) p‖ₑ ∂(volume.restrict (Metric.ball (0 : Point) R))) + ≤ ENNReal.ofReal (4 * Real.pi * R) := by + intro t + obtain ⟨hint, -, hnorm, -⟩ := windingKernel_disk_integral R hR (x.val t) (hxR t) + rw [← ofReal_integral_norm_eq_lintegral_enorm hint] + exact ENNReal.ofReal_le_ofReal hnorm + rw [HasFiniteIntegral, lintegral_prod_symm _ hmeas.enorm.aemeasurable] + calc + (∫⁻ t, ∫⁻ p, ‖windingKernel (x.val t) p‖ₑ + ∂(volume.restrict (Metric.ball (0 : Point) R)) ∂ν) + ≤ ∫⁻ _, ENNReal.ofReal (4 * Real.pi * R) ∂ν := lintegral_mono hbound + _ < ⊤ := by + rw [lintegral_const] + exact ENNReal.mul_lt_top ENNReal.ofReal_lt_top (measure_lt_top ν Set.univ) + +/-- Fubini exchange between the coordinate Stieltjes measure of a continuous BV path and +planar area on an enclosing disk, evaluated through the disk mean of the winding kernel. -/ +private theorem setIntegral_ball_stieltjes_windingKernel {a b : ℝ} (x : ContinuousBVPaths a b) + {R : ℝ} (hR : 0 < R) (hxR : ∀ t, ‖x.val t‖ < R) (i j : Fin 2) : + Integrable (fun p ↦ intervalStieltjesIntegral (continuousBVCoordinate x j) + (fun t ↦ windingKernel (x.val t) p i) Set.univ) + (volume.restrict (Metric.ball (0 : Point) R)) ∧ + (∫ p in Metric.ball (0 : Point) R, intervalStieltjesIntegral (continuousBVCoordinate x j) + (fun t ↦ windingKernel (x.val t) p i) Set.univ) = + Real.pi * intervalStieltjesIntegral (continuousBVCoordinate x j) + (fun t ↦ x.val t i) Set.univ := by + have hfinball : IsFiniteMeasure (volume.restrict (Metric.ball (0 : Point) R)) := + isFiniteMeasure_restrict.2 measure_ball_lt_top.ne + have hfinvar : IsFiniteMeasure + (intervalStieltjesMeasure (continuousBVCoordinate x j)).variation := + BoundedVariationOn.instIsFiniteMeasureVariationVectorMeasure + (continuousBVCoordinate x j).boundedVariation + have hfinmu : IsFiniteMeasure + ((volume.restrict (Metric.ball (0 : Point) R)).toSignedMeasure).variation := by + rw [Measure.variation_toSignedMeasure] + infer_instance + simp only [intervalStieltjesIntegral_univ] + have hprodK : Integrable (fun q : Point × Set.Icc a b ↦ windingKernel (x.val q.2) q.1 i) + ((volume.restrict (Metric.ball (0 : Point) R)).prod + (intervalStieltjesMeasure (continuousBVCoordinate x j)).variation) := by + simpa using (EuclideanSpace.proj (𝕜 := ℝ) i).integrable_comp + (integrable_windingKernel_prod x hR hxR + (intervalStieltjesMeasure (continuousBVCoordinate x j)).variation) + have hintI : Integrable (fun p ↦ VectorMeasure.integral + (intervalStieltjesMeasure (continuousBVCoordinate x j)) + (fun t ↦ windingKernel (x.val t) p i) (ContinuousLinearMap.mul ℝ ℝ)) + (volume.restrict (Metric.ball (0 : Point) R)) := by + have hh := Integrable.integral_vectorMeasure_prod_left + (B := ContinuousLinearMap.mul ℝ ℝ) hprodK + simpa using hh + refine ⟨hintI, ?_⟩ + have hinner : ∀ t : Set.Icc a b, + (∫ p in Metric.ball (0 : Point) R, windingKernel (x.val t) p i) = + Real.pi * x.val t i := by + intro t + obtain ⟨hint, -, -, heq⟩ := windingKernel_disk_integral R hR (x.val t) (hxR t) + have hc := (EuclideanSpace.proj (𝕜 := ℝ) i).integral_comp_comm hint + rw [heq] at hc + simpa using hc + have hfub := VectorMeasure.integral_integral_swap + (μ := (volume.restrict (Metric.ball (0 : Point) R)).toSignedMeasure) + (ν := intervalStieltjesMeasure (continuousBVCoordinate x j)) + (B := ContinuousLinearMap.mul ℝ ℝ) + (C := (ContinuousLinearMap.lsmul ℝ ℝ).flip) + (A := (ContinuousLinearMap.lsmul ℝ ℝ).flip) + (D := ContinuousLinearMap.mul ℝ ℝ) + (f := fun (p : Point) (t : Set.Icc a b) ↦ windingKernel (x.val t) p i) + (by rw [Measure.variation_toSignedMeasure]; exact hprodK) + (by intro u v w; simp; ring) + simp only [VectorMeasure.integral_toSignedMeasure] at hfub + rw [hfub] + simp only [hinner] + simpa [smul_eq_mul] using VectorMeasure.integral_fun_smul + (μ := intervalStieltjesMeasure (continuousBVCoordinate x j)) + (B := ContinuousLinearMap.mul ℝ ℝ) Real.pi (fun t ↦ x.val t i) + +theorem curveArea_eq_jordanInterior_area (a b : ℝ) (hab : a ≤ b) + (Γ : Set Point) (x : ContinuousBVPaths a b) + (hx : IsOrientedJordanParametrization hab Γ true x.val) : + curveAreaFunctional x = ClassicalResults.area (jordanInterior Γ) := by + obtain ⟨hlt, hΓ, hcont, hrange, hclosed, hinj, hwind⟩ := hx + subst hrange + obtain ⟨U, V, hUopen, -, -, -, hUbdd, hVunbdd, -, hcover, -, -, hUcomp, hVcomp⟩ := + jordan_separation hΓ + obtain ⟨hnull, hwindint, -, hext⟩ := jordanBV_winding_integral a b hlt x hclosed hinj + have hUeq : jordanInterior (Set.range x.val) = U := by + ext p + simp only [jordanInterior, Set.mem_ofPred_eq] + constructor + · rintro ⟨hpΓ, hpb⟩ + have hpc : p ∈ U ∪ V := by rw [hcover]; exact hpΓ + rcases hpc with h | h + · exact h + · rw [hVcomp p h] at hpb + exact absurd hpb hVunbdd + · intro hpU + refine ⟨?_, ?_⟩ + · have hmem : p ∈ (Set.range x.val)ᶜ := by rw [← hcover]; exact Or.inl hpU + exact hmem + · rw [hUcomp p hpU] + exact hUbdd + obtain ⟨R, hR, hxR, hUR⟩ : + ∃ R : ℝ, 0 < R ∧ (∀ t, ‖x.val t‖ < R) ∧ U ⊆ Metric.ball (0 : Point) R := by + have hcpt : IsCompact (Set.range x.val) := isCompact_range hcont + obtain ⟨r, hr⟩ := (hcpt.isBounded.union hUbdd).subset_closedBall (0 : Point) + refine ⟨max r 0 + 1, by have := le_max_right r 0; linarith, ?_, ?_⟩ + · intro t + have h1 : x.val t ∈ Metric.closedBall (0 : Point) r := + hr (Set.mem_union_left _ ⟨t, rfl⟩) + rw [Metric.mem_closedBall, dist_zero_right] at h1 + have := le_max_left r 0 + linarith + · intro p hp + have h1 : p ∈ Metric.closedBall (0 : Point) r := hr (Set.mem_union_right _ hp) + rw [Metric.mem_closedBall, dist_zero_right] at h1 + rw [Metric.mem_ball, dist_zero_right] + have := le_max_left r 0 + linarith + have hae : ∀ᵐ p ∂(volume : Measure Point), p ∉ Set.range x.val := + measure_eq_zero_iff_ae_notMem.mp hnull + -- winding equals the indicator of the bounded component off the curve + have hwind_eq : ∀ p ∉ Set.range x.val, + curveWinding hab x.val p = U.indicator (fun _ ↦ (1 : ℝ)) p := by + intro p hp + by_cases hpU : p ∈ U + · rw [Set.indicator_of_mem hpU] + have hw := hwind p (by rw [hUeq]; exact hpU) + simpa using hw + · rw [Set.indicator_of_notMem hpU] + have hpV : p ∈ V := by + have hpc : p ∈ U ∪ V := by rw [hcover]; exact hp + rcases hpc with h | h + · exact absurd h hpU + · exact h + refine hext p hp ?_ + rw [hVcomp p hpV] + exact hVunbdd + have hArea : (∫ p in Metric.ball (0 : Point) R, curveWinding hab x.val p) = + ClassicalResults.area (jordanInterior (Set.range x.val)) := by + have h1 : (∫ p in Metric.ball (0 : Point) R, curveWinding hab x.val p) = + ∫ p in Metric.ball (0 : Point) R, U.indicator (fun _ ↦ (1 : ℝ)) p := by + refine setIntegral_congr_ae measurableSet_ball ?_ + filter_upwards [hae] with p hp _ + exact hwind_eq p hp + rw [h1, setIntegral_indicator hUopen.measurableSet, + Set.inter_eq_self_of_subset_right hUR, setIntegral_const, hUeq] + simp [ClassicalResults.area, measureReal_def] + have hFunctional : (∫ p in Metric.ball (0 : Point) R, curveWinding hab x.val p) = + curveAreaFunctional x := by + obtain ⟨hint01, heq01⟩ := setIntegral_ball_stieltjes_windingKernel x hR hxR 0 1 + obtain ⟨hint10, heq10⟩ := setIntegral_ball_stieltjes_windingKernel x hR hxR 1 0 + have hpi : (0 : ℝ) < 2 * Real.pi := by positivity + have hL : (∫ p in Metric.ball (0 : Point) R, 2 * Real.pi * curveWinding hab x.val p) = + 2 * Real.pi * ∫ p in Metric.ball (0 : Point) R, curveWinding hab x.val p := + integral_const_mul _ _ + have hcong : (∫ p in Metric.ball (0 : Point) R, 2 * Real.pi * curveWinding hab x.val p) + = ∫ p in Metric.ball (0 : Point) R, + (intervalStieltjesIntegral (continuousBVCoordinate x 1) + (fun t ↦ windingKernel (x.val t) p 0) Set.univ - + intervalStieltjesIntegral (continuousBVCoordinate x 0) + (fun t ↦ windingKernel (x.val t) p 1) Set.univ) := by + refine setIntegral_congr_ae measurableSet_ball ?_ + filter_upwards [hae] with p hp _ + exact (hwindint p hp).2 + rw [hcong, integral_sub hint01 hint10, heq01, heq10] at hL + refine mul_left_cancel₀ (ne_of_gt hpi) ?_ + rw [← hL, curveAreaFunctional] + ring + rw [← hFunctional, hArea] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Supporting Orientation +-/ + +@[expose] public section + +noncomputable section + +open scoped unitInterval + +namespace MovingSofa + +private lemma pointComplex_re_me89eded (v : Point) : (Complex.orthonormalBasisOneI.repr.symm v).re = + v 0 := by + simp [Complex.orthonormalBasisOneI_repr_symm_apply] + +private lemma pointComplex_im_me89eded (v : Point) : (Complex.orthonormalBasisOneI.repr.symm v).im = + v 1 := by + simp [Complex.orthonormalBasisOneI_repr_symm_apply] + +private lemma conj_pointComplex_mul_re_me89eded (v w : Point) : + (starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm v) * + Complex.orthonormalBasisOneI.repr.symm w).re = inner ℝ v w := by + simp [Complex.orthonormalBasisOneI_repr_symm_apply, inner, Fin.sum_univ_two] + ring + +private theorem continuous_arg_comp_of_re_nonneg {A : Type*} [TopologicalSpace A] + {z : A → ℂ} (hz : Continuous z) (hre : ∀ u, 0 ≤ (z u).re) (hne : ∀ u, z u ≠ 0) : + Continuous (fun u ↦ Complex.arg (z u)) := by + rw [continuous_iff_continuousAt] + intro u + have hmem : z u ∈ Complex.slitPlane := by + rw [Complex.mem_slitPlane_iff_arg] + constructor + · intro harg + have hneg := (Complex.arg_eq_pi_iff.mp harg).1 + linarith [hre u] + · exact hne u + exact (Complex.continuousAt_arg hmem).comp_of_eq hz.continuousAt rfl + +private def frameComplex (t : Real.Angle) (v : Point) : ℂ := + inner ℝ v (normalVector t) + inner ℝ v (tangentVector t) * Complex.I + +@[simp] private theorem frameComplex_re (t : Real.Angle) (v : Point) : + (frameComplex t v).re = inner ℝ v (normalVector t) := by + simp [frameComplex] + +@[simp] private theorem frameComplex_im (t : Real.Angle) (v : Point) : + (frameComplex t v).im = inner ℝ v (tangentVector t) := by + simp [frameComplex] + +private theorem norm_frameComplex (t : Real.Angle) (v : Point) : + ‖frameComplex t v‖ = ‖v‖ := by + rw [← sq_eq_sq₀ (norm_nonneg _) (norm_nonneg _)] + simp [frameComplex, Complex.sq_norm, Complex.normSq_apply, EuclideanSpace.norm_sq_eq, + normalVector, tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + ring_nf + linear_combination (v 0 ^ 2 + v 1 ^ 2) * t.cos_sq_add_sin_sq + +private theorem conj_pointComplex_mul_eq_conj_frameComplex_mul (t : Real.Angle) + (v w : Point) : + starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm v) * + Complex.orthonormalBasisOneI.repr.symm w = + starRingEnd ℂ (frameComplex t v) * frameComplex t w := by + apply Complex.ext <;> + simp [Complex.orthonormalBasisOneI_repr_symm_apply, frameComplex, normalVector, tangentVector, + frame, + PiLp.inner_apply, Fin.sum_univ_two] <;> ring_nf + · linear_combination -(v 0 * w 0 + v 1 * w 1) * t.cos_sq_add_sin_sq + · linear_combination -(v 0 * w 1 - v 1 * w 0) * t.cos_sq_add_sin_sq + +private theorem frameComplex_ne_zero {t : Real.Angle} {v : Point} (hv : v ≠ 0) : + frameComplex t v ≠ 0 := by + rw [← norm_ne_zero_iff, norm_frameComplex, norm_ne_zero_iff] + exact hv + +private theorem normalized_frameComplex_arg (t : Real.Angle) (v : Point) (hv : v ≠ 0) : + Real.cos (t.toReal + Complex.arg (frameComplex t v)) = v 0 / ‖v‖ ∧ + Real.sin (t.toReal + Complex.arg (frameComplex t v)) = v 1 / ‖v‖ := by + have hf := frameComplex_ne_zero (t := t) hv + rw [Real.cos_add, Real.sin_add, Complex.cos_arg hf, Complex.sin_arg, + norm_frameComplex] + simp [frameComplex, normalVector, tangentVector, frame, PiLp.inner_apply, + Fin.sum_univ_two] + constructor + · field_simp + ring_nf + linear_combination (v 0) * t.cos_sq_add_sin_sq + · field_simp + ring_nf + linear_combination (v 1) * t.cos_sq_add_sin_sq + +/-- The frame argument gives an angle lift when a path lies on the nonnegative side of a normal +through its basepoint. -/ +private theorem isCurveAngleLift_frameArg_of_inner_nonneg {a b : ℝ} + {x : Set.Icc a b → Point} {p : Point} (t : Real.Angle) + (hx : Continuous x) (hre : ∀ u, 0 ≤ inner ℝ (x u - p) (normalVector t)) + (hne : ∀ u, x u ≠ p) : + IsCurveAngleLift x p + (fun u ↦ t.toReal + Complex.arg (frameComplex t (x u - p))) := by + have hz : Continuous (fun u ↦ frameComplex t (x u - p)) := by + unfold frameComplex + fun_prop + have hzne (u) : frameComplex t (x u - p) ≠ 0 := + frameComplex_ne_zero (sub_ne_zero.mpr (hne u)) + refine ⟨continuous_const.add (continuous_arg_comp_of_re_nonneg hz + (fun u ↦ by simpa using hre u) hzne), + fun u ↦ ?_⟩ + exact normalized_frameComplex_arg t (x u - p) (sub_ne_zero.mpr (hne u)) + +/-- Negating frame coordinates and adding `π` gives the corresponding lift on the nonpositive +side of a normal through the basepoint. -/ +private theorem isCurveAngleLift_frameArg_neg_add_pi_of_inner_nonpos {a b : ℝ} + {x : Set.Icc a b → Point} {p : Point} (t : Real.Angle) + (hx : Continuous x) (hre : ∀ u, inner ℝ (x u - p) (normalVector t) ≤ 0) + (hne : ∀ u, x u ≠ p) : + IsCurveAngleLift x p (fun u ↦ + t.toReal + Complex.arg (-frameComplex t (x u - p)) + Real.pi) := by + have hz : Continuous (fun u ↦ -frameComplex t (x u - p)) := by + unfold frameComplex + fun_prop + have hzne (u) : frameComplex t (x u - p) ≠ 0 := + frameComplex_ne_zero (sub_ne_zero.mpr (hne u)) + have harg : Continuous (fun u ↦ Complex.arg (-frameComplex t (x u - p))) := + continuous_arg_comp_of_re_nonneg hz (by + intro u + simpa using neg_nonneg.mpr (hre u)) (fun u ↦ neg_ne_zero.mpr (hzne u)) + refine ⟨(continuous_const.add harg).add continuous_const, fun u ↦ ?_⟩ + have hbase := normalized_frameComplex_arg t (x u - p) (sub_ne_zero.mpr (hne u)) + have hneg : + Real.cos (Complex.arg (-frameComplex t (x u - p)) + Real.pi) = + (frameComplex t (x u - p)).re / ‖frameComplex t (x u - p)‖ ∧ + Real.sin (Complex.arg (-frameComplex t (x u - p)) + Real.pi) = + (frameComplex t (x u - p)).im / ‖frameComplex t (x u - p)‖ := by + rw [Real.cos_add_pi, Real.sin_add_pi, + Complex.cos_arg (neg_ne_zero.mpr (hzne u)), Complex.sin_arg, norm_neg] + simp only [Complex.neg_re, Complex.neg_im, neg_div, neg_neg] + exact ⟨trivial, trivial⟩ + dsimp only + rw [add_assoc, Real.cos_add t.toReal, Real.sin_add t.toReal, hneg.1, hneg.2, + norm_frameComplex] + rw [Real.cos_add, Real.sin_add, Complex.cos_arg (hzne u), Complex.sin_arg, + norm_frameComplex] at hbase + exact hbase + +private def cyclicComplement {a b : ℝ} (hab : a ≤ b) (x : Set.Icc a b → Point) + (s t : Set.Icc a b) : Set.Icc (0 : ℝ) 2 → Point := + Function.concatUnitIntervals + (x ∘ Set.Icc.convexComb t ⟨b, hab, le_rfl⟩) + (x ∘ Set.Icc.convexComb ⟨a, le_rfl, hab⟩ s) + +private theorem continuous_cyclicComplement {a b : ℝ} (hab : a ≤ b) + {x : Set.Icc a b → Point} (hx : Continuous x) + (hclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + (s t : Set.Icc a b) : Continuous (cyclicComplement hab x s t) := by + apply Function.continuous_concatUnitIntervals + · exact hx.comp (Set.Icc.continuous_convexComb _ _) + · exact hx.comp (Set.Icc.continuous_convexComb _ _) + · simpa [Function.comp_apply] using hclosed.symm + +@[simp] private theorem cyclicComplement_zero {a b : ℝ} (hab : a ≤ b) + (x : Set.Icc a b → Point) (s t : Set.Icc a b) : + cyclicComplement hab x s t ⟨0, by norm_num⟩ = x t := by + simp [cyclicComplement] + +@[simp] private theorem cyclicComplement_two {a b : ℝ} (hab : a ≤ b) + (x : Set.Icc a b → Point) (s t : Set.Icc a b) : + cyclicComplement hab x s t ⟨2, by norm_num⟩ = x s := by + simp [cyclicComplement] + +private theorem tangentVector_ne_zero (t : Real.Angle) : tangentVector t ≠ 0 := by + intro h + have hone : inner ℝ (tangentVector t) (tangentVector t) = 1 := by + rw [← t.coe_toReal] + exact inner_tangentVector_self t.toReal + rw [h] at hone + simp at hone + +private theorem convexComb_between {a b : ℝ} {l u : Set.Icc a b} (hlu : l ≤ u) + (r : Set.Icc (0 : ℝ) 1) : + l ≤ Set.Icc.convexComb l u r ∧ Set.Icc.convexComb l u r ≤ u := by + change (l : ℝ) ≤ (1 - (r : ℝ)) * l + (r : ℝ) * u ∧ + (1 - (r : ℝ)) * l + (r : ℝ) * u ≤ u + constructor <;> nlinarith [r.property.1, r.property.2, show (l : ℝ) ≤ u from hlu] + +private theorem range_comp_convexComb {a b : ℝ} {l u : Set.Icc a b} (hlu : l ≤ u) + (x : Set.Icc a b → Point) : + Set.range (x ∘ Set.Icc.convexComb l u) = x '' Set.Icc l u := by + by_cases heq : l = u + · subst u + simp [Set.Icc_self] + have hneval : (l : ℝ) ≠ (u : ℝ) := fun h ↦ heq (Subtype.ext h) + have hlt : (l : ℝ) < (u : ℝ) := lt_of_le_of_ne hlu hneval + ext p + constructor + · rintro ⟨r, rfl⟩ + exact ⟨_, convexComb_between hlu r, rfl⟩ + · rintro ⟨v, hv, rfl⟩ + let r : I := ⟨((v : ℝ) - l) / ((u : ℝ) - l), by + constructor + · exact div_nonneg (sub_nonneg.mpr hv.1) + (sub_nonneg.mpr (show (l : ℝ) ≤ u from hlu)) + · exact (div_le_one (sub_pos.mpr hlt)).2 + (by + have hv₂ : (v : ℝ) ≤ (u : ℝ) := hv.2 + linarith)⟩ + refine ⟨r, congrArg x ?_⟩ + apply Subtype.ext + simp [r] + field_simp [sub_ne_zero.mpr hlt.ne'] + ring + +private theorem inner_eq_of_mem_segment {P Q z v : Point} {c : ℝ} + (hP : inner ℝ P v = c) (hQ : inner ℝ Q v = c) + (hz : z ∈ segment ℝ P Q) : inner ℝ z v = c := by + rw [segment_eq_image] at hz + obtain ⟨r, hr, rfl⟩ := hz + rw [inner_add_left, real_inner_smul_left, real_inner_smul_left, hP, hQ] + nlinarith [hr.1, hr.2] + +private theorem arg_conj_I_mul_of_re_pos {z : ℂ} (hz : 0 < z.re) : + Complex.arg (starRingEnd ℂ Complex.I * z) = Complex.arg z - Real.pi / 2 := by + have hzne : z ≠ 0 := fun h ↦ by simp [h] at hz + have harg := Complex.abs_arg_lt_pi_div_two_iff.mpr (Or.inl hz) + rw [Complex.arg_mul (by simp) hzne] + · simp only [Complex.conj_I, Complex.arg_neg_I] + ring + · simp only [Complex.conj_I, Complex.arg_neg_I] + constructor <;> have h := abs_lt.mp harg <;> linarith [Real.pi_pos] + +private theorem arg_conj_neg_I_mul_of_re_pos {z : ℂ} (hz : 0 < z.re) : + Complex.arg (starRingEnd ℂ (-Complex.I) * z) = Complex.arg z + Real.pi / 2 := by + have hzne : z ≠ 0 := fun h ↦ by simp [h] at hz + have harg := Complex.abs_arg_lt_pi_div_two_iff.mpr (Or.inl hz) + rw [Complex.arg_mul (by simp) hzne] + · simp only [map_neg, Complex.conj_I, neg_neg, Complex.arg_I] + ring + · simp only [map_neg, Complex.conj_I, neg_neg, Complex.arg_I] + constructor <;> have h := abs_lt.mp harg <;> linarith [Real.pi_pos] + +private theorem relative_arg_of_frame_eq_pos_I {t : Real.Angle} {v w : Point} + {D : ℝ} (hD : 0 < D) (hv : frameComplex t v = (D : ℂ) * Complex.I) + (hw : 0 < (frameComplex t w).re) : + Complex.arg (starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm v) * + Complex.orthonormalBasisOneI.repr.symm w) = + Complex.arg (frameComplex t w) - Real.pi / 2 := by + rw [conj_pointComplex_mul_eq_conj_frameComplex_mul, hv] + have heq : starRingEnd ℂ ((D : ℂ) * Complex.I) * frameComplex t w = + (D : ℂ) * (starRingEnd ℂ Complex.I * frameComplex t w) := by + simp [mul_assoc] + rw [heq, Complex.arg_real_mul _ hD] + exact arg_conj_I_mul_of_re_pos hw + +private theorem relative_arg_of_frame_eq_neg_I {t : Real.Angle} {v w : Point} + {D : ℝ} (hD : 0 < D) (hv : frameComplex t v = -(D : ℂ) * Complex.I) + (hw : 0 < (frameComplex t w).re) : + Complex.arg (starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm v) * + Complex.orthonormalBasisOneI.repr.symm w) = + Complex.arg (frameComplex t w) + Real.pi / 2 := by + rw [conj_pointComplex_mul_eq_conj_frameComplex_mul, hv] + have heq : starRingEnd ℂ (-(D : ℂ) * Complex.I) * frameComplex t w = + (D : ℂ) * (starRingEnd ℂ (-Complex.I) * frameComplex t w) := by + simp [mul_assoc] + rw [heq, Complex.arg_real_mul _ hD] + exact arg_conj_neg_I_mul_of_re_pos hw + +/-- The midpoint of a nontrivial segment traversed on `[s,t]` is avoided by the cyclic +complementary path. -/ +private theorem cyclicComplement_ne_midpoint {a b : ℝ} (hab : a < b) + {x : Set.Icc a b → Point} + (hclosed : x ⟨a, le_rfl, hab.le⟩ = x ⟨b, hab.le, le_rfl⟩) + (hinj : Set.InjOn x {u | (u : ℝ) < b}) + (s t : Set.Icc a b) (hst : s < t) (hxt : x s ≠ x t) + (hsegment : x '' Set.Icc s t = segment ℝ (x s) (x t)) : + ∀ u, cyclicComplement hab.le x s t u ≠ midpoint ℝ (x s) (x t) := by + have hmseg : midpoint ℝ (x s) (x t) ∈ x '' Set.Icc s t := by + rw [hsegment] + exact midpoint_mem_segment _ _ + obtain ⟨v, hvst, hv⟩ := hmseg + have hmvP : midpoint ℝ (x s) (x t) ≠ x s := by + intro hm + exact hxt ((midpoint_eq_left_iff ℝ).mp hm) + have hmvQ : midpoint ℝ (x s) (x t) ≠ x t := by + intro hm + exact hxt ((midpoint_eq_right_iff ℝ).mp hm) + have hsv : s < v := lt_of_le_of_ne hvst.1 (fun h ↦ hmvP (hv ▸ congrArg x h.symm)) + have hvt : v < t := lt_of_le_of_ne hvst.2 (fun h ↦ hmvQ (hv ▸ congrArg x h)) + have hsv' : (s : ℝ) < v := hsv + have hvt' : (v : ℝ) < t := hvt + have hvb : (v : ℝ) < b := lt_of_lt_of_le hvt t.property.2 + intro u hu + have heval : + (x ∘ Set.Icc.convexComb t ⟨b, hab.le, le_rfl⟩) + (Set.projIcc 0 1 (by norm_num) (u : ℝ)) = + midpoint ℝ (x s) (x t) ∨ + (x ∘ Set.Icc.convexComb ⟨a, le_rfl, hab.le⟩ s) + (Set.projIcc 0 1 (by norm_num) ((u : ℝ) - 1)) = + midpoint ℝ (x s) (x t) := by + unfold cyclicComplement Function.concatUnitIntervals at hu + split_ifs at hu with h + · exact Or.inl hu + · exact Or.inr hu + rcases heval with htail | hhead + · let w := Set.Icc.convexComb t ⟨b, hab.le, le_rfl⟩ + (Set.projIcc 0 1 (by norm_num) (u : ℝ)) + have htw : t ≤ w := (convexComb_between t.property.2 _).1 + have hxwv : x w = x v := htail.trans hv.symm + by_cases hwb : (w : ℝ) = b + · have hwtop : w = (⟨b, hab.le, le_rfl⟩ : Set.Icc a b) := Subtype.ext hwb + have hxav : x ⟨a, le_rfl, hab.le⟩ = x v := hclosed.trans (hwtop ▸ hxwv) + have hav := hinj (by simp [hab]) (by exact hvb) hxav + have hav' := congrArg Subtype.val hav + linarith [s.property.1] + · have hwb' : (w : ℝ) < b := lt_of_le_of_ne w.property.2 hwb + have hwv := hinj hwb' hvb hxwv + have hwv' := congrArg Subtype.val hwv + have htw' : (t : ℝ) ≤ w := htw + linarith + · let w := Set.Icc.convexComb ⟨a, le_rfl, hab.le⟩ s + (Set.projIcc 0 1 (by norm_num) ((u : ℝ) - 1)) + have hws : w ≤ s := (convexComb_between s.property.1 _).2 + have hxwv : x w = x v := hhead.trans hv.symm + have hwb : (w : ℝ) < b := lt_of_le_of_lt hws (lt_of_lt_of_le hst t.property.2) + have hwv := hinj hwb hvb hxwv + have hwv' := congrArg Subtype.val hwv + have hws' : (w : ℝ) ≤ s := hws + linarith + +private theorem jordan_counterclockwise_of_winding_one + (a b : ℝ) (hab : a < b) (x : Set.Icc a b → Point) + (hx : Continuous x) (hΓ : IsJordanCurve (Set.range x)) + (hclosed : x ⟨a, le_rfl, hab.le⟩ = x ⟨b, hab.le, le_rfl⟩) + (hinj : Set.InjOn x {t | (t : ℝ) < b}) + (q : Point) (hqrange : q ∉ Set.range x) + (hwinding_q : curveWinding hab.le x q = 1) : + IsOrientedJordanParametrization hab.le (Set.range x) true x := by + refine ⟨hab, hΓ, hx, rfl, hclosed, hinj, ?_⟩ + intro p hp + obtain ⟨U, V, hUopen, hVopen, hUconn, hVconn, hUbounded, hVunbounded, hdis, + hcover, hfrontU, hfrontV, hcompU, hcompV⟩ := jordan_separation hΓ + have hqcompl : q ∈ (Set.range x)ᶜ := hqrange + have hqUV : q ∈ U ∪ V := hcover.symm.subset hqcompl + have hqU : q ∈ U := by + rcases hqUV with hqU | hqV + · exact hqU + · exfalso + let _ : PreconnectedSpace V := Subtype.preconnectedSpace hVconn.isPreconnected + have hlc : IsLocallyConstant + (fun z : V ↦ curveWinding hab.le x z.val) := by + apply (IsLocallyConstant.iff_exists_open _).mpr + intro z + have hzout : z.val ∉ Set.range x := by + have hzcompl : z.val ∈ (Set.range x)ᶜ := hcover ▸ Or.inr z.property + exact hzcompl + obtain ⟨W, hWopen, hzW, hWeq⟩ := + curveWinding_locally_constant_off_range hab.le hx hclosed hzout + exact ⟨Subtype.val ⁻¹' W, hWopen.preimage continuous_subtype_val, hzW, + fun z' hz' ↦ hWeq z'.val hz'⟩ + have hrangeBounded : Bornology.IsBounded (Set.range x) := + by simpa only [Set.image_univ] using (isCompact_univ.image hx).isBounded + obtain ⟨R, hR⟩ := (Metric.isBounded_iff_subset_closedBall (0 : Point)).mp + hrangeBounded + have hRnonneg : 0 ≤ R := by + have := hR (Set.mem_range_self ⟨a, le_rfl, hab.le⟩) + have hnorm : ‖x ⟨a, le_rfl, hab.le⟩‖ ≤ R := by + simpa [Metric.mem_closedBall, dist_zero_right] using this + exact (norm_nonneg _).trans hnorm + have hvfar : ∃ v ∈ V, R + 1 < ‖v‖ := by + by_contra hn + push Not at hn + apply hVunbounded + refine (Metric.isBounded_iff_subset_closedBall (0 : Point)).2 ⟨R + 1, ?_⟩ + intro v hv + simpa [Metric.mem_closedBall, dist_zero_right] using hn v hv + obtain ⟨v, hvV, hvnorm⟩ := hvfar + have hvzero : curveWinding hab.le x v = 0 := by + apply curveWinding_eq_zero_of_inner_pos hab.le hx hclosed v (-v) + · exact neg_ne_zero.mpr (by + intro hv0 + rw [hv0, norm_zero] at hvnorm + linarith) + · intro u + rw [inner_neg_left, inner_sub_right, real_inner_self_eq_norm_sq] + rw [← real_inner_comm v (x u)] + have hxu := hR (Set.mem_range_self u) + have hinner := abs_real_inner_le_norm (x u) v + have hxnorm : ‖x u‖ ≤ R := by + simpa [Metric.mem_closedBall, dist_zero_right] using hxu + have hvpos : 0 < ‖v‖ := lt_of_le_of_lt hRnonneg (lt_add_one R) |>.trans hvnorm + have hvlarge : R < ‖v‖ := lt_trans (lt_add_one R) hvnorm + have hlower : inner ℝ (x u) v ≤ ‖x u‖ * ‖v‖ := le_trans (le_abs_self _) hinner + have hprod : ‖x u‖ * ‖v‖ < ‖v‖ * ‖v‖ := + lt_of_le_of_lt (mul_le_mul_of_nonneg_right hxnorm (norm_nonneg v)) + (mul_lt_mul_of_pos_right hvlarge hvpos) + rw [pow_two] + linarith + have heq := hlc.apply_eq_of_preconnectedSpace ⟨q, hqV⟩ ⟨v, hvV⟩ + rw [hwinding_q, hvzero] at heq + norm_num at heq + have hpUV : p ∈ U ∪ V := hcover.symm.subset hp.1 + have hpU : p ∈ U := by + rcases hpUV with hpU | hpV + · exact hpU + · exfalso + apply hVunbounded + rw [← hcompV p hpV] + exact hp.2 + let _ : PreconnectedSpace U := Subtype.preconnectedSpace hUconn.isPreconnected + have hlcU : IsLocallyConstant (fun z : U ↦ curveWinding hab.le x z.val) := by + apply (IsLocallyConstant.iff_exists_open _).mpr + intro z + have hzout : z.val ∉ Set.range x := by + have : z.val ∈ (Set.range x)ᶜ := hcover ▸ Or.inl z.property + exact this + obtain ⟨W, hWopen, hzW, hWeq⟩ := + curveWinding_locally_constant_off_range hab.le hx hclosed hzout + exact ⟨Subtype.val ⁻¹' W, hWopen.preimage continuous_subtype_val, hzW, + fun z' hz' ↦ hWeq z'.val hz'⟩ + exact (hlcU.apply_eq_of_preconnectedSpace ⟨p, hpU⟩ ⟨q, hqU⟩).trans hwinding_q + +private theorem supporting_segment_argument_corrections (P Q : Point) (θ : Real.Angle) + (d ε : ℝ) (hd : 0 < d) (hε : 0 < ε) (hdirection : Q = P + d • tangentVector θ) : + let m := midpoint ℝ P Q + let q := m - ε • normalVector θ + (Complex.arg (starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm (Q - m)) * + Complex.orthonormalBasisOneI.repr.symm (Q - q)) = + Complex.arg (frameComplex θ (Q - q)) - Real.pi / 2) ∧ + (Complex.arg (starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm (P - m)) * + Complex.orthonormalBasisOneI.repr.symm (P - q)) = + Complex.arg (frameComplex θ (P - q)) + Real.pi / 2) ∧ + (Complex.arg ((d / 2 : ℝ) * Complex.I) = Real.pi / 2) ∧ + (Complex.arg (-((d / 2 : ℝ) * Complex.I)) = -Real.pi / 2) ∧ + (-frameComplex θ (P - m) = (d / 2 : ℝ) * Complex.I) ∧ + (-frameComplex θ (Q - m) = -((d / 2 : ℝ) * Complex.I)) := by + let m := midpoint ℝ P Q + let q := m - ε • normalVector θ + have htn : inner ℝ (tangentVector θ) (normalVector θ) = 0 := by + rw [← θ.coe_toReal, real_inner_comm] + exact inner_normalVector_tangentVector θ.toReal + have htm : Q - m = (d / 2) • tangentVector θ := by + dsimp [m] + rw [midpoint_eq_smul_add, hdirection] + norm_num + module + have hsm : P - m = -(d / 2) • tangentVector θ := by + dsimp [m] + rw [midpoint_eq_smul_add, hdirection] + norm_num + module + have hTT : inner ℝ (tangentVector θ) (tangentVector θ) = 1 := by + rw [← θ.coe_toReal] + exact inner_tangentVector_self θ.toReal + have hNN : inner ℝ (normalVector θ) (normalVector θ) = 1 := by + rw [← θ.coe_toReal] + exact inner_normalVector_self θ.toReal + have hNT : inner ℝ (normalVector θ) (tangentVector θ) = 0 := by + rw [real_inner_comm] + exact htn + have hframe_tm : frameComplex θ (Q - m) = (d / 2 : ℝ) * Complex.I := by + rw [htm] + apply Complex.ext + · rw [frameComplex_re, real_inner_smul_left, htn] + simp + · rw [frameComplex_im, real_inner_smul_left, hTT] + simp + have hframe_sm : frameComplex θ (P - m) = -(d / 2 : ℝ) * Complex.I := by + rw [hsm] + apply Complex.ext + · rw [frameComplex_re, real_inner_smul_left, htn] + simp + · rw [frameComplex_im, real_inner_smul_left, hTT] + simp + have htq : Q - q = ε • normalVector θ + (d / 2) • tangentVector θ := by + calc + Q - q = (Q - m) + ε • normalVector θ := by dsimp [q]; abel + _ = _ := by rw [htm]; abel + have hsq : P - q = ε • normalVector θ - (d / 2) • tangentVector θ := by + calc + P - q = (P - m) + ε • normalVector θ := by dsimp [q]; abel + _ = _ := by rw [hsm]; module + have hframe_tq : frameComplex θ (Q - q) = ε + (d / 2 : ℝ) * Complex.I := by + rw [htq] + apply Complex.ext + · rw [frameComplex_re, inner_add_left, real_inner_smul_left, + real_inner_smul_left, hNN, htn] + simp + · rw [frameComplex_im, inner_add_left, real_inner_smul_left, + real_inner_smul_left, hNT, hTT] + simp + have hframe_sq : frameComplex θ (P - q) = ε - (d / 2 : ℝ) * Complex.I := by + rw [hsq] + apply Complex.ext + · rw [frameComplex_re, inner_sub_left, real_inner_smul_left, + real_inner_smul_left, hNN, htn] + simp + · rw [frameComplex_im, inner_sub_left, real_inner_smul_left, + real_inner_smul_left, hNT, hTT] + simp + have hcorr_t : + Complex.arg (starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm (Q - m)) * + Complex.orthonormalBasisOneI.repr.symm (Q - q)) = + Complex.arg (frameComplex θ (Q - q)) - Real.pi / 2 := by + apply relative_arg_of_frame_eq_pos_I (half_pos hd) hframe_tm + rw [hframe_tq] + simpa using hε + have hcorr_s : + Complex.arg (starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm (P - m)) * + Complex.orthonormalBasisOneI.repr.symm (P - q)) = + Complex.arg (frameComplex θ (P - q)) + Real.pi / 2 := by + apply relative_arg_of_frame_eq_neg_I (half_pos hd) hframe_sm + rw [hframe_sq] + simpa using hε + have harg_tm : Complex.arg ((d / 2 : ℝ) * Complex.I) = Real.pi / 2 := by + rw [Complex.arg_real_mul _ (half_pos hd), Complex.arg_I] + have harg_sm : Complex.arg (-((d / 2 : ℝ) * Complex.I)) = -Real.pi / 2 := by + rw [show -((d / 2 : ℝ) * Complex.I) = (d / 2 : ℝ) * (-Complex.I) by ring, + Complex.arg_real_mul _ (half_pos hd), Complex.arg_neg_I] + ring + have hneg_frame_sm : -frameComplex θ (P - m) = (d / 2 : ℝ) * Complex.I := by + rw [hframe_sm] + ring + have hneg_frame_tm : -frameComplex θ (Q - m) = -((d / 2 : ℝ) * Complex.I) := by + rw [hframe_tm] + exact ⟨hcorr_t, hcorr_s, harg_tm, harg_sm, hneg_frame_sm, hneg_frame_tm⟩ + +private theorem cyclic_partition_range {a b : ℝ} (hab : a < b) + (x : Set.Icc a b → Point) + (hclosed : x ⟨a, le_rfl, hab.le⟩ = x ⟨b, hab.le, le_rfl⟩) + (s t : Set.Icc a b) (hst : s < t) : + let y := cyclicComplement hab.le x s t + let z : Set.Icc (0 : ℝ) 1 → Point := fun u ↦ x (Set.Icc.convexComb s t u) + let doubleParam : Set.Icc (0 : ℝ) 1 → Set.Icc (0 : ℝ) 2 := fun u ↦ + ⟨2 * (u : ℝ), by constructor <;> nlinarith [u.property.1, u.property.2]⟩ + let y₁ : Set.Icc (0 : ℝ) 1 → Point := y ∘ doubleParam + Set.range (Function.concatUnitIntervals z y₁) = Set.range x := by + let y := cyclicComplement hab.le x s t + let z : Set.Icc (0 : ℝ) 1 → Point := fun u ↦ x (Set.Icc.convexComb s t u) + let doubleParam : Set.Icc (0 : ℝ) 1 → Set.Icc (0 : ℝ) 2 := fun u ↦ + ⟨2 * (u : ℝ), by constructor <;> nlinarith [u.property.1, u.property.2]⟩ + let y₁ : Set.Icc (0 : ℝ) 1 → Point := y ∘ doubleParam + have hjoin : z ⟨1, by norm_num⟩ = y₁ ⟨0, by norm_num⟩ := by + simp [z, y₁, doubleParam, y] + have hdouble_surj : Function.Surjective doubleParam := by + intro u + refine ⟨⟨(u : ℝ) / 2, by constructor <;> nlinarith [u.property.1, u.property.2]⟩, ?_⟩ + apply Subtype.ext + dsimp [doubleParam] + ring + have hrange_y₁ : Set.range y₁ = Set.range y := by + change Set.range (y ∘ doubleParam) = Set.range y + rw [Set.range_comp, hdouble_surj.range_eq, Set.image_univ] + have hrange_w : Set.range (Function.concatUnitIntervals z y₁) = Set.range x := by + rw [Function.range_concatUnitIntervals z y₁ hjoin, hrange_y₁] + change Set.range z ∪ Set.range (Function.concatUnitIntervals + (x ∘ Set.Icc.convexComb t ⟨b, hab.le, le_rfl⟩) + (x ∘ Set.Icc.convexComb ⟨a, le_rfl, hab.le⟩ s)) = Set.range x + rw [Function.range_concatUnitIntervals _ _ (by simpa using hclosed.symm), + show Set.range z = x '' Set.Icc s t by + change Set.range (x ∘ Set.Icc.convexComb s t) = _ + exact range_comp_convexComb hst.le x, + range_comp_convexComb t.property.2 x, range_comp_convexComb s.property.1 x] + ext p + constructor + · rintro (⟨u, hu, rfl⟩ | ⟨u, hu, rfl⟩ | ⟨u, hu, rfl⟩) <;> + exact Set.mem_range_self u + · rintro ⟨u, rfl⟩ + by_cases hus : u ≤ s + · exact Or.inr (Or.inr ⟨u, ⟨u.property.1, hus⟩, rfl⟩) + by_cases hut : u ≤ t + · exact Or.inl ⟨u, ⟨le_of_not_ge hus, hut⟩, rfl⟩ + · exact Or.inr (Or.inl ⟨u, ⟨le_of_not_ge hut, u.property.2⟩, rfl⟩) + exact hrange_w + +theorem jordan_counterclockwise_of_supporting_segment + (a b : ℝ) (hab : a < b) (x : Set.Icc a b → Point) + (hx : Continuous x) (hΓ : IsJordanCurve (Set.range x)) + (hclosed : x ⟨a, le_rfl, hab.le⟩ = x ⟨b, hab.le, le_rfl⟩) + (hinj : Set.InjOn x {t | (t : ℝ) < b}) + (θ : Real.Angle) (h : ℝ) + (hhalf : ∀ t, x t ∈ normalHalfPlane θ h false false) + (s t : Set.Icc a b) (hst : s < t) + (hline : x s ∈ normalLine θ h) + (d : ℝ) (hd : 0 < d) (hdirection : x t = x s + d • tangentVector θ) + (hsegment : x '' Set.Icc s t = segment ℝ (x s) (x t)) : + IsOrientedJordanParametrization hab.le (Set.range x) true x := by + have hxt : x s ≠ x t := by + intro heq + have hz : d • tangentVector θ = 0 := by + calc + d • tangentVector θ = x t - x s := by rw [hdirection]; abel + _ = 0 := by rw [← heq, sub_self] + exact tangentVector_ne_zero θ ((smul_eq_zero.mp hz).resolve_left hd.ne') + let m := midpoint ℝ (x s) (x t) + let y := cyclicComplement hab.le x s t + have hy : Continuous y := continuous_cyclicComplement hab.le hx hclosed s t + have hym (u : Set.Icc (0 : ℝ) 2) : y u ≠ m := by + exact cyclicComplement_ne_midpoint hab hclosed hinj s t hst hxt hsegment u + obtain ⟨r, hr, hdot⟩ := exists_ball_relative_dot_pos (by norm_num) hy (by + intro hm + obtain ⟨u, hu⟩ := hm + exact hym u hu) + have hxsN : inner ℝ (x s) (normalVector θ) = h := hline + have htn : inner ℝ (tangentVector θ) (normalVector θ) = 0 := by + rw [← θ.coe_toReal, real_inner_comm] + exact inner_normalVector_tangentVector θ.toReal + have hxtN : inner ℝ (x t) (normalVector θ) = h := by + rw [hdirection, inner_add_left, real_inner_smul_left, hxsN, htn, mul_zero, add_zero] + have hmN : inner ℝ m (normalVector θ) = h := by + dsimp [m] + rw [midpoint_eq_smul_add, real_inner_smul_left, inner_add_left, hxsN, hxtN] + norm_num + ring + have hyhalf (u : Set.Icc (0 : ℝ) 2) : + inner ℝ (y u - m) (normalVector θ) ≤ 0 := by + unfold y cyclicComplement Function.concatUnitIntervals + split_ifs + · rw [inner_sub_left, hmN] + have hh := hhalf (Set.Icc.convexComb t ⟨b, hab.le, le_rfl⟩ + (Set.projIcc 0 1 (by norm_num) (u : ℝ))) + simp only [normalHalfPlane, Bool.false_eq_true, ↓reduceIte, Set.mem_ofPred_eq] at hh + simpa only [Function.comp_apply] using sub_nonpos.mpr hh + · rw [inner_sub_left, hmN] + have hh := hhalf (Set.Icc.convexComb ⟨a, le_rfl, hab.le⟩ s + (Set.projIcc 0 1 (by norm_num) ((u : ℝ) - 1))) + simp only [normalHalfPlane, Bool.false_eq_true, ↓reduceIte, Set.mem_ofPred_eq] at hh + simpa only [Function.comp_apply] using sub_nonpos.mpr hh + have hymLift : IsCurveAngleLift y m (fun u ↦ + θ.toReal + Complex.arg (-frameComplex θ (y u - m)) + Real.pi) := + isCurveAngleLift_frameArg_neg_add_pi_of_inner_nonpos θ hy hyhalf hym + let ε := min (r / 2) (d / 4) + have hε : 0 < ε := lt_min (half_pos hr) (by positivity) + have hεr : ε < r := lt_of_le_of_lt (min_le_left _ _) (half_lt_self hr) + let q := m - ε • normalVector θ + have hnormN : ‖normalVector θ‖ = 1 := by + rw [← θ.coe_toReal] + exact norm_normalVector_real θ.toReal + have hqm : dist q m = ε := by + rw [dist_eq_norm] + simp only [q, sub_sub_cancel_left, norm_neg, norm_smul, Real.norm_eq_abs, hnormN, + mul_one, abs_of_pos hε] + have hqclose : dist q m < r := hqm.trans_lt hεr + have hyqLift := hymLift.add_principal_basepoint_correction hy (hdot q hqclose) + let z : Set.Icc (0 : ℝ) 1 → Point := fun u ↦ x (Set.Icc.convexComb s t u) + have hz : Continuous z := hx.comp (Set.Icc.continuous_convexComb _ _) + have hzN (u : Set.Icc (0 : ℝ) 1) : inner ℝ (z u) (normalVector θ) = h := by + apply inner_eq_of_mem_segment hxsN hxtN + rw [← hsegment] + exact ⟨Set.Icc.convexComb s t u, convexComb_between hst.le u, rfl⟩ + have hqN : inner ℝ q (normalVector θ) = h - ε := by + dsimp [q] + rw [inner_sub_left, real_inner_smul_left, hmN] + have hNN : inner ℝ (normalVector θ) (normalVector θ) = 1 := by + rw [← θ.coe_toReal] + exact inner_normalVector_self θ.toReal + rw [hNN, mul_one] + have hzright (u : Set.Icc (0 : ℝ) 1) : + 0 ≤ inner ℝ (z u - q) (normalVector θ) := by + rw [inner_sub_left, hzN, hqN] + linarith + have hzq (u : Set.Icc (0 : ℝ) 1) : z u ≠ q := by + intro heq + have := congrArg (fun w : Point ↦ inner ℝ w (normalVector θ)) heq + rw [hzN, hqN] at this + linarith + have hzqLift : IsCurveAngleLift z q + (fun u ↦ θ.toReal + Complex.arg (frameComplex θ (z u - q))) := + isCurveAngleLift_frameArg_of_inner_nonneg θ hz hzright hzq + let doubleParam : Set.Icc (0 : ℝ) 1 → Set.Icc (0 : ℝ) 2 := fun u ↦ + ⟨2 * (u : ℝ), by constructor <;> nlinarith [u.property.1, u.property.2]⟩ + have hdouble : Continuous doubleParam := by + exact Continuous.subtype_mk (continuous_const.mul continuous_subtype_val) _ + let y₁ : Set.Icc (0 : ℝ) 1 → Point := y ∘ doubleParam + have hy₁ : Continuous y₁ := hy.comp hdouble + have hy₁qLift : IsCurveAngleLift y₁ q + ((fun u ↦ θ.toReal + Complex.arg (-frameComplex θ (y u - m)) + Real.pi + + Complex.arg (starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm (y u - m)) * + Complex.orthonormalBasisOneI.repr.symm (y u - q))) ∘ + doubleParam) := hyqLift.comp hdouble + have hjoin : z ⟨1, by norm_num⟩ = y₁ ⟨0, by norm_num⟩ := by + simp [z, y₁, doubleParam, y] + obtain ⟨hcorr_t, hcorr_s, harg_tm, harg_sm, hneg_frame_sm, hneg_frame_tm⟩ := + supporting_segment_argument_corrections (x s) (x t) θ d ε hd hε hdirection + change Complex.arg (starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm (x t - m)) * + Complex.orthonormalBasisOneI.repr.symm (x t - q)) = + Complex.arg (frameComplex θ (x t - q)) - Real.pi / 2 at hcorr_t + change Complex.arg (starRingEnd ℂ (Complex.orthonormalBasisOneI.repr.symm (x s - m)) * + Complex.orthonormalBasisOneI.repr.symm (x s - q)) = + Complex.arg (frameComplex θ (x s - q)) + Real.pi / 2 at hcorr_s + have hz0 : z ⟨0, by norm_num⟩ = x s := by simp [z] + have hz1 : z ⟨1, by norm_num⟩ = x t := by simp [z] + have hy₁0 : y₁ ⟨0, by norm_num⟩ = x t := by + simp [y₁, doubleParam, y] + have hy₁1 : y₁ ⟨1, by norm_num⟩ = x s := by + simp [y₁, doubleParam, y] + have hwinding : curveWinding (by norm_num) + (Function.concatUnitIntervals z y₁) q = 1 := by + rw [curveWinding_concatUnitIntervals hzqLift hy₁qLift hjoin, + hzqLift.curveWinding_eq, hy₁qLift.curveWinding_eq] + rw [hz1, hz0] + simp only [Function.comp_apply] + simp only [add_sub_add_left_eq_sub, cyclicComplement, mul_one, Function.concatUnitIntervals_two, + Set.Icc.mk_one, Function.comp_apply, Set.Icc.convexComb_one, + Complex.orthonormalBasisOneI_repr_symm_apply, Fin.isValue, map_add, map_sub, + Complex.conj_ofReal, map_mul, Complex.conj_I, + mul_neg, mul_zero, Function.concatUnitIntervals_zero, Set.Icc.mk_zero, + Set.Icc.convexComb_zero, y, doubleParam] + simp only [Complex.orthonormalBasisOneI_repr_symm_apply, Fin.isValue, map_add, map_sub, + Complex.conj_ofReal, map_mul, Complex.conj_I, + mul_neg] at hcorr_t hcorr_s + rw [hneg_frame_sm, hneg_frame_tm, harg_tm, harg_sm, hcorr_t, hcorr_s] + field_simp [Real.pi_ne_zero] + ring + have hrange_w := cyclic_partition_range hab x hclosed s t hst + have hwinding_eq_x (p : Point) (hp : p ∉ Set.range x) : + curveWinding (by norm_num) (Function.concatUnitIntervals z y₁) p = + curveWinding hab.le x p := by + obtain ⟨α, hα⟩ := exists_curveAngleLift_of_avoids hab hx hp + let φst := Set.Icc.convexComb s t + let φtb := Set.Icc.convexComb t ⟨b, hab.le, le_rfl⟩ + let φas := Set.Icc.convexComb ⟨a, le_rfl, hab.le⟩ s + have hzα : IsCurveAngleLift z p (α ∘ φst) := hα.comp (Set.Icc.continuous_convexComb _ _) + have htbα : IsCurveAngleLift (x ∘ φtb) p (α ∘ φtb) := + hα.comp (Set.Icc.continuous_convexComb _ _) + have hasα : IsCurveAngleLift (x ∘ φas) p (α ∘ φas) := + hα.comp (Set.Icc.continuous_convexComb _ _) + have htailJoin : (x ∘ φtb) ⟨1, by norm_num⟩ = (x ∘ φas) ⟨0, by norm_num⟩ := by + simpa [φtb, φas] using hclosed.symm + have hyp : p ∉ Set.range y := by + rintro ⟨u, rfl⟩ + apply hp + unfold y cyclicComplement Function.concatUnitIntervals + split_ifs <;> exact ⟨_, rfl⟩ + obtain ⟨β, hβ⟩ := exists_curveAngleLift_of_avoids (by norm_num) hy hyp + have hy₁wind : curveWinding (by norm_num) y₁ p = curveWinding (by norm_num) y p := by + apply curveWinding_comp_of_endpoints (by norm_num) (by norm_num) ⟨β, hβ⟩ hdouble + · apply Subtype.ext + simp [doubleParam] + · apply Subtype.ext + simp [doubleParam] + rw [curveWinding_concatUnitIntervals hzα (hβ.comp hdouble) hjoin, hy₁wind] + change curveWinding (by norm_num) z p + + curveWinding (by norm_num) (Function.concatUnitIntervals (x ∘ φtb) (x ∘ φas)) p = _ + rw [curveWinding_concatUnitIntervals htbα hasα htailJoin] + rw [hzα.curveWinding_eq, htbα.curveWinding_eq, hasα.curveWinding_eq, + hα.curveWinding_eq] + have hst0 : α (φst ⟨0, by norm_num⟩) = α s := congrArg α (by simp [φst]) + have hst1 : α (φst ⟨1, by norm_num⟩) = α t := congrArg α (by simp [φst]) + have htb0 : α (φtb ⟨0, by norm_num⟩) = α t := congrArg α (by simp [φtb]) + have htb1 : α (φtb ⟨1, by norm_num⟩) = α ⟨b, hab.le, le_rfl⟩ := + congrArg α (by simp [φtb]) + have has0 : α (φas ⟨0, by norm_num⟩) = α ⟨a, le_rfl, hab.le⟩ := + congrArg α (by simp [φas]) + have has1 : α (φas ⟨1, by norm_num⟩) = α s := congrArg α (by simp [φas]) + simp only [Function.comp_apply] + rw [hst0, hst1, htb0, htb1, has0, has1] + ring + have hqrange : q ∉ Set.range x := by + rw [← hrange_w] + intro hq + obtain ⟨α, hα⟩ := exists_curveAngleLift_of_curveWinding_ne_zero + (a := 0) (b := 2) (by norm_num) + (by rw [hwinding]; norm_num) + obtain ⟨u, hu⟩ := hq + have hc := (hα.2 u).1 + have hs := (hα.2 u).2 + rw [hu, sub_self] at hc hs + simp at hc hs + nlinarith only [hc, hs, Real.cos_sq_add_sin_sq (α u)] + have hwinding_q : curveWinding hab.le x q = 1 := by + rw [← hwinding_eq_x q hqrange, hwinding] + exact jordan_counterclockwise_of_winding_one a b hab x hx hΓ hclosed hinj q + hqrange hwinding_q + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Subarc +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open Set + +/-- Reversing the parameter of a closed path preserves injectivity away from the +identified terminal endpoint. -/ +theorem injOn_comp_reverse_of_closed_injOn + {α : Type*} {a b : ℝ} (hab : a < b) (x : Set.Icc a b → α) + (hclosed : x ⟨a, le_rfl, hab.le⟩ = x ⟨b, hab.le, le_rfl⟩) + (hinj : Set.InjOn x {t | (t : ℝ) < b}) : + Set.InjOn (x ∘ Set.Icc.reverse hab.le) {t | (t : ℝ) < b} := by + intro s hs t ht hst + change (s : ℝ) < b at hs + change (t : ℝ) < b at ht + have hrs_pos : a < (Set.Icc.reverse hab.le s : ℝ) := by + change a < a + b - (s : ℝ) + linarith + have hrt_pos : a < (Set.Icc.reverse hab.le t : ℝ) := by + change a < a + b - (t : ℝ) + linarith + by_cases hrs : (Set.Icc.reverse hab.le s : ℝ) < b + · by_cases hrt : (Set.Icc.reverse hab.le t : ℝ) < b + · exact (Set.Icc.involutive_reverse hab.le).injective (hinj hrs hrt hst) + · have hrteq : Set.Icc.reverse hab.le t = ⟨b, hab.le, le_rfl⟩ := by + apply Subtype.ext + exact le_antisymm (Set.Icc.reverse hab.le t).property.2 (le_of_not_gt hrt) + have hra : x (Set.Icc.reverse hab.le s) = x ⟨a, le_rfl, hab.le⟩ := by + rw [hclosed, ← hrteq] + exact hst + have heq := hinj hrs hab hra + exfalso + have := congrArg Subtype.val heq + linarith + · have hrseq : Set.Icc.reverse hab.le s = ⟨b, hab.le, le_rfl⟩ := by + apply Subtype.ext + exact le_antisymm (Set.Icc.reverse hab.le s).property.2 (le_of_not_gt hrs) + by_cases hrt : (Set.Icc.reverse hab.le t : ℝ) < b + · have hra : x ⟨a, le_rfl, hab.le⟩ = x (Set.Icc.reverse hab.le t) := by + rw [hclosed, ← hrseq] + exact hst + have heq := hinj hab hrt hra + exfalso + have := congrArg Subtype.val heq + linarith + · have hrteq : Set.Icc.reverse hab.le t = ⟨b, hab.le, le_rfl⟩ := by + apply Subtype.ext + exact le_antisymm (Set.Icc.reverse hab.le t).property.2 (le_of_not_gt hrt) + exact (Set.Icc.involutive_reverse hab.le).injective (hrseq.trans hrteq.symm) + +/-- Parameter reversal sends the reversed closed interval to the original interval image. -/ +theorem image_Icc_reverse_interval {α : Type*} {a b : ℝ} (hab : a ≤ b) + (x : Set.Icc a b → α) (l u : Set.Icc a b) (_hlu : l ≤ u) : + (x ∘ Set.Icc.reverse hab) '' + Set.Icc (Set.Icc.reverse hab u) (Set.Icc.reverse hab l) = + x '' Set.Icc l u := by + ext z + constructor + · rintro ⟨s, hs, rfl⟩ + refine ⟨Set.Icc.reverse hab s, ?_, rfl⟩ + constructor + · simpa only [Set.Icc.involutive_reverse hab l] using + Set.Icc.antitone_reverse hab hs.2 + · simpa only [Set.Icc.involutive_reverse hab u] using + Set.Icc.antitone_reverse hab hs.1 + · rintro ⟨s, hs, rfl⟩ + refine ⟨Set.Icc.reverse hab s, ?_, ?_⟩ + · constructor + · exact Set.Icc.antitone_reverse hab hs.2 + · exact Set.Icc.antitone_reverse hab hs.1 + · simp only [Function.comp_apply, Set.Icc.involutive_reverse hab s] + +-- Duplicate of the current private UpperGraph helper; promote to Geometry.Support. +private theorem exists_Icc_coe_image_of_compact_connected_Ioo {a b : ℝ} + {S : Set (Set.Ioo a b)} (hS : IsCompact S) (hconn : IsConnected S) : + ∃ l u : ℝ, ((fun t : Set.Ioo a b ↦ (t : ℝ)) '' S) = Set.Icc l u := by + let T := (fun t : Set.Ioo a b ↦ (t : ℝ)) '' S + have hTc : IsCompact T := hS.image continuous_subtype_val + have hTconn : IsConnected T := hconn.image _ continuous_subtype_val.continuousOn + exact ⟨sInf T, sSup T, eq_Icc_of_connected_compact hTconn hTc⟩ + +private theorem exists_Icc_pullback_of_compact_connected_puncturedLoop + {a b : ℝ} {x : Set.Icc a b → Point} (hab : a ≤ b) (hab' : a < b) + (hx : Continuous x) + (hclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + (hinj : Set.InjOn x {t | (t : ℝ) < b}) + (C : Set (puncturedLoopRangeSet hab x)) (hC : IsCompact C) + (hconn : IsConnected C) : + ∃ l u : ℝ, + (fun t : Set.Ioo a b ↦ (t : ℝ)) '' + ((openIntervalHomeomorphPuncturedRange hab hab' x hx hclosed hinj).symm '' C) = + Set.Icc l u := by + let e := openIntervalHomeomorphPuncturedRange hab hab' x hx hclosed hinj + exact exists_Icc_coe_image_of_compact_connected_Ioo + (hC.image e.symm.continuous) (hconn.image e.symm e.symm.continuous.continuousOn) + +private theorem exists_Icc_parameters_of_compact_pathConnected_subset_loop + {a b : ℝ} {x : Set.Icc a b → Point} (hab : a ≤ b) (hab' : a < b) + (hx : Continuous x) + (hclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + (hinj : Set.InjOn x {t | (t : ℝ) < b}) + (C : Set Point) (hC : IsCompact C) (hpath : IsPathConnected C) + (hCrange : C ⊆ Set.range x) (hbase : x ⟨a, le_rfl, hab⟩ ∉ C) : + ∃ l u : ℝ, + (fun t : Set.Ioo a b ↦ (t : ℝ)) '' + ((openIntervalHomeomorphPuncturedRange hab hab' x hx hclosed hinj).symm '' + {q : puncturedLoopRangeSet hab x | (q : Point) ∈ C}) = Set.Icc l u := by + let D : Set (puncturedLoopRangeSet hab x) := {q | (q : Point) ∈ C} + let f : puncturedLoopRangeSet hab x → Point := fun q ↦ q + have hf_ind : Topology.IsInducing f := + Topology.IsInducing.comp Topology.IsEmbedding.subtypeVal.isInducing + Topology.IsEmbedding.subtypeVal.isInducing + have hCrange' : C ⊆ Set.range f := by + intro p hp + obtain ⟨t, ht⟩ := hCrange hp + let q : Set.range x := ⟨p, ⟨t, ht⟩⟩ + have hq : (q : Point) ≠ x ⟨a, le_rfl, hab⟩ := by + intro heq + exact hbase (heq ▸ hp) + exact ⟨⟨q, hq⟩, rfl⟩ + have hDcompact : IsCompact D := by + change IsCompact (f ⁻¹' C) + exact hf_ind.isCompact_preimage' hC hCrange' + have hDrange : {q : Set.range x | (q : Point) ∈ C} ⊆ puncturedLoopRangeSet hab x := by + intro q hq + exact fun heq ↦ hbase (heq ▸ hq) + have hDpath : IsPathConnected D := by + have h₁ := hpath.preimage_coe hCrange + exact h₁.preimage_coe hDrange + exact exists_Icc_pullback_of_compact_connected_puncturedLoop hab hab' hx hclosed hinj + D hDcompact hDpath.isConnected + +private theorem exists_rectifiableOrientedArc_restrict_closedJordan_of_lt_top + {a b : ℝ} {x : ContinuousBVPaths a b} {Γ : Set Point} + (hab : a ≤ b) (hx : IsOrientedJordanParametrization hab Γ true x.val) + (l u : Set.Icc a b) (hlu : l ≤ u) (hub : (u : ℝ) < b) : + ∃ A : RectifiableOrientedArc, + A.val.carrier = Set.range (ContinuousBVPaths.restrict x l u hlu).val ∧ + A.val.startPoint = x.val l ∧ A.val.endPoint = x.val u := by + let y := ContinuousBVPaths.restrict x l u hlu + have hyinj : Function.Injective y.val := by + intro s t hst + apply Subtype.ext + have hs : (s : ℝ) < b := lt_of_le_of_lt s.property.2 hub + have ht : (t : ℝ) < b := lt_of_le_of_lt t.property.2 hub + have h := hx.2.2.2.2.2.1 hs ht hst + exact congrArg (fun z : Set.Icc a b ↦ (z : ℝ)) h + let A0 : OrientedJordanArc := + { carrier := Set.range y.val + startPoint := x.val l + endPoint := x.val u + parametrizable := ⟨l, u, hlu, y.val, y.property.1, hyinj, rfl, rfl, rfl⟩ } + let p : ArcBVParametrization A0 := + { a := l, b := u, ordered := hlu, path := y, injective := hyinj, + range_eq := rfl, start_eq := rfl, end_eq := rfl } + exact ⟨⟨A0, ⟨p⟩⟩, rfl, rfl, rfl⟩ + +/-- Convex interpolation between ordered interval points is strictly increasing. -/ +theorem strictMono_convexComb_of_lt {a b : ℝ} + (l u : Set.Icc a b) (hlu : l < u) : StrictMono (Set.Icc.convexComb l u) := by + intro s t hst + have hlu' : (l : ℝ) < u := hlu + have hst' : (s : ℝ) < t := hst + change (1 - (s : ℝ)) * l + (s : ℝ) * u < + (1 - (t : ℝ)) * l + (t : ℝ) * u + nlinarith [mul_pos (sub_pos.mpr hst') (sub_pos.mpr hlu')] + +/-- The two closed pieces outside an interior parameter interval trace exactly the +closed curve with the open interval image removed. -/ +theorem image_complement_interval_of_closed_injOn + {α : Type*} {a b : ℝ} (hab : a ≤ b) (x : Set.Icc a b → α) + (hclosed : x ⟨a, le_rfl, hab⟩ = x ⟨b, hab, le_rfl⟩) + (hinj : Set.InjOn x {t | (t : ℝ) < b}) + (l u : Set.Icc a b) (hal : a < l) (hub : (u : ℝ) < b) : + x '' {t | t ≤ l ∨ u ≤ t} = + Set.range x \ x '' {t | l < t ∧ t < u} := by + ext p + constructor + · rintro ⟨t, ht, rfl⟩ + refine ⟨Set.mem_range_self t, ?_⟩ + rintro ⟨s, hs, heq⟩ + have hsb : (s : ℝ) < b := lt_trans hs.2 hub + by_cases htb : (t : ℝ) < b + · have hst := hinj hsb htb heq + subst t + exact ht.elim (not_le_of_gt hs.1) (not_le_of_gt hs.2) + · have hte : t = ⟨b, hab, le_rfl⟩ := by + apply Subtype.ext + exact le_antisymm t.2.2 (le_of_not_gt htb) + have hab' : a < b := hal.trans_le l.2.2 + have hsa : s = ⟨a, le_rfl, hab⟩ := + hinj hsb hab' (heq.trans ((congrArg x hte).trans hclosed.symm)) + have : (l : ℝ) < a := by + have h := hs.1 + rw [hsa] at h + exact h + exact (not_lt_of_ge hal.le) this + · rintro ⟨⟨t, rfl⟩, hp⟩ + refine ⟨t, ?_, rfl⟩ + by_contra ht + have hs : l < t ∧ t < u := ⟨lt_of_not_ge (fun h ↦ ht (Or.inl h)), + lt_of_not_ge (fun h ↦ ht (Or.inr h))⟩ + exact hp ⟨t, hs, rfl⟩ + +/-- Convex interpolation between the interval endpoints covers the interval. -/ +theorem surjective_convexComb_endpoints (a b : ℝ) (hab : a ≤ b) : + Function.Surjective + (Set.Icc.convexComb (⟨a, le_rfl, hab⟩ : Set.Icc a b) ⟨b, hab, le_rfl⟩) := by + intro x + rcases hab.eq_or_lt with rfl | hab + · refine ⟨⟨0, by norm_num⟩, Subtype.ext ?_⟩ + change (1 - (0 : ℝ)) * a + 0 * a = (x : ℝ) + have hx : (x : ℝ) = a := le_antisymm x.property.2 x.property.1 + simp [hx] + · refine ⟨⟨((x : ℝ) - a) / (b - a), ?_⟩, Subtype.ext ?_⟩ + · constructor + · exact div_nonneg (sub_nonneg.mpr x.property.1) (sub_nonneg.mpr hab.le) + · exact (div_le_one (sub_pos.mpr hab)).2 (sub_le_sub_right x.property.2 a) + · change (1 - ((x : ℝ) - a) / (b - a)) * a + + ((x : ℝ) - a) / (b - a) * b = (x : ℝ) + field_simp [ne_of_gt (sub_pos.mpr hab)] + ring + +/-- The initial restriction of a cyclically concatenated closed path traces the +complement of an interior parameter interval. -/ +theorem range_cyclicConcat_restrict_to_complement + {α : Type*} {a b : ℝ} (hab : a ≤ b) (f : Set.Icc a b → α) + (hclosed : f ⟨a, le_rfl, hab⟩ = f ⟨b, hab, le_rfl⟩) + (l u : Set.Icc a b) (hal : a < l) (hlu : l < u) (hub : (u : ℝ) < b) + (θ : Set.Icc (0 : ℝ) 1) + (hθ : Set.Icc.convexComb ⟨a, le_rfl, hab⟩ u θ = l) : + let v : ℝ := 1 + θ + Set.range (fun z : Set.Icc (0 : ℝ) v ↦ + Function.concatUnitIntervals + (f ∘ Set.Icc.convexComb u ⟨b, hab, le_rfl⟩) + (f ∘ Set.Icc.convexComb ⟨a, le_rfl, hab⟩ u) + ⟨z, z.property.1, z.property.2.trans (by + have hθle : (θ : ℝ) ≤ 1 := θ.property.2 + dsimp only [v] + linarith)⟩) = f '' {z | z ≤ l ∨ u ≤ z} := by + dsimp only + ext p + constructor + · rintro ⟨z, rfl⟩ + by_cases hz : (z : ℝ) ≤ 1 + · let q : Set.Icc (0 : ℝ) 1 := ⟨z, z.property.1, hz⟩ + let y := Set.Icc.convexComb u ⟨b, hab, le_rfl⟩ q + refine ⟨y, Or.inr ?_, ?_⟩ + · change (u : ℝ) ≤ (1 - (q : ℝ)) * u + (q : ℝ) * b + nlinarith [q.property.1, q.property.2, u.property.2] + · have hvnonneg : 0 ≤ 1 + (θ : ℝ) := by linarith [θ.property.1] + have hzmem : (z : ℝ) ∈ Set.Icc (0 : ℝ) 1 := ⟨z.property.1, hz⟩ + change f y = Function.concatUnitIntervals _ _ + (⟨z, z.property.1, z.property.2.trans (by linarith [θ.property.2])⟩ : + Set.Icc (0 : ℝ) 2) + simp [Function.concatUnitIntervals, hz, q, y, + Set.projIcc_of_mem (by norm_num) hzmem] + · have hz1 : 1 < (z : ℝ) := lt_of_not_ge hz + have hzsub0 : 0 ≤ (z : ℝ) - 1 := by linarith + have hzsub1 : (z : ℝ) - 1 ≤ 1 := by + have := z.property.2 + nlinarith [θ.property.2] + let q : Set.Icc (0 : ℝ) 1 := ⟨(z : ℝ) - 1, hzsub0, hzsub1⟩ + let y := Set.Icc.convexComb ⟨a, le_rfl, hab⟩ u q + refine ⟨y, Or.inl ?_, ?_⟩ + · have hzθ : (q : ℝ) ≤ θ := by + dsimp only [q] + linarith [z.property.2] + change (1 - (q : ℝ)) * a + (q : ℝ) * u ≤ (l : ℝ) + have hθval := congrArg Subtype.val hθ + change (1 - (θ : ℝ)) * a + (θ : ℝ) * u = (l : ℝ) at hθval + nlinarith [hzθ, le_of_lt (lt_trans hal hlu)] + · simp [Function.concatUnitIntervals, hz, q, y, + Set.projIcc_of_mem (by norm_num) ⟨hzsub0, hzsub1⟩] + · rintro ⟨y, hy, rfl⟩ + rcases hy with hyl | huy + · let y' : Set.Icc a (u : ℝ) := ⟨y, y.property.1, hyl.trans hlu.le⟩ + obtain ⟨q, hq'⟩ := surjective_convexComb_endpoints a u + (le_trans l.property.1 hlu.le) y' + have hq : Set.Icc.convexComb ⟨a, le_rfl, hab⟩ u q = y := by + apply Subtype.ext + have h := congrArg (fun z : Set.Icc a (u : ℝ) ↦ (z : ℝ)) hq' + simpa only [Set.Icc.coe_convexComb] using h + have hqθ : (q : ℝ) ≤ θ := by + have hqval := congrArg Subtype.val hq + have hθval := congrArg Subtype.val hθ + change (1 - (q : ℝ)) * a + (q : ℝ) * u = (y : ℝ) at hqval + change (1 - (θ : ℝ)) * a + (θ : ℝ) * u = (l : ℝ) at hθval + have hau : a < (u : ℝ) := hal.trans hlu + by_contra hn + have hθq : (θ : ℝ) < q := lt_of_not_ge hn + have hprod : 0 < ((q : ℝ) - θ) * ((u : ℝ) - a) := + mul_pos (sub_pos.mpr hθq) (sub_pos.mpr hau) + have : (l : ℝ) < y := by nlinarith [hqval, hθval, hprod] + exact (not_lt_of_ge hyl) this + by_cases hq0 : (q : ℝ) = 0 + · let z : Set.Icc (0 : ℝ) (1 + (θ : ℝ)) := ⟨1, by + constructor + · norm_num + · linarith [θ.property.1]⟩ + refine ⟨z, ?_⟩ + have hyA : y = ⟨a, le_rfl, hab⟩ := by + apply Subtype.ext + have hqval := congrArg (fun z : Set.Icc a b ↦ (z : ℝ)) hq + change (1 - (q : ℝ)) * a + (q : ℝ) * u = (y : ℝ) at hqval + simp [hq0] at hqval + exact hqval.symm + rw [hyA, hclosed] + simp [z, Function.comp_def] + · have hqpos : 0 < (q : ℝ) := lt_of_le_of_ne q.property.1 (Ne.symm hq0) + let z : Set.Icc (0 : ℝ) (1 + (θ : ℝ)) := ⟨(q : ℝ) + 1, by + constructor <;> linarith⟩ + refine ⟨z, ?_⟩ + have hznot : ¬(z : ℝ) ≤ 1 := by dsimp only [z]; linarith + rw [← hq] + simp [z, Function.concatUnitIntervals, hznot, + Set.projIcc_of_mem (by norm_num) q.property] + · let y' : Set.Icc (u : ℝ) b := ⟨y, huy, y.property.2⟩ + obtain ⟨q, hq'⟩ := surjective_convexComb_endpoints u b hub.le y' + have hq : Set.Icc.convexComb u ⟨b, hab, le_rfl⟩ q = y := by + apply Subtype.ext + have h := congrArg (fun z : Set.Icc (u : ℝ) b ↦ (z : ℝ)) hq' + simpa only [Set.Icc.coe_convexComb] using h + let z : Set.Icc (0 : ℝ) (1 + (θ : ℝ)) := ⟨q, by + constructor + · exact q.property.1 + · linarith [q.property.2, θ.property.1]⟩ + refine ⟨z, ?_⟩ + have hzle : (z : ℝ) ≤ 1 := q.property.2 + rw [← hq] + simp [z, Function.concatUnitIntervals, hzle, + Set.projIcc_of_mem (by norm_num) q.property] + +private theorem exists_complementary_rectifiableOrientedArc + {a b : ℝ} {x : ContinuousBVPaths a b} {Γ : Set Point} + (hab : a ≤ b) (hx : IsOrientedJordanParametrization hab Γ true x.val) + (l u : Set.Icc a b) (hal : a < l) (hlu : l < u) (hub : (u : ℝ) < b) + (P Q : Point) (hlQ : x.val l = Q) (huP : x.val u = P) : + ∃ A : RectifiableOrientedArc, + A.val.carrier = Set.range x.val \ x.val '' {z | l < z ∧ z < u} ∧ + A.val.startPoint = P ∧ A.val.endPoint = Q := by + let l' : Set.Icc a (u : ℝ) := ⟨l, l.property.1, hlu.le⟩ + obtain ⟨θ, hθ'⟩ := surjective_convexComb_endpoints a u + (le_trans l.property.1 hlu.le) l' + have hθ : Set.Icc.convexComb ⟨a, le_rfl, hab⟩ u θ = l := by + apply Subtype.ext + have h := congrArg (fun z : Set.Icc a (u : ℝ) ↦ (z : ℝ)) hθ' + simpa only [Set.Icc.coe_convexComb] using h + have hθpos : 0 < (θ : ℝ) := by + by_contra hn + have hθzero : (θ : ℝ) = 0 := le_antisymm (le_of_not_gt hn) θ.property.1 + have h := congrArg (fun z : Set.Icc a b ↦ (z : ℝ)) hθ + change (1 - (θ : ℝ)) * a + (θ : ℝ) * u = (l : ℝ) at h + simp [hθzero] at h + linarith + have hθlt : (θ : ℝ) < 1 := by + by_contra hn + have hθone : (θ : ℝ) = 1 := le_antisymm θ.property.2 (le_of_not_gt hn) + have h := congrArg (fun z : Set.Icc a b ↦ (z : ℝ)) hθ + change (1 - (θ : ℝ)) * a + (θ : ℝ) * u = (l : ℝ) at h + simp [hθone] at h + exact hlu.ne (Subtype.ext h.symm) + obtain ⟨r, hrJordan, hr⟩ := + exists_oriented_cyclic_rotation_eq_concat hab x hx u + (hal.trans hlu) hub + let z : Set.Icc (0 : ℝ) 2 := ⟨0, by norm_num⟩ + let v : Set.Icc (0 : ℝ) 2 := ⟨1 + (θ : ℝ), by + constructor <;> linarith⟩ + have hzv : z ≤ v := by change (0 : ℝ) ≤ 1 + θ; linarith + have hvtop : (v : ℝ) < 2 := by dsimp only [v]; linarith + obtain ⟨A, hAcarrier, hAstart, hAend⟩ := + exists_rectifiableOrientedArc_restrict_closedJordan_of_lt_top + (a := 0) (b := 2) (x := r) (Γ := Γ) (by norm_num) hrJordan z v hzv hvtop + have hrzero : r.val z = P := by + rw [hr] + simp [z, Function.comp_def, huP] + have hrv : r.val v = Q := by + rw [hr] + have hvnot : ¬(v : ℝ) ≤ 1 := by dsimp only [v]; linarith + have hθmem : (θ : ℝ) ∈ Set.Icc (0 : ℝ) 1 := θ.property + have hproj : Set.projIcc (0 : ℝ) 1 (by norm_num) ((v : ℝ) - 1) = θ := by + apply Subtype.ext + simp [v] + simp [Function.concatUnitIntervals, hvnot, hproj, hθ, hlQ] + refine ⟨A, ?_, hAstart.trans hrzero, hAend.trans hrv⟩ + rw [hAcarrier] + have hrange : Set.range (ContinuousBVPaths.restrict r z v hzv).val = + Set.range (fun w : Set.Icc (0 : ℝ) (1 + (θ : ℝ)) ↦ + Function.concatUnitIntervals + (x.val ∘ Set.Icc.convexComb u ⟨b, hab, le_rfl⟩) + (x.val ∘ Set.Icc.convexComb ⟨a, le_rfl, hab⟩ u) + ⟨w, w.property.1, w.property.2.trans (by linarith [θ.property.2])⟩) := by + change Set.range (r.val ∘ fun w : Set.Icc (0 : ℝ) (v : ℝ) ↦ + (⟨w, w.property.1, w.property.2.trans v.property.2⟩ : Set.Icc (0 : ℝ) 2)) = _ + rw [hr] + rfl + rw [hrange, range_cyclicConcat_restrict_to_complement hab x.val + hx.2.2.2.2.1 l u hal hlu hub θ hθ] + exact image_complement_interval_of_closed_injOn hab x.val hx.2.2.2.2.1 + hx.2.2.2.2.2.1 l u hal hub + +/-- If a closed parameter interval traces a nondegenerate segment injectively, its +open interval traces the segment with its endpoints removed. -/ +theorem image_Ioo_eq_segment_diff_endpoints_of_image_Icc + {a b : ℝ} {x : Set.Icc a b → Point} + (hinj : Set.InjOn x {t | (t : ℝ) < b}) + (l u : Set.Icc a b) (hlu : l < u) (hub : (u : ℝ) < b) + (P Q : Point) (hl : x l = Q) (hu : x u = P) + (himage : x '' Set.Icc l u = segment ℝ P Q) : + x '' {z | l < z ∧ z < u} = segment ℝ P Q \ {P, Q} := by + apply Set.Subset.antisymm + · rintro p ⟨z, hz, rfl⟩ + refine ⟨himage ▸ ⟨z, ⟨hz.1.le, hz.2.le⟩, rfl⟩, ?_⟩ + intro hp + rcases hp with hp | hp + · have hzu := hinj (show (z : ℝ) < b from lt_trans hz.2 hub) hub + (hp.trans hu.symm) + exact (ne_of_lt hz.2) hzu + · have hzl := hinj (show (z : ℝ) < b from lt_trans hz.2 hub) + (show (l : ℝ) < b from lt_trans hlu hub) (hp.trans hl.symm) + exact (ne_of_gt hz.1) hzl + · rintro p ⟨hpseg, hpends⟩ + rw [← himage] at hpseg + obtain ⟨z, hz, rfl⟩ := hpseg + refine ⟨z, ⟨?_, ?_⟩, rfl⟩ + · refine lt_of_le_of_ne hz.1 ?_ + intro h + apply hpends + exact Or.inr ((congrArg x h).symm.trans hl) + · refine lt_of_le_of_ne hz.2 ?_ + intro h + apply hpends + exact Or.inl ((congrArg x h).trans hu) + +private theorem exists_rectifiableOrientedArc_of_cut_parametrization + {a b : ℝ} {x : ContinuousBVPaths a b} {Γ U : Set Point} + (hab : a ≤ b) (hx : IsOrientedJordanParametrization hab Γ true x.val) + (l u : Set.Icc a b) (hal : a < l) (hlu : l < u) (hub : (u : ℝ) < b) + (P Q : Point) (hl : x.val l = Q) (hu : x.val u = P) + (hfrontier : Γ = U ∪ segment ℝ P Q) + (hinter : U ∩ segment ℝ P Q = {P, Q}) + (himage : x.val '' Set.Icc l u = segment ℝ P Q) : + ∃ A : RectifiableOrientedArc, + A.val.carrier = U ∧ A.val.startPoint = P ∧ A.val.endPoint = Q := by + obtain ⟨A, hA, hstart, hend⟩ := + exists_complementary_rectifiableOrientedArc hab hx l u hal hlu hub P Q hl hu + refine ⟨A, ?_, hstart, hend⟩ + rw [hA, hx.2.2.2.1, hfrontier, + image_Ioo_eq_segment_diff_endpoints_of_image_Icc + hx.2.2.2.2.2.1 l u hlu hub P Q hl hu himage] + ext p + constructor + · rintro ⟨hp, hpnot⟩ + rcases hp with hpU | hpseg + · exact hpU + · have hpends : p ∈ ({P, Q} : Set Point) := by + by_contra hn + exact hpnot ⟨hpseg, hn⟩ + rw [← hinter] at hpends + exact hpends.1 + · intro hpU + refine ⟨Or.inl hpU, ?_⟩ + rintro ⟨hpseg, hpnotends⟩ + apply hpnotends + rw [← hinter] + exact ⟨hpU, hpseg⟩ + +/-- A nondegenerate segment in a closed Jordan curve, away from the base point, +is traced by an interior parameter interval. -/ +theorem exists_parameter_interval_of_segment_subset_closedJordan + {a b : ℝ} {x : ContinuousBVPaths a b} {Γ : Set Point} + (hab : a < b) (hx : IsOrientedJordanParametrization hab.le Γ true x.val) + (P Q : Point) (hPQ : P ≠ Q) (hsegment : segment ℝ P Q ⊆ Γ) + (hbase : x.val ⟨a, le_rfl, hab.le⟩ ∉ segment ℝ P Q) : + ∃ l u : Set.Icc a b, a < l ∧ l < u ∧ (u : ℝ) < b ∧ + x.val '' Set.Icc l u = segment ℝ P Q := by + have hcompact : IsCompact (segment ℝ P Q) := by + rw [segment_eq_image] + exact isCompact_Icc.image (by fun_prop) + have hpath : IsPathConnected (segment ℝ P Q) := + (convex_segment P Q).isPathConnected ⟨P, left_mem_segment ℝ P Q⟩ + have hCrange : segment ℝ P Q ⊆ Set.range x.val := by + rw [hx.2.2.2.1] + exact hsegment + obtain ⟨l, u, hlu⟩ := exists_Icc_parameters_of_compact_pathConnected_subset_loop + hab.le hab x.property.1 hx.2.2.2.2.1 hx.2.2.2.2.2.1 + (segment ℝ P Q) hcompact hpath hCrange hbase + have hpre_nonempty : + ((openIntervalHomeomorphPuncturedRange hab.le hab x.val x.property.1 + hx.2.2.2.2.1 hx.2.2.2.2.2.1).symm '' + {q : puncturedLoopRangeSet hab.le x.val | (q : Point) ∈ segment ℝ P Q}).Nonempty := by + let q : Set.range x.val := ⟨P, hCrange (left_mem_segment ℝ P Q)⟩ + have hq : (q : Point) ≠ x.val ⟨a, le_rfl, hab.le⟩ := by + intro heq + exact hbase (heq ▸ left_mem_segment ℝ P Q) + let q' : puncturedLoopRangeSet hab.le x.val := ⟨q, hq⟩ + refine ⟨(openIntervalHomeomorphPuncturedRange hab.le hab x.val x.property.1 + hx.2.2.2.2.1 hx.2.2.2.2.2.1).symm q', ?_⟩ + exact ⟨q', left_mem_segment ℝ P Q, rfl⟩ + have hIcc_nonempty : (Set.Icc l u).Nonempty := by + rw [← hlu] + exact hpre_nonempty.image _ + have hlu_order : l ≤ u := Set.nonempty_Icc.mp hIcc_nonempty + have hlmem : l ∈ Set.Icc l u := ⟨le_rfl, hlu_order⟩ + have humem : u ∈ Set.Icc l u := ⟨hlu_order, le_rfl⟩ + rw [← hlu] at hlmem humem + obtain ⟨sl, hsl, hslval⟩ := hlmem + obtain ⟨su, hsu, hsuval⟩ := humem + change (sl : ℝ) = l at hslval + change (su : ℝ) = u at hsuval + let l' : Set.Icc a b := ⟨sl, sl.property.1.le, sl.property.2.le⟩ + let u' : Set.Icc a b := ⟨su, su.property.1.le, su.property.2.le⟩ + have hlstrict : a < (l' : ℝ) := sl.property.1 + have hustricttop : (u' : ℝ) < b := su.property.2 + have hlu' : l' ≤ u' := by + change (sl : ℝ) ≤ su + linarith + have himage : x.val '' Set.Icc l' u' = segment ℝ P Q := by + apply Set.Subset.antisymm + · rintro p ⟨s, hs, rfl⟩ + let si : Set.Ioo a b := ⟨s, lt_of_lt_of_le hlstrict hs.1, + lt_of_le_of_lt hs.2 hustricttop⟩ + have hscoord : (s : ℝ) ∈ + (fun z : Set.Ioo a b ↦ (z : ℝ)) '' + ((openIntervalHomeomorphPuncturedRange hab.le hab x.val x.property.1 + hx.2.2.2.2.1 hx.2.2.2.2.2.1).symm '' + {q : puncturedLoopRangeSet hab.le x.val | + (q : Point) ∈ segment ℝ P Q}) := by + rw [hlu] + change l ≤ (s : ℝ) ∧ (s : ℝ) ≤ u + constructor + · calc l = (sl : ℝ) := hslval.symm + _ ≤ s := hs.1 + · calc (s : ℝ) ≤ su := hs.2 + _ = u := hsuval + obtain ⟨z, hz, hzval⟩ := hscoord + obtain ⟨q, hqseg, hzq⟩ := hz + have hzcoe := openIntervalHomeomorphPuncturedRange_coe hab.le hab x.val + x.property.1 hx.2.2.2.2.1 hx.2.2.2.2.2.1 z + have hzs : z = si := Subtype.ext hzval + rw [hzs] at hzcoe hzq + let e := openIntervalHomeomorphPuncturedRange hab.le hab x.val x.property.1 + hx.2.2.2.2.1 hx.2.2.2.2.2.1 + have heq : e si = q := by + exact e.eq_symm_apply.mp hzq.symm + have heq' := congrArg (fun z : puncturedLoopRangeSet hab.le x.val ↦ (z : Point)) heq + rw [hzcoe] at heq' + change (q : Point) ∈ segment ℝ P Q at hqseg + have heq'' : x.val s = (q : Point) := by simpa [si] using heq' + rw [heq''] + exact hqseg + · intro p hp + let q : Set.range x.val := ⟨p, hCrange hp⟩ + have hqbase : (q : Point) ≠ x.val ⟨a, le_rfl, hab.le⟩ := by + intro heq + exact hbase (heq ▸ hp) + let q' : puncturedLoopRangeSet hab.le x.val := ⟨q, hqbase⟩ + let s := (openIntervalHomeomorphPuncturedRange hab.le hab x.val x.property.1 + hx.2.2.2.2.1 hx.2.2.2.2.2.1).symm q' + have hscoord : (s : ℝ) ∈ Set.Icc l u := by + rw [← hlu] + exact ⟨s, ⟨q', hp, rfl⟩, rfl⟩ + let s' : Set.Icc a b := ⟨s, s.property.1.le, s.property.2.le⟩ + refine ⟨s', ?_, ?_⟩ + · change l' ≤ s' ∧ s' ≤ u' + constructor <;> change (_ : ℝ) ≤ _ <;> dsimp only [l', u', s'] <;> + linarith [hscoord.1, hscoord.2] + have hscoe := openIntervalHomeomorphPuncturedRange_coe hab.le hab x.val + x.property.1 hx.2.2.2.2.1 hx.2.2.2.2.2.1 s + let e := openIntervalHomeomorphPuncturedRange hab.le hab x.val x.property.1 + hx.2.2.2.2.1 hx.2.2.2.2.2.1 + have heq : e s = q' := e.apply_symm_apply q' + have heq' := congrArg (fun z : puncturedLoopRangeSet hab.le x.val ↦ (z : Point)) heq + exact hscoe.symm.trans heq' + have hlune : l' ≠ u' := by + intro heq + have hsingle : segment ℝ P Q = {x.val l'} := by + rw [← himage, heq, Set.Icc_self, Set.image_singleton] + have hPm : P ∈ ({x.val l'} : Set Point) := hsingle ▸ left_mem_segment ℝ P Q + have hQm : Q ∈ ({x.val l'} : Set Point) := hsingle ▸ right_mem_segment ℝ P Q + exact hPQ (by simpa using hPm.trans hQm.symm) + exact ⟨l', u', hlstrict, lt_of_le_of_ne hlu' hlune, + hustricttop, himage⟩ + +private theorem inner_sub_right_injOn_segment (P Q : Point) (hPQ : P ≠ Q) : + Set.InjOn (fun p : Point ↦ inner ℝ (p - P) (Q - P)) (segment ℝ P Q) := by + intro p hp q hq hpq + rw [segment_eq_image' ℝ P Q] at hp hq + obtain ⟨s, hs, rfl⟩ := hp + obtain ⟨t, ht, rfl⟩ := hq + have hd : Q - P ≠ 0 := sub_ne_zero.mpr hPQ.symm + have hnorm : 0 < ‖Q - P‖ ^ 2 := sq_pos_of_pos (norm_pos_iff.mpr hd) + have hst : s = t := by + simp only [add_sub_cancel_left, inner_smul_left, real_inner_self_eq_norm_sq] at hpq + have hpq' : s * ‖Q - P‖ ^ 2 = t * ‖Q - P‖ ^ 2 := by simpa using hpq + nlinarith + rw [hst] + +private theorem exists_rectifiableOrientedArc_reverse (A : RectifiableOrientedArc) : + ∃ B : RectifiableOrientedArc, + B.val.carrier = A.val.carrier ∧ B.val.startPoint = A.val.endPoint ∧ + B.val.endPoint = A.val.startPoint := by + let p := Classical.choice A.property + let r := Set.Icc.reverse p.ordered + let y : ContinuousBVPaths p.a p.b := + ⟨p.path.val ∘ r, p.path.property.1.comp (Set.Icc.continuous_reverse p.ordered), + fun i ↦ BoundedVariationOn.comp_antitone_surjective_Icc p.ordered + (p.path.property.2 i) (Set.Icc.antitone_reverse p.ordered) + (Set.Icc.surjective_reverse p.ordered)⟩ + have hyinj : Function.Injective y.val := + p.injective.comp (Set.Icc.involutive_reverse p.ordered).injective + have hyrange : Set.range y.val = A.val.carrier := by + have hrange : Set.range y.val = Set.range p.path.val := by + apply Set.Subset.antisymm + · rintro z ⟨t, rfl⟩ + exact ⟨r t, rfl⟩ + · rintro z ⟨t, rfl⟩ + obtain ⟨s, hs⟩ := Set.Icc.surjective_reverse p.ordered t + refine ⟨s, ?_⟩ + change p.path.val (r s) = p.path.val t + rw [show r s = t by exact hs] + rw [hrange] + exact p.range_eq + have hystart : y.val ⟨p.a, le_rfl, p.ordered⟩ = A.val.endPoint := by + simpa [y, r, Set.Icc.reverse] using p.end_eq + have hyend : y.val ⟨p.b, p.ordered, le_rfl⟩ = A.val.startPoint := by + simpa [y, r, Set.Icc.reverse] using p.start_eq + let B0 : OrientedJordanArc := + { carrier := A.val.carrier + startPoint := A.val.endPoint + endPoint := A.val.startPoint + parametrizable := ⟨p.a, p.b, p.ordered, y.val, y.property.1, hyinj, + hyrange, hystart, hyend⟩ } + let q : ArcBVParametrization B0 := + { a := p.a + b := p.b + ordered := p.ordered + path := y + injective := hyinj + range_eq := hyrange + start_eq := hystart + end_eq := hyend } + exact ⟨⟨B0, ⟨q⟩⟩, rfl, rfl, rfl⟩ + +/-- The endpoints of an injectively parametrized nondegenerate segment are the +parameter-interval endpoints, in one of the two possible orders. -/ +theorem endpoints_eq_or_eq_swap_of_image_Icc_eq_segment + {a b : ℝ} {x : ContinuousBVPaths a b} + (hab : a ≤ b) (hinj : Set.InjOn x.val {t | (t : ℝ) < b}) + (l u : Set.Icc a b) (hlu : l < u) (hub : (u : ℝ) < b) + (P Q : Point) (hPQ : P ≠ Q) + (himage : x.val '' Set.Icc l u = segment ℝ P Q) : + (x.val l = P ∧ x.val u = Q) ∨ (x.val l = Q ∧ x.val u = P) := by + let f : ℝ → ℝ := fun t ↦ + inner ℝ (x.val (Set.projIcc a b hab t) - P) (Q - P) + have hf_cont : Continuous f := by + exact (x.property.1.comp continuous_projIcc).sub continuous_const |>.inner + continuous_const + have hproj (t : ℝ) (ht : t ∈ Set.Icc (l : ℝ) u) : + Set.projIcc a b hab t = + ⟨t, l.property.1.trans ht.1, ht.2.trans u.property.2⟩ := by + exact Set.projIcc_of_mem hab ⟨l.property.1.trans ht.1, ht.2.trans u.property.2⟩ + have hparam (t : ℝ) (ht : t ∈ Set.Icc (l : ℝ) u) : + x.val (Set.projIcc a b hab t) ∈ segment ℝ P Q := by + rw [← himage] + refine ⟨⟨t, l.property.1.trans ht.1, ht.2.trans u.property.2⟩, ?_, ?_⟩ + · exact ht + · apply congrArg x.val + apply Subtype.ext + exact congrArg Subtype.val (hproj t ht).symm + have hf_inj : Set.InjOn f (Set.Icc (l : ℝ) u) := by + intro s hs t ht hst + have hxs := inner_sub_right_injOn_segment P Q hPQ + (hparam s hs) (hparam t ht) hst + have hst' := hinj + (show ((Set.projIcc a b hab s : Set.Icc a b) : ℝ) < b by + simpa [hproj s hs] using lt_of_le_of_lt hs.2 hub) + (show ((Set.projIcc a b hab t : Set.Icc a b) : ℝ) < b by + simpa [hproj t ht] using lt_of_le_of_lt ht.2 hub) + hxs + simpa [hproj s hs, hproj t ht] using congrArg Subtype.val hst' + have hmono := ContinuousOn.strictMonoOn_of_injOn_Icc' + (show (l : ℝ) ≤ u from hlu.le) hf_cont.continuousOn hf_inj + have hP : P ∈ x.val '' Set.Icc l u := himage ▸ left_mem_segment ℝ P Q + have hQ : Q ∈ x.val '' Set.Icc l u := himage ▸ right_mem_segment ℝ P Q + obtain ⟨s, hs, hsP⟩ := hP + obtain ⟨t, ht, htQ⟩ := hQ + have hs' : (s : ℝ) ∈ Set.Icc (l : ℝ) u := hs + have ht' : (t : ℝ) ∈ Set.Icc (l : ℝ) u := ht + have hl' : (l : ℝ) ∈ Set.Icc (l : ℝ) u := ⟨le_rfl, hlu.le⟩ + have hu' : (u : ℝ) ∈ Set.Icc (l : ℝ) u := ⟨hlu.le, le_rfl⟩ + rcases hmono with hmono | hanti + · left + constructor + · have hfls : f l ≤ f s := hmono.monotoneOn hl' hs' hs.1 + have hflP : f l = f s := by + have hnonneg : 0 ≤ f l := by + have hmem := hparam l hl' + rw [segment_eq_image' ℝ P Q] at hmem + obtain ⟨r, hr, hrl⟩ := hmem + dsimp only [f] + rw [← hrl] + simp only [add_sub_cancel_left, inner_smul_left, + real_inner_self_eq_norm_sq] + exact mul_nonneg hr.1 (sq_nonneg _) + have hfs : f s = 0 := by simp [f, hproj s hs', hsP] + linarith + simpa [hproj l hl'] using + (inner_sub_right_injOn_segment P Q hPQ + (hparam l hl') (hparam s hs') hflP |>.trans + (by simpa [hproj s hs'] using hsP)) + · have hftu : f t ≤ f u := hmono.monotoneOn ht' hu' ht.2 + have hfuQ : f u = f t := by + have hupper : f u ≤ ‖Q - P‖ ^ 2 := by + have hmem := hparam u hu' + rw [segment_eq_image' ℝ P Q] at hmem + obtain ⟨r, hr, hru⟩ := hmem + dsimp only [f] + rw [← hru] + simp only [add_sub_cancel_left, inner_smul_left, + real_inner_self_eq_norm_sq] + exact mul_le_of_le_one_left (sq_nonneg _) hr.2 + have hft : f t = ‖Q - P‖ ^ 2 := by + simp [f, hproj t ht', htQ] + linarith + simpa [hproj u hu'] using + (inner_sub_right_injOn_segment P Q hPQ + (hparam u hu') (hparam t ht') hfuQ |>.trans + (by simpa [hproj t ht'] using htQ)) + · right + constructor + · have hftl : f t ≤ f l := hanti.antitoneOn hl' ht' ht.1 + have hflQ : f l = f t := by + have hupper : f l ≤ ‖Q - P‖ ^ 2 := by + have hmem := hparam l hl' + rw [segment_eq_image' ℝ P Q] at hmem + obtain ⟨r, hr, hrl⟩ := hmem + dsimp only [f] + rw [← hrl] + simp only [add_sub_cancel_left, inner_smul_left, + real_inner_self_eq_norm_sq] + exact mul_le_of_le_one_left (sq_nonneg _) hr.2 + have hft : f t = ‖Q - P‖ ^ 2 := by + simp [f, hproj t ht', htQ] + linarith + simpa [hproj l hl'] using + (inner_sub_right_injOn_segment P Q hPQ + (hparam l hl') (hparam t ht') hflQ |>.trans + (by simpa [hproj t ht'] using htQ)) + · have hfus : f u ≤ f s := hanti.antitoneOn hs' hu' hs.2 + have hfuP : f u = f s := by + have hnonneg : 0 ≤ f u := by + have hmem := hparam u hu' + rw [segment_eq_image' ℝ P Q] at hmem + obtain ⟨r, hr, hru⟩ := hmem + dsimp only [f] + rw [← hru] + simp only [add_sub_cancel_left, inner_smul_left, + real_inner_self_eq_norm_sq] + exact mul_nonneg hr.1 (sq_nonneg _) + have hfs : f s = 0 := by simp [f, hproj s hs', hsP] + linarith + simpa [hproj u hu'] using + (inner_sub_right_injOn_segment P Q hPQ + (hparam u hu') (hparam s hs') hfuP |>.trans + (by simpa [hproj s hs'] using hsP)) + +/-- Removing a supporting chord from a counterclockwise closed Jordan path yields the oriented +complementary arc. -/ +theorem exists_rectifiableOrientedArc_of_closedJordan_cut + {a b : ℝ} {x : ContinuousBVPaths a b} {Γ U : Set Point} + (hab : a < b) (hx : IsOrientedJordanParametrization hab.le Γ true x.val) + (P Q : Point) (hPQ : P ≠ Q) + (hbase : x.val ⟨a, le_rfl, hab.le⟩ ∉ segment ℝ P Q) + (hfrontier : Γ = U ∪ segment ℝ P Q) + (hinter : U ∩ segment ℝ P Q = {P, Q}) : + ∃ A : RectifiableOrientedArc, + A.val.carrier = U ∧ A.val.startPoint = P ∧ A.val.endPoint = Q := by + have hsegment : segment ℝ P Q ⊆ Γ := by + rw [hfrontier] + exact Set.subset_union_right + obtain ⟨l, u, hal, hlu, hub, himage⟩ := + exists_parameter_interval_of_segment_subset_closedJordan hab hx P Q hPQ hsegment hbase + rcases endpoints_eq_or_eq_swap_of_image_Icc_eq_segment hab.le + hx.2.2.2.2.2.1 l u hlu hub P Q hPQ himage with hend | hend + · have hfrontier' : Γ = U ∪ segment ℝ Q P := by + simpa only [segment_symm ℝ Q P] using hfrontier + have hinter' : U ∩ segment ℝ Q P = {Q, P} := by + rw [segment_symm ℝ Q P, hinter] + exact Set.pair_comm P Q + have himage' : x.val '' Set.Icc l u = segment ℝ Q P := by + simpa only [segment_symm ℝ Q P] using himage + obtain ⟨A, hA, hstart, hend'⟩ := + exists_rectifiableOrientedArc_of_cut_parametrization hab.le hx l u hal hlu hub + Q P hend.1 hend.2 hfrontier' hinter' himage' + obtain ⟨B, hB, hBstart, hBend⟩ := exists_rectifiableOrientedArc_reverse A + exact ⟨B, hB.trans hA, hBstart.trans hend', hBend.trans hstart⟩ + · exact exists_rectifiableOrientedArc_of_cut_parametrization hab.le hx l u hal hlu hub + P Q hend.1 hend.2 hfrontier hinter himage + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Reparametrization +-/ + +@[expose] public section + +namespace MovingSofa + +theorem curveArea_reparametrization : + (∀ (a b c d : ℝ), a < b → c < d → + ∀ (x : ContinuousBVPaths a b) (φ : Set.Icc c d → Set.Icc a b), + Continuous φ → Function.Surjective φ → (Monotone φ ∨ Antitone φ) → + ∃ y : ContinuousBVPaths c d, y.val = x.val ∘ φ ∧ + (Monotone φ → curveAreaFunctional y = curveAreaFunctional x) ∧ + (Antitone φ → curveAreaFunctional y = -curveAreaFunctional x)) ∧ + (∀ (Γ Δ : OrientedJordanArc) (x : ArcBVParametrization Γ) + (y : ArcBVParametrization Δ), Γ.carrier = Δ.carrier → + (Γ.startPoint = Δ.startPoint → Γ.endPoint = Δ.endPoint → + curveAreaFunctional x.path = curveAreaFunctional y.path) ∧ + (Γ.startPoint = Δ.endPoint → Γ.endPoint = Δ.startPoint → + curveAreaFunctional x.path = -curveAreaFunctional y.path)) ∧ + (∀ (Γ Δ : OrientedJordanCurve) (x : ClosedBVParametrization Γ) + (y : ClosedBVParametrization Δ), Γ.carrier = Δ.carrier → + (Γ.counterclockwise = Δ.counterclockwise → + curveAreaFunctional x.path = curveAreaFunctional y.path) ∧ + (Γ.counterclockwise ≠ Δ.counterclockwise → + curveAreaFunctional x.path = -curveAreaFunctional y.path)) ∧ + (∀ (a b : ℝ) (x : ContinuousBVPaths a b) (p : Point), + (∀ t, x.val t = p) → curveAreaFunctional x = 0) := by + refine ⟨?_, curveArea_arc_same_carrier, ?_, ?_⟩ + · intro a b c d hab hcd x φ hφc hφs hφ + exact curveArea_comp_monotone_or_antitone_surjective hab.le hcd.le x φ hφc hφs hφ + · exact curveArea_closed_same_carrier + · intro a b x p hx + exact curveAreaFunctional_eq_zero_of_constant x p hx + +end MovingSofa + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Segment Area Properties +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open MeasureTheory Set + +theorem segmentArea_jordan_and_frame (p q : Point) : + (∃ A : RectifiableOrientedArc, + A.val.carrier = segment ℝ p q ∧ A.val.startPoint = p ∧ A.val.endPoint = q ∧ + jordanArcArea A = segmentArea p q) ∧ + (∀ (t : Real.Angle) (h d : ℝ), p ∈ normalLine t h → q ∈ normalLine t h → + q - p = d • tangentVector t → segmentArea p q = h * d / 2) := by + constructor + · by_cases hpq : p = q + · subst q + let Γ : OrientedJordanArc := + { carrier := segment ℝ p p + startPoint := p + endPoint := p + parametrizable := by + refine ⟨0, 0, le_rfl, (constBVPath 0 0 p).val, + (constBVPath 0 0 p).property.1, ?_, ?_, rfl, rfl⟩ + · intro s t _ + apply Subtype.ext + exact le_antisymm (s.property.2.trans t.property.1) + (t.property.2.trans s.property.1) + · simp [constBVPath] } + let z : ArcBVParametrization Γ := + { a := 0 + b := 0 + ordered := le_rfl + path := constBVPath 0 0 p + injective := by + intro s t _ + apply Subtype.ext + exact le_antisymm (s.property.2.trans t.property.1) + (t.property.2.trans s.property.1) + range_eq := by simp [constBVPath, Γ] + start_eq := rfl + end_eq := rfl } + let A : RectifiableOrientedArc := ⟨Γ, ⟨z⟩⟩ + refine ⟨A, rfl, rfl, rfl, ?_⟩ + change curveAreaFunctional (Classical.choice A.property).path = segmentArea p p + calc + _ = curveAreaFunctional z.path := + (curveArea_reparametrization.2.1 Γ Γ + (Classical.choice A.property) z rfl).1 rfl rfl + _ = 0 := curveArea_reparametrization.2.2.2 0 0 z.path p (by intro t; rfl) + _ = segmentArea p p := by simp [segmentArea, planeCrossProduct]; ring + · let Γ : OrientedJordanArc := + { carrier := segment ℝ p q + startPoint := p + endPoint := q + parametrizable := by + refine ⟨0, 1, by norm_num, Path.segment p q, + (Path.segment p q).continuous, Path.segment_injective_of_ne hpq, + Path.range_segment p q, ?_, ?_⟩ + · simp + · simp } + let z : ArcBVParametrization Γ := + { a := 0 + b := 1 + ordered := by norm_num + path := lineSegmentBVPath p q + injective := Path.segment_injective_of_ne hpq + range_eq := Path.range_segment p q + start_eq := by simp [lineSegmentBVPath, Γ] + end_eq := by simp [lineSegmentBVPath, Γ] } + let A : RectifiableOrientedArc := ⟨Γ, ⟨z⟩⟩ + refine ⟨A, rfl, rfl, rfl, ?_⟩ + change curveAreaFunctional (Classical.choice A.property).path = segmentArea p q + calc + _ = curveAreaFunctional z.path := + (curveArea_reparametrization.2.1 Γ Γ + (Classical.choice A.property) z rfl).1 rfl rfl + _ = segmentArea p q := curveAreaFunctional_lineSegmentBVPath p q + · intro t h d hp hq hd + simp only [normalLine, Set.mem_ofPred_eq, segmentArea, planeCrossProduct] at hp hq ⊢ + have hd0 := congrArg (fun x : Point => x 0) hd + have hd1 := congrArg (fun x : Point => x 1) hd + simp only [normalVector, frame, Fin.isValue, PiLp.sub_apply, tangentVector, PiLp.smul_apply, + Matrix.cons_val_zero, smul_eq_mul, mul_neg, Matrix.cons_val_one, Matrix.cons_val_fin_one, + ne_eq, OfNat.ofNat_ne_zero, not_false_eq_true, div_left_inj'] at hp hq hd0 hd1 ⊢ + rw [PiLp.inner_apply, Fin.sum_univ_two, Real.inner_apply, Real.inner_apply] at hp hq + simp only [Fin.isValue, Matrix.cons_val_zero, Matrix.cons_val_one, + Matrix.cons_val_fin_one] at hp hq + have hq0 : q.ofLp 0 = p.ofLp 0 - d * t.sin := by linarith [hd0] + have hq1 : q.ofLp 1 = p.ofLp 1 + d * t.cos := by linarith [hd1] + rw [hq0, hq1] + calc + p.ofLp 0 * (p.ofLp 1 + d * t.cos) - p.ofLp 1 * (p.ofLp 0 - d * t.sin) = + d * (p.ofLp 0 * t.cos + p.ofLp 1 * t.sin) := by ring + _ = d * h := by rw [hp] + _ = h * d := by ring + +theorem segmentArea_collinear_origin (p q : Point) + (h : Collinear ℝ ({0, p, q} : Set Point)) : segmentArea p q = 0 := by + obtain ⟨v, hv⟩ := (collinear_iff_of_mem (by simp : (0 : Point) ∈ ({0, p, q} : Set Point))).mp h + obtain ⟨a, ha⟩ := hv p (by simp) + obtain ⟨b, hb⟩ := hv q (by simp) + simp only [vadd_eq_add, add_zero] at ha hb + rw [ha, hb] + simp [segmentArea, planeCrossProduct] + ring + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Curve / Jordan / Subarc Area +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open Set +/-- A proper restriction of a closed BV Jordan parametrization realizes an arc with the same +signed area as the restricted path. -/ +theorem exists_rectifiableOrientedArc_restrict_closedJordan_with_area + {a b : ℝ} {x : ContinuousBVPaths a b} {Γ : Set Point} + (hab : a ≤ b) (hx : IsOrientedJordanParametrization hab Γ true x.val) + (l u : Set.Icc a b) (hlu : l ≤ u) (hub : (u : ℝ) < b) : + ∃ A : RectifiableOrientedArc, + A.val.carrier = Set.range (ContinuousBVPaths.restrict x l u hlu).val ∧ + A.val.startPoint = x.val l ∧ A.val.endPoint = x.val u ∧ + jordanArcArea A = + curveAreaFunctional (ContinuousBVPaths.restrict x l u hlu) := by + let y := ContinuousBVPaths.restrict x l u hlu + have hyinj : Function.Injective y.val := by + intro s t hst + apply Subtype.ext + have hs : (s : ℝ) < b := lt_of_le_of_lt s.property.2 hub + have ht : (t : ℝ) < b := lt_of_le_of_lt t.property.2 hub + have h := hx.2.2.2.2.2.1 hs ht hst + exact congrArg (fun z : Set.Icc a b ↦ (z : ℝ)) h + let A0 : OrientedJordanArc := + { carrier := Set.range y.val + startPoint := x.val l + endPoint := x.val u + parametrizable := ⟨l, u, hlu, y.val, y.property.1, hyinj, rfl, rfl, rfl⟩ } + let p : ArcBVParametrization A0 := + { a := l, b := u, ordered := hlu, path := y, injective := hyinj, + range_eq := rfl, start_eq := rfl, end_eq := rfl } + let A : RectifiableOrientedArc := ⟨A0, ⟨p⟩⟩ + refine ⟨A, rfl, rfl, rfl, ?_⟩ + change curveAreaFunctional (Classical.choice A.property).path = curveAreaFunctional y + exact (curveArea_reparametrization.2.1 A0 A0 + (Classical.choice A.property) p rfl).1 rfl rfl + +/-- The suffix of the cyclic rotation, after the complementary arc, is an increasing +reparametrization of the removed interval. -/ +theorem curveArea_cyclicSuffix_eq_restriction + {a b : ℝ} (hab : a ≤ b) (x : ContinuousBVPaths a b) + (l u : Set.Icc a b) (hal : a < l) (hlu : l < u) + (θ : Set.Icc (0 : ℝ) 1) + (hθ : Set.Icc.convexComb ⟨a, le_rfl, hab⟩ u θ = l) + (r : ContinuousBVPaths 0 2) + (hr : r.val = Function.concatUnitIntervals + (x.val ∘ Set.Icc.convexComb u ⟨b, hab, le_rfl⟩) + (x.val ∘ Set.Icc.convexComb ⟨a, le_rfl, hab⟩ u)) : + let v : Set.Icc (0 : ℝ) 2 := ⟨1 + (θ : ℝ), by + constructor <;> linarith [θ.property.1, θ.property.2]⟩ + curveAreaFunctional (ContinuousBVPaths.restrict r v ⟨2, by norm_num⟩ v.property.2) = + curveAreaFunctional (ContinuousBVPaths.restrict x l u hlu.le) := by + let v : Set.Icc (0 : ℝ) 2 := ⟨1 + (θ : ℝ), by + constructor <;> linarith [θ.property.1, θ.property.2]⟩ + change curveAreaFunctional (ContinuousBVPaths.restrict r v ⟨2, by norm_num⟩ + v.property.2) = + curveAreaFunctional (ContinuousBVPaths.restrict x l u hlu.le) + have hθlt : (θ : ℝ) < 1 := by + by_contra hn + have hθone : (θ : ℝ) = 1 := le_antisymm θ.property.2 (le_of_not_gt hn) + have h := congrArg Subtype.val hθ + change (1 - (θ : ℝ)) * a + (θ : ℝ) * u = (l : ℝ) at h + simp [hθone] at h + exact hlu.ne (Subtype.ext h.symm) + have hθpos_suffix : 0 < (θ : ℝ) := by + by_contra hn + have hθzero : (θ : ℝ) = 0 := le_antisymm (le_of_not_gt hn) θ.property.1 + have h := congrArg Subtype.val hθ + change (1 - (θ : ℝ)) * a + (θ : ℝ) * u = (l : ℝ) at h + simp [hθzero] at h + linarith + have hvlt : (v : ℝ) < 2 := by dsimp only [v]; linarith + let ψ : Set.Icc (v : ℝ) 2 → Set.Icc (0 : ℝ) 1 := fun w ↦ + ⟨((w : ℝ) - (v : ℝ)) / (2 - (v : ℝ)), by + constructor + · exact div_nonneg (sub_nonneg.mpr w.property.1) (sub_nonneg.mpr hvlt.le) + · exact (div_le_one (sub_pos.mpr hvlt)).2 + (sub_le_sub_right w.property.2 (v : ℝ))⟩ + let φ : Set.Icc (v : ℝ) 2 → Set.Icc (l : ℝ) u := fun w ↦ + Set.Icc.convexComb (⟨l, le_rfl, hlu.le⟩ : Set.Icc (l : ℝ) u) + ⟨u, hlu.le, le_rfl⟩ (ψ w) + have hψc : Continuous ψ := by + apply Continuous.subtype_mk + fun_prop + have hψm : Monotone ψ := by + intro s t hst + apply Subtype.coe_le_coe.mp + dsimp only [ψ] + exact div_le_div_of_nonneg_right + (sub_le_sub_right (show (s : ℝ) ≤ t from hst) _) (sub_nonneg.mpr hvlt.le) + have hψs : Function.Surjective ψ := by + intro q + let w : Set.Icc (v : ℝ) 2 := ⟨(v : ℝ) + (2 - (v : ℝ)) * (q : ℝ), by + constructor + · nlinarith [q.property.1, sub_pos.mpr hvlt] + · nlinarith [q.property.2, sub_pos.mpr hvlt]⟩ + refine ⟨w, Subtype.ext ?_⟩ + dsimp only [ψ, w] + field_simp [ne_of_gt (sub_pos.mpr hvlt)] + ring + have hφc : Continuous φ := + (Set.Icc.continuous_convexComb _ _).comp hψc + have hφm : Monotone φ := by + intro s t hst + change (1 - (ψ s : ℝ)) * (l : ℝ) + (ψ s : ℝ) * (u : ℝ) ≤ + (1 - (ψ t : ℝ)) * (l : ℝ) + (ψ t : ℝ) * (u : ℝ) + have hψ := show (ψ s : ℝ) ≤ ψ t from hψm hst + nlinarith [show (l : ℝ) < u from hlu] + have hφs : Function.Surjective φ := + (surjective_convexComb_endpoints (l : ℝ) u hlu.le).comp hψs + let xu := ContinuousBVPaths.restrict x l u hlu.le + obtain ⟨y, hy, hyarea⟩ := curveArea_comp_monotone_surjective + hlu.le v.property.2 xu φ hφc hφm hφs + have hyval : y.val = (ContinuousBVPaths.restrict r v ⟨2, by norm_num⟩ + v.property.2).val := by + rw [hy] + funext w + simp only [xu, ContinuousBVPaths.restrict, Function.comp_apply] + rw [hr] + have hwlow : 1 + (θ : ℝ) ≤ (w : ℝ) := w.property.1 + have hwsub : (w : ℝ) - 1 ∈ Set.Icc (0 : ℝ) 1 := by + constructor + · linarith + · linarith [w.property.2] + have hwnle : ¬(w : ℝ) ≤ 1 := by + linarith + simp only [Function.concatUnitIntervals, hwnle, ↓reduceIte, + Set.projIcc_of_mem (by norm_num) hwsub] + apply congrArg x.val + apply Subtype.ext + have hθval := congrArg Subtype.val hθ + change (1 - (θ : ℝ)) * a + (θ : ℝ) * u = (l : ℝ) at hθval + dsimp only [φ, ψ] + simp only [Set.Icc.coe_convexComb] + dsimp only [v] + rw [← hθval] + have hdenne : 2 - (1 + (θ : ℝ)) ≠ 0 := by linarith + field_simp [hdenne] + ring + have hyEq : y = ContinuousBVPaths.restrict r v ⟨2, by norm_num⟩ v.property.2 := by + ext w i + exact congrArg (fun z : Point ↦ z i) (congrFun hyval w) + rw [← hyEq, hyarea] + +private theorem exists_complementary_rectifiableOrientedArc_with_area + {a b : ℝ} {x : ContinuousBVPaths a b} {Γ : Set Point} + (hab : a ≤ b) (hx : IsOrientedJordanParametrization hab Γ true x.val) + (l u : Set.Icc a b) (hal : a < l) (hlu : l < u) (hub : (u : ℝ) < b) + (P Q : Point) (hlQ : x.val l = Q) (huP : x.val u = P) : + ∃ A : RectifiableOrientedArc, + A.val.carrier = Set.range x.val \ x.val '' {z | l < z ∧ z < u} ∧ + A.val.startPoint = P ∧ A.val.endPoint = Q ∧ + curveAreaFunctional x = jordanArcArea A + + curveAreaFunctional (ContinuousBVPaths.restrict x l u hlu.le) := by + let l' : Set.Icc a (u : ℝ) := ⟨l, l.property.1, hlu.le⟩ + obtain ⟨θ, hθ'⟩ := surjective_convexComb_endpoints a u + (le_trans l.property.1 hlu.le) l' + have hθ : Set.Icc.convexComb ⟨a, le_rfl, hab⟩ u θ = l := by + apply Subtype.ext + have h := congrArg (fun z : Set.Icc a (u : ℝ) ↦ (z : ℝ)) hθ' + simpa only [Set.Icc.coe_convexComb] using h + have hθpos : 0 < (θ : ℝ) := by + by_contra hn + have hθzero : (θ : ℝ) = 0 := le_antisymm (le_of_not_gt hn) θ.property.1 + have h := congrArg (fun z : Set.Icc a b ↦ (z : ℝ)) hθ + change (1 - (θ : ℝ)) * a + (θ : ℝ) * u = (l : ℝ) at h + simp [hθzero] at h + linarith + have hθlt : (θ : ℝ) < 1 := by + by_contra hn + have hθone : (θ : ℝ) = 1 := le_antisymm θ.property.2 (le_of_not_gt hn) + have h := congrArg (fun z : Set.Icc a b ↦ (z : ℝ)) hθ + change (1 - (θ : ℝ)) * a + (θ : ℝ) * u = (l : ℝ) at h + simp [hθone] at h + exact hlu.ne (Subtype.ext h.symm) + obtain ⟨r, hrJordan, hr⟩ := + exists_oriented_cyclic_rotation_eq_concat hab x hx u + (hal.trans hlu) hub + let z : Set.Icc (0 : ℝ) 2 := ⟨0, by norm_num⟩ + let v : Set.Icc (0 : ℝ) 2 := ⟨1 + (θ : ℝ), by + constructor <;> linarith⟩ + have hzv : z ≤ v := by change (0 : ℝ) ≤ 1 + θ; linarith + have hvtop : (v : ℝ) < 2 := by dsimp only [v]; linarith + obtain ⟨A, hAcarrier, hAstart, hAend, hAarea⟩ := + exists_rectifiableOrientedArc_restrict_closedJordan_with_area + (a := 0) (b := 2) (x := r) (Γ := Γ) (by norm_num) hrJordan z v hzv hvtop + have hrzero : r.val z = P := by + rw [hr] + simp [z, Function.comp_def, huP] + have hrv : r.val v = Q := by + rw [hr] + have hvnot : ¬(v : ℝ) ≤ 1 := by dsimp only [v]; linarith + have hθmem : (θ : ℝ) ∈ Set.Icc (0 : ℝ) 1 := θ.property + have hproj : Set.projIcc (0 : ℝ) 1 (by norm_num) ((v : ℝ) - 1) = θ := by + apply Subtype.ext + simp [v] + simp [Function.concatUnitIntervals, hvnot, hproj, hθ, hlQ] + have hcarrier : A.val.carrier = + Set.range x.val \ x.val '' {z | l < z ∧ z < u} := by + rw [hAcarrier] + have hrange : Set.range (ContinuousBVPaths.restrict r z v hzv).val = + Set.range (fun w : Set.Icc (0 : ℝ) (1 + (θ : ℝ)) ↦ + Function.concatUnitIntervals + (x.val ∘ Set.Icc.convexComb u ⟨b, hab, le_rfl⟩) + (x.val ∘ Set.Icc.convexComb ⟨a, le_rfl, hab⟩ u) + ⟨w, w.property.1, w.property.2.trans (by linarith [θ.property.2])⟩) := by + change Set.range (r.val ∘ fun w : Set.Icc (0 : ℝ) (v : ℝ) ↦ + (⟨w, w.property.1, w.property.2.trans v.property.2⟩ : Set.Icc (0 : ℝ) 2)) = _ + rw [hr] + rfl + rw [hrange, range_cyclicConcat_restrict_to_complement hab x.val + hx.2.2.2.2.1 l u hal hlu hub θ hθ] + exact image_complement_interval_of_closed_injOn hab x.val hx.2.2.2.2.1 + hx.2.2.2.2.2.1 l u hal hub + have hsuffix : curveAreaFunctional + (ContinuousBVPaths.restrict r v ⟨2, by norm_num⟩ v.property.2) = + curveAreaFunctional (ContinuousBVPaths.restrict x l u hlu.le) := + curveArea_cyclicSuffix_eq_restriction hab x l u hal hlu θ hθ r hr + obtain ⟨r', hr', _, hrotate'⟩ := + exists_cyclic_rotation_eq_concat hab x u hx.2.2.2.2.1.symm + have hrr : r = r' := by + ext w i + exact congrArg (fun z : Point ↦ z i) (congrFun (hr.trans hr'.symm) w) + have hrotate : curveAreaFunctional r = curveAreaFunctional x := by + rw [hrr] + exact hrotate' + have hsplit := curveArea_eq_restriction_add_restriction (by norm_num) r v + dsimp only at hsplit + refine ⟨A, hcarrier, hAstart.trans hrzero, hAend.trans hrv, ?_⟩ + rw [← hrotate, hsplit, ← hAarea, hsuffix] + +private theorem exists_rectifiableOrientedArc_of_cut_parametrization_with_area + {a b : ℝ} {x : ContinuousBVPaths a b} {Γ U : Set Point} + (hab : a ≤ b) (hx : IsOrientedJordanParametrization hab Γ true x.val) + (l u : Set.Icc a b) (hal : a < l) (hlu : l < u) (hub : (u : ℝ) < b) + (P Q : Point) (hl : x.val l = Q) (hu : x.val u = P) + (hfrontier : Γ = U ∪ segment ℝ P Q) + (hinter : U ∩ segment ℝ P Q = {P, Q}) + (himage : x.val '' Set.Icc l u = segment ℝ P Q) : + ∃ A : RectifiableOrientedArc, + A.val.carrier = U ∧ A.val.startPoint = P ∧ A.val.endPoint = Q ∧ + curveAreaFunctional x = jordanArcArea A + + curveAreaFunctional (ContinuousBVPaths.restrict x l u hlu.le) := by + obtain ⟨A, hA, hstart, hend, harea⟩ := + exists_complementary_rectifiableOrientedArc_with_area + hab hx l u hal hlu hub P Q hl hu + refine ⟨A, ?_, hstart, hend, harea⟩ + rw [hA, hx.2.2.2.1, hfrontier, + image_Ioo_eq_segment_diff_endpoints_of_image_Icc + hx.2.2.2.2.2.1 l u hlu hub P Q hl hu himage] + ext p + constructor + · rintro ⟨hp, hpnot⟩ + rcases hp with hpU | hpseg + · exact hpU + · have hpends : p ∈ ({P, Q} : Set Point) := by + by_contra hn + exact hpnot ⟨hpseg, hn⟩ + rw [← hinter] at hpends + exact hpends.1 + · intro hpU + refine ⟨Or.inl hpU, ?_⟩ + rintro ⟨hpseg, hpnotends⟩ + apply hpnotends + rw [← hinter] + exact ⟨hpU, hpseg⟩ + +theorem endpoints_eq_of_counterclockwise_supporting_chord + {a b : ℝ} {x : ContinuousBVPaths a b} {Γ : Set Point} + (hab : a < b) (hx : IsOrientedJordanParametrization hab.le Γ true x.val) + (l u : Set.Icc a b) (hlu : l < u) (hub : (u : ℝ) < b) + (P Q : Point) (hPQ : P ≠ Q) + (himage : x.val '' Set.Icc l u = segment ℝ P Q) + (θ : Real.Angle) (h : ℝ) + (hhalf : Γ ⊆ normalHalfPlane θ h false false) + (hQline : Q ∈ normalLine θ h) (d : ℝ) (hd : 0 < d) + (hdir : P = Q + d • tangentVector θ) : + x.val l = Q ∧ x.val u = P := by + rcases endpoints_eq_or_eq_swap_of_image_Icc_eq_segment hab.le + hx.2.2.2.2.2.1 l u hlu hub P Q hPQ himage with hbad | hgood + · exfalso + let r := Set.Icc.reverse hab.le + let y : Set.Icc a b → Point := x.val ∘ r + let l' := r u + let u' := r l + have hl'u' : l' < u' := by + have hlu' : (l : ℝ) < u := hlu + change a + b - (u : ℝ) < a + b - (l : ℝ) + linarith + have hyrange : Set.range y = Γ := by + rw [show Set.range y = Set.range x.val by + apply Set.Subset.antisymm + · rintro z ⟨s, rfl⟩; exact ⟨r s, rfl⟩ + · rintro z ⟨s, rfl⟩ + obtain ⟨q, hq⟩ := Set.Icc.surjective_reverse hab.le s + exact ⟨q, by simpa [y, r] using congrArg x.val hq⟩] + exact hx.2.2.2.1 + have hyl : y l' = Q := by + change x.val (r (r u)) = Q + rw [show r (r u) = u by exact Set.Icc.involutive_reverse hab.le u, hbad.2] + have hyu : y u' = P := by + change x.val (r (r l)) = P + rw [show r (r l) = l by exact Set.Icc.involutive_reverse hab.le l, hbad.1] + have hytrue := jordan_counterclockwise_of_supporting_segment a b hab y + (hx.2.2.1.comp (Set.Icc.continuous_reverse hab.le)) + (by rw [hyrange]; exact hx.2.1) + (by simpa [y, r, Set.Icc.reverse] using hx.2.2.2.2.1.symm) + (injOn_comp_reverse_of_closed_injOn hab x.val hx.2.2.2.2.1 + hx.2.2.2.2.2.1) θ h + (fun z ↦ hhalf (by rw [← hyrange]; exact Set.mem_range_self z)) l' u' hl'u' + (by rw [hyl]; exact hQline) d hd + (by rw [hyl, hyu, hdir]) + (by rw [image_Icc_reverse_interval hab.le x.val l u hlu.le, himage, + segment_symm ℝ P Q, hyl, hyu]) + rw [hyrange] at hytrue + have horient := hx.orientation_eq_not_of_comp hytrue r + (Set.Icc.continuous_reverse hab.le) (by simp [r, Set.Icc.reverse]) + (by simp [r, Set.Icc.reverse]) rfl + norm_num at horient + · exact hgood + +/-- Removing a supporting chord from a counterclockwise closed BV Jordan path gives the +complementary arc, and closed signed area splits into arc area and the oriented chord area. -/ +theorem exists_rectifiableOrientedArc_of_supportingChord_with_area + {a b : ℝ} {x : ContinuousBVPaths a b} {Γ U : Set Point} + (hab : a < b) (hx : IsOrientedJordanParametrization hab.le Γ true x.val) + (P Q : Point) (hPQ : P ≠ Q) + (hbase : x.val ⟨a, le_rfl, hab.le⟩ ∉ segment ℝ P Q) + (hfrontier : Γ = U ∪ segment ℝ P Q) + (hinter : U ∩ segment ℝ P Q = {P, Q}) + (θ : Real.Angle) (h : ℝ) + (hhalf : Γ ⊆ normalHalfPlane θ h false false) + (hQline : Q ∈ normalLine θ h) (d : ℝ) (hd : 0 < d) + (hdir : P = Q + d • tangentVector θ) : + ∃ A : RectifiableOrientedArc, + A.val.carrier = U ∧ A.val.startPoint = P ∧ A.val.endPoint = Q ∧ + curveAreaFunctional x = jordanArcArea A + segmentArea Q P := by + have hsegment : segment ℝ P Q ⊆ Γ := by + rw [hfrontier] + exact Set.subset_union_right + obtain ⟨l, u, hal, hlu, hub, himage⟩ := + exists_parameter_interval_of_segment_subset_closedJordan + hab hx P Q hPQ hsegment hbase + have hend := endpoints_eq_of_counterclockwise_supporting_chord hab hx l u hlu hub + P Q hPQ himage θ h hhalf hQline d hd hdir + obtain ⟨A, hA, hAstart, hAend, harea⟩ := + exists_rectifiableOrientedArc_of_cut_parametrization_with_area hab.le hx l u hal hlu hub + P Q hend.1 hend.2 hfrontier hinter himage + obtain ⟨B, hBcarrier, hBstart, hBend, hBarea⟩ := + exists_rectifiableOrientedArc_restrict_closedJordan_with_area + hab.le hx l u hlu.le hub + obtain ⟨S, hScarrier, hSstart, hSend, hSarea⟩ := + (segmentArea_jordan_and_frame Q P).1 + have hBcarrier' : B.val.carrier = segment ℝ Q P := by + rw [hBcarrier] + change Set.range (x.val ∘ fun z : Set.Icc (l : ℝ) u ↦ + (⟨z, le_trans l.property.1 z.property.1, + le_trans z.property.2 u.property.2⟩ : Set.Icc a b)) = _ + rw [segment_symm ℝ Q P, ← himage] + ext p + constructor + · rintro ⟨z, rfl⟩ + exact ⟨⟨z, le_trans l.property.1 z.property.1, + le_trans z.property.2 u.property.2⟩, z.property, rfl⟩ + · rintro ⟨z, hz, rfl⟩ + exact ⟨⟨z, hz⟩, rfl⟩ + have hBstart' : B.val.startPoint = Q := hBstart.trans hend.1 + have hBend' : B.val.endPoint = P := hBend.trans hend.2 + have hBSarea : jordanArcArea B = jordanArcArea S := by + change curveAreaFunctional (Classical.choice B.property).path = + curveAreaFunctional (Classical.choice S.property).path + exact (curveArea_reparametrization.2.1 B.val S.val + (Classical.choice B.property) (Classical.choice S.property) + (hBcarrier'.trans hScarrier.symm)).1 + (hBstart'.trans hSstart.symm) (hBend'.trans hSend.symm) + refine ⟨A, hA, hAstart, hAend, ?_⟩ + rw [harea, ← hBarea, hBSarea, hSarea] + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Curve.PositiveGraphOrientation`. +* `Curve.PositiveGraphRegion`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The counterclockwise loop around a positive graph + +For `a < b` and a continuous `f : ℝ → ℝ` vanishing at `a` and `b` and positive on `(a, b)`, +`MovingSofa.positiveGraphLoop` traverses the graph of `f` from `(b, 0)` to `(a, 0)` and then the +base segment from `(a, 0)` back to `(b, 0)`. The main result +`MovingSofa.positiveGraphLoop_counterclockwise` shows that this is a counterclockwise once-traversed +Jordan parametrization whose bounded complementary component is the open subgraph +`{p | a < p 0 ∧ p 0 < b ∧ 0 < p 1 ∧ p 1 < f (p 0)}`. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Traverse the graph from right to left and return along the horizontal axis. -/ +def positiveGraphLoop (a b : ℝ) (f : ℝ → ℝ) (t : Set.Icc (0 : ℝ) 2) : Point := + if t.val ≤ 1 then !₂[b - (b - a) * t.val, f (b - (b - a) * t.val)] + else !₂[a + (b - a) * (t.val - 1), 0] + +/-- Every planar point is built from its two coordinates. -/ +private lemma point_eq_vecNotation_coords (p : Point) : p = !₂[p 0, p 1] := by + ext i + fin_cases i <;> simp + +section PositiveGraph + +variable {a b : ℝ} {f : ℝ → ℝ} + +/-- A positive graph over `[a, b]` vanishing at the ends is nonnegative there. -/ +private lemma nonneg_of_pos_on_Ioo (ha : f a = 0) (hb : f b = 0) + (hpos : ∀ x ∈ Set.Ioo a b, 0 < f x) {c : ℝ} (hc : c ∈ Set.Icc a b) : 0 ≤ f c := by + rcases eq_or_lt_of_le hc.1 with h | h + · rw [← h, ha] + · rcases eq_or_lt_of_le hc.2 with h' | h' + · rw [h', hb] + · exact (hpos c ⟨h, h'⟩).le + +/-- Such a graph vanishes only at the two endpoints. -/ +private lemma eq_endpoint_of_apply_eq_zero (hpos : ∀ x ∈ Set.Ioo a b, 0 < f x) + {c : ℝ} (hc : c ∈ Set.Icc a b) (h : f c = 0) : c = a ∨ c = b := by + by_contra hcon + push Not at hcon + exact (hpos c ⟨lt_of_le_of_ne hc.1 (Ne.symm hcon.1), lt_of_le_of_ne hc.2 hcon.2⟩).ne' h + +/-- The reversed affine reparametrization of `[0, 1]` lands in the base interval `[a, b]`. -/ +private lemma sub_mul_mem_Icc (hab : a < b) {s : ℝ} (hs : s ∈ Set.Icc (0 : ℝ) 1) : + b - (b - a) * s ∈ Set.Icc a b := by + obtain ⟨h0, h1⟩ := hs + constructor <;> nlinarith [sub_pos.mpr hab] + +/-- On the first half of the parameter interval the loop traverses the graph right to left. -/ +lemma positiveGraphLoop_apply_of_le {s : ℝ} (hs : s ∈ Set.Icc (0 : ℝ) 2) (h : s ≤ 1) : + positiveGraphLoop a b f ⟨s, hs⟩ = !₂[b - (b - a) * s, f (b - (b - a) * s)] := + ite_eq_left h + +/-- On the second half of the parameter interval the loop traverses the base left to right. -/ +lemma positiveGraphLoop_apply_of_not_le {s : ℝ} (hs : s ∈ Set.Icc (0 : ℝ) 2) + (h : ¬ s ≤ 1) : positiveGraphLoop a b f ⟨s, hs⟩ = !₂[a + (b - a) * (s - 1), 0] := + ite_eq_right h + +/-- Values of the loop on the base half, including the joining parameter. -/ +private lemma positiveGraphLoop_apply_base (ha : f a = 0) {u : ℝ} (hu : u ∈ Set.Icc (0 : ℝ) 2) + (h1 : 1 ≤ u) : positiveGraphLoop a b f ⟨u, hu⟩ = !₂[a + (b - a) * (u - 1), 0] := by + by_cases h : u ≤ 1 + · have hu1 : u = 1 := le_antisymm h h1 + rw [positiveGraphLoop_apply_of_le hu h, show b - (b - a) * u = a by rw [hu1]; ring, ha, + show a + (b - a) * (u - 1) = a by rw [hu1]; ring] + · exact positiveGraphLoop_apply_of_not_le hu h + +/-- The two halves agree at the joining parameter, so the loop is continuous. -/ +private lemma continuous_positiveGraphLoop (hab : a < b) (hf : ContinuousOn f (Set.Icc a b)) + (ha : f a = 0) : Continuous (positiveGraphLoop a b f) := by + unfold positiveGraphLoop + apply continuous_if_le continuous_subtype_val continuous_const + · refine (PiLp.continuous_toLp (2 : ENNReal) fun _ : Fin 2 ↦ ℝ).comp_continuousOn + (ContinuousOn.matrixVecCons (by fun_prop) + (ContinuousOn.matrixVecCons (hf.comp (by fun_prop) ?_) continuousOn_const)) + intro t ht + exact sub_mul_mem_Icc hab ⟨t.property.1, ht⟩ + · exact (PiLp.continuous_toLp (2 : ENNReal) fun _ : Fin 2 ↦ ℝ).comp_continuousOn + (ContinuousOn.matrixVecCons (by fun_prop) + (ContinuousOn.matrixVecCons continuousOn_const continuousOn_const)) + · intro t ht + have h1 : b - (b - a) * (t : ℝ) = a := by rw [ht]; ring + have h2 : a + (b - a) * ((t : ℝ) - 1) = a := by rw [ht]; ring + rw [h1, h2, ha] + +/-- The loop traces exactly the graph of `f` together with the base segment. -/ +private lemma range_positiveGraphLoop (hab : a < b) (ha : f a = 0) : + Set.range (positiveGraphLoop a b f) = + (fun c ↦ (!₂[c, f c] : Point)) '' Set.Icc a b ∪ + (fun c ↦ (!₂[c, (0 : ℝ)] : Point)) '' Set.Icc a b := by + have hL : (0 : ℝ) < b - a := sub_pos.mpr hab + apply Set.Subset.antisymm + · rintro _ ⟨⟨s, hs⟩, rfl⟩ + obtain ⟨h0, h2⟩ := hs + by_cases h : s ≤ 1 + · exact Or.inl ⟨_, sub_mul_mem_Icc hab ⟨h0, h⟩, (positiveGraphLoop_apply_of_le _ h).symm⟩ + · push Not at h + exact Or.inr ⟨_, ⟨by nlinarith, by nlinarith⟩, + (positiveGraphLoop_apply_of_not_le _ (not_le.mpr h)).symm⟩ + · rintro p (⟨c, hc, rfl⟩ | ⟨c, hc, rfl⟩) + · have h1 : (b - c) / (b - a) ≤ 1 := (div_le_one hL).mpr (by linarith [hc.1]) + have h0 : 0 ≤ (b - c) / (b - a) := div_nonneg (by linarith [hc.2]) hL.le + have hmem : (b - c) / (b - a) ∈ Set.Icc (0 : ℝ) 2 := ⟨h0, by linarith⟩ + refine ⟨⟨(b - c) / (b - a), hmem⟩, ?_⟩ + rw [positiveGraphLoop_apply_of_le hmem h1, + show b - (b - a) * ((b - c) / (b - a)) = c by field_simp; ring] + · by_cases hca : c = a + · have hmem : (1 : ℝ) ∈ Set.Icc (0 : ℝ) 2 := by norm_num + refine ⟨⟨1, hmem⟩, ?_⟩ + rw [positiveGraphLoop_apply_of_le hmem le_rfl, + show b - (b - a) * (1 : ℝ) = a by ring, ha, hca] + · have hac : a < c := lt_of_le_of_ne hc.1 (Ne.symm hca) + have h0 : 0 < (c - a) / (b - a) := div_pos (by linarith) hL + have h1 : (c - a) / (b - a) ≤ 1 := (div_le_one hL).mpr (by linarith [hc.2]) + have hmem : 1 + (c - a) / (b - a) ∈ Set.Icc (0 : ℝ) 2 := ⟨by linarith, by linarith⟩ + refine ⟨⟨1 + (c - a) / (b - a), hmem⟩, ?_⟩ + rw [positiveGraphLoop_apply_of_not_le hmem (by simp; linarith), + show a + (b - a) * (1 + (c - a) / (b - a) - 1) = c by field_simp; ring] + +/-- The loop is injective before its final parameter: the two halves meet only at the ends. -/ +private lemma injOn_positiveGraphLoop (hab : a < b) + (hpos : ∀ x ∈ Set.Ioo a b, 0 < f x) : + Set.InjOn (positiveGraphLoop a b f) {t | (t : ℝ) < 2} := by + have hL : (0 : ℝ) < b - a := sub_pos.mpr hab + rintro ⟨s, hs⟩ hs2 ⟨u, hu⟩ hu2 heq + simp only [Set.mem_ofPred_eq] at hs2 hu2 + refine Subtype.ext (show s = u from ?_) + by_cases hsl : s ≤ 1 <;> by_cases hul : u ≤ 1 + · rw [positiveGraphLoop_apply_of_le hs hsl, positiveGraphLoop_apply_of_le hu hul] at heq + simp only [WithLp.toLp.injEq, Matrix.vecCons_inj, and_true] at heq + have h := heq.1 + nlinarith + · exfalso + rw [positiveGraphLoop_apply_of_le hs hsl, positiveGraphLoop_apply_of_not_le hu hul] at heq + simp only [WithLp.toLp.injEq, Matrix.vecCons_inj, and_true] at heq + push Not at hul + rcases eq_endpoint_of_apply_eq_zero hpos (sub_mul_mem_Icc hab ⟨hs.1, hsl⟩) heq.2 with h | h + · rw [h] at heq + nlinarith [heq.1] + · rw [h] at heq + nlinarith [heq.1] + · exfalso + rw [positiveGraphLoop_apply_of_not_le hs hsl, positiveGraphLoop_apply_of_le hu hul] at heq + simp only [WithLp.toLp.injEq, Matrix.vecCons_inj, and_true] at heq + push Not at hsl + rcases eq_endpoint_of_apply_eq_zero hpos (sub_mul_mem_Icc hab ⟨hu.1, hul⟩) heq.2.symm with h | h + · rw [h] at heq + nlinarith [heq.1] + · rw [h] at heq + nlinarith [heq.1] + · rw [positiveGraphLoop_apply_of_not_le hs hsl, positiveGraphLoop_apply_of_not_le hu hul] at heq + simp only [WithLp.toLp.injEq, Matrix.vecCons_inj, and_true] at heq + nlinarith [heq] + +/-- The graph arc and the base arc share exactly their endpoints, so they glue to a Jordan +curve. -/ +private lemma isJordanCurve_range_positiveGraphLoop (hab : a < b) + (hf : ContinuousOn f (Set.Icc a b)) (ha : f a = 0) (hb : f b = 0) + (hpos : ∀ x ∈ Set.Ioo a b, 0 < f x) : + IsJordanCurve (Set.range (positiveGraphLoop a b f)) := by + have hL : (0 : ℝ) < b - a := sub_pos.mpr hab + have hmapsto : ∀ u : unitInterval, b - (b - a) * (u : ℝ) ∈ Set.Icc a b := + fun u ↦ sub_mul_mem_Icc hab u.property + have hcontf : Continuous fun u : unitInterval ↦ f (b - (b - a) * (u : ℝ)) := + continuousOn_univ.mp (hf.comp (by fun_prop) fun u _ ↦ hmapsto u) + have hcontx : Continuous fun u : unitInterval ↦ b - (b - a) * (u : ℝ) := by fun_prop + let γ : Path (!₂[b, (0 : ℝ)] : Point) (!₂[a, (0 : ℝ)] : Point) := + { toFun := fun u ↦ !₂[b - (b - a) * (u : ℝ), f (b - (b - a) * (u : ℝ))] + continuous_toFun := (PiLp.continuous_toLp (2 : ENNReal) fun _ : Fin 2 ↦ ℝ).comp + (hcontx.matrixVecCons (hcontf.matrixVecCons continuous_const)) + source' := by norm_num [hb] + target' := by norm_num [ha] } + let δ : Path (!₂[b, (0 : ℝ)] : Point) (!₂[a, (0 : ℝ)] : Point) := + { toFun := fun u ↦ !₂[b - (b - a) * (u : ℝ), (0 : ℝ)] + continuous_toFun := (PiLp.continuous_toLp (2 : ENNReal) fun _ : Fin 2 ↦ ℝ).comp + (hcontx.matrixVecCons (continuous_const.matrixVecCons continuous_const)) + source' := by norm_num + target' := by norm_num } + have hparam : ∀ {u v : unitInterval}, + b - (b - a) * (u : ℝ) = b - (b - a) * (v : ℝ) → u = v := + fun h ↦ Subtype.ext (by nlinarith) + have hcoords : ∀ {x y u v : ℝ}, (!₂[x, y] : Point) = !₂[u, v] → x = u ∧ y = v := by + intro x y u v h + simpa only [WithLp.toLp.injEq, Matrix.vecCons_inj, and_true] using h + have hγinj : Function.Injective γ := fun u v h ↦ hparam (hcoords h).1 + have hδinj : Function.Injective δ := fun u v h ↦ hparam (hcoords h).1 + have hparam_surj : ∀ c ∈ Set.Icc a b, ∃ u : unitInterval, b - (b - a) * (u : ℝ) = c := by + intro c hc + have h0 : 0 ≤ (b - c) / (b - a) := div_nonneg (by linarith [hc.2]) hL.le + have h1 : (b - c) / (b - a) ≤ 1 := (div_le_one hL).mpr (by linarith [hc.1]) + exact ⟨⟨(b - c) / (b - a), h0, h1⟩, by field_simp; ring⟩ + have hrangeγ : Set.range γ = (fun c ↦ (!₂[c, f c] : Point)) '' Set.Icc a b := by + apply Set.Subset.antisymm + · rintro _ ⟨u, rfl⟩ + exact ⟨_, hmapsto u, rfl⟩ + · rintro _ ⟨c, hc, rfl⟩ + obtain ⟨u, hu⟩ := hparam_surj c hc + exact ⟨u, by change (!₂[_, f _] : Point) = _; rw [hu]⟩ + have hrangeδ : Set.range δ = (fun c ↦ (!₂[c, (0 : ℝ)] : Point)) '' Set.Icc a b := by + apply Set.Subset.antisymm + · rintro _ ⟨u, rfl⟩ + exact ⟨_, hmapsto u, rfl⟩ + · rintro _ ⟨c, hc, rfl⟩ + obtain ⟨u, hu⟩ := hparam_surj c hc + exact ⟨u, by change (!₂[_, (0 : ℝ)] : Point) = _; rw [hu]⟩ + have hmeet : Set.range γ ∩ Set.range δ = + {(!₂[b, (0 : ℝ)] : Point), (!₂[a, (0 : ℝ)] : Point)} := by + apply Set.Subset.antisymm + · rintro z ⟨⟨u, rfl⟩, ⟨v, hv⟩⟩ + have hcoord := hcoords + (show (!₂[b - (b - a) * (u : ℝ), f (b - (b - a) * (u : ℝ))] : Point) = + !₂[b - (b - a) * (v : ℝ), (0 : ℝ)] from hv.symm) + rcases eq_endpoint_of_apply_eq_zero hpos (hmapsto u) hcoord.2 with h | h + · have hu1 : u = 1 := Subtype.ext (by simpa using show (u : ℝ) = 1 by nlinarith) + exact Or.inr (by rw [show (γ u : Point) = γ 1 from congrArg _ hu1, γ.target]; rfl) + · have hu0 : u = 0 := Subtype.ext (by simpa using show (u : ℝ) = 0 by nlinarith) + exact Or.inl (by rw [show (γ u : Point) = γ 0 from congrArg _ hu0, γ.source]) + · rintro z (rfl | rfl) + · exact ⟨⟨0, γ.source⟩, ⟨0, δ.source⟩⟩ + · exact ⟨⟨1, γ.target⟩, ⟨1, δ.target⟩⟩ + have htau := TauCeti.isJordanCurve_range_union_range_of_inter_eq_pair hγinj hδinj hmeet + rw [range_positiveGraphLoop hab ha, ← hrangeγ, ← hrangeδ] + obtain ⟨e⟩ := htau + refine ⟨fun z ↦ (e.symm z : Point), continuous_subtype_val.comp e.symm.continuous, + fun z w h ↦ e.symm.injective (Subtype.ext h), Set.Subset.antisymm ?_ ?_⟩ + · rintro z ⟨w, rfl⟩ + exact (e.symm w).property + · intro z hz + exact ⟨e ⟨z, hz⟩, congrArg Subtype.val (e.symm_apply_apply ⟨z, hz⟩)⟩ + +/-- The loop lies in the closed upper half-plane and traverses the supporting base segment in the +positive tangent direction, so it is counterclockwise. -/ +private lemma isOrientedJordanParametrization_positiveGraphLoop (hab : a < b) + (hf : ContinuousOn f (Set.Icc a b)) (ha : f a = 0) (hb : f b = 0) + (hpos : ∀ x ∈ Set.Ioo a b, 0 < f x) : + IsOrientedJordanParametrization (by norm_num : (0 : ℝ) ≤ 2) + (Set.range (positiveGraphLoop a b f)) true (positiveGraphLoop a b f) := by + have hL : (0 : ℝ) < b - a := sub_pos.mpr hab + set θ : Real.Angle := ((-(Real.pi / 2) : ℝ) : Real.Angle) with hθ + have hN : normalVector θ = !₂[(0 : ℝ), -1] := by + ext i + fin_cases i <;> simp [normalVector, frame, hθ, Real.Angle.cos_coe, Real.Angle.sin_coe] + have hT : tangentVector θ = !₂[(1 : ℝ), 0] := by + ext i + fin_cases i <;> simp [tangentVector, frame, hθ, Real.Angle.cos_coe, Real.Angle.sin_coe] + have hinner : ∀ p : Point, inner ℝ p (normalVector θ) = -p 1 := by + intro p + rw [hN] + simp [PiLp.inner_apply, Fin.sum_univ_two] + have hone : positiveGraphLoop a b f ⟨1, by norm_num⟩ = !₂[a, (0 : ℝ)] := by + rw [positiveGraphLoop_apply_base ha (by norm_num) le_rfl] + norm_num + have htwo : positiveGraphLoop a b f ⟨2, by norm_num⟩ = !₂[b, (0 : ℝ)] := by + rw [positiveGraphLoop_apply_base ha (by norm_num) (by norm_num)] + norm_num + refine jordan_counterclockwise_of_supporting_segment 0 2 (by norm_num) _ + (continuous_positiveGraphLoop hab hf ha) + (isJordanCurve_range_positiveGraphLoop hab hf ha hb hpos) ?_ + (injOn_positiveGraphLoop hab hpos) θ 0 ?_ ⟨1, by norm_num⟩ ⟨2, by norm_num⟩ + (Subtype.mk_lt_mk.mpr (by norm_num)) ?_ (b - a) hL ?_ ?_ + · rw [positiveGraphLoop_apply_of_le (by norm_num) (by norm_num), + positiveGraphLoop_apply_base ha (by norm_num) (by norm_num)] + norm_num [hb] + · intro t + simp only [normalHalfPlane, Bool.false_eq_true, ↓reduceIte, Set.mem_ofPred_eq, hinner, + neg_nonpos] + obtain ⟨s, hs⟩ := t + by_cases h : s ≤ 1 + · rw [positiveGraphLoop_apply_of_le hs h] + exact nonneg_of_pos_on_Ioo ha hb hpos (sub_mul_mem_Icc hab ⟨hs.1, h⟩) + · rw [positiveGraphLoop_apply_of_not_le hs h] + exact le_rfl + · simp only [normalLine, Set.mem_ofPred_eq, hinner, hone] + norm_num + · rw [hone, htwo, hT] + ext i + fin_cases i <;> simp + · rw [hone, htwo, segment_eq_image] + apply Set.Subset.antisymm + · rintro _ ⟨⟨u, hu⟩, hmem, rfl⟩ + have h1 : (1 : ℝ) ≤ u := hmem.1 + have h2 : u ≤ 2 := hmem.2 + refine ⟨u - 1, ⟨by linarith, by linarith⟩, ?_⟩ + rw [positiveGraphLoop_apply_base ha hu h1] + ext i + fin_cases i + · simp + ring + · simp + · rintro _ ⟨c, hc, rfl⟩ + have hmem : 1 + c ∈ Set.Icc (0 : ℝ) 2 := ⟨by linarith [hc.1], by linarith [hc.2]⟩ + refine ⟨⟨1 + c, hmem⟩, ⟨Subtype.mk_le_mk.mpr (by linarith [hc.1]), + Subtype.mk_le_mk.mpr (by linarith [hc.2])⟩, ?_⟩ + rw [positiveGraphLoop_apply_base ha hmem (by linarith [hc.1])] + ext i + fin_cases i + · simp + ring + · simp + +/-- The positive subgraph is open, connected, bounded and relatively closed in the complement of +the loop, hence it is the bounded complementary component. -/ +private lemma jordanInterior_range_positiveGraphLoop_of_components (hab : a < b) + (hf : ContinuousOn f (Set.Icc a b)) (ha : f a = 0) (hb : f b = 0) + (hpos : ∀ x ∈ Set.Ioo a b, 0 < f x) : + jordanInterior (Set.range (positiveGraphLoop a b f)) = + {p : Point | a < p 0 ∧ p 0 < b ∧ 0 < p 1 ∧ p 1 < f (p 0)} := by + set Γ := Set.range (positiveGraphLoop a b f) with hΓ + set U : Set Point := {p : Point | a < p 0 ∧ p 0 < b ∧ 0 < p 1 ∧ p 1 < f (p 0)} with hU + set K : Set Point := {p : Point | a ≤ p 0 ∧ p 0 ≤ b ∧ 0 ≤ p 1 ∧ p 1 ≤ f (p 0)} with hK + have hrange : Γ = (fun c ↦ (!₂[c, f c] : Point)) '' Set.Icc a b ∪ + (fun c ↦ (!₂[c, (0 : ℝ)] : Point)) '' Set.Icc a b := range_positiveGraphLoop hab ha + have hUK : U ⊆ K := fun p hp ↦ ⟨hp.1.le, hp.2.1.le, hp.2.2.1.le, hp.2.2.2.le⟩ + have hUΓ : U ⊆ Γᶜ := by + intro p hp hpΓ + rw [hrange] at hpΓ + rcases hpΓ with ⟨c, _, hc⟩ | ⟨c, _, hc⟩ + · exact absurd hp.2.2.2 (by rw [← hc]; simp) + · exact absurd hp.2.2.1 (by rw [← hc]; simp) + have hKΓU : ∀ p ∈ K, p ∉ Γ → p ∈ U := by + intro p hp hpΓ + rw [hrange] at hpΓ + have hpc : p = !₂[p 0, p 1] := point_eq_vecNotation_coords p + have h1 : p 1 ≠ 0 := fun h0 ↦ hpΓ (Or.inr ⟨p 0, ⟨hp.1, hp.2.1⟩, + show (!₂[p 0, (0 : ℝ)] : Point) = p by rw [← h0]; exact hpc.symm⟩) + have h2 : p 1 ≠ f (p 0) := fun heq ↦ hpΓ (Or.inl ⟨p 0, ⟨hp.1, hp.2.1⟩, + show (!₂[p 0, f (p 0)] : Point) = p by rw [← heq]; exact hpc.symm⟩) + have h3 : 0 < p 1 := lt_of_le_of_ne hp.2.2.1 (Ne.symm h1) + have h4 : p 1 < f (p 0) := lt_of_le_of_ne hp.2.2.2 h2 + refine ⟨?_, ?_, h3, h4⟩ + · rcases eq_or_lt_of_le hp.1 with h | h + · rw [← h, ha] at h4 + linarith + · exact h + · rcases eq_or_lt_of_le hp.2.1 with h | h + · rw [h, hb] at h4 + linarith + · exact h + have hcoord0 : Continuous fun q : Point ↦ q 0 := by fun_prop + have hcoord1 : Continuous fun q : Point ↦ q 1 := by fun_prop + have hUopen : IsOpen U := by + rw [isOpen_iff_mem_nhds] + rintro p ⟨h1, h2, h3, h4⟩ + have hfat : ContinuousAt f (p 0) := + (hf.mono Set.Ioo_subset_Icc_self).continuousAt (Ioo_mem_nhds h1 h2) + have hfcoord : ContinuousAt (fun q : Point ↦ f (q 0)) p := + ContinuousAt.comp (g := f) (f := fun q : Point ↦ q 0) (x := p) hfat hcoord0.continuousAt + have hgap : ContinuousAt (fun q : Point ↦ f (q 0) - q 1) p := + hfcoord.sub hcoord1.continuousAt + filter_upwards [hcoord0.continuousAt (isOpen_Ioo.mem_nhds (⟨h1, h2⟩ : p 0 ∈ Set.Ioo a b)), + hcoord1.continuousAt (isOpen_Ioi.mem_nhds (show p 1 ∈ Set.Ioi (0 : ℝ) from h3)), + hgap (isOpen_Ioi.mem_nhds (show f (p 0) - p 1 ∈ Set.Ioi (0 : ℝ) from sub_pos.mpr h4))] + with q hq1 hq2 hq3 + exact ⟨hq1.1, hq1.2, hq2, by simpa using sub_pos.mp hq3⟩ + have hSclosed : IsClosed {q : Point | q 0 ∈ Set.Icc a b} := isClosed_Icc.preimage hcoord0 + have hKclosed : IsClosed K := by + have hgS : ContinuousOn (fun q : Point ↦ f (q 0) - q 1) {q : Point | q 0 ∈ Set.Icc a b} := + (hf.comp hcoord0.continuousOn fun q hq ↦ hq).sub hcoord1.continuousOn + have hone := hgS.preimage_isClosed_of_isClosed hSclosed (isClosed_Ici (a := (0 : ℝ))) + have htwo : IsClosed {q : Point | 0 ≤ q 1} := isClosed_Ici.preimage hcoord1 + have hsplit : K = ({q : Point | q 0 ∈ Set.Icc a b} ∩ + (fun q : Point ↦ f (q 0) - q 1) ⁻¹' Set.Ici 0) ∩ {q : Point | 0 ≤ q 1} := by + ext q + simp only [hK, Set.mem_ofPred_eq, Set.mem_inter_iff, Set.mem_Icc, Set.mem_preimage, + Set.mem_Ici, sub_nonneg] + tauto + rw [hsplit] + exact hone.inter htwo + have hUconn : IsConnected U := by + have hfcomp : ContinuousOn (fun q : ℝ × ℝ ↦ f q.1) (Set.Ioo a b ×ˢ Set.Ioo (0 : ℝ) 1) := + (hf.mono Set.Ioo_subset_Icc_self).comp continuous_fst.continuousOn fun q hq ↦ hq.1 + have hmap : ContinuousOn (fun q : ℝ × ℝ ↦ (!₂[q.1, q.2 * f q.1] : Point)) + (Set.Ioo a b ×ˢ Set.Ioo (0 : ℝ) 1) := + (PiLp.continuous_toLp (2 : ENNReal) fun _ : Fin 2 ↦ ℝ).comp_continuousOn + (continuous_fst.continuousOn.matrixVecCons + ((continuous_snd.continuousOn.mul hfcomp).matrixVecCons continuousOn_const)) + have hset : U = (fun q : ℝ × ℝ ↦ (!₂[q.1, q.2 * f q.1] : Point)) '' + (Set.Ioo a b ×ˢ Set.Ioo (0 : ℝ) 1) := by + apply Set.Subset.antisymm + · rintro p ⟨h1, h2, h3, h4⟩ + have hfpos : 0 < f (p 0) := h3.trans h4 + refine ⟨(p 0, p 1 / f (p 0)), ⟨⟨h1, h2⟩, div_pos h3 hfpos, + (div_lt_one hfpos).mpr h4⟩, ?_⟩ + change (!₂[p 0, p 1 / f (p 0) * f (p 0)] : Point) = p + rw [div_mul_cancel₀ _ hfpos.ne'] + exact (point_eq_vecNotation_coords p).symm + · rintro _ ⟨⟨c, r⟩, ⟨⟨hc1, hc2⟩, hr1, hr2⟩, rfl⟩ + have hfc : 0 < f c := hpos c ⟨hc1, hc2⟩ + refine ⟨by simpa using hc1, by simpa using hc2, by simpa using mul_pos hr1 hfc, ?_⟩ + change r * f c < f c + nlinarith + rw [hset] + exact ((isConnected_Ioo hab).prod (isConnected_Ioo (by norm_num))).image _ hmap + obtain ⟨c₀, -, hmax⟩ := isCompact_Icc.exists_isMaxOn (Set.nonempty_Icc.mpr hab.le) hf + have hKbdd : Bornology.IsBounded K := + (EuclideanSpace.isBounded_coordinate_rectangle a b 0 (f c₀)).subset (by + rintro p ⟨h1, h2, h3, h4⟩ + exact ⟨h1, h2, h3, h4.trans (hmax ⟨h1, h2⟩)⟩) + have hUbdd : Bornology.IsBounded U := hKbdd.subset hUK + have hcompU : ∀ p ∈ U, connectedComponentIn Γᶜ p = U := by + intro p hp + have hsub : connectedComponentIn Γᶜ p ⊆ Γᶜ := connectedComponentIn_subset _ _ + refine Set.Subset.antisymm ?_ (hUconn.isPreconnected.subset_connectedComponentIn hp hUΓ) + have hcover : connectedComponentIn Γᶜ p ⊆ U ∪ Kᶜ := by + intro q hq + by_cases hqK : q ∈ K + · exact Or.inl (hKΓU q hqK (hsub hq)) + · exact Or.inr hqK + have hmeet : (connectedComponentIn Γᶜ p ∩ U).Nonempty := + ⟨p, mem_connectedComponentIn (hUΓ hp), hp⟩ + have hempty : ¬ (connectedComponentIn Γᶜ p ∩ Kᶜ).Nonempty := by + intro hk + obtain ⟨z, hz⟩ := isPreconnected_connectedComponentIn U Kᶜ hUopen + hKclosed.isOpen_compl hcover hmeet hk + exact hz.2.2 (hUK hz.2.1) + intro q hq + by_contra hqU + exact hempty ⟨q, hq, fun hqK ↦ hqU (hKΓU q hqK (hsub hq))⟩ + obtain ⟨p₀, hp₀⟩ := hUconn.nonempty + obtain ⟨U', V', -, -, -, -, -, hV'ub, -, hcover, -, -, hcU, hcV⟩ := + jordan_separation (isJordanCurve_range_positiveGraphLoop hab hf ha hb hpos) + have hp₀U' : p₀ ∈ U' := by + rcases hcover.symm.subset (hUΓ hp₀) with h | h + · exact h + · exact absurd (by rw [← hcV p₀ h, hcompU p₀ hp₀]; exact hUbdd) hV'ub + have hU'eq : U' = U := by rw [← hcU p₀ hp₀U', hcompU p₀ hp₀] + ext p + constructor + · rintro ⟨hpΓ, hpb⟩ + rcases hcover.symm.subset hpΓ with h | h + · rwa [← hU'eq] + · exact absurd (by rwa [← hcV p h]) hV'ub + · intro hp + exact ⟨hUΓ hp, by rw [hcompU p hp]; exact hUbdd⟩ + +end PositiveGraph + +theorem positiveGraphLoop_counterclockwise (a b : ℝ) (hab : a < b) (f : ℝ → ℝ) + (hf : ContinuousOn f (Set.Icc a b)) (ha : f a = 0) (hb : f b = 0) + (hpos : ∀ x ∈ Set.Ioo a b, 0 < f x) : + IsOrientedJordanParametrization (by norm_num : (0 : ℝ) ≤ 2) + (Set.range (positiveGraphLoop a b f)) true (positiveGraphLoop a b f) ∧ + jordanInterior (Set.range (positiveGraphLoop a b f)) = + {p : Point | a < p 0 ∧ p 0 < b ∧ 0 < p 1 ∧ p 1 < f (p 0)} := + ⟨isOrientedJordanParametrization_positiveGraphLoop hab hf ha hb hpos, + jordanInterior_range_positiveGraphLoop_of_components hab hf ha hb hpos⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The region enclosed by the counterclockwise loop around a positive graph + +`MovingSofa.positiveGraphLoop_counterclockwise` identifies the bounded complementary component +of the loop around the graph of a positive `f` with the open subgraph of `f`. This file records +the resulting description of the closed subgraph: the loop traces exactly the frontier of either +region, and the closed subgraph is the open one together with that frontier. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +variable {a b : ℝ} {f : ℝ → ℝ} (hab : a < b) (hf : ContinuousOn f (Set.Icc a b)) + (ha : f a = 0) (hb : f b = 0) (hpos : ∀ x ∈ Set.Ioo a b, 0 < f x) + +include hab hf ha hb hpos + +/-- The bounded complementary component of the positive-graph loop is the open subgraph. -/ +theorem jordanInterior_range_positiveGraphLoop : + jordanInterior (Set.range (positiveGraphLoop a b f)) = openSubgraph a b f := + (positiveGraphLoop_counterclockwise a b hab f hf ha hb hpos).2 + +/-- The positive-graph loop traces the frontier of the open subgraph. -/ +theorem frontier_openSubgraph : + frontier (openSubgraph a b f) = Set.range (positiveGraphLoop a b f) := by + rw [← jordanInterior_range_positiveGraphLoop hab hf ha hb hpos] + exact (positiveGraphLoop_counterclockwise a b hab f hf ha hb + hpos).1.2.1.frontier_jordanInterior + +/-- The part of the closed subgraph outside the open one is exactly the loop. -/ +theorem closedSubgraph_sdiff_openSubgraph : + closedSubgraph a b f \ openSubgraph a b f = Set.range (positiveGraphLoop a b f) := by + rw [← frontier_openSubgraph hab hf ha hb hpos, frontier, (isOpen_openSubgraph hf).interior_eq, + closure_openSubgraph hab hf ha hb hpos] + +/-- The closed subgraph is the open subgraph together with the loop. -/ +theorem closedSubgraph_eq_openSubgraph_union_range : + closedSubgraph a b f = openSubgraph a b f ∪ Set.range (positiveGraphLoop a b f) := by + rw [← closedSubgraph_sdiff_openSubgraph hab hf ha hb hpos] + exact (Set.union_sdiff_cancel openSubgraph_subset_closedSubgraph).symm + +/-- The positive-graph loop also traces the frontier of the closed subgraph. -/ +theorem frontier_closedSubgraph : + frontier (closedSubgraph a b f) = Set.range (positiveGraphLoop a b f) := by + rw [frontier, (isClosed_closedSubgraph hf).closure_eq, interior_closedSubgraph hf ha hb, + closedSubgraph_sdiff_openSubgraph hab hf ha hb hpos] + +end MovingSofa + +end + +end + +end + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/Development/Geometry/Foundations/Development004.lean b/LeanPool/MovingSofa/Development/Geometry/Foundations/Development004.lean new file mode 100644 index 0000000000..a88cdcdf21 --- /dev/null +++ b/LeanPool/MovingSofa/Development/Geometry/Foundations/Development004.lean @@ -0,0 +1,849 @@ +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development001 +/-! +# Moving sofa: related mathematical developments + +* `Gerver.Foundations.Development001`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Gerver.AreaCertificate`. +* `Gerver.Area.TrigEnclosure`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Exact rational certificate for the Gerver cap and niche areas + +This module carries the finite, kernel-checkable part of the rational area bounds for +Gerver's sofa: integer interval arithmetic at scale `M = 10 ^ 30`, certified enclosures of +the twenty-two direct parameters and of `π`, interval sine and cosine by the Taylor +recurrence, the grid of rotation angles, the five phase formulas, the support-contact fan +of the cap and the rectangle cover of the niche. + +Everything here is computable and `decide +kernel`-checkable; the two closed numeric +conclusions `capOK_true` and `nicheOK_true` are the only facts the analytic layer in +`MovingSofa.Gerver.Area` needs from this module. +-/ + +/-! ### Integer interval arithmetic at scale `10 ^ 30` + +The kernel accelerates `Int` arithmetic but not `Rat` arithmetic, so the whole finite +calculation is carried out on pairs of integers denoting the interval `[lo / M, hi / M]`. +-/ + +@[expose] public section + +namespace MovingSofa.GerverAreaCert + +/-- The common denominator of every interval endpoint. -/ +def M : ℤ := 10 ^ 30 + +/-- `⟨lo, hi⟩` denotes the real interval `[lo / M, hi / M]`. -/ +structure SI where + /-- The scaled integer lower endpoint. -/ + lo : ℤ + /-- The scaled integer upper endpoint. -/ + hi : ℤ + deriving DecidableEq + +namespace SI + +/-- Kernel-cheap `min` on `ℤ`. -/ +def imin (a b : ℤ) : ℤ := if a ≤ b then a else b +/-- Kernel-cheap `max` on `ℤ`. -/ +def imax (a b : ℤ) : ℤ := if a ≤ b then b else a + +/-- Outward enclosure of `a / b` for `0 < b`. -/ +def ratI (a b : ℤ) : SI := ⟨(a * M) / b, -((-(a * M)) / b)⟩ + +/-- The exact interval `[0, 0]`. -/ +def zero : SI := ⟨0, 0⟩ +/-- The exact interval `[1, 1]`. -/ +def one : SI := ⟨M, M⟩ + +/-- Interval addition. -/ +def add (x y : SI) : SI := ⟨x.lo + y.lo, x.hi + y.hi⟩ +/-- Interval negation. -/ +def neg (x : SI) : SI := ⟨-x.hi, -x.lo⟩ +/-- Interval subtraction. -/ +def sub (x y : SI) : SI := ⟨x.lo - y.hi, x.hi - y.lo⟩ + +/-- Interval multiplication: the extreme endpoint products, rounded outward. -/ +def mul (x y : SI) : SI := + let p₁ := x.lo * y.lo + let p₂ := x.lo * y.hi + let p₃ := x.hi * y.lo + let p₄ := x.hi * y.hi + ⟨imin (imin p₁ p₂) (imin p₃ p₄) / M, + -((-(imax (imax p₁ p₂) (imax p₃ p₄))) / M)⟩ + +/-- Division by a positive integer. -/ +def divn (x : SI) (b : ℤ) : SI := ⟨x.lo / b, -((-x.hi) / b)⟩ + +/-- Multiplication by an integer. -/ +def imul (k : ℤ) (x : SI) : SI := + ⟨imin (k * x.lo) (k * x.hi), imax (k * x.lo) (k * x.hi)⟩ + +/-! #### Real semantics and soundness -/ + +/-- `z` denotes the real interval `[z.lo / M, z.hi / M]`. -/ +def Contains (z : SI) (x : ℝ) : Prop := + (z.lo : ℝ) ≤ (M : ℝ) * x ∧ (M : ℝ) * x ≤ (z.hi : ℝ) + +/-- `imin` is `min`. -/ +theorem imin_eq_min (a b : ℤ) : imin a b = min a b := by + simp only [imin, min_def] + +/-- `imax` is `max`. -/ +theorem imax_eq_max (a b : ℤ) : imax a b = max a b := by + rcases le_total a b with h | h + · simp [imax, h] + · rcases eq_or_lt_of_le h with rfl | hlt + · simp [imax] + · simp [imax, not_le.mpr hlt, max_eq_left h] + +/-- The scale is positive. -/ +theorem Mpos : (0 : ℝ) < (M : ℝ) := by + have : (M : ℤ) = 10 ^ 30 := rfl + rw [this] + norm_num + +private theorem mul_ediv_le (p : ℤ) {b : ℤ} (hb : 0 < b) : b * (p / b) ≤ p := by + have h := Int.mul_ediv_add_emod p b + have h2 : 0 ≤ p % b := Int.emod_nonneg p hb.ne' + linarith + +private theorem le_mul_neg_ediv (p : ℤ) {b : ℤ} (hb : 0 < b) : p ≤ b * -((-p) / b) := by + have h := mul_ediv_le (-p) hb + rw [mul_neg] + linarith + +/-- Integer floor division rounds down in the reals. -/ +theorem ediv_le_of_le {p : ℤ} {b : ℤ} (hb : 0 < b) {r : ℝ} (h : (p : ℝ) ≤ (b : ℝ) * r) : + ((p / b : ℤ) : ℝ) ≤ r := by + have hbR : (0 : ℝ) < (b : ℝ) := by exact_mod_cast hb + have h1 : ((b : ℝ)) * ((p / b : ℤ) : ℝ) ≤ (p : ℝ) := by + exact_mod_cast mul_ediv_le p hb + have := h1.trans h + exact le_of_mul_le_mul_left this hbR + +/-- Integer ceiling division rounds up in the reals. -/ +theorem le_neg_ediv_of_le {p : ℤ} {b : ℤ} (hb : 0 < b) {r : ℝ} (h : (b : ℝ) * r ≤ (p : ℝ)) : + r ≤ ((-((-p) / b) : ℤ) : ℝ) := by + have hbR : (0 : ℝ) < (b : ℝ) := by exact_mod_cast hb + have h1 : (p : ℝ) ≤ (b : ℝ) * ((-((-p) / b) : ℤ) : ℝ) := by + exact_mod_cast le_mul_neg_ediv p hb + exact le_of_mul_le_mul_left (h.trans h1) hbR + +private theorem min_mul_le_mul {l h u v : ℝ} (hl : l ≤ u) (hu : u ≤ h) : + min (l * v) (h * v) ≤ u * v := by + rcases le_total 0 v with hv | hv + · exact (min_le_left _ _).trans (by nlinarith) + · exact (min_le_right _ _).trans (by nlinarith) + +private theorem mul_le_max_mul {l h u v : ℝ} (hl : l ≤ u) (hu : u ≤ h) : + u * v ≤ max (l * v) (h * v) := by + rcases le_total 0 v with hv | hv + · exact le_trans (by nlinarith) (le_max_right _ _) + · exact le_trans (by nlinarith) (le_max_left _ _) + +private theorem min_four_le_mul {l₁ h₁ l₂ h₂ u v : ℝ} + (h1 : l₁ ≤ u) (h2 : u ≤ h₁) (h3 : l₂ ≤ v) (h4 : v ≤ h₂) : + min (min (l₁ * l₂) (l₁ * h₂)) (min (h₁ * l₂) (h₁ * h₂)) ≤ u * v := by + have hA : min (min (l₁ * l₂) (l₁ * h₂)) (min (h₁ * l₂) (h₁ * h₂)) ≤ min (l₁ * l₂) (h₁ * l₂) := + le_min ((min_le_left _ _).trans (min_le_left _ _)) + ((min_le_right _ _).trans (min_le_left _ _)) + have hB : min (min (l₁ * l₂) (l₁ * h₂)) (min (h₁ * l₂) (h₁ * h₂)) ≤ min (l₁ * h₂) (h₁ * h₂) := + le_min ((min_le_left _ _).trans (min_le_right _ _)) + ((min_le_right _ _).trans (min_le_right _ _)) + have h5 : min (min (l₁ * l₂) (l₁ * h₂)) (min (h₁ * l₂) (h₁ * h₂)) ≤ u * l₂ := + hA.trans (min_mul_le_mul h1 h2) + have h6 : min (min (l₁ * l₂) (l₁ * h₂)) (min (h₁ * l₂) (h₁ * h₂)) ≤ u * h₂ := + hB.trans (min_mul_le_mul h1 h2) + have h7 : min (u * l₂) (u * h₂) ≤ u * v := by + simpa [mul_comm] using min_mul_le_mul (l := l₂) (h := h₂) (u := v) (v := u) h3 h4 + exact (le_min h5 h6).trans h7 + +private theorem mul_le_max_four {l₁ h₁ l₂ h₂ u v : ℝ} + (h1 : l₁ ≤ u) (h2 : u ≤ h₁) (h3 : l₂ ≤ v) (h4 : v ≤ h₂) : + u * v ≤ max (max (l₁ * l₂) (l₁ * h₂)) (max (h₁ * l₂) (h₁ * h₂)) := by + have hA : max (l₁ * l₂) (h₁ * l₂) ≤ max (max (l₁ * l₂) (l₁ * h₂)) (max (h₁ * l₂) (h₁ * h₂)) := + max_le ((le_max_left _ _).trans (le_max_left _ _)) + ((le_max_left _ _).trans (le_max_right _ _)) + have hB : max (l₁ * h₂) (h₁ * h₂) ≤ max (max (l₁ * l₂) (l₁ * h₂)) (max (h₁ * l₂) (h₁ * h₂)) := + max_le ((le_max_right _ _).trans (le_max_left _ _)) + ((le_max_right _ _).trans (le_max_right _ _)) + have h7 : u * v ≤ max (u * l₂) (u * h₂) := by + simpa [mul_comm] using mul_le_max_mul (l := l₂) (h := h₂) (u := v) (v := u) h3 h4 + exact h7.trans (max_le ((mul_le_max_mul h1 h2).trans hA) ((mul_le_max_mul h1 h2).trans hB)) + +/-- Interval addition is sound. -/ +theorem contains_add {x y : SI} {a b : ℝ} (hx : Contains x a) (hy : Contains y b) : + Contains (add x y) (a + b) := by + obtain ⟨hx1, hx2⟩ := hx + obtain ⟨hy1, hy2⟩ := hy + refine ⟨?_, ?_⟩ <;> push_cast [add] <;> nlinarith [Mpos] + +/-- Interval negation is sound. -/ +theorem contains_neg {x : SI} {a : ℝ} (hx : Contains x a) : Contains (neg x) (-a) := by + obtain ⟨hx1, hx2⟩ := hx + refine ⟨?_, ?_⟩ <;> push_cast [neg] <;> nlinarith [Mpos] + +/-- Interval subtraction is sound. -/ +theorem contains_sub {x y : SI} {a b : ℝ} (hx : Contains x a) (hy : Contains y b) : + Contains (sub x y) (a - b) := by + obtain ⟨hx1, hx2⟩ := hx + obtain ⟨hy1, hy2⟩ := hy + refine ⟨?_, ?_⟩ <;> push_cast [sub] <;> nlinarith [Mpos] + +/-- Interval multiplication is sound. -/ +theorem contains_mul {x y : SI} {a b : ℝ} (hx : Contains x a) (hy : Contains y b) : + Contains (mul x y) (a * b) := by + obtain ⟨hx1, hx2⟩ := hx + obtain ⟨hy1, hy2⟩ := hy + have hM := Mpos + have hprod : (M : ℝ) * ((M : ℝ) * (a * b)) = ((M : ℝ) * a) * ((M : ℝ) * b) := by ring + refine ⟨?_, ?_⟩ + · simp only [mul, imin_eq_min, imax_eq_max] + refine ediv_le_of_le (b := M) (by exact_mod_cast hM) ?_ + push_cast + rw [hprod] + exact min_four_le_mul hx1 hx2 hy1 hy2 + · simp only [mul, imin_eq_min, imax_eq_max] + refine le_neg_ediv_of_le (b := M) (by exact_mod_cast hM) ?_ + push_cast + rw [hprod] + exact mul_le_max_four hx1 hx2 hy1 hy2 + +/-- Interval division by a positive integer is sound. -/ +theorem contains_divn {x : SI} {a : ℝ} {b : ℤ} (hb : 0 < b) (hx : Contains x a) : + Contains (divn x b) (a / (b : ℝ)) := by + obtain ⟨hx1, hx2⟩ := hx + have hbR : (0 : ℝ) < (b : ℝ) := by exact_mod_cast hb + have hkey : (b : ℝ) * ((M : ℝ) * (a / (b : ℝ))) = (M : ℝ) * a := by + field_simp + refine ⟨ediv_le_of_le hb ?_, le_neg_ediv_of_le hb ?_⟩ + · rw [hkey]; exact hx1 + · rw [hkey]; exact hx2 + +/-- Interval multiplication by an integer is sound. -/ +theorem contains_imul {x : SI} {a : ℝ} (k : ℤ) (hx : Contains x a) : + Contains (imul k x) ((k : ℝ) * a) := by + obtain ⟨hx1, hx2⟩ := hx + have hkey : (M : ℝ) * ((k : ℝ) * a) = (k : ℝ) * ((M : ℝ) * a) := by ring + refine ⟨?_, ?_⟩ <;> simp only [imul, imin_eq_min, imax_eq_max] <;> push_cast <;> rw [hkey] + · simpa [mul_comm] using min_mul_le_mul (l := (x.lo : ℝ)) (h := (x.hi : ℝ)) + (u := (M : ℝ) * a) (v := (k : ℝ)) hx1 hx2 + · simpa [mul_comm] using mul_le_max_mul (l := (x.lo : ℝ)) (h := (x.hi : ℝ)) + (u := (M : ℝ) * a) (v := (k : ℝ)) hx1 hx2 + +/-- The outward enclosure of a rational is sound. -/ +theorem contains_ratI {a b : ℤ} (hb : 0 < b) : Contains (ratI a b) ((a : ℝ) / (b : ℝ)) := by + have hbR : (0 : ℝ) < (b : ℝ) := by exact_mod_cast hb + have hkey : (b : ℝ) * ((M : ℝ) * ((a : ℝ) / (b : ℝ))) = ((a * M : ℤ) : ℝ) := by + push_cast + field_simp + refine ⟨ediv_le_of_le hb ?_, le_neg_ediv_of_le hb ?_⟩ + · rw [hkey] + · rw [hkey] + +/-- `zero` encloses `0`. -/ +theorem contains_zero : Contains zero 0 := by + constructor <;> simp [zero] + +/-- `one` encloses `1`. -/ +theorem contains_one : Contains one 1 := by + constructor <;> simp [one] + +/-- A left fold of exact interval additions over an initial segment encloses the +corresponding real sum. -/ +theorem contains_foldl_range {f : ℕ → SI} {g : ℕ → ℝ} (n : ℕ) + (hfg : ∀ i < n, Contains (f i) (g i)) : + Contains ((List.range n).foldl (fun acc i => add acc (f i)) zero) + (∑ i ∈ Finset.range n, g i) := by + induction n with + | zero => simpa using contains_zero + | succ n ih => + rw [List.range_succ, List.foldl_append, Finset.sum_range_succ] + exact contains_add (ih fun i hi => hfg i (by omega)) (hfg n (by omega)) + +/-- A left fold of integer additions over an initial segment is the corresponding sum. -/ +theorem foldl_range_int (f : ℕ → ℤ) (n : ℕ) : + (List.range n).foldl (fun acc i => acc + f i) 0 = ∑ i ∈ Finset.range n, f i := by + induction n with + | zero => simp + | succ n ih => rw [List.range_succ, List.foldl_append, Finset.sum_range_succ, ← ih]; simp + +end SI + +open SI + +/-! ### Certified enclosures of the twenty-two parameters and of `π` -/ + +/-- Enclosure of the direct parameter `k₁₁`. -/ +def k11Z : SI := ⟨-210322422072688751416285718490, -210322422072688751416085718490⟩ +/-- Enclosure of the direct parameter `k₁₂`. -/ +def k12Z : SI := ⟨249999999999999999999900000000, 250000000000000000000100000000⟩ +/-- Enclosure of the direct parameter `k₂₁`. -/ +def k21Z : SI := ⟨-919179292771593322274796102890, -919179292771593322274596102890⟩ +/-- Enclosure of the direct parameter `k₂₂`. -/ +def k22Z : SI := ⟨472406619750805465181660762512, 472406619750805465181860762512⟩ +/-- Enclosure of the direct parameter `k₃₁`. -/ +def k31Z : SI := ⟨-613763229430251668555014291320, -613763229430251668554814291320⟩ +/-- Enclosure of the direct parameter `k₃₂`. -/ +def k32Z : SI := ⟨889626479003221860726943050050, 889626479003221860727143050050⟩ +/-- Enclosure of the direct parameter `k₄₁`. -/ +def k41Z : SI := ⟨-308347166088910014835232479740, -308347166088910014835032479740⟩ +/-- Enclosure of the direct parameter `k₄₂`. -/ +def k42Z : SI := ⟨472406619750805465181660762512, 472406619750805465181860762512⟩ +/-- Enclosure of the direct parameter `k₅₁`. -/ +def k51Z : SI := ⟨-1017204036787814585693742864150, -1017204036787814585693542864150⟩ +/-- Enclosure of the direct parameter `k₅₂`. -/ +def k52Z : SI := ⟨249999999999999999999900000000, 250000000000000000000100000000⟩ +/-- Enclosure of the direct parameter `a₁`. -/ +def a1Z : SI := ⟨1210322422072688751416085718500, 1210322422072688751416285718500⟩ +/-- Enclosure of the direct parameter `a₂`. -/ +def a2Z : SI := ⟨-250000000000000000000100000000, -249999999999999999999900000000⟩ +/-- Enclosure of the direct parameter `b₁`. -/ +def b1Z : SI := ⟨-527624598026784624160603809370, -527624598026784624160403809370⟩ +/-- Enclosure of the direct parameter `b₂`. -/ +def b2Z : SI := ⟨920258385160637622893605795010, 920258385160637622893805795010⟩ +/-- Enclosure of the direct parameter `c₁`. -/ +def c1Z : SI := ⟨626045522848465867552229310386, 626045522848465867552429310386⟩ +/-- Enclosure of the direct parameter `c₂`. -/ +def c2Z : SI := ⟨-944750803946430751679092381250, -944750803946430751678892381250⟩ +/-- Enclosure of the direct parameter `d₁`. -/ +def d1Z : SI := ⟨1313022761424232933776064655200, 1313022761424232933776264655200⟩ +/-- Enclosure of the direct parameter `d₂`. -/ +def d2Z : SI := ⟨-525382670414554437202936294305, -525382670414554437202736294305⟩ +/-- Enclosure of the direct parameter `e₁`. -/ +def e1Z : SI := ⟨1210322422072688751416085718500, 1210322422072688751416285718500⟩ +/-- Enclosure of the direct parameter `e₂`. -/ +def e2Z : SI := ⟨249999999999999999999900000000, 250000000000000000000100000000⟩ +/-- Enclosure of the first stage angle `φ`. -/ +def phiZ : SI := ⟨39177364790083641863217874980, 39177364790083641863217875500⟩ +/-- Enclosure of the second stage angle `θ`. -/ +def thetaZ : SI := ⟨681301509382724894473855754540, 681301509382724894473855759660⟩ + +/-- The integer enclosure of `π`, from the certified Machin arctangent sums. -/ +def piZ : SI := ⟨3141592653589793238462643383279, 3141592653589793238462643383280⟩ + +/-- The integer enclosure of `π / 2`. -/ +def piHalfZ : SI := divn piZ 2 + +/-! #### The parameter enclosures are the certified box rows -/ + +private theorem le_M_mul {c n : ℤ} {d : ℕ} (hd : 0 < (d : ℤ)) (hc : c * (d : ℤ) = n * M) + {x : ℝ} (h : (n : ℝ) / (d : ℝ) ≤ x) : (c : ℝ) ≤ (M : ℝ) * x := by + have hdR : (0 : ℝ) < (d : ℝ) := by exact_mod_cast hd + have hcR : (c : ℝ) * (d : ℝ) = (n : ℝ) * (M : ℝ) := by exact_mod_cast hc + rw [div_le_iff₀ hdR] at h + nlinarith [SI.Mpos, h, hcR] + +private theorem M_mul_le {c n : ℤ} {d : ℕ} (hd : 0 < (d : ℤ)) (hc : c * (d : ℤ) = n * M) + {x : ℝ} (h : x ≤ (n : ℝ) / (d : ℝ)) : (M : ℝ) * x ≤ (c : ℝ) := by + have hdR : (0 : ℝ) < (d : ℝ) := by exact_mod_cast hd + have hcR : (c : ℝ) * (d : ℝ) = (n : ℝ) * (M : ℝ) := by exact_mod_cast hc + rw [le_div_iff₀ hdR] at h + nlinarith [SI.Mpos, h, hcR] + +/-- Every one of the twenty-two integer enclosures contains the corresponding certified +Gerver parameter. -/ +theorem contains_params : + SI.Contains k11Z GerverSofa.PartB.params.k11 ∧ + SI.Contains k12Z GerverSofa.PartB.params.k12 ∧ + SI.Contains k21Z GerverSofa.PartB.params.k21 ∧ + SI.Contains k22Z GerverSofa.PartB.params.k22 ∧ + SI.Contains k31Z GerverSofa.PartB.params.k31 ∧ + SI.Contains k32Z GerverSofa.PartB.params.k32 ∧ + SI.Contains k41Z GerverSofa.PartB.params.k41 ∧ + SI.Contains k42Z GerverSofa.PartB.params.k42 ∧ + SI.Contains k51Z GerverSofa.PartB.params.k51 ∧ + SI.Contains k52Z GerverSofa.PartB.params.k52 ∧ + SI.Contains a1Z GerverSofa.PartB.params.a1 ∧ + SI.Contains a2Z GerverSofa.PartB.params.a2 ∧ + SI.Contains b1Z GerverSofa.PartB.params.b1 ∧ + SI.Contains b2Z GerverSofa.PartB.params.b2 ∧ + SI.Contains c1Z GerverSofa.PartB.params.c1 ∧ + SI.Contains c2Z GerverSofa.PartB.params.c2 ∧ + SI.Contains d1Z GerverSofa.PartB.params.d1 ∧ + SI.Contains d2Z GerverSofa.PartB.params.d2 ∧ + SI.Contains e1Z GerverSofa.PartB.params.e1 ∧ + SI.Contains e2Z GerverSofa.PartB.params.e2 ∧ + SI.Contains phiZ GerverSofa.PartB.params.phi ∧ + SI.Contains thetaZ GerverSofa.PartB.params.theta := by + have hbox := GerverSofa.PartB.params_mem + dsimp only [GerverSofa.Romik.box, GerverSofa.qR, Set.mem_ofPred_eq] at hbox + obtain ⟨hk11lo, hk11hi, hk12lo, hk12hi, hk21lo, hk21hi, hk22lo, hk22hi, hk31lo, hk31hi, + hk32lo, hk32hi, hk41lo, hk41hi, hk42lo, hk42hi, hk51lo, hk51hi, hk52lo, hk52hi, + ha1lo, ha1hi, ha2lo, ha2hi, hb1lo, hb1hi, hb2lo, hb2hi, hc1lo, hc1hi, hc2lo, hc2hi, + hd1lo, hd1hi, hd2lo, hd2hi, he1lo, he1hi, he2lo, he2hi, hphilo, hphihi, hthetalo, + hthetahi⟩ := hbox + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, k11Z]) hk11lo, + M_mul_le (by norm_num) (by norm_num [M, k11Z]) hk11hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, k12Z]) hk12lo, + M_mul_le (by norm_num) (by norm_num [M, k12Z]) hk12hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, k21Z]) hk21lo, + M_mul_le (by norm_num) (by norm_num [M, k21Z]) hk21hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, k22Z]) hk22lo, + M_mul_le (by norm_num) (by norm_num [M, k22Z]) hk22hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, k31Z]) hk31lo, + M_mul_le (by norm_num) (by norm_num [M, k31Z]) hk31hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, k32Z]) hk32lo, + M_mul_le (by norm_num) (by norm_num [M, k32Z]) hk32hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, k41Z]) hk41lo, + M_mul_le (by norm_num) (by norm_num [M, k41Z]) hk41hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, k42Z]) hk42lo, + M_mul_le (by norm_num) (by norm_num [M, k42Z]) hk42hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, k51Z]) hk51lo, + M_mul_le (by norm_num) (by norm_num [M, k51Z]) hk51hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, k52Z]) hk52lo, + M_mul_le (by norm_num) (by norm_num [M, k52Z]) hk52hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, a1Z]) ha1lo, + M_mul_le (by norm_num) (by norm_num [M, a1Z]) ha1hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, a2Z]) ha2lo, + M_mul_le (by norm_num) (by norm_num [M, a2Z]) ha2hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, b1Z]) hb1lo, + M_mul_le (by norm_num) (by norm_num [M, b1Z]) hb1hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, b2Z]) hb2lo, + M_mul_le (by norm_num) (by norm_num [M, b2Z]) hb2hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, c1Z]) hc1lo, + M_mul_le (by norm_num) (by norm_num [M, c1Z]) hc1hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, c2Z]) hc2lo, + M_mul_le (by norm_num) (by norm_num [M, c2Z]) hc2hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, d1Z]) hd1lo, + M_mul_le (by norm_num) (by norm_num [M, d1Z]) hd1hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, d2Z]) hd2lo, + M_mul_le (by norm_num) (by norm_num [M, d2Z]) hd2hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, e1Z]) he1lo, + M_mul_le (by norm_num) (by norm_num [M, e1Z]) he1hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, e2Z]) he2lo, + M_mul_le (by norm_num) (by norm_num [M, e2Z]) he2hi⟩, ?_⟩ + refine ⟨⟨le_M_mul (by norm_num) (by norm_num [M, phiZ]) hphilo, + M_mul_le (by norm_num) (by norm_num [M, phiZ]) hphihi⟩, ?_⟩ + exact ⟨le_M_mul (by norm_num) (by norm_num [M, thetaZ]) hthetalo, + M_mul_le (by norm_num) (by norm_num [M, thetaZ]) hthetahi⟩ + +/-- The integer enclosure of `π`. -/ +theorem contains_piZ : SI.Contains piZ Real.pi := by + obtain ⟨h1, h2⟩ := GerverSofa.ExactReplay.piI_contains_pi + have hM := SI.Mpos + refine ⟨?_, ?_⟩ + · have hnum : ((piZ.lo : ℤ) : ℝ) ≤ (M : ℝ) * ((GerverSofa.ExactReplay.piI.lo : ℚ) : ℝ) := by + norm_num [piZ, M, GerverSofa.ExactReplay.piI, GerverSofa.ExactReplay.q] + nlinarith [h1] + · have hnum : (M : ℝ) * ((GerverSofa.ExactReplay.piI.hi : ℚ) : ℝ) ≤ ((piZ.hi : ℤ) : ℝ) := by + norm_num [piZ, M, GerverSofa.ExactReplay.piI, GerverSofa.ExactReplay.q] + nlinarith [h2] + +/-- The integer enclosure of `π / 2`. -/ +theorem contains_piHalfZ : SI.Contains piHalfZ (Real.pi / 2) := by + change SI.Contains (SI.divn piZ 2) (Real.pi / 2) + simpa using SI.contains_divn (b := 2) (by norm_num) contains_piZ + +/-! ### Sine and cosine by the degree-41/40 Taylor recurrence -/ + +/-- `trigIter z t n = (Sₙ, Cₙ, ∑_{k ≤ n} Sₖ, ∑_{k ≤ n} Cₖ)` where `Sₖ` and `Cₖ` enclose the +`k`-th signed sine and cosine Taylor terms and `z` encloses `t ^ 2`. -/ +def trigIter (z t : SI) : ℕ → SI × SI × SI × SI + | 0 => (t, one, t, one) + | n + 1 => + let st := trigIter z t n + let sterm := neg (divn (mul st.1 z) (((2 * n + 2) * (2 * n + 3) : ℕ) : ℤ)) + let cterm := neg (divn (mul st.2.1 z) (((2 * n + 1) * (2 * n + 2) : ℕ) : ℤ)) + (sterm, cterm, add st.2.2.1 sterm, add st.2.2.2 cterm) + +/-- Sine and cosine enclosures of every real number in the argument interval. +Valid for arguments in `[0, 2]`. -/ +def trigZ (t : SI) : SI × SI := + let st := trigIter (mul t t) t 20 + (⟨st.2.2.1.lo - 1, st.2.2.1.hi + 1⟩, ⟨st.2.2.2.lo - 1, st.2.2.2.hi + 1⟩) + +/-! ### Stage endpoints and the uniform grid -/ + +/-- Number of subintervals per analytic stage. -/ +def NN : ℕ := 64 + +/-- Integer enclosures of the six stage endpoints `0, φ, θ, η, τ, π / 2`, constant past `5`. -/ +def endZ : ℕ → SI + | 0 => zero + | 1 => phiZ + | 2 => thetaZ + | 3 => sub piHalfZ thetaZ + | 4 => sub piHalfZ phiZ + | _ => piHalfZ + +/-- The `m`-th grid angle, `0 ≤ m ≤ 5 * NN`. -/ +def ttZ (m : ℕ) : SI := + divn (add (imul ((NN - m % NN : ℕ) : ℤ) (endZ (m / NN))) + (imul ((m % NN : ℕ) : ℤ) (endZ (m / NN + 1)))) (NN : ℤ) + +/-- The analytic branch that the piecewise definitions select at the `m`-th grid angle. -/ +def stageOf (m : ℕ) : ℕ := if m % NN = 0 then max 1 (m / NN) else m / NN + 1 + +/-! ### The five phase formulas and the four contact curves -/ + +/-- `kind`: `0` the path, `1` `A`, `2` `B`, `3` `C`, `4` `D`. -/ +def evalZ (stage : ℕ) (t : SI) (kind : ℕ) : SI × SI := + let sc := trigZ t + let s := sc.1 + let c := sc.2 + let data : SI × SI × SI × SI × SI × SI := + if stage = 1 then + (add (add (mul a1Z c) (mul a2Z s)) (ratI (-1) 1), + add (add (mul (neg a2Z) c) (mul a1Z s)) (ratI (-1) 2), + add (add (mul (imul (-2) a1Z) s) (mul (imul 2 a2Z) c)) (ratI 1 2), + add (add (mul (imul 2 a1Z) c) (mul (imul 2 a2Z) s)) (ratI (-1) 1), + k11Z, k12Z) + else if stage = 2 then + let f := add (add (divn (neg (mul t t)) 4) (mul b1Z t)) b2Z + (f, add (add (divn t 2) (neg b1Z)) (ratI (-1) 1), + add (add (ratI 1 1) (imul 2 b1Z)) (neg t), + add f (ratI 1 2), k21Z, k22Z) + else if stage = 3 then + let f := sub c1Z t + let g := add c2Z t + (f, g, add (ratI (-1) 1) (neg g), add (ratI 1 1) f, k31Z, k32Z) + else if stage = 4 then + let g := add (add (divn (neg (mul t t)) 4) (mul d1Z t)) d2Z + (add (add (neg (divn t 2)) d1Z) (ratI (-1) 1), g, + add (neg g) (ratI (-1) 2), + add (add (imul 2 d1Z) (ratI (-1) 1)) (neg t), k41Z, k42Z) + else + (add (add (mul e1Z c) (mul e2Z s)) (ratI (-1) 2), + add (add (mul (neg e2Z) c) (mul e1Z s)) (ratI (-1) 1), + add (add (ratI 1 1) (mul (imul (-2) e1Z) s)) (mul (imul 2 e2Z) c), + add (add (mul (imul 2 e1Z) c) (mul (imul 2 e2Z) s)) (ratI (-1) 2), + k51Z, k52Z) + let f := data.1 + let g := data.2.1 + let al := data.2.2.1 + let be := data.2.2.2.1 + let kx := data.2.2.2.2.1 + let ky := data.2.2.2.2.2 + let x0 := add (sub (mul c f) (mul s g)) kx + let y0 := add (add (mul s f) (mul c g)) ky + let x1 := if kind = 1 ∨ kind = 2 then sub x0 (mul al s) else x0 + let y1 := if kind = 1 ∨ kind = 2 then add y0 (mul al c) else y0 + let x2 := if kind = 1 then add x1 c else x1 + let y2 := if kind = 1 then add y1 s else y1 + let x3 := if kind = 3 ∨ kind = 4 then sub x2 (mul be c) else x2 + let y3 := if kind = 3 ∨ kind = 4 then sub y2 (mul be s) else y2 + (if kind = 3 then sub x3 s else x3, if kind = 3 then add y3 c else y3) + +/-- The contact point at grid index `m`, evaluated on the branch the definitions select. -/ +def contactZ (m kind : ℕ) : SI × SI := evalZ (stageOf m) (ttZ m) kind + +/-! ### Cap: the ordered support contacts and their fan shoelace sum -/ + +/-- Number of listed support contacts feeding the fan, excluding the anchor. -/ +def fanCount : ℕ := 10 * NN + +/-- Contact kind at fan position `i`: `A` for `i ≤ 5 * NN`, otherwise `C`. -/ +def fanKind (i : ℕ) : ℕ := if i ≤ 5 * NN then 1 else 3 + +/-- Grid index at fan position `i`. -/ +def fanIdx (i : ℕ) : ℕ := if i ≤ 5 * NN then i else i - 5 * NN + +/-- Both coordinates of the contact listed at fan position `i`. -/ +def fanZ (i : ℕ) : SI × SI := contactZ (fanIdx i) (fanKind i) + +/-- The fan anchor `L = C (π / 2)`. -/ +def anchorZ : SI × SI := contactZ (5 * NN) 3 + +/-- The `i`-th fan determinant over the anchor. -/ +def crossZ (i : ℕ) : SI := + sub (mul (sub (fanZ i).1 anchorZ.1) (sub (fanZ (i + 1)).2 anchorZ.2)) + (mul (sub (fanZ i).2 anchorZ.2) (sub (fanZ (i + 1)).1 anchorZ.1)) + +/-- Twice the signed area of the fan polygon: the shoelace sum of the listed contacts over +the anchor. -/ +def capDoubledZ : SI := + (List.range (fanCount - 1)).foldl (fun acc i => add acc (crossZ i)) zero + +/-! ### Niche: the seven roof pieces and their covering rectangles -/ + +/-- The seven roof pieces as `(kind, stage, traversed forwards?)`. -/ +def rowData : ℕ → ℕ × ℕ × Bool + | 0 => (4, 1, true) + | 1 => (4, 2, true) + | 2 => (0, 4, false) + | 3 => (0, 3, false) + | 4 => (0, 2, false) + | 5 => (2, 4, true) + | _ => (2, 5, true) + +/-- Contact kind traced by roof piece `r`. -/ +def rowKind (r : ℕ) : ℕ := (rowData r).1 +/-- Analytic stage traced by roof piece `r`. -/ +def rowStage (r : ℕ) : ℕ := (rowData r).2.1 +/-- Whether roof piece `r` is traversed in increasing time. -/ +def rowFwd (r : ℕ) : Bool := (rowData r).2.2 + +/-- Grid index of the left end of the `j`-th subinterval of row `r`. -/ +def rowBase (r j : ℕ) : ℕ := (rowStage r - 1) * NN + j + +/-- Left horizontal bound of the covering rectangle of `(r, j)`. -/ +def rectLoZ (r j : ℕ) : ℤ := + if rowFwd r then (contactZ (rowBase r j) (rowKind r)).1.lo + else (contactZ (rowBase r j + 1) (rowKind r)).1.lo + +/-- Right horizontal bound of the covering rectangle of `(r, j)`. -/ +def rectHiZ (r j : ℕ) : ℤ := + if rowFwd r then (contactZ (rowBase r j + 1) (rowKind r)).1.hi + else (contactZ (rowBase r j) (rowKind r)).1.hi + +/-- Height bound of the covering rectangle of `(r, j)`: the branch evaluation over the +whole subinterval, widened to cover the left endpoint, which sits on the previous branch. -/ +def rectHZ (r j : ℕ) : ℤ := + imax (evalZ (stageOf (rowBase r j + 1)) + ⟨(ttZ (rowBase r j)).lo, (ttZ (rowBase r j + 1)).hi⟩ (rowKind r)).2.hi + (contactZ (rowBase r j) (rowKind r)).2.hi + +/-- Area of the covering rectangle of `(r, j)`, in units of `1 / M ^ 2`. -/ +def rectAreaZ (r j : ℕ) : ℤ := + imax 0 (rectHiZ r j - rectLoZ r j) * imax 0 (rectHZ r j) + +/-- Total covering area of row `r`, in units of `1 / M ^ 2`. -/ +def rowSumZ (r : ℕ) : ℤ := (List.range NN).foldl (fun acc j => acc + rectAreaZ r j) 0 + +/-- Total covering area of the `7 * NN` rectangles, in units of `1 / M ^ 2`. -/ +def nicheSumZ : ℤ := (List.range 7).foldl (fun acc r => acc + rowSumZ r) 0 + +/-! ### The two decidable numeric conclusions -/ + +/-- The closed numeric cap check: `2 * 28609 / 10000 ≤ capDoubledZ.lo / M`. -/ +def capOK : Bool := 2 * 28609 * M ≤ 10000 * capDoubledZ.lo +/-- The closed numeric niche check: `nicheSumZ / M ^ 2 ≤ 3301 / 5000`. -/ +def nicheOK : Bool := 5000 * nicheSumZ ≤ 3301 * M * M + +/-- The niche check passes, by kernel reduction. -/ +theorem nicheOK_true : nicheOK = true := by decide +kernel + +/-- The cap check passes, by kernel reduction. -/ +theorem capOK_true : capOK = true := by decide +kernel + +end MovingSofa.GerverAreaCert + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Interval enclosures of the sine and cosine at scale `M` + +The certificate evaluates the sine and the cosine by the interval Taylor recurrence +`GerverAreaCert.trigIter`, truncated at degree 41 and 40 and widened by one unit at scale +`M = 10 ^ 30`. `trigZ_sound` is the soundness statement of that evaluator on `[0, 2]`: the +recurrence encloses the signed Taylor terms and their partial sums (`contains_trigIter`), +the alternating brackets of `Real.sin` and `Real.cos` control the truncation error by the +first omitted term, and `2 ^ 41 * 10 ^ 30 ≤ 41!` and `2 ^ 40 * 10 ^ 30 ≤ 40!` justify the +one-unit widening. +-/ + +/-! ### Sine and cosine enclosures -/ + +@[expose] public section + +namespace MovingSofa + +open GerverAreaCert + +/-- The integer term recurrence encloses the signed Taylor terms and their partial +sums. Pure interval arithmetic: an induction on `n` using the `SI` soundness lemmas. -/ +theorem contains_trigIter {z t : SI} {x : ℝ} (hz : SI.Contains z (x * x)) + (ht : SI.Contains t x) (n : ℕ) : + SI.Contains (trigIter z t n).1 + ((-1 : ℝ) ^ n * x ^ (2 * n + 1) / (Nat.factorial (2 * n + 1) : ℝ)) ∧ + SI.Contains (trigIter z t n).2.1 + ((-1 : ℝ) ^ n * x ^ (2 * n) / (Nat.factorial (2 * n) : ℝ)) ∧ + SI.Contains (trigIter z t n).2.2.1 + (∑ k ∈ Finset.range (n + 1), + (-1 : ℝ) ^ k * x ^ (2 * k + 1) / (Nat.factorial (2 * k + 1) : ℝ)) ∧ + SI.Contains (trigIter z t n).2.2.2 + (∑ k ∈ Finset.range (n + 1), + (-1 : ℝ) ^ k * x ^ (2 * k) / (Nat.factorial (2 * k) : ℝ)) := by + induction n with + | zero => + refine ⟨by simpa [trigIter] using ht, by simpa [trigIter] using SI.contains_one, + by simpa [trigIter] using ht, ?_⟩ + simpa [trigIter] using SI.contains_one + | succ n ih => + obtain ⟨ih1, ih2, ih3, ih4⟩ := ih + have hfac1 : (Nat.factorial (2 * n + 1) : ℝ) ≠ 0 := + Nat.cast_ne_zero.2 (Nat.factorial_ne_zero _) + have hfac2 : (Nat.factorial (2 * n) : ℝ) ≠ 0 := + Nat.cast_ne_zero.2 (Nat.factorial_ne_zero _) + have hd1 : (0 : ℤ) < (((2 * n + 2) * (2 * n + 3) : ℕ) : ℤ) := by positivity + have hd2 : (0 : ℤ) < (((2 * n + 1) * (2 * n + 2) : ℕ) : ℤ) := by positivity + have hd1' : ((((2 * n + 2) * (2 * n + 3) : ℕ) : ℤ) : ℝ) ≠ 0 := by + have : (0 : ℝ) < ((((2 * n + 2) * (2 * n + 3) : ℕ) : ℤ) : ℝ) := by exact_mod_cast hd1 + exact ne_of_gt this + have hd2' : ((((2 * n + 1) * (2 * n + 2) : ℕ) : ℤ) : ℝ) ≠ 0 := by + have : (0 : ℝ) < ((((2 * n + 1) * (2 * n + 2) : ℕ) : ℤ) : ℝ) := by exact_mod_cast hd2 + exact ne_of_gt this + have e1 : (Nat.factorial (2 * (n + 1) + 1) : ℝ) = + (Nat.factorial (2 * n + 1) : ℝ) * ((((2 * n + 2) * (2 * n + 3) : ℕ) : ℤ) : ℝ) := by + have h : 2 * (n + 1) + 1 = 2 * n + 1 + 1 + 1 := by ring + rw [h, Nat.factorial_succ, Nat.factorial_succ] + push_cast + ring + have e2 : (Nat.factorial (2 * (n + 1)) : ℝ) = + (Nat.factorial (2 * n) : ℝ) * ((((2 * n + 1) * (2 * n + 2) : ℕ) : ℤ) : ℝ) := by + have h : 2 * (n + 1) = 2 * n + 1 + 1 := by ring + rw [h, Nat.factorial_succ, Nat.factorial_succ] + push_cast + ring + have v1 : -((((-1 : ℝ) ^ n * x ^ (2 * n + 1) / (Nat.factorial (2 * n + 1) : ℝ)) * (x * x)) / + ((((2 * n + 2) * (2 * n + 3) : ℕ) : ℤ) : ℝ)) = + (-1 : ℝ) ^ (n + 1) * x ^ (2 * (n + 1) + 1) / + (Nat.factorial (2 * (n + 1) + 1) : ℝ) := by + rw [e1, show x ^ (2 * (n + 1) + 1) = x ^ (2 * n + 1) * (x * x) by ring] + field_simp + ring + have v2 : -((((-1 : ℝ) ^ n * x ^ (2 * n) / (Nat.factorial (2 * n) : ℝ)) * (x * x)) / + ((((2 * n + 1) * (2 * n + 2) : ℕ) : ℤ) : ℝ)) = + (-1 : ℝ) ^ (n + 1) * x ^ (2 * (n + 1)) / (Nat.factorial (2 * (n + 1)) : ℝ) := by + rw [e2, show x ^ (2 * (n + 1)) = x ^ (2 * n) * (x * x) by ring] + field_simp + ring + have hs : SI.Contains + (SI.neg (SI.divn (SI.mul (trigIter z t n).1 z) (((2 * n + 2) * (2 * n + 3) : ℕ) : ℤ))) + ((-1 : ℝ) ^ (n + 1) * x ^ (2 * (n + 1) + 1) / + (Nat.factorial (2 * (n + 1) + 1) : ℝ)) := by + rw [← v1] + exact SI.contains_neg (SI.contains_divn hd1 (SI.contains_mul ih1 hz)) + have hc : SI.Contains + (SI.neg (SI.divn (SI.mul (trigIter z t n).2.1 z) (((2 * n + 1) * (2 * n + 2) : ℕ) : ℤ))) + ((-1 : ℝ) ^ (n + 1) * x ^ (2 * (n + 1)) / (Nat.factorial (2 * (n + 1)) : ℝ)) := by + rw [← v2] + exact SI.contains_neg (SI.contains_divn hd2 (SI.contains_mul ih2 hz)) + refine ⟨hs, hc, ?_, ?_⟩ + · rw [Finset.sum_range_succ] + exact SI.contains_add ih3 hs + · rw [Finset.sum_range_succ] + exact SI.contains_add ih4 hc + +/-- The degree-41 sine Taylor polynomial overshoots by at most `1 / M` on `[0, 2]`. -/ +private theorem sin_taylor_bracket {x : ℝ} (hx0 : 0 ≤ x) (hx2 : x ≤ 2) : + (∑ k ∈ Finset.range 21, + (-1 : ℝ) ^ k * x ^ (2 * k + 1) / (Nat.factorial (2 * k + 1) : ℝ)) - + 1 / (M : ℝ) ≤ Real.sin x ∧ + Real.sin x ≤ ∑ k ∈ Finset.range 21, + (-1 : ℝ) ^ k * x ^ (2 * k + 1) / (Nat.factorial (2 * k + 1) : ℝ) := by + obtain ⟨hlow, hhigh⟩ := Real.sin_mem_Icc_taylor_sums 10 hx0 (by push_cast; nlinarith) + simp only [show (2 * 10 + 1 : ℕ) = 21 from rfl, show (2 * 10 : ℕ) = 20 from rfl] at hlow hhigh + refine ⟨?_, hhigh⟩ + have hsplit : (∑ k ∈ Finset.range 21, + (-1 : ℝ) ^ k * x ^ (2 * k + 1) / (Nat.factorial (2 * k + 1) : ℝ)) + = (∑ k ∈ Finset.range 20, + (-1 : ℝ) ^ k * x ^ (2 * k + 1) / (Nat.factorial (2 * k + 1) : ℝ)) + + x ^ 41 / (Nat.factorial 41 : ℝ) := by + rw [show (21 : ℕ) = 20 + 1 from rfl, Finset.sum_range_succ] + norm_num + have htail : x ^ 41 / (Nat.factorial 41 : ℝ) ≤ 1 / (M : ℝ) := by + have hMv : ((M : ℤ) : ℝ) = 10 ^ 30 := by norm_num [M] + rw [hMv] + calc x ^ 41 / (Nat.factorial 41 : ℝ) ≤ (2 : ℝ) ^ 41 / (Nat.factorial 41 : ℝ) := by gcongr + _ ≤ 1 / 10 ^ 30 := by norm_num [Nat.factorial] + rw [hsplit] + linarith + +/-- The degree-40 cosine Taylor polynomial overshoots by at most `1 / M` on `[0, 2]`. -/ +private theorem cos_taylor_bracket {x : ℝ} (hx0 : 0 ≤ x) (hx2 : x ≤ 2) : + (∑ k ∈ Finset.range 21, + (-1 : ℝ) ^ k * x ^ (2 * k) / (Nat.factorial (2 * k) : ℝ)) - + 1 / (M : ℝ) ≤ Real.cos x ∧ + Real.cos x ≤ ∑ k ∈ Finset.range 21, + (-1 : ℝ) ^ k * x ^ (2 * k) / (Nat.factorial (2 * k) : ℝ) := by + obtain ⟨hlow, hhigh⟩ := Real.cos_mem_Icc_taylor_sums 10 hx0 (by push_cast; nlinarith) + simp only [show (2 * 10 + 1 : ℕ) = 21 from rfl, show (2 * 10 : ℕ) = 20 from rfl] at hlow hhigh + refine ⟨?_, hhigh⟩ + have hsplit : (∑ k ∈ Finset.range 21, + (-1 : ℝ) ^ k * x ^ (2 * k) / (Nat.factorial (2 * k) : ℝ)) + = (∑ k ∈ Finset.range 20, + (-1 : ℝ) ^ k * x ^ (2 * k) / (Nat.factorial (2 * k) : ℝ)) + + x ^ 40 / (Nat.factorial 40 : ℝ) := by + rw [show (21 : ℕ) = 20 + 1 from rfl, Finset.sum_range_succ] + norm_num + have htail : x ^ 40 / (Nat.factorial 40 : ℝ) ≤ 1 / (M : ℝ) := by + have hMv : ((M : ℤ) : ℝ) = 10 ^ 30 := by norm_num [M] + rw [hMv] + calc x ^ 40 / (Nat.factorial 40 : ℝ) ≤ (2 : ℝ) ^ 40 / (Nat.factorial 40 : ℝ) := by gcongr + _ ≤ 1 / 10 ^ 30 := by norm_num [Nat.factorial] + rw [hsplit] + linarith + +/-- Soundness of the executable sine/cosine enclosure on `[0, 2]`. -/ +theorem trigZ_sound {t : SI} {x : ℝ} (ht : SI.Contains t x) (hx0 : 0 ≤ x) (hx2 : x ≤ 2) : + SI.Contains (trigZ t).1 (Real.sin x) ∧ SI.Contains (trigZ t).2 (Real.cos x) := by + have hM : (0 : ℝ) < (M : ℝ) := SI.Mpos + have hMinv : (M : ℝ) * (1 / (M : ℝ)) = 1 := by field_simp + have hwiden : ∀ (S : SI) (y v : ℝ), SI.Contains S v → v - 1 / (M : ℝ) ≤ y → y ≤ v → + SI.Contains (⟨S.lo - 1, S.hi + 1⟩ : SI) y := by + intro S y v hS h1 h2 + obtain ⟨ha, hb⟩ := hS + have hlow : (M : ℝ) * v - 1 ≤ (M : ℝ) * y := by + have h := mul_le_mul_of_nonneg_left h1 hM.le + nlinarith [hMinv] + have hhigh : (M : ℝ) * y ≤ (M : ℝ) * v := mul_le_mul_of_nonneg_left h2 hM.le + refine ⟨?_, ?_⟩ <;> push_cast <;> linarith + have h20 : (20 : ℕ) + 1 = 21 := by norm_num + have hz : SI.Contains (SI.mul t t) (x * x) := SI.contains_mul ht ht + obtain ⟨-, -, hS, hC⟩ := contains_trigIter hz ht 20 + rw [h20] at hS hC + obtain ⟨hs1, hs2⟩ := sin_taylor_bracket hx0 hx2 + obtain ⟨hc1, hc2⟩ := cos_taylor_bracket hx0 hx2 + exact ⟨hwiden _ (Real.sin x) _ hS hs1 hs2, hwiden _ (Real.cos x) _ hC hc1 hc2⟩ + +end MovingSofa + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/Development/Geometry/Foundations/Development005.lean b/LeanPool/MovingSofa/Development/Geometry/Foundations/Development005.lean new file mode 100644 index 0000000000..af9f766413 --- /dev/null +++ b/LeanPool/MovingSofa/Development/Geometry/Foundations/Development005.lean @@ -0,0 +1,11356 @@ +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +module + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development004 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle008 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development002 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development003 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development001 +public import Mathlib.Analysis.Convex.Continuous +public import Mathlib.Analysis.Convex.Segment +public import Mathlib.Analysis.Normed.Affine.Isometry +public import Mathlib.Geometry.Euclidean.Angle.Oriented.Rotation +public import Mathlib.LinearAlgebra.AffineSpace.Independent +public import Mathlib.MeasureTheory.Constructions.Polish.Basic +public import Mathlib.MeasureTheory.Integral.IntervalIntegral.Basic +public import Mathlib.MeasureTheory.Measure.Haar.InnerProductSpace +public import Mathlib.Tactic.FunProp +public import Mathlib.Tactic.Positivity +/-! +# Moving sofa: related mathematical developments + +* `Canonical.Foundations.Development001`. +* `Geometry.Foundations.Development003`. +* `Analysis.Foundations.Development003`. +* `Cap.Foundations.Development002`. +* `Analysis.Foundations.Development004`. +* `Convex.Foundations.Development002`. +* `Geometry.Foundations.Development004`. +* `Gerver.Foundations.Development002`. +* `Cap.Foundations.Development003`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Canonical.Definitions`. +* `Canonical.GerverDefinitions`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 The Formal Conjectures Authors and Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: The Formal Conjectures Authors, Dean Cureton +-/ +/- +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. +-/ + + +/-! +# Definitions for the moving sofa problem + +The definitions of `MovingSofaSubmission/Challenge.lean`, copied from +`FormalConjectures/Wikipedia/MovingSofa.lean` in google-deepmind/formal-conjectures at commit +`ddfbaf90f4482030d88aae5233fe933874296a23`. Here `ABφθSpec.existsUnique` is proved, from the +certificate in GerverSofaLean, so that Gerver's constants are defined from a proved statement. +-/ + +@[expose] public section + +noncomputable section + +/-- The standard two-dimensional Euclidean space over the reals. -/ +scoped[EuclideanGeometry] notation "ℝ²" => EuclideanSpace ℝ (Fin 2) + +open scoped EuclideanGeometry + +/-- The plane `ℝ²` with the orientation of its standard basis, so that rotations are +counterclockwise. -/ +noncomputable instance Module.orientedEuclideanSpaceFinTwo : Module.Oriented ℝ ℝ² (Fin 2) := + ⟨Module.Basis.orientation <| PiLp.basisFun 2 _ _⟩ + +/-- The plane `ℝ²` has dimension two. -/ +instance fact_finrank_euclideanSpace_fin_two : Fact (Module.finrank ℝ ℝ² = 2) := + ⟨finrank_euclideanSpace_fin⟩ + +namespace MovingSofa + +open Topology +open scoped Real unitInterval EuclideanGeometry + +/-- The **horizontal side** of the hallway is $(-\infty, 1] \times [0, 1]$. -/ +def horizontalHallway : Set ℝ² := {!₂[x, y] | (x) (y) (_ : x ≤ 1 ∧ 0 ≤ y ∧ y ≤ 1)} + +/-- The **vertical side** of the hallway is $[0, 1] \times (-\infty, 1]$. -/ +def verticalHallway : Set ℝ² := {!₂[x, y] | (x) (y) (_ : 0 ≤ x ∧ x ≤ 1 ∧ y ≤ 1)} + +/-- The **hallway** is the union of its horizontal and vertical sides. -/ +def hallway : Set ℝ² := horizontalHallway ∪ verticalHallway + +/-- The affine isometry group of the Euclidean plane. -/ +scoped notation "E(2)" => ℝ² ≃ᵃⁱ[ℝ] ℝ² + +/-- The topology on the isometry group `E(2)`, induced from the continuous affine maps of the +plane. -/ +instance rigidMotionTopology : TopologicalSpace E(2) := + .induced (·.toAffineIsometry.toContinuousAffineMap) inferInstance + +/-- +A connected closed set $s$ is a **moving sofa** according to a rigid motion $m:I\to\mathrm{SE}(2)$, +if the sofa is initially in the horizontal side of the hallway and ends up in the vertical side. +Here, since $\mathrm{SE}(2)$ is not in Mathlib yet, we use $\mathrm{E}(2)$ and rely on continuity +and $m(0) = \mathrm{id}$ to ensure $m$ is in $\mathrm{SE}(2)$. +-/ +structure IsMovingSofa (s : Set ℝ²) (m : I → E(2)) : Prop where + isConnected : IsConnected s + isClosed : IsClosed s + continuous : Continuous m + zero : m 0 = .refl ℝ ℝ² + initial : s ⊆ horizontalHallway + subset_hallway : ∀ t, m t '' s ⊆ hallway + final : m 1 '' s ⊆ verticalHallway + +/-- +The rigid motion that translates by $p$ and then rotates counterclockwise by $\alpha$. +Note that [Ge92] used this definition while [Ro18] used rotation first and then translation. +-/ +def rotateTranslate (α : Real.Angle) (p : ℝ²) : E(2) := + (AffineIsometryEquiv.vaddConst ℝ p).trans + (EuclideanGeometry.o.rotation α).toAffineIsometryEquiv + +/-- +The sofa according to a rotation path $p : [0, \pi/2] \to \mathbb{R}^2$ as in [Ge92] is the +intersection over $\alpha \in [0, \pi/2]$ of hallways each translated by $p(\alpha)$ and then +rotated by $\alpha$, with the special cases that the hallway at $0$ is the horizontal side +and the hallway at $\pi/2$ is the vertical side. +-/ +def sofaOfRotateTranslatePath (p : ℝ → ℝ²) : Set ℝ² := + rotateTranslate 0 (p 0) '' horizontalHallway ∩ + rotateTranslate ↑(π / 2) (p (π / 2)) '' verticalHallway ∩ + ⋂ α ∈ Set.Icc 0 (π / 2), rotateTranslate α (p α) '' hallway + +namespace GerversSofa + +/- +Gerver's constants defining the sofa. + +This section follows Theorem 2 of Gerver's paper [Ge92]. +-/ + +/-- +Eq. 1-4 of [Ro18], which specifies the constants $A$, $B$, $\varphi$, and $\theta$ of [Ge92]. +-/ +def ABφθSpec (A B φ θ : ℝ) : Prop := + 0 ≤ φ ∧ φ ≤ θ ∧ θ ≤ π / 4 ∧ 0 ≤ A ∧ 0 ≤ B ∧ + A * (θ.cos - φ.cos) - 2 * B * φ.sin + + (θ - φ - 1) * θ.cos - θ.sin + φ.cos + φ.sin = 0 ∧ + A * (3 * θ.sin + φ.sin) - 2 * B * φ.cos + + 3 * (θ - φ - 1) * θ.sin + 3 * θ.cos - φ.sin + φ.cos = 0 ∧ + A * φ.cos - (φ.sin + 1 / 2 - φ.cos / 2 + B * φ.sin) = 0 ∧ + (A + π / 2 - φ - θ) - (B - (θ - φ) * (1 + A) / 2 - (θ - φ)^2 / 4) = 0 + +/-- There exist unique constants $A$, $B$, $\varphi$, and $\theta$ satisfying the spec. -/ +theorem ABφθSpec.existsUnique : ∃! ABφθ : ℝ × ℝ × ℝ × ℝ, + ABφθSpec ABφθ.1 ABφθ.2.1 ABφθ.2.2.1 ABφθ.2.2.2 := + GerverSofa.PartF.Parameters.existsUnique + +/-- Gerver's constant $A$: the first component of the unique solution of `ABφθSpec`. -/ +def A : ℝ := ABφθSpec.existsUnique.choose.1 +/-- Gerver's constant $B$: the second component of the unique solution of `ABφθSpec`. -/ +def B : ℝ := ABφθSpec.existsUnique.choose.2.1 +/-- Gerver's angle $\varphi$: the third component of the unique solution of `ABφθSpec`. -/ +def φ : ℝ := ABφθSpec.existsUnique.choose.2.2.1 +/-- Gerver's angle $\theta$: the fourth component of the unique solution of `ABφθSpec`. -/ +def θ : ℝ := ABφθSpec.existsUnique.choose.2.2.2 + +/-- The integral-path auxiliary function $r$, with break points $\varphi$, $\theta$, +$\pi/2 - \theta$ and $\pi/2 - \varphi$. The functions `x` and `y` are integrals of it. -/ +def r (α : ℝ) : ℝ := + if α ≤ φ then + 1 / 2 + else if α ≤ θ then + (1 + A + α - φ) / 2 + else if α ≤ π / 2 - θ then + A + α - φ + else if α ≤ π / 2 - φ then + B - (π / 2 - α - φ) * (1 + A) / 2 - (π / 2 - α - φ) ^ 2 / 4 + else + 0 + +/-- $y(\alpha) = \int_\alpha^{\pi/2 - \varphi} r(t) \sin t \, dt$, used in the canonical +integral-path definition. -/ +def y (α : ℝ) : ℝ := + ∫ t in α..π / 2 - φ, r t * t.sin + +/-- $x(\alpha) = 1 - \int_\alpha^{\pi/2 - \varphi} r(t) \cos t \, dt$, used in the canonical +integral-path definition. -/ +def x (α : ℝ) : ℝ := + 1 - ∫ t in α..π / 2 - φ, r t * t.cos + +/-- The rotation path of Gerver's sofa: `p α` is the translation applied to the hallway before it +is rotated by the angle $\alpha \in [0, \pi/2]$, in the convention of `rotateTranslate`. -/ +def p (α : ℝ) : ℝ² := + !₂[if α ≤ φ + then α.cos - 1 + else x (π / 2 - α) * α.cos + y (π / 2 - α) * α.sin - 1, + if α ≤ π / 2 - φ + then y α * α.cos - (4 * x 0 - 2 - x α) * α.sin - 1 + else -(4 * x 0 - 3) * α.sin - 1] + +end GerversSofa + +/-- Gerver's sofa is the sofa according to the rotation path `GerversSofa.p`. -/ +def gerversSofa : Set ℝ² := + sofaOfRotateTranslatePath GerversSofa.p + +open MeasureTheory +open scoped ENNReal + +/-- The **sofa constant** is the maximal area of a moving sofa. -/ +def sofaConstant : ℝ≥0∞ := ⨆ (s : Set ℝ²) (_ : ∃ m, IsMovingSofa s m), volume s + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/- +MIT License + +Copyright (c) 2026 Dawid Trela + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +-/ + + + +/-! +# Gerver's definitions in GerverSofaLean agree with the ones used here + +Adapted from `F07UpstreamAdapter` in GerverSofaLean v1.1.0 (MIT). GerverSofaLean states its results +for its own copy of the moving sofa definitions. This file identifies that copy with the +definitions of `MovingSofa.Canonical.Definitions`. +-/ + +@[expose] public section + +noncomputable section +open scoped unitInterval + +namespace GerverSofa.PartF.ProjectAdapter + +open Coordinates + +theorem horizontalHallway_eq_model : + MovingSofa.horizontalHallway = Model.horizontalHallway := by + ext q + constructor + · rintro ⟨x, y, hxy, rfl⟩ + exact hxy + · intro hq + exact ⟨q 0, q 1, hq, plane_ext rfl rfl⟩ + +theorem verticalHallway_eq_model : + MovingSofa.verticalHallway = Model.verticalHallway := by + ext q + constructor + · rintro ⟨x, y, hxy, rfl⟩ + exact hxy + · intro hq + exact ⟨q 0, q 1, hq, plane_ext rfl rfl⟩ + +theorem hallway_eq_model : MovingSofa.hallway = Model.hallway := by + unfold MovingSofa.hallway Model.hallway + rw [horizontalHallway_eq_model, verticalHallway_eq_model] + +theorem isMovingSofa_iff_model (s : Set Plane) (m : I → Rigid) : + MovingSofa.IsMovingSofa s m ↔ Model.IsMovingSofa s m := by + constructor + · intro h + refine ⟨h.isConnected, h.isClosed, h.continuous, h.zero, ?_, ?_, ?_⟩ + · simpa only [horizontalHallway_eq_model] using h.initial + · intro t + simpa only [hallway_eq_model] using h.subset_hallway t + · simpa only [verticalHallway_eq_model] using h.final + · intro h + refine ⟨h.isConnected, h.isClosed, h.continuous, h.zero, ?_, ?_, ?_⟩ + · simpa only [horizontalHallway_eq_model] using h.initial + · intro t + simpa only [hallway_eq_model] using h.subset_hallway t + · simpa only [verticalHallway_eq_model] using h.final + +theorem sofaOfRotateTranslatePath_eq_bodySofa (p : ℝ → Plane) : + MovingSofa.sofaOfRotateTranslatePath p = + bodySofa p Model.horizontalHallway Model.verticalHallway Model.hallway := by + unfold MovingSofa.sofaOfRotateTranslatePath bodySofa angleIntersection + rw [horizontalHallway_eq_model, verticalHallway_eq_model, hallway_eq_model] + rfl + +/-- The reduced parameter tuple corresponding to the canonical choice of the unique angle +solution. -/ +def selected : Reduced.Params := + PartE.tupleEquiv MovingSofa.GerversSofa.ABφθSpec.existsUnique.choose + +theorem selected_eq_certified : selected = Integrals.certified := by + have h : MovingSofa.GerversSofa.ABφθSpec.existsUnique.choose = Parameters.certified := + Parameters.choice_independent MovingSofa.GerversSofa.ABφθSpec.existsUnique + exact (congrArg PartE.tupleEquiv h).trans (PartE.tupleEquiv.apply_symm_apply _) + +theorem p_eq_selected (t : ℝ) : + MovingSofa.GerversSofa.p t = toPlane (Integrals.path selected t) := rfl + +theorem p_eq_certified : MovingSofa.GerversSofa.p = + fun t => toPlane (Integrals.path Integrals.certified t) := by + funext t + rw [p_eq_selected, selected_eq_certified] + +theorem integral_rotation_to_full (t : ℝ) (ht : t ∈ Set.Icc 0 (Real.pi / 2)) : + rotation t (MovingSofa.GerversSofa.p t) = toPlane (Romik.path PartC.params t) := by + rw [p_eq_certified] + exact Integrals.certified_integral_rotation_to_full t ht + +theorem gerversSofa_eq_certified : MovingSofa.gerversSofa = EuclideanMotion.sofa := by + unfold MovingSofa.gerversSofa + rw [sofaOfRotateTranslatePath_eq_bodySofa, p_eq_certified] + exact Integrals.integral_sofa_eq_certified + +end GerverSofa.PartF.ProjectAdapter + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Geometry.Hallway`. +* `Geometry.HallwayParts`. +* `Geometry.HallwayPartsProperties`. +* `Geometry.HallwayRay`. +* `Geometry.HallwaySupport`. +* `Geometry.Parallelogram`. +* `Geometry.ParallelogramGap`. +* `Geometry.PathHalfPlaneCap`. +* `Geometry.Reflection`. +* `Geometry.SupportingHallway`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Hallway +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Counterclockwise rotation about the origin. -/ +def rotationMap (t : Real.Angle) (p : Point) : Point := + (EuclideanGeometry.o.rotation t) p + +/-- The horizontal, vertical and rotated vertical strips. -/ +def strips (ω : ℝ) : Set Point × Set Point × Set Point := + let H : Set Point := {p | 0 ≤ p 1 ∧ p 1 ≤ 1} + let V : Set Point := {p | 0 ≤ p 0 ∧ p 0 ≤ 1} + (H, V, rotationMap (ω : Real.Angle) '' V) + +/-- The intersection of strips and its two distinguished points. -/ +def stripParallelogram (ω : ℝ) : Set Point × Point × Point := + ((strips ω).1 ∩ (strips ω).2.2, 0, !₂[Real.tan (Real.pi / 4 - ω / 2), 1]) + +/-- Corners, walls, rays and quadrants of a hallway. -/ +structure HallwayParts where + /-- The inner reentrant corner of the hallway. -/ + innerCorner : Point + /-- The outer corner opposite the inner corner. -/ + outerCorner : Point + /-- The outer wall corresponding to the fixed hallway’s line `x = 1`. -/ + a : Set Point + /-- The inner wall corresponding to the fixed hallway’s line `x = 0`. -/ + b : Set Point + /-- The outer wall corresponding to the fixed hallway’s line `y = 1`. -/ + c : Set Point + /-- The inner wall corresponding to the fixed hallway’s line `y = 0`. -/ + d : Set Point + /-- The ray on the inner B wall extending away from the corner. -/ + bRay : Set Point + /-- The ray on the inner D wall extending away from the corner. -/ + dRay : Set Point + /-- The closed quadrant cut out by the two outer walls. -/ + outerQuadrant : Set Point + /-- The open forbidden quadrant behind the inner corner. -/ + innerQuadrant : Set Point + +/-- The named parts of the fixed hallway. -/ +def hallwayParts : HallwayParts where + innerCorner := 0 + outerCorner := !₂[1, 1] + a := {p | p 0 = 1} + b := {p | p 0 = 0} + c := {p | p 1 = 1} + d := {p | p 1 = 0} + bRay := {p | p 0 = 0 ∧ p 1 ≤ 0} + dRay := {p | p 0 ≤ 0 ∧ p 1 = 0} + outerQuadrant := {p | p 0 ≤ 1 ∧ p 1 ≤ 1} + innerQuadrant := {p | p 0 < 0 ∧ p 1 < 0} + +/-- Rotation followed by the support-determined translation. -/ +def supportingPlacement (s : Set Point) (t : Real.Angle) (p : Point) : Point := + rotationMap t p + (supportValue s t - 1) • normalVector t + + (supportValue s (t + ((Real.pi / 2 : ℝ) : Real.Angle)) - 1) • tangentVector t + +/-- The supporting hallway of a nonempty compact set. -/ +def supportingHallway (s : Set Point) (t : Real.Angle) : Set Point := + supportingPlacement s t '' hallway + +/-- The images of all named hallway parts under its supporting placement. -/ +def rotatingHallwayParts (s : Set Point) (t : Real.Angle) : HallwayParts where + innerCorner := supportingPlacement s t hallwayParts.innerCorner + outerCorner := supportingPlacement s t hallwayParts.outerCorner + a := supportingPlacement s t '' hallwayParts.a + b := supportingPlacement s t '' hallwayParts.b + c := supportingPlacement s t '' hallwayParts.c + d := supportingPlacement s t '' hallwayParts.d + bRay := supportingPlacement s t '' hallwayParts.bRay + dRay := supportingPlacement s t '' hallwayParts.dRay + outerQuadrant := supportingPlacement s t '' hallwayParts.outerQuadrant + innerQuadrant := supportingPlacement s t '' hallwayParts.innerQuadrant + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Hallway Parts +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem rightAngleRotation_apply (p : Point) : + EuclideanGeometry.o.rightAngleRotation p = !₂[-p 1, p 0] := by + apply (ext_inner_left (𝕜 := ℝ)) + intro y + rw [Orientation.inner_rightAngleRotation_right, Orientation.areaForm_to_volumeForm, + EuclideanGeometry.o.volumeForm_robust (EuclideanSpace.basisFun (Fin 2) ℝ) rfl, + Module.Basis.det_apply] + simp [Matrix.det_fin_two, Module.Basis.toMatrix, PiLp.inner_apply] + ring + +theorem inner_rotationMap_normalVector (p : Point) (t : Real.Angle) : + inner ℝ (rotationMap t p) (normalVector t) = p 0 := by + rw [rotationMap, Orientation.rotation_apply, rightAngleRotation_apply] + simp [normalVector, frame, PiLp.inner_apply] + linear_combination p 0 * Real.Angle.cos_sq_add_sin_sq t + +theorem inner_rotationMap_tangentVector (p : Point) (t : Real.Angle) : + inner ℝ (rotationMap t p) (tangentVector t) = p 1 := by + rw [rotationMap, Orientation.rotation_apply, rightAngleRotation_apply] + simp [tangentVector, frame, PiLp.inner_apply] + linear_combination p 1 * Real.Angle.cos_sq_add_sin_sq t + +theorem normalVector_add_pi_div_two (t : Real.Angle) : + normalVector (t + ((Real.pi / 2 : ℝ) : Real.Angle)) = tangentVector t := by + simp [normalVector, tangentVector, frame, Real.Angle.cos_add_pi_div_two, + Real.Angle.sin_add_pi_div_two] + +/-- Rotating a real normal direction by a right angle gives the tangent direction. -/ +theorem normalVector_add_pi_div_two_real (t : ℝ) : + normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle) = tangentVector (t : Real.Angle) := by + rw [Real.Angle.coe_add, normalVector_add_pi_div_two] + +theorem inner_supportingPlacement_normalVector (s : Set Point) (t : Real.Angle) + (p : Point) : + inner ℝ (supportingPlacement s t p) (normalVector t) = + p 0 + supportValue s t - 1 := by + simp only [supportingPlacement, inner_add_left, real_inner_smul_left, + inner_rotationMap_normalVector] + simp [normalVector, tangentVector, frame, PiLp.inner_apply, + PiLp.norm_sq_eq_of_L2, Real.Angle.cos_sq_add_sin_sq] + ring + +theorem inner_supportingPlacement_tangentVector (s : Set Point) (t : Real.Angle) + (p : Point) : + inner ℝ (supportingPlacement s t p) (tangentVector t) = + p 1 + supportValue s (t + ((Real.pi / 2 : ℝ) : Real.Angle)) - 1 := by + simp only [supportingPlacement, inner_add_left, real_inner_smul_left, + inner_rotationMap_tangentVector] + simp [normalVector, tangentVector, frame, PiLp.inner_apply, + PiLp.norm_sq_eq_of_L2, Real.Angle.cos_sq_add_sin_sq, add_comm] + ring + +theorem hallway_eq_outerQuadrant_sdiff_innerQuadrant : + hallway = hallwayParts.outerQuadrant \ hallwayParts.innerQuadrant := by + ext p + constructor + · rintro (⟨a, b, h, rfl⟩ | ⟨a, b, h, rfl⟩) + · change (a ≤ 1 ∧ b ≤ 1) ∧ ¬(a < 0 ∧ b < 0) + exact ⟨⟨h.1, h.2.2⟩, fun hn ↦ (not_lt_of_ge h.2.1) hn.2⟩ + · change (a ≤ 1 ∧ b ≤ 1) ∧ ¬(a < 0 ∧ b < 0) + exact ⟨⟨h.2.1, h.2.2⟩, fun hn ↦ (not_lt_of_ge h.1) hn.1⟩ + · intro hp + change (p 0 ≤ 1 ∧ p 1 ≤ 1) ∧ ¬(p 0 < 0 ∧ p 1 < 0) at hp + have heq : (!₂[p 0, p 1] : Point) = p := by + ext i + fin_cases i <;> rfl + by_cases h : 0 ≤ p 0 + · exact Or.inr ⟨p 0, p 1, ⟨h, hp.1.1, hp.1.2⟩, heq⟩ + · exact Or.inl ⟨p 0, p 1, + ⟨hp.1.1, le_of_not_gt (fun hy ↦ hp.2 ⟨lt_of_not_ge h, hy⟩), hp.1.2⟩, heq⟩ + +/-- The first coordinate of a rotated point. -/ +theorem rotationMap_apply_zero (θ : Real.Angle) (x : Point) : + rotationMap θ x 0 = θ.cos * x 0 - θ.sin * x 1 := by + rw [rotationMap, Orientation.rotation_apply, rightAngleRotation_apply] + simp + ring + +/-- The second coordinate of a rotated point. -/ +theorem rotationMap_apply_one (θ : Real.Angle) (x : Point) : + rotationMap θ x 1 = θ.sin * x 0 + θ.cos * x 1 := by + rw [rotationMap, Orientation.rotation_apply, rightAngleRotation_apply] + simp + ring + +/-- Coordinate bounds for a point of the horizontal side of the hallway. -/ +theorem mem_horizontalHallway_coordinates {p : Point} (hp : p ∈ horizontalHallway) : + p 0 ≤ 1 ∧ 0 ≤ p 1 ∧ p 1 ≤ 1 := by + obtain ⟨x, y, h, rfl⟩ := hp + simpa using h + +/-- Coordinate bounds for a point of the vertical side of the hallway. -/ +theorem mem_verticalHallway_coordinates {p : Point} (hp : p ∈ verticalHallway) : + 0 ≤ p 0 ∧ p 0 ≤ 1 ∧ p 1 ≤ 1 := by + obtain ⟨x, y, h, rfl⟩ := hp + simpa using h + +/-- A point lies in the hallway exactly when it lies in the outer quadrant and is not +strictly inside the inner one. -/ +theorem mem_hallway_iff (q : Point) : q ∈ hallway ↔ + (q 0 ≤ 1 ∧ q 1 ≤ 1) ∧ (0 ≤ q 0 ∨ 0 ≤ q 1) := by + constructor + · rintro (⟨a, b, h, rfl⟩ | ⟨a, b, h, rfl⟩) + · exact ⟨⟨h.1, h.2.2⟩, Or.inr h.2.1⟩ + · exact ⟨⟨h.2.1, h.2.2⟩, Or.inl h.1⟩ + · rintro ⟨⟨hx, hy⟩, h⟩ + have heq : (!₂[q 0, q 1] : Point) = q := by + ext i + fin_cases i <;> rfl + rcases h with hx0 | hy0 + · exact Or.inr ⟨q 0, q 1, ⟨hx0, hx, hy⟩, heq⟩ + · exact Or.inl ⟨q 0, q 1, ⟨hx, hy0, hy⟩, heq⟩ + +/-- Coordinate bounds place a point in the horizontal side of the hallway. -/ +theorem mem_horizontalHallway_of_coordinates (p : Point) + (hx : p 0 ≤ 1) (hy : p 1 ∈ Set.Icc (0 : ℝ) 1) : p ∈ horizontalHallway := by + refine ⟨p 0, p 1, ⟨hx, hy⟩, ?_⟩ + ext i + fin_cases i <;> rfl + +/-- Coordinate bounds place a point in the vertical side of the hallway. -/ +theorem mem_verticalHallway_of_coordinates (p : Point) + (hx : p 0 ∈ Set.Icc (0 : ℝ) 1) (hy : p 1 ≤ 1) : p ∈ verticalHallway := by + refine ⟨p 0, p 1, ⟨hx.1, hx.2, hy⟩, ?_⟩ + ext i + fin_cases i <;> rfl + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Hallway Parts Properties +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A supporting hallway lies in its outer quadrant. -/ +theorem supportingHallway_subset_outerQuadrant (s : Set Point) (t : Real.Angle) : + supportingHallway s t ⊆ (rotatingHallwayParts s t).outerQuadrant := by + change supportingPlacement s t '' hallway ⊆ + supportingPlacement s t '' hallwayParts.outerQuadrant + apply Set.image_mono + rw [hallway_eq_outerQuadrant_sdiff_innerQuadrant] + exact Set.sdiff_subset + +theorem rotatingHallwayParts_formulas (s : Set Point) (t : Real.Angle) : + supportingHallway s t = (rotatingHallwayParts s t).outerQuadrant \ (rotatingHallwayParts s + t).innerQuadrant ∧ + (rotatingHallwayParts s t).innerCorner = (supportValue s t - 1) • normalVector t + + (supportValue s (t + ((Real.pi / 2 : ℝ) : Real.Angle)) - 1) • tangentVector t ∧ + (rotatingHallwayParts s t).outerCorner = supportValue s t • normalVector t + supportValue s (t + + ((Real.pi / 2 : ℝ) : Real.Angle)) • tangentVector t ∧ + (rotatingHallwayParts s t).a = normalLine t (supportValue s t) ∧ + (rotatingHallwayParts s t).b = normalLine t (supportValue s t - 1) ∧ + (rotatingHallwayParts s t).c = normalLine (t + ((Real.pi / 2 : ℝ) : Real.Angle)) (supportValue + s (t + ((Real.pi / 2 : ℝ) : Real.Angle))) ∧ + (rotatingHallwayParts s t).d = normalLine (t + ((Real.pi / 2 : ℝ) : Real.Angle)) (supportValue + s (t + ((Real.pi / 2 : ℝ) : Real.Angle)) - 1) ∧ + (rotatingHallwayParts s t).outerQuadrant = + normalHalfPlane t (supportValue s t) false false ∩ + normalHalfPlane (t + ((Real.pi / 2 : ℝ) : Real.Angle)) (supportValue s (t + ((Real.pi / 2 + : ℝ) : Real.Angle))) false false ∧ + (rotatingHallwayParts s t).innerQuadrant = + normalHalfPlane t (supportValue s t - 1) false true ∩ + normalHalfPlane (t + ((Real.pi / 2 : ℝ) : Real.Angle)) (supportValue s (t + ((Real.pi / 2 + : ℝ) : Real.Angle)) - 1) false true := by + have hinj : Function.Injective (supportingPlacement s t) := by + intro p q h + apply (EuclideanGeometry.o.rotation t).injective + simpa only [supportingPlacement, rotationMap, add_left_inj] using h + have hsurj : Function.Surjective (supportingPlacement s t) := by + intro q + obtain ⟨p, hp⟩ := (EuclideanGeometry.o.rotation t).surjective + (q - (supportValue s t - 1) • normalVector t - + (supportValue s (t + ((Real.pi / 2 : ℝ) : Real.Angle)) - 1) • tangentVector t) + refine ⟨p, ?_⟩ + simp only [supportingPlacement, rotationMap, hp] + abel + have himage (A B : Set Point) + (h : ∀ p, p ∈ A ↔ supportingPlacement s t p ∈ B) : + supportingPlacement s t '' A = B := by + apply (Set.preimage_eq_preimage hsurj).mp + rw [Set.preimage_image_eq A hinj] + exact Set.ext h + refine ⟨?_, ?_, ?_, ?_, ?_, ?_, ?_, ?_, ?_⟩ + · apply (Set.preimage_eq_preimage hsurj).mp + change supportingPlacement s t ⁻¹' (supportingPlacement s t '' hallway) = + supportingPlacement s t ⁻¹' (supportingPlacement s t '' hallwayParts.outerQuadrant \ + supportingPlacement s t '' hallwayParts.innerQuadrant) + rw [Set.preimage_sdiff, Set.preimage_image_eq _ hinj, + Set.preimage_image_eq _ hinj, Set.preimage_image_eq _ hinj] + exact hallway_eq_outerQuadrant_sdiff_innerQuadrant + · simp [rotatingHallwayParts, supportingPlacement, hallwayParts, rotationMap] + · simp only [rotatingHallwayParts, supportingPlacement, hallwayParts, + rotationMap, Orientation.rotation_apply, rightAngleRotation_apply] + ext i + fin_cases i <;> simp [normalVector, tangentVector, frame] <;> ring + · apply himage + intro p + change p 0 = 1 ↔ inner ℝ (supportingPlacement s t p) (normalVector t) = _ + rw [inner_supportingPlacement_normalVector] + constructor <;> intro h <;> linarith + · apply himage + intro p + change p 0 = 0 ↔ inner ℝ (supportingPlacement s t p) (normalVector t) = _ + rw [inner_supportingPlacement_normalVector] + constructor <;> intro h <;> linarith + · apply himage + intro p + change p 1 = 1 ↔ inner ℝ (supportingPlacement s t p) + (normalVector (t + ((Real.pi / 2 : ℝ) : Real.Angle))) = _ + rw [normalVector_add_pi_div_two, inner_supportingPlacement_tangentVector] + constructor <;> intro h <;> linarith + · apply himage + intro p + change p 1 = 0 ↔ inner ℝ (supportingPlacement s t p) + (normalVector (t + ((Real.pi / 2 : ℝ) : Real.Angle))) = _ + rw [normalVector_add_pi_div_two, inner_supportingPlacement_tangentVector] + constructor <;> intro h <;> linarith + · apply himage + intro p + change (p 0 ≤ 1 ∧ p 1 ≤ 1) ↔ + (inner ℝ (supportingPlacement s t p) (normalVector t) ≤ _) ∧ + (inner ℝ (supportingPlacement s t p) + (normalVector (t + ((Real.pi / 2 : ℝ) : Real.Angle))) ≤ _) + rw [normalVector_add_pi_div_two, inner_supportingPlacement_normalVector, + inner_supportingPlacement_tangentVector] + constructor <;> rintro ⟨h₀, h₁⟩ <;> constructor <;> linarith + · apply himage + intro p + change (p 0 < 0 ∧ p 1 < 0) ↔ + (inner ℝ (supportingPlacement s t p) (normalVector t) < _) ∧ + (inner ℝ (supportingPlacement s t p) + (normalVector (t + ((Real.pi / 2 : ℝ) : Real.Angle))) < _) + rw [normalVector_add_pi_div_two, inner_supportingPlacement_normalVector, + inner_supportingPlacement_tangentVector] + constructor <;> rintro ⟨h₀, h₁⟩ <;> constructor <;> linarith + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Hallway Ray +-/ + +@[expose] public section + +noncomputable section + +open Set MeasureTheory + +namespace MovingSofa + +/-- Coordinate description of the downward ray of a supporting hallway. -/ +theorem mem_rotatingHallwayParts_bRay_iff (s : Set Point) (t : Real.Angle) (p : Point) : + p ∈ (rotatingHallwayParts s t).bRay ↔ + inner ℝ p (normalVector t) = supportValue s t - 1 ∧ + inner ℝ p (tangentVector t) ≤ + supportValue s (t + ((Real.pi / 2 : ℝ) : Real.Angle)) - 1 := by + constructor + · rintro ⟨q, hq, rfl⟩ + change q 0 = 0 ∧ q 1 ≤ 0 at hq + rw [inner_supportingPlacement_normalVector, inner_supportingPlacement_tangentVector] + exact ⟨by linarith [hq.1], by linarith [hq.2]⟩ + · intro hp + obtain ⟨q, rfl⟩ := (show Function.Surjective (supportingPlacement s t) by + intro p + obtain ⟨q, hq⟩ := (EuclideanGeometry.o.rotation t).surjective + (p - (supportValue s t - 1) • normalVector t - + (supportValue s (t + ((Real.pi / 2 : ℝ) : Real.Angle)) - 1) • tangentVector t) + refine ⟨q, ?_⟩ + simp only [supportingPlacement, rotationMap, hq] + abel) p + rw [inner_supportingPlacement_normalVector, inner_supportingPlacement_tangentVector] at hp + change supportingPlacement s t q ∈ supportingPlacement s t '' hallwayParts.bRay + refine ⟨q, ?_, rfl⟩ + change q 0 = 0 ∧ q 1 ≤ 0 + exact ⟨by linarith [hp.1], by linarith [hp.2]⟩ + +/-- Coordinate description of the leftward ray of a supporting hallway. -/ +theorem mem_rotatingHallwayParts_dRay_iff (s : Set Point) (t : Real.Angle) (p : Point) : + p ∈ (rotatingHallwayParts s t).dRay ↔ + inner ℝ p (normalVector t) ≤ supportValue s t - 1 ∧ + inner ℝ p (tangentVector t) = + supportValue s (t + ((Real.pi / 2 : ℝ) : Real.Angle)) - 1 := by + constructor + · rintro ⟨q, hq, rfl⟩ + change q 0 ≤ 0 ∧ q 1 = 0 at hq + rw [inner_supportingPlacement_normalVector, inner_supportingPlacement_tangentVector] + exact ⟨by linarith [hq.1], by linarith [hq.2]⟩ + · intro hp + obtain ⟨q, rfl⟩ := (show Function.Surjective (supportingPlacement s t) by + intro p + obtain ⟨q, hq⟩ := (EuclideanGeometry.o.rotation t).surjective + (p - (supportValue s t - 1) • normalVector t - + (supportValue s (t + ((Real.pi / 2 : ℝ) : Real.Angle)) - 1) • tangentVector t) + refine ⟨q, ?_⟩ + simp only [supportingPlacement, rotationMap, hq] + abel) p + rw [inner_supportingPlacement_normalVector, inner_supportingPlacement_tangentVector] at hp + change supportingPlacement s t q ∈ supportingPlacement s t '' hallwayParts.dRay + refine ⟨q, ?_, rfl⟩ + change q 0 ≤ 0 ∧ q 1 = 0 + exact ⟨by linarith [hp.1], by linarith [hp.2]⟩ + +/-- The part of a supporting hallway ray above a transverse line has the expected length. -/ +theorem hausdorffMeasure_bRay_inter_normalHalfPlane (s : Set Point) (t u h : ℝ) + (htrans : 0 < inner ℝ (tangentVector (t : Real.Angle)) + (normalVector (u : Real.Angle))) : + Measure.hausdorffMeasure 1 + ((rotatingHallwayParts s (t : Real.Angle)).bRay ∩ + normalHalfPlane (u : Real.Angle) h true false) = + ENNReal.ofReal (max 0 + ((inner ℝ (rotatingHallwayParts s (t : Real.Angle)).innerCorner + (normalVector (u : Real.Angle)) - h) / + inner ℝ (tangentVector (t : Real.Angle)) (normalVector (u : Real.Angle)))) := by + let x := (rotatingHallwayParts s (t : Real.Angle)).innerCorner + let v := tangentVector (t : Real.Angle) + let d := inner ℝ v (normalVector (u : Real.Angle)) + let α := (inner ℝ x (normalVector (u : Real.Angle)) - h) / d + have hd : 0 < d := htrans + have hxn : inner ℝ x (normalVector (t : Real.Angle)) = + supportValue s (t : Real.Angle) - 1 := by + change inner ℝ (supportingPlacement s (t : Real.Angle) (0 : Point)) + (normalVector (t : Real.Angle)) = _ + rw [inner_supportingPlacement_normalVector] + simp + have hxt : inner ℝ x v = + supportValue s ((t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) - 1 := by + change inner ℝ (supportingPlacement s (t : Real.Angle) (0 : Point)) + (tangentVector (t : Real.Angle)) = _ + rw [inner_supportingPlacement_tangentVector] + simp only [PiLp.zero_apply] + ring + have hvn : inner ℝ v (normalVector (t : Real.Angle)) = 0 := by + rw [real_inner_comm, inner_normalVector_tangentVector] + have hvv : inner ℝ v v = 1 := inner_tangentVector_self t + have hpoint (p : Point) (lam : ℝ) + (hn : inner ℝ p (normalVector (t : Real.Angle)) = + inner ℝ x (normalVector (t : Real.Angle))) + (ht : inner ℝ p v = inner ℝ x v - lam) : p = x - lam • v := by + rw [← inner_normalVector_smul_add_inner_tangentVector_smul p (t : Real.Angle), + ← inner_normalVector_smul_add_inner_tangentVector_smul x (t : Real.Angle)] + rw [hn, ht] + module + by_cases hα : 0 ≤ α + · have hset : (rotatingHallwayParts s (t : Real.Angle)).bRay ∩ + normalHalfPlane (u : Real.Angle) h true false = segment ℝ x (x - α • v) := by + ext p + change (p ∈ (rotatingHallwayParts s (t : Real.Angle)).bRay ∧ + h ≤ inner ℝ p (normalVector (u : Real.Angle))) ↔ _ + constructor + · rintro ⟨hray, hu⟩ + rw [mem_rotatingHallwayParts_bRay_iff] at hray + let lam := inner ℝ x v - inner ℝ p v + have hlam0 : 0 ≤ lam := by dsimp [lam]; rw [hxt]; linarith [hray.2] + have hp : p = x - lam • v := by + apply hpoint p lam + · rw [hray.1, hxn] + · dsimp [lam] + ring + have hlamα : lam ≤ α := by + rw [hp, inner_sub_left, real_inner_smul_left] at hu + apply (le_div_iff₀ hd).2 + dsimp [d] + nlinarith + by_cases hα0 : α = 0 + · have : lam = 0 := le_antisymm (hα0 ▸ hlamα) hlam0 + simp [hα0, hp, this] + · rw [segment_eq_image] + refine ⟨lam / α, + ⟨div_nonneg hlam0 hα, (div_le_one (lt_of_le_of_ne hα ?_)).2 hlamα⟩, ?_⟩ + · exact Ne.symm hα0 + · change (1 - lam / α) • x + (lam / α) • (x - α • v) = p + rw [hp] + rw [smul_sub, smul_smul, div_mul_cancel₀ _ hα0] + module + · intro hp + rw [segment_eq_image] at hp + obtain ⟨r, hr, rfl⟩ := hp + have heq : (1 - r) • x + r • (x - α • v) = x - (r * α) • v := by module + rw [show (fun θ : ℝ ↦ (1 - θ) • x + θ • (x - α • v)) r = + x - (r * α) • v from heq] + constructor + · rw [mem_rotatingHallwayParts_bRay_iff] + constructor + · simp only [inner_sub_left, real_inner_smul_left, hvn, mul_zero, sub_zero, hxn] + · simp only [inner_sub_left, real_inner_smul_left] + change inner ℝ x v - r * α * inner ℝ v v ≤ _ + rw [hvv, mul_one, hxt] + nlinarith [mul_nonneg hr.1 hα] + · simp only [inner_sub_left, real_inner_smul_left] + have hrα : r * α ≤ α := by nlinarith [hr.1, hr.2, hα] + have hαeq : inner ℝ x (normalVector (u : Real.Angle)) - h = α * d := by + dsimp [α] + rw [div_mul_cancel₀ _ hd.ne'] + dsimp [d] at hαeq ⊢ + nlinarith + rw [hset, MeasureTheory.hausdorffMeasure_segment, edist_dist, dist_eq_norm] + have hvnorm : ‖v‖ = 1 := by + dsimp [v] + rw [← sq_eq_sq₀ (norm_nonneg _) (by norm_num : (0 : ℝ) ≤ 1)] + rw [EuclideanSpace.norm_sq_eq] + simp [tangentVector, frame, Fin.sum_univ_two, Real.sin_sq_add_cos_sq] + have hsub : x - (x - α • v) = α • v := by module + rw [hsub, norm_smul, hvnorm, mul_one] + simp only [Real.norm_eq_abs, abs_of_nonneg hα] + simp only [x, v, d, α, max_eq_right hα] + · have hset : (rotatingHallwayParts s (t : Real.Angle)).bRay ∩ + normalHalfPlane (u : Real.Angle) h true false = ∅ := by + ext p + simp only [Set.mem_empty_iff_false, iff_false] + intro hp + change p ∈ (rotatingHallwayParts s (t : Real.Angle)).bRay ∧ + h ≤ inner ℝ p (normalVector (u : Real.Angle)) at hp + rw [mem_rotatingHallwayParts_bRay_iff] at hp + let lam := inner ℝ x v - inner ℝ p v + have hlam0 : 0 ≤ lam := by dsimp [lam]; rw [hxt]; linarith [hp.1.2] + have hp' : p = x - lam • v := by + apply hpoint p lam + · rw [hp.1.1, hxn] + · dsimp [lam] + ring + have hlamα : lam ≤ α := by + have hu := hp.2 + rw [hp', inner_sub_left, real_inner_smul_left] at hu + apply (le_div_iff₀ hd).2 + dsimp [d] + nlinarith + linarith + rw [hset] + have hα' : α ≤ 0 := le_of_not_ge hα + simp only [measure_empty, ENNReal.ofReal_zero, x, v, d, α, max_eq_left hα'] + +/-- A planar set on one line of a moving frame, with bounded tangent coordinate, is short. -/ +theorem hausdorffMeasure_le_of_frame_bounds {S : Set Point} {t e lo hi : ℝ} + (hS : ∀ p ∈ S, inner ℝ p (normalVector (t : Real.Angle)) = e ∧ + lo ≤ inner ℝ p (tangentVector (t : Real.Angle)) ∧ + inner ℝ p (tangentVector (t : Real.Angle)) ≤ hi) : + Measure.hausdorffMeasure 1 S ≤ ENNReal.ofReal (max 0 (hi - lo)) := by + have hvv : inner ℝ (tangentVector (t : Real.Angle)) (tangentVector (t : Real.Angle)) = 1 := + inner_tangentVector_self t + have hnorm : ‖tangentVector (t : Real.Angle)‖ = 1 := by + have h := real_inner_self_eq_norm_mul_norm (tangentVector (t : Real.Angle)) + rw [hvv] at h + nlinarith [norm_nonneg (tangentVector (t : Real.Angle))] + have hsub : S ⊆ segment ℝ + (e • normalVector (t : Real.Angle) + lo • tangentVector (t : Real.Angle)) + (e • normalVector (t : Real.Angle) + max lo hi • tangentVector (t : Real.Angle)) := by + intro p hp + obtain ⟨hpn, hplo, hphi⟩ := hS p hp + obtain ⟨y, hy⟩ : ∃ y : ℝ, inner ℝ p (tangentVector (t : Real.Angle)) = y := ⟨_, rfl⟩ + rw [hy] at hplo hphi + have hdecomp : p = e • normalVector (t : Real.Angle) + y • tangentVector (t : Real.Angle) := by + conv_lhs => rw [← inner_normalVector_smul_add_inner_tangentVector_smul p (t : Real.Angle)] + rw [hpn, hy] + have hym : y ≤ max lo hi := hphi.trans (le_max_right lo hi) + rcases le_or_gt (max lo hi) lo with hml | hml + · have hylo : y = lo := le_antisymm (hym.trans hml) hplo + rw [hdecomp, hylo] + exact left_mem_segment ℝ _ _ + · rw [segment_eq_image] + refine ⟨(y - lo) / (max lo hi - lo), + ⟨div_nonneg (by linarith) (by linarith), ?_⟩, ?_⟩ + · rw [div_le_one (by linarith)] + linarith + · have hθ : lo + (y - lo) / (max lo hi - lo) * (max lo hi - lo) = y := by + field_simp + ring + have hexp : (1 - (y - lo) / (max lo hi - lo)) • + (e • normalVector (t : Real.Angle) + lo • tangentVector (t : Real.Angle)) + + ((y - lo) / (max lo hi - lo)) • + (e • normalVector (t : Real.Angle) + + max lo hi • tangentVector (t : Real.Angle)) = + e • normalVector (t : Real.Angle) + + (lo + (y - lo) / (max lo hi - lo) * (max lo hi - lo)) • + tangentVector (t : Real.Angle) := by + module + change (1 - (y - lo) / (max lo hi - lo)) • + (e • normalVector (t : Real.Angle) + lo • tangentVector (t : Real.Angle)) + + ((y - lo) / (max lo hi - lo)) • + (e • normalVector (t : Real.Angle) + + max lo hi • tangentVector (t : Real.Angle)) = p + rw [hexp, hθ] + exact hdecomp.symm + refine (measure_mono hsub).trans (le_of_eq ?_) + rw [MeasureTheory.hausdorffMeasure_segment, edist_dist, dist_eq_norm] + congr 1 + have hdiff : e • normalVector (t : Real.Angle) + lo • tangentVector (t : Real.Angle) - + (e • normalVector (t : Real.Angle) + max lo hi • tangentVector (t : Real.Angle)) = + (lo - max lo hi) • tangentVector (t : Real.Angle) := by module + rw [hdiff, norm_smul, hnorm, mul_one, Real.norm_eq_abs, + abs_of_nonpos (sub_nonpos.mpr (le_max_left lo hi)), neg_sub] + rcases le_total hi lo with hle | hle + · rw [max_eq_left hle, max_eq_left (by linarith), sub_self] + · rw [max_eq_right hle, max_eq_right (by linarith)] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Hallway Support +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem outerCorner_eq_support_sum (K : ConvexBody Point) (t : ℝ) : + (rotatingHallwayParts (K : Set Point) (t : Real.Angle)).outerCorner = + supportValue K (t : Real.Angle) • normalVector (t : Real.Angle) + + supportValue K ((t + Real.pi / 2 : ℝ) : Real.Angle) • tangentVector (t : Real.Angle) := by + have hrot : rotationMap (t : Real.Angle) (!₂[1, 1] : Point) = + normalVector (t : Real.Angle) + tangentVector (t : Real.Angle) := by + unfold rotationMap + rw [Orientation.rotation_apply, rightAngleRotation_apply] + ext i + fin_cases i <;> simp [normalVector, tangentVector, frame] + ring + simp only [rotatingHallwayParts, supportingPlacement, hallwayParts, hrot, Real.Angle.coe_add] + module + +/-- Two supporting lines at angular difference exactly `π / 2` meet at the outer corner of the +rotating supporting hallway. -/ +theorem supportingIntersection_add_pi_div_two_eq_outerCorner (K : ConvexBody Point) (t : ℝ) : + supportingIntersection K (t : Real.Angle) ((t + Real.pi / 2 : ℝ) : Real.Angle) = + (rotatingHallwayParts (K : Set Point) (t : Real.Angle)).outerCorner := by + have hd : ((t + Real.pi / 2 : ℝ) : Real.Angle) - (t : Real.Angle) = + ((Real.pi / 2 : ℝ) : Real.Angle) := by + rw [← Real.Angle.coe_sub, show t + Real.pi / 2 - t = Real.pi / 2 from by ring] + rw [supportingIntersection, hd, Real.Angle.cos_coe, Real.Angle.sin_coe, Real.cos_pi_div_two, + Real.sin_pi_div_two, outerCorner_eq_support_sum] + simp only [mul_zero, sub_zero, div_one] + +/-- The outer corner of the rotating supporting hallway is its inner corner translated by the +frame sum `u_t + v_t`. -/ +theorem outerCorner_eq_innerCorner_add (K : ConvexBody Point) (t : ℝ) : + (rotatingHallwayParts (K : Set Point) (t : Real.Angle)).outerCorner = + (rotatingHallwayParts (K : Set Point) (t : Real.Angle)).innerCorner + + (normalVector (t : Real.Angle) + tangentVector (t : Real.Angle)) := by + rw [outerCorner_eq_support_sum] + simp only [rotatingHallwayParts, hallwayParts, supportingPlacement, rotationMap, + map_zero, zero_add, Real.Angle.coe_add] + module + +theorem continuous_outerCorner (K : ConvexBody Point) : + Continuous + (fun s : ℝ ↦ (rotatingHallwayParts (K : Set Point) (s : Real.Angle)).outerCorner) := by + simp_rw [outerCorner_eq_support_sum] + exact ((continuous_supportValue_real K).smul continuous_normalVector_real).add + (((continuous_supportValue_real K).comp (continuous_id.add_const _)).smul + (continuous_iff_continuousAt.mpr fun t ↦ (hasDerivAt_tangentVector t).continuousAt)) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Parallelogram +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The strip intersection is described by its vertical and rotated coordinates. -/ +theorem mem_stripParallelogram_iff (ω : ℝ) (p : Point) : + p ∈ (stripParallelogram ω).1 ↔ + (0 ≤ p 1 ∧ p 1 ≤ 1) ∧ + (0 ≤ inner ℝ p (normalVector (ω : Real.Angle)) ∧ + inner ℝ p (normalVector (ω : Real.Angle)) ≤ 1) := by + change ((0 ≤ p 1 ∧ p 1 ≤ 1) ∧ + p ∈ rotationMap (ω : Real.Angle) '' {q : Point | 0 ≤ q 0 ∧ q 0 ≤ 1}) ↔ _ + apply and_congr_right + intro _ + constructor + · rintro ⟨q, hq, rfl⟩ + simpa only [inner_rotationMap_normalVector, Set.mem_ofPred_eq] using hq + · intro hp + obtain ⟨q, rfl⟩ := (EuclideanGeometry.o.rotation (ω : Real.Angle)).surjective p + change 0 ≤ inner ℝ (rotationMap (ω : Real.Angle) q) + (normalVector (ω : Real.Angle)) ∧ + inner ℝ (rotationMap (ω : Real.Angle) q) (normalVector (ω : Real.Angle)) ≤ 1 at hp + exact ⟨q, by + simpa only [inner_rotationMap_normalVector, Set.mem_ofPred_eq] using hp, rfl⟩ + +/-- Projection on the downward unit normal negates the vertical coordinate. -/ +theorem inner_normalVector_three_pi_div_two (p : Point) : + inner ℝ p (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) = -p 1 := by + simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two, + show 3 * Real.pi / 2 = Real.pi + Real.pi / 2 by ring, Real.cos_add, Real.sin_add, + -Real.Angle.coe_add] + +/-- The horizontal coordinate is the projection on the normal at angle zero. -/ +theorem inner_normalVector_zero (p : Point) : + inner ℝ p (normalVector ((0 : ℝ) : Real.Angle)) = p 0 := by + simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + +/-- The vertical coordinate is the projection on the tangent at angle zero. -/ +theorem inner_tangentVector_zero (p : Point) : + inner ℝ p (tangentVector ((0 : ℝ) : Real.Angle)) = p 1 := by + simp [tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + +/-- The vertical coordinate is the projection on the upward unit normal. -/ +theorem inner_normalVector_pi_div_two (p : Point) : + inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = p 1 := by + simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + +/-- Projection on the leftward tangent at a right angle negates the horizontal coordinate. -/ +theorem inner_tangentVector_pi_div_two (p : Point) : + inner ℝ p (tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) = -p 0 := by + simp [tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + +/-- Projection on the leftward tangent at the straight angle negates the vertical coordinate. -/ +theorem inner_tangentVector_pi (p : Point) : + inner ℝ p (tangentVector ((Real.pi : ℝ) : Real.Angle)) = -p 1 := by + simp [tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + +/-- The projection of a multiple of the horizontal normal on another unit normal. -/ +theorem inner_smul_normalVector_zero (x t : ℝ) : + inner ℝ (x • normalVector (0 : Real.Angle)) (normalVector (t : Real.Angle)) = + x * Real.cos t := by + simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two, mul_comm] + +/-- The horizontal bottom of the strip intersection has zero downward support. -/ +theorem supportValue_stripParallelogram_bottom (ω : ℝ) : + supportValue (stripParallelogram ω).1 ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 := by + have hzero : (0 : Point) ∈ (stripParallelogram ω).1 := by + rw [mem_stripParallelogram_iff] + simp + have hbound : ∀ y ∈ (fun p ↦ inner ℝ p (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle))) '' + (stripParallelogram ω).1, y ≤ 0 := by + rintro y ⟨p, hp, rfl⟩ + dsimp only + rw [inner_normalVector_three_pi_div_two] + exact neg_nonpos.mpr ((mem_stripParallelogram_iff ω p).1 hp).1.1 + have hmem : (0 : ℝ) ∈ (fun p ↦ inner ℝ p (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle))) '' + (stripParallelogram ω).1 := ⟨0, hzero, by simp⟩ + exact le_antisymm (csSup_le ⟨0, hmem⟩ hbound) (le_csSup ⟨0, hbound⟩ hmem) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Parallelogram Gap +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem parallelogram_gap (ω : ℝ) (hω : ω ∈ Set.Ico 0 (Real.pi / 2)) : + (stripParallelogram ω).2.2 - tangentVector 0 = + Real.tan ((Real.pi / 2 - ω) / 2) • normalVector 0 ∧ + (stripParallelogram ω).2.2 - normalVector (ω : Real.Angle) = + Real.tan ((Real.pi / 2 - ω) / 2) • tangentVector (ω : Real.Angle) ∧ + (stripParallelogram ω).1 ∩ + (supportingLineHalfPlane (stripParallelogram ω).1 + ((3 * Real.pi / 2 : ℝ) : Real.Angle)).1 = + segment ℝ (0 : Point) ((Real.cos ω)⁻¹ • normalVector 0) ∧ + normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0 ∩ + normalLine (ω : Real.Angle) 1 = + {((Real.cos ω)⁻¹ • normalVector 0 : Point)} ∧ + Real.tan ((Real.pi / 2 - ω) / 2) = (Real.cos ω)⁻¹ - Real.tan ω := by + have hcos : 0 < Real.cos ω := + Real.cos_pos_of_mem_Ioo ⟨by linarith [Real.pi_pos, hω.1], hω.2⟩ + have hgap := Real.tan_pi_div_two_sub_div_two ω hω + have hfirst : (stripParallelogram ω).2.2 - tangentVector 0 = + Real.tan ((Real.pi / 2 - ω) / 2) • normalVector 0 := by + ext i + fin_cases i <;> simp [stripParallelogram, normalVector, tangentVector, frame] + ring_nf + have hsecond : (stripParallelogram ω).2.2 - normalVector (ω : Real.Angle) = + Real.tan ((Real.pi / 2 - ω) / 2) • tangentVector (ω : Real.Angle) := by + have harg : Real.pi / 4 - ω / 2 = (Real.pi / 2 - ω) / 2 := by ring + have hc : Real.tan ((Real.pi / 2 - ω) / 2) * Real.cos ω = 1 - Real.sin ω := by + rw [hgap, Real.tan_eq_sin_div_cos] + field_simp [hcos.ne'] + have hc' : Real.tan ((Real.pi / 2 - ω) / 2) * (1 + Real.sin ω) = + Real.cos ω := by + rw [hgap, Real.tan_eq_sin_div_cos] + field_simp [hcos.ne'] + nlinarith [Real.sin_sq_add_cos_sq ω] + ext i + fin_cases i <;> + simp [stripParallelogram, normalVector, tangentVector, frame, harg] <;> nlinarith + have hedge : (stripParallelogram ω).1 ∩ + (supportingLineHalfPlane (stripParallelogram ω).1 + ((3 * Real.pi / 2 : ℝ) : Real.Angle)).1 = + segment ℝ (0 : Point) ((Real.cos ω)⁻¹ • normalVector 0) := by + rw [supportingLineHalfPlane, supportValue_stripParallelogram_bottom] + ext p + simp only [Set.mem_inter_iff, mem_stripParallelogram_iff, normalLine, + Set.mem_ofPred_eq, segment_eq_image, Set.mem_image, Set.mem_Icc] + rw [inner_normalVector_three_pi_div_two] + constructor + · rintro ⟨⟨⟨hp₀, hp₁⟩, hq₀, hq₁⟩, hbottom⟩ + have hpzero : p 1 = 0 := by linarith + have hx₀ : 0 ≤ p 0 * Real.cos ω := by + simpa [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two, hpzero, + mul_comm] using hq₀ + have hx₁ : p 0 * Real.cos ω ≤ 1 := by + simpa [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two, hpzero, + mul_comm] using hq₁ + refine ⟨p 0 * Real.cos ω, ⟨hx₀, hx₁⟩, ?_⟩ + ext i + fin_cases i <;> simp [normalVector, frame, hpzero, hcos.ne'] + · rintro ⟨x, hx, rfl⟩ + have hinner : inner ℝ (x • (Real.cos ω)⁻¹ • normalVector 0) + (normalVector (ω : Real.Angle)) = x := by + simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + field_simp [hcos.ne'] + constructor + · exact ⟨by simp [normalVector, frame], by simpa [hinner] using hx⟩ + · simp [normalVector, frame] + have hintersection : normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0 ∩ + normalLine (ω : Real.Angle) 1 = + {((Real.cos ω)⁻¹ • normalVector 0 : Point)} := by + ext p + simp only [Set.mem_inter_iff, normalLine, Set.mem_ofPred_eq, Set.mem_singleton_iff] + constructor + · rintro ⟨hvertical, hrotated⟩ + have hpone : p 1 = 0 := by + simpa [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] using hvertical + have hpzero : p 0 * Real.cos ω = 1 := by + simpa [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two, hpone, + mul_comm] using hrotated + ext i + fin_cases i + · simp [normalVector, frame] + field_simp [hcos.ne'] + exact hpzero + · simp [normalVector, frame, hpone] + · intro hp + rw [hp] + constructor + · simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + · simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + field_simp [hcos.ne'] + exact ⟨hfirst, hsecond, hedge, hintersection, hgap⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Path Half Plane Cap +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The set satisfying the horizontal base and all upper support constraints of a path. -/ +def outerPathConstraintSet (x : Set.Icc (0 : ℝ) (Real.pi / 2) → Point) : Set Point := + {q | 0 ≤ q 1 ∧ ∀ t, + inner ℝ q (normalVector (t.val : Real.Angle)) ≤ + inner ℝ (x t) (normalVector (t.val : Real.Angle)) + 1 ∧ + inner ℝ q (tangentVector (t.val : Real.Angle)) ≤ + inner ℝ (x t) (tangentVector (t.val : Real.Angle)) + 1} + +theorem outerPathConstraintSet_isCap + (x : Set.Icc (0 : ℝ) (Real.pi / 2) → Point) + (hx : x ⟨0, le_rfl, by positivity⟩ = 0) + (hbottom : ∃ p ∈ outerPathConstraintSet x, p 1 = 0) + (htop : ∃ p ∈ outerPathConstraintSet x, p 1 = 1) : + ∃ K : ConvexBody Point, (K : Set Point) = outerPathConstraintSet x ∧ + IsCap (Real.pi / 2) K := by + have hpi : (0 : ℝ) ≤ Real.pi / 2 := by positivity + have hxO : x ⟨0, le_rfl, hpi⟩ = 0 := hx + -- half-plane representation with cap-admissible normals + obtain ⟨C, hCnormals, hrep⟩ : + ∃ C : Set (Real.Angle × ℝ), + (∀ c ∈ C, c.1 ∈ ((fun t : ℝ ↦ (t : Real.Angle)) '' capUpperAngles (Real.pi / 2)) ∪ + capLowerNormals (Real.pi / 2)) ∧ + outerPathConstraintSet x = ⋂ c ∈ C, normalHalfPlane c.1 c.2 false false := by + refine ⟨{(((3 * Real.pi / 2 : ℝ) : Real.Angle), (0 : ℝ))} ∪ + ((Set.range fun t : Set.Icc (0 : ℝ) (Real.pi / 2) ↦ + (((t.val : ℝ) : Real.Angle), + inner ℝ (x t) (normalVector ((t.val : ℝ) : Real.Angle)) + 1)) ∪ + (Set.range fun t : Set.Icc (0 : ℝ) (Real.pi / 2) ↦ + (((t.val + Real.pi / 2 : ℝ) : Real.Angle), + inner ℝ (x t) (tangentVector ((t.val : ℝ) : Real.Angle)) + 1))), ?_, ?_⟩ + · rintro c (rfl | ⟨t, rfl⟩ | ⟨t, rfl⟩) + · exact Or.inr (Or.inr rfl) + · exact Or.inl ⟨t.val, Or.inl ⟨t.2.1, t.2.2⟩, rfl⟩ + · exact Or.inl ⟨t.val + Real.pi / 2, + Or.inr ⟨by linarith [t.2.1], by linarith [t.2.2]⟩, rfl⟩ + · ext q + simp only [Set.mem_iInter, Set.mem_union, Set.mem_singleton_iff, Set.mem_range] + constructor + · rintro ⟨hq0, hqt⟩ c (rfl | ⟨t, rfl⟩ | ⟨t, rfl⟩) + · change inner ℝ q (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) ≤ 0 + rw [inner_normalVector_three_pi_div_two] + linarith + · exact (hqt t).1 + · change inner ℝ q (normalVector ((t.val + Real.pi / 2 : ℝ) : Real.Angle)) ≤ _ + rw [normalVector_add_pi_div_two_real] + exact (hqt t).2 + · intro hq + refine ⟨?_, fun t ↦ ⟨?_, ?_⟩⟩ + · have h : inner ℝ q (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) ≤ 0 := + hq _ (Or.inl rfl) + rw [inner_normalVector_three_pi_div_two] at h + linarith + · exact hq _ (Or.inr (Or.inl ⟨t, rfl⟩)) + · have h : inner ℝ q (normalVector ((t.val + Real.pi / 2 : ℝ) : Real.Angle)) ≤ + inner ℝ (x t) (tangentVector ((t.val : ℝ) : Real.Angle)) + 1 := + hq _ (Or.inr (Or.inr ⟨t, rfl⟩)) + rwa [normalVector_add_pi_div_two_real] at h + -- the constraints at the two endpoints confine the set to a bounded rectangle + have hxbox : ∀ q ∈ outerPathConstraintSet x, + x ⟨Real.pi / 2, hpi, le_rfl⟩ 0 - 1 ≤ q 0 ∧ q 0 ≤ 1 ∧ 0 ≤ q 1 ∧ q 1 ≤ 1 := by + rintro q ⟨hq0, hqt⟩ + have h0n : inner ℝ q (normalVector ((0 : ℝ) : Real.Angle)) ≤ + inner ℝ (x ⟨0, le_rfl, hpi⟩) (normalVector ((0 : ℝ) : Real.Angle)) + 1 := + (hqt ⟨0, le_rfl, hpi⟩).1 + have h0t : inner ℝ q (tangentVector ((0 : ℝ) : Real.Angle)) ≤ + inner ℝ (x ⟨0, le_rfl, hpi⟩) (tangentVector ((0 : ℝ) : Real.Angle)) + 1 := + (hqt ⟨0, le_rfl, hpi⟩).2 + have hTt : inner ℝ q (tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) ≤ + inner ℝ (x ⟨Real.pi / 2, hpi, le_rfl⟩) + (tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) + 1 := + (hqt ⟨Real.pi / 2, hpi, le_rfl⟩).2 + rw [hxO, inner_zero_left, inner_normalVector_zero] at h0n + rw [hxO, inner_zero_left, inner_tangentVector_zero] at h0t + rw [inner_tangentVector_pi_div_two, inner_tangentVector_pi_div_two] at hTt + exact ⟨by linarith, by linarith, hq0, by linarith⟩ + obtain ⟨pb, hpb, hpb1⟩ := hbottom + obtain ⟨pt, hpt, hpt1⟩ := htop + obtain ⟨K, hKset⟩ : ∃ K : ConvexBody Point, (K : Set Point) = outerPathConstraintSet x := by + refine ⟨{ carrier := outerPathConstraintSet x + convex' := ?_ + isCompact' := ?_ + nonempty' := ⟨pb, hpb⟩ }, rfl⟩ + · rw [hrep] + exact convex_iInter fun c ↦ convex_iInter fun _ ↦ convex_normalHalfPlane c.1 c.2 false + · refine Metric.isCompact_iff_isClosed_bounded.2 ⟨?_, ?_⟩ + · rw [hrep] + exact isClosed_iInter fun c ↦ isClosed_iInter fun _ ↦ + isClosed_normalHalfPlane c.1 c.2 false + · refine (EuclideanSpace.isBounded_coordinate_rectangle + (x ⟨Real.pi / 2, hpi, le_rfl⟩ 0 - 1) 1 0 1).subset fun q hq ↦ ?_ + obtain ⟨h1, h2, h3, h4⟩ := hxbox q hq + exact ⟨h1, h2, h3, h4⟩ + -- the strip inclusion and the two contacts fix the four normalized support values + have hsvTop : supportValue (K : Set Point) ((Real.pi / 2 : ℝ) : Real.Angle) = 1 := by + refine le_antisymm (supportValue_le_of_subset_normalHalfPlane K _ 1 fun q hq ↦ ?_) ?_ + · change inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) ≤ 1 + rw [inner_normalVector_pi_div_two] + rw [hKset] at hq + exact (hxbox q hq).2.2.2 + · have h := inner_le_supportValue K (hKset ▸ hpt) ((Real.pi / 2 : ℝ) : Real.Angle) + rwa [inner_normalVector_pi_div_two, hpt1] at h + have hsvBot : supportValue (K : Set Point) ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 := by + refine le_antisymm (supportValue_le_of_subset_normalHalfPlane K _ 0 fun q hq ↦ ?_) ?_ + · change inner ℝ q (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) ≤ 0 + rw [inner_normalVector_three_pi_div_two] + rw [hKset] at hq + linarith [(hxbox q hq).2.2.1] + · have h := inner_le_supportValue K (hKset ▸ hpb) ((3 * Real.pi / 2 : ℝ) : Real.Angle) + rwa [inner_normalVector_three_pi_div_two, hpb1, neg_zero] at h + have hang : ((Real.pi / 2 + Real.pi : ℝ) : Real.Angle) = + ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + congr 1 + ring + exact ⟨K, hKset, by positivity, le_rfl, hsvTop, hsvTop, by rw [hang]; exact hsvBot, hsvBot, + C, hCnormals, hKset.trans hrep⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Reflection +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Exchange the two coordinates of the Euclidean plane. -/ +def coordinateSwap : Point ≃ₗᵢ[ℝ] Point := + LinearIsometryEquiv.piLpCongrLeft 2 ℝ ℝ (Equiv.swap 0 1) + +/-- Reflection exchanging the normals at angles zero and `ω + π / 2`. -/ +def capReflection (ω : ℝ) : Point ≃ₗᵢ[ℝ] Point := + coordinateSwap.trans (EuclideanGeometry.o.rotation (ω : Real.Angle)) + +/-- First coordinate of the cap reflection. -/ +theorem capReflection_apply_zero (ω : ℝ) (p : Point) : + capReflection ω p 0 = -Real.sin ω * p 0 + Real.cos ω * p 1 := by + rw [capReflection, LinearIsometryEquiv.trans_apply, Orientation.rotation_apply, + rightAngleRotation_apply] + simp [coordinateSwap] + ring + +/-- Second coordinate of the cap reflection. -/ +theorem capReflection_apply_one (ω : ℝ) (p : Point) : + capReflection ω p 1 = Real.cos ω * p 0 + Real.sin ω * p 1 := by + rw [capReflection, LinearIsometryEquiv.trans_apply, Orientation.rotation_apply, + rightAngleRotation_apply] + simp [coordinateSwap] + +/-- Reflection across the line through the upper vertex of the cap strip. -/ +def stripTopReflection (ω : ℝ) (p : Point) : Point := + (2 * inner ℝ p (stripParallelogram ω).2.2 / + inner ℝ (stripParallelogram ω).2.2 (stripParallelogram ω).2.2) • + (stripParallelogram ω).2.2 - p + +/-- The strip-top reflection is the explicit cap reflection. -/ +theorem stripTopReflection_eq_capReflection (ω : ℝ) + (hω0 : 0 < ω) (hωle : ω ≤ Real.pi / 2) : + stripTopReflection ω = capReflection ω := by + funext p + by_cases hωtop : ω = Real.pi / 2 + · subst ω + have harg : Real.pi / 4 - (Real.pi / 2) / 2 = 0 := by ring + ext i + fin_cases i + · change stripTopReflection (Real.pi / 2) p 0 = capReflection (Real.pi / 2) p 0 + rw [capReflection_apply_zero] + simp [stripTopReflection, stripParallelogram, harg, PiLp.inner_apply, + Fin.sum_univ_two] + · change stripTopReflection (Real.pi / 2) p 1 = capReflection (Real.pi / 2) p 1 + rw [capReflection_apply_one] + have hnorm : ‖(!₂[0, 1] : Point)‖ ^ 2 = 1 := by + simpa [Fin.sum_univ_two] using + (EuclideanSpace.norm_sq_eq (!₂[0, 1] : Point)) + simp [stripTopReflection, stripParallelogram, harg, PiLp.inner_apply, + Fin.sum_univ_two, hnorm] + ring + · have hωlt : ω < Real.pi / 2 := lt_of_le_of_ne hωle hωtop + let C := Real.cos ω + let S := Real.sin ω + let c := Real.tan (Real.pi / 4 - ω / 2) + have hC : 0 < C := + Real.cos_pos_of_mem_Ioo ⟨by linarith [Real.pi_pos, hω0], hωlt⟩ + have hgap : c = C⁻¹ - Real.tan ω := by + simpa [c, show Real.pi / 4 - ω / 2 = (Real.pi / 2 - ω) / 2 by ring] + using Real.tan_pi_div_two_sub_div_two ω ⟨hω0.le, hωlt⟩ + have htan : Real.tan ω = S / C := Real.tan_eq_sin_div_cos ω + have hcC : c * C = 1 - S := by + rw [hgap, htan] + field_simp [hC.ne'] + have hc : c * (1 + S) = C := by + rw [hgap, htan] + field_simp [hC.ne'] + nlinarith [hcC, Real.sin_sq_add_cos_sq ω] + have hcsq : c * c * (1 + S) = 1 - S := by + calc + c * c * (1 + S) = c * (c * (1 + S)) := by ring + _ = c * C := by rw [hc] + _ = 1 - S := hcC + have hcoef₀ : c * c - 1 = -S * (c * c + 1) := by + nlinarith [hcsq] + have hbase : 2 = (1 + S) * (c * c + 1) := by + nlinarith [hcoef₀] + have hcoef₁ : 2 * c = C * (c * c + 1) := by + rw [← hc] + linear_combination c * hbase + have hcoef₂ : 1 - c * c = S * (c * c + 1) := by + nlinarith [hcsq] + have hden : c * c + 1 ≠ 0 := by nlinarith [sq_nonneg c] + ext i + fin_cases i + · change stripTopReflection ω p 0 = capReflection ω p 0 + rw [capReflection_apply_zero] + simp only [stripTopReflection, stripParallelogram, PiLp.inner_apply, + Fin.sum_univ_two, Matrix.cons_val_zero, Matrix.cons_val_one, + Real.inner_apply, PiLp.smul_apply, PiLp.sub_apply, smul_eq_mul] + simp only [mul_one] + change 2 * (p 0 * c + p 1) / (c * c + 1) * c - p 0 = + -S * p 0 + C * p 1 + field_simp [hden] + linear_combination (p 0) * hcoef₀ + (p 1) * hcoef₁ + · change stripTopReflection ω p 1 = capReflection ω p 1 + rw [capReflection_apply_one] + simp only [stripTopReflection, stripParallelogram, PiLp.inner_apply, + Fin.sum_univ_two, Matrix.cons_val_zero, Matrix.cons_val_one, + Real.inner_apply, PiLp.smul_apply, PiLp.sub_apply, smul_eq_mul] + simp only [mul_one] + change 2 * (p 0 * c + p 1) / (c * c + 1) - p 1 = + C * p 0 + S * p 1 + field_simp [hden] + linear_combination (p 0) * hcoef₁ + (p 1) * hcoef₂ + +/-- The strip-top reflection fixes the upper strip vertex. -/ +theorem stripTopReflection_stripTop (ω : ℝ) : + stripTopReflection ω (stripParallelogram ω).2.2 = + (stripParallelogram ω).2.2 := by + have ho : (stripParallelogram ω).2.2 ≠ (0 : Point) := by + intro h + have h1 := congrArg (fun p : Point ↦ p 1) h + simp [stripParallelogram] at h1 + unfold stripTopReflection + have hden : inner ℝ (stripParallelogram ω).2.2 + (stripParallelogram ω).2.2 ≠ 0 := inner_self_ne_zero.mpr ho + rw [mul_div_assoc, div_self hden] + module + +/-- The cap reflection is an involution. -/ +theorem capReflection_involutive (ω : ℝ) (p : Point) : + capReflection ω (capReflection ω p) = p := by + ext i + fin_cases i + · change capReflection ω (capReflection ω p) 0 = p 0 + rw [capReflection_apply_zero, capReflection_apply_zero, capReflection_apply_one] + linear_combination (p 0) * (Real.sin_sq_add_cos_sq ω) + · change capReflection ω (capReflection ω p) 1 = p 1 + rw [capReflection_apply_one, capReflection_apply_zero, capReflection_apply_one] + linear_combination (p 1) * (Real.sin_sq_add_cos_sq ω) + +/-- Reflection of a normal angle across the cap-reflection axis. -/ +def reflectedAngle (ω : ℝ) (a : Real.Angle) : Real.Angle := + ((ω + Real.pi / 2 : ℝ) : Real.Angle) - a + +/-- Reflection of normal angles is involutive. -/ +theorem reflectedAngle_involutive (ω : ℝ) (a : Real.Angle) : + reflectedAngle ω (reflectedAngle ω a) = a := by + simp only [reflectedAngle] + abel + +/-- Coercion formula for a reflected real angle. -/ +theorem reflectedAngle_coe (ω t : ℝ) : + reflectedAngle ω (t : Real.Angle) = + ((ω + Real.pi / 2 - t : ℝ) : Real.Angle) := by + simp only [reflectedAngle, Real.Angle.coe_sub, Real.Angle.coe_add] + +/-- The cap reflection transports normal vectors at real angles. -/ +theorem capReflection_normalVector (ω a : ℝ) : + capReflection ω (normalVector (a : Real.Angle)) = + normalVector ((ω + Real.pi / 2 - a : ℝ) : Real.Angle) := by + have hrho : (ω : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) - + (a : Real.Angle) = ((ω + Real.pi / 2 - a : ℝ) : Real.Angle) := by + rw [← Real.Angle.coe_add, ← Real.Angle.coe_sub] + ext i + fin_cases i + · change capReflection ω (normalVector (a : Real.Angle)) 0 = + normalVector ((ω + Real.pi / 2 - a : ℝ) : Real.Angle) 0 + rw [capReflection_apply_zero, ← hrho] + simp only [Fin.isValue, normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, + Matrix.cons_val_zero, neg_mul, Matrix.cons_val_one, Matrix.cons_val_fin_one] + rw [hrho, Real.Angle.cos_coe, Real.cos_sub, Real.sin_add, Real.cos_add] + simp + · change capReflection ω (normalVector (a : Real.Angle)) 1 = + normalVector ((ω + Real.pi / 2 - a : ℝ) : Real.Angle) 1 + rw [capReflection_apply_one, ← hrho] + simp only [Fin.isValue, normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, + Matrix.cons_val_zero, Matrix.cons_val_one, Matrix.cons_val_fin_one] + rw [hrho, Real.Angle.sin_coe, Real.sin_sub, Real.sin_add, Real.cos_add] + simp + +/-- The cap reflection reverses tangent vectors at real angles. -/ +theorem capReflection_tangentVector (ω a : ℝ) : + capReflection ω (tangentVector (a : Real.Angle)) = + -tangentVector ((ω + Real.pi / 2 - a : ℝ) : Real.Angle) := by + have hrho : (ω : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) - + (a : Real.Angle) = ((ω + Real.pi / 2 - a : ℝ) : Real.Angle) := by + rw [← Real.Angle.coe_add, ← Real.Angle.coe_sub] + ext i + fin_cases i + · change capReflection ω (tangentVector (a : Real.Angle)) 0 = + (-tangentVector ((ω + Real.pi / 2 - a : ℝ) : Real.Angle)) 0 + rw [capReflection_apply_zero, ← hrho] + simp only [Fin.isValue, tangentVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, + Matrix.cons_val_zero, mul_neg, neg_mul, neg_neg, Matrix.cons_val_one, + Matrix.cons_val_fin_one, PiLp.neg_apply] + rw [hrho, Real.Angle.sin_coe, Real.sin_sub, Real.sin_add, Real.cos_add] + simp + ring + · change capReflection ω (tangentVector (a : Real.Angle)) 1 = + (-tangentVector ((ω + Real.pi / 2 - a : ℝ) : Real.Angle)) 1 + rw [capReflection_apply_one, ← hrho] + simp only [Fin.isValue, tangentVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, + Matrix.cons_val_zero, mul_neg, Matrix.cons_val_one, Matrix.cons_val_fin_one, + PiLp.neg_apply] + rw [hrho, Real.Angle.cos_coe, Real.cos_sub, Real.sin_add, Real.cos_add] + simp + +/-- The cap reflection transports normal vectors by reflected angles. -/ +theorem capReflection_normalVector_angle (ω : ℝ) (a : Real.Angle) : + capReflection ω (normalVector a) = normalVector (reflectedAngle ω a) := by + calc + capReflection ω (normalVector a) = + capReflection ω (normalVector (a.toReal : Real.Angle)) := by rw [a.coe_toReal] + _ = normalVector ((ω + Real.pi / 2 - a.toReal : ℝ) : Real.Angle) := + capReflection_normalVector ω a.toReal + _ = normalVector (reflectedAngle ω a) := by + congr 1 + simp only [reflectedAngle, Real.Angle.coe_sub, Real.Angle.coe_add, a.coe_toReal] + +/-- The cap reflection reverses tangent vectors at reflected angles. -/ +theorem capReflection_tangentVector_angle (ω : ℝ) (a : Real.Angle) : + capReflection ω (tangentVector a) = -tangentVector (reflectedAngle ω a) := by + calc + capReflection ω (tangentVector a) = + capReflection ω (tangentVector (a.toReal : Real.Angle)) := by rw [a.coe_toReal] + _ = -tangentVector ((ω + Real.pi / 2 - a.toReal : ℝ) : Real.Angle) := + capReflection_tangentVector ω a.toReal + _ = -tangentVector (reflectedAngle ω a) := by + congr 2 + simp only [reflectedAngle, Real.Angle.coe_sub, Real.Angle.coe_add, a.coe_toReal] + +/-- Inner products with normals transform under the cap reflection. -/ +theorem inner_capReflection_normalVector (ω : ℝ) (p : Point) + (a : Real.Angle) : + inner ℝ (capReflection ω p) (normalVector a) = + inner ℝ p (normalVector (reflectedAngle ω a)) := by + have hn : capReflection ω (normalVector (reflectedAngle ω a)) = + normalVector a := by + rw [capReflection_normalVector_angle, reflectedAngle_involutive] + rw [← hn] + exact (capReflection ω).inner_map_map p (normalVector (reflectedAngle ω a)) + +/-- Inner products with tangents transform under the cap reflection. -/ +theorem inner_capReflection_tangentVector (ω : ℝ) (p : Point) + (a : Real.Angle) : + inner ℝ (capReflection ω p) (tangentVector a) = + -inner ℝ p (tangentVector (reflectedAngle ω a)) := by + have ht : capReflection ω (-tangentVector (reflectedAngle ω a)) = + tangentVector a := by + rw [map_neg, capReflection_tangentVector_angle, reflectedAngle_involutive, + neg_neg] + rw [← ht, (capReflection ω).inner_map_map, inner_neg_right] + +/-- The cap reflection transports every open or closed normal half-plane. -/ +theorem capReflection_image_normalHalfPlane (ω h : ℝ) + (a : Real.Angle) (upper strict : Bool) : + capReflection ω '' normalHalfPlane a h upper strict = + normalHalfPlane (reflectedAngle ω a) h upper strict := by + ext p + constructor + · rintro ⟨q, hq, rfl⟩ + cases upper <;> cases strict <;> + simp only [normalHalfPlane, Bool.false_eq_true, ↓reduceIte, + Set.mem_ofPred_eq] at hq ⊢ <;> + rwa [inner_capReflection_normalVector, reflectedAngle_involutive] + · intro hp + refine ⟨capReflection ω p, ?_, capReflection_involutive ω p⟩ + cases upper <;> cases strict <;> + simp only [normalHalfPlane, Bool.false_eq_true, ↓reduceIte, + Set.mem_ofPred_eq] at hp ⊢ <;> + rwa [inner_capReflection_normalVector] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Supporting Hallway +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +private theorem supportValue_le_of_subset_rotatedHallway (s : Set Point) (t : Real.Angle) + (hs : s.Nonempty) (v : Point) + (hv : s ⊆ (fun p ↦ rotationMap t p + v) '' hallway) : + supportValue s t ≤ 1 + inner ℝ v (normalVector t) ∧ + supportValue s (t + ((Real.pi / 2 : ℝ) : Real.Angle)) ≤ + 1 + inner ℝ v (tangentVector t) := by + have hbound₁ : supportValue s t ≤ 1 + inner ℝ v (normalVector t) := by + apply csSup_le (hs.image _) + rintro _ ⟨p, hp, rfl⟩ + obtain ⟨q, hq, rfl⟩ := hv hp + dsimp only + rw [inner_add_left, inner_rotationMap_normalVector] + linarith [(mem_hallway_iff q).mp hq |>.1.1] + have hbound₂ : supportValue s (t + ((Real.pi / 2 : ℝ) : Real.Angle)) ≤ + 1 + inner ℝ v (tangentVector t) := by + apply csSup_le (hs.image _) + rintro _ ⟨p, hp, rfl⟩ + obtain ⟨q, hq, rfl⟩ := hv hp + dsimp only + rw [normalVector_add_pi_div_two, inner_add_left, inner_rotationMap_tangentVector] + linarith [(mem_hallway_iff q).mp hq |>.1.2] + exact ⟨hbound₁, hbound₂⟩ + +theorem subset_supportingHallway (s : Set Point) (t : Real.Angle) + (hs : s.Nonempty) (hc : IsCompact s) + (hL : ∃ v : Point, s ⊆ (fun p ↦ rotationMap t p + v) '' hallway) : + s ⊆ supportingHallway s t := by + rcases hL with ⟨v, hv⟩ + obtain ⟨hbound₁, hbound₂⟩ := supportValue_le_of_subset_rotatedHallway s t hs v hv + intro p hp + obtain ⟨x, hx⟩ := (EuclideanGeometry.o.rotation t).surjective + (p - (supportValue s t - 1) • normalVector t - + (supportValue s (t + ((Real.pi / 2 : ℝ) : Real.Angle)) - 1) • tangentVector t) + have hxp : supportingPlacement s t x = p := by + simp only [supportingPlacement, rotationMap, hx] + abel + have hx₀ := inner_supportingPlacement_normalVector s t x + have hx₁ := inner_supportingPlacement_tangentVector s t x + rw [hxp] at hx₀ hx₁ + have hsup (w : Real.Angle) : inner ℝ p (normalVector w) ≤ supportValue s w := + le_csSup (hc.bddAbove_image (continuous_id.inner continuous_const).continuousOn) + ⟨p, hp, rfl⟩ + have hupper₀ := hsup t + have hupper₁ := hsup (t + ((Real.pi / 2 : ℝ) : Real.Angle)) + rw [normalVector_add_pi_div_two] at hupper₁ + refine ⟨x, (mem_hallway_iff x).mpr ⟨⟨by linarith, by linarith⟩, ?_⟩, hxp⟩ + obtain ⟨q, hq, hqp⟩ := hv hp + rcases (mem_hallway_iff q).mp hq |>.2 with hq₀ | hq₁ + · have hcoord : inner ℝ p (normalVector t) = q 0 + inner ℝ v (normalVector t) := by + rw [← hqp, inner_add_left, inner_rotationMap_normalVector] + exact Or.inl (by linarith) + · have hcoord : inner ℝ p (tangentVector t) = q 1 + inner ℝ v (tangentVector t) := by + rw [← hqp, inner_add_left, inner_rotationMap_tangentVector] + exact Or.inr (by linarith) + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Analysis.SurfaceMeasure.UpperGraph`. +* `Analysis.SurfaceMeasure.ExposedFrontier`. +* `Analysis.SurfaceMeasure.RegularBoundaryHelpers`. +* `Analysis.SurfaceMeasure.GraphIntegral`. +* `Analysis.SurfaceMeasure.Construction`. +* `Analysis.SurfaceMeasure.GraphConvergence`. +* `Analysis.SurfaceMeasure.Properties`. +* `Analysis.SurfaceMeasure.BoundaryExtension`. +* `Analysis.SurfaceMeasure.Opposite`. +* `Analysis.SurfaceMeasure.WeakConvergence`. +* `Analysis.SurfaceMeasure.AtomLimits`. +* `Analysis.SurfaceMeasure.WeightedBoundary`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Upper Graph +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory +open scoped Pointwise + +namespace MovingSofa + +private def negCoordinates (e : Point ≃ₗᵢ[ℝ] Point) : Point ≃ₗᵢ[ℝ] Point := + e.trans (LinearIsometryEquiv.neg ℝ) + +private def swapCoordinates (e : Point ≃ₗᵢ[ℝ] Point) : Point ≃ₗᵢ[ℝ] Point := + e.trans coordinateSwap + +@[simp] private theorem negCoordinates_apply (e : Point ≃ₗᵢ[ℝ] Point) (p : Point) (i : Fin 2) : + negCoordinates e p i = -e p i := by + simp [negCoordinates] + +@[simp] private theorem swapCoordinates_apply_zero (e : Point ≃ₗᵢ[ℝ] Point) + (p : Point) : swapCoordinates e p 0 = e p 1 := by + simp [swapCoordinates, coordinateSwap] + +@[simp] private theorem swapCoordinates_apply_one (e : Point ≃ₗᵢ[ℝ] Point) + (p : Point) : swapCoordinates e p 1 = e p 0 := by + simp [swapCoordinates, coordinateSwap] + +/-- The upper graph height is the greatest vertical coordinate in its fiber. -/ +theorem upperGraphHeight_isGreatest (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) {x : ℝ} (hx : x ∈ horizontalProjection K o e) : + IsGreatest {y : ℝ | o + e.symm !₂[x, y] ∈ (K : Set Point)} + (upperGraphHeight K o e x) := by + let F : Set ℝ := {y | o + e.symm !₂[x, y] ∈ (K : Set Point)} + let Y : Set ℝ := (fun p : Point ↦ e (p - o) 1) '' (K : Set Point) + have hY : IsCompact Y := K.isCompact.image (by fun_prop) + have hFc : IsClosed F := K.isClosed.preimage (by fun_prop) + have hFY : F ⊆ Y := by + intro y hy + refine ⟨o + e.symm !₂[x, y], hy, ?_⟩ + simp + have hF : IsCompact F := hY.of_isClosed_subset hFc hFY + have hFne : F.Nonempty := by + obtain ⟨p, hp, hpx⟩ := hx + refine ⟨e (p - o) 1, ?_⟩ + dsimp [F] + convert hp using 1 + apply sub_eq_zero.mp + apply e.injective + ext i + fin_cases i + · simp only [map_sub, PiLp.sub_apply] at hpx + simp + linarith + · simp + change IsGreatest F (sSup F) + exact hF.isGreatest_sSup hFne + +/-- An attained upper graph point belongs to the convex body. -/ +theorem upperGraphHeight_mem (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) {x : ℝ} (hx : x ∈ horizontalProjection K o e) : + o + e.symm !₂[x, upperGraphHeight K o e x] ∈ (K : Set Point) := + (upperGraphHeight_isGreatest K o e hx).1 + +private theorem upperGraphHeight_eq_coordinate_of_isExteriorNormal_of_pos + (K : ConvexBody Point) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) {p : Point} (hp : p ∈ K) + {a : Real.Angle} (ha : IsExteriorNormal K p a) (hpos : 0 < e (normalVector a) 1) : + upperGraphHeight K o e (e (p - o) 0) = e (p - o) 1 := by + have hx : e (p - o) 0 ∈ horizontalProjection K o e := ⟨p, hp, rfl⟩ + apply le_antisymm + · apply le_of_not_gt + intro hgt + have hmem := upperGraphHeight_mem K o e hx + have hs := ha (o + e.symm !₂[e (p - o) 0, + upperGraphHeight K o e (e (p - o) 0)]) hmem + rw [← e.inner_map_map] at hs + simp only [map_sub, map_add, LinearIsometryEquiv.apply_symm_apply, PiLp.inner_apply, + RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Matrix.cons_val_zero, + Matrix.cons_val_one, PiLp.sub_apply, PiLp.add_apply] at hs + have hzero : e (p - o) 0 = e p 0 - e o 0 := by simp + have hone : e (p - o) 1 = e p 1 - e o 1 := by simp + ring_nf at hs + rw [hzero, hone] at hgt + rw [show -(e o 0) + e p 0 = e p 0 - e o 0 by ring] at hs + have hnonpos : e (normalVector a) 1 * + (upperGraphHeight K o e (e p 0 - e o 0) - (e p 1 - e o 1)) ≤ 0 := by + nlinarith [hs] + exact (not_lt_of_ge hnonpos) (mul_pos hpos (sub_pos.mpr hgt)) + · exact (upperGraphHeight_isGreatest K o e hx).2 (by + change o + e.symm !₂[e (p - o) 0, e (p - o) 1] ∈ (K : Set Point) + rw [show o + e.symm !₂[e (p - o) 0, e (p - o) 1] = p by + apply e.injective + ext i + fin_cases i <;> simp [map_sub]] + exact hp) + +/-- A boundary point whose exterior normal has positive vertical coordinate lies +on the upper coordinate graph. -/ +theorem eq_upperCoordinateGraph_of_isExteriorNormal_of_pos + (K : ConvexBody Point) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) {p : Point} (hp : p ∈ K) + {a : Real.Angle} (ha : IsExteriorNormal K p a) (hpos : 0 < e (normalVector a) 1) : + p = o + e.symm !₂[e (p - o) 0, upperGraphHeight K o e (e (p - o) 0)] := by + rw [upperGraphHeight_eq_coordinate_of_isExteriorNormal_of_pos K o e hp ha hpos] + apply e.injective + ext i + fin_cases i <;> simp [map_sub] + +private theorem eq_upperCoordinateGraph_of_maximal_verticalCoordinate + (K : ConvexBody Point) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) {p : Point} (hp : p ∈ K) + (hmax : ∀ q ∈ K, e (q - o) 1 ≤ e (p - o) 1) : + p = o + e.symm !₂[e (p - o) 0, upperGraphHeight K o e (e (p - o) 0)] := by + have hx : e (p - o) 0 ∈ horizontalProjection K o e := ⟨p, hp, rfl⟩ + have hpGreatest : IsGreatest + {y : ℝ | o + e.symm !₂[e (p - o) 0, y] ∈ (K : Set Point)} (e (p - o) 1) := by + constructor + · change o + e.symm !₂[e (p - o) 0, e (p - o) 1] ∈ (K : Set Point) + rw [show o + e.symm !₂[e (p - o) 0, e (p - o) 1] = p by + apply e.injective + ext i + fin_cases i <;> simp [map_sub]] + exact hp + · intro y hy + have := hmax (o + e.symm !₂[e (p - o) 0, y]) hy + simpa using this + have heq := (upperGraphHeight_isGreatest K o e hx).unique hpGreatest + rw [heq] + apply e.injective + ext i + fin_cases i <;> simp [map_sub] + +private theorem horizontalCoordinate_le_rightBound (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) {p : Point} (hp : p ∈ K) : + e (p - o) 0 ≤ (horizontalBounds K o e).2 := by + exact (K.isCompact.image (by fun_prop)).isGreatest_sSup (K.nonempty.image _) + |>.2 ⟨p, hp, rfl⟩ + +private theorem horizontalProjection_negCoordinates (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) : + horizontalProjection K o (negCoordinates e) = -(horizontalProjection K o e) := by + ext x + simp only [horizontalProjection, negCoordinates, LinearIsometryEquiv.trans_apply, map_sub, + LinearIsometryEquiv.coe_neg, Fin.isValue, PiLp.sub_apply, PiLp.neg_apply, Set.mem_image, + SetLike.mem_coe, Set.mem_neg] + constructor + · rintro ⟨p, hp, h⟩ + exact ⟨p, hp, by linarith⟩ + · rintro ⟨p, hp, h⟩ + exact ⟨p, hp, by linarith⟩ + +private theorem horizontalBounds_negCoordinates (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) : + horizontalBounds K o (negCoordinates e) = + (-(horizontalBounds K o e).2, -(horizontalBounds K o e).1) := by + simp only [horizontalBounds, horizontalProjection_negCoordinates, Real.sInf_neg, + Real.sSup_neg] + +private theorem leftBound_le_horizontalCoordinate (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) {p : Point} (hp : p ∈ K) : + (horizontalBounds K o e).1 ≤ e (p - o) 0 := by + exact (K.isCompact.image (by fun_prop)).isLeast_sInf (K.nonempty.image _) + |>.2 ⟨p, hp, rfl⟩ + +private theorem eq_swapUpperGraph_of_horizontalCoordinate_eq_rightBound + (K : ConvexBody Point) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) {p : Point} (hp : p ∈ K) + (hpr : e (p - o) 0 = (horizontalBounds K o e).2) : + p = o + (swapCoordinates e).symm + !₂[swapCoordinates e (p - o) 0, + upperGraphHeight K o (swapCoordinates e) (swapCoordinates e (p - o) 0)] := by + apply eq_upperCoordinateGraph_of_maximal_verticalCoordinate K o (swapCoordinates e) hp + intro q hq + have hqle := horizontalCoordinate_le_rightBound K o e hq + simp only [swapCoordinates_apply_one] + simp only [map_sub, PiLp.sub_apply] at hpr hqle ⊢ + linarith + +private theorem eq_negSwapUpperGraph_of_horizontalCoordinate_eq_leftBound + (K : ConvexBody Point) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) {p : Point} (hp : p ∈ K) + (hpl : e (p - o) 0 = (horizontalBounds K o e).1) : + p = o + (negCoordinates (swapCoordinates e)).symm + !₂[negCoordinates (swapCoordinates e) (p - o) 0, + upperGraphHeight K o (negCoordinates (swapCoordinates e)) + (negCoordinates (swapCoordinates e) (p - o) 0)] := by + apply eq_upperCoordinateGraph_of_maximal_verticalCoordinate K o + (negCoordinates (swapCoordinates e)) hp + intro q hq + have hle := leftBound_le_horizontalCoordinate K o e hq + simp only [negCoordinates_apply, swapCoordinates_apply_one] + simp only [map_sub, PiLp.sub_apply] at hpl hle ⊢ + linarith + +private def coordinateCornerSet (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) : Set Point := + {p | e (p - o) 0 ∈ ({(horizontalBounds K o e).1, + (horizontalBounds K o e).2} : Set ℝ) ∧ + e (p - o) 1 ∈ ({(horizontalBounds K o (swapCoordinates e)).1, + (horizontalBounds K o (swapCoordinates e)).2} : Set ℝ)} + +private theorem coordinateCornerSet_finite (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) : (coordinateCornerSet K o e).Finite := by + let coords : Point → ℝ × ℝ := fun p ↦ (e (p - o) 0, e (p - o) 1) + let xs : Set ℝ := {(horizontalBounds K o e).1, (horizontalBounds K o e).2} + let ys : Set ℝ := {(horizontalBounds K o (swapCoordinates e)).1, + (horizontalBounds K o (swapCoordinates e)).2} + have hcoords : Function.Injective coords := by + intro p q hpq + apply sub_left_injective (b := o) + apply e.injective + ext i + fin_cases i + · exact congrArg Prod.fst hpq + · exact congrArg Prod.snd hpq + have hfinite : (xs ×ˢ ys).Finite := Set.toFinite xs |>.prod (Set.toFinite ys) + have hpre : (coords ⁻¹' (xs ×ˢ ys)).Finite := hfinite.preimage hcoords.injOn + have heq : coordinateCornerSet K o e = coords ⁻¹' (xs ×ˢ ys) := by + ext p + simp only [coordinateCornerSet, coords, xs, ys, Set.mem_ofPred_eq, Set.mem_preimage, + Set.mem_prod, Set.mem_insert_iff, Set.mem_singleton_iff] + rw [heq] + exact hpre + +private theorem hausdorffMeasure_coordinateCornerSet_eq_zero (K : ConvexBody Point) + (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) : + Measure.hausdorffMeasure 1 (coordinateCornerSet K o e) = 0 := by + let _ := MeasureTheory.Measure.nullSingletonClass_hausdorff Point (by norm_num : (0 : ℝ) < 1) + exact (coordinateCornerSet_finite K o e).measure_zero _ + +/-- The upper height function of a convex body is concave on its projection. -/ +theorem concaveOn_upperGraphHeight (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) : + ConcaveOn ℝ (horizontalProjection K o e) (upperGraphHeight K o e) := by + have hproj : Convex ℝ (horizontalProjection K o e) := by + intro x hx y hy a b ha hb hab + obtain ⟨p, hp, hpx⟩ := hx + obtain ⟨q, hq, hqx⟩ := hy + refine ⟨a • p + b • q, K.convex hp hq ha hb hab, ?_⟩ + simp only [map_sub, map_add, map_smul, PiLp.sub_apply, PiLp.add_apply, + PiLp.smul_apply] at hpx hqx ⊢ + linear_combination a * hpx + b * hqx + e o 0 * hab + refine ⟨hproj, ?_⟩ + · intro x hx y hy a b ha hb hab + apply (upperGraphHeight_isGreatest K o e (by + exact hproj hx hy ha hb hab)).2 + have hpx := upperGraphHeight_mem K o e hx + have hpy := upperGraphHeight_mem K o e hy + have hconv := K.convex hpx hpy ha hb hab + change o + e.symm !₂[a • x + b • y, + a • upperGraphHeight K o e x + b • upperGraphHeight K o e y] ∈ (K : Set Point) + rw [show o + e.symm !₂[a • x + b • y, + a • upperGraphHeight K o e x + b • upperGraphHeight K o e y] = + a • (o + e.symm !₂[x, upperGraphHeight K o e x]) + + b • (o + e.symm !₂[y, upperGraphHeight K o e y]) by + apply e.injective + ext i + fin_cases i <;> simp [map_add, map_smul] <;> + linear_combination -(e o _) * hab] + exact hconv + +/-- The horizontal projection is the interval between its compact extrema. -/ +theorem horizontalProjection_eq_Icc (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) : + horizontalProjection K o e = + Set.Icc (horizontalBounds K o e).1 (horizontalBounds K o e).2 := by + let s := horizontalProjection K o e + have hscompact : IsCompact s := K.isCompact.image (by fun_prop) + have hsne : s.Nonempty := K.nonempty.image _ + have hsconv : Convex ℝ s := (concaveOn_upperGraphHeight K o e).1 + change s = Set.Icc (sInf s) (sSup s) + apply Set.Subset.antisymm + · exact hscompact.isBounded.subset_Icc_sInf_sSup + · have hle := (hscompact.isLeast_sInf hsne).2 (hscompact.sSup_mem hsne) + rw [← Set.uIcc_of_le hle, ← segment_eq_uIcc] + exact hsconv.segment_subset (hscompact.sInf_mem hsne) (hscompact.sSup_mem hsne) + +/-- The upper boundary height is locally Lipschitz inside its projection interval. -/ +theorem locallyLipschitzOn_upperGraphHeight (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) : + LocallyLipschitzOn + (Set.Ioo (horizontalBounds K o e).1 (horizontalBounds K o e).2) + (upperGraphHeight K o e) := by + have hlip := (concaveOn_upperGraphHeight K o e).locallyLipschitzOn_interior + rw [horizontalProjection_eq_Icc K o e, interior_Icc] at hlip + exact hlip + +/-- The upward normal determined by the derivative of an upper graph is exterior. -/ +theorem upperGraph_deriv_isExteriorNormal (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) {x : ℝ} + (hx : x ∈ Set.Ioo (horizontalBounds K o e).1 (horizontalBounds K o e).2) + (hdiff : DifferentiableAt ℝ (upperGraphHeight K o e) x) : + IsExteriorNormal K (o + e.symm !₂[x, upperGraphHeight K o e x]) + (vectorNormalAngle (e.symm !₂[-deriv (upperGraphHeight K o e) x, 1])) := by + let g := upperGraphHeight K o e + let q : Point := e.symm !₂[-deriv g x, 1] + have hq : q ≠ 0 := by + intro hzero + have := congrFun (congrArg WithLp.ofLp (congrArg e hzero)) 1 + simp [q] at this + change IsExteriorNormal K (o + e.symm !₂[x, g x]) (vectorNormalAngle q) + rw [IsExteriorNormal] + rw [normalVector_vectorNormalAngle hq] + intro p hp + have hxp : e (p - o) 0 ∈ horizontalProjection K o e := ⟨p, hp, rfl⟩ + have hxproj : x ∈ horizontalProjection K o e := by + rw [horizontalProjection_eq_Icc K o e] + exact ⟨hx.1.le, hx.2.le⟩ + have hvertical : e (p - o) 1 ≤ g (e (p - o) 0) := + (upperGraphHeight_isGreatest K o e hxp).2 (by + change o + e.symm !₂[e (p - o) 0, e (p - o) 1] ∈ (K : Set Point) + rw [show o + e.symm !₂[e (p - o) 0, e (p - o) 1] = p by + apply e.injective + ext i + fin_cases i <;> simp [map_sub]] + exact hp) + have htangent := ConcaveOn.le_add_deriv_mul_sub + (concaveOn_upperGraphHeight K o e) hxproj hdiff hxp + have hvertical' : e p 1 - e o 1 ≤ g (e p 0 - e o 0) := by + simpa only [map_sub, PiLp.sub_apply] using hvertical + have htangent' : g (e p 0 - e o 0) ≤ + g x + deriv g x * ((e p 0 - e o 0) - x) := by + simpa only [map_sub, PiLp.sub_apply] using htangent + rw [inner_smul_right] + apply mul_nonpos_of_nonneg_of_nonpos (inv_nonneg.mpr (norm_nonneg q)) + rw [← e.inner_map_map] + simp only [map_sub, map_add, LinearIsometryEquiv.apply_symm_apply, q, PiLp.inner_apply, + RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Matrix.cons_val_zero, + Matrix.cons_val_one, PiLp.sub_apply, PiLp.add_apply] + dsimp only [g] at hvertical' htangent' ⊢ + nlinarith [hvertical', htangent'] + +/-- Angular normal vectors have norm one. -/ +theorem norm_normalVector (a : Real.Angle) : ‖normalVector a‖ = 1 := by + induction a using Real.Angle.induction_on with + | _ a => + rw [EuclideanSpace.norm_eq] + simp [normalVector, frame, Fin.sum_univ_two] + +private theorem horizontalCoordinate_eq_endpoint_of_isExteriorNormal_of_vertical_eq_zero + (K : ConvexBody Point) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) {p : Point} (hp : p ∈ K) + {a : Real.Angle} (ha : IsExteriorNormal K p a) + (hzero : e (normalVector a) 1 = 0) : + e (p - o) 0 = (horizontalBounds K o e).1 ∨ + e (p - o) 0 = (horizontalBounds K o e).2 := by + have hxne : e (normalVector a) 0 ≠ 0 := by + intro hx + have he : e (normalVector a) = 0 := by + ext i + fin_cases i <;> simp [hx, hzero] + have hn : ‖e (normalVector a)‖ = 1 := by rw [e.norm_map, norm_normalVector] + simp [he] at hn + rcases lt_or_gt_of_ne hxne with hneg | hpos + · left + have hleast : IsLeast (horizontalProjection K o e) (e (p - o) 0) := by + refine ⟨⟨p, hp, rfl⟩, ?_⟩ + rintro x ⟨q, hq, rfl⟩ + have hs := ha q hq + rw [← e.inner_map_map] at hs + simp only [map_sub, PiLp.inner_apply, RCLike.inner_apply, conj_trivial, + Fin.sum_univ_two, PiLp.sub_apply, hzero] at hs + have hxcoord : e (q - o) 0 - e (p - o) 0 = e q 0 - e p 0 := by simp + nlinarith + exact hleast.unique ((K.isCompact.image (by fun_prop)).isLeast_sInf (K.nonempty.image _)) + · right + have hgreatest : IsGreatest (horizontalProjection K o e) (e (p - o) 0) := by + refine ⟨⟨p, hp, rfl⟩, ?_⟩ + rintro x ⟨q, hq, rfl⟩ + have hs := ha q hq + rw [← e.inner_map_map] at hs + simp only [map_sub, PiLp.inner_apply, RCLike.inner_apply, conj_trivial, + Fin.sum_univ_two, PiLp.sub_apply, hzero] at hs + have hxcoord : e (q - o) 0 - e (p - o) 0 = e q 0 - e p 0 := by simp + nlinarith + exact hgreatest.unique ((K.isCompact.image (by fun_prop)).isGreatest_sSup + (K.nonempty.image _)) + +/-- A point of a convex body admitting an exterior unit normal belongs to its frontier. -/ +theorem mem_frontier_of_mem_of_isExteriorNormal (K : ConvexBody Point) + {p : Point} (hp : p ∈ K) {a : Real.Angle} (ha : IsExteriorNormal K p a) : + p ∈ frontier (K : Set Point) := by + rw [mem_frontier_iff_notMem_interior hp] + intro hpint + obtain ⟨ε, hε, hball⟩ := Metric.isOpen_iff.mp isOpen_interior p hpint + let q := p + (ε / 2) • normalVector a + have hqp : q ∈ K := interior_subset (hball (by + rw [Metric.mem_ball, dist_eq_norm] + rw [show q - p = (ε / 2) • normalVector a by simp [q], norm_smul, + norm_normalVector] + rw [Real.norm_eq_abs, abs_of_pos (div_pos hε (by norm_num))] + linarith)) + have := ha q hqp + rw [show q - p = (ε / 2) • normalVector a by simp [q], inner_smul_left, + real_inner_self_eq_norm_sq, norm_normalVector a] at this + have hnonpos : ε / 2 ≤ 0 := by simpa using this + linarith + +private theorem upperGraph_tangent_orthogonal_of_isExteriorNormal + (K : ConvexBody Point) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) {x : ℝ} + (hx : x ∈ Set.Ioo (horizontalBounds K o e).1 (horizontalBounds K o e).2) + (hdiff : DifferentiableAt ℝ (upperGraphHeight K o e) x) {a : Real.Angle} + (ha : IsExteriorNormal K + (o + e.symm !₂[x, upperGraphHeight K o e x]) a) : + inner ℝ (e.symm !₂[1, deriv (upperGraphHeight K o e) x]) (normalVector a) = 0 := by + let g := upperGraphHeight K o e + let n := e (normalVector a) + let f : ℝ → ℝ := fun y ↦ (y - x) * n 0 + (g y - g x) * n 1 + have hlocal : IsLocalMax f x := by + filter_upwards [Ioo_mem_nhds hx.1 hx.2] with y hy + have hyproj : y ∈ horizontalProjection K o e := by + rw [horizontalProjection_eq_Icc K o e] + exact ⟨hy.1.le, hy.2.le⟩ + have hmem := upperGraphHeight_mem K o e hyproj + have hsupport := ha (o + e.symm !₂[y, g y]) hmem + rw [← e.inner_map_map] at hsupport + simp only [map_sub, map_add, LinearIsometryEquiv.apply_symm_apply, PiLp.inner_apply, + RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Matrix.cons_val_zero, + Matrix.cons_val_one, PiLp.sub_apply, PiLp.add_apply] at hsupport + dsimp only [f, g, n] + dsimp only [g] at hsupport + nlinarith [hsupport] + have hfderiv : HasDerivAt f (n 0 + deriv g x * n 1) x := by + convert (((hasDerivAt_id x).sub_const x).mul_const (n 0)).add + ((hdiff.hasDerivAt.sub_const (g x)).mul_const (n 1)) using 1 + · funext y + rfl + · simp [g] + have hzero := hlocal.hasDerivAt_eq_zero hfderiv + rw [← e.inner_map_map] + simp only [LinearIsometryEquiv.apply_symm_apply, PiLp.inner_apply, RCLike.inner_apply, + conj_trivial, Fin.sum_univ_two, Matrix.cons_val_zero, Matrix.cons_val_one] + dsimp only [g, n] at hzero ⊢ + nlinarith [hzero] + +private theorem normalVector_injective : Function.Injective normalVector := by + intro a b hab + induction a using Real.Angle.induction_on with + | _ a => + induction b using Real.Angle.induction_on with + | _ b => + apply Real.Angle.cos_sin_inj + · exact congrFun (congrArg WithLp.ofLp hab) 0 + · exact congrFun (congrArg WithLp.ofLp hab) 1 + +private theorem exteriorNormal_eq_of_orthogonal_of_interior_nonempty + (K : ConvexBody Point) (hK : (interior (K : Set Point)).Nonempty) + {p v : Point} (hv : v ≠ 0) {a b : Real.Angle} + (ha : IsExteriorNormal K p a) (hb : IsExteriorNormal K p b) + (hva : inner ℝ v (normalVector a) = 0) + (hvb : inner ℝ v (normalVector b) = 0) : a = b := by + let orientation : Orientation ℝ Point (Fin 2) := + (EuclideanSpace.basisFun (Fin 2) ℝ).toBasis.orientation + rcases EuclideanGeometry.eq_or_eq_neg_of_unit_orthogonal orientation hv (norm_normalVector a) + (norm_normalVector b) hva hvb with hab | hab + · exact normalVector_injective hab + · exfalso + obtain ⟨z, hz⟩ := hK + obtain ⟨ε, hε, hball⟩ := Metric.isOpen_iff.mp isOpen_interior z hz + let q := z + (ε / 2) • normalVector a + have hq : q ∈ K := interior_subset (hball (by + rw [Metric.mem_ball, dist_eq_norm] + rw [show q - z = (ε / 2) • normalVector a by simp [q], norm_smul, + norm_normalVector, Real.norm_eq_abs, abs_of_pos (div_pos hε (by norm_num))] + norm_num + linarith)) + have haz := ha z (interior_subset hz) + have hbz := hb z (interior_subset hz) + have hba : normalVector b = -normalVector a := by rw [hab]; simp + rw [hba, inner_neg_right] at hbz + have heq : inner ℝ (z - p) (normalVector a) = 0 := by linarith + have haq := ha q hq + have hqp : q - p = (z - p) + (ε / 2) • normalVector a := by + dsimp only [q] + module + rw [hqp, + inner_add_left, inner_smul_left, real_inner_self_eq_norm_sq, + norm_normalVector a, heq, zero_add] at haq + have : ε / 2 ≤ 0 := by simpa using haq + linarith + +/-- A differentiable interior point of an upper boundary graph is regular. -/ +theorem upperGraph_mem_regularBoundary (K : ConvexBody Point) + (hK : (interior (K : Set Point)).Nonempty) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) + {x : ℝ} (hx : x ∈ Set.Ioo (horizontalBounds K o e).1 (horizontalBounds K o e).2) + (hdiff : DifferentiableAt ℝ (upperGraphHeight K o e) x) : + o + e.symm !₂[x, upperGraphHeight K o e x] ∈ regularBoundary K := by + let p := o + e.symm !₂[x, upperGraphHeight K o e x] + let a := vectorNormalAngle + (e.symm !₂[-deriv (upperGraphHeight K o e) x, 1]) + have hxproj : x ∈ horizontalProjection K o e := by + rw [horizontalProjection_eq_Icc K o e] + exact ⟨hx.1.le, hx.2.le⟩ + have hp : p ∈ K := upperGraphHeight_mem K o e hxproj + have ha : IsExteriorNormal K p a := upperGraph_deriv_isExteriorNormal K o e hx hdiff + refine ⟨mem_frontier_of_mem_of_isExteriorNormal K hp ha, a, ha, ?_⟩ + intro b hb + symm + apply exteriorNormal_eq_of_orthogonal_of_interior_nonempty K hK + (v := e.symm !₂[1, deriv (upperGraphHeight K o e) x]) + · intro hv + have := congrFun (congrArg WithLp.ofLp (congrArg e hv)) 0 + simp at this + · exact ha + · exact hb + · rw [normalVector_vectorNormalAngle] + · rw [← e.inner_map_map] + simp [PiLp.inner_apply, Fin.sum_univ_two] + · intro hv + have := congrFun (congrArg WithLp.ofLp (congrArg e hv)) 1 + simp at this + · exact upperGraph_tangent_orthogonal_of_isExteriorNormal K o e hx hdiff (a := b) hb + +/-- Points of an upper graph lying above nondifferentiability parameters. -/ +def irregularUpperGraph (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) : Set Point := + (fun x ↦ o + e.symm !₂[x, upperGraphHeight K o e x]) '' + {x | x ∈ Set.Ioo (horizontalBounds K o e).1 (horizontalBounds K o e).2 ∧ + ¬ DifferentiableAt ℝ (upperGraphHeight K o e) x} + +/-- An irregular upper graph has zero one-dimensional Hausdorff measure. -/ +theorem hausdorffMeasure_irregularUpperGraph_eq_zero (K : ConvexBody Point) + (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) : + Measure.hausdorffMeasure 1 (irregularUpperGraph K o e) = 0 := by + exact MeasureTheory.hausdorffMeasure_coordinateGraph_nondifferentiable_eq_zero + (locallyLipschitzOn_upperGraphHeight K o e) o e + +private theorem eq_left_or_eq_right_or_mem_Ioo {a b x : ℝ} (hx : x ∈ Set.Icc a b) : + x = a ∨ x = b ∨ x ∈ Set.Ioo a b := by + rcases hx.1.eq_or_lt with h | h + · exact Or.inl h.symm + rcases hx.2.eq_or_lt with h' | h' + · exact Or.inr (Or.inl h') + · exact Or.inr (Or.inr ⟨h, h'⟩) + +private theorem irregularBoundary_subset_graphs_union_corners (K : ConvexBody Point) + (hK : (interior (K : Set Point)).Nonempty) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) : + frontier (K : Set Point) \ regularBoundary K ⊆ + irregularUpperGraph K o e ∪ (irregularUpperGraph K o (negCoordinates e) ∪ + (irregularUpperGraph K o (swapCoordinates e) ∪ + (irregularUpperGraph K o (negCoordinates (swapCoordinates e)) ∪ + coordinateCornerSet K o e))) := by + intro p hp + have hpK : p ∈ K := by + change p ∈ (K : Set Point) + rw [← K.isClosed.closure_eq] + exact frontier_subset_closure hp.1 + let x := e (p - o) 0 + let y := e (p - o) 1 + have hxIcc : x ∈ Set.Icc (horizontalBounds K o e).1 + (horizontalBounds K o e).2 := by + rw [← horizontalProjection_eq_Icc K o e] + exact ⟨p, hpK, rfl⟩ + have hyIcc : y ∈ Set.Icc (horizontalBounds K o (swapCoordinates e)).1 + (horizontalBounds K o (swapCoordinates e)).2 := by + rw [← horizontalProjection_eq_Icc K o (swapCoordinates e)] + refine ⟨p, hpK, ?_⟩ + simp [y, swapCoordinates_apply_zero] + rcases eq_left_or_eq_right_or_mem_Ioo hxIcc with hxleft | hxright | hxint + · rcases eq_left_or_eq_right_or_mem_Ioo hyIcc with hyleft | hyright | hyint + · right; right; right; right + exact ⟨Or.inl (by simpa [x] using hxleft), Or.inl (by simpa [y] using hyleft)⟩ + · right; right; right; right + exact ⟨Or.inl (by simpa [x] using hxleft), Or.inr (by simpa [y] using hyright)⟩ + · right; right; right; left + let e' := negCoordinates (swapCoordinates e) + let z := e' (p - o) 0 + have hzint : z ∈ Set.Ioo (horizontalBounds K o e').1 + (horizontalBounds K o e').2 := by + rw [horizontalBounds_negCoordinates] + change -y ∈ Set.Ioo (-(horizontalBounds K o (swapCoordinates e)).2) + (-(horizontalBounds K o (swapCoordinates e)).1) + exact ⟨neg_lt_neg hyint.2, neg_lt_neg hyint.1⟩ + have hgraph := eq_negSwapUpperGraph_of_horizontalCoordinate_eq_leftBound + K o e hpK (by simpa [x] using hxleft) + refine ⟨z, ⟨hzint, ?_⟩, hgraph.symm⟩ + intro hdiff + apply hp.2 + rw [hgraph] + exact upperGraph_mem_regularBoundary K hK o e' hzint hdiff + · rcases eq_left_or_eq_right_or_mem_Ioo hyIcc with hyleft | hyright | hyint + · right; right; right; right + exact ⟨Or.inr (by simpa [x] using hxright), Or.inl (by simpa [y] using hyleft)⟩ + · right; right; right; right + exact ⟨Or.inr (by simpa [x] using hxright), Or.inr (by simpa [y] using hyright)⟩ + · right; right; left + let e' := swapCoordinates e + let z := e' (p - o) 0 + have hzint : z ∈ Set.Ioo (horizontalBounds K o e').1 + (horizontalBounds K o e').2 := by simpa [e', z, y] using hyint + have hgraph := eq_swapUpperGraph_of_horizontalCoordinate_eq_rightBound + K o e hpK (by simpa [x] using hxright) + refine ⟨z, ⟨hzint, ?_⟩, hgraph.symm⟩ + intro hdiff + apply hp.2 + rw [hgraph] + exact upperGraph_mem_regularBoundary K hK o e' hzint hdiff + · obtain ⟨a, ha⟩ := exists_isExteriorNormal_of_mem_frontier K hK hp.1 + have hvertical : e (normalVector a) 1 ≠ 0 := by + intro hzero + rcases horizontalCoordinate_eq_endpoint_of_isExteriorNormal_of_vertical_eq_zero + K o e hpK ha hzero with hleft | hright + · exact hxint.1.ne' (by simpa [x] using hleft) + · exact hxint.2.ne (by simpa [x] using hright) + rcases lt_or_gt_of_ne hvertical with hneg | hpos + · right; left + let e' := negCoordinates e + let z := e' (p - o) 0 + have hzint : z ∈ Set.Ioo (horizontalBounds K o e').1 + (horizontalBounds K o e').2 := by + rw [horizontalBounds_negCoordinates] + change -x ∈ Set.Ioo (-(horizontalBounds K o e).2) + (-(horizontalBounds K o e).1) + exact ⟨neg_lt_neg hxint.2, neg_lt_neg hxint.1⟩ + have hgraph := eq_upperCoordinateGraph_of_isExteriorNormal_of_pos K o e' + hpK ha (by simpa [e'] using neg_pos.mpr hneg) + refine ⟨z, ⟨hzint, ?_⟩, hgraph.symm⟩ + intro hdiff + apply hp.2 + rw [hgraph] + exact upperGraph_mem_regularBoundary K hK o e' hzint hdiff + · left + have hgraph := eq_upperCoordinateGraph_of_isExteriorNormal_of_pos K o e hpK ha hpos + refine ⟨x, ⟨hxint, ?_⟩, ?_⟩ + · intro hdiff + apply hp.2 + rw [hgraph] + exact upperGraph_mem_regularBoundary K hK o e hxint hdiff + · simpa [x] using hgraph.symm + +/-- The irregular boundary of a planar convex body with nonempty interior has +zero one-dimensional Hausdorff measure. -/ +theorem hausdorffMeasure_irregularBoundary_eq_zero (K : ConvexBody Point) + (hK : (interior (K : Set Point)).Nonempty) : + Measure.hausdorffMeasure 1 + (frontier (K : Set Point) \ regularBoundary K) = 0 := by + let e : Point ≃ₗᵢ[ℝ] Point := LinearIsometryEquiv.refl ℝ Point + let o : Point := 0 + apply measure_mono_null + (irregularBoundary_subset_graphs_union_corners K hK o e) + exact MeasureTheory.measure_union_null + (hausdorffMeasure_irregularUpperGraph_eq_zero K o e) + (MeasureTheory.measure_union_null + (hausdorffMeasure_irregularUpperGraph_eq_zero K o (negCoordinates e)) + (MeasureTheory.measure_union_null + (hausdorffMeasure_irregularUpperGraph_eq_zero K o (swapCoordinates e)) + (MeasureTheory.measure_union_null + (hausdorffMeasure_irregularUpperGraph_eq_zero K o + (negCoordinates (swapCoordinates e))) + (hausdorffMeasure_coordinateCornerSet_eq_zero K o e)))) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Exposed faces and the boundary of a convex body + +The exposed faces of a convex body are exactly the sets of boundary points realizing a support +value: each exposed face lies on the boundary, and, when the body has interior, every boundary +point lies on some exposed face. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Every boundary point of a convex body with nonempty interior lies on a supporting +exposed face. -/ +theorem exists_mem_exposedEdge_of_mem_frontier + (K : ConvexBody Point) (hK : (interior (K : Set Point)).Nonempty) + {p : Point} (hp : p ∈ frontier (K : Set Point)) : + ∃ a : Real.Angle, p ∈ exposedEdge K a := by + have hpK : p ∈ K := by + change p ∈ (K : Set Point) + rw [← K.isClosed.closure_eq] + exact frontier_subset_closure hp + obtain ⟨a, ha⟩ := exists_isExteriorNormal_of_mem_frontier K hK hp + refine ⟨a, hpK, ?_⟩ + change inner ℝ p (normalVector a) = supportValue K a + apply le_antisymm + · exact inner_le_supportValue K hpK a + · obtain ⟨q, hq, hqeq⟩ := exists_mem_inner_eq_supportValue K a + rw [← hqeq] + have := ha q hq + rw [inner_sub_left] at this + linarith + +/-- Every exposed face of a convex body lies on its boundary. -/ +theorem exposedEdge_subset_frontier + (K : ConvexBody Point) (a : Real.Angle) : + exposedEdge K a ⊆ frontier (K : Set Point) := by + intro p hp + rw [mem_frontier_iff_notMem_interior hp.1] + intro hpint + obtain ⟨ε, hε, hball⟩ := Metric.isOpen_iff.mp isOpen_interior p hpint + let z := p + (ε / 2) • normalVector a + have hzball : z ∈ Metric.ball p ε := by + simp only [Metric.mem_ball, dist_eq_norm, z, add_sub_cancel_left, norm_smul, + norm_normalVector, mul_one, Real.norm_eq_abs, abs_of_pos (half_pos hε)] + linarith + have hzK : z ∈ K := interior_subset (hball hzball) + have hzle := inner_le_supportValue K hzK a + have hpEq := hp.2 + change inner ℝ p (normalVector a) = supportValue K a at hpEq + have hnorm : inner ℝ (normalVector a) (normalVector a) = 1 := by + induction a using Real.Angle.induction_on with + | _ a => exact inner_normalVector_self a + rw [show z = p + (ε / 2) • normalVector a from rfl, inner_add_left, + real_inner_smul_left, hnorm, hpEq] at hzle + linarith + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Regular Boundary Helpers +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- A planar convex body with nonempty interior has no segment presentation. -/ +theorem not_exists_segmentPresentation_of_interior_nonempty (K : ConvexBody Point) + (hint : (interior (K : Set Point)).Nonempty) : ¬ ∃ d, IsSegmentPresentation K d := by + rintro ⟨d, hd⟩ + have htop : affineSpan ℝ (K : Set Point) = ⊤ := + K.convex.interior_nonempty_iff_affineSpan_eq_top.mp hint + have hle : affineSpan ℝ (K : Set Point) ≤ affineSpan ℝ ({d.1, d.2.1} : Set Point) := by + rw [hd.2.1] + apply affineSpan_le.2 + exact (affineSpan ℝ ({d.1, d.2.1} : Set Point)).convex.segment_subset + (subset_affineSpan ℝ _ (by simp)) (subset_affineSpan ℝ _ (by simp)) + rw [htop] at hle + have heq : affineSpan ℝ ({d.1, d.2.1} : Set Point) = ⊤ := top_unique hle + have hfin := (collinear_iff_finrank_le_one.mp (collinear_pair ℝ d.1 d.2.1)) + rw [← direction_affineSpan, heq] at hfin + rw [AffineSubspace.direction_top ℝ Point Point, finrank_top] at hfin + norm_num [Point, finrank_euclideanSpace_fin] at hfin + +/-- A convex body with nonempty interior is not a singleton. -/ +theorem not_subsingleton_of_interior_nonempty (K : ConvexBody Point) + (hint : (interior (K : Set Point)).Nonempty) : ¬ (K : Set Point).Subsingleton := by + intro hsub + obtain ⟨p, hp⟩ := K.nonempty + have hK : (K : Set Point) = {p} := + Set.eq_singleton_iff_unique_mem.mpr ⟨hp, fun x hx ↦ hsub hx hp⟩ + rw [hK, interior_singleton] at hint + exact hint.ne_empty rfl + +private theorem surfaceAreaMeasure_eq_map_of_interior_nonempty (K : ConvexBody Point) + (hint : (interior (K : Set Point)).Nonempty) : + surfaceAreaMeasure K = Measure.map (exteriorNormalAngle K) + ((Measure.hausdorffMeasure 1).restrict (regularBoundary K)) := by + have hsub := not_subsingleton_of_interior_nonempty K hint + have hseg := not_exists_segmentPresentation_of_interior_nonempty K hint + simp [surfaceAreaMeasure, hsub, hseg] + +/-- Surface area measure is finite when the convex body has nonempty interior. -/ +theorem isFiniteMeasure_surfaceAreaMeasure_of_interior_nonempty (K : ConvexBody Point) + (hint : (interior (K : Set Point)).Nonempty) : IsFiniteMeasure (surfaceAreaMeasure K) := by + rw [surfaceAreaMeasure_eq_map_of_interior_nonempty K hint] + let μ := (Measure.hausdorffMeasure 1).restrict (regularBoundary K) + have hμ : μ Set.univ < ⊤ := by + rw [Measure.restrict_apply_univ] + exact lt_of_le_of_lt (measure_mono fun p hp ↦ hp.1) + (K.hausdorffMeasure_frontier_lt_top hint) + let _ : IsFiniteMeasure μ := ⟨hμ⟩ + exact Measure.isFiniteMeasure_map μ (exteriorNormalAngle K) + +/-- Any extension of the exterior-normal angle from the regular boundary gives +the surface area measure as a pushforward of frontier length. -/ +theorem surfaceAreaMeasure_eq_map_frontier_of_eq_on_regularBoundary + (K : ConvexBody Point) (hK : (interior (K : Set Point)).Nonempty) + (ν : Point → Real.Angle) + (hν : ∀ p ∈ regularBoundary K, ν p = exteriorNormalAngle K p) : + surfaceAreaMeasure K = Measure.map ν + ((Measure.hausdorffMeasure 1).restrict (frontier (K : Set Point))) := by + let μ : Measure Point := Measure.hausdorffMeasure 1 + have hregular : regularBoundary K ⊆ frontier (K : Set Point) := fun _ hp ↦ hp.1 + have hae : frontier (K : Set Point) =ᵐ[μ] regularBoundary K := by + rw [ae_eq_set] + exact ⟨hausdorffMeasure_irregularBoundary_eq_zero K hK, + measure_mono_null (fun _ hp ↦ (hp.2 (hregular hp.1)).elim) measure_empty⟩ + have hrestrict : μ.restrict (frontier (K : Set Point)) = + μ.restrict (regularBoundary K) := Measure.restrict_congr_set hae + rw [surfaceAreaMeasure_eq_map_of_interior_nonempty K hK, hrestrict] + apply Measure.map_congr + filter_upwards [ae_restrict_mem (measurableSet_regularBoundary K)] with p hp + exact (hν p hp).symm + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Graph Integral +-/ + +@[expose] public section + +noncomputable section + +open Filter MeasureTheory +open scoped Topology + +namespace MovingSofa + +private theorem exteriorNormalAngle_upperGraph_eq (K : ConvexBody Point) + (hK : (interior (K : Set Point)).Nonempty) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) + {x : ℝ} (hx : x ∈ Set.Ioo (horizontalBounds K o e).1 (horizontalBounds K o e).2) + (hdiff : DifferentiableAt ℝ (upperGraphHeight K o e) x) : + exteriorNormalAngle K (o + e.symm !₂[x, upperGraphHeight K o e x]) = + vectorNormalAngle (e.symm !₂[-deriv (upperGraphHeight K o e) x, 1]) := by + have hp := upperGraph_mem_regularBoundary K hK o e hx hdiff + have hu := hp.2 + have hn : IsExteriorNormal K (o + e.symm !₂[x, upperGraphHeight K o e x]) + (exteriorNormalAngle K (o + e.symm !₂[x, upperGraphHeight K o e x])) := by + unfold exteriorNormalAngle + rw [dite_eq_left hu] + exact hu.exists.choose_spec + exact hu.unique hn (upperGraph_deriv_isExteriorNormal K o e hx hdiff) + +private theorem coordinate_normalVector_vectorNormalAngle_second + (e : Point ≃ₗᵢ[ℝ] Point) (m : ℝ) : + e (normalVector (vectorNormalAngle (e.symm !₂[-m, 1]))) 1 = + (Real.sqrt (1 + m ^ 2))⁻¹ := by + let q : Point := e.symm !₂[-m, 1] + have hq : q ≠ 0 := by + intro h + have h1 := congrFun (congrArg WithLp.ofLp (congrArg e h)) 1 + simp [q] at h1 + rw [normalVector_vectorNormalAngle hq, map_smul, PiLp.smul_apply] + have hnorm : ‖q‖ = Real.sqrt (1 + m ^ 2) := by + rw [← e.norm_map q, LinearIsometryEquiv.apply_symm_apply, EuclideanSpace.norm_eq] + congr 1 + simp [Fin.sum_univ_two, Real.norm_eq_abs, pow_two] + ring + rw [hnorm] + simp [q] + +private theorem upperGraphSurfaceIntegrand_eq_zero_of_speed_gt + (K : ConvexBody Point) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) + (ψ : Real.Angle → ℝ) {ε : ℝ} (hε : 0 < ε) + (hsupport : ∀ t, e (normalVector t) 1 < ε → ψ t = 0) {x : ℝ} + (hx : ε⁻¹ < Real.sqrt (1 + (deriv (upperGraphHeight K o e) x) ^ 2)) : + upperGraphSurfaceIntegrand K o e ψ x = 0 := by + rw [upperGraphSurfaceIntegrand, hsupport, zero_mul] + rw [coordinate_normalVector_vectorNormalAngle_second] + exact (inv_lt_comm₀ (Real.sqrt_pos.2 (by positivity)) hε).2 hx + +private theorem measurable_vectorNormalAngle : Measurable vectorNormalAngle := by + unfold vectorNormalAngle + apply Real.Angle.continuous_coe.measurable.comp + apply Complex.measurable_arg.comp + have hp0 : Measurable (fun p : Point ↦ p 0) := + (PiLp.proj (𝕜 := ℝ) 2 (fun _ : Fin 2 ↦ ℝ) 0).continuous.measurable + have hp1 : Measurable (fun p : Point ↦ p 1) := + (PiLp.proj (𝕜 := ℝ) 2 (fun _ : Fin 2 ↦ ℝ) 1).continuous.measurable + have h0 : Measurable (fun p : Point ↦ (p 0 : ℂ)) := + Complex.measurable_ofReal.comp hp0 + have h1 : Measurable (fun p : Point ↦ (p 1 : ℂ)) := + Complex.measurable_ofReal.comp hp1 + convert h0.add (h1.mul_const Complex.I) using 1 + funext p + apply Complex.ext <;> simp + +private theorem measurable_upperGraphSurfaceIntegrand (K : ConvexBody Point) + (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) (ψ : Real.Angle → ℝ) (hψ : Continuous ψ) : + Measurable (upperGraphSurfaceIntegrand K o e ψ) := by + unfold upperGraphSurfaceIntegrand + have hd : Measurable (deriv (upperGraphHeight K o e)) := measurable_deriv _ + have hv : Measurable (fun x ↦ e.symm !₂[-deriv (upperGraphHeight K o e) x, 1]) := by + fun_prop + apply (hψ.measurable.comp (measurable_vectorNormalAngle.comp ?_)).mul + ((measurable_const.add (hd.pow_const 2)).sqrt) + exact hv + +/-- A normal support cutoff gives a uniform bound on the weighted graph density. -/ +theorem norm_upperGraphSurfaceIntegrand_le + (K : ConvexBody Point) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) + (ψ : Real.Angle → ℝ) {ε M : ℝ} (hε : 0 < ε) + (hsupport : ∀ t, e (normalVector t) 1 < ε → ψ t = 0) + (hM : ∀ t, ‖ψ t‖ ≤ M) (x : ℝ) : + ‖upperGraphSurfaceIntegrand K o e ψ x‖ ≤ M * ε⁻¹ := by + have hM0 : 0 ≤ M := (norm_nonneg (ψ 0)).trans (hM 0) + let s := Real.sqrt (1 + (deriv (upperGraphHeight K o e) x) ^ 2) + by_cases hs : s ≤ ε⁻¹ + · rw [upperGraphSurfaceIntegrand, Real.norm_eq_abs, abs_mul] + rw [abs_of_nonneg (Real.sqrt_nonneg _)] + exact mul_le_mul (hM _) hs (Real.sqrt_nonneg _) hM0 + · rw [upperGraphSurfaceIntegrand_eq_zero_of_speed_gt K o e ψ hε hsupport + (lt_of_not_ge hs), norm_zero] + exact mul_nonneg hM0 (le_of_lt (inv_pos.mpr hε)) + +/-- The weighted surface integrand of an upper graph is integrable on its +horizontal projection interval. -/ +theorem integrable_upperGraphSurfaceIntegrand (K : ConvexBody Point) + (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) (ψ : Real.Angle → ℝ) (hψ : Continuous ψ) + {ε : ℝ} (hε : 0 < ε) + (hsupport : ∀ t, e (normalVector t) 1 < ε → ψ t = 0) (a b : ℝ) : + Integrable (upperGraphSurfaceIntegrand K o e ψ) (volume.restrict (Set.Icc a b)) := by + obtain ⟨t, -, ht⟩ := isCompact_univ.exists_isMaxOn Set.univ_nonempty hψ.norm.continuousOn + let M := ‖ψ t‖ + have hM (u : Real.Angle) : ‖ψ u‖ ≤ M := ht trivial + apply (integrable_const (μ := volume.restrict (Set.Icc a b)) + (c := M * ε⁻¹)).mono' + (measurable_upperGraphSurfaceIntegrand K o e ψ hψ).aestronglyMeasurable + exact Eventually.of_forall fun x ↦ + norm_upperGraphSurfaceIntegrand_le K o e ψ hε hsupport hM x + +private theorem upperCoordinateGraph_mem_frontier (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) {x : ℝ} + (hx : x ∈ Set.Icc (horizontalBounds K o e).1 (horizontalBounds K o e).2) : + o + e.symm !₂[x, upperGraphHeight K o e x] ∈ frontier (K : Set Point) := by + have hxproj : x ∈ horizontalProjection K o e := by + rw [horizontalProjection_eq_Icc] + exact hx + let p := o + e.symm !₂[x, upperGraphHeight K o e x] + have hpK : p ∈ K := upperGraphHeight_mem K o e hxproj + rw [mem_frontier_iff_notMem_interior hpK] + intro hpint + obtain ⟨r, hr, hball⟩ := Metric.isOpen_iff.mp isOpen_interior p hpint + let q := p + (r / 2) • e.symm !₂[0, 1] + have hqp : q ∈ K := interior_subset (hball (by + rw [Metric.mem_ball, dist_eq_norm] + rw [show q - p = (r / 2) • e.symm !₂[0, 1] by simp [q], norm_smul, + e.symm.norm_map, EuclideanSpace.norm_eq] + simp only [norm_div, Real.norm_eq_abs, sq_abs, Fin.sum_univ_two, Fin.isValue, + Matrix.cons_val_zero, ne_eq, OfNat.ofNat_ne_zero, not_false_eq_true, zero_pow, + Matrix.cons_val_one, Matrix.cons_val_fin_one, one_pow, zero_add, Real.sqrt_one, mul_one] + rw [abs_of_pos hr] + linarith)) + have hqfiber : o + e.symm !₂[x, upperGraphHeight K o e x + r / 2] ∈ K := by + convert hqp using 1 + apply e.injective + ext i + fin_cases i + · simp [p, q, map_add, map_smul] + · simp [p, q, map_add, map_smul] + ring + have hle := (upperGraphHeight_isGreatest K o e hxproj).2 hqfiber + linarith + +/-- Evaluate an angular weight at the upper graph’s normal direction above a point’s abscissa. -/ +def upperGraphWeight (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) (ψ : Real.Angle → ℝ) (p : Point) : ℝ := + ψ (vectorNormalAngle (e.symm !₂[ + -deriv (upperGraphHeight K o e) (e (p - o) 0), 1])) + +private theorem measurable_upperGraphWeight (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) (ψ : Real.Angle → ℝ) (hψ : Continuous ψ) : + Measurable (upperGraphWeight K o e ψ) := by + unfold upperGraphWeight + apply hψ.measurable.comp (measurable_vectorNormalAngle.comp ?_) + have hx : Measurable (fun p : Point ↦ e (p - o) 0) := by fun_prop + have hd : Measurable (fun p : Point ↦ + deriv (upperGraphHeight K o e) (e (p - o) 0)) := + (measurable_deriv _).comp hx + fun_prop + +private theorem integral_restrict_upperCoordinateGraph_eq_integral + (K : ConvexBody Point) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) + (ψ : Real.Angle → ℝ) (hψ : Continuous ψ) {a b : ℝ} + (hab : a ≤ b) + (hsub : Set.Icc a b ⊆ + Set.Ioo (horizontalBounds K o e).1 (horizontalBounds K o e).2) : + (∫ p, upperGraphWeight K o e ψ p ∂(Measure.hausdorffMeasure 1).restrict + ((fun x ↦ o + e.symm !₂[x, upperGraphHeight K o e x] : ℝ → Point) '' + Set.Icc a b)) = + ∫ x in a..b, upperGraphSurfaceIntegrand K o e ψ x := by + have hlocal : LocallyLipschitzOn (Set.Icc a b) (upperGraphHeight K o e) := + (locallyLipschitzOn_upperGraphHeight K o e).mono hsub + obtain ⟨C, hC⟩ := + LocallyLipschitzOn.exists_lipschitzOnWith_of_compact isCompact_Icc hlocal + rw [MeasureTheory.integral_restrict_coordinateGraph_eq_integral_sqrt_mul hab hC o e + (measurable_upperGraphWeight K o e ψ hψ)] + apply intervalIntegral.integral_congr + intro x _ + unfold upperGraphWeight upperGraphSurfaceIntegrand + simp only [add_sub_cancel_left, LinearIsometryEquiv.apply_symm_apply, Fin.isValue, + Matrix.cons_val_zero] + apply mul_comm + +private theorem integral_restrict_upperCoordinateGraph_eq_setIntegral + (K : ConvexBody Point) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) + (ψ : Real.Angle → ℝ) (hψ : Continuous ψ) {a b : ℝ} + (hab : a ≤ b) + (hsub : Set.Icc a b ⊆ + Set.Ioo (horizontalBounds K o e).1 (horizontalBounds K o e).2) : + (∫ p, upperGraphWeight K o e ψ p ∂(Measure.hausdorffMeasure 1).restrict + ((fun x ↦ o + e.symm !₂[x, upperGraphHeight K o e x] : ℝ → Point) '' + Set.Icc a b)) = + ∫ x in Set.Icc a b, upperGraphSurfaceIntegrand K o e ψ x := by + rw [integral_restrict_upperCoordinateGraph_eq_integral K o e ψ hψ hab hsub, + intervalIntegral.integral_of_le hab, ← integral_Icc_eq_integral_Ioc] + +private theorem upperCoordinateGraph_image_subset_frontier (K : ConvexBody Point) + (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) {s : Set ℝ} + (hs : s ⊆ Set.Icc (horizontalBounds K o e).1 (horizontalBounds K o e).2) : + (fun x ↦ o + e.symm !₂[x, upperGraphHeight K o e x] : ℝ → Point) '' s ⊆ + frontier (K : Set Point) := by + rintro _ ⟨x, hx, rfl⟩ + exact upperCoordinateGraph_mem_frontier K o e (hs hx) + +private theorem hausdorffMeasure_upperGraph_endpoints_eq_zero (K : ConvexBody Point) + (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) : + Measure.hausdorffMeasure 1 + ((fun x ↦ o + e.symm !₂[x, upperGraphHeight K o e x] : ℝ → Point) '' + ({(horizontalBounds K o e).1, (horizontalBounds K o e).2} : Set ℝ)) = 0 := by + let _ := MeasureTheory.Measure.nullSingletonClass_hausdorff Point (by norm_num : (0 : ℝ) < 1) + apply Set.Finite.measure_zero + exact (Set.toFinite _).image _ + +private theorem eventually_innerIcc_nonempty {a b : ℝ} (hab : a < b) : + ∀ᶠ n : ℕ in Filter.atTop, + a + 1 / ((n : ℝ) + 1) ≤ b - 1 / ((n : ℝ) + 1) := by + have hevent := (tendsto_one_div_add_atTop_nhds_zero_nat (𝕜 := ℝ)).eventually + (Iio_mem_nhds (half_pos (sub_pos.mpr hab))) + exact hevent.mono fun n hn ↦ by linarith + +/-- Integrals over the inner upper graph equal integrals over its coordinate interval. -/ +theorem eventually_integral_innerUpperGraph_eq_innerIcc + (K : ConvexBody Point) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) + (ψ : Real.Angle → ℝ) (hψ : Continuous ψ) + (hwidth : (horizontalBounds K o e).1 < (horizontalBounds K o e).2) : + ∀ᶠ n : ℕ in Filter.atTop, + (∫ p, upperGraphWeight K o e ψ p ∂(Measure.hausdorffMeasure 1).restrict + ((fun x ↦ o + e.symm !₂[x, upperGraphHeight K o e x] : ℝ → Point) '' + Set.Icc ((horizontalBounds K o e).1 + 1 / ((n : ℝ) + 1)) + ((horizontalBounds K o e).2 - 1 / ((n : ℝ) + 1)))) = + ∫ x in Set.Icc ((horizontalBounds K o e).1 + 1 / ((n : ℝ) + 1)) + ((horizontalBounds K o e).2 - 1 / ((n : ℝ) + 1)), + upperGraphSurfaceIntegrand K o e ψ x := by + filter_upwards [eventually_innerIcc_nonempty hwidth] with n hn + exact integral_restrict_upperCoordinateGraph_eq_setIntegral K o e ψ hψ hn + (innerIcc_subset_Ioo _ _ n) + +private theorem measurableSet_innerUpperGraph (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) (n : ℕ) : + MeasurableSet + ((fun x ↦ o + e.symm !₂[x, upperGraphHeight K o e x] : ℝ → Point) '' + Set.Icc ((horizontalBounds K o e).1 + 1 / ((n : ℝ) + 1)) + ((horizontalBounds K o e).2 - 1 / ((n : ℝ) + 1))) := by + let s := Set.Icc ((horizontalBounds K o e).1 + 1 / ((n : ℝ) + 1)) + ((horizontalBounds K o e).2 - 1 / ((n : ℝ) + 1)) + have hs : s ⊆ Set.Ioo (horizontalBounds K o e).1 + (horizontalBounds K o e).2 := innerIcc_subset_Ioo _ _ n + have hcont : ContinuousOn (upperGraphHeight K o e) s := + ((locallyLipschitzOn_upperGraphHeight K o e).mono hs).continuousOn + exact (isCompact_Icc.image_of_continuousOn (by fun_prop)).measurableSet + +private theorem tendsto_innerUpperGraph_indicator_at_regularPoint + (K : ConvexBody Point) (hK : (interior (K : Set Point)).Nonempty) + (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) (ψ : Real.Angle → ℝ) + {ε : ℝ} (hε : 0 < ε) + (hsupport : ∀ t, e (normalVector t) 1 < ε → ψ t = 0) {p : Point} + (hp : p ∈ regularBoundary K) + (hpend : p ∉ (fun x ↦ o + e.symm !₂[x, upperGraphHeight K o e x] : ℝ → Point) '' + ({(horizontalBounds K o e).1, (horizontalBounds K o e).2} : Set ℝ)) + (hpirr : p ∉ irregularUpperGraph K o e) : + Filter.Tendsto (fun n : ℕ ↦ + (((fun x ↦ o + e.symm !₂[x, upperGraphHeight K o e x] : ℝ → Point) '' + Set.Icc ((horizontalBounds K o e).1 + 1 / ((n : ℝ) + 1)) + ((horizontalBounds K o e).2 - 1 / ((n : ℝ) + 1))).indicator + (upperGraphWeight K o e ψ) p)) Filter.atTop + (nhds (ψ (exteriorNormalAngle K p))) := by + let a := exteriorNormalAngle K p + have ha : IsExteriorNormal K p a := by + dsimp only [a] + unfold exteriorNormalAngle + rw [dite_eq_left hp.2] + exact hp.2.exists.choose_spec + have hpK : p ∈ K := by + change p ∈ (K : Set Point) + rw [← K.isClosed.closure_eq] + exact frontier_subset_closure hp.1 + by_cases hψa : ψ a = 0 + · apply tendsto_const_nhds.congr' + filter_upwards [] with n + by_cases hpn : p ∈ (fun x ↦ o + e.symm !₂[x, upperGraphHeight K o e x] : ℝ → Point) '' + Set.Icc ((horizontalBounds K o e).1 + 1 / ((n : ℝ) + 1)) + ((horizontalBounds K o e).2 - 1 / ((n : ℝ) + 1)) + · obtain ⟨x, hx, rfl⟩ := hpn + have hxint := innerIcc_subset_Ioo (horizontalBounds K o e).1 + (horizontalBounds K o e).2 n hx + have hdiff : DifferentiableAt ℝ (upperGraphHeight K o e) x := by + by_contra hndiff + exact hpirr ⟨x, ⟨hxint, hndiff⟩, rfl⟩ + have hmem : (o + e.symm !₂[x, upperGraphHeight K o e x]) ∈ + (fun y ↦ o + e.symm !₂[y, upperGraphHeight K o e y] : ℝ → Point) '' + Set.Icc ((horizontalBounds K o e).1 + 1 / ((n : ℝ) + 1)) + ((horizontalBounds K o e).2 - 1 / ((n : ℝ) + 1)) := ⟨x, hx, rfl⟩ + rw [Set.indicator_of_mem hmem] + unfold upperGraphWeight + simp only [add_sub_cancel_left, LinearIsometryEquiv.apply_symm_apply, Fin.isValue, + Matrix.cons_val_zero] + rw [← exteriorNormalAngle_upperGraph_eq K hK o e hxint hdiff] + · change ψ a = _ + rw [Set.indicator] + simp only [hpn, ↓reduceIte] + exact hψa + · have hcoord : ε ≤ e (normalVector a) 1 := by + apply le_of_not_gt + exact fun h ↦ hψa (hsupport a h) + have hpos : 0 < e (normalVector a) 1 := hε.trans_le hcoord + have hgraph := eq_upperCoordinateGraph_of_isExteriorNormal_of_pos K o e hpK ha hpos + let x := e (p - o) 0 + have hxproj : x ∈ horizontalProjection K o e := ⟨p, hpK, rfl⟩ + have hxIcc : x ∈ Set.Icc (horizontalBounds K o e).1 + (horizontalBounds K o e).2 := by + rw [← horizontalProjection_eq_Icc] + exact hxproj + have hxneleft : x ≠ (horizontalBounds K o e).1 := by + intro hx + apply hpend + refine ⟨x, by simp [hx], ?_⟩ + exact hgraph.symm + have hxneright : x ≠ (horizontalBounds K o e).2 := by + intro hx + apply hpend + refine ⟨x, by simp [hx], ?_⟩ + exact hgraph.symm + have hxint : x ∈ Set.Ioo (horizontalBounds K o e).1 + (horizontalBounds K o e).2 := + ⟨lt_of_le_of_ne hxIcc.1 (Ne.symm hxneleft), lt_of_le_of_ne hxIcc.2 hxneright⟩ + have hdiff : DifferentiableAt ℝ (upperGraphHeight K o e) x := by + by_contra hndiff + apply hpirr + refine ⟨x, ⟨hxint, hndiff⟩, ?_⟩ + exact hgraph.symm + have hweight : upperGraphWeight K o e ψ p = ψ a := by + unfold upperGraphWeight + dsimp only [x] + have haeq : a = vectorNormalAngle + (e.symm !₂[-deriv (upperGraphHeight K o e) (e (p - o) 0), 1]) := by + have he := exteriorNormalAngle_upperGraph_eq K hK o e hxint hdiff + dsimp only [x] at he + calc + a = exteriorNormalAngle K p := rfl + _ = exteriorNormalAngle K + (o + e.symm !₂[e (p - o) 0, upperGraphHeight K o e (e (p - o) 0)]) := + congrArg (exteriorNormalAngle K) hgraph + _ = _ := he + rw [haeq] + have hev := eventually_mem_innerIcc_of_mem_Ioo hxint + apply tendsto_const_nhds.congr' + exact hev.mono fun n hn ↦ by + have hmem : p ∈ (fun y ↦ o + e.symm !₂[y, upperGraphHeight K o e y] : ℝ → Point) '' + Set.Icc ((horizontalBounds K o e).1 + 1 / ((n : ℝ) + 1)) + ((horizontalBounds K o e).2 - 1 / ((n : ℝ) + 1)) := ⟨x, hn, hgraph.symm⟩ + change ψ (exteriorNormalAngle K p) = _ + simp only [Set.indicator, hmem, ↓reduceIte, hweight] + rfl + +/-- Weighted integrals over compact inner upper graphs converge to the weighted +integral over the full frontier. -/ +theorem tendsto_integral_innerUpperGraph + (K : ConvexBody Point) (hK : (interior (K : Set Point)).Nonempty) + (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) (ψ : Real.Angle → ℝ) (hψ : Continuous ψ) + {ε : ℝ} (hε : 0 < ε) + (hsupport : ∀ t, e (normalVector t) 1 < ε → ψ t = 0) : + Filter.Tendsto (fun n : ℕ ↦ + ∫ p, upperGraphWeight K o e ψ p ∂(Measure.hausdorffMeasure 1).restrict + ((fun x ↦ o + e.symm !₂[x, upperGraphHeight K o e x] : ℝ → Point) '' + Set.Icc ((horizontalBounds K o e).1 + 1 / ((n : ℝ) + 1)) + ((horizontalBounds K o e).2 - 1 / ((n : ℝ) + 1)))) Filter.atTop + (nhds (∫ p in frontier (K : Set Point), ψ (exteriorNormalAngle K p) + ∂Measure.hausdorffMeasure 1)) := by + let μ : Measure Point := Measure.hausdorffMeasure 1 + let t := frontier (K : Set Point) + let g : ℕ → Set Point := fun n ↦ + (fun x ↦ o + e.symm !₂[x, upperGraphHeight K o e x] : ℝ → Point) '' + Set.Icc ((horizontalBounds K o e).1 + 1 / ((n : ℝ) + 1)) + ((horizontalBounds K o e).2 - 1 / ((n : ℝ) + 1)) + obtain ⟨u, -, hu⟩ := isCompact_univ.exists_isMaxOn Set.univ_nonempty hψ.norm.continuousOn + let M := ‖ψ u‖ + have hM (v : Real.Angle) : ‖ψ v‖ ≤ M := hu trivial + have hM0 : 0 ≤ M := norm_nonneg _ + have hgt (n : ℕ) : g n ⊆ t := + upperCoordinateGraph_image_subset_frontier K o e + ((innerIcc_subset_Ioo _ _ n).trans Set.Ioo_subset_Icc_self) + have hgmeas (n : ℕ) : MeasurableSet (g n) := measurableSet_innerUpperGraph K o e n + have hFmeas (n : ℕ) : AEStronglyMeasurable + ((g n).indicator (upperGraphWeight K o e ψ)) μ := + (measurable_upperGraphWeight K o e ψ hψ).aestronglyMeasurable.indicator (hgmeas n) + have hbound (n : ℕ) : ∀ᵐ p ∂μ, + ‖(g n).indicator (upperGraphWeight K o e ψ) p‖ ≤ t.indicator (fun _ ↦ M) p := + Filter.Eventually.of_forall fun p ↦ by + by_cases hp : p ∈ g n + · have hpt := hgt n hp + rw [Set.indicator_of_mem hp, Set.indicator_of_mem hpt] + exact hM _ + · rw [Set.indicator] + simp only [hp, ↓reduceIte, norm_zero] + by_cases hpt : p ∈ t <;> simp [hpt, hM0] + have hboundInt : Integrable (t.indicator fun _ ↦ M) μ := by + apply MeasureTheory.IntegrableOn.integrable_indicator + · exact MeasureTheory.integrableOn_const + (lt_top_iff_ne_top.mp (K.hausdorffMeasure_frontier_lt_top hK)) + · exact measurableSet_frontier + have hae : t =ᵐ[μ] regularBoundary K := by + rw [ae_eq_set] + exact ⟨hausdorffMeasure_irregularBoundary_eq_zero K hK, + measure_mono_null (fun _ hp ↦ (hp.2 hp.1.1).elim) measure_empty⟩ + have hpreg : ∀ᵐ p ∂μ, p ∈ t → p ∈ regularBoundary K := by + filter_upwards [hae] with p hp + exact fun hpt ↦ hp.mp hpt + have hpend : ∀ᵐ p ∂μ, p ∉ + (fun x ↦ o + e.symm !₂[x, upperGraphHeight K o e x] : ℝ → Point) '' + ({(horizontalBounds K o e).1, (horizontalBounds K o e).2} : Set ℝ) := + measure_eq_zero_iff_ae_notMem.mp (hausdorffMeasure_upperGraph_endpoints_eq_zero K o e) + have hpirr : ∀ᵐ p ∂μ, p ∉ irregularUpperGraph K o e := + measure_eq_zero_iff_ae_notMem.mp (hausdorffMeasure_irregularUpperGraph_eq_zero K o e) + have hlim : ∀ᵐ p ∂μ, Filter.Tendsto + (fun n ↦ (g n).indicator (upperGraphWeight K o e ψ) p) Filter.atTop + (nhds (t.indicator (fun p ↦ ψ (exteriorNormalAngle K p)) p)) := by + filter_upwards [hpreg, hpend, hpirr] with p hpreg hpend hpirr + by_cases hpt : p ∈ t + · rw [Set.indicator_of_mem hpt] + exact tendsto_innerUpperGraph_indicator_at_regularPoint K hK o e ψ hε hsupport + (hpreg hpt) hpend hpirr + · simp only [Set.indicator, hpt, ↓reduceIte] + apply tendsto_const_nhds.congr' + filter_upwards [] with n + have hpgn : p ∉ g n := fun h ↦ hpt (hgt n h) + simp [hpgn] + have ht := MeasureTheory.tendsto_integral_of_dominated_convergence (μ := μ) + (t.indicator fun _ ↦ M) hFmeas hboundInt hbound hlim + have htarget : (∫ p, t.indicator (fun p ↦ ψ (exteriorNormalAngle K p)) p ∂μ) = + ∫ p in t, ψ (exteriorNormalAngle K p) ∂μ := by + rw [MeasureTheory.integral_indicator measurableSet_frontier] + rw [← htarget] + simpa only [μ, g, MeasureTheory.integral_indicator, hgmeas] using ht + +/-- A planar convex body with nonempty interior has distinct horizontal bounds +in every isometric coordinate frame. -/ +theorem horizontalBounds_lt_of_interior_nonempty (K : ConvexBody Point) + (hK : (interior (K : Set Point)).Nonempty) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) : + (horizontalBounds K o e).1 < (horizontalBounds K o e).2 := by + obtain ⟨z, hz⟩ := hK + obtain ⟨ε, hε, hball⟩ := Metric.isOpen_iff.mp isOpen_interior z hz + let v := e.symm (normalVector 0) + let q := z + (ε / 2) • v + have hq : q ∈ K := interior_subset (hball (by + rw [Metric.mem_ball, dist_eq_norm] + rw [show q - z = (ε / 2) • v by simp [q], norm_smul] + simp only [v, e.symm.norm_map, norm_normalVector, mul_one, Real.norm_eq_abs, + abs_of_pos (half_pos hε)] + linarith)) + have hzI : e (z - o) 0 ∈ Set.Icc (horizontalBounds K o e).1 + (horizontalBounds K o e).2 := by + rw [← horizontalProjection_eq_Icc] + exact ⟨z, interior_subset hz, rfl⟩ + have hqI : e (q - o) 0 ∈ Set.Icc (horizontalBounds K o e).1 + (horizontalBounds K o e).2 := by + rw [← horizontalProjection_eq_Icc] + exact ⟨q, hq, rfl⟩ + have hcoord : e (q - o) 0 = e (z - o) 0 + ε / 2 := by + rw [show q - o = (z - o) + (ε / 2) • v by simp [q]; module] + simp [v, normalVector, frame] + linarith [hzI.1, hqI.2] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Construction +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +theorem surfaceAreaMeasure_construction (K : ConvexBody Point) : + IsFiniteMeasure (surfaceAreaMeasure K) ∧ + ((K : Set Point).Subsingleton → surfaceAreaMeasure K = 0) ∧ + (∀ d, IsSegmentPresentation K d → surfaceAreaMeasure K = + ENNReal.ofReal (dist d.1 d.2.1) • + (Measure.dirac d.2.2 + Measure.dirac (d.2.2 + ((Real.pi : ℝ) : Real.Angle)))) ∧ + ((interior (K : Set Point)).Nonempty → + Measure.hausdorffMeasure 1 (frontier (K : Set Point)) < ⊤ ∧ + Measure.hausdorffMeasure 1 (frontier (K : Set Point) \ regularBoundary K) = 0 ∧ + ∀ ν : Point → Real.Angle, (∀ p ∈ regularBoundary K, ν p = exteriorNormalAngle K p) → + surfaceAreaMeasure K = Measure.map ν + ((Measure.hausdorffMeasure 1).restrict (frontier (K : Set Point)))) ∧ + (∀ (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) (ψ : Real.Angle → ℝ), Continuous ψ → + ∀ ε : ℝ, 0 < ε → (∀ t, e (normalVector t) 1 < ε → ψ t = 0) → + ((horizontalBounds K o e).1 < (horizontalBounds K o e).2 → + Integrable (upperGraphSurfaceIntegrand K o e ψ) + (volume.restrict (Set.Icc (horizontalBounds K o e).1 (horizontalBounds K o e).2)) ∧ + (∫ t, ψ t ∂surfaceAreaMeasure K) = + ∫ x in Set.Icc (horizontalBounds K o e).1 (horizontalBounds K o e).2, + upperGraphSurfaceIntegrand K o e ψ x) ∧ + ((horizontalBounds K o e).1 = (horizontalBounds K o e).2 → + (∫ t, ψ t ∂surfaceAreaMeasure K) = 0)) := by + by_cases hsub : (K : Set Point).Subsingleton + · refine ⟨isFiniteMeasure_surfaceAreaMeasure_of_subsingleton K hsub, + fun _ ↦ surfaceAreaMeasure_eq_zero_of_subsingleton K hsub, ?_, ?_, ?_⟩ + · intro d hd + exact (not_subsingleton_of_isSegmentPresentation K hd hsub).elim + · intro hint + obtain ⟨p, hp⟩ := K.nonempty + have hset : (K : Set Point) = {p} := + Set.eq_singleton_iff_unique_mem.mpr ⟨hp, fun x hx ↦ hsub hx hp⟩ + rw [hset, interior_singleton] at hint + exact hint.ne_empty rfl |>.elim + · intro o e ψ _ ε _ _ + have hbounds := horizontalBounds_eq_of_subsingleton K hsub o e + constructor + · intro hlt + exact (hlt.ne hbounds).elim + · intro _ + exact surfaceAreaMeasure_integral_eq_zero_of_subsingleton K hsub ψ + · by_cases hint : (interior (K : Set Point)).Nonempty + · refine ⟨isFiniteMeasure_surfaceAreaMeasure_of_interior_nonempty K hint, + fun hs ↦ (not_subsingleton_of_interior_nonempty K hint hs).elim, ?_, ?_, ?_⟩ + · intro d hd + exact (not_exists_segmentPresentation_of_interior_nonempty K hint ⟨d, hd⟩).elim + · intro _ + refine ⟨K.hausdorffMeasure_frontier_lt_top hint, ?_, ?_⟩ + · exact hausdorffMeasure_irregularBoundary_eq_zero K hint + · intro ν hν + exact surfaceAreaMeasure_eq_map_frontier_of_eq_on_regularBoundary K hint ν hν + · intro o e ψ hψ ε hε hsupport + constructor + · intro hwidth + have hintg := integrable_upperGraphSurfaceIntegrand K o e ψ hψ hε hsupport + (horizontalBounds K o e).1 (horizontalBounds K o e).2 + refine ⟨hintg, ?_⟩ + rw [surfaceAreaMeasure_eq_map_frontier_of_eq_on_regularBoundary K hint + (exteriorNormalAngle K) (fun _ _ ↦ rfl)] + rw [MeasureTheory.integral_map] + · apply tendsto_nhds_unique + (tendsto_integral_innerUpperGraph K hint o e ψ hψ hε hsupport) + apply (tendsto_integral_innerIcc hintg).congr' + filter_upwards [eventually_integral_innerUpperGraph_eq_innerIcc + K o e ψ hψ hwidth] with n hn + exact hn.symm + · have hae : frontier (K : Set Point) =ᵐ[Measure.hausdorffMeasure 1] + regularBoundary K := by + rw [ae_eq_set] + exact ⟨hausdorffMeasure_irregularBoundary_eq_zero K hint, + measure_mono_null (fun _ hp ↦ (hp.2 hp.1.1).elim) measure_empty⟩ + have hrestrict : (Measure.hausdorffMeasure 1).restrict + (frontier (K : Set Point)) = + (Measure.hausdorffMeasure 1).restrict (regularBoundary K) := + Measure.restrict_congr_set hae + rw [hrestrict] + exact aemeasurable_exteriorNormalAngle_restrict_regularBoundary K + (Measure.hausdorffMeasure 1) + · exact hψ.aestronglyMeasurable + · intro hwidth + exact ((horizontalBounds_lt_of_interior_nonempty K hint o e).ne hwidth).elim + · have hinterior : interior (K : Set Point) = ∅ := Set.not_nonempty_iff_eq_empty.mp hint + have hseg := exists_segmentPresentation_of_interior_empty K hsub hinterior + refine ⟨isFiniteMeasure_surfaceAreaMeasure_of_segmentPresentation K hseg.choose_spec, + fun hs ↦ (hsub hs).elim, ?_, ?_, ?_⟩ + · intro d hd + exact surfaceAreaMeasure_eq_segmentPresentation K d hd + · exact fun hi ↦ (hint hi).elim + · intro o e ψ _ ε hε hsupport + constructor + · intro hbounds + exact segment_graph_formula K o e ψ hε hsupport hseg.choose hseg.choose_spec hbounds + · intro hbounds + exact segment_integral_eq_zero_of_horizontalBounds_eq K o e ψ ε hε hsupport + hseg.choose hseg.choose_spec hbounds + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Graph Convergence +-/ + +@[expose] public section + +noncomputable section + +open Filter +open MeasureTheory +open scoped Topology + +namespace MovingSofa + +/-- The angle of a planar vector varies continuously away from zero. -/ +theorem continuousAt_vectorNormalAngle {p : Point} (hp : p ≠ 0) : + ContinuousAt vectorNormalAngle p := by + have hz : (⟨p 0, p 1⟩ : ℂ) ≠ 0 := by + intro h + apply hp + ext i + fin_cases i + · exact congrArg Complex.re h + · exact congrArg Complex.im h + have hc : Continuous (fun q : Point ↦ (⟨q 0, q 1⟩ : ℂ)) := by + have h : Continuous (fun q : Point ↦ (q 0 : ℂ) + (q 1 : ℂ) * Complex.I) := by + fun_prop + convert h using 1 + funext q + apply Complex.ext <;> simp + exact (Complex.continuousAt_arg_coe_angle hz).comp + (f := fun q : Point ↦ (⟨q 0, q 1⟩ : ℂ)) hc.continuousAt + +/-- The weighted upper-graph surface density is continuous as a function of slope. -/ +theorem continuous_surfaceDensity_of_slope (e : Point ≃ₗᵢ[ℝ] Point) + {ψ : Real.Angle → ℝ} (hψ : Continuous ψ) : + Continuous (fun r : ℝ ↦ ψ (vectorNormalAngle (e.symm !₂[-r, 1])) * + Real.sqrt (1 + r ^ 2)) := by + have hv : Continuous (fun r : ℝ ↦ vectorNormalAngle (e.symm !₂[-r, 1])) := by + apply continuous_iff_continuousAt.mpr + intro r + have hne : e.symm !₂[-r, 1] ≠ 0 := by + intro h + have h1 := congrArg (fun p : Point ↦ e p 1) h + simp at h1 + apply (continuousAt_vectorNormalAngle hne).comp + (f := fun r : ℝ ↦ e.symm !₂[-r, 1]) + fun_prop + exact (hψ.comp hv).mul (by fun_prop) + +private theorem ae_differentiableAt_upperGraphHeight (K : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) : + ∀ᵐ x : ℝ, x ∈ Set.Ioo (horizontalBounds K o e).1 (horizontalBounds K o e).2 → + DifferentiableAt ℝ (upperGraphHeight K o e) x := by + let a := (horizontalBounds K o e).1 + let b := (horizontalBounds K o e).2 + let δ : ℕ → ℝ := fun m ↦ 1 / ((m : ℝ) + 1) + have hδpos (m : ℕ) : 0 < δ m := by positivity + have hcompact (m : ℕ) : IsCompact (Set.Icc (a + δ m) (b - δ m)) := isCompact_Icc + have hsub (m : ℕ) : Set.Icc (a + δ m) (b - δ m) ⊆ Set.Ioo a b := by + intro x hx + exact ⟨lt_of_lt_of_le (lt_add_of_pos_right a (hδpos m)) hx.1, + lt_of_le_of_lt hx.2 (sub_lt_self b (hδpos m))⟩ + have hae (m : ℕ) : ∀ᵐ x : ℝ, + x ∈ Set.Ioo (a + δ m) (b - δ m) → + DifferentiableAt ℝ (upperGraphHeight K o e) x := by + obtain ⟨C, hC⟩ := + ((locallyLipschitzOn_upperGraphHeight K o e).mono (hsub m)).exists_lipschitzOnWith_of_compact + (hcompact m) + filter_upwards [hC.ae_differentiableWithinAt_of_mem_of_real] with x hdiff hx + exact (hdiff ⟨hx.1.le, hx.2.le⟩).differentiableAt (Icc_mem_nhds hx.1 hx.2) + have hall : ∀ᵐ x : ℝ, ∀ m, x ∈ Set.Ioo (a + δ m) (b - δ m) → + DifferentiableAt ℝ (upperGraphHeight K o e) x := + MeasureTheory.ae_all_iff.mpr hae + filter_upwards [hall] with x hxall hx + have hδ : Tendsto δ atTop (𝓝 0) := tendsto_one_div_add_atTop_nhds_zero_nat + have hevent : ∀ᶠ m in atTop, δ m < x - a ∧ δ m < b - x := + ((hδ.eventually_lt_const (sub_pos.mpr hx.1)).and + (hδ.eventually_lt_const (sub_pos.mpr hx.2))) + obtain ⟨m, hm⟩ := hevent.exists + apply hxall m + constructor <;> linarith [hm.1, hm.2] + +private theorem exists_tendsto_points_of_mem_of_hausdorffDist + (K : ℕ → ConvexBody Point) (L : ConvexBody Point) + (hlim : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) + (L : Set Point)) atTop (𝓝 0)) {p : Point} (hp : p ∈ L) : + ∃ q : ℕ → Point, (∀ n, q n ∈ K n) ∧ Tendsto q atTop (𝓝 p) := by + have hnear (n : ℕ) : ∃ q ∈ (K n : Set Point), + dist p q < Metric.hausdorffDist (K n : Set Point) (L : Set Point) + + 1 / ((n : ℝ) + 1) := by + obtain ⟨q, hq, hd⟩ := Metric.exists_dist_lt_of_hausdorffDist_lt' + (r := Metric.hausdorffDist (K n : Set Point) (L : Set Point) + + 1 / ((n : ℝ) + 1)) hp + (by linarith [show 0 < 1 / ((n : ℝ) + 1) by positivity]) + (Metric.hausdorffEDist_ne_top_of_nonempty_of_bounded + (K n).nonempty L.nonempty (K n).isCompact.isBounded L.isCompact.isBounded) + exact ⟨q, hq, by simpa [dist_comm] using hd⟩ + choose q hqK hqdist using hnear + refine ⟨q, hqK, ?_⟩ + have hsum : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) + (L : Set Point) + 1 / ((n : ℝ) + 1)) atTop (𝓝 0) := by + simpa only [add_zero] using hlim.add tendsto_one_div_add_atTop_nhds_zero_nat + apply tendsto_iff_dist_tendsto_zero.mpr + apply squeeze_zero (fun _ ↦ dist_nonneg) _ hsum + intro n + simpa [dist_comm] using (hqdist n).le + +private theorem exists_horizontal_side_points (L : ConvexBody Point) (o : Point) + (e : Point ≃ₗᵢ[ℝ] Point) {x : ℝ} + (hx : x ∈ Set.Ioo (horizontalBounds L o e).1 (horizontalBounds L o e).2) : + ∃ l ∈ (L : Set Point), ∃ r ∈ (L : Set Point), + e (l - o) 0 < x ∧ x < e (r - o) 0 := by + let a := (horizontalBounds L o e).1 + let b := (horizontalBounds L o e).2 + have hlcoord : (a + x) / 2 ∈ horizontalProjection L o e := by + rw [horizontalProjection_eq_Icc] + dsimp [a, b] + constructor <;> linarith [hx.1, hx.2] + have hrcoord : (x + b) / 2 ∈ horizontalProjection L o e := by + rw [horizontalProjection_eq_Icc] + dsimp [a, b] + constructor <;> linarith [hx.1, hx.2] + obtain ⟨l, hl, hleq⟩ := hlcoord + obtain ⟨r, hr, hreq⟩ := hrcoord + refine ⟨l, hl, r, hr, ?_, ?_⟩ + · change e (l - o) 0 = (a + x) / 2 at hleq + rw [hleq] + dsimp [a] + linarith [hx.1] + · change e (r - o) 0 = (x + b) / 2 at hreq + rw [hreq] + dsimp [b] + linarith [hx.2] + +/-- Points on an interior horizontal fiber can be approximated within the same fibers. -/ +theorem exists_tendsto_points_with_horizontal_coordinate + (K : ℕ → ConvexBody Point) (L : ConvexBody Point) + (hlim : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) + (L : Set Point)) atTop (𝓝 0)) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) + {p : Point} (hp : p ∈ L) + (hpint : e (p - o) 0 ∈ Set.Ioo (horizontalBounds L o e).1 + (horizontalBounds L o e).2) : + ∃ q : ℕ → Point, (∀ n, q n ∈ K n) ∧ Tendsto q atTop (𝓝 p) ∧ + ∀ᶠ n in atTop, e (q n - o) 0 = e (p - o) 0 := by + let c : Point → ℝ := fun z ↦ e (z - o) 0 + have hc : Continuous c := by + exact (PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 0).comp + (e.continuous.comp (continuous_id.sub continuous_const)) + have hc_lineMap (a b : Point) (t : ℝ) : + c (AffineMap.lineMap a b t) = (1 - t) * c a + t * c b := by + dsimp [c] + rw [AffineMap.lineMap_apply_module] + simp only [map_sub, map_add, map_smul, PiLp.sub_apply, PiLp.add_apply, + PiLp.smul_apply, smul_eq_mul] + ring + obtain ⟨l, hlL, r, hrL, hl, hr⟩ := exists_horizontal_side_points L o e hpint + obtain ⟨pn, hpnK, hpn⟩ := exists_tendsto_points_of_mem_of_hausdorffDist K L hlim hp + obtain ⟨ln, hlnK, hln⟩ := exists_tendsto_points_of_mem_of_hausdorffDist K L hlim hlL + obtain ⟨rn, hrnK, hrn⟩ := exists_tendsto_points_of_mem_of_hausdorffDist K L hlim hrL + let x := c p + let tR : ℕ → ℝ := fun n ↦ (x - c (pn n)) / (c (rn n) - c (pn n)) + let tL : ℕ → ℝ := fun n ↦ (c (pn n) - x) / (c (pn n) - c (ln n)) + let qR : ℕ → Point := fun n ↦ AffineMap.lineMap (pn n) (rn n) (tR n) + let qL : ℕ → Point := fun n ↦ AffineMap.lineMap (pn n) (ln n) (tL n) + let corrected : ℕ → Point := fun n ↦ if c (pn n) ≤ x then qR n else qL n + let good : ℕ → Prop := fun n ↦ c (ln n) < x ∧ x < c (rn n) + let q : ℕ → Point := fun n ↦ if good n then corrected n else pn n + have hcp : Tendsto (fun n ↦ c (pn n)) atTop (𝓝 (c p)) := (hc.tendsto p).comp hpn + have hcl : Tendsto (fun n ↦ c (ln n)) atTop (𝓝 (c l)) := (hc.tendsto l).comp hln + have hcr : Tendsto (fun n ↦ c (rn n)) atTop (𝓝 (c r)) := (hc.tendsto r).comp hrn + have htR : Tendsto tR atTop (𝓝 0) := by + have hden : c r - c p ≠ 0 := by + dsimp [c] at hr + linarith + have hxlim : Tendsto (fun _ : ℕ ↦ x) atTop (𝓝 x) := tendsto_const_nhds + change Tendsto ((fun n ↦ x - c (pn n)) / + fun n ↦ c (rn n) - c (pn n)) atTop (𝓝 0) + simpa [x] using (hxlim.sub hcp).div (hcr.sub hcp) hden + have htL : Tendsto tL atTop (𝓝 0) := by + have hden : c p - c l ≠ 0 := by + dsimp [c] at hl + linarith + have hxlim : Tendsto (fun _ : ℕ ↦ x) atTop (𝓝 x) := tendsto_const_nhds + change Tendsto ((fun n ↦ c (pn n) - x) / + fun n ↦ c (pn n) - c (ln n)) atTop (𝓝 0) + simpa [x] using (hcp.sub hxlim).div (hcp.sub hcl) hden + have hqR : Tendsto qR atTop (𝓝 p) := by + simpa [qR] using hpn.lineMap hrn htR + have hqL : Tendsto qL atTop (𝓝 p) := by + simpa [qL] using hpn.lineMap hln htL + have hcorrected : Tendsto corrected atTop (𝓝 p) := by + exact hqR.if' hqL + have hq : Tendsto q atTop (𝓝 p) := by + exact hcorrected.if' hpn + have hgood : ∀ᶠ n in atTop, good n := by + filter_upwards [hcl.eventually_lt tendsto_const_nhds hl, + tendsto_const_nhds.eventually_lt hcr hr] with n hnl hnr + exact ⟨hnl, hnr⟩ + refine ⟨q, ?_, hq, ?_⟩ + · intro n + by_cases hgn : good n + · simp only [q, hgn, ite_true, corrected] + dsimp [good] at hgn + by_cases hpnx : c (pn n) ≤ x + · simp only [hpnx, ite_true, qR] + apply (K n).convex.lineMap_mem (hpnK n) (hrnK n) + constructor + · exact div_nonneg (sub_nonneg.mpr hpnx) (sub_nonneg.mpr (le_trans hpnx hgn.2.le)) + · apply (div_le_one (sub_pos.mpr (lt_of_le_of_lt hpnx hgn.2))).mpr + linarith + · simp only [hpnx, ite_false, qL] + apply (K n).convex.lineMap_mem (hpnK n) (hlnK n) + constructor + · exact div_nonneg (sub_nonneg.mpr (le_of_not_ge hpnx)) + (sub_nonneg.mpr (le_trans hgn.1.le (le_of_not_ge hpnx))) + · apply (div_le_one (sub_pos.mpr (lt_of_lt_of_le hgn.1 (le_of_not_ge hpnx)))).mpr + linarith + · simp [q, hgn, hpnK n] + · filter_upwards [hgood] with n hgn + simp only [q, hgn, ite_true, corrected] + dsimp [good] at hgn + by_cases hpnx : c (pn n) ≤ x + · simp only [hpnx, ite_true, qR, tR] + rw [show e (AffineMap.lineMap (pn n) (rn n) + ((x - c (pn n)) / (c (rn n) - c (pn n))) - o) 0 = + c (AffineMap.lineMap (pn n) (rn n) + ((x - c (pn n)) / (c (rn n) - c (pn n)))) by rfl] + rw [hc_lineMap] + change _ = x + field_simp [ne_of_gt (sub_pos.mpr (lt_of_le_of_lt hpnx hgn.2))] + ring + · simp only [hpnx, ite_false, qL, tL] + rw [show e (AffineMap.lineMap (pn n) (ln n) + ((c (pn n) - x) / (c (pn n) - c (ln n))) - o) 0 = + c (AffineMap.lineMap (pn n) (ln n) + ((c (pn n) - x) / (c (pn n) - c (ln n)))) by rfl] + rw [hc_lineMap] + change _ = x + field_simp [ne_of_gt (sub_pos.mpr (lt_of_lt_of_le hgn.1 (le_of_not_ge hpnx)))] + ring + +/-- A varying point of the approximating bodies is asymptotically close to the limit body. -/ +private theorem exists_points_in_limit_tendsto_dist_zero + (K : ℕ → ConvexBody Point) (L : ConvexBody Point) + (hlim : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) + (L : Set Point)) atTop (𝓝 0)) (p : ℕ → Point) (hp : ∀ n, p n ∈ K n) : + ∃ q : ℕ → Point, (∀ n, q n ∈ L) ∧ + Tendsto (fun n ↦ dist (p n) (q n)) atTop (𝓝 0) := by + have hnear (n : ℕ) : ∃ q ∈ (L : Set Point), + dist (p n) q < Metric.hausdorffDist (K n : Set Point) (L : Set Point) + + 1 / ((n : ℝ) + 1) := by + obtain ⟨q, hq, hd⟩ := Metric.exists_dist_lt_of_hausdorffDist_lt + (r := Metric.hausdorffDist (K n : Set Point) (L : Set Point) + + 1 / ((n : ℝ) + 1)) (hp n) + (by linarith [show 0 < 1 / ((n : ℝ) + 1) by positivity]) + (Metric.hausdorffEDist_ne_top_of_nonempty_of_bounded + (K n).nonempty L.nonempty (K n).isCompact.isBounded L.isCompact.isBounded) + exact ⟨q, hq, hd⟩ + choose q hqL hqdist using hnear + refine ⟨q, hqL, ?_⟩ + have hsum : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) + (L : Set Point) + 1 / ((n : ℝ) + 1)) atTop (𝓝 0) := by + simpa only [add_zero] using hlim.add tendsto_one_div_add_atTop_nhds_zero_nat + apply squeeze_zero (fun _ ↦ dist_nonneg) _ hsum + exact fun n ↦ (hqdist n).le + +/-- Upper graph heights converge at every interior point of the limit projection. -/ +theorem tendsto_upperGraphHeight_of_hausdorffDist + (K : ℕ → ConvexBody Point) (L : ConvexBody Point) + (hlim : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) + (L : Set Point)) atTop (𝓝 0)) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) + {x : ℝ} (hx : x ∈ Set.Ioo (horizontalBounds L o e).1 + (horizontalBounds L o e).2) : + Tendsto (fun n ↦ upperGraphHeight (K n) o e x) atTop + (𝓝 (upperGraphHeight L o e x)) := by + classical + let cx : Point → ℝ := fun p ↦ e (p - o) 0 + let cy : Point → ℝ := fun p ↦ e (p - o) 1 + have reconstruct (p : Point) : o + e.symm !₂[cx p, cy p] = p := by + dsimp [cx, cy] + rw [← e.injective.eq_iff] + ext i + fin_cases i <;> simp + have hxproj : x ∈ horizontalProjection L o e := by + rw [horizontalProjection_eq_Icc] + exact ⟨hx.1.le, hx.2.le⟩ + let pTop := o + e.symm !₂[x, upperGraphHeight L o e x] + have hpTop : pTop ∈ L := upperGraphHeight_mem L o e hxproj + have hcxTop : cx pTop = x := by simp [cx, pTop] + have hcyTop : cy pTop = upperGraphHeight L o e x := by simp [cy, pTop] + have hpTopInt : cx pTop ∈ Set.Ioo (horizontalBounds L o e).1 + (horizontalBounds L o e).2 := by simpa [hcxTop] using hx + obtain ⟨q, hqK, hq, hqx⟩ := + exists_tendsto_points_with_horizontal_coordinate K L hlim o e hpTop hpTopInt + have hcyq : Tendsto (fun n ↦ cy (q n)) atTop + (𝓝 (upperGraphHeight L o e x)) := by + have hcy : Continuous cy := by + exact (PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 1).comp + (e.continuous.comp (continuous_id.sub continuous_const)) + change Tendsto (cy ∘ q) atTop (𝓝 (upperGraphHeight L o e x)) + simpa [hcyTop] using (hcy.tendsto pTop).comp hq + have hqcx : ∀ᶠ n in atTop, cx (q n) = x := by + filter_upwards [hqx] with n hnx + dsimp [cx] + rw [hnx] + exact hcxTop + have hqproj : ∀ᶠ n in atTop, x ∈ horizontalProjection (K n) o e := by + filter_upwards [hqcx] with n hnx + refine ⟨q n, hqK n, ?_⟩ + exact hnx + let z : ℕ → Point := fun n ↦ if hn : x ∈ horizontalProjection (K n) o e then + o + e.symm !₂[x, upperGraphHeight (K n) o e x] else q n + have hzK (n : ℕ) : z n ∈ K n := by + dsimp [z] + split_ifs with hn + · exact upperGraphHeight_mem (K n) o e hn + · exact hqK n + have hzeq : z =ᶠ[atTop] + fun n ↦ o + e.symm !₂[x, upperGraphHeight (K n) o e x] := by + filter_upwards [hqproj] with n hn + simp [z, hn] + obtain ⟨w, hwL, hd⟩ := exists_points_in_limit_tendsto_dist_zero K L hlim z hzK + have hsub : Tendsto (fun n ↦ z n - w n) atTop (𝓝 0) := by + apply tendsto_iff_dist_tendsto_zero.mpr + simpa [dist_eq_norm] using hd + have hdx : Tendsto (fun n ↦ cx (z n) - cx (w n)) atTop (𝓝 0) := by + have heval : Continuous (fun v : Point ↦ e v 0) := + (PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 0).comp e.continuous + rw [show (fun n ↦ cx (z n) - cx (w n)) = + fun n ↦ e (z n - w n) 0 by + funext n + simp [cx]] + change Tendsto ((fun v : Point ↦ e v 0) ∘ fun n ↦ z n - w n) atTop (𝓝 0) + simpa only [map_zero, PiLp.zero_apply] using (heval.tendsto 0).comp hsub + have hdy : Tendsto (fun n ↦ cy (z n) - cy (w n)) atTop (𝓝 0) := by + have heval : Continuous (fun v : Point ↦ e v 1) := + (PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 1).comp e.continuous + rw [show (fun n ↦ cy (z n) - cy (w n)) = + fun n ↦ e (z n - w n) 1 by + funext n + simp [cy]] + change Tendsto ((fun v : Point ↦ e v 1) ∘ fun n ↦ z n - w n) atTop (𝓝 0) + simpa only [map_zero, PiLp.zero_apply] using (heval.tendsto 0).comp hsub + have hcxz : Tendsto (fun n ↦ cx (z n)) atTop (𝓝 x) := by + apply tendsto_const_nhds.congr' + filter_upwards [hzeq] with n hn + rw [hn] + simp [cx] + have hcxw : Tendsto (fun n ↦ cx (w n)) atTop (𝓝 x) := by + have h := hcxz.sub hdx + convert h using 1 <;> simp + have hgL : Tendsto (fun n ↦ upperGraphHeight L o e (cx (w n))) atTop + (𝓝 (upperGraphHeight L o e x)) := by + have hcont : ContinuousAt (upperGraphHeight L o e) x := + (locallyLipschitzOn_upperGraphHeight L o e).continuousOn.continuousAt + (isOpen_Ioo.mem_nhds hx) + exact hcont.tendsto.comp hcxw + have hlower : ∀ᶠ n in atTop, + cy (q n) ≤ upperGraphHeight (K n) o e x := by + filter_upwards [hqcx] with n hnx + apply (upperGraphHeight_isGreatest (K n) o e (by + exact ⟨q n, hqK n, hnx⟩)).2 + change o + e.symm !₂[x, cy (q n)] ∈ K n + rw [show o + e.symm !₂[x, cy (q n)] = q n by + calc + o + e.symm !₂[x, cy (q n)] = o + e.symm !₂[cx (q n), cy (q n)] := by + rw [hnx] + _ = q n := reconstruct (q n)] + exact hqK n + have hupper : ∀ᶠ n in atTop, + upperGraphHeight (K n) o e x ≤ + upperGraphHeight L o e (cx (w n)) + (cy (z n) - cy (w n)) := by + filter_upwards [hzeq] with n hzn + have hwproj : cx (w n) ∈ horizontalProjection L o e := + ⟨w n, hwL n, rfl⟩ + have hwy : cy (w n) ≤ upperGraphHeight L o e (cx (w n)) := by + apply (upperGraphHeight_isGreatest L o e hwproj).2 + change o + e.symm !₂[cx (w n), cy (w n)] ∈ L + rw [reconstruct (w n)] + exact hwL n + have hzy : cy (z n) = upperGraphHeight (K n) o e x := by + rw [hzn] + simp [cy] + rw [← hzy] + linarith + apply tendsto_of_tendsto_of_tendsto_of_le_of_le' hcyq + (by simpa using hgL.add hdy) hlower hupper + +private theorem eventually_mem_horizontalProjection_of_hausdorffDist + (K : ℕ → ConvexBody Point) (L : ConvexBody Point) + (hlim : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) + (L : Set Point)) atTop (𝓝 0)) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) + {x : ℝ} (hx : x ∈ Set.Ioo (horizontalBounds L o e).1 + (horizontalBounds L o e).2) : + ∀ᶠ n in atTop, x ∈ horizontalProjection (K n) o e := by + have hxproj : x ∈ horizontalProjection L o e := by + rw [horizontalProjection_eq_Icc] + exact ⟨hx.1.le, hx.2.le⟩ + let p := o + e.symm !₂[x, upperGraphHeight L o e x] + have hp : p ∈ L := upperGraphHeight_mem L o e hxproj + have hpcoord : e (p - o) 0 = x := by simp [p] + have hpint : e (p - o) 0 ∈ Set.Ioo (horizontalBounds L o e).1 + (horizontalBounds L o e).2 := by + rw [hpcoord] + exact hx + obtain ⟨q, hqK, -, hqx⟩ := + exists_tendsto_points_with_horizontal_coordinate K L hlim o e hp hpint + filter_upwards [hqx] with n hn + exact ⟨q n, hqK n, hn.trans hpcoord⟩ + +/-- Upper graph surface densities converge almost everywhere on the interior limit projection. -/ +theorem ae_tendsto_upperGraphSurfaceIntegrand_of_hausdorffDist + (K : ℕ → ConvexBody Point) (L : ConvexBody Point) + (hlim : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) + (L : Set Point)) atTop (𝓝 0)) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) + {ψ : Real.Angle → ℝ} (hψ : Continuous ψ) : + ∀ᵐ x : ℝ, x ∈ Set.Ioo (horizontalBounds L o e).1 + (horizontalBounds L o e).2 → + Tendsto (fun n ↦ upperGraphSurfaceIntegrand (K n) o e ψ x) atTop + (𝓝 (upperGraphSurfaceIntegrand L o e ψ x)) := by + have haeK : ∀ᵐ x : ℝ, ∀ n, + x ∈ Set.Ioo (horizontalBounds (K n) o e).1 (horizontalBounds (K n) o e).2 → + DifferentiableAt ℝ (upperGraphHeight (K n) o e) x := + MeasureTheory.ae_all_iff.mpr fun n ↦ ae_differentiableAt_upperGraphHeight (K n) o e + have haeL := ae_differentiableAt_upperGraphHeight L o e + filter_upwards [haeK, haeL] with x hdiffK hdiffL hx + let left := (horizontalBounds L o e).1 + let right := (horizontalBounds L o e).2 + let a := (left + x) / 2 + let b := (x + right) / 2 + have hax : a < x := by dsimp [a, left]; linarith [hx.1] + have hxb : x < b := by dsimp [b, right]; linarith [hx.2] + have haL : a ∈ Set.Ioo (horizontalBounds L o e).1 + (horizontalBounds L o e).2 := by + dsimp [a, left] + constructor <;> linarith [hx.1, hx.2] + have hbL : b ∈ Set.Ioo (horizontalBounds L o e).1 + (horizontalBounds L o e).2 := by + dsimp [b, right] + constructor <;> linarith [hx.1, hx.2] + have haK := eventually_mem_horizontalProjection_of_hausdorffDist K L hlim o e haL + have hbK := eventually_mem_horizontalProjection_of_hausdorffDist K L hlim o e hbL + have hconc : ∀ᶠ n in atTop, + ConcaveOn ℝ (Set.Ioo a b) (upperGraphHeight (K n) o e) := by + filter_upwards [haK, hbK] with n han hbn + apply (concaveOn_upperGraphHeight (K n) o e).subset _ (convex_Ioo a b) + intro y hy + rw [horizontalProjection_eq_Icc] at han hbn ⊢ + exact ⟨han.1.trans hy.1.le, hy.2.le.trans hbn.2⟩ + have hdiffEventually : ∀ᶠ n in atTop, + DifferentiableAt ℝ (upperGraphHeight (K n) o e) x := by + filter_upwards [haK, hbK] with n han hbn + apply hdiffK n + rw [horizontalProjection_eq_Icc] at han hbn + exact ⟨han.1.trans_lt hax, hxb.trans_le hbn.2⟩ + have hpointwise (y : ℝ) (hy : y ∈ Set.Ioo a b) : + Tendsto (fun n ↦ upperGraphHeight (K n) o e y) atTop + (𝓝 (upperGraphHeight L o e y)) := by + apply tendsto_upperGraphHeight_of_hausdorffDist K L hlim o e + exact ⟨haL.1.trans hy.1, hy.2.trans hbL.2⟩ + have hderiv : Tendsto (fun n ↦ deriv (upperGraphHeight (K n) o e) x) atTop + (𝓝 (deriv (upperGraphHeight L o e) x)) := + ConcaveOn.tendsto_deriv_of_tendsto_Ioo ⟨hax, hxb⟩ hconc hpointwise hdiffEventually + (hdiffL hx) + have hdensity := (continuous_surfaceDensity_of_slope e hψ).continuousAt.tendsto.comp hderiv + change Tendsto ((fun r : ℝ ↦ ψ (vectorNormalAngle (e.symm !₂[-r, 1])) * + Real.sqrt (1 + r ^ 2)) ∘ fun n ↦ deriv (upperGraphHeight (K n) o e) x) + atTop (𝓝 (upperGraphSurfaceIntegrand L o e ψ x)) + simpa only [upperGraphSurfaceIntegrand] using hdensity + +private theorem tendsto_vectorSupport_of_hausdorffDist + (K : ℕ → ConvexBody Point) (L : ConvexBody Point) + (hlim : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) + (L : Set Point)) atTop (𝓝 0)) {u : Point} (hu : ‖u‖ = 1) : + Tendsto (fun n ↦ vectorSupport (K n) u) atTop (𝓝 (vectorSupport L u)) := by + apply tendsto_iff_dist_tendsto_zero.mpr + apply squeeze_zero (fun _ ↦ dist_nonneg) _ hlim + intro n + simpa only [Real.dist_eq] using + (compactSet_support_continuity (K n) L (K n).nonempty + (K n).isCompact L.nonempty L.isCompact).2.1 u hu + +private theorem horizontalBounds_snd_eq_vectorSupport (K : ConvexBody Point) + (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) : + (horizontalBounds K o e).2 = + vectorSupport K (e.symm !₂[1, 0]) - inner ℝ o (e.symm !₂[1, 0]) := by + let u : Point := e.symm !₂[1, 0] + have hu (p : Point) : e (p - o) 0 = inner ℝ p u - inner ℝ o u := by + rw [← inner_sub_left, ← e.inner_map_map] + simp [u, PiLp.inner_apply, Fin.sum_univ_two] + obtain ⟨p, hp, hsup, hge⟩ := K.isCompact.exists_sSup_image_eq_and_ge K.nonempty + (show Continuous (fun p : Point ↦ inner ℝ p u) from + continuous_id.inner continuous_const).continuousOn + change sSup ((fun p : Point ↦ e (p - o) 0) '' (K : Set Point)) = _ + rw [show vectorSupport K u = inner ℝ p u by exact hsup] + apply le_antisymm + · apply csSup_le (K.nonempty.image _) + rintro _ ⟨q, hq, rfl⟩ + change e (q - o) 0 ≤ inner ℝ p u - inner ℝ o u + rw [hu q] + exact sub_le_sub_right (hge q hq) _ + · apply le_csSup + · have hc : Continuous (fun p : Point ↦ e (p - o)) := + e.continuous.comp (continuous_id.sub continuous_const) + exact K.isCompact.bddAbove_image + ((PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 0).comp hc).continuousOn + · exact ⟨p, hp, hu p⟩ + +private theorem horizontalBounds_fst_eq_vectorSupport (K : ConvexBody Point) + (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) : + (horizontalBounds K o e).1 = + -vectorSupport K (-(e.symm !₂[1, 0])) - inner ℝ o (e.symm !₂[1, 0]) := by + let u : Point := e.symm !₂[1, 0] + have hu (p : Point) : e (p - o) 0 = inner ℝ p u - inner ℝ o u := by + rw [← inner_sub_left, ← e.inner_map_map] + simp [u, PiLp.inner_apply, Fin.sum_univ_two] + obtain ⟨p, hp, hsup, hge⟩ := K.isCompact.exists_sSup_image_eq_and_ge K.nonempty + (show Continuous (fun p : Point ↦ inner ℝ p (-u)) from + continuous_id.inner continuous_const).continuousOn + change sInf ((fun p : Point ↦ e (p - o) 0) '' (K : Set Point)) = _ + rw [show vectorSupport K (-u) = inner ℝ p (-u) by exact hsup] + apply le_antisymm + · apply csInf_le + · have hc : Continuous (fun p : Point ↦ e (p - o)) := + e.continuous.comp (continuous_id.sub continuous_const) + exact K.isCompact.bddBelow_image + ((PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 0).comp hc).continuousOn + · refine ⟨p, hp, ?_⟩ + change e (p - o) 0 = -inner ℝ p (-u) - inner ℝ o u + rw [hu p] + simp + · apply le_csInf (K.nonempty.image _) + rintro _ ⟨q, hq, rfl⟩ + change -inner ℝ p (-u) - inner ℝ o u ≤ e (q - o) 0 + rw [hu q] + have h := hge q hq + simp only [inner_neg_right] at h ⊢ + linarith + +/-- Horizontal projection endpoints converge with their convex bodies. -/ +private theorem tendsto_horizontalBounds_of_hausdorffDist + (K : ℕ → ConvexBody Point) (L : ConvexBody Point) + (hlim : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) + (L : Set Point)) atTop (𝓝 0)) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) : + Tendsto (fun n ↦ horizontalBounds (K n) o e) atTop + (𝓝 (horizontalBounds L o e)) := by + let u : Point := e.symm !₂[1, 0] + have hu : ‖u‖ = 1 := by + rw [show ‖u‖ = ‖(!₂[1, 0] : Point)‖ by exact e.symm.norm_map _] + rw [EuclideanSpace.norm_eq] + norm_num [Fin.sum_univ_two] + rw [show (fun n ↦ horizontalBounds (K n) o e) = + fun n ↦ (-vectorSupport (K n) (-u) - inner ℝ o u, + vectorSupport (K n) u - inner ℝ o u) by + funext n + ext <;> simp [horizontalBounds_fst_eq_vectorSupport, + horizontalBounds_snd_eq_vectorSupport, u]] + rw [show horizontalBounds L o e = + (-vectorSupport L (-u) - inner ℝ o u, + vectorSupport L u - inner ℝ o u) by + ext <;> simp [horizontalBounds_fst_eq_vectorSupport, + horizontalBounds_snd_eq_vectorSupport, u]] + apply Tendsto.prodMk_nhds + · exact (tendsto_vectorSupport_of_hausdorffDist K L hlim (by simpa using hu)).neg.sub_const _ + · exact (tendsto_vectorSupport_of_hausdorffDist K L hlim hu).sub_const _ + +private theorem weightedSurfaceIntegral_eq_upperGraphIntegral + (K : ConvexBody Point) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) + (ψ : Real.Angle → ℝ) (hψ : Continuous ψ) {ε : ℝ} (hε : 0 < ε) + (hsupport : ∀ t, e (normalVector t) 1 < ε → ψ t = 0) : + (∫ t, ψ t ∂surfaceAreaMeasure K) = + ∫ x in Set.Icc (horizontalBounds K o e).1 (horizontalBounds K o e).2, + upperGraphSurfaceIntegrand K o e ψ x := by + have hformula := (surfaceAreaMeasure_construction K).2.2.2.2 o e ψ hψ ε hε hsupport + have hle : (horizontalBounds K o e).1 ≤ (horizontalBounds K o e).2 := by + obtain ⟨x, hx⟩ := K.nonempty.image (fun p : Point ↦ e (p - o) 0) + change x ∈ horizontalProjection K o e at hx + rw [horizontalProjection_eq_Icc] at hx + exact hx.1.trans hx.2 + rcases hle.lt_or_eq with hlt | heq + · exact (hformula.1 hlt).2 + · rw [hformula.2 heq, heq] + simp + +/-- Weighted upper-normal surface integrals are continuous under Hausdorff convergence. -/ +theorem tendsto_integral_surfaceAreaMeasure_of_hausdorffDist + (K : ℕ → ConvexBody Point) (L : ConvexBody Point) + (hlim : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) + (L : Set Point)) atTop (𝓝 0)) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) + {ψ : Real.Angle → ℝ} (hψ : Continuous ψ) {ε : ℝ} (hε : 0 < ε) + (hsupport : ∀ t, e (normalVector t) 1 < ε → ψ t = 0) : + Tendsto (fun n ↦ ∫ t, ψ t ∂surfaceAreaMeasure (K n)) atTop + (𝓝 (∫ t, ψ t ∂surfaceAreaMeasure L)) := by + obtain ⟨t, -, ht⟩ := isCompact_univ.exists_isMaxOn Set.univ_nonempty hψ.norm.continuousOn + let M := ‖ψ t‖ + have hM (u : Real.Angle) : ‖ψ u‖ ≤ M := ht trivial + have hM0 : 0 ≤ M := norm_nonneg _ + have hb := tendsto_horizontalBounds_of_hausdorffDist K L hlim o e + have ha : Tendsto (fun n ↦ (horizontalBounds (K n) o e).1) atTop + (𝓝 (horizontalBounds L o e).1) := continuousAt_fst.tendsto.comp hb + have hb' : Tendsto (fun n ↦ (horizontalBounds (K n) o e).2) atTop + (𝓝 (horizontalBounds L o e).2) := continuousAt_snd.tendsto.comp hb + have hgraph := tendsto_integral_Icc_of_tendsto_endpoints_of_bound ha hb' + (Eventually.of_forall fun n ↦ + (integrable_upperGraphSurfaceIntegrand (K n) o e ψ hψ hε hsupport _ _).1) + (mul_nonneg hM0 (inv_nonneg.mpr hε.le)) + (Eventually.of_forall fun n ↦ Eventually.of_forall fun x _ ↦ + norm_upperGraphSurfaceIntegrand_le (K n) o e ψ hε hsupport hM x) + (ae_tendsto_upperGraphSurfaceIntegrand_of_hausdorffDist K L hlim o e hψ) + rw [weightedSurfaceIntegral_eq_upperGraphIntegral L o e ψ hψ hε hsupport] + apply hgraph.congr' + filter_upwards [] with n + exact (weightedSurfaceIntegral_eq_upperGraphIntegral (K n) o e ψ hψ hε hsupport).symm + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Properties +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +private theorem mem_exposedEdge_iff_isExteriorNormal (K : ConvexBody Point) + {p : Point} (hp : p ∈ K) (t : Real.Angle) : + p ∈ exposedEdge K t ↔ IsExteriorNormal K p t := by + constructor + · intro h q hq + have he : inner ℝ p (normalVector t) = supportValue K t := h.2 + rw [inner_sub_left, he] + exact sub_nonpos.mpr (inner_le_supportValue K hq t) + · intro h + refine ⟨hp, le_antisymm (inner_le_supportValue K hp t) ?_⟩ + apply csSup_le (K.nonempty.image _) + rintro _ ⟨q, hq, rfl⟩ + exact sub_nonpos.mp (by simpa only [inner_sub_left] using h q hq) + +private theorem mem_exposedEdge_iff_exteriorNormalAngle_eq (K : ConvexBody Point) + {p : Point} (hp : p ∈ regularBoundary K) (t : Real.Angle) : + p ∈ exposedEdge K t ↔ exteriorNormalAngle K p = t := by + have hpK : p ∈ K := by + change p ∈ (K : Set Point) + simpa only [K.isCompact.isClosed.closure_eq] using frontier_subset_closure hp.1 + rw [mem_exposedEdge_iff_isExteriorNormal K hpK] + have hn : IsExteriorNormal K p (exteriorNormalAngle K p) := by + simp only [exteriorNormalAngle, dite_eq_left hp.2] + exact hp.2.exists.choose_spec + exact ⟨fun ht ↦ hp.2.unique hn ht, fun ht ↦ ht ▸ hn⟩ + +private theorem faceUnion_inter_regularBoundary (K : ConvexBody Point) (E : Set Real.Angle) : + (⋃ t ∈ E, exposedEdge K t) ∩ regularBoundary K = + exteriorNormalAngle K ⁻¹' E ∩ regularBoundary K := by + ext p + constructor + · rintro ⟨hp, hreg⟩ + obtain ⟨t, ht, hp⟩ := Set.mem_iUnion₂.mp hp + refine ⟨?_, hreg⟩ + change exteriorNormalAngle K p ∈ E + rwa [(mem_exposedEdge_iff_exteriorNormalAngle_eq K hreg t).mp hp] + · rintro ⟨hp, hreg⟩ + exact ⟨Set.mem_iUnion₂.mpr ⟨exteriorNormalAngle K p, hp, + (mem_exposedEdge_iff_exteriorNormalAngle_eq K hreg _).mpr rfl⟩, hreg⟩ + +private theorem surfaceAreaMeasure_face_union_of_interior_nonempty (K : ConvexBody Point) + (hK : (interior (K : Set Point)).Nonempty) + (E : Set Real.Angle) (hE : MeasurableSet E) : + surfaceAreaMeasure K E = Measure.hausdorffMeasure 1 (⋃ t ∈ E, exposedEdge K t) := by + simp only [surfaceAreaMeasure, + ite_eq_right (not_subsingleton_of_interior_nonempty K hK), + dite_eq_right (not_exists_segmentPresentation_of_interior_nonempty K hK)] + rw [Measure.map_apply_of_aemeasurable + (aemeasurable_exteriorNormalAngle_restrict_regularBoundary K _) hE, + Measure.restrict_apply' (measurableSet_regularBoundary K), + ← faceUnion_inter_regularBoundary] + apply measure_congr + rw [ae_eq_set] + constructor + · apply measure_mono_null (fun p hp ↦ (hp.2 hp.1.1).elim) measure_empty + · apply measure_mono_null ?_ (hausdorffMeasure_irregularBoundary_eq_zero K hK) + rintro p ⟨hp, hnot⟩ + refine ⟨?_, fun hreg ↦ hnot ⟨hp, hreg⟩⟩ + obtain ⟨t, ht, hpt⟩ := Set.mem_iUnion₂.mp hp + exact mem_frontier_of_mem_of_isExteriorNormal K hpt.1 + ((mem_exposedEdge_iff_isExteriorNormal K hpt.1 t).mp hpt) + +private theorem surfaceAreaMeasure_face_union_of_subsingleton (K : ConvexBody Point) + (hK : (K : Set Point).Subsingleton) (E : Set Real.Angle) : + surfaceAreaMeasure K E = Measure.hausdorffMeasure 1 (⋃ t ∈ E, exposedEdge K t) := by + rw [surfaceAreaMeasure_eq_zero_of_subsingleton K hK] + change 0 = _ + symm + let _ := Measure.nullSingletonClass_hausdorff Point (by norm_num : (0 : ℝ) < 1) + obtain ⟨p, hp⟩ := K.nonempty + apply measure_mono_null (t := {p}) + · intro q hq + obtain ⟨t, ht, hqt⟩ := Set.mem_iUnion₂.mp hq + exact hK hqt.1 hp + · simp + +theorem surfaceAreaMeasure_face_union (K : ConvexBody Point) : + IsFiniteMeasure (surfaceAreaMeasure K) ∧ + ((K : Set Point).Subsingleton → surfaceAreaMeasure K = 0) ∧ + (∀ d, IsSegmentPresentation K d → surfaceAreaMeasure K = + ENNReal.ofReal (dist d.1 d.2.1) • + (Measure.dirac d.2.2 + Measure.dirac (d.2.2 + ((Real.pi : ℝ) : Real.Angle)))) ∧ + ((interior (K : Set Point)).Nonempty → surfaceAreaMeasure K = + Measure.map (exteriorNormalAngle K) + ((Measure.hausdorffMeasure 1).restrict (regularBoundary K))) ∧ + (∀ E : Set Real.Angle, MeasurableSet E → + ((interior (K : Set Point)).Nonempty ∨ + ∃ a b : ℝ, a ≤ b ∧ b < a + Real.pi ∧ + E ⊆ (fun t : ℝ ↦ (t : Real.Angle)) '' Set.Icc a b) → + surfaceAreaMeasure K E = + Measure.hausdorffMeasure 1 (⋃ t ∈ E, exposedEdge K t)) := by + obtain ⟨hfinite, hpoint, hsegment, _, _⟩ := surfaceAreaMeasure_construction K + refine ⟨hfinite, hpoint, hsegment, ?_, ?_⟩ + · intro hK + simp only [surfaceAreaMeasure, + ite_eq_right (not_subsingleton_of_interior_nonempty K hK), + dite_eq_right (not_exists_segmentPresentation_of_interior_nonempty K hK)] + · intro E hE hdomain + by_cases hsub : (K : Set Point).Subsingleton + · exact surfaceAreaMeasure_face_union_of_subsingleton K hsub E + by_cases hint : (interior (K : Set Point)).Nonempty + · exact surfaceAreaMeasure_face_union_of_interior_nonempty K hint E hE + obtain ⟨a, b, hab, hwidth, hsubset⟩ := hdomain.resolve_left hint + have hseg := exists_segmentPresentation_of_interior_empty K hsub + (Set.not_nonempty_iff_eq_empty.mp hint) + obtain ⟨d, hd⟩ := hseg + exact surfaceAreaMeasure_face_union_of_segmentPresentation K d hd E hE hab hwidth hsubset + +instance isFiniteMeasure_surfaceAreaMeasure (K : ConvexBody Point) : + IsFiniteMeasure (surfaceAreaMeasure K) := (surfaceAreaMeasure_face_union K).1 + +/-- A measurable set of normal directions lying in an angular interval of width less than `π`, +on which every face of `K` degenerates to one and the same point, is null for the surface area +measure of `K`. -/ +theorem surfaceAreaMeasure_null_of_exposedEdge_subset_singleton (K : ConvexBody Point) + {E : Set Real.Angle} (hE : MeasurableSet E) {a b : ℝ} (hab : a ≤ b) (hba : b < a + Real.pi) + (hEab : E ⊆ (fun t : ℝ ↦ (t : Real.Angle)) '' Set.Icc a b) (p : Point) + (hsub : ∀ t ∈ E, exposedEdge K t ⊆ {p}) : + surfaceAreaMeasure K E = 0 := by + let _ := Measure.nullSingletonClass_hausdorff Point (by norm_num : (0 : ℝ) < 1) + rw [(surfaceAreaMeasure_face_union K).2.2.2.2 E hE (Or.inr ⟨a, b, hab, hba, hEab⟩)] + refine measure_mono_null (t := {p}) ?_ (by simp) + intro x hx + obtain ⟨t, ht, hxt⟩ := Set.mem_iUnion₂.mp hx + exact hsub t ht hxt + +/-- The surface measure of a convex body vanishes on the open angular window strictly between two +normal angles less than a half turn apart at which one and the same point attains the support. -/ +theorem surfaceAreaMeasure_angleImage_Ioo_eq_zero_of_mem_exposedEdge (K : ConvexBody Point) + {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) {p : Point} + (hpa : p ∈ exposedEdge K (a : Real.Angle)) + (hpb : p ∈ exposedEdge K (b : Real.Angle)) : + surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b) = 0 := by + refine surfaceAreaMeasure_null_of_exposedEdge_subset_singleton K + (Real.Angle.isOpen_image_Ioo a b).measurableSet hab.le hba + (Set.image_mono Set.Ioo_subset_Icc_self) p fun t ht ↦ ?_ + obtain ⟨s, hs, rfl⟩ := ht + exact (exposedEdge_eq_singleton_of_mem_exposedEdge_of_mem_Ioo hba hs hpa hpb).subset + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Boundary Extension +-/ + +@[expose] public section + +noncomputable section + +open Set MeasureTheory +open scoped Topology + +namespace MovingSofa + +/-- Agreement of positive-vertex increments with tangent-coordinate surface integrals extends +from half-open subintervals to every measurable set avoiding the initial endpoint. -/ +theorem intervalStieltjesMeasure_eq_surfaceIntegral_of_increment + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) + (f : Fin 2 → RightContinuousIntervalBV a b) + (hf : ∀ i t, (f i).toFun t = + (edgeVertices K (((t : Set.Icc a b) : ℝ) : Real.Angle)).1 i) + (hinc : ∀ (c d : Set.Icc a b), c < d → ∀ i : Fin 2, + (edgeVertices K (((d : Set.Icc a b) : ℝ) : Real.Angle)).1 i - + (edgeVertices K (((c : Set.Icc a b) : ℝ) : Real.Angle)).1 i = + ∫ u in (fun t : ℝ ↦ (t : Real.Angle)) '' Ioc (c : ℝ) d, + tangentVector u i ∂surfaceAreaMeasure K) : + ∀ (i : Fin 2) (E : Set (Set.Icc a b)), MeasurableSet E → + (∀ t ∈ E, a < (t : ℝ)) → + intervalStieltjesMeasure (f i) E = + ∫ u in (fun t : Set.Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, + tangentVector u i ∂surfaceAreaMeasure K := by + let A := Set.Ioc a b + let c : A → Real.Angle := fun t ↦ ((t : ℝ) : Real.Angle) + let j : A → Set.Icc a b := fun t ↦ ⟨t, t.property.1.le, t.property.2⟩ + have hc : MeasurableEmbedding c := by + refine ⟨?_, (Real.Angle.continuous_coe.comp continuous_subtype_val).measurable, ?_⟩ + · intro x y hxy + exact Subtype.ext (Real.Angle.injOn_coe_Ioc hturn x.property y.property hxy) + · intro s hs + let S : Set ℝ := Subtype.val '' s + have hS : MeasurableSet S := + (MeasurableEmbedding.subtype_coe measurableSet_Ioc).measurableSet_image' hs + have hSI : Set.InjOn (fun t : ℝ ↦ (t : Real.Angle)) S := by + intro x hx y hy hxy + obtain ⟨tx, htx, rfl⟩ := hx + obtain ⟨ty, hty, rfl⟩ := hy + exact Real.Angle.injOn_coe_Ioc hturn tx.property ty.property hxy + have hm := hS.image_of_continuousOn_injOn Real.Angle.continuous_coe.continuousOn hSI + convert hm using 1 + ext u + simp [S, c] + have hj : Measurable j := by fun_prop + intro i E hE hEa + let _ : IsFiniteMeasure (surfaceAreaMeasure K) := + (surfaceAreaMeasure_face_union K).1 + have hgi : Integrable (fun u : Real.Angle ↦ tangentVector u i) (surfaceAreaMeasure K) := by + rw [← integrableOn_univ] + exact ContinuousOn.integrableOn_compact isCompact_univ (by + fin_cases i + · exact Real.Angle.continuous_sin.neg.continuousOn + · exact Real.Angle.continuous_cos.continuousOn) + obtain ⟨ν, hν⟩ := + MeasurableEmbedding.exists_vectorMeasure_image_integral hc (surfaceAreaMeasure K) + (fun u ↦ tangentVector u i) hgi + have hmeasure : intervalStieltjesMeasure (f i) = ν.map j := by + apply MeasureTheory.VectorMeasure.ext_of_Ioc + · intro x y hxy + have hpre : j ⁻¹' Ioc x y = {t : A | (x : ℝ) < (t : ℝ) ∧ (t : ℝ) ≤ (y : ℝ)} := rfl + have hpremeas : MeasurableSet (j ⁻¹' Ioc x y) := + measurableSet_Ioc.preimage hj + have himage : c '' (j ⁻¹' Ioc x y) = + (fun t : ℝ ↦ (t : Real.Angle)) '' Ioc (x : ℝ) y := by + ext u + constructor + · rintro ⟨t, ht, rfl⟩ + exact ⟨t, ht, rfl⟩ + · rintro ⟨t, ht, rfl⟩ + exact ⟨⟨t, x.property.1.trans_lt ht.1, ht.2.trans y.property.2⟩, ht, rfl⟩ + rw [intervalStieltjesMeasure_Ioc (f i) x y hxy.le, + VectorMeasure.map_apply _ hj measurableSet_Ioc, hν _ hpremeas, himage, + hf i y, hf i x, hinc x y hxy i] + · let aa : Set.Icc a b := ⟨a, le_rfl, hab.le⟩ + let bb : Set.Icc a b := ⟨b, hab.le, le_rfl⟩ + have hpre : j ⁻¹' univ = univ := preimage_univ + have hunivmeas : MeasurableSet (univ : Set A) := MeasurableSet.univ + have himage : c '' (univ : Set A) = + (fun t : ℝ ↦ (t : Real.Angle)) '' Ioc a b := by + ext u + simp [c, A] + have hzero : intervalStieltjesMeasure (f i) {aa} = 0 := by + rw [intervalStieltjesMeasure, (f i).boundedVariation.vectorMeasure_singleton, + (f i).right_continuous aa |>.rightLim_eq] + have hbot : 𝓝[<] aa = ⊥ := by + have hIio : Iio aa = ∅ := by + ext t + simp only [mem_Iio, mem_empty_iff_false, iff_false] + exact not_lt_of_ge t.property.1 + rw [hIio] + exact nhdsWithin_empty aa + rw [leftLim_eq_of_eq_bot _ hbot, sub_self] + have hsplit : (univ : Set (Set.Icc a b)) = Ioc aa bb ∪ {aa} := by + ext t + simp only [mem_univ, true_iff, mem_union, mem_Ioc, mem_singleton_iff] + by_cases hta : aa = t + · exact Or.inr hta.symm + · exact Or.inl ⟨lt_of_le_of_ne t.property.1 hta, t.property.2⟩ + have hlhs : intervalStieltjesMeasure (f i) univ = + intervalStieltjesMeasure (f i) (Ioc aa bb) := by + rw [hsplit, VectorMeasure.of_union (disjoint_singleton_right.2 (by simp)) + measurableSet_Ioc (measurableSet_singleton aa), + hzero, add_zero] + rw [hlhs, intervalStieltjesMeasure_Ioc (f i) aa bb hab.le, + VectorMeasure.map_apply _ hj MeasurableSet.univ, hpre, hν _ hunivmeas, himage, + hf i bb, hf i aa, hinc aa bb hab i] + have himageE : c '' (j ⁻¹' E) = + (fun t : Set.Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E := by + ext u + constructor + · rintro ⟨t, ht, rfl⟩ + exact ⟨j t, ht, rfl⟩ + · rintro ⟨t, htE, rfl⟩ + exact ⟨⟨t, hEa t htE, t.property.2⟩, htE, rfl⟩ + rw [hmeasure, VectorMeasure.map_apply _ hj hE, hν _ (hE.preimage hj), himageE] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Opposite +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- The opposite-angle surface measure and support function. -/ +def oppositeSurfaceData (K : ConvexBody Point) : + Measure Real.Angle × (Real.Angle → ℝ) := + (Measure.map (fun t ↦ t - ((Real.pi : ℝ) : Real.Angle)) (surfaceAreaMeasure K), + fun t ↦ supportValue K (t + ((Real.pi : ℝ) : Real.Angle))) + +/-- The opposite surface measure is the half-turn translate of the surface measure. -/ +theorem oppositeSurfaceData_fst (K : ConvexBody Point) : + (oppositeSurfaceData K).1 = + Measure.map (fun t : Real.Angle ↦ t - ((Real.pi : ℝ) : Real.Angle)) + (surfaceAreaMeasure K) := rfl + +instance isFiniteMeasure_oppositeSurfaceData (K : ConvexBody Point) : + IsFiniteMeasure (oppositeSurfaceData K).1 := by + rw [oppositeSurfaceData_fst] + exact Measure.isFiniteMeasure_map _ _ + +/-- The opposite support function of a convex body is continuous in the normal direction. -/ +theorem continuous_oppositeSurfaceData_snd (K : ConvexBody Point) : + Continuous (oppositeSurfaceData K).2 := + (continuous_supportValue K).comp (continuous_id.add continuous_const) + +/-- Integrating a `π`-shifted integrand against the opposite surface measure over an open angular +window is integrating the integrand itself against the surface-area measure over the `π`-translated +window. The endpoints of the translated window are given as hypotheses so that call sites may +normalize them arithmetically. -/ +theorem setIntegral_oppositeSurfaceData_angleImage_Ioo (K : ConvexBody Point) {a b a' b' : ℝ} + (ha : a' = a + Real.pi) (hb : b' = b + Real.pi) {f : Real.Angle → ℝ} (hf : Measurable f) : + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + f (t + ((Real.pi : ℝ) : Real.Angle)) ∂(oppositeSurfaceData K).1) = + ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a' b', + f t ∂surfaceAreaMeasure K := by + subst ha hb + have hshift : Measurable fun t : Real.Angle ↦ t - ((Real.pi : ℝ) : Real.Angle) := + (continuous_id.sub continuous_const).measurable + have hfshift : Measurable fun t : Real.Angle ↦ f (t + ((Real.pi : ℝ) : Real.Angle)) := + hf.comp (continuous_id.add continuous_const).measurable + have hE : MeasurableSet ((fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b) := + (Real.Angle.isOpen_image_Ioo a b).measurableSet + rw [oppositeSurfaceData_fst, setIntegral_map hE hfshift.aestronglyMeasurable hshift.aemeasurable, + Real.Angle.preimage_sub_pi_image_Ioo] + simp only [sub_add_cancel] + +/-- The opposite surface measure vanishes on an open angular window whose half-turn translate +carries a single support point. -/ +theorem oppositeSurfaceData_angleImage_Ioo_eq_zero_of_mem_exposedEdge (K : ConvexBody Point) + {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) {p : Point} + (hpa : p ∈ exposedEdge K ((a + Real.pi : ℝ) : Real.Angle)) + (hpb : p ∈ exposedEdge K ((b + Real.pi : ℝ) : Real.Angle)) : + (oppositeSurfaceData K).1 ((fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b) = 0 := by + have hshift : Measurable fun t : Real.Angle ↦ t - ((Real.pi : ℝ) : Real.Angle) := + (continuous_id.sub continuous_const).measurable + rw [oppositeSurfaceData_fst, + Measure.map_apply hshift (Real.Angle.isOpen_image_Ioo a b).measurableSet, + Real.Angle.preimage_sub_pi_image_Ioo] + exact surfaceAreaMeasure_angleImage_Ioo_eq_zero_of_mem_exposedEdge K (by linarith) (by linarith) + hpa hpb + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Weak Convergence +-/ + +@[expose] public section + +noncomputable section + +open scoped BigOperators +open Filter MeasureTheory +open scoped Topology + +namespace MovingSofa + +private def normalCoordinateFrames : Fin 4 → Point ≃ₗᵢ[ℝ] Point := + ![LinearIsometryEquiv.refl ℝ Point, LinearIsometryEquiv.neg ℝ, + coordinateSwap, coordinateSwap.trans (LinearIsometryEquiv.neg ℝ)] + +private theorem exists_normalCoordinateFrame (t : Real.Angle) : + ∃ i, (1 / 2 : ℝ) < normalCoordinateFrames i (normalVector t) 1 := by + by_contra h + push Not at h + have h0 := h 0 + have h1 := h 1 + have h2 := h 2 + have h3 := h 3 + simp [normalCoordinateFrames, coordinateSwap, normalVector, frame] at h0 h1 h2 h3 + have hs : t.sin ^ 2 ≤ 1 / 4 := by nlinarith + have hc : t.cos ^ 2 ≤ 1 / 4 := by nlinarith + nlinarith [t.cos_sq_add_sin_sq] + +/-- Four coordinate half-circles admit a continuous partition of unity supported +where the upward component of the normal is at least one half. -/ +theorem exists_normalCoordinate_partition : + ∃ (e : Fin 4 → Point ≃ₗᵢ[ℝ] Point) (χ : Fin 4 → Real.Angle → ℝ), + (∀ i, Continuous (χ i)) ∧ (∀ t, ∑ i, χ i t = 1) ∧ + (∀ i t, e i (normalVector t) 1 < 1 / 2 → χ i t = 0) := by + let ρ : Fin 4 → Real.Angle → ℝ := fun i t ↦ + max 0 (normalCoordinateFrames i (normalVector t) 1 - 1 / 2) + have hρ : ∀ i, Continuous (ρ i) := by + intro i + dsimp [ρ] + exact continuous_const.max + (((PiLp.continuous_apply 2 (fun _ : Fin 2 ↦ ℝ) 1).comp + ((normalCoordinateFrames i).continuous.comp continuous_normalVector_angle)).sub + continuous_const) + have hpos (t : Real.Angle) : 0 < ∑ i, ρ i t := by + obtain ⟨i, hi⟩ := exists_normalCoordinateFrame t + apply Finset.sum_pos' (fun j _ ↦ le_max_left _ _) + refine ⟨i, Finset.mem_univ _, ?_⟩ + exact (sub_pos.mpr hi).trans_le (le_max_right _ _) + refine ⟨normalCoordinateFrames, fun i t ↦ ρ i t / ∑ j, ρ j t, ?_, ?_, ?_⟩ + · intro i + exact (hρ i).div (continuous_finsetSum _ fun j _ ↦ hρ j) + (fun t ↦ (hpos t).ne') + · intro t + rw [← Finset.sum_div] + exact div_self (hpos t).ne' + · intro i t ht + have hz : ρ i t = 0 := max_eq_left (sub_nonpos.mpr ht.le) + dsimp only + rw [hz, zero_div] + +/-- Convergence for test functions supported in upward normal patches implies +convergence for all continuous test functions. -/ +theorem tendsto_surfaceIntegral_of_normal_patches + (K : ℕ → ConvexBody Point) (L : ConvexBody Point) + (hpatch : ∀ (e : Point ≃ₗᵢ[ℝ] Point) (ψ : Real.Angle → ℝ), Continuous ψ → + (∀ t, e (normalVector t) 1 < 1 / 2 → ψ t = 0) → + Tendsto (fun n ↦ ∫ t, ψ t ∂surfaceAreaMeasure (K n)) atTop + (𝓝 (∫ t, ψ t ∂surfaceAreaMeasure L))) + (φ : Real.Angle → ℝ) (hφ : Continuous φ) : + Tendsto (fun n ↦ ∫ t, φ t ∂surfaceAreaMeasure (K n)) atTop + (𝓝 (∫ t, φ t ∂surfaceAreaMeasure L)) := by + obtain ⟨e, χ, hχ, hsum, hsupp⟩ := exists_normalCoordinate_partition + let ψ : Fin 4 → Real.Angle → ℝ := fun i t ↦ φ t * χ i t + have hψ (i : Fin 4) : Continuous (ψ i) := hφ.mul (hχ i) + have hψsum (t : Real.Angle) : ∑ i, ψ i t = φ t := by + simp only [ψ, ← Finset.mul_sum, hsum, mul_one] + have hint (C : ConvexBody Point) : + ∑ i, (∫ t, ψ i t ∂surfaceAreaMeasure C) = ∫ t, φ t ∂surfaceAreaMeasure C := by + let _ := (surfaceAreaMeasure_construction C).1 + rw [← integral_finsetSum] + · simp only [hψsum] + · intro i _ + exact integrableOn_univ.mp ((hψ i).continuousOn.integrableOn_compact isCompact_univ) + have ht (i : Fin 4) := hpatch (e i) (ψ i) (hψ i) (by + intro t ht + simp only [ψ, hsupp i t ht, mul_zero]) + have h := tendsto_finsetSum Finset.univ (fun i _ ↦ ht i) + simpa only [hint] using h + +theorem surfaceAreaMeasure_weak_continuity (K : ℕ → ConvexBody Point) + (L : ConvexBody Point) + (hlim : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) (L : Set Point)) + atTop (𝓝 0)) (φ : Real.Angle → ℝ) (hφ : Continuous φ) : + Tendsto (fun n ↦ ∫ u, φ u ∂surfaceAreaMeasure (K n)) + atTop (𝓝 (∫ u, φ u ∂surfaceAreaMeasure L)) := by + apply tendsto_surfaceIntegral_of_normal_patches K L _ φ hφ + intro e ψ hψ hsupp + exact tendsto_integral_surfaceAreaMeasure_of_hausdorffDist K L hlim 0 e hψ + (by norm_num : (0 : ℝ) < 1 / 2) hsupp + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Atom Limits +-/ + +@[expose] public section + +noncomputable section + +open Filter MeasureTheory Set +open scoped Topology + +namespace MovingSofa + +/-- An upper bound by a moving surface atom passes to a Hausdorff limit. -/ +theorem le_surfaceAreaMeasure_atom_of_tendsto {K : ℕ → ConvexBody Point} + {L : ConvexBody Point} + (hK : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) (L : Set Point)) + atTop (𝓝 0)) {u : Real.Angle} {x : ℕ → ℝ} {a : ℝ} + (hx : Tendsto x atTop (𝓝 a)) + (hle : ∀ n, x n ≤ (surfaceAreaMeasure (K n) {u}).toReal) : + a ≤ (surfaceAreaMeasure L {u}).toReal := by + let μs : ℕ → FiniteMeasure Real.Angle := fun n ↦ + ⟨surfaceAreaMeasure (K n), (surfaceAreaMeasure_face_union (K n)).1⟩ + let μ : FiniteMeasure Real.Angle := + ⟨surfaceAreaMeasure L, (surfaceAreaMeasure_face_union L).1⟩ + have hμ : Tendsto μs atTop (𝓝 μ) := by + apply FiniteMeasure.tendsto_iff_forall_integral_tendsto.mpr + intro f + exact surfaceAreaMeasure_weak_continuity K L hK f f.continuous + have hclosed : + Filter.limsup (fun n ↦ surfaceAreaMeasure (K n) {u}) atTop ≤ + surfaceAreaMeasure L {u} := by + have h := FiniteMeasure.limsup_measure_closed_le_of_tendsto hμ + (isClosed_singleton : IsClosed {u}) + change Filter.limsup (fun n ↦ surfaceAreaMeasure (K n) {u}) atTop ≤ + surfaceAreaMeasure L {u} at h + exact h + have hpoint : ∀ n, ENNReal.ofReal (x n) ≤ surfaceAreaMeasure (K n) {u} := by + intro n + exact ENNReal.ofReal_le_of_le_toReal (hle n) + have hlimsup : + Filter.limsup (fun n ↦ ENNReal.ofReal (x n)) atTop ≤ + Filter.limsup (fun n ↦ surfaceAreaMeasure (K n) {u}) atTop := + Filter.limsup_le_limsup (Eventually.of_forall hpoint) + have hmain : ENNReal.ofReal a ≤ surfaceAreaMeasure L {u} := by + calc + ENNReal.ofReal a = Filter.limsup (fun n ↦ ENNReal.ofReal (x n)) atTop := + (ENNReal.tendsto_ofReal hx).limsup_eq.symm + _ ≤ Filter.limsup (fun n ↦ surfaceAreaMeasure (K n) {u}) atTop := hlimsup + _ ≤ surfaceAreaMeasure L {u} := hclosed + let _ : IsFiniteMeasure (surfaceAreaMeasure L) := (surfaceAreaMeasure_face_union L).1 + exact (ENNReal.ofReal_le_iff_le_toReal (measure_ne_top _ _)).mp hmain + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Weighted Boundary +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped Topology + +namespace MovingSofa + +/-- On a half-open parameter interval of at most one turn, the angular projection is a +measurable embedding. -/ +theorem measurableEmbedding_angleCoe_Ioc {a b : ℝ} (hturn : b ≤ a + 2 * Real.pi) : + MeasurableEmbedding fun t : Ioc a b ↦ ((t : ℝ) : Real.Angle) := by + refine ⟨?_, (Real.Angle.continuous_coe.comp continuous_subtype_val).measurable, ?_⟩ + · intro x y hxy + exact Subtype.ext (Real.Angle.injOn_coe_Ioc hturn x.property y.property hxy) + · intro s hs + let S : Set ℝ := Subtype.val '' s + have hS : MeasurableSet S := + (MeasurableEmbedding.subtype_coe measurableSet_Ioc).measurableSet_image' hs + have hSI : Set.InjOn (fun t : ℝ ↦ (t : Real.Angle)) S := by + intro x hx y hy hxy + obtain ⟨tx, htx, rfl⟩ := hx + obtain ⟨ty, hty, rfl⟩ := hy + exact Real.Angle.injOn_coe_Ioc hturn tx.property ty.property hxy + have hm := hS.image_of_continuousOn_injOn Real.Angle.continuous_coe.continuousOn hSI + convert hm using 1 + ext u + simp [S] + +/-- A bounded measurable function on a half-open parameter interval of at most one full turn +extends to a bounded measurable function of the angle. -/ +theorem exists_bounded_measurable_angle_extension {a b : ℝ} (hturn : b ≤ a + 2 * Real.pi) + (ψ : Ioc a b → ℝ) (hψm : Measurable ψ) (C : ℝ) (hC : 0 ≤ C) (hψb : ∀ t, ‖ψ t‖ ≤ C) : + ∃ Q : Real.Angle → ℝ, Measurable Q ∧ (∀ u, ‖Q u‖ ≤ C) ∧ + ∀ t : Ioc a b, Q ((t : ℝ) : Real.Angle) = ψ t := by + have hc : MeasurableEmbedding fun t : Ioc a b ↦ ((t : ℝ) : Real.Angle) := + measurableEmbedding_angleCoe_Ioc hturn + refine ⟨Function.extend (fun t : Ioc a b ↦ ((t : ℝ) : Real.Angle)) ψ (fun _ ↦ 0), + hc.measurable_extend hψm measurable_const, fun u ↦ ?_, + fun t ↦ hc.injective.extend_apply ψ _ t⟩ + by_cases hu : ∃ t : Ioc a b, ((t : ℝ) : Real.Angle) = u + · obtain ⟨t, rfl⟩ := hu + rw [hc.injective.extend_apply] + exact hψb t + · rw [Function.extend_apply' _ _ _ hu] + simpa using hC + +/-- A bounded measurable angular weight may be transported through the positive-vertex +Stieltjes identity, coordinate by coordinate. -/ +theorem intervalStieltjesIntegral_positiveVertex_coordinate_of_measurable + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) + (f : Fin 2 → RightContinuousIntervalBV a b) + (hf : ∀ (i : Fin 2) (E : Set (Icc a b)), MeasurableSet E → + (∀ t ∈ E, a < (t : ℝ)) → + intervalStieltjesMeasure (f i) E = + ∫ u in (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, + tangentVector u i ∂surfaceAreaMeasure K) + (i : Fin 2) (Q : Real.Angle → ℝ) (C : ℝ) + (hQm : Measurable fun t : Ioc a b ↦ Q (((t : ℝ) : Real.Angle))) + (hQb : ∀ u, ‖Q u‖ ≤ C) + (E : Set (Icc a b)) (hE : MeasurableSet E) (hEa : ∀ t ∈ E, a < (t : ℝ)) : + intervalStieltjesIntegral (f i) + (fun t ↦ Q (((t : ℝ) : Real.Angle))) E = + ∫ u in (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, + Q u * tangentVector u i ∂surfaceAreaMeasure K := by + let A := Ioc a b + let c : A → Real.Angle := fun t ↦ ((t : ℝ) : Real.Angle) + let j : A → Icc a b := fun t ↦ ⟨t, t.property.1.le, t.property.2⟩ + have hc : MeasurableEmbedding c := measurableEmbedding_angleCoe_Ioc hturn + have hj : MeasurableEmbedding j := by + refine ⟨fun x y h ↦ Subtype.ext (congrArg (fun z : Icc a b ↦ (z : ℝ)) h), ?_, ?_⟩ + · fun_prop + · intro s hs + have hsval : MeasurableSet ((Subtype.val : A → ℝ) '' s) := + (MeasurableEmbedding.subtype_coe measurableSet_Ioc).measurableSet_image' hs + have hsj : j '' s = {t : Icc a b | (t : ℝ) ∈ (Subtype.val : A → ℝ) '' s} := by + ext t + constructor + · rintro ⟨x, hx, rfl⟩ + exact ⟨x, hx, rfl⟩ + · rintro ⟨x, hx, hxt⟩ + exact ⟨x, hx, Subtype.ext hxt⟩ + rw [hsj] + exact hsval.preimage measurable_subtype_coe + let μA := (surfaceAreaMeasure K).comap c + let _ : IsFiniteMeasure (surfaceAreaMeasure K) := (surfaceAreaMeasure_face_union K).1 + let _ : IsFiniteMeasure μA := + ⟨by + rw [hc.comap_apply] + exact measure_lt_top _ _⟩ + have htancont : Continuous (fun t : A ↦ tangentVector (c t) i) := + (continuous_tangentVector_coordinate i).comp + (Real.Angle.continuous_coe.comp continuous_subtype_val) + have htan : Integrable (fun t : A ↦ tangentVector (c t) i) μA := + Integrable.of_bound htancont.aestronglyMeasurable 1 + (ae_of_all _ fun t ↦ norm_tangentVector_coordinate_le_one (c t) i) + let ν : SignedMeasure A := μA.withDensityᵥ (fun t ↦ tangentVector (c t) i) + have hν (S : Set A) (hS : MeasurableSet S) : + ν S = ∫ u in c '' S, tangentVector u i ∂surfaceAreaMeasure K := by + rw [show ν S = ∫ t in S, tangentVector (c t) i ∂μA by + exact withDensityᵥ_apply htan hS] + have hm := hc.setIntegral_map (μ := μA) (fun u ↦ tangentVector u i) (c '' S) + rw [hc.map_comap, hc.injective.preimage_image, + Measure.restrict_restrict_of_subset (image_subset_range c S)] at hm + exact hm.symm + have hmeasure : intervalStieltjesMeasure (f i) = ν.map j := by + apply MeasureTheory.VectorMeasure.ext_of_Ioc + · intro x y hxy + have hpremeas : MeasurableSet (j ⁻¹' Ioc x y) := + measurableSet_Ioc.preimage hj.measurable + have himage : c '' (j ⁻¹' Ioc x y) = + (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' Ioc x y := by + ext u + constructor + · rintro ⟨t, ht, rfl⟩ + exact ⟨j t, ht, rfl⟩ + · rintro ⟨t, ht, rfl⟩ + exact ⟨⟨t, x.property.1.trans_lt ht.1, t.property.2⟩, ht, rfl⟩ + rw [VectorMeasure.map_apply _ hj.measurable measurableSet_Ioc, hν _ hpremeas, + himage, hf i (Ioc x y) measurableSet_Ioc] + intro t ht + exact x.property.1.trans_lt ht.1 + · let aa : Icc a b := ⟨a, le_rfl, hab.le⟩ + let bb : Icc a b := ⟨b, hab.le, le_rfl⟩ + have hzero : intervalStieltjesMeasure (f i) {aa} = 0 := by + rw [intervalStieltjesMeasure, (f i).boundedVariation.vectorMeasure_singleton, + (f i).right_continuous aa |>.rightLim_eq] + have hbot : 𝓝[<] aa = ⊥ := by + have hIio : Iio aa = ∅ := by + ext t + simp only [mem_Iio, mem_empty_iff_false, iff_false] + exact not_lt_of_ge t.property.1 + rw [hIio] + exact nhdsWithin_empty aa + rw [leftLim_eq_of_eq_bot _ hbot, sub_self] + have hsplit : (univ : Set (Icc a b)) = Ioc aa bb ∪ {aa} := by + ext t + simp only [mem_univ, true_iff, mem_union, mem_Ioc, mem_singleton_iff] + by_cases hta : aa = t + · exact Or.inr hta.symm + · exact Or.inl ⟨lt_of_le_of_ne t.property.1 hta, t.property.2⟩ + have hlhs : intervalStieltjesMeasure (f i) univ = + intervalStieltjesMeasure (f i) (Ioc aa bb) := by + rw [hsplit, VectorMeasure.of_union (disjoint_singleton_right.2 (by simp)) + measurableSet_Ioc (measurableSet_singleton aa), hzero, add_zero] + have himage : c '' (univ : Set A) = + (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' Ioc aa bb := by + ext u + constructor + · rintro ⟨t, -, rfl⟩ + exact ⟨j t, t.property, rfl⟩ + · rintro ⟨t, ht, rfl⟩ + exact ⟨⟨t, ht⟩, mem_univ _, rfl⟩ + rw [hlhs, VectorMeasure.map_apply _ hj.measurable MeasurableSet.univ, + preimage_univ, hν _ MeasurableSet.univ, himage, + hf i (Ioc aa bb) measurableSet_Ioc] + intro t ht + exact ht.1 + unfold intervalStieltjesIntegral + rw [hmeasure, hj.setIntegral_map_vectorMeasure hE] + change (∫ᵛ t in j ⁻¹' E, Q (c t) + ∂[ContinuousLinearMap.mul ℝ ℝ; μA.withDensityᵥ fun t ↦ tangentVector (c t) i]) = _ + rw [VectorMeasure.setIntegral_withDensity_mul_of_bounded (q := fun t : A ↦ Q (c t)) htan + hQm.aestronglyMeasurable C (fun t ↦ hQb (c t)) + (j ⁻¹' E) (hE.preimage hj.measurable)] + have hm := hc.setIntegral_map (μ := μA) + (fun u ↦ Q u * tangentVector u i) (c '' (j ⁻¹' E)) + rw [hc.map_comap, hc.injective.preimage_image, + Measure.restrict_restrict_of_subset (image_subset_range c (j ⁻¹' E))] at hm + have himageE : c '' (j ⁻¹' E) = + (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E := by + ext u + constructor + · rintro ⟨t, ht, rfl⟩ + exact ⟨j t, ht, rfl⟩ + · rintro ⟨t, htE, rfl⟩ + exact ⟨⟨t, hEa t htE, t.property.2⟩, htE, rfl⟩ + rw [← himageE] + exact hm.symm + +/-- A continuous angular weight may be transported through the positive-vertex Stieltjes +identity, coordinate by coordinate. -/ +theorem intervalStieltjesIntegral_positiveVertex_coordinate + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) + (f : Fin 2 → RightContinuousIntervalBV a b) + (hf : ∀ (i : Fin 2) (E : Set (Icc a b)), MeasurableSet E → + (∀ t ∈ E, a < (t : ℝ)) → + intervalStieltjesMeasure (f i) E = + ∫ u in (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, + tangentVector u i ∂surfaceAreaMeasure K) + (i : Fin 2) (Q : Real.Angle → ℝ) (hQ : Continuous Q) + (E : Set (Icc a b)) (hE : MeasurableSet E) (hEa : ∀ t ∈ E, a < (t : ℝ)) : + intervalStieltjesIntegral (f i) + (fun t ↦ Q (((t : ℝ) : Real.Angle))) E = + ∫ u in (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, + Q u * tangentVector u i ∂surfaceAreaMeasure K := + intervalStieltjesIntegral_positiveVertex_coordinate_of_measurable K hab hturn f hf i Q + ‖ContinuousMap.equivBoundedOfCompact Real.Angle ℝ ⟨Q, hQ⟩‖ + (hQ.comp (Real.Angle.continuous_coe.comp continuous_subtype_val)).measurable + (fun u ↦ BoundedContinuousFunction.norm_coe_le_norm + (ContinuousMap.equivBoundedOfCompact Real.Angle ℝ ⟨Q, hQ⟩) u) E hE hEa + +/-- A bounded measurable angular weight times a frame tangent coordinate is integrable against +the surface measure on every measurable set of angles represented in the half-open parameter +interval. -/ +theorem integrableOn_mul_tangentVector_of_bounded + (K : ConvexBody Point) {a b : ℝ} (hturn : b ≤ a + 2 * Real.pi) + (i : Fin 2) (Q : Real.Angle → ℝ) (C : ℝ) + (hQm : Measurable fun t : Ioc a b ↦ Q (((t : ℝ) : Real.Angle))) + (hQb : ∀ u, ‖Q u‖ ≤ C) + (S : Set Real.Angle) (hS : MeasurableSet S) + (hSsub : S ⊆ Set.range fun t : Ioc a b ↦ ((t : ℝ) : Real.Angle)) : + IntegrableOn (fun u ↦ Q u * tangentVector u i) S (surfaceAreaMeasure K) := by + let _ : IsFiniteMeasure (surfaceAreaMeasure K) := (surfaceAreaMeasure_face_union K).1 + have hC : 0 ≤ C := le_trans (norm_nonneg (Q 0)) (hQb 0) + obtain ⟨Q', hQ'meas, hQ'b, hQ'eq⟩ := exists_bounded_measurable_angle_extension hturn + (fun t : Ioc a b ↦ Q (((t : ℝ) : Real.Angle))) hQm C hC (fun t ↦ hQb _) + have hglobal : Integrable (fun u ↦ Q' u * tangentVector u i) (surfaceAreaMeasure K) := by + refine Integrable.of_bound + (hQ'meas.mul (continuous_tangentVector_coordinate i).measurable).aestronglyMeasurable C + (ae_of_all _ fun u ↦ ?_) + calc ‖Q' u * tangentVector u i‖ = ‖Q' u‖ * ‖tangentVector u i‖ := norm_mul _ _ + _ ≤ C * 1 := + mul_le_mul (hQ'b u) (norm_tangentVector_coordinate_le_one u i) (norm_nonneg _) hC + _ = C := mul_one C + refine hglobal.integrableOn.congr_fun (fun u hu ↦ ?_) hS + obtain ⟨t, rfl⟩ := hSsub hu + simp only [hQ'eq t] + +/-- Pairing the positive-vertex Stieltjes measures with a bounded measurable planar weight is the +surface integral of the pointwise contraction of that weight with the tangent frame. -/ +theorem sum_intervalStieltjesIntegral_positiveVertex_dot + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) + (f : Fin 2 → RightContinuousIntervalBV a b) + (hf : ∀ (i : Fin 2) (E : Set (Icc a b)), MeasurableSet E → + (∀ t ∈ E, a < (t : ℝ)) → + intervalStieltjesMeasure (f i) E = + ∫ u in (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, + tangentVector u i ∂surfaceAreaMeasure K) + (φ : Fin 2 → Icc a b → ℝ) (C : ℝ) (hC : 0 ≤ C) + (hφm : ∀ i, Measurable (φ i)) (hφb : ∀ i t, ‖φ i t‖ ≤ C) + (g : Real.Angle → ℝ) + (hg : ∀ t : Icc a b, a < (t : ℝ) → + ∑ i : Fin 2, φ i t * tangentVector (((t : ℝ) : Real.Angle)) i = + g (((t : ℝ) : Real.Angle))) + (E : Set (Icc a b)) (hE : MeasurableSet E) (hEa : ∀ t ∈ E, a < (t : ℝ)) : + (∑ i : Fin 2, intervalStieltjesIntegral (f i) (φ i) E) = + ∫ u in (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, g u ∂surfaceAreaMeasure K := by + set incl : Ioc a b → Icc a b := fun t ↦ ⟨(t : ℝ), t.property.1.le, t.property.2⟩ + have hinclm : Measurable incl := (Continuous.subtype_mk continuous_subtype_val _).measurable + have himg : (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E = + (fun t : Ioc a b ↦ ((t : ℝ) : Real.Angle)) '' (incl ⁻¹' E) := by + ext u + constructor + · rintro ⟨t, htE, rfl⟩ + exact ⟨⟨(t : ℝ), hEa t htE, t.property.2⟩, htE, rfl⟩ + · rintro ⟨t, htE, rfl⟩ + exact ⟨incl t, htE, rfl⟩ + have hEmeas : MeasurableSet ((fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E) := by + rw [himg] + exact (measurableEmbedding_angleCoe_Ioc hturn).measurableSet_image' (hE.preimage hinclm) + have hsub : (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E ⊆ + Set.range fun t : Ioc a b ↦ ((t : ℝ) : Real.Angle) := by + rintro u ⟨t, htE, rfl⟩ + exact ⟨⟨(t : ℝ), hEa t htE, t.property.2⟩, rfl⟩ + choose Q hQm hQb hQeq using fun i : Fin 2 ↦ exists_bounded_measurable_angle_extension hturn + (fun t : Ioc a b ↦ φ i (incl t)) ((hφm i).comp hinclm) C hC fun t ↦ hφb i (incl t) + have hQmIoc (i : Fin 2) : Measurable fun t : Ioc a b ↦ Q i (((t : ℝ) : Real.Angle)) := + (hQm i).comp (Real.Angle.continuous_coe.comp continuous_subtype_val).measurable + have hQφ (i : Fin 2) (t : Icc a b) (ht : a < (t : ℝ)) : + Q i (((t : ℝ) : Real.Angle)) = φ i t := hQeq i ⟨(t : ℝ), ht, t.property.2⟩ + have hterm (i : Fin 2) : intervalStieltjesIntegral (f i) (φ i) E = + ∫ u in (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, + Q i u * tangentVector u i ∂surfaceAreaMeasure K := by + rw [show intervalStieltjesIntegral (f i) (φ i) E = + intervalStieltjesIntegral (f i) (fun t ↦ Q i (((t : ℝ) : Real.Angle))) E from + VectorMeasure.setIntegral_congr_fun fun t htE ↦ (hQφ i t (hEa t htE)).symm] + exact intervalStieltjesIntegral_positiveVertex_coordinate_of_measurable K hab hturn f hf i + (Q i) C (hQmIoc i) (hQb i) E hE hEa + have hint (i : Fin 2) : IntegrableOn (fun u ↦ Q i u * tangentVector u i) + ((fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E) (surfaceAreaMeasure K) := + integrableOn_mul_tangentVector_of_bounded K hturn i (Q i) C (hQmIoc i) (hQb i) _ hEmeas hsub + rw [Fin.sum_univ_two, hterm 0, hterm 1, ← integral_add (hint 0) (hint 1)] + refine setIntegral_congr_fun hEmeas ?_ + rintro u ⟨t, htE, rfl⟩ + have ht := hEa t htE + simpa only [hQφ 0 t ht, hQφ 1 t ht, Fin.sum_univ_two] using hg t ht + +/-- Pairing the positive-vertex Stieltjes measure with the tangent frame gives surface mass. -/ +theorem sum_intervalStieltjesIntegral_positiveVertex_tangent + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) + (f : Fin 2 → RightContinuousIntervalBV a b) + (hf : ∀ (i : Fin 2) (E : Set (Icc a b)), MeasurableSet E → + (∀ t ∈ E, a < (t : ℝ)) → + intervalStieltjesMeasure (f i) E = + ∫ u in (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, + tangentVector u i ∂surfaceAreaMeasure K) + (E : Set (Icc a b)) (hE : MeasurableSet E) (hEa : ∀ t ∈ E, a < (t : ℝ)) : + (∑ i : Fin 2, intervalStieltjesIntegral (f i) + (fun t ↦ tangentVector (((t : ℝ) : Real.Angle)) i) E) = + (surfaceAreaMeasure K + ((fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E)).toReal := by + let _ : IsFiniteMeasure (surfaceAreaMeasure K) := (surfaceAreaMeasure_face_union K).1 + have hcoord (i : Fin 2) : + intervalStieltjesIntegral (f i) + (fun t ↦ tangentVector (((t : ℝ) : Real.Angle)) i) E = + ∫ u in (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, + tangentVector u i * tangentVector u i ∂surfaceAreaMeasure K := by + have hQi : Continuous (fun u : Real.Angle ↦ tangentVector u i) := by + fin_cases i + · exact Real.Angle.continuous_sin.neg + · exact Real.Angle.continuous_cos + exact intervalStieltjesIntegral_positiveVertex_coordinate K hab hturn f hf i + (fun u ↦ tangentVector u i) hQi E hE hEa + rw [Fin.sum_univ_two, hcoord 0, hcoord 1] + have h0 : Integrable (fun u : Real.Angle ↦ tangentVector u 0 * tangentVector u 0) + (surfaceAreaMeasure K) := by + apply Continuous.integrable_of_hasCompactSupport + · convert Real.Angle.continuous_sin.mul Real.Angle.continuous_sin using 1 + funext u + simp [tangentVector, frame] + · exact isCompact_univ.of_isClosed_subset isClosed_closure (subset_univ _) + have h1 : Integrable (fun u : Real.Angle ↦ tangentVector u 1 * tangentVector u 1) + (surfaceAreaMeasure K) := by + apply Continuous.integrable_of_hasCompactSupport + · convert Real.Angle.continuous_cos.mul Real.Angle.continuous_cos using 1 + funext u + simp [tangentVector, frame] + · exact isCompact_univ.of_isClosed_subset isClosed_closure (subset_univ _) + rw [← integral_add h0.integrableOn h1.integrableOn] + have hone : (fun u : Real.Angle ↦ + tangentVector u 0 * tangentVector u 0 + tangentVector u 1 * tangentVector u 1) = 1 := by + funext u + simpa [tangentVector, frame, pow_two, add_comm] using u.cos_sq_add_sin_sq + rw [hone] + let S := (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E + calc + integral ((surfaceAreaMeasure K).restrict S) 1 = + ((surfaceAreaMeasure K).restrict S).real univ := by + change (∫ _ : Real.Angle, (1 : ℝ) ∂(surfaceAreaMeasure K).restrict S) = _ + rw [integral_const (μ := (surfaceAreaMeasure K).restrict S) (1 : ℝ), + smul_eq_mul, mul_one] + _ = (surfaceAreaMeasure K).real S := + measureReal_restrict_apply_univ (μ := surfaceAreaMeasure K) S + _ = (surfaceAreaMeasure K S).toReal := measureReal_def _ _ + +/-- Pairing the positive-vertex Stieltjes measure with the normal frame vanishes. -/ +theorem sum_intervalStieltjesIntegral_positiveVertex_normal + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) + (f : Fin 2 → RightContinuousIntervalBV a b) + (hf : ∀ (i : Fin 2) (E : Set (Icc a b)), MeasurableSet E → + (∀ t ∈ E, a < (t : ℝ)) → + intervalStieltjesMeasure (f i) E = + ∫ u in (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, + tangentVector u i ∂surfaceAreaMeasure K) + (E : Set (Icc a b)) (hE : MeasurableSet E) (hEa : ∀ t ∈ E, a < (t : ℝ)) : + (∑ i : Fin 2, intervalStieltjesIntegral (f i) + (fun t ↦ normalVector (((t : ℝ) : Real.Angle)) i) E) = 0 := by + let _ : IsFiniteMeasure (surfaceAreaMeasure K) := (surfaceAreaMeasure_face_union K).1 + have hcoord (i : Fin 2) : + intervalStieltjesIntegral (f i) + (fun t ↦ normalVector (((t : ℝ) : Real.Angle)) i) E = + ∫ u in (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, + normalVector u i * tangentVector u i ∂surfaceAreaMeasure K := by + have hQi : Continuous (fun u : Real.Angle ↦ normalVector u i) := by + fin_cases i + · exact Real.Angle.continuous_cos + · exact Real.Angle.continuous_sin + exact intervalStieltjesIntegral_positiveVertex_coordinate K hab hturn f hf i + (fun u ↦ normalVector u i) hQi E hE hEa + rw [Fin.sum_univ_two, hcoord 0, hcoord 1] + have h0 : Integrable (fun u : Real.Angle ↦ normalVector u 0 * tangentVector u 0) + (surfaceAreaMeasure K) := by + apply Continuous.integrable_of_hasCompactSupport + · convert (Real.Angle.continuous_cos.mul Real.Angle.continuous_sin).neg using 1 + funext u + simp [normalVector, tangentVector, frame] + · exact isCompact_univ.of_isClosed_subset isClosed_closure (subset_univ _) + have h1 : Integrable (fun u : Real.Angle ↦ normalVector u 1 * tangentVector u 1) + (surfaceAreaMeasure K) := by + apply Continuous.integrable_of_hasCompactSupport + · convert Real.Angle.continuous_sin.mul Real.Angle.continuous_cos using 1 + funext u + simp [normalVector, tangentVector, frame] + · exact isCompact_univ.of_isClosed_subset isClosed_closure (subset_univ _) + rw [← integral_add h0.integrableOn h1.integrableOn] + apply integral_eq_zero_of_ae + filter_upwards with u + simp [normalVector, tangentVector, frame] + ring + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Cap.Contacts`. +* `Cap.ArmCoordinates`. +* `Cap.ContactIdentities`. +* `Cap.HalfPlanes`. +* `Cap.FanProjection`. +* `Cap.HallwayQuadrant`. +* `Cap.LowerNormalMeasure`. +* `Cap.ReflectionGeometry`. +* `Cap.SupportIntersections`. +* `Cap.TopCorner`. +* `Cap.Vertical`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Contacts +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Width in a normal direction, for geometric use on nonempty compact sets. -/ +def directionalWidth (s : Set Point) (t : Real.Angle) : ℝ := + supportValue s t + supportValue s (t + ((Real.pi : ℝ) : Real.Angle)) + +/-- The positive/negative contacts at the two outer supporting walls. -/ +def capVertices {ω : ℝ} (K : CapSpace ω) (t : ℝ) : (Point × Point) × (Point × Point) := + (edgeVertices K.1 (t : Real.Angle), + edgeVertices K.1 ((t + Real.pi / 2 : ℝ) : Real.Angle)) + +/-- The positive/negative right and left tangent arm lengths of a right-angle cap. -/ +def tangentArmLengths (K : RightAngleCapSpace) (t : ℝ) : (ℝ × ℝ) × (ℝ × ℝ) := + let y := (rotatingHallwayParts (K.1 : Set Point) (t : Real.Angle)).outerCorner + let v := capVertices K t + ((inner ℝ (y - v.1.1) (tangentVector (t : Real.Angle)), + inner ℝ (y - v.1.2) (tangentVector (t : Real.Angle))), + (inner ℝ (y - v.2.1) (normalVector (t : Real.Angle)), + inner ℝ (y - v.2.2) (normalVector (t : Real.Angle)))) + +/-- The open inner quadrant clipped by the fan. -/ +def capWedge {ω : ℝ} (K : CapSpace ω) (t : ℝ) : Set Point := + capFan ω ∩ (rotatingHallwayParts (K.1 : Set Point) (t : Real.Angle)).innerQuadrant + +/-- The two inner-wall intersections with the lower fan boundary lines. -/ +def wedgeEndpoints {ω : ℝ} (K : CapSpace ω) (t : ℝ) : Point × Point := + (((supportValue K.1 (t : Real.Angle) - 1) / Real.cos t) • normalVector 0, + ((supportValue K.1 ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos (ω - t)) • tangentVector (ω : Real.Angle)) + +/-- Signed right and left gaps between the wedge endpoints and bottom cap contacts. -/ +def wedgeGaps {ω : ℝ} (K : CapSpace ω) (t : ℝ) : ℝ × ℝ := + (inner ℝ ((capVertices K 0).1.2 - (wedgeEndpoints K t).1) (normalVector 0), + inner ℝ ((capVertices K ω).2.1 - (wedgeEndpoints K t).2) + (tangentVector (ω : Real.Angle))) + +/-- The selected short boundary arc, including only the specified endpoints. -/ +def convexBoundaryArc (K : ConvexBody Point) (a b : ℝ) : Set Point := + {(edgeVertices K (a : Real.Angle)).1} ∪ + (⋃ t ∈ Set.Ioo a b, exposedEdge K (t : Real.Angle)) ∪ + {(edgeVertices K (b : Real.Angle)).2} + +/-- The right wedge gap in support-function coordinates. -/ +theorem wedgeGaps_fst_eq_supportValue {ω : ℝ} (K : CapSpace ω) (t : ℝ) : + (wedgeGaps K t).1 = supportValue K.val (0 : Real.Angle) - + (supportValue K.val (t : Real.Angle) - 1) / Real.cos t := by + have hA := (edgeVertices_snd_mem K.val (0 : Real.Angle)).2 + change inner ℝ (capVertices K 0).1.2 (normalVector (0 : Real.Angle)) = + supportValue K.val (0 : Real.Angle) at hA + simp only [wedgeGaps, wedgeEndpoints, inner_sub_left, real_inner_smul_left, hA] + have hu0 : inner ℝ (normalVector (0 : Real.Angle)) + (normalVector (0 : Real.Angle)) = 1 := by + rw [← Real.Angle.coe_zero] + exact inner_normalVector_self 0 + rw [hu0] + ring + +/-- The left wedge gap in support-function coordinates. -/ +theorem wedgeGaps_snd_eq_supportValue {ω : ℝ} (K : CapSpace ω) + (t : ℝ) : + (wedgeGaps K t).2 = + supportValue K.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) - + (supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos (ω - t) := by + have hC := (edgeVertices_fst_mem K.val + ((ω + Real.pi / 2 : ℝ) : Real.Angle)).2 + change inner ℝ (capVertices K ω).2.1 + (normalVector ((ω + Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue K.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) at hC + simp only [normalVector, frame, Real.Angle.coe_add, Real.Angle.cos_add_pi_div_two, + Real.Angle.sin_coe, Real.Angle.sin_add_pi_div_two, Real.Angle.cos_coe] at hC + change inner ℝ (capVertices K ω).2.1 (tangentVector (ω : Real.Angle)) = + supportValue K.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) at hC + simp only [wedgeGaps, wedgeEndpoints, inner_sub_left, + real_inner_smul_left, hC] + rw [inner_tangentVector_self] + ring + +/-- The right wedge endpoint lies on the horizontal axis, at the horizontal intercept of the right +inner wall. -/ +theorem wedgeEndpoints_fst_coords {ω : ℝ} (K : CapSpace ω) (t : ℝ) : + (wedgeEndpoints K t).1 0 = (supportValue K.val (t : Real.Angle) - 1) / Real.cos t ∧ + (wedgeEndpoints K t).1 1 = 0 := by + constructor <;> simp [wedgeEndpoints, normalVector, frame] + +/-- For a right-angle cap the left wedge endpoint also lies on the horizontal axis, at the +horizontal intercept of the left inner wall. -/ +theorem wedgeEndpoints_snd_coords (K : RightAngleCapSpace) (t : ℝ) : + (wedgeEndpoints K t).2 0 = + -((supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) / Real.sin t) ∧ + (wedgeEndpoints K t).2 1 = 0 := by + constructor <;> simp [wedgeEndpoints, tangentVector, frame, Real.cos_pi_div_two_sub] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Arm Coordinates +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped Topology + +namespace MovingSofa + +/-- Express the two positive arm lengths through support and moving-frame coordinates. -/ +theorem tangentArmLengths_positive_frame (K : RightAngleCapSpace) (t : ℝ) : + (tangentArmLengths K t).1.1 = + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - + inner ℝ (edgeVertices K.val (t : Real.Angle)).1 + (tangentVector (t : Real.Angle)) ∧ + (tangentArmLengths K t).2.1 = + inner ℝ (edgeVertices K.val (t : Real.Angle)).1 + (normalVector (t : Real.Angle)) + + inner ℝ (edgeVertices K.val ((t + Real.pi / 2 : ℝ) : Real.Angle)).1 + (tangentVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) := by + have hnn := inner_normalVector_self t + have htt := inner_tangentVector_self t + have hnt := inner_normalVector_tangentVector t + have htn : inner ℝ (tangentVector (t : Real.Angle)) + (normalVector (t : Real.Angle)) = 0 := by + rw [real_inner_comm, hnt] + have hA := (edgeVertices_fst_mem K.val (t : Real.Angle)).2 + simp only [tangentArmLengths, capVertices, outerCorner_eq_support_sum, + inner_sub_left, inner_add_left, real_inner_smul_left, hnn, htt, hnt, htn] + rw [hA, tangentVector_add_pi_div_two] + simp [real_inner_comm] + ring + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Contact Identities +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +theorem capTangentArm_identities (K : RightAngleCapSpace) (t : ℝ) : + (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).outerCorner = + (capVertices K t).1.1 + (tangentArmLengths K t).1.1 • tangentVector (t : Real.Angle) ∧ + (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).outerCorner = + (capVertices K t).1.2 + (tangentArmLengths K t).1.2 • tangentVector (t : Real.Angle) ∧ + (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).outerCorner = + (capVertices K t).2.1 + (tangentArmLengths K t).2.1 • normalVector (t : Real.Angle) ∧ + (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).outerCorner = + (capVertices K t).2.2 + (tangentArmLengths K t).2.2 • normalVector (t : Real.Angle) := by + have hrot : rotationMap (t : Real.Angle) (!₂[1, 1] : Point) = + normalVector (t : Real.Angle) + tangentVector (t : Real.Angle) := by + unfold rotationMap + rw [Orientation.rotation_apply, rightAngleRotation_apply] + ext i + fin_cases i <;> simp [normalVector, tangentVector, frame] + ring + have hy : (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).outerCorner = + supportValue K.val (t : Real.Angle) • normalVector (t : Real.Angle) + + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) • tangentVector (t : Real.Angle) := by + simp only [rotatingHallwayParts, supportingPlacement, hallwayParts, hrot, Real.Angle.coe_add] + module + have hnn : inner ℝ (normalVector (t : Real.Angle)) (normalVector (t : Real.Angle)) = 1 := by + rw [PiLp.inner_apply] + simp [normalVector, frame, Fin.sum_univ_two, Real.cos_sq_add_sin_sq] + have htt : inner ℝ (tangentVector (t : Real.Angle)) (tangentVector (t : Real.Angle)) = 1 := by + rw [PiLp.inner_apply] + simp [tangentVector, frame, Fin.sum_univ_two, Real.sin_sq_add_cos_sq] + have hnt : inner ℝ (normalVector (t : Real.Angle)) (tangentVector (t : Real.Angle)) = 0 := by + simp [normalVector, tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + ring + have htn : inner ℝ (tangentVector (t : Real.Angle)) (normalVector (t : Real.Angle)) = 0 := by + rw [real_inner_comm, hnt] + have hA (a b c : ℝ) : + a • normalVector (t : Real.Angle) + b • tangentVector (t : Real.Angle) = + (a • normalVector (t : Real.Angle) + c • tangentVector (t : Real.Angle)) + + inner ℝ ((a • normalVector (t : Real.Angle) + b • tangentVector (t : Real.Angle)) - + (a • normalVector (t : Real.Angle) + c • tangentVector (t : Real.Angle))) + (tangentVector (t : Real.Angle)) • tangentVector (t : Real.Angle) := by + simp only [inner_sub_left, inner_add_left, real_inner_smul_left, hnt, htt] + module + have hC (a b c : ℝ) : + a • normalVector (t : Real.Angle) + b • tangentVector (t : Real.Angle) = + (b • tangentVector (t : Real.Angle) + c • -normalVector (t : Real.Angle)) + + inner ℝ ((a • normalVector (t : Real.Angle) + b • tangentVector (t : Real.Angle)) - + (b • tangentVector (t : Real.Angle) + c • -normalVector (t : Real.Angle))) + (normalVector (t : Real.Angle)) • normalVector (t : Real.Angle) := by + simp only [inner_sub_left, inner_add_left, real_inner_smul_left, inner_neg_left, hnn, htn] + module + have hv : tangentVector ((t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) = + -normalVector (t : Real.Angle) := by + ext i + fin_cases i <;> simp [normalVector, tangentVector, frame, + Real.Angle.sin_add_pi_div_two, Real.Angle.cos_add_pi_div_two] + simp only [tangentArmLengths, hy, capVertices, edgeVertices] + refine ⟨hA _ _ _, hA _ _ _, ?_, ?_⟩ <;> + simp only [Real.Angle.coe_add, normalVector_add_pi_div_two, hv] <;> + exact hC _ _ _ + +theorem surfaceAreaMeasure_atom_length (K : ConvexBody Point) (t : Real.Angle) : + surfaceAreaMeasure K {t} = Measure.hausdorffMeasure 1 (exposedEdge K t) ∧ + surfaceAreaMeasure K {t} = ENNReal.ofReal (dist (edgeVertices K t).1 (edgeVertices K t).2) ∧ + (edgeVertices K t).1 = (edgeVertices K t).2 + + (surfaceAreaMeasure K {t}).toReal • tangentVector t := by + induction t using Real.Angle.induction_on with + | _ t => + have hface : surfaceAreaMeasure K {(t : Real.Angle)} = + Measure.hausdorffMeasure 1 (exposedEdge K (t : Real.Angle)) := by + have h := (surfaceAreaMeasure_face_union K).2.2.2.2 + {(t : Real.Angle)} (measurableSet_singleton _) (Or.inr + ⟨t, t, le_rfl, by linarith [Real.pi_pos], by simp⟩) + simpa using h + have hlength : surfaceAreaMeasure K {(t : Real.Angle)} = + ENNReal.ofReal (dist (edgeVertices K (t : Real.Angle)).1 + (edgeVertices K (t : Real.Angle)).2) := by + rw [hface, exposedEdge_eq_segment_edgeVertices, hausdorffMeasure_segment, + edist_dist, dist_comm] + refine ⟨hface, hlength, ?_⟩ + let S := (fun p ↦ inner ℝ p (tangentVector (t : Real.Angle))) '' + exposedEdge K (t : Real.Angle) + have hcompact : IsCompact S := (isCompact_exposedEdge K _).image + (continuous_id.inner continuous_const) + have hnonneg : 0 ≤ sSup S - sInf S := sub_nonneg.mpr + (csInf_le_csSup ((exposedEdge_nonempty K _).image _) hcompact.bddBelow hcompact.bddAbove) + have hdiff : (edgeVertices K (t : Real.Angle)).1 - + (edgeVertices K (t : Real.Angle)).2 = + (sSup S - sInf S) • tangentVector (t : Real.Angle) := by + simp only [edgeVertices, S] + module + have hnorm : ‖tangentVector (t : Real.Angle)‖ = 1 := by + have h := inner_tangentVector_self t + rw [real_inner_self_eq_norm_sq] at h + nlinarith [norm_nonneg (tangentVector (t : Real.Angle))] + have hdist : dist (edgeVertices K (t : Real.Angle)).1 + (edgeVertices K (t : Real.Angle)).2 = sSup S - sInf S := by + rw [dist_eq_norm, hdiff, norm_smul, Real.norm_eq_abs, abs_of_nonneg hnonneg, + hnorm, mul_one] + rw [hlength, ENNReal.toReal_ofReal dist_nonneg, hdist] + exact (sub_eq_iff_eq_add.mp hdiff).trans (add_comm _ _) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Half Planes +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A finite set of allowed normals gives a finite supporting-half-plane representation. -/ +theorem HasHalfPlaneRepresentation.finite_constraints + {K : ConvexBody Point} {N : Set Real.Angle} (hN : N.Finite) + (hK : HasHalfPlaneRepresentation K N) : + ∃ constraints : Set (Real.Angle × ℝ), constraints.Finite ∧ + (∀ c ∈ constraints, c.1 ∈ N) ∧ + (K : Set Point) = ⋂ c ∈ constraints, normalHalfPlane c.1 c.2 false false := by + obtain ⟨C, hC, hKC⟩ := hK + refine ⟨(fun t ↦ (t, supportValue K t)) '' N, hN.image _, ?_, ?_⟩ + · rintro _ ⟨t, ht, rfl⟩ + exact ht + · ext x + simp only [Set.mem_iInter] + constructor + · intro hx c hc + obtain ⟨t, ht, rfl⟩ := hc + change inner ℝ x (normalVector t) ≤ supportValue K t + exact le_csSup ((K.isCompact.image + (continuous_inner.comp (continuous_id.prodMk continuous_const))).bddAbove) + ⟨x, hx, rfl⟩ + · intro hx + rw [hKC] + simp only [Set.mem_iInter] + intro c hc + have hxs := hx (c.1, supportValue K c.1) ⟨c.1, hC c hc, rfl⟩ + change inner ℝ x (normalVector c.1) ≤ supportValue K c.1 at hxs + change inner ℝ x (normalVector c.1) ≤ c.2 + apply hxs.trans + apply csSup_le (K.nonempty.image _) + rintro z ⟨p, hp, rfl⟩ + rw [hKC] at hp + exact Set.mem_iInter.mp (Set.mem_iInter.mp hp c) hc + +/-- Translation preserves a half-plane representation's allowed normals. -/ +theorem HasHalfPlaneRepresentation.translate {K : ConvexBody Point} + {N : Set Real.Angle} (hK : HasHalfPlaneRepresentation K N) (v : Point) : + HasHalfPlaneRepresentation (ConvexBody.translate K v) N := by + obtain ⟨C, hC, hKC⟩ := hK + refine ⟨(fun c ↦ (c.1, c.2 + inner ℝ v (normalVector c.1))) '' C, ?_, ?_⟩ + · rintro _ ⟨c, hc, rfl⟩ + exact hC c hc + · ext x + simp only [ConvexBody.translate, Set.mem_image, Set.mem_iInter] + constructor + · rintro ⟨y, hy, rfl⟩ c ⟨d, hd, rfl⟩ + change inner ℝ (y + v) (normalVector d.1) ≤ + d.2 + inner ℝ v (normalVector d.1) + rw [inner_add_left] + have hmem := Set.mem_iInter.mp (Set.mem_iInter.mp (hKC ▸ hy) d) hd + change inner ℝ y (normalVector d.1) ≤ d.2 at hmem + simpa [add_comm] using add_le_add_right hmem (inner ℝ v (normalVector d.1)) + · intro hx + refine ⟨x - v, ?_, by simp⟩ + rw [hKC] + simp only [Set.mem_iInter] + intro c hc + have h := hx (c.1, c.2 + inner ℝ v (normalVector c.1)) ⟨c, hc, rfl⟩ + change inner ℝ x (normalVector c.1) ≤ + c.2 + inner ℝ v (normalVector c.1) at h + change inner ℝ (x - v) (normalVector c.1) ≤ c.2 + rw [inner_sub_left] + linarith + +/-- A normalized cap is contained in its lower fan. -/ +theorem CapSpace.subset_capFan {ω : ℝ} (K : CapSpace ω) : + (K.val : Set Point) ⊆ capFan ω := by + intro p hp + constructor + · change 0 ≤ inner ℝ p (normalVector (ω : Real.Angle)) + have h := inner_le_supportValue K.val hp ((ω + Real.pi : ℝ) : Real.Angle) + rw [K.property.2.2.2.2.1, normalVector_add_pi, inner_neg_right] at h + linarith + · change 0 ≤ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + have h := inner_le_supportValue K.val hp ((3 * Real.pi / 2 : ℝ) : Real.Angle) + have hang : (((Real.pi / 2 + Real.pi : ℝ) : Real.Angle)) = + ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + congr 1 + ring + rw [K.property.2.2.2.2.2.1, ← hang] at h + rw [normalVector_add_pi, inner_neg_right] at h + linarith + +/-- Fan membership and strict upper support inequalities imply cap membership. -/ +theorem CapSpace.mem_of_mem_capFan_of_lt_supportValue {ω : ℝ} + (K : CapSpace ω) {p : Point} (hp : p ∈ capFan ω) + (hupper : ∀ t ∈ Set.Icc 0 (ω + Real.pi / 2), + inner ℝ p (normalVector (t : Real.Angle)) < supportValue K.val (t : Real.Angle)) : + p ∈ (K.val : Set Point) := by + obtain ⟨C, hCN, hKC⟩ := K.property.2.2.2.2.2.2 + rw [hKC] + simp only [Set.mem_iInter] + intro c hc + have hsupport : supportValue K.val c.1 ≤ c.2 := by + apply supportValue_le_of_subset_normalHalfPlane + intro q hq + rw [hKC] at hq + exact Set.mem_iInter.mp (Set.mem_iInter.mp hq c) hc + rcases hCN c hc with hcupper | hclower + · obtain ⟨t, ht, heq⟩ := hcupper + rw [← heq] at hsupport ⊢ + have htI : t ∈ Set.Icc 0 (ω + Real.pi / 2) := by + rcases ht with ht | ht + · exact ⟨ht.1, ht.2.trans (le_add_of_nonneg_right (by positivity))⟩ + · exact ⟨(by positivity : 0 ≤ Real.pi / 2).trans ht.1, ht.2⟩ + change inner ℝ p (normalVector (t : Real.Angle)) ≤ c.2 + exact (hupper t htI).le.trans hsupport + · rcases hclower with hclower | hclower + · rw [hclower] at hsupport ⊢ + change inner ℝ p (normalVector ((ω + Real.pi : ℝ) : Real.Angle)) ≤ c.2 + rw [normalVector_add_pi, inner_neg_right] + have hpω := hp.1 + change 0 ≤ inner ℝ p (normalVector (ω : Real.Angle)) at hpω + rw [K.property.2.2.2.2.1] at hsupport + linarith [hsupport] + · rw [hclower] at hsupport ⊢ + have hang : (((Real.pi / 2 + Real.pi : ℝ) : Real.Angle)) = + ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + congr 1 + ring + change inner ℝ p (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) ≤ c.2 + rw [← hang, normalVector_add_pi, inner_neg_right] + have hpT := hp.2 + change 0 ≤ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at hpT + rw [K.property.2.2.2.2.2.1] at hsupport + linarith [hsupport] + +/-- A normalized cap lies in the intersection of its two unit strips. -/ +theorem CapSpace.subset_stripParallelogram {ω : ℝ} (K : CapSpace ω) : + (K.val : Set Point) ⊆ (stripParallelogram ω).1 := by + intro p hp + have hlower := inner_le_supportValue K.val hp ((ω + Real.pi : ℝ) : Real.Angle) + have hbottom := inner_le_supportValue K.val hp ((3 * Real.pi / 2 : ℝ) : Real.Angle) + rw [K.property.2.2.2.2.1, normalVector_add_pi, inner_neg_right] at hlower + rw [K.property.2.2.2.2.2.1, inner_normalVector_three_pi_div_two] at hbottom + have hupper := inner_le_supportValue K.val hp ((Real.pi / 2 : ℝ) : Real.Angle) + have hright := inner_le_supportValue K.val hp (ω : Real.Angle) + rw [K.property.2.2.2.1] at hupper + rw [K.property.2.2.1] at hright + rw [mem_stripParallelogram_iff] + have hlo : 0 ≤ p 1 := by linarith + have hhi : p 1 ≤ 1 := by + simpa [normalVector, frame, PiLp.inner_apply] using hupper + exact ⟨⟨hlo, hhi⟩, by linarith, hright⟩ + +/-- A half-plane representation can be tightened at every allowed normal. -/ +theorem HasHalfPlaneRepresentation.eq_iInter_supportValue {K : ConvexBody Point} + {N : Set Real.Angle} (hK : HasHalfPlaneRepresentation K N) : + (K : Set Point) = ⋂ t ∈ N, normalHalfPlane t (supportValue K t) false false := by + obtain ⟨C, hCN, hKC⟩ := hK + ext p + simp only [Set.mem_iInter] + constructor + · intro hp t _ + exact inner_le_supportValue K hp t + · intro hp + rw [hKC] + simp only [Set.mem_iInter] + intro c hc + have ht := hp c.1 (hCN c hc) + change inner ℝ p (normalVector c.1) ≤ c.2 + apply ht.trans + apply csSup_le (K.nonempty.image _) + rintro _ ⟨q, hq, rfl⟩ + rw [hKC] at hq + exact Set.mem_iInter.mp (Set.mem_iInter.mp hq c) hc + +/-- A fan point satisfying all upper supporting inequalities belongs to the cap. -/ +theorem CapSpace.mem_of_mem_capFan_of_le_supportValue {ω : ℝ} + (K : CapSpace ω) {p : Point} (hp : p ∈ capFan ω) + (hupper : ∀ t ∈ capUpperAngles ω, + inner ℝ p (normalVector (t : Real.Angle)) ≤ supportValue K.val (t : Real.Angle)) : + p ∈ (K.val : Set Point) := by + rw [K.property.2.2.2.2.2.2.eq_iInter_supportValue] + simp only [Set.mem_iInter] + intro a ha + rcases ha with ⟨t, ht, rfl⟩ | ha + · exact hupper t ht + rcases ha with rfl | rfl + · change inner ℝ p (normalVector ((ω + Real.pi : ℝ) : Real.Angle)) ≤ + supportValue K.val ((ω + Real.pi : ℝ) : Real.Angle) + rw [K.property.2.2.2.2.1] + rw [normalVector_add_pi, inner_neg_right] + exact neg_nonpos.mpr hp.1 + · have hang : ((3 * Real.pi / 2 : ℝ) : Real.Angle) = + (((Real.pi / 2 + Real.pi : ℝ) : Real.Angle)) := by + congr 1 + ring + change inner ℝ p (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) ≤ + supportValue K.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) + rw [K.property.2.2.2.2.2.1] + rw [hang, normalVector_add_pi, inner_neg_right] + exact neg_nonpos.mpr hp.2 + +/-- Upper support bounds supplied by the two unit-height constraints of a cap. -/ +theorem CapSpace.supportValue_upper_bounds {ω t : ℝ} (K : CapSpace ω) + (ht : t ∈ Set.Ioo 0 ω) : + supportValue K.val (t : Real.Angle) ≤ + Real.cos t * supportValue K.val (0 : Real.Angle) + Real.sin t ∧ + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) ≤ + Real.sin (ω - t) + Real.cos (ω - t) * + supportValue K.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) := by + have hcost : 0 ≤ Real.cos t := (Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, ht.1], ht.2.trans_le K.property.2.1⟩).le + have hsint : 0 ≤ Real.sin t := (Real.sin_pos_of_pos_of_lt_pi ht.1 + (by linarith [ht.2, K.property.2.1, Real.pi_pos])).le + have hcosδ : 0 ≤ Real.cos (ω - t) := (Real.cos_pos_of_mem_Ioo + ⟨by linarith [sub_pos.mpr ht.2, Real.pi_pos], + by linarith [ht.1, K.property.2.1]⟩).le + have hsinδ : 0 ≤ Real.sin (ω - t) := (Real.sin_pos_of_pos_of_lt_pi + (sub_pos.mpr ht.2) (by linarith [ht.1, K.property.2.1, Real.pi_pos])).le + constructor + · apply csSup_le (K.val.nonempty.image _) + rintro _ ⟨p, hp, rfl⟩ + have hx := inner_le_supportValue K.val hp (0 : Real.Angle) + have hy := inner_le_supportValue K.val hp ((Real.pi / 2 : ℝ) : Real.Angle) + rw [K.property.2.2.2.1] at hy + simp [normalVector, frame, PiLp.inner_apply] at hx hy ⊢ + nlinarith + · apply csSup_le (K.val.nonempty.image _) + rintro _ ⟨p, hp, rfl⟩ + have hu := inner_le_supportValue K.val hp (ω : Real.Angle) + have hv := inner_le_supportValue K.val hp + ((ω + Real.pi / 2 : ℝ) : Real.Angle) + rw [K.property.2.2.1] at hu + have hvec : normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle) = + Real.sin (ω - t) • normalVector (ω : Real.Angle) + + Real.cos (ω - t) • tangentVector (ω : Real.Angle) := by + have h := normalVector_add_real ω (Real.pi / 2 - (ω - t)) + rw [Real.cos_pi_div_two_sub, Real.sin_pi_div_two_sub] at h + simpa only [show ω + (Real.pi / 2 - (ω - t)) = t + Real.pi / 2 by ring] using h + change inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) ≤ _ + rw [hvec, inner_add_right, inner_smul_right, inner_smul_right] + have hv' : inner ℝ p (tangentVector (ω : Real.Angle)) ≤ + supportValue K.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) := by + simpa [normalVector, tangentVector, frame, Real.Angle.cos_add_pi_div_two, + Real.Angle.sin_add_pi_div_two] using hv + nlinarith + +/-- Every point of a cap lies above the horizontal base line. -/ +theorem CapSpace.inner_normalVector_pi_div_two_nonneg {ω : ℝ} (K : CapSpace ω) {q : Point} + (hq : q ∈ (K.1 : Set Point)) : + 0 ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) := (K.subset_capFan hq).2 + +/-- Lowering a point of a right-angle cap onto the base line keeps it inside the cap: every +upper normal of such a cap has nonnegative vertical component, so no upper constraint is +tightened, and the two base constraints of the fan coincide here and hold with equality. -/ +theorem CapSpace.base_projection_mem (K : CapSpace (Real.pi / 2)) {q : Point} + (hq : q ∈ (K.val : Set Point)) : + q - q 1 • normalVector ((Real.pi / 2 : ℝ) : Real.Angle) ∈ (K.val : Set Point) := by + have hq1 : 0 ≤ q 1 := by + simpa only [inner_normalVector_pi_div_two] using K.inner_normalVector_pi_div_two_nonneg hq + have hinner (s : ℝ) : inner ℝ (q - q 1 • normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + (normalVector (s : Real.Angle)) = + inner ℝ q (normalVector (s : Real.Angle)) - q 1 * Real.sin s := by + rw [inner_sub_left, real_inner_smul_left, inner_normalVector_normalVector, + Real.cos_pi_div_two_sub] + have hbase : inner ℝ (q - q 1 • normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 := by + rw [hinner, inner_normalVector_pi_div_two, Real.sin_pi_div_two, mul_one, sub_self] + refine K.mem_of_mem_capFan_of_le_supportValue ⟨?_, ?_⟩ ?_ + · change 0 ≤ inner ℝ _ (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + rw [hbase] + · change 0 ≤ inner ℝ _ (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + rw [hbase] + · intro s hs + have hs' : 0 ≤ s ∧ s ≤ Real.pi := by + rcases hs with hs | hs + · exact ⟨hs.1, by linarith [hs.2, Real.pi_pos]⟩ + · exact ⟨by linarith [hs.1, Real.pi_pos], by linarith [hs.2]⟩ + have hsin : 0 ≤ Real.sin s := Real.sin_nonneg_of_nonneg_of_le_pi hs'.1 hs'.2 + rw [hinner] + linarith [mul_nonneg hq1 hsin, inner_le_supportValue K.val hq (s : Real.Angle)] + +/-- The top supporting line of a right-angle cap is the horizontal line of height one, so every +point attaining the support value at the vertical normal has height one. -/ +theorem CapSpace.apply_one_eq_one (K : CapSpace (Real.pi / 2)) {p : Point} + (hp : inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue (K.val : Set Point) ((Real.pi / 2 : ℝ) : Real.Angle)) : p 1 = 1 := by + rwa [inner_normalVector_pi_div_two, K.property.2.2.2.1] at hp + +/-- A singleton extreme face of a right-angle cap at a horizontal normal lies on the base line. +Lowering its unique point onto the base line keeps it in the cap, and a horizontal normal does not +see that vertical displacement, so the lowered point lies in the same face; the face being a +singleton, the displacement vanishes. -/ +theorem CapSpace.edgeVertices_fst_apply_one_eq_zero (K : CapSpace (Real.pi / 2)) {s : ℝ} + (hs : Real.sin s = 0) + (hface : (edgeVertices K.val (s : Real.Angle)).1 = (edgeVertices K.val (s : Real.Angle)).2) : + (edgeVertices K.val (s : Real.Angle)).1 1 = 0 := by + have hmem := edgeVertices_fst_mem K.val (s : Real.Angle) + have hkey : inner ℝ ((edgeVertices K.val (s : Real.Angle)).1 - + (edgeVertices K.val (s : Real.Angle)).1 1 • + normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) (normalVector (s : Real.Angle)) = + supportValue (K.val : Set Point) (s : Real.Angle) := by + rw [inner_sub_left, real_inner_smul_left, inner_normalVector_normalVector, + Real.cos_pi_div_two_sub, hs, mul_zero, sub_zero] + exact hmem.2 + have hlow : (edgeVertices K.val (s : Real.Angle)).1 - + (edgeVertices K.val (s : Real.Angle)).1 1 • + normalVector ((Real.pi / 2 : ℝ) : Real.Angle) ∈ + exposedEdge K.val (s : Real.Angle) := ⟨K.base_projection_mem hmem.1, hkey⟩ + rw [exposedEdge_eq_segment_edgeVertices, ← hface, segment_same, Set.mem_singleton_iff, + sub_eq_self] at hlow + have h := congrArg (fun p : Point ↦ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle))) + hlow + rwa [real_inner_smul_left, inner_normalVector_self, mul_one, inner_zero_left] at h + +/-- A convex body with vanishing base support value that is stable under vertical projection to +the base line is cut out by upper half-planes together with the base half-plane. -/ +theorem hasHalfPlaneRepresentation_of_base_projection (M : ConvexBody Point) + (hbase : supportValue M ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0) + (hproj : ∀ q ∈ (M : Set Point), + q - q 1 • normalVector ((Real.pi / 2 : ℝ) : Real.Angle) ∈ (M : Set Point)) : + HasHalfPlaneRepresentation M + (((fun t : ℝ ↦ (t : Real.Angle)) '' capUpperAngles (Real.pi / 2)) ∪ + capLowerNormals (Real.pi / 2)) := by + -- At a right angle the allowed upper normals are exactly the angles of `[0, π]`. + have hangle : ∀ s ∈ Set.Icc (0 : ℝ) Real.pi, + ((s : ℝ) : Real.Angle) ∈ + (((fun t : ℝ ↦ (t : Real.Angle)) '' capUpperAngles (Real.pi / 2)) ∪ + capLowerNormals (Real.pi / 2)) := by + intro s hs + refine Or.inl ⟨s, ?_, rfl⟩ + rcases le_or_gt s (Real.pi / 2) with h | h + · exact Or.inl ⟨hs.1, h⟩ + · exact Or.inr ⟨h.le, by linarith [hs.2]⟩ + -- The vertical projection keeps the horizontal coordinate and kills the vertical one. + have hflat : ∀ q : Point, + (q - q 1 • normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) 0 = q 0 ∧ + (q - q 1 • normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) 1 = 0 := by + intro q + constructor <;> simp [normalVector, frame] + -- The two attained horizontal extrema, lowered onto the base line. + obtain ⟨qR, hqR, hqRval⟩ := exists_mem_inner_eq_supportValue M ((0 : ℝ) : Real.Angle) + obtain ⟨qL, hqL, hqLval⟩ := exists_mem_inner_eq_supportValue M ((Real.pi : ℝ) : Real.Angle) + rw [inner_normalVector_zero] at hqRval + rw [inner_normalVector_real, Real.cos_pi, Real.sin_pi] at hqLval + refine ⟨(fun a : Real.Angle ↦ (a, supportValue M a)) '' + ((((fun t : ℝ ↦ (t : Real.Angle)) '' capUpperAngles (Real.pi / 2)) ∪ + capLowerNormals (Real.pi / 2))), ?_, ?_⟩ + · rintro _ ⟨a, ha, rfl⟩ + exact ha + · ext p + simp only [Set.mem_iInter] + refine ⟨fun hp c hc ↦ ?_, fun hp ↦ ?_⟩ + · obtain ⟨a, -, rfl⟩ := hc + exact inner_le_supportValue M hp a + · have hpupper : ∀ s ∈ Set.Icc (0 : ℝ) Real.pi, + inner ℝ p (normalVector ((s : ℝ) : Real.Angle)) ≤ + supportValue M ((s : ℝ) : Real.Angle) := + fun s hs ↦ hp _ ⟨_, hangle s hs, rfl⟩ + have hpbase := hp _ ⟨((3 * Real.pi / 2 : ℝ) : Real.Angle), + Or.inr (Set.mem_insert_iff.2 (Or.inr rfl)), rfl⟩ + change inner ℝ p (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) ≤ + supportValue M ((3 * Real.pi / 2 : ℝ) : Real.Angle) at hpbase + rw [inner_normalVector_three_pi_div_two, hbase] at hpbase + have hp1 : 0 ≤ p 1 := by linarith + have hpR : p 0 ≤ qR 0 := by + have h := hpupper 0 ⟨le_rfl, Real.pi_pos.le⟩ + rw [inner_normalVector_zero, ← hqRval] at h + exact h + have hpL : qL 0 ≤ p 0 := by + have h := hpupper Real.pi ⟨Real.pi_pos.le, le_rfl⟩ + rw [inner_normalVector_real, Real.cos_pi, Real.sin_pi, ← hqLval] at h + linarith + rw [M.eq_iInter_halfSpaces] + simp only [Set.mem_iInter] + intro u hu + obtain ⟨θ, rfl⟩ := exists_angle_normalVector_eq hu + change inner ℝ p (normalVector θ) ≤ supportValue M θ + rw [← Real.Angle.coe_toReal θ] + set s : ℝ := θ.toReal + rcases le_or_gt 0 s with hs0 | hs0 + · exact hpupper s ⟨hs0, Real.Angle.toReal_le_pi θ⟩ + · have hsin : Real.sin s < 0 := + Real.sin_neg_of_neg_of_neg_pi_lt hs0 (Real.Angle.neg_pi_lt_toReal θ) + rw [inner_normalVector_real] + rcases le_or_gt 0 (Real.cos s) with hc | hc + · have h := inner_le_supportValue M (hproj qR hqR) ((s : ℝ) : Real.Angle) + rw [inner_normalVector_real, (hflat qR).1, (hflat qR).2] at h + nlinarith [mul_le_mul_of_nonneg_right hpR hc, + mul_nonpos_of_nonneg_of_nonpos hp1 hsin.le] + · have h := inner_le_supportValue M (hproj qL hqL) ((s : ℝ) : Real.Angle) + rw [inner_normalVector_real, (hflat qL).1, (hflat qL).2] at h + nlinarith [mul_le_mul_of_nonpos_right hpL hc.le, + mul_nonpos_of_nonneg_of_nonpos hp1 hsin.le] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Fan Projection +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Support values in the upper angular range of a non-right cap are nonnegative. -/ +theorem supportValue_nonneg_of_mem_capUpperAngles {ω : ℝ} (K : CapSpace ω) + (hω : ω < Real.pi / 2) {φ : ℝ} (hφ : φ ∈ capUpperAngles ω) : + 0 ≤ supportValue K.val (φ : Real.Angle) := by + have hcosω : 0 < Real.cos ω := Real.cos_pos_of_mem_Ioo + ⟨by linarith [K.property.1, Real.pi_pos], hω⟩ + rcases hφ with hφ | hφ + · obtain ⟨p, hpK, hpnormal⟩ := exists_mem_inner_eq_supportValue K.val + ((3 * Real.pi / 2 : ℝ) : Real.Angle) + have hpFan := K.subset_capFan hpK + have hpy : p 1 = 0 := by + change inner ℝ p (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue K.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) at hpnormal + rw [K.property.2.2.2.2.2.1] at hpnormal + have hang : ((3 * Real.pi / 2 : ℝ) : Real.Angle) = + (((Real.pi / 2 + Real.pi : ℝ) : Real.Angle)) := by + congr 1 + ring + rw [hang, normalVector_add_pi, inner_neg_right] at hpnormal + simpa [normalVector, frame, PiLp.inner_apply] using hpnormal + have hpx : 0 ≤ p 0 := by + have hpω := hpFan.1 + change 0 ≤ inner ℝ p (normalVector (ω : Real.Angle)) at hpω + simp [normalVector, frame, PiLp.inner_apply, hpy] at hpω + by_contra hneg + have := mul_neg_of_pos_of_neg hcosω (lt_of_not_ge hneg) + linarith + have hcosφ : 0 ≤ Real.cos φ := Real.cos_nonneg_of_mem_Icc + ⟨(neg_nonpos.mpr (by positivity : 0 ≤ Real.pi / 2)).trans hφ.1, + hφ.2.trans hω.le⟩ + have hinner : 0 ≤ inner ℝ p (normalVector (φ : Real.Angle)) := by + simp only [normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, PiLp.inner_apply, + RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, Matrix.cons_val_zero, + Matrix.cons_val_one, Matrix.cons_val_fin_one, hpy, mul_zero, add_zero] + exact mul_nonneg hcosφ hpx + exact hinner.trans (inner_le_supportValue K.val hpK (φ : Real.Angle)) + · obtain ⟨p, hpK, hpnormal⟩ := exists_mem_inner_eq_supportValue K.val + ((ω + Real.pi : ℝ) : Real.Angle) + have hpFan := K.subset_capFan hpK + have hpu : inner ℝ p (normalVector (ω : Real.Angle)) = 0 := by + change inner ℝ p (normalVector ((ω + Real.pi : ℝ) : Real.Angle)) = + supportValue K.val ((ω + Real.pi : ℝ) : Real.Angle) at hpnormal + rw [K.property.2.2.2.2.1, normalVector_add_pi, inner_neg_right] at hpnormal + linarith + let μ := inner ℝ p (tangentVector (ω : Real.Angle)) + have hp : μ • tangentVector (ω : Real.Angle) = p := by + have hframe := inner_normalVector_smul_add_inner_tangentVector_smul + p (ω : Real.Angle) + rw [hpu, zero_smul, zero_add] at hframe + exact hframe + have hμ : 0 ≤ μ := by + have hpy := hpFan.2 + change 0 ≤ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at hpy + have hp1 := congrArg (fun q : Point ↦ q 1) hp + change μ * Real.cos ω = p 1 at hp1 + have hpy' : 0 ≤ p 1 := by + simpa [normalVector, frame, PiLp.inner_apply] using hpy + rw [← hp1] at hpy' + by_contra hneg + have := mul_neg_of_neg_of_pos (lt_of_not_ge hneg) hcosω + linarith + have hsin : 0 ≤ Real.sin (φ - ω) := Real.sin_nonneg_of_nonneg_of_le_pi + (by linarith [hφ.1]) (by linarith [hφ.2, Real.pi_pos]) + have hinner : 0 ≤ inner ℝ p (normalVector (φ : Real.Angle)) := by + have htv : inner ℝ (tangentVector (ω : Real.Angle)) + (normalVector (φ : Real.Angle)) = Real.sin (φ - ω) := by + simp [tangentVector, normalVector, frame, PiLp.inner_apply, Real.sin_sub] + ring + have heq : inner ℝ p (normalVector (φ : Real.Angle)) = μ * Real.sin (φ - ω) := by + rw [← hp, real_inner_smul_left, htv] + rw [heq] + exact mul_nonneg hμ hsin + exact hinner.trans (inner_le_supportValue K.val hpK (φ : Real.Angle)) + +/-- The origin belongs to every cap of angle strictly below a right angle. -/ +theorem zero_mem_cap_of_lt {ω : ℝ} (K : CapSpace ω) + (hω : ω < Real.pi / 2) : (0 : Point) ∈ (K.val : Set Point) := by + apply K.mem_of_mem_capFan_of_le_supportValue + · simp [capFan, normalHalfPlane] + · intro φ hφ + simpa using supportValue_nonneg_of_mem_capUpperAngles K hω hφ + +/-- The normal projection of the zero-angle support value belongs to the cap. -/ +theorem supportValue_zero_smul_normalVector_mem {ω : ℝ} (K : CapSpace ω) : + supportValue K.val (0 : Real.Angle) • normalVector (0 : Real.Angle) ∈ + (K.val : Set Point) := by + obtain ⟨p, hpK, hpnormal⟩ := + exists_mem_inner_eq_supportValue K.val (0 : Real.Angle) + have hpFan := K.subset_capFan hpK + have hpx : p 0 = supportValue K.val (0 : Real.Angle) := by + change inner ℝ p (normalVector (0 : Real.Angle)) = supportValue K.val (0 : Real.Angle) + at hpnormal + simpa [normalVector, frame, PiLp.inner_apply] using hpnormal + have hpy : 0 ≤ p 1 := by + have := hpFan.2 + change 0 ≤ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at this + simpa [normalVector, frame, PiLp.inner_apply] using this + apply K.mem_of_mem_capFan_of_le_supportValue + · constructor + · change 0 ≤ inner ℝ (supportValue K.val (0 : Real.Angle) • + normalVector (0 : Real.Angle)) (normalVector (ω : Real.Angle)) + by_cases hω : ω = Real.pi / 2 + · simp [normalVector, frame, PiLp.inner_apply, hω] + · have hωlt : ω < Real.pi / 2 := K.property.2.1.lt_of_ne hω + have hs : 0 ≤ supportValue K.val (0 : Real.Angle) := + supportValue_nonneg_of_mem_capUpperAngles K hωlt + (Or.inl ⟨le_rfl, K.property.1.le⟩) + simp only [real_inner_smul_left] + simp only [normalVector, frame, Real.Angle.cos_zero, Real.Angle.sin_zero, neg_zero, + Real.Angle.cos_coe, Real.Angle.sin_coe, PiLp.inner_apply, RCLike.inner_apply, + conj_trivial, Fin.sum_univ_two, Fin.isValue, Matrix.cons_val_zero, mul_one, + Matrix.cons_val_one, Matrix.cons_val_fin_one, mul_zero, add_zero, ge_iff_le] + exact mul_nonneg hs (Real.cos_nonneg_of_mem_Icc + ⟨by linarith [K.property.1, Real.pi_pos], K.property.2.1⟩) + · change 0 ≤ inner ℝ (supportValue K.val (0 : Real.Angle) • + normalVector (0 : Real.Angle)) + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + simp [normalVector, frame, PiLp.inner_apply] + · intro φ hφ + have hφI : φ ∈ Set.Icc 0 Real.pi := by + rcases hφ with hφ | hφ + · exact ⟨hφ.1, hφ.2.trans + (K.property.2.1.trans (by linarith [Real.pi_pos]))⟩ + · exact ⟨(by positivity : 0 ≤ Real.pi / 2).trans hφ.1, + hφ.2.trans (by linarith [K.property.2.1, Real.pi_pos])⟩ + have hsinφ : 0 ≤ Real.sin φ := Real.sin_nonneg_of_mem_Icc hφI + have hbound := inner_le_supportValue K.val hpK (φ : Real.Angle) + have hinner : inner ℝ + (supportValue K.val (0 : Real.Angle) • normalVector (0 : Real.Angle)) + (normalVector (φ : Real.Angle)) ≤ inner ℝ p (normalVector (φ : Real.Angle)) := by + simp only [normalVector, frame, Real.Angle.cos_zero, Real.Angle.sin_zero, neg_zero, + Real.Angle.cos_coe, Real.Angle.sin_coe, PiLp.inner_apply, PiLp.smul_apply, smul_eq_mul, + RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, Matrix.cons_val_zero, + mul_one, Matrix.cons_val_one, Matrix.cons_val_fin_one, mul_zero, add_zero, hpx, + le_add_iff_nonneg_right] + exact mul_nonneg hsinφ hpy + exact hinner.trans hbound + +/-- At a right angle, the opposite normal projection belongs to the cap. -/ +theorem supportValue_pi_smul_normalVector_mem_of_eq {ω : ℝ} (K : CapSpace ω) + (hω : ω = Real.pi / 2) : + supportValue K.val (Real.pi : Real.Angle) • normalVector (Real.pi : Real.Angle) ∈ + (K.val : Set Point) := by + obtain ⟨p, hpK, hpnormal⟩ := + exists_mem_inner_eq_supportValue K.val (Real.pi : Real.Angle) + have hpFan := K.subset_capFan hpK + have hpx : -p 0 = supportValue K.val (Real.pi : Real.Angle) := by + change inner ℝ p (normalVector (Real.pi : Real.Angle)) = + supportValue K.val (Real.pi : Real.Angle) at hpnormal + simpa [normalVector, frame, PiLp.inner_apply] using hpnormal + have hpy : 0 ≤ p 1 := by + have := hpFan.2 + change 0 ≤ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at this + simpa [normalVector, frame, PiLp.inner_apply] using this + apply K.mem_of_mem_capFan_of_le_supportValue + · constructor <;> + simp [normalHalfPlane, normalVector, frame, PiLp.inner_apply, hω] + · intro φ hφ + have hφI : φ ∈ Set.Icc 0 Real.pi := by + rcases hφ with hφ | hφ + · exact ⟨hφ.1, hφ.2.trans (by rw [hω]; linarith [Real.pi_pos])⟩ + · exact ⟨(by positivity : 0 ≤ Real.pi / 2).trans hφ.1, + hφ.2.trans (by rw [hω]; linarith)⟩ + have hsinφ : 0 ≤ Real.sin φ := Real.sin_nonneg_of_mem_Icc hφI + have hbound := inner_le_supportValue K.val hpK (φ : Real.Angle) + have hinner : inner ℝ + (supportValue K.val (Real.pi : Real.Angle) • normalVector (Real.pi : Real.Angle)) + (normalVector (φ : Real.Angle)) ≤ inner ℝ p (normalVector (φ : Real.Angle)) := by + rw [← hpx] + simp only [Fin.isValue, normalVector, frame, Real.Angle.cos_coe, Real.cos_pi, + Real.Angle.sin_coe, Real.sin_pi, neg_zero, neg_smul, inner_neg_left, PiLp.inner_apply, + PiLp.smul_apply, smul_eq_mul, RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, + Matrix.cons_val_zero, mul_neg, mul_one, Matrix.cons_val_one, Matrix.cons_val_fin_one, + mul_zero, add_zero, neg_neg, le_add_iff_nonneg_right] + exact mul_nonneg hsinφ hpy + exact hinner.trans hbound + +/-- For a non-right cap, the terminal tangent projection belongs to the cap. -/ +theorem supportValue_add_pi_div_two_smul_tangentVector_mem_of_lt {ω : ℝ} + (K : CapSpace ω) (hω : ω < Real.pi / 2) : + supportValue K.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) • + tangentVector (ω : Real.Angle) ∈ (K.val : Set Point) := by + have hcosω : 0 < Real.cos ω := Real.cos_pos_of_mem_Ioo + ⟨by linarith [K.property.1, Real.pi_pos], hω⟩ + let L := supportValue K.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) + obtain ⟨p, hpK, hpnormal⟩ := exists_mem_inner_eq_supportValue K.val + ((ω + Real.pi / 2 : ℝ) : Real.Angle) + have hpFan := K.subset_capFan hpK + have hpv : inner ℝ p (tangentVector (ω : Real.Angle)) = L := by + change inner ℝ p (normalVector ((ω + Real.pi / 2 : ℝ) : Real.Angle)) = L at hpnormal + rw [show ((ω + Real.pi / 2 : ℝ) : Real.Angle) = + (ω : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) by rfl, + normalVector_add_pi_div_two] at hpnormal + exact hpnormal + let a := inner ℝ p (normalVector (ω : Real.Angle)) + have ha : 0 ≤ a := hpFan.1 + have hp : a • normalVector (ω : Real.Angle) + L • tangentVector (ω : Real.Angle) = p := by + simpa only [a, hpv] using + inner_normalVector_smul_add_inner_tangentVector_smul p (ω : Real.Angle) + have hL : 0 ≤ L := supportValue_nonneg_of_mem_capUpperAngles K hω + (Or.inr ⟨by linarith [K.property.1, Real.pi_pos], le_rfl⟩) + apply K.mem_of_mem_capFan_of_le_supportValue + · constructor + · change 0 ≤ inner ℝ (L • tangentVector (ω : Real.Angle)) + (normalVector (ω : Real.Angle)) + rw [real_inner_smul_left, real_inner_comm, inner_normalVector_tangentVector] + simp + · change 0 ≤ inner ℝ (L • tangentVector (ω : Real.Angle)) + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + simp only [tangentVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, normalVector, + Real.cos_pi_div_two, Real.sin_pi_div_two, PiLp.inner_apply, PiLp.smul_apply, + smul_eq_mul, RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, + Matrix.cons_val_zero, mul_neg, zero_mul, neg_zero, Matrix.cons_val_one, + Matrix.cons_val_fin_one, one_mul, zero_add] + exact mul_nonneg hL hcosω.le + · intro φ hφ + have hdiff : φ - ω ∈ Set.Icc (-(Real.pi / 2)) (Real.pi / 2) := by + rcases hφ with hφ | hφ + · exact ⟨by linarith [hφ.1, K.property.2.1], + by linarith [hφ.2, Real.pi_pos]⟩ + · exact ⟨by linarith [hφ.1, K.property.2.1, Real.pi_pos], + by linarith [hφ.2]⟩ + have hcos : 0 ≤ Real.cos (φ - ω) := Real.cos_nonneg_of_mem_Icc hdiff + have hnu : inner ℝ (normalVector (ω : Real.Angle)) + (normalVector (φ : Real.Angle)) = Real.cos (φ - ω) := by + rw [inner_normalVector_normalVector] + rw [show ω - φ = -(φ - ω) by ring, Real.cos_neg] + have hbound := inner_le_supportValue K.val hpK (φ : Real.Angle) + have hinner : inner ℝ (L • tangentVector (ω : Real.Angle)) + (normalVector (φ : Real.Angle)) ≤ inner ℝ p (normalVector (φ : Real.Angle)) := by + rw [← hp, inner_add_left, real_inner_smul_left, real_inner_smul_left, hnu] + exact le_add_of_nonneg_left (mul_nonneg ha hcos) + exact hinner.trans hbound + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Hallway Quadrant +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The inward quadrant of the supporting hallway at angle `t` is the inward quadrant of `s` +written in support-value coordinates. -/ +theorem rotatingHallwayParts_innerQuadrant (s : Set Point) (t : ℝ) : + (rotatingHallwayParts s (t : Real.Angle)).innerQuadrant = innerQuadrant s t := by + rw [(rotatingHallwayParts_formulas s (t : Real.Angle)).2.2.2.2.2.2.2.2] + simp only [innerQuadrant, Real.Angle.coe_add] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The surface area measure of a right-angle cap at its lower normals + +A right-angle cap lies above its base line and is stable under vertical projection onto it, so +at a strictly downward normal direction the support value is attained only on the base line, at +whichever horizontal extremum the sign of the horizontal normal component selects. Both open +quarter arcs of lower normals therefore carry faces that degenerate to a single base corner, +and the surface area measure vanishes on them +(`MovingSofa.CapSpace.surfaceAreaMeasure_image_Ioo_lower_eq_zero`). Outside the closed upper +semicircle only the bottom normal `3π / 2` is left, so an integrand vanishing there integrates +to zero (`MovingSofa.CapSpace.setIntegral_compl_image_Icc_zero_pi_eq_zero`). +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- At a strictly downward normal direction the face of a right-angle cap degenerates to the +base point below a horizontal extremum: positive height strictly lowers the normal coordinate, +and on the base line the sign of `Real.cos t` selects a horizontal extremum. -/ +theorem CapSpace.exposedEdge_subset_singleton_of_isMaxOn (K : CapSpace (Real.pi / 2)) + {q : Point} (hq : q ∈ (K.val : Set Point)) {t : ℝ} (hcos : Real.cos t ≠ 0) + (hsin : Real.sin t < 0) + (hmax : IsMaxOn (fun p : Point ↦ p 0 * Real.cos t) (K.val : Set Point) q) : + exposedEdge K.val (t : Real.Angle) ⊆ + {q - q 1 • normalVector ((Real.pi / 2 : ℝ) : Real.Angle)} := by + have hflat0 : (q - q 1 • normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) 0 = q 0 := by + simp [normalVector, frame] + have hflat1 : (q - q 1 • normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) 1 = 0 := by + simp [normalVector, frame] + intro p hp + have hpK : p ∈ (K.val : Set Point) := hp.1 + have hp1 : 0 ≤ p 1 := by + simpa only [inner_normalVector_pi_div_two] using K.inner_normalVector_pi_div_two_nonneg hpK + have hpsup : inner ℝ p (normalVector (t : Real.Angle)) = + supportValue K.val (t : Real.Angle) := hp.2 + have hple : inner ℝ (q - q 1 • normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + (normalVector (t : Real.Angle)) ≤ inner ℝ p (normalVector (t : Real.Angle)) := by + rw [hpsup] + exact inner_le_supportValue K.val (K.base_projection_mem hq) _ + rw [inner_normalVector_real, inner_normalVector_real, hflat0, hflat1] at hple + have h1 : p 0 * Real.cos t ≤ q 0 * Real.cos t := isMaxOn_iff.mp hmax p hpK + have h2 : p 1 * Real.sin t ≤ 0 := mul_nonpos_of_nonneg_of_nonpos hp1 hsin.le + have he1 : p 0 * Real.cos t = q 0 * Real.cos t := by linarith + have he2 : p 1 = 0 := by + have h3 : p 1 * Real.sin t = 0 := by linarith + exact (mul_eq_zero.mp h3).resolve_right hsin.ne + have g0 : p 0 = (q - q 1 • normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) 0 := by + rw [hflat0]; exact mul_right_cancel₀ hcos he1 + have g1 : p 1 = (q - q 1 • normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) 1 := by + rw [hflat1]; exact he2 + have hpt : p = q - q 1 • normalVector ((Real.pi / 2 : ℝ) : Real.Angle) := by + ext i + fin_cases i + · exact g0 + · exact g1 + simpa only [Set.mem_singleton_iff] using hpt + +/-- The two base corners of a right-angle cap: on the open lower left quarter of normals every +face degenerates to the base point below a leftmost point of the cap, and on the open lower +right quarter to the base point below a rightmost one. -/ +theorem CapSpace.exists_exposedEdge_subset_singleton (K : CapSpace (Real.pi / 2)) : + ∃ pl pr : Point, + (∀ t : ℝ, Real.cos t < 0 → Real.sin t < 0 → + exposedEdge K.val (t : Real.Angle) ⊆ {pl}) ∧ + ∀ t : ℝ, 0 < Real.cos t → Real.sin t < 0 → + exposedEdge K.val (t : Real.Angle) ⊆ {pr} := by + have hcont : Continuous fun q : Point ↦ q 0 := PiLp.continuous_apply 2 _ 0 + obtain ⟨ql, hql, hqlmin⟩ := + K.val.isCompact.exists_isMinOn K.val.nonempty hcont.continuousOn + obtain ⟨qr, hqr, hqrmax⟩ := + K.val.isCompact.exists_isMaxOn K.val.nonempty hcont.continuousOn + refine ⟨ql - ql 1 • normalVector ((Real.pi / 2 : ℝ) : Real.Angle), + qr - qr 1 • normalVector ((Real.pi / 2 : ℝ) : Real.Angle), ?_, ?_⟩ + · exact fun t hcos hsin ↦ K.exposedEdge_subset_singleton_of_isMaxOn hql hcos.ne hsin + (isMaxOn_iff.mpr fun p hp ↦ + mul_le_mul_of_nonpos_right (isMinOn_iff.mp hqlmin p hp) hcos.le) + · exact fun t hcos hsin ↦ K.exposedEdge_subset_singleton_of_isMaxOn hqr hcos.ne' hsin + (isMaxOn_iff.mpr fun p hp ↦ + mul_le_mul_of_nonneg_right (isMaxOn_iff.mp hqrmax p hp) hcos.le) + +/-- The surface area measure of a right-angle cap vanishes on both open quarter arcs of lower +normals, because there every face degenerates to a single base corner. -/ +theorem CapSpace.surfaceAreaMeasure_image_Ioo_lower_eq_zero (K : CapSpace (Real.pi / 2)) : + surfaceAreaMeasure K.val + ((fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo Real.pi (3 * Real.pi / 2)) = 0 ∧ + surfaceAreaMeasure K.val + ((fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo (3 * Real.pi / 2) (2 * Real.pi)) = 0 := by + have hpi := Real.pi_pos + obtain ⟨pl, pr, hl, hr⟩ := K.exists_exposedEdge_subset_singleton + have hsin : ∀ s : ℝ, Real.pi < s → s < 2 * Real.pi → Real.sin s < 0 := by + intro s h1 h2 + have h := Real.sin_pos_of_pos_of_lt_pi (x := s - Real.pi) (by linarith) (by linarith) + rw [Real.sin_sub_pi] at h + linarith + have main : ∀ (a b : ℝ) (p : Point), a ≤ b → b < a + Real.pi → + (∀ s ∈ Set.Ioo a b, exposedEdge K.val (s : Real.Angle) ⊆ {p}) → + surfaceAreaMeasure K.val ((fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b) = 0 := by + intro a b p hab hba hsub + refine surfaceAreaMeasure_null_of_exposedEdge_subset_singleton K.val + (Real.Angle.isOpen_image_Ioo a b).measurableSet hab hba + (Set.image_mono Set.Ioo_subset_Icc_self) p ?_ + intro u hu + obtain ⟨s, hs, rfl⟩ := hu + exact hsub s hs + refine ⟨main Real.pi (3 * Real.pi / 2) pl (by linarith) (by linarith) fun s hs ↦ ?_, + main (3 * Real.pi / 2) (2 * Real.pi) pr (by linarith) (by linarith) fun s hs ↦ ?_⟩ + · exact hl s (Real.cos_neg_of_pi_div_two_lt_of_lt (by linarith [hs.1]) (by linarith [hs.2])) + (hsin s hs.1 (by linarith [hs.2])) + · refine hr s ?_ (hsin s (by linarith [hs.1]) hs.2) + have h := Real.cos_pos_of_mem_Ioo + (x := s - 2 * Real.pi) ⟨by linarith [hs.1], by linarith [hs.2]⟩ + rwa [Real.cos_sub_two_pi] at h + +/-- Outside the closed upper semicircle the surface area measure of a right-angle cap is carried +by the single downward normal `3π / 2`, so any integrand vanishing there integrates to zero. -/ +theorem CapSpace.setIntegral_compl_image_Icc_zero_pi_eq_zero (K : CapSpace (Real.pi / 2)) + (f : Real.Angle → ℝ) (hf : f ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0) : + ∫ t in ((fun s : ℝ ↦ (s : Real.Angle)) '' Set.Icc 0 Real.pi)ᶜ, + f t ∂surfaceAreaMeasure K.val = 0 := by + obtain ⟨hA, hB⟩ := K.surfaceAreaMeasure_image_Ioo_lower_eq_zero + have hS : MeasurableSet ((fun s : ℝ ↦ (s : Real.Angle)) '' Set.Icc 0 Real.pi) := + (isCompact_Icc.image Real.Angle.continuous_coe).isClosed.measurableSet + have haenot : ∀ᵐ t ∂surfaceAreaMeasure K.val, + t ∉ ((fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo Real.pi (3 * Real.pi / 2)) ∪ + ((fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo (3 * Real.pi / 2) (2 * Real.pi)) := by + simpa only [ae_iff, not_not, Set.ofPred_mem_eq] using measure_union_null hA hB + have hcongr : ∫ t in ((fun s : ℝ ↦ (s : Real.Angle)) '' Set.Icc 0 Real.pi)ᶜ, + f t ∂surfaceAreaMeasure K.val = + ∫ _t in ((fun s : ℝ ↦ (s : Real.Angle)) '' Set.Icc 0 Real.pi)ᶜ, + (0 : ℝ) ∂surfaceAreaMeasure K.val := by + refine setIntegral_congr_ae hS.compl ?_ + filter_upwards [haenot] with t ht hts + have hcoe : ((t.toReal + 2 * Real.pi : ℝ) : Real.Angle) = t := by + rw [Real.Angle.coe_add, Real.Angle.coe_two_pi, add_zero, Real.Angle.coe_toReal] + have hneg : t.toReal < 0 := by + by_contra hge + exact hts ⟨t.toReal, ⟨not_lt.mp hge, Real.Angle.toReal_le_pi t⟩, t.coe_toReal⟩ + have hlow : Real.pi < t.toReal + 2 * Real.pi := + by linarith [Real.Angle.neg_pi_lt_toReal t] + have hmid : t = ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + rcases lt_trichotomy (t.toReal + 2 * Real.pi) (3 * Real.pi / 2) with h | h | h + · exact absurd (Or.inl ⟨t.toReal + 2 * Real.pi, ⟨hlow, h⟩, hcoe⟩) ht + · rw [← hcoe, h] + · exact absurd (Or.inr ⟨t.toReal + 2 * Real.pi, ⟨h, by linarith⟩, hcoe⟩) ht + rw [hmid, hf] + rw [hcongr, integral_zero] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Reflection Geometry +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Image of a convex body under the cap reflection. -/ +def reflectedBody (ω : ℝ) (K : ConvexBody Point) : ConvexBody Point where + carrier := capReflection ω '' (K : Set Point) + convex' := K.convex.linear_image (capReflection ω).toLinearEquiv.toLinearMap + isCompact' := K.isCompact.image (capReflection ω).continuous + nonempty' := K.nonempty.image _ + +/-- Support values of a reflected body are indexed by reflected normal angles. -/ +theorem supportValue_reflectedBody (ω : ℝ) (K : ConvexBody Point) + (a : Real.Angle) : + supportValue (reflectedBody ω K) a = + supportValue K (reflectedAngle ω a) := by + unfold supportValue + congr 1 + ext x + constructor + · rintro ⟨p, ⟨q, hq, rfl⟩, rfl⟩ + exact ⟨q, hq, (inner_capReflection_normalVector ω q a).symm⟩ + · rintro ⟨q, hq, rfl⟩ + exact ⟨capReflection ω q, ⟨q, hq, rfl⟩, + inner_capReflection_normalVector ω q a⟩ + +/-- A reflected normal remains among the allowed cap normals. -/ +theorem reflectedAngle_mem_capNormals {ω : ℝ} (a : Real.Angle) + (ha : a ∈ ((fun t : ℝ ↦ (t : Real.Angle)) '' capUpperAngles ω) ∪ + capLowerNormals ω) : + reflectedAngle ω a ∈ + ((fun t : ℝ ↦ (t : Real.Angle)) '' capUpperAngles ω) ∪ + capLowerNormals ω := by + rcases ha with ha | ha + · obtain ⟨t, ht, rfl⟩ := ha + left + refine ⟨ω + Real.pi / 2 - t, ?_, (reflectedAngle_coe ω t).symm⟩ + rcases ht with ht | ht + · right + exact ⟨by linarith [ht.2], by linarith [ht.1]⟩ + · left + exact ⟨by linarith [ht.2], by linarith [ht.1]⟩ + · right + simp only [capLowerNormals, Set.mem_insert_iff, Set.mem_singleton_iff] at ha ⊢ + rcases ha with rfl | rfl + · right + rw [reflectedAngle_coe] + have hperiod : + (((-Real.pi / 2 : ℝ) : Real.Angle)) = + (((3 * Real.pi / 2 : ℝ) : Real.Angle)) := by + calc + (((-Real.pi / 2 : ℝ) : Real.Angle)) = + (((-Real.pi / 2 + 2 * Real.pi : ℝ) : Real.Angle)) := by + rw [Real.Angle.coe_add, Real.Angle.coe_two_pi, add_zero] + _ = (((3 * Real.pi / 2 : ℝ) : Real.Angle)) := by congr 1; ring + convert hperiod using 1 + all_goals ring_nf + · left + rw [reflectedAngle_coe] + have hperiod : + (((ω - Real.pi : ℝ) : Real.Angle)) = + (((ω + Real.pi : ℝ) : Real.Angle)) := by + calc + (((ω - Real.pi : ℝ) : Real.Angle)) = + (((ω - Real.pi + 2 * Real.pi : ℝ) : Real.Angle)) := by + rw [Real.Angle.coe_add, Real.Angle.coe_two_pi, add_zero] + _ = (((ω + Real.pi : ℝ) : Real.Angle)) := by congr 1; ring + convert hperiod using 1 + all_goals ring_nf + +/-- Reflect a half-plane presentation when its allowed normals are transported. -/ +theorem HasHalfPlaneRepresentation.reflectedBody {ω : ℝ} + {K : ConvexBody Point} {N N' : Set Real.Angle} + (hK : HasHalfPlaneRepresentation K N) + (hN : ∀ a ∈ N, reflectedAngle ω a ∈ N') : + HasHalfPlaneRepresentation (reflectedBody ω K) N' := by + obtain ⟨C, hCN, hKC⟩ := hK + let ρ : Real.Angle × ℝ → Real.Angle × ℝ := + fun c ↦ (reflectedAngle ω c.1, c.2) + refine ⟨ρ '' C, ?_, ?_⟩ + · rintro _ ⟨c, hc, rfl⟩ + exact hN c.1 (hCN c hc) + · ext p + constructor + · rintro ⟨q, hq, rfl⟩ + simp only [Set.mem_iInter] + intro c hc + obtain ⟨d, hd, rfl⟩ := hc + change inner ℝ (capReflection ω q) + (normalVector (reflectedAngle ω d.1)) ≤ d.2 + rw [inner_capReflection_normalVector, reflectedAngle_involutive] + rw [hKC] at hq + exact Set.mem_iInter.mp (Set.mem_iInter.mp hq d) hd + · intro hp + refine ⟨capReflection ω p, ?_, capReflection_involutive ω p⟩ + rw [hKC] + simp only [Set.mem_iInter] + intro c hc + have hpc := Set.mem_iInter.mp + (Set.mem_iInter.mp hp (ρ c)) ⟨c, hc, rfl⟩ + change inner ℝ p (normalVector (reflectedAngle ω c.1)) ≤ c.2 at hpc + change inner ℝ (capReflection ω p) (normalVector c.1) ≤ c.2 + rw [inner_capReflection_normalVector] + exact hpc + +/-- Reflection preserves the standard cap half-plane presentation. -/ +theorem reflectedBody_halfPlaneRepresentation {ω : ℝ} + (K : ConvexBody Point) + (hK : HasHalfPlaneRepresentation K + (((fun t : ℝ ↦ (t : Real.Angle)) '' capUpperAngles ω) ∪ + capLowerNormals ω)) : + HasHalfPlaneRepresentation (reflectedBody ω K) + (((fun t : ℝ ↦ (t : Real.Angle)) '' capUpperAngles ω) ∪ + capLowerNormals ω) := + hK.reflectedBody fun a ha ↦ reflectedAngle_mem_capNormals a ha + +/-- Reflection exchanges the normalized upper normal at `ω` with the vertical normal. -/ +theorem reflectedAngle_at_omega (ω : ℝ) : + reflectedAngle ω (ω : Real.Angle) = + ((Real.pi / 2 : ℝ) : Real.Angle) := by + rw [reflectedAngle_coe] + congr 1 + ring + +/-- Reflection exchanges the vertical normal with the normalized upper normal at `ω`. -/ +theorem reflectedAngle_at_pi_div_two (ω : ℝ) : + reflectedAngle ω ((Real.pi / 2 : ℝ) : Real.Angle) = + (ω : Real.Angle) := by + rw [reflectedAngle_coe] + congr 1 + ring + +/-- Reflection exchanges the two lower cap normals. -/ +theorem reflectedAngle_at_omega_add_pi (ω : ℝ) : + reflectedAngle ω ((ω + Real.pi : ℝ) : Real.Angle) = + ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + rw [reflectedAngle_coe] + have hperiod : + (((-Real.pi / 2 : ℝ) : Real.Angle)) = + (((3 * Real.pi / 2 : ℝ) : Real.Angle)) := by + calc + (((-Real.pi / 2 : ℝ) : Real.Angle)) = + (((-Real.pi / 2 + 2 * Real.pi : ℝ) : Real.Angle)) := by + rw [Real.Angle.coe_add, Real.Angle.coe_two_pi, add_zero] + _ = (((3 * Real.pi / 2 : ℝ) : Real.Angle)) := by congr 1; ring + convert hperiod using 1 + all_goals ring_nf + +/-- Reflection exchanges the two lower cap normals. -/ +theorem reflectedAngle_at_three_pi_div_two (ω : ℝ) : + reflectedAngle ω ((3 * Real.pi / 2 : ℝ) : Real.Angle) = + ((ω + Real.pi : ℝ) : Real.Angle) := by + rw [reflectedAngle_coe] + have hperiod : + (((ω - Real.pi : ℝ) : Real.Angle)) = + (((ω + Real.pi : ℝ) : Real.Angle)) := by + calc + (((ω - Real.pi : ℝ) : Real.Angle)) = + (((ω - Real.pi + 2 * Real.pi : ℝ) : Real.Angle)) := by + rw [Real.Angle.coe_add, Real.Angle.coe_two_pi, add_zero] + _ = (((ω + Real.pi : ℝ) : Real.Angle)) := by congr 1; ring + convert hperiod using 1 + all_goals ring_nf + +/-- Reflection preserves the normalized cap conditions. -/ +theorem reflectedBody_isCap {ω : ℝ} (K : CapSpace ω) : + IsCap ω (reflectedBody ω K.val) := by + rcases K.property with ⟨hω0, hωle, hω, hpi, hlowω, hlowpi, hrepr⟩ + refine ⟨hω0, hωle, ?_, ?_, ?_, ?_, + reflectedBody_halfPlaneRepresentation K.val hrepr⟩ + · rw [supportValue_reflectedBody, reflectedAngle_at_omega, hpi] + · rw [supportValue_reflectedBody, reflectedAngle_at_pi_div_two, hω] + · rw [supportValue_reflectedBody, reflectedAngle_at_omega_add_pi, hlowpi] + · rw [supportValue_reflectedBody, reflectedAngle_at_three_pi_div_two, hlowω] + +/-- The cap reflection preserves the lower fan. -/ +theorem capReflection_image_capFan (ω : ℝ) : + capReflection ω '' capFan ω = capFan ω := by + unfold capFan + rw [Set.image_inter (capReflection ω).injective, + capReflection_image_normalHalfPlane, + capReflection_image_normalHalfPlane, + reflectedAngle_at_omega, reflectedAngle_at_pi_div_two, + Set.inter_comm] + +/-- Reflection sends the complementary normal to its paired normal. -/ +theorem reflectedAngle_sub (ω t : ℝ) : + reflectedAngle ω ((ω - t : ℝ) : Real.Angle) = + ((t + Real.pi / 2 : ℝ) : Real.Angle) := by + rw [reflectedAngle_coe] + congr 1 + ring + +/-- Reflection sends the complementary paired normal back to the original normal. -/ +theorem reflectedAngle_sub_add_pi_div_two (ω t : ℝ) : + reflectedAngle ω ((ω - t + Real.pi / 2 : ℝ) : Real.Angle) = + (t : Real.Angle) := by + rw [reflectedAngle_coe] + congr 1 + ring + +/-- Reflection sends a paired normal to the complementary normal. -/ +theorem reflectedAngle_add_pi_div_two (ω t : ℝ) : + reflectedAngle ω ((t + Real.pi / 2 : ℝ) : Real.Angle) = + ((ω - t : ℝ) : Real.Angle) := by + rw [reflectedAngle_coe] + congr 1 + ring + +/-- Reflection transports inward quadrants at complementary angles. -/ +theorem innerQuadrant_reflection (ω t : ℝ) (K : ConvexBody Point) : + innerQuadrant (reflectedBody ω K) t = + capReflection ω '' innerQuadrant K (ω - t) := by + unfold innerQuadrant + rw [Set.image_inter (capReflection ω).injective, + capReflection_image_normalHalfPlane, + capReflection_image_normalHalfPlane, + supportValue_reflectedBody, supportValue_reflectedBody, + reflectedAngle_sub, reflectedAngle_sub_add_pi_div_two, + reflectedAngle_add_pi_div_two, reflectedAngle_coe, Set.inter_comm] + congr 2 + congr 1 + ring_nf + +/-- The preimage and image of a set agree under the involutive cap reflection. -/ +theorem capReflection_preimage_eq_image (ω : ℝ) (S : Set Point) : + capReflection ω ⁻¹' S = capReflection ω '' S := by + ext p + constructor + · intro hp + exact ⟨capReflection ω p, hp, capReflection_involutive ω p⟩ + · rintro ⟨q, hq, rfl⟩ + simpa only [Set.mem_preimage, capReflection_involutive] using hq + +/-- The cap reflection preserves the real Lebesgue area of measurable sets. -/ +theorem area_image_capReflection (ω : ℝ) (S : Set Point) + (hS : MeasurableSet S) : + ClassicalResults.area (capReflection ω '' S) = ClassicalResults.area S := by + change (MeasureTheory.volume (capReflection ω '' S)).toReal = + (MeasureTheory.volume S).toReal + rw [← capReflection_preimage_eq_image] + congr 1 + exact (LinearIsometryEquiv.measurePreserving (capReflection ω)).measure_preimage + hS.nullMeasurableSet + +/-- The vertical reflection of a body has mirrored support values. -/ +theorem supportValue_reflectedBody_pi_div_two (K : ConvexBody Point) (u : ℝ) : + supportValue (reflectedBody (Real.pi / 2) K : Set Point) (u : Real.Angle) = + supportValue (K : Set Point) ((Real.pi - u : ℝ) : Real.Angle) := by + have hang : ((Real.pi / 2 + Real.pi / 2 - u : ℝ) : Real.Angle) = + ((Real.pi - u : ℝ) : Real.Angle) := by congr 1; ring + rw [supportValue_reflectedBody, reflectedAngle_coe, hang] + +/-- The vertical reflection mirrors normal projections. -/ +theorem inner_capReflection_pi_div_two (p : Point) (u : ℝ) : + inner ℝ (capReflection (Real.pi / 2) p) (normalVector (u : Real.Angle)) = + inner ℝ p (normalVector ((Real.pi - u : ℝ) : Real.Angle)) := by + have hang : ((Real.pi / 2 + Real.pi / 2 - u : ℝ) : Real.Angle) = + ((Real.pi - u : ℝ) : Real.Angle) := by congr 1; ring + rw [inner_capReflection_normalVector, reflectedAngle_coe, hang] +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Support Intersections +-/ + +@[expose] public section + +noncomputable section + +open Set MeasureTheory + +namespace MovingSofa + +private theorem supportingIntersection_le_supportValue_of_mem_Icc_left + (K : ConvexBody Point) {a b r : ℝ} (hab : 0 < b - a) (hpi : b - a < Real.pi) + (hr : r ∈ Set.Icc (a - Real.pi) a) : + inner ℝ (supportingIntersection K (a : Real.Angle) (b : Real.Angle)) + (normalVector (r : Real.Angle)) ≤ supportValue K (r : Real.Angle) := by + let p := supportingIntersection K (a : Real.Angle) (b : Real.Angle) + let q := (edgeVertices K (a : Real.Angle)).1 + have hsin : 0 < Real.sin (b - a) := + Real.sin_pos_of_pos_of_lt_pi hab hpi + have hpa : inner ℝ p (normalVector (a : Real.Angle)) = + supportValue K (a : Real.Angle) := supportingIntersection_inner_left K a b + have hpb : inner ℝ p (normalVector (b : Real.Angle)) = + supportValue K (b : Real.Angle) := + supportingIntersection_inner_right K a b hsin.ne' + have hqmem := edgeVertices_fst_mem K (a : Real.Angle) + have hqa : inner ℝ q (normalVector (a : Real.Angle)) = + supportValue K (a : Real.Angle) := hqmem.2 + have hqb : inner ℝ q (normalVector (b : Real.Angle)) ≤ + supportValue K (b : Real.Angle) := inner_le_supportValue K hqmem.1 _ + have hnormal : inner ℝ (p - q) (normalVector (a : Real.Angle)) = 0 := by + rw [inner_sub_left, hpa, hqa, sub_self] + have htangent : 0 ≤ inner ℝ (p - q) (tangentVector (a : Real.Angle)) := by + have hdiff : 0 ≤ inner ℝ (p - q) (normalVector (b : Real.Angle)) := by + rw [inner_sub_left, hpb] + linarith + have hnb : normalVector (b : Real.Angle) = + Real.cos (b - a) • normalVector (a : Real.Angle) + + Real.sin (b - a) • tangentVector (a : Real.Angle) := by + simpa only [add_sub_cancel] using normalVector_add_real a (b - a) + rw [hnb, inner_add_right, inner_smul_right, inner_smul_right, hnormal, + mul_zero, zero_add] at hdiff + nlinarith + have hqr : inner ℝ q (normalVector (r : Real.Angle)) ≤ + supportValue K (r : Real.Angle) := inner_le_supportValue K hqmem.1 _ + have hnr : normalVector (r : Real.Angle) = + Real.cos (r - a) • normalVector (a : Real.Angle) + + Real.sin (r - a) • tangentVector (a : Real.Angle) := by + simpa only [add_sub_cancel] using normalVector_add_real a (r - a) + have hsinr : Real.sin (r - a) ≤ 0 := + Real.sin_nonpos_of_nonpos_of_neg_pi_le (by linarith [hr.2]) (by linarith [hr.1]) + have hdiff : inner ℝ (p - q) (normalVector (r : Real.Angle)) ≤ 0 := by + rw [hnr, inner_add_right, inner_smul_right, inner_smul_right, hnormal, + mul_zero, zero_add] + exact mul_nonpos_of_nonpos_of_nonneg hsinr htangent + rw [inner_sub_left] at hdiff + linarith + +private theorem supportingIntersection_le_supportValue_of_mem_Icc_right + (K : ConvexBody Point) {a b r : ℝ} (hab : 0 < b - a) (hpi : b - a < Real.pi) + (hr : r ∈ Set.Icc b (b + Real.pi)) : + inner ℝ (supportingIntersection K (a : Real.Angle) (b : Real.Angle)) + (normalVector (r : Real.Angle)) ≤ supportValue K (r : Real.Angle) := by + let p := supportingIntersection K (a : Real.Angle) (b : Real.Angle) + let q := (edgeVertices K (b : Real.Angle)).2 + have hsin : 0 < Real.sin (b - a) := + Real.sin_pos_of_pos_of_lt_pi hab hpi + have hsina : Real.sin (a - b) < 0 := by + rw [show a - b = -(b - a) by ring, Real.sin_neg] + exact neg_neg_of_pos hsin + have hpa : inner ℝ p (normalVector (a : Real.Angle)) = + supportValue K (a : Real.Angle) := supportingIntersection_inner_left K a b + have hpb : inner ℝ p (normalVector (b : Real.Angle)) = + supportValue K (b : Real.Angle) := + supportingIntersection_inner_right K a b hsin.ne' + have hqmem := edgeVertices_snd_mem K (b : Real.Angle) + have hqb : inner ℝ q (normalVector (b : Real.Angle)) = + supportValue K (b : Real.Angle) := hqmem.2 + have hqa : inner ℝ q (normalVector (a : Real.Angle)) ≤ + supportValue K (a : Real.Angle) := inner_le_supportValue K hqmem.1 _ + have hnormal : inner ℝ (p - q) (normalVector (b : Real.Angle)) = 0 := by + rw [inner_sub_left, hpb, hqb, sub_self] + have htangent : inner ℝ (p - q) (tangentVector (b : Real.Angle)) ≤ 0 := by + have hdiff : 0 ≤ inner ℝ (p - q) (normalVector (a : Real.Angle)) := by + rw [inner_sub_left, hpa] + linarith + have hna : normalVector (a : Real.Angle) = + Real.cos (a - b) • normalVector (b : Real.Angle) + + Real.sin (a - b) • tangentVector (b : Real.Angle) := by + simpa only [add_sub_cancel] using normalVector_add_real b (a - b) + rw [hna, inner_add_right, inner_smul_right, inner_smul_right, hnormal, + mul_zero, zero_add] at hdiff + nlinarith + have hqr : inner ℝ q (normalVector (r : Real.Angle)) ≤ + supportValue K (r : Real.Angle) := inner_le_supportValue K hqmem.1 _ + have hnr : normalVector (r : Real.Angle) = + Real.cos (r - b) • normalVector (b : Real.Angle) + + Real.sin (r - b) • tangentVector (b : Real.Angle) := by + simpa only [add_sub_cancel] using normalVector_add_real b (r - b) + have hsinr : 0 ≤ Real.sin (r - b) := + Real.sin_nonneg_of_nonneg_of_le_pi (by linarith [hr.1]) (by linarith [hr.2]) + have hdiff : inner ℝ (p - q) (normalVector (r : Real.Angle)) ≤ 0 := by + rw [hnr, inner_add_right, inner_smul_right, inner_smul_right, hnormal, + mul_zero, zero_add] + exact mul_nonpos_of_nonneg_of_nonpos hsinr htangent + rw [inner_sub_left] at hdiff + linarith + +/-- Adjacent allowed support normals meet in the represented convex body. -/ +theorem HasHalfPlaneRepresentation.supportingIntersection_mem_of_gap + (K : ConvexBody Point) (R : Set ℝ) {a b : ℝ} + (hab : 0 < b - a) (hpi : b - a < Real.pi) + (hK : HasHalfPlaneRepresentation K ((fun r : ℝ ↦ (r : Real.Angle)) '' R)) + (hR : ∀ r ∈ R, r ∈ Set.Icc (a - Real.pi) a ∨ r ∈ Set.Icc b (b + Real.pi)) : + supportingIntersection K (a : Real.Angle) (b : Real.Angle) ∈ K := by + change supportingIntersection K (a : Real.Angle) (b : Real.Angle) ∈ (K : Set Point) + rw [hK.eq_iInter_supportValue] + simp only [Set.mem_iInter] + intro u hu + obtain ⟨r, hr, rfl⟩ := hu + rcases hR r hr with hr | hr + · exact supportingIntersection_le_supportValue_of_mem_Icc_left K hab hpi hr + · exact supportingIntersection_le_supportValue_of_mem_Icc_right K hab hpi hr + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Top Corner +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Every polygon cap of angle less than pi/2 contains the top parallelogram corner. -/ +theorem stripParallelogram_top_mem_of_angle_lt (Θ : AngleSet) + (hΘ : Θ.angle < Real.pi / 2) (K : PolygonCapSpace Θ) : + (stripParallelogram Θ.angle).2.2 ∈ (K.val.val : Set Point) := by + let o := (stripParallelogram Θ.angle).2.2 + have hc : 0 < Real.cos Θ.angle := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Θ.angle_pos, Real.pi_pos], hΘ⟩ + obtain ⟨pω, hpω, hpωeq⟩ := (K.val.val.isCompact.image + (continuous_inner.comp (continuous_id.prodMk continuous_const))).sSup_mem + (K.val.val.nonempty.image (fun p ↦ inner ℝ p (normalVector (Θ.angle : Real.Angle)))) + obtain ⟨pT, hpT, hpTeq⟩ := (K.val.val.isCompact.image + (continuous_inner.comp (continuous_id.prodMk continuous_const))).sSup_mem + (K.val.val.nonempty.image + (fun p ↦ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)))) + have hpω' : inner ℝ pω (normalVector (Θ.angle : Real.Angle)) = 1 := by + change inner ℝ pω (normalVector (Θ.angle : Real.Angle)) = + supportValue K.val.val (Θ.angle : Real.Angle) at hpωeq + simpa only [K.val.property.2.2.1] using hpωeq + have hpT' : inner ℝ pT (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 1 := by + change inner ℝ pT (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue K.val.val ((Real.pi / 2 : ℝ) : Real.Angle) at hpTeq + simpa only [K.val.property.2.2.2.1] using hpTeq + have hpωT : inner ℝ pω (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) ≤ 1 := by + exact (inner_le_supportValue K.val.val hpω _).trans_eq K.val.property.2.2.2.1 + have hpTω : inner ℝ pT (normalVector (Θ.angle : Real.Angle)) ≤ 1 := by + exact (inner_le_supportValue K.val.val hpT _).trans_eq K.val.property.2.2.1 + have hoω : inner ℝ o (normalVector (Θ.angle : Real.Angle)) = 1 := by + have hgap : Real.tan (Real.pi / 4 - Θ.angle / 2) = + (Real.cos Θ.angle)⁻¹ - Real.tan Θ.angle := by + simpa [show Real.pi / 4 - Θ.angle / 2 = + (Real.pi / 2 - Θ.angle) / 2 by ring] + using Real.tan_pi_div_two_sub_div_two Θ.angle ⟨Θ.angle_pos.le, hΘ⟩ + have htan := Real.tan_eq_sin_div_cos Θ.angle + simp [o, stripParallelogram, normalVector, frame, PiLp.inner_apply, hgap, htan] + field_simp [hc.ne'] + ring + have hoT : inner ℝ o (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 1 := by + simp [o, stripParallelogram, normalVector, frame, PiLp.inner_apply] + rw [K.property.eq_iInter_supportValue] + simp only [Set.mem_iInter] + intro a ha + change inner ℝ o (normalVector a) ≤ supportValue K.val.val a + rcases ha with ⟨t, ht, rfl⟩ | ha + · have htupper : t ∈ capUpperAngles Θ.angle := by + rcases ht with (ht | ⟨s, hs, rfl⟩) | ht + · exact Or.inl ⟨(Θ.interior t ht).1.le, (Θ.interior t ht).2.le⟩ + · exact Or.inr ⟨by dsimp; linarith [(Θ.interior s hs).1], + by dsimp; linarith [(Θ.interior s hs).2]⟩ + · rcases ht with rfl | rfl + · exact Or.inl ⟨Θ.angle_pos.le, le_rfl⟩ + · exact Or.inr ⟨le_rfl, by linarith [Θ.angle_pos]⟩ + rcases htupper with ht | ht + · let c := Real.cos t / Real.cos Θ.angle + let s := Real.sin (Θ.angle - t) / Real.cos Θ.angle + have hc0 : 0 ≤ c := div_nonneg + (Real.cos_nonneg_of_mem_Icc + ⟨(neg_nonpos.mpr (by positivity)).trans ht.1, ht.2.trans Θ.angle_le⟩) hc.le + have hs0 : 0 ≤ s := div_nonneg + (Real.sin_nonneg_of_nonneg_of_le_pi (sub_nonneg.mpr ht.2) + (by linarith [ht.1, Θ.angle_le, Real.pi_pos])) hc.le + have hdecomp : normalVector (t : Real.Angle) = + c • normalVector (Θ.angle : Real.Angle) - + s • normalVector ((Real.pi / 2 : ℝ) : Real.Angle) := by + ext i + fin_cases i + · simp [c, s, normalVector, frame, Real.sin_sub] + field_simp [hc.ne'] + · simp [c, s, normalVector, frame, Real.sin_sub] + field_simp [hc.ne'] + ring + rw [hdecomp, inner_sub_right, inner_smul_right, inner_smul_right, hoω, hoT] + apply (inner_le_supportValue K.val.val hpω (t : Real.Angle)).trans' + rw [hdecomp, inner_sub_right, inner_smul_right, inner_smul_right, hpω'] + simpa only [mul_one] using + sub_le_sub_left (mul_le_mul_of_nonneg_left hpωT hs0) c + · let c := Real.sin (t - Θ.angle) / Real.cos Θ.angle + let s := -Real.cos t / Real.cos Θ.angle + have hc0 : 0 ≤ c := div_nonneg + (Real.sin_nonneg_of_nonneg_of_le_pi (by linarith [ht.1, Θ.angle_le]) + (by linarith [ht.2, Θ.angle_pos, Real.pi_pos])) hc.le + have hs0 : 0 ≤ s := div_nonneg + (neg_nonneg.mpr (Real.cos_nonpos_of_pi_div_two_le_of_le ht.1 + (by linarith [ht.2, Θ.angle_le, Real.pi_pos]))) hc.le + have hdecomp : normalVector (t : Real.Angle) = + c • normalVector ((Real.pi / 2 : ℝ) : Real.Angle) - + s • normalVector (Θ.angle : Real.Angle) := by + ext i + fin_cases i + · simp [c, s, normalVector, frame, Real.sin_sub] + field_simp [hc.ne'] + · simp [c, s, normalVector, frame, Real.sin_sub] + field_simp [hc.ne'] + ring + rw [hdecomp, inner_sub_right, inner_smul_right, inner_smul_right, hoT, hoω] + apply (inner_le_supportValue K.val.val hpT (t : Real.Angle)).trans' + rw [hdecomp, inner_sub_right, inner_smul_right, inner_smul_right, hpT'] + simpa only [mul_one] using + sub_le_sub_left (mul_le_mul_of_nonneg_left hpTω hs0) c + · rcases ha with rfl | rfl + · rw [normalVector_add_pi, inner_neg_right, hoω, K.val.property.2.2.2.2.1] + norm_num + · rw [inner_normalVector_three_pi_div_two, K.val.property.2.2.2.2.2.1] + simp [o, stripParallelogram] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Vertical +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A cap is closed under downward vertical movement that remains inside its fan. -/ +theorem CapSpace.mem_of_fst_eq_of_snd_le {ω : ℝ} (K : CapSpace ω) + {p q : Point} (hp : p ∈ (K.val : Set Point)) (hq : q ∈ capFan ω) + (hx : q 0 = p 0) (hy : q 1 ≤ p 1) : q ∈ (K.val : Set Point) := by + apply K.mem_of_mem_capFan_of_le_supportValue hq + intro t ht + apply le_trans _ (inner_le_supportValue K.val hp (t : Real.Angle)) + have htI : t ∈ Set.Icc 0 Real.pi := by + rcases ht with ht | ht + · exact ⟨ht.1, by linarith [ht.2, K.property.2.1, Real.pi_pos]⟩ + · exact ⟨by linarith [ht.1, Real.pi_pos], by linarith [ht.2, K.property.2.1]⟩ + have h := mul_le_mul_of_nonneg_left hy (Real.sin_nonneg_of_mem_Icc htI) + simp [normalVector, frame, PiLp.inner_apply, hx] + linarith + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Analysis.SurfaceMeasure.ArcConvergence`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Arc Convergence +-/ + +@[expose] public section + +noncomputable section + +open Filter MeasureTheory Set +open scoped Topology BoundedContinuousFunction + +namespace MovingSofa + +/-- Hausdorff convergence with fixed endpoint atoms preserves half-open surface integrals. -/ +theorem tendsto_integral_surfaceAreaMeasure_Ioc_of_fixed_atoms + (K : ℕ → ConvexBody Point) (L : ConvexBody Point) + (hlim : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) (L : Set Point)) + atTop (𝓝 0)) {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) + (ha : ∀ n, surfaceAreaMeasure (K n) {(a : Real.Angle)} = + surfaceAreaMeasure L {(a : Real.Angle)}) + (hb : ∀ n, surfaceAreaMeasure (K n) {(b : Real.Angle)} = + surfaceAreaMeasure L {(b : Real.Angle)}) + (f : Real.Angle → ℝ) (hf : Continuous f) : + Tendsto (fun n ↦ ∫ u in (fun t : ℝ ↦ (t : Real.Angle)) '' Ioc a b, + f u ∂surfaceAreaMeasure (K n)) atTop + (𝓝 (∫ u in (fun t : ℝ ↦ (t : Real.Angle)) '' Ioc a b, f u ∂surfaceAreaMeasure L)) := by + let μs : ℕ → FiniteMeasure Real.Angle := fun n ↦ + ⟨surfaceAreaMeasure (K n), (surfaceAreaMeasure_face_union (K n)).1⟩ + let μ : FiniteMeasure Real.Angle := + ⟨surfaceAreaMeasure L, (surfaceAreaMeasure_face_union L).1⟩ + have hμ : Tendsto μs atTop (𝓝 μ) := by + apply FiniteMeasure.tendsto_iff_forall_integral_tendsto.mpr + intro g + exact surfaceAreaMeasure_weak_continuity K L hlim g g.continuous + exact Real.Angle.tendsto_integral_image_Ioc_of_fixed_endpoint_atoms + hab hturn hμ ha hb (BoundedContinuousFunction.mkOfCompact ⟨f, hf⟩) + +/-- Preserving the two endpoint faces supplies the atomic hypotheses for arc convergence. -/ +theorem tendsto_integral_surfaceAreaMeasure_Ioc_of_preserves_faces + (K : ℕ → ConvexBody Point) (L : ConvexBody Point) + (hlim : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) (L : Set Point)) + atTop (𝓝 0)) {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) + (ha : ∀ n, exposedEdge (K n) (a : Real.Angle) = exposedEdge L (a : Real.Angle)) + (hb : ∀ n, exposedEdge (K n) (b : Real.Angle) = exposedEdge L (b : Real.Angle)) + (f : Real.Angle → ℝ) (hf : Continuous f) : + Tendsto (fun n ↦ ∫ u in (fun t : ℝ ↦ (t : Real.Angle)) '' Ioc a b, + f u ∂surfaceAreaMeasure (K n)) atTop + (𝓝 (∫ u in (fun t : ℝ ↦ (t : Real.Angle)) '' Ioc a b, f u ∂surfaceAreaMeasure L)) := by + apply tendsto_integral_surfaceAreaMeasure_Ioc_of_fixed_atoms K L hlim hab hturn + (f := f) (hf := hf) + · intro n + rw [(surfaceAreaMeasure_atom_length (K n) _).1, + (surfaceAreaMeasure_atom_length L _).1, ha n] + · intro n + rw [(surfaceAreaMeasure_atom_length (K n) _).1, + (surfaceAreaMeasure_atom_length L _).1, hb n] + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Convex.CurveCut`. +* `Convex.ArcCutArea`. +* `Convex.OuterCornerPath`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Convex / Curve Cut +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +private theorem normalVector_eq_positive_combo {a b t : ℝ} + (hab : a < b) (hba : b < a + Real.pi) (_hat : a < t) (_htb : t < b) : + normalVector (t : Real.Angle) = + (Real.sin (b - t) / Real.sin (b - a)) • normalVector (a : Real.Angle) + + (Real.sin (t - a) / Real.sin (b - a)) • normalVector (b : Real.Angle) := by + have hs : Real.sin (b - a) ≠ 0 := + (Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hab) (by linarith)).ne' + have hs' : Real.sin b * Real.cos a - Real.cos b * Real.sin a ≠ 0 := by + simpa only [Real.sin_sub] using hs + apply PiLp.ext + intro i + fin_cases i <;> + simp [normalVector, frame, Real.sin_sub] <;> + field_simp [hs'] <;> ring + +private theorem eq_supportingIntersection_of_mem_endpoint_faces + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (p : Point) (hpa : p ∈ exposedEdge K (a : Real.Angle)) + (hpb : p ∈ exposedEdge K (b : Real.Angle)) : + supportingIntersection K a b = p := by + let O := supportingIntersection K a b + have hs : Real.sin (b - a) ≠ 0 := + (Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hab) (by linarith)).ne' + have hna : inner ℝ (O - p) (normalVector (a : Real.Angle)) = 0 := by + rw [inner_sub_left, supportingIntersection_inner_left, hpa.2, sub_self] + have hnb : inner ℝ (O - p) (normalVector (b : Real.Angle)) = 0 := by + rw [inner_sub_left, supportingIntersection_inner_right K a b hs, hpb.2, sub_self] + have hrot := normalVector_add_real a (b - a) + have htan : inner ℝ (O - p) (tangentVector (a : Real.Angle)) = 0 := by + have := hnb + rw [show normalVector (b : Real.Angle) = + Real.cos (b - a) • normalVector (a : Real.Angle) + + Real.sin (b - a) • tangentVector (a : Real.Angle) by + simpa only [add_sub_cancel] using hrot, + inner_add_right, inner_smul_right, inner_smul_right, hna] at this + simp only [mul_zero, zero_add] at this + exact (mul_eq_zero.mp this).resolve_left hs + change O = p + rw [show O = p + (O - p) by abel, + ← inner_normalVector_smul_add_inner_tangentVector_smul + (O - p) (a : Real.Angle), hna, htan, zero_smul, zero_smul, add_zero, add_zero] + +private theorem exposedEdge_eq_singleton_of_common_endpoint + (K : ConvexBody Point) {a b t : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (hat : a < t) (htb : t < b) (p : Point) + (hpa : p ∈ exposedEdge K (a : Real.Angle)) + (hpb : p ∈ exposedEdge K (b : Real.Angle)) : + exposedEdge K (t : Real.Angle) = {p} := by + have hsa : 0 < Real.sin (b - t) / Real.sin (b - a) := div_pos + (Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr htb) (by linarith)) + (Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hab) (by linarith)) + have hsb : 0 < Real.sin (t - a) / Real.sin (b - a) := div_pos + (Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hat) (by linarith)) + (Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hab) (by linarith)) + have hn := normalVector_eq_positive_combo hab hba hat htb + have hpt : inner ℝ p (normalVector (t : Real.Angle)) = supportValue K t := by + rw [hn, inner_add_right, inner_smul_right, inner_smul_right, hpa.2, hpb.2] + apply le_antisymm + · have hp_le := inner_le_supportValue K hpa.1 (t : Real.Angle) + rw [hn, inner_add_right, inner_smul_right, inner_smul_right, + hpa.2, hpb.2] at hp_le + exact hp_le + · apply csSup_le (K.nonempty.image _) + rintro _ ⟨z, hzK, rfl⟩ + change inner ℝ z (normalVector (t : Real.Angle)) ≤ _ + rw [hn, inner_add_right, inner_smul_right, inner_smul_right] + exact add_le_add + (mul_le_mul_of_nonneg_left (inner_le_supportValue K hzK _) hsa.le) + (mul_le_mul_of_nonneg_left (inner_le_supportValue K hzK _) hsb.le) + apply Set.Subset.antisymm + · intro z hz + have hza := inner_le_supportValue K hz.1 (a : Real.Angle) + have hzb := inner_le_supportValue K hz.1 (b : Real.Angle) + have hzt := hz.2 + change inner ℝ z (normalVector (t : Real.Angle)) = supportValue K t at hzt + rw [← hpt, hn, inner_add_right, inner_smul_right, inner_smul_right] at hzt + rw [inner_add_right, inner_smul_right, inner_smul_right, hpa.2, hpb.2] at hzt + have hzea : inner ℝ z (normalVector (a : Real.Angle)) = supportValue K a := by + by_contra hne + have hlt := lt_of_le_of_ne hza hne + nlinarith + have hzeb : inner ℝ z (normalVector (b : Real.Angle)) = supportValue K b := by + by_contra hne + have hlt := lt_of_le_of_ne hzb hne + nlinarith + have hzpa : inner ℝ (z - p) (normalVector (a : Real.Angle)) = 0 := by + rw [inner_sub_left, hzea, hpa.2, sub_self] + have hzpb : inner ℝ (z - p) (normalVector (b : Real.Angle)) = 0 := by + rw [inner_sub_left, hzeb, hpb.2, sub_self] + have hs : Real.sin (b - a) ≠ 0 := + (Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hab) (by linarith)).ne' + have htan : inner ℝ (z - p) (tangentVector (a : Real.Angle)) = 0 := by + have hrot := normalVector_add_real a (b - a) + rw [show normalVector (b : Real.Angle) = + Real.cos (b - a) • normalVector (a : Real.Angle) + + Real.sin (b - a) • tangentVector (a : Real.Angle) by + simpa only [add_sub_cancel] using hrot, + inner_add_right, inner_smul_right, inner_smul_right, hzpa] at hzpb + simp only [mul_zero, zero_add] at hzpb + exact (mul_eq_zero.mp hzpb).resolve_left hs + have hzp : z = p := by + rw [show z = p + (z - p) by abel, + ← inner_normalVector_smul_add_inner_tangentVector_smul + (z - p) (a : Real.Angle), hzpa, htan, + zero_smul, zero_smul, add_zero, add_zero] + simp [hzp] + · intro z hz + simp only [Set.mem_singleton_iff] at hz + subst z + exact ⟨hpa.1, hpt⟩ + +private theorem exists_cut_angle + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (hne : (edgeVertices K (a : Real.Angle)).1 ≠ + (edgeVertices K (b : Real.Angle)).2) : + ∃ t d : ℝ, a < t ∧ t < b ∧ 0 < d ∧ + (edgeVertices K (b : Real.Angle)).2 - (edgeVertices K (a : Real.Angle)).1 = + d • tangentVector (t : Real.Angle) := by + let P := (edgeVertices K (a : Real.Angle)).1 + let Q := (edgeVertices K (b : Real.Angle)).2 + let O := supportingIntersection K a b + obtain ⟨α, hα, hOa⟩ := supportingIntersection_eq_fst_add_pos_tangent K hab hba hne + obtain ⟨β, hβ, hOb⟩ := supportingIntersection_eq_snd_sub_pos_tangent K hab hba hne + have hchord : Q - P = α • tangentVector (a : Real.Angle) + + β • tangentVector (b : Real.Angle) := by + change O = P + α • tangentVector (a : Real.Angle) at hOa + change O = Q - β • tangentVector (b : Real.Angle) at hOb + have hQO : Q = O + β • tangentVector (b : Real.Angle) := by + rw [hOb] + module + rw [hQO, hOa] + module + let f : ℝ → ℝ := fun s ↦ inner ℝ (Q - P) (normalVector (s : Real.Angle)) + have hf : Continuous f := by + dsimp only [f] + rw [show (fun s : ℝ ↦ inner ℝ (Q - P) (normalVector (s : Real.Angle))) = + fun s ↦ (Q - P) 0 * Real.cos s + (Q - P) 1 * Real.sin s by + funext s + simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + ring] + fun_prop + have hsin : 0 < Real.sin (b - a) := + Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hab) (by linarith) + have hfa : f a < 0 := by + dsimp only [f] + rw [hchord, inner_add_left, real_inner_smul_left, real_inner_smul_left] + simp only [tangentVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, normalVector, + PiLp.inner_apply, RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, + Matrix.cons_val_zero, mul_neg, Matrix.cons_val_one, Matrix.cons_val_fin_one] + have hid : -(Real.cos a * Real.sin b) + Real.sin a * Real.cos b = + -Real.sin (b - a) := by rw [Real.sin_sub]; ring + rw [hid] + nlinarith + have hfb : 0 < f b := by + dsimp only [f] + rw [hchord, inner_add_left, real_inner_smul_left, real_inner_smul_left] + simp only [tangentVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, normalVector, + PiLp.inner_apply, RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, + Matrix.cons_val_zero, mul_neg, Matrix.cons_val_one, Matrix.cons_val_fin_one] + have hid : -(Real.cos b * Real.sin a) + Real.sin b * Real.cos a = + Real.sin (b - a) := by rw [Real.sin_sub]; ring + rw [hid] + nlinarith + have hz : (0 : ℝ) ∈ Set.Icc (f a) (f b) := ⟨hfa.le, hfb.le⟩ + obtain ⟨t, ht, hft⟩ := intermediate_value_Icc hab.le hf.continuousOn hz + have hat : a < t := lt_of_le_of_ne ht.1 fun h ↦ by subst t; linarith + have htb : t < b := lt_of_le_of_ne ht.2 fun h ↦ by subst t; linarith + let d := inner ℝ (Q - P) (tangentVector (t : Real.Angle)) + have hdecomp : Q - P = d • tangentVector (t : Real.Angle) := by + rw [← inner_normalVector_smul_add_inner_tangentVector_smul + (Q - P) (t : Real.Angle)] + change inner ℝ (Q - P) (normalVector (t : Real.Angle)) = 0 at hft + rw [hft, zero_smul, zero_add] + have hd : 0 < d := by + have hqa : inner ℝ (Q - P) (normalVector (a : Real.Angle)) < 0 := hfa + rw [hdecomp, real_inner_smul_left] at hqa + have hsinat : 0 < Real.sin (t - a) := + Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hat) (by linarith) + have hinner : inner ℝ (tangentVector (t : Real.Angle)) + (normalVector (a : Real.Angle)) = -Real.sin (t - a) := by + rw [real_inner_comm] + have h := sin_sub_eq_neg_inner_normalVector_tangentVector + (a : Real.Angle) (t : Real.Angle) + change Real.sin (t - a) = + -inner ℝ (normalVector (a : Real.Angle)) (tangentVector (t : Real.Angle)) at h + have h' := h + linarith + rw [hinner] at hqa + nlinarith + exact ⟨t, d, hat, htb, hd, hdecomp⟩ + +private theorem mem_segment_of_mem_body_of_eq_cut_inner + (K : ConvexBody Point) {a b t c d : ℝ} (hat : a < t) (htb : t < b) + (hba : b < a + Real.pi) + (P Q z : Point) (hP : P = (edgeVertices K (a : Real.Angle)).1) + (hQ : Q = (edgeVertices K (b : Real.Angle)).2) + (hd : 0 < d) (hdir : Q - P = d • tangentVector (t : Real.Angle)) + (hPc : inner ℝ P (normalVector (t : Real.Angle)) = c) + (hzc : inner ℝ z (normalVector (t : Real.Angle)) = c) (hzK : z ∈ K) : + z ∈ segment ℝ P Q := by + let r := inner ℝ (z - P) (tangentVector (t : Real.Angle)) + have hnormal : inner ℝ (z - P) (normalVector (t : Real.Angle)) = 0 := by + rw [inner_sub_left, hzc, hPc, sub_self] + have hzrepr : z = P + r • tangentVector (t : Real.Angle) := by + rw [show z = P + (z - P) by abel, + ← inner_normalVector_smul_add_inner_tangentVector_smul + (z - P) (t : Real.Angle), hnormal, zero_smul, zero_add] + have hza := inner_le_supportValue K hzK (a : Real.Angle) + have hPa : inner ℝ P (normalVector (a : Real.Angle)) = supportValue K a := by + rw [hP] + exact (edgeVertices_fst_mem K (a : Real.Angle)).2 + have hsinA : 0 < Real.sin (t - a) := + Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hat) (by linarith) + have hta : inner ℝ (tangentVector (t : Real.Angle)) + (normalVector (a : Real.Angle)) = -Real.sin (t - a) := by + rw [real_inner_comm] + have h := sin_sub_eq_neg_inner_normalVector_tangentVector + (a : Real.Angle) (t : Real.Angle) + change Real.sin (t - a) = + -inner ℝ (normalVector (a : Real.Angle)) (tangentVector (t : Real.Angle)) at h + linarith + have hr0 : 0 ≤ r := by + rw [hzrepr, inner_add_left, real_inner_smul_left, hta, hPa] at hza + nlinarith + have hzb := inner_le_supportValue K hzK (b : Real.Angle) + have hQb : inner ℝ Q (normalVector (b : Real.Angle)) = supportValue K b := by + rw [hQ] + exact (edgeVertices_snd_mem K (b : Real.Angle)).2 + have hsinB : 0 < Real.sin (b - t) := + Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr htb) (by linarith) + have htbinner : inner ℝ (tangentVector (t : Real.Angle)) + (normalVector (b : Real.Angle)) = Real.sin (b - t) := by + have h := sin_sub_eq_neg_inner_normalVector_tangentVector + (b : Real.Angle) (t : Real.Angle) + change Real.sin (t - b) = + -inner ℝ (normalVector (b : Real.Angle)) (tangentVector (t : Real.Angle)) at h + rw [real_inner_comm] + rw [show t - b = -(b - t) by ring, Real.sin_neg] at h + linarith + have hQrepr : Q = P + d • tangentVector (t : Real.Angle) := by + rw [show Q = P + (Q - P) by abel, hdir] + have hrd : r ≤ d := by + rw [hzrepr, inner_add_left, real_inner_smul_left, htbinner] at hzb + have hQsupport := hQb + rw [hQrepr, inner_add_left, real_inner_smul_left, htbinner] at hQsupport + rw [← hQsupport] at hzb + nlinarith + rw [segment_eq_image'] + refine ⟨r / d, ⟨div_nonneg hr0 hd.le, (div_le_one hd).2 hrd⟩, ?_⟩ + rw [hdir] + dsimp only + rw [smul_smul] + rw [div_mul_cancel₀ r hd.ne', hzrepr] + +private theorem exposedEdge_subset_upper_cut + (K : ConvexBody Point) {a b t c s : ℝ} (hat : a < t) (htb : t < b) + (hba : b < a + Real.pi) (hs : s ∈ Set.Ioo a b) + (P Q : Point) (hP : P = (edgeVertices K (a : Real.Angle)).1) + (hQ : Q = (edgeVertices K (b : Real.Angle)).2) + (hPc : inner ℝ P (normalVector (t : Real.Angle)) = c) + (hQc : inner ℝ Q (normalVector (t : Real.Angle)) = c) : + exposedEdge K (s : Real.Angle) ⊆ normalHalfPlane (t : Real.Angle) c true false := by + intro z hz + change c ≤ inner ℝ z (normalVector (t : Real.Angle)) + by_cases hst : s = t + · subst s + have hp_le := inner_le_supportValue K (edgeVertices_fst_mem K (a : Real.Angle)).1 + (t : Real.Angle) + rw [← hP, hPc, ← hz.2] at hp_le + exact hp_le + rcases lt_or_gt_of_ne hst with hst | hts + · have hn := normalVector_eq_positive_combo hat (by linarith) hs.1 hst + have hA : 0 < Real.sin (t - s) / Real.sin (t - a) := div_pos + (Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hst) (by linarith [hba, hs.1])) + (Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hat) (by linarith)) + have hB : 0 < Real.sin (s - a) / Real.sin (t - a) := div_pos + (Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hs.1) (by linarith)) + (Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hat) (by linarith)) + by_contra hnot + have hzt : inner ℝ z (normalVector (t : Real.Angle)) < c := lt_of_not_ge hnot + have hza := inner_le_supportValue K hz.1 (a : Real.Angle) + have hPa : inner ℝ P (normalVector (a : Real.Angle)) = supportValue K a := by + rw [hP]; exact (edgeVertices_fst_mem K _).2 + have hpK : P ∈ K := by rw [hP]; exact (edgeVertices_fst_mem K _).1 + have hp_le := inner_le_supportValue K hpK (s : Real.Angle) + rw [← hz.2, hn, inner_add_right, inner_smul_right, inner_smul_right, + inner_add_right, inner_smul_right, inner_smul_right, hPa, hPc] at hp_le + nlinarith + · have hn := normalVector_eq_positive_combo htb (by linarith) hts hs.2 + have hA : 0 < Real.sin (b - s) / Real.sin (b - t) := div_pos + (Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hs.2) (by linarith)) + (Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr htb) (by linarith)) + have hB : 0 < Real.sin (s - t) / Real.sin (b - t) := div_pos + (Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hts) (by linarith [hba, hat, hs.2])) + (Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr htb) (by linarith)) + by_contra hnot + have hzt : inner ℝ z (normalVector (t : Real.Angle)) < c := lt_of_not_ge hnot + have hzb := inner_le_supportValue K hz.1 (b : Real.Angle) + have hQb : inner ℝ Q (normalVector (b : Real.Angle)) = supportValue K b := by + rw [hQ]; exact (edgeVertices_snd_mem K _).2 + have hqK : Q ∈ K := by rw [hQ]; exact (edgeVertices_snd_mem K _).1 + have hq_le := inner_le_supportValue K hqK (s : Real.Angle) + rw [← hz.2, hn, inner_add_right, inner_smul_right, inner_smul_right, + inner_add_right, inner_smul_right, inner_smul_right, hQc, hQb] at hq_le + nlinarith + +private theorem not_collinear_of_inner_eq_eq_lt + (P Q O n : Point) (hPQ : P ≠ Q) + (hPQn : inner ℝ P n = inner ℝ Q n) (hO : inner ℝ P n < inner ℝ O n) : + ¬Collinear ℝ ({P, Q, O} : Set Point) := by + intro hcol + obtain ⟨p₀, v, hv⟩ := (collinear_iff_exists_forall_eq_smul_vadd + (k := ℝ) ({P, Q, O} : Set Point)).mp hcol + obtain ⟨rP, hrP⟩ := hv P (by simp) + obtain ⟨rQ, hrQ⟩ := hv Q (by simp) + obtain ⟨rO, hrO⟩ := hv O (by simp) + have hrne : rP ≠ rQ := by + intro h + apply hPQ + rw [hrP, hrQ, h] + have hvn : inner ℝ v n = 0 := by + rw [hrP, hrQ, vadd_eq_add, vadd_eq_add, inner_add_left, inner_add_left, + real_inner_smul_left, real_inner_smul_left] at hPQn + have : (rP - rQ) * inner ℝ v n = 0 := by linarith + exact (mul_eq_zero.mp this).resolve_left (sub_ne_zero.mpr hrne) + rw [hrP, hrO, vadd_eq_add, vadd_eq_add, inner_add_left, inner_add_left, + real_inner_smul_left, real_inner_smul_left, hvn] at hO + simp only [mul_zero, zero_add] at hO + exact hO.false + +private theorem exposedEdge_upper_cut_first (K K' : ConvexBody Point) + (a b t c : ℝ) (hat : a < t) (htb : t < b) (hba : b < a + Real.pi) + (hsub : (K' : Set Point) ⊆ (K : Set Point)) + (hcut : ∀ z ∈ (K' : Set Point), c ≤ inner ℝ z (normalVector (t : Real.Angle))) + (hPmem : (edgeVertices K (a : Real.Angle)).1 ∈ K') + (hPc : inner ℝ (edgeVertices K (a : Real.Angle)).1 + (normalVector (t : Real.Angle)) = c) : + exposedEdge K' (a : Real.Angle) = + {(edgeVertices K (a : Real.Angle)).1} := by + let P := (edgeVertices K (a : Real.Angle)).1 + have hsin : 0 < Real.sin (t - a) := + Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hat) (by linarith) + have hsupport : supportValue K' (a : Real.Angle) = supportValue K (a : Real.Angle) := by + apply le_antisymm + · apply csSup_le (K'.nonempty.image _) + rintro _ ⟨z, hz, rfl⟩ + exact inner_le_supportValue K (hsub hz) (a : Real.Angle) + · rw [← (edgeVertices_fst_mem K (a : Real.Angle)).2] + exact inner_le_supportValue K' hPmem (a : Real.Angle) + apply Set.Subset.antisymm + · intro z hz + have hzKedge : z ∈ exposedEdge K (a : Real.Angle) := by + refine ⟨hsub hz.1, ?_⟩ + change inner ℝ z (normalVector (a : Real.Angle)) = supportValue K a + rw [← hsupport] + exact hz.2 + have hnormal : inner ℝ (z - P) (normalVector (a : Real.Angle)) = 0 := by + rw [inner_sub_left, hzKedge.2] + change supportValue K (a : Real.Angle) - + inner ℝ (edgeVertices K (a : Real.Angle)).1 + (normalVector (a : Real.Angle)) = 0 + rw [(edgeVertices_fst_mem K (a : Real.Angle)).2, sub_self] + have htangent : inner ℝ (z - P) (tangentVector (a : Real.Angle)) ≤ 0 := by + rw [inner_sub_left, sub_nonpos] + change inner ℝ z (tangentVector (a : Real.Angle)) ≤ + inner ℝ (edgeVertices K (a : Real.Angle)).1 + (tangentVector (a : Real.Angle)) + rw [inner_edgeVertices_fst_tangent] + exact le_csSup ((isCompact_exposedEdge K (a : Real.Angle)).image + (continuous_id.inner continuous_const) |>.bddAbove) ⟨z, hzKedge, rfl⟩ + have hcut : 0 ≤ inner ℝ (z - P) (normalVector (t : Real.Angle)) := by + rw [inner_sub_left, hPc] + exact sub_nonneg.mpr (hcut z hz.1) + have hrotate : normalVector (t : Real.Angle) = + Real.cos (t - a) • normalVector (a : Real.Angle) + + Real.sin (t - a) • tangentVector (a : Real.Angle) := by + simpa only [add_sub_cancel] using normalVector_add_real a (t - a) + rw [hrotate, inner_add_right, inner_smul_right, inner_smul_right, hnormal, + mul_zero, zero_add] at hcut + have htangent0 : inner ℝ (z - P) (tangentVector (a : Real.Angle)) = 0 := by + nlinarith + have hzP : z = P := by + rw [show z = P + (z - P) by abel, + ← inner_normalVector_smul_add_inner_tangentVector_smul + (z - P) (a : Real.Angle), hnormal, htangent0, + zero_smul, zero_smul, add_zero, add_zero] + simp [hzP, P] + · rintro z rfl + refine ⟨hPmem, ?_⟩ + change inner ℝ P (normalVector (a : Real.Angle)) = supportValue K' a + rw [hsupport] + exact (edgeVertices_fst_mem K (a : Real.Angle)).2 + +private theorem exposedEdge_upper_cut_last (K K' : ConvexBody Point) + (a b t c : ℝ) (hat : a < t) (htb : t < b) (hba : b < a + Real.pi) + (hsub : (K' : Set Point) ⊆ (K : Set Point)) + (hcut : ∀ z ∈ (K' : Set Point), c ≤ inner ℝ z (normalVector (t : Real.Angle))) + (hQmem : (edgeVertices K (b : Real.Angle)).2 ∈ K') + (hQc : inner ℝ (edgeVertices K (b : Real.Angle)).2 + (normalVector (t : Real.Angle)) = c) : + exposedEdge K' (b : Real.Angle) = + {(edgeVertices K (b : Real.Angle)).2} := by + let Q := (edgeVertices K (b : Real.Angle)).2 + have hsupport : supportValue K' (b : Real.Angle) = supportValue K (b : Real.Angle) := by + apply le_antisymm + · apply csSup_le (K'.nonempty.image _) + rintro _ ⟨z, hz, rfl⟩ + exact inner_le_supportValue K (hsub hz) (b : Real.Angle) + · rw [← (edgeVertices_snd_mem K (b : Real.Angle)).2] + exact inner_le_supportValue K' hQmem (b : Real.Angle) + apply Set.Subset.antisymm + · intro z hz + have hzKedge : z ∈ exposedEdge K (b : Real.Angle) := by + refine ⟨hsub hz.1, ?_⟩ + change inner ℝ z (normalVector (b : Real.Angle)) = supportValue K b + rw [← hsupport] + exact hz.2 + have hnormal : inner ℝ (z - Q) (normalVector (b : Real.Angle)) = 0 := by + rw [inner_sub_left, hzKedge.2] + change supportValue K (b : Real.Angle) - + inner ℝ (edgeVertices K (b : Real.Angle)).2 + (normalVector (b : Real.Angle)) = 0 + rw [(edgeVertices_snd_mem K (b : Real.Angle)).2, sub_self] + have htangent : 0 ≤ inner ℝ (z - Q) (tangentVector (b : Real.Angle)) := by + rw [inner_sub_left, sub_nonneg] + change inner ℝ (edgeVertices K (b : Real.Angle)).2 + (tangentVector (b : Real.Angle)) ≤ + inner ℝ z (tangentVector (b : Real.Angle)) + rw [inner_edgeVertices_snd_tangent] + exact csInf_le ((isCompact_exposedEdge K (b : Real.Angle)).image + (continuous_id.inner continuous_const) |>.bddBelow) ⟨z, hzKedge, rfl⟩ + have hcut : 0 ≤ inner ℝ (z - Q) (normalVector (t : Real.Angle)) := by + rw [inner_sub_left, hQc] + exact sub_nonneg.mpr (hcut z hz.1) + have hrotate : normalVector (t : Real.Angle) = + Real.cos (t - b) • normalVector (b : Real.Angle) + + Real.sin (t - b) • tangentVector (b : Real.Angle) := by + simpa only [add_sub_cancel] using normalVector_add_real b (t - b) + have hsinb : Real.sin (t - b) < 0 := by + rw [show t - b = -(b - t) by ring, Real.sin_neg, neg_lt_zero] + exact Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr htb) (by linarith) + rw [hrotate, inner_add_right, inner_smul_right, inner_smul_right, hnormal, + mul_zero, zero_add] at hcut + have htangent0 : inner ℝ (z - Q) (tangentVector (b : Real.Angle)) = 0 := by + nlinarith + have hzQ : z = Q := by + rw [show z = Q + (z - Q) by abel, + ← inner_normalVector_smul_add_inner_tangentVector_smul + (z - Q) (b : Real.Angle), hnormal, htangent0, + zero_smul, zero_smul, add_zero, add_zero] + simp [hzQ, Q] + · rintro z rfl + refine ⟨hQmem, ?_⟩ + change inner ℝ Q (normalVector (b : Real.Angle)) = supportValue K' b + rw [hsupport] + exact (edgeVertices_snd_mem K (b : Real.Angle)).2 + +theorem convexBoundaryArc_cut (K : ConvexBody Point) (a b : ℝ) + (hab : a < b) (hba : b < a + Real.pi) + (P Q O : Point) (hP : P = (edgeVertices K a).1) + (hQ : Q = (edgeVertices K b).2) (hO : O = supportingIntersection K a b) : + (P = Q → O = P ∧ convexBoundaryArc K a b = {P}) ∧ + (P ≠ Q → ¬ Collinear ℝ ({P, Q, O} : Set Point) ∧ + ∃ (t c : ℝ) (K' : ConvexBody Point), + a < t ∧ t < b ∧ + inner ℝ P (normalVector (t : Real.Angle)) = c ∧ + inner ℝ Q (normalVector (t : Real.Angle)) = c ∧ + c < inner ℝ O (normalVector (t : Real.Angle)) ∧ + (K' : Set Point) = (K : Set Point) ∩ normalHalfPlane t c true false ∧ + (∀ s ∈ Set.Ioc (t - Real.pi) a, exposedEdge K' s = {P}) ∧ + (∀ s ∈ Set.Ioo a b, exposedEdge K' s = exposedEdge K s) ∧ + (∀ s ∈ Set.Ico b (t + Real.pi), exposedEdge K' s = {Q}) ∧ + exposedEdge K' (t + Real.pi) = segment ℝ Q P) := by + subst P + subst Q + subst O + constructor + · intro hPQ + have hPa := edgeVertices_fst_mem K (a : Real.Angle) + have hPb : (edgeVertices K (a : Real.Angle)).1 ∈ exposedEdge K (b : Real.Angle) := by + rw [hPQ] + exact edgeVertices_snd_mem K (b : Real.Angle) + have hO := eq_supportingIntersection_of_mem_endpoint_faces K hab hba + (edgeVertices K (a : Real.Angle)).1 hPa hPb + refine ⟨hO, ?_⟩ + have hfaces : ∀ t ∈ Set.Ioo a b, exposedEdge K (t : Real.Angle) = + {(edgeVertices K (a : Real.Angle)).1} := by + intro t ht + exact exposedEdge_eq_singleton_of_common_endpoint K hab hba ht.1 ht.2 _ hPa hPb + rw [convexBoundaryArc, hPQ] + apply Set.Subset.antisymm + · refine Set.union_subset (Set.union_subset (Set.Subset.rfl) ?_) Set.Subset.rfl + exact Set.iUnion₂_subset fun t ht ↦ by simpa [← hPQ] using (hfaces t ht).le + · exact Set.subset_union_left.trans Set.subset_union_left + · intro hPQ + let P := (edgeVertices K (a : Real.Angle)).1 + let Q := (edgeVertices K (b : Real.Angle)).2 + let O := supportingIntersection K a b + obtain ⟨t, d, hat, htb, hd, hdir⟩ := exists_cut_angle K hab hba hPQ + let c := inner ℝ P (normalVector (t : Real.Angle)) + have hPc : inner ℝ P (normalVector (t : Real.Angle)) = c := rfl + have hQc : inner ℝ Q (normalVector (t : Real.Angle)) = c := by + have hdiff : inner ℝ (Q - P) (normalVector (t : Real.Angle)) = 0 := by + rw [hdir, real_inner_smul_left, real_inner_comm, + inner_normalVector_tangentVector, mul_zero] + rw [inner_sub_left, hPc] at hdiff + linarith + have hPK : P ∈ K := edgeVertices_fst_mem K (a : Real.Angle) |>.1 + have hQK : Q ∈ K := edgeVertices_snd_mem K (b : Real.Angle) |>.1 + let K' : ConvexBody Point := + { carrier := (K : Set Point) ∩ normalHalfPlane (t : Real.Angle) c true false + convex' := K.convex.inter (convex_normalHalfPlane _ _ true) + isCompact' := K.isCompact.inter_right (isClosed_normalHalfPlane _ _ true) + nonempty' := ⟨P, hPK, by change c ≤ _; exact hPc.ge⟩ } + have hK' : (K' : Set Point) = (K : Set Point) ∩ + normalHalfPlane (t : Real.Angle) c true false := rfl + obtain ⟨α, hα, hOa⟩ := + supportingIntersection_eq_fst_add_pos_tangent K hab hba hPQ + have hsin : 0 < Real.sin (t - a) := + Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hat) (by linarith) + have hta : inner ℝ (tangentVector (a : Real.Angle)) + (normalVector (t : Real.Angle)) = Real.sin (t - a) := by + have h := sin_sub_eq_neg_inner_normalVector_tangentVector + (t : Real.Angle) (a : Real.Angle) + change Real.sin (a - t) = + -inner ℝ (normalVector (t : Real.Angle)) (tangentVector (a : Real.Angle)) at h + rw [real_inner_comm, show a - t = -(t - a) by ring, Real.sin_neg] at h + linarith + have hcO : c < inner ℝ O (normalVector (t : Real.Angle)) := by + change O = P + α • tangentVector (a : Real.Angle) at hOa + rw [hOa, inner_add_left, real_inner_smul_left, hta, ← hPc] + nlinarith + have hncol : ¬Collinear ℝ ({P, Q, O} : Set Point) := + not_collinear_of_inner_eq_eq_lt P Q O (normalVector (t : Real.Angle)) + hPQ (hPc.trans hQc.symm) hcO + have hPmem : P ∈ K' := ⟨hPK, by change c ≤ _; exact hPc.ge⟩ + have hQmem : Q ∈ K' := ⟨hQK, by change c ≤ _; exact hQc.ge⟩ + have hsupportTerminal : + supportValue K' ((t + Real.pi : ℝ) : Real.Angle) = -c := by + apply le_antisymm + · apply csSup_le (K'.nonempty.image _) + rintro _ ⟨z, hz, rfl⟩ + have hzcut := hz.2 + change c ≤ inner ℝ z (normalVector (t : Real.Angle)) at hzcut + rw [normalVector_add_pi] + change inner ℝ z (-normalVector (t : Real.Angle)) ≤ -c + rw [inner_neg_right] + linarith + · have hp := inner_le_supportValue K' hPmem ((t + Real.pi : ℝ) : Real.Angle) + rw [normalVector_add_pi, inner_neg_right, hPc] at hp + exact hp + have haFace := exposedEdge_upper_cut_first K K' a b t c hat htb hba + (fun _ hz ↦ hz.1) (fun _ hz ↦ hz.2) hPmem hPc + have hbFace := exposedEdge_upper_cut_last K K' a b t c hat htb hba + (fun _ hz ↦ hz.1) (fun _ hz ↦ hz.2) hQmem hQc + have hangleTerminal : + ((t - Real.pi : ℝ) : Real.Angle) = ((t + Real.pi : ℝ) : Real.Angle) := by + rw [Real.Angle.angle_eq_iff_two_pi_dvd_sub] + refine ⟨-1, ?_⟩ + norm_num + ring + have hPterminalPlus : P ∈ exposedEdge K' ((t + Real.pi : ℝ) : Real.Angle) := by + refine ⟨hPmem, ?_⟩ + change inner ℝ P (normalVector ((t + Real.pi : ℝ) : Real.Angle)) = + supportValue K' ((t + Real.pi : ℝ) : Real.Angle) + rw [normalVector_add_pi, inner_neg_right, hsupportTerminal, hPc] + have hQterminalPlus : Q ∈ exposedEdge K' ((t + Real.pi : ℝ) : Real.Angle) := by + refine ⟨hQmem, ?_⟩ + change inner ℝ Q (normalVector ((t + Real.pi : ℝ) : Real.Angle)) = + supportValue K' ((t + Real.pi : ℝ) : Real.Angle) + rw [normalVector_add_pi, inner_neg_right, hsupportTerminal, hQc] + have hPterminalMinus : P ∈ exposedEdge K' ((t - Real.pi : ℝ) : Real.Angle) := by + rw [hangleTerminal] + exact hPterminalPlus + refine ⟨hncol, t, c, K', hat, htb, hPc, hQc, hcO, hK', ?_, ?_, ?_, ?_⟩ + · intro s hs + rcases eq_or_lt_of_le hs.2 with hsa | hsa + · subst s + exact haFace + · exact exposedEdge_eq_singleton_of_common_endpoint K' + (by linarith) (by linarith) hs.1 hsa P hPterminalMinus + (by rw [haFace]; rfl) + · intro s hs + have hsub := exposedEdge_subset_upper_cut K hat htb hba hs P Q rfl rfl hPc hQc + obtain ⟨z₀, hz₀⟩ := exposedEdge_nonempty K (s : Real.Angle) + have hz₀K' : z₀ ∈ K' := ⟨hz₀.1, hsub hz₀⟩ + have hsupport : supportValue K' (s : Real.Angle) = supportValue K (s : Real.Angle) := by + apply le_antisymm + · apply csSup_le (K'.nonempty.image _) + rintro _ ⟨z, hz, rfl⟩ + exact inner_le_supportValue K hz.1 (s : Real.Angle) + · rw [← hz₀.2] + exact inner_le_supportValue K' hz₀K' (s : Real.Angle) + ext z + constructor + · intro hz + refine ⟨hz.1.1, ?_⟩ + change inner ℝ z (normalVector (s : Real.Angle)) = supportValue K s + rw [← hsupport] + exact hz.2 + · intro hz + refine ⟨⟨hz.1, hsub hz⟩, ?_⟩ + change inner ℝ z (normalVector (s : Real.Angle)) = supportValue K' s + rw [hsupport] + exact hz.2 + · intro s hs + rcases eq_or_lt_of_le hs.1 with hbs | hbs + · subst s + exact hbFace + · exact exposedEdge_eq_singleton_of_common_endpoint K' + (by linarith) (by linarith) hbs hs.2 Q + (by rw [hbFace]; rfl) hQterminalPlus + · have hsupport := hsupportTerminal + apply Set.Subset.antisymm + · intro z hz + have hzcut := hz.1.2 + change c ≤ inner ℝ z (normalVector (t : Real.Angle)) at hzcut + have hzeq := hz.2 + change inner ℝ z (normalVector ((t + Real.pi : ℝ) : Real.Angle)) = + supportValue K' ((t + Real.pi : ℝ) : Real.Angle) at hzeq + rw [normalVector_add_pi, inner_neg_right, hsupport] at hzeq + have hzc : inner ℝ z (normalVector (t : Real.Angle)) = c := by linarith + rw [segment_symm ℝ] + exact mem_segment_of_mem_body_of_eq_cut_inner K hat htb hba P Q z rfl rfl + hd hdir hPc hzc hz.1.1 + · intro z hz + have hzK : z ∈ K := K.convex.segment_subset hQK hPK hz + have hzc : inner ℝ z (normalVector (t : Real.Angle)) = c := by + have hlin := (convex_normalHalfPlane (t : Real.Angle) c true).segment_subset + (show P ∈ normalHalfPlane (t : Real.Angle) c true false by + change c ≤ _; exact hPc.ge) + (show Q ∈ normalHalfPlane (t : Real.Angle) c true false by + change c ≤ _; exact hQc.ge) + have hzcut := hlin (show z ∈ segment ℝ P Q by simpa [segment_symm ℝ] using hz) + rw [segment_eq_image'] at hz + obtain ⟨u, hu, rfl⟩ := hz + rw [inner_add_left, inner_smul_left, inner_sub_left, hPc, hQc] + ring + refine ⟨⟨hzK, by change c ≤ _; exact hzc.ge⟩, ?_⟩ + change inner ℝ z (normalVector ((t + Real.pi : ℝ) : Real.Angle)) = + supportValue K' ((t + Real.pi : ℝ) : Real.Angle) + rw [normalVector_add_pi, inner_neg_right, hsupport, hzc] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Convex / Arc Cut Area +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open Set + +/-- A supporting chord of a convex-body frontier cuts off a rectifiable oriented arc, and the +closed signed area is the sum of the arc area and the oppositely oriented chord area. -/ +theorem exists_rectifiableOrientedArc_of_cut_with_area + (K : ConvexBody Point) {t c d α β : ℝ} {P Q : Point} {U : Set Point} + {x : ContinuousBVPaths α β} + (hαβ : α < β) + (hx : IsOrientedJordanParametrization hαβ.le (frontier (K : Set Point)) true x.val) + (hPQ : P ≠ Q) (hbase : x.val ⟨α, le_rfl, hαβ.le⟩ ∉ segment ℝ P Q) + (hfrontier : frontier (K : Set Point) = U ∪ segment ℝ P Q) + (hinter : U ∩ segment ℝ P Q = {P, Q}) + (hPt : inner ℝ P (normalVector (t : Real.Angle)) = c) + (hQt : inner ℝ Q (normalVector (t : Real.Angle)) = c) + (hterminal : exposedEdge K (t + Real.pi) = segment ℝ Q P) + (hd : 0 < d) (hdir : Q - P = d • tangentVector (t : Real.Angle)) : + ∃ A : RectifiableOrientedArc, + A.val.carrier = U ∧ + A.val.startPoint = P ∧ A.val.endPoint = Q ∧ + curveAreaFunctional x = jordanArcArea A + segmentArea Q P := by + let θ : Real.Angle := (t + Real.pi : ℝ) + have hhalf : frontier (K : Set Point) ⊆ normalHalfPlane θ (-c) false false := by + intro z hz + have hzK : z ∈ K := K.isClosed.frontier_subset hz + have hzle := inner_le_supportValue K hzK θ + have hPterm : P ∈ exposedEdge K θ := by + rw [show exposedEdge K θ = segment ℝ Q P by + simpa only [θ, Real.Angle.coe_add] using hterminal] + exact right_mem_segment ℝ Q P + have hsupp : supportValue K θ = -c := by + have h := hPterm.2 + change inner ℝ P (normalVector θ) = supportValue K θ at h + change inner ℝ P (normalVector (((t + Real.pi : ℝ) : Real.Angle))) = _ at h + rw [normalVector_add_pi, inner_neg_right, hPt] at h + linarith + change inner ℝ z (normalVector θ) ≤ -c + rwa [hsupp] at hzle + have hQline : Q ∈ normalLine θ (-c) := by + change inner ℝ Q (normalVector θ) = -c + change inner ℝ Q (normalVector (((t + Real.pi : ℝ) : Real.Angle))) = -c + rw [normalVector_add_pi, inner_neg_right, hQt] + have hdir' : P = Q + d • tangentVector θ := by + have htangent : tangentVector θ = -tangentVector (t : Real.Angle) := by + ext i + fin_cases i <;> simp [θ, tangentVector, frame] + rw [htangent] + calc + P = Q - (Q - P) := by module + _ = Q - d • tangentVector (t : Real.Angle) := by rw [hdir] + _ = Q + d • -tangentVector (t : Real.Angle) := by module + exact exists_rectifiableOrientedArc_of_supportingChord_with_area + hαβ hx P Q hPQ + hbase hfrontier hinter θ (-c) hhalf hQline d hd hdir' + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The outer corner of a convex body as a path of bounded variation + +The outer corner of the rotating supporting hallway of a convex body `K` is +`h_K(t) • u_t + h_K(t + π/2) • v_t`. Support values are Lipschitz in the angle and bounded on a +compact interval, so this expression is a Lipschitz, hence continuous bounded-variation, path on +every compact interval of angles; and it is convex-linear in `K` because support values are. +These are the two hypotheses of Mamikon convexity for the middle summand of the sofa area. +-/ + +@[expose] public section + +noncomputable section + +open scoped unitInterval + +namespace MovingSofa + +/-- The outer corner of a convex body traces a continuous path of bounded variation over every +compact interval of angles. -/ +theorem exists_outerCornerBV (K : ConvexBody Point) (a b : ℝ) : + ∃ γ : ContinuousBVPaths a b, ∀ s : Set.Icc a b, + γ.val s = (rotatingHallwayParts (K : Set Point) ((s : ℝ) : Real.Angle)).outerCorner := by + set C := sSup (norm '' (K : Set Point)) + have hC0 : 0 ≤ C := Real.sSup_nonneg (by rintro _ ⟨p, -, rfl⟩; exact norm_nonneg p) + have hlipn : ∀ x y : ℝ, |supportValue (K : Set Point) (x : Real.Angle) - + supportValue (K : Set Point) (y : Real.Angle)| ≤ C * |x - y| := + abs_supportValue_sub_le_of_isCompact K.nonempty K.isCompact + have hlipt : ∀ x y : ℝ, + |supportValue (K : Set Point) ((x + Real.pi / 2 : ℝ) : Real.Angle) - + supportValue (K : Set Point) ((y + Real.pi / 2 : ℝ) : Real.Angle)| ≤ C * |x - y| := by + intro x y + simpa only [add_sub_add_right_eq_sub] using hlipn (x + Real.pi / 2) (y + Real.pi / 2) + have hcont : Continuous fun x : ℝ ↦ + supportValue (K : Set Point) ((x + Real.pi / 2 : ℝ) : Real.Angle) := + (continuous_supportValue_real K).comp (continuous_id.add_const _) + obtain ⟨Mn, hMn⟩ := isCompact_Icc.exists_bound_of_continuousOn (s := Set.Icc a b) + (continuous_supportValue_real K).continuousOn + obtain ⟨Mt, hMt⟩ := isCompact_Icc.exists_bound_of_continuousOn (s := Set.Icc a b) + hcont.continuousOn + set M := max (max Mn Mt) 0 + have hM0 : 0 ≤ M := le_max_right _ _ + have hMn' : ∀ x ∈ Set.Icc a b, |supportValue (K : Set Point) (x : Real.Angle)| ≤ M := by + intro x hx + simpa only [Real.norm_eq_abs] using + (hMn x hx).trans ((le_max_left Mn Mt).trans (le_max_left _ 0)) + have hMt' : ∀ x ∈ Set.Icc a b, + |supportValue (K : Set Point) ((x + Real.pi / 2 : ℝ) : Real.Angle)| ≤ M := by + intro x hx + simpa only [Real.norm_eq_abs] using + (hMt x hx).trans ((le_max_right Mn Mt).trans (le_max_left _ 0)) + exact ⟨continuousBVOfLipschitz _ (lipschitzOnWith_frameCombination + (D := ⟨2 * (C + M), by linarith⟩) le_rfl hM0 hlipn hlipt hMn' hMt').to_restrict, + fun s ↦ (outerCorner_eq_support_sum K (s : ℝ)).symm⟩ + +/-- The outer-corner paths of a convex body may be chosen convex-linearly in the body. The +barycentric operation on paths is `bvPathCombination`, spelled out here because it is defined +downstream of this module. -/ +theorem exists_outerCornerBV_convexLinear (a b : ℝ) : + ∃ γ : ConvexBody Point → ContinuousBVPaths a b, + (∀ (K : ConvexBody Point) (s : Set.Icc a b), (γ K).val s = + (rotatingHallwayParts (K : Set Point) ((s : ℝ) : Real.Angle)).outerCorner) ∧ + IsConvexLinear convexBodyCombination + (fun r x y ↦ (1 - (r : ℝ)) • x + (r : ℝ) • y) γ := by + choose γ hγ using fun K : ConvexBody Point ↦ exists_outerCornerBV K a b + refine ⟨γ, hγ, fun t K L ↦ Subtype.ext (funext fun s ↦ ?_)⟩ + change (γ (convexBodyCombination t K L)).val s = + ((1 - (t : ℝ)) • (γ K).val + (t : ℝ) • (γ L).val) s + rw [hγ, show ((1 - (t : ℝ)) • (γ K).val + (t : ℝ) • (γ L).val) s = + (1 - (t : ℝ)) • (γ K).val s + (t : ℝ) • (γ L).val s from rfl, hγ, hγ] + simp only [outerCorner_eq_support_sum, supportValue_convexBodyCombination] + module + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Geometry.Convex.HorizontalExtrema`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Convex / Horizontal Extrema +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A horizontal extreme slice is a singleton when every defining normal has nonzero sine. -/ +lemma ConvexBody.eq_of_mem_of_fst_eq_of_fst_extremal + (K : ConvexBody Point) (N : Set Real.Angle) (hN : N.Finite) + (hK : HasHalfPlaneRepresentation K N) (hsin : ∀ t ∈ N, t.sin ≠ 0) + {a b : Point} (ha : a ∈ (K : Set Point)) (hb : b ∈ (K : Set Point)) + (hab : a 0 = b 0) + (hext : (∀ q ∈ (K : Set Point), q 0 ≤ a 0) ∨ + (∀ q ∈ (K : Set Point), a 0 ≤ q 0)) : a = b := by + by_contra hne + have hy : a 1 ≠ b 1 := by + intro h + apply hne + ext i + fin_cases i + · exact hab + · exact h + let m : Point := (2 : ℝ)⁻¹ • (a + b) + let U : Set Point := ⋂ t ∈ N, + {q | inner ℝ q (normalVector t) < supportValue K t} + have hU : IsOpen U := by + apply hN.isOpen_biInter + intro t ht + exact isOpen_lt (by fun_prop) continuous_const + have hm : m ∈ U := by + simp only [U, Set.mem_iInter, Set.mem_ofPred_eq] + intro t ht + have ha' := inner_le_supportValue K ha t + have hb' := inner_le_supportValue K hb t + have hneq : inner ℝ a (normalVector t) ≠ inner ℝ b (normalVector t) := by + intro heq + have hdiff : t.sin * (a 1 - b 1) = 0 := by + simp only [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] at heq + simp only [Fin.isValue, Matrix.cons_val_zero, RCLike.inner_apply, conj_trivial, + Matrix.cons_val_one, Matrix.cons_val_fin_one] at heq + rw [hab] at heq + nlinarith + exact hy (sub_eq_zero.mp ((mul_eq_zero.mp hdiff).resolve_left (hsin t ht))) + have hmid : inner ℝ m (normalVector t) = + (inner ℝ a (normalVector t) + inner ℝ b (normalVector t)) / 2 := by + simp only [m, inner_add_left, real_inner_smul_left] + ring + rw [hmid] + rcases lt_or_gt_of_ne hneq with h | h <;> linarith + obtain ⟨ε, hε, hball⟩ := (Metric.isOpen_iff.mp hU) m hm + have hmem (r : ℝ) (hr : |r| < ε) : + m + r • normalVector (0 : Real.Angle) ∈ (K : Set Point) := by + have hqm : m + r • normalVector (0 : Real.Angle) ∈ Metric.ball m ε := by + rw [Metric.mem_ball, dist_eq_norm] + simp only [add_sub_cancel_left, norm_smul] + have hn : ‖normalVector (0 : Real.Angle)‖ = 1 := by + simpa only [Real.Angle.coe_zero] using norm_normalVector_real 0 + simpa only [hn, mul_one, Real.norm_eq_abs] using hr + rw [hK.eq_iInter_supportValue] + simp only [Set.mem_iInter] + intro t ht + have h := Set.mem_iInter.mp (Set.mem_iInter.mp (hball hqm) t) ht + change inner ℝ (m + r • normalVector (0 : Real.Angle)) (normalVector t) < + supportValue K t at h + exact h.le + have hcoord (r : ℝ) : (m + r • normalVector (0 : Real.Angle)) 0 = a 0 + r := by + simp [m, normalVector, frame, ← hab] + ring + rcases hext with hmax | hmin + · have hq := hmem (ε / 2) (by rw [abs_of_pos (half_pos hε)]; linarith) + have h := hmax _ hq + rw [hcoord] at h + linarith + · have hq := hmem (-ε / 2) (by rw [abs_of_neg (by linarith : -ε / 2 < 0)]; linarith) + have h := hmin _ hq + rw [hcoord] at h + linarith + +/-- Every horizontal coordinate between two points of a convex body is attained. -/ +lemma ConvexBody.exists_mem_fst_eq_of_mem_Icc (K : ConvexBody Point) {a b : Point} + (ha : a ∈ (K : Set Point)) (hb : b ∈ (K : Set Point)) (hab : a 0 < b 0) + {x : ℝ} (hx : x ∈ Set.Icc (a 0) (b 0)) : + ∃ q ∈ (K : Set Point), q 0 = x := by + let r := (x - a 0) / (b 0 - a 0) + have hd : 0 < b 0 - a 0 := sub_pos.mpr hab + have hr : 0 ≤ r := div_nonneg (sub_nonneg.mpr hx.1) hd.le + have hr1 : r ≤ 1 := by + dsimp [r] + rw [div_le_one hd] + linarith [hx.2] + refine ⟨(1 - r) • a + r • b, + K.convex ha hb (sub_nonneg.mpr hr1) hr (by ring), ?_⟩ + simp only [PiLp.add_apply, PiLp.smul_apply, smul_eq_mul] + dsimp [r] + field_simp + ring + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Gerver.Motion`. +* `Gerver.PaperPath`. +* `Gerver.PaperSet`. +* `Gerver.Parameters`. +* `Gerver.ParameterDictionary`. +* `Gerver.Partition`. +* `Gerver.ReversePhysicalDomain`. +* `Gerver.DirectRegularity`. +* `Gerver.LiteralSets`. +* `Gerver.LiteralConnected`. +* `Gerver.ParameterIdentification`. +* `Gerver.Contacts`. +* `Gerver.Niche.Roof`. +* `Gerver.ODEs`. +* `Gerver.OuterContacts`. +* `Gerver.StageRegularity`. +* `Gerver.Area.Grid`. +* `Gerver.Niche.RoofProperties`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/- +MIT License + +Copyright (c) 2026 Dawid Trela + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +-/ + + +/-! Adapted from GerverSofaLean v1.1.0, F07UpstreamMotion (MIT). -/ + +@[expose] public section + +noncomputable section +open MeasureTheory +open scoped unitInterval ENNReal + +namespace MovingSofa + +open GerverSofa.PartF + +/-- The certified continuous rigid motion carrying Gerver’s sofa through the hallway. -/ +def gerversSofaMotion : I → Rigid := EuclideanMotion.motion + +theorem isMovingSofa_gerversSofa_motion : IsMovingSofa gerversSofa gerversSofaMotion := by + apply (ProjectAdapter.isMovingSofa_iff_model _ _).2 + rw [ProjectAdapter.gerversSofa_eq_certified] + exact EuclideanMotion.concrete_movingSofa + +theorem isMovingSofa_gerversSofa : ∃ m, IsMovingSofa gerversSofa m := + ⟨gerversSofaMotion, isMovingSofa_gerversSofa_motion⟩ + +theorem volume_gerversSofa_le_sofaConstant : volume gerversSofa ≤ sofaConstant := by + unfold sofaConstant + exact le_iSup_of_le gerversSofa (le_iSup_of_le isMovingSofa_gerversSofa le_rfl) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The paper's Gerver path and the vendor coordinate transport + +`paperGerverPath` is the certified direct five-phase Gerver path read through the vendor +coordinate identification `GerverSofa.PartF.Coordinates.toPlane`. This file records the +transport lemmas for that identification (derivatives, smoothness, continuity) and the +frame readers that express the moving frame `normalVector`/`tangentVector` in the same +coordinates. + +The frame readers live here rather than in `MovingSofa/Geometry/Basic.lean` because their +statements mention `toPlane`, which `Geometry/Basic.lean` does not import; this is the +lowest module that sees both the vendor coordinates and `MovingSofa.frame`. +-/ + +@[expose] public section + +noncomputable section + +open scoped ContDiff + +namespace MovingSofa + +/-- The certified direct five-phase Gerver path, taking the earlier branch at each switch. -/ +def paperGerverPath (t : ℝ) : Point := + GerverSofa.PartF.Coordinates.toPlane (GerverSofa.Romik.path GerverSofa.PartB.params t) + +theorem canonical_path_rotation_eq_paper (t : ℝ) (ht : t ∈ Set.Icc 0 (Real.pi / 2)) : + rotationMap (t : Real.Angle) (GerversSofa.p t) = paperGerverPath t := + GerverSofa.PartF.ProjectAdapter.integral_rotation_to_full t ht + +section Transport + +open GerverSofa.Romik GerverSofa.PartF.Coordinates + +/-! ### Transport along the coordinate identification -/ + +/-- The coordinate identification `toPlane` is a continuous linear map, so it transports +derivatives of plane-valued curves. -/ +theorem hasDerivAt_toPlane {q : ℝ → GerverSofa.Point} {q' : GerverSofa.Point} {t : ℝ} + (hq : HasDerivAt q q' t) : HasDerivAt (fun s => toPlane (q s)) (toPlane q') t := by + obtain ⟨L, hL⟩ : ∃ L : GerverSofa.Point →L[ℝ] Point, ⇑L = toPlane := + ⟨{ toLinearMap := linearEquiv.toLinearMap, cont := continuous_toPlane }, rfl⟩ + rw [← hL] + simpa [Function.comp_def] using L.hasFDerivAt.comp_hasDerivAt t hq + +/-- The coordinate identification `toPlane` preserves smoothness of plane-valued curves. -/ +theorem contDiff_toPlane {q : ℝ → GerverSofa.Point} (hq : ContDiff ℝ ∞ q) : + ContDiff ℝ ∞ fun t => toPlane (q t) := by + rw [contDiff_euclidean] + intro i + fin_cases i + · exact hq.fst + · exact hq.snd + +/-! ### Frame readers -/ + +/-- The angular frame normal is the coordinate image of the standard trigonometric pair. -/ +theorem normalVector_coe_eq_toPlane (t : ℝ) : + normalVector (t : Real.Angle) = toPlane (Real.cos t, Real.sin t) := rfl + +/-- The angular frame tangent is the coordinate image of the rotated trigonometric pair. -/ +theorem tangentVector_coe_eq_toPlane (t : ℝ) : + tangentVector (t : Real.Angle) = toPlane (-Real.sin t, Real.cos t) := rfl + +/-- The normal component of a body-frame vector rotated by `t` is its first coordinate. -/ +theorem inner_toPlane_rot_normalVector (t : ℝ) (z : GerverSofa.Point) : + inner ℝ (toPlane (rot t z)) (normalVector (t : Real.Angle)) = z.1 := by + have h := Real.sin_sq_add_cos_sq t + simp only [normalVector, MovingSofa.frame, PiLp.inner_apply, RCLike.inner_apply, + Fin.sum_univ_two, rot, toPlane_zero_coord, toPlane_one_coord, conj_trivial, + Matrix.cons_val_zero, Matrix.cons_val_one, Real.Angle.cos_coe, Real.Angle.sin_coe] + linear_combination z.1 * h + +/-- The tangential component of a body-frame vector rotated by `t` is its second +coordinate. -/ +theorem inner_toPlane_rot_tangentVector (t : ℝ) (z : GerverSofa.Point) : + inner ℝ (toPlane (rot t z)) (tangentVector (t : Real.Angle)) = z.2 := by + have h := Real.sin_sq_add_cos_sq t + simp only [tangentVector, MovingSofa.frame, PiLp.inner_apply, RCLike.inner_apply, + Fin.sum_univ_two, rot, toPlane_zero_coord, toPlane_one_coord, conj_trivial, + Matrix.cons_val_zero, Matrix.cons_val_one, Real.Angle.cos_coe, Real.Angle.sin_coe] + linear_combination z.2 * h + +/-- The normal frame component of a plane point is the vendor scalar product of its +coordinate pair with the vendor normal `u`. -/ +theorem inner_normalVector_eq_dot (q : Point) (s : ℝ) : + inner ℝ q (normalVector (s : Real.Angle)) = + GerverSofa.dot (fromPlane q) (GerverSofa.u s) := by + simp only [normalVector, MovingSofa.frame, PiLp.inner_apply, RCLike.inner_apply, conj_trivial, + Fin.sum_univ_two, Matrix.cons_val_zero, Matrix.cons_val_one, Real.Angle.cos_coe, + Real.Angle.sin_coe, GerverSofa.dot, GerverSofa.u, fromPlane] + ring + +/-- The tangent frame component of a plane point is the vendor scalar product of its +coordinate pair with the vendor tangent `v`. -/ +theorem inner_tangentVector_eq_dot (q : Point) (s : ℝ) : + inner ℝ q (tangentVector (s : Real.Angle)) = + GerverSofa.dot (fromPlane q) (GerverSofa.v s) := by + simp only [tangentVector, MovingSofa.frame, PiLp.inner_apply, RCLike.inner_apply, conj_trivial, + Fin.sum_univ_two, Matrix.cons_val_zero, Matrix.cons_val_one, Real.Angle.cos_coe, + Real.Angle.sin_coe, GerverSofa.dot, GerverSofa.v, fromPlane] + ring + +/-- The angular frame normal is a smooth function of the angle. -/ +theorem contDiff_normalVector : ContDiff ℝ ∞ fun t : ℝ => normalVector (t : Real.Angle) := by + simp only [normalVector_coe_eq_toPlane] + exact contDiff_toPlane (Real.contDiff_cos.prodMk Real.contDiff_sin) + +/-- The angular frame tangent is a smooth function of the angle. -/ +theorem contDiff_tangentVector : + ContDiff ℝ ∞ fun t : ℝ => tangentVector (t : Real.Angle) := by + simp only [tangentVector_coe_eq_toPlane] + exact contDiff_toPlane (Real.contDiff_sin.neg.prodMk Real.contDiff_cos) + +/-! ### The paper path as a transported direct path + +The hypothesis `ContDiff ℝ 1 (path GerverSofa.PartB.params)` in the lemmas below is the +first conjunct of `MovingSofa.gerver_direct_path_regularity`, which lives in a later +module; passing it as a hypothesis keeps this file free of that dependency. -/ + +/-- The paper path is the coordinate image of the certified direct path. -/ +theorem paperGerverPath_eq_toPlane : + paperGerverPath = fun t => toPlane (path GerverSofa.PartB.params t) := rfl + +/-- The paper path differentiates by transporting the derivative of the direct path. -/ +theorem hasDerivAt_paperGerverPath (hC1 : ContDiff ℝ 1 (path GerverSofa.PartB.params)) + (t : ℝ) : + HasDerivAt paperGerverPath (toPlane (deriv (path GerverSofa.PartB.params) t)) t := + hasDerivAt_toPlane ((hC1.differentiable one_ne_zero t).hasDerivAt) + +/-- The derivative of the paper path is the transported derivative of the direct path. -/ +theorem deriv_paperGerverPath (hC1 : ContDiff ℝ 1 (path GerverSofa.PartB.params)) (t : ℝ) : + deriv paperGerverPath t = toPlane (deriv (path GerverSofa.PartB.params) t) := + (hasDerivAt_paperGerverPath hC1 t).deriv + +/-- The paper path is continuous. -/ +theorem continuous_paperGerverPath (hC1 : ContDiff ℝ 1 (path GerverSofa.PartB.params)) : + Continuous paperGerverPath := by + rw [paperGerverPath_eq_toPlane] + exact continuous_toPlane.comp hC1.continuous + +/-- The paper path is continuously differentiable. -/ +theorem continuous_deriv_paperGerverPath + (hC1 : ContDiff ℝ 1 (path GerverSofa.PartB.params)) : + Continuous (deriv paperGerverPath) := by + rw [funext (deriv_paperGerverPath hC1)] + exact continuous_toPlane.comp (hC1.continuous_deriv le_rfl) + +end Transport + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Gerver / Paper Set +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Gerver's paper-frame set, cut out by the explicit path of rotated hallways. -/ +def paperGerverSofa : Set Point := + (strips (Real.pi / 2)).1 ∩ (strips (Real.pi / 2)).2.2 ∩ + ⋂ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + (fun p ↦ rotationMap (t : Real.Angle) p + paperGerverPath t) '' hallway + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Gerver / Parameters +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The two Gerver switching angles and the right/left distinguished angles. -/ +def paperGerverConstants : (ℝ × ℝ) × (ℝ × ℝ) := + ((GerversSofa.φ, GerversSofa.θ), (GerversSofa.φ, Real.pi / 2 - GerversSofa.φ)) + +/-- The six endpoints of the five Gerver stages. -/ +def gerverStageTimes : Fin 6 → ℝ := + ![0, GerversSofa.φ, GerversSofa.θ, Real.pi / 2 - GerversSofa.θ, + Real.pi / 2 - GerversSofa.φ, Real.pi / 2] + +/-- The five closed stage intervals in their source order. -/ +def gerverStageIntervals (i : Fin 5) : Set ℝ := + Set.Icc (gerverStageTimes i.castSucc) (gerverStageTimes i.succ) + +/-- The exact direct 22-equation Gerver system, with the certified phase-map convention. -/ +def gerverDirectEquations (p : GerverSofa.Romik.Params) : Prop := + GerverSofa.Romik.Equations p + +/-- The exact closed rational box for the direct Gerver parameters. -/ +def gerverDirectBox : Set GerverSofa.Romik.Params := GerverSofa.Romik.box + +/-- The exact box bounds the second-stage linear coefficient `b₁` from below by `-53/100`. -/ +theorem gerverDirectBox_b1_lower_bound {p : GerverSofa.Romik.Params} (hp : p ∈ gerverDirectBox) : + (-53 : ℝ) / 100 ≤ p.b1 := by + dsimp only [gerverDirectBox, GerverSofa.Romik.box, GerverSofa.qR, Set.mem_ofPred_eq] at hp + obtain ⟨-, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, + -, -, -, -, hb1, -⟩ := hp + exact le_trans (by norm_num) hb1 + +/-- The exact box bounds the fourth-stage linear coefficient `d₁` from above by `33/25`. -/ +theorem gerverDirectBox_d1_upper_bound {p : GerverSofa.Romik.Params} (hp : p ∈ gerverDirectBox) : + p.d1 ≤ (33 : ℝ) / 25 := by + dsimp only [gerverDirectBox, GerverSofa.Romik.box, GerverSofa.qR, Set.mem_ofPred_eq] at hp + obtain ⟨-, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, + -, -, -, -, -, -, -, -, -, -, -, -, -, hd1, -⟩ := hp + exact le_trans hd1 (by norm_num) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Gerver / Parameter Dictionary +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Bundle the forward and reverse dictionaries between reduced and full Romik parameters. -/ +def gerverParameterDictionary : + (GerverSofa.Reduced.Params → GerverSofa.Romik.Params) × + (GerverSofa.Romik.Params → GerverSofa.Reduced.Params) := + (GerverSofa.PartF.Phases.dictionary, GerverSofa.PartF.Phases.undictionary) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Gerver / Partition +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The ten half-open Gerver phase intervals, indexed from zero. -/ +def gerverPhaseIntervals (j : Fin 10) : Set ℝ := + let lower (i : Fin 5) := Set.Ico (gerverStageTimes i.castSucc) (gerverStageTimes i.succ) + Fin.addCases (motive := fun _ ↦ Set ℝ) lower + (fun i ↦ (fun t ↦ Real.pi - t) '' lower i.rev) j + +/-- The ten Gerver phase intervals, written out as explicit half-open real intervals. -/ +theorem gerverPhaseIntervals_explicit (j : Fin 10) : + gerverPhaseIntervals j = + ![Set.Ico 0 GerversSofa.φ, + Set.Ico GerversSofa.φ GerversSofa.θ, + Set.Ico GerversSofa.θ (Real.pi / 2 - GerversSofa.θ), + Set.Ico (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2 - GerversSofa.φ), + Set.Ico (Real.pi / 2 - GerversSofa.φ) (Real.pi / 2), + Set.Ioc (Real.pi / 2) (Real.pi / 2 + GerversSofa.φ), + Set.Ioc (Real.pi / 2 + GerversSofa.φ) (Real.pi / 2 + GerversSofa.θ), + Set.Ioc (Real.pi / 2 + GerversSofa.θ) (Real.pi - GerversSofa.θ), + Set.Ioc (Real.pi - GerversSofa.θ) (Real.pi - GerversSofa.φ), + Set.Ioc (Real.pi - GerversSofa.φ) Real.pi] j := by + fin_cases j + all_goals simp [gerverPhaseIntervals, gerverStageTimes, Fin.addCases, Fin.rev] + all_goals congr 1 <;> ring + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Gerver / Reverse Physical Domain +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem gerver_reverse_physical_domain (p : GerverSofa.Romik.Params) + (hp : p ∈ gerverDirectBox) : + 0 < (gerverParameterDictionary.2 p).phi ∧ + (gerverParameterDictionary.2 p).phi < (gerverParameterDictionary.2 p).theta ∧ + (gerverParameterDictionary.2 p).theta < Real.pi / 4 ∧ + 0 < (gerverParameterDictionary.2 p).a ∧ 0 < (gerverParameterDictionary.2 p).b ∧ + (39 : ℝ) / 1000 ≤ (gerverParameterDictionary.2 p).phi ∧ + (gerverParameterDictionary.2 p).phi ≤ (40 : ℝ) / 1000 := by + dsimp [gerverDirectBox, GerverSofa.Romik.box, GerverSofa.qR] at hp + rcases hp with ⟨_, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, + hb1lo, hb1hi, hb2lo, _, _, _, _, _, + _, _, _, _, _, _, _, _, + hphilo, hphihi, hthetalo, hthetahi⟩ + norm_num at hb1lo hb1hi hb2lo hphilo hphihi hthetalo hthetahi + have hphiLo : (39 : ℝ) / 1000 ≤ p.phi := by linarith only [hphilo] + have hphiHi : p.phi ≤ (1 : ℝ) / 25 := by linarith only [hphihi] + have hphiPos : (0 : ℝ) < p.phi := by linarith only [hphiLo] + have hthetaLo : (3 : ℝ) / 5 ≤ p.theta := by linarith only [hthetalo] + have hthetaHi : p.theta ≤ (7 : ℝ) / 10 := by linarith only [hthetahi] + have hb1Lo : (-66 : ℝ) / 125 ≤ p.b1 := by linarith only [hb1lo] + have hb1Hi : p.b1 ≤ (-527 : ℝ) / 1000 := by linarith only [hb1hi] + have hb2Lo : (23 : ℝ) / 25 ≤ p.b2 := by linarith only [hb2lo] + have hAPos : (0 : ℝ) < p.phi - 1 - 2 * p.b1 := by linarith only [hphiLo, hb1Hi] + have hBPos : + (0 : ℝ) < + p.b2 + 1 / 2 - (1 + (p.phi - 1 - 2 * p.b1)) * p.phi / 2 + p.phi ^ 2 / 4 := by + have hprod : (0 : ℝ) ≤ (p.b1 + 66 / 125) * p.phi := + mul_nonneg (by linarith only [hb1Lo]) hphiPos.le + have hsq : (0 : ℝ) ≤ p.phi * (1 / 25 - p.phi) := + mul_nonneg hphiPos.le (by linarith only [hphiHi]) + nlinarith only [hb2Lo, hprod, hsq, hphiPos, hphiHi] + refine ⟨hphiPos, show p.phi < p.theta from ?_, + show p.theta < Real.pi / 4 from ?_, hAPos, hBPos, hphiLo, + show p.phi ≤ (40 : ℝ) / 1000 from ?_⟩ + · linarith only [hphiHi, hthetaLo] + · nlinarith only [hthetaHi, Real.pi_gt_three] + · linarith only [hphiHi] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Matching and `C¹` regularity of the direct Gerver path + +The vendor library assembles the Gerver path `GerverSofa.Romik.path` from five smooth +branches `path1, …, path5` switched at `φ < θ < π/2 - θ < π/2 - φ`. This file supplies the +differential interface for those branches — each `pathᵢ` has derivative +`rot t (alphaBetaᵢ p t)` — and deduces from the direct equations that values and derivatives +agree at all four switches, hence that `path p` is continuously differentiable with +`path p 0 = 0`. + +It also records, for each stage, that the glued path agrees with its analytic branch on the +*closed* stage interval and that `deriv (path p)` is the corresponding `rot t (alphaBetaᵢ p t)` +there, endpoints included. +-/ + +/-! ### Differential interface for the five direct branches -/ + +@[expose] public section + +noncomputable section + +open scoped ContDiff + +namespace GerverSofa.Romik + +/-- Rotating a differentiable body-frame curve and translating it differentiates by the +product rule, contributing the infinitesimal rotation `(z₁, z₂) ↦ (-z₂, z₁)`. -/ +theorem hasDerivAt_addK_rot {z₁ z₂ : ℝ → ℝ} {z₁' z₂' k₁ k₂ t : ℝ} + (hz₁ : HasDerivAt z₁ z₁' t) (hz₂ : HasDerivAt z₂ z₂' t) : + HasDerivAt (fun s => addK (rot s (z₁ s, z₂ s)) k₁ k₂) + (rot t (z₁' - z₂ t, z₂' + z₁ t)) t := by + apply HasDerivAt.prodMk + · change HasDerivAt (fun s => Real.cos s * z₁ s - Real.sin s * z₂ s + k₁) + (Real.cos t * (z₁' - z₂ t) - Real.sin t * (z₂' + z₁ t)) t + exact ((((Real.hasDerivAt_cos t).fun_mul hz₁).fun_sub + ((Real.hasDerivAt_sin t).fun_mul hz₂)).fun_add + (hasDerivAt_const t k₁)).congr_deriv (by ring) + · change HasDerivAt (fun s => Real.sin s * z₁ s + Real.cos s * z₂ s + k₂) + (Real.sin t * (z₁' - z₂ t) + Real.cos t * (z₂' + z₁ t)) t + exact ((((Real.hasDerivAt_sin t).fun_mul hz₁).fun_add + ((Real.hasDerivAt_cos t).fun_mul hz₂)).fun_add + (hasDerivAt_const t k₂)).congr_deriv (by ring) + +private theorem hasDerivAt_mul_self (t : ℝ) : HasDerivAt (fun s : ℝ => s * s) (t + t) t := by + simpa only [id_eq, one_mul, mul_one] using (hasDerivAt_id t).fun_mul (hasDerivAt_id t) + +/-- The first direct branch has body-frame velocity `alphaBeta1`. -/ +theorem hasDerivAt_path1 (p : Params) (t : ℝ) : + HasDerivAt (path1 p) (rot t (alphaBeta1 p t)) t := by + have hz₁ : HasDerivAt (fun s => p.a1 * Real.cos s + p.a2 * Real.sin s - 1) + (-p.a1 * Real.sin t + p.a2 * Real.cos t) t := + ((((Real.hasDerivAt_cos t).const_mul p.a1).fun_add + ((Real.hasDerivAt_sin t).const_mul p.a2)).fun_sub + (hasDerivAt_const t (1 : ℝ))).congr_deriv (by ring) + have hz₂ : HasDerivAt (fun s => -p.a2 * Real.cos s + p.a1 * Real.sin s - 1 / 2) + (p.a2 * Real.sin t + p.a1 * Real.cos t) t := + ((((Real.hasDerivAt_cos t).const_mul (-p.a2)).fun_add + ((Real.hasDerivAt_sin t).const_mul p.a1)).fun_sub + (hasDerivAt_const t (1 / 2 : ℝ))).congr_deriv (by ring) + refine (hasDerivAt_addK_rot (k₁ := p.k11) (k₂ := p.k12) hz₁ hz₂).congr_deriv ?_ + apply congrArg (rot t) + ext <;> simp [alphaBeta1] <;> ring + +/-- The second direct branch has body-frame velocity `alphaBeta2`. -/ +theorem hasDerivAt_path2 (p : Params) (t : ℝ) : + HasDerivAt (path2 p) (rot t (alphaBeta2 p t)) t := by + have hz₁ : HasDerivAt (fun s => -(1 / 4 : ℝ) * s * s + p.b1 * s + p.b2) + (-(1 / 2 : ℝ) * t + p.b1) t := by + have h := (((hasDerivAt_mul_self t).const_mul (-(1 / 4 : ℝ))).fun_add + ((hasDerivAt_id t).const_mul p.b1)).fun_add (hasDerivAt_const t p.b2) + simpa only [id_eq, mul_assoc] using h.congr_deriv (by ring) + have hz₂ : HasDerivAt (fun s => (1 / 2 : ℝ) * s - p.b1 - 1) (1 / 2 : ℝ) t := + ((((hasDerivAt_id t).const_mul (1 / 2 : ℝ)).fun_sub (hasDerivAt_const t p.b1)).fun_sub + (hasDerivAt_const t (1 : ℝ))).congr_deriv (by simp) + refine (hasDerivAt_addK_rot (k₁ := p.k21) (k₂ := p.k22) hz₁ hz₂).congr_deriv ?_ + apply congrArg (rot t) + ext <;> simp [alphaBeta2] <;> ring + +/-- The third direct branch has body-frame velocity `alphaBeta3`. -/ +theorem hasDerivAt_path3 (p : Params) (t : ℝ) : + HasDerivAt (path3 p) (rot t (alphaBeta3 p t)) t := by + have hz₁ : HasDerivAt (fun s => p.c1 - s) (-1) t := + ((hasDerivAt_const t p.c1).fun_sub (hasDerivAt_id t)).congr_deriv (by simp) + have hz₂ : HasDerivAt (fun s => p.c2 + s) 1 t := + ((hasDerivAt_const t p.c2).fun_add (hasDerivAt_id t)).congr_deriv (by simp) + refine (hasDerivAt_addK_rot (k₁ := p.k31) (k₂ := p.k32) hz₁ hz₂).congr_deriv ?_ + apply congrArg (rot t) + ext <;> simp [alphaBeta3] <;> ring + +/-- The fourth direct branch has body-frame velocity `alphaBeta4`. -/ +theorem hasDerivAt_path4 (p : Params) (t : ℝ) : + HasDerivAt (path4 p) (rot t (alphaBeta4 p t)) t := by + have hz₁ : HasDerivAt (fun s => -(1 / 2 : ℝ) * s + p.d1 - 1) (-(1 / 2 : ℝ)) t := + ((((hasDerivAt_id t).const_mul (-(1 / 2 : ℝ))).fun_add (hasDerivAt_const t p.d1)).fun_sub + (hasDerivAt_const t (1 : ℝ))).congr_deriv (by simp) + have hz₂ : HasDerivAt (fun s => -(1 / 4 : ℝ) * s * s + p.d1 * s + p.d2) + (-(1 / 2 : ℝ) * t + p.d1) t := by + have h := (((hasDerivAt_mul_self t).const_mul (-(1 / 4 : ℝ))).fun_add + ((hasDerivAt_id t).const_mul p.d1)).fun_add (hasDerivAt_const t p.d2) + simpa only [id_eq, mul_assoc] using h.congr_deriv (by ring) + refine (hasDerivAt_addK_rot (k₁ := p.k41) (k₂ := p.k42) hz₁ hz₂).congr_deriv ?_ + apply congrArg (rot t) + ext <;> simp [alphaBeta4] <;> ring + +/-- The fifth direct branch has body-frame velocity `alphaBeta5`. -/ +theorem hasDerivAt_path5 (p : Params) (t : ℝ) : + HasDerivAt (path5 p) (rot t (alphaBeta5 p t)) t := by + have hz₁ : HasDerivAt (fun s => p.e1 * Real.cos s + p.e2 * Real.sin s - 1 / 2) + (-p.e1 * Real.sin t + p.e2 * Real.cos t) t := + ((((Real.hasDerivAt_cos t).const_mul p.e1).fun_add + ((Real.hasDerivAt_sin t).const_mul p.e2)).fun_sub + (hasDerivAt_const t (1 / 2 : ℝ))).congr_deriv (by ring) + have hz₂ : HasDerivAt (fun s => -p.e2 * Real.cos s + p.e1 * Real.sin s - 1) + (p.e2 * Real.sin t + p.e1 * Real.cos t) t := + ((((Real.hasDerivAt_cos t).const_mul (-p.e2)).fun_add + ((Real.hasDerivAt_sin t).const_mul p.e1)).fun_sub + (hasDerivAt_const t (1 : ℝ))).congr_deriv (by ring) + refine (hasDerivAt_addK_rot (k₁ := p.k51) (k₂ := p.k52) hz₁ hz₂).congr_deriv ?_ + apply congrArg (rot t) + ext <;> simp [alphaBeta5] <;> ring + +/-- Continuity of the body-frame velocity field on each branch, transported to the world +frame by the rotation. -/ +theorem continuous_rot_alphaBeta1 (p : Params) : + Continuous fun t : ℝ => rot t (alphaBeta1 p t) := by + unfold rot alphaBeta1; fun_prop + +@[inherit_doc continuous_rot_alphaBeta1] +theorem continuous_rot_alphaBeta2 (p : Params) : + Continuous fun t : ℝ => rot t (alphaBeta2 p t) := by + unfold rot alphaBeta2; fun_prop + +@[inherit_doc continuous_rot_alphaBeta1] +theorem continuous_rot_alphaBeta3 (p : Params) : + Continuous fun t : ℝ => rot t (alphaBeta3 p t) := by + unfold rot alphaBeta3; fun_prop + +@[inherit_doc continuous_rot_alphaBeta1] +theorem continuous_rot_alphaBeta4 (p : Params) : + Continuous fun t : ℝ => rot t (alphaBeta4 p t) := by + unfold rot alphaBeta4; fun_prop + +@[inherit_doc continuous_rot_alphaBeta1] +theorem continuous_rot_alphaBeta5 (p : Params) : + Continuous fun t : ℝ => rot t (alphaBeta5 p t) := by + unfold rot alphaBeta5; fun_prop + +/-- Equation 32 of the direct system. The remaining scalar consequences used here are +already extracted by the vendor in `GerverSofa/KernelOnly/EndpointSymmetry.lean`. -/ +theorem k11_eq_one_sub_a1_of_equations {p : Params} (heq : Equations p) : + p.k11 = 1 - p.a1 := by + have h5 := congrFun heq (5 : Fin 22) + simp [system] at h5 + linarith + +/-! ### Reflection identities for the body-frame velocities + +With `S (r, s) = (-s, -r)` the direct equations give `w₃(π/2 - t) = S w₃(t)`, +`w₄(π/2 - t) = S w₂(t)` and `w₅(π/2 - t) = S w₁(t)`. -/ + +/-- The middle branch velocity is anti-symmetric about `π/4`. -/ +theorem alphaBeta3_pi_div_two_sub {p : Params} (heq : Equations p) (t : ℝ) : + alphaBeta3 p (Real.pi / 2 - t) = (-(alphaBeta3 p t).2, -(alphaBeta3 p t).1) := by + have hc2 := c2_eq_c1_sub_halfPi_of_equations heq + simp only [alphaBeta3, Prod.mk.injEq] + constructor <;> rw [hc2] <;> ring + +/-- The fourth branch velocity reflects onto the second. -/ +theorem alphaBeta4_pi_div_two_sub {p : Params} (heq : Equations p) (t : ℝ) : + alphaBeta4 p (Real.pi / 2 - t) = (-(alphaBeta2 p t).2, -(alphaBeta2 p t).1) := by + have hd1 := d1_eq_quarterPi_sub_b1_of_equations heq + have hd2 := d2_eq_b2_add_quarterPi_correction_of_equations heq + simp only [alphaBeta4, alphaBeta2, Prod.mk.injEq] + constructor <;> simp only [hd1, hd2] <;> ring + +/-- The fifth branch velocity reflects onto the first. -/ +theorem alphaBeta5_pi_div_two_sub {p : Params} (heq : Equations p) (t : ℝ) : + alphaBeta5 p (Real.pi / 2 - t) = (-(alphaBeta1 p t).2, -(alphaBeta1 p t).1) := by + have he1 := e1_eq_a1_of_equations heq + have he2 := e2_eq_neg_a2_of_equations heq + simp only [alphaBeta5, alphaBeta1, Prod.mk.injEq, Real.sin_pi_div_two_sub, + Real.cos_pi_div_two_sub] + constructor <;> simp only [he1, he2] <;> ring + +/-- Velocity matching at the third switch `π/2 - θ`, by reflecting the match at `θ`. -/ +theorem alphaBeta34_eq {p : Params} (heq : Equations p) : + alphaBeta3 p (Real.pi / 2 - p.theta) = alphaBeta4 p (Real.pi / 2 - p.theta) := by + rw [alphaBeta3_pi_div_two_sub heq, alphaBeta4_pi_div_two_sub heq, + GerverSofa.PartF.Phases.alphaBeta23_eq heq] + +/-- Velocity matching at the fourth switch `π/2 - φ`, by reflecting the match at `φ`. -/ +theorem alphaBeta45_eq {p : Params} (heq : Equations p) : + alphaBeta4 p (Real.pi / 2 - p.phi) = alphaBeta5 p (Real.pi / 2 - p.phi) := by + rw [alphaBeta4_pi_div_two_sub heq, alphaBeta5_pi_div_two_sub heq, + GerverSofa.PartF.Phases.alphaBeta12_eq heq] + +/-! ### Branch selection on the closed stages + +Each stage interval is closed, so the two stages adjacent to a switch both contain it. The +glued `path` picks the *earlier* branch there, and the certified value-matching equations +say that this is also the later branch's value. -/ + +/-- The glued direct path unfolds to the nested selection of its five analytic branches. -/ +theorem path_eq_ite (p : Params) (t : ℝ) : + path p t = + if t ≤ p.phi then path1 p t + else if t ≤ p.theta then path2 p t + else if t ≤ Real.pi / 2 - p.theta then path3 p t + else if t ≤ Real.pi / 2 - p.phi then path4 p t else path5 p t := rfl + +/-- On the closed first stage `[0, φ]` the glued path is the first branch. -/ +theorem path_eq_path1_of_mem_Icc (p : Params) {s : ℝ} (hs : s ∈ Set.Icc (0 : ℝ) p.phi) : + path p s = path1 p s := by + rw [path_eq_ite, ite_eq_left hs.2] + +/-- On the closed second stage `[φ, θ]` the glued path is the second branch; at the left +endpoint this is the certified value match `match_path12_of_equations`. -/ +theorem path_eq_path2_of_mem_Icc {p : Params} (heq : Equations p) {s : ℝ} + (hs : s ∈ Set.Icc p.phi p.theta) : path p s = path2 p s := by + rw [path_eq_ite] + by_cases hc : s ≤ p.phi + · obtain rfl : s = p.phi := le_antisymm hc hs.1 + rw [ite_eq_left hc] + exact match_path12_of_equations heq + · rw [ite_eq_right hc, ite_eq_left hs.2] + +/-- On the closed third stage `[θ, π/2 - θ]` the glued path is the third branch; at the left +endpoint this is the certified value match `match_path23_of_equations`. -/ +theorem path_eq_path3_of_mem_Icc {p : Params} (heq : Equations p) (hpt : p.phi < p.theta) + {s : ℝ} (hs : s ∈ Set.Icc p.theta (Real.pi / 2 - p.theta)) : path p s = path3 p s := by + have hb := hs.1 + rw [path_eq_ite, ite_eq_right (by linarith : ¬ s ≤ p.phi)] + by_cases hc : s ≤ p.theta + · obtain rfl : s = p.theta := le_antisymm hc hs.1 + rw [ite_eq_left hc] + exact match_path23_of_equations heq + · rw [ite_eq_right hc, ite_eq_left hs.2] + +/-- On the closed fourth stage `[π/2 - θ, π/2 - φ]` the glued path is the fourth branch; at +the left endpoint this is the certified value match `match_path34_of_equations`. -/ +theorem path_eq_path4_of_mem_Icc {p : Params} (heq : Equations p) (hpt : p.phi < p.theta) + (hq : p.theta < Real.pi / 4) {s : ℝ} + (hs : s ∈ Set.Icc (Real.pi / 2 - p.theta) (Real.pi / 2 - p.phi)) : + path p s = path4 p s := by + have hb := hs.1 + rw [path_eq_ite, ite_eq_right (by linarith : ¬ s ≤ p.phi), + ite_eq_right (by linarith : ¬ s ≤ p.theta)] + by_cases hc : s ≤ Real.pi / 2 - p.theta + · obtain rfl : s = Real.pi / 2 - p.theta := le_antisymm hc hs.1 + rw [ite_eq_left hc] + exact match_path34_of_equations heq + · rw [ite_eq_right hc, ite_eq_left hs.2] + +/-- On the closed fifth stage `[π/2 - φ, π/2]` the glued path is the fifth branch; at the +left endpoint this is the certified value match `match_path45_of_equations`. -/ +theorem path_eq_path5_of_mem_Icc {p : Params} (heq : Equations p) (hpt : p.phi < p.theta) + (hq : p.theta < Real.pi / 4) {s : ℝ} + (hs : s ∈ Set.Icc (Real.pi / 2 - p.phi) (Real.pi / 2)) : path p s = path5 p s := by + have hb := hs.1 + rw [path_eq_ite, ite_eq_right (by linarith : ¬ s ≤ p.phi), + ite_eq_right (by linarith : ¬ s ≤ p.theta), + ite_eq_right (by linarith : ¬ s ≤ Real.pi / 2 - p.theta)] + by_cases hc : s ≤ Real.pi / 2 - p.phi + · obtain rfl : s = Real.pi / 2 - p.phi := le_antisymm hc hs.1 + rw [ite_eq_left hc] + exact match_path45_of_equations heq + · rw [ite_eq_right hc] + +/-! ### Smoothness of the branches and of their body-frame velocities -/ + +/-- The first analytic branch is smooth on all of `ℝ`. -/ +theorem contDiff_path1 (p : Params) : ContDiff ℝ ∞ (path1 p) := by + unfold path1 addK rot; fun_prop + +@[inherit_doc contDiff_path1] +theorem contDiff_path2 (p : Params) : ContDiff ℝ ∞ (path2 p) := by + unfold path2 addK rot; fun_prop + +@[inherit_doc contDiff_path1] +theorem contDiff_path3 (p : Params) : ContDiff ℝ ∞ (path3 p) := by + unfold path3 addK rot; fun_prop + +@[inherit_doc contDiff_path1] +theorem contDiff_path4 (p : Params) : ContDiff ℝ ∞ (path4 p) := by + unfold path4 addK rot; fun_prop + +@[inherit_doc contDiff_path1] +theorem contDiff_path5 (p : Params) : ContDiff ℝ ∞ (path5 p) := by + unfold path5 addK rot; fun_prop + +/-- The first body-frame velocity pair is smooth on all of `ℝ`. -/ +theorem contDiff_alphaBeta1 (p : Params) : ContDiff ℝ ∞ (alphaBeta1 p) := by + unfold alphaBeta1; fun_prop + +@[inherit_doc contDiff_alphaBeta1] +theorem contDiff_alphaBeta2 (p : Params) : ContDiff ℝ ∞ (alphaBeta2 p) := by + unfold alphaBeta2; fun_prop + +@[inherit_doc contDiff_alphaBeta1] +theorem contDiff_alphaBeta3 (p : Params) : ContDiff ℝ ∞ (alphaBeta3 p) := by + unfold alphaBeta3; fun_prop + +@[inherit_doc contDiff_alphaBeta1] +theorem contDiff_alphaBeta4 (p : Params) : ContDiff ℝ ∞ (alphaBeta4 p) := by + unfold alphaBeta4; fun_prop + +@[inherit_doc contDiff_alphaBeta1] +theorem contDiff_alphaBeta5 (p : Params) : ContDiff ℝ ∞ (alphaBeta5 p) := by + unfold alphaBeta5; fun_prop + +/-! ### The stage derivatives, endpoints included + +A nondegenerate closed interval has a unique tangent direction at each of its points, +including its endpoints, so a `C¹` function agreeing there with a differentiable curve +already has that curve's derivative at every point of the interval. -/ + +/-- If the `C¹` glued path agrees on a nondegenerate closed interval with a curve whose +derivative is `rot s (W s)`, then that is its derivative everywhere on the interval, +endpoints included. -/ +theorem deriv_path_of_eqOn_Icc {p : Params} (hC1 : ContDiff ℝ 1 (path p)) + {X W : ℝ → Point} {a b t : ℝ} (hab : a < b) + (hX : ∀ s, HasDerivAt X (rot s (W s)) s) (hXe : ∀ s ∈ Set.Icc a b, path p s = X s) + (ht : t ∈ Set.Icc a b) : deriv (path p) t = rot t (W t) := by + have h1 : HasDerivWithinAt (path p) (deriv (path p) t) (Set.Icc a b) t := + ((hC1.differentiable one_ne_zero t).hasDerivAt).hasDerivWithinAt + have h2 : HasDerivWithinAt (path p) (rot t (W t)) (Set.Icc a b) t := + ((hX t).hasDerivWithinAt).congr hXe (hXe t ht) + exact (uniqueDiffOn_Icc hab t ht).eq_deriv _ h1 h2 + +/-- On the closed first stage the glued path has body-frame velocity `alphaBeta1`. -/ +theorem deriv_path_eq_rot_alphaBeta1 {p : Params} (hC1 : ContDiff ℝ 1 (path p)) + (hphi : 0 < p.phi) {t : ℝ} (ht : t ∈ Set.Icc (0 : ℝ) p.phi) : + deriv (path p) t = rot t (alphaBeta1 p t) := + deriv_path_of_eqOn_Icc hC1 hphi (hasDerivAt_path1 p) + (fun _ hs => path_eq_path1_of_mem_Icc p hs) ht + +/-- On the closed second stage the glued path has body-frame velocity `alphaBeta2`. -/ +theorem deriv_path_eq_rot_alphaBeta2 {p : Params} (hC1 : ContDiff ℝ 1 (path p)) + (heq : Equations p) (hpt : p.phi < p.theta) {t : ℝ} (ht : t ∈ Set.Icc p.phi p.theta) : + deriv (path p) t = rot t (alphaBeta2 p t) := + deriv_path_of_eqOn_Icc hC1 hpt (hasDerivAt_path2 p) + (fun _ hs => path_eq_path2_of_mem_Icc heq hs) ht + +/-- On the closed third stage the glued path has body-frame velocity `alphaBeta3`. -/ +theorem deriv_path_eq_rot_alphaBeta3 {p : Params} (hC1 : ContDiff ℝ 1 (path p)) + (heq : Equations p) (hpt : p.phi < p.theta) (hq : p.theta < Real.pi / 4) {t : ℝ} + (ht : t ∈ Set.Icc p.theta (Real.pi / 2 - p.theta)) : + deriv (path p) t = rot t (alphaBeta3 p t) := + deriv_path_of_eqOn_Icc hC1 (by linarith) (hasDerivAt_path3 p) + (fun _ hs => path_eq_path3_of_mem_Icc heq hpt hs) ht + +/-- On the closed fourth stage the glued path has body-frame velocity `alphaBeta4`. -/ +theorem deriv_path_eq_rot_alphaBeta4 {p : Params} (hC1 : ContDiff ℝ 1 (path p)) + (heq : Equations p) (hpt : p.phi < p.theta) (hq : p.theta < Real.pi / 4) {t : ℝ} + (ht : t ∈ Set.Icc (Real.pi / 2 - p.theta) (Real.pi / 2 - p.phi)) : + deriv (path p) t = rot t (alphaBeta4 p t) := + deriv_path_of_eqOn_Icc hC1 (by linarith) (hasDerivAt_path4 p) + (fun _ hs => path_eq_path4_of_mem_Icc heq hpt hq hs) ht + +/-- On the closed fifth stage the glued path has body-frame velocity `alphaBeta5`. -/ +theorem deriv_path_eq_rot_alphaBeta5 {p : Params} (hC1 : ContDiff ℝ 1 (path p)) + (heq : Equations p) (hphi : 0 < p.phi) (hpt : p.phi < p.theta) + (hq : p.theta < Real.pi / 4) {t : ℝ} + (ht : t ∈ Set.Icc (Real.pi / 2 - p.phi) (Real.pi / 2)) : + deriv (path p) t = rot t (alphaBeta5 p t) := + deriv_path_of_eqOn_Icc hC1 (by linarith) (hasDerivAt_path5 p) + (fun _ hs => path_eq_path5_of_mem_Icc heq hpt hq hs) ht + +end GerverSofa.Romik + +namespace MovingSofa + +open GerverSofa.Romik + +/-- The five explicit Romik path branches for a parameter tuple. -/ +def gerverDirectBranches (p : GerverSofa.Romik.Params) : Fin 5 → ℝ → GerverSofa.Point := + ![GerverSofa.Romik.path1 p, GerverSofa.Romik.path2 p, GerverSofa.Romik.path3 p, + GerverSofa.Romik.path4 p, GerverSofa.Romik.path5 p] + +/-- The four switching times separating the explicit Romik path branches. -/ +def gerverDirectSwitches (p : GerverSofa.Romik.Params) : Fin 4 → ℝ := + ![p.phi, p.theta, Real.pi / 2 - p.theta, Real.pi / 2 - p.phi] + +theorem gerver_direct_path_regularity (p : GerverSofa.Romik.Params) + (hp : p ∈ gerverDirectBox) (heq : gerverDirectEquations p) : + ContDiff ℝ 1 (GerverSofa.Romik.path p) ∧ GerverSofa.Romik.path p 0 = 0 ∧ + ∀ i : Fin 4, + gerverDirectBranches p i.castSucc (gerverDirectSwitches p i) = + gerverDirectBranches p i.succ (gerverDirectSwitches p i) ∧ + deriv (gerverDirectBranches p i.castSucc) (gerverDirectSwitches p i) = + deriv (gerverDirectBranches p i.succ) (gerverDirectSwitches p i) := by + -- The switching angles are strictly ordered by the reverse-domain bounds. + have hdom := gerver_reverse_physical_domain p hp + have hphi_pos : 0 < p.phi := hdom.1 + have hphi_theta : p.phi < p.theta := hdom.2.1 + have htheta_quarter : p.theta < Real.pi / 4 := hdom.2.2.1 + have htheta_eta : p.theta < Real.pi / 2 - p.theta := by linarith + have heta_tau : Real.pi / 2 - p.theta < Real.pi / 2 - p.phi := by linarith + -- The body-frame velocity matches at the four switches. + have hw12 := GerverSofa.PartF.Phases.alphaBeta12_eq (p := p) heq + have hw23 := GerverSofa.PartF.Phases.alphaBeta23_eq (p := p) heq + have hw34 := alphaBeta34_eq (p := p) heq + have hw45 := alphaBeta45_eq (p := p) heq + -- The four positional matches, from the certified vendor extraction. + have hv12 := match_path12_of_equations (p := p) heq + have hv23 := match_path23_of_equations (p := p) heq + have hv34 := match_path34_of_equations (p := p) heq + have hv45 := match_path45_of_equations (p := p) heq + -- Glue the branches from the last switch backwards. + have hD45 : ∀ t : ℝ, HasDerivAt + (fun s => if s ≤ Real.pi / 2 - p.phi then path4 p s else path5 p s) + (if t ≤ Real.pi / 2 - p.phi then rot t (alphaBeta4 p t) + else rot t (alphaBeta5 p t)) t := + hasDerivAt_if_le (hasDerivAt_path4 p) (hasDerivAt_path5 p) hv45 + (congrArg (rot (Real.pi / 2 - p.phi)) hw45) + have hC45 : Continuous fun t : ℝ => + if t ≤ Real.pi / 2 - p.phi then rot t (alphaBeta4 p t) else rot t (alphaBeta5 p t) := + (continuous_rot_alphaBeta4 p).if_le (continuous_rot_alphaBeta5 p) + continuous_id continuous_const (by + intro t ht + subst ht + exact congrArg (rot (Real.pi / 2 - p.phi)) hw45) + have hD345 : ∀ t : ℝ, HasDerivAt + (fun s => if s ≤ Real.pi / 2 - p.theta then path3 p s + else if s ≤ Real.pi / 2 - p.phi then path4 p s else path5 p s) + (if t ≤ Real.pi / 2 - p.theta then rot t (alphaBeta3 p t) + else if t ≤ Real.pi / 2 - p.phi then rot t (alphaBeta4 p t) + else rot t (alphaBeta5 p t)) t := + hasDerivAt_if_le (hasDerivAt_path3 p) hD45 + (by rw [ite_eq_left heta_tau.le]; exact hv34) + (by rw [ite_eq_left heta_tau.le] + exact congrArg (rot (Real.pi / 2 - p.theta)) hw34) + have hC345 : Continuous fun t : ℝ => + if t ≤ Real.pi / 2 - p.theta then rot t (alphaBeta3 p t) + else if t ≤ Real.pi / 2 - p.phi then rot t (alphaBeta4 p t) + else rot t (alphaBeta5 p t) := + (continuous_rot_alphaBeta3 p).if_le hC45 continuous_id continuous_const (by + intro t ht + subst ht + rw [ite_eq_left heta_tau.le] + exact congrArg (rot (Real.pi / 2 - p.theta)) hw34) + have hD2345 : ∀ t : ℝ, HasDerivAt + (fun s => if s ≤ p.theta then path2 p s + else if s ≤ Real.pi / 2 - p.theta then path3 p s + else if s ≤ Real.pi / 2 - p.phi then path4 p s else path5 p s) + (if t ≤ p.theta then rot t (alphaBeta2 p t) + else if t ≤ Real.pi / 2 - p.theta then rot t (alphaBeta3 p t) + else if t ≤ Real.pi / 2 - p.phi then rot t (alphaBeta4 p t) + else rot t (alphaBeta5 p t)) t := + hasDerivAt_if_le (hasDerivAt_path2 p) hD345 + (by rw [ite_eq_left htheta_eta.le]; exact hv23) + (by rw [ite_eq_left htheta_eta.le] + exact congrArg (rot p.theta) hw23) + have hC2345 : Continuous fun t : ℝ => + if t ≤ p.theta then rot t (alphaBeta2 p t) + else if t ≤ Real.pi / 2 - p.theta then rot t (alphaBeta3 p t) + else if t ≤ Real.pi / 2 - p.phi then rot t (alphaBeta4 p t) + else rot t (alphaBeta5 p t) := + (continuous_rot_alphaBeta2 p).if_le hC345 continuous_id continuous_const (by + intro t ht + subst ht + rw [ite_eq_left htheta_eta.le] + exact congrArg (rot p.theta) hw23) + have hDpath : ∀ t : ℝ, HasDerivAt (path p) + (if t ≤ p.phi then rot t (alphaBeta1 p t) + else if t ≤ p.theta then rot t (alphaBeta2 p t) + else if t ≤ Real.pi / 2 - p.theta then rot t (alphaBeta3 p t) + else if t ≤ Real.pi / 2 - p.phi then rot t (alphaBeta4 p t) + else rot t (alphaBeta5 p t)) t := + hasDerivAt_if_le (hasDerivAt_path1 p) hD2345 + (by rw [ite_eq_left hphi_theta.le]; exact hv12) + (by rw [ite_eq_left hphi_theta.le] + exact congrArg (rot p.phi) hw12) + have hCpath : Continuous fun t : ℝ => + if t ≤ p.phi then rot t (alphaBeta1 p t) + else if t ≤ p.theta then rot t (alphaBeta2 p t) + else if t ≤ Real.pi / 2 - p.theta then rot t (alphaBeta3 p t) + else if t ≤ Real.pi / 2 - p.phi then rot t (alphaBeta4 p t) + else rot t (alphaBeta5 p t) := + (continuous_rot_alphaBeta1 p).if_le hC2345 continuous_id continuous_const (by + intro t ht + subst ht + rw [ite_eq_left hphi_theta.le] + exact congrArg (rot p.phi) hw12) + -- The four derivative matches. + have hdv12 : deriv (path1 p) p.phi = deriv (path2 p) p.phi := by + rw [(hasDerivAt_path1 p p.phi).deriv, (hasDerivAt_path2 p p.phi).deriv, hw12] + have hdv23 : deriv (path2 p) p.theta = deriv (path3 p) p.theta := by + rw [(hasDerivAt_path2 p p.theta).deriv, (hasDerivAt_path3 p p.theta).deriv, hw23] + have hdv34 : deriv (path3 p) (Real.pi / 2 - p.theta) = + deriv (path4 p) (Real.pi / 2 - p.theta) := by + rw [(hasDerivAt_path3 p _).deriv, (hasDerivAt_path4 p _).deriv, hw34] + have hdv45 : deriv (path4 p) (Real.pi / 2 - p.phi) = + deriv (path5 p) (Real.pi / 2 - p.phi) := by + rw [(hasDerivAt_path4 p _).deriv, (hasDerivAt_path5 p _).deriv, hw45] + refine ⟨contDiff_one_of_hasDerivAt hDpath hCpath, ?_, ?_⟩ + · -- `0 < φ` selects the first branch, and the normalizations make it vanish at `0`. + have hk11 := k11_eq_one_sub_a1_of_equations (p := p) heq + have hk12 := k12_eq_quarter_of_equations (p := p) heq + have ha2 := a2_eq_neg_quarter_of_equations (p := p) heq + have h0 : path p 0 = path1 p 0 := by + unfold GerverSofa.Romik.path + exact ite_eq_left hphi_pos.le + rw [h0] + simp only [path1, addK, rot, Real.cos_zero, Real.sin_zero, Prod.ext_iff, Prod.fst_zero, + Prod.snd_zero] + constructor <;> linarith + · intro i + fin_cases i + · exact ⟨hv12, hdv12⟩ + · exact ⟨hv23, hdv23⟩ + · exact ⟨hv34, hdv34⟩ + · exact ⟨hv45, hdv45⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Gerver / Literal Sets +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The outer cap defined by all upper path support constraints and the horizontal base. -/ +def gerverOuterCap : Set Point := + {q | 0 ≤ q 1 ∧ ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + inner ℝ q (normalVector (t : Real.Angle)) ≤ + inner ℝ (paperGerverPath t) (normalVector (t : Real.Angle)) + 1 ∧ + inner ℝ q (tangentVector (t : Real.Angle)) ≤ + inner ℝ (paperGerverPath t) (tangentVector (t : Real.Angle)) + 1} + +/-- The union of strict forbidden inner corners above the horizontal base along the Gerver +path. -/ +def gerverLiteralNiche : Set Point := + {q | 0 ≤ q 1 ∧ ∃ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + inner ℝ (q - paperGerverPath t) (normalVector (t : Real.Angle)) < 0 ∧ + inner ℝ (q - paperGerverPath t) (tangentVector (t : Real.Angle)) < 0} + +/-- The literal Gerver sofa obtained by removing its niche from its outer cap. -/ +def gerverLiteralSofa : Set Point := gerverOuterCap \ gerverLiteralNiche + +/-- Bundle the literal niche and sofa sets for comparison with the canonical definitions. -/ +def gerverLiteralSets : Set Point × Set Point := (gerverLiteralNiche, gerverLiteralSofa) + +/-- The paper outer cap is the coordinate transport of the certified Romik cap `K₀`. -/ +theorem mem_gerverOuterCap_iff (q : Point) : + q ∈ gerverOuterCap ↔ + GerverSofa.PartF.Coordinates.fromPlane q ∈ + GerverSofa.Romik.K0 GerverSofa.PartB.params := by + simp only [gerverOuterCap, Set.mem_ofPred_eq, GerverSofa.Romik.mem_K0, Set.mem_inter_iff, + GerverSofa.Romik.mem_supportHalfU, GerverSofa.Romik.mem_supportHalfV, + inner_normalVector_eq_dot, inner_tangentVector_eq_dot] + exact Iff.rfl + +/-- A point whose coordinate pair lies in the certified Romik cap `K₀` lies in the paper +outer cap. -/ +theorem toPlane_mem_gerverOuterCap {x : GerverSofa.Point} + (hx : x ∈ GerverSofa.Romik.K0 GerverSofa.PartB.params) : + GerverSofa.PartF.Coordinates.toPlane x ∈ gerverOuterCap := + (mem_gerverOuterCap_iff _).2 (by rwa [GerverSofa.PartF.Coordinates.fromPlane_toPlane]) + +/-- The paper literal niche is the coordinate transport of the certified Romik niche. -/ +theorem mem_gerverLiteralNiche_iff (q : Point) : + q ∈ gerverLiteralNiche ↔ + GerverSofa.PartF.Coordinates.fromPlane q ∈ + GerverSofa.Romik.niche GerverSofa.PartB.params := by + have hsub : ∀ (r : Point) (t : ℝ), + GerverSofa.PartF.Coordinates.fromPlane (r - paperGerverPath t) = + ((GerverSofa.PartF.Coordinates.fromPlane r).1 - + (GerverSofa.Romik.path GerverSofa.PartB.params t).1, + (GerverSofa.PartF.Coordinates.fromPlane r).2 - + (GerverSofa.Romik.path GerverSofa.PartB.params t).2) := fun _ _ => rfl + constructor + · rintro ⟨hy, t, ht, h1, h2⟩ + rw [inner_normalVector_eq_dot, hsub] at h1 + rw [inner_tangentVector_eq_dot, hsub] at h2 + exact ⟨hy, t, ht, h1, h2⟩ + · rintro ⟨hy, t, ht, h1, h2⟩ + refine ⟨hy, t, ht, ?_, ?_⟩ + · rw [inner_normalVector_eq_dot, hsub]; exact h1 + · rw [inner_tangentVector_eq_dot, hsub]; exact h2 + +theorem paperGerverSofa_eq_literal : paperGerverSofa = gerverLiteralSofa := by + have hTpos : (0 : ℝ) < Real.pi / 2 := by positivity + have hmemhall : ∀ (t : Real.Angle) (v q : Point), + q ∈ (fun p ↦ rotationMap t p + v) '' hallway ↔ + (inner ℝ (q - v) (normalVector t) ≤ 1 ∧ + inner ℝ (q - v) (tangentVector t) ≤ 1) ∧ + (0 ≤ inner ℝ (q - v) (normalVector t) ∨ + 0 ≤ inner ℝ (q - v) (tangentVector t)) := by + intro t v q + constructor + · rintro ⟨p, hp, rfl⟩ + have h0 : inner ℝ (rotationMap t p + v - v) (normalVector t) = p 0 := by + rw [add_sub_cancel_right, inner_rotationMap_normalVector] + have h1 : inner ℝ (rotationMap t p + v - v) (tangentVector t) = p 1 := by + rw [add_sub_cancel_right, inner_rotationMap_tangentVector] + simp only [h0, h1] + exact (mem_hallway_iff p).1 hp + · intro h + obtain ⟨p, hp⟩ := (EuclideanGeometry.o.rotation t).surjective (q - v) + have hpq : rotationMap t p = q - v := hp + have h0 : p 0 = inner ℝ (q - v) (normalVector t) := by + rw [← inner_rotationMap_normalVector p t, hpq] + have h1 : p 1 = inner ℝ (q - v) (tangentVector t) := by + rw [← inner_rotationMap_tangentVector p t, hpq] + refine ⟨p, (mem_hallway_iff p).2 ?_, ?_⟩ + · rw [h0, h1]; exact h + · change rotationMap t p + v = q + rw [hpq]; abel + have hconttan : Continuous (fun t : ℝ ↦ tangentVector (t : Real.Angle)) := by + let c : ℝ → (i : Fin 2) → ℝ := + fun t i ↦ Fin.cases (-Real.sin t) (fun _ ↦ Real.cos t) i + have hc : Continuous c := by + apply continuous_pi + intro i + fin_cases i + · exact Real.continuous_sin.neg + · exact Real.continuous_cos + have heq : (fun t : ℝ ↦ tangentVector (t : Real.Angle)) = + (fun t ↦ WithLp.toLp 2 (c t)) := by + funext t + ext i + fin_cases i <;> rfl + rw [heq] + exact (PiLp.continuous_toLp (2 : ENNReal) (fun _ : Fin 2 ↦ ℝ)).comp hc + have hreg := gerver_direct_path_regularity GerverSofa.PartB.params + GerverSofa.PartB.params_mem GerverSofa.PartB.params_equations + have hpathcont : Continuous paperGerverPath := + GerverSofa.PartF.Coordinates.continuous_toPlane.comp hreg.1.continuous + have hpath0 : paperGerverPath 0 = 0 := by + change GerverSofa.PartF.Coordinates.toPlane + (GerverSofa.Romik.path GerverSofa.PartB.params 0) = 0 + rw [hreg.2.1] + ext i + fin_cases i <;> rfl + have hstrip : ∀ q : Point, + q ∈ (strips (Real.pi / 2)).1 ∩ (strips (Real.pi / 2)).2.2 ↔ 0 ≤ q 1 ∧ q 1 ≤ 1 := by + intro q + have h := mem_stripParallelogram_iff (Real.pi / 2) q + rw [inner_normalVector_pi_div_two] at h + have hset : (strips (Real.pi / 2)).1 ∩ (strips (Real.pi / 2)).2.2 = + (stripParallelogram (Real.pi / 2)).1 := rfl + rw [hset, h] + tauto + have hshift : ∀ w z n : Point, + (inner ℝ w n ≤ inner ℝ z n + 1 ↔ inner ℝ (w - z) n ≤ 1) := by + intro w z n + rw [inner_sub_left] + constructor <;> intro h <;> linarith + ext q + constructor + · rintro ⟨hs, hint⟩ + have hhall : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + (inner ℝ (q - paperGerverPath t) (normalVector (t : Real.Angle)) ≤ 1 ∧ + inner ℝ (q - paperGerverPath t) (tangentVector (t : Real.Angle)) ≤ 1) ∧ + (0 ≤ inner ℝ (q - paperGerverPath t) (normalVector (t : Real.Angle)) ∨ + 0 ≤ inner ℝ (q - paperGerverPath t) (tangentVector (t : Real.Angle))) := fun t ht ↦ + (hmemhall _ _ _).1 (Set.mem_iInter₂.1 hint t ht) + refine ⟨⟨((hstrip q).1 hs).1, fun t ht ↦ + ⟨(hshift _ _ _).2 (hhall t ht).1.1, (hshift _ _ _).2 (hhall t ht).1.2⟩⟩, ?_⟩ + rintro ⟨-, t, ht, hlt1, hlt2⟩ + rcases (hhall t (Set.Ioo_subset_Icc_self ht)).2 with h | h + · linarith + · linarith + · rintro ⟨⟨hy, hcap⟩, hniche⟩ + have hcap' : ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + inner ℝ (q - paperGerverPath t) (normalVector (t : Real.Angle)) ≤ 1 ∧ + inner ℝ (q - paperGerverPath t) (tangentVector (t : Real.Angle)) ≤ 1 := fun t ht ↦ + ⟨(hshift _ _ _).1 (hcap t ht).1, (hshift _ _ _).1 (hcap t ht).2⟩ + have hopen : ∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + 0 ≤ inner ℝ (q - paperGerverPath t) (normalVector (t : Real.Angle)) ∨ + 0 ≤ inner ℝ (q - paperGerverPath t) (tangentVector (t : Real.Angle)) := by + intro t ht + by_contra hcon + exact hniche ⟨hy, t, ht, not_le.mp fun h ↦ hcon (Or.inl h), + not_le.mp fun h ↦ hcon (Or.inr h)⟩ + have hclosed : IsClosed {t : ℝ | + 0 ≤ max (inner ℝ (q - paperGerverPath t) (normalVector (t : Real.Angle))) + (inner ℝ (q - paperGerverPath t) (tangentVector (t : Real.Angle)))} := + isClosed_le continuous_const + (((continuous_const.sub hpathcont).inner continuous_normalVector_real).max + ((continuous_const.sub hpathcont).inner hconttan)) + have hIcc : Set.Icc (0 : ℝ) (Real.pi / 2) ⊆ {t : ℝ | + 0 ≤ max (inner ℝ (q - paperGerverPath t) (normalVector (t : Real.Angle))) + (inner ℝ (q - paperGerverPath t) (tangentVector (t : Real.Angle)))} := by + rw [← closure_Ioo (ne_of_lt hTpos)] + exact hclosed.closure_subset_iff.mpr fun t ht ↦ le_max_iff.mpr (hopen t ht) + have hy1 : q 1 ≤ 1 := by + have h := (hcap' 0 (Set.left_mem_Icc.mpr hTpos.le)).2 + rwa [hpath0, sub_zero, inner_tangentVector_zero] at h + refine ⟨(hstrip q).2 ⟨hy, hy1⟩, Set.mem_iInter₂.2 fun t ht ↦ ?_⟩ + exact (hmemhall _ _ _).2 + ⟨hcap' t ht, le_max_iff.mp (hIcc ht)⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Gerver / Literal Connected +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem gerver_literal_connected : IsConnected gerverLiteralSofa := by + have hu : ∀ (q : Point) (t : ℝ), + inner ℝ q (normalVector (t : Real.Angle)) = + GerverSofa.dot (GerverSofa.PartF.Coordinates.fromPlane q) (GerverSofa.u t) := by + intro q t + simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two, GerverSofa.dot, + GerverSofa.u, GerverSofa.PartF.Coordinates.fromPlane, mul_comm] + have hv : ∀ (q : Point) (t : ℝ), + inner ℝ q (tangentVector (t : Real.Angle)) = + GerverSofa.dot (GerverSofa.PartF.Coordinates.fromPlane q) (GerverSofa.v t) := by + intro q t + simp [tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two, GerverSofa.dot, + GerverSofa.v, GerverSofa.PartF.Coordinates.fromPlane, mul_comm] + have hpath : ∀ t : ℝ, + GerverSofa.PartF.Coordinates.fromPlane (paperGerverPath t) = + GerverSofa.Romik.path GerverSofa.PartC.params t := fun _ => rfl + have hcap : ∀ q : Point, + q ∈ gerverOuterCap ↔ + GerverSofa.PartF.Coordinates.fromPlane q ∈ + GerverSofa.Romik.K0 GerverSofa.PartC.params := by + intro q + constructor + · rintro ⟨hy, hs⟩ + refine ⟨hy, fun t ht => ?_⟩ + obtain ⟨h1, h2⟩ := hs t ht + rw [hu, hu, hpath] at h1 + rw [hv, hv, hpath] at h2 + exact ⟨h1, h2⟩ + · rintro ⟨hy, hs⟩ + refine ⟨hy, fun t ht => ?_⟩ + obtain ⟨h1, h2⟩ := hs t ht + rw [hu, hu, hpath] + rw [hv, hv, hpath] + exact ⟨h1, h2⟩ + have hsub : ∀ (q : Point) (t : ℝ), + GerverSofa.PartF.Coordinates.fromPlane (q - paperGerverPath t) = + ((GerverSofa.PartF.Coordinates.fromPlane q).1 - + (GerverSofa.Romik.path GerverSofa.PartC.params t).1, + (GerverSofa.PartF.Coordinates.fromPlane q).2 - + (GerverSofa.Romik.path GerverSofa.PartC.params t).2) := fun _ _ => rfl + have hniche : ∀ q : Point, + q ∈ gerverLiteralNiche ↔ + GerverSofa.PartF.Coordinates.fromPlane q ∈ + GerverSofa.Romik.niche GerverSofa.PartC.params := by + intro q + constructor + · rintro ⟨hy, t, ht, h1, h2⟩ + rw [hu, hsub] at h1 + rw [hv, hsub] at h2 + exact ⟨hy, t, ht, h1, h2⟩ + · rintro ⟨hy, t, ht, h1, h2⟩ + refine ⟨hy, t, ht, ?_, ?_⟩ + · rw [hu, hsub]; exact h1 + · rw [hv, hsub]; exact h2 + have hset : gerverLiteralSofa = + GerverSofa.PartF.Coordinates.toPlane '' GerverSofa.PartC.G := by + rw [GerverSofa.PartF.Coordinates.image_eq_preimage] + ext q + exact and_congr (hcap q) (not_congr (hniche q)) + rw [hset] + exact GerverSofa.PartF.Coordinates.isConnected_image + GerverSofa.PartC.Stage4.G_connected_direct + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Gerver / Parameter Identification +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open GerverSofa.PartF.ProjectAdapter (selected) + +/-- The adapter's selected reverse parameter vector carries the paper's angle `φ` in its +`phi` field. This is true by definition — `selected` is built from the very quadruple that +defines `GerversSofa.φ` — but it is the only bridge from the vendor parameter vector to the +paper's stage times `gerverStageTimes`, so it is recorded as a named lemma rather than left +to an invisible unfolding at each use site. -/ +theorem selected_phi : selected.phi = GerversSofa.φ := rfl + +/-- The adapter's selected reverse parameter vector carries the paper's angle `θ` in its +`theta` field; see `selected_phi` for why this `rfl` is worth naming. -/ +theorem selected_theta : selected.theta = GerversSofa.θ := rfl + +theorem gerver_parameter_identification : + (∀ p : GerverSofa.Romik.Params, p ∈ gerverDirectBox → gerverDirectEquations p → + p = gerverParameterDictionary.1 selected ∧ + p.phi = selected.phi ∧ p.theta = selected.theta ∧ + 0 < selected.phi ∧ selected.phi < selected.theta ∧ selected.theta < Real.pi / 4 ∧ + (39 : ℝ) / 1000 ≤ selected.phi ∧ selected.phi ≤ (40 : ℝ) / 1000 ∧ + GerversSofa.ABφθSpec selected.a selected.b selected.phi selected.theta) ∧ + (∃ p : GerverSofa.Romik.Params, p ∈ gerverDirectBox ∧ gerverDirectEquations p ∧ + p = gerverParameterDictionary.1 selected) := by + -- The reverse parameters of any direct solution in the box satisfy the whole + -- reduced specification, whose unique solution is the selected quadruple. + have key : ∀ p : GerverSofa.Romik.Params, p ∈ gerverDirectBox → gerverDirectEquations p → + gerverParameterDictionary.2 p = selected := by + intro p hp heq + rw [GerverSofa.PartF.ProjectAdapter.selected_eq_certified] + exact GerverSofa.PartF.Parameters.undictionary_eq_reduced_certified hp heq + -- Reconstruction then recovers the direct vector from its reverse parameters. + have hdict : ∀ p : GerverSofa.Romik.Params, p ∈ gerverDirectBox → gerverDirectEquations p → + p = gerverParameterDictionary.1 selected := by + intro p hp heq + calc p = GerverSofa.PartF.Phases.dictionary (gerverParameterDictionary.2 p) := + (GerverSofa.PartF.Phases.dictionary_undictionary_of_equations heq).symm + _ = gerverParameterDictionary.1 selected := + congrArg GerverSofa.PartF.Phases.dictionary (key p hp heq) + have hspec : GerversSofa.ABφθSpec selected.a selected.b selected.phi selected.theta := + GerversSofa.ABφθSpec.existsUnique.choose_spec.1 + refine ⟨fun p hp heq => ?_, GerverSofa.PartB.params, GerverSofa.PartB.params_mem, + GerverSofa.PartB.params_equations, + hdict _ GerverSofa.PartB.params_mem GerverSofa.PartB.params_equations⟩ + obtain ⟨hphipos, hphitheta, htheta, -, -, hphilo, hphihi⟩ := + gerver_reverse_physical_domain p hp + have hu := key p hp heq + rw [hu] at hphipos hphitheta htheta hphilo hphihi + exact ⟨hdict p hp heq, congrArg GerverSofa.Reduced.Params.phi hu, + congrArg GerverSofa.Reduced.Params.theta hu, hphipos, hphitheta, htheta, hphilo, hphihi, + hspec⟩ + +/-- The two distinguished Gerver angles are interior and complementary. -/ +theorem paperGerverConstants_snd_mem_Ioo : + paperGerverConstants.2.1 ∈ Set.Ioo (0 : ℝ) (Real.pi / 2) ∧ + paperGerverConstants.2.2 ∈ Set.Ioo (0 : ℝ) (Real.pi / 2) ∧ + paperGerverConstants.2.1 + paperGerverConstants.2.2 = Real.pi / 2 := by + have hpos : 0 < GerversSofa.φ := by + obtain ⟨hall, q, hqbox, hqeq, -⟩ := gerver_parameter_identification + exact (hall q hqbox hqeq).2.2.2.1 + have hle : GerversSofa.φ ≤ Real.pi / 4 := by + have h := GerversSofa.ABφθSpec.existsUnique.choose_spec.1 + exact le_trans h.2.1 h.2.2.1 + have hpi := Real.pi_pos + have h1 : paperGerverConstants.2.1 = GerversSofa.φ := rfl + have h2 : paperGerverConstants.2.2 = Real.pi / 2 - GerversSofa.φ := rfl + rw [h1, h2] + refine ⟨⟨hpos, by linarith only [hle, hpi]⟩, + ⟨by linarith only [hle, hpi], by linarith only [hpos]⟩, by ring⟩ + +/-- The two distinguished angles are ordered: the certified bound `φ ≤ 1/25` puts `φ` well below +`π/4 = π/2 - π/4`. -/ +theorem paperGerverConstants_snd_fst_lt_snd_snd : + paperGerverConstants.2.1 < paperGerverConstants.2.2 := by + obtain ⟨-, -, hsum⟩ := paperGerverConstants_snd_mem_Ioo + have hphi : paperGerverConstants.2.1 ≤ (40 : ℝ) / 1000 := by + obtain ⟨hall, p, hpbox, hpeq, -⟩ := gerver_parameter_identification + exact (hall p hpbox hpeq).2.2.2.2.2.2.2.1 + have := Real.pi_gt_three + linarith + +/-! ### The stage times as certified angles + +`gerverStageTimes` is defined from the paper angles `GerversSofa.φ` and `GerversSofa.θ`, +while the certified Part C geometry is indexed by the vendor parameter fields +`params.phi`, `params.theta` and the derived angles `eta`, `tau`, `T`. The six lemmas +below are the dictionary between the two indexings; they are the only place where +`gerver_parameter_identification` is needed to see a stage time. -/ + +/-- The zeroth stage time is the start of the rotation interval. -/ +theorem gerverStageTimes_zero : gerverStageTimes 0 = 0 := rfl + +/-- The first stage time is the certified first switching angle `params.phi`. -/ +theorem gerverStageTimes_one : gerverStageTimes 1 = GerverSofa.PartC.params.phi := by + obtain ⟨-, hphi, -⟩ := gerver_parameter_identification.1 GerverSofa.PartB.params + GerverSofa.PartB.params_mem GerverSofa.PartB.params_equations + simp [gerverStageTimes, hphi.trans selected_phi] + +/-- The second stage time is the certified second switching angle `params.theta`. -/ +theorem gerverStageTimes_two : gerverStageTimes 2 = GerverSofa.PartC.params.theta := by + obtain ⟨-, -, htheta, -⟩ := gerver_parameter_identification.1 GerverSofa.PartB.params + GerverSofa.PartB.params_mem GerverSofa.PartB.params_equations + simp [gerverStageTimes, htheta.trans selected_theta] + +/-- The third stage time is the certified reflected angle `eta = T - params.theta`. -/ +theorem gerverStageTimes_three : gerverStageTimes 3 = GerverSofa.PartC.eta := by + have h := gerverStageTimes_two + simp only [gerverStageTimes, Matrix.cons_val] at h ⊢ + rw [GerverSofa.PartC.eta, GerverSofa.PartC.T, ← h] + +/-- The fourth stage time is the certified reflected angle `tau = T - params.phi`. -/ +theorem gerverStageTimes_four : gerverStageTimes 4 = GerverSofa.PartC.tau := by + have h := gerverStageTimes_one + simp only [gerverStageTimes, Matrix.cons_val] at h ⊢ + rw [GerverSofa.PartC.tau, GerverSofa.PartC.T, ← h] + +/-- The fifth stage time is the certified end `T` of the rotation interval. -/ +theorem gerverStageTimes_five : gerverStageTimes 5 = GerverSofa.PartC.T := rfl + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Gerver / Contacts +-/ + +@[expose] public section + +noncomputable section + +open scoped ContDiff + +namespace MovingSofa + +/-- Resolve the Gerver path derivative into its normal and tangent frame components. -/ +def paperGerverVelocityComponents (t : ℝ) : ℝ × ℝ := + (inner ℝ (deriv paperGerverPath t) (normalVector (t : Real.Angle)), + inner ℝ (deriv paperGerverPath t) (tangentVector (t : Real.Angle))) + +/-- The four standard support-contact points determined by the Gerver path and its derivative. -/ +def paperGerverContacts (t : ℝ) : Fin 4 → Point := + ![paperGerverPath t + (paperGerverVelocityComponents t).1 • tangentVector (t : Real.Angle) + + normalVector (t : Real.Angle), + paperGerverPath t + (paperGerverVelocityComponents t).1 • tangentVector (t : Real.Angle), + paperGerverPath t - (paperGerverVelocityComponents t).2 • normalVector (t : Real.Angle) + + tangentVector (t : Real.Angle), + paperGerverPath t - (paperGerverVelocityComponents t).2 • normalVector (t : Real.Angle)] + +/-- Bundle the path velocity components and the four contact curves. -/ +def paperGerverContactData : (ℝ → ℝ × ℝ) × (ℝ → Fin 4 → Point) := + (paperGerverVelocityComponents, paperGerverContacts) + +/-- The explicit body-frame velocity coefficients on a selected Romik branch. -/ +def gerverBranchVelocityComponents (i : Fin 5) (t : ℝ) : ℝ × ℝ := + ![GerverSofa.Romik.alphaBeta1 GerverSofa.PartB.params t, + GerverSofa.Romik.alphaBeta2 GerverSofa.PartB.params t, + GerverSofa.Romik.alphaBeta3 GerverSofa.PartB.params t, + GerverSofa.Romik.alphaBeta4 GerverSofa.PartB.params t, + GerverSofa.Romik.alphaBeta5 GerverSofa.PartB.params t] i + +/-! ### The common shape of the four contact curves + +`paperGerverContacts` is an instance of a generic four-slot shape built from a base curve +and two scalar coefficient functions. Continuity and smoothness of the shape are proved +once here and reused for the ambient curve and for each analytic stage branch. -/ + +/-- The four contact curves are continuous as soon as the base curve and the two +coefficient functions are. -/ +private theorem continuous_contactShape (X : ℝ → Point) (A B : ℝ → ℝ) (hX : Continuous X) + (hA : Continuous A) (hB : Continuous B) : + Continuous fun t : ℝ => (![ + X t + A t • tangentVector (t : Real.Angle) + normalVector (t : Real.Angle), + X t + A t • tangentVector (t : Real.Angle), + X t - B t • normalVector (t : Real.Angle) + tangentVector (t : Real.Angle), + X t - B t • normalVector (t : Real.Angle)] : Fin 4 → Point) := by + have hN : Continuous fun t : ℝ => normalVector (t : Real.Angle) := + contDiff_normalVector.continuous + have hT : Continuous fun t : ℝ => tangentVector (t : Real.Angle) := + contDiff_tangentVector.continuous + refine continuous_pi fun i => ?_ + fin_cases i + · exact (hX.add (hA.smul hT)).add hN + · exact hX.add (hA.smul hT) + · exact (hX.sub (hB.smul hN)).add hT + · exact hX.sub (hB.smul hN) + +/-- The four contact curves are smooth as soon as the base curve and the two coefficient +functions are. -/ +private theorem contDiff_contactShape (X : ℝ → Point) (A B : ℝ → ℝ) + (hX : ContDiff ℝ ∞ X) (hA : ContDiff ℝ ∞ A) (hB : ContDiff ℝ ∞ B) : + ContDiff ℝ ∞ fun t : ℝ => (![ + X t + A t • tangentVector (t : Real.Angle) + normalVector (t : Real.Angle), + X t + A t • tangentVector (t : Real.Angle), + X t - B t • normalVector (t : Real.Angle) + tangentVector (t : Real.Angle), + X t - B t • normalVector (t : Real.Angle)] : Fin 4 → Point) := by + rw [contDiff_pi] + intro i + fin_cases i + · exact (hX.add (hA.smul contDiff_tangentVector)).add contDiff_normalVector + · exact hX.add (hA.smul contDiff_tangentVector) + · exact (hX.sub (hB.smul contDiff_normalVector)).add contDiff_tangentVector + · exact hX.sub (hB.smul contDiff_normalVector) + +open GerverSofa.Romik GerverSofa.PartF.Coordinates in +theorem paperGerverContactData_properties : + Continuous paperGerverVelocityComponents ∧ Continuous paperGerverContacts ∧ + (∀ i : Fin 5, ContDiffOn ℝ ∞ paperGerverContacts (gerverStageIntervals i)) ∧ + (∀ i : Fin 5, ∀ t ∈ gerverStageIntervals i, + paperGerverVelocityComponents t = gerverBranchVelocityComponents i t) := by + -- Abbreviate the certified direct parameter vector, and order its switching angles. + obtain ⟨p, hp⟩ : ∃ p : Params, GerverSofa.PartB.params = p := ⟨_, rfl⟩ + have hmem : p ∈ gerverDirectBox := hp ▸ GerverSofa.PartB.params_mem + have heqs : gerverDirectEquations p := hp ▸ GerverSofa.PartB.params_equations + obtain ⟨hC1, -, -⟩ := gerver_direct_path_regularity p hmem heqs + obtain ⟨-, hphi, htheta, hphipos, hphitheta, hthetalt, -⟩ := + gerver_parameter_identification.1 p hmem heqs + have hphi' : p.phi = GerversSofa.φ := hphi.trans selected_phi + have htheta' : p.theta = GerversSofa.θ := htheta.trans selected_theta + have h0 : (0 : ℝ) < p.phi := by rw [hphi]; exact hphipos + have h1 : p.phi < p.theta := by rw [hphi, htheta]; exact hphitheta + have h2 : p.theta < Real.pi / 4 := by rw [htheta]; exact hthetalt + have hC1' : ContDiff ℝ 1 (path GerverSofa.PartB.params) := by rw [hp]; exact hC1 + -- The velocity components read off the body-frame derivative of the direct path. + have hvel : ∀ (w : GerverSofa.Point) (t : ℝ), deriv (path p) t = rot t w → + paperGerverVelocityComponents t = w := by + intro w t hw + have hd : deriv paperGerverPath t = toPlane (rot t w) := by + rw [deriv_paperGerverPath hC1' t, hp, hw] + simp only [paperGerverVelocityComponents, hd, inner_toPlane_rot_normalVector, + inner_toPlane_rot_tangentVector] + have hvelC : Continuous paperGerverVelocityComponents := + ((continuous_deriv_paperGerverPath hC1').inner contDiff_normalVector.continuous).prodMk + ((continuous_deriv_paperGerverPath hC1').inner contDiff_tangentVector.continuous) + -- Stage smoothness: the contacts agree there with the smooth analytic branch data. + have hstage : ∀ (X W : ℝ → GerverSofa.Point) (s : Set ℝ), ContDiff ℝ ∞ X → + ContDiff ℝ ∞ W → (∀ t ∈ s, path p t = X t) → + (∀ t ∈ s, deriv (path p) t = rot t (W t)) → + ContDiffOn ℝ ∞ paperGerverContacts s := by + intro X W s hX hW hXe hWe + refine (contDiff_contactShape (fun t => toPlane (X t)) (fun t => (W t).1) + (fun t => (W t).2) (contDiff_toPlane hX) hW.fst hW.snd).contDiffOn.congr ?_ + intro t ht + have hx : paperGerverPath t = toPlane (X t) := by + change toPlane (path GerverSofa.PartB.params t) = toPlane (X t) + rw [hp] + exact congrArg toPlane (hXe t ht) + simp only [paperGerverContacts, hx, hvel (W t) t (hWe t ht)] + -- The five stage intervals, in terms of the direct switching angles. + have hI0 : gerverStageIntervals 0 = Set.Icc 0 p.phi := by + simp [gerverStageIntervals, gerverStageTimes, hphi'] + have hI1 : gerverStageIntervals 1 = Set.Icc p.phi p.theta := by + simp [gerverStageIntervals, gerverStageTimes, hphi', htheta'] + have hI2 : gerverStageIntervals 2 = Set.Icc p.theta (Real.pi / 2 - p.theta) := by + simp [gerverStageIntervals, gerverStageTimes, htheta'] + have hI3 : gerverStageIntervals 3 = + Set.Icc (Real.pi / 2 - p.theta) (Real.pi / 2 - p.phi) := by + simp [gerverStageIntervals, gerverStageTimes, hphi', htheta'] + have hI4 : gerverStageIntervals 4 = Set.Icc (Real.pi / 2 - p.phi) (Real.pi / 2) := by + simp [gerverStageIntervals, gerverStageTimes, hphi'] + -- The stage coefficient pairs, read off the vector of branch velocities. + have hB0 : ∀ t, gerverBranchVelocityComponents 0 t = alphaBeta1 p t := fun t => by + simp [gerverBranchVelocityComponents, hp] + have hB1 : ∀ t, gerverBranchVelocityComponents 1 t = alphaBeta2 p t := fun t => by + simp [gerverBranchVelocityComponents, hp] + have hB2 : ∀ t, gerverBranchVelocityComponents 2 t = alphaBeta3 p t := fun t => by + simp [gerverBranchVelocityComponents, hp] + have hB3 : ∀ t, gerverBranchVelocityComponents 3 t = alphaBeta4 p t := fun t => by + simp [gerverBranchVelocityComponents, hp] + have hB4 : ∀ t, gerverBranchVelocityComponents 4 t = alphaBeta5 p t := fun t => by + simp [gerverBranchVelocityComponents, hp] + refine ⟨hvelC, ?_, ?_, ?_⟩ + · exact continuous_contactShape paperGerverPath + (fun t => (paperGerverVelocityComponents t).1) + (fun t => (paperGerverVelocityComponents t).2) (continuous_paperGerverPath hC1') + hvelC.fst hvelC.snd + · intro i + fin_cases i + · exact hstage (path1 p) (alphaBeta1 p) (gerverStageIntervals 0) (contDiff_path1 p) + (contDiff_alphaBeta1 p) (fun t ht => path_eq_path1_of_mem_Icc p (hI0 ▸ ht)) + (fun t ht => deriv_path_eq_rot_alphaBeta1 hC1 h0 (hI0 ▸ ht)) + · exact hstage (path2 p) (alphaBeta2 p) (gerverStageIntervals 1) (contDiff_path2 p) + (contDiff_alphaBeta2 p) (fun t ht => path_eq_path2_of_mem_Icc heqs (hI1 ▸ ht)) + (fun t ht => deriv_path_eq_rot_alphaBeta2 hC1 heqs h1 (hI1 ▸ ht)) + · exact hstage (path3 p) (alphaBeta3 p) (gerverStageIntervals 2) (contDiff_path3 p) + (contDiff_alphaBeta3 p) (fun t ht => path_eq_path3_of_mem_Icc heqs h1 (hI2 ▸ ht)) + (fun t ht => deriv_path_eq_rot_alphaBeta3 hC1 heqs h1 h2 (hI2 ▸ ht)) + · exact hstage (path4 p) (alphaBeta4 p) (gerverStageIntervals 3) (contDiff_path4 p) + (contDiff_alphaBeta4 p) (fun t ht => path_eq_path4_of_mem_Icc heqs h1 h2 (hI3 ▸ ht)) + (fun t ht => deriv_path_eq_rot_alphaBeta4 hC1 heqs h1 h2 (hI3 ▸ ht)) + · exact hstage (path5 p) (alphaBeta5 p) (gerverStageIntervals 4) (contDiff_path5 p) + (contDiff_alphaBeta5 p) (fun t ht => path_eq_path5_of_mem_Icc heqs h1 h2 (hI4 ▸ ht)) + (fun t ht => deriv_path_eq_rot_alphaBeta5 hC1 heqs h0 h1 h2 (hI4 ▸ ht)) + · intro i + fin_cases i + · exact fun t ht => (hvel _ t (deriv_path_eq_rot_alphaBeta1 hC1 h0 + (hI0 ▸ (ht : t ∈ gerverStageIntervals 0)))).trans (hB0 t).symm + · exact fun t ht => (hvel _ t (deriv_path_eq_rot_alphaBeta2 hC1 heqs h1 + (hI1 ▸ (ht : t ∈ gerverStageIntervals 1)))).trans (hB1 t).symm + · exact fun t ht => (hvel _ t (deriv_path_eq_rot_alphaBeta3 hC1 heqs h1 h2 + (hI2 ▸ (ht : t ∈ gerverStageIntervals 2)))).trans (hB2 t).symm + · exact fun t ht => (hvel _ t (deriv_path_eq_rot_alphaBeta4 hC1 heqs h1 h2 + (hI3 ▸ (ht : t ∈ gerverStageIntervals 3)))).trans (hB3 t).symm + · exact fun t ht => (hvel _ t (deriv_path_eq_rot_alphaBeta5 hC1 heqs h0 h1 h2 + (hI4 ▸ (ht : t ∈ gerverStageIntervals 4)))).trans (hB4 t).symm + +/-! ### Identification with the certified piecewise contact data -/ + +/-- On the physical rotation interval the paper velocity components agree with the vendor +piecewise body-frame coefficients. -/ +theorem paperGerverVelocityComponents_eq_alphaBetaAt (t : ℝ) + (ht : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) : + paperGerverVelocityComponents t = GerverSofa.PartC.alphaBetaAt t := by + obtain ⟨-, hphi, htheta, -⟩ := gerver_parameter_identification.1 GerverSofa.PartB.params + GerverSofa.PartB.params_mem GerverSofa.PartB.params_equations + have hphi' : GerverSofa.PartB.params.phi = GerversSofa.φ := hphi.trans selected_phi + have htheta' : GerverSofa.PartB.params.theta = GerversSofa.θ := htheta.trans selected_theta + have hvel := paperGerverContactData_properties.2.2.2 + have hI0 : gerverStageIntervals 0 = Set.Icc 0 GerversSofa.φ := by + simp [gerverStageIntervals, gerverStageTimes] + have hI1 : gerverStageIntervals 1 = Set.Icc GerversSofa.φ GerversSofa.θ := by + simp [gerverStageIntervals, gerverStageTimes] + have hI2 : gerverStageIntervals 2 = Set.Icc GerversSofa.θ (Real.pi / 2 - GerversSofa.θ) := by + simp [gerverStageIntervals, gerverStageTimes] + have hI3 : gerverStageIntervals 3 = + Set.Icc (Real.pi / 2 - GerversSofa.θ) (Real.pi / 2 - GerversSofa.φ) := by + simp [gerverStageIntervals, gerverStageTimes] + have hI4 : gerverStageIntervals 4 = Set.Icc (Real.pi / 2 - GerversSofa.φ) (Real.pi / 2) := by + simp [gerverStageIntervals, gerverStageTimes] + obtain ⟨ht0, ht2⟩ := ht + simp only [GerverSofa.PartC.alphaBetaAt, GerverSofa.PartC.eta, GerverSofa.PartC.tau, + GerverSofa.PartC.T, hphi', htheta'] + split_ifs with h1 h2 h3 h4 + · have := hvel 0 t (by rw [hI0]; exact ⟨ht0, h1⟩) + simpa [gerverBranchVelocityComponents] using this + · have := hvel 1 t (by rw [hI1]; exact ⟨le_of_not_ge h1, h2⟩) + simpa [gerverBranchVelocityComponents] using this + · have := hvel 2 t (by rw [hI2]; exact ⟨le_of_not_ge h2, h3⟩) + simpa [gerverBranchVelocityComponents] using this + · have := hvel 3 t (by rw [hI3]; exact ⟨le_of_not_ge h3, h4⟩) + simpa [gerverBranchVelocityComponents] using this + · have := hvel 4 t (by rw [hI4]; exact ⟨le_of_not_ge h4, ht2⟩) + simpa [gerverBranchVelocityComponents] using this + +/-- On the physical rotation interval the four paper contact curves are the coordinate +transports of the four certified contact curves. -/ +theorem fromPlane_paperGerverContacts (t : ℝ) (ht : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) + (i : Fin 4) : + GerverSofa.PartF.Coordinates.fromPlane (paperGerverContacts t i) = + ![GerverSofa.PartC.A t, GerverSofa.PartC.B t, GerverSofa.PartC.C t, + GerverSofa.PartC.D t] i := by + have hab := paperGerverVelocityComponents_eq_alphaBetaAt t ht + fin_cases i <;> simp only [paperGerverContacts, hab] <;> rfl + +/-- On the physical rotation interval the second paper contact curve is the certified curve +`B`, read in plane coordinates. -/ +theorem paperGerverContacts_one_eq_toPlane {t : ℝ} (ht : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) : + paperGerverContacts t 1 = + GerverSofa.PartF.Coordinates.toPlane (GerverSofa.PartC.B t) := + (GerverSofa.PartF.Coordinates.toPlane_fromPlane _).symm.trans + (congrArg GerverSofa.PartF.Coordinates.toPlane (fromPlane_paperGerverContacts t ht 1)) + +/-- On the physical rotation interval the fourth paper contact curve is the certified curve +`D`, read in plane coordinates. -/ +theorem paperGerverContacts_three_eq_toPlane {t : ℝ} (ht : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) : + paperGerverContacts t 3 = + GerverSofa.PartF.Coordinates.toPlane (GerverSofa.PartC.D t) := + (GerverSofa.PartF.Coordinates.toPlane_fromPlane _).symm.trans + (congrArg GerverSofa.PartF.Coordinates.toPlane (fromPlane_paperGerverContacts t ht 3)) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The Gerver niche roof + +The upper boundary of the paper's literal Gerver niche is a three-piece graph over the +rotation interval: the fourth contact curve up to the second stage time, the direct path run +*backwards* through the affine reversal `gerverRoofReverseTime` on the middle stage, and the +second contact curve from the third stage time on. `gerverRoofCurve` is that graph as a +function of an unrestricted real parameter and `gerverNicheRoof` its restriction to the +rotation interval; `gerverRoofCurve_eq` relates the two. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The affine reversal of the middle roof stage: it maps `gerverStageTimes 2` to +`gerverStageTimes 4` and `gerverStageTimes 3` to `gerverStageTimes 1`, so it reparametrizes +the central part of the direct path backwards. -/ +def gerverRoofReverseTime (s : ℝ) : ℝ := + gerverStageTimes 4 - (gerverStageTimes 4 - gerverStageTimes 1) / + (gerverStageTimes 3 - gerverStageTimes 2) * (s - gerverStageTimes 2) + +/-- The Gerver niche roof as a curve of an unrestricted real parameter. On the rotation +interval it agrees with `gerverNicheRoof` (`gerverRoofCurve_eq`); the unrestricted form is +what the intermediate value theorem and `continuous_if_le` consume. -/ +def gerverRoofCurve (s : ℝ) : Point := + if s ≤ gerverStageTimes 2 then paperGerverContacts s 3 + else if s ≤ gerverStageTimes 3 then paperGerverPath (gerverRoofReverseTime s) + else paperGerverContacts s 1 + +/-- The three-branch roof of the Gerver niche, using two contact arcs and the reversed path. -/ +def gerverNicheRoof (s : Set.Icc (0 : ℝ) (Real.pi / 2)) : Point := + if s.val ≤ gerverStageTimes 2 then paperGerverContacts s.val 3 + else if s.val ≤ gerverStageTimes 3 then paperGerverPath (gerverRoofReverseTime s.val) + else paperGerverContacts s.val 1 + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Gerver / ODEs +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Tangential components of the four contact-curve derivatives on a selected stage. -/ +def gerverStageContactDerivatives (i : Fin 5) (t : ℝ) : Fin 4 → ℝ := + ![inner ℝ (derivWithin (fun s ↦ paperGerverContacts s 0) (gerverStageIntervals i) t) + (tangentVector (t : Real.Angle)), + inner ℝ (derivWithin (fun s ↦ paperGerverContacts s 1) (gerverStageIntervals i) t) + (tangentVector (t : Real.Angle)), + inner ℝ (-(derivWithin (fun s ↦ paperGerverContacts s 2) (gerverStageIntervals i) t)) + (normalVector (t : Real.Angle)), + inner ℝ (derivWithin (fun s ↦ paperGerverContacts s 3) (gerverStageIntervals i) t) + (normalVector (t : Real.Angle))] + +private theorem gerver_contact_derivatives_from_frame (i : Fin 5) (t : ℝ) + (ht : t ∈ gerverStageIntervals i) + (huniq : UniqueDiffWithinAt ℝ (gerverStageIntervals i) t) : + ∀ (X : ℝ → Point) (X' : Point) (A B : ℝ → ℝ) (a' b' : ℝ), + HasDerivAt X X' t → + inner ℝ X' (normalVector (t : Real.Angle)) = A t → + inner ℝ X' (tangentVector (t : Real.Angle)) = B t → + HasDerivAt A a' t → HasDerivAt B b' t → + (∀ r ∈ gerverStageIntervals i, paperGerverPath r = X r) → + (∀ r ∈ gerverStageIntervals i, paperGerverVelocityComponents r = (A r, B r)) → + gerverStageContactDerivatives i t 0 = B t + a' + 1 ∧ + gerverStageContactDerivatives i t 1 = B t + a' ∧ + gerverStageContactDerivatives i t 2 = b' + 1 - A t ∧ + gerverStageContactDerivatives i t 3 = A t - b' := by + -- Frame orthonormality at the fixed angle `t`. + have huu : + inner ℝ (normalVector (t : Real.Angle)) (normalVector (t : Real.Angle)) = (1 : ℝ) := + inner_normalVector_self t + have hvv : + inner ℝ (tangentVector (t : Real.Angle)) (tangentVector (t : Real.Angle)) = (1 : ℝ) := + inner_tangentVector_self t + have huv : + inner ℝ (normalVector (t : Real.Angle)) (tangentVector (t : Real.Angle)) = (0 : ℝ) := + inner_normalVector_tangentVector t + have hvu : + inner ℝ (tangentVector (t : Real.Angle)) (normalVector (t : Real.Angle)) = (0 : ℝ) := by + rw [real_inner_comm]; exact huv + intro X X' A B a' b' hX hXu hXv hA hB hpath hvel + have hn : HasDerivAt (fun s : ℝ => normalVector (s : Real.Angle)) + (tangentVector (t : Real.Angle)) t := hasDerivAt_normalVector t + have hg : HasDerivAt (fun s : ℝ => tangentVector (s : Real.Angle)) + (-normalVector (t : Real.Angle)) t := hasDerivAt_tangentVector t + have hAv := hA.fun_smul hg + have hBn := hB.fun_smul hn + have hc0 : HasDerivWithinAt (fun s => paperGerverContacts s 0) + (X' + (A t • (-normalVector (t : Real.Angle)) + a' • tangentVector (t : Real.Angle)) + + tangentVector (t : Real.Angle)) (gerverStageIntervals i) t := by + refine ((hX.fun_add hAv).fun_add hn).hasDerivWithinAt.congr (fun r hr => ?_) ?_ + · simp only [paperGerverContacts, Matrix.cons_val_zero, hpath r hr, hvel r hr] + · simp only [paperGerverContacts, Matrix.cons_val_zero, hpath t ht, hvel t ht] + have hc1 : HasDerivWithinAt (fun s => paperGerverContacts s 1) + (X' + (A t • (-normalVector (t : Real.Angle)) + a' • tangentVector (t : Real.Angle))) + (gerverStageIntervals i) t := by + refine (hX.fun_add hAv).hasDerivWithinAt.congr (fun r hr => ?_) ?_ + · simp only [paperGerverContacts, hpath r hr, hvel r hr] + rfl + · simp only [paperGerverContacts, hpath t ht, hvel t ht] + rfl + have hc2 : HasDerivWithinAt (fun s => paperGerverContacts s 2) + (X' - (B t • tangentVector (t : Real.Angle) + b' • normalVector (t : Real.Angle)) + + -normalVector (t : Real.Angle)) (gerverStageIntervals i) t := by + refine ((hX.fun_sub hBn).fun_add hg).hasDerivWithinAt.congr (fun r hr => ?_) ?_ + · simp only [paperGerverContacts, hpath r hr, hvel r hr] + rfl + · simp only [paperGerverContacts, hpath t ht, hvel t ht] + rfl + have hc3 : HasDerivWithinAt (fun s => paperGerverContacts s 3) + (X' - (B t • tangentVector (t : Real.Angle) + b' • normalVector (t : Real.Angle))) + (gerverStageIntervals i) t := by + refine (hX.fun_sub hBn).hasDerivWithinAt.congr (fun r hr => ?_) ?_ + · simp only [paperGerverContacts, hpath r hr, hvel r hr] + rfl + · simp only [paperGerverContacts, hpath t ht, hvel t ht] + rfl + refine ⟨?_, ?_, ?_, ?_⟩ + · change inner ℝ (derivWithin (fun s => paperGerverContacts s 0) (gerverStageIntervals i) t) + (tangentVector (t : Real.Angle)) = B t + a' + 1 + rw [hc0.derivWithin huniq] + simp only [inner_add_left, real_inner_smul_left, inner_neg_left, hXv, huv, hvv] + ring + · change inner ℝ (derivWithin (fun s => paperGerverContacts s 1) (gerverStageIntervals i) t) + (tangentVector (t : Real.Angle)) = B t + a' + rw [hc1.derivWithin huniq] + simp only [inner_add_left, real_inner_smul_left, inner_neg_left, hXv, huv, hvv] + ring + · change inner ℝ (-derivWithin (fun s => paperGerverContacts s 2) (gerverStageIntervals i) t) + (normalVector (t : Real.Angle)) = b' + 1 - A t + rw [hc2.derivWithin huniq] + simp only [inner_neg_left, inner_add_left, inner_sub_left, real_inner_smul_left, hXu, hvu, + huu] + ring + · change inner ℝ (derivWithin (fun s => paperGerverContacts s 3) (gerverStageIntervals i) t) + (normalVector (t : Real.Angle)) = A t - b' + rw [hc3.derivWithin huniq] + simp only [inner_sub_left, inner_add_left, real_inner_smul_left, hXu, hvu, huu] + ring + +theorem gerver_stageODEs (i : Fin 5) (t : ℝ) (ht : t ∈ gerverStageIntervals i) : + (gerverStageContactDerivatives i t 0, gerverStageContactDerivatives i t 2) = + ![(0, gerverStageContactDerivatives i t 3), + ((paperGerverVelocityComponents t).2, + gerverStageContactDerivatives i t 3 - (paperGerverVelocityComponents t).1), + ((paperGerverVelocityComponents t).2, -(paperGerverVelocityComponents t).1), + (-gerverStageContactDerivatives i t 1 + (paperGerverVelocityComponents t).2, + -(paperGerverVelocityComponents t).1), + (-gerverStageContactDerivatives i t 1, 0)] i := by + open GerverSofa.Romik GerverSofa.PartF.Coordinates in + -- The certified direct parameter vector and the ordering of its switching angles. + obtain ⟨p, hp⟩ : ∃ p : Params, GerverSofa.PartB.params = p := ⟨_, rfl⟩ + have hmem : p ∈ gerverDirectBox := hp ▸ GerverSofa.PartB.params_mem + have heqs : gerverDirectEquations p := hp ▸ GerverSofa.PartB.params_equations + obtain ⟨-, hphieq, hthetaeq, hphipos, hphitheta, hthetalt, -⟩ := + gerver_parameter_identification.1 p hmem heqs + have hphi' : p.phi = GerversSofa.φ := hphieq.trans selected_phi + have htheta' : p.theta = GerversSofa.θ := hthetaeq.trans selected_theta + have h0 : (0 : ℝ) < p.phi := by rw [hphieq]; exact hphipos + have h1 : p.phi < p.theta := by rw [hphieq, hthetaeq]; exact hphitheta + have h2 : p.theta < Real.pi / 4 := by rw [hthetaeq]; exact hthetalt + -- The five closed stage intervals in terms of the direct switching angles. + have hI0 : gerverStageIntervals 0 = Set.Icc 0 p.phi := by + simp [gerverStageIntervals, gerverStageTimes, hphi'] + have hI1 : gerverStageIntervals 1 = Set.Icc p.phi p.theta := by + simp [gerverStageIntervals, gerverStageTimes, hphi', htheta'] + have hI2 : gerverStageIntervals 2 = Set.Icc p.theta (Real.pi / 2 - p.theta) := by + simp [gerverStageIntervals, gerverStageTimes, htheta'] + have hI3 : gerverStageIntervals 3 = + Set.Icc (Real.pi / 2 - p.theta) (Real.pi / 2 - p.phi) := by + simp [gerverStageIntervals, gerverStageTimes, hphi', htheta'] + have hI4 : gerverStageIntervals 4 = Set.Icc (Real.pi / 2 - p.phi) (Real.pi / 2) := by + simp [gerverStageIntervals, gerverStageTimes, hphi'] + have hval := paperGerverContactData_properties.2.2.2 + -- Derivatives of the ten branch coefficient functions, in one normal form. + have hidt : HasDerivAt (fun s : ℝ => s) 1 t := hasDerivAt_id t + have hshape : ∀ (c₀ c₁ c₂ c₃ c₄ : ℝ) (f : ℝ → ℝ), + (∀ s : ℝ, + f s = c₀ + c₁ * s + c₂ * s * s + c₃ * Real.sin s + c₄ * Real.cos s) → + HasDerivAt f (c₁ + 2 * c₂ * t + c₃ * Real.cos t - c₄ * Real.sin t) t := by + intro c₀ c₁ c₂ c₃ c₄ f hf + have h : HasDerivAt + (fun s : ℝ => c₀ + c₁ * s + c₂ * s * s + c₃ * Real.sin s + c₄ * Real.cos s) + (c₁ + 2 * c₂ * t + c₃ * Real.cos t - c₄ * Real.sin t) t := by + refine ((((hasDerivAt_const t c₀).fun_add (hidt.const_mul c₁)).fun_add + ((hidt.const_mul c₂).fun_mul hidt)).fun_add + ((Real.hasDerivAt_sin t).const_mul c₃)).fun_add + ((Real.hasDerivAt_cos t).const_mul c₄) |>.congr_deriv ?_ + ring + exact h.congr_of_eventuallyEq (Filter.Eventually.of_forall fun s => hf s) + -- Unique differentiability of the closed stage interval at `t`. + have g0 : (0 : ℝ) < GerversSofa.φ := by rw [← hphi']; exact h0 + have g1 : GerversSofa.φ < GerversSofa.θ := by rw [← hphi', ← htheta']; exact h1 + have g2 : GerversSofa.θ < Real.pi / 4 := by rw [← htheta']; exact h2 + have huniq : UniqueDiffWithinAt ℝ (gerverStageIntervals i) t := by + fin_cases i + · exact uniqueDiffOn_Icc g0 t ht + · exact uniqueDiffOn_Icc g1 t ht + · exact uniqueDiffOn_Icc + (show GerversSofa.θ < Real.pi / 2 - GerversSofa.θ by linarith) t ht + · exact uniqueDiffOn_Icc + (show Real.pi / 2 - GerversSofa.θ < Real.pi / 2 - GerversSofa.φ by linarith) t ht + · exact uniqueDiffOn_Icc + (show Real.pi / 2 - GerversSofa.φ < Real.pi / 2 by linarith) t ht + -- The frame computation: the four contact derivatives in terms of `α, β, α', β'`. + have hcore := gerver_contact_derivatives_from_frame i t ht huniq + fin_cases i + · -- Stage 1 + have hvel : ∀ r ∈ gerverStageIntervals 0, + paperGerverVelocityComponents r = alphaBeta1 p r := by + intro r hr + rw [hval 0 r hr] + simp [gerverBranchVelocityComponents, hp] + obtain ⟨e0, e1, e2, e3⟩ := hcore (fun s => toPlane (path1 p s)) + (toPlane (rot t (alphaBeta1 p t))) (fun s => (alphaBeta1 p s).1) + (fun s => (alphaBeta1 p s).2) _ _ (hasDerivAt_toPlane (hasDerivAt_path1 p t)) + (inner_toPlane_rot_normalVector t _) (inner_toPlane_rot_tangentVector t _) + (hshape (1 / 2) 0 0 (-2 * p.a1) (2 * p.a2) _ fun s => by dsimp [alphaBeta1]; ring) + (hshape (-1) 0 0 (2 * p.a2) (2 * p.a1) _ fun s => by dsimp [alphaBeta1]; ring) + (fun r hr => by + change toPlane (path GerverSofa.PartB.params r) = toPlane (path1 p r) + rw [hp] + exact congrArg toPlane (path_eq_path1_of_mem_Icc p (hI0 ▸ hr))) + (fun r hr => hvel r hr) + rw [Prod.mk.injEq, e0, e2, e3] + refine ⟨?_, ?_⟩ <;> dsimp [alphaBeta1] <;> ring + · -- Stage 2 + have hvel : ∀ r ∈ gerverStageIntervals 1, + paperGerverVelocityComponents r = alphaBeta2 p r := by + intro r hr + rw [hval 1 r hr] + simp [gerverBranchVelocityComponents, hp] + obtain ⟨e0, e1, e2, e3⟩ := hcore (fun s => toPlane (path2 p s)) + (toPlane (rot t (alphaBeta2 p t))) (fun s => (alphaBeta2 p s).1) + (fun s => (alphaBeta2 p s).2) _ _ (hasDerivAt_toPlane (hasDerivAt_path2 p t)) + (inner_toPlane_rot_normalVector t _) (inner_toPlane_rot_tangentVector t _) + (hshape (1 + 2 * p.b1) (-1) 0 0 0 _ fun s => by dsimp [alphaBeta2]; ring) + (hshape (p.b2 + 1 / 2) p.b1 (-(1 / 4)) 0 0 _ fun s => by dsimp [alphaBeta2]; ring) + (fun r hr => by + change toPlane (path GerverSofa.PartB.params r) = toPlane (path2 p r) + rw [hp] + exact congrArg toPlane (path_eq_path2_of_mem_Icc heqs (hI1 ▸ hr))) + (fun r hr => hvel r hr) + rw [Prod.mk.injEq, hvel t ht, e0, e2, e3] + refine ⟨?_, ?_⟩ <;> dsimp [alphaBeta2] <;> ring + · -- Stage 3 + have hvel : ∀ r ∈ gerverStageIntervals 2, + paperGerverVelocityComponents r = alphaBeta3 p r := by + intro r hr + rw [hval 2 r hr] + simp [gerverBranchVelocityComponents, hp] + obtain ⟨e0, e1, e2, e3⟩ := hcore (fun s => toPlane (path3 p s)) + (toPlane (rot t (alphaBeta3 p t))) (fun s => (alphaBeta3 p s).1) + (fun s => (alphaBeta3 p s).2) _ _ (hasDerivAt_toPlane (hasDerivAt_path3 p t)) + (inner_toPlane_rot_normalVector t _) (inner_toPlane_rot_tangentVector t _) + (hshape (-1 - p.c2) (-1) 0 0 0 _ fun s => by dsimp [alphaBeta3]; ring) + (hshape (1 + p.c1) (-1) 0 0 0 _ fun s => by dsimp [alphaBeta3]; ring) + (fun r hr => by + change toPlane (path GerverSofa.PartB.params r) = toPlane (path3 p r) + rw [hp] + exact congrArg toPlane (path_eq_path3_of_mem_Icc heqs h1 (hI2 ▸ hr))) + (fun r hr => hvel r hr) + rw [Prod.mk.injEq, hvel t ht, e0, e2] + refine ⟨?_, ?_⟩ <;> dsimp [alphaBeta3] <;> ring + · -- Stage 4 + have hvel : ∀ r ∈ gerverStageIntervals 3, + paperGerverVelocityComponents r = alphaBeta4 p r := by + intro r hr + rw [hval 3 r hr] + simp [gerverBranchVelocityComponents, hp] + obtain ⟨e0, e1, e2, e3⟩ := hcore (fun s => toPlane (path4 p s)) + (toPlane (rot t (alphaBeta4 p t))) (fun s => (alphaBeta4 p s).1) + (fun s => (alphaBeta4 p s).2) _ _ (hasDerivAt_toPlane (hasDerivAt_path4 p t)) + (inner_toPlane_rot_normalVector t _) (inner_toPlane_rot_tangentVector t _) + (hshape (-p.d2 - 1 / 2) (-p.d1) (1 / 4) 0 0 _ fun s => by dsimp [alphaBeta4]; ring) + (hshape (2 * p.d1 - 1) (-1) 0 0 0 _ fun s => by dsimp [alphaBeta4]; ring) + (fun r hr => by + change toPlane (path GerverSofa.PartB.params r) = toPlane (path4 p r) + rw [hp] + exact congrArg toPlane (path_eq_path4_of_mem_Icc heqs h1 h2 (hI3 ▸ hr))) + (fun r hr => hvel r hr) + rw [Prod.mk.injEq, hvel t ht, e0, e1, e2] + refine ⟨?_, ?_⟩ <;> dsimp [alphaBeta4] <;> ring + · -- Stage 5 + have hvel : ∀ r ∈ gerverStageIntervals 4, + paperGerverVelocityComponents r = alphaBeta5 p r := by + intro r hr + rw [hval 4 r hr] + simp [gerverBranchVelocityComponents, hp] + obtain ⟨e0, e1, e2, e3⟩ := hcore (fun s => toPlane (path5 p s)) + (toPlane (rot t (alphaBeta5 p t))) (fun s => (alphaBeta5 p s).1) + (fun s => (alphaBeta5 p s).2) _ _ (hasDerivAt_toPlane (hasDerivAt_path5 p t)) + (inner_toPlane_rot_normalVector t _) (inner_toPlane_rot_tangentVector t _) + (hshape 1 0 0 (-2 * p.e1) (2 * p.e2) _ fun s => by dsimp [alphaBeta5]; ring) + (hshape (-(1 / 2)) 0 0 (2 * p.e2) (2 * p.e1) _ fun s => by dsimp [alphaBeta5]; ring) + (fun r hr => by + change toPlane (path GerverSofa.PartB.params r) = toPlane (path5 p r) + rw [hp] + exact congrArg toPlane (path_eq_path5_of_mem_Icc heqs h1 h2 (hI4 ▸ hr))) + (fun r hr => hvel r hr) + rw [Prod.mk.injEq, e0, e1, e2] + refine ⟨?_, ?_⟩ <;> dsimp [alphaBeta5] <;> ring + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Gerver / Outer Contacts +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem gerver_outer_contact_A (t : ℝ) (ht : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) : + paperGerverContacts t 0 ∈ gerverOuterCap := by + rw [mem_gerverOuterCap_iff, fromPlane_paperGerverContacts t ht 0] + exact GerverSofa.PartC.Stage3.supportA_direct t ht + +theorem gerver_outer_contact_C (t : ℝ) (ht : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) : + paperGerverContacts t 2 ∈ gerverOuterCap := by + rw [mem_gerverOuterCap_iff, fromPlane_paperGerverContacts t ht 2] + exact GerverSofa.PartC.Stage3.supportC_direct t ht + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Regularity of the certified Gerver stage data + +The five Gerver stages are nondegenerate: the six stage endpoints increase strictly from `0` +to `π / 2` (`gerverStageTimes_strictMono`), and `gerverStageIntervals_zero` through +`gerverStageIntervals_four` name the resulting closed stage intervals. The certified direct +path is continuously differentiable on the whole rotation interval +(`contDiff_paperGerverPath`), while each contact curve is only continuous globally +(`continuous_paperGerverContact`) and continuously differentiable on a single stage +(`contDiffOn_paperGerverContact`). Gluing two consecutive stages presents the two inner +contact curves on the parameter ranges where they touch the cap as continuous paths of bounded +variation (`gerverRightContactBV`, `gerverLeftContactBV`). + +The second half of the file differentiates the two inner contact curves stagewise. Writing +the velocity components of the direct path as `(α, β)`, the contact formulas are +`B = x + α v` and `D = x - β u`, so the product rule and the frame derivatives +`hasDerivAt_normalVector`, `hasDerivAt_tangentVector` give +`B' = (β + α') v` and `D' = (α - β') u` +(`hasDerivWithinAt_paperGerverContacts_one`, `hasDerivWithinAt_paperGerverContacts_three`). +Feeding the five analytic stage branches of `paperGerverContactData_properties` into these +two lemmas yields the signs of the two speeds on the stages where they are needed +(`hasDerivWithinAt_paperGerverContacts_one_neg_smul`, +`hasDerivWithinAt_paperGerverContacts_three_pos_smul`); the two nonconstant coefficients are +signed by the coarse box bounds `gerverDirectBox_b1_lower_bound`, +`gerverDirectBox_d1_upper_bound` and `gerverStageTimes_two_le_seven_div_ten`. + +The last two sections record the consequences used downstream: the frame coordinates +`s ↦ x s ⋅ u_s` and `s ↦ x s ⋅ v_s` of the direct path are differentiable with derivatives +`B ⋅ v` and `-D ⋅ u` (`hasDerivAt_inner_paperGerverPath_normalVector`, +`hasDerivAt_inner_paperGerverPath_tangentVector`), and against a fixed frame direction outside +the stage the two inner contact curves are strictly monotone on each stage +(`strictAntiOn_inner_paperGerverContacts_three`, `strictMonoOn_inner_paperGerverContacts_one`). +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The six Gerver stage endpoints increase strictly along the rotation interval. -/ +theorem gerverStageTimes_strictMono : StrictMono gerverStageTimes := by + obtain ⟨-, -, -, hpos, hlt, hqt, -⟩ := gerver_parameter_identification.1 + GerverSofa.PartB.params GerverSofa.PartB.params_mem GerverSofa.PartB.params_equations + rw [selected_phi] at hpos + rw [selected_phi, selected_theta] at hlt + rw [selected_theta] at hqt + refine Fin.strictMono_iff_lt_succ.mpr fun i ↦ ?_ + fin_cases i + · change gerverStageTimes 0 < gerverStageTimes 1 + simp only [gerverStageTimes, Matrix.cons_val_zero, Matrix.cons_val_one] + linarith + · change gerverStageTimes 1 < gerverStageTimes 2 + simp only [gerverStageTimes, Matrix.cons_val_zero, Matrix.cons_val_one, Matrix.cons_val] + linarith + · change gerverStageTimes 2 < gerverStageTimes 3 + simp only [gerverStageTimes, Matrix.cons_val] + linarith + · change gerverStageTimes 3 < gerverStageTimes 4 + simp only [gerverStageTimes, Matrix.cons_val] + linarith + · change gerverStageTimes 4 < gerverStageTimes 5 + simp only [gerverStageTimes, Matrix.cons_val] + linarith + +/-- The second Gerver stage time is at most `7/10`. This coarse bound on the certified +switching angle `θ` is what the stage speed estimates below consume. -/ +theorem gerverStageTimes_two_le_seven_div_ten : gerverStageTimes 2 ≤ (7 : ℝ) / 10 := by + have h := GerverSofa.PartB.theta_bounds.2 + rw [gerverStageTimes_two] + norm_num at h ⊢ + linarith + +/-- The first Gerver stage runs between the first two stage times. -/ +theorem gerverStageIntervals_zero : + gerverStageIntervals 0 = Set.Icc (gerverStageTimes 0) (gerverStageTimes 1) := rfl + +/-- The second Gerver stage runs between the second and third stage times. -/ +theorem gerverStageIntervals_one : + gerverStageIntervals 1 = Set.Icc (gerverStageTimes 1) (gerverStageTimes 2) := rfl + +/-- The fourth Gerver stage runs between the fourth and fifth stage times. -/ +theorem gerverStageIntervals_three : + gerverStageIntervals 3 = Set.Icc (gerverStageTimes 3) (gerverStageTimes 4) := rfl + +/-- The fifth Gerver stage runs between the last two stage times. -/ +theorem gerverStageIntervals_four : + gerverStageIntervals 4 = Set.Icc (gerverStageTimes 4) (gerverStageTimes 5) := rfl + +/-- The certified direct Gerver path is continuously differentiable. -/ +theorem contDiff_paperGerverPath : ContDiff ℝ 1 paperGerverPath := by + obtain ⟨hC1, -, -⟩ := gerver_direct_path_regularity GerverSofa.PartB.params + GerverSofa.PartB.params_mem GerverSofa.PartB.params_equations + obtain ⟨L, hL⟩ : ∃ L : GerverSofa.Point →L[ℝ] Point, + ⇑L = GerverSofa.PartF.Coordinates.toPlane := + ⟨{ toLinearMap := GerverSofa.PartF.Coordinates.linearEquiv.toLinearMap + cont := GerverSofa.PartF.Coordinates.continuous_toPlane }, rfl⟩ + have hcomp : paperGerverPath = ⇑L ∘ GerverSofa.Romik.path GerverSofa.PartB.params := by + rw [hL] + rfl + rw [hcomp] + exact L.contDiff.comp hC1 + +/-- Each Gerver contact curve is continuous. -/ +theorem continuous_paperGerverContact (i : Fin 4) : + Continuous fun t : ℝ ↦ paperGerverContacts t i := + (continuous_apply i).comp paperGerverContactData_properties.2.1 + +/-- Each Gerver contact curve is continuously differentiable on each closed stage interval. -/ +theorem contDiffOn_paperGerverContact (i : Fin 4) (j : Fin 5) : + ContDiffOn ℝ 1 (fun t : ℝ ↦ paperGerverContacts t i) (gerverStageIntervals j) := + (contDiffOn_pi.mp (paperGerverContactData_properties.2.2.1 j) i).of_le (by norm_num) + +/-! ### The two inner contact curves as bounded-variation paths -/ + +/-- The second Gerver contact curve, on the two stages `[t₃, t₅]` where it is an inner contact +of the cap, as a continuous path of bounded variation. -/ +def gerverRightContactBV : ContinuousBVPaths (gerverStageTimes 3) (gerverStageTimes 5) := + continuousBVOfContDiffOnIccUnionIcc (fun t ↦ paperGerverContacts t 1) + (gerverStageTimes_strictMono (show (3 : Fin 6) < 4 by decide)).le + (gerverStageTimes_strictMono (show (4 : Fin 6) < 5 by decide)).le + (contDiffOn_paperGerverContact 1 3) (contDiffOn_paperGerverContact 1 4) + +/-- The fourth Gerver contact curve, on the two stages `[t₀, t₂]` where it is an inner contact +of the cap, as a continuous path of bounded variation. -/ +def gerverLeftContactBV : ContinuousBVPaths (gerverStageTimes 0) (gerverStageTimes 2) := + continuousBVOfContDiffOnIccUnionIcc (fun t ↦ paperGerverContacts t 3) + (gerverStageTimes_strictMono (show (0 : Fin 6) < 1 by decide)).le + (gerverStageTimes_strictMono (show (1 : Fin 6) < 2 by decide)).le + (contDiffOn_paperGerverContact 3 0) (contDiffOn_paperGerverContact 3 1) + +/-- `gerverRightContactBV` is the second Gerver contact curve. -/ +theorem gerverRightContactBV_apply (t : Set.Icc (gerverStageTimes 3) (gerverStageTimes 5)) : + gerverRightContactBV.val t = paperGerverContacts t 1 := rfl + +/-- `gerverLeftContactBV` is the fourth Gerver contact curve. -/ +theorem gerverLeftContactBV_apply (t : Set.Icc (gerverStageTimes 0) (gerverStageTimes 2)) : + gerverLeftContactBV.val t = paperGerverContacts t 3 := rfl + +/-! ### Stage derivatives of the two inner contact curves -/ + +/-- The velocity components are the frame coordinates of the derivative of the direct path. -/ +theorem deriv_paperGerverPath_eq_smul_add_smul {t a b : ℝ} + (h : paperGerverVelocityComponents t = (a, b)) : + deriv paperGerverPath t = + a • normalVector (t : Real.Angle) + b • tangentVector (t : Real.Angle) := by + have hframe := inner_normalVector_smul_add_inner_tangentVector_smul + (deriv paperGerverPath t) (t : Real.Angle) + rw [paperGerverVelocityComponents, Prod.mk.injEq] at h + rw [h.1, h.2] at hframe + exact hframe.symm + +/-- On a stage where the direct path has velocity components `(α, β)`, the second contact +curve `B = x + α v` has derivative `(β + α') v`: the frame derivative `v' = -u` cancels the +normal component `α u` of `x'`, leaving the tangential component `β v` and the derivative of +the coefficient. -/ +theorem hasDerivWithinAt_paperGerverContacts_one {i : Fin 5} {t c α' : ℝ} {α β : ℝ → ℝ} + (ht : t ∈ gerverStageIntervals i) (hα : HasDerivAt α α' t) + (hαβ : ∀ s ∈ gerverStageIntervals i, paperGerverVelocityComponents s = (α s, β s)) + (hc : β t + α' = c) : + HasDerivWithinAt (fun s ↦ paperGerverContacts s 1) + (c • tangentVector (t : Real.Angle)) (gerverStageIntervals i) t := by + have hx : HasDerivAt paperGerverPath (deriv paperGerverPath t) t := + (contDiff_paperGerverPath.differentiable one_ne_zero t).hasDerivAt + have hd := deriv_paperGerverPath_eq_smul_add_smul (hαβ t ht) + have hmain : HasDerivAt (fun s ↦ paperGerverPath s + α s • tangentVector (s : Real.Angle)) + (c • tangentVector (t : Real.Angle)) t := by + have h := hx.add (hα.smul (hasDerivAt_tangentVector t)) + rw [hd] at h + rw [← hc] + convert h using 1 + module + refine hmain.hasDerivWithinAt.congr (fun y hy ↦ ?_) ?_ + · change paperGerverPath y + (paperGerverVelocityComponents y).1 • + tangentVector (y : Real.Angle) = _ + rw [hαβ y hy] + · change paperGerverPath t + (paperGerverVelocityComponents t).1 • + tangentVector (t : Real.Angle) = _ + rw [hαβ t ht] + +/-- On a stage where the direct path has velocity components `(α, β)`, the fourth contact +curve `D = x - β u` has derivative `(α - β') u`; see +`hasDerivWithinAt_paperGerverContacts_one` for the shape of the computation. -/ +theorem hasDerivWithinAt_paperGerverContacts_three {i : Fin 5} {t c β' : ℝ} {α β : ℝ → ℝ} + (ht : t ∈ gerverStageIntervals i) (hβ : HasDerivAt β β' t) + (hαβ : ∀ s ∈ gerverStageIntervals i, paperGerverVelocityComponents s = (α s, β s)) + (hc : α t - β' = c) : + HasDerivWithinAt (fun s ↦ paperGerverContacts s 3) + (c • normalVector (t : Real.Angle)) (gerverStageIntervals i) t := by + have hx : HasDerivAt paperGerverPath (deriv paperGerverPath t) t := + (contDiff_paperGerverPath.differentiable one_ne_zero t).hasDerivAt + have hd := deriv_paperGerverPath_eq_smul_add_smul (hαβ t ht) + have hmain : HasDerivAt (fun s ↦ paperGerverPath s - β s • normalVector (s : Real.Angle)) + (c • normalVector (t : Real.Angle)) t := by + have h := hx.sub (hβ.smul (hasDerivAt_normalVector t)) + rw [hd] at h + rw [← hc] + convert h using 1 + module + refine hmain.hasDerivWithinAt.congr (fun y hy ↦ ?_) ?_ + · change paperGerverPath y - (paperGerverVelocityComponents y).2 • + normalVector (y : Real.Angle) = _ + rw [hαβ y hy] + · change paperGerverPath t - (paperGerverVelocityComponents t).2 • + normalVector (t : Real.Angle) = _ + rw [hαβ t ht] + +/-- On each of the last two stages the second contact curve moves strictly backwards along +the tangent direction: its one-sided derivative is a negative multiple of `v_t`. On the +fourth stage the tangential speed is `d₁ - 1 - t/2`, negative because `t ≥ π/2 - θ > 4/5` and +`d₁ ≤ 33/25`; on the fifth it is the exact constant `-1/2`. -/ +theorem hasDerivWithinAt_paperGerverContacts_one_neg_smul {i : Fin 5} (hi : i = 3 ∨ i = 4) + {t : ℝ} (ht : t ∈ gerverStageIntervals i) : + ∃ c : ℝ, c < 0 ∧ + HasDerivWithinAt (fun s ↦ paperGerverContacts s 1) + (c • tangentVector (t : Real.Angle)) (gerverStageIntervals i) t := by + rcases hi with rfl | rfl + · have hbranch : ∀ s ∈ gerverStageIntervals 3, paperGerverVelocityComponents s = + ((1 / 4 : ℝ) * s * s - GerverSofa.PartB.params.d1 * s - + GerverSofa.PartB.params.d2 - 1 / 2, + 2 * GerverSofa.PartB.params.d1 - 1 - s) := by + intro s hs + rw [paperGerverContactData_properties.2.2.2 3 s hs] + rfl + have hα : HasDerivAt (fun s : ℝ ↦ (1 / 4 : ℝ) * s * s - + GerverSofa.PartB.params.d1 * s - GerverSofa.PartB.params.d2 - 1 / 2) + (t / 2 - GerverSofa.PartB.params.d1) t := by + have h := ((((hasDerivAt_id' t).const_mul (1 / 4 : ℝ)).mul (hasDerivAt_id' t)).sub + ((hasDerivAt_id' t).const_mul GerverSofa.PartB.params.d1)).sub_const + GerverSofa.PartB.params.d2 |>.sub_const (1 / 2 : ℝ) + convert h using 1 + ring + refine ⟨GerverSofa.PartB.params.d1 - 1 - t / 2, ?_, + hasDerivWithinAt_paperGerverContacts_one ht hα hbranch (by ring)⟩ + rw [gerverStageIntervals_three] at ht + have hrefl : gerverStageTimes 3 = Real.pi / 2 - gerverStageTimes 2 := rfl + linarith [gerverDirectBox_d1_upper_bound GerverSofa.PartB.params_mem, + gerverStageTimes_two_le_seven_div_ten, ht.1, Real.pi_gt_three] + · have hbranch : ∀ s ∈ gerverStageIntervals 4, paperGerverVelocityComponents s = + (1 - 2 * GerverSofa.PartB.params.e1 * Real.sin s + + 2 * GerverSofa.PartB.params.e2 * Real.cos s, + 2 * GerverSofa.PartB.params.e1 * Real.cos s + + 2 * GerverSofa.PartB.params.e2 * Real.sin s - 1 / 2) := by + intro s hs + rw [paperGerverContactData_properties.2.2.2 4 s hs] + rfl + have hα : HasDerivAt (fun s : ℝ ↦ 1 - 2 * GerverSofa.PartB.params.e1 * Real.sin s + + 2 * GerverSofa.PartB.params.e2 * Real.cos s) + (-(2 * GerverSofa.PartB.params.e1 * Real.cos t) - + 2 * GerverSofa.PartB.params.e2 * Real.sin t) t := by + have h := ((hasDerivAt_const t (1 : ℝ)).sub + ((Real.hasDerivAt_sin t).const_mul (2 * GerverSofa.PartB.params.e1))).add + ((Real.hasDerivAt_cos t).const_mul (2 * GerverSofa.PartB.params.e2)) + convert h using 1 + ring + exact ⟨-(1 / 2), by norm_num, + hasDerivWithinAt_paperGerverContacts_one ht hα hbranch (by ring)⟩ + +/-- On each of the first two stages the fourth contact curve moves strictly forwards along +the normal direction: its one-sided derivative is a positive multiple of `u_t`. On the first +stage the normal speed is the exact constant `1/2`; on the second it is `1 + b₁ - t/2`, +positive because `t ≤ θ ≤ 7/10` and `b₁ ≥ -53/100`. -/ +theorem hasDerivWithinAt_paperGerverContacts_three_pos_smul {i : Fin 5} (hi : i = 0 ∨ i = 1) + {t : ℝ} (ht : t ∈ gerverStageIntervals i) : + ∃ c : ℝ, 0 < c ∧ + HasDerivWithinAt (fun s ↦ paperGerverContacts s 3) + (c • normalVector (t : Real.Angle)) (gerverStageIntervals i) t := by + rcases hi with rfl | rfl + · have hbranch : ∀ s ∈ gerverStageIntervals 0, paperGerverVelocityComponents s = + (-2 * GerverSofa.PartB.params.a1 * Real.sin s + + 2 * GerverSofa.PartB.params.a2 * Real.cos s + 1 / 2, + 2 * GerverSofa.PartB.params.a1 * Real.cos s + + 2 * GerverSofa.PartB.params.a2 * Real.sin s - 1) := by + intro s hs + rw [paperGerverContactData_properties.2.2.2 0 s hs] + rfl + have hβ : HasDerivAt (fun s : ℝ ↦ 2 * GerverSofa.PartB.params.a1 * Real.cos s + + 2 * GerverSofa.PartB.params.a2 * Real.sin s - 1) + (-(2 * GerverSofa.PartB.params.a1 * Real.sin t) + + 2 * GerverSofa.PartB.params.a2 * Real.cos t) t := by + have h := (((Real.hasDerivAt_cos t).const_mul (2 * GerverSofa.PartB.params.a1)).add + ((Real.hasDerivAt_sin t).const_mul (2 * GerverSofa.PartB.params.a2))).sub_const (1 : ℝ) + convert h using 1 + ring + exact ⟨1 / 2, by norm_num, + hasDerivWithinAt_paperGerverContacts_three ht hβ hbranch (by ring)⟩ + · have hbranch : ∀ s ∈ gerverStageIntervals 1, paperGerverVelocityComponents s = + (1 + 2 * GerverSofa.PartB.params.b1 - s, + -(1 / 4 : ℝ) * s * s + GerverSofa.PartB.params.b1 * s + + GerverSofa.PartB.params.b2 + 1 / 2) := by + intro s hs + rw [paperGerverContactData_properties.2.2.2 1 s hs] + rfl + have hβ : HasDerivAt (fun s : ℝ ↦ -(1 / 4 : ℝ) * s * s + + GerverSofa.PartB.params.b1 * s + GerverSofa.PartB.params.b2 + 1 / 2) + (-(t / 2) + GerverSofa.PartB.params.b1) t := by + have h := ((((hasDerivAt_id' t).const_mul (-(1 / 4) : ℝ)).mul (hasDerivAt_id' t)).add + ((hasDerivAt_id' t).const_mul GerverSofa.PartB.params.b1)).add_const + GerverSofa.PartB.params.b2 |>.add_const (1 / 2 : ℝ) + convert h using 1 + ring + refine ⟨1 + GerverSofa.PartB.params.b1 - t / 2, ?_, + hasDerivWithinAt_paperGerverContacts_three ht hβ hbranch (by ring)⟩ + rw [gerverStageIntervals_one] at ht + linarith [gerverDirectBox_b1_lower_bound GerverSofa.PartB.params_mem, + gerverStageTimes_two_le_seven_div_ten, ht.2] + +/-! ### Frame coordinates of the direct path -/ + +/-- The derivative of the direct Gerver path in the moving frame. -/ +theorem hasDerivAt_paperGerverPath_frame (t : ℝ) : + HasDerivAt paperGerverPath + ((paperGerverVelocityComponents t).1 • normalVector (t : Real.Angle) + + (paperGerverVelocityComponents t).2 • tangentVector (t : Real.Angle)) t := by + have h := (contDiff_paperGerverPath.differentiable one_ne_zero t).hasDerivAt + rwa [deriv_paperGerverPath_eq_smul_add_smul rfl] at h + +/-- The angular derivative of the normal frame coordinate of the Gerver path is the tangent +coordinate of the second contact curve: with `B = x + α v` the frame derivative `u' = v` +contributes `x ⋅ v` and the normal component of `x'` contributes `α`. -/ +theorem hasDerivAt_inner_paperGerverPath_normalVector (t : ℝ) : + HasDerivAt (fun s : ℝ ↦ inner ℝ (paperGerverPath s) (normalVector (s : Real.Angle))) + (inner ℝ (paperGerverContacts t 1) (tangentVector (t : Real.Angle))) t := by + have h := (hasDerivAt_paperGerverPath_frame t).inner ℝ (hasDerivAt_normalVector t) + convert h using 1 + change inner ℝ (paperGerverPath t + (paperGerverVelocityComponents t).1 • + tangentVector (t : Real.Angle)) (tangentVector (t : Real.Angle)) = _ + rw [inner_add_left, inner_add_left, real_inner_smul_left, real_inner_smul_left, + real_inner_smul_left, inner_tangentVector_self, inner_normalVector_self, + inner_tangentVector_normalVector_real, sub_self, Real.sin_zero] + ring + +/-- The angular derivative of the tangent frame coordinate of the Gerver path is minus the +normal coordinate of the fourth contact curve: with `D = x - β u` the frame derivative +`v' = -u` contributes `-x ⋅ u` and the tangent component of `x'` contributes `β`. -/ +theorem hasDerivAt_inner_paperGerverPath_tangentVector (t : ℝ) : + HasDerivAt (fun s : ℝ ↦ inner ℝ (paperGerverPath s) (tangentVector (s : Real.Angle))) + (-inner ℝ (paperGerverContacts t 3) (normalVector (t : Real.Angle))) t := by + have h := (hasDerivAt_paperGerverPath_frame t).inner ℝ (hasDerivAt_tangentVector t) + convert h using 1 + change -inner ℝ (paperGerverPath t - (paperGerverVelocityComponents t).2 • + normalVector (t : Real.Angle)) (normalVector (t : Real.Angle)) = _ + rw [inner_sub_left, inner_add_left, real_inner_smul_left, real_inner_smul_left, + real_inner_smul_left, inner_neg_right, inner_normalVector_self, inner_tangentVector_self, + inner_normalVector_tangentVector] + ring + +/-! ### Stagewise monotonicity of the inner contact curves against a fixed direction -/ + +/-- Against the tangent direction at a later angle `c`, the fourth Gerver contact curve is +strictly antitone on each of its first two stages: its stage speed is a positive multiple of +`u_s`, whose `v_c` coordinate is `sin (s - c) < 0`. -/ +theorem strictAntiOn_inner_paperGerverContacts_three {i : Fin 5} (hi : i = 0 ∨ i = 1) {c : ℝ} + (hlt : ∀ s ∈ gerverStageIntervals i, s < c) + (hwide : ∀ s ∈ gerverStageIntervals i, c - Real.pi < s) : + StrictAntiOn (fun s ↦ inner ℝ (paperGerverContacts s 3) (tangentVector (c : Real.Angle))) + (gerverStageIntervals i) := by + rw [show gerverStageIntervals i = + Set.Icc (gerverStageTimes i.castSucc) (gerverStageTimes i.succ) from rfl] at hlt hwide ⊢ + have hspeed : ∀ s ∈ interior (Set.Icc (gerverStageTimes i.castSucc) + (gerverStageTimes i.succ)), ∃ cs : ℝ, 0 < cs ∧ + derivWithin (fun r ↦ paperGerverContacts r 3) + (interior (Set.Icc (gerverStageTimes i.castSucc) (gerverStageTimes i.succ))) s = + cs • normalVector (s : Real.Angle) ∧ + HasDerivWithinAt (fun r ↦ paperGerverContacts r 3) (cs • normalVector (s : Real.Angle)) + (interior (Set.Icc (gerverStageTimes i.castSucc) (gerverStageTimes i.succ))) s := by + intro s hs + obtain ⟨cs, hcs, hder⟩ := + hasDerivWithinAt_paperGerverContacts_three_pos_smul hi (interior_subset hs) + exact ⟨cs, hcs, (hder.mono interior_subset).derivWithin + (isOpen_interior.uniqueDiffWithinAt hs), hder.mono interior_subset⟩ + refine strictAntiOn_of_hasDerivWithinAt_neg (convex_Icc _ _) + ((continuous_paperGerverContact 3).continuousOn.inner continuousOn_const) + (f' := fun s ↦ inner ℝ (derivWithin (fun r ↦ paperGerverContacts r 3) + (interior (Set.Icc (gerverStageTimes i.castSucc) (gerverStageTimes i.succ))) s) + (tangentVector (c : Real.Angle))) ?_ ?_ + · intro s hs + obtain ⟨cs, -, hu, hder⟩ := hspeed s hs + rw [hu] + simpa using + hder.inner ℝ (hasDerivWithinAt_const s _ (tangentVector (c : Real.Angle))) + · intro s hs + obtain ⟨cs, hcs, hu, -⟩ := hspeed s hs + rw [hu, real_inner_smul_left, + real_inner_comm (tangentVector (c : Real.Angle)) (normalVector (s : Real.Angle)), + inner_tangentVector_normalVector_real] + exact mul_neg_of_pos_of_neg hcs (Real.sin_neg_of_neg_of_neg_pi_lt + (by linarith only [hlt s (interior_subset hs)]) + (by linarith only [hwide s (interior_subset hs)])) + +/-- Against the normal direction at an earlier angle `c`, the second Gerver contact curve is +strictly monotone on each of its last two stages: its stage speed is a negative multiple of +`v_s`, whose `u_c` coordinate is `sin (c - s) < 0`. -/ +theorem strictMonoOn_inner_paperGerverContacts_one {i : Fin 5} (hi : i = 3 ∨ i = 4) {c : ℝ} + (hlt : ∀ s ∈ gerverStageIntervals i, c < s) + (hwide : ∀ s ∈ gerverStageIntervals i, s < c + Real.pi) : + StrictMonoOn (fun s ↦ inner ℝ (paperGerverContacts s 1) (normalVector (c : Real.Angle))) + (gerverStageIntervals i) := by + rw [show gerverStageIntervals i = + Set.Icc (gerverStageTimes i.castSucc) (gerverStageTimes i.succ) from rfl] at hlt hwide ⊢ + have hspeed : ∀ s ∈ interior (Set.Icc (gerverStageTimes i.castSucc) + (gerverStageTimes i.succ)), ∃ cs : ℝ, cs < 0 ∧ + derivWithin (fun r ↦ paperGerverContacts r 1) + (interior (Set.Icc (gerverStageTimes i.castSucc) (gerverStageTimes i.succ))) s = + cs • tangentVector (s : Real.Angle) ∧ + HasDerivWithinAt (fun r ↦ paperGerverContacts r 1) (cs • tangentVector (s : Real.Angle)) + (interior (Set.Icc (gerverStageTimes i.castSucc) (gerverStageTimes i.succ))) s := by + intro s hs + obtain ⟨cs, hcs, hder⟩ := + hasDerivWithinAt_paperGerverContacts_one_neg_smul hi (interior_subset hs) + exact ⟨cs, hcs, (hder.mono interior_subset).derivWithin + (isOpen_interior.uniqueDiffWithinAt hs), hder.mono interior_subset⟩ + refine strictMonoOn_of_hasDerivWithinAt_pos (convex_Icc _ _) + ((continuous_paperGerverContact 1).continuousOn.inner continuousOn_const) + (f' := fun s ↦ inner ℝ (derivWithin (fun r ↦ paperGerverContacts r 1) + (interior (Set.Icc (gerverStageTimes i.castSucc) (gerverStageTimes i.succ))) s) + (normalVector (c : Real.Angle))) ?_ ?_ + · intro s hs + obtain ⟨cs, -, hu, hder⟩ := hspeed s hs + rw [hu] + simpa using + hder.inner ℝ (hasDerivWithinAt_const s _ (normalVector (c : Real.Angle))) + · intro s hs + obtain ⟨cs, hcs, hu, -⟩ := hspeed s hs + rw [hu, real_inner_smul_left, inner_tangentVector_normalVector_real] + exact mul_pos_of_neg_of_neg hcs (Real.sin_neg_of_neg_of_neg_pi_lt + (by linarith only [hlt s (interior_subset hs)]) + (by linarith only [hwide s (interior_subset hs)])) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Stage endpoints, grid angles and branch selection + +The certificate subdivides each of the five analytic stages of Gerver's sofa into +`NN = 64` equal parts. This module carries the real-valued mirror of that grid: +`gerverStageTime` re-indexes the six stage endpoints by a natural number, +`gerverGridTime m` is the `m`-th grid angle, `gerverContactPoint` is the dictionary of the +four contact curves and the ambient path, and `GerverAreaCert.stageOf m` is the analytic +branch that the piecewise definitions select at the `m`-th angle. The soundness statements +`endZ_sound` and `ttZ_sound` say that the integer data of the certificate encloses these +real quantities; the remaining lemmas are the order facts the evaluator needs. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open GerverAreaCert + +/-- The six stage endpoints indexed by a natural number, constant past `5`. -/ +def gerverStageTime (s : ℕ) : ℝ := gerverStageTimes ⟨min 5 s, by omega⟩ + +/-- The real grid angle at index `m`, mirroring `GerverAreaCert.ttZ`. -/ +def gerverGridTime (m : ℕ) : ℝ := + (((NN - m % NN : ℕ) : ℝ) * gerverStageTime (m / NN) + + ((m % NN : ℕ) : ℝ) * gerverStageTime (m / NN + 1)) / (NN : ℝ) + +/-- The curve selected by a certificate `kind`: `0` the path, `1` `A`, `2` `B`, `3` `C`, +`4` `D`. -/ +def gerverContactPoint : ℕ → ℝ → Point + | 0 => paperGerverPath + | 1 => fun t ↦ paperGerverContacts t 0 + | 2 => fun t ↦ paperGerverContacts t 1 + | 3 => fun t ↦ paperGerverContacts t 2 + | _ => fun t ↦ paperGerverContacts t 3 + +/-- The rotation interval starts at the first stage endpoint `0`. -/ +theorem gerverStageTime_zero : gerverStageTime 0 = 0 := gerverStageTimes_zero + +/-- The first stage ends at `φ`. -/ +theorem gerverStageTime_one : gerverStageTime 1 = GerverSofa.PartB.params.phi := + gerverStageTimes_one + +/-- The second stage ends at `θ`. -/ +theorem gerverStageTime_two : gerverStageTime 2 = GerverSofa.PartB.params.theta := + gerverStageTimes_two + +/-- The third stage ends at `η = π / 2 - θ`. -/ +theorem gerverStageTime_three : gerverStageTime 3 = GerverSofa.PartC.eta := + gerverStageTimes_three + +/-- The fourth stage ends at `τ = π / 2 - φ`. -/ +theorem gerverStageTime_four : gerverStageTime 4 = GerverSofa.PartC.tau := + gerverStageTimes_four + +/-- The fifth stage ends at `π / 2`. -/ +theorem gerverStageTime_five : gerverStageTime 5 = Real.pi / 2 := gerverStageTimes_five + +/-! ### Order properties of the stage endpoints and the grid -/ + +/-- The five stage endpoints are strictly increasing. -/ +theorem gerverStageTime_lt_succ (s : ℕ) (hs : s < 5) : + gerverStageTime s < gerverStageTime (s + 1) := by + refine gerverStageTimes_strictMono ?_ + simp only [Fin.mk_lt_mk] + omega + +/-- Past index `5` the `ℕ`-indexed stage endpoint is constantly `π / 2`. -/ +private theorem gerverStageTime_of_five_le {s : ℕ} (hs : 5 ≤ s) : + gerverStageTime s = Real.pi / 2 := by + simp only [gerverStageTime, min_eq_left hs] + exact gerverStageTimes_five + +/-- The stage-endpoint enclosure at every index, including those past `5`. -/ +private theorem endZ_sound_all (s : ℕ) : SI.Contains (endZ s) (gerverStageTime s) := by + obtain ⟨-, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, hphi, htheta⟩ := + contains_params + rcases s with _ | _ | _ | _ | _ | _ | n + · rw [gerverStageTime_zero] + exact SI.contains_zero + · rw [gerverStageTime_one] + exact hphi + · rw [gerverStageTime_two] + exact htheta + · rw [show gerverStageTime 3 = Real.pi / 2 - GerverSofa.PartB.params.theta from + gerverStageTime_three] + exact SI.contains_sub contains_piHalfZ htheta + · rw [show gerverStageTime 4 = Real.pi / 2 - GerverSofa.PartB.params.phi from + gerverStageTime_four] + exact SI.contains_sub contains_piHalfZ hphi + · rw [gerverStageTime_five] + exact contains_piHalfZ + · rw [gerverStageTime_of_five_le (s := n + 6) (by omega)] + exact contains_piHalfZ + +/-- The integer stage endpoints enclose the real ones. -/ +theorem endZ_sound (s : ℕ) (hs : s ≤ 5) : SI.Contains (endZ s) (gerverStageTime s) := by + interval_cases s <;> exact endZ_sound_all _ + +/-- The integer grid angles enclose the real ones. -/ +theorem ttZ_sound (m : ℕ) (hm : m ≤ 5 * NN) : SI.Contains (ttZ m) (gerverGridTime m) := by + have hNN : (0 : ℤ) < (NN : ℤ) := by norm_num [NN] + have hdiv : m / NN ≤ 5 := by + rw [show NN = 64 from rfl] at hm ⊢ + omega + have key : SI.Contains + (SI.add (SI.imul ((NN - m % NN : ℕ) : ℤ) (endZ (m / NN))) + (SI.imul ((m % NN : ℕ) : ℤ) (endZ (m / NN + 1)))) + (((NN - m % NN : ℕ) : ℝ) * gerverStageTime (m / NN) + + ((m % NN : ℕ) : ℝ) * gerverStageTime (m / NN + 1)) := by + refine SI.contains_add ?_ ?_ + · have h := SI.contains_imul ((NN - m % NN : ℕ) : ℤ) (endZ_sound (m / NN) hdiv) + rwa [Int.cast_natCast] at h + · have h := SI.contains_imul ((m % NN : ℕ) : ℤ) (endZ_sound_all (m / NN + 1)) + rwa [Int.cast_natCast] at h + have hcast : (((NN : ℤ)) : ℝ) = (NN : ℝ) := by push_cast; ring + rw [gerverGridTime, ← hcast] + exact SI.contains_divn hNN key + +/-- The grid step is uniform across stage joins. -/ +theorem gerverGridTime_succ_sub (m : ℕ) : + gerverGridTime (m + 1) - gerverGridTime m = + (gerverStageTime (m / NN + 1) - gerverStageTime (m / NN)) / (NN : ℝ) := by + have hNNR : (0 : ℝ) < (NN : ℝ) := by norm_num [NN] + have hr : m % NN < NN := Nat.mod_lt _ (by norm_num [NN]) + have hsplit : ((m + 1) % NN = m % NN + 1 ∧ (m + 1) / NN = m / NN) ∨ + (m % NN + 1 = NN ∧ (m + 1) % NN = 0 ∧ (m + 1) / NN = m / NN + 1) := by + rw [show NN = 64 from rfl] + omega + rcases hsplit with ⟨hmod, hdiv⟩ | ⟨hfull, hmod, hdiv⟩ + · rw [gerverGridTime, gerverGridTime, hmod, hdiv, + Nat.cast_sub (by omega : m % NN + 1 ≤ NN), Nat.cast_sub hr.le] + push_cast + field_simp + ring + · rw [gerverGridTime, gerverGridTime, hmod, hdiv, Nat.cast_sub hr.le] + have hrR : ((m % NN : ℕ) : ℝ) = (NN : ℝ) - 1 := by + have : ((m % NN + 1 : ℕ) : ℝ) = ((NN : ℕ) : ℝ) := by rw [hfull] + push_cast at this + linarith + rw [hrR] + simp only [Nat.sub_zero] + push_cast + field_simp + ring + +/-- The grid angles are strictly increasing. -/ +theorem gerverGridTime_lt_succ (m : ℕ) (hm : m < 5 * NN) : + gerverGridTime m < gerverGridTime (m + 1) := by + have hNNR : (0 : ℝ) < (NN : ℝ) := by norm_num [NN] + have hlt : m / NN < 5 := (Nat.div_lt_iff_lt_mul (by norm_num [NN])).mpr hm + have hstep := gerverGridTime_succ_sub m + have hstage := gerverStageTime_lt_succ (m / NN) hlt + have hpos : 0 < (gerverStageTime (m / NN + 1) - gerverStageTime (m / NN)) / (NN : ℝ) := + div_pos (by linarith) hNNR + linarith + +/-- Strict monotonicity of the grid angles below the top index, from `gerverGridTime_lt_succ`. -/ +theorem gerverGridTime_lt_of_lt {m n : ℕ} (hmn : m < n) (hn : n ≤ 5 * NN) : + gerverGridTime m < gerverGridTime n := by + induction n with + | zero => omega + | succ n ih => + rcases Nat.lt_succ_iff_lt_or_eq.1 hmn with h | h + · exact (ih h (by omega)).trans (gerverGridTime_lt_succ n (by omega)) + · subst h + exact gerverGridTime_lt_succ m (by omega) + +/-- Weak monotonicity of the grid angles below the top index, from `gerverGridTime_lt_succ`. -/ +theorem gerverGridTime_le_of_le {m n : ℕ} (hmn : m ≤ n) (hn : n ≤ 5 * NN) : + gerverGridTime m ≤ gerverGridTime n := by + rcases eq_or_lt_of_le hmn with rfl | h + · exact le_rfl + · exact (gerverGridTime_lt_of_lt h hn).le + +/-- The grid angle at a stage boundary is the stage endpoint itself. -/ +theorem gerverGridTime_mul_NN (s : ℕ) : gerverGridTime (s * NN) = gerverStageTime s := by + have hNN : 0 < NN := by norm_num [NN] + have hne : (NN : ℝ) ≠ 0 := by norm_num [NN] + rw [gerverGridTime, Nat.mul_mod_left, Nat.mul_div_cancel _ hNN] + simp only [Nat.sub_zero, Nat.cast_zero, zero_mul, add_zero] + exact mul_div_cancel_left₀ _ hne + +/-- The grid starts at `0`. -/ +theorem gerverGridTime_zero : gerverGridTime 0 = 0 := by + have h := gerverGridTime_mul_NN 0 + rw [zero_mul] at h + rw [h, gerverStageTime_zero] + +/-- The grid ends at `π / 2`. -/ +theorem gerverGridTime_top : gerverGridTime (5 * NN) = Real.pi / 2 := by + rw [gerverGridTime_mul_NN 5, gerverStageTime_five] + +/-- Every grid angle lies in the rotation interval. -/ +theorem gerverGridTime_mem_Icc (m : ℕ) (hm : m ≤ 5 * NN) : + gerverGridTime m ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := by + refine ⟨?_, ?_⟩ + · rw [← gerverGridTime_zero] + exact gerverGridTime_le_of_le (Nat.zero_le m) hm + · rw [← gerverGridTime_top] + exact gerverGridTime_le_of_le hm le_rfl + +/-- The branch index is one of the five stages. -/ +theorem stageOf_mem (m : ℕ) (hm : m ≤ 5 * NN) : 1 ≤ stageOf m ∧ stageOf m ≤ 5 := by + have hNN : 0 < NN := by norm_num [NN] + have hd : m / NN ≤ 5 := Nat.div_le_of_le_mul (by rw [Nat.mul_comm]; exact hm) + rw [stageOf] + split_ifs with h + · exact ⟨le_max_left _ _, max_le (by omega) hd⟩ + · have hmlt : m < 5 * NN := by + rcases lt_or_eq_of_le hm with h' | h' + · exact h' + · subst h'; exact absurd (Nat.mul_mod_left 5 NN) h + have hd4 : m / NN < 5 := (Nat.div_lt_iff_lt_mul hNN).mpr hmlt + exact ⟨Nat.le_add_left 1 _, hd4⟩ + +/-- The grid angle does not exceed the right endpoint of its branch. -/ +theorem gerverGridTime_le_stageTime (m : ℕ) (hm : m ≤ 5 * NN) : + gerverGridTime m ≤ gerverStageTime (stageOf m) := by + have hNN : 0 < NN := by norm_num [NN] + rw [stageOf] + split_ifs with h + · have hmm : m / NN * NN = m := Nat.div_mul_cancel (Nat.dvd_of_mod_eq_zero h) + have key : gerverGridTime m = gerverStageTime (m / NN) := by + have h' := gerverGridTime_mul_NN (m / NN) + rwa [hmm] at h' + rcases Nat.eq_zero_or_pos (m / NN) with h0 | h0 + · have hm0 : m = 0 := by rw [← hmm, h0, zero_mul] + rw [h0, show max 1 0 = 1 from rfl, hm0, gerverGridTime_zero] + have h01 := gerverStageTime_lt_succ 0 (by norm_num) + rw [gerverStageTime_zero] at h01 + exact h01.le + · rw [max_eq_right h0, key] + · have hmlt : m < 5 * NN := by + rcases lt_or_eq_of_le hm with h' | h' + · exact h' + · subst h'; exact absurd (Nat.mul_mod_left 5 NN) h + have hd4 : m / NN < 5 := (Nat.div_lt_iff_lt_mul hNN).mpr hmlt + have hlt : m < (m / NN + 1) * NN := (Nat.div_lt_iff_lt_mul hNN).mp (Nat.lt_succ_self _) + have hub : (m / NN + 1) * NN ≤ 5 * NN := Nat.mul_le_mul_right NN hd4 + calc gerverGridTime m ≤ gerverGridTime ((m / NN + 1) * NN) := + gerverGridTime_le_of_le hlt.le hub + _ = gerverStageTime (m / NN + 1) := gerverGridTime_mul_NN _ + +/-- The grid angle strictly exceeds the left endpoint of its branch, except on the +first branch. -/ +theorem stageTime_lt_gerverGridTime (m : ℕ) (hm : m ≤ 5 * NN) (h2 : 2 ≤ stageOf m) : + gerverStageTime (stageOf m - 1) < gerverGridTime m := by + have hNN : 0 < NN := by norm_num [NN] + have hd5 : m / NN ≤ 5 := Nat.div_le_of_le_mul (by rw [Nat.mul_comm]; exact hm) + rw [stageOf] at h2 ⊢ + split_ifs at h2 ⊢ with h + · have hd : 2 ≤ m / NN := by + rcases le_max_iff.mp h2 with h' | h' + · exact absurd h' (by norm_num) + · exact h' + have hpos : 0 < m / NN := lt_of_lt_of_le (by norm_num) hd + have hmm : m / NN * NN = m := Nat.div_mul_cancel (Nat.dvd_of_mod_eq_zero h) + have key : gerverGridTime m = gerverStageTime (m / NN) := by + have h' := gerverGridTime_mul_NN (m / NN) + rwa [hmm] at h' + rw [max_eq_right (Nat.le_of_succ_le hd), key] + have h4 : m / NN - 1 < 5 := lt_of_le_of_lt (Nat.sub_le_sub_right hd5 1) (by norm_num) + have hlt := gerverStageTime_lt_succ (m / NN - 1) h4 + rwa [Nat.sub_add_cancel hpos] at hlt + · rw [Nat.add_sub_cancel] + have hle : m / NN * NN ≤ m := Nat.div_mul_le_self m NN + have hne : m / NN * NN ≠ m := by + intro he + exact h (by rw [← he]; exact Nat.mul_mod_left _ _) + have key : gerverGridTime (m / NN * NN) = gerverStageTime (m / NN) := gerverGridTime_mul_NN _ + rw [← key] + exact gerverGridTime_lt_of_lt (lt_of_le_of_ne hle hne) hm + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Properties of the Gerver niche roof + +The main results of this file describe the upper boundary of the paper's literal Gerver +niche: the three graph pieces join up (`gerver_niche_piece_endpoints`), each piece stays +inside the outer cap (`gerver_niche_roof_membership`), the roof is a strictly monotone +positive graph (`gerver_niche_roof_strictMono`, `gerver_niche_roof_positive`), and the +niche is exactly the strict vertical region under that roof (`gerver_niche_vertical_fills`). +The three pieces are identified branch by branch in `gerverNicheRoof_of_le_two`, +`gerverNicheRoof_mid` and `gerverNicheRoof_of_ge_three`, each valid on the closed stage. + +Alongside them sits the elementary API of the reverse-time reparametrization +(`continuous_gerverRoofReverseTime`, `gerverRoofReverseTime_two`, +`gerverRoofReverseTime_three`, `gerverRoofReverseTime_mem_Icc`) and the continuity of the +roof, in both its real-parameter and its restricted form (`continuous_gerverRoofCurve`, +`continuous_gerverNicheRoof`). + +Every one of them is the certified Part C niche geometry read through the coordinate +dictionary `GerverSofa.PartF.Coordinates.toPlane`. The dictionary itself is supplied by +the public readers of the lower modules — `paperGerverContacts_one_eq_toPlane` and +`paperGerverContacts_three_eq_toPlane` for the contact curves, `gerverStageTimes_zero` +through `gerverStageTimes_five` for the stage times, and `mem_gerverLiteralNiche_iff`, +`toPlane_mem_gerverOuterCap` for the two literal sets. What remains here, and is kept +private, is the roof-specific part of the dictionary: the reverse-time reparametrization +and the identification of `gerverNicheRoof` with the certified upper arc. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +section Roof + +open GerverSofa.PartF.Coordinates +open GerverSofa.PartC (params eta tau) + +/-- The roof reverse-time reparametrization is the certified affine reversal of the core +stage, which sends `params.theta` to `tau` and `eta` to `params.phi`. -/ +private theorem gerverRoofReverseTime_eq (s : ℝ) : + gerverRoofReverseTime s = GerverSofa.PartC.Stage4.coreReverseTime s := by + rw [gerverRoofReverseTime, gerverStageTimes_four, gerverStageTimes_one, + gerverStageTimes_three, gerverStageTimes_two] + rfl + +/-- The Gerver roof is the certified upper niche arc, read in plane coordinates. The three +branches of `gerverNicheRoof` match the three branches of `nicheTopArc` piece for piece, +with the same cut points `params.theta` and `eta`. -/ +private theorem gerverNicheRoof_eq_toPlane (s : Set.Icc (0 : ℝ) (Real.pi / 2)) : + gerverNicheRoof s = toPlane (GerverSofa.PartC.Stage4.nicheTopArc s.val) := by + have hsI : (s : ℝ) ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := s.2 + simp only [gerverNicheRoof, GerverSofa.PartC.Stage4.nicheTopArc, gerverStageTimes_two, + gerverStageTimes_three, gerverRoofReverseTime_eq] + split_ifs with h1 h2 + · exact paperGerverContacts_three_eq_toPlane hsI + · rfl + · exact paperGerverContacts_one_eq_toPlane hsI + +end Roof + +/-- The three graph pieces of the niche roof join up: the second contact curve at `eta` +meets the ambient path at `params.phi`, the fourth contact curve at `params.theta` meets +the ambient path at `tau`, and the two outer ends touch the wall. -/ +theorem gerver_niche_piece_endpoints : + paperGerverContacts (gerverStageTimes 3) 1 = paperGerverPath (gerverStageTimes 1) ∧ + paperGerverContacts (gerverStageTimes 2) 3 = paperGerverPath (gerverStageTimes 4) ∧ + paperGerverContacts (Real.pi / 2) 1 1 = 0 ∧ paperGerverContacts 0 3 1 = 0 := by + open GerverSofa.PartF.Coordinates GerverSofa.PartC GerverSofa.PartC.Stage4 in + obtain ⟨hB, hD, hBT, hD0⟩ := GerverSofa.PartC.Stage4.niche_piece_endpoints + have hpi : (0 : ℝ) < Real.pi / 2 := by positivity + have hTeq : GerverSofa.PartC.T = Real.pi / 2 := rfl + have hchain : 0 < params.theta ∧ params.theta < eta ∧ eta < tau ∧ tau < Real.pi / 2 := + ⟨GerverSofa.PartC.Stage4.theta_pos, GerverSofa.PartC.Stage4.theta_lt_eta, + GerverSofa.PartC.Stage4.eta_lt_tau, hTeq ▸ GerverSofa.PartC.Stage4.tau_lt_T⟩ + obtain ⟨hθ0, hθη, hητ, hτT⟩ := hchain + have hth : params.theta ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨hθ0.le, by linarith⟩ + have heta : eta ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨by linarith, by linarith⟩ + have hTm : (Real.pi / 2) ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨hpi.le, le_rfl⟩ + have h0m : (0 : ℝ) ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨le_rfl, hpi.le⟩ + refine ⟨?_, ?_, ?_, ?_⟩ + · rw [gerverStageTimes_three, gerverStageTimes_one, + paperGerverContacts_one_eq_toPlane heta, paperGerverPath_eq_toPlane] + exact congrArg toPlane hB + · rw [gerverStageTimes_two, gerverStageTimes_four, + paperGerverContacts_three_eq_toPlane hth, paperGerverPath_eq_toPlane] + exact congrArg toPlane hD + · rw [paperGerverContacts_one_eq_toPlane hTm] + exact hBT + · rw [paperGerverContacts_three_eq_toPlane h0m] + exact hD0 + +/-! ## The reverse-time reparametrization, and continuity of the roof -/ + +/-- The reverse-time reparametrization is affine, hence continuous. -/ +theorem continuous_gerverRoofReverseTime : Continuous gerverRoofReverseTime := by + unfold gerverRoofReverseTime + fun_prop + +/-- The reverse-time map sends the start of the middle roof stage to the late path time. -/ +theorem gerverRoofReverseTime_two : + gerverRoofReverseTime (gerverStageTimes 2) = gerverStageTimes 4 := by + rw [gerverRoofReverseTime, sub_self, mul_zero, sub_zero] + +/-- The reverse-time map sends the end of the middle roof stage to the early path time. -/ +theorem gerverRoofReverseTime_three : + gerverRoofReverseTime (gerverStageTimes 3) = gerverStageTimes 1 := by + have h23 : gerverStageTimes 2 < gerverStageTimes 3 := gerverStageTimes_strictMono (by decide) + rw [gerverRoofReverseTime, div_mul_cancel₀ _ (sub_ne_zero.mpr h23.ne')] + ring + +/-- The reverse-time map carries the middle roof interval into the central path interval. -/ +theorem gerverRoofReverseTime_mem_Icc {s : ℝ} (h1 : gerverStageTimes 2 ≤ s) + (h2 : s ≤ gerverStageTimes 3) : + gerverRoofReverseTime s ∈ Set.Icc (gerverStageTimes 1) (gerverStageTimes 4) := by + have h12 : gerverStageTimes 1 < gerverStageTimes 2 := gerverStageTimes_strictMono (by decide) + have h23 : gerverStageTimes 2 < gerverStageTimes 3 := gerverStageTimes_strictMono (by decide) + have h34 : gerverStageTimes 3 < gerverStageTimes 4 := gerverStageTimes_strictMono (by decide) + have hd : (0 : ℝ) < gerverStageTimes 3 - gerverStageTimes 2 := by linarith + have hL : 0 < (gerverStageTimes 4 - gerverStageTimes 1) / + (gerverStageTimes 3 - gerverStageTimes 2) := div_pos (by linarith) hd + have hmul := mul_le_mul_of_nonneg_left (show s - gerverStageTimes 2 ≤ + gerverStageTimes 3 - gerverStageTimes 2 by linarith) hL.le + rw [div_mul_cancel₀ _ hd.ne'] at hmul + have hnn : 0 ≤ (gerverStageTimes 4 - gerverStageTimes 1) / + (gerverStageTimes 3 - gerverStageTimes 2) * (s - gerverStageTimes 2) := + mul_nonneg hL.le (by linarith) + rw [gerverRoofReverseTime] + constructor <;> linarith + +/-! ## The three graph pieces of the roof -/ + +/-- Up to the second stage time the niche roof is the fourth contact curve. -/ +theorem gerverNicheRoof_of_le_two {s : ℝ} (hs : s ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) + (h : s ≤ gerverStageTimes 2) : gerverNicheRoof ⟨s, hs⟩ = paperGerverContacts s 3 := + ite_eq_left h + +/-- On the middle stage the niche roof is the reverse-time ambient path. The identification +extends to the left endpoint of the stage by the piece-endpoint gluing. -/ +theorem gerverNicheRoof_mid {s : ℝ} (hs : s ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) + (h1 : gerverStageTimes 2 ≤ s) (h2 : s ≤ gerverStageTimes 3) : + gerverNicheRoof ⟨s, hs⟩ = paperGerverPath (gerverRoofReverseTime s) := by + rcases eq_or_lt_of_le h1 with heq | hlt + · rw [gerverNicheRoof_of_le_two hs heq.ge, ← heq, gerverRoofReverseTime_two] + exact gerver_niche_piece_endpoints.2.1 + · rw [gerverNicheRoof, ite_eq_right (not_le.mpr hlt), ite_eq_left h2] + +/-- From the third stage time on the niche roof is the second contact curve. The +identification extends to the left endpoint of the stage by the piece-endpoint gluing. -/ +theorem gerverNicheRoof_of_ge_three {s : ℝ} (hs : s ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) + (h : gerverStageTimes 3 ≤ s) : gerverNicheRoof ⟨s, hs⟩ = paperGerverContacts s 1 := by + have h23 : gerverStageTimes 2 < gerverStageTimes 3 := gerverStageTimes_strictMono (by decide) + rcases eq_or_lt_of_le h with heq | hlt + · rw [gerverNicheRoof_mid hs (by linarith) heq.ge, ← heq, gerverRoofReverseTime_three] + exact gerver_niche_piece_endpoints.1.symm + · rw [gerverNicheRoof, ite_eq_right (not_le.mpr (by linarith)), + ite_eq_right (not_le.mpr hlt)] + +/-- On the rotation interval the real-parameter roof curve is the niche roof. -/ +theorem gerverRoofCurve_eq (s : Set.Icc (0 : ℝ) (Real.pi / 2)) : + gerverRoofCurve s.val = gerverNicheRoof s := rfl + +/-- The roof curve is continuous: its three graph pieces join up at the two cut times, by the +two endpoint identities of `gerver_niche_piece_endpoints`. -/ +theorem continuous_gerverRoofCurve : Continuous gerverRoofCurve := by + have h23 : gerverStageTimes 2 < gerverStageTimes 3 := gerverStageTimes_strictMono (by decide) + have hinner : Continuous fun s : ℝ ↦ + if s ≤ gerverStageTimes 3 then paperGerverPath (gerverRoofReverseTime s) + else paperGerverContacts s 1 := by + refine continuous_if_le continuous_id continuous_const + ((contDiff_paperGerverPath.continuous.comp continuous_gerverRoofReverseTime).continuousOn) + ((continuous_paperGerverContact 1).continuousOn) ?_ + intro s hs + rw [hs, gerverRoofReverseTime_three] + exact gerver_niche_piece_endpoints.1.symm + refine continuous_if_le continuous_id continuous_const + ((continuous_paperGerverContact 3).continuousOn) hinner.continuousOn ?_ + intro s hs + rw [ite_eq_left (by rw [hs]; exact h23.le), hs, gerverRoofReverseTime_two] + exact gerver_niche_piece_endpoints.2.1 + +/-- The niche roof is continuous. -/ +theorem continuous_gerverNicheRoof : Continuous gerverNicheRoof := + continuous_gerverRoofCurve.comp continuous_subtype_val + +/-- The first coordinate of the niche roof is strictly increasing, so the roof really is a +graph over the horizontal axis. -/ +theorem gerver_niche_roof_strictMono : + StrictMono (fun s : Set.Icc (0 : ℝ) (Real.pi / 2) ↦ gerverNicheRoof s 0) := by + intro a b hab + have h := GerverSofa.PartC.Stage4.nicheTopArc_fst_strictMono a.2 b.2 hab + simp only [gerverNicheRoof_eq_toPlane] + exact h + +/-- The niche roof has positive height strictly inside the rotation interval. -/ +theorem gerver_niche_roof_positive + (s : Set.Icc (0 : ℝ) (Real.pi / 2)) (hs : 0 < s.val ∧ s.val < Real.pi / 2) : + 0 < gerverNicheRoof s 1 := by + rw [gerverNicheRoof_eq_toPlane] + exact GerverSofa.PartC.Stage4.nicheTopArc_y_pos ⟨hs.1, hs.2⟩ + +/-- Each of the three graph pieces of the niche roof stays inside the paper outer cap. -/ +theorem gerver_niche_roof_membership : + (∀ t ∈ Set.Icc (gerverStageTimes 0) (gerverStageTimes 2), + paperGerverContacts t 3 ∈ gerverOuterCap) ∧ + (∀ t ∈ Set.Icc (gerverStageTimes 1) (gerverStageTimes 4), + paperGerverPath t ∈ gerverOuterCap) ∧ + (∀ t ∈ Set.Icc (gerverStageTimes 3) (gerverStageTimes 5), + paperGerverContacts t 1 ∈ gerverOuterCap) := by + open GerverSofa.PartF.Coordinates GerverSofa.PartC GerverSofa.PartC.Stage4 in + obtain ⟨hD, hx, hB⟩ := GerverSofa.PartC.Stage4.certified_roof_mem_K + have hTeq : GerverSofa.PartC.T = Real.pi / 2 := rfl + have hθ0 : 0 < params.theta := GerverSofa.PartC.Stage4.theta_pos + have hθη : params.theta < eta := GerverSofa.PartC.Stage4.theta_lt_eta + have hητ : eta < tau := GerverSofa.PartC.Stage4.eta_lt_tau + have hτT : tau < Real.pi / 2 := hTeq ▸ GerverSofa.PartC.Stage4.tau_lt_T + refine ⟨?_, ?_, ?_⟩ + · intro t ht + rw [gerverStageTimes_zero, gerverStageTimes_two] at ht + have htI : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := ⟨ht.1, by linarith [ht.2]⟩ + rw [paperGerverContacts_three_eq_toPlane htI] + exact toPlane_mem_gerverOuterCap (hD t ht) + · intro t ht + rw [gerverStageTimes_one, gerverStageTimes_four] at ht + exact toPlane_mem_gerverOuterCap (hx t ht) + · intro t ht + rw [gerverStageTimes_three, gerverStageTimes_five] at ht + have htI : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨by linarith [ht.1], hTeq ▸ ht.2⟩ + rw [paperGerverContacts_one_eq_toPlane htI] + exact toPlane_mem_gerverOuterCap (hB t ht) + +/-- The strict region between the wall and the graph of `f` over the parameter set `I`. -/ +def strictVerticalFill (f : ℝ → Point) (I : Set ℝ) : Set Point := + {q | ∃ t ∈ I, q 0 = f t 0 ∧ 0 ≤ q 1 ∧ q 1 < f t 1} + +section Fills + +open GerverSofa.PartF.Coordinates +open GerverSofa.PartC (params eta tau) + +/-- A strict vertical fill is the coordinate preimage of the certified vertical fill under +the plane dictionary. -/ +private theorem strictVerticalFill_eq_preimage {F : ℝ → Point} {g : ℝ → GerverSofa.Point} + {I : Set ℝ} (h : ∀ t ∈ I, F t = toPlane (g t)) : + strictVerticalFill F I = fromPlane ⁻¹' GerverSofa.PartC.Stage4.verticalFill g I := by + ext q + constructor + · rintro ⟨t, ht, h0, h1, h2⟩ + rw [h t ht] at h0 h2 + exact ⟨t, ht, h0, h1, h2⟩ + · rintro ⟨t, ht, h0, h1, h2⟩ + refine ⟨t, ht, ?_, h1, ?_⟩ + · rw [h t ht]; exact h0 + · rw [h t ht]; exact h2 + +end Fills + +/-- The paper literal niche is exactly the union of the three strict vertical fills under +the three graph pieces of the niche roof. -/ +theorem gerver_niche_vertical_fills : + gerverLiteralNiche = + strictVerticalFill (fun t ↦ paperGerverContacts t 3) + (Set.Icc (gerverStageTimes 0) (gerverStageTimes 2)) ∪ + strictVerticalFill paperGerverPath + (Set.Icc (gerverStageTimes 1) (gerverStageTimes 4)) ∪ + strictVerticalFill (fun t ↦ paperGerverContacts t 1) + (Set.Icc (gerverStageTimes 3) (gerverStageTimes 5)) := by + open GerverSofa.PartF.Coordinates GerverSofa.PartC GerverSofa.PartC.Stage4 in + have hTeq : GerverSofa.PartC.T = Real.pi / 2 := rfl + have hθ0 : 0 < params.theta := GerverSofa.PartC.Stage4.theta_pos + have hθη : params.theta < eta := GerverSofa.PartC.Stage4.theta_lt_eta + have hητ : eta < tau := GerverSofa.PartC.Stage4.eta_lt_tau + have hτT : tau < Real.pi / 2 := hTeq ▸ GerverSofa.PartC.Stage4.tau_lt_T + have hDeq : ∀ t ∈ Set.Icc (0 : ℝ) params.theta, + (fun t ↦ paperGerverContacts t 3) t = toPlane (GerverSofa.PartC.D t) := fun t ht => + paperGerverContacts_three_eq_toPlane ⟨ht.1, by linarith [ht.2]⟩ + have hpeq : ∀ t ∈ Set.Icc params.phi tau, + paperGerverPath t = toPlane (GerverSofa.Romik.path params t) := fun _ _ => rfl + have hBeq : ∀ t ∈ Set.Icc eta GerverSofa.PartC.T, + (fun t ↦ paperGerverContacts t 1) t = toPlane (GerverSofa.PartC.B t) := fun t ht => + paperGerverContacts_one_eq_toPlane ⟨by linarith [ht.1], hTeq ▸ ht.2⟩ + rw [gerverStageTimes_zero, gerverStageTimes_two, gerverStageTimes_one, gerverStageTimes_four, + gerverStageTimes_three, gerverStageTimes_five, strictVerticalFill_eq_preimage hDeq, + strictVerticalFill_eq_preimage hpeq, strictVerticalFill_eq_preimage hBeq, + ← Set.preimage_union, ← Set.preimage_union] + exact Set.ext fun q => + (mem_gerverLiteralNiche_iff q).trans + (by rw [GerverSofa.PartC.Stage4.niche_eq_certifiedNicheRegion]; rfl) + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Cap.Tail.Arcs`. +* `Cap.Tail.Space`. +* `Cap.CornerMeasure`. +* `Cap.CornerPaths`. +* `Cap.Tail.Canonical`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Tail / Arcs +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A planar carrier set equipped with ordered start and end points. -/ +structure DirectedArcData where + /-- The set traced by the directed arc. -/ + carrier : Set Point + /-- The starting point of the arc. -/ + startPoint : Point + /-- The ending point of the arc. -/ + endPoint : Point + +/-- The directed convex boundary arcs used for the right and left tail bodies. -/ +def rightLeftTailArcs (B D : ConvexBody Point) : DirectedArcData × DirectedArcData := + (⟨convexBoundaryArc B (Real.pi + paperGerverConstants.2.1) (3 * Real.pi / 2), + (edgeVertices B ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle)).1, + (edgeVertices B ((3 * Real.pi / 2 : ℝ) : Real.Angle)).2⟩, + ⟨convexBoundaryArc D (3 * Real.pi / 2) (3 * Real.pi / 2 + paperGerverConstants.2.2), + (edgeVertices D ((3 * Real.pi / 2 : ℝ) : Real.Angle)).1, + (edgeVertices D ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)).2⟩) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Tail / Space +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory +open scoped NNReal ENNReal + +namespace MovingSofa + +/-- The real-angle inner-corner path of a cap. -/ +def capInnerCorner (K : RightAngleCapSpace) (t : ℝ) : Point := + (rotatingHallwayParts (K.1 : Set Point) (t : Real.Angle)).innerCorner + +/-- The two surface densities on the upper half-circle, with the top atom excluded. -/ +def HasCapDensities (K : RightAngleCapSpace) (r s : ℝ → ℝ≥0) : Prop := + Measurable r ∧ Measurable s ∧ + (surfaceAreaMeasure K.1).restrict + ((fun t : ℝ ↦ (t : Real.Angle)) '' Set.Ico 0 (Real.pi / 2)) = + Measure.map (fun t : ℝ ↦ (t : Real.Angle)) + ((volume.restrict (Set.Ico 0 (Real.pi / 2))).withDensity (fun t ↦ (r t : ℝ≥0∞))) ∧ + (surfaceAreaMeasure K.1).restrict + ((fun t : ℝ ↦ (t : Real.Angle)) '' Set.Ioc (Real.pi / 2) Real.pi) = + Measure.map (fun t : ℝ ↦ ((t + Real.pi / 2 : ℝ) : Real.Angle)) + ((volume.restrict (Set.Ioc 0 (Real.pi / 2))).withDensity (fun t ↦ (s t : ℝ≥0∞))) + +/-- The density, corner regularity and strict interior signs of the injectivity condition. -/ +def SatisfiesInjectivityCondition (K : RightAngleCapSpace) : Prop := + (∃ r s : ℝ → ℝ≥0, HasCapDensities K r s ∧ + ∀ r' s', HasCapDensities K r' s' → + (r =ᵐ[volume.restrict (Set.Icc 0 (Real.pi / 2))] r') ∧ + (s =ᵐ[volume.restrict (Set.Icc 0 (Real.pi / 2))] s')) ∧ + ContDiffOn ℝ 1 (capInnerCorner K) (Set.Icc 0 (Real.pi / 2)) ∧ + ∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + inner ℝ (derivWithin (capInnerCorner K) (Set.Icc 0 (Real.pi / 2)) t) + (normalVector (t : Real.Angle)) < 0 ∧ + 0 < inner ℝ (derivWithin (capInnerCorner K) (Set.Icc 0 (Real.pi / 2)) t) + (tangentVector (t : Real.Angle)) + +/-- Right-angle caps satisfying injectivity and the cap-area threshold. -/ +def SpecialCapSpace := + {K : RightAngleCapSpace // SatisfiesInjectivityCondition K ∧ + (11 : ℝ) / 5 ≤ ClassicalResults.area (K.1 : Set Point)} + +/-- A special cap and two convex tails satisfying the support constraints. -/ +structure CapTailSpace where + /-- The special cap forming the central component of the triple. -/ + cap : SpecialCapSpace + /-- The convex body used as the right tail. -/ + rightBody : ConvexBody Point + /-- The convex body used as the left tail. -/ + leftBody : ConvexBody Point + right_subset : (rightBody : Set Point) ⊆ (cap.1.1 : Set Point) + left_subset : (leftBody : Set Point) ⊆ (cap.1.1 : Set Point) + right_bound : ∀ t ∈ Set.Icc paperGerverConstants.2.1 (Real.pi / 2), + supportValue cap.1.1 (t : Real.Angle) + + supportValue rightBody ((Real.pi + t : ℝ) : Real.Angle) ≤ 1 + right_eq : ∀ t ∈ ({paperGerverConstants.2.1, Real.pi / 2} : Set ℝ), + supportValue cap.1.1 (t : Real.Angle) + + supportValue rightBody ((Real.pi + t : ℝ) : Real.Angle) = 1 + left_bound : ∀ t ∈ Set.Icc (0 : ℝ) paperGerverConstants.2.2, + supportValue cap.1.1 ((Real.pi / 2 + t : ℝ) : Real.Angle) + + supportValue leftBody ((3 * Real.pi / 2 + t : ℝ) : Real.Angle) ≤ 1 + left_eq : ∀ t ∈ ({0, paperGerverConstants.2.2} : Set ℝ), + supportValue cap.1.1 ((Real.pi / 2 + t : ℝ) : Real.Angle) + + supportValue leftBody ((3 * Real.pi / 2 + t : ℝ) : Real.Angle) = 1 + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Corner Measure +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- The normal and tangent components of the inner-corner path derivative. -/ +def capVelocityCoefficients (K : SpecialCapSpace) (t : ℝ) : ℝ × ℝ := + (inner ℝ (derivWithin (capInnerCorner K.val) (Set.Icc 0 (Real.pi / 2)) t) + (normalVector (t : Real.Angle)), + inner ℝ (derivWithin (capInnerCorner K.val) (Set.Icc 0 (Real.pi / 2)) t) + (tangentVector (t : Real.Angle))) + +/-- The density formed by joining the two signed corner-velocity components over `[0, π]`. -/ +def capCornerDensity (K : SpecialCapSpace) (s : ℝ) : ℝ := + if 0 < s ∧ s ≤ Real.pi / 2 then (capVelocityCoefficients K s).2 + else if Real.pi / 2 < s ∧ s ≤ Real.pi then + -(capVelocityCoefficients K (s - Real.pi / 2)).1 + else 0 + +/-- The measure on the real angle interval defined by the nonnegative corner density. -/ +def capCornerMeasure (K : SpecialCapSpace) : Measure ℝ := + (volume.restrict (Set.Icc 0 Real.pi)).withDensity + (fun s ↦ ENNReal.ofReal (capCornerDensity K s)) + +/-- Push the corner-density measure to angles modulo a full turn. -/ +def capCornerAngleMeasure (K : SpecialCapSpace) : Measure Real.Angle := + Measure.map (fun s : ℝ ↦ (s : Real.Angle)) (capCornerMeasure K) + +/-- Bundle the corner density and its real and angular measures. -/ +def capCornerMeasureData (K : SpecialCapSpace) : + (ℝ → ℝ) × Measure ℝ × Measure Real.Angle := + (capCornerDensity K, capCornerMeasure K, capCornerAngleMeasure K) + +/-- The corner measure of a special cap reads its density on the angular image of every +measurable subset of `[0, π]`. -/ +theorem capCornerAngleMeasure_angleImage_eq_setLIntegral (K : SpecialCapSpace) {T : Set ℝ} + (hT : MeasurableSet T) (hT' : T ⊆ Set.Icc 0 Real.pi) : + capCornerAngleMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' T) = + ∫⁻ s in T, ENNReal.ofReal (capCornerDensity K s) := by + have hturn : Real.pi ≤ -1 + 2 * Real.pi := by linarith [Real.pi_gt_three] + have hsub : Set.Icc (0 : ℝ) Real.pi ⊆ Set.Ioc (-1 : ℝ) Real.pi := + fun x hx ↦ ⟨by linarith [hx.1], hx.2⟩ + change Measure.map (fun s : ℝ ↦ (s : Real.Angle)) + ((volume.restrict (Set.Icc 0 Real.pi)).withDensity + (fun s ↦ ENNReal.ofReal (capCornerDensity K s))) + ((fun s : ℝ ↦ (s : Real.Angle)) '' T) = _ + exact Real.Angle.map_coe_withDensity_image_eq_setLIntegral hturn hsub hT hT' + +/-! ### Regularity and signs of the corner density + +The injectivity condition makes the inner corner continuously differentiable on the closed +quarter turn, so both frame coefficients of its velocity are continuous there; the strict interior +signs then extend to the two endpoints by continuity. The corner density is the sum of the two +branches extended by zero, whence its measurability and its bound. -/ + +/-- The inner-corner velocity of a special cap is continuous on the cap domain. -/ +theorem continuousOn_derivWithin_capInnerCorner (K : SpecialCapSpace) : + ContinuousOn (derivWithin (capInnerCorner K.val) (Set.Icc 0 (Real.pi / 2))) + (Set.Icc 0 (Real.pi / 2)) := + K.property.1.2.1.continuousOn_derivWithin + (uniqueDiffOn_Icc (by positivity : (0 : ℝ) < Real.pi / 2)) le_rfl + +/-- Both frame components of the inner-corner velocity are continuous on the cap domain. -/ +theorem continuousOn_capVelocityCoefficients (K : SpecialCapSpace) : + ContinuousOn (fun s ↦ (capVelocityCoefficients K s).1) (Set.Icc 0 (Real.pi / 2)) ∧ + ContinuousOn (fun s ↦ (capVelocityCoefficients K s).2) (Set.Icc 0 (Real.pi / 2)) := + ⟨(continuousOn_derivWithin_capInnerCorner K).inner + continuous_normalVector_real.continuousOn, + (continuousOn_derivWithin_capInnerCorner K).inner + lipschitzWith_tangentVector_real.continuous.continuousOn⟩ + +/-- The corner density is bounded, being continuous on the two compact halves of the cap domain +and zero outside. -/ +theorem exists_bound_capCornerDensity (K : SpecialCapSpace) : + ∃ C : ℝ, 0 ≤ C ∧ ∀ s, capCornerDensity K s ≤ C := by + obtain ⟨hα, hβ⟩ := continuousOn_capVelocityCoefficients K + obtain ⟨C₁, hC₁⟩ := isCompact_Icc.exists_bound_of_continuousOn hα + obtain ⟨C₂, hC₂⟩ := isCompact_Icc.exists_bound_of_continuousOn hβ + refine ⟨max (max C₁ C₂) 0, le_max_right _ _, fun s ↦ ?_⟩ + rw [capCornerDensity] + split_ifs with h1 h2 + · exact le_max_of_le_left (le_max_of_le_right + ((le_abs_self _).trans (hC₂ s ⟨h1.1.le, h1.2⟩))) + · refine le_max_of_le_left (le_max_of_le_left ?_) + have h := neg_le_abs (capVelocityCoefficients K (s - Real.pi / 2)).1 + exact h.trans (hC₁ _ ⟨by linarith [h2.1], by linarith [h2.2]⟩) + · exact le_max_right _ _ + +/-! ### Finiteness and atomlessness of the corner measure -/ + +instance isFiniteMeasure_capCornerMeasure (K : SpecialCapSpace) : + IsFiniteMeasure (capCornerMeasure K) := by + obtain ⟨C, -, hC⟩ := exists_bound_capCornerDensity K + refine ⟨?_⟩ + rw [capCornerMeasure, withDensity_apply _ MeasurableSet.univ, Measure.restrict_univ] + calc ∫⁻ s, ENNReal.ofReal (capCornerDensity K s) ∂volume.restrict (Set.Icc 0 Real.pi) + ≤ ∫⁻ _, ENNReal.ofReal C ∂volume.restrict (Set.Icc 0 Real.pi) := + lintegral_mono fun s ↦ ENNReal.ofReal_le_ofReal (hC s) + _ < ⊤ := by + rw [lintegral_const, Measure.restrict_apply_univ, Real.volume_Icc] + exact ENNReal.mul_lt_top ENNReal.ofReal_lt_top ENNReal.ofReal_lt_top + +instance isFiniteMeasure_capCornerAngleMeasure (K : SpecialCapSpace) : + IsFiniteMeasure (capCornerAngleMeasure K) := by + rw [capCornerAngleMeasure] + exact Measure.isFiniteMeasure_map _ _ + +instance nullSingletonClass_capCornerAngleMeasure (K : SpecialCapSpace) : + NullSingletonClass (capCornerAngleMeasure K) := by + refine ⟨fun x ↦ ?_⟩ + rw [capCornerAngleMeasure, + Measure.map_apply Real.Angle.continuous_coe.measurable (measurableSet_singleton x), + capCornerMeasure] + exact ((withDensity_absolutelyContinuous _ _).trans + Measure.restrict_le_self.absolutelyContinuous) + ((Real.Angle.countable_preimage_coe_singleton x).measure_zero volume) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Corner Paths +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The inner-corner path restricted and bundled as a continuous BV path. -/ +def capCornerBV (K : SpecialCapSpace) {a b : ℝ} + (h : Set.Icc a b ⊆ Set.Icc 0 (Real.pi / 2)) : ContinuousBVPaths a b := + continuousBVOfContDiffOn (capInnerCorner K.val) (K.property.1.2.1.mono h) + +/-- The corner BV path between the two reflected Gerver switching angles. -/ +def capMiddleBV (K : SpecialCapSpace) : + ContinuousBVPaths paperGerverConstants.2.1 paperGerverConstants.2.2 := + capCornerBV K (by + have hφ : 0 ≤ GerversSofa.φ := GerversSofa.ABφθSpec.existsUnique.choose_spec.1.1 + intro t ht + change GerversSofa.φ ≤ t ∧ t ≤ Real.pi / 2 - GerversSofa.φ at ht + exact ⟨le_trans hφ ht.1, by linarith [ht.2]⟩) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Tail / Canonical +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The closed half-planes above the right and left inner supporting walls. -/ +def innerWallUpperHalfPlanes (K : RightAngleCapSpace) (t : ℝ) : Set Point × Set Point := + (normalHalfPlane (t : Real.Angle) (supportValue K.1 (t : Real.Angle) - 1) true false, + normalHalfPlane ((t + Real.pi / 2 : ℝ) : Real.Angle) + (supportValue K.1 ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) true false) + +/-- The right and left canonical tail sets, before bundling their convex-body proofs. -/ +def canonicalTailSets (K : SpecialCapSpace) : Set Point × Set Point := + ((K.1.1 : Set Point) ∩ + ⋂ t ∈ Set.Icc paperGerverConstants.2.1 (Real.pi / 2), + (innerWallUpperHalfPlanes K.1 t).1, + (K.1.1 : Set Point) ∩ + ⋂ t ∈ Set.Icc (0 : ℝ) paperGerverConstants.2.2, + (innerWallUpperHalfPlanes K.1 t).2) + +end MovingSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/Development/Geometry/Foundations/Development006.lean b/LeanPool/MovingSofa/Development/Geometry/Foundations/Development006.lean new file mode 100644 index 0000000000..a2aed17cf5 --- /dev/null +++ b/LeanPool/MovingSofa/Development/Geometry/Foundations/Development006.lean @@ -0,0 +1,10860 @@ +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +module + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development005 + + + + + + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development002 + + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development003 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development001 + + + + + +public import Mathlib.Analysis.Convex.Exposed +public import Mathlib.Analysis.Convex.Join +public import Mathlib.Geometry.Euclidean.Angle.Oriented.Rotation +public import Mathlib.MeasureTheory.Constructions.Polish.Basic +public import Mathlib.MeasureTheory.Integral.Bochner.ContinuousLinearMap +public import Mathlib.Topology.Connected.Clopen +public import Mathlib.Topology.Connected.TotallyDisconnected +public import Mathlib.Topology.MetricSpace.HausdorffDistance +public import Mathlib.Topology.Order.IntermediateValue +/-! +# Moving sofa: related mathematical developments + +* `Motion.Foundations.Development001`. +* `Bounds.Foundations.Development001`. +* `Cap.Foundations.Development004`. +* `Bounds.Foundations.Development002`. +* `Geometry.Foundations.Development005`. +* `Analysis.Foundations.Development005`. +* `Convex.Foundations.Development003`. +* `Convex.Foundations.Development004`. +* `Area.Foundations.Development004`. +* `Optimality`. +* `Motion.Foundations.Development003`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Motion.Basic`. +* `Motion.CommonSubset`. +* `Motion.Compactness`. +* `Motion.Rotation`. +* `Motion.AngleLift`. +* `Motion.RotationAngleCalculation`. +* `Motion.SupportingHallways`. +* `Motion.Translation`. +* `Motion.StandardPosition`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Motion / Basic +-/ + +@[expose] public section + +noncomputable section + +open scoped unitInterval + +namespace MovingSofa + +/-- A paper motion permits an initial translation and preserves orientation at every time. -/ +def IsPaperMotion (s : Set Point) (m : I → Point ≃ᵃⁱ[ℝ] Point) : Prop := + IsConnected s ∧ IsClosed s ∧ Continuous m ∧ + (∃ q : Point, ∀ p, m 0 p = p + q) ∧ + (∀ t, ∃ a : Real.Angle, ∀ p, m t p = rotationMap a p + m t 0) ∧ + m 0 '' s ⊆ horizontalHallway ∧ + (∀ t, m t '' s ⊆ hallway) ∧ m 1 '' s ⊆ verticalHallway + +/-- Movability in the paper's translation-invariant convention. -/ +def IsPaperMovingSofa (s : Set Point) : Prop := + ∃ m, IsPaperMotion s m + +/-- Clockwise rotation angle of a particular admissible lifted motion witness. -/ +def HasRotationAngle (s : Set Point) (ω : ℝ) : Prop := + ∃ (m : I → Point ≃ᵃⁱ[ℝ] Point), IsPaperMotion s m ∧ + ∃ α : I → ℝ, Continuous α ∧ α 0 = 0 ∧ α 1 = -ω ∧ + ∀ t p, m t p = rotationMap (α t : Real.Angle) p + m t 0 + +/-- Standard position for a compact moving sofa with the specified rotation angle. -/ +def IsStandardPosition (s : Set Point) (ω : ℝ) : Prop := + IsCompact s ∧ HasRotationAngle s ω ∧ 0 < ω ∧ ω ≤ Real.pi / 2 ∧ + supportValue s (ω : Real.Angle) = 1 ∧ + supportValue s ((Real.pi / 2 : ℝ) : Real.Angle) = 1 + +/-- The cap set constructed from all supporting outer quadrants. -/ +def capOfSofa (s : Set Point) (ω : ℝ) : Set Point := + (stripParallelogram ω).1 ∩ + ⋂ t ∈ Set.Icc 0 ω, (rotatingHallwayParts s (t : Real.Angle)).outerQuadrant + +/-- The intersection of supporting hallways used for monotonization. -/ +def monotonization (s : Set Point) (ω : ℝ) : Set Point := + (stripParallelogram ω).1 ∩ ⋂ t ∈ Set.Icc 0 ω, supportingHallway s (t : Real.Angle) + +/-- A monotone sofa is the monotonization of a sofa in standard position. -/ +def IsMonotoneSofa (s : Set Point) : Prop := + ∃ (s₀ : Set Point) (ω : ℝ), IsStandardPosition s₀ ω ∧ s = monotonization s₀ ω + +/-- The finite-angle outer approximation to a cap. -/ +def angleCap (Θ : AngleSet) (K : CapSpace Θ.angle) : Set Point := + (stripParallelogram Θ.angle).1 ∩ + ⋂ t ∈ Θ.directions, (rotatingHallwayParts (K.1 : Set Point) (t : Real.Angle)).outerQuadrant + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Motion / Common Subset +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem HasRotationAngle.exists_translated_rotated_hallway {s : Set Point} {ω : ℝ} + (hs : HasRotationAngle s ω) {t : ℝ} (ht : t ∈ Set.Icc 0 ω) : + ∃ v : Point, s ⊆ (fun p ↦ rotationMap (t : Real.Angle) p + v) '' hallway := by + obtain ⟨m, hm, α, hα, hα0, hα1, hmotion⟩ := hs + obtain ⟨_, _, _, _, _, _, hhallway, _⟩ := hm + obtain ⟨τ, hτ⟩ := mem_range_of_exists_le_of_exists_ge (c := -t) hα + ⟨1, by rw [hα1]; linarith [ht.2]⟩ ⟨0, by rw [hα0]; linarith [ht.1]⟩ + refine ⟨-rotationMap (t : Real.Angle) (m τ 0), ?_⟩ + intro p hp + refine ⟨m τ p, hhallway τ ⟨p, hp, rfl⟩, ?_⟩ + rw [hmotion τ p, hτ] + simp only [rotationMap, Real.Angle.coe_neg, map_add, + ← EuclideanGeometry.o.rotation_symm, LinearIsometryEquiv.apply_symm_apply, + add_neg_cancel_right] + +theorem HasRotationAngle.exists_translated_horizontal_strip {s : Set Point} {ω : ℝ} + (hs : HasRotationAngle s ω) : + ∃ v : Point, s ⊆ (fun p ↦ p + v) '' (strips ω).1 := by + obtain ⟨m, hm, _⟩ := hs + obtain ⟨_, _, _, ⟨v, hv⟩, _, hstart, _, _⟩ := hm + refine ⟨-v, ?_⟩ + intro p hp + have hmem := hstart ⟨p, hp, rfl⟩ + obtain ⟨x, y, hxy, heq⟩ := hmem + refine ⟨p + v, ?_, by simp⟩ + change 0 ≤ (p + v) 1 ∧ (p + v) 1 ≤ 1 + rw [← hv p, ← heq] + exact ⟨hxy.2.1, hxy.2.2⟩ + +theorem HasRotationAngle.exists_translated_vertical_strip {s : Set Point} {ω : ℝ} + (hs : HasRotationAngle s ω) : + ∃ v : Point, s ⊆ (fun p ↦ p + v) '' (strips ω).2.2 := by + obtain ⟨m, hm, α, _, _, hα1, hmotion⟩ := hs + obtain ⟨_, _, _, _, _, _, _, hend⟩ := hm + refine ⟨-rotationMap (ω : Real.Angle) (m 1 0), ?_⟩ + intro p hp + have hmem := hend ⟨p, hp, rfl⟩ + obtain ⟨x, y, hxy, heq⟩ := hmem + refine ⟨rotationMap (ω : Real.Angle) (m 1 p), ?_, ?_⟩ + · refine ⟨m 1 p, ?_, rfl⟩ + change 0 ≤ (m 1 p) 0 ∧ (m 1 p) 0 ≤ 1 + rw [← heq] + exact ⟨hxy.1, hxy.2.1⟩ + · rw [hmotion 1 p, hα1] + simp only [rotationMap, Real.Angle.coe_neg, map_add, + ← EuclideanGeometry.o.rotation_symm, LinearIsometryEquiv.apply_symm_apply, + add_neg_cancel_right] + +private theorem isBounded_of_oblique_bounds (s : Set Point) (a c d A B : ℝ) + (hc : 0 < c) (hd : 0 < d) + (hy : ∀ p ∈ s, a ≤ p 1 ∧ p 1 ≤ a + 1) + (hx : ∀ p ∈ s, c * p 0 + d * p 1 ≤ A ∧ -d * p 0 + c * p 1 ≤ B) : + Bornology.IsBounded s := by + let l := (c * a - B) / d + let u := (A - d * a) / c + let M := |l| + |u| + let N := |a| + |a + 1| + apply isBounded_iff_forall_norm_le.mpr + refine ⟨M + N, ?_⟩ + intro p hp + obtain ⟨hy0, hy1⟩ := hy p hp + obtain ⟨hx0, hx1⟩ := hx p hp + have hl : l ≤ p 0 := by + apply (div_le_iff₀ hd).2 + nlinarith + have hu : p 0 ≤ u := by + apply (le_div_iff₀ hc).2 + nlinarith + have hM : 0 ≤ M := add_nonneg (abs_nonneg _) (abs_nonneg _) + have hN : 0 ≤ N := add_nonneg (abs_nonneg _) (abs_nonneg _) + have hxabs : |p 0| ≤ M := by + apply abs_le.mpr + dsimp [M] + constructor <;> linarith [neg_abs_le l, le_abs_self u, abs_nonneg l, abs_nonneg u] + have hyabs : |p 1| ≤ N := by + apply abs_le.mpr + dsimp [N] + constructor <;> linarith [neg_abs_le a, le_abs_self (a + 1), + abs_nonneg a, abs_nonneg (a + 1)] + have hx2 := pow_le_pow_left₀ (abs_nonneg (p 0)) hxabs 2 + have hy2 := pow_le_pow_left₀ (abs_nonneg (p 1)) hyabs 2 + have hnorm := EuclideanSpace.norm_sq_eq p + simp only [Fin.sum_univ_two, Real.norm_eq_abs, sq_abs] at hnorm hx2 hy2 + nlinarith [mul_nonneg hM hN, norm_nonneg p] + +theorem HasRotationAngle.isCompact {s : Set Point} {ω : ℝ} + (hs : HasRotationAngle s ω) (hω : ω ∈ Set.Ioc 0 (Real.pi / 2)) : IsCompact s := by + obtain ⟨v, hv⟩ := hs.exists_translated_horizontal_strip + have ht : ω / 2 ∈ Set.Icc 0 ω := ⟨by linarith [hω.1], by linarith [hω.1]⟩ + obtain ⟨w, hw⟩ := hs.exists_translated_rotated_hallway ht + have hc : 0 < Real.cos (ω / 2) := Real.cos_pos_of_mem_Ioo + ⟨by linarith [hω.1, Real.pi_pos], by linarith [hω.2, Real.pi_pos]⟩ + have hd : 0 < Real.sin (ω / 2) := Real.sin_pos_of_pos_of_lt_pi + (by linarith [hω.1]) (by linarith [hω.2, Real.pi_pos]) + have hb : Bornology.IsBounded s := isBounded_of_oblique_bounds s (v 1) + (Real.cos (ω / 2)) (Real.sin (ω / 2)) + (1 + inner ℝ w (normalVector ((ω / 2 : ℝ) : Real.Angle))) + (1 + inner ℝ w (tangentVector ((ω / 2 : ℝ) : Real.Angle))) hc hd + (by + intro p hp + obtain ⟨q, hq, rfl⟩ := hv hp + change 0 ≤ q 1 ∧ q 1 ≤ 1 at hq + change v 1 ≤ q 1 + v 1 ∧ q 1 + v 1 ≤ v 1 + 1 + constructor <;> linarith [hq.1, hq.2]) + (by + intro p hp + obtain ⟨q, hq, rfl⟩ := hw hp + have hq01 : q 0 ≤ 1 ∧ q 1 ≤ 1 := by + rcases hq with ⟨a, b, h, rfl⟩ | ⟨a, b, h, rfl⟩ + · exact ⟨h.1, h.2.2⟩ + · exact ⟨h.2.1, h.2.2⟩ + obtain ⟨hq0, hq1⟩ := hq01 + have hn : inner ℝ (rotationMap ((ω / 2 : ℝ) : Real.Angle) q + w) + (normalVector ((ω / 2 : ℝ) : Real.Angle)) ≤ + 1 + inner ℝ w (normalVector ((ω / 2 : ℝ) : Real.Angle)) := by + rw [inner_add_left, inner_rotationMap_normalVector] + linarith + have ht : inner ℝ (rotationMap ((ω / 2 : ℝ) : Real.Angle) q + w) + (tangentVector ((ω / 2 : ℝ) : Real.Angle)) ≤ + 1 + inner ℝ w (tangentVector ((ω / 2 : ℝ) : Real.Angle)) := by + rw [inner_add_left, inner_rotationMap_tangentVector] + linarith + simpa [normalVector, tangentVector, frame, PiLp.inner_apply, + Fin.sum_univ_two, Real.inner_apply, Real.Angle.cos_coe, Real.Angle.sin_coe, + mul_comm] using And.intro hn ht) + obtain ⟨m, hm, _⟩ := hs + exact Metric.isCompact_iff_isClosed_bounded.mpr ⟨hm.2.1, hb⟩ + +private theorem width_le_of_forall_mem_Icc {s : Set Point} (hne : s.Nonempty) + (f : Point → ℝ) (a b : ℝ) (h : ∀ p ∈ s, a ≤ f p ∧ f p ≤ b) : + sSup (f '' s) - sInf (f '' s) ≤ b - a := by + have hu : sSup (f '' s) ≤ b := csSup_le (hne.image f) (by + rintro _ ⟨p, hp, rfl⟩ + exact (h p hp).2) + have hl : a ≤ sInf (f '' s) := le_csInf (hne.image f) (by + rintro _ ⟨p, hp, rfl⟩ + exact (h p hp).1) + linarith + +theorem HasRotationAngle.horizontal_width_le {s : Set Point} {ω : ℝ} + (hs : HasRotationAngle s ω) : + sSup ((fun p : Point ↦ p 1) '' s) - sInf ((fun p : Point ↦ p 1) '' s) ≤ 1 := by + obtain ⟨v, hv⟩ := hs.exists_translated_horizontal_strip + obtain ⟨m, hm, _⟩ := hs + have hb := width_le_of_forall_mem_Icc hm.1.nonempty (fun p ↦ p 1) (v 1) (v 1 + 1) + (by + intro p hp + obtain ⟨q, hq, rfl⟩ := hv hp + change 0 ≤ q 1 ∧ q 1 ≤ 1 at hq + change v 1 ≤ q 1 + v 1 ∧ q 1 + v 1 ≤ v 1 + 1 + constructor <;> linarith [hq.1, hq.2]) + simpa using hb + +theorem HasRotationAngle.normal_width_le {s : Set Point} {ω : ℝ} + (hs : HasRotationAngle s ω) : + sSup ((fun p ↦ inner ℝ p (normalVector (ω : Real.Angle))) '' s) - + sInf ((fun p ↦ inner ℝ p (normalVector (ω : Real.Angle))) '' s) ≤ 1 := by + obtain ⟨v, hv⟩ := hs.exists_translated_vertical_strip + obtain ⟨m, hm, _⟩ := hs + have hb := width_le_of_forall_mem_Icc hm.1.nonempty + (fun p ↦ inner ℝ p (normalVector (ω : Real.Angle))) + (inner ℝ v (normalVector (ω : Real.Angle))) + (inner ℝ v (normalVector (ω : Real.Angle)) + 1) (by + intro p hp + obtain ⟨q, ⟨r, hr, rfl⟩, rfl⟩ := hv hp + change 0 ≤ r 0 ∧ r 0 ≤ 1 at hr + rw [inner_add_left, inner_rotationMap_normalVector] + constructor <;> linarith [hr.1, hr.2]) + simpa using hb + +private theorem subset_Icc_of_width_le_of_csSup_eq {s : Set ℝ} + (hbelow : BddBelow s) (habove : BddAbove s) + (hwidth : sSup s - sInf s ≤ 1) (hsup : sSup s = 1) : s ⊆ Set.Icc 0 1 := by + intro x hx + have hl := csInf_le hbelow hx + have hu := le_csSup habove hx + rw [hsup] at hwidth hu + exact ⟨by linarith, hu⟩ + +theorem IsStandardPosition.subset_strips {s : Set Point} {ω : ℝ} + (hs : IsStandardPosition s ω) : s ⊆ (strips ω).1 ∩ (strips ω).2.2 := by + obtain ⟨hcompact, hmotion, _, _, hnormal, hvertical⟩ := hs + have hcy : IsCompact ((fun p : Point ↦ p 1) '' s) := hcompact.image (by fun_prop) + have hcn : IsCompact ((fun p : Point ↦ inner ℝ p (normalVector (ω : Real.Angle))) '' s) := + hcompact.image (by fun_prop) + have hsupy : sSup ((fun p : Point ↦ p 1) '' s) = 1 := by + simpa [supportValue, normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] using hvertical + have hy := subset_Icc_of_width_le_of_csSup_eq hcy.bddBelow hcy.bddAbove + hmotion.horizontal_width_le hsupy + have hn := subset_Icc_of_width_le_of_csSup_eq hcn.bddBelow hcn.bddAbove + hmotion.normal_width_le hnormal + intro p hp + refine ⟨hy ⟨p, hp, rfl⟩, ?_⟩ + obtain ⟨q, rfl⟩ := (EuclideanGeometry.o.rotation (ω : Real.Angle)).surjective p + refine ⟨q, ?_, rfl⟩ + have hb := hn ⟨rotationMap (ω : Real.Angle) q, hp, rfl⟩ + change 0 ≤ q 0 ∧ q 0 ≤ 1 + simpa only [Set.mem_Icc, inner_rotationMap_normalVector] using hb + +theorem movingSofa_commonSubset (s : Set Point) (ω : ℝ) + (hs : HasRotationAngle s ω) (hω : ω ∈ Set.Ioc 0 (Real.pi / 2)) : + IsCompact s ∧ + (∃ v : Point, s ⊆ (fun p ↦ p + v) '' (strips ω).1) ∧ + (∃ v : Point, s ⊆ (fun p ↦ p + v) '' (strips ω).2.2) ∧ + (∀ t ∈ Set.Icc 0 ω, ∃ v : Point, + s ⊆ (fun p ↦ rotationMap (t : Real.Angle) p + v) '' hallway) ∧ + (sSup ((fun p : Point ↦ p 1) '' s) - sInf ((fun p : Point ↦ p 1) '' s) ≤ 1) ∧ + (sSup ((fun p ↦ inner ℝ p (normalVector (ω : Real.Angle))) '' s) - + sInf ((fun p ↦ inner ℝ p (normalVector (ω : Real.Angle))) '' s) ≤ 1) ∧ + (IsStandardPosition s ω → s ⊆ (strips ω).1 ∩ (strips ω).2.2) := by + exact ⟨hs.isCompact hω, hs.exists_translated_horizontal_strip, + hs.exists_translated_vertical_strip, fun _ ht ↦ hs.exists_translated_rotated_hallway ht, + hs.horizontal_width_le, hs.normal_width_le, fun hstd ↦ hstd.subset_strips⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Motion / Compactness +-/ + +@[expose] public section + +noncomputable section + +open Set MeasureTheory +open scoped unitInterval + +namespace MovingSofa + +private theorem abs_le_of_affine_coordinate {a b c x y z : ℝ} + (ha : a ≠ 0) (hy : |y| ≤ 1) (hz : |z| ≤ 1) (heq : z = a * x + b * y + c) : + |x| ≤ (1 + |b| + |c|) / |a| := by + have hmul : |a| * |x| ≤ 1 + |b| + |c| := by + calc + |a| * |x| = |z - (b * y + c)| := by rw [← abs_mul]; congr 1; linarith + _ ≤ |z| + |b * y + c| := abs_sub _ _ + _ ≤ 1 + (|b| * |y| + |c|) := by + grw [hz, abs_add_le, abs_mul] + _ ≤ 1 + |b| + |c| := by nlinarith [abs_nonneg b] + exact (le_div_iff₀ (abs_pos.mpr ha)).mpr (by nlinarith) + +private theorem norm_le_of_coordinate_bounds {p : Point} {C : ℝ} + (hC : 0 ≤ C) (hx : |p 0| ≤ C) (hy : |p 1| ≤ 1) : ‖p‖ ≤ C + 1 := by + have hn : ‖p‖ ^ 2 = (p 0) ^ 2 + (p 1) ^ 2 := by + simpa [Fin.sum_univ_two] using EuclideanSpace.real_norm_sq_eq p + have hx2 := sq_le_sq₀ (abs_nonneg (p 0)) hC |>.mpr hx + have hy2 := sq_le_sq₀ (abs_nonneg (p 1)) (by positivity : (0 : ℝ) ≤ 1) |>.mpr hy + rw [sq_abs] at hx2 hy2 + nlinarith [norm_nonneg p] + +private theorem affineIsometry_coordinate (e : Point ≃ᵃⁱ[ℝ] Point) (p : Point) (i : Fin 2) : + e p i = (e.linearIsometryEquiv !₂[1, 0]) i * p 0 + + (e.linearIsometryEquiv !₂[0, 1]) i * p 1 + e 0 i := by + have hp : p = p 0 • !₂[1, 0] + p 1 • !₂[0, 1] := by + ext j + fin_cases j <;> simp + have he := e.map_vadd (0 : Point) p + change e (p + 0) = e.linearIsometryEquiv p + e 0 at he + rw [add_zero] at he + rw [he, hp, map_add, map_smul, map_smul] + simp [mul_comm] + +private theorem isBounded_affine_strip (e : Point ≃ᵃⁱ[ℝ] Point) (i : Fin 2) + (hi : (e.linearIsometryEquiv !₂[1, 0]) i ≠ 0) : + Bornology.IsBounded {p : Point | |p 1| ≤ 1 ∧ |e p i| ≤ 1} := by + let C := (1 + |(e.linearIsometryEquiv !₂[0, 1]) i| + |e 0 i|) / + |(e.linearIsometryEquiv !₂[1, 0]) i| + have hC : 0 ≤ C := by dsimp [C]; positivity + apply isBounded_iff_forall_norm_le.mpr + refine ⟨C + 1, fun p hp ↦ ?_⟩ + apply norm_le_of_coordinate_bounds hC _ hp.1 + exact abs_le_of_affine_coordinate hi hp.1 hp.2 (affineIsometry_coordinate e p i) + +private theorem abs_snd_le_one_of_mem_horizontal {p : Point} + (hp : p ∈ horizontalHallway) : |p 1| ≤ 1 := by + obtain ⟨x, y, hxy, rfl⟩ := hp + simpa using + (abs_le.mpr ⟨by linarith [hxy.2.1], hxy.2.2⟩ : |y| ≤ 1) + +private theorem abs_fst_le_one_of_mem_vertical {p : Point} + (hp : p ∈ verticalHallway) : |p 0| ≤ 1 := by + obtain ⟨x, y, hxy, rfl⟩ := hp + simpa using + (abs_le.mpr ⟨by linarith [hxy.1], hxy.2.1⟩ : |x| ≤ 1) + +private theorem isBounded_of_mixed_direction (s : Set Point) + (m : I → Point ≃ᵃⁱ[ℝ] Point) (h : IsMovingSofa s m) (t : I) + (h0 : ((m t).linearIsometryEquiv !₂[1, 0]) 0 ≠ 0) + (h1 : ((m t).linearIsometryEquiv !₂[1, 0]) 1 ≠ 0) : Bornology.IsBounded s := by + apply ((isBounded_affine_strip (m t) 0 h0).union + (isBounded_affine_strip (m t) 1 h1)).subset + intro p hp + have hy := abs_snd_le_one_of_mem_horizontal (h.initial hp) + rcases h.subset_hallway t ⟨p, hp, rfl⟩ with hhor | hvert + · exact Or.inr ⟨hy, abs_snd_le_one_of_mem_horizontal hhor⟩ + · exact Or.inl ⟨hy, abs_fst_le_one_of_mem_vertical hvert⟩ + +/-- A set admitting a canonical hallway motion is bounded. -/ +theorem IsMovingSofa.isBounded {s : Set Point} + {m : I → Point ≃ᵃⁱ[ℝ] Point} (h : IsMovingSofa s m) : Bornology.IsBounded s := by + let d : I → Point := fun t ↦ (m t).linearIsometryEquiv !₂[1, 0] + have hd : Continuous d := by + have he (t : I) : d t = m t !₂[1, 0] - m t 0 := by + have he := (m t).map_vadd (0 : Point) !₂[1, 0] + change m t (!₂[1, 0] + 0) = d t + m t 0 at he + rw [add_zero] at he + exact eq_sub_iff_add_eq.mpr he.symm + simp_rw [show d = (fun t ↦ m t !₂[1, 0] - m t 0) from funext he] + have hm : Continuous (fun t ↦ (m t).toAffineIsometry.toContinuousAffineMap) := + continuous_induced_dom.comp h.continuous + exact (hm.eval_const _).sub (hm.eval_const _) + have hnorm (t : I) : (d t 0) ^ 2 + (d t 1) ^ 2 = 1 := by + have hn : ‖d t‖ = 1 := by + dsimp [d] + rw [(m t).linearIsometryEquiv.norm_map] + simp [EuclideanSpace.norm_eq, Fin.sum_univ_two] + have hs := EuclideanSpace.real_norm_sq_eq (d t) + simpa [hn, Fin.sum_univ_two] using hs.symm + by_cases hmix : ∃ t, d t 0 ≠ 0 ∧ d t 1 ≠ 0 + · obtain ⟨t, h0, h1⟩ := hmix + exact isBounded_of_mixed_direction s m h t h0 h1 + have hmem (t : I) : d t 0 ∈ ({-1, 0, 1} : Set ℝ) := by + by_cases h0 : d t 0 = 0 + · simp [h0] + have h1 : d t 1 = 0 := by + by_contra hn + exact hmix ⟨t, h0, hn⟩ + have hs : (d t 0) ^ 2 = (1 : ℝ) ^ 2 := by simpa [h1] using hnorm t + rcases (sq_eq_sq_iff_eq_or_eq_neg.mp hs) with he | he <;> simp [he] + have hc : Continuous (fun t ↦ d t 0) := + (PiLp.proj (𝕜 := ℝ) 2 (fun _ : Fin 2 ↦ ℝ) 0).continuous.comp hd + have hconst (t : I) : d t 0 = d 0 0 := + isPreconnected_univ.constant_of_mapsTo + (((finite_singleton (1 : ℝ)).insert 0).insert (-1)).isDiscrete + hc.continuousOn (fun t _ ↦ hmem t) (mem_univ t) (mem_univ 0) + have hd0 : d 0 0 = 1 := by simp only [d, h.zero]; rfl + have hdir : ((m 1).linearIsometryEquiv !₂[1, 0]) 0 ≠ 0 := by + change d 1 0 ≠ 0 + rw [hconst, hd0] + norm_num + apply (isBounded_affine_strip (m 1) 0 hdir).subset + intro p hp + exact ⟨abs_snd_le_one_of_mem_horizontal (h.initial hp), + abs_fst_le_one_of_mem_vertical (h.final ⟨p, hp, rfl⟩)⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Motion / Rotation +-/ + +@[expose] public section + +noncomputable section + +open Set +open scoped unitInterval + +namespace MovingSofa + +/-- The linear part of a continuous rigid motion varies continuously on each vector. -/ +theorem continuous_motion_linear_apply (m : I → Point ≃ᵃⁱ[ℝ] Point) + (hm : Continuous m) (x : Point) : + Continuous (fun t ↦ (m t).linearIsometryEquiv x) := by + have hmc : Continuous (fun t ↦ (m t).toAffineIsometry.toContinuousAffineMap) := + continuous_induced_dom.comp hm + have he (t : I) : (m t).linearIsometryEquiv x = m t x - m t 0 := by + have he := (m t).map_vadd (0 : Point) x + change m t (x + 0) = (m t).linearIsometryEquiv x + m t 0 at he + rw [add_zero] at he + exact eq_sub_iff_add_eq.mpr he.symm + simp_rw [he] + exact (hmc.eval_const x).sub (hmc.eval_const 0) + +/-- The linear parts of an identity-starting continuous rigid motion have positive determinant. -/ +theorem motion_linear_det_pos (m : I → Point ≃ᵃⁱ[ℝ] Point) + (hm : Continuous m) (hzero : m 0 = AffineIsometryEquiv.refl ℝ Point) (t : I) : + 0 < LinearMap.det (m t).linearIsometryEquiv.toLinearEquiv.toLinearMap := by + let L : I → Point →L[ℝ] Point := fun t ↦ (m t).linearIsometryEquiv.toContinuousLinearEquiv + have hL : Continuous L := continuous_clm_apply.mpr + (continuous_motion_linear_apply m hm) + have hdet : Continuous (fun t ↦ (L t).det) := ContinuousLinearMap.continuous_det.comp hL + have hne (u : I) : (L u).det ≠ 0 := (m u).linearIsometryEquiv.toLinearEquiv.isUnit_det'.ne_zero + have hL0 : L 0 = ContinuousLinearMap.id ℝ Point := by + ext x + simp only [L, hzero] + rfl + have hzero' : (L 0).det = 1 := by rw [hL0]; simp [ContinuousLinearMap.det] + change 0 < (L t).det + by_contra hneg + have hle : (L t).det ≤ 0 := le_of_not_gt hneg + obtain ⟨u, hu⟩ := intermediate_value_univ t 0 hdet ⟨hle, by rw [hzero']; norm_num⟩ + exact hne u hu + +/-- Each placement of an identity-starting continuous rigid motion is a rotation and translation. -/ +theorem exists_motion_rotation (m : I → Point ≃ᵃⁱ[ℝ] Point) + (hm : Continuous m) (hzero : m 0 = AffineIsometryEquiv.refl ℝ Point) (t : I) : + ∃ θ : Real.Angle, ∀ x, m t x = rotationMap θ x + m t 0 := by + obtain ⟨θ, hθ⟩ := EuclideanGeometry.o.exists_linearIsometryEquiv_eq_of_det_pos + (motion_linear_det_pos m hm hzero t) + refine ⟨θ, fun x ↦ ?_⟩ + have he := (m t).map_vadd (0 : Point) x + change m t (x + 0) = (m t).linearIsometryEquiv x + m t 0 at he + simpa only [add_zero, hθ, rotationMap] using he + +/-- Translation followed by a varying rotation depends continuously on both parameters. -/ +theorem continuous_vaddConst_trans_rotation : + Continuous (fun q : Real.Angle × Point ↦ ((AffineIsometryEquiv.vaddConst ℝ q.2).trans + (EuclideanGeometry.o.rotation q.1).toAffineIsometryEquiv)) := by + rw [continuous_induced_rng] + apply ContinuousAffineMap.continuous_rng + · intro p + change Continuous (fun q : Real.Angle × Point ↦ + (EuclideanGeometry.o.rotation q.1) (p + q.2)) + simp only [Orientation.rotation_apply] + exact ((Real.Angle.continuous_cos.comp continuous_fst).smul + (continuous_const.add continuous_snd)).add + ((Real.Angle.continuous_sin.comp continuous_fst).smul + (EuclideanGeometry.o.rightAngleRotation.continuous.comp + (continuous_const.add continuous_snd))) + · have heq : (fun q : Real.Angle × Point ↦ + (((AffineIsometryEquiv.vaddConst ℝ q.2).trans + (EuclideanGeometry.o.rotation + q.1).toAffineIsometryEquiv)).toAffineIsometry.toContinuousAffineMap.contLinear) = + (fun q : Real.Angle × Point ↦ + q.1.cos • ContinuousLinearMap.id ℝ Point + + q.1.sin • EuclideanGeometry.o.rightAngleRotation.toContinuousLinearMap) := by + funext q + apply ContinuousLinearMap.ext + intro p + change (EuclideanGeometry.o.rotation q.1) p = _ + exact EuclideanGeometry.o.rotation_apply q.1 p + change Continuous (fun q : Real.Angle × Point ↦ + (((AffineIsometryEquiv.vaddConst ℝ q.2).trans + (EuclideanGeometry.o.rotation + q.1).toAffineIsometryEquiv)).toAffineIsometry.toContinuousAffineMap.contLinear) + rw [heq] + exact ((Real.Angle.continuous_cos.comp continuous_fst).smul continuous_const).add + ((Real.Angle.continuous_sin.comp continuous_fst).smul continuous_const) + +/-- A continuously varying rotation about the origin followed by a continuously varying +translation is a continuous family of rigid motions. -/ +theorem continuous_rotation_trans_vaddConst {X : Type*} [TopologicalSpace X] + {θ : X → Real.Angle} {c : X → Point} (hθ : Continuous θ) (hc : Continuous c) : + Continuous (fun x ↦ (EuclideanGeometry.o.rotation (θ x)).toAffineIsometryEquiv.trans + (AffineIsometryEquiv.vaddConst ℝ (c x))) := by + rw [continuous_induced_rng] + apply ContinuousAffineMap.continuous_rng + · intro p + change Continuous (fun x ↦ (EuclideanGeometry.o.rotation (θ x)) p + c x) + simp only [Orientation.rotation_apply] + exact (((Real.Angle.continuous_cos.comp hθ).smul continuous_const).add + ((Real.Angle.continuous_sin.comp hθ).smul continuous_const)).add hc + · have heq : (fun x ↦ + ((EuclideanGeometry.o.rotation (θ x)).toAffineIsometryEquiv.trans + (AffineIsometryEquiv.vaddConst ℝ + (c x))).toAffineIsometry.toContinuousAffineMap.contLinear) = + (fun x ↦ (θ x).cos • ContinuousLinearMap.id ℝ Point + + (θ x).sin • EuclideanGeometry.o.rightAngleRotation.toContinuousLinearMap) := by + funext x + apply ContinuousLinearMap.ext + intro p + change (EuclideanGeometry.o.rotation (θ x)) p = _ + exact EuclideanGeometry.o.rotation_apply (θ x) p + change Continuous (fun x ↦ + ((EuclideanGeometry.o.rotation (θ x)).toAffineIsometryEquiv.trans + (AffineIsometryEquiv.vaddConst ℝ + (c x))).toAffineIsometry.toContinuousAffineMap.contLinear) + rw [heq] + exact ((Real.Angle.continuous_cos.comp hθ).smul continuous_const).add + ((Real.Angle.continuous_sin.comp hθ).smul continuous_const) + +/-- Planar area is invariant under rotation about the origin, with no measurability +hypothesis on the set. -/ +theorem area_image_rotationMap (α : Real.Angle) (S : Set Point) : + ClassicalResults.area (rotationMap α '' S) = ClassicalResults.area S := by + have himg : rotationMap α '' S = (EuclideanGeometry.o.rotation α).symm ⁻¹' S := by + ext p + simp only [rotationMap, Set.mem_image, Set.mem_preimage] + constructor + · rintro ⟨x, hx, rfl⟩ + simpa using hx + · intro h + exact ⟨_, h, (EuclideanGeometry.o.rotation α).apply_symm_apply p⟩ + change (MeasureTheory.volume (rotationMap α '' S)).toReal = + (MeasureTheory.volume S).toReal + rw [himg] + congr 1 + exact (LinearIsometryEquiv.measurePreserving (EuclideanGeometry.o.rotation α).symm + (E := Point) (F := Point)).measure_preimage_emb + ((EuclideanGeometry.o.rotation α).symm.toHomeomorph.measurableEmbedding) S + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Motion / Angle Lift +-/ + +@[expose] public section + +noncomputable section + +open scoped unitInterval + +namespace MovingSofa + +/-- An identity-starting continuous rigid motion has a normalized continuous real angle lift. -/ +theorem exists_continuous_motion_angle_lift (m : I → Point ≃ᵃⁱ[ℝ] Point) + (hm : Continuous m) (hzero : m 0 = AffineIsometryEquiv.refl ℝ Point) : + ∃ (α : I → ℝ) (p : I → Point), Continuous α ∧ Continuous p ∧ + α 0 = 0 ∧ p 0 = 0 ∧ ∀ t x, m t x = rotationMap (α t : Real.Angle) x + p t := by + let e : Point := !₂[1, 0] + have he : e ≠ 0 := by + intro h + have := congrArg (fun p : Point ↦ p 0) h + norm_num [e] at this + let θ : I → Real.Angle := fun t ↦ EuclideanGeometry.o.oangle e + ((m t).linearIsometryEquiv e) + have hθ : Continuous θ := by + apply continuous_iff_continuousAt.mpr + intro t + have hne : (m t).linearIsometryEquiv e ≠ 0 := by + exact (m t).linearIsometryEquiv.map_ne_zero_iff.mpr he + have ha : ContinuousAt (fun z : Point × Point ↦ EuclideanGeometry.o.oangle z.1 z.2) + (e, (m t).linearIsometryEquiv e) := + EuclideanGeometry.o.continuousAt_oangle he hne + have hp : ContinuousAt (fun u : I ↦ (e, (m u).linearIsometryEquiv e)) t := + continuousAt_const.prodMk (continuous_motion_linear_apply m hm e).continuousAt + exact ContinuousAt.comp (f := fun u : I ↦ (e, (m u).linearIsometryEquiv e)) + (x := t) ha hp + have hθ0 : θ 0 = 0 := by + have h0 : (m 0).linearIsometryEquiv e = e := by rw [hzero]; rfl + simp [θ, h0] + have hrot (t : I) : (m t).linearIsometryEquiv = EuclideanGeometry.o.rotation (θ t) := by + obtain ⟨u, hu⟩ := EuclideanGeometry.o.exists_linearIsometryEquiv_eq_of_det_pos + (motion_linear_det_pos m hm hzero t) + have ht : θ t = u := by + dsimp [θ] + rw [hu, EuclideanGeometry.o.oangle_rotation_self_right he] + rw [ht, hu] + obtain ⟨α, hα, hα0, hαθ⟩ := Real.Angle.exists_continuous_lift_zero θ hθ hθ0 + have hp : Continuous (fun t ↦ m t (0 : Point)) := by + have hmc : Continuous (fun t ↦ (m t).toAffineIsometry.toContinuousAffineMap) := + continuous_induced_dom.comp hm + exact hmc.eval_const 0 + refine ⟨α, fun t ↦ m t 0, hα, hp, hα0, ?_, ?_⟩ + · change m 0 0 = 0 + rw [hzero] + rfl + · intro t x + have hx := (m t).map_vadd (0 : Point) x + change m t (x + 0) = (m t).linearIsometryEquiv x + m t 0 at hx + simpa only [add_zero, hrot t, hαθ t, rotationMap] using hx + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Motion / Rotation Angle Calculation +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The rotation-angle interval from `arccos(5/11)` up to, but excluding, `π/2`. -/ +abbrev RotationCalculationAngle := Set.Ico (Real.arccos (5 / 11 : ℝ)) (Real.pi / 2) + +/-- The piecewise lower cutoff on the auxiliary distance used in the rotation estimate. -/ +def rotationCalculationMinimum (ω : RotationCalculationAngle) : ℝ := + if ω.val < Real.arctan (11 / 5 : ℝ) then 5 / 4 else 11 / 10 + +/-- Auxiliary radii and points determined by an admissible rotation angle and distance. -/ +def rotationCalculationValues (ω : RotationCalculationAngle) + (d : Set.Icc (rotationCalculationMinimum ω) (Real.tan ω.val)) : + ℝ × ℝ × Point × Point := + let r := 1 - d.val * (Real.cos ω.val / Real.sin ω.val) + let g := Real.sqrt (1 - r ^ 2) + let o := (stripParallelogram ω.val).2.2 + (r, g, o - tangentVector 0 + d.val • normalVector 0, o - g • normalVector 0) + +theorem rotationCalculation_convex (d : ℝ) (hd : 1 ≤ d) : + ConvexOn ℝ (Set.Icc (Real.pi / 4) (Real.pi / 2)) + (fun t ↦ (1 - d * (Real.cos t / Real.sin t)) ^ 2) ∧ + ConvexOn ℝ (Set.Icc (Real.pi / 4) (Real.pi / 2)) + (fun t ↦ Real.cos t ^ 2) := by + let D := Set.Icc (Real.pi / 4) (Real.pi / 2) + have hsin (t : ℝ) (ht : t ∈ D) : Real.sin t ≠ 0 := by + have hpi : 0 < Real.pi := Real.pi_pos + have ht0 : 0 < t := lt_of_lt_of_le (by positivity : 0 < Real.pi / 4) ht.1 + have htpi : t < Real.pi := lt_of_le_of_lt ht.2 (by linarith) + exact (Real.sin_pos_of_pos_of_lt_pi ht0 htpi).ne' + have hfirst (t : ℝ) (ht : t ∈ D) : HasDerivAt + (fun s ↦ (1 - d * (Real.cos s / Real.sin s)) ^ 2) + (2 * d * (1 - d * (Real.cos t / Real.sin t)) / Real.sin t ^ 2) t := by + have htrig : -(Real.sin t * Real.sin t) - Real.cos t * Real.cos t = -1 := by + nlinarith [Real.sin_sq_add_cos_sq t] + convert (((hasDerivAt_const t 1).sub + ((hasDerivAt_const t d).mul ((Real.hasDerivAt_cos t).div + (Real.hasDerivAt_sin t) (hsin t ht)))).pow 2) using 1 + all_goals simp only [Pi.mul_apply, Pi.sub_apply, Pi.div_apply] + all_goals norm_num + all_goals simp only [htrig] + all_goals field_simp [hsin t ht] + have hsecond (t : ℝ) (ht : t ∈ D) : HasDerivAt + (fun s ↦ 2 * d * (1 - d * (Real.cos s / Real.sin s)) / Real.sin s ^ 2) + (2 * d / Real.sin t ^ 4 * + (d + 2 * d * Real.cos t ^ 2 - 2 * Real.sin t * Real.cos t)) t := by + have hs := hsin t ht + have htrig : -(Real.sin t * Real.sin t) - Real.cos t * Real.cos t = -1 := by + nlinarith [Real.sin_sq_add_cos_sq t] + convert (((hasDerivAt_const t (2 * d)).mul + ((hasDerivAt_const t 1).sub + ((hasDerivAt_const t d).mul ((Real.hasDerivAt_cos t).div + (Real.hasDerivAt_sin t) hs)))).div + ((Real.hasDerivAt_sin t).pow 2) (pow_ne_zero 2 hs)) using 1 + all_goals simp only [Pi.mul_apply, Pi.sub_apply, Pi.div_apply, Pi.pow_apply] + all_goals norm_num + all_goals simp only [htrig] + all_goals field_simp [hs] + all_goals ring + constructor + · apply convexOn_of_hasDerivWithinAt2_nonneg + (f' := fun t ↦ 2 * d * (1 - d * (Real.cos t / Real.sin t)) / Real.sin t ^ 2) + (f'' := fun t ↦ 2 * d / Real.sin t ^ 4 * + (d + 2 * d * Real.cos t ^ 2 - 2 * Real.sin t * Real.cos t)) (convex_Icc _ _) + · fun_prop + · intro t ht + exact (hfirst t (interior_subset ht)).hasDerivWithinAt + · intro t ht + exact (hsecond t (interior_subset ht)).hasDerivWithinAt + · intro t ht + have hc : 2 * Real.sin t * Real.cos t ≤ 1 := by + nlinarith [sq_nonneg (Real.sin t - Real.cos t), Real.sin_sq_add_cos_sq t] + have : 0 ≤ d + 2 * d * Real.cos t ^ 2 - 2 * Real.sin t * Real.cos t := by + nlinarith [sq_nonneg (Real.cos t)] + positivity + · apply convexOn_of_hasDerivWithinAt2_nonneg + (f' := fun t ↦ -2 * Real.sin t * Real.cos t) + (f'' := fun t ↦ -2 * Real.cos (2 * t)) (convex_Icc _ _) + · fun_prop + · intro t ht + convert ((Real.hasDerivAt_cos t).mul (Real.hasDerivAt_cos t)).hasDerivWithinAt using 1 <;> + first | funext s; simp [Pi.mul_apply]; ring | ring + · intro t ht + convert (((Real.hasDerivAt_sin t).mul (Real.hasDerivAt_cos t)).const_mul (-2)) + |>.hasDerivWithinAt using 1 <;> + first | funext s; simp [Pi.mul_apply]; ring | + rw [Real.cos_two_mul, ← Real.sin_sq_add_cos_sq t]; ring + · intro t ht + have htD := interior_subset ht + change t ∈ Set.Icc (Real.pi / 4) (Real.pi / 2) at htD + have h1 : Real.pi / 2 ≤ 2 * t := by + calc + Real.pi / 2 = 2 * (Real.pi / 4) := by ring + _ ≤ 2 * t := mul_le_mul_of_nonneg_left htD.1 (by norm_num) + have h2 : 2 * t ≤ Real.pi + Real.pi / 2 := by + calc + 2 * t ≤ 2 * (Real.pi / 2) := mul_le_mul_of_nonneg_left htD.2 (by norm_num) + _ ≤ Real.pi + Real.pi / 2 := by linarith [Real.pi_pos] + exact mul_nonneg_of_nonpos_of_nonpos (by norm_num) + (Real.cos_nonpos_of_pi_div_two_le_of_le h1 h2) + +private def rotationBound (d t : ℝ) : ℝ := + (1 - d * (Real.cos t / Real.sin t)) ^ 2 + 4 * Real.cos t ^ 2 + +private theorem rotationBound_convex (d : ℝ) (hd : 1 ≤ d) : + ConvexOn ℝ (Set.Icc (Real.pi / 4) (Real.pi / 2)) (rotationBound d) := by + obtain ⟨h₁, h₂⟩ := rotationCalculation_convex d hd + exact h₁.add (h₂.smul (by norm_num : (0 : ℝ) ≤ 4)) + +private theorem rotationBound_arccos : + rotationBound (5 / 4) (Real.arccos (5 / 11)) < 1 := by + have hs : Real.sin (Real.arccos (5 / 11)) = Real.sqrt 96 / 11 := by + rw [Real.sin_arccos] + norm_num + have hsq : Real.sqrt 96 ^ 2 = 96 := Real.sq_sqrt (by norm_num) + have hlo : 97 / 10 < Real.sqrt 96 := by + nlinarith [Real.sqrt_nonneg 96] + have hhi : Real.sqrt 96 < 49 / 5 := by + nlinarith [Real.sqrt_nonneg 96] + unfold rotationBound + rw [Real.cos_arccos (by norm_num) (by norm_num), hs] + have hpos : 0 < Real.sqrt 96 := by positivity + field_simp + nlinarith + +private theorem rotationBound_arctan_left : + rotationBound (5 / 4) (Real.arctan (11 / 5)) < 1 := by + unfold rotationBound + rw [Real.cos_arctan, Real.sin_arctan] + norm_num + have hs : Real.sqrt (146 : ℝ) ^ 2 = 146 := Real.sq_sqrt (by norm_num) + have hp : 0 < Real.sqrt (146 : ℝ) := by positivity + field_simp + nlinarith + +private theorem rotationBound_arctan_right : + rotationBound (11 / 10) (Real.arctan (11 / 5)) < 1 := by + unfold rotationBound + rw [Real.cos_arctan, Real.sin_arctan] + norm_num + have hs : Real.sqrt (146 : ℝ) ^ 2 = 146 := Real.sq_sqrt (by norm_num) + have hp : 0 < Real.sqrt (146 : ℝ) := by positivity + field_simp + nlinarith + +private theorem rotationBound_pi_div_two (d : ℝ) : rotationBound d (Real.pi / 2) = 1 := by + simp [rotationBound] + +/-- The three landmark angles of the rotation calculation are strictly ordered: +`π / 4 < arccos (5 / 11) < arctan (11 / 5) < π / 2`. -/ +theorem rotationCalculation_angle_bounds : + Real.pi / 4 < Real.arccos (5 / 11 : ℝ) ∧ + Real.arccos (5 / 11 : ℝ) < Real.arctan (11 / 5 : ℝ) ∧ + Real.arctan (11 / 5 : ℝ) < Real.pi / 2 := by + have ha : Real.arccos (5 / 11 : ℝ) = Real.arctan (Real.sqrt 96 / 5) := by + rw [Real.arccos_eq_arctan (by norm_num)] + norm_num + ring + have hs : Real.sqrt 96 ^ 2 = 96 := Real.sq_sqrt (by norm_num) + have hpos := Real.sqrt_nonneg 96 + refine ⟨?_, ?_, Real.arctan_lt_pi_div_two _⟩ + · rw [ha, ← Real.arctan_one] + apply Real.arctan_strictMono + nlinarith + · rw [ha] + apply Real.arctan_strictMono + nlinarith + +private theorem rotationBound_lt_one (ω : RotationCalculationAngle) : + rotationBound (rotationCalculationMinimum ω) ω.val < 1 := by + obtain ⟨ha, hab, hb⟩ := rotationCalculation_angle_bounds + have hdom₁ : Set.Icc (Real.arccos (5 / 11 : ℝ)) (Real.arctan (11 / 5 : ℝ)) ⊆ + Set.Icc (Real.pi / 4) (Real.pi / 2) := by + intro t ht + exact ⟨ha.le.trans ht.1, ht.2.trans hb.le⟩ + have hdom₂ : Set.Icc (Real.arctan (11 / 5 : ℝ)) (Real.pi / 2) ⊆ + Set.Icc (Real.pi / 4) (Real.pi / 2) := by + intro t ht + exact ⟨(ha.le.trans hab.le).trans ht.1, ht.2⟩ + unfold rotationCalculationMinimum + split_ifs with h + · exact ConvexOn.lt_on_Ico_of_lt_of_le + ((rotationBound_convex (5 / 4) (by norm_num)).subset hdom₁ (convex_Icc _ _)) + rotationBound_arccos rotationBound_arctan_left.le ω.property.1 h + · exact ConvexOn.lt_on_Ico_of_lt_of_le + ((rotationBound_convex (11 / 10) (by norm_num)).subset hdom₂ (convex_Icc _ _)) + rotationBound_arctan_right (rotationBound_pi_div_two _).le (le_of_not_gt h) ω.property.2 + +private theorem rotationCalculation_sin_bound (ω : RotationCalculationAngle) : + 1 < rotationCalculationMinimum ω * Real.sin ω.val := by + obtain ⟨ha, hab, hb⟩ := rotationCalculation_angle_bounds + have hsinmono := Real.strictMonoOn_sin.monotoneOn + unfold rotationCalculationMinimum + split_ifs with h + · have hs := hsinmono + (show Real.arccos (5 / 11 : ℝ) ∈ Set.Icc (-(Real.pi / 2)) (Real.pi / 2) by + constructor <;> linarith [Real.pi_pos]) + (show ω.val ∈ Set.Icc (-(Real.pi / 2)) (Real.pi / 2) by + constructor <;> linarith [ω.property.1, ω.property.2, Real.pi_pos]) ω.property.1 + rw [Real.sin_arccos] at hs + norm_num at hs + have hsqrt := Real.sq_sqrt (by norm_num : (0 : ℝ) ≤ 96) + have hp := Real.sqrt_nonneg 96 + have : 44 / 5 < Real.sqrt 96 := by nlinarith + nlinarith + · have hs := hsinmono + (show Real.arctan (11 / 5 : ℝ) ∈ Set.Icc (-(Real.pi / 2)) (Real.pi / 2) by + constructor <;> linarith [Real.pi_pos]) + (show ω.val ∈ Set.Icc (-(Real.pi / 2)) (Real.pi / 2) by + constructor <;> linarith [ω.property.1, ω.property.2, Real.pi_pos]) (le_of_not_gt h) + rw [Real.sin_arctan] at hs + norm_num at hs + have hsqrt := Real.sq_sqrt (by norm_num : (0 : ℝ) ≤ 146) + have hp : 0 < Real.sqrt 146 := by positivity + have hupper : Real.sqrt 146 < 121 / 10 := by nlinarith + have hbase : 10 / 11 < 11 / Real.sqrt 146 := (lt_div_iff₀ hp).2 (by nlinarith) + nlinarith + +private theorem rotationCalculation_g_bound (ω : RotationCalculationAngle) + (d : Set.Icc (rotationCalculationMinimum ω) (Real.tan ω.val)) + (hr : 0 ≤ (rotationCalculationValues ω d).1) : + 2 * Real.cos ω.val < (rotationCalculationValues ω d).2.1 := by + obtain ⟨ha, hab, hb⟩ := rotationCalculation_angle_bounds + have hw0 : 0 < ω.val := by linarith [ω.property.1, Real.pi_pos] + have hsin : 0 < Real.sin ω.val := + Real.sin_pos_of_pos_of_lt_pi hw0 (by linarith [ω.property.2, Real.pi_pos]) + have hcos : 0 < Real.cos ω.val := Real.cos_pos_of_mem_Ioo ⟨by linarith [Real.pi_pos], + ω.property.2⟩ + have hcot : 0 ≤ Real.cos ω.val / Real.sin ω.val := le_of_lt (div_pos hcos hsin) + have hmin : 0 ≤ rotationCalculationMinimum ω := by + unfold rotationCalculationMinimum + split_ifs <;> norm_num + have hdd := mul_le_mul_of_nonneg_right d.property.1 hcot + change 0 ≤ 1 - d.val * (Real.cos ω.val / Real.sin ω.val) at hr + have hf := rotationBound_lt_one ω + unfold rotationBound at hf + have hrle : 1 - d.val * (Real.cos ω.val / Real.sin ω.val) ≤ + 1 - rotationCalculationMinimum ω * (Real.cos ω.val / Real.sin ω.val) := by linarith + have hr0 : 0 ≤ 1 - rotationCalculationMinimum ω * (Real.cos ω.val / Real.sin ω.val) := by linarith + have hsquares := sq_le_sq₀ hr hr0 |>.2 hrle + have hrad : 0 ≤ 1 - (1 - d.val * (Real.cos ω.val / Real.sin ω.val)) ^ 2 := by + nlinarith [sq_nonneg (Real.cos ω.val)] + have hsqrt := Real.sq_sqrt hrad + have hnonneg := Real.sqrt_nonneg (1 - (1 - d.val * (Real.cos ω.val / Real.sin ω.val)) ^ 2) + change 2 * Real.cos ω.val < Real.sqrt _ + nlinarith + +theorem rotationCalculation_inequalities (ω : RotationCalculationAngle) + (d : Set.Icc (rotationCalculationMinimum ω) (Real.tan ω.val)) + (hr : 0 ≤ (rotationCalculationValues ω d).1) : + 1 < inner ℝ + ((rotationCalculationValues ω d).2.2.1 - + ((stripParallelogram ω.val).2.2 - tangentVector 0)) + (normalVector ((Real.pi / 2 - ω.val : ℝ) : Real.Angle)) ∧ + 1 < inner ℝ + ((rotationCalculationValues ω d).2.2.2 - + ((stripParallelogram ω.val).2.2 - normalVector (ω.val : Real.Angle))) + (tangentVector ((Real.pi / 2 - ω.val : ℝ) : Real.Angle)) := by + obtain ⟨ha, hab, hb⟩ := rotationCalculation_angle_bounds + have hw0 : 0 < ω.val := by linarith [ω.property.1, Real.pi_pos] + have hsin : 0 < Real.sin ω.val := + Real.sin_pos_of_pos_of_lt_pi hw0 (by linarith [ω.property.2, Real.pi_pos]) + have hcos : 0 < Real.cos ω.val := + Real.cos_pos_of_mem_Ioo ⟨by linarith [Real.pi_pos], ω.property.2⟩ + have hg := rotationCalculation_g_bound ω d hr + have hd := mul_le_mul_of_nonneg_right d.property.1 hsin.le + have hds := rotationCalculation_sin_bound ω + constructor + · simp [rotationCalculationValues, inner_smul_left, + normalVector, tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two, + Real.cos_pi_div_two_sub, -Real.Angle.coe_sub] + linarith + · have hvec : (rotationCalculationValues ω d).2.2.2 - + ((stripParallelogram ω.val).2.2 - normalVector (ω.val : Real.Angle)) = + normalVector (ω.val : Real.Angle) - (rotationCalculationValues ω d).2.1 • normalVector 0 + := by + simp only [rotationCalculationValues] + abel + rw [hvec] + simp only [inner_sub_left, inner_smul_left] + simp [normalVector, tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two, + Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub, -Real.Angle.coe_sub] + have hm := mul_lt_mul_of_pos_right hg hcos + nlinarith [Real.sin_sq_add_cos_sq ω.val] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Motion / Supporting Hallways +-/ + +@[expose] public section + +noncomputable section +open Set +open scoped unitInterval +namespace MovingSofa + +/-- The supporting placement regarded as an affine isometry equivalence. -/ +def supportingPlacementEquiv (s : Set Point) (t : Real.Angle) : + Point ≃ᵃⁱ[ℝ] Point := + (EuclideanGeometry.o.rotation t).toAffineIsometryEquiv.trans + (AffineIsometryEquiv.vaddConst ℝ + ((supportValue s t - 1) • normalVector t + + (supportValue s (t + ((Real.pi / 2 : ℝ) : Real.Angle)) - 1) • tangentVector t)) + +theorem supportingPlacementEquiv_apply (s : Set Point) (t : Real.Angle) (p : Point) : + supportingPlacementEquiv s t p = supportingPlacement s t p := by + simp [supportingPlacementEquiv, supportingPlacement, rotationMap, add_assoc] + +private def supportCorner (s : Set Point) (t : Real.Angle) : Point := + (supportValue s t - 1) • normalVector t + + (supportValue s (t + ((Real.pi / 2 : ℝ) : Real.Angle)) - 1) • tangentVector t + +private theorem continuous_supportCorner_real (s : Set Point) + (hs : s.Nonempty) (hc : IsCompact s) : + Continuous (fun t : ℝ ↦ supportCorner s (t : Real.Angle)) := by + have hh := (compactSet_support_continuity s s hs hc hs hc).2.2.1 + have hn := continuous_normalVector_real + have hv : Continuous (fun t : ℝ ↦ tangentVector (t : Real.Angle)) := by + have h := hn.comp (continuous_id.add (continuous_const (y := Real.pi / 2))) + simpa only [Function.comp_def, Pi.add_apply, id_eq, Real.Angle.coe_add, + normalVector_add_pi_div_two] using h + exact (((hh.comp Real.Angle.continuous_coe).sub continuous_const).smul hn).add + (((hh.comp (Real.Angle.continuous_coe.add continuous_const)).sub continuous_const).smul hv) + +private theorem supportingPlacementEquiv_symm_apply (s : Set Point) (t : Real.Angle) + (p : Point) : + (supportingPlacementEquiv s t).symm p = + ((AffineIsometryEquiv.vaddConst ℝ (-supportCorner s t)).trans + (EuclideanGeometry.o.rotation (-t)).toAffineIsometryEquiv) p := by + change (EuclideanGeometry.o.rotation t).symm (p - supportCorner s t) = + (EuclideanGeometry.o.rotation (-t)) (p + -supportCorner s t) + simp only [Orientation.rotation_symm_apply, Orientation.rotation_apply, + Real.Angle.cos_neg, Real.Angle.sin_neg, neg_smul, sub_eq_add_neg] + +private theorem continuous_inverse_supportingPlacement (s : Set Point) + (hs : s.Nonempty) (hc : IsCompact s) : + Continuous (fun t : ℝ ↦ (supportingPlacementEquiv s (t : Real.Angle)).symm) := by + have h := continuous_vaddConst_trans_rotation.comp + (Real.Angle.continuous_coe.neg.prodMk (continuous_supportCorner_real s hs hc).neg) + apply h.congr + intro t + apply AffineIsometryEquiv.ext + intro p + exact (supportingPlacementEquiv_symm_apply s (t : Real.Angle) p).symm + +private theorem inverse_supportingPlacement_coordinates (s : Set Point) + (t : Real.Angle) (p : Point) : + ((supportingPlacementEquiv s t).symm p) 0 = + inner ℝ p (normalVector t) - supportValue s t + 1 ∧ + ((supportingPlacementEquiv s t).symm p) 1 = + inner ℝ p (tangentVector t) - + supportValue s (t + ((Real.pi / 2 : ℝ) : Real.Angle)) + 1 := by + have hn := inner_supportingPlacement_normalVector s t ((supportingPlacementEquiv s t).symm p) + have ht := inner_supportingPlacement_tangentVector s t ((supportingPlacementEquiv s t).symm p) + rw [← supportingPlacementEquiv_apply, AffineIsometryEquiv.apply_symm_apply] at hn ht + constructor <;> linarith + +private theorem inverse_supportingPlacement_mem_hallway (s : Set Point) + (t : Real.Angle) {p : Point} (hp : p ∈ supportingHallway s t) : + (supportingPlacementEquiv s t).symm p ∈ hallway := by + obtain ⟨q, hq, rfl⟩ := hp + rw [← supportingPlacementEquiv_apply, AffineIsometryEquiv.symm_apply_apply] + exact hq + +private theorem hallway_coordinates_le {p : Point} (hp : p ∈ hallway) : + p 0 ≤ 1 ∧ p 1 ≤ 1 := by + rcases hp with ⟨a, b, h, rfl⟩ | ⟨a, b, h, rfl⟩ + · exact ⟨h.1, h.2.2⟩ + · exact ⟨h.2.1, h.2.2⟩ + +/-- A closed connected subset of the supporting-hallway intersection inherits its +clockwise hallway motion from the reference compact set. -/ +theorem hasRotationAngle_of_subset_supportingHallways (s S : Set Point) (ω : ℝ) + (hsne : s.Nonempty) (hscompact : IsCompact s) (hω : 0 ≤ ω) + (hsω : supportValue s (ω : Real.Angle) = 1) + (hsπ : supportValue s ((Real.pi / 2 : ℝ) : Real.Angle) = 1) + (hSconn : IsConnected S) (hSclosed : IsClosed S) + (hSsub : S ⊆ monotonization s ω) : HasRotationAngle S ω := by + let m : I → Point ≃ᵃⁱ[ℝ] Point := fun r ↦ + (supportingPlacementEquiv s ((ω * (r : ℝ) : ℝ) : Real.Angle)).symm + have hθ (r : I) : ω * (r : ℝ) ∈ Icc (0 : ℝ) ω := by + exact ⟨mul_nonneg hω r.2.1, + (mul_le_mul_of_nonneg_left r.2.2 hω).trans_eq (mul_one ω)⟩ + have hall (r : I) : m r '' S ⊆ hallway := by + rintro p ⟨q, hq, rfl⟩ + apply inverse_supportingPlacement_mem_hallway + exact mem_iInter.mp (mem_iInter.mp (hSsub hq).2 (ω * (r : ℝ))) (hθ r) + have hrot (r : I) (p : Point) : + m r p = rotationMap ((-ω * (r : ℝ) : ℝ) : Real.Angle) p + m r 0 := by + dsimp [m] + rw [supportingPlacementEquiv_symm_apply, supportingPlacementEquiv_symm_apply] + change rotationMap (-((ω * (r : ℝ) : ℝ) : Real.Angle)) + (p + -supportCorner s _) = _ + rw [show ((-ω * (r : ℝ) : ℝ) : Real.Angle) = + -((ω * (r : ℝ) : ℝ) : Real.Angle) by rw [neg_mul, Real.Angle.coe_neg]] + simp [rotationMap, map_add] + refine ⟨m, ?_, (fun r ↦ -ω * (r : ℝ)), by fun_prop, by simp, by simp, hrot⟩ + refine ⟨hSconn, + hSclosed, + (continuous_inverse_supportingPlacement s hsne hscompact).comp + (continuous_const.mul continuous_subtype_val), ?_, ?_, ?_, hall, ?_⟩ + · refine ⟨-supportCorner s 0, ?_⟩ + intro p + simp [m, supportingPlacementEquiv_symm_apply, + Orientation.rotation_zero] + · intro r + exact ⟨((-ω * (r : ℝ) : ℝ) : Real.Angle), hrot r⟩ + · rintro p ⟨q, hq, rfl⟩ + apply mem_horizontalHallway_of_coordinates + · exact (hallway_coordinates_le (hall 0 ⟨q, hq, rfl⟩)).1 + · have hc := (inverse_supportingPlacement_coordinates s 0 q).2 + have hqP := (mem_stripParallelogram_iff ω q).mp (hSsub hq).1 + have hy : (m 0 q) 1 = q 1 := by + simpa [m, hsπ, tangentVector, frame, PiLp.inner_apply, + Fin.sum_univ_two] using hc + rw [hy] + exact hqP.1 + · rintro p ⟨q, hq, rfl⟩ + apply mem_verticalHallway_of_coordinates + · have hc := (inverse_supportingPlacement_coordinates s (ω : Real.Angle) q).1 + have hqP := (mem_stripParallelogram_iff ω q).mp (hSsub hq).1 + have hx : (m 1 q) 0 = inner ℝ q (normalVector (ω : Real.Angle)) := by + simpa [m, hsω] using hc + rw [hx] + exact hqP.2 + · exact (hallway_coordinates_le (hall 1 ⟨q, hq, rfl⟩)).2 + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Motion / Translation +-/ + +@[expose] public section + +noncomputable section + +open scoped unitInterval + +namespace MovingSofa + +private def translatedMotion (v : Point) (m : I → Point ≃ᵃⁱ[ℝ] Point) (t : I) : + Point ≃ᵃⁱ[ℝ] Point := + (AffineIsometryEquiv.vaddConst ℝ (-v)).trans (m t) + +private theorem continuous_translatedMotion (v : Point) + (m : I → Point ≃ᵃⁱ[ℝ] Point) (hm : Continuous m) : + Continuous (translatedMotion v m) := by + rw [continuous_induced_rng] + have hmc : Continuous (fun t ↦ (m t).toAffineIsometry.toContinuousAffineMap) := + continuous_induced_dom.comp hm + apply (ContinuousAffineMap.continuous_comp_right + (AffineIsometryEquiv.vaddConst ℝ (-v)).toAffineIsometry.toContinuousAffineMap).comp + hmc |>.congr + intro t + rfl + +/-- Translating a sofa preserves each admitted rotation angle. -/ +theorem hasRotationAngle_image_add (s : Set Point) (v : Point) (ω : ℝ) + (hs : HasRotationAngle s ω) : + HasRotationAngle ((fun p ↦ p + v) '' s) ω := by + obtain ⟨m, hm, α, hα, hα0, hα1, hmotion⟩ := hs + refine ⟨translatedMotion v m, ?_, α, hα, hα0, hα1, ?_⟩ + · obtain ⟨hconn, hclosed, hcont, ⟨q, hq⟩, hrot, hini, hall, hfinal⟩ := hm + refine ⟨hconn.image _ (by fun_prop), ?_, continuous_translatedMotion v m hcont, + ⟨q - v, ?_⟩, ?_, ?_, ?_, ?_⟩ + · change IsClosed ((AffineIsometryEquiv.vaddConst ℝ v) '' s) + exact (AffineIsometryEquiv.vaddConst ℝ v).toHomeomorph.isClosedMap s hclosed + · intro p + change m 0 (p - v) = p + (q - v) + rw [hq] + abel + · intro t + obtain ⟨a, ha⟩ := hrot t + refine ⟨a, fun p ↦ ?_⟩ + change m t ((AffineIsometryEquiv.vaddConst ℝ (-v)) p) = + rotationMap a p + m t ((AffineIsometryEquiv.vaddConst ℝ (-v)) 0) + rw [ha ((AffineIsometryEquiv.vaddConst ℝ (-v)) p), + ha ((AffineIsometryEquiv.vaddConst ℝ (-v)) 0)] + have hvp : (AffineIsometryEquiv.vaddConst ℝ (-v)) p = p - v := by rfl + have hv0 : (AffineIsometryEquiv.vaddConst ℝ (-v)) 0 = -v := by simp + rw [hvp, hv0] + simp only [rotationMap, map_sub, map_neg] + abel + · rintro _ ⟨_, ⟨y, hy, rfl⟩, rfl⟩ + exact hini ⟨y, hy, by simp [translatedMotion]⟩ + · intro t + rintro _ ⟨x, ⟨y, hy, rfl⟩, rfl⟩ + exact hall t ⟨y, hy, by simp [translatedMotion]⟩ + · rintro _ ⟨x, ⟨y, hy, rfl⟩, rfl⟩ + exact hfinal ⟨y, hy, by simp [translatedMotion]⟩ + · intro t p + change m t ((AffineIsometryEquiv.vaddConst ℝ (-v)) p) = + rotationMap (α t : Real.Angle) p + + m t ((AffineIsometryEquiv.vaddConst ℝ (-v)) 0) + rw [hmotion t ((AffineIsometryEquiv.vaddConst ℝ (-v)) p), + hmotion t ((AffineIsometryEquiv.vaddConst ℝ (-v)) 0)] + have hvp : (AffineIsometryEquiv.vaddConst ℝ (-v)) p = p - v := by rfl + have hv0 : (AffineIsometryEquiv.vaddConst ℝ (-v)) 0 = -v := by simp + rw [hvp, hv0] + simp only [rotationMap, map_sub, map_neg] + abel + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Motion / Standard Position +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem exists_standardPosition_translation (s : Set Point) (ω : ℝ) + (hs : HasRotationAngle s ω) (hω : ω ∈ Set.Ioc 0 (Real.pi / 2)) : + (∃ v : Point, IsStandardPosition ((fun p ↦ p + v) '' s) ω) ∧ + (∀ v w : Point, + IsStandardPosition ((fun p ↦ p + v) '' s) ω → + IsStandardPosition ((fun p ↦ p + w) '' s) ω → + (ω < Real.pi / 2 → v = w) ∧ (ω = Real.pi / 2 → v 1 = w 1)) ∧ + (∀ v : Point, IsStandardPosition ((fun p ↦ p + v) '' s) ω → + ω = Real.pi / 2 → ∀ a : ℝ, + IsStandardPosition ((fun p ↦ p + (v + a • normalVector 0)) '' s) ω) ∧ + (∀ v : Point, IsStandardPosition ((fun p ↦ p + v) '' s) ω → + (fun p ↦ p + v) '' s ⊆ (stripParallelogram ω).1) := by + have hc : IsCompact s := hs.isCompact hω + have hne : s.Nonempty := by + obtain ⟨_, hm, _⟩ := hs + exact hm.1.nonempty + have hadd (v : Point) (t : Real.Angle) : + supportValue ((fun p ↦ p + v) '' s) t = + supportValue s t + inner ℝ v (normalVector t) := + supportValue_image_add_of_isCompact hc hne v t + have hcos (hlt : ω < Real.pi / 2) : Real.cos ω ≠ 0 := + (Real.cos_pos_of_mem_Ioo ⟨by linarith [hω.1, Real.pi_pos], hlt⟩).ne' + constructor + · rcases lt_or_eq_of_le hω.2 with hlt | rfl + · let v : Point := !₂[ + (1 - supportValue s (ω : Real.Angle) - + (1 - supportValue s ((Real.pi / 2 : ℝ) : Real.Angle)) * Real.sin ω) / + Real.cos ω, + 1 - supportValue s ((Real.pi / 2 : ℝ) : Real.Angle)] + refine ⟨v, hc.image (by fun_prop), hasRotationAngle_image_add s v ω hs, + hω.1, hω.2, ?_, ?_⟩ + · rw [hadd] + simp only [v, normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two, Real.inner_apply, + Real.Angle.cos_coe, Real.Angle.sin_coe, Matrix.cons_val_zero, + Matrix.cons_val_one] + field_simp [hcos hlt] + ring + · rw [hadd] + simp [v, normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + · let v : Point := !₂[0, + 1 - supportValue s ((Real.pi / 2 : ℝ) : Real.Angle)] + refine ⟨v, hc.image (by fun_prop), + hasRotationAngle_image_add s v (Real.pi / 2) hs, hω.1, hω.2, ?_, ?_⟩ + · rw [hadd] + simp [v, normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + · rw [hadd] + simp [v, normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + · constructor + · intro v w hv hw + have hvω := hv.2.2.2.2.1 + have hvπ := hv.2.2.2.2.2 + have hwω := hw.2.2.2.2.1 + have hwπ := hw.2.2.2.2.2 + rw [hadd] at hvω hvπ hwω hwπ + constructor + · intro hlt + have hy : v 1 = w 1 := by + simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] at hvπ hwπ + linarith + apply PiLp.ext + intro i + fin_cases i + · have hcω := hcos hlt + change v 0 = w 0 + simp only [normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, PiLp.inner_apply, + RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, + Matrix.cons_val_zero, Matrix.cons_val_one, Matrix.cons_val_fin_one] at hvω hwω + rw [hy] at hvω + apply mul_left_cancel₀ hcω + linarith [hvω, hwω] + · exact hy + · intro _ + simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] at hvπ hwπ + linarith + · constructor + · intro v hv hωeq a + subst ω + have hvπ := hv.2.2.2.2.2 + rw [hadd] at hvπ + refine ⟨hc.image (by fun_prop), + hasRotationAngle_image_add s (v + a • normalVector 0) (Real.pi / 2) hs, + hω.1, hω.2, ?_, ?_⟩ + · rw [hadd] + simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] at hvπ ⊢ + linarith + · rw [hadd] + simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] at hvπ ⊢ + linarith + · intro v hv + exact hv.subset_strips + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Bounds.WedgeContainment`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Bounds / Wedge Containment +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +private theorem smul_mem_of_mem_of_le_of_le {K : ConvexBody Point} {v : Point} + {l x r : ℝ} (hl : l • v ∈ (K : Set Point)) (hr : r • v ∈ (K : Set Point)) + (hlx : l ≤ x) (hxr : x ≤ r) : x • v ∈ (K : Set Point) := by + by_cases hlr : l = r + · have hx : x = l := by linarith + simpa [hx] using hl + · have hlrpos : 0 < r - l := sub_pos.mpr (lt_of_le_of_ne (hlx.trans hxr) hlr) + have hratio : (x - l) / (r - l) ∈ Set.Icc (0 : ℝ) 1 := by + constructor + · exact div_nonneg (sub_nonneg.mpr hlx) hlrpos.le + · exact (div_le_one hlrpos).2 (by linarith) + have hmem := K.convex.lineMap_mem hl hr hratio + rw [AffineMap.lineMap_apply_module] at hmem + have heq : (1 - (x - l) / (r - l)) • l • v + + ((x - l) / (r - l)) • r • v = x • v := by + rw [smul_smul, smul_smul, ← add_smul] + congr 1 + field_simp + ring + rw [heq] at hmem + exact hmem + +private theorem inner_lineMap (x y u : Point) (s : ℝ) : + inner ℝ (AffineMap.lineMap x y s) u = + inner ℝ x u + s * (inner ℝ y u - inner ℝ x u) := by + rw [AffineMap.lineMap_apply_module, inner_add_left, real_inner_smul_left, + real_inner_smul_left] + ring + +private theorem mem_segment_lineMap_of_one_le (x y : Point) {s : ℝ} (hs : 1 ≤ s) : + y ∈ segment ℝ x (AffineMap.lineMap x y s) := by + have hspos : 0 < s := zero_lt_one.trans_le hs + rw [segment_eq_image_lineMap] + refine ⟨1 / s, ⟨by positivity, (div_le_one hspos).2 hs⟩, ?_⟩ + ext i + simp [AffineMap.lineMap_apply_module, one_div, hspos.ne'] + field_simp + ring + +private theorem exists_lineMap_fan_boundary (x y u v : Point) + (hyu : 0 ≤ inner ℝ y u) (hyv : 0 ≤ inner ℝ y v) + (hdu : inner ℝ (y - x) u < 0) (hdv : inner ℝ (y - x) v < 0) : + ∃ s : ℝ, 1 ≤ s ∧ + 0 ≤ inner ℝ (AffineMap.lineMap x y s) u ∧ + 0 ≤ inner ℝ (AffineMap.lineMap x y s) v ∧ + (inner ℝ (AffineMap.lineMap x y s) u = 0 ∨ + inner ℝ (AffineMap.lineMap x y s) v = 0) := by + let du := inner ℝ x u - inner ℝ y u + let dv := inner ℝ x v - inner ℝ y v + have hdu' : 0 < du := by + rw [inner_sub_left] at hdu + dsimp [du] + linarith + have hdv' : 0 < dv := by + rw [inner_sub_left] at hdv + dsimp [dv] + linarith + by_cases hratio : inner ℝ x u / du ≤ inner ℝ x v / dv + · let s := inner ℝ x u / du + have hs : 1 ≤ s := by + apply (le_div_iff₀ hdu').2 + dsimp [du] + linarith + have hsdu : s * du = inner ℝ x u := by + dsimp [s] + field_simp + have hsu : inner ℝ (AffineMap.lineMap x y s) u = 0 := by + rw [inner_lineMap] + have hdiff : inner ℝ y u - inner ℝ x u = -du := by simp [du] + rw [hdiff, mul_neg, hsdu] + ring + have hsv : 0 ≤ inner ℝ (AffineMap.lineMap x y s) v := by + have hmul : s * dv ≤ inner ℝ x v := (le_div_iff₀ hdv').mp hratio + rw [inner_lineMap] + dsimp [dv] at hmul + linarith + exact ⟨s, hs, hsu.ge, hsv, Or.inl hsu⟩ + · let s := inner ℝ x v / dv + have hs : 1 ≤ s := by + apply (le_div_iff₀ hdv').2 + dsimp [dv] + linarith + have hsdv : s * dv = inner ℝ x v := by + dsimp [s] + field_simp + have hsv : inner ℝ (AffineMap.lineMap x y s) v = 0 := by + rw [inner_lineMap] + have hdiff : inner ℝ y v - inner ℝ x v = -dv := by simp [dv] + rw [hdiff, mul_neg, hsdv] + ring + have hsu : 0 ≤ inner ℝ (AffineMap.lineMap x y s) u := by + have hmul : s * du ≤ inner ℝ x u := (le_div_iff₀ hdu').mp (not_le.mp hratio).le + rw [inner_lineMap] + dsimp [du] at hmul + linarith + exact ⟨s, hs, hsu, hsv.ge, Or.inr hsv⟩ + +private theorem cap_fan_boundary_mem {ω : ℝ} (K : CapSpace ω) + (t : ℝ) (ht : t ∈ Set.Ioo 0 ω) (p : Point) + (hpy : 0 ≤ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle))) + (hpω : 0 ≤ inner ℝ p (normalVector (ω : Real.Angle))) + (hpboundary : inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 ∨ + inner ℝ p (normalVector (ω : Real.Angle)) = 0) + (hpt : inner ℝ p (normalVector (t : Real.Angle)) < + supportValue K.val (t : Real.Angle) - 1) + (hptv : inner ℝ p (tangentVector (t : Real.Angle)) < + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) : + p ∈ (K.val : Set Point) := by + have hsint : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi ht.1 + (by linarith [ht.2, K.property.2.1, Real.pi_pos]) + have hcost : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, ht.1], ht.2.trans_le K.property.2.1⟩ + have hsinδ : 0 < Real.sin (ω - t) := Real.sin_pos_of_pos_of_lt_pi + (sub_pos.mpr ht.2) (by linarith [ht.1, K.property.2.1, Real.pi_pos]) + have hcosδ : 0 < Real.cos (ω - t) := Real.cos_pos_of_mem_Ioo + ⟨by linarith [sub_pos.mpr ht.2, Real.pi_pos], + by linarith [ht.1, K.property.2.1]⟩ + by_cases hωeq : ω = Real.pi / 2 + · have hpy0 : p 1 = 0 := by + rcases hpboundary with hpy0 | hpω0 + · simpa [normalVector, frame, PiLp.inner_apply] using hpy0 + · rw [hωeq] at hpω0 + simpa [normalVector, frame, PiLp.inner_apply] using hpω0 + let l := -supportValue K.val (Real.pi : Real.Angle) + let r := supportValue K.val (0 : Real.Angle) + have hleft : l • normalVector (0 : Real.Angle) ∈ (K.val : Set Point) := by + have h := supportValue_pi_smul_normalVector_mem_of_eq K hωeq + convert h using 1 + ext i + fin_cases i <;> simp [l, normalVector, frame] + have hright : r • normalVector (0 : Real.Angle) ∈ (K.val : Set Point) := by + exact supportValue_zero_smul_normalVector_mem K + have hbounds := K.supportValue_upper_bounds ht + have hsint_lt : Real.sin t < 1 := by + nlinarith only [Real.sin_sq_add_cos_sq t, sq_pos_of_pos hcost] + have hcost_lt : Real.cos t < 1 := by + nlinarith only [Real.sin_sq_add_cos_sq t, sq_pos_of_pos hsint] + have hpr : p 0 ≤ r := by + have hpt' := hpt + simp [normalVector, frame, PiLp.inner_apply, hpy0] at hpt' + dsimp [r] + nlinarith [hbounds.1] + have hangle : ((ω + Real.pi / 2 : ℝ) : Real.Angle) = + (Real.pi : Real.Angle) := by + congr 1 + rw [hωeq] + ring + have hbound₂ := hbounds.2 + rw [hangle] at hbound₂ + have hsinωt : Real.sin (ω - t) = Real.cos t := by + rw [hωeq, Real.sin_pi_div_two_sub] + have hcosωt : Real.cos (ω - t) = Real.sin t := by + rw [hωeq, Real.cos_pi_div_two_sub] + rw [hsinωt, hcosωt] at hbound₂ + have hlp : l ≤ p 0 := by + have hptv' := hptv + simp only [tangentVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, PiLp.inner_apply, + RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, Matrix.cons_val_zero, + neg_mul, Matrix.cons_val_one, Matrix.cons_val_fin_one, hpy0, mul_zero, add_zero, + Real.Angle.coe_add, neg_lt_sub_iff_lt_add] at hptv' + dsimp [l] + by_contra hp + have hmul := mul_lt_mul_of_pos_left (lt_of_not_ge hp) hsint + have hsum : Real.sin t * p 0 + supportValue K.val + ((t + Real.pi / 2 : ℝ) : Real.Angle) < 1 := by + calc + _ < Real.sin t * (-supportValue K.val (Real.pi : Real.Angle)) + + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) := + by + simpa [add_comm] using add_lt_add_right hmul + (supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle)) + _ ≤ Real.sin t * (-supportValue K.val (Real.pi : Real.Angle)) + + (Real.cos t + Real.sin t * supportValue K.val (Real.pi : Real.Angle)) := + by + simpa [add_comm] using + add_le_add_left hbound₂ + (Real.sin t * (-supportValue K.val (Real.pi : Real.Angle))) + _ = Real.cos t := by ring + _ < 1 := hcost_lt + exact (not_lt_of_ge hsum.le) hptv' + have hpEq : p = p 0 • normalVector (0 : Real.Angle) := by + ext i + fin_cases i <;> simp [normalVector, frame, hpy0] + rw [hpEq] + exact smul_mem_of_mem_of_le_of_le hleft hright hlp hpr + · have hωlt : ω < Real.pi / 2 := K.property.2.1.lt_of_ne hωeq + have hzero := zero_mem_cap_of_lt K hωlt + have hbounds := K.supportValue_upper_bounds ht + have hcosω : 0 < Real.cos ω := Real.cos_pos_of_mem_Ioo + ⟨by linarith [K.property.1, Real.pi_pos], hωlt⟩ + rcases hpboundary with hpy0 | hpω0 + · have hpy0' : p 1 = 0 := by + simpa [normalVector, frame, PiLp.inner_apply] using hpy0 + have hpx0 : 0 ≤ p 0 := by + have hpω' := hpω + simp [normalVector, frame, PiLp.inner_apply, hpy0'] at hpω' + by_contra hneg + have := mul_neg_of_pos_of_neg hcosω (lt_of_not_ge hneg) + linarith + have hsint_lt : Real.sin t < 1 := by + nlinarith [Real.sin_sq_add_cos_sq t, sq_pos_of_pos hcost] + have hpxr : p 0 ≤ supportValue K.val (0 : Real.Angle) := by + have hpt' := hpt + simp [normalVector, frame, PiLp.inner_apply, hpy0'] at hpt' + nlinarith [hbounds.1] + have hpEq : p = p 0 • normalVector (0 : Real.Angle) := by + ext i + fin_cases i <;> simp [normalVector, frame, hpy0'] + rw [hpEq] + exact K.val.convex.smul_mem_of_nonneg_of_le hzero + (supportValue_zero_smul_normalVector_mem K) hpx0 hpxr + · let μ := inner ℝ p (tangentVector (ω : Real.Angle)) + have hpEq : μ • tangentVector (ω : Real.Angle) = p := by + have hframe := inner_normalVector_smul_add_inner_tangentVector_smul + p (ω : Real.Angle) + rw [hpω0, zero_smul, zero_add] at hframe + exact hframe + have hμ0 : 0 ≤ μ := by + have hp1 := congrArg (fun x : Point ↦ x 1) hpEq + change μ * Real.cos ω = p 1 at hp1 + have hpy' : 0 ≤ p 1 := by + simpa [normalVector, frame, PiLp.inner_apply] using hpy + rw [← hp1] at hpy' + by_contra hneg + have := mul_neg_of_neg_of_pos (lt_of_not_ge hneg) hcosω + linarith + have hsinδ_lt : Real.sin (ω - t) < 1 := by + nlinarith only [Real.sin_sq_add_cos_sq (ω - t), sq_pos_of_pos hcosδ] + have htv : inner ℝ (tangentVector (ω : Real.Angle)) + (tangentVector (t : Real.Angle)) = Real.cos (ω - t) := by + simp [tangentVector, frame, PiLp.inner_apply, Real.cos_sub] + ring + have hμL : μ ≤ supportValue K.val + ((ω + Real.pi / 2 : ℝ) : Real.Angle) := by + have hptv' := hptv + rw [← hpEq, real_inner_smul_left, htv] at hptv' + nlinarith [hbounds.2] + rw [← hpEq] + exact K.val.convex.smul_mem_of_nonneg_of_le hzero + (supportValue_add_pi_div_two_smul_tangentVector_mem_of_lt K hωlt) hμ0 hμL + +theorem capWedge_subset_of_innerCorner_mem {ω : ℝ} (K : CapSpace ω) + (t : ℝ) (ht : t ∈ Set.Ioo 0 ω) + (hz : (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerCorner ∈ + (K.val : Set Point)) : + capWedge K t ⊆ (K.val : Set Point) := by + intro q hq + rcases hq with ⟨hqFan, hqQuad⟩ + let z := (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerCorner + change z ∈ (K.val : Set Point) at hz + change q ∈ supportingPlacement (K.val : Set Point) (t : Real.Angle) '' + hallwayParts.innerQuadrant at hqQuad + obtain ⟨a, ha, hqa⟩ := hqQuad + change a 0 < 0 ∧ a 1 < 0 at ha + have hqQuad : inner ℝ q (normalVector (t : Real.Angle)) < + supportValue K.val (t : Real.Angle) - 1 ∧ + inner ℝ q (tangentVector (t : Real.Angle)) < + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := by + constructor + · rw [← hqa, inner_supportingPlacement_normalVector] + linarith [ha.1] + · rw [← hqa, inner_supportingPlacement_tangentVector] + change a 1 + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 < _ + linarith [ha.2] + have hzu : inner ℝ z (normalVector (t : Real.Angle)) = + supportValue K.val (t : Real.Angle) - 1 := by + have h := inner_supportingPlacement_normalVector (K.val : Set Point) + (t : Real.Angle) (0 : Point) + simpa [z, rotatingHallwayParts, hallwayParts] using h + have hzv : inner ℝ z (tangentVector (t : Real.Angle)) = + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := by + have h := inner_supportingPlacement_tangentVector (K.val : Set Point) + (t : Real.Angle) (0 : Point) + simpa [z, rotatingHallwayParts, hallwayParts] using h + let d := q - z + have hdu : inner ℝ d (normalVector (t : Real.Angle)) < 0 := by + change inner ℝ (q - z) (normalVector (t : Real.Angle)) < 0 + rw [inner_sub_left] + linarith [hqQuad.1, hzu] + have hdv : inner ℝ d (tangentVector (t : Real.Angle)) < 0 := by + change inner ℝ (q - z) (tangentVector (t : Real.Angle)) < 0 + rw [inner_sub_left] + linarith [hqQuad.2, hzv] + have hdφ (φ : ℝ) : inner ℝ d (normalVector (φ : Real.Angle)) = + inner ℝ d (normalVector (t : Real.Angle)) * Real.cos (φ - t) + + inner ℝ d (tangentVector (t : Real.Angle)) * Real.sin (φ - t) := by + have hframe := inner_normalVector_smul_add_inner_tangentVector_smul + d (t : Real.Angle) + nth_rewrite 1 [← hframe] + rw [inner_add_left, real_inner_smul_left, real_inner_smul_left] + have hcos : Real.cos (t - φ) = Real.cos (φ - t) := by + rw [show t - φ = -(φ - t) by ring, Real.cos_neg] + rw [inner_normalVector_normalVector, hcos] + have hsin : inner ℝ (tangentVector (t : Real.Angle)) + (normalVector (φ : Real.Angle)) = Real.sin (φ - t) := by + simp [normalVector, tangentVector, frame, PiLp.inner_apply, Real.sin_sub] + ring + rw [hsin] + have hsint : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi ht.1 + (by linarith [ht.2, K.property.2.1, Real.pi_pos]) + have hcost : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, ht.1], ht.2.trans_le K.property.2.1⟩ + have hsinδ : 0 < Real.sin (ω - t) := Real.sin_pos_of_pos_of_lt_pi + (sub_pos.mpr ht.2) (by linarith [ht.1, K.property.2.1, Real.pi_pos]) + have hcosδ : 0 < Real.cos (ω - t) := Real.cos_pos_of_mem_Ioo + ⟨by linarith [sub_pos.mpr ht.2, Real.pi_pos], + by linarith [ht.1, K.property.2.1]⟩ + have hdy : inner ℝ d (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) < 0 := by + rw [hdφ, Real.cos_pi_div_two_sub, Real.sin_pi_div_two_sub] + exact add_neg (mul_neg_of_neg_of_pos hdu hsint) (mul_neg_of_neg_of_pos hdv hcost) + have hdω : inner ℝ d (normalVector (ω : Real.Angle)) < 0 := by + rw [hdφ] + exact add_neg (mul_neg_of_neg_of_pos hdu hcosδ) + (mul_neg_of_neg_of_pos hdv hsinδ) + have hqy : 0 ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) := hqFan.2 + have hqω : 0 ≤ inner ℝ q (normalVector (ω : Real.Angle)) := hqFan.1 + obtain ⟨s, hs, hpy, hpω, hpboundary⟩ := exists_lineMap_fan_boundary z q + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) (normalVector (ω : Real.Angle)) + hqy hqω (by simpa only [d] using hdy) (by simpa only [d] using hdω) + let p := AffineMap.lineMap z q s + change 0 ≤ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at hpy + change 0 ≤ inner ℝ p (normalVector (ω : Real.Angle)) at hpω + change inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 ∨ + inner ℝ p (normalVector (ω : Real.Angle)) = 0 at hpboundary + have hspos : 0 < s := zero_lt_one.trans_le hs + have hpt : inner ℝ p (normalVector (t : Real.Angle)) < + supportValue K.val (t : Real.Angle) - 1 := by + rw [inner_lineMap] + have hdiff : inner ℝ q (normalVector (t : Real.Angle)) - + inner ℝ z (normalVector (t : Real.Angle)) = + inner ℝ d (normalVector (t : Real.Angle)) := by + change _ = inner ℝ (q - z) (normalVector (t : Real.Angle)) + rw [inner_sub_left] + rw [hdiff, hzu] + have := mul_neg_of_pos_of_neg hspos hdu + linarith + have hptv : inner ℝ p (tangentVector (t : Real.Angle)) < + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := by + have hpinner := inner_lineMap z q (tangentVector (t : Real.Angle)) s + change inner ℝ p (tangentVector (t : Real.Angle)) = _ at hpinner + rw [hpinner] + have hdiff : inner ℝ q (tangentVector (t : Real.Angle)) - + inner ℝ z (tangentVector (t : Real.Angle)) = + inner ℝ d (tangentVector (t : Real.Angle)) := by + change _ = inner ℝ (q - z) (tangentVector (t : Real.Angle)) + rw [inner_sub_left] + rw [hdiff, hzv] + have := mul_neg_of_pos_of_neg hspos hdv + linarith + have hpFan : p ∈ capFan ω := ⟨hpω, hpy⟩ + have hqp : q ∈ segment ℝ z p := mem_segment_lineMap_of_one_le z q hs + have hpK := cap_fan_boundary_mem K t ht p hpy hpω hpboundary hpt hptv + exact K.val.convex.segment_subset hz hpK hqp + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Cap.Balanced`. +* `Cap.Clipped.Estimates`. +* `Cap.Clipped`. +* `Cap.Densities`. +* `Cap.UpperBoundary`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Balanced +-/ + +@[expose] public section + +noncomputable section + +open Filter +open scoped Topology + +namespace MovingSofa + +/-- The polygonal cap area minus the area of its polygonal niche. -/ +def polygonAreaFunctional (Θ : AngleSet) (K : CapSpace Θ.angle) : ℝ := + ClassicalResults.area (angleCap Θ K) - ClassicalResults.area (polygonNiche Θ K) + +/-- A cap containing the distinguished fan point maximizes the polygonal area functional. -/ +def IsMaximumPolygonCap (Θ : AngleSet) (K : PolygonCapSpace Θ) : Prop := + (stripParallelogram Θ.angle).2.2 ∈ (K.val.val : Set Point) ∧ + ∀ L : PolygonCapSpace Θ, polygonAreaFunctional Θ L.val ≤ polygonAreaFunctional Θ K.val + +/-- The cap is a Hausdorff limit of polygonal maxima on increasingly fine dyadic meshes. -/ +def IsBalancedMaximumCap {ω : ℝ} (K : CapSpace ω) : Prop := + ∃ (n : ℕ → ℕ) (hn : ∀ i, 2 ≤ n i), StrictMono n ∧ + (∀ i, ∃ k : ℕ, n i = 2 ^ k) ∧ + ∃ P : ∀ i, PolygonCapSpace (uniformAngleSet ω K.property.1 K.property.2.1 (n i) (hn i)), + (∀ i, IsMaximumPolygonCap _ (P i)) ∧ + Tendsto (fun i ↦ Metric.hausdorffDist ((P i).val.val : Set Point) (K.val : Set Point)) + atTop (𝓝 0) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Clipped / Estimates +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +private theorem clippedArea_bound_low {u t : ℝ} + (ht : 39 / 20 < t) (ht' : t ≤ 11 / 5) (hu : u < 121 / 50) : + u - (t - 5 / 4) ^ 2 / t < 11 / 5 := by + have ht0 : 0 < t := by linarith + have hsq : 49 / 100 < (t - 5 / 4) ^ 2 := by nlinarith + have hquot : 49 / 220 < (t - 5 / 4) ^ 2 / t := by + apply (lt_div_iff₀ ht0).2 + nlinarith + linarith + +private theorem clippedArea_bound {C S : ℝ} (hC : 0 < C) (hS : 0 < S) + (hcircle : S ^ 2 + C ^ 2 = 1) (hC' : C ≤ 5 / 11) : + let d : ℝ := if S / C < 11 / 5 then 5 / 4 else 11 / 10 + 1 / C - (S / C - d) ^ 2 * (C / S) < 11 / 5 := by + dsimp + split_ifs with h + · have ht : 0 < S / C := div_pos hS hC + have hid : (1 / C) ^ 2 = 1 + (S / C) ^ 2 := by + field_simp + nlinarith + have hu : 11 / 5 ≤ 1 / C := by + apply (le_div_iff₀ hC).2 + linarith + have hlo : 39 / 20 < S / C := by nlinarith + have hhi : 1 / C < 121 / 50 := by + have hu0 : 0 < 1 / C := by positivity + nlinarith + have hb := clippedArea_bound_low hlo h.le hhi + convert hb using 1 + field_simp + · have hs1 : S ≤ 1 := by nlinarith [sq_nonneg C] + have hc : C / (1 + S) ≤ C / S / 2 := by + have hs' : 0 < 1 + S := by linarith + apply (div_le_iff₀ hs').2 + field_simp + nlinarith [mul_nonneg hC.le (sub_nonneg.mpr hs1)] + have hid : 1 / C - (S / C - 11 / 10) ^ 2 * (C / S) = + C / (1 + S) + 11 / 5 - (121 / 100) * (C / S) := by + field_simp + nlinarith [hcircle] + rw [hid] + have hp : 0 < C / S := div_pos hC hS + linarith + +theorem rotationCalculation_area_estimate (ω : RotationCalculationAngle) : + 1 / Real.cos ω.val - (Real.tan ω.val - rotationCalculationMinimum ω) ^ 2 * + (Real.cos ω.val / Real.sin ω.val) < 11 / 5 := by + have hw0 : 0 < ω.val := + (Real.arccos_pos.mpr (by norm_num : (5 / 11 : ℝ) < 1)).trans_le ω.property.1 + have hC : 0 < Real.cos ω.val := + Real.cos_pos_of_mem_Ioo ⟨by linarith [Real.pi_pos], ω.property.2⟩ + have hS : 0 < Real.sin ω.val := + Real.sin_pos_of_pos_of_lt_pi hw0 (by linarith [ω.property.2, Real.pi_pos]) + have hC' : Real.cos ω.val ≤ 5 / 11 := by + have h := Real.strictAntiOn_cos.antitoneOn + (show Real.arccos (5 / 11 : ℝ) ∈ Set.Icc 0 Real.pi from + ⟨Real.arccos_nonneg _, Real.arccos_le_pi _⟩) + (show ω.val ∈ Set.Icc 0 Real.pi from + ⟨hw0.le, by linarith [ω.property.2, Real.pi_pos]⟩) ω.property.1 + simpa only [Real.cos_arccos (by norm_num : (-1 : ℝ) ≤ 5 / 11) + (by norm_num : (5 / 11 : ℝ) ≤ 1)] using h + have hs : (Real.sin ω.val / Real.cos ω.val < 11 / 5) ↔ + ω.val < Real.arctan (11 / 5 : ℝ) := by + rw [← Real.tan_eq_sin_div_cos, ← Real.arctan_lt_arctan_iff] + rw [Real.arctan_tan (by linarith [Real.pi_pos]) ω.property.2] + have hb := clippedArea_bound hC hS (Real.sin_sq_add_cos_sq ω.val) hC' + dsimp at hb + simp only [hs] at hb + simpa only [← Real.tan_eq_sin_div_cos, rotationCalculationMinimum] using hb + +theorem rotationCalculationMinimum_pos (ω : RotationCalculationAngle) : + 0 < rotationCalculationMinimum ω := by + unfold rotationCalculationMinimum + split_ifs <;> norm_num + +theorem rotationCalculationMinimum_lt_tan (ω : RotationCalculationAngle) : + rotationCalculationMinimum ω < Real.tan ω.val := by + have hw0 : 0 < ω.val := + (Real.arccos_pos.mpr (by norm_num : (5 / 11 : ℝ) < 1)).trans_le ω.property.1 + have hC : 0 < Real.cos ω.val := + Real.cos_pos_of_mem_Ioo ⟨by linarith [Real.pi_pos], ω.property.2⟩ + have hS : 0 < Real.sin ω.val := + Real.sin_pos_of_pos_of_lt_pi hw0 (by linarith [ω.property.2, Real.pi_pos]) + have hC' : Real.cos ω.val ≤ 5 / 11 := by + have h := Real.cos_le_cos_of_nonneg_of_le_pi (Real.arccos_nonneg (5 / 11)) + (by linarith [ω.property.2, Real.pi_pos] : ω.val ≤ Real.pi) ω.property.1 + simpa only [Real.cos_arccos (by norm_num : (-1 : ℝ) ≤ 5 / 11) + (by norm_num : (5 / 11 : ℝ) ≤ 1)] using h + have hsq : Real.cos ω.val ^ 2 ≤ (5 / 11 : ℝ) ^ 2 := + pow_le_pow_left₀ hC.le hC' 2 + have ht : (5 / 4 : ℝ) < Real.tan ω.val := by + rw [Real.tan_eq_sin_div_cos, lt_div_iff₀ hC] + nlinarith [Real.sin_sq_add_cos_sq ω.val] + unfold rotationCalculationMinimum + split_ifs <;> linarith + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Clipped +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open MeasureTheory Set + +/-- Clip the strip parallelogram by the two additional symmetric wall constraints. -/ +def clippedCap (ω d : ℝ) : Set Point := + (stripParallelogram ω).1 ∩ + normalHalfPlane 0 (d + Real.tan ((Real.pi / 2 - ω) / 2)) false false ∩ + normalHalfPlane ((ω + Real.pi / 2 : ℝ) : Real.Angle) + (d + Real.tan ((Real.pi / 2 - ω) / 2)) false false + +theorem mem_clippedCap_iff (ω d : ℝ) (p : Point) : + p ∈ clippedCap ω d ↔ + (0 ≤ p 1 ∧ p 1 ≤ 1) ∧ + (0 ≤ Real.cos ω * p 0 + Real.sin ω * p 1 ∧ + Real.cos ω * p 0 + Real.sin ω * p 1 ≤ 1) ∧ + p 0 ≤ d + Real.tan ((Real.pi / 2 - ω) / 2) ∧ + -Real.sin ω * p 0 + Real.cos ω * p 1 ≤ + d + Real.tan ((Real.pi / 2 - ω) / 2) := by + simp only [clippedCap, Set.mem_inter_iff, mem_stripParallelogram_iff] + simp [normalHalfPlane, normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two, + Real.cos_add, Real.sin_add, -Real.Angle.coe_add, and_assoc, mul_comm] + +theorem clippedCap_removed_pieces_disjoint {C S c d : ℝ} + (hC : 0 < C) (hS : 0 ≤ S) (hd : 0 ≤ d) (hc : c * (1 + S) = C) : + Disjoint {p : Point | p 1 ≤ 1 ∧ c + d < p 0} + {p : Point | c + d < -S * p 0 + C * p 1} := by + rw [Set.disjoint_left] + intro p hp hq + change p 1 ≤ 1 ∧ c + d < p 0 at hp + change c + d < -S * p 0 + C * p 1 at hq + have hmul := mul_le_mul_of_nonneg_left hp.1 hC.le + have hmul' := mul_le_mul_of_nonneg_left (le_of_lt hp.2) hS + have hprod := mul_nonneg hd (by linarith : 0 ≤ 1 + S) + nlinarith + +private theorem mem_stripParallelogram_coordinates (ω : ℝ) (p : Point) : + p ∈ (stripParallelogram ω).1 ↔ + (0 ≤ p 1 ∧ p 1 ≤ 1) ∧ + (0 ≤ Real.cos ω * p 0 + Real.sin ω * p 1 ∧ + Real.cos ω * p 0 + Real.sin ω * p 1 ≤ 1) := by + rw [mem_stripParallelogram_iff] + simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + +private theorem capReflection_rotatedCoordinate (ω : ℝ) (p : Point) : + Real.cos ω * capReflection ω p 0 + + Real.sin ω * capReflection ω p 1 = p 1 := by + rw [capReflection_apply_zero, capReflection_apply_one] + calc + _ = (Real.sin ω ^ 2 + Real.cos ω ^ 2) * p 1 := by ring + _ = p 1 := by rw [Real.sin_sq_add_cos_sq]; ring + +private def rightRemovedTriangle (ω d : ℝ) : Set Point := + (stripParallelogram ω).1 ∩ + {p | d + Real.tan ((Real.pi / 2 - ω) / 2) < p 0} + +private def leftRemovedTriangle (ω d : ℝ) : Set Point := + (stripParallelogram ω).1 ∩ + {p | d + Real.tan ((Real.pi / 2 - ω) / 2) < + -Real.sin ω * p 0 + Real.cos ω * p 1} + +private theorem leftRemovedTriangle_eq_preimage (ω d : ℝ) : + leftRemovedTriangle ω d = + capReflection ω ⁻¹' rightRemovedTriangle ω d := by + ext p + simp only [leftRemovedTriangle, rightRemovedTriangle, Set.mem_inter_iff, + Set.mem_ofPred_eq, Set.mem_preimage] + rw [mem_stripParallelogram_coordinates, + mem_stripParallelogram_coordinates, + capReflection_rotatedCoordinate, capReflection_apply_zero, + capReflection_apply_one] + tauto + +private theorem volume_stripParallelogram (ω : ℝ) (hC : 0 < Real.cos ω) : + volume (stripParallelogram ω).1 = ENNReal.ofReal (1 / Real.cos ω) := by + let f : ℝ → ℝ := fun y ↦ (-Real.sin ω * y) / Real.cos ω + let g : ℝ → ℝ := fun y ↦ (1 - Real.sin ω * y) / Real.cos ω + have hf : Measurable f := by fun_prop + have hg : Measurable g := by fun_prop + have hfi : IntegrableOn f (Icc (0 : ℝ) 1) := + (intervalIntegrable_iff_integrableOn_Icc_of_le (by norm_num)).mp + ((by fun_prop : Continuous f).intervalIntegrable 0 1) + have hgi : IntegrableOn g (Icc (0 : ℝ) 1) := + (intervalIntegrable_iff_integrableOn_Icc_of_le (by norm_num)).mp + ((by fun_prop : Continuous g).intervalIntegrable 0 1) + have hfg : ∀ y ∈ Icc (0 : ℝ) 1, f y ≤ g y := by + intro y _ + dsimp [f, g] + rw [div_le_div_iff_of_pos_right hC] + linarith + have hset : (stripParallelogram ω).1 = + {p : Point | p 1 ∈ Icc (0 : ℝ) 1 ∧ p 0 ∈ Icc (f (p 1)) (g (p 1))} := by + ext p + rw [mem_stripParallelogram_coordinates] + simp only [Set.mem_ofPred_eq, Set.mem_Icc] + constructor + · rintro ⟨hy, hz⟩ + refine ⟨hy, ?_, ?_⟩ + · dsimp [f] + apply (div_le_iff₀ hC).2 + linarith [hz.1] + · dsimp [g] + apply (le_div_iff₀ hC).2 + linarith [hz.2] + · rintro ⟨hy, hx0, hx1⟩ + refine ⟨hy, ?_, ?_⟩ + · dsimp [f] at hx0 + have := (div_le_iff₀ hC).1 hx0 + linarith + · dsimp [g] at hx1 + have := (le_div_iff₀ hC).1 hx1 + linarith + rw [hset, volume_horizontalIcc hf hg measurableSet_Icc hfi hgi hfg] + have hdiff : g - f = fun _ ↦ 1 / Real.cos ω := by + funext y + dsimp [f, g] + field_simp [hC.ne'] + ring + rw [hdiff, setIntegral_const] + simp + +private theorem volume_rightRemovedTriangle (ω d : ℝ) + (hω : ω ∈ Ioo 0 (Real.pi / 2)) (hd0 : 0 ≤ d) (hdt : d ≤ Real.tan ω) : + volume (rightRemovedTriangle ω d) = + ENNReal.ofReal ((Real.tan ω - d) ^ 2 * + (Real.cos ω / Real.sin ω) / 2) := by + let C := Real.cos ω + let S := Real.sin ω + let c := Real.tan ((Real.pi / 2 - ω) / 2) + let A := c + d + let b := Real.tan ω - d + let H := b * C / S + let f : ℝ → ℝ := fun _ ↦ A + let g : ℝ → ℝ := fun y ↦ (1 - S * y) / C + have hC : 0 < C := + Real.cos_pos_of_mem_Ioo ⟨by linarith [Real.pi_pos, hω.1], hω.2⟩ + have hS : 0 < S := Real.sin_pos_of_pos_of_lt_pi hω.1 + (by linarith [hω.2, Real.pi_pos]) + have hcircle : S ^ 2 + C ^ 2 = 1 := Real.sin_sq_add_cos_sq ω + have hgap : c = C⁻¹ - Real.tan ω := + (parallelogram_gap ω ⟨hω.1.le, hω.2⟩).2.2.2.2 + have htan : Real.tan ω = S / C := Real.tan_eq_sin_div_cos ω + have hcC : c * C = 1 - S := by + rw [hgap, htan] + field_simp [hC.ne'] + have hS1 : S < 1 := by nlinarith [sq_pos_of_pos hC] + have hc0 : 0 < c := by + have hcdiv : c = (1 - S) / C := by + apply (eq_div_iff hC.ne').2 + exact hcC + rw [hcdiv] + exact div_pos (sub_pos.mpr hS1) hC + have hb0 : 0 ≤ b := by dsimp [b]; linarith + have hbC : b * C = S - d * C := by + dsimp [b] + rw [htan] + field_simp [hC.ne'] + have hAC : A * C = 1 - b * C := by + dsimp [A] + nlinarith [hcC, hbC] + have hH0 : 0 ≤ H := by positivity + have hH1 : H ≤ 1 := by + dsimp [H, b] + apply (div_le_iff₀ hS).2 + dsimp [b] at hbC + nlinarith + have hf : Measurable f := measurable_const + have hg : Measurable g := by fun_prop + have hfi : IntegrableOn f (Icc (0 : ℝ) H) := + (intervalIntegrable_iff_integrableOn_Icc_of_le hH0).mp + ((by fun_prop : Continuous f).intervalIntegrable 0 H) + have hgi : IntegrableOn g (Icc (0 : ℝ) H) := + (intervalIntegrable_iff_integrableOn_Icc_of_le hH0).mp + ((by fun_prop : Continuous g).intervalIntegrable 0 H) + have hfg : ∀ y ∈ Icc (0 : ℝ) H, f y ≤ g y := by + intro y hy + dsimp [f, g, A] + apply (le_div_iff₀ hC).2 + dsimp [H, b] at hy + dsimp [b] at hbC hAC + have hy' := (le_div_iff₀ hS).1 hy.2 + nlinarith + have hset : rightRemovedTriangle ω d = + {p : Point | p 1 ∈ Icc (0 : ℝ) H ∧ p 0 ∈ Ioc (f (p 1)) (g (p 1))} := by + ext p + simp only [rightRemovedTriangle, Set.mem_inter_iff, Set.mem_ofPred_eq, + Set.mem_Icc, Set.mem_Ioc] + rw [mem_stripParallelogram_coordinates] + constructor + · rintro ⟨⟨hy, hz⟩, hxA⟩ + refine ⟨⟨hy.1, ?_⟩, ?_, ?_⟩ + · dsimp [H, b] + have hu : C * A + S * p 1 < 1 := by + dsimp [A] + nlinarith [mul_lt_mul_of_pos_left hxA hC] + apply (le_div_iff₀ hS).2 + nlinarith [hAC] + · simpa [f, A, add_comm] + · dsimp [g] + apply (le_div_iff₀ hC).2 + linarith [hz.2] + · rintro ⟨hy, hxA, hxU⟩ + refine ⟨⟨⟨hy.1, hy.2.trans hH1⟩, ?_, ?_⟩, ?_⟩ + · have hA0 : 0 < A := by dsimp [A]; linarith + dsimp [f, A] at hxA + nlinarith [mul_pos hC (lt_trans hA0 hxA)] + · dsimp [g] at hxU + have := (le_div_iff₀ hC).1 hxU + linarith + · simpa [f, A, add_comm] using hxA + rw [hset, volume_horizontalIoc hf hg measurableSet_Icc hfi hgi hfg] + have hdiff : g - f = fun y ↦ b - S / C * y := by + funext y + dsimp [f, g, A, b] + rw [hgap, htan] + field_simp [hC.ne'] + ring + rw [hdiff, integral_Icc_eq_integral_Ioc, + ← intervalIntegral.integral_of_le hH0] + have hconst : IntervalIntegrable (fun _ : ℝ ↦ b) volume 0 H := + continuous_const.intervalIntegrable 0 H + have hlinear : IntervalIntegrable (fun y : ℝ ↦ S / C * y) volume 0 H := + (continuous_const.mul continuous_id).intervalIntegrable 0 H + rw [intervalIntegral.integral_sub hconst hlinear, + intervalIntegral.integral_const, intervalIntegral.integral_const_mul, + integral_id] + simp only [sub_zero, smul_eq_mul] + congr 1 + norm_num + change H * b - S / C * (H ^ 2 / 2) = b ^ 2 * (C / S) / 2 + dsimp [H] + field_simp [hC.ne', hS.ne'] + ring + +private theorem measurableSet_stripParallelogram (ω : ℝ) : + MeasurableSet (stripParallelogram ω).1 := by + rw [show (stripParallelogram ω).1 = + {p : Point | + (0 ≤ p 1 ∧ p 1 ≤ 1) ∧ + (0 ≤ Real.cos ω * p 0 + Real.sin ω * p 1 ∧ + Real.cos ω * p 0 + Real.sin ω * p 1 ≤ 1)} by + ext p + exact mem_stripParallelogram_coordinates ω p] + measurability + +private theorem measurableSet_rightRemovedTriangle (ω d : ℝ) : + MeasurableSet (rightRemovedTriangle ω d) := by + unfold rightRemovedTriangle + apply (measurableSet_stripParallelogram ω).inter + measurability + +private theorem measurableSet_leftRemovedTriangle (ω d : ℝ) : + MeasurableSet (leftRemovedTriangle ω d) := by + unfold leftRemovedTriangle + apply (measurableSet_stripParallelogram ω).inter + measurability + +private theorem volume_leftRemovedTriangle_eq_right (ω d : ℝ) : + volume (leftRemovedTriangle ω d) = volume (rightRemovedTriangle ω d) := by + rw [leftRemovedTriangle_eq_preimage] + exact (LinearIsometryEquiv.measurePreserving (capReflection ω)).measure_preimage + (measurableSet_rightRemovedTriangle ω d).nullMeasurableSet + +private theorem stripParallelogram_decomposition (ω d : ℝ) : + (stripParallelogram ω).1 = + (clippedCap ω d ∪ rightRemovedTriangle ω d) ∪ leftRemovedTriangle ω d := by + ext p + simp only [Set.mem_union] + constructor + · intro hp + by_cases hx : p 0 ≤ d + Real.tan ((Real.pi / 2 - ω) / 2) + · by_cases hz : -Real.sin ω * p 0 + Real.cos ω * p 1 ≤ + d + Real.tan ((Real.pi / 2 - ω) / 2) + · exact Or.inl (Or.inl ((mem_clippedCap_iff ω d p).2 + ⟨((mem_stripParallelogram_coordinates ω p).1 hp).1, + ((mem_stripParallelogram_coordinates ω p).1 hp).2, hx, hz⟩)) + · exact Or.inr ⟨hp, by + change d + Real.tan ((Real.pi / 2 - ω) / 2) < + -Real.sin ω * p 0 + Real.cos ω * p 1 + exact lt_of_not_ge hz⟩ + · exact Or.inl (Or.inr ⟨hp, by + change d + Real.tan ((Real.pi / 2 - ω) / 2) < p 0 + exact lt_of_not_ge hx⟩) + · rintro (hp | hp) + · rcases hp with hp | hp + · exact (mem_stripParallelogram_coordinates ω p).2 + ⟨((mem_clippedCap_iff ω d p).1 hp).1, + ((mem_clippedCap_iff ω d p).1 hp).2.1⟩ + · exact hp.1 + · exact hp.1 + +private theorem clippedCap_disjoint_rightRemovedTriangle (ω d : ℝ) : + Disjoint (clippedCap ω d) (rightRemovedTriangle ω d) := by + rw [Set.disjoint_left] + intro p hp hq + have hp' := ((mem_clippedCap_iff ω d p).1 hp).2.2.1 + exact (not_lt_of_ge hp') hq.2 + +private theorem clippedCap_disjoint_leftRemovedTriangle (ω d : ℝ) : + Disjoint (clippedCap ω d) (leftRemovedTriangle ω d) := by + rw [Set.disjoint_left] + intro p hp hq + have hp' := ((mem_clippedCap_iff ω d p).1 hp).2.2.2 + exact (not_lt_of_ge hp') hq.2 + +private theorem rightRemovedTriangle_disjoint_leftRemovedTriangle + {ω d : ℝ} (hC : 0 < Real.cos ω) (hS : 0 ≤ Real.sin ω) (hd : 0 ≤ d) + (hc : Real.tan ((Real.pi / 2 - ω) / 2) * (1 + Real.sin ω) = Real.cos ω) : + Disjoint (rightRemovedTriangle ω d) (leftRemovedTriangle ω d) := by + apply (clippedCap_removed_pieces_disjoint hC hS hd hc).mono + · rintro p ⟨hp, hright⟩ + change d + Real.tan ((Real.pi / 2 - ω) / 2) < p 0 at hright + exact ⟨((mem_stripParallelogram_coordinates ω p).1 hp).1.2, + by simpa [add_comm] using hright⟩ + · rintro p ⟨_, hleft⟩ + change d + Real.tan ((Real.pi / 2 - ω) / 2) < + -Real.sin ω * p 0 + Real.cos ω * p 1 at hleft + simpa [add_comm] using hleft + +theorem clippedCap_area_formula (ω d : ℝ) + (hω : ω ∈ Ioo 0 (Real.pi / 2)) (hd0 : 0 ≤ d) (hdt : d ≤ Real.tan ω) : + ClassicalResults.area (clippedCap ω d) = + 1 / Real.cos ω - (Real.tan ω - d) ^ 2 * + (Real.cos ω / Real.sin ω) := by + let C := Real.cos ω + let S := Real.sin ω + let c := Real.tan ((Real.pi / 2 - ω) / 2) + let T := (Real.tan ω - d) ^ 2 * (C / S) / 2 + have hC : 0 < C := + Real.cos_pos_of_mem_Ioo ⟨by linarith [Real.pi_pos, hω.1], hω.2⟩ + have hS : 0 < S := Real.sin_pos_of_pos_of_lt_pi hω.1 + (by linarith [hω.2, Real.pi_pos]) + have hgap : c = C⁻¹ - Real.tan ω := + (parallelogram_gap ω ⟨hω.1.le, hω.2⟩).2.2.2.2 + have htan : Real.tan ω = S / C := Real.tan_eq_sin_div_cos ω + have hcC : c * C = 1 - S := by + rw [hgap, htan] + field_simp [hC.ne'] + have hc : c * (1 + S) = C := by + apply (mul_right_cancel₀ hC.ne') + nlinarith [hcC, Real.sin_sq_add_cos_sq ω] + have hP := volume_stripParallelogram ω hC + have hR := volume_rightRemovedTriangle ω d hω hd0 hdt + have hL : volume (leftRemovedTriangle ω d) = ENNReal.ofReal T := by + rw [volume_leftRemovedTriangle_eq_right, hR] + have hR' : volume (rightRemovedTriangle ω d) = ENNReal.ofReal T := by + simpa [T, C, S] using hR + have hCR := clippedCap_disjoint_rightRemovedTriangle ω d + have hCL := clippedCap_disjoint_leftRemovedTriangle ω d + have hRL := rightRemovedTriangle_disjoint_leftRemovedTriangle hC hS.le hd0 hc + have hdecomp : volume (stripParallelogram ω).1 = + (volume (clippedCap ω d) + volume (rightRemovedTriangle ω d)) + + volume (leftRemovedTriangle ω d) := by + rw [stripParallelogram_decomposition, + measure_union (hCL.union_left hRL) (measurableSet_leftRemovedTriangle ω d), + measure_union hCR (measurableSet_rightRemovedTriangle ω d)] + rw [hP, hR', hL] at hdecomp + have hclip_subset : clippedCap ω d ⊆ (stripParallelogram ω).1 := by + intro p hp + exact (mem_stripParallelogram_coordinates ω p).2 + ⟨((mem_clippedCap_iff ω d p).1 hp).1, + ((mem_clippedCap_iff ω d p).1 hp).2.1⟩ + have hclip_ne : volume (clippedCap ω d) ≠ ⊤ := by + apply ne_of_lt + refine lt_of_le_of_lt (measure_mono hclip_subset) ?_ + rw [hP] + exact ENNReal.ofReal_lt_top + have hT0 : 0 ≤ T := by dsimp [T]; positivity + have hTne : ENNReal.ofReal T ≠ ⊤ := ENNReal.ofReal_ne_top + have hsum_ne : volume (clippedCap ω d) + ENNReal.ofReal T ≠ ⊤ := + ENNReal.add_ne_top.mpr ⟨hclip_ne, hTne⟩ + have hreal := congrArg ENNReal.toReal hdecomp + rw [ENNReal.toReal_add hsum_ne hTne, + ENNReal.toReal_add hclip_ne hTne, + ENNReal.toReal_ofReal (by positivity : 0 ≤ 1 / Real.cos ω), + ENNReal.toReal_ofReal hT0] at hreal + unfold ClassicalResults.area + dsimp [T, C, S] at hreal ⊢ + linarith + +theorem clippedCap_minimum_area (ω : RotationCalculationAngle) : + ClassicalResults.area (clippedCap ω.val (rotationCalculationMinimum ω)) < 11 / 5 := by + have hω0 : 0 < ω.val := + (Real.arccos_pos.mpr (by norm_num : (5 / 11 : ℝ) < 1)).trans_le ω.property.1 + calc + ClassicalResults.area (clippedCap ω.val (rotationCalculationMinimum ω)) = + 1 / Real.cos ω.val - + (Real.tan ω.val - rotationCalculationMinimum ω) ^ 2 * + (Real.cos ω.val / Real.sin ω.val) := + clippedCap_area_formula ω.val (rotationCalculationMinimum ω) + ⟨hω0, ω.property.2⟩ (rotationCalculationMinimum_pos ω).le + (rotationCalculationMinimum_lt_tan ω).le + _ < 11 / 5 := rotationCalculation_area_estimate ω + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Densities +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped NNReal ENNReal + +namespace MovingSofa + +private theorem coe_injOn_halfTurn : + Set.InjOn (fun t : ℝ ↦ (t : Real.Angle)) (Icc 0 Real.pi) := by + let : Fact (0 < 2 * Real.pi) := ⟨by positivity⟩ + intro x hx y hy heq + exact (AddCircle.coe_eq_coe_iff_of_mem_Ico + (show x ∈ Ico 0 (0 + 2 * Real.pi) from ⟨hx.1, by linarith [hx.2, Real.pi_pos]⟩) + (show y ∈ Ico 0 (0 + 2 * Real.pi) from ⟨hy.1, by linarith [hy.2, Real.pi_pos]⟩)).mp heq + +/-- A right-angle cap whose surface area measure has angular densities on the two upper quarter +circles has no atom at a normal direction of the right upper quarter. -/ +theorem HasCapDensities.surfaceAreaMeasure_singleton_eq_zero_of_mem_Ico + {K : RightAngleCapSpace} {r s : ℝ → ℝ≥0} (hK : HasCapDensities K r s) {t : ℝ} + (ht : t ∈ Ico 0 (Real.pi / 2)) : + surfaceAreaMeasure K.1 {(t : Real.Angle)} = 0 := by + have he := congrArg (fun μ : Measure Real.Angle ↦ μ {(t : Real.Angle)}) hK.2.2.1 + have hm : (t : Real.Angle) ∈ + (fun x : ℝ ↦ (x : Real.Angle)) '' Ico 0 (Real.pi / 2) := ⟨t, ht, rfl⟩ + rw [Measure.restrict_apply (measurableSet_singleton _), + inter_eq_left.mpr (singleton_subset_iff.mpr hm)] at he + rw [he] + apply Measure.map_restrict_withDensity_singleton volume _ Real.Angle.continuous_coe.measurable + _ (coe_injOn_halfTurn.mono ?_) _ ht + intro x hx + exact ⟨hx.1, by linarith [hx.2, Real.pi_pos]⟩ + +/-- A right-angle cap whose surface area measure has angular densities on the two upper quarter +circles has no atom at a normal direction of the left upper quarter. -/ +theorem HasCapDensities.surfaceAreaMeasure_singleton_eq_zero_of_mem_Ioc + {K : RightAngleCapSpace} {r s : ℝ → ℝ≥0} (hK : HasCapDensities K r s) {t : ℝ} + (ht : t ∈ Ioc 0 (Real.pi / 2)) : + surfaceAreaMeasure K.1 {((t + Real.pi / 2 : ℝ) : Real.Angle)} = 0 := by + have he := congrArg (fun μ : Measure Real.Angle ↦ + μ {((t + Real.pi / 2 : ℝ) : Real.Angle)}) hK.2.2.2 + have hm : ((t + Real.pi / 2 : ℝ) : Real.Angle) ∈ + (fun x : ℝ ↦ (x : Real.Angle)) '' Ioc (Real.pi / 2) Real.pi := + ⟨t + Real.pi / 2, ⟨by linarith [ht.1], by linarith [ht.2]⟩, rfl⟩ + rw [Measure.restrict_apply (measurableSet_singleton _), + inter_eq_left.mpr (singleton_subset_iff.mpr hm)] at he + rw [he] + apply Measure.map_restrict_withDensity_singleton volume _ + (Real.Angle.continuous_coe.comp (continuous_id.add continuous_const)).measurable + _ ?_ _ ht + intro x hx y hy hxy + have heq := coe_injOn_halfTurn + (show x + Real.pi / 2 ∈ Icc 0 Real.pi from + ⟨by linarith [hx.1, Real.pi_pos], by linarith [hx.2]⟩) + (show y + Real.pi / 2 ∈ Icc 0 Real.pi from + ⟨by linarith [hy.1, Real.pi_pos], by linarith [hy.2]⟩) hxy + linarith + +theorem capDensities_contact_eq (K : RightAngleCapSpace) + (hK : ∃ r s, HasCapDensities K r s) : + (∀ t ∈ Set.Ico (0 : ℝ) (Real.pi / 2), + (capVertices K t).1.1 = (capVertices K t).1.2 ∧ + (tangentArmLengths K t).1.1 = (tangentArmLengths K t).1.2) ∧ + (∀ t ∈ Set.Ioc (0 : ℝ) (Real.pi / 2), + (capVertices K t).2.1 = (capVertices K t).2.2 ∧ + (tangentArmLengths K t).2.1 = (tangentArmLengths K t).2.2) := by + obtain ⟨r, s, hK⟩ := hK + constructor + · intro t ht + have h := (surfaceAreaMeasure_atom_length K.1 (t : Real.Angle)).2.2 + rw [hK.surfaceAreaMeasure_singleton_eq_zero_of_mem_Ico ht] at h + simp only [ENNReal.toReal_zero, zero_smul, add_zero] at h + have h' : (capVertices K t).1.1 = (capVertices K t).1.2 := h + exact ⟨h', by simp only [tangentArmLengths, h']⟩ + · intro t ht + have h := (surfaceAreaMeasure_atom_length K.1 + ((t + Real.pi / 2 : ℝ) : Real.Angle)).2.2 + rw [hK.surfaceAreaMeasure_singleton_eq_zero_of_mem_Ioc ht] at h + simp only [ENNReal.toReal_zero, zero_smul, add_zero] at h + have h' : (capVertices K t).2.1 = (capVertices K t).2.2 := h + exact ⟨h', by simp only [tangentArmLengths, h']⟩ + +/-- A right-angle cap carrying angular densities has singleton extreme faces at every upper normal +direction except possibly the vertical one: the densities exclude atoms of the surface area measure +on the two open quarter circles, so the corresponding faces have zero side length. -/ +theorem capDensities_edgeVertices_eq (K : RightAngleCapSpace) + (hK : ∃ r s, HasCapDensities K r s) {t : ℝ} (ht : t ∈ Icc 0 Real.pi) + (htop : t ≠ Real.pi / 2) : + (edgeVertices K.val (t : Real.Angle)).1 = (edgeVertices K.val (t : Real.Angle)).2 := by + rcases lt_or_gt_of_ne htop with h | h + · exact ((capDensities_contact_eq K hK).1 t ⟨ht.1, h⟩).1 + · have hmem : t - Real.pi / 2 ∈ Ioc (0 : ℝ) (Real.pi / 2) := ⟨by linarith, by linarith [ht.2]⟩ + have h' : (edgeVertices K.val ((t - Real.pi / 2 + Real.pi / 2 : ℝ) : Real.Angle)).1 = + (edgeVertices K.val ((t - Real.pi / 2 + Real.pi / 2 : ℝ) : Real.Angle)).2 := + ((capDensities_contact_eq K hK).2 (t - Real.pi / 2) hmem).1 + rwa [show t - Real.pi / 2 + Real.pi / 2 = t from by ring] at h' + +/-- The two cap contact paths and their scalar density functions on the quarter-turn interval. -/ +def nondegenerateCapData (K : RightAngleCapSpace) + (_hK : ∃ r s, HasCapDensities K r s) : + ((Set.Icc (0 : ℝ) (Real.pi / 2) → Point) × + (Set.Icc (0 : ℝ) (Real.pi / 2) → Point)) × + ((Set.Icc (0 : ℝ) (Real.pi / 2) → ℝ) × + (Set.Icc (0 : ℝ) (Real.pi / 2) → ℝ)) := by + classical + exact ((fun t ↦ if (t : ℝ) = Real.pi / 2 then (capVertices K t).1.2 + else (capVertices K t).1.1, + fun t ↦ (capVertices K t).2.1), + (fun t ↦ if (t : ℝ) = Real.pi / 2 then (tangentArmLengths K t).1.2 + else (tangentArmLengths K t).1.1, + fun t ↦ (tangentArmLengths K t).2.1)) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Upper Boundary +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The union of exposed cap edges over the upper range of normal directions. -/ +def capUpperBoundary {ω : ℝ} (K : CapSpace ω) : Set Point := + ⋃ t ∈ Set.Icc 0 (ω + Real.pi / 2), exposedEdge K.val (t : Real.Angle) + +theorem capUpperBoundary_connected {ω : ℝ} (K : CapSpace ω) : + IsConnected (capUpperBoundary K) := by + let I : Set ℝ := Set.Icc 0 (ω + Real.pi / 2) + let G : Set (I × Point) := + {q | q.2 ∈ exposedEdge K.val ((q.1 : ℝ) : Real.Angle)} + have hω : 0 ≤ ω + Real.pi / 2 := by + have := K.property.1 + positivity + have hI : IsConnected I := isConnected_Icc hω + let _ : ConnectedSpace I := Subtype.connectedSpace hI + have hnormal : Continuous (fun q : I × Point ↦ + normalVector (((q.1 : I) : ℝ) : Real.Angle)) := + continuous_normalVector_real.comp (continuous_subtype_val.comp continuous_fst) + have hsupport : Continuous (fun q : I × Point ↦ + supportValue K.val (((q.1 : I) : ℝ) : Real.Angle)) := + (continuous_supportValue_real K.val).comp (continuous_subtype_val.comp continuous_fst) + have heq : IsClosed {q : I × Point | + inner ℝ q.2 (normalVector (((q.1 : I) : ℝ) : Real.Angle)) = + supportValue K.val (((q.1 : I) : ℝ) : Real.Angle)} := + isClosed_eq (continuous_snd.inner hnormal) hsupport + have hG : IsCompact G := by + rw [show G = Set.univ ×ˢ (K.val : Set Point) ∩ + {q : I × Point | inner ℝ q.2 (normalVector (((q.1 : I) : ℝ) : Real.Angle)) = + supportValue K.val (((q.1 : I) : ℝ) : Real.Angle)} by + ext q + simp only [G, exposedEdge, supportingLineHalfPlane, normalLine, Set.mem_ofPred_eq, + Set.mem_inter_iff, Set.mem_prod, Set.mem_univ, true_and]] + exact (isCompact_univ.prod K.val.isCompact).inter_right heq + let _ : CompactSpace G := isCompact_iff_compactSpace.mp hG + let π : G → I := fun q ↦ q.1.1 + have hπcont : Continuous π := continuous_fst.comp continuous_subtype_val + have hπsurj : Function.Surjective π := by + intro t + obtain ⟨x, hx⟩ := exposedEdge_nonempty K.val ((t : ℝ) : Real.Angle) + exact ⟨⟨(t, x), hx⟩, rfl⟩ + have hπquot : Topology.IsQuotientMap π := + Topology.IsQuotientMap.of_surjective_continuous hπsurj hπcont + have hfiber (t : I) : IsConnected (π ⁻¹' {t}) := by + let E := exposedEdge K.val ((t : ℝ) : Real.Angle) + let e : E → G := fun x ↦ ⟨(t, x), x.property⟩ + have hecont : Continuous e := by + apply Continuous.subtype_mk + exact continuous_const.prodMk continuous_subtype_val + have himage : e '' Set.univ = π ⁻¹' {t} := by + ext q + constructor + · rintro ⟨x, -, rfl⟩ + simp [π, e] + · intro hq + have hqt : q.1.1 = t := by simpa [π] using hq + have hqx : q.1.2 ∈ exposedEdge K.val ((t : ℝ) : Real.Angle) := by + have hqG := q.property + change q.1.2 ∈ exposedEdge K.val (((q.1.1 : I) : ℝ) : Real.Angle) at hqG + simpa [hqt] using hqG + let x : E := ⟨q.1.2, hqx⟩ + refine ⟨x, Set.mem_univ x, ?_⟩ + apply Subtype.ext + apply Prod.ext + · exact hqt.symm + · rfl + rw [← himage] + let _ : ConnectedSpace E := + Subtype.connectedSpace (isConnected_exposedEdge K.val ((t : ℝ) : Real.Angle)) + exact isConnected_univ.image e hecont.continuousOn + have hGconn : IsConnected (Set.univ : Set G) := by + exact hπquot.isCoinducing.isConnected_preimage_of_isClosed hfiber isClosed_univ + isConnected_univ + have himage : (fun q : G ↦ q.1.2) '' Set.univ = capUpperBoundary K := by + ext x + simp only [Set.mem_image, Set.mem_univ, true_and, capUpperBoundary, Set.mem_iUnion] + constructor + · rintro ⟨q, rfl⟩ + exact ⟨q.1.1, q.1.1.property, q.property⟩ + · rintro ⟨t, ht, hx⟩ + exact ⟨⟨(⟨t, ht⟩, x), hx⟩, rfl⟩ + rw [← himage] + exact hGconn.image _ (continuous_snd.comp continuous_subtype_val).continuousOn + +private theorem CapSpace.mem_interior_of_mem_not_upperBoundary {ω : ℝ} + (K : CapSpace ω) {p : Point} (hpK : p ∈ (K.val : Set Point)) + (hpδ : p ∉ ⋃ t ∈ Set.Icc 0 (ω + Real.pi / 2), + exposedEdge K.val (t : Real.Angle)) : + (⟨p, K.subset_capFan hpK⟩ : capFan ω) ∈ + interior {q : capFan ω | (q : Point) ∈ (K.val : Set Point)} := by + let I := Set.Icc 0 (ω + Real.pi / 2) + let gap : ℝ → ℝ := fun t ↦ + supportValue K.val (t : Real.Angle) - inner ℝ p (normalVector (t : Real.Angle)) + have hgap_cont : Continuous gap := (continuous_supportValue_real K.val).sub + (continuous_const.inner continuous_normalVector_real) + have hgap_pos : ∀ t ∈ I, 0 < gap t := by + intro t ht + have hle := inner_le_supportValue K.val hpK (t : Real.Angle) + have hne : inner ℝ p (normalVector (t : Real.Angle)) ≠ + supportValue K.val (t : Real.Angle) := by + intro heq + apply hpδ + exact Set.mem_iUnion.mpr ⟨t, Set.mem_iUnion.mpr ⟨ht, + ⟨hpK, by simpa [supportingLineHalfPlane, normalLine]⟩⟩⟩ + dsimp [gap] + exact sub_pos.mpr (lt_of_le_of_ne hle hne) + have hIne : I.Nonempty := ⟨0, by + change 0 ∈ Set.Icc 0 (ω + Real.pi / 2) + exact ⟨le_rfl, by linarith [K.property.1, Real.pi_pos]⟩⟩ + have hIcompact : IsCompact I := by + dsimp [I] + exact isCompact_Icc + obtain ⟨m, hm, hmle⟩ := IsCompact.exists_pos_forall_le hIcompact hIne + hgap_cont.continuousOn hgap_pos + apply mem_interior_iff_mem_nhds.mpr + refine Filter.mem_of_superset (Metric.ball_mem_nhds _ (half_pos hm)) ?_ + intro q hq + change (q : Point) ∈ (K.val : Set Point) + apply K.mem_of_mem_capFan_of_lt_supportValue q.property + intro t ht + have hdist : ‖(q : Point) - p‖ < m / 2 := by + change dist (q : Point) p < m / 2 at hq + simpa [dist_eq_norm] using hq + have hnorm := norm_normalVector_real t + have hinner : inner ℝ ((q : Point) - p) (normalVector (t : Real.Angle)) < m / 2 := by + calc + inner ℝ ((q : Point) - p) (normalVector (t : Real.Angle)) + ≤ ‖(q : Point) - p‖ * ‖normalVector (t : Real.Angle)‖ := real_inner_le_norm _ _ + _ < m / 2 := by simpa [hnorm] using hdist + have := hmle t ht + dsimp [gap] at this + rw [inner_sub_left] at hinner + linarith + +private theorem CapSpace.mem_frontier_of_mem_upperBoundary {ω : ℝ} + (K : CapSpace ω) {p : Point} + (hp : p ∈ ⋃ t ∈ Set.Icc 0 (ω + Real.pi / 2), exposedEdge K.val (t : Real.Angle)) : + ∃ z : capFan ω, (z : Point) = p ∧ + z ∈ frontier {q : capFan ω | (q : Point) ∈ (K.val : Set Point)} := by + obtain ⟨t, hp⟩ := Set.mem_iUnion.mp hp + obtain ⟨htI, hpedge⟩ := Set.mem_iUnion.mp hp + let z : capFan ω := ⟨p, K.subset_capFan hpedge.1⟩ + have hzK : z ∈ {q : capFan ω | (q : Point) ∈ (K.val : Set Point)} := hpedge.1 + refine ⟨z, rfl, (mem_frontier_iff_notMem_interior hzK).2 ?_⟩ + intro hzint + obtain ⟨ε, hε, hball⟩ := Metric.isOpen_iff.mp isOpen_interior z hzint + let e := ε / 2 + have he : 0 < e := half_pos hε + let q : Point := p + e • normalVector (t : Real.Angle) + have hsin : 0 ≤ Real.sin t := Real.sin_nonneg_of_nonneg_of_le_pi htI.1 + (htI.2.trans (by linarith [K.property.2.1, Real.pi_pos])) + have hcos : 0 ≤ Real.cos (t - ω) := Real.cos_nonneg_of_mem_Icc ⟨by + linarith [htI.1, K.property.2.1, Real.pi_pos], by linarith [htI.2]⟩ + have hqfan : q ∈ capFan ω := by + constructor + · change 0 ≤ inner ℝ q (normalVector (ω : Real.Angle)) + dsimp [q] + rw [inner_add_left, inner_smul_left, inner_normalVector_normalVector] + have hpω := (K.subset_capFan hpedge.1).1 + change 0 ≤ inner ℝ p (normalVector (ω : Real.Angle)) at hpω + simp at * + nlinarith + · change 0 ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + dsimp [q] + rw [inner_add_left, inner_smul_left, inner_normalVector_normalVector] + have hpT := (K.subset_capFan hpedge.1).2 + change 0 ≤ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at hpT + rw [Real.cos_sub] + simp + nlinarith + have hqball : (⟨q, hqfan⟩ : capFan ω) ∈ Metric.ball z ε := by + change dist q p < ε + simp only [q, dist_eq_norm, add_sub_cancel_left, norm_smul, norm_normalVector_real, + mul_one] + rw [Real.norm_eq_abs, abs_of_pos he] + dsimp [e] + linarith + have hqK := interior_subset (hball hqball) + change q ∈ (K.val : Set Point) at hqK + have hqle := inner_le_supportValue K.val hqK (t : Real.Angle) + have hpedge_eq := hpedge.2 + change inner ℝ p (normalVector (t : Real.Angle)) = supportValue K.val (t : Real.Angle) + at hpedge_eq + dsimp [q] at hqle + rw [inner_add_left, inner_smul_left, inner_normalVector_self, hpedge_eq] at hqle + simp at hqle + nlinarith + +theorem capUpperBoundary_relativeBoundary {ω : ℝ} (K : CapSpace ω) : + capUpperBoundary K = + Subtype.val '' frontier {p : capFan ω | (p : Point) ∈ (K.val : Set Point)} := by + ext p + constructor + · intro hp + obtain ⟨z, rfl, hz⟩ := K.mem_frontier_of_mem_upperBoundary hp + exact ⟨z, hz, rfl⟩ + · rintro ⟨z, hzfront, rfl⟩ + let S : Set (capFan ω) := {p | (p : Point) ∈ (K.val : Set Point)} + have hSclosed : IsClosed S := K.val.isClosed.preimage continuous_subtype_val + have hzS : z ∈ S := by + apply hSclosed.closure_subset + exact frontier_subset_closure hzfront + by_contra hzupper + have hzint := K.mem_interior_of_mem_not_upperBoundary hzS hzupper + exact ((mem_frontier_iff_notMem_interior hzS).1 hzfront) hzint + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Bounds.Niche`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Bounds / Niche +-/ + +@[expose] public section + +noncomputable section + +open Filter MeasureTheory +open scoped Topology + +namespace MovingSofa + +/-- The infimum of the set’s horizontal coordinates. -/ +def horizontalMin (S : Set Point) : ℝ := sInf ((fun p ↦ p 0) '' S) + +/-- The supremum of the set’s horizontal coordinates. -/ +def horizontalMax (S : Set Point) : ℝ := sSup ((fun p ↦ p 0) '' S) + +/-- The niche is measurable, finite-area and enclosed by the specified horizontal-span +rectangle. -/ +def HasNicheRectangleBounds (S N : Set Point) : Prop := + MeasurableSet N ∧ + N ⊆ {p | horizontalMin S < p 0 ∧ p 0 < horizontalMax S ∧ + 0 ≤ p 1 ∧ p 1 < (horizontalMax S - horizontalMin S) / 2} ∧ + volume N < ⊤ ∧ + (horizontalMax S - horizontalMin S = 0 → ClassicalResults.area N = 0) + +private theorem niche_coordinate_bounds {c s l r x y : ℝ} + (hc : 0 < c) (hs : 0 < s) (hcircle : s ^ 2 + c ^ 2 = 1) + (hlr : l ≤ r) (hy : 0 ≤ y) + (hx : c * x + s * y < c * r + s - 1) + (hz : -s * x + c * y < -s * l + c - 1) : + l < x ∧ x < r ∧ y < (r - l) / 2 := by + have hc1 : c ≤ 1 := by nlinarith [sq_nonneg s] + have hs1 : s ≤ 1 := by nlinarith [sq_nonneg c] + have hsc : s * c ≤ 1 / 2 := by nlinarith [sq_nonneg (s - c)] + have hsum : 1 ≤ s + c := by nlinarith [mul_pos hs hc] + have hxlo : l < x := by nlinarith [mul_nonneg hc.le hy] + have hxhi : x < r := by nlinarith [mul_nonneg hs.le hy] + have h₁ := mul_lt_mul_of_pos_left hx hs + have h₂ := mul_lt_mul_of_pos_left hz hc + have hcomb : y < s * c * (r - l) + 1 - s - c := by + nlinarith [show s ^ 2 * y + c ^ 2 * y = y by nlinarith [hcircle]] + refine ⟨hxlo, hxhi, hcomb.trans_le ?_⟩ + have := mul_le_mul_of_nonneg_right hsc (sub_nonneg.mpr hlr) + linarith + +theorem horizontalMin_le (K : ConvexBody Point) {p : Point} (hp : p ∈ K) : + horizontalMin K ≤ p 0 := by + apply csInf_le ((K.isCompact.image (by fun_prop : Continuous (fun p : Point ↦ p 0))).bddBelow) + exact ⟨p, hp, rfl⟩ + +theorem le_horizontalMax (K : ConvexBody Point) {p : Point} (hp : p ∈ K) : + p 0 ≤ horizontalMax K := by + apply le_csSup ((K.isCompact.image (by fun_prop : Continuous (fun p : Point ↦ p 0))).bddAbove) + exact ⟨p, hp, rfl⟩ + +theorem horizontalMin_le_horizontalMax (K : ConvexBody Point) : + horizontalMin K ≤ horizontalMax K := by + obtain ⟨p, hp⟩ := K.nonempty + exact (horizontalMin_le K hp).trans (le_horizontalMax K hp) + +/-- The support value at the horizontal normal is the horizontal maximum. -/ +theorem supportValue_zero_eq_horizontalMax (S : Set Point) : + supportValue S ((0 : ℝ) : Real.Angle) = horizontalMax S := by + rw [supportValue, horizontalMax] + congr 1 + refine Set.image_congr fun p _ ↦ ?_ + rw [inner_normalVector_real, Real.cos_zero, Real.sin_zero, mul_one, mul_zero, add_zero] + +/-- The support value at the straight angle negates the horizontal minimum. -/ +theorem supportValue_pi_eq_neg_horizontalMin (S : Set Point) : + supportValue S ((Real.pi : ℝ) : Real.Angle) = -horizontalMin S := by + have himage : (fun p : Point ↦ -p 0) '' S = -((fun p : Point ↦ p 0) '' S) := by + ext x + simp [neg_eq_iff_eq_neg] + rw [supportValue, horizontalMin, ← Real.sSup_neg, ← himage] + congr 1 + refine Set.image_congr fun p _ ↦ ?_ + rw [inner_normalVector_real, Real.cos_pi, Real.sin_pi, mul_neg_one, mul_zero, add_zero] + +/-- Both horizontal extrema of a compact convex body are attained. -/ +theorem exists_horizontal_extrema (K : ConvexBody Point) : + ∃ l r : Point, l ∈ (K : Set Point) ∧ r ∈ (K : Set Point) ∧ + l 0 = horizontalMin K ∧ r 0 = horizontalMax K := by + obtain ⟨l, hlK, hl⟩ := K.isCompact.exists_isMinOn K.nonempty + (by fun_prop : Continuous (fun p : Point ↦ p 0)).continuousOn + obtain ⟨r, hrK, hr⟩ := K.isCompact.exists_isMaxOn K.nonempty + (by fun_prop : Continuous (fun p : Point ↦ p 0)).continuousOn + refine ⟨l, r, hlK, hrK, ?_, ?_⟩ + · apply le_antisymm + · apply le_csInf (K.nonempty.image _) + rintro _ ⟨p, hp, rfl⟩ + exact hl hp + · exact horizontalMin_le K hlK + · apply le_antisymm + · exact le_horizontalMax K hrK + · apply csSup_le (K.nonempty.image _) + rintro _ ⟨p, hp, rfl⟩ + exact hr hp + +theorem CapSpace.mem_horizontalStrip {ω : ℝ} (K : CapSpace ω) + {p : Point} (hp : p ∈ K.val) : 0 ≤ p 1 ∧ p 1 ≤ 1 := by + have hupper := inner_le_supportValue K.val hp ((Real.pi / 2 : ℝ) : Real.Angle) + have hlower := inner_le_supportValue K.val hp ((3 * Real.pi / 2 : ℝ) : Real.Angle) + rw [K.property.2.2.2.1] at hupper + rw [K.property.2.2.2.2.2.1] at hlower + rw [show 3 * Real.pi / 2 = Real.pi + Real.pi / 2 by ring] at hlower + simp only [normalVector, frame, Real.Angle.cos_coe, Real.cos_pi_div_two, Real.Angle.sin_coe, + Real.sin_pi_div_two, PiLp.inner_apply, RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, + Fin.isValue, Matrix.cons_val_zero, zero_mul, Matrix.cons_val_one, Matrix.cons_val_fin_one, + one_mul, zero_add, Real.cos_add, Real.cos_pi, mul_zero, Real.sin_pi, mul_one, sub_self, + Real.sin_add, neg_neg, neg_mul, Left.neg_nonpos_iff] at hupper hlower + exact ⟨by linarith, hupper⟩ + +/-- A cap has area at most its horizontal width. -/ +theorem CapSpace.area_le_horizontalWidth {ω : ℝ} (K : CapSpace ω) : + ClassicalResults.area (K.val : Set Point) ≤ horizontalMax K.val - horizontalMin K.val := by + let R : Set Point := {p | p 0 ∈ Set.Icc (horizontalMin K.val) (horizontalMax K.val) ∧ + p 1 ∈ Set.Icc 0 1} + have hsub : (K.val : Set Point) ⊆ R := fun p hp ↦ + ⟨⟨horizontalMin_le K.val hp, le_horizontalMax K.val hp⟩, K.mem_horizontalStrip hp⟩ + have hvol : volume R = ENNReal.ofReal (horizontalMax K.val - horizontalMin K.val) := by + rw [EuclideanSpace.volume_setOf_apply_mem_Icc] + simp + have hfinite : volume R ≠ ⊤ := by rw [hvol]; exact ENNReal.ofReal_ne_top + calc + ClassicalResults.area (K.val : Set Point) ≤ ClassicalResults.area R := + ENNReal.toReal_mono hfinite (measure_mono hsub) + _ = horizontalMax K.val - horizontalMin K.val := by + change (volume R).toReal = _ + rw [hvol, ENNReal.toReal_ofReal (sub_nonneg.mpr (horizontalMin_le_horizontalMax K.val))] + +/-- Upper support bounds from the horizontal extrema and the unit-height strip. -/ +theorem CapSpace.supportValue_horizontal_bounds {ω t : ℝ} (K : CapSpace ω) + (ht : t ∈ Set.Ioo 0 ω) : + supportValue K.val (t : Real.Angle) ≤ + Real.cos t * horizontalMax K.val + Real.sin t ∧ + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) ≤ + -Real.sin t * horizontalMin K.val + Real.cos t := by + have hc : 0 ≤ Real.cos t := (Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, ht.1], ht.2.trans_le K.property.2.1⟩).le + have hs : 0 ≤ Real.sin t := (Real.sin_pos_of_pos_of_lt_pi ht.1 + (by linarith [ht.2, K.property.2.1, Real.pi_pos])).le + constructor + · apply csSup_le (K.val.nonempty.image _) + rintro _ ⟨p, hp, rfl⟩ + have hx := mul_le_mul_of_nonneg_left (le_horizontalMax K.val hp) hc + have hy := mul_le_mul_of_nonneg_left (K.mem_horizontalStrip hp).2 hs + simp [normalVector, frame, PiLp.inner_apply] + nlinarith + · apply csSup_le (K.val.nonempty.image _) + rintro _ ⟨p, hp, rfl⟩ + have hx := mul_le_mul_of_nonneg_left (horizontalMin_le K.val hp) hs + have hy := mul_le_mul_of_nonneg_left (K.mem_horizontalStrip hp).2 hc + simp [normalVector, frame, PiLp.inner_apply, Real.cos_add, Real.sin_add, + -Real.Angle.coe_add] + nlinarith + +/-- Lower support bounds from the horizontal extrema and the nonnegative heights of a cap. -/ +theorem CapSpace.horizontal_le_supportValue {ω t : ℝ} (K : CapSpace ω) + (hs : 0 ≤ Real.sin t) (hc : 0 ≤ Real.cos t) : + Real.cos t * horizontalMax K.val ≤ supportValue K.val (t : Real.Angle) ∧ + -Real.sin t * horizontalMin K.val ≤ + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) := by + have hcompact := K.val.isCompact.image (by fun_prop : Continuous (fun p : Point ↦ p 0)) + have hne := K.val.nonempty.image (fun p : Point ↦ p 0) + constructor + · obtain ⟨p, hp, hpmax⟩ := hcompact.sSup_mem hne + have hinner := inner_le_supportValue K.val hp (t : Real.Angle) + have hy := (K.mem_horizontalStrip hp).1 + simp [normalVector, frame, PiLp.inner_apply] at hinner + change p 0 = horizontalMax K.val at hpmax + rw [← hpmax] + nlinarith [mul_nonneg hs hy] + · obtain ⟨p, hp, hpmin⟩ := hcompact.sInf_mem hne + have hinner := inner_le_supportValue K.val hp ((t + Real.pi / 2 : ℝ) : Real.Angle) + have hy := (K.mem_horizontalStrip hp).1 + simp [normalVector, frame, PiLp.inner_apply, Real.cos_add, Real.sin_add, + -Real.Angle.coe_add] at hinner + change p 0 = horizontalMin K.val at hpmin + rw [← hpmin] + nlinarith [mul_nonneg hc hy] + +private theorem mem_niche_rectangle {ω t : ℝ} (K : CapSpace ω) + (ht : t ∈ Set.Ioo 0 ω) {p : Point} + (hf : p ∈ capFan ω) (hq : p ∈ innerQuadrant K.val t) : + horizontalMin K.val < p 0 ∧ p 0 < horizontalMax K.val ∧ + 0 ≤ p 1 ∧ p 1 < (horizontalMax K.val - horizontalMin K.val) / 2 := by + have hc : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, ht.1], ht.2.trans_le K.property.2.1⟩ + have hs : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi ht.1 + (by linarith [ht.2, K.property.2.1, Real.pi_pos]) + have hy : 0 ≤ p 1 := by + have := hf.2 + simpa [normalHalfPlane, normalVector, frame, PiLp.inner_apply] using this + obtain ⟨h₁, h₂⟩ := hq + change inner ℝ p (normalVector (t : Real.Angle)) < supportValue K.val _ - 1 at h₁ + change inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < + supportValue K.val _ - 1 at h₂ + have hbounds := K.supportValue_horizontal_bounds ht + have hx : Real.cos t * p 0 + Real.sin t * p 1 < + Real.cos t * horizontalMax K.val + Real.sin t - 1 := by + have := h₁.trans_le (sub_le_sub_right hbounds.1 1) + simpa [normalVector, frame, PiLp.inner_apply, mul_comm] using this + have hz : -Real.sin t * p 0 + Real.cos t * p 1 < + -Real.sin t * horizontalMin K.val + Real.cos t - 1 := by + have := h₂.trans_le (sub_le_sub_right hbounds.2 1) + simpa [normalVector, frame, PiLp.inner_apply, Real.cos_add, Real.sin_add, + -Real.Angle.coe_add, mul_comm] using this + obtain ⟨hl, hr, hh⟩ := niche_coordinate_bounds hc hs (Real.sin_sq_add_cos_sq t) + (horizontalMin_le_horizontalMax K.val) hy hx hz + exact ⟨hl, hr, hy, hh⟩ + +theorem capNiche_subset_rectangle {ω : ℝ} (K : CapSpace ω) : + capNiche K ⊆ {p | horizontalMin K.val < p 0 ∧ p 0 < horizontalMax K.val ∧ + 0 ≤ p 1 ∧ p 1 < (horizontalMax K.val - horizontalMin K.val) / 2} := by + rintro p ⟨hf, hq⟩ + obtain ⟨t, ht, hq⟩ := Set.mem_iUnion₂.mp hq + exact mem_niche_rectangle K ht hf hq + +theorem polygonNiche_subset_capNiche (Θ : AngleSet) (K : CapSpace Θ.angle) : + polygonNiche Θ K ⊆ capNiche K := by + rintro p ⟨hf, hq⟩ + obtain ⟨t, ht, hq⟩ := Set.mem_iUnion₂.mp hq + exact ⟨hf, Set.mem_iUnion₂.mpr ⟨t, Θ.interior t ht, hq⟩⟩ + +private theorem isBounded_coordinate_rectangle (l r h : ℝ) : + Bornology.IsBounded {p : Point | l < p 0 ∧ p 0 < r ∧ 0 ≤ p 1 ∧ p 1 < h} := by + apply isBounded_iff_forall_norm_le.mpr + refine ⟨|l| + |r| + |h|, ?_⟩ + rintro p ⟨hl, hr, hy, hh⟩ + have hx : |p 0| ≤ |l| + |r| := abs_le.mpr ⟨by + have := neg_abs_le l + linarith [abs_nonneg r], by linarith [le_abs_self r, abs_nonneg l]⟩ + have hy' : |p 1| ≤ |h| := by rw [abs_of_nonneg hy]; exact hh.le.trans (le_abs_self h) + have hx2 := sq_le_sq₀ (abs_nonneg (p 0)) (by positivity : 0 ≤ |l| + |r|) |>.mpr hx + have hy2 := sq_le_sq₀ (abs_nonneg (p 1)) (abs_nonneg h) |>.mpr hy' + have hn := EuclideanSpace.norm_sq_eq p + simp only [Fin.sum_univ_two, Real.norm_eq_abs, sq_abs] at hn hx2 hy2 + nlinarith [mul_nonneg (by positivity : 0 ≤ |l| + |r|) (abs_nonneg h), norm_nonneg p, + abs_nonneg l, abs_nonneg r, abs_nonneg h, sq_abs h] + +private theorem isClosed_capFan (ω : ℝ) : IsClosed (capFan ω) := by + apply IsClosed.inter + · exact isClosed_le continuous_const (by fun_prop) + · exact isClosed_le continuous_const (by fun_prop) + +private theorem isOpen_innerQuadrant (S : Set Point) (t : ℝ) : + IsOpen (innerQuadrant S t) := by + apply IsOpen.inter + · exact isOpen_lt (by fun_prop) continuous_const + · exact isOpen_lt (by fun_prop) continuous_const + +theorem measurableSet_capNiche {ω : ℝ} (K : CapSpace ω) : MeasurableSet (capNiche K) := + (isClosed_capFan ω).measurableSet.inter + (isOpen_iUnion fun t ↦ isOpen_iUnion fun _ ↦ isOpen_innerQuadrant K.val t).measurableSet + +theorem measurableSet_polygonNiche (Θ : AngleSet) (K : CapSpace Θ.angle) : + MeasurableSet (polygonNiche Θ K) := + (isClosed_capFan Θ.angle).measurableSet.inter + (isOpen_iUnion fun t ↦ isOpen_iUnion fun _ ↦ isOpen_innerQuadrant K.val t).measurableSet + +private theorem hasNicheRectangleBounds_of_subset {ω : ℝ} (K : CapSpace ω) + {N : Set Point} (hm : MeasurableSet N) (hN : N ⊆ capNiche K) : + HasNicheRectangleBounds K.val N := by + have hb := hN.trans (capNiche_subset_rectangle K) + refine ⟨hm, hb, (isBounded_coordinate_rectangle _ _ _).subset hb |>.measure_lt_top, ?_⟩ + intro hd + have he : N = ∅ := by + apply Set.eq_empty_iff_forall_notMem.mpr + intro p hp + have := hb hp + linarith [this.1, this.2.1] + simp [he, ClassicalResults.area] + +private theorem niche_subset_uniform_rectangle {ω R : ℝ} (K : CapSpace ω) + (hR : ∀ p ∈ (K.val : Set Point), |p 0| ≤ R) : + capNiche K ⊆ {p | |p 0| ≤ R ∧ 0 ≤ p 1 ∧ p 1 ≤ R} := by + have hlo : -R ≤ horizontalMin K.val := by + apply le_csInf (K.val.nonempty.image _) + rintro _ ⟨p, hp, rfl⟩ + exact (abs_le.mp (hR p hp)).1 + have hhi : horizontalMax K.val ≤ R := by + apply csSup_le (K.val.nonempty.image _) + rintro _ ⟨p, hp, rfl⟩ + exact (abs_le.mp (hR p hp)).2 + intro p hp + obtain ⟨hl, hr, hy, hh⟩ := capNiche_subset_rectangle K hp + exact ⟨abs_le.mpr ⟨hlo.trans hl.le, hr.le.trans hhi⟩, hy, by linarith⟩ + +theorem niche_uniform_bounds : + (∀ (ω : ℝ) (K : CapSpace ω), + HasNicheRectangleBounds (K.val : Set Point) (capNiche K)) ∧ + (∀ (Θ : AngleSet) (K : CapSpace Θ.angle), + HasNicheRectangleBounds (K.val : Set Point) (polygonNiche Θ K)) ∧ + (∀ (ω : ℕ → ℝ) (K : ∀ i, CapSpace (ω i)) (L : ConvexBody Point), + Tendsto (fun i ↦ Metric.hausdorffDist ((K i).val : Set Point) (L : Set Point)) + atTop (𝓝 0) → + ∃ R : ℝ, 0 ≤ R ∧ + (∀ i, capNiche (K i) ⊆ {p | |p 0| ≤ R ∧ 0 ≤ p 1 ∧ p 1 ≤ R}) ∧ + (∀ i (Θ : AngleSet) (P : CapSpace Θ.angle), + (P.val : Set Point) = ((K i).val : Set Point) → + polygonNiche Θ P ⊆ {p | |p 0| ≤ R ∧ 0 ≤ p 1 ∧ p 1 ≤ R})) := by + refine ⟨fun _ K ↦ hasNicheRectangleBounds_of_subset K (measurableSet_capNiche K) Set.Subset.rfl, + fun Θ K ↦ hasNicheRectangleBounds_of_subset K (measurableSet_polygonNiche Θ K) + (polygonNiche_subset_capNiche Θ K), ?_⟩ + intro ω K L hlim + obtain ⟨A, hA⟩ := (Metric.isBounded_range_of_tendsto _ hlim).exists_norm_le + obtain ⟨B, hB⟩ := L.isCompact.isBounded.exists_norm_le + let R := |A| + |B| + 1 + have hR0 : 0 ≤ R := by dsimp [R]; positivity + have hcarriers : ∀ i p, p ∈ ((K i).val : Set Point) → |p 0| ≤ R := by + intro i p hp + have hdist : Metric.hausdorffDist ((K i).val : Set Point) (L : Set Point) < |A| + 1 := by + have := hA _ (Set.mem_range_self i) + rw [Real.norm_eq_abs] at this + exact lt_of_le_of_lt ((le_abs_self _).trans (this.trans (le_abs_self A))) (by linarith) + obtain ⟨q, hq, hpq⟩ := Metric.exists_dist_lt_of_hausdorffDist_lt hp hdist + (Metric.hausdorffEDist_ne_top_of_nonempty_of_bounded + (K i).val.nonempty L.nonempty (K i).val.isCompact.isBounded L.isCompact.isBounded) + have hnorm : ‖p‖ ≤ R := by + have ht := norm_add_le (p - q) q + rw [sub_add_cancel] at ht + rw [dist_eq_norm] at hpq + have hb := (hB q hq).trans (le_abs_self B) + dsimp [R] + linarith + have hc : |p 0| ≤ ‖p‖ := by + simpa only [Real.norm_eq_abs] using (PiLp.norm_apply_le p 0) + exact hc.trans hnorm + refine ⟨R, hR0, fun i ↦ niche_subset_uniform_rectangle (K i) (hcarriers i), ?_⟩ + intro i Θ P hP + apply (polygonNiche_subset_capNiche Θ P).trans + apply niche_subset_uniform_rectangle P + intro p hp + exact hcarriers i p (hP ▸ hp) + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Geometry.ContactGeometry`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Geometry / Contact Geometry +-/ + +@[expose] public section + +noncomputable section + +open Filter +open scoped Topology unitInterval + +namespace MovingSofa + +private theorem inner_tangent_le_fst (K : ConvexBody Point) (t : Real.Angle) + {p : Point} (hp : p ∈ exposedEdge K t) : + inner ℝ p (tangentVector t) ≤ inner ℝ (edgeVertices K t).1 (tangentVector t) := by + rw [inner_edgeVertices_fst_tangent] + exact le_csSup ((isCompact_exposedEdge K t).image + (continuous_id.inner continuous_const)).bddAbove ⟨p, hp, rfl⟩ + +private theorem snd_le_inner_tangent (K : ConvexBody Point) (t : Real.Angle) + {p : Point} (hp : p ∈ exposedEdge K t) : + inner ℝ (edgeVertices K t).2 (tangentVector t) ≤ inner ℝ p (tangentVector t) := by + rw [inner_edgeVertices_snd_tangent] + exact csInf_le ((isCompact_exposedEdge K t).image + (continuous_id.inner continuous_const)).bddBelow ⟨p, hp, rfl⟩ + +private theorem fst_tangent_le_of_mem_exposedEdge_add (K : ConvexBody Point) (t δ : ℝ) + (hδ : δ ∈ Set.Ioo (0 : ℝ) (Real.pi / 2)) {q : Point} + (hq : q ∈ exposedEdge K ((t + δ : ℝ) : Real.Angle)) : + inner ℝ (edgeVertices K (t : Real.Angle)).1 (tangentVector (t : Real.Angle)) ≤ + inner ℝ q (tangentVector (t : Real.Angle)) := by + have hcomp := inner_le_supportValue K (edgeVertices_fst_mem K (t : Real.Angle)).1 + ((t + δ : ℝ) : Real.Angle) + have hqnormal : inner ℝ q (normalVector ((t + δ : ℝ) : Real.Angle)) = + supportValue K ((t + δ : ℝ) : Real.Angle) := hq.2 + rw [← hqnormal, normalVector_add_real] at hcomp + simp only [inner_add_right, inner_smul_right] at hcomp + have hpnormal : inner ℝ (edgeVertices K (t : Real.Angle)).1 + (normalVector (t : Real.Angle)) = supportValue K (t : Real.Angle) := + (edgeVertices_fst_mem K (t : Real.Angle)).2 + rw [hpnormal] at hcomp + have hqle := inner_le_supportValue K hq.1 (t : Real.Angle) + have hsin := Real.sin_pos_of_pos_of_lt_pi hδ.1 (hδ.2.trans (by linarith [Real.pi_pos])) + have hcos := Real.cos_pos_of_mem_Ioo ⟨by linarith [Real.pi_pos, hδ.1], hδ.2⟩ + nlinarith + +private theorem tendsto_facePoint_right (K : ConvexBody Point) (t : ℝ) (q : ℝ → Point) + (hq : ∀ s : ℝ, q s ∈ exposedEdge K (s : Real.Angle)) : + Tendsto q (𝓝[>] t) (𝓝 (edgeVertices K (t : Real.Angle)).1) := by + apply K.isCompact.tendsto_nhds_of_unique_mapClusterPt + (Filter.Eventually.of_forall fun s ↦ (hq s).1) + intro p hp hcluster + obtain ⟨s, hqs, hs⟩ := hcluster.exists_seq_tendsto + have hst : Tendsto s atTop (𝓝 t) := hs.mono_right nhdsWithin_le_nhds + have hnormal := hqs.inner (𝕜 := ℝ) (continuous_normalVector_real.continuousAt.tendsto.comp hst) + have hsupport := (continuous_supportValue_real K).continuousAt.tendsto.comp hst + have hpnormal : inner ℝ p (normalVector (t : Real.Angle)) = + supportValue K (t : Real.Angle) := by + apply tendsto_nhds_unique hnormal + exact hsupport.congr (fun n ↦ (hq (s n)).2.symm) + have hpface : p ∈ exposedEdge K (t : Real.Angle) := ⟨hp, hpnormal⟩ + have hnear : ∀ᶠ n in atTop, s n ∈ Set.Ioo t (t + Real.pi / 2) := + hs.eventually (Ioo_mem_nhdsGT (by linarith [Real.pi_pos])) + have hle : inner ℝ (edgeVertices K (t : Real.Angle)).1 (tangentVector (t : Real.Angle)) ≤ + inner ℝ p (tangentVector (t : Real.Angle)) := by + apply ge_of_tendsto (hqs.inner tendsto_const_nhds) + filter_upwards [hnear] with n hn + have hn' : s n - t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2) := by + constructor <;> linarith [hn.1, hn.2] + simpa only [add_sub_cancel, Function.comp_apply] using + fst_tangent_le_of_mem_exposedEdge_add K t (s n - t) hn' + (by simpa only [add_sub_cancel, Function.comp_apply] using hq (s n)) + have heq := le_antisymm (inner_tangent_le_fst K (t : Real.Angle) hpface) hle + rw [← inner_normalVector_smul_add_inner_tangentVector_smul p (t : Real.Angle), hpnormal, heq] + rw [← (edgeVertices_fst_mem K (t : Real.Angle)).2] + exact inner_normalVector_smul_add_inner_tangentVector_smul _ _ + +private theorem tangent_le_snd_of_mem_exposedEdge_add (K : ConvexBody Point) (t δ : ℝ) + (hδ : δ ∈ Set.Ioo (-(Real.pi / 2)) (0 : ℝ)) {q : Point} + (hq : q ∈ exposedEdge K ((t + δ : ℝ) : Real.Angle)) : + inner ℝ q (tangentVector (t : Real.Angle)) ≤ + inner ℝ (edgeVertices K (t : Real.Angle)).2 (tangentVector (t : Real.Angle)) := by + have hcomp := inner_le_supportValue K (edgeVertices_snd_mem K (t : Real.Angle)).1 + ((t + δ : ℝ) : Real.Angle) + have hqnormal : inner ℝ q (normalVector ((t + δ : ℝ) : Real.Angle)) = + supportValue K ((t + δ : ℝ) : Real.Angle) := hq.2 + rw [← hqnormal, normalVector_add_real] at hcomp + simp only [inner_add_right, inner_smul_right] at hcomp + have hpnormal : inner ℝ (edgeVertices K (t : Real.Angle)).2 + (normalVector (t : Real.Angle)) = supportValue K (t : Real.Angle) := + (edgeVertices_snd_mem K (t : Real.Angle)).2 + rw [hpnormal] at hcomp + have hqle := inner_le_supportValue K hq.1 (t : Real.Angle) + have hsin : Real.sin δ < 0 := by + have h := Real.sin_pos_of_pos_of_lt_pi (by linarith [hδ.2] : 0 < -δ) + (by linarith [Real.pi_pos, hδ.1] : -δ < Real.pi) + simpa using h + have hcos : 0 < Real.cos δ := Real.cos_pos_of_mem_Ioo + ⟨hδ.1, by linarith [Real.pi_pos, hδ.2]⟩ + nlinarith + +private theorem tendsto_facePoint_left (K : ConvexBody Point) (t : ℝ) (q : ℝ → Point) + (hq : ∀ s : ℝ, q s ∈ exposedEdge K (s : Real.Angle)) : + Tendsto q (𝓝[<] t) (𝓝 (edgeVertices K (t : Real.Angle)).2) := by + apply K.isCompact.tendsto_nhds_of_unique_mapClusterPt + (Filter.Eventually.of_forall fun s ↦ (hq s).1) + intro p hp hcluster + obtain ⟨s, hqs, hs⟩ := hcluster.exists_seq_tendsto + have hst : Tendsto s atTop (𝓝 t) := hs.mono_right nhdsWithin_le_nhds + have hnormal := hqs.inner (𝕜 := ℝ) (continuous_normalVector_real.continuousAt.tendsto.comp hst) + have hsupport := (continuous_supportValue_real K).continuousAt.tendsto.comp hst + have hpnormal : inner ℝ p (normalVector (t : Real.Angle)) = + supportValue K (t : Real.Angle) := by + apply tendsto_nhds_unique hnormal + exact hsupport.congr (fun n ↦ (hq (s n)).2.symm) + have hpface : p ∈ exposedEdge K (t : Real.Angle) := ⟨hp, hpnormal⟩ + have hnear : ∀ᶠ n in atTop, s n ∈ Set.Ioo (t - Real.pi / 2) t := + hs.eventually (Ioo_mem_nhdsLT (by linarith [Real.pi_pos])) + have hle : inner ℝ p (tangentVector (t : Real.Angle)) ≤ + inner ℝ (edgeVertices K (t : Real.Angle)).2 (tangentVector (t : Real.Angle)) := by + apply le_of_tendsto (hqs.inner tendsto_const_nhds) + filter_upwards [hnear] with n hn + have hn' : s n - t ∈ Set.Ioo (-(Real.pi / 2)) (0 : ℝ) := by + constructor <;> linarith [hn.1, hn.2] + simpa only [add_sub_cancel, Function.comp_apply] using + tangent_le_snd_of_mem_exposedEdge_add K t (s n - t) hn' + (by simpa only [add_sub_cancel, Function.comp_apply] using hq (s n)) + have heq := le_antisymm hle (snd_le_inner_tangent K (t : Real.Angle) hpface) + rw [← inner_normalVector_smul_add_inner_tangentVector_smul p (t : Real.Angle), hpnormal, heq] + rw [← (edgeVertices_snd_mem K (t : Real.Angle)).2] + exact inner_normalVector_smul_add_inner_tangentVector_smul _ _ + +private theorem intersection_tangent_bounds_right (K : ConvexBody Point) (t δ : ℝ) + (hδ : δ ∈ Set.Ioo (0 : ℝ) (Real.pi / 2)) {q : Point} + (hq : q ∈ exposedEdge K ((t + δ : ℝ) : Real.Angle)) : + inner ℝ (edgeVertices K (t : Real.Angle)).1 (tangentVector (t : Real.Angle)) ≤ + (supportValue K ((t + δ : ℝ) : Real.Angle) - + supportValue K (t : Real.Angle) * Real.cos δ) / Real.sin δ ∧ + (supportValue K ((t + δ : ℝ) : Real.Angle) - + supportValue K (t : Real.Angle) * Real.cos δ) / Real.sin δ ≤ + inner ℝ q (tangentVector (t : Real.Angle)) := by + have hs : 0 < Real.sin δ := Real.sin_pos_of_pos_of_lt_pi hδ.1 + (by linarith [hδ.2, Real.pi_pos]) + have hc : 0 ≤ Real.cos δ := (Real.cos_pos_of_mem_Ioo + ⟨by linarith [hδ.1, Real.pi_pos], hδ.2⟩).le + have hp := inner_le_supportValue K (edgeVertices_fst_mem K (t : Real.Angle)).1 + ((t + δ : ℝ) : Real.Angle) + have hqn : inner ℝ q (normalVector ((t + δ : ℝ) : Real.Angle)) = + supportValue K ((t + δ : ℝ) : Real.Angle) := hq.2 + have hpn : inner ℝ (edgeVertices K (t : Real.Angle)).1 + (normalVector (t : Real.Angle)) = supportValue K (t : Real.Angle) := + (edgeVertices_fst_mem K (t : Real.Angle)).2 + rw [normalVector_add_real] at hp hqn + simp only [inner_add_right, inner_smul_right] at hp hqn + rw [hpn] at hp + have hqle := mul_le_mul_of_nonneg_left (inner_le_supportValue K hq.1 (t : Real.Angle)) hc + constructor + · rw [le_div_iff₀ hs] + linarith + · rw [div_le_iff₀ hs] + linarith + +private theorem tendsto_supportingIntersection_right (K : ConvexBody Point) (t : ℝ) : + Tendsto (fun s : ℝ ↦ supportingIntersection K (t : Real.Angle) (s : Real.Angle)) + (𝓝[>] t) (𝓝 (edgeVertices K (t : Real.Angle)).1) := by + let r (s : ℝ) := (supportValue K (s : Real.Angle) - + supportValue K (t : Real.Angle) * Real.cos (s - t)) / Real.sin (s - t) + have hr : Tendsto r (𝓝[>] t) + (𝓝 (inner ℝ (edgeVertices K (t : Real.Angle)).1 (tangentVector (t : Real.Angle)))) := by + have hq := (tendsto_facePoint_right K t + (fun s ↦ (edgeVertices K (s : Real.Angle)).1) (fun s ↦ edgeVertices_fst_mem K _)).inner + (𝕜 := ℝ) (tendsto_const_nhds (x := tangentVector (t : Real.Angle))) + have hbounds : ∀ᶠ s in 𝓝[>] t, + inner ℝ (edgeVertices K (t : Real.Angle)).1 (tangentVector (t : Real.Angle)) ≤ r s ∧ + r s ≤ inner ℝ (edgeVertices K (s : Real.Angle)).1 (tangentVector (t : Real.Angle)) := by + filter_upwards [Ioo_mem_nhdsGT (show t < t + Real.pi / 2 by linarith [Real.pi_pos])] + with s hs + have hδ : s - t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2) := by + constructor <;> linarith [hs.1, hs.2] + simpa only [add_sub_cancel, r] using intersection_tangent_bounds_right K t (s - t) hδ + (by simpa only [add_sub_cancel] using edgeVertices_fst_mem K (s : Real.Angle)) + exact tendsto_of_tendsto_of_tendsto_of_le_of_le' tendsto_const_nhds hq + (hbounds.mono fun _ h ↦ h.1) (hbounds.mono fun _ h ↦ h.2) + have hz := (tendsto_const_nhds + (x := supportValue K (t : Real.Angle) • normalVector (t : Real.Angle))).add (hr.smul + (tendsto_const_nhds (x := tangentVector (t : Real.Angle)))) + have hpnormal := (edgeVertices_fst_mem K (t : Real.Angle)).2 + change inner ℝ (edgeVertices K (t : Real.Angle)).1 (normalVector (t : Real.Angle)) = + supportValue K (t : Real.Angle) at hpnormal + have heq := inner_normalVector_smul_add_inner_tangentVector_smul (edgeVertices K (t : + Real.Angle)).1 (t : Real.Angle) + rw [hpnormal] at heq + simpa only [supportingIntersection, ← Real.Angle.coe_sub, Real.Angle.cos_coe, + Real.Angle.sin_coe, heq, r] using hz + +private theorem intersection_tangent_bounds_left (K : ConvexBody Point) (t δ : ℝ) + (hδ : δ ∈ Set.Ioo (-(Real.pi / 2)) (0 : ℝ)) {q : Point} + (hq : q ∈ exposedEdge K ((t + δ : ℝ) : Real.Angle)) : + (supportValue K ((t + δ : ℝ) : Real.Angle) - + supportValue K (t : Real.Angle) * Real.cos δ) / Real.sin δ ≤ + inner ℝ (edgeVertices K (t : Real.Angle)).2 (tangentVector (t : Real.Angle)) ∧ + inner ℝ q (tangentVector (t : Real.Angle)) ≤ + (supportValue K ((t + δ : ℝ) : Real.Angle) - + supportValue K (t : Real.Angle) * Real.cos δ) / Real.sin δ := by + have hs : Real.sin δ < 0 := by + have h := Real.sin_pos_of_pos_of_lt_pi (by linarith [hδ.2] : 0 < -δ) + (by linarith [hδ.1, Real.pi_pos] : -δ < Real.pi) + simpa using h + have hc : 0 ≤ Real.cos δ := (Real.cos_pos_of_mem_Ioo + ⟨hδ.1, by linarith [hδ.2, Real.pi_pos]⟩).le + have hp := inner_le_supportValue K (edgeVertices_snd_mem K (t : Real.Angle)).1 + ((t + δ : ℝ) : Real.Angle) + have hqn : inner ℝ q (normalVector ((t + δ : ℝ) : Real.Angle)) = + supportValue K ((t + δ : ℝ) : Real.Angle) := hq.2 + have hpn : inner ℝ (edgeVertices K (t : Real.Angle)).2 + (normalVector (t : Real.Angle)) = supportValue K (t : Real.Angle) := + (edgeVertices_snd_mem K (t : Real.Angle)).2 + rw [normalVector_add_real] at hp hqn + simp only [inner_add_right, inner_smul_right] at hp hqn + rw [hpn] at hp + have hqle := mul_le_mul_of_nonneg_left (inner_le_supportValue K hq.1 (t : Real.Angle)) hc + constructor + · rw [div_le_iff_of_neg hs] + linarith + · rw [le_div_iff_of_neg hs] + linarith + +private theorem tendsto_supportingIntersection_left_aux (K : ConvexBody Point) (t : ℝ) : + Tendsto (fun s : ℝ ↦ supportingIntersection K (t : Real.Angle) (s : Real.Angle)) + (𝓝[<] t) (𝓝 (edgeVertices K (t : Real.Angle)).2) := by + let r (s : ℝ) := (supportValue K (s : Real.Angle) - + supportValue K (t : Real.Angle) * Real.cos (s - t)) / Real.sin (s - t) + have hr : Tendsto r (𝓝[<] t) + (𝓝 (inner ℝ (edgeVertices K (t : Real.Angle)).2 (tangentVector (t : Real.Angle)))) := by + have hq := (tendsto_facePoint_left K t + (fun s ↦ (edgeVertices K (s : Real.Angle)).2) (fun s ↦ edgeVertices_snd_mem K _)).inner + (𝕜 := ℝ) (tendsto_const_nhds (x := tangentVector (t : Real.Angle))) + have hbounds : ∀ᶠ s in 𝓝[<] t, + r s ≤ inner ℝ (edgeVertices K (t : Real.Angle)).2 (tangentVector (t : Real.Angle)) ∧ + inner ℝ (edgeVertices K (s : Real.Angle)).2 (tangentVector (t : Real.Angle)) ≤ r s := by + filter_upwards [Ioo_mem_nhdsLT (show t - Real.pi / 2 < t by linarith [Real.pi_pos])] + with s hs + have hδ : s - t ∈ Set.Ioo (-(Real.pi / 2)) (0 : ℝ) := by + constructor <;> linarith [hs.1, hs.2] + simpa only [add_sub_cancel, r] using intersection_tangent_bounds_left K t (s - t) hδ + (by simpa only [add_sub_cancel] using edgeVertices_snd_mem K (s : Real.Angle)) + exact tendsto_of_tendsto_of_tendsto_of_le_of_le' hq tendsto_const_nhds + (hbounds.mono fun _ h ↦ h.2) (hbounds.mono fun _ h ↦ h.1) + have hz := (tendsto_const_nhds + (x := supportValue K (t : Real.Angle) • normalVector (t : Real.Angle))).add (hr.smul + (tendsto_const_nhds (x := tangentVector (t : Real.Angle)))) + have hpnormal := (edgeVertices_snd_mem K (t : Real.Angle)).2 + change inner ℝ (edgeVertices K (t : Real.Angle)).2 (normalVector (t : Real.Angle)) = + supportValue K (t : Real.Angle) at hpnormal + have heq := inner_normalVector_smul_add_inner_tangentVector_smul (edgeVertices K (t : + Real.Angle)).2 (t : Real.Angle) + rw [hpnormal] at heq + simpa only [supportingIntersection, ← Real.Angle.coe_sub, Real.Angle.cos_coe, + Real.Angle.sin_coe, heq, r] using hz + +/-- Both face endpoints and the supporting intersections have the stated one-sided limits. -/ +theorem contact_oneSided_limits (K : ConvexBody Point) (t : ℝ) : + Tendsto (fun s : ℝ ↦ (edgeVertices K (s : Real.Angle)).1) + (𝓝[>] t) (𝓝 (edgeVertices K (t : Real.Angle)).1) ∧ + Tendsto (fun s : ℝ ↦ (edgeVertices K (s : Real.Angle)).2) + (𝓝[>] t) (𝓝 (edgeVertices K (t : Real.Angle)).1) ∧ + Tendsto (fun s : ℝ ↦ supportingIntersection K (t : Real.Angle) (s : Real.Angle)) + (𝓝[>] t) (𝓝 (edgeVertices K (t : Real.Angle)).1) ∧ + Tendsto (fun s : ℝ ↦ (edgeVertices K (s : Real.Angle)).1) + (𝓝[<] t) (𝓝 (edgeVertices K (t : Real.Angle)).2) ∧ + Tendsto (fun s : ℝ ↦ (edgeVertices K (s : Real.Angle)).2) + (𝓝[<] t) (𝓝 (edgeVertices K (t : Real.Angle)).2) ∧ + Tendsto (fun s : ℝ ↦ supportingIntersection K (s : Real.Angle) (t : Real.Angle)) + (𝓝[<] t) (𝓝 (edgeVertices K (t : Real.Angle)).2) := by + refine ⟨tendsto_facePoint_right K t _ (fun s ↦ edgeVertices_fst_mem K _), + tendsto_facePoint_right K t _ (fun s ↦ edgeVertices_snd_mem K _), + tendsto_supportingIntersection_right K t, + tendsto_facePoint_left K t _ (fun s ↦ edgeVertices_fst_mem K _), + tendsto_facePoint_left K t _ (fun s ↦ edgeVertices_snd_mem K _), ?_⟩ + apply (tendsto_supportingIntersection_left_aux K t).congr' + filter_upwards [Ioo_mem_nhdsLT (show t - Real.pi / 2 < t by linarith [Real.pi_pos])] + with s hs + apply supportingIntersection_comm + have hpos : 0 < Real.sin (t - s) := Real.sin_pos_of_pos_of_lt_pi + (by linarith [hs.2]) (by linarith [hs.1, Real.pi_pos]) + rw [show s - t = -(t - s) by ring, Real.sin_neg] + exact neg_ne_zero.mpr hpos.ne' + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Analysis.Stieltjes.ConvexBoundary`. +* `Analysis.SurfaceMeasure.Polygon`. +* `Analysis.SurfaceMeasure.BoundaryLimit`. +* `Analysis.SurfaceMeasure.DiscreteBounds`. +* `Analysis.SurfaceMeasure.Integrals`. +* `Analysis.SurfaceMeasure.VertexBoundary`. +* `Analysis.SurfaceMeasure.AngularDensity`. +* `Analysis.SurfaceMeasure.FrameProducts`. +* `Analysis.SurfaceMeasure.Boundary`. +* `Analysis.SurfaceMeasure.Linearity`. +* `Analysis.SurfaceMeasure.OppositeDensity`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Stieltjes / Convex Boundary +-/ + +@[expose] public section + +noncomputable section + +open scoped Topology + +namespace MovingSofa + +/-- Each coordinate of the positive vertex is right-continuous and has bounded +variation on its closed interval domain. -/ +theorem exists_positiveVertex_intervalBV (K : ConvexBody Point) {a b : ℝ} (hab : a ≤ b) : + ∃ f : Fin 2 → RightContinuousIntervalBV a b, + ∀ i t, (f i).toFun t = (edgeVertices K ((t : ℝ) : Real.Angle)).1 i := by + have hv : BoundedVariationOn + (fun t : Set.Icc a b ↦ (edgeVertices K ((t : ℝ) : Real.Angle)).1) Set.univ := by + exact ne_top_of_le_ne_top (positiveVertex_boundedVariation K a b hab) + (eVariationOn.comp_le_of_monotoneOn + (fun t : ℝ ↦ (edgeVertices K (t : Real.Angle)).1) + (s := Set.Icc a b) (t := Set.univ) (fun t : Set.Icc a b ↦ (t : ℝ)) + (fun _ _ _ _ h ↦ h) (fun t _ ↦ t.property)) + have hc (i : Fin 2) : IsIntervalBoundedVariation a b + (fun t : Set.Icc a b ↦ (edgeVertices K ((t : ℝ) : Real.Angle)).1 i) := by + change BoundedVariationOn ((fun p : Point ↦ p i) ∘ + fun t : Set.Icc a b ↦ (edgeVertices K ((t : ℝ) : Real.Angle)).1) Set.univ + exact (PiLp.proj (𝕜 := ℝ) 2 (fun _ : Fin 2 ↦ ℝ) i).lipschitzWith.comp_boundedVariationOn + (g := fun t : Set.Icc a b ↦ (edgeVertices K ((t : ℝ) : Real.Angle)).1) hv + have hr (i : Fin 2) (t : Set.Icc a b) : ContinuousWithinAt + (fun s : Set.Icc a b ↦ (edgeVertices K ((s : ℝ) : Real.Angle)).1 i) + (Set.Ici t) t := by + have h : ContinuousWithinAt (fun s : ℝ ↦ (edgeVertices K (s : Real.Angle)).1) + (Set.Ici (t : ℝ)) (t : ℝ) := + continuousWithinAt_Ioi_iff_Ici.mp (contact_oneSided_limits K (t : ℝ)).1 + have hcomp : ContinuousWithinAt + (fun s : Set.Icc a b ↦ (edgeVertices K ((s : ℝ) : Real.Angle)).1) + (Set.Ici t) t := h.comp + (show ContinuousWithinAt (fun s : Set.Icc a b ↦ (s : ℝ)) (Set.Ici t) t from + continuous_subtype_val.continuousWithinAt) (fun _ hy ↦ hy) + exact (PiLp.proj (𝕜 := ℝ) 2 (fun _ : Fin 2 ↦ ℝ) i).continuous.continuousAt + |>.comp_continuousWithinAt hcomp + exact ⟨fun i ↦ ⟨_, hc i, hr i⟩, fun _ _ ↦ rfl⟩ + +/-- Each coordinate of the positive vertex is measurable on the closed parameter interval, +being the difference of two monotone functions by bounded variation. -/ +theorem measurable_positiveVertex_coordinate (K : ConvexBody Point) {a b : ℝ} + (hab : a ≤ b) (i : Fin 2) : + Measurable fun t : Set.Icc a b ↦ (edgeVertices K (((t : ℝ) : Real.Angle))).1 i := by + obtain ⟨f, hf⟩ := exists_positiveVertex_intervalBV K hab + have hfun : (fun t : Set.Icc a b ↦ (edgeVertices K (((t : ℝ) : Real.Angle))).1 i) = + (f i).toFun := by + funext t + exact (hf i t).symm + have hbv : LocallyBoundedVariationOn (f i).toFun (Set.univ : Set (Set.Icc a b)) := + (f i).boundedVariation.locallyBoundedVariationOn + obtain ⟨p, q, hp, hq, hpq⟩ := hbv.exists_monotoneOn_sub_monotoneOn + rw [hfun, hpq] + exact (monotoneOn_univ.mp hp).measurable.sub (monotoneOn_univ.mp hq).measurable + +/-- Each coordinate of the positive vertex is measurable on the half-open parameter +interval. -/ +theorem measurable_positiveVertex_coordinate_Ioc (K : ConvexBody Point) {a b : ℝ} + (hab : a ≤ b) (i : Fin 2) : + Measurable fun t : Set.Ioc a b ↦ (edgeVertices K (((t : ℝ) : Real.Angle))).1 i := by + have hpos := measurable_positiveVertex_coordinate K hab i + have hmem (t : Set.Ioc a b) : (t : ℝ) ∈ Set.Icc a b := ⟨t.property.1.le, t.property.2⟩ + have hcont : Continuous fun t : Set.Ioc a b ↦ (⟨(t : ℝ), hmem t⟩ : Set.Icc a b) := + Continuous.subtype_mk continuous_subtype_val hmem + have hcomp : Measurable + ((fun s : Set.Icc a b ↦ (edgeVertices K (((s : ℝ) : Real.Angle))).1 i) ∘ + fun t : Set.Ioc a b ↦ (⟨(t : ℝ), hmem t⟩ : Set.Icc a b)) := + hpos.comp hcont.measurable + have hfun : ((fun s : Set.Icc a b ↦ (edgeVertices K (((s : ℝ) : Real.Angle))).1 i) ∘ + fun t : Set.Ioc a b ↦ (⟨(t : ℝ), hmem t⟩ : Set.Icc a b)) = + fun t : Set.Ioc a b ↦ (edgeVertices K (((t : ℝ) : Real.Angle))).1 i := by + funext t + rfl + rwa [hfun] at hcomp + +/-- Each coordinate of the negative vertex is measurable on the half-open parameter interval, +being the pointwise left limit of the positive vertex. -/ +theorem measurable_negativeVertex_coordinate (K : ConvexBody Point) {a b : ℝ} + (hab : a ≤ b) (i : Fin 2) : + Measurable fun t : Set.Ioc a b ↦ (edgeVertices K (((t : ℝ) : Real.Angle))).2 i := by + have hpos := measurable_positiveVertex_coordinate K hab i + have hmem (n : ℕ) (t : Set.Ioc a b) : + max a ((t : ℝ) - 1 / (n + 1 : ℝ)) ∈ Set.Icc a b := by + refine ⟨le_max_left _ _, max_le hab ?_⟩ + have : (0 : ℝ) < 1 / (n + 1 : ℝ) := by positivity + linarith [t.property.2] + set g : ℕ → Set.Ioc a b → ℝ := fun n t ↦ + (edgeVertices K ((max a ((t : ℝ) - 1 / (n + 1 : ℝ)) : ℝ) : Real.Angle)).1 i + have hgmeas (n : ℕ) : Measurable (g n) := by + have hcont : Continuous fun t : Set.Ioc a b ↦ (⟨max a ((t : ℝ) - 1 / (n + 1 : ℝ)), + hmem n t⟩ : Set.Icc a b) := + Continuous.subtype_mk + (continuous_const.max (continuous_subtype_val.sub continuous_const)) (hmem n) + have hcomp : Measurable + ((fun s : Set.Icc a b ↦ (edgeVertices K (((s : ℝ) : Real.Angle))).1 i) ∘ + fun t : Set.Ioc a b ↦ (⟨max a ((t : ℝ) - 1 / (n + 1 : ℝ)), + hmem n t⟩ : Set.Icc a b)) := + hpos.comp hcont.measurable + have hfun : + ((fun s : Set.Icc a b ↦ (edgeVertices K (((s : ℝ) : Real.Angle))).1 i) ∘ + fun t : Set.Ioc a b ↦ (⟨max a ((t : ℝ) - 1 / (n + 1 : ℝ)), + hmem n t⟩ : Set.Icc a b)) = g n := by + funext t + rfl + rwa [hfun] at hcomp + refine measurable_of_tendsto_metrizable hgmeas (tendsto_pi_nhds.2 fun t ↦ ?_) + have hta : a < (t : ℝ) := t.property.1 + have hlim := (contact_oneSided_limits K (t : ℝ)).2.2.2.1 + have hlimi : Filter.Tendsto (fun s : ℝ ↦ (edgeVertices K (s : Real.Angle)).1 i) + (𝓝[<] (t : ℝ)) (𝓝 ((edgeVertices K ((t : ℝ) : Real.Angle)).2 i)) := + ((PiLp.proj (𝕜 := ℝ) 2 (fun _ : Fin 2 ↦ ℝ) i).continuous.tendsto _).comp hlim + refine hlimi.comp ?_ + rw [tendsto_nhdsWithin_iff] + constructor + · have h0 : Filter.Tendsto (fun n : ℕ ↦ (t : ℝ) - 1 / (n + 1 : ℝ)) + Filter.atTop (𝓝 (t : ℝ)) := by + simpa using tendsto_one_div_add_atTop_nhds_zero_nat.const_sub ((t : ℝ)) + have hconst : Filter.Tendsto (fun _ : ℕ ↦ a) Filter.atTop (𝓝 a) := tendsto_const_nhds + have h1 := hconst.max h0 + rwa [max_eq_right hta.le] at h1 + · obtain ⟨N, hN⟩ := exists_nat_gt (1 / ((t : ℝ) - a)) + filter_upwards [Filter.eventually_ge_atTop N] with n hn + have hpos : (0 : ℝ) < (t : ℝ) - a := by linarith + have hNle : (N : ℝ) ≤ (n : ℝ) := Nat.cast_le.2 hn + have hlt : 1 / (n + 1 : ℝ) < (t : ℝ) - a := by + have h1 : 1 / ((t : ℝ) - a) < (n + 1 : ℝ) := by linarith + rw [div_lt_iff₀ (by positivity : (0 : ℝ) < (n + 1 : ℝ))] + rw [div_lt_iff₀ hpos] at h1 + linarith + have hmaxeq : max a ((t : ℝ) - 1 / (n + 1 : ℝ)) = (t : ℝ) - 1 / (n + 1 : ℝ) := + max_eq_right (by linarith) + rw [Set.mem_Iio, hmaxeq] + have : (0 : ℝ) < 1 / (n + 1 : ℝ) := by positivity + linarith + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Polygon +-/ + +@[expose] public section + +noncomputable section + +open Filter MeasureTheory +open scoped Topology + +namespace MovingSofa + +private def quarterTurn (p : Point) : Point := !₂[-p 1, p 0] + +private theorem quarterTurn_ne_zero {p : Point} (hp : p ≠ 0) : quarterTurn p ≠ 0 := by + intro h + apply hp + ext i + fin_cases i + · exact congrFun (congrArg WithLp.ofLp h) 1 + · simpa [quarterTurn] using congrFun (congrArg WithLp.ofLp h) 0 + +private theorem inner_quarterTurn (p : Point) : inner ℝ p (quarterTurn p) = 0 := by + rw [EuclideanSpace.inner_eq_star_dotProduct] + simp [quarterTurn, dotProduct, Fin.sum_univ_two] + ring + +private theorem inner_normalVector_vectorNormalAngle_quarterTurn {p : Point} (hp : p ≠ 0) : + inner ℝ p (normalVector (vectorNormalAngle (quarterTurn p))) = 0 := by + rw [normalVector_vectorNormalAngle (quarterTurn_ne_zero hp), inner_smul_right, + inner_quarterTurn, mul_zero] + +/-- A nonzero planar direction has only finitely many perpendicular angular normals. -/ +theorem finite_orthogonalNormal_angles {p : Point} (hp : p ≠ 0) : + Set.Finite {t : Real.Angle | inner ℝ p (normalVector t) = 0} := by + let t₀ := vectorNormalAngle (quarterTurn p) + apply Set.Finite.subset + ((Set.finite_singleton (t₀ + (Real.pi : Real.Angle))).insert t₀) + intro t ht + have h := normalVector_eq_or_eq_add_pi_of_orthogonal hp ht + (inner_normalVector_vectorNormalAngle_quarterTurn hp) + rcases h with h | h + · exact Set.mem_insert_iff.mpr (Or.inl h) + · exact Set.mem_insert_iff.mpr (Or.inr (Set.mem_singleton_iff.mpr h)) + +/-- The possible normals perpendicular to differences of points in a finite set are finite. -/ +theorem finite_pairDifferenceNormal_angles (V : Finset Point) : + Set.Finite {t : Real.Angle | ∃ p ∈ V, ∃ q ∈ V, + p ≠ q ∧ inner ℝ (p - q) (normalVector t) = 0} := by + classical + let N : Point → Point → Set Real.Angle := fun p q ↦ + if h : p = q then ∅ else {t | inner ℝ (p - q) (normalVector t) = 0} + have hN (p q : Point) : Set.Finite (N p q) := by + by_cases h : p = q + · simp [N, h] + · simpa [N, h] using finite_orthogonalNormal_angles (sub_ne_zero.mpr h) + apply Set.Finite.subset (V.finite_toSet.biUnion fun p _ ↦ + V.finite_toSet.biUnion fun q _ ↦ hN p q) + rintro t ⟨p, hp, q, hq, hpq, ht⟩ + apply Set.mem_iUnion₂.mpr + refine ⟨p, hp, Set.mem_iUnion₂.mpr ⟨q, hq, ?_⟩⟩ + simp [N, hpq, ht] + +/-- The support edge of a convex body is an exposed face. -/ +theorem isExposed_exposedEdge (K : ConvexBody Point) (t : Real.Angle) : + IsExposed ℝ (K : Set Point) (exposedEdge K t) := by + intro _ + refine ⟨innerSL ℝ (normalVector t), ?_⟩ + ext p + simp only [Set.mem_ofPred_eq, innerSL_apply_apply, real_inner_comm] + constructor + · intro hp + refine ⟨hp.1, fun q hq ↦ ?_⟩ + rw [hp.2] + exact inner_le_supportValue K hq t + · rintro ⟨hp, hmax⟩ + refine ⟨hp, le_antisymm (inner_le_supportValue K hp t) ?_⟩ + apply csSup_le (K.nonempty.image _) + rintro _ ⟨q, hq, rfl⟩ + exact hmax q hq + +private theorem isExposed_singleton_edgeVertices_fst (K : ConvexBody Point) + (t : Real.Angle) : + IsExposed ℝ (exposedEdge K t) {(edgeVertices K t).1} := by + intro _ + refine ⟨innerSL ℝ (tangentVector t), ?_⟩ + ext p + simp only [Set.mem_singleton_iff, Set.mem_ofPred_eq, innerSL_apply_apply, + real_inner_comm] + constructor + · rintro rfl + refine ⟨edgeVertices_fst_mem K t, fun q hq ↦ ?_⟩ + rw [inner_edgeVertices_fst_tangent] + exact le_csSup ((isCompact_exposedEdge K t).image + (continuous_id.inner continuous_const)).bddAbove ⟨q, hq, rfl⟩ + · rintro ⟨hp, hmax⟩ + have htangent : inner ℝ p (tangentVector t) = + inner ℝ (edgeVertices K t).1 (tangentVector t) := by + apply le_antisymm + · rw [inner_edgeVertices_fst_tangent] + exact le_csSup ((isCompact_exposedEdge K t).image + (continuous_id.inner continuous_const)).bddAbove ⟨p, hp, rfl⟩ + · exact hmax _ (edgeVertices_fst_mem K t) + rw [← inner_normalVector_smul_add_inner_tangentVector_smul p t, + ← inner_normalVector_smul_add_inner_tangentVector_smul (edgeVertices K t).1 t, + hp.2, (edgeVertices_fst_mem K t).2, htangent] + +private theorem isExposed_singleton_edgeVertices_snd (K : ConvexBody Point) + (t : Real.Angle) : + IsExposed ℝ (exposedEdge K t) {(edgeVertices K t).2} := by + intro _ + refine ⟨innerSL ℝ (-tangentVector t), ?_⟩ + ext p + simp only [Set.mem_singleton_iff, Set.mem_ofPred_eq, innerSL_apply_apply, + real_inner_comm, inner_neg_left] + constructor + · rintro rfl + refine ⟨edgeVertices_snd_mem K t, fun q hq ↦ neg_le_neg ?_⟩ + rw [inner_edgeVertices_snd_tangent] + exact csInf_le ((isCompact_exposedEdge K t).image + (continuous_id.inner continuous_const)).bddBelow ⟨q, hq, rfl⟩ + · rintro ⟨hp, hmax⟩ + have htangent : inner ℝ p (tangentVector t) = + inner ℝ (edgeVertices K t).2 (tangentVector t) := by + apply le_antisymm + · exact neg_le_neg_iff.mp (hmax _ (edgeVertices_snd_mem K t)) + · rw [inner_edgeVertices_snd_tangent] + exact csInf_le ((isCompact_exposedEdge K t).image + (continuous_id.inner continuous_const)).bddBelow ⟨p, hp, rfl⟩ + rw [← inner_normalVector_smul_add_inner_tangentVector_smul p t, + ← inner_normalVector_smul_add_inner_tangentVector_smul (edgeVertices K t).2 t, + hp.2, (edgeVertices_snd_mem K t).2, htangent] + +/-- Both endpoints of a polygon's exposed edge belong to its finite generating set. -/ +theorem edgeVertices_mem_of_eq_convexHull (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) (t : Real.Angle) : + (edgeVertices K t).1 ∈ V ∧ (edgeVertices K t).2 ∈ V := by + have hedge := (isExposed_exposedEdge K t).isExtreme + constructor + · have hext : (edgeVertices K t).1 ∈ Set.extremePoints ℝ (K : Set Point) := + (hedge.trans (isExposed_singleton_edgeVertices_fst K t).isExtreme).mem_extremePoints + rw [hKV] at hext + exact Finset.mem_coe.mp (extremePoints_convexHull_subset hext) + · have hext : (edgeVertices K t).2 ∈ Set.extremePoints ℝ (K : Set Point) := + (hedge.trans (isExposed_singleton_edgeVertices_snd K t).isExtreme).mem_extremePoints + rw [hKV] at hext + exact Finset.mem_coe.mp (extremePoints_convexHull_subset hext) + +/-- Every proper edge normal of a finite convex hull is one of finitely many pair normals. -/ +theorem finite_properEdgeNormal_angles (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) : + Set.Finite {t : Real.Angle | (edgeVertices K t).1 ≠ (edgeVertices K t).2} := by + apply (finite_pairDifferenceNormal_angles V).subset + intro t ht + refine ⟨(edgeVertices K t).1, (edgeVertices_mem_of_eq_convexHull K V hKV t).1, + (edgeVertices K t).2, (edgeVertices_mem_of_eq_convexHull K V hKV t).2, ht, ?_⟩ + rw [inner_sub_left, (edgeVertices_fst_mem K t).2, (edgeVertices_snd_mem K t).2, + sub_self] + +private theorem continuousAt_positiveVertex_of_eq_negativeVertex (K : ConvexBody Point) + (t : ℝ) (ht : (edgeVertices K (t : Real.Angle)).1 = + (edgeVertices K (t : Real.Angle)).2) : + ContinuousAt (fun s : ℝ ↦ (edgeVertices K (s : Real.Angle)).1) t := by + rw [continuousAt_iff_continuous_left'_right'] + constructor + · change Tendsto _ (𝓝[<] t) _ + simpa only [ht] using (contact_oneSided_limits K t).2.2.2.1 + · change Tendsto _ (𝓝[>] t) _ + exact (contact_oneSided_limits K t).1 + +/-- Away from a proper-edge normal, the positive vertex of a finite convex hull is locally +constant. -/ +theorem eventuallyEq_positiveVertex_of_eq_convexHull (K : ConvexBody Point) + (V : Finset Point) (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) + (t : ℝ) (ht : (edgeVertices K (t : Real.Angle)).1 = + (edgeVertices K (t : Real.Angle)).2) : + ∀ᶠ s : ℝ in 𝓝 t, (edgeVertices K (s : Real.Angle)).1 = + (edgeVertices K (t : Real.Angle)).1 := by + classical + let v := (edgeVertices K (t : Real.Angle)).1 + let W : Set Point := (↑(V.erase v) : Set Point) + have hvV : v ∈ V := (edgeVertices_mem_of_eq_convexHull K V hKV _).1 + have hvW : v ∈ Wᶜ := by simp [W, hvV] + have hopen : IsOpen Wᶜ := (V.erase v).finite_toSet.isClosed.isOpen_compl + have hnhds : Wᶜ ∈ 𝓝 v := hopen.mem_nhds hvW + have htend := + (continuousAt_positiveVertex_of_eq_negativeVertex K t ht).eventually hnhds + exact htend.mono (by + intro s hs + have hsV : (edgeVertices K (s : Real.Angle)).1 ∈ V := + (edgeVertices_mem_of_eq_convexHull K V hKV _).1 + by_contra hne + have hnev : (edgeVertices K (s : Real.Angle)).1 ≠ v := by simpa [v] using hne + exact hs (by simp [W, hsV, hnev])) + +/-- For a two-dimensional finite convex hull, surface measure is supported on its finite set of +proper-edge normals. -/ +theorem surfaceAreaMeasure_compl_properEdgeNormals_eq_zero + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) + (hint : (interior (K : Set Point)).Nonempty) : + surfaceAreaMeasure K {t | (edgeVertices K t).1 = (edgeVertices K t).2} = 0 := by + let N : Set Real.Angle := {t | (edgeVertices K t).1 ≠ (edgeVertices K t).2} + have hNfinite : N.Finite := finite_properEdgeNormal_angles K V hKV + have hmeas : MeasurableSet Nᶜ := hNfinite.measurableSet.compl + have hface := (surfaceAreaMeasure_face_union K).2.2.2.2 Nᶜ hmeas (Or.inl hint) + have hunion : (⋃ t ∈ Nᶜ, exposedEdge K t) ⊆ (V : Set Point) := by + intro p hp + obtain ⟨t, htN, hpt⟩ := Set.mem_iUnion₂.mp hp + have ht : (edgeVertices K t).1 = (edgeVertices K t).2 := by + simpa only [N, Set.mem_compl_iff, Set.mem_ofPred_eq, not_not] using htN + have hp' : p = (edgeVertices K t).1 := by + rw [exposedEdge_eq_segment_edgeVertices, ← ht] at hpt + simpa using hpt + rw [hp'] + exact (edgeVertices_mem_of_eq_convexHull K V hKV t).1 + rw [show {t | (edgeVertices K t).1 = (edgeVertices K t).2} = Nᶜ by + ext t + simp [N], hface] + let _ := Measure.nullSingletonClass_hausdorff Point (by norm_num : (0 : ℝ) < 1) + exact measure_mono_null hunion + (V.finite_toSet.measure_zero (Measure.hausdorffMeasure 1)) + +/-- Surface measure of any finite convex hull, including a point or segment, is supported on its +finite set of proper-edge normals. -/ +theorem surfaceAreaMeasure_compl_properEdgeNormals_eq_zero_of_eq_convexHull + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) : + surfaceAreaMeasure K {t | (edgeVertices K t).1 = (edgeVertices K t).2} = 0 := by + by_cases hsub : (K : Set Point).Subsingleton + · rw [surfaceAreaMeasure_eq_zero_of_subsingleton K hsub] + simp + by_cases hint : (interior (K : Set Point)).Nonempty + · exact surfaceAreaMeasure_compl_properEdgeNormals_eq_zero K V hKV hint + obtain ⟨d, hd⟩ := exists_segmentPresentation_of_interior_empty K hsub + (Set.not_nonempty_iff_eq_empty.mp hint) + have hproper (u : Real.Angle) + (hu : inner ℝ (d.2.1 - d.1) (normalVector u) = 0) : + (edgeVertices K u).1 ≠ (edgeVertices K u).2 := by + intro heq + have hedge := exposedEdge_eq_segment_of_orthogonal K d hd u hu + have hsingle : (K : Set Point).Subsingleton := by + rw [← hedge, exposedEdge_eq_segment_edgeVertices, heq] + simp + exact hsub hsingle + have hpi : inner ℝ (d.2.1 - d.1) + (normalVector (d.2.2 + (Real.pi : Real.Angle))) = 0 := by + have hn : normalVector (d.2.2 + (Real.pi : Real.Angle)) = + -normalVector d.2.2 := by + induction d.2.2 using Real.Angle.induction_on with + | _ t => simpa only [← Real.Angle.coe_add] using normalVector_add_pi t + rw [hn, inner_neg_right, hd.2.2, neg_zero] + rw [surfaceAreaMeasure_eq_segmentPresentation K d hd] + simp [hproper d.2.2 hd.2.2, hproper _ hpi] + +/-- Surface measure is carried by the proper edge normals as soon as these are finitely many +and the degenerate faces lie in a one-dimensional null set. -/ +theorem surfaceAreaMeasure_compl_properEdgeNormals_eq_zero_of_finite_carrier + (K : ConvexBody Point) + (hN : {t | (edgeVertices K t).1 ≠ (edgeVertices K t).2}.Finite) + (V : Set Point) (hV : Measure.hausdorffMeasure 1 V = 0) + (hcarrier : (⋃ t ∈ {t | (edgeVertices K t).1 = (edgeVertices K t).2}, + exposedEdge K t) ⊆ V) : + surfaceAreaMeasure K {t | (edgeVertices K t).1 = (edgeVertices K t).2} = 0 := by + let N : Set Real.Angle := {t | (edgeVertices K t).1 ≠ (edgeVertices K t).2} + have hset : {t | (edgeVertices K t).1 = (edgeVertices K t).2} = Nᶜ := by + ext t + simp [N] + by_cases hsub : (K : Set Point).Subsingleton + · rw [surfaceAreaMeasure_eq_zero_of_subsingleton K hsub] + simp + by_cases hint : (interior (K : Set Point)).Nonempty + · rw [hset, (surfaceAreaMeasure_face_union K).2.2.2.2 Nᶜ + hN.measurableSet.compl (Or.inl hint)] + exact measure_mono_null (by simpa only [hset] using hcarrier) hV + obtain ⟨d, hd⟩ := exists_segmentPresentation_of_interior_empty K hsub + (Set.not_nonempty_iff_eq_empty.mp hint) + have hproper (u : Real.Angle) + (hu : inner ℝ (d.2.1 - d.1) (normalVector u) = 0) : + (edgeVertices K u).1 ≠ (edgeVertices K u).2 := by + intro heq + have hedge := exposedEdge_eq_segment_of_orthogonal K d hd u hu + have hsingle : (K : Set Point).Subsingleton := by + rw [← hedge, exposedEdge_eq_segment_edgeVertices, heq] + simp + exact hsub hsingle + have hpi : inner ℝ (d.2.1 - d.1) + (normalVector (d.2.2 + (Real.pi : Real.Angle))) = 0 := by + rw [normalVector_add_pi_angle, inner_neg_right, hd.2.2, neg_zero] + rw [surfaceAreaMeasure_eq_segmentPresentation K d hd] + simp [hproper d.2.2 hd.2.2, hproper _ hpi] + +/-- The surface integral of an arbitrary integrand over a finite convex hull is the sum of its +proper-edge atoms, including the point and segment cases. No regularity of the integrand is +needed: the measure is carried by a finite set. -/ +theorem integral_surfaceAreaMeasure_eq_sum_properEdgeNormals + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) + (φ : Real.Angle → ℝ) (E : Set Real.Angle) (hE : MeasurableSet E) : + ∫ t in E, φ t ∂surfaceAreaMeasure K = + Finset.sum ((finite_properEdgeNormal_angles K V hKV).inter_of_left E).toFinset + (fun t ↦ (surfaceAreaMeasure K).real {t} * φ t) := by + classical + let N : Set Real.Angle := {t | (edgeVertices K t).1 ≠ (edgeVertices K t).2} + have hNfinite : N.Finite := finite_properEdgeNormal_angles K V hKV + have hae : ∀ᵐ t ∂surfaceAreaMeasure K, t ∈ N := by + rw [ae_iff] + simpa only [N, Set.mem_ofPred_eq, not_ne_iff] using + surfaceAreaMeasure_compl_properEdgeNormals_eq_zero_of_eq_convexHull K V hKV + have hrestrict : (surfaceAreaMeasure K).restrict N = surfaceAreaMeasure K := + Measure.restrict_eq_self_of_ae_mem hae + let _ := (surfaceAreaMeasure_face_union K).1 + have hEN : E ∩ N = ↑(hNfinite.inter_of_left E).toFinset := by + ext t + simp [N, and_comm] + calc + ∫ t in E, φ t ∂surfaceAreaMeasure K = + ∫ t in E, φ t ∂(surfaceAreaMeasure K).restrict N := by rw [hrestrict] + _ = ∫ t in E ∩ N, φ t ∂surfaceAreaMeasure K := by + rw [Measure.restrict_restrict hE] + _ = _ := by + rw [hEN] + exact MeasureTheory.setIntegral_finset _ + (μ := surfaceAreaMeasure K) (f := φ) IntegrableOn.finset + +/-- The coordinate tangent integral of a finite convex hull is the sum of its proper-edge atoms, +including the point and segment cases. -/ +theorem integral_tangentCoordinate_surfaceAreaMeasure_eq_sum_properEdgeNormals + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) + (i : Fin 2) (E : Set Real.Angle) (hE : MeasurableSet E) : + ∫ t in E, tangentVector t i ∂surfaceAreaMeasure K = + Finset.sum ((finite_properEdgeNormal_angles K V hKV).inter_of_left E).toFinset + (fun t ↦ (surfaceAreaMeasure K).real {t} * tangentVector t i) := + integral_surfaceAreaMeasure_eq_sum_properEdgeNormals K V hKV + (fun t ↦ tangentVector t i) E hE + +/-- On a real interval, the coordinate Stieltjes measure of a polygon's positive vertex is +supported at proper-edge normals (apart from the excluded left endpoint). -/ +theorem intervalStieltjesMeasure_variation_eq_zero_off_properEdgeNormals + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) + {a b : ℝ} (hab : a < b) (f : Fin 2 → RightContinuousIntervalBV a b) + (hf : ∀ i t, (f i).toFun t = + (edgeVertices K (((t : Set.Icc a b) : ℝ) : Real.Angle)).1 i) (i : Fin 2) : + (intervalStieltjesMeasure (f i)).variation + {t | a < (t : ℝ) ∧ (edgeVertices K (((t : Set.Icc a b) : ℝ) : Real.Angle)).1 = + (edgeVertices K (((t : Set.Icc a b) : ℝ) : Real.Angle)).2} = 0 := by + let T : Set (Set.Icc a b) := + {t | a < (t : ℝ) ∧ (edgeVertices K ((t : ℝ) : Real.Angle)).1 = + (edgeVertices K ((t : ℝ) : Real.Angle)).2} + change (f i).boundedVariation.vectorMeasure.variation T = 0 + apply measure_null_of_locally_null T + intro x hx + have hconst := eventuallyEq_positiveVertex_of_eq_convexHull K V hKV (x : ℝ) hx.2 + have hconst' : (f i).toFun =ᶠ[𝓝 x] fun _ ↦ (f i).toFun x := by + filter_upwards [continuousAt_subtype_val.eventually hconst] with y hy + rw [hf i y, hf i x, hy] + obtain ⟨U, hU, hUzero⟩ := + BoundedVariationOn.exists_nhds_variation_vectorMeasure_eq_zero_of_eventuallyEq_const + hab (f i).boundedVariation (f i).right_continuous x hx.1 hconst' + exact ⟨U, mem_nhdsWithin_of_mem_nhds hU, hUzero⟩ + +/-- The left limit of a positive-vertex coordinate at a noninitial parameter is the corresponding +coordinate of the negative vertex. -/ +theorem leftLim_positiveVertex_coordinate + (K : ConvexBody Point) {a b : ℝ} (f : Fin 2 → RightContinuousIntervalBV a b) + (hf : ∀ i t, (f i).toFun t = + (edgeVertices K (((t : Set.Icc a b) : ℝ) : Real.Angle)).1 i) + (i : Fin 2) (t : Set.Icc a b) (ht : a < (t : ℝ)) : + Function.leftLim (f i).toFun t = + (edgeVertices K (((t : Set.Icc a b) : ℝ) : Real.Angle)).2 i := by + have hab : a < b := ht.trans_le t.property.2 + let _ : Fact (a ≤ b) := ⟨hab.le⟩ + let _ : Nontrivial (Set.Icc a b) := + ⟨⟨⟨a, le_rfl, hab.le⟩, ⟨b, hab.le, le_rfl⟩, fun h ↦ + hab.ne (congrArg Subtype.val h)⟩⟩ + have hcoe : Tendsto (fun s : Set.Icc a b ↦ (s : ℝ)) (𝓝[<] t) (𝓝[<] (t : ℝ)) := by + rw [nhdsWithin_subtype, Set.image_subtype_val_Icc_Iio, + nhdsWithin_Ico_eq_nhdsLT ht] + exact tendsto_comap + have hcontact := ((contact_oneSided_limits K (t : ℝ)).2.2.2.1).comp hcoe + have hcoord := (PiLp.proj (𝕜 := ℝ) 2 (fun _ : Fin 2 ↦ ℝ) i).continuous.continuousAt + |>.tendsto.comp hcontact + have hfleft := (f i).boundedVariation.tendsto_leftLim t + let _ : (𝓝[<] t).NeBot := nhdsLT_neBot_of_exists_lt ⟨⊥, ht⟩ + apply tendsto_nhds_unique hfleft + apply hcoord.congr + intro s + simpa [Function.comp_apply] using (hf i s).symm + +/-- Each noninitial Stieltjes atom of a positive-vertex coordinate is the corresponding +coordinate of the tangent-weighted surface-measure atom. -/ +theorem intervalStieltjesMeasure_singleton_positiveVertex + (K : ConvexBody Point) {a b : ℝ} (f : Fin 2 → RightContinuousIntervalBV a b) + (hf : ∀ i t, (f i).toFun t = + (edgeVertices K (((t : Set.Icc a b) : ℝ) : Real.Angle)).1 i) + (i : Fin 2) (t : Set.Icc a b) (ht : a < (t : ℝ)) : + intervalStieltjesMeasure (f i) {t} = + (surfaceAreaMeasure K {((t : ℝ) : Real.Angle)}).toReal * + tangentVector ((t : ℝ) : Real.Angle) i := by + rw [intervalStieltjesMeasure, (f i).boundedVariation.vectorMeasure_singleton, + (f i).right_continuous t |>.rightLim_eq, + leftLim_positiveVertex_coordinate K f hf i t ht, hf] + have h := congrArg (fun p : Point ↦ p i) + (surfaceAreaMeasure_atom_length K ((t : ℝ) : Real.Angle)).2.2 + simpa [PiLp.smul_apply] using congrArg (fun z : ℝ ↦ + z - (edgeVertices K ((t : ℝ) : Real.Angle)).2 i) h + +/-- A proper-edge normal has only finitely many lifts in a half-open interval of length at most one +full turn. -/ +theorem finite_properEdgeNormal_lifts (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) + {a b : ℝ} (hturn : b ≤ a + 2 * Real.pi) : + Set.Finite {t : Set.Icc a b | a < (t : ℝ) ∧ + (edgeVertices K (((t : Set.Icc a b) : ℝ) : Real.Angle)).1 ≠ + (edgeVertices K (((t : Set.Icc a b) : ℝ) : Real.Angle)).2} := by + let S : Set (Set.Icc a b) := {t | a < (t : ℝ) ∧ + (edgeVertices K ((t : ℝ) : Real.Angle)).1 ≠ + (edgeVertices K ((t : ℝ) : Real.Angle)).2} + let N : Set Real.Angle := + {u | (edgeVertices K u).1 ≠ (edgeVertices K u).2} + let c : Set.Icc a b → Real.Angle := fun t ↦ ((t : ℝ) : Real.Angle) + let _ : Fact (0 < 2 * Real.pi) := ⟨mul_pos (by norm_num) Real.pi_pos⟩ + change S.Finite + apply Set.Finite.of_finite_image (f := c) + · apply (finite_properEdgeNormal_angles K V hKV).subset + rintro _ ⟨t, ht, rfl⟩ + exact ht.2 + · intro x hx y hy hxy + apply Subtype.ext + apply (AddCircle.coe_eq_coe_iff_of_mem_Ioc + (p := 2 * Real.pi) ⟨hx.1, x.property.2.trans hturn⟩ + ⟨hy.1, y.property.2.trans hturn⟩).mp + change ((x : ℝ) : Real.Angle) = ((y : ℝ) : Real.Angle) + simpa [c] using hxy + +/-- On a polygon, every measurable noninitial set has Stieltjes mass equal to the finite sum of +its proper-edge atoms. -/ +theorem intervalStieltjesMeasure_eq_sum_properEdgeNormals + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) + {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) + (f : Fin 2 → RightContinuousIntervalBV a b) + (hf : ∀ i t, (f i).toFun t = + (edgeVertices K (((t : Set.Icc a b) : ℝ) : Real.Angle)).1 i) + (i : Fin 2) (E : Set (Set.Icc a b)) (hE : MeasurableSet E) + (hEa : ∀ t ∈ E, a < (t : ℝ)) : + intervalStieltjesMeasure (f i) E = + Finset.sum ((finite_properEdgeNormal_lifts K V hKV hturn).inter_of_left E).toFinset + (fun t ↦ (surfaceAreaMeasure K + {(((t : Set.Icc a b) : ℝ) : Real.Angle)}).toReal * + tangentVector (((t : Set.Icc a b) : ℝ) : Real.Angle) i) := by + classical + let S : Set (Set.Icc a b) := {t | a < (t : ℝ) ∧ + (edgeVertices K ((t : ℝ) : Real.Angle)).1 ≠ + (edgeVertices K ((t : ℝ) : Real.Angle)).2} + let T : Set (Set.Icc a b) := {t | a < (t : ℝ) ∧ + (edgeVertices K ((t : ℝ) : Real.Angle)).1 = + (edgeVertices K ((t : ℝ) : Real.Angle)).2} + let μ := intervalStieltjesMeasure (f i) + change μ E = _ + have hSfinite : S.Finite := finite_properEdgeNormal_lifts K V hKV hturn + have hTzero : μ.variation T = 0 := + intervalStieltjesMeasure_variation_eq_zero_off_properEdgeNormals K V hKV hab f hf i + have hdiffsub : E \ S ⊆ T := by + intro t ht + exact ⟨hEa t ht.1, not_ne_iff.mp (fun hne ↦ ht.2 ⟨hEa t ht.1, hne⟩)⟩ + have hdiffzero : μ (E \ S) = 0 := by + rw [← enorm_eq_zero, ← le_zero_iff] + exact (μ.enorm_measure_le_variation (E \ S)).trans + (by rw [measure_mono_null hdiffsub hTzero]) + have hsplit : E = S ∩ E ∪ (E \ S) := by + ext t + constructor + · intro ht + by_cases htS : t ∈ S + · exact Or.inl ⟨htS, ht⟩ + · exact Or.inr ⟨ht, htS⟩ + · rintro (ht | ht) + · exact ht.2 + · exact ht.1 + have hfinite : S ∩ E = + ↑((hSfinite.inter_of_left E).toFinset) := by + exact (hSfinite.inter_of_left E).coe_toFinset.symm + have hES : MeasurableSet (S ∩ E) := hSfinite.measurableSet.inter hE + have hEdiff : MeasurableSet (E \ S) := hE.diff hSfinite.measurableSet + have hdisj : Disjoint (S ∩ E) (E \ S) := + Set.disjoint_of_subset_left Set.inter_subset_left Set.disjoint_sdiff_right + have hreduce : μ E = μ (S ∩ E) := calc + μ E = μ (S ∩ E ∪ (E \ S)) := congrArg μ hsplit + _ = μ (S ∩ E) + μ (E \ S) := μ.of_union hdisj hES hEdiff + _ = μ (S ∩ E) := by rw [hdiffzero, add_zero] + rw [hreduce] + conv_lhs => rw [hfinite] + let F := (hSfinite.inter_of_left E).toFinset + have hU : (↑F : Set (Set.Icc a b)) = ⋃ t ∈ F, {t} := by + ext t + simp only [Finset.mem_coe, Set.mem_iUnion, Set.mem_singleton_iff] + constructor + · intro ht + exact ⟨t, ht, rfl⟩ + · rintro ⟨u, hu, _, rfl⟩ + exact hu + rw [hU, μ.of_biUnion_finset (by + intro x hx y hy hxy + simpa [Set.disjoint_singleton] using hxy) (by simp)] + calc + Finset.sum F (fun t ↦ μ {t}) = + Finset.sum F (fun t ↦ + (surfaceAreaMeasure K {((t : ℝ) : Real.Angle)}).toReal * + tangentVector ((t : ℝ) : Real.Angle) i) := by + apply Finset.sum_congr rfl + intro t ht + have ht' : t ∈ S ∩ E := by simpa [F] using ht + exact intervalStieltjesMeasure_singleton_positiveVertex K f hf i t + (by simpa [S] using ht'.1.1) + _ = _ := by + exact congrArg (fun G : Finset (Set.Icc a b) ↦ + Finset.sum G (fun t ↦ + (surfaceAreaMeasure K {((t : ℝ) : Real.Angle)}).toReal * + tangentVector ((t : ℝ) : Real.Angle) i)) (by + apply Finset.ext + intro t + simp [F, S]) + +/-- The surface integral of an arbitrary integrand over the angular image of a measurable +interval set, as a finite sum indexed by the angular lifts carrying a proper edge. The left +endpoint `a` is excluded from `E` so that each angle has at most one lift in `E`. -/ +theorem integral_surfaceAreaMeasure_image_eq_sum_properEdgeNormal_lifts + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) + {a b : ℝ} (hturn : b ≤ a + 2 * Real.pi) (φ : Real.Angle → ℝ) + (E : Set (Set.Icc a b)) (hE : MeasurableSet E) + (hEa : ∀ t ∈ E, a < (t : ℝ)) : + (∫ u in (fun t : Set.Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, + φ u ∂surfaceAreaMeasure K) = + Finset.sum ((finite_properEdgeNormal_lifts K V hKV hturn).inter_of_left E).toFinset + (fun t ↦ (surfaceAreaMeasure K).real {((t : ℝ) : Real.Angle)} * + φ ((t : ℝ) : Real.Angle)) := by + classical + let c : Set.Icc a b → Real.Angle := fun t ↦ ((t : ℝ) : Real.Angle) + let S : Set (Set.Icc a b) := {t | a < (t : ℝ) ∧ + (edgeVertices K ((t : ℝ) : Real.Angle)).1 ≠ + (edgeVertices K ((t : ℝ) : Real.Angle)).2} + have hinj : Set.InjOn c E := by + intro x hx y hy hxy + apply Subtype.ext + let _ : Fact (0 < 2 * Real.pi) := ⟨mul_pos (by norm_num) Real.pi_pos⟩ + apply (AddCircle.coe_eq_coe_iff_of_mem_Ioc + (p := 2 * Real.pi) ⟨hEa x hx, x.property.2.trans hturn⟩ + ⟨hEa y hy, y.property.2.trans hturn⟩).mp + change c x = c y + exact hxy + have hAmeas : MeasurableSet (c '' E) := + hE.image_of_continuousOn_injOn + ((Real.Angle.continuous_coe : Continuous fun x : ℝ ↦ (x : Real.Angle)).comp + continuous_subtype_val).continuousOn hinj + rw [integral_surfaceAreaMeasure_eq_sum_properEdgeNormals K V hKV φ (c '' E) hAmeas] + let F := ((finite_properEdgeNormal_lifts K V hKV hturn).inter_of_left E).toFinset + let G := ((finite_properEdgeNormal_angles K V hKV).inter_of_left (c '' E)).toFinset + have hG : G = F.image c := by + ext u + simp only [G, F, Set.Finite.mem_toFinset, Set.mem_inter_iff, Set.mem_image, + Finset.mem_image] + constructor + · rintro ⟨huN, t, htE, rfl⟩ + exact ⟨t, ⟨⟨hEa t htE, huN⟩, htE⟩, rfl⟩ + · rintro ⟨t, ⟨⟨hta, htN⟩, htE⟩, rfl⟩ + exact ⟨htN, t, htE, rfl⟩ + change Finset.sum G (fun u ↦ (surfaceAreaMeasure K).real {u} * φ u) = _ + rw [hG, Finset.sum_image] + · intro x hx y hy hxy + have hx' : x ∈ S ∩ E := by + change (a < (x : ℝ) ∧ (edgeVertices K ((x : ℝ) : Real.Angle)).1 ≠ + (edgeVertices K ((x : ℝ) : Real.Angle)).2) ∧ x ∈ E + simpa [F] using hx + have hy' : y ∈ S ∩ E := by + change (a < (y : ℝ) ∧ (edgeVertices K ((y : ℝ) : Real.Angle)).1 ≠ + (edgeVertices K ((y : ℝ) : Real.Angle)).2) ∧ y ∈ E + simpa [F] using hy + exact hinj hx'.2 hy'.2 hxy + +/-- The tangent-coordinate surface integral over the angular image of a measurable interval set is +the same finite proper-edge sum as the positive-vertex Stieltjes measure. -/ +theorem integral_tangentCoordinate_image_eq_sum_properEdgeNormal_lifts + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) + {a b : ℝ} (hturn : b ≤ a + 2 * Real.pi) (i : Fin 2) + (E : Set (Set.Icc a b)) (hE : MeasurableSet E) + (hEa : ∀ t ∈ E, a < (t : ℝ)) : + (∫ u in (fun t : Set.Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, + tangentVector u i ∂surfaceAreaMeasure K) = + Finset.sum ((finite_properEdgeNormal_lifts K V hKV hturn).inter_of_left E).toFinset + (fun t ↦ (surfaceAreaMeasure K {((t : ℝ) : Real.Angle)}).toReal * + tangentVector ((t : ℝ) : Real.Angle) i) := + integral_surfaceAreaMeasure_image_eq_sum_properEdgeNormal_lifts K V hKV hturn + (fun u ↦ tangentVector u i) E hE hEa + +/-- Polygon case of the positive-vertex Stieltjes/surface-measure identity, including degenerate +point and segment convex hulls. -/ +theorem positiveVertex_stieltjes_surface_of_eq_convexHull + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) + (a b : ℝ) (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) : + ∃ f : Fin 2 → RightContinuousIntervalBV a b, + (∀ i t, (f i).toFun t = (edgeVertices K ((t : ℝ) : Real.Angle)).1 i) ∧ + ∀ (i : Fin 2) (E : Set (Set.Icc a b)), MeasurableSet E → + (∀ t ∈ E, a < (t : ℝ)) → + intervalStieltjesMeasure (f i) E = + ∫ u in (fun t : Set.Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, + tangentVector u i ∂surfaceAreaMeasure K := by + obtain ⟨f, hf⟩ := exists_positiveVertex_intervalBV K hab.le + refine ⟨f, hf, fun i E hE hEa ↦ ?_⟩ + rw [intervalStieltjesMeasure_eq_sum_properEdgeNormals K V hKV hab hturn f hf i E hE hEa, + integral_tangentCoordinate_image_eq_sum_properEdgeNormal_lifts + K V hKV hturn i E hE hEa] + +/-- The positive vertex increment of a polygon is the tangent-coordinate surface integral over +the corresponding angular interval. -/ +theorem positiveVertex_sub_eq_integral_of_eq_convexHull + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) + {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) (i : Fin 2) : + (edgeVertices K (b : Real.Angle)).1 i - + (edgeVertices K (a : Real.Angle)).1 i = + ∫ u in (fun t : ℝ ↦ (t : Real.Angle)) '' Set.Ioc a b, + tangentVector u i ∂surfaceAreaMeasure K := by + obtain ⟨f, hf, hmeasure⟩ := + positiveVertex_stieltjes_surface_of_eq_convexHull K V hKV a b hab hturn + let aa : Set.Icc a b := ⟨a, le_rfl, hab.le⟩ + let bb : Set.Icc a b := ⟨b, hab.le, le_rfl⟩ + have hangularImage : + (fun t : Set.Icc a b ↦ ((t : ℝ) : Real.Angle)) '' Set.Ioc aa bb = + (fun t : ℝ ↦ (t : Real.Angle)) '' Set.Ioc a b := by + ext u + constructor + · rintro ⟨t, ht, rfl⟩ + exact ⟨t, ⟨ht.1, ht.2⟩, rfl⟩ + · rintro ⟨t, ht, rfl⟩ + exact ⟨⟨t, ht.1.le, ht.2⟩, ⟨ht.1, ht.2⟩, rfl⟩ + have hstieltjes := hmeasure i (Set.Ioc aa bb) measurableSet_Ioc + (fun t ht ↦ ht.1) + rw [intervalStieltjesMeasure_Ioc (f i) aa bb hab.le] at hstieltjes + rw [hf i bb, hf i aa, hangularImage] at hstieltjes + exact hstieltjes + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Boundary Limit +-/ + +@[expose] public section + +noncomputable section + +open Filter MeasureTheory Set +open scoped Topology BoundedContinuousFunction + +namespace MovingSofa + +/-- Face-preserving polygon approximation transfers the boundary increment identity. -/ +private theorem positiveVertex_sub_eq_integral_of_polygon_identity + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) + (hpoly : ∀ (P : ConvexBody Point) (V : Finset Point), + (P : Set Point) = convexHull ℝ (V : Set Point) → ∀ i : Fin 2, + (edgeVertices P (b : Real.Angle)).1 i - (edgeVertices P (a : Real.Angle)).1 i = + ∫ u in (fun t : ℝ ↦ (t : Real.Angle)) '' Ioc a b, + tangentVector u i ∂surfaceAreaMeasure P) (i : Fin 2) : + (edgeVertices K (b : Real.Angle)).1 i - (edgeVertices K (a : Real.Angle)).1 i = + ∫ u in (fun t : ℝ ↦ (t : Real.Angle)) '' Ioc a b, + tangentVector u i ∂surfaceAreaMeasure K := by + classical + obtain ⟨V, P, hP, hdist⟩ := exists_facePreserving_polygonApproximation K + {(a : Real.Angle), (b : Real.Angle)} + have ha (n : ℕ) : exposedEdge (P n) (a : Real.Angle) = exposedEdge K (a : Real.Angle) := + (hP n).2.2.2 _ (by simp) + have hb (n : ℕ) : exposedEdge (P n) (b : Real.Angle) = exposedEdge K (b : Real.Angle) := + (hP n).2.2.2 _ (by simp) + have hlim : Tendsto (fun n ↦ Metric.hausdorffDist (P n : Set Point) (K : Set Point)) + atTop (𝓝 0) := by + apply squeeze_zero' (Filter.Eventually.of_forall fun _ ↦ Metric.hausdorffDist_nonneg) + (Filter.eventually_atTop.2 ⟨1, fun n hn ↦ hdist n hn⟩) + exact tendsto_one_div_atTop_nhds_zero_nat + have hcontinuous : Continuous (fun u : Real.Angle ↦ tangentVector u i) := by + fin_cases i + · exact Real.Angle.continuous_sin.neg + · exact Real.Angle.continuous_cos + have hint := tendsto_integral_surfaceAreaMeasure_Ioc_of_preserves_faces + P K hlim hab hturn ha hb (fun u ↦ tangentVector u i) hcontinuous + have hvalue (n : ℕ) : + (∫ u in (fun t : ℝ ↦ (t : Real.Angle)) '' Ioc a b, + tangentVector u i ∂surfaceAreaMeasure (P n)) = + (edgeVertices K (b : Real.Angle)).1 i - (edgeVertices K (a : Real.Angle)).1 i := by + rw [← hpoly (P n) (V n) (hP n).2.1 i, + edgeVertices_eq_of_exposedEdge_eq (P n) K _ (ha n), + edgeVertices_eq_of_exposedEdge_eq (P n) K _ (hb n)] + simp only [hvalue] at hint + exact tendsto_nhds_unique tendsto_const_nhds hint + +/-- The positive vertex increment is the tangent-coordinate surface integral over +the corresponding half-open angular interval. -/ +theorem positiveVertex_sub_eq_integral + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) + (i : Fin 2) : + (edgeVertices K (b : Real.Angle)).1 i - (edgeVertices K (a : Real.Angle)).1 i = + ∫ u in (fun t : ℝ ↦ (t : Real.Angle)) '' Ioc a b, + tangentVector u i ∂surfaceAreaMeasure K := by + exact positiveVertex_sub_eq_integral_of_polygon_identity K hab hturn + (fun P V hPV i ↦ positiveVertex_sub_eq_integral_of_eq_convexHull P V hPV hab hturn i) i + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Discrete Bounds +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- The integral of tangent vectors gives the increment of the positive supporting vertex. -/ +theorem integral_tangentVector_surfaceAreaMeasure (K : ConvexBody Point) + {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) : + (∫ u in (fun t : ℝ ↦ (t : Real.Angle)) '' Set.Ioc a b, + tangentVector u ∂surfaceAreaMeasure K) = + (edgeVertices K (b : Real.Angle)).1 - (edgeVertices K (a : Real.Angle)).1 := by + let A := (fun t : ℝ ↦ (t : Real.Angle)) '' Set.Ioc a b + let _ : IsFiniteMeasure (surfaceAreaMeasure K) := (surfaceAreaMeasure_face_union K).1 + have hu : Integrable (fun u : Real.Angle ↦ tangentVector u) + ((surfaceAreaMeasure K).restrict A) := by + rw [← integrableOn_univ] + apply ContinuousOn.integrableOn_compact isCompact_univ + apply Continuous.continuousOn + apply (PiLp.continuous_toLp 2 (fun _ : Fin 2 ↦ ℝ)).comp + apply continuous_pi + intro i + fin_cases i + · exact Real.Angle.continuous_sin.neg + · exact Real.Angle.continuous_cos + ext i + have hi := ContinuousLinearMap.integral_comp_comm + (PiLp.proj (𝕜 := ℝ) 2 (fun _ : Fin 2 ↦ ℝ) i) hu + change (∫ u in A, tangentVector u i ∂surfaceAreaMeasure K) = + (∫ u in A, tangentVector u ∂surfaceAreaMeasure K) i at hi + rw [← hi] + exact (positiveVertex_sub_eq_integral K hab hturn i).symm + +/-- The projected boundary integral computes the support value relative to the initial vertex. -/ +theorem integral_inner_tangentVector_eq_support_sub (K : ConvexBody Point) + {s : ℝ} (hs : s ∈ Set.Ioo 0 Real.pi) : + (∫ u in (fun t : ℝ ↦ (t : Real.Angle)) '' Set.Ioc 0 s, + inner ℝ (normalVector (s : Real.Angle)) (tangentVector u) ∂surfaceAreaMeasure K) = + supportValue K (s : Real.Angle) - + inner ℝ (normalVector (s : Real.Angle)) (edgeVertices K 0).1 := by + let A := (fun t : ℝ ↦ (t : Real.Angle)) '' Set.Ioc 0 s + let _ : IsFiniteMeasure (surfaceAreaMeasure K) := (surfaceAreaMeasure_face_union K).1 + have hu : Integrable (fun u : Real.Angle ↦ tangentVector u) + ((surfaceAreaMeasure K).restrict A) := by + rw [← integrableOn_univ] + apply ContinuousOn.integrableOn_compact isCompact_univ + apply Continuous.continuousOn + apply (PiLp.continuous_toLp 2 (fun _ : Fin 2 ↦ ℝ)).comp + apply continuous_pi + intro i + fin_cases i + · exact Real.Angle.continuous_sin.neg + · exact Real.Angle.continuous_cos + have hi := ContinuousLinearMap.integral_comp_comm + (innerSL ℝ (normalVector (s : Real.Angle))) hu + change (∫ u in A, inner ℝ (normalVector (s : Real.Angle)) (tangentVector u) + ∂surfaceAreaMeasure K) = inner ℝ (normalVector (s : Real.Angle)) + (∫ u in A, tangentVector u ∂surfaceAreaMeasure K) at hi + rw [show (∫ u in A, tangentVector u ∂surfaceAreaMeasure K) = + (edgeVertices K (s : Real.Angle)).1 - (edgeVertices K 0).1 from + integral_tangentVector_surfaceAreaMeasure K hs.1 (by linarith [hs.2, Real.pi_pos]), + inner_sub_right, + real_inner_comm (edgeVertices K (s : Real.Angle)).1 (normalVector (s : Real.Angle)), + (edgeVertices_fst_mem K (s : Real.Angle)).2] at hi + exact hi + +/-- Positive atomic sine contributions are bounded by the corresponding support increment. -/ +theorem sum_surfaceAreaMeasure_mul_pos_sin_le (K : ConvexBody Point) + (D : Finset ℝ) (hD : ∀ t ∈ D, t ∈ Set.Ioo 0 Real.pi) + {s : ℝ} (hs : s ∈ Set.Ioo 0 Real.pi) : + ∑ t ∈ D, (surfaceAreaMeasure K {(t : Real.Angle)}).toReal * + max (Real.sin (s - t)) 0 ≤ supportValue K (s : Real.Angle) - + inner ℝ (normalVector (s : Real.Angle)) (edgeVertices K 0).1 := by + classical + let F := D.filter (fun t ↦ t ≤ s) + let E := (fun t : ℝ ↦ (t : Real.Angle)) '' Set.Ioc 0 s + let g : Real.Angle → ℝ := + fun u ↦ inner ℝ (normalVector (s : Real.Angle)) (tangentVector u) + have hcoe : Set.InjOn (fun t : ℝ ↦ (t : Real.Angle)) (Set.Ioc 0 s) := + Real.Angle.injOn_coe_Ioc (by linarith [hs.2, Real.pi_pos]) + have hE : MeasurableSet E := measurableSet_Ioc.image_of_continuousOn_injOn + Real.Angle.continuous_coe.continuousOn hcoe + have hF (t : ℝ) (ht : t ∈ F) : t ∈ Set.Ioc 0 s := + ⟨(hD t (Finset.mem_filter.mp ht).1).1, (Finset.mem_filter.mp ht).2⟩ + let _ : IsFiniteMeasure (surfaceAreaMeasure K) := (surfaceAreaMeasure_face_union K).1 + have hgcont : Continuous g := by + apply Continuous.inner continuous_const + apply (PiLp.continuous_toLp 2 (fun _ : Fin 2 ↦ ℝ)).comp + apply continuous_pi + intro i + fin_cases i + · exact Real.Angle.continuous_sin.neg + · exact Real.Angle.continuous_cos + have hg : IntegrableOn g E (surfaceAreaMeasure K) := + by + have hall : Integrable g (surfaceAreaMeasure K) := by + rw [← integrableOn_univ] + exact hgcont.continuousOn.integrableOn_compact isCompact_univ + exact hall.integrableOn + have hgnonneg : ∀ u ∈ E, 0 ≤ g u := by + rintro u ⟨t, ht, rfl⟩ + change 0 ≤ inner ℝ (normalVector (s : Real.Angle)) (tangentVector (t : Real.Angle)) + rw [real_inner_comm (tangentVector (t : Real.Angle)), inner_tangentVector_normalVector_real] + exact Real.sin_nonneg_of_mem_Icc ⟨by linarith [ht.2], by linarith [ht.1, hs.2]⟩ + have hb := sum_measureReal_mul_le_setIntegral (surfaceAreaMeasure K) + (F.image fun t : ℝ ↦ (t : Real.Angle)) hE + (by rintro u hu; obtain ⟨t, ht, rfl⟩ := Finset.mem_image.mp hu; exact ⟨t, hF t ht, rfl⟩) + hg hgnonneg + rw [Finset.sum_image (fun x hx y hy hxy ↦ hcoe (hF x hx) (hF y hy) hxy)] at hb + have heval (t : ℝ) : g (t : Real.Angle) = Real.sin (s - t) := by + dsimp [g] + rw [real_inner_comm (tangentVector (t : Real.Angle)), inner_tangentVector_normalVector_real] + simp_rw [heval] at hb + change (∑ t ∈ F, (surfaceAreaMeasure K {(t : Real.Angle)}).toReal * + Real.sin (s - t)) ≤ _ at hb + have hsum : (∑ t ∈ D, (surfaceAreaMeasure K {(t : Real.Angle)}).toReal * + max (Real.sin (s - t)) 0) = + ∑ t ∈ F, (surfaceAreaMeasure K {(t : Real.Angle)}).toReal * Real.sin (s - t) := by + rw [Finset.sum_filter] + apply Finset.sum_congr rfl + intro t ht + by_cases hts : t ≤ s + · rw [ite_eq_left hts, max_eq_left (Real.sin_nonneg_of_mem_Icc + ⟨by linarith, by linarith [(hD t ht).1, hs.2]⟩)] + · have hsin : Real.sin (s - t) ≤ 0 := by + have h := Real.sin_nonneg_of_mem_Icc + (show t - s ∈ Set.Icc 0 Real.pi from + ⟨by linarith, by linarith [(hD t ht).2, hs.1]⟩) + rw [show s - t = -(t - s) by ring, Real.sin_neg] + linarith + rw [ite_eq_right hts, max_eq_right hsin, mul_zero] + rw [hsum] + exact hb.trans_eq (integral_inner_tangentVector_eq_support_sub K hs) + +/-- For upper normals, the negative zero-angle vertex projects below the positive vertex. -/ +theorem inner_negativeVertex_zero_le_positiveVertex (K : ConvexBody Point) + {s : ℝ} (hs : s ∈ Set.Icc 0 Real.pi) : + inner ℝ (normalVector (s : Real.Angle)) (edgeVertices K 0).2 ≤ + inner ℝ (normalVector (s : Real.Angle)) (edgeVertices K 0).1 := by + have hy : inner ℝ (edgeVertices K 0).2 (tangentVector 0) ≤ + inner ℝ (edgeVertices K 0).1 (tangentVector 0) := by + rw [inner_edgeVertices_snd_tangent] + exact csInf_le ((isCompact_exposedEdge K 0).image + (continuous_id.inner continuous_const)).bddBelow + ⟨(edgeVertices K 0).1, edgeVertices_fst_mem K 0, rfl⟩ + have hx := (edgeVertices_fst_mem K 0).2.trans (edgeVertices_snd_mem K 0).2.symm + simp only [normalVector, frame, Real.Angle.cos_zero, Real.Angle.sin_zero, neg_zero, + PiLp.inner_apply, RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, + Matrix.cons_val_zero, one_mul, Matrix.cons_val_one, Matrix.cons_val_fin_one, zero_mul, + add_zero, tangentVector, zero_add, Real.Angle.cos_coe, Real.Angle.sin_coe, ge_iff_le] at hx hy ⊢ + have hsin := Real.sin_nonneg_of_mem_Icc hs + rw [hx] + linarith [mul_le_mul_of_nonneg_right hy hsin] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Integrals +-/ + +@[expose] public section + +noncomputable section + +open Filter MeasureTheory +open scoped Topology + +namespace MovingSofa + +/-- A sine convolution of tangent directions is the negative normal projection of their +Bochner integral. -/ +private theorem integral_sin_sub_eq_neg_inner_integral_tangentVector + {α : Type*} [MeasurableSpace α] (μ : Measure α) (s : Set α) + (u : α → Real.Angle) (t : Real.Angle) + (hu : Integrable (fun x ↦ tangentVector (u x)) (μ.restrict s)) : + (∫ x in s, (u x - t).sin ∂μ) = + -inner ℝ (normalVector t) (∫ x in s, tangentVector (u x) ∂μ) := by + let L : Point →L[ℝ] ℝ := innerSL ℝ (normalVector t) + calc + (∫ x in s, (u x - t).sin ∂μ) = + ∫ x in s, -L (tangentVector (u x)) ∂μ := by + apply integral_congr_ae + filter_upwards [] with x + exact sin_sub_eq_neg_inner_normalVector_tangentVector t (u x) + _ = -(∫ x in s, L (tangentVector (u x)) ∂μ) := integral_neg _ + _ = -L (∫ x in s, tangentVector (u x) ∂μ) := by + rw [ContinuousLinearMap.integral_comp_comm L hu] + _ = -inner ℝ (normalVector t) (∫ x in s, tangentVector (u x) ∂μ) := rfl + +theorem tangentArm_convolution (K : RightAngleCapSpace) (t : ℝ) : + (tangentArmLengths K t).2.1 = + ∫ u in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioc t (t + Real.pi / 2), + (u - (t : Real.Angle)).sin ∂surfaceAreaMeasure K.val := by + let A := (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioc t (t + Real.pi / 2) + let _ : IsFiniteMeasure (surfaceAreaMeasure K.val) := + (surfaceAreaMeasure_face_union K.val).1 + have hu : Integrable (fun u : Real.Angle ↦ tangentVector u) + ((surfaceAreaMeasure K.val).restrict A) := by + rw [← integrableOn_univ] + apply ContinuousOn.integrableOn_compact isCompact_univ + apply Continuous.continuousOn + apply (PiLp.continuous_toLp 2 (fun _ : Fin 2 ↦ ℝ)).comp + apply continuous_pi + intro i + fin_cases i + · exact Real.Angle.continuous_sin.neg + · exact Real.Angle.continuous_cos + have hvec : (∫ u in A, tangentVector u ∂surfaceAreaMeasure K.val) = + (edgeVertices K.val ((t + Real.pi / 2 : ℝ) : Real.Angle)).1 - + (edgeVertices K.val (t : Real.Angle)).1 := by + ext i + have hi := ContinuousLinearMap.integral_comp_comm + (PiLp.proj (𝕜 := ℝ) 2 (fun _ : Fin 2 ↦ ℝ) i) hu + change (∫ u in A, tangentVector u i ∂surfaceAreaMeasure K.val) = + (∫ u in A, tangentVector u ∂surfaceAreaMeasure K.val) i at hi + rw [← hi] + symm + simpa [A] using positiveVertex_sub_eq_integral K.val (a := t) + (b := t + Real.pi / 2) (by linarith [Real.pi_pos]) + (by linarith [Real.pi_pos]) i + have harm : (tangentArmLengths K t).2.1 = + -inner ℝ (normalVector (t : Real.Angle)) + ((edgeVertices K.val ((t + Real.pi / 2 : ℝ) : Real.Angle)).1 - + (edgeVertices K.val (t : Real.Angle)).1) := by + obtain ⟨hA, _, hC, _⟩ := capTangentArm_identities K t + have hnt : inner ℝ (tangentVector (t : Real.Angle)) + (normalVector (t : Real.Angle)) = 0 := by + rw [real_inner_comm] + exact inner_normalVector_tangentVector t + have hnn : inner ℝ (normalVector (t : Real.Angle)) + (normalVector (t : Real.Angle)) = 1 := inner_normalVector_self t + rw [hA] at hC + have hproj := congrArg (fun p : Point ↦ inner ℝ p (normalVector (t : Real.Angle))) hC + simp only [inner_add_left, real_inner_smul_left, hnt, hnn, mul_zero, add_zero, + mul_one] at hproj + simp only [capVertices] at hproj + rw [inner_sub_right] + rw [real_inner_comm + (edgeVertices K.val ((t + Real.pi / 2 : ℝ) : Real.Angle)).1 + (normalVector (t : Real.Angle)), + real_inner_comm (edgeVertices K.val (t : Real.Angle)).1 + (normalVector (t : Real.Angle))] + linarith + have hkernel := integral_sin_sub_eq_neg_inner_integral_tangentVector + (surfaceAreaMeasure K.val) A id (t : Real.Angle) hu + simp only [id_eq] at hkernel + rw [show (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioc t (t + Real.pi / 2) = A from rfl, + hkernel, hvec, harm] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Vertex Boundary +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped Topology + +namespace MovingSofa + +theorem positiveVertex_stieltjes_surface (K : ConvexBody Point) (a b : ℝ) + (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) : + ∃ f : Fin 2 → RightContinuousIntervalBV a b, + (∀ i t, (f i).toFun t = (edgeVertices K ((t : ℝ) : Real.Angle)).1 i) ∧ + ∀ (i : Fin 2) (E : Set (Set.Icc a b)), MeasurableSet E → + (∀ t ∈ E, a < (t : ℝ)) → + intervalStieltjesMeasure (f i) E = + ∫ u in (fun t : Set.Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, + tangentVector u i ∂surfaceAreaMeasure K := by + obtain ⟨f, hf⟩ := exists_positiveVertex_intervalBV K hab.le + refine ⟨f, hf, ?_⟩ + apply intervalStieltjesMeasure_eq_surfaceIntegral_of_increment K hab hturn f hf + intro c d hcd i + have hcdturn : (d : ℝ) ≤ (c : ℝ) + 2 * Real.pi := + d.property.2.trans (hturn.trans (by linarith [c.property.1])) + exact positiveVertex_sub_eq_integral K hcd hcdturn i + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Angular densities of the surface-area measure + +On an angular window of at most one turn the positive vertex of a convex body is a function of +bounded variation whose Stieltjes measure, paired with the moving tangent, is the surface-area +measure (`sum_intervalStieltjesIntegral_positiveVertex_tangent`). If on such a window the +positive vertex happens to be a differentiable curve with derivative `g s • tangentVector s`, +this identifies the surface-area measure with the Lebesgue density `g`. + +This file records that identification (`surfaceAreaMeasure_angleImage_eq_setLIntegral`, +`surfaceAreaMeasure_angleImage_eq_withDensity_of_hasDerivAt`), and the bookkeeping that glues +finitely many or countably many such windows together (`measure_angleImage_eq_of_union`, +`measure_angleImage_eq_of_iUnion`) and turns the resulting set-level identities into the +`Measure.restrict = Measure.map (Measure.withDensity …)` form used by cap-density statements +(`measure_restrict_eq_map_withDensity`, `surfaceAreaMeasure_restrict_eq_map_withDensity`, +`surfaceAreaMeasure_restrict_eq_map_add_withDensity`). + +The gluing lemmas are stated for an arbitrary pair of measures on `Real.Angle` and on `ℝ`, +since they only use additivity and the injectivity of the angular projection on a window of at +most one turn. +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped ENNReal + +namespace MovingSofa + +/-- Pairing the frame tangent with a multiple of itself, in coordinates. -/ +private theorem sum_mul_tangentVector_sq (c s : ℝ) : + tangentVector (s : Real.Angle) 0 * (c * tangentVector (s : Real.Angle) 0) + + tangentVector (s : Real.Angle) 1 * (c * tangentVector (s : Real.Angle) 1) = c := by + have h : tangentVector (s : Real.Angle) 0 ^ 2 + tangentVector (s : Real.Angle) 1 ^ 2 = 1 := by + have h := inner_tangentVector_self s + rw [PiLp.inner_apply] at h + simpa [Fin.sum_univ_two] using h + linear_combination c * h + +/-! ### The surface measure of an arc with a differentiable positive vertex -/ + +/-- Suppose that on the angular window `Ioc a b`, of at most one turn, the positive vertex of `K` +is traced by a curve `F` with derivative `g s • tangentVector s`, where `g` is continuous and +nonnegative. Then the surface-area measure of the angular image of a measurable +`S ⊆ Ioc a b` is the Lebesgue integral of `g` over `S`. -/ +theorem surfaceAreaMeasure_angleImage_eq_setLIntegral (K : ConvexBody Point) {a b : ℝ} + (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) (F : ℝ → Point) (g : ℝ → ℝ) + (hF : ∀ s, HasDerivAt F (g s • tangentVector (s : Real.Angle)) s) (hg : Continuous g) + (hgnn : ∀ s ∈ Ioc a b, 0 ≤ g s) + (hvertex : ∀ s ∈ Icc a b, (edgeVertices K (s : Real.Angle)).1 = F s) + {S : Set ℝ} (hS : MeasurableSet S) (hSsub : S ⊆ Ioc a b) : + surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + ∫⁻ s in S, ENNReal.ofReal (g s) := by + have hfin : IsFiniteMeasure (surfaceAreaMeasure K) := (surfaceAreaMeasure_face_union K).1 + have hSIcc : S ⊆ Icc a b := hSsub.trans Ioc_subset_Icc_self + obtain ⟨f, hftoFun, hfmeas⟩ := positiveVertex_stieltjes_surface K a b hab hturn + have hcontT : ∀ i : Fin 2, Continuous fun s : ℝ ↦ tangentVector (s : Real.Angle) i := + fun i ↦ (continuous_tangentVector_coordinate i).comp Real.Angle.continuous_coe + -- the coordinate functions of the differentiable vertex curve and their derivatives + set φ : Fin 2 → ℝ → ℝ := fun i s ↦ F s i with hφ + set ψ : Fin 2 → ℝ → ℝ := fun i s ↦ g s * tangentVector (s : Real.Angle) i with hψ + have hderiv : ∀ (i : Fin 2) (s : ℝ), HasDerivAt (φ i) (ψ i s) s := by + intro i s + have h := (EuclideanSpace.proj (𝕜 := ℝ) i).hasFDerivAt.comp_hasDerivAt s (hF s) + simpa [φ, ψ, Function.comp_def] using h + have hcontψ : ∀ i : Fin 2, Continuous (ψ i) := fun i ↦ hg.mul (hcontT i) + -- the Stieltjes density of each vertex coordinate + have hdens : ∀ i : Fin 2, HasIntervalStieltjesDensity (f i) (ψ i) := by + intro i + obtain ⟨G, hGfun, hGdens⟩ := + exists_intervalBV_of_hasDerivAt hab.le (φ i) (ψ i) (hderiv i) (hcontψ i) + have hfe : f i = G := by + refine RightContinuousIntervalBV.toFun_injective (funext fun t ↦ ?_) + rw [hftoFun i t, hGfun t, hvertex (t : ℝ) t.2] + rw [hfe] + exact hGdens + -- the sum over the two coordinates of the Stieltjes integrals + set E : Set (Icc a b) := {x : Icc a b | (x : ℝ) ∈ S} with hE + have hEmeas : MeasurableSet E := hS.preimage measurable_subtype_coe + have hEa : ∀ t ∈ E, a < (t : ℝ) := fun t ht ↦ (hSsub ht).1 + have himage : (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E = + (fun s : ℝ ↦ (s : Real.Angle)) '' S := by + ext u + constructor + · rintro ⟨t, ht, rfl⟩ + exact ⟨(t : ℝ), ht, rfl⟩ + · rintro ⟨s, hs, rfl⟩ + exact ⟨⟨s, hSIcc hs⟩, hs, rfl⟩ + have hsum := sum_intervalStieltjesIntegral_positiveVertex_tangent K hab hturn f hfmeas + E hEmeas hEa + rw [himage] at hsum + -- each Stieltjes integral is an ordinary set integral + have hstep : ∀ i : Fin 2, + intervalStieltjesIntegral (f i) (fun t ↦ tangentVector ((t : ℝ) : Real.Angle) i) E = + ∫ s in S, tangentVector (s : Real.Angle) i * ψ i s := by + intro i + have hq : Continuous fun t : Icc a b ↦ tangentVector ((t : ℝ) : Real.Angle) i := + (hcontT i).comp continuous_subtype_val + rw [intervalStieltjesIntegral_eq_integral_mul_of_density (f i) (hdens i) hq E hEmeas] + rw [MeasureTheory.integral_subtype_preimage measurableSet_Icc hS + (fun s ↦ tangentVector (s : Real.Angle) i * ψ i s)] + rw [Measure.restrict_restrict_of_subset hSIcc] + simp only [hstep] at hsum + -- integrability of the two summands and of the density + have hintegrand : ∀ i : Fin 2, + IntegrableOn (fun s : ℝ ↦ tangentVector (s : Real.Angle) i * ψ i s) S volume := by + intro i + refine (ContinuousOn.integrableOn_compact isCompact_Icc ?_).mono_set hSIcc + exact ((hcontT i).mul (hcontψ i)).continuousOn + have hgint : IntegrableOn g S volume := + (ContinuousOn.integrableOn_compact isCompact_Icc hg.continuousOn).mono_set hSIcc + have hsum2 : (surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' S)).toReal = + ∫ s in S, g s := by + rw [← hsum, Fin.sum_univ_two, ← integral_add (hintegrand 0) (hintegrand 1)] + refine setIntegral_congr_fun hS fun s _ ↦ ?_ + exact sum_mul_tangentVector_sq (g s) s + rw [← ENNReal.ofReal_toReal (measure_ne_top (surfaceAreaMeasure K) _), hsum2] + rw [MeasureTheory.ofReal_integral_eq_lintegral_ofReal hgint] + filter_upwards [ae_restrict_mem hS] with s hs + exact hgnn s (hSsub hs) + +/-- The same identification as `surfaceAreaMeasure_angleImage_eq_setLIntegral`, phrased as +agreement with a `Measure.withDensity` for any nonnegative weight `w` that agrees with the +derivative factor `g` on the window. -/ +theorem surfaceAreaMeasure_angleImage_eq_withDensity_of_hasDerivAt (K : ConvexBody Point) + {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) (F : ℝ → Point) (g w : ℝ → ℝ) + (hF : ∀ s, HasDerivAt F (g s • tangentVector (s : Real.Angle)) s) (hg : Continuous g) + (hvertex : ∀ s ∈ Icc a b, (edgeVertices K (s : Real.Angle)).1 = F s) + (hw : ∀ s ∈ Ioc a b, w s = g s) (hwnn : ∀ s ∈ Ioc a b, 0 ≤ w s) + (S : Set ℝ) (hS : MeasurableSet S) (hSsub : S ⊆ Ioc a b) : + surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + volume.withDensity (fun s ↦ ENNReal.ofReal (w s)) S := by + have hgnn : ∀ s ∈ Ioc a b, 0 ≤ g s := fun s hs ↦ (hw s hs) ▸ hwnn s hs + rw [withDensity_apply _ hS, surfaceAreaMeasure_angleImage_eq_setLIntegral K hab hturn F g hF hg + hgnn hvertex hS hSsub] + exact setLIntegral_congr_fun hS fun s hs ↦ by rw [hw s (hSsub hs)] + +/-! ### Gluing angular density identities -/ + +/-- Two measures that read one another through the angular projection on each of two disjoint +measurable subsets of a window of at most one turn do so on their union. -/ +theorem measure_angleImage_eq_of_union {μ : Measure Real.Angle} {ν : Measure ℝ} {c d : ℝ} + (hturn : d ≤ c + 2 * Real.pi) {I J : Set ℝ} + (hI : I ⊆ Ioc c d) (hJ : J ⊆ Ioc c d) + (hImeas : MeasurableSet I) (hJmeas : MeasurableSet J) (hdisj : Disjoint I J) + (hA : ∀ S, MeasurableSet S → S ⊆ I → μ ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = ν S) + (hB : ∀ S, MeasurableSet S → S ⊆ J → μ ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = ν S) + (S : Set ℝ) (hS : MeasurableSet S) (hSsub : S ⊆ I ∪ J) : + μ ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = ν S := by + have hsplit : S = S ∩ I ∪ S ∩ J := by + rw [← Set.inter_union_distrib_left, Set.inter_eq_left.2 hSsub] + have hSI : MeasurableSet (S ∩ I) := hS.inter hImeas + have hSJ : MeasurableSet (S ∩ J) := hS.inter hJmeas + have hdisj' : Disjoint (S ∩ I) (S ∩ J) := + hdisj.mono Set.inter_subset_right Set.inter_subset_right + have hinj := Real.Angle.injOn_coe_Ioc hturn + have himdisj : Disjoint ((fun s : ℝ ↦ (s : Real.Angle)) '' (S ∩ I)) + ((fun s : ℝ ↦ (s : Real.Angle)) '' (S ∩ J)) := by + rw [Set.disjoint_left] + rintro u ⟨x, hx, rfl⟩ ⟨y, hy, hxy⟩ + have hyx : y = x := hinj (hJ hy.2) (hI hx.2) hxy + exact (Set.disjoint_left.1 hdisj' hx) (hyx ▸ hy) + have himmeas : MeasurableSet ((fun s : ℝ ↦ (s : Real.Angle)) '' (S ∩ J)) := + Real.Angle.measurableSet_image_of_subset_Ioc hturn hSJ (Set.inter_subset_right.trans hJ) + calc μ ((fun s : ℝ ↦ (s : Real.Angle)) '' S) + = μ ((fun s : ℝ ↦ (s : Real.Angle)) '' (S ∩ I) ∪ + (fun s : ℝ ↦ (s : Real.Angle)) '' (S ∩ J)) := by + rw [← Set.image_union, ← hsplit] + _ = μ ((fun s : ℝ ↦ (s : Real.Angle)) '' (S ∩ I)) + + μ ((fun s : ℝ ↦ (s : Real.Angle)) '' (S ∩ J)) := measure_union himdisj himmeas + _ = ν (S ∩ I) + ν (S ∩ J) := by + rw [hA _ hSI Set.inter_subset_right, hB _ hSJ Set.inter_subset_right] + _ = ν S := by rw [← measure_union hdisj' hSJ, ← hsplit] + +/-- Two measures that read one another through the angular projection on each member of a +monotone sequence of measurable sets do so on the union of that sequence. -/ +theorem measure_angleImage_eq_of_iUnion {μ : Measure Real.Angle} {ν : Measure ℝ} + {J : ℕ → Set ℝ} (hmono : Monotone J) (hJmeas : ∀ n, MeasurableSet (J n)) + (hA : ∀ (n : ℕ) (S : Set ℝ), MeasurableSet S → S ⊆ J n → + μ ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = ν S) + (S : Set ℝ) (hS : MeasurableSet S) (hSsub : S ⊆ ⋃ n, J n) : + μ ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = ν S := by + have hSeq : S = ⋃ n, S ∩ J n := by + rw [← Set.inter_iUnion, Set.inter_eq_left.2 hSsub] + have hmono' : Monotone fun n ↦ S ∩ J n := fun m n h ↦ + Set.inter_subset_inter_right _ (hmono h) + have hmonoimg : Monotone fun n ↦ (fun s : ℝ ↦ (s : Real.Angle)) '' (S ∩ J n) := + fun m n h ↦ Set.image_mono (hmono' h) + calc μ ((fun s : ℝ ↦ (s : Real.Angle)) '' S) + = μ (⋃ n, (fun s : ℝ ↦ (s : Real.Angle)) '' (S ∩ J n)) := by + rw [← Set.image_iUnion, ← hSeq] + _ = ⨆ n, μ ((fun s : ℝ ↦ (s : Real.Angle)) '' (S ∩ J n)) := hmonoimg.measure_iUnion + _ = ⨆ n, ν (S ∩ J n) := + iSup_congr fun n ↦ hA n _ (hS.inter (hJmeas n)) Set.inter_subset_right + _ = ν S := by rw [← hmono'.measure_iUnion, ← hSeq] + +/-! ### From set-level identities to restricted measures -/ + +/-- A set-level angular density identity on a measurable parameter set `I` says exactly that the +measure restricted to the angular image of `I` is the pushforward of the weighted Lebesgue +measure on `I`. -/ +theorem measure_restrict_eq_map_withDensity {μ : Measure Real.Angle} {I : Set ℝ} + {w : ℝ → ℝ≥0∞} (hImeas : MeasurableSet I) + (hagree : ∀ S, MeasurableSet S → S ⊆ I → + μ ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = volume.withDensity w S) : + μ.restrict ((fun s : ℝ ↦ (s : Real.Angle)) '' I) = + Measure.map (fun s : ℝ ↦ (s : Real.Angle)) ((volume.restrict I).withDensity w) := by + have hmeas : Measurable fun s : ℝ ↦ (s : Real.Angle) := Real.Angle.continuous_coe.measurable + ext B hB + have hpre : MeasurableSet ((fun s : ℝ ↦ (s : Real.Angle)) ⁻¹' B) := hB.preimage hmeas + have hset : B ∩ (fun s : ℝ ↦ (s : Real.Angle)) '' I = + (fun s : ℝ ↦ (s : Real.Angle)) '' ((fun s : ℝ ↦ (s : Real.Angle)) ⁻¹' B ∩ I) := by + ext u + constructor + · rintro ⟨hu, s, hs, rfl⟩ + exact ⟨s, ⟨hu, hs⟩, rfl⟩ + · rintro ⟨s, ⟨hs1, hs2⟩, rfl⟩ + exact ⟨hs1, s, hs2, rfl⟩ + rw [Measure.restrict_apply hB, hset, hagree _ (hpre.inter hImeas) Set.inter_subset_right, + Measure.map_apply hmeas hB, withDensity_apply _ hpre, + withDensity_apply _ (hpre.inter hImeas), Measure.restrict_restrict hpre] + +/-- The surface-area measure instance of `measure_restrict_eq_map_withDensity`. -/ +theorem surfaceAreaMeasure_restrict_eq_map_withDensity {K : ConvexBody Point} + {I : Set ℝ} {w : ℝ → ℝ≥0∞} (hImeas : MeasurableSet I) + (hagree : ∀ S, MeasurableSet S → S ⊆ I → + surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = volume.withDensity w S) : + (surfaceAreaMeasure K).restrict ((fun s : ℝ ↦ (s : Real.Angle)) '' I) = + Measure.map (fun s : ℝ ↦ (s : Real.Angle)) ((volume.restrict I).withDensity w) := + measure_restrict_eq_map_withDensity hImeas hagree + +/-- The shifted form of `surfaceAreaMeasure_restrict_eq_map_withDensity`: an angular density +identity on the translated window `Ioc c (c + T)` with the translated weight `u ↦ w (u - c)` +says that the surface-area measure restricted to that angular arc is the pushforward of the +`w`-weighted Lebesgue measure on `Ioc 0 T` along `t ↦ ↑(t + c)`. -/ +theorem surfaceAreaMeasure_restrict_eq_map_add_withDensity {K : ConvexBody Point} + {c T : ℝ} {w : ℝ → ℝ≥0∞} + (hagree : ∀ S, MeasurableSet S → S ⊆ Ioc c (c + T) → + surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + volume.withDensity (fun u ↦ w (u - c)) S) : + (surfaceAreaMeasure K).restrict ((fun s : ℝ ↦ (s : Real.Angle)) '' Ioc c (c + T)) = + Measure.map (fun t : ℝ ↦ ((t + c : ℝ) : Real.Angle)) + ((volume.restrict (Ioc 0 T)).withDensity w) := by + have hmeas : Measurable fun s : ℝ ↦ (s : Real.Angle) := Real.Angle.continuous_coe.measurable + have hmeas' : Measurable fun t : ℝ ↦ ((t + c : ℝ) : Real.Angle) := + Real.Angle.continuous_coe.measurable.comp (measurable_id.add_const c) + ext B hB + have hpre : MeasurableSet ((fun s : ℝ ↦ (s : Real.Angle)) ⁻¹' B) := hB.preimage hmeas + have hpre' : MeasurableSet ((fun t : ℝ ↦ ((t + c : ℝ) : Real.Angle)) ⁻¹' B) := + hB.preimage hmeas' + have hset : B ∩ (fun s : ℝ ↦ (s : Real.Angle)) '' Ioc c (c + T) = + (fun s : ℝ ↦ (s : Real.Angle)) '' + ((fun s : ℝ ↦ (s : Real.Angle)) ⁻¹' B ∩ Ioc c (c + T)) := by + ext u + constructor + · rintro ⟨hu, s, hs, rfl⟩ + exact ⟨s, ⟨hu, hs⟩, rfl⟩ + · rintro ⟨s, ⟨hs1, hs2⟩, rfl⟩ + exact ⟨hs1, s, hs2, rfl⟩ + have hpreimage : (fun t : ℝ ↦ t + c) ⁻¹' + ((fun s : ℝ ↦ (s : Real.Angle)) ⁻¹' B ∩ Ioc c (c + T)) = + (fun t : ℝ ↦ ((t + c : ℝ) : Real.Angle)) ⁻¹' B ∩ Ioc 0 T := by + ext t + simp only [Set.mem_preimage, Set.mem_inter_iff, Set.mem_Ioc] + constructor + · rintro ⟨h1, h2, h3⟩ + exact ⟨h1, by linarith, by linarith⟩ + · rintro ⟨h1, h2, h3⟩ + exact ⟨h1, by linarith, by linarith⟩ + rw [Measure.restrict_apply hB, hset, + hagree _ (hpre.inter measurableSet_Ioc) Set.inter_subset_right, + withDensity_apply _ (hpre.inter measurableSet_Ioc), setLIntegral_comp_sub_right, hpreimage, + Measure.map_apply hmeas' hB, withDensity_apply _ hpre', + Measure.restrict_restrict hpre'] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Frame Products +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped Topology + +namespace MovingSofa + +/-- The normal and tangent projections of the positive vertex, with their Stieltjes measures. -/ +theorem exists_positiveVertex_frame_products + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) : + ∃ H P : RightContinuousIntervalBV a b, + (∀ t, H.toFun t = inner ℝ (edgeVertices K (((t : ℝ) : Real.Angle))).1 + (normalVector (((t : ℝ) : Real.Angle)))) ∧ + (∀ t, P.toFun t = inner ℝ (edgeVertices K (((t : ℝ) : Real.Angle))).1 + (tangentVector (((t : ℝ) : Real.Angle)))) ∧ + ∀ E : Set (Icc a b), MeasurableSet E → (∀ t ∈ E, a < (t : ℝ)) → + intervalStieltjesMeasure H E = + ∫ t in (Subtype.val : Icc a b → ℝ) '' E, + inner ℝ (edgeVertices K (t : Real.Angle)).1 (tangentVector (t : Real.Angle)) ∧ + intervalStieltjesMeasure P E = + (surfaceAreaMeasure K + ((fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E)).toReal - + ∫ t in (Subtype.val : Icc a b → ℝ) '' E, + inner ℝ (edgeVertices K (t : Real.Angle)).1 (normalVector (t : Real.Angle)) := by + obtain ⟨v, hv, hvm⟩ := positiveVertex_stieltjes_surface K a b hab hturn + choose n hn hnd using fun i : Fin 2 ↦ exists_normalVector_coordinate_intervalBV hab.le i + choose τ hτ hτd using fun i : Fin 2 ↦ exists_tangentVector_coordinate_intervalBV hab.le i + have hnc (i : Fin 2) : Continuous (n i).toFun := by + convert ((by + fin_cases i + · exact Real.Angle.continuous_cos + · exact Real.Angle.continuous_sin : + Continuous (fun u : Real.Angle ↦ normalVector u i))).comp + (Real.Angle.continuous_coe.comp continuous_subtype_val) using 1 + funext t + exact hn i t + have hτc (i : Fin 2) : Continuous (τ i).toFun := by + convert ((by + fin_cases i + · exact Real.Angle.continuous_sin.neg + · exact Real.Angle.continuous_cos : + Continuous (fun u : Real.Angle ↦ tangentVector u i))).comp + (Real.Angle.continuous_coe.comp continuous_subtype_val) using 1 + funext t + exact hτ i t + obtain ⟨H, hH, hHm⟩ := intervalStieltjes_inner_fin_two v n hnc + obtain ⟨P, hP, hPm⟩ := intervalStieltjes_inner_fin_two v τ hτc + refine ⟨H, P, ?_, ?_, ?_⟩ + · intro t + rw [hH] + simp_rw [hv, hn] + rw [PiLp.inner_apply] + simp only [Real.inner_apply] + · intro t + rw [hP] + simp_rw [hv, hτ] + rw [PiLp.inner_apply] + simp only [Real.inner_apply] + · intro E hE hEa + have hnormal := sum_intervalStieltjesIntegral_positiveVertex_normal + K hab hturn v hvm E hE hEa + have htangent := sum_intervalStieltjesIntegral_positiveVertex_tangent + K hab hturn v hvm E hE hEa + have hnfun (i : Fin 2) : (n i).toFun = + fun t : Icc a b ↦ normalVector (((t : ℝ) : Real.Angle)) i := + funext (hn i) + have hτfun (i : Fin 2) : (τ i).toFun = + fun t : Icc a b ↦ tangentVector (((t : ℝ) : Real.Angle)) i := + funext (hτ i) + have hnormal' : + (∑ i : Fin 2, intervalStieltjesIntegral (v i) (n i).toFun E) = 0 := by + simpa only [hnfun] using hnormal + have htangent' : + (∑ i : Fin 2, intervalStieltjesIntegral (v i) (τ i).toFun E) = + (surfaceAreaMeasure K + ((fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E)).toReal := by + simpa only [hτfun] using htangent + have hfinite : IsFiniteMeasure (volume.comap (Subtype.val : Icc a b → ℝ)) := + ⟨by + rw [comap_subtype_coe_apply measurableSet_Icc] + simp only [image_univ, Subtype.range_val] + exact measure_Icc_lt_top⟩ + let _ := hfinite + have hsmoothN (i : Fin 2) : + intervalStieltjesIntegral (n i) (v i).toFun E = + ∫ t in E, (v i).toFun t * tangentVector (((t : ℝ) : Real.Angle)) i + ∂volume.comap (Subtype.val : Icc a b → ℝ) := + intervalStieltjesIntegral_eq_integral_mul_of_density_bv hab.le (n i) (hnd i) + (v i).boundedVariation E hE + have hsmoothT (i : Fin 2) : + intervalStieltjesIntegral (τ i) (v i).toFun E = + ∫ t in E, (v i).toFun t * -normalVector (((t : ℝ) : Real.Angle)) i + ∂volume.comap (Subtype.val : Icc a b → ℝ) := + intervalStieltjesIntegral_eq_integral_mul_of_density_bv hab.le (τ i) (hτd i) + (v i).boundedVariation E hE + have hintN (i : Fin 2) : Integrable + (fun t : Icc a b ↦ (v i).toFun t * tangentVector (((t : ℝ) : Real.Angle)) i) + (volume.comap (Subtype.val : Icc a b → ℝ)) := by + apply (v i).boundedVariation.integrable.mul_bdd + · exact ((by + fin_cases i + · exact Real.Angle.continuous_sin.neg + · exact Real.Angle.continuous_cos : + Continuous (fun u : Real.Angle ↦ tangentVector u i))).comp + (Real.Angle.continuous_coe.comp continuous_subtype_val) |>.aestronglyMeasurable + · filter_upwards with t + fin_cases i + · simpa [tangentVector, frame] using Real.abs_sin_le_one (t : ℝ) + · simpa [tangentVector, frame] using Real.abs_cos_le_one (t : ℝ) + have hintT (i : Fin 2) : Integrable + (fun t : Icc a b ↦ (v i).toFun t * -normalVector (((t : ℝ) : Real.Angle)) i) + (volume.comap (Subtype.val : Icc a b → ℝ)) := by + apply (v i).boundedVariation.integrable.mul_bdd + · exact ((by + fin_cases i + · exact Real.Angle.continuous_cos.neg + · exact Real.Angle.continuous_sin.neg : + Continuous (fun u : Real.Angle ↦ -normalVector u i))).comp + (Real.Angle.continuous_coe.comp continuous_subtype_val) |>.aestronglyMeasurable + · filter_upwards with t + fin_cases i + · simpa [normalVector, frame] using Real.abs_cos_le_one (t : ℝ) + · simpa [normalVector, frame] using Real.abs_sin_le_one (t : ℝ) + let R := (Subtype.val : Icc a b → ℝ) '' E + have hR : MeasurableSet R := + (MeasurableEmbedding.subtype_coe measurableSet_Icc).measurableSet_image' hE + have hRsub : R ⊆ Icc a b := by + rintro x ⟨t, -, rfl⟩ + exact t.property + have hpre : {t : Icc a b | (t : ℝ) ∈ R} = E := + Set.preimage_image_eq E Subtype.val_injective + have hsubN : + (∑ i : Fin 2, ∫ t in E, + (v i).toFun t * tangentVector (((t : ℝ) : Real.Angle)) i + ∂volume.comap (Subtype.val : Icc a b → ℝ)) = + ∫ t in R, inner ℝ (edgeVertices K (t : Real.Angle)).1 + (tangentVector (t : Real.Angle)) := by + rw [Fin.sum_univ_two, ← integral_add (hintN 0).integrableOn (hintN 1).integrableOn] + have hsubtype := integral_subtype_preimage (μ := volume) (s := Icc a b) (t := R) + measurableSet_Icc hR + (fun t : ℝ ↦ inner ℝ (edgeVertices K (t : Real.Angle)).1 + (tangentVector (t : Real.Angle))) + rw [hpre, Measure.restrict_restrict_of_subset hRsub] at hsubtype + rw [← hsubtype] + apply integral_congr_ae + filter_upwards with t + rw [hv 0 t, hv 1 t] + simp [PiLp.inner_apply, Fin.sum_univ_two] + ring + have hsubT : + (∑ i : Fin 2, ∫ t in E, + (v i).toFun t * -normalVector (((t : ℝ) : Real.Angle)) i + ∂volume.comap (Subtype.val : Icc a b → ℝ)) = + -(∫ t in R, inner ℝ (edgeVertices K (t : Real.Angle)).1 + (normalVector (t : Real.Angle))) := by + rw [Fin.sum_univ_two, ← integral_add (hintT 0).integrableOn (hintT 1).integrableOn] + have hsubtype := integral_subtype_preimage (μ := volume) (s := Icc a b) (t := R) + measurableSet_Icc hR + (fun t : ℝ ↦ inner ℝ (edgeVertices K (t : Real.Angle)).1 + (normalVector (t : Real.Angle))) + rw [hpre, Measure.restrict_restrict_of_subset hRsub] at hsubtype + rw [← hsubtype, ← integral_neg] + apply integral_congr_ae + filter_upwards with t + rw [hv 0 t, hv 1 t] + simp [PiLp.inner_apply, Fin.sum_univ_two] + ring + constructor + · rw [hHm E hE, Finset.sum_add_distrib, hnormal'] + simp only [zero_add] + simpa only [hsmoothN] using hsubN + · rw [hPm E hE, Finset.sum_add_distrib, htangent'] + rw [show (∑ i : Fin 2, intervalStieltjesIntegral (τ i) (v i).toFun E) = + -(∫ t in R, inner ℝ (edgeVertices K (t : Real.Angle)).1 + (normalVector (t : Real.Angle))) by simpa only [hsmoothT] using hsubT] + ring + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Boundary +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped Topology + +namespace MovingSofa + +theorem positiveArm_stieltjes_surface (K : RightAngleCapSpace) : + ∃ f : RightContinuousIntervalBV 0 (Real.pi / 2), + (∀ t, f.toFun t = (tangentArmLengths K t).1.1) ∧ + ∀ E : Set (Set.Icc (0 : ℝ) (Real.pi / 2)), MeasurableSet E → + (∀ t ∈ E, 0 < (t : ℝ)) → + intervalStieltjesMeasure f E = + (∫ t in (fun s : Set.Icc (0 : ℝ) (Real.pi / 2) ↦ (s : ℝ)) '' E, + (tangentArmLengths K t).2.1) - + (surfaceAreaMeasure K.val + ((fun s : Set.Icc (0 : ℝ) (Real.pi / 2) ↦ ((s : ℝ) : Real.Angle)) '' E)).toReal := by + have hT : 0 < (Real.pi / 2) := by positivity + obtain ⟨HA, PA, hHA, hPA, hmA⟩ := exists_positiveVertex_frame_products K.val hT + (by linarith [Real.pi_pos]) + obtain ⟨HC, PC, hHC, hPC, hmC⟩ := exists_positiveVertex_frame_products K.val + (a := 0 + (Real.pi / 2)) (b := (Real.pi / 2) + (Real.pi / 2)) (by linarith) + (by linarith [Real.pi_pos]) + have hHC_support (t : Icc (0 + (Real.pi / 2)) ((Real.pi / 2) + (Real.pi / 2))) : + HC.toFun t = supportValue K.val (((t : ℝ) : Real.Angle)) := by + rw [hHC, (edgeVertices_fst_mem K.val (((t : ℝ) : Real.Angle))).2] + have hHCc : Continuous HC.toFun := by + convert (continuous_supportValue_real K.val).comp continuous_subtype_val using 1 + funext t + exact hHC_support t + obtain ⟨Hs, hHs, hHsm⟩ := exists_intervalBV_shift_from_zero hT.le HC hHCc + obtain ⟨f, hf, hfm⟩ := intervalStieltjes_linear_combination 0 (Real.pi / 2) Hs PA 1 (-1) + refine ⟨f, ?_, ?_⟩ + · intro t + rw [hf, hHs, hHC_support, hPA, (tangentArmLengths_positive_frame K t).1] + simp only [one_mul, neg_mul, one_mul] + ring + · intro E hE hE0 + change Set (Icc 0 (Real.pi / 2)) at E + let φ : Icc 0 (Real.pi / 2) → + Icc (0 + (Real.pi / 2)) ((Real.pi / 2) + (Real.pi / 2)) := fun t ↦ + ⟨(t : ℝ) + (Real.pi / 2), by constructor <;> linarith [t.property.1, t.property.2]⟩ + let R := (Subtype.val : Icc 0 (Real.pi / 2) → ℝ) '' E + have hR : MeasurableSet R := + (MeasurableEmbedding.subtype_coe measurableSet_Icc).measurableSet_image' hE + have hφE : MeasurableSet (φ '' E) := by + let ψ : Icc (0 + (Real.pi / 2)) ((Real.pi / 2) + (Real.pi / 2)) → + Icc 0 (Real.pi / 2) := fun t ↦ + ⟨(t : ℝ) - (Real.pi / 2), by + constructor + · linarith [t.property.1] + · linarith [t.property.2]⟩ + let e : Icc 0 (Real.pi / 2) ≃ₜ + Icc (0 + (Real.pi / 2)) ((Real.pi / 2) + (Real.pi / 2)) := + { toFun := φ + invFun := ψ + left_inv := fun x ↦ by apply Subtype.ext; simp [φ, ψ] + right_inv := fun x ↦ by apply Subtype.ext; simp [φ, ψ] + continuous_toFun := (continuous_subtype_val.add_const (Real.pi / 2)).subtype_mk _ + continuous_invFun := (continuous_subtype_val.sub continuous_const).subtype_mk _ } + exact e.measurableEmbedding.measurableSet_image' hE + have hφleft : ∀ t ∈ φ '' E, 0 + (Real.pi / 2) < (t : ℝ) := by + rintro t ⟨s, hs, rfl⟩ + dsimp [φ] + linarith [hE0 s hs] + have hreal : (Subtype.val : + Icc (0 + (Real.pi / 2)) ((Real.pi / 2) + (Real.pi / 2)) → ℝ) '' (φ '' E) = + (fun x : ℝ ↦ x + (Real.pi / 2)) '' R := by + ext x + constructor + · rintro ⟨-, ⟨s, hs, rfl⟩, rfl⟩ + exact ⟨s, ⟨s, hs, rfl⟩, rfl⟩ + · rintro ⟨-, ⟨s, hs, rfl⟩, rfl⟩ + exact ⟨φ s, ⟨s, hs, rfl⟩, rfl⟩ + have hHs_measure : intervalStieltjesMeasure Hs E = + ∫ t in R, inner ℝ + (edgeVertices K.val (((t + (Real.pi / 2) : ℝ) : Real.Angle))).1 + (tangentVector (((t + (Real.pi / 2) : ℝ) : Real.Angle))) := by + rw [hHsm E hE, (hmC (φ '' E) hφE hφleft).1, hreal, + integral_image_add_right_eq (Real.pi / 2) R hR] + have hPA_measure := (hmA E hE hE0).2 + have hlin : intervalStieltjesMeasure f E = + intervalStieltjesMeasure Hs E - intervalStieltjesMeasure PA E := by + have := congrArg (fun m : SignedMeasure (Icc 0 (Real.pi / 2)) ↦ m E) hfm + rw [add_apply, _root_.smul_apply, _root_.smul_apply] at this + simpa only [smul_eq_mul, one_mul, neg_one_mul, sub_eq_add_neg] using this + change intervalStieltjesMeasure f E = _ + rw [hlin, hHs_measure, hPA_measure] + have hAint : IntegrableOn + (fun t : ℝ ↦ inner ℝ (edgeVertices K.val (t : Real.Angle)).1 + (normalVector (t : Real.Angle))) R := by + have hAIcc := HA.integrableOn_Icc_of_eq + (fun t : ℝ ↦ inner ℝ (edgeVertices K.val (t : Real.Angle)).1 + (normalVector (t : Real.Angle))) (fun t ↦ (hHA t).symm) + apply hAIcc.mono_set + rintro x ⟨t, -, rfl⟩ + exact t.property + have hCint : IntegrableOn + (fun t : ℝ ↦ inner ℝ + (edgeVertices K.val (((t + (Real.pi / 2) : ℝ) : Real.Angle))).1 + (tangentVector (((t + (Real.pi / 2) : ℝ) : Real.Angle)))) R := by + let q : ℝ → ℝ := fun s ↦ inner ℝ (edgeVertices K.val (s : Real.Angle)).1 + (tangentVector (s : Real.Angle)) + have hqIcc := PC.integrableOn_Icc_of_eq q (fun t ↦ (hPC t).symm) + have hqshift : IntegrableOn q + ((fun x : ℝ ↦ x + Real.pi / 2) '' R) := by + apply hqIcc.mono_set + rintro x ⟨-, ⟨t, -, rfl⟩, rfl⟩ + constructor <;> linarith [t.property.1, t.property.2] + exact (integrableOn_comp_add_right_iff (Real.pi / 2) R hR q).2 hqshift + rw [show (∫ t in R, inner ℝ + (edgeVertices K.val (((t + Real.pi / 2 : ℝ) : Real.Angle))).1 + (tangentVector (((t + Real.pi / 2 : ℝ) : Real.Angle)))) - + ((surfaceAreaMeasure K.val + ((fun t : Icc 0 (Real.pi / 2) ↦ ((t : ℝ) : Real.Angle)) '' E)).toReal - + ∫ t in R, inner ℝ (edgeVertices K.val (t : Real.Angle)).1 + (normalVector (t : Real.Angle))) = + ((∫ t in R, inner ℝ + (edgeVertices K.val (((t + Real.pi / 2 : ℝ) : Real.Angle))).1 + (tangentVector (((t + Real.pi / 2 : ℝ) : Real.Angle)))) + + ∫ t in R, inner ℝ (edgeVertices K.val (t : Real.Angle)).1 + (normalVector (t : Real.Angle))) - + (surfaceAreaMeasure K.val + ((fun t : Icc 0 (Real.pi / 2) ↦ ((t : ℝ) : Real.Angle)) '' E)).toReal by ring] + rw [← integral_add hCint hAint] + apply congrArg (fun z : ℝ ↦ z - + (surfaceAreaMeasure K.val + ((fun s : Icc (0 : ℝ) (Real.pi / 2) ↦ ((s : ℝ) : Real.Angle)) '' E)).toReal) + apply integral_congr_ae + filter_upwards with t + rw [(tangentArmLengths_positive_frame K t).2] + ring + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Analysis / Surface Measure / Linearity +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory +open scoped unitInterval + +namespace MovingSofa + +private theorem intervalStieltjesMeasure_congr {a b : ℝ} + (f g : RightContinuousIntervalBV a b) (h : ∀ x, f.toFun x = g.toFun x) : + intervalStieltjesMeasure f = intervalStieltjesMeasure g := by + have hfun : f.toFun = g.toFun := funext h + cases f with + | mk ff hfb hfr => + cases g with + | mk gf hgb hgr => + simp only at hfun ⊢ + subst gf + rfl + +/-- Planar surface area measures commute with convex combinations. -/ +theorem surfaceAreaMeasure_convexBodyCombination (t : I) + (K L : ConvexBody Point) : + surfaceAreaMeasure (convexBodyCombination t K L) = + ENNReal.ofReal (1 - (t : ℝ)) • surfaceAreaMeasure K + + ENNReal.ofReal (t : ℝ) • surfaceAreaMeasure L := by + let r : ℝ := 1 - (t : ℝ) + let s : ℝ := t + let M := convexBodyCombination t K L + have hvertex (u : Real.Angle) : + (edgeVertices M u).1 = r • (edgeVertices K u).1 + s • (edgeVertices L u).1 := + (edgeVertices_convexBodyCombination t K L u).1 + have hab : (0 : ℝ) < 2 * Real.pi := mul_pos (by norm_num) Real.pi_pos + have hturn : 2 * Real.pi ≤ (0 : ℝ) + 2 * Real.pi := by simp + obtain ⟨fM, hfM, hmM⟩ := positiveVertex_stieltjes_surface M 0 (2 * Real.pi) hab hturn + obtain ⟨fK, hfK, hmK⟩ := positiveVertex_stieltjes_surface K 0 (2 * Real.pi) hab hturn + obtain ⟨fL, hfL, hmL⟩ := positiveVertex_stieltjes_surface L 0 (2 * Real.pi) hab hturn + have hmeasure (i : Fin 2) : intervalStieltjesMeasure (fM i) = + r • intervalStieltjesMeasure (fK i) + s • intervalStieltjesMeasure (fL i) := by + obtain ⟨f, hfun, hfm⟩ := intervalStieltjes_linear_combination + 0 (2 * Real.pi) (fK i) (fL i) r s + have heq : intervalStieltjesMeasure f = intervalStieltjesMeasure (fM i) := by + apply intervalStieltjesMeasure_congr + intro x + rw [hfun, hfK, hfL, hfM] + have hv := congrArg (fun p : Point ↦ p i) + (hvertex (((x : Set.Icc (0 : ℝ) (2 * Real.pi)) : ℝ) : Real.Angle)) + simpa [r, s] using hv.symm + rwa [← heq] + ext A hA + let E : Set (Set.Icc (0 : ℝ) (2 * Real.pi)) := + {x | 0 < (x : ℝ) ∧ (((x : ℝ) : Real.Angle)) ∈ A} + have hE : MeasurableSet E := by + exact (measurableSet_Ioi.preimage measurable_subtype_coe).inter + (hA.preimage (Real.Angle.continuous_coe.comp continuous_subtype_val).measurable) + have hEa : ∀ x ∈ E, 0 < (x : ℝ) := fun _ hx ↦ hx.1 + have himage : (fun x : Set.Icc (0 : ℝ) (2 * Real.pi) ↦ + (((x : ℝ) : Real.Angle))) '' E = A := by + ext u + constructor + · rintro ⟨x, hx, rfl⟩ + exact hx.2 + · intro hu + let _ : Fact (0 < 2 * Real.pi) := ⟨hab⟩ + let x := AddCircle.equivIoc (2 * Real.pi) 0 u + have hx : (x : ℝ) ∈ Set.Ioc (0 : ℝ) (2 * Real.pi) := by simpa using x.property + let y : Set.Icc (0 : ℝ) (2 * Real.pi) := ⟨x, hx.1.le, hx.2⟩ + have hxu : (((x : ℝ) : Real.Angle)) = u := AddCircle.coe_equivIoc + refine ⟨y, ⟨hx.1, ?_⟩, ?_⟩ + · simpa [y, hxu] using hu + · simpa [y] using hxu + have hmassM := sum_intervalStieltjesIntegral_positiveVertex_tangent + M hab hturn fM hmM E hE hEa + have hmassK := sum_intervalStieltjesIntegral_positiveVertex_tangent + K hab hturn fK hmK E hE hEa + have hmassL := sum_intervalStieltjesIntegral_positiveVertex_tangent + L hab hturn fL hmL E hE hEa + rw [himage] at hmassM hmassK hmassL + have hstieltjes (i : Fin 2) : + intervalStieltjesIntegral (fM i) + (fun x ↦ tangentVector ((((x : Set.Icc (0 : ℝ) (2 * Real.pi)) : ℝ) : + Real.Angle)) i) E = + r * intervalStieltjesIntegral (fK i) + (fun x ↦ tangentVector ((((x : Set.Icc (0 : ℝ) (2 * Real.pi)) : ℝ) : + Real.Angle)) i) E + + s * intervalStieltjesIntegral (fL i) + (fun x ↦ tangentVector ((((x : Set.Icc (0 : ℝ) (2 * Real.pi)) : ℝ) : + Real.Angle)) i) E := by + have hq : Continuous (fun x : Set.Icc (0 : ℝ) (2 * Real.pi) ↦ + tangentVector (((x : ℝ) : Real.Angle)) i) := by + have hi : Continuous (fun u : Real.Angle ↦ tangentVector u i) := by + fin_cases i + · exact Real.Angle.continuous_sin.neg + · exact Real.Angle.continuous_cos + exact hi.comp (Real.Angle.continuous_coe.comp continuous_subtype_val) + have hrint : (r • VectorMeasure.restrict (intervalStieltjesMeasure (fK i)) E).Integrable + (fun x ↦ tangentVector (((x : ℝ) : Real.Angle)) i) := + ((fK i).integrable_of_continuous hq).integrableOn.smul_vectorMeasure r + have hsint : (s • VectorMeasure.restrict (intervalStieltjesMeasure (fL i)) E).Integrable + (fun x ↦ tangentVector (((x : ℝ) : Real.Angle)) i) := + ((fL i).integrable_of_continuous hq).integrableOn.smul_vectorMeasure s + unfold intervalStieltjesIntegral + rw [hmeasure i, VectorMeasure.restrict_add, VectorMeasure.restrict_smul, + VectorMeasure.restrict_smul, VectorMeasure.integral_add_vectorMeasure hrint hsint, + VectorMeasure.integral_smul_vectorMeasure, VectorMeasure.integral_smul_vectorMeasure] + rfl + have hreal : (surfaceAreaMeasure M A).toReal = + r * (surfaceAreaMeasure K A).toReal + s * (surfaceAreaMeasure L A).toReal := by + rw [← hmassM, ← hmassK, ← hmassL, Fin.sum_univ_two] + rw [hstieltjes 0, hstieltjes 1] + simp only [Fin.sum_univ_two] + ring + let _ : IsFiniteMeasure (surfaceAreaMeasure M) := (surfaceAreaMeasure_face_union M).1 + let _ : IsFiniteMeasure (surfaceAreaMeasure K) := (surfaceAreaMeasure_face_union K).1 + let _ : IsFiniteMeasure (surfaceAreaMeasure L) := (surfaceAreaMeasure_face_union L).1 + have hKtop : surfaceAreaMeasure K A ≠ ⊤ := measure_ne_top _ A + have hLtop : surfaceAreaMeasure L A ≠ ⊤ := measure_ne_top _ A + have hright : + (ENNReal.ofReal (1 - (t : ℝ)) • surfaceAreaMeasure K + + ENNReal.ofReal (t : ℝ) • surfaceAreaMeasure L) A ≠ ⊤ := by + rw [Measure.add_apply] + simp only [Measure.smul_apply] + exact ENNReal.add_ne_top.mpr ⟨ENNReal.mul_ne_top ENNReal.ofReal_ne_top hKtop, + ENNReal.mul_ne_top ENNReal.ofReal_ne_top hLtop⟩ + apply (ENNReal.toReal_eq_toReal_iff' (measure_ne_top _ A) hright).mp + rw [show convexBodyCombination t K L = M from rfl, hreal] + simp only [Measure.add_apply, Measure.smul_apply, smul_eq_mul] + rw [ENNReal.toReal_add + (ENNReal.mul_ne_top ENNReal.ofReal_ne_top hKtop) + (ENNReal.mul_ne_top ENNReal.ofReal_ne_top hLtop), + ENNReal.toReal_mul, ENNReal.toReal_mul] + rw [ENNReal.toReal_ofReal (sub_nonneg.mpr t.2.2), ENNReal.toReal_ofReal t.2.1] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Angular densities of the opposite surface measure + +The opposite surface measure `(oppositeSurfaceData K).1` is the surface-area measure of `K` +translated by `π`, so it reads the *negative* vertex data of `K` at the angle `s` as the positive +vertex data at `π + s`. Transporting `surfaceAreaMeasure_angleImage_eq_setLIntegral` along that +translation identifies it with a Lebesgue density whenever the positive vertex of `K` at normal +`π + s` is traced by a differentiable curve `F` with derivative `-(g s) • tangentVector s` +(`oppositeSurfaceData_angleImage_eq_withDensity`); the extra minus sign is exactly +`tangentVector_add_pi`. + +The two variants `oppositeSurfaceData_angleImage_eq_withDensity_of_openLeft` and +`…_of_openRight` drop the vertex information at one endpoint of the window by exhausting the +window from the other side with `measure_angleImage_eq_of_iUnion`. +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- An Archimedean step used to exhaust an open interval endpoint. -/ +private theorem exists_nat_div_add_two_lt {d e : ℝ} (he : 0 < e) : + ∃ n : ℕ, d / (n + 2) < e := by + obtain ⟨n, hn⟩ := exists_nat_gt (d / e) + refine ⟨n, ?_⟩ + have hpos : (0 : ℝ) < n + 2 := by positivity + rw [div_lt_iff₀ hpos] + have h : d / e < n + 2 := by linarith + rw [div_lt_iff₀ he] at h + linarith + +/-- The angular projection reads the opposite surface measure through the `π`-shifted window. -/ +theorem oppositeSurfaceData_angleImage (K : ConvexBody Point) {S : Set ℝ} + (hS : MeasurableSet ((fun s : ℝ ↦ (s : Real.Angle)) '' S)) : + (oppositeSurfaceData K).1 ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + surfaceAreaMeasure K + ((fun s : ℝ ↦ (s : Real.Angle)) '' ((fun s : ℝ ↦ s + Real.pi) '' S)) := by + have hm : Measurable fun t : Real.Angle ↦ t - ((Real.pi : ℝ) : Real.Angle) := + (continuous_id.sub continuous_const).measurable + have hpre : (fun t : Real.Angle ↦ t - ((Real.pi : ℝ) : Real.Angle)) ⁻¹' + ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + (fun s : ℝ ↦ (s : Real.Angle)) '' ((fun s : ℝ ↦ s + Real.pi) '' S) := by + ext x + simp only [Set.mem_preimage, Set.mem_image] + constructor + · rintro ⟨s, hs, hsx⟩ + refine ⟨s + Real.pi, ⟨s, hs, rfl⟩, ?_⟩ + rw [Real.Angle.coe_add, hsx] + abel + · rintro ⟨r, ⟨s, hs, rfl⟩, rfl⟩ + refine ⟨s, hs, ?_⟩ + rw [Real.Angle.coe_add] + abel + change Measure.map (fun t : Real.Angle ↦ t - ((Real.pi : ℝ) : Real.Angle)) + (surfaceAreaMeasure K) _ = _ + rw [Measure.map_apply hm hS, hpre] + +/-- Suppose that on the angular window `(π + a, π + b]`, of at most one turn, the positive vertex +of `K` at normal `π + s` is traced by a curve `F` with derivative `-(g s) • v_s`, where `g` is +continuous and nonnegative. Then the opposite surface measure of the angular image of a +measurable `S ⊆ (a, b]` is the weighted Lebesgue measure of `S` for any weight `f` agreeing with +`g` on the open window. -/ +theorem oppositeSurfaceData_angleImage_eq_withDensity (K : ConvexBody Point) {a b : ℝ} + (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) (F : ℝ → Point) (f g : ℝ → ℝ) + (hF : ∀ s, HasDerivAt F (-(g s) • tangentVector (s : Real.Angle)) s) (hg : Continuous g) + (hgnn : ∀ s ∈ Set.Ioc a b, 0 ≤ g s) (hfg : ∀ s ∈ Set.Ioo a b, f s = g s) + (hvertex : ∀ s ∈ Set.Icc a b, (edgeVertices K ((Real.pi + s : ℝ) : Real.Angle)).1 = F s) + {S : Set ℝ} (hS : MeasurableSet S) (hSsub : S ⊆ Set.Ioc a b) : + (oppositeSurfaceData K).1 ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + volume.withDensity (fun s ↦ ENNReal.ofReal (f s)) S := by + have hemb : MeasurableEmbedding fun s : ℝ ↦ s + Real.pi := + (MeasurableEquiv.addRight Real.pi).measurableEmbedding + have himg : MeasurableSet ((fun s : ℝ ↦ (s : Real.Angle)) '' S) := + Real.Angle.measurableSet_image_of_subset_Ioc hturn hS hSsub + have hSmeas : MeasurableSet ((fun s : ℝ ↦ s + Real.pi) '' S) := hemb.measurableSet_image' hS + have hSsub' : (fun s : ℝ ↦ s + Real.pi) '' S ⊆ Set.Ioc (a + Real.pi) (b + Real.pi) := by + rintro r ⟨s, hs, rfl⟩ + exact ⟨by linarith [(hSsub hs).1], by linarith [(hSsub hs).2]⟩ + -- the vertex curve of the shifted window and its derivative + have hshift : ∀ r : ℝ, tangentVector ((r - Real.pi : ℝ) : Real.Angle) = + -tangentVector (r : Real.Angle) := by + intro r + have h := tangentVector_add_pi (r - Real.pi) + rw [show r - Real.pi + Real.pi = r from by ring] at h + rw [h, neg_neg] + have hF' : ∀ r : ℝ, HasDerivAt (fun r : ℝ ↦ F (r - Real.pi)) + (g (r - Real.pi) • tangentVector (r : Real.Angle)) r := by + intro r + have h := (hF (r - Real.pi)).scomp r ((hasDerivAt_id r).sub_const Real.pi) + rw [hshift r] at h + refine h.congr_deriv ?_ + module + have hvertex' : ∀ r ∈ Set.Icc (a + Real.pi) (b + Real.pi), + (edgeVertices K (r : Real.Angle)).1 = F (r - Real.pi) := by + intro r hr + have h := hvertex (r - Real.pi) ⟨by linarith [hr.1], by linarith [hr.2]⟩ + rw [show Real.pi + (r - Real.pi) = r from by ring] at h + exact h + have hmain := surfaceAreaMeasure_angleImage_eq_setLIntegral K (a := a + Real.pi) + (b := b + Real.pi) (by linarith) (by linarith) (fun r ↦ F (r - Real.pi)) + (fun r ↦ g (r - Real.pi)) hF' (hg.comp (continuous_id.sub continuous_const)) + (fun r hr ↦ hgnn (r - Real.pi) ⟨by linarith [hr.1], by linarith [hr.2]⟩) hvertex' + hSmeas hSsub' + -- change variables back to the unshifted window + rw [oppositeSurfaceData_angleImage K himg, hmain, + setLIntegral_comp_sub_right (fun s ↦ ENNReal.ofReal (g s)) Real.pi, + hemb.injective.preimage_image, withDensity_apply _ hS] + -- the two densities agree off the right endpoint + refine (lintegral_congr_ae ?_).symm + have hne : ∀ᵐ s ∂volume.restrict S, s ∈ Set.Ioo a b := by + refine ae_restrict_mem_of_countable_diff hS (Set.countable_singleton b) ?_ + rintro s ⟨hs, hsA⟩ + have h := hSsub hs + rcases eq_or_lt_of_le h.2 with heq | hlt + · exact heq + · exact absurd (Set.mem_Ioo.2 ⟨h.1, hlt⟩) hsA + filter_upwards [hne] with s hs + rw [hfg s hs] + +/-- The variant of `oppositeSurfaceData_angleImage_eq_withDensity` whose left endpoint carries no +vertex information: the window is exhausted from the right. -/ +theorem oppositeSurfaceData_angleImage_eq_withDensity_of_openLeft (K : ConvexBody Point) + {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) (F : ℝ → Point) + (f g : ℝ → ℝ) + (hF : ∀ s, HasDerivAt F (-(g s) • tangentVector (s : Real.Angle)) s) (hg : Continuous g) + (hgnn : ∀ s ∈ Set.Ioc a b, 0 ≤ g s) (hfg : ∀ s ∈ Set.Ioo a b, f s = g s) + (hvertex : ∀ s ∈ Set.Ioc a b, (edgeVertices K ((Real.pi + s : ℝ) : Real.Angle)).1 = F s) + {S : Set ℝ} (hS : MeasurableSet S) (hSsub : S ⊆ Set.Ioc a b) : + (oppositeSurfaceData K).1 ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + volume.withDensity (fun s ↦ ENNReal.ofReal (f s)) S := by + have hba : 0 < b - a := by linarith + have hpos : ∀ n : ℕ, 0 < (b - a) / (n + 2) := fun n ↦ by positivity + have hlt : ∀ n : ℕ, a + (b - a) / (n + 2) < b := by + intro n + have hn : (0 : ℝ) ≤ n := Nat.cast_nonneg n + have h1 : (b - a) / ((n : ℝ) + 2) ≤ (b - a) / 2 := by gcongr; linarith + linarith + refine measure_angleImage_eq_of_iUnion (μ := (oppositeSurfaceData K).1) + (J := fun n : ℕ ↦ Set.Ioc (a + (b - a) / (n + 2)) b) + (ν := volume.withDensity (fun s ↦ ENNReal.ofReal (f s))) ?_ (fun n ↦ measurableSet_Ioc) ?_ + S hS ?_ + · intro m n hmn + refine Set.Ioc_subset_Ioc ?_ le_rfl + have hmn' : ((m : ℝ)) ≤ n := Nat.cast_le.2 hmn + have hm : (0 : ℝ) ≤ m := Nat.cast_nonneg m + have h1 : (b - a) / ((n : ℝ) + 2) ≤ (b - a) / ((m : ℝ) + 2) := by gcongr + linarith + · intro n T hT hTsub + refine oppositeSurfaceData_angleImage_eq_withDensity K (hlt n) (by linarith [hpos n]) + F f g hF hg (fun s hs ↦ hgnn s ⟨by linarith [hs.1, hpos n], hs.2⟩) + (fun s hs ↦ hfg s ⟨by linarith [hs.1, hpos n], hs.2⟩) + (fun s hs ↦ hvertex s ⟨by linarith [hs.1, hpos n], hs.2⟩) hT hTsub + · intro s hs + obtain ⟨n, hn⟩ := exists_nat_div_add_two_lt (d := b - a) (e := s - a) + (by linarith [(hSsub hs).1]) + exact Set.mem_iUnion.2 ⟨n, ⟨by linarith, (hSsub hs).2⟩⟩ + +/-- The variant of `oppositeSurfaceData_angleImage_eq_withDensity` whose right endpoint carries no +vertex information: the window is exhausted from the left. -/ +theorem oppositeSurfaceData_angleImage_eq_withDensity_of_openRight (K : ConvexBody Point) + {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) (F : ℝ → Point) + (f g : ℝ → ℝ) + (hF : ∀ s, HasDerivAt F (-(g s) • tangentVector (s : Real.Angle)) s) (hg : Continuous g) + (hgnn : ∀ s ∈ Set.Ioo a b, 0 ≤ g s) (hfg : ∀ s ∈ Set.Ioo a b, f s = g s) + (hvertex : ∀ s ∈ Set.Ico a b, (edgeVertices K ((Real.pi + s : ℝ) : Real.Angle)).1 = F s) + {S : Set ℝ} (hS : MeasurableSet S) (hSsub : S ⊆ Set.Ioo a b) : + (oppositeSurfaceData K).1 ((fun s : ℝ ↦ (s : Real.Angle)) '' S) = + volume.withDensity (fun s ↦ ENNReal.ofReal (f s)) S := by + have hba : 0 < b - a := by linarith + have hpos : ∀ n : ℕ, 0 < (b - a) / (n + 2) := fun n ↦ by positivity + have hlt : ∀ n : ℕ, a < b - (b - a) / (n + 2) := by + intro n + have hn : (0 : ℝ) ≤ n := Nat.cast_nonneg n + have h1 : (b - a) / ((n : ℝ) + 2) ≤ (b - a) / 2 := by gcongr; linarith + linarith + refine measure_angleImage_eq_of_iUnion (μ := (oppositeSurfaceData K).1) + (J := fun n : ℕ ↦ Set.Ioc a (b - (b - a) / (n + 2))) + (ν := volume.withDensity (fun s ↦ ENNReal.ofReal (f s))) ?_ (fun n ↦ measurableSet_Ioc) ?_ + S hS ?_ + · intro m n hmn + refine Set.Ioc_subset_Ioc le_rfl ?_ + have hmn' : ((m : ℝ)) ≤ n := Nat.cast_le.2 hmn + have hm : (0 : ℝ) ≤ m := Nat.cast_nonneg m + have h1 : (b - a) / ((n : ℝ) + 2) ≤ (b - a) / ((m : ℝ) + 2) := by gcongr + linarith + · intro n T hT hTsub + refine oppositeSurfaceData_angleImage_eq_withDensity K (hlt n) (by linarith [hpos n]) + F f g hF hg (fun s hs ↦ hgnn s ⟨hs.1, by linarith [hs.2, hpos n]⟩) + (fun s hs ↦ hfg s ⟨hs.1, by linarith [hs.2, hpos n]⟩) + (fun s hs ↦ hvertex s ⟨hs.1, by linarith [hs.2, hpos n]⟩) hT hTsub + · intro s hs + obtain ⟨n, hn⟩ := exists_nat_div_add_two_lt (d := b - a) (e := b - s) + (by linarith [(hSsub hs).2]) + exact Set.mem_iUnion.2 ⟨n, ⟨(hSsub hs).1, by linarith⟩⟩ + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Convex.SupportArea`. +* `Convex.Linearity`. +* `Convex.MixedArea`. +* `Convex.TangentLinePath`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The area of a convex body as a support-function surface integral + +The planar area of a nonempty compact convex set is one half of the integral of its support +function against its surface area measure. The identity is proved for finite convex hulls by +fanning the polygon into triangles over an interior base point, and then transported to an +arbitrary body by polygon approximation and weak convergence of surface measures. The same +integral, taken with the two bodies decoupled, is convex-bilinear. +-/ + +@[expose] public section + +noncomputable section + +open scoped unitInterval Pointwise Topology +open MeasureTheory Filter + +namespace MovingSofa + +private theorem one_lt_finrank_point : 1 < Module.finrank ℝ Point := by + simp [Point] + +private theorem normalVector_ne_zero (t : Real.Angle) : normalVector t ≠ 0 := by + intro h + have hone := norm_normalVector t + rw [h, norm_zero] at hone + exact zero_ne_one hone + +/-- The ordered endpoints of an exposed edge differ by its length in the positive tangent +direction. -/ +theorem edgeVertices_fst_sub_snd_eq_dist_smul_tangentVector + (K : ConvexBody Point) (t : Real.Angle) : + (edgeVertices K t).1 - (edgeVertices K t).2 = + dist (edgeVertices K t).1 (edgeVertices K t).2 • tangentVector t := by + let a := (edgeVertices K t).1 + let b := (edgeVertices K t).2 + let r := inner ℝ (a - b) (tangentVector t) + have hnormal : inner ℝ (a - b) (normalVector t) = 0 := by + dsimp only [a, b] + rw [inner_sub_left] + rw [(edgeVertices_fst_mem K t).2, (edgeVertices_snd_mem K t).2, sub_self] + have hdecomp := inner_normalVector_smul_add_inner_tangentVector_smul (a - b) t + have hvec : r • tangentVector t = a - b := by + simpa only [r, hnormal, zero_smul, zero_add] using hdecomp + have hr : 0 ≤ r := by + let S : Set ℝ := + (fun p ↦ inner ℝ p (tangentVector t)) '' exposedEdge K t + simp only [r, inner_sub_left, a, b, inner_edgeVertices_fst_tangent, + inner_edgeVertices_snd_tangent] + have hcompact : IsCompact S := + (isCompact_exposedEdge K t).image (continuous_id.inner continuous_const) + apply sub_nonneg.mpr + simpa only [S] using + (csInf_le_csSup (s := S) ((exposedEdge_nonempty K t).image _) + (hb := hcompact.bddBelow) (ha := hcompact.bddAbove)) + have htangent : ‖tangentVector t‖ = 1 := by + induction t using Real.Angle.induction_on with + | _ t => + rw [← sq_eq_sq₀ (norm_nonneg _) (by norm_num : (0 : ℝ) ≤ 1)] + rw [EuclideanSpace.norm_sq_eq] + simp [tangentVector, frame, Fin.sum_univ_two] + have hnorm := congrArg norm hvec + have hre : r = dist a b := by + simpa only [norm_smul, htangent, mul_one, Real.norm_eq_abs, + abs_of_nonneg hr, dist_eq_norm] using hnorm + simpa only [a, b, ← hre] using hvec.symm + +/-- The half support integral is convex-bilinear in the two body arguments. -/ +theorem supportIntegral_bilinear : + IsConvexBilinear convexBodyCombination convexBodyCombination realCombination + (fun K L : ConvexBody Point ↦ (1 / 2 : ℝ) * ∫ t, + supportValue K t ∂surfaceAreaMeasure L) := by + have hcont (K : ConvexBody Point) : Continuous (fun u : Real.Angle ↦ supportValue K u) := + (compactSet_support_continuity K K K.nonempty K.isCompact K.nonempty K.isCompact).2.2.1 + have hint (K L : ConvexBody Point) : + Integrable (fun u : Real.Angle ↦ supportValue K u) (surfaceAreaMeasure L) := by + let _ : IsFiniteMeasure (surfaceAreaMeasure L) := (surfaceAreaMeasure_face_union L).1 + exact (hcont K).integrable_of_hasCompactSupport + (isCompact_univ.of_isClosed_subset isClosed_closure (Set.subset_univ _)) + constructor + · intro K t L M + have hmeasure := surfaceAreaMeasure_convexBodyCombination t L M + change (1 / 2 : ℝ) * (∫ u, supportValue K u ∂surfaceAreaMeasure + (convexBodyCombination t L M)) = _ + simp only [realCombination] + rw [hmeasure, integral_add_measure + ((hint K L).smul_measure ENNReal.ofReal_ne_top) + ((hint K M).smul_measure ENNReal.ofReal_ne_top)] + simp only [integral_smul_measure, ENNReal.toReal_ofReal, + sub_nonneg.mpr (show (t : ℝ) ≤ 1 from t.property.2), t.property.1] + ring + · intro L t K M + change (1 / 2 : ℝ) * (∫ u, supportValue (convexBodyCombination t K M) u + ∂surfaceAreaMeasure L) = _ + simp only [realCombination] + have hfun : (fun u : Real.Angle ↦ supportValue (convexBodyCombination t K M) u) = + fun u ↦ (1 - (t : ℝ)) * supportValue K u + (t : ℝ) * supportValue M u := by + funext u + exact supportValue_convexBodyCombination t K M u + rw [hfun, integral_add ((hint K L).const_mul _) ((hint M L).const_mul _), + integral_const_mul, integral_const_mul] + ring + +/-- The mixed support integral is Hausdorff continuous in the two bodies simultaneously. -/ +theorem tendsto_integral_supportValue_of_hausdorff_pair + (P Q : ℕ → ConvexBody Point) (K L : ConvexBody Point) + (hPK : Tendsto (fun n ↦ Metric.hausdorffDist (P n : Set Point) (K : Set Point)) + atTop (𝓝 0)) + (hQL : Tendsto (fun n ↦ Metric.hausdorffDist (Q n : Set Point) (L : Set Point)) + atTop (𝓝 0)) : + Tendsto (fun n ↦ ∫ u, supportValue (P n) u ∂surfaceAreaMeasure (Q n)) atTop + (𝓝 (∫ u, supportValue K u ∂surfaceAreaMeasure L)) := by + have hcont (M : ConvexBody Point) : Continuous (supportValue M) := + (compactSet_support_continuity M M M.nonempty M.isCompact M.nonempty M.isCompact).2.2.1 + have hint (M N : ConvexBody Point) : Integrable (supportValue M) (surfaceAreaMeasure N) := by + let _ : IsFiniteMeasure (surfaceAreaMeasure N) := (surfaceAreaMeasure_face_union N).1 + exact (hcont M).integrable_of_hasCompactSupport + (isCompact_univ.of_isClosed_subset isClosed_closure (Set.subset_univ _)) + have hmass : Tendsto (fun n ↦ (surfaceAreaMeasure (Q n)).real Set.univ) atTop + (𝓝 ((surfaceAreaMeasure L).real Set.univ)) := by + simpa using surfaceAreaMeasure_weak_continuity Q L hQL (fun _ ↦ (1 : ℝ)) continuous_const + have hbound (n : ℕ) : + ‖∫ u, supportValue (P n) u - supportValue K u ∂surfaceAreaMeasure (Q n)‖ ≤ + Metric.hausdorffDist (P n : Set Point) (K : Set Point) * + (surfaceAreaMeasure (Q n)).real Set.univ := by + let _ : IsFiniteMeasure (surfaceAreaMeasure (Q n)) := + (surfaceAreaMeasure_face_union (Q n)).1 + apply norm_integral_le_of_norm_le_const + filter_upwards [] with u + simpa only [Real.norm_eq_abs, vectorSupport, supportValue] using + (compactSet_support_continuity (P n) K (P n).nonempty + (P n).isCompact K.nonempty K.isCompact).2.1 (normalVector u) (norm_normalVector u) + have herror : Tendsto + (fun n ↦ ∫ u, supportValue (P n) u - supportValue K u ∂surfaceAreaMeasure (Q n)) + atTop (𝓝 0) := by + apply tendsto_zero_iff_norm_tendsto_zero.mpr + exact squeeze_zero (fun _ ↦ norm_nonneg _) hbound (by simpa using hPK.mul hmass) + have hfixed := surfaceAreaMeasure_weak_continuity Q L hQL (supportValue K) (hcont K) + have hsum := herror.add hfixed + simp only [zero_add] at hsum + convert hsum using 1 + funext n + rw [integral_sub (hint (P n) (Q n)) (hint K (Q n)), sub_add_cancel] + +/-- The support integral of a body against its own surface measure is Hausdorff continuous. -/ +theorem tendsto_integral_supportValue_of_hausdorff + (K : ℕ → ConvexBody Point) (L : ConvexBody Point) + (hlim : Tendsto (fun n ↦ Metric.hausdorffDist (K n : Set Point) (L : Set Point)) + atTop (𝓝 0)) : + Tendsto (fun n ↦ ∫ u, supportValue (K n) u ∂surfaceAreaMeasure (K n)) atTop + (𝓝 (∫ u, supportValue L u ∂surfaceAreaMeasure L)) := + tendsto_integral_supportValue_of_hausdorff_pair K K L L hlim hlim + +/-- For a finite convex hull, the support integral is the finite sum over its proper edges. -/ +private theorem integral_supportValue_surfaceAreaMeasure_eq_sum_properEdgeNormals + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) : + ∫ t, supportValue K t ∂surfaceAreaMeasure K = + Finset.sum (finite_properEdgeNormal_angles K V hKV).toFinset + (fun t ↦ (surfaceAreaMeasure K).real {t} * supportValue K t) := by + classical + let N : Set Real.Angle := {t | (edgeVertices K t).1 ≠ (edgeVertices K t).2} + have hNfinite : N.Finite := finite_properEdgeNormal_angles K V hKV + have hae : ∀ᵐ t ∂surfaceAreaMeasure K, t ∈ N := by + rw [ae_iff] + simpa only [N, Set.mem_ofPred_eq, not_ne_iff] using + surfaceAreaMeasure_compl_properEdgeNormals_eq_zero_of_eq_convexHull K V hKV + have hrestrict : (surfaceAreaMeasure K).restrict N = surfaceAreaMeasure K := + Measure.restrict_eq_self_of_ae_mem hae + let _ : IsFiniteMeasure (surfaceAreaMeasure K) := (surfaceAreaMeasure_face_union K).1 + calc + ∫ t, supportValue K t ∂surfaceAreaMeasure K = + ∫ t in N, supportValue K t ∂surfaceAreaMeasure K := by + rw [hrestrict] + _ = _ := by + rw [show N = ↑hNfinite.toFinset by ext t; simp [N]] + exact MeasureTheory.setIntegral_finset _ + (μ := surfaceAreaMeasure K) (f := supportValue K) IntegrableOn.finset + +/-- On a finite convex hull, each coefficient in the support sum is the corresponding edge +length. -/ +theorem integral_supportValue_surfaceAreaMeasure_eq_sum_edgeLength + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) : + ∫ t, supportValue K t ∂surfaceAreaMeasure K = + Finset.sum (finite_properEdgeNormal_angles K V hKV).toFinset + (fun t ↦ dist (edgeVertices K t).1 (edgeVertices K t).2 * supportValue K t) := by + rw [integral_supportValue_surfaceAreaMeasure_eq_sum_properEdgeNormals K V hKV] + apply Finset.sum_congr rfl + intro t _ + change (surfaceAreaMeasure K {t}).toReal * supportValue K t = _ + rw [(surfaceAreaMeasure_atom_length K t).2.1, ENNReal.toReal_ofReal dist_nonneg] + +/-- The total tangent vector of the surface-area measure vanishes. -/ +theorem integral_tangentVector_surfaceAreaMeasure_eq_zero (K : ConvexBody Point) : + ∫ t, tangentVector t ∂surfaceAreaMeasure K = 0 := by + have himage : + (fun t : ℝ ↦ (t : Real.Angle)) '' Set.Ioc 0 (2 * Real.pi) = Set.univ := by + ext u + simp only [Set.mem_image, Set.mem_Ioc, Set.mem_univ, iff_true] + let _ : Fact (0 < 2 * Real.pi) := ⟨Real.two_pi_pos⟩ + let s := AddCircle.equivIoc (2 * Real.pi) 0 u + have hs : (s : ℝ) ∈ Set.Ioc (0 : ℝ) (2 * Real.pi) := by + simpa using s.property + exact ⟨s, hs, AddCircle.coe_equivIoc⟩ + rw [← setIntegral_univ, ← himage, + integral_tangentVector_surfaceAreaMeasure K Real.two_pi_pos (by simp)] + simp + +/-- Every non-generating boundary point of a two-dimensional finite convex hull lies on a +proper exposed edge. -/ +theorem exists_mem_properExposedEdge_of_mem_frontier + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) + (hK : (interior (K : Set Point)).Nonempty) {p : Point} + (hp : p ∈ frontier (K : Set Point)) (hpV : p ∉ V) : + ∃ t : Real.Angle, + (edgeVertices K t).1 ≠ (edgeVertices K t).2 ∧ p ∈ exposedEdge K t := by + obtain ⟨t, hpt⟩ := exists_mem_exposedEdge_of_mem_frontier K hK hp + refine ⟨t, ?_, hpt⟩ + intro heq + rw [exposedEdge_eq_segment_edgeVertices, heq, segment_same] at hpt + apply hpV + simpa only [Set.mem_singleton_iff] using + hpt.symm ▸ (edgeVertices_mem_of_eq_convexHull K V hKV t).2 + +/-- The support-area identity holds for a singleton convex body. -/ +theorem convexBody_area_support_integral_of_subsingleton (K : ConvexBody Point) + (hK : (K : Set Point).Subsingleton) : + ClassicalResults.area (K : Set Point) = + (1 / 2 : ℝ) * ∫ t, supportValue K t ∂surfaceAreaMeasure K := by + obtain ⟨p, hp⟩ := K.nonempty + have hsingleton : (K : Set Point) = {p} := hK.eq_singleton_of_mem hp + rw [surfaceAreaMeasure_eq_zero_of_subsingleton K hK, integral_zero_measure, mul_zero] + simp [ClassicalResults.area, hsingleton] + +/-- The support-area identity holds for a nondegenerate segment presentation. -/ +theorem convexBody_area_support_integral_of_segmentPresentation + (K : ConvexBody Point) (d : Point × Point × Real.Angle) + (hd : IsSegmentPresentation K d) : + ClassicalResults.area (K : Set Point) = + (1 / 2 : ℝ) * ∫ t, supportValue K t ∂surfaceAreaMeasure K := by + have hline : (K : Set Point) ⊆ + {p | inner ℝ p (normalVector d.2.2) = inner ℝ d.1 (normalVector d.2.2)} := by + intro p hp + rw [hd.2.1, segment_eq_image'] at hp + obtain ⟨s, _, rfl⟩ := hp + change inner ℝ (d.1 + s • (d.2.1 - d.1)) (normalVector d.2.2) = _ + rw [inner_add_left, inner_smul_left, hd.2.2, mul_zero, add_zero] + have hvolume : volume (K : Set Point) = 0 := + measure_mono_null hline + (volume.addHaar_setOf_real_inner_eq (normalVector_ne_zero d.2.2) _) + have hnormalPi : normalVector (d.2.2 + (Real.pi : Real.Angle)) = + -normalVector d.2.2 := by + induction d.2.2 using Real.Angle.induction_on with + | _ t => simpa only [← Real.Angle.coe_add] using normalVector_add_pi t + have hdmem : d.1 ∈ exposedEdge K d.2.2 := by + rw [exposedEdge_eq_segment_of_orthogonal K d hd d.2.2 hd.2.2, hd.2.1] + exact left_mem_segment ℝ _ _ + have hpimem : d.1 ∈ exposedEdge K (d.2.2 + (Real.pi : Real.Angle)) := by + rw [exposedEdge_eq_segment_of_orthogonal K d hd _ (by + rw [hnormalPi, inner_neg_right, hd.2.2, neg_zero]), hd.2.1] + exact left_mem_segment ℝ _ _ + have hsupport : supportValue K d.2.2 + + supportValue K (d.2.2 + (Real.pi : Real.Angle)) = 0 := by + rw [← hdmem.2, ← hpimem.2, hnormalPi, inner_neg_right, add_neg_cancel] + have hint₁ : Integrable (supportValue K) (Measure.dirac d.2.2) := + integrable_dirac (by simp) + have hint₂ : Integrable (supportValue K) + (Measure.dirac (d.2.2 + (Real.pi : Real.Angle))) := integrable_dirac (by simp) + rw [show ClassicalResults.area (K : Set Point) = 0 by + simp [ClassicalResults.area, hvolume], + surfaceAreaMeasure_eq_segmentPresentation K d hd] + rw [integral_smul_measure, integral_add_measure hint₁ hint₂] + simp [hsupport] + +/-- The support-area identity for finite convex hulls extends to every convex body. -/ +theorem convexBody_area_support_integral_of_finiteHull + (hpolygon : ∀ (P : ConvexBody Point) (V : Finset Point), V.Nonempty → + (P : Set Point) = convexHull ℝ (V : Set Point) → + ClassicalResults.area (P : Set Point) = + (1 / 2 : ℝ) * ∫ t, supportValue P t ∂surfaceAreaMeasure P) : + ∀ K : ConvexBody Point, ClassicalResults.area (K : Set Point) = + (1 / 2 : ℝ) * ∫ t, supportValue K t ∂surfaceAreaMeasure K := by + intro K + obtain ⟨V, P, hP, hdist⟩ := exists_facePreserving_polygonApproximation K ∅ + have hlim : Tendsto (fun n ↦ Metric.hausdorffDist (P n : Set Point) (K : Set Point)) + atTop (𝓝 0) := by + apply squeeze_zero' (Filter.Eventually.of_forall fun _ ↦ Metric.hausdorffDist_nonneg) + (Filter.eventually_atTop.2 ⟨1, fun n hn ↦ hdist n hn⟩) + exact tendsto_one_div_atTop_nhds_zero_nat + have harea := convexArea_hausdorff_continuity P K hlim + have hintegral := (tendsto_integral_supportValue_of_hausdorff P K hlim).const_mul (1 / 2) + have heq (n : ℕ) : ClassicalResults.area (P n : Set Point) = + (1 / 2 : ℝ) * ∫ t, supportValue (P n) t ∂surfaceAreaMeasure (P n) := + hpolygon (P n) (V n) (hP n).1 (hP n).2.1 + exact tendsto_nhds_unique harea + (hintegral.congr' (Filter.Eventually.of_forall fun n ↦ (heq n).symm)) + +/-- The area identity and the explicit support integral's bilinearity give quadraticity. -/ +theorem convexBody_area_support_integral_of_area_identity + (harea : ∀ K : ConvexBody Point, ClassicalResults.area (K : Set Point) = + (1 / 2 : ℝ) * ∫ t, supportValue K t ∂surfaceAreaMeasure K) : + (∀ K : ConvexBody Point, ClassicalResults.area (K : Set Point) = + (1 / 2 : ℝ) * ∫ t, supportValue K t ∂surfaceAreaMeasure K) ∧ + IsConvexBilinear convexBodyCombination convexBodyCombination realCombination + (fun K L : ConvexBody Point ↦ + (1 / 2 : ℝ) * ∫ t, supportValue K t ∂surfaceAreaMeasure L) ∧ + IsQuadraticFunctional convexBodyCombination + (fun K : ConvexBody Point ↦ ClassicalResults.area (K : Set Point)) := by + refine ⟨harea, supportIntegral_bilinear, ?_⟩ + exact ⟨_, supportIntegral_bilinear, harea⟩ + +/-- An exposed-edge point realizes the support value. -/ +theorem inner_eq_supportValue_of_mem_exposedEdge (K : ConvexBody Point) (t : Real.Angle) + {p : Point} (hp : p ∈ exposedEdge K t) : + inner ℝ p (normalVector t) = supportValue K t := hp.2 + +/-- An interior base point lies strictly inside every supporting line. -/ +theorem inner_lt_supportValue_of_mem_interior (K : ConvexBody Point) {o : Point} + (ho : o ∈ interior (K : Set Point)) (t : Real.Angle) : + inner ℝ o (normalVector t) < supportValue K t := by + obtain ⟨ε, hε, hball⟩ := Metric.isOpen_iff.mp isOpen_interior o ho + have hnorm : inner ℝ (normalVector t) (normalVector t) = 1 := by + rw [real_inner_self_eq_norm_sq, norm_normalVector] + norm_num + have hpball : o + (ε / 2) • normalVector t ∈ Metric.ball o ε := by + simp only [Metric.mem_ball, dist_eq_norm, add_sub_cancel_left, norm_smul, + norm_normalVector, mul_one, Real.norm_eq_abs, abs_of_pos (half_pos hε)] + linarith + have hle := inner_le_supportValue K (interior_subset (hball hpball)) t + rw [inner_add_left, real_inner_smul_left, hnorm, mul_one] at hle + linarith + +/-- The oriented determinant of a triangle with one side in the positive tangent direction. -/ +private theorem planeCrossProduct_add_smul_tangentVector (w : Point) (d : ℝ) + (t : Real.Angle) : + planeCrossProduct w (w + d • tangentVector t) = d * inner ℝ w (normalVector t) := by + induction t using Real.Angle.induction_on with + | _ t => + simp [planeCrossProduct, PiLp.add_apply, PiLp.smul_apply, smul_eq_mul, + PiLp.inner_apply, Fin.sum_univ_two, normalVector, tangentVector, frame, + Real.Angle.cos_coe, Real.Angle.sin_coe] + ring + +/-- Each exposed-edge summand is the oriented determinant of its triangle over the base +point. -/ +theorem edgeLength_mul_supportValue_sub_eq_planeCrossProduct + (K : ConvexBody Point) (o : Point) (t : Real.Angle) : + dist (edgeVertices K t).1 (edgeVertices K t).2 * + (supportValue K t - inner ℝ o (normalVector t)) = + planeCrossProduct ((edgeVertices K t).2 - o) ((edgeVertices K t).1 - o) := by + have hedge := edgeVertices_fst_sub_snd_eq_dist_smul_tangentVector K t + have ha : (edgeVertices K t).1 - o = + ((edgeVertices K t).2 - o) + + dist (edgeVertices K t).1 (edgeVertices K t).2 • tangentVector t := by + rw [← hedge] + abel + rw [ha, planeCrossProduct_add_smul_tangentVector, inner_sub_left, + inner_eq_supportValue_of_mem_exposedEdge K t (edgeVertices_snd_mem K t)] + +/-- The fan triangle over an exposed edge, based at a chosen interior point. -/ +private def edgeTriangle (K : ConvexBody Point) (o : Point) (t : Real.Angle) : Set Point := + convexHull ℝ ({o, (edgeVertices K t).2, (edgeVertices K t).1} : Set Point) + +/-- The finitely many rays from a base point through the generating vertices. -/ +private def vertexRayUnion (o : Point) (V : Finset Point) : Set Point := + ⋃ v : ↥V, (o +ᵥ (ℝ ∙ ((v : Point) - o) : Set Point)) + +/-- The vertex rays through a base point have planar area zero. -/ +private theorem volume_vertexRayUnion (o : Point) (V : Finset Point) : + volume (vertexRayUnion o V) = 0 := by + exact volume.addHaar_iUnion_vadd_span_singleton one_lt_finrank_point o _ + +/-- Away from the finitely many vertex rays, every polygon point lies in a proper-edge fan +triangle over the base point. -/ +private theorem exists_mem_edgeTriangle_of_notMem_vertexRayUnion + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) + {o : Point} (ho : o ∈ interior (K : Set Point)) {x : Point} + (hx : x ∈ (K : Set Point)) (hxline : x ∉ vertexRayUnion o V) : + ∃ t : Real.Angle, + (edgeVertices K t).1 ≠ (edgeVertices K t).2 ∧ x ∈ edgeTriangle K o t := by + obtain ⟨p, hpfront, hxp⟩ := K.convex.exists_mem_frontier_mem_segment K.isCompact ho hx + have hpV : p ∉ V := by + intro hpV + apply hxline + refine Set.mem_iUnion.2 ⟨⟨p, hpV⟩, ?_⟩ + rw [segment_eq_image'] at hxp + obtain ⟨c, _, hc⟩ := hxp + have hc' : o + c • (p - o) = x := hc + refine ⟨x - o, ?_, by simp only [vadd_eq_add]; abel⟩ + exact Submodule.mem_span_singleton.2 ⟨c, by rw [← hc']; abel⟩ + obtain ⟨t, htproper, hpt⟩ := + exists_mem_properExposedEdge_of_mem_frontier K V hKV ⟨o, ho⟩ hpfront hpV + refine ⟨t, htproper, ?_⟩ + have hpT : p ∈ edgeTriangle K o t := by + rw [exposedEdge_eq_segment_edgeVertices] at hpt + exact (convex_convexHull ℝ _).segment_subset (subset_convexHull ℝ _ (by simp)) + (subset_convexHull ℝ _ (by simp)) hpt + exact (convex_convexHull ℝ _).segment_subset + (subset_convexHull ℝ _ (by simp)) hpT hxp + +/-- Two unit normals annihilating a common nonzero vector have vanishing angular sine. -/ +private theorem sin_sub_eq_zero_of_inner_normalVector_eq_zero {u : Point} (hu : u ≠ 0) + {s t : Real.Angle} (h1 : inner ℝ u (normalVector s) = 0) + (h2 : inner ℝ u (normalVector t) = 0) : (t - s).sin = 0 := by + induction s using Real.Angle.induction_on with + | _ s => + induction t using Real.Angle.induction_on with + | _ t => + have hu' : ¬(u 0 = 0 ∧ u 1 = 0) := by + rintro ⟨ha, hb⟩ + refine hu ?_ + ext i + fin_cases i <;> simpa + simp only [PiLp.inner_apply, RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, + normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, + Matrix.cons_val_zero, Matrix.cons_val_one] at h1 h2 + rw [← Real.Angle.coe_sub, Real.Angle.sin_coe, Real.sin_sub] + have hd0 : (Real.sin t * Real.cos s - Real.cos t * Real.sin s) * u 0 = 0 := by + linear_combination Real.sin t * h1 - Real.sin s * h2 + have hd1 : (Real.sin t * Real.cos s - Real.cos t * Real.sin s) * u 1 = 0 := by + linear_combination (-Real.cos t) * h1 + Real.cos s * h2 + rcases mul_eq_zero.mp hd0 with hD | hu0 + · exact hD + rcases mul_eq_zero.mp hd1 with hD | hu1 + · exact hD + exact absurd ⟨hu0, hu1⟩ hu' + +/-- Distinct normal directions share at most one exposed-edge point. -/ +theorem subsingleton_exposedEdge_inter (K : ConvexBody Point) {o : Point} + (ho : o ∈ interior (K : Set Point)) {s t : Real.Angle} (hst : s ≠ t) : + (exposedEdge K s ∩ exposedEdge K t).Subsingleton := by + intro z hz w hw + by_contra hzw + have h1 : inner ℝ (z - w) (normalVector s) = 0 := by + rw [inner_sub_left, inner_eq_supportValue_of_mem_exposedEdge K s hz.1, + inner_eq_supportValue_of_mem_exposedEdge K s hw.1, sub_self] + have h2 : inner ℝ (z - w) (normalVector t) = 0 := by + rw [inner_sub_left, inner_eq_supportValue_of_mem_exposedEdge K t hz.2, + inner_eq_supportValue_of_mem_exposedEdge K t hw.2, sub_self] + have hsin := sin_sub_eq_zero_of_inner_normalVector_eq_zero (sub_ne_zero.mpr hzw) h1 h2 + rcases Real.Angle.sin_eq_zero_iff.mp hsin with hz0 | hpi + · exact hst (by linear_combination (norm := abel) -hz0) + · have ht : t = s + ((Real.pi : ℝ) : Real.Angle) := by + linear_combination (norm := abel) hpi + have hopp : normalVector t = -normalVector s := by + rw [ht, normalVector_add_pi_angle] + have hsum : supportValue K s + supportValue K t = 0 := by + rw [← inner_eq_supportValue_of_mem_exposedEdge K s hz.1, + ← inner_eq_supportValue_of_mem_exposedEdge K t hz.2, hopp, inner_neg_right, + add_neg_cancel] + have hs' := inner_lt_supportValue_of_mem_interior K ho s + have ht' := inner_lt_supportValue_of_mem_interior K ho t + rw [hopp, inner_neg_right] at ht' + linarith + +/-- A fan triangle is the union of the segments from the base point to its exposed edge. -/ +private theorem edgeTriangle_eq_iUnion_segment (K : ConvexBody Point) (o : Point) + (t : Real.Angle) : + edgeTriangle K o t = ⋃ z ∈ exposedEdge K t, segment ℝ o z := by + rw [edgeTriangle, exposedEdge_eq_segment_edgeVertices, + show ({o, (edgeVertices K t).2, (edgeVertices K t).1} : Set Point) = + insert o {(edgeVertices K t).2, (edgeVertices K t).1} from rfl, + convexHull_insert ⟨(edgeVertices K t).2, by simp⟩, convexHull_pair, + convexJoin_singleton_left] + +/-- Fan triangles over distinct proper edges meet in a planar null set. -/ +private theorem volume_edgeTriangle_inter_eq_zero (K : ConvexBody Point) {o : Point} + (ho : o ∈ interior (K : Set Point)) {s t : Real.Angle} (hst : s ≠ t) : + volume (edgeTriangle K o s ∩ edgeTriangle K o t) = 0 := by + classical + have hsub : ∀ x ∈ edgeTriangle K o s ∩ edgeTriangle K o t, + x = o ∨ ∃ z ∈ exposedEdge K s ∩ exposedEdge K t, x ∈ segment ℝ o z := by + rintro x ⟨hxs, hxt⟩ + rw [edgeTriangle_eq_iUnion_segment] at hxs hxt + obtain ⟨z, hz, hxz⟩ := Set.mem_iUnion₂.mp hxs + obtain ⟨w, hw, hxw⟩ := Set.mem_iUnion₂.mp hxt + by_cases hxo : x = o + · exact Or.inl hxo + have hzw : z = w := K.convex.eq_of_mem_frontier_of_mem_segment K.isClosed ho hxo + (exposedEdge_subset_frontier K s hz) + (exposedEdge_subset_frontier K t hw) hxz hxw + exact Or.inr ⟨z, ⟨hz, hzw ▸ hw⟩, hxz⟩ + by_cases hne : (exposedEdge K s ∩ exposedEdge K t).Nonempty + · obtain ⟨q, hq⟩ := hne + refine measure_mono_null (t := (o +ᵥ (ℝ ∙ (q - o) : Set Point))) ?_ ?_ + · intro x hx + rcases hsub x hx with hxo | ⟨z, hzq, hxz⟩ + · exact ⟨0, Submodule.zero_mem _, by simp only [vadd_eq_add, hxo]; abel⟩ + · have hzeq : z = q := subsingleton_exposedEdge_inter K ho hst hzq hq + subst hzeq + rw [segment_eq_image'] at hxz + obtain ⟨c, _, hc⟩ := hxz + have hc' : o + c • (z - o) = x := hc + exact ⟨x - o, Submodule.mem_span_singleton.2 ⟨c, by rw [← hc']; abel⟩, + by simp only [vadd_eq_add]; abel⟩ + · exact volume.addHaar_vadd_span_singleton one_lt_finrank_point o (q - o) + · refine measure_mono_null (t := ({o} : Set Point)) ?_ (measure_singleton o) + intro x hx + rcases hsub x hx with hxo | ⟨z, hz, _⟩ + · exact hxo + · exact absurd ⟨z, hz⟩ hne + +/-- The coordinate tangent integral of a surface measure vanishes. -/ +theorem integral_tangentCoordinate_surfaceAreaMeasure_eq_zero (K : ConvexBody Point) + (i : Fin 2) : ∫ t, tangentVector t i ∂surfaceAreaMeasure K = 0 := by + let _ : IsFiniteMeasure (surfaceAreaMeasure K) := (surfaceAreaMeasure_face_union K).1 + have hcont : Continuous (fun u : Real.Angle ↦ tangentVector u) := by + apply (PiLp.continuous_toLp 2 (fun _ : Fin 2 ↦ ℝ)).comp + apply continuous_pi + intro j + fin_cases j + · exact Real.Angle.continuous_sin.neg + · exact Real.Angle.continuous_cos + have hu : Integrable (fun u : Real.Angle ↦ tangentVector u) (surfaceAreaMeasure K) := + hcont.integrable_of_hasCompactSupport + (isCompact_univ.of_isClosed_subset isClosed_closure (Set.subset_univ _)) + have hi := ContinuousLinearMap.integral_comp_comm + (PiLp.proj (𝕜 := ℝ) 2 (fun _ : Fin 2 ↦ ℝ) i) hu + change (∫ u, tangentVector u i ∂surfaceAreaMeasure K) = + (∫ u, tangentVector u ∂surfaceAreaMeasure K) i at hi + rw [hi, integral_tangentVector_surfaceAreaMeasure_eq_zero K] + simp + +/-- Atomic surface mass is the corresponding edge length. -/ +private theorem surfaceAreaMeasure_real_singleton (K : ConvexBody Point) (t : Real.Angle) : + (surfaceAreaMeasure K).real {t} = dist (edgeVertices K t).1 (edgeVertices K t).2 := by + change (surfaceAreaMeasure K {t}).toReal = _ + rw [(surfaceAreaMeasure_atom_length K t).2.1, ENNReal.toReal_ofReal dist_nonneg] + +/-- The proper-edge lengths of a polygon weight its tangent coordinates to zero. -/ +theorem sum_edgeLength_mul_tangentCoordinate_eq_zero (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) (i : Fin 2) : + ∑ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, + dist (edgeVertices K t).1 (edgeVertices K t).2 * tangentVector t i = 0 := by + classical + have h := integral_tangentCoordinate_surfaceAreaMeasure_eq_sum_properEdgeNormals K V hKV i + Set.univ MeasurableSet.univ + rw [setIntegral_univ, integral_tangentCoordinate_surfaceAreaMeasure_eq_zero K i] at h + rw [show (finite_properEdgeNormal_angles K V hKV).toFinset = + ((finite_properEdgeNormal_angles K V hKV).inter_of_left Set.univ).toFinset from by + ext u + simp] + refine Eq.trans (Finset.sum_congr rfl fun u _ ↦ ?_) h.symm + rw [surfaceAreaMeasure_real_singleton] + +/-- The proper-edge lengths of a polygon weight its normal directions to zero. -/ +theorem sum_edgeLength_mul_inner_normalVector_eq_zero (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) (o : Point) : + ∑ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, + dist (edgeVertices K t).1 (edgeVertices K t).2 * inner ℝ o (normalVector t) = 0 := by + have hkey : ∀ t : Real.Angle, inner ℝ o (normalVector t) = + o 0 * tangentVector t 1 - o 1 * tangentVector t 0 := by + intro t + induction t using Real.Angle.induction_on with + | _ t => + simp [PiLp.inner_apply, Fin.sum_univ_two, normalVector, tangentVector, frame, + Real.Angle.cos_coe, Real.Angle.sin_coe] + ring + have h0 := sum_edgeLength_mul_tangentCoordinate_eq_zero K V hKV 0 + have h1 := sum_edgeLength_mul_tangentCoordinate_eq_zero K V hKV 1 + calc ∑ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, + dist (edgeVertices K t).1 (edgeVertices K t).2 * inner ℝ o (normalVector t) + = o 0 * ∑ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, + dist (edgeVertices K t).1 (edgeVertices K t).2 * tangentVector t 1 - + o 1 * ∑ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, + dist (edgeVertices K t).1 (edgeVertices K t).2 * tangentVector t 0 := by + rw [Finset.mul_sum, Finset.mul_sum, ← Finset.sum_sub_distrib] + refine Finset.sum_congr rfl fun t _ ↦ ?_ + rw [hkey t] + ring + _ = 0 := by rw [h0, h1]; ring + +/-- The support-area identity for a polygon with interior, by fan triangulation. -/ +theorem convexBody_area_support_integral_of_convexHull_interior + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) + (hint : (interior (K : Set Point)).Nonempty) : + ClassicalResults.area (K : Set Point) = + (1 / 2 : ℝ) * ∫ t, supportValue K t ∂surfaceAreaMeasure K := by + classical + obtain ⟨o, ho⟩ := hint + have hmemF : ∀ t : Real.Angle, + t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset ↔ + (edgeVertices K t).1 ≠ (edgeVertices K t).2 := by + intro t + simp + have hpos : ∀ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, + 0 < dist (edgeVertices K t).1 (edgeVertices K t).2 * + (supportValue K t - inner ℝ o (normalVector t)) := by + intro t htF + exact mul_pos (dist_pos.mpr ((hmemF t).1 htF)) + (sub_pos.mpr (inner_lt_supportValue_of_mem_interior K ho t)) + have hTvol : ∀ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, + volume (edgeTriangle K o t) = ENNReal.ofReal + (dist (edgeVertices K t).1 (edgeVertices K t).2 * + (supportValue K t - inner ℝ o (normalVector t)) / 2) := by + intro t htF + rw [edgeTriangle, EuclideanSpace.volume_convexHull_triple] + congr 1 + rw [show ((edgeVertices K t).2 - o) 0 * ((edgeVertices K t).1 - o) 1 - + ((edgeVertices K t).1 - o) 0 * ((edgeVertices K t).2 - o) 1 = + planeCrossProduct ((edgeVertices K t).2 - o) ((edgeVertices K t).1 - o) from by + simp only [planeCrossProduct] + ring, ← edgeLength_mul_supportValue_sub_eq_planeCrossProduct K o t, + abs_of_pos (hpos t htF)] + have hTsubK : ∀ t : Real.Angle, edgeTriangle K o t ⊆ (K : Set Point) := by + intro t + rw [edgeTriangle] + refine convexHull_min ?_ K.convex + intro p hp + simp only [Set.mem_insert_iff, Set.mem_singleton_iff] at hp + rcases hp with rfl | rfl | rfl + · exact interior_subset ho + · exact (edgeVertices_snd_mem K t).1 + · exact (edgeVertices_fst_mem K t).1 + have hvolK : volume (K : Set Point) = + ∑ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, + volume (edgeTriangle K o t) := by + have hcover : (K : Set Point) ⊆ + (⋃ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, edgeTriangle K o t) ∪ + vertexRayUnion o V := by + intro x hx + by_cases hxline : x ∈ vertexRayUnion o V + · exact Or.inr hxline + obtain ⟨t, htproper, hxt⟩ := + exists_mem_edgeTriangle_of_notMem_vertexRayUnion K V hKV ho hx hxline + exact Or.inl (Set.mem_biUnion ((hmemF t).2 htproper) hxt) + have hle : volume (K : Set Point) ≤ + volume (⋃ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, + edgeTriangle K o t) := by + calc volume (K : Set Point) + ≤ volume ((⋃ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, + edgeTriangle K o t) ∪ vertexRayUnion o V) := measure_mono hcover + _ ≤ volume (⋃ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, + edgeTriangle K o t) + volume (vertexRayUnion o V) := measure_union_le _ _ + _ = volume (⋃ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, + edgeTriangle K o t) := by rw [volume_vertexRayUnion, add_zero] + have hge : volume (⋃ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, + edgeTriangle K o t) ≤ volume (K : Set Point) := + measure_mono (Set.iUnion₂_subset fun t _ ↦ hTsubK t) + rw [le_antisymm hle hge] + refine measure_biUnion_finset₀ ?_ ?_ + · intro s _ t _ hst + exact volume_edgeTriangle_inter_eq_zero K ho hst + · intro t _ + exact ((Set.toFinite ({o, (edgeVertices K t).2, (edgeVertices K t).1} : + Set Point)).isCompact_convexHull ℝ).isClosed.measurableSet.nullMeasurableSet + have hnonneg : ∀ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, + 0 ≤ dist (edgeVertices K t).1 (edgeVertices K t).2 * + (supportValue K t - inner ℝ o (normalVector t)) / 2 := by + intro t htF + linarith [hpos t htF] + have harea : ClassicalResults.area (K : Set Point) = + ∑ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, + dist (edgeVertices K t).1 (edgeVertices K t).2 * + (supportValue K t - inner ℝ o (normalVector t)) / 2 := by + simp only [ClassicalResults.area] + rw [hvolK, Finset.sum_congr rfl hTvol, ← ENNReal.ofReal_sum_of_nonneg hnonneg, + ENNReal.toReal_ofReal (Finset.sum_nonneg hnonneg)] + have hsplit : ∑ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, + dist (edgeVertices K t).1 (edgeVertices K t).2 * + (supportValue K t - inner ℝ o (normalVector t)) / 2 = + (1 / 2 : ℝ) * ∑ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, + dist (edgeVertices K t).1 (edgeVertices K t).2 * supportValue K t - + (1 / 2 : ℝ) * ∑ t ∈ (finite_properEdgeNormal_angles K V hKV).toFinset, + dist (edgeVertices K t).1 (edgeVertices K t).2 * inner ℝ o (normalVector t) := by + rw [Finset.mul_sum, Finset.mul_sum, ← Finset.sum_sub_distrib] + refine Finset.sum_congr rfl fun t _ ↦ ?_ + ring + rw [harea, hsplit, sum_edgeLength_mul_inner_normalVector_eq_zero K V hKV o, mul_zero, + sub_zero, integral_supportValue_surfaceAreaMeasure_eq_sum_edgeLength K V hKV] + +/-- The support-area identity for every finite convex hull. -/ +theorem convexBody_area_support_integral_of_convexHull + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) : + ClassicalResults.area (K : Set Point) = + (1 / 2 : ℝ) * ∫ t, supportValue K t ∂surfaceAreaMeasure K := by + by_cases hsub : (K : Set Point).Subsingleton + · exact convexBody_area_support_integral_of_subsingleton K hsub + by_cases hint : (interior (K : Set Point)).Nonempty + · exact convexBody_area_support_integral_of_convexHull_interior K V hKV hint + obtain ⟨d, hd⟩ := exists_segmentPresentation_of_interior_empty K hsub + (Set.not_nonempty_iff_eq_empty.mp hint) + exact convexBody_area_support_integral_of_segmentPresentation K d hd + +/-! ### Symmetry of the mixed support integral + +The mixed integral `∫ h_P dσ_Q` of two finite convex hulls is computed by lifting the circle to +`(0, 2π]` and indexing by the finite set `F` of lifts carrying a proper edge of `P` or of `Q`. +The positive-vertex increment formula turns `h_P` into a partial sum along `F`, so the integral +becomes a lower-triangular double sum `∑_{t ∈ F} ∑_{u ≤ t} α_u β_t sin (t - u)`, whose symmetry +in `(α, β)` is `Finset.sum_filter_le_add_sum_filter_le_swap` together with the vanishing of the +first trigonometric moments of the edge lengths. Polygon approximation transfers the identity to +arbitrary convex bodies. -/ + +/-- The first tangent coordinate at a real angle lift. -/ +private theorem tangentVector_coe_zero (s : ℝ) : + tangentVector ((s : ℝ) : Real.Angle) 0 = -Real.sin s := by + simp [tangentVector, frame, Real.Angle.sin_coe] + +/-- The second tangent coordinate at a real angle lift. -/ +private theorem tangentVector_coe_one (s : ℝ) : + tangentVector ((s : ℝ) : Real.Angle) 1 = Real.cos s := by + simp [tangentVector, frame, Real.Angle.cos_coe] + +/-- A finite set of angular lifts in `(0, 2π]` covering all proper-edge normals of a polygon. +Excluding `0` makes the lift of each angle unique, so no edge atom is counted twice. -/ +private def IsProperEdgeLiftIndex (K : ConvexBody Point) + (F : Finset (Set.Icc (0 : ℝ) (2 * Real.pi))) : Prop := + (∀ u ∈ F, 0 < (u : ℝ)) ∧ + ∀ u : Set.Icc (0 : ℝ) (2 * Real.pi), 0 < (u : ℝ) → + (edgeVertices K ((u : ℝ) : Real.Angle)).1 ≠ + (edgeVertices K ((u : ℝ) : Real.Angle)).2 → u ∈ F + +/-- The surface integral over an initial angular arc is the finite sum of its edge atoms. -/ +private theorem integral_surfaceAreaMeasure_image_Ioc_eq_sum_lifts + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) + (F : Finset (Set.Icc (0 : ℝ) (2 * Real.pi))) (hF : IsProperEdgeLiftIndex K F) + (φ : Real.Angle → ℝ) (t : Set.Icc (0 : ℝ) (2 * Real.pi)) : + (∫ u in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioc 0 (t : ℝ), + φ u ∂surfaceAreaMeasure K) = + ∑ u ∈ F.filter (fun u ↦ u ≤ t), + dist (edgeVertices K ((u : ℝ) : Real.Angle)).1 + (edgeVertices K ((u : ℝ) : Real.Angle)).2 * φ ((u : ℝ) : Real.Angle) := by + classical + have hturn : 2 * Real.pi ≤ 0 + 2 * Real.pi := le_of_eq (by ring) + have hpi : (0 : ℝ) ≤ 2 * Real.pi := by positivity + let a' : Set.Icc (0 : ℝ) (2 * Real.pi) := ⟨0, le_rfl, hpi⟩ + have himg : (fun s : Set.Icc (0 : ℝ) (2 * Real.pi) ↦ ((s : ℝ) : Real.Angle)) '' + Set.Ioc a' t = (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioc 0 (t : ℝ) := by + ext u + constructor + · rintro ⟨s, hs, rfl⟩ + exact ⟨(s : ℝ), ⟨hs.1, hs.2⟩, rfl⟩ + · rintro ⟨s, hs, rfl⟩ + exact ⟨⟨s, hs.1.le, hs.2.trans t.property.2⟩, ⟨hs.1, hs.2⟩, rfl⟩ + rw [← himg, integral_surfaceAreaMeasure_image_eq_sum_properEdgeNormal_lifts K V hKV hturn φ + (Set.Ioc a' t) measurableSet_Ioc (fun u hu ↦ hu.1)] + have hatom : ∀ u : Set.Icc (0 : ℝ) (2 * Real.pi), + (surfaceAreaMeasure K).real {((u : ℝ) : Real.Angle)} = + dist (edgeVertices K ((u : ℝ) : Real.Angle)).1 + (edgeVertices K ((u : ℝ) : Real.Angle)).2 := by + intro u + change (surfaceAreaMeasure K {((u : ℝ) : Real.Angle)}).toReal = _ + rw [(surfaceAreaMeasure_atom_length K ((u : ℝ) : Real.Angle)).2.1, + ENNReal.toReal_ofReal dist_nonneg] + simp only [hatom] + refine Finset.sum_subset ?_ ?_ + · intro u hu + simp only [Set.Finite.mem_toFinset, Set.mem_inter_iff] at hu + exact Finset.mem_filter.2 ⟨hF.2 u hu.1.1 hu.1.2, hu.2.2⟩ + · intro u hu hnot + simp only [Set.Finite.mem_toFinset, Set.mem_inter_iff, not_and] at hnot + obtain ⟨huF, hut⟩ := Finset.mem_filter.1 hu + have hu0 : 0 < (u : ℝ) := hF.1 u huF + have hdeg : ¬((edgeVertices K ((u : ℝ) : Real.Angle)).1 ≠ + (edgeVertices K ((u : ℝ) : Real.Angle)).2) := fun hne ↦ + (hnot ⟨hu0, hne⟩) ⟨hu0, hut⟩ + rw [not_not.mp hdeg, dist_self, zero_mul] + +/-- The total surface integral is the finite sum of the edge atoms of a polygon. -/ +private theorem integral_surfaceAreaMeasure_eq_sum_lifts + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) + (F : Finset (Set.Icc (0 : ℝ) (2 * Real.pi))) (hF : IsProperEdgeLiftIndex K F) + (φ : Real.Angle → ℝ) : + (∫ u, φ u ∂surfaceAreaMeasure K) = + ∑ u ∈ F, + dist (edgeVertices K ((u : ℝ) : Real.Angle)).1 + (edgeVertices K ((u : ℝ) : Real.Angle)).2 * φ ((u : ℝ) : Real.Angle) := by + classical + have hpi : (0 : ℝ) ≤ 2 * Real.pi := by positivity + let b' : Set.Icc (0 : ℝ) (2 * Real.pi) := ⟨2 * Real.pi, hpi, le_rfl⟩ + have hfull : (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioc 0 ((b' : ℝ)) = Set.univ := by + ext u + simp only [Set.mem_image, Set.mem_Ioc, Set.mem_univ, iff_true] + let _ : Fact (0 < 2 * Real.pi) := ⟨Real.two_pi_pos⟩ + refine ⟨(AddCircle.equivIoc (2 * Real.pi) 0 u : ℝ), ?_, AddCircle.coe_equivIoc⟩ + simpa using (AddCircle.equivIoc (2 * Real.pi) 0 u).property + have hfilter : F.filter (fun u ↦ u ≤ b') = F := by + refine Finset.filter_true_of_mem fun u _ ↦ ?_ + exact u.property.2 + have := integral_surfaceAreaMeasure_image_Ioc_eq_sum_lifts K V hKV F hF φ b' + rw [hfull, setIntegral_univ, hfilter] at this + exact this + +/-- The edge lengths of a polygon weight the cosines and sines of its normal directions to +zero. -/ +private theorem sum_edgeLength_lift_cos_sin_eq_zero + (K : ConvexBody Point) (V : Finset Point) + (hKV : (K : Set Point) = convexHull ℝ (V : Set Point)) + (F : Finset (Set.Icc (0 : ℝ) (2 * Real.pi))) (hF : IsProperEdgeLiftIndex K F) : + (∑ u ∈ F, dist (edgeVertices K ((u : ℝ) : Real.Angle)).1 + (edgeVertices K ((u : ℝ) : Real.Angle)).2 * Real.cos (u : ℝ) = 0) ∧ + ∑ u ∈ F, dist (edgeVertices K ((u : ℝ) : Real.Angle)).1 + (edgeVertices K ((u : ℝ) : Real.Angle)).2 * Real.sin (u : ℝ) = 0 := by + have hzero : ∀ i : Fin 2, ∑ u ∈ F, + dist (edgeVertices K ((u : ℝ) : Real.Angle)).1 + (edgeVertices K ((u : ℝ) : Real.Angle)).2 * + tangentVector ((u : ℝ) : Real.Angle) i = 0 := by + intro i + rw [← integral_surfaceAreaMeasure_eq_sum_lifts K V hKV F hF (fun v ↦ tangentVector v i)] + exact integral_tangentCoordinate_surfaceAreaMeasure_eq_zero K i + refine ⟨by simpa only [tangentVector_coe_one] using hzero 1, ?_⟩ + have h := hzero 0 + simp only [tangentVector_coe_zero, mul_neg, Finset.sum_neg_distrib] at h + linarith + +/-- The mixed support integral of two polygons, as a lower-triangular double sum over a common +index set of angular lifts. -/ +private theorem integral_supportValue_eq_sum_sum_lifts + (P Q : ConvexBody Point) (VP VQ : Finset Point) + (hP : (P : Set Point) = convexHull ℝ (VP : Set Point)) + (hQ : (Q : Set Point) = convexHull ℝ (VQ : Set Point)) + (F : Finset (Set.Icc (0 : ℝ) (2 * Real.pi))) + (hidxP : IsProperEdgeLiftIndex P F) (hidxQ : IsProperEdgeLiftIndex Q F) : + (∫ t, supportValue P t ∂surfaceAreaMeasure Q) = + ∑ t ∈ F, ∑ u ∈ F.filter (fun u ↦ u ≤ t), + dist (edgeVertices P ((u : ℝ) : Real.Angle)).1 + (edgeVertices P ((u : ℝ) : Real.Angle)).2 * + dist (edgeVertices Q ((t : ℝ) : Real.Angle)).1 + (edgeVertices Q ((t : ℝ) : Real.Angle)).2 * + Real.sin ((t : ℝ) - (u : ℝ)) := by + classical + have hcosQ : ∑ u ∈ F, dist (edgeVertices Q ((u : ℝ) : Real.Angle)).1 + (edgeVertices Q ((u : ℝ) : Real.Angle)).2 * Real.cos (u : ℝ) = 0 := + (sum_edgeLength_lift_cos_sin_eq_zero Q VQ hQ F hidxQ).1 + have hsinQ : ∑ u ∈ F, dist (edgeVertices Q ((u : ℝ) : Real.Angle)).1 + (edgeVertices Q ((u : ℝ) : Real.Angle)).2 * Real.sin (u : ℝ) = 0 := + (sum_edgeLength_lift_cos_sin_eq_zero Q VQ hQ F hidxQ).2 + have hincP : ∀ (i : Fin 2) (t : Set.Icc (0 : ℝ) (2 * Real.pi)), 0 < (t : ℝ) → + (edgeVertices P ((t : ℝ) : Real.Angle)).1 i = + (edgeVertices P ((0 : ℝ) : Real.Angle)).1 i + + ∑ u ∈ F.filter (fun u ↦ u ≤ t), + dist (edgeVertices P ((u : ℝ) : Real.Angle)).1 + (edgeVertices P ((u : ℝ) : Real.Angle)).2 * + tangentVector ((u : ℝ) : Real.Angle) i := by + intro i t ht + have h1 := positiveVertex_sub_eq_integral_of_eq_convexHull P VP hP (a := 0) + (b := (t : ℝ)) ht (by simpa using t.property.2) i + rw [integral_surfaceAreaMeasure_image_Ioc_eq_sum_lifts P VP hP F hidxP + (fun v ↦ tangentVector v i) t] at h1 + linarith + have hsupp : ∀ t : Set.Icc (0 : ℝ) (2 * Real.pi), 0 < (t : ℝ) → + supportValue P ((t : ℝ) : Real.Angle) = + (edgeVertices P ((0 : ℝ) : Real.Angle)).1 0 * Real.cos (t : ℝ) + + (edgeVertices P ((0 : ℝ) : Real.Angle)).1 1 * Real.sin (t : ℝ) + + ∑ u ∈ F.filter (fun u ↦ u ≤ t), + dist (edgeVertices P ((u : ℝ) : Real.Angle)).1 + (edgeVertices P ((u : ℝ) : Real.Angle)).2 * + Real.sin ((t : ℝ) - (u : ℝ)) := by + intro t ht + rw [← (edgeVertices_fst_mem P ((t : ℝ) : Real.Angle)).2, inner_normalVector_real, + hincP 0 t ht, hincP 1 t ht] + have hsplit : + (∑ u ∈ F.filter (fun u ↦ u ≤ t), + dist (edgeVertices P ((u : ℝ) : Real.Angle)).1 + (edgeVertices P ((u : ℝ) : Real.Angle)).2 * + tangentVector ((u : ℝ) : Real.Angle) 0) * Real.cos (t : ℝ) + + (∑ u ∈ F.filter (fun u ↦ u ≤ t), + dist (edgeVertices P ((u : ℝ) : Real.Angle)).1 + (edgeVertices P ((u : ℝ) : Real.Angle)).2 * + tangentVector ((u : ℝ) : Real.Angle) 1) * Real.sin (t : ℝ) = + ∑ u ∈ F.filter (fun u ↦ u ≤ t), + dist (edgeVertices P ((u : ℝ) : Real.Angle)).1 + (edgeVertices P ((u : ℝ) : Real.Angle)).2 * + Real.sin ((t : ℝ) - (u : ℝ)) := by + rw [Finset.sum_mul, Finset.sum_mul, ← Finset.sum_add_distrib] + refine Finset.sum_congr rfl fun u _ ↦ ?_ + rw [tangentVector_coe_zero, tangentVector_coe_one, Real.sin_sub] + ring + linarith + rw [integral_surfaceAreaMeasure_eq_sum_lifts Q VQ hQ F hidxQ (fun v ↦ supportValue P v)] + have step1 : ∑ t ∈ F, dist (edgeVertices Q ((t : ℝ) : Real.Angle)).1 + (edgeVertices Q ((t : ℝ) : Real.Angle)).2 * supportValue P ((t : ℝ) : Real.Angle) = + ∑ t ∈ F, ((edgeVertices P ((0 : ℝ) : Real.Angle)).1 0 * + (dist (edgeVertices Q ((t : ℝ) : Real.Angle)).1 + (edgeVertices Q ((t : ℝ) : Real.Angle)).2 * Real.cos (t : ℝ)) + + (edgeVertices P ((0 : ℝ) : Real.Angle)).1 1 * + (dist (edgeVertices Q ((t : ℝ) : Real.Angle)).1 + (edgeVertices Q ((t : ℝ) : Real.Angle)).2 * Real.sin (t : ℝ)) + + ∑ u ∈ F.filter (fun u ↦ u ≤ t), + dist (edgeVertices P ((u : ℝ) : Real.Angle)).1 + (edgeVertices P ((u : ℝ) : Real.Angle)).2 * + dist (edgeVertices Q ((t : ℝ) : Real.Angle)).1 + (edgeVertices Q ((t : ℝ) : Real.Angle)).2 * + Real.sin ((t : ℝ) - (u : ℝ))) := by + refine Finset.sum_congr rfl fun t ht ↦ ?_ + have hms : dist (edgeVertices Q ((t : ℝ) : Real.Angle)).1 + (edgeVertices Q ((t : ℝ) : Real.Angle)).2 * + (∑ u ∈ F.filter (fun u ↦ u ≤ t), dist (edgeVertices P ((u : ℝ) : Real.Angle)).1 + (edgeVertices P ((u : ℝ) : Real.Angle)).2 * Real.sin ((t : ℝ) - (u : ℝ))) = + ∑ u ∈ F.filter (fun u ↦ u ≤ t), + dist (edgeVertices P ((u : ℝ) : Real.Angle)).1 + (edgeVertices P ((u : ℝ) : Real.Angle)).2 * + dist (edgeVertices Q ((t : ℝ) : Real.Angle)).1 + (edgeVertices Q ((t : ℝ) : Real.Angle)).2 * + Real.sin ((t : ℝ) - (u : ℝ)) := by + rw [Finset.mul_sum] + exact Finset.sum_congr rfl fun u _ ↦ by ring + rw [hsupp t (hidxQ.1 t ht)] + linear_combination hms + have step2 : ∑ t ∈ F, ((edgeVertices P ((0 : ℝ) : Real.Angle)).1 0 * + (dist (edgeVertices Q ((t : ℝ) : Real.Angle)).1 + (edgeVertices Q ((t : ℝ) : Real.Angle)).2 * Real.cos (t : ℝ)) + + (edgeVertices P ((0 : ℝ) : Real.Angle)).1 1 * + (dist (edgeVertices Q ((t : ℝ) : Real.Angle)).1 + (edgeVertices Q ((t : ℝ) : Real.Angle)).2 * Real.sin (t : ℝ)) + + ∑ u ∈ F.filter (fun u ↦ u ≤ t), + dist (edgeVertices P ((u : ℝ) : Real.Angle)).1 + (edgeVertices P ((u : ℝ) : Real.Angle)).2 * + dist (edgeVertices Q ((t : ℝ) : Real.Angle)).1 + (edgeVertices Q ((t : ℝ) : Real.Angle)).2 * + Real.sin ((t : ℝ) - (u : ℝ))) = + (edgeVertices P ((0 : ℝ) : Real.Angle)).1 0 * + (∑ t ∈ F, dist (edgeVertices Q ((t : ℝ) : Real.Angle)).1 + (edgeVertices Q ((t : ℝ) : Real.Angle)).2 * Real.cos (t : ℝ)) + + (edgeVertices P ((0 : ℝ) : Real.Angle)).1 1 * + (∑ t ∈ F, dist (edgeVertices Q ((t : ℝ) : Real.Angle)).1 + (edgeVertices Q ((t : ℝ) : Real.Angle)).2 * Real.sin (t : ℝ)) + + ∑ t ∈ F, ∑ u ∈ F.filter (fun u ↦ u ≤ t), + dist (edgeVertices P ((u : ℝ) : Real.Angle)).1 + (edgeVertices P ((u : ℝ) : Real.Angle)).2 * + dist (edgeVertices Q ((t : ℝ) : Real.Angle)).1 + (edgeVertices Q ((t : ℝ) : Real.Angle)).2 * + Real.sin ((t : ℝ) - (u : ℝ)) := by + rw [Finset.mul_sum, Finset.mul_sum, ← Finset.sum_add_distrib, ← Finset.sum_add_distrib] + rw [step1, step2, hcosQ, hsinQ] + ring + +/-- The lower-triangular sine double sum is symmetric under swapping the two weight families, +provided the second family has vanishing first trigonometric moments. -/ +private theorem sum_filter_le_sin_sub_comm + {ι : Type*} [LinearOrder ι] (F : Finset ι) (θ : ι → ℝ) (α β : ι → ℝ) + (hβ0 : ∑ u ∈ F, β u * Real.cos (θ u) = 0) + (hβ1 : ∑ u ∈ F, β u * Real.sin (θ u) = 0) : + (∑ t ∈ F, ∑ u ∈ F.filter (fun u ↦ u ≤ t), α u * β t * Real.sin (θ t - θ u)) = + ∑ t ∈ F, ∑ u ∈ F.filter (fun u ↦ u ≤ t), β u * α t * Real.sin (θ t - θ u) := by + set f : ι → ι → ℝ := fun x y ↦ α x * β y * Real.sin (θ y - θ x) with hf + have hdiag : ∀ x, f x x = 0 := by + intro x + simp [hf] + have hfull : (∑ x ∈ F, ∑ y ∈ F, f x y) = 0 := by + refine Finset.sum_eq_zero fun x _ ↦ ?_ + have hinner : (∑ y ∈ F, f x y) = + (α x * Real.cos (θ x)) * (∑ y ∈ F, β y * Real.sin (θ y)) - + (α x * Real.sin (θ x)) * (∑ y ∈ F, β y * Real.cos (θ y)) := by + rw [Finset.mul_sum, Finset.mul_sum, ← Finset.sum_sub_distrib] + refine Finset.sum_congr rfl fun y _ ↦ ?_ + simp only [hf, Real.sin_sub] + ring + rw [hinner, hβ0, hβ1] + ring + have htrans : (∑ t ∈ F, ∑ u ∈ F.filter (fun u ↦ u ≤ t), f u t) + + ∑ t ∈ F, ∑ u ∈ F.filter (fun u ↦ u ≤ t), f t u = 0 := by + rw [Finset.sum_filter_le_add_sum_filter_le_swap F f hdiag, hfull] + have hright : (∑ t ∈ F, ∑ u ∈ F.filter (fun u ↦ u ≤ t), β u * α t * Real.sin (θ t - θ u)) = + -∑ t ∈ F, ∑ u ∈ F.filter (fun u ↦ u ≤ t), f t u := by + rw [← Finset.sum_neg_distrib] + refine Finset.sum_congr rfl fun t _ ↦ ?_ + rw [← Finset.sum_neg_distrib] + refine Finset.sum_congr rfl fun u _ ↦ ?_ + simp only [hf] + rw [show θ u - θ t = -(θ t - θ u) by ring, Real.sin_neg] + ring + rw [hright] + linarith [htrans] + +/-- Symmetry of the mixed support integral for finite convex hulls, including the degenerate +point and segment cases. -/ +theorem supportIntegral_symm_of_convexHull (P Q : ConvexBody Point) (VP VQ : Finset Point) + (hP : (P : Set Point) = convexHull ℝ (VP : Set Point)) + (hQ : (Q : Set Point) = convexHull ℝ (VQ : Set Point)) : + (∫ t, supportValue P t ∂surfaceAreaMeasure Q) = + ∫ t, supportValue Q t ∂surfaceAreaMeasure P := by + classical + have hturn : 2 * Real.pi ≤ 0 + 2 * Real.pi := le_of_eq (by ring) + have hSP := finite_properEdgeNormal_lifts P VP hP (a := 0) (b := 2 * Real.pi) hturn + have hSQ := finite_properEdgeNormal_lifts Q VQ hQ (a := 0) (b := 2 * Real.pi) hturn + set F : Finset (Set.Icc (0 : ℝ) (2 * Real.pi)) := hSP.toFinset ∪ hSQ.toFinset with hFdef + have hidxP : IsProperEdgeLiftIndex P F := by + refine ⟨fun u hu ↦ ?_, fun u h0 hne ↦ ?_⟩ + · rcases Finset.mem_union.mp hu with h | h + · exact (hSP.mem_toFinset.mp h).1 + · exact (hSQ.mem_toFinset.mp h).1 + · exact Finset.mem_union_left _ (hSP.mem_toFinset.mpr ⟨h0, hne⟩) + have hidxQ : IsProperEdgeLiftIndex Q F := by + refine ⟨fun u hu ↦ ?_, fun u h0 hne ↦ ?_⟩ + · rcases Finset.mem_union.mp hu with h | h + · exact (hSP.mem_toFinset.mp h).1 + · exact (hSQ.mem_toFinset.mp h).1 + · exact Finset.mem_union_right _ (hSQ.mem_toFinset.mpr ⟨h0, hne⟩) + rw [integral_supportValue_eq_sum_sum_lifts P Q VP VQ hP hQ F hidxP hidxQ, + integral_supportValue_eq_sum_sum_lifts Q P VQ VP hQ hP F hidxQ hidxP] + exact sum_filter_le_sin_sub_comm F (fun u ↦ (u : ℝ)) + (fun u ↦ dist (edgeVertices P ((u : ℝ) : Real.Angle)).1 + (edgeVertices P ((u : ℝ) : Real.Angle)).2) + (fun u ↦ dist (edgeVertices Q ((u : ℝ) : Real.Angle)).1 + (edgeVertices Q ((u : ℝ) : Real.Angle)).2) + (sum_edgeLength_lift_cos_sin_eq_zero Q VQ hQ F hidxQ).1 + (sum_edgeLength_lift_cos_sin_eq_zero Q VQ hQ F hidxQ).2 + +/-- Symmetry of the mixed support integral for arbitrary planar convex bodies: +`∫ h_K dσ_L = ∫ h_L dσ_K`. -/ +theorem supportIntegral_symm (K L : ConvexBody Point) : + (∫ t, supportValue K t ∂surfaceAreaMeasure L) = + ∫ t, supportValue L t ∂surfaceAreaMeasure K := by + obtain ⟨VP, P, hPspec, hPdist⟩ := exists_facePreserving_polygonApproximation K ∅ + obtain ⟨VQ, Q, hQspec, hQdist⟩ := exists_facePreserving_polygonApproximation L ∅ + have hlimP : Tendsto (fun n ↦ Metric.hausdorffDist (P n : Set Point) (K : Set Point)) + atTop (𝓝 0) := by + apply squeeze_zero' (Filter.Eventually.of_forall fun _ ↦ Metric.hausdorffDist_nonneg) + (Filter.eventually_atTop.2 ⟨1, fun n hn ↦ hPdist n hn⟩) + exact tendsto_one_div_atTop_nhds_zero_nat + have hlimQ : Tendsto (fun n ↦ Metric.hausdorffDist (Q n : Set Point) (L : Set Point)) + atTop (𝓝 0) := by + apply squeeze_zero' (Filter.Eventually.of_forall fun _ ↦ Metric.hausdorffDist_nonneg) + (Filter.eventually_atTop.2 ⟨1, fun n hn ↦ hQdist n hn⟩) + exact tendsto_one_div_atTop_nhds_zero_nat + refine tendsto_nhds_unique + (tendsto_integral_supportValue_of_hausdorff_pair P Q K L hlimP hlimQ) + (Filter.Tendsto.congr (fun n ↦ ?_) + (tendsto_integral_supportValue_of_hausdorff_pair Q P L K hlimQ hlimP)) + exact supportIntegral_symm_of_convexHull (Q n) (P n) (VQ n) (VP n) + (hQspec n).2.1 (hPspec n).2.1 + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Convex / Linearity +-/ + +@[expose] public section + +noncomputable section + +open scoped unitInterval + +namespace MovingSofa + +theorem convexBody_maps_linear (t : I) (K L : ConvexBody Point) : + (∀ a : Real.Angle, + supportValue (convexBodyCombination t K L) a = + (1 - (t : ℝ)) * supportValue K a + (t : ℝ) * supportValue L a) ∧ + (∀ a : Real.Angle, + (edgeVertices (convexBodyCombination t K L) a).1 = + (1 - (t : ℝ)) • (edgeVertices K a).1 + (t : ℝ) • (edgeVertices L a).1 ∧ + (edgeVertices (convexBodyCombination t K L) a).2 = + (1 - (t : ℝ)) • (edgeVertices K a).2 + (t : ℝ) • (edgeVertices L a).2) ∧ + (∀ a b : ℝ, a < b → b < a + Real.pi → + supportingIntersection (convexBodyCombination t K L) a b = + (1 - (t : ℝ)) • supportingIntersection K a b + + (t : ℝ) • supportingIntersection L a b) ∧ + surfaceAreaMeasure (convexBodyCombination t K L) = + ENNReal.ofReal (1 - (t : ℝ)) • surfaceAreaMeasure K + + ENNReal.ofReal (t : ℝ) • surfaceAreaMeasure L := by + refine ⟨supportValue_convexBodyCombination t K L, ?_, ?_, + surfaceAreaMeasure_convexBodyCombination t K L⟩ + · exact edgeVertices_convexBodyCombination t K L + · intro a b _hab _hba + simp only [supportingIntersection, supportValue_convexBodyCombination] + ext i + simp only [PiLp.add_apply, PiLp.smul_apply, smul_eq_mul] + ring + +theorem convexBody_area_support_integral : + (∀ K : ConvexBody Point, ClassicalResults.area (K : Set Point) = + (1 / 2 : ℝ) * ∫ a : Real.Angle, supportValue K a ∂surfaceAreaMeasure K) ∧ + IsConvexBilinear convexBodyCombination convexBodyCombination realCombination + (fun K L : ConvexBody Point ↦ + (1 / 2 : ℝ) * ∫ a : Real.Angle, supportValue K a ∂surfaceAreaMeasure L) ∧ + IsQuadraticFunctional convexBodyCombination + (fun K : ConvexBody Point ↦ ClassicalResults.area (K : Set Point)) := + convexBody_area_support_integral_of_area_identity + (convexBody_area_support_integral_of_finiteHull + (fun P W _hW hPW ↦ convexBody_area_support_integral_of_convexHull P W hPW)) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# The mixed area of two planar convex bodies + +The mixed support integral `∫ h_K dσ_L` is symmetric in the two bodies, and the area of the +Minkowski segment `λ ↦ |(1 - λ) K + λ L|` is therefore the quadratic +`(1 - λ)² |K| + λ (1 - λ) ∫ h_L dσ_K + λ² |L|`, whose right derivative at `λ = 0` is +`∫ (h_L - h_K) dσ_K`. + +The symmetry itself is `MovingSofa.supportIntegral_symm` in `MovingSofa.Convex.SupportArea`. +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- Symmetry of the mixed support integral, together with the right derivative at `0` of the +area along the Minkowski segment from `K` to `L`. -/ +theorem supportMeasure_mixedArea_symmetry (K L : ConvexBody Point) : + (∫ t : Real.Angle, supportValue K t ∂surfaceAreaMeasure L) = + (∫ t : Real.Angle, supportValue L t ∂surfaceAreaMeasure K) ∧ + HasDerivWithinAt + (segmentFunctional convexBodyCombination + (fun M : ConvexBody Point ↦ ClassicalResults.area (M : Set Point)) K L) + (∫ t : Real.Angle, supportValue L t - supportValue K t ∂surfaceAreaMeasure K) + (Set.Icc (0 : ℝ) 1) 0 := by + classical + have hsymm := supportIntegral_symm K L + refine ⟨hsymm, ?_⟩ + obtain ⟨harea, hbil, -⟩ := convexBody_area_support_integral + have hcont (M : ConvexBody Point) : Continuous (supportValue M) := + (compactSet_support_continuity M M M.nonempty M.isCompact M.nonempty M.isCompact).2.2.1 + have hint : ∀ M N : ConvexBody Point, Integrable (supportValue M) (surfaceAreaMeasure N) := by + intro M N + let _ : IsFiniteMeasure (surfaceAreaMeasure N) := (surfaceAreaMeasure_face_union N).1 + exact (hcont M).integrable_of_hasCompactSupport + (isCompact_univ.of_isClosed_subset isClosed_closure (Set.subset_univ _)) + rw [integral_sub (hint L K) (hint K K)] + have hfun : ∀ lam ∈ Set.Icc (0 : ℝ) 1, + segmentFunctional convexBodyCombination + (fun M : ConvexBody Point ↦ ClassicalResults.area (M : Set Point)) K L lam = + 1 / 2 * (∫ t, supportValue K t ∂surfaceAreaMeasure K) + + ((∫ t, supportValue L t ∂surfaceAreaMeasure K) - + ∫ t, supportValue K t ∂surfaceAreaMeasure K) * lam + + (1 / 2 * (∫ t, supportValue K t ∂surfaceAreaMeasure K) - + (∫ t, supportValue L t ∂surfaceAreaMeasure K) + + 1 / 2 * ∫ t, supportValue L t ∂surfaceAreaMeasure L) * lam ^ 2 := by + intro lam hlam + have hseg : segmentFunctional convexBodyCombination + (fun M : ConvexBody Point ↦ ClassicalResults.area (M : Set Point)) K L lam = + ClassicalResults.area + ((convexBodyCombination ⟨lam, hlam⟩ K L : ConvexBody Point) : Set Point) := + dite_eq_left hlam + have h2 := hbil.2 (convexBodyCombination ⟨lam, hlam⟩ K L) ⟨lam, hlam⟩ K L + have h3 := hbil.1 K ⟨lam, hlam⟩ K L + have h4 := hbil.1 L ⟨lam, hlam⟩ K L + simp only [realCombination] at h2 h3 h4 + rw [hseg, harea (convexBodyCombination ⟨lam, hlam⟩ K L), h2, h3, h4, hsymm] + ring + have hpoly : ∀ A B C : ℝ, HasDerivAt (fun lam : ℝ ↦ A + B * lam + C * lam ^ 2) B 0 := by + intro A B C + have h : HasDerivAt (fun lam : ℝ ↦ A + B * lam + C * lam ^ 2) + (0 + B * 1 + C * (2 * 0 ^ 1)) 0 := + HasDerivAt.add (HasDerivAt.add (hasDerivAt_const _ _) + ((hasDerivAt_id _).const_mul _)) ((hasDerivAt_pow _ _).const_mul _) + simpa using h + exact HasDerivWithinAt.congr (hpoly _ _ _).hasDerivWithinAt hfun + (hfun 0 ⟨le_rfl, zero_le_one⟩) + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Convex / Tangent Line Path +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set Filter +open scoped Topology + +namespace MovingSofa + +/-- Trace intersections with a fixed supporting line, ending at its exposed-edge endpoint. -/ +def tangentLinePath (K : ConvexBody Point) (t : ℝ) (s : Set.Ioc (t - Real.pi) t) : Point := + if s.val < t then supportingIntersection K (s.val : Real.Angle) (t : Real.Angle) + else (edgeVertices K (t : Real.Angle)).2 + +/-- Restrict the tangent-line path to a closed interval of supporting directions. -/ +def tangentLineRestriction (K : ConvexBody Point) (t a b : ℝ) + (ha : a ∈ Set.Ioc (t - Real.pi) t) (hb : b ∈ Set.Ioc (t - Real.pi) t) + (s : Set.Icc a b) : Point := + tangentLinePath K t ⟨s.val, lt_of_lt_of_le ha.1 s.property.1, + le_trans s.property.2 hb.2⟩ + +private def tangentLineCoordinate (K : ConvexBody Point) (t s : ℝ) : ℝ := + (supportValue K (s : Real.Angle) - supportValue K (t : Real.Angle) * Real.cos (s - t)) / + Real.sin (s - t) + +private theorem tangentLineCoordinate_le (K : ConvexBody Point) {t s : ℝ} + (hs : s ∈ Ioo (t - Real.pi) t) {p : Point} (hp : p ∈ K) : + tangentLineCoordinate K t s ≤ inner ℝ p (tangentVector (t : Real.Angle)) + + (inner ℝ p (normalVector (t : Real.Angle)) - supportValue K (t : Real.Angle)) * + (Real.cos (s - t) / Real.sin (s - t)) := by + have hsin : Real.sin (s - t) < 0 := + Real.sin_neg_of_neg_of_neg_pi_lt (by linarith [hs.2]) (by linarith [hs.1]) + have hbound := inner_le_supportValue K hp (s : Real.Angle) + have hn : normalVector (s : Real.Angle) = + Real.cos (s - t) • normalVector (t : Real.Angle) + + Real.sin (s - t) • tangentVector (t : Real.Angle) := by + simpa only [add_sub_cancel] using normalVector_add_real t (s - t) + rw [hn, inner_add_right, inner_smul_right, inner_smul_right] at hbound + dsimp [tangentLineCoordinate] + apply (div_le_iff_of_neg hsin).mpr + have hc : (inner ℝ p (tangentVector (t : Real.Angle)) + + (inner ℝ p (normalVector (t : Real.Angle)) - supportValue K (t : Real.Angle)) * + (Real.cos (s - t) / Real.sin (s - t))) * Real.sin (s - t) = + inner ℝ p (tangentVector (t : Real.Angle)) * Real.sin (s - t) + + (inner ℝ p (normalVector (t : Real.Angle)) - supportValue K (t : Real.Angle)) * + Real.cos (s - t) := by + field_simp [hsin.ne] + rw [hc] + nlinarith + +private theorem tangentLineCoordinate_eq_of_mem_support (K : ConvexBody Point) {t s : ℝ} + (hs : s ∈ Ioo (t - Real.pi) t) {p : Point} + (hp : inner ℝ p (normalVector (s : Real.Angle)) = supportValue K (s : Real.Angle)) : + tangentLineCoordinate K t s = inner ℝ p (tangentVector (t : Real.Angle)) + + (inner ℝ p (normalVector (t : Real.Angle)) - supportValue K (t : Real.Angle)) * + (Real.cos (s - t) / Real.sin (s - t)) := by + have hsin : Real.sin (s - t) ≠ 0 := + (Real.sin_neg_of_neg_of_neg_pi_lt (by linarith [hs.2]) (by linarith [hs.1])).ne + have hn : normalVector (s : Real.Angle) = + Real.cos (s - t) • normalVector (t : Real.Angle) + + Real.sin (s - t) • tangentVector (t : Real.Angle) := by + simpa only [add_sub_cancel] using normalVector_add_real t (s - t) + dsimp [tangentLineCoordinate] + rw [← hp, hn, inner_add_right, inner_smul_right, inner_smul_right] + field_simp + ring + +private theorem monotoneOn_tangentLineCoordinate (K : ConvexBody Point) (t : ℝ) : + MonotoneOn (tangentLineCoordinate K t) (Ioo (t - Real.pi) t) := by + intro x hx y hy hxy + obtain ⟨p, hp, hmax⟩ := exists_mem_inner_eq_supportValue K (y : Real.Angle) + rw [tangentLineCoordinate_eq_of_mem_support K hy hmax] + apply (tangentLineCoordinate_le K hx hp).trans + apply add_le_add_right + exact mul_le_mul_of_nonpos_left + (Real.antitoneOn_cos_div_sin_Ioo_neg_pi_zero ⟨by linarith [hx.1], by linarith [hx.2]⟩ + ⟨by linarith [hy.1], by linarith [hy.2]⟩ (by linarith)) + (sub_nonpos.mpr (inner_le_supportValue K hp (t : Real.Angle))) + +private theorem supportingIntersection_eq_tangentLineCoordinate (K : ConvexBody Point) + {t s : ℝ} (hs : s ∈ Ioo (t - Real.pi) t) : + supportingIntersection K (s : Real.Angle) (t : Real.Angle) = + supportValue K (t : Real.Angle) • normalVector (t : Real.Angle) + + tangentLineCoordinate K t s • tangentVector (t : Real.Angle) := by + rw [supportingIntersection_comm K s t + (Real.sin_pos_of_pos_of_lt_pi (by linarith [hs.2]) (by linarith [hs.1])).ne'] + simp only [supportingIntersection, tangentLineCoordinate, ← Real.Angle.coe_sub, + Real.Angle.cos_coe, Real.Angle.sin_coe] + +private theorem continuousAt_tangentLineCoordinate (K : ConvexBody Point) {t s : ℝ} + (hs : s ∈ Ioo (t - Real.pi) t) : ContinuousAt (tangentLineCoordinate K t) s := by + have hsin : Real.sin (s - t) ≠ 0 := + (Real.sin_neg_of_neg_of_neg_pi_lt (by linarith [hs.2]) (by linarith [hs.1])).ne + exact ((continuous_supportValue_real K).continuousAt.sub + (continuousAt_const.mul (Real.continuous_cos.continuousAt.comp + (continuousAt_id.sub continuousAt_const)))).div + (Real.continuous_sin.continuousAt.comp (continuousAt_id.sub continuousAt_const)) hsin + +private theorem tendsto_tangentLineCoordinate_left (K : ConvexBody Point) (t : ℝ) : + Tendsto (tangentLineCoordinate K t) (𝓝[<] t) + (𝓝 (inner ℝ (edgeVertices K (t : Real.Angle)).2 (tangentVector (t : Real.Angle)))) := by + have h := (contact_oneSided_limits K t).2.2.2.2.2.inner + (𝕜 := ℝ) (tendsto_const_nhds (x := tangentVector (t : Real.Angle))) + apply h.congr' + filter_upwards [Ioo_mem_nhdsLT (by linarith [Real.pi_pos] : t - Real.pi < t)] with s hs + rw [supportingIntersection_eq_tangentLineCoordinate K hs] + simp only [inner_add_left, real_inner_smul_left, inner_normalVector_tangentVector, + inner_tangentVector_self, mul_zero, mul_one, zero_add] + +private def closedTangentLineCoordinate (K : ConvexBody Point) (t s : ℝ) : ℝ := + if s = t then inner ℝ (edgeVertices K (t : Real.Angle)).2 (tangentVector (t : Real.Angle)) + else tangentLineCoordinate K t s + +private theorem continuousOn_closedTangentLineCoordinate (K : ConvexBody Point) {t a : ℝ} + (ha : a ∈ Ioo (t - Real.pi) t) : + ContinuousOn (closedTangentLineCoordinate K t) (Icc a t) := by + exact continuousOn_replace_right_endpoint ha.2 _ _ + (fun s hs ↦ + (continuousAt_tangentLineCoordinate K ⟨ha.1.trans_le hs.1, hs.2⟩).tendsto.mono_left + nhdsWithin_le_nhds) + (fun s hs ↦ + (continuousAt_tangentLineCoordinate K ⟨ha.1.trans hs.1, hs.2⟩).tendsto.mono_left + nhdsWithin_le_nhds) + (tendsto_tangentLineCoordinate_left K t) + +private theorem monotoneOn_closedTangentLineCoordinate (K : ConvexBody Point) (t : ℝ) : + MonotoneOn (closedTangentLineCoordinate K t) (Ioc (t - Real.pi) t) := by + intro x hx y hy hxy + by_cases hyEq : y = t + · subst y + by_cases hxEq : x = t + · subst x + rfl + · have hxt : x < t := lt_of_le_of_ne hx.2 hxEq + change (if x = t then _ else _) ≤ (if t = t then _ else _) + simp only [ite_eq_right hxEq, ite_true] + apply ge_of_tendsto (tendsto_tangentLineCoordinate_left K t) + filter_upwards [Ioo_mem_nhdsLT hxt] with u hu + exact monotoneOn_tangentLineCoordinate K t ⟨hx.1, hxt⟩ + ⟨hx.1.trans hu.1, hu.2⟩ hu.1.le + · have hyt : y < t := lt_of_le_of_ne hy.2 hyEq + have hxt : x < t := hxy.trans_lt hyt + simp only [closedTangentLineCoordinate, ite_eq_right hxt.ne, ite_eq_right hyEq] + exact monotoneOn_tangentLineCoordinate K t ⟨hx.1, hxt⟩ ⟨hy.1, hyt⟩ hxy + +private theorem tangentLinePath_eq_coordinate (K : ConvexBody Point) (t : ℝ) + (s : Ioc (t - Real.pi) t) : + tangentLinePath K t s = supportValue K (t : Real.Angle) • normalVector (t : Real.Angle) + + closedTangentLineCoordinate K t s • tangentVector (t : Real.Angle) := by + dsimp [tangentLinePath] + split_ifs with hs + · rw [supportingIntersection_eq_tangentLineCoordinate K ⟨s.property.1, hs⟩] + simp only [closedTangentLineCoordinate, ite_eq_right hs.ne] + · have heq : (s : ℝ) = t := le_antisymm s.property.2 (le_of_not_gt hs) + simp only [closedTangentLineCoordinate, heq] + have hp := (edgeVertices_snd_mem K (t : Real.Angle)).2 + change inner ℝ (edgeVertices K (t : Real.Angle)).2 (normalVector (t : Real.Angle)) = + supportValue K (t : Real.Angle) at hp + rw [← hp] + exact (inner_normalVector_smul_add_inner_tangentVector_smul _ _).symm + +/-- Every value of a tangent-line path lies on the supporting line at its own path parameter. -/ +theorem tangentLinePath_mem_supportingLine (K : ConvexBody Point) (t : ℝ) + (s : Set.Ioc (t - Real.pi) t) : + tangentLinePath K t s ∈ + (supportingLineHalfPlane (K : Set Point) ((s : ℝ) : Real.Angle)).1 := by + unfold tangentLinePath + split_ifs with hs + · exact supportingIntersection_inner_left K (s : ℝ) t + · have hst : (s : ℝ) = t := le_antisymm s.property.2 (le_of_not_gt hs) + rw [hst] + exact (edgeVertices_snd_mem K (t : Real.Angle)).2 + +theorem tangentLinePath_segment_area (K : ConvexBody Point) (t a b : ℝ) + (ha : a ∈ Set.Ioc (t - Real.pi) t) (hb : b ∈ Set.Ioc (t - Real.pi) t) + (hab : a ≤ b) : + ∃ γ : ContinuousBVPaths a b, + γ.val = tangentLineRestriction K t a b ha hb ∧ + Set.range γ.val = segment ℝ (tangentLinePath K t ⟨a, ha⟩) + (tangentLinePath K t ⟨b, hb⟩) ∧ + Set.range γ.val ⊆ (supportingLineHalfPlane (K : Set Point) (t : Real.Angle)).1 ∧ + curveAreaFunctional γ = + segmentArea (tangentLinePath K t ⟨a, ha⟩) (tangentLinePath K t ⟨b, hb⟩) := by + let Q : Set.Icc a b → ℝ := fun s ↦ closedTangentLineCoordinate K t s + have hQmono : Monotone Q := by + intro x y hxy + exact monotoneOn_closedTangentLineCoordinate K t + ⟨ha.1.trans_le x.property.1, x.property.2.trans hb.2⟩ + ⟨ha.1.trans_le y.property.1, y.property.2.trans hb.2⟩ hxy + have hQcont : Continuous Q := by + change Continuous (Set.domRestrict (Set.Icc a b) (closedTangentLineCoordinate K t)) + by_cases hat : a < t + · exact continuousOn_iff_continuous_domRestrict.mp + ((continuousOn_closedTangentLineCoordinate K ⟨ha.1, hat⟩).mono + (Icc_subset_Icc_right hb.2)) + · have heq : a = b := le_antisymm hab (hb.2.trans (le_of_not_gt hat)) + have hc : ContinuousOn (closedTangentLineCoordinate K t) ({a} : Set ℝ) := + (show ({a} : Set ℝ).Subsingleton from Set.subsingleton_singleton).continuousOn _ + exact continuousOn_iff_continuous_domRestrict.mp (hc.mono (by simp [heq])) + have hQbv : BoundedVariationOn Q Set.univ := by + apply MonotoneOn.boundedVariationOn (f := Q) (s := Set.univ) + (fun _ _ _ _ hxy ↦ hQmono hxy) + (C := |Q ⟨a, le_rfl, hab⟩| + |Q ⟨b, hab, le_rfl⟩|) + intro s _ + have hlo := hQmono (show (⟨a, le_rfl, hab⟩ : Set.Icc a b) ≤ s from s.property.1) + have hhi := hQmono (show s ≤ (⟨b, hab, le_rfl⟩ : Set.Icc a b) from s.property.2) + exact abs_le.mpr ⟨by + linarith [neg_abs_le (Q ⟨a, le_rfl, hab⟩), abs_nonneg (Q ⟨b, hab, le_rfl⟩)], by + linarith [le_abs_self (Q ⟨b, hab, le_rfl⟩), abs_nonneg (Q ⟨a, le_rfl, hab⟩)]⟩ + let h := supportValue K (t : Real.Angle) + let γ : ContinuousBVPaths a b := { + val := fun s ↦ h • normalVector (t : Real.Angle) + Q s • tangentVector (t : Real.Angle) + property := ⟨continuous_const.add (hQcont.smul continuous_const), fun i ↦ by + let C : NNReal := ⟨|tangentVector (t : Real.Angle) i|, abs_nonneg _⟩ + have hLip : LipschitzWith C (fun r : ℝ ↦ + h * normalVector (t : Real.Angle) i + r * tangentVector (t : Real.Angle) i) := by + apply LipschitzWith.of_dist_le_mul + intro x y + simp only [Real.dist_eq] + rw [show (h * normalVector (t : Real.Angle) i + x * tangentVector (t : Real.Angle) i) - + (h * normalVector (t : Real.Angle) i + y * tangentVector (t : Real.Angle) i) = + (x - y) * tangentVector (t : Real.Angle) i by ring, abs_mul, mul_comm] + rfl + have hcomp := hLip.comp_boundedVariationOn hQbv + change BoundedVariationOn (fun t_1 ↦ + h * normalVector (t : Real.Angle) i + Q t_1 * tangentVector (t : Real.Angle) i) Set.univ + exact hcomp⟩ } + refine ⟨γ, ?_, ?_, ?_, ?_⟩ + · funext s + unfold tangentLineRestriction + exact (tangentLinePath_eq_coordinate K t + ⟨s, lt_of_lt_of_le ha.1 s.property.1, s.property.2.trans hb.2⟩).symm + · rw [show γ.val = fun s ↦ h • normalVector (t : Real.Angle) + + Q s • tangentVector (t : Real.Angle) from rfl] + let A := Q ⟨a, le_rfl, hab⟩ + let B := Q ⟨b, hab, le_rfl⟩ + have hAB : A ≤ B := hQmono hab + have hQrange : Set.range Q = Set.Icc (Q ⟨a, le_rfl, hab⟩) (Q ⟨b, hab, le_rfl⟩) := by + apply Set.Subset.antisymm + · rintro _ ⟨s, rfl⟩ + exact ⟨hQmono s.property.1, hQmono s.property.2⟩ + · intro y hy + let _ : PreconnectedSpace (Set.Icc a b) := + Subtype.preconnectedSpace isPreconnected_Icc + exact intermediate_value_univ ⟨a, le_rfl, hab⟩ ⟨b, hab, le_rfl⟩ hQcont hy + have haeq := tangentLinePath_eq_coordinate K t ⟨a, ha⟩ + have hbeq := tangentLinePath_eq_coordinate K t ⟨b, hb⟩ + have hAa : closedTangentLineCoordinate K t a = A := rfl + have hBb : closedTangentLineCoordinate K t b = B := rfl + change Set.range (fun s ↦ h • normalVector (t : Real.Angle) + + Q s • tangentVector (t : Real.Angle)) = _ + rw [haeq, hbeq] + rw [hAa, hBb] + rw [segment_eq_image_lineMap] + ext p + constructor + · rintro ⟨s, rfl⟩ + have hs : Q s ∈ Set.Icc A B := by + exact ⟨hQmono s.property.1, hQmono s.property.2⟩ + by_cases hABeq : A = B + · refine ⟨0, by simp, ?_⟩ + have : Q s = A := le_antisymm (hs.2.trans_eq hABeq.symm) hs.1 + ext i + simp [h, hABeq, this] + · let u := (Q s - A) / (B - A) + have hpos : 0 < B - A := sub_pos.mpr (lt_of_le_of_ne hAB hABeq) + refine ⟨u, ⟨div_nonneg (sub_nonneg.mpr hs.1) hpos.le, + (div_le_one hpos).2 (by linarith [hs.2])⟩, ?_⟩ + ext i + simp only [AffineMap.lineMap_apply_module, PiLp.add_apply, PiLp.smul_apply, + smul_eq_mul] + dsimp [u] + field_simp [hpos.ne'] + ring + · rintro ⟨u, hu, rfl⟩ + let r := A + u * (B - A) + have hr : r ∈ Set.Icc A B := by + dsimp [r] + constructor + · exact le_add_of_nonneg_right (mul_nonneg hu.1 (sub_nonneg.mpr hAB)) + · nlinarith [mul_le_mul_of_nonneg_right hu.2 (sub_nonneg.mpr hAB)] + have hrange : r ∈ Set.range Q := by simpa [A, B, hQrange] using hr + obtain ⟨s, hs⟩ := hrange + refine ⟨s, ?_⟩ + ext i + simp only [AffineMap.lineMap_apply_module, PiLp.add_apply, PiLp.smul_apply, + smul_eq_mul] + rw [hs] + ring + · intro p hp + obtain ⟨s, rfl⟩ := hp + change inner ℝ (γ.val s) (normalVector (t : Real.Angle)) = supportValue K _ + rw [inner_add_left, real_inner_smul_left, real_inner_smul_left, + inner_normalVector_self, real_inner_comm, inner_normalVector_tangentVector] + simp [h] + · let Qbv : RightContinuousIntervalBV a b := { + toFun := Q + boundedVariation := hQbv + right_continuous := fun s ↦ hQcont.continuousAt.continuousWithinAt } + have hcoord (i : Fin 2) (s : Set.Icc a b) : + (continuousBVCoordinate γ i).toFun s = + h * normalVector (t : Real.Angle) i + + tangentVector (t : Real.Angle) i * Qbv.toFun s := by + change (h • normalVector (t : Real.Angle) + Q s • tangentVector (t : Real.Angle)) i = _ + simp [Qbv, mul_comm] + unfold curveAreaFunctional + change (intervalStieltjesIntegral (continuousBVCoordinate γ 1) + (continuousBVCoordinate γ 0).toFun Set.univ - + intervalStieltjesIntegral (continuousBVCoordinate γ 0) + (continuousBVCoordinate γ 1).toFun Set.univ) / 2 = _ + rw [intervalStieltjesIntegral_affine_driver_cross hab Qbv + (continuousBVCoordinate γ 0) (continuousBVCoordinate γ 1) hQcont + (h * normalVector (t : Real.Angle) 0) (tangentVector (t : Real.Angle) 0) + (h * normalVector (t : Real.Angle) 1) (tangentVector (t : Real.Angle) 1) + (hcoord 0) (hcoord 1)] + have haeq := tangentLinePath_eq_coordinate K t ⟨a, ha⟩ + have hbeq := tangentLinePath_eq_coordinate K t ⟨b, hb⟩ + rw [haeq, hbeq] + simp only [Qbv] + simp [segmentArea, planeCrossProduct, normalVector, tangentVector, frame, h] + simp only [Q] + ring + +theorem tangentLinePath_convexLinear (t a b : ℝ) + (ha : a ∈ Set.Ioc (t - Real.pi) t) (hb : b ∈ Set.Ioc (t - Real.pi) t) + (hab : a ≤ b) : + ∃ F : ConvexBody Point → ContinuousBVPaths a b, + (∀ K, (F K).val = tangentLineRestriction K t a b ha hb) ∧ + IsConvexLinear convexBodyCombination + (fun r x y ↦ (1 - (r : ℝ)) • x + (r : ℝ) • y) F := by + let F : ConvexBody Point → ContinuousBVPaths a b := fun K ↦ + (tangentLinePath_segment_area K t a b ha hb hab).choose + have hF (K : ConvexBody Point) : + (F K).val = tangentLineRestriction K t a b ha hb := + (tangentLinePath_segment_area K t a b ha hb hab).choose_spec.1 + refine ⟨F, hF, ?_⟩ + intro r K L + apply Subtype.ext + funext s + change (F (convexBodyCombination r K L)).val s = + ((1 - (r : ℝ)) • (F K).val + (r : ℝ) • (F L).val) s + rw [hF, hF, hF] + unfold tangentLineRestriction tangentLinePath + by_cases hs : (s : ℝ) < t + · simp only [hs, ↓reduceIte, Pi.add_apply, Pi.smul_apply] + exact (convexBody_maps_linear r K L).2.2.1 (s : ℝ) t hs + (by linarith [ha.1, s.property.1]) + · have hst : (s : ℝ) = t := by + apply le_antisymm + · exact le_trans s.property.2 hb.2 + · exact le_of_not_gt hs + simp only [hs, ↓reduceIte, Pi.add_apply, Pi.smul_apply] + simpa [hst] using (convexBody_maps_linear r K L).2.1 (t : Real.Angle) |>.2 + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Convex.ArcCutBoundary`. +* `Convex.ArcArea`. +* `Convex.ArcBilinear`. +* `Convex.ArcJordan`. +* `Convex.ArcRegionArea`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Convex / Arc Cut Boundary +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open Set + +private theorem normalVector_injective_cut : Function.Injective normalVector := by + intro a b hab + induction a using Real.Angle.induction_on with + | _ a => + induction b using Real.Angle.induction_on with + | _ b => + apply Real.Angle.cos_sin_inj + · exact congrFun (congrArg WithLp.ofLp hab) 0 + · exact congrFun (congrArg WithLp.ofLp hab) 1 + +-- Duplicate of the current private UpperGraph helper; promote with the separation helper. +private theorem exteriorNormal_eq_of_orthogonal_of_interior_nonempty_cut + (K : ConvexBody Point) (hK : (interior (K : Set Point)).Nonempty) + {p v : Point} (hv : v ≠ 0) {a b : Real.Angle} + (ha : IsExteriorNormal K p a) (hb : IsExteriorNormal K p b) + (hva : inner ℝ v (normalVector a) = 0) + (hvb : inner ℝ v (normalVector b) = 0) : a = b := by + let orientation : Orientation ℝ Point (Fin 2) := + (EuclideanSpace.basisFun (Fin 2) ℝ).toBasis.orientation + rcases EuclideanGeometry.eq_or_eq_neg_of_unit_orthogonal orientation hv + (norm_normalVector a) (norm_normalVector b) hva hvb with hab | hab + · exact normalVector_injective_cut hab + · exfalso + obtain ⟨z, hz⟩ := hK + obtain ⟨ε, hε, hball⟩ := Metric.isOpen_iff.mp isOpen_interior z hz + let q := z + (ε / 2) • normalVector a + have hq : q ∈ K := interior_subset (hball (by + rw [Metric.mem_ball, dist_eq_norm] + rw [show q - z = (ε / 2) • normalVector a by simp [q], norm_smul, + norm_normalVector, Real.norm_eq_abs, abs_of_pos (div_pos hε (by norm_num))] + norm_num + linarith)) + have haz := ha z (interior_subset hz) + have hbz := hb z (interior_subset hz) + have hba : normalVector b = -normalVector a := by rw [hab]; simp + rw [hba, inner_neg_right] at hbz + have heq : inner ℝ (z - p) (normalVector a) = 0 := by linarith + have haq := ha q hq + have hqp : q - p = (z - p) + (ε / 2) • normalVector a := by + dsimp only [q] + module + rw [hqp, inner_add_left, inner_smul_left, real_inner_self_eq_norm_sq, + norm_normalVector a, heq, zero_add] at haq + have : ε / 2 ≤ 0 := by simpa using haq + linarith + +private theorem isExteriorNormal_of_mem_exposedEdge + (K : ConvexBody Point) {p : Point} {a : Real.Angle} + (hp : p ∈ exposedEdge K a) : IsExteriorNormal K p a := by + intro q hq + have hqle := inner_le_supportValue K hq a + have hpEq := hp.2 + change inner ℝ p (normalVector a) = supportValue K a at hpEq + rw [inner_sub_left, hpEq] + linarith + +/-- The frontier of a cut body is the retained convex boundary arc together with its chord. -/ +theorem frontier_eq_convexBoundaryArc_union_segment_of_cut + (K K' : ConvexBody Point) (a b t : ℝ) (P Q : Point) + (hat : a < t) (htb : t < b) (hba : b < a + Real.pi) + (hP : P = (edgeVertices K (a : Real.Angle)).1) + (hQ : Q = (edgeVertices K (b : Real.Angle)).2) + (hleft : ∀ s ∈ Set.Ioc (t - Real.pi) a, exposedEdge K' s = {P}) + (hmiddle : ∀ s ∈ Set.Ioo a b, exposedEdge K' s = exposedEdge K s) + (hright : ∀ s ∈ Set.Ico b (t + Real.pi), exposedEdge K' s = {Q}) + (hterminal : exposedEdge K' (t + Real.pi) = segment ℝ Q P) + (hInt : (interior (K' : Set Point)).Nonempty) : + frontier (K' : Set Point) = convexBoundaryArc K a b ∪ segment ℝ P Q := by + apply Set.Subset.antisymm + · intro x hx + obtain ⟨u, hxu⟩ := exists_mem_exposedEdge_of_mem_frontier K' hInt hx + let _ : Fact (0 < 2 * Real.pi) := ⟨by positivity⟩ + let s := AddCircle.equivIoc (2 * Real.pi) (t - Real.pi) u + have hs : (s : ℝ) ∈ Set.Ioc (t - Real.pi) (t + Real.pi) := by + have := s.property + convert this using 1 + ring_nf + have hsu : (((s : ℝ) : Real.Angle)) = u := AddCircle.coe_equivIoc + have hxs : x ∈ exposedEdge K' (s : ℝ) := by simpa [hsu] using hxu + rcases le_or_gt (s : ℝ) a with hsa | has + · left + left + left + have hface := hleft (s : ℝ) ⟨hs.1, hsa⟩ + rw [hface] at hxs + simpa [hP] using hxs + · rcases lt_or_ge (s : ℝ) b with hsb | hbs + · left + left + right + refine Set.mem_iUnion_of_mem (s : ℝ) ?_ + refine Set.mem_iUnion_of_mem ⟨has, hsb⟩ ?_ + · rw [← hmiddle (s : ℝ) ⟨has, hsb⟩] + exact hxs + · rcases lt_or_eq_of_le hs.2 with hst | hst + · left + right + have hface := hright (s : ℝ) ⟨hbs, hst⟩ + rw [hface] at hxs + simpa [hQ] using hxs + · right + rw [hst] at hxs + change x ∈ exposedEdge K' + ((t : Real.Angle) + (Real.pi : Real.Angle)) at hxs + rw [hterminal] at hxs + simpa [segment_symm] using hxs + · rintro x (hx | hx) + · rcases hx with hx | hx + · rcases hx with hx | hx + · have hPa : P ∈ exposedEdge K' (a : ℝ) := by + rw [hleft a ⟨by linarith [Real.pi_pos], le_rfl⟩] + simp + have hxP : x = P := by simpa [hP] using hx + rw [hxP] + exact exposedEdge_subset_frontier K' + (a : Real.Angle) hPa + · rcases Set.mem_iUnion.mp hx with ⟨s, hx⟩ + rcases Set.mem_iUnion.mp hx with ⟨hs, hx⟩ + rw [← hmiddle s hs] at hx + exact exposedEdge_subset_frontier K' (s : Real.Angle) hx + · have hQb : Q ∈ exposedEdge K' (b : ℝ) := by + rw [hright b ⟨le_rfl, by linarith [Real.pi_pos]⟩] + simp + have hxQ : x = Q := by simpa [hQ] using hx + rw [hxQ] + exact exposedEdge_subset_frontier K' + (b : Real.Angle) hQb + · rw [segment_symm, ← hterminal] at hx + exact exposedEdge_subset_frontier K' + ((t + Real.pi : ℝ) : Real.Angle) hx + +/-- A retained convex boundary arc meets its cutting chord only at the endpoints. -/ +theorem convexBoundaryArc_inter_segment_eq_endpoints_of_cut + (K K' : ConvexBody Point) (a b t c : ℝ) (P Q : Point) + (hat : a < t) (htb : t < b) (hba : b < a + Real.pi) + (hPQ : P ≠ Q) + (hPt : inner ℝ P (normalVector (t : Real.Angle)) = c) + (hQt : inner ℝ Q (normalVector (t : Real.Angle)) = c) + (hP : P = (edgeVertices K (a : Real.Angle)).1) + (hQ : Q = (edgeVertices K (b : Real.Angle)).2) + (hleft : ∀ s ∈ Set.Ioc (t - Real.pi) a, exposedEdge K' s = {P}) + (hmiddle : ∀ s ∈ Set.Ioo a b, exposedEdge K' s = exposedEdge K s) + (hright : ∀ s ∈ Set.Ico b (t + Real.pi), exposedEdge K' s = {Q}) + (hterminal : exposedEdge K' (t + Real.pi) = segment ℝ Q P) + (hInt : (interior (K' : Set Point)).Nonempty) : + convexBoundaryArc K a b ∩ segment ℝ P Q = {P, Q} := by + have hPa : P ∈ exposedEdge K' (a : ℝ) := by + rw [hleft a ⟨by linarith [Real.pi_pos], le_rfl⟩] + simp + have hQb : Q ∈ exposedEdge K' (b : ℝ) := by + rw [hright b ⟨le_rfl, by linarith [Real.pi_pos]⟩] + simp + have hPterm : P ∈ exposedEdge K' (t + Real.pi) := by + rw [hterminal] + exact right_mem_segment ℝ Q P + have hQterm : Q ∈ exposedEdge K' (t + Real.pi) := by + rw [hterminal] + exact left_mem_segment ℝ Q P + apply Set.Subset.antisymm + · rintro x ⟨hxarc, hxseg⟩ + rcases hxarc with hxarc | hxQ + · rcases hxarc with hxP | hxmid + · left + simpa [hP] using hxP + · rcases Set.mem_iUnion.mp hxmid with ⟨s, hxmid⟩ + rcases Set.mem_iUnion.mp hxmid with ⟨hs, hxsK⟩ + have hxs : x ∈ exposedEdge K' (s : ℝ) := by + rw [hmiddle s hs] + exact hxsK + rw [segment_eq_image] at hxseg + obtain ⟨r, hr, hxr⟩ := hxseg + by_cases hr0 : r = 0 + · left + subst r + simpa using hxr.symm + by_cases hr1 : r = 1 + · right + subst r + simpa using hxr.symm + have hrpos : 0 < r := lt_of_le_of_ne hr.1 (Ne.symm hr0) + have hrlt : r < 1 := lt_of_le_of_ne hr.2 hr1 + have hPK : P ∈ K' := hPa.1 + have hQK : Q ∈ K' := hQb.1 + have hPLe := inner_le_supportValue K' hPK (s : Real.Angle) + have hQLe := inner_le_supportValue K' hQK (s : Real.Angle) + have hxEq := hxs.2 + change inner ℝ x (normalVector (s : Real.Angle)) = + supportValue K' (s : Real.Angle) at hxEq + rw [← hxr, inner_add_left, inner_smul_left, inner_smul_left] at hxEq + simp only [map_sub, map_one, RCLike.conj_to_real] at hxEq + have hPEq : inner ℝ P (normalVector (s : Real.Angle)) = + supportValue K' (s : Real.Angle) := by + nlinarith + have hQEq : inner ℝ Q (normalVector (s : Real.Angle)) = + supportValue K' (s : Real.Angle) := by + nlinarith + have hPs : P ∈ exposedEdge K' (s : ℝ) := ⟨hPK, hPEq⟩ + have hQs : Q ∈ exposedEdge K' (s : ℝ) := ⟨hQK, hQEq⟩ + have hos : inner ℝ (Q - P) (normalVector (s : Real.Angle)) = 0 := by + rw [inner_sub_left, hPEq, hQEq] + ring + have hot : inner ℝ (Q - P) (normalVector (t + Real.pi : Real.Angle)) = 0 := by + change inner ℝ (Q - P) + (normalVector (((t + Real.pi : ℝ) : Real.Angle))) = 0 + rw [normalVector_add_pi, inner_neg_right, inner_sub_left, hPt, hQt] + ring + have hQP : Q - P ≠ 0 := sub_ne_zero.mpr (Ne.symm hPQ) + have hang : (s : Real.Angle) = ((t + Real.pi : ℝ) : Real.Angle) := + exteriorNormal_eq_of_orthogonal_of_interior_nonempty_cut K' hInt hQP + (isExteriorNormal_of_mem_exposedEdge K' hPs) + (isExteriorNormal_of_mem_exposedEdge K' hPterm) hos hot + have hnv := congrArg normalVector hang + have hcos : Real.cos (s - (t + Real.pi)) = 1 := by + rw [← inner_normalVector_normalVector s (t + Real.pi), hnv, + inner_normalVector_self] + have htupper : t < a + Real.pi := lt_trans htb hba + have hlower : -(2 * Real.pi) < s - (t + Real.pi) := by + nlinarith [hs.1, htupper] + have hupper : s - (t + Real.pi) < 2 * Real.pi := by + nlinarith [hs.2, hat, Real.pi_pos] + have := (Real.cos_eq_one_iff_of_lt_of_lt hlower hupper).mp hcos + have hbtpi : b < t + Real.pi := by nlinarith [hba, hat] + linarith [hs.2, hbtpi] + · right + simpa [hQ] using hxQ + · intro x hx + rcases hx with hx | hx + · subst x + constructor + · left + left + simp [hP] + · exact left_mem_segment ℝ P Q + · subst x + constructor + · right + simp [hQ] + · exact right_mem_segment ℝ P Q + +/-- A convex body admits a counterclockwise BV frontier parametrization based off a fixed face. -/ +theorem exists_closedBVJordan_frontier_base_not_mem_chord + (K : ConvexBody Point) (t : ℝ) (P Q : Point) + (hInt : (interior (K : Set Point)).Nonempty) + (hterminal : exposedEdge K (t + Real.pi) = segment ℝ Q P) : + ∃ (a b : ℝ) (x : ContinuousBVPaths a b), + ∃ hab : a < b, IsOrientedJordanParametrization hab.le (frontier (K : Set Point)) + true x.val ∧ x.val ⟨a, le_rfl, hab.le⟩ ∉ segment ℝ P Q := by + obtain ⟨R, hRt⟩ := exposedEdge_nonempty K (t : Real.Angle) + have hRnot : R ∉ segment ℝ P Q := by + intro hRseg + have hRopp : R ∈ exposedEdge K (t + Real.pi) := by + rw [hterminal] + simpa [segment_symm] using hRseg + have hv : tangentVector (t : Real.Angle) ≠ 0 := by + intro hzero + have := inner_tangentVector_self t + rw [hzero, inner_zero_left] at this + norm_num at this + have hot : inner ℝ (tangentVector (t : Real.Angle)) + (normalVector (t : Real.Angle)) = 0 := by + rw [real_inner_comm] + exact inner_normalVector_tangentVector t + have hopp : inner ℝ (tangentVector (t : Real.Angle)) + (normalVector (t + Real.pi : Real.Angle)) = 0 := by + change inner ℝ (tangentVector (t : Real.Angle)) + (normalVector (((t + Real.pi : ℝ) : Real.Angle))) = 0 + rw [normalVector_add_pi, inner_neg_right, hot, neg_zero] + have hang : (t : Real.Angle) = ((t + Real.pi : ℝ) : Real.Angle) := + exteriorNormal_eq_of_orthogonal_of_interior_nonempty_cut K hInt hv + (isExteriorNormal_of_mem_exposedEdge K hRt) + (isExteriorNormal_of_mem_exposedEdge K hRopp) hot hopp + have hnv := congrArg normalVector hang + change normalVector (t : Real.Angle) = + normalVector (((t + Real.pi : ℝ) : Real.Angle)) at hnv + rw [normalVector_add_pi] at hnv + have hz : normalVector (t : Real.Angle) = 0 := by + ext i + have hi := congrFun (congrArg WithLp.ofLp hnv) i + simp only [PiLp.neg_apply] at hi + have : (normalVector (t : Real.Angle)) i = 0 := by linarith + exact this + have := norm_normalVector (t : Real.Angle) + rw [hz, norm_zero] at this + norm_num at this + obtain ⟨o, ho⟩ := hInt + obtain ⟨ρ, e, C, γ, hradial, he, hLip, hγ, hγJordan, hinterior⟩ := + convexBody_radial_boundary K o ho + have hRrange : R ∈ Set.range γ.val := by + rw [hγJordan.2.2.2.1] + exact exposedEdge_subset_frontier K (t : Real.Angle) hRt + obtain ⟨s, hstop, hsR⟩ := exists_param_lt_top_of_mem_range (by positivity) γ.val + hγJordan.2.2.2.2.1 hRrange + by_cases hs0 : (s : ℝ) = 0 + · refine ⟨0, 2 * Real.pi, γ, mul_pos (by norm_num) Real.pi_pos, hγJordan, ?_⟩ + have hs : s = ⟨0, le_rfl, (mul_pos (by norm_num) Real.pi_pos).le⟩ := + Subtype.ext hs0 + rw [← hsR, hs] at hRnot + exact hRnot + · have hspos : 0 < (s : ℝ) := lt_of_le_of_ne s.property.1 (Ne.symm hs0) + obtain ⟨r, hrJordan, hr⟩ := + exists_oriented_cyclic_rotation_eq_concat (by positivity) γ hγJordan s hspos hstop + refine ⟨0, 2, r, by norm_num, hrJordan, ?_⟩ + simpa [hr, Function.concatUnitIntervals, hsR] using hRnot + +end MovingSofa + +noncomputable section + +namespace MovingSofa + +/-- The nonterminal boundary of a convex cut body realizes the corresponding convex boundary arc. -/ +theorem exists_rectifiableOrientedArc_convexBoundaryArc_of_cut + (K K' : ConvexBody Point) (a b t c : ℝ) (P Q : Point) + (hat : a < t) (htb : t < b) (hba : b < a + Real.pi) + (hPQ : P ≠ Q) + (hPt : inner ℝ P (normalVector (t : Real.Angle)) = c) + (hQt : inner ℝ Q (normalVector (t : Real.Angle)) = c) + (hP : P = (edgeVertices K (a : Real.Angle)).1) + (hQ : Q = (edgeVertices K (b : Real.Angle)).2) + (hleft : ∀ s ∈ Set.Ioc (t - Real.pi) a, exposedEdge K' s = {P}) + (hmiddle : ∀ s ∈ Set.Ioo a b, exposedEdge K' s = exposedEdge K s) + (hright : ∀ s ∈ Set.Ico b (t + Real.pi), exposedEdge K' s = {Q}) + (hterminal : exposedEdge K' (t + Real.pi) = segment ℝ Q P) + (hInt : (interior (K' : Set Point)).Nonempty) : + ∃ A : RectifiableOrientedArc, + A.val.carrier = convexBoundaryArc K a b ∧ + A.val.startPoint = P ∧ A.val.endPoint = Q := by + have hfrontier := frontier_eq_convexBoundaryArc_union_segment_of_cut + K K' a b t P Q hat htb hba hP hQ hleft hmiddle hright hterminal hInt + have hinter := convexBoundaryArc_inter_segment_eq_endpoints_of_cut + K K' a b t c P Q hat htb hba hPQ hPt hQt hP hQ hleft hmiddle hright + hterminal hInt + obtain ⟨α, β, x, hαβ, hx, hbase⟩ := + exists_closedBVJordan_frontier_base_not_mem_chord K' t P Q hInt hterminal + exact exists_rectifiableOrientedArc_of_closedJordan_cut hαβ hx P Q hPQ hbase + hfrontier hinter + +private theorem isExposed_exposedEdge_jordan (K : ConvexBody Point) (t : Real.Angle) : + IsExposed ℝ (K : Set Point) (exposedEdge K t) := + isExposed_exposedEdge K t + +/-- A singleton exposed face of a segment is one of its endpoints. -/ +theorem endpoint_of_exposedEdge_eq_singleton_of_eq_segment + (K : ConvexBody Point) (x y P : Point) (s : Real.Angle) + (hK : (K : Set Point) = segment ℝ x y) + (hface : exposedEdge K s = {P}) : x = P ∨ y = P := by + have hPextreme : P ∈ Set.extremePoints ℝ (K : Set Point) := by + have hexposed : IsExposed ℝ (K : Set Point) {P} := by + rw [← hface] + exact isExposed_exposedEdge_jordan K s + exact hexposed.isExtreme.mem_extremePoints + rw [mem_extremePoints_iff_forall_segment] at hPextreme + have hxK : x ∈ (K : Set Point) := by rw [hK]; exact left_mem_segment ℝ x y + have hyK : y ∈ (K : Set Point) := by rw [hK]; exact right_mem_segment ℝ x y + have hPseg : P ∈ segment ℝ x y := by rw [← hK]; exact hPextreme.1 + exact hPextreme.2 x hxK y hyK hPseg + +/-- A cut body with empty interior has its selected boundary arc equal to the endpoint segment. -/ +theorem convexBoundaryArc_eq_segment_of_cut_interior_empty + (K K' : ConvexBody Point) (a b t c : ℝ) (P Q : Point) + (hat : a < t) (htb : t < b) (hba : b < a + Real.pi) + (hPQ : P ≠ Q) + (hPt : inner ℝ P (normalVector (t : Real.Angle)) = c) + (hQt : inner ℝ Q (normalVector (t : Real.Angle)) = c) + (hP : P = (edgeVertices K (a : Real.Angle)).1) + (hQ : Q = (edgeVertices K (b : Real.Angle)).2) + (hleft : ∀ s ∈ Set.Ioc (t - Real.pi) a, exposedEdge K' s = {P}) + (hmiddle : ∀ s ∈ Set.Ioo a b, exposedEdge K' s = exposedEdge K s) + (hright : ∀ s ∈ Set.Ico b (t + Real.pi), exposedEdge K' s = {Q}) + (hInt : interior (K' : Set Point) = ∅) : + convexBoundaryArc K a b = segment ℝ P Q := by + have hPmem : P ∈ (K' : Set Point) := by + have ha : a ∈ Set.Ioc (t - Real.pi) a := ⟨by linarith, le_rfl⟩ + have : P ∈ exposedEdge K' (a : Real.Angle) := by rw [hleft a ha]; simp + exact this.1 + have hQmem : Q ∈ (K' : Set Point) := by + have hb : b ∈ Set.Ico b (t + Real.pi) := ⟨le_rfl, by linarith⟩ + have : Q ∈ exposedEdge K' (b : Real.Angle) := by rw [hright b hb]; simp + exact this.1 + have hnsub : ¬(K' : Set Point).Subsingleton := by + intro hs + exact hPQ (hs hPmem hQmem) + obtain ⟨x, y, hxy, hK'⟩ := K'.exists_eq_segment_of_interior_empty hnsub hInt + have hxP : x = P ∨ y = P := endpoint_of_exposedEdge_eq_singleton_of_eq_segment + K' x y P (a : Real.Angle) hK' (hleft a ⟨by linarith, le_rfl⟩) + have hxQ : x = Q ∨ y = Q := endpoint_of_exposedEdge_eq_singleton_of_eq_segment + K' x y Q (b : Real.Angle) hK' (hright b ⟨le_rfl, by linarith⟩) + have hK'PQ : (K' : Set Point) = segment ℝ P Q := by + rcases hxP with rfl | rfl <;> rcases hxQ with hxQ | hxQ + · exact (hPQ hxQ).elim + · simpa [hxQ] using hK' + · simpa [hxQ, segment_symm ℝ] using hK' + · exact (hPQ hxQ).elim + have horth : inner ℝ (Q - P) (normalVector (t : Real.Angle)) = 0 := by + rw [inner_sub_left, hQt, hPt, sub_self] + let d : Point × Point × Real.Angle := (P, Q, (t : Real.Angle)) + have hd : IsSegmentPresentation K' d := ⟨hPQ, hK'PQ, horth⟩ + have hface : exposedEdge K (t : Real.Angle) = (K' : Set Point) := by + rw [← hmiddle t ⟨hat, htb⟩] + exact exposedEdge_eq_segment_of_orthogonal K' d hd (t : Real.Angle) horth + apply Set.Subset.antisymm + · rw [convexBoundaryArc] + refine Set.union_subset (Set.union_subset (by + intro z hz + simp only [Set.mem_singleton_iff] at hz + subst z + rw [hP] + exact left_mem_segment ℝ _ _) ?_) (by + intro z hz + simp only [Set.mem_singleton_iff] at hz + subst z + rw [hQ] + exact right_mem_segment ℝ _ _) + refine Set.iUnion₂_subset fun s hs z hz ↦ ?_ + rw [← hK'PQ] + have hz' : z ∈ exposedEdge K' (s : Real.Angle) := by + rw [hmiddle s hs] + exact hz + exact hz'.1 + · intro z hz + have hzK' : z ∈ (K' : Set Point) := by rw [hK'PQ]; exact hz + have hzface : z ∈ exposedEdge K (t : Real.Angle) := by rw [hface]; exact hzK' + rw [convexBoundaryArc] + apply Set.mem_union_left + apply Set.mem_union_right + apply Set.mem_iUnion.mpr + refine ⟨t, Set.mem_iUnion.mpr ⟨⟨hat, htb⟩, hzface⟩⟩ + +end MovingSofa + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Convex / Arc Area +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +/-- An oriented rectifiable arc agrees with the prescribed convex boundary arc and its +endpoints. -/ +def RealizesConvexArc (K : ConvexBody Point) (a b : ℝ) + (Γ : RectifiableOrientedArc) : Prop := + Γ.val.carrier = convexBoundaryArc K a b ∧ + Γ.val.startPoint = (edgeVertices K (a : Real.Angle)).1 ∧ + Γ.val.endPoint = (edgeVertices K (b : Real.Angle)).2 + +/-- The signed area of a realization of the convex boundary arc, or zero if none exists. -/ +def convexArcArea (K : ConvexBody Point) (a b : ℝ) : ℝ := by + classical + exact if h : ∃ Γ, RealizesConvexArc K a b Γ then jordanArcArea h.choose else 0 + +/-- Every realization of a convex boundary arc computes that arc's signed area. -/ +theorem convexArcArea_eq_jordanArcArea_of_realizes {K : ConvexBody Point} {a b : ℝ} + {Γ : RectifiableOrientedArc} (hΓ : RealizesConvexArc K a b Γ) : + convexArcArea K a b = jordanArcArea Γ := by + rw [convexArcArea, dite_eq_left ⟨Γ, hΓ⟩] + let Δ := Classical.choose (show ∃ Γ, RealizesConvexArc K a b Γ from ⟨Γ, hΓ⟩) + have hΔ : RealizesConvexArc K a b Δ := + Classical.choose_spec (show ∃ Γ, RealizesConvexArc K a b Γ from ⟨Γ, hΓ⟩) + change curveAreaFunctional (Classical.choice Δ.property).path = + curveAreaFunctional (Classical.choice Γ.property).path + exact (curveArea_reparametrization.2.1 Δ Γ + (Classical.choice Δ.property) (Classical.choice Γ.property) + (hΔ.1.trans hΓ.1.symm)).1 + (hΔ.2.1.trans hΓ.2.1.symm) (hΔ.2.2.trans hΓ.2.2.symm) + +/-- Any bounded-variation parametrization of a convex boundary arc computes that arc's signed +area. -/ +theorem convexArcArea_eq_curveAreaFunctional_of_realizes {K : ConvexBody Point} {a b : ℝ} + {Γ : OrientedJordanArc} (p : ArcBVParametrization Γ) + (hΓ : RealizesConvexArc K a b ⟨Γ, ⟨p⟩⟩) : + convexArcArea K a b = curveAreaFunctional p.path := by + rw [convexArcArea_eq_jordanArcArea_of_realizes hΓ] + exact (curveArea_arc_same_carrier Γ Γ + (Classical.choice (⟨Γ, ⟨p⟩⟩ : RectifiableOrientedArc).property) p rfl).1 rfl rfl + +/-- A continuous bounded-variation path on `[a, b]` that traces a convex boundary arc +injectively, from the arc's first vertex to its last, computes that arc's signed area. -/ +theorem convexArcArea_eq_curveAreaFunctional_of_injOn {K : ConvexBody Point} {α β a b : ℝ} + {f : ℝ → Point} (x : ContinuousBVPaths a b) (hab : a < b) + (hx : ∀ t : Set.Icc a b, x.val t = f t) (hinj : Set.InjOn f (Set.Icc a b)) + (himage : f '' Set.Icc a b = convexBoundaryArc K α β) + (hstart : f a = (edgeVertices K (α : Real.Angle)).1) + (hend : f b = (edgeVertices K (β : Real.Angle)).2) : + convexArcArea K α β = curveAreaFunctional x := by + have hxinj : Function.Injective x.val := fun s t hst ↦ + Subtype.ext (hinj s.2 t.2 (by rw [← hx s, ← hx t, hst])) + have hrange : Set.range x.val = convexBoundaryArc K α β := by + rw [← himage, Set.image_eq_range] + exact congrArg Set.range (funext hx) + have hstart' : x.val ⟨a, le_rfl, hab.le⟩ = (edgeVertices K (α : Real.Angle)).1 := by + rw [hx, hstart] + have hend' : x.val ⟨b, hab.le, le_rfl⟩ = (edgeVertices K (β : Real.Angle)).2 := by + rw [hx, hend] + let Γ : OrientedJordanArc := + { carrier := convexBoundaryArc K α β + startPoint := (edgeVertices K (α : Real.Angle)).1 + endPoint := (edgeVertices K (β : Real.Angle)).2 + parametrizable := + ⟨a, b, hab.le, x.val, x.property.1, hxinj, hrange, hstart', hend'⟩ } + exact convexArcArea_eq_curveAreaFunctional_of_realizes (Γ := Γ) + ⟨a, b, hab.le, x, hxinj, hrange, hstart', hend'⟩ ⟨rfl, rfl, rfl⟩ + +private theorem exists_degenerate_convexArc (K : ConvexBody Point) (a b : ℝ) + (hab : a < b) (hba : b < a + Real.pi) + (heq : (edgeVertices K (a : Real.Angle)).1 = + (edgeVertices K (b : Real.Angle)).2) : + ∃ Γ : RectifiableOrientedArc, + RealizesConvexArc K a b Γ ∧ convexArcArea K a b = jordanArcArea Γ ∧ + (Γ.val.startPoint = Γ.val.endPoint → Γ.val.carrier = {Γ.val.startPoint}) := by + let P := (edgeVertices K (a : Real.Angle)).1 + have hcut := (convexBoundaryArc_cut K a b hab hba P P (supportingIntersection K a b) + rfl heq rfl).1 rfl + obtain ⟨Γ, hcarrier, hstart, hend, _⟩ := (segmentArea_jordan_and_frame P P).1 + have hreal : RealizesConvexArc K a b Γ := by + refine ⟨hcarrier.trans (segment_same ℝ P) |>.trans hcut.2.symm, + hstart, hend.trans heq⟩ + exact ⟨Γ, hreal, convexArcArea_eq_jordanArcArea_of_realizes hreal, fun _ ↦ by + rw [hcarrier, segment_same, hstart]⟩ + +private theorem surfaceAreaMeasure_openArc_eq_zero_of_convexBoundaryArc_eq_singleton + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + {P : Point} (hArc : convexBoundaryArc K a b = {P}) : + surfaceAreaMeasure K ((fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b) = 0 := by + let E := (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b + have hmeas : MeasurableSet E := (Real.Angle.isOpen_image_Ioo a b).measurableSet + have hsubset : E ⊆ (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Icc a b := + Set.image_mono Set.Ioo_subset_Icc_self + rw [(surfaceAreaMeasure_face_union K).2.2.2.2 E hmeas + (Or.inr ⟨a, b, hab.le, hba, hsubset⟩)] + have hunion_sub : (⋃ t ∈ E, exposedEdge K t) ⊆ {P} := by + intro x hx + simp only [Set.mem_iUnion] at hx + obtain ⟨t, ht⟩ := hx + obtain ⟨htE, hxt⟩ := ht + obtain ⟨r, hr, rfl⟩ := htE + have hxArc : x ∈ convexBoundaryArc K a b := by + change x ∈ ({(edgeVertices K (a : Real.Angle)).1} ∪ + (⋃ t ∈ Set.Ioo a b, exposedEdge K (t : Real.Angle))) ∪ + {(edgeVertices K (b : Real.Angle)).2} + apply Set.mem_union_left + apply Set.mem_union_right + exact Set.mem_iUnion.2 ⟨r, Set.mem_iUnion.2 ⟨hr, hxt⟩⟩ + rw [hArc] at hxArc + exact hxArc + have hunion_nonempty : (⋃ t ∈ E, exposedEdge K t).Nonempty := by + let r := (a + b) / 2 + have hr : r ∈ Set.Ioo a b := by dsimp [r]; constructor <;> linarith + obtain ⟨x, hx⟩ := exposedEdge_nonempty K (r : Real.Angle) + exact ⟨x, Set.mem_iUnion.2 ⟨(r : Real.Angle), Set.mem_iUnion.2 + ⟨⟨r, hr, rfl⟩, hx⟩⟩⟩ + have hunion : (⋃ t ∈ E, exposedEdge K t) = {P} := + Set.Nonempty.subset_singleton_iff hunion_nonempty |>.mp hunion_sub + rw [hunion] + let _ := MeasureTheory.Measure.nullSingletonClass_hausdorff Point + (by norm_num : (0 : ℝ) < 1) + exact measure_singleton P + +private theorem convexArcArea_eq_integral_of_endpoints_eq (K : ConvexBody Point) + {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (heq : (edgeVertices K (a : Real.Angle)).1 = + (edgeVertices K (b : Real.Angle)).2) : + convexArcArea K a b = + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K t ∂surfaceAreaMeasure K) / 2 := by + let P := (edgeVertices K (a : Real.Angle)).1 + have hcut := (convexBoundaryArc_cut K a b hab hba P P (supportingIntersection K a b) + rfl heq rfl).1 rfl + obtain ⟨Γ, hcarrier, hstart, hend, hΓarea⟩ := (segmentArea_jordan_and_frame P P).1 + have hreal : RealizesConvexArc K a b Γ := by + refine ⟨hcarrier.trans (segment_same ℝ P) |>.trans hcut.2.symm, + hstart, hend.trans heq⟩ + rw [convexArcArea_eq_jordanArcArea_of_realizes hreal, hΓarea] + have hμ := surfaceAreaMeasure_openArc_eq_zero_of_convexBoundaryArc_eq_singleton + K hab hba hcut.2 + rw [MeasureTheory.setIntegral_measure_zero _ hμ] + simp [segmentArea, planeCrossProduct] + ring + +private theorem exists_pos_smul_tangentVector_of_cut + (K : ConvexBody Point) {a t : ℝ} (hat : a < t) (hta : t < a + Real.pi) + {P Q : Point} (hP : P = (edgeVertices K (a : Real.Angle)).1) + (hQK : Q ∈ K) (hne : P ≠ Q) + (hnormal : inner ℝ P (normalVector (t : Real.Angle)) = + inner ℝ Q (normalVector (t : Real.Angle))) : + ∃ d : ℝ, 0 < d ∧ Q - P = d • tangentVector (t : Real.Angle) := by + let d := inner ℝ (Q - P) (tangentVector (t : Real.Angle)) + have hnormal0 : inner ℝ (Q - P) (normalVector (t : Real.Angle)) = 0 := by + rw [inner_sub_left, hnormal, sub_self] + have hdecomp : Q - P = d • tangentVector (t : Real.Angle) := by + rw [← inner_normalVector_smul_add_inner_tangentVector_smul + (Q - P) (t : Real.Angle), hnormal0, zero_smul, zero_add] + have hPa : inner ℝ P (normalVector (a : Real.Angle)) = supportValue K a := by + rw [hP] + exact (edgeVertices_fst_mem K (a : Real.Angle)).2 + have hQa : inner ℝ Q (normalVector (a : Real.Angle)) ≤ supportValue K a := + inner_le_supportValue K hQK (a : Real.Angle) + have hinner : inner ℝ (Q - P) (normalVector (a : Real.Angle)) ≤ 0 := by + rw [inner_sub_left, hPa] + linarith + have hsin : 0 < Real.sin (t - a) := Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hat) (by linarith) + have htana : inner ℝ (tangentVector (t : Real.Angle)) + (normalVector (a : Real.Angle)) = -Real.sin (t - a) := by + rw [real_inner_comm] + have h := sin_sub_eq_neg_inner_normalVector_tangentVector + (a : Real.Angle) (t : Real.Angle) + have h' : (((t - a : ℝ) : Real.Angle)).sin = + -inner ℝ (normalVector (a : Real.Angle)) (tangentVector (t : Real.Angle)) := by + simpa only [Real.Angle.coe_sub] using h + rw [Real.Angle.sin_coe] at h' + linarith + have hdnonneg : 0 ≤ d := by + rw [hdecomp, real_inner_smul_left, htana] at hinner + nlinarith + have hdne : d ≠ 0 := by + intro hd + apply hne + have : Q - P = 0 := by rw [hdecomp, hd, zero_smul] + exact (sub_eq_zero.mp this).symm + exact ⟨d, lt_of_le_of_ne hdnonneg (Ne.symm hdne), hdecomp⟩ + +/-- The half support integral against a surface measure is convex-bilinear in the pair of +bodies, by convex-linearity of support functions and surface measures. -/ +theorem convexArcIntegral_bilinear (a b : ℝ) : + IsConvexBilinear convexBodyCombination convexBodyCombination realCombination + (fun K L : ConvexBody Point ↦ (1 / 2 : ℝ) * + ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K t ∂surfaceAreaMeasure L) := by + let E := (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b + have hcont (K : ConvexBody Point) : Continuous (fun u : Real.Angle ↦ supportValue K u) := + (compactSet_support_continuity K K K.nonempty K.isCompact K.nonempty K.isCompact).2.2.1 + have hint (K L : ConvexBody Point) : + Integrable (fun u : Real.Angle ↦ supportValue K u) (surfaceAreaMeasure L) := by + let _ : IsFiniteMeasure (surfaceAreaMeasure L) := (surfaceAreaMeasure_face_union L).1 + exact (hcont K).integrable_of_hasCompactSupport + (isCompact_univ.of_isClosed_subset isClosed_closure (Set.subset_univ _)) + constructor + · intro K t L M + have hmeasure := (convexBody_maps_linear t L M).2.2.2 + change (1 / 2 : ℝ) * (∫ u in E, supportValue K u ∂surfaceAreaMeasure + (convexBodyCombination t L M)) = _ + simp only [realCombination] + rw [hmeasure, Measure.restrict_add, Measure.restrict_smul, Measure.restrict_smul, + integral_add_measure ((hint K L).restrict.smul_measure ENNReal.ofReal_ne_top) + ((hint K M).restrict.smul_measure ENNReal.ofReal_ne_top)] + simp only [integral_smul_measure, ENNReal.toReal_ofReal, + sub_nonneg.mpr (show (t : ℝ) ≤ 1 from t.property.2), t.property.1] + ring + · intro L t K M + change (1 / 2 : ℝ) * (∫ u in E, supportValue (convexBodyCombination t K M) u + ∂surfaceAreaMeasure L) = _ + simp only [realCombination] + have hfun : (fun u : Real.Angle ↦ supportValue (convexBodyCombination t K M) u) = + fun u ↦ (1 - (t : ℝ)) * supportValue K u + (t : ℝ) * supportValue M u := by + funext u + exact (convexBody_maps_linear t K M).1 u + rw [hfun, integral_add ((hint K L).restrict.const_mul _) ((hint M L).restrict.const_mul _), + integral_const_mul, integral_const_mul] + ring + +private theorem convexArcArea_quadratic_of_integral_eq (a b : ℝ) + (harea : ∀ K : ConvexBody Point, convexArcArea K a b = + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K t ∂surfaceAreaMeasure K) / 2) : + IsQuadraticFunctional convexBodyCombination (fun K ↦ convexArcArea K a b) := by + let B := fun K L : ConvexBody Point ↦ (1 / 2 : ℝ) * + ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K t ∂surfaceAreaMeasure L + refine ⟨B, convexArcIntegral_bilinear a b, ?_⟩ + intro K + change convexArcArea K a b = B K K + rw [harea K] + simp only [B] + ring + +private theorem convexArc_area_of_realization_and_integral + (a b : ℝ) + (hgeom : ∀ K : ConvexBody Point, + ∃ Γ : RectifiableOrientedArc, + RealizesConvexArc K a b Γ ∧ + (Γ.val.startPoint = Γ.val.endPoint → Γ.val.carrier = {Γ.val.startPoint})) + (harea : ∀ K : ConvexBody Point, convexArcArea K a b = + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K t ∂surfaceAreaMeasure K) / 2) : + (∀ K : ConvexBody Point, ∃ Γ : RectifiableOrientedArc, + RealizesConvexArc K a b Γ ∧ convexArcArea K a b = jordanArcArea Γ ∧ + (Γ.val.startPoint = Γ.val.endPoint → Γ.val.carrier = {Γ.val.startPoint})) ∧ + (∀ K : ConvexBody Point, convexArcArea K a b = + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K t ∂surfaceAreaMeasure K) / 2) ∧ + IsQuadraticFunctional convexBodyCombination (fun K ↦ convexArcArea K a b) := by + refine ⟨?_, harea, convexArcArea_quadratic_of_integral_eq a b harea⟩ + intro K + obtain ⟨Γ, hreal, hsingleton⟩ := hgeom K + exact ⟨Γ, hreal, convexArcArea_eq_jordanArcArea_of_realizes hreal, hsingleton⟩ + +private theorem exists_convexArc_realization (a b : ℝ) (hab : a < b) + (hba : b < a + Real.pi) (K : ConvexBody Point) : + ∃ Γ : RectifiableOrientedArc, + RealizesConvexArc K a b Γ ∧ + (Γ.val.startPoint = Γ.val.endPoint → Γ.val.carrier = {Γ.val.startPoint}) := by + by_cases heq : (edgeVertices K (a : Real.Angle)).1 = + (edgeVertices K (b : Real.Angle)).2 + · obtain ⟨Γ, hreal, -, hsingleton⟩ := exists_degenerate_convexArc K a b hab hba heq + exact ⟨Γ, hreal, hsingleton⟩ + · let P := (edgeVertices K (a : Real.Angle)).1 + let Q := (edgeVertices K (b : Real.Angle)).2 + let O := supportingIntersection K a b + obtain ⟨-, hcut⟩ := convexBoundaryArc_cut K a b hab hba P Q O rfl rfl rfl + obtain ⟨hncol, t, c, K', hat, htb, hPt, hQt, hcO, hK', hleft, hmiddle, + hright, hterminal⟩ := hcut heq + by_cases hInt : (interior (K' : Set Point)).Nonempty + · obtain ⟨Γ, hcarrier, hstart, hend⟩ := + exists_rectifiableOrientedArc_convexBoundaryArc_of_cut K K' a b t c P Q + hat htb hba heq hPt hQt rfl rfl hleft hmiddle hright hterminal hInt + have hreal : RealizesConvexArc K a b Γ := ⟨hcarrier, hstart, hend⟩ + refine ⟨Γ, hreal, ?_⟩ + intro hendpoints + exact (heq (hstart.symm.trans (hendpoints.trans hend))) |>.elim + · have hInt' : interior (K' : Set Point) = ∅ := Set.not_nonempty_iff_eq_empty.mp hInt + have harc := convexBoundaryArc_eq_segment_of_cut_interior_empty K K' a b t c P Q + hat htb hba heq hPt hQt rfl rfl hleft hmiddle hright hInt' + obtain ⟨Γ, hcarrier, hstart, hend, -⟩ := (segmentArea_jordan_and_frame P Q).1 + have hreal : RealizesConvexArc K a b Γ := + ⟨hcarrier.trans harc.symm, hstart, hend⟩ + refine ⟨Γ, hreal, ?_⟩ + intro hendpoints + exact (heq (hstart.symm.trans (hendpoints.trans hend))) |>.elim + +private theorem surfaceAreaMeasure_restrict_openArc_eq_of_exposedEdge_eq + (K L : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (hfaces : ∀ s ∈ Set.Ioo a b, + exposedEdge K (s : Real.Angle) = exposedEdge L (s : Real.Angle)) : + (surfaceAreaMeasure K).restrict + ((fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b) = + (surfaceAreaMeasure L).restrict + ((fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b) := by + let E := (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b + have hE : MeasurableSet E := Real.Angle.isOpen_image_Ioo a b |>.measurableSet + apply Measure.ext + intro S hS + rw [Measure.restrict_apply hS, Measure.restrict_apply hS] + have hSE : MeasurableSet (S ∩ E) := hS.inter hE + have hdomain : S ∩ E ⊆ (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Icc a b := + Set.inter_subset_right.trans (Set.image_mono Set.Ioo_subset_Icc_self) + rw [(surfaceAreaMeasure_face_union K).2.2.2.2 (S ∩ E) hSE + (Or.inr ⟨a, b, hab.le, hba, hdomain⟩), + (surfaceAreaMeasure_face_union L).2.2.2.2 (S ∩ E) hSE + (Or.inr ⟨a, b, hab.le, hba, hdomain⟩)] + congr 2 + ext p + simp only [Set.mem_iUnion, Set.mem_inter_iff, E] + constructor + · rintro ⟨⟨hpS, s, hs, hsp⟩, hx⟩ + subst p + exact ⟨⟨hpS, ⟨s, hs, rfl⟩⟩, hfaces s hs ▸ hx⟩ + · rintro ⟨⟨hpS, s, hs, hsp⟩, hx⟩ + subst p + exact ⟨⟨hpS, ⟨s, hs, rfl⟩⟩, hfaces s hs |>.symm ▸ hx⟩ + +private theorem surfaceAreaMeasure_compl_openArc_union_terminal_eq_zero_of_cut + (K : ConvexBody Point) {a b t : ℝ} {P Q : Point} + (hleft : ∀ s ∈ Set.Ioc (t - Real.pi) a, exposedEdge K s = {P}) + (hright : ∀ s ∈ Set.Ico b (t + Real.pi), exposedEdge K s = {Q}) + (hInt : (interior (K : Set Point)).Nonempty) : + surfaceAreaMeasure K + (((fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b ∪ + {((t + Real.pi : ℝ) : Real.Angle)})ᶜ) = 0 := by + let E := (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b + let θ : Real.Angle := (t + Real.pi : ℝ) + let D := (E ∪ {θ})ᶜ + have hD : MeasurableSet D := + ((Real.Angle.isOpen_image_Ioo a b).measurableSet.union + (measurableSet_singleton θ)).compl + have hface := (surfaceAreaMeasure_face_union K).2.2.2.2 D hD (Or.inl hInt) + have hunion : (⋃ u ∈ D, exposedEdge K u) ⊆ {P, Q} := by + intro x hx + obtain ⟨u, huD, hxu⟩ := Set.mem_iUnion₂.mp hx + let _ : Fact (0 < 2 * Real.pi) := ⟨by positivity⟩ + let s := AddCircle.equivIoc (2 * Real.pi) (t - Real.pi) u + have hs : (s : ℝ) ∈ Set.Ioc (t - Real.pi) (t + Real.pi) := by + have hs' := s.property + convert hs' using 1 + ring_nf + have hsu : (((s : ℝ) : Real.Angle)) = u := AddCircle.coe_equivIoc + have hxs : x ∈ exposedEdge K (s : ℝ) := by simpa [hsu] using hxu + rcases le_or_gt (s : ℝ) a with hsa | has + · rw [hleft (s : ℝ) ⟨hs.1, hsa⟩] at hxs + exact Or.inl (by simpa using hxs) + · rcases lt_or_ge (s : ℝ) b with hsb | hbs + · exfalso + apply huD + apply Set.mem_union_left + exact ⟨s, ⟨has, hsb⟩, hsu⟩ + · rcases lt_or_eq_of_le hs.2 with hst | hst + · rw [hright (s : ℝ) ⟨hbs, hst⟩] at hxs + exact Or.inr (by simpa using hxs) + · exfalso + apply huD + apply Set.mem_union_right + simp only [Set.mem_singleton_iff, θ] + rw [← hsu, hst] + rw [show (((fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b ∪ + {((t + Real.pi : ℝ) : Real.Angle)})ᶜ) = D by rfl, hface] + let _ := Measure.nullSingletonClass_hausdorff Point (by norm_num : (0 : ℝ) < 1) + exact measure_mono_null hunion + ((Set.toFinite {P, Q}).measure_zero (Measure.hausdorffMeasure 1)) + +private theorem integral_eq_openArc_add_terminal_of_cut + (K : ConvexBody Point) {a b t : ℝ} {P Q : Point} + (hat : a < t) (htb : t < b) (hba : b < a + Real.pi) + (hleft : ∀ s ∈ Set.Ioc (t - Real.pi) a, exposedEdge K s = {P}) + (hright : ∀ s ∈ Set.Ico b (t + Real.pi), exposedEdge K s = {Q}) + (hInt : (interior (K : Set Point)).Nonempty) : + (∫ u, supportValue K u ∂surfaceAreaMeasure K) = + (∫ u in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K u ∂surfaceAreaMeasure K) + + (surfaceAreaMeasure K).real {((t + Real.pi : ℝ) : Real.Angle)} * + supportValue K ((t + Real.pi : ℝ) : Real.Angle) := by + let E := (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b + let θ : Real.Angle := (t + Real.pi : ℝ) + let C := E ∪ {θ} + let _ : IsFiniteMeasure (surfaceAreaMeasure K) := (surfaceAreaMeasure_face_union K).1 + have hcont : Continuous (fun u : Real.Angle ↦ supportValue K u) := + (compactSet_support_continuity K K K.nonempty K.isCompact K.nonempty K.isCompact).2.2.1 + have hint : Integrable (fun u : Real.Angle ↦ supportValue K u) (surfaceAreaMeasure K) := + hcont.integrable_of_hasCompactSupport + (isCompact_univ.of_isClosed_subset isClosed_closure (Set.subset_univ _)) + have hC : MeasurableSet C := + (Real.Angle.isOpen_image_Ioo a b).measurableSet.union (measurableSet_singleton θ) + have hzero : surfaceAreaMeasure K Cᶜ = 0 := by + exact surfaceAreaMeasure_compl_openArc_union_terminal_eq_zero_of_cut + K hleft hright hInt + have hdisj : Disjoint E {θ} := by + rw [Set.disjoint_singleton_right] + rintro ⟨s, hs, heq⟩ + have hlow : t - Real.pi < a := by linarith + have hupp : b < t + Real.pi := by linarith + have hsrange : s ∈ Set.Ioc (t - Real.pi) (t + Real.pi) := + ⟨hlow.trans hs.1, (hs.2.trans hupp).le⟩ + have htrange : t + Real.pi ∈ Set.Ioc (t - Real.pi) (t + Real.pi) := + ⟨by linarith [Real.pi_pos], le_rfl⟩ + have hinj := Real.Angle.injOn_coe_Ioc (by linarith [Real.pi_pos]) hsrange htrange heq + rw [hinj] at hs + exact (not_lt_of_ge hupp.le hs.2) + have hsplit := MeasureTheory.setIntegral_union hdisj (measurableSet_singleton θ) + hint.integrableOn hint.integrableOn + have hall := MeasureTheory.integral_add_compl hC hint + rw [MeasureTheory.setIntegral_measure_zero _ hzero, add_zero] at hall + rw [← hall, hsplit, MeasureTheory.integral_singleton] + rfl + +private theorem terminal_surface_term_eq_segmentArea_of_cut + (K : ConvexBody Point) {t c d : ℝ} {P Q : Point} + (hPt : inner ℝ P (normalVector (t : Real.Angle)) = c) + (hQt : inner ℝ Q (normalVector (t : Real.Angle)) = c) + (hterminal : exposedEdge K (t + Real.pi) = segment ℝ Q P) + (hd : 0 < d) (hdir : Q - P = d • tangentVector (t : Real.Angle)) : + (surfaceAreaMeasure K).real {((t + Real.pi : ℝ) : Real.Angle)} * + supportValue K ((t + Real.pi : ℝ) : Real.Angle) / 2 = + segmentArea Q P := by + let θ : Real.Angle := (t + Real.pi : ℝ) + have hterminal' : exposedEdge K θ = segment ℝ Q P := by + simpa only [θ, Real.Angle.coe_add] using hterminal + have hmass : (surfaceAreaMeasure K).real {θ} = d := by + have htangent_norm : ‖tangentVector (t : Real.Angle)‖ = 1 := by + have hsq : ‖tangentVector (t : Real.Angle)‖ ^ 2 = 1 := by + rw [← real_inner_self_eq_norm_sq, inner_tangentVector_self] + nlinarith [norm_nonneg (tangentVector (t : Real.Angle))] + rw [Measure.real, (surfaceAreaMeasure_atom_length K θ).1, hterminal', + MeasureTheory.hausdorffMeasure_segment, edist_dist] + simp only [dist_eq_norm, sub_eq_add_neg] + rw [show Q + -P = Q - P by rfl, hdir, norm_smul, htangent_norm, + mul_one, Real.norm_eq_abs, abs_of_pos hd] + exact ENNReal.toReal_ofReal hd.le + have hsupp : supportValue K θ = -c := by + have hPterm : P ∈ exposedEdge K θ := by + rw [hterminal'] + exact right_mem_segment ℝ Q P + have h := hPterm.2 + change inner ℝ P (normalVector θ) = supportValue K θ at h + change inner ℝ P (normalVector (((t + Real.pi : ℝ) : Real.Angle))) = _ at h + rw [normalVector_add_pi, inner_neg_right, hPt] at h + linarith + have hQline : Q ∈ normalLine θ (-c) := by + change inner ℝ Q (normalVector θ) = -c + change inner ℝ Q (normalVector (((t + Real.pi : ℝ) : Real.Angle))) = -c + rw [normalVector_add_pi, inner_neg_right, hQt] + have hPline : P ∈ normalLine θ (-c) := by + change inner ℝ P (normalVector θ) = -c + change inner ℝ P (normalVector (((t + Real.pi : ℝ) : Real.Angle))) = -c + rw [normalVector_add_pi, inner_neg_right, hPt] + have hdir' : P - Q = d • tangentVector θ := by + have htangent : tangentVector θ = -tangentVector (t : Real.Angle) := by + ext i + fin_cases i <;> simp [θ, tangentVector, frame] + calc + P - Q = -(Q - P) := by module + _ = -(d • tangentVector (t : Real.Angle)) := congrArg Neg.neg hdir + _ = d • tangentVector θ := by rw [htangent]; module + rw [hmass, hsupp] + rw [mul_comm] + exact ((segmentArea_jordan_and_frame Q P).2 θ (-c) d hQline hPline hdir').symm + +private theorem supportValue_eq_of_exposedEdge_eq (K L : ConvexBody Point) + (t : Real.Angle) (hface : exposedEdge K t = exposedEdge L t) : + supportValue K t = supportValue L t := by + obtain ⟨p, hp⟩ := exposedEdge_nonempty K t + have hp' : p ∈ exposedEdge L t := hface ▸ hp + exact hp.2.symm.trans hp'.2 + +private theorem integral_openArc_eq_of_exposedEdge_eq + (K L : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (hfaces : ∀ s ∈ Set.Ioo a b, + exposedEdge K (s : Real.Angle) = exposedEdge L (s : Real.Angle)) : + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K t ∂surfaceAreaMeasure K) = + ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue L t ∂surfaceAreaMeasure L := by + let E := (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b + have hμ := surfaceAreaMeasure_restrict_openArc_eq_of_exposedEdge_eq + K L hab hba hfaces + change (∫ t, supportValue K t ∂(surfaceAreaMeasure K).restrict E) = + ∫ t, supportValue L t ∂(surfaceAreaMeasure L).restrict E + rw [hμ] + apply MeasureTheory.integral_congr_ae + have hE : MeasurableSet E := Real.Angle.isOpen_image_Ioo a b |>.measurableSet + filter_upwards [ae_restrict_mem hE] with t ht + obtain ⟨s, hs, rfl⟩ := ht + exact supportValue_eq_of_exposedEdge_eq K L _ (hfaces s hs) + +private theorem jordanArcArea_eq_integral_of_cut_interior_nonempty + (K : ConvexBody Point) {a b t c d α β : ℝ} {P Q : Point} + {x : ContinuousBVPaths α β} {A : RectifiableOrientedArc} + (hαβ : α < β) + (hx : IsOrientedJordanParametrization hαβ.le (frontier (K : Set Point)) true x.val) + (hAarea : curveAreaFunctional x = jordanArcArea A + segmentArea Q P) + (hat : a < t) (htb : t < b) (hba : b < a + Real.pi) + (hPt : inner ℝ P (normalVector (t : Real.Angle)) = c) + (hQt : inner ℝ Q (normalVector (t : Real.Angle)) = c) + (hleft : ∀ s ∈ Set.Ioc (t - Real.pi) a, exposedEdge K s = {P}) + (hright : ∀ s ∈ Set.Ico b (t + Real.pi), exposedEdge K s = {Q}) + (hterminal : exposedEdge K (t + Real.pi) = segment ℝ Q P) + (hInt : (interior (K : Set Point)).Nonempty) + (hd : 0 < d) (hdir : Q - P = d • tangentVector (t : Real.Angle)) : + jordanArcArea A = + (∫ u in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K u ∂surfaceAreaMeasure K) / 2 := by + have hxarea := curveArea_eq_jordanInterior_area α β hαβ.le + (frontier (K : Set Point)) x hx + rw [jordanInterior_frontier_eq_interior K.convex K.isCompact.isClosed + K.isCompact.isBounded K.nonempty] at hxarea + have hinterarea : ClassicalResults.area (interior (K : Set Point)) = + ClassicalResults.area (K : Set Point) := by + simp only [ClassicalResults.area] + rw [measure_interior_of_null_frontier (K.convex.addHaar_frontier volume)] + rw [hinterarea, (convexBody_area_support_integral.1 K)] at hxarea + have hsplit := integral_eq_openArc_add_terminal_of_cut K hat htb hba hleft hright hInt + have hterminalArea := terminal_surface_term_eq_segmentArea_of_cut K hPt hQt hterminal + hd hdir + rw [hAarea, hsplit] at hxarea + linarith + +private theorem convexArcArea_eq_integral_of_cut_interior_nonempty + (K K' : ConvexBody Point) {a b t c d α β : ℝ} {P Q : Point} + {x : ContinuousBVPaths α β} {A : RectifiableOrientedArc} + (hαβ : α < β) + (hx : IsOrientedJordanParametrization hαβ.le (frontier (K' : Set Point)) true x.val) + (hAcarrier : A.val.carrier = convexBoundaryArc K a b) + (hAstart : A.val.startPoint = P) (hAend : A.val.endPoint = Q) + (hAarea : curveAreaFunctional x = jordanArcArea A + segmentArea Q P) + (hP : P = (edgeVertices K (a : Real.Angle)).1) + (hQ : Q = (edgeVertices K (b : Real.Angle)).2) + (hat : a < t) (htb : t < b) (hba : b < a + Real.pi) + (hPt : inner ℝ P (normalVector (t : Real.Angle)) = c) + (hQt : inner ℝ Q (normalVector (t : Real.Angle)) = c) + (hmiddle : ∀ s ∈ Set.Ioo a b, exposedEdge K' s = exposedEdge K s) + (hleft : ∀ s ∈ Set.Ioc (t - Real.pi) a, exposedEdge K' s = {P}) + (hright : ∀ s ∈ Set.Ico b (t + Real.pi), exposedEdge K' s = {Q}) + (hterminal : exposedEdge K' (t + Real.pi) = segment ℝ Q P) + (hInt : (interior (K' : Set Point)).Nonempty) + (hd : 0 < d) (hdir : Q - P = d • tangentVector (t : Real.Angle)) : + convexArcArea K a b = + (∫ u in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K u ∂surfaceAreaMeasure K) / 2 := by + have hreal : RealizesConvexArc K a b A := ⟨hAcarrier, hAstart.trans hP, hAend.trans hQ⟩ + rw [convexArcArea_eq_jordanArcArea_of_realizes hreal] + rw [jordanArcArea_eq_integral_of_cut_interior_nonempty K' hαβ hx hAarea + hat htb hba hPt hQt hleft hright hterminal hInt hd hdir] + exact congrArg (fun z : ℝ ↦ z / 2) + (integral_openArc_eq_of_exposedEdge_eq K' K (hat.trans htb) hba hmiddle) + +private theorem integral_openArc_eq_segmentArea_of_segment + (K : ConvexBody Point) {a b t c d : ℝ} {P Q : Point} + (hat : a < t) (htb : t < b) (hba : b < a + Real.pi) + (hK : (K : Set Point) = segment ℝ P Q) (hPQ : P ≠ Q) + (hPt : inner ℝ P (normalVector (t : Real.Angle)) = c) + (hQt : inner ℝ Q (normalVector (t : Real.Angle)) = c) + (hd : 0 < d) (hdir : Q - P = d • tangentVector (t : Real.Angle)) : + (∫ u in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K u ∂surfaceAreaMeasure K) / 2 = segmentArea P Q := by + let E := (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b + let θ : Real.Angle := (t : ℝ) + have horth : inner ℝ (Q - P) (normalVector θ) = 0 := by + change inner ℝ (Q - P) (normalVector (t : Real.Angle)) = 0 + rw [inner_sub_left, hQt, hPt, sub_self] + have hpres : IsSegmentPresentation K (P, Q, θ) := ⟨hPQ, hK, horth⟩ + have htangent_norm : ‖tangentVector (t : Real.Angle)‖ = 1 := by + have hsq : ‖tangentVector (t : Real.Angle)‖ ^ 2 = 1 := by + rw [← real_inner_self_eq_norm_sq, inner_tangentVector_self] + nlinarith [norm_nonneg (tangentVector (t : Real.Angle))] + have hdist : dist P Q = d := by + rw [dist_eq_norm, show P - Q = -(Q - P) by module, norm_neg, hdir, + norm_smul, htangent_norm, mul_one, Real.norm_eq_abs, abs_of_pos hd] + have hE : MeasurableSet E := Real.Angle.isOpen_image_Ioo a b |>.measurableSet + have htE : θ ∈ E := ⟨t, ⟨hat, htb⟩, rfl⟩ + have hopp : θ + (Real.pi : Real.Angle) ∉ E := by + rintro ⟨s, hs, heq⟩ + have hsupper : s ≤ a + 2 * Real.pi := by + have : s < a + Real.pi := hs.2.trans hba + linarith [Real.pi_pos] + have htupper : t + Real.pi ≤ a + 2 * Real.pi := by + linarith [htb, hba, Real.pi_pos] + have hsrange : s ∈ Set.Ioc a (a + 2 * Real.pi) := ⟨hs.1, hsupper⟩ + have htrange : t + Real.pi ∈ Set.Ioc a (a + 2 * Real.pi) := + ⟨by linarith [hat, Real.pi_pos], htupper⟩ + have hinj := Real.Angle.injOn_coe_Ioc (by linarith [Real.pi_pos]) + hsrange htrange + have hst : s = t + Real.pi := hinj (by + change (s : Real.Angle) = ((t + Real.pi : ℝ) : Real.Angle) + simpa only [θ, Real.Angle.coe_add] using heq) + linarith [hs.2, hba] + have hmeasure : (surfaceAreaMeasure K).restrict E = + ENNReal.ofReal d • Measure.dirac θ := by + classical + rw [surfaceAreaMeasure_eq_segmentPresentation K (P, Q, θ) hpres, hdist, + Measure.restrict_smul, Measure.restrict_add] + simp [restrict_dirac, htE, hopp] + change (∫ u, supportValue K u ∂(surfaceAreaMeasure K).restrict E) / 2 = _ + rw [hmeasure, MeasureTheory.integral_smul_measure, MeasureTheory.integral_dirac, + ENNReal.toReal_ofReal hd.le] + have hPline : P ∈ normalLine θ c := hPt + have hQline : Q ∈ normalLine θ c := hQt + have hsupp : supportValue K θ = c := by + have hpK : P ∈ K := by + change P ∈ (K : Set Point) + rw [hK] + exact left_mem_segment ℝ P Q + have hp : P ∈ exposedEdge K θ := by + rw [exposedEdge_eq_segment_of_orthogonal K (P, Q, θ) hpres θ horth] + exact hpK + have hpEq := hp.2 + change inner ℝ P (normalVector θ) = supportValue K θ at hpEq + exact hpEq.symm.trans hPt + rw [hsupp] + simp only [smul_eq_mul] + convert ((segmentArea_jordan_and_frame P Q).2 θ c d hPline hQline hdir).symm using 1 + ring + +private theorem convexArcArea_eq_integral_of_cut_interior_empty + (K K' : ConvexBody Point) {a b t c d : ℝ} {P Q : Point} + (hat : a < t) (htb : t < b) (hba : b < a + Real.pi) + (hPQ : P ≠ Q) + (hPt : inner ℝ P (normalVector (t : Real.Angle)) = c) + (hQt : inner ℝ Q (normalVector (t : Real.Angle)) = c) + (hP : P = (edgeVertices K (a : Real.Angle)).1) + (hQ : Q = (edgeVertices K (b : Real.Angle)).2) + (hleft : ∀ s ∈ Set.Ioc (t - Real.pi) a, exposedEdge K' s = {P}) + (hmiddle : ∀ s ∈ Set.Ioo a b, exposedEdge K' s = exposedEdge K s) + (hright : ∀ s ∈ Set.Ico b (t + Real.pi), exposedEdge K' s = {Q}) + (hInt : interior (K' : Set Point) = ∅) + (hd : 0 < d) (hdir : Q - P = d • tangentVector (t : Real.Angle)) : + convexArcArea K a b = + (∫ u in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K u ∂surfaceAreaMeasure K) / 2 := by + have hPmem : P ∈ (K' : Set Point) := by + have : P ∈ exposedEdge K' (a : Real.Angle) := by + rw [hleft a ⟨by linarith [Real.pi_pos], le_rfl⟩] + simp + exact this.1 + have hQmem : Q ∈ (K' : Set Point) := by + have : Q ∈ exposedEdge K' (b : Real.Angle) := by + rw [hright b ⟨le_rfl, by linarith [Real.pi_pos]⟩] + simp + exact this.1 + have hnsub : ¬(K' : Set Point).Subsingleton := by + intro hs + exact hPQ (hs hPmem hQmem) + obtain ⟨x, y, hxy, hK'⟩ := K'.exists_eq_segment_of_interior_empty hnsub hInt + have hxP : x = P ∨ y = P := endpoint_of_exposedEdge_eq_singleton_of_eq_segment + K' x y P (a : Real.Angle) hK' (hleft a ⟨by linarith [Real.pi_pos], le_rfl⟩) + have hxQ : x = Q ∨ y = Q := endpoint_of_exposedEdge_eq_singleton_of_eq_segment + K' x y Q (b : Real.Angle) hK' (hright b ⟨le_rfl, by linarith [Real.pi_pos]⟩) + have hK'PQ : (K' : Set Point) = segment ℝ P Q := by + rcases hxP with rfl | rfl <;> rcases hxQ with hxQ | hxQ + · exact (hPQ hxQ).elim + · simpa [hxQ] using hK' + · simpa [hxQ, segment_symm ℝ] using hK' + · exact (hPQ hxQ).elim + have harc := convexBoundaryArc_eq_segment_of_cut_interior_empty K K' a b t c P Q + hat htb hba hPQ hPt hQt hP hQ hleft hmiddle hright hInt + obtain ⟨A, hAcarrier, hAstart, hAend, hAarea⟩ := + (segmentArea_jordan_and_frame P Q).1 + have hreal : RealizesConvexArc K a b A := + ⟨hAcarrier.trans harc.symm, hAstart.trans hP, hAend.trans hQ⟩ + rw [convexArcArea_eq_jordanArcArea_of_realizes hreal] + rw [hAarea] + rw [← integral_openArc_eq_segmentArea_of_segment K' hat htb hba hK'PQ hPQ + hPt hQt hd hdir] + exact congrArg (fun z : ℝ ↦ z / 2) + (integral_openArc_eq_of_exposedEdge_eq K' K (hat.trans htb) hba hmiddle) + +private theorem convexArcArea_eq_integral_of_endpoints_ne + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (hne : (edgeVertices K (a : Real.Angle)).1 ≠ + (edgeVertices K (b : Real.Angle)).2) : + convexArcArea K a b = + (∫ u in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K u ∂surfaceAreaMeasure K) / 2 := by + let P := (edgeVertices K (a : Real.Angle)).1 + let Q := (edgeVertices K (b : Real.Angle)).2 + let O := supportingIntersection K a b + obtain ⟨-, hcut⟩ := convexBoundaryArc_cut K a b hab hba P Q O rfl rfl rfl + obtain ⟨hncol, t, c, K', hat, htb, hPt, hQt, hcO, hK', hleft, hmiddle, + hright, hterminal⟩ := hcut hne + have hnormal : inner ℝ P (normalVector (t : Real.Angle)) = + inner ℝ Q (normalVector (t : Real.Angle)) := hPt.trans hQt.symm + obtain ⟨d, hd, hdir⟩ := exists_pos_smul_tangentVector_of_cut K hat + (htb.trans hba) rfl (edgeVertices_snd_mem K (b : Real.Angle)).1 hne hnormal + by_cases hInt : (interior (K' : Set Point)).Nonempty + · have hfrontier := frontier_eq_convexBoundaryArc_union_segment_of_cut + K K' a b t P Q hat htb hba rfl rfl hleft hmiddle hright hterminal hInt + have hinter := convexBoundaryArc_inter_segment_eq_endpoints_of_cut + K K' a b t c P Q hat htb hba hne hPt hQt rfl rfl hleft hmiddle hright + hterminal hInt + obtain ⟨α, β, x, hαβ, hx, hbase⟩ := + exists_closedBVJordan_frontier_base_not_mem_chord K' t P Q hInt hterminal + obtain ⟨A, hAcarrier, hAstart, hAend, hAarea⟩ := + exists_rectifiableOrientedArc_of_cut_with_area K' hαβ hx hne hbase + hfrontier hinter hPt hQt hterminal hd hdir + exact convexArcArea_eq_integral_of_cut_interior_nonempty K K' hαβ hx + hAcarrier hAstart hAend hAarea rfl rfl hat htb hba hPt hQt hmiddle hleft hright + hterminal hInt hd hdir + · exact convexArcArea_eq_integral_of_cut_interior_empty K K' hat htb hba hne + hPt hQt rfl rfl hleft hmiddle hright (Set.not_nonempty_iff_eq_empty.mp hInt) + hd hdir + +theorem convexArc_area (a b : ℝ) (hab : a < b) (hba : b < a + Real.pi) : + (∀ K : ConvexBody Point, ∃ Γ : RectifiableOrientedArc, + RealizesConvexArc K a b Γ ∧ convexArcArea K a b = jordanArcArea Γ ∧ + (Γ.val.startPoint = Γ.val.endPoint → Γ.val.carrier = {Γ.val.startPoint})) ∧ + (∀ K : ConvexBody Point, convexArcArea K a b = + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K t ∂surfaceAreaMeasure K) / 2) ∧ + IsQuadraticFunctional convexBodyCombination (fun K ↦ convexArcArea K a b) := by + apply convexArc_area_of_realization_and_integral a b + (exists_convexArc_realization a b hab hba) + intro K + by_cases heq : (edgeVertices K (a : Real.Angle)).1 = + (edgeVertices K (b : Real.Angle)).2 + · exact convexArcArea_eq_integral_of_endpoints_eq K hab hba heq + · exact convexArcArea_eq_integral_of_endpoints_ne K hab hba heq + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Convex / Arc Bilinear +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set + +namespace MovingSofa + +/-- Half the coordinate cross Stieltjes integral over the open parameter interval. -/ +def openIntervalCrossIntegral {a b : ℝ} (f : Fin 2 → RightContinuousIntervalBV a b) + (g : Set.Icc a b → Point) : ℝ := + (intervalStieltjesIntegral (f 1) (fun t ↦ g t 0) {t | a < (t : ℝ) ∧ (t : ℝ) < b} - + intervalStieltjesIntegral (f 0) (fun t ↦ g t 1) {t | a < (t : ℝ) ∧ (t : ℝ) < b}) / 2 + +/-- The half-support integral is the vertex cross Stieltjes integral, for any bounded +measurable selection from the first body's exposed edges. -/ +private theorem halfSupportIntegral_eq_openIntervalCrossIntegral + (K L : ConvexBody Point) {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) + (F : Fin 2 → RightContinuousIntervalBV a b) + (hF : ∀ (i : Fin 2) (E : Set (Icc a b)), MeasurableSet E → + (∀ t ∈ E, a < (t : ℝ)) → + intervalStieltjesMeasure (F i) E = + ∫ u in (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' E, + tangentVector u i ∂surfaceAreaMeasure L) + (W : Real.Angle → Point) (C : ℝ) + (hWm : ∀ i : Fin 2, Measurable fun t : Ioc a b ↦ W (((t : ℝ) : Real.Angle)) i) + (hWb : ∀ (u : Real.Angle) (i : Fin 2), ‖W u i‖ ≤ C) + (hWsupp : ∀ u : Real.Angle, planeCrossProduct (W u) (tangentVector u) = supportValue K u) : + ((1 / 2 : ℝ) * ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K t ∂surfaceAreaMeasure L) = + openIntervalCrossIntegral F (fun t ↦ W (((t : ℝ) : Real.Angle))) := by + have hWcoord : ∀ u : Real.Angle, + W u 0 * tangentVector u 1 - W u 1 * tangentVector u 0 = supportValue K u := hWsupp + have hE : MeasurableSet {t : Icc a b | a < (t : ℝ) ∧ (t : ℝ) < b} := + measurableSet_Ioo.preimage measurable_subtype_coe + have hEa : ∀ t ∈ {t : Icc a b | a < (t : ℝ) ∧ (t : ℝ) < b}, a < (t : ℝ) := + fun _ ht ↦ ht.1 + have himg : (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' + {t : Icc a b | a < (t : ℝ) ∧ (t : ℝ) < b} = + (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b := by + ext u + constructor + · rintro ⟨t, ht, rfl⟩ + exact ⟨(t : ℝ), ht, rfl⟩ + · rintro ⟨s, hs, rfl⟩ + exact ⟨⟨s, hs.1.le, hs.2.le⟩, hs, rfl⟩ + have hsub : (fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' + {t : Icc a b | a < (t : ℝ) ∧ (t : ℝ) < b} ⊆ + Set.range fun t : Ioc a b ↦ ((t : ℝ) : Real.Angle) := by + rintro u ⟨t, ht, rfl⟩ + exact ⟨⟨(t : ℝ), ht.1, ht.2.le⟩, rfl⟩ + have hSmeas : MeasurableSet ((fun t : Icc a b ↦ ((t : ℝ) : Real.Angle)) '' + {t : Icc a b | a < (t : ℝ) ∧ (t : ℝ) < b}) := by + rw [himg] + exact (Real.Angle.isOpen_image_Ioo a b).measurableSet + have h1 := intervalStieltjesIntegral_positiveVertex_coordinate_of_measurable L hab hturn F hF + 1 (fun u ↦ W u 0) C (hWm 0) (fun u ↦ hWb u 0) _ hE hEa + have h0 := intervalStieltjesIntegral_positiveVertex_coordinate_of_measurable L hab hturn F hF + 0 (fun u ↦ W u 1) C (hWm 1) (fun u ↦ hWb u 1) _ hE hEa + have hi1 := integrableOn_mul_tangentVector_of_bounded L hturn 1 (fun u ↦ W u 0) C (hWm 0) + (fun u ↦ hWb u 0) _ hSmeas hsub + have hi0 := integrableOn_mul_tangentVector_of_bounded L hturn 0 (fun u ↦ W u 1) C (hWm 1) + (fun u ↦ hWb u 1) _ hSmeas hsub + rw [openIntervalCrossIntegral, h1, h0, ← integral_sub hi1 hi0, + setIntegral_congr_fun hSmeas (fun u _ ↦ hWcoord u), himg] + ring + +theorem convexArc_bilinear_computation (a b : ℝ) (hab : a < b) (hba : b < a + Real.pi) : + IsConvexBilinear convexBodyCombination convexBodyCombination realCombination + (fun K L : ConvexBody Point ↦ (1 / 2 : ℝ) * + ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K t ∂surfaceAreaMeasure L) ∧ + ∃ F : ConvexBody Point → Fin 2 → RightContinuousIntervalBV a b, + (∀ K i t, (F K i).toFun t = (edgeVertices K ((t : ℝ) : Real.Angle)).1 i) ∧ + (∀ K L : ConvexBody Point, + ((1 / 2 : ℝ) * ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K t ∂surfaceAreaMeasure L) = + openIntervalCrossIntegral (F L) (fun t ↦ (edgeVertices K ((t : ℝ) : Real.Angle)).1) ∧ + ((1 / 2 : ℝ) * ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K t ∂surfaceAreaMeasure L) = + openIntervalCrossIntegral (F L) (fun t ↦ (edgeVertices K ((t : ℝ) : Real.Angle)).2)) ∧ + (∀ K : ConvexBody Point, convexArcArea K a b = + openIntervalCrossIntegral (F K) (fun t ↦ (edgeVertices K ((t : ℝ) : Real.Angle)).1)) := by + have hturn : b ≤ a + 2 * Real.pi := by linarith [Real.pi_pos] + refine ⟨convexArcIntegral_bilinear a b, ?_⟩ + choose F hFtoFun hFmeasure using fun L : ConvexBody Point ↦ + positiveVertex_stieltjes_surface L a b hab hturn + have hcross1 (K L : ConvexBody Point) : + ((1 / 2 : ℝ) * ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K t ∂surfaceAreaMeasure L) = + openIntervalCrossIntegral (F L) + (fun t ↦ (edgeVertices K ((t : ℝ) : Real.Angle)).1) := by + obtain ⟨R, hR⟩ := K.isCompact.isBounded.subset_closedBall (0 : Point) + refine halfSupportIntegral_eq_openIntervalCrossIntegral K L hab hturn (F L) (hFmeasure L) + (fun u ↦ (edgeVertices K u).1) R + (fun i ↦ measurable_positiveVertex_coordinate_Ioc K hab.le i) + (fun u i ↦ ?_) (fun u ↦ ?_) + · have hmem := hR (edgeVertices_fst_mem K u).1 + rw [Metric.mem_closedBall, dist_zero_right] at hmem + exact le_trans (by simpa [Real.norm_eq_abs] using Point.abs_apply_le_norm _ i) hmem + · rw [planeCrossProduct_tangentVector, (edgeVertices_fst_mem K u).2] + have hcross2 (K L : ConvexBody Point) : + ((1 / 2 : ℝ) * ∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + supportValue K t ∂surfaceAreaMeasure L) = + openIntervalCrossIntegral (F L) + (fun t ↦ (edgeVertices K ((t : ℝ) : Real.Angle)).2) := by + obtain ⟨R, hR⟩ := K.isCompact.isBounded.subset_closedBall (0 : Point) + refine halfSupportIntegral_eq_openIntervalCrossIntegral K L hab hturn (F L) (hFmeasure L) + (fun u ↦ (edgeVertices K u).2) R + (fun i ↦ measurable_negativeVertex_coordinate K hab.le i) (fun u i ↦ ?_) (fun u ↦ ?_) + · have hmem := hR (edgeVertices_snd_mem K u).1 + rw [Metric.mem_closedBall, dist_zero_right] at hmem + exact le_trans (by simpa [Real.norm_eq_abs] using Point.abs_apply_le_norm _ i) hmem + · rw [planeCrossProduct_tangentVector, (edgeVertices_snd_mem K u).2] + refine ⟨F, hFtoFun, fun K L ↦ ⟨hcross1 K L, hcross2 K L⟩, fun K ↦ ?_⟩ + have harea := (convexArc_area a b hab hba).2.1 K + have hK := hcross1 K K + rw [harea] + linarith + +/-- Antisymmetry of the vertex cross Stieltjes integral over the open interval, up to the two +endpoint corrections: the negative vertices at `b` and the positive vertices at `a`. -/ +theorem openIntervalCrossIntegral_antisymm {a b : ℝ} (hab : a < b) + (K L : ConvexBody Point) (FK FL : Fin 2 → RightContinuousIntervalBV a b) + (hFK : ∀ i t, (FK i).toFun t = + (edgeVertices K (((t : Set.Icc a b) : ℝ) : Real.Angle)).1 i) + (hFL : ∀ i t, (FL i).toFun t = + (edgeVertices L (((t : Set.Icc a b) : ℝ) : Real.Angle)).1 i) : + openIntervalCrossIntegral FL (fun t ↦ (edgeVertices K ((t : ℝ) : Real.Angle)).2) - + openIntervalCrossIntegral FK (fun t ↦ (edgeVertices L ((t : ℝ) : Real.Angle)).1) = + segmentArea (edgeVertices K (b : Real.Angle)).2 (edgeVertices L (b : Real.Angle)).2 - + segmentArea (edgeVertices K (a : Real.Angle)).1 (edgeVertices L (a : Real.Angle)).1 := by + have key (i j : Fin 2) : + intervalStieltjesIntegral (FL j) + (fun t ↦ (edgeVertices K ((t : ℝ) : Real.Angle)).2 i) + {t : Set.Icc a b | a < (t : ℝ) ∧ (t : ℝ) < b} + + intervalStieltjesIntegral (FK i) + (fun t ↦ (edgeVertices L ((t : ℝ) : Real.Angle)).1 j) + {t : Set.Icc a b | a < (t : ℝ) ∧ (t : ℝ) < b} = + (edgeVertices K (b : Real.Angle)).2 i * (edgeVertices L (b : Real.Angle)).2 j - + (edgeVertices K (a : Real.Angle)).1 i * (edgeVertices L (a : Real.Angle)).1 j := by + have h := intervalStieltjes_integration_by_parts_Ioo a b hab (FK i) (FL j) + have h1 : intervalStieltjesIntegral (FL j) (Function.leftLim (FK i).toFun) + {t : Set.Icc a b | a < (t : ℝ) ∧ (t : ℝ) < b} = + intervalStieltjesIntegral (FL j) + (fun t ↦ (edgeVertices K ((t : ℝ) : Real.Angle)).2 i) + {t : Set.Icc a b | a < (t : ℝ) ∧ (t : ℝ) < b} := + VectorMeasure.setIntegral_congr_fun + (fun t ht ↦ leftLim_positiveVertex_coordinate K FK hFK i t ht.1) + have h2 : (FL j).toFun = + fun t : Set.Icc a b ↦ (edgeVertices L ((t : ℝ) : Real.Angle)).1 j := + funext (hFL j) + rw [h1, leftLim_positiveVertex_coordinate K FK hFK i ⟨b, hab.le, le_rfl⟩ hab, + leftLim_positiveVertex_coordinate L FL hFL j ⟨b, hab.le, le_rfl⟩ hab, + hFK i ⟨a, le_rfl, hab.le⟩, hFL j ⟨a, le_rfl, hab.le⟩, h2] at h + exact h + have k01 := key 0 1 + have k10 := key 1 0 + simp only [openIntervalCrossIntegral, segmentArea, planeCrossProduct] + linarith + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Convex / Arc Jordan +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open Set + +/-- A rectifiable path traverses a segment with monotone surjective reparametrizations. -/ +def IsSegmentTraversal (γ : RectifiablePathData) (P Q : Point) : Prop := + ∃ (φ : Set.Icc (0 : ℝ) 1 → Set.Icc γ.a γ.b) + (τ : Set.Icc (0 : ℝ) 1 → Set.Icc (0 : ℝ) 1), + Continuous φ ∧ Monotone φ ∧ Function.Surjective φ ∧ + Continuous τ ∧ Monotone τ ∧ Function.Surjective τ ∧ + ∀ s, γ.path.val (φ s) = (1 - (τ s : ℝ)) • P + (τ s : ℝ) • Q + +/-- A rectifiable path traverses an oriented Jordan arc in reverse. -/ +def IsReverseArcTraversal (γ : RectifiablePathData) {A : OrientedJordanArc} + (p : ArcBVParametrization A) : Prop := + ∃ (φ : Set.Icc (0 : ℝ) 1 → Set.Icc γ.a γ.b) + (ψ : Set.Icc (0 : ℝ) 1 → Set.Icc p.a p.b), + Continuous φ ∧ Monotone φ ∧ Function.Surjective φ ∧ + Continuous ψ ∧ Monotone ψ ∧ Function.Surjective ψ ∧ + ∀ s, γ.path.val (φ s) = p.path.val + ⟨p.a + p.b - (ψ s : ℝ), by + constructor <;> linarith [(ψ s).property.1, (ψ s).property.2]⟩ + +/-- A path traversing an oriented segment has the segment's signed area. -/ +theorem IsSegmentTraversal.curveAreaFunctional_eq {γ : RectifiablePathData} {P Q : Point} + (h : IsSegmentTraversal γ P Q) : curveAreaFunctional γ.path = segmentArea P Q := by + obtain ⟨φ, τ, hφc, hφm, hφs, hτc, hτm, hτs, heq⟩ := h + obtain ⟨y, hy, hymono, -⟩ := curveArea_comp_monotone_or_antitone_surjective + γ.ordered zero_le_one γ.path φ hφc hφs (Or.inl hφm) + obtain ⟨y', hy', hy'mono, -⟩ := curveArea_comp_monotone_or_antitone_surjective + zero_le_one zero_le_one (lineSegmentBVPath P Q) τ hτc hτs (Or.inl hτm) + have hyy : y = y' := by + refine Subtype.ext ?_ + rw [hy, hy'] + funext s + rw [Function.comp_apply, Function.comp_apply, heq s, lineSegmentBVPath_apply] + rw [← hymono hφm, hyy, hy'mono hτm, curveAreaFunctional_lineSegmentBVPath] + +/-- A path traversing an oriented Jordan arc backwards has the opposite signed area. -/ +theorem IsReverseArcTraversal.curveAreaFunctional_eq {γ : RectifiablePathData} + {A : OrientedJordanArc} {p : ArcBVParametrization A} (h : IsReverseArcTraversal γ p) : + curveAreaFunctional γ.path = -curveAreaFunctional p.path := by + obtain ⟨φ, ψ, hφc, hφm, hφs, hψc, hψm, hψs, heq⟩ := h + set ρ : Set.Icc (0 : ℝ) 1 → Set.Icc p.a p.b := fun s ↦ + ⟨p.a + p.b - (ψ s : ℝ), by + constructor <;> linarith [(ψ s).property.1, (ψ s).property.2]⟩ with hρdef + have hcomp : ∀ s, γ.path.val (φ s) = p.path.val (ρ s) := heq + have hρc : Continuous ρ := + (continuous_const.sub (continuous_subtype_val.comp hψc)).subtype_mk _ + have hρa : Antitone ρ := fun s t hst ↦ + Subtype.coe_le_coe.mp (by + simp only [hρdef] + linarith [Subtype.coe_le_coe.mpr (hψm hst)]) + have hρs : Function.Surjective ρ := by + intro u + obtain ⟨s, hs⟩ := hψs ⟨p.a + p.b - (u : ℝ), by + constructor <;> linarith [u.property.1, u.property.2]⟩ + refine ⟨s, Subtype.ext ?_⟩ + have hval : ((ψ s : ℝ)) = p.a + p.b - (u : ℝ) := congrArg Subtype.val hs + simp only [hρdef, hval] + ring + obtain ⟨y, hy, hymono, -⟩ := curveArea_comp_monotone_or_antitone_surjective + γ.ordered zero_le_one γ.path φ hφc hφs (Or.inl hφm) + obtain ⟨y', hy', -, hy'anti⟩ := curveArea_comp_monotone_or_antitone_surjective + p.ordered zero_le_one p.path ρ hρc hρs (Or.inr hρa) + have hyy : y = y' := by + refine Subtype.ext ?_ + rw [hy, hy'] + funext s + exact hcomp s + rw [← hymono hφm, hyy, hy'anti hρa] + +private def reverseArcPath {A : OrientedJordanArc} (p : ArcBVParametrization A) : + ContinuousBVPaths p.a p.b where + val := p.path.val ∘ Set.Icc.reverse p.ordered + property := by + constructor + · exact p.path.property.1.comp (Set.Icc.continuous_reverse p.ordered) + · intro i + exact BoundedVariationOn.comp_antitone_surjective_Icc p.ordered + (p.path.property.2 i) (Set.Icc.antitone_reverse p.ordered) + (Set.Icc.surjective_reverse p.ordered) + +private lemma reverseArcPath_start {A : OrientedJordanArc} + (p : ArcBVParametrization A) : + (reverseArcPath p).val ⟨p.a, le_rfl, p.ordered⟩ = A.endPoint := by + simpa [reverseArcPath, Set.Icc.reverse] using p.end_eq + +private lemma isSegmentTraversal_lineSegmentBVPath (P Q : Point) : + IsSegmentTraversal + { a := 0, b := 1, ordered := by norm_num, path := lineSegmentBVPath P Q } P Q := by + refine ⟨id, id, continuous_id, monotone_id, Function.surjective_id, + continuous_id, monotone_id, Function.surjective_id, ?_⟩ + intro s + simp [lineSegmentBVPath, Path.segment_apply, AffineMap.lineMap_apply_module'] + module + +private theorem boundedVariation_concatUnitIntervals_coordinate_jordan + (p q : ContinuousBVPaths 0 1) + (hjoin : p.val ⟨1, by norm_num⟩ = q.val ⟨0, by norm_num⟩) (i : Fin 2) : + BoundedVariationOn (fun t ↦ Function.concatUnitIntervals p.val q.val t i) Set.univ := + boundedVariation_concatUnitIntervals_coordinate p q hjoin i + +private def concatUnitPaths_jordan (p q : ContinuousBVPaths 0 1) + (hjoin : p.val ⟨1, by norm_num⟩ = q.val ⟨0, by norm_num⟩) : + ContinuousBVPaths 0 2 := + ⟨Function.concatUnitIntervals p.val q.val, + Function.continuous_concatUnitIntervals p.property.1 q.property.1 hjoin, + boundedVariation_concatUnitIntervals_coordinate_jordan p q hjoin⟩ + +private lemma concatUnitPaths_jordan_end (p q : ContinuousBVPaths 0 1) + (hjoin : p.val ⟨1, by norm_num⟩ = q.val ⟨0, by norm_num⟩) : + (concatUnitPaths_jordan p q hjoin).val ⟨2, by norm_num⟩ = + q.val ⟨1, by norm_num⟩ := by + change Function.concatUnitIntervals p.val q.val ⟨2, by norm_num⟩ = _ + unfold Function.concatUnitIntervals + simp only + rw [ite_eq_right (by norm_num : ¬(2 : ℝ) ≤ 1)] + apply congrArg q.val + apply Subtype.ext + norm_num + +private def unitParam_jordan (a b : ℝ) (hab : a ≤ b) : + Set.Icc (0 : ℝ) 1 → Set.Icc a b := + Set.Icc.convexComb ⟨a, le_rfl, hab⟩ ⟨b, hab, le_rfl⟩ + +private lemma continuous_unitParam_jordan (a b : ℝ) (hab : a ≤ b) : + Continuous (unitParam_jordan a b hab) := + Set.Icc.continuous_convexComb _ _ + +private lemma monotone_unitParam_jordan (a b : ℝ) (hab : a ≤ b) : + Monotone (unitParam_jordan a b hab) := by + intro s t hst + apply Subtype.coe_le_coe.mp + simp only [unitParam_jordan, Set.Icc.coe_convexComb] + nlinarith [show (s : ℝ) ≤ t from hst] + +private lemma surjective_unitParam_jordan (a b : ℝ) (hab : a ≤ b) : + Function.Surjective (unitParam_jordan a b hab) := + surjective_convexComb_endpoints a b hab + +private theorem exists_reverseArcUnitPath {A : OrientedJordanArc} + (p : ArcBVParametrization A) : + ∃ q : ContinuousBVPaths 0 1, + q.val = (reverseArcPath p).val ∘ unitParam_jordan p.a p.b p.ordered ∧ + IsReverseArcTraversal + { a := 0, b := 1, ordered := by norm_num, path := q } p := by + obtain ⟨q, hq⟩ := continuousBVPaths_comp_monotone_surjective p.ordered + (reverseArcPath p) (unitParam_jordan p.a p.b p.ordered) + (continuous_unitParam_jordan _ _ _) (monotone_unitParam_jordan _ _ _) + (surjective_unitParam_jordan _ _ _) + refine ⟨q, hq, ?_⟩ + let φ : Set.Icc (0 : ℝ) 1 → Set.Icc (0 : ℝ) 1 := id + let ψ := unitParam_jordan p.a p.b p.ordered + refine ⟨φ, ψ, continuous_id, monotone_id, Function.surjective_id, + continuous_unitParam_jordan _ _ _, monotone_unitParam_jordan _ _ _, + surjective_unitParam_jordan _ _ _, ?_⟩ + intro s + rw [hq] + change p.path.val (Set.Icc.reverse p.ordered (ψ s)) = p.path.val _ + simp only [ψ, unitParam_jordan, Set.Icc.reverse, Set.Icc.coe_convexComb] + +private def doubleParam_jordan : Set.Icc (0 : ℝ) 1 → Set.Icc (0 : ℝ) 2 := + fun t ↦ ⟨2 * (t : ℝ), by constructor <;> nlinarith [t.property.1, t.property.2]⟩ + +private lemma continuous_doubleParam_jordan : Continuous doubleParam_jordan := + Continuous.subtype_mk (continuous_const.mul continuous_subtype_val) _ + +private lemma monotone_doubleParam_jordan : Monotone doubleParam_jordan := by + intro s t hst + exact Subtype.coe_le_coe.mp (mul_le_mul_of_nonneg_left hst (by norm_num)) + +private lemma surjective_doubleParam_jordan : Function.Surjective doubleParam_jordan := by + intro t + refine ⟨⟨(t : ℝ) / 2, by constructor <;> nlinarith [t.property.1, t.property.2]⟩, ?_⟩ + apply Subtype.ext + change 2 * ((t : ℝ) / 2) = t + ring + +private def reparamTwoToUnit_jordan (q : ContinuousBVPaths 0 2) : + ContinuousBVPaths 0 1 := + ⟨q.val ∘ doubleParam_jordan, + q.property.1.comp continuous_doubleParam_jordan, + fun i ↦ BoundedVariationOn.comp_monotone_surjective_Icc (by norm_num) + (q.property.2 i) monotone_doubleParam_jordan surjective_doubleParam_jordan⟩ + +private lemma reparamTwoToUnit_one (q : ContinuousBVPaths 0 2) : + (reparamTwoToUnit_jordan q).val ⟨1, by norm_num⟩ = q.val ⟨2, by norm_num⟩ := by + change q.val (doubleParam_jordan ⟨1, by norm_num⟩) = q.val ⟨2, by norm_num⟩ + rw [show doubleParam_jordan ⟨1, by norm_num⟩ = ⟨2, by norm_num⟩ by + apply Subtype.ext + norm_num [doubleParam_jordan]] + +private def concatThreeUnitPaths_jordan (p₀ p₁ p₂ : ContinuousBVPaths 0 1) + (h01 : p₀.val ⟨1, by norm_num⟩ = p₁.val ⟨0, by norm_num⟩) + (h12 : p₁.val ⟨1, by norm_num⟩ = p₂.val ⟨0, by norm_num⟩) : + ContinuousBVPaths 0 2 := + let q := concatUnitPaths_jordan p₀ p₁ h01 + concatUnitPaths_jordan (reparamTwoToUnit_jordan q) p₂ (by + rw [reparamTwoToUnit_one] + exact (concatUnitPaths_jordan_end p₀ p₁ h01).trans h12) + +private lemma concatThreeUnitPaths_first_jordan + (p₀ p₁ p₂ : ContinuousBVPaths 0 1) + (h01 : p₀.val ⟨1, by norm_num⟩ = p₁.val ⟨0, by norm_num⟩) + (h12 : p₁.val ⟨1, by norm_num⟩ = p₂.val ⟨0, by norm_num⟩) + (t : Set.Icc (0 : ℝ) 1) : + (concatThreeUnitPaths_jordan p₀ p₁ p₂ h01 h12).val + ⟨(t : ℝ) / 2, by constructor <;> nlinarith [t.property.1, t.property.2]⟩ = + p₀.val t := by + simp only [concatThreeUnitPaths_jordan, concatUnitPaths_jordan, + reparamTwoToUnit_jordan] + unfold Function.concatUnitIntervals + rw [ite_eq_left (by nlinarith [t.property.1, t.property.2] : (t : ℝ) / 2 ≤ 1)] + have houter : Set.projIcc 0 1 (by norm_num) ((t : ℝ) / 2) = + ⟨(t : ℝ) / 2, by constructor <;> nlinarith [t.property.1, t.property.2]⟩ := by + exact Set.projIcc_of_mem (by norm_num) (by + constructor <;> nlinarith [t.property.1, t.property.2]) + rw [houter] + change Function.concatUnitIntervals p₀.val p₁.val + (doubleParam_jordan ⟨(t : ℝ) / 2, by + constructor <;> nlinarith [t.property.1, t.property.2]⟩) = p₀.val t + rw [show doubleParam_jordan ⟨(t : ℝ) / 2, by + constructor <;> nlinarith [t.property.1, t.property.2]⟩ = + ⟨(t : ℝ), ⟨t.property.1, t.property.2.trans (by norm_num)⟩⟩ by + apply Subtype.ext + simp [doubleParam_jordan] + ring] + unfold Function.concatUnitIntervals + rw [ite_eq_left t.property.2] + apply congrArg p₀.val + exact Set.projIcc_of_mem (by norm_num) t.property + +private lemma concatThreeUnitPaths_middle_jordan + (p₀ p₁ p₂ : ContinuousBVPaths 0 1) + (h01 : p₀.val ⟨1, by norm_num⟩ = p₁.val ⟨0, by norm_num⟩) + (h12 : p₁.val ⟨1, by norm_num⟩ = p₂.val ⟨0, by norm_num⟩) + (t : Set.Icc (0 : ℝ) 1) : + (concatThreeUnitPaths_jordan p₀ p₁ p₂ h01 h12).val + ⟨(1 + (t : ℝ)) / 2, by + constructor <;> nlinarith [t.property.1, t.property.2]⟩ = p₁.val t := by + simp only [concatThreeUnitPaths_jordan, concatUnitPaths_jordan, + reparamTwoToUnit_jordan] + unfold Function.concatUnitIntervals + rw [ite_eq_left (by nlinarith [t.property.2] : (1 + (t : ℝ)) / 2 ≤ 1)] + have houter : Set.projIcc 0 1 (by norm_num) ((1 + (t : ℝ)) / 2) = + ⟨(1 + (t : ℝ)) / 2, by + constructor <;> nlinarith [t.property.1, t.property.2]⟩ := by + exact Set.projIcc_of_mem (by norm_num) (by + constructor <;> nlinarith [t.property.1, t.property.2]) + rw [houter] + change Function.concatUnitIntervals p₀.val p₁.val + (doubleParam_jordan ⟨(1 + (t : ℝ)) / 2, by + constructor <;> nlinarith [t.property.1, t.property.2]⟩) = p₁.val t + rw [show doubleParam_jordan ⟨(1 + (t : ℝ)) / 2, by + constructor <;> nlinarith [t.property.1, t.property.2]⟩ = + ⟨1 + (t : ℝ), by + constructor <;> nlinarith [t.property.1, t.property.2]⟩ by + apply Subtype.ext + simp [doubleParam_jordan] + ring] + unfold Function.concatUnitIntervals + by_cases ht : (t : ℝ) = 0 + · have ht' : t = ⟨0, by norm_num⟩ := Subtype.ext ht + subst t + simpa using h01 + · have htpos : 0 < (t : ℝ) := lt_of_le_of_ne t.property.1 (Ne.symm ht) + rw [ite_eq_right (by linarith : ¬(1 + (t : ℝ) ≤ 1))] + apply congrArg p₁.val + apply Subtype.ext + simp only [Set.coe_projIcc] + rw [show 1 + (t : ℝ) - 1 = t by ring, min_eq_right t.property.2, + max_eq_right t.property.1] + +private lemma concatThreeUnitPaths_last_jordan + (p₀ p₁ p₂ : ContinuousBVPaths 0 1) + (h01 : p₀.val ⟨1, by norm_num⟩ = p₁.val ⟨0, by norm_num⟩) + (h12 : p₁.val ⟨1, by norm_num⟩ = p₂.val ⟨0, by norm_num⟩) + (t : Set.Icc (0 : ℝ) 1) : + (concatThreeUnitPaths_jordan p₀ p₁ p₂ h01 h12).val + ⟨1 + (t : ℝ), by + constructor <;> nlinarith [t.property.1, t.property.2]⟩ = p₂.val t := by + by_cases ht : (t : ℝ) = 0 + · have ht' : t = ⟨0, by norm_num⟩ := Subtype.ext ht + rw [ht'] + rw [show (⟨1 + ((⟨0, by norm_num⟩ : Set.Icc (0 : ℝ) 1) : ℝ), by + norm_num⟩ : Set.Icc (0 : ℝ) 2) = ⟨1, by norm_num⟩ by + apply Subtype.ext + norm_num] + change (concatThreeUnitPaths_jordan p₀ p₁ p₂ h01 h12).val + ⟨1, by norm_num⟩ = p₂.val ⟨0, by norm_num⟩ + unfold concatThreeUnitPaths_jordan + change Function.concatUnitIntervals _ p₂.val ⟨1, by norm_num⟩ = _ + unfold Function.concatUnitIntervals + rw [ite_eq_left (by norm_num : (1 : ℝ) ≤ 1)] + calc + _ = (reparamTwoToUnit_jordan + (concatUnitPaths_jordan p₀ p₁ h01)).val ⟨1, by norm_num⟩ := by + apply congrArg _ + apply Subtype.ext + norm_num [Set.coe_projIcc] + _ = _ := by + rw [reparamTwoToUnit_one, concatUnitPaths_jordan_end] + exact h12 + · have htpos : 0 < (t : ℝ) := lt_of_le_of_ne t.property.1 (Ne.symm ht) + simp only [concatThreeUnitPaths_jordan, concatUnitPaths_jordan] + unfold Function.concatUnitIntervals + rw [ite_eq_right (by linarith : ¬(1 + (t : ℝ) ≤ 1))] + apply congrArg p₂.val + apply Subtype.ext + simp only [Set.coe_projIcc] + rw [show 1 + (t : ℝ) - 1 = t by ring, min_eq_right t.property.2, + max_eq_right t.property.1] + +private theorem isPathConcatenation_concatThreeUnitPaths_jordan + (p₀ p₁ p₂ : ContinuousBVPaths 0 1) + (h01 : p₀.val ⟨1, by norm_num⟩ = p₁.val ⟨0, by norm_num⟩) + (h12 : p₁.val ⟨1, by norm_num⟩ = p₂.val ⟨0, by norm_num⟩) : + IsPathConcatenation + { a := 0, b := 2, ordered := by norm_num, + path := concatThreeUnitPaths_jordan p₀ p₁ p₂ h01 h12 } + ![{ a := 0, b := 1, ordered := by norm_num, path := p₀ }, + { a := 0, b := 1, ordered := by norm_num, path := p₁ }, + { a := 0, b := 1, ordered := by norm_num, path := p₂ }] := by + let cuts : Fin 4 → Set.Icc (0 : ℝ) 2 := + ![⟨0, by norm_num⟩, ⟨1 / 2, by norm_num⟩, + ⟨1, by norm_num⟩, ⟨2, by norm_num⟩] + refine ⟨by norm_num, cuts, ?_, rfl, rfl, ?_⟩ + · intro i j hij + fin_cases i <;> fin_cases j <;> + norm_num [cuts, Matrix.cons_val_zero, Matrix.cons_val_one] at hij <;> + norm_num [cuts, Matrix.cons_val_zero, Matrix.cons_val_one] + intro i + fin_cases i + · let φ : Set.Icc (0 : ℝ) 1 → Set.Icc (cuts (Fin.castSucc 0) : ℝ) + (cuts (Fin.succ 0) : ℝ) := fun t ↦ ⟨(t : ℝ) / 2, by + change (0 : ℝ) ≤ (t : ℝ) / 2 ∧ (t : ℝ) / 2 ≤ 1 / 2 + constructor <;> nlinarith [t.property.1, t.property.2]⟩ + refine ⟨φ, id, Continuous.subtype_mk (continuous_subtype_val.div_const 2) _, + ?_, ?_, continuous_id, monotone_id, Function.surjective_id, ?_⟩ + · intro s t hst + exact Subtype.coe_le_coe.mp (div_le_div_of_nonneg_right hst (by norm_num)) + · intro t + have ht : (0 : ℝ) ≤ t ∧ (t : ℝ) ≤ 1 / 2 := by + simpa [cuts, Matrix.cons_val_zero, Matrix.cons_val_one] using t.property + refine ⟨⟨2 * (t : ℝ), by + change (0 : ℝ) ≤ 2 * (t : ℝ) ∧ 2 * (t : ℝ) ≤ 1 + constructor <;> nlinarith [ht.1, ht.2]⟩, ?_⟩ + apply Subtype.ext + change 2 * (t : ℝ) / 2 = t + ring + · intro t + exact concatThreeUnitPaths_first_jordan p₀ p₁ p₂ h01 h12 t + · let φ : Set.Icc (0 : ℝ) 1 → Set.Icc (cuts (Fin.castSucc 1) : ℝ) + (cuts (Fin.succ 1) : ℝ) := fun t ↦ ⟨(1 + (t : ℝ)) / 2, by + change (1 / 2 : ℝ) ≤ (1 + (t : ℝ)) / 2 ∧ (1 + (t : ℝ)) / 2 ≤ 1 + constructor <;> nlinarith [t.property.1, t.property.2]⟩ + refine ⟨φ, id, Continuous.subtype_mk + ((continuous_const.add continuous_subtype_val).div_const 2) _, ?_, ?_, + continuous_id, monotone_id, Function.surjective_id, ?_⟩ + · intro s t hst + apply Subtype.coe_le_coe.mp + have hst' : (s : ℝ) ≤ t := hst + change (1 + (s : ℝ)) / 2 ≤ (1 + (t : ℝ)) / 2 + linarith + · intro t + have ht : (1 / 2 : ℝ) ≤ t ∧ (t : ℝ) ≤ 1 := by + simpa [cuts, Matrix.cons_val_zero, Matrix.cons_val_one] using t.property + refine ⟨⟨2 * (t : ℝ) - 1, by + change (0 : ℝ) ≤ 2 * (t : ℝ) - 1 ∧ 2 * (t : ℝ) - 1 ≤ 1 + constructor <;> nlinarith [ht.1, ht.2]⟩, ?_⟩ + apply Subtype.ext + change (1 + (2 * (t : ℝ) - 1)) / 2 = t + ring + · intro t + exact concatThreeUnitPaths_middle_jordan p₀ p₁ p₂ h01 h12 t + · let φ : Set.Icc (0 : ℝ) 1 → Set.Icc (cuts (Fin.castSucc 2) : ℝ) + (cuts (Fin.succ 2) : ℝ) := fun t ↦ ⟨1 + (t : ℝ), by + change (1 : ℝ) ≤ 1 + (t : ℝ) ∧ 1 + (t : ℝ) ≤ 2 + constructor <;> nlinarith [t.property.1, t.property.2]⟩ + refine ⟨φ, id, Continuous.subtype_mk + (continuous_const.add continuous_subtype_val) _, ?_, ?_, + continuous_id, monotone_id, Function.surjective_id, ?_⟩ + · intro s t hst + apply Subtype.coe_le_coe.mp + have hst' : (s : ℝ) ≤ t := hst + change 1 + (s : ℝ) ≤ 1 + (t : ℝ) + linarith + · intro t + have ht : (1 : ℝ) ≤ t ∧ (t : ℝ) ≤ 2 := by + simpa [cuts, Matrix.cons_val_zero, Matrix.cons_val_one] using t.property + refine ⟨⟨(t : ℝ) - 1, by + change (0 : ℝ) ≤ (t : ℝ) - 1 ∧ (t : ℝ) - 1 ≤ 1 + constructor <;> nlinarith [ht.1, ht.2]⟩, ?_⟩ + apply Subtype.ext + change 1 + ((t : ℝ) - 1) = t + ring + · intro t + exact concatThreeUnitPaths_last_jordan p₀ p₁ p₂ h01 h12 t + +private lemma range_comp_surjective {α β γ : Type*} (f : β → γ) (g : α → β) + (hg : Function.Surjective g) : Set.range (f ∘ g) = Set.range f := by + apply Set.Subset.antisymm + · exact Set.range_comp_subset_range _ _ + · rintro y ⟨x, rfl⟩ + obtain ⟨z, rfl⟩ := hg x + exact ⟨z, rfl⟩ + +private lemma range_concatThreeUnitPaths_jordan + (p₀ p₁ p₂ : ContinuousBVPaths 0 1) + (h01 : p₀.val ⟨1, by norm_num⟩ = p₁.val ⟨0, by norm_num⟩) + (h12 : p₁.val ⟨1, by norm_num⟩ = p₂.val ⟨0, by norm_num⟩) : + Set.range (concatThreeUnitPaths_jordan p₀ p₁ p₂ h01 h12).val = + Set.range p₀.val ∪ Set.range p₁.val ∪ Set.range p₂.val := by + let q := concatUnitPaths_jordan p₀ p₁ h01 + have hqend : q.val ⟨2, by norm_num⟩ = p₂.val ⟨0, by norm_num⟩ := + (concatUnitPaths_jordan_end p₀ p₁ h01).trans h12 + have houter : (reparamTwoToUnit_jordan q).val ⟨1, by norm_num⟩ = + p₂.val ⟨0, by norm_num⟩ := (reparamTwoToUnit_one q).trans hqend + change Set.range (Function.concatUnitIntervals + (reparamTwoToUnit_jordan q).val p₂.val) = _ + rw [Function.range_concatUnitIntervals _ _ houter] + have hrepr : Set.range (reparamTwoToUnit_jordan q).val = Set.range q.val := by + exact range_comp_surjective q.val doubleParam_jordan surjective_doubleParam_jordan + rw [hrepr] + change Set.range (Function.concatUnitIntervals p₀.val p₁.val) ∪ Set.range p₂.val = _ + rw [Function.range_concatUnitIntervals _ _ h01] + +private lemma range_reverseArcUnitPath {A : OrientedJordanArc} + (p : ArcBVParametrization A) (q : ContinuousBVPaths 0 1) + (hq : q.val = (reverseArcPath p).val ∘ unitParam_jordan p.a p.b p.ordered) : + Set.range q.val = A.carrier := by + rw [hq, range_comp_surjective _ _ (surjective_unitParam_jordan _ _ _)] + change Set.range (p.path.val ∘ Set.Icc.reverse p.ordered) = _ + rw [range_comp_surjective _ _ (Set.Icc.surjective_reverse p.ordered), p.range_eq] + +private theorem segment_fst_supportingIntersection_inter_body + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (hne : (edgeVertices K (a : Real.Angle)).1 ≠ + (edgeVertices K (b : Real.Angle)).2) : + segment ℝ (edgeVertices K (a : Real.Angle)).1 (supportingIntersection K a b) ∩ + (K : Set Point) = {(edgeVertices K (a : Real.Angle)).1} := by + let P := (edgeVertices K (a : Real.Angle)).1 + let O := supportingIntersection K (a : Real.Angle) (b : Real.Angle) + obtain ⟨d, hd, hO⟩ := supportingIntersection_eq_fst_add_pos_tangent K hab hba hne + change O = P + d • tangentVector (a : Real.Angle) at hO + apply Set.Subset.antisymm + · rintro z ⟨hzseg, hzK⟩ + rw [segment_eq_image] at hzseg + obtain ⟨r, hr, rfl⟩ := hzseg + have hPn := (edgeVertices_fst_mem K (a : Real.Angle)).2 + have hOn := supportingIntersection_inner_left K a b + have hzline : inner ℝ ((1 - r) • P + r • O) (normalVector (a : Real.Angle)) = + supportValue K a := by + rw [inner_add_left, real_inner_smul_left, real_inner_smul_left] + change (1 - r) * inner ℝ P (normalVector (a : Real.Angle)) + + r * inner ℝ O (normalVector (a : Real.Angle)) = _ + rw [show inner ℝ P (normalVector (a : Real.Angle)) = supportValue K a from hPn, + show inner ℝ O (normalVector (a : Real.Angle)) = supportValue K a from hOn] + ring + have hzedge : (1 - r) • P + r • O ∈ exposedEdge K (a : Real.Angle) := + ⟨hzK, hzline⟩ + have hzle : inner ℝ ((1 - r) • P + r • O) (tangentVector (a : Real.Angle)) ≤ + inner ℝ P (tangentVector (a : Real.Angle)) := by + rw [inner_edgeVertices_fst_tangent] + exact le_csSup ((isCompact_exposedEdge K _).image + (continuous_id.inner continuous_const)).bddAbove ⟨_, hzedge, rfl⟩ + rw [hO, inner_add_left, real_inner_smul_left, real_inner_smul_left, + inner_add_left, real_inner_smul_left, inner_tangentVector_self] at hzle + have hr0 : r = 0 := by nlinarith [hr.1] + simp [hr0] + · intro z hz + have hzP : z = P := by simpa [P] using hz + subst z + exact ⟨left_mem_segment ℝ P O, (edgeVertices_fst_mem K _).1⟩ + +private theorem segment_supportingIntersection_snd_inter_body + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (hne : (edgeVertices K (a : Real.Angle)).1 ≠ + (edgeVertices K (b : Real.Angle)).2) : + segment ℝ (supportingIntersection K a b) (edgeVertices K (b : Real.Angle)).2 ∩ + (K : Set Point) = {(edgeVertices K (b : Real.Angle)).2} := by + let Q := (edgeVertices K (b : Real.Angle)).2 + let O := supportingIntersection K (a : Real.Angle) (b : Real.Angle) + obtain ⟨d, hd, hO⟩ := supportingIntersection_eq_snd_sub_pos_tangent K hab hba hne + change O = Q - d • tangentVector (b : Real.Angle) at hO + apply Set.Subset.antisymm + · rintro z ⟨hzseg, hzK⟩ + rw [segment_eq_image] at hzseg + obtain ⟨r, hr, rfl⟩ := hzseg + have hQn := (edgeVertices_snd_mem K (b : Real.Angle)).2 + have hOn := supportingIntersection_inner_right K a b + (Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hab) (by linarith)).ne' + have hzline : inner ℝ ((1 - r) • O + r • Q) (normalVector (b : Real.Angle)) = + supportValue K b := by + rw [inner_add_left, real_inner_smul_left, real_inner_smul_left] + change (1 - r) * inner ℝ O (normalVector (b : Real.Angle)) + + r * inner ℝ Q (normalVector (b : Real.Angle)) = _ + rw [show inner ℝ O (normalVector (b : Real.Angle)) = supportValue K b from hOn, + show inner ℝ Q (normalVector (b : Real.Angle)) = supportValue K b from hQn] + ring + have hzedge : (1 - r) • O + r • Q ∈ exposedEdge K (b : Real.Angle) := + ⟨hzK, hzline⟩ + have hzge : inner ℝ Q (tangentVector (b : Real.Angle)) ≤ + inner ℝ ((1 - r) • O + r • Q) (tangentVector (b : Real.Angle)) := by + rw [inner_edgeVertices_snd_tangent] + exact csInf_le ((isCompact_exposedEdge K _).image + (continuous_id.inner continuous_const)).bddBelow ⟨_, hzedge, rfl⟩ + rw [hO, inner_add_left, real_inner_smul_left, real_inner_smul_left, + inner_sub_left, real_inner_smul_left, inner_tangentVector_self] at hzge + have hr1 : r = 1 := by nlinarith [hr.2] + simp [hr1] + · intro z hz + have hzQ : z = Q := by simpa [Q] using hz + subst z + exact ⟨right_mem_segment ℝ O Q, (edgeVertices_snd_mem K _).1⟩ + +/-- A convex boundary arc lies in its convex body. -/ +theorem convexBoundaryArc_subset_body (K : ConvexBody Point) (a b : ℝ) : + convexBoundaryArc K a b ⊆ (K : Set Point) := by + rintro z (hz | hz) + · rcases hz with hz | hz + · simpa using hz ▸ (edgeVertices_fst_mem K (a : Real.Angle)).1 + · rcases Set.mem_iUnion.mp hz with ⟨t, hz⟩ + rcases Set.mem_iUnion.mp hz with ⟨_, hz⟩ + exact hz.1 + · simpa using hz ▸ (edgeVertices_snd_mem K (b : Real.Angle)).1 + +private theorem segment_fst_inter_convexBoundaryArc + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (hne : (edgeVertices K (a : Real.Angle)).1 ≠ + (edgeVertices K (b : Real.Angle)).2) : + segment ℝ (edgeVertices K (a : Real.Angle)).1 (supportingIntersection K a b) ∩ + convexBoundaryArc K a b = {(edgeVertices K (a : Real.Angle)).1} := by + apply Set.Subset.antisymm + · intro z hz + have hz' : z ∈ segment ℝ (edgeVertices K (a : Real.Angle)).1 + (supportingIntersection K a b) ∩ (K : Set Point) := + ⟨hz.1, convexBoundaryArc_subset_body K a b hz.2⟩ + simpa [segment_fst_supportingIntersection_inter_body K hab hba hne] using hz' + · intro z hz + have hzP : z = (edgeVertices K (a : Real.Angle)).1 := by simpa using hz + subst z + exact ⟨left_mem_segment _ _ _, Or.inl (Or.inl rfl)⟩ + +private theorem segment_snd_inter_convexBoundaryArc + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (hne : (edgeVertices K (a : Real.Angle)).1 ≠ + (edgeVertices K (b : Real.Angle)).2) : + segment ℝ (supportingIntersection K a b) (edgeVertices K (b : Real.Angle)).2 ∩ + convexBoundaryArc K a b = {(edgeVertices K (b : Real.Angle)).2} := by + apply Set.Subset.antisymm + · intro z hz + have hz' : z ∈ segment ℝ (supportingIntersection K a b) + (edgeVertices K (b : Real.Angle)).2 ∩ (K : Set Point) := + ⟨hz.1, convexBoundaryArc_subset_body K a b hz.2⟩ + simpa [segment_supportingIntersection_snd_inter_body K hab hba hne] using hz' + · intro z hz + have hzQ : z = (edgeVertices K (b : Real.Angle)).2 := by simpa using hz + subst z + exact ⟨right_mem_segment _ _ _, Or.inr rfl⟩ + +private theorem supporting_segments_inter + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) : + segment ℝ (edgeVertices K (a : Real.Angle)).1 (supportingIntersection K a b) ∩ + segment ℝ (supportingIntersection K a b) (edgeVertices K (b : Real.Angle)).2 = + {supportingIntersection K a b} := by + let P := (edgeVertices K (a : Real.Angle)).1 + let Q := (edgeVertices K (b : Real.Angle)).2 + let O := supportingIntersection K (a : Real.Angle) (b : Real.Angle) + have hsin : 0 < Real.sin (b - a) := + Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hab) (by linarith) + have hPa : inner ℝ P (normalVector (a : Real.Angle)) = supportValue K a := + (edgeVertices_fst_mem K _).2 + have hOa : inner ℝ O (normalVector (a : Real.Angle)) = supportValue K a := + supportingIntersection_inner_left K a b + have hOb : inner ℝ O (normalVector (b : Real.Angle)) = supportValue K b := + supportingIntersection_inner_right K a b hsin.ne' + have hQb : inner ℝ Q (normalVector (b : Real.Angle)) = supportValue K b := + (edgeVertices_snd_mem K _).2 + have inner_eq_of_segment {X Y z v : Point} {c : ℝ} + (hX : inner ℝ X v = c) (hY : inner ℝ Y v = c) + (hz : z ∈ segment ℝ X Y) : inner ℝ z v = c := by + rw [segment_eq_image] at hz + obtain ⟨r, hr, rfl⟩ := hz + rw [inner_add_left, real_inner_smul_left, real_inner_smul_left, hX, hY] + ring + apply Set.Subset.antisymm + · rintro z ⟨hz₁, hz₂⟩ + have hza : inner ℝ z (normalVector (a : Real.Angle)) = supportValue K a := + inner_eq_of_segment hPa hOa hz₁ + have hzb : inner ℝ z (normalVector (b : Real.Angle)) = supportValue K b := + inner_eq_of_segment hOb hQb hz₂ + have hna : inner ℝ (z - O) (normalVector (a : Real.Angle)) = 0 := by + rw [inner_sub_left, hza, hOa, sub_self] + have hnb : inner ℝ (z - O) (normalVector (b : Real.Angle)) = 0 := by + rw [inner_sub_left, hzb, hOb, sub_self] + have hnexp : normalVector (b : Real.Angle) = + Real.cos (b - a) • normalVector (a : Real.Angle) + + Real.sin (b - a) • tangentVector (a : Real.Angle) := by + simpa only [add_sub_cancel] using normalVector_add_real a (b - a) + have hta : inner ℝ (z - O) (tangentVector (a : Real.Angle)) = 0 := by + rw [hnexp, inner_add_right, inner_smul_right, inner_smul_right, hna, + mul_zero, zero_add] at hnb + exact (mul_eq_zero.mp hnb).resolve_left hsin.ne' + have hzo : z = O := by + rw [show z = O + (z - O) by abel, ← inner_normalVector_smul_add_inner_tangentVector_smul + (z - O) (a : Real.Angle), hna, hta, zero_smul, zero_smul, add_zero] + simp + simp [O, hzo] + · intro z hz + have hzO : z = O := by simpa [O] using hz + subst z + exact ⟨right_mem_segment _ _ _, left_mem_segment _ _ _⟩ + +private def brokenSupportPath (K : ConvexBody Point) (a b : ℝ) : + Path (edgeVertices K (a : Real.Angle)).1 (edgeVertices K (b : Real.Angle)).2 := + (Path.segment (edgeVertices K (a : Real.Angle)).1 (supportingIntersection K a b)).trans + (Path.segment (supportingIntersection K a b) (edgeVertices K (b : Real.Angle)).2) + +private theorem path_segment_injective {P Q : Point} (hPQ : P ≠ Q) : + Function.Injective (Path.segment P Q) := by + intro s t hst + apply Subtype.ext + exact AffineMap.lineMap_injective ℝ hPQ (by + simpa only [Path.segment_apply] using hst) + +private theorem brokenSupportPath_injective + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (hne : (edgeVertices K (a : Real.Angle)).1 ≠ + (edgeVertices K (b : Real.Angle)).2) : + Function.Injective (brokenSupportPath K a b) := by + let P := (edgeVertices K (a : Real.Angle)).1 + let Q := (edgeVertices K (b : Real.Angle)).2 + let O := supportingIntersection K (a : Real.Angle) (b : Real.Angle) + obtain ⟨d₀, hd₀, hPO⟩ := supportingIntersection_eq_fst_add_pos_tangent K hab hba hne + obtain ⟨d₁, hd₁, hQO⟩ := supportingIntersection_eq_snd_sub_pos_tangent K hab hba hne + change O = P + d₀ • tangentVector (a : Real.Angle) at hPO + change O = Q - d₁ • tangentVector (b : Real.Angle) at hQO + have htne (u : Real.Angle) : tangentVector u ≠ 0 := by + intro hu + have hone : inner ℝ (tangentVector u) (tangentVector u) = 1 := by + rw [← u.coe_toReal] + exact inner_tangentVector_self u.toReal + rw [hu] at hone + simp at hone + have hPOne : P ≠ O := by + intro h + have hz : d₀ • tangentVector (a : Real.Angle) = 0 := by + calc + d₀ • tangentVector (a : Real.Angle) = O - P := by rw [hPO]; abel + _ = 0 := by rw [← h, sub_self] + exact hd₀.ne' ((smul_eq_zero.mp hz).resolve_right (htne _)) + have hOQne : O ≠ Q := by + intro h + have hz : d₁ • tangentVector (b : Real.Angle) = 0 := by + calc + d₁ • tangentVector (b : Real.Angle) = Q - O := by rw [hQO]; abel + _ = 0 := by rw [h, sub_self] + exact hd₁.ne' ((smul_eq_zero.mp hz).resolve_right (htne _)) + intro s t hst + change ((Path.segment P O).trans (Path.segment O Q)) s = + ((Path.segment P O).trans (Path.segment O Q)) t at hst + simp only [Path.trans_apply] at hst + split_ifs at hst with hs ht ht + · have heq := path_segment_injective hPOne hst + apply Subtype.ext + have := congrArg Subtype.val heq + norm_num at this ⊢ + linarith + · have hmem : (Path.segment P O) ⟨2 * (s : ℝ), by constructor <;> linarith + [s.property.1, s.property.2]⟩ ∈ segment ℝ P O ∩ segment ℝ O Q := by + constructor + · rw [← Path.range_segment] + exact Set.mem_range_self _ + · rw [hst, ← Path.range_segment] + exact Set.mem_range_self _ + have hO := Set.ext_iff.mp (supporting_segments_inter K hab hba) _ |>.mp hmem + have hs1 : (2 : ℝ) * s = 1 := by + have heq := path_segment_injective hPOne (hO.trans (Path.target _).symm) + exact congrArg Subtype.val heq + have ht0 : 2 * (t : ℝ) - 1 = 0 := by + have heq := path_segment_injective hOQne (hst.symm.trans (hO.trans (Path.source _).symm)) + exact congrArg Subtype.val heq + apply Subtype.ext + linarith + · have hmem : (Path.segment P O) ⟨2 * (t : ℝ), by constructor <;> linarith + [t.property.1, t.property.2]⟩ ∈ segment ℝ P O ∩ segment ℝ O Q := by + constructor + · rw [← Path.range_segment] + exact Set.mem_range_self _ + · rw [← hst, ← Path.range_segment] + exact Set.mem_range_self _ + have hO := Set.ext_iff.mp (supporting_segments_inter K hab hba) _ |>.mp hmem + have ht1 : (2 : ℝ) * t = 1 := by + have heq := path_segment_injective hPOne (hO.trans (Path.target _).symm) + exact congrArg Subtype.val heq + have hs0 : 2 * (s : ℝ) - 1 = 0 := by + have heq := path_segment_injective hOQne (hst.trans (hO.trans (Path.source _).symm)) + exact congrArg Subtype.val heq + apply Subtype.ext + linarith + · have heq := path_segment_injective hOQne hst + apply Subtype.ext + have := congrArg Subtype.val heq + norm_num at this ⊢ + linarith + +private theorem brokenSupportPath_range + (K : ConvexBody Point) (a b : ℝ) : + Set.range (brokenSupportPath K a b) = + segment ℝ (edgeVertices K (a : Real.Angle)).1 (supportingIntersection K a b) ∪ + segment ℝ (supportingIntersection K a b) (edgeVertices K (b : Real.Angle)).2 := by + simp [brokenSupportPath, Path.trans_range, Path.range_segment] + +private theorem brokenSupportPath_range_inter_convexBoundaryArc + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (hne : (edgeVertices K (a : Real.Angle)).1 ≠ + (edgeVertices K (b : Real.Angle)).2) : + Set.range (brokenSupportPath K a b) ∩ convexBoundaryArc K a b = + {(edgeVertices K (a : Real.Angle)).1, (edgeVertices K (b : Real.Angle)).2} := by + rw [brokenSupportPath_range, Set.union_inter_distrib_right, + segment_fst_inter_convexBoundaryArc K hab hba hne, + segment_snd_inter_convexBoundaryArc K hab hba hne] + ext z + simp [or_comm] + +private def arcUnitPath {A : OrientedJordanArc} (p : ArcBVParametrization A) : + Path A.startPoint A.endPoint where + toFun := p.path.val ∘ unitParam_jordan p.a p.b p.ordered + source' := by + change p.path.val (unitParam_jordan p.a p.b p.ordered 0) = A.startPoint + rw [show unitParam_jordan p.a p.b p.ordered 0 = ⟨p.a, le_rfl, p.ordered⟩ by + exact Set.Icc.convexComb_zero _ _] + exact p.start_eq + target' := by + change p.path.val (unitParam_jordan p.a p.b p.ordered 1) = A.endPoint + rw [show unitParam_jordan p.a p.b p.ordered 1 = ⟨p.b, p.ordered, le_rfl⟩ by + exact Set.Icc.convexComb_one _ _] + exact p.end_eq + continuous_toFun := p.path.property.1.comp (continuous_unitParam_jordan _ _ _) + +private theorem arcUnitPath_injective {A : OrientedJordanArc} + (p : ArcBVParametrization A) (hne : A.startPoint ≠ A.endPoint) : + Function.Injective (arcUnitPath p) := by + intro s t hst + have hpab : p.a < p.b := lt_of_le_of_ne p.ordered fun hab ↦ by + have heq : (⟨p.a, le_rfl, p.ordered⟩ : Set.Icc p.a p.b) = + ⟨p.b, p.ordered, le_rfl⟩ := Subtype.ext hab + exact hne (p.start_eq.symm.trans ((congrArg p.path.val heq).trans p.end_eq)) + have huv := p.injective (by simpa [arcUnitPath, Function.comp_apply] using hst) + exact (strictMono_convexComb_of_lt _ _ hpab).injective huv + +private theorem arcUnitPath_range {A : OrientedJordanArc} + (p : ArcBVParametrization A) : Set.range (arcUnitPath p) = A.carrier := by + change Set.range (p.path.val ∘ unitParam_jordan p.a p.b p.ordered) = _ + rw [range_comp_surjective _ _ (surjective_unitParam_jordan _ _ _), p.range_eq] + +private theorem isJordanCurve_of_tau {Γ : Set Point} (hΓ : TauCeti.IsJordanCurve Γ) : + IsJordanCurve Γ := by + obtain ⟨e⟩ := hΓ + refine ⟨fun z ↦ (e.symm z : Point), continuous_subtype_val.comp e.symm.continuous, + fun z w h ↦ e.symm.injective (Subtype.ext h), ?_⟩ + apply Set.Subset.antisymm + · rintro z ⟨u, rfl⟩ + exact (e.symm u).property + · intro z hz + exact ⟨e ⟨z, hz⟩, congrArg Subtype.val (e.symm_apply_apply ⟨z, hz⟩)⟩ + +private theorem convexArc_broken_isJordanCurve + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (hne : (edgeVertices K (a : Real.Angle)).1 ≠ + (edgeVertices K (b : Real.Angle)).2) + (A : RectifiableOrientedArc) (p : ArcBVParametrization A.val) + (hA : RealizesConvexArc K a b A) : + IsJordanCurve (Set.range (brokenSupportPath K a b) ∪ A.val.carrier) := by + have hmeet : Set.range (brokenSupportPath K a b) ∩ Set.range (arcUnitPath p) = + {(edgeVertices K (a : Real.Angle)).1, (edgeVertices K (b : Real.Angle)).2} := by + rw [arcUnitPath_range, hA.1] + exact brokenSupportPath_range_inter_convexBoundaryArc K hab hba hne + have hstart : A.val.startPoint = (edgeVertices K (a : Real.Angle)).1 := hA.2.1 + have hend : A.val.endPoint = (edgeVertices K (b : Real.Angle)).2 := hA.2.2 + have hstartend : A.val.startPoint ≠ A.val.endPoint := by simpa [hstart, hend] using hne + let δ : Path (edgeVertices K (a : Real.Angle)).1 + (edgeVertices K (b : Real.Angle)).2 := + (arcUnitPath p).cast hstart.symm hend.symm + have hδinj : Function.Injective δ := by + simpa only [δ, Path.cast_coe] using arcUnitPath_injective p hstartend + have hδrange : Set.range δ = A.val.carrier := by + simpa only [δ, Path.cast_coe] using arcUnitPath_range p + have htau := TauCeti.isJordanCurve_range_union_range_of_inter_eq_pair + (brokenSupportPath_injective K hab hba hne) hδinj (by + rw [hδrange] + simpa [hstart, hend, arcUnitPath_range] using hmeet) + rw [hδrange] at htau + exact isJordanCurve_of_tau htau + +private theorem jordanInterior_subset_closedConvexHull {Γ : Set Point} + (hΓ : Γ.Nonempty) : jordanInterior Γ ⊆ closedConvexHull ℝ Γ := by + intro p hp + exact TauCeti.filledHull_subset_closedConvexHull hΓ hp.2 + +/-- The region enclosed by a loop inside a closed convex set stays inside that set. -/ +theorem jordanInterior_subset_of_subset_closed_convex + {Γ C : Set Point} (hΓ : Γ.Nonempty) (hsub : Γ ⊆ C) + (hconv : Convex ℝ C) (hclosed : IsClosed C) : jordanInterior Γ ⊆ C := by + exact (jordanInterior_subset_closedConvexHull hΓ).trans + (closedConvexHull_min hsub hconv hclosed) + +private theorem isOpen_jordanInterior_of_isJordanCurve {Γ : Set Point} + (hΓ : IsJordanCurve Γ) : IsOpen (jordanInterior Γ) := by + obtain ⟨U, V, hUopen, hVopen, hUconn, hVconn, hUbounded, hVunbounded, hdis, + hcover, hfrontU, hfrontV, hcompU, hcompV⟩ := jordan_separation hΓ + have heq : jordanInterior Γ = U := by + ext p + constructor + · intro hp + have hpUV : p ∈ U ∪ V := hcover.symm.subset hp.1 + rcases hpUV with hpU | hpV + · exact hpU + · exfalso + exact hVunbounded (by simpa only [hcompV p hpV] using hp.2) + · intro hpU + constructor + · intro hpΓ + have hpcompl : p ∈ Γᶜ := hcover ▸ Or.inl hpU + exact hpcompl hpΓ + · simpa only [hcompU p hpU] using hUbounded + rw [heq] + exact hUopen + +private theorem jordanInterior_subset_interior_of_subset_closed_convex + {Γ C : Set Point} (hJordan : IsJordanCurve Γ) (hΓ : Γ.Nonempty) + (hsub : Γ ⊆ C) (hconv : Convex ℝ C) (hclosed : IsClosed C) : + jordanInterior Γ ⊆ interior C := by + intro p hp + apply mem_interior_iff_mem_nhds.mpr + exact Filter.mem_of_superset + ((isOpen_jordanInterior_of_isJordanCurve hJordan).mem_nhds hp) + (jordanInterior_subset_of_subset_closed_convex hΓ hsub hconv hclosed) + +private theorem injOn_concatUnitPaths_jordan + (p q : ContinuousBVPaths 0 1) + (hjoin : p.val ⟨1, by norm_num⟩ = q.val ⟨0, by norm_num⟩) + (hclose : q.val ⟨1, by norm_num⟩ = p.val ⟨0, by norm_num⟩) + (hp : Function.Injective p.val) (hq : Function.Injective q.val) + (hmeet : Set.range p.val ∩ Set.range q.val = + {p.val ⟨0, by norm_num⟩, p.val ⟨1, by norm_num⟩}) : + Set.InjOn (concatUnitPaths_jordan p q hjoin).val {t | (t : ℝ) < 2} := by + intro s hs t ht hst + change (s : ℝ) < 2 at hs + change (t : ℝ) < 2 at ht + change Function.concatUnitIntervals p.val q.val s = + Function.concatUnitIntervals p.val q.val t at hst + unfold Function.concatUnitIntervals at hst + split_ifs at hst with hs₁ ht₁ ht₁ + · have heq := congrArg Subtype.val (hp hst) + apply Subtype.ext + simp only [Set.coe_projIcc] at heq + rw [min_eq_right hs₁, max_eq_right s.property.1, + min_eq_right ht₁, max_eq_right t.property.1] at heq + exact heq + · have hmem : p.val (Set.projIcc 0 1 (by norm_num) (s : ℝ)) ∈ + Set.range p.val ∩ Set.range q.val := + ⟨Set.mem_range_self _, hst ▸ Set.mem_range_self _⟩ + rw [hmeet] at hmem + rcases hmem with hP | hQ + · have hs0 := congrArg Subtype.val (hp hP) + have ht1 := congrArg Subtype.val (hq (hst.symm.trans (hP.trans hclose.symm))) + simp only [Set.coe_projIcc] at hs0 ht1 + rw [min_eq_right hs₁, max_eq_right s.property.1] at hs0 + rw [min_eq_right (by linarith [t.property.2]), + max_eq_right (by linarith)] at ht1 + exfalso + linarith + · have hs1 := congrArg Subtype.val (hp hQ) + have ht0 := congrArg Subtype.val (hq (hst.symm.trans (hQ.trans hjoin))) + simp only [Set.coe_projIcc] at hs1 ht0 + rw [min_eq_right hs₁, max_eq_right s.property.1] at hs1 + rw [min_eq_right (by linarith [t.property.2]), + max_eq_right (by linarith)] at ht0 + apply Subtype.ext + linarith + · have hmem : p.val (Set.projIcc 0 1 (by norm_num) (t : ℝ)) ∈ + Set.range p.val ∩ Set.range q.val := + ⟨Set.mem_range_self _, hst.symm ▸ Set.mem_range_self _⟩ + rw [hmeet] at hmem + rcases hmem with hP | hQ + · have ht0 := congrArg Subtype.val (hp hP) + have hs1 := congrArg Subtype.val (hq (hst.trans (hP.trans hclose.symm))) + simp only [Set.coe_projIcc] at ht0 hs1 + rw [min_eq_right ht₁, max_eq_right t.property.1] at ht0 + rw [min_eq_right (by linarith [s.property.2]), + max_eq_right (by linarith)] at hs1 + exfalso + linarith + · have ht1 := congrArg Subtype.val (hp hQ) + have hs0 := congrArg Subtype.val (hq (hst.trans (hQ.trans hjoin))) + simp only [Set.coe_projIcc] at ht1 hs0 + rw [min_eq_right ht₁, max_eq_right t.property.1] at ht1 + rw [min_eq_right (by linarith [s.property.2]), + max_eq_right (by linarith)] at hs0 + apply Subtype.ext + linarith + · have heq := congrArg Subtype.val (hq hst) + apply Subtype.ext + simp only [Set.coe_projIcc] at heq + rw [min_eq_right (by linarith [s.property.2]), max_eq_right (by linarith), + min_eq_right (by linarith [t.property.2]), max_eq_right (by linarith)] at heq + linarith + +private theorem reparam_support_segments_eq_brokenSupportPath + (K : ConvexBody Point) (a b : ℝ) + (h01 : (lineSegmentBVPath (edgeVertices K a).1 (supportingIntersection K a b)).val + ⟨1, by norm_num⟩ = + (lineSegmentBVPath (supportingIntersection K a b) (edgeVertices K b).2).val + ⟨0, by norm_num⟩) : + (reparamTwoToUnit_jordan (concatUnitPaths_jordan + (lineSegmentBVPath (edgeVertices K a).1 (supportingIntersection K a b)) + (lineSegmentBVPath (supportingIntersection K a b) (edgeVertices K b).2) + h01)).val = brokenSupportPath K a b := by + funext t + simp only [reparamTwoToUnit_jordan, Function.comp_apply, doubleParam_jordan, + concatUnitPaths_jordan, lineSegmentBVPath, brokenSupportPath] + by_cases ht : (t : ℝ) ≤ 1 / 2 + · simp only [Path.trans_apply, dite_eq_left ht] + unfold Function.concatUnitIntervals + rw [ite_eq_left (by linarith)] + congr 1 + apply Subtype.ext + simp only [Set.coe_projIcc] + rw [min_eq_right (by linarith [t.property.2]), + max_eq_right (by linarith [t.property.1])] + · simp only [Path.trans_apply, dite_eq_right ht] + unfold Function.concatUnitIntervals + rw [ite_eq_right (by linarith)] + congr 1 + apply Subtype.ext + simp only [Set.coe_projIcc] + rw [min_eq_right (by linarith [t.property.2]), + max_eq_right (by linarith [t.property.1])] + +private theorem reverseArcUnitPath_injective {A : OrientedJordanArc} + (p : ArcBVParametrization A) (q : ContinuousBVPaths 0 1) + (hq : q.val = (reverseArcPath p).val ∘ unitParam_jordan p.a p.b p.ordered) + (hne : A.startPoint ≠ A.endPoint) : Function.Injective q.val := by + have hpab : p.a < p.b := lt_of_le_of_ne p.ordered fun hab ↦ by + have heq : (⟨p.a, le_rfl, p.ordered⟩ : Set.Icc p.a p.b) = + ⟨p.b, p.ordered, le_rfl⟩ := Subtype.ext hab + exact hne (p.start_eq.symm.trans ((congrArg p.path.val heq).trans p.end_eq)) + intro s t hst + rw [hq] at hst + have hrev := p.injective hst + apply Subtype.ext + have hval := congrArg Subtype.val hrev + simp only [Set.Icc.reverse] at hval + have huv : (unitParam_jordan p.a p.b p.ordered s : ℝ) = + unitParam_jordan p.a p.b p.ordered t := by linarith + exact congrArg Subtype.val + ((strictMono_convexComb_of_lt _ _ hpab).injective (Subtype.ext huv)) + +private theorem brokenSupportPath_union_convexArc_subset_endpointHalfPlanes + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (A : RectifiableOrientedArc) (hA : RealizesConvexArc K a b A) : + Set.range (brokenSupportPath K a b) ∪ A.val.carrier ⊆ + (supportingLineHalfPlane K (a : Real.Angle)).2 ∩ + (supportingLineHalfPlane K (b : Real.Angle)).2 := by + have hsin : 0 < Real.sin (b - a) := + Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hab) (by linarith) + have hK (t : Real.Angle) : (K : Set Point) ⊆ (supportingLineHalfPlane K t).2 := by + intro p hp + exact inner_le_supportValue K hp t + have hOa : supportingIntersection K a b ∈ (supportingLineHalfPlane K a).2 := by + exact le_of_eq (supportingIntersection_inner_left K a b) + have hOb : supportingIntersection K a b ∈ (supportingLineHalfPlane K b).2 := by + exact le_of_eq (supportingIntersection_inner_right K a b hsin.ne') + have hconv (t : Real.Angle) : Convex ℝ (supportingLineHalfPlane K t).2 := by + intro x hx y hy u v hu hv huv + change inner ℝ x (normalVector t) ≤ supportValue K t at hx + change inner ℝ y (normalVector t) ≤ supportValue K t at hy + change inner ℝ (u • x + v • y) (normalVector t) ≤ supportValue K t + rw [inner_add_left, inner_smul_left, inner_smul_left] + simp only [RCLike.conj_to_real] + calc + u * inner ℝ x (normalVector t) + v * inner ℝ y (normalVector t) ≤ + u * supportValue K t + v * supportValue K t := + add_le_add (mul_le_mul_of_nonneg_left hx hu) (mul_le_mul_of_nonneg_left hy hv) + _ = supportValue K t := by rw [← add_mul, huv, one_mul] + intro p hp + rcases hp with hp | hp + · rw [brokenSupportPath_range] at hp + rcases hp with hp | hp + · constructor + · exact (hconv a).segment_subset + (hK a (edgeVertices_fst_mem K (a : Real.Angle)).1) hOa hp + · exact (hconv b).segment_subset + (hK b (edgeVertices_fst_mem K (a : Real.Angle)).1) hOb hp + · constructor + · exact (hconv a).segment_subset hOa + (hK a (edgeVertices_snd_mem K (b : Real.Angle)).1) hp + · exact (hconv b).segment_subset hOb + (hK b (edgeVertices_snd_mem K (b : Real.Angle)).1) hp + · have hpK : p ∈ K := convexBoundaryArc_subset_body K a b (hA.1 ▸ hp) + exact ⟨hK a hpK, hK b hpK⟩ + +private theorem convexBoundaryArc_exists_support_eq + (K : ConvexBody Point) {a b : ℝ} (hab : a ≤ b) {p : Point} + (hp : p ∈ convexBoundaryArc K a b) : + ∃ t ∈ Set.Icc a b, + inner ℝ p (normalVector (t : Real.Angle)) = supportValue K (t : Real.Angle) := by + rcases hp with (hp | hp) | hp + · subst p + exact ⟨a, ⟨le_rfl, hab⟩, (edgeVertices_fst_mem K (a : Real.Angle)).2⟩ + · simp only [Set.mem_iUnion] at hp + obtain ⟨t, htab, hp⟩ := hp + exact ⟨t, ⟨htab.1.le, htab.2.le⟩, hp.2⟩ + · subst p + exact ⟨b, ⟨hab, le_rfl⟩, (edgeVertices_snd_mem K (b : Real.Angle)).2⟩ + +private theorem inner_midpoint_normal_pos {a b t : ℝ} + (_hab : a < b) (hba : b < a + Real.pi) (ht : t ∈ Set.Icc a b) : + 0 < inner ℝ (normalVector (((a + b) / 2 : ℝ) : Real.Angle)) + (normalVector (t : Real.Angle)) := by + rw [inner_normalVector_normalVector] + apply Real.cos_pos_of_mem_Ioo + constructor <;> linarith [ht.1, ht.2] + +private theorem sub_pos_midpoint_normal_inner_lt_support + (K : ConvexBody Point) {a b r : ℝ} (hab : a < b) (hba : b < a + Real.pi) + {p : Point} + (hp : p ∈ ⋂ t ∈ Set.Icc a b, + (supportingLineHalfPlane K (t : Real.Angle)).2) (hr : 0 < r) + (t : ℝ) (ht : t ∈ Set.Icc a b) : + inner ℝ (p - r • normalVector (((a + b) / 2 : ℝ) : Real.Angle)) + (normalVector (t : Real.Angle)) < supportValue K (t : Real.Angle) := by + have hple : inner ℝ p (normalVector (t : Real.Angle)) ≤ + supportValue K (t : Real.Angle) := by + exact Set.mem_iInter₂.mp hp t ht + rw [inner_sub_left, real_inner_smul_left] + have hdot := inner_midpoint_normal_pos hab hba ht + nlinarith + +private theorem brokenSupportPath_mem_support_eq + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) {p : Point} + (hp : p ∈ Set.range (brokenSupportPath K a b)) : + inner ℝ p (normalVector (a : Real.Angle)) = supportValue K a ∨ + inner ℝ p (normalVector (b : Real.Angle)) = supportValue K b := by + have hsin : Real.sin (b - a) ≠ 0 := + (Real.sin_pos_of_pos_of_lt_pi (sub_pos.mpr hab) (by linarith)).ne' + rw [brokenSupportPath_range] at hp + rcases hp with hp | hp + · left + rw [segment_eq_image] at hp + obtain ⟨r, hr, rfl⟩ := hp + rw [inner_add_left, real_inner_smul_left, real_inner_smul_left, + (edgeVertices_fst_mem K (a : Real.Angle)).2, + supportingIntersection_inner_left] + ring + · right + rw [segment_eq_image] at hp + obtain ⟨r, hr, rfl⟩ := hp + rw [inner_add_left, real_inner_smul_left, real_inner_smul_left, + supportingIntersection_inner_right K a b hsin, + (edgeVertices_snd_mem K (b : Real.Angle)).2] + ring + +private theorem sub_pos_midpoint_normal_not_mem_boundary_loop + (K : ConvexBody Point) {a b r : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (A : RectifiableOrientedArc) (hA : RealizesConvexArc K a b A) {p : Point} + (hp : p ∈ ⋂ t ∈ Set.Icc a b, + (supportingLineHalfPlane K (t : Real.Angle)).2) (hr : 0 < r) : + p - r • normalVector (((a + b) / 2 : ℝ) : Real.Angle) ∉ + Set.range (brokenSupportPath K a b) ∪ A.val.carrier := by + intro hq + rcases hq with hq | hq + · rcases brokenSupportPath_mem_support_eq K hab hba hq with hqa | hqb + · exact (ne_of_lt (sub_pos_midpoint_normal_inner_lt_support K hab hba hp hr a + ⟨le_rfl, hab.le⟩)) hqa + · exact (ne_of_lt (sub_pos_midpoint_normal_inner_lt_support K hab hba hp hr b + ⟨hab.le, le_rfl⟩)) hqb + · obtain ⟨t, ht, hqt⟩ := convexBoundaryArc_exists_support_eq K hab.le (hA.1 ▸ hq) + exact (ne_of_lt (sub_pos_midpoint_normal_inner_lt_support K hab hba hp hr t ht)) hqt + +private theorem boundaryLoop_component_unbounded_of_mem_supportIntersection + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (A : RectifiableOrientedArc) (hA : RealizesConvexArc K a b A) {p : Point} + (hpX : p ∈ ⋂ t ∈ Set.Icc a b, + (supportingLineHalfPlane K (t : Real.Angle)).2) + (hpΓ : p ∉ Set.range (brokenSupportPath K a b) ∪ A.val.carrier) : + ¬ Bornology.IsBounded (connectedComponentIn + (Set.range (brokenSupportPath K a b) ∪ A.val.carrier)ᶜ p) := by + let n := normalVector (((a + b) / 2 : ℝ) : Real.Angle) + let f : ℝ → Point := fun r ↦ p - r • n + have hf : Continuous f := continuous_const.sub (continuous_id.smul continuous_const) + have hpre : IsPreconnected (f '' Set.Ici 0) := + isPreconnected_Ici.image f hf.continuousOn + have hsub : f '' Set.Ici 0 ⊆ + (Set.range (brokenSupportPath K a b) ∪ A.val.carrier)ᶜ := by + rintro q ⟨r, hr, rfl⟩ + by_cases hr0 : r = 0 + · simpa [f, hr0] using hpΓ + · exact sub_pos_midpoint_normal_not_mem_boundary_loop K hab hba A hA hpX + (lt_of_le_of_ne hr (Ne.symm hr0)) + have hpmem : p ∈ f '' Set.Ici 0 := ⟨0, by simp, by simp [f]⟩ + have hcomp := hpre.subset_connectedComponentIn hpmem hsub + intro hb + obtain ⟨C, hC⟩ := hb.exists_norm_le + have hn : ‖n‖ = 1 := norm_normalVector_real ((a + b) / 2) + let r := max 0 (C + ‖p‖ + 1) + have hr : 0 ≤ r := le_max_left _ _ + have hq := hC (f r) (hcomp ⟨r, hr, rfl⟩) + have hdiff : ‖r • n‖ ≤ C + ‖p‖ := by + calc + ‖r • n‖ = ‖p - f r‖ := by simp [f] + _ ≤ ‖p‖ + ‖f r‖ := norm_sub_le _ _ + _ ≤ C + ‖p‖ := by linarith + rw [norm_smul, Real.norm_eq_abs, abs_of_nonneg hr, hn, mul_one] at hdiff + have hlower : C + ‖p‖ + 1 ≤ r := le_max_right _ _ + linarith + +private theorem jordanInterior_boundaryLoop_disjoint_supportIntersection + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (A : RectifiableOrientedArc) (hA : RealizesConvexArc K a b A) : + Disjoint (jordanInterior (Set.range (brokenSupportPath K a b) ∪ A.val.carrier)) + (⋂ t ∈ Set.Icc a b, (supportingLineHalfPlane K (t : Real.Angle)).2) := by + rw [Set.disjoint_left] + intro p hpI hpX + exact boundaryLoop_component_unbounded_of_mem_supportIntersection + K hab hba A hA hpX hpI.1 hpI.2 + +private theorem isClosed_supportingLineHalfPlane_lower + (K : ConvexBody Point) (t : Real.Angle) : + IsClosed (supportingLineHalfPlane K t).2 := by + exact isClosed_le (continuous_id.inner continuous_const) continuous_const + +private theorem convex_supportingLineHalfPlane_lower + (K : ConvexBody Point) (t : Real.Angle) : + Convex ℝ (supportingLineHalfPlane K t).2 := by + intro x hx y hy u v hu hv huv + change inner ℝ x (normalVector t) ≤ supportValue K t at hx + change inner ℝ y (normalVector t) ≤ supportValue K t at hy + change inner ℝ (u • x + v • y) (normalVector t) ≤ supportValue K t + rw [inner_add_left, inner_smul_left, inner_smul_left] + simp only [RCLike.conj_to_real] + calc + u * inner ℝ x (normalVector t) + v * inner ℝ y (normalVector t) ≤ + u * supportValue K t + v * supportValue K t := + add_le_add (mul_le_mul_of_nonneg_left hx hu) (mul_le_mul_of_nonneg_left hy hv) + _ = supportValue K t := by rw [← add_mul, huv, one_mul] + +private theorem jordanInterior_boundaryLoop_subset_endpointHalfPlanes + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (hne : (edgeVertices K (a : Real.Angle)).1 ≠ + (edgeVertices K (b : Real.Angle)).2) + (A : RectifiableOrientedArc) (p : ArcBVParametrization A.val) + (hA : RealizesConvexArc K a b A) : + jordanInterior (Set.range (brokenSupportPath K a b) ∪ A.val.carrier) ⊆ + interior ((supportingLineHalfPlane K a).2 ∩ + (supportingLineHalfPlane K b).2) := by + apply jordanInterior_subset_interior_of_subset_closed_convex + (convexArc_broken_isJordanCurve K hab hba hne A p hA) + · exact (Set.range_nonempty _).inl + · exact brokenSupportPath_union_convexArc_subset_endpointHalfPlanes K hab hba A hA + · exact (convex_supportingLineHalfPlane_lower K a).inter + (convex_supportingLineHalfPlane_lower K b) + · exact (isClosed_supportingLineHalfPlane_lower K a).inter + (isClosed_supportingLineHalfPlane_lower K b) + +private theorem concatThree_first_image_jordan + (p₀ p₁ p₂ : ContinuousBVPaths 0 1) + (h01 : p₀.val ⟨1, by norm_num⟩ = p₁.val ⟨0, by norm_num⟩) + (h12 : p₁.val ⟨1, by norm_num⟩ = p₂.val ⟨0, by norm_num⟩) : + (concatThreeUnitPaths_jordan p₀ p₁ p₂ h01 h12).val '' + Set.Icc (⟨0, by norm_num⟩ : Set.Icc (0 : ℝ) 2) ⟨1 / 2, by norm_num⟩ = + Set.range p₀.val := by + apply Set.Subset.antisymm + · rintro z ⟨t, ht, rfl⟩ + have htt : (t : ℝ) ≤ 1 / 2 := by exact_mod_cast ht.2 + let u : Set.Icc (0 : ℝ) 1 := ⟨2 * (t : ℝ), by + constructor <;> nlinarith [t.property.1, htt]⟩ + refine ⟨u, ?_⟩ + have heq : (⟨(u : ℝ) / 2, by + constructor <;> nlinarith [u.property.1, u.property.2]⟩ : Set.Icc (0 : ℝ) 2) = t := by + apply Subtype.ext + dsimp [u] + ring + rw [← heq] + exact (concatThreeUnitPaths_first_jordan p₀ p₁ p₂ h01 h12 u).symm + · rintro z ⟨u, rfl⟩ + let t : Set.Icc (0 : ℝ) 2 := ⟨(u : ℝ) / 2, by + constructor <;> nlinarith [u.property.1, u.property.2]⟩ + refine ⟨t, ⟨by exact Subtype.coe_le_coe.mp t.property.1, + by change (t : ℝ) ≤ 1 / 2; dsimp [t]; linarith [u.property.2]⟩, ?_⟩ + exact concatThreeUnitPaths_first_jordan p₀ p₁ p₂ h01 h12 u + +private theorem concatThree_convexArc_oriented + (K : ConvexBody Point) {a b : ℝ} (hab : a < b) (hba : b < a + Real.pi) + (hne : (edgeVertices K (a : Real.Angle)).1 ≠ + (edgeVertices K (b : Real.Angle)).2) + (A : RectifiableOrientedArc) (p : ArcBVParametrization A.val) + (hA : RealizesConvexArc K a b A) + (p₂ : ContinuousBVPaths 0 1) + (hp₂ : p₂.val = (reverseArcPath p).val ∘ unitParam_jordan p.a p.b p.ordered) + (h01 : (lineSegmentBVPath (edgeVertices K a).1 (supportingIntersection K a b)).val + ⟨1, by norm_num⟩ = + (lineSegmentBVPath (supportingIntersection K a b) (edgeVertices K b).2).val + ⟨0, by norm_num⟩) + (h12 : (lineSegmentBVPath (supportingIntersection K a b) (edgeVertices K b).2).val + ⟨1, by norm_num⟩ = p₂.val ⟨0, by norm_num⟩) : + IsOrientedJordanParametrization (by norm_num : (0 : ℝ) ≤ 2) + (Set.range (concatThreeUnitPaths_jordan + (lineSegmentBVPath (edgeVertices K a).1 (supportingIntersection K a b)) + (lineSegmentBVPath (supportingIntersection K a b) (edgeVertices K b).2) + p₂ h01 h12).val) true + (concatThreeUnitPaths_jordan + (lineSegmentBVPath (edgeVertices K a).1 (supportingIntersection K a b)) + (lineSegmentBVPath (supportingIntersection K a b) (edgeVertices K b).2) + p₂ h01 h12).val := by + let p₀ := lineSegmentBVPath (edgeVertices K a).1 (supportingIntersection K a b) + let p₁ := lineSegmentBVPath (supportingIntersection K a b) (edgeVertices K b).2 + let q := concatUnitPaths_jordan p₀ p₁ h01 + let q' := reparamTwoToUnit_jordan q + let γ := concatThreeUnitPaths_jordan p₀ p₁ p₂ h01 h12 + have hq' : q'.val = brokenSupportPath K a b := + reparam_support_segments_eq_brokenSupportPath K a b h01 + have hpq : Function.Injective q'.val := hq' ▸ brokenSupportPath_injective K hab hba hne + have hPneQ : A.val.startPoint ≠ A.val.endPoint := by simpa [hA.2.1, hA.2.2] using hne + have hp₂inj := reverseArcUnitPath_injective p p₂ hp₂ hPneQ + have hqrange : Set.range q'.val = Set.range (brokenSupportPath K a b) := by rw [hq'] + have hp₂range : Set.range p₂.val = A.val.carrier := range_reverseArcUnitPath p p₂ hp₂ + have hmeet : Set.range q'.val ∩ Set.range p₂.val = + {q'.val ⟨0, by norm_num⟩, q'.val ⟨1, by norm_num⟩} := by + rw [hqrange, hp₂range, hA.1, + brokenSupportPath_range_inter_convexBoundaryArc K hab hba hne, hq'] + simp [brokenSupportPath] + have hclose : p₂.val ⟨1, by norm_num⟩ = q'.val ⟨0, by norm_num⟩ := by + rw [hp₂] + simp [q', hq', brokenSupportPath, reverseArcPath, unitParam_jordan, Set.Icc.reverse, + hA.2.1, p.start_eq] + have hjoin : q'.val ⟨1, by norm_num⟩ = p₂.val ⟨0, by norm_num⟩ := by + rw [show q'.val ⟨1, by norm_num⟩ = q.val ⟨2, by norm_num⟩ from + reparamTwoToUnit_one q] + exact (concatUnitPaths_jordan_end p₀ p₁ h01).trans h12 + have hinj := injOn_concatUnitPaths_jordan q' p₂ hjoin + hclose hpq hp₂inj hmeet + have hrange : Set.range γ.val = Set.range (brokenSupportPath K a b) ∪ A.val.carrier := by + rw [show γ = concatThreeUnitPaths_jordan p₀ p₁ p₂ h01 h12 by rfl] + rw [range_concatThreeUnitPaths_jordan, hp₂range] + have hq'q : Set.range q'.val = Set.range q.val := + range_comp_surjective q.val doubleParam_jordan surjective_doubleParam_jordan + rw [← Function.range_concatUnitIntervals p₀.val p₁.val h01] + change Set.range q.val ∪ A.val.carrier = _ + rw [← hq'q, hqrange] + have hJordan := convexArc_broken_isJordanCurve K hab hba hne A p hA + obtain ⟨d, hd, hdir⟩ := supportingIntersection_eq_fst_add_pos_tangent K hab hba hne + have hclosedγ : γ.val ⟨0, by norm_num⟩ = γ.val ⟨2, by norm_num⟩ := by + simpa [γ, concatThreeUnitPaths_jordan, concatUnitPaths_jordan, q', q] using hclose.symm + have hinjγ : Set.InjOn γ.val {t | (t : ℝ) < 2} := by + simpa [γ, concatThreeUnitPaths_jordan, q', q] using hinj + have hhalfγ (t : Set.Icc (0 : ℝ) 2) : + γ.val t ∈ normalHalfPlane (a : Real.Angle) (supportValue K a) false false := + (brokenSupportPath_union_convexArc_subset_endpointHalfPlanes K hab hba A hA + (hrange ▸ Set.mem_range_self t)).1 + let s : Set.Icc (0 : ℝ) 2 := ⟨0, by norm_num⟩ + let t : Set.Icc (0 : ℝ) 2 := ⟨1 / 2, by norm_num⟩ + have hs : γ.val s = (edgeVertices K (a : Real.Angle)).1 := by + simpa [s, γ, p₀, lineSegmentBVPath] using + concatThreeUnitPaths_first_jordan p₀ p₁ p₂ h01 h12 ⟨0, by norm_num⟩ + have ht : γ.val t = supportingIntersection K a b := by + simpa [t, γ, p₀, lineSegmentBVPath] using + concatThreeUnitPaths_first_jordan p₀ p₁ p₂ h01 h12 ⟨1, by norm_num⟩ + exact jordan_counterclockwise_of_supporting_segment 0 2 (by norm_num) γ.val + γ.property.1 (hrange ▸ hJordan) hclosedγ hinjγ + (a : Real.Angle) (supportValue K a) hhalfγ s t (by + change (0 : ℝ) < 1 / 2 + norm_num) + (by rw [hs]; exact (edgeVertices_fst_mem K (a : Real.Angle)).2) + d hd (by rw [hs, ht]; exact hdir) + (by + rw [hs, ht] + rw [show γ.val '' Set.Icc s t = Set.range p₀.val by + simpa [s, t, γ] using concatThree_first_image_jordan p₀ p₁ p₂ h01 h12] + exact Path.range_segment _ _) + +private theorem exists_rectifiableOrientedArc_segment_jordan (P Q : Point) (hPQ : P ≠ Q) : + ∃ A : RectifiableOrientedArc, + A.val.carrier = segment ℝ P Q ∧ A.val.startPoint = P ∧ A.val.endPoint = Q := by + let Γ : OrientedJordanArc := + { carrier := segment ℝ P Q + startPoint := P + endPoint := Q + parametrizable := by + refine ⟨0, 1, by norm_num, Path.segment P Q, + (Path.segment P Q).continuous, Path.segment_injective_of_ne hPQ, + Path.range_segment P Q, ?_, ?_⟩ <;> simp } + let z : ArcBVParametrization Γ := + { a := 0 + b := 1 + ordered := by norm_num + path := lineSegmentBVPath P Q + injective := Path.segment_injective_of_ne hPQ + range_eq := Path.range_segment P Q + start_eq := by simp [lineSegmentBVPath, Γ] + end_eq := by simp [lineSegmentBVPath, Γ] } + let A : RectifiableOrientedArc := ⟨Γ, ⟨z⟩⟩ + exact ⟨A, rfl, rfl, rfl⟩ + +private theorem exists_rectifiableOrientedArc_convexBoundaryArc_jordan + (K : ConvexBody Point) (a b : ℝ) (hab : a < b) (hba : b < a + Real.pi) + (hne : (edgeVertices K a).1 ≠ (edgeVertices K b).2) : + ∃ A : RectifiableOrientedArc, RealizesConvexArc K a b A := by + let P := (edgeVertices K (a : Real.Angle)).1 + let Q := (edgeVertices K (b : Real.Angle)).2 + let O := supportingIntersection K a b + obtain ⟨-, hcut⟩ := convexBoundaryArc_cut K a b hab hba P Q O rfl rfl rfl + obtain ⟨hncol, t, c, K', hat, htb, hPt, hQt, hcO, hK', hleft, hmiddle, + hright, hterminal⟩ := hcut hne + by_cases hInt : (interior (K' : Set Point)).Nonempty + · obtain ⟨A, hcarrier, hstart, hend⟩ := + exists_rectifiableOrientedArc_convexBoundaryArc_of_cut K K' a b t c P Q + hat htb hba hne hPt hQt rfl rfl hleft hmiddle hright hterminal hInt + exact ⟨A, hcarrier, hstart, hend⟩ + · have hInt' : interior (K' : Set Point) = ∅ := Set.not_nonempty_iff_eq_empty.mp hInt + have harc := convexBoundaryArc_eq_segment_of_cut_interior_empty K K' a b t c P Q + hat htb hba hne hPt hQt rfl rfl hleft hmiddle hright hInt' + obtain ⟨A, hcarrier, hstart, hend⟩ := + exists_rectifiableOrientedArc_segment_jordan P Q hne + exact ⟨A, hcarrier.trans harc.symm, hstart, hend⟩ + +/-- The supporting segments and reversed convex boundary arc form a counterclockwise Jordan +curve. -/ +theorem convexBoundaryArc_jordan (K : ConvexBody Point) (a b : ℝ) + (hab : a < b) (hba : b < a + Real.pi) + (hne : (edgeVertices K a).1 ≠ (edgeVertices K b).2) : + ∃ (A : RectifiableOrientedArc) (p : ArcBVParametrization A.val) + (γ : RectifiablePathData) (pieces : Fin 3 → RectifiablePathData), + RealizesConvexArc K a b A ∧ + IsSegmentTraversal (pieces 0) (edgeVertices K a).1 (supportingIntersection K a b) ∧ + IsSegmentTraversal (pieces 1) (supportingIntersection K a b) (edgeVertices K b).2 ∧ + IsReverseArcTraversal (pieces 2) p ∧ IsPathConcatenation γ pieces ∧ + IsOrientedJordanParametrization γ.ordered (Set.range γ.path.val) true γ.path.val ∧ + jordanInterior (Set.range γ.path.val) ⊆ + interior ((supportingLineHalfPlane K a).2 ∩ (supportingLineHalfPlane K b).2) ∧ + Disjoint (jordanInterior (Set.range γ.path.val)) + (⋂ t ∈ Set.Icc a b, (supportingLineHalfPlane K (t : Real.Angle)).2) := by + obtain ⟨A, hA⟩ := + exists_rectifiableOrientedArc_convexBoundaryArc_jordan K a b hab hba hne + let p : ArcBVParametrization A.val := Classical.choice A.property + let P := (edgeVertices K (a : Real.Angle)).1 + let Q := (edgeVertices K (b : Real.Angle)).2 + let O := supportingIntersection K a b + let p₀ := lineSegmentBVPath P O + let p₁ := lineSegmentBVPath O Q + obtain ⟨p₂, hp₂, hp₂rev⟩ := exists_reverseArcUnitPath p + have h01 : p₀.val ⟨1, by norm_num⟩ = p₁.val ⟨0, by norm_num⟩ := by + simp [p₀, p₁, lineSegmentBVPath] + have h12 : p₁.val ⟨1, by norm_num⟩ = p₂.val ⟨0, by norm_num⟩ := by + rw [hp₂] + change p₁.val ⟨1, by norm_num⟩ = + (reverseArcPath p).val (unitParam_jordan p.a p.b p.ordered ⟨0, by norm_num⟩) + rw [show unitParam_jordan p.a p.b p.ordered ⟨0, by norm_num⟩ = + ⟨p.a, le_rfl, p.ordered⟩ by exact Set.Icc.convexComb_zero _ _] + rw [reverseArcPath_start] + simpa [p₁, Q, lineSegmentBVPath, Path.segment_apply, + AffineMap.lineMap_apply_module'] using hA.2.2.symm + let γpath := concatThreeUnitPaths_jordan p₀ p₁ p₂ h01 h12 + let γ : RectifiablePathData := + { a := 0, b := 2, ordered := by norm_num, path := γpath } + let pieces : Fin 3 → RectifiablePathData := + ![{ a := 0, b := 1, ordered := by norm_num, path := p₀ }, + { a := 0, b := 1, ordered := by norm_num, path := p₁ }, + { a := 0, b := 1, ordered := by norm_num, path := p₂ }] + have horient := concatThree_convexArc_oriented K hab hba hne A p hA p₂ hp₂ h01 h12 + have hrange : Set.range γ.path.val = + Set.range (brokenSupportPath K a b) ∪ A.val.carrier := by + change Set.range (concatThreeUnitPaths_jordan p₀ p₁ p₂ h01 h12).val = _ + rw [range_concatThreeUnitPaths_jordan, range_reverseArcUnitPath p p₂ hp₂] + rw [← Function.range_concatUnitIntervals p₀.val p₁.val h01] + let q := concatUnitPaths_jordan p₀ p₁ h01 + have hrepr : Set.range (reparamTwoToUnit_jordan q).val = Set.range q.val := + range_comp_surjective q.val doubleParam_jordan surjective_doubleParam_jordan + change Set.range q.val ∪ A.val.carrier = _ + rw [← hrepr, show (reparamTwoToUnit_jordan q).val = brokenSupportPath K a b by + simpa [q, p₀, p₁, P, Q, O] using + reparam_support_segments_eq_brokenSupportPath K a b h01] + refine ⟨A, p, γ, pieces, hA, ?_, ?_, ?_, ?_, ?_, ?_, ?_⟩ + · simpa [pieces, P, O, Matrix.cons_val_zero] using + isSegmentTraversal_lineSegmentBVPath P O + · simpa [pieces, Q, O, Matrix.cons_val_zero, Matrix.cons_val_one] using + isSegmentTraversal_lineSegmentBVPath O Q + · simpa [pieces, Matrix.cons_val_zero, Matrix.cons_val_one] using hp₂rev + · simpa [γ, γpath, pieces] using + isPathConcatenation_concatThreeUnitPaths_jordan p₀ p₁ p₂ h01 h12 + · simpa [γ, γpath, p₀, p₁] using horient + · rw [hrange] + exact jordanInterior_boundaryLoop_subset_endpointHalfPlanes K hab hba hne A p hA + · rw [hrange] + exact jordanInterior_boundaryLoop_disjoint_supportIntersection K hab hba A hA + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Area of the region between a convex arc and its supporting tangents + +The loop built from a convex boundary arc and the two tangent segments meeting at the +intersection of the arc's endpoint supporting lines bounds the "Mamikon region" cut off by +those tangents. The single result here bounds that region's signed area by the measure of any +set that receives it. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The region between a convex boundary arc and its two supporting tangent segments has area +at most that of any finite-measure set that receives every point of a closed convex carrier of +the body which lies inside both endpoint supporting half-planes but outside the body. -/ +theorem convexArc_tangentRegion_area_le (B : ConvexBody Point) (a b : ℝ) + (hab : a < b) (hba : b < a + Real.pi) + {C : Set Point} (hconv : Convex ℝ C) (hclosed : IsClosed C) + (hBC : (B : Set Point) ⊆ C) + (hOC : supportingIntersection B (a : Real.Angle) (b : Real.Angle) ∈ C) + {E : Set Point} (hE : MeasureTheory.volume E ≠ ⊤) + (hsubE : ∀ q ∈ interior ((supportingLineHalfPlane B (a : Real.Angle)).2 ∩ + (supportingLineHalfPlane B (b : Real.Angle)).2), + q ∈ C → q ∉ (B : Set Point) → q ∈ E) : + segmentArea (edgeVertices B (a : Real.Angle)).1 + (supportingIntersection B (a : Real.Angle) (b : Real.Angle)) + + segmentArea (supportingIntersection B (a : Real.Angle) (b : Real.Angle)) + (edgeVertices B (b : Real.Angle)).2 - + convexArcArea B a b ≤ ClassicalResults.area E := by + have harea0 : (0 : ℝ) ≤ ClassicalResults.area E := ENNReal.toReal_nonneg + by_cases hPQ : (edgeVertices B (a : Real.Angle)).1 = (edgeVertices B (b : Real.Angle)).2 + · -- coincident endpoints: the cut lemma collapses the arc and the intersection to one point + obtain ⟨hO, hcar⟩ := (convexBoundaryArc_cut B a b hab hba _ _ _ rfl rfl rfl).1 hPQ + obtain ⟨Δ, hΔcar, hΔstart, hΔend, hΔarea⟩ := + (segmentArea_jordan_and_frame (edgeVertices B (a : Real.Angle)).1 + (edgeVertices B (a : Real.Angle)).1).1 + have hreal : RealizesConvexArc B a b Δ := + ⟨hΔcar.trans ((segment_same ℝ _).trans hcar.symm), hΔstart, hΔend.trans hPQ⟩ + have hzero : segmentArea (edgeVertices B (a : Real.Angle)).1 + (edgeVertices B (a : Real.Angle)).1 = 0 := by + simp only [segmentArea, planeCrossProduct] + ring + rw [convexArcArea_eq_jordanArcArea_of_realizes hreal, hΔarea, hO, ← hPQ, hzero] + simpa using harea0 + · obtain ⟨A, p, γ, pieces, hA, hs0, hs1, hrev, hconcat, horient, hint, hdisj⟩ := + convexBoundaryArc_jordan B a b hab hba hPQ + have hΓne : (Set.range γ.path.val).Nonempty := + ⟨_, ⟨⟨γ.a, le_rfl, γ.ordered⟩, rfl⟩⟩ + have hpiece0 : Set.range (pieces 0).path.val ⊆ C := by + obtain ⟨φ, τ, -, -, hφs, -, -, -, heq⟩ := hs0 + rintro _ ⟨u, rfl⟩ + obtain ⟨s, hs⟩ := hφs u + rw [← hs, heq s] + exact hconv (hBC (edgeVertices_fst_mem B _).1) hOC + (by linarith [(τ s).property.2]) (τ s).property.1 (by ring) + have hpiece1 : Set.range (pieces 1).path.val ⊆ C := by + obtain ⟨φ, τ, -, -, hφs, -, -, -, heq⟩ := hs1 + rintro _ ⟨u, rfl⟩ + obtain ⟨s, hs⟩ := hφs u + rw [← hs, heq s] + exact hconv hOC (hBC (edgeVertices_snd_mem B _).1) + (by linarith [(τ s).property.2]) (τ s).property.1 (by ring) + have hpiece2 : Set.range (pieces 2).path.val ⊆ C := by + obtain ⟨φ, ψ, -, -, hφs, -, -, -, heq⟩ := hrev + rintro _ ⟨u, rfl⟩ + obtain ⟨s, hs⟩ := hφs u + rw [← hs, heq s] + have hmem : ∀ v : Set.Icc p.a p.b, p.path.val v ∈ (B : Set Point) := by + intro v + have h : p.path.val v ∈ Set.range p.path.val := ⟨v, rfl⟩ + rw [p.range_eq, hA.1] at h + exact convexBoundaryArc_subset_body B a b h + exact hBC (hmem _) + -- the whole loop lies in `C`, hence so does the region it encloses + have hrangeC : Set.range γ.path.val ⊆ C := by + refine hconcat.range_subset_iUnion.trans (Set.iUnion_subset ?_) + intro i + fin_cases i + · exact hpiece0 + · exact hpiece1 + · exact hpiece2 + have hRC : jordanInterior (Set.range γ.path.val) ⊆ C := + jordanInterior_subset_of_subset_closed_convex hΓne hrangeC hconv hclosed + -- `B` sits inside all of its supporting half-planes, so the region avoids `B` + have hRnotB : ∀ q ∈ jordanInterior (Set.range γ.path.val), q ∉ (B : Set Point) := by + intro q hq hqB + refine Set.disjoint_left.mp hdisj hq (Set.mem_iInter₂.mpr fun t _ ↦ ?_) + change inner ℝ q (normalVector (t : Real.Angle)) ≤ supportValue (B : Set Point) _ + exact inner_le_supportValue B hqB _ + have hRE : jordanInterior (Set.range γ.path.val) ⊆ E := fun q hq => + hsubE q (hint hq) (hRC hq) (hRnotB q hq) + -- signed area of the counterclockwise loop is the area it encloses, and path additivity + -- splits it into the two segments and the reversed arc + have hloop : curveAreaFunctional γ.path = + ClassicalResults.area (jordanInterior (Set.range γ.path.val)) := + curveArea_eq_jordanInterior_area γ.a γ.b γ.ordered _ γ.path horient + have hparc : curveAreaFunctional p.path = convexArcArea B a b := by + rw [convexArcArea_eq_jordanArcArea_of_realizes hA] + change _ = curveAreaFunctional (Classical.choice A.property).path + exact (curveArea_reparametrization.2.1 A.val A.val p + (Classical.choice A.property) rfl).1 rfl rfl + have hval : segmentArea (edgeVertices B (a : Real.Angle)).1 + (supportingIntersection B (a : Real.Angle) (b : Real.Angle)) + + segmentArea (supportingIntersection B (a : Real.Angle) (b : Real.Angle)) + (edgeVertices B (b : Real.Angle)).2 - convexArcArea B a b = + curveAreaFunctional γ.path := by + rw [curveArea_concatenation γ pieces hconcat, Fin.sum_univ_three, + hs0.curveAreaFunctional_eq, hs1.curveAreaFunctional_eq, + hrev.curveAreaFunctional_eq, hparc] + ring + rw [hval, hloop] + have hle : MeasureTheory.volume (jordanInterior (Set.range γ.path.val)) ≤ + MeasureTheory.volume E := MeasureTheory.measure_mono hRE + exact (ENNReal.toReal_le_toReal (ne_top_of_le_ne_top hE hle) hE).mpr hle + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Area.Mamikon.Basic`. +* `Area.Variation`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Area / Mamikon / Basic +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The signed area between the convex boundary arc and a path on its supporting lines. -/ +def mamikonFunctional (K : ConvexBody Point) (a b : ℝ) + (hab : a < b) (_hba : b < a + Real.pi) (z : ContinuousBVPaths a b) + (_hz : ∀ t : Set.Icc a b, + z.val t ∈ (supportingLineHalfPlane K (t.val : Real.Angle)).1) : ℝ := + segmentArea (edgeVertices K (a : Real.Angle)).1 + (z.val ⟨a, le_rfl, hab.le⟩) + + curveAreaFunctional z + + segmentArea (z.val ⟨b, hab.le, le_rfl⟩) + (edgeVertices K (b : Real.Angle)).2 - + convexArcArea K a b + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Area / Variation +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory Set +open scoped unitInterval + +namespace MovingSofa + +/-- Coordinatewise convex combination of two pairs of planar points. -/ +def pointPairCombination (t : I) (x y : Point × Point) : Point × Point := + ((1 - (t : ℝ)) • x.1 + (t : ℝ) • y.1, + (1 - (t : ℝ)) • x.2 + (t : ℝ) • y.2) + +theorem segmentArea_variation : + IsQuadraticFunctional pointPairCombination (fun x ↦ segmentArea x.1 x.2) ∧ + ∀ p q p' q' : Point, + convexDirectionalDerivative pointPairCombination (fun x ↦ segmentArea x.1 x.2) + (p, q) (p', q') = + (planeCrossProduct (p' + q') (q - p) - 2 * planeCrossProduct p q) / 2 + + (segmentArea q q' - segmentArea p p') := by + let h : (Point × Point) → (Point × Point) → ℝ := fun x y ↦ + (planeCrossProduct x.1 y.2 + planeCrossProduct y.1 x.2) / 4 + have hh : IsConvexBilinear pointPairCombination pointPairCombination realCombination h := by + constructor <;> intro x t y z <;> + simp [h, pointPairCombination, realCombination, planeCrossProduct] <;> ring + have hf (x : Point × Point) : segmentArea x.1 x.2 = h x x := by + simp only [h, segmentArea] + ring + refine ⟨⟨h, hh, hf⟩, ?_⟩ + intro p q p' q' + rw [(quadratic_directional_derivative pointPairCombination _ h hh hf).2.1] + simp [h, segmentArea, planeCrossProduct] + ring + +/-- The pointwise convex combination of two continuous BV paths. -/ +def bvPathCombination {a b : ℝ} (t : I) (x y : ContinuousBVPaths a b) : + ContinuousBVPaths a b := + (1 - (t : ℝ)) • x + (t : ℝ) • y + +private theorem coordinate_measure_smul_add_smul {a b : ℝ} (r s : ℝ) + (x y : ContinuousBVPaths a b) (i : Fin 2) : + intervalStieltjesMeasure (continuousBVCoordinate (r • x + s • y) i) = + r • intervalStieltjesMeasure (continuousBVCoordinate x i) + + s • intervalStieltjesMeasure (continuousBVCoordinate y i) := by + obtain ⟨F, hF, hμ⟩ := intervalStieltjes_linear_combination a b + (continuousBVCoordinate x i) (continuousBVCoordinate y i) r s + rw [← hμ] + refine congrArg _ (RightContinuousIntervalBV.toFun_injective (funext fun u ↦ ?_)) + simpa [continuousBVCoordinate] using (hF u).symm + +private def coordinateIntegral {a b : ℝ} (x y : ContinuousBVPaths a b) (i j : Fin 2) : ℝ := + intervalStieltjesIntegral (continuousBVCoordinate y j) (fun t ↦ x.val t i) univ + +private theorem coordinateIntegral_smul_add_smul_right {a b : ℝ} (r s : ℝ) + (x y z : ContinuousBVPaths a b) (i j : Fin 2) : + coordinateIntegral x (r • y + s • z) i j = + r * coordinateIntegral x y i j + s * coordinateIntegral x z i j := by + have hi (w : ContinuousBVPaths a b) : + (intervalStieltjesMeasure (continuousBVCoordinate w j)).Integrable (fun s ↦ x.val s i) := + RightContinuousIntervalBV.integrable_of_continuous _ + ((PiLp.continuous_apply 2 _ i).comp x.property.1) + unfold coordinateIntegral intervalStieltjesIntegral + simp only [VectorMeasure.restrict_univ] + rw [coordinate_measure_smul_add_smul, VectorMeasure.integral_add_vectorMeasure + ((hi y).smul_vectorMeasure _) ((hi z).smul_vectorMeasure _)] + simp only [VectorMeasure.integral_smul_vectorMeasure, smul_eq_mul] + +private theorem coordinateIntegral_smul_add_smul_left {a b : ℝ} (r s : ℝ) + (x y z : ContinuousBVPaths a b) (i j : Fin 2) : + coordinateIntegral (r • x + s • y) z i j = + r * coordinateIntegral x z i j + s * coordinateIntegral y z i j := by + have hi (w : ContinuousBVPaths a b) : + (intervalStieltjesMeasure (continuousBVCoordinate z j)).Integrable (fun s ↦ w.val s i) := + RightContinuousIntervalBV.integrable_of_continuous _ + ((PiLp.continuous_apply 2 _ i).comp w.property.1) + unfold coordinateIntegral intervalStieltjesIntegral + simp only [VectorMeasure.restrict_univ] + change (∫ᵛ u, r • x.val u i + s • y.val u i + ∂[ContinuousLinearMap.mul ℝ ℝ; intervalStieltjesMeasure (continuousBVCoordinate z j)]) = _ + have hadd := VectorMeasure.integral_fun_add (B := ContinuousLinearMap.mul ℝ ℝ) + ((hi x).smul r) ((hi y).smul s) + simp only [Pi.smul_apply, VectorMeasure.integral_fun_smul] at hadd + simpa only [smul_eq_mul] using hadd + +private theorem coordinateIntegral_combination_right {a b : ℝ} + (t : I) (x y z : ContinuousBVPaths a b) (i j : Fin 2) : + coordinateIntegral x (bvPathCombination t y z) i j = + (1 - (t : ℝ)) * coordinateIntegral x y i j + (t : ℝ) * coordinateIntegral x z i j := + coordinateIntegral_smul_add_smul_right _ _ x y z i j + +private theorem coordinateIntegral_combination_left {a b : ℝ} + (t : I) (x y z : ContinuousBVPaths a b) (i j : Fin 2) : + coordinateIntegral (bvPathCombination t x y) z i j = + (1 - (t : ℝ)) * coordinateIntegral x z i j + (t : ℝ) * coordinateIntegral y z i j := + coordinateIntegral_smul_add_smul_left _ _ x y z i j + +private theorem coordinateIntegral_difference {a b : ℝ} (x y : ContinuousBVPaths a b) + (i j : Fin 2) : + intervalStieltjesIntegral (continuousBVCoordinate x j) (fun t ↦ y.val t i - x.val t i) univ = + coordinateIntegral y x i j - coordinateIntegral x x i j := by + unfold coordinateIntegral intervalStieltjesIntegral + simp only [VectorMeasure.restrict_univ] + exact VectorMeasure.integral_fun_sub + (RightContinuousIntervalBV.integrable_of_continuous _ + ((PiLp.continuous_apply 2 _ i).comp y.property.1)) + (RightContinuousIntervalBV.integrable_of_continuous _ + ((PiLp.continuous_apply 2 _ i).comp x.property.1)) + +private theorem curveArea_quadratic_derivative (a b : ℝ) : + IsQuadraticFunctional bvPathCombination (@curveAreaFunctional a b) ∧ + ∀ x y : ContinuousBVPaths a b, + convexDirectionalDerivative bvPathCombination curveAreaFunctional x y = + (coordinateIntegral x y 0 1 - coordinateIntegral x y 1 0 + + (coordinateIntegral y x 0 1 - coordinateIntegral y x 1 0) - + 2 * (coordinateIntegral x x 0 1 - coordinateIntegral x x 1 0)) / 2 := by + let h : ContinuousBVPaths a b → ContinuousBVPaths a b → ℝ := fun x y ↦ + (coordinateIntegral x y 0 1 - coordinateIntegral x y 1 0) / 2 + have hh : IsConvexBilinear bvPathCombination bvPathCombination realCombination h := by + constructor + · intro x t y z + dsimp only [h] + rw [coordinateIntegral_combination_right, coordinateIntegral_combination_right] + simp only [realCombination] + ring + · intro x t y z + dsimp only [h] + rw [coordinateIntegral_combination_left, coordinateIntegral_combination_left] + simp only [realCombination] + ring + have hf (x : ContinuousBVPaths a b) : curveAreaFunctional x = h x x := rfl + refine ⟨⟨h, hh, hf⟩, ?_⟩ + intro x y + rw [(quadratic_directional_derivative bvPathCombination _ h hh hf).2.1] + dsimp only [h] + ring + +theorem curveArea_variation (a b : ℝ) (hab : a ≤ b) : + IsQuadraticFunctional bvPathCombination (@curveAreaFunctional a b) ∧ + ∀ x y : ContinuousBVPaths a b, + convexDirectionalDerivative bvPathCombination curveAreaFunctional x y = + intervalStieltjesIntegral (continuousBVCoordinate x 1) + (fun t ↦ y.val t 0 - x.val t 0) Set.univ - + intervalStieltjesIntegral (continuousBVCoordinate x 0) + (fun t ↦ y.val t 1 - x.val t 1) Set.univ + + (segmentArea (x.val ⟨b, hab, le_rfl⟩) (y.val ⟨b, hab, le_rfl⟩) - + segmentArea (x.val ⟨a, le_rfl, hab⟩) (y.val ⟨a, le_rfl, hab⟩)) := by + obtain ⟨hq, hd⟩ := curveArea_quadratic_derivative a b + refine ⟨hq, ?_⟩ + intro x y + have hc (w : ContinuousBVPaths a b) (i : Fin 2) : + Continuous (continuousBVCoordinate w i).toFun := + (PiLp.continuous_apply 2 _ i).comp w.property.1 + have h01 := intervalStieltjes_integration_by_parts_of_continuous a b hab + (continuousBVCoordinate x 0) (continuousBVCoordinate y 1) (hc x 0) (hc y 1) + have h10 := intervalStieltjes_integration_by_parts_of_continuous a b hab + (continuousBVCoordinate x 1) (continuousBVCoordinate y 0) (hc x 1) (hc y 0) + change coordinateIntegral y x 1 0 + coordinateIntegral x y 0 1 = _ at h01 + change coordinateIntegral y x 0 1 + coordinateIntegral x y 1 0 = _ at h10 + rw [hd, coordinateIntegral_difference, coordinateIntegral_difference] + simp only [continuousBVCoordinate] at h01 h10 + simp only [segmentArea, planeCrossProduct] + linarith + +private theorem curveAreaFunctional_eq_coordinateIntegral {a b : ℝ} + (x : ContinuousBVPaths a b) : + curveAreaFunctional x = (coordinateIntegral x x 0 1 - coordinateIntegral x x 1 0) / 2 := rfl + +/-- Translating a continuous BV path by another one adds the translating path's own signed area +and the two mixed cross integrals. -/ +private theorem curveAreaFunctional_add {a b : ℝ} + (x c : ContinuousBVPaths a b) : + curveAreaFunctional (x + c) = curveAreaFunctional x + curveAreaFunctional c + + (coordinateIntegral x c 0 1 - coordinateIntegral x c 1 0 + + (coordinateIntegral c x 0 1 - coordinateIntegral c x 1 0)) / 2 := by + have hone : x + c = (1 : ℝ) • x + (1 : ℝ) • c := by rw [one_smul, one_smul] + simp only [curveAreaFunctional_eq_coordinateIntegral, hone, + coordinateIntegral_smul_add_smul_left, coordinateIntegral_smul_add_smul_right] + ring + +/-- Translating a continuous BV path by a fixed one changes its signed area by a convex-linear +functional of the path: the two mixed Stieltjes cross integrals are separately linear and the +translating path's own area is constant. -/ +theorem curveArea_translation_convexLinear {a b : ℝ} + (c : ContinuousBVPaths a b) : + IsConvexLinear bvPathCombination realCombination + (fun x ↦ curveAreaFunctional (x + c) - curveAreaFunctional x) := by + intro t x y + change curveAreaFunctional ((1 - (t : ℝ)) • x + (t : ℝ) • y + c) - + curveAreaFunctional ((1 - (t : ℝ)) • x + (t : ℝ) • y) = + realCombination t (curveAreaFunctional (x + c) - curveAreaFunctional x) + (curveAreaFunctional (y + c) - curveAreaFunctional y) + rw [curveAreaFunctional_add ((1 - (t : ℝ)) • x + (t : ℝ) • y) c, + curveAreaFunctional_add x c, curveAreaFunctional_add y c, realCombination] + simp only [coordinateIntegral_smul_add_smul_left, coordinateIntegral_smul_add_smul_right] + ring + +theorem convexArcArea_variation (a b : ℝ) (hab : a < b) (hba : b < a + Real.pi) : + IsQuadraticFunctional convexBodyCombination (fun K ↦ convexArcArea K a b) ∧ + ∀ K L : ConvexBody Point, + convexDirectionalDerivative convexBodyCombination (fun M ↦ convexArcArea M a b) K L = + (∫ t in (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b, + (supportValue L t - supportValue K t) ∂surfaceAreaMeasure K) + + (segmentArea (edgeVertices K (b : Real.Angle)).2 (edgeVertices L (b : Real.Angle)).2 - + segmentArea (edgeVertices K (a : Real.Angle)).1 (edgeVertices L (a : Real.Angle)).1) := by + obtain ⟨hbil0, F, hFtoFun, hFcross, hFarea⟩ := convexArc_bilinear_computation a b hab hba + let E := (fun s : ℝ ↦ (s : Real.Angle)) '' Set.Ioo a b + let B : ConvexBody Point → ConvexBody Point → ℝ := fun K L ↦ + (1 / 2 : ℝ) * ∫ t in E, supportValue K t ∂surfaceAreaMeasure L + have hbil : IsConvexBilinear convexBodyCombination convexBodyCombination realCombination B := + hbil0 + have hfB : ∀ K : ConvexBody Point, convexArcArea K a b = B K K := fun K ↦ + (hFarea K).trans ((hFcross K K).1).symm + refine ⟨⟨B, hbil, hfB⟩, ?_⟩ + intro K L + have hcont (M : ConvexBody Point) : Continuous fun u : Real.Angle ↦ supportValue M u := + (compactSet_support_continuity M M M.nonempty M.isCompact M.nonempty M.isCompact).2.2.1 + have hint (M N : ConvexBody Point) : + Integrable (fun u : Real.Angle ↦ supportValue M u) (surfaceAreaMeasure N) := by + let _ : IsFiniteMeasure (surfaceAreaMeasure N) := (surfaceAreaMeasure_face_union N).1 + exact (hcont M).integrable_of_hasCompactSupport + (isCompact_univ.of_isClosed_subset isClosed_closure (Set.subset_univ _)) + have hsub : (∫ t in E, (supportValue L t - supportValue K t) ∂surfaceAreaMeasure K) = + 2 * B L K - 2 * B K K := by + rw [integral_sub (hint L K).restrict (hint K K).restrict] + simp only [B, E] + ring + have hanti : B K L - B L K = + segmentArea (edgeVertices K (b : Real.Angle)).2 (edgeVertices L (b : Real.Angle)).2 - + segmentArea (edgeVertices K (a : Real.Angle)).1 (edgeVertices L (a : Real.Angle)).1 := by + have h1 : B K L = openIntervalCrossIntegral (F L) + (fun t : Set.Icc a b ↦ (edgeVertices K ((t : ℝ) : Real.Angle)).2) := (hFcross K L).2 + have h2 : B L K = openIntervalCrossIntegral (F K) + (fun t : Set.Icc a b ↦ (edgeVertices L ((t : ℝ) : Real.Angle)).1) := (hFcross L K).1 + rw [h1, h2] + exact openIntervalCrossIntegral_antisymm hab K L (F K) (F L) (hFtoFun K) (hFtoFun L) + rw [(quadratic_directional_derivative convexBodyCombination + (fun M ↦ convexArcArea M a b) B hbil hfB).2.1 K L, hsub] + linarith + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Optimality from the area upper bound + +`AreaUpperBound` says that no moving sofa has larger area than Gerver's sofa. Since Gerver's sofa +is itself a moving sofa, the bound gives `sofaConstant = volume gerversSofa`. +-/ + +@[expose] public section + +namespace MovingSofa + +open MeasureTheory +open scoped EuclideanGeometry unitInterval + +/-- Every moving sofa has area at most that of Gerver's sofa. This is the upper bound proved in +Baek's paper; together with the fact that Gerver's sofa is a moving sofa it gives optimality. -/ +def AreaUpperBound : Prop := + ∀ (s : Set ℝ²) (m : I → E(2)), IsMovingSofa s m → volume s ≤ volume gerversSofa + +/-- The area upper bound implies that Gerver's sofa attains the sofa constant. -/ +theorem optimality_of_areaUpperBound (h : AreaUpperBound) : + sofaConstant = volume gerversSofa := by + apply le_antisymm _ volume_gerversSofa_le_sofaConstant + unfold sofaConstant + refine iSup_le fun s ↦ iSup_le fun hs ↦ ?_ + obtain ⟨m, hm⟩ := hs + exact h s m hm + +end MovingSofa + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Motion.CanonicalBridge`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Motion / Canonical Bridge +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open MeasureTheory +open scoped unitInterval + +private def normalizeMotion (m : I → Point ≃ᵃⁱ[ℝ] Point) (t : I) : + Point ≃ᵃⁱ[ℝ] Point := + (m 0).symm.trans (m t) + +private theorem continuous_normalizeMotion (m : I → Point ≃ᵃⁱ[ℝ] Point) + (hm : Continuous m) : Continuous (normalizeMotion m) := by + rw [continuous_induced_rng] + have hmc : Continuous (fun t ↦ (m t).toAffineIsometry.toContinuousAffineMap) := + continuous_induced_dom.comp hm + apply (ContinuousAffineMap.continuous_comp_right + (m 0).symm.toAffineIsometry.toContinuousAffineMap).comp hmc |>.congr + intro t + rfl + +/-- A canonical hallway motion is also a paper motion of the same set. -/ +theorem IsMovingSofa.isPaperMotion {s : Set Point} {m : I → Point ≃ᵃⁱ[ℝ] Point} + (h : IsMovingSofa s m) : IsPaperMotion s m := by + refine ⟨h.isConnected, h.isClosed, h.continuous, ⟨0, ?_⟩, + exists_motion_rotation m h.continuous h.zero, ?_, h.subset_hallway, h.final⟩ + · intro p + simp [h.zero] + · simpa [h.zero] using h.initial + +theorem canonical_paper_motion_bridge : + (∀ s : Set Point, IsPaperMovingSofa s → + ∃ (q : Point) (m : I → Point ≃ᵃⁱ[ℝ] Point), + IsMovingSofa ((fun p ↦ p + q) '' s) m ∧ + volume ((fun p ↦ p + q) '' s) = volume s) ∧ + (∀ (s : Set Point) (m : I → Point ≃ᵃⁱ[ℝ] Point), + IsMovingSofa s m → IsPaperMovingSofa s) := by + constructor + · rintro s ⟨m, hsconn, hsclosed, hmcont, ⟨q, hq⟩, -, hini, hall, hfinal⟩ + refine ⟨q, normalizeMotion m, ?_, ?_⟩ + · refine + { isConnected := hsconn.image _ (by fun_prop) + isClosed := ?_ + continuous := continuous_normalizeMotion m hmcont + zero := ?_ + initial := ?_ + subset_hallway := ?_ + final := ?_ } + · change IsClosed ((AffineIsometryEquiv.vaddConst ℝ q) '' s) + exact (AffineIsometryEquiv.vaddConst ℝ q).toHomeomorph.isClosedMap s hsclosed + · ext x + simp [normalizeMotion] + · rintro _ ⟨x, hx, rfl⟩ + change x + q ∈ horizontalHallway + rw [← hq x] + exact hini ⟨x, hx, rfl⟩ + · intro t + rintro _ ⟨_, ⟨x, hx, rfl⟩, rfl⟩ + change normalizeMotion m t (x + q) ∈ hallway + rw [← hq x] + exact hall t ⟨x, hx, by simp [normalizeMotion]⟩ + · rintro _ ⟨_, ⟨x, hx, rfl⟩, rfl⟩ + change normalizeMotion m 1 (x + q) ∈ verticalHallway + rw [← hq x] + exact hfinal ⟨x, hx, by simp [normalizeMotion]⟩ + · have himage : (fun p ↦ p + q) '' s = (fun p ↦ p - q) ⁻¹' s := by + ext p + constructor + · rintro ⟨x, hx, rfl⟩ + simpa using hx + · intro hp + exact ⟨p - q, hp, by simp⟩ + rw [himage, ← Measure.map_apply_of_aemeasurable (μ := volume) + (f := fun p : Point ↦ p - q) (by fun_prop) hsclosed.measurableSet] + have hmap : Measure.map (fun p : Point ↦ p - q) volume = volume := by + simpa only [sub_eq_add_neg] using map_add_right_eq_self volume (-q) + rw [hmap] + · exact fun s m h ↦ ⟨m, h.isPaperMotion⟩ + +theorem canonical_motion_compactness (s : Set Point) (m : I → Point ≃ᵃⁱ[ℝ] Point) + (h : IsMovingSofa s m) : + IsCompact s ∧ MeasurableSet s ∧ volume s < ⊤ := by + have hc : IsCompact s := Metric.isCompact_iff_isClosed_bounded.mpr + ⟨h.isClosed, h.isBounded⟩ + exact ⟨hc, hc.measurableSet, hc.measure_lt_top⟩ + +theorem real_area_le_iff_volume_le (s t : Set Point) + (hfinS : volume s < ⊤) (hfinT : volume t < ⊤) : + ClassicalResults.area s ≤ ClassicalResults.area t ↔ volume s ≤ volume t := by + exact ENNReal.toReal_le_toReal hfinS.ne hfinT.ne + +end MovingSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/Development/Geometry/Foundations/Development007.lean b/LeanPool/MovingSofa/Development/Geometry/Foundations/Development007.lean new file mode 100644 index 0000000000..1febd02c61 --- /dev/null +++ b/LeanPool/MovingSofa/Development/Geometry/Foundations/Development007.lean @@ -0,0 +1,10967 @@ +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +module + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development006 + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development005 + + + + + + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development002 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development001 + + + +public import Mathlib.MeasureTheory.Integral.Prod +public import Mathlib.MeasureTheory.Measure.Hausdorff +public import Mathlib.MeasureTheory.Measure.Lebesgue.EqHaar +public import Mathlib.MeasureTheory.Measure.Real +public import Mathlib.Topology.ContinuousMap.Basic +public import Mathlib.Topology.Order.ProjIcc +/-! +# Moving sofa: related mathematical developments + +* `Polygon.Foundations.Development002`. +* `Bounds.Foundations.Development003`. +* `Cap.Foundations.Development005`. +* `Sofa.Foundations.Development001`. +* `Cap.Foundations.Development006`. +* `Bounds.Foundations.Development004`. +* `Cap.Foundations.Development007`. +* `Area.Foundations.Development003`. +* `Bounds.Foundations.Development005`. +* `Bounds.Foundations.Development006`. +* `Motion.Foundations.Development002`. +* `Sofa.Foundations.Development002`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Polygon.Approximation`. +* `Polygon.CapWidthBound`. +* `Polygon.DiscreteCapData`. +* `Polygon.Height.Properties`. +* `Polygon.Nef.Slices`. +* `Polygon.Nef.Variation.LocalSlices`. +* `Polygon.Nef.Variation.Area`. +* `Polygon.Nef.Variation.Boundary`. +* `Polygon.Nef.Variation`. +* `Polygon.Nef.SignedVariation`. +* `Polygon.Height.WallVariation`. +* `Polygon.RightAngleGrid`. +* `Polygon.Translation`. +* `Polygon.Height.Reconstruction`. +* `Polygon.Height.PositiveIncrement.Contacts`. +* `Polygon.Height.PositiveIncrement`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Approximation +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Membership in a polygon cap is given by the strip and selected support inequalities. -/ +theorem mem_angleCap_iff (Θ : AngleSet) (K : CapSpace Θ.angle) (p : Point) : + p ∈ angleCap Θ K ↔ + ((0 ≤ p 1 ∧ p 1 ≤ 1) ∧ + (0 ≤ inner ℝ p (normalVector (Θ.angle : Real.Angle)) ∧ + inner ℝ p (normalVector (Θ.angle : Real.Angle)) ≤ 1)) ∧ + ∀ t ∈ Θ.directions, + inner ℝ p (normalVector (t : Real.Angle)) ≤ supportValue K.val (t : Real.Angle) ∧ + inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) ≤ + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) := by + simp only [angleCap, Set.mem_inter_iff, Set.mem_iInter, mem_stripParallelogram_iff] + apply and_congr_right + intro _ + apply forall_congr' + intro t + apply forall_congr' + intro _ + rw [(rotatingHallwayParts_formulas (K.val : Set Point) (t : Real.Angle)).2.2.2.2.2.2.2.1] + rfl + +/-- The polygon-cap approximation contains the original cap. -/ +theorem subset_angleCap (Θ : AngleSet) (K : CapSpace Θ.angle) : + (K.val : Set Point) ⊆ angleCap Θ K := by + intro p hp + apply (mem_angleCap_iff Θ K p).mpr + refine ⟨(mem_stripParallelogram_iff _ _).mp (K.subset_stripParallelogram hp), ?_⟩ + intro t _ + exact ⟨inner_le_supportValue K.val hp _, inner_le_supportValue K.val hp _⟩ + +/-- A polygon cap is the intersection of its selected support half-planes. -/ +theorem angleCap_eq_iInter_supportValue (Θ : AngleSet) (K : CapSpace Θ.angle) : + angleCap Θ K = ⋂ t ∈ + ((fun t : ℝ ↦ (t : Real.Angle)) '' angleDomain Θ) ∪ capLowerNormals Θ.angle, + normalHalfPlane t (supportValue K.val t) false false := by + ext p + simp only [Set.mem_iInter, mem_angleCap_iff] + constructor + · rintro ⟨⟨hy, hw⟩, ht⟩ u hu + change inner ℝ p (normalVector u) ≤ supportValue K.val u + rcases hu with ⟨u, hu, rfl⟩ | hu + · rcases hu with (hu | ⟨t, ht', rfl⟩) | hu + · exact (ht u hu).1 + · exact (ht t ht').2 + · rcases hu with rfl | hu + · rw [K.property.2.2.1] + exact hw.2 + · have heq : u = Real.pi / 2 := hu + subst u + rw [K.property.2.2.2.1] + simpa [normalVector, frame, PiLp.inner_apply] using hy.2 + · rcases hu with rfl | hu + · rw [K.property.2.2.2.2.1, normalVector_add_pi, inner_neg_right] + exact neg_nonpos.mpr hw.1 + · have heq : u = ((3 * Real.pi / 2 : ℝ) : Real.Angle) := hu + subst u + rw [K.property.2.2.2.2.2.1, inner_normalVector_three_pi_div_two] + exact neg_nonpos.mpr hy.1 + · intro hp + have ht (t : ℝ) (ht : t ∈ Θ.directions) := + hp (t : Real.Angle) (Or.inl ⟨t, Or.inl (Or.inl ht), rfl⟩) + have ht' (t : ℝ) (ht : t ∈ Θ.directions) := + hp ((t + Real.pi / 2 : ℝ) : Real.Angle) + (Or.inl ⟨t + Real.pi / 2, Or.inl (Or.inr ⟨t, ht, rfl⟩), rfl⟩) + have hw := hp (Θ.angle : Real.Angle) + (Or.inl ⟨Θ.angle, Or.inr (Or.inl rfl), rfl⟩) + have hy := hp ((Real.pi / 2 : ℝ) : Real.Angle) + (Or.inl ⟨Real.pi / 2, Or.inr (Or.inr rfl), rfl⟩) + have hl := hp ((Θ.angle + Real.pi : ℝ) : Real.Angle) (Or.inr (Or.inl rfl)) + have hb := hp ((3 * Real.pi / 2 : ℝ) : Real.Angle) (Or.inr (Or.inr rfl)) + change inner ℝ p (normalVector _) ≤ supportValue K.val _ at hw hy hl hb + rw [K.property.2.2.1] at hw + rw [K.property.2.2.2.1] at hy + rw [K.property.2.2.2.2.1, normalVector_add_pi, inner_neg_right] at hl + rw [K.property.2.2.2.2.2.1, inner_normalVector_three_pi_div_two] at hb + have hy' : p 1 ≤ 1 := by simpa [normalVector, frame, PiLp.inner_apply] using hy + exact ⟨⟨⟨by linarith, hy'⟩, by linarith, hw⟩, fun t h ↦ ⟨ht t h, ht' t h⟩⟩ + +/-- Polygon-cap approximations are closed. -/ +theorem isClosed_angleCap (Θ : AngleSet) (K : CapSpace Θ.angle) : + IsClosed (angleCap Θ K) := by + rw [angleCap_eq_iInter_supportValue] + apply isClosed_iInter + intro t + apply isClosed_iInter + intro _ + exact isClosed_le (by fun_prop) continuous_const + +/-- Polygon-cap approximations are convex. -/ +theorem convex_angleCap (Θ : AngleSet) (K : CapSpace Θ.angle) : + Convex ℝ (angleCap Θ K) := by + rw [angleCap_eq_iInter_supportValue] + apply convex_iInter + intro t + apply convex_iInter + intro _ + apply convex_halfSpace_le + exact ⟨fun x y ↦ inner_add_left x y _, fun a x ↦ by simp [real_inner_smul_left]⟩ + +/-- Polygon-cap approximation preserves support at every selected normal. -/ +theorem supportValue_angleCap (Θ : AngleSet) (K : CapSpace Θ.angle) + {t : Real.Angle} + (ht : t ∈ ((fun t : ℝ ↦ (t : Real.Angle)) '' angleDomain Θ) ∪ capLowerNormals Θ.angle) : + supportValue (angleCap Θ K) t = supportValue K.val t := by + have hbound : ∀ p ∈ angleCap Θ K, inner ℝ p (normalVector t) ≤ supportValue K.val t := by + intro p hp + rw [angleCap_eq_iInter_supportValue] at hp + exact Set.mem_iInter.mp (Set.mem_iInter.mp hp t) ht + have hbd : BddAbove ((fun p ↦ inner ℝ p (normalVector t)) '' angleCap Θ K) := by + refine ⟨supportValue K.val t, ?_⟩ + rintro _ ⟨p, hp, rfl⟩ + exact hbound p hp + apply le_antisymm + · apply csSup_le ((K.val.nonempty.mono (subset_angleCap Θ K)).image _) + rintro _ ⟨p, hp, rfl⟩ + exact hbound p hp + · apply csSup_le (K.val.nonempty.image _) + rintro _ ⟨p, hp, rfl⟩ + exact le_csSup hbd ⟨p, subset_angleCap Θ K hp, rfl⟩ + +/-- Polygon-cap approximation fixes caps with the prescribed normals. -/ +theorem angleCap_eq_self (Θ : AngleSet) (P : PolygonCapSpace Θ) : + angleCap Θ P.val = (P.val.val : Set Point) := by + rw [angleCap_eq_iInter_supportValue, ← P.property.eq_iInter_supportValue] + +/-- An interior selected direction bounds the polygon cap, including at right angle. -/ +theorem isBounded_angleCap (Θ : AngleSet) (K : CapSpace Θ.angle) : + Bornology.IsBounded (angleCap Θ K) := by + obtain ⟨t, ht⟩ := Θ.nonempty + have hti := Θ.interior t ht + have hc : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, hti.1], hti.2.trans_le Θ.angle_le⟩ + have hs : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi hti.1 + (by linarith [hti.2, Θ.angle_le, Real.pi_pos]) + let l := -supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) / Real.sin t + let r := supportValue K.val (t : Real.Angle) / Real.cos t + let M := |l| + |r| + have hM : 0 ≤ M := by dsimp [M]; positivity + apply isBounded_iff_forall_norm_le.mpr + refine ⟨M + 1, ?_⟩ + intro p hp + obtain ⟨⟨hy, _⟩, hnormals⟩ := (mem_angleCap_iff Θ K p).mp hp + obtain ⟨ha, hb⟩ := hnormals t ht + simp [normalVector, frame, PiLp.inner_apply, Real.cos_add, Real.sin_add, + -Real.Angle.coe_add] at ha hb + have hl : l ≤ p 0 := by + apply (div_le_iff₀ hs).mpr + nlinarith [mul_nonneg hc.le hy.1] + have hr : p 0 ≤ r := by + apply (le_div_iff₀ hc).mpr + nlinarith [mul_nonneg hs.le hy.1] + have hx : |p 0| ≤ M := by + apply abs_le.mpr + dsimp [M] + constructor <;> linarith [neg_abs_le l, le_abs_self r, abs_nonneg l, abs_nonneg r] + have hx2 := (sq_le_sq₀ (abs_nonneg (p 0)) hM).mpr hx + have hy2 : (p 1) ^ 2 ≤ 1 := by nlinarith [hy.1, hy.2] + have hn := EuclideanSpace.norm_sq_eq p + simp only [Fin.sum_univ_two, Real.norm_eq_abs, sq_abs] at hn hx2 + nlinarith [norm_nonneg p] + +/-- Polygon-cap approximations are compact. -/ +theorem isCompact_angleCap (Θ : AngleSet) (K : CapSpace Θ.angle) : + IsCompact (angleCap Θ K) := + Metric.isCompact_iff_isClosed_bounded.mpr ⟨isClosed_angleCap Θ K, isBounded_angleCap Θ K⟩ + +theorem angleCap_properties (Θ : AngleSet) (K : CapSpace Θ.angle) : + (∃ P : PolygonCapSpace Θ, (P.val.val : Set Point) = angleCap Θ K) ∧ + (K.val : Set Point) ⊆ angleCap Θ K ∧ + (∀ t ∈ ((fun t : ℝ ↦ (t : Real.Angle)) '' angleDomain Θ) ∪ capLowerNormals Θ.angle, + supportValue (angleCap Θ K) t = supportValue (K.val : Set Point) t) ∧ + (∀ P : PolygonCapSpace Θ, angleCap Θ P.val = (P.val.val : Set Point)) := by + refine ⟨?_, subset_angleCap Θ K, fun _ ht ↦ supportValue_angleCap Θ K ht, + angleCap_eq_self Θ⟩ + let L : ConvexBody Point := ⟨angleCap Θ K, convex_angleCap Θ K, + isCompact_angleCap Θ K, K.val.nonempty.mono (subset_angleCap Θ K)⟩ + let N := ((fun t : ℝ ↦ (t : Real.Angle)) '' angleDomain Θ) ∪ capLowerNormals Θ.angle + have hrepr : HasHalfPlaneRepresentation L N := by + refine ⟨(fun t ↦ (t, supportValue K.val t)) '' N, ?_, ?_⟩ + · rintro _ ⟨t, ht, rfl⟩ + exact ht + · simp only [Set.biInter_image] + exact angleCap_eq_iInter_supportValue Θ K + have hdomain : angleDomain Θ ⊆ capUpperAngles Θ.angle := by + rintro t ((ht | ⟨s, hs, rfl⟩) | ht) + · exact Or.inl ⟨(Θ.interior t ht).1.le, (Θ.interior t ht).2.le⟩ + · right + constructor <;> linarith [(Θ.interior s hs).1, (Θ.interior s hs).2] + · rcases ht with rfl | rfl + · exact Or.inl ⟨Θ.angle_pos.le, le_rfl⟩ + · exact Or.inr ⟨le_rfl, le_add_of_nonneg_left Θ.angle_pos.le⟩ + have hrepr' : HasHalfPlaneRepresentation L + (((fun t : ℝ ↦ (t : Real.Angle)) '' capUpperAngles Θ.angle) ∪ capLowerNormals Θ.angle) := by + obtain ⟨C, hC, hLC⟩ := hrepr + refine ⟨C, ?_, hLC⟩ + intro c hc + rcases hC c hc with ⟨t, ht, heq⟩ | ht + · exact Or.inl ⟨t, hdomain ht, heq⟩ + · exact Or.inr ht + have hsupp (t : Real.Angle) (ht : t ∈ N) : supportValue L t = supportValue K.val t := + supportValue_angleCap Θ K ht + have hcap : IsCap Θ.angle L := by + refine ⟨Θ.angle_pos, Θ.angle_le, ?_, ?_, ?_, ?_, hrepr'⟩ + · rw [hsupp _ (Or.inl ⟨Θ.angle, Or.inr (Or.inl rfl), rfl⟩)] + exact K.property.2.2.1 + · rw [hsupp _ (Or.inl ⟨Real.pi / 2, Or.inr (Or.inr rfl), rfl⟩)] + exact K.property.2.2.2.1 + · rw [hsupp _ (Or.inr (Or.inl rfl))] + exact K.property.2.2.2.2.1 + · rw [hsupp _ (Or.inr (Or.inr rfl))] + exact K.property.2.2.2.2.2.1 + exact ⟨⟨⟨L, hcap⟩, hrepr⟩, rfl⟩ + +theorem polygonNiche_angleCap (Θ : AngleSet) (K P : CapSpace Θ.angle) + (hP : (P.val : Set Point) = angleCap Θ K) : + polygonNiche Θ K = polygonNiche Θ P ∧ polygonNiche Θ K ⊆ capNiche K := by + refine ⟨?_, polygonNiche_subset_capNiche Θ K⟩ + have hs := (angleCap_properties Θ K).2.2.1 + have hq (t : ℝ) (ht : t ∈ Θ.directions) : + innerQuadrant (K.val : Set Point) t = innerQuadrant (P.val : Set Point) t := by + unfold innerQuadrant + rw [hP, hs (t : Real.Angle) (Or.inl ⟨t, Or.inl (Or.inl ht), rfl⟩), + hs ((t + Real.pi / 2 : ℝ) : Real.Angle) + (Or.inl ⟨t + Real.pi / 2, Or.inl (Or.inr ⟨t, ht, rfl⟩), rfl⟩)] + unfold polygonNiche + congr 1 + exact Set.iUnion_congr fun t ↦ Set.iUnion_congr fun ht ↦ hq t ht + +theorem polygonArea_upperBound (Θ : AngleSet) : + (∀ K : PolygonCapSpace Θ, polygonAreaFunctional Θ K.val = + ClassicalResults.area (K.val.val : Set Point) - + ClassicalResults.area (polygonNiche Θ K.val)) ∧ + (∀ K : CapSpace Θ.angle, capAreaFunctional K ≤ polygonAreaFunctional Θ K) := by + constructor + · intro K + unfold polygonAreaFunctional + rw [(angleCap_properties Θ K.val).2.2.2 K] + · intro K + obtain ⟨P, hP⟩ := (angleCap_properties Θ K).1 + have hcap : ClassicalResults.area (K.val : Set Point) ≤ + ClassicalResults.area (angleCap Θ K) := by + apply ENNReal.toReal_mono + · rw [← hP] + exact P.val.val.isCompact.measure_ne_top + · exact MeasureTheory.measure_mono (angleCap_properties Θ K).2.1 + have hniche : ClassicalResults.area (polygonNiche Θ K) ≤ + ClassicalResults.area (capNiche K) := by + apply ENNReal.toReal_mono (niche_uniform_bounds.1 Θ.angle K).2.2.1.ne + exact MeasureTheory.measure_mono (polygonNiche_angleCap Θ K P.val hP).2 + exact sub_le_sub hcap hniche + +/-- A maximum polygon cap dominates every cap under the polygon area functional. -/ +theorem polygonAreaFunctional_le_maximum (Θ : AngleSet) (P : PolygonCapSpace Θ) + (hP : IsMaximumPolygonCap Θ P) (K : CapSpace Θ.angle) : + polygonAreaFunctional Θ K ≤ polygonAreaFunctional Θ P.val := by + obtain ⟨Q, hQ⟩ := (angleCap_properties Θ K).1 + have hn := (polygonNiche_angleCap Θ K Q.val hQ).1 + have harea : polygonAreaFunctional Θ Q.val = polygonAreaFunctional Θ K := by + unfold polygonAreaFunctional + rw [(angleCap_properties Θ Q.val).2.2.2 Q, hQ, hn] + rw [← harea] + exact hP.2 Q + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Cap Width Bound +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open MeasureTheory +open scoped Pointwise + +private theorem directionalWidth_zero (K : ConvexBody Point) : + directionalWidth K 0 = horizontalMax K - horizontalMin K := by + simp only [directionalWidth, zero_add] + rw [← Real.Angle.coe_zero, supportValue_zero_eq_horizontalMax, + supportValue_pi_eq_neg_horizontalMin, ← sub_eq_add_neg] + +private theorem volume_coordinate_open_rectangle (l r b t : ℝ) : + volume {p : Point | p 0 ∈ Set.Ioo l r ∧ p 1 ∈ Set.Ioo b t} = + ENNReal.ofReal (r - l) * ENNReal.ofReal (t - b) := by + have h := EuclideanSpace.volume_preserving_finTwoCoordinates.measure_preimage + ((measurableSet_Ioo.prod measurableSet_Ioo).nullMeasurableSet : + NullMeasurableSet (Set.Ioo l r ×ˢ Set.Ioo b t) (volume : Measure (ℝ × ℝ))) + simpa [Measure.volume_eq_prod, Measure.prod_prod, Real.volume_Ioo, Set.preimage, Set.prod] using h + +private theorem cap_horizontalWidth_le_of_cos_pos {ω : ℝ} (K : CapSpace ω) + (hc : 0 < Real.cos ω) : + directionalWidth (K.val : Set Point) 0 ≤ (1 + Real.sin ω) / Real.cos ω := by + have hs : 0 ≤ Real.sin ω := Real.sin_nonneg_of_nonneg_of_le_pi K.property.1.le + (K.property.2.1.trans (by linarith [Real.pi_pos])) + have hx (p : Point) (hp : p ∈ (K.val : Set Point)) : + -Real.sin ω / Real.cos ω ≤ p 0 ∧ p 0 ≤ 1 / Real.cos ω := by + obtain ⟨hy, hv⟩ := (mem_stripParallelogram_iff ω p).mp (K.subset_stripParallelogram hp) + simp [normalVector, frame, PiLp.inner_apply] at hv + constructor + · apply (div_le_iff₀ hc).mpr + nlinarith [mul_nonneg hs (sub_nonneg.mpr hy.2)] + · apply (le_div_iff₀ hc).mpr + nlinarith [mul_nonneg hs hy.1] + have hmax : horizontalMax K.val ≤ 1 / Real.cos ω := + csSup_le (K.val.nonempty.image _) (by rintro _ ⟨p, hp, rfl⟩; exact (hx p hp).2) + have hmin : -Real.sin ω / Real.cos ω ≤ horizontalMin K.val := + le_csInf (K.val.nonempty.image _) (by rintro _ ⟨p, hp, rfl⟩; exact (hx p hp).1) + rw [directionalWidth_zero] + calc + horizontalMax K.val - horizontalMin K.val ≤ + 1 / Real.cos ω - -Real.sin ω / Real.cos ω := sub_le_sub hmax hmin + _ = (1 + Real.sin ω) / Real.cos ω := by ring + +private theorem wedge_rectangle_inequalities {s c a b x y : ℝ} + (hs : 0 < s) (hc : 0 < c) (hs1 : s ≤ 1) (hc1 : c ≤ 1) + (hL : 0 < a / c + b / s) + (hx : x ∈ Set.Ioo (-b / s + (a / c + b / s) / 4) + (a / c - (a / c + b / s) / 4)) + (hy : y ∈ Set.Ioo 0 ((a / c + b / s) * s * c / 4)) : + 0 ≤ y ∧ c * x + s * y < a ∧ -s * x + c * y < b := by + let L := a / c + b / s + have hLc : 0 ≤ L * c / 4 := by dsimp [L]; positivity + have hLs : 0 ≤ L * s / 4 := by dsimp [L]; positivity + have hyc : y < L * c / 4 := by + apply hy.2.trans_le + calc + L * s * c / 4 = s * (L * c / 4) := by ring + _ ≤ 1 * (L * c / 4) := mul_le_mul_of_nonneg_right hs1 hLc + _ = L * c / 4 := one_mul _ + have hys : y < L * s / 4 := by + apply hy.2.trans_le + calc + L * s * c / 4 = c * (L * s / 4) := by ring + _ ≤ 1 * (L * s / 4) := mul_le_mul_of_nonneg_right hc1 hLs + _ = L * s / 4 := one_mul _ + have hsy : s * y ≤ y := by nlinarith [mul_nonneg (sub_nonneg.mpr hs1) hy.1.le] + have hcy : c * y ≤ y := by nlinarith [mul_nonneg (sub_nonneg.mpr hc1) hy.1.le] + have hright : (x + L / 4) * c < a := + (lt_div_iff₀ hc).mp (by dsimp [L]; linarith [hx.2]) + have hleft : -b < (x - L / 4) * s := + (div_lt_iff₀ hs).mp (by dsimp [L]; linarith [hx.1]) + exact ⟨hy.1.le, by nlinarith, by nlinarith⟩ + +private theorem polygonNiche_area_ge_rectangle (Θ : AngleSet) + (hΘ : Θ.angle = Real.pi / 2) {t : ℝ} (ht : t ∈ Θ.directions) + (K : CapSpace Θ.angle) (hs : 0 < Real.sin t) (hc : 0 < Real.cos t) + (hL : 0 < (supportValue K.val (t : Real.Angle) - 1) / Real.cos t + + (supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) / Real.sin t) : + ((supportValue K.val (t : Real.Angle) - 1) / Real.cos t + + (supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) / Real.sin t) ^ 2 * + Real.sin t * Real.cos t / 8 ≤ ClassicalResults.area (polygonNiche Θ K) := by + let a := supportValue K.val (t : Real.Angle) - 1 + let b := supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 + let L := a / Real.cos t + b / Real.sin t + let R : Set Point := {p | p 0 ∈ Set.Ioo (-b / Real.sin t + L / 4) + (a / Real.cos t - L / 4) ∧ p 1 ∈ Set.Ioo 0 (L * Real.sin t * Real.cos t / 4)} + have hsub : R ⊆ polygonNiche Θ K := by + intro p hp + have hineq := wedge_rectangle_inequalities hs hc (Real.sin_le_one t) (Real.cos_le_one t) + hL hp.1 hp.2 + refine ⟨?_, Set.mem_iUnion₂.mpr ⟨t, ht, ?_⟩⟩ + · rw [hΘ] + simpa [capFan, normalHalfPlane, normalVector, frame, PiLp.inner_apply] using hineq.1 + · simpa [innerQuadrant, normalHalfPlane, normalVector, frame, PiLp.inner_apply, + Real.sin_add, Real.cos_add, -Real.Angle.coe_add, a, b] using hineq.2 + have hwidth : a / Real.cos t - L / 4 - (-b / Real.sin t + L / 4) = L / 2 := by + dsimp [L] + ring + have harea : ClassicalResults.area R = L ^ 2 * Real.sin t * Real.cos t / 8 := by + change (volume R).toReal = _ + rw [volume_coordinate_open_rectangle, hwidth, sub_zero, ENNReal.toReal_mul, + ENNReal.toReal_ofReal (show 0 ≤ L / 2 by dsimp [L, a, b]; positivity), + ENNReal.toReal_ofReal (show 0 ≤ L * Real.sin t * Real.cos t / 4 by + dsimp [L, a, b]; positivity)] + ring + rw [← harea] + exact ENNReal.toReal_mono (niche_uniform_bounds.2.1 Θ K).2.2.1.ne (measure_mono hsub) + +theorem polygonCap_width_bound (ω t : ℝ) (hω : 0 < ω) + (hω' : ω ≤ Real.pi / 2) (ht : t ∈ Set.Ioo 0 ω) : + ∃ c : ℝ, 0 < c ∧ ∀ (Θ : AngleSet), Θ.angle = ω → t ∈ Θ.directions → + ∀ K : PolygonCapSpace Θ, 0 ≤ polygonAreaFunctional Θ K.val → + directionalWidth (K.val.val : Set Point) (0 : Real.Angle) ≤ c := by + rcases lt_or_eq_of_le hω' with hlt | rfl + · have hc : 0 < Real.cos ω := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos], hlt⟩ + have hs : 0 ≤ Real.sin ω := Real.sin_nonneg_of_nonneg_of_le_pi hω.le + (by linarith [Real.pi_pos]) + refine ⟨(1 + Real.sin ω) / Real.cos ω, div_pos (by linarith) hc, ?_⟩ + intro Θ hΘ _ K _ + have hcΘ : 0 < Real.cos Θ.angle := by simpa only [hΘ] using hc + simpa only [hΘ] using cap_horizontalWidth_le_of_cos_pos K.val hcΘ + · have hs : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi ht.1 + (by linarith [ht.2, Real.pi_pos]) + have hc : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [ht.1, Real.pi_pos], ht.2⟩ + let D := 1 / Real.cos t + 1 / Real.sin t + let C := max (2 * D) (32 / (Real.sin t * Real.cos t)) + have hC : 0 < C := lt_of_lt_of_le (div_pos (by norm_num) (mul_pos hs hc)) (le_max_right _ _) + refine ⟨C, hC, ?_⟩ + intro Θ hΘ htΘ K hnonneg + by_contra hwidth + have hdC : C < directionalWidth (K.val.val : Set Point) 0 := lt_of_not_ge hwidth + rw [directionalWidth_zero] at hdC + let d := horizontalMax K.val.val - horizontalMin K.val.val + have hd0 : 0 < d := hC.trans hdC + let a := supportValue K.val.val (t : Real.Angle) - 1 + let b := supportValue K.val.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 + let L := a / Real.cos t + b / Real.sin t + have hsupport := CapSpace.horizontal_le_supportValue K.val hs.le hc.le + simp only [Real.Angle.coe_add] at hsupport + have ha : horizontalMax K.val.val - 1 / Real.cos t ≤ a / Real.cos t := by + apply (le_div_iff₀ hc).mpr + rw [sub_mul, div_mul_cancel₀ _ hc.ne'] + dsimp [a] + linarith [hsupport.1] + have hb : -horizontalMin K.val.val - 1 / Real.sin t ≤ b / Real.sin t := by + apply (le_div_iff₀ hs).mpr + rw [sub_mul, div_mul_cancel₀ _ hs.ne'] + dsimp [b] + linarith [hsupport.2] + have hLd : d - D ≤ L := by dsimp [L, d, D]; linarith + have hdD : 2 * D < d := (le_max_left _ _).trans_lt hdC + have hdlarge : 32 / (Real.sin t * Real.cos t) < d := (le_max_right _ _).trans_lt hdC + have hhalf : d / 2 < L := by linarith + have hL : 0 < L := (half_pos hd0).trans hhalf + have hlower := polygonNiche_area_ge_rectangle Θ hΘ htΘ K.val hs hc hL + have hsq : (d / 2) ^ 2 < L ^ 2 := (sq_lt_sq₀ (half_pos hd0).le hL.le).mpr hhalf + have hsq' := mul_lt_mul_of_pos_right hsq (mul_pos hs hc) + have hdlarge' : 32 < d * (Real.sin t * Real.cos t) := + (div_lt_iff₀ (mul_pos hs hc)).mp hdlarge + have hquad : d < L ^ 2 * Real.sin t * Real.cos t / 8 := by + nlinarith [mul_pos hd0 (sub_pos.mpr hdlarge')] + have harea := K.val.area_le_horizontalWidth + have hidentity := (polygonArea_upperBound Θ).1 K + change L ^ 2 * Real.sin t * Real.cos t / 8 ≤ _ at hlower + change ClassicalResults.area (K.val.val : Set Point) ≤ d at harea + rw [hidentity] at hnonneg + linarith + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Discrete Cap Data +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The uniformly spaced interior directions for a right-angle polygonal approximation. -/ +def rightAngleSet (n : ℕ) (hn : 2 ≤ n) : AngleSet := + uniformAngleSet (Real.pi / 2) (by positivity) le_rfl n hn + +/-- The angular mesh size `π/(2n)`. -/ +def polygonStepSize (n : ℕ) : ℝ := (Real.pi / 2) / n + +/-- The cap maximizes the polygonal functional on a uniform mesh with a power-of-two step +count. -/ +def IsMaximumPolygonCapSteps (n : ℕ) (K : RightAngleCapSpace) : Prop := + ∃ hn : 2 ≤ n, (∃ k : ℕ, n = 2 ^ k) ∧ + ∃ P : PolygonCapSpace (rightAngleSet n hn), + P.val = K ∧ IsMaximumPolygonCap (rightAngleSet n hn) P + +/-- The two piecewise scalar functions used in the arm-length inequalities. -/ +def magicFunctions : (NNReal → ℝ) × (NNReal → ℝ) := + (fun x ↦ max |(x : ℝ) - 1| ((|(x : ℝ) - 1| + 1) / 2), + fun x ↦ (x : ℝ) - max |(x : ℝ) - 1| ((|(x : ℝ) - 1| + 1) / 2)) + +/-- The magic function `m₀` is nondecreasing: it is `3 * x / 2 - 1` on `[0, 1]`, `x / 2` on +`[1, 2]`, and constant equal to `1` afterwards. -/ +theorem magicFunctions_snd_monotone : Monotone magicFunctions.2 := by + intro a b hab + have hab' : (a : ℝ) ≤ (b : ℝ) := hab + simp only [magicFunctions, max_def] + rcases abs_cases ((a : ℝ) - 1) with ⟨ha1, ha2⟩ | ⟨ha1, ha2⟩ <;> + rcases abs_cases ((b : ℝ) - 1) with ⟨hb1, hb2⟩ | ⟨hb1, hb2⟩ <;> + rw [ha1, hb1] <;> split_ifs <;> linarith + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Height / Properties +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +private theorem polygonHeightValue_supportValue {Θ : AngleSet} (K : PolygonCapSpace Θ) + {t : ℝ} (ht : t ∈ angleDomain Θ) : + polygonHeightValue (Θ := Θ) + (fun s ↦ supportValue (K.val.val : Set Point) (s.val : Real.Angle)) t = + supportValue K.val.val (t : Real.Angle) := by + simp [polygonHeightValue, ht] + +private theorem polygonHeightFan_supportValue {Θ : AngleSet} (K : PolygonCapSpace Θ) : + polygonHeightFan (Θ := Θ) + (fun s ↦ supportValue (K.val.val : Set Point) (s.val : Real.Angle)) = + capFan Θ.angle := by + have hω : Θ.angle ∈ angleDomain Θ := by simp [angleDomain] + have hT : Real.pi / 2 ∈ angleDomain Θ := by simp [angleDomain] + ext q + simp only [polygonHeightFan, Set.mem_iInter, Set.mem_insert_iff, Set.mem_singleton_iff, + forall_eq_or_imp, forall_eq] + rw [polygonHeightValue_supportValue K hω, polygonHeightValue_supportValue K hT, + K.val.property.2.2.1, K.val.property.2.2.2.1] + simp [capFan] + +private theorem polygonHeightNiche_supportValue {Θ : AngleSet} (K : PolygonCapSpace Θ) : + polygonHeightNiche (Θ := Θ) + (fun s ↦ supportValue (K.val.val : Set Point) (s.val : Real.Angle)) = + polygonNiche Θ K.val := by + unfold polygonHeightNiche polygonNiche + rw [polygonHeightFan_supportValue K] + congr 1 + apply Set.iUnion_congr + intro t + apply Set.iUnion_congr + intro ht + have htD : t ∈ angleDomain Θ := by simp [angleDomain, ht] + have htTD : t + Real.pi / 2 ∈ angleDomain Θ := by + exact Or.inl (Or.inr ⟨t, ht, rfl⟩) + rw [polygonHeightValue_supportValue K htD, polygonHeightValue_supportValue K htTD] + rfl + +private theorem polygonHeightParallelogram_supportValue {Θ : AngleSet} (K : PolygonCapSpace Θ) : + polygonHeightParallelogram (Θ := Θ) + (fun s ↦ supportValue (K.val.val : Set Point) (s.val : Real.Angle)) = + (stripParallelogram Θ.angle).1 := by + have hω : Θ.angle ∈ angleDomain Θ := by simp [angleDomain] + have hT : Real.pi / 2 ∈ angleDomain Θ := by simp [angleDomain] + ext p + simp only [polygonHeightParallelogram, Set.mem_iInter, Set.mem_insert_iff, + Set.mem_singleton_iff, forall_eq_or_imp, forall_eq] + rw [polygonHeightValue_supportValue K hω, polygonHeightValue_supportValue K hT, + K.val.property.2.2.1, K.val.property.2.2.2.1, mem_stripParallelogram_iff] + simp [normalHalfPlane, normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + tauto + +private theorem polygonHeightCap_supportValue {Θ : AngleSet} (K : PolygonCapSpace Θ) : + polygonHeightCap (Θ := Θ) + (fun s ↦ supportValue (K.val.val : Set Point) (s.val : Real.Angle)) = + angleCap Θ K.val := by + unfold polygonHeightCap + rw [polygonHeightParallelogram_supportValue K] + ext p + rw [mem_angleCap_iff] + simp only [Set.mem_inter_iff, mem_stripParallelogram_iff, Set.mem_iInter] + apply and_congr_right + intro _ + constructor + · intro h t ht + have htD : t ∈ angleDomain Θ := Or.inl (Or.inl ht) + have htTD : t + Real.pi / 2 ∈ angleDomain Θ := Or.inl (Or.inr ⟨t, ht, rfl⟩) + have h₁ := h t (Or.inl ht) + have h₂ := h (t + Real.pi / 2) (Or.inr ⟨t, ht, rfl⟩) + rw [polygonHeightValue_supportValue K htD] at h₁ + rw [polygonHeightValue_supportValue K htTD] at h₂ + exact ⟨h₁, h₂⟩ + · intro h t ht + have htD : t ∈ angleDomain Θ := Or.inl ht + rw [polygonHeightValue_supportValue K htD] + rcases ht with ht | ⟨s, hs, rfl⟩ + · exact (h t ht).1 + · exact (h s hs).2 + +private theorem mem_polygonHeightCap_supportValue_image_add {Θ : AngleSet} (K : PolygonCapSpace Θ) + (q p : Point) : + p + q ∈ polygonHeightCap (Θ := Θ) + (fun t ↦ supportValue ((fun x ↦ x + q) '' (K.val.val : Set Point)) + (t.val : Real.Angle)) ↔ + p ∈ polygonHeightCap (Θ := Θ) + (fun t ↦ supportValue (K.val.val : Set Point) (t.val : Real.Angle)) := by + have hval (t : ℝ) (ht : t ∈ angleDomain Θ) : + polygonHeightValue (Θ := Θ) + (fun t ↦ supportValue ((fun x ↦ x + q) '' (K.val.val : Set Point)) + (t.val : Real.Angle)) t = + polygonHeightValue (Θ := Θ) + (fun t ↦ supportValue (K.val.val : Set Point) (t.val : Real.Angle)) t + + inner ℝ q (normalVector (t : Real.Angle)) := by + simp only [polygonHeightValue, dite_eq_left ht] + exact supportValue_image_add K.val.val q (t : Real.Angle) + simp only [polygonHeightCap, polygonHeightParallelogram, Set.mem_inter_iff, + Set.mem_iInter] + apply and_congr + · apply forall_congr' + intro t + apply forall_congr' + intro ht + rw [hval t (Or.inr ht)] + simp [normalHalfPlane, inner_add_left, add_sub_right_comm] + · apply forall_congr' + intro t + apply forall_congr' + intro ht + rw [hval t (Or.inl ht)] + simp [normalHalfPlane, inner_add_left] + +private theorem polygonHeightNiche_supportValue_image_add {Θ : AngleSet} + (K : PolygonCapSpace Θ) (q : Point) : + polygonHeightNiche (Θ := Θ) + (fun t ↦ supportValue ((fun x ↦ x + q) '' (K.val.val : Set Point)) + (t.val : Real.Angle)) = + (fun p ↦ p + q) '' polygonNiche Θ K.val := by + have hval (t : ℝ) (ht : t ∈ angleDomain Θ) : + polygonHeightValue (Θ := Θ) + (fun t ↦ supportValue ((fun x ↦ x + q) '' (K.val.val : Set Point)) + (t.val : Real.Angle)) t = + polygonHeightValue (Θ := Θ) + (fun t ↦ supportValue (K.val.val : Set Point) (t.val : Real.Angle)) t + + inner ℝ q (normalVector (t : Real.Angle)) := by + simp only [polygonHeightValue, dite_eq_left ht] + exact supportValue_image_add K.val.val q (t : Real.Angle) + ext x + obtain ⟨p, rfl⟩ : ∃ p : Point, x = p + q := ⟨x - q, by simp⟩ + rw [← polygonHeightNiche_supportValue K] + simp only [Set.mem_image, add_left_inj, exists_eq_right] + simp only [polygonHeightNiche, polygonHeightFan, Set.mem_inter_iff, + Set.mem_iInter, Set.mem_iUnion] + apply and_congr + · apply forall_congr' + intro t + apply forall_congr' + intro ht + rw [hval t (Or.inr ht)] + simp [normalHalfPlane, inner_add_left, add_sub_right_comm] + · apply exists_congr + intro t + apply exists_congr + intro ht + rw [hval t (Or.inl (Or.inl ht)), + hval (t + Real.pi / 2) (Or.inl (Or.inr ⟨t, ht, rfl⟩))] + simp [normalHalfPlane, inner_add_left, add_sub_right_comm] + +theorem polygonHeightCap_of_translate {Θ : AngleSet} (K : PolygonCapTranslateSpace Θ) : + polygonHeightCap (polygonTranslateHeight K) = K.val := by + obtain ⟨P, q, hK⟩ := K.property + unfold polygonTranslateHeight + rw [hK] + ext x + obtain ⟨p, rfl⟩ : ∃ p : Point, x = p + q := ⟨x - q, by simp⟩ + rw [mem_polygonHeightCap_supportValue_image_add, polygonHeightCap_supportValue, angleCap_eq_self] + simp + +theorem polygonTranslateHeight_injective (Θ : AngleSet) : + Function.Injective (polygonTranslateHeight (Θ := Θ)) := by + intro K L h + apply Subtype.ext + rw [← polygonHeightCap_of_translate K, ← polygonHeightCap_of_translate L, h] + +theorem polygonHeightNiche_of_cap {Θ : AngleSet} (K : PolygonCapSpace Θ) : + polygonHeightNiche (Θ := Θ) (fun t ↦ supportValue (K.val.val : Set Point) (t.val : + Real.Angle)) = + polygonNiche Θ K.val ∧ + polygonHeightArea (Θ := Θ) (fun t ↦ supportValue (K.val.val : Set Point) (t.val : Real.Angle)) = + polygonAreaFunctional Θ K.val := by + refine ⟨polygonHeightNiche_supportValue K, ?_⟩ + unfold polygonHeightArea polygonAreaFunctional + rw [polygonHeightCap_supportValue K, polygonHeightNiche_supportValue K] + +theorem polygonTranslateExtensions_eq {Θ : AngleSet} (K : PolygonCapSpace Θ) + (q : Point) (K' : PolygonCapTranslateSpace Θ) + (hK : K'.val = (fun p ↦ p + q) '' (K.val.val : Set Point)) : + (polygonTranslateExtensions K').1 = (fun p ↦ p + q) '' polygonNiche Θ K.val ∧ + (polygonTranslateExtensions K').2 = polygonAreaFunctional Θ K.val := by + have hn : polygonHeightNiche (polygonTranslateHeight K') = + (fun p ↦ p + q) '' polygonNiche Θ K.val := by + unfold polygonTranslateHeight + rw [hK] + exact polygonHeightNiche_supportValue_image_add K q + refine ⟨hn, ?_⟩ + change ClassicalResults.area (polygonHeightCap (polygonTranslateHeight K')) - + ClassicalResults.area (polygonHeightNiche (polygonTranslateHeight K')) = _ + rw [polygonHeightCap_of_translate K', hn, hK, ClassicalResults.area_image_add, + ClassicalResults.area_image_add] + unfold polygonAreaFunctional + rw [angleCap_eq_self] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Nef / Slices +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa.Nef + +open Filter Topology + +/-- Convert normal and tangent coordinates into a point in the frame at angle `a`. -/ +def framePoint (a : Real.Angle) (x y : ℝ) : Point := + rotationMap a !₂[x, y] + +lemma framePoint_eq (a : Real.Angle) (x y : ℝ) : + framePoint a x y = x • normalVector a + y • tangentVector a := by + ext j + fin_cases j <;> + simp [framePoint, rotationMap, Orientation.rotation_apply, + rightAngleRotation_apply, normalVector, tangentVector, frame] + <;> ring + +@[simp] lemma inner_framePoint_normalVector (a : Real.Angle) (x y : ℝ) : + inner ℝ (framePoint a x y) (normalVector a) = x := by + rw [framePoint, inner_rotationMap_normalVector] + rfl + +@[simp] lemma inner_framePoint_tangentVector (a : Real.Angle) (x y : ℝ) : + inner ℝ (framePoint a x y) (tangentVector a) = y := by + rw [framePoint, inner_rotationMap_tangentVector] + rfl + +@[simp] lemma norm_tangentVector_angle (a : Real.Angle) : ‖tangentVector a‖ = 1 := by + rw [← sq_eq_sq₀ (norm_nonneg _) (by norm_num : (0 : ℝ) ≤ 1)] + rw [EuclideanSpace.norm_sq_eq] + simp [tangentVector, frame, Fin.sum_univ_two] + nlinarith [Real.Angle.cos_sq_add_sin_sq a] + +/-- The normal-normal coefficient for changing between two oriented frames. -/ +def frameNormalCoeff (a b : Real.Angle) : ℝ := + inner ℝ (normalVector a) (normalVector b) + +/-- The tangent-normal coefficient for changing between two oriented frames. -/ +def frameTangentCoeff (a b : Real.Angle) : ℝ := + inner ℝ (tangentVector a) (normalVector b) + +lemma inner_framePoint_normalVector_eq (a b : Real.Angle) (x y : ℝ) : + inner ℝ (framePoint a x y) (normalVector b) = + frameNormalCoeff a b * x + frameTangentCoeff a b * y := by + rw [framePoint_eq, inner_add_left, real_inner_smul_left, + real_inner_smul_left] + simp only [frameNormalCoeff, frameTangentCoeff] + ring + +/-- Select the half-plane side required by a Boolean cell’s membership pattern. -/ +def cellUpper {n : ℕ} (H : Fin n → PlanarHalfPlaneData) + (P : Fin n → Bool) (j : Fin n) : Bool := + if P j then (H j).upper else !(H j).upper + +/-- Solve the wall equation for the tangent coordinate at a fixed normal coordinate. -/ +def frameBoundaryValue (a : Real.Angle) (H : PlanarHalfPlaneData) (x : ℝ) : ℝ := + (H.height - frameNormalCoeff a H.angle * x) / frameTangentCoeff a H.angle + +lemma frameBoundaryValue_sub (a : Real.Angle) (H : PlanarHalfPlaneData) + (x z : ℝ) : + frameBoundaryValue a H x - frameBoundaryValue a H z = + -(frameNormalCoeff a H.angle / frameTangentCoeff a H.angle) * (x - z) := by + simp only [frameBoundaryValue] + ring + +lemma abs_frameBoundaryValue_sub (a : Real.Angle) (H : PlanarHalfPlaneData) + (x z : ℝ) : + |frameBoundaryValue a H x - frameBoundaryValue a H z| = + |frameNormalCoeff a H.angle / frameTangentCoeff a H.angle| * |x - z| := by + rw [frameBoundaryValue_sub, abs_mul, abs_neg] + +/-- The wall bounds a Boolean cell’s slice from above in the selected frame. -/ +def isUpperEndpoint {n : ℕ} (a : Real.Angle) (H : Fin n → PlanarHalfPlaneData) + (P : Fin n → Bool) (j : Fin n) : Prop := + (cellUpper H P j = false ∧ 0 < frameTangentCoeff a (H j).angle) ∨ + (cellUpper H P j = true ∧ frameTangentCoeff a (H j).angle < 0) + +/-- The wall bounds a Boolean cell’s slice from below in the selected frame. -/ +def isLowerEndpoint {n : ℕ} (a : Real.Angle) (H : Fin n → PlanarHalfPlaneData) + (P : Fin n → Bool) (j : Fin n) : Prop := + (cellUpper H P j = false ∧ frameTangentCoeff a (H j).angle < 0) ∨ + (cellUpper H P j = true ∧ 0 < frameTangentCoeff a (H j).angle) + +/-- The affine wall functions imposing upper bounds on the slice. -/ +def upperBoundaryFunctions {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (P : Fin n → Bool) : List (ℝ → ℝ) := by + classical + exact ((Finset.univ.filter (isUpperEndpoint a H P)).toList.map fun j x ↦ + frameBoundaryValue a (H j) x) + +/-- The affine wall functions imposing lower bounds on the slice. -/ +def lowerBoundaryFunctions {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (P : Fin n → Bool) : List (ℝ → ℝ) := by + classical + exact ((Finset.univ.filter (isLowerEndpoint a H P)).toList.map fun j x ↦ + frameBoundaryValue a (H j) x) + +/-- The minimum of all upper wall functions, capped by the truncation height `R`. -/ +def upperEnvelope {n : ℕ} (a : Real.Angle) (H : Fin n → PlanarHalfPlaneData) + (P : Fin n → Bool) (R x : ℝ) : ℝ := + (upperBoundaryFunctions a H P).foldr (fun f r ↦ min (f x) r) R + +/-- The maximum of all lower wall functions, bounded below by `-R`. -/ +def lowerEnvelope {n : ℕ} (a : Real.Angle) (H : Fin n → PlanarHalfPlaneData) + (P : Fin n → Bool) (R x : ℝ) : ℝ := + (lowerBoundaryFunctions a H P).foldr (fun f r ↦ max (f x) r) (-R) + +/-- The sum of absolute wall slopes, bounding the variation of slice envelopes. -/ +def slopeBound {n : ℕ} (a : Real.Angle) (H : Fin n → PlanarHalfPlaneData) : ℝ := + ∑ j, |frameNormalCoeff a (H j).angle / frameTangentCoeff a (H j).angle| + +lemma slopeBound_nonneg {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) : 0 ≤ slopeBound a H := by + exact Finset.sum_nonneg fun _ _ ↦ abs_nonneg _ + +lemma abs_upperEnvelope_sub_le {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (P : Fin n → Bool) (R x z : ℝ) : + |upperEnvelope a H P R x - upperEnvelope a H P R z| ≤ + slopeBound a H * |x - z| := by + apply List.abs_foldr_min_apply_sub_le + · exact slopeBound_nonneg a H + · intro f hf + simp only [upperBoundaryFunctions, List.mem_map, Finset.mem_toList, + Finset.mem_filter, Finset.mem_univ, true_and] at hf + obtain ⟨j, _, rfl⟩ := hf + rw [abs_frameBoundaryValue_sub] + apply mul_le_mul_of_nonneg_right _ (abs_nonneg _) + simpa only [slopeBound] using + (Finset.single_le_sum (s := Finset.univ) + (f := fun k : Fin n ↦ + |frameNormalCoeff a (H k).angle / frameTangentCoeff a (H k).angle|) + (fun _ _ ↦ abs_nonneg _) (Finset.mem_univ j)) + +lemma abs_lowerEnvelope_sub_le {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (P : Fin n → Bool) (R x z : ℝ) : + |lowerEnvelope a H P R x - lowerEnvelope a H P R z| ≤ + slopeBound a H * |x - z| := by + apply List.abs_foldr_max_apply_sub_le + · exact slopeBound_nonneg a H + · intro f hf + simp only [lowerBoundaryFunctions, List.mem_map, Finset.mem_toList, + Finset.mem_filter, Finset.mem_univ, true_and] at hf + obtain ⟨j, _, rfl⟩ := hf + rw [abs_frameBoundaryValue_sub] + apply mul_le_mul_of_nonneg_right _ (abs_nonneg _) + simpa only [slopeBound] using + (Finset.single_le_sum (s := Finset.univ) + (f := fun k : Fin n ↦ + |frameNormalCoeff a (H k).angle / frameTangentCoeff a (H k).angle|) + (fun _ _ ↦ abs_nonneg _) (Finset.mem_univ j)) + +/-- The nonnegative difference between the truncated upper and lower slice envelopes. -/ +def cellSliceLength {n : ℕ} (a : Real.Angle) (H : Fin n → PlanarHalfPlaneData) + (P : Fin n → Bool) (R x : ℝ) : ℝ := + max (upperEnvelope a H P R x - lowerEnvelope a H P R x) 0 + +lemma abs_cellSliceLength_sub_le {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (P : Fin n → Bool) (R x z : ℝ) : + |cellSliceLength a H P R x - cellSliceLength a H P R z| ≤ + (2 * slopeBound a H) * |x - z| := by + unfold cellSliceLength + refine (abs_max_sub_max_le_max _ _ _ _).trans (max_le ?_ ?_) + · calc + |(upperEnvelope a H P R x - lowerEnvelope a H P R x) - + (upperEnvelope a H P R z - lowerEnvelope a H P R z)| ≤ + |upperEnvelope a H P R x - upperEnvelope a H P R z| + + |lowerEnvelope a H P R x - lowerEnvelope a H P R z| := by + rw [sub_sub_sub_comm] + exact abs_sub _ _ + _ ≤ slopeBound a H * |x - z| + slopeBound a H * |x - z| := + add_le_add (abs_upperEnvelope_sub_le a H P R x z) + (abs_lowerEnvelope_sub_le a H P R x z) + _ = (2 * slopeBound a H) * |x - z| := by ring + · simp only [sub_self, abs_zero] + exact mul_nonneg (mul_nonneg (by norm_num) (slopeBound_nonneg a H)) + (abs_nonneg _) + +lemma continuous_cellSliceLength {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (P : Fin n → Bool) (R : ℝ) : + Continuous (cellSliceLength a H P R) := by + let K : NNReal := + ⟨2 * slopeBound a H, mul_nonneg (by norm_num) (slopeBound_nonneg a H)⟩ + apply (LipschitzWith.of_dist_le_mul (K := K) fun x z ↦ ?_).continuous + change |cellSliceLength a H P R x - cellSliceLength a H P R z| ≤ + (2 * slopeBound a H) * |x - z| + exact abs_cellSliceLength_sub_le a H P R x z + +/-- The closed Boolean cell’s slice at a fixed normal coordinate, truncated to `[-R, R]`. -/ +def closedCellSlice {n : ℕ} (a : Real.Angle) (H : Fin n → PlanarHalfPlaneData) + (P : Fin n → Bool) (R x : ℝ) : Set ℝ := + {y | framePoint a x y ∈ closedBooleanCell H P} ∩ Set.Icc (-R) R + +/-- Every wall parallel to the slice is satisfied at the selected normal coordinate. -/ +def parallelCellFeasible {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (P : Fin n → Bool) (x : ℝ) : Prop := + ∀ j, frameTangentCoeff a (H j).angle = 0 → + framePoint a x 0 ∈ normalHalfPlane (H j).angle (H j).height + (cellUpper H P j) false + +lemma mem_closedCellSlice_iff {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (P : Fin n → Bool) (R x y : ℝ) + (hparallel : parallelCellFeasible a H P x) : + y ∈ closedCellSlice a H P R x ↔ + lowerEnvelope a H P R x ≤ y ∧ y ≤ upperEnvelope a H P R x := by + classical + rw [closedCellSlice, Set.mem_inter_iff, Set.mem_ofPred_eq, Set.mem_Icc, + lowerEnvelope, upperEnvelope, List.foldr_max_apply_le_iff, List.le_foldr_min_apply_iff] + constructor + · rintro ⟨hycell, hyR⟩ + simp only [closedBooleanCell, Set.mem_iInter] at hycell + refine ⟨⟨hyR.1, ?_⟩, hyR.2, ?_⟩ + · intro f hf + simp only [lowerBoundaryFunctions, List.mem_map, Finset.mem_toList, + Finset.mem_filter, Finset.mem_univ, true_and] at hf + obtain ⟨j, hj, rfl⟩ := hf + have hjcell := hycell j + change framePoint a x y ∈ normalHalfPlane (H j).angle (H j).height + (cellUpper H P j) false at hjcell + rcases hj with ⟨hu, hb⟩ | ⟨hu, hb⟩ + · simp only [normalHalfPlane, hu, Bool.false_eq_true, ↓reduceIte, + Set.mem_ofPred_eq] at hjcell + rw [inner_framePoint_normalVector_eq] at hjcell + simp only [frameBoundaryValue] + apply (div_le_iff_of_neg hb).2 + nlinarith + · simp only [normalHalfPlane, hu, Bool.false_eq_true, ↓reduceIte, + Set.mem_ofPred_eq] at hjcell + rw [inner_framePoint_normalVector_eq] at hjcell + simp only [frameBoundaryValue] + apply (div_le_iff₀ hb).2 + nlinarith + · intro f hf + simp only [upperBoundaryFunctions, List.mem_map, Finset.mem_toList, + Finset.mem_filter, Finset.mem_univ, true_and] at hf + obtain ⟨j, hj, rfl⟩ := hf + have hjcell := hycell j + change framePoint a x y ∈ normalHalfPlane (H j).angle (H j).height + (cellUpper H P j) false at hjcell + rcases hj with ⟨hu, hb⟩ | ⟨hu, hb⟩ + · simp only [normalHalfPlane, hu, Bool.false_eq_true, ↓reduceIte, + Set.mem_ofPred_eq] at hjcell + rw [inner_framePoint_normalVector_eq] at hjcell + simp only [frameBoundaryValue] + apply (le_div_iff₀ hb).2 + nlinarith + · simp only [normalHalfPlane, hu, Bool.false_eq_true, ↓reduceIte, + Set.mem_ofPred_eq] at hjcell + rw [inner_framePoint_normalVector_eq] at hjcell + simp only [frameBoundaryValue] + apply (le_div_iff_of_neg hb).2 + nlinarith + · rintro ⟨⟨hyRneg, hylower⟩, hyR, hyupper⟩ + refine ⟨?_, hyRneg, hyR⟩ + simp only [closedBooleanCell, Set.mem_iInter] + intro j + change framePoint a x y ∈ normalHalfPlane (H j).angle (H j).height + (cellUpper H P j) false + by_cases hb0 : frameTangentCoeff a (H j).angle = 0 + · have hj := hparallel j hb0 + cases hu : cellUpper H P j <;> + simp only [normalHalfPlane, hu, Bool.false_eq_true, ↓reduceIte, + Set.mem_ofPred_eq] at hj ⊢ <;> + rw [inner_framePoint_normalVector_eq] at hj ⊢ <;> + simp only [hb0, mul_zero, zero_mul, add_zero] at hj ⊢ <;> + exact hj + · rcases lt_or_gt_of_ne hb0 with hb | hb + · by_cases hu : cellUpper H P j = false + · have hjindex : isLowerEndpoint a H P j := Or.inl ⟨hu, hb⟩ + have hjfun : (fun x ↦ frameBoundaryValue a (H j) x) ∈ + lowerBoundaryFunctions a H P := by + simp only [lowerBoundaryFunctions, List.mem_map, Finset.mem_toList, + Finset.mem_filter, Finset.mem_univ, true_and] + exact ⟨j, hjindex, rfl⟩ + have hjbound := hylower _ hjfun + simp only [normalHalfPlane, hu, Bool.false_eq_true, ↓reduceIte, + Set.mem_ofPred_eq, inner_framePoint_normalVector_eq, + frameBoundaryValue] at hjbound ⊢ + have := (div_le_iff_of_neg hb).mp hjbound + nlinarith + · have hu' : cellUpper H P j = true := Bool.eq_true_of_not_eq_false hu + have hjindex : isUpperEndpoint a H P j := Or.inr ⟨hu', hb⟩ + have hjfun : (fun x ↦ frameBoundaryValue a (H j) x) ∈ + upperBoundaryFunctions a H P := by + simp only [upperBoundaryFunctions, List.mem_map, Finset.mem_toList, + Finset.mem_filter, Finset.mem_univ, true_and] + exact ⟨j, hjindex, rfl⟩ + have hjbound := hyupper _ hjfun + simp only [normalHalfPlane, hu', Bool.false_eq_true, ↓reduceIte, Set.mem_ofPred_eq, + inner_framePoint_normalVector_eq, frameBoundaryValue, + ] at hjbound ⊢ + have := (le_div_iff_of_neg hb).mp hjbound + nlinarith + · by_cases hu : cellUpper H P j = false + · have hjindex : isUpperEndpoint a H P j := Or.inl ⟨hu, hb⟩ + have hjfun : (fun x ↦ frameBoundaryValue a (H j) x) ∈ + upperBoundaryFunctions a H P := by + simp only [upperBoundaryFunctions, List.mem_map, Finset.mem_toList, + Finset.mem_filter, Finset.mem_univ, true_and] + exact ⟨j, hjindex, rfl⟩ + have hjbound := hyupper _ hjfun + simp only [normalHalfPlane, hu, Bool.false_eq_true, ↓reduceIte, + Set.mem_ofPred_eq, inner_framePoint_normalVector_eq, + frameBoundaryValue] at hjbound ⊢ + have := (le_div_iff₀ hb).mp hjbound + nlinarith + · have hu' : cellUpper H P j = true := Bool.eq_true_of_not_eq_false hu + have hjindex : isLowerEndpoint a H P j := Or.inr ⟨hu', hb⟩ + have hjfun : (fun x ↦ frameBoundaryValue a (H j) x) ∈ + lowerBoundaryFunctions a H P := by + simp only [lowerBoundaryFunctions, List.mem_map, Finset.mem_toList, + Finset.mem_filter, Finset.mem_univ, true_and] + exact ⟨j, hjindex, rfl⟩ + have hjbound := hylower _ hjfun + simp only [normalHalfPlane, hu', Bool.false_eq_true, ↓reduceIte, Set.mem_ofPred_eq, + inner_framePoint_normalVector_eq, frameBoundaryValue, + ] at hjbound ⊢ + have := (div_le_iff₀ hb).mp hjbound + nlinarith + +lemma volume_closedCellSlice_toReal {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (P : Fin n → Bool) (R x : ℝ) + (hparallel : parallelCellFeasible a H P x) : + (MeasureTheory.volume (closedCellSlice a H P R x)).toReal = + cellSliceLength a H P R x := by + have hset : closedCellSlice a H P R x = + Set.Icc (lowerEnvelope a H P R x) (upperEnvelope a H P R x) := by + ext y + simpa [Set.mem_Icc] using mem_closedCellSlice_iff a H P R x y hparallel + rw [hset, Real.volume_Icc] + unfold cellSliceLength + by_cases h : 0 ≤ upperEnvelope a H P R x - lowerEnvelope a H P R x + · rw [ENNReal.toReal_ofReal h, max_eq_left h] + · have h' : upperEnvelope a H P R x - lowerEnvelope a H P R x ≤ 0 := le_of_not_ge h + rw [ENNReal.ofReal_of_nonpos h', max_eq_right h'] + rfl + +/-- The actual Boolean membership cell’s slice, truncated to `[-R, R]`. -/ +def booleanCellSlice {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (P : Fin n → Bool) (R x : ℝ) : Set ℝ := + {y | framePoint a x y ∈ booleanCell (fun j ↦ (H j).carrier) P} ∩ Set.Icc (-R) R + +/-- No wall parallel to the slice has its boundary at the selected normal coordinate. -/ +def noParallelBoundaryAt {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (x : ℝ) : Prop := + ∀ j, frameTangentCoeff a (H j).angle = 0 → + frameNormalCoeff a (H j).angle * x ≠ (H j).height + +/-- The tangent coordinates at which the slice meets a wall boundary. -/ +def cellSliceBoundaryExceptions {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (x : ℝ) : Set ℝ := + ⋃ j, {y | inner ℝ (framePoint a x y) (normalVector (H j).angle) = (H j).height} + +lemma finite_cellSliceBoundaryExceptions {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (x : ℝ) (hx : noParallelBoundaryAt a H x) : + (cellSliceBoundaryExceptions a H x).Finite := by + classical + unfold cellSliceBoundaryExceptions + apply Set.Finite.iUnion Set.finite_univ + · intro j _ + apply Set.Subsingleton.finite + intro y hy z hz + simp only [Set.mem_ofPred_eq, inner_framePoint_normalVector_eq] at hy hz + by_cases hb : frameTangentCoeff a (H j).angle = 0 + · exact (hx j hb (by simpa [hb] using hy)).elim + · rcases lt_or_gt_of_ne hb with hb | hb <;> nlinarith + · simp + +lemma volume_booleanCellSlice_eq_closedCellSlice {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (P : Fin n → Bool) (R x : ℝ) + (hx : noParallelBoundaryAt a H x) : + MeasureTheory.volume (booleanCellSlice a H P R x) = + MeasureTheory.volume (closedCellSlice a H P R x) := by + apply MeasureTheory.measure_congr + rw [MeasureTheory.ae_eq_set] + have hzero := + (finite_cellSliceBoundaryExceptions a H x hx).measure_zero MeasureTheory.volume + constructor <;> apply MeasureTheory.measure_mono_null _ hzero + · intro y hy + by_contra hyexception + have hyne : ∀ j, inner ℝ (framePoint a x y) (normalVector (H j).angle) ≠ + (H j).height := by + intro j hj + apply hyexception + exact Set.mem_iUnion.mpr ⟨j, hj⟩ + have heq := mem_booleanCell_iff_mem_closedBooleanCell_of_ne H P _ hyne + rcases hy.1 with ⟨hycell, hyR⟩ + exact hy.2 ⟨heq.mp hycell, hyR⟩ + · intro y hy + by_contra hyexception + have hyne : ∀ j, inner ℝ (framePoint a x y) (normalVector (H j).angle) ≠ + (H j).height := by + intro j hj + apply hyexception + exact Set.mem_iUnion.mpr ⟨j, hj⟩ + have heq := mem_booleanCell_iff_mem_closedBooleanCell_of_ne H P _ hyne + rcases hy.1 with ⟨hycell, hyR⟩ + exact hy.2 ⟨heq.mpr hycell, hyR⟩ + +lemma volume_booleanCellSlice_toReal {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (P : Fin n → Bool) (R x : ℝ) + (hparallel : parallelCellFeasible a H P x) + (hx : noParallelBoundaryAt a H x) : + (MeasureTheory.volume (booleanCellSlice a H P R x)).toReal = + cellSliceLength a H P R x := by + rw [volume_booleanCellSlice_eq_closedCellSlice a H P R x hx] + exact volume_closedCellSlice_toReal a H P R x hparallel + +lemma normalVector_eq_frameCombination (a b : Real.Angle) : + normalVector b = frameNormalCoeff a b • normalVector a + + frameTangentCoeff a b • tangentVector a := by + symm + simpa only [frameNormalCoeff, frameTangentCoeff, real_inner_comm] using + inner_normalVector_smul_add_inner_tangentVector_smul (normalVector b) a + +lemma normalLine_eq_of_frameTangentCoeff_eq_zero {a b : Real.Angle} {h k : ℝ} + (hb : frameTangentCoeff a b = 0) (hk : frameNormalCoeff a b * h = k) : + normalLine b k = normalLine a h := by + have hvec : normalVector b = frameNormalCoeff a b • normalVector a := by + rw [normalVector_eq_frameCombination a b, hb, zero_smul, add_zero] + have hcoeff : frameNormalCoeff a b ≠ 0 := by + intro hc + have : normalVector b = 0 := by simp [hvec, hc] + have hnorm : ‖normalVector b‖ = 1 := by + simpa only [b.coe_toReal] using norm_normalVector_real b.toReal + rw [this, norm_zero] at hnorm + norm_num at hnorm + ext p + simp only [normalLine, Set.mem_ofPred_eq, hvec, inner_smul_right] + rw [← hk] + constructor <;> intro hp + · exact (mul_left_cancel₀ hcoeff hp) + · exact congrArg (frameNormalCoeff a b * ·) hp + +@[simp] lemma frameNormalCoeff_self (a : Real.Angle) : frameNormalCoeff a a = 1 := by + simpa only [frameNormalCoeff, a.coe_toReal] using inner_normalVector_self a.toReal + +lemma measurableSet_booleanCellSlice {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (P : Fin n → Bool) (R x : ℝ) : + MeasurableSet (booleanCellSlice a H P R x) := by + apply MeasurableSet.inter _ measurableSet_Icc + have hcont : Continuous (fun y ↦ framePoint a x y) := by + simp_rw [framePoint_eq] + fun_prop + exact (measurableSet_booleanCell H P).preimage hcont.measurable + +/-- The envelope slice length when parallel walls are feasible, and zero otherwise. -/ +def actualCellSliceLength {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (P : Fin n → Bool) (R x : ℝ) : ℝ := by + classical + exact if parallelCellFeasible a H P x then cellSliceLength a H P R x else 0 + +lemma closedCellSlice_eq_empty_of_not_parallelCellFeasible {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (P : Fin n → Bool) (R x : ℝ) + (hparallel : ¬parallelCellFeasible a H P x) : + closedCellSlice a H P R x = ∅ := by + classical + unfold parallelCellFeasible at hparallel + push Not at hparallel + obtain ⟨j, hb, hj⟩ := hparallel + apply Set.eq_empty_iff_forall_notMem.mpr + intro y hy + have hycell := hy.1 + simp only [closedBooleanCell, Set.mem_iInter] at hycell + have hjy := hycell j + change framePoint a x y ∈ normalHalfPlane (H j).angle (H j).height + (cellUpper H P j) false at hjy + cases hu : cellUpper H P j <;> + simp only [normalHalfPlane, hu, Bool.false_eq_true, ↓reduceIte, + Set.mem_ofPred_eq, inner_framePoint_normalVector_eq, hb, zero_mul, add_zero] + at hj hjy + · exact hj hjy + · exact hj hjy + +lemma volume_booleanCellSlice_toReal_eq_actual {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (P : Fin n → Bool) (R x : ℝ) + (_hx : noParallelBoundaryAt a H x) : + (MeasureTheory.volume (booleanCellSlice a H P R x)).toReal = + actualCellSliceLength a H P R x := by + by_cases hp : parallelCellFeasible a H P x + · simp only [actualCellSliceLength, hp, ↓reduceIte] + exact volume_booleanCellSlice_toReal a H P R x hp _hx + · simp only [actualCellSliceLength, hp, ↓reduceIte] + rw [volume_booleanCellSlice_eq_closedCellSlice a H P R x _hx, + closedCellSlice_eq_empty_of_not_parallelCellFeasible a H P R x hp, + MeasureTheory.measure_empty] + rfl + +/-- The measurable equivalence between the Euclidean plane and a pair of real coordinates. -/ +def frameCoordinates : Point ≃ᵐ ℝ × ℝ := + (MeasurableEquiv.toLp 2 (Fin 2 → ℝ)).symm.trans MeasurableEquiv.finTwoArrow + +lemma frameCoordinates_measurePreserving : + MeasureTheory.MeasurePreserving frameCoordinates MeasureTheory.volume + ((MeasureTheory.volume : MeasureTheory.Measure ℝ).prod MeasureTheory.volume) := by + rw [← MeasureTheory.Measure.volume_eq_prod] + convert EuclideanSpace.volume_preserving_finTwoCoordinates using 1 + funext p + rfl + +lemma framePoint_measurePreserving (a : Real.Angle) : + MeasureTheory.MeasurePreserving (fun p : ℝ × ℝ ↦ framePoint a p.1 p.2) + ((MeasureTheory.volume : MeasureTheory.Measure ℝ).prod MeasureTheory.volume) + MeasureTheory.volume := by + have hcoordinates : MeasureTheory.MeasurePreserving frameCoordinates.symm + ((MeasureTheory.volume : MeasureTheory.Measure ℝ).prod MeasureTheory.volume) + MeasureTheory.volume := + frameCoordinates_measurePreserving.symm frameCoordinates + have hrotation : MeasureTheory.MeasurePreserving + (EuclideanGeometry.o.rotation a : Point → Point) := + LinearIsometryEquiv.measurePreserving _ + convert hrotation.comp hcoordinates using 1 + funext p + rfl + +lemma volume_toReal_eq_integral_frameSlice (a : Real.Angle) {S : Set Point} + (hS : MeasurableSet S) (hSfinite : MeasureTheory.volume S ≠ ⊤) : + (MeasureTheory.volume S).toReal = + ∫ x : ℝ, (MeasureTheory.volume {y : ℝ | framePoint a x y ∈ S}).toReal := by + let f : ℝ × ℝ → Point := fun p ↦ framePoint a p.1 p.2 + have hf := framePoint_measurePreserving a + have hpre : MeasurableSet (f ⁻¹' S) := hS.preimage hf.measurable + have hmeasure : MeasureTheory.volume (f ⁻¹' S) = MeasureTheory.volume S := + hf.measure_preimage hS.nullMeasurableSet + have hprod : ((MeasureTheory.volume : MeasureTheory.Measure ℝ).prod + MeasureTheory.volume) (f ⁻¹' S) = + ∫⁻ x : ℝ, MeasureTheory.volume (Prod.mk x ⁻¹' (f ⁻¹' S)) := + MeasureTheory.Measure.prod_apply hpre + have hsectionMeas : Measurable + (fun x : ℝ ↦ MeasureTheory.volume (Prod.mk x ⁻¹' (f ⁻¹' S))) := + measurable_measure_prodMk_left hpre + have hsectionFinite : ∀ᵐ x : ℝ ∂MeasureTheory.volume, + MeasureTheory.volume (Prod.mk x ⁻¹' (f ⁻¹' S)) < ⊤ := + MeasureTheory.Measure.ae_measure_lt_top hpre (by + rw [← MeasureTheory.Measure.volume_eq_prod, hmeasure] + exact hSfinite) + rw [← hmeasure] + calc + (MeasureTheory.volume (f ⁻¹' S)).toReal = + (((MeasureTheory.volume : MeasureTheory.Measure ℝ).prod + MeasureTheory.volume) (f ⁻¹' S)).toReal := by + rw [← MeasureTheory.Measure.volume_eq_prod] + _ = (∫⁻ x : ℝ, + MeasureTheory.volume (Prod.mk x ⁻¹' (f ⁻¹' S))).toReal := + congrArg ENNReal.toReal hprod + _ = ∫ x : ℝ, + (MeasureTheory.volume (Prod.mk x ⁻¹' (f ⁻¹' S))).toReal := + (MeasureTheory.integral_toReal hsectionMeas.aemeasurable hsectionFinite).symm + _ = ∫ x : ℝ, + (MeasureTheory.volume {y : ℝ | framePoint a x y ∈ S}).toReal := by + rfl + +end MovingSofa.Nef + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Nef / Variation / Local Slices +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa.Nef + +open Filter Topology + +/-- Replace one wall by a closed upper-bound wall at auxiliary height `M`. -/ +def auxiliaryHalfPlaneFamily {n : ℕ} (H : Fin n → PlanarHalfPlaneData) + (i : Fin n) (M : ℝ) : Fin n → PlanarHalfPlaneData := + Function.update H i + { angle := (H i).angle, height := M, upper := false, strict := false } + +@[simp] lemma auxiliaryHalfPlaneFamily_self {n : ℕ} + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) (M : ℝ) : + auxiliaryHalfPlaneFamily H i M i = + { angle := (H i).angle, height := M, upper := false, strict := false } := by + simp [auxiliaryHalfPlaneFamily] + +lemma auxiliaryHalfPlaneFamily_of_ne {n : ℕ} + (H : Fin n → PlanarHalfPlaneData) (i j : Fin n) (M : ℝ) (hji : j ≠ i) : + auxiliaryHalfPlaneFamily H i M j = H j := by + simp [auxiliaryHalfPlaneFamily, Function.update_of_ne hji] + +lemma noParallelBoundaryAt_auxiliary {n : ℕ} (H : Fin n → PlanarHalfPlaneData) + (i : Fin n) (hLines : Function.Injective (fun j ↦ (H j).boundaryLine)) + (R ε₀ : ℝ) (hR : 0 < R) (hε₀ : 0 < ε₀) : + noParallelBoundaryAt (H i).angle + (auxiliaryHalfPlaneFamily H i (|(H i).height| + ε₀ + R + 1)) (H i).height := by + intro j hb + by_cases hji : j = i + · subst j + simp only [auxiliaryHalfPlaneFamily_self, frameNormalCoeff_self] + have hh : (H i).height < |(H i).height| + ε₀ + R + 1 := by + linarith [le_abs_self (H i).height] + simpa only [one_mul] using ne_of_lt hh + · rw [auxiliaryHalfPlaneFamily_of_ne H i j _ hji] at hb ⊢ + intro heq + have hline : (H j).boundaryLine = (H i).boundaryLine := by + exact normalLine_eq_of_frameTangentCoeff_eq_zero hb heq + exact hji (hLines hline) + +lemma eventually_parallel_inequalities_iff {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (h : ℝ) (hh : noParallelBoundaryAt a H h) : + ∀ᶠ x in 𝓝 h, ∀ j, frameTangentCoeff a (H j).angle = 0 → + (frameNormalCoeff a (H j).angle * x ≤ (H j).height ↔ + frameNormalCoeff a (H j).angle * h ≤ (H j).height) ∧ + ((H j).height ≤ frameNormalCoeff a (H j).angle * x ↔ + (H j).height ≤ frameNormalCoeff a (H j).angle * h) := by + suffices ∀ᶠ x in 𝓝 h, ∀ j ∈ (Set.univ : Set (Fin n)), + frameTangentCoeff a (H j).angle = 0 → + (frameNormalCoeff a (H j).angle * x ≤ (H j).height ↔ + frameNormalCoeff a (H j).angle * h ≤ (H j).height) ∧ + ((H j).height ≤ frameNormalCoeff a (H j).angle * x ↔ + (H j).height ≤ frameNormalCoeff a (H j).angle * h) by + exact this.mono fun x hx j ↦ hx j (Set.mem_univ j) + apply (Filter.eventually_all_finite Set.finite_univ).2 + intro j _ + by_cases hb : frameTangentCoeff a (H j).angle = 0 + · have hne := hh j hb + rcases lt_or_gt_of_ne hne with hlt | hgt + · have hev : ∀ᶠ x in 𝓝 h, + frameNormalCoeff a (H j).angle * x < (H j).height := + (continuousAt_const.mul continuousAt_id).eventually_lt continuousAt_const hlt + filter_upwards [hev] with x hx + intro _ + constructor <;> constructor <;> intro <;> linarith + · have hev : ∀ᶠ x in 𝓝 h, + (H j).height < frameNormalCoeff a (H j).angle * x := + continuousAt_const.eventually_lt (continuousAt_const.mul continuousAt_id) hgt + filter_upwards [hev] with x hx + intro _ + constructor <;> constructor <;> intro <;> linarith + · exact Filter.Eventually.of_forall fun _ hb' ↦ (hb hb').elim + +lemma eventually_parallelCellFeasible_iff {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (h : ℝ) (hh : noParallelBoundaryAt a H h) : + ∀ᶠ x in 𝓝 h, ∀ P : Fin n → Bool, + parallelCellFeasible a H P x ↔ parallelCellFeasible a H P h := by + filter_upwards [eventually_parallel_inequalities_iff a H h hh] with x hx + intro P + constructor <;> intro hp j hb + · have hj := hp j hb + have hiff := hx j hb + cases hu : cellUpper H P j <;> + simp only [normalHalfPlane, hu, Bool.false_eq_true, ↓reduceIte, + Set.mem_ofPred_eq, inner_framePoint_normalVector_eq, hb, mul_zero, add_zero] + at hj ⊢ + · exact hiff.1.mp hj + · exact hiff.2.mp hj + · have hj := hp j hb + have hiff := hx j hb + cases hu : cellUpper H P j <;> + simp only [normalHalfPlane, hu, Bool.false_eq_true, ↓reduceIte, + Set.mem_ofPred_eq, inner_framePoint_normalVector_eq, hb, mul_zero, add_zero] + at hj ⊢ + · exact hiff.1.mpr hj + · exact hiff.2.mpr hj + +lemma exists_parallel_stability_radius {n : ℕ} (a : Real.Angle) + (H : Fin n → PlanarHalfPlaneData) (h : ℝ) (hh : noParallelBoundaryAt a H h) : + ∃ ε > 0, ∀ x, |x - h| ≤ ε → + noParallelBoundaryAt a H x ∧ + ∀ P : Fin n → Bool, + (parallelCellFeasible a H P x ↔ parallelCellFeasible a H P h) := by + have hev : ∀ᶠ x in 𝓝 h, + (∀ j, frameTangentCoeff a (H j).angle = 0 → + (frameNormalCoeff a (H j).angle * x ≤ (H j).height ↔ + frameNormalCoeff a (H j).angle * h ≤ (H j).height) ∧ + ((H j).height ≤ frameNormalCoeff a (H j).angle * x ↔ + (H j).height ≤ frameNormalCoeff a (H j).angle * h)) ∧ + ∀ P : Fin n → Bool, + (parallelCellFeasible a H P x ↔ parallelCellFeasible a H P h) := + (eventually_parallel_inequalities_iff a H h hh).and + (eventually_parallelCellFeasible_iff a H h hh) + rcases (Metric.mem_nhds_iff.mp hev) with ⟨r, hr, hball⟩ + refine ⟨r / 2, by positivity, ?_⟩ + intro x hx + have hxr : x ∈ Metric.ball h r := by + rw [Metric.mem_ball, Real.dist_eq] + calc + |x - h| ≤ r / 2 := hx + _ < r := by linarith + have hstable := hball hxr + refine ⟨?_, hstable.2⟩ + intro j hb heq + have hj := hstable.1 j hb + apply hh j hb + apply le_antisymm + · exact hj.1.mp (by rw [heq]) + · exact hj.2.mp (by rw [heq]) + +lemma setMembershipPattern_auxiliary {n : ℕ} (H : Fin n → PlanarHalfPlaneData) + (i : Fin n) (M : ℝ) (p : Point) + (hp : p ∈ (auxiliaryHalfPlaneFamily H i M i).carrier) : + setMembershipPattern (fun j ↦ (auxiliaryHalfPlaneFamily H i M j).carrier) p = + Function.update (setMembershipPattern (fun j ↦ (H j).carrier) p) i true := by + classical + funext j + by_cases hji : j = i + · subst j + rw [auxiliaryHalfPlaneFamily_self] at hp + simp [setMembershipPattern, hp] + · simp [setMembershipPattern, auxiliaryHalfPlaneFamily_of_ne H i j M hji, + Function.update_of_ne hji] + +lemma mem_activeBooleanRegion_iff_mem_booleanCell_auxiliary {n : ℕ} + (E : BooleanFunction n) (H : Fin n → PlanarHalfPlaneData) (i : Fin n) + (M : ℝ) (p : Point) (hp : p ∈ (auxiliaryHalfPlaneFamily H i M i).carrier) : + p ∈ activeBooleanRegion E H i ↔ + ∃ P ∈ activeBooleanPatterns E i, + p ∈ booleanCell (fun j ↦ (auxiliaryHalfPlaneFamily H i M j).carrier) P := by + classical + rw [mem_activeBooleanRegion_iff] + constructor + · intro hactive + unfold IsActiveBooleanPattern at hactive + let P := setMembershipPattern + (fun j ↦ (auxiliaryHalfPlaneFamily H i M j).carrier) p + have hP : P = Function.update + (setMembershipPattern (fun j ↦ (H j).carrier) p) i true := + setMembershipPattern_auxiliary H i M p hp + refine ⟨P, ?_, (mem_booleanCell_iff _ _ _).mpr rfl⟩ + simp only [activeBooleanPatterns, Finset.mem_filter, Finset.mem_univ, true_and] + unfold IsActiveBooleanPattern + rw [hP] + simpa only [Function.update_idem] using hactive + · rintro ⟨P, hP, hcell⟩ + simp only [activeBooleanPatterns, Finset.mem_filter, Finset.mem_univ, + true_and] at hP + have hpattern := (mem_booleanCell_iff _ P p).mp hcell + have haux := setMembershipPattern_auxiliary H i M p hp + unfold IsActiveBooleanPattern at hP ⊢ + rw [hpattern] at haux + rw [haux] at hP + simpa only [Function.update_idem] using hP + +/-- The slice of the region where the selected Boolean wall is active, truncated to `[-R, R]`. -/ +def activeRegionSlice {n : ℕ} (a : Real.Angle) (E : BooleanFunction n) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) (R x : ℝ) : Set ℝ := + {y | framePoint a x y ∈ activeBooleanRegion E H i} ∩ Set.Icc (-R) R + +lemma frameSlice_perturbSdiff_eq {n : ℕ} {E : BooleanFunction n} + (hE : IsMonotoneBooleanFunction E) (H : Fin n → PlanarHalfPlaneData) + (i : Fin n) (hSide : (H i).upper = false) (R ε₀ δ ε x : ℝ) + (hδ : |δ| ≤ ε₀) + (hBound : ∀ z : ℝ, |z| ≤ ε₀ → + perturbNefHeight E H i z ⊆ Metric.closedBall 0 R) : + (x ∈ heightInterval (H i).strict (H i).height δ ε → + {y : ℝ | framePoint (H i).angle x y ∈ + perturbNefHeight E H i δ \ perturbNefHeight E H i ε} = + activeRegionSlice (H i).angle E H i R x) ∧ + (x ∉ heightInterval (H i).strict (H i).height δ ε → + {y : ℝ | framePoint (H i).angle x y ∈ + perturbNefHeight E H i δ \ perturbNefHeight E H i ε} = ∅) := by + constructor + · intro hx + rw [perturbNefHeight_sdiff_eq_heightInterval hE H i hSide] + ext y + simp only [Set.mem_ofPred_eq, Set.mem_inter_iff, + inner_framePoint_normalVector, hx, true_and, activeRegionSlice] + constructor + · intro hy + refine ⟨hy, ?_⟩ + have hdiff : framePoint (H i).angle x y ∈ + perturbNefHeight E H i δ \ perturbNefHeight E H i ε := by + rw [perturbNefHeight_sdiff_eq_heightInterval hE H i hSide] + exact ⟨by simpa using hx, hy⟩ + have hball := hBound δ hδ hdiff.1 + have hynorm := abs_real_inner_le_norm (framePoint (H i).angle x y) + (tangentVector (H i).angle) + rw [inner_framePoint_tangentVector, norm_tangentVector_angle, mul_one] at hynorm + have hpR : ‖framePoint (H i).angle x y‖ ≤ R := by + simpa [Metric.mem_closedBall, dist_zero_left] using hball + exact abs_le.mp (hynorm.trans hpR) + · exact fun hy ↦ hy.1 + · intro hx + rw [perturbNefHeight_sdiff_eq_heightInterval hE H i hSide] + ext y + simp [hx] + +lemma activeRegionSlice_eq_biUnion_booleanCellSlice_auxiliary {n : ℕ} + (E : BooleanFunction n) (H : Fin n → PlanarHalfPlaneData) (i : Fin n) + (M R x : ℝ) (hxM : x ≤ M) : + activeRegionSlice (H i).angle E H i R x = + ⋃ P ∈ activeBooleanPatterns E i, + booleanCellSlice (H i).angle (auxiliaryHalfPlaneFamily H i M) P R x := by + classical + ext y + have haux : framePoint (H i).angle x y ∈ + (auxiliaryHalfPlaneFamily H i M i).carrier := by + simp [PlanarHalfPlaneData.carrier, normalHalfPlane, hxM] + rw [activeRegionSlice, Set.mem_inter_iff, Set.mem_ofPred_eq, + mem_activeBooleanRegion_iff_mem_booleanCell_auxiliary E H i M _ haux] + simp only [Set.mem_iUnion, booleanCellSlice, Set.mem_inter_iff, Set.mem_ofPred_eq] + constructor + · rintro ⟨⟨P, hP, hyP⟩, hyR⟩ + exact ⟨P, ⟨hP, hyP, hyR⟩⟩ + · rintro ⟨P, hP, hyP, hyR⟩ + exact ⟨⟨P, hP, hyP⟩, hyR⟩ + +lemma measure_activeRegionSlice_eq_sum {n : ℕ} + (E : BooleanFunction n) (H : Fin n → PlanarHalfPlaneData) (i : Fin n) + (M R x : ℝ) (hxM : x ≤ M) : + MeasureTheory.volume (activeRegionSlice (H i).angle E H i R x) = + ∑ P ∈ activeBooleanPatterns E i, + MeasureTheory.volume + (booleanCellSlice (H i).angle (auxiliaryHalfPlaneFamily H i M) P R x) := by + rw [activeRegionSlice_eq_biUnion_booleanCellSlice_auxiliary E H i M R x hxM] + apply MeasureTheory.measure_biUnion_finset + · intro P hP Q hQ hPQ + change Disjoint + (booleanCellSlice (H i).angle (auxiliaryHalfPlaneFamily H i M) P R x) + (booleanCellSlice (H i).angle (auxiliaryHalfPlaneFamily H i M) Q R x) + rw [Set.disjoint_left] + intro y hyP hyQ + apply hPQ + have hcellP := hyP.1 + have hcellQ := hyQ.1 + have hp := (mem_booleanCell_iff _ P _).mp hcellP + have hq := (mem_booleanCell_iff _ Q _).mp hcellQ + exact hp.symm.trans hq + · intro P _ + exact measurableSet_booleanCellSlice _ _ _ _ _ + +/-- Sum the feasible slice lengths over patterns where the selected wall is active. -/ +def activeSliceLength {n : ℕ} (a : Real.Angle) (E : BooleanFunction n) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) (R x : ℝ) : ℝ := + ∑ P ∈ activeBooleanPatterns E i, actualCellSliceLength a H P R x + +/-- Sum slice lengths while freezing all parallel-wall feasibility decisions at the reference +height. -/ +def frozenActiveSliceLength {n : ℕ} (a : Real.Angle) (E : BooleanFunction n) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) (R h x : ℝ) : ℝ := by + classical + exact ∑ P ∈ activeBooleanPatterns E i, + if parallelCellFeasible a H P h then cellSliceLength a H P R x else 0 + +lemma continuous_frozenActiveSliceLength {n : ℕ} (a : Real.Angle) + (E : BooleanFunction n) (H : Fin n → PlanarHalfPlaneData) + (i : Fin n) (R h : ℝ) : + Continuous (frozenActiveSliceLength a E H i R h) := by + classical + unfold frozenActiveSliceLength + apply continuous_finsetSum + intro P hP + by_cases hp : parallelCellFeasible a H P h + · simpa [hp] using continuous_cellSliceLength a H P R + · simpa [hp] using (continuous_const : Continuous (fun _ : ℝ ↦ (0 : ℝ))) + +lemma activeSliceLength_eq_frozen_of_stable {n : ℕ} (a : Real.Angle) + (E : BooleanFunction n) (H : Fin n → PlanarHalfPlaneData) + (i : Fin n) (R h x : ℝ) + (hstable : ∀ P : Fin n → Bool, + parallelCellFeasible a H P x ↔ parallelCellFeasible a H P h) : + activeSliceLength a E H i R x = frozenActiveSliceLength a E H i R h x := by + classical + unfold activeSliceLength frozenActiveSliceLength + apply Finset.sum_congr rfl + intro P hP + by_cases hp : parallelCellFeasible a H P h + · have hpx := (hstable P).mpr hp + simp [actualCellSliceLength, hp, hpx] + · have hpx : ¬parallelCellFeasible a H P x := fun hx ↦ hp ((hstable P).mp hx) + simp [actualCellSliceLength, hp, hpx] + +lemma abs_frozenActiveSliceLength_sub_le {n : ℕ} (a : Real.Angle) + (E : BooleanFunction n) (H : Fin n → PlanarHalfPlaneData) + (i : Fin n) (R h x z : ℝ) : + |frozenActiveSliceLength a E H i R h x - + frozenActiveSliceLength a E H i R h z| ≤ + ((activeBooleanPatterns E i).card : ℝ) * (2 * slopeBound a H) * |x - z| := by + classical + unfold frozenActiveSliceLength + rw [← Finset.sum_sub_distrib] + calc + |∑ P ∈ activeBooleanPatterns E i, + ((if parallelCellFeasible a H P h then cellSliceLength a H P R x else 0) - + if parallelCellFeasible a H P h then cellSliceLength a H P R z else 0)| ≤ + ∑ P ∈ activeBooleanPatterns E i, + |(if parallelCellFeasible a H P h then cellSliceLength a H P R x else 0) - + if parallelCellFeasible a H P h then cellSliceLength a H P R z else 0| := + Finset.abs_sum_le_sum_abs _ _ + _ ≤ ∑ _P ∈ activeBooleanPatterns E i, + (2 * slopeBound a H) * |x - z| := by + apply Finset.sum_le_sum + intro P hP + by_cases hp : parallelCellFeasible a H P h + · simpa [hp] using abs_cellSliceLength_sub_le a H P R x z + · simp only [hp, ↓reduceIte, sub_self, abs_zero] + exact mul_nonneg (mul_nonneg (by norm_num) (slopeBound_nonneg a H)) + (abs_nonneg _) + _ = ((activeBooleanPatterns E i).card : ℝ) * (2 * slopeBound a H) * + |x - z| := by + simp + ring + +lemma volume_activeRegionSlice_toReal_eq_activeSliceLength {n : ℕ} + (E : BooleanFunction n) (H : Fin n → PlanarHalfPlaneData) (i : Fin n) + (M R x : ℝ) (hxM : x ≤ M) + (hx : noParallelBoundaryAt (H i).angle (auxiliaryHalfPlaneFamily H i M) x) : + (MeasureTheory.volume (activeRegionSlice (H i).angle E H i R x)).toReal = + activeSliceLength (H i).angle E (auxiliaryHalfPlaneFamily H i M) i R x := by + rw [measure_activeRegionSlice_eq_sum E H i M R x hxM] + unfold activeSliceLength + rw [ENNReal.toReal_sum] + · apply Finset.sum_congr rfl + intro P hP + exact volume_booleanCellSlice_toReal_eq_actual _ _ _ _ _ hx + · intro P hP + apply ne_of_lt + calc + MeasureTheory.volume + (booleanCellSlice (H i).angle (auxiliaryHalfPlaneFamily H i M) P R x) ≤ + MeasureTheory.volume (Set.Icc (-R) R) := + MeasureTheory.measure_mono Set.inter_subset_right + _ = ENNReal.ofReal (R - -R) := Real.volume_Icc + _ < ⊤ := ENNReal.ofReal_lt_top + +end MovingSofa.Nef + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Nef / Variation / Area +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa.Nef + +open Filter Topology + +lemma volume_perturbSdiff_toReal_eq_integral_slice {n : ℕ} + {E : BooleanFunction n} (hE : IsMonotoneBooleanFunction E) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) + (hSide : (H i).upper = false) (R ε₀ δ ε : ℝ) (hδ : |δ| ≤ ε₀) + (hBound : ∀ z : ℝ, |z| ≤ ε₀ → + perturbNefHeight E H i z ⊆ Metric.closedBall 0 R) : + (MeasureTheory.volume + (perturbNefHeight E H i δ \ perturbNefHeight E H i ε)).toReal = + ∫ x in heightInterval (H i).strict (H i).height δ ε, + (MeasureTheory.volume + (activeRegionSlice (H i).angle E H i R x)).toReal := by + let S := perturbNefHeight E H i δ \ perturbNefHeight E H i ε + have hS : MeasurableSet S := + MeasurableSet.diff (measurableSet_perturbNefHeight E H i δ) + (measurableSet_perturbNefHeight E H i ε) + have hSfinite : MeasureTheory.volume S ≠ ⊤ := by + apply ne_of_lt + calc + MeasureTheory.volume S ≤ MeasureTheory.volume (perturbNefHeight E H i δ) := + MeasureTheory.measure_mono Set.sdiff_subset + _ ≤ MeasureTheory.volume (Metric.closedBall (0 : Point) R) := + MeasureTheory.measure_mono (hBound δ hδ) + _ < ⊤ := MeasureTheory.measure_closedBall_lt_top + rw [show (MeasureTheory.volume S).toReal = + ∫ x : ℝ, (MeasureTheory.volume + {y : ℝ | framePoint (H i).angle x y ∈ S}).toReal by + exact volume_toReal_eq_integral_frameSlice (H i).angle hS hSfinite] + rw [← MeasureTheory.integral_indicator + (measurableSet_heightInterval (H i).strict (H i).height δ ε)] + apply MeasureTheory.integral_congr_ae + filter_upwards [] with x + by_cases hx : x ∈ heightInterval (H i).strict (H i).height δ ε + · rw [(frameSlice_perturbSdiff_eq hE H i hSide R ε₀ δ ε x hδ hBound).1 hx] + simp [hx] + · rw [(frameSlice_perturbSdiff_eq hE H i hSide R ε₀ δ ε x hδ hBound).2 hx] + simp [hx] + +lemma area_perturb_sub_eq_integral_activeSliceLength {n : ℕ} + {E : BooleanFunction n} (hE : IsMonotoneBooleanFunction E) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) + (hSide : (H i).upper = false) (R ε₀ M δ ε : ℝ) + (hεδ : ε ≤ δ) (hδ : |δ| ≤ ε₀) (hε : |ε| ≤ ε₀) + (hBound : ∀ z : ℝ, |z| ≤ ε₀ → + perturbNefHeight E H i z ⊆ Metric.closedBall 0 R) + (hxM : ∀ x ∈ heightInterval (H i).strict (H i).height δ ε, x ≤ M) + (hxregular : ∀ x ∈ heightInterval (H i).strict (H i).height δ ε, + noParallelBoundaryAt (H i).angle (auxiliaryHalfPlaneFamily H i M) x) : + ClassicalResults.area (perturbNefHeight E H i δ) - + ClassicalResults.area (perturbNefHeight E H i ε) = + ∫ x in heightInterval (H i).strict (H i).height δ ε, + activeSliceLength (H i).angle E (auxiliaryHalfPlaneFamily H i M) i R x := by + rw [area_perturb_sub_eq_volume_sdiff hE H i hSide R ε₀ δ ε hεδ hδ hε hBound, + volume_perturbSdiff_toReal_eq_integral_slice hE H i hSide R ε₀ δ ε hδ hBound] + apply MeasureTheory.setIntegral_congr_fun + (measurableSet_heightInterval (H i).strict (H i).height δ ε) + intro x hx + exact volume_activeRegionSlice_toReal_eq_activeSliceLength E H i M R x + (hxM x hx) (hxregular x hx) + +lemma area_perturb_sub_eq_intervalIntegral_activeSliceLength {n : ℕ} + {E : BooleanFunction n} (hE : IsMonotoneBooleanFunction E) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) + (hSide : (H i).upper = false) (R ε₀ M ρ : ℝ) + (hε₀ : 0 < ε₀) (hρ : 0 < ρ) + (hM : (H i).height + ε₀ ≤ M) + (hBound : ∀ z : ℝ, |z| ≤ ε₀ → + perturbNefHeight E H i z ⊆ Metric.closedBall 0 R) + (hregular : ∀ x, |x - (H i).height| ≤ ρ → + noParallelBoundaryAt (H i).angle (auxiliaryHalfPlaneFamily H i M) x) : + ∀ δ : ℝ, |δ| ≤ min ε₀ ρ → + ClassicalResults.area (perturbNefHeight E H i δ) - + ClassicalResults.area (perturbNefHeight E H i 0) = + ∫ x in (H i).height..(H i).height + δ, + activeSliceLength (H i).angle E + (auxiliaryHalfPlaneFamily H i M) i R x := by + intro δ hδ + have hδε₀ : |δ| ≤ ε₀ := hδ.trans (min_le_left _ _) + have hδρ : |δ| ≤ ρ := hδ.trans (min_le_right _ _) + have hzero : |(0 : ℝ)| ≤ ε₀ := by simpa using hε₀.le + by_cases hδ0 : 0 ≤ δ + · have hformula := area_perturb_sub_eq_integral_activeSliceLength + hE H i hSide R ε₀ M δ 0 hδ0 hδε₀ hzero hBound + (fun x hx ↦ by + have hxb := mem_heightInterval_bounds hx + linarith [le_abs_self δ]) + (fun x hx ↦ by + apply hregular + have hxb := mem_heightInterval_bounds hx + rw [abs_le] + constructor <;> linarith [le_abs_self δ, neg_le_abs δ]) + rw [integral_heightInterval_eq_intervalIntegral _ _ _ _ _ hδ0] at hformula + simpa using hformula + · have hδle : δ ≤ 0 := le_of_not_ge hδ0 + have hformula := area_perturb_sub_eq_integral_activeSliceLength + hE H i hSide R ε₀ M 0 δ hδle hzero hδε₀ hBound + (fun x hx ↦ by + have hxb := mem_heightInterval_bounds hx + linarith) + (fun x hx ↦ by + apply hregular + have hxb := mem_heightInterval_bounds hx + rw [abs_le] + constructor <;> linarith [le_abs_self δ, neg_le_abs δ]) + rw [integral_heightInterval_eq_intervalIntegral _ _ _ _ _ hδle] at hformula + simp only [add_zero] at hformula + rw [intervalIntegral.integral_symm] at hformula + linarith + +lemma area_perturb_remainder_le {n : ℕ} {E : BooleanFunction n} + (hE : IsMonotoneBooleanFunction E) (H : Fin n → PlanarHalfPlaneData) + (i : Fin n) (hSide : (H i).upper = false) (R ε₀ M ρ : ℝ) + (hε₀ : 0 < ε₀) (hρ : 0 < ρ) (hM : (H i).height + ε₀ ≤ M) + (hBound : ∀ z : ℝ, |z| ≤ ε₀ → + perturbNefHeight E H i z ⊆ Metric.closedBall 0 R) + (hstable : ∀ x, |x - (H i).height| ≤ ρ → + noParallelBoundaryAt (H i).angle (auxiliaryHalfPlaneFamily H i M) x ∧ + ∀ P : Fin n → Bool, + (parallelCellFeasible (H i).angle (auxiliaryHalfPlaneFamily H i M) P x ↔ + parallelCellFeasible (H i).angle (auxiliaryHalfPlaneFamily H i M) P + (H i).height)) : + ∀ δ : ℝ, |δ| ≤ min ε₀ ρ → + |ClassicalResults.area (perturbNefHeight E H i δ) - + ClassicalResults.area (perturbNefHeight E H i 0) - + activeSliceLength (H i).angle E (auxiliaryHalfPlaneFamily H i M) i R + (H i).height * δ| ≤ + (((activeBooleanPatterns E i).card : ℝ) * + (2 * slopeBound (H i).angle (auxiliaryHalfPlaneFamily H i M))) * δ ^ 2 := by + intro δ hδ + let a := (H i).angle + let h := (H i).height + let G := frozenActiveSliceLength a E (auxiliaryHalfPlaneFamily H i M) i R h + let L := ((activeBooleanPatterns E i).card : ℝ) * + (2 * slopeBound a (auxiliaryHalfPlaneFamily H i M)) + have hδρ : |δ| ≤ ρ := hδ.trans (min_le_right _ _) + have harea := area_perturb_sub_eq_intervalIntegral_activeSliceLength + hE H i hSide R ε₀ M ρ hε₀ hρ hM hBound (fun x hx ↦ (hstable x hx).1) δ hδ + have hGh : activeSliceLength a E (auxiliaryHalfPlaneFamily H i M) i R h = G h := by + apply activeSliceLength_eq_frozen_of_stable + intro P + rfl + have hFG : (∫ x in h..h + δ, + activeSliceLength a E (auxiliaryHalfPlaneFamily H i M) i R x) = + ∫ x in h..h + δ, G x := by + apply intervalIntegral.integral_congr + intro x hx + apply activeSliceLength_eq_frozen_of_stable + apply (hstable x ?_).2 + rw [abs_le] + rcases Set.mem_uIcc.mp hx with hx | hx <;> + constructor <;> linarith [le_abs_self δ, neg_le_abs δ] + rw [show (H i).angle = a by rfl, show (H i).height = h by rfl] at harea ⊢ + rw [hFG] at harea + rw [hGh] + have hGint : IntervalIntegrable G MeasureTheory.volume h (h + δ) := + (continuous_frozenActiveSliceLength a E + (auxiliaryHalfPlaneFamily H i M) i R h).intervalIntegrable h (h + δ) + have hcint : IntervalIntegrable (fun _ : ℝ ↦ G h) MeasureTheory.volume h (h + δ) := + continuous_const.intervalIntegrable h (h + δ) + have hremainder : + ClassicalResults.area (perturbNefHeight E H i δ) - + ClassicalResults.area (perturbNefHeight E H i 0) - G h * δ = + ∫ x in h..h + δ, (G x - G h) := by + rw [intervalIntegral.integral_sub hGint hcint, + intervalIntegral.integral_const] + simp only [smul_eq_mul] + rw [← harea] + ring + have hL : 0 ≤ L := + mul_nonneg (Nat.cast_nonneg _) + (mul_nonneg (by norm_num) (slopeBound_nonneg _ _)) + rw [hremainder, ← Real.norm_eq_abs] + calc + ‖∫ x in h..h + δ, (G x - G h)‖ ≤ (L * |δ|) * |(h + δ) - h| := by + apply intervalIntegral.norm_integral_le_of_norm_le_const + intro x hx + rw [Real.norm_eq_abs] + calc + |G x - G h| ≤ L * |x - h| := by + exact abs_frozenActiveSliceLength_sub_le a E + (auxiliaryHalfPlaneFamily H i M) i R h x h + _ ≤ L * |δ| := by + apply mul_le_mul_of_nonneg_left _ hL + rw [abs_le] + rcases Set.mem_uIoc.mp hx with hx | hx <;> + constructor <;> linarith [le_abs_self δ, neg_le_abs δ] + _ = L * δ ^ 2 := by + rw [show (h + δ) - h = δ by ring] + calc + L * |δ| * |δ| = L * |δ| ^ 2 := by ring + _ = L * δ ^ 2 := by rw [sq_abs] + _ = (((activeBooleanPatterns E i).card : ℝ) * + (2 * slopeBound a (auxiliaryHalfPlaneFamily H i M))) * δ ^ 2 := rfl + +end MovingSofa.Nef + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Nef / Variation / Boundary +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa.Nef + +open Filter Topology + +lemma tendsto_sub_one_div_normalVector (p : Point) (a : Real.Angle) : + Filter.Tendsto + (fun k : ℕ ↦ p - (1 / ((k + 1 : ℕ) : ℝ)) • normalVector a) + Filter.atTop (𝓝 p) := by + simpa using tendsto_const_nhds.sub + ((tendsto_one_div_add_atTop_nhds_zero_nat (𝕜 := ℝ)).smul_const + (normalVector a)) + +lemma tendsto_add_one_div_normalVector (p : Point) (a : Real.Angle) : + Filter.Tendsto + (fun k : ℕ ↦ p + (1 / ((k + 1 : ℕ) : ℝ)) • normalVector a) + Filter.atTop (𝓝 p) := by + simpa using tendsto_const_nhds.add + ((tendsto_one_div_add_atTop_nhds_zero_nat (𝕜 := ℝ)).smul_const + (normalVector a)) + +lemma sub_smul_normalVector_mem_carrier (H : PlanarHalfPlaneData) + (hupper : H.upper = false) {p : Point} (hp : p ∈ H.boundaryLine) + {t : ℝ} (ht : 0 < t) : + p - t • normalVector H.angle ∈ H.carrier := by + change inner ℝ p (normalVector H.angle) = H.height at hp + rw [PlanarHalfPlaneData.carrier, normalHalfPlane, hupper] + simp only [Bool.false_eq_true, ↓reduceIte, Set.mem_ofPred_eq] + rw [inner_sub_left, real_inner_smul_left, hp] + rw [show inner ℝ (normalVector H.angle) (normalVector H.angle) = 1 by + simpa using inner_normalVector_self H.angle.toReal] + cases H.strict <;> simp only [Bool.false_eq_true, ↓reduceIte] <;> linarith + +lemma add_smul_normalVector_not_mem_carrier (H : PlanarHalfPlaneData) + (hupper : H.upper = false) {p : Point} (hp : p ∈ H.boundaryLine) + {t : ℝ} (ht : 0 < t) : + p + t • normalVector H.angle ∉ H.carrier := by + change inner ℝ p (normalVector H.angle) = H.height at hp + rw [PlanarHalfPlaneData.carrier, normalHalfPlane, hupper] + simp only [Bool.false_eq_true, ↓reduceIte, Set.mem_ofPred_eq] + rw [inner_add_left, real_inner_smul_left, hp] + rw [show inner ℝ (normalVector H.angle) (normalVector H.angle) = 1 by + simpa using inner_normalVector_self H.angle.toReal] + cases H.strict <;> simp only [Bool.false_eq_true, ↓reduceIte] <;> linarith + +lemma mem_frontier_booleanSet_of_active {n : ℕ} (E : BooleanFunction n) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) + (hupper : (H i).upper = false) (p : Point) + (hline : p ∈ (H i).boundaryLine) + (hother : ∀ j, j ≠ i → p ∉ (H j).boundaryLine) + (hactive : IsActiveBooleanPattern E i + (setMembershipPattern (fun j ↦ (H j).carrier) p)) : + p ∈ frontier (booleanSet E (fun j ↦ (H j).carrier)) := by + let P := setMembershipPattern (fun j ↦ (H j).carrier) p + let qminus : ℕ → Point := fun k ↦ + p - (1 / ((k + 1 : ℕ) : ℝ)) • normalVector (H i).angle + let qplus : ℕ → Point := fun k ↦ + p + (1 / ((k + 1 : ℕ) : ℝ)) • normalVector (H i).angle + have hminus_lim : Filter.Tendsto qminus Filter.atTop (𝓝 p) := + tendsto_sub_one_div_normalVector p (H i).angle + have hplus_lim : Filter.Tendsto qplus Filter.atTop (𝓝 p) := + tendsto_add_one_div_normalVector p (H i).angle + have hlocal := eventually_setMembershipPattern_eq_of_ne H i p hother + have hminus_local : ∀ᶠ k in Filter.atTop, ∀ j, j ≠ i → + setMembershipPattern (fun r ↦ (H r).carrier) (qminus k) j = P j := + hminus_lim.eventually hlocal + have hplus_local : ∀ᶠ k in Filter.atTop, ∀ j, j ≠ i → + setMembershipPattern (fun r ↦ (H r).carrier) (qplus k) j = P j := + hplus_lim.eventually hlocal + have hminus_mem : ∀ᶠ k in Filter.atTop, + qminus k ∈ booleanSet E (fun j ↦ (H j).carrier) := by + filter_upwards [hminus_local] with k hk + have hki : qminus k ∈ (H i).carrier := + sub_smul_normalVector_mem_carrier (H i) hupper hline (by positivity) + have hpattern : setMembershipPattern (fun r ↦ (H r).carrier) (qminus k) = + Function.update P i true := by + funext j + by_cases hji : j = i + · subst j + simp [setMembershipPattern, hki] + · simpa [Function.update_of_ne hji] using hk j hji + change E (setMembershipPattern (fun r ↦ (H r).carrier) (qminus k)) = true + rw [hpattern] + exact hactive.2 + have hplus_mem : ∀ᶠ k in Filter.atTop, + qplus k ∈ (booleanSet E (fun j ↦ (H j).carrier))ᶜ := by + filter_upwards [hplus_local] with k hk + have hki : qplus k ∉ (H i).carrier := + add_smul_normalVector_not_mem_carrier (H i) hupper hline (by positivity) + have hpattern : setMembershipPattern (fun r ↦ (H r).carrier) (qplus k) = + Function.update P i false := by + funext j + by_cases hji : j = i + · subst j + simp [setMembershipPattern, hki] + · simpa [Function.update_of_ne hji] using hk j hji + change E (setMembershipPattern (fun r ↦ (H r).carrier) (qplus k)) ≠ true + rw [hpattern, hactive.1] + decide + rw [frontier_eq_closure_inter_closure] + exact ⟨mem_closure_of_tendsto hminus_lim hminus_mem, + mem_closure_of_tendsto hplus_lim hplus_mem⟩ + +lemma not_mem_frontier_booleanSet_of_not_active {n : ℕ} {E : BooleanFunction n} + (hE : IsMonotoneBooleanFunction E) (H : Fin n → PlanarHalfPlaneData) + (i : Fin n) (p : Point) + (hother : ∀ j, j ≠ i → p ∉ (H j).boundaryLine) + (hinactive : ¬IsActiveBooleanPattern E i + (setMembershipPattern (fun j ↦ (H j).carrier) p)) : + p ∉ frontier (booleanSet E (fun j ↦ (H j).carrier)) := by + let P := setMembershipPattern (fun j ↦ (H j).carrier) p + let X := booleanSet E (fun j ↦ (H j).carrier) + have heq : E (Function.update P i false) = E (Function.update P i true) := + (not_isActiveBooleanPattern_iff hE i P).mp hinactive + have hlocal := eventually_setMembershipPattern_eq_of_ne H i p hother + have hevent : ∀ᶠ q in 𝓝 p, + (q ∈ X ↔ E (Function.update P i false) = true) := by + filter_upwards [hlocal] with q hq + have hpattern : setMembershipPattern (fun r ↦ (H r).carrier) q = + Function.update P i + (setMembershipPattern (fun r ↦ (H r).carrier) q i) := by + funext j + by_cases hji : j = i + · subst j + simp + · simpa [Function.update_of_ne hji] using hq j hji + change (E (setMembershipPattern (fun r ↦ (H r).carrier) q) = true ↔ _) + rw [hpattern] + cases hqi : setMembershipPattern (fun r ↦ (H r).carrier) q i + · rfl + · simp [heq] + cases hvalue : E (Function.update P i false) + · have hcompl : Xᶜ ∈ 𝓝 p := by + filter_upwards [hevent] with q hq + simpa [hvalue] using hq + have hinter : p ∈ interior Xᶜ := mem_interior_iff_mem_nhds.mpr hcompl + have hpcompl : p ∈ Xᶜ := interior_subset hinter + have hnot : p ∉ frontier Xᶜ := + (mem_interior_iff_notMem_frontier hpcompl).mp hinter + simpa [X] using hnot + · have hset : X ∈ 𝓝 p := by + filter_upwards [hevent] with q hq + simpa [hvalue] using hq + have hinter : p ∈ interior X := mem_interior_iff_mem_nhds.mpr hset + have hp : p ∈ X := interior_subset hinter + exact (mem_interior_iff_notMem_frontier hp).mp hinter + +lemma mem_frontier_booleanSet_iff_mem_activeBooleanRegion {n : ℕ} + {E : BooleanFunction n} (hE : IsMonotoneBooleanFunction E) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) + (hupper : (H i).upper = false) (p : Point) + (hline : p ∈ (H i).boundaryLine) + (hother : ∀ j, j ≠ i → p ∉ (H j).boundaryLine) : + p ∈ frontier (booleanSet E (fun j ↦ (H j).carrier)) ↔ + p ∈ activeBooleanRegion E H i := by + rw [mem_activeBooleanRegion_iff] + constructor + · intro hfrontier + by_contra hinactive + exact (not_mem_frontier_booleanSet_of_not_active hE H i p hother hinactive) + hfrontier + · intro hactive + exact mem_frontier_booleanSet_of_active E H i hupper p hline hother hactive + +/-- The truncated slice of the Boolean set’s frontier along a selected wall boundary. -/ +def frontierLineSlice {n : ℕ} (E : BooleanFunction n) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) (R : ℝ) : Set ℝ := + {y | framePoint (H i).angle (H i).height y ∈ + frontier (booleanSet E (fun j ↦ (H j).carrier))} ∩ Set.Icc (-R) R + +lemma volume_frontierLineSlice_eq_activeRegionSlice {n : ℕ} + {E : BooleanFunction n} (hE : IsMonotoneBooleanFunction E) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) + (hupper : (H i).upper = false) (M R : ℝ) + (hno : noParallelBoundaryAt (H i).angle + (auxiliaryHalfPlaneFamily H i M) (H i).height) : + MeasureTheory.volume (frontierLineSlice E H i R) = + MeasureTheory.volume (activeRegionSlice (H i).angle E H i R (H i).height) := by + apply MeasureTheory.measure_congr + rw [MeasureTheory.ae_eq_set] + have hzero := (finite_cellSliceBoundaryExceptions (H i).angle + (auxiliaryHalfPlaneFamily H i M) (H i).height hno).measure_zero + MeasureTheory.volume + have heq : ∀ y, + y ∉ cellSliceBoundaryExceptions (H i).angle + (auxiliaryHalfPlaneFamily H i M) (H i).height → + (y ∈ frontierLineSlice E H i R ↔ + y ∈ activeRegionSlice (H i).angle E H i R (H i).height) := by + intro y hy + let p := framePoint (H i).angle (H i).height y + have hline : p ∈ (H i).boundaryLine := by + change inner ℝ p (normalVector (H i).angle) = (H i).height + exact inner_framePoint_normalVector _ _ _ + have hother : ∀ j, j ≠ i → p ∉ (H j).boundaryLine := by + intro j hji hj + apply hy + apply Set.mem_iUnion.mpr + refine ⟨j, ?_⟩ + change inner ℝ p (normalVector (H j).angle) = (H j).height at hj + simpa [p, auxiliaryHalfPlaneFamily_of_ne H i j M hji] using hj + have hfrontier := mem_frontier_booleanSet_iff_mem_activeBooleanRegion + hE H i hupper p hline hother + constructor + · rintro ⟨hyfrontier, hyR⟩ + exact ⟨hfrontier.mp hyfrontier, hyR⟩ + · rintro ⟨hyactive, hyR⟩ + exact ⟨hfrontier.mpr hyactive, hyR⟩ + constructor <;> apply MeasureTheory.measure_mono_null _ hzero + · intro y hy + by_contra hyexception + exact hy.2 ((heq y hyexception).mp hy.1) + · intro y hy + by_contra hyexception + exact hy.2 ((heq y hyexception).mpr hy.1) + +lemma lineMap_framePoint (a : Real.Angle) (h y : ℝ) : + AffineMap.lineMap (framePoint a h 0) (framePoint a h 1) y = + framePoint a h y := by + simp only [AffineMap.lineMap_apply_module', framePoint_eq, zero_smul, + add_zero, one_smul] + module + +lemma dist_framePoint_zero_one (a : Real.Angle) (h : ℝ) : + dist (framePoint a h 0) (framePoint a h 1) = 1 := by + rw [dist_eq_norm] + simp only [framePoint_eq, zero_smul, add_zero, one_smul] + rw [show h • normalVector a - (h • normalVector a + tangentVector a) = + -tangentVector a by module] + simp [norm_tangentVector_angle] + +lemma frontier_booleanSet_inter_boundaryLine_eq_image_frontierLineSlice {n : ℕ} + (E : BooleanFunction n) (H : Fin n → PlanarHalfPlaneData) (i : Fin n) + (R : ℝ) + (hBound : booleanSet E (fun j ↦ (H j).carrier) ⊆ Metric.closedBall 0 R) : + frontier (booleanSet E (fun j ↦ (H j).carrier)) ∩ (H i).boundaryLine = + AffineMap.lineMap + (framePoint (H i).angle (H i).height 0) + (framePoint (H i).angle (H i).height 1) '' + frontierLineSlice E H i R := by + ext p + constructor + · rintro ⟨hpfrontier, hpline⟩ + let y := inner ℝ p (tangentVector (H i).angle) + have hpnormal : inner ℝ p (normalVector (H i).angle) = (H i).height := hpline + have hparam : framePoint (H i).angle (H i).height y = p := by + rw [framePoint_eq, ← hpnormal] + exact inner_normalVector_smul_add_inner_tangentVector_smul p (H i).angle + have hpball : p ∈ Metric.closedBall (0 : Point) R := by + have hpclosure : p ∈ closure (booleanSet E (fun j ↦ (H j).carrier)) := + frontier_subset_closure hpfrontier + exact (closure_minimal hBound Metric.isClosed_closedBall) hpclosure + have hynorm := abs_real_inner_le_norm p (tangentVector (H i).angle) + rw [norm_tangentVector_angle, mul_one] at hynorm + have hpnorm : ‖p‖ ≤ R := by + simpa [Metric.mem_closedBall, dist_zero_left] using hpball + have hyR : y ∈ Set.Icc (-R) R := abs_le.mp (hynorm.trans hpnorm) + refine ⟨y, ⟨?_, ?_⟩⟩ + · exact ⟨by simpa [frontierLineSlice, hparam] using hpfrontier, hyR⟩ + · rw [lineMap_framePoint, hparam] + · rintro ⟨y, hy, rfl⟩ + rw [lineMap_framePoint] + refine ⟨hy.1, ?_⟩ + change inner ℝ (framePoint (H i).angle (H i).height y) + (normalVector (H i).angle) = (H i).height + exact inner_framePoint_normalVector _ _ _ + +lemma hausdorffMeasure_frontier_inter_boundaryLine_eq_volume_slice {n : ℕ} + (E : BooleanFunction n) (H : Fin n → PlanarHalfPlaneData) (i : Fin n) + (R : ℝ) + (hBound : booleanSet E (fun j ↦ (H j).carrier) ⊆ Metric.closedBall 0 R) : + MeasureTheory.Measure.hausdorffMeasure 1 + (frontier (booleanSet E (fun j ↦ (H j).carrier)) ∩ (H i).boundaryLine) = + MeasureTheory.volume (frontierLineSlice E H i R) := by + rw [frontier_booleanSet_inter_boundaryLine_eq_image_frontierLineSlice + E H i R hBound, MeasureTheory.hausdorffMeasure_lineMap_image, + MeasureTheory.hausdorffMeasure_real] + have hdist := dist_framePoint_zero_one (H i).angle (H i).height + have hnndist : nndist + (framePoint (H i).angle (H i).height 0) + (framePoint (H i).angle (H i).height 1) = 1 := by + apply NNReal.eq + simpa using hdist + rw [hnndist, one_smul] + +lemma hausdorffMeasure_frontier_toReal_eq_activeSliceLength {n : ℕ} + {E : BooleanFunction n} (hE : IsMonotoneBooleanFunction E) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) + (hupper : (H i).upper = false) (M R : ℝ) + (hM : (H i).height ≤ M) + (hBound : booleanSet E (fun j ↦ (H j).carrier) ⊆ Metric.closedBall 0 R) + (hno : noParallelBoundaryAt (H i).angle + (auxiliaryHalfPlaneFamily H i M) (H i).height) : + (MeasureTheory.Measure.hausdorffMeasure 1 + (frontier (booleanSet E (fun j ↦ (H j).carrier)) ∩ + (H i).boundaryLine)).toReal = + activeSliceLength (H i).angle E + (auxiliaryHalfPlaneFamily H i M) i R (H i).height := by + rw [hausdorffMeasure_frontier_inter_boundaryLine_eq_volume_slice E H i R hBound, + volume_frontierLineSlice_eq_activeRegionSlice hE H i hupper M R hno] + exact volume_activeRegionSlice_toReal_eq_activeSliceLength E H i M R + (H i).height hM hno + +end MovingSofa.Nef + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Nef / Variation +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +open Filter Topology +open Nef + +theorem simpleNefPolygon_area_variation {n : ℕ} (E : BooleanFunction n) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) + (hE : IsMonotoneBooleanFunction E) + (hLines : Function.Injective (fun j ↦ (H j).boundaryLine)) + (hSide : (H i).upper = false) (R ε₀ : ℝ) (hR : 0 < R) (hε₀ : 0 < ε₀) + (hBound : ∀ δ : ℝ, |δ| ≤ ε₀ → + perturbNefHeight E H i δ ⊆ Metric.closedBall 0 R) : + ∃ C ε : ℝ, 0 ≤ C ∧ 0 < ε ∧ ε ≤ ε₀ ∧ + ∀ δ : ℝ, |δ| ≤ ε → + |ClassicalResults.area (perturbNefHeight E H i δ) - + ClassicalResults.area (perturbNefHeight E H i 0) - + (MeasureTheory.Measure.hausdorffMeasure 1 + (frontier (perturbNefHeight E H i 0) ∩ (H i).boundaryLine)).toReal * δ| ≤ + C * δ ^ 2 := by + let M := |(H i).height| + ε₀ + R + 1 + have hno : noParallelBoundaryAt (H i).angle + (auxiliaryHalfPlaneFamily H i M) (H i).height := by + exact noParallelBoundaryAt_auxiliary H i hLines R ε₀ hR hε₀ + rcases exists_parallel_stability_radius (H i).angle + (auxiliaryHalfPlaneFamily H i M) (H i).height hno with + ⟨ρ, hρ, hstable⟩ + let C := ((activeBooleanPatterns E i).card : ℝ) * + (2 * slopeBound (H i).angle (auxiliaryHalfPlaneFamily H i M)) + let ε := min ε₀ ρ + refine ⟨C, ε, ?_, ?_, ?_, ?_⟩ + · exact mul_nonneg (Nat.cast_nonneg _) + (mul_nonneg (by norm_num) (slopeBound_nonneg _ _)) + · exact lt_min hε₀ hρ + · exact min_le_left _ _ + · intro δ hδ + have hM : (H i).height + ε₀ ≤ M := by + dsimp [M] + linarith [le_abs_self (H i).height] + have hzero : |(0 : ℝ)| ≤ ε₀ := by simpa using hε₀.le + have hBoundZero := hBound 0 hzero + rw [perturbNefHeight_zero] at hBoundZero + have hcoefficient : + (MeasureTheory.Measure.hausdorffMeasure 1 + (frontier (perturbNefHeight E H i 0) ∩ (H i).boundaryLine)).toReal = + activeSliceLength (H i).angle E + (auxiliaryHalfPlaneFamily H i M) i R (H i).height := by + rw [perturbNefHeight_zero] + exact hausdorffMeasure_frontier_toReal_eq_activeSliceLength + hE H i hSide M R (le_trans (le_add_of_nonneg_right hε₀.le) hM) + hBoundZero hno + have hremainder := area_perturb_remainder_le hE H i hSide R ε₀ M ρ + hε₀ hρ hM hBound hstable δ hδ + rw [hcoefficient] + exact hremainder + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Nef / Signed Variation +-/ + +@[expose] public section + +noncomputable section +namespace MovingSofa + +private def PlanarHalfPlaneData.reverseOrientation + (H : PlanarHalfPlaneData) : PlanarHalfPlaneData := + ⟨H.angle + ((Real.pi : ℝ) : Real.Angle), -H.height, !H.upper, H.strict⟩ + +private theorem PlanarHalfPlaneData.carrier_reverseOrientation (H : PlanarHalfPlaneData) : + H.reverseOrientation.carrier = H.carrier := by + ext p + simp only [reverseOrientation, carrier, normalHalfPlane, Set.mem_ofPred_eq, + normalVector_add_pi_angle, inner_neg_right] + cases H.upper <;> cases H.strict <;> simp + +private theorem PlanarHalfPlaneData.boundaryLine_reverseOrientation (H : PlanarHalfPlaneData) : + H.reverseOrientation.boundaryLine = H.boundaryLine := by + ext p + simp [reverseOrientation, boundaryLine, normalLine, normalVector_add_pi_angle] + +private theorem PlanarHalfPlaneData.carrier_reverseOrientation_add_height + (H : PlanarHalfPlaneData) (δ : ℝ) : + ({H.reverseOrientation with height := H.reverseOrientation.height + δ}).carrier = + ({H with height := H.height + -δ}).carrier := by + have heq : {H.reverseOrientation with height := H.reverseOrientation.height + δ} = + ({H with height := H.height + -δ}).reverseOrientation := by + cases H + simp [reverseOrientation, add_comm] + rw [heq, carrier_reverseOrientation] + +private theorem perturbNefHeight_reverseOrientation {n : ℕ} (E : BooleanFunction n) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) (δ : ℝ) : + perturbNefHeight E (fun j ↦ (H j).reverseOrientation) i δ = + perturbNefHeight E H i (-δ) := by + unfold perturbNefHeight + congr 1 + funext j + split_ifs + · exact PlanarHalfPlaneData.carrier_reverseOrientation_add_height _ _ + · exact PlanarHalfPlaneData.carrier_reverseOrientation _ + +/-- Quadratic area variation when the moved half-plane is a lower constraint. -/ +theorem simpleNefPolygon_area_variation_lower {n : ℕ} (E : BooleanFunction n) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) + (hE : IsMonotoneBooleanFunction E) + (hLines : Function.Injective (fun j ↦ (H j).boundaryLine)) + (hSide : (H i).upper = true) (R ε₀ : ℝ) (hR : 0 < R) (hε₀ : 0 < ε₀) + (hBound : ∀ δ : ℝ, |δ| ≤ ε₀ → + perturbNefHeight E H i δ ⊆ Metric.closedBall 0 R) : + ∃ C ε : ℝ, 0 ≤ C ∧ 0 < ε ∧ ε ≤ ε₀ ∧ + ∀ δ : ℝ, |δ| ≤ ε → + |ClassicalResults.area (perturbNefHeight E H i δ) - + ClassicalResults.area (perturbNefHeight E H i 0) + + (MeasureTheory.Measure.hausdorffMeasure 1 + (frontier (perturbNefHeight E H i 0) ∩ (H i).boundaryLine)).toReal * δ| ≤ + C * δ ^ 2 := by + have hLines' : Function.Injective (fun j ↦ (H j).reverseOrientation.boundaryLine) := by + simpa only [PlanarHalfPlaneData.boundaryLine_reverseOrientation] using hLines + have hSide' : (H i).reverseOrientation.upper = false := by + simp [PlanarHalfPlaneData.reverseOrientation, hSide] + obtain ⟨C, ε, hC, hε, hε₀', h⟩ := simpleNefPolygon_area_variation E + (fun j ↦ (H j).reverseOrientation) i hE hLines' hSide' R ε₀ hR hε₀ (by + intro δ hδ + rw [perturbNefHeight_reverseOrientation] + exact hBound (-δ) (by simpa only [abs_neg] using hδ)) + refine ⟨C, ε, hC, hε, hε₀', fun δ hδ ↦ ?_⟩ + have hb := h (-δ) (by simpa only [abs_neg] using hδ) + simpa only [perturbNefHeight_reverseOrientation, neg_neg, neg_zero, + PlanarHalfPlaneData.boundaryLine_reverseOrientation, mul_neg, sub_neg_eq_add, + neg_sq] using hb +/-- Signed quadratic area variation for either orientation of a simple Nef wall. -/ +theorem simpleNefPolygon_area_variation_signed {n : ℕ} (E : BooleanFunction n) + (H : Fin n → PlanarHalfPlaneData) (i : Fin n) + (hE : IsMonotoneBooleanFunction E) + (hLines : Function.Injective (fun j ↦ (H j).boundaryLine)) + (R ε₀ : ℝ) (hR : 0 < R) (hε₀ : 0 < ε₀) + (hBound : ∀ δ : ℝ, |δ| ≤ ε₀ → + perturbNefHeight E H i δ ⊆ Metric.closedBall 0 R) : + ∃ C ε : ℝ, 0 ≤ C ∧ 0 < ε ∧ ε ≤ ε₀ ∧ + ∀ δ : ℝ, |δ| ≤ ε → + |ClassicalResults.area (perturbNefHeight E H i δ) - + ClassicalResults.area (perturbNefHeight E H i 0) - + (if (H i).upper then -1 else 1) * + (MeasureTheory.Measure.hausdorffMeasure 1 + (frontier (perturbNefHeight E H i 0) ∩ (H i).boundaryLine)).toReal * δ| ≤ + C * δ ^ 2 := by + cases hs : (H i).upper + · simpa only [hs, Bool.false_eq_true, ite_false, one_mul] using + simpleNefPolygon_area_variation E H i hE hLines hs R ε₀ hR hε₀ hBound + · simpa only [hs, ite_true, neg_one_mul, neg_mul, one_mul, sub_neg_eq_add] using + simpleNefPolygon_area_variation_lower E H i hE hLines hs R ε₀ hR hε₀ hBound + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Height / Wall Variation +-/ + +@[expose] public section + +noncomputable section +namespace MovingSofa + +private theorem endpoint_wall_changes_disjoint (a : Real.Angle) (h ε : ℝ) + (hε : 0 ≤ ε) (hε' : ε ≤ 1) (p : Point) : + (p ∈ normalHalfPlane a (h + ε) false false ↔ + p ∈ normalHalfPlane a h false false) ∨ + (p ∈ normalHalfPlane a (h - 1 + ε) true false ↔ + p ∈ normalHalfPlane a (h - 1) true false) := by + change (inner ℝ p (normalVector a) ≤ h + ε ↔ inner ℝ p (normalVector a) ≤ h) ∨ + (h - 1 + ε ≤ inner ℝ p (normalVector a) ↔ h - 1 ≤ inner ℝ p (normalVector a)) + by_cases hp : inner ℝ p (normalVector a) ≤ h + · left + constructor <;> intro _ <;> linarith + · right + constructor <;> intro _ <;> linarith + +private theorem area_add_of_indicator_add_eq (A B C D : Set Point) + (hA : MeasurableSet A) (hB : MeasurableSet B) + (hC : MeasurableSet C) (hD : MeasurableSet D) + (hAfin : MeasureTheory.volume A ≠ ⊤) (hBfin : MeasureTheory.volume B ≠ ⊤) + (hCfin : MeasureTheory.volume C ≠ ⊤) (hDfin : MeasureTheory.volume D ≠ ⊤) + (h : ∀ p, A.indicator (fun _ ↦ (1 : ℝ)) p + B.indicator (fun _ ↦ (1 : ℝ)) p = + C.indicator (fun _ ↦ (1 : ℝ)) p + D.indicator (fun _ ↦ (1 : ℝ)) p) : + ClassicalResults.area A + ClassicalResults.area B = + ClassicalResults.area C + ClassicalResults.area D := by + have hint (S : Set Point) (hm : MeasurableSet S) (hf : MeasureTheory.volume S ≠ ⊤) : + MeasureTheory.Integrable (S.indicator (fun _ ↦ (1 : ℝ))) := + (MeasureTheory.integrableOn_const hf).integrable_indicator hm + have heq := congrArg (fun f : Point → ℝ ↦ ∫ p, f p) (funext h) + rw [MeasureTheory.integral_add (hint A hA hAfin) (hint B hB hBfin), + MeasureTheory.integral_add (hint C hC hCfin) (hint D hD hDfin)] at heq + have harea (S : Set Point) (hm : MeasurableSet S) : + (∫ p, S.indicator (fun _ ↦ (1 : ℝ)) p) = ClassicalResults.area S := + MeasureTheory.integral_indicator_one hm + simpa only [harea A hA, harea B hB, harea C hC, harea D hD] using heq +private def BooleanFunction.all (n : ℕ) : BooleanFunction n := + fun P ↦ decide (∀ i, P i = true) + +private theorem BooleanFunction.all_monotone (n : ℕ) : + IsMonotoneBooleanFunction (BooleanFunction.all n) := by + intro P Q hPQ hP + simp only [BooleanFunction.all, decide_eq_true_eq] at hP ⊢ + exact fun i ↦ hPQ i (hP i) + +private theorem booleanSet_all {n : ℕ} (H : Fin n → Set Point) : + booleanSet (BooleanFunction.all n) H = ⋂ i, H i := by + classical + ext p + simp [booleanSet, BooleanFunction.all] + +private theorem independentWallCap_eq_booleanSet {Θ : AngleSet} + (h upper lower : PolygonHeightSpace Θ) {n : ℕ} + (H : Fin n → PlanarHalfPlaneData) (hH : Set.range H = polygonCapWalls h) + (F : PlanarHalfPlaneData → Set Point) + (hupper : ∀ t ∈ angleDomain Θ, + F ⟨(t : Real.Angle), polygonHeightValue h t, false, false⟩ = + normalHalfPlane (t : Real.Angle) (polygonHeightValue upper t) false false) + (hlower : ∀ t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + F ⟨(t : Real.Angle), polygonHeightValue h t - 1, true, false⟩ = + normalHalfPlane (t : Real.Angle) (polygonHeightValue lower t) true false) : + independentWallCap upper lower = + booleanSet (BooleanFunction.all n) (fun i ↦ F (H i)) := by + rw [booleanSet_all] + ext p + have hrange : (∀ i, p ∈ F (H i)) ↔ ∀ W ∈ polygonCapWalls h, p ∈ F W := by + rw [← hH] + simp + simp only [Set.mem_iInter] + rw [hrange] + simp only [independentWallCap, Set.mem_inter_iff, Set.mem_iInter] + constructor + · rintro ⟨hend, hint⟩ W hW + rcases hW with ⟨t, ht, rfl⟩ | ⟨t, ht, rfl⟩ + · rw [hupper t ht] + rcases ht with ht | ht + · exact hint t ht + · exact (hend t ht).1 + · rw [hlower t ht] + exact (hend t ht).2 + · intro hall + constructor + · intro t ht + constructor + · rw [← hupper t (Or.inr ht)] + exact hall _ (Or.inl ⟨t, Or.inr ht, rfl⟩) + · rw [← hlower t ht] + exact hall _ (Or.inr ⟨t, ht, rfl⟩) + · intro t ht + rw [← hupper t (Or.inl ht)] + exact hall _ (Or.inl ⟨t, Or.inl ht, rfl⟩) + +private def BooleanFunction.niche (Θ : AngleSet) {n : ℕ} + (endpoint : {t : ℝ // t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)} → Fin n) + (left right : {t : ℝ // t ∈ Θ.directions} → Fin n) : BooleanFunction n := by + classical + exact fun P ↦ decide ((∀ t, P (endpoint t) = true) ∧ + ∃ t, P (left t) = true ∧ P (right t) = true) + +private theorem BooleanFunction.niche_monotone (Θ : AngleSet) {n : ℕ} + (endpoint : {t : ℝ // t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)} → Fin n) + (left right : {t : ℝ // t ∈ Θ.directions} → Fin n) : + IsMonotoneBooleanFunction (BooleanFunction.niche Θ endpoint left right) := by + classical + intro P Q hPQ hP + simp only [BooleanFunction.niche, decide_eq_true_eq] at hP ⊢ + obtain ⟨he, t, hl, hr⟩ := hP + exact ⟨fun s ↦ hPQ _ (he s), t, hPQ _ hl, hPQ _ hr⟩ + +private theorem independentWallNiche_eq_booleanSet {Θ : AngleSet} + (lower : PolygonHeightSpace Θ) {n : ℕ} (H : Fin n → Set Point) + (endpoint : {t : ℝ // t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)} → Fin n) + (left right : {t : ℝ // t ∈ Θ.directions} → Fin n) + (he : ∀ t, H (endpoint t) = + normalHalfPlane (t.val : Real.Angle) (polygonHeightValue lower t.val) true false) + (hl : ∀ t, H (left t) = + normalHalfPlane (t.val : Real.Angle) (polygonHeightValue lower t.val) false true) + (hr : ∀ t, H (right t) = + normalHalfPlane ((t.val + Real.pi / 2 : ℝ) : Real.Angle) + (polygonHeightValue lower (t.val + Real.pi / 2)) false true) : + independentWallNiche lower = + booleanSet (BooleanFunction.niche Θ endpoint left right) H := by + classical + ext p + simp only [independentWallNiche, Set.mem_inter_iff, Set.mem_iInter, + Set.mem_iUnion, booleanSet, Set.mem_ofPred_eq, BooleanFunction.niche, + decide_eq_true_eq, he, hl, hr] + constructor + · rintro ⟨he, t, ht, hl, hr⟩ + exact ⟨fun s ↦ he s.val s.property, ⟨t, ht⟩, hl, hr⟩ + · rintro ⟨he, t, hl, hr⟩ + exact ⟨fun s hs ↦ he ⟨s, hs⟩, t.val, t.property, hl, hr⟩ + +private theorem exists_polygonNiche_wall_indices {Θ : AngleSet} (h : PolygonHeightSpace Θ) + {n : ℕ} (H : Fin n → PlanarHalfPlaneData) + (hH : Set.range H = polygonNicheWalls h) : + ∃ (endpoint : {t : ℝ // t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)} → Fin n) + (left right : {t : ℝ // t ∈ Θ.directions} → Fin n), + (∀ t, H (endpoint t) = + ⟨(t.val : Real.Angle), polygonHeightValue h t.val - 1, true, false⟩) ∧ + (∀ t, H (left t) = + ⟨(t.val : Real.Angle), polygonHeightValue h t.val - 1, false, true⟩) ∧ + (∀ t, H (right t) = + ⟨((t.val + Real.pi / 2 : ℝ) : Real.Angle), + polygonHeightValue h (t.val + Real.pi / 2) - 1, false, true⟩) := by + classical + have hpre (W : PlanarHalfPlaneData) (hW : W ∈ polygonNicheWalls h) : + ∃ i, H i = W := by + change W ∈ Set.range H + rwa [hH] + have he (t : {t : ℝ // t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)}) : + ∃ i, H i = ⟨(t.val : Real.Angle), polygonHeightValue h t.val - 1, true, false⟩ := + hpre _ (Or.inr ⟨t.val, t.property, rfl⟩) + have hl (t : {t : ℝ // t ∈ Θ.directions}) : + ∃ i, H i = ⟨(t.val : Real.Angle), polygonHeightValue h t.val - 1, false, true⟩ := + hpre _ (Or.inl ⟨t.val, Or.inl t.property, rfl⟩) + have hr (t : {t : ℝ // t ∈ Θ.directions}) : + ∃ i, H i = ⟨((t.val + Real.pi / 2 : ℝ) : Real.Angle), + polygonHeightValue h (t.val + Real.pi / 2) - 1, false, true⟩ := + hpre _ (Or.inl ⟨t.val + Real.pi / 2, Or.inr ⟨t.val, t.property, rfl⟩, rfl⟩) + choose endpoint he using he + choose left hl using hl + choose right hr using hr + exact ⟨endpoint, left, right, he, hl, hr⟩ + +private def PlanarHalfPlaneData.moveWall (W : PlanarHalfPlaneData) (δ : ℝ) + (V : PlanarHalfPlaneData) : PlanarHalfPlaneData := by + classical + exact if V = W then {V with height := V.height + δ} else V + +private theorem perturbNefHeight_eq_moveWall {n : ℕ} (E : BooleanFunction n) + (H : Fin n → PlanarHalfPlaneData) (hH : Function.Injective H) (i : Fin n) (δ : ℝ) : + perturbNefHeight E H i δ = + booleanSet E (fun j ↦ ((H i).moveWall δ (H j)).carrier) := by + classical + unfold perturbNefHeight + congr 1 + funext j + simp only [PlanarHalfPlaneData.moveWall, hH.eq_iff] + +/-- Angles in a polygon angle domain have distinct classes modulo a full turn. -/ +theorem angleDomain_coe_injective (Θ : AngleSet) : + Function.Injective (fun t : angleDomain Θ ↦ (t.val : Real.Angle)) := by + intro s t hst + apply Subtype.ext + have hs := angleDomain_subset_Ioo Θ s.property + have ht := angleDomain_subset_Ioo Θ t.property + exact ((normalLine_eq_iff_of_mem_Ioo (c := 0) (d := 0) hs ht).mp + (congrArg (fun a ↦ normalLine a 0) hst)).1 + +private theorem polygonHeightValue_update {Θ : AngleSet} (h : PolygonHeightSpace Θ) + (t : angleDomain Θ) (δ : ℝ) (s : ℝ) (hs : s ∈ angleDomain Θ) : + polygonHeightValue (Function.update h t (h t + δ)) s = + polygonHeightValue h s + if s = t.val then δ else 0 := by + classical + by_cases hst : s = t.val + · subst s + simp [polygonHeightValue, Function.update] + · have hne : (⟨s, hs⟩ : angleDomain Θ) ≠ t := by + intro heq + exact hst (congrArg Subtype.val heq) + simp [polygonHeightValue, Function.update, hs, hst, hne] + +private theorem perturbNefHeight_cap_upper {Θ : AngleSet} (h : PolygonHeightSpace Θ) + {n : ℕ} (H : Fin n → PlanarHalfPlaneData) + (hH : Set.range H = polygonCapWalls h) (hHinj : Function.Injective H) + (i : Fin n) (t : angleDomain Θ) + (hi : H i = ⟨(t.val : Real.Angle), h t, false, false⟩) (δ : ℝ) : + perturbNefHeight (BooleanFunction.all n) H i δ = + independentWallCap (Function.update h t (h t + δ)) (fun s ↦ h s - 1) := by + classical + rw [perturbNefHeight_eq_moveWall _ _ hHinj] + symm + apply independentWallCap_eq_booleanSet h _ _ H hH + (fun W ↦ ((H i).moveWall δ W).carrier) + · intro s hs + have heq : (⟨(s : Real.Angle), polygonHeightValue h s, false, false⟩ : + PlanarHalfPlaneData) = H i ↔ s = t.val := by + rw [hi] + constructor + · intro heq + have ha := congrArg PlanarHalfPlaneData.angle heq + exact congrArg Subtype.val (angleDomain_coe_injective Θ + (a₁ := ⟨s, hs⟩) (a₂ := t) ha) + · intro hst + subst s + simp [polygonHeightValue] + simp only [PlanarHalfPlaneData.moveWall, heq, polygonHeightValue_update h t δ s hs] + split_ifs with hst + · rfl + · simp only [add_zero] + rfl + · intro s hs + have hsD : s ∈ angleDomain Θ := Or.inr hs + have hne : (⟨(s : Real.Angle), polygonHeightValue h s - 1, true, false⟩ : + PlanarHalfPlaneData) ≠ H i := by + rw [hi] + intro heq + have hb := congrArg PlanarHalfPlaneData.upper heq + cases hb + simp only [PlanarHalfPlaneData.moveWall, hne, ite_false] + simp [PlanarHalfPlaneData.carrier, polygonHeightValue, hsD] + +private theorem perturbNefHeight_cap_lower {Θ : AngleSet} (h : PolygonHeightSpace Θ) + {n : ℕ} (H : Fin n → PlanarHalfPlaneData) + (hH : Set.range H = polygonCapWalls h) (hHinj : Function.Injective H) + (i : Fin n) (t : angleDomain Θ) + (hi : H i = ⟨(t.val : Real.Angle), h t - 1, true, false⟩) (δ : ℝ) : + perturbNefHeight (BooleanFunction.all n) H i δ = + independentWallCap h (Function.update (fun s ↦ h s - 1) t (h t - 1 + δ)) := by + classical + rw [perturbNefHeight_eq_moveWall _ _ hHinj] + symm + apply independentWallCap_eq_booleanSet h _ _ H hH + (fun W ↦ ((H i).moveWall δ W).carrier) + · intro s hs + have hne : (⟨(s : Real.Angle), polygonHeightValue h s, false, false⟩ : + PlanarHalfPlaneData) ≠ H i := by + rw [hi] + intro heq + have hb := congrArg PlanarHalfPlaneData.upper heq + cases hb + simp only [PlanarHalfPlaneData.moveWall, hne, ite_false] + rfl + · intro s hs + have hsD : s ∈ angleDomain Θ := Or.inr hs + have heq : (⟨(s : Real.Angle), polygonHeightValue h s - 1, true, false⟩ : + PlanarHalfPlaneData) = H i ↔ s = t.val := by + rw [hi] + constructor + · intro heq + have ha := congrArg PlanarHalfPlaneData.angle heq + exact congrArg Subtype.val (angleDomain_coe_injective Θ + (a₁ := ⟨s, hsD⟩) (a₂ := t) ha) + · intro hst + subst s + simp [polygonHeightValue] + simp only [PlanarHalfPlaneData.moveWall, heq, + polygonHeightValue_update (fun s ↦ h s - 1) t δ s hsD] + split_ifs <;> simp [PlanarHalfPlaneData.carrier, polygonHeightValue, hsD] + +private theorem polygonCap_singleWall_uniform_bounds {Θ : AngleSet} (h : PolygonHeightSpace Θ) : + ∃ R ε₀ : ℝ, 0 < R ∧ 0 < ε₀ ∧ + ∀ (n : ℕ) (H : Fin n → PlanarHalfPlaneData), + Set.range H = polygonCapWalls h → Function.Injective H → + ∀ (i : Fin n) (t : angleDomain Θ), + (H i = ⟨(t.val : Real.Angle), h t, false, false⟩ ∨ + H i = ⟨(t.val : Real.Angle), h t - 1, true, false⟩) → + ∀ δ : ℝ, |δ| ≤ ε₀ → + perturbNefHeight (BooleanFunction.all n) H i δ ⊆ Metric.closedBall 0 R := by + classical + obtain ⟨R, ε₀, hR, hε₀, hb⟩ := polygonPerturbation_uniform_bounds Θ h + refine ⟨R, ε₀, hR, hε₀, ?_⟩ + intro n H hH hHinj i t hi δ hδ + have hupdate (f : PolygonHeightSpace Θ) : + ∀ s, |Function.update f t (f t + δ) s - f s| ≤ ε₀ := by + intro s + by_cases hst : s = t + · subst s + simpa [Function.update] using hδ + · simp [Function.update, hst, le_of_lt hε₀] + rcases hi with hi | hi + · rw [perturbNefHeight_cap_upper h H hH hHinj i t hi δ] + exact (hb _ _ (hupdate h) (by intro s; simpa using le_of_lt hε₀)).1 + · rw [perturbNefHeight_cap_lower h H hH hHinj i t hi δ] + exact (hb _ _ (by intro s; simpa using le_of_lt hε₀) + (hupdate (fun s ↦ h s - 1))).1 + +private theorem perturbNefHeight_niche {Θ : AngleSet} (h : PolygonHeightSpace Θ) + {n : ℕ} (H : Fin n → PlanarHalfPlaneData) + (hangle : Function.Injective (fun j ↦ (H j).angle)) + (endpoint : {t : ℝ // t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)} → Fin n) + (left right : {t : ℝ // t ∈ Θ.directions} → Fin n) + (he : ∀ t, H (endpoint t) = + ⟨(t.val : Real.Angle), polygonHeightValue h t.val - 1, true, false⟩) + (hl : ∀ t, H (left t) = + ⟨(t.val : Real.Angle), polygonHeightValue h t.val - 1, false, true⟩) + (hr : ∀ t, H (right t) = + ⟨((t.val + Real.pi / 2 : ℝ) : Real.Angle), + polygonHeightValue h (t.val + Real.pi / 2) - 1, false, true⟩) + (i : Fin n) (t : angleDomain Θ) (hi : (H i).angle = (t.val : Real.Angle)) (δ : ℝ) : + perturbNefHeight (BooleanFunction.niche Θ endpoint left right) H i δ = + independentWallNiche (Function.update (fun s ↦ h s - 1) t (h t - 1 + δ)) := by + classical + have hwall (j : Fin n) (s : ℝ) (hs : s ∈ angleDomain Θ) (upper strict : Bool) + (hj : H j = ⟨(s : Real.Angle), polygonHeightValue h s - 1, upper, strict⟩) : + (if j = i then {H j with height := (H j).height + δ} else H j).carrier = + normalHalfPlane (s : Real.Angle) + (polygonHeightValue (Function.update (fun s ↦ h s - 1) t (h t - 1 + δ)) s) + upper strict := by + have hji : j = i ↔ s = t.val := by + constructor + · intro hji + have ha : (s : Real.Angle) = (t.val : Real.Angle) := by + rw [← hi, ← hji, hj] + exact congrArg Subtype.val (angleDomain_coe_injective Θ + (a₁ := ⟨s, hs⟩) (a₂ := t) ha) + · intro hst + apply hangle + simp only [hj, hi, hst] + simp only [hji, hj, polygonHeightValue_update (fun s ↦ h s - 1) t δ s hs] + split_ifs <;> simp [PlanarHalfPlaneData.carrier, polygonHeightValue, hs] + unfold perturbNefHeight + symm + apply independentWallNiche_eq_booleanSet _ _ endpoint left right + · intro s + exact hwall _ s.val (Or.inr s.property) true false (he s) + · intro s + exact hwall _ s.val (Or.inl (Or.inl s.property)) false true (hl s) + · intro s + exact hwall _ (s.val + Real.pi / 2) + (Or.inl (Or.inr ⟨s.val, s.property, rfl⟩)) false true (hr s) + +private theorem exists_angle_of_mem_polygonNicheWalls {Θ : AngleSet} (h : PolygonHeightSpace Θ) + (W : PlanarHalfPlaneData) (hW : W ∈ polygonNicheWalls h) : + ∃ s : angleDomain Θ, W.angle = (s.val : Real.Angle) ∧ W.height = h s - 1 := by + rcases hW with ⟨s, hs, rfl⟩ | ⟨s, hs, rfl⟩ + · refine ⟨⟨s, Or.inl hs⟩, rfl, ?_⟩ + simp [polygonHeightValue, show s ∈ angleDomain Θ from Or.inl hs] + · refine ⟨⟨s, Or.inr hs⟩, rfl, ?_⟩ + simp [polygonHeightValue, show s ∈ angleDomain Θ from Or.inr hs] + +private theorem polygonNicheWalls_angle_injective {Θ : AngleSet} (h : PolygonHeightSpace Θ) + {n : ℕ} (H : Fin n → PlanarHalfPlaneData) + (hH : Set.range H = polygonNicheWalls h) + (hLines : Function.Injective (fun j ↦ (H j).boundaryLine)) : + Function.Injective (fun j ↦ (H j).angle) := by + intro i j hij + obtain ⟨s, hs, hsheight⟩ := exists_angle_of_mem_polygonNicheWalls h + (H i) (hH ▸ Set.mem_range_self i) + obtain ⟨t, ht, htheight⟩ := exists_angle_of_mem_polygonNicheWalls h + (H j) (hH ▸ Set.mem_range_self j) + have hst : s = t := angleDomain_coe_injective Θ (hs.symm.trans (hij.trans ht)) + apply hLines + simp only [PlanarHalfPlaneData.boundaryLine, hij, hsheight, htheight, hst] + +private theorem exists_polygonNiche_perturbation_formula {Θ : AngleSet} (h : PolygonHeightSpace Θ) + {n : ℕ} (H : Fin n → PlanarHalfPlaneData) + (hH : Set.range H = polygonNicheWalls h) + (hLines : Function.Injective (fun j ↦ (H j).boundaryLine)) : + ∃ E : BooleanFunction n, IsMonotoneBooleanFunction E ∧ + ∀ i, ∃ t : angleDomain Θ, (H i).angle = (t.val : Real.Angle) ∧ + ∀ δ : ℝ, perturbNefHeight E H i δ = + independentWallNiche (Function.update (fun s ↦ h s - 1) t (h t - 1 + δ)) := by + obtain ⟨endpoint, left, right, he, hl, hr⟩ := exists_polygonNiche_wall_indices h H hH + refine ⟨BooleanFunction.niche Θ endpoint left right, + BooleanFunction.niche_monotone Θ endpoint left right, ?_⟩ + intro i + obtain ⟨t, ht, _⟩ := exists_angle_of_mem_polygonNicheWalls h + (H i) (hH ▸ Set.mem_range_self i) + refine ⟨t, ht, fun δ ↦ ?_⟩ + exact perturbNefHeight_niche h H (polygonNicheWalls_angle_injective h H hH hLines) + endpoint left right he hl hr i t ht δ + +/-- The niche with every lower wall shifted by one is the height-defined niche. -/ +theorem independentWallNiche_sub_one {Θ : AngleSet} (h : PolygonHeightSpace Θ) : + independentWallNiche (fun s ↦ h s - 1) = polygonHeightNiche h := by + have hv (s : ℝ) (hs : s ∈ angleDomain Θ) : + polygonHeightValue (fun s ↦ h s - 1) s = polygonHeightValue h s - 1 := by + simp [polygonHeightValue, hs] + unfold independentWallNiche polygonHeightNiche polygonHeightFan + congr 1 + · apply Set.iInter_congr + intro s + apply Set.iInter_congr + intro hs + rw [hv s (Or.inr hs)] + · apply Set.iUnion_congr + intro s + apply Set.iUnion_congr + intro hs + rw [hv s (Or.inl (Or.inl hs)), + hv (s + Real.pi / 2) (Or.inl (Or.inr ⟨s, hs, rfl⟩))] + +private theorem exists_polygonNiche_stable_presentation {Θ : AngleSet} (h : PolygonHeightSpace Θ) + {n : ℕ} (H : Fin n → PlanarHalfPlaneData) + (hH : Set.range H = polygonNicheWalls h) + (hLines : Function.Injective (fun j ↦ (H j).boundaryLine)) : + ∃ (E : BooleanFunction n) (R ε₀ : ℝ), + IsMonotoneBooleanFunction E ∧ 0 < R ∧ 0 < ε₀ ∧ + polygonHeightNiche h = booleanSet E (fun j ↦ (H j).carrier) ∧ + (∀ i, ∃ t : angleDomain Θ, (H i).angle = (t.val : Real.Angle) ∧ + ∀ δ : ℝ, perturbNefHeight E H i δ = + independentWallNiche (Function.update (fun s ↦ h s - 1) t (h t - 1 + δ))) ∧ + ∀ i δ, |δ| ≤ ε₀ → perturbNefHeight E H i δ ⊆ Metric.closedBall 0 R := by + classical + obtain ⟨E, hE, htransport⟩ := exists_polygonNiche_perturbation_formula h H hH hLines + obtain ⟨R, ε₀, hR, hε₀, hb⟩ := polygonPerturbation_uniform_bounds Θ h + refine ⟨E, R, ε₀, hE, hR, hε₀, ?_, htransport, ?_⟩ + · have hW : (⟨(Θ.angle : Real.Angle), polygonHeightValue h Θ.angle - 1, + true, false⟩ : PlanarHalfPlaneData) ∈ Set.range H := by + rw [hH] + exact Or.inr ⟨Θ.angle, by simp, rfl⟩ + obtain ⟨i, _⟩ := hW + obtain ⟨t, _, ht⟩ := htransport i + have hz := ht 0 + simpa [perturbNefHeight, independentWallNiche_sub_one] using hz.symm + · intro i δ hδ + obtain ⟨t, _, ht⟩ := htransport i + rw [ht δ] + apply (hb h _ (by intro s; simpa using le_of_lt hε₀) ?_).2 + intro s + by_cases hst : s = t + · subst s + simpa [Function.update] using hδ + · simp [Function.update, hst, le_of_lt hε₀] + +end MovingSofa + +namespace MovingSofa + +/-- Quadratic area variation for any wall in a polygon-height niche presentation. -/ +theorem polygonNiche_wall_area_variation {Θ : AngleSet} (h : PolygonHeightSpace Θ) + {n : ℕ} (H : Fin n → PlanarHalfPlaneData) + (hH : Set.range H = polygonNicheWalls h) + (hLines : Function.Injective (fun j ↦ (H j).boundaryLine)) (i : Fin n) : + ∃ (t : angleDomain Θ) (C η : ℝ), (H i).angle = (t.val : Real.Angle) ∧ + 0 ≤ C ∧ 0 < η ∧ ∀ δ : ℝ, |δ| ≤ η → + |ClassicalResults.area + (independentWallNiche (Function.update (fun s ↦ h s - 1) t (h t - 1 + δ))) - + ClassicalResults.area (polygonHeightNiche h) - + (if (H i).upper then -1 else 1) * + (MeasureTheory.Measure.hausdorffMeasure 1 + (frontier (polygonHeightNiche h) ∩ (H i).boundaryLine)).toReal * δ| ≤ + C * δ ^ 2 := by + classical + obtain ⟨E, R, ε₀, hE, hR, hε₀, hbase, htransport, hbound⟩ := + exists_polygonNiche_stable_presentation h H hH hLines + obtain ⟨t, ht, hmove⟩ := htransport i + have hz : perturbNefHeight E H i 0 = polygonHeightNiche h := by + simpa [perturbNefHeight] using hbase.symm + obtain ⟨C, η, hC, hη, _, hvar⟩ := simpleNefPolygon_area_variation_signed + E H i hE hLines R ε₀ hR hε₀ (hbound i) + refine ⟨t, C, η, ht, hC, hη, ?_⟩ + intro δ hδ + have hv := hvar δ hδ + rw [hz, hmove δ] at hv + exact hv + +end MovingSofa + +namespace MovingSofa + +/-- The cap with every lower endpoint wall shifted by one is the height-defined cap. -/ +theorem independentWallCap_sub_one {Θ : AngleSet} (h : PolygonHeightSpace Θ) : + independentWallCap h (fun s ↦ h s - 1) = polygonHeightCap h := by + unfold independentWallCap polygonHeightCap polygonHeightParallelogram + congr 1 + apply Set.iInter_congr + intro s + apply Set.iInter_congr + intro hs + have hsD : s ∈ angleDomain Θ := Or.inr hs + simp [polygonHeightValue, hsD] + +/-- Quadratic area variation for one upper wall of a polygon-height cap. -/ +theorem polygonCap_upper_wall_area_variation {Θ : AngleSet} (h : PolygonHeightSpace Θ) + {n : ℕ} (H : Fin n → PlanarHalfPlaneData) + (hH : Set.range H = polygonCapWalls h) + (hLines : Function.Injective (fun j ↦ (H j).boundaryLine)) + (i : Fin n) (t : angleDomain Θ) + (hi : H i = ⟨(t.val : Real.Angle), h t, false, false⟩) : + ∃ C η : ℝ, 0 ≤ C ∧ 0 < η ∧ ∀ δ : ℝ, |δ| ≤ η → + |ClassicalResults.area + (independentWallCap (Function.update h t (h t + δ)) (fun s ↦ h s - 1)) - + ClassicalResults.area (polygonHeightCap h) - + (MeasureTheory.Measure.hausdorffMeasure 1 + (frontier (polygonHeightCap h) ∩ (H i).boundaryLine)).toReal * δ| ≤ + C * δ ^ 2 := by + classical + have hHinj : Function.Injective H := by + intro j k hjk + exact hLines (congrArg PlanarHalfPlaneData.boundaryLine hjk) + obtain ⟨R, ε₀, hR, hε₀, hbound⟩ := polygonCap_singleWall_uniform_bounds h + have hmove := perturbNefHeight_cap_upper h H hH hHinj i t hi + have hz : perturbNefHeight (BooleanFunction.all n) H i 0 = polygonHeightCap h := by + rw [hmove 0] + have hu : Function.update h t (h t + 0) = h := by + funext s + simp only [Function.update, add_zero, eq_rec_constant, dite_eq_ite, ite_eq_right_iff] + rintro rfl + rfl + rw [hu, independentWallCap_sub_one] + obtain ⟨C, η, hC, hη, _, hvar⟩ := simpleNefPolygon_area_variation + (BooleanFunction.all n) H i (BooleanFunction.all_monotone n) hLines + (by rw [hi]) R ε₀ hR hε₀ (hbound n H hH hHinj i t (Or.inl hi)) + refine ⟨C, η, hC, hη, ?_⟩ + intro δ hδ + have hv := hvar δ hδ + rw [hz, hmove δ] at hv + exact hv + +end MovingSofa + +namespace MovingSofa + +/-- Quadratic area variation for one lower endpoint wall of a polygon-height cap. -/ +theorem polygonCap_lower_wall_area_variation {Θ : AngleSet} (h : PolygonHeightSpace Θ) + {n : ℕ} (H : Fin n → PlanarHalfPlaneData) + (hH : Set.range H = polygonCapWalls h) + (hLines : Function.Injective (fun j ↦ (H j).boundaryLine)) + (i : Fin n) (t : angleDomain Θ) + (hi : H i = ⟨(t.val : Real.Angle), h t - 1, true, false⟩) : + ∃ C η : ℝ, 0 ≤ C ∧ 0 < η ∧ ∀ δ : ℝ, |δ| ≤ η → + |ClassicalResults.area + (independentWallCap h (Function.update (fun s ↦ h s - 1) t (h t - 1 + δ))) - + ClassicalResults.area (polygonHeightCap h) + + (MeasureTheory.Measure.hausdorffMeasure 1 + (frontier (polygonHeightCap h) ∩ (H i).boundaryLine)).toReal * δ| ≤ + C * δ ^ 2 := by + classical + have hHinj : Function.Injective H := by + intro j k hjk + exact hLines (congrArg PlanarHalfPlaneData.boundaryLine hjk) + obtain ⟨R, ε₀, hR, hε₀, hbound⟩ := polygonCap_singleWall_uniform_bounds h + have hmove := perturbNefHeight_cap_lower h H hH hHinj i t hi + have hz : perturbNefHeight (BooleanFunction.all n) H i 0 = polygonHeightCap h := by + simpa [independentWallCap_sub_one] using hmove 0 + obtain ⟨C, η, hC, hη, _, hvar⟩ := simpleNefPolygon_area_variation_lower + (BooleanFunction.all n) H i (BooleanFunction.all_monotone n) hLines + (by rw [hi]) R ε₀ hR hε₀ (hbound n H hH hHinj i t (Or.inr hi)) + refine ⟨C, η, hC, hη, ?_⟩ + intro δ hδ + have hv := hvar δ hδ + rw [hz, hmove δ] at hv + exact hv + +end MovingSofa + +namespace MovingSofa + +private theorem mem_independentWallCap_congr {Θ : AngleSet} + (upper upper' lower lower' : PolygonHeightSpace Θ) (p : Point) + (hu : ∀ s : angleDomain Θ, + (inner ℝ p (normalVector (s.val : Real.Angle)) ≤ upper s ↔ + inner ℝ p (normalVector (s.val : Real.Angle)) ≤ upper' s)) + (hl : ∀ s : angleDomain Θ, + (lower s ≤ inner ℝ p (normalVector (s.val : Real.Angle)) ↔ + lower' s ≤ inner ℝ p (normalVector (s.val : Real.Angle)))) : + p ∈ independentWallCap upper lower ↔ p ∈ independentWallCap upper' lower' := by + have hu' (s : ℝ) (hs : s ∈ angleDomain Θ) : + p ∈ normalHalfPlane (s : Real.Angle) (polygonHeightValue upper s) false false ↔ + p ∈ normalHalfPlane (s : Real.Angle) (polygonHeightValue upper' s) false false := by + simpa [normalHalfPlane, polygonHeightValue, hs] using hu ⟨s, hs⟩ + have hl' (s : ℝ) (hs : s ∈ angleDomain Θ) : + p ∈ normalHalfPlane (s : Real.Angle) (polygonHeightValue lower s) true false ↔ + p ∈ normalHalfPlane (s : Real.Angle) (polygonHeightValue lower' s) true false := by + simpa [normalHalfPlane, polygonHeightValue, hs] using hl ⟨s, hs⟩ + simp only [independentWallCap, Set.mem_inter_iff, Set.mem_iInter] + constructor + · rintro ⟨he, hi⟩ + exact ⟨fun s hs ↦ ⟨(hu' s (Or.inr hs)).mp (he s hs).1, + (hl' s (Or.inr hs)).mp (he s hs).2⟩, + fun s hs ↦ (hu' s (Or.inl hs)).mp (hi s hs)⟩ + · rintro ⟨he, hi⟩ + exact ⟨fun s hs ↦ ⟨(hu' s (Or.inr hs)).mpr (he s hs).1, + (hl' s (Or.inr hs)).mpr (he s hs).2⟩, + fun s hs ↦ (hu' s (Or.inl hs)).mpr (hi s hs)⟩ + +private theorem independentWallCap_indicator_update_add {Θ : AngleSet} + (h : PolygonHeightSpace Θ) (t : angleDomain Θ) (ε : ℝ) + (hε : 0 ≤ ε) (hε' : ε ≤ 1) (p : Point) : + (independentWallCap (Function.update h t (h t + ε)) + (Function.update (fun s ↦ h s - 1) t (h t - 1 + ε))).indicator + (fun _ ↦ (1 : ℝ)) p + + (independentWallCap h (fun s ↦ h s - 1)).indicator (fun _ ↦ (1 : ℝ)) p = + (independentWallCap (Function.update h t (h t + ε)) + (fun s ↦ h s - 1)).indicator (fun _ ↦ (1 : ℝ)) p + + (independentWallCap h + (Function.update (fun s ↦ h s - 1) t (h t - 1 + ε))).indicator + (fun _ ↦ (1 : ℝ)) p := by + classical + have hsplit := endpoint_wall_changes_disjoint (t.val : Real.Angle) (h t) ε hε hε' p + have hI (A B : Set Point) (hab : p ∈ A ↔ p ∈ B) : + A.indicator (fun _ ↦ (1 : ℝ)) p = B.indicator (fun _ ↦ (1 : ℝ)) p := by + by_cases ha : p ∈ A + · rw [Set.indicator_of_mem ha, Set.indicator_of_mem (hab.mp ha)] + · rw [Set.indicator_of_notMem ha, Set.indicator_of_notMem (fun hb ↦ ha (hab.mpr hb))] + change (_ ↔ _) ∨ (_ ↔ _) at hsplit + rcases hsplit with hu | hl + · have hu' (s : angleDomain Θ) : + inner ℝ p (normalVector (s.val : Real.Angle)) ≤ Function.update h t (h t + ε) s ↔ + inner ℝ p (normalVector (s.val : Real.Angle)) ≤ h s := by + by_cases hst : s = t + · subst s + simpa [Function.update, normalHalfPlane] using hu + · simp [Function.update, hst] + have heq (lower : PolygonHeightSpace Θ) := + mem_independentWallCap_congr (Function.update h t (h t + ε)) h lower lower p + hu' (fun _ ↦ Iff.rfl) + exact (congrArg₂ (fun a b : ℝ ↦ a + b) + (hI _ _ (heq (Function.update (fun s ↦ h s - 1) t (h t - 1 + ε)))) rfl).trans + ((add_comm _ _).trans (congrArg₂ (fun a b : ℝ ↦ a + b) + (hI _ _ (heq (fun s ↦ h s - 1))).symm rfl)) + · have hl' (s : angleDomain Θ) : + Function.update (fun s ↦ h s - 1) t (h t - 1 + ε) s ≤ + inner ℝ p (normalVector (s.val : Real.Angle)) ↔ + h s - 1 ≤ inner ℝ p (normalVector (s.val : Real.Angle)) := by + by_cases hst : s = t + · subst s + simpa [Function.update, normalHalfPlane] using hl + · simp [Function.update, hst] + have heq (upper : PolygonHeightSpace Θ) := + mem_independentWallCap_congr upper upper + (Function.update (fun s ↦ h s - 1) t (h t - 1 + ε)) (fun s ↦ h s - 1) p + (fun _ ↦ Iff.rfl) hl' + exact congrArg₂ (fun a b : ℝ ↦ a + b) + (hI _ _ (heq (Function.update h t (h t + ε)))) (hI _ _ (heq h)).symm + +end MovingSofa + +namespace MovingSofa + +private theorem isClosed_independentWallCap {Θ : AngleSet} (upper lower : PolygonHeightSpace Θ) : + IsClosed (independentWallCap upper lower) := by + have hu (a : Real.Angle) (c : ℝ) : IsClosed (normalHalfPlane a c false false) := + isClosed_le (by fun_prop) continuous_const + have hl (a : Real.Angle) (c : ℝ) : IsClosed (normalHalfPlane a c true false) := + isClosed_le continuous_const (by fun_prop) + unfold independentWallCap + exact (isClosed_iInter fun s ↦ isClosed_iInter fun _ ↦ (hu _ _).inter (hl _ _)).inter + (isClosed_iInter fun s ↦ isClosed_iInter fun _ ↦ hu _ _) + +/-- Simultaneous endpoint-wall variation is the sum of the two independent variations. -/ +theorem independentWallCap_area_update_add {Θ : AngleSet} + (h : PolygonHeightSpace Θ) (t : angleDomain Θ) (ε R : ℝ) + (hε : 0 ≤ ε) (hε' : ε ≤ 1) + (hbound : ∀ (upper lower : PolygonHeightSpace Θ), + (upper = h ∨ upper = Function.update h t (h t + ε)) → + (lower = (fun s ↦ h s - 1) ∨ + lower = Function.update (fun s ↦ h s - 1) t (h t - 1 + ε)) → + independentWallCap upper lower ⊆ Metric.closedBall 0 R) : + ClassicalResults.area (independentWallCap (Function.update h t (h t + ε)) + (Function.update (fun s ↦ h s - 1) t (h t - 1 + ε))) + + ClassicalResults.area (independentWallCap h (fun s ↦ h s - 1)) = + ClassicalResults.area (independentWallCap (Function.update h t (h t + ε)) + (fun s ↦ h s - 1)) + + ClassicalResults.area (independentWallCap h + (Function.update (fun s ↦ h s - 1) t (h t - 1 + ε))) := by + have hf (upper lower : PolygonHeightSpace Θ) + (hu : upper = h ∨ upper = Function.update h t (h t + ε)) + (hl : lower = (fun s ↦ h s - 1) ∨ + lower = Function.update (fun s ↦ h s - 1) t (h t - 1 + ε)) : + MeasureTheory.volume (independentWallCap upper lower) ≠ ⊤ := + ne_of_lt (lt_of_le_of_lt (MeasureTheory.measure_mono (hbound upper lower hu hl)) + MeasureTheory.measure_closedBall_lt_top) + apply area_add_of_indicator_add_eq + · exact (isClosed_independentWallCap _ _).measurableSet + · exact (isClosed_independentWallCap _ _).measurableSet + · exact (isClosed_independentWallCap _ _).measurableSet + · exact (isClosed_independentWallCap _ _).measurableSet + · exact hf _ _ (Or.inr rfl) (Or.inr rfl) + · exact hf _ _ (Or.inl rfl) (Or.inl rfl) + · exact hf _ _ (Or.inr rfl) (Or.inl rfl) + · exact hf _ _ (Or.inl rfl) (Or.inr rfl) + · exact independentWallCap_indicator_update_add h t ε hε hε' + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Right Angle Grid +-/ + +@[expose] public section + +noncomputable section + +open Set MeasureTheory + +namespace MovingSofa + +/-- Directions in the right-angle grid are positive integer multiples of its step size. -/ +theorem mem_rightAngleSet_directions_iff (n : ℕ) (hn : 2 ≤ n) (t : ℝ) : + t ∈ (rightAngleSet n hn).directions ↔ + ∃ i : ℕ, i ∈ Finset.Ioo 0 n ∧ t = i * polygonStepSize n := by + simp only [rightAngleSet, uniformAngleSet, Finset.mem_image] + constructor + · rintro ⟨i, hi, rfl⟩ + refine ⟨i, hi, ?_⟩ + simp only [polygonStepSize] + ring + · rintro ⟨i, hi, rfl⟩ + refine ⟨i, hi, ?_⟩ + simp only [polygonStepSize] + ring + +/-- No grid direction lies strictly between the predecessor of a grid point and the point. -/ +theorem rightAngleSet_direction_le_pred_or_ge (n : ℕ) (hn : 2 ≤ n) {r t : ℝ} + (hr : r ∈ (rightAngleSet n hn).directions) + (ht : t ∈ (rightAngleSet n hn).directions) : + r ≤ t - polygonStepSize n ∨ t ≤ r := by + obtain ⟨j, hj, rfl⟩ := (mem_rightAngleSet_directions_iff n hn r).mp hr + obtain ⟨i, hi, rfl⟩ := (mem_rightAngleSet_directions_iff n hn t).mp ht + have hnpos : (0 : ℝ) < n := by positivity + have hδ : 0 < polygonStepSize n := by simp only [polygonStepSize]; positivity + by_cases hji : j < i + · left + have hnat : j + 1 ≤ i := hji + have hcast : (j : ℝ) + 1 ≤ (i : ℝ) := by exact_mod_cast hnat + nlinarith + · right + have hij : i ≤ j := Nat.le_of_not_gt hji + exact mul_le_mul_of_nonneg_right (by exact_mod_cast hij) hδ.le + +/-- No grid direction lies strictly between a grid point and its successor. -/ +theorem rightAngleSet_direction_le_or_succ_le (n : ℕ) (hn : 2 ≤ n) {r t : ℝ} + (hr : r ∈ (rightAngleSet n hn).directions) + (ht : t ∈ (rightAngleSet n hn).directions) : + r ≤ t ∨ t + polygonStepSize n ≤ r := by + obtain ⟨j, hj, rfl⟩ := (mem_rightAngleSet_directions_iff n hn r).mp hr + obtain ⟨i, hi, rfl⟩ := (mem_rightAngleSet_directions_iff n hn t).mp ht + have hδ : 0 < polygonStepSize n := by simp only [polygonStepSize]; positivity + by_cases hji : j ≤ i + · left + exact mul_le_mul_of_nonneg_right (by exact_mod_cast hji) hδ.le + · right + have hcast : (i : ℝ) + 1 ≤ (j : ℝ) := by + exact_mod_cast (Nat.add_one_le_iff.mpr (Nat.lt_of_not_ge hji)) + nlinarith + +/-- Every interior grid direction stays at least one step from both endpoints. -/ +theorem rightAngleSet_direction_bounds (n : ℕ) (hn : 2 ≤ n) {t : ℝ} + (ht : t ∈ (rightAngleSet n hn).directions) : + polygonStepSize n ≤ t ∧ t ≤ Real.pi / 2 - polygonStepSize n := by + obtain ⟨i, hi, rfl⟩ := (mem_rightAngleSet_directions_iff n hn t).mp ht + obtain ⟨hi0, hin⟩ := Finset.mem_Ioo.mp hi + have hnpos : (0 : ℝ) < n := by positivity + have hδ : 0 < polygonStepSize n := by simp only [polygonStepSize]; positivity + have hi1 : (1 : ℝ) ≤ i := by exact_mod_cast hi0 + have hin1 : (i : ℝ) + 1 ≤ n := by exact_mod_cast hin + constructor + · simpa only [one_mul] using mul_le_mul_of_nonneg_right hi1 hδ.le + · have hstep : (n : ℝ) * polygonStepSize n = Real.pi / 2 := by + simp only [polygonStepSize] + field_simp + nlinarith + +/-- The two lower normals of a right-angle polygon cap coincide at `3π/2`. -/ +theorem rightAngle_polygon_normals_eq (n : ℕ) (hn : 2 ≤ n) : + ((fun r : ℝ ↦ (r : Real.Angle)) '' angleDomain (rightAngleSet n hn)) ∪ + capLowerNormals (rightAngleSet n hn).angle = + (fun r : ℝ ↦ (r : Real.Angle)) '' + (angleDomain (rightAngleSet n hn) ∪ {3 * Real.pi / 2}) := by + ext a + simp only [Set.mem_union, Set.mem_image, Set.mem_singleton_iff] + constructor + · rintro (⟨r, hr, rfl⟩ | ha) + · exact ⟨r, Or.inl hr, rfl⟩ + · simp only [capLowerNormals, rightAngleSet, uniformAngleSet, + Set.mem_insert_iff] at ha + rcases ha with ha | ha + · subst a + refine ⟨3 * Real.pi / 2, Or.inr rfl, ?_⟩ + congr 1 + ring + · subst a + exact ⟨3 * Real.pi / 2, Or.inr rfl, rfl⟩ + · rintro ⟨r, hr | rfl, rfl⟩ + · exact Or.inl ⟨r, hr, rfl⟩ + · right + simp [capLowerNormals, rightAngleSet, uniformAngleSet] + +/-- The predecessor of a right-angle grid direction is zero or again a grid direction. -/ +theorem rightAngleSet_sub_step (n : ℕ) (hn : 2 ≤ n) {t : ℝ} + (ht : t ∈ (rightAngleSet n hn).directions) : + t - polygonStepSize n = 0 ∨ + t - polygonStepSize n ∈ (rightAngleSet n hn).directions := by + obtain ⟨i, hi, rfl⟩ := (mem_rightAngleSet_directions_iff n hn t).mp ht + obtain ⟨hi0, hin⟩ := Finset.mem_Ioo.mp hi + by_cases hi1 : i = 1 + · left + subst hi1 + push_cast + ring + · right + refine (mem_rightAngleSet_directions_iff n hn _).mpr ⟨i - 1, Finset.mem_Ioo.mpr ⟨?_, ?_⟩, ?_⟩ + · omega + · omega + · rw [Nat.cast_sub (by omega)] + push_cast + ring + +/-- The successor of a right-angle grid direction is the terminal angle or a grid direction. -/ +theorem rightAngleSet_add_step (n : ℕ) (hn : 2 ≤ n) {t : ℝ} + (ht : t ∈ (rightAngleSet n hn).directions) : + t + polygonStepSize n = Real.pi / 2 ∨ + t + polygonStepSize n ∈ (rightAngleSet n hn).directions := by + obtain ⟨i, hi, rfl⟩ := (mem_rightAngleSet_directions_iff n hn t).mp ht + obtain ⟨hi0, hin⟩ := Finset.mem_Ioo.mp hi + have hn0 : (n : ℝ) ≠ 0 := by positivity + by_cases hi1 : i + 1 = n + · left + have : ((i : ℝ) + 1) = (n : ℝ) := by exact_mod_cast congrArg (fun m : ℕ ↦ (m : ℝ)) hi1 + simp only [polygonStepSize] + field_simp + linarith [this] + · right + refine (mem_rightAngleSet_directions_iff n hn _).mpr ⟨i + 1, Finset.mem_Ioo.mpr ⟨?_, ?_⟩, ?_⟩ + · omega + · omega + · push_cast + ring + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Translation +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem polygonCapTranslate_iff (Θ : AngleSet) (K : ConvexBody Point) : + (∃ K' : PolygonCapTranslateSpace Θ, K'.val = (K : Set Point)) ↔ + (supportValue K (Θ.angle : Real.Angle) + + supportValue K ((Θ.angle + Real.pi : ℝ) : Real.Angle) = 1) ∧ + (supportValue K ((Real.pi / 2 : ℝ) : Real.Angle) + + supportValue K ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 1) ∧ + ∃ constraints : Set (Real.Angle × ℝ), constraints.Finite ∧ + (∀ c ∈ constraints, c.1 ∈ + ((fun t : ℝ ↦ (t : Real.Angle)) '' angleDomain Θ) ∪ capLowerNormals Θ.angle) ∧ + (K : Set Point) = ⋂ c ∈ constraints, normalHalfPlane c.1 c.2 false false := by + classical + let N : Set Real.Angle := + ((fun t : ℝ ↦ (t : Real.Angle)) '' angleDomain Θ) ∪ capLowerNormals Θ.angle + have hNfinite : N.Finite := by + apply Set.Finite.union + · apply Set.Finite.image + simp only [angleDomain] + exact ((Θ.directions.finite_toSet.union + (Θ.directions.finite_toSet.image (fun t : ℝ ↦ t + Real.pi / 2))).union + ((Set.finite_singleton (Real.pi / 2)).insert Θ.angle)) + · simp [capLowerNormals] + constructor + · rintro ⟨K', hK'eq⟩ + obtain ⟨P, q, hPq⟩ := K'.property + have hKeq : (K : Set Point) = (fun p ↦ p + q) '' (P.val.val : Set Point) := by + rw [← hK'eq, hPq] + have hsupp (t : Real.Angle) : + supportValue K t = supportValue P.val.val t + inner ℝ q (normalVector t) := by + rw [show (K : Set Point) = (ConvexBody.translate P.val.val q : Set Point) from hKeq] + exact supportValue_image_add P.val.val q t + have hopen := P.val.property + refine ⟨?_, ?_, ?_⟩ + · rw [hsupp, hsupp, hopen.2.2.1, hopen.2.2.2.2.1, normalVector_add_pi] + simp only [inner_neg_right] + ring + · have hang : (((Real.pi / 2 + Real.pi : ℝ) : Real.Angle)) = + ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + congr 1 + ring + rw [hsupp] + rw [← hang] + rw [hsupp, hopen.2.2.2.1] + rw [show supportValue P.val.val (((Real.pi / 2 + Real.pi : ℝ) : Real.Angle)) = 0 by + rw [hang]; exact hopen.2.2.2.2.2.1] + rw [normalVector_add_pi] + simp only [inner_neg_right] + ring + · have hrepr : HasHalfPlaneRepresentation K N := by + rw [show (K : Set Point) = (ConvexBody.translate P.val.val q : Set Point) from hKeq] + exact P.property.translate q + exact hrepr.finite_constraints hNfinite + · rintro ⟨hwidthω, hwidthT, C, hCfinite, hCN, hKC⟩ + let v : Point := if h : Θ.angle = Real.pi / 2 then + !₂[0, 1 - supportValue K ((Real.pi / 2 : ℝ) : Real.Angle)] + else + !₂[(1 - supportValue K (Θ.angle : Real.Angle) - + (1 - supportValue K ((Real.pi / 2 : ℝ) : Real.Angle)) * Real.sin Θ.angle) / + Real.cos Θ.angle, + 1 - supportValue K ((Real.pi / 2 : ℝ) : Real.Angle)] + have hvT : inner ℝ v (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = + 1 - supportValue K ((Real.pi / 2 : ℝ) : Real.Angle) := by + by_cases h : Θ.angle = Real.pi / 2 + · simp [v, h, normalVector, frame, PiLp.inner_apply] + · simp [v, h, normalVector, frame, PiLp.inner_apply] + have hvω : inner ℝ v (normalVector (Θ.angle : Real.Angle)) = + 1 - supportValue K (Θ.angle : Real.Angle) := by + by_cases h : Θ.angle = Real.pi / 2 + · simpa [h] using hvT + · have hlt : Θ.angle < Real.pi / 2 := lt_of_le_of_ne Θ.angle_le h + have hcos : Real.cos Θ.angle ≠ 0 := (Real.cos_pos_of_mem_Ioo + ⟨lt_trans (neg_neg_of_pos (by positivity : 0 < Real.pi / 2)) Θ.angle_pos, + hlt⟩).ne' + simp [v, h, normalVector, frame, PiLp.inner_apply] + field_simp [hcos] + ring + let L := ConvexBody.translate K v + have hsupp (t : Real.Angle) : + supportValue L t = supportValue K t + inner ℝ v (normalVector t) := + supportValue_image_add K v t + have htopω : supportValue L (Θ.angle : Real.Angle) = 1 := by + rw [hsupp, hvω] + ring + have htopT : supportValue L ((Real.pi / 2 : ℝ) : Real.Angle) = 1 := by + rw [hsupp, hvT] + ring + have hbotω : supportValue L ((Θ.angle + Real.pi : ℝ) : Real.Angle) = 0 := by + rw [hsupp, normalVector_add_pi, inner_neg_right] + rw [hvω] + linarith + have hang : (((Real.pi / 2 + Real.pi : ℝ) : Real.Angle)) = + ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + congr 1 + ring + have hbotT : supportValue L ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 := by + rw [← hang, hsupp, normalVector_add_pi, inner_neg_right] + rw [hang, hvT] + linarith + have hKrepr : HasHalfPlaneRepresentation K N := ⟨C, hCN, hKC⟩ + have hLrepr : HasHalfPlaneRepresentation L N := hKrepr.translate v + have hangleDomain : angleDomain Θ ⊆ capUpperAngles Θ.angle := by + rintro t ((ht | ⟨s, hs, rfl⟩) | ht) + · left + exact ⟨(Θ.interior t ht).1.le, (Θ.interior t ht).2.le⟩ + · right + constructor <;> linarith [(Θ.interior s hs).1, (Θ.interior s hs).2] + · rcases ht with (rfl | rfl) + · exact Or.inl ⟨Θ.angle_pos.le, le_rfl⟩ + · exact Or.inr ⟨le_rfl, le_add_of_nonneg_left Θ.angle_pos.le⟩ + have hNsubset : N ⊆ + ((fun t : ℝ ↦ (t : Real.Angle)) '' capUpperAngles Θ.angle) ∪ + capLowerNormals Θ.angle := by + rintro t (ht | ht) + · obtain ⟨s, hs, rfl⟩ := ht + exact Or.inl ⟨s, hangleDomain hs, rfl⟩ + · exact Or.inr ht + have hLcapRepr : HasHalfPlaneRepresentation L + (((fun t : ℝ ↦ (t : Real.Angle)) '' capUpperAngles Θ.angle) ∪ + capLowerNormals Θ.angle) := by + obtain ⟨D, hDN, hLD⟩ := hLrepr + exact ⟨D, fun c hc ↦ hNsubset (hDN c hc), hLD⟩ + have hLcap : IsCap Θ.angle L := + ⟨Θ.angle_pos, Θ.angle_le, htopω, htopT, hbotω, hbotT, hLcapRepr⟩ + let P : PolygonCapSpace Θ := ⟨⟨L, hLcap⟩, hLrepr⟩ + refine ⟨⟨(K : Set Point), ?_⟩, rfl⟩ + refine ⟨P, -v, ?_⟩ + ext x + constructor + · intro hx + exact ⟨x + v, ⟨x, hx, rfl⟩, by simp⟩ + · rintro ⟨_, ⟨y, hy, rfl⟩, rfl⟩ + simpa using hy + +theorem polygonHeightArea_le_translateArea {Θ : AngleSet} (h : PolygonHeightSpace Θ) + (K : PolygonCapTranslateSpace Θ) (hK : polygonHeightCap h = K.val) : + polygonHeightArea h ≤ (polygonTranslateExtensions K).2 := by + obtain ⟨P, q, hPq⟩ := K.property + let C := ConvexBody.translate P.val.val q + have hC : (C : Set Point) = K.val := hPq.symm + have hBody : polygonHeightCap h = (C : Set Point) := hK.trans hC.symm + have hw := (polygonCapTranslate_iff Θ C).1 ⟨K, hC.symm⟩ + let g := polygonTranslateHeight K + have hle : ∀ t, g t ≤ h t := by + intro t + change supportValue K.val (t.val : Real.Angle) ≤ h t + rw [← hC] + simpa only [polygonHeightValue, dite_eq_left t.property] using + supportValue_le_polygonHeightValue h C hBody t.property + have heq : ∀ t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + polygonHeightValue g t = polygonHeightValue h t := by + intro t ht + have htD : t ∈ angleDomain Θ := Or.inr ht + have hg : polygonHeightValue g t = supportValue C (t : Real.Angle) := by + simp only [g, polygonTranslateHeight, polygonHeightValue, dite_eq_left htD] + rw [hC] + rw [hg] + apply supportValue_eq_polygonHeightValue_of_width_one h C hBody ht + rcases ht with rfl | ht + · exact hw.1 + · have ht : t = Real.pi / 2 := ht + subst t + simpa only [show Real.pi / 2 + Real.pi = 3 * Real.pi / 2 by ring] using hw.2.1 + have hsub := polygonHeightNiche_mono_of_eq_endpoints hle heq + have harea : ClassicalResults.area (polygonHeightNiche g) ≤ + ClassicalResults.area (polygonHeightNiche h) := by + apply ENNReal.toReal_mono (isBounded_polygonHeightNiche h).measure_lt_top.ne + exact MeasureTheory.measure_mono hsub + change ClassicalResults.area (polygonHeightCap h) - + ClassicalResults.area (polygonHeightNiche h) ≤ + ClassicalResults.area (polygonHeightCap g) - ClassicalResults.area (polygonHeightNiche g) + rw [hK, polygonHeightCap_of_translate K] + exact sub_le_sub_left harea _ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Height / Reconstruction +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +private theorem isClosed_polygonHeightCap {Θ : AngleSet} (h : PolygonHeightSpace Θ) : + IsClosed (polygonHeightCap h) := by + unfold polygonHeightCap polygonHeightParallelogram + apply IsClosed.inter + · exact isClosed_iInter fun t ↦ isClosed_iInter fun _ ↦ + (isClosed_normalHalfPlane _ _ false).inter (isClosed_normalHalfPlane _ _ true) + · exact isClosed_iInter fun t ↦ isClosed_iInter fun _ ↦ + isClosed_normalHalfPlane _ _ false + +private theorem convex_polygonHeightCap {Θ : AngleSet} (h : PolygonHeightSpace Θ) : + Convex ℝ (polygonHeightCap h) := by + unfold polygonHeightCap polygonHeightParallelogram + apply Convex.inter + · exact convex_iInter fun t ↦ convex_iInter fun _ ↦ + (convex_normalHalfPlane _ _ false).inter (convex_normalHalfPlane _ _ true) + · exact convex_iInter fun t ↦ convex_iInter fun _ ↦ + convex_normalHalfPlane _ _ false + +private theorem normalHalfPlane_upper_eq_lower_add_pi (t c : ℝ) : + normalHalfPlane (t : Real.Angle) c true false = + normalHalfPlane ((t + Real.pi : ℝ) : Real.Angle) (-c) false false := by + ext p + change c ≤ inner ℝ p (normalVector (t : Real.Angle)) ↔ + inner ℝ p (normalVector ((t + Real.pi : ℝ) : Real.Angle)) ≤ -c + rw [normalVector_add_pi, inner_neg_right] + constructor <;> intro h <;> linarith + +private theorem polygonHeightCap_halfPlaneRepresentation {Θ : AngleSet} + (h : PolygonHeightSpace Θ) : + HasHalfPlaneRepresentation (polygonHeightCap h) + (((fun t : ℝ ↦ (t : Real.Angle)) '' angleDomain Θ) ∪ capLowerNormals Θ.angle) := by + let C : Set (Real.Angle × ℝ) := + ((fun t : ℝ ↦ ((t : Real.Angle), polygonHeightValue h t)) '' angleDomain Θ) ∪ + ((fun t : ℝ ↦ (((t + Real.pi : ℝ) : Real.Angle), + -(polygonHeightValue h t - 1))) '' ({Θ.angle, Real.pi / 2} : Set ℝ)) + refine ⟨C, ?_, ?_⟩ + · rintro c (⟨t, ht, rfl⟩ | ⟨t, ht, rfl⟩) + · exact Or.inl ⟨t, ht, rfl⟩ + · right + rcases ht with rfl | rfl + · exact Or.inl rfl + · change (((Real.pi / 2 + Real.pi : ℝ) : Real.Angle)) ∈ capLowerNormals Θ.angle + rw [show Real.pi / 2 + Real.pi = 3 * Real.pi / 2 by ring] + simp [capLowerNormals] + · ext p + simp only [polygonHeightCap, polygonHeightParallelogram, Set.mem_inter_iff, + Set.mem_iInter, C, Set.mem_union, Set.mem_image] + constructor + · rintro ⟨hendpoint, hinterior⟩ c (⟨t, ht, rfl⟩ | ⟨t, ht, rfl⟩) + · rcases ht with (ht | ht) | ht + · exact (hinterior t (Or.inl ht)) + · obtain ⟨s, hs, rfl⟩ := ht + exact hinterior (s + Real.pi / 2) (Or.inr ⟨s, hs, rfl⟩) + · exact (hendpoint t ht).1 + · rw [← normalHalfPlane_upper_eq_lower_add_pi] + exact (hendpoint t ht).2 + · intro hall + constructor + · intro t ht + constructor + · exact hall ((t : Real.Angle), polygonHeightValue h t) + (Or.inl ⟨t, Or.inr ht, rfl⟩) + · rw [normalHalfPlane_upper_eq_lower_add_pi] + exact hall (((t + Real.pi : ℝ) : Real.Angle), -(polygonHeightValue h t - 1)) + (Or.inr ⟨t, ht, rfl⟩) + · intro t ht + exact hall ((t : Real.Angle), polygonHeightValue h t) + (Or.inl ⟨t, Or.inl ht, rfl⟩) + +private theorem polygonHeightCap_upper_bound {Θ : AngleSet} (h : PolygonHeightSpace Θ) + {p : Point} (hp : p ∈ polygonHeightCap h) {t : ℝ} (ht : t ∈ angleDomain Θ) : + inner ℝ p (normalVector (t : Real.Angle)) ≤ polygonHeightValue h t := by + exact polygonHeightCap_subset_normalHalfPlane h ht hp + +private theorem polygonHeightCap_lower_bound {Θ : AngleSet} (h : PolygonHeightSpace Θ) + {p : Point} (hp : p ∈ polygonHeightCap h) {t : ℝ} + (ht : t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + polygonHeightValue h t - 1 ≤ inner ℝ p (normalVector (t : Real.Angle)) := by + change p ∈ polygonHeightParallelogram h ∩ _ at hp + exact (Set.mem_iInter.mp (Set.mem_iInter.mp hp.1 t) ht).2 + +/-- Attainment of both endpoint strip bounds reconstructs a translated polygon cap. -/ +theorem exists_polygonCapTranslate_eq_polygonHeightCap {Θ : AngleSet} + (h : PolygonHeightSpace Θ) + (hbounded : Bornology.IsBounded (polygonHeightCap h)) + (hupper : ∀ t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + ∃ p ∈ polygonHeightCap h, + inner ℝ p (normalVector (t : Real.Angle)) = polygonHeightValue h t) + (hlower : ∀ t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + ∃ p ∈ polygonHeightCap h, + inner ℝ p (normalVector (t : Real.Angle)) = polygonHeightValue h t - 1) : + ∃ K' : PolygonCapTranslateSpace Θ, K'.val = polygonHeightCap h := by + obtain ⟨p, hp, _⟩ := hupper (Real.pi / 2) (by simp) + let L : ConvexBody Point := { + carrier := polygonHeightCap h + convex' := convex_polygonHeightCap h + isCompact' := Metric.isCompact_iff_isClosed_bounded.mpr + ⟨isClosed_polygonHeightCap h, hbounded⟩ + nonempty' := ⟨p, hp⟩ } + have hsuppUpper (t : ℝ) (ht : t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + supportValue L (t : Real.Angle) = polygonHeightValue h t := by + obtain ⟨q, hq, hqeq⟩ := hupper t ht + apply le_antisymm + · apply supportValue_le_of_subset_normalHalfPlane + intro x hx + exact polygonHeightCap_upper_bound h hx (Or.inr ht) + · simpa only [hqeq] using inner_le_supportValue L hq (t : Real.Angle) + have hsuppLower (t : ℝ) (ht : t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + supportValue L ((t + Real.pi : ℝ) : Real.Angle) = + -(polygonHeightValue h t - 1) := by + obtain ⟨q, hq, hqeq⟩ := hlower t ht + apply le_antisymm + · apply supportValue_le_of_subset_normalHalfPlane + intro x hx + change inner ℝ x (normalVector ((t + Real.pi : ℝ) : Real.Angle)) ≤ + -(polygonHeightValue h t - 1) + rw [normalVector_add_pi, inner_neg_right] + exact neg_le_neg (polygonHeightCap_lower_bound h hx ht) + · have hle := inner_le_supportValue L hq ((t + Real.pi : ℝ) : Real.Angle) + rw [normalVector_add_pi, inner_neg_right, hqeq] at hle + exact hle + have hwidthω : supportValue L (Θ.angle : Real.Angle) + + supportValue L ((Θ.angle + Real.pi : ℝ) : Real.Angle) = 1 := by + rw [hsuppUpper Θ.angle (by simp), hsuppLower Θ.angle (by simp)] + ring + have hangle : (((Real.pi / 2 + Real.pi : ℝ) : Real.Angle)) = + ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + congr 1 + ring + have hwidthT : supportValue L ((Real.pi / 2 : ℝ) : Real.Angle) + + supportValue L ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 1 := by + rw [← hangle, hsuppUpper (Real.pi / 2) (by simp), + hsuppLower (Real.pi / 2) (by simp)] + ring + have hdomain : (angleDomain Θ).Finite := by + unfold angleDomain + exact (Θ.directions.finite_toSet.union + (Θ.directions.finite_toSet.image (fun t : ℝ ↦ t + Real.pi / 2))).union + (Set.finite_singleton (Real.pi / 2) |>.insert Θ.angle) + have hlowerNormals : (capLowerNormals Θ.angle).Finite := by + simp [capLowerNormals] + have hrepr : HasHalfPlaneRepresentation (L : Set Point) + (((fun t : ℝ ↦ (t : Real.Angle)) '' angleDomain Θ) ∪ capLowerNormals Θ.angle) := by + exact polygonHeightCap_halfPlaneRepresentation h + obtain ⟨C, hCfinite, hCN, hLC⟩ := + hrepr.finite_constraints + (hdomain.image _ |>.union hlowerNormals) + exact (polygonCapTranslate_iff Θ L).mpr + ⟨hwidthω, hwidthT, C, hCfinite, hCN, hLC⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Height / Positive Increment / Contacts +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +private theorem polygonHeightValue_raisedPolygonSupport {Θ : AngleSet} + (K : PolygonCapSpace Θ) (t : angleDomain Θ) (ε : ℝ) {s : ℝ} + (hs : s ∈ angleDomain Θ) : + polygonHeightValue (raisedPolygonSupport K t ε) s = + supportValue K.val.val (s : Real.Angle) + + if (⟨s, hs⟩ : angleDomain Θ) = t then ε else 0 := by + simp [polygonHeightValue, raisedPolygonSupport, hs] + +private theorem mem_polygonHeightCap_raised_of_mem_of_not_endpoint {Θ : AngleSet} + (K : PolygonCapSpace Θ) (t : angleDomain Θ) {ε : ℝ} (hε : 0 ≤ ε) + (ht : t.val ∉ ({Θ.angle, Real.pi / 2} : Set ℝ)) {p : Point} + (hp : p ∈ (K.val.val : Set Point)) : + p ∈ polygonHeightCap (raisedPolygonSupport K t ε) := by + have hupper (s : ℝ) (hs : s ∈ angleDomain Θ) : + inner ℝ p (normalVector (s : Real.Angle)) ≤ + polygonHeightValue (raisedPolygonSupport K t ε) s := by + rw [polygonHeightValue_raisedPolygonSupport K t ε hs] + exact (inner_le_supportValue K.val.val hp _).trans + (le_add_of_nonneg_right (by split_ifs <;> positivity)) + unfold polygonHeightCap polygonHeightParallelogram + simp only [Set.mem_inter_iff, Set.mem_iInter] + constructor + · intro s hs + constructor + · exact hupper s (Or.inr hs) + · change polygonHeightValue (raisedPolygonSupport K t ε) s - 1 ≤ + inner ℝ p (normalVector (s : Real.Angle)) + rw [polygonHeightValue_raisedPolygonSupport K t ε (Or.inr hs)] + have hne : (⟨s, Or.inr hs⟩ : angleDomain Θ) ≠ t := by + intro heq + apply ht + have hval : s = t.val := congrArg Subtype.val heq + simpa [← hval] using hs + rw [ite_eq_right hne] + simp only [add_zero] + rcases hs with rfl | rfl + · have hlower := inner_le_supportValue K.val.val hp + ((Θ.angle + Real.pi : ℝ) : Real.Angle) + rw [K.val.property.2.2.2.2.1, normalVector_add_pi, inner_neg_right] at hlower + rw [K.val.property.2.2.1] + linarith + · have hlower := inner_le_supportValue K.val.val hp + ((3 * Real.pi / 2 : ℝ) : Real.Angle) + rw [K.val.property.2.2.2.2.2.1, inner_normalVector_three_pi_div_two] at hlower + rw [K.val.property.2.2.2.1] + simpa [normalVector, frame, PiLp.inner_apply] using hlower + · intro s hs + exact hupper s (Or.inl hs) + +private theorem raisedPolygonSupport_endpoint_contacts_of_not_endpoint {Θ : AngleSet} + (K : PolygonCapSpace Θ) (t : angleDomain Θ) {ε : ℝ} (hε : 0 ≤ ε) + (ht : t.val ∉ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + (∀ s ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + ∃ p ∈ polygonHeightCap (raisedPolygonSupport K t ε), + inner ℝ p (normalVector (s : Real.Angle)) = + polygonHeightValue (raisedPolygonSupport K t ε) s) ∧ + (∀ s ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + ∃ p ∈ polygonHeightCap (raisedPolygonSupport K t ε), + inner ℝ p (normalVector (s : Real.Angle)) = + polygonHeightValue (raisedPolygonSupport K t ε) s - 1) := by + have hne (s : ℝ) (hs : s ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + (⟨s, Or.inr hs⟩ : angleDomain Θ) ≠ t := by + intro heq + apply ht + have hval : s = t.val := congrArg Subtype.val heq + simpa [← hval] using hs + have hvalue (s : ℝ) (hs : s ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + polygonHeightValue (raisedPolygonSupport K t ε) s = + supportValue K.val.val (s : Real.Angle) := by + rw [polygonHeightValue_raisedPolygonSupport K t ε (Or.inr hs), ite_eq_right (hne s hs), + add_zero] + constructor + · intro s hs + obtain ⟨p, hp, hpinner⟩ := exists_mem_inner_eq_supportValue K.val.val + (s : Real.Angle) + exact ⟨p, mem_polygonHeightCap_raised_of_mem_of_not_endpoint K t hε ht hp, + hpinner.trans (hvalue s hs).symm⟩ + · intro s hs + rcases hs with rfl | rfl + · obtain ⟨p, hp, hpinner⟩ := exists_mem_inner_eq_supportValue K.val.val + ((Θ.angle + Real.pi : ℝ) : Real.Angle) + refine ⟨p, mem_polygonHeightCap_raised_of_mem_of_not_endpoint K t hε ht hp, ?_⟩ + rw [normalVector_add_pi, inner_neg_right, + K.val.property.2.2.2.2.1] at hpinner + rw [hvalue Θ.angle (by simp), K.val.property.2.2.1] + linarith + · obtain ⟨p, hp, hpinner⟩ := exists_mem_inner_eq_supportValue K.val.val + ((3 * Real.pi / 2 : ℝ) : Real.Angle) + refine ⟨p, mem_polygonHeightCap_raised_of_mem_of_not_endpoint K t hε ht hp, ?_⟩ + rw [K.val.property.2.2.2.2.2.1, inner_normalVector_three_pi_div_two] at hpinner + rw [hvalue (Real.pi / 2) (by simp), K.val.property.2.2.2.1] + simpa [normalVector, frame, PiLp.inner_apply] using hpinner + +private theorem independentWallCap_self_sub_one_eq {Θ : AngleSet} + (h : PolygonHeightSpace Θ) : + independentWallCap h (fun t ↦ h t - 1) = polygonHeightCap h := by + ext p + simp only [independentWallCap, polygonHeightCap, polygonHeightParallelogram, + Set.mem_inter_iff, Set.mem_iInter] + apply and_congr + · apply forall_congr' + intro t + apply forall_congr' + intro ht + have htD : t ∈ angleDomain Θ := Or.inr ht + simp only [polygonHeightValue, dite_eq_left htD] + · rfl + +private theorem polygonHeightCap_raised_bounded {Θ : AngleSet} (K : PolygonCapSpace Θ) + (t : angleDomain Θ) : + ∃ ε₀ : ℝ, 0 < ε₀ ∧ ∀ ε : ℝ, |ε| ≤ ε₀ → + Bornology.IsBounded (polygonHeightCap (raisedPolygonSupport K t ε)) := by + let h : PolygonHeightSpace Θ := + fun s ↦ supportValue K.val.val (s.val : Real.Angle) + obtain ⟨R, ε₀, hR, hε₀, hbound⟩ := polygonPerturbation_uniform_bounds Θ h + refine ⟨ε₀, hε₀, fun ε hε ↦ ?_⟩ + let hε' := raisedPolygonSupport K t ε + let lower : PolygonHeightSpace Θ := fun s ↦ hε' s - 1 + have hu (s : angleDomain Θ) : |hε' s - h s| ≤ ε₀ := by + change |(supportValue K.val.val (s.val : Real.Angle) + if s = t then ε else 0) - + supportValue K.val.val (s.val : Real.Angle)| ≤ ε₀ + split_ifs + · simpa using hε + · simp [hε₀.le] + have hl (s : angleDomain Θ) : |lower s - (h s - 1)| ≤ ε₀ := by + simpa only [lower, sub_sub_sub_cancel_right] using hu s + have hsub := (hbound hε' lower hu hl).1 + rw [independentWallCap_self_sub_one_eq] at hsub + exact Metric.isBounded_closedBall.subset hsub + +/-- A sufficiently small interior height increase yields a translated polygon cap. -/ +theorem polygonCap_positive_height_increment_of_not_endpoint {Θ : AngleSet} + (K : PolygonCapSpace Θ) (t : angleDomain Θ) + (ht : t.val ∉ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + ∃ ε₀ : ℝ, 0 < ε₀ ∧ ∀ ε : ℝ, 0 < ε → ε < ε₀ → + ∃ K' : PolygonCapTranslateSpace Θ, + K'.val = polygonHeightCap (raisedPolygonSupport K t ε) := by + obtain ⟨ε₀, hε₀, hbounded⟩ := polygonHeightCap_raised_bounded K t + refine ⟨ε₀, hε₀, fun ε hε hεlt ↦ ?_⟩ + have hcontacts := raisedPolygonSupport_endpoint_contacts_of_not_endpoint + K t hε.le ht + exact exists_polygonCapTranslate_eq_polygonHeightCap _ + (hbounded ε (abs_le.mpr ⟨by linarith, hεlt.le⟩)) hcontacts.1 hcontacts.2 + +private theorem midpoint_mem_strict_support_of_face {Θ : AngleSet} + (K : PolygonCapSpace Θ) {a b : Point} {t c : ℝ} (ht : t ∈ angleDomain Θ) + (ha : a ∈ (K.val.val : Set Point)) (hb : b ∈ (K.val.val : Set Point)) + (hat : inner ℝ a (normalVector (t : Real.Angle)) = c) + (hbt : inner ℝ b (normalVector (t : Real.Angle)) = c) + (hab : a ≠ b) : + let m := (2 : ℝ)⁻¹ • (a + b) + m ∈ (K.val.val : Set Point) ∧ + inner ℝ m (normalVector (t : Real.Angle)) = c ∧ + ∀ s ∈ angleDomain Θ, s ≠ t → + inner ℝ m (normalVector (s : Real.Angle)) < + supportValue K.val.val (s : Real.Angle) := by + dsimp + have hm : (2 : ℝ)⁻¹ • (a + b) ∈ (K.val.val : Set Point) := by + rw [smul_add] + exact K.val.val.convex ha hb (by norm_num) (by norm_num) (by norm_num) + have hmt : inner ℝ ((2 : ℝ)⁻¹ • (a + b)) (normalVector (t : Real.Angle)) = + c := by + rw [inner_smul_left, inner_add_left] + simp only [RCLike.conj_to_real, hat, hbt] + ring + refine ⟨hm, hmt, ?_⟩ + intro s hs hst + have hle := inner_le_supportValue K.val.val hm (s : Real.Angle) + apply lt_of_le_of_ne hle + intro heq + have hae := inner_le_supportValue K.val.val ha (s : Real.Angle) + have hbe := inner_le_supportValue K.val.val hb (s : Real.Angle) + have hmavg : inner ℝ ((2 : ℝ)⁻¹ • (a + b)) (normalVector (s : Real.Angle)) = + (2 : ℝ)⁻¹ * (inner ℝ a (normalVector (s : Real.Angle)) + + inner ℝ b (normalVector (s : Real.Angle))) := by + rw [inner_smul_left, inner_add_left] + simp only [RCLike.conj_to_real] + have haeq : inner ℝ a (normalVector (s : Real.Angle)) = + supportValue K.val.val (s : Real.Angle) := by + rw [hmavg] at heq + nlinarith + have hbeq : inner ℝ b (normalVector (s : Real.Angle)) = + supportValue K.val.val (s : Real.Angle) := by + rw [hmavg] at heq + nlinarith + have hortht : inner ℝ (b - a) (normalVector (t : Real.Angle)) = 0 := by + rw [inner_sub_left, hbt, hat, sub_self] + have horths : inner ℝ (b - a) (normalVector (s : Real.Angle)) = 0 := by + rw [inner_sub_left, hbeq, haeq, sub_self] + exact hst (eq_of_inner_sub_normalVector_eq_zero_of_ne + (angleDomain_subset_Ioo Θ hs) (angleDomain_subset_Ioo Θ ht) hab horths hortht) + +private theorem exists_pos_uniform_strict_support_gap {Θ : AngleSet} + (K : PolygonCapSpace Θ) (m : Point) (t : angleDomain Θ) + (hstrict : ∀ s ∈ angleDomain Θ, s ≠ t.val → + inner ℝ m (normalVector (s : Real.Angle)) < + supportValue K.val.val (s : Real.Angle)) : + ∃ δ : ℝ, 0 < δ ∧ ∀ s ∈ angleDomain Θ, s ≠ t.val → + δ ≤ supportValue K.val.val (s : Real.Angle) - + inner ℝ m (normalVector (s : Real.Angle)) := by + let gap : ℝ → ℝ := fun s ↦ if s = t.val then 1 else + supportValue K.val.val (s : Real.Angle) - inner ℝ m (normalVector (s : Real.Angle)) + have hdomain : (angleDomain Θ).Finite := by + unfold angleDomain + exact (Θ.directions.finite_toSet.union + (Θ.directions.finite_toSet.image (fun s : ℝ ↦ s + Real.pi / 2))).union + (Set.finite_singleton (Real.pi / 2) |>.insert Θ.angle) + have hnonempty : (angleDomain Θ).Nonempty := ⟨Θ.angle, by simp [angleDomain]⟩ + obtain ⟨δ, hδ, hδle⟩ := hdomain.isCompact.exists_pos_forall_le hnonempty + (hdomain.continuousOn gap) (fun s hs ↦ by + dsimp only [gap] + split_ifs with heq + · positivity + · linarith [hstrict s hs heq]) + refine ⟨δ, hδ, ?_⟩ + intro s hs hne + simpa [gap, hne] using hδle s hs + +private theorem cos_sub_nonneg_of_mem_endpoints {Θ : AngleSet} {s t : ℝ} + (hs : s ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) + (ht : t ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) : 0 ≤ Real.cos (s - t) := by + apply Real.cos_nonneg_of_mem_Icc + rcases hs with rfl | rfl <;> rcases ht with rfl | rfl + all_goals constructor <;> linarith [Θ.angle_pos, Θ.angle_le, Real.pi_pos] + +private theorem add_smul_normal_mem_raisedPolygonSupport {Θ : AngleSet} + (K : PolygonCapSpace Θ) (t : angleDomain Θ) + (htendpoint : t.val ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) + (m : Point) (hm : m ∈ (K.val.val : Set Point)) + (hmLower : supportValue K.val.val (t.val : Real.Angle) - 1 ≤ + inner ℝ m (normalVector (t.val : Real.Angle))) + (hmUpper : inner ℝ m (normalVector (t.val : Real.Angle)) ≤ + supportValue K.val.val (t.val : Real.Angle)) + {δ ε : ℝ} (hδ : ∀ s ∈ angleDomain Θ, s ≠ t.val → + δ ≤ supportValue K.val.val (s : Real.Angle) - + inner ℝ m (normalVector (s : Real.Angle))) + (hε : 0 < ε) (hεδ : ε < δ) : + m + ε • normalVector (t.val : Real.Angle) ∈ + polygonHeightCap (raisedPolygonSupport K t ε) := by + unfold polygonHeightCap polygonHeightParallelogram + simp only [Set.mem_inter_iff, Set.mem_iInter] + constructor + · intro r hr + have hrD : r ∈ angleDomain Θ := Or.inr hr + have hval := polygonHeightValue_raisedPolygonSupport K t ε hrD + constructor + · change inner ℝ (m + ε • normalVector (t.val : Real.Angle)) + (normalVector (r : Real.Angle)) ≤ + polygonHeightValue (raisedPolygonSupport K t ε) r + rw [hval, inner_add_left, inner_smul_left] + simp only [RCLike.conj_to_real] + by_cases hrt : r = t.val + · have hsub : (⟨r, hrD⟩ : angleDomain Θ) = t := Subtype.ext hrt + rw [ite_eq_left hsub, hrt, inner_normalVector_self] + linarith + · have hsub : (⟨r, hrD⟩ : angleDomain Θ) ≠ t := by + intro heq + exact hrt (congrArg Subtype.val heq) + rw [ite_eq_right hsub] + have hcos := Real.cos_le_one (t.val - r) + rw [inner_normalVector_normalVector] + have hgap := hδ r hrD hrt + nlinarith + · change polygonHeightValue (raisedPolygonSupport K t ε) r - 1 ≤ + inner ℝ (m + ε • normalVector (t.val : Real.Angle)) + (normalVector (r : Real.Angle)) + rw [hval, inner_add_left, inner_smul_left] + simp only [RCLike.conj_to_real] + by_cases hrt : r = t.val + · have hsub : (⟨r, hrD⟩ : angleDomain Θ) = t := Subtype.ext hrt + rw [ite_eq_left hsub, hrt, inner_normalVector_self] + nlinarith + · have hsub : (⟨r, hrD⟩ : angleDomain Θ) ≠ t := by + intro heq + exact hrt (congrArg Subtype.val heq) + rw [ite_eq_right hsub, add_zero] + have hbase : supportValue K.val.val (r : Real.Angle) - 1 ≤ + inner ℝ m (normalVector (r : Real.Angle)) := by + rcases hr with rfl | rfl + · have hl := inner_le_supportValue K.val.val hm + ((Θ.angle + Real.pi : ℝ) : Real.Angle) + rw [K.val.property.2.2.2.2.1, normalVector_add_pi, inner_neg_right] at hl + rw [K.val.property.2.2.1] + linarith + · have hl := inner_le_supportValue K.val.val hm + ((3 * Real.pi / 2 : ℝ) : Real.Angle) + rw [K.val.property.2.2.2.2.2.1, inner_normalVector_three_pi_div_two] at hl + rw [K.val.property.2.2.2.1] + simpa [normalVector, frame, PiLp.inner_apply] using hl + have hcos := cos_sub_nonneg_of_mem_endpoints htendpoint hr + rw [inner_normalVector_normalVector] + exact hbase.trans (le_add_of_nonneg_right (mul_nonneg hε.le hcos)) + · intro r hr + have hrD : r ∈ angleDomain Θ := Or.inl hr + have hval := polygonHeightValue_raisedPolygonSupport K t ε hrD + change inner ℝ (m + ε • normalVector (t.val : Real.Angle)) + (normalVector (r : Real.Angle)) ≤ + polygonHeightValue (raisedPolygonSupport K t ε) r + rw [hval, inner_add_left, inner_smul_left] + simp only [RCLike.conj_to_real] + by_cases hrt : r = t.val + · have hsub : (⟨r, hrD⟩ : angleDomain Θ) = t := Subtype.ext hrt + rw [ite_eq_left hsub, hrt, inner_normalVector_self] + linarith + · have hsub : (⟨r, hrD⟩ : angleDomain Θ) ≠ t := by + intro heq + exact hrt (congrArg Subtype.val heq) + rw [ite_eq_right hsub] + have hcos := Real.cos_le_one (t.val - r) + rw [inner_normalVector_normalVector] + have hgap := hδ r hrD hrt + nlinarith + +private theorem mem_raisedPolygonSupport_of_endpoint_of_le_inner {Θ : AngleSet} + (K : PolygonCapSpace Θ) (t : angleDomain Θ) + (ht : t.val ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) {p : Point} + (hp : p ∈ (K.val.val : Set Point)) {ε : ℝ} (hε : 0 ≤ ε) + (hinner : ε ≤ inner ℝ p (normalVector (t.val : Real.Angle))) : + p ∈ polygonHeightCap (raisedPolygonSupport K t ε) := by + unfold polygonHeightCap polygonHeightParallelogram + simp only [Set.mem_inter_iff, Set.mem_iInter] + constructor + · intro r hr + have hrD : r ∈ angleDomain Θ := Or.inr hr + have hvalue := polygonHeightValue_raisedPolygonSupport K t ε hrD + constructor + · change inner ℝ p (normalVector (r : Real.Angle)) ≤ + polygonHeightValue (raisedPolygonSupport K t ε) r + rw [hvalue] + exact (inner_le_supportValue K.val.val hp _).trans + (le_add_of_nonneg_right (by split_ifs <;> positivity)) + · change polygonHeightValue (raisedPolygonSupport K t ε) r - 1 ≤ + inner ℝ p (normalVector (r : Real.Angle)) + rw [hvalue] + by_cases hrt : r = t.val + · have hsub : (⟨r, hrD⟩ : angleDomain Θ) = t := Subtype.ext hrt + rw [ite_eq_left hsub, hrt] + have hsupport : supportValue K.val.val (t.val : Real.Angle) = 1 := by + rcases ht with ht | ht + · simpa [ht] using K.val.property.2.2.1 + · have ht' : t.val = Real.pi / 2 := by simpa using ht + simpa [ht'] using K.val.property.2.2.2.1 + rw [hsupport] + simpa using hinner + · have hsub : (⟨r, hrD⟩ : angleDomain Θ) ≠ t := by + intro heq + exact hrt (congrArg Subtype.val heq) + rw [ite_eq_right hsub, add_zero] + rcases hr with rfl | rfl + · have hlower := inner_le_supportValue K.val.val hp + ((Θ.angle + Real.pi : ℝ) : Real.Angle) + rw [K.val.property.2.2.2.2.1, normalVector_add_pi, inner_neg_right] at hlower + rw [K.val.property.2.2.1] + linarith + · have hlower := inner_le_supportValue K.val.val hp + ((3 * Real.pi / 2 : ℝ) : Real.Angle) + rw [K.val.property.2.2.2.2.2.1, inner_normalVector_three_pi_div_two] at hlower + rw [K.val.property.2.2.2.1] + simpa [normalVector, frame, PiLp.inner_apply] using hlower + · intro r hr + have hrD : r ∈ angleDomain Θ := Or.inl hr + rw [polygonHeightValue_raisedPolygonSupport K t ε hrD] + exact (inner_le_supportValue K.val.val hp _).trans + (le_add_of_nonneg_right (by split_ifs <;> positivity)) + +private theorem moved_upper_lower_contacts {Θ : AngleSet} (K : PolygonCapSpace Θ) + (t : angleDomain Θ) (ht : t.val ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) + (u l : Point) (hu : u ∈ (K.val.val : Set Point)) + (huval : inner ℝ u (normalVector (t.val : Real.Angle)) = + supportValue K.val.val (t.val : Real.Angle)) + (hl : l ∈ (K.val.val : Set Point)) + (hlval : inner ℝ l (normalVector (t.val : Real.Angle)) = + supportValue K.val.val (t.val : Real.Angle) - 1) + {δu δl ε : ℝ} + (hδu : ∀ s ∈ angleDomain Θ, s ≠ t.val → + δu ≤ supportValue K.val.val (s : Real.Angle) - + inner ℝ u (normalVector (s : Real.Angle))) + (hδl : ∀ s ∈ angleDomain Θ, s ≠ t.val → + δl ≤ supportValue K.val.val (s : Real.Angle) - + inner ℝ l (normalVector (s : Real.Angle))) + (hε : 0 < ε) (hεu : ε < δu) (hεl : ε < δl) : + (∃ p ∈ polygonHeightCap (raisedPolygonSupport K t ε), + inner ℝ p (normalVector (t.val : Real.Angle)) = + polygonHeightValue (raisedPolygonSupport K t ε) t.val) ∧ + (∃ p ∈ polygonHeightCap (raisedPolygonSupport K t ε), + inner ℝ p (normalVector (t.val : Real.Angle)) = + polygonHeightValue (raisedPolygonSupport K t ε) t.val - 1) := by + have huLower : supportValue K.val.val (t.val : Real.Angle) - 1 ≤ + inner ℝ u (normalVector (t.val : Real.Angle)) := by linarith + have hlUpper : inner ℝ l (normalVector (t.val : Real.Angle)) ≤ + supportValue K.val.val (t.val : Real.Angle) := by linarith + have hu' := add_smul_normal_mem_raisedPolygonSupport K t ht u hu huLower huval.le + hδu hε hεu + have hl' := add_smul_normal_mem_raisedPolygonSupport K t ht l hl hlval.ge hlUpper + hδl hε hεl + have hvalue : polygonHeightValue (raisedPolygonSupport K t ε) t.val = + supportValue K.val.val (t.val : Real.Angle) + ε := by + rw [polygonHeightValue_raisedPolygonSupport K t ε t.property] + simp + constructor + · refine ⟨u + ε • normalVector (t.val : Real.Angle), hu', ?_⟩ + rw [inner_add_left, inner_smul_left, huval, inner_normalVector_self, hvalue] + simp + · refine ⟨l + ε • normalVector (t.val : Real.Angle), hl', ?_⟩ + rw [inner_add_left, inner_smul_left, hlval, inner_normalVector_self, hvalue] + simp + ring + +private theorem exists_upperFace_midpoint_strict {Θ : AngleSet} (K : PolygonCapSpace Θ) + (t : angleDomain Θ) + (ht : 0 < surfaceAreaMeasure K.val.val {(t.val : Real.Angle)}) : + ∃ m : Point, + m ∈ (K.val.val : Set Point) ∧ + inner ℝ m (normalVector (t.val : Real.Angle)) = + supportValue K.val.val (t.val : Real.Angle) ∧ + ∀ s ∈ angleDomain Θ, s ≠ t.val → + inner ℝ m (normalVector (s : Real.Angle)) < + supportValue K.val.val (s : Real.Angle) := by + let a := (edgeVertices K.val.val (t.val : Real.Angle)).1 + let b := (edgeVertices K.val.val (t.val : Real.Angle)).2 + have haedge := edgeVertices_fst_mem K.val.val (t.val : Real.Angle) + have hbedge := edgeVertices_snd_mem K.val.val (t.val : Real.Angle) + have hab : a ≠ b := by + have hdist : 0 < dist a b := by + rw [(surfaceAreaMeasure_atom_length K.val.val (t.val : Real.Angle)).2.1] at ht + exact ENNReal.ofReal_pos.mp ht + exact dist_ne_zero.mp hdist.ne' + let m := (2 : ℝ)⁻¹ • (a + b) + have hm := midpoint_mem_strict_support_of_face K t.property + haedge.1 hbedge.1 haedge.2 hbedge.2 hab + exact ⟨m, hm⟩ + +private theorem stripParallelogram_top_inner_angle (Θ : AngleSet) + (hΘ : Θ.angle < Real.pi / 2) : + inner ℝ (stripParallelogram Θ.angle).2.2 (normalVector (Θ.angle : Real.Angle)) = 1 := by + have hc : 0 < Real.cos Θ.angle := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Θ.angle_pos, Real.pi_pos], hΘ⟩ + have hgap : Real.tan (Real.pi / 4 - Θ.angle / 2) = + (Real.cos Θ.angle)⁻¹ - Real.tan Θ.angle := by + simpa [show Real.pi / 4 - Θ.angle / 2 = + (Real.pi / 2 - Θ.angle) / 2 by ring] + using Real.tan_pi_div_two_sub_div_two Θ.angle ⟨Θ.angle_pos.le, hΘ⟩ + have htan := Real.tan_eq_sin_div_cos Θ.angle + simp [stripParallelogram, normalVector, frame, PiLp.inner_apply, hgap, htan] + field_simp [hc.ne'] + ring + +private theorem stripParallelogram_top_sub_vertical_mem_of_angle_lt {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hΘ : Θ.angle < Real.pi / 2) : + (stripParallelogram Θ.angle).2.2 - tangentVector 0 ∈ (K.val.val : Set Point) := by + let o := (stripParallelogram Θ.angle).2.2 + let a := o - tangentVector 0 + have ho := stripParallelogram_top_mem_of_angle_lt Θ hΘ K + have haFan : a ∈ capFan Θ.angle := by + constructor + · change 0 ≤ inner ℝ a (normalVector (Θ.angle : Real.Angle)) + dsimp [a] + have hoω : inner ℝ o (normalVector (Θ.angle : Real.Angle)) = 1 := + stripParallelogram_top_inner_angle Θ hΘ + rw [inner_sub_left, hoω] + simp only [tangentVector, frame, Real.Angle.cos_zero, Real.Angle.sin_zero, neg_zero, + normalVector, Real.Angle.cos_coe, Real.Angle.sin_coe, PiLp.inner_apply, + RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, Matrix.cons_val_zero, + mul_zero, Matrix.cons_val_one, Matrix.cons_val_fin_one, mul_one, zero_add, sub_nonneg, + ge_iff_le] + exact Real.sin_le_one Θ.angle + · change 0 ≤ inner ℝ a (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + simp [a, o, stripParallelogram, tangentVector, normalVector, frame, + PiLp.inner_apply] + apply K.val.mem_of_mem_capFan_of_le_supportValue haFan + intro s hs + have ho_le := inner_le_supportValue K.val.val ho (s : Real.Angle) + have hale : inner ℝ a (normalVector (s : Real.Angle)) ≤ + inner ℝ o (normalVector (s : Real.Angle)) := by + rw [show a = o - tangentVector 0 by rfl, inner_sub_left] + apply sub_le_self + have hsI : s ∈ Set.Icc 0 Real.pi := by + rcases hs with hs | hs + · exact ⟨hs.1, hs.2.trans (Θ.angle_le.trans (by linarith [Real.pi_pos]))⟩ + · exact ⟨(by positivity : 0 ≤ Real.pi / 2).trans hs.1, + hs.2.trans (by linarith [Θ.angle_le, Real.pi_pos])⟩ + simpa [tangentVector, normalVector, frame, PiLp.inner_apply] using + Real.sin_nonneg_of_mem_Icc hsI + exact hale.trans ho_le + +private theorem stripParallelogram_top_sub_normal_mem_of_angle_lt {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hΘ : Θ.angle < Real.pi / 2) : + (stripParallelogram Θ.angle).2.2 - normalVector (Θ.angle : Real.Angle) ∈ + (K.val.val : Set Point) := by + let o := (stripParallelogram Θ.angle).2.2 + let b := o - normalVector (Θ.angle : Real.Angle) + have ho := stripParallelogram_top_mem_of_angle_lt Θ hΘ K + have hbFan : b ∈ capFan Θ.angle := by + constructor + · change 0 ≤ inner ℝ b (normalVector (Θ.angle : Real.Angle)) + dsimp [b] + have hoω : inner ℝ o (normalVector (Θ.angle : Real.Angle)) = 1 := + stripParallelogram_top_inner_angle Θ hΘ + rw [inner_sub_left, hoω, inner_normalVector_self, sub_self] + · change 0 ≤ inner ℝ b (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + dsimp [b] + have hoT : inner ℝ o (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 1 := by + simp [o, stripParallelogram, normalVector, frame, PiLp.inner_apply] + rw [inner_sub_left, hoT] + simp only [normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, Real.cos_pi_div_two, + Real.sin_pi_div_two, PiLp.inner_apply, RCLike.inner_apply, conj_trivial, + Fin.sum_univ_two, Fin.isValue, Matrix.cons_val_zero, zero_mul, Matrix.cons_val_one, + Matrix.cons_val_fin_one, one_mul, zero_add, sub_nonneg, ge_iff_le] + exact Real.sin_le_one Θ.angle + apply K.val.mem_of_mem_capFan_of_le_supportValue hbFan + intro s hs + have ho_le := inner_le_supportValue K.val.val ho (s : Real.Angle) + have hble : inner ℝ b (normalVector (s : Real.Angle)) ≤ + inner ℝ o (normalVector (s : Real.Angle)) := by + rw [show b = o - normalVector (Θ.angle : Real.Angle) by rfl, inner_sub_left] + apply sub_le_self + rw [inner_normalVector_normalVector] + apply Real.cos_nonneg_of_mem_Icc + rcases hs with hs | hs + · constructor <;> linarith [hs.1, hs.2, Θ.angle_pos, Θ.angle_le, Real.pi_pos] + · constructor <;> linarith [hs.1, hs.2, Θ.angle_pos, Θ.angle_le, Real.pi_pos] + exact hble.trans ho_le + +private theorem exists_lowerFace_midpoint_strict_of_angle_lt {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hΘ : Θ.angle < Real.pi / 2) + (t : angleDomain Θ) (ht : t.val ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) : + ∃ m : Point, + m ∈ (K.val.val : Set Point) ∧ + inner ℝ m (normalVector (t.val : Real.Angle)) = + supportValue K.val.val (t.val : Real.Angle) - 1 ∧ + ∀ s ∈ angleDomain Θ, s ≠ t.val → + inner ℝ m (normalVector (s : Real.Angle)) < + supportValue K.val.val (s : Real.Angle) := by + have hzero := zero_mem_cap_of_lt K.val hΘ + rcases ht with ht | ht + · have htval : t.val = Θ.angle := ht + let b := (stripParallelogram Θ.angle).2.2 - normalVector (Θ.angle : Real.Angle) + have hb := stripParallelogram_top_sub_normal_mem_of_angle_lt K hΘ + have hbnormal : inner ℝ b (normalVector (Θ.angle : Real.Angle)) = 0 := by + dsimp [b] + rw [inner_sub_left, stripParallelogram_top_inner_angle Θ hΘ, + inner_normalVector_self, sub_self] + have hbne : (0 : Point) ≠ b := by + intro heq + have hgap := (parallelogram_gap Θ.angle ⟨Θ.angle_pos.le, hΘ⟩).2.1 + rw [← show b = (stripParallelogram Θ.angle).2.2 - + normalVector (Θ.angle : Real.Angle) by rfl, ← heq] at hgap + have hgappos : 0 < Real.tan ((Real.pi / 2 - Θ.angle) / 2) := + Real.tan_pos_of_pos_of_lt_pi_div_two (by linarith) + (by linarith [Θ.angle_pos, Real.pi_pos]) + have hcoord := congrArg (fun p : Point ↦ p 1) hgap + have hcos : 0 < Real.cos Θ.angle := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Θ.angle_pos, Real.pi_pos], hΘ⟩ + simp only [Fin.isValue, PiLp.zero_apply, tangentVector, frame, Real.Angle.cos_coe, + Real.Angle.sin_coe, PiLp.smul_apply, Matrix.cons_val_one, + Matrix.cons_val_fin_one, smul_eq_mul, zero_eq_mul] at hcoord + rcases hcoord with hgapzero | hcoszero + · exact hgappos.ne' hgapzero + · exact hcos.ne' hcoszero + have hm := midpoint_mem_strict_support_of_face (c := 0) K t.property hzero hb + (by simp) (by simpa [htval, K.val.property.2.2.1] using hbnormal) hbne + refine ⟨(2 : ℝ)⁻¹ • ((0 : Point) + b), hm.1, ?_, ?_⟩ + · rw [hm.2.1, htval, K.val.property.2.2.1] + ring + · simpa [htval] using hm.2.2 + · have htval : t.val = Real.pi / 2 := ht + let a := (stripParallelogram Θ.angle).2.2 - tangentVector 0 + have ha := stripParallelogram_top_sub_vertical_mem_of_angle_lt K hΘ + have hanormal : inner ℝ a (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 := by + simp [a, stripParallelogram, tangentVector, normalVector, frame, PiLp.inner_apply] + have hane : (0 : Point) ≠ a := by + intro heq + have hgap := (parallelogram_gap Θ.angle ⟨Θ.angle_pos.le, hΘ⟩).1 + rw [← show a = (stripParallelogram Θ.angle).2.2 - tangentVector 0 by rfl, + ← heq] at hgap + have hgappos : 0 < Real.tan ((Real.pi / 2 - Θ.angle) / 2) := + Real.tan_pos_of_pos_of_lt_pi_div_two (by linarith) + (by linarith [Θ.angle_pos, Real.pi_pos]) + have hcoord := congrArg (fun p : Point ↦ p 0) hgap + simp [normalVector, frame] at hcoord + linarith + have hm := midpoint_mem_strict_support_of_face (c := 0) K t.property hzero ha + (by simp) (by simpa [htval, K.val.property.2.2.2.1] using hanormal) hane + refine ⟨(2 : ℝ)⁻¹ • ((0 : Point) + a), hm.1, ?_, ?_⟩ + · rw [hm.2.1, htval, K.val.property.2.2.2.1] + ring + · simpa [htval] using hm.2.2 + +private theorem sub_normalVector_pi_div_two_mem_of_mem_of_angle_eq {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hΘ : Θ.angle = Real.pi / 2) {p : Point} + (hp : p ∈ (K.val.val : Set Point)) + (hpT : inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 1) : + p - normalVector ((Real.pi / 2 : ℝ) : Real.Angle) ∈ (K.val.val : Set Point) := by + apply K.val.mem_of_mem_capFan_of_le_supportValue + · constructor + · change 0 ≤ inner ℝ (p - normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + (normalVector (Θ.angle : Real.Angle)) + rw [hΘ, inner_sub_left, hpT, inner_normalVector_self, sub_self] + · change 0 ≤ inner ℝ (p - normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + rw [inner_sub_left, hpT, inner_normalVector_self, sub_self] + · intro s hs + have hsI : s ∈ Set.Icc 0 Real.pi := by + rcases hs with hs | hs + · exact ⟨hs.1, by rw [hΘ] at hs; linarith [hs.2, Real.pi_pos]⟩ + · exact ⟨by linarith [hs.1, Real.pi_pos], by rw [hΘ] at hs; linarith [hs.2]⟩ + have hsin : 0 ≤ Real.sin s := Real.sin_nonneg_of_mem_Icc hsI + have hle : inner ℝ (p - normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + (normalVector (s : Real.Angle)) ≤ inner ℝ p (normalVector (s : Real.Angle)) := by + rw [inner_sub_left] + apply sub_le_self + rw [inner_normalVector_normalVector] + simpa [Real.cos_pi_div_two_sub] using hsin + exact hle.trans (inner_le_supportValue K.val.val hp (s : Real.Angle)) + +private theorem exists_lowerFace_midpoint_strict_of_angle_eq {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hΘ : Θ.angle = Real.pi / 2) + (t : angleDomain Θ) (ht : t.val ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) + (hmass : 0 < surfaceAreaMeasure K.val.val {(t.val : Real.Angle)}) : + ∃ m : Point, + m ∈ (K.val.val : Set Point) ∧ + inner ℝ m (normalVector (t.val : Real.Angle)) = + supportValue K.val.val (t.val : Real.Angle) - 1 ∧ + ∀ s ∈ angleDomain Θ, s ≠ t.val → + inner ℝ m (normalVector (s : Real.Angle)) < + supportValue K.val.val (s : Real.Angle) := by + have htval : t.val = Real.pi / 2 := by + rcases ht with ht | ht + · simpa [hΘ] using ht + · exact ht + let a := (edgeVertices K.val.val (t.val : Real.Angle)).1 + let b := (edgeVertices K.val.val (t.val : Real.Angle)).2 + let a' := a - normalVector ((Real.pi / 2 : ℝ) : Real.Angle) + let b' := b - normalVector ((Real.pi / 2 : ℝ) : Real.Angle) + have haedge := edgeVertices_fst_mem K.val.val (t.val : Real.Angle) + have hbedge := edgeVertices_snd_mem K.val.val (t.val : Real.Angle) + have hab : a ≠ b := by + have hdist : 0 < dist a b := by + rw [(surfaceAreaMeasure_atom_length K.val.val (t.val : Real.Angle)).2.1] at hmass + exact ENNReal.ofReal_pos.mp hmass + exact dist_ne_zero.mp hdist.ne' + have haT : inner ℝ a (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 1 := by + have haSupport : inner ℝ a (normalVector (t.val : Real.Angle)) = + supportValue K.val.val (t.val : Real.Angle) := haedge.2 + simpa [htval, K.val.property.2.2.2.1] using haSupport + have hbT : inner ℝ b (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 1 := by + have hbSupport : inner ℝ b (normalVector (t.val : Real.Angle)) = + supportValue K.val.val (t.val : Real.Angle) := hbedge.2 + simpa [htval, K.val.property.2.2.2.1] using hbSupport + have ha' : a' ∈ (K.val.val : Set Point) := + sub_normalVector_pi_div_two_mem_of_mem_of_angle_eq K hΘ haedge.1 haT + have hb' : b' ∈ (K.val.val : Set Point) := + sub_normalVector_pi_div_two_mem_of_mem_of_angle_eq K hΘ hbedge.1 hbT + have ha'normal : inner ℝ a' (normalVector (t.val : Real.Angle)) = 0 := by + rw [htval] + dsimp [a'] + rw [inner_sub_left, haT, inner_normalVector_self, sub_self] + have hb'normal : inner ℝ b' (normalVector (t.val : Real.Angle)) = 0 := by + rw [htval] + dsimp [b'] + rw [inner_sub_left, hbT, inner_normalVector_self, sub_self] + have hab' : a' ≠ b' := by + intro heq + apply hab + dsimp [a', b'] at heq + exact sub_left_injective heq + have hm := midpoint_mem_strict_support_of_face (c := 0) K t.property ha' hb' + ha'normal hb'normal hab' + refine ⟨(2 : ℝ)⁻¹ • (a' + b'), hm.1, ?_, hm.2.2⟩ + rw [hm.2.1, htval, K.val.property.2.2.2.1] + ring + +private theorem raisedPolygonSupport_endpoint_contacts_of_angle_lt {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hΘ : Θ.angle < Real.pi / 2) + (t : angleDomain Θ) (ht : t.val ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) + (hmass : 0 < surfaceAreaMeasure K.val.val {(t.val : Real.Angle)}) : + ∃ ε₀ : ℝ, 0 < ε₀ ∧ ∀ ε : ℝ, 0 < ε → ε < ε₀ → + ((∀ s ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + ∃ p ∈ polygonHeightCap (raisedPolygonSupport K t ε), + inner ℝ p (normalVector (s : Real.Angle)) = + polygonHeightValue (raisedPolygonSupport K t ε) s) ∧ + (∀ s ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + ∃ p ∈ polygonHeightCap (raisedPolygonSupport K t ε), + inner ℝ p (normalVector (s : Real.Angle)) = + polygonHeightValue (raisedPolygonSupport K t ε) s - 1)) := by + obtain ⟨u, hu, huval, hustrict⟩ := exists_upperFace_midpoint_strict K t hmass + obtain ⟨l, hl, hlval, hlstrict⟩ := + exists_lowerFace_midpoint_strict_of_angle_lt K hΘ t ht + obtain ⟨δu, hδupos, hδu⟩ := exists_pos_uniform_strict_support_gap K u t hustrict + obtain ⟨δl, hδlpos, hδl⟩ := exists_pos_uniform_strict_support_gap K l t hlstrict + let o := (stripParallelogram Θ.angle).2.2 + let a := o - tangentVector 0 + let b := o - normalVector (Θ.angle : Real.Angle) + have ho : o ∈ (K.val.val : Set Point) := + stripParallelogram_top_mem_of_angle_lt Θ hΘ K + have ha : a ∈ (K.val.val : Set Point) := + stripParallelogram_top_sub_vertical_mem_of_angle_lt K hΘ + have hb : b ∈ (K.val.val : Set Point) := + stripParallelogram_top_sub_normal_mem_of_angle_lt K hΘ + have hoω : inner ℝ o (normalVector (Θ.angle : Real.Angle)) = 1 := + stripParallelogram_top_inner_angle Θ hΘ + have hoT : inner ℝ o (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 1 := by + simp [o, stripParallelogram, normalVector, frame, PiLp.inner_apply] + have haT : inner ℝ a (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 := by + simp [a, o, stripParallelogram, tangentVector, normalVector, frame, + PiLp.inner_apply] + have hbω : inner ℝ b (normalVector (Θ.angle : Real.Angle)) = 0 := by + dsimp [b] + rw [inner_sub_left, hoω, inner_normalVector_self, sub_self] + let gap := 1 - Real.sin Θ.angle + have hcos : 0 < Real.cos Θ.angle := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Θ.angle_pos, Real.pi_pos], hΘ⟩ + have hgappos : 0 < gap := by + have hcosSq : 0 < Real.cos Θ.angle ^ 2 := sq_pos_of_pos hcos + have htrig := Real.sin_sq_add_cos_sq Θ.angle + have hsinle := Real.sin_le_one Θ.angle + dsimp [gap] + nlinarith + have haω : inner ℝ a (normalVector (Θ.angle : Real.Angle)) = gap := by + dsimp [a, gap] + rw [inner_sub_left, hoω] + simp [tangentVector, normalVector, frame, PiLp.inner_apply] + have hbT : inner ℝ b (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = gap := by + dsimp [b, gap] + rw [inner_sub_left, hoT] + simp [normalVector, frame, PiLp.inner_apply] + refine ⟨min δu (min δl (min 1 gap)), by positivity, ?_⟩ + intro ε hε hεlt + have hεu : ε < δu := hεlt.trans_le (min_le_left _ _) + have hεl : ε < δl := hεlt.trans_le ((min_le_right _ _).trans (min_le_left _ _)) + have hε1 : ε < 1 := + hεlt.trans_le ((min_le_right _ _).trans ((min_le_right _ _).trans (min_le_left _ _))) + have hεgap : ε < gap := + hεlt.trans_le ((min_le_right _ _).trans ((min_le_right _ _).trans (min_le_right _ _))) + have hmoved := moved_upper_lower_contacts K t ht u l hu huval hl hlval + hδu hδl hε hεu hεl + rcases ht with ht | ht + · have htval : t.val = Θ.angle := ht + have hoMem : o ∈ polygonHeightCap (raisedPolygonSupport K t ε) := by + apply mem_raisedPolygonSupport_of_endpoint_of_le_inner K t (Or.inl htval) ho hε.le + rw [htval, hoω] + exact hε1.le + have haMem : a ∈ polygonHeightCap (raisedPolygonSupport K t ε) := by + apply mem_raisedPolygonSupport_of_endpoint_of_le_inner K t (Or.inl htval) ha hε.le + rw [htval, haω] + exact hεgap.le + have hother : polygonHeightValue (raisedPolygonSupport K t ε) (Real.pi / 2) = 1 := by + rw [polygonHeightValue_raisedPolygonSupport K t ε (Or.inr (by simp))] + have hne : (⟨Real.pi / 2, Or.inr (by simp)⟩ : angleDomain Θ) ≠ t := by + intro heq + have := congrArg Subtype.val heq + linarith [hΘ] + rw [ite_eq_right hne, add_zero, K.val.property.2.2.2.1] + constructor + · intro s hs + rcases hs with hs | hs + · have hsval : s = Θ.angle := hs + subst s + simpa [htval] using hmoved.1 + · have hsval : s = Real.pi / 2 := by simpa using hs + subst s + exact ⟨o, hoMem, hoT.trans hother.symm⟩ + · intro s hs + rcases hs with hs | hs + · have hsval : s = Θ.angle := hs + subst s + simpa [htval] using hmoved.2 + · have hsval : s = Real.pi / 2 := by simpa using hs + subst s + refine ⟨a, haMem, ?_⟩ + rw [haT, hother] + ring + · have htval : t.val = Real.pi / 2 := by simpa using ht + have hoMem : o ∈ polygonHeightCap (raisedPolygonSupport K t ε) := by + apply mem_raisedPolygonSupport_of_endpoint_of_le_inner K t (Or.inr ht) ho hε.le + rw [htval, hoT] + exact hε1.le + have hbMem : b ∈ polygonHeightCap (raisedPolygonSupport K t ε) := by + apply mem_raisedPolygonSupport_of_endpoint_of_le_inner K t (Or.inr ht) hb hε.le + rw [htval, hbT] + exact hεgap.le + have hother : polygonHeightValue (raisedPolygonSupport K t ε) Θ.angle = 1 := by + rw [polygonHeightValue_raisedPolygonSupport K t ε (Or.inr (by simp))] + have hne : (⟨Θ.angle, Or.inr (by simp)⟩ : angleDomain Θ) ≠ t := by + intro heq + have := congrArg Subtype.val heq + linarith [hΘ] + rw [ite_eq_right hne, add_zero, K.val.property.2.2.1] + constructor + · intro s hs + rcases hs with hs | hs + · have hsval : s = Θ.angle := hs + subst s + exact ⟨o, hoMem, hoω.trans hother.symm⟩ + · have hsval : s = Real.pi / 2 := by simpa using hs + subst s + simpa [htval] using hmoved.1 + · intro s hs + rcases hs with hs | hs + · have hsval : s = Θ.angle := hs + subst s + refine ⟨b, hbMem, ?_⟩ + rw [hbω, hother] + ring + · have hsval : s = Real.pi / 2 := by simpa using hs + subst s + simpa [htval] using hmoved.2 + +private theorem raisedPolygonSupport_endpoint_contacts_of_angle_eq {Θ : AngleSet} + (K : PolygonCapSpace Θ) (hΘ : Θ.angle = Real.pi / 2) + (t : angleDomain Θ) (ht : t.val ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) + (hmass : 0 < surfaceAreaMeasure K.val.val {(t.val : Real.Angle)}) : + ∃ ε₀ : ℝ, 0 < ε₀ ∧ ∀ ε : ℝ, 0 < ε → ε < ε₀ → + ((∀ s ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + ∃ p ∈ polygonHeightCap (raisedPolygonSupport K t ε), + inner ℝ p (normalVector (s : Real.Angle)) = + polygonHeightValue (raisedPolygonSupport K t ε) s) ∧ + (∀ s ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + ∃ p ∈ polygonHeightCap (raisedPolygonSupport K t ε), + inner ℝ p (normalVector (s : Real.Angle)) = + polygonHeightValue (raisedPolygonSupport K t ε) s - 1)) := by + obtain ⟨u, hu, huval, hustrict⟩ := exists_upperFace_midpoint_strict K t hmass + obtain ⟨l, hl, hlval, hlstrict⟩ := + exists_lowerFace_midpoint_strict_of_angle_eq K hΘ t ht hmass + obtain ⟨δu, hδupos, hδu⟩ := exists_pos_uniform_strict_support_gap K u t hustrict + obtain ⟨δl, hδlpos, hδl⟩ := exists_pos_uniform_strict_support_gap K l t hlstrict + have htval : t.val = Real.pi / 2 := by + rcases ht with ht | ht + · simpa [hΘ] using ht + · simpa using ht + refine ⟨min δu δl, by positivity, ?_⟩ + intro ε hε hεlt + have hmoved := moved_upper_lower_contacts K t ht u l hu huval hl hlval + hδu hδl hε (hεlt.trans_le (min_le_left _ _)) + (hεlt.trans_le (min_le_right _ _)) + constructor + · intro s hs + have hsval : s = Real.pi / 2 := by + rcases hs with hs | hs + · simpa [hΘ] using hs + · simpa using hs + subst s + simpa [htval] using hmoved.1 + · intro s hs + have hsval : s = Real.pi / 2 := by + rcases hs with hs | hs + · simpa [hΘ] using hs + · simpa using hs + subst s + simpa [htval] using hmoved.2 + +/-- A sufficiently small endpoint height increase preserves both unit widths. -/ +theorem polygonCap_positive_height_increment_of_endpoint {Θ : AngleSet} + (K : PolygonCapSpace Θ) (t : angleDomain Θ) + (ht : t.val ∈ ({Θ.angle, Real.pi / 2} : Set ℝ)) + (hmass : 0 < surfaceAreaMeasure K.val.val {(t.val : Real.Angle)}) : + ∃ ε₀ : ℝ, 0 < ε₀ ∧ ∀ ε : ℝ, 0 < ε → ε < ε₀ → + ∃ K' : PolygonCapTranslateSpace Θ, + K'.val = polygonHeightCap (raisedPolygonSupport K t ε) := by + obtain ⟨εb, hεb, hbounded⟩ := polygonHeightCap_raised_bounded K t + obtain ⟨εc, hεc, hcontacts⟩ : ∃ εc : ℝ, 0 < εc ∧ ∀ ε : ℝ, 0 < ε → ε < εc → + ((∀ s ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + ∃ p ∈ polygonHeightCap (raisedPolygonSupport K t ε), + inner ℝ p (normalVector (s : Real.Angle)) = + polygonHeightValue (raisedPolygonSupport K t ε) s) ∧ + (∀ s ∈ ({Θ.angle, Real.pi / 2} : Set ℝ), + ∃ p ∈ polygonHeightCap (raisedPolygonSupport K t ε), + inner ℝ p (normalVector (s : Real.Angle)) = + polygonHeightValue (raisedPolygonSupport K t ε) s - 1)) := by + rcases lt_or_eq_of_le Θ.angle_le with hΘ | hΘ + · exact raisedPolygonSupport_endpoint_contacts_of_angle_lt K hΘ t ht hmass + · exact raisedPolygonSupport_endpoint_contacts_of_angle_eq K hΘ t ht hmass + refine ⟨min εb εc, by positivity, ?_⟩ + intro ε hε hεlt + have hb : ε < εb := hεlt.trans_le (min_le_left _ _) + have hc : ε < εc := hεlt.trans_le (min_le_right _ _) + have hcontact := hcontacts ε hε hc + exact exists_polygonCapTranslate_eq_polygonHeightCap _ + (hbounded ε (abs_le.mpr ⟨by linarith, hb.le⟩)) hcontact.1 hcontact.2 + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Polygon / Height / Positive Increment +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem polygonCap_positive_height_increment {Θ : AngleSet} (K : PolygonCapSpace Θ) + (t : angleDomain Θ) + (ht : 0 < surfaceAreaMeasure K.val.val {(t.val : Real.Angle)}) : + ∃ ε₀ : ℝ, 0 < ε₀ ∧ ∀ ε : ℝ, 0 < ε → ε < ε₀ → + ∃ K' : PolygonCapTranslateSpace Θ, + K'.val = polygonHeightCap (raisedPolygonSupport K t ε) := by + by_cases htendpoint : t.val ∈ ({Θ.angle, Real.pi / 2} : Set ℝ) + · exact polygonCap_positive_height_increment_of_endpoint K t htendpoint ht + · exact polygonCap_positive_height_increment_of_not_endpoint K t htendpoint + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Bounds.LegComputation`. +* `Bounds.Lower.Profile`. +* `Bounds.NicheLimits`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Bounds / Leg Computation +-/ + +@[expose] public section + +noncomputable section + +open Set MeasureTheory + +namespace MovingSofa + +private theorem rightAngle_allowedReal_gap_left (n : ℕ) (hn : 2 ≤ n) {t r : ℝ} + (ht : t ∈ (rightAngleSet n hn).directions) + (hr : r ∈ angleDomain (rightAngleSet n hn) ∪ {3 * Real.pi / 2}) : + r ∈ Set.Icc (t - polygonStepSize n + Real.pi / 2 - Real.pi) + (t - polygonStepSize n + Real.pi / 2) ∨ + r ∈ Set.Icc (t + Real.pi / 2) (t + Real.pi / 2 + Real.pi) := by + have hδpos : 0 < polygonStepSize n := by simp only [polygonStepSize]; positivity + obtain ⟨hδt, htδ⟩ := rightAngleSet_direction_bounds n hn ht + have htI := (rightAngleSet n hn).interior t ht + change t ∈ Set.Ioo 0 (Real.pi / 2) at htI + obtain ⟨ht0, htT⟩ := htI + rcases hr with hr | rfl + · change r ∈ ((rightAngleSet n hn).directions : Set ℝ) ∪ + ((fun q : ℝ ↦ q + Real.pi / 2) '' + ((rightAngleSet n hn).directions : Set ℝ)) ∪ + {(rightAngleSet n hn).angle, Real.pi / 2} at hr + rcases hr with (hr | ⟨q, hq, rfl⟩) | hr + · have hrI := (rightAngleSet n hn).interior r hr + change r ∈ Set.Ioo 0 (Real.pi / 2) at hrI + obtain ⟨hr0, hrT⟩ := hrI + left + constructor <;> linarith [Real.pi_pos] + · have hqI := (rightAngleSet n hn).interior q hq + change q ∈ Set.Ioo 0 (Real.pi / 2) at hqI + obtain ⟨hq0, hqT⟩ := hqI + simp only + rcases rightAngleSet_direction_le_pred_or_ge n hn hq ht with hqle | hqge + · left + constructor + · linarith [Real.pi_pos] + · linarith + · right + constructor <;> linarith [Real.pi_pos] + · simp only [Set.mem_insert_iff, Set.mem_singleton_iff] at hr + rcases hr with rfl | rfl <;> left + all_goals + change _ ≤ Real.pi / 2 ∧ Real.pi / 2 ≤ _ + constructor <;> linarith [Real.pi_pos] + · right + constructor <;> linarith [Real.pi_pos] + +private theorem rightAngle_allowedReal_gap_right (n : ℕ) (hn : 2 ≤ n) {t r : ℝ} + (ht : t ∈ (rightAngleSet n hn).directions) + (hr : r ∈ angleDomain (rightAngleSet n hn) ∪ {3 * Real.pi / 2}) : + r ∈ Set.Icc (t + Real.pi / 2 - Real.pi) (t + Real.pi / 2) ∨ + r ∈ Set.Icc (t + polygonStepSize n + Real.pi / 2) + (t + polygonStepSize n + Real.pi / 2 + Real.pi) := by + have hδpos : 0 < polygonStepSize n := by simp only [polygonStepSize]; positivity + obtain ⟨hδt, htδ⟩ := rightAngleSet_direction_bounds n hn ht + have htI := (rightAngleSet n hn).interior t ht + change t ∈ Set.Ioo 0 (Real.pi / 2) at htI + obtain ⟨ht0, htT⟩ := htI + rcases hr with hr | rfl + · change r ∈ ((rightAngleSet n hn).directions : Set ℝ) ∪ + ((fun q : ℝ ↦ q + Real.pi / 2) '' + ((rightAngleSet n hn).directions : Set ℝ)) ∪ + {(rightAngleSet n hn).angle, Real.pi / 2} at hr + rcases hr with (hr | ⟨q, hq, rfl⟩) | hr + · have hrI := (rightAngleSet n hn).interior r hr + change r ∈ Set.Ioo 0 (Real.pi / 2) at hrI + obtain ⟨hr0, hrT⟩ := hrI + left + constructor <;> linarith [Real.pi_pos] + · have hqI := (rightAngleSet n hn).interior q hq + change q ∈ Set.Ioo 0 (Real.pi / 2) at hqI + obtain ⟨hq0, hqT⟩ := hqI + simp only + rcases rightAngleSet_direction_le_or_succ_le n hn hq ht with hqle | hqge + · left + constructor <;> linarith [Real.pi_pos] + · right + constructor <;> linarith [Real.pi_pos] + · simp only [Set.mem_insert_iff, Set.mem_singleton_iff] at hr + rcases hr with rfl | rfl <;> left + all_goals + change _ ≤ Real.pi / 2 ∧ Real.pi / 2 ≤ _ + constructor <;> linarith [Real.pi_pos] + · right + constructor <;> linarith [Real.pi_pos] + +/-- The preceding shifted grid support is attained at the negative left-wall contact. -/ +private theorem rightAngle_supportValue_prev_shift (n : ℕ) (hn : 2 ≤ n) + (K : PolygonCapSpace (rightAngleSet n hn)) {t : ℝ} + (ht : t ∈ (rightAngleSet n hn).directions) : + supportValue K.val.val + ((t - polygonStepSize n + Real.pi / 2 : ℝ) : Real.Angle) = + inner ℝ (capVertices K.val t).2.2 + (normalVector ((t - polygonStepSize n + Real.pi / 2 : ℝ) : Real.Angle)) := by + let a := t - polygonStepSize n + Real.pi / 2 + let b := t + Real.pi / 2 + let R := angleDomain (rightAngleSet n hn) ∪ {3 * Real.pi / 2} + have hδpos : 0 < polygonStepSize n := by simp only [polygonStepSize]; positivity + have hδpi : polygonStepSize n < Real.pi := by + have hnpos : (0 : ℝ) < n := by positivity + have hn2 : (2 : ℝ) ≤ n := by exact_mod_cast hn + have hδT : polygonStepSize n < Real.pi / 2 := by + simp only [polygonStepSize] + apply (div_lt_iff₀ hnpos).2 + nlinarith [Real.pi_pos] + linarith [Real.pi_pos] + have hrepr : HasHalfPlaneRepresentation K.val.val + ((fun r : ℝ ↦ (r : Real.Angle)) '' R) := by + rw [← rightAngle_polygon_normals_eq n hn] + exact K.property + have hp : supportingIntersection K.val.val (a : Real.Angle) (b : Real.Angle) ∈ K.val.val := by + apply hrepr.supportingIntersection_mem_of_gap K.val.val R + · dsimp [a, b] + linarith + · dsimp [a, b] + linarith + · intro r hr + simpa only [a, b] using rightAngle_allowedReal_gap_left n hn ht hr + have heq := supportingIntersection_eq_edgeVertices_snd_of_mem K.val.val + (a := a) (b := b) (by dsimp [a, b]; linarith) + (by dsimp [a, b]; linarith) hp + have hinter := supportingIntersection_inner_left K.val.val a b + change inner ℝ (supportingIntersection K.val.val (a : Real.Angle) (b : Real.Angle)) + (normalVector (a : Real.Angle)) = supportValue K.val.val (a : Real.Angle) at hinter + change supportValue K.val.val (a : Real.Angle) = + inner ℝ (edgeVertices K.val.val (b : Real.Angle)).2 (normalVector (a : Real.Angle)) + rw [← heq, hinter] + +/-- The next shifted support is attained at the positive contact, including the final grid point. -/ +private theorem rightAngle_supportValue_next_shift (n : ℕ) (hn : 2 ≤ n) + (K : PolygonCapSpace (rightAngleSet n hn)) {t : ℝ} + (ht : t ∈ (rightAngleSet n hn).directions) : + supportValue K.val.val + ((t + polygonStepSize n + Real.pi / 2 : ℝ) : Real.Angle) = + inner ℝ (capVertices K.val t).2.1 + (normalVector ((t + polygonStepSize n + Real.pi / 2 : ℝ) : Real.Angle)) := by + let a := t + Real.pi / 2 + let b := t + polygonStepSize n + Real.pi / 2 + let R := angleDomain (rightAngleSet n hn) ∪ {3 * Real.pi / 2} + have hδpos : 0 < polygonStepSize n := by simp only [polygonStepSize]; positivity + have hδpi : polygonStepSize n < Real.pi := by + have hnpos : (0 : ℝ) < n := by positivity + have hn2 : (2 : ℝ) ≤ n := by exact_mod_cast hn + have hδT : polygonStepSize n < Real.pi / 2 := by + simp only [polygonStepSize] + apply (div_lt_iff₀ hnpos).2 + nlinarith [Real.pi_pos] + linarith [Real.pi_pos] + have hrepr : HasHalfPlaneRepresentation K.val.val + ((fun r : ℝ ↦ (r : Real.Angle)) '' R) := by + rw [← rightAngle_polygon_normals_eq n hn] + exact K.property + have hp : supportingIntersection K.val.val (a : Real.Angle) (b : Real.Angle) ∈ K.val.val := by + apply hrepr.supportingIntersection_mem_of_gap K.val.val R + · dsimp [a, b] + linarith + · dsimp [a, b] + linarith + · intro r hr + simpa only [a, b] using rightAngle_allowedReal_gap_right n hn ht hr + have heq := supportingIntersection_eq_edgeVertices_fst_of_mem K.val.val + (a := a) (b := b) (by dsimp [a, b]; linarith) + (by dsimp [a, b]; linarith) hp + have hinter := supportingIntersection_inner_right K.val.val a b + (show Real.sin (b - a) ≠ 0 by + apply ne_of_gt + apply Real.sin_pos_of_pos_of_lt_pi <;> dsimp [a, b] <;> linarith) + change inner ℝ (supportingIntersection K.val.val (a : Real.Angle) (b : Real.Angle)) + (normalVector (b : Real.Angle)) = supportValue K.val.val (b : Real.Angle) at hinter + change supportValue K.val.val (b : Real.Angle) = + inner ℝ (edgeVertices K.val.val (a : Real.Angle)).1 (normalVector (b : Real.Angle)) + rw [← heq, hinter] + +private theorem one_sub_cos_div_cos_eq_tan_mul_tan_half {δ : ℝ} + (hδ0 : 0 < δ) (hδT : δ < Real.pi / 2) : + (1 - Real.cos δ) / Real.cos δ = Real.tan δ * Real.tan (δ / 2) := by + have hc : Real.cos δ ≠ 0 := ne_of_gt + (Real.cos_pos_of_mem_Ioo ⟨by linarith [Real.pi_pos], hδT⟩) + have hch : Real.cos (δ / 2) ≠ 0 := ne_of_gt + (Real.cos_pos_of_mem_Ioo ⟨by linarith [Real.pi_pos], by linarith⟩) + rw [Real.tan_eq_sin_div_cos, Real.tan_eq_sin_div_cos] + field_simp [hc, hch] + have htwo : δ = 2 * (δ / 2) := by ring + have hcos : Real.cos δ = 1 - 2 * Real.sin (δ / 2) ^ 2 := + (congrArg Real.cos htwo).trans (Real.cos_two_mul_eq_one_sub _) + have hsin : Real.sin δ = 2 * Real.sin (δ / 2) * Real.cos (δ / 2) := + (congrArg Real.sin htwo).trans (Real.sin_two_mul _) + rw [hcos, hsin] + ring + +private theorem polygonStepSize_mem_Ioo (n : ℕ) (hn : 2 ≤ n) : + polygonStepSize n ∈ Set.Ioo 0 (Real.pi / 2) := by + have hnpos : (0 : ℝ) < n := by positivity + have hn2 : (2 : ℝ) ≤ n := by exact_mod_cast hn + constructor + · simp only [polygonStepSize] + positivity + · simp only [polygonStepSize] + apply (div_lt_iff₀ hnpos).2 + nlinarith [Real.pi_pos] + +private theorem rightAngle_bRay_prev_leg_length (n : ℕ) (hn : 2 ≤ n) + (K : PolygonCapSpace (rightAngleSet n hn)) {t : ℝ} + (ht : t ∈ (rightAngleSet n hn).directions) : + Measure.hausdorffMeasure 1 + ((rotatingHallwayParts (K.val.val : Set Point) (t : Real.Angle)).bRay ∩ + (innerWallUpperHalfPlanes K.val (t - polygonStepSize n)).2) = + ENNReal.ofReal (Real.tan (polygonStepSize n) * + max 0 ((tangentArmLengths K.val t).2.2 - 1 + + Real.tan (polygonStepSize n / 2))) := by + let δ := polygonStepSize n + let x := (rotatingHallwayParts (K.val.val : Set Point) (t : Real.Angle)).innerCorner + let y := (rotatingHallwayParts (K.val.val : Set Point) (t : Real.Angle)).outerCorner + let c := (capVertices K.val t).2.2 + let g := (tangentArmLengths K.val t).2.2 + let u := t - δ + Real.pi / 2 + have hδI : δ ∈ Set.Ioo 0 (Real.pi / 2) := polygonStepSize_mem_Ioo n hn + have hcδ : 0 < Real.cos δ := Real.cos_pos_of_mem_Ioo + ⟨by linarith [hδI.1, Real.pi_pos], hδI.2⟩ + have hnormal : normalVector (u : Real.Angle) = + Real.sin δ • normalVector (t : Real.Angle) + + Real.cos δ • tangentVector (t : Real.Angle) := by + have h := normalVector_add_real t (Real.pi / 2 - δ) + rw [Real.cos_pi_div_two_sub, Real.sin_pi_div_two_sub] at h + have hu : u = t + (Real.pi / 2 - δ) := by dsimp [u]; ring + rw [hu] + exact h + have htrans : 0 < inner ℝ (tangentVector (t : Real.Angle)) + (normalVector (u : Real.Angle)) := by + rw [hnormal, inner_add_right, inner_smul_right, inner_smul_right, + real_inner_comm, inner_normalVector_tangentVector, inner_tangentVector_self] + simpa using hcδ + rw [show (innerWallUpperHalfPlanes K.val (t - polygonStepSize n)).2 = + normalHalfPlane (u : Real.Angle) + (supportValue K.val.val (u : Real.Angle) - 1) true false by + simp only [innerWallUpperHalfPlanes, u, δ] + ] + rw [hausdorffMeasure_bRay_inter_normalHalfPlane _ _ _ _ htrans] + have hx : x = y - normalVector (t : Real.Angle) - tangentVector (t : Real.Angle) := by + have hf := rotatingHallwayParts_formulas (K.val.val : Set Point) (t : Real.Angle) + rw [show x = (rotatingHallwayParts (K.val.val : Set Point) + (t : Real.Angle)).innerCorner by rfl, hf.2.1] + rw [show y = (rotatingHallwayParts (K.val.val : Set Point) + (t : Real.Angle)).outerCorner by rfl, hf.2.2.1] + module + have hy : y = c + g • normalVector (t : Real.Angle) := by + change (rotatingHallwayParts (K.val.val : Set Point) + (t : Real.Angle)).outerCorner = + (capVertices K.val t).2.2 + + (tangentArmLengths K.val t).2.2 • normalVector (t : Real.Angle) + exact (capTangentArm_identities K.val t).2.2.2 + have hsupport : supportValue K.val.val (u : Real.Angle) = + inner ℝ c (normalVector (u : Real.Angle)) := by + simpa only [u, δ, c] using rightAngle_supportValue_prev_shift n hn K ht + have hd : inner ℝ (tangentVector (t : Real.Angle)) + (normalVector (u : Real.Angle)) = Real.cos δ := by + rw [hnormal, inner_add_right, inner_smul_right, inner_smul_right, + real_inner_comm, inner_normalVector_tangentVector, inner_tangentVector_self] + ring + have hnum : inner ℝ x (normalVector (u : Real.Angle)) - + (supportValue K.val.val (u : Real.Angle) - 1) = + (g - 1) * Real.sin δ + 1 - Real.cos δ := by + rw [hx, hy, hsupport, hnormal] + simp only [inner_sub_left, inner_add_left, + inner_add_right, inner_smul_right, inner_normalVector_self, + inner_normalVector_tangentVector, real_inner_comm, inner_tangentVector_self] + ring + have hratio : + (inner ℝ x (normalVector (u : Real.Angle)) - + (supportValue K.val.val (u : Real.Angle) - 1)) / + inner ℝ (tangentVector (t : Real.Angle)) (normalVector (u : Real.Angle)) = + Real.tan δ * (g - 1 + Real.tan (δ / 2)) := by + rw [hnum, hd] + calc + ((g - 1) * Real.sin δ + 1 - Real.cos δ) / Real.cos δ = + Real.tan δ * (g - 1) + (1 - Real.cos δ) / Real.cos δ := by + rw [Real.tan_eq_sin_div_cos] + field_simp [hcδ.ne'] + ring + _ = Real.tan δ * (g - 1) + Real.tan δ * Real.tan (δ / 2) := by + rw [one_sub_cos_div_cos_eq_tan_mul_tan_half hδI.1 hδI.2] + _ = Real.tan δ * (g - 1 + Real.tan (δ / 2)) := by ring + change ENNReal.ofReal (max 0 _) = ENNReal.ofReal (_ * max 0 _) + rw [hratio] + congr 1 + rw [mul_max_of_nonneg _ _ (Real.tan_pos_of_pos_of_lt_pi_div_two hδI.1 hδI.2).le, + mul_zero] + +private theorem rightAngle_bRay_next_leg_length (n : ℕ) (hn : 2 ≤ n) + (K : PolygonCapSpace (rightAngleSet n hn)) {t : ℝ} + (ht : t ∈ (rightAngleSet n hn).directions) : + Measure.hausdorffMeasure 1 + ((rotatingHallwayParts (K.val.val : Set Point) (t : Real.Angle)).bRay ∩ + (innerWallUpperHalfPlanes K.val (t + polygonStepSize n)).2) = + ENNReal.ofReal (Real.tan (polygonStepSize n) * + max 0 (1 - (tangentArmLengths K.val t).2.1 + + Real.tan (polygonStepSize n / 2))) := by + let δ := polygonStepSize n + let x := (rotatingHallwayParts (K.val.val : Set Point) (t : Real.Angle)).innerCorner + let y := (rotatingHallwayParts (K.val.val : Set Point) (t : Real.Angle)).outerCorner + let c := (capVertices K.val t).2.1 + let g := (tangentArmLengths K.val t).2.1 + let u := t + δ + Real.pi / 2 + have hδI : δ ∈ Set.Ioo 0 (Real.pi / 2) := polygonStepSize_mem_Ioo n hn + have hcδ : 0 < Real.cos δ := Real.cos_pos_of_mem_Ioo + ⟨by linarith [hδI.1, Real.pi_pos], hδI.2⟩ + have hnormal : normalVector (u : Real.Angle) = + (-Real.sin δ) • normalVector (t : Real.Angle) + + Real.cos δ • tangentVector (t : Real.Angle) := by + have h := normalVector_add_real t (Real.pi / 2 + δ) + simp only [Real.cos_add, Real.sin_add, Real.cos_pi_div_two, + Real.sin_pi_div_two, zero_mul, one_mul, zero_sub, add_zero] at h + have hu : u = t + (Real.pi / 2 + δ) := by dsimp [u]; ring + rw [hu] + exact h + have htrans : 0 < inner ℝ (tangentVector (t : Real.Angle)) + (normalVector (u : Real.Angle)) := by + rw [hnormal, inner_add_right, inner_smul_right, inner_smul_right, + real_inner_comm, inner_normalVector_tangentVector, inner_tangentVector_self] + simpa using hcδ + rw [show (innerWallUpperHalfPlanes K.val (t + polygonStepSize n)).2 = + normalHalfPlane (u : Real.Angle) + (supportValue K.val.val (u : Real.Angle) - 1) true false by + simp only [innerWallUpperHalfPlanes, u, δ] + ] + rw [hausdorffMeasure_bRay_inter_normalHalfPlane _ _ _ _ htrans] + have hx : x = y - normalVector (t : Real.Angle) - tangentVector (t : Real.Angle) := by + have hf := rotatingHallwayParts_formulas (K.val.val : Set Point) (t : Real.Angle) + rw [show x = (rotatingHallwayParts (K.val.val : Set Point) + (t : Real.Angle)).innerCorner by rfl, hf.2.1] + rw [show y = (rotatingHallwayParts (K.val.val : Set Point) + (t : Real.Angle)).outerCorner by rfl, hf.2.2.1] + module + have hy : y = c + g • normalVector (t : Real.Angle) := by + change (rotatingHallwayParts (K.val.val : Set Point) + (t : Real.Angle)).outerCorner = + (capVertices K.val t).2.1 + + (tangentArmLengths K.val t).2.1 • normalVector (t : Real.Angle) + exact (capTangentArm_identities K.val t).2.2.1 + have hsupport : supportValue K.val.val (u : Real.Angle) = + inner ℝ c (normalVector (u : Real.Angle)) := by + simpa only [u, δ, c] using rightAngle_supportValue_next_shift n hn K ht + have hd : inner ℝ (tangentVector (t : Real.Angle)) + (normalVector (u : Real.Angle)) = Real.cos δ := by + rw [hnormal, inner_add_right, inner_smul_right, inner_smul_right, + real_inner_comm, inner_normalVector_tangentVector, inner_tangentVector_self] + ring + have hnum : inner ℝ x (normalVector (u : Real.Angle)) - + (supportValue K.val.val (u : Real.Angle) - 1) = + (1 - g) * Real.sin δ + 1 - Real.cos δ := by + rw [hx, hy, hsupport, hnormal] + simp only [inner_sub_left, inner_add_left, inner_add_right, inner_smul_right, + inner_normalVector_self, inner_normalVector_tangentVector, real_inner_comm, + inner_tangentVector_self] + ring + have hratio : + (inner ℝ x (normalVector (u : Real.Angle)) - + (supportValue K.val.val (u : Real.Angle) - 1)) / + inner ℝ (tangentVector (t : Real.Angle)) (normalVector (u : Real.Angle)) = + Real.tan δ * (1 - g + Real.tan (δ / 2)) := by + rw [hnum, hd] + calc + ((1 - g) * Real.sin δ + 1 - Real.cos δ) / Real.cos δ = + Real.tan δ * (1 - g) + (1 - Real.cos δ) / Real.cos δ := by + rw [Real.tan_eq_sin_div_cos] + field_simp [hcδ.ne'] + ring + _ = Real.tan δ * (1 - g) + Real.tan δ * Real.tan (δ / 2) := by + rw [one_sub_cos_div_cos_eq_tan_mul_tan_half hδI.1 hδI.2] + _ = Real.tan δ * (1 - g + Real.tan (δ / 2)) := by ring + change ENNReal.ofReal (max 0 _) = ENNReal.ofReal (_ * max 0 _) + rw [hratio] + congr 1 + rw [mul_max_of_nonneg _ _ (Real.tan_pos_of_pos_of_lt_pi_div_two hδI.1 hδI.2).le, + mul_zero] + +theorem maximumPolygonCap_leg_lengths (n : ℕ) (hn : 2 ≤ n) + (K : PolygonCapSpace (rightAngleSet n hn)) + (t : ℝ) (ht : t ∈ (rightAngleSet n hn).directions) : + MeasureTheory.Measure.hausdorffMeasure 1 + ((rotatingHallwayParts (K.val.val : Set Point) (t : Real.Angle)).bRay ∩ + (innerWallUpperHalfPlanes K.val (t - polygonStepSize n)).2) = + ENNReal.ofReal (Real.tan (polygonStepSize n) * + max 0 ((tangentArmLengths K.val t).2.2 - 1 + + Real.tan (polygonStepSize n / 2))) ∧ + MeasureTheory.Measure.hausdorffMeasure 1 + ((rotatingHallwayParts (K.val.val : Set Point) (t : Real.Angle)).bRay ∩ + (innerWallUpperHalfPlanes K.val (t + polygonStepSize n)).2) = + ENNReal.ofReal (Real.tan (polygonStepSize n) * + max 0 (1 - (tangentArmLengths K.val t).2.1 + + Real.tan (polygonStepSize n / 2))) := by + exact ⟨rightAngle_bRay_prev_leg_length n hn K ht, + rightAngle_bRay_next_leg_length n hn K ht⟩ + +/-- The face line of a convex body meets the two adjacent inner-wall half-planes in a set whose +length is at most `2 tan(δ/2)` less the face length. -/ +theorem hausdorffMeasure_faceLine_inter_innerWalls_le (K : ConvexBody Point) + (t δ : ℝ) (hδ0 : 0 < δ) (hδ : δ < Real.pi) : + Measure.hausdorffMeasure 1 + ({p : Point | inner ℝ p (normalVector (t : Real.Angle)) = + supportValue (K : Set Point) (t : Real.Angle) - 1} ∩ + (normalHalfPlane ((t - δ : ℝ) : Real.Angle) + (supportValue (K : Set Point) ((t - δ : ℝ) : Real.Angle) - 1) true false ∩ + normalHalfPlane ((t + δ : ℝ) : Real.Angle) + (supportValue (K : Set Point) ((t + δ : ℝ) : Real.Angle) - 1) true false)) ≤ + ENNReal.ofReal (max 0 (2 * Real.tan (δ / 2) - + (surfaceAreaMeasure K {(t : Real.Angle)}).toReal)) := by + have hpi := Real.pi_pos + have hsin : 0 < Real.sin δ := Real.sin_pos_of_pos_of_lt_pi hδ0 hδ + have hhalfcos : 0 < Real.cos (δ / 2) := Real.cos_pos_of_mem_Ioo ⟨by linarith, by linarith⟩ + have hhalfsin : 0 < Real.sin (δ / 2) := Real.sin_pos_of_pos_of_lt_pi (by linarith) (by linarith) + have htanhalf : (1 - Real.cos δ) / Real.sin δ = Real.tan (δ / 2) := by + have h1 : Real.sin δ = 2 * Real.sin (δ / 2) * Real.cos (δ / 2) := by + have h := Real.sin_two_mul (δ / 2) + rwa [show 2 * (δ / 2) = δ by ring] at h + have h2 : Real.cos δ = 2 * Real.cos (δ / 2) ^ 2 - 1 := by + have h := Real.cos_two_mul (δ / 2) + rwa [show 2 * (δ / 2) = δ by ring] at h + rw [Real.tan_eq_sin_div_cos, h1, h2, div_eq_div_iff (by positivity) hhalfcos.ne'] + nlinarith [Real.sin_sq_add_cos_sq (δ / 2)] + have hneg : t - (t + δ) = -δ := by ring + have hpos : t - (t - δ) = δ := by ring + have hAn : inner ℝ (edgeVertices K (t : Real.Angle)).1 (normalVector (t : Real.Angle)) = + supportValue (K : Set Point) (t : Real.Angle) := (edgeVertices_fst_mem K _).2 + have hBn : inner ℝ (edgeVertices K (t : Real.Angle)).2 (normalVector (t : Real.Angle)) = + supportValue (K : Set Point) (t : Real.Angle) := (edgeVertices_snd_mem K _).2 + have hApb := inner_le_supportValue K (edgeVertices_fst_mem K (t : Real.Angle)).1 + ((t + δ : ℝ) : Real.Angle) + have hBmb := inner_le_supportValue K (edgeVertices_snd_mem K (t : Real.Angle)).1 + ((t - δ : ℝ) : Real.Angle) + rw [inner_normalVector_eq_frame_rotate _ t (t + δ), hneg, Real.cos_neg, Real.sin_neg, + hAn] at hApb + rw [inner_normalVector_eq_frame_rotate _ t (t - δ), hpos, hBn] at hBmb + have hAB := (surfaceAreaMeasure_atom_length K (t : Real.Angle)).2.2 + have hgap : inner ℝ (edgeVertices K (t : Real.Angle)).1 (tangentVector (t : Real.Angle)) = + inner ℝ (edgeVertices K (t : Real.Angle)).2 (tangentVector (t : Real.Angle)) + + (surfaceAreaMeasure K {(t : Real.Angle)}).toReal := by + rw [hAB, inner_add_left, real_inner_smul_left, inner_tangentVector_self, mul_one] + refine le_trans (hausdorffMeasure_le_of_frame_bounds (t := t) + (e := supportValue (K : Set Point) (t : Real.Angle) - 1) + (lo := inner ℝ (edgeVertices K (t : Real.Angle)).1 (tangentVector (t : Real.Angle)) - + Real.tan (δ / 2)) + (hi := inner ℝ (edgeVertices K (t : Real.Angle)).2 (tangentVector (t : Real.Angle)) + + Real.tan (δ / 2)) ?_) (le_of_eq ?_) + · rintro p ⟨hline, hprev, hnext⟩ + have hpn : inner ℝ p (normalVector (t : Real.Angle)) = + supportValue (K : Set Point) (t : Real.Angle) - 1 := hline + change supportValue (K : Set Point) ((t - δ : ℝ) : Real.Angle) - 1 ≤ + inner ℝ p (normalVector ((t - δ : ℝ) : Real.Angle)) at hprev + change supportValue (K : Set Point) ((t + δ : ℝ) : Real.Angle) - 1 ≤ + inner ℝ p (normalVector ((t + δ : ℝ) : Real.Angle)) at hnext + rw [inner_normalVector_eq_frame_rotate p t (t - δ), hpos, hpn] at hprev + rw [inner_normalVector_eq_frame_rotate p t (t + δ), hneg, Real.cos_neg, Real.sin_neg, + hpn] at hnext + have hkeyU : (inner ℝ p (tangentVector (t : Real.Angle)) - + inner ℝ (edgeVertices K (t : Real.Angle)).2 (tangentVector (t : Real.Angle))) * + Real.sin δ ≤ 1 - Real.cos δ := by nlinarith [hprev, hBmb] + have hkeyL : (inner ℝ (edgeVertices K (t : Real.Angle)).1 (tangentVector (t : Real.Angle)) - + inner ℝ p (tangentVector (t : Real.Angle))) * Real.sin δ ≤ 1 - Real.cos δ := by + nlinarith [hnext, hApb] + have hU := (le_div_iff₀ hsin).mpr hkeyU + have hL := (le_div_iff₀ hsin).mpr hkeyL + rw [htanhalf] at hU hL + exact ⟨hpn, by linarith, by linarith⟩ + · have hlen : inner ℝ (edgeVertices K (t : Real.Angle)).2 (tangentVector (t : Real.Angle)) + + Real.tan (δ / 2) - + (inner ℝ (edgeVertices K (t : Real.Angle)).1 (tangentVector (t : Real.Angle)) - + Real.tan (δ / 2)) = + 2 * Real.tan (δ / 2) - (surfaceAreaMeasure K {(t : Real.Angle)}).toReal := by + rw [hgap] + ring + rw [hlen] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Bounds / Lower / Profile +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Integrate the reflected arm profile through the second magic function and add one. -/ +def armIntegralOperator (f : C(Set.Icc (0 : ℝ) (Real.pi / 2), NNReal)) : + C(Set.Icc (0 : ℝ) (Real.pi / 2), ℝ) where + toFun x := 1 + ∫ u in (0 : ℝ)..(x : ℝ), + magicFunctions.2 (f (Set.projIcc 0 (Real.pi / 2) (by positivity) (Real.pi / 2 - u))) + continuous_toFun := by + have hf : Continuous (fun u : ℝ ↦ + magicFunctions.2 (f (Set.projIcc 0 (Real.pi / 2) (by positivity) + (Real.pi / 2 - u)))) := by + unfold magicFunctions + fun_prop + exact continuous_const.add + ((intervalIntegral.differentiable_integral_of_continuous hf).continuous.comp + continuous_subtype_val) + +/-- Iteratively improve the nonnegative arm lower bound by taking the maximum with its +integral update. -/ +def armLowerBoundSequence : ℕ → C(Set.Icc (0 : ℝ) (Real.pi / 2), NNReal) + | 0 => ⟨fun _ ↦ 0, continuous_const⟩ + | n + 1 => + ⟨fun x ↦ max (armLowerBoundSequence n x) + (Real.toNNReal (armIntegralOperator (armLowerBoundSequence n) x)), + (armLowerBoundSequence n).continuous.max + (continuous_real_toNNReal.comp (armIntegralOperator (armLowerBoundSequence + n)).continuous)⟩ + +/-- The continuous profile `max (1 - x) c` on the quarter-turn interval. -/ +def lowerBoundProfile (c : Set.Icc (0 : ℝ) 1) : + C(Set.Icc (0 : ℝ) (Real.pi / 2), ℝ) where + toFun x := max (1 - (x : ℝ)) (c : ℝ) + continuous_toFun := (continuous_const.sub continuous_subtype_val).max continuous_const + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Bounds / Niche Limits +-/ + +@[expose] public section + +noncomputable section + +open Filter MeasureTheory +open scoped Topology + +namespace MovingSofa + +/-- Support values converge under Hausdorff convergence of caps. -/ +theorem tendsto_supportValue_of_hausdorff {ω : ℝ} + (K : ℕ → CapSpace ω) (L : CapSpace ω) + (hlim : Tendsto (fun i ↦ Metric.hausdorffDist ((K i).val : Set Point) + (L.val : Set Point)) atTop (𝓝 0)) (t : ℝ) : + Tendsto (fun i ↦ supportValue (K i).val (t : Real.Angle)) atTop + (𝓝 (supportValue L.val (t : Real.Angle))) := by + apply tendsto_iff_dist_tendsto_zero.mpr + apply squeeze_zero (fun _ ↦ dist_nonneg) _ hlim + intro i + simpa only [Real.dist_eq, vectorSupport, supportValue] using + (compactSet_support_continuity (K i).val L.val (K i).val.nonempty + (K i).val.isCompact L.val.nonempty L.val.isCompact).2.1 + (normalVector (t : Real.Angle)) (norm_normalVector_real t) + +private theorem volume_normalLine_eq_zero (t c : ℝ) : + volume {p : Point | inner ℝ p (normalVector (t : Real.Angle)) = c} = 0 := by + let u := normalVector (t : Real.Angle) + let f : Point →ᵃ[ℝ] ℝ := (innerSL ℝ u).toLinearMap.toAffineMap + let A := (AffineSubspace.mk' c (⊥ : Submodule ℝ ℝ)).comap f + have hA : (A : Set Point) = {p : Point | inner ℝ p u = c} := by + ext p + simp [A, f, AffineSubspace.mem_mk', real_inner_comm, sub_eq_zero] + rw [← hA] + apply Measure.addHaar_affineSubspace + intro htop + have hp : (c + 1) • u ∈ A := by rw [htop]; trivial + rw [← SetLike.mem_coe, hA] at hp + have hu : inner ℝ u u = 1 := by + rw [real_inner_self_eq_norm_sq, norm_normalVector_real] + norm_num + change inner ℝ ((c + 1) • u) u = c at hp + rw [real_inner_smul_left, hu, mul_one] at hp + linarith + +private theorem eventually_lt_iff_of_ne {f : ℕ → ℝ} {a x : ℝ} + (hf : Tendsto f atTop (𝓝 a)) (hxa : x ≠ a) : + ∀ᶠ i in atTop, (x < f i ↔ x < a) := by + rcases lt_or_gt_of_ne hxa with h | h + · filter_upwards [hf.eventually_const_lt h] with i hi + exact iff_of_true hi h + · filter_upwards [hf.eventually_lt_const h] with i hi + exact iff_of_false (not_lt_of_ge hi.le) (not_lt_of_ge h.le) + +private theorem ae_eventually_mem_polygonNiche_iff (Θ : AngleSet) + (K : ℕ → CapSpace Θ.angle) (L : CapSpace Θ.angle) + (hlim : Tendsto (fun i ↦ Metric.hausdorffDist ((K i).val : Set Point) + (L.val : Set Point)) atTop (𝓝 0)) : + ∀ᵐ p ∂volume, ∀ᶠ i in atTop, (p ∈ polygonNiche Θ (K i) ↔ p ∈ polygonNiche Θ L) := by + have hae (t : ℝ) : ∀ᵐ p ∂volume, + inner ℝ p (normalVector (t : Real.Angle)) ≠ supportValue L.val (t : Real.Angle) - 1 := by + apply ae_iff.mpr + simpa only [not_not] using volume_normalLine_eq_zero t + (supportValue L.val (t : Real.Angle) - 1) + have hall : ∀ᵐ p ∂volume, ∀ t ∈ Θ.directions, + inner ℝ p (normalVector (t : Real.Angle)) ≠ supportValue L.val (t : Real.Angle) - 1 ∧ + inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) ≠ + supportValue L.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := + Θ.directions.eventually_all.mpr fun t _ ↦ (hae t).and (hae (t + Real.pi / 2)) + filter_upwards [hall] with p hp + have hq (t : ℝ) (ht : t ∈ Θ.directions) : ∀ᶠ i in atTop, + (p ∈ innerQuadrant (K i).val t ↔ p ∈ innerQuadrant L.val t) := by + have h₁ := eventually_lt_iff_of_ne + ((tendsto_supportValue_of_hausdorff K L hlim t).sub_const 1) (hp t ht).1 + have h₂ := eventually_lt_iff_of_ne + ((tendsto_supportValue_of_hausdorff K L hlim (t + Real.pi / 2)).sub_const 1) + (hp t ht).2 + filter_upwards [h₁, h₂] with i h₁ h₂ + exact and_congr h₁ h₂ + filter_upwards [Θ.directions.eventually_all.mpr hq] with i hi + simp only [polygonNiche, Set.mem_inter_iff, Set.mem_iUnion] + constructor + · rintro ⟨hf, t, ht, hqt⟩ + exact ⟨hf, t, ht, (hi t ht).mp hqt⟩ + · rintro ⟨hf, t, ht, hqt⟩ + exact ⟨hf, t, ht, (hi t ht).mpr hqt⟩ + +private theorem eventually_le_iff_of_ne {f : ℕ → ℝ} {a x : ℝ} + (hf : Tendsto f atTop (𝓝 a)) (hxa : x ≠ a) : + ∀ᶠ i in atTop, (x ≤ f i ↔ x ≤ a) := by + rcases lt_or_gt_of_ne hxa with h | h + · filter_upwards [hf.eventually_const_lt h] with i hi + exact iff_of_true hi.le h.le + · filter_upwards [hf.eventually_lt_const h] with i hi + exact iff_of_false (not_le_of_gt hi) (not_le_of_gt h) + +private theorem ae_eventually_mem_angleCap_iff (Θ : AngleSet) + (K : ℕ → CapSpace Θ.angle) (L : CapSpace Θ.angle) + (hlim : Tendsto (fun i ↦ Metric.hausdorffDist ((K i).val : Set Point) + (L.val : Set Point)) atTop (𝓝 0)) : + ∀ᵐ p ∂volume, ∀ᶠ i in atTop, (p ∈ angleCap Θ (K i) ↔ p ∈ angleCap Θ L) := by + have hae (t : ℝ) : ∀ᵐ p ∂volume, + inner ℝ p (normalVector (t : Real.Angle)) ≠ supportValue L.val (t : Real.Angle) := by + apply ae_iff.mpr + simpa only [not_not] using volume_normalLine_eq_zero t + (supportValue L.val (t : Real.Angle)) + have hall : ∀ᵐ p ∂volume, ∀ t ∈ Θ.directions, + inner ℝ p (normalVector (t : Real.Angle)) ≠ supportValue L.val (t : Real.Angle) ∧ + inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) ≠ + supportValue L.val ((t + Real.pi / 2 : ℝ) : Real.Angle) := + Θ.directions.eventually_all.mpr fun t _ ↦ (hae t).and (hae (t + Real.pi / 2)) + filter_upwards [hall] with p hp + have hq (t : ℝ) (ht : t ∈ Θ.directions) : ∀ᶠ i in atTop, + (inner ℝ p (normalVector (t : Real.Angle)) ≤ supportValue (K i).val (t : Real.Angle) ↔ + inner ℝ p (normalVector (t : Real.Angle)) ≤ supportValue L.val (t : Real.Angle)) ∧ + (inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) ≤ + supportValue (K i).val ((t + Real.pi / 2 : ℝ) : Real.Angle) ↔ + inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) ≤ + supportValue L.val ((t + Real.pi / 2 : ℝ) : Real.Angle)) := + (eventually_le_iff_of_ne (tendsto_supportValue_of_hausdorff K L hlim t) (hp t ht).1).and + (eventually_le_iff_of_ne (tendsto_supportValue_of_hausdorff K L hlim + (t + Real.pi / 2)) (hp t ht).2) + filter_upwards [Θ.directions.eventually_all.mpr hq] with i hi + simp only [mem_angleCap_iff] + apply and_congr_right + intro _ + exact forall_congr' fun t ↦ forall_congr' fun ht ↦ and_congr (hi t ht).1 (hi t ht).2 + +private theorem exists_angleCap_norm_bound (Θ : AngleSet) + (K : ℕ → CapSpace Θ.angle) (L : CapSpace Θ.angle) + (hlim : Tendsto (fun i ↦ Metric.hausdorffDist ((K i).val : Set Point) + (L.val : Set Point)) atTop (𝓝 0)) : + ∃ R : ℝ, ∀ i p, p ∈ angleCap Θ (K i) → ‖p‖ ≤ R := by + obtain ⟨t, ht⟩ := Θ.nonempty + have hti := Θ.interior t ht + have hc : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, hti.1], hti.2.trans_le Θ.angle_le⟩ + have hs : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi hti.1 + (by linarith [hti.2, Θ.angle_le, Real.pi_pos]) + obtain ⟨A, hA⟩ := (Metric.isBounded_range_of_tendsto _ + (tendsto_supportValue_of_hausdorff K L hlim t)).exists_norm_le + obtain ⟨B, hB⟩ := (Metric.isBounded_range_of_tendsto _ + (tendsto_supportValue_of_hausdorff K L hlim (t + Real.pi / 2))).exists_norm_le + let l := -|B| / Real.sin t + let r := |A| / Real.cos t + let M := |l| + |r| + have hM : 0 ≤ M := by dsimp [M]; positivity + refine ⟨M + 1, fun i p hp ↦ ?_⟩ + have haBound : supportValue (K i).val (t : Real.Angle) ≤ |A| := + (le_abs_self _).trans ((hA _ (Set.mem_range_self i)).trans (le_abs_self A)) + have hbBound : supportValue (K i).val ((t + Real.pi / 2 : ℝ) : Real.Angle) ≤ |B| := + (le_abs_self _).trans ((hB _ (Set.mem_range_self i)).trans (le_abs_self B)) + obtain ⟨⟨hy, _⟩, hnormals⟩ := (mem_angleCap_iff Θ (K i) p).mp hp + obtain ⟨ha, hb⟩ := hnormals t ht + simp [normalVector, frame, PiLp.inner_apply, Real.cos_add, Real.sin_add, + -Real.Angle.coe_add] at ha hb + have hl : l ≤ p 0 := by + apply (div_le_iff₀ hs).mpr + nlinarith [mul_nonneg hc.le hy.1] + have hr : p 0 ≤ r := by + apply (le_div_iff₀ hc).mpr + nlinarith [mul_nonneg hs.le hy.1] + have hx : |p 0| ≤ M := by + apply abs_le.mpr + dsimp [M] + constructor <;> linarith [neg_abs_le l, le_abs_self r, abs_nonneg l, abs_nonneg r] + have hx2 := (sq_le_sq₀ (abs_nonneg (p 0)) hM).mpr hx + have hy2 : (p 1) ^ 2 ≤ 1 := by nlinarith [hy.1, hy.2] + have hn := EuclideanSpace.norm_sq_eq p + simp only [Fin.sum_univ_two, Real.norm_eq_abs, sq_abs] at hn hx2 + nlinarith [norm_nonneg p] + +private theorem tendsto_polygonNiche_area (Θ : AngleSet) + (K : ℕ → CapSpace Θ.angle) (L : CapSpace Θ.angle) + (hlim : Tendsto (fun i ↦ Metric.hausdorffDist ((K i).val : Set Point) + (L.val : Set Point)) atTop (𝓝 0)) : + Tendsto (fun i ↦ ClassicalResults.area (polygonNiche Θ (K i))) atTop + (𝓝 (ClassicalResults.area (polygonNiche Θ L))) := by + obtain ⟨R, hR, _, hpoly⟩ := niche_uniform_bounds.2.2 (fun _ ↦ Θ.angle) K L.val hlim + let C := Metric.closedBall (0 : Point) (2 * R) + have hcompact : IsCompact C := isCompact_closedBall _ _ + have hsubset (i : ℕ) : polygonNiche Θ (K i) ⊆ C := by + intro p hp + obtain ⟨hx, hy, hh⟩ := hpoly i Θ (K i) rfl hp + change dist p 0 ≤ 2 * R + rw [dist_zero_right] + have hx2 := (sq_le_sq₀ (abs_nonneg (p 0)) hR).mpr hx + have hy2 := (sq_le_sq₀ hy hR).mpr hh + have hn := EuclideanSpace.norm_sq_eq p + simp only [Fin.sum_univ_two, Real.norm_eq_abs, sq_abs] at hn hx2 + nlinarith [norm_nonneg p, sq_nonneg R] + have hCint : Integrable (C.indicator fun _ ↦ (1 : ℝ)) := + (integrableOn_const hcompact.measure_lt_top.ne).integrable_indicator hcompact.measurableSet + have hpointwise : ∀ᵐ p ∂volume, + Tendsto (fun i ↦ (polygonNiche Θ (K i)).indicator (fun _ ↦ (1 : ℝ)) p) + atTop (𝓝 ((polygonNiche Θ L).indicator (fun _ ↦ (1 : ℝ)) p)) := by + filter_upwards [ae_eventually_mem_polygonNiche_iff Θ K L hlim] with p hp + apply Tendsto.congr' _ tendsto_const_nhds + filter_upwards [hp] with i hi + by_cases h : p ∈ polygonNiche Θ L + · simp [h, hi.mpr h] + · have hn : p ∉ polygonNiche Θ (K i) := fun hk ↦ h (hi.mp hk) + simp [h, hn] + have hconv := tendsto_integral_filter_of_dominated_convergence (μ := volume) + (F := fun i ↦ (polygonNiche Θ (K i)).indicator fun _ ↦ (1 : ℝ)) + (f := (polygonNiche Θ L).indicator fun _ ↦ (1 : ℝ)) + (C.indicator fun _ ↦ (1 : ℝ)) + (Eventually.of_forall fun i ↦ + (measurable_const.indicator (measurableSet_polygonNiche Θ (K i))).aestronglyMeasurable) + (Eventually.of_forall fun i ↦ Eventually.of_forall fun p ↦ by + by_cases hp : p ∈ polygonNiche Θ (K i) + · simp [hp, hsubset i hp] + · by_cases hpc : p ∈ C <;> simp [hp, hpc]) hCint hpointwise + have harea (P : CapSpace Θ.angle) : + (∫ p, (polygonNiche Θ P).indicator (fun _ ↦ (1 : ℝ)) p) = + ClassicalResults.area (polygonNiche Θ P) := by + exact integral_indicator_one (measurableSet_polygonNiche Θ P) + simpa only [harea] using hconv + +private theorem tendsto_angleCap_area (Θ : AngleSet) + (K : ℕ → CapSpace Θ.angle) (L : CapSpace Θ.angle) + (hlim : Tendsto (fun i ↦ Metric.hausdorffDist ((K i).val : Set Point) + (L.val : Set Point)) atTop (𝓝 0)) : + Tendsto (fun i ↦ ClassicalResults.area (angleCap Θ (K i))) atTop + (𝓝 (ClassicalResults.area (angleCap Θ L))) := by + obtain ⟨R, hR⟩ := exists_angleCap_norm_bound Θ K L hlim + let C := Metric.closedBall (0 : Point) R + have hcompact : IsCompact C := isCompact_closedBall _ _ + have hsubset (i : ℕ) : angleCap Θ (K i) ⊆ C := by + intro p hp + simpa only [C, Metric.mem_closedBall, dist_zero_right] using hR i p hp + have hCint : Integrable (C.indicator fun _ ↦ (1 : ℝ)) := + (integrableOn_const hcompact.measure_lt_top.ne).integrable_indicator hcompact.measurableSet + have hpointwise : ∀ᵐ p ∂volume, + Tendsto (fun i ↦ (angleCap Θ (K i)).indicator (fun _ ↦ (1 : ℝ)) p) + atTop (𝓝 ((angleCap Θ L).indicator (fun _ ↦ (1 : ℝ)) p)) := by + filter_upwards [ae_eventually_mem_angleCap_iff Θ K L hlim] with p hp + apply Tendsto.congr' _ tendsto_const_nhds + filter_upwards [hp] with i hi + by_cases h : p ∈ angleCap Θ L + · simp [h, hi.mpr h] + · have hn : p ∉ angleCap Θ (K i) := fun hk ↦ h (hi.mp hk) + simp [h, hn] + have hconv := tendsto_integral_filter_of_dominated_convergence (μ := volume) + (F := fun i ↦ (angleCap Θ (K i)).indicator fun _ ↦ (1 : ℝ)) + (f := (angleCap Θ L).indicator fun _ ↦ (1 : ℝ)) + (C.indicator fun _ ↦ (1 : ℝ)) + (Eventually.of_forall fun i ↦ + (measurable_const.indicator (isClosed_angleCap Θ (K i)).measurableSet).aestronglyMeasurable) + (Eventually.of_forall fun i ↦ Eventually.of_forall fun p ↦ by + by_cases hp : p ∈ angleCap Θ (K i) + · simp [hp, hsubset i hp] + · by_cases hpc : p ∈ C <;> simp [hp, hpc]) hCint hpointwise + have harea (P : CapSpace Θ.angle) : + (∫ p, (angleCap Θ P).indicator (fun _ ↦ (1 : ℝ)) p) = + ClassicalResults.area (angleCap Θ P) := by + exact integral_indicator_one (isClosed_angleCap Θ P).measurableSet + simpa only [harea] using hconv + +theorem polygonArea_continuity (Θ : AngleSet) + (K : ℕ → CapSpace Θ.angle) (L : CapSpace Θ.angle) + (hlim : Tendsto (fun i ↦ Metric.hausdorffDist ((K i).val : Set Point) + (L.val : Set Point)) atTop (𝓝 0)) : + Tendsto (fun i ↦ ClassicalResults.area (polygonNiche Θ (K i))) + atTop (𝓝 (ClassicalResults.area (polygonNiche Θ L))) ∧ + Tendsto (fun i ↦ polygonAreaFunctional Θ (K i)) + atTop (𝓝 (polygonAreaFunctional Θ L)) := by + exact ⟨tendsto_polygonNiche_area Θ K L hlim, + (tendsto_angleCap_area Θ K L hlim).sub (tendsto_polygonNiche_area Θ K L hlim)⟩ + +private theorem polygonNiche_mono_directions (Θ Ψ : AngleSet) + (K : CapSpace Θ.angle) (L : CapSpace Ψ.angle) + (hangle : Θ.angle = Ψ.angle) (hcarrier : (K.val : Set Point) = (L.val : Set Point)) + (hsub : Θ.directions ⊆ Ψ.directions) : + polygonNiche Θ K ⊆ polygonNiche Ψ L := by + rintro p ⟨hp, hq⟩ + obtain ⟨t, ht, hpt⟩ := Set.mem_iUnion₂.mp hq + refine ⟨?_, Set.mem_iUnion₂.mpr ⟨t, hsub ht, ?_⟩⟩ + · simpa only [hangle] using hp + · simpa only [hcarrier] using hpt + +/-- Every niche point belongs to all sufficiently fine uniform polygon niches. -/ +theorem eventually_mem_polygonNiche_of_mem_capNiche (ω : ℝ) (hω : 0 < ω) + (hω' : ω ≤ Real.pi / 2) (n : ℕ → ℕ) (hn : ∀ i, 2 ≤ n i) + (hmono : StrictMono n) (K : CapSpace ω) {p : Point} (hp : p ∈ capNiche K) : + ∀ᶠ i in atTop, p ∈ polygonNiche (uniformAngleSet ω hω hω' (n i) (hn i)) K := by + obtain ⟨hfan, hq⟩ := hp + obtain ⟨t, ht, hpt⟩ := Set.mem_iUnion₂.mp hq + have hopen : IsOpen {s : ℝ | p ∈ innerQuadrant K.val s} := by + apply IsOpen.inter + · exact isOpen_lt (continuous_const.inner continuous_normalVector_real) + ((continuous_supportValue_real K.val).sub continuous_const) + · exact isOpen_lt + (continuous_const.inner (continuous_normalVector_real.comp + (continuous_id.add continuous_const))) + (((continuous_supportValue_real K.val).comp + (continuous_id.add continuous_const)).sub continuous_const) + obtain ⟨a, b, ⟨hat, htb⟩, hab⟩ := mem_nhds_iff_exists_Ioo_subset.mp (hopen.mem_nhds hpt) + have hat' : max 0 a < t := max_lt ht.1 hat + have htb' : t < min ω b := lt_min ht.2 htb + filter_upwards [eventually_exists_uniformAngleSet_mem_Ioo ω hω hω' n hn hmono + (le_max_left 0 a) (hat'.trans htb') (min_le_left ω b)] with i hi + obtain ⟨s, hs, hsa, hsb⟩ := hi + refine ⟨hfan, Set.mem_iUnion₂.mpr ⟨s, hs, hab ?_⟩⟩ + exact ⟨(le_max_right 0 a).trans_lt hsa, hsb.trans_le (min_le_right ω b)⟩ + +private theorem iUnion_uniform_polygonNiche (ω : ℝ) (hω : 0 < ω) + (hω' : ω ≤ Real.pi / 2) (n : ℕ → ℕ) (hn : ∀ i, 2 ≤ n i) + (hmono : StrictMono n) (K : CapSpace ω) : + (⋃ i, polygonNiche (uniformAngleSet ω hω hω' (n i) (hn i)) K) = capNiche K := by + apply Set.Subset.antisymm + · exact Set.iUnion_subset fun i ↦ + polygonNiche_subset_capNiche (uniformAngleSet ω hω hω' (n i) (hn i)) K + · intro p hp + obtain ⟨i, hi⟩ := (eventually_mem_polygonNiche_of_mem_capNiche ω hω hω' n hn hmono K hp).exists + exact Set.mem_iUnion.mpr ⟨i, hi⟩ + +private theorem tendsto_uniform_polygonNiche_area (ω : ℝ) (hω : 0 < ω) + (hω' : ω ≤ Real.pi / 2) (n : ℕ → ℕ) (hn : ∀ i, 2 ≤ n i) + (hmono : StrictMono n) (hdyadic : ∀ i, ∃ k : ℕ, n i = 2 ^ k) (K : CapSpace ω) : + Tendsto (fun i ↦ ClassicalResults.area + (polygonNiche (uniformAngleSet ω hω hω' (n i) (hn i)) K)) atTop + (𝓝 (ClassicalResults.area (capNiche K))) := by + have hmon : Monotone (fun i ↦ polygonNiche (uniformAngleSet ω hω hω' (n i) (hn i)) K) := by + intro i j hij + exact polygonNiche_mono_directions + (uniformAngleSet ω hω hω' (n i) (hn i)) + (uniformAngleSet ω hω hω' (n j) (hn j)) K K rfl rfl + (uniformAngleSet_directions_mono_of_dyadic ω hω hω' n hn hmono.monotone hdyadic hij) + have hlim := tendsto_measure_iUnion_atTop (μ := volume) hmon + rw [iUnion_uniform_polygonNiche ω hω hω' n hn hmono K] at hlim + exact (ENNReal.tendsto_toReal (niche_uniform_bounds.1 ω K).2.2.1.ne).comp hlim + +theorem maximizingPolygon_nicheArea_limit (ω : ℝ) (hω : 0 < ω) + (hω' : ω ≤ Real.pi / 2) (n : ℕ → ℕ) (hn : ∀ i, 2 ≤ n i) + (hmono : StrictMono n) (hdyadic : ∀ i, ∃ k : ℕ, n i = 2 ^ k) + (P : ∀ i, PolygonCapSpace (uniformAngleSet ω hω hω' (n i) (hn i))) + (hmax : ∀ i, IsMaximumPolygonCap _ (P i)) (K : CapSpace ω) + (hlim : Tendsto (fun i ↦ Metric.hausdorffDist ((P i).val.val : Set Point) + (K.val : Set Point)) atTop (𝓝 0)) : + Tendsto (fun i ↦ ClassicalResults.area + (polygonNiche (uniformAngleSet ω hω hω' (n i) (hn i)) (P i).val)) + atTop (𝓝 (ClassicalResults.area (capNiche K))) := by + let Θ (i : ℕ) := uniformAngleSet ω hω hω' (n i) (hn i) + have hupper (i : ℕ) : + ClassicalResults.area (polygonNiche (Θ i) (P i).val) ≤ + ClassicalResults.area ((P i).val.val : Set Point) - capAreaFunctional K := by + have hmax' := polygonAreaFunctional_le_maximum (Θ i) (P i) (hmax i) K + have hbound := (polygonArea_upperBound (Θ i)).2 K + have harea := (polygonArea_upperBound (Θ i)).1 (P i) + have h := hbound.trans hmax' + rw [harea] at h + exact le_sub_comm.mp h + have hupperlim : Tendsto + (fun i ↦ ClassicalResults.area ((P i).val.val : Set Point) - capAreaFunctional K) + atTop (𝓝 (ClassicalResults.area (capNiche K))) := by + convert (convexArea_hausdorff_continuity (fun i ↦ (P i).val.val) K.val hlim).sub_const + (capAreaFunctional K) using 1 + simp only [capAreaFunctional, sub_sub_cancel] + apply tendsto_order.mpr + constructor + · intro a ha + have hex := (tendsto_uniform_polygonNiche_area ω hω hω' n hn hmono hdyadic + K).eventually_const_lt ha + obtain ⟨m, hm⟩ := hex.exists + have hfixed := (polygonArea_continuity (Θ m) (fun i ↦ (P i).val) K hlim).1 + filter_upwards [hfixed.eventually_const_lt hm, eventually_ge_atTop m] with i hi hmi + have hsub : polygonNiche (Θ m) (P i).val ⊆ polygonNiche (Θ i) (P i).val := + polygonNiche_mono_directions (Θ m) (Θ i) (P i).val (P i).val rfl rfl + (uniformAngleSet_directions_mono_of_dyadic ω hω hω' n hn hmono.monotone hdyadic hmi) + have hle : ClassicalResults.area (polygonNiche (Θ m) (P i).val) ≤ + ClassicalResults.area (polygonNiche (Θ i) (P i).val) := + ENNReal.toReal_mono (niche_uniform_bounds.2.1 (Θ i) (P i).val).2.2.1.ne (measure_mono hsub) + exact hi.trans_le hle + · intro b hb + filter_upwards [hupperlim.eventually_lt_const hb] with i hi + exact (hupper i).trans_lt hi + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Cap.NicheLimit`. +* `Cap.Reflection`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Niche Limit +-/ + +@[expose] public section + +noncomputable section + +open Filter +open scoped Topology + +namespace MovingSofa + +/-- Containment of uniformly approximating polygon niches persists in the cap limit. -/ +theorem capNiche_subset_of_uniform_polygonNiche_subset {ω : ℝ} (K : CapSpace ω) + (n : ℕ → ℕ) (hn : ∀ i, 2 ≤ n i) (hmono : StrictMono n) + (hdyadic : ∀ i, ∃ k : ℕ, n i = 2 ^ k) + (P : ∀ i, PolygonCapSpace + (uniformAngleSet ω K.property.1 K.property.2.1 (n i) (hn i))) + (hcontain : ∀ i, polygonNiche + (uniformAngleSet ω K.property.1 K.property.2.1 (n i) (hn i)) (P i).val ⊆ + ((P i).val.val : Set Point)) + (hlim : Tendsto (fun i ↦ Metric.hausdorffDist ((P i).val.val : Set Point) + (K.val : Set Point)) atTop (𝓝 0)) : capNiche K ⊆ (K.val : Set Point) := by + intro p hp + obtain ⟨m, hm⟩ := (eventually_mem_polygonNiche_of_mem_capNiche ω K.property.1 + K.property.2.1 n hn hmono K hp).exists + obtain ⟨hfan, hquad⟩ := hm + obtain ⟨t, ht, hpt⟩ := Set.mem_iUnion₂.mp hquad + change inner ℝ p (normalVector (t : Real.Angle)) < supportValue K.val (t : Real.Angle) - 1 ∧ + inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 at hpt + have htend := tendsto_supportValue_of_hausdorff (fun i ↦ (P i).val) K hlim t + have htend' := tendsto_supportValue_of_hausdorff (fun i ↦ (P i).val) K hlim + (t + Real.pi / 2) + apply ConvexBody.mem_of_tendsto_hausdorffDist p (fun i ↦ (P i).val.val) K.val _ hlim + filter_upwards [(htend.sub_const 1).eventually_const_lt hpt.1, + (htend'.sub_const 1).eventually_const_lt hpt.2, eventually_ge_atTop m] with i hi hi' hmi + apply hcontain i + refine ⟨hfan, Set.mem_iUnion₂.mpr ⟨t, ?_, ?_⟩⟩ + · exact uniformAngleSet_directions_mono_of_dyadic ω K.property.1 K.property.2.1 + n hn hmono.monotone hdyadic hmi ht + · exact ⟨hi, hi'⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Reflection +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Reflect about the line through the origin and the distinguished parallelogram point. -/ +def mirrorReflection (ω : ℝ) (p : Point) : Point := + (2 * inner ℝ p (stripParallelogram ω).2.2 / + inner ℝ (stripParallelogram ω).2.2 (stripParallelogram ω).2.2) • + (stripParallelogram ω).2.2 - p + +/-- Reflect every interior wall direction about half the terminal angle. -/ +def reflectedAngleSet (Θ : AngleSet) : AngleSet where + angle := Θ.angle + angle_pos := Θ.angle_pos + angle_le := Θ.angle_le + directions := Θ.directions.image (fun t ↦ Θ.angle - t) + nonempty := Θ.nonempty.image _ + interior := by + intro t ht + obtain ⟨s, hs, rfl⟩ := Finset.mem_image.mp ht + obtain ⟨hs0, hsω⟩ := Θ.interior s hs + constructor <;> linarith + +private theorem mirrorReflection_eq_capReflection_m152940c (ω : ℝ) + (hω0 : 0 < ω) (hωle : ω ≤ Real.pi / 2) : + mirrorReflection ω = capReflection ω := by + change stripTopReflection ω = capReflection ω + exact stripTopReflection_eq_capReflection ω hω0 hωle + +private theorem reflectedAngle_mem_polygonNormals (Θ : AngleSet) (a : Real.Angle) + (ha : a ∈ ((fun t : ℝ ↦ (t : Real.Angle)) '' angleDomain Θ) ∪ + capLowerNormals Θ.angle) : + reflectedAngle Θ.angle a ∈ + ((fun t : ℝ ↦ (t : Real.Angle)) '' angleDomain (reflectedAngleSet Θ)) ∪ + capLowerNormals Θ.angle := by + rcases ha with ha | ha + · obtain ⟨t, ht, rfl⟩ := ha + left + rw [reflectedAngle_coe] + refine ⟨Θ.angle + Real.pi / 2 - t, ?_, rfl⟩ + simp only [angleDomain, Set.mem_union, Set.mem_image, Set.mem_insert_iff, + Set.mem_singleton_iff, Finset.mem_coe] at ht ⊢ + rcases ht with (ht | ht) | ht + · left + right + refine ⟨Θ.angle - t, Finset.mem_image.mpr ⟨t, ht, rfl⟩, by ring⟩ + · obtain ⟨s, hs, rfl⟩ := ht + left + left + exact Finset.mem_image.mpr ⟨s, hs, by ring⟩ + · rcases ht with rfl | rfl + · exact Or.inr (Or.inr (by simp)) + · apply Or.inr + apply Or.inl + change Θ.angle + Real.pi / 2 - Real.pi / 2 = Θ.angle + ring + · right + simp only [capLowerNormals, Set.mem_insert_iff, Set.mem_singleton_iff] at ha ⊢ + rcases ha with rfl | rfl + · right + exact reflectedAngle_at_omega_add_pi Θ.angle + · left + exact reflectedAngle_at_three_pi_div_two Θ.angle + +private theorem reflectedBody_polygonRepresentation (Θ : AngleSet) + (K : PolygonCapSpace Θ) : + HasHalfPlaneRepresentation (reflectedBody Θ.angle K.val.val) + (((fun t : ℝ ↦ (t : Real.Angle)) '' angleDomain (reflectedAngleSet Θ)) ∪ + capLowerNormals Θ.angle) := by + exact K.property.reflectedBody fun a ha ↦ reflectedAngle_mem_polygonNormals Θ a ha + +private def reflectedPolygonCap (Θ : AngleSet) (K : PolygonCapSpace Θ) : + PolygonCapSpace (reflectedAngleSet Θ) := + ⟨⟨reflectedBody Θ.angle K.val.val, reflectedBody_isCap K.val⟩, + reflectedBody_polygonRepresentation Θ K⟩ + +private theorem polygonNiche_reflection (Θ : AngleSet) (K : PolygonCapSpace Θ) : + polygonNiche (reflectedAngleSet Θ) (reflectedPolygonCap Θ K).val = + capReflection Θ.angle '' polygonNiche Θ K.val := by + unfold polygonNiche + rw [Set.image_inter (capReflection Θ.angle).injective, + capReflection_image_capFan] + congr 1 + ext p + constructor + · intro hp + obtain ⟨t, ht, hp⟩ := Set.mem_iUnion₂.mp hp + obtain ⟨s, hs, rfl⟩ := Finset.mem_image.mp ht + change p ∈ innerQuadrant (reflectedBody Θ.angle K.val.val) (Θ.angle - s) at hp + rw [innerQuadrant_reflection] at hp + obtain ⟨q, hq, rfl⟩ := hp + refine ⟨q, Set.mem_iUnion₂.mpr ⟨s, hs, ?_⟩, rfl⟩ + simpa only [sub_sub_cancel] using hq + · rintro ⟨q, hq, rfl⟩ + obtain ⟨s, hs, hq⟩ := Set.mem_iUnion₂.mp hq + apply Set.mem_iUnion₂.mpr + refine ⟨Θ.angle - s, Finset.mem_image.mpr ⟨s, hs, rfl⟩, ?_⟩ + change capReflection Θ.angle q ∈ + innerQuadrant (reflectedBody Θ.angle K.val.val) (Θ.angle - s) + rw [innerQuadrant_reflection] + exact ⟨q, by simpa only [sub_sub_cancel], rfl⟩ + +private theorem polygonAreaFunctional_reflectedPolygonCap + (Θ : AngleSet) (K : PolygonCapSpace Θ) : + polygonAreaFunctional (reflectedAngleSet Θ) (reflectedPolygonCap Θ K).val = + polygonAreaFunctional Θ K.val := by + unfold polygonAreaFunctional + rw [angleCap_eq_self, angleCap_eq_self, polygonNiche_reflection] + change ClassicalResults.area (capReflection Θ.angle '' (K.val.val : Set Point)) - + ClassicalResults.area (capReflection Θ.angle '' polygonNiche Θ K.val) = _ + rw [area_image_capReflection Θ.angle (K.val.val : Set Point) + K.val.val.isCompact.measurableSet, + area_image_capReflection Θ.angle (polygonNiche Θ K.val) + (measurableSet_polygonNiche Θ K.val)] + +private def reflectedPolygonCapBack (Θ : AngleSet) + (L : PolygonCapSpace (reflectedAngleSet Θ)) : PolygonCapSpace Θ := + ⟨⟨reflectedBody Θ.angle L.val.val, reflectedBody_isCap L.val⟩, by + simpa [reflectedAngleSet, Finset.image_image] using + reflectedBody_polygonRepresentation (reflectedAngleSet Θ) L⟩ + +private theorem polygonNiche_reflection_back (Θ : AngleSet) + (L : PolygonCapSpace (reflectedAngleSet Θ)) : + polygonNiche Θ (reflectedPolygonCapBack Θ L).val = + capReflection Θ.angle '' polygonNiche (reflectedAngleSet Θ) L.val := by + unfold polygonNiche + change capFan Θ.angle ∩ + (⋃ t ∈ Θ.directions, innerQuadrant (reflectedBody Θ.angle L.val.val) t) = + capReflection Θ.angle '' + (capFan Θ.angle ∩ + ⋃ t ∈ (reflectedAngleSet Θ).directions, innerQuadrant L.val.val t) + rw [Set.image_inter (capReflection Θ.angle).injective, + capReflection_image_capFan] + congr 1 + ext p + constructor + · intro hp + obtain ⟨t, ht, hp⟩ := Set.mem_iUnion₂.mp hp + change p ∈ innerQuadrant (reflectedBody Θ.angle L.val.val) t at hp + rw [innerQuadrant_reflection] at hp + obtain ⟨q, hq, rfl⟩ := hp + refine ⟨q, Set.mem_iUnion₂.mpr ⟨Θ.angle - t, ?_, hq⟩, rfl⟩ + exact Finset.mem_image.mpr ⟨t, ht, rfl⟩ + · rintro ⟨q, hq, rfl⟩ + obtain ⟨s, hs, hq⟩ := Set.mem_iUnion₂.mp hq + obtain ⟨t, ht, rfl⟩ := Finset.mem_image.mp hs + apply Set.mem_iUnion₂.mpr + refine ⟨t, ht, ?_⟩ + rw [innerQuadrant_reflection] + exact ⟨q, hq, rfl⟩ + +private theorem polygonAreaFunctional_reflectedPolygonCapBack (Θ : AngleSet) + (L : PolygonCapSpace (reflectedAngleSet Θ)) : + polygonAreaFunctional Θ (reflectedPolygonCapBack Θ L).val = + polygonAreaFunctional (reflectedAngleSet Θ) L.val := by + unfold polygonAreaFunctional + rw [angleCap_eq_self, angleCap_eq_self, polygonNiche_reflection_back] + change ClassicalResults.area (capReflection Θ.angle '' (L.val.val : Set Point)) - + ClassicalResults.area + (capReflection Θ.angle '' polygonNiche (reflectedAngleSet Θ) L.val) = _ + rw [area_image_capReflection Θ.angle (L.val.val : Set Point) + L.val.val.isCompact.measurableSet, + area_image_capReflection Θ.angle (polygonNiche (reflectedAngleSet Θ) L.val) + (measurableSet_polygonNiche (reflectedAngleSet Θ) L.val)] + +private theorem mirrorReflection_stripTop (ω : ℝ) : + mirrorReflection ω (stripParallelogram ω).2.2 = + (stripParallelogram ω).2.2 := by + change stripTopReflection ω (stripParallelogram ω).2.2 = _ + exact stripTopReflection_stripTop ω + +theorem maximumPolygonCap_mirror (Θ : AngleSet) (K : PolygonCapSpace Θ) + (hK : IsMaximumPolygonCap Θ K) : + ∃ P : PolygonCapSpace (reflectedAngleSet Θ), + (P.val.val : Set Point) = mirrorReflection Θ.angle '' (K.val.val : Set Point) ∧ + IsMaximumPolygonCap (reflectedAngleSet Θ) P := by + let P := reflectedPolygonCap Θ K + refine ⟨P, ?_, ?_⟩ + · change capReflection Θ.angle '' (K.val.val : Set Point) = + mirrorReflection Θ.angle '' (K.val.val : Set Point) + rw [mirrorReflection_eq_capReflection_m152940c Θ.angle Θ.angle_pos Θ.angle_le] + · constructor + · change (stripParallelogram Θ.angle).2.2 ∈ + capReflection Θ.angle '' (K.val.val : Set Point) + refine ⟨(stripParallelogram Θ.angle).2.2, hK.1, ?_⟩ + rw [← mirrorReflection_eq_capReflection_m152940c Θ.angle Θ.angle_pos Θ.angle_le, + mirrorReflection_stripTop] + · intro L + calc + polygonAreaFunctional (reflectedAngleSet Θ) L.val = + polygonAreaFunctional Θ (reflectedPolygonCapBack Θ L).val := + (polygonAreaFunctional_reflectedPolygonCapBack Θ L).symm + _ ≤ polygonAreaFunctional Θ K.val := hK.2 (reflectedPolygonCapBack Θ L) + _ = polygonAreaFunctional (reflectedAngleSet Θ) P.val := + (polygonAreaFunctional_reflectedPolygonCap Θ K).symm + +private def castPolygonCap {Θ Φ : AngleSet} (h : Θ = Φ) + (K : PolygonCapSpace Θ) : PolygonCapSpace Φ := + cast (congrArg PolygonCapSpace h) K + +@[simp] private theorem castPolygonCap_coe {Θ Φ : AngleSet} (h : Θ = Φ) + (K : PolygonCapSpace Θ) : + ((castPolygonCap h K).val.val : Set Point) = (K.val.val : Set Point) := by + subst h + rfl + +private theorem isMaximumPolygonCap_castPolygonCap {Θ Φ : AngleSet} (h : Θ = Φ) + {K : PolygonCapSpace Θ} (hK : IsMaximumPolygonCap Θ K) : + IsMaximumPolygonCap Φ (castPolygonCap h K) := by + subst h + exact hK + +private theorem reflectedAngleSet_uniformAngleSet (ω : ℝ) (hω : 0 < ω) + (hω' : ω ≤ Real.pi / 2) (n : ℕ) (hn : 2 ≤ n) : + reflectedAngleSet (uniformAngleSet ω hω hω' n hn) = + uniformAngleSet ω hω hω' n hn := by + unfold reflectedAngleSet uniformAngleSet + congr 1 + ext t + constructor + · intro ht + obtain ⟨s, hs, rfl⟩ := Finset.mem_image.mp ht + obtain ⟨j, hj, rfl⟩ := Finset.mem_image.mp hs + obtain ⟨hj0, hjn⟩ := Finset.mem_Ioo.mp hj + apply Finset.mem_image.mpr + refine ⟨n - j, Finset.mem_Ioo.mpr ⟨Nat.sub_pos_of_lt hjn, ?_⟩, ?_⟩ + · omega + have hn0 : (n : ℝ) ≠ 0 := by positivity + rw [Nat.cast_sub hjn.le] + field_simp + · intro ht + obtain ⟨j, hj, rfl⟩ := Finset.mem_image.mp ht + obtain ⟨hj0, hjn⟩ := Finset.mem_Ioo.mp hj + apply Finset.mem_image.mpr + refine ⟨ω - (j : ℝ) / n * ω, ?_, by ring⟩ + apply Finset.mem_image.mpr + refine ⟨n - j, Finset.mem_Ioo.mpr ⟨Nat.sub_pos_of_lt hjn, by omega⟩, ?_⟩ + have hn0 : (n : ℝ) ≠ 0 := by positivity + rw [Nat.cast_sub hjn.le] + field_simp + +theorem balancedMaximumCap_mirror {ω : ℝ} (K : CapSpace ω) + (hK : IsBalancedMaximumCap K) : + ∃ P : CapSpace ω, + (P.val : Set Point) = mirrorReflection ω '' (K.val : Set Point) ∧ + IsBalancedMaximumCap P := by + obtain ⟨n, hn, hmono, hdyadic, Q, hQmax, hQlim⟩ := hK + let P : CapSpace ω := ⟨reflectedBody ω K.val, reflectedBody_isCap K⟩ + have hM : mirrorReflection ω = capReflection ω := + mirrorReflection_eq_capReflection_m152940c ω K.property.1 K.property.2.1 + have hmirror : (P.val : Set Point) = mirrorReflection ω '' (K.val : Set Point) := by + change capReflection ω '' (K.val : Set Point) = mirrorReflection ω '' (K.val : Set Point) + rw [hM] + refine ⟨P, hmirror, n, hn, hmono, hdyadic, ?_⟩ + have hR (i : ℕ) : ∃ R : PolygonCapSpace + (uniformAngleSet ω P.property.1 P.property.2.1 (n i) (hn i)), + (R.val.val : Set Point) = mirrorReflection ω '' (Q i).val.val ∧ + IsMaximumPolygonCap _ R := by + have heq := reflectedAngleSet_uniformAngleSet ω K.property.1 K.property.2.1 + (n i) (hn i) + let W := maximumPolygonCap_mirror _ (Q i) (hQmax i) + let R := castPolygonCap heq W.choose + refine ⟨R, ?_, ?_⟩ + · rw [castPolygonCap_coe] + simpa [W, uniformAngleSet] using W.choose_spec.1 + · exact isMaximumPolygonCap_castPolygonCap heq W.choose_spec.2 + let R : ∀ i, PolygonCapSpace + (uniformAngleSet ω P.property.1 P.property.2.1 (n i) (hn i)) := + fun i ↦ (hR i).choose + refine ⟨R, ?_, ?_⟩ + · exact fun i ↦ (hR i).choose_spec.2 + · apply hQlim.congr' + filter_upwards [] with i + rw [(hR i).choose_spec.1, hmirror, hM] + exact (Metric.hausdorffDist_image (capReflection ω).isometry).symm + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Sofa.Support`. +* `Sofa.Cap`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Sofa / Support +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem standardPosition_subset_monotonization (s : Set Point) (ω : ℝ) + (hs : IsStandardPosition s ω) : s ⊆ monotonization s ω := by + have hω : ω ∈ Set.Ioc 0 (Real.pi / 2) := ⟨hs.2.2.1, hs.2.2.2.1⟩ + have hcommon := movingSofa_commonSubset s ω hs.2.1 hω + have hs_ne : s.Nonempty := by + obtain ⟨_, hm, _⟩ := hs.2.1 + exact hm.1.nonempty + have hshape : s ⊆ (stripParallelogram ω).1 := by + have htranslated := + (exists_standardPosition_translation s ω hs.2.1 hω).2.2.2 (0 : Point) + have hstandard : + IsStandardPosition ((fun p : Point ↦ p + (0 : Point)) '' s) ω := by + simpa using hs + simpa using htranslated hstandard + rw [monotonization] + intro p hp + refine ⟨hshape hp, Set.mem_iInter.2 fun t ↦ Set.mem_iInter.2 fun ht ↦ ?_⟩ + exact subset_supportingHallway s (t : Real.Angle) hs_ne hcommon.1 + (hcommon.2.2.2.1 t ht) hp + +theorem standardPosition_subset_cap (s : Set Point) (ω : ℝ) + (hs : IsStandardPosition s ω) : + s ⊆ monotonization s ω ∧ monotonization s ω ⊆ capOfSofa s ω := by + refine ⟨standardPosition_subset_monotonization s ω hs, ?_⟩ + rw [monotonization, capOfSofa] + rintro p ⟨hpP, hpL⟩ + refine ⟨hpP, Set.mem_iInter.2 fun t ↦ Set.mem_iInter.2 fun ht ↦ ?_⟩ + apply supportingHallway_subset_outerQuadrant s (t : Real.Angle) + exact Set.mem_iInter.1 (Set.mem_iInter.1 hpL t) ht + +private theorem inner_le_supportValue_of_mem_capOfSofa {s : Set Point} {ω t : ℝ} + (ht : t ∈ capUpperAngles ω) {p : Point} (hp : p ∈ capOfSofa s ω) : + inner ℝ p (normalVector (t : Real.Angle)) ≤ supportValue s (t : Real.Angle) := by + rcases ht with ht | ht + · have hq := Set.mem_iInter.1 (Set.mem_iInter.1 hp.2 t) ht + obtain ⟨q, hq, rfl⟩ := hq + rw [inner_supportingPlacement_normalVector] + change q 0 ≤ 1 ∧ q 1 ≤ 1 at hq + linarith [hq.1] + · have ht' : t - Real.pi / 2 ∈ Set.Icc 0 ω := by + constructor <;> linarith [ht.1, ht.2] + have hq := Set.mem_iInter.1 (Set.mem_iInter.1 hp.2 (t - Real.pi / 2)) ht' + obtain ⟨q, hq, rfl⟩ := hq + have ha : (t : Real.Angle) = ((t - Real.pi / 2 : ℝ) : Real.Angle) + + ((Real.pi / 2 : ℝ) : Real.Angle) := by + rw [← Real.Angle.coe_add, sub_add_cancel] + rw [ha, normalVector_add_pi_div_two, inner_supportingPlacement_tangentVector] + change q 0 ≤ 1 ∧ q 1 ≤ 1 at hq + linarith [hq.2] + +theorem standardPosition_support_eq (s : Set Point) (ω : ℝ) + (hs : IsStandardPosition s ω) : + (∀ t ∈ capUpperAngles ω, + supportValue (monotonization s ω) (t : Real.Angle) = supportValue s (t : Real.Angle) ∧ + supportValue (capOfSofa s ω) (t : Real.Angle) = supportValue s (t : Real.Angle)) ∧ + (∀ t ∈ Set.Icc 0 ω, + supportingHallway (monotonization s ω) (t : Real.Angle) = + supportingHallway s (t : Real.Angle) ∧ + supportingHallway (capOfSofa s ω) (t : Real.Angle) = + supportingHallway s (t : Real.Angle)) := by + have hs_ne : s.Nonempty := by + by_contra h + have he : s = ∅ := Set.not_nonempty_iff_eq_empty.mp h + have hnorm := hs.2.2.2.2.1 + simp [he, supportValue] at hnorm + obtain ⟨hsm, hmc⟩ := standardPosition_subset_cap s ω hs + have hsupport (t : ℝ) (ht : t ∈ capUpperAngles ω) : + supportValue (monotonization s ω) (t : Real.Angle) = supportValue s (t : Real.Angle) ∧ + supportValue (capOfSofa s ω) (t : Real.Angle) = supportValue s (t : Real.Angle) := by + have hc (p : Point) (hp : p ∈ capOfSofa s ω) := + inner_le_supportValue_of_mem_capOfSofa ht hp + exact ⟨supportValue_eq_of_subset_of_inner_le hs_ne hsm _ (fun p hp ↦ hc p (hmc hp)), + supportValue_eq_of_subset_of_inner_le hs_ne (hsm.trans hmc) _ hc⟩ + refine ⟨hsupport, ?_⟩ + intro t ht + have ht' : t + Real.pi / 2 ∈ capUpperAngles ω := + Or.inr ⟨by linarith [ht.1], by linarith [ht.2]⟩ + have h₀ := hsupport t (Or.inl ht) + have h₁ := hsupport (t + Real.pi / 2) ht' + simp only [Real.Angle.coe_add] at h₁ + constructor + · unfold supportingHallway + congr 1 + funext p + simp only [supportingPlacement, h₀.1, h₁.1] + · unfold supportingHallway + congr 1 + funext p + simp only [supportingPlacement, h₀.2, h₁.2] + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Sofa / Cap +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +private theorem capOfSofa_halfPlaneRepresentation (s : Set Point) (ω : ℝ) (hω : 0 ≤ ω) : + HasHalfPlaneRepresentation (capOfSofa s ω) + (((fun t : ℝ ↦ (t : Real.Angle)) '' capUpperAngles ω) ∪ capLowerNormals ω) := by + let U : Set (Real.Angle × ℝ) := + (fun t : ℝ ↦ ((t : Real.Angle), supportValue s (t : Real.Angle))) '' capUpperAngles ω + let B : Set (Real.Angle × ℝ) := + {(((ω : ℝ) : Real.Angle), 1), + (((Real.pi / 2 : ℝ) : Real.Angle), 1), + (((ω + Real.pi : ℝ) : Real.Angle), 0), + (((3 * Real.pi / 2 : ℝ) : Real.Angle), 0)} + refine ⟨U ∪ B, ?_, ?_⟩ + · rintro c (hc | hc) + · obtain ⟨t, ht, rfl⟩ := hc + exact Or.inl ⟨t, ht, rfl⟩ + · rcases hc with rfl | rfl | rfl | rfl + · exact Or.inl ⟨ω, Or.inl ⟨hω, le_rfl⟩, rfl⟩ + · exact Or.inl ⟨Real.pi / 2, Or.inr ⟨le_rfl, le_add_of_nonneg_left hω⟩, rfl⟩ + · exact Or.inr (Or.inl rfl) + · exact Or.inr (Or.inr rfl) + · ext p + simp only [Set.mem_iInter] + constructor + · intro hp c hc + rcases hc with hc | hc + · obtain ⟨φ, hφ, rfl⟩ := hc + change inner ℝ p (normalVector (φ : Real.Angle)) ≤ supportValue s _ + rcases hφ with hφ | hφ + · have hout := Set.mem_iInter.1 (Set.mem_iInter.1 hp.2 φ) hφ + rw [(rotatingHallwayParts_formulas s (φ : Real.Angle)).2.2.2.2.2.2.2.1] + at hout + exact hout.1 + · let t := φ - Real.pi / 2 + have ht : t ∈ Set.Icc 0 ω := by + constructor <;> dsimp [t] <;> linarith [hφ.1, hφ.2] + have hout := Set.mem_iInter.1 (Set.mem_iInter.1 hp.2 t) ht + rw [(rotatingHallwayParts_formulas s (t : Real.Angle)).2.2.2.2.2.2.2.1] + at hout + have hang : ((t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) = + (φ : Real.Angle) := by + rw [← Real.Angle.coe_add] + congr 1 + dsimp [t] + ring + have hout' := hout.2 + change inner ℝ p (normalVector ((t : Real.Angle) + + ((Real.pi / 2 : ℝ) : Real.Angle))) ≤ _ at hout' + simpa [hang] using hout' + · rcases hc with rfl | rfl | rfl | rfl + · exact ((mem_stripParallelogram_iff ω p).1 hp.1).2.2 + · simpa [normalHalfPlane, normalVector, frame, PiLp.inner_apply, + Fin.sum_univ_two] using ((mem_stripParallelogram_iff ω p).1 hp.1).1.2 + · change inner ℝ p (normalVector ((ω + Real.pi : ℝ) : Real.Angle)) ≤ 0 + rw [normalVector_add_pi, inner_neg_right] + exact neg_nonpos.mpr ((mem_stripParallelogram_iff ω p).1 hp.1).2.1 + · simpa [normalHalfPlane, inner_normalVector_three_pi_div_two] using + neg_nonpos.mpr ((mem_stripParallelogram_iff ω p).1 hp.1).1.1 + · intro hp + have hupper (φ : ℝ) (hφ : φ ∈ capUpperAngles ω) : + inner ℝ p (normalVector (φ : Real.Angle)) ≤ supportValue s (φ : Real.Angle) := + hp ((φ : Real.Angle), supportValue s (φ : Real.Angle)) + (Or.inl ⟨φ, hφ, rfl⟩) + have hω' := hp (((ω : ℝ) : Real.Angle), 1) (Or.inr (Or.inl rfl)) + have hπ := hp (((Real.pi / 2 : ℝ) : Real.Angle), 1) + (Or.inr (Or.inr (Or.inl rfl))) + have hlowerω := hp (((ω + Real.pi : ℝ) : Real.Angle), 0) + (Or.inr (Or.inr (Or.inr (Or.inl rfl)))) + have hlowerπ := hp (((3 * Real.pi / 2 : ℝ) : Real.Angle), 0) + (Or.inr (Or.inr (Or.inr (Or.inr rfl)))) + refine ⟨(mem_stripParallelogram_iff ω p).2 ?_, ?_⟩ + · change inner ℝ p (normalVector (ω : Real.Angle)) ≤ 1 at hω' + change inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) ≤ 1 at hπ + change inner ℝ p (normalVector ((ω + Real.pi : ℝ) : Real.Angle)) ≤ 0 at hlowerω + change inner ℝ p (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) ≤ 0 at hlowerπ + rw [normalVector_add_pi, inner_neg_right] at hlowerω + rw [inner_normalVector_three_pi_div_two] at hlowerπ + have hπ' : p 1 ≤ 1 := by + simpa [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] using hπ + exact ⟨⟨by linarith, hπ'⟩, by linarith, hω'⟩ + · refine Set.mem_iInter.2 fun t ↦ Set.mem_iInter.2 fun ht ↦ ?_ + rw [(rotatingHallwayParts_formulas s (t : Real.Angle)).2.2.2.2.2.2.2.1] + refine ⟨hupper t (Or.inl ht), ?_⟩ + have hshift : t + Real.pi / 2 ∈ capUpperAngles ω := + Or.inr ⟨by linarith [ht.1], by linarith [ht.2]⟩ + change inner ℝ p (normalVector ((t : Real.Angle) + + ((Real.pi / 2 : ℝ) : Real.Angle))) ≤ _ + simpa only [Real.Angle.coe_add] using hupper (t + Real.pi / 2) hshift + +private theorem isBounded_capOfSofa (s : Set Point) (ω : ℝ) + (hω : 0 < ω) (hωπ : ω ≤ Real.pi / 2) : Bornology.IsBounded (capOfSofa s ω) := by + let t := ω / 2 + let A := supportValue s (t : Real.Angle) + let B := supportValue s ((t + Real.pi / 2 : ℝ) : Real.Angle) + have ht : t ∈ Set.Icc 0 ω := by + constructor <;> dsimp [t] <;> linarith + have htI : t ∈ Set.Ioo (-(Real.pi / 2)) (Real.pi / 2) := by + constructor <;> dsimp [t] <;> linarith [Real.pi_pos] + have hc : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo htI + have hsine : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi (by dsimp [t]; linarith) + (by dsimp [t]; linarith [Real.pi_pos]) + refine (isBounded_iff_forall_norm_le).2 ⟨|A / Real.cos t| + + |B / Real.sin t| + 1, ?_⟩ + intro p hp + have hstrip := (mem_stripParallelogram_iff ω p).1 hp.1 + have hout := Set.mem_iInter.1 (Set.mem_iInter.1 hp.2 t) ht + rw [(rotatingHallwayParts_formulas s (t : Real.Angle)).2.2.2.2.2.2.2.1] + at hout + have h₀ := hout.1 + have h₁ := hout.2 + change inner ℝ p (normalVector (t : Real.Angle)) ≤ A at h₀ + change inner ℝ p (normalVector ((t : Real.Angle) + + ((Real.pi / 2 : ℝ) : Real.Angle))) ≤ B at h₁ + rw [normalVector_add_pi_div_two] at h₁ + simp only [normalVector, tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two, + Real.inner_apply, Real.Angle.cos_coe, Real.Angle.sin_coe, Matrix.cons_val_zero, + Matrix.cons_val_one] at h₀ h₁ + have hxhi : p 0 ≤ A / Real.cos t := (le_div_iff₀ hc).2 (by + have := mul_nonneg hstrip.1.1 hsine.le + nlinarith) + have hxlo : -(B / Real.sin t) ≤ p 0 := by + rw [← neg_div] + apply (div_le_iff₀ hsine).2 + have := mul_nonneg hstrip.1.1 hc.le + nlinarith + have hxabs : |p 0| ≤ |A / Real.cos t| + |B / Real.sin t| := by + rw [abs_le] + constructor + · calc + -(|A / Real.cos t| + |B / Real.sin t|) ≤ -(B / Real.sin t) := by + have hA := abs_nonneg (A / Real.cos t) + have hB := le_abs_self (B / Real.sin t) + linarith + _ ≤ p 0 := hxlo + · calc + p 0 ≤ A / Real.cos t := hxhi + _ ≤ |A / Real.cos t| + |B / Real.sin t| := by + have hA := le_abs_self (A / Real.cos t) + have hB := abs_nonneg (B / Real.sin t) + linarith + have hyabs : |p 1| ≤ 1 := by + rw [abs_le] + exact ⟨by linarith [hstrip.1.1], hstrip.1.2⟩ + have hpdecomp : p = p 0 • (!₂[1, 0] : Point) + p 1 • !₂[0, 1] := by + ext i + fin_cases i <;> simp + have he₀ : ‖(!₂[1, 0] : Point)‖ = 1 := by + have h : (!₂[1, 0] : Point) = normalVector (0 : Real.Angle) := by + ext i + fin_cases i <;> simp [normalVector, frame] + rw [h] + exact norm_normalVector_real 0 + have he₁ : ‖(!₂[0, 1] : Point)‖ = 1 := by + have h : (!₂[0, 1] : Point) = normalVector ((Real.pi / 2 : ℝ) : Real.Angle) := by + ext i + fin_cases i <;> simp [normalVector, frame] + rw [h] + exact norm_normalVector_real (Real.pi / 2) + rw [hpdecomp] + calc + ‖p 0 • (!₂[1, 0] : Point) + p 1 • !₂[0, 1]‖ ≤ + ‖p 0 • (!₂[1, 0] : Point)‖ + ‖p 1 • (!₂[0, 1] : Point)‖ := norm_add_le _ _ + _ = |p 0| + |p 1| := by simp [norm_smul, he₀, he₁] + _ ≤ |A / Real.cos t| + |B / Real.sin t| + 1 := add_le_add hxabs hyabs + +private theorem mem_capOfSofa_of_mem_strip_of_upper {s : Set Point} {ω : ℝ} {p : Point} + (hp : p ∈ (stripParallelogram ω).1) + (hupper : ∀ t ∈ capUpperAngles ω, + inner ℝ p (normalVector (t : Real.Angle)) ≤ supportValue s (t : Real.Angle)) : + p ∈ capOfSofa s ω := by + refine ⟨hp, Set.mem_iInter.2 fun t ↦ Set.mem_iInter.2 fun ht ↦ ?_⟩ + rw [(rotatingHallwayParts_formulas s (t : Real.Angle)).2.2.2.2.2.2.2.1] + refine ⟨hupper t (Or.inl ht), ?_⟩ + have hshift : t + Real.pi / 2 ∈ capUpperAngles ω := + Or.inr ⟨by linarith [ht.1], by linarith [ht.2]⟩ + change inner ℝ p (normalVector ((t : Real.Angle) + + ((Real.pi / 2 : ℝ) : Real.Angle))) ≤ _ + simpa only [Real.Angle.coe_add] using hupper (t + Real.pi / 2) hshift + +private theorem supportValue_eq_zero_of_nonpos_of_attains_zero (K : ConvexBody Point) + (a : Real.Angle) (hupper : ∀ p ∈ K, inner ℝ p (normalVector a) ≤ 0) + {q : Point} (hq : q ∈ K) (hqzero : inner ℝ q (normalVector a) = 0) : + supportValue K a = 0 := by + apply le_antisymm + · exact supportValue_le_of_subset_normalHalfPlane K a 0 hupper + · simpa only [hqzero] using inner_le_supportValue K hq a + +private theorem standardPosition_right_cap_lower_support (s : Set Point) + (hs : IsStandardPosition s (Real.pi / 2)) (K : ConvexBody Point) + (hK : (K : Set Point) = capOfSofa s (Real.pi / 2)) + (hs_ne : s.Nonempty) : + supportValue K ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 := by + have hpi := Real.pi_pos + obtain ⟨p, hp, hpeq⟩ := (hs.1.image + (continuous_inner.comp (continuous_id.prodMk continuous_const))).sSup_mem + (hs_ne.image + (fun p ↦ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)))) + have hpT : inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 1 := by + change inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue s _ at hpeq + simpa only [hs.2.2.2.2.2] using hpeq + let q := p - tangentVector (0 : Real.Angle) + have hqy : q 1 = 0 := by + have hpcoord : p 1 = 1 := by + simpa [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] using hpT + simp [q, tangentVector, frame, hpcoord] + have hqP : q ∈ (stripParallelogram (Real.pi / 2)).1 := by + rw [mem_stripParallelogram_iff] + have hqn : inner ℝ q + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 := by + simpa [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] using hqy + exact ⟨⟨by rw [hqy], by rw [hqy]; norm_num⟩, + by rw [hqn], by rw [hqn]; norm_num⟩ + have hq : q ∈ capOfSofa s (Real.pi / 2) := by + apply mem_capOfSofa_of_mem_strip_of_upper hqP + intro u hu + have hsu : 0 ≤ Real.sin u := Real.sin_nonneg_of_nonneg_of_le_pi + (by rcases hu with hu | hu <;> linarith [hu.1]) + (by rcases hu with hu | hu <;> linarith [hu.2, Real.pi_pos]) + calc + inner ℝ q (normalVector (u : Real.Angle)) = + inner ℝ p (normalVector (u : Real.Angle)) - Real.sin u := by + simp [q, tangentVector, normalVector, frame, PiLp.inner_apply, + Fin.sum_univ_two] + ring + _ ≤ inner ℝ p (normalVector (u : Real.Angle)) := sub_le_self _ hsu + _ ≤ supportValue s (u : Real.Angle) := + inner_le_supportValue_of_isCompact hs.1 hp _ + apply supportValue_eq_zero_of_nonpos_of_attains_zero K + · intro z hz + change z ∈ (K : Set Point) at hz + rw [hK] at hz + have hz0 := ((mem_stripParallelogram_iff (Real.pi / 2) z).1 hz.1).1.1 + simpa [inner_normalVector_three_pi_div_two] using neg_nonpos.mpr hz0 + · exact hK.symm ▸ hq + · simpa [inner_normalVector_three_pi_div_two] using congrArg Neg.neg hqy + +theorem standardPosition_cap (s : Set Point) (ω : ℝ) + (hs : IsStandardPosition s ω) : + ∃ K : CapSpace ω, (K.val : Set Point) = capOfSofa s ω := by + have hs_ne : s.Nonempty := by + obtain ⟨_, hm, _⟩ := hs.2.1 + exact hm.1.nonempty + have hω0 : 0 ≤ ω := hs.2.2.1.le + obtain ⟨D, hDN, hC⟩ := capOfSofa_halfPlaneRepresentation s ω hω0 + have hclosed : IsClosed (capOfSofa s ω) := by + rw [hC] + exact isClosed_iInter fun c ↦ isClosed_iInter fun _ ↦ + isClosed_normalHalfPlane c.1 c.2 false + have hconvex : Convex ℝ (capOfSofa s ω) := by + rw [hC] + exact convex_iInter fun c ↦ convex_iInter fun _ ↦ + convex_normalHalfPlane c.1 c.2 false + have hscap : s ⊆ capOfSofa s ω := + let h := standardPosition_subset_cap s ω hs + h.1.trans h.2 + have hne : (capOfSofa s ω).Nonempty := hs_ne.mono hscap + let K : ConvexBody Point := { + carrier := capOfSofa s ω + convex' := hconvex + isCompact' := Metric.isCompact_iff_isClosed_bounded.2 + ⟨hclosed, isBounded_capOfSofa s ω hs.2.2.1 hs.2.2.2.1⟩ + nonempty' := hne } + have hsupport := (standardPosition_support_eq s ω hs).1 + have hKω : supportValue K (ω : Real.Angle) = 1 := by + change supportValue (capOfSofa s ω) (ω : Real.Angle) = 1 + rw [(hsupport ω (Or.inl ⟨hω0, le_rfl⟩)).2, hs.2.2.2.2.1] + have hKπ : supportValue K ((Real.pi / 2 : ℝ) : Real.Angle) = 1 := by + change supportValue (capOfSofa s ω) ((Real.pi / 2 : ℝ) : Real.Angle) = 1 + rw [(hsupport (Real.pi / 2) (Or.inr ⟨le_rfl, + le_add_of_nonneg_left hω0⟩)).2, hs.2.2.2.2.2] + by_cases hright : ω = Real.pi / 2 + · subst ω + have hbottom := standardPosition_right_cap_lower_support s hs K rfl hs_ne + have hsame : (((Real.pi / 2 + Real.pi : ℝ) : Real.Angle)) = + ((3 * Real.pi / 2 : ℝ) : Real.Angle) := by + congr 1 + ring + refine ⟨⟨K, hs.2.2.1, hs.2.2.2.1, hKω, hKπ, ?_, hbottom, + ⟨D, hDN, ?_⟩⟩, rfl⟩ + · simpa [hsame] using hbottom + · exact hC + · have hlt : ω < Real.pi / 2 := lt_of_le_of_ne hs.2.2.2.1 hright + let o := (stripParallelogram ω).2.2 + have hc : 0 < Real.cos ω := Real.cos_pos_of_mem_Ioo + ⟨by linarith [hs.2.2.1, Real.pi_pos], hlt⟩ + obtain ⟨pω, hpω, hpωeq⟩ := (hs.1.image + (continuous_inner.comp (continuous_id.prodMk continuous_const))).sSup_mem + (hs_ne.image (fun p ↦ inner ℝ p (normalVector (ω : Real.Angle)))) + obtain ⟨pT, hpT, hpTeq⟩ := (hs.1.image + (continuous_inner.comp (continuous_id.prodMk continuous_const))).sSup_mem + (hs_ne.image + (fun p ↦ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)))) + have hpω' : inner ℝ pω (normalVector (ω : Real.Angle)) = 1 := by + change inner ℝ pω (normalVector (ω : Real.Angle)) = supportValue s _ at hpωeq + simpa only [hs.2.2.2.2.1] using hpωeq + have hpT' : inner ℝ pT (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 1 := by + change inner ℝ pT (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue s _ at hpTeq + simpa only [hs.2.2.2.2.2] using hpTeq + have hpωT : inner ℝ pω (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) ≤ 1 := by + simpa [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] using + ((mem_stripParallelogram_iff ω pω).1 (hscap hpω).1).1.2 + have hpTω : inner ℝ pT (normalVector (ω : Real.Angle)) ≤ 1 := + ((mem_stripParallelogram_iff ω pT).1 + (hscap hpT).1).2.2 + have hoω : inner ℝ o (normalVector (ω : Real.Angle)) = 1 := by + have hgap : Real.tan (Real.pi / 4 - ω / 2) = + (Real.cos ω)⁻¹ - Real.tan ω := by + simpa [show Real.pi / 4 - ω / 2 = (Real.pi / 2 - ω) / 2 by ring] + using Real.tan_pi_div_two_sub_div_two ω ⟨hω0, hlt⟩ + have htan := Real.tan_eq_sin_div_cos ω + simp [o, stripParallelogram, normalVector, frame, PiLp.inner_apply, hgap, htan] + field_simp [hc.ne'] + ring + have hoT : inner ℝ o (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 1 := by + simp [o, stripParallelogram, normalVector, frame, PiLp.inner_apply] + have hou (u : ℝ) (hu : u ∈ capUpperAngles ω) : + inner ℝ o (normalVector (u : Real.Angle)) ≤ supportValue s (u : Real.Angle) := by + rcases hu with hu | hu + · let c := Real.cos u / Real.cos ω + let d := Real.sin (ω - u) / Real.cos ω + have hd0 : 0 ≤ d := div_nonneg + (Real.sin_nonneg_of_nonneg_of_le_pi (sub_nonneg.mpr hu.2) + (by linarith [hu.1, hs.2.2.2.1, Real.pi_pos])) hc.le + have hdecomp : normalVector (u : Real.Angle) = + c • normalVector (ω : Real.Angle) - + d • normalVector ((Real.pi / 2 : ℝ) : Real.Angle) := by + ext i + fin_cases i + · simp [c, d, normalVector, frame, Real.sin_sub] + field_simp [hc.ne'] + · simp [c, d, normalVector, frame, Real.sin_sub] + field_simp [hc.ne'] + ring + rw [hdecomp, inner_sub_right, inner_smul_right, inner_smul_right, hoω, hoT] + apply (inner_le_supportValue_of_isCompact hs.1 hpω (u : Real.Angle)).trans' + rw [hdecomp, inner_sub_right, inner_smul_right, inner_smul_right, hpω'] + simpa only [mul_one] using + sub_le_sub_left (mul_le_mul_of_nonneg_left hpωT hd0) c + · let c := Real.sin (u - ω) / Real.cos ω + let d := -Real.cos u / Real.cos ω + have hd0 : 0 ≤ d := div_nonneg + (neg_nonneg.mpr (Real.cos_nonpos_of_pi_div_two_le_of_le hu.1 + (by linarith [hu.2, hs.2.2.2.1, Real.pi_pos]))) hc.le + have hdecomp : normalVector (u : Real.Angle) = + c • normalVector ((Real.pi / 2 : ℝ) : Real.Angle) - + d • normalVector (ω : Real.Angle) := by + ext i + fin_cases i + · simp [c, d, normalVector, frame, Real.sin_sub] + field_simp [hc.ne'] + · simp [c, d, normalVector, frame, Real.sin_sub] + field_simp [hc.ne'] + ring + rw [hdecomp, inner_sub_right, inner_smul_right, inner_smul_right, hoT, hoω] + apply (inner_le_supportValue_of_isCompact hs.1 hpT (u : Real.Angle)).trans' + rw [hdecomp, inner_sub_right, inner_smul_right, inner_smul_right, hpT'] + simpa only [mul_one] using + sub_le_sub_left (mul_le_mul_of_nonneg_left hpTω hd0) c + let q₀ := o - tangentVector (0 : Real.Angle) + have hsinω0 : 0 ≤ Real.sin ω := Real.sin_nonneg_of_nonneg_of_le_pi hω0 + (by linarith [hs.2.2.2.1, Real.pi_pos]) + have hsinω1 : Real.sin ω ≤ 1 := Real.sin_le_one ω + have hq₀P : q₀ ∈ (stripParallelogram ω).1 := by + rw [mem_stripParallelogram_iff] + have hq₀y : q₀ 1 = 0 := by + simp [q₀, o, stripParallelogram, tangentVector, frame] + have hq₀n : inner ℝ q₀ (normalVector (ω : Real.Angle)) = 1 - Real.sin ω := by + rw [inner_sub_left, hoω] + simp [tangentVector, normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + exact ⟨⟨by rw [hq₀y], by rw [hq₀y]; norm_num⟩, + by rw [hq₀n]; exact sub_nonneg.mpr hsinω1, + by rw [hq₀n]; linarith⟩ + have hq₀ : q₀ ∈ capOfSofa s ω := by + apply mem_capOfSofa_of_mem_strip_of_upper hq₀P + intro u hu + have hsu : 0 ≤ Real.sin u := Real.sin_nonneg_of_nonneg_of_le_pi + (by rcases hu with hu | hu <;> linarith [hu.1]) + (by rcases hu with hu | hu <;> linarith [hu.2, hs.2.2.2.1]) + calc + inner ℝ q₀ (normalVector (u : Real.Angle)) = + inner ℝ o (normalVector (u : Real.Angle)) - Real.sin u := by + simp [q₀, tangentVector, normalVector, frame, PiLp.inner_apply, + Fin.sum_univ_two] + ring + _ ≤ inner ℝ o (normalVector (u : Real.Angle)) := sub_le_self _ hsu + _ ≤ supportValue s (u : Real.Angle) := hou u hu + let qω := o - normalVector (ω : Real.Angle) + have hqωP : qω ∈ (stripParallelogram ω).1 := by + rw [mem_stripParallelogram_iff] + have hqωn : inner ℝ qω (normalVector (ω : Real.Angle)) = 0 := by + rw [inner_sub_left, hoω, inner_normalVector_self] + norm_num + have hqωy : qω 1 = 1 - Real.sin ω := by + simp [qω, o, stripParallelogram, normalVector, frame] + exact ⟨⟨by rw [hqωy]; linarith, by rw [hqωy]; linarith⟩, + by rw [hqωn], by rw [hqωn]; norm_num⟩ + have hqω : qω ∈ capOfSofa s ω := by + apply mem_capOfSofa_of_mem_strip_of_upper hqωP + intro u hu + have hcos : 0 ≤ Real.cos (ω - u) := Real.cos_nonneg_of_mem_Icc + ⟨by rcases hu with hu | hu <;> linarith [hu.2, hs.2.2.2.1], + by rcases hu with hu | hu <;> linarith [hu.1, hs.2.2.1]⟩ + calc + inner ℝ qω (normalVector (u : Real.Angle)) = + inner ℝ o (normalVector (u : Real.Angle)) - Real.cos (ω - u) := by + simp [qω, inner_sub_left, inner_normalVector_normalVector] + _ ≤ inner ℝ o (normalVector (u : Real.Angle)) := sub_le_self _ hcos + _ ≤ supportValue s (u : Real.Angle) := hou u hu + have hlowerT : supportValue K ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 := by + apply supportValue_eq_zero_of_nonpos_of_attains_zero K + · intro p hp + change p ∈ capOfSofa s ω at hp + have := ((mem_stripParallelogram_iff ω p).1 hp.1).1.1 + simpa [inner_normalVector_three_pi_div_two] using neg_nonpos.mpr this + · exact hq₀ + · simp [q₀, o, stripParallelogram, inner_normalVector_three_pi_div_two, + tangentVector, frame] + have hlowerω : supportValue K ((ω + Real.pi : ℝ) : Real.Angle) = 0 := by + apply supportValue_eq_zero_of_nonpos_of_attains_zero K + · intro p hp + change p ∈ capOfSofa s ω at hp + rw [normalVector_add_pi, inner_neg_right] + exact neg_nonpos.mpr ((mem_stripParallelogram_iff ω p).1 hp.1).2.1 + · exact hqω + · rw [normalVector_add_pi, inner_neg_right] + have hqωn : inner ℝ qω (normalVector (ω : Real.Angle)) = 0 := by + rw [inner_sub_left, hoω, inner_normalVector_self] + norm_num + rw [hqωn, neg_zero] + exact ⟨⟨K, hs.2.2.1, hs.2.2.2.1, hKω, hKπ, hlowerω, hlowerT, + ⟨D, hDN, hC⟩⟩, rfl⟩ + +theorem standardPosition_monotonization (s : Set Point) (ω : ℝ) + (hs : IsStandardPosition s ω) (K : CapSpace ω) + (hK : (K.val : Set Point) = capOfSofa s ω) : + monotonization s ω = (K.val : Set Point) \ capNiche K := by + have hsupport := (standardPosition_support_eq s ω hs).1 + have hparts (t : ℝ) (ht : t ∈ Set.Icc 0 ω) : + supportingHallway s (t : Real.Angle) = + (rotatingHallwayParts s (t : Real.Angle)).outerQuadrant \ + innerQuadrant (K.val : Set Point) t := by + obtain ⟨h, _⟩ := rotatingHallwayParts_formulas s (t : Real.Angle) + have h₀ := (hsupport t (Or.inl ht)).2 + have ht' : t + Real.pi / 2 ∈ capUpperAngles ω := + Or.inr ⟨by linarith [ht.1], by linarith [ht.2]⟩ + have h₁ := (hsupport (t + Real.pi / 2) ht').2 + simp only [Real.Angle.coe_add] at h₁ + rw [h, rotatingHallwayParts_innerQuadrant] + simp only [innerQuadrant, hK, h₀, h₁, Real.Angle.coe_add] + ext p + constructor + · intro hp + have hpH (t : ℝ) (ht : t ∈ Set.Icc 0 ω) : + p ∈ (rotatingHallwayParts s (t : Real.Angle)).outerQuadrant \ + innerQuadrant (K.val : Set Point) t := by + rw [← hparts t ht] + exact Set.mem_iInter.1 (Set.mem_iInter.1 hp.2 t) ht + have hpK : p ∈ (K.val : Set Point) := by + rw [hK] + exact ⟨hp.1, Set.mem_iInter.2 fun t ↦ Set.mem_iInter.2 fun ht ↦ (hpH t ht).1⟩ + refine ⟨hpK, ?_⟩ + rintro ⟨_, hN⟩ + obtain ⟨t, ht, hq⟩ := Set.mem_iUnion₂.mp hN + exact (hpH t ⟨ht.1.le, ht.2.le⟩).2 hq + · rintro ⟨hpK, hpN⟩ + have hpC : p ∈ capOfSofa s ω := hK ▸ hpK + have hpF := K.subset_capFan hpK + refine ⟨hpC.1, Set.mem_iInter.2 fun t ↦ Set.mem_iInter.2 fun ht ↦ ?_⟩ + rw [hparts t ht] + refine ⟨Set.mem_iInter.1 (Set.mem_iInter.1 hpC.2 t) ht, ?_⟩ + intro hq + have ht0 : t ≠ 0 := by + rintro rfl + have h := hq.2 + change inner ℝ p (normalVector ((0 + Real.pi / 2 : ℝ) : Real.Angle)) < + supportValue K.val ((0 + Real.pi / 2 : ℝ) : Real.Angle) - 1 at h + rw [zero_add, K.property.2.2.2.1] at h + have hf := hpF.2 + change 0 ≤ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at hf + linarith + have htω : t ≠ ω := by + intro he + subst t + have h := hq.1 + change inner ℝ p (normalVector (ω : Real.Angle)) < + supportValue K.val (ω : Real.Angle) - 1 at h + rw [K.property.2.2.1] at h + have hf := hpF.1 + change 0 ≤ inner ℝ p (normalVector (ω : Real.Angle)) at hf + linarith + exact hpN ⟨hpF, Set.mem_iUnion₂.mpr + ⟨t, ⟨lt_of_le_of_ne ht.1 (Ne.symm ht0), lt_of_le_of_ne ht.2 htω⟩, hq⟩⟩ + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Cap.Connectedness`. +* `Cap.MirrorFeatures`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Connectedness +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +private theorem isOpen_capNiche_subtype {ω : ℝ} (K : CapSpace ω) : + IsOpen {p : capFan ω | (p : Point) ∈ capNiche K} := by + let U : Set Point := ⋃ t ∈ Set.Ioo 0 ω, innerQuadrant (K.val : Set Point) t + have hU : IsOpen U := isOpen_iUnion fun t ↦ isOpen_iUnion fun _ ↦ by + apply IsOpen.inter + · exact isOpen_lt (by fun_prop) continuous_const + · exact isOpen_lt (by fun_prop) continuous_const + have heq : {p : capFan ω | (p : Point) ∈ capNiche K} = + Subtype.val ⁻¹' U := by + ext p + change ((p : Point) ∈ capNiche K) ↔ (p : Point) ∈ U + simp only [capNiche, Set.mem_inter_iff, p.property, true_and, U] + rw [heq] + exact hU.preimage continuous_subtype_val + +private theorem capNiche_disjoint_upperBoundary_of_subset {ω : ℝ} (K : CapSpace ω) + (hsub : capNiche K ⊆ (K.val : Set Point)) : + Disjoint (capNiche K) (capUpperBoundary K) := by + rw [Set.disjoint_left] + intro p hpN hpδ + let z : capFan ω := ⟨p, hpN.1⟩ + have hzopen : z ∈ {q : capFan ω | (q : Point) ∈ capNiche K} := hpN + have hzint : z ∈ interior {q : capFan ω | (q : Point) ∈ (K.val : Set Point)} := by + apply mem_interior_iff_mem_nhds.mpr + exact Filter.mem_of_superset (isOpen_capNiche_subtype K |>.mem_nhds hzopen) + (fun q hq ↦ hsub hq) + have hzfront : z ∈ frontier {q : capFan ω | (q : Point) ∈ (K.val : Set Point)} := by + rw [capUpperBoundary_relativeBoundary] at hpδ + obtain ⟨q, hq, hqp⟩ := hpδ + have : q = z := Subtype.ext hqp + simpa [this] using hq + have hzK : z ∈ {q : capFan ω | (q : Point) ∈ (K.val : Set Point)} := hsub hpN + exact (mem_frontier_iff_notMem_interior hzK).1 hzfront hzint + +private theorem mem_interior_capFan_of_pos {ω : ℝ} {p : Point} + (hω : 0 < inner ℝ p (normalVector (ω : Real.Angle))) + (hπ : 0 < inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle))) : + p ∈ interior (capFan ω) := by + let U := normalHalfPlane (ω : Real.Angle) 0 true true ∩ + normalHalfPlane ((Real.pi / 2 : ℝ) : Real.Angle) 0 true true + have hU : IsOpen U := (isOpen_lt continuous_const (by fun_prop)).inter + (isOpen_lt continuous_const (by fun_prop)) + apply mem_interior_iff_mem_nhds.mpr + refine Filter.mem_of_superset (hU.mem_nhds ?_) ?_ + · exact ⟨hω, hπ⟩ + · rintro q ⟨hqω, hqπ⟩ + change 0 < inner ℝ q (normalVector (ω : Real.Angle)) at hqω + change 0 < inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at hqπ + change 0 ≤ inner ℝ q (normalVector (ω : Real.Angle)) ∧ + 0 ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + exact ⟨hqω.le, hqπ.le⟩ + +private theorem innerCorner_mem_interior_capFan_of_mem_capWedge {ω t : ℝ} + (K : CapSpace ω) (ht : t ∈ Set.Ioo 0 ω) {q : Point} (hq : q ∈ capWedge K t) : + (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerCorner ∈ + interior (capFan ω) := by + let z := (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerCorner + rcases hq with ⟨hqFan, hqQuad⟩ + have hzu : inner ℝ z (normalVector (t : Real.Angle)) = + supportValue K.val (t : Real.Angle) - 1 := by + simpa [z, rotatingHallwayParts, hallwayParts] using + inner_supportingPlacement_normalVector (K.val : Set Point) (t : Real.Angle) (0 : Point) + have hzv : inner ℝ z (tangentVector (t : Real.Angle)) = + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := by + simpa [z, rotatingHallwayParts, hallwayParts] using + inner_supportingPlacement_tangentVector (K.val : Set Point) (t : Real.Angle) (0 : Point) + change q ∈ supportingPlacement (K.val : Set Point) (t : Real.Angle) '' + hallwayParts.innerQuadrant at hqQuad + obtain ⟨a, ha, hqa⟩ := hqQuad + change a 0 < 0 ∧ a 1 < 0 at ha + have hqQuad : inner ℝ q (normalVector (t : Real.Angle)) < + supportValue K.val (t : Real.Angle) - 1 ∧ + inner ℝ q (tangentVector (t : Real.Angle)) < + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := by + constructor + · rw [← hqa, inner_supportingPlacement_normalVector] + linarith [ha.1] + · rw [← hqa, inner_supportingPlacement_tangentVector] + change a 1 + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 < _ + linarith [ha.2] + let d := q - z + have hdu : inner ℝ d (normalVector (t : Real.Angle)) < 0 := by + rw [inner_sub_left] + linarith [hqQuad.1, hzu] + have hdv : inner ℝ d (tangentVector (t : Real.Angle)) < 0 := by + rw [inner_sub_left] + linarith [hqQuad.2, hzv] + have hdφ (φ : ℝ) : inner ℝ d (normalVector (φ : Real.Angle)) = + inner ℝ d (normalVector (t : Real.Angle)) * Real.cos (φ - t) + + inner ℝ d (tangentVector (t : Real.Angle)) * Real.sin (φ - t) := by + nth_rewrite 1 [← inner_normalVector_smul_add_inner_tangentVector_smul d (t : Real.Angle)] + rw [inner_add_left, real_inner_smul_left, real_inner_smul_left, + inner_normalVector_normalVector] + have hc : Real.cos (t - φ) = Real.cos (φ - t) := by + rw [show t - φ = -(φ - t) by ring, Real.cos_neg] + rw [hc] + have hs : inner ℝ (tangentVector (t : Real.Angle)) + (normalVector (φ : Real.Angle)) = Real.sin (φ - t) := by + simp [normalVector, tangentVector, frame, PiLp.inner_apply, Real.sin_sub] + ring + rw [hs] + have hsint : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi ht.1 + (by linarith [ht.2, K.property.2.1, Real.pi_pos]) + have hcost : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, ht.1], ht.2.trans_le K.property.2.1⟩ + have hsinδ : 0 < Real.sin (ω - t) := Real.sin_pos_of_pos_of_lt_pi + (sub_pos.mpr ht.2) (by linarith [ht.1, K.property.2.1, Real.pi_pos]) + have hcosδ : 0 < Real.cos (ω - t) := Real.cos_pos_of_mem_Ioo + ⟨by linarith [sub_pos.mpr ht.2, Real.pi_pos], by linarith [ht.1, K.property.2.1]⟩ + apply mem_interior_capFan_of_pos + · change 0 < inner ℝ z (normalVector (ω : Real.Angle)) + have hdω : inner ℝ d (normalVector (ω : Real.Angle)) < 0 := by + rw [hdφ] + exact add_neg (mul_neg_of_neg_of_pos hdu hcosδ) + (mul_neg_of_neg_of_pos hdv hsinδ) + have hqω : 0 ≤ inner ℝ q (normalVector (ω : Real.Angle)) := hqFan.1 + change inner ℝ (q - z) (normalVector (ω : Real.Angle)) < 0 at hdω + rw [inner_sub_left] at hdω + linarith + · change 0 < inner ℝ z (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + have hdπ : inner ℝ d (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) < 0 := by + rw [hdφ, Real.cos_pi_div_two_sub, Real.sin_pi_div_two_sub] + exact add_neg (mul_neg_of_neg_of_pos hdu hsint) + (mul_neg_of_neg_of_pos hdv hcost) + have hqπ : 0 ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) := hqFan.2 + change inner ℝ (q - z) (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) < 0 at hdπ + rw [inner_sub_left] at hdπ + linarith + +private theorem exists_mem_capNiche_not_mem_of_innerCorner {ω t : ℝ} + (K : CapSpace ω) (ht : t ∈ Set.Ioo 0 ω) + (hzFan : (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerCorner ∈ + interior (capFan ω)) + (hzK : (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerCorner ∉ + (K.val : Set Point)) : + ∃ q, q ∈ capNiche K ∧ q ∉ (K.val : Set Point) := by + let z := (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerCorner + obtain ⟨ε, hε, hεball⟩ := Metric.isOpen_iff.mp isOpen_interior z hzFan + obtain ⟨δ, hδ, hδball⟩ := Metric.isOpen_iff.mp K.val.isClosed.isOpen_compl z hzK + let e := min ε δ / 2 + have he : 0 < e := half_pos (lt_min hε hδ) + let q := z - e • normalVector ((Real.pi / 2 : ℝ) : Real.Angle) + have hdist : dist q z = e := by + simp [q, norm_smul, norm_normalVector_real, abs_of_pos he] + have hqFan : q ∈ capFan ω := interior_subset (hεball (by + change dist q z < ε + rw [hdist] + dsimp [e] + linarith [min_le_left ε δ])) + have hqK : q ∉ (K.val : Set Point) := hδball (by + change dist q z < δ + rw [hdist] + dsimp [e] + linarith [min_le_right ε δ]) + have hzu : inner ℝ z (normalVector (t : Real.Angle)) = + supportValue K.val (t : Real.Angle) - 1 := by + simpa [z, rotatingHallwayParts, hallwayParts] using + inner_supportingPlacement_normalVector (K.val : Set Point) (t : Real.Angle) (0 : Point) + have hzv : inner ℝ z (tangentVector (t : Real.Angle)) = + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := by + simpa [z, rotatingHallwayParts, hallwayParts] using + inner_supportingPlacement_tangentVector (K.val : Set Point) (t : Real.Angle) (0 : Point) + have hs : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi ht.1 + (by linarith [ht.2, K.property.2.1, Real.pi_pos]) + have hc : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, ht.1], ht.2.trans_le K.property.2.1⟩ + have hquad : q ∈ innerQuadrant (K.val : Set Point) t := by + constructor + · change inner ℝ q (normalVector (t : Real.Angle)) < _ + dsimp [q] + rw [inner_sub_left, real_inner_smul_left, hzu] + simp [normalVector, frame, PiLp.inner_apply] + nlinarith + · change inner ℝ q (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < _ + rw [show ((t + Real.pi / 2 : ℝ) : Real.Angle) = + (t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) by rfl, + normalVector_add_pi_div_two] + dsimp [q] + rw [inner_sub_left, real_inner_smul_left, hzv] + simp [normalVector, tangentVector, frame, PiLp.inner_apply] + nlinarith + exact ⟨q, ⟨hqFan, Set.mem_iUnion₂.mpr ⟨t, ht, hquad⟩⟩, hqK⟩ + +private theorem verticalLine_disjoint_cap_diff_niche_of_innerCorner {ω t : ℝ} + (K : CapSpace ω) (ht : t ∈ Set.Ioo 0 ω) + (hzFan : (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerCorner ∈ + interior (capFan ω)) + (hzK : (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerCorner ∉ + (K.val : Set Point)) {q : Point} + (hq : q ∈ (K.val : Set Point) \ capNiche K) : + q 0 ≠ (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerCorner 0 := by + let z := (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerCorner + intro hx + change q 0 = z 0 at hx + by_cases hy : z 1 ≤ q 1 + · have hnot : ¬ ∀ u ∈ capUpperAngles ω, + inner ℝ z (normalVector (u : Real.Angle)) ≤ supportValue K.val (u : Real.Angle) := by + intro hall + exact hzK (K.mem_of_mem_capFan_of_le_supportValue (interior_subset hzFan) hall) + push Not at hnot + obtain ⟨u, hu, hzu⟩ := hnot + have huI : u ∈ Set.Icc 0 (ω + Real.pi / 2) := by + rcases hu with hu | hu + · exact ⟨hu.1, hu.2.trans (le_add_of_nonneg_right (by positivity))⟩ + · exact ⟨(by positivity : 0 ≤ Real.pi / 2).trans hu.1, hu.2⟩ + have hsin : 0 ≤ Real.sin u := Real.sin_nonneg_of_nonneg_of_le_pi huI.1 + (huI.2.trans (by linarith [K.property.2.1, Real.pi_pos])) + have hinner : inner ℝ z (normalVector (u : Real.Angle)) ≤ + inner ℝ q (normalVector (u : Real.Angle)) := by + simp only [normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, PiLp.inner_apply, + RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, Fin.isValue, Matrix.cons_val_zero, + Matrix.cons_val_one, Matrix.cons_val_fin_one] + rw [hx] + nlinarith [mul_le_mul_of_nonneg_left hy hsin] + have hqle := inner_le_supportValue K.val hq.1 (u : Real.Angle) + linarith + · have hzu : inner ℝ z (normalVector (t : Real.Angle)) = + supportValue K.val (t : Real.Angle) - 1 := by + simpa [z, rotatingHallwayParts, hallwayParts] using + inner_supportingPlacement_normalVector (K.val : Set Point) (t : Real.Angle) (0 : Point) + have hzv : inner ℝ z (tangentVector (t : Real.Angle)) = + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := by + simpa [z, rotatingHallwayParts, hallwayParts] using + inner_supportingPlacement_tangentVector (K.val : Set Point) (t : Real.Angle) (0 : Point) + have hs : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi ht.1 + (by linarith [ht.2, K.property.2.1, Real.pi_pos]) + have hc : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, ht.1], ht.2.trans_le K.property.2.1⟩ + apply hq.2 + refine ⟨K.subset_capFan hq.1, Set.mem_iUnion₂.mpr ⟨t, ht, ?_⟩⟩ + constructor + · change inner ℝ q (normalVector (t : Real.Angle)) < _ + simp [normalVector, frame, PiLp.inner_apply] at hzu ⊢ + nlinarith + · change inner ℝ q (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < _ + rw [show ((t + Real.pi / 2 : ℝ) : Real.Angle) = + (t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) by rfl, + normalVector_add_pi_div_two] + simp [tangentVector, frame, PiLp.inner_apply] at hzv ⊢ + nlinarith + +private theorem exists_upperBoundary_segment_subset_diff {ω : ℝ} (K : CapSpace ω) + {p : Point} (hp : p ∈ (K.val : Set Point) \ capNiche K) : + ∃ q ∈ capUpperBoundary K, segment ℝ p q ⊆ (K.val : Set Point) \ capNiche K := by + let F : Set Point := (K.val : Set Point) ∩ {q | q 0 = p 0} + have hFc : IsCompact F := K.val.isCompact.inter_right + (isClosed_eq (by fun_prop) continuous_const) + have hpF : p ∈ F := ⟨hp.1, rfl⟩ + obtain ⟨q, hqF, hqmax⟩ := hFc.exists_isMaxOn ⟨p, hpF⟩ + (by fun_prop : Continuous (fun q : Point ↦ q 1)).continuousOn + have hqK : q ∈ (K.val : Set Point) := hqF.1 + have hqδ : q ∈ capUpperBoundary K := by + rw [capUpperBoundary_relativeBoundary] + let z : capFan ω := ⟨q, K.subset_capFan hqK⟩ + have hzK : z ∈ {w : capFan ω | (w : Point) ∈ (K.val : Set Point)} := hqK + refine ⟨z, (mem_frontier_iff_notMem_interior hzK).2 ?_, rfl⟩ + intro hzint + obtain ⟨ε, hε, hball⟩ := Metric.isOpen_iff.mp isOpen_interior z hzint + let r : Point := q + (ε / 2) • normalVector ((Real.pi / 2 : ℝ) : Real.Angle) + have hrFan : r ∈ capFan ω := by + constructor + · change 0 ≤ inner ℝ r (normalVector (ω : Real.Angle)) + dsimp [r] + rw [inner_add_left, real_inner_smul_left, inner_normalVector_normalVector] + have hsin : 0 ≤ Real.sin ω := Real.sin_nonneg_of_nonneg_of_le_pi K.property.1.le + (K.property.2.1.trans (by linarith [Real.pi_pos])) + have := (K.subset_capFan hqK).1 + change 0 ≤ inner ℝ q (normalVector (ω : Real.Angle)) at this + rw [Real.cos_pi_div_two_sub] + positivity + · change 0 ≤ inner ℝ r (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + dsimp [r] + rw [inner_add_left, real_inner_smul_left, inner_normalVector_self] + have := (K.subset_capFan hqK).2 + change 0 ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at this + linarith + have hrball : (⟨r, hrFan⟩ : capFan ω) ∈ Metric.ball z ε := by + change dist r q < ε + simp [r, norm_smul, norm_normalVector_real, abs_of_pos hε] + linarith + have hrK := interior_subset (hball hrball) + have hrF : r ∈ F := ⟨hrK, by simpa [r, normalVector, frame] using hqF.2⟩ + have := hqmax hrF + simp [r, normalVector, frame] at this + linarith + refine ⟨q, hqδ, ?_⟩ + intro x hx + have hxK := K.val.convex.segment_subset hp.1 hqK hx + refine ⟨hxK, ?_⟩ + intro hxN + have hxFan := hxN.1 + obtain ⟨u, hu, hxQuad⟩ := Set.mem_iUnion₂.mp hxN.2 + have hxp0 : x 0 = p 0 := by + rw [segment_eq_image_lineMap] at hx + obtain ⟨s, hs, rfl⟩ := hx + simp only [Fin.isValue, AffineMap.lineMap_apply_module, PiLp.add_apply, PiLp.smul_apply, + smul_eq_mul] + rw [hqF.2] + ring + have hpx1 : p 1 ≤ x 1 := by + rw [segment_eq_image_lineMap] at hx + obtain ⟨s, hs, rfl⟩ := hx + have hpq := hqmax hpF + simp [AffineMap.lineMap_apply_module] + nlinarith [mul_nonneg hs.1 (sub_nonneg.mpr hpq)] + apply hp.2 + refine ⟨K.subset_capFan hp.1, Set.mem_iUnion₂.mpr ⟨u, hu, ?_⟩⟩ + rcases hxQuad with ⟨hxU, hxV⟩ + constructor + · change inner ℝ p (normalVector (u : Real.Angle)) < _ + change inner ℝ x (normalVector (u : Real.Angle)) < _ at hxU + have hs : 0 < Real.sin u := Real.sin_pos_of_pos_of_lt_pi hu.1 + (by linarith [hu.2, K.property.2.1, Real.pi_pos]) + simp only [normalVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, + PiLp.inner_apply, RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, + Fin.isValue, Matrix.cons_val_zero, Matrix.cons_val_one, Matrix.cons_val_fin_one, + gt_iff_lt] at hxU ⊢ + rw [hxp0] at hxU + nlinarith [mul_le_mul_of_nonneg_left hpx1 hs.le] + · change inner ℝ p (normalVector ((u + Real.pi / 2 : ℝ) : Real.Angle)) < _ + change inner ℝ x (normalVector ((u + Real.pi / 2 : ℝ) : Real.Angle)) < _ at hxV + have hc : 0 < Real.cos u := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, hu.1], hu.2.trans_le K.property.2.1⟩ + rw [show ((u + Real.pi / 2 : ℝ) : Real.Angle) = + (u : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) by rfl, + normalVector_add_pi_div_two] at hxV ⊢ + simp only [tangentVector, frame, Real.Angle.cos_coe, Real.Angle.sin_coe, + PiLp.inner_apply, RCLike.inner_apply, conj_trivial, Fin.sum_univ_two, + Fin.isValue, Matrix.cons_val_zero, neg_mul, Matrix.cons_val_one, + Matrix.cons_val_fin_one, neg_add_lt_iff_lt_add, gt_iff_lt] at hxV ⊢ + rw [hxp0] at hxV + nlinarith [mul_le_mul_of_nonneg_left hpx1 hc.le] + +theorem cap_niche_connected_iff {ω : ℝ} (K : CapSpace ω) : + (capNiche K ⊆ (K.val : Set Point) ↔ + capNiche K ⊆ (K.val : Set Point) \ capUpperBoundary K) ∧ + (capNiche K ⊆ (K.val : Set Point) \ capUpperBoundary K ↔ + ∀ t ∈ Set.Ioo 0 ω, + (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerCorner ∉ + interior (capFan ω) ∨ + (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerCorner ∈ + (K.val : Set Point)) ∧ + ((∀ t ∈ Set.Ioo 0 ω, + (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerCorner ∉ + interior (capFan ω) ∨ + (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerCorner ∈ + (K.val : Set Point)) ↔ + IsConnected ((K.val : Set Point) \ capNiche K)) := by + refine ⟨?_, ?_, ?_⟩ + · constructor + · intro hsub p hp + refine ⟨hsub hp, ?_⟩ + exact fun hpδ ↦ + Set.disjoint_left.mp (capNiche_disjoint_upperBoundary_of_subset K hsub) hp hpδ + · intro hsub p hp + exact (hsub hp).1 + · constructor + · intro hsub t ht + by_cases hzFan : (rotatingHallwayParts (K.val : Set Point) + (t : Real.Angle)).innerCorner ∈ interior (capFan ω) + · right + by_contra hzK + obtain ⟨q, hqN, hqK⟩ := + exists_mem_capNiche_not_mem_of_innerCorner K ht hzFan hzK + exact hqK (hsub hqN).1 + · exact Or.inl hzFan + · intro hcorner p hp + have hpFan := hp.1 + obtain ⟨t, ht, hpQuad⟩ := Set.mem_iUnion₂.mp hp.2 + have hpWedge : p ∈ capWedge K t := ⟨hpFan, by + change p ∈ innerQuadrant (K.val : Set Point) t at hpQuad + have hf := rotatingHallwayParts_formulas (K.val : Set Point) (t : Real.Angle) + rw [hf.2.2.2.2.2.2.2.2] + exact hpQuad⟩ + rcases hcorner t ht with hzout | hzK + · exact False.elim (hzout (innerCorner_mem_interior_capFan_of_mem_capWedge K ht hpWedge)) + · have hpK := capWedge_subset_of_innerCorner_mem K t ht hzK hpWedge + refine ⟨hpK, ?_⟩ + exact fun hpδ ↦ Set.disjoint_left.mp + (capNiche_disjoint_upperBoundary_of_subset K fun q hq ↦ by + have hqFan := hq.1 + obtain ⟨u, hu, hqQuad⟩ := Set.mem_iUnion₂.mp hq.2 + have hqWedge : q ∈ capWedge K u := ⟨hqFan, by + have hf := rotatingHallwayParts_formulas (K.val : Set Point) (u : Real.Angle) + rw [hf.2.2.2.2.2.2.2.2] + exact hqQuad⟩ + rcases hcorner u hu with hzout | hzmem + · exact False.elim + (hzout (innerCorner_mem_interior_capFan_of_mem_capWedge K hu hqWedge)) + · exact capWedge_subset_of_innerCorner_mem K u hu hzmem hqWedge) hp hpδ + · constructor + · intro hcorner + have hsub : capNiche K ⊆ (K.val : Set Point) := by + intro p hp + have hpFan := hp.1 + obtain ⟨t, ht, hpQuad⟩ := Set.mem_iUnion₂.mp hp.2 + have hpWedge : p ∈ capWedge K t := ⟨hpFan, by + have hf := rotatingHallwayParts_formulas (K.val : Set Point) (t : Real.Angle) + rw [hf.2.2.2.2.2.2.2.2] + exact hpQuad⟩ + rcases hcorner t ht with hzout | hzmem + · exact False.elim + (hzout (innerCorner_mem_interior_capFan_of_mem_capWedge K ht hpWedge)) + · exact capWedge_subset_of_innerCorner_mem K t ht hzmem hpWedge + have hδS : capUpperBoundary K ⊆ (K.val : Set Point) \ capNiche K := by + intro q hq + have hqK : q ∈ (K.val : Set Point) := by + obtain ⟨t, ht, hqedge⟩ := Set.mem_iUnion₂.mp hq + exact hqedge.1 + exact ⟨hqK, fun hqN ↦ + Set.disjoint_left.mp (capNiche_disjoint_upperBoundary_of_subset K hsub) hqN hq⟩ + obtain ⟨l, r, hlK, -, hl, -⟩ := exists_horizontal_extrema K.val + have hlS : l ∈ (K.val : Set Point) \ capNiche K := ⟨hlK, fun hlN ↦ by + have := (capNiche_subset_rectangle K hlN).1 + linarith⟩ + obtain ⟨q₀, hq₀δ, hseg₀⟩ := exists_upperBoundary_segment_subset_diff K hlS + let S : Set Point := (K.val : Set Point) \ capNiche K + let f : S → Point := fun p ↦ Classical.choose + (exists_upperBoundary_segment_subset_diff K p.property) + have hfδ (p : S) : f p ∈ capUpperBoundary K := + (Classical.choose_spec (exists_upperBoundary_segment_subset_diff K p.property)).1 + have hfseg (p : S) : segment ℝ (p : Point) (f p) ⊆ S := + (Classical.choose_spec (exists_upperBoundary_segment_subset_diff K p.property)).2 + let A : S → Set Point := fun p ↦ capUpperBoundary K ∪ segment ℝ (p : Point) (f p) + have hA (p : S) : IsPreconnected (A p) := by + apply IsPreconnected.union' ⟨f p, hfδ p, right_mem_segment ℝ _ _⟩ + · exact (capUpperBoundary_connected K).isPreconnected + · exact (convex_segment (𝕜 := ℝ) (p : Point) (f p)).isPreconnected + have hcommon : (⋂ p, A p).Nonempty := by + refine ⟨q₀, Set.mem_iInter.mpr fun p ↦ ?_⟩ + exact Or.inl hq₀δ + have hunion : (⋃ p, A p) = S := by + apply Set.Subset.antisymm + · intro x hx + obtain ⟨p, hxp⟩ := Set.mem_iUnion.mp hx + rcases hxp with hxδ | hxseg + · exact hδS hxδ + · exact hfseg p hxseg + · intro x hx + let p : S := ⟨x, hx⟩ + exact Set.mem_iUnion.mpr ⟨p, Or.inr (left_mem_segment ℝ _ _)⟩ + refine ⟨⟨l, hlS⟩, ?_⟩ + change IsPreconnected S + rw [← hunion] + exact isPreconnected_iUnion hcommon hA + · intro hconn t ht + by_cases hzFan : (rotatingHallwayParts (K.val : Set Point) + (t : Real.Angle)).innerCorner ∈ interior (capFan ω) + · right + by_contra hzK + let z := (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerCorner + obtain ⟨l, r, hlK, hrK, hl, hr⟩ := exists_horizontal_extrema K.val + have hlS : l ∈ (K.val : Set Point) \ capNiche K := ⟨hlK, fun hlN ↦ by + have := (capNiche_subset_rectangle K hlN).1 + linarith⟩ + have hrS : r ∈ (K.val : Set Point) \ capNiche K := ⟨hrK, fun hrN ↦ by + have := (capNiche_subset_rectangle K hrN).2.1 + linarith⟩ + have hzy : 0 < z 1 := by + by_contra hn + obtain ⟨ε, hε, hball⟩ := Metric.isOpen_iff.mp isOpen_interior z hzFan + let q := z - (ε / 2) • normalVector ((Real.pi / 2 : ℝ) : Real.Angle) + have hq := interior_subset (hball (by + change dist q z < ε + simp [q, norm_smul, norm_normalVector_real, abs_of_pos hε] + linarith)) + have := hq.2 + change 0 ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at this + simp [q, normalVector, frame, PiLp.inner_apply] at this + linarith + have hzu : inner ℝ z (normalVector (t : Real.Angle)) = + supportValue K.val (t : Real.Angle) - 1 := by + simpa [z, rotatingHallwayParts, hallwayParts] using + inner_supportingPlacement_normalVector (K.val : Set Point) + (t : Real.Angle) (0 : Point) + have hzv : inner ℝ z (tangentVector (t : Real.Angle)) = + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := by + simpa [z, rotatingHallwayParts, hallwayParts] using + inner_supportingPlacement_tangentVector (K.val : Set Point) + (t : Real.Angle) (0 : Point) + have hb := K.supportValue_horizontal_bounds ht + have hb₁ := hb.1 + have hb₂ := hb.2 + change supportValue K.val ((t : Real.Angle) + + ((Real.pi / 2 : ℝ) : Real.Angle)) ≤ + -Real.sin t * horizontalMin K.val + Real.cos t at hb₂ + have hs : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi ht.1 + (by linarith [ht.2, K.property.2.1, Real.pi_pos]) + have hc : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, ht.1], ht.2.trans_le K.property.2.1⟩ + have hs1 : Real.sin t ≤ 1 := Real.sin_le_one t + have hc1 : Real.cos t ≤ 1 := Real.cos_le_one t + have hzlr : l 0 < z 0 ∧ z 0 < r 0 := by + change inner ℝ z (tangentVector (t : Real.Angle)) = + supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 at hzv + simp [normalVector, tangentVector, frame, PiLp.inner_apply] at hzu hzv + rw [hl, hr] + constructor + · nlinarith [hb₂, mul_pos hc hzy, sub_nonneg.mpr hc1] + · nlinarith [hb₁, mul_pos hs hzy, sub_nonneg.mpr hs1] + obtain ⟨q, hqS, hqx⟩ := hconn.isPreconnected.intermediate_value hlS hrS + (by fun_prop : ContinuousOn (fun p : Point ↦ p 0) _) + ⟨hzlr.1.le, hzlr.2.le⟩ + exact verticalLine_disjoint_cap_diff_niche_of_innerCorner K ht hzFan hzK hqS hqx + · exact Or.inl hzFan + +private theorem exists_line_meeting_of_support_bounds {s : Set Point} {ω : ℝ} + (hs : IsCompact s) (hc : IsConnected s) (hω : ω ≤ Real.pi / 2) (p : Point) + (hp0 : inner ℝ p (normalVector (0 : Real.Angle)) ≤ supportValue s 0) + (hpω : inner ℝ p (tangentVector (ω : Real.Angle)) ≤ + supportValue s ((ω + Real.pi / 2 : ℝ) : Real.Angle)) : + ∃ q ∈ s, ∃ θ ∈ Set.Icc ω (Real.pi / 2), + inner ℝ (q - p) (tangentVector (θ : Real.Angle)) = 0 := by + obtain ⟨q₀, hq₀, he₀, _⟩ := hs.exists_sSup_image_eq_and_ge + (f := fun q : Point ↦ inner ℝ q (normalVector (0 : Real.Angle))) hc.nonempty + (continuous_id.inner continuous_const).continuousOn + obtain ⟨qω, hqω, heω, _⟩ := hs.exists_sSup_image_eq_and_ge + (f := fun q : Point ↦ inner ℝ q (tangentVector (ω : Real.Angle))) hc.nonempty + (continuous_id.inner continuous_const).continuousOn + have hn : normalVector ((ω + Real.pi / 2 : ℝ) : Real.Angle) = + tangentVector (ω : Real.Angle) := by + rw [Real.Angle.coe_add, normalVector_add_pi_div_two] + have hzero : tangentVector ((Real.pi / 2 : ℝ) : Real.Angle) = + -normalVector (0 : Real.Angle) := by + simpa using tangentVector_add_pi_div_two 0 + have hpω' : inner ℝ p (tangentVector (ω : Real.Angle)) ≤ + inner ℝ qω (tangentVector (ω : Real.Angle)) := by + simpa only [supportValue, hn, heω] using hpω + have hp0' : inner ℝ p (normalVector (0 : Real.Angle)) ≤ + inner ℝ q₀ (normalVector (0 : Real.Angle)) := by + simpa only [supportValue, he₀] using hp0 + let f : Point × ℝ → ℝ := fun z ↦ inner ℝ (z.1 - p) (tangentVector (z.2 : Real.Angle)) + have hv : Continuous (fun θ : ℝ ↦ tangentVector (θ : Real.Angle)) := by + have h := continuous_normalVector_real.comp (continuous_id.add continuous_const + : Continuous (fun θ : ℝ ↦ θ + Real.pi / 2)) + simpa only [Function.comp_def, Pi.add_apply, id_eq, Real.Angle.coe_add, + normalVector_add_pi_div_two] using h + have hf : Continuous f := (continuous_fst.sub continuous_const).inner + (hv.comp continuous_snd) + have hl : f (q₀, Real.pi / 2) ≤ 0 := by + change inner ℝ (q₀ - p) (tangentVector ((Real.pi / 2 : ℝ) : Real.Angle)) ≤ 0 + rw [hzero, inner_neg_right, inner_sub_left] + linarith + have hr : 0 ≤ f (qω, ω) := by + change 0 ≤ inner ℝ (qω - p) (tangentVector (ω : Real.Angle)) + rw [inner_sub_left] + linarith + obtain ⟨⟨q, θ⟩, hmem, he⟩ := (hc.isPreconnected.prod isPreconnected_Icc).intermediate_value + (f := f) ⟨hq₀, hω, le_rfl⟩ ⟨hqω, le_rfl, hω⟩ hf.continuousOn ⟨hl, hr⟩ + exact ⟨q, hmem.1, θ, hmem.2, he⟩ + +private theorem mem_supportingHallway_iff_coordinates (s : Set Point) (t : Real.Angle) + (p : Point) : + p ∈ supportingHallway s t ↔ + inner ℝ p (normalVector t) ≤ supportValue s t ∧ + inner ℝ p (tangentVector t) ≤ supportValue s (t + ((Real.pi / 2 : ℝ) : Real.Angle)) ∧ + (supportValue s t - 1 ≤ inner ℝ p (normalVector t) ∨ + supportValue s (t + ((Real.pi / 2 : ℝ) : Real.Angle)) - 1 ≤ + inner ℝ p (tangentVector t)) := by + obtain ⟨h, _, _, _, _, _, _, ho, hi⟩ := rotatingHallwayParts_formulas s t + rw [h, ho, hi] + simp only [Set.mem_sdiff, Set.mem_inter_iff, normalHalfPlane, Set.mem_ofPred_eq, + Bool.false_eq_true, ↓reduceIte, normalVector_add_pi_div_two] + simp only [not_and_or, not_lt, and_assoc] + +private theorem segment_subset_supportingHallway_of_projections_le {s : Set Point} + {t : Real.Angle} {p q : Point} (hp : p ∈ supportingHallway s t) + (hq : q ∈ supportingHallway s t) + (hn : inner ℝ p (normalVector t) ≤ inner ℝ q (normalVector t)) + (hv : inner ℝ p (tangentVector t) ≤ inner ℝ q (tangentVector t)) : + segment ℝ p q ⊆ supportingHallway s t := by + rw [mem_supportingHallway_iff_coordinates] at hp hq + rintro z ⟨a, b, ha, hb, hab, rfl⟩ + rw [mem_supportingHallway_iff_coordinates] + simp only [inner_add_left, real_inner_smul_left] + have weighted_le (x y m : ℝ) (hx : x ≤ m) (hy : y ≤ m) : a * x + b * y ≤ m := by + calc + a * x + b * y ≤ a * m + b * m := + add_le_add (mul_le_mul_of_nonneg_left hx ha) (mul_le_mul_of_nonneg_left hy hb) + _ = m := by rw [← add_mul, hab, one_mul] + have le_weighted (x y m : ℝ) (hx : m ≤ x) (hy : m ≤ y) : m ≤ a * x + b * y := by + calc + m = a * m + b * m := by rw [← add_mul, hab, one_mul] + _ ≤ a * x + b * y := + add_le_add (mul_le_mul_of_nonneg_left hx ha) (mul_le_mul_of_nonneg_left hy hb) + refine ⟨weighted_le _ _ _ hp.1 hq.1, weighted_le _ _ _ hp.2.1 hq.2.1, ?_⟩ + rcases hp.2.2 with hn' | hv' + · exact Or.inl (le_weighted _ _ _ hn' (hn'.trans hn)) + · exact Or.inr (le_weighted _ _ _ hv' (hv'.trans hv)) + +private theorem convex_stripParallelogram (ω : ℝ) : Convex ℝ (stripParallelogram ω).1 := by + intro p hp q hq a b ha hb hab + rw [mem_stripParallelogram_iff] at hp hq ⊢ + simp only [PiLp.add_apply, PiLp.smul_apply, smul_eq_mul, inner_add_left, + real_inner_smul_left] + exact ⟨convex_Icc (0 : ℝ) 1 hp.1 hq.1 ha hb hab, convex_Icc (0 : ℝ) 1 hp.2 hq.2 ha hb hab⟩ + +private theorem segment_subset_supportingHallway_of_tangent_eq_zero {s : Set Point} + {t θ : ℝ} {p q : Point} (hp : p ∈ supportingHallway s (t : Real.Angle)) + (hq : q ∈ supportingHallway s (t : Real.Angle)) + (hθ : θ - t ∈ Set.Icc 0 (Real.pi / 2)) + (hline : inner ℝ (q - p) (tangentVector (θ : Real.Angle)) = 0) : + segment ℝ p q ⊆ supportingHallway s (t : Real.Angle) := by + let c := inner ℝ (q - p) (normalVector (θ : Real.Angle)) + have hdiff : q - p = c • normalVector (θ : Real.Angle) := by + have h := inner_normalVector_smul_add_inner_tangentVector_smul (q - p) (θ : Real.Angle) + simpa only [hline, zero_smul, add_zero] using h.symm + have hcos : 0 ≤ Real.cos (θ - t) := + Real.cos_nonneg_of_mem_Icc ⟨by linarith [Real.pi_pos, hθ.1], hθ.2⟩ + have hsin : 0 ≤ Real.sin (θ - t) := + Real.sin_nonneg_of_nonneg_of_le_pi hθ.1 (by linarith [Real.pi_pos, hθ.2]) + have hn : inner ℝ q (normalVector (t : Real.Angle)) - + inner ℝ p (normalVector (t : Real.Angle)) = c * Real.cos (θ - t) := by + rw [← inner_sub_left, hdiff, real_inner_smul_left, inner_normalVector_normalVector] + have hv : inner ℝ q (tangentVector (t : Real.Angle)) - + inner ℝ p (tangentVector (t : Real.Angle)) = c * Real.sin (θ - t) := by + rw [← inner_sub_left, hdiff, real_inner_smul_left] + congr 1 + simp [normalVector, tangentVector, frame, PiLp.inner_apply, Fin.sum_univ_two, + Real.sin_sub] + ring + by_cases hc : 0 ≤ c + · apply segment_subset_supportingHallway_of_projections_le hp hq + · linarith [mul_nonneg hc hcos] + · linarith [mul_nonneg hc hsin] + · rw [segment_symm] + apply segment_subset_supportingHallway_of_projections_le hq hp + · linarith [mul_nonpos_of_nonpos_of_nonneg (le_of_not_ge hc) hcos] + · linarith [mul_nonpos_of_nonpos_of_nonneg (le_of_not_ge hc) hsin] + +theorem standardPosition_monotonization_connected (s : Set Point) (ω : ℝ) + (hs : IsStandardPosition s ω) : IsConnected (monotonization s ω) := by + have hc : IsConnected s := by + obtain ⟨m, hm, _⟩ := hs.2.1 + exact hm.1 + have hsub := (standardPosition_subset_cap s ω hs).1 + obtain ⟨q₀, hq₀⟩ := hc.nonempty + refine ⟨hc.nonempty.mono hsub, isPreconnected_of_forall q₀ ?_⟩ + intro p hp + have hpH (t : ℝ) (ht : t ∈ Set.Icc 0 ω) : + p ∈ supportingHallway s (t : Real.Angle) := + Set.mem_iInter.1 (Set.mem_iInter.1 hp.2 t) ht + have hp0 := (mem_supportingHallway_iff_coordinates s 0 p).mp + (hpH 0 ⟨le_rfl, hs.2.2.1.le⟩) + have hpω := (mem_supportingHallway_iff_coordinates s (ω : Real.Angle) p).mp + (hpH ω ⟨hs.2.2.1.le, le_rfl⟩) + obtain ⟨q, hqs, θ, hθ, hline⟩ := exists_line_meeting_of_support_bounds hs.1 hc + hs.2.2.2.1 p hp0.1 (by simpa only [Real.Angle.coe_add] using hpω.2.1) + have hq := hsub hqs + have hseg : segment ℝ p q ⊆ monotonization s ω := by + intro z hz + refine ⟨(convex_stripParallelogram ω).segment_subset hp.1 hq.1 hz, + Set.mem_iInter.2 fun t ↦ Set.mem_iInter.2 fun ht ↦ ?_⟩ + apply segment_subset_supportingHallway_of_tangent_eq_zero (hpH t ht) + (Set.mem_iInter.1 (Set.mem_iInter.1 hq.2 t) ht) _ hline hz + exact ⟨by linarith [hθ.1, ht.2], by linarith [hθ.2, ht.1]⟩ + refine ⟨s ∪ segment ℝ p q, Set.union_subset hsub hseg, Or.inl hq₀, + Or.inr (left_mem_segment ℝ p q), ?_⟩ + exact IsPreconnected.union q hqs (right_mem_segment ℝ p q) hc.isPreconnected + (convex_segment p q).isPreconnected + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Mirror Features +-/ + +@[expose] public section + +noncomputable section + +open MeasureTheory + +namespace MovingSofa + +private theorem mirrorReflection_eq_capReflection_m6ef9701 (ω : ℝ) + (hω0 : 0 < ω) (hωle : ω ≤ Real.pi / 2) : + mirrorReflection ω = capReflection ω := by + change stripTopReflection ω = capReflection ω + exact stripTopReflection_eq_capReflection ω hω0 hωle + +private theorem capReflection_rotationMap (ω s : ℝ) (p : Point) : + capReflection ω (rotationMap (s : Real.Angle) p) = + rotationMap ((ω - s : ℝ) : Real.Angle) (coordinateSwap p) := by + have hang : (ω : Real.Angle) - (s : Real.Angle) = + ((ω - s : ℝ) : Real.Angle) := by + rw [← Real.Angle.coe_sub] + ext i + fin_cases i + · change capReflection ω (rotationMap (s : Real.Angle) p) 0 = + rotationMap ((ω - s : ℝ) : Real.Angle) (coordinateSwap p) 0 + rw [capReflection_apply_zero] + rw [← hang] + simp only [Fin.isValue, rotationMap, Orientation.rotation_apply, Real.Angle.cos_coe, + Real.Angle.sin_coe, rightAngleRotation_apply, PiLp.add_apply, PiLp.smul_apply, + smul_eq_mul, Matrix.cons_val_zero, mul_neg, neg_mul, Matrix.cons_val_one, + Matrix.cons_val_fin_one, coordinateSwap, LinearIsometryEquiv.piLpCongrLeft_apply, + Equiv.piCongrLeft'_apply, Equiv.symm_swap, Equiv.swap_apply_right, Equiv.swap_apply_left] + rw [hang, Real.Angle.sin_coe, Real.Angle.cos_coe, Real.sin_sub, Real.cos_sub] + ring + · change capReflection ω (rotationMap (s : Real.Angle) p) 1 = + rotationMap ((ω - s : ℝ) : Real.Angle) (coordinateSwap p) 1 + rw [capReflection_apply_one] + rw [← hang] + simp only [Fin.isValue, rotationMap, Orientation.rotation_apply, Real.Angle.cos_coe, + Real.Angle.sin_coe, rightAngleRotation_apply, PiLp.add_apply, PiLp.smul_apply, + smul_eq_mul, Matrix.cons_val_zero, mul_neg, Matrix.cons_val_one, Matrix.cons_val_fin_one, + coordinateSwap, LinearIsometryEquiv.piLpCongrLeft_apply, Equiv.piCongrLeft'_apply, + Equiv.symm_swap, Equiv.swap_apply_right, Equiv.swap_apply_left] + rw [hang, Real.Angle.sin_coe, Real.Angle.cos_coe, Real.sin_sub, Real.cos_sub] + ring + +private theorem capReflection_normal_at_complement (ω t : ℝ) : + capReflection ω (normalVector ((ω - t : ℝ) : Real.Angle)) = + tangentVector (t : Real.Angle) := by + rw [capReflection_normalVector] + have hang : ω + Real.pi / 2 - (ω - t) = t + Real.pi / 2 := by ring + rw [hang] + ext i + fin_cases i <;> simp [normalVector, tangentVector, frame, + Real.Angle.sin_add_pi_div_two, Real.Angle.cos_add_pi_div_two] + +private theorem capReflection_tangent_at_complement (ω t : ℝ) : + capReflection ω (tangentVector ((ω - t : ℝ) : Real.Angle)) = + normalVector (t : Real.Angle) := by + rw [capReflection_tangentVector] + have hang : ω + Real.pi / 2 - (ω - t) = t + Real.pi / 2 := by ring + rw [hang] + ext i + fin_cases i <;> simp [normalVector, tangentVector, frame, + Real.Angle.sin_add_pi_div_two, Real.Angle.cos_add_pi_div_two] + +private theorem supportValue_reflected_at (ω t : ℝ) (K : ConvexBody Point) : + supportValue (reflectedBody ω K) (t : Real.Angle) = + supportValue K ((ω - t + Real.pi / 2 : ℝ) : Real.Angle) := by + rw [supportValue_reflectedBody, reflectedAngle_coe] + congr 2 + ring + +private theorem supportValue_reflected_at_add_pi_div_two (ω t : ℝ) + (K : ConvexBody Point) : + supportValue (reflectedBody ω K) ((t + Real.pi / 2 : ℝ) : Real.Angle) = + supportValue K ((ω - t : ℝ) : Real.Angle) := by + rw [supportValue_reflectedBody, reflectedAngle_coe] + congr 2 + ring + +private theorem supportingPlacement_reflection (ω t : ℝ) + (K : ConvexBody Point) (q : Point) : + supportingPlacement (reflectedBody ω K) (t : Real.Angle) (coordinateSwap q) = + capReflection ω (supportingPlacement K ((ω - t : ℝ) : Real.Angle) q) := by + unfold supportingPlacement + rw [map_add, map_add, map_smul, map_smul, + capReflection_rotationMap] + have hrot : ω - (ω - t) = t := by ring + have htadd : (t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) = + ((t + Real.pi / 2 : ℝ) : Real.Angle) := by + rw [← Real.Angle.coe_add] + have hsadd : ((ω - t : ℝ) : Real.Angle) + + ((Real.pi / 2 : ℝ) : Real.Angle) = + ((ω - t + Real.pi / 2 : ℝ) : Real.Angle) := by + rw [← Real.Angle.coe_add] + rw [hrot, supportValue_reflected_at, + htadd, supportValue_reflected_at_add_pi_div_two, hsadd, + capReflection_normal_at_complement, + capReflection_tangent_at_complement] + module + +private theorem coordinateSwap_involutive (p : Point) : + coordinateSwap (coordinateSwap p) = p := by + ext i + fin_cases i <;> simp [coordinateSwap] + +private theorem coordinateSwap_image_hallway : + coordinateSwap '' hallway = hallway := by + ext p + constructor + · rintro ⟨q, hq, rfl⟩ + rcases hq with ⟨a, b, h, rfl⟩ | ⟨a, b, h, rfl⟩ + · exact Or.inr ⟨b, a, ⟨h.2.1, h.2.2, h.1⟩, by + ext i + fin_cases i <;> simp [coordinateSwap]⟩ + · exact Or.inl ⟨b, a, ⟨h.2.2, h.1, h.2.1⟩, by + ext i + fin_cases i <;> simp [coordinateSwap]⟩ + · intro hp + refine ⟨coordinateSwap p, ?_, coordinateSwap_involutive p⟩ + rcases hp with ⟨a, b, h, rfl⟩ | ⟨a, b, h, rfl⟩ + · exact Or.inr ⟨b, a, ⟨h.2.1, h.2.2, h.1⟩, by + ext i + fin_cases i <;> simp [coordinateSwap]⟩ + · exact Or.inl ⟨b, a, ⟨h.2.2, h.1, h.2.1⟩, by + ext i + fin_cases i <;> simp [coordinateSwap]⟩ + +private theorem coordinateSwap_image_eq_preimage (s : Set Point) : + coordinateSwap '' s = coordinateSwap ⁻¹' s := by + ext p + constructor + · rintro ⟨q, hq, rfl⟩ + change coordinateSwap (coordinateSwap q) ∈ s + rwa [coordinateSwap_involutive] + · intro hp + exact ⟨coordinateSwap p, hp, coordinateSwap_involutive p⟩ + +private theorem coordinateSwap_image_outerQuadrant : + coordinateSwap '' hallwayParts.outerQuadrant = hallwayParts.outerQuadrant := by + rw [coordinateSwap_image_eq_preimage] + ext p + simp [hallwayParts, coordinateSwap, and_comm] + +private theorem coordinateSwap_image_innerQuadrant : + coordinateSwap '' hallwayParts.innerQuadrant = hallwayParts.innerQuadrant := by + rw [coordinateSwap_image_eq_preimage] + ext p + simp [hallwayParts, coordinateSwap, and_comm] + +private theorem coordinateSwap_image_a : + coordinateSwap '' hallwayParts.a = hallwayParts.c := by + rw [coordinateSwap_image_eq_preimage] + ext p + simp [hallwayParts, coordinateSwap] + +private theorem coordinateSwap_image_c : + coordinateSwap '' hallwayParts.c = hallwayParts.a := by + rw [coordinateSwap_image_eq_preimage] + ext p + simp [hallwayParts, coordinateSwap] + +private theorem coordinateSwap_image_b : + coordinateSwap '' hallwayParts.b = hallwayParts.d := by + rw [coordinateSwap_image_eq_preimage] + ext p + simp [hallwayParts, coordinateSwap] + +private theorem coordinateSwap_image_d : + coordinateSwap '' hallwayParts.d = hallwayParts.b := by + rw [coordinateSwap_image_eq_preimage] + ext p + simp [hallwayParts, coordinateSwap] + +private theorem coordinateSwap_image_bRay : + coordinateSwap '' hallwayParts.bRay = hallwayParts.dRay := by + rw [coordinateSwap_image_eq_preimage] + ext p + simp [hallwayParts, coordinateSwap, and_comm] + +private theorem coordinateSwap_image_dRay : + coordinateSwap '' hallwayParts.dRay = hallwayParts.bRay := by + rw [coordinateSwap_image_eq_preimage] + ext p + simp [hallwayParts, coordinateSwap, and_comm] + +private theorem supportingPlacement_image_reflection (ω t : ℝ) + (K : ConvexBody Point) (s : Set Point) : + supportingPlacement (reflectedBody ω K) (t : Real.Angle) '' + (coordinateSwap '' s) = + capReflection ω '' + (supportingPlacement K ((ω - t : ℝ) : Real.Angle) '' s) := by + rw [Set.image_image, Set.image_image] + congr 1 + funext q + exact supportingPlacement_reflection ω t K q + +private theorem supportingHallway_reflection (ω t : ℝ) + (K : ConvexBody Point) : + supportingHallway (reflectedBody ω K) (t : Real.Angle) = + capReflection ω '' supportingHallway K ((ω - t : ℝ) : Real.Angle) := by + unfold supportingHallway + nth_rewrite 1 [← coordinateSwap_image_hallway] + exact supportingPlacement_image_reflection ω t K hallway + +private theorem rotatingHallwayParts_reflection (ω t : ℝ) + (K : ConvexBody Point) : + (rotatingHallwayParts (reflectedBody ω K) (t : Real.Angle)).innerCorner = + capReflection ω + (rotatingHallwayParts K ((ω - t : ℝ) : Real.Angle)).innerCorner ∧ + (rotatingHallwayParts (reflectedBody ω K) (t : Real.Angle)).outerCorner = + capReflection ω + (rotatingHallwayParts K ((ω - t : ℝ) : Real.Angle)).outerCorner ∧ + (rotatingHallwayParts (reflectedBody ω K) (t : Real.Angle)).outerQuadrant = + capReflection ω '' + (rotatingHallwayParts K ((ω - t : ℝ) : Real.Angle)).outerQuadrant ∧ + (rotatingHallwayParts (reflectedBody ω K) (t : Real.Angle)).innerQuadrant = + capReflection ω '' + (rotatingHallwayParts K ((ω - t : ℝ) : Real.Angle)).innerQuadrant ∧ + (rotatingHallwayParts (reflectedBody ω K) (t : Real.Angle)).a = + capReflection ω '' + (rotatingHallwayParts K ((ω - t : ℝ) : Real.Angle)).c ∧ + (rotatingHallwayParts (reflectedBody ω K) (t : Real.Angle)).c = + capReflection ω '' + (rotatingHallwayParts K ((ω - t : ℝ) : Real.Angle)).a ∧ + (rotatingHallwayParts (reflectedBody ω K) (t : Real.Angle)).b = + capReflection ω '' + (rotatingHallwayParts K ((ω - t : ℝ) : Real.Angle)).d ∧ + (rotatingHallwayParts (reflectedBody ω K) (t : Real.Angle)).d = + capReflection ω '' + (rotatingHallwayParts K ((ω - t : ℝ) : Real.Angle)).b ∧ + (rotatingHallwayParts (reflectedBody ω K) (t : Real.Angle)).bRay = + capReflection ω '' + (rotatingHallwayParts K ((ω - t : ℝ) : Real.Angle)).dRay ∧ + (rotatingHallwayParts (reflectedBody ω K) (t : Real.Angle)).dRay = + capReflection ω '' + (rotatingHallwayParts K ((ω - t : ℝ) : Real.Angle)).bRay := by + have hzero : coordinateSwap (0 : Point) = 0 := by + ext i + fin_cases i <;> simp [coordinateSwap] + have hone : coordinateSwap (!₂[1, 1] : Point) = !₂[1, 1] := by + ext i + fin_cases i <;> simp [coordinateSwap] + unfold rotatingHallwayParts + dsimp only + refine ⟨?_, ?_, ?_, ?_, ?_, ?_, ?_, ?_, ?_, ?_⟩ + · simp only [hallwayParts] + rw [← hzero] + exact supportingPlacement_reflection ω t K 0 + · simp only [hallwayParts] + nth_rewrite 1 [← hone] + exact supportingPlacement_reflection ω t K !₂[1, 1] + · nth_rewrite 1 [← coordinateSwap_image_outerQuadrant] + exact supportingPlacement_image_reflection ω t K hallwayParts.outerQuadrant + · nth_rewrite 1 [← coordinateSwap_image_innerQuadrant] + exact supportingPlacement_image_reflection ω t K hallwayParts.innerQuadrant + · nth_rewrite 1 [← coordinateSwap_image_c] + exact supportingPlacement_image_reflection ω t K hallwayParts.c + · nth_rewrite 1 [← coordinateSwap_image_a] + exact supportingPlacement_image_reflection ω t K hallwayParts.a + · nth_rewrite 1 [← coordinateSwap_image_d] + exact supportingPlacement_image_reflection ω t K hallwayParts.d + · nth_rewrite 1 [← coordinateSwap_image_b] + exact supportingPlacement_image_reflection ω t K hallwayParts.b + · nth_rewrite 1 [← coordinateSwap_image_dRay] + exact supportingPlacement_image_reflection ω t K hallwayParts.dRay + · nth_rewrite 1 [← coordinateSwap_image_bRay] + exact supportingPlacement_image_reflection ω t K hallwayParts.bRay + +private theorem exposedEdge_reflection (ω : ℝ) (K : ConvexBody Point) + (a : Real.Angle) : + exposedEdge (reflectedBody ω K) a = + capReflection ω '' exposedEdge K (reflectedAngle ω a) := by + ext p + constructor + · rintro ⟨⟨q, hq, rfl⟩, hp⟩ + refine ⟨q, ⟨hq, ?_⟩, rfl⟩ + change inner ℝ (capReflection ω q) (normalVector a) = + supportValue (reflectedBody ω K) a at hp + change inner ℝ q (normalVector (reflectedAngle ω a)) = + supportValue K (reflectedAngle ω a) + rw [← inner_capReflection_normalVector ω q a, + ← supportValue_reflectedBody ω K a] + exact hp + · rintro ⟨q, ⟨hq, hp⟩, rfl⟩ + refine ⟨⟨q, hq, rfl⟩, ?_⟩ + change inner ℝ (capReflection ω q) (normalVector a) = + supportValue (reflectedBody ω K) a + rw [inner_capReflection_normalVector, supportValue_reflectedBody] + exact hp + +private theorem exposedEdgeHeights_reflection (ω : ℝ) (K : ConvexBody Point) + (a : Real.Angle) : + (fun p ↦ inner ℝ p (tangentVector a)) '' exposedEdge (reflectedBody ω K) a = + -((fun p ↦ inner ℝ p (tangentVector (reflectedAngle ω a))) '' + exposedEdge K (reflectedAngle ω a)) := by + rw [exposedEdge_reflection] + ext x + simp only [Set.mem_image, Set.mem_neg] + constructor + · rintro ⟨_, ⟨q, hq, rfl⟩, rfl⟩ + refine ⟨q, hq, ?_⟩ + rw [inner_capReflection_tangentVector, neg_neg] + · rintro ⟨q, hq, hq_inner⟩ + refine ⟨capReflection ω q, ⟨q, hq, rfl⟩, ?_⟩ + rw [inner_capReflection_tangentVector, hq_inner, neg_neg] + +private theorem edgeVertices_reflection (ω : ℝ) (K : ConvexBody Point) + (a : Real.Angle) : + edgeVertices (reflectedBody ω K) a = + (capReflection ω (edgeVertices K (reflectedAngle ω a)).2, + capReflection ω (edgeVertices K (reflectedAngle ω a)).1) := by + unfold edgeVertices + dsimp only + rw [supportValue_reflectedBody, exposedEdgeHeights_reflection, + Real.sSup_neg, Real.sInf_neg] + apply Prod.ext <;> dsimp only + · rw [map_add, map_smul, map_smul, capReflection_normalVector_angle, + capReflection_tangentVector_angle, reflectedAngle_involutive] + module + · rw [map_add, map_smul, map_smul, capReflection_normalVector_angle, + capReflection_tangentVector_angle, reflectedAngle_involutive] + module + +private theorem capVertices_reflection {ω : ℝ} (K : CapSpace ω) (t : ℝ) : + let P : CapSpace ω := ⟨reflectedBody ω K.val, reflectedBody_isCap K⟩ + capVertices P t = + ((capReflection ω (capVertices K (ω - t)).2.2, + capReflection ω (capVertices K (ω - t)).2.1), + (capReflection ω (capVertices K (ω - t)).1.2, + capReflection ω (capVertices K (ω - t)).1.1)) := by + dsimp only + unfold capVertices + rw [edgeVertices_reflection, edgeVertices_reflection] + dsimp only + rw [reflectedAngle_coe, reflectedAngle_coe] + congr 1 <;> ring_nf + +private theorem capReflection_normal_zero (ω : ℝ) : + capReflection ω (normalVector 0) = tangentVector (ω : Real.Angle) := by + simpa using capReflection_normal_at_complement ω ω + +private theorem capReflection_tangent_omega (ω : ℝ) : + capReflection ω (tangentVector (ω : Real.Angle)) = normalVector 0 := by + simpa using capReflection_tangent_at_complement ω 0 + +private theorem wedgeEndpoints_reflection {ω : ℝ} (K : CapSpace ω) (t : ℝ) : + let P : CapSpace ω := ⟨reflectedBody ω K.val, reflectedBody_isCap K⟩ + wedgeEndpoints P t = + (capReflection ω (wedgeEndpoints K (ω - t)).2, + capReflection ω (wedgeEndpoints K (ω - t)).1) := by + dsimp only + unfold wedgeEndpoints + rw [supportValue_reflected_at, supportValue_reflected_at_add_pi_div_two] + apply Prod.ext <;> dsimp only + · rw [map_smul, capReflection_tangent_omega] + congr 2; ring_nf + · rw [map_smul, capReflection_normal_zero] + +private theorem wedgeGaps_reflection {ω : ℝ} (K : CapSpace ω) (t : ℝ) : + let P : CapSpace ω := ⟨reflectedBody ω K.val, reflectedBody_isCap K⟩ + wedgeGaps P t = ((wedgeGaps K (ω - t)).2, (wedgeGaps K (ω - t)).1) := by + dsimp only + unfold wedgeGaps + rw [capVertices_reflection K 0, capVertices_reflection K ω, + wedgeEndpoints_reflection K t] + dsimp only + apply Prod.ext <;> dsimp only + · rw [← map_sub, ← capReflection_tangent_omega, + (capReflection ω).inner_map_map] + simp + · rw [← map_sub, ← capReflection_normal_zero, + (capReflection ω).inner_map_map] + simp + +private theorem capWedge_reflection {ω : ℝ} (K : CapSpace ω) (t : ℝ) : + let P : CapSpace ω := ⟨reflectedBody ω K.val, reflectedBody_isCap K⟩ + capWedge P t = capReflection ω '' capWedge K (ω - t) := by + dsimp only + unfold capWedge + rw [Set.image_inter (capReflection ω).injective, + capReflection_image_capFan, + (rotatingHallwayParts_reflection ω t K.val).2.2.2.1] + +private theorem iUnion_innerQuadrant_reflection {ω : ℝ} (K : CapSpace ω) : + (⋃ t ∈ Set.Ioo 0 ω, innerQuadrant (reflectedBody ω K.val) t) = + capReflection ω '' (⋃ s ∈ Set.Ioo 0 ω, innerQuadrant K.val s) := by + ext p + constructor + · intro hp + obtain ⟨t, ht, hp⟩ := Set.mem_iUnion₂.mp hp + rcases ht with ⟨ht0, htω⟩ + rw [innerQuadrant_reflection] at hp + obtain ⟨q, hq, rfl⟩ := hp + refine ⟨q, Set.mem_iUnion₂.mpr ⟨ω - t, ⟨by linarith, by linarith⟩, hq⟩, rfl⟩ + · rintro ⟨q, hq, rfl⟩ + obtain ⟨s, hs, hq⟩ := Set.mem_iUnion₂.mp hq + rcases hs with ⟨hs0, hsω⟩ + apply Set.mem_iUnion₂.mpr + refine ⟨ω - s, ⟨by linarith, by linarith⟩, ?_⟩ + rw [innerQuadrant_reflection] + exact ⟨q, by simpa, rfl⟩ + +private theorem capNiche_reflection {ω : ℝ} (K : CapSpace ω) : + let P : CapSpace ω := ⟨reflectedBody ω K.val, reflectedBody_isCap K⟩ + capNiche P = capReflection ω '' capNiche K := by + dsimp only + unfold capNiche + rw [Set.image_inter (capReflection ω).injective, + capReflection_image_capFan, ← iUnion_innerQuadrant_reflection] + +private theorem iUnion_exposedEdge_reflection {ω : ℝ} (K : CapSpace ω) : + (⋃ t ∈ Set.Icc 0 (ω + Real.pi / 2), + exposedEdge (reflectedBody ω K.val) (t : Real.Angle)) = + capReflection ω '' + (⋃ s ∈ Set.Icc 0 (ω + Real.pi / 2), + exposedEdge K.val (s : Real.Angle)) := by + ext p + constructor + · intro hp + obtain ⟨t, ht, hp⟩ := Set.mem_iUnion₂.mp hp + rcases ht with ⟨ht0, htω⟩ + rw [exposedEdge_reflection] at hp + obtain ⟨q, hq, rfl⟩ := hp + refine ⟨q, Set.mem_iUnion₂.mpr ⟨ω + Real.pi / 2 - t, + ⟨by linarith, by linarith⟩, ?_⟩, rfl⟩ + simpa only [reflectedAngle_coe] using hq + · rintro ⟨q, hq, rfl⟩ + obtain ⟨s, hs, hq⟩ := Set.mem_iUnion₂.mp hq + rcases hs with ⟨hs0, hsω⟩ + apply Set.mem_iUnion₂.mpr + refine ⟨ω + Real.pi / 2 - s, ⟨by linarith, by linarith⟩, ?_⟩ + rw [exposedEdge_reflection] + refine ⟨q, ?_, rfl⟩ + rw [reflectedAngle_coe] + convert hq using 1; ring_nf + +private theorem capUpperBoundary_reflection {ω : ℝ} (K : CapSpace ω) : + let P : CapSpace ω := ⟨reflectedBody ω K.val, reflectedBody_isCap K⟩ + capUpperBoundary P = capReflection ω '' capUpperBoundary K := by + dsimp only + unfold capUpperBoundary + exact iUnion_exposedEdge_reflection K + +private def reflectedAngleEquiv (ω : ℝ) : Real.Angle ≃ᵐ Real.Angle := + MeasurableEquiv.ofInvolutive (reflectedAngle ω) + (reflectedAngle_involutive ω) (by unfold reflectedAngle; fun_prop) + +private theorem reflectedAngle_add_pi (ω : ℝ) (a : Real.Angle) : + reflectedAngle ω (a + (Real.pi : Real.Angle)) = + reflectedAngle ω a + (Real.pi : Real.Angle) := by + have hpi : -(Real.pi : Real.Angle) = (Real.pi : Real.Angle) := + neg_eq_iff_add_eq_zero.mpr Real.Angle.coe_pi_add_coe_pi + unfold reflectedAngle + rw [sub_eq_add_neg, neg_add_rev, hpi] + abel + +private theorem isSegmentPresentation_reflectedBody (ω : ℝ) + (K : ConvexBody Point) (d : Point × Point × Real.Angle) + (hd : IsSegmentPresentation K d) : + IsSegmentPresentation (reflectedBody ω K) + (capReflection ω d.1, capReflection ω d.2.1, reflectedAngle ω d.2.2) := by + refine ⟨fun h ↦ hd.1 ((capReflection ω).injective h), ?_, ?_⟩ + · change capReflection ω '' (K : Set Point) = + segment ℝ (capReflection ω d.1) (capReflection ω d.2.1) + rw [hd.2.1] + exact image_segment ℝ + (capReflection ω).toLinearEquiv.toLinearMap.toAffineMap d.1 d.2.1 + · rw [← map_sub, ← capReflection_normalVector_angle, + (capReflection ω).inner_map_map] + exact hd.2.2 + +private theorem reflectedBody_reflectedBody (ω : ℝ) (K : ConvexBody Point) : + reflectedBody ω (reflectedBody ω K) = K := by + apply ConvexBody.ext + ext p + constructor + · rintro ⟨q, ⟨r, hr, rfl⟩, rfl⟩ + simpa only [capReflection_involutive] using hr + · intro hp + exact ⟨capReflection ω p, ⟨p, hp, rfl⟩, capReflection_involutive ω p⟩ + +private theorem subsingleton_reflectedBody_iff (ω : ℝ) (K : ConvexBody Point) : + ((reflectedBody ω K : ConvexBody Point) : Set Point).Subsingleton ↔ + (K : Set Point).Subsingleton := by + constructor + · intro hP p hp q hq + apply (capReflection ω).injective + exact hP ⟨p, hp, rfl⟩ ⟨q, hq, rfl⟩ + · intro hK _ + rintro ⟨p, hp, rfl⟩ _ ⟨q, hq, rfl⟩ + rw [hK hp hq] + +private theorem exists_segmentPresentation_reflectedBody_iff (ω : ℝ) + (K : ConvexBody Point) : + (∃ d, IsSegmentPresentation (reflectedBody ω K) d) ↔ + ∃ d, IsSegmentPresentation K d := by + constructor + · rintro ⟨d, hd⟩ + have h := isSegmentPresentation_reflectedBody ω (reflectedBody ω K) d hd + rw [reflectedBody_reflectedBody] at h + exact ⟨_, h⟩ + · rintro ⟨d, hd⟩ + exact ⟨_, isSegmentPresentation_reflectedBody ω K d hd⟩ + +private theorem surfaceAreaMeasure_reflectedBody_of_subsingleton (ω : ℝ) + (K : ConvexBody Point) (hK : (K : Set Point).Subsingleton) : + surfaceAreaMeasure (reflectedBody ω K) = + Measure.map (reflectedAngleEquiv ω) (surfaceAreaMeasure K) := by + have hP : ((reflectedBody ω K : ConvexBody Point) : Set Point).Subsingleton := by + rintro _ ⟨p, hp, rfl⟩ _ ⟨q, hq, rfl⟩ + rw [hK hp hq] + rw [surfaceAreaMeasure_eq_zero_of_subsingleton (reflectedBody ω K) hP, + surfaceAreaMeasure_eq_zero_of_subsingleton K hK, Measure.map_zero] + +private theorem surfaceAreaMeasure_reflectedBody_of_segmentPresentation (ω : ℝ) + (K : ConvexBody Point) (d : Point × Point × Real.Angle) + (hd : IsSegmentPresentation K d) : + surfaceAreaMeasure (reflectedBody ω K) = + Measure.map (reflectedAngleEquiv ω) (surfaceAreaMeasure K) := by + rw [surfaceAreaMeasure_eq_segmentPresentation (reflectedBody ω K) + (capReflection ω d.1, capReflection ω d.2.1, reflectedAngle ω d.2.2) + (isSegmentPresentation_reflectedBody ω K d hd), + surfaceAreaMeasure_eq_segmentPresentation K d hd, + MeasureTheory.Measure.map_smul _ (reflectedAngleEquiv ω).measurable.aemeasurable, + MeasureTheory.Measure.map_add _ _ (reflectedAngleEquiv ω).measurable, + MeasureTheory.Measure.map_dirac, MeasureTheory.Measure.map_dirac, + (capReflection ω).dist_map] + change ENNReal.ofReal (dist d.1 d.2.1) • + (Measure.dirac (reflectedAngle ω d.2.2) + + Measure.dirac (reflectedAngle ω d.2.2 + (Real.pi : Real.Angle))) = + ENNReal.ofReal (dist d.1 d.2.1) • + (Measure.dirac (reflectedAngle ω d.2.2) + + Measure.dirac (reflectedAngle ω (d.2.2 + (Real.pi : Real.Angle)))) + rw [reflectedAngle_add_pi] + +private theorem isExteriorNormal_reflectedBody_iff (ω : ℝ) + (K : ConvexBody Point) (p : Point) (a : Real.Angle) : + IsExteriorNormal (reflectedBody ω K) (capReflection ω p) (reflectedAngle ω a) ↔ + IsExteriorNormal K p a := by + constructor + · intro h q hq + have h' := h (capReflection ω q) ⟨q, hq, rfl⟩ + rw [← map_sub, ← capReflection_normalVector_angle, + (capReflection ω).inner_map_map] at h' + exact h' + · intro h _ + rintro ⟨q, hq, rfl⟩ + rw [← map_sub, ← capReflection_normalVector_angle, + (capReflection ω).inner_map_map] + exact h q hq + +private theorem mem_regularBoundary_reflectedBody_iff (ω : ℝ) + (K : ConvexBody Point) (p : Point) : + capReflection ω p ∈ regularBoundary (reflectedBody ω K) ↔ + p ∈ regularBoundary K := by + have hfront : capReflection ω p ∈ frontier ((reflectedBody ω K : ConvexBody Point) : Set Point) ↔ + p ∈ frontier (K : Set Point) := by + change capReflection ω p ∈ frontier (capReflection ω '' (K : Set Point)) ↔ _ + have himage : capReflection ω '' frontier (K : Set Point) = + frontier (capReflection ω '' (K : Set Point)) := + (capReflection ω).toHomeomorph.image_frontier (K : Set Point) + rw [← himage] + constructor + · rintro ⟨q, hq, hpq⟩ + have hqp : q = p := (capReflection ω).injective hpq + simpa only [hqp] using hq + · exact fun hp ↦ ⟨p, hp, rfl⟩ + have hunique : + (∃! b, IsExteriorNormal (reflectedBody ω K) (capReflection ω p) b) ↔ + ∃! a, IsExteriorNormal K p a := by + constructor + · rintro ⟨b, hb, hub⟩ + have hbK : IsExteriorNormal K p (reflectedAngle ω b) := by + apply (isExteriorNormal_reflectedBody_iff ω K p (reflectedAngle ω b)).mp + simpa only [reflectedAngle_involutive] using hb + refine ⟨reflectedAngle ω b, hbK, ?_⟩ + intro c hc + have hcL := (isExteriorNormal_reflectedBody_iff ω K p c).mpr hc + have hcb : reflectedAngle ω c = b := hub _ hcL + calc + c = reflectedAngle ω (reflectedAngle ω c) := + (reflectedAngle_involutive ω c).symm + _ = reflectedAngle ω b := congrArg (reflectedAngle ω) hcb + · rintro ⟨a, ha, hua⟩ + refine ⟨reflectedAngle ω a, + (isExteriorNormal_reflectedBody_iff ω K p a).mpr ha, ?_⟩ + intro b hb + have hbK : IsExteriorNormal K p (reflectedAngle ω b) := by + apply (isExteriorNormal_reflectedBody_iff ω K p (reflectedAngle ω b)).mp + simpa only [reflectedAngle_involutive] using hb + have hba : reflectedAngle ω b = a := hua _ hbK + calc + b = reflectedAngle ω (reflectedAngle ω b) := + (reflectedAngle_involutive ω b).symm + _ = reflectedAngle ω a := congrArg (reflectedAngle ω) hba + simp only [regularBoundary, Set.mem_ofPred_eq] + exact and_congr hfront hunique + +private theorem exteriorNormalAngle_reflectedBody (ω : ℝ) + (K : ConvexBody Point) (p : Point) (hp : p ∈ regularBoundary K) : + exteriorNormalAngle (reflectedBody ω K) (capReflection ω p) = + reflectedAngle ω (exteriorNormalAngle K p) := by + have hP := (mem_regularBoundary_reflectedBody_iff ω K p).mpr hp + have huK : ∃! a, IsExteriorNormal K p a := hp.2 + have huP : ∃! a, + IsExteriorNormal (reflectedBody ω K) (capReflection ω p) a := hP.2 + have hnK : IsExteriorNormal K p (exteriorNormalAngle K p) := by + unfold exteriorNormalAngle + rw [dite_eq_left huK] + generalize_proofs h + exact h.choose_spec + have hnP : IsExteriorNormal (reflectedBody ω K) (capReflection ω p) + (exteriorNormalAngle (reflectedBody ω K) (capReflection ω p)) := by + unfold exteriorNormalAngle + rw [dite_eq_left huP] + generalize_proofs _ h + exact h.choose_spec + exact huP.unique hnP ((isExteriorNormal_reflectedBody_iff ω K p _).mpr hnK) + +private theorem regularBoundary_reflectedBody (ω : ℝ) (K : ConvexBody Point) : + regularBoundary (reflectedBody ω K) = + capReflection ω '' regularBoundary K := by + ext q + constructor + · intro hq + refine ⟨capReflection ω q, ?_, capReflection_involutive ω q⟩ + apply (mem_regularBoundary_reflectedBody_iff ω K (capReflection ω q)).mp + simpa only [capReflection_involutive] using hq + · rintro ⟨p, hp, rfl⟩ + exact (mem_regularBoundary_reflectedBody_iff ω K p).mpr hp + +private theorem map_hausdorffMeasure_restrict_regularBoundary (ω : ℝ) + (K : ConvexBody Point) : + Measure.map (capReflection ω) + ((Measure.hausdorffMeasure 1).restrict (regularBoundary K)) = + (Measure.hausdorffMeasure 1).restrict + (regularBoundary (reflectedBody ω K)) := by + rw [regularBoundary_reflectedBody] + let e := (capReflection ω).toHomeomorph.toMeasurableEquiv + have hrestrict := e.restrict_map (Measure.hausdorffMeasure 1) + (capReflection ω '' regularBoundary K) + change (Measure.map (capReflection ω) (Measure.hausdorffMeasure 1)).restrict + (capReflection ω '' regularBoundary K) = + Measure.map (capReflection ω) + ((Measure.hausdorffMeasure 1).restrict + (capReflection ω ⁻¹' (capReflection ω '' regularBoundary K))) at hrestrict + have hmap : Measure.map (capReflection ω) (Measure.hausdorffMeasure 1) = + Measure.hausdorffMeasure 1 := + (capReflection ω).toIsometryEquiv.map_hausdorffMeasure 1 + rw [hmap] at hrestrict + have hpre : capReflection ω ⁻¹' (capReflection ω '' regularBoundary K) = + regularBoundary K := by + exact Set.preimage_image_eq _ (capReflection ω).injective + rw [hpre] at hrestrict + exact hrestrict.symm + +private theorem reflectedAngle_preimage_eq_image (ω : ℝ) + (E : Set Real.Angle) : + reflectedAngle ω ⁻¹' E = reflectedAngle ω '' E := by + ext a + constructor + · intro ha + exact ⟨reflectedAngle ω a, ha, reflectedAngle_involutive ω a⟩ + · rintro ⟨b, hb, rfl⟩ + simpa only [Set.mem_preimage, reflectedAngle_involutive] using hb + +private theorem surfaceAreaMeasure_reflectedBody (ω : ℝ) + (K : ConvexBody Point) : + surfaceAreaMeasure (reflectedBody ω K) = + Measure.map (reflectedAngleEquiv ω) (surfaceAreaMeasure K) := by + by_cases hsub : (K : Set Point).Subsingleton + · exact surfaceAreaMeasure_reflectedBody_of_subsingleton ω K hsub + by_cases hseg : ∃ d, IsSegmentPresentation K d + · obtain ⟨d, hd⟩ := hseg + exact surfaceAreaMeasure_reflectedBody_of_segmentPresentation ω K d hd + have hsubP : ¬ ((reflectedBody ω K : ConvexBody Point) : Set Point).Subsingleton := + fun h ↦ hsub ((subsingleton_reflectedBody_iff ω K).mp h) + have hsegP : ¬ ∃ d, IsSegmentPresentation (reflectedBody ω K) d := + fun h ↦ hseg ((exists_segmentPresentation_reflectedBody_iff ω K).mp h) + let μK := (Measure.hausdorffMeasure 1).restrict (regularBoundary K) + let μP := (Measure.hausdorffMeasure 1).restrict + (regularBoundary (reflectedBody ω K)) + have hμ : Measure.map (capReflection ω) μK = μP := + map_hausdorffMeasure_restrict_regularBoundary ω K + have haeK : AEMeasurable (exteriorNormalAngle K) μK := + aemeasurable_exteriorNormalAngle_restrict_regularBoundary K _ + have haeP : AEMeasurable (exteriorNormalAngle (reflectedBody ω K)) μP := + aemeasurable_exteriorNormalAngle_restrict_regularBoundary (reflectedBody ω K) _ + simp only [surfaceAreaMeasure, hsub, hseg, hsubP, hsegP, ↓reduceIte] + change Measure.map (exteriorNormalAngle (reflectedBody ω K)) μP = + Measure.map (reflectedAngleEquiv ω) + (Measure.map (exteriorNormalAngle K) μK) + rw [← hμ] + have haeP' : AEMeasurable (exteriorNormalAngle (reflectedBody ω K)) + (Measure.map (capReflection ω) μK) := by + rwa [hμ] + rw [AEMeasurable.map_map_of_aemeasurable haeP' + (capReflection ω).continuous.measurable.aemeasurable, + AEMeasurable.map_map_of_aemeasurable + (reflectedAngleEquiv ω).measurable.aemeasurable haeK] + apply Measure.map_congr + filter_upwards [ae_restrict_mem (measurableSet_regularBoundary K)] with p hp + exact exteriorNormalAngle_reflectedBody ω K p hp + +theorem cap_mirror_features {ω : ℝ} (K : CapSpace ω) : + ∃ P : CapSpace ω, + (P.val : Set Point) = mirrorReflection ω '' (K.val : Set Point) ∧ + (∀ t ∈ Set.Icc 0 ω, + supportingHallway (P.val : Set Point) (t : Real.Angle) = + mirrorReflection ω '' supportingHallway (K.val : Set Point) ((ω - t : ℝ) : Real.Angle) ∧ + (rotatingHallwayParts (P.val : Set Point) (t : Real.Angle)).innerCorner = mirrorReflection + ω (rotatingHallwayParts (K.val : Set Point) ((ω - t : ℝ) : Real.Angle)).innerCorner ∧ + (rotatingHallwayParts (P.val : Set Point) (t : Real.Angle)).outerCorner = mirrorReflection + ω (rotatingHallwayParts (K.val : Set Point) ((ω - t : ℝ) : Real.Angle)).outerCorner ∧ + (rotatingHallwayParts (P.val : Set Point) (t : Real.Angle)).outerQuadrant = + mirrorReflection ω '' (rotatingHallwayParts (K.val : Set Point) ((ω - t : ℝ) : + Real.Angle)).outerQuadrant ∧ + (rotatingHallwayParts (P.val : Set Point) (t : Real.Angle)).innerQuadrant = + mirrorReflection ω '' (rotatingHallwayParts (K.val : Set Point) ((ω - t : ℝ) : + Real.Angle)).innerQuadrant ∧ + (rotatingHallwayParts (P.val : Set Point) (t : Real.Angle)).a = mirrorReflection ω '' + (rotatingHallwayParts (K.val : Set Point) ((ω - t : ℝ) : Real.Angle)).c ∧ + (rotatingHallwayParts (P.val : Set Point) (t : Real.Angle)).c = mirrorReflection ω '' + (rotatingHallwayParts (K.val : Set Point) ((ω - t : ℝ) : Real.Angle)).a ∧ + (rotatingHallwayParts (P.val : Set Point) (t : Real.Angle)).b = mirrorReflection ω '' + (rotatingHallwayParts (K.val : Set Point) ((ω - t : ℝ) : Real.Angle)).d ∧ + (rotatingHallwayParts (P.val : Set Point) (t : Real.Angle)).d = mirrorReflection ω '' + (rotatingHallwayParts (K.val : Set Point) ((ω - t : ℝ) : Real.Angle)).b ∧ + (rotatingHallwayParts (P.val : Set Point) (t : Real.Angle)).bRay = mirrorReflection ω '' + (rotatingHallwayParts (K.val : Set Point) ((ω - t : ℝ) : Real.Angle)).dRay ∧ + (rotatingHallwayParts (P.val : Set Point) (t : Real.Angle)).dRay = mirrorReflection ω '' + (rotatingHallwayParts (K.val : Set Point) ((ω - t : ℝ) : Real.Angle)).bRay ∧ + (capVertices P t).1.1 = mirrorReflection ω (capVertices K (ω - t)).2.2 ∧ + (capVertices P t).1.2 = mirrorReflection ω (capVertices K (ω - t)).2.1 ∧ + (capVertices P t).2.1 = mirrorReflection ω (capVertices K (ω - t)).1.2 ∧ + (capVertices P t).2.2 = mirrorReflection ω (capVertices K (ω - t)).1.1) ∧ + (∀ t ∈ Set.Ioo 0 ω, + (wedgeEndpoints P t).1 = mirrorReflection ω (wedgeEndpoints K (ω - t)).2 ∧ + (wedgeEndpoints P t).2 = mirrorReflection ω (wedgeEndpoints K (ω - t)).1 ∧ + (wedgeGaps P t).1 = (wedgeGaps K (ω - t)).2 ∧ + (wedgeGaps P t).2 = (wedgeGaps K (ω - t)).1 ∧ + capWedge P t = mirrorReflection ω '' capWedge K (ω - t)) ∧ + capUpperBoundary P = mirrorReflection ω '' capUpperBoundary K ∧ + capNiche P = mirrorReflection ω '' capNiche K ∧ + (∀ E : Set Real.Angle, MeasurableSet E → + surfaceAreaMeasure P.val E = surfaceAreaMeasure K.val + ((fun a : Real.Angle ↦ ((ω + Real.pi / 2 : ℝ) : Real.Angle) - a) '' E)) := by + let P : CapSpace ω := ⟨reflectedBody ω K.val, reflectedBody_isCap K⟩ + have hM : mirrorReflection ω = capReflection ω := + mirrorReflection_eq_capReflection_m6ef9701 ω K.property.1 K.property.2.1 + refine ⟨P, ?_, ?_, ?_, ?_, ?_, ?_⟩ + · change capReflection ω '' (K.val : Set Point) = + mirrorReflection ω '' (K.val : Set Point) + rw [hM] + · intro t _ + rw [hM] + have hh := supportingHallway_reflection ω t K.val + have hp := rotatingHallwayParts_reflection ω t K.val + have hv := capVertices_reflection K t + rcases hp with ⟨hinner, houter, hQouter, hQinner, ha, hc, hb, hd, hbRay, hdRay⟩ + refine ⟨hh, hinner, houter, hQouter, hQinner, ha, hc, hb, hd, hbRay, hdRay, + ?_, ?_, ?_, ?_⟩ + · simpa only [P] using congrArg (fun v ↦ v.1.1) hv + · simpa only [P] using congrArg (fun v ↦ v.1.2) hv + · simpa only [P] using congrArg (fun v ↦ v.2.1) hv + · simpa only [P] using congrArg (fun v ↦ v.2.2) hv + · intro t _ + rw [hM] + have he := wedgeEndpoints_reflection K t + have hg := wedgeGaps_reflection K t + refine ⟨?_, ?_, ?_, ?_, capWedge_reflection K t⟩ + · simpa only [P] using congrArg Prod.fst he + · simpa only [P] using congrArg Prod.snd he + · simpa only [P] using congrArg Prod.fst hg + · simpa only [P] using congrArg Prod.snd hg + · rw [hM] + exact capUpperBoundary_reflection K + · rw [hM] + exact capNiche_reflection K + · intro E hE + change surfaceAreaMeasure (reflectedBody ω K.val) E = _ + rw [surfaceAreaMeasure_reflectedBody, + (reflectedAngleEquiv ω).map_apply] + change surfaceAreaMeasure K.val (reflectedAngle ω ⁻¹' E) = _ + rw [reflectedAngle_preimage_eq_image] + rfl + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Bounds.Arm.Geometry`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Bounds / Arm / Geometry +-/ + +@[expose] public section + +noncomputable section + +open Filter +open scoped Topology + +namespace MovingSofa + +private theorem mirrorReflection_rightAngle_apply (p : Point) : + mirrorReflection (Real.pi / 2) p = !₂[-p 0, p 1] := by + have harg : Real.pi / 4 - (Real.pi / 2) / 2 = 0 := by ring + have hnorm : ‖(!₂[0, 1] : Point)‖ ^ 2 = 1 := by + simpa [Fin.sum_univ_two] using EuclideanSpace.norm_sq_eq (!₂[0, 1] : Point) + ext i + fin_cases i <;> + simp [mirrorReflection, stripParallelogram, harg, PiLp.inner_apply, + Fin.sum_univ_two, hnorm] + ring + +private theorem inner_mirror_sub_tangent (p q : Point) (t : ℝ) : + inner ℝ (mirrorReflection (Real.pi / 2) p - mirrorReflection (Real.pi / 2) q) + (tangentVector (t : Real.Angle)) = + inner ℝ (p - q) (normalVector ((Real.pi / 2 - t : ℝ) : Real.Angle)) := by + rw [mirrorReflection_rightAngle_apply, mirrorReflection_rightAngle_apply] + simp [tangentVector, normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two, + Real.cos_pi_div_two_sub, Real.sin_pi_div_two_sub, -Real.Angle.coe_sub] + ring + +private theorem inner_mirror_sub_normal (p q : Point) (t : ℝ) : + inner ℝ (mirrorReflection (Real.pi / 2) p - mirrorReflection (Real.pi / 2) q) + (normalVector (t : Real.Angle)) = + inner ℝ (p - q) (tangentVector ((Real.pi / 2 - t : ℝ) : Real.Angle)) := by + rw [mirrorReflection_rightAngle_apply, mirrorReflection_rightAngle_apply] + simp [tangentVector, normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two, + Real.cos_pi_div_two_sub, Real.sin_pi_div_two_sub, -Real.Angle.coe_sub] + ring + +theorem tangentArms_mirror (K P : RightAngleCapSpace) + (hP : (P.val : Set Point) = mirrorReflection (Real.pi / 2) '' (K.val : Set Point)) + (t : ℝ) (ht : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) : + (tangentArmLengths P t).1.1 = (tangentArmLengths K (Real.pi / 2 - t)).2.2 ∧ + (tangentArmLengths P t).1.2 = (tangentArmLengths K (Real.pi / 2 - t)).2.1 ∧ + (tangentArmLengths P t).2.1 = (tangentArmLengths K (Real.pi / 2 - t)).1.2 ∧ + (tangentArmLengths P t).2.2 = (tangentArmLengths K (Real.pi / 2 - t)).1.1 := by + obtain ⟨Q, hQ, hfeatures, _⟩ := cap_mirror_features K + have hPQ : P = Q := by + apply Subtype.ext + apply ConvexBody.ext + exact hP.trans hQ.symm + subst P + obtain ⟨_, _, hy, _, _, _, _, _, _, _, _, hA₁, hA₂, hC₁, hC₂⟩ := hfeatures t ht + dsimp only [tangentArmLengths] + rw [hy, hA₁, hA₂, hC₁, hC₂] + exact ⟨inner_mirror_sub_tangent _ _ _, inner_mirror_sub_tangent _ _ _, + inner_mirror_sub_normal _ _ _, inner_mirror_sub_normal _ _ _⟩ + +private theorem tendsto_tan_sub_div (t : ℝ) : + Tendsto (fun s : ℝ ↦ Real.tan (s - t) / (s - t)) (𝓝[≠] t) (𝓝 1) := by + have hd : HasDerivAt (fun s : ℝ ↦ Real.tan (s - t)) 1 t := by + simpa [Function.comp_def] using + (Real.hasDerivAt_tan (x := t - t) (by simp)).comp (h := fun s : ℝ ↦ s - t) t + ((hasDerivAt_id t).sub_const t) + convert hd.tendsto_slope using 1 + funext s + simp [slope_def_field] + +private theorem tendsto_normal_slope {F : Filter ℝ} {t : ℝ} + (hF : F ≤ 𝓝[≠] t) (a : ℝ) (y q : ℝ → Point) (p : Point) + (hy : Tendsto y F (𝓝 (y t))) (hq : Tendsto q F (𝓝 p)) + (hfixed : ∀ᶠ s in F, inner ℝ (q s) (normalVector ((t + a : ℝ) : Real.Angle)) = + inner ℝ (y t) (normalVector ((t + a : ℝ) : Real.Angle))) + (hmoving : ∀ᶠ s in F, inner ℝ (q s) (normalVector ((s + a : ℝ) : Real.Angle)) = + inner ℝ (y s) (normalVector ((s + a : ℝ) : Real.Angle))) : + Tendsto (fun s : ℝ ↦ inner ℝ ((s - t)⁻¹ • (y s - y t)) + (normalVector ((t + a : ℝ) : Real.Angle))) F + (𝓝 (inner ℝ (p - y t) (tangentVector ((t + a : ℝ) : Real.Angle)))) := by + have htan := (tendsto_tan_sub_div t).mono_left hF + have hpair := htan.mul ((hq.sub hy).inner (𝕜 := ℝ) + (tendsto_const_nhds (x := tangentVector ((t + a : ℝ) : Real.Angle)))) + simp only [one_mul] at hpair + apply hpair.congr' + have hnear : ∀ᶠ s in F, s - t ∈ Set.Ioo (-(Real.pi / 2)) (Real.pi / 2) := by + have hc : Tendsto (fun s : ℝ ↦ s - t) F (𝓝 0) := by + simpa using (tendsto_id.mono_right (hF.trans nhdsWithin_le_nhds)).sub_const t + exact hc.eventually (Ioo_mem_nhds (by linarith [Real.pi_pos]) (by linarith [Real.pi_pos])) + filter_upwards [hfixed, hmoving, hnear] with s hf hm hs + have hn : normalVector ((s + a : ℝ) : Real.Angle) = + Real.cos (s - t) • normalVector ((t + a : ℝ) : Real.Angle) + + Real.sin (s - t) • tangentVector ((t + a : ℝ) : Real.Angle) := by + convert normalVector_add_real (t + a) (s - t) using 1 + congr 2 + ring + rw [hn] at hm + simp only [inner_add_right, inner_smul_right] at hm + rw [hf] at hm + have hc : Real.cos (s - t) ≠ 0 := (Real.cos_pos_of_mem_Ioo hs).ne' + simp only [real_inner_smul_left, inner_sub_left, Real.tan_eq_sin_div_cos] + have heq : Real.sin (s - t) * + (inner ℝ (q s) (tangentVector ((t + a : ℝ) : Real.Angle)) - + inner ℝ (y s) (tangentVector ((t + a : ℝ) : Real.Angle))) = + Real.cos (s - t) * (inner ℝ (y s) (normalVector ((t + a : ℝ) : Real.Angle)) - + inner ℝ (y t) (normalVector ((t + a : ℝ) : Real.Angle))) := by linarith + field_simp + rw [heq] + +private theorem outerCorner_inner_normal (K : ConvexBody Point) (t : ℝ) : + inner ℝ (rotatingHallwayParts (K : Set Point) (t : Real.Angle)).outerCorner + (normalVector (t : Real.Angle)) = supportValue K (t : Real.Angle) := by + change inner ℝ (supportingPlacement (K : Set Point) (t : Real.Angle) (!₂[1, 1] : Point)) + (normalVector (t : Real.Angle)) = _ + rw [inner_supportingPlacement_normalVector] + simp + +private theorem outerCorner_inner_tangent (K : ConvexBody Point) (t : ℝ) : + inner ℝ (rotatingHallwayParts (K : Set Point) (t : Real.Angle)).outerCorner + (tangentVector (t : Real.Angle)) = supportValue K ((t + Real.pi / 2 : ℝ) : Real.Angle) := by + change inner ℝ (supportingPlacement (K : Set Point) (t : Real.Angle) (!₂[1, 1] : Point)) + (tangentVector (t : Real.Angle)) = _ + rw [inner_supportingPlacement_tangentVector] + simp + +private theorem eventually_sin_sub_ne_zero {F : Filter ℝ} {t : ℝ} + (hF : F ≤ 𝓝[≠] t) : ∀ᶠ s in F, Real.sin (s - t) ≠ 0 := by + have hn : Tendsto (fun s : ℝ ↦ s - t) F (𝓝 0) := by + simpa using (tendsto_id.mono_right (hF.trans nhdsWithin_le_nhds)).sub_const t + have hnear := hn.eventually (Ioo_mem_nhds (neg_neg_of_pos Real.pi_pos) Real.pi_pos) + have hne : ∀ᶠ s in F, s ≠ t := hF self_mem_nhdsWithin + filter_upwards [hnear, hne] with s hs hst + exact mt (Real.sin_eq_zero_iff_of_lt_of_lt hs.1 hs.2).mp (sub_ne_zero.mpr hst) + +private theorem tendsto_outerCorner_slope {F : Filter ℝ} {t : ℝ} + (K : ConvexBody Point) (hF : F ≤ 𝓝[≠] t) (p q : Point) + (hp : Tendsto (fun s : ℝ ↦ supportingIntersection K (t : Real.Angle) (s : Real.Angle)) + F (𝓝 p)) + (hq : Tendsto (fun s : ℝ ↦ supportingIntersection K + ((t + Real.pi / 2 : ℝ) : Real.Angle) ((s + Real.pi / 2 : ℝ) : Real.Angle)) F (𝓝 q)) : + Tendsto (fun s : ℝ ↦ (s - t)⁻¹ • + ((rotatingHallwayParts (K : Set Point) (s : Real.Angle)).outerCorner - + (rotatingHallwayParts (K : Set Point) (t : Real.Angle)).outerCorner)) F + (𝓝 (inner ℝ (p - (rotatingHallwayParts (K : Set Point) (t : Real.Angle)).outerCorner) + (tangentVector (t : Real.Angle)) • normalVector (t : Real.Angle) + + inner ℝ (q - (rotatingHallwayParts (K : Set Point) (t : Real.Angle)).outerCorner) + (-normalVector (t : Real.Angle)) • tangentVector (t : Real.Angle))) := by + let y (s : ℝ) := (rotatingHallwayParts (K : Set Point) (s : Real.Angle)).outerCorner + have hy : Tendsto y F (𝓝 (y t)) := + (continuous_outerCorner K).continuousAt.tendsto.mono_left (hF.trans nhdsWithin_le_nhds) + have hA := tendsto_normal_slope hF 0 y + (fun s ↦ supportingIntersection K (t : Real.Angle) (s : Real.Angle)) p hy hp + (Eventually.of_forall fun s ↦ by + simp only [add_zero, supportingIntersection_inner_left, y, outerCorner_inner_normal]) + (by + filter_upwards [eventually_sin_sub_ne_zero hF] with s hs + simp only [add_zero, y, outerCorner_inner_normal] + exact supportingIntersection_inner_right K t s hs) + simp only [add_zero] at hA + have hC := tendsto_normal_slope hF (Real.pi / 2) y + (fun s ↦ supportingIntersection K ((t + Real.pi / 2 : ℝ) : Real.Angle) + ((s + Real.pi / 2 : ℝ) : Real.Angle)) q hy hq + (Eventually.of_forall fun s ↦ by + rw [supportingIntersection_inner_left] + simp only [Real.Angle.coe_add, normalVector_add_pi_div_two, y, outerCorner_inner_tangent]) + (by + filter_upwards [eventually_sin_sub_ne_zero hF] with s hs + rw [supportingIntersection_inner_right K (t + Real.pi / 2) (s + Real.pi / 2) + (by simpa only [add_sub_add_right_eq_sub] using hs)] + simp only [Real.Angle.coe_add, normalVector_add_pi_div_two, y, outerCorner_inner_tangent]) + simp only [Real.Angle.coe_add, normalVector_add_pi_div_two] at hC + have hCt : tangentVector ((t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) = + -normalVector (t : Real.Angle) := tangentVector_add_pi_div_two t + rw [hCt] at hC + have hsum := (hA.smul (tendsto_const_nhds (x := normalVector (t : Real.Angle)))).add + (hC.smul (tendsto_const_nhds (x := tangentVector (t : Real.Angle)))) + simpa only [inner_normalVector_smul_add_inner_tangentVector_smul] using hsum + +private theorem hasDerivWithinAt_outerCorner_right (K : RightAngleCapSpace) (t : ℝ) : + HasDerivWithinAt + (fun s : ℝ ↦ (rotatingHallwayParts (K.val : Set Point) (s : Real.Angle)).outerCorner) + (-(tangentArmLengths K t).1.1 • normalVector (t : Real.Angle) + + (tangentArmLengths K t).2.1 • tangentVector (t : Real.Angle)) (Set.Ici t) t := by + have hshift : Tendsto (fun s : ℝ ↦ s + Real.pi / 2) (𝓝[>] t) (𝓝[>] (t + Real.pi / 2)) := by + apply tendsto_nhdsWithin_iff.mpr + refine ⟨((continuous_id.add_const _).continuousAt.tendsto.mono_left nhdsWithin_le_nhds), ?_⟩ + filter_upwards [self_mem_nhdsWithin] with s hs + change t + Real.pi / 2 < s + Real.pi / 2 + linarith [show t < s from hs] + have h := tendsto_outerCorner_slope K.val (nhdsGT_le_nhdsNE t) + (edgeVertices K.val (t : Real.Angle)).1 + (edgeVertices K.val ((t + Real.pi / 2 : ℝ) : Real.Angle)).1 + (contact_oneSided_limits K.val t).2.2.1 + (((contact_oneSided_limits K.val (t + Real.pi / 2)).2.2.1).comp hshift) + rw [hasDerivWithinAt_iff_tendsto_slope, Set.Ici_sdiff_left] + have heq : + inner ℝ ((edgeVertices K.val (t : Real.Angle)).1 - + (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).outerCorner) + (tangentVector (t : Real.Angle)) • normalVector (t : Real.Angle) + + inner ℝ ((edgeVertices K.val ((t + Real.pi / 2 : ℝ) : Real.Angle)).1 - + (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).outerCorner) + (-normalVector (t : Real.Angle)) • tangentVector (t : Real.Angle) = + -(tangentArmLengths K t).1.1 • normalVector (t : Real.Angle) + + (tangentArmLengths K t).2.1 • tangentVector (t : Real.Angle) := by + simp only [tangentArmLengths, capVertices, inner_sub_left, inner_neg_right] + module + rw [heq] at h + convert h using 1 + funext s + exact slope_def_module _ _ _ + +private theorem tendsto_supportingIntersection_left_ordered (K : ConvexBody Point) (t : ℝ) : + Tendsto (fun s : ℝ ↦ supportingIntersection K (t : Real.Angle) (s : Real.Angle)) + (𝓝[<] t) (𝓝 (edgeVertices K (t : Real.Angle)).2) := by + apply (contact_oneSided_limits K t).2.2.2.2.2.congr' + filter_upwards [eventually_sin_sub_ne_zero (nhdsLT_le_nhdsNE t)] with s hs + exact (supportingIntersection_comm K t s hs).symm + +private theorem hasDerivWithinAt_outerCorner_left (K : RightAngleCapSpace) (t : ℝ) : + HasDerivWithinAt + (fun s : ℝ ↦ (rotatingHallwayParts (K.val : Set Point) (s : Real.Angle)).outerCorner) + (-(tangentArmLengths K t).1.2 • normalVector (t : Real.Angle) + + (tangentArmLengths K t).2.2 • tangentVector (t : Real.Angle)) (Set.Iic t) t := by + have hshift : Tendsto (fun s : ℝ ↦ s + Real.pi / 2) (𝓝[<] t) (𝓝[<] (t + Real.pi / 2)) := by + apply tendsto_nhdsWithin_iff.mpr + refine ⟨((continuous_id.add_const _).continuousAt.tendsto.mono_left nhdsWithin_le_nhds), ?_⟩ + filter_upwards [self_mem_nhdsWithin] with s hs + change s + Real.pi / 2 < t + Real.pi / 2 + linarith [show s < t from hs] + have h := tendsto_outerCorner_slope K.val (nhdsLT_le_nhdsNE t) + (edgeVertices K.val (t : Real.Angle)).2 + (edgeVertices K.val ((t + Real.pi / 2 : ℝ) : Real.Angle)).2 + (tendsto_supportingIntersection_left_ordered K.val t) + ((tendsto_supportingIntersection_left_ordered K.val (t + Real.pi / 2)).comp hshift) + rw [hasDerivWithinAt_iff_tendsto_slope, Set.Iic_sdiff_right] + have heq : + inner ℝ ((edgeVertices K.val (t : Real.Angle)).2 - + (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).outerCorner) + (tangentVector (t : Real.Angle)) • normalVector (t : Real.Angle) + + inner ℝ ((edgeVertices K.val ((t + Real.pi / 2 : ℝ) : Real.Angle)).2 - + (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).outerCorner) + (-normalVector (t : Real.Angle)) • tangentVector (t : Real.Angle) = + -(tangentArmLengths K t).1.2 • normalVector (t : Real.Angle) + + (tangentArmLengths K t).2.2 • tangentVector (t : Real.Angle) := by + simp only [tangentArmLengths, capVertices, inner_sub_left, inner_neg_right] + module + rw [heq] at h + convert h using 1 + funext s + exact slope_def_module _ _ _ + +theorem capCorners_oneSided_derivatives (K : RightAngleCapSpace) : + (∀ t ∈ Set.Ico (0 : ℝ) (Real.pi / 2), + HasDerivWithinAt + (fun s : ℝ ↦ (rotatingHallwayParts (K.val : Set Point) (s : Real.Angle)).outerCorner) + (-(tangentArmLengths K t).1.1 • normalVector (t : Real.Angle) + + (tangentArmLengths K t).2.1 • tangentVector (t : Real.Angle)) (Set.Ici t) t ∧ + HasDerivWithinAt + (fun s : ℝ ↦ (rotatingHallwayParts (K.val : Set Point) (s : Real.Angle)).innerCorner) + (-((tangentArmLengths K t).1.1 - 1) • normalVector (t : Real.Angle) + + ((tangentArmLengths K t).2.1 - 1) • tangentVector (t : Real.Angle)) (Set.Ici t) t) ∧ + (∀ t ∈ Set.Ioc (0 : ℝ) (Real.pi / 2), + HasDerivWithinAt + (fun s : ℝ ↦ (rotatingHallwayParts (K.val : Set Point) (s : Real.Angle)).outerCorner) + (-(tangentArmLengths K t).1.2 • normalVector (t : Real.Angle) + + (tangentArmLengths K t).2.2 • tangentVector (t : Real.Angle)) (Set.Iic t) t ∧ + HasDerivWithinAt + (fun s : ℝ ↦ (rotatingHallwayParts (K.val : Set Point) (s : Real.Angle)).innerCorner) + (-((tangentArmLengths K t).1.2 - 1) • normalVector (t : Real.Angle) + + ((tangentArmLengths K t).2.2 - 1) • tangentVector (t : Real.Angle)) (Set.Iic t) t) := by + constructor + · intro t _ + have hout := hasDerivWithinAt_outerCorner_right K t + refine ⟨hout, ?_⟩ + convert hout.sub ((hasDerivAt_normalVector t).hasDerivWithinAt.add + (hasDerivAt_tangentVector t).hasDerivWithinAt) using 1 + · funext s + exact eq_sub_of_add_eq (outerCorner_eq_innerCorner_add K.val s).symm + · module + · intro t _ + have hout := hasDerivWithinAt_outerCorner_left K t + refine ⟨hout, ?_⟩ + convert hout.sub ((hasDerivAt_normalVector t).hasDerivWithinAt.add + (hasDerivAt_tangentVector t).hasDerivWithinAt) using 1 + · funext s + exact eq_sub_of_add_eq (outerCorner_eq_innerCorner_add K.val s).symm + · module + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Cap.Regularity`. +* `Cap.Tail.Contacts`. +* `Cap.Tail.Bodies`. +* `Cap.Tail.Extension`. +* `Cap.Tail.Separation`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Regularity +-/ + +@[expose] public section + +noncomputable section + +open Set Filter +open scoped Topology + +namespace MovingSofa + +private theorem continuous_nondegenerateCapData_right (K : RightAngleCapSpace) + (hD : ∃ r s, HasCapDensities K r s) : + Continuous (nondegenerateCapData K hD).1.1 := by + have h := continuousOn_replace_right_endpoint (by positivity : (0 : ℝ) < Real.pi / 2) + (fun t : ℝ ↦ (capVertices K t).1.1) ((capVertices K (Real.pi / 2)).1.2) + (fun t ht ↦ (contact_oneSided_limits K.1 t).1) + (fun t ht ↦ ?_) (contact_oneSided_limits K.1 (Real.pi / 2)).2.2.2.1 + · apply (continuousOn_iff_continuous_domRestrict.mp h).congr + intro t + dsimp [Set.domRestrict, nondegenerateCapData] + split_ifs with heq + · rw [heq] + · rfl + · have heq := (capDensities_contact_eq K hD).1 t ⟨ht.1.le, ht.2⟩ |>.1 + change (edgeVertices K.1 (t : Real.Angle)).1 = + (edgeVertices K.1 (t : Real.Angle)).2 at heq + simpa only [← heq, capVertices] using (contact_oneSided_limits K.1 t).2.2.2.1 + +private theorem continuous_nondegenerateCapData_left (K : RightAngleCapSpace) + (hD : ∃ r s, HasCapDensities K r s) : + Continuous (nondegenerateCapData K hD).1.2 := by + let f : ℝ → Point := fun t ↦ (capVertices K t).2.1 + have hr (t : ℝ) : Tendsto f (𝓝[>] t) (𝓝 (f t)) := by + apply (contact_oneSided_limits K.1 (t + Real.pi / 2)).1.comp + apply tendsto_nhdsWithin_iff.mpr + constructor + · exact (tendsto_id.mono_left nhdsWithin_le_nhds).add_const _ + · filter_upwards [self_mem_nhdsWithin] with u hu + change t + Real.pi / 2 < u + Real.pi / 2 + simpa only [add_comm] using add_lt_add_right (Set.mem_Ioi.mp hu) (Real.pi / 2) + have hl (t : ℝ) (ht : t ∈ Ioc 0 (Real.pi / 2)) : + Tendsto f (𝓝[<] t) (𝓝 (f t)) := by + have h := (contact_oneSided_limits K.1 (t + Real.pi / 2)).2.2.2.1 + have heq := (capDensities_contact_eq K hD).2 t ht |>.1 + change (edgeVertices K.1 ((t + Real.pi / 2 : ℝ) : Real.Angle)).1 = + (edgeVertices K.1 ((t + Real.pi / 2 : ℝ) : Real.Angle)).2 at heq + rw [← heq] at h + apply h.comp + apply tendsto_nhdsWithin_iff.mpr + constructor + · exact (tendsto_id.mono_left nhdsWithin_le_nhds).add_const _ + · filter_upwards [self_mem_nhdsWithin] with u hu + change u + Real.pi / 2 < t + Real.pi / 2 + simpa only [add_comm] using add_lt_add_right (Set.mem_Iio.mp hu) (Real.pi / 2) + have h := continuousOn_replace_right_endpoint (by positivity : (0 : ℝ) < Real.pi / 2) + f (f (Real.pi / 2)) (fun t _ ↦ hr t) (fun t ht ↦ hl t ⟨ht.1, ht.2.le⟩) + (hl (Real.pi / 2) ⟨by positivity, le_rfl⟩) + have hc : ContinuousOn f (Icc 0 (Real.pi / 2)) := h.congr fun t ht ↦ by + by_cases heq : t = Real.pi / 2 <;> simp [heq] + change Continuous ((Icc 0 (Real.pi / 2)).domRestrict f) + exact continuousOn_iff_continuous_domRestrict.mp hc + +private theorem continuous_nondegenerateCapData_arms (K : RightAngleCapSpace) + (hD : ∃ r s, HasCapDensities K r s) : + Continuous (nondegenerateCapData K hD).2.1 ∧ + Continuous (nondegenerateCapData K hD).2.2 := by + have hy := (continuous_outerCorner K.1).comp + (continuous_subtype_val : Continuous (fun t : Icc (0 : ℝ) (Real.pi / 2) ↦ (t : ℝ))) + have hn := continuous_normalVector_real.comp + (continuous_subtype_val : Continuous (fun t : Icc (0 : ℝ) (Real.pi / 2) ↦ (t : ℝ))) + have hv := (continuous_iff_continuousAt.mpr fun t ↦ + (hasDerivAt_tangentVector t).continuousAt).comp + (continuous_subtype_val : Continuous (fun t : Icc (0 : ℝ) (Real.pi / 2) ↦ (t : ℝ))) + constructor + · apply ((hy.sub (continuous_nondegenerateCapData_right K hD)).inner hv).congr + intro t + dsimp [nondegenerateCapData, tangentArmLengths] + split_ifs <;> rfl + · exact (hy.sub (continuous_nondegenerateCapData_left K hD)).inner hn + +private theorem nondegenerateCap_hasDerivWithinAt (K : RightAngleCapSpace) + (hD : ∃ r s, HasCapDensities K r s) (t : Icc (0 : ℝ) (Real.pi / 2)) : + HasDerivWithinAt (capInnerCorner K) + (-((nondegenerateCapData K hD).2.1 t - 1) • normalVector (t : Real.Angle) + + ((nondegenerateCapData K hD).2.2 t - 1) • tangentVector (t : Real.Angle)) + (Icc 0 (Real.pi / 2)) (t : ℝ) ∧ + HasDerivWithinAt + (fun s : ℝ ↦ (rotatingHallwayParts (K.val : Set Point) (s : Real.Angle)).outerCorner) + (-(nondegenerateCapData K hD).2.1 t • normalVector (t : Real.Angle) + + (nondegenerateCapData K hD).2.2 t • tangentVector (t : Real.Angle)) + (Icc 0 (Real.pi / 2)) (t : ℝ) := by + have hr (ht : (t : ℝ) < Real.pi / 2) := + (capCorners_oneSided_derivatives K).1 t ⟨t.property.1, ht⟩ + have hl (ht : 0 < (t : ℝ)) := + (capCorners_oneSided_derivatives K).2 t ⟨ht, t.property.2⟩ + have hfplus (ht : (t : ℝ) < Real.pi / 2) : + (nondegenerateCapData K hD).2.1 t = (tangentArmLengths K t).1.1 := by + simp only [nondegenerateCapData, ite_eq_right ht.ne] + have hfminus (ht : 0 < (t : ℝ)) : + (nondegenerateCapData K hD).2.1 t = (tangentArmLengths K t).1.2 := by + dsimp [nondegenerateCapData] + split_ifs with heq + · rfl + · exact ((capDensities_contact_eq K hD).1 t + ⟨t.property.1, lt_of_le_of_ne t.property.2 heq⟩).2 + have hgminus (ht : 0 < (t : ℝ)) : + (nondegenerateCapData K hD).2.2 t = (tangentArmLengths K t).2.2 := + ((capDensities_contact_eq K hD).2 t ⟨ht, t.property.2⟩).2 + constructor + · apply hasDerivWithinAt_Icc_of_oneSided (by positivity) t.property + · intro ht + rw [hfplus ht] + exact (hr ht).2 + · intro ht + rw [hfminus ht, hgminus ht] + exact (hl ht).2 + · apply hasDerivWithinAt_Icc_of_oneSided (by positivity) t.property + · intro ht + rw [hfplus ht] + exact (hr ht).1 + · intro ht + rw [hfminus ht, hgminus ht] + exact (hl ht).1 + +theorem nondegenerateCap_continuity (K : RightAngleCapSpace) + (hD : ∃ r s, HasCapDensities K r s) : + Continuous (nondegenerateCapData K hD).1.1 ∧ + Continuous (nondegenerateCapData K hD).1.2 ∧ + Continuous (nondegenerateCapData K hD).2.1 ∧ + Continuous (nondegenerateCapData K hD).2.2 ∧ + ContDiffOn ℝ 1 (capInnerCorner K) (Set.Icc 0 (Real.pi / 2)) ∧ + ContDiffOn ℝ 1 + (fun s : ℝ ↦ (rotatingHallwayParts (K.val : Set Point) (s : Real.Angle)).outerCorner) + (Set.Icc 0 (Real.pi / 2)) ∧ + ∀ t : Set.Icc (0 : ℝ) (Real.pi / 2), + HasDerivWithinAt (capInnerCorner K) + (-((nondegenerateCapData K hD).2.1 t - 1) • normalVector (t : Real.Angle) + + ((nondegenerateCapData K hD).2.2 t - 1) • tangentVector (t : Real.Angle)) + (Set.Icc 0 (Real.pi / 2)) (t : ℝ) ∧ + HasDerivWithinAt + (fun s : ℝ ↦ (rotatingHallwayParts (K.val : Set Point) (s : Real.Angle)).outerCorner) + (-(nondegenerateCapData K hD).2.1 t • normalVector (t : Real.Angle) + + (nondegenerateCapData K hD).2.2 t • tangentVector (t : Real.Angle)) + (Set.Icc 0 (Real.pi / 2)) (t : ℝ) := by + have hA := continuous_nondegenerateCapData_right K hD + have hC := continuous_nondegenerateCapData_left K hD + obtain ⟨hf, hg⟩ := continuous_nondegenerateCapData_arms K hD + have hn := continuous_normalVector_real.comp + (continuous_subtype_val : Continuous (fun t : Icc (0 : ℝ) (Real.pi / 2) ↦ (t : ℝ))) + have hv := (continuous_iff_continuousAt.mpr fun t ↦ + (hasDerivAt_tangentVector t).continuousAt).comp + (continuous_subtype_val : Continuous (fun t : Icc (0 : ℝ) (Real.pi / 2) ↦ (t : ℝ))) + refine ⟨hA, hC, hf, hg, ?_, ?_, nondegenerateCap_hasDerivWithinAt K hD⟩ + · exact contDiffOn_one_of_continuous_derivative + (uniqueDiffOn_Icc (by positivity)) _ _ + (((hf.sub continuous_const).neg.smul hn).add ((hg.sub continuous_const).smul hv)) + (fun t ↦ (nondegenerateCap_hasDerivWithinAt K hD t).1) + · exact contDiffOn_one_of_continuous_derivative + (uniqueDiffOn_Icc (by positivity)) _ _ + ((hf.neg.smul hn).add (hg.smul hv)) + (fun t ↦ (nondegenerateCap_hasDerivWithinAt K hD t).2) + +/-- The corner coordinates of a right-angle cap in its moving frame. -/ +theorem inner_capInnerCorner (K : RightAngleCapSpace) (t : ℝ) : + inner ℝ (capInnerCorner K t) (normalVector (t : Real.Angle)) = + supportValue (K.1 : Set Point) (t : Real.Angle) - 1 ∧ + inner ℝ (capInnerCorner K t) (tangentVector (t : Real.Angle)) = + supportValue (K.1 : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := by + constructor + · have h := inner_supportingPlacement_normalVector (K.1 : Set Point) (t : Real.Angle) 0 + simpa [capInnerCorner, rotatingHallwayParts, hallwayParts] using h + · have h := inner_supportingPlacement_tangentVector (K.1 : Set Point) (t : Real.Angle) 0 + rw [← Real.Angle.coe_add] at h + simpa [capInnerCorner, rotatingHallwayParts, hallwayParts] using h + +/-- The injectivity condition supplies the support derivatives with their strict signs. -/ +theorem capSupport_hasDerivAt (K : RightAngleCapSpace) + (hinj : SatisfiesInjectivityCondition K) : + ∃ dh dj : ℝ → ℝ, + (∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + HasDerivAt (fun u : ℝ ↦ supportValue (K.1 : Set Point) (u : Real.Angle)) (dh t) t) ∧ + (∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + HasDerivAt (fun u : ℝ ↦ supportValue (K.1 : Set Point) (u : Real.Angle)) (dj t) + (t + Real.pi / 2)) ∧ + (∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + dh t - supportValue (K.1 : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) + 1 < 0) ∧ + (∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + 0 < dj t + supportValue (K.1 : Set Point) (t : Real.Angle) - 1) := by + obtain ⟨-, hC1, hsign⟩ := hinj + have hxn : ∀ t : ℝ, inner ℝ (capInnerCorner K t) (normalVector (t : Real.Angle)) = + supportValue (K.1 : Set Point) (t : Real.Angle) - 1 := fun t => (inner_capInnerCorner K t).1 + have hxt : ∀ t : ℝ, inner ℝ (capInnerCorner K t) (tangentVector (t : Real.Angle)) = + supportValue (K.1 : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := + fun t => (inner_capInnerCorner K t).2 + have hdiff : ∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + HasDerivAt (capInnerCorner K) (deriv (capInnerCorner K) t) t := by + intro t ht + have hmem : Set.Icc (0 : ℝ) (Real.pi / 2) ∈ nhds t := Icc_mem_nhds ht.1 ht.2 + exact (((hC1.differentiableOn one_ne_zero) t (Set.Ioo_subset_Icc_self ht)).differentiableAt + hmem).hasDerivAt + have hderivEq : ∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + derivWithin (capInnerCorner K) (Set.Icc 0 (Real.pi / 2)) t = deriv (capInnerCorner K) t := + fun t ht => derivWithin_of_mem_nhds (Icc_mem_nhds ht.1 ht.2) + have hfunn : (fun u : ℝ ↦ supportValue (K.1 : Set Point) (u : Real.Angle)) = + fun u : ℝ ↦ inner ℝ (capInnerCorner K u) (normalVector (u : Real.Angle)) + 1 := by + funext u; rw [hxn u]; ring + have hfunt : + (fun u : ℝ ↦ supportValue (K.1 : Set Point) ((u + Real.pi / 2 : ℝ) : Real.Angle)) = + fun u : ℝ ↦ inner ℝ (capInnerCorner K u) (tangentVector (u : Real.Angle)) + 1 := by + funext u; rw [hxt u]; ring + refine ⟨fun t ↦ inner ℝ (capInnerCorner K t) (tangentVector (t : Real.Angle)) + + inner ℝ (deriv (capInnerCorner K) t) (normalVector (t : Real.Angle)), + fun t ↦ -inner ℝ (capInnerCorner K t) (normalVector (t : Real.Angle)) + + inner ℝ (deriv (capInnerCorner K) t) (tangentVector (t : Real.Angle)), ?_, ?_, ?_, ?_⟩ + · intro t ht + rw [hfunn] + exact ((hdiff t ht).inner ℝ (hasDerivAt_normalVector t)).add_const 1 + · intro t ht + refine (hasDerivAt_comp_add_const_iff (f := fun u : ℝ ↦ + supportValue (K.1 : Set Point) (u : Real.Angle)) t (Real.pi / 2)).mp ?_ + rw [hfunt] + have hd := ((hdiff t ht).inner ℝ (hasDerivAt_tangentVector t)).add_const 1 + rw [inner_neg_right] at hd + exact hd + · intro t ht + have h1 := (hsign t ht).1 + rw [hderivEq t ht] at h1 + dsimp only + rw [hxt t] + linarith only [h1] + · intro t ht + have h2 := (hsign t ht).2 + rw [hderivEq t ht] at h2 + dsimp only + rw [hxn t] + linarith only [h2] +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Endpoint contacts for the canonical cap tails + +The right and left canonical tails of a special cap are cut out of the cap by the upper +half-planes of its inner supporting walls. This file supplies the contact points that make the +tail support values meet their endpoint bounds. + +The mathematical content is the frame-free lemma +`exists_mem_inner_eq_sub_one_of_deriv_signs`: let `s` be a nonempty compact convex planar set +lying above the horizontal axis with `h_s(pi/2) = 1`, whose support function `h` is +differentiable on the two quarter-turn families with the strict corner velocity signs +`h'(t) - h(t + pi/2) + 1 < 0` and `h'(t + pi/2) + h(t) - 1 > 0` for `t` in `(0, pi/2)`. Then +every interior cut line `{q | inner q (normalVector t) = h(t) - 1}` meets `s` in a point that +stays above the whole cut family on `[t, pi/2]`. + +The proof selects the transverse maximum `p` of the first cut section and studies the +deficiency `g(t) = h(t) - inner p (normalVector t)`. Wherever `g(t) = 1`, the chord joining the +two frame contacts has nonpositive signed area (`planeCrossProduct_nonpos_of_isMaxOn`), which +forces `g` to decrease strictly at the cut angle; at a first return of `g` to level one the +same determinant is strictly positive, a contradiction. + +The left tail follows from the same lemma applied to `reflectedBody (pi/2) K`, whose support +derivatives are the negated right-hand ones read backwards; see `exists_left_tail_contact`. + +This argument replaces the step in the paper's proof of `lem:right-left-body` which infers that the +upper boundary avoids the niche; that inference fails for the stated class of caps (P46 in +`NOTES.md`). +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- Lowering a right-angle cap point vertically to the base line keeps it inside the cap. -/ +theorem basePoint_mem_of_rightAngleCap (K : RightAngleCapSpace) {q : Point} + (hq : q ∈ (K.1 : Set Point)) : (!₂[q 0, 0] : Point) ∈ (K.1 : Set Point) := by + have hq0 : (!₂[q 0, 0] : Point) 0 = q 0 := rfl + have hq1 : (!₂[q 0, 0] : Point) 1 = 0 := rfl + have hqy : 0 ≤ q 1 := by + have h := K.inner_normalVector_pi_div_two_nonneg hq + rwa [inner_normalVector_pi_div_two] at h + have hzero : inner ℝ (!₂[q 0, 0] : Point) + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 := by + rw [inner_normalVector_pi_div_two, hq1] + refine K.mem_of_mem_capFan_of_le_supportValue ⟨le_of_eq hzero.symm, le_of_eq hzero.symm⟩ ?_ + intro t ht + have htI : 0 ≤ t ∧ t ≤ Real.pi := by + rcases ht with h | h + · exact ⟨h.1, by linarith only [h.2, Real.pi_pos]⟩ + · exact ⟨by linarith only [h.1, Real.pi_pos], by linarith only [h.2]⟩ + have hsin : 0 ≤ Real.sin t := Real.sin_nonneg_of_nonneg_of_le_pi htI.1 htI.2 + have hqt := inner_le_supportValue_of_isCompact K.1.isCompact hq (t : Real.Angle) + rw [inner_normalVector_real] at hqt + rw [inner_normalVector_real, hq0, hq1] + nlinarith only [hqt, hsin, hqy] + +/-- The two frame contacts at an interior angle, with their derivative coordinates. -/ +theorem exists_frame_contacts {s : Set Point} (hcomp : IsCompact s) (hne : s.Nonempty) + {t dh dj : ℝ} + (hdh : HasDerivAt (fun u : ℝ ↦ supportValue s (u : Real.Angle)) dh t) + (hdj : HasDerivAt (fun u : ℝ ↦ supportValue s (u : Real.Angle)) dj (t + Real.pi / 2)) : + ∃ A ∈ s, ∃ C ∈ s, + inner ℝ A (normalVector (t : Real.Angle)) = supportValue s (t : Real.Angle) ∧ + inner ℝ A (tangentVector (t : Real.Angle)) = dh ∧ + inner ℝ C (normalVector (t : Real.Angle)) = -dj ∧ + inner ℝ C (tangentVector (t : Real.Angle)) = + supportValue s ((t + Real.pi / 2 : ℝ) : Real.Angle) := by + obtain ⟨A, hA, hA1, hA2⟩ := exists_contact_of_hasDerivAt hcomp hne hdh + obtain ⟨C, hC, hC1, hC2⟩ := exists_contact_of_hasDerivAt hcomp hne hdj + have hnv : normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle) = + tangentVector (t : Real.Angle) := by + rw [Real.Angle.coe_add] + exact normalVector_add_pi_div_two (t : Real.Angle) + have htv : tangentVector ((t + Real.pi / 2 : ℝ) : Real.Angle) = + -normalVector (t : Real.Angle) := tangentVector_add_pi_div_two t + rw [hnv] at hC1 + rw [htv, inner_neg_right] at hC2 + exact ⟨A, hA, C, hC, hA1, hA2, by linarith, hC1⟩ + +/-- A transverse chord through a maximizing section point has nonpositive signed area. -/ +theorem planeCrossProduct_nonpos_of_isMaxOn {s : Set Point} (hconv : Convex ℝ s) + {r c₀ : ℝ} {p : Point} + (hpline : inner ℝ p (normalVector (r : Real.Angle)) = c₀) + (hmax : ∀ q ∈ s, inner ℝ q (normalVector (r : Real.Angle)) = c₀ → + inner ℝ q (tangentVector (r : Real.Angle)) ≤ inner ℝ p (tangentVector (r : Real.Angle))) + {A C : Point} (hA : A ∈ s) (hC : C ∈ s) + (hApos : 0 < inner ℝ (A - p) (normalVector (r : Real.Angle))) + (hCneg : inner ℝ (C - p) (normalVector (r : Real.Angle)) < 0) : + planeCrossProduct (A - p) (C - p) ≤ 0 := by + set u := normalVector (r : Real.Angle) with hu + set v := tangentVector (r : Real.Angle) with hv + set mu : ℝ := inner ℝ (A - p) u with hmu + set la : ℝ := -inner ℝ (C - p) u with hla + have hlapos : 0 < la := by simp only [hla]; linarith + have hsum : 0 < la + mu := by linarith + set w : ℝ := la / (la + mu) with hw + have hw0 : 0 ≤ w := div_nonneg hlapos.le hsum.le + have hw1 : 0 ≤ 1 - w := by + rw [hw, sub_nonneg, div_le_one hsum] + linarith + set q : Point := w • A + (1 - w) • C with hq + have hqs : q ∈ s := hconv hA hC hw0 hw1 (by ring) + have hwmu : w * mu + (1 - w) * (-la) = 0 := by + rw [hw]; field_simp; ring + have hqu : inner ℝ q u = c₀ := by + have h1 : inner ℝ q u - inner ℝ p u = w * mu + (1 - w) * (-la) := by + simp only [hq, hmu, hla, inner_add_left, real_inner_smul_left, inner_sub_left] + ring + rw [hwmu] at h1 + rw [hpline] at h1 + linarith + have hqv := hmax q hqs hqu + have h2 : inner ℝ q v - inner ℝ p v = + w * inner ℝ (A - p) v + (1 - w) * inner ℝ (C - p) v := by + simp only [hq, inner_add_left, real_inner_smul_left, inner_sub_left] + ring + have hnum : w * inner ℝ (A - p) v + (1 - w) * inner ℝ (C - p) v ≤ 0 := by + rw [← h2]; linarith + have hcross : planeCrossProduct (A - p) (C - p) = + mu * inner ℝ (C - p) v - inner ℝ (A - p) v * (-la) := by + rw [planeCrossProduct_eq_inner_frame (A - p) (C - p) r, ← hu, ← hv, ← hmu] + simp only [hla] + ring + rw [hcross] + have hwid : (1 - w) * (la + mu) = mu := by rw [hw]; field_simp; ring + have hwid2 : w * (la + mu) = la := by rw [hw]; field_simp + have hexp : (w * inner ℝ (A - p) v + (1 - w) * inner ℝ (C - p) v) * (la + mu) = + la * inner ℝ (A - p) v + mu * inner ℝ (C - p) v := by + calc (w * inner ℝ (A - p) v + (1 - w) * inner ℝ (C - p) v) * (la + mu) + = (w * (la + mu)) * inner ℝ (A - p) v + + ((1 - w) * (la + mu)) * inner ℝ (C - p) v := by ring + _ = la * inner ℝ (A - p) v + mu * inner ℝ (C - p) v := by rw [hwid, hwid2] + have hmul := mul_nonpos_of_nonpos_of_nonneg hnum hsum.le + rw [hexp] at hmul + linarith + +/-- The three chord signs at a first return time, in the frame coordinates at that time. -/ +private theorem chord_signs {r t d al be : ℝ} (hr : 0 < r) (hrt : r < t) + (ht : t < Real.pi / 2) (hd : 0 ≤ d) (hal : al < 0) (hbe : 0 < be) + (hstrip : Real.sin t + Real.cos t * d ≤ 1) : + 0 < Real.cos (t - r) - Real.sin (t - r) * d ∧ + Real.cos (t - r) * (-be) - Real.sin (t - r) * (1 - al + d) < 0 ∧ + 0 < 1 - al + d + be * d := by + have hpi := Real.pi_pos + have hδpos : 0 < t - r := by linarith only [hrt] + have hδlt : t - r < Real.pi / 2 := by linarith only [hr, ht] + have hsinδ : 0 < Real.sin (t - r) := + Real.sin_pos_of_pos_of_lt_pi hδpos (by linarith only [hpi, hδlt]) + have hcosδ : 0 < Real.cos (t - r) := + Real.cos_pos_of_mem_Ioo ⟨by linarith only [hpi, hδpos], hδlt⟩ + have hcost : 0 < Real.cos t := + Real.cos_pos_of_mem_Ioo ⟨by linarith only [hpi, hr, hrt], ht⟩ + have hcosr : Real.cos (t - r) * Real.cos t + Real.sin (t - r) * Real.sin t = Real.cos r := by + rw [← Real.cos_sub, show t - r - t = -r by ring, Real.cos_neg] + have hcosrgt : Real.sin (t - r) < Real.cos r := by + rw [← Real.sin_pi_div_two_sub] + exact Real.sin_lt_sin_of_lt_of_le_pi_div_two (by linarith only [hpi, hδpos]) + (by linarith only [hr]) (by linarith only [ht]) + refine ⟨?_, ?_, by nlinarith only [hal, hbe, hd]⟩ + · have hmul := mul_le_mul_of_nonneg_left hstrip hsinδ.le + have hstep : Real.cos r - Real.sin (t - r) ≤ + Real.cos t * (Real.cos (t - r) - Real.sin (t - r) * d) := by + nlinarith only [hmul, hcosr] + by_contra hc + push Not at hc + nlinarith only [hstep, hc, hcost, hcosrgt] + · nlinarith only [hcosδ, hsinδ, hbe, hal, hd] + +/-- Contradiction sign lemma at the cut angle: a nonpositive determinant forces a negative slope. -/ +private theorem neg_of_det_nonpos {d al be : ℝ} (hal : al < 0) (hbe : 0 < be) + (hdet : 1 - al + d + be * d ≤ 0) : d < 0 := by + by_contra h + push Not at h + nlinarith only [hal, hbe, hdet, h] + +/-- Endpoint contact for the upper cut family of a strip body with strict corner velocities. -/ +theorem exists_mem_inner_eq_sub_one_of_deriv_signs + {s : Set Point} (hcomp : IsCompact s) (hconv : Convex ℝ s) (hne : s.Nonempty) + (dh dj : ℝ → ℝ) + (hdh : ∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + HasDerivAt (fun u : ℝ ↦ supportValue s (u : Real.Angle)) (dh t) t) + (hdj : ∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + HasDerivAt (fun u : ℝ ↦ supportValue s (u : Real.Angle)) (dj t) (t + Real.pi / 2)) + (halpha : ∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + dh t - supportValue s ((t + Real.pi / 2 : ℝ) : Real.Angle) + 1 < 0) + (hbeta : ∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + 0 < dj t + supportValue s (t : Real.Angle) - 1) + (htop : supportValue s ((Real.pi / 2 : ℝ) : Real.Angle) = 1) + (hlow : ∀ q ∈ s, 0 ≤ inner ℝ q (normalVector ((Real.pi / 2 : ℝ) : Real.Angle))) + {r : ℝ} (hr : r ∈ Set.Ioo (0 : ℝ) (Real.pi / 2)) : + ∃ p ∈ s, inner ℝ p (normalVector (r : Real.Angle)) = + supportValue s (r : Real.Angle) - 1 ∧ + ∀ t ∈ Set.Icc r (Real.pi / 2), + supportValue s (t : Real.Angle) - 1 ≤ inner ℝ p (normalVector (t : Real.Angle)) := by + -- the cut line at `r` meets the body, between the two frame contacts + obtain ⟨A₀, hA₀, C₀, hC₀, hA₀n, hA₀t, hC₀n, hC₀t⟩ := + exists_frame_contacts hcomp hne (hdh r hr) (hdj r hr) + have hC₀le : inner ℝ C₀ (normalVector (r : Real.Angle)) ≤ + supportValue s (r : Real.Angle) - 1 := by + rw [hC₀n]; linarith only [hbeta r hr] + have hA₀ge : supportValue s (r : Real.Angle) - 1 ≤ + inner ℝ A₀ (normalVector (r : Real.Angle)) := by rw [hA₀n]; linarith only [] + obtain ⟨p₀, hp₀, hp₀line⟩ := + exists_mem_inner_eq_of_convex hconv hA₀ hC₀ hC₀le hA₀ge + -- the transverse maximizer on that cut section + have hcontinner : Continuous (fun q : Point ↦ inner ℝ q (normalVector (r : Real.Angle))) := + continuous_inner.comp (continuous_id.prodMk continuous_const) + have hScomp : IsCompact (s ∩ {q : Point | + inner ℝ q (normalVector (r : Real.Angle)) = supportValue s (r : Real.Angle) - 1}) := + hcomp.inter_right (isClosed_eq hcontinner continuous_const) + have hconttang : Continuous (fun q : Point ↦ inner ℝ q (tangentVector (r : Real.Angle))) := + continuous_inner.comp (continuous_id.prodMk continuous_const) + obtain ⟨p, hpS, hpmax⟩ := + hScomp.exists_isMaxOn ⟨p₀, hp₀, hp₀line⟩ hconttang.continuousOn + have hps : p ∈ s := hpS.1 + have hpline : inner ℝ p (normalVector (r : Real.Angle)) = + supportValue s (r : Real.Angle) - 1 := hpS.2 + have hmaxq : ∀ q ∈ s, inner ℝ q (normalVector (r : Real.Angle)) = + supportValue s (r : Real.Angle) - 1 → + inner ℝ q (tangentVector (r : Real.Angle)) ≤ + inner ℝ p (tangentVector (r : Real.Angle)) := fun q hq hq2 => hpmax ⟨hq, hq2⟩ + -- the deficiency function + set g : ℝ → ℝ := fun u ↦ supportValue s (u : Real.Angle) - + inner ℝ p (normalVector (u : Real.Angle)) with hgdef + have hgval : ∀ u : ℝ, g u = supportValue s (u : Real.Angle) - + inner ℝ p (normalVector (u : Real.Angle)) := fun _ => rfl + have hgr : g r = 1 := by rw [hgval, hpline]; ring + have hgderiv : ∀ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + HasDerivAt g (dh t - inner ℝ p (tangentVector (t : Real.Angle))) t := + fun t ht => (hdh t ht).sub (hasDerivAt_inner_normalVector p t) + have hgT : g (Real.pi / 2) ≤ 1 := by + rw [hgval, htop] + linarith only [hlow p hps] + -- coordinates of the two contact chords relative to the maximizer + have hcoords : ∀ t : ℝ, g t = 1 → ∀ A C : Point, + inner ℝ A (normalVector (t : Real.Angle)) = supportValue s (t : Real.Angle) → + inner ℝ A (tangentVector (t : Real.Angle)) = dh t → + inner ℝ C (normalVector (t : Real.Angle)) = -dj t → + inner ℝ C (tangentVector (t : Real.Angle)) = + supportValue s ((t + Real.pi / 2 : ℝ) : Real.Angle) → + inner ℝ (A - p) (normalVector (t : Real.Angle)) = 1 ∧ + inner ℝ (A - p) (tangentVector (t : Real.Angle)) = + dh t - inner ℝ p (tangentVector (t : Real.Angle)) ∧ + inner ℝ (C - p) (normalVector (t : Real.Angle)) = + -dj t - (supportValue s (t : Real.Angle) - 1) ∧ + inner ℝ (C - p) (tangentVector (t : Real.Angle)) = + supportValue s ((t + Real.pi / 2 : ℝ) : Real.Angle) - + inner ℝ p (tangentVector (t : Real.Angle)) := by + intro t hgt A C e1 e2 e3 e4 + have hpu : inner ℝ p (normalVector (t : Real.Angle)) = + supportValue s (t : Real.Angle) - 1 := by + have h := hgval t + rw [hgt] at h + linarith only [h] + refine ⟨?_, ?_, ?_, ?_⟩ + · simp only [inner_sub_left, e1, hpu]; ring + · simp only [inner_sub_left, e2] + · simp only [inner_sub_left, e3, hpu] + · simp only [inner_sub_left, e4] + -- the deficiency decreases strictly at the cut angle + have hdgr : dh r - inner ℝ p (tangentVector (r : Real.Angle)) < 0 := by + obtain ⟨k1, k2, k3, k4⟩ := hcoords r hgr A₀ C₀ hA₀n hA₀t hC₀n hC₀t + have hApos : 0 < inner ℝ (A₀ - p) (normalVector (r : Real.Angle)) := by + rw [k1]; norm_num + have hCneg : inner ℝ (C₀ - p) (normalVector (r : Real.Angle)) < 0 := by + rw [k3]; linarith only [hbeta r hr] + have hcr := planeCrossProduct_nonpos_of_isMaxOn hconv hpline hmaxq hA₀ hC₀ hApos hCneg + rw [planeCrossProduct_eq_inner_frame (A₀ - p) (C₀ - p) r, k1, k2, k3, k4] at hcr + exact neg_of_det_nonpos (halpha r hr) (hbeta r hr) (by linarith only [hcr]) + -- the deficiency never exceeds one on the cut range + have hmain : ∀ t ∈ Set.Icc r (Real.pi / 2), g t ≤ 1 := by + by_contra hcon + push Not at hcon + obtain ⟨t₁, ht₁mem, ht₁gt⟩ := hcon + have ht₁r : r < t₁ := + lt_of_le_of_ne ht₁mem.1 (by rintro rfl; rw [hgr] at ht₁gt; exact lt_irrefl 1 ht₁gt) + have ht₁T : t₁ < Real.pi / 2 := + lt_of_le_of_ne ht₁mem.2 (by rintro rfl; exact absurd hgT (not_le.mpr ht₁gt)) + -- a time just to the right of the cut where the deficiency is below one + have hev : ∀ᶠ y in nhdsWithin r (Set.Ioi r), slope g r y < 0 := by + refine (((hasDerivAt_iff_tendsto_slope.mp (hgderiv r hr)).mono_left + (nhdsWithin_mono r fun x hx => ne_of_gt hx)).eventually_lt_const hdgr) + obtain ⟨r', hr'slope, hr'mem⟩ := + (hev.and (Filter.eventually_of_mem (Ioo_mem_nhdsGT ht₁r) fun y hy => hy)).exists + have hrr' : r < r' := hr'mem.1 + have hr't₁ : r' < t₁ := hr'mem.2 + have hgr'lt : g r' < 1 := by + rw [slope_def_field] at hr'slope + have hnum : g r' - g r < 0 := by + by_contra hcc + push Not at hcc + have h0 : 0 ≤ (g r' - g r) / (r' - r) := div_nonneg hcc (by linarith only [hrr']) + linarith only [h0, hr'slope] + linarith only [hnum, hgr] + -- the first return to level one + have hgcontOn : ContinuousOn g (Set.Icc r' t₁) := fun u hu => + ((hgderiv u ⟨by linarith only [hu.1, hrr', hr.1], + by linarith only [hu.2, ht₁T]⟩).continuousAt).continuousWithinAt + obtain ⟨t₂, ht₂mem', hgt₂, hleft⟩ := + exists_first_return hr't₁ hgcontOn hgr'lt ht₁gt.le + have ht₂gt : r' < t₂ := ht₂mem'.1 + have ht₂mem : t₂ ∈ Set.Ioo (0 : ℝ) (Real.pi / 2) := + ⟨by linarith only [hr.1, hrr', ht₂gt], lt_of_le_of_lt ht₂mem'.2 ht₁T⟩ + have hdgt₂ : 0 ≤ dh t₂ - inner ℝ p (tangentVector (t₂ : Real.Angle)) := + nonneg_of_first_return ht₂gt (hgderiv t₂ ht₂mem) hgt₂ hleft + -- the transverse signs at the first return + obtain ⟨A, hA, C, hC, e1, e2, e3, e4⟩ := + exists_frame_contacts hcomp hne (hdh t₂ ht₂mem) (hdj t₂ ht₂mem) + obtain ⟨k1, k2, k3, k4⟩ := hcoords t₂ hgt₂ A C e1 e2 e3 e4 + have hframeR : normalVector (r : Real.Angle) = + Real.cos (t₂ - r) • normalVector (t₂ : Real.Angle) - + Real.sin (t₂ - r) • tangentVector (t₂ : Real.Angle) := by + have hrew : ((r : ℝ) : Real.Angle) = ((t₂ + -(t₂ - r) : ℝ) : Real.Angle) := by + congr 1; ring + rw [hrew, normalVector_add_real t₂ (-(t₂ - r)), Real.cos_neg, Real.sin_neg] + module + have hframeT : normalVector ((Real.pi / 2 : ℝ) : Real.Angle) = + Real.sin t₂ • normalVector (t₂ : Real.Angle) + + Real.cos t₂ • tangentVector (t₂ : Real.Angle) := by + have hrew : ((Real.pi / 2 : ℝ) : Real.Angle) = + ((t₂ + (Real.pi / 2 - t₂) : ℝ) : Real.Angle) := by norm_num + rw [hrew, normalVector_add_real t₂ (Real.pi / 2 - t₂), Real.cos_pi_div_two_sub, + Real.sin_pi_div_two_sub] + have hAT : inner ℝ (A - p) (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = + Real.sin t₂ * 1 + Real.cos t₂ * + (dh t₂ - inner ℝ p (tangentVector (t₂ : Real.Angle))) := by + rw [hframeT, inner_add_right, real_inner_smul_right, real_inner_smul_right, k1, k2] + have hstrip : Real.sin t₂ + Real.cos t₂ * + (dh t₂ - inner ℝ p (tangentVector (t₂ : Real.Angle))) ≤ 1 := by + have h1 := inner_le_supportValue_of_isCompact hcomp hA ((Real.pi / 2 : ℝ) : Real.Angle) + rw [htop] at h1 + have h2 : inner ℝ (A - p) (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) ≤ 1 := by + rw [inner_sub_left] + linarith only [h1, hlow p hps] + rw [hAT] at h2 + linarith only [h2] + obtain ⟨hs1, hs2, hs3⟩ := chord_signs hr.1 (by linarith only [hrr', ht₂gt]) + ht₂mem.2 hdgt₂ (halpha t₂ ht₂mem) (hbeta t₂ ht₂mem) hstrip + have hAr : inner ℝ (A - p) (normalVector (r : Real.Angle)) = + Real.cos (t₂ - r) * 1 - Real.sin (t₂ - r) * + (dh t₂ - inner ℝ p (tangentVector (t₂ : Real.Angle))) := by + rw [hframeR, inner_sub_right, real_inner_smul_right, real_inner_smul_right, k1, k2] + have hCr : inner ℝ (C - p) (normalVector (r : Real.Angle)) = + Real.cos (t₂ - r) * (-dj t₂ - (supportValue s (t₂ : Real.Angle) - 1)) - + Real.sin (t₂ - r) * (supportValue s ((t₂ + Real.pi / 2 : ℝ) : Real.Angle) - + inner ℝ p (tangentVector (t₂ : Real.Angle))) := by + rw [hframeR, inner_sub_right, real_inner_smul_right, real_inner_smul_right, k3, k4] + have hApos : 0 < inner ℝ (A - p) (normalVector (r : Real.Angle)) := by + rw [hAr]; linarith only [hs1] + have hCneg : inner ℝ (C - p) (normalVector (r : Real.Angle)) < 0 := by + rw [hCr]; linarith only [hs2] + have hcr := planeCrossProduct_nonpos_of_isMaxOn hconv hpline hmaxq hA hC hApos hCneg + rw [planeCrossProduct_eq_inner_frame (A - p) (C - p) t₂, k1, k2, k3, k4] at hcr + linarith only [hcr, hs3] + refine ⟨p, hps, hpline, fun t ht => ?_⟩ + have hle := hmain t ht + rw [hgval] at hle + linarith only [hle] + +/-- The lowered horizontal extremes of a right-angle cap lie under all right and left cuts. -/ +theorem exists_cap_base_points (K : RightAngleCapSpace) : + ∃ pR ∈ (K.1 : Set Point), ∃ pL ∈ (K.1 : Set Point), + inner ℝ pR (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 ∧ + inner ℝ pL (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 ∧ + (∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + supportValue (K.1 : Set Point) (t : Real.Angle) - 1 ≤ + inner ℝ pR (normalVector (t : Real.Angle))) ∧ + (∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + supportValue (K.1 : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 ≤ + inner ℝ pL (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle))) := by + have hheight : ∀ q ∈ (K.1 : Set Point), 0 ≤ q 1 ∧ q 1 ≤ 1 := by + intro q hq + have hlo := K.inner_normalVector_pi_div_two_nonneg hq + have hhi := inner_le_supportValue_of_isCompact K.1.isCompact hq + ((Real.pi / 2 : ℝ) : Real.Angle) + rw [K.property.2.2.2.1] at hhi + rw [inner_normalVector_pi_div_two] at hlo hhi + exact ⟨hlo, hhi⟩ + obtain ⟨A, hA, hAeq⟩ := exists_mem_inner_eq_supportValue K.1 ((0 : ℝ) : Real.Angle) + obtain ⟨C, hC, hCeq⟩ := exists_mem_inner_eq_supportValue K.1 ((Real.pi : ℝ) : Real.Angle) + rw [inner_normalVector_real, Real.cos_zero, Real.sin_zero] at hAeq + rw [inner_normalVector_real, Real.cos_pi, Real.sin_pi] at hCeq + have hAmax : ∀ q ∈ (K.1 : Set Point), q 0 ≤ A 0 := by + intro q hq + have h := inner_le_supportValue_of_isCompact K.1.isCompact hq ((0 : ℝ) : Real.Angle) + rw [inner_normalVector_real, Real.cos_zero, Real.sin_zero] at h + linarith only [h, hAeq] + have hCmin : ∀ q ∈ (K.1 : Set Point), C 0 ≤ q 0 := by + intro q hq + have h := inner_le_supportValue_of_isCompact K.1.isCompact hq ((Real.pi : ℝ) : Real.Angle) + rw [inner_normalVector_real, Real.cos_pi, Real.sin_pi] at h + linarith only [h, hCeq] + refine ⟨!₂[A 0, 0], basePoint_mem_of_rightAngleCap K hA, !₂[C 0, 0], + basePoint_mem_of_rightAngleCap K hC, ?_, ?_, ?_, ?_⟩ + · rw [inner_normalVector_pi_div_two]; rfl + · rw [inner_normalVector_pi_div_two]; rfl + · intro t ht + have hcos : 0 ≤ Real.cos t := + Real.cos_nonneg_of_mem_Icc ⟨by linarith only [ht.1, Real.pi_pos], ht.2⟩ + have hsin : 0 ≤ Real.sin t := + Real.sin_nonneg_of_nonneg_of_le_pi ht.1 (by linarith only [ht.2, Real.pi_pos]) + have hsin1 : Real.sin t ≤ 1 := Real.sin_le_one t + have hbound : supportValue (K.1 : Set Point) (t : Real.Angle) ≤ A 0 * Real.cos t + 1 := by + refine csSup_le (K.1.nonempty.image _) ?_ + rintro _ ⟨q, hq, rfl⟩ + dsimp only + rw [inner_normalVector_real] + nlinarith only [hAmax q hq, (hheight q hq).2, hcos, hsin, hsin1] + rw [inner_normalVector_real] + change supportValue (K.1 : Set Point) (t : Real.Angle) - 1 ≤ A 0 * Real.cos t + 0 * Real.sin t + linarith only [hbound] + · intro t ht + have hcos : 0 ≤ Real.cos t := + Real.cos_nonneg_of_mem_Icc ⟨by linarith only [ht.1, Real.pi_pos], ht.2⟩ + have hcos1 : Real.cos t ≤ 1 := Real.cos_le_one t + have hsin : 0 ≤ Real.sin t := + Real.sin_nonneg_of_nonneg_of_le_pi ht.1 (by linarith only [ht.2, Real.pi_pos]) + have hbound : supportValue (K.1 : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) ≤ + -(C 0) * Real.sin t + 1 := by + refine csSup_le (K.1.nonempty.image _) ?_ + rintro _ ⟨q, hq, rfl⟩ + dsimp only + rw [inner_normalVector_real, Real.cos_add_pi_div_two, Real.sin_add_pi_div_two] + nlinarith only [hCmin q hq, (hheight q hq).2, hcos, hcos1, hsin] + rw [inner_normalVector_real, Real.cos_add_pi_div_two, Real.sin_add_pi_div_two] + change supportValue (K.1 : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 ≤ + C 0 * -Real.sin t + 0 * Real.cos t + linarith only [hbound] + +/-- The right cut line meets the cap, below the whole right cut family. -/ +theorem exists_right_tail_contact (K : RightAngleCapSpace) + (hinj : SatisfiesInjectivityCondition K) {r : ℝ} + (hr : r ∈ Set.Ioo (0 : ℝ) (Real.pi / 2)) : + ∃ p ∈ (K.1 : Set Point), + inner ℝ p (normalVector (r : Real.Angle)) = + supportValue (K.1 : Set Point) (r : Real.Angle) - 1 ∧ + ∀ t ∈ Set.Icc r (Real.pi / 2), + supportValue (K.1 : Set Point) (t : Real.Angle) - 1 ≤ + inner ℝ p (normalVector (t : Real.Angle)) := by + obtain ⟨dh, dj, h1, h2, h3, h4⟩ := capSupport_hasDerivAt K hinj + exact exists_mem_inner_eq_sub_one_of_deriv_signs K.1.isCompact K.1.convex K.1.nonempty + dh dj h1 h2 h3 h4 K.property.2.2.2.1 + (fun q hq => K.inner_normalVector_pi_div_two_nonneg hq) hr + +/-- The left cut line meets the cap, below the whole left cut family. -/ +theorem exists_left_tail_contact (K : RightAngleCapSpace) + (hinj : SatisfiesInjectivityCondition K) {l : ℝ} + (hl : l ∈ Set.Ioo (0 : ℝ) (Real.pi / 2)) : + ∃ p ∈ (K.1 : Set Point), + inner ℝ p (normalVector ((l + Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue (K.1 : Set Point) ((l + Real.pi / 2 : ℝ) : Real.Angle) - 1 ∧ + ∀ t ∈ Set.Icc (0 : ℝ) l, + supportValue (K.1 : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 ≤ + inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) := by + obtain ⟨dh, dj, h1, h2, h3, h4⟩ := capSupport_hasDerivAt K hinj + have hcast : ∀ a b : ℝ, a = b → ((a : ℝ) : Real.Angle) = ((b : ℝ) : Real.Angle) := + fun a b h => by rw [h] + have hsv : ∀ u : ℝ, + supportValue (reflectedBody (Real.pi / 2) K.1 : Set Point) (u : Real.Angle) = + supportValue (K.1 : Set Point) ((Real.pi - u : ℝ) : Real.Angle) := + supportValue_reflectedBody_pi_div_two K.1 + have hfunS : (fun w : ℝ ↦ supportValue (reflectedBody (Real.pi / 2) K.1 : Set Point) + (w : Real.Angle)) = + fun w : ℝ ↦ supportValue (K.1 : Set Point) ((Real.pi - w : ℝ) : Real.Angle) := + funext hsv + have hrefl : ∀ u : ℝ, u ∈ Set.Ioo (0 : ℝ) (Real.pi / 2) → + Real.pi / 2 - u ∈ Set.Ioo (0 : ℝ) (Real.pi / 2) := + fun u hu => ⟨by linarith only [hu.2], by linarith only [hu.1]⟩ + have hsvL : ∀ u : ℝ, + supportValue (reflectedBody (Real.pi / 2) K.1 : Set Point) + ((u + Real.pi / 2 : ℝ) : Real.Angle) = + supportValue (K.1 : Set Point) ((Real.pi / 2 - u : ℝ) : Real.Angle) := by + intro u + rw [hsv (u + Real.pi / 2), + hcast _ _ (show Real.pi - (u + Real.pi / 2) = Real.pi / 2 - u by ring)] + have hsvR : ∀ u : ℝ, + supportValue (reflectedBody (Real.pi / 2) K.1 : Set Point) (u : Real.Angle) = + supportValue (K.1 : Set Point) ((Real.pi / 2 - u + Real.pi / 2 : ℝ) : Real.Angle) := by + intro u + rw [hsv u, hcast _ _ (show Real.pi - u = Real.pi / 2 - u + Real.pi / 2 by ring)] + obtain ⟨q0, hq0s, hq0line, hq0bound⟩ := + exists_mem_inner_eq_sub_one_of_deriv_signs + (reflectedBody (Real.pi / 2) K.1).isCompact (reflectedBody (Real.pi / 2) K.1).convex + (reflectedBody (Real.pi / 2) K.1).nonempty + (fun u ↦ -dj (Real.pi / 2 - u)) (fun u ↦ -dh (Real.pi / 2 - u)) + (by + intro u hu + have hF : HasDerivAt (fun w : ℝ ↦ supportValue (K.1 : Set Point) (w : Real.Angle)) + (dj (Real.pi / 2 - u)) (Real.pi - u) := by + rw [show Real.pi - u = Real.pi / 2 - u + Real.pi / 2 by ring] + exact h2 _ (hrefl u hu) + rw [hfunS] + exact HasDerivAt.comp_const_sub Real.pi u hF) + (by + intro u hu + have hF : HasDerivAt (fun w : ℝ ↦ supportValue (K.1 : Set Point) (w : Real.Angle)) + (dh (Real.pi / 2 - u)) (Real.pi - (u + Real.pi / 2)) := by + rw [show Real.pi - (u + Real.pi / 2) = Real.pi / 2 - u by ring] + exact h1 _ (hrefl u hu) + rw [hfunS] + exact HasDerivAt.comp_const_sub Real.pi (u + Real.pi / 2) hF) + (by + intro u hu + rw [hsvL u] + linarith only [h4 _ (hrefl u hu)]) + (by + intro u hu + rw [hsvR u] + linarith only [h3 _ (hrefl u hu)]) + (by + rw [hsv (Real.pi / 2), hcast _ _ (show Real.pi - Real.pi / 2 = Real.pi / 2 by ring)] + exact K.property.2.2.2.1) + (by + rintro q ⟨v, hv, rfl⟩ + rw [inner_capReflection_pi_div_two, + hcast _ _ (show Real.pi - Real.pi / 2 = Real.pi / 2 by ring)] + exact K.inner_normalVector_pi_div_two_nonneg hv) + (show Real.pi / 2 - l ∈ Set.Ioo (0 : ℝ) (Real.pi / 2) from hrefl l hl) + obtain ⟨p, hpK, rfl⟩ : ∃ p ∈ (K.1 : Set Point), capReflection (Real.pi / 2) p = q0 := hq0s + refine ⟨p, hpK, ?_, ?_⟩ + · rw [inner_capReflection_pi_div_two, + hcast _ _ (show Real.pi - (Real.pi / 2 - l) = l + Real.pi / 2 by ring)] at hq0line + rw [hsv (Real.pi / 2 - l), + hcast _ _ (show Real.pi - (Real.pi / 2 - l) = l + Real.pi / 2 by ring)] at hq0line + exact hq0line + · intro t ht + have hw : Real.pi / 2 - t ∈ Set.Icc (Real.pi / 2 - l) (Real.pi / 2) := + ⟨by linarith only [ht.2], by linarith only [ht.1]⟩ + have hb := hq0bound (Real.pi / 2 - t) hw + rw [inner_capReflection_pi_div_two, + hcast _ _ (show Real.pi - (Real.pi / 2 - t) = t + Real.pi / 2 by ring)] at hb + rw [hsv (Real.pi / 2 - t), + hcast _ _ (show Real.pi - (Real.pi / 2 - t) = t + Real.pi / 2 by ring)] at hb + exact hb + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Tail / Bodies +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The distinguished inner wall, upper half-plane, fan point and corner on one side. -/ +structure DistinguishedCapSide where + /-- The distinguished inner supporting wall. -/ + wall : Set Point + /-- The upper half-plane selected at the distinguished wall. -/ + upperHalfPlane : Set Point + /-- The corresponding endpoint of the cap fan. -/ + fanPoint : Point + /-- The inner hallway corner at the distinguished angle. -/ + corner : Point + +/-- The right and left cap geometry at the two distinguished Gerver angles. -/ +def distinguishedCapSides (K : RightAngleCapSpace) : DistinguishedCapSide × DistinguishedCapSide := + let r := paperGerverConstants.2.1 + let l := paperGerverConstants.2.2 + (⟨(rotatingHallwayParts (K.1 : Set Point) (r : Real.Angle)).b, + (innerWallUpperHalfPlanes K r).1, (wedgeEndpoints K r).1, capInnerCorner K r⟩, + ⟨(rotatingHallwayParts (K.1 : Set Point) (l : Real.Angle)).d, + (innerWallUpperHalfPlanes K l).2, (wedgeEndpoints K l).2, capInnerCorner K l⟩) + +/-- The right distinguished fan point is the right wedge endpoint at the right Gerver angle. -/ +theorem distinguishedCapSides_fst_fanPoint (K : RightAngleCapSpace) : + (distinguishedCapSides K).1.fanPoint = (wedgeEndpoints K paperGerverConstants.2.1).1 := rfl + +/-- The right distinguished corner is the inner corner at the right Gerver angle. -/ +theorem distinguishedCapSides_fst_corner (K : RightAngleCapSpace) : + (distinguishedCapSides K).1.corner = capInnerCorner K paperGerverConstants.2.1 := rfl + +/-- The left distinguished fan point is the left wedge endpoint at the left Gerver angle. -/ +theorem distinguishedCapSides_snd_fanPoint (K : RightAngleCapSpace) : + (distinguishedCapSides K).2.fanPoint = (wedgeEndpoints K paperGerverConstants.2.2).2 := rfl + +/-- The left distinguished corner is the inner corner at the left Gerver angle. -/ +theorem distinguishedCapSides_snd_corner (K : RightAngleCapSpace) : + (distinguishedCapSides K).2.corner = capInnerCorner K paperGerverConstants.2.2 := rfl + +/-- Canonical tails are convex bodies and satisfy all support and endpoint-line identities. -/ +theorem canonicalTailSets_properties (K : SpecialCapSpace) : + (canonicalTailSets K).1.Nonempty ∧ IsCompact (canonicalTailSets K).1 ∧ Convex ℝ + (canonicalTailSets K).1 ∧ (canonicalTailSets K).1 ⊆ (K.1.1 : Set Point) ∧ + (canonicalTailSets K).2.Nonempty ∧ IsCompact (canonicalTailSets K).2 ∧ Convex ℝ + (canonicalTailSets K).2 ∧ (canonicalTailSets K).2 ⊆ (K.1.1 : Set Point) ∧ + (∀ t ∈ Set.Icc paperGerverConstants.2.1 (Real.pi / 2), + supportValue K.1.1 (t : Real.Angle) + + supportValue (canonicalTailSets K).1 ((Real.pi + t : ℝ) : Real.Angle) ≤ 1) ∧ + (∀ t ∈ ({paperGerverConstants.2.1, Real.pi / 2} : Set ℝ), + supportValue K.1.1 (t : Real.Angle) + + supportValue (canonicalTailSets K).1 ((Real.pi + t : ℝ) : Real.Angle) = 1) ∧ + (supportingLineHalfPlane (canonicalTailSets K).1 ((3 * Real.pi / 2 : ℝ) : Real.Angle)).1 = + normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0 ∧ + (supportingLineHalfPlane (canonicalTailSets K).1 ((Real.pi + paperGerverConstants.2.1 : ℝ) : + Real.Angle)).1 = + (distinguishedCapSides K.1).1.wall ∧ + (∀ t ∈ Set.Icc (0 : ℝ) paperGerverConstants.2.2, + supportValue K.1.1 ((Real.pi / 2 + t : ℝ) : Real.Angle) + + supportValue (canonicalTailSets K).2 ((3 * Real.pi / 2 + t : ℝ) : Real.Angle) ≤ 1) ∧ + (∀ t ∈ ({0, paperGerverConstants.2.2} : Set ℝ), + supportValue K.1.1 ((Real.pi / 2 + t : ℝ) : Real.Angle) + + supportValue (canonicalTailSets K).2 ((3 * Real.pi / 2 + t : ℝ) : Real.Angle) = 1) ∧ + (supportingLineHalfPlane (canonicalTailSets K).2 ((3 * Real.pi / 2 : ℝ) : Real.Angle)).1 = + normalLine ((Real.pi / 2 : ℝ) : Real.Angle) 0 ∧ + (supportingLineHalfPlane (canonicalTailSets K).2 ((3 * Real.pi / 2 + paperGerverConstants.2.2 + : ℝ) : Real.Angle)).1 = + (distinguishedCapSides K.1).2.wall := by + have hcast : ∀ a b : ℝ, a = b → ((a : ℝ) : Real.Angle) = ((b : ℝ) : Real.Angle) := + fun a b h => by rw [h] + obtain ⟨hr, hl, -⟩ := paperGerverConstants_snd_mem_Ioo + have htop : supportValue (K.1.1 : Set Point) ((Real.pi / 2 : ℝ) : Real.Angle) = 1 := + K.1.property.2.2.2.1 + -- membership characterizations of the two tails + have hBmem : ∀ p : Point, p ∈ (canonicalTailSets K).1 ↔ + (p ∈ (K.1.1 : Set Point) ∧ ∀ t ∈ Set.Icc paperGerverConstants.2.1 (Real.pi / 2), + supportValue (K.1.1 : Set Point) (t : Real.Angle) - 1 ≤ + inner ℝ p (normalVector (t : Real.Angle))) := by + intro p + simp [canonicalTailSets, innerWallUpperHalfPlanes, normalHalfPlane] + have hDmem : ∀ p : Point, p ∈ (canonicalTailSets K).2 ↔ + (p ∈ (K.1.1 : Set Point) ∧ ∀ t ∈ Set.Icc (0 : ℝ) paperGerverConstants.2.2, + supportValue (K.1.1 : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 ≤ + inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle))) := by + intro p + simp [canonicalTailSets, innerWallUpperHalfPlanes, normalHalfPlane] + -- domain properties + obtain ⟨pR, hpRK, pL, hpLK, hpRy, hpLy, hpRcut, hpLcut⟩ := exists_cap_base_points K.1 + have hpRB : pR ∈ (canonicalTailSets K).1 := + (hBmem pR).mpr ⟨hpRK, fun t ht => hpRcut t ⟨le_trans hr.1.le ht.1, ht.2⟩⟩ + have hpLD : pL ∈ (canonicalTailSets K).2 := + (hDmem pL).mpr ⟨hpLK, fun t ht => hpLcut t ⟨ht.1, le_trans ht.2 hl.2.le⟩⟩ + have hBne : (canonicalTailSets K).1.Nonempty := ⟨pR, hpRB⟩ + have hDne : (canonicalTailSets K).2.Nonempty := ⟨pL, hpLD⟩ + have hBsub : (canonicalTailSets K).1 ⊆ (K.1.1 : Set Point) := fun p hp => ((hBmem p).mp hp).1 + have hDsub : (canonicalTailSets K).2 ⊆ (K.1.1 : Set Point) := fun p hp => ((hDmem p).mp hp).1 + have hBcomp : IsCompact (canonicalTailSets K).1 := + K.1.1.isCompact.inter_right (isClosed_biInter fun t _ => isClosed_normalHalfPlane _ _ true) + have hDcomp : IsCompact (canonicalTailSets K).2 := + K.1.1.isCompact.inter_right (isClosed_biInter fun t _ => isClosed_normalHalfPlane _ _ true) + have hBconv : Convex ℝ (canonicalTailSets K).1 := + K.1.1.convex.inter (convex_iInter fun t => convex_iInter fun _ => + convex_normalHalfPlane _ _ true) + have hDconv : Convex ℝ (canonicalTailSets K).2 := + K.1.1.convex.inter (convex_iInter fun t => convex_iInter fun _ => + convex_normalHalfPlane _ _ true) + -- the two support inequalities + have hBbound : ∀ t ∈ Set.Icc paperGerverConstants.2.1 (Real.pi / 2), + supportValue (canonicalTailSets K).1 ((Real.pi + t : ℝ) : Real.Angle) ≤ + 1 - supportValue (K.1.1 : Set Point) (t : Real.Angle) := by + intro t ht + have h := supportValue_le_of_cut hBne (a := t) (b := Real.pi + t) + (hcast _ _ (by ring)) (fun p hp => ((hBmem p).mp hp).2 t ht) + linarith only [h] + have hDbound : ∀ t ∈ Set.Icc (0 : ℝ) paperGerverConstants.2.2, + supportValue (canonicalTailSets K).2 ((3 * Real.pi / 2 + t : ℝ) : Real.Angle) ≤ + 1 - supportValue (K.1.1 : Set Point) ((Real.pi / 2 + t : ℝ) : Real.Angle) := by + intro t ht + have hc : ∀ p ∈ (canonicalTailSets K).2, + supportValue (K.1.1 : Set Point) ((Real.pi / 2 + t : ℝ) : Real.Angle) - 1 ≤ + inner ℝ p (normalVector ((Real.pi / 2 + t : ℝ) : Real.Angle)) := by + intro p hp + have h := ((hDmem p).mp hp).2 t ht + rwa [hcast _ _ (show t + Real.pi / 2 = Real.pi / 2 + t by ring)] at h + have h := supportValue_le_of_cut hDne (a := Real.pi / 2 + t) (b := 3 * Real.pi / 2 + t) + (hcast _ _ (by ring)) hc + linarith only [h] + -- the four endpoint equalities + have hBzero : + supportValue (canonicalTailSets K).1 ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 := by + refine le_antisymm ?_ ?_ + · have h := hBbound (Real.pi / 2) ⟨hr.2.le, le_refl _⟩ + rw [hcast _ _ (show Real.pi + Real.pi / 2 = 3 * Real.pi / 2 by ring), htop] at h + linarith only [h] + · have h := le_supportValue_of_cut hBcomp (a := Real.pi / 2) (b := 3 * Real.pi / 2) + (hcast _ _ (by ring)) hpRB hpRy + linarith only [h] + have hDzero : + supportValue (canonicalTailSets K).2 ((3 * Real.pi / 2 : ℝ) : Real.Angle) = 0 := by + refine le_antisymm ?_ ?_ + · have h := hDbound 0 ⟨le_refl _, hl.1.le⟩ + rw [hcast _ _ (show 3 * Real.pi / 2 + (0 : ℝ) = 3 * Real.pi / 2 by ring), + hcast _ _ (show Real.pi / 2 + (0 : ℝ) = Real.pi / 2 by ring), htop] at h + linarith only [h] + · have h := le_supportValue_of_cut hDcomp (a := Real.pi / 2) (b := 3 * Real.pi / 2) + (hcast _ _ (by ring)) hpLD hpLy + linarith only [h] + obtain ⟨pr, hprK, hprline, hprcut⟩ := exists_right_tail_contact K.1 K.property.1 hr + obtain ⟨pl, hplK, hplline, hplcut⟩ := exists_left_tail_contact K.1 K.property.1 hl + have hprB : pr ∈ (canonicalTailSets K).1 := (hBmem pr).mpr ⟨hprK, hprcut⟩ + have hplD : pl ∈ (canonicalTailSets K).2 := (hDmem pl).mpr ⟨hplK, hplcut⟩ + have hBeqR : supportValue (canonicalTailSets K).1 + ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle) = + 1 - supportValue (K.1.1 : Set Point) ((paperGerverConstants.2.1 : ℝ) : Real.Angle) := by + refine le_antisymm (hBbound _ ⟨le_refl _, hr.2.le⟩) ?_ + have h := le_supportValue_of_cut hBcomp (a := paperGerverConstants.2.1) + (b := Real.pi + paperGerverConstants.2.1) (hcast _ _ (by ring)) hprB hprline + linarith only [h] + have hDeqL : supportValue (canonicalTailSets K).2 + ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle) = + 1 - supportValue (K.1.1 : Set Point) + ((Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle) := by + refine le_antisymm (hDbound _ ⟨hl.1.le, le_refl _⟩) ?_ + rw [hcast _ _ (show paperGerverConstants.2.2 + Real.pi / 2 = + Real.pi / 2 + paperGerverConstants.2.2 by ring)] at hplline + have h := le_supportValue_of_cut hDcomp (a := Real.pi / 2 + paperGerverConstants.2.2) + (b := 3 * Real.pi / 2 + paperGerverConstants.2.2) (hcast _ _ (by ring)) hplD hplline + linarith only [h] + -- the distinguished walls + have hwallR : (distinguishedCapSides K.1).1.wall = + normalLine ((paperGerverConstants.2.1 : ℝ) : Real.Angle) + (supportValue (K.1.1 : Set Point) ((paperGerverConstants.2.1 : ℝ) : Real.Angle) - 1) := + (rotatingHallwayParts_formulas (K.1.1 : Set Point) + ((paperGerverConstants.2.1 : ℝ) : Real.Angle)).2.2.2.2.1 + have hwallL : (distinguishedCapSides K.1).2.wall = + normalLine + (((paperGerverConstants.2.2 : ℝ) : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) + (supportValue (K.1.1 : Set Point) + (((paperGerverConstants.2.2 : ℝ) : Real.Angle) + + ((Real.pi / 2 : ℝ) : Real.Angle)) - 1) := + (rotatingHallwayParts_formulas (K.1.1 : Set Point) + ((paperGerverConstants.2.2 : ℝ) : Real.Angle)).2.2.2.2.2.2.1 + have hangL : + ((paperGerverConstants.2.2 : ℝ) : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) = + ((Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle) := by + rw [← Real.Angle.coe_add] + exact hcast _ _ (by ring) + refine ⟨hBne, hBcomp, hBconv, hBsub, hDne, hDcomp, hDconv, hDsub, + ?_, ?_, ?_, ?_, ?_, ?_, ?_, ?_⟩ + · intro t ht + linarith only [hBbound t ht] + · intro t ht + simp only [Set.mem_insert_iff, Set.mem_singleton_iff] at ht + rcases ht with rfl | rfl + · linarith only [hBeqR] + · rw [hcast _ _ (show Real.pi + Real.pi / 2 = 3 * Real.pi / 2 by ring), hBzero, htop] + ring + · change normalLine ((3 * Real.pi / 2 : ℝ) : Real.Angle) + (supportValue (canonicalTailSets K).1 ((3 * Real.pi / 2 : ℝ) : Real.Angle)) = _ + rw [hBzero, normalLine_eq_of_cut (a := Real.pi / 2) (b := 3 * Real.pi / 2) + (hcast _ _ (by ring)), neg_zero] + · change normalLine ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle) + (supportValue (canonicalTailSets K).1 + ((Real.pi + paperGerverConstants.2.1 : ℝ) : Real.Angle)) = _ + rw [hBeqR, normalLine_eq_of_cut (a := paperGerverConstants.2.1) + (b := Real.pi + paperGerverConstants.2.1) (hcast _ _ (by ring)), hwallR] + congr 1 + ring + · intro t ht + linarith only [hDbound t ht] + · intro t ht + simp only [Set.mem_insert_iff, Set.mem_singleton_iff] at ht + rcases ht with rfl | rfl + · rw [hcast _ _ (show 3 * Real.pi / 2 + (0 : ℝ) = 3 * Real.pi / 2 by ring), + hcast _ _ (show Real.pi / 2 + (0 : ℝ) = Real.pi / 2 by ring), hDzero, htop] + ring + · linarith only [hDeqL] + · change normalLine ((3 * Real.pi / 2 : ℝ) : Real.Angle) + (supportValue (canonicalTailSets K).2 ((3 * Real.pi / 2 : ℝ) : Real.Angle)) = _ + rw [hDzero, normalLine_eq_of_cut (a := Real.pi / 2) (b := 3 * Real.pi / 2) + (hcast _ _ (by ring)), neg_zero] + · change normalLine ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle) + (supportValue (canonicalTailSets K).2 + ((3 * Real.pi / 2 + paperGerverConstants.2.2 : ℝ) : Real.Angle)) = _ + rw [hDeqL, normalLine_eq_of_cut (a := Real.pi / 2 + paperGerverConstants.2.2) + (b := 3 * Real.pi / 2 + paperGerverConstants.2.2) (hcast _ _ (by ring)), hwallL, hangL] + congr 1 + ring + +/-- The inner corner's normal support coordinate is the cap's support value less one. -/ +theorem inner_capInnerCorner_normalVector (K : RightAngleCapSpace) (t : ℝ) : + inner ℝ (capInnerCorner K t) (normalVector (t : Real.Angle)) = + supportValue (K.val : Set Point) (t : Real.Angle) - 1 := by + have hform := (rotatingHallwayParts_formulas (K.val : Set Point) (t : Real.Angle)).2.1 + change inner ℝ (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerCorner + (normalVector (t : Real.Angle)) = _ + rw [hform, inner_add_left, real_inner_smul_left, real_inner_smul_left, + inner_normalVector_self, inner_tangentVector_normalVector_real] + simp + +/-- The inner corner's tangent support coordinate is the quarter-turned support value less one. -/ +theorem inner_capInnerCorner_tangentVector (K : RightAngleCapSpace) (t : ℝ) : + inner ℝ (capInnerCorner K t) (tangentVector (t : Real.Angle)) = + supportValue (K.val : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := by + have hform := (rotatingHallwayParts_formulas (K.val : Set Point) (t : Real.Angle)).2.1 + change inner ℝ (rotatingHallwayParts (K.val : Set Point) (t : Real.Angle)).innerCorner + (tangentVector (t : Real.Angle)) = _ + rw [hform, inner_add_left, real_inner_smul_left, real_inner_smul_left, + inner_tangentVector_tangentVector, inner_normalVector_tangentVector, + ← Real.Angle.coe_add] + simp + +/-- A point whose displacement from the inner corner has negative coordinates in the rotating +frame at time `t` lies in the open inward quadrant at that time. -/ +theorem mem_innerQuadrant_of_frame_coordinates_neg (K : RightAngleCapSpace) (t : ℝ) (q : Point) + (h1 : (q 0 - capInnerCorner K t 0) * Real.cos t + + (q 1 - capInnerCorner K t 1) * Real.sin t < 0) + (h2 : -((q 0 - capInnerCorner K t 0) * Real.sin t) + + (q 1 - capInnerCorner K t 1) * Real.cos t < 0) : + q ∈ innerQuadrant (K.val : Set Point) t := by + have e1 : inner ℝ q (normalVector (t : Real.Angle)) < + supportValue (K.val : Set Point) (t : Real.Angle) - 1 := by + rw [← inner_capInnerCorner_normalVector K t, inner_normalVector_real, + inner_normalVector_real] + linarith only [h1] + have e2 : inner ℝ q (tangentVector (t : Real.Angle)) < + supportValue (K.val : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 := by + rw [← inner_capInnerCorner_tangentVector K t, inner_tangentVector_real, + inner_tangentVector_real] + linarith only [h2] + refine ⟨e1, ?_⟩ + change inner ℝ q (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < _ + rw [Real.Angle.coe_add, normalVector_add_pi_div_two] + exact e2 + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Tail / Extension +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The canonical tail sets give an admissible cap-tail triple with exactly these carriers. -/ +theorem exists_canonicalCapTail (K : SpecialCapSpace) : + ∃ T : CapTailSpace, T.cap = K ∧ + (T.rightBody : Set Point) = (canonicalTailSets K).1 ∧ + (T.leftBody : Set Point) = (canonicalTailSets K).2 := by + obtain ⟨hBne, hBcp, hBcv, hBsub, hDne, hDcp, hDcv, hDsub, hBbd, hBeq, -, -, + hDbd, hDeq, -, -⟩ := canonicalTailSets_properties K + exact ⟨{ cap := K + rightBody := ⟨(canonicalTailSets K).1, hBcv, hBcp, hBne⟩ + leftBody := ⟨(canonicalTailSets K).2, hDcv, hDcp, hDne⟩ + right_subset := hBsub + left_subset := hDsub + right_bound := hBbd + right_eq := hBeq + left_bound := hDbd + left_eq := hDeq }, rfl, rfl, rfl⟩ + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Tail / Separation +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- A point above both distinguished inner walls of a special cap lies above mid-height. -/ +private theorem lt_coordinate_of_mem_distinguishedCapSides_upperHalfPlanes (K : SpecialCapSpace) + {q : Point} (h₁ : q ∈ (distinguishedCapSides K.val).1.upperHalfPlane) + (h₂ : q ∈ (distinguishedCapSides K.val).2.upperHalfPlane) : + (horizontalMax K.val.val - horizontalMin K.val.val) / 2 < q 1 := by + obtain ⟨hrIoo, hlIoo, hrl⟩ := paperGerverConstants_snd_mem_Ioo + have hphi : paperGerverConstants.2.1 ≤ (40 : ℝ) / 1000 := by + obtain ⟨hall, p, hpbox, hpeq, -⟩ := gerver_parameter_identification + exact (hall p hpbox hpeq).2.2.2.2.2.2.2.1 + have hcosr : (1249 : ℝ) / 1250 ≤ Real.cos paperGerverConstants.2.1 := by + have h := Real.one_sub_sq_div_two_le_cos (x := paperGerverConstants.2.1) + nlinarith only [h, hphi, hrIoo.1] + have hsinle : Real.sin paperGerverConstants.2.1 ≤ paperGerverConstants.2.1 := + Real.sin_le hrIoo.1.le + have hcpos : (0 : ℝ) < Real.cos paperGerverConstants.2.1 := by linarith + have hsinr : (0 : ℝ) ≤ Real.sin paperGerverConstants.2.1 := + (Real.sin_pos_of_pos_of_lt_pi hrIoo.1 (by linarith [hrIoo.2, Real.pi_pos])).le + have hsinl : (0 : ℝ) ≤ Real.sin paperGerverConstants.2.2 := + (Real.sin_pos_of_pos_of_lt_pi hlIoo.1 (by linarith [hlIoo.2, Real.pi_pos])).le + have hcosl : (0 : ℝ) ≤ Real.cos paperGerverConstants.2.2 := + (Real.cos_pos_of_mem_Ioo ⟨by linarith [hlIoo.1, Real.pi_pos], hlIoo.2⟩).le + have hleq : paperGerverConstants.2.2 = Real.pi / 2 - paperGerverConstants.2.1 := by linarith + have hsinleq : Real.sin paperGerverConstants.2.2 = Real.cos paperGerverConstants.2.1 := by + rw [hleq, Real.sin_pi_div_two_sub] + have hcosleq : Real.cos paperGerverConstants.2.2 = Real.sin paperGerverConstants.2.1 := by + rw [hleq, Real.cos_pi_div_two_sub] + -- the cap is wide, by rectangle area monotonicity and the special-cap area threshold + have hwidth : (11 : ℝ) / 5 ≤ + supportValue (K.val.val : Set Point) ((0 : ℝ) : Real.Angle) + + supportValue (K.val.val : Set Point) ((Real.pi : ℝ) : Real.Angle) := by + have h := K.property.2.trans K.val.area_le_horizontalWidth + rwa [supportValue_zero_eq_horizontalMax, supportValue_pi_eq_neg_horizontalMin, + ← sub_eq_add_neg] + -- support lower bounds at the two distinguished angles + have hlowR : Real.cos paperGerverConstants.2.1 * + supportValue (K.val.val : Set Point) ((0 : ℝ) : Real.Angle) ≤ + supportValue (K.val.val : Set Point) + ((paperGerverConstants.2.1 : ℝ) : Real.Angle) := by + have h := (CapSpace.horizontal_le_supportValue K.val hsinr hcpos.le).1 + rwa [← supportValue_zero_eq_horizontalMax] at h + have hlowL : Real.cos paperGerverConstants.2.1 * + supportValue (K.val.val : Set Point) ((Real.pi : ℝ) : Real.Angle) ≤ + supportValue (K.val.val : Set Point) + ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle) := by + have h := (CapSpace.horizontal_le_supportValue K.val hsinl hcosl).2 + rw [supportValue_pi_eq_neg_horizontalMin, ← hsinleq, mul_neg, ← neg_mul] + exact h + -- the two defining support inequalities of the closed tail half-planes + have h₁' : supportValue (K.val.val : Set Point) + ((paperGerverConstants.2.1 : ℝ) : Real.Angle) - 1 ≤ + inner ℝ q (normalVector ((paperGerverConstants.2.1 : ℝ) : Real.Angle)) := h₁ + have h₂' : supportValue (K.val.val : Set Point) + ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle) - 1 ≤ + inner ℝ q + (normalVector ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle)) := h₂ + rw [inner_normalVector_real] at h₁' + rw [inner_normalVector_real, Real.cos_add, Real.sin_add, Real.cos_pi_div_two, + Real.sin_pi_div_two, hsinleq, hcosleq] at h₂' + -- the strict product bound of the informal proof + rw [← supportValue_zero_eq_horizontalMax, sub_eq_add_neg, + ← supportValue_pi_eq_neg_horizontalMin] + by_contra hcon + rw [not_lt] at hcon + have hcs : (1199 : ℝ) / 1250 ≤ + Real.cos paperGerverConstants.2.1 - Real.sin paperGerverConstants.2.1 := by linarith + have hprod : (2 : ℝ) < (Real.cos paperGerverConstants.2.1 - + Real.sin paperGerverConstants.2.1) * + (supportValue (K.val.val : Set Point) ((0 : ℝ) : Real.Angle) + + supportValue (K.val.val : Set Point) ((Real.pi : ℝ) : Real.Angle)) := by + have h := mul_le_mul hcs hwidth (by norm_num) (by linarith) + linarith + have hmul : q 1 * Real.sin paperGerverConstants.2.1 ≤ + (supportValue (K.val.val : Set Point) ((0 : ℝ) : Real.Angle) + + supportValue (K.val.val : Set Point) ((Real.pi : ℝ) : Real.Angle)) / 2 * + Real.sin paperGerverConstants.2.1 := + mul_le_mul_of_nonneg_right hcon hsinr + nlinarith only [h₁', h₂', hlowR, hlowL, hmul, hprod] + +theorem cap_and_niche_tail_separation (K : SpecialCapSpace) : + ((K.val.val : Set Point) ∩ (distinguishedCapSides K.val).1.upperHalfPlane) ∩ + (distinguishedCapSides K.val).2.upperHalfPlane = ∅ ∧ + (capNiche K.val ∩ (distinguishedCapSides K.val).1.upperHalfPlane) ∩ + (distinguishedCapSides K.val).2.upperHalfPlane = ∅ := by + have hwidth : (11 : ℝ) / 5 ≤ horizontalMax K.val.val - horizontalMin K.val.val := + K.property.2.trans K.val.area_le_horizontalWidth + constructor + · refine Set.eq_empty_iff_forall_notMem.mpr ?_ + rintro q ⟨⟨hqK, h₁⟩, h₂⟩ + have hmid := lt_coordinate_of_mem_distinguishedCapSides_upperHalfPlanes K h₁ h₂ + have hq := (K.val.mem_horizontalStrip hqK).2 + linarith + · refine Set.eq_empty_iff_forall_notMem.mpr ?_ + rintro q ⟨⟨hqN, h₁⟩, h₂⟩ + have hmid := lt_coordinate_of_mem_distinguishedCapSides_upperHalfPlanes K h₁ h₂ + have hq := (capNiche_subset_rectangle K.val hqN).2.2.2 + linarith + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Area.NicheDecomposition`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Area / Niche Decomposition +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem niche_three_regions_area (K : SpecialCapSpace) : + ∀ E₀ Eᵣ Eₗ : Set Point, + E₀ = capNiche K.val \ ((distinguishedCapSides K.val).1.upperHalfPlane ∪ + (distinguishedCapSides K.val).2.upperHalfPlane) → + Eᵣ = capNiche K.val ∩ (distinguishedCapSides K.val).1.upperHalfPlane → + Eₗ = capNiche K.val ∩ (distinguishedCapSides K.val).2.upperHalfPlane → + MeasurableSet E₀ ∧ MeasurableSet Eᵣ ∧ MeasurableSet Eₗ ∧ + MeasureTheory.volume E₀ < ⊤ ∧ MeasureTheory.volume Eᵣ < ⊤ ∧ + MeasureTheory.volume Eₗ < ⊤ ∧ + Disjoint E₀ Eᵣ ∧ Disjoint E₀ Eₗ ∧ Disjoint Eᵣ Eₗ ∧ + E₀ ∪ Eᵣ ∪ Eₗ = capNiche K.val ∧ + ClassicalResults.area (capNiche K.val) = + ClassicalResults.area E₀ + ClassicalResults.area Eᵣ + ClassicalResults.area Eₗ := by + intro E₀ Eᵣ Eₗ h₀ hᵣ hₗ + set N := capNiche K.val with hN + set HR := (distinguishedCapSides K.val).1.upperHalfPlane with hHR + set HL := (distinguishedCapSides K.val).2.upperHalfPlane with hHL + subst h₀ hᵣ hₗ + -- Borel measurability: the niche is Borel and both tail half-planes are closed. + have hNmeas : MeasurableSet N := measurableSet_capNiche K.val + have hRmeas : MeasurableSet HR := (isClosed_normalHalfPlane _ _ true).measurableSet + have hLmeas : MeasurableSet HL := (isClosed_normalHalfPlane _ _ true).measurableSet + have hm₀ : MeasurableSet (N \ (HR ∪ HL)) := hNmeas.diff (hRmeas.union hLmeas) + have hmᵣ : MeasurableSet (N ∩ HR) := hNmeas.inter hRmeas + have hmₗ : MeasurableSet (N ∩ HL) := hNmeas.inter hLmeas + -- Finite area: the uniform niche bounds confine the niche to a bounded rectangle. + have hNfin : MeasureTheory.volume N < ⊤ := (niche_uniform_bounds.1 _ K.val).2.2.1 + have hf₀ : MeasureTheory.volume (N \ (HR ∪ HL)) < ⊤ := + lt_of_le_of_lt (MeasureTheory.measure_mono Set.sdiff_subset) hNfin + have hfᵣ : MeasureTheory.volume (N ∩ HR) < ⊤ := + lt_of_le_of_lt (MeasureTheory.measure_mono Set.inter_subset_left) hNfin + have hfₗ : MeasureTheory.volume (N ∩ HL) < ⊤ := + lt_of_le_of_lt (MeasureTheory.measure_mono Set.inter_subset_left) hNfin + -- Disjointness: the outer region avoids both tails by definition, and the two tails + -- meet the niche in disjoint sets by the strengthened separation theorem. + have hd₀ᵣ : Disjoint (N \ (HR ∪ HL)) (N ∩ HR) := + Set.disjoint_left.mpr fun _ hx hy ↦ hx.2 (Or.inl hy.2) + have hd₀ₗ : Disjoint (N \ (HR ∪ HL)) (N ∩ HL) := + Set.disjoint_left.mpr fun _ hx hy ↦ hx.2 (Or.inr hy.2) + have hdᵣₗ : Disjoint (N ∩ HR) (N ∩ HL) := + Set.disjoint_left.mpr fun x hx hy ↦ + Set.eq_empty_iff_forall_notMem.mp (cap_and_niche_tail_separation K).2 x ⟨hx, hy.2⟩ + -- The three regions exhaust the niche by cases on half-plane membership. + have hunion : (N \ (HR ∪ HL)) ∪ (N ∩ HR) ∪ (N ∩ HL) = N := by + rw [Set.union_assoc, ← Set.inter_union_distrib_left, Set.sdiff_union_inter] + refine ⟨hm₀, hmᵣ, hmₗ, hf₀, hfᵣ, hfₗ, hd₀ᵣ, hd₀ₗ, hdᵣₗ, hunion, ?_⟩ + -- Additivity of the extended measures, transferred to real areas by finiteness. + have hvol : MeasureTheory.volume N = MeasureTheory.volume (N \ (HR ∪ HL)) + + MeasureTheory.volume (N ∩ HR) + MeasureTheory.volume (N ∩ HL) := by + rw [← MeasureTheory.measure_union hd₀ᵣ hmᵣ, + ← MeasureTheory.measure_union (hd₀ₗ.union_left hdᵣₗ) hmₗ, hunion] + simp only [ClassicalResults.area] + rw [hvol, ENNReal.toReal_add (ENNReal.add_ne_top.mpr ⟨hf₀.ne, hfᵣ.ne⟩) hfₗ.ne, + ENNReal.toReal_add hf₀.ne hfᵣ.ne] + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Bounds.MonotonicityIntervals`. +* `Bounds.WedgeEndpoints`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! # Monotonicity intervals for the distinguished cap sides + +`cap_tail_monotonicity_intervals` records that on the right interval +`(φ, π/2]` the inner corner has left the distinguished right half-plane, and +that inside that half-plane the inner quadrant is cut out by the single inner +wall `b(t)`; symmetrically on `[0, π/2 - φ)` for the left side. Intersecting +with the fan gives the two wedge forms. +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +private theorem capInnerCorner_right_projection_neg (K : SpecialCapSpace) : + ∀ t ∈ Set.Ioc GerversSofa.φ (Real.pi / 2), + inner ℝ (capInnerCorner K.val t - capInnerCorner K.val GerversSofa.φ) + (normalVector ((GerversSofa.φ : ℝ) : Real.Angle)) < 0 := by + have hpi := Real.pi_pos + have hφ0 : (0 : ℝ) ≤ GerversSofa.φ := GerversSofa.ABφθSpec.existsUnique.choose_spec.1.1 + have hφ4 : GerversSofa.φ ≤ Real.pi / 4 := + le_trans GerversSofa.ABφθSpec.existsUnique.choose_spec.1.2.1 + GerversSofa.ABφθSpec.existsUnique.choose_spec.1.2.2.1 + -- the injectivity condition: a continuously differentiable corner with strict interior signs + obtain ⟨-, hcd, hsign⟩ := K.2.1 + set D : ℝ → Point := derivWithin (capInnerCorner K.val) (Set.Icc 0 (Real.pi / 2)) with hDdef + have hdw : ∀ s ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + HasDerivWithinAt (capInnerCorner K.val) (D s) (Set.Icc (0 : ℝ) (Real.pi / 2)) s := + fun s hs => (hcd.differentiableOn_one s hs).hasDerivWithinAt + have hcont : ContinuousOn (capInnerCorner K.val) (Set.Icc (0 : ℝ) (Real.pi / 2)) := + hcd.continuousOn + have hsub : Set.Icc GerversSofa.φ (Real.pi / 2) ⊆ Set.Icc (0 : ℝ) (Real.pi / 2) := + Set.Icc_subset_Icc hφ0 le_rfl + have hanti : StrictAntiOn + (fun s : ℝ ↦ inner ℝ (capInnerCorner K.val s) + (normalVector ((GerversSofa.φ : ℝ) : Real.Angle))) + (Set.Icc GerversSofa.φ (Real.pi / 2)) := by + refine strictAntiOn_of_hasDerivWithinAt_neg (convex_Icc _ _) + ((hcont.mono hsub).inner continuousOn_const) + (f' := fun s ↦ inner ℝ (D s) (normalVector ((GerversSofa.φ : ℝ) : Real.Angle))) + ?_ ?_ + · intro s hs + rw [interior_Icc] at hs ⊢ + have hsub' : Set.Ioo GerversSofa.φ (Real.pi / 2) ⊆ Set.Icc (0 : ℝ) (Real.pi / 2) := + fun z hz => ⟨hφ0.trans hz.1.le, hz.2.le⟩ + simpa using + ((hdw s (hsub' hs)).mono hsub').inner ℝ + (hasDerivWithinAt_const s _ + (normalVector ((GerversSofa.φ : ℝ) : Real.Angle))) + · intro s hs + rw [interior_Icc] at hs + obtain ⟨hs1, hs2⟩ := hs + obtain ⟨hα, hβ⟩ := hsign s ⟨hφ0.trans_lt hs1, hs2⟩ + rw [inner_normalVector_eq_frame_rotate (D s) s GerversSofa.φ] + have hcos : 0 < Real.cos (s - GerversSofa.φ) := + Real.cos_pos_of_mem_Ioo ⟨by linarith, by linarith⟩ + have hsin : 0 < Real.sin (s - GerversSofa.φ) := + Real.sin_pos_of_pos_of_lt_pi (by linarith) (by linarith) + nlinarith + intro t ht + have h := hanti ⟨le_rfl, le_trans hφ4 (by linarith)⟩ ⟨ht.1.le, ht.2⟩ ht.1 + rw [inner_sub_left] + simpa using h + +private theorem capInnerCorner_left_projection_neg (K : SpecialCapSpace) : + ∀ t ∈ Set.Ico (0 : ℝ) (Real.pi / 2 - GerversSofa.φ), + inner ℝ (capInnerCorner K.val t - + capInnerCorner K.val (Real.pi / 2 - GerversSofa.φ)) + (tangentVector ((Real.pi / 2 - GerversSofa.φ : ℝ) : Real.Angle)) < 0 := by + have hpi := Real.pi_pos + have hφ0 : (0 : ℝ) ≤ GerversSofa.φ := GerversSofa.ABφθSpec.existsUnique.choose_spec.1.1 + have hφ4 : GerversSofa.φ ≤ Real.pi / 4 := + le_trans GerversSofa.ABφθSpec.existsUnique.choose_spec.1.2.1 + GerversSofa.ABφθSpec.existsUnique.choose_spec.1.2.2.1 + -- the injectivity condition: a continuously differentiable corner with strict interior signs + obtain ⟨-, hcd, hsign⟩ := K.2.1 + set D : ℝ → Point := derivWithin (capInnerCorner K.val) (Set.Icc 0 (Real.pi / 2)) with hDdef + have hdw : ∀ s ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + HasDerivWithinAt (capInnerCorner K.val) (D s) (Set.Icc (0 : ℝ) (Real.pi / 2)) s := + fun s hs => (hcd.differentiableOn_one s hs).hasDerivWithinAt + have hcont : ContinuousOn (capInnerCorner K.val) (Set.Icc (0 : ℝ) (Real.pi / 2)) := + hcd.continuousOn + have hsub : Set.Icc (0 : ℝ) (Real.pi / 2 - GerversSofa.φ) ⊆ + Set.Icc (0 : ℝ) (Real.pi / 2) := Set.Icc_subset_Icc le_rfl (by linarith) + have hmono : StrictMonoOn + (fun s : ℝ ↦ inner ℝ (capInnerCorner K.val s) + (tangentVector ((Real.pi / 2 - GerversSofa.φ : ℝ) : Real.Angle))) + (Set.Icc (0 : ℝ) (Real.pi / 2 - GerversSofa.φ)) := by + refine strictMonoOn_of_hasDerivWithinAt_pos (convex_Icc _ _) + ((hcont.mono hsub).inner continuousOn_const) + (f' := fun s ↦ inner ℝ (D s) + (tangentVector ((Real.pi / 2 - GerversSofa.φ : ℝ) : Real.Angle))) + ?_ ?_ + · intro s hs + rw [interior_Icc] at hs ⊢ + have hsub' : Set.Ioo (0 : ℝ) (Real.pi / 2 - GerversSofa.φ) ⊆ + Set.Icc (0 : ℝ) (Real.pi / 2) := fun z hz => ⟨hz.1.le, by linarith [hz.2]⟩ + simpa using + ((hdw s (hsub' hs)).mono hsub').inner ℝ + (hasDerivWithinAt_const s _ + (tangentVector ((Real.pi / 2 - GerversSofa.φ : ℝ) : Real.Angle))) + · intro s hs + rw [interior_Icc] at hs + obtain ⟨hs1, hs2⟩ := hs + obtain ⟨hα, hβ⟩ := hsign s ⟨hs1, by linarith⟩ + rw [inner_tangentVector_eq_frame_rotate (D s) s (Real.pi / 2 - GerversSofa.φ)] + have hcos : 0 < Real.cos (s - (Real.pi / 2 - GerversSofa.φ)) := + Real.cos_pos_of_mem_Ioo ⟨by linarith, by linarith⟩ + have hsin : Real.sin (s - (Real.pi / 2 - GerversSofa.φ)) < 0 := + Real.sin_neg_of_neg_of_neg_pi_lt (by linarith) (by linarith) + nlinarith + intro t ht + have h := hmono ⟨ht.1, ht.2.le⟩ ⟨by linarith, le_rfl⟩ ht.2 + rw [inner_sub_left] + simpa using h + +theorem cap_tail_monotonicity_intervals (K : SpecialCapSpace) : + (∀ t ∈ Set.Ioc paperGerverConstants.2.1 (Real.pi / 2), + capInnerCorner K.val t ∉ (distinguishedCapSides K.val).1.upperHalfPlane ∧ + (distinguishedCapSides K.val).1.upperHalfPlane ∩ innerQuadrant K.val.val t = + (distinguishedCapSides K.val).1.upperHalfPlane \ + (innerWallUpperHalfPlanes K.val t).1) ∧ + (∀ t ∈ Set.Ico (0 : ℝ) paperGerverConstants.2.2, + capInnerCorner K.val t ∉ (distinguishedCapSides K.val).2.upperHalfPlane ∧ + (distinguishedCapSides K.val).2.upperHalfPlane ∩ innerQuadrant K.val.val t = + (distinguishedCapSides K.val).2.upperHalfPlane \ + (innerWallUpperHalfPlanes K.val t).2) ∧ + (∀ t ∈ Set.Ioc paperGerverConstants.2.1 (Real.pi / 2), + t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2) → + (distinguishedCapSides K.val).1.upperHalfPlane ∩ capWedge K.val t = + ((distinguishedCapSides K.val).1.upperHalfPlane ∩ {p : Point | 0 ≤ p 1}) \ + (innerWallUpperHalfPlanes K.val t).1) ∧ + (∀ t ∈ Set.Ico (0 : ℝ) paperGerverConstants.2.2, + t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2) → + (distinguishedCapSides K.val).2.upperHalfPlane ∩ capWedge K.val t = + ((distinguishedCapSides K.val).2.upperHalfPlane ∩ {p : Point | 0 ≤ p 1}) \ + (innerWallUpperHalfPlanes K.val t).2) := by + have hpi := Real.pi_pos + have hφ0 : (0 : ℝ) ≤ GerversSofa.φ := GerversSofa.ABφθSpec.existsUnique.choose_spec.1.1 + have hφ4 : GerversSofa.φ ≤ Real.pi / 4 := + le_trans GerversSofa.ABφθSpec.existsUnique.choose_spec.1.2.1 + GerversSofa.ABφθSpec.existsUnique.choose_spec.1.2.2.1 + -- frame coordinates of the inner corner path + have hxu := inner_capInnerCorner_normalVector K.val + have hxv := inner_capInnerCorner_tangentVector K.val + -- membership descriptions relative to the moving corner + have hHb : ∀ (t : ℝ) (p : Point), p ∈ (innerWallUpperHalfPlanes K.val t).1 ↔ + 0 ≤ inner ℝ (p - capInnerCorner K.val t) (normalVector (t : Real.Angle)) := by + intro t p + rw [inner_sub_left, hxu] + change (supportValue (K.val.val : Set Point) (t : Real.Angle) - 1 ≤ + inner ℝ p (normalVector (t : Real.Angle))) ↔ _ + constructor <;> intro hp <;> linarith + have hHd : ∀ (t : ℝ) (p : Point), p ∈ (innerWallUpperHalfPlanes K.val t).2 ↔ + 0 ≤ inner ℝ (p - capInnerCorner K.val t) (tangentVector (t : Real.Angle)) := by + intro t p + rw [inner_sub_left, hxv] + change (supportValue (K.val.val : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1 ≤ + inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle))) ↔ _ + rw [Real.Angle.coe_add, normalVector_add_pi_div_two] + constructor <;> intro hp <;> linarith + have hQ : ∀ (t : ℝ) (p : Point), p ∈ innerQuadrant (K.val.val : Set Point) t ↔ + inner ℝ (p - capInnerCorner K.val t) (normalVector (t : Real.Angle)) < 0 ∧ + inner ℝ (p - capInnerCorner K.val t) (tangentVector (t : Real.Angle)) < 0 := by + intro t p + rw [inner_sub_left, inner_sub_left, hxu, hxv] + change (inner ℝ p (normalVector (t : Real.Angle)) < + supportValue (K.val.val : Set Point) (t : Real.Angle) - 1 ∧ + inner ℝ p (normalVector ((t + Real.pi / 2 : ℝ) : Real.Angle)) < + supportValue (K.val.val : Set Point) ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) ↔ _ + rw [Real.Angle.coe_add, normalVector_add_pi_div_two] + constructor <;> rintro ⟨h1, h2⟩ <;> exact ⟨by linarith, by linarith⟩ + have hfan : capFan (Real.pi / 2) = {p : Point | 0 ≤ p 1} := by + ext p + have hval : inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = p 1 := by + simp [normalVector, frame, PiLp.inner_apply, Fin.sum_univ_two] + constructor + · intro hp + have := hp.2 + change 0 ≤ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at this + rw [hval] at this + exact this + · intro hp + have hp' : (0 : ℝ) ≤ p 1 := hp + exact ⟨by change 0 ≤ inner ℝ p _; rw [hval]; exact hp', + by change 0 ≤ inner ℝ p _; rw [hval]; exact hp'⟩ + have hwedge : ∀ t : ℝ, capWedge K.val t = + {p : Point | 0 ≤ p 1} ∩ innerQuadrant (K.val.val : Set Point) t := by + intro t + have hiq : (rotatingHallwayParts (K.val.val : Set Point) (t : Real.Angle)).innerQuadrant = + innerQuadrant (K.val.val : Set Point) t := by + rw [(rotatingHallwayParts_formulas (K.val.val : Set Point) + (t : Real.Angle)).2.2.2.2.2.2.2.2, innerQuadrant, ← Real.Angle.coe_add] + change capFan (Real.pi / 2) ∩ + (rotatingHallwayParts (K.val.val : Set Point) (t : Real.Angle)).innerQuadrant = _ + rw [hfan, hiq] + -- monotone comparison of the corner path against the two distinguished frames + have hkeyR := capInnerCorner_right_projection_neg K + have hkeyL := capInnerCorner_left_projection_neg K + -- the right-hand quadrant identity, at all quadrant times + have partR : ∀ t ∈ Set.Ioc GerversSofa.φ (Real.pi / 2), + capInnerCorner K.val t ∉ (distinguishedCapSides K.val).1.upperHalfPlane ∧ + (distinguishedCapSides K.val).1.upperHalfPlane ∩ innerQuadrant K.val.val t = + (distinguishedCapSides K.val).1.upperHalfPlane \ + (innerWallUpperHalfPlanes K.val t).1 := by + intro t ht + have hR := hkeyR t ht + have hside : (distinguishedCapSides K.val).1.upperHalfPlane = + (innerWallUpperHalfPlanes K.val GerversSofa.φ).1 := rfl + have hcos : 0 ≤ Real.cos (t - GerversSofa.φ) := + Real.cos_nonneg_of_mem_Icc ⟨by linarith [ht.1], by linarith [ht.2]⟩ + have hsin : 0 ≤ Real.sin (t - GerversSofa.φ) := + Real.sin_nonneg_of_nonneg_of_le_pi (by linarith [ht.1]) (by linarith [ht.2]) + rw [hside] + constructor + · intro hmem + exact absurd ((hHb _ _).mp hmem) (not_le.mpr hR) + refine Set.Subset.antisymm ?_ ?_ + · rintro p ⟨hA, hQp⟩ + refine ⟨hA, ?_⟩ + rw [hHb t p] + exact not_le.mpr ((hQ t p).mp hQp).1 + · rintro p ⟨hA, hH⟩ + refine ⟨hA, ?_⟩ + rw [hQ t p] + have ha : inner ℝ (p - capInnerCorner K.val t) (normalVector (t : Real.Angle)) < 0 := + not_le.mp fun h => hH ((hHb t p).mpr h) + refine ⟨ha, ?_⟩ + by_contra hb + rw [not_lt] at hb + have hAmem : 0 ≤ inner ℝ (p - capInnerCorner K.val GerversSofa.φ) + (normalVector ((GerversSofa.φ : ℝ) : Real.Angle)) := (hHb _ p).mp hA + have hsplit : inner ℝ (p - capInnerCorner K.val GerversSofa.φ) + (normalVector ((GerversSofa.φ : ℝ) : Real.Angle)) = + inner ℝ (p - capInnerCorner K.val t) + (normalVector ((GerversSofa.φ : ℝ) : Real.Angle)) + + inner ℝ (capInnerCorner K.val t - capInnerCorner K.val GerversSofa.φ) + (normalVector ((GerversSofa.φ : ℝ) : Real.Angle)) := by + rw [← inner_add_left] + congr 1 + abel + have hle : inner ℝ (p - capInnerCorner K.val t) + (normalVector ((GerversSofa.φ : ℝ) : Real.Angle)) ≤ 0 := by + rw [inner_normalVector_eq_frame_rotate (p - capInnerCorner K.val t) t GerversSofa.φ] + linarith [mul_nonneg hb hsin, mul_nonneg (neg_nonneg.mpr ha.le) hcos] + linarith + -- the left-hand quadrant identity, at all quadrant times + have partL : ∀ t ∈ Set.Ico (0 : ℝ) (Real.pi / 2 - GerversSofa.φ), + capInnerCorner K.val t ∉ (distinguishedCapSides K.val).2.upperHalfPlane ∧ + (distinguishedCapSides K.val).2.upperHalfPlane ∩ innerQuadrant K.val.val t = + (distinguishedCapSides K.val).2.upperHalfPlane \ + (innerWallUpperHalfPlanes K.val t).2 := by + intro t ht + have hL := hkeyL t ht + have hside : (distinguishedCapSides K.val).2.upperHalfPlane = + (innerWallUpperHalfPlanes K.val (Real.pi / 2 - GerversSofa.φ)).2 := rfl + have hcos : 0 ≤ Real.cos (t - (Real.pi / 2 - GerversSofa.φ)) := + Real.cos_nonneg_of_mem_Icc ⟨by linarith [ht.1], by linarith [ht.2]⟩ + have hsin : Real.sin (t - (Real.pi / 2 - GerversSofa.φ)) ≤ 0 := by + have hpos : 0 ≤ Real.sin (Real.pi / 2 - GerversSofa.φ - t) := + Real.sin_nonneg_of_nonneg_of_le_pi (by linarith [ht.2]) (by linarith [ht.1]) + rw [show t - (Real.pi / 2 - GerversSofa.φ) = + -(Real.pi / 2 - GerversSofa.φ - t) by ring, Real.sin_neg] + linarith + rw [hside] + constructor + · intro hmem + exact absurd ((hHd _ _).mp hmem) (not_le.mpr hL) + refine Set.Subset.antisymm ?_ ?_ + · rintro p ⟨hA, hQp⟩ + refine ⟨hA, ?_⟩ + rw [hHd t p] + exact not_le.mpr ((hQ t p).mp hQp).2 + · rintro p ⟨hA, hH⟩ + refine ⟨hA, ?_⟩ + rw [hQ t p] + have hb : inner ℝ (p - capInnerCorner K.val t) (tangentVector (t : Real.Angle)) < 0 := + not_le.mp fun h => hH ((hHd t p).mpr h) + refine ⟨?_, hb⟩ + by_contra ha + rw [not_lt] at ha + have hAmem : 0 ≤ inner ℝ + (p - capInnerCorner K.val (Real.pi / 2 - GerversSofa.φ)) + (tangentVector ((Real.pi / 2 - GerversSofa.φ : ℝ) : Real.Angle)) := (hHd _ p).mp hA + have hsplit : inner ℝ (p - capInnerCorner K.val (Real.pi / 2 - GerversSofa.φ)) + (tangentVector ((Real.pi / 2 - GerversSofa.φ : ℝ) : Real.Angle)) = + inner ℝ (p - capInnerCorner K.val t) + (tangentVector ((Real.pi / 2 - GerversSofa.φ : ℝ) : Real.Angle)) + + inner ℝ (capInnerCorner K.val t - + capInnerCorner K.val (Real.pi / 2 - GerversSofa.φ)) + (tangentVector ((Real.pi / 2 - GerversSofa.φ : ℝ) : Real.Angle)) := by + rw [← inner_add_left] + congr 1 + abel + have hle : inner ℝ (p - capInnerCorner K.val t) + (tangentVector ((Real.pi / 2 - GerversSofa.φ : ℝ) : Real.Angle)) ≤ 0 := by + rw [inner_tangentVector_eq_frame_rotate (p - capInnerCorner K.val t) t + (Real.pi / 2 - GerversSofa.φ)] + linarith [mul_nonneg ha (neg_nonneg.mpr hsin), + mul_nonneg (neg_nonneg.mpr hb.le) hcos] + linarith + -- the wedge identities are the quadrant identities intersected with the fan + refine ⟨partR, partL, ?_, ?_⟩ + · intro t ht _ + rw [hwedge t, Set.inter_left_comm, (partR t ht).2] + ext p + simp only [Set.mem_inter_iff, Set.mem_sdiff, Set.mem_ofPred_eq] + tauto + · intro t ht _ + rw [hwedge t, Set.inter_left_comm, (partL t ht).2] + ext p + simp only [Set.mem_inter_iff, Set.mem_sdiff, Set.mem_ofPred_eq] + tauto + +/-- On any subinterval of `[0, π/2]` the inner corner of a special cap has strictly decreasing +horizontal coordinate: the injectivity condition makes its horizontal derivative negative. -/ +theorem strictAntiOn_capInnerCorner_fst (K : SpecialCapSpace) {a b : ℝ} + (ha : 0 ≤ a) (hb : b ≤ Real.pi / 2) : + StrictAntiOn (fun t ↦ capInnerCorner K.val t 0) (Set.Icc a b) := by + obtain ⟨-, hcd, hsign⟩ := K.property.1 + set Dv : ℝ → Point := derivWithin (capInnerCorner K.val) (Set.Icc 0 (Real.pi / 2)) + have hIccsub : Set.Icc a b ⊆ Set.Icc (0 : ℝ) (Real.pi / 2) := fun t ht ↦ + ⟨le_trans ha ht.1, le_trans ht.2 hb⟩ + have hIoosub : Set.Ioo a b ⊆ Set.Icc (0 : ℝ) (Real.pi / 2) := fun t ht ↦ + ⟨le_trans ha ht.1.le, le_trans ht.2.le hb⟩ + have hdw : ∀ s ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + HasDerivWithinAt (capInnerCorner K.val) (Dv s) (Set.Icc (0 : ℝ) (Real.pi / 2)) s := + fun s hs ↦ (hcd.differentiableOn_one s hs).hasDerivWithinAt + have hcont : ContinuousOn (capInnerCorner K.val) (Set.Icc (0 : ℝ) (Real.pi / 2)) := + hcd.continuousOn + have hinner0 : ∀ p : Point, inner ℝ p (normalVector ((0 : ℝ) : Real.Angle)) = p 0 := by + intro p + rw [inner_normalVector_real] + simp + have hmono0 : StrictAntiOn + (fun t ↦ inner ℝ (capInnerCorner K.val t) (normalVector ((0 : ℝ) : Real.Angle))) + (Set.Icc a b) := by + refine strictAntiOn_of_hasDerivWithinAt_neg (convex_Icc _ _) + ((hcont.mono hIccsub).inner continuousOn_const) + (f' := fun s ↦ inner ℝ (Dv s) (normalVector ((0 : ℝ) : Real.Angle))) ?_ ?_ + · intro s hs + rw [interior_Icc] at hs ⊢ + simpa using ((hdw s (hIoosub hs)).mono hIoosub).inner ℝ + (hasDerivWithinAt_const s _ (normalVector ((0 : ℝ) : Real.Angle))) + · intro s hs + rw [interior_Icc] at hs + obtain ⟨hα, hβ⟩ := hsign s ⟨lt_of_le_of_lt ha hs.1, lt_of_lt_of_le hs.2 hb⟩ + rw [inner_normalVector_eq_frame_rotate (Dv s) s 0] + have hcos : 0 < Real.cos (s - 0) := by + rw [sub_zero] + exact Real.cos_pos_of_mem_Ioo ⟨by linarith only [Real.pi_pos, hs.1, ha], + by linarith only [hs.2, hb]⟩ + have hsin : 0 < Real.sin (s - 0) := by + rw [sub_zero] + exact Real.sin_pos_of_pos_of_lt_pi (lt_of_le_of_lt ha hs.1) + (by linarith only [hs.2, hb, Real.pi_pos]) + have h1 : inner ℝ (Dv s) (normalVector (s : Real.Angle)) * Real.cos (s - 0) < 0 := + mul_neg_of_neg_of_pos hα hcos + have h2 : 0 < inner ℝ (Dv s) (tangentVector (s : Real.Angle)) * Real.sin (s - 0) := + mul_pos hβ hsin + linarith only [h1, h2] + intro u hu w hw huw + simpa only [hinner0] using hmono0 hu hw huw + +end MovingSofa + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Bounds / Wedge Endpoints +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem wedgeGaps_positive_lower_bound {ω : ℝ} (K : CapSpace ω) + (t : ℝ) (ht : t ∈ Set.Ioo 0 ω) : + (1 - Real.sin t) / Real.cos t ≤ (wedgeGaps K t).1 ∧ + 0 < (1 - Real.sin t) / Real.cos t ∧ + (1 - Real.sin (ω - t)) / Real.cos (ω - t) ≤ (wedgeGaps K t).2 ∧ + 0 < (1 - Real.sin (ω - t)) / Real.cos (ω - t) := by + have hcost : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, ht.1], ht.2.trans_le K.property.2.1⟩ + have hsint_lt : Real.sin t < 1 := by + nlinarith only [Real.sin_sq_add_cos_sq t, sq_pos_of_pos hcost] + have hcosδ : 0 < Real.cos (ω - t) := Real.cos_pos_of_mem_Ioo + ⟨by linarith [sub_pos.mpr ht.2, Real.pi_pos], + by linarith [ht.1, K.property.2.1]⟩ + have hsinδ_lt : Real.sin (ω - t) < 1 := by + nlinarith only [Real.sin_sq_add_cos_sq (ω - t), sq_pos_of_pos hcosδ] + have hbounds := K.supportValue_upper_bounds ht + have hC := (edgeVertices_fst_mem K.val + ((ω + Real.pi / 2 : ℝ) : Real.Angle)).2 + change inner ℝ (capVertices K ω).2.1 + (normalVector ((ω + Real.pi / 2 : ℝ) : Real.Angle)) = + supportValue K.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) at hC + simp only [normalVector, frame, Real.Angle.coe_add, Real.Angle.cos_add_pi_div_two, + Real.Angle.sin_coe, Real.Angle.sin_add_pi_div_two, Real.Angle.cos_coe] at hC + change inner ℝ (capVertices K ω).2.1 (tangentVector (ω : Real.Angle)) = + supportValue K.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) at hC + have hgap₁ := wedgeGaps_fst_eq_supportValue K t + have hgap₂ : (wedgeGaps K t).2 = + supportValue K.val ((ω + Real.pi / 2 : ℝ) : Real.Angle) - + (supportValue K.val ((t + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos (ω - t) := by + simp only [wedgeGaps, wedgeEndpoints, inner_sub_left, + real_inner_smul_left, hC] + rw [inner_tangentVector_self] + ring + rw [hgap₁, hgap₂] + refine ⟨?_, div_pos (sub_pos.mpr hsint_lt) hcost, ?_, + div_pos (sub_pos.mpr hsinδ_lt) hcosδ⟩ + · apply (div_le_iff₀ hcost).2 + rw [sub_mul, div_mul_cancel₀ _ hcost.ne'] + nlinarith [hbounds.1] + · apply (div_le_iff₀ hcosδ).2 + rw [sub_mul, div_mul_cancel₀ _ hcosδ.ne'] + nlinarith [hbounds.2] + +/-- Base points between the horizontal extrema of a right-angle cap lie in the cap. -/ +private theorem smul_normalVector_zero_mem_of_rightAngleCap (K : RightAngleCapSpace) {x : ℝ} + (hlo : -supportValue (K.val : Set Point) ((Real.pi : ℝ) : Real.Angle) ≤ x) + (hhi : x ≤ supportValue (K.val : Set Point) ((0 : ℝ) : Real.Angle)) : + x • normalVector (0 : Real.Angle) ∈ (K.val : Set Point) := by + obtain ⟨A, hA, hAeq⟩ := exists_mem_inner_eq_supportValue K.val ((0 : ℝ) : Real.Angle) + obtain ⟨C, hC, hCeq⟩ := exists_mem_inner_eq_supportValue K.val ((Real.pi : ℝ) : Real.Angle) + rw [inner_normalVector_zero] at hAeq + rw [inner_normalVector_real, Real.cos_pi, Real.sin_pi] at hCeq + have hzero : inner ℝ (x • normalVector (0 : Real.Angle)) + (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) = 0 := by + rw [inner_smul_normalVector_zero, Real.cos_pi_div_two, mul_zero] + refine K.mem_of_mem_capFan_of_le_supportValue ⟨le_of_eq hzero.symm, le_of_eq hzero.symm⟩ ?_ + intro t ht + have htI : 0 ≤ t ∧ t ≤ Real.pi := by + rcases ht with h | h + · exact ⟨h.1, by linarith only [h.2, Real.pi_pos]⟩ + · exact ⟨by linarith only [h.1, Real.pi_pos], by linarith only [h.2]⟩ + have hsin : 0 ≤ Real.sin t := Real.sin_nonneg_of_nonneg_of_le_pi htI.1 htI.2 + rw [inner_smul_normalVector_zero] + rcases le_or_gt 0 (Real.cos t) with hcos | hcos + · have h := inner_le_supportValue K.val hA (t : Real.Angle) + rw [inner_normalVector_real] at h + have hy := (K.mem_horizontalStrip hA).1 + nlinarith only [h, hAeq, hhi, hcos, mul_nonneg hsin hy] + · have h := inner_le_supportValue K.val hC (t : Real.Angle) + rw [inner_normalVector_real] at h + have hy := (K.mem_horizontalStrip hC).1 + nlinarith only [h, hCeq, hlo, hcos, mul_nonneg hsin hy] + +/-- The bottom right cap vertex is the horizontal maximum on the base line. -/ +private theorem capVertices_zero_snd_eq (K : RightAngleCapSpace) : + (capVertices K 0).1.2 = + supportValue (K.val : Set Point) ((0 : ℝ) : Real.Angle) • + normalVector (0 : Real.Angle) := by + set R := supportValue (K.val : Set Point) ((0 : ℝ) : Real.Angle) with hRdef + have hS : -supportValue (K.val : Set Point) ((Real.pi : ℝ) : Real.Angle) ≤ R := by + obtain ⟨p, hp⟩ := K.val.nonempty + have h0 := inner_le_supportValue K.val hp ((0 : ℝ) : Real.Angle) + have hpi := inner_le_supportValue K.val hp ((Real.pi : ℝ) : Real.Angle) + rw [inner_normalVector_zero] at h0 + rw [inner_normalVector_real, Real.cos_pi, Real.sin_pi] at hpi + rw [hRdef] + linarith + have hmem : R • normalVector (0 : Real.Angle) ∈ (K.val : Set Point) := + smul_normalVector_zero_mem_of_rightAngleCap K hS le_rfl + have hedge : R • normalVector (0 : Real.Angle) ∈ + exposedEdge K.val ((0 : ℝ) : Real.Angle) := by + refine ⟨hmem, ?_⟩ + change inner ℝ (R • normalVector (0 : Real.Angle)) + (normalVector ((0 : ℝ) : Real.Angle)) = _ + rw [inner_smul_normalVector_zero, Real.cos_zero, mul_one] + change (edgeVertices K.val ((0 : ℝ) : Real.Angle)).2 = _ + refine edgeVertices_snd_eq_of_tangent_isLeast K.val ((0 : ℝ) : Real.Angle) hedge ?_ + intro q hq + have hq1 : 0 ≤ q 1 := (K.mem_horizontalStrip hq.1).1 + have hp1 : inner ℝ (R • normalVector (0 : Real.Angle)) + (tangentVector ((0 : ℝ) : Real.Angle)) = 0 := by + rw [real_inner_smul_left, show (0 : Real.Angle) = ((0 : ℝ) : Real.Angle) from rfl, + inner_normalVector_tangentVector, mul_zero] + rw [hp1, inner_tangentVector_zero] + exact hq1 + +/-- The bottom left cap vertex is the horizontal minimum on the base line. -/ +private theorem capVertices_pi_div_two_fst_eq (K : RightAngleCapSpace) : + (capVertices K (Real.pi / 2)).2.1 = + (-supportValue (K.val : Set Point) ((Real.pi : ℝ) : Real.Angle)) • + normalVector (0 : Real.Angle) := by + set S := supportValue (K.val : Set Point) ((Real.pi : ℝ) : Real.Angle) with hSdef + have hR : -S ≤ supportValue (K.val : Set Point) ((0 : ℝ) : Real.Angle) := by + obtain ⟨p, hp⟩ := K.val.nonempty + have h0 := inner_le_supportValue K.val hp ((0 : ℝ) : Real.Angle) + have hpi := inner_le_supportValue K.val hp ((Real.pi : ℝ) : Real.Angle) + rw [inner_normalVector_zero] at h0 + rw [inner_normalVector_real, Real.cos_pi, Real.sin_pi] at hpi + rw [hSdef] + linarith + have hmem : (-S) • normalVector (0 : Real.Angle) ∈ (K.val : Set Point) := + smul_normalVector_zero_mem_of_rightAngleCap K le_rfl hR + have hang : ((Real.pi / 2 + Real.pi / 2 : ℝ) : Real.Angle) = + ((Real.pi : ℝ) : Real.Angle) := by + congr 1 + ring + have hedge : (-S) • normalVector (0 : Real.Angle) ∈ + exposedEdge K.val ((Real.pi : ℝ) : Real.Angle) := by + refine ⟨hmem, ?_⟩ + change inner ℝ ((-S) • normalVector (0 : Real.Angle)) + (normalVector ((Real.pi : ℝ) : Real.Angle)) = _ + rw [inner_smul_normalVector_zero, Real.cos_pi] + ring + change (edgeVertices K.val ((Real.pi / 2 + Real.pi / 2 : ℝ) : Real.Angle)).1 = _ + rw [hang] + refine edgeVertices_fst_eq_of_tangent_isGreatest K.val ((Real.pi : ℝ) : Real.Angle) hedge ?_ + intro q hq + have hq1 : 0 ≤ q 1 := (K.mem_horizontalStrip hq.1).1 + have hp1 : inner ℝ ((-S) • normalVector (0 : Real.Angle)) + (tangentVector ((Real.pi : ℝ) : Real.Angle)) = 0 := by + rw [real_inner_smul_left, inner_tangentVector_pi] + simp [normalVector, frame] + rw [hp1, inner_tangentVector_pi] + linarith + +/-- Horizontal coordinates strictly inside the cap width give interior bottom-edge points. -/ +private theorem smul_normalVector_zero_mem_bottomEdge (K : RightAngleCapSpace) {x : ℝ} + (hlo : -supportValue (K.val : Set Point) ((Real.pi : ℝ) : Real.Angle) < x) + (hhi : x < supportValue (K.val : Set Point) ((0 : ℝ) : Real.Angle)) : + x • normalVector (0 : Real.Angle) ∈ + exposedEdge K.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) \ + {(capVertices K 0).1.2, (capVertices K (Real.pi / 2)).2.1} := by + have hinj : ∀ a b : ℝ, a • normalVector (0 : Real.Angle) = + b • normalVector (0 : Real.Angle) → a = b := by + intro a b h + have h' := congrArg (fun p : Point ↦ inner ℝ p (normalVector ((0 : ℝ) : Real.Angle))) h + simpa only [inner_smul_normalVector_zero, Real.cos_zero, mul_one] using h' + have hcos : Real.cos (3 * Real.pi / 2) = 0 := by + rw [show (3 * Real.pi / 2 : ℝ) = Real.pi + Real.pi / 2 by ring, Real.cos_add, + Real.cos_pi_div_two, Real.sin_pi_div_two, Real.cos_pi, Real.sin_pi] + ring + refine ⟨⟨smul_normalVector_zero_mem_of_rightAngleCap K hlo.le hhi.le, ?_⟩, ?_⟩ + · change inner ℝ (x • normalVector (0 : Real.Angle)) + (normalVector ((3 * Real.pi / 2 : ℝ) : Real.Angle)) = _ + rw [inner_smul_normalVector_zero, hcos, mul_zero, K.property.2.2.2.2.2.1] + · rintro (h | h) + · rw [capVertices_zero_snd_eq K] at h + exact absurd (hinj _ _ h) (ne_of_lt hhi) + · rw [capVertices_pi_div_two_fst_eq K] at h + exact absurd (hinj _ _ h) (ne_of_gt hlo) + +theorem specialCap_wedgeEndpoints_in_bottomEdge (K : SpecialCapSpace) : + (distinguishedCapSides K.val).1.fanPoint ∈ + exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) \ + {(capVertices K.val 0).1.2, (capVertices K.val (Real.pi / 2)).2.1} ∧ + (distinguishedCapSides K.val).2.fanPoint ∈ + exposedEdge K.val.val ((3 * Real.pi / 2 : ℝ) : Real.Angle) \ + {(capVertices K.val 0).1.2, (capVertices K.val (Real.pi / 2)).2.1} := by + obtain ⟨hrIoo, hlIoo, hrl⟩ := paperGerverConstants_snd_mem_Ioo + -- the certified parameter bound `0 < varphi ≤ 1/25` and its trigonometric consequences + have hphi : paperGerverConstants.2.1 ≤ (40 : ℝ) / 1000 := by + obtain ⟨hall, q, hqbox, hqeq, -⟩ := gerver_parameter_identification + exact (hall q hqbox hqeq).2.2.2.2.2.2.2.1 + have hcosr : (1249 : ℝ) / 1250 ≤ Real.cos paperGerverConstants.2.1 := by + have h := Real.one_sub_sq_div_two_le_cos (x := paperGerverConstants.2.1) + nlinarith only [h, hphi, hrIoo.1] + have hcpos : (0 : ℝ) < Real.cos paperGerverConstants.2.1 := by linarith + have hsinr : (0 : ℝ) ≤ Real.sin paperGerverConstants.2.1 := + (Real.sin_pos_of_pos_of_lt_pi hrIoo.1 (by linarith [hrIoo.2, Real.pi_pos])).le + have hsinl : (0 : ℝ) ≤ Real.sin paperGerverConstants.2.2 := + (Real.sin_pos_of_pos_of_lt_pi hlIoo.1 (by linarith [hlIoo.2, Real.pi_pos])).le + have hcosl : (0 : ℝ) ≤ Real.cos paperGerverConstants.2.2 := + (Real.cos_pos_of_mem_Ioo ⟨by linarith [hlIoo.1, Real.pi_pos], hlIoo.2⟩).le + have hcosdiff : Real.pi / 2 - paperGerverConstants.2.2 = paperGerverConstants.2.1 := by + linarith + have hsinleq : Real.sin paperGerverConstants.2.2 = Real.cos paperGerverConstants.2.1 := by + rw [show paperGerverConstants.2.2 = Real.pi / 2 - paperGerverConstants.2.1 by linarith, + Real.sin_pi_div_two_sub] + have hinvc : (1 : ℝ) / Real.cos paperGerverConstants.2.1 ≤ 1250 / 1249 := by + rw [div_le_div_iff₀ hcpos (by norm_num)] + linarith + -- the cap is wide, by rectangle area monotonicity and the special-cap area threshold + have hwidth : (11 : ℝ) / 5 ≤ + supportValue (K.val.val : Set Point) ((0 : ℝ) : Real.Angle) + + supportValue (K.val.val : Set Point) ((Real.pi : ℝ) : Real.Angle) := by + have h := K.property.2.trans K.val.area_le_horizontalWidth + rwa [supportValue_zero_eq_horizontalMax, supportValue_pi_eq_neg_horizontalMin, + ← sub_eq_add_neg] + -- support lower bounds at the two distinguished angles + have hlowR : Real.cos paperGerverConstants.2.1 * + supportValue (K.val.val : Set Point) ((0 : ℝ) : Real.Angle) ≤ + supportValue (K.val.val : Set Point) + ((paperGerverConstants.2.1 : ℝ) : Real.Angle) := by + have h := (CapSpace.horizontal_le_supportValue K.val hsinr hcpos.le).1 + rwa [← supportValue_zero_eq_horizontalMax] at h + have hlowL : Real.cos paperGerverConstants.2.1 * + supportValue (K.val.val : Set Point) ((Real.pi : ℝ) : Real.Angle) ≤ + supportValue (K.val.val : Set Point) + ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle) := by + have h := (CapSpace.horizontal_le_supportValue K.val hsinl hcosl).2 + rw [supportValue_pi_eq_neg_horizontalMin, ← hsinleq, mul_neg, ← neg_mul] + exact h + -- the two positive wedge gaps + have hgap₁ := wedgeGaps_positive_lower_bound K.val paperGerverConstants.2.1 hrIoo + have hgap₂ := wedgeGaps_positive_lower_bound K.val paperGerverConstants.2.2 hlIoo + rw [wedgeGaps_fst_eq_supportValue] at hgap₁ + rw [wedgeGaps_snd_eq_supportValue, + show ((Real.pi / 2 + Real.pi / 2 : ℝ) : Real.Angle) = ((Real.pi : ℝ) : Real.Angle) by + congr 1; ring, hcosdiff] at hgap₂ + have hgap₁' : (1 - Real.sin paperGerverConstants.2.1) / Real.cos paperGerverConstants.2.1 ≤ + supportValue (K.val.val : Set Point) ((0 : ℝ) : Real.Angle) - + (supportValue (K.val.val : Set Point) + ((paperGerverConstants.2.1 : ℝ) : Real.Angle) - 1) / + Real.cos paperGerverConstants.2.1 := hgap₁.1 + have hgap₂' : (1 - Real.sin paperGerverConstants.2.1) / Real.cos paperGerverConstants.2.1 ≤ + supportValue (K.val.val : Set Point) ((Real.pi : ℝ) : Real.Angle) - + (supportValue (K.val.val : Set Point) + ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos paperGerverConstants.2.1 := hgap₂.2.2.1 + -- the reciprocal-cosine lower bounds for the two inner-wall coordinates + have hRc : supportValue (K.val.val : Set Point) ((0 : ℝ) : Real.Angle) ≤ + supportValue (K.val.val : Set Point) ((paperGerverConstants.2.1 : ℝ) : Real.Angle) / + Real.cos paperGerverConstants.2.1 := by + rw [le_div_iff₀ hcpos] + linarith + have hSc : supportValue (K.val.val : Set Point) ((Real.pi : ℝ) : Real.Angle) ≤ + supportValue (K.val.val : Set Point) + ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle) / + Real.cos paperGerverConstants.2.1 := by + rw [le_div_iff₀ hcpos] + linarith + have hRc' : supportValue (K.val.val : Set Point) ((0 : ℝ) : Real.Angle) - + 1 / Real.cos paperGerverConstants.2.1 ≤ + (supportValue (K.val.val : Set Point) + ((paperGerverConstants.2.1 : ℝ) : Real.Angle) - 1) / + Real.cos paperGerverConstants.2.1 := by + rw [sub_div] + linarith + have hSc' : supportValue (K.val.val : Set Point) ((Real.pi : ℝ) : Real.Angle) - + 1 / Real.cos paperGerverConstants.2.1 ≤ + (supportValue (K.val.val : Set Point) + ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos paperGerverConstants.2.1 := by + rw [sub_div] + linarith + -- the two fan points as multiples of the horizontal normal + have htv : tangentVector ((Real.pi / 2 : ℝ) : Real.Angle) = -normalVector (0 : Real.Angle) := by + have h := tangentVector_add_pi_div_two 0 + rwa [zero_add, Real.Angle.coe_zero] at h + constructor + · change ((supportValue (K.val.val : Set Point) + ((paperGerverConstants.2.1 : ℝ) : Real.Angle) - 1) / + Real.cos paperGerverConstants.2.1) • normalVector (0 : Real.Angle) ∈ _ + refine smul_normalVector_zero_mem_bottomEdge K.val ?_ ?_ + · linarith + · have hpos : 0 < (1 - Real.sin paperGerverConstants.2.1) / + Real.cos paperGerverConstants.2.1 := hgap₁.2.1 + linarith + · change ((supportValue (K.val.val : Set Point) + ((paperGerverConstants.2.2 + Real.pi / 2 : ℝ) : Real.Angle) - 1) / + Real.cos (Real.pi / 2 - paperGerverConstants.2.2)) • + tangentVector ((Real.pi / 2 : ℝ) : Real.Angle) ∈ _ + rw [hcosdiff, htv, smul_neg, ← neg_smul] + refine smul_normalVector_zero_mem_bottomEdge K.val ?_ ?_ + · have hpos : 0 < (1 - Real.sin paperGerverConstants.2.1) / + Real.cos paperGerverConstants.2.1 := hgap₂.2.2.2 + linarith + · linarith + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Bounds.Upper.Q`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Bounds / Upper / Q +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +/-- The cap-tail upper-bound functional Q assembled from cap area, tail arcs and endpoint +segments. -/ +def upperBoundQ (T : CapTailSpace) : ℝ := + ClassicalResults.area (T.cap.val.val : Set Point) + + convexArcArea T.leftBody (3 * Real.pi / 2) + (3 * Real.pi / 2 + paperGerverConstants.2.2) + + segmentArea (rightLeftTailArcs T.rightBody T.leftBody).2.endPoint + (distinguishedCapSides T.cap.val).2.corner - + curveAreaFunctional (capMiddleBV T.cap) + + segmentArea (distinguishedCapSides T.cap.val).1.corner + (rightLeftTailArcs T.rightBody T.leftBody).1.startPoint + + convexArcArea T.rightBody (Real.pi + paperGerverConstants.2.1) (3 * Real.pi / 2) + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Motion.Monotonization`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Motion / Monotonization +-/ + +@[expose] public section + +noncomputable section +open Set +open scoped unitInterval +namespace MovingSofa + +private theorem isClosed_supportingHallway (s : Set Point) (t : Real.Angle) : + IsClosed (supportingHallway s t) := by + have hclosed : IsClosed hallway := by + rw [hallway_eq_outerQuadrant_sdiff_innerQuadrant] + apply IsClosed.sdiff + · change IsClosed {p : Point | p 0 ≤ 1 ∧ p 1 ≤ 1} + exact (isClosed_le (by fun_prop : Continuous (fun p : Point ↦ p 0)) continuous_const).inter + (isClosed_le (by fun_prop : Continuous (fun p : Point ↦ p 1)) continuous_const) + · change IsOpen {p : Point | p 0 < 0 ∧ p 1 < 0} + exact (isOpen_lt (by fun_prop : Continuous (fun p : Point ↦ p 0)) continuous_const).inter + (isOpen_lt (by fun_prop : Continuous (fun p : Point ↦ p 1)) continuous_const) + have heq : supportingPlacement s t = supportingPlacementEquiv s t := by + funext p + exact (supportingPlacementEquiv_apply s t p).symm + rw [supportingHallway, heq] + exact (supportingPlacementEquiv s t).toHomeomorph.isClosedMap _ hclosed + +private theorem isClosed_monotonization (s : Set Point) (ω : ℝ) : + IsClosed (monotonization s ω) := by + have hP : (stripParallelogram ω).1 = + {p : Point | p 1 ∈ Icc (0 : ℝ) 1 ∧ + inner ℝ p (normalVector (ω : Real.Angle)) ∈ Icc (0 : ℝ) 1} := by + ext p + exact mem_stripParallelogram_iff ω p + have hclosedP : IsClosed (stripParallelogram ω).1 := by + rw [hP] + exact (isClosed_Icc.preimage (by fun_prop : Continuous (fun p : Point ↦ p 1))).inter + (isClosed_Icc.preimage (continuous_id.inner continuous_const)) + exact hclosedP.inter (isClosed_iInter fun t ↦ + isClosed_iInter fun _ ↦ isClosed_supportingHallway s (t : Real.Angle)) + +private theorem monotonization_subset_capOfSofa (s : Set Point) (ω : ℝ) : + monotonization s ω ⊆ capOfSofa s ω := by + intro p hp + change p ∈ (stripParallelogram ω).1 ∩ + ⋂ t ∈ Icc 0 ω, supportingHallway s (t : Real.Angle) at hp + refine ⟨hp.1, ?_⟩ + simp only [mem_inter_iff, mem_iInter] at hp ⊢ + intro t ht + exact supportingHallway_subset_outerQuadrant s (t : Real.Angle) (hp.2 t ht) + +private theorem isCompact_monotonization (s : Set Point) (ω : ℝ) + (hs : IsStandardPosition s ω) : IsCompact (monotonization s ω) := by + obtain ⟨K, hK⟩ := standardPosition_cap s ω hs + have hc : IsCompact (capOfSofa s ω) := hK ▸ K.val.isCompact + exact hc.of_isClosed_subset (isClosed_monotonization s ω) + (monotonization_subset_capOfSofa s ω) + +private theorem hasRotationAngle_monotonization (s : Set Point) (ω : ℝ) + (hs : IsStandardPosition s ω) : HasRotationAngle (monotonization s ω) ω := by + have hsne : s.Nonempty := by + obtain ⟨m, hm, _⟩ := hs.2.1 + exact hm.1.nonempty + exact hasRotationAngle_of_subset_supportingHallways s (monotonization s ω) ω + hsne hs.1 hs.2.2.1.le hs.2.2.2.2.1 hs.2.2.2.2.2 + (standardPosition_monotonization_connected s ω hs) + (isClosed_monotonization s ω) Set.Subset.rfl + +theorem standardPosition_monotonization_standard (s : Set Point) (ω : ℝ) + (hs : IsStandardPosition s ω) : + IsStandardPosition (monotonization s ω) ω ∧ s ⊆ monotonization s ω := by + refine ⟨⟨isCompact_monotonization s ω hs, hasRotationAngle_monotonization s ω hs, + hs.2.2.1, hs.2.2.2.1, ?_, ?_⟩, standardPosition_subset_monotonization s ω hs⟩ + · exact ((standardPosition_support_eq s ω hs).1 ω + (Or.inl ⟨hs.2.2.1.le, le_rfl⟩)).1.trans hs.2.2.2.2.1 + · exact ((standardPosition_support_eq s ω hs).1 (Real.pi / 2) + (Or.inr ⟨le_rfl, by linarith [hs.2.2.1]⟩)).1.trans hs.2.2.2.2.2 + +end MovingSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Sofa.Area`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Sofa / Area +-/ + +@[expose] public section + +noncomputable section + +namespace MovingSofa + +theorem monotoneSofa_structure (s : Set Point) (ω : ℝ) + (hs : ∃ s₀ : Set Point, IsStandardPosition s₀ ω ∧ s = monotonization s₀ ω) + (K : CapSpace ω) (hK : (K.val : Set Point) = capOfSofa s ω) : + s = (K.val : Set Point) \ capNiche K := by + obtain ⟨s₀, hs₀, rfl⟩ := hs + have heq : capOfSofa (monotonization s₀ ω) ω = capOfSofa s₀ ω := by + have hparts (t : ℝ) (ht : t ∈ Set.Icc 0 ω) : + (rotatingHallwayParts (monotonization s₀ ω) (t : Real.Angle)).outerQuadrant = + (rotatingHallwayParts s₀ (t : Real.Angle)).outerQuadrant := by + have h₀ := ((standardPosition_support_eq s₀ ω hs₀).1 t (Or.inl ht)).1 + have h₁ := ((standardPosition_support_eq s₀ ω hs₀).1 (t + Real.pi / 2) + (Or.inr ⟨by linarith [ht.1], by linarith [ht.2]⟩)).1 + simp only [Real.Angle.coe_add] at h₁ + change supportingPlacement (monotonization s₀ ω) (t : Real.Angle) '' + hallwayParts.outerQuadrant = supportingPlacement s₀ (t : Real.Angle) '' + hallwayParts.outerQuadrant + have he : supportingPlacement (monotonization s₀ ω) (t : Real.Angle) = + supportingPlacement s₀ (t : Real.Angle) := by + funext p + simp only [supportingPlacement, h₀, h₁] + rw [he] + unfold capOfSofa + congr 1 + apply Set.iInter_congr + intro t + apply Set.iInter_congr + exact hparts t + exact standardPosition_monotonization s₀ ω hs₀ K (hK.trans heq) + +theorem capAreaFunctional_eq_sofaArea (s : Set Point) (ω : ℝ) + (hs : ∃ s₀ : Set Point, IsStandardPosition s₀ ω ∧ s = monotonization s₀ ω) + (K : CapSpace ω) (hK : (K.val : Set Point) = capOfSofa s ω) : + capAreaFunctional K = ClassicalResults.area s := by + have heq := monotoneSofa_structure s ω hs K hK + have hconn : IsConnected s := by + obtain ⟨s₀, hs₀, rfl⟩ := hs + exact standardPosition_monotonization_connected s₀ ω hs₀ + have hsub : capNiche K ⊆ (K.val : Set Point) := + (cap_niche_connected_iff K).1.mpr + ((cap_niche_connected_iff K).2.1.mpr + ((cap_niche_connected_iff K).2.2.mpr (heq ▸ hconn))) + rw [capAreaFunctional, heq] + change MeasureTheory.volume.real (K.val : Set Point) - + MeasureTheory.volume.real (capNiche K) = + MeasureTheory.volume.real ((K.val : Set Point) \ capNiche K) + have h := MeasureTheory.measureReal_inter_add_sdiff + (μ := MeasureTheory.volume) (s := (K.val : Set Point)) + (measurableSet_capNiche K) K.val.isCompact.measure_lt_top.ne + rw [Set.inter_eq_right.mpr hsub] at h + linarith + +end MovingSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/Development/Geometry/Foundations/Development008.lean b/LeanPool/MovingSofa/Development/Geometry/Foundations/Development008.lean new file mode 100644 index 0000000000..c4cd73f620 --- /dev/null +++ b/LeanPool/MovingSofa/Development/Geometry/Foundations/Development008.lean @@ -0,0 +1,347 @@ +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +module + +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development006 +public import LeanPool.MovingSofa.Development.Geometry.Foundations.Development007 +/-! +# Moving sofa: related mathematical developments + +* `Cap.Foundations.Development008`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +/-! +# Moving sofa: related mathematical developments + +* `Cap.Monotone`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2026 Dean Cureton. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton +-/ +/-! +# Cap / Monotone +-/ + +@[expose] public section + +noncomputable section +namespace MovingSofa + +/-- Removing the niche from a cap leaves a compact set. -/ +lemma isCompact_sdiff_capNiche {ω : ℝ} (K : CapSpace ω) : + IsCompact ((K.val : Set Point) \ capNiche K) := by + have hopen : IsOpen (⋃ t ∈ Set.Ioo 0 ω, innerQuadrant (K.val : Set Point) t) := by + apply isOpen_iUnion + intro t + apply isOpen_iUnion + intro _ + exact (isOpen_lt (by fun_prop) continuous_const).inter + (isOpen_lt (by fun_prop) continuous_const) + have heq : (K.val : Set Point) \ capNiche K = + (K.val : Set Point) \ ⋃ t ∈ Set.Ioo 0 ω, innerQuadrant (K.val : Set Point) t := by + ext p + simp only [Set.mem_sdiff, capNiche, Set.mem_inter_iff] + constructor + · rintro ⟨hp, hn⟩ + exact ⟨hp, fun h ↦ hn ⟨K.subset_capFan hp, h⟩⟩ + · rintro ⟨hp, hn⟩ + exact ⟨hp, fun h ↦ hn h.2⟩ + rw [heq] + exact K.val.isCompact.diff hopen + +private theorem supportValue_sdiff_capNiche_eq {ω t : ℝ} (K : CapSpace ω) + (hN : capNiche K ⊆ (K.val : Set Point)) + (ht : t ∈ Set.Icc 0 (ω + Real.pi / 2)) : + supportValue ((K.val : Set Point) \ capNiche K) (t : Real.Angle) = + supportValue K.val (t : Real.Angle) := by + let S : Set Point := (K.val : Set Point) \ capNiche K + have hNupper : capNiche K ⊆ (K.val : Set Point) \ capUpperBoundary K := + (cap_niche_connected_iff K).1.mp hN + have hScompact : IsCompact S := isCompact_sdiff_capNiche K + have hSsub : S ⊆ (K.val : Set Point) := Set.sdiff_subset + have hSnonempty : S.Nonempty := by + have hcorners := (cap_niche_connected_iff K).2.1.mp hNupper + exact ((cap_niche_connected_iff K).2.2.mp hcorners).nonempty + obtain ⟨p, hp⟩ := exposedEdge_nonempty K.val (t : Real.Angle) + have hpupper : p ∈ capUpperBoundary K := by + rw [capUpperBoundary] + exact Set.mem_iUnion₂.mpr ⟨t, ht, hp⟩ + have hpS : p ∈ S := by + refine ⟨hp.1, fun hpN ↦ ?_⟩ + exact (hNupper hpN).2 hpupper + symm + apply supportValue_eq_of_subset_of_inner_le hSnonempty hSsub + intro q hq + calc + inner ℝ q (normalVector (t : Real.Angle)) ≤ supportValue K.val (t : Real.Angle) := + inner_le_supportValue K.val hq _ + _ = inner ℝ p (normalVector (t : Real.Angle)) := hp.2.symm + _ ≤ supportValue S (t : Real.Angle) := + inner_le_supportValue_of_isCompact hScompact hpS _ + +private theorem mem_supportingHallway_of_mem_sdiff_capNiche {ω t : ℝ} + (K : CapSpace ω) (ht : t ∈ Set.Icc 0 ω) {p : Point} + (hp : p ∈ (K.val : Set Point) \ capNiche K) : + p ∈ supportingHallway (K.val : Set Point) (t : Real.Angle) := by + obtain ⟨hhall, _, _, _, _, _, _, houter, hinner⟩ := + rotatingHallwayParts_formulas (K.val : Set Point) (t : Real.Angle) + rw [hhall] + refine ⟨?_, ?_⟩ + · rw [houter] + exact ⟨inner_le_supportValue K.val hp.1 _, inner_le_supportValue K.val hp.1 _⟩ + · intro hq + rw [hinner] at hq + change p ∈ innerQuadrant (K.val : Set Point) t at hq + by_cases ht0 : t = 0 + · subst t + have h := hq.2 + change inner ℝ p (normalVector ((0 + Real.pi / 2 : ℝ) : Real.Angle)) < + supportValue K.val ((0 + Real.pi / 2 : ℝ) : Real.Angle) - 1 at h + rw [zero_add, K.property.2.2.2.1] at h + have hf := (K.subset_capFan hp.1).2 + change 0 ≤ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) at hf + linarith + · by_cases htω : t = ω + · subst t + have h := hq.1 + change inner ℝ p (normalVector (ω : Real.Angle)) < + supportValue K.val (ω : Real.Angle) - 1 at h + rw [K.property.2.2.1] at h + have hf := (K.subset_capFan hp.1).1 + change 0 ≤ inner ℝ p (normalVector (ω : Real.Angle)) at hf + linarith + · apply hp.2 + exact ⟨K.subset_capFan hp.1, Set.mem_iUnion₂.mpr + ⟨t, ⟨lt_of_le_of_ne ht.1 (Ne.symm ht0), lt_of_le_of_ne ht.2 htω⟩, hq⟩⟩ + +private theorem cap_sdiff_niche_eq_monotonization_self {ω : ℝ} (K : CapSpace ω) : + (K.val : Set Point) \ capNiche K = monotonization (K.val : Set Point) ω := by + ext p + constructor + · intro hp + refine ⟨K.subset_stripParallelogram hp.1, + Set.mem_iInter.2 fun t ↦ Set.mem_iInter.2 fun ht ↦ ?_⟩ + exact mem_supportingHallway_of_mem_sdiff_capNiche K ht hp + · intro hp + change p ∈ (stripParallelogram ω).1 ∩ + ⋂ t ∈ Set.Icc 0 ω, supportingHallway (K.val : Set Point) (t : Real.Angle) at hp + have hpstrip := (mem_stripParallelogram_iff ω p).mp hp.1 + have hpFan : p ∈ capFan ω := by + change 0 ≤ inner ℝ p (normalVector (ω : Real.Angle)) ∧ + 0 ≤ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + refine ⟨hpstrip.2.1, ?_⟩ + simpa [normalVector, frame, PiLp.inner_apply] using hpstrip.1.1 + have hpK : p ∈ (K.val : Set Point) := by + apply K.mem_of_mem_capFan_of_le_supportValue hpFan + intro u hu + rcases hu with hu | hu + · have hhall := Set.mem_iInter.1 (Set.mem_iInter.1 hp.2 u) hu + obtain ⟨hhallEq, _, _, _, _, _, _, houter, _⟩ := + rotatingHallwayParts_formulas (K.val : Set Point) (u : Real.Angle) + rw [hhallEq, houter] at hhall + exact hhall.1.1 + · let t := u - Real.pi / 2 + have ht : t ∈ Set.Icc 0 ω := by + dsimp [t] + constructor <;> linarith [hu.1, hu.2] + have hhall := Set.mem_iInter.1 (Set.mem_iInter.1 hp.2 t) ht + obtain ⟨hhallEq, _, _, _, _, _, _, houter, _⟩ := + rotatingHallwayParts_formulas (K.val : Set Point) (t : Real.Angle) + rw [hhallEq, houter] at hhall + have heq : (t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) = + (u : Real.Angle) := by + rw [← Real.Angle.coe_add] + congr 1 + dsimp [t] + ring + have hq := hhall.1.2 + change inner ℝ p + (normalVector ((t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle))) ≤ + supportValue K.val + ((t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) at hq + rw [heq] at hq + exact hq + refine ⟨hpK, ?_⟩ + rintro ⟨_, hN⟩ + obtain ⟨t, ht, hquad⟩ := Set.mem_iUnion₂.mp hN + have hhall := Set.mem_iInter.1 (Set.mem_iInter.1 hp.2 t) ⟨ht.1.le, ht.2.le⟩ + obtain ⟨hhallEq, _, _, _, _, _, _, _, hinner⟩ := + rotatingHallwayParts_formulas (K.val : Set Point) (t : Real.Angle) + rw [hhallEq] at hhall + apply hhall.2 + rw [hinner] + exact hquad + +private theorem cap_eq_capOfSofa_sdiff_capNiche {ω : ℝ} (K : CapSpace ω) + (hN : capNiche K ⊆ (K.val : Set Point)) : + (K.val : Set Point) = capOfSofa ((K.val : Set Point) \ capNiche K) ω := by + let S : Set Point := (K.val : Set Point) \ capNiche K + have hsupp (t : ℝ) (ht : t ∈ Set.Icc 0 (ω + Real.pi / 2)) : + supportValue S (t : Real.Angle) = supportValue K.val (t : Real.Angle) := + supportValue_sdiff_capNiche_eq K hN ht + ext p + constructor + · intro hp + refine ⟨K.subset_stripParallelogram hp, + Set.mem_iInter.2 fun t ↦ Set.mem_iInter.2 fun ht ↦ ?_⟩ + obtain ⟨_, _, _, _, _, _, _, houter, _⟩ := + rotatingHallwayParts_formulas S (t : Real.Angle) + rw [houter] + change inner ℝ p (normalVector (t : Real.Angle)) ≤ supportValue S (t : Real.Angle) ∧ + inner ℝ p + (normalVector ((t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle))) ≤ + supportValue S ((t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) + have h₀ := hsupp t ⟨ht.1, ht.2.trans (le_add_of_nonneg_right (by positivity))⟩ + have h₁ := hsupp (t + Real.pi / 2) + ⟨by linarith [ht.1, Real.pi_pos], by linarith [ht.2]⟩ + simp only [Real.Angle.coe_add] at h₁ + rw [h₀, h₁] + exact ⟨inner_le_supportValue K.val hp _, inner_le_supportValue K.val hp _⟩ + · intro hp + have hpstrip := (mem_stripParallelogram_iff ω p).mp hp.1 + have hpFan : p ∈ capFan ω := by + change 0 ≤ inner ℝ p (normalVector (ω : Real.Angle)) ∧ + 0 ≤ inner ℝ p (normalVector ((Real.pi / 2 : ℝ) : Real.Angle)) + refine ⟨hpstrip.2.1, ?_⟩ + simpa [normalVector, frame, PiLp.inner_apply] using hpstrip.1.1 + apply K.mem_of_mem_capFan_of_le_supportValue hpFan + intro u hu + rcases hu with hu | hu + · have hq := Set.mem_iInter.1 (Set.mem_iInter.1 hp.2 u) hu + obtain ⟨_, _, _, _, _, _, _, houter, _⟩ := + rotatingHallwayParts_formulas S (u : Real.Angle) + rw [houter] at hq + have heq := hsupp u + ⟨hu.1, hu.2.trans (le_add_of_nonneg_right (by positivity))⟩ + have hq' := hq.1 + change inner ℝ p (normalVector (u : Real.Angle)) ≤ + supportValue S (u : Real.Angle) at hq' + rw [heq] at hq' + exact hq' + · let t := u - Real.pi / 2 + have ht : t ∈ Set.Icc 0 ω := by + dsimp [t] + constructor <;> linarith [hu.1, hu.2] + have hq := Set.mem_iInter.1 (Set.mem_iInter.1 hp.2 t) ht + obtain ⟨_, _, _, _, _, _, _, houter, _⟩ := + rotatingHallwayParts_formulas S (t : Real.Angle) + rw [houter] at hq + have hang : (t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle) = + (u : Real.Angle) := by + rw [← Real.Angle.coe_add] + congr 1 + dsimp [t] + ring + have heq := hsupp u + ⟨(by positivity : 0 ≤ Real.pi / 2).trans hu.1, + hu.2⟩ + have hq' := hq.2 + change inner ℝ p + (normalVector ((t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle))) ≤ + supportValue S + ((t : Real.Angle) + ((Real.pi / 2 : ℝ) : Real.Angle)) at hq' + rw [hang, heq] at hq' + exact hq' + +theorem cap_isMonotoneCap_iff_niche_subset {ω : ℝ} (K : CapSpace ω) : + (∃ s₀ : Set Point, IsStandardPosition s₀ ω ∧ + (K.val : Set Point) = capOfSofa (monotonization s₀ ω) ω) ↔ + capNiche K ⊆ (K.val : Set Point) := by + constructor + · rintro ⟨s₀, hs₀, hK⟩ + let S := monotonization s₀ ω + have hstructure : S = (K.val : Set Point) \ capNiche K := + monotoneSofa_structure S ω ⟨s₀, hs₀, rfl⟩ K hK + have hconn : IsConnected S := standardPosition_monotonization_connected s₀ ω hs₀ + exact (cap_niche_connected_iff K).1.mpr + ((cap_niche_connected_iff K).2.1.mpr + ((cap_niche_connected_iff K).2.2.mpr (hstructure ▸ hconn))) + · intro hN + let S : Set Point := (K.val : Set Point) \ capNiche K + have hNupper : capNiche K ⊆ (K.val : Set Point) \ capUpperBoundary K := + (cap_niche_connected_iff K).1.mp hN + have hcorners := (cap_niche_connected_iff K).2.1.mp hNupper + have hSconn : IsConnected S := (cap_niche_connected_iff K).2.2.mp hcorners + have hScompact : IsCompact S := isCompact_sdiff_capNiche K + have hSsub : S ⊆ monotonization (K.val : Set Point) ω := by + rw [← cap_sdiff_niche_eq_monotonization_self K] + have hrot : HasRotationAngle S ω := + hasRotationAngle_of_subset_supportingHallways (K.val : Set Point) S ω + K.val.nonempty K.val.isCompact K.property.1.le K.property.2.2.1 + K.property.2.2.2.1 hSconn hScompact.isClosed hSsub + have hsuppω : supportValue S (ω : Real.Angle) = 1 := by + rw [supportValue_sdiff_capNiche_eq K hN + ⟨K.property.1.le, le_add_of_nonneg_right (by positivity)⟩, + K.property.2.2.1] + have hsuppπ : supportValue S ((Real.pi / 2 : ℝ) : Real.Angle) = 1 := by + rw [supportValue_sdiff_capNiche_eq K hN + ⟨by positivity, by linarith [K.property.1]⟩, + K.property.2.2.2.1] + have hstandard : IsStandardPosition S ω := + ⟨hScompact, hrot, K.property.1, K.property.2.1, hsuppω, hsuppπ⟩ + have hcap : (K.val : Set Point) = capOfSofa S ω := + cap_eq_capOfSofa_sdiff_capNiche K hN + have hhall (t : ℝ) (ht : t ∈ Set.Icc 0 ω) : + supportingHallway S (t : Real.Angle) = + supportingHallway (K.val : Set Point) (t : Real.Angle) := by + unfold supportingHallway + congr 1 + funext p + simp only [supportingPlacement] + rw [supportValue_sdiff_capNiche_eq K hN + ⟨ht.1, ht.2.trans (le_add_of_nonneg_right (by positivity))⟩] + have hshift : t + Real.pi / 2 ∈ Set.Icc 0 (ω + Real.pi / 2) := + ⟨by linarith [ht.1, Real.pi_pos], by linarith [ht.2]⟩ + have h₁ := supportValue_sdiff_capNiche_eq K hN hshift + simp only [Real.Angle.coe_add] at h₁ + rw [h₁] + have hmon : monotonization S ω = S := by + calc + monotonization S ω = monotonization (K.val : Set Point) ω := by + unfold monotonization + congr 1 + apply Set.iInter_congr + intro t + apply Set.iInter_congr + exact hhall t + _ = S := (cap_sdiff_niche_eq_monotonization_self K).symm + exact ⟨S, hstandard, by rw [hmon]; exact hcap⟩ + +end MovingSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/Development/IntervalArithmetic/Foundations/Development001.lean b/LeanPool/MovingSofa/Development/IntervalArithmetic/Foundations/Development001.lean new file mode 100644 index 0000000000..7b3e22770f --- /dev/null +++ b/LeanPool/MovingSofa/Development/IntervalArithmetic/Foundations/Development001.lean @@ -0,0 +1,13358 @@ +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +module + +public import Mathlib.Algebra.Order.Field.Basic +public import Mathlib.Algebra.Order.Floor.Defs +public import Mathlib.Algebra.Order.Floor.Ring +public import Mathlib.Analysis.Analytic.Order +public import Mathlib.Analysis.Calculus.ContDiff.Defs +public import Mathlib.Analysis.Calculus.Deriv.Add +public import Mathlib.Analysis.Calculus.Deriv.Comp +public import Mathlib.Analysis.Calculus.Deriv.Inv +public import Mathlib.Analysis.Calculus.Deriv.Mul +public import Mathlib.Analysis.Calculus.Deriv.Slope +public import Mathlib.Analysis.Calculus.MeanValue +public import Mathlib.Analysis.Calculus.ParametricIntegral +public import Mathlib.Analysis.Calculus.Taylor +public import Mathlib.Analysis.Complex.ExponentialBounds +public import Mathlib.Analysis.Real.Pi.Bounds +public import Mathlib.Analysis.SpecialFunctions.Arsinh +public import Mathlib.Analysis.SpecialFunctions.ExpDeriv +public import Mathlib.Analysis.SpecialFunctions.Gaussian.GaussianIntegral +public import Mathlib.Analysis.SpecialFunctions.Integrals.Basic +public import Mathlib.Analysis.SpecialFunctions.Log.Basic +public import Mathlib.Analysis.SpecialFunctions.Log.Deriv +public import Mathlib.Analysis.SpecialFunctions.Pow.Real +public import Mathlib.Analysis.SpecialFunctions.Sqrt +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.Arctan +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.ArctanDeriv +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.Basic +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.Deriv +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.Sinc +public import Mathlib.Analysis.SpecificLimits.Normed +public import Mathlib.Basic.Real.Basic +public import Mathlib.Data.List.Range +public import Mathlib.Data.Nat.Log +public import Mathlib.Data.Rat.Cast.Order +public import Mathlib.Data.Rat.Defs +public import Mathlib.MeasureTheory.Integral.IntervalIntegral.Basic +public import Mathlib.MeasureTheory.Integral.IntervalIntegral.FundThmCalculus +public import Mathlib.NumberTheory.Harmonic.EulerMascheroni +public import Mathlib.Tactic.Linarith +public import Mathlib.Tactic.NormNum +public import Mathlib.Topology.Order.Basic + +/-! +# Moving sofa: related mathematical developments + +* `LeanCert.Contrib.Sinc`. +* `LeanCert.Core.DerivativeIntervals`. +* `LeanCert.Core.Dyadic`. +* `LeanCert.Core.Expr`. +* `LeanCert.Core.Interval`. +* `LeanCert.Core.IntervalRat.Basic`. +* `LeanCert.Core.IntervalRat.LogReduction`. +* `LeanCert.Core.IntervalRat.Transcendental`. +* `LeanCert.Core.Support`. +* `LeanCert.Core.Taylor`. +* `LeanCert.Core.IntervalRat.Taylor`. +* `LeanCert.Core.IntervalReal`. +* `LeanCert.Core.IntervalDyadic`. +* `LeanCert.Core.IntervalRealEndpoints`. +* `LeanCert.Core.TrigReduction`. +* `LeanCert.Core.IntervalRat.TrigReduced`. +* `LeanCert.Engine.Eval.Core`. +* `LeanCert.Engine.Eval.Result`. +* `LeanCert.Engine.Eval.Extended`. +* `LeanCert.Engine.Bounds.Lemmas`. +* `LeanCert.Engine.IntervalEval`. +* `LeanCert.Engine.AD.Basic`. +* `LeanCert.Engine.AD.Transcendental`. +* `LeanCert.Engine.AD.Eval`. +* `LeanCert.Engine.AD.Correctness`. +* `LeanCert.Engine.AD.Computable`. +* `LeanCert.Engine.AD.DomainChecked`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2025 LeanCert Authors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Differentiability of sinc and dslope + +This file proves that the sinc function is differentiable everywhere, including at 0. + +## Main results + +* `Real.differentiableAt_sinc`: sinc is differentiable at every point +* `Real.hasDerivAt_sinc_zero`: sinc has derivative 0 at x = 0 + +## Mathematical background + +The sinc function is defined as: +- `sinc x = sin x / x` for `x ≠ 0` +- `sinc 0 = 1` + +Equivalently, `sinc = dslope sin 0`. + +The derivative of sinc at 0 can be computed using Taylor expansion: +- `sin x = x - x³/6 + x⁵/120 - ...` +- `sinc x = 1 - x²/6 + x⁴/120 - ...` +- `sinc'(0) = 0` +-/ + +@[expose] public section + +open Filter Topology +open scoped Topology + +namespace Real + +variable {x : ℝ} + +/-- Bound on |sin x - x| in terms of |x|³. +For x > 0: sin x < x and x - x³/4 < sin x, so 0 < x - sin x < x³/4. +By symmetry (sin(-x) = -sin(x)), |sin x - x| ≤ |x|³/4 for all x with |x| ≤ 1. -/ +theorem abs_sin_sub_self_le (x : ℝ) (_hx : |x| ≤ 1) : |sin x - x| ≤ |x| ^ 3 / 4 := by + rcases le_or_gt x 0 with hx_neg | hx_pos + · -- Case x ≤ 0 + have hx' : 0 ≤ -x := neg_nonneg.mpr hx_neg + rcases eq_or_lt_of_le hx' with hx_zero | hx_pos' + · -- x = 0 + have : x = 0 := neg_eq_zero.mp hx_zero.symm + simp [this] + · -- x < 0, i.e., 0 < -x ≤ 1 + have h1 : sin (-x) < -x := sin_lt hx_pos' + have h2six : -x - (-x) ^ 3 / 6 < sin (-x) := sin_gt_sub_cube hx_pos' + have h2 : -x - (-x) ^ 3 / 4 < sin (-x) := by + have hcubed : 0 < (-x) ^ 3 := pow_pos hx_pos' _ + linarith + -- sin x = -sin(-x), so sin x - x = -sin(-x) - x + -- From h1: sin(-x) < -x, so sin(-x) + x < 0 + -- Therefore -sin(-x) - x = -(sin(-x) + x) > 0 + rw [abs_of_nonpos hx_neg] + have hsinx : sin x = -sin (-x) := by simp [sin_neg] + rw [hsinx] + have hsum_pos : 0 < -sin (-x) - x := by linarith + rw [abs_of_pos hsum_pos] + -- Goal: -sin(-x) - x ≤ (-x) ^ 3 / 4 + -- From h2: sin(-x) > -x - (-x)^3/4, so -sin(-x) < x + (-x)^3/4 + -- Therefore -sin(-x) - x < (-x)^3/4 + linarith + · -- Case x > 0 + have h1 : sin x < x := sin_lt hx_pos + have h2six : x - x ^ 3 / 6 < sin x := sin_gt_sub_cube hx_pos + have h2 : x - x ^ 3 / 4 < sin x := by + have hcubed : 0 < x ^ 3 := pow_pos hx_pos _ + linarith + rw [abs_of_pos hx_pos] + have hsub_pos : 0 < x - sin x := by linarith + rw [abs_of_neg (by linarith : sin x - x < 0)] + linarith + +/-- The derivative of sinc at 0 is 0. + +The proof uses the squeeze theorem with the bound `|sinc x - 1| ≤ |x|² / 4`, +which follows from sin bounds in Mathlib. -/ +theorem hasDerivAt_sinc_zero : HasDerivAt sinc 0 0 := by + rw [hasDerivAt_iff_tendsto_slope] + -- Need to show: Tendsto (slope sinc 0) (𝓝[≠] 0) (𝓝 0) + rw [Metric.tendsto_nhdsWithin_nhds] + intro ε hε + use min 1 (ε * 4) + constructor + · positivity + intro y hy_ne hy_dist + simp only [slope, vsub_eq_sub, sinc_zero, smul_eq_mul, dist_eq_norm, sub_zero] at * + by_cases hy : y = 0 + · exact absurd hy hy_ne + rw [Real.norm_eq_abs] at hy_dist ⊢ + rw [abs_mul, abs_inv] + rw [sinc_of_ne_zero hy, div_sub_one hy, abs_div] + -- Goal: |y|⁻¹ * (|sin y - y| / |y|) < ε + -- i.e., |sin y - y| / |y|² < ε + have hy_le_1 : |y| ≤ 1 := (lt_min_iff.mp hy_dist).1.le + have hy_abs_pos : 0 < |y| := abs_pos.mpr hy + have hy_sq_pos : 0 < |y| ^ 2 := sq_pos_of_pos hy_abs_pos + -- |sin y - y| ≤ |y|³/4 + have hbound : |sin y - y| ≤ |y| ^ 3 / 4 := abs_sin_sub_self_le y hy_le_1 + -- |y|⁻¹ * (|sin y - y| / |y|) = |sin y - y| / |y|² ≤ |y|³/4 / |y|² = |y|/4 + calc |y|⁻¹ * (|sin y - y| / |y|) + = |sin y - y| / |y| ^ 2 := by rw [inv_mul_eq_div, div_div, sq] + _ ≤ (|y| ^ 3 / 4) / |y| ^ 2 := by + apply div_le_div_of_nonneg_right hbound + exact hy_sq_pos.le + _ = |y| / 4 := by + have hy_ne : |y| ≠ 0 := ne_of_gt hy_abs_pos + have hsq : y ^ 2 = |y| ^ 2 := (sq_abs y).symm + field_simp [hy_ne] + _ < ε := by + have h_eps : |y| < ε * 4 := (lt_min_iff.mp hy_dist).2 + linarith + +theorem differentiableAt_sinc_zero : DifferentiableAt ℝ sinc 0 := + hasDerivAt_sinc_zero.differentiableAt + +/-- sinc is differentiable everywhere. -/ +theorem differentiableAt_sinc (x : ℝ) : DifferentiableAt ℝ sinc x := by + by_cases hx : x = 0 + · exact hx ▸ differentiableAt_sinc_zero + · rw [sinc_eq_dslope, differentiableAt_dslope_of_ne hx] + exact differentiable_sin.differentiableAt + +/-- sinc is a differentiable function. -/ +theorem differentiable_sinc : Differentiable ℝ sinc := fun x => differentiableAt_sinc x + +/-- Integral representation of sinc: + `sinc x = ∫ t in 0..1, cos (x * t)`. + This is the standard average-cosine form used for derivative bounds. -/ +theorem sinc_eq_integral_cos (x : ℝ) : + sinc x = ∫ t in (0 : ℝ)..1, cos (x * t) := by + by_cases hx : x = 0 + · subst hx + simp [sinc_zero] + · have hcomp : + ∫ t in (0 : ℝ)..1, cos (x * t) = x⁻¹ * ∫ u in (0 : ℝ)..x, cos u := by + simpa [mul_comm] using + (intervalIntegral.integral_comp_mul_right + (f := fun u : ℝ => cos u) (a := (0 : ℝ)) (b := 1) (c := x) hx) + rw [hcomp, integral_cos, sin_zero, sub_zero, inv_mul_eq_div, sinc_of_ne_zero hx] + +/-- The derivative of sinc at a nonzero point. -/ +theorem hasDerivAt_sinc_of_ne_zero (hx : x ≠ 0) : + HasDerivAt sinc ((x * cos x - sin x) / x ^ 2) x := by + have h1 : HasDerivAt sin (cos x) x := hasDerivAt_sin x + have h2 : HasDerivAt (fun y => y) 1 x := hasDerivAt_id x + have h3 : HasDerivAt (fun y => sin y / y) ((cos x * x - sin x * 1) / x ^ 2) x := + h1.div h2 hx + simp only [mul_one] at h3 + have h4 : HasDerivAt (fun y => sin y / y) ((x * cos x - sin x) / x ^ 2) x := by + convert h3 using 1; ring + -- sinc agrees with sin/id on a neighborhood of x (since x ≠ 0) + have heq : sinc =ᶠ[𝓝 x] (fun y => sin y / y) := by + filter_upwards [eventually_ne_nhds hx] with y hy + exact sinc_of_ne_zero hy + exact h4.congr_of_eventuallyEq heq + +/-- The derivative of sinc. For x = 0, deriv sinc 0 = 0. For x ≠ 0, deriv sinc x = (x cos x - sin x) +/ x². -/ +theorem deriv_sinc : deriv sinc x = if x = 0 then 0 else (x * cos x - sin x) / x ^ 2 := by + split_ifs with hx + · exact hx ▸ hasDerivAt_sinc_zero.deriv + · exact (hasDerivAt_sinc_of_ne_zero hx).deriv + +@[simp] +theorem deriv_sinc_zero : deriv sinc 0 = 0 := hasDerivAt_sinc_zero.deriv + +/- +The derivative of sinc is bounded: |sinc'(x)| ≤ 1 for all x. + +The key insight is that for x ≠ 0: +- sinc'(x) = (x cos x - sin x) / x² +- Let g(x) = x cos x - sin x. Then g(0) = 0 and g'(x) = -x sin x. +- |g(x)| = |∫₀ˣ -t sin t dt| ≤ ∫₀ˣ |t| dt = x²/2 +- Therefore |sinc'(x)| = |g(x)|/x² ≤ 1/2 < 1 + +The proof using integration is mathematically straightforward but requires +formalizing the integral representation. Instead we use a direct monotonicity argument. +-/ + +/-- Bound: |x cos x - sin x| ≤ x² for all x. + Proof uses monotonicity of auxiliary functions on [0, ∞). -/ +theorem abs_x_mul_cos_sub_sin_le_sq (x : ℝ) : |x * cos x - sin x| ≤ x ^ 2 := by + suffices ∀ x ≥ 0, |x * cos x - sin x| ≤ x ^ 2 by + obtain h | h := le_total 0 x + · exact this x h + · rw [← abs_neg, ← neg_sq x] + convert this (-x) (neg_nonneg.mpr h) using 2 + ring_nf + simp only [cos_neg, sin_neg] + ring + intro x hx + rw [abs_le] + constructor + · -- -x^2 ≤ x cos x - sin x, equivalently 0 ≤ x cos x - sin x + x^2 + -- Define g(t) = t * cos t - sin t + t^2, show g is monotone on [0,∞) with g(0) = 0 + let g : ℝ → ℝ := fun t => t * cos t - sin t + t^2 + have hg_diff : ∀ t, HasDerivAt g (t * (2 - sin t)) t := fun t => by + have h1 : HasDerivAt (fun t => t * cos t) (1 * cos t + t * (-sin t)) t := + hasDerivAt_id t |>.mul (hasDerivAt_cos t) + have h2 : HasDerivAt (fun t => t * cos t - sin t) (1 * cos t + t * (-sin t) - cos t) t := + h1.sub (hasDerivAt_sin t) + have hpow : HasDerivAt (fun t => t^2) (2 * t) t := by + have := hasDerivAt_pow 2 t + simp only [Nat.cast_ofNat, Nat.add_one_sub_one, pow_one] at this + exact this + have h3 : HasDerivAt (fun t => t * cos t - sin t + t^2) + (1 * cos t + t * (-sin t) - cos t + 2 * t) t := + h2.add hpow + convert h3 using 1 + ring + have hg_cont : Continuous g := + (continuous_id.mul continuous_cos).sub continuous_sin |>.add (continuous_pow 2) + have hg_diffble : Differentiable ℝ g := fun t => (hg_diff t).differentiableAt + have hg' : ∀ t, deriv g t = t * (2 - sin t) := fun t => (hg_diff t).deriv + have hg_nonneg : ∀ t ∈ interior (Set.Ici (0:ℝ)), 0 ≤ deriv g t := by + intro t ht + rw [interior_Ici] at ht + rw [hg' t] + apply mul_nonneg (le_of_lt (Set.mem_Ioi.mp ht)) + linarith [sin_le_one t] + have g_nonneg : 0 ≤ g x := by + have hmono := monotoneOn_of_deriv_nonneg (convex_Ici 0) hg_cont.continuousOn + hg_diffble.differentiableOn hg_nonneg + have hg0 : g 0 = 0 := by simp [g] + calc 0 = g 0 := hg0.symm + _ ≤ g x := hmono (by simp : (0:ℝ) ∈ Set.Ici 0) (Set.mem_Ici.mpr hx) hx + linarith [g_nonneg] + · -- x cos x - sin x ≤ x^2, equivalently 0 ≤ x^2 - (x cos x - sin x) + -- Define g(t) = t^2 - (t * cos t - sin t), show g is monotone on [0,∞) with g(0) = 0 + let g : ℝ → ℝ := fun t => t^2 - (t * cos t - sin t) + have hg_diff : ∀ t, HasDerivAt g (t * (2 + sin t)) t := fun t => by + have h1 : HasDerivAt (fun t => t * cos t) (1 * cos t + t * (-sin t)) t := + hasDerivAt_id t |>.mul (hasDerivAt_cos t) + have h2 : HasDerivAt (fun t => t * cos t - sin t) (1 * cos t + t * (-sin t) - cos t) t := + h1.sub (hasDerivAt_sin t) + have hpow : HasDerivAt (fun t => t^2) (2 * t) t := by + have := hasDerivAt_pow 2 t + simp only [Nat.cast_ofNat, Nat.add_one_sub_one, pow_one] at this + exact this + have h3 : HasDerivAt (fun t => t^2 - (t * cos t - sin t)) + (2 * t - (1 * cos t + t * (-sin t) - cos t)) t := + hpow.sub h2 + convert h3 using 1 + ring + have hg_cont : Continuous g := + (continuous_pow 2).sub ((continuous_id.mul continuous_cos).sub continuous_sin) + have hg_diffble : Differentiable ℝ g := fun t => (hg_diff t).differentiableAt + have hg' : ∀ t, deriv g t = t * (2 + sin t) := fun t => (hg_diff t).deriv + have hg_nonneg : ∀ t ∈ interior (Set.Ici (0:ℝ)), 0 ≤ deriv g t := by + intro t ht + rw [interior_Ici] at ht + rw [hg' t] + apply mul_nonneg (le_of_lt (Set.mem_Ioi.mp ht)) + linarith [neg_one_le_sin t] + have g_nonneg : 0 ≤ g x := by + have hmono := monotoneOn_of_deriv_nonneg (convex_Ici 0) hg_cont.continuousOn + hg_diffble.differentiableOn hg_nonneg + have hg0 : g 0 = 0 := by simp [g] + calc 0 = g 0 := hg0.symm + _ ≤ g x := hmono (by simp : (0:ℝ) ∈ Set.Ici 0) (Set.mem_Ici.mpr hx) hx + linarith [g_nonneg] + +theorem abs_deriv_sinc_le_one (x : ℝ) : |deriv sinc x| ≤ 1 := by + by_cases hx : x = 0 + · simp [hx] + · rw [(hasDerivAt_sinc_of_ne_zero hx).deriv] + rw [abs_div] + have hx_sq : x ^ 2 > 0 := sq_pos_of_ne_zero hx + have habs_sq : |x ^ 2| = x ^ 2 := abs_of_pos hx_sq + rw [habs_sq, div_le_one hx_sq] + exact abs_x_mul_cos_sub_sin_le_sq x + +/-- deriv sinc x is in [-1, 1] for all x -/ +theorem deriv_sinc_mem_Icc (x : ℝ) : deriv sinc x ∈ Set.Icc (-1) 1 := by + rw [Set.mem_Icc] + have h := abs_deriv_sinc_le_one x + rw [abs_le] at h + exact h + +/-! +## Integral representation and smoothness of sinc + +The sinc function is smooth (C^∞). The key insight is the integral representation: + sinc(x) = ∫ t in 0..1, cos(t * x) dt + +This works because: +- For x ≠ 0: ∫₀¹ cos(tx) dt = [sin(tx)/x]₀¹ = sin(x)/x = sinc(x) +- For x = 0: ∫₀¹ cos(0) dt = ∫₀¹ 1 dt = 1 = sinc(0) + +Smoothness follows from differentiation under the integral sign (Leibniz rule): +since cos(t*x) is C^∞ in x and the domain [0,1] is compact, the integral is C^∞. +-/ + +open MeasureTheory intervalIntegral in +/-- The integral representation of sinc: sinc(x) = ∫ t in 0..1, cos(t * x) -/ +theorem sinc_eq_integral (x : ℝ) : sinc x = ∫ t in (0 : ℝ)..1, cos (t * x) := by + rcases eq_or_ne x 0 with rfl | hx + · -- Case x = 0: both sides equal 1 + simp only [sinc_zero, mul_zero, cos_zero] + rw [intervalIntegral.integral_const, sub_zero, smul_eq_mul, mul_one] + · -- Case x ≠ 0: use fundamental theorem of calculus + have hcont : Continuous (fun t => cos (t * x)) := continuous_cos.comp (continuous_mul_const x) + have hderiv : ∀ t, HasDerivAt (fun u => sin (u * x) / x) (cos (t * x)) t := by + intro t + have : HasDerivAt (fun u => sin (u * x)) (x * cos (t * x)) t := by + have := Real.hasDerivAt_sin (t * x) + convert! HasDerivAt.comp t this (hasDerivAt_mul_const x) using 1 + ring + convert! this.div_const x using 1 + field_simp + -- The antiderivative is sin(tx)/x, which is continuous + have hcont_anti : ContinuousOn (fun t => sin (t * x) / x) (Set.Icc 0 1) := + (continuous_sin.comp (continuous_mul_const x)).continuousOn.div_const x + -- cos(tx) is interval integrable since it's continuous + have hint : IntervalIntegrable (fun t => cos (t * x)) volume 0 1 := + hcont.intervalIntegrable 0 1 + rw [integral_eq_sub_of_hasDerivAt_of_le (by norm_num : (0 : ℝ) ≤ 1) + hcont_anti (fun t _ => hderiv t) hint] + simp only [one_mul, zero_mul, sin_zero, zero_div, sub_zero] + rw [sinc_of_ne_zero hx] + +/-- The derivative of sinc equals dslope (cos - sinc) at 0. + +For x ≠ 0: + dslope (cos - sinc) 0 x = (cos x - sinc x) / x = (x cos x - sin x) / x² = deriv sinc x + +For x = 0: + dslope (cos - sinc) 0 0 = deriv (cos - sinc) 0 = -sin 0 - deriv sinc 0 = 0 = deriv sinc 0 +-/ +theorem deriv_sinc_eq_dslope : deriv sinc = dslope (cos - sinc) 0 := by + ext x + by_cases hx : x = 0 + · -- At x = 0 + simp only [hx, dslope_same, deriv_sinc_zero] + simp only [deriv_sub, differentiableAt_cos, differentiableAt_sinc_zero, deriv_cos, sin_zero, + deriv_sinc_zero, sub_zero, neg_zero] + · -- At x ≠ 0 + rw [dslope_of_ne _ hx, slope, vsub_eq_sub] + simp only [Pi.sub_apply, cos_zero, sinc_zero, sub_self, sub_zero] + rw [(hasDerivAt_sinc_of_ne_zero hx).deriv] + rw [sinc_of_ne_zero hx, smul_eq_mul] + field_simp + +/-- sinc is smooth at every nonzero point. -/ +theorem contDiffAt_sinc_of_ne_zero {x : ℝ} (hx : x ≠ 0) : ContDiffAt ℝ ⊤ sinc x := by + have heq : sinc =ᶠ[𝓝 x] fun y => sin y / y := by + filter_upwards [eventually_ne_nhds hx] with y hy + exact sinc_of_ne_zero hy + exact (contDiff_sin.contDiffAt.div contDiff_id.contDiffAt hx).congr_of_eventuallyEq heq + +/-- sinc is analytic at 0. + +The proof uses the order theory of analytic functions. Since sin is analytic at 0 +with order ≥ 1 (because sin(0) = 0), there exists an analytic function g such that +sin(z) = z • g(z) near 0. This g must equal sinc away from 0, and by continuity +of both functions at 0, g = sinc everywhere near 0. Therefore sinc is analytic at 0. -/ +theorem analyticAt_sinc_zero : AnalyticAt ℝ sinc 0 := by + -- sin has order ≥ 1 at 0 because sin(0) = 0 and sin is analytic + have hsin_an : AnalyticAt ℝ sin 0 := analyticAt_sin + -- sin(0) = 0 implies order ≠ 0, hence order ≥ 1 + have horder_ne_zero : analyticOrderAt sin (0 : ℝ) ≠ 0 := + hsin_an.analyticOrderAt_ne_zero.mpr sin_zero + -- From the order, we get an analytic g with sin(z) = z * g(z) near 0 + have horder : (1 : ℕ) ≤ analyticOrderAt sin (0 : ℝ) := Order.one_le_iff_ne_zero.mpr horder_ne_zero + rw [natCast_le_analyticOrderAt hsin_an] at horder + simp only [pow_one, sub_zero] at horder + obtain ⟨g, hg_an, hg_eq⟩ := horder + -- g equals sinc away from 0: from sin z = z • g z, we get g z = sin z / z = sinc z + have hg_eq_sinc : g =ᶠ[𝓝[≠] 0] sinc := by + filter_upwards [hg_eq.filter_mono nhdsWithin_le_nhds, + self_mem_nhdsWithin] with z hsin_eq hz + simp only [smul_eq_mul] at hsin_eq + have hz' : z ≠ 0 := Set.mem_compl_singleton_iff.mp hz + rw [sinc_of_ne_zero hz'] + field_simp [hz'] + linarith [hsin_eq] + -- Since g is continuous at 0 and sinc is continuous at 0, + -- and they agree on the punctured neighborhood, they agree at 0 + have hg_zero : g 0 = sinc 0 := by + have hg_cont : ContinuousAt g 0 := hg_an.continuousAt + have hsinc_cont : ContinuousAt sinc 0 := continuous_sinc.continuousAt + -- g → g(0) as x → 0, and sinc(x) → sinc(0) as x → 0 + -- Since g(x) = sinc(x) for x ≠ 0 near 0, limits must be equal + have h : Tendsto g (𝓝[≠] 0) (𝓝 (sinc 0)) := by + have := hsinc_cont.tendsto.mono_left (nhdsWithin_le_nhds (s := {0}ᶜ)) + exact this.congr' hg_eq_sinc.symm + have h2 : Tendsto g (𝓝[≠] 0) (𝓝 (g 0)) := + hg_cont.tendsto.mono_left (nhdsWithin_le_nhds (s := {0}ᶜ)) + exact tendsto_nhds_unique h2 h + -- Now sinc = g near 0, so sinc is analytic at 0 + exact hg_an.congr (hg_eq.mono fun z hsin_eq => by + simp only [smul_eq_mul] at hsin_eq + by_cases hz : z = 0 + · simp [hz, hg_zero] + · rw [sinc_of_ne_zero hz] + field_simp [hz] + linarith [hsin_eq]) + +/-- sinc is analytic at every point. -/ +theorem analyticAt_sinc (x : ℝ) : AnalyticAt ℝ sinc x := by + by_cases hx : x = 0 + · exact hx ▸ analyticAt_sinc_zero + · exact contDiffAt_sinc_of_ne_zero hx |>.analyticAt + +/-- sinc is smooth (infinitely differentiable). + +The proof uses that sinc is analytic everywhere (analyticAt_sinc), +and analytic functions are smooth. -/ +theorem contDiff_sinc : ContDiff ℝ ⊤ sinc := + AnalyticOnNhd.contDiff (fun x _ => analyticAt_sinc x) + +/-- sinc is an analytic function. -/ +theorem analyticOnNhd_sinc : AnalyticOnNhd ℝ sinc Set.univ := fun x _ => analyticAt_sinc x + +end Real + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Derivative Interval Library + +This file provides a systematic collection of derivative interval facts for basic functions. +These lemmas establish that derivatives of common functions lie within specified intervals, +which feeds into: +- Monotonicity analysis +- Lipschitz/contractivity bounds +- Newton method analysis +- Global optimization pruning + +## Main theorems + +### Exp (derivative = exp, always positive) +* `exp_deriv_pos` - exp' x > 0 for all x +* `exp_deriv_interval` - exp' x ∈ [exp a, exp b] for x ∈ [a, b] + +### Log (derivative = 1/x on (0, ∞)) +* `log_deriv_interval` - log' x ∈ [1/b, 1/a] for x ∈ [a, b] with 0 < a + +### Arctan (derivative = 1/(1+x²) ∈ (0, 1]) +* `arctan_deriv_interval` - arctan' x ∈ (0, 1] for all x +* `arctan_deriv_mem_Icc` - arctan' x ∈ [0, 1] for all x + +### Arsinh (derivative = 1/√(1+x²) ∈ (0, 1]) +* `arsinh_deriv_interval` - arsinh' x ∈ (0, 1] for all x +* `arsinh_deriv_mem_Icc` - arsinh' x ∈ [0, 1] for all x + +### Sin/Cos (derivatives bounded by 1) +* `sin_deriv_interval` - |sin' x| = |cos x| ≤ 1 +* `cos_deriv_interval` - |cos' x| = |sin x| ≤ 1 + +### Sinh/Cosh (derivative relationships) +* `sinh_deriv_eq_cosh` - sinh' = cosh +* `cosh_deriv_eq_sinh` - cosh' = sinh +* `cosh_deriv_interval` - cosh' x = sinh x, monotonicity facts + +## Design notes + +These lemmas are independent of any specific algorithm; they're just facts about functions. +They're designed to be composable with the chain rule for AD correctness proofs. +-/ + +/-! ### Exp derivative intervals -/ + +@[expose] public section + +namespace LeanCert.Core.DerivativeIntervals + +open Real Set + +/-- The derivative of exp is positive everywhere -/ +theorem exp_deriv_pos (x : ℝ) : 0 < deriv exp x := by + rw [Real.deriv_exp] + exact Real.exp_pos x + +/-- exp is strictly increasing (follows from positive derivative) -/ +theorem exp_strictMono : StrictMono exp := Real.exp_strictMono + +/-- For x ∈ [a, b], we have exp' x = exp x ∈ [exp a, exp b] -/ +theorem exp_deriv_interval {a b x : ℝ} (hx : x ∈ Icc a b) : + deriv exp x ∈ Icc (exp a) (exp b) := by + rw [Real.deriv_exp] + exact ⟨exp_le_exp.mpr hx.1, exp_le_exp.mpr hx.2⟩ + +/-! ### Log derivative intervals -/ + +/-- The derivative of log at x > 0 is x⁻¹ -/ +theorem log_deriv_eq_inv {x : ℝ} (_hx : 0 < x) : deriv log x = x⁻¹ := + Real.deriv_log x + +/-- For x ∈ [a, b] with 0 < a ≤ b, we have log' x = 1/x ∈ [1/b, 1/a] -/ +theorem log_deriv_interval {a b x : ℝ} (ha : 0 < a) (hx : x ∈ Icc a b) : + deriv log x ∈ Icc (b⁻¹) (a⁻¹) := by + have hx_pos : 0 < x := lt_of_lt_of_le ha hx.1 + rw [log_deriv_eq_inv hx_pos] + constructor + · exact inv_anti₀ hx_pos hx.2 + · have ha_le_x : a ≤ x := hx.1 + exact inv_anti₀ ha ha_le_x + +/-- log is strictly increasing on (0, ∞) -/ +theorem log_strictMonoOn : StrictMonoOn log (Ioi 0) := Real.strictMonoOn_log + +/-! ### Arctan derivative intervals -/ + +/-- The derivative of arctan at x is 1/(1+x²) -/ +theorem arctan_deriv_eq (x : ℝ) : deriv arctan x = (1 + x ^ 2)⁻¹ := + (Real.hasDerivAt_arctan' x).deriv + +/-- 1/(1+x²) is always positive -/ +theorem arctan_deriv_pos (x : ℝ) : 0 < deriv arctan x := by + rw [arctan_deriv_eq] + exact inv_pos.mpr (by nlinarith [sq_nonneg x]) + +/-- 1/(1+x²) ≤ 1 for all x -/ +theorem arctan_deriv_le_one (x : ℝ) : deriv arctan x ≤ 1 := by + rw [arctan_deriv_eq] + have h : 1 ≤ 1 + x ^ 2 := by nlinarith [sq_nonneg x] + exact inv_le_one_of_one_le₀ h + +/-- arctan' x ∈ (0, 1] for all x -/ +theorem arctan_deriv_interval (x : ℝ) : deriv arctan x ∈ Ioc 0 1 := + ⟨arctan_deriv_pos x, arctan_deriv_le_one x⟩ + +/-- arctan' x ∈ [0, 1] for all x (closed interval version for interval arithmetic) -/ +theorem arctan_deriv_mem_Icc (x : ℝ) : deriv arctan x ∈ Icc 0 1 := + ⟨le_of_lt (arctan_deriv_pos x), arctan_deriv_le_one x⟩ + +/-- arctan is strictly increasing (follows from positive derivative) -/ +theorem arctan_strictMono : StrictMono arctan := Real.arctan_strictMono + +/-! ### Arsinh derivative intervals -/ + +/-- The derivative of arsinh at x is (√(1+x²))⁻¹ -/ +theorem arsinh_deriv_eq (x : ℝ) : deriv arsinh x = (sqrt (1 + x ^ 2))⁻¹ := by + have h := Real.hasDerivAt_arsinh x + rw [h.deriv] + +/-- √(1+x²) ≥ 1 for all x -/ +theorem sqrt_one_add_sq_ge_one (x : ℝ) : 1 ≤ sqrt (1 + x ^ 2) := by + have h : 1 ≤ 1 + x ^ 2 := by nlinarith [sq_nonneg x] + calc sqrt (1 + x ^ 2) ≥ sqrt 1 := sqrt_le_sqrt h + _ = 1 := sqrt_one + +/-- √(1+x²) > 0 for all x -/ +theorem sqrt_one_add_sq_pos (x : ℝ) : 0 < sqrt (1 + x ^ 2) := by + apply sqrt_pos.mpr + nlinarith [sq_nonneg x] + +/-- arsinh' x > 0 for all x -/ +theorem arsinh_deriv_pos (x : ℝ) : 0 < deriv arsinh x := by + rw [arsinh_deriv_eq] + exact inv_pos.mpr (sqrt_one_add_sq_pos x) + +/-- arsinh' x ≤ 1 for all x -/ +theorem arsinh_deriv_le_one (x : ℝ) : deriv arsinh x ≤ 1 := by + rw [arsinh_deriv_eq] + exact inv_le_one_of_one_le₀ (sqrt_one_add_sq_ge_one x) + +/-- arsinh' x ∈ (0, 1] for all x -/ +theorem arsinh_deriv_interval (x : ℝ) : deriv arsinh x ∈ Ioc 0 1 := + ⟨arsinh_deriv_pos x, arsinh_deriv_le_one x⟩ + +/-- arsinh' x ∈ [0, 1] for all x (closed interval version) -/ +theorem arsinh_deriv_mem_Icc (x : ℝ) : deriv arsinh x ∈ Icc 0 1 := + ⟨le_of_lt (arsinh_deriv_pos x), arsinh_deriv_le_one x⟩ + +/-- arsinh is strictly increasing -/ +theorem arsinh_strictMono : StrictMono arsinh := Real.arsinh_strictMono + +/-! ### Sin derivative intervals -/ + +/-- The derivative of sin is cos -/ +theorem sin_deriv_eq (x : ℝ) : deriv sin x = cos x := by + have h := Real.deriv_sin + exact congrFun h x + +/-- |sin' x| = |cos x| ≤ 1 -/ +theorem sin_deriv_abs_le_one (x : ℝ) : |deriv sin x| ≤ 1 := by + rw [sin_deriv_eq] + exact abs_cos_le_one x + +/-- sin' x ∈ [-1, 1] for all x -/ +theorem sin_deriv_mem_Icc (x : ℝ) : deriv sin x ∈ Icc (-1) 1 := by + rw [sin_deriv_eq] + exact ⟨neg_one_le_cos x, cos_le_one x⟩ + +/-! ### Cos derivative intervals -/ + +/-- The derivative of cos is -sin -/ +theorem cos_deriv_eq (x : ℝ) : deriv cos x = -sin x := by + have h := Real.deriv_cos' + exact congrFun h x + +/-- |cos' x| = |sin x| ≤ 1 -/ +theorem cos_deriv_abs_le_one (x : ℝ) : |deriv cos x| ≤ 1 := by + rw [cos_deriv_eq, abs_neg] + exact abs_sin_le_one x + +/-- cos' x ∈ [-1, 1] for all x -/ +theorem cos_deriv_mem_Icc (x : ℝ) : deriv cos x ∈ Icc (-1) 1 := by + rw [cos_deriv_eq] + constructor + · simp only [neg_le_neg_iff]; exact sin_le_one x + · have h := neg_one_le_sin x; linarith + +/-! ### Sinh derivative intervals -/ + +/-- The derivative of sinh is cosh -/ +theorem sinh_deriv_eq (x : ℝ) : deriv sinh x = cosh x := by + have h := Real.deriv_sinh + exact congrFun h x + +/-- sinh' x = cosh x ≥ 1 for all x -/ +theorem sinh_deriv_ge_one (x : ℝ) : 1 ≤ deriv sinh x := by + rw [sinh_deriv_eq] + exact Real.one_le_cosh x + +/-- sinh' x > 0 for all x -/ +theorem sinh_deriv_pos (x : ℝ) : 0 < deriv sinh x := by + have h := sinh_deriv_ge_one x + linarith + +/-- sinh is strictly increasing -/ +theorem sinh_strictMono : StrictMono sinh := Real.sinh_strictMono + +/-! ### Cosh derivative intervals -/ + +/-- The derivative of cosh is sinh -/ +theorem cosh_deriv_eq (x : ℝ) : deriv cosh x = sinh x := by + have h := Real.deriv_cosh + exact congrFun h x + +/-- cosh' 0 = sinh 0 = 0 -/ +theorem cosh_deriv_zero : deriv cosh 0 = 0 := by + rw [cosh_deriv_eq, Real.sinh_zero] + +/-- For x > 0, cosh' x = sinh x > 0 -/ +theorem cosh_deriv_pos_of_pos {x : ℝ} (hx : 0 < x) : 0 < deriv cosh x := by + rw [cosh_deriv_eq] + exact Real.sinh_pos_iff.mpr hx + +/-- For x < 0, cosh' x = sinh x < 0 -/ +theorem cosh_deriv_neg_of_neg {x : ℝ} (hx : x < 0) : deriv cosh x < 0 := by + rw [cosh_deriv_eq] + exact Real.sinh_neg_iff.mpr hx + +/-- cosh is strictly decreasing on (-∞, 0] -/ +theorem cosh_strictAntiOn_nonpos : StrictAntiOn cosh (Iic 0) := by + intro x hx y hy hxy + simp only [mem_Iic] at hx hy + -- Use that cosh is even and decreasing on negative reals + calc cosh y = cosh (-(-y)) := by ring_nf + _ = cosh (-y) := by rw [Real.cosh_neg] + _ < cosh (-x) := by + apply Real.cosh_strictMonoOn + · simp only [mem_Ici]; linarith + · simp only [mem_Ici]; linarith + · linarith + _ = cosh x := by rw [Real.cosh_neg] + +/-- cosh is strictly increasing on [0, ∞) -/ +theorem cosh_strictMonoOn_nonneg : StrictMonoOn cosh (Ici 0) := + Real.cosh_strictMonoOn + +end LeanCert.Core.DerivativeIntervals + +/-! ## One-Sided Taylor Bounds + +For convex functions, the Taylor polynomial provides a one-sided bound. +For exp on [0, ∞), the n-th Taylor polynomial is a lower bound. +For concave functions, similar upper bounds hold. + +These bounds are tighter than symmetric remainder bounds at endpoints, +which is important for verified numerics. +-/ + +namespace LeanCert.Core.OneSidedTaylor + +open Real Set + +/-! ### Exp lower bounds (convexity gives Taylor poly ≤ function) -/ + +/-- 1 ≤ exp x for x ≥ 0 (Taylor degree 0) -/ +theorem one_le_exp_of_nonneg (x : ℝ) (hx : 0 ≤ x) : 1 ≤ exp x := + Real.one_le_exp hx + +/-- 1 + x ≤ exp x for all x (Taylor degree 1) -/ +theorem one_add_le_exp (x : ℝ) : 1 + x ≤ exp x := by + have h := add_one_le_exp x + linarith + +/-- x + 1 ≤ exp x for all x (alternate form) -/ +theorem add_one_le_exp' (x : ℝ) : x + 1 ≤ exp x := + add_one_le_exp x + +/-! ### Monotonicity from derivative bounds + +These wrap the Mathlib lemmas for convenience with our naming. -/ + +/-- If f' ≥ 0 on [a, b], then f is monotone increasing on [a, b] -/ +theorem monotoneOn_of_deriv_nonneg {f : ℝ → ℝ} {a b : ℝ} + (hf : ContinuousOn f (Icc a b)) + (hf' : DifferentiableOn ℝ f (Ioo a b)) + (hderiv : ∀ x ∈ Ioo a b, 0 ≤ deriv f x) : + MonotoneOn f (Icc a b) := by + refine _root_.monotoneOn_of_deriv_nonneg (convex_Icc a b) hf ?_ ?_ + · rw [interior_Icc]; exact hf' + · intro x hx; rw [interior_Icc] at hx; exact hderiv x hx + +/-- If f' > 0 on (a, b), then f is strictly monotone on [a, b] -/ +theorem strictMonoOn_of_deriv_pos {f : ℝ → ℝ} {a b : ℝ} (_hab : a < b) + (hf : ContinuousOn f (Icc a b)) + (_hf' : DifferentiableOn ℝ f (Ioo a b)) + (hderiv : ∀ x ∈ Ioo a b, 0 < deriv f x) : + StrictMonoOn f (Icc a b) := by + refine _root_.strictMonoOn_of_deriv_pos (convex_Icc a b) hf ?_ + intro x hx; rw [interior_Icc] at hx; exact hderiv x hx + +/-- If f' ≤ 0 on [a, b], then f is antitone (monotone decreasing) on [a, b] -/ +theorem antitoneOn_of_deriv_nonpos {f : ℝ → ℝ} {a b : ℝ} + (hf : ContinuousOn f (Icc a b)) + (hf' : DifferentiableOn ℝ f (Ioo a b)) + (hderiv : ∀ x ∈ Ioo a b, deriv f x ≤ 0) : + AntitoneOn f (Icc a b) := by + refine _root_.antitoneOn_of_deriv_nonpos (convex_Icc a b) hf ?_ ?_ + · rw [interior_Icc]; exact hf' + · intro x hx; rw [interior_Icc] at hx; exact hderiv x hx + +/-- If f' < 0 on (a, b), then f is strictly antitone on [a, b] -/ +theorem strictAntiOn_of_deriv_neg {f : ℝ → ℝ} {a b : ℝ} (_hab : a < b) + (hf : ContinuousOn f (Icc a b)) + (_hf' : DifferentiableOn ℝ f (Ioo a b)) + (hderiv : ∀ x ∈ Ioo a b, deriv f x < 0) : + StrictAntiOn f (Icc a b) := by + refine _root_.strictAntiOn_of_deriv_neg (convex_Icc a b) hf ?_ + intro x hx; rw [interior_Icc] at hx; exact hderiv x hx + +end LeanCert.Core.OneSidedTaylor + +end + +end + +section + +/- +Copyright (c) 2025 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Dyadic Rationals (n * 2^e) + +This file defines Dyadic rationals, which are the backbone of high-performance +verified numerics. Unlike arbitrary `Rat`, Dyadics do not require GCD +normalization, making them significantly faster for kernel evaluation. + +## Main definitions + +* `Dyadic` - A dyadic rational number: `mantissa * 2^exponent` +* `Dyadic.toRat` - Convert to standard rational +* `Dyadic.add`, `Dyadic.mul`, `Dyadic.neg` - Arithmetic operations +* `Dyadic.shiftDown`, `Dyadic.shiftUp` - Directed rounding for interval bounds + +## Design notes + +Dyadics use power-of-2 multiplications instead of GCD-based normalization. +This makes them orders of magnitude faster for kernel evaluation via +`native_decide`, since 2^n can be computed by simple bit operations. + +For interval arithmetic, we use directed rounding: +- Lower bounds use `shiftDown` (round toward -∞) +- Upper bounds use `shiftUp` (round toward +∞) + +This ensures mathematical soundness even when truncating precision. +-/ + +@[expose] public section + +namespace LeanCert.Core + +/-- A Dyadic rational number: `mantissa * 2^exponent` + +This representation allows fast arithmetic without GCD normalization. -/ +structure Dyadic where + /-- The significand/mantissa -/ + mantissa : Int + /-- The exponent (power of 2) -/ + exponent : Int + deriving Repr, DecidableEq, Inhabited + +namespace Dyadic + +/-! ### Helper: Power of 2 -/ + +/-- Compute 2^n for natural n -/ +def pow2Nat (n : Nat) : Nat := Nat.shiftLeft 1 n + +/-- Shift an integer left by n bits (multiply by 2^n) -/ +def shiftLeftInt (m : Int) (n : Nat) : Int := + m * (pow2Nat n : Int) + +/-- Shift an integer right by n bits (divide by 2^n, floor toward -∞) -/ +def shiftRightInt (m : Int) (n : Nat) : Int := + m / (pow2Nat n : Int) + +/-- Check if any of the low n bits are set -/ +def hasLowBits (m : Int) (n : Nat) : Bool := + m % (pow2Nat n : Int) ≠ 0 + +/-! ### Conversion to Rat -/ + +/-- Convert Dyadic to standard Rat. + +For non-negative exponents: `mantissa * 2^exponent` +For negative exponents: `mantissa / 2^(-exponent)` -/ +def toRat (d : Dyadic) : ℚ := + if d.exponent ≥ 0 then + d.mantissa * (pow2Nat d.exponent.toNat : ℤ) + else + (d.mantissa : ℚ) / (pow2Nat (-d.exponent).toNat : ℕ) + +instance : Coe Dyadic ℚ where coe := toRat + +/-- Equality of represented values, ignoring noncanonical mantissa/exponent pairs. -/ +def ValueEq (d₁ d₂ : Dyadic) : Prop := d₁.toRat = d₂.toRat + +instance (d₁ d₂ : Dyadic) : Decidable (d₁.ValueEq d₂) := + inferInstanceAs (Decidable (d₁.toRat = d₂.toRat)) + +instance : Setoid Dyadic where + r := ValueEq + iseqv := { + refl := fun _ => rfl + symm := fun h => h.symm + trans := fun h₁ h₂ => h₁.trans h₂ + } + +@[simp] theorem valueEq_iff (d₁ d₂ : Dyadic) : + d₁.ValueEq d₂ ↔ d₁.toRat = d₂.toRat := Iff.rfl + +/-- A lawful identity key for caches, sets, serialization, and deduplication. + +Arithmetic keeps the fast, noncanonical `Dyadic` representation. Converting at +an identity boundary collapses all representations of the same rational value. +-/ +structure CanonicalKey where + /-- The exact rational value used to compare normalized dyadic numbers. -/ + value : ℚ + deriving Repr, DecidableEq, BEq, Hashable + +/-- Convert a dyadic value to its canonical identity key. -/ +def canonicalKey (d : Dyadic) : CanonicalKey := ⟨d.toRat⟩ + +@[simp] theorem canonicalKey_value (d : Dyadic) : d.canonicalKey.value = d.toRat := rfl + +/-- Canonical keys agree exactly when represented dyadic values agree. -/ +theorem canonicalKey_eq_iff (d₁ d₂ : Dyadic) : + d₁.canonicalKey = d₂.canonicalKey ↔ d₁.ValueEq d₂ := by + simp only [canonicalKey, ValueEq, CanonicalKey.mk.injEq] + +/-- Cast a Dyadic to ℝ by going through ℚ -/ +def toReal (d : Dyadic) : ℝ := Rat.cast (toRat d) + +instance : Coe Dyadic ℝ where coe := toReal + +/-- Equality of rational denotations gives semantic dyadic equality. -/ +theorem valueEq_of_toRat_eq {d₁ d₂ : Dyadic} + (h : d₁.toRat = d₂.toRat) : d₁.ValueEq d₂ := h + +/-! ### Construction -/ + +/-- Create a dyadic from an integer (exponent = 0) -/ +def ofInt (i : Int) : Dyadic := ⟨i, 0⟩ + +/-- Create a dyadic for 2^n -/ +def pow2 (n : Int) : Dyadic := ⟨1, n⟩ + +/-- Zero as a Dyadic -/ +def zero : Dyadic := ⟨0, 0⟩ + +/-- One as a Dyadic -/ +def one : Dyadic := ⟨1, 0⟩ + +instance : Zero Dyadic where zero := Dyadic.zero +instance : One Dyadic where one := Dyadic.one + +theorem toRat_ofInt (i : Int) : (ofInt i).toRat = i := by + simp only [ofInt, toRat, pow2Nat, Int.toNat_zero, le_refl, ↓reduceIte] + have h : Nat.shiftLeft 1 0 = 1 := rfl + simp only [h, Nat.cast_one, Int.cast_one, mul_one] + +@[simp] +theorem toRat_zero : (0 : Dyadic).toRat = 0 := by + have h := toRat_ofInt 0; rw [Int.cast_zero] at h; exact h + +@[simp] +theorem toRat_one : (1 : Dyadic).toRat = 1 := by + have h := toRat_ofInt 1; rw [Int.cast_one] at h; exact h + +/-! ### Arithmetic Operations -/ + +/-- Negation of a Dyadic -/ +def neg (d : Dyadic) : Dyadic := ⟨-d.mantissa, d.exponent⟩ + +instance : Neg Dyadic where neg := Dyadic.neg + +/-- Addition of Dyadics. Aligns exponents by shifting the mantissa with +larger exponent to match the smaller one. -/ +def add (d₁ d₂ : Dyadic) : Dyadic := + if d₁.exponent ≤ d₂.exponent then + let shift := (d₂.exponent - d₁.exponent).toNat + ⟨d₁.mantissa + shiftLeftInt d₂.mantissa shift, d₁.exponent⟩ + else + let shift := (d₁.exponent - d₂.exponent).toNat + ⟨shiftLeftInt d₁.mantissa shift + d₂.mantissa, d₂.exponent⟩ + +instance : Add Dyadic where add := Dyadic.add + +/-- Subtraction of Dyadics -/ +def sub (d₁ d₂ : Dyadic) : Dyadic := add d₁ (neg d₂) + +instance : Sub Dyadic where sub := Dyadic.sub + +/-- Multiplication of Dyadics. Simply multiplies mantissas and adds exponents. -/ +def mul (d₁ d₂ : Dyadic) : Dyadic := + ⟨d₁.mantissa * d₂.mantissa, d₁.exponent + d₂.exponent⟩ + +instance : Mul Dyadic where mul := Dyadic.mul + +/-- Absolute value of a Dyadic -/ +def abs (d : Dyadic) : Dyadic := ⟨Int.natAbs d.mantissa, d.exponent⟩ + +/-- Scale by a power of 2 (efficient: just adjusts exponent) -/ +def scale2 (d : Dyadic) (n : Int) : Dyadic := ⟨d.mantissa, d.exponent + n⟩ + +/-! ### Directed Rounding for Interval Arithmetic -/ + +/-- Shift a dyadic to a new (larger) exponent with "Down" rounding (for lower bounds). + +If `newExp > d.exponent`, we lose precision by right-shifting the mantissa. +Bits are discarded (floor division toward -∞). -/ +def shiftDown (d : Dyadic) (newExp : Int) : Dyadic := + if newExp ≤ d.exponent then + d -- already at or below target precision + else + let diff := (newExp - d.exponent).toNat + -- Integer division is floor division toward -∞ for positive divisor + ⟨shiftRightInt d.mantissa diff, newExp⟩ + +/-- Shift a dyadic to a new (larger) exponent with "Up" rounding (for upper bounds). + +If `newExp > d.exponent`, we lose precision by right-shifting the mantissa. +If any bits are lost, we add 1 to ensure upward rounding (ceiling toward +∞). -/ +def shiftUp (d : Dyadic) (newExp : Int) : Dyadic := + if newExp ≤ d.exponent then + d -- already at or below target precision + else + let diff := (newExp - d.exponent).toNat + if hasLowBits d.mantissa diff then + -- Lost bits: round up + ⟨shiftRightInt d.mantissa diff + 1, newExp⟩ + else + -- No lost bits: exact + ⟨shiftRightInt d.mantissa diff, newExp⟩ + +/-! ### Normalization (Mantissa Control) -/ + +/-- Get the bit length of a natural number -/ +def natBitLength (n : Nat) : Nat := + if n = 0 then 0 else Nat.log2 n + 1 + +/-- Get the bit length of the absolute value of an integer -/ +def bitLength (m : Int) : Nat := natBitLength m.natAbs + +/-- Normalize a Dyadic to keep the mantissa within a reasonable bit-limit. + +This prevents mantissas from growing without bound during repeated multiplications. +Similar to how hardware floats work, but with directed rounding. + +- `maxBits`: Maximum allowed bits for mantissa (default 256) +- `roundUp`: If true, round toward +∞; if false, round toward -∞ -/ +def normalize (d : Dyadic) (maxBits : Nat := 256) (roundUp : Bool := false) : Dyadic := + let bits := bitLength d.mantissa + if bits ≤ maxBits then d + else + let shift := bits - maxBits + let newExp := d.exponent + shift + if roundUp then shiftUp d newExp + else shiftDown d newExp + +/-- Normalize for lower bounds (round down) -/ +def normalizeDown (d : Dyadic) (maxBits : Nat := 256) : Dyadic := + normalize d maxBits false + +/-- Normalize for upper bounds (round up) -/ +def normalizeUp (d : Dyadic) (maxBits : Nat := 256) : Dyadic := + normalize d maxBits true + +/-! ### Comparison -/ + +/-- Compare two Dyadics (decidable) -/ +def compare (d₁ d₂ : Dyadic) : Ordering := + -- Align to smaller exponent for comparison + if d₁.exponent ≤ d₂.exponent then + let shift := (d₂.exponent - d₁.exponent).toNat + Ord.compare d₁.mantissa (shiftLeftInt d₂.mantissa shift) + else + let shift := (d₁.exponent - d₂.exponent).toNat + Ord.compare (shiftLeftInt d₁.mantissa shift) d₂.mantissa + +instance : Ord Dyadic where compare := Dyadic.compare + +/-- Less-than-or-equal for Dyadics -/ +def le (d₁ d₂ : Dyadic) : Bool := compare d₁ d₂ != .gt + +/-- Less-than for Dyadics -/ +def lt (d₁ d₂ : Dyadic) : Bool := compare d₁ d₂ == .lt + +instance : LE Dyadic where le d₁ d₂ := le d₁ d₂ +instance : LT Dyadic where lt d₁ d₂ := lt d₁ d₂ + +instance : DecidableRel (α := Dyadic) (· ≤ ·) := fun d₁ d₂ => + if h : le d₁ d₂ then isTrue h else isFalse h + +instance : DecidableRel (α := Dyadic) (· < ·) := fun d₁ d₂ => + if h : lt d₁ d₂ then isTrue h else isFalse h + +/-- Minimum of two Dyadics -/ +def min (d₁ d₂ : Dyadic) : Dyadic := if le d₁ d₂ then d₁ else d₂ + +/-- Maximum of two Dyadics -/ +def max (d₁ d₂ : Dyadic) : Dyadic := if le d₁ d₂ then d₂ else d₁ + +/-- Minimum of four Dyadics -/ +def min4 (a b c d : Dyadic) : Dyadic := min (min a b) (min c d) + +/-- Maximum of four Dyadics -/ +def max4 (a b c d : Dyadic) : Dyadic := max (max a b) (max c d) + +/-! ### Correctness Theorems -/ + +/-! #### Helper lemmas for shift proofs -/ + +/-- shiftRightInt is floor division by 2^n -/ +private theorem shiftRightInt_eq_div (m : Int) (n : Nat) : + shiftRightInt m n = m / (pow2Nat n : Int) := by + simp only [shiftRightInt, pow2Nat] + +/-- shiftLeftInt is multiplication by 2^n -/ +private theorem shiftLeftInt_eq_mul (m : Int) (n : Nat) : + shiftLeftInt m n = m * (pow2Nat n : Int) := by + simp only [shiftLeftInt, pow2Nat] + +/-- pow2Nat n is always positive. + Proof: 2^n ≥ 1 for all n. -/ +private theorem pow2Nat_pos (n : Nat) : 0 < pow2Nat n := by + unfold pow2Nat + -- Use the fact that shiftLeft 1 n = 2^n + conv => lhs; rw [show (0 : ℕ) = 0 from rfl] + conv => rhs; rw [show Nat.shiftLeft 1 n = 1 * 2^n from Nat.shiftLeft_eq 1 n] + simp only [one_mul] + exact Nat.one_le_two_pow + +/-- pow2Nat as Int is positive -/ +private theorem pow2Nat_int_pos (n : Nat) : (0 : Int) < (pow2Nat n : Int) := by + exact Int.natCast_pos.mpr (pow2Nat_pos n) + +/-- Floor division property: (m / d) * d ≤ m for positive d. + Follows from m % d ≥ 0 and m = m % d + d * (m / d). -/ +private theorem int_ediv_mul_le (m : Int) (d : Int) (hd : 0 < d) : + (m / d) * d ≤ m := Int.ediv_mul_le m (ne_of_gt hd) + +/-- Ceiling division property: m ≤ (m / d + 1) * d when m % d ≠ 0 -/ +private theorem int_ediv_add_one_mul_ge (m : Int) (d : Int) (hd : 0 < d) (_hrem : m % d ≠ 0) : + m ≤ (m / d + 1) * d := by + -- From Int.emod_add_mul_ediv: m % d + d * (m / d) = m + have h := Int.emod_add_mul_ediv m d + -- m % d < d since d > 0 + have hlt := Int.emod_lt_of_pos m hd + -- d + d * (m / d) = (m / d + 1) * d + have heq : d + d * (m / d) = (m / d + 1) * d := by + rw [add_mul, one_mul, mul_comm d (m / d), add_comm] + -- m = m % d + d * (m / d) < d + d * (m / d) = (m / d + 1) * d + have hcalc : m < (m / d + 1) * d := + calc m = m % d + d * (m / d) := h.symm + _ < d + d * (m / d) := by gcongr 1 + _ = (m / d + 1) * d := heq + exact le_of_lt hcalc + +/-- Exact division: m = (m / d) * d when m % d = 0 -/ +private theorem int_ediv_mul_eq (m : Int) (d : Int) (_hd : 0 < d) (hrem : m % d = 0) : + (m / d) * d = m := by + -- From Int.emod_add_mul_ediv: m % d + d * (m / d) = m + have h := Int.emod_add_mul_ediv m d + -- Since m % d = 0, we have d * (m / d) = m + simp only [hrem, zero_add] at h + -- d * (m / d) = m, so (m / d) * d = m + calc (m / d) * d = d * (m / d) := mul_comm _ _ + _ = m := h + +theorem toRat_neg (d : Dyadic) : (neg d).toRat = -(d.toRat) := by + by_cases h : d.exponent ≥ 0 + · simp [neg, toRat, h] + · simp only [toRat, neg, ge_iff_le, h, ↓reduceIte, Int.cast_neg] + rw [neg_div] + +/-! ### Arithmetic Homomorphisms -/ + +/-- Helper: pow2Nat n = 2^n -/ +private theorem pow2Nat_eq_pow (n : Nat) : pow2Nat n = 2 ^ n := by + unfold pow2Nat + rw [show Nat.shiftLeft 1 n = 1 * 2^n from Nat.shiftLeft_eq 1 n] + simp only [one_mul] + +/-- Unification lemma: toRat d = d.mantissa * 2^d.exponent -/ +theorem toRat_eq (d : Dyadic) : d.toRat = d.mantissa * (2 : ℚ) ^ d.exponent := by + unfold toRat + split_ifs with h + · -- Case: exponent ≥ 0 + have he : d.exponent = (d.exponent.toNat : ℤ) := (Int.toNat_of_nonneg h).symm + rw [he, zpow_natCast, pow2Nat_eq_pow] + -- Simplify (↑n : ℤ).toNat = n + simp only [Nat.cast_pow, Nat.cast_ofNat, Int.cast_pow, Int.cast_ofNat, + Int.toNat_natCast] + · -- Case: exponent < 0 + push Not at h + have hpos : 0 ≤ -d.exponent := Int.neg_nonneg.mpr (le_of_lt h) + -- (-d.exponent).toNat = the natural number n such that d.exponent = -n + set n := (-d.exponent).toNat with hn_def + have hne : d.exponent = -(n : ℤ) := by + rw [Int.toNat_of_nonneg hpos]; omega + rw [hne, zpow_neg, zpow_natCast, pow2Nat_eq_pow] + -- Goal: mantissa / 2^n = mantissa * (2^n)⁻¹ + simp only [Nat.cast_pow, Nat.cast_ofNat, div_eq_mul_inv] + +theorem toRat_add (d₁ d₂ : Dyadic) : (add d₁ d₂).toRat = d₁.toRat + d₂.toRat := by + -- Rewrite using toRat_eq to work with mantissa * 2^exponent form + rw [toRat_eq d₁, toRat_eq d₂] + unfold add + split_ifs with h + · -- Case: d₁.exponent ≤ d₂.exponent + rw [toRat_eq] + simp only [shiftLeftInt, pow2Nat_eq_pow] + -- Goal: (m₁ + m₂ * 2^shift) * 2^e₁ = m₁ * 2^e₁ + m₂ * 2^e₂ + set shift := (d₂.exponent - d₁.exponent).toNat with hshift_def + have hshift : (shift : ℤ) = d₂.exponent - d₁.exponent := by + rw [hshift_def, Int.toNat_of_nonneg]; omega + -- 2^shift * 2^e₁ = 2^e₂ + have hexp : (2 : ℚ) ^ shift * 2 ^ d₁.exponent = 2 ^ d₂.exponent := by + have h2 : (2 : ℚ) ^ shift = (2 : ℚ) ^ (shift : ℤ) := by rw [zpow_natCast] + rw [h2, ← zpow_add₀ (two_ne_zero), hshift] + congr 1; omega + -- Show ↑(2^shift : ℕ) = (2 : ℚ)^shift + have hcast : (↑(2 ^ shift : ℕ) : ℚ) = (2 : ℚ) ^ shift := by + rw [Nat.cast_pow, Nat.cast_ofNat] + -- Push casts inside and simplify + simp only [Int.cast_add, Int.cast_mul, Int.cast_natCast, hcast, add_mul, mul_assoc, hexp] + · -- Case: d₁.exponent > d₂.exponent + rw [toRat_eq] + simp only [shiftLeftInt, pow2Nat_eq_pow] + set shift := (d₁.exponent - d₂.exponent).toNat with hshift_def + have hshift : (shift : ℤ) = d₁.exponent - d₂.exponent := by + rw [hshift_def, Int.toNat_of_nonneg]; omega + have hexp : (2 : ℚ) ^ shift * 2 ^ d₂.exponent = 2 ^ d₁.exponent := by + have h2 : (2 : ℚ) ^ shift = (2 : ℚ) ^ (shift : ℤ) := by rw [zpow_natCast] + rw [h2, ← zpow_add₀ (two_ne_zero), hshift] + congr 1; omega + have hcast : (↑(2 ^ shift : ℕ) : ℚ) = (2 : ℚ) ^ shift := by + rw [Nat.cast_pow, Nat.cast_ofNat] + simp only [Int.cast_add, Int.cast_mul, Int.cast_natCast, hcast, add_mul, mul_assoc, hexp, + add_comm] + +theorem toRat_mul (d₁ d₂ : Dyadic) : (mul d₁ d₂).toRat = d₁.toRat * d₂.toRat := by + -- Key: (m1*m2) * 2^(e1+e2) = (m1*2^e1) * (m2*2^e2) + rw [toRat_eq d₁, toRat_eq d₂, toRat_eq] + unfold mul + simp only [Int.cast_mul] + -- Goal: (m₁ * m₂) * 2^(e₁ + e₂) = (m₁ * 2^e₁) * (m₂ * 2^e₂) + -- Use zpow_add₀: 2^(e₁ + e₂) = 2^e₁ * 2^e₂ + rw [zpow_add₀ (two_ne_zero)] + -- Goal: (a * b) * (c * d) = (a * c) * (b * d) + -- Use mul_mul_mul_comm: a * b * (c * d) = a * c * (b * d) + rw [mul_mul_mul_comm] + +/-! ### Rounding Properties -/ + +/-- shiftDown produces a value ≤ the original -/ +theorem toRat_shiftDown_le (d : Dyadic) (newExp : Int) : + (shiftDown d newExp).toRat ≤ d.toRat := by + simp only [shiftDown] + split_ifs with h + · exact le_refl _ + · -- newExp > d.exponent + push Not at h + set diff := (newExp - d.exponent).toNat with hdiff_def + have hdiff : (diff : ℤ) = newExp - d.exponent := by + rw [hdiff_def, Int.toNat_of_nonneg]; omega + have hnewExp : newExp = d.exponent + diff := by omega + rw [toRat_eq, toRat_eq] + simp only [shiftRightInt, pow2Nat_eq_pow] + -- Use int_ediv_mul_le: (m / b) * b ≤ m + have hpow_int_pos : (0 : ℤ) < (2 ^ diff : ℕ) := Int.natCast_pos.mpr (Nat.one_le_two_pow) + have hdiv : d.mantissa / (2 ^ diff : ℕ) * (2 ^ diff : ℕ) ≤ d.mantissa := + int_ediv_mul_le d.mantissa (2 ^ diff : ℕ) hpow_int_pos + -- Key: 2^newExp = 2^d.exponent * 2^diff + have hpow : (2 : ℚ) ^ newExp = 2 ^ d.exponent * (2 : ℚ) ^ diff := by + rw [hnewExp, zpow_add₀ (two_ne_zero), zpow_natCast] + rw [hpow] + -- Goal: (m / 2^diff) * (2^d.exp * 2^diff) ≤ m * 2^d.exp + have hpos : (0 : ℚ) < 2 ^ d.exponent := zpow_pos (by norm_num : (0 : ℚ) < 2) _ + have hpow2_pos : (0 : ℚ) < (2 : ℚ) ^ diff := pow_pos (by norm_num : (0 : ℚ) < 2) _ + -- Convert hdiv to ℚ: (m / 2^diff) * 2^diff ≤ m + have hq : (↑(d.mantissa / (2 ^ diff : ℕ)) : ℚ) * ((2 : ℚ) ^ diff) ≤ d.mantissa := by + have heq : ((2 : ℚ) ^ diff) = ((2 ^ diff : ℕ) : ℚ) := by simp + rw [heq] + -- Goal: (m/b : ℤ) * (b : ℕ) ≤ m in ℚ + -- hdiv: (m/b) * b ≤ m in ℤ + calc (↑(d.mantissa / (2 ^ diff : ℕ)) : ℚ) * ↑(2 ^ diff : ℕ) + = ↑(d.mantissa / (2 ^ diff : ℕ) * (2 ^ diff : ℕ)) := by simp only [Int.cast_mul, + Int.cast_natCast] + _ ≤ ↑d.mantissa := Int.cast_le.mpr hdiv + -- Rearrange: (m/b) * (c * b) = (m/b) * b * c and apply hq + have hrearr : (↑(d.mantissa / (2 ^ diff : ℕ)) : ℚ) * (2 ^ d.exponent * (2 : ℚ) ^ diff) + = (↑(d.mantissa / (2 ^ diff : ℕ))) * ((2 : ℚ) ^ diff) * 2 ^ d.exponent := by + rw [mul_comm (2 ^ d.exponent) ((2 : ℚ) ^ diff), mul_assoc] + rw [hrearr] + exact mul_le_mul_of_nonneg_right hq (le_of_lt hpos) + +/-- shiftUp produces a value ≥ the original -/ +theorem toRat_shiftUp_ge (d : Dyadic) (newExp : Int) : + d.toRat ≤ (shiftUp d newExp).toRat := by + simp only [shiftUp] + split_ifs with h hlowbits + · exact le_refl _ + · -- Case: Lost bits, added 1 + push Not at h + set diff := (newExp - d.exponent).toNat with hdiff_def + have hdiff : (diff : ℤ) = newExp - d.exponent := by + rw [hdiff_def, Int.toNat_of_nonneg]; omega + have hnewExp : newExp = d.exponent + diff := by omega + rw [toRat_eq, toRat_eq] + simp only [shiftRightInt, pow2Nat_eq_pow, hasLowBits] at hlowbits ⊢ + -- Use int_ediv_add_one_mul_ge: m ≤ (m/b + 1) * b when m % b ≠ 0 + have hpow_int_pos : (0 : ℤ) < (2 ^ diff : ℕ) := Int.natCast_pos.mpr (Nat.one_le_two_pow) + have hrem : d.mantissa % (2 ^ diff : ℕ) ≠ 0 := by + simpa only [ne_eq, decide_eq_true_eq] using hlowbits + have hceil : d.mantissa ≤ (d.mantissa / (2 ^ diff : ℕ) + 1) * (2 ^ diff : ℕ) := + int_ediv_add_one_mul_ge d.mantissa (2 ^ diff : ℕ) hpow_int_pos hrem + -- Key: 2^newExp = 2^d.exponent * 2^diff + have hpow : (2 : ℚ) ^ newExp = 2 ^ d.exponent * (2 : ℚ) ^ diff := by + rw [hnewExp, zpow_add₀ (two_ne_zero), zpow_natCast] + rw [hpow] + have hpos : (0 : ℚ) < 2 ^ d.exponent := zpow_pos (by norm_num : (0 : ℚ) < 2) _ + -- Convert hceil to ℚ: m ≤ (m/b + 1) * b + have hq : (d.mantissa : ℚ) ≤ (↑(d.mantissa / (2 ^ diff : ℕ) + 1)) * ((2 : ℚ) ^ diff) := by + have heq : ((2 : ℚ) ^ diff) = ((2 ^ diff : ℕ) : ℚ) := by simp + rw [heq] + calc (d.mantissa : ℚ) ≤ ↑((d.mantissa / (2 ^ diff : ℕ) + 1) * (2 ^ diff : ℕ)) := + Int.cast_le.mpr hceil + _ = ↑(d.mantissa / (2 ^ diff : ℕ) + 1) * ↑(2 ^ diff : ℕ) := by simp only [Int.cast_mul, + Int.cast_natCast] + -- Rearrange and apply hq + have hrearr : (↑(d.mantissa / (2 ^ diff : ℕ) + 1) : ℚ) * (2 ^ d.exponent * (2 : ℚ) ^ diff) + = (↑(d.mantissa / (2 ^ diff : ℕ) + 1)) * ((2 : ℚ) ^ diff) * 2 ^ d.exponent := by + rw [mul_comm (2 ^ d.exponent) ((2 : ℚ) ^ diff), mul_assoc] + rw [hrearr] + calc (d.mantissa : ℚ) * 2 ^ d.exponent + ≤ (↑(d.mantissa / (2 ^ diff : ℕ) + 1) * ((2 : ℚ) ^ diff)) * 2 ^ d.exponent := + mul_le_mul_of_nonneg_right hq (le_of_lt hpos) + _ = ↑(d.mantissa / (2 ^ diff : ℕ) + 1) * (2 : ℚ) ^ diff * 2 ^ d.exponent := by rfl + · -- Case: No lost bits, exact (equality) + push Not at h + set diff := (newExp - d.exponent).toNat with hdiff_def + have hdiff : (diff : ℤ) = newExp - d.exponent := by + rw [hdiff_def, Int.toNat_of_nonneg]; omega + have hnewExp : newExp = d.exponent + diff := by omega + rw [toRat_eq, toRat_eq] + simp only [shiftRightInt, pow2Nat_eq_pow, hasLowBits] at hlowbits ⊢ + -- Use int_ediv_mul_eq: (m/b) * b = m when m % b = 0 + have hpow_int_pos : (0 : ℤ) < (2 ^ diff : ℕ) := Int.natCast_pos.mpr (Nat.one_le_two_pow) + have hrem : d.mantissa % (2 ^ diff : ℕ) = 0 := by + simp only [ne_eq, decide_eq_true_eq, not_not] at hlowbits; exact hlowbits + have hexact : (d.mantissa / (2 ^ diff : ℕ)) * (2 ^ diff : ℕ) = d.mantissa := + int_ediv_mul_eq d.mantissa (2 ^ diff : ℕ) hpow_int_pos hrem + -- Key: 2^newExp = 2^d.exponent * 2^diff + have hpow : (2 : ℚ) ^ newExp = 2 ^ d.exponent * (2 : ℚ) ^ diff := by + rw [hnewExp, zpow_add₀ (two_ne_zero), zpow_natCast] + rw [hpow] + -- Goal: m * 2^exp ≤ (m/b) * (2^exp * 2^diff) + -- Since (m/b) * b = m, this is equality + have heq : ((2 : ℚ) ^ diff) = ((2 ^ diff : ℕ) : ℚ) := by simp + calc (d.mantissa : ℚ) * 2 ^ d.exponent + = ↑((d.mantissa / (2 ^ diff : ℕ)) * (2 ^ diff : ℕ)) * 2 ^ d.exponent := by + simp only [hexact] + _ = ↑(d.mantissa / (2 ^ diff : ℕ)) * ↑(2 ^ diff : ℕ) * 2 ^ d.exponent := by + simp only [Int.cast_mul, Int.cast_natCast] + _ = ↑(d.mantissa / (2 ^ diff : ℕ)) * ((2 : ℚ) ^ diff * 2 ^ d.exponent) := by + rw [← heq, mul_assoc] + _ = ↑(d.mantissa / (2 ^ diff : ℕ)) * (2 ^ d.exponent * (2 : ℚ) ^ diff) := by + rw [mul_comm ((2 : ℚ) ^ diff) (2 ^ d.exponent)] + _ ≤ ↑(d.mantissa / (2 ^ diff : ℕ)) * (2 ^ d.exponent * (2 : ℚ) ^ diff) := le_refl _ + +/-! ### Comparison Helper Lemmas -/ + +/-- Helper: comparing integers reflects comparing rationals when scaled by positive factor -/ +private theorem int_lt_iff_rat_mul_lt (a b : ℤ) (c : ℚ) (hc : 0 < c) : + a < b ↔ (a : ℚ) * c < (b : ℚ) * c := + ⟨fun h ↦ mul_lt_mul_of_pos_right (Int.cast_lt.mpr h) hc, fun h ↦ Int.cast_lt.mp + ((Rat.mul_lt_mul_right hc).mp h)⟩ + +private theorem int_eq_iff_rat_mul_eq (a b : ℤ) (c : ℚ) (hc : c ≠ 0) : + a = b ↔ (a : ℚ) * c = (b : ℚ) * c := by + constructor + · intro h; rw [h] + · intro h + have hcancel := (mul_eq_mul_right_iff (c := c)).mp h + cases hcancel with + | inl heq => exact Int.cast_inj.mp heq + | inr hzero => exact absurd hzero hc + +private theorem int_gt_iff_rat_mul_gt (a b : ℤ) (c : ℚ) (hc : 0 < c) : + a > b ↔ (a : ℚ) * c > (b : ℚ) * c := int_lt_iff_rat_mul_lt b a c hc + +/-- Key lemma: shiftLeftInt relates to multiplication by 2^shift in ℚ -/ +private theorem shiftLeftInt_toRat (m : ℤ) (n : ℕ) : + (shiftLeftInt m n : ℚ) = (m : ℚ) * (2 : ℚ) ^ n := by + simp only [shiftLeftInt, pow2Nat_eq_pow, Int.cast_mul, Int.cast_natCast] + rw [Nat.cast_pow, Nat.cast_ofNat] + +/-- Ord.compare on Int correctly reflects <, =, > -/ +private theorem ord_compare_int_lt (a b : ℤ) : Ord.compare a b = .lt ↔ a < b := by + constructor + · intro h + by_contra! hge + have hcases := lt_or_eq_of_le hge + cases hcases with + | inl hgt => + simp only [Ord.compare, compareOfLessAndEq, not_lt.mpr (le_of_lt hgt), ne_of_gt hgt, + ↓reduceIte] at h + exact absurd h (by decide) + | inr heq => + simp only [Ord.compare, compareOfLessAndEq, heq, lt_irrefl, ↓reduceIte] at h + exact absurd h (by decide) + · intro h + simp only [Ord.compare, compareOfLessAndEq, h, ↓reduceIte] + +private theorem ord_compare_int_eq (a b : ℤ) : Ord.compare a b = .eq ↔ a = b := by + constructor + · intro h + by_contra hne + have hcases := lt_or_gt_of_ne hne + cases hcases with + | inl hlt => + simp only [Ord.compare, compareOfLessAndEq, hlt, ↓reduceIte] at h + exact absurd h (by decide) + | inr hgt => + simp only [Ord.compare, compareOfLessAndEq, not_lt.mpr (le_of_lt hgt), ne_of_gt hgt, + ↓reduceIte] at h + exact absurd h (by decide) + · intro h + simp only [Ord.compare, compareOfLessAndEq, h, lt_irrefl, ↓reduceIte] + +private theorem ord_compare_int_gt (a b : ℤ) : Ord.compare a b = .gt ↔ a > b := by + constructor + · intro h + by_contra! hle + have hcases := lt_or_eq_of_le hle + cases hcases with + | inl hlt => + simp only [Ord.compare, compareOfLessAndEq, hlt, ↓reduceIte] at h + exact absurd h (by decide) + | inr heq => + simp only [Ord.compare, compareOfLessAndEq, heq, lt_irrefl, ↓reduceIte] at h + exact absurd h (by decide) + · intro h + simp only [Ord.compare, compareOfLessAndEq, not_lt.mpr (le_of_lt h), ne_of_gt h, ↓reduceIte] + +/-- Ord.compare not gt means ≤ -/ +private theorem ord_compare_ne_gt_iff (a b : ℤ) : (Ord.compare a b != .gt) = true ↔ a ≤ b := by + rw [bne_iff_ne, ne_eq] + constructor + · intro h + by_contra! hgt + have := ord_compare_int_gt a b |>.mpr hgt + exact h this + · intro hle hgt + have := ord_compare_int_gt a b |>.mp hgt + exact not_lt.mpr hle this + +/-! ### Comparison Theorems -/ + +/-- Helper: Convert aligned integer comparison to toRat comparison (case e₁ ≤ e₂) -/ +private theorem aligned_lt_iff_toRat_lt_case1 (d₁ d₂ : Dyadic) (h : d₁.exponent ≤ d₂.exponent) : + d₁.mantissa < shiftLeftInt d₂.mantissa (d₂.exponent - d₁.exponent).toNat ↔ d₁.toRat < d₂.toRat + := by + set shift := (d₂.exponent - d₁.exponent).toNat with hshift_def + have hshift : (shift : ℤ) = d₂.exponent - d₁.exponent := by + rw [hshift_def, Int.toNat_of_nonneg]; omega + rw [toRat_eq, toRat_eq] + -- Key: 2^e₂ = 2^shift * 2^e₁ + have hpow : (2 : ℚ) ^ d₂.exponent = (2 : ℚ) ^ (shift : ℤ) * 2 ^ d₁.exponent := by + rw [← zpow_add₀ (two_ne_zero : (2 : ℚ) ≠ 0), hshift]; congr 1; omega + have hpos : (0 : ℚ) < 2 ^ d₁.exponent := zpow_pos (by norm_num : (0 : ℚ) < 2) _ + -- Rewrite RHS: m₂ * 2^e₂ = m₂ * (2^shift * 2^e₁) = (m₂ * 2^shift) * 2^e₁ + have hrhs : (d₂.mantissa : ℚ) * 2 ^ d₂.exponent = d₂.mantissa * (2 : ℚ) ^ shift * 2 ^ + d₁.exponent := by + rw [hpow, zpow_natCast, mul_assoc] + rw [hrhs] + -- Now: m₁ < shiftLeftInt m₂ shift ↔ m₁ * 2^e₁ < (m₂ * 2^shift) * 2^e₁ + rw [int_lt_iff_rat_mul_lt _ _ _ hpos, shiftLeftInt_toRat] + +private theorem aligned_eq_iff_toRat_eq_case1 (d₁ d₂ : Dyadic) (h : d₁.exponent ≤ d₂.exponent) : + d₁.mantissa = shiftLeftInt d₂.mantissa (d₂.exponent - d₁.exponent).toNat ↔ d₁.toRat = d₂.toRat + := by + set shift := (d₂.exponent - d₁.exponent).toNat with hshift_def + have hshift : (shift : ℤ) = d₂.exponent - d₁.exponent := by + rw [hshift_def, Int.toNat_of_nonneg]; omega + rw [toRat_eq, toRat_eq] + have hpow : (2 : ℚ) ^ d₂.exponent = (2 : ℚ) ^ (shift : ℤ) * 2 ^ d₁.exponent := by + rw [← zpow_add₀ (two_ne_zero : (2 : ℚ) ≠ 0), hshift]; congr 1; omega + have hne : (2 : ℚ) ^ d₁.exponent ≠ 0 := zpow_ne_zero _ (two_ne_zero) + have hrhs : (d₂.mantissa : ℚ) * 2 ^ d₂.exponent = d₂.mantissa * (2 : ℚ) ^ shift * 2 ^ + d₁.exponent := by + rw [hpow, zpow_natCast, mul_assoc] + rw [hrhs, int_eq_iff_rat_mul_eq _ _ _ hne, shiftLeftInt_toRat] + +private theorem aligned_gt_iff_toRat_gt_case1 (d₁ d₂ : Dyadic) (h : d₁.exponent ≤ d₂.exponent) : + d₁.mantissa > shiftLeftInt d₂.mantissa (d₂.exponent - d₁.exponent).toNat ↔ d₁.toRat > d₂.toRat + := by + set shift := (d₂.exponent - d₁.exponent).toNat with hshift_def + have hshift : (shift : ℤ) = d₂.exponent - d₁.exponent := by + rw [hshift_def, Int.toNat_of_nonneg]; omega + rw [toRat_eq, toRat_eq] + have hpow : (2 : ℚ) ^ d₂.exponent = (2 : ℚ) ^ (shift : ℤ) * 2 ^ d₁.exponent := by + rw [← zpow_add₀ (two_ne_zero : (2 : ℚ) ≠ 0), hshift]; congr 1; omega + have hpos : (0 : ℚ) < 2 ^ d₁.exponent := zpow_pos (by norm_num : (0 : ℚ) < 2) _ + have hrhs : (d₂.mantissa : ℚ) * 2 ^ d₂.exponent = d₂.mantissa * (2 : ℚ) ^ shift * 2 ^ + d₁.exponent := by + rw [hpow, zpow_natCast, mul_assoc] + rw [hrhs, int_gt_iff_rat_mul_gt _ _ _ hpos, shiftLeftInt_toRat] + +/-- Helper: Convert aligned integer comparison to toRat comparison (case e₁ > e₂) -/ +private theorem aligned_lt_iff_toRat_lt_case2 (d₁ d₂ : Dyadic) (h : d₁.exponent > d₂.exponent) : + shiftLeftInt d₁.mantissa (d₁.exponent - d₂.exponent).toNat < d₂.mantissa ↔ d₁.toRat < d₂.toRat + := by + set shift := (d₁.exponent - d₂.exponent).toNat with hshift_def + have hshift : (shift : ℤ) = d₁.exponent - d₂.exponent := by + rw [hshift_def, Int.toNat_of_nonneg]; omega + rw [toRat_eq, toRat_eq] + have hpow : (2 : ℚ) ^ d₁.exponent = (2 : ℚ) ^ (shift : ℤ) * 2 ^ d₂.exponent := by + rw [← zpow_add₀ (two_ne_zero : (2 : ℚ) ≠ 0), hshift]; congr 1; omega + have hpos : (0 : ℚ) < 2 ^ d₂.exponent := zpow_pos (by norm_num : (0 : ℚ) < 2) _ + -- Rewrite LHS: m₁ * 2^e₁ = m₁ * (2^shift * 2^e₂) = (m₁ * 2^shift) * 2^e₂ + have hlhs : (d₁.mantissa : ℚ) * 2 ^ d₁.exponent = d₁.mantissa * (2 : ℚ) ^ shift * 2 ^ + d₂.exponent := by + rw [hpow, zpow_natCast, mul_assoc] + rw [hlhs, int_lt_iff_rat_mul_lt _ _ _ hpos, shiftLeftInt_toRat] + +private theorem aligned_eq_iff_toRat_eq_case2 (d₁ d₂ : Dyadic) (h : d₁.exponent > d₂.exponent) : + shiftLeftInt d₁.mantissa (d₁.exponent - d₂.exponent).toNat = d₂.mantissa ↔ d₁.toRat = d₂.toRat + := by + set shift := (d₁.exponent - d₂.exponent).toNat with hshift_def + have hshift : (shift : ℤ) = d₁.exponent - d₂.exponent := by + rw [hshift_def, Int.toNat_of_nonneg]; omega + rw [toRat_eq, toRat_eq] + have hpow : (2 : ℚ) ^ d₁.exponent = (2 : ℚ) ^ (shift : ℤ) * 2 ^ d₂.exponent := by + rw [← zpow_add₀ (two_ne_zero : (2 : ℚ) ≠ 0), hshift]; congr 1; omega + have hne : (2 : ℚ) ^ d₂.exponent ≠ 0 := zpow_ne_zero _ (two_ne_zero) + have hlhs : (d₁.mantissa : ℚ) * 2 ^ d₁.exponent = d₁.mantissa * (2 : ℚ) ^ shift * 2 ^ + d₂.exponent := by + rw [hpow, zpow_natCast, mul_assoc] + rw [hlhs, int_eq_iff_rat_mul_eq _ _ _ hne, shiftLeftInt_toRat] + +private theorem aligned_gt_iff_toRat_gt_case2 (d₁ d₂ : Dyadic) (h : d₁.exponent > d₂.exponent) : + shiftLeftInt d₁.mantissa (d₁.exponent - d₂.exponent).toNat > d₂.mantissa ↔ d₁.toRat > d₂.toRat + := by + set shift := (d₁.exponent - d₂.exponent).toNat with hshift_def + have hshift : (shift : ℤ) = d₁.exponent - d₂.exponent := by + rw [hshift_def, Int.toNat_of_nonneg]; omega + rw [toRat_eq, toRat_eq] + have hpow : (2 : ℚ) ^ d₁.exponent = (2 : ℚ) ^ (shift : ℤ) * 2 ^ d₂.exponent := by + rw [← zpow_add₀ (two_ne_zero : (2 : ℚ) ≠ 0), hshift]; congr 1; omega + have hpos : (0 : ℚ) < 2 ^ d₂.exponent := zpow_pos (by norm_num : (0 : ℚ) < 2) _ + have hlhs : (d₁.mantissa : ℚ) * 2 ^ d₁.exponent = d₁.mantissa * (2 : ℚ) ^ shift * 2 ^ + d₂.exponent := by + rw [hpow, zpow_natCast, mul_assoc] + rw [hlhs, int_gt_iff_rat_mul_gt _ _ _ hpos, shiftLeftInt_toRat] + +/-- le is correct with respect to toRat ordering -/ +theorem le_iff_toRat_le (d₁ d₂ : Dyadic) : + le d₁ d₂ = true ↔ d₁.toRat ≤ d₂.toRat := by + unfold le compare + split_ifs with h + · -- Case: d₁.exponent ≤ d₂.exponent + set shift := (d₂.exponent - d₁.exponent).toNat + rw [ord_compare_ne_gt_iff] + constructor + · intro hle + by_cases! hlt : d₁.mantissa < shiftLeftInt d₂.mantissa shift + · exact le_of_lt ((aligned_lt_iff_toRat_lt_case1 d₁ d₂ h).mp hlt) + · have heq_or_gt := lt_or_eq_of_le hlt + cases heq_or_gt with + | inl hgt => + exfalso; exact not_lt.mpr hle hgt + | inr heq => + exact le_of_eq ((aligned_eq_iff_toRat_eq_case1 d₁ d₂ h).mp heq.symm) + · intro hle + by_contra! hgt + have hgt' := (aligned_gt_iff_toRat_gt_case1 d₁ d₂ h).mp hgt + exact not_lt.mpr hle hgt' + · -- Case: d₁.exponent > d₂.exponent + push Not at h + set shift := (d₁.exponent - d₂.exponent).toNat + rw [ord_compare_ne_gt_iff] + constructor + · intro hle + by_cases! hlt : shiftLeftInt d₁.mantissa shift < d₂.mantissa + · exact le_of_lt ((aligned_lt_iff_toRat_lt_case2 d₁ d₂ h).mp hlt) + · have heq_or_gt := lt_or_eq_of_le hlt + cases heq_or_gt with + | inl hgt => + exfalso; exact not_lt.mpr hle hgt + | inr heq => + exact le_of_eq ((aligned_eq_iff_toRat_eq_case2 d₁ d₂ h).mp heq.symm) + · intro hle + by_contra! hgt + have hgt' := (aligned_gt_iff_toRat_gt_case2 d₁ d₂ h).mp hgt + exact not_lt.mpr hle hgt' + +/-- compare reflects toRat ordering: lt case -/ +theorem compare_lt_iff (d₁ d₂ : Dyadic) : + compare d₁ d₂ = .lt ↔ d₁.toRat < d₂.toRat := by + unfold compare + split_ifs with h + · rw [ord_compare_int_lt]; exact aligned_lt_iff_toRat_lt_case1 d₁ d₂ h + · push Not at h; rw [ord_compare_int_lt]; exact aligned_lt_iff_toRat_lt_case2 d₁ d₂ h + +/-- compare reflects toRat ordering: gt case -/ +theorem compare_gt_iff (d₁ d₂ : Dyadic) : + compare d₁ d₂ = .gt ↔ d₁.toRat > d₂.toRat := by + unfold compare + split_ifs with h + · rw [ord_compare_int_gt]; exact aligned_gt_iff_toRat_gt_case1 d₁ d₂ h + · push Not at h; rw [ord_compare_int_gt]; exact aligned_gt_iff_toRat_gt_case2 d₁ d₂ h + +/-- compare reflects toRat ordering: eq case -/ +theorem compare_eq_iff (d₁ d₂ : Dyadic) : + compare d₁ d₂ = .eq ↔ d₁.toRat = d₂.toRat := by + unfold compare + split_ifs with h + · rw [ord_compare_int_eq]; exact aligned_eq_iff_toRat_eq_case1 d₁ d₂ h + · push Not at h; rw [ord_compare_int_eq]; exact aligned_eq_iff_toRat_eq_case2 d₁ d₂ h + +/-! ### Min/Max Lemmas -/ + +/-- min produces value ≤ first argument -/ +theorem min_toRat_le_left (d₁ d₂ : Dyadic) : (min d₁ d₂).toRat ≤ d₁.toRat := by + unfold min + split_ifs with h + · exact le_refl _ + · exact le_of_not_ge (fun hle => h (le_iff_toRat_le d₁ d₂ |>.mpr hle)) + +/-- min produces value ≤ second argument -/ +theorem min_toRat_le_right (d₁ d₂ : Dyadic) : (min d₁ d₂).toRat ≤ d₂.toRat := by + unfold min + split_ifs with h + · exact le_iff_toRat_le d₁ d₂ |>.mp h + · exact le_refl _ + +/-- first argument ≤ max -/ +theorem le_max_toRat_left (d₁ d₂ : Dyadic) : d₁.toRat ≤ (max d₁ d₂).toRat := by + unfold max + split_ifs with h + · exact le_iff_toRat_le d₁ d₂ |>.mp h + · exact le_refl _ + +/-- second argument ≤ max -/ +theorem le_max_toRat_right (d₁ d₂ : Dyadic) : d₂.toRat ≤ (max d₁ d₂).toRat := by + unfold max + split_ifs with h + · exact le_refl _ + · exact le_of_not_ge (fun hle => h (le_iff_toRat_le d₁ d₂ |>.mpr hle)) + +/-- Dyadic.min commutes with toRat -/ +theorem min_toRat (d₁ d₂ : Dyadic) : (min d₁ d₂).toRat = Min.min d₁.toRat d₂.toRat := by + unfold min + split_ifs with h + · -- h : le d₁ d₂ + have hle : d₁.toRat ≤ d₂.toRat := le_iff_toRat_le d₁ d₂ |>.mp h + exact (min_eq_left hle).symm + · -- ¬ le d₁ d₂, so d₂.toRat < d₁.toRat + have hgt : d₂.toRat < d₁.toRat := by + have := le_iff_toRat_le d₁ d₂ + exact lt_of_not_ge (fun hle => h (this.mpr hle)) + exact (min_eq_right (le_of_lt hgt)).symm + +/-- Dyadic.max commutes with toRat -/ +theorem max_toRat (d₁ d₂ : Dyadic) : (max d₁ d₂).toRat = Max.max d₁.toRat d₂.toRat := by + unfold max + split_ifs with h + · -- h : le d₁ d₂ + have hle : d₁.toRat ≤ d₂.toRat := le_iff_toRat_le d₁ d₂ |>.mp h + exact (max_eq_right hle).symm + · -- ¬ le d₁ d₂, so d₂.toRat < d₁.toRat + have hgt : d₂.toRat < d₁.toRat := by + have := le_iff_toRat_le d₁ d₂ + exact lt_of_not_ge (fun hle => h (this.mpr hle)) + exact (max_eq_left (le_of_lt hgt)).symm + +/-- min4 ≤ max4 -/ +theorem min4_le_max4 (a b c d : Dyadic) : (min4 a b c d).toRat ≤ (max4 a b c d).toRat := by + unfold min4 max4 + calc (min (min a b) (min c d)).toRat + ≤ (min a b).toRat := min_toRat_le_left _ _ + _ ≤ a.toRat := min_toRat_le_left _ _ + _ ≤ (max a b).toRat := le_max_toRat_left _ _ + _ ≤ (max (max a b) (max c d)).toRat := le_max_toRat_left _ _ + +/-! ### Normalize Lemmas -/ + +/-- normalizeDown produces value ≤ original -/ +theorem toRat_normalizeDown_le (d : Dyadic) (maxBits : Nat) : + (d.normalizeDown maxBits).toRat ≤ d.toRat := by + unfold normalizeDown normalize + simp only [Bool.false_eq_true, ↓reduceIte] + split_ifs with h + · exact le_refl _ + · exact toRat_shiftDown_le d _ + +/-- normalizeUp produces value ≥ original -/ +theorem toRat_normalizeUp_ge (d : Dyadic) (maxBits : Nat) : + d.toRat ≤ (d.normalizeUp maxBits).toRat := by + unfold normalizeUp normalize + simp only [↓reduceIte] + split_ifs with h + · exact le_refl _ + · exact toRat_shiftUp_ge d _ + +/-! ### Scale2 Lemmas -/ + +/-- scale2 multiplies by 2^n -/ +theorem toRat_scale2 (d : Dyadic) (n : Int) : + (d.scale2 n).toRat = d.toRat * (2 : ℚ) ^ n := by + unfold scale2 + rw [toRat_eq, toRat_eq] + simp only [] + rw [mul_assoc, ← zpow_add₀ (two_ne_zero : (2 : ℚ) ≠ 0)] + +/-- scale2 preserves order -/ +theorem toRat_scale2_le_scale2 (d₁ d₂ : Dyadic) (n : Int) (h : d₁.toRat ≤ d₂.toRat) : + (d₁.scale2 n).toRat ≤ (d₂.scale2 n).toRat := by + rw [toRat_scale2, toRat_scale2] + exact mul_le_mul_of_nonneg_right h (zpow_nonneg (by norm_num : (0 : ℚ) ≤ 2) n) + +/-! ### Square Root Operations -/ + +/-- Integer square root of a natural number. + Satisfies: `(intSqrtNat n)^2 ≤ n < (intSqrtNat n + 1)^2` -/ +def intSqrtNat (n : Nat) : Nat := Nat.sqrt n + +/-- Integer square root of a non-negative integer. + Returns 0 for negative inputs. -/ +def intSqrt (n : Int) : Int := + if n < 0 then 0 else Int.ofNat (intSqrtNat n.toNat) + +/-- Key property of Nat.sqrt: `Nat.sqrt n ^ 2 ≤ n` -/ +private theorem nat_sqrt_sq_le (n : Nat) : (Nat.sqrt n) ^ 2 ≤ n := Nat.sqrt_le' n + +/-- Key property of Nat.sqrt: `n < (Nat.sqrt n + 1) ^ 2` -/ +private theorem nat_lt_succ_sqrt_sq (n : Nat) : n < (Nat.sqrt n + 1) ^ 2 := by + have h := Nat.lt_succ_sqrt n + simp only [Nat.succ_eq_add_one] at h + rw [sq] + exact h + +/-- intSqrt n ^ 2 ≤ n for n ≥ 0 -/ +theorem intSqrt_sq_le {n : Int} (hn : 0 ≤ n) : (intSqrt n) ^ 2 ≤ n := by + simp only [intSqrt, not_lt.mpr hn, ↓reduceIte, intSqrtNat] + have h := nat_sqrt_sq_le n.toNat + calc ((Nat.sqrt n.toNat : ℤ) ^ 2 : ℤ) + = ((Nat.sqrt n.toNat) ^ 2 : ℕ) := by norm_cast + _ ≤ (n.toNat : ℤ) := Int.ofNat_le.mpr h + _ = n := Int.toNat_of_nonneg hn + +/-- n < (intSqrt n + 1) ^ 2 for n ≥ 0 -/ +theorem int_lt_succ_sqrt_sq {n : Int} (hn : 0 ≤ n) : n < (intSqrt n + 1) ^ 2 := by + simp only [intSqrt, not_lt.mpr hn, ↓reduceIte, intSqrtNat] + have h := nat_lt_succ_sqrt_sq n.toNat + calc n = (n.toNat : ℤ) := (Int.toNat_of_nonneg hn).symm + _ < ((Nat.sqrt n.toNat + 1) ^ 2 : ℕ) := Int.ofNat_lt.mpr h + _ = ((Nat.sqrt n.toNat : ℤ) + 1) ^ 2 := by norm_cast + +/-- intSqrt is nonnegative for nonnegative inputs -/ +theorem intSqrt_nonneg {n : Int} (hn : 0 ≤ n) : 0 ≤ intSqrt n := by + simp only [intSqrt, not_lt.mpr hn, ↓reduceIte, intSqrtNat] + exact Int.natCast_nonneg _ + +/-- Compute sqrt(d) with a target exponent `prec`. + Returns a Dyadic with exponent `prec` such that result ≤ sqrt(d). + + For d = m * 2^e, we compute: + - shift = e - 2*prec (to align for sqrt) + - m' = m * 2^shift (or m / 2^(-shift) if shift < 0) + - result = floor(sqrt(m')) * 2^prec + + This ensures: result.toRat ≤ sqrt(d.toRat) -/ +def sqrtDown (d : Dyadic) (prec : Int) : Dyadic := + if d.mantissa < 0 then zero + else + let shift := d.exponent - 2 * prec + let m := if shift ≥ 0 then + d.mantissa * (pow2Nat shift.toNat : Int) + else + d.mantissa / (pow2Nat (-shift).toNat : Int) + ⟨intSqrt m, prec⟩ + +/-- Compute sqrt(d) rounded up with target exponent `prec`. + Returns a Dyadic with exponent `prec` such that result ≥ sqrt(d). + + Uses the same computation as sqrtDown, but if the result is not + a perfect square, adds 1 to round up. -/ +def sqrtUp (d : Dyadic) (prec : Int) : Dyadic := + if d.mantissa < 0 then zero + else + let shift := d.exponent - 2 * prec + let m := if shift ≥ 0 then + d.mantissa * (pow2Nat shift.toNat : Int) + else + d.mantissa / (pow2Nat (-shift).toNat : Int) + let s := intSqrt m + -- If m is a perfect square of s, return s; otherwise s+1 + if s * s = m then ⟨s, prec⟩ else ⟨s + 1, prec⟩ + +/-! #### Sqrt Correctness Theorems -/ + +/-- Helper: For non-negative m and shift ≥ 0, the scaled mantissa is non-negative -/ +private theorem sqrt_scaled_shift_nonneg {m : Int} {shift : Int} + (hm : 0 ≤ m) (_hshift : 0 ≤ shift) : + 0 ≤ m * (pow2Nat shift.toNat : Int) := by + apply mul_nonneg hm + exact Int.natCast_nonneg _ + +/-- sqrtDown is non-negative for non-negative inputs -/ +theorem sqrtDown_nonneg (d : Dyadic) (prec : Int) (hd : 0 ≤ d.mantissa) : + 0 ≤ (sqrtDown d prec).mantissa := by + simp only [sqrtDown, not_lt.mpr hd, ↓reduceIte] + set shift := d.exponent - 2 * prec + have hm_nonneg : 0 ≤ (if shift ≥ 0 then + d.mantissa * (pow2Nat shift.toNat : Int) + else + d.mantissa / (pow2Nat (-shift).toNat : Int)) := by + by_cases! hsh : shift ≥ 0 + · simp only [hsh, ↓reduceIte] + exact sqrt_scaled_shift_nonneg hd hsh + · simp only [not_le.mpr hsh, ↓reduceIte] + exact Int.ediv_nonneg hd (Int.natCast_nonneg _) + exact intSqrt_nonneg hm_nonneg + +/-- sqrtUp is non-negative for non-negative inputs -/ +theorem sqrtUp_nonneg (d : Dyadic) (prec : Int) (hd : 0 ≤ d.mantissa) : + 0 ≤ (sqrtUp d prec).mantissa := by + simp only [sqrtUp, not_lt.mpr hd, ↓reduceIte] + set shift := d.exponent - 2 * prec + have hm_nonneg : 0 ≤ (if shift ≥ 0 then + d.mantissa * (pow2Nat shift.toNat : Int) + else + d.mantissa / (pow2Nat (-shift).toNat : Int)) := by + by_cases! hsh : shift ≥ 0 + · simp only [hsh, ↓reduceIte] + exact sqrt_scaled_shift_nonneg hd hsh + · simp only [not_le.mpr hsh, ↓reduceIte] + exact Int.ediv_nonneg hd (Int.natCast_nonneg _) + set m := (if shift ≥ 0 then + d.mantissa * (pow2Nat shift.toNat : Int) + else + d.mantissa / (pow2Nat (-shift).toNat : Int)) + set s := intSqrt m + by_cases hperfect : s * s = m + · simp only [hperfect, ↓reduceIte] + exact intSqrt_nonneg hm_nonneg + · simp only [hperfect, ↓reduceIte] + calc 0 ≤ s := intSqrt_nonneg hm_nonneg + _ ≤ s + 1 := by omega + +/-- sqrtDown.toRat ≤ sqrtUp.toRat for non-negative inputs -/ +theorem sqrtDown_le_sqrtUp (d : Dyadic) (prec : Int) (hd : 0 ≤ d.mantissa) : + (sqrtDown d prec).toRat ≤ (sqrtUp d prec).toRat := by + simp only [sqrtDown, sqrtUp, not_lt.mpr hd, ↓reduceIte] + set shift := d.exponent - 2 * prec + have hm_nonneg : 0 ≤ (if shift ≥ 0 then + d.mantissa * (pow2Nat shift.toNat : Int) + else + d.mantissa / (pow2Nat (-shift).toNat : Int)) := by + by_cases! hsh : shift ≥ 0 + · simp only [hsh, ↓reduceIte] + exact sqrt_scaled_shift_nonneg hd hsh + · simp only [not_le.mpr hsh, ↓reduceIte] + exact Int.ediv_nonneg hd (Int.natCast_nonneg _) + set m := (if shift ≥ 0 then + d.mantissa * (pow2Nat shift.toNat : Int) + else + d.mantissa / (pow2Nat (-shift).toNat : Int)) + set s := intSqrt m + by_cases hperfect : s * s = m + · -- Perfect square: both return s + simp only [hperfect, ↓reduceIte] + exact le_refl _ + · -- Non-perfect: sqrtDown returns s, sqrtUp returns s+1 + simp only [hperfect, ↓reduceIte] + rw [toRat_eq, toRat_eq] + apply mul_le_mul_of_nonneg_right _ (le_of_lt (zpow_pos (by norm_num : (0 : ℚ) < 2) _)) + simp only [Int.cast_add, Int.cast_one] + exact le_add_of_nonneg_right (by norm_num : (0 : ℚ) ≤ 1) + +end Dyadic +end LeanCert.Core + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Unified Expression AST + +This file defines the unified AST for real expressions (`Expr`) and its +evaluation semantics. All numerical algorithms in LeanCert operate on this +single expression type. + +## Main definitions + +* `LeanCert.Core.Expr` - The expression AST supporting algebraic and transcendental operations +* `LeanCert.Core.Expr.eval` - Evaluation of expressions given a variable assignment + +## Design notes + +The expression type uses natural number indices for variables. This simplifies +the interval evaluation and automatic differentiation implementations. +-/ + +/-! ## Auxiliary definition for atanh + +Since Mathlib doesn't provide `Real.atanh`, we define it here using the +standard formula: `atanh x = (1/2) * log((1+x)/(1-x))` for `|x| < 1`. +-/ + +@[expose] public section + +namespace LeanCert.Core + +/-- The inverse hyperbolic tangent function. + Defined as `atanh x = (1/2) * log((1+x)/(1-x))` for `|x| < 1`. -/ +noncomputable def Real.atanh (x : ℝ) : ℝ := + (1 / 2) * Real.log ((1 + x) / (1 - x)) + +/-- For |x| < 1, the argument (1+x)/(1-x) is positive. -/ +theorem Real.atanh_arg_pos {x : ℝ} (hx : |x| < 1) : 0 < (1 + x) / (1 - x) := by + have h1 : -1 < x := by linarith [abs_lt.mp hx] + have h2 : x < 1 := (abs_lt.mp hx).2 + have hnum : 0 < 1 + x := by linarith + have hdenom : 0 < 1 - x := by linarith + exact div_pos hnum hdenom + +/-- atanh(0) = 0 -/ +@[simp] +theorem Real.atanh_zero : Real.atanh 0 = 0 := by + simp only [Real.atanh, add_zero, sub_zero, div_one, Real.log_one, mul_zero] + +/-- atanh(-x) = -atanh(x) for |x| < 1 -/ +theorem Real.atanh_neg {x : ℝ} (hx : |x| < 1) : Real.atanh (-x) = -Real.atanh x := by + simp only [Real.atanh] + have hlo : -1 < x := (abs_lt.mp hx).1 + have hhi : x < 1 := (abs_lt.mp hx).2 + have hpos1 : 0 < 1 + x := by linarith + have hpos2 : 0 < 1 - x := by linarith + have h1 : 1 + -x = 1 - x := by ring + have h2 : 1 - -x = 1 + x := by ring + rw [h1, h2] + rw [Real.log_div (ne_of_gt hpos2) (ne_of_gt hpos1)] + rw [Real.log_div (ne_of_gt hpos1) (ne_of_gt hpos2)] + ring + +/-- atanh is strictly monotone on (-1, 1) -/ +theorem Real.atanh_strictMonoOn : StrictMonoOn Real.atanh (Set.Ioo (-1) 1) := by + intro x hx y hy hxy + simp only [Real.atanh] + have hx1 : 0 < 1 + x := by linarith [hx.1] + have hx2 : 0 < 1 - x := by linarith [hx.2] + have hy1 : 0 < 1 + y := by linarith [hy.1] + have hy2 : 0 < 1 - y := by linarith [hy.2] + have hargx : 0 < (1 + x) / (1 - x) := div_pos hx1 hx2 + have hargy : 0 < (1 + y) / (1 - y) := div_pos hy1 hy2 + gcongr 1 + rw [Real.log_lt_log_iff hargx hargy] + -- Need (1+x)/(1-x) < (1+y)/(1-y) when x < y + rw [div_lt_div_iff₀ hx2 hy2] + ring_nf + linarith + +/-- atanh is monotone on (-1, 1): if x ≤ y then atanh x ≤ atanh y -/ +theorem Real.atanh_mono {x y : ℝ} (hx : |x| < 1) (hy : |y| < 1) (hxy : x ≤ y) : + Real.atanh x ≤ Real.atanh y := by + rcases hxy.lt_or_eq with hlt | heq + · have hx' : x ∈ Set.Ioo (-1 : ℝ) 1 := ⟨(abs_lt.mp hx).1, (abs_lt.mp hx).2⟩ + have hy' : y ∈ Set.Ioo (-1 : ℝ) 1 := ⟨(abs_lt.mp hy).1, (abs_lt.mp hy).2⟩ + exact le_of_lt (Real.atanh_strictMonoOn hx' hy' hlt) + · rw [heq] + +/-- The error function: erf(x) = (2/√π) ∫₀ˣ exp(-t²) dt. + Essential for statistical and financial modeling (normal distribution CDF). + Uses interval integral notation (∫ t in 0..x) which handles negative x correctly. -/ +noncomputable def Real.erf (x : ℝ) : ℝ := + (2 / Real.sqrt Real.pi) * ∫ t in (0:ℝ)..x, Real.exp (-(t^2)) + +/-- The Gaussian function exp(-t²) is always positive. -/ +private theorem exp_neg_sq_pos (t : ℝ) : 0 < Real.exp (-(t^2)) := + Real.exp_pos _ + +/-- The Gaussian function exp(-t²) is integrable on any compact interval. -/ +private theorem intervalIntegrable_exp_neg_sq (a b : ℝ) : + IntervalIntegrable (fun t => Real.exp (-(t^2))) MeasureTheory.volume a b := by + apply Continuous.intervalIntegrable + exact Real.continuous_exp.comp (continuous_neg.comp (continuous_pow 2)) + +/-- Helper: The interval integral of a positive function over [0, x] is bounded by the + half-Gaussian integral when x ≥ 0. -/ +private theorem integral_exp_neg_sq_le_half_gaussian (x : ℝ) (hx : 0 ≤ x) : + ∫ t in (0:ℝ)..x, Real.exp (-(t^2)) ≤ Real.sqrt Real.pi / 2 := by + have hgauss : ∫ t in Set.Ioi 0, Real.exp (-(1:ℝ) * t^2) = Real.sqrt (Real.pi / 1) / 2 := + integral_gaussian_Ioi 1 + simp only [div_one] at hgauss + -- The interval integral equals the set integral on Ioc when x ≥ 0 + rw [intervalIntegral.integral_of_le hx] + -- Need: ∫ t in Ioc 0 x, ... ≤ ∫ t in Ioi 0, ... + -- We have Ioc 0 x ⊆ Ioi 0 for x ≥ 0 + have hint : MeasureTheory.Integrable (fun t => Real.exp (-(1:ℝ) * t^2)) MeasureTheory.volume := + integrable_exp_neg_mul_sq (by norm_num : (0:ℝ) < 1) + have hint_Ioi : MeasureTheory.Integrable (fun t => Real.exp (-(t^2))) + (MeasureTheory.volume.restrict (Set.Ioi 0)) := by + have heq : (fun t : ℝ => Real.exp (-(t^2))) = (fun t => Real.exp (-(1:ℝ) * t^2)) := by + funext t; ring_nf + rw [heq] + exact hint.restrict + calc ∫ t in Set.Ioc 0 x, Real.exp (-(t^2)) + ≤ ∫ t in Set.Ioi 0, Real.exp (-(t^2)) := by + apply MeasureTheory.setIntegral_mono_set hint_Ioi + · -- Nonnegativity + filter_upwards with t using le_of_lt (exp_neg_sq_pos t) + · -- Set inclusion: Ioc 0 x ⊆ Ioi 0 (need to convert to ae form) + exact Filter.Eventually.of_forall (fun t ht => Set.Ioc_subset_Ioi_self ht) + _ = Real.sqrt Real.pi / 2 := by + have heq : (fun t : ℝ => Real.exp (-(t^2))) = (fun t => Real.exp (-(1:ℝ) * t^2)) := by + funext t; ring_nf + rw [heq, hgauss] + +/-- Helper: The interval integral of a positive function over [0, x] is nonneg when x ≥ 0. -/ +private theorem integral_exp_neg_sq_nonneg (x : ℝ) (hx : 0 ≤ x) : + 0 ≤ ∫ t in (0:ℝ)..x, Real.exp (-(t^2)) := by + rw [intervalIntegral.integral_of_le hx] + apply MeasureTheory.setIntegral_nonneg measurableSet_Ioc + intro t _ + exact le_of_lt (exp_neg_sq_pos t) + +/-- The error function is bounded above by 1. -/ +theorem Real.erf_le_one (x : ℝ) : Real.erf x ≤ 1 := by + unfold Real.erf + by_cases! hx : 0 ≤ x + · -- Case x ≥ 0: Use that integral is bounded by √π/2 + have h1 : Real.sqrt Real.pi > 0 := Real.sqrt_pos.mpr Real.pi_pos + have h2 : ∫ t in (0:ℝ)..x, Real.exp (-(t^2)) ≤ Real.sqrt Real.pi / 2 := + integral_exp_neg_sq_le_half_gaussian x hx + calc (2 / Real.sqrt Real.pi) * ∫ t in (0:ℝ)..x, Real.exp (-(t^2)) + ≤ (2 / Real.sqrt Real.pi) * (Real.sqrt Real.pi / 2) := by + apply mul_le_mul_of_nonneg_left h2 + exact div_nonneg (by norm_num) (le_of_lt h1) + _ = 1 := by field_simp + · -- Case x < 0: Integral is negative (∫ 0..x = -∫ x..0), so erf(x) ≤ 0 ≤ 1 + have h1 : Real.sqrt Real.pi > 0 := Real.sqrt_pos.mpr Real.pi_pos + have hxle : x ≤ 0 := le_of_lt hx + -- For x < 0: ∫ 0..x = -∫ x..0, and ∫ x..0 ≥ 0 since we integrate a positive function + have h2 : ∫ t in (0:ℝ)..x, Real.exp (-(t^2)) ≤ 0 := by + rw [intervalIntegral.integral_symm] + apply neg_nonpos.mpr + -- ∫ x..0 for x < 0 means integrating from x to 0, i.e., over [x, 0] + rw [intervalIntegral.integral_of_le hxle] + apply MeasureTheory.setIntegral_nonneg measurableSet_Ioc + intro t _ + exact le_of_lt (exp_neg_sq_pos t) + calc (2 / Real.sqrt Real.pi) * ∫ t in (0:ℝ)..x, Real.exp (-(t^2)) + ≤ (2 / Real.sqrt Real.pi) * 0 := by + apply mul_le_mul_of_nonneg_left h2 + exact div_nonneg (by norm_num) (le_of_lt h1) + _ = 0 := by ring + _ ≤ 1 := by norm_num + +/-- Helper: The integral ∫ x..0 exp(-t²) for x ≤ 0 is bounded by √π/2. -/ +private theorem integral_exp_neg_sq_le_half_gaussian' (x : ℝ) (hx : x ≤ 0) : + ∫ t in x..(0:ℝ), Real.exp (-(t^2)) ≤ Real.sqrt Real.pi / 2 := by + -- Use substitution: the function is even, so ∫ x..0 = ∫ 0..-x + have heq : ∀ t : ℝ, Real.exp (-(t^2)) = Real.exp (-((-t)^2)) := fun t => by ring_nf + have hsub : ∫ t in x..(0:ℝ), Real.exp (-(t^2)) = ∫ t in (0:ℝ)..(-x), Real.exp (-(t^2)) := by + calc ∫ t in x..(0:ℝ), Real.exp (-(t^2)) + = ∫ t in x..(0:ℝ), Real.exp (-((-t)^2)) := by simp only [neg_sq] + _ = ∫ t in (-0:ℝ)..(-x), Real.exp (-(t^2)) := by + rw [intervalIntegral.integral_comp_neg (fun t => Real.exp (-(t^2)))] + _ = ∫ t in (0:ℝ)..(-x), Real.exp (-(t^2)) := by simp only [neg_zero] + rw [hsub] + exact integral_exp_neg_sq_le_half_gaussian (-x) (by linarith) + +/-- The error function is bounded below by -1. -/ +theorem Real.neg_one_le_erf (x : ℝ) : -1 ≤ Real.erf x := by + unfold Real.erf + by_cases! hx : 0 ≤ x + · -- Case x ≥ 0: Integral is nonneg, so erf(x) ≥ 0 > -1 + have h1 : Real.sqrt Real.pi > 0 := Real.sqrt_pos.mpr Real.pi_pos + have h2 : 0 ≤ ∫ t in (0:ℝ)..x, Real.exp (-(t^2)) := integral_exp_neg_sq_nonneg x hx + have h3 : 0 ≤ (2 / Real.sqrt Real.pi) * ∫ t in (0:ℝ)..x, Real.exp (-(t^2)) := by + apply mul_nonneg + · exact div_nonneg (by norm_num) (le_of_lt h1) + · exact h2 + linarith + · -- Case x < 0: ∫ 0..x = -∫ x..0, and ∫ x..0 ≤ √π/2 + have h1 : Real.sqrt Real.pi > 0 := Real.sqrt_pos.mpr Real.pi_pos + have hxle : x ≤ 0 := le_of_lt hx + -- ∫ 0..x = -∫ x..0 + rw [intervalIntegral.integral_symm] + have h2 : ∫ t in x..(0:ℝ), Real.exp (-(t^2)) ≤ Real.sqrt Real.pi / 2 := + integral_exp_neg_sq_le_half_gaussian' x hxle + -- Need: -1 ≤ (2/√π) * (-∫ x..0 f) + -- i.e., -1 ≤ -(2/√π) * ∫ x..0 f + -- i.e., (2/√π) * ∫ x..0 f ≤ 1 + -- From h2: ∫ x..0 f ≤ √π/2, so (2/√π) * ∫ x..0 f ≤ (2/√π) * (√π/2) = 1 + have h3 : (2 / Real.sqrt Real.pi) * ∫ t in x..(0:ℝ), Real.exp (-(t^2)) ≤ 1 := by + calc (2 / Real.sqrt Real.pi) * ∫ t in x..(0:ℝ), Real.exp (-(t^2)) + ≤ (2 / Real.sqrt Real.pi) * (Real.sqrt Real.pi / 2) := by + apply mul_le_mul_of_nonneg_left h2 + exact div_nonneg (by norm_num) (le_of_lt h1) + _ = 1 := by field_simp + linarith + +/-- The error function always lies in `[-1, 1]`. -/ +theorem Real.erf_mem_Icc (x : ℝ) : Real.erf x ∈ Set.Icc (-1 : ℝ) 1 := + ⟨Real.neg_one_le_erf x, Real.erf_le_one x⟩ + +/-- The normalized sinc function always lies in `[-1, 1]`. -/ +theorem Real.sinc_mem_Icc (x : ℝ) : Real.sinc x ∈ Set.Icc (-1 : ℝ) 1 := + ⟨Real.neg_one_le_sinc x, Real.sinc_le_one x⟩ + +/-- Named mathematical constants with known interval bounds. + Adding a new constant (e.g., Catalan's) only requires extending this enum + and its lookup tables — zero evaluator files need updating. -/ +inductive MathConst where + | pi + | eulerMascheroni + deriving Repr, DecidableEq, Inhabited + +/-- The real value of a named mathematical constant. -/ +noncomputable def MathConst.toReal : MathConst → ℝ + | .pi => Real.pi + | .eulerMascheroni => Real.eulerMascheroniConstant + +/-- Float approximation for heuristic evaluation (unverified). -/ +def MathConst.toFloat : MathConst → Float + | .pi => 3.141592653589793 + | .eulerMascheroni => 0.5772156649015329 + +/-- Rational approximation for display/debugging (unverified). -/ +def MathConst.toRatApprox : MathConst → ℚ + | .pi => 157 / 50 + | .eulerMascheroni => 577 / 1000 + +/-- Unified AST for real-valued expressions. -/ +inductive Expr where + /-- Rational constant -/ + | const (q : ℚ) + /-- Variable with de Bruijn-style index -/ + | var (idx : Nat) + /-- Addition -/ + | add (e₁ e₂ : Expr) + /-- Multiplication -/ + | mul (e₁ e₂ : Expr) + /-- Negation -/ + | neg (e : Expr) + /-- Multiplicative inverse (partial: undefined at 0) -/ + | inv (e : Expr) + /-- Exponential function -/ + | exp (e : Expr) + /-- Sine function -/ + | sin (e : Expr) + /-- Cosine function -/ + | cos (e : Expr) + /-- Natural logarithm (partial: undefined for x ≤ 0) -/ + | log (e : Expr) + /-- Arctangent function -/ + | atan (e : Expr) + /-- Inverse hyperbolic sine (arsinh) -/ + | arsinh (e : Expr) + /-- Inverse hyperbolic tangent (partial: undefined for |x| ≥ 1) -/ + | atanh (e : Expr) + /-- Sinc function: sinc(x) = sin(x)/x for x ≠ 0, sinc(0) = 1 -/ + | sinc (e : Expr) + /-- Error function: erf(x) = (2/√π) ∫₀ˣ exp(-t²) dt -/ + | erf (e : Expr) + /-- Hyperbolic sine: sinh(x) = (exp(x) - exp(-x)) / 2 -/ + | sinh (e : Expr) + /-- Hyperbolic cosine: cosh(x) = (exp(x) + exp(-x)) / 2 -/ + | cosh (e : Expr) + /-- Hyperbolic tangent: tanh(x) = sinh(x) / cosh(x) ∈ (-1, 1) -/ + | tanh (e : Expr) + /-- Square root (partial: undefined for x < 0) -/ + | sqrt (e : Expr) + /-- A named mathematical constant (π, γ, …) looked up from a table. -/ + | namedConst (c : MathConst) + deriving Repr, DecidableEq, Inhabited + +namespace Expr + +/-- Subtraction as a derived operation -/ +def sub (e₁ e₂ : Expr) : Expr := add e₁ (neg e₂) + +/-- Division as a derived operation -/ +def div (e₁ e₂ : Expr) : Expr := mul e₁ (inv e₂) + +/-- Integer power (non-negative exponent) -/ +def pow (e : Expr) : Nat → Expr + | 0 => const 1 + | n + 1 => mul e (pow e n) + +/-- Absolute value as a derived operation: |x| = sqrt(x²) + This gives correct results for all real x (except at 0 for interval purposes) -/ +def abs (e : Expr) : Expr := sqrt (mul e e) + +/-- Evaluate an expression given a variable assignment ρ : Nat → ℝ -/ +noncomputable def eval (ρ : Nat → ℝ) : Expr → ℝ + | const q => (q : ℝ) + | var idx => ρ idx + | add e₁ e₂ => eval ρ e₁ + eval ρ e₂ + | mul e₁ e₂ => eval ρ e₁ * eval ρ e₂ + | neg e => -(eval ρ e) + | inv e => (eval ρ e)⁻¹ + | exp e => Real.exp (eval ρ e) + | sin e => Real.sin (eval ρ e) + | cos e => Real.cos (eval ρ e) + | log e => Real.log (eval ρ e) + | atan e => Real.arctan (eval ρ e) + | arsinh e => Real.arsinh (eval ρ e) + | atanh e => Real.atanh (eval ρ e) + | sinc e => Real.sinc (eval ρ e) + | erf e => Real.erf (eval ρ e) + | sinh e => Real.sinh (eval ρ e) + | cosh e => Real.cosh (eval ρ e) + | tanh e => Real.tanh (eval ρ e) + | sqrt e => Real.sqrt (eval ρ e) + | namedConst c => c.toReal + +/-- Update variable assignment at a specific index -/ +def updateVar (ρ : Nat → ℝ) (idx : Nat) (x : ℝ) : Nat → ℝ := + fun i => if i = idx then x else ρ i + +/-- Notation for replacing one coordinate of a variable environment. -/ +notation ρ "[" idx " ↦ " x "]" => updateVar ρ idx x + +@[simp] +theorem updateVar_same (ρ : Nat → ℝ) (idx : Nat) (x : ℝ) : + updateVar ρ idx x idx = x := by simp [updateVar] + +@[simp] +theorem updateVar_other (ρ : Nat → ℝ) (idx i : Nat) (x : ℝ) (h : i ≠ idx) : + updateVar ρ idx x i = ρ i := by simp [updateVar, h] + +theorem updateVar_self (ρ : Nat → ℝ) (idx : Nat) : + updateVar ρ idx (ρ idx) = ρ := by + funext i + simp only [updateVar] + split_ifs with h + · rw [h] + · rfl + +/-- Evaluate `e` as a scalar function of variable `idx`, with all other + variables fixed by `ρ`. This represents the map t ↦ eval ρ[idx ↦ t] e. -/ +noncomputable abbrev evalAlong (e : Expr) (ρ : Nat → ℝ) (idx : Nat) : ℝ → ℝ := + fun t => eval (updateVar ρ idx t) e + +/-- The set of free variable indices in an expression -/ +def freeVars : Expr → Finset Nat + | const _ => ∅ + | var idx => {idx} + | add e₁ e₂ => freeVars e₁ ∪ freeVars e₂ + | mul e₁ e₂ => freeVars e₁ ∪ freeVars e₂ + | neg e => freeVars e + | inv e => freeVars e + | exp e => freeVars e + | sin e => freeVars e + | cos e => freeVars e + | log e => freeVars e + | atan e => freeVars e + | arsinh e => freeVars e + | atanh e => freeVars e + | sinc e => freeVars e + | erf e => freeVars e + | sinh e => freeVars e + | cosh e => freeVars e + | tanh e => freeVars e + | sqrt e => freeVars e + | namedConst _ => ∅ + +/-- An expression is closed if it has no free variables -/ +def isClosed (e : Expr) : Prop := freeVars e = ∅ + +-- Basic lemmas about eval + +@[simp] +theorem eval_const (ρ : Nat → ℝ) (q : ℚ) : eval ρ (const q) = q := rfl + +@[simp] +theorem eval_var (ρ : Nat → ℝ) (idx : Nat) : eval ρ (var idx) = ρ idx := rfl + +@[simp] +theorem eval_add (ρ : Nat → ℝ) (e₁ e₂ : Expr) : + eval ρ (add e₁ e₂) = eval ρ e₁ + eval ρ e₂ := rfl + +@[simp] +theorem eval_mul (ρ : Nat → ℝ) (e₁ e₂ : Expr) : + eval ρ (mul e₁ e₂) = eval ρ e₁ * eval ρ e₂ := rfl + +@[simp] +theorem eval_neg (ρ : Nat → ℝ) (e : Expr) : eval ρ (neg e) = -(eval ρ e) := rfl + +@[simp] +theorem eval_inv (ρ : Nat → ℝ) (e : Expr) : eval ρ (inv e) = (eval ρ e)⁻¹ := rfl + +@[simp] +theorem eval_exp (ρ : Nat → ℝ) (e : Expr) : eval ρ (exp e) = Real.exp (eval ρ e) := rfl + +@[simp] +theorem eval_sin (ρ : Nat → ℝ) (e : Expr) : eval ρ (sin e) = Real.sin (eval ρ e) := rfl + +@[simp] +theorem eval_cos (ρ : Nat → ℝ) (e : Expr) : eval ρ (cos e) = Real.cos (eval ρ e) := rfl + +@[simp] +theorem eval_log (ρ : Nat → ℝ) (e : Expr) : eval ρ (log e) = Real.log (eval ρ e) := rfl + +@[simp] +theorem eval_atan (ρ : Nat → ℝ) (e : Expr) : eval ρ (atan e) = Real.arctan (eval ρ e) := rfl + +@[simp] +theorem eval_arsinh (ρ : Nat → ℝ) (e : Expr) : eval ρ (arsinh e) = Real.arsinh (eval ρ e) := rfl + +@[simp] +theorem eval_atanh (ρ : Nat → ℝ) (e : Expr) : eval ρ (atanh e) = Real.atanh (eval ρ e) := rfl + +@[simp] +theorem eval_sinc (ρ : Nat → ℝ) (e : Expr) : eval ρ (sinc e) = Real.sinc (eval ρ e) := rfl + +@[simp] +theorem eval_erf (ρ : Nat → ℝ) (e : Expr) : eval ρ (erf e) = Real.erf (eval ρ e) := rfl + +@[simp] +theorem eval_sinh (ρ : Nat → ℝ) (e : Expr) : eval ρ (sinh e) = Real.sinh (eval ρ e) := rfl + +@[simp] +theorem eval_cosh (ρ : Nat → ℝ) (e : Expr) : eval ρ (cosh e) = Real.cosh (eval ρ e) := rfl + +@[simp] +theorem eval_tanh (ρ : Nat → ℝ) (e : Expr) : eval ρ (tanh e) = Real.tanh (eval ρ e) := rfl + +@[simp] +theorem eval_sqrt (ρ : Nat → ℝ) (e : Expr) : eval ρ (sqrt e) = Real.sqrt (eval ρ e) := rfl + +@[simp] +theorem eval_namedConst (ρ : Nat → ℝ) (c : MathConst) : + eval ρ (namedConst c) = c.toReal := rfl + +theorem eval_eulerMascheroni (ρ : Nat → ℝ) : + eval ρ (namedConst .eulerMascheroni) = Real.eulerMascheroniConstant := rfl + +@[simp] +theorem eval_sub (ρ : Nat → ℝ) (e₁ e₂ : Expr) : + eval ρ (sub e₁ e₂) = eval ρ e₁ - eval ρ e₂ := by simp [sub, sub_eq_add_neg] + +@[simp] +theorem eval_div (ρ : Nat → ℝ) (e₁ e₂ : Expr) : + eval ρ (div e₁ e₂) = eval ρ e₁ / eval ρ e₂ := by simp [div, div_eq_mul_inv] + +@[simp] +theorem eval_pow (ρ : Nat → ℝ) (e : Expr) (n : ℕ) : + eval ρ (pow e n) = (eval ρ e) ^ n := by + induction n with + | zero => simp [pow] + | succ n ih => simp only [pow, eval_mul, ih, pow_succ'] + +/-- Evaluation of abs for any argument: |x| = sqrt(x²) -/ +theorem eval_abs (ρ : Nat → ℝ) (e : Expr) : + eval ρ (abs e) = |eval ρ e| := by + simp only [abs, eval_sqrt, eval_mul, ← sq, Real.sqrt_sq_eq_abs] + +/-- Evaluation of sqrt(x * x) = |x| (unfolded form of `abs`). -/ +theorem eval_sqrt_mul_self_eq_abs (ρ : Nat → ℝ) (e : Expr) : + eval ρ (sqrt (mul e e)) = |eval ρ e| := eval_abs ρ e + +/-- `√(x * x) = |x|` — LeanCert-namespaced alias of `Real.sqrt_mul_self_eq_abs`. -/ +theorem sqrt_mul_self_eq_abs (x : ℝ) : Real.sqrt (x * x) = |x| := + Real.sqrt_mul_self_eq_abs x + +/-- For positive x, sqrt(x²) = x -/ +theorem eval_sqrt_sq_of_pos (ρ : Nat → ℝ) (e : Expr) (hpos : 0 < eval ρ e) : + eval ρ (sqrt (mul e e)) = eval ρ e := by + simp only [eval_sqrt, eval_mul, ← sq, Real.sqrt_sq (le_of_lt hpos)] + +/-- Abs correctly computes absolute value for positive inputs -/ +theorem eval_abs_of_pos (ρ : Nat → ℝ) (e : Expr) (hpos : 0 < eval ρ e) : + eval ρ (abs e) = eval ρ e := by + rw [eval_abs, abs_of_pos hpos] + +/-- Abs correctly computes absolute value for negative inputs -/ +theorem eval_abs_of_neg (ρ : Nat → ℝ) (e : Expr) (hneg : eval ρ e < 0) : + eval ρ (abs e) = -(eval ρ e) := by + rw [eval_abs, abs_of_neg hneg] + +-- Lemmas about evalAlong + +theorem evalAlong_eq (e : Expr) (ρ : Nat → ℝ) (idx : Nat) (t : ℝ) : + evalAlong e ρ idx t = eval (ρ[idx ↦ t]) e := rfl + +theorem evalAlong_at_ρ (e : Expr) (ρ : Nat → ℝ) (idx : Nat) : + evalAlong e ρ idx (ρ idx) = eval ρ e := by + simp only [evalAlong, updateVar_self] + +/-- evalAlong for a constant is constant -/ +theorem evalAlong_const' (ρ : Nat → ℝ) (idx : Nat) (q : ℚ) : + evalAlong (const q) ρ idx = fun _ => (q : ℝ) := rfl + +/-- evalAlong for the active variable is the identity -/ +theorem evalAlong_var_active (ρ : Nat → ℝ) (idx : Nat) : + evalAlong (var idx) ρ idx = id := by + funext t + simp only [evalAlong, eval_var, updateVar_same, id_eq] + +/-- evalAlong for a passive variable is constant -/ +theorem evalAlong_var_passive (ρ : Nat → ℝ) (idx i : Nat) (h : i ≠ idx) : + evalAlong (var i) ρ idx = fun _ => ρ i := by + funext t + simp only [evalAlong, eval_var, updateVar_other _ _ _ _ h] + +/-- evalAlong for addition -/ +theorem evalAlong_add (e₁ e₂ : Expr) (ρ : Nat → ℝ) (idx : Nat) : + evalAlong (add e₁ e₂) ρ idx = fun t => evalAlong e₁ ρ idx t + evalAlong e₂ ρ idx t := by + funext t + simp only [evalAlong, eval_add] + +/-- evalAlong for addition (Pi form for compatibility with deriv_add) -/ +theorem evalAlong_add_pi (e₁ e₂ : Expr) (ρ : Nat → ℝ) (idx : Nat) : + evalAlong (add e₁ e₂) ρ idx = evalAlong e₁ ρ idx + evalAlong e₂ ρ idx := rfl + +/-- evalAlong for multiplication -/ +theorem evalAlong_mul (e₁ e₂ : Expr) (ρ : Nat → ℝ) (idx : Nat) : + evalAlong (mul e₁ e₂) ρ idx = fun t => evalAlong e₁ ρ idx t * evalAlong e₂ ρ idx t := by + funext t + simp only [evalAlong, eval_mul] + +/-- evalAlong for multiplication (Pi form for compatibility with deriv_mul) -/ +theorem evalAlong_mul_pi (e₁ e₂ : Expr) (ρ : Nat → ℝ) (idx : Nat) : + evalAlong (mul e₁ e₂) ρ idx = evalAlong e₁ ρ idx * evalAlong e₂ ρ idx := rfl + +/-- evalAlong for negation -/ +theorem evalAlong_neg (e : Expr) (ρ : Nat → ℝ) (idx : Nat) : + evalAlong (neg e) ρ idx = fun t => -(evalAlong e ρ idx t) := by + funext t + simp only [evalAlong, eval_neg] + +/-- evalAlong for negation (Pi form for compatibility with deriv.neg) -/ +theorem evalAlong_neg_pi (e : Expr) (ρ : Nat → ℝ) (idx : Nat) : + evalAlong (neg e) ρ idx = -evalAlong e ρ idx := rfl + +/-- evalAlong for sin -/ +theorem evalAlong_sin (e : Expr) (ρ : Nat → ℝ) (idx : Nat) : + evalAlong (sin e) ρ idx = fun t => Real.sin (evalAlong e ρ idx t) := by + funext t + simp only [evalAlong, eval_sin] + +/-- evalAlong for cos -/ +theorem evalAlong_cos (e : Expr) (ρ : Nat → ℝ) (idx : Nat) : + evalAlong (cos e) ρ idx = fun t => Real.cos (evalAlong e ρ idx t) := by + funext t + simp only [evalAlong, eval_cos] + +/-- evalAlong for exp -/ +theorem evalAlong_exp (e : Expr) (ρ : Nat → ℝ) (idx : Nat) : + evalAlong (exp e) ρ idx = fun t => Real.exp (evalAlong e ρ idx t) := by + funext t + simp only [evalAlong, eval_exp] + +/-- evalAlong for inv -/ +theorem evalAlong_inv (e : Expr) (ρ : Nat → ℝ) (idx : Nat) : + evalAlong (inv e) ρ idx = fun t => (evalAlong e ρ idx t)⁻¹ := by + funext t + simp only [evalAlong, eval_inv] + +/-- evalAlong for log -/ +theorem evalAlong_log (e : Expr) (ρ : Nat → ℝ) (idx : Nat) : + evalAlong (log e) ρ idx = fun t => Real.log (evalAlong e ρ idx t) := by + funext t + simp only [evalAlong, eval_log] + +/-- evalAlong for atan -/ +theorem evalAlong_atan (e : Expr) (ρ : Nat → ℝ) (idx : Nat) : + evalAlong (atan e) ρ idx = fun t => Real.arctan (evalAlong e ρ idx t) := by + funext t + simp only [evalAlong, eval_atan] + +/-- evalAlong for arsinh -/ +theorem evalAlong_arsinh (e : Expr) (ρ : Nat → ℝ) (idx : Nat) : + evalAlong (arsinh e) ρ idx = fun t => Real.arsinh (evalAlong e ρ idx t) := by + funext t + simp only [evalAlong, eval_arsinh] + +/-- evalAlong for atanh -/ +theorem evalAlong_atanh (e : Expr) (ρ : Nat → ℝ) (idx : Nat) : + evalAlong (atanh e) ρ idx = fun t => Real.atanh (evalAlong e ρ idx t) := by + funext t + simp only [evalAlong, eval_atanh] + +/-! ## Single-variable expressions + +For 1D optimization and root finding, we often work with expressions that only use variable 0. +These lemmas establish that such expressions can be evaluated equivalently with different +environment representations. +-/ + +/-- Check if an expression only uses variable 0 (computable) -/ +def usesOnlyVar0 : Expr → Bool + | const _ => true + | var n => n == 0 + | add e₁ e₂ => e₁.usesOnlyVar0 && e₂.usesOnlyVar0 + | mul e₁ e₂ => e₁.usesOnlyVar0 && e₂.usesOnlyVar0 + | neg e => e.usesOnlyVar0 + | inv e => e.usesOnlyVar0 + | exp e => e.usesOnlyVar0 + | sin e => e.usesOnlyVar0 + | cos e => e.usesOnlyVar0 + | log e => e.usesOnlyVar0 + | atan e => e.usesOnlyVar0 + | arsinh e => e.usesOnlyVar0 + | atanh e => e.usesOnlyVar0 + | sinc e => e.usesOnlyVar0 + | erf e => e.usesOnlyVar0 + | sinh e => e.usesOnlyVar0 + | cosh e => e.usesOnlyVar0 + | tanh e => e.usesOnlyVar0 + | sqrt e => e.usesOnlyVar0 + | namedConst _ => true + +/-- If two environments agree on variable 0, then a usesOnlyVar0 expression evaluates the same -/ +theorem eval_usesOnlyVar0_eq (e : Expr) (he : e.usesOnlyVar0 = true) + (ρ₁ ρ₂ : Nat → ℝ) (h0 : ρ₁ 0 = ρ₂ 0) : + eval ρ₁ e = eval ρ₂ e := by + induction e with + | const q => rfl + | var n => + simp only [usesOnlyVar0, beq_iff_eq] at he + simp only [eval_var, he, h0] + | add e₁ e₂ ih1 ih2 => + simp only [usesOnlyVar0, Bool.and_eq_true] at he + simp only [eval_add, ih1 he.1, ih2 he.2] + | mul e₁ e₂ ih1 ih2 => + simp only [usesOnlyVar0, Bool.and_eq_true] at he + simp only [eval_mul, ih1 he.1, ih2 he.2] + | neg e ih => + simp only [usesOnlyVar0] at he + simp only [eval_neg, ih he] + | inv e ih => + simp only [usesOnlyVar0] at he + simp only [eval_inv, ih he] + | exp e ih => + simp only [usesOnlyVar0] at he + simp only [eval_exp, ih he] + | sin e ih => + simp only [usesOnlyVar0] at he + simp only [eval_sin, ih he] + | cos e ih => + simp only [usesOnlyVar0] at he + simp only [eval_cos, ih he] + | log e ih => + simp only [usesOnlyVar0] at he + simp only [eval_log, ih he] + | atan e ih => + simp only [usesOnlyVar0] at he + simp only [eval_atan, ih he] + | arsinh e ih => + simp only [usesOnlyVar0] at he + simp only [eval_arsinh, ih he] + | atanh e ih => + simp only [usesOnlyVar0] at he + simp only [eval_atanh, ih he] + | sinc e ih => + simp only [usesOnlyVar0] at he + simp only [eval_sinc, ih he] + | erf e ih => + simp only [usesOnlyVar0] at he + simp only [eval_erf, ih he] + | sinh e ih => + simp only [usesOnlyVar0] at he + simp only [eval_sinh, ih he] + | cosh e ih => + simp only [usesOnlyVar0] at he + simp only [eval_cosh, ih he] + | tanh e ih => + simp only [usesOnlyVar0] at he + simp only [eval_tanh, ih he] + | sqrt e ih => + simp only [usesOnlyVar0] at he + simp only [eval_sqrt, ih he] + | namedConst _ => rfl + +/-- For single-variable expressions, `fun n => if n = 0 then x else 0` and `fun _ => x` + give the same evaluation result. -/ +theorem eval_1d_equiv (e : Expr) (he : e.usesOnlyVar0 = true) (x : ℝ) : + eval (fun n => if n = 0 then x else 0) e = eval (fun _ => x) e := by + apply eval_usesOnlyVar0_eq e he + simp + +/-- Alternative: evaluation with Box-style environment equals 1D evaluation -/ +theorem eval_box1d_eq_eval1d (e : Expr) (he : e.usesOnlyVar0 = true) (x : ℝ) : + eval (fun n => if n = 0 then x else 0) e = eval (fun _ => x) e := + eval_1d_equiv e he x + +end Expr + +end LeanCert.Core + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Abstract Interval Interface + +This file defines the abstract notion of intervals as subsets of ℝ, +with semantic properties. This provides the mathematical foundation +that `IntervalReal` will implement computationally. + +## Main definitions + +* Lemmas about `Set.Icc` (closed intervals) relevant to interval arithmetic +* Convexity and integrability properties + +## Design notes + +We primarily use `Set.Icc a b` from Mathlib as our semantic interval type. +This file collects lemmas and abstractions useful for verified numerics. +-/ + +/-! ### Interval membership and operations -/ + +@[expose] public section + +namespace LeanCert.Core + +/-- A real number is in the interval [a, b] -/ +abbrev memIcc (x a b : ℝ) : Prop := a ≤ x ∧ x ≤ b + +theorem mem_Icc_iff (x a b : ℝ) : memIcc x a b ↔ x ∈ Set.Icc a b := Iff.rfl + +/-! ### Interval arithmetic semantics + +These lemmas establish the semantic foundation for interval arithmetic: +if x ∈ [a, b] and y ∈ [c, d], then x ⊕ y ∈ [a ⊕ c, b ⊕ d] (for appropriate ⊕). +-/ + +/-- Addition preserves interval membership -/ +theorem add_mem_Icc {x y a b c d : ℝ} (hx : x ∈ Set.Icc a b) (hy : y ∈ Set.Icc c d) : + x + y ∈ Set.Icc (a + c) (b + d) := by + simp only [Set.mem_Icc] at * + constructor <;> linarith + +/-- Negation reverses interval bounds -/ +theorem neg_mem_Icc {x a b : ℝ} (hx : x ∈ Set.Icc a b) : + -x ∈ Set.Icc (-b) (-a) := by + simp only [Set.mem_Icc] at * + constructor <;> linarith + +/-- Subtraction on intervals -/ +theorem sub_mem_Icc {x y a b c d : ℝ} (hx : x ∈ Set.Icc a b) (hy : y ∈ Set.Icc c d) : + x - y ∈ Set.Icc (a - d) (b - c) := by + simp only [Set.mem_Icc] at * + constructor <;> linarith + +/-! ### Convexity -/ + +/-- Closed intervals are convex -/ +theorem Icc_convex (a b : ℝ) : Convex ℝ (Set.Icc a b) := convex_Icc a b + +/-! ### Compactness -/ + +/-- Nonempty closed bounded intervals are compact -/ +theorem Icc_compact (a b : ℝ) : IsCompact (Set.Icc a b) := isCompact_Icc + +/-! ### Continuous functions on intervals -/ + +/-- A continuous function on a compact interval attains its bounds -/ +theorem continuous_Icc_bounds {f : ℝ → ℝ} {a b : ℝ} (hab : a ≤ b) + (hf : Continuous f) : + ∃ (lo hi : ℝ), (∀ x ∈ Set.Icc a b, lo ≤ f x ∧ f x ≤ hi) ∧ + (∃ x ∈ Set.Icc a b, f x = lo) ∧ (∃ x ∈ Set.Icc a b, f x = hi) := by + have hne : (Set.Icc a b).Nonempty := Set.nonempty_Icc.mpr hab + have hcpt : IsCompact (Set.Icc a b) := isCompact_Icc + obtain ⟨xmin, hxmin_mem, hxmin⟩ := hcpt.exists_isMinOn hne hf.continuousOn + obtain ⟨xmax, hxmax_mem, hxmax⟩ := hcpt.exists_isMaxOn hne hf.continuousOn + exact ⟨f xmin, f xmax, + fun x hx => ⟨hxmin hx, hxmax hx⟩, + ⟨xmin, hxmin_mem, rfl⟩, + ⟨xmax, hxmax_mem, rfl⟩⟩ + +end LeanCert.Core + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Rational Endpoint Intervals - Core Definitions + +This file defines `IntervalRat`, a concrete interval type with rational endpoints +suitable for computation. We prove the Fundamental Theorem of Interval Arithmetic +(FTIA) for each operation. + +## Main definitions + +* `LeanCert.Core.IntervalRat` - Intervals with rational endpoints +* `LeanCert.Core.IntervalRat.toSet` - Semantic interpretation as a subset of ℝ +* Operations: `add`, `neg`, `sub`, `mul`, `inv`, `div` + +## Main theorems + +* `mem_add` - FTIA for addition +* `mem_neg` - FTIA for negation +* `mem_sub` - FTIA for subtraction +* `mem_mul` - FTIA for multiplication + +## Design notes + +All operations maintain the invariant `lo ≤ hi`. Domain restrictions for partial +operations (like `inv`) are encoded via separate types or explicit hypotheses. +-/ + +@[expose] public section + +namespace LeanCert.Core + +/-- An interval with rational endpoints -/ +structure IntervalRat where + /-- Lower endpoint of the interval. -/ + lo : ℚ + /-- Upper endpoint of the interval. -/ + hi : ℚ + le : lo ≤ hi + deriving Repr, DecidableEq + +/-- Default interval [0, 0] for unsupported expression branches -/ +instance : Inhabited IntervalRat where + default := ⟨0, 0, le_refl 0⟩ + +namespace IntervalRat + +/-- The set of reals contained in this interval -/ +def toSet (I : IntervalRat) : Set ℝ := Set.Icc (I.lo : ℝ) (I.hi : ℝ) + +/-- Membership in an interval -/ +instance : Membership ℝ IntervalRat where + mem I x := (I.lo : ℝ) ≤ x ∧ x ≤ (I.hi : ℝ) + +@[simp] +theorem mem_def (x : ℝ) (I : IntervalRat) : x ∈ I ↔ (I.lo : ℝ) ≤ x ∧ x ≤ (I.hi : ℝ) := + Iff.rfl + +/-- Membership in IntervalRat is the same as membership in Set.Icc -/ +theorem mem_iff_mem_Icc (x : ℝ) (I : IntervalRat) : x ∈ I ↔ x ∈ Set.Icc (I.lo : ℝ) (I.hi : ℝ) := by + simp only [mem_def, Set.mem_Icc] + +/-- Universal quantifier over IntervalRat equals universal over Set.Icc -/ +theorem forall_mem_iff_forall_Icc {P : ℝ → Prop} (I : IntervalRat) : + (∀ x ∈ I, P x) ↔ (∀ x ∈ Set.Icc (I.lo : ℝ) (I.hi : ℝ), P x) := by + constructor <;> intro h x hx <;> apply h <;> simp only [mem_iff_mem_Icc] at hx ⊢ <;> exact hx + +/-- Existence in IntervalRat equals existence in Set.Icc -/ +theorem exists_mem_iff_exists_Icc {P : ℝ → Prop} (I : IntervalRat) : + (∃ x ∈ I, P x) ↔ (∃ x ∈ Set.Icc (I.lo : ℝ) (I.hi : ℝ), P x) := by + constructor <;> intro ⟨x, hx, hp⟩ <;> exact ⟨x, by simp only [mem_iff_mem_Icc] at hx ⊢; exact + hx, hp⟩ + +/-- Create an interval from a single rational -/ +def singleton (q : ℚ) : IntervalRat := ⟨q, q, le_refl q⟩ + +theorem mem_singleton (q : ℚ) : (q : ℝ) ∈ singleton q := by + simp only [mem_def, singleton, le_refl, and_self] + +/-- The width of an interval -/ +def width (I : IntervalRat) : ℚ := I.hi - I.lo + +theorem width_nonneg (I : IntervalRat) : 0 ≤ I.width := by + simp only [width, sub_nonneg] + exact I.le + +/-- Midpoint of an interval -/ +def midpoint (I : IntervalRat) : ℚ := (I.lo + I.hi) / 2 + +/-- The midpoint of an interval is contained in the interval -/ +theorem midpoint_mem (I : IntervalRat) : (I.midpoint : ℝ) ∈ I := by + simp only [mem_def, midpoint] + have hle : (I.lo : ℝ) ≤ I.hi := by exact_mod_cast I.le + constructor + · -- lo ≤ (lo + hi) / 2 + have : (((I.lo + I.hi) / 2 : ℚ) : ℝ) = ((I.lo : ℝ) + I.hi) / 2 := by + simp only [Rat.cast_div, Rat.cast_add, Rat.cast_ofNat] + rw [this] + linarith + · -- (lo + hi) / 2 ≤ hi + have : (((I.lo + I.hi) / 2 : ℚ) : ℝ) = ((I.lo : ℝ) + I.hi) / 2 := by + simp only [Rat.cast_div, Rat.cast_add, Rat.cast_ofNat] + rw [this] + linarith + +/-! ### Interval addition -/ + +/-- Add two intervals -/ +def add (I J : IntervalRat) : IntervalRat where + lo := I.lo + J.lo + hi := I.hi + J.hi + le := by linarith [I.le, J.le] + +/-- FTIA for addition -/ +theorem mem_add {x y : ℝ} {I J : IntervalRat} (hx : x ∈ I) (hy : y ∈ J) : + x + y ∈ add I J := by + simp only [mem_def] at * + simp only [add, Rat.cast_add] + constructor <;> linarith + +/-! ### Interval negation -/ + +/-- Negate an interval -/ +def neg (I : IntervalRat) : IntervalRat where + lo := -I.hi + hi := -I.lo + le := by linarith [I.le] + +/-- FTIA for negation -/ +theorem mem_neg {x : ℝ} {I : IntervalRat} (hx : x ∈ I) : -x ∈ neg I := by + simp only [mem_def] at * + simp only [neg, Rat.cast_neg] + constructor <;> linarith + +/-! ### Interval subtraction -/ + +/-- Subtract two intervals -/ +def sub (I J : IntervalRat) : IntervalRat := add I (neg J) + +/-- FTIA for subtraction -/ +theorem mem_sub {x y : ℝ} {I J : IntervalRat} (hx : x ∈ I) (hy : y ∈ J) : + x - y ∈ sub I J := by + simp only [sub_eq_add_neg] + exact mem_add hx (mem_neg hy) + +/-! ### Interval multiplication -/ + +/-- Helper: minimum of four rationals -/ +def min4 (a b c d : ℚ) : ℚ := min (min a b) (min c d) + +/-- Helper: maximum of four rationals -/ +def max4 (a b c d : ℚ) : ℚ := max (max a b) (max c d) + +theorem min4_le_all (a b c d : ℚ) : + min4 a b c d ≤ a ∧ min4 a b c d ≤ b ∧ min4 a b c d ≤ c ∧ min4 a b c d ≤ d := by + simp only [min4] + refine ⟨?_, ?_, ?_, ?_⟩ + · exact le_trans (min_le_left _ _) (min_le_left _ _) + · exact le_trans (min_le_left _ _) (min_le_right _ _) + · exact le_trans (min_le_right _ _) (min_le_left _ _) + · exact le_trans (min_le_right _ _) (min_le_right _ _) + +theorem all_le_max4 (a b c d : ℚ) : + a ≤ max4 a b c d ∧ b ≤ max4 a b c d ∧ c ≤ max4 a b c d ∧ d ≤ max4 a b c d := by + simp only [max4] + refine ⟨?_, ?_, ?_, ?_⟩ + · exact le_trans (le_max_left _ _) (le_max_left _ _) + · exact le_trans (le_max_right _ _) (le_max_left _ _) + · exact le_trans (le_max_left _ _) (le_max_right _ _) + · exact le_trans (le_max_right _ _) (le_max_right _ _) + +theorem le_min4_iff (x a b c d : ℚ) : + x ≤ min4 a b c d ↔ x ≤ a ∧ x ≤ b ∧ x ≤ c ∧ x ≤ d := by + simp only [min4, le_min_iff, and_assoc] + +theorem max4_le_iff (x a b c d : ℚ) : + max4 a b c d ≤ x ↔ a ≤ x ∧ b ≤ x ∧ c ≤ x ∧ d ≤ x := by + simp only [max4, max_le_iff, and_assoc] + +/-- Multiply two intervals -/ +def mul (I J : IntervalRat) : IntervalRat where + lo := min4 (I.lo * J.lo) (I.lo * J.hi) (I.hi * J.lo) (I.hi * J.hi) + hi := max4 (I.lo * J.lo) (I.lo * J.hi) (I.hi * J.lo) (I.hi * J.hi) + le := by + simp only [min4, max4] + exact le_trans (min_le_of_left_le (min_le_left _ _)) + (le_max_of_le_left (le_max_left _ _)) + +/-- Fast interval multiplication using sign-based case splitting. + Reduces from 4 multiplications + 12 comparisons to 2 multiplications + in the common case (both intervals positive or both negative). + Falls back to the full 4-way product for mixed-sign intervals. -/ +def mulFast (I J : IntervalRat) : IntervalRat := + if hIlo : I.lo ≥ 0 then + if hJlo : J.lo ≥ 0 then + ⟨I.lo * J.lo, I.hi * J.hi, by nlinarith [I.le, J.le]⟩ + else if hJhi : J.hi ≤ 0 then + ⟨I.hi * J.lo, I.lo * J.hi, by nlinarith [I.le, J.le]⟩ + else + ⟨I.hi * J.lo, I.hi * J.hi, by nlinarith [I.le, J.le]⟩ + else if hIhi : I.hi ≤ 0 then + if hJlo : J.lo ≥ 0 then + ⟨I.lo * J.hi, I.hi * J.lo, by nlinarith [I.le, J.le]⟩ + else if hJhi : J.hi ≤ 0 then + ⟨I.hi * J.hi, I.lo * J.lo, by nlinarith [I.le, J.le]⟩ + else + ⟨I.lo * J.hi, I.lo * J.lo, by nlinarith [I.le, J.le]⟩ + else + if hJlo : J.lo ≥ 0 then + ⟨I.lo * J.hi, I.hi * J.hi, by nlinarith [I.le, J.le]⟩ + else if hJhi : J.hi ≤ 0 then + ⟨I.hi * J.lo, I.lo * J.lo, by nlinarith [I.le, J.le]⟩ + else + mul I J + +/- We intentionally do not attach `mulFast` as a native replacement here. + Native certificate checking should execute the same definition that the + kernel proofs reason about. Keep `mulFast` available only as an internal + candidate for future explicitly-audited runtime backends. -/ + +/-- Helper: for x ∈ [a₁, a₂], x*y lies between endpoint products. + When y ≥ 0: a₁*y ≤ x*y ≤ a₂*y + When y ≤ 0: a₂*y ≤ x*y ≤ a₁*y -/ +private theorem mul_mem_endpoints_left {x a₁ a₂ y : ℝ} + (ha : a₁ ≤ x ∧ x ≤ a₂) : + min (a₁ * y) (a₂ * y) ≤ x * y ∧ x * y ≤ max (a₁ * y) (a₂ * y) := by + by_cases! hy : 0 ≤ y + · -- y ≥ 0: multiplication preserves order, so a₁*y ≤ x*y ≤ a₂*y + have h1 : a₁ * y ≤ x * y := mul_le_mul_of_nonneg_right ha.1 hy + have h2 : x * y ≤ a₂ * y := mul_le_mul_of_nonneg_right ha.2 hy + constructor + · exact le_trans (min_le_left _ _) h1 + · exact le_trans h2 (le_max_right _ _) + · -- y < 0: multiplication reverses order, so a₂*y ≤ x*y ≤ a₁*y + have hy' := le_of_lt hy + have h1 : a₂ * y ≤ x * y := mul_le_mul_of_nonpos_right ha.2 hy' + have h2 : x * y ≤ a₁ * y := mul_le_mul_of_nonpos_right ha.1 hy' + constructor + · exact le_trans (min_le_right _ _) h1 + · exact le_trans h2 (le_max_left _ _) + +/-- Helper: for y ∈ [b₁, b₂], x*y lies between endpoint products. + When x ≥ 0: x*b₁ ≤ x*y ≤ x*b₂ + When x ≤ 0: x*b₂ ≤ x*y ≤ x*b₁ -/ +private theorem mul_mem_endpoints_right {y b₁ b₂ x : ℝ} + (hb : b₁ ≤ y ∧ y ≤ b₂) : + min (x * b₁) (x * b₂) ≤ x * y ∧ x * y ≤ max (x * b₁) (x * b₂) := by + by_cases! hx : 0 ≤ x + · -- x ≥ 0: multiplication preserves order, so x*b₁ ≤ x*y ≤ x*b₂ + have h1 : x * b₁ ≤ x * y := mul_le_mul_of_nonneg_left hb.1 hx + have h2 : x * y ≤ x * b₂ := mul_le_mul_of_nonneg_left hb.2 hx + constructor + · exact le_trans (min_le_left _ _) h1 + · exact le_trans h2 (le_max_right _ _) + · -- x < 0: multiplication reverses order, so x*b₂ ≤ x*y ≤ x*b₁ + have hx' := le_of_lt hx + have h1 : x * b₂ ≤ x * y := mul_le_mul_of_nonpos_left hb.2 hx' + have h2 : x * y ≤ x * b₁ := mul_le_mul_of_nonpos_left hb.1 hx' + constructor + · exact le_trans (min_le_right _ _) h1 + · exact le_trans h2 (le_max_left _ _) + +/-- Lower bound: xy ≥ min of corner products -/ +private theorem mul_lower_bound {x y a₁ a₂ b₁ b₂ : ℝ} + (ha : a₁ ≤ x ∧ x ≤ a₂) (hb : b₁ ≤ y ∧ y ≤ b₂) : + min (min (a₁ * b₁) (a₁ * b₂)) (min (a₂ * b₁) (a₂ * b₂)) ≤ x * y := by + -- First, x*y ≥ min(a₁*y, a₂*y) from mul_mem_endpoints_left + have h1 := (mul_mem_endpoints_left (y := y) ha).1 + -- Now we need: min of corners ≤ min(a₁*y, a₂*y) + -- Case split on whether a₁*y ≤ a₂*y + by_cases! hcmp : a₁ * y ≤ a₂ * y + · -- min(a₁*y, a₂*y) = a₁*y + rw [min_eq_left hcmp] at h1 + -- Need: min corners ≤ a₁*y + -- a₁*y is between a₁*b₁ and a₁*b₂, so min(a₁*b₁, a₁*b₂) ≤ a₁*y + have h2 := (mul_mem_endpoints_right hb (x := a₁)).1 + calc min (min (a₁ * b₁) (a₁ * b₂)) (min (a₂ * b₁) (a₂ * b₂)) + ≤ min (a₁ * b₁) (a₁ * b₂) := min_le_left _ _ + _ ≤ a₁ * y := h2 + _ ≤ x * y := h1 + · -- min(a₁*y, a₂*y) = a₂*y + rw [min_eq_right (le_of_lt hcmp)] at h1 + have h2 := (mul_mem_endpoints_right hb (x := a₂)).1 + calc min (min (a₁ * b₁) (a₁ * b₂)) (min (a₂ * b₁) (a₂ * b₂)) + ≤ min (a₂ * b₁) (a₂ * b₂) := min_le_right _ _ + _ ≤ a₂ * y := h2 + _ ≤ x * y := h1 + +/-- Upper bound: xy ≤ max of corner products -/ +private theorem mul_upper_bound {x y a₁ a₂ b₁ b₂ : ℝ} + (ha : a₁ ≤ x ∧ x ≤ a₂) (hb : b₁ ≤ y ∧ y ≤ b₂) : + x * y ≤ max (max (a₁ * b₁) (a₁ * b₂)) (max (a₂ * b₁) (a₂ * b₂)) := by + have h1 := (mul_mem_endpoints_left (y := y) ha).2 + by_cases! hcmp : a₁ * y ≤ a₂ * y + · rw [max_eq_right hcmp] at h1 + have h2 := (mul_mem_endpoints_right hb (x := a₂)).2 + calc x * y + ≤ a₂ * y := h1 + _ ≤ max (a₂ * b₁) (a₂ * b₂) := h2 + _ ≤ max (max (a₁ * b₁) (a₁ * b₂)) (max (a₂ * b₁) (a₂ * b₂)) := le_max_right _ _ + · rw [max_eq_left (le_of_lt hcmp)] at h1 + have h2 := (mul_mem_endpoints_right hb (x := a₁)).2 + calc x * y + ≤ a₁ * y := h1 + _ ≤ max (a₁ * b₁) (a₁ * b₂) := h2 + _ ≤ max (max (a₁ * b₁) (a₁ * b₂)) (max (a₂ * b₁) (a₂ * b₂)) := le_max_left _ _ + +/-- Key lemma: product lies in convex hull of corner products. + For x ∈ [a₁, a₂] and y ∈ [b₁, b₂], we have + min{a₁b₁, a₁b₂, a₂b₁, a₂b₂} ≤ xy ≤ max{a₁b₁, a₁b₂, a₂b₁, a₂b₂} + + This is a standard result from interval arithmetic: extrema of bilinear + functions on rectangles occur at corners. -/ +private theorem mul_mem_corners {x y a₁ a₂ b₁ b₂ : ℝ} + (ha : a₁ ≤ x ∧ x ≤ a₂) (hb : b₁ ≤ y ∧ y ≤ b₂) : + min (min (a₁ * b₁) (a₁ * b₂)) (min (a₂ * b₁) (a₂ * b₂)) ≤ x * y ∧ + x * y ≤ max (max (a₁ * b₁) (a₁ * b₂)) (max (a₂ * b₁) (a₂ * b₂)) := + ⟨mul_lower_bound ha hb, mul_upper_bound ha hb⟩ + +/-- FTIA for multiplication -/ +theorem mem_mul {x y : ℝ} {I J : IntervalRat} (hx : x ∈ I) (hy : y ∈ J) : + x * y ∈ mul I J := by + simp only [mem_def] at * + simp only [mul, min4, max4, Rat.cast_mul, Rat.cast_min, Rat.cast_max] + exact mul_mem_corners hx hy + +/-- Helper: show a = min4 a b c d when a ≤ b, a ≤ c, a ≤ d -/ +theorem eq_min4_of_le {a b c d : ℚ} (h1 : a ≤ b) (h2 : a ≤ c) (h3 : a ≤ d) : + a = min4 a b c d := le_antisymm ((le_min4_iff _ _ _ _ _).mpr ⟨le_refl _, h1, h2, h3⟩) + (min4_le_all _ _ _ _).1 + +theorem eq_min4_of_le2 {a b c d : ℚ} (h1 : b ≤ a) (h2 : b ≤ c) (h3 : b ≤ d) : + b = min4 a b c d := le_antisymm ((le_min4_iff _ _ _ _ _).mpr ⟨h1, le_refl _, h2, h3⟩) + (min4_le_all _ _ _ _).2.1 + +theorem eq_min4_of_le3 {a b c d : ℚ} (h1 : c ≤ a) (h2 : c ≤ b) (h3 : c ≤ d) : + c = min4 a b c d := le_antisymm ((le_min4_iff _ _ _ _ _).mpr ⟨h1, h2, le_refl _, h3⟩) + (min4_le_all _ _ _ _).2.2.1 + +theorem eq_min4_of_le4 {a b c d : ℚ} (h1 : d ≤ a) (h2 : d ≤ b) (h3 : d ≤ c) : + d = min4 a b c d := le_antisymm ((le_min4_iff _ _ _ _ _).mpr ⟨h1, h2, h3, le_refl _⟩) + (min4_le_all _ _ _ _).2.2.2 + +theorem eq_max4_of_ge {a b c d : ℚ} (h1 : b ≤ a) (h2 : c ≤ a) (h3 : d ≤ a) : + a = max4 a b c d := le_antisymm (all_le_max4 _ _ _ _).1 ((max4_le_iff _ _ _ _ _).mpr ⟨le_refl + _, h1, h2, h3⟩) + +theorem eq_max4_of_ge2 {a b c d : ℚ} (h1 : a ≤ b) (h2 : c ≤ b) (h3 : d ≤ b) : + b = max4 a b c d := le_antisymm (all_le_max4 _ _ _ _).2.1 ((max4_le_iff _ _ _ _ _).mpr ⟨h1, + le_refl _, h2, h3⟩) + +theorem eq_max4_of_ge3 {a b c d : ℚ} (h1 : a ≤ c) (h2 : b ≤ c) (h3 : d ≤ c) : + c = max4 a b c d := le_antisymm (all_le_max4 _ _ _ _).2.2.1 ((max4_le_iff _ _ _ _ _).mpr ⟨h1, + h2, le_refl _, h3⟩) + +theorem eq_max4_of_ge4 {a b c d : ℚ} (h1 : a ≤ d) (h2 : b ≤ d) (h3 : c ≤ d) : + d = max4 a b c d := le_antisymm (all_le_max4 _ _ _ _).2.2.2 ((max4_le_iff _ _ _ _ _).mpr ⟨h1, + h2, h3, le_refl _⟩) + +/-- mulFast endpoints match mul endpoints: lo -/ +private theorem mulFast_lo (I J : IntervalRat) : (mulFast I J).lo = (mul I J).lo := by + simp only [mulFast, mul] + split + · split + · exact eq_min4_of_le (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · split + · exact eq_min4_of_le3 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · exact eq_min4_of_le3 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · split + · split + · exact eq_min4_of_le2 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · split + · exact eq_min4_of_le4 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · exact eq_min4_of_le2 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · split + · exact eq_min4_of_le2 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · split + · exact eq_min4_of_le3 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · rfl + +/-- mulFast endpoints match mul endpoints: hi -/ +private theorem mulFast_hi (I J : IntervalRat) : (mulFast I J).hi = (mul I J).hi := by + simp only [mulFast, mul] + split + · split + · exact eq_max4_of_ge4 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · split + · exact eq_max4_of_ge2 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · exact eq_max4_of_ge4 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · split + · split + · exact eq_max4_of_ge3 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · split + · exact eq_max4_of_ge (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · exact eq_max4_of_ge (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · split + · exact eq_max4_of_ge4 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · split + · exact eq_max4_of_ge (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · rfl + +/-- `mulFast` preserves the containment property of `mul`. + This is retained as documentation and a future audited optimization hook; + production certificate checking currently uses `mul` directly. -/ +theorem mem_mulFast {x y : ℝ} {I J : IntervalRat} (hx : x ∈ I) (hy : y ∈ J) : + x * y ∈ mulFast I J := by + simp only [mem_def] + rw [mulFast_lo, mulFast_hi] + exact mem_mul hx hy + +/-! ### Interval containing zero check -/ + +/-- Check if an interval contains zero -/ +def containsZero (I : IntervalRat) : Prop := I.lo ≤ 0 ∧ 0 ≤ I.hi + +/-- Decidable containsZero -/ +instance (I : IntervalRat) : Decidable (containsZero I) := + inferInstanceAs (Decidable (I.lo ≤ 0 ∧ 0 ≤ I.hi)) + +/-- An interval that is guaranteed not to contain zero -/ +structure IntervalRatNonzero extends IntervalRat where + nonzero : ¬containsZero toIntervalRat + +/-! ### Interval inversion (for nonzero intervals) -/ + +/-- Invert an interval that doesn't contain zero -/ +def invNonzero (I : IntervalRatNonzero) : IntervalRat := + if h : 0 < I.lo then + -- Positive interval: [1/hi, 1/lo] + { lo := I.hi⁻¹ + hi := I.lo⁻¹ + le := by + have hlo : (0 : ℚ) < I.lo := h + have hhi : (0 : ℚ) < I.hi := lt_of_lt_of_le hlo I.le + exact inv_anti₀ hlo I.le } + else + -- Negative interval: [1/hi, 1/lo] (both negative) + { lo := I.hi⁻¹ + hi := I.lo⁻¹ + le := by + have hlo_le : I.lo ≤ 0 := le_of_not_gt h + have hhi_neg : I.hi < 0 := by + have hnz := I.nonzero + simp only [containsZero, not_and, not_le] at hnz + exact hnz hlo_le + have hlo_neg : I.lo < 0 := lt_of_le_of_lt I.le hhi_neg + exact (inv_le_inv_of_neg hhi_neg hlo_neg).mpr I.le } + +/-! ### FTIA for inversion -/ + +theorem mem_invNonzero {x : ℝ} {I : IntervalRatNonzero} (hx : x ∈ I.toIntervalRat) (_hxne : x ≠ 0) : + x⁻¹ ∈ invNonzero I := by + simp only [mem_def] at * + simp only [invNonzero] + split_ifs with h + · -- Positive case: 0 < I.lo + have hlo_pos : (0 : ℝ) < I.lo := by exact_mod_cast h + have hx_pos : 0 < x := lt_of_lt_of_le hlo_pos hx.1 + have hhi_pos : (0 : ℝ) < I.hi := lt_of_lt_of_le hlo_pos (by exact_mod_cast I.le) + simp only [Rat.cast_inv] + constructor + · exact inv_anti₀ hx_pos hx.2 + · exact inv_anti₀ (by exact_mod_cast h) hx.1 + · -- Negative case + have hlo_le : I.lo ≤ 0 := le_of_not_gt h + have hhi_neg : I.hi < 0 := by + have hnz := I.nonzero + simp only [containsZero, not_and, not_le] at hnz + exact hnz hlo_le + have hlo_neg : I.lo < 0 := lt_of_le_of_lt I.le hhi_neg + have hx_neg : x < 0 := lt_of_le_of_lt hx.2 (by exact_mod_cast hhi_neg) + have hhi_neg_r : (I.hi : ℝ) < 0 := by exact_mod_cast hhi_neg + have hlo_neg_r : (I.lo : ℝ) < 0 := by exact_mod_cast hlo_neg + simp only [Rat.cast_inv] + constructor + · exact (inv_le_inv_of_neg hhi_neg_r hx_neg).mpr hx.2 + · exact (inv_le_inv_of_neg hx_neg hlo_neg_r).mpr hx.1 + +/-! ### Scalar operations -/ + +/-- Scale an interval by a rational -/ +def scale (q : ℚ) (I : IntervalRat) : IntervalRat := + if hq : 0 ≤ q then + { lo := q * I.lo + hi := q * I.hi + le := mul_le_mul_of_nonneg_left I.le hq } + else + { lo := q * I.hi + hi := q * I.lo + le := mul_le_mul_of_nonpos_left I.le (le_of_lt (not_le.mp hq)) } + +/-- FTIA for scaling -/ +theorem mem_scale {x : ℝ} {I : IntervalRat} (q : ℚ) (hx : x ∈ I) : + (q : ℝ) * x ∈ scale q I := by + simp only [mem_def, scale] at * + split_ifs with hq + · simp only [Rat.cast_mul] + constructor + · exact mul_le_mul_of_nonneg_left hx.1 (Rat.cast_nonneg.mpr hq) + · exact mul_le_mul_of_nonneg_left hx.2 (Rat.cast_nonneg.mpr hq) + · simp only [Rat.cast_mul] + have hq' : (q : ℝ) ≤ 0 := Rat.cast_nonpos.mpr (le_of_lt (not_le.mp hq)) + constructor + · exact mul_le_mul_of_nonpos_left hx.2 hq' + · exact mul_le_mul_of_nonpos_left hx.1 hq' + +/-! ### Interval splitting -/ + +/-- Split an interval at its midpoint -/ +def bisect (I : IntervalRat) : IntervalRat × IntervalRat := + let m := I.midpoint + (⟨I.lo, m, by change I.lo ≤ (I.lo + I.hi) / 2; linarith [I.le]⟩, + ⟨m, I.hi, by change (I.lo + I.hi) / 2 ≤ I.hi; linarith [I.le]⟩) + +theorem mem_bisect_left {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (hm : x ≤ I.midpoint) : + x ∈ (bisect I).1 := by + simp only [mem_def, bisect] at * + exact ⟨hx.1, hm⟩ + +theorem mem_bisect_right {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (hm : I.midpoint ≤ x) : + x ∈ (bisect I).2 := by + simp only [mem_def, bisect] at * + exact ⟨hm, hx.2⟩ + +/-- Distance from midpoint to lo is half the width -/ +theorem midpoint_sub_lo (I : IntervalRat) : + (I.midpoint : ℝ) - I.lo = (I.hi - I.lo) / 2 := by + simp only [midpoint] + simp only [Rat.cast_div, Rat.cast_add, Rat.cast_ofNat] + ring + +/-- Distance from hi to midpoint is half the width -/ +theorem hi_sub_midpoint (I : IntervalRat) : + (I.hi : ℝ) - I.midpoint = (I.hi - I.lo) / 2 := by + simp only [midpoint] + simp only [Rat.cast_div, Rat.cast_add, Rat.cast_ofNat] + ring + +/-- Midpoint is at least lo -/ +theorem midpoint_ge_lo (I : IntervalRat) : I.lo ≤ I.midpoint := by + simp only [midpoint] + have h := I.le + linarith + +/-- Midpoint is at most hi -/ +theorem midpoint_le_hi (I : IntervalRat) : I.midpoint ≤ I.hi := by + simp only [midpoint] + have h := I.le + linarith + +/-- Midpoint is at least lo (real version) -/ +theorem midpoint_ge_lo_real (I : IntervalRat) : (I.lo : ℝ) ≤ I.midpoint := by + have := midpoint_ge_lo I + exact_mod_cast this + +/-- Midpoint is at most hi (real version) -/ +theorem midpoint_le_hi_real (I : IntervalRat) : (I.midpoint : ℝ) ≤ I.hi := by + have := midpoint_le_hi I + exact_mod_cast this + +/-- Left bisection is a subset of the original interval -/ +theorem mem_of_mem_bisect_left {x : ℝ} {I : IntervalRat} (hx : x ∈ (bisect I).1) : x ∈ I := by + simp only [mem_def, bisect] at * + constructor + · exact hx.1 + · exact le_trans hx.2 (Rat.cast_le.mpr (midpoint_le_hi I)) + +/-- Right bisection is a subset of the original interval -/ +theorem mem_of_mem_bisect_right {x : ℝ} {I : IntervalRat} (hx : x ∈ (bisect I).2) : x ∈ I := by + simp only [mem_def, bisect] at * + constructor + · exact le_trans (Rat.cast_le.mpr (midpoint_ge_lo I)) hx.1 + · exact hx.2 + +/-- Any point in an interval is in one of its bisected halves -/ +theorem mem_bisect_or {x : ℝ} {I : IntervalRat} (hx : x ∈ I) : + x ∈ (bisect I).1 ∨ x ∈ (bisect I).2 := by + by_cases hm : x ≤ I.midpoint + · left; exact mem_bisect_left hx hm + · right; exact mem_bisect_right hx (le_of_lt (not_le.mp hm)) + +/-- The default interval [0,0] contains only 0 -/ +theorem mem_default (x : ℝ) : x ∈ (default : IntervalRat) ↔ x = 0 := by + simp only [mem_def, Inhabited.default, Rat.cast_zero] + constructor + · intro ⟨h1, h2⟩; linarith + · intro h; subst h; exact ⟨le_refl _, le_refl _⟩ + +/-! ### Interval intersection -/ + +/-- Intersect two intervals. Returns none if they don't intersect. -/ +def intersect (I J : IntervalRat) : Option IntervalRat := + let lo := max I.lo J.lo + let hi := min I.hi J.hi + if h : lo ≤ hi then + some ⟨lo, hi, h⟩ + else + none + +/-- If intersection succeeds, the result contains any point in both intervals -/ +theorem mem_intersect {x : ℝ} {I J : IntervalRat} (hI : x ∈ I) (hJ : x ∈ J) : + ∃ K, intersect I J = some K ∧ x ∈ K := by + simp only [mem_def] at hI hJ + -- Work with the max/min at rational level + have hle : max I.lo J.lo ≤ min I.hi J.hi := by + have hmax_le : (I.lo : ℝ) ⊔ (J.lo : ℝ) ≤ x := sup_le hI.1 hJ.1 + have hle_min : x ≤ (I.hi : ℝ) ⊓ (J.hi : ℝ) := le_inf hI.2 hJ.2 + have hR : (I.lo : ℝ) ⊔ (J.lo : ℝ) ≤ (I.hi : ℝ) ⊓ (J.hi : ℝ) := le_trans hmax_le hle_min + -- Convert back: on ℚ, max = sup and min = inf + calc max I.lo J.lo = I.lo ⊔ J.lo := rfl + _ ≤ I.hi ⊓ J.hi := by exact_mod_cast hR + _ = min I.hi J.hi := rfl + simp only [intersect, hle, ↓reduceDIte] + refine ⟨⟨max I.lo J.lo, min I.hi J.hi, hle⟩, rfl, ?_⟩ + simp only [mem_def] + constructor + · -- Show (max I.lo J.lo : ℝ) ≤ x + have h1 : max I.lo J.lo ≤ I.lo ∨ max I.lo J.lo = I.lo ∨ max I.lo J.lo = J.lo := by + simp only [max_def]; split_ifs <;> simp + cases le_or_gt I.lo J.lo with + | inl h => simp only [max_eq_right h]; exact hJ.1 + | inr h => simp only [max_eq_left (le_of_lt h)]; exact hI.1 + · -- Show x ≤ (min I.hi J.hi : ℝ) + cases le_or_gt I.hi J.hi with + | inl h => simp only [min_eq_left h]; exact hI.2 + | inr h => simp only [min_eq_right (le_of_lt h)]; exact hJ.2 + +/-- If intersection returns some K, then K ⊆ I -/ +theorem intersect_subset_left {I J K : IntervalRat} (h : intersect I J = some K) : + K.lo ≥ I.lo ∧ K.hi ≤ I.hi := by + simp only [intersect] at h + by_cases hle : max I.lo J.lo ≤ min I.hi J.hi + · simp only [hle, ↓reduceDIte, Option.some.injEq] at h + subst h + exact ⟨le_sup_left, inf_le_left⟩ + · simp only [hle, ↓reduceDIte, reduceCtorEq] at h + +/-- If intersection returns some K, then K ⊆ J -/ +theorem intersect_subset_right {I J K : IntervalRat} (h : intersect I J = some K) : + K.lo ≥ J.lo ∧ K.hi ≤ J.hi := by + simp only [intersect] at h + by_cases hle : max I.lo J.lo ≤ min I.hi J.hi + · simp only [hle, ↓reduceDIte, Option.some.injEq] at h + subst h + exact ⟨le_sup_right, inf_le_right⟩ + · simp only [hle, ↓reduceDIte, reduceCtorEq] at h + +end IntervalRat + +end LeanCert.Core + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ + +/-! +# Verified Argument Reduction for Logarithm + +This file provides argument reduction for computing log(q) using the identity: + log(q) = log(m) + k * log(2) +where m = q * 2^(-k) is in a "good" range [1/2, 2] for Taylor series convergence. + +## Main definitions + +* `reductionExponent` - Find k such that q * 2^(-k) is in [1/2, 2] +* `reduceMantissa` - The reduced mantissa m = q * 2^(-k) + +## Main theorems + +* `reconstruction_eq` - Algebraic identity: q = m * 2^k +* `reduced_bounds` - Bounds on m: 1 / 2 ≤ m ≤ 2 for q > 0 + +## Design notes + +This reduction allows us to use the rapidly converging atanh-based series: + log(m) = 2 * atanh((m-1)/(m+1)) +For m ∈ [1/2, 2], we have (m-1)/(m+1) ∈ [-1/3, 1/3], where atanh converges very fast. +-/ + +/-! ### Argument Reduction -/ + +@[expose] public section + +namespace LeanCert.Core.LogReduction + +/-- Find k such that q * 2^(-k) is approximately in [1/2, 2]. + Implementation: k = log2(num) - log2(den) approximately. -/ +def reductionExponent (q : ℚ) : ℤ := + if q ≤ 0 then 0 + else + let n_log := q.num.natAbs.log2 + let d_log := q.den.log2 + (n_log : ℤ) - (d_log : ℤ) + +/-- The reduced mantissa m = q * 2^(-k). -/ +def reduceMantissa (q : ℚ) : ℚ := + if q ≤ 0 then 1 -- Default for non-positive inputs + else + let k := reductionExponent q + q * (2 : ℚ) ^ (-k) + +/-- The main algebraic theorem: q = m * 2^k for positive q -/ +theorem reconstruction_eq {q : ℚ} (hq : 0 < q) : + let k := reductionExponent q + let m := reduceMantissa q + q = m * (2 : ℚ) ^ k := by + simp only [reductionExponent, reduceMantissa, not_le.mpr hq, ↓reduceIte] + -- Goal: q = (q * 2^(-k)) * 2^k = q * (2^(-k) * 2^k) = q * 2^0 = q + rw [mul_assoc, ← zpow_add₀ (by norm_num : (2 : ℚ) ≠ 0)] + simp only [neg_add_cancel, zpow_zero, mul_one] + +/-- The reduced mantissa is bounded: 1/4 ≤ m ≤ 4 for q > 0. + (We use slightly weaker bounds than [1/2, 2] for simpler proofs, + but the series still converges rapidly.) -/ +theorem reduced_bounds_weak {q : ℚ} (hq : 0 < q) : + let m := reduceMantissa q + 1 / 4 ≤ m ∧ m ≤ 4 := by + simp only [reduceMantissa, reductionExponent, not_le.mpr hq, ↓reduceIte] + set n := q.num.natAbs.log2 with hn_def + set d := q.den.log2 with hd_def + have hnum_pos : q.num > 0 := Rat.num_pos.mpr hq + have hnum_ne : q.num.natAbs ≠ 0 := Int.natAbs_ne_zero.mpr (ne_of_gt hnum_pos) + have hden_pos := q.den_pos + have hden_ne : q.den ≠ 0 := ne_of_gt hden_pos + have h_num_lo : (2 : ℕ) ^ n ≤ q.num.natAbs := Nat.log2_self_le hnum_ne + have h_num_hi : q.num.natAbs < 2 ^ (n + 1) := (Nat.log2_lt hnum_ne).mp (Nat.lt_succ_self _) + have h_den_lo : (2 : ℕ) ^ d ≤ q.den := Nat.log2_self_le hden_ne + have h_den_hi : q.den < 2 ^ (d + 1) := (Nat.log2_lt hden_ne).mp (Nat.lt_succ_self _) + have h2_ne : (2 : ℚ) ≠ 0 := by norm_num + have hden_pos_q : (0 : ℚ) < q.den := by exact_mod_cast hden_pos + have hnum_pos_q : (0 : ℚ) < q.num.natAbs := by exact_mod_cast Nat.pos_of_ne_zero hnum_ne + have hq_eq : q = q.num / q.den := (Rat.num_div_den q).symm + have hnum_eq : (q.num : ℚ) = q.num.natAbs := by simp only [Nat.cast_natAbs, abs_of_pos hnum_pos] + have hexp : (-(↑n - ↑d) : ℤ) = (d : ℤ) - (n : ℤ) := by ring + rw [hexp] + have hpow_diff : (2 : ℚ) ^ ((d : ℤ) - (n : ℤ)) = 2 ^ d / 2 ^ n := by + rw [zpow_sub₀ h2_ne, zpow_natCast, zpow_natCast] + rw [hpow_diff, hq_eq, hnum_eq] + have h_num_lo_q : (2 : ℚ) ^ n ≤ q.num.natAbs := by exact_mod_cast h_num_lo + have h_num_hi_q : (q.num.natAbs : ℚ) < 2 ^ (n + 1) := by exact_mod_cast h_num_hi + have h_den_lo_q : (2 : ℚ) ^ d ≤ q.den := by exact_mod_cast h_den_lo + have h_den_hi_q : (q.den : ℚ) < 2 ^ (d + 1) := by exact_mod_cast h_den_hi + constructor + · -- Lower bound: 1/4 ≤ m + have h_simp : (q.num.natAbs : ℚ) / q.den * (2 ^ d / 2 ^ n) = + (q.num.natAbs * 2 ^ d) / (q.den * 2 ^ n) := by field_simp + rw [h_simp, one_div, le_div_iff₀ (by positivity : (0 : ℚ) < q.den * 2 ^ n)] + have key : (q.den : ℚ) * 2 ^ n / 4 < q.num.natAbs * 2 ^ d := by + have h1 : (q.den : ℚ) * 2 ^ n / 4 < 2 ^ (d + 1) * 2 ^ n / 4 := by + apply div_lt_div_of_pos_right _ (by norm_num : (0 : ℚ) < 4) + exact mul_lt_mul_of_pos_right h_den_hi_q (by positivity) + have h2 : (2 : ℚ) ^ (d + 1) * 2 ^ n / 4 = 2 ^ d * 2 ^ n / 2 := by rw [pow_succ]; ring + have h3 : (2 : ℚ) ^ d * 2 ^ n / 2 ≤ 2 ^ n * 2 ^ d := by + rw [mul_comm (2 ^ d : ℚ) (2 ^ n)]; apply div_le_self (by positivity) (by norm_num) + have h4 : (2 : ℚ) ^ n * 2 ^ d ≤ q.num.natAbs * 2 ^ d := by + apply mul_le_mul_of_nonneg_right h_num_lo_q (by positivity) + linarith + linarith + · -- Upper bound: m ≤ 4 + have h_simp : (q.num.natAbs : ℚ) / q.den * (2 ^ d / 2 ^ n) = + (q.num.natAbs * 2 ^ d) / (q.den * 2 ^ n) := by field_simp + rw [h_simp, div_le_iff₀ (by positivity : (0 : ℚ) < q.den * 2 ^ n)] + have h1 : (q.num.natAbs : ℚ) * 2 ^ d < 2 ^ (n + 1) * 2 ^ d := by + apply mul_lt_mul_of_pos_right h_num_hi_q (by positivity) + have h2 : (2 : ℚ) ^ (n + 1) * 2 ^ d = 2 * (2 ^ n * 2 ^ d) := by rw [pow_succ]; ring + have h3 : (2 : ℚ) * (2 ^ n * 2 ^ d) ≤ 4 * (2 ^ n * 2 ^ d) := by + have hp : (0 : ℚ) ≤ 2 ^ n * 2 ^ d := by positivity + linarith + have h4 : (4 : ℚ) * (2 ^ n * 2 ^ d) ≤ 4 * (q.den * 2 ^ n) := by + have : (2 : ℚ) ^ n * 2 ^ d ≤ q.den * 2 ^ n := by + calc (2 : ℚ) ^ n * 2 ^ d = 2 ^ d * 2 ^ n := by ring + _ ≤ q.den * 2 ^ n := by apply mul_le_mul_of_nonneg_right h_den_lo_q (by positivity) + linarith + calc (q.num.natAbs : ℚ) * 2 ^ d ≤ 2 ^ (n + 1) * 2 ^ d := le_of_lt h1 + _ = 2 * (2 ^ n * 2 ^ d) := h2 + _ ≤ 4 * (2 ^ n * 2 ^ d) := h3 + _ ≤ 4 * (q.den * 2 ^ n) := h4 + +/-- Tighter bounds: 1 / 2 ≤ m ≤ 2 for most q > 0 -/ +theorem reduced_bounds {q : ℚ} (hq : 0 < q) : + let m := reduceMantissa q + 1 / 2 ≤ m ∧ m ≤ 2 := by + simp only [reduceMantissa, reductionExponent, not_le.mpr hq, ↓reduceIte] + set n := q.num.natAbs.log2 with hn_def + set d := q.den.log2 with hd_def + have hnum_pos : q.num > 0 := Rat.num_pos.mpr hq + have hnum_ne : q.num.natAbs ≠ 0 := Int.natAbs_ne_zero.mpr (ne_of_gt hnum_pos) + have hden_pos := q.den_pos + have hden_ne : q.den ≠ 0 := ne_of_gt hden_pos + have h_num_lo : (2 : ℕ) ^ n ≤ q.num.natAbs := Nat.log2_self_le hnum_ne + have h_num_hi : q.num.natAbs < 2 ^ (n + 1) := (Nat.log2_lt hnum_ne).mp (Nat.lt_succ_self _) + have h_den_lo : (2 : ℕ) ^ d ≤ q.den := Nat.log2_self_le hden_ne + have h_den_hi : q.den < 2 ^ (d + 1) := (Nat.log2_lt hden_ne).mp (Nat.lt_succ_self _) + have h2_ne : (2 : ℚ) ≠ 0 := by norm_num + have hden_pos_q : (0 : ℚ) < q.den := by exact_mod_cast hden_pos + have hnum_pos_q : (0 : ℚ) < q.num.natAbs := by exact_mod_cast Nat.pos_of_ne_zero hnum_ne + have hq_eq : q = q.num / q.den := (Rat.num_div_den q).symm + have hnum_eq : (q.num : ℚ) = q.num.natAbs := by simp only [Nat.cast_natAbs, abs_of_pos hnum_pos] + have hexp : (-(↑n - ↑d) : ℤ) = (d : ℤ) - (n : ℤ) := by ring + rw [hexp] + have hpow_diff : (2 : ℚ) ^ ((d : ℤ) - (n : ℤ)) = 2 ^ d / 2 ^ n := by + rw [zpow_sub₀ h2_ne, zpow_natCast, zpow_natCast] + rw [hpow_diff, hq_eq, hnum_eq] + have h_num_lo_q : (2 : ℚ) ^ n ≤ q.num.natAbs := by exact_mod_cast h_num_lo + have h_num_hi_q : (q.num.natAbs : ℚ) < 2 ^ (n + 1) := by exact_mod_cast h_num_hi + have h_den_lo_q : (2 : ℚ) ^ d ≤ q.den := by exact_mod_cast h_den_lo + have h_den_hi_q : (q.den : ℚ) < 2 ^ (d + 1) := by exact_mod_cast h_den_hi + constructor + · -- Lower bound: 1 / 2 ≤ m + have h_simp : (q.num.natAbs : ℚ) / q.den * (2 ^ d / 2 ^ n) = + (q.num.natAbs * 2 ^ d) / (q.den * 2 ^ n) := by field_simp + rw [h_simp, one_div, le_div_iff₀ (by positivity : (0 : ℚ) < q.den * 2 ^ n)] + -- Goal: (1/2) * (den * 2^n) ≤ natAbs * 2^d, i.e., den * 2^n / 2 ≤ natAbs * 2^d + have key : (q.den : ℚ) * 2 ^ n / 2 < q.num.natAbs * 2 ^ d := by + have h1 : (q.den : ℚ) * 2 ^ n / 2 < 2 ^ (d + 1) * 2 ^ n / 2 := by + apply div_lt_div_of_pos_right _ (by norm_num : (0 : ℚ) < 2) + exact mul_lt_mul_of_pos_right h_den_hi_q (by positivity) + have h2 : (2 : ℚ) ^ (d + 1) * 2 ^ n / 2 = 2 ^ d * 2 ^ n := by rw [pow_succ]; ring + have h3 : (2 : ℚ) ^ d * 2 ^ n = 2 ^ n * 2 ^ d := by ring + have h4 : (2 : ℚ) ^ n * 2 ^ d ≤ q.num.natAbs * 2 ^ d := by + apply mul_le_mul_of_nonneg_right h_num_lo_q (by positivity) + linarith + linarith + · -- Upper bound: m ≤ 2 + have h_simp : (q.num.natAbs : ℚ) / q.den * (2 ^ d / 2 ^ n) = + (q.num.natAbs * 2 ^ d) / (q.den * 2 ^ n) := by field_simp + rw [h_simp, div_le_iff₀ (by positivity : (0 : ℚ) < q.den * 2 ^ n)] + -- Goal: natAbs * 2^d ≤ 2 * (den * 2^n) + have h1 : (q.num.natAbs : ℚ) * 2 ^ d < 2 ^ (n + 1) * 2 ^ d := by + apply mul_lt_mul_of_pos_right h_num_hi_q (by positivity) + have h2 : (2 : ℚ) ^ (n + 1) * 2 ^ d = 2 * (2 ^ n * 2 ^ d) := by rw [pow_succ]; ring + have h3 : (2 : ℚ) * (2 ^ n * 2 ^ d) ≤ 2 * (q.den * 2 ^ n) := by + have : (2 : ℚ) ^ n * 2 ^ d ≤ q.den * 2 ^ n := by + calc (2 : ℚ) ^ n * 2 ^ d = 2 ^ d * 2 ^ n := by ring + _ ≤ q.den * 2 ^ n := by apply mul_le_mul_of_nonneg_right h_den_lo_q (by positivity) + linarith + calc (q.num.natAbs : ℚ) * 2 ^ d ≤ 2 ^ (n + 1) * 2 ^ d := le_of_lt h1 + _ = 2 * (2 ^ n * 2 ^ d) := h2 + _ ≤ 2 * (q.den * 2 ^ n) := h3 + +/-- The reduced mantissa is positive for positive input -/ +theorem reduced_pos {q : ℚ} (hq : 0 < q) : 0 < reduceMantissa q := by + simp only [reduceMantissa, not_le.mpr hq, ↓reduceIte] + apply mul_pos hq + apply zpow_pos + norm_num + +/-! ### Connection to Real.log -/ + +/-- Key algebraic identity for Real.log: log(q) = log(m) + k * log(2) -/ +theorem log_reduction {q : ℚ} (hq : 0 < q) : + let k := reductionExponent q + let m := reduceMantissa q + Real.log q = Real.log m + k * Real.log 2 := by + intro k m -- Introduce let-bound variables + have hm_pos : (0 : ℝ) < m := by exact_mod_cast reduced_pos hq + have h_recon := reconstruction_eq hq + have hq_eq : (q : ℝ) = (m : ℝ) * (2 : ℝ) ^ k := by + conv_lhs => rw [h_recon] + push_cast + rfl + rw [hq_eq] + have h2_pos : (0 : ℝ) < 2 ^ k := zpow_pos (by norm_num : (0 : ℝ) < 2) k + rw [Real.log_mul (ne_of_gt hm_pos) (ne_of_gt h2_pos), Real.log_zpow] + +/-- The transformation y = (m-1)/(m+1) maps m ∈ [1/2, 2] to y ∈ [-1/3, 1/3] -/ +theorem atanh_arg_bounds {m : ℚ} (hlo : 1 / 2 ≤ m) (hhi : m ≤ 2) : + let y := (m - 1) / (m + 1) + (-1)/3 ≤ y ∧ y ≤ 1/3 := by + intro y -- Introduce let-bound variable + have hden_pos : 0 < m + 1 := by linarith + have hden_nonneg : 0 ≤ m + 1 := le_of_lt hden_pos + constructor + · -- Lower bound: (m-1)/(m+1) ≥ -1/3 when m ≥ 1/2 + -- Cross multiply: -1/3 ≤ (m-1)/(m+1) ↔ -(m+1) ≤ 3(m-1) ↔ 2 ≤ 4m + have h : (-1 : ℚ) / 3 * (m + 1) ≤ m - 1 := by linarith + have key := div_le_div_of_nonneg_right h hden_nonneg + simp only [mul_div_assoc, div_self (ne_of_gt hden_pos), mul_one] at key + exact key + · -- Upper bound: (m-1)/(m+1) ≤ 1/3 when m ≤ 2 + -- Cross multiply: (m-1)/(m+1) ≤ 1/3 ↔ 3(m-1) ≤ m+1 ↔ 2m ≤ 4 + have h : m - 1 ≤ (1 : ℚ) / 3 * (m + 1) := by linarith + have key := div_le_div_of_nonneg_right h hden_nonneg + simp only [mul_div_assoc, div_self (ne_of_gt hden_pos), mul_one] at key + exact key + +/-- log(m) = 2 * atanh((m-1)/(m+1)) for m > 0 with m ≠ 1 -/ +theorem log_via_atanh {m : ℚ} (hm_pos : 0 < m) : + Real.log m = 2 * Real.atanh ((m - 1) / (m + 1)) := by + have hm_pos' : (0 : ℝ) < m := by exact_mod_cast hm_pos + have hsum_pos : (0 : ℝ) < m + 1 := by linarith + have hdiff_ne : (m : ℝ) + 1 ≠ 0 := ne_of_gt hsum_pos + -- atanh(y) = (1/2) * log((1+y)/(1-y)) + -- Setting y = (m-1)/(m+1): + -- 1 + y = 1 + (m-1)/(m+1) = ((m+1) + (m-1))/(m+1) = 2m/(m+1) + -- 1 - y = 1 - (m-1)/(m+1) = ((m+1) - (m-1))/(m+1) = 2/(m+1) + -- (1+y)/(1-y) = (2m/(m+1)) / (2/(m+1)) = m + rw [Real.atanh] + have h1 : 1 + ((m : ℝ) - 1) / (m + 1) = 2 * m / (m + 1) := by field_simp; ring + have h2 : 1 - ((m : ℝ) - 1) / (m + 1) = 2 / (m + 1) := by field_simp; ring + rw [h1, h2] + have h3 : 2 * (m : ℝ) / (m + 1) / (2 / (m + 1)) = m := by field_simp + rw [h3] + ring + +end LeanCert.Core.LogReduction + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Rational Endpoint Intervals - Transcendental Functions + +This file provides noncomputable interval bounds for transcendental functions +using floor/ceiling to obtain rational endpoints. + +## Main definitions + +* `ofRealEndpoints` - Create rational interval from real bounds using floor/ceil +* `expInterval` - Interval bound for exponential +* `logInterval` - Interval bound for logarithm (positive intervals) +* `atanhIntervalComputed` - Interval bound for atanh (intervals in (-1, 1)) +* `sqrtInterval` - Interval bound for square root + +## Main theorems + +* `mem_expInterval` - FTIA for exp +* `mem_logInterval` - FTIA for log +* `mem_atanhIntervalComputed` - FTIA for atanh +* `mem_sqrtInterval` - FTIA for sqrt + +## Design notes + +All definitions in this file are noncomputable as they use `Real.exp`, `Real.log`, +etc. For computable versions, see `IntervalRat.Taylor`. +-/ + +/-! ### Rational enclosure of real intervals -/ + +@[expose] public section + +namespace LeanCert.Core + +namespace IntervalRat + +/-- Coarse rational enclosure of a real interval using floor/ceil. + Given a real interval [lo, hi], returns a rational interval [⌊lo⌋, ⌈hi⌉] + that is guaranteed to contain all points in the original interval. -/ +noncomputable def ofRealEndpoints (lo hi : ℝ) (hle : lo ≤ hi) : IntervalRat where + lo := ⌊lo⌋ + hi := ⌈hi⌉ + le := by + have h1 : (⌊lo⌋ : ℝ) ≤ lo := Int.floor_le lo + have h2 : hi ≤ (⌈hi⌉ : ℝ) := Int.le_ceil hi + have h3 : (⌊lo⌋ : ℝ) ≤ (⌈hi⌉ : ℝ) := le_trans h1 (le_trans hle h2) + exact_mod_cast h3 + +/-- Any point in [lo, hi] is in the rational enclosure [⌊lo⌋, ⌈hi⌉] -/ +theorem mem_ofRealEndpoints {x lo hi : ℝ} (hle : lo ≤ hi) (hx : lo ≤ x ∧ x ≤ hi) : + x ∈ ofRealEndpoints lo hi hle := by + simp only [mem_def, ofRealEndpoints] + constructor + · have h := Int.floor_le lo + exact le_trans h hx.1 + · have h := Int.le_ceil hi + exact le_trans hx.2 h + +/-! ### Exponential interval -/ + +/-- Interval bound for exp on rational intervals. + Since exp is strictly increasing, exp([a,b]) ⊆ [⌊exp(a)⌋, ⌈exp(b)⌉]. + This uses Real.exp and floor/ceil to get rational bounds. -/ +noncomputable def expInterval (I : IntervalRat) : IntervalRat := + ofRealEndpoints (Real.exp I.lo) (Real.exp I.hi) + (Real.exp_le_exp.mpr (by exact_mod_cast I.le)) + +/-- FTIA for exp: if x ∈ I, then exp(x) ∈ expInterval(I) -/ +theorem mem_expInterval {x : ℝ} {I : IntervalRat} (hx : x ∈ I) : + Real.exp x ∈ expInterval I := by + simp only [expInterval] + apply mem_ofRealEndpoints + simp only [mem_def] at hx + constructor + · exact Real.exp_le_exp.mpr hx.1 + · exact Real.exp_le_exp.mpr hx.2 + +/-! ### Positive interval check -/ + +/-- Check if an interval is strictly positive (lo > 0) -/ +def isPositive (I : IntervalRat) : Prop := 0 < I.lo + +/-- Decidable isPositive -/ +instance (I : IntervalRat) : Decidable (isPositive I) := + inferInstanceAs (Decidable (0 < I.lo)) + +/-- An interval that is guaranteed to be strictly positive -/ +structure IntervalRatPos extends IntervalRat where + lo_pos : 0 < toIntervalRat.lo + +/-! ### Logarithm interval (for positive intervals) -/ + +/-- Interval bound for log on positive rational intervals. + Since log is strictly increasing on (0, ∞), log([a,b]) ⊆ [⌊log(a)⌋, ⌈log(b)⌉] for a > 0. + This uses Real.log and floor/ceil to get rational bounds. -/ +noncomputable def logInterval (I : IntervalRatPos) : IntervalRat := + ofRealEndpoints (Real.log I.lo) (Real.log I.hi) + (Real.log_le_log (by exact_mod_cast I.lo_pos) (by exact_mod_cast I.le)) + +/-- FTIA for log: if x ∈ I with lo > 0, then log(x) ∈ logInterval(I) -/ +theorem mem_logInterval {x : ℝ} {I : IntervalRatPos} (hx : x ∈ I.toIntervalRat) : + Real.log x ∈ logInterval I := by + simp only [logInterval] + apply mem_ofRealEndpoints + simp only [mem_def] at hx + have hlo_pos : (0 : ℝ) < I.lo := by exact_mod_cast I.lo_pos + have hx_pos : 0 < x := lt_of_lt_of_le hlo_pos hx.1 + constructor + · exact Real.log_le_log hlo_pos hx.1 + · exact Real.log_le_log hx_pos hx.2 + +/-! ### Atanh interval (for intervals in (-1, 1)) -/ + +/-- An interval strictly contained in (-1, 1), suitable for atanh -/ +structure IntervalRatInUnitBall where + /-- Lower endpoint of the interval. -/ + lo : ℚ + /-- Upper endpoint of the interval. -/ + hi : ℚ + le : lo ≤ hi + lo_gt : -1 < lo + hi_lt : hi < 1 + +/-- Convert to standard interval -/ +def IntervalRatInUnitBall.toIntervalRat (I : IntervalRatInUnitBall) : IntervalRat := + ⟨I.lo, I.hi, I.le⟩ + +/-- Membership in the underlying interval -/ +instance : Membership ℝ IntervalRatInUnitBall where + mem I x := (I.lo : ℝ) ≤ x ∧ x ≤ I.hi + +theorem IntervalRatInUnitBall.mem_def {x : ℝ} {I : IntervalRatInUnitBall} : + x ∈ I ↔ (I.lo : ℝ) ≤ x ∧ x ≤ I.hi := Iff.rfl + +/-- Interval bound for atanh on intervals strictly inside (-1, 1). + Since atanh is strictly increasing on (-1, 1), atanh([a,b]) ⊆ [⌊atanh(a)⌋, ⌈atanh(b)⌉]. -/ +noncomputable def atanhIntervalComputed (I : IntervalRatInUnitBall) : IntervalRat := + have hlo : (-1 : ℝ) < I.lo := by exact_mod_cast I.lo_gt + have hhi : (I.hi : ℝ) < 1 := by exact_mod_cast I.hi_lt + have hle : (I.lo : ℝ) ≤ I.hi := by exact_mod_cast I.le + ofRealEndpoints (Real.atanh I.lo) (Real.atanh I.hi) + (Real.atanh_mono + (by rw [abs_lt]; constructor <;> linarith) + (by rw [abs_lt]; constructor <;> linarith) + hle) + +/-- FTIA for atanh: if x ∈ I and I ⊂ (-1, 1), then atanh(x) ∈ atanhIntervalComputed(I) -/ +theorem mem_atanhIntervalComputed {x : ℝ} {I : IntervalRatInUnitBall} (hx : x ∈ I) : + Real.atanh x ∈ atanhIntervalComputed I := by + simp only [atanhIntervalComputed] + apply mem_ofRealEndpoints + have hlo : (-1 : ℝ) < I.lo := by exact_mod_cast I.lo_gt + have hhi : (I.hi : ℝ) < 1 := by exact_mod_cast I.hi_lt + rw [IntervalRatInUnitBall.mem_def] at hx + have hx_lo : -1 < x := by linarith [hx.1] + have hx_hi : x < 1 := by linarith [hx.2] + have habs_lo : |(I.lo : ℝ)| < 1 := by rw [abs_lt]; constructor <;> linarith + have habs_hi : |(I.hi : ℝ)| < 1 := by rw [abs_lt]; constructor <;> linarith + have habs_x : |x| < 1 := by rw [abs_lt]; constructor <;> linarith + constructor + · exact Real.atanh_mono habs_lo habs_x hx.1 + · exact Real.atanh_mono habs_x habs_hi hx.2 + +/-! ### Square Root Interval -/ + +/-- Integer square root (floor of sqrt). + Satisfies: `(intSqrtNat n)^2 ≤ n < (intSqrtNat n + 1)^2` -/ +def intSqrtNat (n : Nat) : Nat := Nat.sqrt n + +/-- Key property of Nat.sqrt: `Nat.sqrt n ^ 2 ≤ n` -/ +private theorem nat_sqrt_sq_le (n : Nat) : (Nat.sqrt n) ^ 2 ≤ n := Nat.sqrt_le' n + +/-- Key property of Nat.sqrt: `n < (Nat.sqrt n + 1) ^ 2` -/ +private theorem nat_lt_succ_sqrt_sq (n : Nat) : n < (Nat.sqrt n + 1) ^ 2 := by + have h := Nat.lt_succ_sqrt n + simp only [Nat.succ_eq_add_one] at h + rw [sq] + exact h + +/-- Rational lower bound for sqrt. + For q ≥ 0 with q = num/den, we compute floor(sqrt(num * den)) / den. + This gives: sqrtRatLower q ≤ sqrt(q). + + The idea: sqrt(num/den) = sqrt(num*den)/den when properly scaled. -/ +def sqrtRatLower (q : ℚ) : ℚ := + if q ≤ 0 then 0 + else + let num := q.num.natAbs + let den := q.den + -- Compute floor(sqrt(num * den)) / den + let s := intSqrtNat (num * den) + (s : ℚ) / den + +/-- Rational upper bound for sqrt. + For q ≥ 0, we compute ceil(sqrt(num * den)) / den. + This gives: sqrt(q) ≤ sqrtRatUpper q. -/ +def sqrtRatUpper (q : ℚ) : ℚ := + if q ≤ 0 then 0 + else + let num := q.num.natAbs + let den := q.den + let prod := num * den + let s := intSqrtNat prod + -- If s^2 = prod, return s/den; else (s+1)/den + if s * s = prod then (s : ℚ) / den + else ((s + 1) : ℚ) / den + +/-- Scaling exponent for precise sqrt bounds (2^scaleBits = scaling factor for denominator) -/ +def sqrtScaleBits : Nat := 20 -- gives about 6 decimal digits precision + +/-- Rational lower bound for sqrt with high precision. + For q ≥ 0, we scale by 4^k, compute integer sqrt, and scale back by 2^k. + This gives: sqrtRatLowerPrec q ≤ sqrt(q) with precision ~2^(-k). -/ +def sqrtRatLowerPrec (q : ℚ) (scaleBits : Nat := sqrtScaleBits) : ℚ := + if q ≤ 0 then 0 + else + let num := q.num.natAbs + let den := q.den + -- Scale up: multiply num by 4^scaleBits = 2^(2*scaleBits) + let scaledNum := num * (2 ^ (2 * scaleBits)) + -- Compute floor(sqrt(scaledNum * den)) + let s := intSqrtNat (scaledNum * den) + -- Scale back: divide by den * 2^scaleBits + (s : ℚ) / (den * 2 ^ scaleBits) + +/-- Rational upper bound for sqrt with high precision. + For q ≥ 0, we scale by 4^k, compute ceil of integer sqrt, and scale back by 2^k. + This gives: sqrt(q) ≤ sqrtRatUpperPrec q with precision ~2^(-k). -/ +def sqrtRatUpperPrec (q : ℚ) (scaleBits : Nat := sqrtScaleBits) : ℚ := + if q ≤ 0 then 0 + else + let num := q.num.natAbs + let den := q.den + let scaledNum := num * (2 ^ (2 * scaleBits)) + let prod := scaledNum * den + let s := intSqrtNat prod + -- If s^2 = prod (perfect square), use s; else use s+1 (ceiling) + let result := if s * s = prod then s else s + 1 + (result : ℚ) / (den * 2 ^ scaleBits) + +/-- Helper: For non-negative q, q.num = q.num.natAbs -/ +private theorem rat_num_of_nonneg {q : ℚ} (hq : 0 ≤ q) : (q.num : ℤ) = q.num.natAbs := by + exact (Int.natAbs_of_nonneg (Rat.num_nonneg.mpr hq)).symm + +/-- Helper: For positive q, num.natAbs > 0 -/ +private theorem rat_num_natAbs_pos {q : ℚ} (hq : 0 < q) : 0 < q.num.natAbs := by + have h := Rat.num_pos.mpr hq + exact Int.natAbs_pos.mpr (ne_of_gt h) + +/-- Soundness of sqrtRatLower: sqrtRatLower q ≤ Real.sqrt q for q ≥ 0 -/ +theorem sqrtRatLower_le_sqrt {q : ℚ} (hq : 0 ≤ q) : (sqrtRatLower q : ℝ) ≤ Real.sqrt q := by + simp only [sqrtRatLower] + by_cases! hq0 : q ≤ 0 + · -- q = 0 + have heq : q = 0 := le_antisymm hq0 hq + simp only [heq, le_refl, ↓reduceIte, Rat.cast_zero, Real.sqrt_zero] + · -- q > 0 + simp only [not_le.mpr hq0, ↓reduceIte] + -- Key insight: sqrtRatLower returns s/den where s = floor(sqrt(num*den)) + -- We want to show s/den ≤ sqrt(q) = sqrt(num/den) + -- This follows because s^2 ≤ num*den, so s ≤ sqrt(num*den), hence s/den ≤ sqrt(num*den)/den = + -- sqrt(num/den) + have hden_pos : (0 : ℝ) < q.den := by exact_mod_cast q.den_pos + have hden_nn : (0 : ℝ) ≤ q.den := le_of_lt hden_pos + have hsqrt_den_pos : 0 < Real.sqrt q.den := Real.sqrt_pos.mpr hden_pos + have hnum_nn : 0 ≤ q.num := Rat.num_nonneg.mpr hq + have hnum_real_nn : (0 : ℝ) ≤ q.num.natAbs := Nat.cast_nonneg _ + -- s^2 ≤ num * den + have hsq : (intSqrtNat (q.num.natAbs * q.den))^2 ≤ q.num.natAbs * q.den := nat_sqrt_sq_le _ + -- s ≤ sqrt(num * den) + have hs_le : (intSqrtNat (q.num.natAbs * q.den) : ℝ) ≤ Real.sqrt (q.num.natAbs * q.den) := by + have h1 : ((intSqrtNat (q.num.natAbs * q.den) : ℕ) : ℝ) ^ 2 ≤ (q.num.natAbs * q.den : ℕ) := by + exact_mod_cast hsq + have h2 := Real.sqrt_sq (Nat.cast_nonneg (intSqrtNat (q.num.natAbs * q.den))) + calc (intSqrtNat (q.num.natAbs * q.den) : ℝ) + = Real.sqrt ((intSqrtNat (q.num.natAbs * q.den) : ℝ) ^ 2) := h2.symm + _ ≤ Real.sqrt ((q.num.natAbs * q.den : ℕ) : ℝ) := Real.sqrt_le_sqrt h1 + _ = Real.sqrt ((q.num.natAbs : ℝ) * q.den) := by rw [Nat.cast_mul] + -- q = num/den and sqrt(q) = sqrt(num)/sqrt(den) = sqrt(num*den)/den (after scaling) + have hq_eq : (q : ℝ) = (q.num.natAbs : ℝ) / q.den := by + have habs : (q.num : ℤ) = q.num.natAbs := (Int.natAbs_of_nonneg hnum_nn).symm + rw [Rat.cast_def, habs, Int.cast_natCast] + simp only [Int.natAbs_natCast] + simp only [Rat.cast_div, Rat.cast_natCast] + rw [hq_eq, Real.sqrt_div hnum_real_nn, div_le_div_iff₀ hden_pos hsqrt_den_pos] + -- Goal: s * sqrt(den) ≤ sqrt(num) * den + calc (intSqrtNat (q.num.natAbs * q.den) : ℝ) * Real.sqrt q.den + ≤ Real.sqrt (q.num.natAbs * q.den) * Real.sqrt q.den := by + apply mul_le_mul_of_nonneg_right hs_le (le_of_lt hsqrt_den_pos) + _ = Real.sqrt (q.num.natAbs) * Real.sqrt q.den * Real.sqrt q.den := by + rw [Real.sqrt_mul hnum_real_nn] + _ = Real.sqrt (q.num.natAbs) * (Real.sqrt q.den * Real.sqrt q.den) := by ring + _ = Real.sqrt (q.num.natAbs) * q.den := by rw [Real.mul_self_sqrt hden_nn] + +/-- Soundness of sqrtRatUpper: Real.sqrt q ≤ sqrtRatUpper q for q ≥ 0 -/ +theorem sqrt_le_sqrtRatUpper {q : ℚ} (hq : 0 ≤ q) : Real.sqrt q ≤ (sqrtRatUpper q : ℝ) := by + simp only [sqrtRatUpper] + by_cases! hq0 : q ≤ 0 + · -- q = 0 + have heq : q = 0 := le_antisymm hq0 hq + simp only [heq, le_refl, ↓reduceIte, Rat.cast_zero, Real.sqrt_zero] + · -- q > 0 + simp only [not_le.mpr hq0, ↓reduceIte] + have hden_pos : (0 : ℝ) < q.den := by exact_mod_cast q.den_pos + have hden_nn : (0 : ℝ) ≤ q.den := le_of_lt hden_pos + have hnum_nn : 0 ≤ q.num := Rat.num_nonneg.mpr hq + have hnum_real_nn : (0 : ℝ) ≤ q.num.natAbs := Nat.cast_nonneg _ + have hsqrt_den_pos : 0 < Real.sqrt q.den := Real.sqrt_pos.mpr hden_pos + have hq_eq : (q : ℝ) = (q.num.natAbs : ℝ) / q.den := by + have habs : (q.num : ℤ) = q.num.natAbs := (Int.natAbs_of_nonneg hnum_nn).symm + rw [Rat.cast_def, habs, Int.cast_natCast] + simp only [Int.natAbs_natCast] + set prod := q.num.natAbs * q.den + set s := intSqrtNat prod + rw [hq_eq, Real.sqrt_div hnum_real_nn] + by_cases hperfect : s * s = prod + · -- Perfect square case: s^2 = num * den, so sqrt(num*den) = s + simp only [hperfect, ↓reduceIte, Rat.cast_div, Rat.cast_natCast] + rw [div_le_div_iff₀ hsqrt_den_pos hden_pos] + -- sqrt(num*den) = s since s^2 = num*den + have heq_sqrt : Real.sqrt ((q.num.natAbs : ℝ) * q.den) = s := by + have h : (s : ℝ) ^ 2 = (q.num.natAbs : ℝ) * q.den := by + calc (s : ℝ) ^ 2 = ((s * s : ℕ) : ℝ) := by push_cast; ring + _ = (prod : ℝ) := by exact_mod_cast hperfect + _ = (q.num.natAbs : ℝ) * q.den := by simp only [prod, Nat.cast_mul] + rw [← h, Real.sqrt_sq (Nat.cast_nonneg s)] + calc Real.sqrt q.num.natAbs * q.den + = Real.sqrt q.num.natAbs * (Real.sqrt q.den * Real.sqrt q.den) := by + rw [Real.mul_self_sqrt hden_nn] + _ = (Real.sqrt q.num.natAbs * Real.sqrt q.den) * Real.sqrt q.den := by ring + _ = Real.sqrt ((q.num.natAbs : ℝ) * q.den) * Real.sqrt q.den := by + rw [Real.sqrt_mul hnum_real_nn] + _ = (s : ℝ) * Real.sqrt q.den := by rw [heq_sqrt] + _ ≤ (s : ℝ) * Real.sqrt q.den := le_refl _ + · -- Non-perfect square case: prod < (s+1)^2 + simp only [hperfect, ↓reduceIte, Rat.cast_div, Rat.cast_natCast] + rw [div_le_div_iff₀ hsqrt_den_pos hden_pos] + have hlt : prod < (s + 1) ^ 2 := nat_lt_succ_sqrt_sq prod + have hsqrt_le : Real.sqrt ((q.num.natAbs : ℝ) * q.den) ≤ (s + 1 : ℕ) := by + have h1 : (q.num.natAbs : ℝ) * q.den < ((s + 1) ^ 2 : ℕ) := by + calc (q.num.natAbs : ℝ) * q.den = (prod : ℕ) := by simp only [prod, Nat.cast_mul] + _ < ((s + 1) ^ 2 : ℕ) := by exact_mod_cast hlt + have h2 : (0 : ℝ) ≤ (s + 1 : ℕ) := Nat.cast_nonneg _ + have h3 : Real.sqrt ((q.num.natAbs : ℝ) * q.den) < Real.sqrt (((s + 1) ^ 2 : ℕ) : ℝ) := + Real.sqrt_lt_sqrt (mul_nonneg hnum_real_nn hden_nn) h1 + have h4 : Real.sqrt (((s + 1) ^ 2 : ℕ) : ℝ) = (s + 1 : ℕ) := by + have : (((s + 1) ^ 2 : ℕ) : ℝ) = ((s + 1 : ℕ) : ℝ) ^ 2 := by push_cast; ring + rw [this, Real.sqrt_sq h2] + exact le_of_lt (h3.trans_eq h4) + have hgoal : Real.sqrt q.num.natAbs * q.den ≤ ((s + 1 : ℕ) : ℝ) * Real.sqrt q.den := by + calc Real.sqrt q.num.natAbs * q.den + = Real.sqrt q.num.natAbs * (Real.sqrt q.den * Real.sqrt q.den) := by + rw [Real.mul_self_sqrt hden_nn] + _ = (Real.sqrt q.num.natAbs * Real.sqrt q.den) * Real.sqrt q.den := by ring + _ = Real.sqrt ((q.num.natAbs : ℝ) * q.den) * Real.sqrt q.den := by + rw [Real.sqrt_mul hnum_real_nn] + _ ≤ ((s + 1 : ℕ) : ℝ) * Real.sqrt q.den := by + exact mul_le_mul_of_nonneg_right hsqrt_le (le_of_lt hsqrt_den_pos) + convert! hgoal using 2 + push_cast + ring + +/-- Square root interval with conservative bounds. + For a non-negative interval [lo, hi], sqrt is monotone so: + sqrt([lo, hi]) ⊆ [0, max(hi, 1)] + + The lower bound is 0 (always sound for sqrt). + The upper bound uses max(hi, 1) which satisfies sqrt(x) ≤ max(x, 1) for x ≥ 0. -/ +def sqrtInterval (I : IntervalRat) : IntervalRat := + ⟨0, max I.hi 1, le_sup_of_le_right rfl⟩ + +/-- Improved square root interval with tight lower bounds. + For a non-negative interval [lo, hi] with lo ≥ 0: + - Lower bound: sqrtRatLower(lo) + - Upper bound: sqrtRatUpper(hi) + + For intervals crossing zero, we use 0 as lower bound. -/ +def sqrtIntervalTight (I : IntervalRat) : IntervalRat := + if h : 0 ≤ I.lo then + ⟨sqrtRatLower I.lo, max (sqrtRatUpper I.hi) 1, + by + simp only [le_max_iff] + left + have hlo_le_hi : I.lo ≤ I.hi := I.le + -- sqrtRatLower I.lo ≤ sqrtRatUpper I.hi + have h1 : (sqrtRatLower I.lo : ℝ) ≤ Real.sqrt I.lo := sqrtRatLower_le_sqrt h + have h2 : Real.sqrt I.hi ≤ (sqrtRatUpper I.hi : ℝ) := sqrt_le_sqrtRatUpper (le_trans h + hlo_le_hi) + have h3 : Real.sqrt I.lo ≤ Real.sqrt I.hi := Real.sqrt_le_sqrt (by exact_mod_cast hlo_le_hi) + have h4 : (sqrtRatLower I.lo : ℝ) ≤ (sqrtRatUpper I.hi : ℝ) := le_trans h1 (le_trans h3 h2) + exact_mod_cast h4⟩ + else + ⟨0, max (sqrtRatUpper I.hi) 1, le_sup_of_le_right rfl⟩ + +/-- Soundness of sqrtRatLowerPrec: sqrtRatLowerPrec q k ≤ Real.sqrt q for q ≥ 0 -/ +theorem sqrtRatLowerPrec_le_sqrt {q : ℚ} (hq : 0 ≤ q) (k : Nat) : + (sqrtRatLowerPrec q k : ℝ) ≤ Real.sqrt q := by + simp only [sqrtRatLowerPrec] + by_cases! hq0 : q ≤ 0 + · have heq : q = 0 := le_antisymm hq0 hq + simp only [heq, le_refl, ↓reduceIte, Rat.cast_zero, Real.sqrt_zero] + · simp only [not_le.mpr hq0, ↓reduceIte] + -- Setup: let num = q.num.natAbs, den = q.den, scaledNum = num * 4^k + -- We compute s = floor(sqrt(scaledNum * den)) and return s / (den * 2^k) + -- Goal: s / (den * 2^k) ≤ sqrt(q) = sqrt(num/den) + have hden_pos : (0 : ℝ) < q.den := by exact_mod_cast q.den_pos + have hden_nn : (0 : ℝ) ≤ q.den := le_of_lt hden_pos + have hnum_nn : 0 ≤ q.num := Rat.num_nonneg.mpr hq + have hnum_real_nn : (0 : ℝ) ≤ q.num.natAbs := Nat.cast_nonneg _ + have h2k_pos : (0 : ℝ) < 2 ^ k := pow_pos (by norm_num : (0 : ℝ) < 2) k + have h2k_nn : (0 : ℝ) ≤ 2 ^ k := le_of_lt h2k_pos + have hden2k_pos : (0 : ℝ) < q.den * 2 ^ k := mul_pos hden_pos h2k_pos + set num := q.num.natAbs + set den := q.den + set scaledNum := num * 2 ^ (2 * k) + set prod := scaledNum * den + set s := intSqrtNat prod + -- s^2 ≤ prod, so s ≤ sqrt(prod) + have hsq : s ^ 2 ≤ prod := nat_sqrt_sq_le prod + have hs_le_sqrt : (s : ℝ) ≤ Real.sqrt prod := by + have h1 : (s : ℝ) ^ 2 ≤ prod := by exact_mod_cast hsq + have h2 := Real.sqrt_sq (Nat.cast_nonneg s) + calc (s : ℝ) = Real.sqrt ((s : ℝ) ^ 2) := h2.symm + _ ≤ Real.sqrt prod := Real.sqrt_le_sqrt h1 + -- sqrt(prod) = sqrt(num * 4^k * den) = sqrt(num * den) * 2^k + have h4k_eq : (2 : ℝ) ^ (2 * k) = ((2 : ℝ) ^ k) ^ 2 := by ring + have hsqrt_prod : Real.sqrt (prod : ℕ) = Real.sqrt (num * den) * 2 ^ k := by + calc Real.sqrt (prod : ℕ) = Real.sqrt ((scaledNum * den : ℕ) : ℝ) := by simp only [prod] + _ = Real.sqrt ((num * 2 ^ (2 * k) * den : ℕ) : ℝ) := by simp only [scaledNum] + _ = Real.sqrt ((num : ℝ) * 2 ^ (2 * k) * den) := by push_cast; ring_nf + _ = Real.sqrt ((num : ℝ) * den * (2 ^ k) ^ 2) := by rw [h4k_eq]; ring_nf + _ = Real.sqrt ((num : ℝ) * den) * Real.sqrt ((2 ^ k) ^ 2) := by + rw [Real.sqrt_mul (mul_nonneg hnum_real_nn hden_nn)] + _ = Real.sqrt ((num : ℝ) * den) * 2 ^ k := by rw [Real.sqrt_sq h2k_nn] + -- q = num/den, so sqrt(q) = sqrt(num)/sqrt(den) = sqrt(num*den)/den + have hq_eq : (q : ℝ) = (num : ℝ) / den := by + have habs : (q.num : ℤ) = num := (Int.natAbs_of_nonneg hnum_nn).symm + rw [Rat.cast_def, habs, Int.cast_natCast] + -- Final calculation + simp only [Rat.cast_div, Rat.cast_natCast, Rat.cast_mul, Rat.cast_pow, Rat.cast_ofNat] + rw [hq_eq, Real.sqrt_div hnum_real_nn] + have hsqrt_den_pos : 0 < Real.sqrt den := Real.sqrt_pos.mpr hden_pos + -- Key helper: sqrt(num * den) / den = sqrt(num) / sqrt(den) + have hsqrt_conv : Real.sqrt (num * den) / den = Real.sqrt num / Real.sqrt den := by + have hden_sqrt_mul : Real.sqrt den * Real.sqrt den = den := Real.mul_self_sqrt hden_nn + calc Real.sqrt (num * den) / den + = Real.sqrt num * Real.sqrt den / den := by rw [Real.sqrt_mul hnum_real_nn] + _ = Real.sqrt num * Real.sqrt den / (Real.sqrt den * Real.sqrt den) := by rw [hden_sqrt_mul] + _ = Real.sqrt num * (Real.sqrt den / (Real.sqrt den * Real.sqrt den)) := by rw + [mul_div_assoc] + _ = Real.sqrt num * (Real.sqrt den / Real.sqrt den / Real.sqrt den) := by rw + [div_mul_eq_div_div] + _ = Real.sqrt num * (1 / Real.sqrt den) := by rw [div_self (ne_of_gt hsqrt_den_pos)] + _ = Real.sqrt num / Real.sqrt den := by rw [mul_one_div] + calc (s : ℝ) / (den * 2 ^ k) + ≤ Real.sqrt prod / (den * 2 ^ k) := + div_le_div_of_nonneg_right hs_le_sqrt (le_of_lt hden2k_pos) + _ = (Real.sqrt (num * den) * 2 ^ k) / (den * 2 ^ k) := by rw [hsqrt_prod] + _ = Real.sqrt (num * den) / den := by rw [mul_div_mul_right _ _ (ne_of_gt h2k_pos)] + _ = Real.sqrt num / Real.sqrt den := hsqrt_conv + +/-- Soundness of sqrtRatUpperPrec: Real.sqrt q ≤ sqrtRatUpperPrec q k for q ≥ 0 -/ +theorem sqrt_le_sqrtRatUpperPrec {q : ℚ} (hq : 0 ≤ q) (k : Nat) : + Real.sqrt q ≤ (sqrtRatUpperPrec q k : ℝ) := by + simp only [sqrtRatUpperPrec] + by_cases! hq0 : q ≤ 0 + · have heq : q = 0 := le_antisymm hq0 hq + simp only [heq, le_refl, ↓reduceIte, Rat.cast_zero, Real.sqrt_zero] + · simp only [not_le.mpr hq0, ↓reduceIte] + have hden_pos : (0 : ℝ) < q.den := by exact_mod_cast q.den_pos + have hden_nn : (0 : ℝ) ≤ q.den := le_of_lt hden_pos + have hnum_nn : 0 ≤ q.num := Rat.num_nonneg.mpr hq + have hnum_real_nn : (0 : ℝ) ≤ q.num.natAbs := Nat.cast_nonneg _ + have h2k_pos : (0 : ℝ) < 2 ^ k := pow_pos (by norm_num : (0 : ℝ) < 2) k + have h2k_nn : (0 : ℝ) ≤ 2 ^ k := le_of_lt h2k_pos + have hden2k_pos : (0 : ℝ) < q.den * 2 ^ k := mul_pos hden_pos h2k_pos + set num := q.num.natAbs + set den := q.den + set scaledNum := num * 2 ^ (2 * k) + set prod := scaledNum * den + set s := intSqrtNat prod + -- sqrt(prod) ≤ result (either s or s+1) + have h4k_eq : (2 : ℝ) ^ (2 * k) = ((2 : ℝ) ^ k) ^ 2 := by ring + have hsqrt_prod : Real.sqrt (prod : ℕ) = Real.sqrt (num * den) * 2 ^ k := by + calc Real.sqrt (prod : ℕ) = Real.sqrt ((scaledNum * den : ℕ) : ℝ) := by simp only [prod] + _ = Real.sqrt ((num * 2 ^ (2 * k) * den : ℕ) : ℝ) := by simp only [scaledNum] + _ = Real.sqrt ((num : ℝ) * 2 ^ (2 * k) * den) := by push_cast; ring_nf + _ = Real.sqrt ((num : ℝ) * den * (2 ^ k) ^ 2) := by rw [h4k_eq]; ring_nf + _ = Real.sqrt ((num : ℝ) * den) * Real.sqrt ((2 ^ k) ^ 2) := by + rw [Real.sqrt_mul (mul_nonneg hnum_real_nn hden_nn)] + _ = Real.sqrt ((num : ℝ) * den) * 2 ^ k := by rw [Real.sqrt_sq h2k_nn] + have hq_eq : (q : ℝ) = (num : ℝ) / den := by + have habs : (q.num : ℤ) = num := (Int.natAbs_of_nonneg hnum_nn).symm + rw [Rat.cast_def, habs, Int.cast_natCast] + have hsqrt_den_pos : 0 < Real.sqrt den := Real.sqrt_pos.mpr hden_pos + -- Key helper: sqrt(num * den) / den = sqrt(num) / sqrt(den) + have hsqrt_conv : Real.sqrt (num * den) / den = Real.sqrt num / Real.sqrt den := by + have hden_sqrt_mul : Real.sqrt den * Real.sqrt den = den := Real.mul_self_sqrt hden_nn + calc Real.sqrt (num * den) / den + = Real.sqrt num * Real.sqrt den / den := by rw [Real.sqrt_mul hnum_real_nn] + _ = Real.sqrt num * Real.sqrt den / (Real.sqrt den * Real.sqrt den) := by rw [hden_sqrt_mul] + _ = Real.sqrt num * (Real.sqrt den / (Real.sqrt den * Real.sqrt den)) := by rw + [mul_div_assoc] + _ = Real.sqrt num * (Real.sqrt den / Real.sqrt den / Real.sqrt den) := by rw + [div_mul_eq_div_div] + _ = Real.sqrt num * (1 / Real.sqrt den) := by rw [div_self (ne_of_gt hsqrt_den_pos)] + _ = Real.sqrt num / Real.sqrt den := by rw [mul_one_div] + by_cases hperfect : s * s = prod + · -- Perfect square: result = s, and sqrt(prod) = s + simp only [hperfect, ↓reduceIte, Rat.cast_div, Rat.cast_natCast, Rat.cast_mul, + Rat.cast_pow, Rat.cast_ofNat] + have hsqrt_eq_s : Real.sqrt (prod : ℕ) = s := by + have h : (s : ℝ) ^ 2 = prod := by + calc (s : ℝ) ^ 2 = ((s * s : ℕ) : ℝ) := by push_cast; ring + _ = prod := by exact_mod_cast hperfect + rw [← h, Real.sqrt_sq (Nat.cast_nonneg s)] + rw [hq_eq, Real.sqrt_div hnum_real_nn] + calc Real.sqrt num / Real.sqrt den + = Real.sqrt (num * den) / den := hsqrt_conv.symm + _ = (Real.sqrt (num * den) * 2 ^ k) / (den * 2 ^ k) := by + rw [mul_div_mul_right _ _ (ne_of_gt h2k_pos)] + _ = Real.sqrt prod / (den * 2 ^ k) := by rw [hsqrt_prod] + _ ≤ (s : ℝ) / (den * 2 ^ k) := by rw [hsqrt_eq_s] + · -- Non-perfect square: result = s + 1, and sqrt(prod) < s + 1 + simp only [hperfect, ↓reduceIte, Rat.cast_div, Rat.cast_natCast, Rat.cast_mul, + Rat.cast_pow, Rat.cast_ofNat] + have hlt : prod < (s + 1) ^ 2 := nat_lt_succ_sqrt_sq prod + have hsqrt_lt : Real.sqrt (prod : ℕ) < (s + 1 : ℕ) := by + have h1 : (prod : ℝ) < ((s + 1) ^ 2 : ℕ) := by exact_mod_cast hlt + have h2 : (0 : ℝ) ≤ (s + 1 : ℕ) := Nat.cast_nonneg _ + have h3 : Real.sqrt (prod : ℕ) < Real.sqrt (((s + 1) ^ 2 : ℕ) : ℝ) := + Real.sqrt_lt_sqrt (Nat.cast_nonneg _) h1 + have h4 : Real.sqrt (((s + 1) ^ 2 : ℕ) : ℝ) = (s + 1 : ℕ) := by + have : (((s + 1) ^ 2 : ℕ) : ℝ) = ((s + 1 : ℕ) : ℝ) ^ 2 := by push_cast; ring + rw [this, Real.sqrt_sq h2] + exact h3.trans_eq h4 + rw [hq_eq, Real.sqrt_div hnum_real_nn] + calc Real.sqrt num / Real.sqrt den + = Real.sqrt (num * den) / den := hsqrt_conv.symm + _ = (Real.sqrt (num * den) * 2 ^ k) / (den * 2 ^ k) := by + rw [mul_div_mul_right _ _ (ne_of_gt h2k_pos)] + _ = Real.sqrt prod / (den * 2 ^ k) := by rw [hsqrt_prod] + _ ≤ (s + 1 : ℕ) / (den * 2 ^ k) := + div_le_div_of_nonneg_right (le_of_lt hsqrt_lt) (le_of_lt hden2k_pos) + +/-- High-precision square root interval. + For a non-negative interval [lo, hi] with lo ≥ 0: + - Lower bound: sqrtRatLowerPrec(lo) + - Upper bound: sqrtRatUpperPrec(hi) + + Uses scaling to achieve ~6 decimal digits of precision. -/ +def sqrtIntervalTightPrec (I : IntervalRat) : IntervalRat := + if h : 0 ≤ I.lo then + ⟨sqrtRatLowerPrec I.lo, max (sqrtRatUpperPrec I.hi) 1, + by + simp only [le_max_iff] + left + have hlo_le_hi : I.lo ≤ I.hi := I.le + have h1 : (sqrtRatLowerPrec I.lo : ℝ) ≤ Real.sqrt I.lo := sqrtRatLowerPrec_le_sqrt h + sqrtScaleBits + have h2 : Real.sqrt I.hi ≤ (sqrtRatUpperPrec I.hi : ℝ) := + sqrt_le_sqrtRatUpperPrec (le_trans h hlo_le_hi) sqrtScaleBits + have h3 : Real.sqrt I.lo ≤ Real.sqrt I.hi := Real.sqrt_le_sqrt (by exact_mod_cast hlo_le_hi) + have h4 : (sqrtRatLowerPrec I.lo : ℝ) ≤ (sqrtRatUpperPrec I.hi : ℝ) := le_trans h1 + (le_trans h3 h2) + exact_mod_cast h4⟩ + else + ⟨0, max (sqrtRatUpperPrec I.hi) 1, le_sup_of_le_right rfl⟩ + +/-- Membership theorem for sqrtIntervalTightPrec -/ +theorem mem_sqrtIntervalTightPrec' {x : ℝ} {I : IntervalRat} (hx : x ∈ I) : + Real.sqrt x ∈ sqrtIntervalTightPrec I := by + simp only [sqrtIntervalTightPrec, mem_def] + split_ifs with h + · -- lo ≥ 0: use tight bounds + constructor + · calc (sqrtRatLowerPrec I.lo : ℝ) ≤ Real.sqrt I.lo := sqrtRatLowerPrec_le_sqrt h sqrtScaleBits + _ ≤ Real.sqrt x := Real.sqrt_le_sqrt hx.1 + · simp only [Rat.cast_max, Rat.cast_one] + calc Real.sqrt x ≤ Real.sqrt I.hi := Real.sqrt_le_sqrt hx.2 + _ ≤ (sqrtRatUpperPrec I.hi : ℝ) := sqrt_le_sqrtRatUpperPrec (le_trans h I.le) sqrtScaleBits + _ ≤ max (sqrtRatUpperPrec I.hi : ℝ) 1 := le_max_left _ _ + · -- lo < 0: use 0 as lower bound + push Not at h + simp only [Rat.cast_zero, Rat.cast_max, Rat.cast_one] + constructor + · exact Real.sqrt_nonneg x + · -- sqrt(x) ≤ max(sqrtRatUpperPrec I.hi, 1) + by_cases! hhi_neg : I.hi < 0 + · -- If hi < 0, then x ≤ I.hi < 0, but sqrt(x) ≥ 0, so sqrt(x) ≤ 1 ≤ max(_, 1) + have hx_neg : x < 0 := lt_of_le_of_lt hx.2 (by exact_mod_cast hhi_neg) + have hsqrt_zero : Real.sqrt x = 0 := Real.sqrt_eq_zero'.mpr (le_of_lt hx_neg) + rw [hsqrt_zero] + calc (0 : ℝ) ≤ 1 := by norm_num + _ ≤ max (sqrtRatUpperPrec I.hi : ℝ) 1 := le_max_right _ _ + · calc Real.sqrt x ≤ Real.sqrt I.hi := Real.sqrt_le_sqrt hx.2 + _ ≤ (sqrtRatUpperPrec I.hi : ℝ) := sqrt_le_sqrtRatUpperPrec hhi_neg sqrtScaleBits + _ ≤ max (sqrtRatUpperPrec I.hi : ℝ) 1 := le_max_left _ _ + +/-- Helper: sqrt(x) ≤ max(x, 1) for x ≥ 0 -/ +private theorem sqrt_le_max_one {x : ℝ} (hx : 0 ≤ x) : Real.sqrt x ≤ max x 1 := by + rcases le_or_gt x 1 with hle | hgt + · -- x ≤ 1: sqrt(x) ≤ 1 ≤ max(x, 1) + calc Real.sqrt x ≤ Real.sqrt 1 := Real.sqrt_le_sqrt hle + _ = 1 := Real.sqrt_one + _ ≤ max x 1 := le_max_right x 1 + · -- x > 1: sqrt(x) < x ≤ max(x, 1) + have hx_pos : 0 < x := lt_trans zero_lt_one hgt + have hsqrt_pos : 0 < Real.sqrt x := Real.sqrt_pos.mpr hx_pos + have hsqrt_gt_one : 1 < Real.sqrt x := by + rw [← Real.sqrt_one] + exact Real.sqrt_lt_sqrt (by norm_num) hgt + have hsqrt_lt : Real.sqrt x < x := by + have h1 : Real.sqrt x * Real.sqrt x = x := Real.mul_self_sqrt hx + have h2 : Real.sqrt x * 1 < Real.sqrt x * Real.sqrt x := + mul_lt_mul_of_pos_left hsqrt_gt_one hsqrt_pos + simp only [mul_one] at h2 + linarith + calc Real.sqrt x ≤ x := le_of_lt hsqrt_lt + _ ≤ max x 1 := le_max_left x 1 + +/-- Soundness of sqrt interval: if x ∈ I and x ≥ 0, then sqrt(x) ∈ sqrtInterval I -/ +theorem mem_sqrtInterval {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (hx_nn : 0 ≤ x) : + Real.sqrt x ∈ sqrtInterval I := by + simp only [mem_def, sqrtInterval, Rat.cast_zero, Rat.cast_max, Rat.cast_one] + constructor + · exact Real.sqrt_nonneg x + · calc Real.sqrt x ≤ max x 1 := sqrt_le_max_one hx_nn + _ ≤ max (I.hi : ℝ) 1 := max_le_max_right 1 hx.2 + +/-- General soundness of sqrt interval: works for any x ∈ I (including negative). + When x < 0, Real.sqrt x = 0, which is always in [0, max(hi, 1)]. -/ +theorem mem_sqrtInterval' {x : ℝ} {I : IntervalRat} (hx : x ∈ I) : + Real.sqrt x ∈ sqrtInterval I := by + rcases le_or_gt 0 x with hnn | hneg + · -- x ≥ 0: use the standard soundness + exact mem_sqrtInterval hx hnn + · -- x < 0: sqrt(x) = 0, and 0 ∈ [0, max(hi, 1)] + simp only [mem_def, sqrtInterval, Rat.cast_zero, Rat.cast_max, Rat.cast_one] + have hsqrt_zero : Real.sqrt x = 0 := Real.sqrt_eq_zero'.mpr (le_of_lt hneg) + rw [hsqrt_zero] + constructor + · exact le_refl 0 + · calc (0 : ℝ) ≤ 1 := by norm_num + _ ≤ max (I.hi : ℝ) 1 := le_max_right _ _ + +/-- Helper: upper bound for tight sqrt interval is valid -/ +private theorem sqrt_le_sqrtRatUpper_max {x : ℝ} {q : ℚ} (hx : 0 ≤ x) (hxq : x ≤ q) : + Real.sqrt x ≤ max (sqrtRatUpper q : ℝ) 1 := by + by_cases! hq0 : q ≤ 0 + · -- q ≤ 0 means x ≤ 0, combined with hx gives x = 0 + have hx0 : x = 0 := le_antisymm (le_trans hxq (by exact_mod_cast hq0)) hx + rw [hx0, Real.sqrt_zero] + exact le_trans (by norm_num : (0 : ℝ) ≤ 1) (le_max_right (sqrtRatUpper q : ℝ) (1 : ℝ)) + · -- q > 0 + calc Real.sqrt x + ≤ Real.sqrt q := Real.sqrt_le_sqrt hxq + _ ≤ sqrtRatUpper q := sqrt_le_sqrtRatUpper (le_of_lt hq0) + _ ≤ max (sqrtRatUpper q : ℝ) 1 := le_max_left (sqrtRatUpper q : ℝ) (1 : ℝ) + +/-- Soundness of tight sqrt interval: if x ∈ I and x ≥ 0, then sqrt(x) ∈ sqrtIntervalTight I -/ +theorem mem_sqrtIntervalTight {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (hx_nn : 0 ≤ x) : + Real.sqrt x ∈ sqrtIntervalTight I := by + simp only [sqrtIntervalTight] + split_ifs with hlo + · -- Case: I.lo ≥ 0 (positive interval) + simp only [mem_def, Rat.cast_max, Rat.cast_one] + constructor + · -- Lower bound: sqrtRatLower I.lo ≤ sqrt(x) + have h1 : (sqrtRatLower I.lo : ℝ) ≤ Real.sqrt I.lo := sqrtRatLower_le_sqrt hlo + have h2 : Real.sqrt (I.lo : ℝ) ≤ Real.sqrt x := Real.sqrt_le_sqrt hx.1 + exact le_trans h1 h2 + · -- Upper bound: sqrt(x) ≤ max (sqrtRatUpper I.hi) 1 + exact sqrt_le_sqrtRatUpper_max hx_nn hx.2 + · -- Case: I.lo < 0 (interval crosses zero) + simp only [mem_def, Rat.cast_zero, Rat.cast_max, Rat.cast_one] + constructor + · exact Real.sqrt_nonneg x + · exact sqrt_le_sqrtRatUpper_max hx_nn hx.2 + +/-- General soundness of tight sqrt interval: works for any x ∈ I (including negative). + When x < 0, Real.sqrt x = 0, which is always in the result interval. -/ +theorem mem_sqrtIntervalTight' {x : ℝ} {I : IntervalRat} (hx : x ∈ I) : + Real.sqrt x ∈ sqrtIntervalTight I := by + rcases le_or_gt 0 x with hnn | hneg + · exact mem_sqrtIntervalTight hx hnn + · -- x < 0: sqrt(x) = 0 + have hsqrt_zero : Real.sqrt x = 0 := Real.sqrt_eq_zero'.mpr (le_of_lt hneg) + simp only [sqrtIntervalTight] + split_ifs with hlo + · -- I.lo ≥ 0, but x ∈ I and x < 0, contradiction + have h : (I.lo : ℝ) ≤ x := hx.1 + have hlo_real : (0 : ℝ) ≤ I.lo := by exact_mod_cast hlo + have hx_nn : 0 ≤ x := le_trans hlo_real h + exact absurd hx_nn (not_le.mpr hneg) + · -- I.lo < 0 + simp only [mem_def, Rat.cast_zero, Rat.cast_max, Rat.cast_one] + rw [hsqrt_zero] + constructor + · exact le_refl 0 + · exact le_trans (by norm_num : (0 : ℝ) ≤ 1) (le_max_right (sqrtRatUpper I.hi : ℝ) (1 : ℝ)) + +end IntervalRat + +end LeanCert.Core + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Expression Support Predicates + +This file defines predicates indicating which expressions are supported by +different interval evaluation strategies. + +## Main definitions + +* `ExprSupportedCore` - Predicate for expressions in the computable subset + (const, var, add, mul, neg, sin, cos, exp, log, sqrt, sinh, cosh, tanh, erf, pi) + +* `ADSupported` - Predicate for the noncomputable AD subset + (const, var, add, mul, neg, sin, cos, exp) + +## Design notes + +`ADSupported` is the differentiable fragment used by automatic +differentiation. It is contained in `ExprSupportedCore` via +`ADSupported.toCore`. Checked evaluators accept arbitrary expressions and +encode domain failure in their result type, so they need no syntactic support +predicate. + +The core subset is kept computable so that tactics can use `native_decide` +for interval bound checking. The extended subset uses `Real.exp` with +floor/ceil bounds, which requires noncomputability. +-/ + +/-! ### Core supported expression subset (computable) -/ + +@[expose] public section + +namespace LeanCert.Core + +open LeanCert.Core + +/-- Predicate indicating an expression is in the computable core subset. + Supports: const, var, add, mul, neg, sin, cos, exp, log, sqrt, sinh, cosh, tanh, erf, pi + + Note: log requires positive domain for correctness. The correctness theorem + `evalIntervalCore_correct` has an additional hypothesis `evalDomainValid` + that ensures log arguments evaluate to positive intervals. -/ +inductive ExprSupportedCore : Expr → Prop where + | const (q : ℚ) : ExprSupportedCore (Expr.const q) + | var (idx : Nat) : ExprSupportedCore (Expr.var idx) + | add {e₁ e₂ : Expr} : ExprSupportedCore e₁ → ExprSupportedCore e₂ → + ExprSupportedCore (Expr.add e₁ e₂) + | mul {e₁ e₂ : Expr} : ExprSupportedCore e₁ → ExprSupportedCore e₂ → + ExprSupportedCore (Expr.mul e₁ e₂) + | neg {e : Expr} : ExprSupportedCore e → ExprSupportedCore (Expr.neg e) + | sin {e : Expr} : ExprSupportedCore e → ExprSupportedCore (Expr.sin e) + | cos {e : Expr} : ExprSupportedCore e → ExprSupportedCore (Expr.cos e) + | exp {e : Expr} : ExprSupportedCore e → ExprSupportedCore (Expr.exp e) + | log {e : Expr} : ExprSupportedCore e → ExprSupportedCore (Expr.log e) + | sqrt {e : Expr} : ExprSupportedCore e → ExprSupportedCore (Expr.sqrt e) + | sinh {e : Expr} : ExprSupportedCore e → ExprSupportedCore (Expr.sinh e) + | cosh {e : Expr} : ExprSupportedCore e → ExprSupportedCore (Expr.cosh e) + | tanh {e : Expr} : ExprSupportedCore e → ExprSupportedCore (Expr.tanh e) + | erf {e : Expr} : ExprSupportedCore e → ExprSupportedCore (Expr.erf e) + | namedConst (c : MathConst) : ExprSupportedCore (Expr.namedConst c) + +/-! ### Extended supported expression subset (with exp) -/ + +/-- Predicate indicating an expression is in the fully-verified subset for AD. + Supports: const, var, add, mul, neg, sin, cos, exp + Does NOT support: + - sqrt (not differentiable at 0 - use ExprSupportedCore for interval evaluation only) + - inv (requires nonzero interval checks) + - log (requires positive interval checks) + - atan/arsinh/atanh (derivative proofs incomplete in the total AD evaluator) -/ +inductive ADSupported : Expr → Prop where + | const (q : ℚ) : ADSupported (Expr.const q) + | var (idx : Nat) : ADSupported (Expr.var idx) + | add {e₁ e₂ : Expr} : ADSupported e₁ → ADSupported e₂ → ADSupported (Expr.add e₁ e₂) + | mul {e₁ e₂ : Expr} : ADSupported e₁ → ADSupported e₂ → ADSupported (Expr.mul e₁ e₂) + | neg {e : Expr} : ADSupported e → ADSupported (Expr.neg e) + | sin {e : Expr} : ADSupported e → ADSupported (Expr.sin e) + | cos {e : Expr} : ADSupported e → ADSupported (Expr.cos e) + | exp {e : Expr} : ADSupported e → ADSupported (Expr.exp e) + +/-- ADSupported expressions are also in ExprSupportedCore -/ +theorem ADSupported.toCore {e : Expr} (h : ADSupported e) : ExprSupportedCore e := by + induction h with + | const q => exact ExprSupportedCore.const q + | var idx => exact ExprSupportedCore.var idx + | add _ _ ih₁ ih₂ => exact ExprSupportedCore.add ih₁ ih₂ + | mul _ _ ih₁ ih₂ => exact ExprSupportedCore.mul ih₁ ih₂ + | neg _ ih => exact ExprSupportedCore.neg ih + | sin _ ih => exact ExprSupportedCore.sin ih + | cos _ ih => exact ExprSupportedCore.cos ih + | exp _ ih => exact ExprSupportedCore.exp ih + +/-- Computable recognition of the differentiable `ADSupported` subset used +by Newton/AD backends. -/ +def Expr.checkADSupported : Expr → Bool + | .const _ | .var _ => true + | .add e₁ e₂ | .mul e₁ e₂ => e₁.checkADSupported && e₂.checkADSupported + | .neg e | .exp e | .sin e | .cos e => e.checkADSupported + | _ => false + +/-- The executable support check recognizes exactly the differentiable +`ADSupported` fragment used by the checked AD/monotonicity backend. -/ +theorem Expr.checkADSupported_eq_true_iff (e : Expr) : + e.checkADSupported = true ↔ ADSupported e := by + induction e with + | const q => simp [Expr.checkADSupported, ADSupported.const] + | var i => simp [Expr.checkADSupported, ADSupported.var] + | add e₁ e₂ ih₁ ih₂ => + simp only [Expr.checkADSupported, Bool.and_eq_true, ih₁, ih₂] + constructor + · rintro ⟨h₁, h₂⟩ + exact .add h₁ h₂ + · intro h + cases h + exact ⟨by assumption, by assumption⟩ + | mul e₁ e₂ ih₁ ih₂ => + simp only [Expr.checkADSupported, Bool.and_eq_true, ih₁, ih₂] + constructor + · rintro ⟨h₁, h₂⟩ + exact .mul h₁ h₂ + · intro h + cases h + exact ⟨by assumption, by assumption⟩ + | neg e ih | exp e ih | sin e ih | cos e ih => + simp only [Expr.checkADSupported, ih] + constructor + · intro h + first | exact .neg h | exact .exp h | exact .sin h | exact .cos h + · intro h + cases h + assumption + | inv e ih => exact ⟨by simp [Expr.checkADSupported], fun h => by cases h⟩ + | log e ih => exact ⟨by simp [Expr.checkADSupported], fun h => by cases h⟩ + | atan e ih => exact ⟨by simp [Expr.checkADSupported], fun h => by cases h⟩ + | arsinh e ih => exact ⟨by simp [Expr.checkADSupported], fun h => by cases h⟩ + | atanh e ih => exact ⟨by simp [Expr.checkADSupported], fun h => by cases h⟩ + | sinc e ih => exact ⟨by simp [Expr.checkADSupported], fun h => by cases h⟩ + | erf e ih => exact ⟨by simp [Expr.checkADSupported], fun h => by cases h⟩ + | sinh e ih => exact ⟨by simp [Expr.checkADSupported], fun h => by cases h⟩ + | cosh e ih => exact ⟨by simp [Expr.checkADSupported], fun h => by cases h⟩ + | tanh e ih => exact ⟨by simp [Expr.checkADSupported], fun h => by cases h⟩ + | sqrt e ih => exact ⟨by simp [Expr.checkADSupported], fun h => by cases h⟩ + | namedConst c => + constructor + · simp [Expr.checkADSupported] + · intro h + cases h + +/-- Computable recognition of `ExprSupportedCore`. -/ +def Expr.checkSupportedCore : Expr → Bool + | .const _ | .var _ | .namedConst _ => true + | .add e₁ e₂ | .mul e₁ e₂ => e₁.checkSupportedCore && e₂.checkSupportedCore + | .neg e | .exp e | .sin e | .cos e | .log e | .sqrt e | + .sinh e | .cosh e | .tanh e | .erf e => e.checkSupportedCore + | _ => false + +/-- A successful computable core-support check produces the corresponding +proof object required by the tight Rational evaluator theorem. -/ +theorem Expr.checkSupportedCore_correct {e : Expr} + (h : e.checkSupportedCore = true) : ExprSupportedCore e := by + induction e with + | const q => exact .const q + | var idx => exact .var idx + | add left right ihLeft ihRight => + simp only [Expr.checkSupportedCore, Bool.and_eq_true] at h + exact .add (ihLeft h.1) (ihRight h.2) + | mul left right ihLeft ihRight => + simp only [Expr.checkSupportedCore, Bool.and_eq_true] at h + exact .mul (ihLeft h.1) (ihRight h.2) + | neg e ih => exact .neg (ih h) + | exp e ih => exact .exp (ih h) + | sin e ih => exact .sin (ih h) + | cos e ih => exact .cos (ih h) + | log e ih => exact .log (ih h) + | erf e ih => exact .erf (ih h) + | sinh e ih => exact .sinh (ih h) + | cosh e ih => exact .cosh (ih h) + | tanh e ih => exact .tanh (ih h) + | sqrt e ih => exact .sqrt (ih h) + | namedConst c => exact .namedConst c + | inv _ _ | atan _ _ | arsinh _ _ | atanh _ _ | sinc _ _ => + simp [Expr.checkSupportedCore] at h + +end LeanCert.Core + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Generic Taylor Series Abstractions + +This file provides generic Taylor series machinery for verified numerics. +We wrap Mathlib's Taylor expansion theorems in forms convenient for our +interval arithmetic framework. + +## Phase Status + +**This module is now Phase 3 complete.** The main Taylor remainder bound theorem +`taylor_remainder_bound` is fully proved with no `sorry` markers. + +The theorem provides rigorous bounds on Taylor polynomial approximation errors +using Lagrange's form of the remainder. + +## Main definitions + +* `TaylorApprox` - A Taylor approximation with explicit remainder bounds +* Generic theorems for composing Taylor approximations + +## Design notes + +This file provides the abstract theory. Specific Taylor expansions for +`exp`, `sin`, `cos`, etc. are built using this machinery in conjunction +with Mathlib's calculus lemmas. +-/ + +/-! ### Taylor approximation structure -/ + +@[expose] public section + +namespace LeanCert.Core + +/-- A Taylor approximation of a function on an interval. + +Given a function `f`, center `c`, and radius `r`, this represents: +- A polynomial approximation `poly` of degree `n` +- A remainder bound `R` such that for all `x` with `|x - c| ≤ r`: + `|f(x) - poly(x - c)| ≤ R` +-/ +structure TaylorApprox where + /-- Degree of the polynomial -/ + degree : ℕ + /-- Polynomial coefficients (Taylor coefficients at center) -/ + coeffs : Fin (degree + 1) → ℚ + /-- Remainder bound -/ + remainder : ℚ + /-- The remainder is non-negative -/ + remainder_nonneg : 0 ≤ remainder + +namespace TaylorApprox + +/-- Evaluate the polynomial part at a point -/ +noncomputable def evalPoly (ta : TaylorApprox) (x : ℝ) : ℝ := + ∑ i : Fin (ta.degree + 1), (ta.coeffs i : ℝ) * x ^ (i : ℕ) + +end TaylorApprox + +/-! ### Derivative bounds -/ + +/-- A bound on the n-th derivative of a function on an interval -/ +structure DerivBound where + /-- The derivative order -/ + order : ℕ + /-- Upper bound on |f^(n)(x)| for x in the interval -/ + bound : ℚ + /-- The bound is non-negative -/ + bound_nonneg : 0 ≤ bound + +/-! ### Taylor remainder bounds -/ + +/-! ### Helper lemmas for iteratedDerivWithin conversion -/ + +/-- Unique differentiability at the left endpoint of a closed interval. -/ +lemma uniqueDiffWithinAt_Icc_left {c x : ℝ} (hcx : c < x) : + UniqueDiffWithinAt ℝ (Set.Icc c x) c := by + apply uniqueDiffWithinAt_convex (convex_Icc c x) + · rw [interior_Icc]; exact Set.nonempty_Ioo.mpr hcx + · rw [closure_Icc]; exact Set.left_mem_Icc.mpr (le_of_lt hcx) + +/-- Unique differentiability at the right endpoint of a closed interval. -/ +lemma uniqueDiffWithinAt_Icc_right {c x : ℝ} (hcx : c < x) : + UniqueDiffWithinAt ℝ (Set.Icc c x) x := by + apply uniqueDiffWithinAt_convex (convex_Icc c x) + · rw [interior_Icc]; exact Set.nonempty_Ioo.mpr hcx + · rw [closure_Icc]; exact Set.right_mem_Icc.mpr (le_of_lt hcx) + +/-- At the left endpoint of [c, x], derivWithin equals deriv for differentiable functions. -/ +lemma derivWithin_Icc_left_eq_deriv {f : ℝ → ℝ} {c x : ℝ} + (hcx : c < x) (hf : DifferentiableAt ℝ f c) : + derivWithin f (Set.Icc c x) c = deriv f c := by + have hderiv := hf.hasDerivAt + have hderiv_within : HasDerivWithinAt f (deriv f c) (Set.Icc c x) c := hderiv.hasDerivWithinAt + exact hderiv_within.derivWithin (uniqueDiffWithinAt_Icc_left hcx) + +/-- At the right endpoint of [c, x], derivWithin equals deriv for differentiable functions. -/ +lemma derivWithin_Icc_right_eq_deriv {f : ℝ → ℝ} {c x : ℝ} + (hcx : c < x) (hf : DifferentiableAt ℝ f x) : + derivWithin f (Set.Icc c x) x = deriv f x := by + have hderiv := hf.hasDerivAt + have hderiv_within : HasDerivWithinAt f (deriv f x) (Set.Icc c x) x := hderiv.hasDerivWithinAt + exact hderiv_within.derivWithin (uniqueDiffWithinAt_Icc_right hcx) + +/-- Helper lemma: `iteratedDerivWithin` on `Icc a b` equals `iteratedDeriv` at interior points. + +This bridges Mathlib's `iteratedDerivWithin`-based Taylor theorems with global `iteratedDeriv`. -/ +lemma iteratedDerivWithin_Icc_interior_eq {f : ℝ → ℝ} {a b : ℝ} {x : ℝ} {n : ℕ} + (_hab : a < b) (hx : x ∈ Set.Ioo a b) : + iteratedDerivWithin n f (Set.Icc a b) x = iteratedDeriv n f x := by + open Set Filter Topology in + have h_nhds : Icc a b ∈ 𝓝 x := Icc_mem_nhds hx.1 hx.2 + rw [iteratedDerivWithin_eq_iteratedFDerivWithin, iteratedDeriv_eq_iteratedFDeriv] + congr 1 + have heq : (Set.Icc a b : Set ℝ) =ᶠ[𝓝 x] (Set.univ : Set ℝ) := by + filter_upwards [h_nhds] with y hy + exact propext ⟨fun _ => trivial, fun _ => hy⟩ + rw [iteratedFDerivWithin_congr_set heq n, iteratedFDerivWithin_univ] + +/-- At the left endpoint of [c, x], iteratedDerivWithin equals iteratedDeriv for ContDiff functions. +-/ +lemma iteratedDerivWithin_Icc_left_eq_iteratedDeriv {f : ℝ → ℝ} {c x : ℝ} {n : ℕ} + (hcx : c < x) (hf : ContDiff ℝ n f) : + iteratedDerivWithin n f (Set.Icc c x) c = iteratedDeriv n f c := by + open Set in + induction n generalizing f with + | zero => simp only [iteratedDerivWithin_zero, iteratedDeriv_zero] + | succ n ih => + have hf_n : ContDiff ℝ n f := hf.of_le (by simp : (n : WithTop ℕ∞) ≤ (n + 1 : ℕ)) + rw [iteratedDerivWithin_succ', iteratedDeriv_succ'] + have h_ne_zero : ((n : ℕ) + 1 : WithTop ℕ∞) ≠ 0 := by simp + have h_eq_derivWithin : EqOn (derivWithin f (Icc c x)) (deriv f) (Icc c x) := by + intro y hy + rcases eq_or_ne y c with rfl | hne_c + · exact derivWithin_Icc_left_eq_deriv hcx + ((hf.differentiable h_ne_zero).differentiableAt) + · rcases eq_or_ne y x with rfl | hne_x + · exact derivWithin_Icc_right_eq_deriv hcx + ((hf.differentiable h_ne_zero).differentiableAt) + · apply derivWithin_of_mem_nhds + apply Icc_mem_nhds + · exact lt_of_le_of_ne hy.1 (Ne.symm hne_c) + · exact lt_of_le_of_ne hy.2 hne_x + have h_congr : EqOn (iteratedDerivWithin n (derivWithin f (Icc c x)) (Icc c x)) + (iteratedDerivWithin n (deriv f) (Icc c x)) (Icc c x) := + iteratedDerivWithin_congr (n := n) h_eq_derivWithin + have hc_mem : c ∈ Icc c x := left_mem_Icc.mpr (le_of_lt hcx) + rw [h_congr hc_mem] + have hdf : ContDiff ℝ n (deriv f) := by + have h := hf.iterate_deriv' n 1 + simp only [Function.iterate_one] at h + exact h + exact ih hdf + +/-- At the left endpoint of [c, x], iteratedDerivWithin equals iteratedDeriv for functions + that are ContDiffOn on an open set containing c. + + This is useful for functions like log that are only smooth on (0, ∞). -/ +lemma iteratedDerivWithin_Icc_left_eq_iteratedDeriv_of_isOpen {f : ℝ → ℝ} {c x : ℝ} {n : ℕ} {U : + Set ℝ} + (hU_open : IsOpen U) (hcU : c ∈ U) (hcx : c < x) (hI_sub : Set.Icc c x ⊆ U) + (hf : ContDiffOn ℝ n f U) : + iteratedDerivWithin n f (Set.Icc c x) c = iteratedDeriv n f c := by + open Set in + induction n generalizing f with + | zero => simp only [iteratedDerivWithin_zero, iteratedDeriv_zero] + | succ n ih => + have hf_n : ContDiffOn ℝ n f U := hf.of_le (by simp : (n : WithTop ℕ∞) ≤ (n + 1 : ℕ)) + rw [iteratedDerivWithin_succ', iteratedDeriv_succ'] + have h_ne_zero : ((n : ℕ) + 1 : WithTop ℕ∞) ≠ 0 := by simp + -- For each y in Icc c x, derivWithin f = deriv f + have h_eq_derivWithin : EqOn (derivWithin f (Icc c x)) (deriv f) (Icc c x) := by + intro y hy + rcases eq_or_ne y c with rfl | hne_c + · -- At c: use that f is differentiable at c (from ContDiffOn on open U) + exact derivWithin_Icc_left_eq_deriv hcx + ((hf.differentiableOn h_ne_zero).differentiableAt (hU_open.mem_nhds hcU)) + · rcases eq_or_ne y x with rfl | hne_x + · -- At x: use right endpoint lemma + exact derivWithin_Icc_right_eq_deriv hcx + ((hf.differentiableOn h_ne_zero).differentiableAt (hU_open.mem_nhds (hI_sub hy))) + · -- Interior: Icc is a neighborhood + apply derivWithin_of_mem_nhds + apply Icc_mem_nhds + · exact lt_of_le_of_ne hy.1 (Ne.symm hne_c) + · exact lt_of_le_of_ne hy.2 hne_x + have h_congr : EqOn (iteratedDerivWithin n (derivWithin f (Icc c x)) (Icc c x)) + (iteratedDerivWithin n (deriv f) (Icc c x)) (Icc c x) := + iteratedDerivWithin_congr (n := n) h_eq_derivWithin + have hc_mem : c ∈ Icc c x := left_mem_Icc.mpr (le_of_lt hcx) + rw [h_congr hc_mem] + have hdf : ContDiffOn ℝ n (deriv f) U := hf.deriv_of_isOpen hU_open le_rfl + exact ih hdf +/-- Taylor remainder bound for c < x case with ContDiffOn hypothesis. + + For functions that are ContDiffOn on an open set containing [a, b], this provides + the same Lagrange remainder bound as the global ContDiff version. -/ +theorem taylor_remainder_bound_on_c_lt_x {f : ℝ → ℝ} {a b c : ℝ} {m : ℕ} {M : ℝ} {U : Set ℝ} + (hU_open : IsOpen U) (hI_sub : Set.Icc a b ⊆ U) + (hca : a ≤ c) + (hf : ContDiffOn ℝ (m + 1) f U) + (hM : ∀ y ∈ Set.Icc a b, ‖iteratedDeriv (m + 1) f y‖ ≤ M) + (x : ℝ) (hx : x ∈ Set.Icc a b) (hcx : c < x) : + ‖f x - ∑ i ∈ Finset.range (m + 1), (iteratedDeriv i f c / i.factorial) * (x - c) ^ i‖ + ≤ M * |x - c| ^ (m + 1) / (m + 1).factorial := by + open Set Finset in + have hcx_le : c ≤ x := le_of_lt hcx + have hcI : c ∈ Icc a b := ⟨hca, le_trans hcx_le hx.2⟩ + have hI_sub' : Icc c x ⊆ Icc a b := Icc_subset_Icc hca hx.2 + have hI_sub_U : Icc c x ⊆ U := fun y hy => hI_sub (hI_sub' hy) + have hcU : c ∈ U := hI_sub hcI + have hf_on : ContDiffOn ℝ (m + 1) f (Icc c x) := hf.mono hI_sub_U + have hf_on_m : ContDiffOn ℝ m f (Icc c x) := by + have hm_le : (m : WithTop ℕ∞) ≤ (m + 1 : ℕ) := by simp + exact hf_on.of_le hm_le + have hf_diff : DifferentiableOn ℝ (iteratedDerivWithin m f (Icc c x)) (Ioo c x) := by + have huniq := uniqueDiffOn_Icc hcx + have hm_lt : (m : WithTop ℕ∞) < (m + 1 : ℕ) := by + have : (m : ℕ) < m + 1 := Nat.lt_succ_self m + exact_mod_cast this + have hdiff := hf_on.differentiableOn_iteratedDerivWithin hm_lt huniq + exact hdiff.mono Ioo_subset_Icc_self + have hf_on_m' : ContDiffOn ℝ m f (uIcc c x) := by rwa [uIcc_of_le hcx_le] + have hf_diff' : DifferentiableOn ℝ (iteratedDerivWithin m f (uIcc c x)) (uIoo c x) := by + rwa [uIcc_of_le hcx_le, uIoo_of_lt hcx] + obtain ⟨ξ, hξ_mem, hLagrange⟩ := + taylor_mean_remainder_lagrange (x₀ := c) (x := x) hcx.ne hf_on_m' hf_diff' + have hξ_mem_Ioo : ξ ∈ Ioo c x := by rwa [uIoo_of_lt hcx] at hξ_mem + rw [uIcc_of_le hcx_le] at hLagrange + have hξ_ab : ξ ∈ Icc a b := hI_sub' (Ioo_subset_Icc_self hξ_mem_Ioo) + have hderiv_ξ : iteratedDerivWithin (m + 1) f (Icc c x) ξ = iteratedDeriv (m + 1) f ξ := + iteratedDerivWithin_Icc_interior_eq hcx hξ_mem_Ioo + have hsum_eq : ∑ i ∈ range (m + 1), (iteratedDeriv i f c / i.factorial) * (x - c) ^ i = + taylorWithinEval f m (Icc c x) c x := by + rw [taylor_within_apply] + apply sum_congr rfl + intro i hi + have hderiv_c : iteratedDerivWithin i f (Icc c x) c = iteratedDeriv i f c := by + have hi_lt : i < m + 1 := mem_range.mp hi + have hi_le : (i : WithTop ℕ∞) ≤ (m + 1 : ℕ) := by + have : (i : ℕ) ≤ m := Nat.lt_succ_iff.mp hi_lt + exact le_of_lt (by exact_mod_cast Nat.lt_add_one_of_le this) + exact iteratedDerivWithin_Icc_left_eq_iteratedDeriv_of_isOpen hU_open hcU hcx hI_sub_U + (hf.of_le hi_le) + rw [hderiv_c] + simp only [smul_eq_mul] + ring + rw [hsum_eq, hLagrange, hderiv_ξ] + rw [norm_div, norm_mul, Real.norm_eq_abs, Real.norm_eq_abs, Real.norm_eq_abs] + have hfact_pos : (0 : ℝ) < ((m + 1).factorial : ℝ) := Nat.cast_pos.mpr (Nat.factorial_pos _) + rw [abs_of_pos hfact_pos] + have hxc_pos : 0 < x - c := sub_pos.mpr hcx + rw [abs_pow, abs_of_pos hxc_pos] + have hbound := hM ξ hξ_ab + have h_pow_fact_pos : 0 < (x - c) ^ (m + 1) / (m + 1).factorial := by + apply div_pos + · exact pow_pos hxc_pos _ + · exact hfact_pos + calc |iteratedDeriv (m + 1) f ξ| * (x - c) ^ (m + 1) / ↑(m + 1).factorial + = |iteratedDeriv (m + 1) f ξ| * ((x - c) ^ (m + 1) / ↑(m + 1).factorial) := by ring + _ ≤ M * ((x - c) ^ (m + 1) / ↑(m + 1).factorial) := by + apply mul_le_mul_of_nonneg_right hbound (le_of_lt h_pow_fact_pos) + _ = M * (x - c) ^ (m + 1) / ↑(m + 1).factorial := by ring + +/-- Helper: translation invariance of iteratedDeriv for ContDiffOn on open sets. -/ +private lemma iteratedDeriv_translate_of_contDiffOn {f : ℝ → ℝ} {k : ℝ} {n : ℕ} {U : Set ℝ} + (hU_open : IsOpen U) (t : ℝ) (ht : t + k ∈ U) + (hf : ContDiffOn ℝ n f U) : + iteratedDeriv n (fun y => f (y + k)) t = iteratedDeriv n f (t + k) := by + induction n generalizing f with + | zero => simp only [iteratedDeriv_zero] + | succ n ih => + rw [iteratedDeriv_succ', iteratedDeriv_succ'] + -- Since t + k ∈ U and U is open, there's a neighborhood of t where y + k ∈ U for all y + have h_nhds_mem : ∀ᶠ y in nhds t, y + k ∈ U := by + have hcont : Continuous (fun y => y + k) := continuous_id.add continuous_const + have hU_nhds : U ∈ nhds (t + k) := hU_open.mem_nhds ht + exact hcont.continuousAt.preimage_mem_nhds hU_nhds + -- Derivative equality in a neighborhood of t + have h_deriv_eq_near : ∀ᶠ y in nhds t, deriv (fun z => f (z + k)) y = deriv f (y + k) := by + filter_upwards [h_nhds_mem] with y hy_mem + have hf' : ContDiffOn ℝ 1 f U := hf.of_le (by norm_cast; omega) + have hdiff : DifferentiableAt ℝ f (y + k) := + (hf'.differentiableOn one_ne_zero).differentiableAt (hU_open.mem_nhds hy_mem) + have hlin : DifferentiableAt ℝ (fun z => z + k) y := + differentiableAt_id.add (differentiableAt_const _) + have h := deriv_comp y hdiff hlin + simp only [deriv_add_const, deriv_id'', mul_one] at h + exact h + have h_iter_eq : iteratedDeriv n (deriv fun z => f (z + k)) t = + iteratedDeriv n (fun y => deriv f (y + k)) t := + Filter.EventuallyEq.iteratedDeriv_eq n h_deriv_eq_near + rw [h_iter_eq] + have hdf : ContDiffOn ℝ n (deriv f) U := hf.deriv_of_isOpen hU_open le_rfl + exact ih hdf + +/-- Key lemma for reflection: derivatives of g(t) = f(2c - t) when f is smooth on an open set. + +This is a local version of `iteratedDeriv_reflect` that works with ContDiffOn on an open set +rather than global ContDiff. -/ +lemma iteratedDeriv_reflect_of_contDiffOn {f : ℝ → ℝ} {c : ℝ} {n : ℕ} {U : Set ℝ} + (hU_open : IsOpen U) (hf : ContDiffOn ℝ n f U) (t : ℝ) (ht : 2 * c - t ∈ U) : + iteratedDeriv n (fun s => f (2 * c - s)) t = (-1 : ℝ) ^ n * iteratedDeriv n f (2 * c - t) := by + -- Rewrite as f ∘ (· + 2c) ∘ (- ·) + have heq : (fun s => f (2 * c - s)) = (fun s => (fun y => f (y + 2 * c)) (-s)) := by + ext s; ring_nf + rw [heq] + rw [iteratedDeriv_comp_neg n (fun y => f (y + 2 * c)) t] + simp only [smul_eq_mul] + congr 1 + -- Use the translation helper + have hmt : -t + 2 * c = 2 * c - t := by ring + rw [← hmt] at ht + convert iteratedDeriv_translate_of_contDiffOn hU_open (-t) ht hf using 1 + rw [hmt] +/-- Taylor remainder bound for x < c case with ContDiffOn hypothesis. + + For functions that are ContDiffOn on an open set containing [a, b], this provides + the same Lagrange remainder bound as the global ContDiff version. + + The proof uses reflection: define g(t) = f(2c - t), apply Lagrange to g on [c, 2c-x], + then convert back. -/ +theorem taylor_remainder_bound_on_x_lt_c {f : ℝ → ℝ} {a b c : ℝ} {m : ℕ} {M : ℝ} {U : Set ℝ} + (hU_open : IsOpen U) (hI_sub : Set.Icc a b ⊆ U) + (hcb : c ≤ b) + (hf : ContDiffOn ℝ (m + 1) f U) + (hM : ∀ y ∈ Set.Icc a b, ‖iteratedDeriv (m + 1) f y‖ ≤ M) + (x : ℝ) (hx : x ∈ Set.Icc a b) (hxc : x < c) : + ‖f x - ∑ i ∈ Finset.range (m + 1), (iteratedDeriv i f c / i.factorial) * (x - c) ^ i‖ + ≤ M * |x - c| ^ (m + 1) / (m + 1).factorial := by + open Set Finset in + -- Define reflected function g(t) = f(2c - t) + set g : ℝ → ℝ := fun t => f (2 * c - t) with hg_def + -- Define V = preimage of U under reflection (the reflected open set) + set V : Set ℝ := (fun t => 2 * c - t) ⁻¹' U with hV_def + -- V is open (preimage of open set under continuous function) + have hV_open : IsOpen V := by + apply IsOpen.preimage _ hU_open + exact continuous_const.sub continuous_id + -- g is ContDiffOn V + have hg_ContDiffOn : ContDiffOn ℝ (m + 1) g V := by + have hlin : ContDiff ℝ ⊤ (fun t => 2 * c - t) := contDiff_const.sub contDiff_id + -- g = f ∘ (2c - ·) and (2c - ·) maps V into U + have hmaps : Set.MapsTo (fun t => 2 * c - t) V U := fun t ht => ht + have hlin_on : ContDiffOn ℝ (m + 1) (fun t => 2 * c - t) V := + (hlin.contDiffOn.mono (Set.subset_univ _)).of_le le_top + exact ContDiffOn.comp hf hlin_on hmaps + -- The interval [c, 2c-x] + have h_interval_lt : c < 2 * c - x := by linarith + -- [c, 2c-x] maps under t ↦ 2c-t to [x, c] ⊆ [a,b] ⊆ U + -- So [c, 2c-x] ⊆ V + have hJ_sub_V : Icc c (2 * c - x) ⊆ V := by + intro t ht + -- 2c - t ∈ [x, c] ⊆ [a,b] ⊆ U + have ht_lower : x ≤ 2 * c - t := by linarith [ht.2] + have ht_upper : 2 * c - t ≤ c := by linarith [ht.1] + have h2ct_in_ab : 2 * c - t ∈ Icc a b := by + refine mem_Icc.mpr ⟨?_, ?_⟩ + · exact le_trans hx.1 ht_lower + · exact le_trans ht_upper hcb + exact hI_sub h2ct_in_ab + -- c ∈ V since c maps to c ∈ [a,b] ⊆ U + have hcV : c ∈ V := by + have hc_ab : c ∈ Icc a b := ⟨le_trans hx.1 (le_of_lt hxc), hcb⟩ + -- Need to show c ∈ V, i.e., (fun t => 2 * c - t) c ∈ U, i.e., 2c - c = c ∈ U + change c ∈ V + simp only [hV_def, Set.mem_preimage] + have h2cc : 2 * c - c = c := by ring + rw [h2cc] + exact hI_sub hc_ab + -- Helper: map [c, 2c-x] to [a,b] + have h_map_to_ab : ∀ t ∈ Icc c (2 * c - x), 2 * c - t ∈ Icc a b := by + intro t ht + have ht_lower : x ≤ 2 * c - t := by linarith [ht.2] + have ht_upper : 2 * c - t ≤ c := by linarith [ht.1] + exact ⟨le_trans hx.1 ht_lower, le_trans ht_upper hcb⟩ + -- Derivative bound for g using reflection formula + have hg_deriv_bound : ∀ y ∈ Icc c (2 * c - x), ‖iteratedDeriv (m + 1) g y‖ ≤ M := by + intro y hy + have h2cy_ab : 2 * c - y ∈ Icc a b := h_map_to_ab y hy + have h2cy_U : 2 * c - y ∈ U := hI_sub h2cy_ab + -- Use the reflection formula + have hg_deriv : iteratedDeriv (m + 1) g y = (-1 : ℝ) ^ (m + 1) * iteratedDeriv (m + 1) f (2 * + c - y) := + iteratedDeriv_reflect_of_contDiffOn hU_open hf y h2cy_U + rw [hg_deriv, norm_mul, Real.norm_eq_abs] + have h_neg_one : |(-1 : ℝ) ^ (m + 1)| = 1 := by + rw [abs_pow, abs_neg, abs_one, one_pow] + rw [h_neg_one, one_mul] + exact hM (2 * c - y) h2cy_ab + -- Now apply taylor_remainder_bound_on_c_lt_x to g + have hcV' : a ≤ c := le_trans hx.1 (le_of_lt hxc) + -- g is ContDiffOn V and Icc c (2c-x) ⊆ V + have h_taylor_g := taylor_remainder_bound_on_c_lt_x hV_open hJ_sub_V (le_refl c) + hg_ContDiffOn hg_deriv_bound (2 * c - x) ⟨le_of_lt h_interval_lt, le_refl _⟩ h_interval_lt + -- g(2c-x) = f(x) + have hg_at_2cmx : g (2 * c - x) = f x := by simp only [hg_def, sub_sub_cancel] + -- g^(i)(c) = (-1)^i * f^(i)(c) + have hg_deriv_c : ∀ i ≤ m + 1, iteratedDeriv i g c = (-1 : ℝ) ^ i * iteratedDeriv i f c := by + intro i hi + have hcU : c ∈ U := hI_sub ⟨le_trans hx.1 (le_of_lt hxc), hcb⟩ + have h2cc : 2 * c - c = c := by ring + rw [← h2cc] at hcU + have hfi : ContDiffOn ℝ i f U := hf.of_le (by exact_mod_cast hi) + have hrefl := iteratedDeriv_reflect_of_contDiffOn hU_open hfi c hcU + simp only [h2cc] at hrefl + exact hrefl + -- Now convert the Taylor sum + -- ∑ (iteratedDeriv i g c / i!) * ((2c-x) - c)^i = ∑ (iteratedDeriv i f c / i!) * (x - c)^i + have hsum_eq : ∑ i ∈ range (m + 1), (iteratedDeriv i g c / i.factorial) * ((2 * c - x) - c) ^ i = + ∑ i ∈ range (m + 1), (iteratedDeriv i f c / i.factorial) * (x - c) ^ i := by + apply sum_congr rfl + intro i hi + have hi_le : i ≤ m + 1 := le_of_lt (mem_range.mp hi) + rw [hg_deriv_c i hi_le] + have h_diff : (2 * c - x) - c = c - x := by ring + rw [h_diff] + have h_pow : (c - x : ℝ) ^ i = (-1 : ℝ) ^ i * (x - c) ^ i := by + have : c - x = -(x - c) := by ring + rw [this, neg_eq_neg_one_mul, mul_pow] + rw [h_pow] + -- Simplify: (-1)^i * f^(i)(c) / i! * ((-1)^i * (x-c)^i) + have h_neg_sq : (-1 : ℝ) ^ i * (-1 : ℝ) ^ i = 1 := by rw [← pow_add]; norm_num + -- Goal: (-1)^i * iteratedDeriv i f c / i! * ((-1)^i * (x-c)^i) = iteratedDeriv i f c / i! * + -- (x-c)^i + calc (-1 : ℝ) ^ i * iteratedDeriv i f c / ↑i.factorial * ((-1) ^ i * (x - c) ^ i) + = ((-1 : ℝ) ^ i * (-1) ^ i) * (iteratedDeriv i f c / ↑i.factorial * (x - c) ^ i) := by ring + _ = 1 * (iteratedDeriv i f c / ↑i.factorial * (x - c) ^ i) := by rw [h_neg_sq] + _ = iteratedDeriv i f c / ↑i.factorial * (x - c) ^ i := by ring + -- Use h_taylor_g with the conversions + rw [hg_at_2cmx, hsum_eq] at h_taylor_g + -- The RHS: M * |(2c-x) - c|^(m+1) / (m+1)! = M * |x - c|^(m+1) / (m+1)! + have h_abs_eq : |(2 * c - x) - c| = |x - c| := by + have h : (2 * c - x) - c = c - x := by ring + rw [h, abs_sub_comm] + rw [h_abs_eq] at h_taylor_g + exact h_taylor_g +/-- Combined Taylor remainder bound with ContDiffOn hypothesis. + + For functions that are ContDiffOn on an open set containing [a, b], this provides + the Lagrange remainder bound for any x ∈ [a, b] and center c ∈ [a, b]. -/ +theorem taylor_remainder_bound_on {f : ℝ → ℝ} {a b c : ℝ} {n : ℕ} {M : ℝ} {U : Set ℝ} + (hU_open : IsOpen U) (hI_sub : Set.Icc a b ⊆ U) + (hca : a ≤ c) (hcb : c ≤ b) + (hf : ContDiffOn ℝ n f U) + (hM : ∀ x ∈ Set.Icc a b, ‖iteratedDeriv n f x‖ ≤ M) + (_hMnonneg : 0 ≤ M) : + ∀ x ∈ Set.Icc a b, + ‖f x - ∑ i ∈ Finset.range n, (iteratedDeriv i f c / i.factorial) * (x - c) ^ i‖ + ≤ M * |x - c| ^ n / n.factorial := by + open Set Finset in + intro x hx + cases n with + | zero => + simp only [range_zero, sum_empty, sub_zero, Nat.factorial_zero, Nat.cast_one, + div_one, pow_zero, mul_one] + have h : f = iteratedDeriv 0 f := iteratedDeriv_zero.symm + rw [h] + exact hM x hx + | succ m => + by_cases hxc : x = c + · -- Case x = c: both sides are 0 + have hrhs : M * |x - c| ^ (m + 1) / ↑(m + 1).factorial = 0 := by + rw [hxc, sub_self, abs_zero, zero_pow (Nat.succ_ne_zero m), mul_zero, zero_div] + rw [hrhs] + have hsum : ∑ i ∈ range (m + 1), (iteratedDeriv i f c / i.factorial) * (x - c) ^ i = f c := by + rw [hxc] + simp only [sub_self] + rw [sum_eq_single 0] + · simp [iteratedDeriv_zero] + · intro i _ hi + have hpos : 0 < i := Nat.pos_of_ne_zero hi + have : (0 : ℝ) ^ i = 0 := zero_pow hpos.ne' + simp [this] + · simp + rw [hsum, hxc, sub_self, norm_zero] + · rcases lt_or_gt_of_ne hxc with hxc_lt | hcx_lt + · exact taylor_remainder_bound_on_x_lt_c hU_open hI_sub hcb hf hM x hx hxc_lt + · exact taylor_remainder_bound_on_c_lt_x hU_open hI_sub hca hf hM x hx hcx_lt + +/-- Key lemma: derivatives of reflected function g(t) = f(2c - t). + +For the `x < c` case, we use reflection: define g(t) = f(2c - t), apply Lagrange +to g on [c, 2c-x], then convert back. This lemma shows how g's derivatives +relate to f's derivatives. -/ +lemma iteratedDeriv_reflect {f : ℝ → ℝ} {c : ℝ} {n : ℕ} (hf : ContDiff ℝ n f) (t : ℝ) : + iteratedDeriv n (fun s => f (2 * c - s)) t = (-1 : ℝ) ^ n * iteratedDeriv n f (2 * c - t) := by + have heq : (fun s => f (2 * c - s)) = (fun s => (fun x => f (x + 2 * c)) (-s)) := by + ext s; ring_nf + rw [heq] + rw [iteratedDeriv_comp_neg n (fun x => f (x + 2 * c)) t] + simp only [smul_eq_mul] + congr 1 + clear heq + induction n generalizing f with + | zero => simp only [iteratedDeriv_zero]; ring_nf + | succ n ih => + rw [iteratedDeriv_succ', iteratedDeriv_succ'] + have hf' : ContDiff ℝ (n + 1) f := hf + have hderiv_eq : deriv (fun x => f (x + 2 * c)) = fun x => deriv f (x + 2 * c) := by + ext x + have hdiff : DifferentiableAt ℝ f (x + 2 * c) := + (hf'.differentiable (by simp : ((n : ℕ) + 1 : WithTop ℕ∞) ≠ 0)).differentiableAt + have hlin : DifferentiableAt ℝ (fun y => y + 2 * c) x := + differentiableAt_id.add (differentiableAt_const _) + have h1 := deriv_comp x hdiff hlin + simp only [deriv_add_const, deriv_id'', mul_one] at h1 + exact h1 + rw [hderiv_eq] + have hdf : ContDiff ℝ n (deriv f) := by + have h := hf'.iterate_deriv' n 1 + simp only [Function.iterate_one] at h + exact h + exact ih hdf + +/-- Auxiliary lemma: (-1)^n * (-1)^n = 1 for any natural n. -/ +lemma neg_one_pow_mul_self (n : ℕ) : (-1 : ℝ) ^ n * (-1) ^ n = 1 := by + rw [← pow_add] + norm_num +/-- Taylor remainder bound for c < x case (Lagrange form). + +For `c < x`, we apply `taylor_mean_remainder_lagrange` on `[c, x]` and convert +`iteratedDerivWithin` to `iteratedDeriv` using the helper lemmas above. -/ +theorem taylor_remainder_bound_c_lt_x {f : ℝ → ℝ} {a b c : ℝ} {m : ℕ} {M : ℝ} + (hca : a ≤ c) + (hf : ContDiff ℝ (m + 1) f) + (hM : ∀ y ∈ Set.Icc a b, ‖iteratedDeriv (m + 1) f y‖ ≤ M) + (x : ℝ) (hx : x ∈ Set.Icc a b) (hcx : c < x) : + ‖f x - ∑ i ∈ Finset.range (m + 1), (iteratedDeriv i f c / i.factorial) * (x - c) ^ i‖ + ≤ M * |x - c| ^ (m + 1) / (m + 1).factorial := by + open Set Finset in + have hcx_le : c ≤ x := le_of_lt hcx + have hI_sub : Icc c x ⊆ Icc a b := Icc_subset_Icc hca hx.2 + have hf_on : ContDiffOn ℝ (m + 1) f (Icc c x) := hf.contDiffOn.mono hI_sub + have hf_on_m : ContDiffOn ℝ m f (Icc c x) := by + have hm_le : (m : WithTop ℕ∞) ≤ (m + 1 : ℕ) := by simp + exact hf_on.of_le hm_le + have hf_diff : DifferentiableOn ℝ (iteratedDerivWithin m f (Icc c x)) (Ioo c x) := by + have huniq := uniqueDiffOn_Icc hcx + have hm_lt : (m : WithTop ℕ∞) < (m + 1 : ℕ) := by + have : (m : ℕ) < m + 1 := Nat.lt_succ_self m + exact_mod_cast this + have hdiff := hf_on.differentiableOn_iteratedDerivWithin hm_lt huniq + exact hdiff.mono Ioo_subset_Icc_self + have hf_on_m' : ContDiffOn ℝ m f (uIcc c x) := by rwa [uIcc_of_le hcx_le] + have hf_diff' : DifferentiableOn ℝ (iteratedDerivWithin m f (uIcc c x)) (uIoo c x) := by + rwa [uIcc_of_le hcx_le, uIoo_of_lt hcx] + obtain ⟨ξ, hξ_mem, hLagrange⟩ := + taylor_mean_remainder_lagrange (x₀ := c) (x := x) hcx.ne hf_on_m' hf_diff' + have hξ_mem_Ioo : ξ ∈ Ioo c x := by rwa [uIoo_of_lt hcx] at hξ_mem + rw [uIcc_of_le hcx_le] at hLagrange + have hξ_ab : ξ ∈ Icc a b := hI_sub (Ioo_subset_Icc_self hξ_mem_Ioo) + have hderiv_ξ : iteratedDerivWithin (m + 1) f (Icc c x) ξ = iteratedDeriv (m + 1) f ξ := + iteratedDerivWithin_Icc_interior_eq hcx hξ_mem_Ioo + have hsum_eq : ∑ i ∈ range (m + 1), (iteratedDeriv i f c / i.factorial) * (x - c) ^ i = + taylorWithinEval f m (Icc c x) c x := by + rw [taylor_within_apply] + apply sum_congr rfl + intro i hi + have hderiv_c : iteratedDerivWithin i f (Icc c x) c = iteratedDeriv i f c := by + have hi_lt : i < m + 1 := mem_range.mp hi + have hi_le : (i : WithTop ℕ∞) ≤ (m + 1 : ℕ) := by + have : (i : ℕ) ≤ m := Nat.lt_succ_iff.mp hi_lt + exact le_of_lt (by exact_mod_cast Nat.lt_add_one_of_le this) + exact iteratedDerivWithin_Icc_left_eq_iteratedDeriv hcx (hf.of_le hi_le) + rw [hderiv_c] + simp only [smul_eq_mul] + ring + rw [hsum_eq, hLagrange, hderiv_ξ] + rw [norm_div, norm_mul, Real.norm_eq_abs, Real.norm_eq_abs, Real.norm_eq_abs] + have hfact_pos : (0 : ℝ) < ((m + 1).factorial : ℝ) := Nat.cast_pos.mpr (Nat.factorial_pos _) + rw [abs_of_pos hfact_pos] + have hxc_pos : 0 < x - c := sub_pos.mpr hcx + rw [abs_pow, abs_of_pos hxc_pos] + have hbound := hM ξ hξ_ab + have h_pow_fact_pos : 0 < (x - c) ^ (m + 1) / (m + 1).factorial := by + apply div_pos + · exact pow_pos hxc_pos _ + · exact hfact_pos + calc |iteratedDeriv (m + 1) f ξ| * (x - c) ^ (m + 1) / ↑(m + 1).factorial + = |iteratedDeriv (m + 1) f ξ| * ((x - c) ^ (m + 1) / ↑(m + 1).factorial) := by ring + _ ≤ M * ((x - c) ^ (m + 1) / ↑(m + 1).factorial) := by + apply mul_le_mul_of_nonneg_right hbound (le_of_lt h_pow_fact_pos) + _ = M * (x - c) ^ (m + 1) / ↑(m + 1).factorial := by ring +/-- Taylor remainder bound for x < c case (Lagrange form via reflection). + +For `x < c`, we define g(t) = f(2c - t), apply `taylor_mean_remainder_lagrange` on `[c, 2c-x]`, +then use `iteratedDeriv_reflect` to convert back to f's derivatives. The key insight is that +g's Taylor expansion at c, evaluated at 2c-x, equals f's Taylor expansion at c, evaluated at x, +because the (-1)^i factors from the derivatives cancel with the (-1)^i factors from the powers. -/ +theorem taylor_remainder_bound_x_lt_c {f : ℝ → ℝ} {a b c : ℝ} {m : ℕ} {M : ℝ} + (hcb : c ≤ b) + (hf : ContDiff ℝ (m + 1) f) + (hM : ∀ y ∈ Set.Icc a b, ‖iteratedDeriv (m + 1) f y‖ ≤ M) + (x : ℝ) (hx : x ∈ Set.Icc a b) (hxc : x < c) : + ‖f x - ∑ i ∈ Finset.range (m + 1), (iteratedDeriv i f c / i.factorial) * (x - c) ^ i‖ + ≤ M * |x - c| ^ (m + 1) / (m + 1).factorial := by + open Set Finset in + -- Define reflected function g(t) = f(2c - t) + set g : ℝ → ℝ := fun t => f (2 * c - t) with hg_def + -- g is smooth + have hg_smooth : ContDiff ℝ (m + 1) g := by + have hlin : ContDiff ℝ ⊤ (fun t => 2 * c - t) := contDiff_const.sub contDiff_id + exact hf.comp (hlin.of_le le_top) + -- The interval [c, 2c - x] + have h_interval_lt : c < 2 * c - x := by linarith + -- Apply taylor_mean_remainder_lagrange to g on [c, 2c - x] + have hg_on : ContDiffOn ℝ (m + 1) g (Icc c (2 * c - x)) := hg_smooth.contDiffOn + have h_interval_le : c ≤ 2 * c - x := le_of_lt h_interval_lt + have hg_on_m : ContDiffOn ℝ m g (Icc c (2 * c - x)) := by + have hm_le : (m : WithTop ℕ∞) ≤ (m + 1 : ℕ) := by norm_cast; omega + exact hg_on.of_le hm_le + have hg_diff : DifferentiableOn ℝ (iteratedDerivWithin m g (Icc c (2 * c - x))) (Ioo c (2 * c - + x)) := by + have huniq := uniqueDiffOn_Icc h_interval_lt + have hm_lt : (m : WithTop ℕ∞) < (m + 1 : ℕ) := by + have : (m : ℕ) < m + 1 := Nat.lt_succ_self m + exact_mod_cast this + have hdiff := hg_on.differentiableOn_iteratedDerivWithin hm_lt huniq + exact hdiff.mono Ioo_subset_Icc_self + have hg_on_m' : ContDiffOn ℝ m g (uIcc c (2 * c - x)) := by rwa [uIcc_of_le h_interval_le] + have hg_diff' : DifferentiableOn ℝ (iteratedDerivWithin m g (uIcc c (2 * c - x))) (uIoo c (2 * c + - x)) := by + rwa [uIcc_of_le h_interval_le, uIoo_of_lt h_interval_lt] + obtain ⟨ξ', hξ'_mem, hLagrange⟩ := + taylor_mean_remainder_lagrange (x₀ := c) (x := 2 * c - x) + h_interval_lt.ne hg_on_m' hg_diff' + have hξ'_mem_Ioo : ξ' ∈ Ioo c (2 * c - x) := by + rwa [uIoo_of_lt h_interval_lt] at hξ'_mem + rw [uIcc_of_le h_interval_le] at hLagrange + -- ξ = 2c - ξ' ∈ (x, c) + set ξ := 2 * c - ξ' with hξ_def + have hξ'_lt_2cmx : ξ' < 2 * c - x := hξ'_mem_Ioo.2 + have hξ'_gt_c : c < ξ' := hξ'_mem_Ioo.1 + have hξ_gt_x : x < ξ := by simp only [hξ_def]; linarith + have hξ_lt_c : ξ < c := by simp only [hξ_def]; linarith + have hξ_ab : ξ ∈ Icc a b := + ⟨le_trans hx.1 (le_of_lt hξ_gt_x), le_trans (le_of_lt hξ_lt_c) hcb⟩ + have hg_at_2cmx : g (2 * c - x) = f x := by simp only [hg_def, sub_sub_cancel] + -- g^{(k)}(c) = (-1)^k * f^{(k)}(c) + have hg_deriv : ∀ k ≤ m + 1, iteratedDeriv k g c = (-1 : ℝ) ^ k * iteratedDeriv k f c := by + intro k hk + have hg_eq : g = fun s => f (2 * c - s) := hg_def + rw [hg_eq] + rw [iteratedDeriv_reflect (hf.of_le (by exact_mod_cast hk)) c] + congr 1 + ring_nf + -- Key: taylorWithinEval g m (Icc c (2c-x)) c (2c-x) = ∑ ... of f's Taylor coeffs + have hTaylor_g_to_f : taylorWithinEval g m (Icc c (2 * c - x)) c (2 * c - x) = + ∑ i ∈ range (m + 1), (iteratedDeriv i f c / i.factorial) * (x - c) ^ i := by + rw [taylor_within_apply] + apply sum_congr rfl + intro i hi + have hi_lt : i < m + 1 := mem_range.mp hi + have hi_le : i ≤ m + 1 := le_of_lt hi_lt + have hi_le' : (i : WithTop ℕ∞) ≤ (m + 1 : ℕ) := by + have : (i : ℕ) ≤ m := Nat.lt_succ_iff.mp hi_lt + exact le_of_lt (by exact_mod_cast Nat.lt_add_one_of_le this) + have hderiv_c : iteratedDerivWithin i g (Icc c (2 * c - x)) c = iteratedDeriv i g c := + iteratedDerivWithin_Icc_left_eq_iteratedDeriv h_interval_lt (hg_smooth.of_le hi_le') + rw [hderiv_c, hg_deriv i hi_le] + simp only [smul_eq_mul] + have h_diff : (2 * c - x) - c = c - x := by ring + rw [h_diff] + have h_pow : (c - x : ℝ) ^ i = (-1 : ℝ) ^ i * (x - c) ^ i := by + have : c - x = -(x - c) := by ring + rw [this, neg_eq_neg_one_mul, mul_pow] + rw [h_pow] + have h_neg_sq : (-1 : ℝ) ^ i * (-1 : ℝ) ^ i = 1 := neg_one_pow_mul_self i + have hgoal : (↑i.factorial : ℝ)⁻¹ * ((-1 : ℝ) ^ i * (x - c) ^ i) * ((-1 : ℝ) ^ i * + iteratedDeriv i f c) + = iteratedDeriv i f c / ↑i.factorial * (x - c) ^ i := by + have h1 : (↑i.factorial : ℝ)⁻¹ * ((-1 : ℝ) ^ i * (x - c) ^ i) * ((-1 : ℝ) ^ i * + iteratedDeriv i f c) + = ((-1 : ℝ) ^ i * (-1 : ℝ) ^ i) * ((↑i.factorial : ℝ)⁻¹ * (x - c) ^ i * + iteratedDeriv i f c) := by ring + rw [h1, h_neg_sq, one_mul] + field_simp + exact hgoal + -- Now use Lagrange formula + rw [hg_at_2cmx] at hLagrange + rw [← hTaylor_g_to_f, hLagrange] + have h_pow_rhs : ((2 * c - x) - c : ℝ) ^ (m + 1) = (c - x) ^ (m + 1) := by ring + have hderiv_ξ' : iteratedDerivWithin (m + 1) g (Icc c (2 * c - x)) ξ' = iteratedDeriv (m + 1) g + ξ' := + iteratedDerivWithin_Icc_interior_eq h_interval_lt hξ'_mem_Ioo + -- iteratedDeriv (m+1) g ξ' = (-1)^(m+1) * iteratedDeriv (m+1) f ξ + have hg_deriv_ξ' : iteratedDeriv (m + 1) g ξ' = (-1 : ℝ) ^ (m + 1) * iteratedDeriv (m + 1) f ξ + := by + have hg_eq : g = fun s => f (2 * c - s) := hg_def + have h := @iteratedDeriv_reflect f c (m + 1) hf ξ' + simp only [hg_eq, hξ_def, h] + rw [hderiv_ξ', hg_deriv_ξ', h_pow_rhs] + have h_pow_eq : (c - x : ℝ) ^ (m + 1) = (-1 : ℝ) ^ (m + 1) * (x - c) ^ (m + 1) := by + have : c - x = -(x - c) := by ring + rw [this, neg_eq_neg_one_mul, mul_pow] + rw [h_pow_eq] + -- Simplify + have h_simplify : (-1 : ℝ) ^ (m + 1) * iteratedDeriv (m + 1) f ξ * ((-1 : ℝ) ^ (m + 1) * (x - c) + ^ (m + 1)) / ↑(m + 1).factorial = + iteratedDeriv (m + 1) f ξ * (x - c) ^ (m + 1) / ↑(m + 1).factorial := by + have h_neg_sq := neg_one_pow_mul_self (m + 1) + have h1 : (-1 : ℝ) ^ (m + 1) * iteratedDeriv (m + 1) f ξ * ((-1 : ℝ) ^ (m + 1) * (x - c) ^ (m + + 1)) / ↑(m + 1).factorial = + ((-1 : ℝ) ^ (m + 1) * (-1 : ℝ) ^ (m + 1)) * (iteratedDeriv (m + 1) f ξ * (x - c) ^ + (m + 1)) / ↑(m + 1).factorial := by ring + rw [h1, h_neg_sq, one_mul] + rw [h_simplify] + -- Bound the norm + rw [norm_div, norm_mul, Real.norm_eq_abs, Real.norm_eq_abs, Real.norm_eq_abs] + have hfact_pos : (0 : ℝ) < ((m + 1).factorial : ℝ) := Nat.cast_pos.mpr (Nat.factorial_pos _) + rw [abs_of_pos hfact_pos] + rw [abs_pow] + have hbound := hM ξ hξ_ab + have hxc_ne : x - c ≠ 0 := by linarith + have h_pow_fact_pos : 0 < |x - c| ^ (m + 1) / (m + 1).factorial := by + apply div_pos + · apply pow_pos; exact abs_pos.mpr hxc_ne + · exact hfact_pos + calc |iteratedDeriv (m + 1) f ξ| * |x - c| ^ (m + 1) / ↑(m + 1).factorial + = |iteratedDeriv (m + 1) f ξ| * (|x - c| ^ (m + 1) / ↑(m + 1).factorial) := by ring + _ ≤ M * (|x - c| ^ (m + 1) / ↑(m + 1).factorial) := by + apply mul_le_mul_of_nonneg_right hbound (le_of_lt h_pow_fact_pos) + _ = M * |x - c| ^ (m + 1) / ↑(m + 1).factorial := by ring +/-- Lagrange form remainder bound for Taylor approximation. + +If `|f^(n)(x)| ≤ M` for all x in [a, b], and `c ∈ [a, b]`, then the Taylor polynomial +of degree `n-1` (sum over range n) satisfies: for any `x ∈ [a, b]`: + `|f(x) - T_{n-1}(x; c)| ≤ M * |x - c|^n / n!` + +Note: The sum `∑ i ∈ Finset.range n` gives terms 0..n-1 (degree n-1 polynomial). +The remainder involves the n-th derivative, matching our bound on `iteratedDeriv n f`. + +All cases are fully proved: +- **Case n = 0**: Direct bound. ✓ +- **Case n > 0, x = c**: Trivial (both sides zero). ✓ +- **Case n > 0, c < x**: Via `taylor_remainder_bound_c_lt_x`. ✓ +- **Case n > 0, x < c**: Via `taylor_remainder_bound_x_lt_c` (reflection). ✓ +-/ +theorem taylor_remainder_bound {f : ℝ → ℝ} {a b c : ℝ} {n : ℕ} {M : ℝ} + (_hab : a ≤ b) (hca : a ≤ c) (hcb : c ≤ b) + (hf : ContDiff ℝ n f) + (hM : ∀ x ∈ Set.Icc a b, ‖iteratedDeriv n f x‖ ≤ M) + (_hMnonneg : 0 ≤ M) : + ∀ x ∈ Set.Icc a b, + ‖f x - ∑ i ∈ Finset.range n, (iteratedDeriv i f c / i.factorial) * (x - c) ^ i‖ + ≤ M * |x - c| ^ n / n.factorial := by + open Set Finset in + intro x hx + cases n with + | zero => + -- Case n = 0: sum is empty, need ‖f x‖ ≤ M + simp only [range_zero, sum_empty, sub_zero, Nat.factorial_zero, Nat.cast_one, + div_one, pow_zero, mul_one] + have h : f = iteratedDeriv 0 f := iteratedDeriv_zero.symm + rw [h] + exact hM x hx + | succ m => + by_cases hxc : x = c + · -- Case x = c: both sides are 0 + have hrhs : M * |x - c| ^ (m + 1) / ↑(m + 1).factorial = 0 := by + rw [hxc, sub_self, abs_zero, zero_pow (Nat.succ_ne_zero m), mul_zero, zero_div] + rw [hrhs] + have hsum : ∑ i ∈ range (m + 1), (iteratedDeriv i f c / i.factorial) * (x - c) ^ i = f c := by + rw [hxc] + simp only [sub_self] + rw [sum_eq_single 0] + · simp [iteratedDeriv_zero] + · intro i _ hi + have hpos : 0 < i := Nat.pos_of_ne_zero hi + have : (0 : ℝ) ^ i = 0 := zero_pow hpos.ne' + simp [this] + · simp + rw [hsum, hxc, sub_self, norm_zero] + · -- Case x ≠ c + rcases lt_or_gt_of_ne hxc with hxc_lt | hcx_lt + · -- Case x < c: use reflection approach + exact taylor_remainder_bound_x_lt_c hcb hf hM x hx hxc_lt + · -- Case c < x: fully proved + exact taylor_remainder_bound_c_lt_x hca hf hM x hx hcx_lt + +/-! ### Common Taylor expansions -/ + +/-- Taylor coefficients for exp at 0: 1/n! -/ +def expTaylorCoeff (n : ℕ) : ℚ := 1 / n.factorial + +/-- Taylor coefficients for sin at 0 -/ +def sinTaylorCoeff (n : ℕ) : ℚ := + if n % 2 = 0 then 0 + else if (n / 2) % 2 = 0 then 1 / n.factorial + else -1 / n.factorial + +/-- Taylor coefficients for cos at 0 -/ +def cosTaylorCoeff (n : ℕ) : ℚ := + if n % 2 = 1 then 0 + else if (n / 2) % 2 = 0 then 1 / n.factorial + else -1 / n.factorial + +/-! ### Derivative bounds for common functions -/ + +/-- All derivatives of exp are bounded by exp on any bounded interval -/ +theorem exp_deriv_bound {a b : ℝ} (_hab : a ≤ b) (n : ℕ) : + ∀ x ∈ Set.Icc a b, ‖iteratedDeriv n Real.exp x‖ ≤ Real.exp b := by + intro x hx + rw [iteratedDeriv_eq_iterate] + rw [Real.iter_deriv_exp] + rw [Real.norm_eq_abs, abs_of_pos (Real.exp_pos x)] + exact Real.exp_le_exp.mpr hx.2 + +/-- All derivatives of sin and cos are bounded by 1. + The derivatives cycle: sin → cos → -sin → -cos → sin → ... -/ +theorem sin_cos_deriv_bound (n : ℕ) : + ∀ x : ℝ, ‖iteratedDeriv n Real.sin x‖ ≤ 1 ∧ ‖iteratedDeriv n Real.cos x‖ ≤ 1 := by + intro x + -- Prove by induction that both bounds hold together + induction n with + | zero => + simp only [iteratedDeriv_zero] + exact ⟨Real.abs_sin_le_one x, Real.abs_cos_le_one x⟩ + | succ n ih => + constructor + · -- sin case: d/dx sin = cos + rw [iteratedDeriv_succ'] + have hderiv : deriv Real.sin = Real.cos := Real.deriv_sin + rw [hderiv] + exact ih.2 + · -- cos case: d/dx cos = -sin + rw [iteratedDeriv_succ'] + have hderiv : deriv Real.cos = fun y => -Real.sin y := Real.deriv_cos' + rw [hderiv] + rw [iteratedDeriv_fun_neg n Real.sin x, norm_neg] + exact ih.1 + +/-- cosh x ≤ exp |x| for all x -/ +theorem cosh_le_exp_abs (x : ℝ) : Real.cosh x ≤ Real.exp |x| := by + rw [Real.cosh_eq] + have h1 : Real.exp x ≤ Real.exp |x| := Real.exp_le_exp.mpr (le_abs_self x) + have habs_neg : -x ≤ |x| := neg_le_abs x + have h2 : Real.exp (-x) ≤ Real.exp |x| := Real.exp_le_exp.mpr habs_neg + linarith + +/-- |sinh x| ≤ cosh x for all x -/ +theorem abs_sinh_le_cosh (x : ℝ) : |Real.sinh x| ≤ Real.cosh x := by + have hcosh_pos : 0 < Real.cosh x := Real.cosh_pos x + have hcosh_sq : Real.cosh x ^ 2 = Real.sinh x ^ 2 + 1 := Real.cosh_sq x + have hsinh_sq_le : Real.sinh x ^ 2 ≤ Real.cosh x ^ 2 := by linarith [sq_nonneg (Real.cosh x)] + rw [abs_le] + constructor + · -- -cosh x ≤ sinh x + have h : Real.cosh x ^ 2 - Real.sinh x ^ 2 = 1 := Real.cosh_sq_sub_sinh_sq x + nlinarith [sq_nonneg (Real.cosh x + Real.sinh x), sq_nonneg (Real.cosh x - Real.sinh x)] + · -- sinh x ≤ cosh x + have h : Real.cosh x ^ 2 - Real.sinh x ^ 2 = 1 := Real.cosh_sq_sub_sinh_sq x + nlinarith [sq_nonneg (Real.cosh x + Real.sinh x), sq_nonneg (Real.cosh x - Real.sinh x)] + +/-- All derivatives of sinh and cosh are bounded by exp(max(|a|, |b|)) on [a, b]. + The derivatives cycle: sinh → cosh → sinh → cosh → ... -/ +theorem sinh_cosh_deriv_bound {a b : ℝ} (_hab : a ≤ b) (n : ℕ) : + ∀ x ∈ Set.Icc a b, ‖iteratedDeriv n Real.sinh x‖ ≤ Real.exp (max (|a|) (|b|)) ∧ + ‖iteratedDeriv n Real.cosh x‖ ≤ Real.exp (max (|a|) (|b|)) := by + intro x hx + set M := Real.exp (max (|a|) (|b|)) with hM_def + have habs_x_le : |x| ≤ max (|a|) (|b|) := by + rw [abs_le] + constructor + · calc -max (|a|) (|b|) ≤ -|a| := neg_le_neg (le_max_left _ _) + _ ≤ a := neg_abs_le a + _ ≤ x := hx.1 + · calc x ≤ b := hx.2 + _ ≤ |b| := le_abs_self b + _ ≤ max (|a|) (|b|) := le_max_right _ _ + have hcosh_bound : Real.cosh x ≤ M := by + calc Real.cosh x ≤ Real.exp |x| := cosh_le_exp_abs x + _ ≤ Real.exp (max (|a|) (|b|)) := Real.exp_le_exp.mpr habs_x_le + have hsinh_bound : |Real.sinh x| ≤ M := by + calc |Real.sinh x| ≤ Real.cosh x := abs_sinh_le_cosh x + _ ≤ M := hcosh_bound + -- Prove by induction that both bounds hold + induction n with + | zero => + simp only [iteratedDeriv_zero, Real.norm_eq_abs] + exact ⟨hsinh_bound, by rw [abs_of_pos (Real.cosh_pos x)]; exact hcosh_bound⟩ + | succ n ih => + constructor + · -- sinh case: d/dx sinh = cosh + rw [iteratedDeriv_succ'] + have hderiv : deriv Real.sinh = Real.cosh := by + funext x + exact LeanCert.Core.DerivativeIntervals.sinh_deriv_eq x + rw [hderiv] + exact ih.2 + · -- cosh case: d/dx cosh = sinh + rw [iteratedDeriv_succ'] + have hderiv : deriv Real.cosh = Real.sinh := Real.deriv_cosh + rw [hderiv] + exact ih.1 + +/- The n-th iterated derivative of log at x > 0 is (-1)^(n-1) * (n-1)! * x^(-n) for n ≥ 1. -/ +theorem iteratedDeriv_log {n : ℕ} (hn : n ≠ 0) {x : ℝ} (hx : 0 < x) : + iteratedDeriv n Real.log x = (-1)^(n-1) * (n-1).factorial * x^(-(n : ℤ)) := by + match n with + | 1 => + -- n = 1: iteratedDeriv 1 log x = deriv log x = 1/x = x^(-1) + simp only [iteratedDeriv_one, Real.deriv_log', tsub_self, pow_zero, Nat.factorial_zero, + Nat.cast_one, mul_one, Int.reduceNeg, zpow_neg, zpow_one, one_mul] + | n + 2 => + -- n + 2: use induction + -- iteratedDeriv (n+2) log = deriv (iteratedDeriv (n+1) log) + rw [iteratedDeriv_succ] + -- By IH: iteratedDeriv (n+1) log y = (-1)^n * n! * y^(-(n+1)) for y > 0 + have h_eq : ∀ y : ℝ, 0 < y → iteratedDeriv (n + 1) Real.log y = + (-1 : ℝ)^n * n.factorial * y^(-(n + 1 : ℤ)) := fun y hy => iteratedDeriv_log + n.succ_ne_zero hy + have h_deriv_eq : deriv (iteratedDeriv (n + 1) Real.log) x = + deriv (fun y => (-1 : ℝ)^n * n.factorial * y^(-(n + 1 : ℤ))) x := by + apply Filter.EventuallyEq.deriv_eq + filter_upwards [eventually_gt_nhds hx] with y hy + exact h_eq y hy + rw [h_deriv_eq] + have hdiff : DifferentiableAt ℝ (fun y => y ^ (-(n + 1 : ℤ))) x := by + apply DifferentiableAt.zpow differentiableAt_id + left; exact hx.ne' + rw [deriv_const_mul _ hdiff, deriv_zpow (-(n + 1 : ℤ)) x] + simp only [neg_add_rev, Int.reduceNeg, Int.cast_add, Int.cast_neg, Int.cast_one, + Int.cast_natCast, Nat.add_one_sub_one, Nat.cast_add, Nat.cast_ofNat] + rw [pow_succ (-1 : ℝ) n, Nat.factorial_succ] + push_cast + calc + (-1) ^ n * n.factorial * ((-1 + -(n : ℤ)) * x ^ (-1 + -(n : ℤ) - 1)) + _ = (-1) ^ n * n.factorial * ((-1 + -(n : ℤ)) * x ^ (-2 + -(n : ℤ))) := by congr 3; grind + _ = (-1) ^ n * -1 * ((↑n + 1) * n.factorial) * x ^ (-2 + -(n : ℤ)) := by simp; ring + +end LeanCert.Core + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Rational Endpoint Intervals - Computable Taylor Series + +This file provides computable interval enclosures for transcendental functions +using Taylor series with rational coefficients and rigorous remainder bounds. + +## Main definitions + +* `ratFactorial` - Compute n! as a rational +* `pow` - Compute interval power +* `absInterval`, `maxAbs` - Absolute value helpers +* `evalTaylorSeries` - Evaluate Taylor polynomial on an interval +* `expComputable`, `sinComputable`, `cosComputable` - Computable transcendental functions +* `sinhComputable`, `coshComputable` - Computable hyperbolic functions + +## Main theorems + +* `mem_pow` - FTIA for interval power +* `mem_evalTaylorSeries` - General FTIA for Taylor series +* `mem_expComputable`, `mem_sinComputable`, `mem_cosComputable` - FTIA for computable functions + +## Design notes + +All definitions in this file use only rational arithmetic and are fully computable. +The proofs connect these to the real-valued functions via Taylor's theorem. +-/ + +/-! ### Computable Taylor series helpers -/ + +@[expose] public section + +namespace LeanCert.Core + +namespace IntervalRat + +/-- Compute n! as a Rational -/ +def ratFactorial (n : ℕ) : ℚ := (Nat.factorial n : ℚ) + +/-- Compute the integer power of an interval using exponentiation by squaring. + O(log n) interval multiplications instead of O(n). -/ +def pow (I : IntervalRat) : ℕ → IntervalRat + | 0 => singleton 1 + | 1 => I + | n + 2 => + let half := pow I ((n + 2) / 2) + let sq := mul half half + if (n + 2) % 2 == 0 then sq else mul I sq + +/-- Compute the absolute value interval: |I| = [0, max(|lo|, |hi|)] if 0 ∈ I, + or [min(|lo|,|hi|), max(|lo|,|hi|)] otherwise -/ +def absInterval (I : IntervalRat) : IntervalRat := + if h1 : I.lo ≥ 0 then + I + else if h2 : I.hi ≤ 0 then + neg I + else + ⟨0, max (-I.lo) I.hi, by + apply le_max_of_le_right + push Not at h1 h2 + linarith⟩ + +/-- Maximum absolute value of an interval -/ +def maxAbs (I : IntervalRat) : ℚ := max (|I.lo|) (|I.hi|) + +/-- Evaluate Taylor series ∑_{i=0}^{n} c_i * x^i at interval I using Horner's method. + Computes c₀ + I * (c₁ + I * (c₂ + ... + I * cₙ)), which is mathematically + equivalent to the direct sum but uses fewer operations and often gives tighter + bounds by reducing the dependency problem in interval arithmetic. -/ +def evalTaylorSeries (coeffs : List ℚ) (I : IntervalRat) : IntervalRat := + coeffs.foldr (fun c acc => add (singleton c) (mul acc I)) (singleton 0) + +/-! ### Computable exp via Taylor series -/ + +/-- Tail-recursive exp coefficient generator. + `expTaylorCoeffsAux n k c` produces `n+1` coefficients starting at index `k`, + assuming `c = 1 / k!`. -/ +def expTaylorCoeffsAux : ℕ → ℕ → ℚ → List ℚ + | 0, _, c => [c] + | (n + 1), k, c => c :: expTaylorCoeffsAux n (k + 1) (c / (k + 1)) + +/-- Taylor coefficients for exp: 1/i! for i = 0, 1, ..., n. + Implemented iteratively to avoid repeated factorial recomputation. -/ +def expTaylorCoeffs (n : ℕ) : List ℚ := + expTaylorCoeffsAux n 0 1 + +/-- `ratFactorial` unfolds factorial as a product. -/ +private lemma ratFactorial_succ (k : ℕ) : + ratFactorial (k + 1) = ratFactorial k * (k + 1) := by + simp [ratFactorial, Nat.factorial_succ, Nat.cast_mul, mul_comm] + +private lemma map_range_succ {α : Type*} (f : ℕ → α) (n : ℕ) : + (List.range (n + 1)).map f = f 0 :: (List.range n).map (fun i => f (i + 1)) := by + induction n with + | zero => + simp + | succ n ih => + -- range (n+2) = range (n+1) ++ [n+1] + calc + (List.range (n + 2)).map f + = (List.range (n + 1) ++ [n + 1]).map f := by + simp [List.range_succ] + _ = (List.range (n + 1)).map f ++ [f (n + 1)] := by + simp [List.map_append] + _ = (f 0 :: (List.range n).map (fun i => f (i + 1))) ++ [f (n + 1)] := by + simp [ih] + _ = f 0 :: ((List.range n).map (fun i => f (i + 1)) ++ [f (n + 1)]) := by + rfl + _ = f 0 :: (List.range (n + 1)).map (fun i => f (i + 1)) := by + simp [List.range_succ, List.map_append] + +/-- Iterative exp coefficients match the standard `1 / i!` definition. -/ +private lemma expTaylorCoeffsAux_eq_range (n k : ℕ) : + expTaylorCoeffsAux n k (1 / ratFactorial k) = + (List.range (n + 1)).map (fun i => 1 / ratFactorial (i + k)) := by + induction n generalizing k with + | zero => + simp [expTaylorCoeffsAux] + | succ n ih => + have hstep : (ratFactorial k)⁻¹ / (k + 1) = (ratFactorial (k + 1))⁻¹ := by + -- (1/k!) / (k+1) = 1/(k+1)! + simp [ratFactorial_succ, div_eq_mul_inv, mul_comm] + calc + expTaylorCoeffsAux (n + 1) k (1 / ratFactorial k) + = (1 / ratFactorial k) :: + expTaylorCoeffsAux n (k + 1) ((1 / ratFactorial k) / (k + 1)) := by + rfl + _ = (1 / ratFactorial k) :: + expTaylorCoeffsAux n (k + 1) ((ratFactorial k)⁻¹ / (k + 1)) := by + simp [one_div] + _ = (1 / ratFactorial k) :: + expTaylorCoeffsAux n (k + 1) (ratFactorial (k + 1))⁻¹ := by + simp [hstep] + _ = (1 / ratFactorial k) :: + (List.range (n + 1)).map (fun i => (ratFactorial (i + (k + 1)))⁻¹) := by + simpa [one_div] using (ih (k + 1)) + _ = (List.range (n + 2)).map (fun i => 1 / ratFactorial (i + k)) := by + -- unfold the range map at the front + have hmap := map_range_succ (fun i => 1 / ratFactorial (i + k)) (n + 1) + -- rewrite and simplify + simpa [one_div, Nat.add_assoc, Nat.add_left_comm, Nat.add_comm] using hmap.symm + +private lemma expTaylorCoeffs_eq_range_map (n : ℕ) : + expTaylorCoeffs n = (List.range (n + 1)).map (fun i => 1 / ratFactorial i) := by + have h0 : (1 / ratFactorial 0 : ℚ) = 1 := by simp [ratFactorial] + simpa [expTaylorCoeffs, h0] using (expTaylorCoeffsAux_eq_range n 0) + +/-- Computable exp remainder bound using rational arithmetic. + The Lagrange remainder is exp(ξ) * x^{n+1} / (n+1)! where ξ is between 0 and x. + We use e < 3, so e^r ≤ 3^(⌈r⌉+1) as a conservative bound. + + Returns an interval [-R, R] where R bounds the remainder. -/ +def expRemainderBoundComputable (I : IntervalRat) (n : ℕ) : IntervalRat := + let r := maxAbs I + -- Crude bound: e < 3, so e^r ≤ 3^(ceil(r)+1) + let expBound := (3 : ℚ) ^ (Nat.ceil r + 1) + let xBound := r ^ (n + 1) + let R := expBound * xBound / ratFactorial (n + 1) + ⟨-R, R, by + have hr : 0 ≤ r := le_max_of_le_left (abs_nonneg I.lo) + have hR : 0 ≤ R := by + apply div_nonneg + · apply mul_nonneg + · apply pow_nonneg; norm_num + · apply pow_nonneg hr + · exact Nat.cast_nonneg _ + linarith⟩ + +/-- The raw rational Taylor enclosure of the exponential at a point. -/ +def expPointComputableRaw (q : ℚ) (n : ℕ := 10) : IntervalRat := + let I := singleton q + let coeffs := expTaylorCoeffs n + let polyVal := evalTaylorSeries coeffs I + let remainder := expRemainderBoundComputable I n + add polyVal remainder + +/-- Heuristic reduction factor for exp evaluation. + We choose `k = log2(ceil(|q|) + 1)`, so `2^k` grows roughly with |q|. + No correctness depends on the specific choice; it only affects performance. -/ +def expReduceK (q : ℚ) : ℕ := + Nat.log2 (Nat.ceil |q| + 1) + +/-- Computable interval enclosure for exp at a single rational point. + Uses argument reduction: `exp(q) = exp(q/2^k)^(2^k)`. -/ +def expPointComputable (q : ℚ) (n : ℕ := 10) : IntervalRat := + let k := expReduceK q + let m : ℕ := (2:ℕ)^k + let q' : ℚ := q / m + pow (expPointComputableRaw q' n) m + +/-- Point exponential using Taylor coefficients prepared for depth `n`. -/ +def expPointComputableWithCoeffs (q : ℚ) (n : ℕ) (coeffs : List ℚ) : IntervalRat := + let k := expReduceK q + let m : ℕ := (2 : ℕ) ^ k + let q' : ℚ := q / m + let I := singleton q' + let polyVal := evalTaylorSeries coeffs I + let remainder := expRemainderBoundComputable I n + pow (add polyVal remainder) m + +theorem expPointComputableWithCoeffs_eq (q : ℚ) (n : ℕ) : + expPointComputableWithCoeffs q n (expTaylorCoeffs n) = expPointComputable q n := by + simp [expPointComputableWithCoeffs, expPointComputable, expPointComputableRaw] + +/-- Hull of two intervals: smallest interval containing both. -/ +def hull (I J : IntervalRat) : IntervalRat := + ⟨min I.lo J.lo, max I.hi J.hi, le_trans (min_le_left _ _) (le_trans I.le (le_max_left _ _))⟩ + +/-- Membership in hull -/ +theorem mem_hull_left {x : ℝ} {I J : IntervalRat} (hx : x ∈ I) : x ∈ hull I J := by + simp only [hull, mem_def, Rat.cast_min, Rat.cast_max] + constructor + · exact le_trans (min_le_left _ _) hx.1 + · exact le_trans hx.2 (le_max_left _ _) + +theorem mem_hull_right {x : ℝ} {I J : IntervalRat} (hx : x ∈ J) : x ∈ hull I J := by + simp only [hull, mem_def, Rat.cast_min, Rat.cast_max] + constructor + · exact le_trans (min_le_right _ _) hx.1 + · exact le_trans hx.2 (le_max_right _ _) + +/-- Computable interval enclosure for exp using Taylor series with monotonicity optimization. + + exp(x) = ∑_{i=0}^{n} x^i/i! + R where |R| ≤ exp(|x|) * |x|^{n+1} / (n+1)! + + For intervals not crossing 0, we use endpoint evaluation and take the hull, + which is tighter than direct Taylor evaluation due to interval widening. + + This is fully computable using only rational arithmetic. -/ +def expComputable (I : IntervalRat) (n : ℕ := 10) : IntervalRat := + if I.hi ≤ 0 ∨ 0 ≤ I.lo then + -- Interval doesn't cross 0: use endpoint evaluation for tighter bounds + let expLo := expPointComputable I.lo n + let expHi := expPointComputable I.hi n + hull expLo expHi + else + -- Interval crosses 0: use standard Taylor (can't avoid interval widening) + let coeffs := expTaylorCoeffs n + let polyVal := evalTaylorSeries coeffs I + let remainder := expRemainderBoundComputable I n + add polyVal remainder + +/-- Interval exponential using Taylor coefficients prepared for depth `n`. -/ +def expComputableWithCoeffs (I : IntervalRat) (n : ℕ) (coeffs : List ℚ) : IntervalRat := + if I.hi ≤ 0 ∨ 0 ≤ I.lo then + let expLo := expPointComputableWithCoeffs I.lo n coeffs + let expHi := expPointComputableWithCoeffs I.hi n coeffs + hull expLo expHi + else + let polyVal := evalTaylorSeries coeffs I + let remainder := expRemainderBoundComputable I n + add polyVal remainder + +theorem expComputableWithCoeffs_eq (I : IntervalRat) (n : ℕ) : + expComputableWithCoeffs I n (expTaylorCoeffs n) = expComputable I n := by + simp [expComputableWithCoeffs, expComputable, expPointComputableWithCoeffs_eq] + +/-! ### Computable sin via Taylor series -/ + +/-- Taylor coefficients for sin: 0, 1, 0, -1/6, 0, 1/120, ... -/ +def sinTaylorCoeffs (n : ℕ) : List ℚ := + (List.range (n + 1)).map (fun i => + if i % 2 = 1 then -- odd terms only + ((-1 : ℚ) ^ ((i - 1) / 2)) / ratFactorial i + else 0) + +/-- Computable sin remainder bound. + Since |sin^{(k)}(x)| ≤ 1 for all k, x, the remainder is bounded by |x|^{n+1}/(n+1)! -/ +def sinRemainderBoundComputable (I : IntervalRat) (n : ℕ) : IntervalRat := + let r := maxAbs I + let R := r ^ (n + 1) / ratFactorial (n + 1) + ⟨-R, R, by + have hr : 0 ≤ r := le_max_of_le_left (abs_nonneg I.lo) + have hR : 0 ≤ R := by + apply div_nonneg + · apply pow_nonneg hr + · exact Nat.cast_nonneg _ + linarith⟩ + +/-- Computable interval enclosure for sin using Taylor series. + + sin(x) = ∑_{k=0}^{n/2} (-1)^k x^{2k+1}/(2k+1)! + R + where |R| ≤ |x|^{n+1}/(n+1)! since all derivatives of sin are bounded by 1. + + We intersect with [-1, 1] for tighter bounds on small intervals. -/ +def sinComputable (I : IntervalRat) (n : ℕ := 10) : IntervalRat := + let coeffs := sinTaylorCoeffs n + let polyVal := evalTaylorSeries coeffs I + let remainder := sinRemainderBoundComputable I n + let raw := add polyVal remainder + -- Intersect with global bound [-1, 1] + let globalBound : IntervalRat := ⟨-1, 1, by norm_num⟩ + match intersect raw globalBound with + | some refined => refined + | none => raw -- Should not happen for valid inputs + +/-- Interval sine using Taylor coefficients prepared for depth `n`. -/ +def sinComputableWithCoeffs (I : IntervalRat) (n : ℕ) (coeffs : List ℚ) : IntervalRat := + let polyVal := evalTaylorSeries coeffs I + let remainder := sinRemainderBoundComputable I n + let raw := add polyVal remainder + let globalBound : IntervalRat := ⟨-1, 1, by norm_num⟩ + match intersect raw globalBound with + | some refined => refined + | none => raw + +theorem sinComputableWithCoeffs_eq (I : IntervalRat) (n : ℕ) : + sinComputableWithCoeffs I n (sinTaylorCoeffs n) = sinComputable I n := by + simp [sinComputableWithCoeffs, sinComputable] + +/-! ### Computable cos via Taylor series -/ + +/-- Taylor coefficients for cos: 1, 0, -1/2, 0, 1/24, 0, ... -/ +def cosTaylorCoeffs (n : ℕ) : List ℚ := + (List.range (n + 1)).map (fun i => + if i % 2 = 0 then -- even terms only + ((-1 : ℚ) ^ (i / 2)) / ratFactorial i + else 0) + +/-- Computable cos remainder bound. + Since |cos^{(k)}(x)| ≤ 1 for all k, x, the remainder is bounded by |x|^{n+1}/(n+1)! -/ +def cosRemainderBoundComputable (I : IntervalRat) (n : ℕ) : IntervalRat := + let r := maxAbs I + let R := r ^ (n + 1) / ratFactorial (n + 1) + ⟨-R, R, by + have hr : 0 ≤ r := le_max_of_le_left (abs_nonneg I.lo) + have hR : 0 ≤ R := by + apply div_nonneg + · apply pow_nonneg hr + · exact Nat.cast_nonneg _ + linarith⟩ + +/-- Computable interval enclosure for cos using Taylor series. + + cos(x) = ∑_{k=0}^{n/2} (-1)^k x^{2k}/(2k)! + R + where |R| ≤ |x|^{n+1}/(n+1)! since all derivatives of cos are bounded by 1. + + We intersect with [-1, 1] for tighter bounds on small intervals. -/ +def cosComputable (I : IntervalRat) (n : ℕ := 10) : IntervalRat := + let coeffs := cosTaylorCoeffs n + let polyVal := evalTaylorSeries coeffs I + let remainder := cosRemainderBoundComputable I n + let raw := add polyVal remainder + -- Intersect with global bound [-1, 1] + let globalBound : IntervalRat := ⟨-1, 1, by norm_num⟩ + match intersect raw globalBound with + | some refined => refined + | none => raw -- Should not happen for valid inputs + +/-- Interval cosine using Taylor coefficients prepared for depth `n`. -/ +def cosComputableWithCoeffs (I : IntervalRat) (n : ℕ) (coeffs : List ℚ) : IntervalRat := + let polyVal := evalTaylorSeries coeffs I + let remainder := cosRemainderBoundComputable I n + let raw := add polyVal remainder + let globalBound : IntervalRat := ⟨-1, 1, by norm_num⟩ + match intersect raw globalBound with + | some refined => refined + | none => raw + +theorem cosComputableWithCoeffs_eq (I : IntervalRat) (n : ℕ) : + cosComputableWithCoeffs I n (cosTaylorCoeffs n) = cosComputable I n := by + simp [cosComputableWithCoeffs, cosComputable] + +/-! ### Computable sinh and cosh via exp -/ + +/-- Computable interval enclosure for sinh at a single rational point. + Uses the definition sinh(q) = (exp(q) - exp(-q)) / 2. -/ +def sinhPointComputable (q : ℚ) (n : ℕ := 10) : IntervalRat := + let expPos := expPointComputable q n + let expNeg := expPointComputable (-q) n + -- sinh(q) = (exp(q) - exp(-q)) / 2 + -- Lower bound: (expPos.lo - expNeg.hi) / 2 + -- Upper bound: (expPos.hi - expNeg.lo) / 2 + let sinhLo := (expPos.lo - expNeg.hi) / 2 + let sinhHi := (expPos.hi - expNeg.lo) / 2 + if h : sinhLo ≤ sinhHi then + ⟨sinhLo, sinhHi, h⟩ + else + ⟨min sinhLo sinhHi, max sinhLo sinhHi, @min_le_max _ _ sinhLo sinhHi⟩ + +/-- Computable interval enclosure for cosh at a single rational point. + Uses the definition cosh(q) = (exp(q) + exp(-q)) / 2. -/ +def coshPointComputable (q : ℚ) (n : ℕ := 10) : IntervalRat := + let expPos := expPointComputable q n + let expNeg := expPointComputable (-q) n + -- cosh(q) = (exp(q) + exp(-q)) / 2 + -- Lower bound: (expPos.lo + expNeg.lo) / 2 + -- Upper bound: (expPos.hi + expNeg.hi) / 2 + let coshLo := (expPos.lo + expNeg.lo) / 2 + let coshHi := (expPos.hi + expNeg.hi) / 2 + -- cosh ≥ 1 always, so ensure lower bound is at least 1 + let safeLo := max 1 coshLo + if h : safeLo ≤ coshHi then + ⟨safeLo, coshHi, h⟩ + else + ⟨1, max 2 coshHi, by + have h1 : (1 : ℚ) ≤ 2 := by norm_num + exact le_trans h1 (le_max_left _ _)⟩ + +/-- The lower bound of coshPointComputable is always at least 1. -/ +theorem coshPointComputable_lo_ge_one (q : ℚ) (n : ℕ) : 1 ≤ (coshPointComputable q n).lo := by + simp only [coshPointComputable] + split_ifs with h + · exact le_max_left 1 _ + · exact le_refl 1 + +/-- Computable interval enclosure for sinh using exp with endpoint evaluation. + + sinh(x) = (exp(x) - exp(-x)) / 2 + Since sinh is strictly monotone increasing, sinh([a,b]) = [sinh(a), sinh(b)]. + We use endpoint evaluation for tight bounds. -/ +def sinhComputable (I : IntervalRat) (n : ℕ := 10) : IntervalRat := + -- sinh is strictly monotone increasing, so evaluate at endpoints + let sinhLo := sinhPointComputable I.lo n + let sinhHi := sinhPointComputable I.hi n + hull sinhLo sinhHi + +/-- Computable interval enclosure for cosh using exp with endpoint evaluation. + + cosh(x) = (exp(x) + exp(-x)) / 2 + cosh has minimum 1 at x = 0, and is symmetric: cosh(-x) = cosh(x). + - cosh is decreasing on (-∞, 0] + - cosh is increasing on [0, ∞) + + We use endpoint evaluation with monotonicity for tight bounds. -/ +def coshComputable (I : IntervalRat) (n : ℕ := 10) : IntervalRat := + let coshLo := coshPointComputable I.lo n + let coshHi := coshPointComputable I.hi n + if 0 ≤ I.lo then + -- Interval is non-negative: cosh is increasing, so [cosh(lo), cosh(hi)] + hull coshLo coshHi + else if I.hi ≤ 0 then + -- Interval is non-positive: cosh is decreasing, so [cosh(hi), cosh(lo)] + hull coshHi coshLo + else + -- Interval contains 0: minimum is 1 at x=0, max is at whichever endpoint is farther + let maxEndpoint := hull coshLo coshHi + ⟨1, maxEndpoint.hi, by + -- coshPointComputable ensures lower bound ≥ 1 via max 1 _ + have hlo_ge1 := coshPointComputable_lo_ge_one I.lo n + have hhi_ge1 := coshPointComputable_lo_ge_one I.hi n + calc (1 : ℚ) ≤ min (coshPointComputable I.lo n).lo (coshPointComputable I.hi n).lo := + le_min hlo_ge1 hhi_ge1 + _ = maxEndpoint.lo := rfl + _ ≤ maxEndpoint.hi := maxEndpoint.le⟩ + +/-! ### FTIA for pow -/ + +/-- FTIA for interval power (binary exponentiation version) -/ +theorem mem_pow {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (n : ℕ) : + x ^ n ∈ pow I n := by + match n with + | 0 => + simp only [_root_.pow_zero, pow, mem_def, singleton] + norm_num + | 1 => + simp only [_root_.pow_one, pow] + exact hx + | n + 2 => + have ih_half := mem_pow hx ((n + 2) / 2) + have h_sq := mem_mul ih_half ih_half + change x ^ (n + 2) ∈ pow I (n + 2) + unfold pow + split + · -- even case: x^(n+2) = (x^half)^2 + next heven => + have := beq_iff_eq.mp heven + rw [show x ^ (n + 2) = x ^ ((n + 2) / 2) * x ^ ((n + 2) / 2) from by + rw [← _root_.pow_add]; congr 1; omega] + exact h_sq + · -- odd case: x^(n+2) = x * (x^half)^2 + next heven => + have hodd : (n + 2) % 2 ≠ 0 := fun h => heven (beq_iff_eq.mpr h) + rw [show x ^ (n + 2) = x * (x ^ ((n + 2) / 2) * x ^ ((n + 2) / 2)) from by + rw [← _root_.pow_add, ← mul_comm, ← _root_.pow_succ]; congr 1; omega] + exact mem_mul hx h_sq +termination_by n + +/-! ### Helper lemmas for Taylor series membership -/ + +/-- Any x in I has |x| ≤ maxAbs I -/ +theorem abs_le_maxAbs {x : ℝ} {I : IntervalRat} (hx : x ∈ I) : |x| ≤ maxAbs I := by + simp only [mem_def, maxAbs] at * + have hlo : -(max |I.lo| |I.hi|) ≤ I.lo := by + calc -(max |I.lo| |I.hi|) ≤ -|I.lo| := neg_le_neg (le_max_left _ _) + _ ≤ I.lo := neg_abs_le _ + have hhi : I.hi ≤ max |I.lo| |I.hi| := le_trans (le_abs_self _) (le_max_right _ _) + rw [abs_le] + constructor + · calc (-(max |I.lo| |I.hi| : ℚ) : ℝ) ≤ I.lo := by exact_mod_cast hlo + _ ≤ x := hx.1 + · calc x ≤ I.hi := hx.2 + _ ≤ max |I.lo| |I.hi| := by exact_mod_cast hhi + +/-- If |x| ≤ R for nonnegative R, then x ∈ [-R, R]. + This is the key micro-lemma for embedding Lagrange remainder bounds into intervals. -/ +theorem abs_le_mem_symmetric_interval {x : ℝ} {R : ℚ} (hR : 0 ≤ R) (h : |x| ≤ R) : + x ∈ (⟨-R, R, by linarith⟩ : IntervalRat) := by + simp only [mem_def, Rat.cast_neg] + constructor + · have := neg_abs_le x; linarith + · exact le_trans (le_abs_self x) h + +/-- Domain setup for Taylor theorem: if |x| ≤ r for nonnegative r, + then x ∈ [-r, r] as an Icc with the required inequalities. -/ +theorem domain_from_abs_bound {x : ℝ} {r : ℚ} (_hr : 0 ≤ r) (habs : |x| ≤ r) : + x ∈ Set.Icc ((-r : ℚ) : ℝ) (r : ℚ) := by + simp only [Set.mem_Icc, Rat.cast_neg] + exact abs_le.mp habs + +/-- Combined domain setup from interval membership. -/ +theorem domain_from_mem {x : ℝ} {I : IntervalRat} (hx : x ∈ I) : + let r := maxAbs I + (0 : ℝ) ≤ r ∧ |x| ≤ r ∧ x ∈ Set.Icc ((-r : ℚ) : ℝ) (r : ℚ) ∧ + ((-r : ℚ) : ℝ) ≤ 0 ∧ (0 : ℝ) ≤ (r : ℚ) ∧ ((-r : ℚ) : ℝ) ≤ r := by + have hr_nonneg : 0 ≤ maxAbs I := le_max_of_le_left (abs_nonneg I.lo) + have habs_x := abs_le_maxAbs hx + have hr_nonneg_real : (0 : ℝ) ≤ maxAbs I := by exact_mod_cast hr_nonneg + have hdom := domain_from_abs_bound hr_nonneg habs_x + refine ⟨hr_nonneg_real, habs_x, hdom, ?_, hr_nonneg_real, ?_⟩ + · simp only [Rat.cast_neg]; linarith + · simp only [Rat.cast_neg]; linarith + +/-- Convert an absolute value bound |v| ≤ R to interval membership v ∈ [-R, R]. + This is the key micro-lemma for the final step of Taylor remainder bounds. -/ +theorem remainder_to_interval {v : ℝ} {R : ℚ} (hbound : |v| ≤ R) : + v ∈ (⟨-R, R, by + have h1 : 0 ≤ |v| := abs_nonneg v + have h2 : (0 : ℝ) ≤ (R : ℚ) := le_trans h1 hbound + linarith [Rat.cast_nonneg.mp h2]⟩ : IntervalRat) := by + simp only [mem_def, Rat.cast_neg] + exact abs_le.mp hbound + +/-- Key lemma: exp(ξ) ≤ 3^(⌈r⌉+1) for |ξ| ≤ r -/ +theorem exp_bound_by_pow3 {r : ℚ} (_hr : 0 ≤ r) {ξ : ℝ} (hξ : |ξ| ≤ r) : + Real.exp ξ ≤ (3 : ℝ) ^ (Nat.ceil r + 1) := by + -- e < 3, using Real.exp_one_lt_d9 which gives exp(1) < 2.7182818286 + have h3 : Real.exp 1 < 3 := by + have h := Real.exp_one_lt_d9 -- exp(1) < 2.7182818286 + have h2 : (2.7182818286 : ℝ) < 3 := by norm_num + exact lt_trans h h2 + have hceil : (r : ℝ) ≤ Nat.ceil r := by + have h : r ≤ (Nat.ceil r : ℚ) := Nat.le_ceil r + exact_mod_cast h + calc Real.exp ξ ≤ Real.exp |ξ| := Real.exp_le_exp.mpr (le_abs_self ξ) + _ ≤ Real.exp r := Real.exp_le_exp.mpr hξ + _ ≤ Real.exp (Nat.ceil r) := Real.exp_le_exp.mpr hceil + _ = Real.exp 1 ^ (Nat.ceil r) := by rw [← Real.exp_nat_mul]; ring_nf + _ ≤ 3 ^ (Nat.ceil r) := by + rcases Nat.eq_zero_or_pos (Nat.ceil r) with hr0 | hrpos + · simp [hr0] + · exact le_of_lt (pow_lt_pow_left₀ h3 (Real.exp_pos 1).le (Nat.pos_iff_ne_zero.mp hrpos)) + _ ≤ 3 ^ (Nat.ceil r + 1) := pow_le_pow_right₀ (by norm_num : (1 : ℝ) ≤ 3) (Nat.le_succ _) + +/-! ### Coefficient matching lemmas -/ + +/-- For exp, all iterated derivatives at 0 equal 1. -/ +lemma iteratedDeriv_exp_zero (i : ℕ) : iteratedDeriv i Real.exp 0 = 1 := by + simp [iteratedDeriv_eq_iterate, Real.iter_deriv_exp] + +/-! ### Helper lemmas for Taylor series membership -/ + +/-- Polynomial sum starting at exponent `n`. -/ +private def polySumFrom (coeffs : List ℚ) (x : ℝ) (n : ℕ) : ℝ := + ((coeffs.zipIdx n).map (fun (c, i) => (c : ℝ) * x ^ i)).sum + +/-- Horner polynomial evaluation: the real value computed by Horner's method. + `hornerVal [c₀, c₁, c₂] x = c₀ + x * (c₁ + x * (c₂ + x * 0)) = c₀ + c₁*x + c₂*x²` -/ +private def hornerVal (coeffs : List ℚ) (x : ℝ) : ℝ := + coeffs.foldr (fun c acc => (c : ℝ) + x * acc) 0 + +/-- hornerVal equals polySumFrom at any starting index n, scaled by x^n. + Specifically: x^n * hornerVal coeffs x = polySumFrom coeffs x n -/ +private lemma hornerVal_mul_pow_eq_polySumFrom (coeffs : List ℚ) (x : ℝ) (n : ℕ) : + x ^ n * hornerVal coeffs x = polySumFrom coeffs x n := by + induction coeffs generalizing n with + | nil => simp [hornerVal, polySumFrom] + | cons c cs ih => + have hstep : hornerVal (c :: cs) x = (c : ℝ) + x * hornerVal cs x := by + simp [hornerVal] + have hunfold : polySumFrom (c :: cs) x n = + (c : ℝ) * x ^ n + polySumFrom cs x (n + 1) := by + simp [polySumFrom, List.zipIdx_cons] + rw [hstep, mul_add, hunfold, ← ih (n + 1)] + ring + +/-- hornerVal equals polySumFrom at index 0. -/ +private lemma hornerVal_eq_polySumFrom (coeffs : List ℚ) (x : ℝ) : + hornerVal coeffs x = polySumFrom coeffs x 0 := by + rw [← hornerVal_mul_pow_eq_polySumFrom coeffs x 0] + simp + +/-- Auxiliary lemma for Horner-style evaluation: the foldr contains hornerVal. -/ +private lemma mem_horner_foldr {x : ℝ} {I : IntervalRat} (hx : x ∈ I) + (coeffs : List ℚ) : + hornerVal coeffs x ∈ + coeffs.foldr (fun c acc => add (singleton c) (mul acc I)) (singleton 0) := by + induction coeffs with + | nil => + simp [hornerVal, mem_def, singleton] + | cons c cs ih => + -- hornerVal (c :: cs) x = ↑c + x * hornerVal cs x + -- foldr ... (c :: cs) = add (singleton c) (mul (foldr ... cs) I) + change (c : ℝ) + x * hornerVal cs x ∈ + add (singleton c) (mul (cs.foldr (fun c acc => add (singleton c) (mul acc I)) (singleton + 0)) I) + have hc : (c : ℝ) ∈ singleton c := by simp [mem_def, singleton] + have hmul : hornerVal cs x * x ∈ + mul (cs.foldr (fun c acc => add (singleton c) (mul acc I)) (singleton 0)) I := + mem_mul ih hx + have : (c : ℝ) + x * hornerVal cs x = (c : ℝ) + hornerVal cs x * x := by ring + rw [this] + exact mem_add hc hmul + +/-- General FTIA for evalTaylorSeries (Horner version): if coeffs has length n+1, then + ∑_{i=0}^{n} coeffs[i] * x^i ∈ evalTaylorSeries coeffs I for x ∈ I. -/ +theorem mem_evalTaylorSeries {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (coeffs : List ℚ) : + (coeffs.zipIdx.map (fun (c, i) => (c : ℝ) * x ^ i)).sum ∈ evalTaylorSeries coeffs I := by + have hmem := mem_horner_foldr hx coeffs + rw [hornerVal_eq_polySumFrom] at hmem + simp only [evalTaylorSeries, polySumFrom] at * + exact hmem + +/-- Helper: (List.range n).map f).sum = ∑ i ∈ Finset.range n, f i -/ +private lemma list_map_sum_eq_finset_sum {α : Type*} [AddCommMonoid α] + (f : ℕ → α) (n : ℕ) : ((List.range n).map f).sum = ∑ i ∈ Finset.range n, f i := by + induction n with + | zero => simp + | succ n ih => + simp only [List.range_succ, List.map_append, List.sum_append, List.map_singleton, + List.sum_singleton, Finset.sum_range_succ] + rw [ih, add_comm] + +/-- Helper: zipIdx of List.range just pairs each element with its index (which is itself) -/ +private lemma zipIdx_range_map {α : Type*} (f : ℕ → ℕ → α) (n : ℕ) : + (List.range n).zipIdx.map (fun p => f p.1 p.2) = (List.range n).map (fun i => f i i) := by + induction n with + | zero => simp + | succ n ih => + simp only [List.range_succ, List.zipIdx_append, List.map_append, List.length_range] + rw [ih] + simp only [List.zipIdx_singleton, List.map_singleton, zero_add] + +/-- The exp Taylor polynomial value matches our evalTaylorSeries. + The proof shows that our list-based polynomial evaluation produces the same + sum as the Finset.sum form used in Mathlib's Taylor theorem. -/ +theorem mem_evalTaylorSeries_exp {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (n : ℕ) : + ∑ i ∈ Finset.range (n + 1), (1 / i.factorial : ℝ) * x ^ i ∈ + evalTaylorSeries (expTaylorCoeffs n) I := by + have hmem := mem_evalTaylorSeries hx (expTaylorCoeffs n) + have hmem' : + (((List.range (n + 1)).map (fun i => 1 / ratFactorial i)).zipIdx.map + (fun p => (p.1 : ℝ) * x ^ p.2)).sum ∈ + evalTaylorSeries (expTaylorCoeffs n) I := by + simpa [expTaylorCoeffs_eq_range_map] using hmem + convert hmem' using 1 + rw [List.zipIdx_map] + simp only [List.map_map] + rw [← list_map_sum_eq_finset_sum (fun i => (1 / i.factorial : ℝ) * x ^ i) (n + 1)] + -- The two list maps are equal: both compute [1/0! * x^0, 1/1! * x^1, ...] + -- LHS: (List.range (n+1)).map (fun i => 1/i! * x^i) + -- RHS: zipIdx.map with Prod.map composition + -- For List.range, zipIdx gives [(0,0), (1,1), ...], so they match + congr 1 + symm + -- The RHS has type (ℚ × ℕ) from Prod.map applied to zipIdx pairs + -- Step 1: Simplify the composition + have h1 : (List.range (n + 1)).zipIdx.map + ((fun p : ℚ × ℕ => (p.1 : ℝ) * x ^ p.2) ∘ Prod.map (fun i => (1 : ℚ) / ratFactorial i) id) = + (List.range (n + 1)).zipIdx.map (fun p : ℕ × ℕ => ((1 : ℚ) / ratFactorial p.1 : ℝ) * x ^ + p.2) := by + apply List.map_congr_left + intro ⟨a, b⟩ _ + simp only [Function.comp_apply, Prod.map_apply, id_eq, Rat.cast_div, Rat.cast_one] + -- Step 2: Use zipIdx_range_map to eliminate zipIdx + have h2 : (List.range (n + 1)).zipIdx.map (fun p : ℕ × ℕ => ((1 : ℚ) / ratFactorial p.1 : ℝ) * x + ^ p.2) = + (List.range (n + 1)).map (fun i => ((1 : ℚ) / ratFactorial i : ℝ) * x ^ i) := by + convert! zipIdx_range_map (fun a b => ((1 : ℚ) / ratFactorial a : ℝ) * x ^ b) (n + 1) using 2 + -- Step 3: Simplify the casts + have h3 : (List.range (n + 1)).map (fun i => ((1 : ℚ) / ratFactorial i : ℝ) * x ^ i) = + (List.range (n + 1)).map (fun i => (1 / i.factorial : ℝ) * x ^ i) := by + apply List.map_congr_left + intro i _ + simp [ratFactorial] + rw [h1, h2, h3] + +/-- The iterated derivative of sin is sin, cos, -sin, -cos in a cycle of 4. -/ +private lemma iteratedDeriv_sin (n : ℕ) : iteratedDeriv n Real.sin = + if n % 4 = 0 then Real.sin + else if n % 4 = 1 then Real.cos + else if n % 4 = 2 then fun x => -Real.sin x + else fun x => -Real.cos x := by + induction n with + | zero => + simp only [iteratedDeriv_zero, Nat.zero_mod, ↓reduceIte] + | succ n ih => + rw [iteratedDeriv_succ, ih] + have h4 : n % 4 < 4 := Nat.mod_lt n (by norm_num) + rcases (by omega : n % 4 = 0 ∨ n % 4 = 1 ∨ n % 4 = 2 ∨ n % 4 = 3) with h0 | h1 | h2 | h3 + · -- n % 4 = 0: deriv sin = cos + have hn1 : (n + 1) % 4 = 1 := by omega + simp only [h0, hn1, ↓reduceIte, Real.deriv_sin]; norm_num + · -- n % 4 = 1: deriv cos = -sin + have hn1 : (n + 1) % 4 = 2 := by omega + simp only [h1, hn1, ↓reduceIte]; norm_num + · -- n % 4 = 2: deriv (-sin) = -cos + have hn1 : (n + 1) % 4 = 3 := by omega + simp only [h2, hn1, ↓reduceIte]; norm_num + · -- n % 4 = 3: deriv (-cos) = sin + have hn1 : (n + 1) % 4 = 0 := by omega + simp only [h3, hn1, ↓reduceIte]; norm_num + +/-- The iterated derivative of sin at 0 follows the pattern 0, 1, 0, -1, 0, 1, 0, -1, ... -/ +private lemma iteratedDeriv_sin_zero (i : ℕ) : iteratedDeriv i Real.sin 0 = + if i % 4 = 0 then 0 + else if i % 4 = 1 then 1 + else if i % 4 = 2 then 0 + else -1 := by + rw [iteratedDeriv_sin] + have h4 : i % 4 < 4 := Nat.mod_lt i (by norm_num) + rcases (by omega : i % 4 = 0 ∨ i % 4 = 1 ∨ i % 4 = 2 ∨ i % 4 = 3) with h0 | h1 | h2 | h3 + · simp only [h0, ↓reduceIte, Real.sin_zero] + · simp only [h1, ↓reduceIte]; norm_num [Real.cos_zero] + · simp only [h2, ↓reduceIte]; norm_num [Real.sin_zero] + · simp only [h3]; norm_num [Real.cos_zero] + +/-- The sin Taylor polynomial value matches our evalTaylorSeries. + Key: iteratedDeriv i sin 0 = 0, 1, 0, -1, 0, 1, ... matches sinTaylorCoeffs. -/ +theorem mem_evalTaylorSeries_sin {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (n : ℕ) : + ∑ i ∈ Finset.range (n + 1), (iteratedDeriv i Real.sin 0 / i.factorial) * x ^ i ∈ + evalTaylorSeries (sinTaylorCoeffs n) I := by + have hmem := mem_evalTaylorSeries hx (sinTaylorCoeffs n) + convert hmem using 1 + simp only [sinTaylorCoeffs, ratFactorial] + rw [List.zipIdx_map] + simp only [List.map_map] + rw [← list_map_sum_eq_finset_sum (fun i => (iteratedDeriv i Real.sin 0 / i.factorial) * x ^ i) + (n + 1)] + congr 1 + symm + -- Step 1: Simplify the RHS using zipIdx_range_map + have h1 : (List.range (n + 1)).zipIdx.map + ((fun p : ℚ × ℕ => (p.1 : ℝ) * x ^ p.2) ∘ Prod.map + (fun i => if i % 2 = 1 then (-1 : ℚ) ^ ((i - 1) / 2) / i.factorial else 0) id) = + (List.range (n + 1)).map (fun i => + ((if i % 2 = 1 then (-1 : ℚ) ^ ((i - 1) / 2) / i.factorial else 0 : ℚ) : ℝ) * x ^ i) := by + convert! zipIdx_range_map + (fun a b => ((if a % 2 = 1 then (-1 : ℚ) ^ ((a - 1) / 2) / a.factorial else 0 : ℚ) : ℝ) * x + ^ b) + (n + 1) using 2 + rw [h1] + -- Step 2: Show term-by-term equality + apply List.map_congr_left + intro i _ + -- Need: (iteratedDeriv i sin 0 / i!) * x^i = ((sinCoeff i) : ℝ) * x^i + -- where sinCoeff i = if i % 2 = 1 then (-1)^((i-1)/2) / i! else 0 + congr 1 + -- Show iteratedDeriv i sin 0 / i! = sinCoeff i (as ℝ) + rw [iteratedDeriv_sin_zero] + have h4 : i % 4 < 4 := Nat.mod_lt i (by norm_num) + rcases (by omega : i % 4 = 0 ∨ i % 4 = 1 ∨ i % 4 = 2 ∨ i % 4 = 3) with h0 | h1 | h2 | h3 + · -- i % 4 = 0: i is even, iteratedDeriv = 0 + have hi_even : i % 2 = 0 := by omega + have hi_ne : i % 2 ≠ 1 := by omega + simp only [h0, ↓reduceIte, zero_div, ite_eq_right hi_ne, Rat.cast_zero] + · -- i % 4 = 1: i is odd, iteratedDeriv = 1, coefficient = (-1)^((i-1)/2) / i! + have hi_odd : i % 2 = 1 := by omega + simp only [h1, ↓reduceIte, ite_eq_left hi_odd] + simp only [Rat.cast_div, Rat.cast_pow, Rat.cast_neg, Rat.cast_one, Rat.cast_natCast] + congr 1 + have heven : Even ((i - 1) / 2) := ⟨(i - 1) / 2 / 2, by omega⟩ + exact heven.neg_one_pow + · -- i % 4 = 2: i is even, iteratedDeriv = 0 + have hi_even : i % 2 = 0 := by omega + have hi_ne : i % 2 ≠ 1 := by omega + simp only [h2, ↓reduceIte, ite_eq_right hi_ne] + norm_num + · -- i % 4 = 3: i is odd, iteratedDeriv = -1, coefficient = (-1)^((i-1)/2) / i! + have hi_odd : i % 2 = 1 := by omega + simp only [h3, ite_eq_left hi_odd] + simp only [Rat.cast_div, Rat.cast_pow, Rat.cast_neg, Rat.cast_one, Rat.cast_natCast] + have hodd : Odd ((i - 1) / 2) := ⟨(i - 1) / 2 / 2, by omega⟩ + rw [hodd.neg_one_pow] + norm_num + +/-- The iterated derivative of cos is cos, -sin, -cos, sin in a cycle of 4. -/ +private lemma iteratedDeriv_cos (n : ℕ) : iteratedDeriv n Real.cos = + if n % 4 = 0 then Real.cos + else if n % 4 = 1 then fun x => -Real.sin x + else if n % 4 = 2 then fun x => -Real.cos x + else Real.sin := by + induction n with + | zero => + simp only [iteratedDeriv_zero, Nat.zero_mod, ↓reduceIte] + | succ n ih => + rw [iteratedDeriv_succ, ih] + have h4 : n % 4 < 4 := Nat.mod_lt n (by norm_num) + rcases (by omega : n % 4 = 0 ∨ n % 4 = 1 ∨ n % 4 = 2 ∨ n % 4 = 3) with h0 | h1 | h2 | h3 + · -- n % 4 = 0: deriv cos = -sin + have hn1 : (n + 1) % 4 = 1 := by omega + simp only [h0, hn1, ↓reduceIte]; norm_num + · -- n % 4 = 1: deriv (-sin) = -cos + have hn1 : (n + 1) % 4 = 2 := by omega + simp only [h1, hn1, ↓reduceIte]; norm_num + · -- n % 4 = 2: deriv (-cos) = sin + have hn1 : (n + 1) % 4 = 3 := by omega + simp only [h2, hn1, ↓reduceIte]; norm_num + · -- n % 4 = 3: deriv sin = cos + have hn1 : (n + 1) % 4 = 0 := by omega + simp only [h3, hn1, ↓reduceIte]; norm_num + +/-- The iterated derivative of cos at 0 follows the pattern 1, 0, -1, 0, 1, 0, ... -/ +private lemma iteratedDeriv_cos_zero (i : ℕ) : iteratedDeriv i Real.cos 0 = + if i % 4 = 0 then 1 + else if i % 4 = 1 then 0 + else if i % 4 = 2 then -1 + else 0 := by + rw [iteratedDeriv_cos] + have h4 : i % 4 < 4 := Nat.mod_lt i (by norm_num) + rcases (by omega : i % 4 = 0 ∨ i % 4 = 1 ∨ i % 4 = 2 ∨ i % 4 = 3) with h0 | h1 | h2 | h3 + · simp only [h0, ↓reduceIte, Real.cos_zero] + · simp only [h1, ↓reduceIte]; norm_num [Real.sin_zero] + · simp only [h2, ↓reduceIte]; norm_num [Real.cos_zero] + · simp only [h3]; norm_num [Real.sin_zero] + +/-- The cos Taylor polynomial value matches our evalTaylorSeries. + Key: iteratedDeriv i cos 0 = 1, 0, -1, 0, 1, 0, ... matches cosTaylorCoeffs. -/ +theorem mem_evalTaylorSeries_cos {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (n : ℕ) : + ∑ i ∈ Finset.range (n + 1), (iteratedDeriv i Real.cos 0 / i.factorial) * x ^ i ∈ + evalTaylorSeries (cosTaylorCoeffs n) I := by + have hmem := mem_evalTaylorSeries hx (cosTaylorCoeffs n) + convert hmem using 1 + simp only [cosTaylorCoeffs, ratFactorial] + rw [List.zipIdx_map] + simp only [List.map_map] + rw [← list_map_sum_eq_finset_sum (fun i => (iteratedDeriv i Real.cos 0 / i.factorial) * x ^ i) + (n + 1)] + congr 1 + symm + -- Step 1: Simplify the RHS using zipIdx_range_map + have h1 : (List.range (n + 1)).zipIdx.map + ((fun p : ℚ × ℕ => (p.1 : ℝ) * x ^ p.2) ∘ Prod.map + (fun i => if i % 2 = 0 then (-1 : ℚ) ^ (i / 2) / i.factorial else 0) id) = + (List.range (n + 1)).map (fun i => + ((if i % 2 = 0 then (-1 : ℚ) ^ (i / 2) / i.factorial else 0 : ℚ) : ℝ) * x ^ i) := by + convert! zipIdx_range_map + (fun a b => ((if a % 2 = 0 then (-1 : ℚ) ^ (a / 2) / a.factorial else 0 : ℚ) : ℝ) * x ^ b) + (n + 1) using 2 + rw [h1] + -- Step 2: Show term-by-term equality + apply List.map_congr_left + intro i _ + congr 1 + -- Show iteratedDeriv i cos 0 / i! = cosCoeff i (as ℝ) + rw [iteratedDeriv_cos_zero] + have h4 : i % 4 < 4 := Nat.mod_lt i (by norm_num) + rcases (by omega : i % 4 = 0 ∨ i % 4 = 1 ∨ i % 4 = 2 ∨ i % 4 = 3) with h0 | h1 | h2 | h3 + · -- i % 4 = 0: i is even, iteratedDeriv = 1, coefficient = (-1)^(i/2) / i! + have hi_even : i % 2 = 0 := by omega + simp only [h0, ↓reduceIte, one_div, ite_eq_left hi_even] + simp only [Rat.cast_div, Rat.cast_pow, Rat.cast_neg, Rat.cast_one, Rat.cast_natCast] + have heven : Even (i / 2) := ⟨i / 2 / 2, by omega⟩ + rw [heven.neg_one_pow] + ring + · -- i % 4 = 1: i is odd, iteratedDeriv = 0 + have hi_odd : i % 2 = 1 := by omega + have hi_ne : i % 2 ≠ 0 := by omega + simp only [h1, ↓reduceIte, ite_eq_right hi_ne] + norm_num + · -- i % 4 = 2: i is even, iteratedDeriv = -1, coefficient = (-1)^(i/2) / i! + have hi_even : i % 2 = 0 := by omega + simp only [h2, ite_eq_left hi_even] + simp only [Rat.cast_div, Rat.cast_pow, Rat.cast_neg, Rat.cast_one, Rat.cast_natCast] + have hodd : Odd (i / 2) := ⟨i / 2 / 2, by omega⟩ + rw [hodd.neg_one_pow] + norm_num + · -- i % 4 = 3: i is odd, iteratedDeriv = 0 + have hi_odd : i % 2 = 1 := by omega + have hi_ne : i % 2 ≠ 0 := by omega + simp only [h3, ite_eq_right hi_ne] + norm_num + +/-! ### Taylor remainder micro-lemmas -/ + +/-- Unified Taylor remainder bound for exp: given x ∈ I with r = maxAbs I, + the Taylor remainder |exp x - poly(x)| ≤ 3^(⌈r⌉+1) * r^(n+1) / (n+1)!. + This encapsulates the domain setup and remainder calculation. -/ +theorem exp_taylor_remainder_in_interval {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (n : ℕ) : + Real.exp x - ∑ i ∈ Finset.range (n + 1), (iteratedDeriv i Real.exp 0 / i.factorial) * x ^ i + ∈ expRemainderBoundComputable I n := by + -- Extract domain info + have ⟨hr_nonneg, habs_x, hdom, h0a, h0b, hab⟩ := domain_from_mem hx + set r := maxAbs I + set R := ((3 : ℚ) ^ (Nat.ceil r + 1) * r ^ (n + 1) / ratFactorial (n + 1)) + -- Apply Taylor theorem + have hexp_smooth : ContDiff ℝ (n + 1) Real.exp := Real.contDiff_exp.of_le le_top + have hderiv_bound : ∀ y ∈ Set.Icc ((-r : ℚ) : ℝ) (r : ℚ), + ‖iteratedDeriv (n + 1) Real.exp y‖ ≤ Real.exp r := by + intro y hy + rw [iteratedDeriv_eq_iterate, Real.iter_deriv_exp, Real.norm_eq_abs, abs_of_pos (Real.exp_pos + y)] + exact Real.exp_le_exp.mpr hy.2 + have hTaylor := taylor_remainder_bound hab h0a h0b hexp_smooth hderiv_bound + (Real.exp_pos (r : ℚ)).le x hdom + -- Compute remainder bound + have hr_nonneg_rat : 0 ≤ r := le_max_of_le_left (abs_nonneg I.lo) + have hexp_r_bound : Real.exp (r : ℚ) ≤ (3 : ℝ) ^ (Nat.ceil r + 1) := by + apply exp_bound_by_pow3 hr_nonneg_rat + rw [abs_of_nonneg hr_nonneg] + have hx_pow_bound : |x| ^ (n + 1) ≤ (r : ℝ) ^ (n + 1) := + pow_le_pow_left₀ (abs_nonneg x) habs_x _ + have hfact_pos : (0 : ℝ) < (n + 1).factorial := Nat.cast_pos.mpr (Nat.factorial_pos _) + have hrem_bound : Real.exp (r : ℚ) * |x - 0| ^ (n + 1) / (n + 1).factorial ≤ (R : ℝ) := by + simp only [sub_zero] + calc Real.exp (r : ℚ) * |x| ^ (n + 1) / (n + 1).factorial + ≤ (3 : ℝ) ^ (Nat.ceil r + 1) * (r : ℝ) ^ (n + 1) / (n + 1).factorial := by + apply div_le_div_of_nonneg_right _ hfact_pos.le + apply mul_le_mul hexp_r_bound hx_pow_bound (pow_nonneg (abs_nonneg x) _) + apply pow_nonneg; norm_num + _ = (R : ℝ) := by + simp only [R, ratFactorial, Rat.cast_div, Rat.cast_mul, Rat.cast_pow, + Rat.cast_natCast, Rat.cast_ofNat] + -- Convert to interval membership + simp only [expRemainderBoundComputable, mem_def, ratFactorial] + have h := hTaylor + simp only [sub_zero] at h hrem_bound + rw [Real.norm_eq_abs] at h + have hbound : |Real.exp x - ∑ i ∈ Finset.range (n + 1), + (iteratedDeriv i Real.exp 0 / i.factorial) * x ^ i| ≤ (R : ℝ) := + le_trans h hrem_bound + have habs := abs_le.mp hbound + simp only [R, Rat.cast_div, Rat.cast_mul, Rat.cast_pow, Rat.cast_natCast, Rat.cast_ofNat, + Rat.cast_neg] at habs ⊢ + exact habs + +/-- Unified Taylor remainder bound for sin: given x ∈ I with r = maxAbs I, + the Taylor remainder |sin x - poly(x)| ≤ r^(n+1) / (n+1)!. + Uses the fact that |sin^(k)(x)| ≤ 1 for all k, x. -/ +theorem sin_taylor_remainder_in_interval {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (n : ℕ) : + Real.sin x - ∑ i ∈ Finset.range (n + 1), (iteratedDeriv i Real.sin 0 / i.factorial) * x ^ i + ∈ sinRemainderBoundComputable I n := by + -- Extract domain info + have ⟨hr_nonneg, habs_x, hdom, h0a, h0b, hab⟩ := domain_from_mem hx + set r := maxAbs I + set R := (r ^ (n + 1) / ratFactorial (n + 1)) + -- Apply Taylor theorem with M = 1 + have hsin_smooth : ContDiff ℝ (n + 1) Real.sin := Real.contDiff_sin.of_le le_top + have hderiv_bound : ∀ y ∈ Set.Icc ((-r : ℚ) : ℝ) (r : ℚ), + ‖iteratedDeriv (n + 1) Real.sin y‖ ≤ 1 := by + intro y _; exact (sin_cos_deriv_bound (n + 1) y).1 + have hTaylor := taylor_remainder_bound hab h0a h0b hsin_smooth hderiv_bound + (by norm_num : (0 : ℝ) ≤ 1) x hdom + -- Compute remainder bound + have hx_pow_bound : |x| ^ (n + 1) ≤ (r : ℝ) ^ (n + 1) := + pow_le_pow_left₀ (abs_nonneg x) habs_x _ + have hfact_pos : (0 : ℝ) < (n + 1).factorial := Nat.cast_pos.mpr (Nat.factorial_pos _) + have hrem_bound : 1 * |x - 0| ^ (n + 1) / (n + 1).factorial ≤ (R : ℝ) := by + simp only [sub_zero, one_mul] + calc |x| ^ (n + 1) / (n + 1).factorial + ≤ (r : ℝ) ^ (n + 1) / (n + 1).factorial := + div_le_div_of_nonneg_right hx_pow_bound hfact_pos.le + _ = (R : ℝ) := by simp only [R, ratFactorial, Rat.cast_div, Rat.cast_pow, Rat.cast_natCast] + -- Convert to interval membership + simp only [sinRemainderBoundComputable, mem_def, ratFactorial] + have h := hTaylor + simp only [sub_zero, one_mul] at h hrem_bound + rw [Real.norm_eq_abs] at h + have hbound : |Real.sin x - ∑ i ∈ Finset.range (n + 1), + (iteratedDeriv i Real.sin 0 / i.factorial) * x ^ i| ≤ (R : ℝ) := + le_trans h hrem_bound + have habs := abs_le.mp hbound + simp only [R, Rat.cast_div, Rat.cast_pow, Rat.cast_natCast, Rat.cast_neg] at habs ⊢ + exact habs + +/-- Unified Taylor remainder bound for cos: given x ∈ I with r = maxAbs I, + the Taylor remainder |cos x - poly(x)| ≤ r^(n+1) / (n+1)!. + Uses the fact that |cos^(k)(x)| ≤ 1 for all k, x. -/ +theorem cos_taylor_remainder_in_interval {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (n : ℕ) : + Real.cos x - ∑ i ∈ Finset.range (n + 1), (iteratedDeriv i Real.cos 0 / i.factorial) * x ^ i + ∈ cosRemainderBoundComputable I n := by + -- Extract domain info + have ⟨hr_nonneg, habs_x, hdom, h0a, h0b, hab⟩ := domain_from_mem hx + set r := maxAbs I + set R := (r ^ (n + 1) / ratFactorial (n + 1)) + -- Apply Taylor theorem with M = 1 + have hcos_smooth : ContDiff ℝ (n + 1) Real.cos := Real.contDiff_cos.of_le le_top + have hderiv_bound : ∀ y ∈ Set.Icc ((-r : ℚ) : ℝ) (r : ℚ), + ‖iteratedDeriv (n + 1) Real.cos y‖ ≤ 1 := by + intro y _; exact (sin_cos_deriv_bound (n + 1) y).2 + have hTaylor := taylor_remainder_bound hab h0a h0b hcos_smooth hderiv_bound + (by norm_num : (0 : ℝ) ≤ 1) x hdom + -- Compute remainder bound + have hx_pow_bound : |x| ^ (n + 1) ≤ (r : ℝ) ^ (n + 1) := + pow_le_pow_left₀ (abs_nonneg x) habs_x _ + have hfact_pos : (0 : ℝ) < (n + 1).factorial := Nat.cast_pos.mpr (Nat.factorial_pos _) + have hrem_bound : 1 * |x - 0| ^ (n + 1) / (n + 1).factorial ≤ (R : ℝ) := by + simp only [sub_zero, one_mul] + calc |x| ^ (n + 1) / (n + 1).factorial + ≤ (r : ℝ) ^ (n + 1) / (n + 1).factorial := + div_le_div_of_nonneg_right hx_pow_bound hfact_pos.le + _ = (R : ℝ) := by simp only [R, ratFactorial, Rat.cast_div, Rat.cast_pow, Rat.cast_natCast] + -- Convert to interval membership + simp only [cosRemainderBoundComputable, mem_def, ratFactorial] + have h := hTaylor + simp only [sub_zero, one_mul] at h hrem_bound + rw [Real.norm_eq_abs] at h + have hbound : |Real.cos x - ∑ i ∈ Finset.range (n + 1), + (iteratedDeriv i Real.cos 0 / i.factorial) * x ^ i| ≤ (R : ℝ) := + le_trans h hrem_bound + have habs := abs_le.mp hbound + simp only [R, Rat.cast_div, Rat.cast_pow, Rat.cast_natCast, Rat.cast_neg] at habs ⊢ + exact habs + +/-! ### FTIA for computable functions -/ + +private theorem mem_expPointComputableRaw (q : ℚ) (n : ℕ) : + Real.exp q ∈ expPointComputableRaw q n := by + simp only [expPointComputableRaw] + have hq_mem : (q : ℝ) ∈ singleton q := mem_singleton q + -- Strategy: exp q = poly(q) + remainder, with both in their respective intervals + have hpoly_mem : ∑ i ∈ Finset.range (n + 1), (iteratedDeriv i Real.exp 0 / i.factorial) * (q : + ℝ) ^ i + ∈ evalTaylorSeries (expTaylorCoeffs n) (singleton q) := by + have hsum_eq : ∑ i ∈ Finset.range (n + 1), (iteratedDeriv i Real.exp 0 / i.factorial) * (q : + ℝ) ^ i = + ∑ i ∈ Finset.range (n + 1), (1 / i.factorial : ℝ) * (q : ℝ) ^ i := by + apply Finset.sum_congr rfl; intro i _; rw [iteratedDeriv_exp_zero, one_div] + rw [hsum_eq]; exact mem_evalTaylorSeries_exp hq_mem n + have hrem_mem := exp_taylor_remainder_in_interval hq_mem n + have heq : Real.exp q = (∑ i ∈ Finset.range (n + 1), + (iteratedDeriv i Real.exp 0 / i.factorial) * (q : ℝ) ^ i) + + (Real.exp q - ∑ i ∈ Finset.range (n + 1), + (iteratedDeriv i Real.exp 0 / i.factorial) * (q : ℝ) ^ i) := by ring + rw [heq]; exact mem_add hpoly_mem hrem_mem + +/-- FTIA for single-point exp: Real.exp q ∈ expPointComputable q n -/ +theorem mem_expPointComputable (q : ℚ) (n : ℕ) : + Real.exp q ∈ expPointComputable q n := by + simp only [expPointComputable] + set k := expReduceK q + set m : ℕ := (2:ℕ)^k + set q' : ℚ := q / m + have hbase : Real.exp q' ∈ expPointComputableRaw q' n := + mem_expPointComputableRaw q' n + have hpow : (Real.exp q') ^ m ∈ pow (expPointComputableRaw q' n) m := + mem_pow hbase m + have hm : (m:ℝ) ≠ 0 := by + -- m = 2^k > 0 + exact_mod_cast (pow_ne_zero k (by decide : (2:ℕ) ≠ 0)) + have hq : (q : ℝ) = (m:ℝ) * (q' : ℝ) := by + -- q' = q / m + have hm' : (m:ℝ) ≠ 0 := hm + calc + (q:ℝ) = (m:ℝ) * ((q:ℝ) / (m:ℝ)) := by + field_simp [hm'] + _ = (m:ℝ) * (q' : ℝ) := by + simp [q', Rat.cast_div, Rat.cast_natCast] + have hexp : Real.exp q = (Real.exp q') ^ m := by + calc + Real.exp q = Real.exp ((m:ℝ) * (q' : ℝ)) := by simp [hq] + _ = (Real.exp (q' : ℝ)) ^ m := by + -- exp (m * q') = (exp q')^m + simpa [mul_comm] using (Real.exp_nat_mul (q' : ℝ) m) + -- rewrite and apply membership + simpa [hexp] + +theorem mem_expComputable {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (n : ℕ) : + Real.exp x ∈ expComputable I n := by + simp only [expComputable] + split_ifs with h + · -- Interval doesn't cross 0: use endpoint evaluation and monotonicity + -- exp is monotone increasing, so exp([lo, hi]) ⊆ hull(exp(lo), exp(hi)) + have hlo_mem := mem_expPointComputable I.lo n + have hhi_mem := mem_expPointComputable I.hi n + -- Since x ∈ [lo, hi] and exp is monotone, exp(x) ∈ [exp(lo), exp(hi)] + -- The hull contains both exp(lo) and exp(hi), so it contains exp(x) + rcases h with ⟨hhi_neg⟩ | ⟨hlo_pos⟩ + · -- Case: hi ≤ 0 (negative interval) + -- exp(lo) ≤ exp(x) ≤ exp(hi) by monotonicity + have hx_le_hi : x ≤ I.hi := hx.2 + have hlo_le_x : (I.lo : ℝ) ≤ x := hx.1 + have hexp_mono1 : Real.exp x ≤ Real.exp I.hi := Real.exp_le_exp.mpr hx_le_hi + have hexp_mono2 : Real.exp I.lo ≤ Real.exp x := Real.exp_le_exp.mpr hlo_le_x + -- exp(x) is between exp(lo) and exp(hi), both of which are in the hull + simp only [hull, mem_def, Rat.cast_min, Rat.cast_max] + constructor + · -- lower bound: min(expLo.lo, expHi.lo) ≤ exp(x) + calc (min (expPointComputable I.lo n).lo (expPointComputable I.hi n).lo : ℝ) + ≤ (expPointComputable I.lo n).lo := by exact_mod_cast min_le_left _ _ + _ ≤ Real.exp I.lo := hlo_mem.1 + _ ≤ Real.exp x := hexp_mono2 + · -- upper bound: exp(x) ≤ max(expLo.hi, expHi.hi) + calc Real.exp x ≤ Real.exp I.hi := hexp_mono1 + _ ≤ (expPointComputable I.hi n).hi := hhi_mem.2 + _ ≤ max ((expPointComputable I.lo n).hi : ℝ) ((expPointComputable I.hi n).hi : ℝ) := + le_max_right _ _ + · -- Case: 0 ≤ lo (positive interval) - same argument + have hx_le_hi : x ≤ I.hi := hx.2 + have hlo_le_x : (I.lo : ℝ) ≤ x := hx.1 + have hexp_mono1 : Real.exp x ≤ Real.exp I.hi := Real.exp_le_exp.mpr hx_le_hi + have hexp_mono2 : Real.exp I.lo ≤ Real.exp x := Real.exp_le_exp.mpr hlo_le_x + simp only [hull, mem_def, Rat.cast_min, Rat.cast_max] + constructor + · calc (min (expPointComputable I.lo n).lo (expPointComputable I.hi n).lo : ℝ) + ≤ (expPointComputable I.lo n).lo := by exact_mod_cast min_le_left _ _ + _ ≤ Real.exp I.lo := hlo_mem.1 + _ ≤ Real.exp x := hexp_mono2 + · calc Real.exp x ≤ Real.exp I.hi := hexp_mono1 + _ ≤ (expPointComputable I.hi n).hi := hhi_mem.2 + _ ≤ max ((expPointComputable I.lo n).hi : ℝ) ((expPointComputable I.hi n).hi : ℝ) := + le_max_right _ _ + · -- Interval crosses 0: use standard Taylor + -- Strategy: exp x = poly(x) + remainder, with both in their respective intervals + have hpoly_mem : ∑ i ∈ Finset.range (n + 1), (iteratedDeriv i Real.exp 0 / i.factorial) * x ^ i + ∈ evalTaylorSeries (expTaylorCoeffs n) I := by + have hsum_eq : ∑ i ∈ Finset.range (n + 1), (iteratedDeriv i Real.exp 0 / i.factorial) * x ^ + i = + ∑ i ∈ Finset.range (n + 1), (1 / i.factorial : ℝ) * x ^ i := by + apply Finset.sum_congr rfl; intro i _; rw [iteratedDeriv_exp_zero, one_div] + rw [hsum_eq]; exact mem_evalTaylorSeries_exp hx n + have hrem_mem := exp_taylor_remainder_in_interval hx n + have heq : Real.exp x = (∑ i ∈ Finset.range (n + 1), + (iteratedDeriv i Real.exp 0 / i.factorial) * x ^ i) + + (Real.exp x - ∑ i ∈ Finset.range (n + 1), + (iteratedDeriv i Real.exp 0 / i.factorial) * x ^ i) := by ring + rw [heq]; exact mem_add hpoly_mem hrem_mem + +/-- FTIA for sinComputable: Real.sin x ∈ sinComputable I n for any x ∈ I. + + The proof uses the Taylor remainder micro-lemma and the global bound sin ∈ [-1, 1]. -/ +theorem mem_sinComputable {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (n : ℕ) : + Real.sin x ∈ sinComputable I n := by + simp only [sinComputable] + -- Strategy: sin x = poly(x) + remainder, intersected with global bound [-1, 1] + + -- Polynomial part ∈ evalTaylorSeries + have hpoly_mem : ∑ i ∈ Finset.range (n + 1), (iteratedDeriv i Real.sin 0 / i.factorial) * x ^ i + ∈ evalTaylorSeries (sinTaylorCoeffs n) I := mem_evalTaylorSeries_sin hx n + -- Remainder part ∈ sinRemainderBoundComputable (via micro-lemma) + have hrem_mem := sin_taylor_remainder_in_interval hx n + -- Raw interval membership: sin x ∈ poly + remainder + have hraw_mem : Real.sin x ∈ add (evalTaylorSeries (sinTaylorCoeffs n) I) + (sinRemainderBoundComputable I n) := by + have heq : Real.sin x = (∑ i ∈ Finset.range (n + 1), + (iteratedDeriv i Real.sin 0 / i.factorial) * x ^ i) + + (Real.sin x - ∑ i ∈ Finset.range (n + 1), + (iteratedDeriv i Real.sin 0 / i.factorial) * x ^ i) := by ring + rw [heq]; exact mem_add hpoly_mem hrem_mem + -- Global bound: sin x ∈ [-1, 1] + have hglobal_mem : Real.sin x ∈ (⟨-1, 1, by norm_num⟩ : IntervalRat) := by + simp only [mem_def]; constructor + · simp only [Rat.cast_neg, Rat.cast_one]; exact Real.neg_one_le_sin x + · simp only [Rat.cast_one]; exact Real.sin_le_one x + -- Intersect and conclude + have ⟨K, hK_eq, hK_mem⟩ := mem_intersect hraw_mem hglobal_mem + simp only [hK_eq]; exact hK_mem + +/-- FTIA for cosComputable: Real.cos x ∈ cosComputable I n for any x ∈ I. + + The proof uses the Taylor remainder micro-lemma and the global bound cos ∈ [-1, 1]. -/ +theorem mem_cosComputable {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (n : ℕ) : + Real.cos x ∈ cosComputable I n := by + simp only [cosComputable] + -- Strategy: cos x = poly(x) + remainder, intersected with global bound [-1, 1] + + -- Polynomial part ∈ evalTaylorSeries + have hpoly_mem : ∑ i ∈ Finset.range (n + 1), (iteratedDeriv i Real.cos 0 / i.factorial) * x ^ i + ∈ evalTaylorSeries (cosTaylorCoeffs n) I := mem_evalTaylorSeries_cos hx n + -- Remainder part ∈ cosRemainderBoundComputable (via micro-lemma) + have hrem_mem := cos_taylor_remainder_in_interval hx n + -- Raw interval membership: cos x ∈ poly + remainder + have hraw_mem : Real.cos x ∈ add (evalTaylorSeries (cosTaylorCoeffs n) I) + (cosRemainderBoundComputable I n) := by + have heq : Real.cos x = (∑ i ∈ Finset.range (n + 1), + (iteratedDeriv i Real.cos 0 / i.factorial) * x ^ i) + + (Real.cos x - ∑ i ∈ Finset.range (n + 1), + (iteratedDeriv i Real.cos 0 / i.factorial) * x ^ i) := by ring + rw [heq]; exact mem_add hpoly_mem hrem_mem + -- Global bound: cos x ∈ [-1, 1] + have hglobal_mem : Real.cos x ∈ (⟨-1, 1, by norm_num⟩ : IntervalRat) := by + simp only [mem_def]; constructor + · simp only [Rat.cast_neg, Rat.cast_one]; exact Real.neg_one_le_cos x + · simp only [Rat.cast_one]; exact Real.cos_le_one x + -- Intersect and conclude + have ⟨K, hK_eq, hK_mem⟩ := mem_intersect hraw_mem hglobal_mem + simp only [hK_eq]; exact hK_mem + +/-- FTIA for sinhPointComputable: Real.sinh q ∈ sinhPointComputable q n -/ +theorem mem_sinhPointComputable (q : ℚ) (n : ℕ) : + Real.sinh q ∈ sinhPointComputable q n := by + simp only [sinhPointComputable] + have hexp_pos := mem_expPointComputable q n + have hexp_neg := mem_expPointComputable (-q) n + rw [Real.sinh_eq] + simp only [Rat.cast_neg] at hexp_neg + simp only [mem_def] at hexp_pos hexp_neg ⊢ + obtain ⟨hexp_pos_lo, hexp_pos_hi⟩ := hexp_pos + obtain ⟨hexp_neg_lo, hexp_neg_hi⟩ := hexp_neg + split_ifs with h + · constructor <;> { simp only [Rat.cast_div, Rat.cast_sub, Rat.cast_ofNat]; linarith } + · -- Fallback case: use min/max bounds + constructor + · simp only [Rat.cast_min, Rat.cast_div, Rat.cast_sub, Rat.cast_ofNat] + apply min_le_of_left_le; linarith + · simp only [Rat.cast_max, Rat.cast_div, Rat.cast_sub, Rat.cast_ofNat] + apply le_max_of_le_right; linarith + +/-- FTIA for coshPointComputable: Real.cosh q ∈ coshPointComputable q n -/ +theorem mem_coshPointComputable (q : ℚ) (n : ℕ) : + Real.cosh q ∈ coshPointComputable q n := by + simp only [coshPointComputable] + have hexp_pos := mem_expPointComputable q n + have hexp_neg := mem_expPointComputable (-q) n + rw [Real.cosh_eq] + simp only [Rat.cast_neg] at hexp_neg + simp only [mem_def] at hexp_pos hexp_neg ⊢ + obtain ⟨hexp_pos_lo, hexp_pos_hi⟩ := hexp_pos + obtain ⟨hexp_neg_lo, hexp_neg_hi⟩ := hexp_neg + -- cosh q ≥ 1 always (AM-GM) + have hcosh_ge_one : 1 ≤ (Real.exp q + Real.exp (-(q : ℝ))) / 2 := by + have h1 : Real.exp q > 0 := Real.exp_pos q + have h2 : Real.exp (-(q : ℝ)) > 0 := Real.exp_pos (-(q : ℝ)) + have hprod : Real.exp q * Real.exp (-(q : ℝ)) = 1 := by + rw [← Real.exp_add, add_neg_cancel, Real.exp_zero] + have ham : Real.exp q + Real.exp (-(q : ℝ)) ≥ 2 := by nlinarith [sq_nonneg (Real.exp q - + Real.exp (-(q : ℝ))), hprod] + linarith + split_ifs with h + · constructor + · -- Lower bound: max 1 coshLo ≤ cosh q + simp only [Rat.cast_max, Rat.cast_one, Rat.cast_div, Rat.cast_add, Rat.cast_ofNat] + apply max_le + · exact hcosh_ge_one + · linarith + · -- Upper bound + simp only [Rat.cast_div, Rat.cast_add, Rat.cast_ofNat] + linarith + · -- Fallback + constructor + · simp only [Rat.cast_one] + exact hcosh_ge_one + · simp only [Rat.cast_max, Rat.cast_ofNat, Rat.cast_div, Rat.cast_add] + apply le_max_of_le_right + linarith + +/-- FTIA for sinhComputable: Real.sinh x ∈ sinhComputable I n for any x ∈ I. + + Uses endpoint evaluation and monotonicity of sinh. -/ +theorem mem_sinhComputable {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (n : ℕ) : + Real.sinh x ∈ sinhComputable I n := by + simp only [sinhComputable] + -- sinh is strictly monotone increasing + have hsinh_mono : StrictMono Real.sinh := Real.sinh_strictMono + have hlo_mem := mem_sinhPointComputable I.lo n + have hhi_mem := mem_sinhPointComputable I.hi n + -- x ∈ [lo, hi] implies sinh(lo) ≤ sinh(x) ≤ sinh(hi) + have hlo_le_x : (I.lo : ℝ) ≤ x := hx.1 + have hx_le_hi : x ≤ (I.hi : ℝ) := hx.2 + have hsinh_lo_le : Real.sinh I.lo ≤ Real.sinh x := + hsinh_mono.monotone hlo_le_x + have hsinh_x_le_hi : Real.sinh x ≤ Real.sinh I.hi := + hsinh_mono.monotone hx_le_hi + -- sinh x is between sinh(lo) and sinh(hi), which are in the hull + simp only [hull, mem_def, Rat.cast_min, Rat.cast_max] + constructor + · calc (min (sinhPointComputable I.lo n).lo (sinhPointComputable I.hi n).lo : ℝ) + ≤ (sinhPointComputable I.lo n).lo := by exact_mod_cast min_le_left _ _ + _ ≤ Real.sinh I.lo := hlo_mem.1 + _ ≤ Real.sinh x := hsinh_lo_le + · calc Real.sinh x ≤ Real.sinh I.hi := hsinh_x_le_hi + _ ≤ (sinhPointComputable I.hi n).hi := hhi_mem.2 + _ ≤ max ((sinhPointComputable I.lo n).hi : ℝ) ((sinhPointComputable I.hi n).hi : ℝ) := + le_max_right _ _ + +/-- FTIA for coshComputable: Real.cosh x ∈ coshComputable I n for any x ∈ I. + + Uses endpoint evaluation and monotonicity properties of cosh. -/ +theorem mem_coshComputable {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (n : ℕ) : + Real.cosh x ∈ coshComputable I n := by + simp only [coshComputable] + have hlo_mem := mem_coshPointComputable I.lo n + have hhi_mem := mem_coshPointComputable I.hi n + -- cosh x ≥ 1 always (AM-GM) + have hcosh_ge_one : 1 ≤ Real.cosh x := Real.one_le_cosh x + -- Key lemma: cosh a ≤ cosh b iff |a| ≤ |b| + split_ifs with h1 h2 + · -- Case: 0 ≤ I.lo (non-negative interval, cosh is increasing) + have hlo_nonneg : (0 : ℝ) ≤ I.lo := by exact_mod_cast h1 + have hx_nonneg : 0 ≤ x := le_trans hlo_nonneg hx.1 + have hhi_nonneg : (0 : ℝ) ≤ I.hi := le_trans hlo_nonneg (by exact_mod_cast I.le) + -- For 0 ≤ a ≤ b: |a| = a ≤ b = |b|, so cosh(a) ≤ cosh(b) + have hcosh_lo_le : Real.cosh I.lo ≤ Real.cosh x := by + rw [Real.cosh_le_cosh] + rw [abs_of_nonneg hlo_nonneg, abs_of_nonneg hx_nonneg] + exact hx.1 + have hcosh_x_le_hi : Real.cosh x ≤ Real.cosh I.hi := by + rw [Real.cosh_le_cosh] + rw [abs_of_nonneg hx_nonneg, abs_of_nonneg hhi_nonneg] + exact hx.2 + simp only [hull, mem_def, Rat.cast_min, Rat.cast_max] + constructor + · calc (min (coshPointComputable I.lo n).lo (coshPointComputable I.hi n).lo : ℝ) + ≤ (coshPointComputable I.lo n).lo := by exact_mod_cast min_le_left _ _ + _ ≤ Real.cosh I.lo := hlo_mem.1 + _ ≤ Real.cosh x := hcosh_lo_le + · calc Real.cosh x ≤ Real.cosh I.hi := hcosh_x_le_hi + _ ≤ (coshPointComputable I.hi n).hi := hhi_mem.2 + _ ≤ max ((coshPointComputable I.lo n).hi : ℝ) ((coshPointComputable I.hi n).hi : ℝ) := + le_max_right _ _ + · -- Case: I.hi ≤ 0 (non-positive interval, cosh is decreasing) + have hhi_nonpos : I.hi ≤ (0 : ℝ) := by exact_mod_cast h2 + have hx_nonpos : x ≤ 0 := le_trans hx.2 hhi_nonpos + have hlo_nonpos : (I.lo : ℝ) ≤ 0 := le_trans (by exact_mod_cast I.le) hhi_nonpos + -- For a ≤ b ≤ 0: |a| = -a ≥ -b = |b|, so cosh(a) ≥ cosh(b) + have hcosh_hi_le : Real.cosh I.hi ≤ Real.cosh x := by + rw [Real.cosh_le_cosh] + rw [abs_of_nonpos hhi_nonpos, abs_of_nonpos hx_nonpos] + linarith [hx.2] + have hcosh_x_le_lo : Real.cosh x ≤ Real.cosh I.lo := by + rw [Real.cosh_le_cosh] + rw [abs_of_nonpos hx_nonpos, abs_of_nonpos hlo_nonpos] + linarith [hx.1] + simp only [hull, mem_def, Rat.cast_min, Rat.cast_max] + constructor + · calc (min (coshPointComputable I.hi n).lo (coshPointComputable I.lo n).lo : ℝ) + ≤ (coshPointComputable I.hi n).lo := by exact_mod_cast min_le_left _ _ + _ ≤ Real.cosh I.hi := hhi_mem.1 + _ ≤ Real.cosh x := hcosh_hi_le + · calc Real.cosh x ≤ Real.cosh I.lo := hcosh_x_le_lo + _ ≤ (coshPointComputable I.lo n).hi := hlo_mem.2 + _ ≤ max ((coshPointComputable I.hi n).hi : ℝ) ((coshPointComputable I.lo n).hi : ℝ) := + le_max_right _ _ + · -- Case: interval contains 0, minimum is 1 + simp only [mem_def, Rat.cast_one, hull, Rat.cast_max] + constructor + · exact hcosh_ge_one + · -- Upper bound is max of endpoint cosh values + push Not at h1 h2 + have hhi_pos : (0 : ℝ) < I.hi := by exact_mod_cast h2 + have hlo_neg : (I.lo : ℝ) < 0 := by exact_mod_cast h1 + have hmax_bound : Real.cosh x ≤ max (Real.cosh I.lo) (Real.cosh I.hi) := by + -- x is between lo and hi, and interval contains 0 + by_cases! hx_nonneg : 0 ≤ x + · -- x ≥ 0: cosh(x) ≤ cosh(hi) since 0 ≤ x ≤ hi means |x| ≤ |hi| + apply le_max_of_le_right + rw [Real.cosh_le_cosh] + rw [abs_of_nonneg hx_nonneg, abs_of_nonneg (le_of_lt hhi_pos)] + exact hx.2 + · -- x < 0: cosh(x) ≤ cosh(lo) since lo ≤ x < 0 means |x| ≤ |lo| + apply le_max_of_le_left + rw [Real.cosh_le_cosh] + rw [abs_of_neg hx_nonneg, abs_of_neg hlo_neg] + linarith [hx.1] + calc Real.cosh x ≤ max (Real.cosh I.lo) (Real.cosh I.hi) := hmax_bound + _ ≤ max ((coshPointComputable I.lo n).hi : ℝ) ((coshPointComputable I.hi n).hi : ℝ) := by + apply max_le_max + · exact hlo_mem.2 + · exact hhi_mem.2 + +/-! ### Computable atanh via Taylor series + +For |y| < 1, atanh(y) = y + y³/3 + y⁵/5 + ... +We compute this series for y ∈ [-1/3, 1/3] where it converges rapidly. +-/ + +/-- Taylor coefficients for atanh: 0, 1, 0, 1/3, 0, 1/5, ... + atanh(y) = Σ y^(2k+1)/(2k+1) = y + y³/3 + y⁵/5 + ... -/ +def atanhTaylorCoeffs (n : ℕ) : List ℚ := + let f : ℕ → ℚ := fun i => if i % 2 = 1 then 1 / i else 0 + (List.range (n + 1)).map f + +/-- Computable atanh remainder bound. + For |y| ≤ r < 1, the remainder after n terms is bounded by r^(n+1)/(1 - r²). + We use a conservative bound: r^(n+1) / ((n+1) * (1 - r)) for simplicity. -/ +def atanhRemainderBoundComputable (r : ℚ) (n : ℕ) : IntervalRat := + let r' := |r| -- Use absolute value to ensure non-negativity + if h : r' ≥ 1 then + ⟨-1000, 1000, by norm_num⟩ -- Fallback for bad input + else + let R := r' ^ (n + 1) / (1 - r') + ⟨-R, R, by + have hr : r' < 1 := not_le.mp h + have hr_nonneg : 0 ≤ r' := abs_nonneg r + have hdenom_pos : 0 < 1 - r' := by linarith + have hR_nonneg : 0 ≤ R := by + apply div_nonneg + · apply pow_nonneg hr_nonneg + · linarith + linarith⟩ + +/-- Computable interval enclosure for atanh at a single rational point. + Requires |q| < 1 for convergence. For |q| ≤ 1/3, this is very accurate. -/ +def atanhPointComputable (q : ℚ) (n : ℕ := 15) : IntervalRat := + let r := |q| + if r ≥ 1 then + ⟨-1000, 1000, by norm_num⟩ -- Fallback + else + let I := singleton q + let coeffs := atanhTaylorCoeffs n + let polyVal := evalTaylorSeries coeffs I + let remainder := atanhRemainderBoundComputable r n + add polyVal remainder + +/-- Point `atanh` using Taylor coefficients prepared for depth `n`. -/ +def atanhPointComputableWithCoeffs (q : ℚ) (n : ℕ) + (coeffs : List ℚ) : IntervalRat := + let r := |q| + if r ≥ 1 then + ⟨-1000, 1000, by norm_num⟩ + else + let I := singleton q + let polyVal := evalTaylorSeries coeffs I + let remainder := atanhRemainderBoundComputable r n + add polyVal remainder + +theorem atanhPointComputableWithCoeffs_eq (q : ℚ) (n : ℕ) : + atanhPointComputableWithCoeffs q n (atanhTaylorCoeffs n) = + atanhPointComputable q n := by + simp [atanhPointComputableWithCoeffs, atanhPointComputable] + +/-- The atanh series: atanh(x) = Σ_{k=0}^∞ x^(2k+1)/(2k+1) for |x| < 1. + Derived from Mathlib's hasSum_log_sub_log_of_abs_lt_one. -/ +theorem Real.atanh_hasSum' {x : ℝ} (hx : |x| < 1) : + HasSum (fun k : ℕ => x ^ (2 * k + 1) / (2 * k + 1)) (Real.atanh x) := by + have hlog := Real.hasSum_log_sub_log_of_abs_lt_one hx + have h1 : 0 < 1 + x := by linarith [(abs_lt.mp hx).1] + have h2 : 0 < 1 - x := by linarith [(abs_lt.mp hx).2] + have h_eq : Real.atanh x = (1 / 2) * (Real.log (1 + x) - Real.log (1 - x)) := by + rw [Real.atanh, Real.log_div (ne_of_gt h1) (ne_of_gt h2)] + rw [h_eq] + convert! hlog.mul_left (1 / 2) using 1 + funext k + field_simp + +/-- The atanh Taylor polynomial membership: the partial sum of atanh coefficients at q + is in evalTaylorSeries (atanhTaylorCoeffs n) (singleton q). -/ +theorem mem_evalTaylorSeries_atanh {q : ℚ} (n : ℕ) : + ((atanhTaylorCoeffs n).zipIdx.map (fun (c, i) => (c : ℝ) * (q : ℝ) ^ i)).sum ∈ + evalTaylorSeries (atanhTaylorCoeffs n) (singleton q) := + mem_evalTaylorSeries (mem_singleton q) (atanhTaylorCoeffs n) + +/-- The atanh Taylor remainder bound: for |q| < 1, the remainder after n terms is bounded. + The remainder is |Σ_{k: 2k+1 > n} q^(2k+1)/(2k+1)| ≤ |q|^(n+1)/(1-|q|). -/ +private theorem atanhTaylorCoeffs_sum (q : ℚ) (n : ℕ) : + ((atanhTaylorCoeffs n).zipIdx.map (fun (c, i) ↦ (c : ℝ) * (q : ℝ) ^ i)).sum = + ∑ k ∈ Finset.range ((n + 1) / 2), (q : ℝ) ^ (2 * k + 1) / (2 * k + 1) := by + let term := fun k : ℕ ↦ (q : ℝ) ^ (2 * k + 1) / (2 * k + 1) + let m := (n + 1) / 2 + -- Step 1: Convert the list sum to a Finset sum over indices. + have hlist : + ((atanhTaylorCoeffs n).zipIdx.map (fun (c, i) => (c : ℝ) * (q : ℝ) ^ i)).sum = + ∑ i ∈ Finset.range (n + 1), + ((if i % 2 = 1 then ((i : ℚ) : ℚ)⁻¹ else 0 : ℚ) : ℝ) * (q : ℝ) ^ i := by + simp only [atanhTaylorCoeffs, one_div] + rw [List.zipIdx_map] + simp only [List.map_map] + -- Simplify the composition after zipIdx_map. + have h1 : + (List.range (n + 1)).zipIdx.map + ((fun p : ℚ × ℕ => (p.1 : ℝ) * (q : ℝ) ^ p.2) ∘ + Prod.map (fun i : ℕ => if i % 2 = 1 then ((i : ℚ) : ℚ)⁻¹ else 0) id) = + (List.range (n + 1)).zipIdx.map + (fun p : ℕ × ℕ => + ((if p.1 % 2 = 1 then ((p.1 : ℚ) : ℚ)⁻¹ else 0 : ℚ) : ℝ) * (q : ℝ) ^ p.2) := by + apply List.map_congr_left + intro ⟨a, b⟩ _ + simp [Function.comp, Prod.map_apply] + -- Replace zipIdx over range with a direct map on indices. + have h2 : + (List.range (n + 1)).zipIdx.map + (fun p : ℕ × ℕ => + ((if p.1 % 2 = 1 then ((p.1 : ℚ) : ℚ)⁻¹ else 0 : ℚ) : ℝ) * (q : ℝ) ^ p.2) = + (List.range (n + 1)).map + (fun i : ℕ => + ((if i % 2 = 1 then ((i : ℚ) : ℚ)⁻¹ else 0 : ℚ) : ℝ) * (q : ℝ) ^ i) := by + convert! zipIdx_range_map + (fun a b => + ((if a % 2 = 1 then ((a : ℚ) : ℚ)⁻¹ else 0 : ℚ) : ℝ) * (q : ℝ) ^ b) (n + 1) using 2 + rw [h1, h2] + exact list_map_sum_eq_finset_sum + (fun i : ℕ => + ((if i % 2 = 1 then ((i : ℚ) : ℚ)⁻¹ else 0 : ℚ) : ℝ) * (q : ℝ) ^ i) (n + 1) + -- Step 2: Filter to odd indices (even indices contribute zero). + have hsum_filter : + ∑ i ∈ Finset.range (n + 1), + ((if i % 2 = 1 then ((i : ℚ) : ℚ)⁻¹ else 0 : ℚ) : ℝ) * (q : ℝ) ^ i = + ∑ i ∈ (Finset.range (n + 1)).filter (fun i => i % 2 = 1), + (q : ℝ) ^ i / i := by + have hterm : + ∀ i : ℕ, + ((if i % 2 = 1 then ((i : ℚ) : ℚ)⁻¹ else 0 : ℚ) : ℝ) * (q : ℝ) ^ i = + if i % 2 = 1 then (q : ℝ) ^ i / i else 0 := by + intro i + by_cases hodd : i % 2 = 1 + · simp [hodd, div_eq_mul_inv, Rat.cast_inv, Rat.cast_natCast, + mul_comm] + · simp [hodd] + calc + ∑ i ∈ Finset.range (n + 1), + ((if i % 2 = 1 then ((i : ℚ) : ℚ)⁻¹ else 0 : ℚ) : ℝ) * (q : ℝ) ^ i + = + ∑ i ∈ Finset.range (n + 1), + (if i % 2 = 1 then (q : ℝ) ^ i / i else 0) := by + refine Finset.sum_congr rfl ?_ + intro i hi + exact hterm i + _ = + ∑ i ∈ (Finset.range (n + 1)).filter (fun i => i % 2 = 1), + (q : ℝ) ^ i / i := by + symm + exact (Finset.sum_filter + (s := Finset.range (n + 1)) + (f := fun i => (q : ℝ) ^ i / i) + (p := fun i => i % 2 = 1)) + -- Step 3: Reindex odd indices by k with i = 2k+1. + have hsum_reindex : + ∑ i ∈ (Finset.range (n + 1)).filter (fun i => i % 2 = 1), + (q : ℝ) ^ i / i = + ∑ k ∈ Finset.range m, term k := by + refine (Finset.sum_nbij + (s := Finset.range m) + (t := (Finset.range (n + 1)).filter (fun i => i % 2 = 1)) + (i := fun k => 2 * k + 1) + (f := term) + (g := fun i => (q : ℝ) ^ i / i) + ?_ ?_ ?_ ?_).symm + · intro k hk + apply Finset.mem_filter.2 + constructor + · -- membership in range + have hk' : k < m := Finset.mem_range.1 hk + have hk_succ : Nat.succ k ≤ m := (Nat.succ_le_iff).2 hk' + have hk_succ' : k + 1 ≤ (n + 1) / 2 := by simpa [m] using hk_succ + have hk_mul : (k + 1) * 2 ≤ n + 1 := + (Nat.le_div_iff_mul_le Nat.zero_lt_two).1 hk_succ' + have hk_mul' : 2 * k + 2 ≤ n + 1 := by + simpa [Nat.add_mul, Nat.mul_comm, Nat.mul_left_comm, Nat.mul_assoc] using hk_mul + have hk_lt : 2 * k + 1 < n + 1 := by + have hlt : 2 * k + 1 < 2 * k + 2 := Nat.lt_succ_self (2 * k + 1) + exact lt_of_lt_of_le hlt hk_mul' + exact Finset.mem_range.2 hk_lt + · -- oddness + have hodd : Odd (2 * k + 1) := ⟨k, rfl⟩ + exact (Nat.odd_iff).1 hodd + · intro a ha b hb hEq + have hEq' : Nat.succ (2 * a) = Nat.succ (2 * b) := by + simpa [Nat.succ_eq_add_one] using hEq + have hEq'' : 2 * a = 2 * b := (Nat.succ_inj).1 hEq' + exact Nat.mul_left_cancel Nat.zero_lt_two hEq'' + · intro i hi + simp only [Finset.coe_range, Set.mem_image, Set.mem_Iio, m] + use (i - 1) / 2 + simp at hi + grind only + · intro k hk + simp [term] + -- Combine the steps. + calc + ((atanhTaylorCoeffs n).zipIdx.map (fun (c, i) => (c : ℝ) * (q : ℝ) ^ i)).sum + = ∑ i ∈ Finset.range (n + 1), + ((if i % 2 = 1 then ((i : ℚ) : ℚ)⁻¹ else 0 : ℚ) : ℝ) * (q : ℝ) ^ i := hlist + _ = ∑ i ∈ (Finset.range (n + 1)).filter (fun i => i % 2 = 1), + (q : ℝ) ^ i / i := hsum_filter + _ = ∑ k ∈ Finset.range m, term k := hsum_reindex + + +theorem atanh_taylor_remainder_in_interval {q : ℚ} (hq : |(q : ℝ)| < 1) (n : ℕ) : + Real.atanh q - ((atanhTaylorCoeffs n).zipIdx.map (fun (c, i) => (c : ℝ) * (q : ℝ) ^ i)).sum + ∈ atanhRemainderBoundComputable |q| n := by + -- The remainder is the tail of the series + simp only [atanhRemainderBoundComputable, abs_abs] + have hq_abs_lt : |q| < 1 := by + have h := abs_lt.mp hq + rw [abs_lt]; constructor + · exact_mod_cast h.1 + · exact_mod_cast h.2 + have h_not_ge : ¬(|q| ≥ 1) := not_le.mpr hq_abs_lt + simp only [h_not_ge, mem_def] + -- The bound R = |q|^(n+1)/(1-|q|) in ℚ + set R_rat := |q| ^ (n + 1) / (1 - |q|) with hR_rat_def + -- Key bounds: |q| < 1 in ℚ + have hr_nonneg_rat : 0 ≤ |q| := abs_nonneg q + have hdenom_pos_rat : 0 < 1 - |q| := by linarith + have hR_nonneg_rat' : 0 ≤ R_rat := by + apply div_nonneg + · exact pow_nonneg hr_nonneg_rat (n + 1) + · linarith + have hR_nonneg : (0 : ℝ) ≤ R_rat := Rat.cast_nonneg.mpr hR_nonneg_rat' + -- The absolute value of the remainder is bounded + have habs : |Real.atanh q - ((atanhTaylorCoeffs n).zipIdx.map + (fun (c, i) => (c : ℝ) * (q : ℝ) ^ i)).sum| ≤ (R_rat : ℝ) := by + -- Strategy: The atanh series is Σ_k q^(2k+1)/(2k+1) + -- The polynomial computes Σ_{i≤n, i odd} q^i/i + -- The remainder is Σ_{k: 2k+1 > n} q^(2k+1)/(2k+1) + -- Bound: |remainder| ≤ Σ_{k: 2k+1 > n} |q|^(2k+1) ≤ |q|^(n+1)/(1-|q|) + + -- Get the series representation + have hseries := Real.atanh_hasSum' hq + -- The polynomial sum equals the partial series sum for terms with index ≤ n + -- atanhTaylorCoeffs n = [0, 1, 0, 1/3, 0, 1/5, ...] for indices 0..n + -- So the sum is Σ_{i odd, i ≤ n} q^i/i = Σ_{k: 2k+1 ≤ n} q^(2k+1)/(2k+1) + + -- For the bound, we use that each term |q^(2k+1)/(2k+1)| ≤ |q|^(2k+1) + -- and the geometric series Σ_{m≥n+1} |q|^m ≤ |q|^(n+1)/(1-|q|) + + -- This is a non-trivial series argument - for now use the bound directly + -- The remainder terms satisfy |term_k| ≤ |q|^(2k+1) for 2k+1 > n + -- Summing: |remainder| ≤ |q|^(n+1) * (1 + |q| + |q|² + ...) = |q|^(n+1)/(1-|q|) + have hq_real_lt : |(q : ℝ)| < 1 := hq + have hq_abs_nonneg : 0 ≤ |(q : ℝ)| := abs_nonneg _ + -- The remainder is bounded by a geometric series tail + -- |Σ_{k: 2k+1 > n} q^(2k+1)/(2k+1)| ≤ Σ_{k: 2k+1 > n} |q|^(2k+1) + -- ≤ |q|^(n+1) + |q|^(n+2) + ... + -- = |q|^(n+1) / (1 - |q|) + -- Define the series term and the split point m + let term := fun k : ℕ => (q : ℝ) ^ (2 * k + 1) / (2 * k + 1) + -- m = number of terms with 2k+1 ≤ n, i.e., k ≤ (n-1)/2 + let m := (n + 1) / 2 + -- Key: 2m ≥ n (so 2m+1 ≥ n+1) + have hm_bound : 2 * m ≥ n := by simp only [m]; omega + -- Step 1: Show polynomial sum equals partial series sum up to m terms + -- The polynomial atanhTaylorCoeffs n has coefficients: + -- index i: 1/i if i is odd and i ≤ n, else 0 + -- So the sum gives Σ_{k: 2k+1 ≤ n} q^(2k+1)/(2k+1) = Σ_{k < m} term k + have h_poly_eq_partial := atanhTaylorCoeffs_sum q n + -- Step 2: The remainder is the tail of the series starting at m + have h_summable := hseries.summable + have h_tail_summable : Summable fun k => term (k + m) := (summable_nat_add_iff m).mpr h_summable + have h_tail_eq : Real.atanh q - ∑ k ∈ Finset.range m, term k = ∑' k, term (k + m) := by + have h_split := h_summable.sum_add_tsum_nat_add m + have h_tsum_eq : ∑' i, term i = Real.atanh q := hseries.tsum_eq + linarith [h_split, h_tsum_eq] + rw [h_poly_eq_partial, h_tail_eq] + -- Step 3: Bound the tail by geometric series + have hz_abs_sq : |(q : ℝ)| ^ 2 < 1 := by + have h1 : |(q : ℝ)| ^ 2 ≤ |(q : ℝ)| := by + have hn : 0 ≤ |(q : ℝ)| := abs_nonneg _ + have hle : |(q : ℝ)| ≤ 1 := le_of_lt hq + nlinarith [sq_nonneg (|(q : ℝ)| - 1)] + linarith + have hz_abs_nonneg : 0 ≤ |(q : ℝ)| := abs_nonneg _ + have hz_abs_le : |(q : ℝ)| ≤ 1 := le_of_lt hq + -- Define the dominating geometric term + let geo_term := fun k : ℕ => |(q : ℝ)| ^ (2 * m + 1) * (|(q : ℝ)| ^ 2) ^ k + have h_geo_summable : Summable geo_term := by + apply Summable.mul_left + exact summable_geometric_of_lt_one (sq_nonneg _) hz_abs_sq + have h_term_bound : ∀ k, |term (k + m)| ≤ geo_term k := by + intro k + simp only [term, geo_term] + rw [abs_div, abs_pow] + have h_pow_eq : |(q : ℝ)| ^ (2 * (k + m) + 1) = |(q : ℝ)| ^ (2 * m + 1) * (|(q : ℝ)| ^ 2) ^ + k := by + have : 2 * (k + m) + 1 = 2 * m + 1 + 2 * k := by ring + rw [this, pow_add, pow_mul] + rw [h_pow_eq] + have h_denom_pos' : (0 : ℝ) < 2 * (k + m : ℕ) + 1 := by positivity + have h_denom_ge_one : (1 : ℝ) ≤ |(2 : ℝ) * (k + m : ℕ) + 1| := by + rw [abs_of_pos h_denom_pos'] + have hk : (0 : ℝ) ≤ k := Nat.cast_nonneg k + have hm' : (0 : ℝ) ≤ m := Nat.cast_nonneg m + push_cast; linarith + calc |(q : ℝ)| ^ (2 * m + 1) * (|(q : ℝ)| ^ 2) ^ k / |(2 : ℝ) * (k + m : ℕ) + 1| + ≤ |(q : ℝ)| ^ (2 * m + 1) * (|(q : ℝ)| ^ 2) ^ k / 1 := by + apply div_le_div_of_nonneg_left _ (by positivity) h_denom_ge_one + positivity + _ = |(q : ℝ)| ^ (2 * m + 1) * (|(q : ℝ)| ^ 2) ^ k := by ring + have h_norm_sum : ‖∑' k, term (k + m)‖ ≤ ∑' k, ‖term (k + m)‖ := + norm_tsum_le_tsum_norm h_tail_summable.norm + simp only [Real.norm_eq_abs] at h_norm_sum + calc |∑' k, term (k + m)| + ≤ ∑' k, |term (k + m)| := h_norm_sum + _ ≤ ∑' k, geo_term k := h_tail_summable.abs.tsum_le_tsum h_term_bound h_geo_summable + _ = |(q : ℝ)| ^ (2 * m + 1) * ∑' k, (|(q : ℝ)| ^ 2) ^ k := by + simp only [geo_term]; rw [tsum_mul_left] + _ = |(q : ℝ)| ^ (2 * m + 1) / (1 - |(q : ℝ)| ^ 2) := by + rw [tsum_geometric_of_lt_one (sq_nonneg _) hz_abs_sq]; ring + _ ≤ |(q : ℝ)| ^ (n + 1) / (1 - |(q : ℝ)| ^ 2) := by + -- 2m + 1 ≥ n + 1 since 2m ≥ n + have h_exp_le : n + 1 ≤ 2 * m + 1 := by omega + have h_pow_le : |(q : ℝ)| ^ (2 * m + 1) ≤ |(q : ℝ)| ^ (n + 1) := + pow_le_pow_of_le_one hz_abs_nonneg hz_abs_le h_exp_le + have h_denom_pos : 0 < 1 - |(q : ℝ)| ^ 2 := by nlinarith [sq_nonneg (q : ℝ), sq_abs (q : + ℝ)] + exact div_le_div_of_nonneg_right h_pow_le h_denom_pos.le + _ ≤ |(q : ℝ)| ^ (n + 1) / (1 - |(q : ℝ)|) := by + -- 1 - |q|² ≥ 1 - |q| since |q|² ≤ |q| for |q| ≤ 1 + have h1 : |(q : ℝ)| ^ 2 ≤ |(q : ℝ)| := by nlinarith [sq_nonneg (|(q : ℝ)| - 1)] + have h2 : 1 - |(q : ℝ)| ≤ 1 - |(q : ℝ)| ^ 2 := by linarith + have h3 : 0 < 1 - |(q : ℝ)| := by linarith + have h4 : 0 ≤ |(q : ℝ)| ^ (n + 1) := pow_nonneg hz_abs_nonneg _ + exact div_le_div_of_nonneg_left h4 h3 h2 + _ = (R_rat : ℝ) := by + -- R_rat = |q|^(n+1)/(1-|q|) in ℚ + simp only [hR_rat_def] + -- Show: |(q:ℝ)|^(n+1)/(1-|(q:ℝ)|) = (|q|^(n+1)/(1-|q|) : ℚ) + rw [← Rat.cast_abs q] + push_cast + ring + have h := abs_le.mp habs + constructor + · calc ((-R_rat : ℚ) : ℝ) = -((R_rat : ℚ) : ℝ) := by push_cast; ring + _ ≤ _ := h.1 + · exact h.2 + +/-- FTIA for atanhPointComputable: Real.atanh q ∈ atanhPointComputable q n for |q| < 1. -/ +theorem mem_atanhPointComputable (q : ℚ) (n : ℕ) (hq : |(q : ℝ)| < 1) : + Real.atanh q ∈ atanhPointComputable q n := by + simp only [atanhPointComputable] + -- Since |q| < 1, the condition |q| ≥ 1 is false + have hq_rat : |q| < 1 := by + have h := abs_lt.mp hq + rw [abs_lt] + constructor + · have : (-1 : ℝ) < q := h.1 + exact_mod_cast this + · have : (q : ℝ) < 1 := h.2 + exact_mod_cast this + have h_not_ge : ¬(|q| ≥ 1) := not_le.mpr hq_rat + simp only [h_not_ge, ↓reduceIte] + -- Polynomial part: the partial sum is in evalTaylorSeries + have hpoly := mem_evalTaylorSeries_atanh n (q := q) + -- Remainder part: the tail is in atanhRemainderBoundComputable + have hrem := atanh_taylor_remainder_in_interval hq n + -- Combine: atanh q = partial_sum + remainder + have heq : Real.atanh q = ((atanhTaylorCoeffs n).zipIdx.map + (fun (c, i) => (c : ℝ) * (q : ℝ) ^ i)).sum + + (Real.atanh q - ((atanhTaylorCoeffs n).zipIdx.map + (fun (c, i) => (c : ℝ) * (q : ℝ) ^ i)).sum) := by ring + rw [heq] + exact mem_add hpoly hrem + +/-! ### Computable ln(2) via atanh + +ln(2) = 2 * atanh(1/3), since: + 2 = (1 + 1/3) / (1 - 1/3) = (4/3) / (2/3) + So atanh(1/3) = (1/2) * ln(2), giving ln(2) = 2 * atanh(1/3) +-/ + +/-- Compute ln(2) as an interval using 2 * atanh(1/3). + This converges rapidly since atanh series at 1/3 has |y| = 1/3. -/ +def ln2Computable (n : ℕ := 20) : IntervalRat := + let atanh_third := atanhPointComputable (1/3) n + scale 2 atanh_third + +/-- FTIA for ln2Computable: Real.log 2 ∈ ln2Computable n. + Uses the identity log(2) = 2 * atanh(1/3) from log_via_atanh. -/ +theorem mem_ln2Computable (n : ℕ) : Real.log 2 ∈ ln2Computable n := by + simp only [ln2Computable] + -- log(2) = 2 * atanh(1/3) via log_via_atanh + have hlog_eq : Real.log 2 = 2 * Real.atanh (↑(1/3 : ℚ)) := by + have h := LogReduction.log_via_atanh (by norm_num : (0 : ℚ) < 2) + -- Convert: ((↑2 : ℝ) - 1) / ((↑2 : ℝ) + 1) = ↑(1/3 : ℚ) + have h_arg : ((↑(2 : ℚ) : ℝ) - 1) / (↑(2 : ℚ) + 1) = ↑(1/3 : ℚ) := by + simp only [Rat.cast_ofNat] + norm_num + rw [h_arg] at h + convert! h using 1 + rw [hlog_eq] + -- atanh(1/3) ∈ atanhPointComputable (1/3) n by mem_atanhPointComputable + have h_third_lt : |(↑(1/3 : ℚ) : ℝ)| < 1 := by + rw [abs_lt] + constructor <;> norm_num + exact mem_scale 2 (mem_atanhPointComputable (1/3) n h_third_lt) + +/-! ### Computable log via argument reduction + +For q > 0, we compute: + 1. Reduce q to m * 2^k where m ∈ [1/2, 2] + 2. Compute log(m) = 2 * atanh((m-1)/(m+1)), which has |arg| ≤ 1/3 + 3. Result = log(m) + k * ln(2) +-/ + +/-- Reduction exponent k such that q * 2^(-k) ≈ 1 -/ +def logReductionExponent (q : ℚ) : ℤ := + if q ≤ 0 then 0 + else + let n_log := q.num.natAbs.log2 + let d_log := q.den.log2 + (n_log : ℤ) - (d_log : ℤ) + +/-- Reduced mantissa m = q * 2^(-k) -/ +def logReduceMantissa (q : ℚ) : ℚ := + if q ≤ 0 then 1 + else q * (2 : ℚ) ^ (-logReductionExponent q) + +/-- Computable log at a single rational point q > 0. + Returns log(q) = log(m) + k * ln(2) where m = q * 2^(-k). -/ +def logPointComputable (q : ℚ) (n : ℕ := 20) : IntervalRat := + if q ≤ 0 then + ⟨-1000, 1000, by norm_num⟩ -- Fallback for non-positive + else + let k := logReductionExponent q + let m := logReduceMantissa q + -- log(m) = 2 * atanh((m-1)/(m+1)) + let y := (m - 1) / (m + 1) + let atanh_y := atanhPointComputable y n + let log_m := scale 2 atanh_y + -- k * ln(2) + let k_ln2 := scale k (ln2Computable n) + add log_m k_ln2 + +/-- Logarithm evaluation using all configuration-dependent data prepared for depth `n`. -/ +def logPointComputablePrepared (q : ℚ) (n : ℕ) (ln2 : IntervalRat) + (atanhCoeffs : List ℚ) : IntervalRat := + if q ≤ 0 then + ⟨-1000, 1000, by norm_num⟩ + else + let k := logReductionExponent q + let m := logReduceMantissa q + let y := (m - 1) / (m + 1) + let atanh_y := atanhPointComputableWithCoeffs y n atanhCoeffs + let log_m := scale 2 atanh_y + let k_ln2 := scale k ln2 + add log_m k_ln2 + +theorem logPointComputablePrepared_eq (q : ℚ) (n : ℕ) : + logPointComputablePrepared q n (ln2Computable n) (atanhTaylorCoeffs n) = + logPointComputable q n := by + simp [logPointComputablePrepared, logPointComputable, + atanhPointComputableWithCoeffs_eq] + +/-- Computable interval enclosure for log using endpoint evaluation. + Since log is strictly increasing on (0, ∞), we evaluate at endpoints. -/ +def logComputable (I : IntervalRat) (n : ℕ := 20) : IntervalRat := + if I.lo ≤ 0 then + ⟨-1000, 1000, by norm_num⟩ -- Fallback for non-positive interval + else + -- log is monotone increasing, so log([lo, hi]) = [log(lo), log(hi)] + let logLo := logPointComputable I.lo n + let logHi := logPointComputable I.hi n + hull logLo logHi + +/-- Interval logarithm using all data prepared for depth `n`. -/ +def logComputablePrepared (I : IntervalRat) (n : ℕ) (ln2 : IntervalRat) + (atanhCoeffs : List ℚ) : IntervalRat := + if I.lo ≤ 0 then + ⟨-1000, 1000, by norm_num⟩ + else + let logLo := logPointComputablePrepared I.lo n ln2 atanhCoeffs + let logHi := logPointComputablePrepared I.hi n ln2 atanhCoeffs + hull logLo logHi + +theorem logComputablePrepared_eq (I : IntervalRat) (n : ℕ) : + logComputablePrepared I n (ln2Computable n) (atanhTaylorCoeffs n) = + logComputable I n := by + simp [logComputablePrepared, logComputable, logPointComputablePrepared_eq] + +/-- The local logReductionExponent equals LogReduction.reductionExponent for positive q -/ +private theorem logReductionExponent_eq {q : ℚ} (hq : 0 < q) : + logReductionExponent q = LogReduction.reductionExponent q := by + simp only [logReductionExponent, LogReduction.reductionExponent, not_le.mpr hq, ↓reduceIte] + +/-- The local logReduceMantissa equals LogReduction.reduceMantissa for positive q -/ +private theorem logReduceMantissa_eq {q : ℚ} (hq : 0 < q) : + logReduceMantissa q = LogReduction.reduceMantissa q := by + simp only [logReduceMantissa, LogReduction.reduceMantissa, not_le.mpr hq, ↓reduceIte, + logReductionExponent_eq hq] + +/-- FTIA for logPointComputable -/ +theorem mem_logPointComputable {q : ℚ} (hq : 0 < q) (n : ℕ) : + Real.log q ∈ logPointComputable q n := by + unfold logPointComputable + simp only [not_le.mpr hq, ↓reduceIte] + -- Get the reduced mantissa and exponent + set k := logReductionExponent q with hk_def + set m := logReduceMantissa q with hm_def + -- Show they equal the LogReduction definitions + have hk_eq : k = LogReduction.reductionExponent q := logReductionExponent_eq hq + have hm_eq : m = LogReduction.reduceMantissa q := logReduceMantissa_eq hq + -- Get bounds on m from LogReduction.reduced_bounds + have hm_bounds : 1/2 ≤ m ∧ m ≤ 2 := by rw [hm_eq]; exact LogReduction.reduced_bounds hq + have hm_pos : 0 < m := by rw [hm_eq]; exact LogReduction.reduced_pos hq + -- Compute y = (m-1)/(m+1) and get bounds from atanh_arg_bounds + set y := (m - 1) / (m + 1) with hy_def + have hy_bounds : (-1)/3 ≤ y ∧ y ≤ 1/3 := LogReduction.atanh_arg_bounds hm_bounds.1 hm_bounds.2 + -- Key: |y| ≤ 1/3 < 1, so we can use mem_atanhPointComputable + have hy_abs_lt : |(y : ℝ)| < 1 := by + rw [abs_lt] + have hlo : ((-1 : ℚ) / 3 : ℝ) ≤ y := by exact_mod_cast hy_bounds.1 + have hhi : (y : ℝ) ≤ (1 : ℚ) / 3 := by exact_mod_cast hy_bounds.2 + constructor <;> linarith + -- Step 1: atanh(y) ∈ atanhPointComputable y n + have h_atanh := mem_atanhPointComputable y n hy_abs_lt + -- Step 2: log(m) = 2 * atanh(y), so log(m) ∈ scale 2 (atanhPointComputable y n) + have h_log_m_eq : Real.log m = 2 * Real.atanh y := by + have h := LogReduction.log_via_atanh hm_pos + -- h : Real.log m = 2 * Real.atanh ((m - 1) / (m + 1)) + -- Need to show: ((m - 1) / (m + 1) : ℚ) : ℝ = ((m : ℝ) - 1) / ((m : ℝ) + 1) + have hcast : (y : ℝ) = ((m : ℝ) - 1) / ((m : ℝ) + 1) := by + simp only [hy_def] + push_cast + ring + rw [hcast] + exact h + have h_log_m := mem_scale 2 h_atanh + -- h_log_m : (2 : ℚ) * Real.atanh y ∈ scale 2 (atanhPointComputable y n) + -- h_log_m_eq : Real.log m = 2 * Real.atanh y + have h_log_m' : Real.log m ∈ scale 2 (atanhPointComputable y n) := by + rw [h_log_m_eq] + exact h_log_m + -- Step 3: log(2) ∈ ln2Computable n + have h_ln2 := mem_ln2Computable n + -- Step 4: k * log(2) ∈ scale k (ln2Computable n) + have h_k_ln2 := mem_scale k h_ln2 + -- Step 5: log(q) = log(m) + k * log(2) by log_reduction + have h_log_eq : Real.log q = Real.log m + k * Real.log 2 := by + have h := LogReduction.log_reduction hq + exact h + -- Step 6: Combine using mem_add + rw [h_log_eq] + exact mem_add h_log_m' h_k_ln2 + +/-- FTIA for logComputable: if x ∈ I and I.lo > 0, then log(x) ∈ logComputable I n -/ +theorem mem_logComputable {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (hpos : 0 < I.lo) (n : ℕ) : + Real.log x ∈ logComputable I n := by + simp only [logComputable, not_le.mpr hpos, ↓reduceIte] + -- Since log is strictly monotone and x ∈ [lo, hi] with lo > 0: + -- log(lo) ≤ log(x) ≤ log(hi) + have hlo_pos : (0 : ℝ) < I.lo := by exact_mod_cast hpos + have hx_pos : 0 < x := lt_of_lt_of_le hlo_pos hx.1 + have hlo_mem := mem_logPointComputable hpos n + have hhi_pos : 0 < I.hi := lt_of_lt_of_le hpos I.le + have hhi_mem := mem_logPointComputable hhi_pos n + -- x ∈ [lo, hi] implies log(lo) ≤ log(x) ≤ log(hi) by monotonicity + have hlog_lo_le : Real.log I.lo ≤ Real.log x := + Real.log_le_log hlo_pos hx.1 + have hlog_x_le_hi : Real.log x ≤ Real.log I.hi := + Real.log_le_log hx_pos hx.2 + simp only [hull, mem_def, Rat.cast_min, Rat.cast_max] + constructor + · calc (min (logPointComputable I.lo n).lo (logPointComputable I.hi n).lo : ℝ) + ≤ (logPointComputable I.lo n).lo := by exact_mod_cast min_le_left _ _ + _ ≤ Real.log I.lo := hlo_mem.1 + _ ≤ Real.log x := hlog_lo_le + · calc Real.log x ≤ Real.log I.hi := hlog_x_le_hi + _ ≤ (logPointComputable I.hi n).hi := hhi_mem.2 + _ ≤ max ((logPointComputable I.lo n).hi : ℝ) ((logPointComputable I.hi n).hi : ℝ) := + le_max_right _ _ + +/-- Conditional version of mem_logComputable for use in correctness proofs. + Requires I.lo > 0 so the log interval is well-defined and monotone. -/ +theorem mem_logComputable' {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (hpos : 0 < I.lo) (n : ℕ) : + Real.log x ∈ logComputable I n := by + exact mem_logComputable hx hpos n + +/-! ### Computable erf via Taylor series -/ + +/-- Interval containing 2/√π ≈ 1.128379... + Used for erf calculations. 2/√π is in (1.128, 1.129). -/ +def twoDivSqrtPi : IntervalRat := + ⟨1128/1000, 1129/1000, by norm_num⟩ + +/-- Taylor coefficients for erf (without the 2/√π factor): + erf(x) = (2/√π) * Σ_{n=0}^∞ (-1)^n * x^(2n+1) / (n! * (2n+1)) + + So the coefficient of x^k is: + - 0 if k is even + - (-1)^((k-1)/2) / (((k-1)/2)! * k) if k is odd -/ +def erfTaylorCoeffs (n : ℕ) : List ℚ := + (List.range (n + 1)).map (fun i => + if i % 2 = 1 then -- odd terms only: x, x³, x⁵, ... + let m : ℕ := (i - 1) / 2 -- for x^(2m+1), m = (i-1)/2 + ((-1 : ℚ) ^ m) / (ratFactorial m * (i : ℚ)) + else 0) + +/-- Computable erf remainder bound. + Since |erf^{(k)}(x)| ≤ (2/√π) * 2^k for all x (rough bound), + and erf is bounded by 1, we use a combination. + + For the Taylor remainder centered at 0, we use: + |R_n(x)| ≤ sup|f^{(n+1)}(ξ)| * |x|^{n+1} / (n+1)! + + A conservative bound: |erf^{(k)}(x)| ≤ (2/√π) * k! / (k/2)! ≤ 2 * k^{k/2} + But since |erf| ≤ 1, we can intersect with [-1, 1]. + + We use: remainder ≤ 2 * |x|^{n+1} / (n+1)! (very conservative). -/ +def erfRemainderBoundComputable (I : IntervalRat) (n : ℕ) : IntervalRat := + let r := maxAbs I + -- Conservative bound: use 2 as the derivative bound (since 2/√π ≈ 1.13) + let R := 2 * r ^ (n + 1) / ratFactorial (n + 1) + ⟨-R, R, by + have hr : 0 ≤ r := le_max_of_le_left (abs_nonneg I.lo) + have hfact : (0 : ℚ) ≤ ratFactorial (n + 1) := by + simp only [ratFactorial]; exact Nat.cast_nonneg _ + have hpow : (0 : ℚ) ≤ r ^ (n + 1) := pow_nonneg hr _ + have hR : 0 ≤ R := div_nonneg (mul_nonneg (by norm_num : (0:ℚ) ≤ 2) hpow) hfact + linarith⟩ + +/-- Computable interval enclosure for erf at a single rational point. + Uses sign-aware clipped linear bounds: + `|erf(q)| ≤ min(1, (2257/2000)*|q|)`. + + Cases: + - `q < 0 => erf(q) ∈ [-1, 0]` + - `q = 0 => erf(q) = 0` + - `q > 0 => erf(q) ∈ [0, 1]` + + with tighter near-zero magnitude via `(2257/2000)*|q|`. -/ +def erfPointComputable (q : ℚ) (n : ℕ := 15) : IntervalRat := + let _ := n + let b : ℚ := min 1 ((2257 / 2000) * |q|) + if hq : q < 0 then + ⟨-b, 0, by + unfold b + have hb_nonneg : (0 : ℚ) ≤ min 1 ((2257 / 2000) * |q|) := by + apply le_min + · norm_num + · exact mul_nonneg (by norm_num) (abs_nonneg q) + linarith⟩ + else if h0 : q = 0 then + ⟨0, 0, by norm_num⟩ + else + ⟨0, b, by + unfold b + have hb_nonneg : (0 : ℚ) ≤ min 1 ((2257 / 2000) * |q|) := by + apply le_min + · norm_num + · exact mul_nonneg (by norm_num) (abs_nonneg q) + exact hb_nonneg⟩ + +/-- Computable interval enclosure for erf using Taylor series with monotonicity. + + erf(x) = (2/√π) * Σ_{n=0}^∞ (-1)^n * x^(2n+1) / (n! * (2n+1)) + + Since erf is strictly monotone increasing (erf'(x) = (2/√π)e^{-x²} > 0), + we use endpoint evaluation: erf([a,b]) ⊆ [erf(a), erf(b)]. + + We intersect with [-1, 1] for safety. -/ +def erfComputable (I : IntervalRat) (n : ℕ := 15) : IntervalRat := + -- erf is strictly monotone increasing, so evaluate at endpoints + let erfLo := erfPointComputable I.lo n + let erfHi := erfPointComputable I.hi n + let raw := hull erfLo erfHi + -- Intersect with global bound [-1, 1] + let globalBound : IntervalRat := ⟨-1, 1, by norm_num⟩ + match intersect raw globalBound with + | some refined => refined + | none => globalBound + +/-- 2/√π is in the interval twoDivSqrtPi. + 2/√π ≈ 1.1283791670955126, which is in (1.128, 1.129). + + This is a helper theorem for correctness proofs. The computation of + erfComputable is independent of this theorem. -/ +theorem two_div_sqrt_pi_mem : 2 / Real.sqrt Real.pi ∈ twoDivSqrtPi := by + simp only [twoDivSqrtPi, mem_def] + -- From π bounds: 3.1415 < π < 3.1416 (Real.pi_gt_d4, Real.pi_lt_d4) + -- So √π is between √3.1415 ≈ 1.7724 and √3.1416 ≈ 1.7725 + -- Thus 2/√π is between 2/1.7725 ≈ 1.1283 and 2/1.7724 ≈ 1.1285 + have hpi_lo : (3.1415 : ℝ) < Real.pi := Real.pi_gt_d4 + have hpi_hi : Real.pi < (3.1416 : ℝ) := Real.pi_lt_d4 + have hsqrt_lo : (1.7724 : ℝ) < Real.sqrt Real.pi := by + have h1 : (1.7724 : ℝ) ^ 2 < Real.pi := by + have : (1.7724 : ℝ) ^ 2 = 3.14140176 := by ring + linarith + have h2 : (0 : ℝ) ≤ 1.7724 := by norm_num + have h3 : (0 : ℝ) ≤ 1.7724 ^ 2 := by positivity + calc (1.7724 : ℝ) = Real.sqrt (1.7724 ^ 2) := (Real.sqrt_sq h2).symm + _ < Real.sqrt Real.pi := Real.sqrt_lt_sqrt h3 h1 + have hsqrt_hi : Real.sqrt Real.pi < (1.7725 : ℝ) := by + have h1 : Real.pi < (1.7725 : ℝ) ^ 2 := by + have : (1.7725 : ℝ) ^ 2 = 3.14175625 := by ring + linarith + have hpi_pos : (0 : ℝ) < Real.pi := Real.pi_pos + rw [← Real.sqrt_sq (le_of_lt (by norm_num : (0 : ℝ) < 1.7725))] + exact Real.sqrt_lt_sqrt (le_of_lt hpi_pos) h1 + constructor + · -- Goal: ↑(1128 / 1000) ≤ 2 / √π + have h1 : ((1128 / 1000 : ℚ) : ℝ) < 2 / 1.7725 := by norm_num + have h2 : (2 : ℝ) / 1.7725 < 2 / Real.sqrt Real.pi := by + apply div_lt_div_of_pos_left (by norm_num : (0 : ℝ) < 2) + · exact Real.sqrt_pos.mpr Real.pi_pos + · exact hsqrt_hi + exact le_of_lt (lt_trans h1 h2) + · -- Goal: 2 / √π ≤ ↑(1129 / 1000) + have h1 : 2 / Real.sqrt Real.pi < (2 : ℝ) / 1.7724 := by + apply div_lt_div_of_pos_left (by norm_num : (0 : ℝ) < 2) + · norm_num + · exact hsqrt_lo + have h2 : (2 : ℝ) / 1.7724 < ((1129 / 1000 : ℚ) : ℝ) := by norm_num + exact le_of_lt (lt_trans h1 h2) + +/-- The "inner" erf function without the 2/√π factor: + erfInner(x) = ∫₀ˣ exp(-t²) dt = (√π/2) * erf(x) + + This is the function whose Taylor series coefficients are erfTaylorCoeffs. -/ +noncomputable def erfInner (x : ℝ) : ℝ := ∫ t in (0 : ℝ)..x, Real.exp (-(t^2)) + +/-- erf(x) = (2/√π) * erfInner(x) -/ +theorem erf_eq_factor_mul_inner (x : ℝ) : Real.erf x = (2 / Real.sqrt Real.pi) * erfInner x := by + unfold Real.erf erfInner + ring + +/-- The derivatives of erfInner(x) = ∫₀ˣ exp(-t²) dt. + erfInner'(x) = exp(-x²) + erfInner''(x) = -2x * exp(-x²) + etc. -/ +theorem erfInner_deriv : deriv erfInner = fun x => Real.exp (-(x^2)) := by + ext x + unfold erfInner + have hcont : Continuous (fun t => Real.exp (-(t^2))) := + Real.continuous_exp.comp (continuous_neg.comp (continuous_pow 2)) + exact hcont.integral_hasStrictDerivAt 0 x |>.hasDerivAt.deriv + +/-- exp(-x²) is smooth. -/ +theorem contDiff_exp_neg_sq : ContDiff ℝ ⊤ (fun x => Real.exp (-(x^2))) := + Real.contDiff_exp.comp (contDiff_neg.comp (contDiff_id.pow 2)) + +/-- exp(-x²) is analytic everywhere. -/ +theorem analyticAt_exp_neg_sq (x : ℝ) : AnalyticAt ℝ (fun t => Real.exp (-(t^2))) x := by + have h1 : AnalyticAt ℝ (fun t : ℝ => t^2) x := analyticAt_id.pow 2 + have h2 : AnalyticAt ℝ (fun t : ℝ => -(t^2)) x := h1.neg + exact h2.rexp + +/-- exp(-x²) is analytic on ℝ. -/ +theorem analyticOnNhd_exp_neg_sq : AnalyticOnNhd ℝ (fun t => Real.exp (-(t^2))) Set.univ := + fun x _ => analyticAt_exp_neg_sq x + +/-- Helper: erfInner is C^n for all n. -/ +private theorem erfInner_contDiff_nat (n : ℕ) : ContDiff ℝ n erfInner := by + induction n with + | zero => + -- C^0 = continuous + refine contDiff_zero.mpr ?_ + have hcont : Continuous (fun t => Real.exp (-(t^2))) := + Real.continuous_exp.comp (continuous_neg.comp (continuous_pow 2)) + have h_int : ∀ a b : ℝ, IntervalIntegrable (fun t => Real.exp (-(t^2))) MeasureTheory.volume a + b := + fun a b => hcont.intervalIntegrable a b + exact intervalIntegral.continuous_primitive h_int 0 + | succ n _ih => + -- C^(n+1) from C^n of derivative + have hdiff : Differentiable ℝ erfInner := fun x => + (Real.continuous_exp.comp (continuous_neg.comp (continuous_pow + 2))).integral_hasStrictDerivAt 0 x + |>.hasStrictFDerivAt.differentiableAt + have hderiv_smooth : ContDiff ℝ n (deriv erfInner) := by + simp only [erfInner_deriv] + exact contDiff_exp_neg_sq.of_le le_top + exact contDiff_succ_iff_deriv.mpr ⟨hdiff, by simp, hderiv_smooth⟩ + +/-! ### Computable atanh interval via endpoint evaluation -/ + +/-- Computable interval enclosure for atanh using endpoint evaluation. + Since atanh is strictly increasing on (-1, 1), we evaluate at endpoints. + Requires the interval to be strictly inside (-1, 1); returns a wide fallback otherwise. -/ +def atanhComputable (I : IntervalRat) (n : ℕ := 15) : IntervalRat := + if I.lo ≤ -1 then + ⟨-1000, 1000, by norm_num⟩ + else if 1 ≤ I.hi then + ⟨-1000, 1000, by norm_num⟩ + else + let atanhLo := atanhPointComputable I.lo n + let atanhHi := atanhPointComputable I.hi n + hull atanhLo atanhHi + +/-- Interval `atanh` using Taylor coefficients prepared for depth `n`. -/ +def atanhComputableWithCoeffs (I : IntervalRat) (n : ℕ) + (coeffs : List ℚ) : IntervalRat := + if I.lo ≤ -1 then + ⟨-1000, 1000, by norm_num⟩ + else if 1 ≤ I.hi then + ⟨-1000, 1000, by norm_num⟩ + else + let atanhLo := atanhPointComputableWithCoeffs I.lo n coeffs + let atanhHi := atanhPointComputableWithCoeffs I.hi n coeffs + hull atanhLo atanhHi + +theorem atanhComputableWithCoeffs_eq (I : IntervalRat) (n : ℕ) : + atanhComputableWithCoeffs I n (atanhTaylorCoeffs n) = atanhComputable I n := by + simp [atanhComputableWithCoeffs, atanhComputable, atanhPointComputableWithCoeffs_eq] + +/-- FTIA for atanhComputable: if x ∈ I and I ⊂ (-1, 1), then atanh(x) ∈ atanhComputable I n. -/ +theorem mem_atanhComputable {x : ℝ} {I : IntervalRat} (hx : x ∈ I) + (hlo : -1 < I.lo) (hhi : I.hi < 1) (n : ℕ) : + Real.atanh x ∈ atanhComputable I n := by + simp only [atanhComputable, not_le.mpr hlo, ↓reduceIte, not_le.mpr hhi, ↓reduceIte] + -- x ∈ I ⊂ (-1, 1), so |lo|, |hi|, |x| < 1 + have hlo_real : (-1 : ℝ) < I.lo := by exact_mod_cast hlo + have hhi_real : (I.hi : ℝ) < 1 := by exact_mod_cast hhi + have hx_lo : -1 < x := by linarith [hx.1] + have hx_hi : x < 1 := by linarith [hx.2] + have hle : (I.lo : ℝ) ≤ I.hi := by exact_mod_cast I.le + have habs_lo : |(I.lo : ℝ)| < 1 := by rw [abs_lt]; constructor <;> linarith + have habs_hi : |(I.hi : ℝ)| < 1 := by rw [abs_lt]; constructor <;> linarith + have habs_x : |x| < 1 := by rw [abs_lt]; constructor <;> linarith + -- atanh at endpoints + have hlo_abs_rat : |(I.lo : ℝ)| < 1 := habs_lo + have hhi_abs_rat : |(I.hi : ℝ)| < 1 := habs_hi + have hlo_mem := mem_atanhPointComputable I.lo n hlo_abs_rat + have hhi_mem := mem_atanhPointComputable I.hi n hhi_abs_rat + -- Monotonicity: atanh(lo) ≤ atanh(x) ≤ atanh(hi) + have hatanh_lo_le : Real.atanh I.lo ≤ Real.atanh x := + Real.atanh_mono habs_lo habs_x hx.1 + have hatanh_x_le_hi : Real.atanh x ≤ Real.atanh I.hi := + Real.atanh_mono habs_x habs_hi hx.2 + simp only [hull, mem_def, Rat.cast_min, Rat.cast_max] + constructor + · calc (min (atanhPointComputable I.lo n).lo (atanhPointComputable I.hi n).lo : ℝ) + ≤ (atanhPointComputable I.lo n).lo := by exact_mod_cast min_le_left _ _ + _ ≤ Real.atanh I.lo := hlo_mem.1 + _ ≤ Real.atanh x := hatanh_lo_le + · calc Real.atanh x ≤ Real.atanh I.hi := hatanh_x_le_hi + _ ≤ (atanhPointComputable I.hi n).hi := hhi_mem.2 + _ ≤ max ((atanhPointComputable I.lo n).hi : ℝ) ((atanhPointComputable I.hi n).hi : ℝ) := + le_max_right _ _ + +end IntervalRat + +end LeanCert.Core + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Rational Endpoint Intervals + +This file defines `IntervalRat`, a concrete interval type with rational endpoints +suitable for computation. We prove the Fundamental Theorem of Interval Arithmetic +(FTIA) for each operation. + +## Module Structure + +* `IntervalRat.Basic` - Core types: `IntervalRat`, membership, basic operations +* `IntervalRat.Transcendental` - Noncomputable transcendental bounds (exp, log, sqrt, atanh) +* `IntervalRat.Taylor` - Computable Taylor series evaluators + +## Main definitions + +* `LeanCert.Core.IntervalRat` - Intervals with rational endpoints +* `LeanCert.Core.IntervalRat.toSet` - Semantic interpretation as a subset of ℝ +* Operations: `add`, `neg`, `sub`, `mul`, `inv`, `div` +* Computable: `expComputable`, `sinComputable`, `cosComputable` + +## Main theorems + +* `mem_add` - FTIA for addition +* `mem_neg` - FTIA for negation +* `mem_sub` - FTIA for subtraction +* `mem_mul` - FTIA for multiplication +* `mem_expComputable`, `mem_sinComputable`, `mem_cosComputable` - FTIA for computable functions + +## Design notes + +All operations maintain the invariant `lo ≤ hi`. Domain restrictions for partial +operations (like `inv`) are encoded via separate types or explicit hypotheses. +-/ + +@[expose] public section + +end + +end + +section + +/- +Copyright (c) 2025 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Dyadic Intervals + +Intervals with Dyadic endpoints. These support "Outward Rounding", ensuring +mathematical soundness even when we limit numerical precision. + +## Main definitions + +* `IntervalDyadic` - Interval with Dyadic endpoints +* `IntervalDyadic.add`, `mul`, `neg` - Interval arithmetic operations +* `IntervalDyadic.roundOut` - Outward rounding to control precision +* `IntervalDyadic.toIntervalRat` - Convert to rational interval for verification + +## Design notes + +The key feature is `roundOut`: after each operation, we can enforce a minimum +exponent to prevent precision explosion. When rounding: +- Lower bounds are shifted down (toward -∞) +- Upper bounds are shifted up (toward +∞) + +This maintains the containment invariant: the rounded interval always contains +the original interval, which contains the true mathematical value. + +## Performance + +In v1.0, `Rat` multiplication of `1/3 * 1/3 * ... * 1/3` (10 times) creates +a denominator of 3^10 = 59049. Each operation requires GCD computation. + +In v1.1, with `precision = -10`, the denominator stays fixed at 2^10 = 1024. +The result is slightly less tight but computed significantly faster. +-/ + +@[expose] public section + +namespace LeanCert.Core + +/-- An interval with Dyadic endpoints. + +Maintains invariant: `lo.toRat ≤ hi.toRat` -/ +structure IntervalDyadic where + /-- Lower bound -/ + lo : Dyadic + /-- Upper bound -/ + hi : Dyadic + /-- Invariant: lower bound ≤ upper bound -/ + le : lo.toRat ≤ hi.toRat + deriving Repr + +namespace IntervalDyadic + +/-! ### Membership and Sets -/ + +/-- The set of reals contained in this interval -/ +def toSet (I : IntervalDyadic) : Set ℝ := Set.Icc (I.lo : ℝ) (I.hi : ℝ) + +/-- Membership in a Dyadic interval -/ +instance : Membership ℝ IntervalDyadic where + mem I x := (I.lo.toRat : ℝ) ≤ x ∧ x ≤ (I.hi.toRat : ℝ) + +@[simp] +theorem mem_def (x : ℝ) (I : IntervalDyadic) : + x ∈ I ↔ (I.lo.toRat : ℝ) ≤ x ∧ x ≤ (I.hi.toRat : ℝ) := Iff.rfl + +/-! ### Conversion to IntervalRat -/ + +/-- Convert to IntervalRat for verification with existing theorems -/ +def toIntervalRat (I : IntervalDyadic) : IntervalRat := + ⟨I.lo.toRat, I.hi.toRat, I.le⟩ + +/-- Membership is preserved by conversion to IntervalRat -/ +theorem mem_toIntervalRat {x : ℝ} {I : IntervalDyadic} : + x ∈ I ↔ x ∈ I.toIntervalRat := by + simp only [mem_def, toIntervalRat, IntervalRat.mem_def] + +/-! ### Construction -/ + +/-- Create a singleton interval from a Dyadic -/ +def singleton (d : Dyadic) : IntervalDyadic := ⟨d, d, le_refl _⟩ + +/-- A Dyadic value is in its singleton interval -/ +theorem mem_singleton (d : Dyadic) : (d.toRat : ℝ) ∈ singleton d := by + simp only [mem_def, singleton] + exact ⟨le_refl _, le_refl _⟩ + +/-- Default interval [0, 0] -/ +instance : Inhabited IntervalDyadic where + default := singleton Dyadic.zero + +/-- Create an interval, checking the invariant -/ +def mk? (lo hi : Dyadic) : Option IntervalDyadic := + if h : lo.toRat ≤ hi.toRat then some ⟨lo, hi, h⟩ else none + +/-- The width of an interval -/ +def width (I : IntervalDyadic) : Dyadic := I.hi.sub I.lo + +/-- The dyadic width denotes endpoint subtraction exactly. -/ +@[simp] +theorem width_toRat (I : IntervalDyadic) : + I.width.toRat = I.hi.toRat - I.lo.toRat := by + simp only [width, Dyadic.sub, Dyadic.toRat_add, Dyadic.toRat_neg] + ring + +/-- Exact midpoint of a dyadic interval. + +Dyadics are closed under division by two, so midpoint construction must lower +the exponent rather than shift (and potentially round) the mantissa. -/ +def midpoint (I : IntervalDyadic) : Dyadic := + (I.lo.add I.hi).scale2 (-1) + +/-- The dyadic midpoint denotes the ordinary rational midpoint exactly. -/ +@[simp] +theorem midpoint_toRat (I : IntervalDyadic) : + I.midpoint.toRat = (I.lo.toRat + I.hi.toRat) / 2 := by + simp only [midpoint, Dyadic.toRat_scale2, Dyadic.toRat_add] + norm_num [div_eq_mul_inv] + +/-- The lower endpoint is at most the exact midpoint. -/ +theorem lo_le_midpoint (I : IntervalDyadic) : I.lo.toRat ≤ I.midpoint.toRat := by + rw [midpoint_toRat] + linarith [I.le] + +/-- The exact midpoint is at most the upper endpoint. -/ +theorem midpoint_le_hi (I : IntervalDyadic) : I.midpoint.toRat ≤ I.hi.toRat := by + rw [midpoint_toRat] + linarith [I.le] + +/-- Split a dyadic interval into two exact closed halves. -/ +def bisect (I : IntervalDyadic) : IntervalDyadic × IntervalDyadic := + (⟨I.lo, I.midpoint, I.lo_le_midpoint⟩, + ⟨I.midpoint, I.hi, I.midpoint_le_hi⟩) + +/-- A point in the original interval and left of the midpoint is in the left half. -/ +theorem mem_bisect_left {x : ℝ} {I : IntervalDyadic} (hx : x ∈ I) + (hm : x ≤ (I.midpoint.toRat : ℝ)) : x ∈ (I.bisect).1 := by + exact ⟨hx.1, hm⟩ + +/-- A point in the original interval and right of the midpoint is in the right half. -/ +theorem mem_bisect_right {x : ℝ} {I : IntervalDyadic} (hx : x ∈ I) + (hm : (I.midpoint.toRat : ℝ) ≤ x) : x ∈ (I.bisect).2 := by + exact ⟨hm, hx.2⟩ + +/-- Membership in the left half implies membership in the original interval. -/ +theorem mem_of_mem_bisect_left {x : ℝ} {I : IntervalDyadic} + (hx : x ∈ (I.bisect).1) : x ∈ I := by + refine ⟨hx.1, hx.2.trans ?_⟩ + exact_mod_cast I.midpoint_le_hi + +/-- Membership in the right half implies membership in the original interval. -/ +theorem mem_of_mem_bisect_right {x : ℝ} {I : IntervalDyadic} + (hx : x ∈ (I.bisect).2) : x ∈ I := by + refine ⟨?_, hx.2⟩ + exact (by exact_mod_cast I.lo_le_midpoint : (I.lo.toRat : ℝ) ≤ I.midpoint.toRat) |>.trans hx.1 + +/-- The two closed halves cover the original interval, including their shared seam. -/ +theorem mem_bisect_or {x : ℝ} {I : IntervalDyadic} (hx : x ∈ I) : + x ∈ (I.bisect).1 ∨ x ∈ (I.bisect).2 := by + by_cases hm : x ≤ (I.midpoint.toRat : ℝ) + · exact Or.inl (mem_bisect_left hx hm) + · exact Or.inr (mem_bisect_right hx (le_of_lt (not_le.mp hm))) + +/-- Both closed halves contain the midpoint seam. -/ +theorem midpoint_mem_bisect_both (I : IntervalDyadic) : + (I.midpoint.toRat : ℝ) ∈ (I.bisect).1 ∧ + (I.midpoint.toRat : ℝ) ∈ (I.bisect).2 := by + constructor + · exact ⟨by exact_mod_cast I.lo_le_midpoint, le_rfl⟩ + · exact ⟨le_rfl, by exact_mod_cast I.midpoint_le_hi⟩ + +/-- The overlap of the two closed children is exactly their midpoint seam. -/ +theorem bisect_intersection (I : IntervalDyadic) : + I.bisect.1.toSet ∩ I.bisect.2.toSet = {I.midpoint.toReal} := by + ext x + simp only [Set.mem_inter_iff, Set.mem_singleton_iff] + constructor + · intro hx + have hx' : + ((I.lo.toRat : ℝ) ≤ x ∧ x ≤ (I.midpoint.toRat : ℝ)) ∧ + ((I.midpoint.toRat : ℝ) ≤ x ∧ x ≤ (I.hi.toRat : ℝ)) := by + simpa [toSet, bisect, Dyadic.toReal] using hx + exact le_antisymm hx'.1.2 hx'.2.1 + · rintro rfl + simpa [toSet, bisect, Dyadic.toReal] using I.midpoint_mem_bisect_both + +/-- The left child has exactly half the semantic width of its parent. -/ +theorem bisect_left_width_toRat (I : IntervalDyadic) : + I.bisect.1.width.toRat = I.width.toRat / 2 := by + simp only [width_toRat, bisect, midpoint_toRat] + ring + +/-- The right child has exactly half the semantic width of its parent. -/ +theorem bisect_right_width_toRat (I : IntervalDyadic) : + I.bisect.2.width.toRat = I.width.toRat / 2 := by + simp only [width_toRat, bisect, midpoint_toRat] + ring + +/-! ### Outward Rounding -/ + +/-- Outward rounding: enforces a maximum precision (minimum exponent). + +This is the key operation for preventing precision explosion. +`minExp` is the minimum allowed exponent (higher = coarser precision). + +For example, `minExp = -10` ensures all values are multiples of 2^(-10) ≈ 0.001. +-/ +def roundOut (I : IntervalDyadic) (minExp : Int) : IntervalDyadic := + let newLo := I.lo.shiftDown minExp + let newHi := I.hi.shiftUp minExp + ⟨newLo, newHi, by + -- Proof: newLo ≤ I.lo ≤ I.hi ≤ newHi + have h1 : newLo.toRat ≤ I.lo.toRat := Dyadic.toRat_shiftDown_le I.lo minExp + have h2 : I.lo.toRat ≤ I.hi.toRat := I.le + have h3 : I.hi.toRat ≤ newHi.toRat := Dyadic.toRat_shiftUp_ge I.hi minExp + linarith⟩ + +/-- roundOut produces an interval containing the original -/ +theorem roundOut_contains {x : ℝ} {I : IntervalDyadic} (hx : x ∈ I) (minExp : Int) : + x ∈ I.roundOut minExp := by + simp only [mem_def] at * + constructor + · have h := Dyadic.toRat_shiftDown_le I.lo minExp + have h' : ((I.lo.shiftDown minExp).toRat : ℝ) ≤ (I.lo.toRat : ℝ) := by exact_mod_cast h + calc ((I.roundOut minExp).lo.toRat : ℝ) = ((I.lo.shiftDown minExp).toRat : ℝ) := by rfl + _ ≤ (I.lo.toRat : ℝ) := h' + _ ≤ x := hx.1 + · have h := Dyadic.toRat_shiftUp_ge I.hi minExp + have h' : (I.hi.toRat : ℝ) ≤ ((I.hi.shiftUp minExp).toRat : ℝ) := by exact_mod_cast h + calc x ≤ (I.hi.toRat : ℝ) := hx.2 + _ ≤ ((I.hi.shiftUp minExp).toRat : ℝ) := h' + _ = ((I.roundOut minExp).hi.toRat : ℝ) := by rfl + +/-! ### Interval Negation -/ + +/-- Negate an interval -/ +def neg (I : IntervalDyadic) : IntervalDyadic where + lo := I.hi.neg + hi := I.lo.neg + le := by + simp only [Dyadic.toRat_neg] + linarith [I.le] + +/-- FTIA for negation -/ +theorem mem_neg {x : ℝ} {I : IntervalDyadic} (hx : x ∈ I) : -x ∈ neg I := by + simp only [mem_def] at * + simp only [neg, Dyadic.toRat_neg, Rat.cast_neg] + constructor <;> linarith + +/-! ### Interval Addition -/ + +/-- Add two intervals -/ +def add (I J : IntervalDyadic) : IntervalDyadic where + lo := I.lo.add J.lo + hi := I.hi.add J.hi + le := by + simp only [Dyadic.toRat_add] + linarith [I.le, J.le] + +/-- FTIA for addition -/ +theorem mem_add {x y : ℝ} {I J : IntervalDyadic} (hx : x ∈ I) (hy : y ∈ J) : + x + y ∈ add I J := by + simp only [mem_def] at * + simp only [add, Dyadic.toRat_add, Rat.cast_add] + constructor <;> linarith + +/-- Add with precision control -/ +def addRounded (I J : IntervalDyadic) (prec : Int := -53) : IntervalDyadic := + (add I J).roundOut prec + +/-! ### Interval Subtraction -/ + +/-- Subtract two intervals -/ +def sub (I J : IntervalDyadic) : IntervalDyadic := add I (neg J) + +/-- FTIA for subtraction -/ +theorem mem_sub {x y : ℝ} {I J : IntervalDyadic} (hx : x ∈ I) (hy : y ∈ J) : + x - y ∈ sub I J := by + simp only [sub_eq_add_neg] + exact mem_add hx (mem_neg hy) + +/-! ### Interval Multiplication -/ + +/-- Multiply two intervals. + +Uses min/max of all four endpoint products to handle signs correctly. +This is the exact multiplication - mantissas may grow. Use `mulRounded` or +`mulNormalized` for controlled precision. + +Correctness: For x ∈ [a,b] and y ∈ [c,d], the product x*y lies in the interval +[min(ac,ad,bc,bd), max(ac,ad,bc,bd)]. -/ +def mul (I J : IntervalDyadic) : IntervalDyadic := + let v1 := I.lo.mul J.lo + let v2 := I.lo.mul J.hi + let v3 := I.hi.mul J.lo + let v4 := I.hi.mul J.hi + ⟨Dyadic.min4 v1 v2 v3 v4, Dyadic.max4 v1 v2 v3 v4, Dyadic.min4_le_max4 v1 v2 v3 v4⟩ + +/-- Fast interval multiplication using sign-based case splitting. + Reduces from 4 multiplications + 12 comparisons to 2 multiplications + in the common case (both intervals positive or both negative). + Falls back to the full 4-way product for mixed-sign intervals. -/ +def mulFast (I J : IntervalDyadic) : IntervalDyadic := + if hI : Dyadic.le 0 I.lo then + if hJ : Dyadic.le 0 J.lo then + ⟨I.lo.mul J.lo, I.hi.mul J.hi, by + simp only [Dyadic.toRat_mul] + have := (Dyadic.le_iff_toRat_le 0 I.lo).mp hI + have := (Dyadic.le_iff_toRat_le 0 J.lo).mp hJ + simp only [Dyadic.toRat_zero] at * + nlinarith [I.le, J.le]⟩ + else if hJ2 : Dyadic.le J.hi 0 then + ⟨I.hi.mul J.lo, I.lo.mul J.hi, by + simp only [Dyadic.toRat_mul] + have := (Dyadic.le_iff_toRat_le 0 I.lo).mp hI + have := (Dyadic.le_iff_toRat_le J.hi 0).mp hJ2 + simp only [Dyadic.toRat_zero] at * + nlinarith [I.le, J.le]⟩ + else + ⟨I.hi.mul J.lo, I.hi.mul J.hi, by + simp only [Dyadic.toRat_mul] + have := (Dyadic.le_iff_toRat_le 0 I.lo).mp hI + simp only [Dyadic.toRat_zero] at * + nlinarith [I.le, J.le]⟩ + else if hI2 : Dyadic.le I.hi 0 then + if hJ : Dyadic.le 0 J.lo then + ⟨I.lo.mul J.hi, I.hi.mul J.lo, by + simp only [Dyadic.toRat_mul] + have := (Dyadic.le_iff_toRat_le I.hi 0).mp hI2 + have := (Dyadic.le_iff_toRat_le 0 J.lo).mp hJ + simp only [Dyadic.toRat_zero] at * + nlinarith [I.le, J.le]⟩ + else if hJ2 : Dyadic.le J.hi 0 then + ⟨I.hi.mul J.hi, I.lo.mul J.lo, by + simp only [Dyadic.toRat_mul] + have := (Dyadic.le_iff_toRat_le I.hi 0).mp hI2 + have := (Dyadic.le_iff_toRat_le J.hi 0).mp hJ2 + simp only [Dyadic.toRat_zero] at * + nlinarith [I.le, J.le]⟩ + else + ⟨I.lo.mul J.hi, I.lo.mul J.lo, by + simp only [Dyadic.toRat_mul] + have := (Dyadic.le_iff_toRat_le I.hi 0).mp hI2 + simp only [Dyadic.toRat_zero] at * + nlinarith [I.le, J.le]⟩ + else + if hJ : Dyadic.le 0 J.lo then + ⟨I.lo.mul J.hi, I.hi.mul J.hi, by + simp only [Dyadic.toRat_mul] + have := (Dyadic.le_iff_toRat_le 0 J.lo).mp hJ + simp only [Dyadic.toRat_zero] at * + nlinarith [I.le, J.le]⟩ + else if hJ2 : Dyadic.le J.hi 0 then + ⟨I.hi.mul J.lo, I.lo.mul J.lo, by + simp only [Dyadic.toRat_mul] + have := (Dyadic.le_iff_toRat_le J.hi 0).mp hJ2 + simp only [Dyadic.toRat_zero] at * + nlinarith [I.le, J.le]⟩ + else + mul I J + +/- We intentionally do not attach `mulFast` as a native replacement here. + Native certificate checking should execute the same definition that the + kernel proofs reason about. Keep `mulFast` available only as an internal + candidate for future explicitly-audited runtime backends. -/ + +/-- FTIA for multiplication -/ +theorem mem_mul {x y : ℝ} {I J : IntervalDyadic} (hx : x ∈ I) (hy : y ∈ J) : + x * y ∈ mul I J := by + -- Use IntervalRat.mem_mul and translate the bounds + have hxI := mem_toIntervalRat.mp hx + have hyJ := mem_toIntervalRat.mp hy + have hmul := IntervalRat.mem_mul hxI hyJ + simp only [mem_def, mul] at * + -- hmul has bounds from IntervalRat.mul which are min/max of 4 products + -- Our Dyadic.min4/max4 has the same structure with toRat preserving the products + constructor + · -- Lower bound: Dyadic.min4.toRat equals the rational min4 from hmul + simp only [IntervalRat.mem_def, IntervalRat.mul, toIntervalRat] at hmul + have heq : (Dyadic.min4 (I.lo.mul J.lo) (I.lo.mul J.hi) (I.hi.mul J.lo) (I.hi.mul J.hi)).toRat + = min (min (I.lo.toRat * J.lo.toRat) (I.lo.toRat * J.hi.toRat)) + (min (I.hi.toRat * J.lo.toRat) (I.hi.toRat * J.hi.toRat)) := by + simp only [Dyadic.min4, Dyadic.toRat_mul, Dyadic.min_toRat] + rw [heq] + exact_mod_cast hmul.1 + · -- Upper bound: Dyadic.max4.toRat equals the rational max4 from hmul + simp only [IntervalRat.mem_def, IntervalRat.mul, toIntervalRat] at hmul + have heq : (Dyadic.max4 (I.lo.mul J.lo) (I.lo.mul J.hi) (I.hi.mul J.lo) (I.hi.mul J.hi)).toRat + = max (max (I.lo.toRat * J.lo.toRat) (I.lo.toRat * J.hi.toRat)) + (max (I.hi.toRat * J.lo.toRat) (I.hi.toRat * J.hi.toRat)) := by + simp only [Dyadic.max4, Dyadic.toRat_mul, Dyadic.max_toRat] + rw [heq] + exact_mod_cast hmul.2 + +/-- Dyadic.min4 converts to rational min4 -/ +private theorem min4_toRat (a b c d : Dyadic) : + (Dyadic.min4 a b c d).toRat = IntervalRat.min4 a.toRat b.toRat c.toRat d.toRat := by + simp only [Dyadic.min4, IntervalRat.min4, Dyadic.min_toRat] + +/-- Dyadic.max4 converts to rational max4 -/ +private theorem max4_toRat (a b c d : Dyadic) : + (Dyadic.max4 a b c d).toRat = IntervalRat.max4 a.toRat b.toRat c.toRat d.toRat := by + simp only [Dyadic.max4, IntervalRat.max4, Dyadic.max_toRat] + +/-- Extract 0 ≤ toRat from Dyadic.le 0 d -/ +private theorem toRat_nonneg_of_le {d : Dyadic} (h : Dyadic.le 0 d) : 0 ≤ d.toRat := by + have := (Dyadic.le_iff_toRat_le 0 d).mp h; rwa [Dyadic.toRat_zero] at this + +/-- Extract toRat ≤ 0 from Dyadic.le d 0 -/ +private theorem toRat_nonpos_of_le {d : Dyadic} (h : Dyadic.le d 0) : d.toRat ≤ 0 := by + have := (Dyadic.le_iff_toRat_le d 0).mp h; rwa [Dyadic.toRat_zero] at this + +/-- Extract toRat < 0 from ¬ Dyadic.le 0 d -/ +private theorem toRat_neg_of_not_le {d : Dyadic} (h : ¬ Dyadic.le 0 d) : d.toRat < 0 := by + exact lt_of_not_ge fun h' => h ((Dyadic.le_iff_toRat_le 0 d).mpr (by rwa [Dyadic.toRat_zero])) + +/-- Extract 0 < toRat from ¬ Dyadic.le d 0 -/ +private theorem toRat_pos_of_not_le {d : Dyadic} (h : ¬ Dyadic.le d 0) : 0 < d.toRat := by + exact lt_of_not_ge fun h' => h ((Dyadic.le_iff_toRat_le d 0).mpr (by rwa [Dyadic.toRat_zero])) + +/-- mulFast endpoints match mul endpoints: lo -/ +private theorem mulFast_lo (I J : IntervalDyadic) : (mulFast I J).lo.toRat = (mul I J).lo.toRat := + by + have hrhs : (mul I J).lo.toRat = IntervalRat.min4 + (I.lo.toRat * J.lo.toRat) (I.lo.toRat * J.hi.toRat) + (I.hi.toRat * J.lo.toRat) (I.hi.toRat * J.hi.toRat) := by + simp only [mul, Dyadic.toRat_mul, min4_toRat] + rw [hrhs]; unfold mulFast + split + · rename_i hI + have hIlo := toRat_nonneg_of_le hI + split + · rename_i hJ + have hJlo := toRat_nonneg_of_le hJ + simp only [Dyadic.toRat_mul] + exact IntervalRat.eq_min4_of_le (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · split + · rename_i _ hJ2 + have hJhi := toRat_nonpos_of_le hJ2 + simp only [Dyadic.toRat_mul] + exact IntervalRat.eq_min4_of_le3 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · rename_i hJ hJ2 + have hJlo := le_of_lt (toRat_neg_of_not_le hJ) + have hJhi := le_of_lt (toRat_pos_of_not_le hJ2) + simp only [Dyadic.toRat_mul] + exact IntervalRat.eq_min4_of_le3 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · split + · rename_i _ hI2 + have hIhi := toRat_nonpos_of_le hI2 + split + · rename_i hJ + have hJlo := toRat_nonneg_of_le hJ + simp only [Dyadic.toRat_mul] + exact IntervalRat.eq_min4_of_le2 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · split + · rename_i _ hJ2 + have hJhi := toRat_nonpos_of_le hJ2 + simp only [Dyadic.toRat_mul] + exact IntervalRat.eq_min4_of_le4 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · rename_i hJ hJ2 + have hJlo := le_of_lt (toRat_neg_of_not_le hJ) + have hJhi := le_of_lt (toRat_pos_of_not_le hJ2) + simp only [Dyadic.toRat_mul] + exact IntervalRat.eq_min4_of_le2 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · rename_i hI hI2 + have hIlo := le_of_lt (toRat_neg_of_not_le hI) + have hIhi := le_of_lt (toRat_pos_of_not_le hI2) + split + · rename_i hJ + have hJlo := toRat_nonneg_of_le hJ + simp only [Dyadic.toRat_mul] + exact IntervalRat.eq_min4_of_le2 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · split + · rename_i _ hJ2 + have hJhi := toRat_nonpos_of_le hJ2 + simp only [Dyadic.toRat_mul] + exact IntervalRat.eq_min4_of_le3 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · exact hrhs + +/-- mulFast endpoints match mul endpoints: hi -/ +private theorem mulFast_hi (I J : IntervalDyadic) : (mulFast I J).hi.toRat = (mul I J).hi.toRat := + by + have hrhs : (mul I J).hi.toRat = IntervalRat.max4 + (I.lo.toRat * J.lo.toRat) (I.lo.toRat * J.hi.toRat) + (I.hi.toRat * J.lo.toRat) (I.hi.toRat * J.hi.toRat) := by + simp only [mul, Dyadic.toRat_mul, max4_toRat] + rw [hrhs]; unfold mulFast + split + · rename_i hI + have hIlo := toRat_nonneg_of_le hI + split + · rename_i hJ + have hJlo := toRat_nonneg_of_le hJ + simp only [Dyadic.toRat_mul] + exact IntervalRat.eq_max4_of_ge4 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · split + · rename_i _ hJ2 + have hJhi := toRat_nonpos_of_le hJ2 + simp only [Dyadic.toRat_mul] + exact IntervalRat.eq_max4_of_ge2 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · rename_i hJ hJ2 + have hJlo := le_of_lt (toRat_neg_of_not_le hJ) + have hJhi := le_of_lt (toRat_pos_of_not_le hJ2) + simp only [Dyadic.toRat_mul] + exact IntervalRat.eq_max4_of_ge4 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · split + · rename_i _ hI2 + have hIhi := toRat_nonpos_of_le hI2 + split + · rename_i hJ + have hJlo := toRat_nonneg_of_le hJ + simp only [Dyadic.toRat_mul] + exact IntervalRat.eq_max4_of_ge3 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · split + · rename_i _ hJ2 + have hJhi := toRat_nonpos_of_le hJ2 + simp only [Dyadic.toRat_mul] + exact IntervalRat.eq_max4_of_ge (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · rename_i hJ hJ2 + have hJlo := le_of_lt (toRat_neg_of_not_le hJ) + have hJhi := le_of_lt (toRat_pos_of_not_le hJ2) + simp only [Dyadic.toRat_mul] + exact IntervalRat.eq_max4_of_ge (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · rename_i hI hI2 + have hIlo := le_of_lt (toRat_neg_of_not_le hI) + have hIhi := le_of_lt (toRat_pos_of_not_le hI2) + split + · rename_i hJ + have hJlo := toRat_nonneg_of_le hJ + simp only [Dyadic.toRat_mul] + exact IntervalRat.eq_max4_of_ge4 (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · split + · rename_i _ hJ2 + have hJhi := toRat_nonpos_of_le hJ2 + simp only [Dyadic.toRat_mul] + exact IntervalRat.eq_max4_of_ge (by nlinarith [I.le, J.le]) (by nlinarith [I.le, J.le]) + (by nlinarith [I.le, J.le]) + · exact hrhs + +/-- `mulFast` preserves the containment property of `mul`. + This is retained as documentation and a future audited optimization hook; + production certificate checking currently uses `mul` directly. -/ +theorem mem_mulFast {x y : ℝ} {I J : IntervalDyadic} (hx : x ∈ I) (hy : y ∈ J) : + x * y ∈ mulFast I J := by + simp only [mem_def] + constructor + · rw [mulFast_lo]; exact (mem_mul hx hy).1 + · rw [mulFast_hi]; exact (mem_mul hx hy).2 + +/-- Multiply with precision control (outward rounding) -/ +def mulRounded (I J : IntervalDyadic) (prec : Int := -53) : IntervalDyadic := + (mul I J).roundOut prec + +/-- Multiply with mantissa normalization (prevents bit explosion) -/ +def mulNormalized (I J : IntervalDyadic) (maxBits : Nat := 256) : IntervalDyadic := + let result := mul I J + ⟨result.lo.normalizeDown maxBits, result.hi.normalizeUp maxBits, by + -- Normalization preserves ordering: lo.normalizeDown ≤ lo ≤ hi ≤ hi.normalizeUp + calc (result.lo.normalizeDown maxBits).toRat + ≤ result.lo.toRat := Dyadic.toRat_normalizeDown_le _ _ + _ ≤ result.hi.toRat := result.le + _ ≤ (result.hi.normalizeUp maxBits).toRat := Dyadic.toRat_normalizeUp_ge _ _⟩ + +/-! ### Interval Scaling -/ + +/-- Scale an interval by a constant Dyadic -/ +def scale (I : IntervalDyadic) (c : Dyadic) : IntervalDyadic := + if hc : Dyadic.le Dyadic.zero c then + ⟨I.lo.mul c, I.hi.mul c, by + rw [Dyadic.toRat_mul, Dyadic.toRat_mul] + have hcnn : 0 ≤ c.toRat := by + have := Dyadic.le_iff_toRat_le Dyadic.zero c |>.mp hc + have hz : Dyadic.zero.toRat = 0 := Dyadic.toRat_zero + rw [hz] at this; exact this + exact mul_le_mul_of_nonneg_right I.le hcnn⟩ + else + ⟨I.hi.mul c, I.lo.mul c, by + rw [Dyadic.toRat_mul, Dyadic.toRat_mul] + have hcneg : c.toRat < 0 := by + have hf := Dyadic.le_iff_toRat_le Dyadic.zero c + have hz : Dyadic.zero.toRat = 0 := Dyadic.toRat_zero + rw [hz] at hf + by_contra! hge + exact hc (hf.mpr hge) + exact mul_le_mul_of_nonpos_right I.le (le_of_lt hcneg)⟩ + +/-- Scale by a power of 2 (very efficient: just adjusts exponents) -/ +def scale2 (I : IntervalDyadic) (n : Int) : IntervalDyadic := + ⟨I.lo.scale2 n, I.hi.scale2 n, Dyadic.toRat_scale2_le_scale2 I.lo I.hi n I.le⟩ + +/-! ### Square Root -/ + +/-- Square root of an interval. + Returns a conservative bound [0, max(hi, 1)]. + This is sound because: + - sqrt(x) = 0 for x < 0 (by definition in Mathlib) + - sqrt(x) ≥ 0 for all x + - sqrt(x) ≤ max(x, 1) for x ≥ 0 + Therefore for any x ∈ [lo, hi], sqrt(x) ∈ [0, max(hi, 1)]. -/ +def sqrt (I : IntervalDyadic) (_prec : Int := -53) : IntervalDyadic := + -- Conservative bound: [0, max(hi, 1)] + -- sqrt(x) ≥ 0 for all x (including negative where sqrt returns 0) + -- sqrt(x) ≤ max(x, 1) for x ≥ 0 + -- sqrt(x) = 0 ≤ max(hi, 1) for x < 0 + let one := Dyadic.ofInt 1 + let hi_bound := Dyadic.max I.hi one + ⟨Dyadic.zero, hi_bound, by + have hz : Dyadic.zero.toRat = 0 := Dyadic.toRat_zero + rw [Dyadic.max_toRat, Dyadic.toRat_ofInt, hz] + exact le_max_of_le_right (by norm_num : (0 : ℚ) ≤ 1)⟩ + +/-- sqrt(x) ≤ max(x, 1) for all x ≥ 0 -/ +private theorem sqrt_le_max_one {x : ℝ} (hx : 0 ≤ x) : Real.sqrt x ≤ max x 1 := by + by_cases! h : x ≤ 1 + · -- Case x ≤ 1: sqrt(x) ≤ 1 ≤ max(x, 1) + -- sqrt(x) ≤ 1 when x ≤ 1 because sqrt(x)^2 = x ≤ 1 and sqrt(x) ≥ 0 + have hsqrt_le_one : Real.sqrt x ≤ 1 := by + rw [← Real.sqrt_one] + exact Real.sqrt_le_sqrt h + calc Real.sqrt x ≤ 1 := hsqrt_le_one + _ ≤ max x 1 := le_max_right x 1 + · -- Case x > 1: sqrt(x) ≤ x = max(x, 1) + -- sqrt(x) ≤ x for x ≥ 1 follows from sqrt(x) * sqrt(x) = x and sqrt(x) ≥ 1 + have h1 : 1 ≤ Real.sqrt x := by + rw [← Real.sqrt_one] + exact Real.sqrt_le_sqrt (le_of_lt h) + have hsqrt_le_x : Real.sqrt x ≤ x := by + calc Real.sqrt x = Real.sqrt x * 1 := by ring + _ ≤ Real.sqrt x * Real.sqrt x := mul_le_mul_of_nonneg_left h1 (Real.sqrt_nonneg x) + _ = x := by rw [← sq, Real.sq_sqrt hx] + calc Real.sqrt x ≤ x := hsqrt_le_x + _ ≤ max x 1 := le_max_left x 1 + +/-- Soundness of interval sqrt: if x ∈ I, x ≥ 0, then Real.sqrt x ∈ sqrt I -/ +theorem mem_sqrt {x : ℝ} {I : IntervalDyadic} (hx : x ∈ I) (hx_nn : 0 ≤ x) (prec : Int) : + Real.sqrt x ∈ sqrt I prec := by + simp only [sqrt, mem_def, Dyadic.max_toRat, Dyadic.toRat_ofInt] + have hz : Dyadic.zero.toRat = 0 := Dyadic.toRat_zero + constructor + · -- Lower bound: 0 ≤ sqrt(x) + simp only [hz, Rat.cast_zero] + exact Real.sqrt_nonneg x + · -- Upper bound: sqrt(x) ≤ max(hi, 1) + have hhi_ge : x ≤ (I.hi.toRat : ℝ) := hx.2 + calc Real.sqrt x + ≤ max x 1 := sqrt_le_max_one hx_nn + _ ≤ max (I.hi.toRat : ℝ) 1 := max_le_max_right 1 hhi_ge + _ = (↑(max I.hi.toRat 1) : ℝ) := by simp [Rat.cast_max] + +/-- General soundness of interval sqrt for any real input. + Handles both non-negative inputs and negative inputs (where Real.sqrt returns 0). -/ +theorem mem_sqrt' {x : ℝ} {I : IntervalDyadic} (hx : x ∈ I) (prec : Int) : + Real.sqrt x ∈ sqrt I prec := by + rcases le_or_gt 0 x with hx_nn | hx_neg + · -- Non-negative case + exact mem_sqrt hx hx_nn prec + · -- Negative case: sqrt(x) = 0 for x < 0 + have hsqrt_zero : Real.sqrt x = 0 := Real.sqrt_eq_zero'.mpr (le_of_lt hx_neg) + simp only [sqrt, mem_def, Dyadic.max_toRat, Dyadic.toRat_ofInt, hsqrt_zero] + have hz : Dyadic.zero.toRat = 0 := Dyadic.toRat_zero + simp only [hz, Rat.cast_zero, Rat.cast_max] + constructor + · norm_num + · apply le_max_of_le_right + norm_num + +/-! ### Comparison and Containment -/ + +/-- Check if interval contains zero -/ +def containsZero (I : IntervalDyadic) : Bool := + Dyadic.le I.lo Dyadic.zero && Dyadic.le Dyadic.zero I.hi + +/-- Check if entire interval is positive -/ +def isPositive (I : IntervalDyadic) : Bool := + Dyadic.lt Dyadic.zero I.lo + +/-- Check if entire interval is negative -/ +def isNegative (I : IntervalDyadic) : Bool := + Dyadic.lt I.hi Dyadic.zero + +/-- Check if I ⊆ J -/ +def subset (I J : IntervalDyadic) : Bool := + Dyadic.le J.lo I.lo && Dyadic.le I.hi J.hi + +/-- Check if the upper bound is ≤ a rational -/ +def upperBoundedBy (I : IntervalDyadic) (q : ℚ) : Bool := + I.hi.toRat ≤ q + +/-- Check if a rational is ≤ the lower bound -/ +def lowerBoundedBy (I : IntervalDyadic) (q : ℚ) : Bool := + q ≤ I.lo.toRat + +/-- Upper bound extraction from membership -/ +theorem le_hi_of_mem {x : ℝ} {I : IntervalDyadic} (hx : x ∈ I) : + x ≤ (I.hi.toRat : ℝ) := hx.2 + +/-- Lower bound extraction from membership -/ +theorem lo_le_of_mem {x : ℝ} {I : IntervalDyadic} (hx : x ∈ I) : + (I.lo.toRat : ℝ) ≤ x := hx.1 + +/-- What upperBoundedBy means: the interval's hi endpoint is ≤ q -/ +theorem upperBoundedBy_spec {I : IntervalDyadic} {q : ℚ} + (h : I.upperBoundedBy q = true) : (I.hi.toRat : ℝ) ≤ q := by + simp only [upperBoundedBy, decide_eq_true_eq] at h + exact_mod_cast h + +/-- What lowerBoundedBy means: q is ≤ the interval's lo endpoint -/ +theorem lowerBoundedBy_spec {I : IntervalDyadic} {q : ℚ} + (h : I.lowerBoundedBy q = true) : (q : ℝ) ≤ I.lo.toRat := by + simp only [lowerBoundedBy, decide_eq_true_eq] at h + exact_mod_cast h + +/-! ### Helper for Transcendentals -/ + +/-- Convert from IntervalRat (for transcendental results) -/ +def ofIntervalRat (I : IntervalRat) (prec : Int := -53) : IntervalDyadic := + -- Convert Rat endpoints to Dyadic with outward rounding + -- For simplicity, we use a conservative conversion + let lo := Dyadic.ofInt (Int.floor (I.lo * (2 ^ (-prec).toNat))) + let loD := lo.scale2 prec + let hi := Dyadic.ofInt (Int.ceil (I.hi * (2 ^ (-prec).toNat))) + let hiD := hi.scale2 prec + ⟨loD, hiD, by + -- Need: loD.toRat ≤ hiD.toRat + -- loD.toRat = floor(I.lo * 2^n) * 2^prec + -- hiD.toRat = ceil(I.hi * 2^n) * 2^prec + -- This follows from: floor(I.lo * 2^n) ≤ ceil(I.hi * 2^n) + -- Which is: floor(I.lo * 2^n) ≤ I.lo * 2^n ≤ I.hi * 2^n ≤ ceil(I.hi * 2^n) + apply Dyadic.toRat_scale2_le_scale2 + rw [Dyadic.toRat_ofInt, Dyadic.toRat_ofInt] + have hle : I.lo ≤ I.hi := I.le + have hscale_pos : (0 : ℚ) < (2 : ℚ) ^ (-prec).toNat := pow_pos (by norm_num : (0 : ℚ) < 2) _ + calc (⌊I.lo * (2 : ℚ) ^ (-prec).toNat⌋ : ℚ) + ≤ I.lo * (2 : ℚ) ^ (-prec).toNat := Int.floor_le _ + _ ≤ I.hi * (2 : ℚ) ^ (-prec).toNat := mul_le_mul_of_nonneg_right hle (le_of_lt hscale_pos) + _ ≤ ⌈I.hi * (2 : ℚ) ^ (-prec).toNat⌉ := Int.le_ceil _⟩ + +/-- If x ∈ IntervalRat I, then x ∈ ofIntervalRat I prec (outward rounding preserves membership). + Requires precision ≤ 0 (e.g. -53). -/ +theorem mem_ofIntervalRat {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (prec : Int) + (hprec : prec ≤ 0 := by norm_num) : + x ∈ ofIntervalRat I prec := by + -- The conversion uses floor/ceil which provides outward rounding: + -- floor(lo * 2^n) * 2^(-n) ≤ lo ≤ x ≤ hi ≤ ceil(hi * 2^n) * 2^(-n) + -- This follows from floor(a) ≤ a and a ≤ ceil(a), combined with + -- the fact that multiplying by 2^(-n) when prec = -n cancels the 2^n factor. + simp only [mem_def, ofIntervalRat, IntervalRat.mem_def] at * + have h2n_pos : (0 : ℚ) < (2 : ℚ) ^ (-prec).toNat := pow_pos (by norm_num) _ + have hfloor : (⌊I.lo * (2 : ℚ) ^ (-prec).toNat⌋ : ℚ) ≤ I.lo * (2 : ℚ) ^ (-prec).toNat := + Int.floor_le _ + have hceil : I.hi * (2 : ℚ) ^ (-prec).toNat ≤ (⌈I.hi * (2 : ℚ) ^ (-prec).toNat⌉ : ℚ) := + Int.le_ceil _ + have hzpow_pos : (0 : ℚ) < (2 : ℚ) ^ prec := zpow_pos (by norm_num) _ + -- Key: 2^(-prec).toNat * 2^prec = 1 when prec ≤ 0 (so (-prec).toNat = -prec) + have hcancel : (2 : ℚ) ^ (-prec).toNat * (2 : ℚ) ^ prec = 1 := by + set n := (-prec).toNat with hn_def + have hprec_eq : prec = -(n : ℤ) := by omega + rw [hprec_eq, zpow_neg, zpow_natCast] + exact mul_inv_cancel₀ (ne_of_gt h2n_pos) + constructor + · -- Lower bound + rw [Dyadic.toRat_scale2, Dyadic.toRat_ofInt] + have hle : (⌊I.lo * (2 : ℚ) ^ (-prec).toNat⌋ : ℚ) * (2 : ℚ) ^ prec ≤ I.lo := by + calc (⌊I.lo * (2 : ℚ) ^ (-prec).toNat⌋ : ℚ) * (2 : ℚ) ^ prec + ≤ (I.lo * (2 : ℚ) ^ (-prec).toNat) * (2 : ℚ) ^ prec := by + apply mul_le_mul_of_nonneg_right hfloor (le_of_lt hzpow_pos) + _ = I.lo * ((2 : ℚ) ^ (-prec).toNat * (2 : ℚ) ^ prec) := by ring + _ = I.lo * 1 := by rw [hcancel] + _ = I.lo := by ring + exact le_trans (by exact_mod_cast hle) hx.1 + · -- Upper bound + rw [Dyadic.toRat_scale2, Dyadic.toRat_ofInt] + have hle : I.hi ≤ (⌈I.hi * (2 : ℚ) ^ (-prec).toNat⌉ : ℚ) * (2 : ℚ) ^ prec := by + calc I.hi = I.hi * 1 := by ring + _ = I.hi * ((2 : ℚ) ^ (-prec).toNat * (2 : ℚ) ^ prec) := by rw [hcancel] + _ = (I.hi * (2 : ℚ) ^ (-prec).toNat) * (2 : ℚ) ^ prec := by ring + _ ≤ (⌈I.hi * (2 : ℚ) ^ (-prec).toNat⌉ : ℚ) * (2 : ℚ) ^ prec := by + apply mul_le_mul_of_nonneg_right hceil (le_of_lt hzpow_pos) + exact le_trans hx.2 (by exact_mod_cast hle) + +end IntervalDyadic +end LeanCert.Core + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Intervals with Real Endpoints + +This file defines `IntervalReal`, an interval type with real (ℝ) endpoints. +Unlike `IntervalRat` (which has rational endpoints and is suitable for computation), +`IntervalReal` allows us to represent intervals involving transcendental values +like `[1, Real.exp 1]` or `[Real.log 2, π]`. + +## Main definitions + +* `IntervalReal` - Intervals with real endpoints +* `expInterval` - Interval bound for exp +* `logInterval` - Interval bound for log (on positive intervals) + +## Main theorems + +* `mem_expInterval` - FTIA for exp: if x ∈ I, then exp(x) ∈ expInterval(I) + +## Design notes + +This type complements `IntervalRat` for proving facts about transcendental functions. +While `IntervalRat` is used for numerical computation (since rationals are computable), +`IntervalReal` is used for correctness proofs involving exp, log, etc. + +Typical workflow: +1. Use `IntervalRat` for actual interval arithmetic computations +2. Convert to `IntervalReal` when proving facts about transcendental functions +3. Use mathlib's analysis lemmas directly on real intervals +-/ + +@[expose] public section + +namespace LeanCert.Core + +/-- An interval with real endpoints -/ +structure IntervalReal where + /-- Lower endpoint of the interval. -/ + lo : ℝ + /-- Upper endpoint of the interval. -/ + hi : ℝ + le : lo ≤ hi + +namespace IntervalReal + +/-- The set of reals contained in this interval -/ +def toSet (I : IntervalReal) : Set ℝ := Set.Icc I.lo I.hi + +/-- Membership in an interval -/ +instance : Membership ℝ IntervalReal where + mem I x := I.lo ≤ x ∧ x ≤ I.hi + +@[simp] +theorem mem_def (x : ℝ) (I : IntervalReal) : x ∈ I ↔ I.lo ≤ x ∧ x ≤ I.hi := + Iff.rfl + +theorem mem_toSet_iff (x : ℝ) (I : IntervalReal) : x ∈ I.toSet ↔ x ∈ I := by + simp only [toSet, Set.mem_Icc, mem_def] + +/-- Create an interval from a single real -/ +def singleton (r : ℝ) : IntervalReal := ⟨r, r, le_refl r⟩ + +theorem mem_singleton (r : ℝ) : r ∈ singleton r := ⟨le_refl r, le_refl r⟩ + +/-- Convert from IntervalRat to IntervalReal -/ +def ofRat (I : IntervalRat) : IntervalReal where + lo := I.lo + hi := I.hi + le := by exact_mod_cast I.le + +theorem mem_ofRat {x : ℝ} {I : IntervalRat} (hx : x ∈ I) : x ∈ ofRat I := by + simp only [mem_def, ofRat] at * + exact hx + +/-! ### Interval addition -/ + +/-- Add two intervals -/ +def add (I J : IntervalReal) : IntervalReal where + lo := I.lo + J.lo + hi := I.hi + J.hi + le := by linarith [I.le, J.le] + +/-- FTIA for addition -/ +theorem mem_add {x y : ℝ} {I J : IntervalReal} (hx : x ∈ I) (hy : y ∈ J) : + x + y ∈ add I J := by + simp only [mem_def] at * + simp only [add] + constructor <;> linarith + +/-! ### Interval negation -/ + +/-- Negate an interval -/ +def neg (I : IntervalReal) : IntervalReal where + lo := -I.hi + hi := -I.lo + le := by linarith [I.le] + +/-- FTIA for negation -/ +theorem mem_neg {x : ℝ} {I : IntervalReal} (hx : x ∈ I) : -x ∈ neg I := by + simp only [mem_def] at * + simp only [neg] + constructor <;> linarith + +/-! ### Interval multiplication -/ + +/-- The minimum of four real endpoints, used for interval multiplication. -/ +def min4 (a b c d : ℝ) : ℝ := min (min a b) (min c d) +/-- The maximum of four real endpoints, used for interval multiplication. -/ +def max4 (a b c d : ℝ) : ℝ := max (max a b) (max c d) + +/-- Multiply two intervals -/ +def mul (I J : IntervalReal) : IntervalReal where + lo := min4 (I.lo * J.lo) (I.lo * J.hi) (I.hi * J.lo) (I.hi * J.hi) + hi := max4 (I.lo * J.lo) (I.lo * J.hi) (I.hi * J.lo) (I.hi * J.hi) + le := by + simp only [min4, max4] + exact le_trans (min_le_of_left_le (min_le_left _ _)) + (le_max_of_le_left (le_max_left _ _)) + +/-! ### Exponential interval -/ + +/-- Interval bound for exp. + Since exp is strictly increasing, exp([a,b]) = [exp(a), exp(b)]. -/ +noncomputable def expInterval (I : IntervalReal) : IntervalReal where + lo := Real.exp I.lo + hi := Real.exp I.hi + le := Real.exp_le_exp.mpr I.le + +/-- FTIA for exp: if x ∈ [a,b], then exp(x) ∈ [exp(a), exp(b)]. + This is FULLY PROVED - no sorry, no axioms. -/ +theorem mem_expInterval {x : ℝ} {I : IntervalReal} (hx : x ∈ I) : + Real.exp x ∈ expInterval I := by + simp only [mem_def] at * + simp only [expInterval] + constructor + · exact Real.exp_le_exp.mpr hx.1 + · exact Real.exp_le_exp.mpr hx.2 + +/-! ### Logarithm interval (for positive intervals) -/ + +/-- An interval that is strictly positive -/ +structure IntervalRealPos extends IntervalReal where + lo_pos : 0 < toIntervalReal.lo + +/-- Interval bound for log on positive intervals. + Since log is strictly increasing on (0, ∞), log([a,b]) = [log(a), log(b)] for a > 0. -/ +noncomputable def logInterval (I : IntervalRealPos) : IntervalReal where + lo := Real.log I.lo + hi := Real.log I.hi + le := Real.log_le_log I.lo_pos I.le + +/-- FTIA for log: if x ∈ [a,b] with a > 0, then log(x) ∈ [log(a), log(b)]. + This is FULLY PROVED - no sorry, no axioms. -/ +theorem mem_logInterval {x : ℝ} {I : IntervalRealPos} (hx : x ∈ I.toIntervalReal) : + Real.log x ∈ logInterval I := by + simp only [mem_def] at * + simp only [logInterval] + have hx_pos : 0 < x := lt_of_lt_of_le I.lo_pos hx.1 + constructor + · exact Real.log_le_log I.lo_pos hx.1 + · exact Real.log_le_log hx_pos hx.2 + +/-! ### Trigonometric intervals (global bounds) -/ + +/-- Interval bound for sin. Since |sin x| ≤ 1 for all x, we use [-1, 1]. -/ +def sinInterval (_I : IntervalReal) : IntervalReal := + ⟨-1, 1, by norm_num⟩ + +/-- FTIA for sin -/ +theorem mem_sinInterval {x : ℝ} {I : IntervalReal} (_hx : x ∈ I) : + Real.sin x ∈ sinInterval I := by + simp only [mem_def, sinInterval] + have h := Real.sin_mem_Icc x + simp only [Set.mem_Icc] at h + exact h + +/-- Interval bound for cos. Since |cos x| ≤ 1 for all x, we use [-1, 1]. -/ +def cosInterval (_I : IntervalReal) : IntervalReal := + ⟨-1, 1, by norm_num⟩ + +/-- FTIA for cos -/ +theorem mem_cosInterval {x : ℝ} {I : IntervalReal} (_hx : x ∈ I) : + Real.cos x ∈ cosInterval I := by + simp only [mem_def, cosInterval] + have h := Real.cos_mem_Icc x + simp only [Set.mem_Icc] at h + exact h + +/-- Interval bound for atan. Since arctan x ∈ (-π/2, π/2) ⊂ [-2, 2] for all x. -/ +def atanInterval (_I : IntervalReal) : IntervalReal := + ⟨-2, 2, by norm_num⟩ + +/-- FTIA for atan -/ +theorem mem_atanInterval {x : ℝ} {I : IntervalReal} (_hx : x ∈ I) : + Real.arctan x ∈ atanInterval I := by + simp only [mem_def, atanInterval] + constructor + · have := Real.neg_pi_div_two_lt_arctan x + have hpi : Real.pi < 4 := Real.pi_lt_four + linarith + · have := Real.arctan_lt_pi_div_two x + have hpi : Real.pi < 4 := Real.pi_lt_four + linarith + +/-- The derivative of arsinh is bounded by 1: |arsinh'(x)| = 1/√(1+x²) ≤ 1 -/ +private theorem arsinh_deriv_abs_le_one (x : ℝ) : |deriv Real.arsinh x| ≤ 1 := by + have hderiv : deriv Real.arsinh x = (Real.sqrt (1 + x ^ 2))⁻¹ := + (Real.hasDerivAt_arsinh x).deriv + rw [hderiv] + have hsqrt_ge_one : Real.sqrt (1 + x ^ 2) ≥ 1 := by + have h1 : 1 + x ^ 2 ≥ 1 := by nlinarith [sq_nonneg x] + calc Real.sqrt (1 + x ^ 2) ≥ Real.sqrt 1 := Real.sqrt_le_sqrt h1 + _ = 1 := Real.sqrt_one + have hsqrt_pos : 0 < Real.sqrt (1 + x ^ 2) := by + apply Real.sqrt_pos.mpr + nlinarith [sq_nonneg x] + rw [abs_inv, abs_of_pos hsqrt_pos] + exact inv_le_one_of_one_le₀ hsqrt_ge_one + +/-- |arsinh x| ≤ |x| for all x. This follows from MVT and |arsinh'| ≤ 1. -/ +theorem abs_arsinh_le_abs (x : ℝ) : |Real.arsinh x| ≤ |x| := by + rcases le_or_gt 0 x with hx | hx + · -- Case x ≥ 0: arsinh x ≥ 0 by monotonicity of arsinh + rcases eq_or_lt_of_le hx with rfl | hx_pos + · -- x = 0 + simp [Real.arsinh_zero] + · -- x > 0 + have harsinh_nonneg : 0 ≤ Real.arsinh x := Real.arsinh_nonneg_iff.mpr (le_of_lt hx_pos) + have hcont : ContinuousOn Real.arsinh (Set.Icc 0 x) := + Real.continuous_arsinh.continuousOn + have hdiff : DifferentiableOn ℝ Real.arsinh (Set.Ioo 0 x) := + Real.differentiable_arsinh.differentiableOn + obtain ⟨c, ⟨_, _⟩, hc_eq⟩ := exists_deriv_eq_slope Real.arsinh hx_pos hcont hdiff + simp only [Real.arsinh_zero, sub_zero] at hc_eq + have hderiv_bound : |deriv Real.arsinh c| ≤ 1 := arsinh_deriv_abs_le_one c + rw [abs_of_nonneg harsinh_nonneg, abs_of_pos hx_pos] + have heq : Real.arsinh x = deriv Real.arsinh c * x := by rw [hc_eq]; field_simp + calc Real.arsinh x = deriv Real.arsinh c * x := heq + _ ≤ |deriv Real.arsinh c * x| := le_abs_self _ + _ = |deriv Real.arsinh c| * |x| := abs_mul _ _ + _ ≤ 1 * x := by rw [abs_of_pos hx_pos]; nlinarith [abs_nonneg x, hderiv_bound] + _ = x := one_mul _ + · -- Case x < 0: use oddness arsinh(-x) = -arsinh(x) + have hx_neg : -x > 0 := by linarith + -- For x < 0, arsinh x < 0 (arsinh is strictly increasing, arsinh 0 = 0) + have harsinh_neg : Real.arsinh x < 0 := Real.arsinh_neg_iff.mpr hx + have harsinh_neg_nonneg : 0 ≤ Real.arsinh (-x) := Real.arsinh_nonneg_iff.mpr (by linarith) + -- Use the positive case on -x + have hcont : ContinuousOn Real.arsinh (Set.Icc 0 (-x)) := + Real.continuous_arsinh.continuousOn + have hdiff : DifferentiableOn ℝ Real.arsinh (Set.Ioo 0 (-x)) := + Real.differentiable_arsinh.differentiableOn + obtain ⟨c, ⟨_, _⟩, hc_eq⟩ := exists_deriv_eq_slope Real.arsinh hx_neg hcont hdiff + simp only [Real.arsinh_zero, sub_zero] at hc_eq + have hderiv_bound : |deriv Real.arsinh c| ≤ 1 := arsinh_deriv_abs_le_one c + rw [abs_of_neg harsinh_neg, abs_of_neg hx] + have heq : Real.arsinh (-x) = deriv Real.arsinh c * (-x) := by + have hne : (-x) ≠ 0 := ne_of_gt hx_neg + have : deriv Real.arsinh c * (-x) = (Real.arsinh (-x) / (-x)) * (-x) := by rw [hc_eq] + rw [this, div_mul_cancel₀ _ hne] + calc -Real.arsinh x = Real.arsinh (-x) := by rw [Real.arsinh_neg] + _ = deriv Real.arsinh c * (-x) := heq + _ ≤ |deriv Real.arsinh c * (-x)| := le_abs_self _ + _ = |deriv Real.arsinh c| * |-x| := abs_mul _ _ + _ ≤ 1 * (-x) := by rw [abs_of_pos hx_neg]; nlinarith [abs_nonneg (-x), hderiv_bound] + _ = -x := one_mul _ + +/-- Interval bound for arsinh. Uses a conservative bound based on input interval. -/ +def arsinhInterval (I : IntervalReal) : IntervalReal := + -- arsinh is monotonic, so we just apply it to endpoints + -- Using conservative bound: |arsinh x| ≤ |x|, plus margin of 1 for safety + let bound := max (|I.lo|) (|I.hi|) + 1 + ⟨-bound, bound, by + have h3 : (0 : ℝ) ≤ max (|I.lo|) (|I.hi|) := le_max_of_le_left (abs_nonneg I.lo) + change -(max (|I.lo|) (|I.hi|) + 1) ≤ max (|I.lo|) (|I.hi|) + 1 + linarith⟩ + +/-- FTIA for arsinh -/ +theorem mem_arsinhInterval {x : ℝ} {I : IntervalReal} (hx : x ∈ I) : + Real.arsinh x ∈ arsinhInterval I := by + unfold arsinhInterval + simp only [mem_def] + have habs : |Real.arsinh x| ≤ max (|I.lo|) (|I.hi|) + 1 := by + have h1 : |Real.arsinh x| ≤ |x| := abs_arsinh_le_abs x + have h2 : |x| ≤ max (|I.lo|) (|I.hi|) := by + simp only [IntervalReal.mem_def] at hx + rcases le_or_gt x 0 with hxneg | hxpos + · rw [abs_of_nonpos hxneg] + calc -x ≤ -I.lo := by linarith [hx.1] + _ ≤ |I.lo| := neg_le_abs I.lo + _ ≤ max (|I.lo|) (|I.hi|) := le_max_left _ _ + · rw [abs_of_pos hxpos] + calc x ≤ I.hi := hx.2 + _ ≤ |I.hi| := le_abs_self I.hi + _ ≤ max (|I.lo|) (|I.hi|) := le_max_right _ _ + linarith + constructor + · have := neg_abs_le (Real.arsinh x) + linarith + · have := le_abs_self (Real.arsinh x) + linarith + +/-! ### Hyperbolic function intervals -/ + +/-- Interval bound for sinh. + Since sinh is strictly monotonic increasing, sinh([a,b]) = [sinh(a), sinh(b)]. -/ +noncomputable def sinhInterval (I : IntervalReal) : IntervalReal where + lo := Real.sinh I.lo + hi := Real.sinh I.hi + le := Real.sinh_le_sinh.mpr I.le + +/-- FTIA for sinh: if x ∈ [a,b], then sinh(x) ∈ [sinh(a), sinh(b)]. + This is FULLY PROVED - no sorry, no axioms. -/ +theorem mem_sinhInterval {x : ℝ} {I : IntervalReal} (hx : x ∈ I) : + Real.sinh x ∈ sinhInterval I := by + simp only [mem_def] at * + simp only [sinhInterval] + exact ⟨Real.sinh_le_sinh.mpr hx.1, Real.sinh_le_sinh.mpr hx.2⟩ + +/-- Interval bound for cosh. + cosh is convex with minimum at 0: + - If interval is all non-negative: cosh is increasing + - If interval is all non-positive: cosh is decreasing + - If interval contains 0: minimum is cosh(0) = 1, max is at endpoints -/ +noncomputable def coshInterval (I : IntervalReal) : IntervalReal := + if h1 : 0 ≤ I.lo then + -- Interval is [a,b] with 0 ≤ a: cosh increasing, so [cosh(a), cosh(b)] + -- Since 0 ≤ a ≤ b, we have |a| ≤ |b|, so cosh(a) ≤ cosh(b) + ⟨Real.cosh I.lo, Real.cosh I.hi, by + rw [Real.cosh_le_cosh] + rw [abs_of_nonneg h1, abs_of_nonneg (le_trans h1 I.le)] + exact I.le⟩ + else if h2 : I.hi ≤ 0 then + -- Interval is [a,b] with b ≤ 0: cosh decreasing, so [cosh(b), cosh(a)] + -- Since a ≤ b ≤ 0, we have |b| ≤ |a|, so cosh(b) ≤ cosh(a) + ⟨Real.cosh I.hi, Real.cosh I.lo, by + rw [Real.cosh_le_cosh] + have hlo_neg : I.lo < 0 := not_le.mp h1 + rw [abs_of_nonpos h2, abs_of_nonpos (le_of_lt hlo_neg)] + linarith [I.le]⟩ + else + -- Interval contains 0: min is 1, max is max(cosh(lo), cosh(hi)) + ⟨1, max (Real.cosh I.lo) (Real.cosh I.hi), by + have h := Real.one_le_cosh I.lo + exact le_trans h (le_max_left _ _)⟩ + +/-- FTIA for cosh: if x ∈ [a,b], then cosh(x) ∈ coshInterval([a,b]). + This is FULLY PROVED - no sorry, no axioms. -/ +theorem mem_coshInterval {x : ℝ} {I : IntervalReal} (hx : x ∈ I) : + Real.cosh x ∈ coshInterval I := by + simp only [mem_def] at hx + unfold coshInterval + split_ifs with h1 h2 + · -- Case: 0 ≤ I.lo (cosh increasing on [0, ∞)) + simp only [mem_def] + have hx_nonneg : 0 ≤ x := le_trans h1 hx.1 + constructor + · rw [Real.cosh_le_cosh, abs_of_nonneg h1, abs_of_nonneg hx_nonneg] + exact hx.1 + · rw [Real.cosh_le_cosh, abs_of_nonneg hx_nonneg, abs_of_nonneg (le_trans h1 I.le)] + exact hx.2 + · -- Case: I.hi ≤ 0 (cosh decreasing on (-∞, 0]) + simp only [mem_def] + have hx_nonpos : x ≤ 0 := le_trans hx.2 h2 + have hlo_neg : I.lo < 0 := not_le.mp h1 + constructor + · rw [Real.cosh_le_cosh, abs_of_nonpos h2, abs_of_nonpos hx_nonpos] + linarith + · rw [Real.cosh_le_cosh, abs_of_nonpos hx_nonpos, abs_of_nonpos (le_of_lt hlo_neg)] + linarith + · -- Case: interval contains 0 + simp only [mem_def] + push Not at h1 h2 + constructor + · exact Real.one_le_cosh x + · -- cosh(x) ≤ max(cosh(lo), cosh(hi)) + by_cases! hx0 : 0 ≤ x + · -- x ≥ 0: cosh(x) ≤ cosh(hi) since |x| ≤ |hi| + have hle : Real.cosh x ≤ Real.cosh I.hi := by + rw [Real.cosh_le_cosh, abs_of_nonneg hx0, abs_of_pos h2] + exact hx.2 + exact le_trans hle (le_max_right _ _) + · -- x < 0: cosh(x) ≤ cosh(lo) since |x| ≤ |lo| + have hx_nonpos : x ≤ 0 := le_of_lt hx0 + have hle : Real.cosh x ≤ Real.cosh I.lo := by + rw [Real.cosh_le_cosh, abs_of_nonpos hx_nonpos, abs_of_neg h1] + linarith + exact le_trans hle (le_max_left _ _) + +/-! ### Square root interval -/ + +/-- Interval bound for sqrt. + For any interval I, sqrt(x) ∈ [0, max(hi, 1)] for x ∈ I. + This is always sound because: + - sqrt(x) ≥ 0 for all x (Mathlib convention: sqrt(negative) = 0) + - sqrt(x) ≤ max(x, 1) for x ≥ 0, so sqrt(x) ≤ max(hi, 1) -/ +noncomputable def sqrtInterval (I : IntervalReal) : IntervalReal where + lo := 0 + hi := max I.hi 1 + le := le_max_of_le_right zero_le_one + +/-- Helper: sqrt(x) ≤ max(x, 1) for x ≥ 0 -/ +private theorem sqrt_le_max_one {x : ℝ} (hx : 0 ≤ x) : Real.sqrt x ≤ max x 1 := by + rcases le_or_gt x 1 with hle | hgt + · -- x ≤ 1: sqrt(x) ≤ 1 ≤ max(x, 1) + calc Real.sqrt x ≤ Real.sqrt 1 := Real.sqrt_le_sqrt hle + _ = 1 := Real.sqrt_one + _ ≤ max x 1 := le_max_right x 1 + · -- x > 1: sqrt(x) < x ≤ max(x, 1) + have hx_pos : 0 < x := lt_trans zero_lt_one hgt + have hsqrt_pos : 0 < Real.sqrt x := Real.sqrt_pos.mpr hx_pos + have hsqrt_gt_one : 1 < Real.sqrt x := by + rw [← Real.sqrt_one] + exact Real.sqrt_lt_sqrt (by norm_num) hgt + have hsqrt_lt : Real.sqrt x < x := by + have h1 : Real.sqrt x * Real.sqrt x = x := Real.mul_self_sqrt hx + have h2 : Real.sqrt x * 1 < Real.sqrt x * Real.sqrt x := + mul_lt_mul_of_pos_left hsqrt_gt_one hsqrt_pos + simp only [mul_one] at h2 + linarith + calc Real.sqrt x ≤ x := le_of_lt hsqrt_lt + _ ≤ max x 1 := le_max_left x 1 + +/-- FTIA for sqrt: if x ∈ I, then sqrt(x) ∈ sqrtInterval(I). + Works for all x including negative (where sqrt returns 0 by Mathlib convention). -/ +theorem mem_sqrtInterval {x : ℝ} {I : IntervalReal} (hx : x ∈ I) : + Real.sqrt x ∈ sqrtInterval I := by + simp only [mem_def, sqrtInterval] + constructor + · exact Real.sqrt_nonneg x + · rcases le_or_gt 0 x with hnn | hneg + · -- x ≥ 0: sqrt(x) ≤ max(x, 1) ≤ max(hi, 1) + calc Real.sqrt x ≤ max x 1 := sqrt_le_max_one hnn + _ ≤ max I.hi 1 := max_le_max_right 1 hx.2 + · -- x < 0: sqrt(x) = 0 ≤ max(hi, 1) + have hsqrt_zero : Real.sqrt x = 0 := Real.sqrt_eq_zero'.mpr (le_of_lt hneg) + rw [hsqrt_zero] + exact le_max_of_le_right zero_le_one + +end IntervalReal + +end LeanCert.Core + +end + +end + +section + +/- +Copyright (c) 2026 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Shared Trigonometric Range Reduction + +Common rational `π` bounds and interval-shifting proofs used by IntervalRat and +Taylor-model trigonometric evaluators. +-/ + +/-! ### Rational approximations of π and 2π -/ + +@[expose] public section + +namespace LeanCert.Core.TrigReduction + +open LeanCert.Core + +/-- Lower bound for π: 314159265/100000000 < π -/ +def piRatLo : ℚ := 314159265/100000000 + +/-- Upper bound for π: π < 355/113 -/ +def piRatHi : ℚ := 355/113 + +/-- Lower bound for 2π -/ +def twoPiRatLo : ℚ := 2 * piRatLo + +/-- Upper bound for 2π -/ +def twoPiRatHi : ℚ := 2 * piRatHi + +/-- `piRatLo < π`, proved from Mathlib's decimal π bounds. -/ +theorem piRatLo_lt_pi : (piRatLo : ℝ) < Real.pi := by + have h₁ : (piRatLo : ℝ) < (3.14159265358979323846 : ℝ) := by + norm_num [piRatLo] + exact lt_trans h₁ Real.pi_gt_d20 + +/-- `π < piRatHi`, proved from Mathlib's decimal π bounds. -/ +theorem pi_lt_piRatHi : Real.pi < (piRatHi : ℝ) := by + have h₁ : (3.14159265358979323847 : ℝ) < (piRatHi : ℝ) := by + norm_num [piRatHi] + exact lt_trans Real.pi_lt_d20 h₁ + +/-- twoPiRatLo < 2π -/ +theorem twoPiRatLo_lt_two_pi : (twoPiRatLo : ℝ) < 2 * Real.pi := by + unfold twoPiRatLo + simp only [Rat.cast_mul, Rat.cast_ofNat] + have h := piRatLo_lt_pi + linarith + +/-- 2π < twoPiRatHi -/ +theorem two_pi_lt_twoPiRatHi : 2 * Real.pi < (twoPiRatHi : ℝ) := by + unfold twoPiRatHi + simp only [Rat.cast_mul, Rat.cast_ofNat] + have h := pi_lt_piRatHi + linarith + +/-- twoPiRatLo ≤ twoPiRatHi -/ +theorem twoPiRatLo_le_twoPiRatHi : twoPiRatLo ≤ twoPiRatHi := by + unfold twoPiRatLo twoPiRatHi piRatLo piRatHi + norm_num + +/-! ### Range reduction -/ + +/-- Compute the shift amount k such that I.midpoint - k * 2π is approximately in [-π, π]. -/ +def computeShiftK (I : IntervalRat) : ℤ := + let mid := I.midpoint + (mid / twoPiRatHi).floor + +/-- Shift an interval by subtracting k * 2π using rational bounds. -/ +def shiftInterval (I : IntervalRat) (k : ℤ) : IntervalRat := + if hk : k ≥ 0 then + ⟨I.lo - k * twoPiRatHi, I.hi - k * twoPiRatLo, + by have h1 := twoPiRatLo_le_twoPiRatHi + have hk_cast : (0 : ℚ) ≤ k := Int.cast_nonneg hk + have h2 : (k : ℚ) * twoPiRatLo ≤ k * twoPiRatHi := + mul_le_mul_of_nonneg_left h1 hk_cast + linarith [I.le]⟩ + else + ⟨I.lo - k * twoPiRatLo, I.hi - k * twoPiRatHi, + by have h1 := twoPiRatLo_le_twoPiRatHi + have hkneg : k < 0 := Int.not_le.mp hk + have hk_cast : (k : ℚ) ≤ 0 := Int.cast_nonpos.mpr (le_of_lt hkneg) + have h2 : (k : ℚ) * twoPiRatHi ≤ k * twoPiRatLo := + mul_le_mul_of_nonpos_left h1 hk_cast + linarith [I.le]⟩ + +/-- Reduce interval to be approximately in [-π, π] by subtracting multiples of 2π. -/ +def reduceToMainPeriod (I : IntervalRat) : IntervalRat × ℤ := + let k := computeShiftK I + (shiftInterval I k, k) + +/-! ### Correctness of range reduction -/ + +/-- If x ∈ I, then x - 2πk ∈ shiftInterval I k. -/ +theorem mem_shiftInterval_of_mem {x : ℝ} {I : IntervalRat} {k : ℤ} + (hx : x ∈ I) : x - 2 * Real.pi * k ∈ shiftInterval I k := by + simp only [IntervalRat.mem_def] at hx ⊢ + unfold shiftInterval + split_ifs with hk + · constructor + · have h1 : (I.lo : ℝ) ≤ x := hx.1 + have h2 : 2 * Real.pi ≤ (twoPiRatHi : ℝ) := le_of_lt two_pi_lt_twoPiRatHi + have hk_cast : (0 : ℝ) ≤ k := Int.cast_nonneg hk + have h3 : 2 * Real.pi * k ≤ (twoPiRatHi : ℝ) * k := + mul_le_mul_of_nonneg_right h2 hk_cast + simp only [Rat.cast_sub, Rat.cast_mul, Rat.cast_intCast] + linarith + · have h1 : x ≤ (I.hi : ℝ) := hx.2 + have h2 : (twoPiRatLo : ℝ) ≤ 2 * Real.pi := le_of_lt twoPiRatLo_lt_two_pi + have hk_cast : (0 : ℝ) ≤ k := Int.cast_nonneg hk + have h3 : (twoPiRatLo : ℝ) * k ≤ 2 * Real.pi * k := + mul_le_mul_of_nonneg_right h2 hk_cast + simp only [Rat.cast_sub, Rat.cast_mul, Rat.cast_intCast] + linarith + · have hkneg : k < 0 := Int.not_le.mp hk + have hk_cast : (k : ℝ) ≤ 0 := Int.cast_nonpos.mpr (le_of_lt hkneg) + constructor + · have h1 : (I.lo : ℝ) ≤ x := hx.1 + have h2 : (twoPiRatLo : ℝ) ≤ 2 * Real.pi := le_of_lt twoPiRatLo_lt_two_pi + have h3 : (k : ℝ) * (2 * Real.pi) ≤ k * twoPiRatLo := + mul_le_mul_of_nonpos_left h2 hk_cast + simp only [Rat.cast_sub, Rat.cast_mul, Rat.cast_intCast] + linarith + · have h1 : x ≤ (I.hi : ℝ) := hx.2 + have h2 : 2 * Real.pi ≤ (twoPiRatHi : ℝ) := le_of_lt two_pi_lt_twoPiRatHi + have h3 : (k : ℝ) * twoPiRatHi ≤ k * (2 * Real.pi) := + mul_le_mul_of_nonpos_left h2 hk_cast + simp only [Rat.cast_sub, Rat.cast_mul, Rat.cast_intCast] + linarith + +/-- Convenience form: if x ∈ I, then x - 2πk ∈ (reduceToMainPeriod I).1. -/ +theorem mem_reduceToMainPeriod_of_mem {x : ℝ} {I : IntervalRat} (hx : x ∈ I) : + x - 2 * Real.pi * (reduceToMainPeriod I).2 ∈ (reduceToMainPeriod I).1 := by + unfold reduceToMainPeriod + exact mem_shiftInterval_of_mem hx + +end LeanCert.Core.TrigReduction + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Computable Range Reduction for Trigonometric Functions + +This file implements range reduction for sin and cos to improve Taylor series +convergence for intervals far from 0. + +## Problem + +Standard Taylor series for sin/cos centered at 0 have remainder bounds of +`|x|^{n+1} / (n+1)!`. For intervals far from 0 (e.g., [10, 11]), this remainder +is huge even for moderate n. + +## Solution: Range Reduction + +Use the periodicity of sin/cos: +- `sin(x) = sin(x - 2πk)` for any integer k +- `cos(x) = cos(x - 2πk)` for any integer k + +By choosing k to bring x - 2πk into [-π, π], the Taylor series converges much +faster since |x - 2πk| ≤ π ≈ 3.14. + +## Main definitions + +* `twoPiRatLo`, `twoPiRatHi` - Rational bounds for 2π +* `reduceToMainPeriod` - Shift interval to be near 0 +* `sinComputableReduced`, `cosComputableReduced` - Computable evaluation with range reduction +-/ + +/-! ### Shared range-reduction API -/ + +@[expose] public section + +namespace LeanCert.Core.IntervalRat + +/-- The rational lower π bound from the trigonometric reduction implementation. -/ +def piRatLo : ℚ := LeanCert.Core.TrigReduction.piRatLo +/-- The rational upper π bound from the trigonometric reduction implementation. -/ +def piRatHi : ℚ := LeanCert.Core.TrigReduction.piRatHi +/-- The rational lower bound for twice π used in argument reduction. -/ +def twoPiRatLo : ℚ := LeanCert.Core.TrigReduction.twoPiRatLo +/-- The rational upper bound for twice π used in argument reduction. -/ +def twoPiRatHi : ℚ := LeanCert.Core.TrigReduction.twoPiRatHi +/-- Choose the integer number of periods used to reduce an input interval. -/ +def computeShiftK : IntervalRat → ℤ := LeanCert.Core.TrigReduction.computeShiftK +/-- Shift an interval by the selected integer multiple of the period enclosure. -/ +def shiftInterval : IntervalRat → ℤ → IntervalRat := LeanCert.Core.TrigReduction.shiftInterval +/-- Return the reduced interval and its integer period shift. -/ +def reduceToMainPeriod : IntervalRat → IntervalRat × ℤ := + LeanCert.Core.TrigReduction.reduceToMainPeriod + +theorem piRatLo_lt_pi : (piRatLo : ℝ) < Real.pi := + LeanCert.Core.TrigReduction.piRatLo_lt_pi + +theorem pi_lt_piRatHi : Real.pi < (piRatHi : ℝ) := + LeanCert.Core.TrigReduction.pi_lt_piRatHi + +theorem twoPiRatLo_lt_two_pi : (twoPiRatLo : ℝ) < 2 * Real.pi := + LeanCert.Core.TrigReduction.twoPiRatLo_lt_two_pi + +theorem two_pi_lt_twoPiRatHi : 2 * Real.pi < (twoPiRatHi : ℝ) := + LeanCert.Core.TrigReduction.two_pi_lt_twoPiRatHi + +theorem twoPiRatLo_le_twoPiRatHi : twoPiRatLo ≤ twoPiRatHi := + LeanCert.Core.TrigReduction.twoPiRatLo_le_twoPiRatHi + +theorem mem_shiftInterval_of_mem {x : ℝ} {I : IntervalRat} {k : ℤ} + (hx : x ∈ I) : x - 2 * Real.pi * k ∈ shiftInterval I k := by + change x - 2 * Real.pi * k ∈ LeanCert.Core.TrigReduction.shiftInterval I k + exact LeanCert.Core.TrigReduction.mem_shiftInterval_of_mem hx + +/-! ### Computable reduced evaluation -/ + +/-- Computable sin evaluation with range reduction. -/ +def sinComputableReduced (I : IntervalRat) (n : ℕ := 10) : IntervalRat := + let (Ired, _k) := reduceToMainPeriod I + if Ired.lo < -4 ∨ Ired.hi > 4 then + ⟨-1, 1, by norm_num⟩ + else + sinComputable Ired n + +/-- Computable cos evaluation with range reduction. -/ +def cosComputableReduced (I : IntervalRat) (n : ℕ := 10) : IntervalRat := + let (Ired, _k) := reduceToMainPeriod I + if Ired.lo < -4 ∨ Ired.hi > 4 then + ⟨-1, 1, by norm_num⟩ + else + cosComputable Ired n + +/-- sin x ∈ sinComputableReduced I for all x ∈ I -/ +theorem mem_sinComputableReduced {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (n : ℕ := 10) : + Real.sin x ∈ sinComputableReduced I n := by + unfold sinComputableReduced reduceToMainPeriod + simp only [] + set Ired := shiftInterval I (computeShiftK I) with hIred + set k := computeShiftK I with hk + have hxred : x - 2 * Real.pi * k ∈ Ired := by + rw [hIred, hk] + exact mem_shiftInterval_of_mem hx + have hsin_eq : Real.sin x = Real.sin (x - 2 * Real.pi * k) := by + have h := Real.sin_add_int_mul_two_pi x (-k) + simp only [Int.cast_neg, neg_mul] at h + rw [← h] + ring_nf + split_ifs with hwide + · simp only [IntervalRat.mem_def, Rat.cast_neg, Rat.cast_one] + exact ⟨Real.neg_one_le_sin x, Real.sin_le_one x⟩ + · push Not at hwide + rw [hsin_eq] + exact mem_sinComputable hxred n + +/-- cos x ∈ cosComputableReduced I for all x ∈ I -/ +theorem mem_cosComputableReduced {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (n : ℕ := 10) : + Real.cos x ∈ cosComputableReduced I n := by + unfold cosComputableReduced reduceToMainPeriod + simp only [] + set Ired := shiftInterval I (computeShiftK I) with hIred + set k := computeShiftK I with hk + have hxred : x - 2 * Real.pi * k ∈ Ired := by + rw [hIred, hk] + exact mem_shiftInterval_of_mem hx + have hcos_eq : Real.cos x = Real.cos (x - 2 * Real.pi * k) := by + have h := Real.cos_add_int_mul_two_pi x (-k) + simp only [Int.cast_neg, neg_mul] at h + rw [← h] + ring_nf + split_ifs with hwide + · simp only [IntervalRat.mem_def, Rat.cast_neg, Rat.cast_one] + exact ⟨Real.neg_one_le_cos x, Real.cos_le_one x⟩ + · rw [hcos_eq] + exact mem_cosComputable hxred n + +end LeanCert.Core.IntervalRat + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Computable Interval Evaluation + +This file implements the computable interval evaluator for `LeanCert.Core.Expr`. +Given an expression and intervals for its variables, we compute an interval +guaranteed to contain all possible values. + +## Main definitions + +* `IntervalEnv` - Variable assignment as intervals +* `EvalConfig` - Configuration for evaluation parameters (Taylor depth) +* `LeanCert.Internal.Rational.evalTotalCore` - Computable interval evaluator for core expressions +* `evalIntervalCore_correct` - Correctness theorem for core evaluation + +## Design notes + +This evaluator is COMPUTABLE, allowing use of `native_decide` for bound checking +in tactics. The transcendental functions (exp, sin, cos) use Taylor series with +configurable depth for precision control. + +For inv: computes bounds using `invInterval`, but correctness is not covered by +`evalIntervalCore_correct`. Use `evalIntervalOption` for inv. +-/ + +@[expose] public section + +namespace LeanCert.Engine + +open LeanCert.Core + +open LeanCert.Core + +-- Re-export support predicates from Core for backward compatibility +export LeanCert.Core (ExprSupportedCore ADSupported) + +/-! ### Interval bounds for transcendental functions -/ + +/-- Simple interval bound for sin. + Since |sin x| ≤ 1 for all x, we use the global bound [-1, 1]. + This is sound but not tight. -/ +def sinInterval (_I : IntervalRat) : IntervalRat := + ⟨-1, 1, by norm_num⟩ + +/-- Correctness of sin interval: sin x ∈ [-1, 1] for all x -/ +theorem mem_sinInterval {x : ℝ} {I : IntervalRat} (_hx : x ∈ I) : + Real.sin x ∈ sinInterval I := by + simp only [IntervalRat.mem_def, sinInterval] + have h := Real.sin_mem_Icc x + simp only [Set.mem_Icc] at h + simp only [Rat.cast_neg, Rat.cast_one] + exact h + +/-- Simple interval bound for cos. + Since |cos x| ≤ 1 for all x, we use the global bound [-1, 1]. + This is sound but not tight. -/ +def cosInterval (_I : IntervalRat) : IntervalRat := + ⟨-1, 1, by norm_num⟩ + +/-- Correctness of cos interval: cos x ∈ [-1, 1] for all x -/ +theorem mem_cosInterval {x : ℝ} {I : IntervalRat} (_hx : x ∈ I) : + Real.cos x ∈ cosInterval I := by + simp only [IntervalRat.mem_def, cosInterval] + have h := Real.cos_mem_Icc x + simp only [Set.mem_Icc] at h + simp only [Rat.cast_neg, Rat.cast_one] + exact h + +/-- Simple interval bound for atan. + Since atan x ∈ (-π/2, π/2) for all x, we use the global bound [-2, 2]. + This is sound but not tight (π/2 ≈ 1.57). -/ +def atanInterval (_I : IntervalRat) : IntervalRat := + ⟨-2, 2, by norm_num⟩ + +/-- Correctness of atan interval: arctan x ∈ [-2, 2] for all x -/ +theorem mem_atanInterval {x : ℝ} {I : IntervalRat} (_hx : x ∈ I) : + Real.arctan x ∈ atanInterval I := by + simp only [IntervalRat.mem_def, atanInterval, Rat.cast_neg, Rat.cast_ofNat] + -- arctan x ∈ (-π/2, π/2), and π/2 < 2 since π < 4 + have h_lo : Real.arctan x > -Real.pi / 2 := by + have := Real.neg_pi_div_two_lt_arctan x; linarith + have h_hi : Real.arctan x < Real.pi / 2 := Real.arctan_lt_pi_div_two x + have hpi_lt_four : Real.pi < 4 := Real.pi_lt_four + have hpi_lo : -Real.pi / 2 > (-2 : ℝ) := by linarith + have hpi_hi : Real.pi / 2 < (2 : ℝ) := by linarith + constructor <;> linarith + +/-- Interval bound for erf using computable Taylor series. + erf(x) = (2/√π) * ∫₀ˣ exp(-t²) dt, strictly monotone increasing. + This computes tight bounds using verified Taylor series. -/ +def erfInterval (I : IntervalRat) (taylorDepth : ℕ := 15) : IntervalRat := + IntervalRat.erfComputable I taylorDepth + +/-- Helper: The integral of exp(-t²) over (a, b] is positive when a < b. + This follows from exp(-t²) > 0 and the interval having positive measure. -/ +private theorem integral_exp_neg_sq_pos (a b : ℝ) (hab : a < b) : + 0 < ∫ t in a..b, Real.exp (-(t^2)) := by + have hcont : Continuous (fun t => Real.exp (-(t^2))) := + Real.continuous_exp.comp (continuous_neg.comp (continuous_pow 2)) + apply intervalIntegral.integral_pos hab hcont.continuousOn + · intro x _; exact le_of_lt (Real.exp_pos _) + · exact ⟨a, Set.left_mem_Icc.mpr (le_of_lt hab), Real.exp_pos _⟩ + +/-- erf is strictly monotone increasing. + Proof: erf'(x) = (2/√π) * exp(-x²) > 0 for all x. + + We use that for a < b, the integral ∫_{a}^{b} exp(-t²) dt > 0 since the + integrand is strictly positive. -/ +theorem Real.strictMono_erf : StrictMono Real.erf := by + intro a b hab + unfold Real.erf + have hfactor : (0 : ℝ) < 2 / Real.sqrt Real.pi := by + apply div_pos (by norm_num : (0 : ℝ) < 2) + exact Real.sqrt_pos.mpr Real.pi_pos + have hcont : Continuous (fun t => Real.exp (-(t^2))) := + Real.continuous_exp.comp (continuous_neg.comp (continuous_pow 2)) + have hint : ∀ c d : ℝ, IntervalIntegrable (fun t => Real.exp (-(t^2))) MeasureTheory.volume c d := + fun c d => hcont.intervalIntegrable c d + -- The integral ∫ t in a..b, exp(-t²) > 0 when a < b since exp(-t²) > 0 + have hpos : 0 < ∫ x in a..b, Real.exp (-(x^2)) := integral_exp_neg_sq_pos a b hab + -- Split integral: ∫ 0..b = ∫ 0..a + ∫ a..b + have heq := (intervalIntegral.integral_add_adjacent_intervals (hint 0 a) (hint a b)).symm + -- Since ∫ a..b > 0, we have ∫ 0..a < ∫ 0..a + ∫ a..b = ∫ 0..b + have hineq : ∫ x in (0 : ℝ)..a, Real.exp (-(x^2)) < ∫ x in (0 : ℝ)..b, Real.exp (-(x^2)) := by + rw [heq] + linarith + -- Multiply both sides by positive factor + exact mul_lt_mul_of_pos_left hineq hfactor + +/-- Quantitative global bound: `|erf x| ≤ (2257/2000) * |x|`. + This is conservative but fully proved from the integral definition. -/ +private theorem Real.abs_erf_le_2257_div_2000_mul_abs (x : ℝ) : + |Real.erf x| ≤ ((2257 : ℝ) / 2000) * |x| := by + unfold Real.erf + have h_int : + ‖∫ t in (0 : ℝ)..x, Real.exp (-(t ^ 2))‖ ≤ |x| := by + have hnorm : + ∀ t ∈ Set.uIoc (0 : ℝ) x, ‖Real.exp (-(t ^ 2))‖ ≤ (1 : ℝ) := by + intro t _ht + have hsq : 0 ≤ t ^ 2 := sq_nonneg t + have hle : Real.exp (-(t ^ 2)) ≤ 1 := Real.exp_le_one_iff.mpr (by linarith) + have hnonneg : 0 ≤ Real.exp (-(t ^ 2)) := le_of_lt (Real.exp_pos _) + simpa [Real.norm_eq_abs, abs_of_nonneg hnonneg] using hle + have h := intervalIntegral.norm_integral_le_of_norm_le_const + (a := (0 : ℝ)) (b := x) (C := (1 : ℝ)) (f := fun t => Real.exp (-(t ^ 2))) hnorm + simpa [one_mul, sub_zero] using h + have hfactor_nonneg : 0 ≤ 2 / Real.sqrt Real.pi := by + exact div_nonneg (by norm_num) (le_of_lt (Real.sqrt_pos.mpr Real.pi_pos)) + have hsqrt_ge_17724 : (17724 / 10000 : ℝ) ≤ Real.sqrt Real.pi := by + have hpi_ge : (3.1415 : ℝ) ≤ Real.pi := le_of_lt Real.pi_gt_d4 + have hsq : (17724 / 10000 : ℝ) ^ 2 ≤ Real.pi := by + have hcalc : (17724 / 10000 : ℝ) ^ 2 = 3.14140176 := by norm_num + linarith + have hnonneg : (0 : ℝ) ≤ (17724 / 10000 : ℝ) := by norm_num + have hsqrt_sq : (17724 / 10000 : ℝ) = Real.sqrt ((17724 / 10000 : ℝ) ^ 2) := by + symm; exact Real.sqrt_sq hnonneg + calc + (17724 / 10000 : ℝ) = Real.sqrt ((17724 / 10000 : ℝ) ^ 2) := hsqrt_sq + _ ≤ Real.sqrt Real.pi := by exact Real.sqrt_le_sqrt hsq + have hfactor_le_2257_div_2000 : 2 / Real.sqrt Real.pi ≤ ((2257 : ℝ) / 2000) := by + have hmul : (2 : ℝ) ≤ ((2257 : ℝ) / 2000) * Real.sqrt Real.pi := by + calc + (2 : ℝ) ≤ ((2257 : ℝ) / 2000) * (17724 / 10000 : ℝ) := by norm_num + _ ≤ ((2257 : ℝ) / 2000) * Real.sqrt Real.pi := by + gcongr + exact (div_le_iff₀ (Real.sqrt_pos.mpr Real.pi_pos)).2 hmul + calc + |(2 / Real.sqrt Real.pi) * ∫ t in (0 : ℝ)..x, Real.exp (-(t ^ 2))| + = (2 / Real.sqrt Real.pi) * ‖∫ t in (0 : ℝ)..x, Real.exp (-(t ^ 2))‖ := by + rw [abs_mul, abs_of_nonneg hfactor_nonneg, Real.norm_eq_abs] + _ ≤ (2 / Real.sqrt Real.pi) * |x| := by + gcongr + _ ≤ ((2257 : ℝ) / 2000) * |x| := by + nlinarith [hfactor_nonneg, hfactor_le_2257_div_2000, abs_nonneg x] + +/-- Correctness of `erfPointComputable`. + The enclosure is sign-aware and uses monotonicity of erf with `erf(0)=0`. -/ +theorem mem_erfPointComputable (q : ℚ) (n : ℕ) : + Real.erf q ∈ IntervalRat.erfPointComputable q n := by + unfold IntervalRat.erfPointComputable + have h_abs1 : |Real.erf q| ≤ (1 : ℝ) := by + refine (abs_le.2 ?_) + exact_mod_cast (Real.erf_mem_Icc q) + have h_abs2 : |Real.erf q| ≤ ((2257 : ℝ) / 2000) * |(q : ℝ)| := + Real.abs_erf_le_2257_div_2000_mul_abs q + by_cases hq : q < 0 + · simp only [hq, ↓reduceDIte, IntervalRat.mem_def, Rat.cast_neg, Rat.cast_min, Rat.cast_one, + Rat.cast_mul, Rat.cast_div, Rat.cast_ofNat, Rat.cast_abs, Rat.cast_zero] + have hq_real : (q : ℝ) < 0 := by exact_mod_cast hq + have herf_lt_erf0 : Real.erf q < Real.erf 0 := Real.strictMono_erf hq_real + have herf_nonpos : Real.erf q ≤ 0 := by + simpa [Real.erf] using le_of_lt herf_lt_erf0 + have hneg_min : -(min (1 : ℝ) (((2257 : ℝ) / 2000) * |(q : ℝ)|)) ≤ Real.erf q := by + exact (abs_le.mp (le_min h_abs1 h_abs2)).1 + exact ⟨hneg_min, herf_nonpos⟩ + · by_cases h0 : q = 0 + · subst h0 + simp [IntervalRat.mem_def, Real.erf] + · simp only [hq, ↓reduceDIte, h0, IntervalRat.mem_def, Rat.cast_zero, + Rat.cast_min, Rat.cast_one, + Rat.cast_mul, Rat.cast_div, Rat.cast_ofNat, Rat.cast_abs, le_inf_iff] + have hq_pos : 0 < q := lt_of_le_of_ne (le_of_not_gt hq) (by + intro hz + exact h0 hz.symm) + have hq_pos_real : (0 : ℝ) < q := by exact_mod_cast hq_pos + have herf0_lt : Real.erf 0 < Real.erf q := Real.strictMono_erf hq_pos_real + have herf_nonneg : 0 ≤ Real.erf q := by + simpa [Real.erf] using le_of_lt herf0_lt + exact ⟨herf_nonneg, (abs_le.mp h_abs1).2, (abs_le.mp h_abs2).2⟩ + +/-- Correctness of erf interval using monotonicity and endpoint evaluation. + + Since erf is strictly monotone increasing: + - For x ∈ [I.lo, I.hi], we have erf(I.lo) ≤ erf(x) ≤ erf(I.hi) + - erfPointComputable(I.lo) contains erf(I.lo) + - erfPointComputable(I.hi) contains erf(I.hi) + - hull of these intervals contains [erf(I.lo), erf(I.hi)] + - Therefore erf(x) ∈ hull(...) ∩ [-1, 1] -/ +theorem mem_erfInterval {x : ℝ} {I : IntervalRat} (hx : x ∈ I) (n : ℕ := 15) : + Real.erf x ∈ erfInterval I n := by + unfold erfInterval IntervalRat.erfComputable + simp only [] + -- Get membership in endpoint intervals + have hlo_mem := mem_erfPointComputable I.lo n + have hhi_mem := mem_erfPointComputable I.hi n + -- Use monotonicity + have hx_bounds := hx + rw [IntervalRat.mem_def] at hx_bounds + have herf_lo : Real.erf I.lo ≤ Real.erf x := + Real.strictMono_erf.monotone hx_bounds.1 + have herf_hi : Real.erf x ≤ Real.erf I.hi := + Real.strictMono_erf.monotone hx_bounds.2 + -- erf x is in hull of endpoint intervals + have h_in_hull : Real.erf x ∈ IntervalRat.hull + (IntervalRat.erfPointComputable I.lo n) (IntervalRat.erfPointComputable I.hi n) := by + rw [IntervalRat.mem_def] at hlo_mem hhi_mem ⊢ + unfold IntervalRat.hull + simp only [] + constructor + · calc (↑(min (IntervalRat.erfPointComputable I.lo n).lo + (IntervalRat.erfPointComputable I.hi n).lo) : ℝ) + ≤ (IntervalRat.erfPointComputable I.lo n).lo := by + simp only [Rat.cast_min]; exact min_le_left _ _ + _ ≤ Real.erf I.lo := hlo_mem.1 + _ ≤ Real.erf x := herf_lo + · calc Real.erf x + ≤ Real.erf I.hi := herf_hi + _ ≤ (IntervalRat.erfPointComputable I.hi n).hi := hhi_mem.2 + _ ≤ (↑(max (IntervalRat.erfPointComputable I.lo n).hi + (IntervalRat.erfPointComputable I.hi n).hi) : ℝ) := by + simp only [Rat.cast_max]; exact le_max_right _ _ + -- erf x is in [-1, 1] + have h_global : Real.erf x ∈ ({lo := -1, hi := 1, le := by norm_num} : IntervalRat) := by + simp only [IntervalRat.mem_def, Rat.cast_neg, Rat.cast_one] + exact Real.erf_mem_Icc x + -- Combine via case analysis on intersection result + set erfLo := IntervalRat.erfPointComputable I.lo n + set erfHi := IntervalRat.erfPointComputable I.hi n + set raw := erfLo.hull erfHi + set globalBound : IntervalRat := ⟨-1, 1, by norm_num⟩ + -- Use mem_intersect which says: if x ∈ I and x ∈ J, then ∃ K, intersect I J = some K ∧ x ∈ K + have ⟨K, hK_eq, hK_mem⟩ := IntervalRat.mem_intersect h_in_hull h_global + simp only [hK_eq] + exact hK_mem + +/-- Simple interval bound for arsinh. + arsinh is unbounded, so we use a very rough linear bound. + We use max(|lo|, |hi|) + 1 as a safe bound that always works. -/ +def arsinhInterval (I : IntervalRat) : IntervalRat := + let bound := max (abs I.lo) (abs I.hi) + 1 + ⟨-bound, bound, by + have h1 : (0 : ℚ) ≤ |I.lo| := abs_nonneg I.lo + have h2 : |I.lo| ≤ |I.lo| ⊔ |I.hi| := le_max_left _ _ + have h3 : (0 : ℚ) ≤ |I.lo| ⊔ |I.hi| := le_trans h1 h2 + have h4 : (0 : ℚ) ≤ |I.lo| ⊔ |I.hi| + 1 := by linarith + have h5 : -(|I.lo| ⊔ |I.hi| + 1) ≤ |I.lo| ⊔ |I.hi| + 1 := by linarith + exact h5⟩ + +/-- Correctness of arsinh interval. + Uses the bound |arsinh x| ≤ |x| for all x (from IntervalRealEndpoints). -/ +theorem mem_arsinhInterval {x : ℝ} {I : IntervalRat} (hx : x ∈ I) : + Real.arsinh x ∈ arsinhInterval I := by + simp only [IntervalRat.mem_def, arsinhInterval] + -- Key bound: |arsinh x| ≤ |x| + 1 + -- This is a well-known bound that follows from sinh y ≥ y for y ≥ 0 + have hbound : |Real.arsinh x| ≤ |x| + 1 := by + -- Use the sharper bound |arsinh x| ≤ |x| from IntervalRealEndpoints + have h := IntervalReal.abs_arsinh_le_abs x + linarith + simp only [IntervalRat.mem_def] at hx + have hx_bound : |x| ≤ max (|I.lo|) (|I.hi|) := by + simp only [Rat.cast_abs, Rat.cast_max] + rcases le_or_gt x 0 with hxneg | hxpos + · simp only [abs_of_nonpos hxneg] + calc -x ≤ -(I.lo : ℝ) := by linarith [hx.1] + _ ≤ |↑I.lo| := neg_le_abs _ + _ ≤ max |↑I.lo| |↑I.hi| := le_max_left _ _ + · simp only [abs_of_pos hxpos] + calc x ≤ I.hi := hx.2 + _ ≤ |↑I.hi| := le_abs_self _ + _ ≤ max |↑I.lo| |↑I.hi| := le_max_right _ _ + have habs_lo : -(|x| + 1) ≤ Real.arsinh x := (abs_le.mp hbound).1 + have habs_hi : Real.arsinh x ≤ |x| + 1 := (abs_le.mp hbound).2 + have hmax_cast : (max (|I.lo|) (|I.hi|) : ℝ) = max |↑I.lo| |↑I.hi| := by + rfl + constructor + · simp only [Rat.cast_neg, Rat.cast_add, Rat.cast_one, Rat.cast_max, Rat.cast_abs] + have h1 : -(|↑I.lo| ⊔ |↑I.hi| + 1) = -(max |↑I.lo| |↑I.hi|) - (1 : ℝ) := by ring + have h2 : -(max |↑I.lo| |↑I.hi|) - (1 : ℝ) ≤ -|x| - 1 := by + have hxb : |x| ≤ max |↑I.lo| |↑I.hi| := by + convert hx_bound using 1 + simp [Rat.cast_max, Rat.cast_abs] + linarith + have h3 : -|x| - (1 : ℝ) ≤ Real.arsinh x := by + have : -(|x| + 1) = -|x| - 1 := by ring + rw [← this]; exact habs_lo + linarith + · simp only [Rat.cast_add, Rat.cast_one, Rat.cast_max, Rat.cast_abs] + have h1 : Real.arsinh x ≤ |x| + 1 := habs_hi + have h2 : |x| + (1 : ℝ) ≤ max |↑I.lo| |↑I.hi| + 1 := by + have hxb : |x| ≤ max |↑I.lo| |↑I.hi| := by + convert hx_bound using 1 + simp [Rat.cast_max, Rat.cast_abs] + linarith + linarith + +/-- Interval bound for atanh. + atanh is defined for (-1, 1). If interval is within this range, + we compute tight bounds using monotonicity. Otherwise returns default. -/ +noncomputable def atanhInterval (I : IntervalRat) : IntervalRat := + if h : -1 < I.lo ∧ I.hi < 1 then + let Iball : IntervalRat.IntervalRatInUnitBall := ⟨I.lo, I.hi, I.le, h.1, h.2⟩ + IntervalRat.atanhIntervalComputed Iball + else + default + +/-- Correctness of atanh interval: when x ∈ I and I ⊂ (-1, 1), atanh(x) ∈ atanhInterval I. -/ +theorem mem_atanhInterval {x : ℝ} {I : IntervalRat} (hx : x ∈ I) + (hlo : -1 < I.lo) (hhi : I.hi < 1) : + Real.atanh x ∈ atanhInterval I := by + unfold atanhInterval + simp only [hlo, hhi, and_self, ↓reduceDIte] + let Iball : IntervalRat.IntervalRatInUnitBall := ⟨I.lo, I.hi, I.le, hlo, hhi⟩ + have hx_ball : x ∈ Iball := by + simp only [Membership.mem] + exact hx + exact IntervalRat.mem_atanhIntervalComputed hx_ball + +/-- Tight interval bound for tanh. + Since tanh(x) ∈ (-1, 1) for all x ∈ ℝ, we use the global bound [-1, 1]. + This avoids the interval explosion that occurs when desugaring to exp. -/ +def tanhInterval (_I : IntervalRat) : IntervalRat := + ⟨-1, 1, by norm_num⟩ + +/-- Correctness of tanh interval: tanh x ∈ [-1, 1] for all x -/ +theorem mem_tanhInterval {x : ℝ} {I : IntervalRat} (_hx : x ∈ I) : + Real.tanh x ∈ tanhInterval I := by + simp only [IntervalRat.mem_def, tanhInterval, Rat.cast_neg, Rat.cast_one] + constructor + -- tanh x ≥ -1 for all x: use that tanh = sinh/cosh and cosh > 0 + · rw [Real.tanh_eq_sinh_div_cosh] + have hcosh : Real.cosh x > 0 := Real.cosh_pos x + -- -1 ≤ sinh/cosh iff -cosh ≤ sinh (since cosh > 0) + rw [le_div_iff₀ hcosh, neg_one_mul] + -- Need: -cosh x ≤ sinh x + -- sinh x = (exp x - exp(-x))/2, cosh x = (exp x + exp(-x))/2 + -- sinh x + cosh x = exp x ≥ 0 ✓ + rw [Real.sinh_eq, Real.cosh_eq] + have h1 : Real.exp x > 0 := Real.exp_pos x + linarith + -- tanh x ≤ 1 for all x: use that sinh ≤ cosh (since exp(-x) > 0) + · rw [Real.tanh_eq_sinh_div_cosh] + have hcosh : Real.cosh x > 0 := Real.cosh_pos x + rw [div_le_one₀ hcosh] + -- Need: sinh x ≤ cosh x + rw [Real.sinh_eq, Real.cosh_eq] + have h2 : Real.exp (-x) > 0 := Real.exp_pos (-x) + linarith + +/-- Interval enclosure for π. + Uses tight bounds from Mathlib's pi_gt_d20 and pi_lt_d20 which give 20 decimal digits. + 3.14159265358979323846 < π < 3.14159265358979323847 -/ +def piInterval : IntervalRat := + -- Use rational approximation: 31415926535897932/10000000000000000 ≤ pi ≤ + -- 31415926535897933/10000000000000000 + ⟨31415926535897932/10000000000000000, 31415926535897933/10000000000000000, by norm_num⟩ + +/-- Correctness of pi interval: Real.pi ∈ piInterval -/ +theorem mem_piInterval : Real.pi ∈ piInterval := by + simp only [IntervalRat.mem_def, piInterval] + constructor + · -- Lower bound from pi_gt_d20 + have h : (3.14159265358979323846 : ℝ) < Real.pi := Real.pi_gt_d20 + have eq : (31415926535897932 : ℚ) / 10000000000000000 = (3.1415926535897932 : ℚ) := by norm_num + simp only [Rat.cast_div, Rat.cast_ofNat] at * + linarith + · -- Upper bound from pi_lt_d20 + have h : Real.pi < (3.14159265358979323847 : ℝ) := Real.pi_lt_d20 + have eq : (31415926535897933 : ℚ) / 10000000000000000 = (3.1415926535897933 : ℚ) := by norm_num + simp only [Rat.cast_div, Rat.cast_ofNat] at * + linarith + +/-- Interval enclosure for the Euler–Mascheroni constant γ. + Tight bounds derived from `eulerMascheroniSeq 100 < γ < eulerMascheroniSeq' 100` + combined with explicit Taylor partial sums for `log`. The proofs below are + axiom-free (no `native_decide`): all rational arithmetic is certified by + `norm_num`, and the only analytic inputs are Mathlib's + `abs_log_sub_add_sum_range_le` and the d9 bounds on `log 2`. -/ +def eulerMascheroniInterval : IntervalRat := + ⟨5722/10000, 5823/10000, by norm_num⟩ + +/-- `harmonic 100` as an explicit rational literal. -/ +private lemma harmonic_100_eq : harmonic 100 = + 14466636279520351160221518043104131447711/2788815009188499086581352357412492142272 := by + norm_num [harmonic_succ, harmonic_zero] + +/-- Series bound for `log (5/4) = -log (1 - 1/5)`: nine Taylor terms with the + Mathlib tail estimate `|x|^(n+1)/(1-|x|)`. -/ +private lemma log_five_quarter_approx : + |Real.log (5/4) - 219656921/984375000| ≤ (1/7812500 : ℝ) := by + have h := Real.abs_log_sub_add_sum_range_le (x := (1/5 : ℝ)) + (by rw [abs_of_nonneg] <;> norm_num) 9 + have hsum : (∑ i ∈ Finset.range 9, (1/5 : ℝ) ^ (i + 1) / (i + 1)) = 219656921/984375000 := by + simp [Finset.sum_range_succ] + norm_num + have hlog : Real.log (1 - 1/5) = -Real.log (5/4) := by + rw [show (1 - 1/5 : ℝ) = (5/4)⁻¹ by norm_num, Real.log_inv] + rw [hsum, hlog, abs_of_nonneg (by norm_num : (0 : ℝ) ≤ 1/5)] at h + calc |Real.log (5/4) - 219656921/984375000| + = |(219656921/984375000 : ℝ) + -Real.log (5/4)| := by rw [← abs_neg]; ring_nf + _ ≤ (1/5 : ℝ) ^ 10 / (1 - 1/5) := h + _ ≤ (1/7812500 : ℝ) := by norm_num + +/-- Series bound for `log (101/100) = -log (1 - 1/101)`: three Taylor terms. -/ +private lemma log_ratio_101_approx : + |Real.log (101/100) - 61511/6181806| ≤ (1/103030100 : ℝ) := by + have h := Real.abs_log_sub_add_sum_range_le (x := (1/101 : ℝ)) + (by rw [abs_of_nonneg] <;> norm_num) 3 + have hsum : (∑ i ∈ Finset.range 3, (1/101 : ℝ) ^ (i + 1) / (i + 1)) = 61511/6181806 := by + simp [Finset.sum_range_succ] + norm_num + have hlog : Real.log (1 - 1/101) = -Real.log (101/100) := by + rw [show (1 - 1/101 : ℝ) = (101/100)⁻¹ by norm_num, Real.log_inv] + rw [hsum, hlog, abs_of_nonneg (by norm_num : (0 : ℝ) ≤ 1/101)] at h + calc |Real.log (101/100) - 61511/6181806| + = |(61511/6181806 : ℝ) + -Real.log (101/100)| := by rw [← abs_neg]; ring_nf + _ ≤ (1/101 : ℝ) ^ 4 / (1 - 1/101) := h + _ ≤ (1/103030100 : ℝ) := by norm_num + +/-- Decompose `log 100` over `log 2` and `log (5/4)`: `100 = 2^6 * (5/4)^2`. -/ +private lemma log_100_eq : Real.log 100 = 6 * Real.log 2 + 2 * Real.log (5/4) := by + rw [show (100 : ℝ) = 2^6 * (5/4)^2 by norm_num, + Real.log_mul (by norm_num) (by norm_num), Real.log_pow, Real.log_pow] + push_cast; ring + +/-- Decompose `log 101` as `log 100 + log (101/100)`. -/ +private lemma log_101_eq : + Real.log 101 = 6 * Real.log 2 + 2 * Real.log (5/4) + Real.log (101/100) := by + rw [← log_100_eq, show (101 : ℝ) = 100 * (101/100) by norm_num, + Real.log_mul (by norm_num) (by norm_num)] + norm_num + +/-- Helper: `5722/10000 ≤ harmonic 100 - log 101` via explicit series bounds. -/ +private theorem eulerMascheroniSeq_100_ge : + (5722/10000 : ℝ) ≤ Real.eulerMascheroniSeq 100 := by + have h54 := log_five_quarter_approx + have h101 := log_ratio_101_approx + have hlog2 := Real.log_two_lt_d9 + have heq : Real.eulerMascheroniSeq 100 = ↑(harmonic 100 : ℚ) - Real.log 101 := by + simp [Real.eulerMascheroniSeq]; ring_nf + rw [heq, harmonic_100_eq, log_101_eq] + rw [abs_le] at h54 h101 + push_cast + linarith [h54.1, h54.2, h101.1, h101.2] + +/-- Helper: `harmonic 100 - log 100 ≤ 5823/10000` via explicit series bounds. -/ +private theorem eulerMascheroniSeq'_100_le : + Real.eulerMascheroniSeq' 100 ≤ (5823/10000 : ℝ) := by + have h54 := log_five_quarter_approx + have hlog2 := Real.log_two_gt_d9 + have heq : Real.eulerMascheroniSeq' 100 = ↑(harmonic 100 : ℚ) - Real.log 100 := by + simp [Real.eulerMascheroniSeq'] + rw [heq, harmonic_100_eq, log_100_eq] + rw [abs_le] at h54 + push_cast + linarith [h54.1, h54.2] + +/-- Correctness of Euler–Mascheroni interval: γ ∈ eulerMascheroniInterval -/ +theorem mem_eulerMascheroniInterval : + Real.eulerMascheroniConstant ∈ eulerMascheroniInterval := by + simp only [IntervalRat.mem_def, eulerMascheroniInterval] + constructor + · -- Lower: 5722/10000 ≤ eulerMascheroniSeq 100 < γ + have := Real.eulerMascheroniSeq_lt_eulerMascheroniConstant 100 + linarith [eulerMascheroniSeq_100_ge] + · -- Upper: γ < eulerMascheroniSeq' 100 ≤ 5823/10000 + have := Real.eulerMascheroniConstant_lt_eulerMascheroniSeq' 100 + linarith [eulerMascheroniSeq'_100_le] + +end LeanCert.Engine + +namespace LeanCert.Core.MathConst +open LeanCert.Engine + +/-- Centralized interval lookup for named mathematical constants. + Extending this table is the ONLY change needed to add a new constant. -/ +def interval : MathConst → IntervalRat + | .pi => piInterval + | .eulerMascheroni => eulerMascheroniInterval + +/-- Correctness: the real value of every named constant is in its interval. -/ +theorem mem_interval (c : MathConst) : c.toReal ∈ c.interval := by + cases c with + | pi => exact mem_piInterval + | eulerMascheroni => exact mem_eulerMascheroniInterval + +end LeanCert.Core.MathConst + +namespace LeanCert.Engine +open LeanCert.Core + +/-- Interval bound for sinh using computable Taylor series for exp. + sinh(x) = (exp(x) - exp(-x)) / 2, and sinh is strictly monotonic. + This computes tight bounds using the verified exp implementation. -/ +def sinhInterval (I : IntervalRat) (taylorDepth : ℕ := 10) : IntervalRat := + IntervalRat.sinhComputable I taylorDepth + +/-- Interval bound for cosh using computable Taylor series for exp. + cosh(x) = (exp(x) + exp(-x)) / 2, with minimum 1 at x = 0. + This computes tight bounds using the verified exp implementation. -/ +def coshInterval (I : IntervalRat) (taylorDepth : ℕ := 10) : IntervalRat := + IntervalRat.coshComputable I taylorDepth + +/-! ### Interval inverse -/ + +/-- Wide bound constant for when inverse is undefined (denominator contains 0) -/ +def invWideBound : ℚ := 10^30 + +private theorem invWideBound_pos : (0 : ℝ) < invWideBound := by + simp only [invWideBound] + norm_num + +/-- Computable interval inverse. + For [a,b] with a > 0: returns [1/b, 1/a] (1/x is decreasing on positive reals) + For [a,b] with b < 0: returns [1/b, 1/a] (1/x is decreasing on negative reals) + For intervals containing 0: returns wide bounds [-M, M]. NOTE: this branch is + NOT a sound enclosure of x⁻¹ in general (1/x is unbounded near 0); the + correctness theorem `mem_invInterval` therefore requires the extra + hypothesis `|x⁻¹| ≤ invWideBound` in that case. -/ +def invInterval (I : IntervalRat) : IntervalRat := + if h : I.lo > 0 then + -- Positive interval: 1/x is decreasing, so [1/b, 1/a] + let invHi := 1 / I.lo + let invLo := 1 / I.hi + if hle : invLo ≤ invHi then { lo := invLo, hi := invHi, le := hle } + else { lo := invHi, hi := invLo, le := by linarith } + else if h' : I.hi < 0 then + -- Negative interval: 1/x is decreasing, so [1/b, 1/a] + let invHi := 1 / I.lo + let invLo := 1 / I.hi + if hle : invLo ≤ invHi then { lo := invLo, hi := invHi, le := hle } + else { lo := invHi, hi := invLo, le := by linarith } + else + -- Interval contains zero: return wide bounds + ⟨-invWideBound, invWideBound, by simp only [invWideBound]; norm_num⟩ + +/-- Correctness of invInterval when denominator interval is positive. + For x ∈ [a,b] with a > 0, we have 1/x ∈ [1/b, 1/a] -/ +theorem mem_invInterval_pos {x : ℝ} {I : IntervalRat} + (hx : x ∈ I) (hpos : I.lo > 0) : + x⁻¹ ∈ invInterval I := by + simp only [IntervalRat.mem_def] at hx ⊢ + simp only [invInterval, hpos, ↓reduceDIte] + -- x > 0 since x ≥ I.lo > 0 + have hx_pos : (x : ℝ) > 0 := by + have h1 : (I.lo : ℝ) ≤ x := hx.1 + have h2 : (0 : ℝ) < I.lo := by exact_mod_cast hpos + linarith + have hx_ne : x ≠ 0 := ne_of_gt hx_pos + -- For positive x: 1/b ≤ 1/x ≤ 1/a when a ≤ x ≤ b + have hlo_pos : (0 : ℝ) < I.lo := by exact_mod_cast hpos + have hlo_ne : (I.lo : ℝ) ≠ 0 := ne_of_gt hlo_pos + have hhi_pos : (0 : ℝ) < I.hi := by + have := I.le + have h : (I.lo : ℝ) ≤ I.hi := by exact_mod_cast this + linarith + have hhi_ne : (I.hi : ℝ) ≠ 0 := ne_of_gt hhi_pos + split_ifs with hle + · -- Case: 1/hi ≤ 1/lo (normal ordering) + simp only [Rat.cast_inv, one_div] + constructor + · -- (I.hi)⁻¹ ≤ x⁻¹ follows from x ≤ I.hi + exact (inv_le_inv₀ hhi_pos hx_pos).mpr hx.2 + · -- x⁻¹ ≤ (I.lo)⁻¹ follows from I.lo ≤ x + exact (inv_le_inv₀ hx_pos hlo_pos).mpr hx.1 + · -- Case: 1/lo < 1/hi (impossible for positive lo ≤ hi, but we prove the goal anyway) + -- 1/hi ≤ 1/lo is always true when lo ≤ hi and both positive + have hhi_pos_q : (0 : ℚ) < I.hi := by + have := I.le + linarith + have hle' : (1 : ℚ) / I.hi ≤ 1 / I.lo := by + rw [div_le_div_iff₀ hhi_pos_q hpos] + simp only [one_mul] + exact I.le + exact absurd hle' hle + +/-- Correctness of invInterval when denominator interval is negative. + For x ∈ [a,b] with b < 0, we have 1/x ∈ [1/b, 1/a] -/ +theorem mem_invInterval_neg {x : ℝ} {I : IntervalRat} + (hx : x ∈ I) (hneg : I.hi < 0) : + x⁻¹ ∈ invInterval I := by + simp only [IntervalRat.mem_def] at hx ⊢ + -- I.lo ≤ 0 since I.lo ≤ I.hi < 0 + have hlo_le : ¬(I.lo > 0) := by + have := I.le + have hhi_neg : I.hi < 0 := hneg + intro h + have : (I.lo : ℚ) ≤ I.hi := this + linarith + simp only [invInterval, hlo_le, ↓reduceDIte, hneg] + -- x < 0 since x ≤ I.hi < 0 + have hx_neg : (x : ℝ) < 0 := by + have h1 : x ≤ I.hi := hx.2 + have h2 : (I.hi : ℝ) < 0 := by exact_mod_cast hneg + linarith + have hlo_neg : (I.lo : ℝ) < 0 := by + have h1 : I.lo ≤ I.hi := I.le + have h2 : (I.hi : ℝ) < 0 := by exact_mod_cast hneg + have h3 : (I.lo : ℝ) ≤ I.hi := by exact_mod_cast h1 + linarith + have hhi_neg' : (I.hi : ℝ) < 0 := by exact_mod_cast hneg + -- For negative x: 1/x is still decreasing, so 1/b ≤ 1/x ≤ 1/a + split_ifs with hle + · simp only [Rat.cast_inv, one_div] + constructor + · -- (I.hi)⁻¹ ≤ x⁻¹ when x ≤ hi < 0 (since 1/x is decreasing for negatives) + exact (inv_le_inv_of_neg hhi_neg' hx_neg).mpr hx.2 + · -- x⁻¹ ≤ (I.lo)⁻¹ when lo ≤ x < 0 + exact (inv_le_inv_of_neg hx_neg hlo_neg).mpr hx.1 + · -- Case: 1/lo < 1/hi (impossible for negative lo ≤ hi < 0) + -- For negative numbers: lo ≤ hi < 0 implies 1/hi ≤ 1/lo + -- Use: one_div_le_one_div_of_neg_of_le (hb : b < 0) (h : a ≤ b) : 1 / b ≤ 1 / a + have hle' : (1 : ℚ) / I.hi ≤ 1 / I.lo := + one_div_le_one_div_of_neg_of_le hneg I.le + exact absurd hle' hle + +/-- Correctness of invInterval when denominator interval contains zero. + Requires a bound on |x⁻¹| to be provable, since x can be arbitrarily close to 0. -/ +theorem mem_invInterval_wide {x : ℝ} {I : IntervalRat} + (_hx : x ∈ I) (hlo : ¬(I.lo > 0)) (hhi : ¬(I.hi < 0)) + (hbnd : |x⁻¹| ≤ invWideBound) : + x⁻¹ ∈ invInterval I := by + simp only [IntervalRat.mem_def, invInterval, hlo, hhi, ↓reduceDIte] + constructor + · -- -invWideBound ≤ x⁻¹ + calc ((-invWideBound : ℚ) : ℝ) = -(invWideBound : ℝ) := by simp + _ ≤ -|x⁻¹| := neg_le_neg hbnd + _ ≤ x⁻¹ := neg_abs_le x⁻¹ + · -- x⁻¹ ≤ invWideBound + calc x⁻¹ ≤ |x⁻¹| := le_abs_self x⁻¹ + _ ≤ (invWideBound : ℝ) := hbnd + +/-- Main correctness theorem for invInterval. + Fully proved for intervals bounded away from zero. + For intervals containing zero, requires a bound on |x⁻¹|. -/ +theorem mem_invInterval {x : ℝ} {I : IntervalRat} + (hx : x ∈ I) (hbnd : |x⁻¹| ≤ invWideBound) : + x⁻¹ ∈ invInterval I := by + -- Case split based on the interval position + by_cases hpos : I.lo > 0 + · exact mem_invInterval_pos hx hpos + · by_cases hneg : I.hi < 0 + · exact mem_invInterval_neg hx hneg + · exact mem_invInterval_wide hx hpos hneg hbnd + +/-- Correctness of invInterval for intervals bounded away from zero (no extra hypothesis needed) -/ +theorem mem_invInterval_nonzero {x : ℝ} {I : IntervalRat} + (hx : x ∈ I) (hnonzero : I.lo > 0 ∨ I.hi < 0) : + x⁻¹ ∈ invInterval I := by + rcases hnonzero with hpos | hneg + · exact mem_invInterval_pos hx hpos + · exact mem_invInterval_neg hx hneg + +/-! ### Core interval evaluation (computable) -/ + +/-- Variable assignment as intervals -/ +abbrev IntervalEnv := Nat → IntervalRat + +/-- Configuration for interval evaluation parameters. + This allows certificates to specify the required precision. -/ +structure EvalConfig where + /-- Number of Taylor series terms for transcendental functions -/ + taylorDepth : ℕ := 10 + deriving Repr, DecidableEq + +/-- Default evaluation configuration with 10 Taylor terms -/ +instance : Inhabited EvalConfig := ⟨{ taylorDepth := 10 }⟩ + +end LeanCert.Engine + +namespace LeanCert.Internal.Rational + +open LeanCert.Core LeanCert.Engine + +/-- Internal total evaluator for the theorem-restricted core expression fragment. + + For expressions in `ExprSupportedCore`, this computes correct interval + bounds with a fully-verified proof (given domain validity conditions). + + For inv: computes bounds using `invInterval`, but correctness is not + covered by `evalIntervalCore_correct`. Use `evalIntervalOption` for inv. + + For log: uses `logComputable` with Taylor series. Correctness requires + that the argument interval is positive (see `evalDomainValid`). + + This evaluator is COMPUTABLE, allowing use of `native_decide` for + bound checking in tactics. The transcendental functions (exp, sin, cos, log) + use Taylor series with configurable depth for precision control. -/ +def evalTotalCore (e : Expr) (ρ : IntervalEnv) (cfg : EvalConfig := {}) : IntervalRat := + match e with + | Expr.const q => IntervalRat.singleton q + | Expr.var idx => ρ idx + | Expr.add e₁ e₂ => IntervalRat.add (LeanCert.Internal.Rational.evalTotalCore e₁ ρ cfg) + (LeanCert.Internal.Rational.evalTotalCore e₂ ρ cfg) + | Expr.mul e₁ e₂ => IntervalRat.mul (LeanCert.Internal.Rational.evalTotalCore e₁ ρ cfg) + (LeanCert.Internal.Rational.evalTotalCore e₂ ρ cfg) + | Expr.neg e => IntervalRat.neg (LeanCert.Internal.Rational.evalTotalCore e ρ cfg) + | Expr.inv e => invInterval (LeanCert.Internal.Rational.evalTotalCore e ρ cfg) + | Expr.exp e => IntervalRat.expComputable (LeanCert.Internal.Rational.evalTotalCore e ρ cfg) + cfg.taylorDepth + | Expr.sin e => IntervalRat.sinComputableReduced (LeanCert.Internal.Rational.evalTotalCore e ρ + cfg) cfg.taylorDepth + | Expr.cos e => IntervalRat.cosComputableReduced (LeanCert.Internal.Rational.evalTotalCore e ρ + cfg) cfg.taylorDepth + | Expr.log e => IntervalRat.logComputable (LeanCert.Internal.Rational.evalTotalCore e ρ cfg) + cfg.taylorDepth + | Expr.atan e => atanInterval (LeanCert.Internal.Rational.evalTotalCore e ρ cfg) + | Expr.arsinh e => arsinhInterval (LeanCert.Internal.Rational.evalTotalCore e ρ cfg) + | Expr.atanh _ => default -- Not in ExprSupportedCore; use evalIntervalOption for atanh + | Expr.sinc _ => ⟨-1, 1, by norm_num⟩ -- sinc is bounded by [-1, 1] + | Expr.erf e => erfInterval (LeanCert.Internal.Rational.evalTotalCore e ρ cfg) cfg.taylorDepth + | Expr.sinh e => sinhInterval (LeanCert.Internal.Rational.evalTotalCore e ρ cfg) cfg.taylorDepth + | Expr.cosh e => coshInterval (LeanCert.Internal.Rational.evalTotalCore e ρ cfg) cfg.taylorDepth + | Expr.tanh e => tanhInterval (LeanCert.Internal.Rational.evalTotalCore e ρ cfg) + | Expr.sqrt e => IntervalRat.sqrtIntervalTightPrec (LeanCert.Internal.Rational.evalTotalCore e ρ + cfg) + | Expr.namedConst c => c.interval + +end LeanCert.Internal.Rational + +namespace LeanCert.Engine + +open LeanCert.Core + +/-- A real environment is contained in an interval environment -/ +def envMem (ρ_real : Nat → ℝ) (ρ_int : IntervalEnv) : Prop := + ∀ i, ρ_real i ∈ ρ_int i + +/-- Domain validity predicate for expressions with domain restrictions. + + For log: requires the argument interval to be strictly positive. + This ensures that logComputable returns correct bounds. + + For other expressions: always true (no domain restrictions). -/ +def evalDomainValid (e : Expr) (ρ : IntervalEnv) (cfg : EvalConfig := {}) : Prop := + match e with + | Expr.const _ => True + | Expr.var _ => True + | Expr.add e₁ e₂ => evalDomainValid e₁ ρ cfg ∧ evalDomainValid e₂ ρ cfg + | Expr.mul e₁ e₂ => evalDomainValid e₁ ρ cfg ∧ evalDomainValid e₂ ρ cfg + | Expr.neg e => evalDomainValid e ρ cfg + | Expr.inv e => evalDomainValid e ρ cfg -- Note: inv correctness not covered anyway + | Expr.exp e => evalDomainValid e ρ cfg + | Expr.sin e => evalDomainValid e ρ cfg + | Expr.cos e => evalDomainValid e ρ cfg + | Expr.log e => evalDomainValid e ρ cfg ∧ (LeanCert.Internal.Rational.evalTotalCore e ρ cfg).lo + > 0 + | Expr.atan e => evalDomainValid e ρ cfg + | Expr.arsinh e => evalDomainValid e ρ cfg + | Expr.atanh e => evalDomainValid e ρ cfg + | Expr.sinc e => evalDomainValid e ρ cfg + | Expr.erf e => evalDomainValid e ρ cfg + | Expr.sinh e => evalDomainValid e ρ cfg + | Expr.cosh e => evalDomainValid e ρ cfg + | Expr.tanh e => evalDomainValid e ρ cfg + | Expr.sqrt e => evalDomainValid e ρ cfg + | Expr.namedConst _ => True + +/-- Single-variable domain validity -/ +def evalDomainValid1 (e : Expr) (I : IntervalRat) (cfg : EvalConfig := {}) : Prop := + evalDomainValid e (fun _ => I) cfg + +/-- Computable (decidable) check for domain validity -/ +def checkDomainValid (e : Expr) (ρ : IntervalEnv) (cfg : EvalConfig := {}) : Bool := + match e with + | Expr.const _ => true + | Expr.var _ => true + | Expr.add e₁ e₂ => checkDomainValid e₁ ρ cfg && checkDomainValid e₂ ρ cfg + | Expr.mul e₁ e₂ => checkDomainValid e₁ ρ cfg && checkDomainValid e₂ ρ cfg + | Expr.neg e => checkDomainValid e ρ cfg + | Expr.inv e => checkDomainValid e ρ cfg + | Expr.exp e => checkDomainValid e ρ cfg + | Expr.sin e => checkDomainValid e ρ cfg + | Expr.cos e => checkDomainValid e ρ cfg + | Expr.log e => checkDomainValid e ρ cfg && decide ((LeanCert.Internal.Rational.evalTotalCore e + ρ cfg).lo > 0) + | Expr.atan e => checkDomainValid e ρ cfg + | Expr.arsinh e => checkDomainValid e ρ cfg + | Expr.atanh e => checkDomainValid e ρ cfg + | Expr.sinc e => checkDomainValid e ρ cfg + | Expr.erf e => checkDomainValid e ρ cfg + | Expr.sinh e => checkDomainValid e ρ cfg + | Expr.cosh e => checkDomainValid e ρ cfg + | Expr.tanh e => checkDomainValid e ρ cfg + | Expr.sqrt e => checkDomainValid e ρ cfg + | Expr.namedConst _ => true + +/-- Single-variable domain check -/ +def checkDomainValid1 (e : Expr) (I : IntervalRat) (cfg : EvalConfig := {}) : Bool := + checkDomainValid e (fun _ => I) cfg + +/-- checkDomainValid = true implies evalDomainValid -/ +theorem checkDomainValid_correct (e : Expr) (ρ : IntervalEnv) (cfg : EvalConfig) + (h : checkDomainValid e ρ cfg = true) : evalDomainValid e ρ cfg := by + induction e with + | const q => trivial + | var idx => trivial + | add e₁ e₂ ih₁ ih₂ => + simp only [checkDomainValid, Bool.and_eq_true] at h + simp only [evalDomainValid] + exact ⟨ih₁ h.1, ih₂ h.2⟩ + | mul e₁ e₂ ih₁ ih₂ => + simp only [checkDomainValid, Bool.and_eq_true] at h + simp only [evalDomainValid] + exact ⟨ih₁ h.1, ih₂ h.2⟩ + | neg e ih => + simp only [checkDomainValid] at h + simp only [evalDomainValid] + exact ih h + | inv e ih => + simp only [checkDomainValid] at h + simp only [evalDomainValid] + exact ih h + | exp e ih => + simp only [checkDomainValid] at h + simp only [evalDomainValid] + exact ih h + | sin e ih => + simp only [checkDomainValid] at h + simp only [evalDomainValid] + exact ih h + | cos e ih => + simp only [checkDomainValid] at h + simp only [evalDomainValid] + exact ih h + | log e ih => + simp only [checkDomainValid, Bool.and_eq_true, decide_eq_true_eq] at h + simp only [evalDomainValid] + exact ⟨ih h.1, h.2⟩ + | atan e ih => + simp only [checkDomainValid] at h + simp only [evalDomainValid] + exact ih h + | arsinh e ih => + simp only [checkDomainValid] at h + simp only [evalDomainValid] + exact ih h + | atanh e ih => + simp only [checkDomainValid] at h + simp only [evalDomainValid] + exact ih h + | sinc e ih => + simp only [checkDomainValid] at h + simp only [evalDomainValid] + exact ih h + | erf e ih => + simp only [checkDomainValid] at h + simp only [evalDomainValid] + exact ih h + | sinh e ih => + simp only [checkDomainValid] at h + simp only [evalDomainValid] + exact ih h + | cosh e ih => + simp only [checkDomainValid] at h + simp only [evalDomainValid] + exact ih h + | tanh e ih => + simp only [checkDomainValid] at h + simp only [evalDomainValid] + exact ih h + | sqrt e ih => + simp only [checkDomainValid] at h + simp only [evalDomainValid] + exact ih h + | namedConst _ => trivial + +/-- checkDomainValid1 = true implies evalDomainValid1 -/ +theorem checkDomainValid1_correct (e : Expr) (I : IntervalRat) (cfg : EvalConfig) + (h : checkDomainValid1 e I cfg = true) : evalDomainValid1 e I cfg := + checkDomainValid_correct e (fun _ => I) cfg h + +/-- evalDomainValid is equivalent to checkDomainValid = true -/ +theorem evalDomainValid_iff_checkDomainValid (e : Expr) (ρ : IntervalEnv) (cfg : EvalConfig) : + evalDomainValid e ρ cfg ↔ checkDomainValid e ρ cfg = true := by + constructor + · -- evalDomainValid → checkDomainValid + intro h + induction e with + | const _ => rfl + | var _ => rfl + | add e₁ e₂ ih₁ ih₂ => + simp only [evalDomainValid] at h + simp only [checkDomainValid, Bool.and_eq_true] + exact ⟨ih₁ h.1, ih₂ h.2⟩ + | mul e₁ e₂ ih₁ ih₂ => + simp only [evalDomainValid] at h + simp only [checkDomainValid, Bool.and_eq_true] + exact ⟨ih₁ h.1, ih₂ h.2⟩ + | neg e ih => + simp only [evalDomainValid] at h + simp only [checkDomainValid] + exact ih h + | inv e ih => + simp only [evalDomainValid] at h + simp only [checkDomainValid] + exact ih h + | exp e ih => + simp only [evalDomainValid] at h + simp only [checkDomainValid] + exact ih h + | sin e ih => + simp only [evalDomainValid] at h + simp only [checkDomainValid] + exact ih h + | cos e ih => + simp only [evalDomainValid] at h + simp only [checkDomainValid] + exact ih h + | log e ih => + simp only [evalDomainValid] at h + simp only [checkDomainValid, Bool.and_eq_true, decide_eq_true_eq] + exact ⟨ih h.1, h.2⟩ + | atan e ih => + simp only [evalDomainValid] at h + simp only [checkDomainValid] + exact ih h + | arsinh e ih => + simp only [evalDomainValid] at h + simp only [checkDomainValid] + exact ih h + | atanh e ih => + simp only [evalDomainValid] at h + simp only [checkDomainValid] + exact ih h + | sinc e ih => + simp only [evalDomainValid] at h + simp only [checkDomainValid] + exact ih h + | erf e ih => + simp only [evalDomainValid] at h + simp only [checkDomainValid] + exact ih h + | sinh e ih => + simp only [evalDomainValid] at h + simp only [checkDomainValid] + exact ih h + | cosh e ih => + simp only [evalDomainValid] at h + simp only [checkDomainValid] + exact ih h + | tanh e ih => + simp only [evalDomainValid] at h + simp only [checkDomainValid] + exact ih h + | sqrt e ih => + simp only [evalDomainValid] at h + simp only [checkDomainValid] + exact ih h + | namedConst _ => rfl + · -- checkDomainValid → evalDomainValid + exact checkDomainValid_correct e ρ cfg + +/-- Decidability instance for domain validity -/ +instance decidableEvalDomainValid (e : Expr) (ρ : IntervalEnv) (cfg : EvalConfig) : + Decidable (evalDomainValid e ρ cfg) := + decidable_of_iff' _ (evalDomainValid_iff_checkDomainValid e ρ cfg) + +/-- Decidability instance for single-variable domain validity -/ +instance decidableEvalDomainValid1 (e : Expr) (I : IntervalRat) (cfg : EvalConfig) : + Decidable (evalDomainValid1 e I cfg) := + decidableEvalDomainValid e (fun _ => I) cfg + +/-- ADSupported expressions (which don't include log) always have valid domains. + This is because only log has domain restrictions (positive argument). -/ +theorem ADSupported.domainValid {e : Expr} (hsupp : ADSupported e) + (ρ : IntervalEnv) (cfg : EvalConfig) : evalDomainValid e ρ cfg := by + induction hsupp generalizing ρ cfg with + | const _ => trivial + | var _ => trivial + | add _ _ ih₁ ih₂ => exact ⟨ih₁ ρ cfg, ih₂ ρ cfg⟩ + | mul _ _ ih₁ ih₂ => exact ⟨ih₁ ρ cfg, ih₂ ρ cfg⟩ + | neg _ ih => exact ih ρ cfg + | sin _ ih => exact ih ρ cfg + | cos _ ih => exact ih ρ cfg + | exp _ ih => exact ih ρ cfg + +/-- Single-variable version of domainValid for ADSupported -/ +theorem exprSupported_domainValid1 {e : Expr} (hsupp : ADSupported e) + (I : IntervalRat) (cfg : EvalConfig) : evalDomainValid1 e I cfg := + ADSupported.domainValid hsupp (fun _ => I) cfg + +/-- Fundamental correctness theorem for core evaluation. + + This theorem is FULLY PROVED for core expressions (no sorry, no axioms). + The `hsupp` hypothesis ensures we only consider expressions in the + computable verified subset. The `hdom` hypothesis ensures domain validity + (e.g., log arguments are positive). Works for any Taylor depth. -/ +theorem evalIntervalCore_correct (e : Expr) (hsupp : ExprSupportedCore e) + (ρ_real : Nat → ℝ) (ρ_int : IntervalEnv) (hρ : envMem ρ_real ρ_int) + (cfg : EvalConfig := {}) + (hdom : evalDomainValid e ρ_int cfg) : + Expr.eval ρ_real e ∈ LeanCert.Internal.Rational.evalTotalCore e ρ_int cfg := by + induction hsupp with + | const q => + simp only [Expr.eval_const, LeanCert.Internal.Rational.evalTotalCore] + exact IntervalRat.mem_singleton q + | var idx => + simp only [Expr.eval_var, LeanCert.Internal.Rational.evalTotalCore] + exact hρ idx + | add h₁ h₂ ih₁ ih₂ => + simp only [evalDomainValid] at hdom + simp only [Expr.eval_add, LeanCert.Internal.Rational.evalTotalCore] + exact IntervalRat.mem_add (ih₁ hdom.1) (ih₂ hdom.2) + | mul h₁ h₂ ih₁ ih₂ => + simp only [evalDomainValid] at hdom + simp only [Expr.eval_mul, LeanCert.Internal.Rational.evalTotalCore] + exact IntervalRat.mem_mul (ih₁ hdom.1) (ih₂ hdom.2) + | neg _ ih => + simp only [evalDomainValid] at hdom + simp only [Expr.eval_neg, LeanCert.Internal.Rational.evalTotalCore] + exact IntervalRat.mem_neg (ih hdom) + | sin _ ih => + simp only [evalDomainValid] at hdom + simp only [Expr.eval_sin, LeanCert.Internal.Rational.evalTotalCore] + exact IntervalRat.mem_sinComputableReduced (ih hdom) cfg.taylorDepth + | cos _ ih => + simp only [evalDomainValid] at hdom + simp only [Expr.eval_cos, LeanCert.Internal.Rational.evalTotalCore] + exact IntervalRat.mem_cosComputableReduced (ih hdom) cfg.taylorDepth + | exp _ ih => + simp only [evalDomainValid] at hdom + simp only [Expr.eval_exp, LeanCert.Internal.Rational.evalTotalCore] + exact IntervalRat.mem_expComputable (ih hdom) cfg.taylorDepth + | log _ ih => + simp only [evalDomainValid] at hdom + simp only [Expr.eval_log, LeanCert.Internal.Rational.evalTotalCore] + exact IntervalRat.mem_logComputable (ih hdom.1) hdom.2 cfg.taylorDepth + | sqrt _ ih => + simp only [evalDomainValid] at hdom + simp only [Expr.eval_sqrt, LeanCert.Internal.Rational.evalTotalCore] + exact IntervalRat.mem_sqrtIntervalTightPrec' (ih hdom) + | sinh _ ih => + simp only [evalDomainValid] at hdom + simp only [Expr.eval_sinh, LeanCert.Internal.Rational.evalTotalCore, sinhInterval] + exact IntervalRat.mem_sinhComputable (ih hdom) cfg.taylorDepth + | cosh _ ih => + simp only [evalDomainValid] at hdom + simp only [Expr.eval_cosh, LeanCert.Internal.Rational.evalTotalCore, coshInterval] + exact IntervalRat.mem_coshComputable (ih hdom) cfg.taylorDepth + | tanh _ ih => + simp only [evalDomainValid] at hdom + simp only [Expr.eval_tanh, LeanCert.Internal.Rational.evalTotalCore, tanhInterval] + exact mem_tanhInterval (ih hdom) + | erf _ ih => + simp only [evalDomainValid] at hdom + simp only [Expr.eval_erf, LeanCert.Internal.Rational.evalTotalCore] + exact mem_erfInterval (ih hdom) cfg.taylorDepth + | namedConst c => + simp only [Expr.eval_namedConst, LeanCert.Internal.Rational.evalTotalCore] + exact c.mem_interval + +/-! ### Convenience functions -/ + +end LeanCert.Engine + +namespace LeanCert.Internal.Rational + +open LeanCert.Core LeanCert.Engine + +/-- Computable single-variable evaluation for core expressions -/ +def evalTotalCore1 (e : Expr) (I : IntervalRat) (cfg : EvalConfig := {}) : IntervalRat := + LeanCert.Internal.Rational.evalTotalCore e (fun _ => I) cfg + +end LeanCert.Internal.Rational + +namespace LeanCert.Engine + +open LeanCert.Core + +/-- Correctness for single-variable core evaluation -/ +theorem evalIntervalCore1_correct (e : Expr) (hsupp : ExprSupportedCore e) + (x : ℝ) (I : IntervalRat) (hx : x ∈ I) + (cfg : EvalConfig := {}) + (hdom : evalDomainValid1 e I cfg) : + Expr.eval (fun _ => x) e ∈ LeanCert.Internal.Rational.evalTotalCore1 e I cfg := + evalIntervalCore_correct e hsupp _ _ (fun _ => hx) cfg hdom + +/-! ### Smart constructors for supported expressions -/ + +/-- Build a constant expression (always supported) -/ +def mkConst (q : ℚ) : { e : Expr // ADSupported e } := + ⟨Expr.const q, ADSupported.const q⟩ + +/-- Build a variable expression (always supported) -/ +def mkVar (idx : Nat) : { e : Expr // ADSupported e } := + ⟨Expr.var idx, ADSupported.var idx⟩ + +/-- Build an addition (supported if both operands are supported) -/ +def mkAdd (e₁ e₂ : { e : Expr // ADSupported e }) : { e : Expr // ADSupported e } := + ⟨Expr.add e₁.val e₂.val, ADSupported.add e₁.property e₂.property⟩ + +/-- Build a multiplication (supported if both operands are supported) -/ +def mkMul (e₁ e₂ : { e : Expr // ADSupported e }) : { e : Expr // ADSupported e } := + ⟨Expr.mul e₁.val e₂.val, ADSupported.mul e₁.property e₂.property⟩ + +/-- Build a negation (supported if operand is supported) -/ +def mkNeg (e : { e : Expr // ADSupported e }) : { e : Expr // ADSupported e } := + ⟨Expr.neg e.val, ADSupported.neg e.property⟩ + +/-- Build a sin (supported if operand is supported) -/ +def mkSin (e : { e : Expr // ADSupported e }) : { e : Expr // ADSupported e } := + ⟨Expr.sin e.val, ADSupported.sin e.property⟩ + +/-- Build a cos (supported if operand is supported) -/ +def mkCos (e : { e : Expr // ADSupported e }) : { e : Expr // ADSupported e } := + ⟨Expr.cos e.val, ADSupported.cos e.property⟩ + +/-- Build an exp (supported if operand is supported) -/ +def mkExp (e : { e : Expr // ADSupported e }) : { e : Expr // ADSupported e } := + ⟨Expr.exp e.val, ADSupported.exp e.property⟩ + +end LeanCert.Engine + +end + +end + +section + +/- +Copyright (c) 2026 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Checked evaluation results + +Certified evaluators return a finite enclosure only after all partial-domain +conditions have been checked. Failures are data: callers must propagate them +instead of substituting a finite sentinel that could be mistaken for an +enclosure. +-/ + +@[expose] public section + +namespace LeanCert.Engine + +open LeanCert.Core + +/-- Why a checked evaluator could not produce a finite certified enclosure. -/ +inductive EvalError where + | reciprocalContainsZero (interval : IntervalRat) + | logNonpositive (interval : IntervalRat) + | atanhOutsideUnitBall (interval : IntervalRat) + | unsupportedBackend (operation : String) + | unsupportedFeature (feature : String) + | invalidConfiguration (message : String) + | nestedFailure (operation : String) (cause : EvalError) + deriving Repr, DecidableEq + +/-- Result type used by checked evaluators and public computation APIs. -/ +abbrev EvalResult (α : Type) := Except EvalError α + +end LeanCert.Engine + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Extended (Noncomputable) Interval Evaluation + +This file implements the noncomputable interval evaluator for `LeanCert.Core.Expr`, +supporting exp with floor/ceil bounds and partial evaluation for inv/log. + +## Main definitions + +* `evalInterval` - Noncomputable interval evaluator supporting exp +* `evalInterval_correct` - Correctness theorem for extended evaluation +* `evalIntervalOption` - Partial (Option-returning) evaluator with inv/log support +* `evalIntervalOption_correct` - Correctness theorem for partial evaluation + +## Design notes + +The extended evaluator uses `Real.exp` with floor/ceil bounds, which requires +noncomputability. For computability, use `LeanCert.Internal.Rational.evalTotalCore` instead. + +The partial evaluator `evalIntervalOption` returns `none` when: +- The denominator interval for `inv` contains zero +- The argument interval for `log` is not strictly positive +- The argument for `atanh` is not in (-1, 1) + +When it returns `some I`, correctness is guaranteed. +-/ + +/-! ### Extended interval evaluation (noncomputable, supports exp) -/ + +@[expose] public section + +namespace LeanCert.Engine + +open LeanCert.Core + +end LeanCert.Engine + +namespace LeanCert.Internal.Rational + +open LeanCert.Core LeanCert.Engine + +/-- Noncomputable interval evaluator supporting exp. + + For supported expressions (const, var, add, mul, neg, sin, cos, exp), this + computes correct interval bounds with a fully-verified proof. + + For unsupported expressions (inv, log), returns a default interval. + Do not rely on results for expressions containing inv or log. + Use evalIntervalOption for partial functions like inv and log. + + This evaluator is NONCOMPUTABLE due to exp using Real.exp with floor/ceil. -/ +noncomputable def evalUnchecked (e : Expr) (ρ : IntervalEnv) : IntervalRat := + match e with + | Expr.const q => IntervalRat.singleton q + | Expr.var idx => ρ idx + | Expr.add e₁ e₂ => IntervalRat.add (evalUnchecked e₁ ρ) (evalUnchecked e₂ ρ) + | Expr.mul e₁ e₂ => IntervalRat.mul (evalUnchecked e₁ ρ) (evalUnchecked e₂ ρ) + | Expr.neg e => IntervalRat.neg (evalUnchecked e ρ) + | Expr.inv _ => default -- Not in ADSupported; safe default + | Expr.exp e => IntervalRat.expInterval (evalUnchecked e ρ) + | Expr.sin e => sinInterval (evalUnchecked e ρ) + | Expr.cos e => cosInterval (evalUnchecked e ρ) + | Expr.log _ => default -- Not in ADSupported; use evalIntervalOption for log + | Expr.atan e => atanInterval (evalUnchecked e ρ) + | Expr.arsinh e => arsinhInterval (evalUnchecked e ρ) + | Expr.atanh _ => default -- Not in ADSupported; use evalIntervalOption for atanh + | Expr.sinc _ => ⟨-1, 1, by norm_num⟩ -- sinc is bounded by [-1, 1] + | Expr.erf _ => ⟨-1, 1, by norm_num⟩ -- erf is bounded by [-1, 1] + | Expr.sinh _ => default -- sinh unbounded; use LeanCert.Internal.Rational.evalTotalCore for + -- tight bounds + | Expr.cosh _ => default -- cosh unbounded; use LeanCert.Internal.Rational.evalTotalCore for + -- tight bounds + | Expr.tanh _ => default -- tanh bounded but not in ADSupported; use + -- LeanCert.Internal.Rational.evalTotalCore + | Expr.sqrt e => IntervalRat.sqrtInterval (evalUnchecked e ρ) + | Expr.namedConst c => c.interval + +end LeanCert.Internal.Rational + +namespace LeanCert.Engine + +open LeanCert.Core + +/-- Fundamental correctness theorem for extended evaluation. + + This theorem is FULLY PROVED (no sorry, no axioms) for supported expressions. + The `hsupp` hypothesis ensures we only consider expressions in the verified subset. -/ +theorem evalInterval_correct (e : Expr) (hsupp : ADSupported e) + (ρ_real : Nat → ℝ) (ρ_int : IntervalEnv) (hρ : envMem ρ_real ρ_int) : + Expr.eval ρ_real e ∈ LeanCert.Internal.Rational.evalUnchecked e ρ_int := by + induction hsupp with + | const q => + simp only [Expr.eval_const, LeanCert.Internal.Rational.evalUnchecked] + exact IntervalRat.mem_singleton q + | var idx => + simp only [Expr.eval_var, LeanCert.Internal.Rational.evalUnchecked] + exact hρ idx + | add h₁ h₂ ih₁ ih₂ => + simp only [Expr.eval_add, LeanCert.Internal.Rational.evalUnchecked] + exact IntervalRat.mem_add ih₁ ih₂ + | mul h₁ h₂ ih₁ ih₂ => + simp only [Expr.eval_mul, LeanCert.Internal.Rational.evalUnchecked] + exact IntervalRat.mem_mul ih₁ ih₂ + | neg _ ih => + simp only [Expr.eval_neg, LeanCert.Internal.Rational.evalUnchecked] + exact IntervalRat.mem_neg ih + | sin _ ih => + simp only [Expr.eval_sin, LeanCert.Internal.Rational.evalUnchecked] + exact mem_sinInterval ih + | cos _ ih => + simp only [Expr.eval_cos, LeanCert.Internal.Rational.evalUnchecked] + exact mem_cosInterval ih + | exp _ ih => + simp only [Expr.eval_exp, LeanCert.Internal.Rational.evalUnchecked] + exact IntervalRat.mem_expInterval ih + +/-! ### Convenience functions + +Note: LeanCert.Internal.Rational.evalTotalCore now uses Taylor series for exp/sin/cos, which gives +different (often tighter) intervals than evalInterval's floor/ceil bounds. +Both are correct, but they are not necessarily equal. + +For purely algebraic expressions (const, var, add, mul, neg), +both evaluators give identical results. -/ + +end LeanCert.Engine + +namespace LeanCert.Internal.Rational + +open LeanCert.Core LeanCert.Engine + +/-- Internal single-variable wrapper around `evalUnchecked`. -/ +noncomputable def evalUnchecked1 (e : Expr) (I : IntervalRat) : IntervalRat := + evalUnchecked e (fun _ => I) + +end LeanCert.Internal.Rational + +namespace LeanCert.Engine + +open LeanCert.Core + +/-- Correctness for single-variable extended evaluation -/ +theorem evalInterval1_correct (e : Expr) (hsupp : ADSupported e) + (x : ℝ) (I : IntervalRat) (hx : x ∈ I) : + Expr.eval (fun _ => x) e ∈ LeanCert.Internal.Rational.evalUnchecked1 e I := + evalInterval_correct e hsupp _ _ (fun _ => hx) + +/-! ### Partial interval evaluation with inv support -/ + +/-- Partial (Option-returning) interval evaluator supporting inv. + + For expressions with inv, this evaluator returns `none` if the denominator + interval contains zero, and `some I` with a correct enclosure otherwise. + + This allows safe interval evaluation of expressions like 1/x when we can + verify the denominator is bounded away from zero. + + For expressions without inv, this always returns `some` with the same + result as `evalInterval`. -/ +def evalIntervalLogDepth : ℕ := 60 + +/-- The Taylor truncation depth used by the checked exponential evaluator. -/ +def evalIntervalExpDepth : ℕ := 30 + +/-- Taylor depth used by the strict `atanh` evaluator. -/ +def evalIntervalAtanhDepth : ℕ := 30 + +/-- Evaluate an expression by rational intervals, failing when a domain check fails. -/ +def evalIntervalOption (e : Expr) (ρ : IntervalEnv) : Option IntervalRat := + match e with + | Expr.const q => some (IntervalRat.singleton q) + | Expr.var idx => some (ρ idx) + | Expr.add e₁ e₂ => + match evalIntervalOption e₁ ρ, evalIntervalOption e₂ ρ with + | some I₁, some I₂ => some (IntervalRat.add I₁ I₂) + | _, _ => none + | Expr.mul e₁ e₂ => + match evalIntervalOption e₁ ρ, evalIntervalOption e₂ ρ with + | some I₁, some I₂ => some (IntervalRat.mul I₁ I₂) + | _, _ => none + | Expr.neg e => + match evalIntervalOption e ρ with + | some I => some (IntervalRat.neg I) + | none => none + | Expr.inv e₁ => + match evalIntervalOption e₁ ρ with + | none => none + | some J => + if h : IntervalRat.containsZero J then + none + else + some (IntervalRat.invNonzero ⟨J, h⟩) + | Expr.exp e => + match evalIntervalOption e ρ with + | some I => some (IntervalRat.expComputable I evalIntervalExpDepth) + | none => none + | Expr.sin e => + match evalIntervalOption e ρ with + | some I => some (sinInterval I) + | none => none + | Expr.cos e => + match evalIntervalOption e ρ with + | some I => some (cosInterval I) + | none => none + | Expr.log e => + match evalIntervalOption e ρ with + | none => none + | some J => + if h : IntervalRat.isPositive J then + some (IntervalRat.logComputable J evalIntervalLogDepth) + else + none + | Expr.atan e => + match evalIntervalOption e ρ with + | some I => some (atanInterval I) + | none => none + | Expr.arsinh e => + match evalIntervalOption e ρ with + | some I => some (arsinhInterval I) + | none => none + | Expr.atanh e => + match evalIntervalOption e ρ with + | none => none + | some J => + if -1 < J.lo ∧ J.hi < 1 then + some (IntervalRat.atanhComputable J evalIntervalAtanhDepth) + else + none + | Expr.sinc e => + match evalIntervalOption e ρ with + | some _ => some ⟨-1, 1, by norm_num⟩ -- sinc is bounded by [-1, 1] + | none => none + | Expr.erf e => + match evalIntervalOption e ρ with + | some _ => some ⟨-1, 1, by norm_num⟩ -- erf is bounded by [-1, 1] + | none => none + | Expr.sinh e => + match evalIntervalOption e ρ with + | some I => some (sinhInterval I) + | none => none + | Expr.cosh e => + match evalIntervalOption e ρ with + | some I => some (coshInterval I) + | none => none + | Expr.tanh e => + match evalIntervalOption e ρ with + | some I => some (tanhInterval I) + | none => none + | Expr.sqrt e => + match evalIntervalOption e ρ with + | some I => some (IntervalRat.sqrtInterval I) + | none => none + | Expr.namedConst c => some c.interval + +/-- Main correctness theorem for evalIntervalOption (approach 1 from plan). + + When evalIntervalOption returns `some I`: + 1. The expression evaluates to a value in I for all ρ_real ∈ ρ_int + 2. All inv denominators along the evaluation are guaranteed nonzero + (because their intervals don't contain zero) + + This follows your suggestion to keep ADSupported syntactic and add + separate semantic hypotheses. The key insight is that if evalIntervalOption + succeeds (returns Some), the interval arithmetic has already verified + that no denominator interval contains zero. -/ +theorem evalIntervalOption_correct (e : Expr) + (ρ_int : IntervalEnv) (I : IntervalRat) + (hsome : evalIntervalOption e ρ_int = some I) + (ρ_real : Nat → ℝ) (hρ : envMem ρ_real ρ_int) : + Expr.eval ρ_real e ∈ I := by + induction e generalizing I with + | const q => + simp only [evalIntervalOption] at hsome + cases hsome + simp only [Expr.eval_const] + exact IntervalRat.mem_singleton q + | var idx => + simp only [evalIntervalOption] at hsome + cases hsome + simp only [Expr.eval_var] + exact hρ idx + | add e₁ e₂ ih₁ ih₂ => + simp only [evalIntervalOption] at hsome + cases heq₁ : evalIntervalOption e₁ ρ_int with + | none => simp only [heq₁] at hsome; contradiction + | some I₁ => + cases heq₂ : evalIntervalOption e₂ ρ_int with + | none => simp only [heq₁, heq₂] at hsome; contradiction + | some I₂ => + simp only [heq₁, heq₂] at hsome + cases hsome + simp only [Expr.eval_add] + exact IntervalRat.mem_add (ih₁ I₁ heq₁) (ih₂ I₂ heq₂) + | mul e₁ e₂ ih₁ ih₂ => + simp only [evalIntervalOption] at hsome + cases heq₁ : evalIntervalOption e₁ ρ_int with + | none => simp only [heq₁] at hsome; contradiction + | some I₁ => + cases heq₂ : evalIntervalOption e₂ ρ_int with + | none => simp only [heq₁, heq₂] at hsome; contradiction + | some I₂ => + simp only [heq₁, heq₂] at hsome + cases hsome + simp only [Expr.eval_mul] + exact IntervalRat.mem_mul (ih₁ I₁ heq₁) (ih₂ I₂ heq₂) + | neg e ih => + simp only [evalIntervalOption] at hsome + cases heq : evalIntervalOption e ρ_int with + | none => simp only [heq] at hsome; contradiction + | some I' => + simp only [heq] at hsome + cases hsome + simp only [Expr.eval_neg] + exact IntervalRat.mem_neg (ih I' heq) + | inv e ih => + simp only [evalIntervalOption] at hsome + cases heq : evalIntervalOption e ρ_int with + | none => simp only [heq] at hsome; contradiction + | some J => + simp only [heq] at hsome + split at hsome + · contradiction + · rename_i hnonzero + cases hsome + simp only [Expr.eval_inv] + have hJ_mem := ih J heq + -- The denominator is nonzero because J doesn't contain zero and eval ∈ J + have heval_ne : Expr.eval ρ_real e ≠ 0 := by + intro heq_zero + rw [heq_zero] at hJ_mem + simp only [IntervalRat.mem_def] at hJ_mem + simp only [IntervalRat.containsZero, not_and, not_le] at hnonzero + rcases le_or_gt J.lo 0 with hlo | hlo + · have hhi_nonneg : (0 : ℚ) ≤ J.hi := by + have h : (0 : ℝ) ≤ J.hi := hJ_mem.2 + exact_mod_cast h + exact absurd (hnonzero hlo) (not_lt.mpr hhi_nonneg) + · have hlo_pos : (0 : ℝ) < J.lo := by exact_mod_cast hlo + exact absurd hJ_mem.1 (not_le.mpr hlo_pos) + exact IntervalRat.mem_invNonzero hJ_mem heval_ne + | log e ih => + simp only [evalIntervalOption] at hsome + cases heq : evalIntervalOption e ρ_int with + | none => simp only [heq] at hsome; contradiction + | some J => + simp only [heq] at hsome + split at hsome + · rename_i hpos + cases hsome + simp only [Expr.eval_log] + have hJ_mem := ih J heq + -- The argument is positive because J.lo > 0 and eval ∈ J + exact IntervalRat.mem_logComputable hJ_mem hpos evalIntervalLogDepth + · contradiction + | atanh e ih => + simp only [evalIntervalOption] at hsome + cases heq : evalIntervalOption e ρ_int with + | none => simp only [heq] at hsome; contradiction + | some J => + simp only [heq] at hsome + split at hsome + · rename_i hunit + cases hsome + simp only [Expr.eval_atanh] + exact IntervalRat.mem_atanhComputable (ih J heq) hunit.1 hunit.2 + evalIntervalAtanhDepth + · contradiction + | sinc e ih => + simp only [evalIntervalOption] at hsome + cases heq : evalIntervalOption e ρ_int with + | none => simp only [heq] at hsome; contradiction + | some I' => + simp only [heq] at hsome + cases hsome + simp only [Expr.eval_sinc] + -- sinc(x) ∈ [-1, 1] for all x, using Mathlib's Real.sinc lemmas + simp only [IntervalRat.mem_def] + simpa only [Set.mem_Icc, Rat.cast_neg, Rat.cast_one] using + (Real.sinc_mem_Icc (Expr.eval ρ_real e)) + | erf e ih => + simp only [evalIntervalOption] at hsome + cases heq : evalIntervalOption e ρ_int with + | none => simp only [heq] at hsome; contradiction + | some I' => + simp only [heq] at hsome + cases hsome + simp only [Expr.eval_erf] + -- erf(x) ∈ [-1, 1] for all x + simp only [IntervalRat.mem_def] + simpa only [Set.mem_Icc, Rat.cast_neg, Rat.cast_one] using + (Real.erf_mem_Icc (Expr.eval ρ_real e)) + | namedConst c => + simp only [evalIntervalOption] at hsome + cases hsome + simp only [Expr.eval_namedConst] + exact c.mem_interval + | exp e ih | sin e ih | cos e ih | sinh e ih | cosh e ih | tanh e ih + | atan e ih | arsinh e ih | sqrt e ih => + cases heq : evalIntervalOption e ρ_int with + | none => simp only [evalIntervalOption, heq] at hsome; contradiction + | some I' => + simp only [evalIntervalOption, heq] at hsome + cases hsome + first + | exact IntervalRat.mem_expComputable (ih I' heq) evalIntervalExpDepth + | exact mem_sinInterval (ih I' heq) + | exact mem_cosInterval (ih I' heq) + | exact IntervalRat.mem_sinhComputable (ih I' heq) 10 + | exact IntervalRat.mem_coshComputable (ih I' heq) 10 + | exact mem_tanhInterval (ih I' heq) + | exact mem_atanInterval (ih I' heq) + | exact mem_arsinhInterval (ih I' heq) + | exact IntervalRat.mem_sqrtInterval' (ih I' heq) + +/-! ### Checked API with diagnostics -/ + +/-- Diagnose the first partial-domain failure after `evalIntervalOption` returned +`none`. This function is deliberately separate from the trusted computation: +soundness depends only on successful `evalIntervalOption`, while diagnostics may be +refined without changing the correctness theorem. -/ +def diagnoseEvalIntervalFailure (e : Expr) (ρ : IntervalEnv) : EvalError := + match e with + | .add e₁ e₂ | .mul e₁ e₂ => + if evalIntervalOption e₁ ρ = none then + .nestedFailure "left operand" (diagnoseEvalIntervalFailure e₁ ρ) + else + .nestedFailure "right operand" (diagnoseEvalIntervalFailure e₂ ρ) + | .neg e | .exp e | .sin e | .cos e | .atan e | .arsinh e | .sinc e | + .erf e | .sinh e | .cosh e | .tanh e | .sqrt e => + .nestedFailure "unary operand" (diagnoseEvalIntervalFailure e ρ) + | .inv e => + match evalIntervalOption e ρ with + | some I => .reciprocalContainsZero I + | none => .nestedFailure "reciprocal operand" (diagnoseEvalIntervalFailure e ρ) + | .log e => + match evalIntervalOption e ρ with + | some I => .logNonpositive I + | none => .nestedFailure "logarithm operand" (diagnoseEvalIntervalFailure e ρ) + | .atanh e => + match evalIntervalOption e ρ with + | some I => .atanhOutsideUnitBall I + | none => .nestedFailure "atanh operand" (diagnoseEvalIntervalFailure e ρ) + | .const _ | .var _ | .namedConst _ => + .unsupportedBackend "internal: total expression unexpectedly failed" +termination_by e + +/-- Checked rational evaluator. Every successful result is a certified finite +enclosure; domain-invalid expressions return a structured error. -/ +def evalIntervalChecked (e : Expr) (ρ : IntervalEnv) : EvalResult IntervalRat := + match evalIntervalOption e ρ with + | some I => .ok I + | none => .error (diagnoseEvalIntervalFailure e ρ) + +/-- Success of `evalIntervalChecked` is sufficient for enclosure correctness +for every expression constructor. -/ +theorem evalIntervalChecked_correct (e : Expr) (ρ_int : IntervalEnv) (I : IntervalRat) + (hsuccess : evalIntervalChecked e ρ_int = .ok I) + (ρ_real : Nat → ℝ) (hρ : envMem ρ_real ρ_int) : + Expr.eval ρ_real e ∈ I := by + cases heval : evalIntervalOption e ρ_int with + | none => + rw [evalIntervalChecked, heval] at hsuccess + contradiction + | some J => + rw [evalIntervalChecked, heval] at hsuccess + injection hsuccess with hJI + subst I + exact evalIntervalOption_correct e ρ_int J heval ρ_real hρ + +/-- Checked Rational evaluation with a tight path for the verified computable +core. Unsupported syntax or a failed core-domain check falls back to the +general checked evaluator, preserving its structured domain errors. -/ +def evalIntervalTightChecked (e : Expr) (ρ : IntervalEnv) + (cfg : EvalConfig := {}) : EvalResult IntervalRat := + if e.checkSupportedCore && checkDomainValid e ρ cfg then + .ok (LeanCert.Internal.Rational.evalTotalCore e ρ cfg) + else + evalIntervalChecked e ρ + +/-- Every successful tight checked Rational evaluation encloses the expression +value. The core branch uses the core correctness theorem; the fallback uses +the general checked evaluator theorem. -/ +theorem evalIntervalTightChecked_correct (e : Expr) (ρ_int : IntervalEnv) + (cfg : EvalConfig) (I : IntervalRat) + (hsuccess : evalIntervalTightChecked e ρ_int cfg = .ok I) + (ρ_real : Nat → ℝ) (hρ : envMem ρ_real ρ_int) : + Expr.eval ρ_real e ∈ I := by + by_cases hsupp : e.checkSupportedCore = true + · by_cases hdom : checkDomainValid e ρ_int cfg = true + · have hsupp' := Expr.checkSupportedCore_correct hsupp + have hdom' := checkDomainValid_correct e ρ_int cfg hdom + have hmem := evalIntervalCore_correct e hsupp' ρ_real ρ_int hρ cfg hdom' + simp only [ExceptT.stM_eq, evalIntervalTightChecked, hsupp, hdom, Bool.and_self, ↓reduceIte, + Except.ok.injEq] at hsuccess + subst I + exact hmem + · have hfallback : + evalIntervalTightChecked e ρ_int cfg = evalIntervalChecked e ρ_int := by + simp [evalIntervalTightChecked, hsupp, hdom] + rw [hfallback] at hsuccess + exact evalIntervalChecked_correct e ρ_int I hsuccess ρ_real hρ + · have hfallback : + evalIntervalTightChecked e ρ_int cfg = evalIntervalChecked e ρ_int := by + simp [evalIntervalTightChecked, hsupp] + rw [hfallback] at hsuccess + exact evalIntervalChecked_correct e ρ_int I hsuccess ρ_real hρ + +/-- Single-variable version of evalIntervalOption -/ +def evalIntervalOption1 (e : Expr) (I : IntervalRat) : Option IntervalRat := + evalIntervalOption e (fun _ => I) + +/-- Correctness for single-variable partial evaluation -/ +theorem evalIntervalOption1_correct (e : Expr) + (I : IntervalRat) (J : IntervalRat) + (hsome : evalIntervalOption1 e I = some J) + (x : ℝ) (hx : x ∈ I) : + Expr.eval (fun _ => x) e ∈ J := + evalIntervalOption_correct e _ J hsome _ (fun _ => hx) + +/-- When evalIntervalOption succeeds, we get bounds -/ +theorem evalIntervalOption_le_of_hi (e : Expr) + (I : IntervalRat) (J : IntervalRat) (c : ℚ) + (hsome : evalIntervalOption1 e I = some J) + (hhi : J.hi ≤ c) : + ∀ x ∈ I, Expr.eval (fun _ => x) e ≤ c := by + intro x hx + have hmem := evalIntervalOption1_correct e I J hsome x hx + simp only [IntervalRat.mem_def] at hmem + have heval_le_hi : Expr.eval (fun _ => x) e ≤ J.hi := hmem.2 + have hhi_le_c : (J.hi : ℝ) ≤ c := by exact_mod_cast hhi + exact le_trans heval_le_hi hhi_le_c + +/-- When evalIntervalOption succeeds, we get lower bounds -/ +theorem evalIntervalOption_ge_of_lo (e : Expr) + (I : IntervalRat) (J : IntervalRat) (c : ℚ) + (hsome : evalIntervalOption1 e I = some J) + (hlo : c ≤ J.lo) : + ∀ x ∈ I, c ≤ Expr.eval (fun _ => x) e := by + intro x hx + have hmem := evalIntervalOption1_correct e I J hsome x hx + simp only [IntervalRat.mem_def] at hmem + have hlo_le_eval : J.lo ≤ Expr.eval (fun _ => x) e := hmem.1 + have hc_le_lo : (c : ℝ) ≤ J.lo := by exact_mod_cast hlo + exact le_trans hc_le_lo hlo_le_eval + +end LeanCert.Engine + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Semantic Lemmas for Interval Bounds + +This file provides semantic lemmas for deriving real bounds from certified +interval enclosures. Tactics consume these lemmas, but the definitions belong +to the engine layer so checked programmatic APIs do not depend on tactic +modules. + +## Main theorems + +### Core (computable) lemmas +* `exprCore_le_of_interval_hi` - Upper bound from interval high endpoint +* `exprCore_ge_of_interval_lo` - Lower bound from interval low endpoint +* `exprCore_lt_of_interval_hi_lt` - Strict upper bound +* `exprCore_gt_of_interval_lo_gt` - Strict lower bound + +### Extended (noncomputable) lemmas +* `expr_le_of_interval_hi` - Upper bound from interval high endpoint +* `expr_ge_of_interval_lo` - Lower bound from interval low endpoint +* `expr_lt_of_interval_hi_lt` - Strict upper bound +* `expr_gt_of_interval_lo_gt` - Strict lower bound +* `expr_le_of_mem_interval` - Single-point variant +* `expr_ge_of_mem_interval` - Single-point variant + +## Usage + +These lemmas are intended to be used by tactics like `certify_bound` and +`interval_decide` to close goals of the form `∀ x ∈ I, f(x) ≤ c` or similar. + +The core lemmas use the computable evaluator and can work with `native_decide`. +The extended lemmas use the noncomputable evaluator with floor/ceil bounds. +-/ + +/-! ### Tactic-facing lemmas for interval bounds (core, computable) -/ + +@[expose] public section + +namespace LeanCert.Engine + +open LeanCert.Core + +/-- Upper bound lemma for core expressions (computable). + FULLY PROVED - no sorry, no axioms. Accepts configurable Taylor depth. + Requires domain validity (e.g., log arguments must be positive). -/ +theorem exprCore_le_of_interval_hi (e : Expr) (hsupp : ExprSupportedCore e) + (I : IntervalRat) (c : ℚ) (cfg : EvalConfig := {}) + (hdom : evalDomainValid1 e I cfg) + (hhi : (LeanCert.Internal.Rational.evalTotalCore1 e I cfg).hi ≤ c) : + ∀ x ∈ I, Expr.eval (fun _ => x) e ≤ c := by + intro x hx + have hmem := evalIntervalCore1_correct e hsupp x I hx cfg hdom + simp only [IntervalRat.mem_def] at hmem + have heval_le_hi : Expr.eval (fun _ => x) e ≤ (LeanCert.Internal.Rational.evalTotalCore1 e I + cfg).hi := hmem.2 + have hhi_le_c : ((LeanCert.Internal.Rational.evalTotalCore1 e I cfg).hi : ℝ) ≤ c := by + exact_mod_cast hhi + exact le_trans heval_le_hi hhi_le_c + +/-- Lower bound lemma for core expressions (computable). + FULLY PROVED - no sorry, no axioms. Accepts configurable Taylor depth. + Requires domain validity (e.g., log arguments must be positive). -/ +theorem exprCore_ge_of_interval_lo (e : Expr) (hsupp : ExprSupportedCore e) + (I : IntervalRat) (c : ℚ) (cfg : EvalConfig := {}) + (hdom : evalDomainValid1 e I cfg) + (hlo : c ≤ (LeanCert.Internal.Rational.evalTotalCore1 e I cfg).lo) : + ∀ x ∈ I, c ≤ Expr.eval (fun _ => x) e := by + intro x hx + have hmem := evalIntervalCore1_correct e hsupp x I hx cfg hdom + simp only [IntervalRat.mem_def] at hmem + have hlo_le_eval : (LeanCert.Internal.Rational.evalTotalCore1 e I cfg).lo ≤ Expr.eval (fun _ => + x) e := hmem.1 + have hc_le_lo : (c : ℝ) ≤ (LeanCert.Internal.Rational.evalTotalCore1 e I cfg).lo := by + exact_mod_cast hlo + exact le_trans hc_le_lo hlo_le_eval + +/-- Strict upper bound for core expressions (computable). + FULLY PROVED - no sorry, no axioms. Accepts configurable Taylor depth. + Requires domain validity (e.g., log arguments must be positive). -/ +theorem exprCore_lt_of_interval_hi_lt (e : Expr) (hsupp : ExprSupportedCore e) + (I : IntervalRat) (c : ℚ) (cfg : EvalConfig := {}) + (hdom : evalDomainValid1 e I cfg) + (hhi : (LeanCert.Internal.Rational.evalTotalCore1 e I cfg).hi < c) : + ∀ x ∈ I, Expr.eval (fun _ => x) e < c := by + intro x hx + have hmem := evalIntervalCore1_correct e hsupp x I hx cfg hdom + simp only [IntervalRat.mem_def] at hmem + have heval_le_hi : Expr.eval (fun _ => x) e ≤ (LeanCert.Internal.Rational.evalTotalCore1 e I + cfg).hi := hmem.2 + have hhi_lt_c : ((LeanCert.Internal.Rational.evalTotalCore1 e I cfg).hi : ℝ) < c := by + exact_mod_cast hhi + exact lt_of_le_of_lt heval_le_hi hhi_lt_c + +/-- Strict lower bound for core expressions (computable). + FULLY PROVED - no sorry, no axioms. Accepts configurable Taylor depth. + Requires domain validity (e.g., log arguments must be positive). -/ +theorem exprCore_gt_of_interval_lo_gt (e : Expr) (hsupp : ExprSupportedCore e) + (I : IntervalRat) (c : ℚ) (cfg : EvalConfig := {}) + (hdom : evalDomainValid1 e I cfg) + (hlo : c < (LeanCert.Internal.Rational.evalTotalCore1 e I cfg).lo) : + ∀ x ∈ I, c < Expr.eval (fun _ => x) e := by + intro x hx + have hmem := evalIntervalCore1_correct e hsupp x I hx cfg hdom + simp only [IntervalRat.mem_def] at hmem + have hlo_le_eval : (LeanCert.Internal.Rational.evalTotalCore1 e I cfg).lo ≤ Expr.eval (fun _ => + x) e := hmem.1 + have hc_lt_lo : (c : ℝ) < (LeanCert.Internal.Rational.evalTotalCore1 e I cfg).lo := by + exact_mod_cast hlo + exact lt_of_lt_of_le hc_lt_lo hlo_le_eval + +/-! ### Tactic-facing lemmas for interval bounds (extended, noncomputable) -/ + +/-- Upper bound lemma for extended expressions. + FULLY PROVED - no sorry, no axioms. -/ +theorem expr_le_of_interval_hi (e : Expr) (hsupp : ADSupported e) + (I : IntervalRat) (c : ℚ) (hhi : (LeanCert.Internal.Rational.evalUnchecked1 e I).hi ≤ c) : + ∀ x ∈ I, Expr.eval (fun _ => x) e ≤ c := by + intro x hx + have hmem := evalInterval1_correct e hsupp x I hx + simp only [IntervalRat.mem_def] at hmem + have heval_le_hi : Expr.eval (fun _ => x) e ≤ (LeanCert.Internal.Rational.evalUnchecked1 e I).hi + := hmem.2 + have hhi_le_c : ((LeanCert.Internal.Rational.evalUnchecked1 e I).hi : ℝ) ≤ c := by + exact_mod_cast hhi + exact le_trans heval_le_hi hhi_le_c + +/-- Lower bound lemma for extended expressions. + FULLY PROVED - no sorry, no axioms. -/ +theorem expr_ge_of_interval_lo (e : Expr) (hsupp : ADSupported e) + (I : IntervalRat) (c : ℚ) (hlo : c ≤ (LeanCert.Internal.Rational.evalUnchecked1 e I).lo) : + ∀ x ∈ I, c ≤ Expr.eval (fun _ => x) e := by + intro x hx + have hmem := evalInterval1_correct e hsupp x I hx + simp only [IntervalRat.mem_def] at hmem + have hlo_le_eval : (LeanCert.Internal.Rational.evalUnchecked1 e I).lo ≤ Expr.eval (fun _ => x) e + := hmem.1 + have hc_le_lo : (c : ℝ) ≤ (LeanCert.Internal.Rational.evalUnchecked1 e I).lo := by + exact_mod_cast hlo + exact le_trans hc_le_lo hlo_le_eval + +/-- Strict upper bound for extended expressions. + FULLY PROVED - no sorry, no axioms. -/ +theorem expr_lt_of_interval_hi_lt (e : Expr) (hsupp : ADSupported e) + (I : IntervalRat) (c : ℚ) (hhi : (LeanCert.Internal.Rational.evalUnchecked1 e I).hi < c) : + ∀ x ∈ I, Expr.eval (fun _ => x) e < c := by + intro x hx + have hmem := evalInterval1_correct e hsupp x I hx + simp only [IntervalRat.mem_def] at hmem + have heval_le_hi : Expr.eval (fun _ => x) e ≤ (LeanCert.Internal.Rational.evalUnchecked1 e I).hi + := hmem.2 + have hhi_lt_c : ((LeanCert.Internal.Rational.evalUnchecked1 e I).hi : ℝ) < c := by + exact_mod_cast hhi + exact lt_of_le_of_lt heval_le_hi hhi_lt_c + +/-- Strict lower bound for extended expressions. + FULLY PROVED - no sorry, no axioms. -/ +theorem expr_gt_of_interval_lo_gt (e : Expr) (hsupp : ADSupported e) + (I : IntervalRat) (c : ℚ) (hlo : c < (LeanCert.Internal.Rational.evalUnchecked1 e I).lo) : + ∀ x ∈ I, c < Expr.eval (fun _ => x) e := by + intro x hx + have hmem := evalInterval1_correct e hsupp x I hx + simp only [IntervalRat.mem_def] at hmem + have hlo_le_eval : (LeanCert.Internal.Rational.evalUnchecked1 e I).lo ≤ Expr.eval (fun _ => x) e + := hmem.1 + have hc_lt_lo : (c : ℝ) < (LeanCert.Internal.Rational.evalUnchecked1 e I).lo := by + exact_mod_cast hlo + exact lt_of_lt_of_le hc_lt_lo hlo_le_eval + +/-- Variant for single point (extended). -/ +theorem expr_le_of_mem_interval (e : Expr) (hsupp : ADSupported e) + (I : IntervalRat) (c : ℚ) (x : ℝ) (hx : x ∈ I) + (hhi : (LeanCert.Internal.Rational.evalUnchecked1 e I).hi ≤ c) : + Expr.eval (fun _ => x) e ≤ c := + expr_le_of_interval_hi e hsupp I c hhi x hx + +/-- Variant for single point (extended). -/ +theorem expr_ge_of_mem_interval (e : Expr) (hsupp : ADSupported e) + (I : IntervalRat) (c : ℚ) (x : ℝ) (hx : x ∈ I) + (hlo : c ≤ (LeanCert.Internal.Rational.evalUnchecked1 e I).lo) : + c ≤ Expr.eval (fun _ => x) e := + expr_ge_of_interval_lo e hsupp I c hlo x hx + +end LeanCert.Engine + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Interval Evaluation of Expressions + +This file re-exports the interval evaluation infrastructure for `LeanCert.Core.Expr`. + +## Module structure + +The implementation is split across several files: + +* `LeanCert.Core.Support` - Expression support predicates for total core + evaluation and automatic differentiation + +* `LeanCert.Engine.Eval.Core` - Computable interval evaluator +(`LeanCert.Internal.Rational.evalTotalCore`) + and transcendental interval bounds + +* `LeanCert.Engine.Eval.Extended` - Internal noncomputable evaluator and the + partial evaluator with inv/log support (`evalIntervalOption`) + +* `LeanCert.Engine.Bounds.Lemmas` - Semantic lemmas for deriving real bounds + +## Main definitions (re-exported) + +### Expression support predicates +* `ExprSupportedCore` - Computable subset (const, var, add, mul, neg, sin, cos, exp, sqrt, sinh, +cosh, tanh, pi) +* `ADSupported` - Noncomputable AD subset (const, var, add, mul, neg, sin, cos, exp) + +### Evaluators +* `LeanCert.Internal.Rational.evalTotalCore` - Computable interval evaluator (uses Taylor series) +* `LeanCert.Internal.Rational.evalUnchecked` - Internal noncomputable evaluator +* `evalIntervalOption` - Partial evaluator with inv/log support + +### Correctness theorems +* `evalIntervalCore_correct` - Core evaluator correctness +* `evalInterval_correct` - Extended evaluator correctness +* `evalIntervalOption_correct` - Partial evaluator correctness + +### Tactic lemmas +* `exprCore_le_of_interval_hi` / `exprCore_ge_of_interval_lo` - Core bounds +* `expr_le_of_interval_hi` / `expr_ge_of_interval_lo` - Extended bounds + +## Design notes + +The evaluators are split by computability: +- `LeanCert.Internal.Rational.evalTotalCore` is COMPUTABLE, enabling `native_decide` in tactics +- `evalInterval` is NONCOMPUTABLE, using Real.exp with floor/ceil bounds +- Both are fully verified (no sorry, no axioms) +-/ + +@[expose] public section + +namespace LeanCert.Engine + +-- Re-export all definitions from component modules +-- All imports are transitive, so users can continue to `import LeanCert.Engine.IntervalEval` +-- and have access to all definitions as before. + +end LeanCert.Engine + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Automatic Differentiation - Basic Definitions + +This file provides the core types and algebraic operations for forward-mode +automatic differentiation using interval arithmetic. + +## Main definitions + +* `DualInterval` - A pair of intervals representing (value, derivative) +* `DualInterval.const` - Constant dual (derivative is zero) +* `DualInterval.varActive` - Active variable (derivative is 1) +* `DualInterval.varPassive` - Passive variable (derivative is 0) +* `DualInterval.add` - Addition with sum rule +* `DualInterval.mul` - Multiplication with product rule +* `DualInterval.neg` - Negation +-/ + +@[expose] public section + +namespace LeanCert.Engine + +open LeanCert.Core + +/-- Dual number with interval components: represents (value, derivative) -/ +structure DualInterval where + /-- The interval enclosing the function value. -/ + val : IntervalRat + /-- The interval enclosing the derivative. -/ + der : IntervalRat + deriving Repr + +/-- Default DualInterval for unsupported expression branches -/ +instance : Inhabited DualInterval where + default := ⟨default, default⟩ + +namespace DualInterval + +/-- Dual interval for a constant (derivative is zero) -/ +def const (q : ℚ) : DualInterval := + { val := IntervalRat.singleton q + der := IntervalRat.singleton 0 } + +/-- Dual interval for the constant π (derivative is zero) -/ +def piConst : DualInterval := + { val := piInterval + der := IntervalRat.singleton 0 } + +/-- Dual interval for the Euler–Mascheroni constant γ (derivative is zero) -/ +def eulerMascheroniConst : DualInterval := + { val := eulerMascheroniInterval + der := IntervalRat.singleton 0 } + +/-- Dual interval for a named mathematical constant (derivative is zero) -/ +def ofMathConst (c : MathConst) : DualInterval := + { val := c.interval + der := IntervalRat.singleton 0 } + +/-- Dual interval for the variable we're differentiating with respect to -/ +def varActive (I : IntervalRat) : DualInterval := + { val := I + der := IntervalRat.singleton 1 } + +/-- Dual interval for a passive variable -/ +def varPassive (I : IntervalRat) : DualInterval := + { val := I + der := IntervalRat.singleton 0 } + +/-- Add two dual intervals -/ +def add (d₁ d₂ : DualInterval) : DualInterval := + { val := IntervalRat.add d₁.val d₂.val + der := IntervalRat.add d₁.der d₂.der } + +/-- Multiply two dual intervals (product rule) -/ +def mul (d₁ d₂ : DualInterval) : DualInterval := + { val := IntervalRat.mul d₁.val d₂.val + -- d(f*g) = f'*g + f*g' + der := IntervalRat.add + (IntervalRat.mul d₁.der d₂.val) + (IntervalRat.mul d₁.val d₂.der) } + +/-- Negate a dual interval -/ +def neg (d : DualInterval) : DualInterval := + { val := IntervalRat.neg d.val + der := IntervalRat.neg d.der } + +/-- Inverse of a dual interval (quotient rule: d(1/f) = -f'/f²) + Uses invInterval for the value component. + For intervals containing zero, returns wide bounds. -/ +def inv (d : DualInterval) : DualInterval := + let inv_val := invInterval d.val + -- d(1/f) = -f'/f² = -f' * (1/f)² + let inv_sq := IntervalRat.mul inv_val inv_val + let der' := IntervalRat.neg (IntervalRat.mul d.der inv_sq) + { val := inv_val, der := der' } + +end DualInterval + +end LeanCert.Engine + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Automatic Differentiation - Transcendental Functions + +This file provides dual interval implementations for transcendental functions, +implementing the chain rule for each. + +## Main definitions + +### Total functions (always succeed) +* `DualInterval.sin` - Sine with chain rule +* `DualInterval.cos` - Cosine with chain rule +* `DualInterval.exp` - Exponential with chain rule +* `DualInterval.atan` - Arctangent with chain rule +* `DualInterval.arsinh` - Inverse hyperbolic sine +* `DualInterval.sinh`, `cosh`, `tanh` - Hyperbolic functions +* `DualInterval.erf` - Error function +* `DualInterval.sqrt` - Square root (conservative derivative bound) +* `DualInterval.sinc` - sinc function + +### Partial functions (return Option) +* `DualInterval.atanhOption` - Inverse hyperbolic tangent (requires |x| < 1) +* `DualInterval.inv?` - Inverse (requires nonzero) +* `DualInterval.logOption` - Logarithm (requires positive) +* `DualInterval.sqrt?` - Square root with tight bounds (requires positive) +-/ + +@[expose] public section + +namespace LeanCert.Engine + +open LeanCert.Core + +namespace DualInterval + +/-- Dual for sin (chain rule: d(sin f) = cos(f) * f') -/ +def sin (d : DualInterval) : DualInterval := + { val := sinInterval d.val + der := IntervalRat.mul (cosInterval d.val) d.der } + +/-- Dual for cos (chain rule: d(cos f) = -sin(f) * f') -/ +def cos (d : DualInterval) : DualInterval := + { val := cosInterval d.val + der := IntervalRat.mul (IntervalRat.neg (sinInterval d.val)) d.der } + +/-- Dual for exp (chain rule: d(exp f) = exp(f) * f') -/ +noncomputable def exp (d : DualInterval) : DualInterval := + { val := IntervalRat.expInterval d.val + der := IntervalRat.mul (IntervalRat.expInterval d.val) d.der } + +/-- The interval [0, 1] used to bound derivative factors in (0, 1] -/ +def unitInterval : IntervalRat := ⟨0, 1, by norm_num⟩ + +/-- The derivative factor for arctan: 1/(1+x²) is in [0, 1] -/ +theorem arctan_deriv_factor_mem_unitInterval (y : ℝ) : + 1 / (1 + y ^ 2) ∈ unitInterval := by + simp only [unitInterval, IntervalRat.mem_def, Rat.cast_zero, Rat.cast_one] + have hpos : 0 < 1 + y ^ 2 := by nlinarith [sq_nonneg y] + constructor + · exact div_nonneg (by norm_num : (0 : ℝ) ≤ 1) (le_of_lt hpos) + · rw [div_le_one hpos] + nlinarith [sq_nonneg y] + +/-- The derivative factor for arsinh: 1/√(1+x²) is in [0, 1] -/ +theorem arsinh_deriv_factor_mem_unitInterval (y : ℝ) : + (Real.sqrt (1 + y ^ 2))⁻¹ ∈ unitInterval := by + simp only [unitInterval, IntervalRat.mem_def, Rat.cast_zero, Rat.cast_one] + have h1 : 1 + y ^ 2 ≥ 1 := by nlinarith [sq_nonneg y] + have hsqrt_ge_one : Real.sqrt (1 + y ^ 2) ≥ 1 := by + calc Real.sqrt (1 + y ^ 2) ≥ Real.sqrt 1 := Real.sqrt_le_sqrt h1 + _ = 1 := Real.sqrt_one + have hsqrt_pos : 0 < Real.sqrt (1 + y ^ 2) := by + apply Real.sqrt_pos.mpr + nlinarith [sq_nonneg y] + constructor + · exact inv_nonneg.mpr (le_of_lt hsqrt_pos) + · exact inv_le_one_of_one_le₀ hsqrt_ge_one + +/-- Dual for atan (chain rule: d(atan f) = f' / (1 + f²)) -/ +def atan (d : DualInterval) : DualInterval := + { val := atanInterval d.val + -- d(atan f) = f' / (1 + f²) + -- Since 0 < 1/(1+x²) ≤ 1 for all x, we multiply d.der by [0, 1] + der := IntervalRat.mul d.der unitInterval } + +/-- Dual for arsinh (chain rule: d(arsinh f) = f' / √(1 + f²)) -/ +def arsinh (d : DualInterval) : DualInterval := + { val := arsinhInterval d.val + -- d(arsinh f) = f' / √(1 + f²) + -- Since 0 < 1/√(1+f²) ≤ 1, we multiply d.der by [0, 1] + der := IntervalRat.mul d.der unitInterval } + +/-- Dual for sinh (chain rule: d(sinh f) = cosh(f) * f') -/ +def sinh (d : DualInterval) : DualInterval := + { val := sinhInterval d.val + -- sinh'(x) = cosh(x), so d(sinh f) = cosh(f) * f' + der := IntervalRat.mul (coshInterval d.val) d.der } + +/-- Dual for cosh (chain rule: d(cosh f) = sinh(f) * f') -/ +def cosh (d : DualInterval) : DualInterval := + { val := coshInterval d.val + -- cosh'(x) = sinh(x), so d(cosh f) = sinh(f) * f' + der := IntervalRat.mul (sinhInterval d.val) d.der } + +/-- Dual for tanh (chain rule: d(tanh f) = sech²(f) * f' = (1 - tanh²(f)) * f') + Since sech²(x) = 1 - tanh²(x) ∈ (0, 1] for all x, we use [0, 1] as bound. -/ +def tanh (d : DualInterval) : DualInterval := + { val := tanhInterval d.val + -- tanh'(x) = sech²(x) = 1 - tanh²(x), which is in (0, 1] + der := IntervalRat.mul d.der unitInterval } + +/-- Interval containing 2/√π ≈ 1.128379... -/ +def twoDivSqrtPi : IntervalRat := + ⟨1128/1000, 1129/1000, by norm_num⟩ + +/-- Dual for erf (chain rule: d(erf f) = (2/√π) * exp(-f²) * f') + erf'(x) = (2/√π) * exp(-x²), which is always positive and bounded by 2/√π ≈ 1.13 -/ +noncomputable def erf (d : DualInterval) : DualInterval := + { val := ⟨-1, 1, by norm_num⟩ -- erf is bounded in [-1, 1] + der := + let valSq := IntervalRat.mul d.val d.val + let negValSq := IntervalRat.neg valSq + let expPart := IntervalRat.expInterval negValSq + let factor := IntervalRat.mul twoDivSqrtPi expPart + IntervalRat.mul factor d.der } + +/-- Computable dual for erf using expComputable -/ +def erfCore (d : DualInterval) (n : ℕ := 10) : DualInterval := + { val := ⟨-1, 1, by norm_num⟩ -- erf is bounded in [-1, 1] + der := + let valSq := IntervalRat.mul d.val d.val + let negValSq := IntervalRat.neg valSq + let expPart := IntervalRat.expComputable negValSq n + let factor := IntervalRat.mul twoDivSqrtPi expPart + IntervalRat.mul factor d.der } + +/-- Dual for sqrt (chain rule: d(sqrt f) = f' / (2 * sqrt(f))) + sqrt'(x) = 1/(2*sqrt(x)) for x > 0, undefined at x = 0. + We use sqrtInterval for the value and a conservative bound for the derivative. + Note: The derivative blows up as x → 0+, so this uses a wide conservative bound. -/ +def sqrt (d : DualInterval) : DualInterval := + { val := IntervalRat.sqrtInterval d.val + -- The derivative 1/(2*sqrt(x)) ∈ [0, ∞) for x > 0 + -- We use a very conservative bound [-100, 100] * der + der := IntervalRat.mul d.der ⟨-100, 100, by norm_num⟩ } + +/-- Conservative derivative bound [-1, 1] for sinc derivative -/ +def sincDerivBound : IntervalRat := ⟨-1, 1, by norm_num⟩ + +/-- Dual for sinc (chain rule: d(sinc f) = sinc'(f) * f') + sinc'(x) = (x cos x - sin x) / x² for x ≠ 0, limit 0 at x = 0. + We use conservative bound: |sinc'(x)| ≤ 1 for all x. -/ +def sinc (d : DualInterval) : DualInterval := + { val := ⟨-1, 1, by norm_num⟩ -- sinc is bounded in [-1, 1] + -- sinc'(x) ∈ [-1, 1] (conservative bound), so d(sinc f) = sinc'(f) * f' + der := IntervalRat.mul sincDerivBound d.der } + +/-! ### Partial functions (domain-restricted) -/ + +/-- Partial dual for atanh (chain rule: d(atanh f) = f' / (1 - f²)) + Returns None if the value interval is not contained in (-1, 1). -/ +noncomputable def atanhOption (d : DualInterval) : Option DualInterval := + -- For atanh to be defined, we need |val| < 1 + -- We check if the interval is strictly inside (-1, 1) + if d.val.hi < 1 ∧ d.val.lo > -1 then + -- Very rough bound: atanh' = 1/(1-x²), which blows up as |x| → 1 + -- For now we use [-100, 100] * der as a hugely conservative bound + let bound : ℚ := 100 + some { val := atanhInterval d.val + der := ⟨-bound * (|d.der.lo| + |d.der.hi| + 1), + bound * (|d.der.lo| + |d.der.hi| + 1), + by + have h1 : (0 : ℚ) ≤ |d.der.lo| := abs_nonneg _ + have h2 : (0 : ℚ) ≤ |d.der.hi| := abs_nonneg _ + have h : (0 : ℚ) ≤ bound * (|d.der.lo| + |d.der.hi| + 1) := by + exact mul_nonneg (by norm_num) (by linarith) + linarith⟩ } + else + none + +/-- Partial dual for inv (chain rule: d(1/f) = -f'/f²) + Returns None if the value interval contains zero. -/ +def inv? (d : DualInterval) : Option DualInterval := + if h : IntervalRat.containsZero d.val then + none + else + let inv_val := IntervalRat.invNonzero ⟨d.val, h⟩ + -- d(1/f) = -f'/f² = -f' * (1/f)² + let inv_sq := IntervalRat.mul inv_val inv_val + let der' := IntervalRat.neg (IntervalRat.mul d.der inv_sq) + some { val := inv_val, der := der' } + +/-- Partial dual for log (chain rule: d(log f) = f'/f) + Returns None if the value interval is not strictly positive. -/ +noncomputable def logOption (d : DualInterval) : Option DualInterval := + if h : IntervalRat.isPositive d.val then + let log_val := IntervalRat.logInterval ⟨d.val, h⟩ + -- d(log f) = f'/f + let inv_val := IntervalRat.invNonzero ⟨d.val, by + -- isPositive implies not containsZero + simp only [IntervalRat.isPositive, IntervalRat.containsZero] at h ⊢ + intro ⟨hle, _⟩ + exact absurd h (not_lt.mpr hle)⟩ + let der' := IntervalRat.mul d.der inv_val + some { val := log_val, der := der' } + else + none + +/-- Compute a conservative upper bound on 1/(2*sqrt(lo)) for lo > 0. + Uses the fact that: + - For 0 < lo ≤ 1: sqrt(lo) ≥ lo, so 1/(2*sqrt(lo)) ≤ 1/(2*lo) + - For lo > 1: sqrt(lo) > 1, so 1/(2*sqrt(lo)) < 1/2 -/ +def sqrtDerivCoefBound (lo : ℚ) (hpos : 0 < lo) : IntervalRat := + if lo ≤ 1 then + ⟨0, 1 / (2 * lo), by + exact div_nonneg (by norm_num) (mul_nonneg (by norm_num) hpos.le)⟩ + else + ⟨0, 1 / 2, by norm_num⟩ + +/-- For lo > 0, the derivative coefficient 1/(2*sqrt(x)) is bounded above for x ≥ lo. -/ +theorem sqrtDerivCoef_bound {x lo : ℝ} (hlo_pos : 0 < lo) (hx_ge : lo ≤ x) : + 1 / (2 * Real.sqrt x) ≤ max (1 / (2 * lo)) (1 / 2) := by + have hx_pos : 0 < x := lt_of_lt_of_le hlo_pos hx_ge + have hsqrt_pos : 0 < Real.sqrt x := Real.sqrt_pos.mpr hx_pos + have hdenom_pos : 0 < 2 * Real.sqrt x := by positivity + -- sqrt(x) ≥ sqrt(lo) since sqrt is monotone + have hsqrt_mono : Real.sqrt lo ≤ Real.sqrt x := Real.sqrt_le_sqrt hx_ge + have hsqrt_lo_pos : 0 < Real.sqrt lo := Real.sqrt_pos.mpr hlo_pos + -- 1/(2*sqrt(x)) ≤ 1/(2*sqrt(lo)) + have hcoef_le : 1 / (2 * Real.sqrt x) ≤ 1 / (2 * Real.sqrt lo) := by + apply div_le_div_of_nonneg_left (by norm_num : (0 : ℝ) ≤ 1) + · positivity + · linarith + -- Now bound 1/(2*sqrt(lo)) + rcases le_or_gt lo 1 with hle | hgt + · -- lo ≤ 1: sqrt(lo) ≥ lo (since sqrt(x) ≥ x for 0 < x ≤ 1) + have hsqrt_ge_lo : lo ≤ Real.sqrt lo := by + have h1 : lo * lo ≤ lo := by nlinarith + have h2 : lo = Real.sqrt lo * Real.sqrt lo → lo ≤ Real.sqrt lo := by + intro heq + by_contra! hc + have : lo * lo > lo := by nlinarith + linarith + rw [← Real.sq_sqrt (le_of_lt hlo_pos)] at h1 + rcases eq_or_lt_of_le (Real.sqrt_nonneg lo) with hsz | hsgt + · -- Case sqrt(lo) = 0 contradicts lo > 0 + have hsqrt_zero : Real.sqrt lo = 0 := hsz.symm + have hlo_le_zero : lo ≤ 0 := Real.sqrt_eq_zero'.mp hsqrt_zero + linarith + · nlinarith [Real.sq_sqrt (le_of_lt hlo_pos)] + -- 1/(2*sqrt(lo)) ≤ 1/(2*lo) + have hbound : 1 / (2 * Real.sqrt lo) ≤ 1 / (2 * lo) := by + apply div_le_div_of_nonneg_left (by norm_num : (0 : ℝ) ≤ 1) + · positivity + · linarith + calc 1 / (2 * Real.sqrt x) ≤ 1 / (2 * Real.sqrt lo) := hcoef_le + _ ≤ 1 / (2 * lo) := hbound + _ ≤ max (1 / (2 * lo)) (1 / 2) := le_max_left _ _ + · -- lo > 1: sqrt(lo) > 1 + have hsqrt_gt_one : 1 < Real.sqrt lo := by + rw [← Real.sqrt_one] + exact Real.sqrt_lt_sqrt (by norm_num) hgt + -- 1/(2*sqrt(lo)) < 1/2 + have hbound : 1 / (2 * Real.sqrt lo) < 1 / 2 := by + rw [div_lt_div_iff₀ (by positivity : (0 : ℝ) < 2 * Real.sqrt lo) (by norm_num : (0 : ℝ) < 2)] + ring_nf + linarith + calc 1 / (2 * Real.sqrt x) ≤ 1 / (2 * Real.sqrt lo) := hcoef_le + _ ≤ 1 / 2 := le_of_lt hbound + _ ≤ max (1 / (2 * lo)) (1 / 2) := le_max_right _ _ + +/-- Partial dual for sqrt (chain rule: d(sqrt f) = f' / (2 * sqrt(f))) + Returns None if the value interval is not strictly positive. -/ +noncomputable def sqrt? (d : DualInterval) : Option DualInterval := + if h : IntervalRat.isPositive d.val then + let sqrt_val := IntervalRat.sqrtInterval d.val + -- d(sqrt f) = f' / (2 * sqrt(f)) = f' * (1 / (2 * sqrt(f))) + let deriv_coef := sqrtDerivCoefBound d.val.lo h + let der' := IntervalRat.mul d.der deriv_coef + some { val := sqrt_val, der := der' } + else + none + +end DualInterval + +end LeanCert.Engine + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Automatic Differentiation - Evaluators + +This file provides the evaluation functions for automatic differentiation, +mapping expressions to dual intervals. + +## Main definitions + +* `DualEnv` - Environment mapping variable indices to dual intervals +* `LeanCert.Internal.AD.evalUnchecked` - Main evaluator for supported expressions (total) +* `evalDualOption` - Partial evaluator supporting domain-checked functions (returns Option) +* `evalDualOption1` - Single-variable version of evalDualOption +* `mkDualEnv` - Create a dual environment for differentiation w.r.t. a variable +* `evalWithDeriv` - Evaluate and differentiate w.r.t. a variable index +* `derivInterval` - Get just the derivative interval +* `evalWithDeriv1` - Single-variable evaluation and differentiation +-/ + +/-! ### Dual evaluation -/ + +@[expose] public section + +namespace LeanCert.Engine + +open LeanCert.Core + +/-- Environment for dual evaluation -/ +abbrev DualEnv := Nat → DualInterval + +end LeanCert.Engine + +namespace LeanCert.Internal.AD + +open LeanCert.Core LeanCert.Engine + +/-- Evaluate expression in dual interval mode. + + For supported expressions (const, var, add, mul, neg, sin, cos, exp), this + computes correct dual interval bounds with a fully-verified proof. + + For unsupported expressions (inv, log), returns a default interval. + Do not rely on results for expressions containing inv or log. + Use evalDualOption for partial functions like inv and log. -/ +noncomputable def evalUnchecked (e : Expr) (ρ : DualEnv) : DualInterval := + match e with + | Expr.const q => DualInterval.const q + | Expr.var idx => ρ idx + | Expr.add e₁ e₂ => DualInterval.add (LeanCert.Internal.AD.evalUnchecked e₁ ρ) + (LeanCert.Internal.AD.evalUnchecked e₂ ρ) + | Expr.mul e₁ e₂ => DualInterval.mul (LeanCert.Internal.AD.evalUnchecked e₁ ρ) + (LeanCert.Internal.AD.evalUnchecked e₂ ρ) + | Expr.neg e => DualInterval.neg (LeanCert.Internal.AD.evalUnchecked e ρ) + | Expr.inv _ => default -- Not in ADSupported; safe default + | Expr.exp e => DualInterval.exp (LeanCert.Internal.AD.evalUnchecked e ρ) + | Expr.sin e => DualInterval.sin (LeanCert.Internal.AD.evalUnchecked e ρ) + | Expr.cos e => DualInterval.cos (LeanCert.Internal.AD.evalUnchecked e ρ) + | Expr.log _ => default -- Not in ADSupported; use evalDualOption for log + | Expr.atan e => DualInterval.atan (LeanCert.Internal.AD.evalUnchecked e ρ) + | Expr.arsinh e => DualInterval.arsinh (LeanCert.Internal.AD.evalUnchecked e ρ) + | Expr.atanh _ => default -- Partial function; use evalDualOption for atanh + | Expr.sinc e => DualInterval.sinc (LeanCert.Internal.AD.evalUnchecked e ρ) + | Expr.erf e => DualInterval.erf (LeanCert.Internal.AD.evalUnchecked e ρ) + | Expr.sinh e => DualInterval.sinh (LeanCert.Internal.AD.evalUnchecked e ρ) + | Expr.cosh e => DualInterval.cosh (LeanCert.Internal.AD.evalUnchecked e ρ) + | Expr.tanh e => DualInterval.tanh (LeanCert.Internal.AD.evalUnchecked e ρ) + | Expr.sqrt e => DualInterval.sqrt (LeanCert.Internal.AD.evalUnchecked e ρ) + | Expr.namedConst c => DualInterval.ofMathConst c + +end LeanCert.Internal.AD + +namespace LeanCert.Engine + +open LeanCert.Core + +/-! ### Partial dual evaluation -/ + +/-- Partial dual evaluator that supports domain-checked functions. + Returns `none` if any domain error would occur: + - inv of an interval containing zero + - log of an interval not strictly positive + When it returns `some`, the result is guaranteed to be correct. + + The total and computable dual evaluators support `tanh`, but this + Option-returning evaluator deliberately keeps `tanh` disabled until the + `evalDualOption`-specific value/differentiability/derivative correctness path + is wired for that constructor. -/ +noncomputable def evalDualOption (e : Expr) (ρ : DualEnv) : Option DualInterval := + match e with + | Expr.const q => some (DualInterval.const q) + | Expr.var idx => some (ρ idx) + | Expr.add e₁ e₂ => + match evalDualOption e₁ ρ, evalDualOption e₂ ρ with + | some d₁, some d₂ => some (DualInterval.add d₁ d₂) + | _, _ => none + | Expr.mul e₁ e₂ => + match evalDualOption e₁ ρ, evalDualOption e₂ ρ with + | some d₁, some d₂ => some (DualInterval.mul d₁ d₂) + | _, _ => none + | Expr.neg e => + match evalDualOption e ρ with + | some d => some (DualInterval.neg d) + | none => none + | Expr.inv e₁ => + match evalDualOption e₁ ρ with + | none => none + | some d => DualInterval.inv? d + | Expr.exp e => + match evalDualOption e ρ with + | some d => some (DualInterval.exp d) + | none => none + | Expr.sin e => + match evalDualOption e ρ with + | some d => some (DualInterval.sin d) + | none => none + | Expr.cos e => + match evalDualOption e ρ with + | some d => some (DualInterval.cos d) + | none => none + | Expr.log e => + match evalDualOption e ρ with + | none => none + | some d => DualInterval.logOption d + | Expr.atan e => + match evalDualOption e ρ with + | some d => some (DualInterval.atan d) + | none => none + | Expr.arsinh e => + match evalDualOption e ρ with + | some d => some (DualInterval.arsinh d) + | none => none + | Expr.atanh _ => + -- atanh is partial (defined only for |x| < 1) and requires complex bounds + -- We return none to avoid the complexity of proving atanh bounds + none + | Expr.sinc e => + match evalDualOption e ρ with + | some d => some (DualInterval.sinc d) + | none => none + | Expr.erf e => + match evalDualOption e ρ with + | some d => some (DualInterval.erf d) + | none => none + | Expr.sinh e => + match evalDualOption e ρ with + | some d => some (DualInterval.sinh d) + | none => none + | Expr.cosh e => + match evalDualOption e ρ with + | some d => some (DualInterval.cosh d) + | none => none + | Expr.tanh _ => + -- See the docstring above: + -- `LeanCert.Internal.AD.evalUnchecked`/`LeanCert.Internal.AD.evalTotalCore` support tanh, but + -- the partial `evalDualOption` correctness theorem currently treats tanh as + -- outside this Option API. + none + | Expr.sqrt e => + match evalDualOption e ρ with + | some d => DualInterval.sqrt? d + | none => none + | Expr.namedConst c => some (DualInterval.ofMathConst c) + +/-- Single-variable version of evalDualOption -/ +noncomputable def evalDualOption1 (e : Expr) (I : IntervalRat) : Option DualInterval := + evalDualOption e (fun _ => DualInterval.varActive I) + +/-! ### Single variable differentiation -/ + +/-- Create dual environment for differentiating with respect to variable `idx` -/ +def mkDualEnv (ρ : IntervalEnv) (idx : Nat) : DualEnv := + fun i => if i = idx then DualInterval.varActive (ρ i) else DualInterval.varPassive (ρ i) + +/-- Evaluate and differentiate with respect to variable `idx` -/ +noncomputable def evalWithDeriv (e : Expr) (ρ : IntervalEnv) (idx : Nat) : DualInterval := + LeanCert.Internal.AD.evalUnchecked e (mkDualEnv ρ idx) + +/-- Get just the derivative interval -/ +noncomputable def derivInterval (e : Expr) (ρ : IntervalEnv) (idx : Nat) : IntervalRat := + (evalWithDeriv e ρ idx).der + +/-- Evaluate and differentiate a single-variable expression -/ +noncomputable def evalWithDeriv1 (e : Expr) (I : IntervalRat) : DualInterval := + LeanCert.Internal.AD.evalUnchecked e (fun _ => DualInterval.varActive I) + +end LeanCert.Engine + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Automatic Differentiation - Correctness Theorems + +This file proves the correctness of forward-mode automatic differentiation +for supported expressions (ADSupported). + +## Main theorems + +* `LeanCert.Engine.evalDualUnchecked_val_correct` - Value component is correct +* `LeanCert.Engine.evalDualUnchecked_der_correct` - Derivative component is correct +* `evalFunc1_differentiable` - Supported expressions are differentiable +* `deriv_mem_dualDer` - Key theorem: computed derivative contains true derivative +* `LeanCert.Engine.evalDualUnchecked_der_correct_idx` - n-variable derivative correctness +* `evalWithDeriv1_correct` - Single-variable correctness + +## Design notes + +All theorems in this file are FULLY PROVED with no sorry or axioms. +The correctness relies on the chain rule for each supported operation. +-/ + +/-! ### Correctness -/ + +@[expose] public section + +namespace LeanCert.Engine + +open LeanCert.Core Filter +open scoped Topology + +/-- The value component is correct for supported expressions. + + This theorem is FULLY PROVED (no sorry, no axioms) for supported expressions. + The `hsupp` hypothesis ensures we only consider expressions in the verified subset. -/ +theorem evalDualUnchecked_val_correct (e : Expr) (hsupp : ADSupported e) + (ρ_real : Nat → ℝ) (ρ_dual : DualEnv) + (hρ : ∀ i, ρ_real i ∈ (ρ_dual i).val) : + Expr.eval ρ_real e ∈ (LeanCert.Internal.AD.evalUnchecked e ρ_dual).val := by + induction hsupp with + | const q => + simp only [Expr.eval_const, LeanCert.Internal.AD.evalUnchecked, DualInterval.const] + exact IntervalRat.mem_singleton q + | var idx => + simp only [Expr.eval_var, LeanCert.Internal.AD.evalUnchecked] + exact hρ idx + | add _ _ ih₁ ih₂ => + simp only [Expr.eval_add, LeanCert.Internal.AD.evalUnchecked, DualInterval.add] + exact IntervalRat.mem_add ih₁ ih₂ + | mul _ _ ih₁ ih₂ => + simp only [Expr.eval_mul, LeanCert.Internal.AD.evalUnchecked, DualInterval.mul] + exact IntervalRat.mem_mul ih₁ ih₂ + | neg _ ih => + simp only [Expr.eval_neg, LeanCert.Internal.AD.evalUnchecked, DualInterval.neg] + exact IntervalRat.mem_neg ih + | sin _ ih => + simp only [Expr.eval_sin, LeanCert.Internal.AD.evalUnchecked, DualInterval.sin] + exact mem_sinInterval ih + | cos _ ih => + simp only [Expr.eval_cos, LeanCert.Internal.AD.evalUnchecked, DualInterval.cos] + exact mem_cosInterval ih + | exp _ ih => + simp only [Expr.eval_exp, LeanCert.Internal.AD.evalUnchecked, DualInterval.exp] + exact IntervalRat.mem_expInterval ih + +/-! ### Single-variable evaluation for derivative proofs -/ + +/-- The function t ↦ Expr.eval (fun _ => t) e for single-variable expressions -/ +noncomputable abbrev evalFunc1 (e : Expr) : ℝ → ℝ := + fun t => Expr.eval (fun _ => t) e + +/-! ### Differentiability of supported expressions -/ + +/-- Supported expressions are differentiable as single-variable functions. + This theorem shows that for any supported expression, + the function `evalFunc1 e` is differentiable. + + FULLY PROVED - no sorry, no axioms. -/ +theorem evalFunc1_differentiable (e : Expr) (hsupp : ADSupported e) : + Differentiable ℝ (evalFunc1 e) := by + induction hsupp with + | const q => + exact differentiable_const _ + | var _ => + exact differentiable_id + | add _ _ ih₁ ih₂ => + exact Differentiable.add ih₁ ih₂ + | mul _ _ ih₁ ih₂ => + exact Differentiable.mul ih₁ ih₂ + | neg _ ih => + exact Differentiable.neg ih + | sin _ ih => + exact Real.differentiable_sin.comp ih + | cos _ ih => + exact Real.differentiable_cos.comp ih + | exp _ ih => + exact Real.differentiable_exp.comp ih + +/-! ### Core derivative correctness micro-lemmas -/ + +/-- Real.cos y is always in cosInterval I (which is [-1, 1]). + This micro-lemma encapsulates the fact that cosInterval uses the global bound. -/ +theorem cos_mem_cosInterval_of_any (y : ℝ) (I : IntervalRat) : + Real.cos y ∈ cosInterval I := by + simp only [cosInterval, IntervalRat.mem_def, Rat.cast_neg, Rat.cast_one] + exact Real.cos_mem_Icc _ + +/-- Real.sin y is always in sinInterval I (which is [-1, 1]). + This micro-lemma encapsulates the fact that sinInterval uses the global bound. -/ +theorem sin_mem_sinInterval_of_any (y : ℝ) (I : IntervalRat) : + Real.sin y ∈ sinInterval I := by + simp only [sinInterval, IntervalRat.mem_def, Rat.cast_neg, Rat.cast_one] + exact Real.sin_mem_Icc _ + +/-- -Real.sin y is always in IntervalRat.neg (sinInterval I). + This combines the sin global bound with negation for the cos derivative rule. -/ +theorem neg_sin_mem_neg_sinInterval (y : ℝ) (I : IntervalRat) : + -Real.sin y ∈ IntervalRat.neg (sinInterval I) := + IntervalRat.mem_neg (sin_mem_sinInterval_of_any y I) + +/-- The key lemma for n-variable AD: updateVar ρ_real idx x respects mkDualEnv ρ_int idx. + This encapsulates the repeated proof that appears in mul/exp cases. -/ +theorem updateVar_mem_mkDualEnv_val (ρ_real : Nat → ℝ) (ρ_int : IntervalEnv) (idx : Nat) + (x : ℝ) (hx : x ∈ ρ_int idx) (hρ : ∀ i, ρ_real i ∈ ρ_int i) : + ∀ i, Expr.updateVar ρ_real idx x i ∈ (mkDualEnv ρ_int idx i).val := by + intro i + by_cases hi : i = idx + · subst hi + simp only [Expr.updateVar_same, mkDualEnv, ↓reduceIte, DualInterval.varActive] + exact hx + · simp only [Expr.updateVar_other _ _ _ _ hi, mkDualEnv, ite_eq_right hi, DualInterval.varPassive] + exact hρ i + +/-! ### evalFunc1 unfolding lemmas -/ + +/-- Helper lemma: evalFunc1 for addition unfolds correctly -/ +theorem evalFunc1_add (e₁ e₂ : Expr) : + evalFunc1 (Expr.add e₁ e₂) = fun t => evalFunc1 e₁ t + evalFunc1 e₂ t := rfl + +/-- Helper lemma: evalFunc1 for addition in Pi form -/ +theorem evalFunc1_add_pi (e₁ e₂ : Expr) : + evalFunc1 (Expr.add e₁ e₂) = evalFunc1 e₁ + evalFunc1 e₂ := rfl + +/-- Helper lemma: evalFunc1 for multiplication unfolds correctly -/ +theorem evalFunc1_mul (e₁ e₂ : Expr) : + evalFunc1 (Expr.mul e₁ e₂) = fun t => evalFunc1 e₁ t * evalFunc1 e₂ t := rfl + +/-- Helper lemma: evalFunc1 for multiplication in Pi form -/ +theorem evalFunc1_mul_pi (e₁ e₂ : Expr) : + evalFunc1 (Expr.mul e₁ e₂) = evalFunc1 e₁ * evalFunc1 e₂ := rfl + +/-- Helper lemma: evalFunc1 for negation unfolds correctly -/ +theorem evalFunc1_neg (e : Expr) : + evalFunc1 (Expr.neg e) = fun t => -(evalFunc1 e t) := rfl + +/-- Helper lemma: evalFunc1 for negation in Pi form -/ +theorem evalFunc1_neg_pi (e : Expr) : + evalFunc1 (Expr.neg e) = -evalFunc1 e := rfl + +/-- Helper lemma: evalFunc1 for sin unfolds correctly -/ +theorem evalFunc1_sin (e : Expr) : + evalFunc1 (Expr.sin e) = fun t => Real.sin (evalFunc1 e t) := rfl + +/-- Helper lemma: evalFunc1 for cos unfolds correctly -/ +theorem evalFunc1_cos (e : Expr) : + evalFunc1 (Expr.cos e) = fun t => Real.cos (evalFunc1 e t) := rfl + +/-- Helper lemma: evalFunc1 for exp unfolds correctly -/ +theorem evalFunc1_exp (e : Expr) : + evalFunc1 (Expr.exp e) = fun t => Real.exp (evalFunc1 e t) := rfl + +/-- Helper lemma: evalFunc1 for log unfolds correctly -/ +theorem evalFunc1_log (e : Expr) : + evalFunc1 (Expr.log e) = fun t => Real.log (evalFunc1 e t) := rfl + +/-- Helper lemma: evalFunc1 for atan unfolds correctly -/ +theorem evalFunc1_atan (e : Expr) : + evalFunc1 (Expr.atan e) = fun t => Real.arctan (evalFunc1 e t) := rfl + +/-- Helper lemma: evalFunc1 for arsinh unfolds correctly -/ +theorem evalFunc1_arsinh (e : Expr) : + evalFunc1 (Expr.arsinh e) = fun t => Real.arsinh (evalFunc1 e t) := rfl + +/-- Helper lemma: evalFunc1 for atanh unfolds correctly -/ +theorem evalFunc1_atanh (e : Expr) : + evalFunc1 (Expr.atanh e) = fun t => Real.atanh (evalFunc1 e t) := rfl + +/-- Helper lemma: evalFunc1 for sinc unfolds correctly -/ +theorem evalFunc1_sinc (e : Expr) : + evalFunc1 (Expr.sinc e) = fun t => Real.sinc (evalFunc1 e t) := rfl + +/-- Helper lemma: evalFunc1 for erf unfolds correctly -/ +theorem evalFunc1_erf (e : Expr) : + evalFunc1 (Expr.erf e) = fun t => Real.erf (evalFunc1 e t) := rfl + +/-- Helper lemma: evalFunc1 for sqrt unfolds correctly -/ +theorem evalFunc1_sqrt (e : Expr) : + evalFunc1 (Expr.sqrt e) = fun t => Real.sqrt (evalFunc1 e t) := rfl + +/-- Helper lemma: evalFunc1 for const -/ +@[simp] +theorem evalFunc1_const (q : ℚ) : evalFunc1 (Expr.const q) = fun _ => (q : ℝ) := rfl + +/-- Helper lemma: evalFunc1 for var -/ +@[simp] +theorem evalFunc1_var (i : ℕ) : evalFunc1 (Expr.var i) = id := rfl + +/-- Helper lemma: evalFunc1 for namedConst (constant function) -/ +@[simp] +theorem evalFunc1_namedConst (c : MathConst) : evalFunc1 (Expr.namedConst c) = fun _ => c.toReal + := rfl + +/-- Helper lemma: evalFunc1 for pi (constant function) -/ +theorem evalFunc1_pi : evalFunc1 (Expr.namedConst .pi) = fun _ => Real.pi := rfl + +/-- Helper lemma: evalFunc1 for eulerMascheroni (constant function) -/ +theorem evalFunc1_eulerMascheroni : evalFunc1 (Expr.namedConst .eulerMascheroni) = fun _ => + Real.eulerMascheroniConstant := rfl + +/-- Helper: the dual environment evaluation gives correct derivative. + This connects the interval-based AD to actual calculus derivatives. + + FULLY PROVED - no sorry, no axioms. -/ +theorem deriv_mem_dualDer (e : Expr) (hsupp : ADSupported e) + (I : IntervalRat) (x : ℝ) (hx : x ∈ I) : + deriv (evalFunc1 e) x ∈ + (LeanCert.Internal.AD.evalUnchecked e (fun _ => DualInterval.varActive I)).der := by + induction hsupp generalizing x with + | const q => + -- d/dx (const) = 0 + simp only [LeanCert.Internal.AD.evalUnchecked, DualInterval.const, evalFunc1_const, deriv_const] + convert IntervalRat.mem_singleton 0 using 1 + norm_cast + | var _ => + -- d/dx (x) = 1 + simp only [LeanCert.Internal.AD.evalUnchecked, DualInterval.varActive, evalFunc1_var] + rw [deriv_id] + convert IntervalRat.mem_singleton 1 using 1 + norm_cast + | add h₁ h₂ ih₁ ih₂ => + -- d/dx (f + g) = f' + g' + have hd₁ := evalFunc1_differentiable _ h₁ + have hd₂ := evalFunc1_differentiable _ h₂ + simp only [LeanCert.Internal.AD.evalUnchecked, DualInterval.add, evalFunc1_add_pi, deriv_add + (hd₁ x) (hd₂ x)] + exact IntervalRat.mem_add (ih₁ x hx) (ih₂ x hx) + | mul h₁ h₂ ih₁ ih₂ => + -- d/dx (f * g) = f' * g + f * g' + have hd₁ := evalFunc1_differentiable _ h₁ + have hd₂ := evalFunc1_differentiable _ h₂ + simp only [LeanCert.Internal.AD.evalUnchecked, DualInterval.mul, evalFunc1_mul_pi, deriv_mul + (hd₁ x) (hd₂ x)] + -- Need: f'(x)*g(x) + f(x)*g'(x) ∈ der₁*val₂ + val₁*der₂ + have hval₁ := LeanCert.Engine.evalDualUnchecked_val_correct _ h₁ (fun _ => x) (fun _ => + DualInterval.varActive I) + (fun _ => hx) + have hval₂ := LeanCert.Engine.evalDualUnchecked_val_correct _ h₂ (fun _ => x) (fun _ => + DualInterval.varActive I) + (fun _ => hx) + simp only [DualInterval.varActive] at hval₁ hval₂ + exact IntervalRat.mem_add (IntervalRat.mem_mul (ih₁ x hx) hval₂) (IntervalRat.mem_mul hval₁ + (ih₂ x hx)) + | neg hs ih => + -- d/dx (-f) = -f' + have hd := evalFunc1_differentiable _ hs + simp only [LeanCert.Internal.AD.evalUnchecked, DualInterval.neg, evalFunc1_neg_pi, deriv.neg] + exact IntervalRat.mem_neg (ih x hx) + | @sin e' hs ih => + -- d/dx (sin f) = cos(f) * f' + have hd := evalFunc1_differentiable e' hs + simp only [LeanCert.Internal.AD.evalUnchecked, DualInterval.sin, evalFunc1_sin] + rw [deriv_sin (hd.differentiableAt)] + exact IntervalRat.mem_mul (cos_mem_cosInterval_of_any _ _) (ih x hx) + | @cos e' hs ih => + -- d/dx (cos f) = -sin(f) * f' + have hd := evalFunc1_differentiable e' hs + simp only [LeanCert.Internal.AD.evalUnchecked, DualInterval.cos, evalFunc1_cos] + rw [deriv_cos (hd.differentiableAt)] + exact IntervalRat.mem_mul (neg_sin_mem_neg_sinInterval _ _) (ih x hx) + | @exp e' hs ih => + -- d/dx (exp f) = exp(f) * f' + have hd := evalFunc1_differentiable e' hs + simp only [LeanCert.Internal.AD.evalUnchecked, DualInterval.exp, evalFunc1_exp] + rw [deriv_exp (hd.differentiableAt)] + -- exp(f(x)) ∈ expInterval and f'(x) ∈ der + have hval := LeanCert.Engine.evalDualUnchecked_val_correct e' hs (fun _ => x) (fun _ => + DualInterval.varActive I) + (fun _ => hx) + simp only [DualInterval.varActive] at hval + have hexp := IntervalRat.mem_expInterval hval + exact IntervalRat.mem_mul hexp (ih x hx) + +/-- The derivative component of dual interval evaluation is correct. + For a supported expression evaluated at a point x in the interval I, + the derivative of the expression (as a function of x) lies in the + computed derivative interval. + + This is the fundamental correctness theorem for forward-mode AD: + the derivative bounds computed by interval arithmetic contain the + true derivative at every point in the domain. + + FULLY PROVED - no sorry, no axioms. -/ +theorem evalDualUnchecked_der_correct (e : Expr) (hsupp : ADSupported e) + (I : IntervalRat) (x : ℝ) (hx : x ∈ I) : + deriv (fun t => Expr.eval (fun _ => t) e) x ∈ + (LeanCert.Internal.AD.evalUnchecked e (fun _ => DualInterval.varActive I)).der := + deriv_mem_dualDer e hsupp I x hx + +/-! ### Generalized n-variable derivative correctness -/ + +/-- Helper: evalAlong is differentiable for supported expressions -/ +theorem evalAlong_differentiable (e : Expr) (hsupp : ADSupported e) + (ρ : Nat → ℝ) (idx : Nat) : + Differentiable ℝ (Expr.evalAlong e ρ idx) := by + induction hsupp with + | const q => + simp only [Expr.evalAlong_const'] + exact differentiable_const _ + | var i => + by_cases h : i = idx + · subst h + simp only [Expr.evalAlong_var_active] + exact differentiable_id + · simp only [Expr.evalAlong_var_passive _ _ _ h] + exact differentiable_const _ + | add _ _ ih₁ ih₂ => + simp only [Expr.evalAlong_add] + exact Differentiable.add ih₁ ih₂ + | mul _ _ ih₁ ih₂ => + simp only [Expr.evalAlong_mul] + exact Differentiable.mul ih₁ ih₂ + | neg _ ih => + simp only [Expr.evalAlong_neg] + exact Differentiable.neg ih + | sin _ ih => + simp only [Expr.evalAlong_sin] + exact Real.differentiable_sin.comp ih + | cos _ ih => + simp only [Expr.evalAlong_cos] + exact Real.differentiable_cos.comp ih + | exp _ ih => + simp only [Expr.evalAlong_exp] + exact Real.differentiable_exp.comp ih + +/-- The derivative of evalAlong with respect to coordinate `idx` lies in the + computed derivative interval from mkDualEnv. + + This is the fundamental n-variable derivative correctness theorem. + It shows that for any expression, if we differentiate along coordinate `idx` + while holding all other coordinates fixed according to `ρ`, the derivative + at any point `x` in the interval `ρ_int idx` lies in the computed interval. + + FULLY PROVED - no sorry, no axioms. -/ +theorem evalDualUnchecked_der_correct_idx (e : Expr) (hsupp : ADSupported e) + (ρ_real : Nat → ℝ) (ρ_int : IntervalEnv) (idx : Nat) + (hρ : ∀ i, ρ_real i ∈ ρ_int i) + (x : ℝ) (hx : x ∈ ρ_int idx) : + deriv (Expr.evalAlong e ρ_real idx) x ∈ + (LeanCert.Internal.AD.evalUnchecked e (mkDualEnv ρ_int idx)).der := by + induction hsupp generalizing x with + | const q => + -- d/dt (const) = 0 + simp only [Expr.evalAlong_const', deriv_const, LeanCert.Internal.AD.evalUnchecked, + DualInterval.const] + convert IntervalRat.mem_singleton 0 using 1 + norm_cast + | var i => + by_cases h : i = idx + · -- Active variable: d/dt (t) = 1 + subst h + simp only [Expr.evalAlong_var_active, LeanCert.Internal.AD.evalUnchecked, mkDualEnv, + ↓reduceIte, + DualInterval.varActive, deriv_id] + convert IntervalRat.mem_singleton 1 using 1 + norm_cast + · -- Passive variable: d/dt (const) = 0 + simp only [Expr.evalAlong_var_passive _ _ _ h, deriv_const, + LeanCert.Internal.AD.evalUnchecked, mkDualEnv, + ite_eq_right h, DualInterval.varPassive] + convert IntervalRat.mem_singleton 0 using 1 + norm_cast + | add h₁ h₂ ih₁ ih₂ => + have hd₁ := evalAlong_differentiable _ h₁ ρ_real idx + have hd₂ := evalAlong_differentiable _ h₂ ρ_real idx + simp only [Expr.evalAlong_add_pi, deriv_add (hd₁ x) (hd₂ x), + LeanCert.Internal.AD.evalUnchecked, DualInterval.add] + exact IntervalRat.mem_add (ih₁ x hx) (ih₂ x hx) + | mul h₁ h₂ ih₁ ih₂ => + have hd₁ := evalAlong_differentiable _ h₁ ρ_real idx + have hd₂ := evalAlong_differentiable _ h₂ ρ_real idx + simp only [Expr.evalAlong_mul_pi, deriv_mul (hd₁ x) (hd₂ x), + LeanCert.Internal.AD.evalUnchecked, DualInterval.mul] + have hmem := updateVar_mem_mkDualEnv_val ρ_real ρ_int idx x hx hρ + have hval₁ := LeanCert.Engine.evalDualUnchecked_val_correct _ h₁ _ _ hmem + have hval₂ := LeanCert.Engine.evalDualUnchecked_val_correct _ h₂ _ _ hmem + exact IntervalRat.mem_add (IntervalRat.mem_mul (ih₁ x hx) hval₂) (IntervalRat.mem_mul hval₁ + (ih₂ x hx)) + | neg hs ih => + have hd := evalAlong_differentiable _ hs ρ_real idx + simp only [Expr.evalAlong_neg_pi, deriv.neg, LeanCert.Internal.AD.evalUnchecked, + DualInterval.neg] + exact IntervalRat.mem_neg (ih x hx) + | @sin e' hs ih => + have hd := evalAlong_differentiable e' hs ρ_real idx + simp only [Expr.evalAlong_sin, deriv_sin (hd.differentiableAt), + LeanCert.Internal.AD.evalUnchecked, DualInterval.sin] + exact IntervalRat.mem_mul (cos_mem_cosInterval_of_any _ _) (ih x hx) + | @cos e' hs ih => + have hd := evalAlong_differentiable e' hs ρ_real idx + simp only [Expr.evalAlong_cos, deriv_cos (hd.differentiableAt), + LeanCert.Internal.AD.evalUnchecked, DualInterval.cos] + exact IntervalRat.mem_mul (neg_sin_mem_neg_sinInterval _ _) (ih x hx) + | @exp e' hs ih => + have hd := evalAlong_differentiable e' hs ρ_real idx + simp only [Expr.evalAlong_exp, deriv_exp (hd.differentiableAt), + LeanCert.Internal.AD.evalUnchecked, DualInterval.exp] + have hmem := updateVar_mem_mkDualEnv_val ρ_real ρ_int idx x hx hρ + have hval := LeanCert.Engine.evalDualUnchecked_val_correct e' hs _ _ hmem + exact IntervalRat.mem_mul (IntervalRat.mem_expInterval hval) (ih x hx) + +/-- Convenience theorem: derivInterval correctness for n-variable expressions. + The derivative of `evalAlong e ρ idx` at any point `x` in the interval + lies in `derivInterval e ρ_int idx`. -/ +theorem derivInterval_correct_idx (e : Expr) (hsupp : ADSupported e) + (ρ_real : Nat → ℝ) (ρ_int : IntervalEnv) (idx : Nat) + (hρ : ∀ i, ρ_real i ∈ ρ_int i) + (x : ℝ) (hx : x ∈ ρ_int idx) : + deriv (Expr.evalAlong e ρ_real idx) x ∈ derivInterval e ρ_int idx := by + simp only [derivInterval, evalWithDeriv] + exact LeanCert.Engine.evalDualUnchecked_der_correct_idx e hsupp ρ_real ρ_int idx hρ x hx + +/-! ### Single-variable expressions -/ + +/-- Predicate: expression only uses variable index 0. + This is useful for proving that different environments give the same result + when they agree at index 0. -/ +inductive UsesOnlyVar0 : Expr → Prop where + | const (q : ℚ) : UsesOnlyVar0 (Expr.const q) + | var0 : UsesOnlyVar0 (Expr.var 0) + | add (e₁ e₂ : Expr) (h₁ : UsesOnlyVar0 e₁) (h₂ : UsesOnlyVar0 e₂) : UsesOnlyVar0 (Expr.add e₁ e₂) + | mul (e₁ e₂ : Expr) (h₁ : UsesOnlyVar0 e₁) (h₂ : UsesOnlyVar0 e₂) : UsesOnlyVar0 (Expr.mul e₁ e₂) + | neg (e : Expr) (h : UsesOnlyVar0 e) : UsesOnlyVar0 (Expr.neg e) + | inv (e : Expr) (h : UsesOnlyVar0 e) : UsesOnlyVar0 (Expr.inv e) + | sin (e : Expr) (h : UsesOnlyVar0 e) : UsesOnlyVar0 (Expr.sin e) + | cos (e : Expr) (h : UsesOnlyVar0 e) : UsesOnlyVar0 (Expr.cos e) + | exp (e : Expr) (h : UsesOnlyVar0 e) : UsesOnlyVar0 (Expr.exp e) + | log (e : Expr) (h : UsesOnlyVar0 e) : UsesOnlyVar0 (Expr.log e) + | atan (e : Expr) (h : UsesOnlyVar0 e) : UsesOnlyVar0 (Expr.atan e) + | arsinh (e : Expr) (h : UsesOnlyVar0 e) : UsesOnlyVar0 (Expr.arsinh e) + | atanh (e : Expr) (h : UsesOnlyVar0 e) : UsesOnlyVar0 (Expr.atanh e) + | sinc (e : Expr) (h : UsesOnlyVar0 e) : UsesOnlyVar0 (Expr.sinc e) + | erf (e : Expr) (h : UsesOnlyVar0 e) : UsesOnlyVar0 (Expr.erf e) + | sinh (e : Expr) (h : UsesOnlyVar0 e) : UsesOnlyVar0 (Expr.sinh e) + | cosh (e : Expr) (h : UsesOnlyVar0 e) : UsesOnlyVar0 (Expr.cosh e) + | tanh (e : Expr) (h : UsesOnlyVar0 e) : UsesOnlyVar0 (Expr.tanh e) + | sqrt (e : Expr) (h : UsesOnlyVar0 e) : UsesOnlyVar0 (Expr.sqrt e) + | namedConst (c : MathConst) : UsesOnlyVar0 (Expr.namedConst c) + +/-- Bridge between the canonical boolean predicate and the proof-carrying +`UsesOnlyVar0` predicate used by AD correctness lemmas. -/ +theorem Expr.usesOnlyVar0_iff_UsesOnlyVar0 {e : Expr} : + e.usesOnlyVar0 = true ↔ UsesOnlyVar0 e := by + constructor + · intro he + induction e with + | const q => exact UsesOnlyVar0.const q + | var i => + simp only [Expr.usesOnlyVar0] at he + have hi : i = 0 := beq_iff_eq.mp he + subst hi + exact UsesOnlyVar0.var0 + | add e₁ e₂ ih₁ ih₂ => + simp only [Expr.usesOnlyVar0, Bool.and_eq_true] at he + exact UsesOnlyVar0.add e₁ e₂ (ih₁ he.1) (ih₂ he.2) + | mul e₁ e₂ ih₁ ih₂ => + simp only [Expr.usesOnlyVar0, Bool.and_eq_true] at he + exact UsesOnlyVar0.mul e₁ e₂ (ih₁ he.1) (ih₂ he.2) + | neg e ih => + exact UsesOnlyVar0.neg e (ih he) + | inv e ih => + exact UsesOnlyVar0.inv e (ih he) + | exp e ih => + exact UsesOnlyVar0.exp e (ih he) + | sin e ih => + exact UsesOnlyVar0.sin e (ih he) + | cos e ih => + exact UsesOnlyVar0.cos e (ih he) + | log e ih => + exact UsesOnlyVar0.log e (ih he) + | atan e ih => + exact UsesOnlyVar0.atan e (ih he) + | arsinh e ih => + exact UsesOnlyVar0.arsinh e (ih he) + | atanh e ih => + exact UsesOnlyVar0.atanh e (ih he) + | sinc e ih => + exact UsesOnlyVar0.sinc e (ih he) + | erf e ih => + exact UsesOnlyVar0.erf e (ih he) + | sinh e ih => + exact UsesOnlyVar0.sinh e (ih he) + | cosh e ih => + exact UsesOnlyVar0.cosh e (ih he) + | tanh e ih => + exact UsesOnlyVar0.tanh e (ih he) + | sqrt e ih => + exact UsesOnlyVar0.sqrt e (ih he) + | namedConst c => + exact UsesOnlyVar0.namedConst c + · intro h + induction h with + | const q => rfl + | var0 => rfl + | add _ _ _ _ ih₁ ih₂ => + rw [Expr.usesOnlyVar0, ih₁, ih₂] + rfl + | mul _ _ _ _ ih₁ ih₂ => + rw [Expr.usesOnlyVar0, ih₁, ih₂] + rfl + | neg _ _ ih | inv _ _ ih | sin _ _ ih | cos _ _ ih | exp _ _ ih | log _ _ ih + | atan _ _ ih | arsinh _ _ ih | atanh _ _ ih | sinc _ _ ih | erf _ _ ih + | sinh _ _ ih | cosh _ _ ih | tanh _ _ ih | sqrt _ _ ih => + simpa only [Expr.usesOnlyVar0] using ih + | namedConst c => rfl + +/-- For expressions using only var 0, LeanCert.Internal.AD.evalUnchecked agrees for environments +that match at 0 -/ +theorem evalDualUnchecked_congr_at_0 (e : Expr) (h : UsesOnlyVar0 e) + (ρ₁ ρ₂ : DualEnv) (heq : ρ₁ 0 = ρ₂ 0) : + LeanCert.Internal.AD.evalUnchecked e ρ₁ = LeanCert.Internal.AD.evalUnchecked e ρ₂ := by + induction h generalizing ρ₁ ρ₂ with + | const q => simp only [LeanCert.Internal.AD.evalUnchecked] + | var0 => simp only [LeanCert.Internal.AD.evalUnchecked, heq] + | add _ _ _ _ ih₁ ih₂ => + simp only [LeanCert.Internal.AD.evalUnchecked, ih₁ ρ₁ ρ₂ heq, ih₂ ρ₁ ρ₂ heq] + | mul _ _ _ _ ih₁ ih₂ => + simp only [LeanCert.Internal.AD.evalUnchecked, ih₁ ρ₁ ρ₂ heq, ih₂ ρ₁ ρ₂ heq] + | neg _ _ ih => + simp only [LeanCert.Internal.AD.evalUnchecked, ih ρ₁ ρ₂ heq] + | inv _ _ ih => + simp only [LeanCert.Internal.AD.evalUnchecked] + | sin _ _ ih => + simp only [LeanCert.Internal.AD.evalUnchecked, ih ρ₁ ρ₂ heq] + | cos _ _ ih => + simp only [LeanCert.Internal.AD.evalUnchecked, ih ρ₁ ρ₂ heq] + | exp _ _ ih => + simp only [LeanCert.Internal.AD.evalUnchecked, ih ρ₁ ρ₂ heq] + | log _ _ ih => + simp only [LeanCert.Internal.AD.evalUnchecked] + | atan _ _ ih => + simp only [LeanCert.Internal.AD.evalUnchecked, ih ρ₁ ρ₂ heq] + | arsinh _ _ ih => + simp only [LeanCert.Internal.AD.evalUnchecked, ih ρ₁ ρ₂ heq] + | atanh _ _ ih => + simp only [LeanCert.Internal.AD.evalUnchecked] + | sinc _ _ ih => + simp only [LeanCert.Internal.AD.evalUnchecked, ih ρ₁ ρ₂ heq] + | erf _ _ ih => + simp only [LeanCert.Internal.AD.evalUnchecked, ih ρ₁ ρ₂ heq] + | sinh _ _ ih => + simp only [LeanCert.Internal.AD.evalUnchecked, ih ρ₁ ρ₂ heq] + | cosh _ _ ih => + simp only [LeanCert.Internal.AD.evalUnchecked, ih ρ₁ ρ₂ heq] + | tanh _ _ ih => + simp only [LeanCert.Internal.AD.evalUnchecked, ih ρ₁ ρ₂ heq] + | sqrt _ _ ih => + simp only [LeanCert.Internal.AD.evalUnchecked, ih ρ₁ ρ₂ heq] + | namedConst _ => + simp only [LeanCert.Internal.AD.evalUnchecked] + +/-- mkDualEnv at index 0 equals varActive at 0 -/ +theorem mkDualEnv_at_0 (I : IntervalRat) : + mkDualEnv (fun _ => I) 0 0 = DualInterval.varActive I := by + simp only [mkDualEnv, ↓reduceIte] + +/-- For expressions using only var 0, derivInterval equals evalWithDeriv1 -/ +theorem derivInterval_eq_evalWithDeriv1_of_UsesOnlyVar0 (e : Expr) (h : UsesOnlyVar0 e) + (I : IntervalRat) : + derivInterval e (fun _ => I) 0 = (evalWithDeriv1 e I).der := by + simp only [derivInterval, evalWithDeriv, evalWithDeriv1] + -- Need to show: (LeanCert.Internal.AD.evalUnchecked e (mkDualEnv (fun _ => I) 0)).der = + -- (LeanCert.Internal.AD.evalUnchecked e (fun _ => varActive I)).der + have henv_eq : mkDualEnv (fun _ => I) 0 0 = (fun _ => DualInterval.varActive I) 0 := by + simp only [mkDualEnv_at_0] + have heq := LeanCert.Engine.evalDualUnchecked_congr_at_0 e h (mkDualEnv (fun _ => I) 0) (fun _ + => DualInterval.varActive I) henv_eq + rw [heq] + +/-- Correctness of single-variable derivative bounds -/ +theorem evalWithDeriv1_correct (e : Expr) (hsupp : ADSupported e) + (I : IntervalRat) (x : ℝ) (hx : x ∈ I) : + Expr.eval (fun _ => x) e ∈ (evalWithDeriv1 e I).val ∧ + deriv (fun t => Expr.eval (fun _ => t) e) x ∈ (evalWithDeriv1 e I).der := by + constructor + · exact LeanCert.Engine.evalDualUnchecked_val_correct e hsupp (fun _ => x) _ (fun _ => hx) + · exact LeanCert.Engine.evalDualUnchecked_der_correct e hsupp I x hx + +end LeanCert.Engine + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Automatic Differentiation - Computable Evaluators + +This file provides computable dual evaluators using Taylor-based approximations +for transcendental functions. This enables `native_decide` for derivative-based +bound checking. + +## Main definitions + +* `DualInterval.expCore`, `sinCore`, `cosCore` - Taylor-based dual functions +* `DualInterval.sinhCore`, `coshCore`, `tanhCore` - Hyperbolic Taylor-based duals +* `LeanCert.Internal.AD.evalTotalCore` - Computable dual evaluator for ExprSupportedCore +* `derivIntervalCore` - Computable single-variable derivative interval + +## Main theorems + +* `LeanCert.Engine.evalDualTotalCore_val_correct` - Value component is correct +* `LeanCert.Engine.evalDualTotalCore_der_correct` - Derivative component is correct +* `derivIntervalCore_correct` - Derivative interval correctness +* `strictMonoOn_of_derivIntervalCore_pos` - Monotonicity from positive derivative +* `strictAntiOn_of_derivIntervalCore_neg` - Antitonicity from negative derivative +-/ + +/-! ### Computable Dual Evaluation for ExprSupportedCore + +This section provides a fully computable dual evaluator that uses Taylor-based +approximations for transcendental functions. This enables `native_decide` for +derivative-based bound checking. +-/ + +@[expose] public section + +namespace LeanCert.Engine + +open LeanCert.Core Filter +open scoped Topology + +namespace DualInterval + +/-- Computable dual for exp using Taylor series (chain rule: d(exp f) = exp(f) * f') -/ +def expCore (d : DualInterval) (n : ℕ := 10) : DualInterval := + let expVal := IntervalRat.expComputable d.val n + { val := expVal + der := IntervalRat.mul expVal d.der } + +/-- Computable dual for sin using Taylor series -/ +def sinCore (d : DualInterval) (n : ℕ := 10) : DualInterval := + { val := IntervalRat.sinComputable d.val n + der := IntervalRat.mul (IntervalRat.cosComputable d.val n) d.der } + +/-- Computable dual for cos using Taylor series -/ +def cosCore (d : DualInterval) (n : ℕ := 10) : DualInterval := + { val := IntervalRat.cosComputable d.val n + der := IntervalRat.mul (IntervalRat.neg (IntervalRat.sinComputable d.val n)) d.der } + +/-- Computable dual for log using Taylor series via atanh reduction. + Chain rule: d(log f) = f' / f -/ +def logCore (d : DualInterval) (n : ℕ := 20) : DualInterval := + { val := IntervalRat.logComputable d.val n + -- der = d.der / d.val = d.der * (1/d.val) + der := IntervalRat.mul (invInterval d.val) d.der } + +/-- Computable dual for sinh using Taylor series (chain rule: d(sinh f) = cosh(f) * f') -/ +def sinhCore (d : DualInterval) (n : ℕ := 10) : DualInterval := + { val := IntervalRat.sinhComputable d.val n + der := IntervalRat.mul (IntervalRat.coshComputable d.val n) d.der } + +/-- Computable dual for cosh using Taylor series (chain rule: d(cosh f) = sinh(f) * f') -/ +def coshCore (d : DualInterval) (n : ℕ := 10) : DualInterval := + { val := IntervalRat.coshComputable d.val n + der := IntervalRat.mul (IntervalRat.sinhComputable d.val n) d.der } + +/-- Computable dual for tanh (chain rule: d(tanh f) = sech²(f) * f') + Since sech²(x) ∈ (0, 1], we use [0, 1] as a conservative bound. -/ +def tanhCore (d : DualInterval) (_n : ℕ := 10) : DualInterval := + { val := tanhInterval d.val + -- tanh'(x) = sech²(x) ∈ (0, 1], use [0, 1] as bound + der := IntervalRat.mul d.der ⟨0, 1, by norm_num⟩ } + +end DualInterval + +end LeanCert.Engine + +namespace LeanCert.Internal.AD + +open LeanCert.Core LeanCert.Engine + +/-- Computable dual interval evaluator for ExprSupportedCore expressions. + + This uses Taylor series approximations for transcendental functions, + making it fully computable and usable with `native_decide`. + + For `inv` and `log`, use `evalDualChecked` or the bounded-denominator + `evalDualDyadicChecked`; they validate the actual input box before exposing + this total kernel's result. Correctness is not claimed for unchecked + partial-operation branches here. -/ +def evalTotalCore (e : Expr) (ρ : DualEnv) (cfg : EvalConfig := {}) : DualInterval := + match e with + | Expr.const q => DualInterval.const q + | Expr.var idx => ρ idx + | Expr.add e₁ e₂ => DualInterval.add (LeanCert.Internal.AD.evalTotalCore e₁ ρ cfg) + (LeanCert.Internal.AD.evalTotalCore e₂ ρ cfg) + | Expr.mul e₁ e₂ => DualInterval.mul (LeanCert.Internal.AD.evalTotalCore e₁ ρ cfg) + (LeanCert.Internal.AD.evalTotalCore e₂ ρ cfg) + | Expr.neg e => DualInterval.neg (LeanCert.Internal.AD.evalTotalCore e ρ cfg) + | Expr.inv e => DualInterval.inv (LeanCert.Internal.AD.evalTotalCore e ρ cfg) + | Expr.exp e => DualInterval.expCore (LeanCert.Internal.AD.evalTotalCore e ρ cfg) cfg.taylorDepth + | Expr.sin e => DualInterval.sinCore (LeanCert.Internal.AD.evalTotalCore e ρ cfg) cfg.taylorDepth + | Expr.cos e => DualInterval.cosCore (LeanCert.Internal.AD.evalTotalCore e ρ cfg) cfg.taylorDepth + | Expr.log e => DualInterval.logCore (LeanCert.Internal.AD.evalTotalCore e ρ cfg) cfg.taylorDepth + | Expr.atan e => DualInterval.atan (LeanCert.Internal.AD.evalTotalCore e ρ cfg) + | Expr.arsinh e => DualInterval.arsinh (LeanCert.Internal.AD.evalTotalCore e ρ cfg) + | Expr.atanh _ => default + | Expr.sinc e => DualInterval.sinc (LeanCert.Internal.AD.evalTotalCore e ρ cfg) + | Expr.erf e => DualInterval.erfCore (LeanCert.Internal.AD.evalTotalCore e ρ cfg) cfg.taylorDepth + | Expr.sinh e => DualInterval.sinhCore (LeanCert.Internal.AD.evalTotalCore e ρ cfg) + cfg.taylorDepth + | Expr.cosh e => DualInterval.coshCore (LeanCert.Internal.AD.evalTotalCore e ρ cfg) + cfg.taylorDepth + | Expr.tanh e => DualInterval.tanhCore (LeanCert.Internal.AD.evalTotalCore e ρ cfg) + cfg.taylorDepth + | Expr.sqrt e => DualInterval.sqrt (LeanCert.Internal.AD.evalTotalCore e ρ cfg) + | Expr.namedConst c => DualInterval.ofMathConst c + +end LeanCert.Internal.AD + +namespace LeanCert.Engine + +open LeanCert.Core Filter +open scoped Topology + +/-- Computable single-variable derivative interval -/ +def derivIntervalCore (e : Expr) (I : IntervalRat) (cfg : EvalConfig := {}) : IntervalRat := + (LeanCert.Internal.AD.evalTotalCore e (fun _ => DualInterval.varActive I) cfg).der + +/-- Domain validity for dual evaluation. + This is defined directly in terms of LeanCert.Internal.AD.evalTotalCore to ensure compatibility. + For log, we require the argument interval to have positive lower bound. -/ +def evalDomainValidDual (e : Expr) (ρ : DualEnv) (cfg : EvalConfig := {}) : Prop := + match e with + | Expr.const _ => True + | Expr.var _ => True + | Expr.add e₁ e₂ => evalDomainValidDual e₁ ρ cfg ∧ evalDomainValidDual e₂ ρ cfg + | Expr.mul e₁ e₂ => evalDomainValidDual e₁ ρ cfg ∧ evalDomainValidDual e₂ ρ cfg + | Expr.neg e => evalDomainValidDual e ρ cfg + | Expr.inv e => evalDomainValidDual e ρ cfg + | Expr.exp e => evalDomainValidDual e ρ cfg + | Expr.sin e => evalDomainValidDual e ρ cfg + | Expr.cos e => evalDomainValidDual e ρ cfg + | Expr.log e => evalDomainValidDual e ρ cfg ∧ (LeanCert.Internal.AD.evalTotalCore e ρ + cfg).val.lo > 0 + | Expr.atan e => evalDomainValidDual e ρ cfg + | Expr.arsinh e => evalDomainValidDual e ρ cfg + | Expr.atanh e => evalDomainValidDual e ρ cfg + | Expr.sinc e => evalDomainValidDual e ρ cfg + | Expr.erf e => evalDomainValidDual e ρ cfg + | Expr.sinh e => evalDomainValidDual e ρ cfg + | Expr.cosh e => evalDomainValidDual e ρ cfg + | Expr.tanh e => evalDomainValidDual e ρ cfg + | Expr.sqrt e => evalDomainValidDual e ρ cfg + | Expr.namedConst _ => True + +/-- Correctness theorem for computable dual value component. + + Note: Requires domain validity for log (positive argument interval). -/ +theorem evalDualTotalCore_val_correct (e : Expr) (hsupp : ExprSupportedCore e) + (ρ_real : Nat → ℝ) (ρ_dual : DualEnv) (cfg : EvalConfig) + (hρ : ∀ i, ρ_real i ∈ (ρ_dual i).val) + (hdom : evalDomainValidDual e ρ_dual cfg) : + Expr.eval ρ_real e ∈ (LeanCert.Internal.AD.evalTotalCore e ρ_dual cfg).val := by + induction hsupp with + | const q => + simp only [Expr.eval_const, LeanCert.Internal.AD.evalTotalCore, DualInterval.const] + exact IntervalRat.mem_singleton q + | var idx => + simp only [Expr.eval_var, LeanCert.Internal.AD.evalTotalCore] + exact hρ idx + | add _ _ ih₁ ih₂ => + simp only [evalDomainValidDual] at hdom + simp only [Expr.eval_add, LeanCert.Internal.AD.evalTotalCore, DualInterval.add] + exact IntervalRat.mem_add (ih₁ hdom.1) (ih₂ hdom.2) + | mul _ _ ih₁ ih₂ => + simp only [evalDomainValidDual] at hdom + simp only [Expr.eval_mul, LeanCert.Internal.AD.evalTotalCore, DualInterval.mul] + exact IntervalRat.mem_mul (ih₁ hdom.1) (ih₂ hdom.2) + | neg _ ih => + simp only [evalDomainValidDual] at hdom + simp only [Expr.eval_neg, LeanCert.Internal.AD.evalTotalCore, DualInterval.neg] + exact IntervalRat.mem_neg (ih hdom) + | sin _ ih => + simp only [evalDomainValidDual] at hdom + simp only [Expr.eval_sin, LeanCert.Internal.AD.evalTotalCore, DualInterval.sinCore] + exact IntervalRat.mem_sinComputable (ih hdom) cfg.taylorDepth + | cos _ ih => + simp only [evalDomainValidDual] at hdom + simp only [Expr.eval_cos, LeanCert.Internal.AD.evalTotalCore, DualInterval.cosCore] + exact IntervalRat.mem_cosComputable (ih hdom) cfg.taylorDepth + | exp _ ih => + simp only [evalDomainValidDual] at hdom + simp only [Expr.eval_exp, LeanCert.Internal.AD.evalTotalCore, DualInterval.expCore] + exact IntervalRat.mem_expComputable (ih hdom) cfg.taylorDepth + | sqrt _ ih => + simp only [evalDomainValidDual] at hdom + simp only [Expr.eval_sqrt, LeanCert.Internal.AD.evalTotalCore, DualInterval.sqrt] + exact IntervalRat.mem_sqrtInterval' (ih hdom) + | sinh _ ih => + simp only [evalDomainValidDual] at hdom + simp only [Expr.eval_sinh, LeanCert.Internal.AD.evalTotalCore, DualInterval.sinhCore] + exact IntervalRat.mem_sinhComputable (ih hdom) cfg.taylorDepth + | cosh _ ih => + simp only [evalDomainValidDual] at hdom + simp only [Expr.eval_cosh, LeanCert.Internal.AD.evalTotalCore, DualInterval.coshCore] + exact IntervalRat.mem_coshComputable (ih hdom) cfg.taylorDepth + | tanh _ ih => + simp only [evalDomainValidDual] at hdom + simp only [Expr.eval_tanh, LeanCert.Internal.AD.evalTotalCore, DualInterval.tanhCore] + exact mem_tanhInterval (ih hdom) + | erf _ ih => + simp only [evalDomainValidDual] at hdom + simp only [Expr.eval_erf, LeanCert.Internal.AD.evalTotalCore, DualInterval.erfCore] + simp only [IntervalRat.mem_def, Rat.cast_neg, Rat.cast_one] + exact Real.erf_mem_Icc _ + | log _ ih => + simp only [evalDomainValidDual] at hdom + simp only [Expr.eval_log, LeanCert.Internal.AD.evalTotalCore, DualInterval.logCore] + exact IntervalRat.mem_logComputable (ih hdom.1) hdom.2 cfg.taylorDepth + | namedConst c => + simp only [Expr.eval_namedConst, LeanCert.Internal.AD.evalTotalCore, DualInterval.ofMathConst] + exact c.mem_interval + +/-- For ADSupported expressions (which exclude log), domain validity is trivially true. + This is because ADSupported has no log constructor. -/ +theorem evalDomainValidDual_of_ExprSupported (e : Expr) (hsupp : ADSupported e) + (ρ : DualEnv) (cfg : EvalConfig) : evalDomainValidDual e ρ cfg := by + induction hsupp with + | const _ => trivial + | var _ => trivial + | add _ _ ih₁ ih₂ => exact ⟨ih₁, ih₂⟩ + | mul _ _ ih₁ ih₂ => exact ⟨ih₁, ih₂⟩ + | neg _ ih => exact ih + | sin _ ih => exact ih + | cos _ ih => exact ih + | exp _ ih => exact ih + +/-- Correctness theorem for computable dual derivative component. + Uses ADSupported since derivative correctness requires differentiability. -/ +theorem evalDualTotalCore_der_correct (e : Expr) (hsupp : ADSupported e) + (I : IntervalRat) (x : ℝ) (hx : x ∈ I) (cfg : EvalConfig) : + deriv (evalFunc1 e) x ∈ (LeanCert.Internal.AD.evalTotalCore e (fun _ => DualInterval.varActive + I) cfg).der := by + induction hsupp generalizing x with + | const q => + simp only [LeanCert.Internal.AD.evalTotalCore, DualInterval.const, evalFunc1_const, deriv_const] + convert IntervalRat.mem_singleton 0 using 1 + norm_cast + | var _ => + simp only [LeanCert.Internal.AD.evalTotalCore, DualInterval.varActive, evalFunc1_var] + rw [deriv_id] + convert IntervalRat.mem_singleton 1 using 1 + norm_cast + | add h₁ h₂ ih₁ ih₂ => + have hd₁ := evalFunc1_differentiable _ h₁ + have hd₂ := evalFunc1_differentiable _ h₂ + simp only [LeanCert.Internal.AD.evalTotalCore, DualInterval.add, evalFunc1_add_pi, deriv_add + (hd₁ x) (hd₂ x)] + exact IntervalRat.mem_add (ih₁ x hx) (ih₂ x hx) + | mul h₁ h₂ ih₁ ih₂ => + have hd₁ := evalFunc1_differentiable _ h₁ + have hd₂ := evalFunc1_differentiable _ h₂ + simp only [LeanCert.Internal.AD.evalTotalCore, DualInterval.mul, evalFunc1_mul_pi, deriv_mul + (hd₁ x) (hd₂ x)] + have hdom₁ := evalDomainValidDual_of_ExprSupported _ h₁ (fun _ => DualInterval.varActive I) cfg + have hdom₂ := evalDomainValidDual_of_ExprSupported _ h₂ (fun _ => DualInterval.varActive I) cfg + have hval₁ := LeanCert.Engine.evalDualTotalCore_val_correct _ h₁.toCore (fun _ => x) + (fun _ => DualInterval.varActive I) cfg (fun _ => hx) hdom₁ + have hval₂ := LeanCert.Engine.evalDualTotalCore_val_correct _ h₂.toCore (fun _ => x) + (fun _ => DualInterval.varActive I) cfg (fun _ => hx) hdom₂ + exact IntervalRat.mem_add (IntervalRat.mem_mul (ih₁ x hx) hval₂) (IntervalRat.mem_mul hval₁ + (ih₂ x hx)) + | neg hs ih => + have hd := evalFunc1_differentiable _ hs + simp only [LeanCert.Internal.AD.evalTotalCore, DualInterval.neg, evalFunc1_neg_pi, deriv.neg] + exact IntervalRat.mem_neg (ih x hx) + | @sin e' hs ih => + have hd := evalFunc1_differentiable e' hs + simp only [LeanCert.Internal.AD.evalTotalCore, DualInterval.sinCore, evalFunc1_sin] + rw [deriv_sin (hd.differentiableAt)] + have hdom := evalDomainValidDual_of_ExprSupported e' hs (fun _ => DualInterval.varActive I) cfg + have hval := LeanCert.Engine.evalDualTotalCore_val_correct e' hs.toCore (fun _ => x) + (fun _ => DualInterval.varActive I) cfg (fun _ => hx) hdom + have hcos := IntervalRat.mem_cosComputable hval cfg.taylorDepth + exact IntervalRat.mem_mul hcos (ih x hx) + | @cos e' hs ih => + have hd := evalFunc1_differentiable e' hs + simp only [LeanCert.Internal.AD.evalTotalCore, DualInterval.cosCore, evalFunc1_cos] + rw [deriv_cos (hd.differentiableAt)] + have hdom := evalDomainValidDual_of_ExprSupported e' hs (fun _ => DualInterval.varActive I) cfg + have hval := LeanCert.Engine.evalDualTotalCore_val_correct e' hs.toCore (fun _ => x) + (fun _ => DualInterval.varActive I) cfg (fun _ => hx) hdom + have hsin := IntervalRat.mem_sinComputable hval cfg.taylorDepth + have hnegsin := IntervalRat.mem_neg hsin + exact IntervalRat.mem_mul hnegsin (ih x hx) + | @exp e' hs ih => + have hd := evalFunc1_differentiable e' hs + simp only [LeanCert.Internal.AD.evalTotalCore, DualInterval.expCore, evalFunc1_exp] + rw [deriv_exp (hd.differentiableAt)] + have hdom := evalDomainValidDual_of_ExprSupported e' hs (fun _ => DualInterval.varActive I) cfg + have hval := LeanCert.Engine.evalDualTotalCore_val_correct e' hs.toCore (fun _ => x) + (fun _ => DualInterval.varActive I) cfg (fun _ => hx) hdom + have hexp := IntervalRat.mem_expComputable hval cfg.taylorDepth + exact IntervalRat.mem_mul hexp (ih x hx) + +/-- Convenience theorem: derivIntervalCore correctness -/ +theorem derivIntervalCore_correct (e : Expr) (hsupp : ADSupported e) + (I : IntervalRat) (x : ℝ) (hx : x ∈ I) (cfg : EvalConfig) : + deriv (evalFunc1 e) x ∈ derivIntervalCore e I cfg := + LeanCert.Engine.evalDualTotalCore_der_correct e hsupp I x hx cfg + +/-- If derivIntervalCore doesn't contain zero, the derivative is nonzero everywhere on I. + This is a key theorem for Newton contraction analysis. -/ +theorem derivIntervalCore_nonzero_implies_deriv_nonzero (e : Expr) (hsupp : ADSupported e) + (I : IntervalRat) (cfg : EvalConfig) + (h : ¬(derivIntervalCore e I cfg).containsZero) : + ∀ x ∈ I, deriv (evalFunc1 e) x ≠ 0 := by + intro x hx hcontra + have hmem := derivIntervalCore_correct e hsupp I x hx cfg + simp only [IntervalRat.mem_def] at hmem + simp only [IntervalRat.containsZero, not_and_or, not_le] at h + rw [hcontra] at hmem + rcases h with hlo | hhi + · exact absurd hmem.1 (not_le.mpr (by exact_mod_cast hlo)) + · exact absurd hmem.2 (not_le.mpr (by exact_mod_cast hhi)) + +/-- If derivIntervalCore.lo > 0, then the derivative is positive everywhere on I. -/ +theorem derivIntervalCore_pos_implies_deriv_pos (e : Expr) (hsupp : ADSupported e) + (I : IntervalRat) (cfg : EvalConfig) + (h : 0 < (derivIntervalCore e I cfg).lo) : + ∀ x ∈ I, 0 < deriv (evalFunc1 e) x := by + intro x hx + have hmem := derivIntervalCore_correct e hsupp I x hx cfg + simp only [IntervalRat.mem_def] at hmem + calc (0 : ℝ) < (derivIntervalCore e I cfg).lo := by exact_mod_cast h + _ ≤ deriv (evalFunc1 e) x := hmem.1 + +/-- If derivIntervalCore.hi < 0, then the derivative is negative everywhere on I. -/ +theorem derivIntervalCore_neg_implies_deriv_neg (e : Expr) (hsupp : ADSupported e) + (I : IntervalRat) (cfg : EvalConfig) + (h : (derivIntervalCore e I cfg).hi < 0) : + ∀ x ∈ I, deriv (evalFunc1 e) x < 0 := by + intro x hx + have hmem := derivIntervalCore_correct e hsupp I x hx cfg + simp only [IntervalRat.mem_def] at hmem + calc deriv (evalFunc1 e) x ≤ (derivIntervalCore e I cfg).hi := hmem.2 + _ < 0 := by exact_mod_cast h + +/-- Strictly positive derivative (via Core bounds) implies strict monotonicity -/ +theorem strictMonoOn_of_derivIntervalCore_pos (e : Expr) (hsupp : ADSupported e) + (I : IntervalRat) (cfg : EvalConfig) + (hpos : 0 < (derivIntervalCore e I cfg).lo) : + StrictMonoOn (evalFunc1 e) (Set.Icc (I.lo : ℝ) (I.hi : ℝ)) := by + have hdiff := evalFunc1_differentiable e hsupp + have hderiv_pos := derivIntervalCore_pos_implies_deriv_pos e hsupp I cfg hpos + apply strictMonoOn_of_deriv_pos (convex_Icc _ _) + · exact hdiff.continuous.continuousOn + · intro x hx + rw [interior_Icc] at hx + have hx_mem : x ∈ I := by + simp only [IntervalRat.mem_def] + exact ⟨le_of_lt hx.1, le_of_lt hx.2⟩ + exact hderiv_pos x hx_mem + +/-- Strictly negative derivative (via Core bounds) implies strict antitonicity -/ +theorem strictAntiOn_of_derivIntervalCore_neg (e : Expr) (hsupp : ADSupported e) + (I : IntervalRat) (cfg : EvalConfig) + (hneg : (derivIntervalCore e I cfg).hi < 0) : + StrictAntiOn (evalFunc1 e) (Set.Icc (I.lo : ℝ) (I.hi : ℝ)) := by + have hdiff := evalFunc1_differentiable e hsupp + have hderiv_neg := derivIntervalCore_neg_implies_deriv_neg e hsupp I cfg hneg + apply strictAntiOn_of_deriv_neg (convex_Icc _ _) + · exact hdiff.continuous.continuousOn + · intro x hx + rw [interior_Icc] at hx + have hx_mem : x ∈ I := by + simp only [IntervalRat.mem_def] + exact ⟨le_of_lt hx.1, le_of_lt hx.2⟩ + exact hderiv_neg x hx_mem + +end LeanCert.Engine + +end + +end + +section + +/- +Copyright (c) 2026 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Computable domain-aware automatic differentiation + +This module extends LeanCert's computable forward-mode AD path with checked +reciprocal and logarithm nodes. The existing `ADSupported` fragment remains +the domain-free fast path. Here, successful evaluation itself certifies both +syntactic support and every partial-domain side condition. +-/ + +@[expose] public section + +namespace LeanCert.Engine + +open LeanCert.Core + +/-- The computable domain-aware AD fragment. Unlike `ADSupported`, this is a +box-dependent check because reciprocal and logarithm have partial domains. -/ +def checkADDomain (e : Expr) (ρ : DualEnv) (cfg : EvalConfig := {}) : Bool := + match e with + | .const _ | .var _ => true + | .add a b | .mul a b => checkADDomain a ρ cfg && checkADDomain b ρ cfg + | .neg a | .exp a | .sin a | .cos a => checkADDomain a ρ cfg + | .inv a => + checkADDomain a ρ cfg && + decide (¬IntervalRat.containsZero + (LeanCert.Internal.AD.evalTotalCore a ρ cfg).val) + | .log a => + checkADDomain a ρ cfg && + decide (IntervalRat.isPositive + (LeanCert.Internal.AD.evalTotalCore a ρ cfg).val) + | _ => false + +/-- Best-effort structured explanation for a failed domain-aware AD check. -/ +def diagnoseADDomainFailure (e : Expr) (ρ : DualEnv) (cfg : EvalConfig := {}) : EvalError := + match e with + | .add a b | .mul a b => + if checkADDomain a ρ cfg then + .nestedFailure "right operand" (diagnoseADDomainFailure b ρ cfg) + else + .nestedFailure "left operand" (diagnoseADDomainFailure a ρ cfg) + | .neg a | .exp a | .sin a | .cos a => + .nestedFailure "unary operand" (diagnoseADDomainFailure a ρ cfg) + | .inv a => + if checkADDomain a ρ cfg then + .reciprocalContainsZero (LeanCert.Internal.AD.evalTotalCore a ρ cfg).val + else + .nestedFailure "reciprocal operand" (diagnoseADDomainFailure a ρ cfg) + | .log a => + if checkADDomain a ρ cfg then + .logNonpositive (LeanCert.Internal.AD.evalTotalCore a ρ cfg).val + else + .nestedFailure "logarithm operand" (diagnoseADDomainFailure a ρ cfg) + | .const _ | .var _ => .invalidConfiguration "successful AD expression diagnosed as failure" + | _ => .unsupportedFeature "domain-aware automatic differentiation" + +/-- Computable checked dual evaluation. No finite derivative enclosure is +returned unless every reciprocal denominator excludes zero and every logarithm +argument is strictly positive on the input box. -/ +def evalDualChecked (e : Expr) (ρ : DualEnv) (cfg : EvalConfig := {}) : + EvalResult DualInterval := + if checkADDomain e ρ cfg then + .ok (LeanCert.Internal.AD.evalTotalCore e ρ cfg) + else + .error (diagnoseADDomainFailure e ρ cfg) + +/-- Checked value-and-derivative evaluation along coordinate `idx`. -/ +def evalWithDerivChecked (e : Expr) (ρ : IntervalEnv) (idx : Nat) + (cfg : EvalConfig := {}) : EvalResult DualInterval := + evalDualChecked e (mkDualEnv ρ idx) cfg + +/-- Checked derivative enclosure along coordinate `idx`. -/ +def derivIntervalChecked (e : Expr) (ρ : IntervalEnv) (idx : Nat) + (cfg : EvalConfig := {}) : EvalResult IntervalRat := + return (← evalWithDerivChecked e ρ idx cfg).der + +/-- Checked derivative enclosure for a single-variable expression. -/ +def derivIntervalChecked1 (e : Expr) (I : IntervalRat) (cfg : EvalConfig := {}) : + EvalResult IntervalRat := + derivIntervalChecked e (fun _ => I) 0 cfg + +private theorem checkADDomain_of_evalDualChecked_ok {e : Expr} {ρ : DualEnv} + {cfg : EvalConfig} {D : DualInterval} (h : evalDualChecked e ρ cfg = .ok D) : + checkADDomain e ρ cfg = true := by + simp only [evalDualChecked] at h + split at h + · assumption + · contradiction + +private theorem evalDualChecked_ok_eq {e : Expr} {ρ : DualEnv} + {cfg : EvalConfig} {D : DualInterval} (h : evalDualChecked e ρ cfg = .ok D) : + D = LeanCert.Internal.AD.evalTotalCore e ρ cfg := by + simp only [evalDualChecked] at h + split at h + · exact (Except.ok.inj h).symm + · contradiction + +private theorem not_containsZero_cases {I : IntervalRat} + (h : ¬IntervalRat.containsZero I) : I.lo > 0 ∨ I.hi < 0 := by + simp only [IntervalRat.containsZero, not_and_or, not_le] at h + exact h + +private theorem evalTotalCore_val_correct_of_check (e : Expr) + (ρReal : Nat → ℝ) (ρDual : DualEnv) (cfg : EvalConfig) + (hρ : ∀ i, ρReal i ∈ (ρDual i).val) + (hcheck : checkADDomain e ρDual cfg = true) : + Expr.eval ρReal e ∈ (LeanCert.Internal.AD.evalTotalCore e ρDual cfg).val := by + induction e with + | const q => + exact IntervalRat.mem_singleton q + | var i => + exact hρ i + | add a b iha ihb => + simp only [checkADDomain, Bool.and_eq_true] at hcheck + simp only [Expr.eval_add, LeanCert.Internal.AD.evalTotalCore, DualInterval.add] + exact IntervalRat.mem_add (iha hcheck.1) (ihb hcheck.2) + | mul a b iha ihb => + simp only [checkADDomain, Bool.and_eq_true] at hcheck + simp only [Expr.eval_mul, LeanCert.Internal.AD.evalTotalCore, DualInterval.mul] + exact IntervalRat.mem_mul (iha hcheck.1) (ihb hcheck.2) + | neg a ih => + simp only [checkADDomain] at hcheck + exact IntervalRat.mem_neg (ih hcheck) + | inv a ih => + simp only [checkADDomain, Bool.and_eq_true, decide_eq_true_eq] at hcheck + simp only [Expr.eval_inv, LeanCert.Internal.AD.evalTotalCore, DualInterval.inv] + exact mem_invInterval_nonzero (ih hcheck.1) (not_containsZero_cases hcheck.2) + | exp a ih => + simp only [checkADDomain] at hcheck + exact IntervalRat.mem_expComputable (ih hcheck) cfg.taylorDepth + | sin a ih => + simp only [checkADDomain] at hcheck + exact IntervalRat.mem_sinComputable (ih hcheck) cfg.taylorDepth + | cos a ih => + simp only [checkADDomain] at hcheck + exact IntervalRat.mem_cosComputable (ih hcheck) cfg.taylorDepth + | log a ih => + simp only [checkADDomain, Bool.and_eq_true, decide_eq_true_eq] at hcheck + exact IntervalRat.mem_logComputable (ih hcheck.1) hcheck.2 cfg.taylorDepth + | atan | arsinh | atanh | sinc | erf | sinh | cosh | tanh | sqrt | namedConst => + simp [checkADDomain] at hcheck + +/-- Successful checked dual evaluation encloses the expression value for every +real environment represented by the dual environment. -/ +theorem evalDualChecked_val_correct (e : Expr) + (ρReal : Nat → ℝ) (ρDual : DualEnv) (cfg : EvalConfig) (D : DualInterval) + (hρ : ∀ i, ρReal i ∈ (ρDual i).val) + (hok : evalDualChecked e ρDual cfg = .ok D) : + Expr.eval ρReal e ∈ D.val := by + rw [evalDualChecked_ok_eq hok] + exact evalTotalCore_val_correct_of_check e ρReal ρDual cfg hρ + (checkADDomain_of_evalDualChecked_ok hok) + +private theorem evalAlong_differentiableAt_of_check (e : Expr) + (ρReal : Nat → ℝ) (ρInt : IntervalEnv) (idx : Nat) (cfg : EvalConfig) + (x : ℝ) (hx : x ∈ ρInt idx) (hρ : ∀ i, ρReal i ∈ ρInt i) + (hcheck : checkADDomain e (mkDualEnv ρInt idx) cfg = true) : + DifferentiableAt ℝ (Expr.evalAlong e ρReal idx) x := by + have hmem : ∀ i, Expr.updateVar ρReal idx x i ∈ (mkDualEnv ρInt idx i).val := + updateVar_mem_mkDualEnv_val ρReal ρInt idx x hx hρ + induction e with + | const => exact differentiableAt_const _ + | var i => + by_cases hi : i = idx + · subst i + simpa only [Expr.evalAlong_var_active] using differentiableAt_id + · simpa only [Expr.evalAlong_var_passive _ _ _ hi] using differentiableAt_const (c := ρReal i) + | add a b iha ihb => + simp only [checkADDomain, Bool.and_eq_true] at hcheck + simpa only [Expr.evalAlong_add_pi] using (iha hcheck.1).add (ihb hcheck.2) + | mul a b iha ihb => + simp only [checkADDomain, Bool.and_eq_true] at hcheck + simpa only [Expr.evalAlong_mul_pi] using (iha hcheck.1).mul (ihb hcheck.2) + | neg a ih => + simp only [checkADDomain] at hcheck + simpa only [Expr.evalAlong_neg_pi] using (ih hcheck).neg + | inv a ih => + simp only [checkADDomain, Bool.and_eq_true, decide_eq_true_eq] at hcheck + have hval := evalTotalCore_val_correct_of_check a (Expr.updateVar ρReal idx x) + (mkDualEnv ρInt idx) cfg hmem hcheck.1 + have hne : Expr.evalAlong a ρReal idx x ≠ 0 := by + rw [Expr.evalAlong_eq] + intro hz + rw [hz] at hval + exact hcheck.2 ⟨by exact_mod_cast hval.1, by exact_mod_cast hval.2⟩ + exact DifferentiableAt.inv (ih hcheck.1) hne + | exp a ih => + simp only [checkADDomain] at hcheck + exact Real.differentiableAt_exp.comp x (ih hcheck) + | sin a ih => + simp only [checkADDomain] at hcheck + exact Real.differentiableAt_sin.comp x (ih hcheck) + | cos a ih => + simp only [checkADDomain] at hcheck + exact Real.differentiableAt_cos.comp x (ih hcheck) + | log a ih => + simp only [checkADDomain, Bool.and_eq_true, decide_eq_true_eq] at hcheck + have hval := evalTotalCore_val_correct_of_check a (Expr.updateVar ρReal idx x) + (mkDualEnv ρInt idx) cfg hmem hcheck.1 + have hpos : 0 < Expr.evalAlong a ρReal idx x := by + rw [Expr.evalAlong_eq] + exact lt_of_lt_of_le (by exact_mod_cast hcheck.2) hval.1 + exact (Real.differentiableAt_log (ne_of_gt hpos)).comp x (ih hcheck.1) + | atan | arsinh | atanh | sinc | erf | sinh | cosh | tanh | sqrt | namedConst => + simp [checkADDomain] at hcheck + +/-- A successful checked evaluation proves differentiability at every point in +the input box along the selected coordinate. -/ +theorem evalWithDerivChecked_differentiableAt (e : Expr) + (ρReal : Nat → ℝ) (ρInt : IntervalEnv) (idx : Nat) (cfg : EvalConfig) + (D : DualInterval) (x : ℝ) (hx : x ∈ ρInt idx) + (hρ : ∀ i, ρReal i ∈ ρInt i) + (hok : evalWithDerivChecked e ρInt idx cfg = .ok D) : + DifferentiableAt ℝ (Expr.evalAlong e ρReal idx) x := by + exact evalAlong_differentiableAt_of_check e ρReal ρInt idx cfg x hx hρ + (checkADDomain_of_evalDualChecked_ok hok) + +private theorem evalTotalCore_der_correct_idx_of_check (e : Expr) + (ρReal : Nat → ℝ) (ρInt : IntervalEnv) (idx : Nat) (cfg : EvalConfig) + (x : ℝ) (hx : x ∈ ρInt idx) (hρ : ∀ i, ρReal i ∈ ρInt i) + (hcheck : checkADDomain e (mkDualEnv ρInt idx) cfg = true) : + deriv (Expr.evalAlong e ρReal idx) x ∈ + (LeanCert.Internal.AD.evalTotalCore e (mkDualEnv ρInt idx) cfg).der := by + have hmem : ∀ i, Expr.updateVar ρReal idx x i ∈ (mkDualEnv ρInt idx i).val := + updateVar_mem_mkDualEnv_val ρReal ρInt idx x hx hρ + induction e with + | const q => + simp only [Expr.evalAlong_const', deriv_const, LeanCert.Internal.AD.evalTotalCore, + DualInterval.const] + exact_mod_cast IntervalRat.mem_singleton 0 + | var i => + by_cases hi : i = idx + · subst i + simp only [Expr.evalAlong_var_active, deriv_id, LeanCert.Internal.AD.evalTotalCore, + mkDualEnv, ↓reduceIte, DualInterval.varActive] + exact_mod_cast IntervalRat.mem_singleton 1 + · simp only [Expr.evalAlong_var_passive _ _ _ hi, deriv_const, + LeanCert.Internal.AD.evalTotalCore, mkDualEnv, ite_eq_right hi, DualInterval.varPassive] + exact_mod_cast IntervalRat.mem_singleton 0 + | add a b iha ihb => + simp only [checkADDomain, Bool.and_eq_true] at hcheck + have hda := evalAlong_differentiableAt_of_check a ρReal ρInt idx cfg x hx hρ hcheck.1 + have hdb := evalAlong_differentiableAt_of_check b ρReal ρInt idx cfg x hx hρ hcheck.2 + simp only [Expr.evalAlong_add_pi, deriv_add hda hdb, LeanCert.Internal.AD.evalTotalCore, + DualInterval.add] + exact IntervalRat.mem_add (iha hcheck.1) (ihb hcheck.2) + | mul a b iha ihb => + simp only [checkADDomain, Bool.and_eq_true] at hcheck + have hda := evalAlong_differentiableAt_of_check a ρReal ρInt idx cfg x hx hρ hcheck.1 + have hdb := evalAlong_differentiableAt_of_check b ρReal ρInt idx cfg x hx hρ hcheck.2 + simp only [Expr.evalAlong_mul_pi, deriv_mul hda hdb, LeanCert.Internal.AD.evalTotalCore, + DualInterval.mul] + have hva := evalTotalCore_val_correct_of_check a (Expr.updateVar ρReal idx x) + (mkDualEnv ρInt idx) cfg hmem hcheck.1 + have hvb := evalTotalCore_val_correct_of_check b (Expr.updateVar ρReal idx x) + (mkDualEnv ρInt idx) cfg hmem hcheck.2 + exact IntervalRat.mem_add (IntervalRat.mem_mul (iha hcheck.1) hvb) + (IntervalRat.mem_mul hva (ihb hcheck.2)) + | neg a ih => + simp only [checkADDomain] at hcheck + have hd := evalAlong_differentiableAt_of_check a ρReal ρInt idx cfg x hx hρ hcheck + simp only [Expr.evalAlong_neg_pi, deriv.neg, LeanCert.Internal.AD.evalTotalCore, + DualInterval.neg] + exact IntervalRat.mem_neg (ih hcheck) + | inv a ih => + simp only [checkADDomain, Bool.and_eq_true, decide_eq_true_eq] at hcheck + have hval := evalTotalCore_val_correct_of_check a (Expr.updateVar ρReal idx x) + (mkDualEnv ρInt idx) cfg hmem hcheck.1 + have hval' : Expr.evalAlong a ρReal idx x ∈ + (LeanCert.Internal.AD.evalTotalCore a (mkDualEnv ρInt idx) cfg).val := by + simpa only [Expr.evalAlong_eq] using hval + have hne : Expr.evalAlong a ρReal idx x ≠ 0 := by + intro hz + rw [hz] at hval' + exact hcheck.2 ⟨by exact_mod_cast hval'.1, by exact_mod_cast hval'.2⟩ + have hd := evalAlong_differentiableAt_of_check a ρReal ρInt idx cfg x hx hρ hcheck.1 + rw [Expr.evalAlong_inv] + have hcomp : (fun t => (Expr.evalAlong a ρReal idx t)⁻¹) = + (fun y : ℝ => y⁻¹) ∘ Expr.evalAlong a ρReal idx := rfl + rw [hcomp, deriv_comp x (hasDerivAt_inv hne).differentiableAt hd] + simp only [(hasDerivAt_inv hne).deriv, LeanCert.Internal.AD.evalTotalCore, + DualInterval.inv] + have hder := ih hcheck.1 + have hinv := mem_invInterval_nonzero hval' (not_containsZero_cases hcheck.2) + have hneg := IntervalRat.mem_neg + (IntervalRat.mem_mul hder (IntervalRat.mem_mul hinv hinv)) + convert hneg using 1 + field_simp + | exp a ih => + simp only [checkADDomain] at hcheck + have hd := evalAlong_differentiableAt_of_check a ρReal ρInt idx cfg x hx hρ hcheck + simp only [Expr.evalAlong_exp, deriv_exp hd, LeanCert.Internal.AD.evalTotalCore, + DualInterval.expCore] + have hval := evalTotalCore_val_correct_of_check a (Expr.updateVar ρReal idx x) + (mkDualEnv ρInt idx) cfg hmem hcheck + exact IntervalRat.mem_mul (IntervalRat.mem_expComputable hval cfg.taylorDepth) (ih hcheck) + | sin a ih => + simp only [checkADDomain] at hcheck + have hd := evalAlong_differentiableAt_of_check a ρReal ρInt idx cfg x hx hρ hcheck + simp only [Expr.evalAlong_sin, deriv_sin hd, LeanCert.Internal.AD.evalTotalCore, + DualInterval.sinCore] + have hval := evalTotalCore_val_correct_of_check a (Expr.updateVar ρReal idx x) + (mkDualEnv ρInt idx) cfg hmem hcheck + exact IntervalRat.mem_mul (IntervalRat.mem_cosComputable hval cfg.taylorDepth) (ih hcheck) + | cos a ih => + simp only [checkADDomain] at hcheck + have hd := evalAlong_differentiableAt_of_check a ρReal ρInt idx cfg x hx hρ hcheck + simp only [Expr.evalAlong_cos, deriv_cos hd, LeanCert.Internal.AD.evalTotalCore, + DualInterval.cosCore] + have hval := evalTotalCore_val_correct_of_check a (Expr.updateVar ρReal idx x) + (mkDualEnv ρInt idx) cfg hmem hcheck + exact IntervalRat.mem_mul + (IntervalRat.mem_neg (IntervalRat.mem_sinComputable hval cfg.taylorDepth)) (ih hcheck) + | log a ih => + simp only [checkADDomain, Bool.and_eq_true, decide_eq_true_eq] at hcheck + have hval := evalTotalCore_val_correct_of_check a (Expr.updateVar ρReal idx x) + (mkDualEnv ρInt idx) cfg hmem hcheck.1 + have hval' : Expr.evalAlong a ρReal idx x ∈ + (LeanCert.Internal.AD.evalTotalCore a (mkDualEnv ρInt idx) cfg).val := by + simpa only [Expr.evalAlong_eq] using hval + have hpos : 0 < Expr.evalAlong a ρReal idx x := + lt_of_lt_of_le (by exact_mod_cast hcheck.2) hval'.1 + have hd := evalAlong_differentiableAt_of_check a ρReal ρInt idx cfg x hx hρ hcheck.1 + rw [Expr.evalAlong_log] + have hcomp : (fun t => Real.log (Expr.evalAlong a ρReal idx t)) = + Real.log ∘ Expr.evalAlong a ρReal idx := rfl + rw [hcomp, deriv_comp x (Real.differentiableAt_log (ne_of_gt hpos)) hd] + simp only [Real.deriv_log, LeanCert.Internal.AD.evalTotalCore, DualInterval.logCore] + have hder := ih hcheck.1 + have hnz : ¬IntervalRat.containsZero + (LeanCert.Internal.AD.evalTotalCore a (mkDualEnv ρInt idx) cfg).val := by + intro hz + exact (not_lt_of_ge hz.1) hcheck.2 + have hinv := mem_invInterval_nonzero hval' (not_containsZero_cases hnz) + exact IntervalRat.mem_mul hinv hder + | atan | arsinh | atanh | sinc | erf | sinh | cosh | tanh | sqrt | namedConst => + simp [checkADDomain] at hcheck + +/-- Successful checked indexed AD encloses the true partial derivative. -/ +theorem evalWithDerivChecked_der_correct (e : Expr) + (ρReal : Nat → ℝ) (ρInt : IntervalEnv) (idx : Nat) (cfg : EvalConfig) + (D : DualInterval) (x : ℝ) (hx : x ∈ ρInt idx) + (hρ : ∀ i, ρReal i ∈ ρInt i) + (hok : evalWithDerivChecked e ρInt idx cfg = .ok D) : + deriv (Expr.evalAlong e ρReal idx) x ∈ D.der := by + rw [evalDualChecked_ok_eq hok] + exact evalTotalCore_der_correct_idx_of_check e ρReal ρInt idx cfg x hx hρ + (checkADDomain_of_evalDualChecked_ok hok) + +/-- Golden soundness theorem for the checked derivative-only API. -/ +theorem derivIntervalChecked_correct (e : Expr) + (ρReal : Nat → ℝ) (ρInt : IntervalEnv) (idx : Nat) (cfg : EvalConfig) + (dI : IntervalRat) (x : ℝ) (hx : x ∈ ρInt idx) + (hρ : ∀ i, ρReal i ∈ ρInt i) + (hok : derivIntervalChecked e ρInt idx cfg = .ok dI) : + deriv (Expr.evalAlong e ρReal idx) x ∈ dI := by + simp only [derivIntervalChecked, bind, Except.bind] at hok + cases hdual : evalWithDerivChecked e ρInt idx cfg with + | error err => simp [hdual] at hok + | ok D => + rw [hdual] at hok + simp only [pure, Except.pure, Except.ok.injEq] at hok + subst dI + exact evalWithDerivChecked_der_correct e ρReal ρInt idx cfg D x hx hρ hdual + +end LeanCert.Engine + +end + +end diff --git a/LeanPool/MovingSofa/Development/IntervalArithmetic/Foundations/Development002.lean b/LeanPool/MovingSofa/Development/IntervalArithmetic/Foundations/Development002.lean new file mode 100644 index 0000000000..f1b0bd6235 --- /dev/null +++ b/LeanPool/MovingSofa/Development/IntervalArithmetic/Foundations/Development002.lean @@ -0,0 +1,5502 @@ +/- +Copyright (c) 2026 Dean Cureton and contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dean Cureton, The Moving Sofa contributors +-/ +module + +public import LeanPool.MovingSofa.Development.IntervalArithmetic.Foundations.Development001 + + + + + + + + + + +public import Mathlib.Analysis.Calculus.Deriv.Pi +public import Mathlib.Analysis.Calculus.MeanValue +public import Mathlib.Analysis.Matrix.Normed +public import Mathlib.Analysis.SpecialFunctions.Arsinh +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.ArctanDeriv +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.DerivHyp +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.Sinc +public import Mathlib.MeasureTheory.Integral.IntervalIntegral.FundThmCalculus +public import Mathlib.Topology.MetricSpace.Contracting +/-! +# Moving sofa: related mathematical developments + +* `LeanCert.Engine.AD.PartialCorrectness`. +* `LeanCert.Engine.IntervalEvalDyadic`. +* `LeanCert.Engine.AD.Dyadic`. +* `LeanCert.Engine.AD`. +* `LeanCert.Engine.Optimization.Box`. +* `LeanCert.Engine.Optimize`. +* `LeanCert.Engine.Optimization.Gradient`. +* `LeanCert.Engine.RootFinding.Krawczyk`. +-/ + +@[expose] public section + +noncomputable section + + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Automatic Differentiation - Partial Correctness Theorems + +This file proves the correctness of the partial dual evaluator `evalDualOption` +which handles expressions with inv, log, and other domain-restricted functions. + +## Main theorems + +* `evalDualOption_val_correct` - Value component is correct when evalDualOption returns some +* `evalDualOption1_val_correct` - Single-variable version +* `evalFunc1_differentiableAt_of_evalDualOption` - Differentiability when evalDualOption succeeds +* `evalDualOption_der_correct` - Derivative component is correct +* `evalDualOption1_correct` - Combined correctness theorem + +## Design notes + +All theorems are FULLY PROVED with no sorry or axioms. +The key insight is that when evalDualOption returns `some`, the domain +constraints (nonzero for inv, positive for log) are satisfied. +-/ + +/-! ### Correctness of partial dual evaluator -/ + +@[expose] public section + +namespace LeanCert.Engine + +open LeanCert.Core Filter +open scoped Topology + +/-- The value component of evalDualOption is correct when it returns some. + This theorem extends to expressions with inv. -/ +theorem evalDualOption_val_correct (e : Expr) + (ρ_real : Nat → ℝ) (ρ_dual : DualEnv) (D : DualInterval) + (hsome : evalDualOption e ρ_dual = some D) + (hρ : ∀ i, ρ_real i ∈ (ρ_dual i).val) : + Expr.eval ρ_real e ∈ D.val := by + induction e generalizing D with + | const q => + simp only [evalDualOption, Option.some.injEq] at hsome + rw [← hsome] + simp only [Expr.eval_const, DualInterval.const] + exact IntervalRat.mem_singleton q + | var idx => + simp only [evalDualOption, Option.some.injEq] at hsome + rw [← hsome] + exact hρ idx + | add e₁ e₂ ih₁ ih₂ => + simp only [evalDualOption] at hsome + cases heq₁ : evalDualOption e₁ ρ_dual with + | none => simp only [heq₁, reduceCtorEq] at hsome + | some d₁ => + cases heq₂ : evalDualOption e₂ ρ_dual with + | none => simp only [heq₁, heq₂, reduceCtorEq] at hsome + | some d₂ => + simp only [heq₁, heq₂, Option.some.injEq] at hsome + rw [← hsome] + simp only [Expr.eval_add, DualInterval.add] + exact IntervalRat.mem_add (ih₁ d₁ heq₁) (ih₂ d₂ heq₂) + | mul e₁ e₂ ih₁ ih₂ => + simp only [evalDualOption] at hsome + cases heq₁ : evalDualOption e₁ ρ_dual with + | none => simp only [heq₁, reduceCtorEq] at hsome + | some d₁ => + cases heq₂ : evalDualOption e₂ ρ_dual with + | none => simp only [heq₁, heq₂, reduceCtorEq] at hsome + | some d₂ => + simp only [heq₁, heq₂, Option.some.injEq] at hsome + rw [← hsome] + simp only [Expr.eval_mul, DualInterval.mul] + exact IntervalRat.mem_mul (ih₁ d₁ heq₁) (ih₂ d₂ heq₂) + | neg e' ih => + simp only [evalDualOption] at hsome + cases heq : evalDualOption e' ρ_dual with + | none => simp only [heq, reduceCtorEq] at hsome + | some d => + simp only [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [Expr.eval_neg, DualInterval.neg] + exact IntervalRat.mem_neg (ih d heq) + | inv e' ih => + simp only [evalDualOption] at hsome + cases heq : evalDualOption e' ρ_dual with + | none => simp only [heq, reduceCtorEq] at hsome + | some d => + simp only [heq, DualInterval.inv?] at hsome + split at hsome + · simp at hsome + · next hnotzero => + simp only [Option.some.injEq] at hsome + rw [← hsome] + simp only [Expr.eval_inv] + have hmem := ih d heq + -- The denominator is nonzero because d.val doesn't contain zero and eval ∈ d.val + have heval_ne : Expr.eval ρ_real e' ≠ 0 := by + intro heq_zero + rw [heq_zero] at hmem + simp only [IntervalRat.mem_def] at hmem + simp only [IntervalRat.containsZero, not_and, not_le] at hnotzero + rcases le_or_gt d.val.lo 0 with hlo | hlo + · have hhi_nonneg : (0 : ℚ) ≤ d.val.hi := by + have h : (0 : ℝ) ≤ d.val.hi := hmem.2 + exact_mod_cast h + exact absurd (hnotzero hlo) (not_lt.mpr hhi_nonneg) + · have hlo_pos : (0 : ℝ) < d.val.lo := by exact_mod_cast hlo + exact absurd hmem.1 (not_le.mpr hlo_pos) + exact IntervalRat.mem_invNonzero hmem heval_ne + | sin e' ih => + simp only [evalDualOption] at hsome + cases heq : evalDualOption e' ρ_dual with + | none => simp only [heq, reduceCtorEq] at hsome + | some d => + simp only [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [Expr.eval_sin, DualInterval.sin] + exact mem_sinInterval (ih d heq) + | cos e' ih => + simp only [evalDualOption] at hsome + cases heq : evalDualOption e' ρ_dual with + | none => simp only [heq, reduceCtorEq] at hsome + | some d => + simp only [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [Expr.eval_cos, DualInterval.cos] + exact mem_cosInterval (ih d heq) + | exp e' ih => + simp only [evalDualOption] at hsome + cases heq : evalDualOption e' ρ_dual with + | none => simp only [heq, reduceCtorEq] at hsome + | some d => + simp only [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [Expr.eval_exp, DualInterval.exp] + exact IntervalRat.mem_expInterval (ih d heq) + | sinh e' ih => + simp only [evalDualOption] at hsome + cases heq : evalDualOption e' ρ_dual with + | none => simp only [heq, reduceCtorEq] at hsome + | some d => + simp only [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [Expr.eval_sinh, DualInterval.sinh, sinhInterval] + exact IntervalRat.mem_sinhComputable (ih d heq) 10 + | cosh e' ih => + simp only [evalDualOption] at hsome + cases heq : evalDualOption e' ρ_dual with + | none => simp only [heq, reduceCtorEq] at hsome + | some d => + simp only [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [Expr.eval_cosh, DualInterval.cosh, coshInterval] + exact IntervalRat.mem_coshComputable (ih d heq) 10 + | tanh _ _ => + simp only [evalDualOption] at hsome + cases hsome + | log e' ih => + simp only [evalDualOption] at hsome + cases heq : evalDualOption e' ρ_dual with + | none => simp only [heq, reduceCtorEq] at hsome + | some d => + simp only [heq, DualInterval.logOption] at hsome + split at hsome + · rename_i hpos + simp only [Option.some.injEq] at hsome + rw [← hsome] + simp only [Expr.eval_log] + have hJ_mem := ih d heq + exact IntervalRat.mem_logInterval hJ_mem + · contradiction + | atan e' ih => + simp only [evalDualOption] at hsome + cases heq : evalDualOption e' ρ_dual with + | none => simp only [heq, reduceCtorEq] at hsome + | some d => + simp only [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [Expr.eval_atan, DualInterval.atan] + exact mem_atanInterval (ih d heq) + | arsinh e' ih => + simp only [evalDualOption] at hsome + cases heq : evalDualOption e' ρ_dual with + | none => simp only [heq, reduceCtorEq] at hsome + | some d => + simp only [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [Expr.eval_arsinh, DualInterval.arsinh] + exact mem_arsinhInterval (ih d heq) + | atanh _ _ => + -- evalDualOption returns none for atanh, so hsome : none = some D is a contradiction + simp only [evalDualOption] at hsome + contradiction + | sinc e' ih => + simp only [evalDualOption] at hsome + cases heq : evalDualOption e' ρ_dual with + | none => simp only [heq, reduceCtorEq] at hsome + | some d => + simp only [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [Expr.eval_sinc, DualInterval.sinc] + simp only [IntervalRat.mem_def, Rat.cast_neg, Rat.cast_one] + exact Real.sinc_mem_Icc _ + | erf e' ih => + simp only [evalDualOption] at hsome + cases heq : evalDualOption e' ρ_dual with + | none => simp only [heq, reduceCtorEq] at hsome + | some d => + simp only [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [Expr.eval_erf, DualInterval.erf] + simp only [IntervalRat.mem_def, Rat.cast_neg, Rat.cast_one] + exact Real.erf_mem_Icc _ + | sqrt e' ih => + simp only [evalDualOption] at hsome + cases heq : evalDualOption e' ρ_dual with + | none => simp only [heq, reduceCtorEq] at hsome + | some d => + simp only [heq] at hsome + -- hsome : DualInterval.sqrt? d = some D + simp only [DualInterval.sqrt?] at hsome + split at hsome + · next hpos => + simp only [Option.some.injEq] at hsome + rw [← hsome] + simp only [Expr.eval_sqrt] + exact IntervalRat.mem_sqrtInterval' (ih d heq) + · exact absurd hsome (by simp) + | namedConst c => + simp only [evalDualOption, Option.some.injEq] at hsome + rw [← hsome] + simp only [Expr.eval_namedConst, DualInterval.ofMathConst] + exact c.mem_interval + +/-- Single-variable version of evalDualOption_val_correct -/ +theorem evalDualOption1_val_correct (e : Expr) + (I : IntervalRat) (D : DualInterval) (x : ℝ) (hx : x ∈ I) + (hsome : evalDualOption1 e I = some D) : + Expr.eval (fun _ => x) e ∈ D.val := by + apply evalDualOption_val_correct e (fun _ => x) (fun _ => DualInterval.varActive I) + · exact hsome + · intro _; exact hx + +/-- Helper lemma: evalFunc1 for inv unfolds correctly -/ +theorem evalFunc1_inv (e : Expr) : + evalFunc1 (Expr.inv e) = fun t => (evalFunc1 e t)⁻¹ := rfl + +/-- Expressions with inv are differentiable when the denominator is nonzero. -/ +theorem evalFunc1_differentiableAt_of_evalDualOption (e : Expr) + (I : IntervalRat) (D : DualInterval) (x : ℝ) (hx : x ∈ I) + (hsome : evalDualOption1 e I = some D) : + DifferentiableAt ℝ (evalFunc1 e) x := by + induction e generalizing D with + | const q => exact differentiableAt_const _ + | var _ => exact differentiableAt_id + | add e₁ e₂ ih₁ ih₂ => + unfold evalDualOption1 evalDualOption at hsome + cases heq₁ : evalDualOption e₁ _ with + | none => rw [heq₁] at hsome; exact absurd hsome (by simp) + | some d₁ => + cases heq₂ : evalDualOption e₂ _ with + | none => rw [heq₁, heq₂] at hsome; exact absurd hsome (by simp) + | some d₂ => + exact DifferentiableAt.add (ih₁ d₁ heq₁) (ih₂ d₂ heq₂) + | mul e₁ e₂ ih₁ ih₂ => + unfold evalDualOption1 evalDualOption at hsome + cases heq₁ : evalDualOption e₁ _ with + | none => rw [heq₁] at hsome; exact absurd hsome (by simp) + | some d₁ => + cases heq₂ : evalDualOption e₂ _ with + | none => rw [heq₁, heq₂] at hsome; exact absurd hsome (by simp) + | some d₂ => + exact DifferentiableAt.mul (ih₁ d₁ heq₁) (ih₂ d₂ heq₂) + | neg e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + exact DifferentiableAt.neg (ih d heq) + | inv e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + rw [heq] at hsome + simp only [DualInterval.inv?] at hsome + split at hsome + · exact absurd hsome (by simp) + · next hnotzero => + simp only [Option.some.injEq] at hsome + have hval := evalDualOption1_val_correct e' I d x hx heq + -- Denominator is nonzero + have hne : evalFunc1 e' x ≠ 0 := by + intro heq_zero + -- hval has type: Expr.eval (fun x_1 => x) e' ∈ d.val + -- need to convert to: evalFunc1 e' x = 0 + have hval' : evalFunc1 e' x ∈ d.val := hval + rw [heq_zero] at hval' + simp only [IntervalRat.mem_def] at hval' + simp only [IntervalRat.containsZero, not_and, not_le] at hnotzero + rcases le_or_gt d.val.lo 0 with hlo | hlo + · have hhi_nonneg : (0 : ℚ) ≤ d.val.hi := by + have h : (0 : ℝ) ≤ d.val.hi := hval'.2 + exact_mod_cast h + exact absurd (hnotzero hlo) (not_lt.mpr hhi_nonneg) + · have hlo_pos : (0 : ℝ) < d.val.lo := by exact_mod_cast hlo + exact absurd hval'.1 (not_le.mpr hlo_pos) + exact DifferentiableAt.inv (ih d heq) hne + | sin e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + exact Real.differentiableAt_sin.comp x (ih d heq) + | cos e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + exact Real.differentiableAt_cos.comp x (ih d heq) + | exp e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + exact Real.differentiableAt_exp.comp x (ih d heq) + | sinh e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + exact (ih d heq).sinh + | cosh e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + exact (ih d heq).cosh + | tanh _ _ => + unfold evalDualOption1 evalDualOption at hsome + contradiction + | log e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + rw [heq] at hsome + simp only [DualInterval.logOption] at hsome + split at hsome + · next hpos => + simp only [Option.some.injEq] at hsome + have hval := evalDualOption1_val_correct e' I d x hx heq + -- The argument is positive, so log is differentiable + have hpos_x : 0 < evalFunc1 e' x := by + have hval' : evalFunc1 e' x ∈ d.val := hval + simp only [IntervalRat.mem_def] at hval' + simp only [IntervalRat.isPositive] at hpos + have hlo_pos : (0 : ℝ) < d.val.lo := by exact_mod_cast hpos + exact lt_of_lt_of_le hlo_pos hval'.1 + exact Real.differentiableAt_log (ne_of_gt hpos_x) |>.comp x (ih d heq) + · exact absurd hsome (by simp) + | atan e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + exact (Real.differentiable_arctan _).comp x (ih d heq) + | arsinh e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + exact (Real.differentiable_arsinh _).comp x (ih d heq) + | atanh _ _ => + -- evalDualOption returns none for atanh, so hsome is a contradiction + simp only [evalDualOption1, evalDualOption] at hsome + contradiction + | sinc e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + -- sinc is differentiable everywhere + -- sinc = dslope sin 0, which is differentiable: + -- - At x ≠ 0: sinc x = sin x / x is differentiable + -- - At x = 0: sinc is differentiable with derivative 0 (from sin's Taylor series) + have hsinc_diff : Differentiable ℝ Real.sinc := Real.differentiable_sinc + exact hsinc_diff.differentiableAt.comp x (ih d heq) + | erf e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + -- erf is differentiable everywhere using FTC + -- erf(x) = (2/√π) * ∫₀ˣ exp(-t²) dt + -- By FTC, the integral of a continuous function is differentiable + have herf_diff : Differentiable ℝ Real.erf := by + unfold Real.erf + apply Differentiable.const_mul + -- Use FTC: for continuous f, ∫ t in a..x, f t is differentiable in x + intro y + have hcont : Continuous (fun t => Real.exp (-(t^2))) := + Real.continuous_exp.comp (continuous_neg.comp (continuous_pow 2)) + exact (hcont.integral_hasStrictDerivAt 0 y).hasStrictFDerivAt.differentiableAt + exact herf_diff.differentiableAt.comp x (ih d heq) + | sqrt e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + rw [heq] at hsome + simp only [DualInterval.sqrt?] at hsome + split at hsome + · next hpos => + simp only [Option.some.injEq] at hsome + have hval := evalDualOption1_val_correct e' I d x hx heq + -- The argument is positive, so sqrt is differentiable + have hpos_x : 0 < evalFunc1 e' x := by + have hval' : evalFunc1 e' x ∈ d.val := hval + simp only [IntervalRat.mem_def] at hval' + simp only [IntervalRat.isPositive] at hpos + have hlo_pos : (0 : ℝ) < d.val.lo := by exact_mod_cast hpos + exact lt_of_lt_of_le hlo_pos hval'.1 + -- sqrt is differentiable at nonzero points + have hne : evalFunc1 e' x ≠ 0 := ne_of_gt hpos_x + exact (Real.hasDerivAt_sqrt hne).differentiableAt.comp x (ih d heq) + · exact absurd hsome (by simp) + | namedConst _ => exact differentiableAt_const _ + +/-- The derivative component of evalDualOption is correct when it returns some. + For a supported expression (with inv) evaluated at a point x in the interval I, + the derivative of the expression lies in the computed derivative interval. + + This extends the AD correctness theorem to expressions with inv. -/ +private theorem evalDual?_der_correct_inv (e' : Expr) + (I : IntervalRat) (D : DualInterval) (x : ℝ) (hx : x ∈ I) + (hsome : evalDualOption1 (Expr.inv e') I = some D) + (ih : ∀ D, evalDualOption1 e' I = some D → deriv (evalFunc1 e') x ∈ D.der) : + deriv (evalFunc1 (Expr.inv e')) x ∈ D.der := by + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + rw [heq] at hsome + simp only [DualInterval.inv?] at hsome + split at hsome + · exact absurd hsome (by simp) + · next hnotzero => + simp only [Option.some.injEq] at hsome + rw [← hsome] + -- d(1/f) = -f'/f² = -f' * (1/f)² + have hval := evalDualOption1_val_correct e' I d x hx heq + have hval' : evalFunc1 e' x ∈ d.val := hval + have hne : evalFunc1 e' x ≠ 0 := by + intro heq_zero + rw [heq_zero] at hval' + simp only [IntervalRat.mem_def] at hval' + simp only [IntervalRat.containsZero, not_and, not_le] at hnotzero + rcases le_or_gt d.val.lo 0 with hlo | hlo + · have hhi_nonneg : (0 : ℚ) ≤ d.val.hi := by + have h : (0 : ℝ) ≤ d.val.hi := hval'.2 + exact_mod_cast h + exact absurd (hnotzero hlo) (not_lt.mpr hhi_nonneg) + · have hlo_pos : (0 : ℝ) < d.val.lo := by exact_mod_cast hlo + exact absurd hval'.1 (not_le.mpr hlo_pos) + have hd := evalFunc1_differentiableAt_of_evalDualOption e' I d x hx heq + -- deriv (1/f) = deriv(f⁻¹ ∘ f) = -(f')/(f²) using chain rule + -- We use: deriv (fun y => y⁻¹) (f x) * deriv f x = -(f x)⁻² * f'(x) + rw [evalFunc1_inv] + -- The goal is: deriv (fun t => (evalFunc1 e' t)⁻¹) x ∈ ... + -- First show this equals the composition derivative + have heq_fun : (fun t => (evalFunc1 e' t)⁻¹) = (fun y => y⁻¹) ∘ evalFunc1 e' := rfl + rw [heq_fun, deriv_comp x (hasDerivAt_inv hne).differentiableAt hd] + simp only [hasDerivAt_inv hne |>.deriv] + -- Now goal is: -(evalFunc1 e' x ^ 2)⁻¹ * deriv (evalFunc1 e') x ∈ ... + -- Which equals: -(deriv f * (1/f)²) + have hder := ih d heq + -- Construct the nonzero interval + let I_nz : IntervalRat.IntervalRatNonzero := ⟨d.val, hnotzero⟩ + have hinv := IntervalRat.mem_invNonzero (I := I_nz) hval' hne + have hinv_sq := IntervalRat.mem_mul hinv hinv + have hprod := IntervalRat.mem_mul hder hinv_sq + have hneg := IntervalRat.mem_neg hprod + -- hneg : -(deriv (evalFunc1 e') x * ((evalFunc1 e' x)⁻¹ * (evalFunc1 e' x)⁻¹)) ∈ ... + -- goal : -(evalFunc1 e' x ^ 2)⁻¹ * deriv (evalFunc1 e') x ∈ ... + -- These are equal: -(a ^ 2)⁻¹ * b = -(b * (a⁻¹ * a⁻¹)) + have heq_val : -(evalFunc1 e' x ^ 2)⁻¹ * deriv (evalFunc1 e') x = + -(deriv (evalFunc1 e') x * ((evalFunc1 e' x)⁻¹ * (evalFunc1 e' x)⁻¹)) := by + have h1 : (evalFunc1 e' x ^ 2)⁻¹ = (evalFunc1 e' x)⁻¹ * (evalFunc1 e' x)⁻¹ := by + rw [sq, mul_inv] + rw [h1] + ring + rw [heq_val] + exact hneg + +private theorem evalDual?_der_correct_log (e' : Expr) + (I : IntervalRat) (D : DualInterval) (x : ℝ) (hx : x ∈ I) + (hsome : evalDualOption1 (Expr.log e') I = some D) + (ih : ∀ D, evalDualOption1 e' I = some D → deriv (evalFunc1 e') x ∈ D.der) : + deriv (evalFunc1 (Expr.log e')) x ∈ D.der := by + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + rw [heq] at hsome + simp only [DualInterval.logOption] at hsome + split at hsome + · next hpos => + simp only [Option.some.injEq] at hsome + rw [← hsome] + -- d(log f)/dx = f'/f + have hval := evalDualOption1_val_correct e' I d x hx heq + have hval' : evalFunc1 e' x ∈ d.val := hval + have hpos_x : 0 < evalFunc1 e' x := by + simp only [IntervalRat.mem_def] at hval' + simp only [IntervalRat.isPositive] at hpos + have hlo_pos : (0 : ℝ) < d.val.lo := by exact_mod_cast hpos + exact lt_of_lt_of_le hlo_pos hval'.1 + have hne_x : evalFunc1 e' x ≠ 0 := ne_of_gt hpos_x + have hd := evalFunc1_differentiableAt_of_evalDualOption e' I d x hx heq + rw [evalFunc1_log] + have heq_fun : (fun t => Real.log (evalFunc1 e' t)) = Real.log ∘ evalFunc1 e' := rfl + rw [heq_fun, deriv_comp x (Real.differentiableAt_log hne_x) hd] + simp only [Real.deriv_log (evalFunc1 e' x)] + -- Goal: (evalFunc1 e' x)⁻¹ * deriv (evalFunc1 e') x ∈ ... + -- From DualInterval.logOption: der' := d.der * invNonzero d.val + have hder := ih d heq + -- Build the nonzero interval from the positive interval + have hnotzero : ¬IntervalRat.containsZero d.val := by + simp only [IntervalRat.containsZero, IntervalRat.isPositive] at hpos ⊢ + intro ⟨hle, _⟩ + exact absurd hpos (not_lt.mpr hle) + let I_nz : IntervalRat.IntervalRatNonzero := ⟨d.val, hnotzero⟩ + have hinv := IntervalRat.mem_invNonzero (I := I_nz) hval' hne_x + -- Need to show: (evalFunc1 e' x)⁻¹ * deriv (evalFunc1 e') x ∈ d.der * invNonzero d.val + -- But mem_mul expects the arguments in different order, so use commutativity + have hmul := IntervalRat.mem_mul hder hinv + convert hmul using 1 + ring + · exact absurd hsome (by simp) + +private theorem evalDual?_der_correct_erf (e' : Expr) + (I : IntervalRat) (D : DualInterval) (x : ℝ) (hx : x ∈ I) + (hsome : evalDualOption1 (Expr.erf e') I = some D) + (ih : ∀ D, evalDualOption1 e' I = some D → deriv (evalFunc1 e') x ∈ D.der) : + deriv (evalFunc1 (Expr.erf e')) x ∈ D.der := by + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + rw [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [DualInterval.erf] + -- The derivative of erf ∘ f is (2/√π) * exp(-f(x)²) * f'(x) + have hd_inner := evalFunc1_differentiableAt_of_evalDualOption e' I d x hx heq + have herf_diff : Differentiable ℝ Real.erf := by + unfold Real.erf + apply Differentiable.const_mul + intro y + have hcont : Continuous (fun t => Real.exp (-(t^2))) := + Real.continuous_exp.comp (continuous_neg.comp (continuous_pow 2)) + exact (hcont.integral_hasStrictDerivAt 0 y).hasStrictFDerivAt.differentiableAt + have heq_comp : (fun t => Real.erf (evalFunc1 e' t)) = Real.erf ∘ evalFunc1 e' := rfl + rw [evalFunc1_erf, heq_comp, deriv_comp x herf_diff.differentiableAt hd_inner] + -- deriv erf y = (2/√π) * exp(-y²) by FTC + have hderiv_erf : ∀ y, deriv Real.erf y = (2 / Real.sqrt Real.pi) * Real.exp (-(y^2)) := by + intro y + unfold Real.erf + rw [deriv_const_mul] + · have hcont : Continuous (fun t => Real.exp (-(t^2))) := + Real.continuous_exp.comp (continuous_neg.comp (continuous_pow 2)) + rw [(hcont.integral_hasStrictDerivAt 0 y).hasDerivAt.deriv] + · have hcont : Continuous (fun t => Real.exp (-(t^2))) := + Real.continuous_exp.comp (continuous_neg.comp (continuous_pow 2)) + exact (hcont.integral_hasStrictDerivAt 0 y).hasStrictFDerivAt.differentiableAt + rw [hderiv_erf] + -- Now goal: (2/√π) * exp(-(f(x))²) * f'(x) ∈ twoDivSqrtPi * expInterval(-val²) * der + -- Factor: (2/√π) ∈ twoDivSqrtPi + -- 2/√π ≈ 1.1284, twoDivSqrtPi = [1.128, 1.129] + have hfactor : 2 / Real.sqrt Real.pi ∈ DualInterval.twoDivSqrtPi := by + simp only [DualInterval.twoDivSqrtPi, IntervalRat.mem_def] + -- From π bounds: 3.1415 < π < 3.1416 (Real.pi_gt_d4, Real.pi_lt_d4) + -- So √π is between √3.1415 ≈ 1.7724 and √3.1416 ≈ 1.7724 + -- Thus 2/√π is between 2/1.7725 ≈ 1.1283 and 2/1.7723 ≈ 1.1285 + have hpi_lo : (3.1415 : ℝ) < Real.pi := Real.pi_gt_d4 + have hpi_hi : Real.pi < (3.1416 : ℝ) := Real.pi_lt_d4 + have hsqrt_lo : (1.7724 : ℝ) < Real.sqrt Real.pi := by + have h1 : (1.7724 : ℝ) ^ 2 < Real.pi := by + have : (1.7724 : ℝ) ^ 2 = 3.14140176 := by ring + linarith + have h2 : (0 : ℝ) ≤ 1.7724 := by norm_num + have h3 : (0 : ℝ) ≤ 1.7724 ^ 2 := by positivity + calc (1.7724 : ℝ) = Real.sqrt (1.7724 ^ 2) := (Real.sqrt_sq h2).symm + _ < Real.sqrt Real.pi := Real.sqrt_lt_sqrt h3 h1 + have hsqrt_hi : Real.sqrt Real.pi < (1.7725 : ℝ) := by + have h1 : Real.pi < (1.7725 : ℝ) ^ 2 := by + have : (1.7725 : ℝ) ^ 2 = 3.14175625 := by ring + linarith + have hpi_pos : (0 : ℝ) < Real.pi := Real.pi_pos + rw [← Real.sqrt_sq (le_of_lt (by norm_num : (0 : ℝ) < 1.7725))] + exact Real.sqrt_lt_sqrt (le_of_lt hpi_pos) h1 + constructor + · -- Goal: ↑(1128 / 1000) ≤ 2 / √π + have h1 : ((1128 / 1000 : ℚ) : ℝ) < 2 / 1.7725 := by norm_num + have h2 : (2 : ℝ) / 1.7725 < 2 / Real.sqrt Real.pi := by + apply div_lt_div_of_pos_left (by norm_num : (0 : ℝ) < 2) + · exact Real.sqrt_pos.mpr Real.pi_pos + · exact hsqrt_hi + exact le_of_lt (lt_trans h1 h2) + · -- Goal: 2 / √π ≤ ↑(1129 / 1000) + have h1 : 2 / Real.sqrt Real.pi < (2 : ℝ) / 1.7724 := by + apply div_lt_div_of_pos_left (by norm_num : (0 : ℝ) < 2) + · norm_num + · exact hsqrt_lo + have h2 : (2 : ℝ) / 1.7724 < ((1129 / 1000 : ℚ) : ℝ) := by norm_num + exact le_of_lt (lt_trans h1 h2) + -- exp(-(f(x))²) ∈ expInterval(-val²) + have hval := evalDualOption1_val_correct e' I d x hx heq + have hval_sq := IntervalRat.mem_mul hval hval + have hneg_val_sq := IntervalRat.mem_neg hval_sq + have hexp := IntervalRat.mem_expInterval hneg_val_sq + -- f'(x) ∈ d.der + have hder := ih d heq + -- Combine: (2/√π) * exp(-f(x)²) ∈ twoDivSqrtPi * expInterval(-val²) + have hprod1 := IntervalRat.mem_mul hfactor hexp + -- Full product: ((2/√π) * exp(-f(x)²)) * f'(x) ∈ (twoDivSqrtPi * expInterval(-val²)) * der + have hprod2 := IntervalRat.mem_mul hprod1 hder + convert hprod2 using 1 + ring_nf + +private theorem evalDual?_der_correct_sqrt (e' : Expr) + (I : IntervalRat) (D : DualInterval) (x : ℝ) (hx : x ∈ I) + (hsome : evalDualOption1 (Expr.sqrt e') I = some D) + (ih : ∀ D, evalDualOption1 e' I = some D → deriv (evalFunc1 e') x ∈ D.der) : + deriv (evalFunc1 (Expr.sqrt e')) x ∈ D.der := by + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + rw [heq] at hsome + simp only [DualInterval.sqrt?] at hsome + split at hsome + · next hpos => + simp only [Option.some.injEq] at hsome + rw [← hsome] + -- d(sqrt f)/dx = f'/(2*sqrt(f)) + have hval := evalDualOption1_val_correct e' I d x hx heq + have hval' : evalFunc1 e' x ∈ d.val := hval + have hpos_x : 0 < evalFunc1 e' x := by + simp only [IntervalRat.mem_def] at hval' + simp only [IntervalRat.isPositive] at hpos + have hlo_pos : (0 : ℝ) < d.val.lo := by exact_mod_cast hpos + exact lt_of_lt_of_le hlo_pos hval'.1 + have hne_x : evalFunc1 e' x ≠ 0 := ne_of_gt hpos_x + have hd := evalFunc1_differentiableAt_of_evalDualOption e' I d x hx heq + rw [evalFunc1_sqrt] + have heq_fun : (fun t => Real.sqrt (evalFunc1 e' t)) = Real.sqrt ∘ evalFunc1 e' := rfl + rw [heq_fun, deriv_comp x (Real.hasDerivAt_sqrt hne_x).differentiableAt hd] + rw [(Real.hasDerivAt_sqrt hne_x).deriv] + -- Goal: deriv (evalFunc1 e') x / (2 * √(evalFunc1 e' x)) ∈ d.der * sqrtDerivCoefBound + have hder := ih d heq + -- Show 1/(2*sqrt(f(x))) is in sqrtDerivCoefBound + have hlo_le_val : (d.val.lo : ℝ) ≤ evalFunc1 e' x := by + simp only [IntervalRat.mem_def] at hval' + exact hval'.1 + have hlo_pos_real : (0 : ℝ) < (d.val.lo : ℚ) := by + simp only [IntervalRat.isPositive] at hpos + exact_mod_cast hpos + -- Use our sqrtDerivCoef_bound theorem + have hcoef_bound := DualInterval.sqrtDerivCoef_bound hlo_pos_real hlo_le_val + -- The coefficient 1/(2*sqrt(f(x))) is positive and bounded + have hcoef_pos : 0 ≤ 1 / (2 * Real.sqrt (evalFunc1 e' x)) := by + apply div_nonneg (by norm_num) + apply mul_nonneg (by norm_num) + exact le_of_lt (Real.sqrt_pos.mpr hpos_x) + have hcoef_mem : 1 / (2 * Real.sqrt (evalFunc1 e' x)) ∈ DualInterval.sqrtDerivCoefBound + d.val.lo hpos := by + simp only [DualInterval.sqrtDerivCoefBound, IntervalRat.mem_def] + split + · -- d.val.lo ≤ 1 + next hle_one => + constructor + · simp only [Rat.cast_zero] + exact hcoef_pos + · -- Show 1/(2*sqrt(f(x))) ≤ 1/(2*lo) + have hle_real : (d.val.lo : ℝ) ≤ 1 := by exact_mod_cast hle_one + have h1 : max (1 / (2 * (d.val.lo : ℝ))) (1 / 2) = 1 / (2 * (d.val.lo : ℝ)) := by + apply max_eq_left + -- 1/2 ≤ 1/(2*lo) when lo ≤ 1 + apply div_le_div_of_nonneg_left (by norm_num) (by positivity) + calc 2 * (d.val.lo : ℝ) ≤ 2 * 1 := by nlinarith + _ = 2 := by ring + calc 1 / (2 * Real.sqrt (evalFunc1 e' x)) + ≤ max (1 / (2 * (d.val.lo : ℝ))) (1 / 2) := hcoef_bound + _ = 1 / (2 * (d.val.lo : ℝ)) := h1 + _ = ↑(1 / (2 * d.val.lo)) := by push_cast; ring + · -- d.val.lo > 1 + next hgt_one => + push Not at hgt_one + constructor + · simp only [Rat.cast_zero] + exact hcoef_pos + · -- Show 1/(2*sqrt(f(x))) ≤ 1/2 + have hgt_real : 1 < (d.val.lo : ℝ) := by exact_mod_cast hgt_one + have h1 : max (1 / (2 * (d.val.lo : ℝ))) (1 / 2) = 1 / 2 := by + apply max_eq_right + -- 1/(2*lo) ≤ 1/2 when lo > 1 + apply div_le_div_of_nonneg_left (by norm_num) (by norm_num : (0:ℝ) < 2) + calc (2 : ℝ) = 2 * 1 := by ring + _ ≤ 2 * d.val.lo := by nlinarith + calc 1 / (2 * Real.sqrt (evalFunc1 e' x)) + ≤ max (1 / (2 * (d.val.lo : ℝ))) (1 / 2) := hcoef_bound + _ = 1 / 2 := h1 + _ = ↑(1 / 2 : ℚ) := by norm_num + -- Combine: f'(x)/(2*sqrt(f(x))) = f'(x) * (1/(2*sqrt(f(x)))) ∈ d.der * sqrtDerivCoefBound + have hmul := IntervalRat.mem_mul hder hcoef_mem + convert hmul using 1 + field_simp [ne_of_gt (Real.sqrt_pos.mpr hpos_x)] + · exact absurd hsome (by simp) + +theorem evalDualOption_der_correct (e : Expr) + (I : IntervalRat) (D : DualInterval) (x : ℝ) (hx : x ∈ I) + (hsome : evalDualOption1 e I = some D) : + deriv (evalFunc1 e) x ∈ D.der := by + induction e generalizing D with + | const q => + simp only [evalDualOption1, evalDualOption, Option.some.injEq] at hsome + rw [← hsome] + simp only [evalFunc1_const, deriv_const, DualInterval.const] + convert IntervalRat.mem_singleton 0 using 1 + norm_cast + | var _ => + simp only [evalDualOption1, evalDualOption, Option.some.injEq] at hsome + rw [← hsome] + simp only [evalFunc1_var, deriv_id, DualInterval.varActive] + convert IntervalRat.mem_singleton 1 using 1 + norm_cast + | add e₁ e₂ ih₁ ih₂ => + unfold evalDualOption1 evalDualOption at hsome + cases heq₁ : evalDualOption e₁ _ with + | none => rw [heq₁] at hsome; exact absurd hsome (by simp) + | some d₁ => + cases heq₂ : evalDualOption e₂ _ with + | none => rw [heq₁, heq₂] at hsome; exact absurd hsome (by simp) + | some d₂ => + rw [heq₁, heq₂, Option.some.injEq] at hsome + rw [← hsome] + simp only [DualInterval.add] + have hd₁ := evalFunc1_differentiableAt_of_evalDualOption e₁ I d₁ x hx heq₁ + have hd₂ := evalFunc1_differentiableAt_of_evalDualOption e₂ I d₂ x hx heq₂ + simp only [evalFunc1_add_pi, deriv_add hd₁ hd₂] + exact IntervalRat.mem_add (ih₁ d₁ heq₁) (ih₂ d₂ heq₂) + | mul e₁ e₂ ih₁ ih₂ => + unfold evalDualOption1 evalDualOption at hsome + cases heq₁ : evalDualOption e₁ _ with + | none => rw [heq₁] at hsome; exact absurd hsome (by simp) + | some d₁ => + cases heq₂ : evalDualOption e₂ _ with + | none => rw [heq₁, heq₂] at hsome; exact absurd hsome (by simp) + | some d₂ => + rw [heq₁, heq₂, Option.some.injEq] at hsome + rw [← hsome] + simp only [DualInterval.mul] + have hd₁ := evalFunc1_differentiableAt_of_evalDualOption e₁ I d₁ x hx heq₁ + have hd₂ := evalFunc1_differentiableAt_of_evalDualOption e₂ I d₂ x hx heq₂ + simp only [evalFunc1_mul_pi, deriv_mul hd₁ hd₂] + have hval₁ := evalDualOption1_val_correct e₁ I d₁ x hx heq₁ + have hval₂ := evalDualOption1_val_correct e₂ I d₂ x hx heq₂ + exact IntervalRat.mem_add (IntervalRat.mem_mul (ih₁ d₁ heq₁) hval₂) + (IntervalRat.mem_mul hval₁ (ih₂ d₂ heq₂)) + | neg e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + rw [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [DualInterval.neg, evalFunc1_neg_pi, deriv.neg] + exact IntervalRat.mem_neg (ih d heq) + | inv e' ih => exact evalDual?_der_correct_inv e' I D x hx hsome ih + | sin e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + rw [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [DualInterval.sin] + have hd := evalFunc1_differentiableAt_of_evalDualOption e' I d x hx heq + rw [evalFunc1_sin, deriv_sin hd] + exact IntervalRat.mem_mul (cos_mem_cosInterval_of_any _ _) (ih d heq) + | cos e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + rw [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [DualInterval.cos] + have hd := evalFunc1_differentiableAt_of_evalDualOption e' I d x hx heq + rw [evalFunc1_cos, deriv_cos hd] + exact IntervalRat.mem_mul (neg_sin_mem_neg_sinInterval _ _) (ih d heq) + | exp e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + rw [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [DualInterval.exp] + have hd := evalFunc1_differentiableAt_of_evalDualOption e' I d x hx heq + rw [evalFunc1_exp, deriv_exp hd] + have hval := evalDualOption1_val_correct e' I d x hx heq + have hexp := IntervalRat.mem_expInterval hval + exact IntervalRat.mem_mul hexp (ih d heq) + | sinh e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + rw [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [DualInterval.sinh, coshInterval] + have hd := evalFunc1_differentiableAt_of_evalDualOption e' I d x hx heq + change deriv (fun t => Real.sinh (evalFunc1 e' t)) x ∈ + IntervalRat.mul (IntervalRat.coshComputable d.val 10) d.der + have hder : + HasDerivAt (fun t => Real.sinh (evalFunc1 e' t)) + (Real.cosh (evalFunc1 e' x) * deriv (evalFunc1 e') x) x := + (Real.hasDerivAt_sinh (evalFunc1 e' x)).comp x hd.hasDerivAt + rw [hder.deriv] + have hval := evalDualOption1_val_correct e' I d x hx heq + have hcosh := IntervalRat.mem_coshComputable hval 10 + exact IntervalRat.mem_mul hcosh (ih d heq) + | cosh e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + rw [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [DualInterval.cosh, sinhInterval] + have hd := evalFunc1_differentiableAt_of_evalDualOption e' I d x hx heq + change deriv (fun t => Real.cosh (evalFunc1 e' t)) x ∈ + IntervalRat.mul (IntervalRat.sinhComputable d.val 10) d.der + have hder : + HasDerivAt (fun t => Real.cosh (evalFunc1 e' t)) + (Real.sinh (evalFunc1 e' x) * deriv (evalFunc1 e') x) x := + (Real.hasDerivAt_cosh (evalFunc1 e' x)).comp x hd.hasDerivAt + rw [hder.deriv] + have hval := evalDualOption1_val_correct e' I d x hx heq + have hsinh := IntervalRat.mem_sinhComputable hval 10 + exact IntervalRat.mem_mul hsinh (ih d heq) + | tanh _ _ => + unfold evalDualOption1 evalDualOption at hsome + contradiction + | log e' ih => exact evalDual?_der_correct_log e' I D x hx hsome ih + | atan e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + rw [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [DualInterval.atan] + have hd := evalFunc1_differentiableAt_of_evalDualOption e' I d x hx heq + rw [evalFunc1_atan] + -- deriv (arctan ∘ f) x = (1 / (1 + f(x)²)) * f'(x) + have heq_deriv := HasDerivAt.arctan (hd.hasDerivAt) + rw [heq_deriv.deriv, mul_comm] + -- The factor 1/(1+f(x)²) is in unitInterval + have hfactor := DualInterval.arctan_deriv_factor_mem_unitInterval (evalFunc1 e' x) + exact IntervalRat.mem_mul (ih d heq) hfactor + | arsinh e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + rw [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [DualInterval.arsinh] + have hd := evalFunc1_differentiableAt_of_evalDualOption e' I d x hx heq + rw [evalFunc1_arsinh] + -- deriv (arsinh ∘ f) x = (√(1 + f(x)²))⁻¹ • f'(x) + have heq_deriv := HasDerivAt.arsinh (hd.hasDerivAt) + rw [heq_deriv.deriv, smul_eq_mul, mul_comm] + -- The factor 1/√(1+f(x)²) is in unitInterval + have hfactor := DualInterval.arsinh_deriv_factor_mem_unitInterval (evalFunc1 e' x) + exact IntervalRat.mem_mul (ih d heq) hfactor + | atanh _ _ => + -- evalDualOption returns none for atanh, so hsome is a contradiction + simp only [evalDualOption1, evalDualOption] at hsome + contradiction + | sinc e' ih => + unfold evalDualOption1 evalDualOption at hsome + cases heq : evalDualOption e' _ with + | none => rw [heq] at hsome; exact absurd hsome (by simp) + | some d => + rw [heq, Option.some.injEq] at hsome + rw [← hsome] + simp only [DualInterval.sinc] + -- The derivative of sinc ∘ f is sinc'(f(x)) * f'(x) + -- sinc'(y) ∈ [-1, 1] for all y, and f'(x) ∈ d.der + have hd_inner := evalFunc1_differentiableAt_of_evalDualOption e' I d x hx heq + have heq_comp : (fun t => Real.sinc (evalFunc1 e' t)) = Real.sinc ∘ evalFunc1 e' := rfl + rw [evalFunc1_sinc, heq_comp, deriv_comp x Real.differentiable_sinc.differentiableAt hd_inner] + -- deriv sinc (evalFunc1 e' x) * deriv (evalFunc1 e') x ∈ sincDerivBound * d.der + have hsinc_bound : deriv Real.sinc (evalFunc1 e' x) ∈ DualInterval.sincDerivBound := by + simp only [DualInterval.sincDerivBound, IntervalRat.mem_def, Rat.cast_neg, Rat.cast_one] + exact Real.deriv_sinc_mem_Icc (evalFunc1 e' x) + have hder := ih d heq + exact IntervalRat.mem_mul hsinc_bound hder + | erf e' ih => exact evalDual?_der_correct_erf e' I D x hx hsome ih + | sqrt e' ih => exact evalDual?_der_correct_sqrt e' I D x hx hsome ih + | namedConst c => + simp only [evalDualOption1, evalDualOption, Option.some.injEq] at hsome + rw [← hsome] + simp only [evalFunc1_namedConst, deriv_const, DualInterval.ofMathConst] + convert IntervalRat.mem_singleton 0 using 1 + norm_cast + +/-- Combined correctness theorem for evalDualOption1 -/ +theorem evalDualOption1_correct (e : Expr) + (I : IntervalRat) (D : DualInterval) (x : ℝ) (hx : x ∈ I) + (hsome : evalDualOption1 e I = some D) : + Expr.eval (fun _ => x) e ∈ D.val ∧ deriv (evalFunc1 e) x ∈ D.der := + ⟨evalDualOption1_val_correct e I D x hx hsome, evalDualOption_der_correct e I D x hx hsome⟩ + +end LeanCert.Engine + +end + +end + +section + +/- +Copyright (c) 2025 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# High-Performance Dyadic Interval Evaluator + +This evaluator replaces `Rat` with `Dyadic` to prevent denominator explosion. +It is designed for complex expressions where the standard evaluator becomes slow. + +## Main definitions + +* `DyadicConfig` - Configuration for precision and Taylor depth +* `LeanCert.Internal.Dyadic.evalUnchecked` - Dyadic interval evaluator for expressions +* `evalIntervalDyadic_correct` - Correctness theorem + +## Performance + +In v1.0, every `Rat` multiplication required GCD normalization. For deep +expressions (e.g., Taylor series with 20+ terms, or optimization with 100+ +iterations), denominators grow exponentially, causing timeouts. + +In v1.1, Dyadic arithmetic uses bit-shifts instead of GCD. With `roundOut`, +we can enforce a maximum precision after each operation, keeping computation +bounded regardless of expression depth. + +## Example + +Consider computing `sin(sin(sin(x)))` with 15-term Taylor series: +- v1.0 (Rat): ~500ms per call, denominators grow to millions of digits +- v1.1 (Dyadic): ~5ms per call, precision stays at 53 bits + +## Design notes + +For transcendental functions (sin, cos, exp), we delegate to the existing +`IntervalRat` implementation with Taylor series, then convert the result +to `IntervalDyadic` with outward rounding. This reuses verified code while +gaining the performance benefits of Dyadic for polynomial operations. +-/ + +/-! ### Configuration -/ + +@[expose] public section + +namespace LeanCert.Engine + +open LeanCert.Core + +/-- Configuration for Dyadic interval evaluation. + +* `precision` - Minimum exponent for outward rounding. A value of -53 gives + IEEE double-like precision (~15 decimal digits). Use -100 for higher precision. +* `taylorDepth` - Number of Taylor terms for transcendental functions. +-/ +structure DyadicConfig where + /-- Minimum exponent (higher = coarser). -53 ≈ IEEE double precision. -/ + precision : Int := -53 + /-- Number of Taylor series terms for transcendental functions -/ + taylorDepth : Nat := 10 + deriving Repr, DecidableEq + +/-- Default configuration with IEEE double-like precision -/ +instance : Inhabited DyadicConfig := ⟨{}⟩ + +/-- High-precision configuration for critical calculations -/ +def DyadicConfig.highPrecision : DyadicConfig := + { precision := -100, taylorDepth := 20 } + +/-- Fast configuration for rapid evaluation (lower precision) -/ +def DyadicConfig.fast : DyadicConfig := + { precision := -30, taylorDepth := 8 } + +/-! ### Variable Environment -/ + +/-- Variable assignment as Dyadic intervals -/ +abbrev IntervalDyadicEnv := Nat → IntervalDyadic + +/-- Convert a rational interval environment to Dyadic -/ +def toDyadicEnv (ρ : IntervalEnv) (prec : Int := -53) : IntervalDyadicEnv := + fun i => IntervalDyadic.ofIntervalRat (ρ i) prec + +/-! ### Transcendental Function Wrappers -/ + +/-- Compute sin interval using rational Taylor series, convert to Dyadic -/ +def sinIntervalDyadic (I : IntervalDyadic) (cfg : DyadicConfig) : IntervalDyadic := + let Irat := I.toIntervalRat + let result := IntervalRat.sinComputable Irat cfg.taylorDepth + IntervalDyadic.ofIntervalRat result cfg.precision + +/-- Compute cos interval using rational Taylor series, convert to Dyadic -/ +def cosIntervalDyadic (I : IntervalDyadic) (cfg : DyadicConfig) : IntervalDyadic := + let Irat := I.toIntervalRat + let result := IntervalRat.cosComputable Irat cfg.taylorDepth + IntervalDyadic.ofIntervalRat result cfg.precision + +/-- Compute exp interval using rational Taylor series, convert to Dyadic -/ +def expIntervalDyadic (I : IntervalDyadic) (cfg : DyadicConfig) : IntervalDyadic := + let Irat := I.toIntervalRat + let result := IntervalRat.expComputable Irat cfg.taylorDepth + IntervalDyadic.ofIntervalRat result cfg.precision + +/-- Compute sinh interval using rational Taylor series, convert to Dyadic -/ +def sinhIntervalDyadic (I : IntervalDyadic) (cfg : DyadicConfig) : IntervalDyadic := + let Irat := I.toIntervalRat + let result := IntervalRat.sinhComputable Irat cfg.taylorDepth + IntervalDyadic.ofIntervalRat result cfg.precision + +/-- Compute cosh interval using rational Taylor series, convert to Dyadic -/ +def coshIntervalDyadic (I : IntervalDyadic) (cfg : DyadicConfig) : IntervalDyadic := + let Irat := I.toIntervalRat + let result := IntervalRat.coshComputable Irat cfg.taylorDepth + IntervalDyadic.ofIntervalRat result cfg.precision + +/-- atan interval: global bound [-2, 2] -/ +def atanIntervalDyadic (_I : IntervalDyadic) (_cfg : DyadicConfig) : IntervalDyadic := + let neg2 := Core.Dyadic.ofInt (-2) + let pos2 := Core.Dyadic.ofInt 2 + ⟨neg2, pos2, by rw [Dyadic.toRat_ofInt, Dyadic.toRat_ofInt]; norm_num⟩ + +/-- tanh interval: global bound [-1, 1] -/ +def tanhIntervalDyadic (_I : IntervalDyadic) (_cfg : DyadicConfig) : IntervalDyadic := + let neg1 := Core.Dyadic.ofInt (-1) + let pos1 := Core.Dyadic.ofInt 1 + ⟨neg1, pos1, by rw [Dyadic.toRat_ofInt, Dyadic.toRat_ofInt]; norm_num⟩ + +/-- arsinh interval: wide box bound via rational arsinhInterval -/ +def arsinhIntervalDyadic (I : IntervalDyadic) (cfg : DyadicConfig) : IntervalDyadic := + let Irat := I.toIntervalRat + let result := arsinhInterval Irat + IntervalDyadic.ofIntervalRat result cfg.precision + +/-- atanh interval: computable Taylor series via rational atanhComputable -/ +def atanhIntervalDyadic (I : IntervalDyadic) (cfg : DyadicConfig) : IntervalDyadic := + let Irat := I.toIntervalRat + let result := IntervalRat.atanhComputable Irat cfg.taylorDepth + IntervalDyadic.ofIntervalRat result cfg.precision + +/-- sinc interval: global bound [-1, 1] -/ +def sincIntervalDyadic (_I : IntervalDyadic) (_cfg : DyadicConfig) : IntervalDyadic := + let neg1 := Core.Dyadic.ofInt (-1) + let pos1 := Core.Dyadic.ofInt 1 + ⟨neg1, pos1, by rw [Dyadic.toRat_ofInt, Dyadic.toRat_ofInt]; norm_num⟩ + +/-- erf interval: global bound [-1, 1] -/ +def erfIntervalDyadic (_I : IntervalDyadic) (_cfg : DyadicConfig) : IntervalDyadic := + let neg1 := Core.Dyadic.ofInt (-1) + let pos1 := Core.Dyadic.ofInt 1 + ⟨neg1, pos1, by rw [Dyadic.toRat_ofInt, Dyadic.toRat_ofInt]; norm_num⟩ + +/-- Compute inv interval: convert to Rat, use invInterval, convert back to Dyadic -/ +def invIntervalDyadic (I : IntervalDyadic) (cfg : DyadicConfig) : IntervalDyadic := + let Irat := I.toIntervalRat + let result := invInterval Irat + IntervalDyadic.ofIntervalRat result cfg.precision + +/-- sqrt interval: uses conservative bound [0, max(hi, 1)] -/ +def sqrtIntervalDyadic (I : IntervalDyadic) (cfg : DyadicConfig) : IntervalDyadic := + IntervalDyadic.sqrt I cfg.precision + +/-- log interval: conservative global bound. + For any x > 0, log(x) ∈ (-∞, ∞), but we use a finite interval. + For x ∈ [lo, hi] with lo > 0: + - log is monotone, so log(x) ∈ [log(lo), log(hi)] + - Legacy total-evaluator fallback; strict callers reject this domain -/ +def logIntervalDyadic (I : IntervalDyadic) (cfg : DyadicConfig) : IntervalDyadic := + -- Compute log using Taylor series via atanh reduction + -- Convert to rational, compute, convert back with outward rounding + let IRat := I.toIntervalRat + if IRat.lo > 0 then + let result := IntervalRat.logComputable IRat cfg.taylorDepth + IntervalDyadic.ofIntervalRat result cfg.precision + else + -- Legacy heuristic sentinel for invalid input. It is not a sound log + -- enclosure; `evalIntervalDyadicChecked` rejects this branch. + ⟨Core.Dyadic.ofInt (-1000), Core.Dyadic.ofInt 1000, by simp [Dyadic.toRat_ofInt]⟩ + +/-- Real power from a cached logarithm interval. + + If `Real.log x ∈ logBase`, this computes an interval for + `x ^ (p : ℝ)` as `exp(p * log x)` without recomputing `log x`. + This is the hot-path primitive for cached finite sums with many terms of + the form `x ^ q_k`. -/ +def rpowFromCachedLogDyadic (logBase : IntervalDyadic) (p : ℚ) + (cfg : DyadicConfig) : IntervalDyadic := + let pInterval := IntervalDyadic.ofIntervalRat (IntervalRat.singleton p) cfg.precision + let pLogBase := (IntervalDyadic.mul pInterval logBase).roundOut cfg.precision + expIntervalDyadic pLogBase cfg + +/-- Real power x^p for x > 0 and rational p, computed via exp(p * log(x)). + + For x ∈ [lo, hi] with lo > 0 and rational exponent p: + - x^p = exp(p * log(x)) + - We compute log(x), multiply by p, then apply exp + + This is the key operation for BKLNW-style sums where terms are x^(1/k - 1/3). -/ +def rpowIntervalDyadic (base : IntervalDyadic) (p : ℚ) (cfg : DyadicConfig) : IntervalDyadic := + -- x^p = exp(p * log(x)) for x > 0 + let logBase := logIntervalDyadic base cfg + rpowFromCachedLogDyadic logBase p cfg + +/-- Correctness of `rpowFromCachedLogDyadic`: a cached interval containing + `Real.log x` is enough to enclose `x ^ p`. -/ +theorem mem_rpowFromCachedLogDyadic {x : ℝ} {logBase : IntervalDyadic} + (hlog : Real.log x ∈ logBase) (hx_pos : 0 < x) + (p : ℚ) (cfg : DyadicConfig) (hprec : cfg.precision ≤ 0 := by norm_num) : + x ^ (p : ℝ) ∈ rpowFromCachedLogDyadic logBase p cfg := by + simp only [rpowFromCachedLogDyadic] + rw [Real.rpow_def_of_pos hx_pos, mul_comm] + have hp_mem : (p : ℝ) ∈ + IntervalDyadic.ofIntervalRat (IntervalRat.singleton p) cfg.precision := by + apply IntervalDyadic.mem_ofIntervalRat + · exact IntervalRat.mem_singleton p + · exact hprec + have hmul := IntervalDyadic.mem_mul hp_mem hlog + have hmul_rounded := IntervalDyadic.roundOut_contains hmul cfg.precision + simp only [expIntervalDyadic] + have hrat := IntervalDyadic.mem_toIntervalRat.mp hmul_rounded + have hexp := IntervalRat.mem_expComputable hrat cfg.taylorDepth + exact IntervalDyadic.mem_ofIntervalRat hexp cfg.precision hprec + +/-- Correctness of rpowIntervalDyadic: if x ∈ base and base.lo > 0, then x^p ∈ result -/ +theorem mem_rpowIntervalDyadic {x : ℝ} {base : IntervalDyadic} (hx : x ∈ base) + (hpos : base.toIntervalRat.lo > 0) (p : ℚ) (cfg : DyadicConfig) + (hprec : cfg.precision ≤ 0 := by norm_num) : + x ^ (p : ℝ) ∈ rpowIntervalDyadic base p cfg := by + simp only [rpowIntervalDyadic] + have hx_pos : 0 < x := by + have hlo := hx.1 + have hlo_pos : (0 : ℝ) < base.lo.toRat := by exact_mod_cast hpos + linarith + have hlog_mem : Real.log x ∈ logIntervalDyadic base cfg := by + simp only [logIntervalDyadic, hpos, ↓reduceIte] + have hrat := IntervalDyadic.mem_toIntervalRat.mp hx + have hlog := IntervalRat.mem_logComputable hrat hpos cfg.taylorDepth + exact IntervalDyadic.mem_ofIntervalRat hlog cfg.precision hprec + exact mem_rpowFromCachedLogDyadic hlog_mem hx_pos p cfg hprec + +/-! ### Main Evaluator -/ + +end LeanCert.Engine + +namespace LeanCert.Internal.Dyadic + +open LeanCert.Core LeanCert.Engine + +/-- High-performance Dyadic interval evaluator. + +This is the core function for v1.1. It evaluates expressions using Dyadic +arithmetic for polynomial operations (add, mul, neg) and delegates to +rational Taylor series for transcendentals. + +Returns an interval guaranteed to contain all possible values of the expression +when `ExprSupportedCore` holds. For other expressions, it computes conservative +fallbacks (e.g., inv/log), but the core correctness theorem does not apply. -/ +def evalUnchecked (e : Expr) (ρ : IntervalDyadicEnv) (cfg : DyadicConfig := {}) : IntervalDyadic := + match e with + | Expr.const q => + -- Convert rational constant to Dyadic interval with outward rounding + IntervalDyadic.ofIntervalRat (IntervalRat.singleton q) cfg.precision + | Expr.var idx => ρ idx + | Expr.add e₁ e₂ => + let I₁ := LeanCert.Internal.Dyadic.evalUnchecked e₁ ρ cfg + let I₂ := LeanCert.Internal.Dyadic.evalUnchecked e₂ ρ cfg + (IntervalDyadic.add I₁ I₂).roundOut cfg.precision + | Expr.mul e₁ e₂ => + let I₁ := LeanCert.Internal.Dyadic.evalUnchecked e₁ ρ cfg + let I₂ := LeanCert.Internal.Dyadic.evalUnchecked e₂ ρ cfg + (IntervalDyadic.mul I₁ I₂).roundOut cfg.precision + | Expr.neg e => + let I := LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg + IntervalDyadic.neg I -- Negation doesn't increase precision + | Expr.inv e => invIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg) cfg + | Expr.exp e => expIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg) cfg + | Expr.sin e => sinIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg) cfg + | Expr.cos e => cosIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg) cfg + | Expr.log e => logIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg) cfg + | Expr.atan e => atanIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg) cfg + | Expr.arsinh e => arsinhIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg) cfg + | Expr.atanh e => atanhIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg) cfg + | Expr.sinc e => sincIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg) cfg + | Expr.erf e => erfIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg) cfg + | Expr.sinh e => sinhIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg) cfg + | Expr.cosh e => coshIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg) cfg + | Expr.tanh e => tanhIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg) cfg + | Expr.sqrt e => sqrtIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg) cfg + | Expr.namedConst c => IntervalDyadic.ofIntervalRat c.interval cfg.precision + +end LeanCert.Internal.Dyadic + +namespace LeanCert.Engine + +open LeanCert.Core + +/-! ### Correctness -/ + +/-- A real environment is contained in a Dyadic interval environment -/ +def envMemDyadic (ρ_real : Nat → ℝ) (ρ_dyad : IntervalDyadicEnv) : Prop := + ∀ i, ρ_real i ∈ ρ_dyad i + +/-- Domain validity for Dyadic evaluation. + This is defined directly in terms of LeanCert.Internal.Dyadic.evalUnchecked to ensure + compatibility. + For log, we require the argument interval (converted to Rat) to have positive lower bound. -/ +def evalDomainValidDyadic (e : Expr) (ρ : IntervalDyadicEnv) (cfg : DyadicConfig := {}) : Prop := + match e with + | Expr.const _ => True + | Expr.var _ => True + | Expr.add e₁ e₂ => evalDomainValidDyadic e₁ ρ cfg ∧ evalDomainValidDyadic e₂ ρ cfg + | Expr.mul e₁ e₂ => evalDomainValidDyadic e₁ ρ cfg ∧ evalDomainValidDyadic e₂ ρ cfg + | Expr.neg e => evalDomainValidDyadic e ρ cfg + | Expr.inv e => evalDomainValidDyadic e ρ cfg ∧ + ((LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg).toIntervalRat.lo > 0 ∨ + (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg).toIntervalRat.hi < 0) + | Expr.exp e => evalDomainValidDyadic e ρ cfg + | Expr.sin e => evalDomainValidDyadic e ρ cfg + | Expr.cos e => evalDomainValidDyadic e ρ cfg + | Expr.log e => evalDomainValidDyadic e ρ cfg ∧ (LeanCert.Internal.Dyadic.evalUnchecked e ρ + cfg).toIntervalRat.lo > 0 + | Expr.atan e => evalDomainValidDyadic e ρ cfg + | Expr.arsinh e => evalDomainValidDyadic e ρ cfg + | Expr.atanh e => evalDomainValidDyadic e ρ cfg ∧ + (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg).toIntervalRat.lo > -1 ∧ + (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg).toIntervalRat.hi < 1 + | Expr.sinc e => evalDomainValidDyadic e ρ cfg + | Expr.erf e => evalDomainValidDyadic e ρ cfg + | Expr.sinh e => evalDomainValidDyadic e ρ cfg + | Expr.cosh e => evalDomainValidDyadic e ρ cfg + | Expr.tanh e => evalDomainValidDyadic e ρ cfg + | Expr.sqrt e => evalDomainValidDyadic e ρ cfg + | Expr.namedConst _ => True + +/-- Computable (Bool) domain validity check for Dyadic evaluation. -/ +def checkDomainValidDyadic (e : Expr) (ρ : IntervalDyadicEnv) (cfg : DyadicConfig := {}) : Bool := + match e with + | Expr.const _ => true + | Expr.var _ => true + | Expr.add e₁ e₂ => checkDomainValidDyadic e₁ ρ cfg && checkDomainValidDyadic e₂ ρ cfg + | Expr.mul e₁ e₂ => checkDomainValidDyadic e₁ ρ cfg && checkDomainValidDyadic e₂ ρ cfg + | Expr.neg e => checkDomainValidDyadic e ρ cfg + | Expr.inv e => checkDomainValidDyadic e ρ cfg && + (decide ((LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg).toIntervalRat.lo > 0) || + decide ((LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg).toIntervalRat.hi < 0)) + | Expr.exp e => checkDomainValidDyadic e ρ cfg + | Expr.sin e => checkDomainValidDyadic e ρ cfg + | Expr.cos e => checkDomainValidDyadic e ρ cfg + | Expr.log e => checkDomainValidDyadic e ρ cfg && + decide ((LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg).toIntervalRat.lo > 0) + | Expr.atan e => checkDomainValidDyadic e ρ cfg + | Expr.arsinh e => checkDomainValidDyadic e ρ cfg + | Expr.atanh e => checkDomainValidDyadic e ρ cfg && + decide ((LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg).toIntervalRat.lo > -1) && + decide ((LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg).toIntervalRat.hi < 1) + | Expr.sinc e => checkDomainValidDyadic e ρ cfg + | Expr.erf e => checkDomainValidDyadic e ρ cfg + | Expr.sinh e => checkDomainValidDyadic e ρ cfg + | Expr.cosh e => checkDomainValidDyadic e ρ cfg + | Expr.tanh e => checkDomainValidDyadic e ρ cfg + | Expr.sqrt e => checkDomainValidDyadic e ρ cfg + | Expr.namedConst _ => true + +theorem checkDomainValidDyadic_correct (e : Expr) (ρ : IntervalDyadicEnv) (cfg : DyadicConfig) : + checkDomainValidDyadic e ρ cfg = true → evalDomainValidDyadic e ρ cfg := by + induction e with + | const _ => intro; trivial + | var _ => intro; trivial + | add e₁ e₂ ih₁ ih₂ => + simp only [checkDomainValidDyadic, Bool.and_eq_true, evalDomainValidDyadic] + intro ⟨h1, h2⟩; exact ⟨ih₁ h1, ih₂ h2⟩ + | mul e₁ e₂ ih₁ ih₂ => + simp only [checkDomainValidDyadic, Bool.and_eq_true, evalDomainValidDyadic] + intro ⟨h1, h2⟩; exact ⟨ih₁ h1, ih₂ h2⟩ + | neg e ih => + simp only [checkDomainValidDyadic, evalDomainValidDyadic]; exact ih + | inv e ih => + simp only [checkDomainValidDyadic, Bool.and_eq_true, Bool.or_eq_true, + decide_eq_true_eq, evalDomainValidDyadic] + intro ⟨h1, h2⟩; exact ⟨ih h1, h2⟩ + | exp e ih => simp only [checkDomainValidDyadic, evalDomainValidDyadic]; exact ih + | sin e ih => simp only [checkDomainValidDyadic, evalDomainValidDyadic]; exact ih + | cos e ih => simp only [checkDomainValidDyadic, evalDomainValidDyadic]; exact ih + | log e ih => + simp only [checkDomainValidDyadic, Bool.and_eq_true, decide_eq_true_eq, evalDomainValidDyadic] + intro ⟨h1, h2⟩; exact ⟨ih h1, h2⟩ + | atan e ih => simp only [checkDomainValidDyadic, evalDomainValidDyadic]; exact ih + | arsinh e ih => simp only [checkDomainValidDyadic, evalDomainValidDyadic]; exact ih + | atanh e ih => + simp only [checkDomainValidDyadic, Bool.and_eq_true, decide_eq_true_eq, evalDomainValidDyadic] + intro ⟨⟨h1, h2⟩, h3⟩; exact ⟨ih h1, h2, h3⟩ + | sinc e ih => simp only [checkDomainValidDyadic, evalDomainValidDyadic]; exact ih + | erf e ih => simp only [checkDomainValidDyadic, evalDomainValidDyadic]; exact ih + | sinh e ih => simp only [checkDomainValidDyadic, evalDomainValidDyadic]; exact ih + | cosh e ih => simp only [checkDomainValidDyadic, evalDomainValidDyadic]; exact ih + | tanh e ih => simp only [checkDomainValidDyadic, evalDomainValidDyadic]; exact ih + | sqrt e ih => simp only [checkDomainValidDyadic, evalDomainValidDyadic]; exact ih + | namedConst _ => intro; trivial + +end LeanCert.Engine + +namespace LeanCert.Internal.Dyadic + +open LeanCert.Core LeanCert.Engine + +/-- Static data prepared once for repeated Dyadic evaluation. + +The context is operation-independent: logarithm, exponential, trigonometric, +and inverse-hyperbolic kernels share certified constants and coefficient +families without changing the public evaluator configuration. -/ +structure PreparedContext where + /-- Precision and rounding settings shared by prepared interval computations. -/ + cfg : DyadicConfig + /-- A precomputed rational enclosure of the natural logarithm of two. -/ + ln2 : IntervalRat + /-- Precomputed rational coefficients for the exponential Taylor polynomial. -/ + expCoeffs : List ℚ + /-- Precomputed rational coefficients for the sine Taylor polynomial. -/ + sinCoeffs : List ℚ + /-- Precomputed rational coefficients for the cosine Taylor polynomial. -/ + cosCoeffs : List ℚ + /-- Precomputed rational coefficients for the inverse hyperbolic tangent expansion. -/ + atanhCoeffs : List ℚ + deriving Repr + +/-- Deterministically prepare all configuration-dependent numerical data. -/ +def prepareContext (cfg : DyadicConfig) : PreparedContext := + { cfg + ln2 := IntervalRat.ln2Computable cfg.taylorDepth + expCoeffs := IntervalRat.expTaylorCoeffs cfg.taylorDepth + sinCoeffs := IntervalRat.sinTaylorCoeffs cfg.taylorDepth + cosCoeffs := IntervalRat.cosTaylorCoeffs cfg.taylorDepth + atanhCoeffs := IntervalRat.atanhTaylorCoeffs cfg.taylorDepth } + +@[simp] theorem prepareContext_cfg (cfg : DyadicConfig) : + (prepareContext cfg).cfg = cfg := rfl + +/-- Logarithm kernel using the context's prepared certified constants. -/ +def logIntervalPrepared (I : IntervalDyadic) (ctx : PreparedContext) : IntervalDyadic := + let IRat := I.toIntervalRat + if IRat.lo > 0 then + let result := IntervalRat.logComputablePrepared IRat ctx.cfg.taylorDepth ctx.ln2 + ctx.atanhCoeffs + IntervalDyadic.ofIntervalRat result ctx.cfg.precision + else + ⟨Core.Dyadic.ofInt (-1000), Core.Dyadic.ofInt 1000, by simp [Dyadic.toRat_ofInt]⟩ + +theorem logIntervalPrepared_prepareContext (I : IntervalDyadic) (cfg : DyadicConfig) : + logIntervalPrepared I (prepareContext cfg) = logIntervalDyadic I cfg := by + simp [logIntervalPrepared, prepareContext, logIntervalDyadic, + IntervalRat.logComputablePrepared_eq] + +/-- Exponential kernel using the context's prepared Taylor coefficients. -/ +def expIntervalPrepared (I : IntervalDyadic) (ctx : PreparedContext) : IntervalDyadic := + let result := IntervalRat.expComputableWithCoeffs I.toIntervalRat ctx.cfg.taylorDepth + ctx.expCoeffs + IntervalDyadic.ofIntervalRat result ctx.cfg.precision + +theorem expIntervalPrepared_prepareContext (I : IntervalDyadic) (cfg : DyadicConfig) : + expIntervalPrepared I (prepareContext cfg) = expIntervalDyadic I cfg := by + simp [expIntervalPrepared, prepareContext, expIntervalDyadic, + IntervalRat.expComputableWithCoeffs_eq] + +/-- Sine kernel using the context's prepared Taylor coefficients. -/ +def sinIntervalPrepared (I : IntervalDyadic) (ctx : PreparedContext) : IntervalDyadic := + let result := IntervalRat.sinComputableWithCoeffs I.toIntervalRat ctx.cfg.taylorDepth + ctx.sinCoeffs + IntervalDyadic.ofIntervalRat result ctx.cfg.precision + +theorem sinIntervalPrepared_prepareContext (I : IntervalDyadic) (cfg : DyadicConfig) : + sinIntervalPrepared I (prepareContext cfg) = sinIntervalDyadic I cfg := by + simp [sinIntervalPrepared, prepareContext, sinIntervalDyadic, + IntervalRat.sinComputableWithCoeffs_eq] + +/-- Cosine kernel using the context's prepared Taylor coefficients. -/ +def cosIntervalPrepared (I : IntervalDyadic) (ctx : PreparedContext) : IntervalDyadic := + let result := IntervalRat.cosComputableWithCoeffs I.toIntervalRat ctx.cfg.taylorDepth + ctx.cosCoeffs + IntervalDyadic.ofIntervalRat result ctx.cfg.precision + +theorem cosIntervalPrepared_prepareContext (I : IntervalDyadic) (cfg : DyadicConfig) : + cosIntervalPrepared I (prepareContext cfg) = cosIntervalDyadic I cfg := by + simp [cosIntervalPrepared, prepareContext, cosIntervalDyadic, + IntervalRat.cosComputableWithCoeffs_eq] + +/-- Inverse-hyperbolic-tangent kernel using prepared Taylor coefficients. -/ +def atanhIntervalPrepared (I : IntervalDyadic) (ctx : PreparedContext) : IntervalDyadic := + let result := IntervalRat.atanhComputableWithCoeffs I.toIntervalRat ctx.cfg.taylorDepth + ctx.atanhCoeffs + IntervalDyadic.ofIntervalRat result ctx.cfg.precision + +theorem atanhIntervalPrepared_prepareContext (I : IntervalDyadic) (cfg : DyadicConfig) : + atanhIntervalPrepared I (prepareContext cfg) = atanhIntervalDyadic I cfg := by + simp [atanhIntervalPrepared, prepareContext, atanhIntervalDyadic, + IntervalRat.atanhComputableWithCoeffs_eq] + +/-- Evaluate an expression and its domain-validity bit in one traversal. +The value component is exactly `LeanCert.Internal.Dyadic.evalUnchecked`; the validity component is +exactly `checkDomainValidDyadic`. -/ +def evalCached (e : Expr) (ρ : IntervalDyadicEnv) + (cfg : DyadicConfig := {}) : IntervalDyadic × Bool := + match e with + | .const q => + (IntervalDyadic.ofIntervalRat (IntervalRat.singleton q) cfg.precision, true) + | .var idx => (ρ idx, true) + | .add e₁ e₂ => + let r₁ := LeanCert.Internal.Dyadic.evalCached e₁ ρ cfg + let r₂ := LeanCert.Internal.Dyadic.evalCached e₂ ρ cfg + ((IntervalDyadic.add r₁.1 r₂.1).roundOut cfg.precision, r₁.2 && r₂.2) + | .mul e₁ e₂ => + let r₁ := LeanCert.Internal.Dyadic.evalCached e₁ ρ cfg + let r₂ := LeanCert.Internal.Dyadic.evalCached e₂ ρ cfg + ((IntervalDyadic.mul r₁.1 r₂.1).roundOut cfg.precision, r₁.2 && r₂.2) + | .neg e => + let r := LeanCert.Internal.Dyadic.evalCached e ρ cfg + (IntervalDyadic.neg r.1, r.2) + | .inv e => + let r := LeanCert.Internal.Dyadic.evalCached e ρ cfg + let I := r.1.toIntervalRat + (invIntervalDyadic r.1 cfg, r.2 && (decide (I.lo > 0) || decide (I.hi < 0))) + | .exp e => + let r := LeanCert.Internal.Dyadic.evalCached e ρ cfg + (expIntervalDyadic r.1 cfg, r.2) + | .sin e => + let r := LeanCert.Internal.Dyadic.evalCached e ρ cfg + (sinIntervalDyadic r.1 cfg, r.2) + | .cos e => + let r := LeanCert.Internal.Dyadic.evalCached e ρ cfg + (cosIntervalDyadic r.1 cfg, r.2) + | .log e => + let r := LeanCert.Internal.Dyadic.evalCached e ρ cfg + (logIntervalDyadic r.1 cfg, r.2 && decide (r.1.toIntervalRat.lo > 0)) + | .atan e => + let r := LeanCert.Internal.Dyadic.evalCached e ρ cfg + (atanIntervalDyadic r.1 cfg, r.2) + | .arsinh e => + let r := LeanCert.Internal.Dyadic.evalCached e ρ cfg + (arsinhIntervalDyadic r.1 cfg, r.2) + | .atanh e => + let r := LeanCert.Internal.Dyadic.evalCached e ρ cfg + let I := r.1.toIntervalRat + (atanhIntervalDyadic r.1 cfg, + r.2 && decide (I.lo > -1) && decide (I.hi < 1)) + | .sinc e => + let r := LeanCert.Internal.Dyadic.evalCached e ρ cfg + (sincIntervalDyadic r.1 cfg, r.2) + | .erf e => + let r := LeanCert.Internal.Dyadic.evalCached e ρ cfg + (erfIntervalDyadic r.1 cfg, r.2) + | .sinh e => + let r := LeanCert.Internal.Dyadic.evalCached e ρ cfg + (sinhIntervalDyadic r.1 cfg, r.2) + | .cosh e => + let r := LeanCert.Internal.Dyadic.evalCached e ρ cfg + (coshIntervalDyadic r.1 cfg, r.2) + | .tanh e => + let r := LeanCert.Internal.Dyadic.evalCached e ρ cfg + (tanhIntervalDyadic r.1 cfg, r.2) + | .sqrt e => + let r := LeanCert.Internal.Dyadic.evalCached e ρ cfg + (sqrtIntervalDyadic r.1 cfg, r.2) + | .namedConst c => (IntervalDyadic.ofIntervalRat c.interval cfg.precision, true) + +/-- Prepared evaluator: identical certificate semantics to `evalCached`, but +configuration-dependent data is shared across every evaluation. -/ +def evalPreparedCached (e : Expr) (ρ : IntervalDyadicEnv) + (ctx : PreparedContext) : IntervalDyadic × Bool := + match e with + | .const q => + (IntervalDyadic.ofIntervalRat (IntervalRat.singleton q) ctx.cfg.precision, true) + | .var idx => (ρ idx, true) + | .add e₁ e₂ => + let r₁ := evalPreparedCached e₁ ρ ctx + let r₂ := evalPreparedCached e₂ ρ ctx + ((IntervalDyadic.add r₁.1 r₂.1).roundOut ctx.cfg.precision, r₁.2 && r₂.2) + | .mul e₁ e₂ => + let r₁ := evalPreparedCached e₁ ρ ctx + let r₂ := evalPreparedCached e₂ ρ ctx + ((IntervalDyadic.mul r₁.1 r₂.1).roundOut ctx.cfg.precision, r₁.2 && r₂.2) + | .neg e => + let r := evalPreparedCached e ρ ctx + (IntervalDyadic.neg r.1, r.2) + | .inv e => + let r := evalPreparedCached e ρ ctx + let I := r.1.toIntervalRat + (invIntervalDyadic r.1 ctx.cfg, r.2 && (decide (I.lo > 0) || decide (I.hi < 0))) + | .exp e => + let r := evalPreparedCached e ρ ctx + (expIntervalPrepared r.1 ctx, r.2) + | .sin e => + let r := evalPreparedCached e ρ ctx + (sinIntervalPrepared r.1 ctx, r.2) + | .cos e => + let r := evalPreparedCached e ρ ctx + (cosIntervalPrepared r.1 ctx, r.2) + | .log e => + let r := evalPreparedCached e ρ ctx + (logIntervalPrepared r.1 ctx, r.2 && decide (r.1.toIntervalRat.lo > 0)) + | .atan e => + let r := evalPreparedCached e ρ ctx + (atanIntervalDyadic r.1 ctx.cfg, r.2) + | .arsinh e => + let r := evalPreparedCached e ρ ctx + (arsinhIntervalDyadic r.1 ctx.cfg, r.2) + | .atanh e => + let r := evalPreparedCached e ρ ctx + let I := r.1.toIntervalRat + (atanhIntervalPrepared r.1 ctx, + r.2 && decide (I.lo > -1) && decide (I.hi < 1)) + | .sinc e => + let r := evalPreparedCached e ρ ctx + (sincIntervalDyadic r.1 ctx.cfg, r.2) + | .erf e => + let r := evalPreparedCached e ρ ctx + (erfIntervalDyadic r.1 ctx.cfg, r.2) + | .sinh e => + let r := evalPreparedCached e ρ ctx + (sinhIntervalDyadic r.1 ctx.cfg, r.2) + | .cosh e => + let r := evalPreparedCached e ρ ctx + (coshIntervalDyadic r.1 ctx.cfg, r.2) + | .tanh e => + let r := evalPreparedCached e ρ ctx + (tanhIntervalDyadic r.1 ctx.cfg, r.2) + | .sqrt e => + let r := evalPreparedCached e ρ ctx + (sqrtIntervalDyadic r.1 ctx.cfg, r.2) + | .namedConst c => + (IntervalDyadic.ofIntervalRat c.interval ctx.cfg.precision, true) + +end LeanCert.Internal.Dyadic + +namespace LeanCert.Engine + +open LeanCert.Core + +theorem evalIntervalDyadicCached_fst (e : Expr) (ρ : IntervalDyadicEnv) + (cfg : DyadicConfig := {}) : + (LeanCert.Internal.Dyadic.evalCached e ρ cfg).1 = LeanCert.Internal.Dyadic.evalUnchecked e ρ + cfg := by + induction e <;> simp [LeanCert.Internal.Dyadic.evalCached, + LeanCert.Internal.Dyadic.evalUnchecked, *] + +theorem evalIntervalDyadicCached_snd (e : Expr) (ρ : IntervalDyadicEnv) + (cfg : DyadicConfig := {}) : + (LeanCert.Internal.Dyadic.evalCached e ρ cfg).2 = checkDomainValidDyadic e ρ cfg := by + induction e <;> + simp [LeanCert.Internal.Dyadic.evalCached, checkDomainValidDyadic, + evalIntervalDyadicCached_fst, *] + +theorem evalIntervalDyadicPreparedCached_fst (e : Expr) (ρ : IntervalDyadicEnv) + (cfg : DyadicConfig := {}) : + (LeanCert.Internal.Dyadic.evalPreparedCached e ρ + (LeanCert.Internal.Dyadic.prepareContext cfg)).1 = + LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg := by + induction e <;> + simp [LeanCert.Internal.Dyadic.evalPreparedCached, + LeanCert.Internal.Dyadic.evalUnchecked, + LeanCert.Internal.Dyadic.logIntervalPrepared_prepareContext, + LeanCert.Internal.Dyadic.expIntervalPrepared_prepareContext, + LeanCert.Internal.Dyadic.sinIntervalPrepared_prepareContext, + LeanCert.Internal.Dyadic.cosIntervalPrepared_prepareContext, + LeanCert.Internal.Dyadic.atanhIntervalPrepared_prepareContext, *] + +theorem evalIntervalDyadicPreparedCached_snd (e : Expr) (ρ : IntervalDyadicEnv) + (cfg : DyadicConfig := {}) : + (LeanCert.Internal.Dyadic.evalPreparedCached e ρ + (LeanCert.Internal.Dyadic.prepareContext cfg)).2 = + checkDomainValidDyadic e ρ cfg := by + induction e <;> + simp [LeanCert.Internal.Dyadic.evalPreparedCached, + checkDomainValidDyadic, + evalIntervalDyadicPreparedCached_fst, *] + +/-- Diagnose the first failed Dyadic domain check. -/ +def diagnoseEvalIntervalDyadicFailure (e : Expr) (ρ : IntervalDyadicEnv) + (cfg : DyadicConfig := {}) : EvalError := + match e with + | .add e₁ e₂ | .mul e₁ e₂ => + if checkDomainValidDyadic e₁ ρ cfg then + .nestedFailure "right operand" (diagnoseEvalIntervalDyadicFailure e₂ ρ cfg) + else + .nestedFailure "left operand" (diagnoseEvalIntervalDyadicFailure e₁ ρ cfg) + | .neg e | .exp e | .sin e | .cos e | .atan e | .arsinh e | .sinc e | + .erf e | .sinh e | .cosh e | .tanh e | .sqrt e => + .nestedFailure "unary operand" (diagnoseEvalIntervalDyadicFailure e ρ cfg) + | .inv e => + if checkDomainValidDyadic e ρ cfg then + .reciprocalContainsZero (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg).toIntervalRat + else + .nestedFailure "reciprocal operand" (diagnoseEvalIntervalDyadicFailure e ρ cfg) + | .log e => + if checkDomainValidDyadic e ρ cfg then + .logNonpositive (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg).toIntervalRat + else + .nestedFailure "logarithm operand" (diagnoseEvalIntervalDyadicFailure e ρ cfg) + | .atanh e => + if checkDomainValidDyadic e ρ cfg then + .atanhOutsideUnitBall (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg).toIntervalRat + else + .nestedFailure "atanh operand" (diagnoseEvalIntervalDyadicFailure e ρ cfg) + | .const _ | .var _ | .namedConst _ => + .unsupportedBackend "internal: total Dyadic expression unexpectedly failed" +termination_by e + +/-- Checked Dyadic evaluator. The finite fallback branches of the legacy total +evaluator are never exposed after a failed domain check. -/ +def evalIntervalDyadicChecked (e : Expr) (ρ : IntervalDyadicEnv) + (cfg : DyadicConfig := {}) : EvalResult IntervalDyadic := + let cached := LeanCert.Internal.Dyadic.evalCached e ρ cfg + if cached.2 then + .ok cached.1 + else + .error (diagnoseEvalIntervalDyadicFailure e ρ cfg) + +/-- Domain validity is trivially true for ADSupported expressions (which exclude log). -/ +theorem evalDomainValidDyadic_of_ExprSupported {e : Expr} (hsupp : ADSupported e) + (ρ : IntervalDyadicEnv) (cfg : DyadicConfig := {}) : evalDomainValidDyadic e ρ cfg := by + induction hsupp with + | const _ => trivial + | var _ => trivial + | add _ _ ih1 ih2 => exact ⟨ih1, ih2⟩ + | mul _ _ ih1 ih2 => exact ⟨ih1, ih2⟩ + | neg _ ih => exact ih + | sin _ ih => exact ih + | cos _ ih => exact ih + | exp _ ih => exact ih + +/-- Fundamental correctness theorem for Dyadic evaluation. + +This theorem states that for any supported expression and any real values +within the input intervals, the result of evaluating the expression is +contained in the computed Dyadic interval. + +The proof follows the same structure as `evalIntervalCore_correct`, but +with additional steps for handling Dyadic ↔ Rat conversions and rounding. +Requires cfg.precision ≤ 0 (the default -53 satisfies this). + +Note: Requires domain validity for log (positive argument interval). -/ +theorem evalIntervalDyadic_correct (e : Expr) (hsupp : ExprSupportedCore e) + (ρ_real : Nat → ℝ) (ρ_dyad : IntervalDyadicEnv) + (hρ : envMemDyadic ρ_real ρ_dyad) (cfg : DyadicConfig := {}) + (hprec : cfg.precision ≤ 0 := by norm_num) + (hdom : evalDomainValidDyadic e ρ_dyad cfg) : + Expr.eval ρ_real e ∈ LeanCert.Internal.Dyadic.evalUnchecked e ρ_dyad cfg := by + induction hsupp with + | const q => + simp only [Expr.eval_const, LeanCert.Internal.Dyadic.evalUnchecked] + apply IntervalDyadic.mem_ofIntervalRat + · exact IntervalRat.mem_singleton q + · exact hprec + | var idx => + simp only [Expr.eval_var, LeanCert.Internal.Dyadic.evalUnchecked] + exact hρ idx + | add _ _ ih₁ ih₂ => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_add, LeanCert.Internal.Dyadic.evalUnchecked] + have h := IntervalDyadic.mem_add (ih₁ hdom.1) (ih₂ hdom.2) + exact IntervalDyadic.roundOut_contains h cfg.precision + | mul _ _ ih₁ ih₂ => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_mul, LeanCert.Internal.Dyadic.evalUnchecked] + have h := IntervalDyadic.mem_mul (ih₁ hdom.1) (ih₂ hdom.2) + exact IntervalDyadic.roundOut_contains h cfg.precision + | neg _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_neg, LeanCert.Internal.Dyadic.evalUnchecked] + exact IntervalDyadic.mem_neg (ih hdom) + | sin _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_sin, LeanCert.Internal.Dyadic.evalUnchecked, sinIntervalDyadic] + have hrat := IntervalDyadic.mem_toIntervalRat.mp (ih hdom) + have hsin := IntervalRat.mem_sinComputable hrat cfg.taylorDepth + exact IntervalDyadic.mem_ofIntervalRat hsin cfg.precision hprec + | cos _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_cos, LeanCert.Internal.Dyadic.evalUnchecked, cosIntervalDyadic] + have hrat := IntervalDyadic.mem_toIntervalRat.mp (ih hdom) + have hcos := IntervalRat.mem_cosComputable hrat cfg.taylorDepth + exact IntervalDyadic.mem_ofIntervalRat hcos cfg.precision hprec + | exp _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_exp, LeanCert.Internal.Dyadic.evalUnchecked, expIntervalDyadic] + have hrat := IntervalDyadic.mem_toIntervalRat.mp (ih hdom) + have hexp := IntervalRat.mem_expComputable hrat cfg.taylorDepth + exact IntervalDyadic.mem_ofIntervalRat hexp cfg.precision hprec + | sqrt _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_sqrt, LeanCert.Internal.Dyadic.evalUnchecked, sqrtIntervalDyadic] + exact IntervalDyadic.mem_sqrt' (ih hdom) cfg.precision + | sinh _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_sinh, LeanCert.Internal.Dyadic.evalUnchecked, sinhIntervalDyadic] + have hrat := IntervalDyadic.mem_toIntervalRat.mp (ih hdom) + have hsinh := IntervalRat.mem_sinhComputable hrat cfg.taylorDepth + exact IntervalDyadic.mem_ofIntervalRat hsinh cfg.precision hprec + | cosh _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_cosh, LeanCert.Internal.Dyadic.evalUnchecked, coshIntervalDyadic] + have hrat := IntervalDyadic.mem_toIntervalRat.mp (ih hdom) + have hcosh := IntervalRat.mem_coshComputable hrat cfg.taylorDepth + exact IntervalDyadic.mem_ofIntervalRat hcosh cfg.precision hprec + | @tanh e' _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_tanh, LeanCert.Internal.Dyadic.evalUnchecked, tanhIntervalDyadic] + -- tanh x ∈ [-1, 1] for all x + rw [IntervalDyadic.mem_def, Dyadic.toRat_ofInt, Dyadic.toRat_ofInt] + simp only [Int.cast_neg, Int.cast_one, Rat.cast_neg, Rat.cast_one] + set x := Expr.eval ρ_real e' with hx + constructor + -- tanh x ≥ -1: use tanh = sinh/cosh, cosh > 0, and -cosh ≤ sinh + · rw [Real.tanh_eq_sinh_div_cosh] + have hcosh : Real.cosh x > 0 := Real.cosh_pos x + rw [le_div_iff₀ hcosh, neg_one_mul] + rw [Real.sinh_eq, Real.cosh_eq] + have h1 : Real.exp x > 0 := Real.exp_pos x + linarith + -- tanh x ≤ 1: use sinh ≤ cosh (since exp(-x) > 0) + · rw [Real.tanh_eq_sinh_div_cosh] + have hcosh : Real.cosh x > 0 := Real.cosh_pos x + rw [div_le_one₀ hcosh] + rw [Real.sinh_eq, Real.cosh_eq] + have h2 : Real.exp (-x) > 0 := Real.exp_pos (-x) + linarith + | @erf e' _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_erf, LeanCert.Internal.Dyadic.evalUnchecked, erfIntervalDyadic] + -- erf x ∈ [-1, 1] for all x + rw [IntervalDyadic.mem_def, Dyadic.toRat_ofInt, Dyadic.toRat_ofInt] + simp only [Int.cast_neg, Int.cast_one, Rat.cast_neg, Rat.cast_one] + exact Real.erf_mem_Icc _ + | log _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_log, LeanCert.Internal.Dyadic.evalUnchecked, logIntervalDyadic] + have hrat := IntervalDyadic.mem_toIntervalRat.mp (ih hdom.1) + -- hdom.2 gives us the positivity condition: IRat.lo > 0 + -- This makes the if-condition true, so we take the positive branch + have hpos : (LeanCert.Internal.Dyadic.evalUnchecked _ ρ_dyad cfg).toIntervalRat.lo > 0 := hdom.2 + simp only [hpos, ↓reduceIte] + have hlog := IntervalRat.mem_logComputable hrat hpos cfg.taylorDepth + exact IntervalDyadic.mem_ofIntervalRat hlog cfg.precision hprec + | namedConst c => + simp only [Expr.eval_namedConst, LeanCert.Internal.Dyadic.evalUnchecked] + exact IntervalDyadic.mem_ofIntervalRat c.mem_interval cfg.precision hprec + +/-- Correctness of Dyadic evaluation for every expression whose recursively +checked domain conditions hold. -/ +theorem evalIntervalDyadic_correct_of_domain (e : Expr) + (ρ_real : Nat → ℝ) (ρ_dyad : IntervalDyadicEnv) + (hρ : envMemDyadic ρ_real ρ_dyad) (cfg : DyadicConfig := {}) + (hprec : cfg.precision ≤ 0 := by norm_num) + (hdom : evalDomainValidDyadic e ρ_dyad cfg) : + Expr.eval ρ_real e ∈ LeanCert.Internal.Dyadic.evalUnchecked e ρ_dyad cfg := by + induction e with + | const q => + simp only [Expr.eval_const, LeanCert.Internal.Dyadic.evalUnchecked] + apply IntervalDyadic.mem_ofIntervalRat + · exact IntervalRat.mem_singleton q + · exact hprec + | var idx => + simp only [Expr.eval_var, LeanCert.Internal.Dyadic.evalUnchecked] + exact hρ idx + | add _ _ ih₁ ih₂ => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_add, LeanCert.Internal.Dyadic.evalUnchecked] + have h := IntervalDyadic.mem_add (ih₁ hdom.1) (ih₂ hdom.2) + exact IntervalDyadic.roundOut_contains h cfg.precision + | mul _ _ ih₁ ih₂ => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_mul, LeanCert.Internal.Dyadic.evalUnchecked] + have h := IntervalDyadic.mem_mul (ih₁ hdom.1) (ih₂ hdom.2) + exact IntervalDyadic.roundOut_contains h cfg.precision + | neg _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_neg, LeanCert.Internal.Dyadic.evalUnchecked] + exact IntervalDyadic.mem_neg (ih hdom) + | inv _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_inv, LeanCert.Internal.Dyadic.evalUnchecked, invIntervalDyadic] + have hinner := ih hdom.1 + have hrat := IntervalDyadic.mem_toIntervalRat.mp hinner + have hinv := mem_invInterval_nonzero hrat hdom.2 + exact IntervalDyadic.mem_ofIntervalRat hinv cfg.precision hprec + | exp _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_exp, LeanCert.Internal.Dyadic.evalUnchecked, expIntervalDyadic] + have hrat := IntervalDyadic.mem_toIntervalRat.mp (ih hdom) + have hexp := IntervalRat.mem_expComputable hrat cfg.taylorDepth + exact IntervalDyadic.mem_ofIntervalRat hexp cfg.precision hprec + | sin _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_sin, LeanCert.Internal.Dyadic.evalUnchecked, sinIntervalDyadic] + have hrat := IntervalDyadic.mem_toIntervalRat.mp (ih hdom) + have hsin := IntervalRat.mem_sinComputable hrat cfg.taylorDepth + exact IntervalDyadic.mem_ofIntervalRat hsin cfg.precision hprec + | cos _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_cos, LeanCert.Internal.Dyadic.evalUnchecked, cosIntervalDyadic] + have hrat := IntervalDyadic.mem_toIntervalRat.mp (ih hdom) + have hcos := IntervalRat.mem_cosComputable hrat cfg.taylorDepth + exact IntervalDyadic.mem_ofIntervalRat hcos cfg.precision hprec + | log _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_log, LeanCert.Internal.Dyadic.evalUnchecked, logIntervalDyadic] + have hrat := IntervalDyadic.mem_toIntervalRat.mp (ih hdom.1) + have hpos : (LeanCert.Internal.Dyadic.evalUnchecked _ ρ_dyad cfg).toIntervalRat.lo > 0 := hdom.2 + simp only [hpos, ↓reduceIte] + have hlog := IntervalRat.mem_logComputable hrat hpos cfg.taylorDepth + exact IntervalDyadic.mem_ofIntervalRat hlog cfg.precision hprec + | sinh _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_sinh, LeanCert.Internal.Dyadic.evalUnchecked, sinhIntervalDyadic] + have hrat := IntervalDyadic.mem_toIntervalRat.mp (ih hdom) + have hsinh := IntervalRat.mem_sinhComputable hrat cfg.taylorDepth + exact IntervalDyadic.mem_ofIntervalRat hsinh cfg.precision hprec + | cosh _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_cosh, LeanCert.Internal.Dyadic.evalUnchecked, coshIntervalDyadic] + have hrat := IntervalDyadic.mem_toIntervalRat.mp (ih hdom) + have hcosh := IntervalRat.mem_coshComputable hrat cfg.taylorDepth + exact IntervalDyadic.mem_ofIntervalRat hcosh cfg.precision hprec + | tanh e' ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_tanh, LeanCert.Internal.Dyadic.evalUnchecked, tanhIntervalDyadic] + rw [IntervalDyadic.mem_def, Dyadic.toRat_ofInt, Dyadic.toRat_ofInt] + simp only [Int.cast_neg, Int.cast_one, Rat.cast_neg, Rat.cast_one] + set x := Expr.eval ρ_real e' with hx + constructor + · rw [Real.tanh_eq_sinh_div_cosh] + have hcosh : Real.cosh x > 0 := Real.cosh_pos x + rw [le_div_iff₀ hcosh, neg_one_mul] + rw [Real.sinh_eq, Real.cosh_eq] + have h1 : Real.exp x > 0 := Real.exp_pos x + linarith + · rw [Real.tanh_eq_sinh_div_cosh] + have hcosh : Real.cosh x > 0 := Real.cosh_pos x + rw [div_le_one₀ hcosh] + rw [Real.sinh_eq, Real.cosh_eq] + have h2 : Real.exp (-x) > 0 := Real.exp_pos (-x) + linarith + | atan e' ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_atan, LeanCert.Internal.Dyadic.evalUnchecked, atanIntervalDyadic] + rw [IntervalDyadic.mem_def, Dyadic.toRat_ofInt, Dyadic.toRat_ofInt] + simp only [Int.cast_neg, Int.cast_ofNat, Rat.cast_neg, Rat.cast_ofNat] + set x := Expr.eval ρ_real e' with hx + constructor + · linarith [Real.neg_pi_div_two_lt_arctan x, Real.pi_lt_four] + · linarith [Real.arctan_lt_pi_div_two x, Real.pi_lt_four] + | sinc _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_sinc, LeanCert.Internal.Dyadic.evalUnchecked, sincIntervalDyadic] + rw [IntervalDyadic.mem_def, Dyadic.toRat_ofInt, Dyadic.toRat_ofInt] + simp only [Int.cast_neg, Int.cast_one, Rat.cast_neg, Rat.cast_one] + exact Real.sinc_mem_Icc _ + | arsinh _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_arsinh, LeanCert.Internal.Dyadic.evalUnchecked, arsinhIntervalDyadic] + have hrat := IntervalDyadic.mem_toIntervalRat.mp (ih hdom) + have harsinh := mem_arsinhInterval hrat + exact IntervalDyadic.mem_ofIntervalRat harsinh cfg.precision hprec + | atanh _ ih => + simp only [evalDomainValidDyadic] at hdom + obtain ⟨hdom_sub, hlo_gt, hhi_lt⟩ := hdom + simp only [Expr.eval_atanh, LeanCert.Internal.Dyadic.evalUnchecked, atanhIntervalDyadic] + have hrat := IntervalDyadic.mem_toIntervalRat.mp (ih hdom_sub) + have hatanh := IntervalRat.mem_atanhComputable hrat hlo_gt hhi_lt cfg.taylorDepth + exact IntervalDyadic.mem_ofIntervalRat hatanh cfg.precision hprec + | erf _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_erf, LeanCert.Internal.Dyadic.evalUnchecked, erfIntervalDyadic] + rw [IntervalDyadic.mem_def, Dyadic.toRat_ofInt, Dyadic.toRat_ofInt] + simp only [Int.cast_neg, Int.cast_one, Rat.cast_neg, Rat.cast_one] + exact Real.erf_mem_Icc _ + | sqrt _ ih => + simp only [evalDomainValidDyadic] at hdom + simp only [Expr.eval_sqrt, LeanCert.Internal.Dyadic.evalUnchecked, sqrtIntervalDyadic] + exact IntervalDyadic.mem_sqrt' (ih hdom) cfg.precision + | namedConst c => + simp only [Expr.eval_namedConst, LeanCert.Internal.Dyadic.evalUnchecked] + exact IntervalDyadic.mem_ofIntervalRat c.mem_interval cfg.precision hprec + +/-- Successful checked Dyadic evaluation encloses the true value for every +expression, provided outward-rounding precision is nonpositive. -/ +theorem evalIntervalDyadicChecked_correct (e : Expr) + (ρ_real : Nat → ℝ) (ρ_dyad : IntervalDyadicEnv) + (hρ : envMemDyadic ρ_real ρ_dyad) (cfg : DyadicConfig := {}) + (hprec : cfg.precision ≤ 0 := by norm_num) + (result : IntervalDyadic) + (hsuccess : evalIntervalDyadicChecked e ρ_dyad cfg = .ok result) : + Expr.eval ρ_real e ∈ result := by + unfold evalIntervalDyadicChecked at hsuccess + let cached := LeanCert.Internal.Dyadic.evalCached e ρ_dyad cfg + cases hvalid : cached.2 with + | false => + have : Except.error (diagnoseEvalIntervalDyadicFailure e ρ_dyad cfg) = + Except.ok result := by + simp [cached, hvalid] at hsuccess + contradiction + | true => + have hsuccess' : (Except.ok cached.1 : EvalResult IntervalDyadic) = Except.ok result := by + simpa [cached, hvalid] using hsuccess + injection hsuccess' with hresult + subst result + have hcheck : checkDomainValidDyadic e ρ_dyad cfg = true := by + calc + checkDomainValidDyadic e ρ_dyad cfg = + (LeanCert.Internal.Dyadic.evalCached e ρ_dyad cfg).2 := + (evalIntervalDyadicCached_snd e ρ_dyad cfg).symm + _ = cached.2 := rfl + _ = true := hvalid + have hsound := evalIntervalDyadic_correct_of_domain e + ρ_real ρ_dyad hρ cfg hprec (checkDomainValidDyadic_correct e ρ_dyad cfg hcheck) + change Expr.eval ρ_real e ∈ (LeanCert.Internal.Dyadic.evalCached e ρ_dyad cfg).1 + rw [evalIntervalDyadicCached_fst e ρ_dyad cfg] + exact hsound + +/-! ### Verification Checkers -/ + +/-- Check if expression is bounded above by q -/ +def checkUpperBoundDyadic (e : Expr) (ρ : IntervalDyadicEnv) (q : ℚ) + (cfg : DyadicConfig := {}) : Bool := + (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg).upperBoundedBy q + +/-- Check if expression is bounded below by q -/ +def checkLowerBoundDyadic (e : Expr) (ρ : IntervalDyadicEnv) (q : ℚ) + (cfg : DyadicConfig := {}) : Bool := + (LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg).lowerBoundedBy q + +/-- Check if expression is bounded in interval [lo, hi] -/ +def checkBoundsDyadic (e : Expr) (ρ : IntervalDyadicEnv) (lo hi : ℚ) + (cfg : DyadicConfig := {}) : Bool := + let result := LeanCert.Internal.Dyadic.evalUnchecked e ρ cfg + result.lowerBoundedBy lo && result.upperBoundedBy hi + +end LeanCert.Engine + +end + +end + +section + +/- +Copyright (c) 2026 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Domain-aware automatic differentiation with Dyadic intervals + +This module is the bounded-denominator counterpart of `AD.DomainChecked`. +Polynomial dual arithmetic is performed with Dyadic endpoints and outward +rounding after every addition and multiplication. Transcendental values use +the same verified rational Taylor kernels as the Dyadic value evaluator and +are rounded back to Dyadic endpoints. + +The public entry points are checked: unsupported syntax, invalid reciprocal or +logarithm domains, and positive rounding precisions return `EvalError` rather +than a finite interval. +-/ + +@[expose] public section + +namespace LeanCert.Engine + +open LeanCert.Core + +/-- A value interval and one directional derivative interval, both Dyadic. -/ +structure DualIntervalDyadic where + /-- The interval enclosing the function value. -/ + val : IntervalDyadic + /-- The interval enclosing the derivative. -/ + der : IntervalDyadic + deriving Repr + +instance : Inhabited DualIntervalDyadic where + default := ⟨default, default⟩ + +/-- An environment of Dyadic dual intervals. -/ +abbrev DualDyadicEnv := Nat → DualIntervalDyadic + +namespace DualIntervalDyadic + +/-- The singleton dyadic interval at zero. -/ +def zero : IntervalDyadic := IntervalDyadic.singleton Core.Dyadic.zero +/-- The singleton dyadic interval at one. -/ +def one : IntervalDyadic := IntervalDyadic.singleton (Core.Dyadic.ofInt 1) + +/-- Enclose a rational constant in a dyadic interval with zero derivative. -/ +def const (q : ℚ) (cfg : DyadicConfig := {}) : DualIntervalDyadic := + ⟨IntervalDyadic.ofIntervalRat (IntervalRat.singleton q) cfg.precision, zero⟩ + +/-- An input interval whose derivative is the singleton one. -/ +def varActive (I : IntervalDyadic) : DualIntervalDyadic := ⟨I, one⟩ +/-- An input interval held constant, with singleton zero derivative. -/ +def varPassive (I : IntervalDyadic) : DualIntervalDyadic := ⟨I, zero⟩ + +/-- Addition with dyadic interval propagation of values and derivatives. -/ +def add (a b : DualIntervalDyadic) (cfg : DyadicConfig := {}) : DualIntervalDyadic := + ⟨IntervalDyadic.addRounded a.val b.val cfg.precision, + IntervalDyadic.addRounded a.der b.der cfg.precision⟩ + +/-- Multiplication with dyadic interval propagation of values and derivatives. -/ +def mul (a b : DualIntervalDyadic) (cfg : DyadicConfig := {}) : DualIntervalDyadic := + ⟨IntervalDyadic.mulRounded a.val b.val cfg.precision, + IntervalDyadic.addRounded + (IntervalDyadic.mulRounded a.der b.val cfg.precision) + (IntervalDyadic.mulRounded a.val b.der cfg.precision) + cfg.precision⟩ + +/-- Negation with dyadic interval propagation of values and derivatives. -/ +def neg (a : DualIntervalDyadic) : DualIntervalDyadic := + ⟨IntervalDyadic.neg a.val, IntervalDyadic.neg a.der⟩ + +/-- Reciprocal with dyadic interval propagation of values and derivatives. -/ +def inv (a : DualIntervalDyadic) (cfg : DyadicConfig := {}) : DualIntervalDyadic := + let invVal := invIntervalDyadic a.val cfg + let invSq := IntervalDyadic.mulRounded invVal invVal cfg.precision + ⟨invVal, IntervalDyadic.neg (IntervalDyadic.mulRounded a.der invSq cfg.precision)⟩ + +/-- Exponential with dyadic interval propagation of values and derivatives. -/ +def exp (a : DualIntervalDyadic) (cfg : DyadicConfig := {}) : DualIntervalDyadic := + let value := expIntervalDyadic a.val cfg + ⟨value, IntervalDyadic.mulRounded value a.der cfg.precision⟩ + +/-- Sine with dyadic interval propagation of values and derivatives. -/ +def sin (a : DualIntervalDyadic) (cfg : DyadicConfig := {}) : DualIntervalDyadic := + ⟨sinIntervalDyadic a.val cfg, + IntervalDyadic.mulRounded (cosIntervalDyadic a.val cfg) a.der cfg.precision⟩ + +/-- Cosine with dyadic interval propagation of values and derivatives. -/ +def cos (a : DualIntervalDyadic) (cfg : DyadicConfig := {}) : DualIntervalDyadic := + ⟨cosIntervalDyadic a.val cfg, + IntervalDyadic.mulRounded (IntervalDyadic.neg (sinIntervalDyadic a.val cfg)) + a.der cfg.precision⟩ + +/-- Natural logarithm with dyadic interval propagation of values and derivatives. -/ +def log (a : DualIntervalDyadic) (cfg : DyadicConfig := {}) : DualIntervalDyadic := + ⟨logIntervalDyadic a.val cfg, + IntervalDyadic.mulRounded (invIntervalDyadic a.val cfg) a.der cfg.precision⟩ + +end DualIntervalDyadic +end LeanCert.Engine + +namespace LeanCert.Internal.AD.Dyadic + +open LeanCert.Core LeanCert.Engine + +/-- Total computational kernel. Sound public use goes through the checked +entry points below. -/ +def evalTotal (e : Expr) (rho : DualDyadicEnv) (cfg : DyadicConfig := {}) : + DualIntervalDyadic := + match e with + | .const q => DualIntervalDyadic.const q cfg + | .var i => rho i + | .add a b => DualIntervalDyadic.add (evalTotal a rho cfg) (evalTotal b rho cfg) cfg + | .mul a b => DualIntervalDyadic.mul (evalTotal a rho cfg) (evalTotal b rho cfg) cfg + | .neg a => DualIntervalDyadic.neg (evalTotal a rho cfg) + | .inv a => DualIntervalDyadic.inv (evalTotal a rho cfg) cfg + | .exp a => DualIntervalDyadic.exp (evalTotal a rho cfg) cfg + | .sin a => DualIntervalDyadic.sin (evalTotal a rho cfg) cfg + | .cos a => DualIntervalDyadic.cos (evalTotal a rho cfg) cfg + | .log a => DualIntervalDyadic.log (evalTotal a rho cfg) cfg + | _ => default + +end LeanCert.Internal.AD.Dyadic + +namespace LeanCert.Engine + +open LeanCert.Core + +/-- Value projection of a Dyadic dual environment. -/ +def DualDyadicEnv.values (rho : DualDyadicEnv) : IntervalDyadicEnv := fun i => (rho i).val + +/-- Dual environment selecting coordinate `idx`. -/ +def mkDualDyadicEnv (rho : IntervalDyadicEnv) (idx : Nat) : DualDyadicEnv := + fun i => if i = idx then DualIntervalDyadic.varActive (rho i) + else DualIntervalDyadic.varPassive (rho i) + +@[simp] theorem mkDualDyadicEnv_values (rho : IntervalDyadicEnv) (idx : Nat) : + (mkDualDyadicEnv rho idx).values = rho := by + funext i + by_cases hi : i = idx <;> + simp [mkDualDyadicEnv, DualDyadicEnv.values, hi, + DualIntervalDyadic.varActive, DualIntervalDyadic.varPassive] + +/-- The deliberately small v1 Dyadic AD fragment. -/ +def checkDyadicADFragment : Expr → Bool + | .const _ | .var _ => true + | .add a b | .mul a b => checkDyadicADFragment a && checkDyadicADFragment b + | .neg a | .inv a | .exp a | .sin a | .cos a | .log a => checkDyadicADFragment a + | _ => false + +/-- Box-dependent domain check for the Dyadic AD kernel. -/ +def checkDyadicADDomain (e : Expr) (rho : DualDyadicEnv) (cfg : DyadicConfig := {}) : Bool := + checkDyadicADFragment e && (LeanCert.Internal.Dyadic.evalCached e rho.values cfg).2 + +/-- Explain the first failed support or domain check. -/ +def diagnoseDyadicADFailure (e : Expr) (rho : DualDyadicEnv) + (cfg : DyadicConfig := {}) : EvalError := + if !checkDyadicADFragment e then + .unsupportedFeature "Dyadic automatic differentiation" + else + diagnoseEvalIntervalDyadicFailure e rho.values cfg + +/-- Checked Dyadic dual evaluation. -/ +def evalDualDyadicChecked (e : Expr) (rho : DualDyadicEnv) (cfg : DyadicConfig := {}) : + EvalResult DualIntervalDyadic := + if cfg.precision ≤ 0 then + if checkDyadicADDomain e rho cfg then + .ok (LeanCert.Internal.AD.Dyadic.evalTotal e rho cfg) + else + .error (diagnoseDyadicADFailure e rho cfg) + else + .error (.invalidConfiguration "Dyadic AD precision must be nonpositive") + +/-- Checked value-and-derivative evaluation along coordinate `idx`. -/ +def evalWithDerivDyadicChecked (e : Expr) (rho : IntervalDyadicEnv) (idx : Nat) + (cfg : DyadicConfig := {}) : EvalResult DualIntervalDyadic := + evalDualDyadicChecked e (mkDualDyadicEnv rho idx) cfg + +/-- Checked Dyadic derivative enclosure along coordinate `idx`. -/ +def derivIntervalDyadicChecked (e : Expr) (rho : IntervalDyadicEnv) (idx : Nat) + (cfg : DyadicConfig := {}) : EvalResult IntervalDyadic := + return (← evalWithDerivDyadicChecked e rho idx cfg).der + +/-- Checked Dyadic derivative enclosure for a single-variable expression. -/ +def derivIntervalDyadicChecked1 (e : Expr) (I : IntervalDyadic) + (cfg : DyadicConfig := {}) : EvalResult IntervalDyadic := + derivIntervalDyadicChecked e (fun _ => I) 0 cfg + +/-- Convenience boundary for callers whose boxes use rational endpoints. -/ +def derivIntervalDyadicCheckedOfRat (e : Expr) (rho : IntervalEnv) (idx : Nat) + (cfg : DyadicConfig := {}) : EvalResult IntervalDyadic := + if cfg.precision ≤ 0 then + derivIntervalDyadicChecked e (toDyadicEnv rho cfg.precision) idx cfg + else + .error (.invalidConfiguration "Dyadic AD precision must be nonpositive") + +/-- Single-variable rational-input convenience boundary. -/ +def derivIntervalDyadicChecked1OfRat (e : Expr) (I : IntervalRat) + (cfg : DyadicConfig := {}) : EvalResult IntervalDyadic := + derivIntervalDyadicCheckedOfRat e (fun _ => I) 0 cfg + +/-- The value projection of the dual kernel is exactly the ordinary Dyadic +value kernel. -/ +theorem evalTotalDyadic_val_of_fragment (e : Expr) (rho : DualDyadicEnv) + (cfg : DyadicConfig) (hsupp : checkDyadicADFragment e = true) : + (LeanCert.Internal.AD.Dyadic.evalTotal e rho cfg).val = + LeanCert.Internal.Dyadic.evalUnchecked e rho.values cfg := by + induction e with + | const | var => + simp [LeanCert.Internal.AD.Dyadic.evalTotal, LeanCert.Internal.Dyadic.evalUnchecked, + DualIntervalDyadic.const, DualDyadicEnv.values] + | add a b iha ihb | mul a b iha ihb => + simp only [checkDyadicADFragment, Bool.and_eq_true] at hsupp + simp [LeanCert.Internal.AD.Dyadic.evalTotal, LeanCert.Internal.Dyadic.evalUnchecked, + DualIntervalDyadic.add, DualIntervalDyadic.mul, IntervalDyadic.addRounded, + IntervalDyadic.mulRounded, iha hsupp.1, ihb hsupp.2] + | neg a ih | inv a ih | exp a ih | sin a ih | cos a ih | log a ih => + simp only [checkDyadicADFragment] at hsupp + simp [LeanCert.Internal.AD.Dyadic.evalTotal, LeanCert.Internal.Dyadic.evalUnchecked, + DualIntervalDyadic.neg, DualIntervalDyadic.inv, DualIntervalDyadic.exp, + DualIntervalDyadic.sin, DualIntervalDyadic.cos, DualIntervalDyadic.log, ih hsupp] + | atan | arsinh | atanh | sinc | erf | sinh | cosh | tanh | sqrt | namedConst => + simp [checkDyadicADFragment] at hsupp + +private theorem evalDualDyadicChecked_facts {e : Expr} {rho : DualDyadicEnv} + {cfg : DyadicConfig} {D : DualIntervalDyadic} + (hok : evalDualDyadicChecked e rho cfg = .ok D) : + cfg.precision ≤ 0 ∧ checkDyadicADFragment e = true ∧ + evalDomainValidDyadic e rho.values cfg ∧ + D = LeanCert.Internal.AD.Dyadic.evalTotal e rho cfg := by + simp only [evalDualDyadicChecked] at hok + split at hok + · rename_i hprec + split at hok + · rename_i hcheck + have hparts : checkDyadicADFragment e = true ∧ + (LeanCert.Internal.Dyadic.evalCached e rho.values cfg).2 = true := by + simpa only [checkDyadicADDomain, Bool.and_eq_true] using hcheck + have hdomainCheck : checkDomainValidDyadic e rho.values cfg = true := by + rw [← evalIntervalDyadicCached_snd e rho.values cfg] + exact hparts.2 + exact ⟨hprec, hparts.1, + checkDomainValidDyadic_correct e rho.values cfg hdomainCheck, + (Except.ok.inj hok).symm⟩ + · contradiction + · contradiction + +private theorem evalTotalDyadic_val_correct_of_facts (e : Expr) + (rhoReal : Nat → ℝ) (rho : DualDyadicEnv) (cfg : DyadicConfig) + (hprec : cfg.precision ≤ 0) (hsupp : checkDyadicADFragment e = true) + (hdom : evalDomainValidDyadic e rho.values cfg) + (hrho : ∀ i, rhoReal i ∈ (rho i).val) : + Expr.eval rhoReal e ∈ (LeanCert.Internal.AD.Dyadic.evalTotal e rho cfg).val := by + rw [evalTotalDyadic_val_of_fragment e rho cfg hsupp] + exact evalIntervalDyadic_correct_of_domain e rhoReal rho.values hrho cfg hprec hdom + +/-- Golden theorem for successful checked Dyadic dual evaluation. -/ +theorem evalDualDyadicChecked_val_correct (e : Expr) + (rhoReal : Nat → ℝ) (rho : DualDyadicEnv) (cfg : DyadicConfig) + (D : DualIntervalDyadic) (hrho : ∀ i, rhoReal i ∈ (rho i).val) + (hok : evalDualDyadicChecked e rho cfg = .ok D) : + Expr.eval rhoReal e ∈ D.val := by + obtain ⟨hprec, hsupp, hdom, rfl⟩ := evalDualDyadicChecked_facts hok + exact evalTotalDyadic_val_correct_of_facts e rhoReal rho cfg hprec hsupp hdom hrho + +private theorem updateVar_mem_mkDualDyadicEnv_val + (rhoReal : Nat → ℝ) (rho : IntervalDyadicEnv) (idx : Nat) + (x : ℝ) (hx : x ∈ rho idx) (hrho : ∀ i, rhoReal i ∈ rho i) : + ∀ i, Expr.updateVar rhoReal idx x i ∈ (mkDualDyadicEnv rho idx i).val := by + intro i + by_cases hi : i = idx + · subst i + simpa [Expr.updateVar, mkDualDyadicEnv, DualIntervalDyadic.varActive] using hx + · simpa [Expr.updateVar, mkDualDyadicEnv, hi, DualIntervalDyadic.varPassive] using hrho i + +private theorem evalAlong_differentiableAt_of_dyadic_facts (e : Expr) + (rhoReal : Nat → ℝ) (rho : IntervalDyadicEnv) (idx : Nat) (cfg : DyadicConfig) + (x : ℝ) (hx : x ∈ rho idx) (hrho : ∀ i, rhoReal i ∈ rho i) + (hprec : cfg.precision ≤ 0) (hsupp : checkDyadicADFragment e = true) + (hdom : evalDomainValidDyadic e rho cfg) : + DifferentiableAt ℝ (Expr.evalAlong e rhoReal idx) x := by + have hmem := updateVar_mem_mkDualDyadicEnv_val rhoReal rho idx x hx hrho + have hmemValue : envMemDyadic (Expr.updateVar rhoReal idx x) rho := by + intro i + by_cases hi : i = idx + · subst i + simpa [Expr.updateVar] using hx + · simpa [Expr.updateVar, hi] using hrho i + induction e with + | const => exact differentiableAt_const _ + | var i => + by_cases hi : i = idx + · subst i + simpa only [Expr.evalAlong_var_active] using differentiableAt_id + · simpa only [Expr.evalAlong_var_passive _ _ _ hi] using + differentiableAt_const (c := rhoReal i) + | add a b iha ihb => + simp only [checkDyadicADFragment, Bool.and_eq_true] at hsupp + simp only [evalDomainValidDyadic] at hdom + simpa only [Expr.evalAlong_add_pi] using + (iha hsupp.1 hdom.1).add (ihb hsupp.2 hdom.2) + | mul a b iha ihb => + simp only [checkDyadicADFragment, Bool.and_eq_true] at hsupp + simp only [evalDomainValidDyadic] at hdom + simpa only [Expr.evalAlong_mul_pi] using + (iha hsupp.1 hdom.1).mul (ihb hsupp.2 hdom.2) + | neg a ih => + simp only [checkDyadicADFragment] at hsupp + simp only [evalDomainValidDyadic] at hdom + simpa only [Expr.evalAlong_neg_pi] using (ih hsupp hdom).neg + | inv a ih => + simp only [checkDyadicADFragment] at hsupp + simp only [evalDomainValidDyadic] at hdom + have hval := evalIntervalDyadic_correct_of_domain a + (Expr.updateVar rhoReal idx x) rho hmemValue cfg hprec hdom.1 + have hne : Expr.evalAlong a rhoReal idx x ≠ 0 := by + rw [Expr.evalAlong_eq] + intro hz + rw [hz] at hval + rcases hdom.2 with hpos | hneg + · exact (not_lt_of_ge (IntervalDyadic.mem_toIntervalRat.mp hval).1) + (by exact_mod_cast hpos) + · exact (not_lt_of_ge (IntervalDyadic.mem_toIntervalRat.mp hval).2) + (by exact_mod_cast hneg) + exact DifferentiableAt.inv (ih hsupp hdom.1) hne + | exp a ih => + simp only [checkDyadicADFragment] at hsupp + simp only [evalDomainValidDyadic] at hdom + exact Real.differentiableAt_exp.comp x (ih hsupp hdom) + | sin a ih => + simp only [checkDyadicADFragment] at hsupp + simp only [evalDomainValidDyadic] at hdom + exact Real.differentiableAt_sin.comp x (ih hsupp hdom) + | cos a ih => + simp only [checkDyadicADFragment] at hsupp + simp only [evalDomainValidDyadic] at hdom + exact Real.differentiableAt_cos.comp x (ih hsupp hdom) + | log a ih => + simp only [checkDyadicADFragment] at hsupp + simp only [evalDomainValidDyadic] at hdom + have hval := evalIntervalDyadic_correct_of_domain a + (Expr.updateVar rhoReal idx x) rho hmemValue cfg hprec hdom.1 + have hpos : 0 < Expr.evalAlong a rhoReal idx x := by + rw [Expr.evalAlong_eq] + exact lt_of_lt_of_le (by exact_mod_cast hdom.2) + (IntervalDyadic.mem_toIntervalRat.mp hval).1 + exact (Real.differentiableAt_log (ne_of_gt hpos)).comp x (ih hsupp hdom.1) + | atan | arsinh | atanh | sinc | erf | sinh | cosh | tanh | sqrt | namedConst => + simp [checkDyadicADFragment] at hsupp + +/-- Successful checked Dyadic indexed AD proves differentiability throughout +the selected input interval. -/ +theorem evalWithDerivDyadicChecked_differentiableAt (e : Expr) + (rhoReal : Nat → ℝ) (rho : IntervalDyadicEnv) (idx : Nat) (cfg : DyadicConfig) + (D : DualIntervalDyadic) (x : ℝ) (hx : x ∈ rho idx) + (hrho : ∀ i, rhoReal i ∈ rho i) + (hok : evalWithDerivDyadicChecked e rho idx cfg = .ok D) : + DifferentiableAt ℝ (Expr.evalAlong e rhoReal idx) x := by + obtain ⟨hprec, hsupp, hdom, _⟩ := evalDualDyadicChecked_facts hok + exact evalAlong_differentiableAt_of_dyadic_facts e rhoReal rho idx cfg x hx hrho + hprec hsupp (by simpa using hdom) +private theorem evalTotalDyadic_der_correct_of_facts (e : Expr) + (rhoReal : Nat → ℝ) (rho : IntervalDyadicEnv) (idx : Nat) (cfg : DyadicConfig) + (x : ℝ) (hx : x ∈ rho idx) (hrho : ∀ i, rhoReal i ∈ rho i) + (hprec : cfg.precision ≤ 0) (hsupp : checkDyadicADFragment e = true) + (hdom : evalDomainValidDyadic e rho cfg) : + deriv (Expr.evalAlong e rhoReal idx) x ∈ + (LeanCert.Internal.AD.Dyadic.evalTotal e (mkDualDyadicEnv rho idx) cfg).der := by + have hmemValue : envMemDyadic (Expr.updateVar rhoReal idx x) rho := by + intro i + by_cases hi : i = idx + · subst i + simpa [Expr.updateVar] using hx + · simpa [Expr.updateVar, hi] using hrho i + induction e with + | const q => + simp only [Expr.evalAlong_const', deriv_const, LeanCert.Internal.AD.Dyadic.evalTotal, + DualIntervalDyadic.const] + norm_num [DualIntervalDyadic.zero, IntervalDyadic.mem_def, IntervalDyadic.singleton, + Core.Dyadic.zero, Core.Dyadic.toRat] + | var i => + by_cases hi : i = idx + · subst i + simp only [Expr.evalAlong_var_active, deriv_id, LeanCert.Internal.AD.Dyadic.evalTotal, + mkDualDyadicEnv, ↓reduceIte, DualIntervalDyadic.varActive] + simpa [DualIntervalDyadic.one, Core.Dyadic.toRat_ofInt] using + IntervalDyadic.mem_singleton (Core.Dyadic.ofInt 1) + · simp only [Expr.evalAlong_var_passive _ _ _ hi, deriv_const, + LeanCert.Internal.AD.Dyadic.evalTotal, mkDualDyadicEnv, ite_eq_right hi, + DualIntervalDyadic.varPassive] + norm_num [DualIntervalDyadic.zero, IntervalDyadic.mem_def, IntervalDyadic.singleton, + Core.Dyadic.zero, Core.Dyadic.toRat] + | add a b iha ihb => + simp only [checkDyadicADFragment, Bool.and_eq_true] at hsupp + simp only [evalDomainValidDyadic] at hdom + have hda := evalAlong_differentiableAt_of_dyadic_facts a rhoReal rho idx cfg x hx hrho + hprec hsupp.1 hdom.1 + have hdb := evalAlong_differentiableAt_of_dyadic_facts b rhoReal rho idx cfg x hx hrho + hprec hsupp.2 hdom.2 + simp only [Expr.evalAlong_add_pi, deriv_add hda hdb, + LeanCert.Internal.AD.Dyadic.evalTotal, DualIntervalDyadic.add, + IntervalDyadic.addRounded] + exact IntervalDyadic.roundOut_contains + (IntervalDyadic.mem_add (iha hsupp.1 hdom.1) (ihb hsupp.2 hdom.2)) cfg.precision + | mul a b iha ihb => + simp only [checkDyadicADFragment, Bool.and_eq_true] at hsupp + simp only [evalDomainValidDyadic] at hdom + have hda := evalAlong_differentiableAt_of_dyadic_facts a rhoReal rho idx cfg x hx hrho + hprec hsupp.1 hdom.1 + have hdb := evalAlong_differentiableAt_of_dyadic_facts b rhoReal rho idx cfg x hx hrho + hprec hsupp.2 hdom.2 + have hmemDual := updateVar_mem_mkDualDyadicEnv_val rhoReal rho idx x hx hrho + have hva := evalTotalDyadic_val_correct_of_facts a + (Expr.updateVar rhoReal idx x) (mkDualDyadicEnv rho idx) cfg hprec hsupp.1 + (by simpa using hdom.1) hmemDual + have hvb := evalTotalDyadic_val_correct_of_facts b + (Expr.updateVar rhoReal idx x) (mkDualDyadicEnv rho idx) cfg hprec hsupp.2 + (by simpa using hdom.2) hmemDual + have hleft := IntervalDyadic.roundOut_contains + (IntervalDyadic.mem_mul (iha hsupp.1 hdom.1) hvb) cfg.precision + have hright := IntervalDyadic.roundOut_contains + (IntervalDyadic.mem_mul hva (ihb hsupp.2 hdom.2)) cfg.precision + simp only [Expr.evalAlong_mul_pi, deriv_mul hda hdb, + LeanCert.Internal.AD.Dyadic.evalTotal, DualIntervalDyadic.mul, + IntervalDyadic.mulRounded, IntervalDyadic.addRounded] + exact IntervalDyadic.roundOut_contains (IntervalDyadic.mem_add hleft hright) cfg.precision + | neg a ih => + simp only [checkDyadicADFragment] at hsupp + simp only [evalDomainValidDyadic] at hdom + have hd := evalAlong_differentiableAt_of_dyadic_facts a rhoReal rho idx cfg x hx hrho + hprec hsupp hdom + simp only [Expr.evalAlong_neg_pi, deriv.neg, LeanCert.Internal.AD.Dyadic.evalTotal, + DualIntervalDyadic.neg] + exact IntervalDyadic.mem_neg (ih hsupp hdom) + | inv a ih => + simp only [checkDyadicADFragment] at hsupp + simp only [evalDomainValidDyadic] at hdom + have hval := evalIntervalDyadic_correct_of_domain a + (Expr.updateVar rhoReal idx x) rho hmemValue cfg hprec hdom.1 + have hval' : Expr.evalAlong a rhoReal idx x ∈ + LeanCert.Internal.Dyadic.evalUnchecked a rho cfg := by + simpa only [Expr.evalAlong_eq] using hval + have hne : Expr.evalAlong a rhoReal idx x ≠ 0 := by + intro hz + rw [hz] at hval' + rcases hdom.2 with hpos | hneg + · exact (not_lt_of_ge (IntervalDyadic.mem_toIntervalRat.mp hval').1) + (by exact_mod_cast hpos) + · exact (not_lt_of_ge (IntervalDyadic.mem_toIntervalRat.mp hval').2) + (by exact_mod_cast hneg) + have hd := evalAlong_differentiableAt_of_dyadic_facts a rhoReal rho idx cfg x hx hrho + hprec hsupp hdom.1 + rw [Expr.evalAlong_inv] + have hcomp : (fun t => (Expr.evalAlong a rhoReal idx t)⁻¹) = + (fun y : ℝ => y⁻¹) ∘ Expr.evalAlong a rhoReal idx := rfl + rw [hcomp, deriv_comp x (hasDerivAt_inv hne).differentiableAt hd] + simp only [(hasDerivAt_inv hne).deriv, LeanCert.Internal.AD.Dyadic.evalTotal, + DualIntervalDyadic.inv] + rw [evalTotalDyadic_val_of_fragment a (mkDualDyadicEnv rho idx) cfg hsupp] + simp only [mkDualDyadicEnv_values] + have hrat := IntervalDyadic.mem_toIntervalRat.mp hval' + have hinvRat := mem_invInterval_nonzero hrat hdom.2 + have hinv : (Expr.evalAlong a rhoReal idx x)⁻¹ ∈ + invIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked a rho cfg) cfg := by + exact IntervalDyadic.mem_ofIntervalRat hinvRat cfg.precision hprec + have hinvSq := IntervalDyadic.roundOut_contains + (IntervalDyadic.mem_mul hinv hinv) cfg.precision + have hprod := IntervalDyadic.roundOut_contains + (IntervalDyadic.mem_mul (ih hsupp hdom.1) hinvSq) cfg.precision + have hneg := IntervalDyadic.mem_neg hprod + simpa [IntervalDyadic.mulRounded, pow_two, mul_assoc, mul_comm, mul_left_comm] using hneg + | exp a ih => + simp only [checkDyadicADFragment] at hsupp + simp only [evalDomainValidDyadic] at hdom + have hd := evalAlong_differentiableAt_of_dyadic_facts a rhoReal rho idx cfg x hx hrho + hprec hsupp hdom + have hval := evalIntervalDyadic_correct_of_domain a + (Expr.updateVar rhoReal idx x) rho hmemValue cfg hprec hdom + have hexpRat := IntervalRat.mem_expComputable + (IntervalDyadic.mem_toIntervalRat.mp hval) cfg.taylorDepth + have hexp : Real.exp (Expr.evalAlong a rhoReal idx x) ∈ + expIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked a rho cfg) cfg := by + simpa [Expr.evalAlong_eq, expIntervalDyadic] using + (IntervalDyadic.mem_ofIntervalRat hexpRat cfg.precision hprec) + simp only [Expr.evalAlong_exp, deriv_exp hd, LeanCert.Internal.AD.Dyadic.evalTotal, + DualIntervalDyadic.exp, IntervalDyadic.mulRounded] + rw [evalTotalDyadic_val_of_fragment a (mkDualDyadicEnv rho idx) cfg hsupp] + simp only [mkDualDyadicEnv_values] + exact IntervalDyadic.roundOut_contains + (IntervalDyadic.mem_mul hexp (ih hsupp hdom)) cfg.precision + | sin a ih => + simp only [checkDyadicADFragment] at hsupp + simp only [evalDomainValidDyadic] at hdom + have hd := evalAlong_differentiableAt_of_dyadic_facts a rhoReal rho idx cfg x hx hrho + hprec hsupp hdom + have hval := evalIntervalDyadic_correct_of_domain a + (Expr.updateVar rhoReal idx x) rho hmemValue cfg hprec hdom + have hcosRat := IntervalRat.mem_cosComputable + (IntervalDyadic.mem_toIntervalRat.mp hval) cfg.taylorDepth + have hcos : Real.cos (Expr.evalAlong a rhoReal idx x) ∈ + cosIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked a rho cfg) cfg := by + simpa [Expr.evalAlong_eq, cosIntervalDyadic] using + (IntervalDyadic.mem_ofIntervalRat hcosRat cfg.precision hprec) + simp only [Expr.evalAlong_sin, deriv_sin hd, LeanCert.Internal.AD.Dyadic.evalTotal, + DualIntervalDyadic.sin, IntervalDyadic.mulRounded] + rw [evalTotalDyadic_val_of_fragment a (mkDualDyadicEnv rho idx) cfg hsupp] + simp only [mkDualDyadicEnv_values] + exact IntervalDyadic.roundOut_contains + (IntervalDyadic.mem_mul hcos (ih hsupp hdom)) cfg.precision + | cos a ih => + simp only [checkDyadicADFragment] at hsupp + simp only [evalDomainValidDyadic] at hdom + have hd := evalAlong_differentiableAt_of_dyadic_facts a rhoReal rho idx cfg x hx hrho + hprec hsupp hdom + have hval := evalIntervalDyadic_correct_of_domain a + (Expr.updateVar rhoReal idx x) rho hmemValue cfg hprec hdom + have hsinRat := IntervalRat.mem_sinComputable + (IntervalDyadic.mem_toIntervalRat.mp hval) cfg.taylorDepth + have hsin : Real.sin (Expr.evalAlong a rhoReal idx x) ∈ + sinIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked a rho cfg) cfg := by + simpa [Expr.evalAlong_eq, sinIntervalDyadic] using + (IntervalDyadic.mem_ofIntervalRat hsinRat cfg.precision hprec) + simp only [Expr.evalAlong_cos, deriv_cos hd, LeanCert.Internal.AD.Dyadic.evalTotal, + DualIntervalDyadic.cos, IntervalDyadic.mulRounded] + rw [evalTotalDyadic_val_of_fragment a (mkDualDyadicEnv rho idx) cfg hsupp] + simp only [mkDualDyadicEnv_values] + exact IntervalDyadic.roundOut_contains + (IntervalDyadic.mem_mul (IntervalDyadic.mem_neg hsin) (ih hsupp hdom)) cfg.precision + | log a ih => + simp only [checkDyadicADFragment] at hsupp + simp only [evalDomainValidDyadic] at hdom + have hval := evalIntervalDyadic_correct_of_domain a + (Expr.updateVar rhoReal idx x) rho hmemValue cfg hprec hdom.1 + have hval' : Expr.evalAlong a rhoReal idx x ∈ + LeanCert.Internal.Dyadic.evalUnchecked a rho cfg := by + simpa only [Expr.evalAlong_eq] using hval + have hpos : 0 < Expr.evalAlong a rhoReal idx x := + lt_of_lt_of_le (by exact_mod_cast hdom.2) + (IntervalDyadic.mem_toIntervalRat.mp hval').1 + have hd := evalAlong_differentiableAt_of_dyadic_facts a rhoReal rho idx cfg x hx hrho + hprec hsupp hdom.1 + rw [Expr.evalAlong_log] + have hcomp : (fun t => Real.log (Expr.evalAlong a rhoReal idx t)) = + Real.log ∘ Expr.evalAlong a rhoReal idx := rfl + rw [hcomp, deriv_comp x (Real.differentiableAt_log (ne_of_gt hpos)) hd] + simp only [Real.deriv_log, LeanCert.Internal.AD.Dyadic.evalTotal, + DualIntervalDyadic.log, IntervalDyadic.mulRounded] + rw [evalTotalDyadic_val_of_fragment a (mkDualDyadicEnv rho idx) cfg hsupp] + simp only [mkDualDyadicEnv_values] + have hnz : (LeanCert.Internal.Dyadic.evalUnchecked a rho cfg).toIntervalRat.lo > 0 ∨ + (LeanCert.Internal.Dyadic.evalUnchecked a rho cfg).toIntervalRat.hi < 0 := Or.inl hdom.2 + have hinvRat := mem_invInterval_nonzero + (IntervalDyadic.mem_toIntervalRat.mp hval') hnz + have hinv : (Expr.evalAlong a rhoReal idx x)⁻¹ ∈ + invIntervalDyadic (LeanCert.Internal.Dyadic.evalUnchecked a rho cfg) cfg := + IntervalDyadic.mem_ofIntervalRat hinvRat cfg.precision hprec + exact IntervalDyadic.roundOut_contains + (IntervalDyadic.mem_mul hinv (ih hsupp hdom.1)) cfg.precision + | atan | arsinh | atanh | sinc | erf | sinh | cosh | tanh | sqrt | namedConst => + simp [checkDyadicADFragment] at hsupp + +/-- Golden theorem: successful checked Dyadic indexed AD encloses the true +partial derivative. -/ +theorem evalWithDerivDyadicChecked_der_correct (e : Expr) + (rhoReal : Nat → ℝ) (rho : IntervalDyadicEnv) (idx : Nat) (cfg : DyadicConfig) + (D : DualIntervalDyadic) (x : ℝ) (hx : x ∈ rho idx) + (hrho : ∀ i, rhoReal i ∈ rho i) + (hok : evalWithDerivDyadicChecked e rho idx cfg = .ok D) : + deriv (Expr.evalAlong e rhoReal idx) x ∈ D.der := by + obtain ⟨hprec, hsupp, hdom, rfl⟩ := evalDualDyadicChecked_facts hok + exact evalTotalDyadic_der_correct_of_facts e rhoReal rho idx cfg x hx hrho hprec hsupp + (by simpa using hdom) + +/-- Golden theorem for the derivative-only Dyadic API. -/ +theorem derivIntervalDyadicChecked_correct (e : Expr) + (rhoReal : Nat → ℝ) (rho : IntervalDyadicEnv) (idx : Nat) (cfg : DyadicConfig) + (dI : IntervalDyadic) (x : ℝ) (hx : x ∈ rho idx) + (hrho : ∀ i, rhoReal i ∈ rho i) + (hok : derivIntervalDyadicChecked e rho idx cfg = .ok dI) : + deriv (Expr.evalAlong e rhoReal idx) x ∈ dI := by + simp only [derivIntervalDyadicChecked, bind, Except.bind] at hok + cases hdual : evalWithDerivDyadicChecked e rho idx cfg with + | error err => simp [hdual] at hok + | ok D => + rw [hdual] at hok + simp only [pure, Except.pure, Except.ok.injEq] at hok + subst dI + exact evalWithDerivDyadicChecked_der_correct e rhoReal rho idx cfg D x hx hrho hdual + +/-- Golden theorem for rational input boxes converted to the Dyadic backend. -/ +theorem derivIntervalDyadicCheckedOfRat_correct (e : Expr) + (rhoReal : Nat → ℝ) (rho : IntervalEnv) (idx : Nat) (cfg : DyadicConfig) + (dI : IntervalDyadic) (x : ℝ) (hx : x ∈ rho idx) + (hrho : ∀ i, rhoReal i ∈ rho i) + (hok : derivIntervalDyadicCheckedOfRat e rho idx cfg = .ok dI) : + deriv (Expr.evalAlong e rhoReal idx) x ∈ dI := by + simp only [derivIntervalDyadicCheckedOfRat] at hok + split at hok + · rename_i hprec + apply derivIntervalDyadicChecked_correct e rhoReal + (toDyadicEnv rho cfg.precision) idx cfg dI x + · exact IntervalDyadic.mem_ofIntervalRat hx cfg.precision hprec + · intro i + exact IntervalDyadic.mem_ofIntervalRat (hrho i) cfg.precision hprec + · exact hok + · contradiction + +/-- Compute the first `n` partial derivatives with the checked Dyadic backend. -/ +def gradientIntervalDyadicChecked (e : Expr) (rho : IntervalDyadicEnv) (n : Nat) + (cfg : DyadicConfig := {}) : EvalResult (List IntervalDyadic) := + if cfg.precision ≤ 0 then + (List.range n).mapM fun i => derivIntervalDyadicChecked e rho i cfg + else + .error (.invalidConfiguration "Dyadic AD precision must be nonpositive") + +/-- Rational-input convenience boundary for the first `n` Dyadic partials. -/ +def gradientIntervalDyadicCheckedOfRat (e : Expr) (rho : IntervalEnv) (n : Nat) + (cfg : DyadicConfig := {}) : EvalResult (List IntervalDyadic) := + if cfg.precision ≤ 0 then + gradientIntervalDyadicChecked e (toDyadicEnv rho cfg.precision) n cfg + else + .error (.invalidConfiguration "Dyadic AD precision must be nonpositive") + +private theorem derivIntervalsDyadicChecked_correct (e : Expr) + (rhoReal : Nat → ℝ) (rho : IntervalDyadicEnv) (cfg : DyadicConfig) + (hrho : ∀ i, rhoReal i ∈ rho i) (indices : List Nat) + (gradient : List IntervalDyadic) + (hok : indices.mapM (fun i => derivIntervalDyadicChecked e rho i cfg) = .ok gradient) : + List.Forall₂ (fun i dI => deriv (Expr.evalAlong e rhoReal i) (rhoReal i) ∈ dI) + indices gradient := by + induction indices generalizing gradient with + | nil => + simp only [List.mapM_nil, pure, Except.pure, Except.ok.injEq] at hok + subst gradient + exact .nil + | cons i indices ih => + simp only [List.mapM_cons] at hok + cases hdi : derivIntervalDyadicChecked e rho i cfg with + | error err => + rw [hdi] at hok + simp only [bind, Except.bind] at hok + cases hok + | ok dI => + rw [hdi] at hok + simp only [bind, Except.bind] at hok + cases htail : indices.mapM (fun j => derivIntervalDyadicChecked e rho j cfg) with + | error err => + rw [htail] at hok + cases hok + | ok tail => + rw [htail] at hok + simp only [pure, Except.pure, Except.ok.injEq] at hok + subst gradient + exact .cons + (derivIntervalDyadicChecked_correct e rhoReal rho i cfg dI + (rhoReal i) (hrho i) hrho hdi) + (ih tail htail) + +/-- Golden theorem for the checked Dyadic gradient API. -/ +theorem gradientIntervalDyadicChecked_correct (e : Expr) + (rhoReal : Nat → ℝ) (rho : IntervalDyadicEnv) (n : Nat) (cfg : DyadicConfig) + (hrho : ∀ i, rhoReal i ∈ rho i) (gradient : List IntervalDyadic) + (hok : gradientIntervalDyadicChecked e rho n cfg = .ok gradient) : + List.Forall₂ (fun i dI => deriv (Expr.evalAlong e rhoReal i) (rhoReal i) ∈ dI) + (List.range n) gradient := by + simp only [gradientIntervalDyadicChecked] at hok + split at hok + · exact derivIntervalsDyadicChecked_correct e rhoReal rho cfg hrho + (List.range n) gradient hok + · contradiction + +/-- Golden theorem for checked Dyadic gradients over rational input boxes. -/ +theorem gradientIntervalDyadicCheckedOfRat_correct (e : Expr) + (rhoReal : Nat → ℝ) (rho : IntervalEnv) (n : Nat) (cfg : DyadicConfig) + (hrho : ∀ i, rhoReal i ∈ rho i) (gradient : List IntervalDyadic) + (hok : gradientIntervalDyadicCheckedOfRat e rho n cfg = .ok gradient) : + List.Forall₂ (fun i dI => deriv (Expr.evalAlong e rhoReal i) (rhoReal i) ∈ dI) + (List.range n) gradient := by + simp only [gradientIntervalDyadicCheckedOfRat] at hok + split at hok + · rename_i hprec + apply gradientIntervalDyadicChecked_correct e rhoReal + (toDyadicEnv rho cfg.precision) n cfg + · intro i + exact IntervalDyadic.mem_ofIntervalRat (hrho i) cfg.precision hprec + · exact hok + · contradiction + +end LeanCert.Engine + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Automatic Differentiation via Intervals + +This module provides forward-mode automatic differentiation using interval +arithmetic. We compute both the value and derivative of an expression, +with rigorous bounds on both. + +## Module Structure + +* `AD.Basic` - Core types: `DualInterval`, basic operations (`add`, `mul`, `neg`) +* `AD.Transcendental` - Transcendental functions (`sin`, `cos`, `exp`, etc.) +* `AD.Eval` - Evaluators: `LeanCert.Internal.AD.evalUnchecked`, `evalDualOption`, `derivInterval` +* `AD.Correctness` - Correctness theorems for supported expressions +* `AD.PartialCorrectness` - Correctness for partial functions (inv, log, sqrt) +* `AD.Computable` - Taylor-based computable evaluators +* `AD.DomainChecked` - Computable AD with box-dependent checks for inv and log +* `AD.Dyadic` - Domain-aware AD with bounded-denominator Dyadic arithmetic + +## Main definitions + +* `DualInterval` - A pair of intervals representing (value, derivative) +* `LeanCert.Internal.AD.evalUnchecked` - Evaluate expression to get value and derivative intervals +* `evalDualOption` - Partial evaluator supporting inv, log, sqrt +* `LeanCert.Internal.AD.evalTotalCore` - Computable evaluator for native_decide +* `evalDualChecked`, `derivIntervalChecked` - Computable, structured-failure APIs for inv/log +* `evalDualDyadicChecked`, `derivIntervalDyadicChecked` - Checked Dyadic counterparts + +## Main theorems + +* `LeanCert.Engine.evalDualUnchecked_val_correct` - Value component is correct for supported +expressions +* `LeanCert.Engine.evalDualUnchecked_der_correct` - Derivative component is correct for supported +expressions +* `evalDualOption_val_correct`, `evalDualOption_der_correct` - Correctness with domain checks +* `LeanCert.Internal.AD.evalTotalCore_val_correct`, `LeanCert.Internal.AD.evalTotalCore_der_correct` +- Computable correctness +* `evalWithDerivChecked_der_correct`, `derivIntervalChecked_correct` - Golden theorems for + successful domain-aware computation + +All theorems are FULLY PROVED with no sorry or axioms. +-/ + +@[expose] public section + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# N-Dimensional Boxes for Global Optimization + +This file provides the `Box` type for representing n-dimensional domains +as products of intervals, along with helper functions for branch-and-bound +optimization. + +## Main definitions + +* `Box` - A list of intervals representing an n-dimensional box +* `Box.toEnv` - Convert a box to an interval environment +* `Box.mem` - Membership: a point (list of reals) is in a box +* `Box.widestDim` - Find the dimension with the largest width (for splitting) +* `Box.split` - Split a box along a given dimension +* `Box.volume` - Product of interval widths (heuristic measure) + +## Design + +A `Box` is represented as `List IntervalRat`, where the i-th element is the +interval for the i-th variable. This allows boxes of any dimension. + +For expressions with `n` variables (var 0 through var n-1), a box should +have at least `n` intervals. The conversion `Box.toEnv` returns `default` +for out-of-bounds indices. +-/ + +/-! ### Box type and basic operations -/ + +@[expose] public section + +namespace LeanCert.Engine.Optimization + +open LeanCert.Core +open LeanCert.Engine + +/-- An n-dimensional box as a list of intervals. + The i-th element is the interval for variable i. -/ +abbrev Box := List IntervalRat + +/-- A point in ℝⁿ represented as a list of reals -/ +abbrev Point := List ℝ + +/-- A rational point in ℚⁿ -/ +abbrev PointQ := List ℚ + +namespace Box + +/-- Create a one-dimensional box from a single interval. -/ +def ofInterval (I : IntervalRat) : Box := [I] + +/-- Convert a box to an interval environment. + Returns `default` for out-of-bounds indices (i.e., the whole real line approximation). -/ +def toEnv (B : Box) : IntervalEnv := + fun i => B.getD i default + +/-- The dimension (number of intervals) of a box -/ +def dim (B : Box) : ℕ := B.length + +/-- Check if a point is in a box. + A point is in a box if each coordinate is in the corresponding interval. -/ +def mem (p : Point) (B : Box) : Prop := + ∃ (h : p.length = B.length), ∀ i : Fin B.length, p[i.val]'(by rw [h]; exact i.isLt) ∈ + B[i.val]'(by exact i.isLt) + +/-- Membership for a real function (environment) in a box. + This is the key notion for correctness: ρ ∈ B means ρ i ∈ B[i] for all i < B.length. -/ +def envMem (ρ : Nat → ℝ) (B : Box) : Prop := + ∀ i : Fin B.length, ρ i.val ∈ B[i.val]'(by exact i.isLt) + +/-- envMem implies the general IntervalEnv membership for toEnv + NOTE: For indices beyond the box dimension, we use the default interval [0,0]. + This means expressions should only use variables 0..B.length-1 for correct results. -/ +theorem envMem_toEnv (ρ : Nat → ℝ) (B : Box) (h : envMem ρ B) + (hzero : ∀ i, i ≥ B.length → ρ i = 0) : + LeanCert.Engine.envMem ρ (toEnv B) := by + intro i + unfold toEnv + by_cases hi : i < B.length + · simp only [List.getD, List.getElem?_eq_getElem hi, Option.getD] + exact h ⟨i, hi⟩ + · have hge : B.length ≤ i := not_lt.mp hi + simp only [List.getD, List.getElem?_eq_none (not_lt.mp hi), Option.getD] + rw [IntervalRat.mem_default] + exact hzero i hge + +/-! ### Width and dimension selection -/ + +/-- Width of an interval -/ +def intervalWidth (I : IntervalRat) : ℚ := I.hi - I.lo + +/-- Get the width of each dimension -/ +def widths (B : Box) : List ℚ := B.map intervalWidth + +/-- Find the index of the maximum element in a list (returns 0 for empty list) -/ +def maxIdx (xs : List ℚ) : Nat := + match xs with + | [] => 0 + | [_] => 0 + | x :: y :: rest => + let restMax := maxIdx (y :: rest) + if x ≥ (y :: rest).getD restMax 0 then 0 else restMax + 1 + +/-- Find the dimension with the widest interval (heuristic for splitting). + Returns 0 if the box is empty. -/ +def widestDim (B : Box) : Nat := + maxIdx (widths B) + +/-- Alternative: find widest dimension with explicit fold -/ +def widestDim' (B : Box) : Nat := + let indexed := B.zipIdx.map fun (I, i) => (i, intervalWidth I) + match indexed.argmax (·.2) with + | some (i, _) => i + | none => 0 + +/-! ### Box splitting -/ + +/-- Split a box along a given dimension by bisecting that interval. + Returns the original box if the dimension is out of bounds. -/ +def split (B : Box) (dim : Nat) : Box × Box := + if h : dim < B.length then + let I := B[dim]'h + let (I₁, I₂) := I.bisect + let B₁ := B.set dim I₁ + let B₂ := B.set dim I₂ + (B₁, B₂) + else + (B, B) + +/-- Split along the widest dimension -/ +def splitWidest (B : Box) : Box × Box := + split B (widestDim B) + +/-- Splitting preserves the number of box coordinates. -/ +theorem split_length_eq (B : Box) (d : Nat) : + (split B d).1.length = B.length ∧ (split B d).2.length = B.length := by + simp only [split] + split_ifs with h + · constructor <;> simp only [List.length_set] + · exact ⟨rfl, rfl⟩ + +/-- The lower child of a split is a semantic sub-box of its parent. -/ +theorem envMem_of_envMem_split (B : Box) (d : Nat) (ρ : Nat → ℝ) : + envMem ρ (split B d).1 → envMem ρ B := by + intro h + unfold split at h + split_ifs at h with hd + · intro ⟨i, hi⟩ + have hi' : i < (B.set d (B[d].bisect.1)).length := by + simp only [List.length_set] + exact hi + have hmem := h ⟨i, hi'⟩ + simp only [List.getElem_set] at hmem + split_ifs at hmem with heq + · subst heq + exact IntervalRat.mem_of_mem_bisect_left hmem + · exact hmem + · exact h + +/-- The upper child of a split is a semantic sub-box of its parent. -/ +theorem envMem_of_envMem_split_right (B : Box) (d : Nat) (ρ : Nat → ℝ) : + envMem ρ (split B d).2 → envMem ρ B := by + intro h + unfold split at h + split_ifs at h with hd + · intro ⟨i, hi⟩ + have hi' : i < (B.set d (B[d].bisect.2)).length := by + simp only [List.length_set] + exact hi + have hmem := h ⟨i, hi'⟩ + simp only [List.getElem_set] at hmem + split_ifs at hmem with heq + · subst heq + exact IntervalRat.mem_of_mem_bisect_right hmem + · exact hmem + · exact h + +/-! ### Volume and size heuristics -/ + +/-- Volume of a box (product of widths). + Returns 0 for empty box. -/ +def volume (B : Box) : ℚ := + (widths B).foldl (· * ·) 1 + +/-- Maximum width across all dimensions -/ +def maxWidth (B : Box) : ℚ := + (widths B).foldl max 0 + +/-- Check if a box is "small" (max width below threshold) -/ +def isSmall (B : Box) (threshold : ℚ) : Bool := + maxWidth B ≤ threshold + +/-! ### Box construction helpers -/ + +/-- Create a box from a list of (lo, hi) pairs -/ +def ofPairs (pairs : List (ℚ × ℚ)) : Box := + pairs.filterMap fun (lo, hi) => + if h : lo ≤ hi then some ⟨lo, hi, h⟩ else none + +/-- Create a unit box [0,1]ⁿ -/ +def unit (n : Nat) : Box := + List.replicate n ⟨0, 1, by norm_num⟩ + +/-- Create a symmetric box [-1,1]ⁿ -/ +def symmetric (n : Nat) : Box := + List.replicate n ⟨-1, 1, by norm_num⟩ + +/-- Create a box from bounds: [lo₀, hi₀] × ... × [loₙ₋₁, hiₙ₋₁] -/ +def ofBounds (los his : List ℚ) (_h : los.length = his.length) : Box := + (los.zip his).filterMap fun (lo, hi) => + if hle : lo ≤ hi then some ⟨lo, hi, hle⟩ else none + +/-! ### Membership lemmas -/ + +/-- If a point is in a box, its i-th coordinate is in the i-th interval -/ +theorem coord_mem_of_mem (p : Point) (B : Box) (h : mem p B) (i : Fin B.length) : + p[i.val]'(by obtain ⟨hlen, _⟩ := h; rw [hlen]; exact i.isLt) ∈ B[i.val]'(by exact i.isLt) := by + obtain ⟨hlen, hmem⟩ := h + exact hmem i + +/-- After splitting, any point in the original box is in one of the halves. -/ +theorem mem_split_cases (B : Box) (d : Nat) (hd : d < B.length) + (p : Point) (hp : mem p B) : + mem p (split B d).1 ∨ mem p (split B d).2 := by + simp only [split, hd, ↓reduceDIte] + obtain ⟨hp_len, hp_mem⟩ := hp + have hp_d : p[d]'(by rw [hp_len]; exact hd) ∈ B[d]'hd := hp_mem ⟨d, hd⟩ + have hbisect := IntervalRat.mem_bisect_or hp_d + cases hbisect with + | inl hleft => + left + have hlen1 : (B.set d (B[d].bisect.1)).length = B.length := List.length_set + use (by rw [hlen1]; exact hp_len) + intro ⟨i, hi⟩ + have hi_orig : i < B.length := by rw [← hlen1]; exact hi + by_cases h_eq : i = d + · -- i = d: use the bisection result + simp only [h_eq, List.getElem_set_self] + convert hleft using 2 + · -- i ≠ d: use original membership + have hne : d ≠ i := fun h => h_eq h.symm + simp only [List.getElem_set_ne hne hi] + have hp_i := hp_mem ⟨i, hi_orig⟩ + convert hp_i using 2 + | inr hright => + right + have hlen2 : (B.set d (B[d].bisect.2)).length = B.length := List.length_set + use (by rw [hlen2]; exact hp_len) + intro ⟨i, hi⟩ + have hi_orig : i < B.length := by rw [← hlen2]; exact hi + by_cases h_eq : i = d + · simp only [h_eq, List.getElem_set_self] + convert hright using 2 + · have hne : d ≠ i := fun h => h_eq h.symm + simp only [List.getElem_set_ne hne hi] + have hp_i := hp_mem ⟨i, hi_orig⟩ + convert hp_i using 2 + +/-- Environment membership after splitting. -/ +theorem envMem_split_cases (B : Box) (d : Nat) (hd : d < B.length) + (ρ : Nat → ℝ) (hρ : envMem ρ B) : + envMem ρ (split B d).1 ∨ envMem ρ (split B d).2 := by + simp only [split, hd, ↓reduceDIte] + have hρ_d : ρ d ∈ B[d]'hd := hρ ⟨d, hd⟩ + have hbisect := IntervalRat.mem_bisect_or hρ_d + -- After bisection, ρ d is in either the left or right half + cases hbisect with + | inl hleft => + left + intro ⟨i, hi⟩ + -- After B.set d I₁, length is preserved + have hlen : (B.set d (B[d].bisect.1)).length = B.length := List.length_set + have hi_orig : i < B.length := by rw [← hlen]; exact hi + by_cases h_eq : i = d + · -- i = d: use the bisection result + simp only [h_eq, List.getElem_set_self] + exact hleft + · -- i ≠ d: use original membership + have hne : d ≠ i := fun h => h_eq h.symm + simp only [List.getElem_set_ne hne hi] + exact hρ ⟨i, hi_orig⟩ + | inr hright => + right + intro ⟨i, hi⟩ + have hlen : (B.set d (B[d].bisect.2)).length = B.length := List.length_set + have hi_orig : i < B.length := by rw [← hlen]; exact hi + by_cases h_eq : i = d + · simp only [h_eq, List.getElem_set_self] + exact hright + · have hne : d ≠ i := fun h => h_eq h.symm + simp only [List.getElem_set_ne hne hi] + exact hρ ⟨i, hi_orig⟩ + +end Box + +end LeanCert.Engine.Optimization + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Global Optimization via Branch-and-Bound + +This file implements verified global optimization over intervals using +branch-and-bound with interval arithmetic and derivative bounds. + +## Phase Status + +**This module is now largely Phase 1 (verified).** The core correctness theorems +are fully proved for the ADSupported subset. + +## Main definitions + +* `minimizeInterval` - Find a lower bound on min f over an interval +* `maximizeInterval` - Find an upper bound on max f over an interval +* Correctness theorems (fully proved for ADSupported) + +## Algorithm + +Branch-and-bound with the following pruning rules: +1. **Interval evaluation**: If f([a,b]) = [lo, hi], then min f ≥ lo +2. **Monotonicity**: If f'([a,b]) > 0, f is increasing, so min is at a +3. **Subdivision**: Split interval and recurse + +-/ + +/-! ### Optimization result -/ + +@[expose] public section + +namespace LeanCert.Engine + +open LeanCert.Core + +/-- Result of an optimization computation -/ +structure OptResult where + /-- Interval containing the optimum value -/ + valueBound : IntervalRat + /-- Interval containing an optimizing point (if found) -/ + argBound : Option IntervalRat + /-- Depth of search performed -/ + depth : ℕ + +/-- Combine two subinterval bounds, preserving their lower and upper bounds. -/ +noncomputable def OptResult.merge (r₁ r₂ : OptResult) : OptResult := + if h : r₁.valueBound.lo ≤ r₂.valueBound.lo then + { valueBound := + { lo := r₁.valueBound.lo + hi := min r₁.valueBound.hi r₂.valueBound.hi + le := by + apply le_min + · exact r₁.valueBound.le + · calc r₁.valueBound.lo ≤ r₂.valueBound.lo := h + _ ≤ r₂.valueBound.hi := r₂.valueBound.le } + argBound := r₁.argBound + depth := max r₁.depth r₂.depth } + else + { valueBound := + { lo := r₂.valueBound.lo + hi := min r₁.valueBound.hi r₂.valueBound.hi + le := by + apply le_min + · calc r₂.valueBound.lo ≤ r₁.valueBound.lo := le_of_lt (not_le.mp h) + _ ≤ r₁.valueBound.hi := r₁.valueBound.le + · exact r₂.valueBound.le } + argBound := r₂.argBound + depth := max r₁.depth r₂.depth } + +/-! ### Minimization -/ + +/-- Check if derivative interval is strictly positive -/ +noncomputable def derivStrictlyPositive (e : Expr) (I : IntervalRat) (varIdx : Nat) : Bool := + let dI := derivInterval e (fun _ => I) varIdx + 0 < dI.lo + +/-- Check if derivative interval is strictly negative -/ +noncomputable def derivStrictlyNegative (e : Expr) (I : IntervalRat) (varIdx : Nat) : Bool := + let dI := derivInterval e (fun _ => I) varIdx + dI.hi < 0 + +/-- Simple branch-and-bound minimization. + +Returns an interval [lo, hi] such that: +- lo ≤ min_{x ∈ I} f(x) +- hi ≥ min_{x ∈ I} f(x) +-/ +noncomputable def minimizeInterval (e : Expr) (I : IntervalRat) (varIdx : Nat) + (maxDepth : ℕ) : OptResult := + go I maxDepth +where + /-- Recursive interval minimization with a decreasing subdivision budget. -/ + go (J : IntervalRat) (depth : ℕ) : OptResult := + if depth = 0 then + -- Base case: just use interval evaluation + { valueBound := LeanCert.Internal.Rational.evalUnchecked1 e J + argBound := some J + depth := maxDepth } + else + -- Check monotonicity + if derivStrictlyPositive e J varIdx then + -- f is increasing, minimum is at left endpoint + { valueBound := LeanCert.Internal.Rational.evalUnchecked1 e (IntervalRat.singleton J.lo) + argBound := some (IntervalRat.singleton J.lo) + depth := maxDepth - depth } + else if derivStrictlyNegative e J varIdx then + -- f is decreasing, minimum is at right endpoint + { valueBound := LeanCert.Internal.Rational.evalUnchecked1 e (IntervalRat.singleton J.hi) + argBound := some (IntervalRat.singleton J.hi) + depth := maxDepth - depth } + else + -- Bisect and take the better bound + let (J₁, J₂) := J.bisect + let r₁ := go J₁ (depth - 1) + let r₂ := go J₂ (depth - 1) + OptResult.merge r₁ r₂ + termination_by depth + decreasing_by all_goals omega + +/-- Base case correctness: interval evaluation gives a valid lower bound. + This theorem is FULLY PROVED - no sorry, no axioms. -/ +theorem minimizeInterval_base_correct (e : Expr) (hsupp : ADSupported e) + (I : IntervalRat) : + ∀ x ∈ I, (LeanCert.Internal.Rational.evalUnchecked1 e I).lo ≤ Expr.eval (fun _ => x) e := by + intro x hx + have h := evalInterval1_correct e hsupp x I hx + simp only [IntervalRat.mem_def] at h + exact h.1 + +/-! ### Derivative bounds and monotonicity -/ + +/-- For single-variable expressions evaluated with (fun _ => I), derivative is correct. + We use evalWithDeriv1 which directly uses varActive for all variables. -/ +theorem derivInterval_correct_evalWithDeriv1 (e : Expr) (hsupp : ADSupported e) + (I : IntervalRat) (x : ℝ) (hx : x ∈ I) : + deriv (evalFunc1 e) x ∈ (evalWithDeriv1 e I).der := by + -- evalWithDeriv1 e I = LeanCert.Internal.AD.evalUnchecked e (fun _ => DualInterval.varActive I) + -- This matches exactly what LeanCert.Engine.evalDualUnchecked_der_correct expects + simp only [evalWithDeriv1] + exact LeanCert.Engine.evalDualUnchecked_der_correct e hsupp I x hx + +/-- Derivative is in derivInterval for expressions that only use var 0. + FULLY PROVED - no sorry. -/ +theorem derivInterval_correct_single (e : Expr) (hsupp : ADSupported e) (hvar0 : UsesOnlyVar0 e) + (I : IntervalRat) (x : ℝ) (hx : x ∈ I) : + deriv (evalFunc1 e) x ∈ derivInterval e (fun _ => I) 0 := by + rw [derivInterval_eq_evalWithDeriv1_of_UsesOnlyVar0 e hvar0] + exact derivInterval_correct_evalWithDeriv1 e hsupp I x hx + +/-- If the derivative interval is strictly positive, derivative is positive everywhere -/ +theorem deriv_pos_on_interval (e : Expr) (hsupp : ADSupported e) (hvar0 : UsesOnlyVar0 e) + (I : IntervalRat) (hpos : 0 < (derivInterval e (fun _ => I) 0).lo) : + ∀ x ∈ I, 0 < deriv (evalFunc1 e) x := by + intro x hx + have hmem := derivInterval_correct_single e hsupp hvar0 I x hx + simp only [IntervalRat.mem_def] at hmem + have hlo_cast : (0 : ℝ) < ((derivInterval e (fun _ => I) 0).lo : ℝ) := by exact_mod_cast hpos + calc (0 : ℝ) < ((derivInterval e (fun _ => I) 0).lo : ℝ) := hlo_cast + _ ≤ deriv (evalFunc1 e) x := hmem.1 + +/-- If the derivative interval is strictly negative, derivative is negative everywhere -/ +theorem deriv_neg_on_interval (e : Expr) (hsupp : ADSupported e) (hvar0 : UsesOnlyVar0 e) + (I : IntervalRat) (hneg : (derivInterval e (fun _ => I) 0).hi < 0) : + ∀ x ∈ I, deriv (evalFunc1 e) x < 0 := by + intro x hx + have hmem := derivInterval_correct_single e hsupp hvar0 I x hx + simp only [IntervalRat.mem_def] at hmem + have hhi_cast : ((derivInterval e (fun _ => I) 0).hi : ℝ) < (0 : ℝ) := by exact_mod_cast hneg + calc deriv (evalFunc1 e) x ≤ ((derivInterval e (fun _ => I) 0).hi : ℝ) := hmem.2 + _ < 0 := hhi_cast + +/-- Strictly positive derivative implies strict monotonicity -/ +theorem strictMonoOn_of_deriv_pos_interval (e : Expr) (hsupp : ADSupported e) (hvar0 : + UsesOnlyVar0 e) + (I : IntervalRat) (hpos : 0 < (derivInterval e (fun _ => I) 0).lo) : + StrictMonoOn (evalFunc1 e) (Set.Icc (I.lo : ℝ) (I.hi : ℝ)) := by + have hdiff := evalFunc1_differentiable e hsupp + have hderiv_pos := deriv_pos_on_interval e hsupp hvar0 I hpos + apply strictMonoOn_of_deriv_pos (convex_Icc _ _) + · exact hdiff.continuous.continuousOn + · intro x hx + -- Interior of Icc is Ioo, and Ioo ⊆ Icc + rw [interior_Icc] at hx + have hx_mem : x ∈ I := by + simp only [IntervalRat.mem_def] + exact ⟨le_of_lt hx.1, le_of_lt hx.2⟩ + exact hderiv_pos x hx_mem + +/-- Strictly negative derivative implies strict antitonicity -/ +theorem strictAntiOn_of_deriv_neg_interval (e : Expr) (hsupp : ADSupported e) (hvar0 : + UsesOnlyVar0 e) + (I : IntervalRat) (hneg : (derivInterval e (fun _ => I) 0).hi < 0) : + StrictAntiOn (evalFunc1 e) (Set.Icc (I.lo : ℝ) (I.hi : ℝ)) := by + have hdiff := evalFunc1_differentiable e hsupp + have hderiv_neg := deriv_neg_on_interval e hsupp hvar0 I hneg + apply strictAntiOn_of_deriv_neg (convex_Icc _ _) + · exact hdiff.continuous.continuousOn + · intro x hx + -- Interior of Icc is Ioo + rw [interior_Icc] at hx + have hx_mem : x ∈ I := by + simp only [IntervalRat.mem_def] + exact ⟨le_of_lt hx.1, le_of_lt hx.2⟩ + exact hderiv_neg x hx_mem + +/-! ### Monotonicity-based bounds -/ + +/-- For increasing functions, minimum is at the left endpoint -/ +theorem increasing_min_at_left (e : Expr) (hsupp : ADSupported e) (hvar0 : UsesOnlyVar0 e) + (I : IntervalRat) (hpos : 0 < (derivInterval e (fun _ => I) 0).lo) : + ∀ x ∈ I, evalFunc1 e I.lo ≤ evalFunc1 e x := by + intro x hx + have hmono := strictMonoOn_of_deriv_pos_interval e hsupp hvar0 I hpos + simp only [IntervalRat.mem_def] at hx + by_cases heq : (I.lo : ℝ) = x + · rw [heq] + · apply le_of_lt + apply hmono + · simp only [Set.mem_Icc] + exact ⟨le_refl _, Rat.cast_le.mpr I.le⟩ + · simp only [Set.mem_Icc]; exact hx + · exact lt_of_le_of_ne hx.1 heq + +/-- For decreasing functions, minimum is at the right endpoint -/ +theorem decreasing_min_at_right (e : Expr) (hsupp : ADSupported e) (hvar0 : UsesOnlyVar0 e) + (I : IntervalRat) (hneg : (derivInterval e (fun _ => I) 0).hi < 0) : + ∀ x ∈ I, evalFunc1 e I.hi ≤ evalFunc1 e x := by + intro x hx + have hmono := strictAntiOn_of_deriv_neg_interval e hsupp hvar0 I hneg + simp only [IntervalRat.mem_def] at hx + by_cases heq : x = (I.hi : ℝ) + · rw [heq] + · apply le_of_lt + apply hmono + · simp only [Set.mem_Icc]; exact hx + · simp only [Set.mem_Icc]; exact ⟨(Rat.cast_le.mpr I.le), le_refl _⟩ + · exact lt_of_le_of_ne hx.2 heq + +/-- Interval at left endpoint gives valid lower bound for increasing functions -/ +theorem increasing_endpoint_bound (e : Expr) (hsupp : ADSupported e) (hvar0 : UsesOnlyVar0 e) + (I : IntervalRat) (hpos : 0 < (derivInterval e (fun _ => I) 0).lo) : + ∀ x ∈ I, (LeanCert.Internal.Rational.evalUnchecked1 e (IntervalRat.singleton I.lo)).lo ≤ + Expr.eval (fun _ => x) e := by + intro x hx + have hlo_mem : (I.lo : ℝ) ∈ IntervalRat.singleton I.lo := IntervalRat.mem_singleton I.lo + have heval := evalInterval1_correct e hsupp I.lo (IntervalRat.singleton I.lo) hlo_mem + simp only [IntervalRat.mem_def] at heval + have hmin := increasing_min_at_left e hsupp hvar0 I hpos x hx + simp only [evalFunc1] at hmin + calc (LeanCert.Internal.Rational.evalUnchecked1 e (IntervalRat.singleton I.lo)).lo + ≤ Expr.eval (fun _ => I.lo) e := by exact_mod_cast heval.1 + _ ≤ Expr.eval (fun _ => x) e := hmin + +/-- Interval at right endpoint gives valid lower bound for decreasing functions -/ +theorem decreasing_endpoint_bound (e : Expr) (hsupp : ADSupported e) (hvar0 : UsesOnlyVar0 e) + (I : IntervalRat) (hneg : (derivInterval e (fun _ => I) 0).hi < 0) : + ∀ x ∈ I, (LeanCert.Internal.Rational.evalUnchecked1 e (IntervalRat.singleton I.hi)).lo ≤ + Expr.eval (fun _ => x) e := by + intro x hx + have hhi_mem : (I.hi : ℝ) ∈ IntervalRat.singleton I.hi := IntervalRat.mem_singleton I.hi + have heval := evalInterval1_correct e hsupp I.hi (IntervalRat.singleton I.hi) hhi_mem + simp only [IntervalRat.mem_def] at heval + have hmin := decreasing_min_at_right e hsupp hvar0 I hneg x hx + simp only [evalFunc1] at hmin + calc (LeanCert.Internal.Rational.evalUnchecked1 e (IntervalRat.singleton I.hi)).lo + ≤ Expr.eval (fun _ => I.hi) e := by exact_mod_cast heval.1 + _ ≤ Expr.eval (fun _ => x) e := hmin + +/-! ### Full optimization correctness -/ + +/-- Helper lemma for go correctness. + FULLY PROVED for varIdx = 0 and UsesOnlyVar0 expressions. -/ +theorem minimizeInterval_go_correct (e : Expr) (hsupp : ADSupported e) (hvar0 : UsesOnlyVar0 e) + (maxDepth : ℕ) (depth : ℕ) (J : IntervalRat) : + ∀ x ∈ J, (minimizeInterval.go e 0 maxDepth J depth).valueBound.lo + ≤ Expr.eval (fun _ => x) e := by + induction depth generalizing J with + | zero => + -- Base case: depth = 0, just use interval evaluation + intro x hx + simp only [minimizeInterval.go, ↓reduceIte] + exact minimizeInterval_base_correct e hsupp J x hx + | succ n ih => + intro x hx + -- Unfold the go definition for succ case + -- Note: n + 1 ≠ 0, so we skip the first branch + have hdepth : n + 1 ≠ 0 := Nat.succ_ne_zero n + rw [minimizeInterval.go] + simp only [hdepth, ↓reduceIte, OptResult.merge, Nat.add_sub_cancel] + -- Now we branch on the derivative conditions + split_ifs with hpos hneg hle + · -- Derivative strictly positive: increasing function + have hpos' : 0 < (derivInterval e (fun _ => J) 0).lo := by + simp only [derivStrictlyPositive, decide_eq_true_eq] at hpos + exact hpos + exact increasing_endpoint_bound e hsupp hvar0 J hpos' x hx + · -- Derivative strictly negative: decreasing function + have hneg' : (derivInterval e (fun _ => J) 0).hi < 0 := by + simp only [derivStrictlyNegative, decide_eq_true_eq] at hneg + exact hneg + exact decreasing_endpoint_bound e hsupp hvar0 J hneg' x hx + · -- Bisection case, hle (r₁.lo ≤ r₂.lo) + -- x is in one of the bisected intervals + have hcases := IntervalRat.mem_bisect_or hx + cases hcases with + | inl h1 => exact ih J.bisect.1 x h1 + | inr h2 => + have h := ih J.bisect.2 x h2 + have hle_cast : ((minimizeInterval.go e 0 maxDepth (J.bisect.fst) n).valueBound.lo : ℝ) + ≤ (minimizeInterval.go e 0 maxDepth (J.bisect.snd) n).valueBound.lo := by + exact_mod_cast hle + calc ((minimizeInterval.go e 0 maxDepth (J.bisect.fst) n).valueBound.lo : ℝ) + ≤ (minimizeInterval.go e 0 maxDepth (J.bisect.snd) n).valueBound.lo := hle_cast + _ ≤ Expr.eval (fun _ => x) e := h + · -- Bisection case, ¬hle (r₁.lo > r₂.lo) + have hcases := IntervalRat.mem_bisect_or hx + cases hcases with + | inl h1 => + have h := ih J.bisect.1 x h1 + have hlt := not_le.mp hle + have hlt_cast : ((minimizeInterval.go e 0 maxDepth (J.bisect.snd) n).valueBound.lo : ℝ) + ≤ (minimizeInterval.go e 0 maxDepth (J.bisect.fst) n).valueBound.lo := by + exact_mod_cast (le_of_lt hlt) + calc ((minimizeInterval.go e 0 maxDepth (J.bisect.snd) n).valueBound.lo : ℝ) + ≤ (minimizeInterval.go e 0 maxDepth (J.bisect.fst) n).valueBound.lo := hlt_cast + _ ≤ Expr.eval (fun _ => x) e := h + | inr h2 => exact ih J.bisect.2 x h2 + +/-- Correctness: the minimum is in the computed interval. + FULLY PROVED for varIdx = 0 and UsesOnlyVar0 expressions. -/ +theorem minimizeInterval_correct (e : Expr) (hsupp : ADSupported e) (hvar0 : UsesOnlyVar0 e) + (I : IntervalRat) + (maxDepth : ℕ) : + ∀ x ∈ I, (minimizeInterval e I 0 maxDepth).valueBound.lo ≤ Expr.eval (fun _ => x) e := by + simp only [minimizeInterval] + exact minimizeInterval_go_correct e hsupp hvar0 maxDepth maxDepth I + +/-! ### Maximization -/ + +/-- Maximize by minimizing the negation -/ +noncomputable def maximizeInterval (e : Expr) (I : IntervalRat) (varIdx : Nat) + (maxDepth : ℕ) : OptResult := + let negResult := minimizeInterval (Expr.neg e) I varIdx maxDepth + { valueBound := IntervalRat.neg negResult.valueBound + argBound := negResult.argBound + depth := negResult.depth } + +/-- Correctness: the maximum is in the computed interval. + FULLY PROVED for varIdx = 0 and UsesOnlyVar0 expressions. -/ +theorem maximizeInterval_correct (e : Expr) (hsupp : ADSupported e) (hvar0 : UsesOnlyVar0 e) + (I : IntervalRat) + (maxDepth : ℕ) : + ∀ x ∈ I, Expr.eval (fun _ => x) e ≤ (maximizeInterval e I 0 maxDepth).valueBound.hi := by + intro x hx + -- max f = -min(-f) + -- result.valueBound = neg (minimizeInterval (neg e) ...).valueBound + -- result.valueBound.hi = -(minimizeInterval (neg e) ...).valueBound.lo + -- We need: f(x) ≤ result.valueBound.hi + -- = -(minimizeInterval (neg e) ...).valueBound.lo + -- Equivalently: (minimizeInterval (neg e) ...).valueBound.lo ≤ -f(x) + have hneg_supp : ADSupported (Expr.neg e) := ADSupported.neg hsupp + have hneg_var0 : UsesOnlyVar0 (Expr.neg e) := UsesOnlyVar0.neg e hvar0 + have hmin := minimizeInterval_correct (Expr.neg e) hneg_supp hneg_var0 I maxDepth x hx + simp only [Expr.eval_neg] at hmin + -- hmin: (minimizeInterval (neg e) ...).valueBound.lo ≤ -f(x) + -- Need: f(x) ≤ (maximizeInterval e ...).valueBound.hi + -- = -(minimizeInterval (neg e) ...).valueBound.lo + simp only [maximizeInterval, IntervalRat.neg] + -- Goal: f(x) ≤ ↑(-(minimizeInterval (neg e) ...).valueBound.lo) + -- From hmin: ↑(minimizeInterval (neg e) ...).valueBound.lo ≤ -f(x) + -- So: f(x) ≤ -(minimizeInterval (neg e) ...).valueBound.lo + have h : Expr.eval (fun _ => x) e ≤ + -(((minimizeInterval (Expr.neg e) I 0 maxDepth).valueBound.lo) : ℝ) := by + have hcast : (((minimizeInterval (Expr.neg e) I 0 maxDepth).valueBound.lo) : ℝ) + ≤ -Expr.eval (fun _ => x) e := hmin + linarith + convert h using 1 + -- Need: ↑(-(minimizeInterval e.neg I 0 maxDepth).valueBound.lo) = + -- -↑(minimizeInterval e.neg I 0 maxDepth).valueBound.lo + simp only [Rat.cast_neg] + +/-! ### Bounds checking -/ + +/-- Check if f(x) ≥ c for all x in I -/ +noncomputable def checkLowerBound (e : Expr) (I : IntervalRat) (c : ℚ) (varIdx : Nat) + (maxDepth : ℕ) : Bool := + let result := minimizeInterval e I varIdx maxDepth + c ≤ result.valueBound.lo + +/-- Check if f(x) ≤ c for all x in I -/ +noncomputable def checkUpperBound (e : Expr) (I : IntervalRat) (c : ℚ) (varIdx : Nat) + (maxDepth : ℕ) : Bool := + let result := maximizeInterval e I varIdx maxDepth + result.valueBound.hi ≤ c + +/-! ## N-Variable Optimization Infrastructure + +The following section provides generalized optimization infrastructure that works +with arbitrary variable indices and multi-variable environments. This allows +optimizing along any coordinate while holding other variables fixed. + +Key types: +- `IntervalEnv := Nat → IntervalRat` - maps variable indices to intervals +- `evalAlong e ρ idx` - evaluates `e` as a function of variable `idx` + +The main advantage is that we can now optimize expressions with multiple variables +by fixing all but one variable and optimizing along that coordinate. +-/ + +/-! ### N-variable derivative bounds -/ + +/-- If the derivative interval along `idx` is strictly positive, derivative is positive everywhere. + Generalized version that works with any variable index and environment. -/ +theorem deriv_pos_on_interval_idx (e : Expr) (hsupp : ADSupported e) + (ρ_real : Nat → ℝ) (ρ_int : IntervalEnv) (idx : Nat) + (hρ : ∀ i, ρ_real i ∈ ρ_int i) + (hpos : 0 < (derivInterval e ρ_int idx).lo) : + ∀ x ∈ ρ_int idx, 0 < deriv (Expr.evalAlong e ρ_real idx) x := by + intro x hx + have hmem := derivInterval_correct_idx e hsupp ρ_real ρ_int idx hρ x hx + simp only [IntervalRat.mem_def] at hmem + have hlo_cast : (0 : ℝ) < ((derivInterval e ρ_int idx).lo : ℝ) := by exact_mod_cast hpos + calc (0 : ℝ) < ((derivInterval e ρ_int idx).lo : ℝ) := hlo_cast + _ ≤ deriv (Expr.evalAlong e ρ_real idx) x := hmem.1 + +/-- If the derivative interval along `idx` is strictly negative, derivative is negative everywhere. + Generalized version that works with any variable index and environment. -/ +theorem deriv_neg_on_interval_idx (e : Expr) (hsupp : ADSupported e) + (ρ_real : Nat → ℝ) (ρ_int : IntervalEnv) (idx : Nat) + (hρ : ∀ i, ρ_real i ∈ ρ_int i) + (hneg : (derivInterval e ρ_int idx).hi < 0) : + ∀ x ∈ ρ_int idx, deriv (Expr.evalAlong e ρ_real idx) x < 0 := by + intro x hx + have hmem := derivInterval_correct_idx e hsupp ρ_real ρ_int idx hρ x hx + simp only [IntervalRat.mem_def] at hmem + have hhi_cast : ((derivInterval e ρ_int idx).hi : ℝ) < (0 : ℝ) := by exact_mod_cast hneg + calc deriv (Expr.evalAlong e ρ_real idx) x ≤ ((derivInterval e ρ_int idx).hi : ℝ) := hmem.2 + _ < 0 := hhi_cast + +/-- Strictly positive derivative along `idx` implies strict monotonicity. + Generalized n-variable version. -/ +theorem strictMonoOn_of_deriv_pos_interval_idx (e : Expr) (hsupp : ADSupported e) + (ρ_real : Nat → ℝ) (ρ_int : IntervalEnv) (idx : Nat) + (hρ : ∀ i, ρ_real i ∈ ρ_int i) + (hpos : 0 < (derivInterval e ρ_int idx).lo) : + StrictMonoOn (Expr.evalAlong e ρ_real idx) + (Set.Icc ((ρ_int idx).lo : ℝ) ((ρ_int idx).hi : ℝ)) := by + have hdiff := evalAlong_differentiable e hsupp ρ_real idx + have hderiv_pos := deriv_pos_on_interval_idx e hsupp ρ_real ρ_int idx hρ hpos + apply strictMonoOn_of_deriv_pos (convex_Icc _ _) + · exact hdiff.continuous.continuousOn + · intro x hx + rw [interior_Icc] at hx + have hx_mem : x ∈ ρ_int idx := by + simp only [IntervalRat.mem_def] + exact ⟨le_of_lt hx.1, le_of_lt hx.2⟩ + exact hderiv_pos x hx_mem + +/-- Strictly negative derivative along `idx` implies strict antitonicity. + Generalized n-variable version. -/ +theorem strictAntiOn_of_deriv_neg_interval_idx (e : Expr) (hsupp : ADSupported e) + (ρ_real : Nat → ℝ) (ρ_int : IntervalEnv) (idx : Nat) + (hρ : ∀ i, ρ_real i ∈ ρ_int i) + (hneg : (derivInterval e ρ_int idx).hi < 0) : + StrictAntiOn (Expr.evalAlong e ρ_real idx) + (Set.Icc ((ρ_int idx).lo : ℝ) ((ρ_int idx).hi : ℝ)) := by + have hdiff := evalAlong_differentiable e hsupp ρ_real idx + have hderiv_neg := deriv_neg_on_interval_idx e hsupp ρ_real ρ_int idx hρ hneg + apply strictAntiOn_of_deriv_neg (convex_Icc _ _) + · exact hdiff.continuous.continuousOn + · intro x hx + rw [interior_Icc] at hx + have hx_mem : x ∈ ρ_int idx := by + simp only [IntervalRat.mem_def] + exact ⟨le_of_lt hx.1, le_of_lt hx.2⟩ + exact hderiv_neg x hx_mem + +/-! ### N-variable monotonicity-based bounds -/ + +/-- For increasing functions along `idx`, minimum is at the left endpoint. + Generalized n-variable version. -/ +theorem increasing_min_at_left_idx (e : Expr) (hsupp : ADSupported e) + (ρ_real : Nat → ℝ) (ρ_int : IntervalEnv) (idx : Nat) + (hρ : ∀ i, ρ_real i ∈ ρ_int i) + (hpos : 0 < (derivInterval e ρ_int idx).lo) : + ∀ x ∈ ρ_int idx, + Expr.evalAlong e ρ_real idx (ρ_int idx).lo ≤ Expr.evalAlong e ρ_real idx x := by + intro x hx + have hmono := strictMonoOn_of_deriv_pos_interval_idx e hsupp ρ_real ρ_int idx hρ hpos + simp only [IntervalRat.mem_def] at hx + by_cases heq : ((ρ_int idx).lo : ℝ) = x + · rw [heq] + · apply le_of_lt + apply hmono + · simp only [Set.mem_Icc] + exact ⟨le_refl _, Rat.cast_le.mpr (ρ_int idx).le⟩ + · simp only [Set.mem_Icc]; exact hx + · exact lt_of_le_of_ne hx.1 heq + +/-- For decreasing functions along `idx`, minimum is at the right endpoint. + Generalized n-variable version. -/ +theorem decreasing_min_at_right_idx (e : Expr) (hsupp : ADSupported e) + (ρ_real : Nat → ℝ) (ρ_int : IntervalEnv) (idx : Nat) + (hρ : ∀ i, ρ_real i ∈ ρ_int i) + (hneg : (derivInterval e ρ_int idx).hi < 0) : + ∀ x ∈ ρ_int idx, + Expr.evalAlong e ρ_real idx (ρ_int idx).hi ≤ Expr.evalAlong e ρ_real idx x := by + intro x hx + have hmono := strictAntiOn_of_deriv_neg_interval_idx e hsupp ρ_real ρ_int idx hρ hneg + simp only [IntervalRat.mem_def] at hx + by_cases heq : x = ((ρ_int idx).hi : ℝ) + · rw [heq] + · apply le_of_lt + apply hmono + · simp only [Set.mem_Icc]; exact hx + · simp only [Set.mem_Icc]; exact ⟨(Rat.cast_le.mpr (ρ_int idx).le), le_refl _⟩ + · exact lt_of_le_of_ne hx.2 heq + +/-! ### N-variable minimization algorithm -/ + +/-- Check if derivative interval along `idx` is strictly positive -/ +noncomputable def derivStrictlyPositiveIdx (e : Expr) (ρ : IntervalEnv) (idx : Nat) : Bool := + let dI := derivInterval e ρ idx + 0 < dI.lo + +/-- Check if derivative interval along `idx` is strictly negative -/ +noncomputable def derivStrictlyNegativeIdx (e : Expr) (ρ : IntervalEnv) (idx : Nat) : Bool := + let dI := derivInterval e ρ idx + dI.hi < 0 + +/-- Update an interval environment at a specific index -/ +def updateIntervalEnv (ρ : IntervalEnv) (idx : Nat) (J : IntervalRat) : IntervalEnv := + fun i => if i = idx then J else ρ i + +/-- N-variable branch-and-bound minimization along coordinate `idx`. + +Returns an interval [lo, hi] such that for any ρ_real with ρ_real i ∈ ρ i: +- lo ≤ min_{t ∈ ρ idx} evalAlong e ρ_real idx t +- hi ≥ min_{t ∈ ρ idx} evalAlong e ρ_real idx t +-/ +noncomputable def minimizeIntervalIdx (e : Expr) (ρ : IntervalEnv) (idx : Nat) + (maxDepth : ℕ) : OptResult := + go (ρ idx) maxDepth +where + /-- Recursive coordinate minimization with a decreasing subdivision budget. -/ + go (J : IntervalRat) (depth : ℕ) : OptResult := + let ρ' := updateIntervalEnv ρ idx J + if depth = 0 then + -- Base case: just use interval evaluation + { valueBound := LeanCert.Internal.Rational.evalUnchecked e ρ' + argBound := some J + depth := maxDepth } + else + -- Check monotonicity along idx + if derivStrictlyPositiveIdx e ρ' idx then + -- f is increasing along idx, minimum is at left endpoint + let ρ_lo := updateIntervalEnv ρ idx (IntervalRat.singleton J.lo) + { valueBound := LeanCert.Internal.Rational.evalUnchecked e ρ_lo + argBound := some (IntervalRat.singleton J.lo) + depth := maxDepth - depth } + else if derivStrictlyNegativeIdx e ρ' idx then + -- f is decreasing along idx, minimum is at right endpoint + let ρ_hi := updateIntervalEnv ρ idx (IntervalRat.singleton J.hi) + { valueBound := LeanCert.Internal.Rational.evalUnchecked e ρ_hi + argBound := some (IntervalRat.singleton J.hi) + depth := maxDepth - depth } + else + -- Bisect and take the better bound + let (J₁, J₂) := J.bisect + let r₁ := go J₁ (depth - 1) + let r₂ := go J₂ (depth - 1) + OptResult.merge r₁ r₂ + termination_by depth + decreasing_by all_goals omega + +/-! ### N-variable minimization correctness -/ + +/-- Base case correctness for n-variable optimization. + Interval evaluation gives a valid lower bound. -/ +theorem minimizeIntervalIdx_base_correct (e : Expr) (hsupp : ADSupported e) + (ρ_int : IntervalEnv) : + ∀ ρ_real : Nat → ℝ, (∀ i, ρ_real i ∈ ρ_int i) → + (LeanCert.Internal.Rational.evalUnchecked e ρ_int).lo ≤ Expr.eval ρ_real e := by + intro ρ_real hρ + have h := evalInterval_correct e hsupp ρ_real ρ_int hρ + simp only [IntervalRat.mem_def] at h + exact h.1 + +/-- Helper lemma for go correctness in n-variable setting -/ +theorem minimizeIntervalIdx_go_correct (e : Expr) (hsupp : ADSupported e) + (ρ_int : IntervalEnv) (idx : Nat) (maxDepth depth : ℕ) (J : IntervalRat) + (hJ_sub : ∀ t, t ∈ J → t ∈ ρ_int idx) : + ∀ ρ_real : Nat → ℝ, (∀ i, ρ_real i ∈ ρ_int i) → + ∀ t ∈ J, + (minimizeIntervalIdx.go e ρ_int idx maxDepth J depth).valueBound.lo + ≤ Expr.eval (Expr.updateVar ρ_real idx t) e := by + induction depth generalizing J with + | zero => + intro ρ_real hρ t ht + rw [minimizeIntervalIdx.go] + simp only [↓reduceIte] + -- Base case: interval evaluation bounds all points + have hρ' : ∀ i, (Expr.updateVar ρ_real idx t) i ∈ (updateIntervalEnv ρ_int idx J) i := by + intro i + simp only [Expr.updateVar, updateIntervalEnv] + split_ifs with hi + · exact ht + · exact hρ i + have heval := evalInterval_correct e hsupp (Expr.updateVar ρ_real idx t) (updateIntervalEnv + ρ_int idx J) hρ' + simp only [IntervalRat.mem_def] at heval + exact heval.1 + | succ n ih => + intro ρ_real hρ t ht + have hdepth : n + 1 ≠ 0 := Nat.succ_ne_zero n + rw [minimizeIntervalIdx.go] + simp only [hdepth, ↓reduceIte, OptResult.merge, Nat.add_sub_cancel] + -- Note: ρ' in the go function is updateIntervalEnv ρ_int idx J + split_ifs with hpos hneg hle + · -- Derivative strictly positive: increasing function + -- hpos : derivStrictlyPositiveIdx e (updateIntervalEnv ρ_int idx J) idx = true + have hpos' : 0 < (derivInterval e (updateIntervalEnv ρ_int idx J) idx).lo := by + simp only [derivStrictlyPositiveIdx, decide_eq_true_eq] at hpos + exact hpos + have hρ_lo : ∀ i, (Expr.updateVar ρ_real idx J.lo) i ∈ + (updateIntervalEnv ρ_int idx (IntervalRat.singleton J.lo)) i := by + intro i + simp only [Expr.updateVar, updateIntervalEnv] + split_ifs with hi + · exact IntervalRat.mem_singleton _ + · exact hρ i + have heval := evalInterval_correct e hsupp (Expr.updateVar ρ_real idx J.lo) + (updateIntervalEnv ρ_int idx (IntervalRat.singleton J.lo)) hρ_lo + simp only [IntervalRat.mem_def] at heval + -- Build membership for the derivative bound + -- We use a modified ρ_real that has J.lo at index idx, since ρ_real idx is never used + -- in the derivative computation (it gets replaced by the variable of differentiation) + let ρ_real' := Expr.updateVar ρ_real idx (J.lo : ℝ) + have hρ'_deriv : ∀ i, ρ_real' i ∈ (updateIntervalEnv ρ_int idx J) i := by + intro i + simp only [ρ_real', Expr.updateVar, updateIntervalEnv] + split_ifs with hi + · -- At idx: J.lo ∈ J + simp only [IntervalRat.mem_def, Rat.cast_le] + exact ⟨le_refl _, J.le⟩ + · exact hρ i + -- Since evalAlong replaces ρ_real' idx with the variable x, monotonicity for ρ_real' + -- is the same as for ρ_real + have hmono' := strictMonoOn_of_deriv_pos_interval_idx e hsupp ρ_real' + (updateIntervalEnv ρ_int idx J) idx hρ'_deriv hpos' + -- evalAlong e ρ_real idx = evalAlong e ρ_real' idx because only ρ(idx) differs + -- and evalAlong replaces it with the function argument + have heq_along : ∀ x, Expr.evalAlong e ρ_real idx x = Expr.evalAlong e ρ_real' idx x := by + intro x + simp only [Expr.evalAlong] + congr 1 + funext i + simp only [Expr.updateVar, ρ_real'] + split_ifs with h1 + · rfl -- i = idx: both give x + · rfl -- i ≠ idx: both give ρ_real i + have hmono : StrictMonoOn (Expr.evalAlong e ρ_real idx) + (Set.Icc ((updateIntervalEnv ρ_int idx J idx).lo : ℝ) + ((updateIntervalEnv ρ_int idx J idx).hi : ℝ)) := by + intro x hx y hy hxy + rw [heq_along x, heq_along y] + exact hmono' hx hy hxy + simp only [IntervalRat.mem_def] at ht + by_cases heq : (J.lo : ℝ) = t + · calc (LeanCert.Internal.Rational.evalUnchecked e (updateIntervalEnv ρ_int idx + (IntervalRat.singleton J.lo))).lo + ≤ Expr.eval (Expr.updateVar ρ_real idx J.lo) e := heval.1 + _ = Expr.eval (Expr.updateVar ρ_real idx t) e := by rw [← heq] + · have hlt : (J.lo : ℝ) < t := lt_of_le_of_ne ht.1 heq + have hJlo_mem : (J.lo : ℝ) ∈ Set.Icc ((updateIntervalEnv ρ_int idx J idx).lo : ℝ) + ((updateIntervalEnv ρ_int idx J idx).hi) := by + simp only [Set.mem_Icc, updateIntervalEnv, ↓reduceIte] + exact ⟨le_refl _, Rat.cast_le.mpr J.le⟩ + have ht_mem : t ∈ Set.Icc ((updateIntervalEnv ρ_int idx J idx).lo : ℝ) + ((updateIntervalEnv ρ_int idx J idx).hi) := by + simp only [Set.mem_Icc, updateIntervalEnv, ↓reduceIte] + exact ht + have hmono_at := hmono hJlo_mem ht_mem hlt + simp only [Expr.evalAlong] at hmono_at + calc (LeanCert.Internal.Rational.evalUnchecked e (updateIntervalEnv ρ_int idx + (IntervalRat.singleton J.lo))).lo + ≤ Expr.eval (Expr.updateVar ρ_real idx J.lo) e := heval.1 + _ ≤ Expr.eval (Expr.updateVar ρ_real idx t) e := le_of_lt hmono_at + · -- Derivative strictly negative: decreasing function + have hneg' : (derivInterval e (updateIntervalEnv ρ_int idx J) idx).hi < 0 := by + simp only [derivStrictlyNegativeIdx, decide_eq_true_eq] at hneg + exact hneg + have hρ_hi : ∀ i, (Expr.updateVar ρ_real idx J.hi) i ∈ + (updateIntervalEnv ρ_int idx (IntervalRat.singleton J.hi)) i := by + intro i + simp only [Expr.updateVar, updateIntervalEnv] + split_ifs with hi + · exact IntervalRat.mem_singleton _ + · exact hρ i + have heval := evalInterval_correct e hsupp (Expr.updateVar ρ_real idx J.hi) + (updateIntervalEnv ρ_int idx (IntervalRat.singleton J.hi)) hρ_hi + simp only [IntervalRat.mem_def] at heval + -- We use a modified ρ_real that has J.hi at index idx + let ρ_real' := Expr.updateVar ρ_real idx (J.hi : ℝ) + have hρ'_deriv : ∀ i, ρ_real' i ∈ (updateIntervalEnv ρ_int idx J) i := by + intro i + simp only [ρ_real', Expr.updateVar, updateIntervalEnv] + split_ifs with hi + · simp only [IntervalRat.mem_def, Rat.cast_le] + exact ⟨J.le, le_refl _⟩ + · exact hρ i + have hmono' := strictAntiOn_of_deriv_neg_interval_idx e hsupp ρ_real' + (updateIntervalEnv ρ_int idx J) idx hρ'_deriv hneg' + have heq_along : ∀ x, Expr.evalAlong e ρ_real idx x = Expr.evalAlong e ρ_real' idx x := by + intro x + simp only [Expr.evalAlong] + congr 1 + funext i + simp only [Expr.updateVar, ρ_real'] + split_ifs with h1 + · rfl + · rfl + have hmono : StrictAntiOn (Expr.evalAlong e ρ_real idx) + (Set.Icc ((updateIntervalEnv ρ_int idx J idx).lo : ℝ) + ((updateIntervalEnv ρ_int idx J idx).hi : ℝ)) := by + intro x hx y hy hxy + rw [heq_along x, heq_along y] + exact hmono' hx hy hxy + simp only [IntervalRat.mem_def] at ht + by_cases heq : t = (J.hi : ℝ) + · calc (LeanCert.Internal.Rational.evalUnchecked e (updateIntervalEnv ρ_int idx + (IntervalRat.singleton J.hi))).lo + ≤ Expr.eval (Expr.updateVar ρ_real idx J.hi) e := heval.1 + _ = Expr.eval (Expr.updateVar ρ_real idx t) e := by rw [← heq] + · have hlt : t < (J.hi : ℝ) := lt_of_le_of_ne ht.2 heq + have ht_mem : t ∈ Set.Icc ((updateIntervalEnv ρ_int idx J idx).lo : ℝ) + ((updateIntervalEnv ρ_int idx J idx).hi) := by + simp only [Set.mem_Icc, updateIntervalEnv, ↓reduceIte] + exact ht + have hJhi_mem : (J.hi : ℝ) ∈ Set.Icc ((updateIntervalEnv ρ_int idx J idx).lo : ℝ) + ((updateIntervalEnv ρ_int idx J idx).hi) := by + simp only [Set.mem_Icc, updateIntervalEnv, ↓reduceIte] + exact ⟨Rat.cast_le.mpr J.le, le_refl _⟩ + have hmono_at := hmono ht_mem hJhi_mem hlt + simp only [Expr.evalAlong] at hmono_at + calc (LeanCert.Internal.Rational.evalUnchecked e (updateIntervalEnv ρ_int idx + (IntervalRat.singleton J.hi))).lo + ≤ Expr.eval (Expr.updateVar ρ_real idx J.hi) e := heval.1 + _ ≤ Expr.eval (Expr.updateVar ρ_real idx t) e := le_of_lt hmono_at + · -- Bisection case, hle (r₁.lo ≤ r₂.lo) + have hcases := IntervalRat.mem_bisect_or ht + cases hcases with + | inl h1 => + have hsub1 : ∀ s, s ∈ J.bisect.1 → s ∈ ρ_int idx := fun s hs => + hJ_sub s (IntervalRat.mem_of_mem_bisect_left hs) + exact ih J.bisect.1 hsub1 ρ_real hρ t h1 + | inr h2 => + have hsub2 : ∀ s, s ∈ J.bisect.2 → s ∈ ρ_int idx := fun s hs => + hJ_sub s (IntervalRat.mem_of_mem_bisect_right hs) + have h := ih J.bisect.2 hsub2 ρ_real hρ t h2 + have hle_cast : ((minimizeIntervalIdx.go e ρ_int idx maxDepth (J.bisect.fst) + n).valueBound.lo : ℝ) + ≤ (minimizeIntervalIdx.go e ρ_int idx maxDepth (J.bisect.snd) n).valueBound.lo := by + exact_mod_cast hle + calc ((minimizeIntervalIdx.go e ρ_int idx maxDepth (J.bisect.fst) n).valueBound.lo : ℝ) + ≤ (minimizeIntervalIdx.go e ρ_int idx maxDepth (J.bisect.snd) n).valueBound.lo := + hle_cast + _ ≤ Expr.eval (Expr.updateVar ρ_real idx t) e := h + · -- Bisection case, ¬hle (r₁.lo > r₂.lo) + have hcases := IntervalRat.mem_bisect_or ht + cases hcases with + | inl h1 => + have hsub1 : ∀ s, s ∈ J.bisect.1 → s ∈ ρ_int idx := fun s hs => + hJ_sub s (IntervalRat.mem_of_mem_bisect_left hs) + have h := ih J.bisect.1 hsub1 ρ_real hρ t h1 + have hlt := not_le.mp hle + have hlt_cast : ((minimizeIntervalIdx.go e ρ_int idx maxDepth (J.bisect.snd) + n).valueBound.lo : ℝ) + ≤ (minimizeIntervalIdx.go e ρ_int idx maxDepth (J.bisect.fst) n).valueBound.lo := by + exact_mod_cast (le_of_lt hlt) + calc ((minimizeIntervalIdx.go e ρ_int idx maxDepth (J.bisect.snd) n).valueBound.lo : ℝ) + ≤ (minimizeIntervalIdx.go e ρ_int idx maxDepth (J.bisect.fst) n).valueBound.lo := + hlt_cast + _ ≤ Expr.eval (Expr.updateVar ρ_real idx t) e := h + | inr h2 => + have hsub2 : ∀ s, s ∈ J.bisect.2 → s ∈ ρ_int idx := fun s hs => + hJ_sub s (IntervalRat.mem_of_mem_bisect_right hs) + exact ih J.bisect.2 hsub2 ρ_real hρ t h2 + +/-- Correctness theorem for n-variable minimization: + For any real environment ρ_real satisfying ρ_int, and any t in ρ_int idx, + the computed lower bound is valid. + + FULLY PROVED - no sorry, no axioms. -/ +theorem minimizeIntervalIdx_correct (e : Expr) (hsupp : ADSupported e) + (ρ_int : IntervalEnv) (idx : Nat) (maxDepth : ℕ) : + ∀ ρ_real : Nat → ℝ, (∀ i, ρ_real i ∈ ρ_int i) → + ∀ t ∈ ρ_int idx, + (minimizeIntervalIdx e ρ_int idx maxDepth).valueBound.lo + ≤ Expr.eval (Expr.updateVar ρ_real idx t) e := by + intro ρ_real hρ t ht + simp only [minimizeIntervalIdx] + exact minimizeIntervalIdx_go_correct e hsupp ρ_int idx maxDepth maxDepth (ρ_int idx) + (fun s hs => hs) ρ_real hρ t ht + +/-- N-variable maximization via minimization of negation -/ +noncomputable def maximizeIntervalIdx (e : Expr) (ρ : IntervalEnv) (idx : Nat) + (maxDepth : ℕ) : OptResult := + let negResult := minimizeIntervalIdx (Expr.neg e) ρ idx maxDepth + { valueBound := IntervalRat.neg negResult.valueBound + argBound := negResult.argBound + depth := negResult.depth } + +/-- Correctness theorem for n-variable maximization -/ +theorem maximizeIntervalIdx_correct (e : Expr) (hsupp : ADSupported e) + (ρ_int : IntervalEnv) (idx : Nat) (maxDepth : ℕ) : + ∀ ρ_real : Nat → ℝ, (∀ i, ρ_real i ∈ ρ_int i) → + ∀ t ∈ ρ_int idx, + Expr.eval (Expr.updateVar ρ_real idx t) e + ≤ (maximizeIntervalIdx e ρ_int idx maxDepth).valueBound.hi := by + intro ρ_real hρ t ht + have hneg_supp : ADSupported (Expr.neg e) := ADSupported.neg hsupp + have hmin := minimizeIntervalIdx_correct (Expr.neg e) hneg_supp ρ_int idx maxDepth ρ_real hρ t ht + simp only [Expr.eval_neg] at hmin + simp only [maximizeIntervalIdx, IntervalRat.neg] + have h : Expr.eval (Expr.updateVar ρ_real idx t) e ≤ + -(((minimizeIntervalIdx (Expr.neg e) ρ_int idx maxDepth).valueBound.lo) : ℝ) := by + linarith + convert h using 1 + simp only [Rat.cast_neg] + +end LeanCert.Engine + +end + +end + +section + +/- +Copyright (c) 2024 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Gradient Interval Computation for Optimization + +This file provides functions to compute interval bounds on the gradient ∇f(B) +of an expression over a box B. This is used for monotonicity-based pruning +in branch-and-bound global optimization. + +## Main definitions + +* `gradientInterval` - Compute interval bounds on all partial derivatives over a box +* `gradientSignature` - Determine the sign of each partial derivative +* `canPruneToLo` / `canPruneToHi` - Check if a coordinate can be pruned by monotonicity + +## Design + +The gradient is computed by running forward-mode AD (from AD.lean) for each +coordinate direction. The result is a list of intervals, one per variable. + +Monotonicity pruning: If ∂f/∂xᵢ > 0 on the entire box B, then f is minimized +when xᵢ = B[i].lo. We can shrink the box in that dimension to a point. +-/ + +/-! ### Gradient computation -/ + +@[expose] public section + +namespace LeanCert.Engine.Optimization + +open LeanCert.Core +open LeanCert.Engine + +/-- Compute the gradient interval: bounds on each partial derivative over a box. + Returns a list of intervals, where the i-th interval contains ∂f/∂xᵢ for all x ∈ B. -/ +noncomputable def gradientInterval (e : Expr) (B : Box) : List IntervalRat := + List.ofFn fun (i : Fin B.length) => derivInterval e (Box.toEnv B) i.val + +/-- Compute gradient for n variables (explicit dimension) -/ +noncomputable def gradientIntervalN (e : Expr) (B : Box) (n : Nat) : List IntervalRat := + (List.range n).map fun i => derivInterval e (Box.toEnv B) i + +/-! ### Computable versions -/ + +/-- Create dual environment for differentiating with respect to variable `idx` (computable). + Active variable gets der = 1, passive variables get der = 0. -/ +def mkDualEnvCore (ρ : IntervalEnv) (idx : Nat) : DualEnv := + fun i => if i = idx then DualInterval.varActive (ρ i) else DualInterval.varPassive (ρ i) + +/-- Evaluate with derivative with respect to variable `idx` (computable version) -/ +def evalWithDerivCore (e : Expr) (ρ : IntervalEnv) (idx : Nat) (cfg : EvalConfig := {}) : + DualInterval := + LeanCert.Internal.AD.evalTotalCore e (mkDualEnvCore ρ idx) cfg + +/-- Computable derivative interval for multi-variable expressions. + Computes the interval containing ∂f/∂xᵢ over the box. -/ +def derivIntervalCoreN (e : Expr) (ρ : IntervalEnv) (idx : Nat) (cfg : EvalConfig := {}) : + IntervalRat := + (evalWithDerivCore e ρ idx cfg).der + +/-- Correctness of the computable derivative evaluator for an arbitrary +coordinate of a multivariate expression. -/ +theorem evalDualTotalCore_der_correct_idx (e : Expr) (hsupp : ADSupported e) + (ρ_real : Nat → ℝ) (ρ_int : IntervalEnv) (idx : Nat) + (hρ : ∀ i, ρ_real i ∈ ρ_int i) (x : ℝ) (hx : x ∈ ρ_int idx) + (cfg : EvalConfig) : + deriv (Expr.evalAlong e ρ_real idx) x ∈ + (LeanCert.Internal.AD.evalTotalCore e (mkDualEnvCore ρ_int idx) cfg).der := by + have hmem : ∀ i, Expr.updateVar ρ_real idx x i ∈ + (mkDualEnvCore ρ_int idx i).val := by + simpa only [mkDualEnvCore, mkDualEnv] using + (updateVar_mem_mkDualEnv_val ρ_real ρ_int idx x hx hρ) + induction hsupp generalizing x with + | const q => + simp only [Expr.evalAlong_const', deriv_const, LeanCert.Internal.AD.evalTotalCore, + DualInterval.const] + exact_mod_cast IntervalRat.mem_singleton 0 + | var i => + by_cases hi : i = idx + · subst i + simp only [Expr.evalAlong_var_active, LeanCert.Internal.AD.evalTotalCore, mkDualEnvCore, + ↓reduceIte, DualInterval.varActive, deriv_id] + exact_mod_cast IntervalRat.mem_singleton 1 + · simp only [Expr.evalAlong_var_passive _ _ _ hi, deriv_const, + LeanCert.Internal.AD.evalTotalCore, + mkDualEnvCore, ite_eq_right hi, DualInterval.varPassive] + exact_mod_cast IntervalRat.mem_singleton 0 + | add h₁ h₂ ih₁ ih₂ => + have hd₁ := evalAlong_differentiable _ h₁ ρ_real idx + have hd₂ := evalAlong_differentiable _ h₂ ρ_real idx + simp only [Expr.evalAlong_add_pi, deriv_add (hd₁ x) (hd₂ x), + LeanCert.Internal.AD.evalTotalCore, + DualInterval.add] + exact IntervalRat.mem_add (ih₁ x hx hmem) (ih₂ x hx hmem) + | mul h₁ h₂ ih₁ ih₂ => + have hd₁ := evalAlong_differentiable _ h₁ ρ_real idx + have hd₂ := evalAlong_differentiable _ h₂ ρ_real idx + simp only [Expr.evalAlong_mul_pi, deriv_mul (hd₁ x) (hd₂ x), + LeanCert.Internal.AD.evalTotalCore, + DualInterval.mul] + have hdom₁ := evalDomainValidDual_of_ExprSupported _ h₁ + (mkDualEnvCore ρ_int idx) cfg + have hdom₂ := evalDomainValidDual_of_ExprSupported _ h₂ + (mkDualEnvCore ρ_int idx) cfg + have hval₁ := LeanCert.Engine.evalDualTotalCore_val_correct _ h₁.toCore + (Expr.updateVar ρ_real idx x) (mkDualEnvCore ρ_int idx) cfg hmem hdom₁ + have hval₂ := LeanCert.Engine.evalDualTotalCore_val_correct _ h₂.toCore + (Expr.updateVar ρ_real idx x) (mkDualEnvCore ρ_int idx) cfg hmem hdom₂ + exact IntervalRat.mem_add (IntervalRat.mem_mul (ih₁ x hx hmem) hval₂) + (IntervalRat.mem_mul hval₁ (ih₂ x hx hmem)) + | neg hs ih => + have hd := evalAlong_differentiable _ hs ρ_real idx + simp only [Expr.evalAlong_neg_pi, deriv.neg, LeanCert.Internal.AD.evalTotalCore, + DualInterval.neg] + exact IntervalRat.mem_neg (ih x hx hmem) + | @sin e' hs ih => + have hd := evalAlong_differentiable e' hs ρ_real idx + simp only [Expr.evalAlong_sin, deriv_sin (hd.differentiableAt), + LeanCert.Internal.AD.evalTotalCore, + DualInterval.sinCore] + have hdom := evalDomainValidDual_of_ExprSupported e' hs + (mkDualEnvCore ρ_int idx) cfg + have hval := LeanCert.Engine.evalDualTotalCore_val_correct e' hs.toCore + (Expr.updateVar ρ_real idx x) (mkDualEnvCore ρ_int idx) cfg hmem hdom + exact IntervalRat.mem_mul + (IntervalRat.mem_cosComputable hval cfg.taylorDepth) (ih x hx hmem) + | @cos e' hs ih => + have hd := evalAlong_differentiable e' hs ρ_real idx + simp only [Expr.evalAlong_cos, deriv_cos (hd.differentiableAt), + LeanCert.Internal.AD.evalTotalCore, + DualInterval.cosCore] + have hdom := evalDomainValidDual_of_ExprSupported e' hs + (mkDualEnvCore ρ_int idx) cfg + have hval := LeanCert.Engine.evalDualTotalCore_val_correct e' hs.toCore + (Expr.updateVar ρ_real idx x) (mkDualEnvCore ρ_int idx) cfg hmem hdom + exact IntervalRat.mem_mul + (IntervalRat.mem_neg (IntervalRat.mem_sinComputable hval cfg.taylorDepth)) (ih x hx hmem) + | @exp e' hs ih => + have hd := evalAlong_differentiable e' hs ρ_real idx + simp only [Expr.evalAlong_exp, deriv_exp (hd.differentiableAt), + LeanCert.Internal.AD.evalTotalCore, + DualInterval.expCore] + have hdom := evalDomainValidDual_of_ExprSupported e' hs + (mkDualEnvCore ρ_int idx) cfg + have hval := LeanCert.Engine.evalDualTotalCore_val_correct e' hs.toCore + (Expr.updateVar ρ_real idx x) (mkDualEnvCore ρ_int idx) cfg hmem hdom + exact IntervalRat.mem_mul + (IntervalRat.mem_expComputable hval cfg.taylorDepth) (ih x hx hmem) + +/-- Computable version of gradient interval for Core expressions. + This can be used with `native_decide` for verified optimization. -/ +def gradientIntervalCore (e : Expr) (B : Box) (cfg : EvalConfig := {}) : List IntervalRat := + (List.range B.length).map fun i => derivIntervalCoreN e (Box.toEnv B) i cfg + +/-- Compute every partial derivative using the domain-aware checked AD path. +Unlike `gradientIntervalCore`, this rejects unsupported syntax, reciprocal +arguments containing zero, and nonpositive logarithm arguments instead of +returning a finite interval that could be mistaken for a certificate. -/ +def gradientIntervalChecked (e : Expr) (B : Box) (cfg : EvalConfig := {}) : + EvalResult (List IntervalRat) := + (List.range B.length).mapM fun i => + derivIntervalChecked e (Box.toEnv B) i cfg + +private theorem derivIntervalsChecked_correct (e : Expr) (B : Box) + (cfg : EvalConfig) (ρReal : Nat → ℝ) + (hρ : ∀ i, ρReal i ∈ Box.toEnv B i) (indices : List Nat) + (gradient : List IntervalRat) + (hok : indices.mapM (fun i => derivIntervalChecked e (Box.toEnv B) i cfg) = + .ok gradient) : + List.Forall₂ (fun i dI => deriv (Expr.evalAlong e ρReal i) (ρReal i) ∈ dI) + indices gradient := by + induction indices generalizing gradient with + | nil => + simp only [List.mapM_nil, pure, Except.pure, Except.ok.injEq] at hok + subst gradient + exact .nil + | cons i indices ih => + simp only [List.mapM_cons] at hok + cases hdi : derivIntervalChecked e (Box.toEnv B) i cfg with + | error err => + rw [hdi] at hok + simp only [bind, Except.bind] at hok + cases hok + | ok dI => + rw [hdi] at hok + simp only [bind, Except.bind] at hok + cases htail : List.mapM + (fun j => derivIntervalChecked e (Box.toEnv B) j cfg) indices with + | error err => + rw [htail] at hok + cases hok + | ok tail => + rw [htail] at hok + simp only [pure, Except.pure, Except.ok.injEq] at hok + subst gradient + exact .cons + (derivIntervalChecked_correct e ρReal (Box.toEnv B) i cfg dI + (ρReal i) (hρ i) hρ hdi) + (ih tail htail) + +/-- Golden soundness theorem for a successfully computed checked gradient. +The output list is aligned with coordinates `0, …, B.length - 1`. -/ +theorem gradientIntervalChecked_correct (e : Expr) (B : Box) + (cfg : EvalConfig) (ρReal : Nat → ℝ) + (hρ : Box.envMem ρReal B) + (hzero : ∀ i, i ≥ B.length → ρReal i = 0) + (gradient : List IntervalRat) + (hok : gradientIntervalChecked e B cfg = .ok gradient) : + List.Forall₂ (fun i dI => deriv (Expr.evalAlong e ρReal i) (ρReal i) ∈ dI) + (List.range B.length) gradient := by + exact derivIntervalsChecked_correct e B cfg ρReal + (Box.envMem_toEnv ρReal B hρ hzero) (List.range B.length) gradient hok + +/-! ### Sign classification -/ + +/-- Classification of an interval's sign -/ +inductive IntervalSign where + | positive -- lo > 0 (strictly positive) + | negative -- hi < 0 (strictly negative) + | nonpositive -- hi ≤ 0 + | nonnegative -- lo ≥ 0 + | indefinite -- contains zero in interior + deriving Repr, DecidableEq + +/-- Classify the sign of an interval -/ +def classifySign (I : IntervalRat) : IntervalSign := + if I.lo > 0 then .positive + else if I.hi < 0 then .negative + else if I.hi ≤ 0 then .nonpositive + else if I.lo ≥ 0 then .nonnegative + else .indefinite + +/-- The gradient signature: sign of each partial derivative (noncomputable wrapper) -/ +noncomputable def gradientSignature (e : Expr) (B : Box) : List IntervalSign := + (gradientIntervalN e B B.length).map classifySign + +/-! ### Monotonicity predicates -/ + +/-- Check if interval is strictly positive -/ +def isStrictlyPositive (I : IntervalRat) : Bool := I.lo > 0 + +/-- Check if interval is strictly negative -/ +def isStrictlyNegative (I : IntervalRat) : Bool := I.hi < 0 + +/-- Check if interval is nonnegative -/ +def isNonnegative (I : IntervalRat) : Bool := I.lo ≥ 0 + +/-- Check if interval is nonpositive -/ +def isNonpositive (I : IntervalRat) : Bool := I.hi ≤ 0 + +/-! ### Pruning queries -/ + +/-- Can we prune coordinate i to its low endpoint for minimization? + True if ∂f/∂xᵢ > 0 on B (f is increasing in xᵢ, so min is at lo). -/ +def canPruneToLo (deriv_i : IntervalRat) : Bool := + isStrictlyPositive deriv_i + +/-- Can we prune coordinate i to its high endpoint for minimization? + True if ∂f/∂xᵢ < 0 on B (f is decreasing in xᵢ, so min is at hi). -/ +def canPruneToHi (deriv_i : IntervalRat) : Bool := + isStrictlyNegative deriv_i + +/-- Prune a box for minimization by fixing monotonic coordinates. + Returns a (potentially smaller) box and a list of fixed coordinates. -/ +def pruneBoxForMin (B : Box) (grad : List IntervalRat) : Box × List Nat := + let pruned := B.zipIdx.map fun (I, idx) => + match grad[idx]? with + | some di => + if canPruneToLo di then + -- ∂f/∂xᵢ > 0: fix xᵢ = I.lo + (IntervalRat.singleton I.lo, some idx) + else if canPruneToHi di then + -- ∂f/∂xᵢ < 0: fix xᵢ = I.hi + (IntervalRat.singleton I.hi, some idx) + else + (I, none) + | none => (I, none) + (pruned.map (·.1), pruned.filterMap (·.2)) + +/-! ### Correctness theorems -/ + +/-- The computed gradient interval contains the true partial derivatives. + This follows from evalDual_der_correct_idx in AD.lean. -/ +theorem gradientInterval_correct (e : Expr) (hsupp : ADSupported e) + (B : Box) (ρ : Nat → ℝ) (hρ : Box.envMem ρ B) + (hzero : ∀ i, i ≥ B.length → ρ i = 0) + (i : Fin B.length) : + deriv (Expr.evalAlong e ρ i.val) (ρ i.val) ∈ + ((gradientIntervalN e B B.length)[i.val]?).getD default := by + -- The i-th element of gradientIntervalN is derivInterval e (toEnv B) i + have hget : (gradientIntervalN e B B.length)[i.val]? = + some (derivInterval e (Box.toEnv B) i.val) := by + simp only [gradientIntervalN] + rw [List.getElem?_map] + simp only [List.getElem?_range i.isLt, Option.map_some] + simp only [hget, Option.getD] + -- Apply the AD correctness theorem + have henv : ∀ j, ρ j ∈ Box.toEnv B j := Box.envMem_toEnv ρ B hρ hzero + exact derivInterval_correct_idx e hsupp ρ (Box.toEnv B) i.val henv (ρ i.val) (henv i.val) + +/-- If we prune a coordinate to lo because ∂f/∂xᵢ > 0, the minimum is preserved. + Informal: if f is increasing in xᵢ on B, then min{f(x) : x ∈ B} = min{f(x) : xᵢ = B[i].lo}. + NOTE: Requires ρ j = 0 for j ≥ B.length (standard assumption for box membership). -/ +theorem pruneToLo_preserves_min (e : Expr) (hsupp : ADSupported e) + (B : Box) (i : Fin B.length) + (hgrad : isStrictlyPositive (derivInterval e (Box.toEnv B) i.val) = true) : + ∀ (ρ : Nat → ℝ), Box.envMem ρ B → (∀ j, j ≥ B.length → ρ j = 0) → + ∃ (ρ' : Nat → ℝ), Box.envMem ρ' B ∧ (∀ j, j ≥ B.length → ρ' j = 0) ∧ + ρ' i.val = B[i.val].lo ∧ Expr.eval ρ' e ≤ Expr.eval ρ e := by + intro ρ hρ hzero + -- The idea: if ∂f/∂xᵢ > 0 everywhere, then f(ρ) ≥ f(ρ[xᵢ := lo]) + -- We construct ρ' by replacing coordinate i with the low endpoint + let ρ' : Nat → ℝ := fun j => if j = i.val then (B[i.val].lo : ℝ) else ρ j + use ρ' + constructor + · -- ρ' ∈ B + intro ⟨j, hj⟩ + by_cases h : j = i.val + · subst h + simp only [↓reduceIte, ρ', IntervalRat.mem_def] + constructor + · exact le_refl _ + · have := B[i.val].le + exact_mod_cast this + · simp only [ite_eq_right h, ρ'] + exact hρ ⟨j, hj⟩ + constructor + · -- ρ' j = 0 for j ≥ B.length + intro j hj + simp only [ρ'] + have hne : j ≠ i.val := by + intro heq + rw [heq] at hj + exact absurd i.isLt (not_lt.mpr hj) + simp only [ite_eq_right hne] + exact hzero j hj + constructor + · -- ρ' i = B[i].lo + simp only [↓reduceIte, ρ'] + · -- f(ρ') ≤ f(ρ) + -- Use the monotonicity theorem: if ∂f/∂xᵢ > 0, minimum is at left endpoint + -- Convert the boolean condition to a real inequality + simp only [isStrictlyPositive, decide_eq_true_eq] at hgrad + -- Build the interval environment from the box + let ρ_int : IntervalEnv := Box.toEnv B + -- Show ρ ∈ ρ_int (membership in the interval environment) + have hρ_int : ∀ j, ρ j ∈ ρ_int j := by + intro j + simp only [ρ_int, Box.toEnv, List.getD] + by_cases hj : j < B.length + · simp only [List.getElem?_eq_getElem hj, Option.getD] + exact hρ ⟨j, hj⟩ + · simp only [List.getElem?_eq_none (not_lt.mp hj), Option.getD] + rw [IntervalRat.mem_default] + exact hzero j (not_lt.mp hj) + -- Apply the monotonicity theorem + have hmono := increasing_min_at_left_idx e hsupp ρ ρ_int i.val hρ_int hgrad + -- The key fact: ρ i.val ∈ ρ_int i.val = B[i.val] + have hρ_i_mem : ρ i.val ∈ ρ_int i.val := hρ_int i.val + have hmin := hmono (ρ i.val) hρ_i_mem + -- Now relate evalAlong to eval via ρ' + -- evalAlong e ρ i.val t = eval (updateVar ρ i.val t) e + simp only [Expr.evalAlong] at hmin + -- Need: (ρ_int i.val).lo = B[i.val].lo + have hlo_eq : (ρ_int i.val).lo = B[i.val].lo := by + simp only [ρ_int, Box.toEnv, List.getD, List.getElem?_eq_getElem i.isLt, Option.getD] + -- And: updateVar ρ i.val (ρ_int i.val).lo = ρ' + have hρ'_eq : Expr.updateVar ρ i.val ((ρ_int i.val).lo : ℝ) = ρ' := by + funext j + simp only [Expr.updateVar, ρ'] + split_ifs with hj + · simp only [hlo_eq] + · rfl + -- And: updateVar ρ i.val (ρ i.val) = ρ + have hρ_eq : Expr.updateVar ρ i.val (ρ i.val) = ρ := Expr.updateVar_self ρ i.val + rw [hρ'_eq, hρ_eq] at hmin + exact hmin + +/-- If we prune a coordinate to hi because ∂f/∂xᵢ < 0, the minimum is preserved. + NOTE: Requires ρ j = 0 for j ≥ B.length (standard assumption for box membership). -/ +theorem pruneToHi_preserves_min (e : Expr) (hsupp : ADSupported e) + (B : Box) (i : Fin B.length) + (hgrad : isStrictlyNegative (derivInterval e (Box.toEnv B) i.val) = true) : + ∀ (ρ : Nat → ℝ), Box.envMem ρ B → (∀ j, j ≥ B.length → ρ j = 0) → + ∃ (ρ' : Nat → ℝ), Box.envMem ρ' B ∧ (∀ j, j ≥ B.length → ρ' j = 0) ∧ + ρ' i.val = B[i.val].hi ∧ Expr.eval ρ' e ≤ Expr.eval ρ e := by + intro ρ hρ hzero + let ρ' : Nat → ℝ := fun j => if j = i.val then (B[i.val].hi : ℝ) else ρ j + use ρ' + constructor + · -- ρ' ∈ B + intro ⟨j, hj⟩ + by_cases h : j = i.val + · subst h + simp only [↓reduceIte, ρ', IntervalRat.mem_def] + constructor + · have := B[i.val].le + exact_mod_cast this + · exact le_refl _ + · simp only [ite_eq_right h, ρ'] + exact hρ ⟨j, hj⟩ + constructor + · -- ρ' j = 0 for j ≥ B.length + intro j hj + simp only [ρ'] + have hne : j ≠ i.val := by + intro heq + rw [heq] at hj + exact absurd i.isLt (not_lt.mpr hj) + simp only [ite_eq_right hne] + exact hzero j hj + constructor + · simp only [↓reduceIte, ρ'] + · -- f(ρ') ≤ f(ρ) + -- Use the monotonicity theorem: if ∂f/∂xᵢ < 0, minimum is at right endpoint + simp only [isStrictlyNegative, decide_eq_true_eq] at hgrad + -- Build the interval environment from the box + let ρ_int : IntervalEnv := Box.toEnv B + -- Show ρ ∈ ρ_int + have hρ_int : ∀ j, ρ j ∈ ρ_int j := by + intro j + simp only [ρ_int, Box.toEnv, List.getD] + by_cases hj : j < B.length + · simp only [List.getElem?_eq_getElem hj, Option.getD] + exact hρ ⟨j, hj⟩ + · simp only [List.getElem?_eq_none (not_lt.mp hj), Option.getD] + rw [IntervalRat.mem_default] + exact hzero j (not_lt.mp hj) + -- Apply the monotonicity theorem for decreasing functions + have hmono := decreasing_min_at_right_idx e hsupp ρ ρ_int i.val hρ_int hgrad + -- The key fact: ρ i.val ∈ ρ_int i.val = B[i.val] + have hρ_i_mem : ρ i.val ∈ ρ_int i.val := hρ_int i.val + have hmin := hmono (ρ i.val) hρ_i_mem + -- Now relate evalAlong to eval via ρ' + simp only [Expr.evalAlong] at hmin + -- Need: (ρ_int i.val).hi = B[i.val].hi + have hhi_eq : (ρ_int i.val).hi = B[i.val].hi := by + simp only [ρ_int, Box.toEnv, List.getD, List.getElem?_eq_getElem i.isLt, Option.getD] + -- And: updateVar ρ i.val (ρ_int i.val).hi = ρ' + have hρ'_eq : Expr.updateVar ρ i.val ((ρ_int i.val).hi : ℝ) = ρ' := by + funext j + simp only [Expr.updateVar, ρ'] + split_ifs with hj + · simp only [hhi_eq] + · rfl + -- And: updateVar ρ i.val (ρ i.val) = ρ + have hρ_eq : Expr.updateVar ρ i.val (ρ i.val) = ρ := Expr.updateVar_self ρ i.val + rw [hρ'_eq, hρ_eq] at hmin + exact hmin + +/-! ### Pruned box membership and correctness -/ + +/-- Helper: membership in the pruned box implies membership in the original box. + The pruned box only shrinks coordinates, never expands them. -/ +theorem pruneBoxForMin_subset (B : Box) (grad : List IntervalRat) : + ∀ ρ, Box.envMem ρ (pruneBoxForMin B grad).1 → Box.envMem ρ B := by + intro ρ hρ' + let B' := (pruneBoxForMin B grad).1 + intro ⟨j, hj⟩ + have hj' : j < B'.length := by + simp only [B', pruneBoxForMin, List.length_map, List.length_zipIdx] + exact hj + have hρ'_mem : ρ j ∈ B'[j] := hρ' ⟨j, hj'⟩ + -- Get the j-th element of B' + simp only [B', pruneBoxForMin] at hρ'_mem + rw [List.getElem_map, List.getElem_map] at hρ'_mem + have h_zipIdx_len : j < (B.zipIdx).length := by simp only [List.length_zipIdx]; exact hj + have h_zipIdx : (B.zipIdx)[j] = (B[j], j) := by + rw [List.getElem_zipIdx (h := h_zipIdx_len)] + simp only [Nat.zero_add] + simp only [h_zipIdx] at hρ'_mem + -- Now analyze the cases + cases hgrad_j : grad[j]? with + | none => + simp only [hgrad_j] at hρ'_mem + exact hρ'_mem + | some di => + simp only [hgrad_j] at hρ'_mem + by_cases hlo : canPruneToLo di + · simp only [hlo, ↓reduceIte] at hρ'_mem + simp only [IntervalRat.mem_def] + have hρ_eq : ρ j = B[j].lo := by + simp only [IntervalRat.singleton, IntervalRat.mem_def] at hρ'_mem + linarith [hρ'_mem.1, hρ'_mem.2] + rw [hρ_eq] + exact ⟨le_refl _, by exact_mod_cast B[j].le⟩ + · by_cases hhi : canPruneToHi di + · simp only [hlo, Bool.false_eq_true, ↓reduceIte, hhi] at hρ'_mem + simp only [IntervalRat.mem_def] + have hρ_eq : ρ j = B[j].hi := by + simp only [IntervalRat.singleton, IntervalRat.mem_def] at hρ'_mem + linarith [hρ'_mem.1, hρ'_mem.2] + rw [hρ_eq] + exact ⟨by exact_mod_cast B[j].le, le_refl _⟩ + · simp only [hlo, Bool.false_eq_true, ↓reduceIte, hhi] at hρ'_mem + exact hρ'_mem + +/-- The pruned box has the same length as the original box -/ +theorem pruneBoxForMin_length (B : Box) (grad : List IntervalRat) : + (pruneBoxForMin B grad).1.length = B.length := by + simp only [pruneBoxForMin, List.length_map, List.length_zipIdx] + +/-- A positive computable derivative enclosure makes the objective increasing +along the selected coordinate. -/ +theorem increasing_min_at_left_idx_core (e : Expr) (hsupp : ADSupported e) + (ρ_real : Nat → ℝ) (ρ_int : IntervalEnv) (idx : Nat) + (hρ : ∀ i, ρ_real i ∈ ρ_int i) (cfg : EvalConfig) + (hpos : 0 < (derivIntervalCoreN e ρ_int idx cfg).lo) : + ∀ x ∈ ρ_int idx, + Expr.evalAlong e ρ_real idx (ρ_int idx).lo ≤ Expr.evalAlong e ρ_real idx x := by + have hdiff := evalAlong_differentiable e hsupp ρ_real idx + have hmono : StrictMonoOn (Expr.evalAlong e ρ_real idx) + (Set.Icc ((ρ_int idx).lo : ℝ) ((ρ_int idx).hi : ℝ)) := by + apply strictMonoOn_of_deriv_pos (convex_Icc _ _) + · exact hdiff.continuous.continuousOn + · intro x hx + rw [interior_Icc] at hx + have hx' : x ∈ ρ_int idx := ⟨le_of_lt hx.1, le_of_lt hx.2⟩ + have hmem := evalDualTotalCore_der_correct_idx e hsupp ρ_real ρ_int idx hρ x hx' cfg + exact lt_of_lt_of_le (by exact_mod_cast hpos) ((IntervalRat.mem_def _ _).mp hmem).1 + intro x hx + rcases hx with ⟨hlo, hhi⟩ + by_cases heq : ((ρ_int idx).lo : ℝ) = x + · exact heq ▸ le_rfl + · exact le_of_lt (hmono + ⟨le_rfl, by exact_mod_cast (ρ_int idx).le⟩ ⟨hlo, hhi⟩ + (lt_of_le_of_ne hlo heq)) + +/-- A negative computable derivative enclosure makes the objective decreasing +along the selected coordinate. -/ +theorem decreasing_min_at_right_idx_core (e : Expr) (hsupp : ADSupported e) + (ρ_real : Nat → ℝ) (ρ_int : IntervalEnv) (idx : Nat) + (hρ : ∀ i, ρ_real i ∈ ρ_int i) (cfg : EvalConfig) + (hneg : (derivIntervalCoreN e ρ_int idx cfg).hi < 0) : + ∀ x ∈ ρ_int idx, + Expr.evalAlong e ρ_real idx (ρ_int idx).hi ≤ Expr.evalAlong e ρ_real idx x := by + have hdiff := evalAlong_differentiable e hsupp ρ_real idx + have hmono : StrictAntiOn (Expr.evalAlong e ρ_real idx) + (Set.Icc ((ρ_int idx).lo : ℝ) ((ρ_int idx).hi : ℝ)) := by + apply strictAntiOn_of_deriv_neg (convex_Icc _ _) + · exact hdiff.continuous.continuousOn + · intro x hx + rw [interior_Icc] at hx + have hx' : x ∈ ρ_int idx := ⟨le_of_lt hx.1, le_of_lt hx.2⟩ + have hmem := evalDualTotalCore_der_correct_idx e hsupp ρ_real ρ_int idx hρ x hx' cfg + exact lt_of_le_of_lt ((IntervalRat.mem_def _ _).mp hmem).2 (by exact_mod_cast hneg) + intro x hx + rcases hx with ⟨hlo, hhi⟩ + by_cases heq : x = ((ρ_int idx).hi : ℝ) + · exact heq ▸ le_rfl + · exact le_of_lt (hmono ⟨hlo, hhi⟩ + ⟨by exact_mod_cast (ρ_int idx).le, le_rfl⟩ + (lt_of_le_of_ne hhi heq)) + +/-- **Main correctness theorem for pruneBoxForMin:** + + After pruning, for any point ρ in the original box B, there exists a point ρ' + in the pruned box B' such that f(ρ') ≤ f(ρ). + + This means the minimum over B can be found by searching only in B'. + + The proof constructs ρ' by moving each coordinate to its endpoint when the + gradient has a definite sign. For each coordinate: + - If ∂f/∂xᵢ > 0 on B, move xᵢ to B[i].lo (f is increasing, min at left) + - If ∂f/∂xᵢ < 0 on B, move xᵢ to B[i].hi (f is decreasing, min at right) + - Otherwise, keep xᵢ = ρ[i] + + The proof then shows f(ρ') ≤ f(ρ) by induction on coordinates, using + the monotonicity lemmas `increasing_min_at_left_idx` and `decreasing_min_at_right_idx`. +-/ +private def prunePrefixEnvironment (B : Box) (grad : List IntervalRat) (ρ : Nat → ℝ) : + Nat → (Nat → ℝ) := fun k j => + if h : j < k ∧ j < B.length then + match grad[j]? with + | some di => + if canPruneToLo di then (B[j].lo : ℝ) + else if canPruneToHi di then (B[j].hi : ℝ) + else ρ j + | none => ρ j + else if hj : j < B.length then ρ j + else 0 + +private theorem prunePrefixEnvironment_mem (B : Box) (grad : List IntervalRat) + (ρ : Nat → ℝ) (m : ℕ) + (hρB : Box.envMem ρ B) + : Box.envMem (prunePrefixEnvironment B grad ρ m) B := by + let ρ_seq := prunePrefixEnvironment B grad ρ + intro ⟨j, hj⟩ + simp only [prunePrefixEnvironment] + by_cases h1 : j < m ∧ j < B.length + · simp only [dite_eq_left h1] + cases hgrad_j : grad[j]? with + | none => exact hρB ⟨j, hj⟩ + | some dj => + simp only [IntervalRat.mem_def] + by_cases hlo_j : canPruneToLo dj + · simp only [hlo_j, ↓reduceIte] + exact ⟨le_refl _, by exact_mod_cast B[j].le⟩ + · by_cases hhi_j : canPruneToHi dj + · simp only [hlo_j, Bool.false_eq_true, ↓reduceIte, hhi_j] + exact ⟨by exact_mod_cast B[j].le, le_refl _⟩ + · simp only [hlo_j, Bool.false_eq_true, ↓reduceIte, hhi_j] + exact hρB ⟨j, hj⟩ + · simp only [dite_eq_right h1, dite_eq_left hj] + exact hρB ⟨j, hj⟩ + +private theorem prunePrefixEnvironment_zero (B : Box) (grad : List IntervalRat) + (ρ : Nat → ℝ) (m : ℕ) + : ∀ j, j ≥ B.length → prunePrefixEnvironment B grad ρ m j = 0 := by + let ρ_seq := prunePrefixEnvironment B grad ρ + intro j hjge + simp only [prunePrefixEnvironment] + have h1 : ¬(j < m ∧ j < B.length) := fun h => absurd h.2 (not_lt.mpr hjge) + simp only [dite_eq_right h1] + have h2 : ¬(j < B.length) := not_lt.mpr hjge + simp only [dite_eq_right h2] + +private theorem prunePrefixEnvironment_step (e : Expr) (hsupp : ADSupported e) + (B : Box) (cfg : EvalConfig) (ρ : Nat → ℝ) (hρB : Box.envMem ρ B) : + ∀ m < B.length, + Expr.eval (prunePrefixEnvironment B (gradientIntervalCore e B cfg) ρ (m + 1)) e ≤ + Expr.eval (prunePrefixEnvironment B (gradientIntervalCore e B cfg) ρ m) e := by + let grad := gradientIntervalCore e B cfg + let ρ_seq := prunePrefixEnvironment B grad ρ + have hρ_seq_step : ∀ k j, k ≠ j → ρ_seq k j = ρ_seq (k + 1) j := by + intro k j hne + simp only [ρ_seq, prunePrefixEnvironment] + by_cases h1 : j < k ∧ j < B.length + · -- j < k and j < B.length: both difs are positive + have h2 : j < k + 1 ∧ j < B.length := ⟨Nat.lt_of_lt_of_le h1.1 (Nat.le_succ k), h1.2⟩ + simp only [dite_eq_left h1, dite_eq_left h2] + · by_cases h2 : j < k + 1 ∧ j < B.length + · -- j < k + 1 but not (j < k ∧ j < B.length) + have hj_ge_k : k ≤ j := by + by_contra! hlt + exact h1 ⟨hlt, h2.2⟩ + have hj_lt_k1 : j < k + 1 := h2.1 + have hj_eq_k : j = k := Nat.eq_of_le_of_lt_succ hj_ge_k hj_lt_k1 + exact absurd hj_eq_k.symm hne + · -- Neither condition holds + simp only [dite_eq_right h1, dite_eq_right h2] + intro m hm + change Expr.eval (ρ_seq (m + 1)) e ≤ Expr.eval (ρ_seq m) e + cases hgrad_m : grad[m]? with + | none => + have heq : ∀ j, ρ_seq (m + 1) j = ρ_seq m j := by + intro j + by_cases hj_eq : j = m + · -- When j = m: both sides simplify to ρ m + simp only [ρ_seq, prunePrefixEnvironment, hgrad_m, hj_eq] + have h1 : ¬(m < m ∧ m < B.length) := fun h => Nat.lt_irrefl m h.1 + have h2 : m < m + 1 ∧ m < B.length := ⟨Nat.lt_succ_self m, hm⟩ + simp only [dite_eq_right h1, dite_eq_left h2, dite_eq_left hm] + · exact (hρ_seq_step m j (Ne.symm hj_eq)).symm + simp only [funext heq] + exact le_refl _ + | some di => + by_cases hlo : canPruneToLo di + · -- ∂f/∂x_m > 0, fixing x_m = lo decreases f + have hcoord_m_before : ρ_seq m m = ρ m := by + simp only [ρ_seq, prunePrefixEnvironment] + have h1 : ¬(m < m ∧ m < B.length) := fun h => Nat.lt_irrefl m h.1 + simp only [dite_eq_right h1, dite_eq_left hm] + have hcoord_m_after : ρ_seq (m + 1) m = B[m].lo := by + simp only [ρ_seq, prunePrefixEnvironment, hgrad_m, hlo, ↓reduceIte] + have h2 : m < m + 1 ∧ m < B.length := ⟨Nat.lt_succ_self m, hm⟩ + simp only [dite_eq_left h2] + have hρ_seq_m_mem := prunePrefixEnvironment_mem B grad ρ m hρB + have hρ_seq_m_zero := prunePrefixEnvironment_zero B grad ρ m + have hgrad_di : derivIntervalCoreN e (Box.toEnv B) m cfg = di := by + simp only [grad, gradientIntervalCore] at hgrad_m + rw [List.getElem?_map, List.getElem?_range hm] at hgrad_m + simp only [Option.map_some] at hgrad_m + exact Option.some.inj hgrad_m + let ρ_int : IntervalEnv := Box.toEnv B + have hρ_int : ∀ j, ρ_seq m j ∈ ρ_int j := by + intro j + simp only [ρ_int, Box.toEnv, List.getD] + by_cases hj : j < B.length + · simp only [List.getElem?_eq_getElem hj, Option.getD] + exact hρ_seq_m_mem ⟨j, hj⟩ + · simp only [List.getElem?_eq_none (not_lt.mp hj), Option.getD] + rw [IntervalRat.mem_default] + exact hρ_seq_m_zero j (not_lt.mp hj) + have hpos : 0 < (derivIntervalCoreN e ρ_int m cfg).lo := by + simp only [ρ_int] + rw [hgrad_di] + simp only [isStrictlyPositive, canPruneToLo] at hlo + exact decide_eq_true_iff.mp hlo + have hmono := increasing_min_at_left_idx_core e hsupp (ρ_seq m) ρ_int m + hρ_int cfg hpos + have hρ_m_mem : ρ_seq m m ∈ ρ_int m := hρ_int m + have hmin := hmono (ρ_seq m m) hρ_m_mem + have hlo_eq : (ρ_int m).lo = B[m].lo := by + simp only [ρ_int, Box.toEnv, List.getD, List.getElem?_eq_getElem hm, Option.getD] + simp only [Expr.evalAlong] at hmin + have hupdate_self : Expr.updateVar (ρ_seq m) m (ρ_seq m m) = ρ_seq m := + Expr.updateVar_self (ρ_seq m) m + have hρ_seq_update : ρ_seq (m + 1) = Expr.updateVar (ρ_seq m) m (B[m].lo : ℝ) := by + funext j + simp only [Expr.updateVar] + by_cases hj_eq : j = m + · subst hj_eq + simp only [↓reduceIte] + exact hcoord_m_after + · simp only [ite_eq_right hj_eq] + exact (hρ_seq_step m j (Ne.symm hj_eq)).symm + have hupdate_lo : Expr.updateVar (ρ_seq m) m ((ρ_int m).lo : ℝ) = ρ_seq (m + 1) := by + rw [hlo_eq, ← hρ_seq_update] + rw [hupdate_lo, hupdate_self] at hmin + exact hmin + · by_cases hhi : canPruneToHi di + · -- ∂f/∂x_m < 0, fixing x_m = hi decreases f + have hcoord_m_before : ρ_seq m m = ρ m := by + simp only [ρ_seq, prunePrefixEnvironment] + have h1 : ¬(m < m ∧ m < B.length) := fun h => Nat.lt_irrefl m h.1 + simp only [dite_eq_right h1, dite_eq_left hm] + have hcoord_m_after : ρ_seq (m + 1) m = B[m].hi := by + simp only [ρ_seq, prunePrefixEnvironment, hgrad_m, hlo, Bool.false_eq_true, + ↓reduceIte, hhi] + have h2 : m < m + 1 ∧ m < B.length := ⟨Nat.lt_succ_self m, hm⟩ + simp only [dite_eq_left h2] + have hρ_seq_m_mem := prunePrefixEnvironment_mem B grad ρ m hρB + have hρ_seq_m_zero := prunePrefixEnvironment_zero B grad ρ m + have hgrad_di : derivIntervalCoreN e (Box.toEnv B) m cfg = di := by + simp only [grad, gradientIntervalCore] at hgrad_m + rw [List.getElem?_map, List.getElem?_range hm] at hgrad_m + simp only [Option.map_some] at hgrad_m + exact Option.some.inj hgrad_m + let ρ_int : IntervalEnv := Box.toEnv B + have hρ_int : ∀ j, ρ_seq m j ∈ ρ_int j := by + intro j + simp only [ρ_int, Box.toEnv, List.getD] + by_cases hj : j < B.length + · simp only [List.getElem?_eq_getElem hj, Option.getD] + exact hρ_seq_m_mem ⟨j, hj⟩ + · simp only [List.getElem?_eq_none (not_lt.mp hj), Option.getD] + rw [IntervalRat.mem_default] + exact hρ_seq_m_zero j (not_lt.mp hj) + have hneg : (derivIntervalCoreN e ρ_int m cfg).hi < 0 := by + simp only [ρ_int] + rw [hgrad_di] + simp only [isStrictlyNegative, canPruneToHi] at hhi + exact decide_eq_true_iff.mp hhi + have hmono := decreasing_min_at_right_idx_core e hsupp (ρ_seq m) ρ_int m + hρ_int cfg hneg + have hρ_m_mem : ρ_seq m m ∈ ρ_int m := hρ_int m + have hmin := hmono (ρ_seq m m) hρ_m_mem + have hhi_eq : (ρ_int m).hi = B[m].hi := by + simp only [ρ_int, Box.toEnv, List.getD, List.getElem?_eq_getElem hm, Option.getD] + simp only [Expr.evalAlong] at hmin + have hupdate_self : Expr.updateVar (ρ_seq m) m (ρ_seq m m) = ρ_seq m := + Expr.updateVar_self (ρ_seq m) m + have hρ_seq_update : ρ_seq (m + 1) = Expr.updateVar (ρ_seq m) m (B[m].hi : ℝ) := by + funext j + simp only [Expr.updateVar] + by_cases hj_eq : j = m + · subst hj_eq + simp only [↓reduceIte] + exact hcoord_m_after + · simp only [ite_eq_right hj_eq] + exact (hρ_seq_step m j (Ne.symm hj_eq)).symm + have hupdate_hi : Expr.updateVar (ρ_seq m) m ((ρ_int m).hi : ℝ) = ρ_seq (m + 1) := by + rw [hhi_eq, ← hρ_seq_update] + rw [hupdate_hi, hupdate_self] at hmin + exact hmin + · -- No pruning at coord m: ρ_seq (m+1) = ρ_seq m at all coords + have heq : ∀ j, ρ_seq (m + 1) j = ρ_seq m j := by + intro j + by_cases hj_eq : j = m + · -- When j = m: need ρ_seq (m+1) m = ρ_seq m m + simp only [ρ_seq, prunePrefixEnvironment, hgrad_m, hlo, Bool.false_eq_true, + ↓reduceIte, hhi, hj_eq] + have h1 : ¬(m < m ∧ m < B.length) := fun h => Nat.lt_irrefl m h.1 + have h2 : m < m + 1 ∧ m < B.length := ⟨Nat.lt_succ_self m, hm⟩ + simp only [dite_eq_right h1, dite_eq_left h2, dite_eq_left hm] + · exact (hρ_seq_step m j (Ne.symm hj_eq)).symm + simp only [funext heq] + exact le_refl _ + +theorem pruneBoxForMin_correct (e : Expr) (hsupp : ADSupported e) (B : Box) + (cfg : EvalConfig := {}) : + let grad := gradientIntervalCore e B cfg + let B' := (pruneBoxForMin B grad).1 + ∀ (ρ : Nat → ℝ), Box.envMem ρ B → (∀ i, i ≥ B.length → ρ i = 0) → + ∃ (ρ' : Nat → ℝ), Box.envMem ρ' B' ∧ (∀ i, i ≥ B'.length → ρ' i = 0) ∧ + Expr.eval ρ' e ≤ Expr.eval ρ e := by + intro grad B' ρ hρB hzero + let ρ' : Nat → ℝ := fun j => + if h : j < B.length then + match grad[j]? with + | some di => + if canPruneToLo di then (B[j].lo : ℝ) + else if canPruneToHi di then (B[j].hi : ℝ) + else ρ j + | none => ρ j + else 0 + use ρ' + constructor + · -- ρ' ∈ B' + intro ⟨j, hj'⟩ + have hB'_len : B'.length = B.length := pruneBoxForMin_length B grad + have hj : j < B.length := by rw [← hB'_len]; exact hj' + simp only [ρ', hj, ↓reduceDIte] + simp only [B', pruneBoxForMin] + rw [List.getElem_map, List.getElem_map] + have h_zipIdx_len : j < (B.zipIdx).length := by simp only [List.length_zipIdx]; exact hj + have h_zipIdx : (B.zipIdx)[j] = (B[j], j) := by + rw [List.getElem_zipIdx (h := h_zipIdx_len)] + simp only [Nat.zero_add] + simp only [h_zipIdx] + cases hgrad_j : grad[j]? with + | none => + simp only [IntervalRat.mem_def] + exact hρB ⟨j, hj⟩ + | some di => + simp only [IntervalRat.mem_def] + by_cases hlo : canPruneToLo di + · simp only [hlo, ↓reduceIte] + exact IntervalRat.mem_singleton _ + · by_cases hhi : canPruneToHi di + · simp only [hlo, Bool.false_eq_true, ↓reduceIte, hhi] + exact IntervalRat.mem_singleton _ + · simp only [hlo, Bool.false_eq_true, ↓reduceIte, hhi] + exact hρB ⟨j, hj⟩ + constructor + · -- ρ' i = 0 for i ≥ B'.length + intro i hi + have hB'_len : B'.length = B.length := pruneBoxForMin_length B grad + rw [hB'_len] at hi + simp only [ρ', not_lt.mpr hi, ↓reduceDIte] + · -- f(ρ') ≤ f(ρ) + let ρ_seq := prunePrefixEnvironment B grad ρ + have hρ_seq_zero : ∀ j, ρ_seq 0 j = if j < B.length then ρ j else 0 := by + intro j + simp only [ρ_seq, prunePrefixEnvironment] + have h_neg : ¬(j < 0 ∧ j < B.length) := fun h => Nat.not_lt_zero j h.1 + simp only [dite_eq_right h_neg] + split_ifs <;> rfl + have hρ_seq_final : ∀ j, ρ_seq B.length j = ρ' j := by + intro j + simp only [ρ_seq, prunePrefixEnvironment, ρ'] + by_cases hj : j < B.length + · -- j < B.length + have h_and : j < B.length ∧ j < B.length := ⟨hj, hj⟩ + simp only [dite_eq_left h_and, dite_eq_left hj] + · -- j ≥ B.length + have h_nand : ¬(j < B.length ∧ j < B.length) := fun h => hj h.2 + simp only [dite_eq_right h_nand, dite_eq_right hj] + have hstep := prunePrefixEnvironment_step e hsupp B cfg ρ hρB + have hchain : ∀ n ≤ B.length, Expr.eval (ρ_seq n) e ≤ Expr.eval (ρ_seq 0) e := by + intro n hn + induction n with + | zero => exact le_refl _ + | succ m ih => + have hm_lt : m < B.length := Nat.lt_of_succ_le hn + calc Expr.eval (ρ_seq (m + 1)) e ≤ Expr.eval (ρ_seq m) e := hstep m hm_lt + _ ≤ Expr.eval (ρ_seq 0) e := ih (Nat.le_of_lt hm_lt) + have hfinal_eq : Expr.eval (ρ_seq B.length) e = Expr.eval ρ' e := by + congr 1; funext j; exact hρ_seq_final j + have hρ_seq0_eq : Expr.eval (ρ_seq 0) e = Expr.eval ρ e := by + congr 1 + funext j + rw [hρ_seq_zero] + split_ifs with hj + · rfl + · exact (hzero j (not_lt.mp hj)).symm + rw [← hfinal_eq, ← hρ_seq0_eq] + exact hchain B.length (le_refl _) + +end LeanCert.Engine.Optimization + +end + +end + +section + +/- +Copyright (c) 2026 LeanCert Contributors. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: LeanCert Contributors +-/ +/-! +# Certified roots of differentiable systems + +This module implements a strong, norm-form Krawczyk test for square systems in +LeanCert's `ADSupported` expression fragment. The center and rational +preconditioner are untrusted certificate data; +`krawczykCheck` verifies AD support, center containment, invertibility, +a strict infinity-norm contraction bound, and a strict self-map enclosure. + +The golden theorem `krawczykCheck_sound` turns a successful Boolean check into +existence and uniqueness of a real root in the supplied box. +-/ + +@[expose] public section + +namespace LeanCert.Engine +open LeanCert.Core + +/-- Use the singleton zero interval as the additive identity. -/ +local instance intervalRatZero : Zero IntervalRat := ⟨IntervalRat.singleton 0⟩ +/-- Use endpoint-wise interval addition for finite interval sums. -/ +local instance intervalRatAdd : Add IntervalRat := ⟨IntervalRat.add⟩ + +private theorem intervalRat_ext {a b : IntervalRat} (hlo : a.lo = b.lo) (hhi : a.hi = b.hi) : + a = b := by + cases a + cases b + simp_all + +/-- Natural scalar multiplication by repeated interval addition. -/ +local instance : SMul Nat IntervalRat where + smul n a := + { lo := (n : ℚ) * a.lo + hi := (n : ℚ) * a.hi + le := mul_le_mul_of_nonneg_left a.le (by positivity) } + +/-- The additive commutative monoid of rational intervals. -/ +local instance : AddCommMonoid IntervalRat := + Function.Injective.addCommMonoid + (fun I : IntervalRat => (I.lo, I.hi)) + (by intro a b h; exact intervalRat_ext (congrArg Prod.fst h) (congrArg Prod.snd h)) + rfl (fun _ _ => rfl) (fun _ _ => rfl) + +/-- Extend a finite real coordinate vector to an expression environment with zero defaults. -/ +noncomputable def finEnv {n : Nat} (x : Fin n → ℝ) : Nat → ℝ := + fun i => if h : i < n then x ⟨i, h⟩ else 0 + +/-- Evaluate an expression in the environment of a finite real coordinate vector. -/ +noncomputable def evalFin {n : Nat} (e : Expr) (x : Fin n → ℝ) : ℝ := + Expr.eval (finEnv x) e + +theorem evalFin_differentiable {n : Nat} (e : Expr) (h : ADSupported e) : + Differentiable ℝ (evalFin (n := n) e) := by + induction h with + | const q => + rw [show evalFin (n := n) (.const q) = (fun _ : Fin n → ℝ => (q : ℝ)) from rfl] + exact differentiable_const _ + | var i => + by_cases hi : i < n + · rw [show evalFin (n := n) (.var i) = (fun x : Fin n → ℝ => x ⟨i, hi⟩) by + funext x; simp [evalFin, finEnv, hi]] + exact differentiable_apply _ + · rw [show evalFin (n := n) (.var i) = (fun _ : Fin n → ℝ => 0) by + funext x; simp [evalFin, finEnv, hi]] + exact differentiable_const _ + | add h₁ h₂ ih₁ ih₂ => + rw [show evalFin (n := n) (.add _ _) = evalFin (n := n) _ + evalFin (n := n) _ from rfl] + exact ih₁.add ih₂ + | mul h₁ h₂ ih₁ ih₂ => + rw [show evalFin (n := n) (.mul _ _) = evalFin (n := n) _ * evalFin (n := n) _ from rfl] + exact ih₁.mul ih₂ + | neg h ih => + rw [show evalFin (n := n) (.neg _) = -evalFin (n := n) _ from rfl] + exact ih.neg + | sin h ih => + rw [show evalFin (n := n) (.sin _) = Real.sin ∘ evalFin (n := n) _ from rfl] + exact Real.differentiable_sin.comp ih + | cos h ih => + rw [show evalFin (n := n) (.cos _) = Real.cos ∘ evalFin (n := n) _ from rfl] + exact Real.differentiable_cos.comp ih + | exp h ih => + rw [show evalFin (n := n) (.exp _) = Real.exp ∘ evalFin (n := n) _ from rfl] + exact Real.differentiable_exp.comp ih + +theorem finEnv_update {n : Nat} (x : Fin n → ℝ) (j : Fin n) (t : ℝ) : + finEnv (Function.update x j t) = Expr.updateVar (finEnv x) j.val t := by + funext i + by_cases hi : i < n + · by_cases hij : i = j.val + · subst i + simp [finEnv, Expr.updateVar] + · have hfin : (⟨i, hi⟩ : Fin n) ≠ j := by + intro h + exact hij (Fin.ext_iff.mp h) + simp [finEnv, Expr.updateVar, hi, hij, hfin] + · have hij : i ≠ j.val := by omega + simp [finEnv, Expr.updateVar, hi, hij] + +theorem fderiv_single_eq_deriv_evalAlong {n : Nat} (e : Expr) (h : ADSupported e) + (x : Fin n → ℝ) (j : Fin n) : + fderiv ℝ (evalFin (n := n) e) x (Pi.single j 1) = + deriv (Expr.evalAlong e (finEnv x) j.val) (x j) := by + have hout : HasFDerivAt (evalFin (n := n) e) + (fderiv ℝ (evalFin (n := n) e) (Function.update x j (x j))) + (Function.update x j (x j)) := + (evalFin_differentiable (n := n) e h).differentiableAt.hasFDerivAt + have hcomp := hout.comp_hasDerivAt (x j) (hasDerivAt_update x j (x j)) + rw [Function.update_eq_self] at hcomp + have heq : (evalFin (n := n) e ∘ Function.update x j) = + Expr.evalAlong e (finEnv x) j.val := by + funext t + simp only [Function.comp_apply, evalFin, Expr.evalAlong_eq] + rw [finEnv_update] + rw [heq] at hcomp + exact hcomp.deriv.symm + +/-- Evaluate all coordinate expressions of a finite system. -/ +noncomputable def systemEval {n : Nat} (F : Fin n → Expr) (x : Fin n → ℝ) : Fin n → ℝ := + fun i => evalFin (F i) x + +theorem systemEval_differentiable {n : Nat} (F : Fin n → Expr) + (h : ∀ i, ADSupported (F i)) : Differentiable ℝ (systemEval F) := by + rw [differentiable_pi] + intro i + exact evalFin_differentiable (F i) (h i) + +/-- The matrix of coordinate partial derivatives of an expression system. -/ +noncomputable def jacobianAt {n : Nat} (F : Fin n → Expr) (x : Fin n → ℝ) : + Matrix (Fin n) (Fin n) ℝ := + LinearMap.toMatrix' (fderiv ℝ (systemEval F) x).toLinearMap + +theorem jacobianAt_apply {n : Nat} (F : Fin n → Expr) (h : ∀ i, ADSupported (F i)) + (x : Fin n → ℝ) (i j : Fin n) : + jacobianAt F x i j = deriv (Expr.evalAlong (F i) (finEnv x) j.val) (x j) := by + rw [jacobianAt, LinearMap.toMatrix'_apply] + change fderiv ℝ (systemEval F) x (Pi.single j 1) i = _ + rw [show systemEval F = (fun x i => evalFin (F i) x) from rfl] + have hpi := fderiv_pi (𝕜 := ℝ) (x := x) + (φ := fun i => evalFin (F i)) (fun i => (evalFin_differentiable (F i) (h i)).differentiableAt) + rw [hpi] + simp only [ContinuousLinearMap.coe_pi'] + exact fderiv_single_eq_deriv_evalAlong (F i) (h i) x j + +/-- Extend a finite interval box to the evaluator’s indexed environment. -/ +def finBoxEnv {n : Nat} (X : Fin n → IntervalRat) : IntervalEnv := + fun i => if h : i < n then X ⟨i, h⟩ else IntervalRat.singleton 0 + +/-- Coordinatewise membership of a real vector in a rational interval box. -/ +def FinBoxMem {n : Nat} (x : Fin n → ℝ) (X : Fin n → IntervalRat) : Prop := + ∀ i, x i ∈ X i + +/-- Enclose the Jacobian entries by interval automatic differentiation. -/ +def intervalJacobian {n : Nat} (F : Fin n → Expr) (X : Fin n → IntervalRat) + (cfg : EvalConfig := {}) : Matrix (Fin n) (Fin n) IntervalRat := + fun i j => Optimization.derivIntervalCoreN (F i) (finBoxEnv X) j.val cfg + +theorem finEnv_mem_finBoxEnv {n : Nat} {x : Fin n → ℝ} {X : Fin n → IntervalRat} + (hx : FinBoxMem x X) : ∀ i, finEnv x i ∈ finBoxEnv X i := by + intro i + by_cases hi : i < n + · simpa [finEnv, finBoxEnv, hi] using hx ⟨i, hi⟩ + · simpa [finEnv, finBoxEnv, hi] using IntervalRat.mem_singleton 0 + +theorem jacobianAt_mem_intervalJacobian {n : Nat} (F : Fin n → Expr) + (h : ∀ i, ADSupported (F i)) (X : Fin n → IntervalRat) + (x : Fin n → ℝ) (hx : FinBoxMem x X) (cfg : EvalConfig) (i j : Fin n) : + jacobianAt F x i j ∈ intervalJacobian F X cfg i j := by + rw [jacobianAt_apply F h x i j] + exact Optimization.evalDualTotalCore_der_correct_idx (F i) (h i) (finEnv x) (finBoxEnv X) + j.val (finEnv_mem_finBoxEnv hx) (x j) (by + simpa only [finBoxEnv, j.isLt, dite_true] using hx j) cfg + +/-- Interpret a real matrix as a continuous linear map on finite coordinate vectors. -/ +noncomputable def matrixCLM {n : Nat} (A : Matrix (Fin n) (Fin n) ℝ) : + (Fin n → ℝ) →L[ℝ] (Fin n → ℝ) := + ContinuousLinearMap.mk (Matrix.mulVecLin A) + +/-- The preconditioned Newton map `x ↦ x - Y (F x)`. -/ +noncomputable def newtonMap {n : Nat} (Y : Matrix (Fin n) (Fin n) ℝ) + (F : Fin n → Expr) (x : Fin n → ℝ) : Fin n → ℝ := + x - Matrix.mulVec Y (systemEval F x) + +theorem newtonMap_differentiable {n : Nat} (Y : Matrix (Fin n) (Fin n) ℝ) + (F : Fin n → Expr) (h : ∀ i, ADSupported (F i)) : + Differentiable ℝ (newtonMap Y F) := by + have hY : Differentiable ℝ (fun x => matrixCLM Y (systemEval F x)) := + (matrixCLM Y).differentiable.comp (systemEval_differentiable F h) + rw [show newtonMap Y F = id - (fun x => matrixCLM Y (systemEval F x)) by + funext x + rfl] + exact differentiable_id.sub hY + +theorem newtonMap_fderiv_matrix {n : Nat} (Y : Matrix (Fin n) (Fin n) ℝ) + (F : Fin n → Expr) (h : ∀ i, ADSupported (F i)) (x : Fin n → ℝ) : + LinearMap.toMatrix' (fderiv ℝ (newtonMap Y F) x).toLinearMap = + 1 - Y * jacobianAt F x := by + have hF : HasFDerivAt (systemEval F) (fderiv ℝ (systemEval F) x) x := + (systemEval_differentiable F h).differentiableAt.hasFDerivAt + have hY := (matrixCLM Y).hasFDerivAt.comp x hF + have hg : HasFDerivAt (newtonMap Y F) + (ContinuousLinearMap.id ℝ _ - (matrixCLM Y).comp (fderiv ℝ (systemEval F) x)) x := by + change HasFDerivAt (fun z => z - matrixCLM Y (systemEval F z)) _ x + exact (hasFDerivAt_id x).sub hY + rw [hg.fderiv] + change LinearMap.toMatrix' ((ContinuousLinearMap.id ℝ _ - + (matrixCLM Y).comp (fderiv ℝ (systemEval F) x)).toLinearMap) = _ + rw [ContinuousLinearMap.toLinearMap_sub] + change LinearMap.toMatrix' (1 - + (matrixCLM Y).toLinearMap.comp (fderiv ℝ (systemEval F) x).toLinearMap) = _ + rw [map_sub, LinearMap.toMatrix'_one, LinearMap.toMatrix'_comp] + have hmatY : LinearMap.toMatrix' (matrixCLM Y).toLinearMap = Y := by + change LinearMap.toMatrix' (Matrix.mulVecLin Y) = Y + exact LinearMap.toMatrix'_toLin' Y + rw [hmatY] + rfl + +/-- The set of real vectors lying coordinatewise in the interval box. -/ +def finBoxSet {n : Nat} (X : Fin n → IntervalRat) : Set (Fin n → ℝ) := + {x | FinBoxMem x X} + +theorem finBoxSet_closed {n : Nat} (X : Fin n → IntervalRat) : IsClosed (finBoxSet X) := by + have hi : ∀ i : Fin n, IsClosed {x : Fin n → ℝ | x i ∈ X i} := by + intro i + exact isClosed_Icc.preimage (continuous_apply i) + have hinter := isClosed_iInter hi + have heq : (⋂ i : Fin n, {x : Fin n → ℝ | x i ∈ X i}) = finBoxSet X := by + ext x + simp [finBoxSet, FinBoxMem] + rw [← heq] + exact hinter + +theorem finBoxSet_convex {n : Nat} (X : Fin n → IntervalRat) : Convex ℝ (finBoxSet X) := by + intro x hx y hy a b ha hb hab i + simp only [finBoxSet, Set.mem_ofPred_eq, FinBoxMem, IntervalRat.mem_def] at hx hy ⊢ + specialize hx i + specialize hy i + simp only [Pi.add_apply, Pi.smul_apply, smul_eq_mul] + constructor + · calc + (X i).lo = a * (X i).lo + b * (X i).lo := by + calc + ((X i).lo : ℝ) = 1 * (X i).lo := by ring + _ = (a + b) * (X i).lo := by rw [hab] + _ = _ := by ring + _ ≤ a * x i + b * y i := add_le_add + (mul_le_mul_of_nonneg_left hx.1 ha) (mul_le_mul_of_nonneg_left hy.1 hb) + · calc + a * x i + b * y i ≤ a * (X i).hi + b * (X i).hi := add_le_add + (mul_le_mul_of_nonneg_left hx.2 ha) (mul_le_mul_of_nonneg_left hy.2 hb) + _ = (X i).hi := by + calc + a * (X i).hi + b * (X i).hi = (a + b) * (X i).hi := by ring + _ = 1 * (X i).hi := by rw [hab] + _ = _ := by ring + +theorem contraction_unique_fixedPoint_in_finBox {n : Nat} + (X : Fin n → IntervalRat) (m : Fin n → ℝ) (hm : FinBoxMem m X) + (g : (Fin n → ℝ) → (Fin n → ℝ)) (hmap : Set.MapsTo g (finBoxSet X) (finBoxSet X)) + (q : ℝ) (hq0 : 0 ≤ q) (hq1 : q < 1) + (hdiff : ∀ x ∈ finBoxSet X, DifferentiableAt ℝ g x) + (hderiv : ∀ x ∈ finBoxSet X, ‖fderiv ℝ g x‖ ≤ q) : + ∃! x, FinBoxMem x X ∧ g x = x := by + let K : NNReal := ⟨q, hq0⟩ + have hlipOn : LipschitzOnWith K g (finBoxSet X) := by + rw [lipschitzOnWith_iff_norm_sub_le] + intro x hx y hy + change ‖g x - g y‖ ≤ q * ‖x - y‖ + simpa [norm_sub_rev] using + (finBoxSet_convex X).norm_image_sub_le_of_norm_fderiv_le hdiff hderiv hy hx + have hlipRestr : LipschitzWith K (hmap.restrict g (finBoxSet X) (finBoxSet X)) := + lipschitzOnWith_iff_restrict.mp hlipOn + have hcontract : ContractingWith K (hmap.restrict g (finBoxSet X) (finBoxSet X)) := by + refine ⟨?_, hlipRestr⟩ + exact hq1 + obtain ⟨x, hx, hfix, _⟩ := hcontract.exists_fixedPoint' + (finBoxSet_closed X).isComplete hmap hm (edist_ne_top m (g m)) + refine ⟨x, ⟨hx, hfix⟩, ?_⟩ + intro y hy + have hl := (finBoxSet_convex X).norm_image_sub_le_of_norm_fderiv_le + hdiff hderiv hx hy.1 + rw [hy.2, hfix] at hl + have hzero : ‖y - x‖ = 0 := by nlinarith [norm_nonneg (y - x)] + exact sub_eq_zero.mp (norm_eq_zero.mp hzero) + +open scoped Matrix.Norms.Operator + +/-- The identity matrix represented by singleton rational intervals. -/ +def intervalIdentity {n : Nat} : Matrix (Fin n) (Fin n) IntervalRat := + fun i j => IntervalRat.singleton (if i = j then 1 else 0) + +/-- Multiply a rational matrix by an interval matrix using interval sums. -/ +def ratMulInterval {n : Nat} (Y : Matrix (Fin n) (Fin n) ℚ) + (J : Matrix (Fin n) (Fin n) IntervalRat) : Matrix (Fin n) (Fin n) IntervalRat := + fun i j => ∑ k, IntervalRat.scale (Y i k) (J k j) + +/-- The interval matrix `I - Y J` enclosing the Newton-map derivative. -/ +def preconditionedJacobian {n : Nat} (Y : Matrix (Fin n) (Fin n) ℚ) + (J : Matrix (Fin n) (Fin n) IntervalRat) : Matrix (Fin n) (Fin n) IntervalRat := + fun i j => IntervalRat.sub (intervalIdentity i j) (ratMulInterval Y J i j) + +theorem mem_interval_sum {ι : Type*} (s : Finset ι) + (x : ι → ℝ) (I : ι → IntervalRat) (h : ∀ i ∈ s, x i ∈ I i) : + (∑ i ∈ s, x i) ∈ ∑ i ∈ s, I i := by + classical + induction s using Finset.induction_on with + | empty => + simp only [Finset.sum_empty] + have hz : (0 : IntervalRat) = IntervalRat.singleton 0 := + intervalRat_ext rfl rfl + rw [hz] + norm_num [IntervalRat.mem_def, IntervalRat.singleton] + | @insert a s ha ih => + simp only [Finset.mem_insert] at h + simp only [Finset.sum_insert ha] + exact IntervalRat.mem_add (h a (Or.inl rfl)) + (ih fun i hi => h i (Or.inr hi)) + +theorem mem_ratMulInterval {n : Nat} (Y : Matrix (Fin n) (Fin n) ℚ) + (Jreal : Matrix (Fin n) (Fin n) ℝ) (J : Matrix (Fin n) (Fin n) IntervalRat) + (hJ : ∀ i j, Jreal i j ∈ J i j) (i j : Fin n) : + (Y.map (fun q => (q : ℝ)) * Jreal) i j ∈ ratMulInterval Y J i j := by + simp only [Matrix.mul_apply, ratMulInterval] + exact mem_interval_sum Finset.univ (fun k => (Y i k : ℝ) * Jreal k j) + (fun k => IntervalRat.scale (Y i k) (J k j)) fun k _ => + IntervalRat.mem_scale (Y i k) (hJ k j) + +theorem mem_preconditionedJacobian {n : Nat} (Y : Matrix (Fin n) (Fin n) ℚ) + (Jreal : Matrix (Fin n) (Fin n) ℝ) (J : Matrix (Fin n) (Fin n) IntervalRat) + (hJ : ∀ i j, Jreal i j ∈ J i j) (i j : Fin n) : + (1 - Y.map (fun q => (q : ℝ)) * Jreal) i j ∈ preconditionedJacobian Y J i j := by + apply IntervalRat.mem_sub + · rw [Matrix.one_apply] + unfold intervalIdentity + split + · norm_num [IntervalRat.mem_def, IntervalRat.singleton] + · norm_num [IntervalRat.mem_def, IntervalRat.singleton] + · exact mem_ratMulInterval Y Jreal J hJ i j + +/-- The larger absolute endpoint, bounding absolute values in the interval. -/ +def intervalAbsBound (I : IntervalRat) : ℚ := max |I.lo| |I.hi| + +/-- The sum of absolute interval bounds in a selected matrix row. -/ +def intervalMatrixRowBound {n : Nat} (A : Matrix (Fin n) (Fin n) IntervalRat) + (i : Fin n) : ℚ := ∑ j, intervalAbsBound (A i j) + +/-- The maximum interval row sum, bounding the matrix’s sup-norm operator norm. -/ +def intervalMatrixBound {n : Nat} (A : Matrix (Fin n) (Fin n) IntervalRat) : ℚ := + (List.ofFn fun i => intervalMatrixRowBound A i).foldl max 0 + +theorem abs_le_intervalAbsBound {x : ℝ} {I : IntervalRat} (hx : x ∈ I) : + |x| ≤ intervalAbsBound I := by + rw [abs_le] + constructor + · have hlo : ((I.lo : ℚ) : ℝ) ≤ x := hx.1 + have habs : -|(I.lo : ℝ)| ≤ (I.lo : ℝ) := neg_abs_le _ + have hmax : |(I.lo : ℝ)| ≤ (intervalAbsBound I : ℝ) := by + exact_mod_cast le_max_left |I.lo| |I.hi| + linarith [neg_le_neg hmax] + · have hhi : x ≤ ((I.hi : ℚ) : ℝ) := hx.2 + have habs : (I.hi : ℝ) ≤ |(I.hi : ℝ)| := le_abs_self _ + have hmax : |(I.hi : ℝ)| ≤ (intervalAbsBound I : ℝ) := by + exact_mod_cast le_max_right |I.lo| |I.hi| + linarith + +private theorem le_foldl_max (xs : List ℚ) (a : ℚ) : a ≤ xs.foldl max a := by + induction xs generalizing a with + | nil => simp + | cons x xs ih => + simp only [List.foldl_cons] + exact le_trans (le_max_left _ _) (ih _) + +private theorem foldl_max_mono {xs : List ℚ} {a b : ℚ} (hab : a ≤ b) : + xs.foldl max a ≤ xs.foldl max b := by + induction xs generalizing a b with + | nil => simpa using hab + | cons x xs ih => + simp only [List.foldl_cons] + exact ih (max_le_max_right x hab) + +private theorem le_foldl_max_of_mem {x : ℚ} {xs : List ℚ} (hx : x ∈ xs) : + x ≤ xs.foldl max 0 := by + induction xs with + | nil => simp at hx + | cons a as ih => + simp only [List.mem_cons] at hx + simp only [List.foldl_cons] + rcases hx with rfl | hx + · exact le_trans (le_max_right _ _) (le_foldl_max as _) + · exact le_trans (ih hx) (foldl_max_mono (le_max_left 0 a)) + +theorem intervalMatrixRowBound_le_bound {n : Nat} (A : Matrix (Fin n) (Fin n) IntervalRat) + (i : Fin n) : intervalMatrixRowBound A i ≤ intervalMatrixBound A := by + apply le_foldl_max_of_mem + exact List.mem_ofFn.mpr ⟨i, rfl⟩ + +theorem matrix_norm_le_intervalMatrixBound {n : Nat} + (R : Matrix (Fin n) (Fin n) ℝ) (A : Matrix (Fin n) (Fin n) IntervalRat) + (hmem : ∀ i j, R i j ∈ A i j) : + ‖R‖ ≤ (intervalMatrixBound A : ℝ) := by + rw [Matrix.linfty_opNorm_def] + have hbound0 : 0 ≤ intervalMatrixBound A := le_foldl_max _ 0 + let Q : NNReal := ⟨intervalMatrixBound A, by exact_mod_cast hbound0⟩ + change (↑((Finset.univ : Finset (Fin n)).sup fun i => ∑ j, ‖R i j‖₊) : ℝ) ≤ ↑Q + apply NNReal.coe_le_coe.mpr + refine Finset.sup_le fun i _ => ?_ + apply NNReal.coe_le_coe.mp + simp only [NNReal.coe_sum, coe_nnnorm] + change (∑ j, |R i j|) ≤ (intervalMatrixBound A : ℝ) + calc + (∑ j, |R i j|) ≤ ∑ j, (intervalAbsBound (A i j) : ℝ) := + Finset.sum_le_sum fun j _ => abs_le_intervalAbsBound (hmem i j) + _ = (intervalMatrixRowBound A i : ℝ) := by + simp [intervalMatrixRowBound] + _ ≤ (intervalMatrixBound A : ℝ) := by + exact_mod_cast intervalMatrixRowBound_le_bound A i + +theorem newtonMap_fderiv_norm_le {n : Nat} (Y : Matrix (Fin n) (Fin n) ℚ) + (F : Fin n → Expr) (h : ∀ i, ADSupported (F i)) (X : Fin n → IntervalRat) + (x : Fin n → ℝ) (hx : FinBoxMem x X) (cfg : EvalConfig) : + ‖fderiv ℝ (newtonMap (Y.map fun q => (q : ℝ)) F) x‖ ≤ + (intervalMatrixBound (preconditionedJacobian Y (intervalJacobian F X cfg)) : ℝ) := by + rw [← Matrix.linfty_opNorm_toMatrix] + rw [newtonMap_fderiv_matrix (Y.map fun q => (q : ℝ)) F h x] + apply matrix_norm_le_intervalMatrixBound + exact mem_preconditionedJacobian Y (jacobianAt F x) (intervalJacobian F X cfg) + (jacobianAt_mem_intervalJacobian F h X x hx cfg) + +/-- Represent a rational center by singleton intervals in the evaluation environment. -/ +def pointIntervalEnv {n : Nat} (m : Fin n → ℚ) : IntervalEnv := + fun i => if h : i < n then IntervalRat.singleton (m ⟨i, h⟩) else IntervalRat.singleton 0 + +/-- Enclose the expression system at a rational center by interval evaluation. -/ +def pointEvalIntervals {n : Nat} (F : Fin n → Expr) (m : Fin n → ℚ) + (cfg : EvalConfig := {}) : Fin n → IntervalRat := + fun i => LeanCert.Internal.Rational.evalTotalCore (F i) (pointIntervalEnv m) cfg + +/-- Multiply a rational matrix by an interval vector. -/ +def intervalRatMatVec {n : Nat} (Y : Matrix (Fin n) (Fin n) ℚ) + (v : Fin n → IntervalRat) : Fin n → IntervalRat := + fun i => ∑ j, IntervalRat.scale (Y i j) (v j) + +/-- An interval enclosure of the preconditioned Newton map at the chosen center. -/ +def newtonCenterInterval {n : Nat} (F : Fin n → Expr) (m : Fin n → ℚ) + (Y : Matrix (Fin n) (Fin n) ℚ) (cfg : EvalConfig := {}) : Fin n → IntervalRat := + fun i => IntervalRat.sub (IntervalRat.singleton (m i)) + (intervalRatMatVec Y (pointEvalIntervals F m cfg) i) + +theorem finEnv_ratCast_mem_pointIntervalEnv {n : Nat} (m : Fin n → ℚ) : + ∀ i, finEnv (fun j => (m j : ℝ)) i ∈ pointIntervalEnv m i := by + intro i + by_cases hi : i < n + · simpa [finEnv, pointIntervalEnv, hi] using IntervalRat.mem_singleton (m ⟨i, hi⟩) + · simpa [finEnv, pointIntervalEnv, hi] using IntervalRat.mem_singleton 0 + +theorem systemEval_mem_pointEvalIntervals {n : Nat} (F : Fin n → Expr) + (h : ∀ i, ADSupported (F i)) (m : Fin n → ℚ) (cfg : EvalConfig) (i : Fin n) : + systemEval F (fun j => (m j : ℝ)) i ∈ pointEvalIntervals F m cfg i := by + exact evalIntervalCore_correct (F i) (h i).toCore _ _ + (finEnv_ratCast_mem_pointIntervalEnv m) cfg + (LeanCert.Engine.ADSupported.domainValid (h i) _ cfg) + +theorem newtonMap_center_mem {n : Nat} (F : Fin n → Expr) + (h : ∀ i, ADSupported (F i)) (m : Fin n → ℚ) + (Y : Matrix (Fin n) (Fin n) ℚ) (cfg : EvalConfig) (i : Fin n) : + newtonMap (Y.map fun q => (q : ℝ)) F (fun j => (m j : ℝ)) i ∈ + newtonCenterInterval F m Y cfg i := by + apply IntervalRat.mem_sub + · exact IntervalRat.mem_singleton (m i) + · simp only [Matrix.mulVec, dotProduct, intervalRatMatVec] + exact mem_interval_sum Finset.univ + (fun j => (Y i j : ℝ) * systemEval F (fun k => (m k : ℝ)) j) + (fun j => IntervalRat.scale (Y i j) (pointEvalIntervals F m cfg j)) + (fun j _ => IntervalRat.mem_scale (Y i j) + (systemEval_mem_pointEvalIntervals F h m cfg j)) + +/-- The greater endpoint distance from the center in a selected coordinate. -/ +def coordinateRadius {n : Nat} (X : Fin n → IntervalRat) (m : Fin n → ℚ) + (i : Fin n) : ℚ := max (m i - (X i).lo) ((X i).hi - m i) + +/-- The maximum coordinate radius of the box around the chosen center. -/ +def boxRadius {n : Nat} (X : Fin n → IntervalRat) (m : Fin n → ℚ) : ℚ := + (List.ofFn fun i => coordinateRadius X m i).foldl max 0 + +theorem coordinateRadius_le_boxRadius {n : Nat} (X : Fin n → IntervalRat) + (m : Fin n → ℚ) (i : Fin n) : coordinateRadius X m i ≤ boxRadius X m := by + apply le_foldl_max_of_mem + exact List.mem_ofFn.mpr ⟨i, rfl⟩ + +theorem abs_sub_center_le_coordinateRadius {n : Nat} {X : Fin n → IntervalRat} + {m : Fin n → ℚ} {x : Fin n → ℝ} (hx : FinBoxMem x X) (i : Fin n) : + |x i - (m i : ℝ)| ≤ coordinateRadius X m i := by + rw [abs_le] + constructor + · have hlo := (hx i).1 + have hmax : m i - (X i).lo ≤ coordinateRadius X m i := le_max_left _ _ + have hmaxR : ((m i - (X i).lo : ℚ) : ℝ) ≤ (coordinateRadius X m i : ℝ) := + by exact_mod_cast hmax + push_cast at hmaxR + linarith + · have hhi := (hx i).2 + have hmax : (X i).hi - m i ≤ coordinateRadius X m i := le_max_right _ _ + have hmaxR : (((X i).hi - m i : ℚ) : ℝ) ≤ (coordinateRadius X m i : ℝ) := + by exact_mod_cast hmax + push_cast at hmaxR + linarith + +theorem boxRadius_nonneg {n : Nat} (X : Fin n → IntervalRat) (m : Fin n → ℚ) : + 0 ≤ boxRadius X m := le_foldl_max _ 0 + +theorem norm_sub_center_le_boxRadius {n : Nat} {X : Fin n → IntervalRat} + {m : Fin n → ℚ} {x : Fin n → ℝ} (hx : FinBoxMem x X) : + ‖x - (fun i => (m i : ℝ))‖ ≤ (boxRadius X m : ℝ) := by + rw [pi_norm_le_iff_of_nonneg] + · intro i + rw [Real.norm_eq_abs] + exact (abs_sub_center_le_coordinateRadius hx i).trans + (by exact_mod_cast coordinateRadius_le_boxRadius X m i) + · exact_mod_cast boxRadius_nonneg X m + +/-- The rational interval with endpoints `-d` and `d`. -/ +def symmetricInterval (d : ℚ) : IntervalRat := + { lo := -|d| + hi := |d| + le := neg_nonpos.mpr (abs_nonneg d) |>.trans (abs_nonneg d) } + +/-- Enclose the Newton image using its center value and a uniform derivative bound. -/ +def newtonImageEnclosure {n : Nat} (F : Fin n → Expr) (X : Fin n → IntervalRat) + (m : Fin n → ℚ) (Y : Matrix (Fin n) (Fin n) ℚ) (cfg : EvalConfig := {}) : + Fin n → IntervalRat := + let q := intervalMatrixBound (preconditionedJacobian Y (intervalJacobian F X cfg)) + let r := boxRadius X m + fun i => IntervalRat.add (newtonCenterInterval F m Y cfg i) (symmetricInterval (q * r)) + +/-- Test whether both endpoints lie strictly inside another interval. -/ +def intervalStrictInside (I X : IntervalRat) : Bool := X.lo < I.lo && I.hi < X.hi + +theorem intervalStrictInside_sound {I X : IntervalRat} (h : intervalStrictInside I X = true) : + ∀ x : ℝ, x ∈ I → x ∈ X := by + intro x hx + simp only [intervalStrictInside, Bool.and_eq_true, decide_eq_true_eq] at h + exact ⟨le_trans (by exact_mod_cast h.1.le) hx.1, le_trans hx.2 (by exact_mod_cast h.2.le)⟩ + +theorem newtonMap_mapsTo_of_imageEnclosure {n : Nat} (F : Fin n → Expr) + (h : ∀ i, ADSupported (F i)) (X : Fin n → IntervalRat) (m : Fin n → ℚ) + (hm : FinBoxMem (fun i => (m i : ℝ)) X) (Y : Matrix (Fin n) (Fin n) ℚ) + (cfg : EvalConfig) + (hencl : ∀ i, intervalStrictInside (newtonImageEnclosure F X m Y cfg i) (X i) = true) : + Set.MapsTo (newtonMap (Y.map fun q => (q : ℝ)) F) (finBoxSet X) (finBoxSet X) := by + intro x hx i + let q : ℚ := intervalMatrixBound (preconditionedJacobian Y (intervalJacobian F X cfg)) + let mr : Fin n → ℝ := fun i => (m i : ℝ) + have hdiff : ‖newtonMap (Y.map fun q => (q : ℝ)) F x - + newtonMap (Y.map fun q => (q : ℝ)) F mr‖ ≤ (q : ℝ) * ‖x - mr‖ := by + apply (finBoxSet_convex X).norm_image_sub_le_of_norm_fderiv_le (𝕜 := ℝ) + · intro z hz + exact (newtonMap_differentiable (Y.map fun q => (q : ℝ)) F h).differentiableAt + · intro z hz + exact newtonMap_fderiv_norm_le Y F h X z hz cfg + · exact hm + · exact hx + have hq0 : 0 ≤ q := le_foldl_max _ 0 + have hr0 : 0 ≤ boxRadius X m := boxRadius_nonneg X m + have hnorm : ‖newtonMap (Y.map fun q => (q : ℝ)) F x - + newtonMap (Y.map fun q => (q : ℝ)) F mr‖ ≤ + ((q * boxRadius X m : ℚ) : ℝ) := by + calc + _ ≤ (q : ℝ) * ‖x - mr‖ := hdiff + _ ≤ (q : ℝ) * (boxRadius X m : ℝ) := + mul_le_mul_of_nonneg_left (norm_sub_center_le_boxRadius hx) (by exact_mod_cast hq0) + _ = _ := by push_cast; rfl + have hcoord : |(newtonMap (Y.map fun q => (q : ℝ)) F x - + newtonMap (Y.map fun q => (q : ℝ)) F mr) i| ≤ + ((q * boxRadius X m : ℚ) : ℝ) := + (norm_le_pi_norm _ i).trans hnorm + have herr : (newtonMap (Y.map fun q => (q : ℝ)) F x - + newtonMap (Y.map fun q => (q : ℝ)) F mr) i ∈ + symmetricInterval (q * boxRadius X m) := by + rw [abs_le] at hcoord + simpa [symmetricInterval, IntervalRat.mem_def, abs_of_nonneg (mul_nonneg hq0 hr0)] using hcoord + have hcenter := newtonMap_center_mem F h m Y cfg i + have himage : newtonMap (Y.map fun q => (q : ℝ)) F x i ∈ + newtonImageEnclosure F X m Y cfg i := by + have hadd := IntervalRat.mem_add hcenter herr + simpa [newtonImageEnclosure, q, mr, Pi.sub_apply] using hadd + exact intervalStrictInside_sound (hencl i) _ himage + +/-- Rational center and preconditioner data for a checkable Krawczyk certificate. -/ +structure KrawczykCert (n : Nat) where + /-- The rational center used by the Newton-image enclosure. -/ + center : Fin n → ℚ + /-- The rational matrix used to precondition the equation system. -/ + preconditioner : Matrix (Fin n) (Fin n) ℚ + +/-- Coordinatewise containment of the rational center in the interval box. -/ +def centerInside {n : Nat} (X : Fin n → IntervalRat) (m : Fin n → ℚ) : Prop := + ∀ i, (X i).lo ≤ m i ∧ m i ≤ (X i).hi + +instance {n : Nat} (X : Fin n → IntervalRat) (m : Fin n → ℚ) : + Decidable (centerInside X m) := by + unfold centerInside + infer_instance + +/-- Check supported derivatives, center containment, invertibility, contraction and self-map +bounds. -/ +def krawczykCheck {n : Nat} (F : Fin n → Expr) (X : Fin n → IntervalRat) + (cert : KrawczykCert n) (cfg : EvalConfig := {}) : Bool := + decide (∀ i, (F i).checkADSupported = true) && + decide (centerInside X cert.center) && + decide (cert.preconditioner.det ≠ 0) && + decide (intervalMatrixBound + (preconditionedJacobian cert.preconditioner (intervalJacobian F X cfg)) < 1) && + decide (∀ i, intervalStrictInside + (newtonImageEnclosure F X cert.center cert.preconditioner cfg i) (X i) = true) + +/-- Every expression in the finite system evaluates to zero at the given point. -/ +def SystemZero {n : Nat} (F : Fin n → Expr) (x : Fin n → ℝ) : Prop := + ∀ i, evalFin (F i) x = 0 + +theorem centerInside_sound {n : Nat} {X : Fin n → IntervalRat} {m : Fin n → ℚ} + (h : centerInside X m) : FinBoxMem (fun i => (m i : ℝ)) X := by + intro i + constructor + · change ((X i).lo : ℝ) ≤ (m i : ℝ) + exact_mod_cast (h i).1 + · change (m i : ℝ) ≤ ((X i).hi : ℝ) + exact_mod_cast (h i).2 + +theorem fixedPoint_iff_systemZero {n : Nat} (F : Fin n → Expr) + (Y : Matrix (Fin n) (Fin n) ℚ) (hdet : Y.det ≠ 0) (x : Fin n → ℝ) : + newtonMap (Y.map fun q => (q : ℝ)) F x = x ↔ SystemZero F x := by + let Yr : Matrix (Fin n) (Fin n) ℝ := Y.map fun q => (q : ℝ) + have hdetR : Yr.det ≠ 0 := by + simp only [Yr] + exact_mod_cast hdet + have hinj : Function.Injective Yr.mulVec := + Matrix.mulVec_injective_iff_isUnit.mpr + (Yr.isUnit_iff_isUnit_det.mpr (isUnit_iff_ne_zero.mpr hdetR)) + constructor + · intro hfix + have hmul : Yr.mulVec (systemEval F x) = 0 := by + funext i + have hi := congrFun hfix i + change x i - Yr.mulVec (systemEval F x) i = x i at hi + exact sub_eq_self.mp hi + have hz : systemEval F x = 0 := hinj (by simpa using hmul) + intro i + exact congrFun hz i + · intro hz + have hs : systemEval F x = 0 := by + funext i + exact hz i + funext i + simp [newtonMap, hs] + +theorem krawczykCheck_sound {n : Nat} (F : Fin n → Expr) (X : Fin n → IntervalRat) + (cert : KrawczykCert n) (cfg : EvalConfig) + (hcheck : krawczykCheck F X cert cfg = true) : + ∃! x, FinBoxMem x X ∧ SystemZero F x := by + simp only [krawczykCheck, Bool.and_eq_true, decide_eq_true_eq] at hcheck + rcases hcheck with ⟨⟨⟨⟨hsupported, hcenter⟩, hdet⟩, hq⟩, hencl⟩ + have hsupp : ∀ i, ADSupported (F i) := fun i => + ((F i).checkADSupported_eq_true_iff).mp (hsupported i) + let q : ℚ := intervalMatrixBound + (preconditionedJacobian cert.preconditioner (intervalJacobian F X cfg)) + have hq0 : 0 ≤ q := le_foldl_max _ 0 + have hfixed := contraction_unique_fixedPoint_in_finBox X + (fun i => (cert.center i : ℝ)) (centerInside_sound hcenter) + (newtonMap (cert.preconditioner.map fun q => (q : ℝ)) F) + (newtonMap_mapsTo_of_imageEnclosure F hsupp X cert.center + (centerInside_sound hcenter) cert.preconditioner cfg hencl) + (q : ℝ) (by exact_mod_cast hq0) (by exact_mod_cast hq) + (fun x _ => (newtonMap_differentiable + (cert.preconditioner.map fun q => (q : ℝ)) F hsupp).differentiableAt) + (fun x hx => newtonMap_fderiv_norm_le cert.preconditioner F hsupp X x hx cfg) + refine ⟨hfixed.choose, ⟨hfixed.choose_spec.1.1, + (fixedPoint_iff_systemZero F cert.preconditioner hdet hfixed.choose).mp + hfixed.choose_spec.1.2⟩, ?_⟩ + intro y hy + exact hfixed.unique ⟨hy.1, + (fixedPoint_iff_systemZero F cert.preconditioner hdet y).mpr hy.2⟩ + hfixed.choose_spec.1 + +end LeanCert.Engine + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle001.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle001.lean new file mode 100644 index 0000000000..ca67023775 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle001.lean @@ -0,0 +1,816 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import Mathlib.Algebra.BigOperators.Fin +public import Mathlib.Basic.Real.Basic +public import Mathlib.Data.Rat.Cast.Order +public import Mathlib.Data.Rat.Floor +public import Mathlib.Data.Set.Lattice.Bounded +public import Mathlib.Data.Set.Lattice.Disjoint +public import Mathlib.Data.Set.Lattice.Image +public import Mathlib.Data.Set.Lattice.Indexed +public import Mathlib.Data.Set.Lattice.Order +public import Mathlib.LinearAlgebra.Matrix.Determinant.Basic +public import Mathlib.Tactic.NormNum +public import Mathlib.Topology.Constructions +public import Mathlib.Topology.Defs.Basic +public import Mathlib.Topology.Instances.Real.Lemmas + +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.Foundation.Batch001`. +-/ + +@[expose] public section + +noncomputable section + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `Basic`. +* `KrawczykSpec`. +* `RationalInterval`. +* `CertificateManifest`. +* `ExactReplay`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Basic planar geometry for the moving-sofa problem + +This file fixes the exact hallway convention used by the manuscript. +The inner quadrant is open, so contact with an inner wall is allowed. +-/ + +@[expose] public section + +namespace GerverSofa + +/-- Cartesian coordinates for the hallway and sofa geometry. -/ +abbrev Point := ℝ × ℝ + +/-- Horizontal unit-width arm `(-∞,1] × [0,1]`. -/ +def horizontalArm : Set Point := + {p | p.1 ≤ 1 ∧ 0 ≤ p.2 ∧ p.2 ≤ 1} + +/-- Vertical unit-width arm `[0,1] × (-∞,1]`. -/ +def verticalArm : Set Point := + {p | 0 ≤ p.1 ∧ p.1 ≤ 1 ∧ p.2 ≤ 1} + +/-- Closed outer quarter-plane `(-∞,1]²`. -/ +def outerQuarter : Set Point := + {p | p.1 ≤ 1 ∧ p.2 ≤ 1} + +/-- Open inner quarter-plane `(-∞,0)²`. -/ +def innerQuarter : Set Point := + {p | p.1 < 0 ∧ p.2 < 0} + +/-- The standard unit right-angled hallway. -/ +def hallway : Set Point := horizontalArm ∪ verticalArm + +/-- Quarter-plane presentation of the standard hallway. -/ +theorem hallway_eq_outer_diff_inner : + hallway = outerQuarter \ innerQuarter := by + ext p + constructor + · intro hp + rcases hp with hp | hp + · exact ⟨⟨hp.1, hp.2.2⟩, fun hn => (not_lt_of_ge hp.2.1) hn.2⟩ + · exact ⟨⟨hp.2.1, hp.2.2⟩, fun hn => (not_lt_of_ge hp.1) hn.1⟩ + · rintro ⟨hout, hnotin⟩ + by_cases hx : 0 ≤ p.1 + · exact Or.inr ⟨hx, hout.1, hout.2⟩ + · have hxneg : p.1 < 0 := lt_of_not_ge hx + have hy : 0 ≤ p.2 := by + by_contra hy0 + exact hnotin ⟨hxneg, lt_of_not_ge hy0⟩ + exact Or.inl ⟨hout.1, hy, hout.2⟩ + +@[simp] theorem mem_horizontalArm (p : Point) : + p ∈ horizontalArm ↔ p.1 ≤ 1 ∧ 0 ≤ p.2 ∧ p.2 ≤ 1 := Iff.rfl + +@[simp] theorem mem_verticalArm (p : Point) : + p ∈ verticalArm ↔ 0 ≤ p.1 ∧ p.1 ≤ 1 ∧ p.2 ≤ 1 := Iff.rfl + +@[simp] theorem mem_outerQuarter (p : Point) : + p ∈ outerQuarter ↔ p.1 ≤ 1 ∧ p.2 ≤ 1 := Iff.rfl + +@[simp] theorem mem_innerQuarter (p : Point) : + p ∈ innerQuarter ↔ p.1 < 0 ∧ p.2 < 0 := Iff.rfl + +end GerverSofa + +end + +end + +section + +/-! +# Specification boundary for interval/Krawczyk certification + +The records below make the logical target explicit. A completed numerical +formalisation must construct these records from exact interval operations, +Taylor bounds for `sin`/`cos`, a certified interval Jacobian and the general +Krawczyk theorem. No global axiom is introduced here. +-/ + +@[expose] public section + +namespace GerverSofa + +/-- A unique solution of a predicate inside an explicit set. -/ +structure CertifiedUniqueSolution {α : Type*} (P : α → Prop) (X : Set α) where + /-- The certified point satisfying the predicate in the specified domain. -/ + solution : α + solution_mem : solution ∈ X + satisfies : P solution + unique_iff : ∀ y, y ∈ X → (P y ↔ y = solution) + +/-- Any other solution in the certified domain equals the recorded solution. -/ +theorem CertifiedUniqueSolution.unique {α : Type*} {P : α → Prop} {X : Set α} + (c : CertifiedUniqueSolution P X) (y : α) (hy : y ∈ X) (hP : P y) : + y = c.solution := (c.unique_iff y hy).mp hP + +/-- Real coordinate vectors indexed by a finite type. -/ +abbrev Vec (n : Nat) := Fin n → ℝ + +/-- A unique zero of a vector-valued function in a set. -/ +def CertifiedUniqueZero {n : Nat} (F : Vec n → Vec n) (X : Set (Vec n)) := + CertifiedUniqueSolution (fun x => F x = 0) X + +end GerverSofa + +end + +end + +section + +/-! +# Exact rational intervals + +This module is intentionally small. It provides the decidable relations used +to audit the published output manifest. It does not assert that a particular +transcendental expression is enclosed; that analytic soundness is a distinct +proof obligation. +-/ + +@[expose] public section + +namespace GerverSofa + +/-- Rational endpoints used by exact interval computations; no ordering is assumed. -/ +structure RatInterval where + /-- Lower endpoint of the interval. -/ + lo : ℚ + /-- Upper endpoint of the interval. -/ + hi : ℚ + deriving Repr, DecidableEq + +namespace RatInterval + +/-- Strict inclusion in the interior of another interval. -/ +def strictInsideB (x outer : RatInterval) : Bool := + decide (outer.lo < x.lo ∧ x.hi < outer.hi) + +/-- Point interval. -/ +def point (x : ℚ) : RatInterval := ⟨x, x⟩ + +/-- Exact interval addition. -/ +def add (x y : RatInterval) : RatInterval := + ⟨x.lo + y.lo, x.hi + y.hi⟩ + +/-- Exact interval negation. -/ +def neg (x : RatInterval) : RatInterval := + ⟨-x.hi, -x.lo⟩ + +/-- Exact interval subtraction. -/ +def sub (x y : RatInterval) : RatInterval := add x (neg y) + +/-- Product hull of two rational intervals. -/ +def mul (x y : RatInterval) : RatInterval := + let p₁ := x.lo * y.lo + let p₂ := x.lo * y.hi + let p₃ := x.hi * y.lo + let p₄ := x.hi * y.hi + ⟨min (min p₁ p₂) (min p₃ p₄), max (max p₁ p₂) (max p₃ p₄)⟩ + +/-! ## Real semantics -/ + +/-- Semantic membership of a real number in a rational interval. -/ +def Contains (z : RatInterval) (x : ℝ) : Prop := + (z.lo : ℝ) ≤ x ∧ x ≤ (z.hi : ℝ) + +@[simp] theorem strictInsideB_eq_true_iff (x outer : RatInterval) : + strictInsideB x outer = true ↔ outer.lo < x.lo ∧ x.hi < outer.hi := by + simp [strictInsideB] + +@[simp] theorem contains_point_iff (q : ℚ) (x : ℝ) : + Contains (point q) x ↔ x = (q : ℝ) := by + constructor + · intro hx + exact le_antisymm hx.2 hx.1 + · rintro rfl + exact ⟨le_rfl, le_rfl⟩ + +/-- Exact interval addition is sound over the reals. -/ +theorem contains_add {a b : RatInterval} {x y : ℝ} + (hx : Contains a x) (hy : Contains b y) : + Contains (add a b) (x + y) := by + rcases hx with ⟨hxl, hxu⟩ + rcases hy with ⟨hyl, hyu⟩ + simpa [Contains, add] using + (And.intro (add_le_add hxl hyl) (add_le_add hxu hyu)) + +/-- Exact interval negation is sound over the reals. -/ +theorem contains_neg {a : RatInterval} {x : ℝ} + (hx : Contains a x) : Contains (neg a) (-x) := by + rcases hx with ⟨hxl, hxu⟩ + simpa [Contains, neg] using + (And.intro (neg_le_neg hxu) (neg_le_neg hxl)) + +/-- Exact interval subtraction is sound over the reals. -/ +theorem contains_sub {a b : RatInterval} {x y : ℝ} + (hx : Contains a x) (hy : Contains b y) : + Contains (sub a b) (x - y) := by + simpa [sub, sub_eq_add_neg] using contains_add hx (contains_neg hy) + +/-- Closed interval inclusion transports semantic membership. -/ +theorem contains_of_subset + {x outer : RatInterval} {r : ℝ} + (hsub : outer.lo ≤ x.lo ∧ x.hi ≤ outer.hi) + (hr : Contains x r) : Contains outer r := by + constructor + · exact le_trans (by exact_mod_cast hsub.1) hr.1 + · exact le_trans hr.2 (by exact_mod_cast hsub.2) + +/-! ## Multiplicative soundness -/ + +private theorem min_mul_le_mul_right + {l u z c : ℝ} (hz : l ≤ z ∧ z ≤ u) : + min (l * c) (u * c) ≤ z * c := by + by_cases hc : 0 ≤ c + · exact le_trans (min_le_left _ _) + (mul_le_mul_of_nonneg_right hz.1 hc) + · have hc' : c ≤ 0 := le_of_lt (lt_of_not_ge hc) + exact le_trans (min_le_right _ _) + (mul_le_mul_of_nonpos_right hz.2 hc') + +private theorem mul_le_max_mul_right + {l u z c : ℝ} (hz : l ≤ z ∧ z ≤ u) : + z * c ≤ max (l * c) (u * c) := by + by_cases hc : 0 ≤ c + · exact le_trans (mul_le_mul_of_nonneg_right hz.2 hc) + (le_max_right _ _) + · have hc' : c ≤ 0 := le_of_lt (lt_of_not_ge hc) + exact le_trans (mul_le_mul_of_nonpos_right hz.1 hc') + (le_max_left _ _) + +private theorem min_mul_le_mul_left + {l u z c : ℝ} (hz : l ≤ z ∧ z ≤ u) : + min (c * l) (c * u) ≤ c * z := by + by_cases hc : 0 ≤ c + · exact le_trans (min_le_left _ _) + (mul_le_mul_of_nonneg_left hz.1 hc) + · have hc' : c ≤ 0 := le_of_lt (lt_of_not_ge hc) + exact le_trans (min_le_right _ _) + (mul_le_mul_of_nonpos_left hz.2 hc') + +private theorem mul_le_max_mul_left + {l u z c : ℝ} (hz : l ≤ z ∧ z ≤ u) : + c * z ≤ max (c * l) (c * u) := by + by_cases hc : 0 ≤ c + · exact le_trans (mul_le_mul_of_nonneg_left hz.2 hc) + (le_max_right _ _) + · have hc' : c ≤ 0 := le_of_lt (lt_of_not_ge hc) + exact le_trans (mul_le_mul_of_nonpos_left hz.1 hc') + (le_max_left _ _) + +/-- The four-corner product hull contains every real product of members. -/ +theorem contains_mul {a b : RatInterval} {x y : ℝ} + (hx : Contains a x) (hy : Contains b y) : + Contains (mul a b) (x * y) := by + let A : ℝ := a.lo + let B : ℝ := a.hi + let C : ℝ := b.lo + let D : ℝ := b.hi + have hx' : A ≤ x ∧ x ≤ B := by + simpa [A, B, Contains] using hx + have hy' : C ≤ y ∧ y ≤ D := by + simpa [C, D, Contains] using hy + have hLowC : + min (min (A * C) (A * D)) (min (B * C) (B * D)) ≤ + min (A * C) (B * C) := by + apply le_min + · exact le_trans (min_le_left _ _) (min_le_left _ _) + · exact le_trans (min_le_right _ _) (min_le_left _ _) + have hLowD : + min (min (A * C) (A * D)) (min (B * C) (B * D)) ≤ + min (A * D) (B * D) := by + apply le_min + · exact le_trans (min_le_left _ _) (min_le_right _ _) + · exact le_trans (min_le_right _ _) (min_le_right _ _) + have hLower : + min (min (A * C) (A * D)) (min (B * C) (B * D)) ≤ x * y := by + have hXC : + min (min (A * C) (A * D)) (min (B * C) (B * D)) ≤ x * C := + le_trans hLowC (min_mul_le_mul_right hx') + have hXD : + min (min (A * C) (A * D)) (min (B * C) (B * D)) ≤ x * D := + le_trans hLowD (min_mul_le_mul_right hx') + exact le_trans (le_min hXC hXD) (min_mul_le_mul_left hy') + have hUpC : + max (A * C) (B * C) ≤ + max (max (A * C) (A * D)) (max (B * C) (B * D)) := by + apply max_le + · exact le_trans (le_max_left _ _) (le_max_left _ _) + · exact le_trans (le_max_left _ _) (le_max_right _ _) + have hUpD : + max (A * D) (B * D) ≤ + max (max (A * C) (A * D)) (max (B * C) (B * D)) := by + apply max_le + · exact le_trans (le_max_right _ _) (le_max_left _ _) + · exact le_trans (le_max_right _ _) (le_max_right _ _) + have hUpper : + x * y ≤ max (max (A * C) (A * D)) (max (B * C) (B * D)) := by + have hXC : x * C ≤ + max (max (A * C) (A * D)) (max (B * C) (B * D)) := + le_trans (mul_le_max_mul_right hx') hUpC + have hXD : x * D ≤ + max (max (A * C) (A * D)) (max (B * C) (B * D)) := + le_trans (mul_le_max_mul_right hx') hUpD + exact le_trans (mul_le_max_mul_left hy') (max_le hXC hXD) + simpa [Contains, mul, A, B, C, D] using And.intro hLower hUpper + +/-- Rational scaling is a special case of sound interval multiplication. -/ +theorem contains_scale {a : ℚ} {z : RatInterval} {x : ℝ} + (hx : Contains z x) : + Contains (mul (point a) z) ((a : ℝ) * x) := by + exact contains_mul ((contains_point_iff a (a : ℝ)).2 rfl) hx + +/-- Semantic validity follows from the existence of a contained real point. -/ +theorem valid_of_contains {z : RatInterval} {x : ℝ} (hx : Contains z x) : + (z.lo : ℝ) ≤ (z.hi : ℝ) := le_trans hx.1 hx.2 + +/-- A strict Boolean inclusion is, in particular, a closed semantic inclusion. -/ +theorem contains_of_strictInsideB + {x outer : RatInterval} {r : ℝ} + (hstrict : strictInsideB x outer = true) + (hr : Contains x r) : Contains outer r := by + have h := (strictInsideB_eq_true_iff x outer).1 hstrict + exact contains_of_subset + ⟨le_of_lt h.1, le_of_lt h.2⟩ hr + +end RatInterval +end GerverSofa + +end + +end + +section + +/-! +# Exact rational audit of the published certificate manifest + +This file contains no floating-point literals. Every value is emitted as an +integer numerator and a positive integer denominator from the deterministic +Python `Fraction` replay. kernel reduction therefore checks the strict box +inclusions and every published rational margin in the Lean kernel/runtime. + +This manifest audit deliberately does **not** by itself prove the analytic +soundness of the sine/cosine enclosures or the Krawczyk existence theorem; +those proof obligations are represented separately in `KrawczykSpec.lean` and +`GerverCertificate.lean`. +-/ + +@[expose] public section + +namespace GerverSofa.CertificateManifest + +open GerverSofa + +/-- Reconstruct a natural number from base-10³⁵ chunks to share decimal elaboration. -/ +def naturalFromChunks (chunks : List ℕ) : ℕ := + chunks.foldl (fun n part ↦ n * 10 ^ 35 + part) 0 + +/-- Construct an exact rational number from its integer numerator and natural denominator. -/ +def q (n : Int) (d : Nat) : ℚ := (n : ℚ) / (d : ℚ) +/-- The frozen rational enclosure of π used by the certificate manifest. -/ +def declaredPi : RatInterval := ⟨q 31415926535897932384626433832795028841971693993751 + 10000000000000000000000000000000000000000000000000, q + 39269908169872415480783042290993786052464617492189 + 12500000000000000000000000000000000000000000000000⟩ +/-- The frozen interval obtained from the manifest’s Machin-formula computation. -/ +def machinPi : RatInterval := ⟨q (naturalFromChunks [295505634309898, + 38894826843310944618692683285957161, 54840908697424127783146795390704820, + 62285304765520132090285996624652812, 88395258878959894304877191976978068]) (naturalFromChunks + [94062364823852, 62383071716578914264051429490249517, 24107156289559560132134809009503737, + 77692872755942719128485898305927492, 83511011526570655405521392822265625]), q (naturalFromChunks + [3375915467483141175, 2280823352893512868952395431804961, 33509141418627522640018221186493436, + 5780061841563520292595907995044547, 84418309242836154390330033778013752]) (naturalFromChunks + [1074587268220657145, 16687904540832335376340782508534865, 44974883186326861534485086372601111, + 18916938440811867648599426576863646, 86497881848481483757495880126953125])⟩ +/-- The four rational intervals specifying the reduced parameter box. -/ +def x4 : List RatInterval := [ + ⟨q 1888531216873 20000000000000, q 4721328042183 50000000000000⟩, + ⟨q 69960186366677 50000000000000, q 34980093183339 25000000000000⟩, + ⟨q 122429264969 3125000000000, q 3917736479009 100000000000000⟩, + ⟨q 2129067216821 3125000000000, q 68130150938273 100000000000000⟩ + ] +/-- The twenty-two rational intervals specifying the full Romik parameter box. -/ +def z22 : List RatInterval := [ + ⟨q (-21032242207268875141628571849) 100000000000000000000000000000, q + (-21032242207268875141608571849) 100000000000000000000000000000⟩, + ⟨q 2499999999999999999999 10000000000000000000000, q 2500000000000000000001 + 10000000000000000000000⟩, + ⟨q (-91917929277159332227479610289) 100000000000000000000000000000, q + (-91917929277159332227459610289) 100000000000000000000000000000⟩, + ⟨q 29525413734425341573853797657 62500000000000000000000000000, q + 29525413734425341573866297657 62500000000000000000000000000⟩, + ⟨q (-15344080735756291713875357283) 25000000000000000000000000000, q + (-15344080735756291713870357283) 25000000000000000000000000000⟩, + ⟨q 17792529580064437214538861001 20000000000000000000000000000, q + 17792529580064437214542861001 20000000000000000000000000000⟩, + ⟨q (-15417358304445500741761623987) 50000000000000000000000000000, q + (-15417358304445500741751623987) 50000000000000000000000000000⟩, + ⟨q 29525413734425341573853797657 62500000000000000000000000000, q + 29525413734425341573866297657 62500000000000000000000000000⟩, + ⟨q (-20344080735756291713874857283) 20000000000000000000000000000, q + (-20344080735756291713870857283) 20000000000000000000000000000⟩, + ⟨q 2499999999999999999999 10000000000000000000000, q 2500000000000000000001 + 10000000000000000000000⟩, + ⟨q 2420644844145377502832171437 2000000000000000000000000000, q 2420644844145377502832571437 + 2000000000000000000000000000⟩, + ⟨q (-2500000000000000000001) 10000000000000000000000, q (-2499999999999999999999) + 10000000000000000000000⟩, + ⟨q (-52762459802678462416060380937) 100000000000000000000000000000, q + (-52762459802678462416040380937) 100000000000000000000000000000⟩, + ⟨q 92025838516063762289360579501 100000000000000000000000000000, q + 92025838516063762289380579501 100000000000000000000000000000⟩, + ⟨q 313022761424232933776114655193 500000000000000000000000000000, q + 313022761424232933776214655193 500000000000000000000000000000⟩, + ⟨q (-151160128631428920268654781) 160000000000000000000000000, q + (-151160128631428920268622781) 160000000000000000000000000⟩, + ⟨q 1641278451780291167220080819 1250000000000000000000000000, q 1641278451780291167220330819 + 1250000000000000000000000000⟩, + ⟨q (-105076534082910887440587258861) 200000000000000000000000000000, q + (-105076534082910887440547258861) 200000000000000000000000000000⟩, + ⟨q 2420644844145377502832171437 2000000000000000000000000000, q 2420644844145377502832571437 + 2000000000000000000000000000⟩, + ⟨q 2499999999999999999999 10000000000000000000000, q 2500000000000000000001 + 10000000000000000000000⟩, + ⟨q 1958868239504182093160893749 50000000000000000000000000000, q 78354729580167283726435751 + 2000000000000000000000000000⟩, + ⟨q 34065075469136244723692787727 50000000000000000000000000000, q + 34065075469136244723692787983 50000000000000000000000000000⟩ + ] + +/-- Small kernel-checkable chunks of the frozen rational certificate. + +The previous one-shot package asked the kernel to normalize the whole executable +replay in one enormous `decide +kernel`. That is logically sound but can take +hours. Here the proof path uses the already frozen rational certificate and +checks it in bounded, independent chunks. The expensive executable replay is +still retained in `ExactReplay.lean` as a diagnostic cross-check, but it is not +recomputed while building the trusted certificate. -/ +def piCheck : Bool := + RatInterval.strictInsideB machinPi declaredPi +theorem piCheck_eq_true : piCheck = true := by + decide +kernel + +end GerverSofa.CertificateManifest + +end + +end + +section + +/-! +# Executable exact-rational replay of the 4D and 22D Krawczyk inclusions + +This is a direct, floating-point-free transcription of the companion Python +algorithm. It computes with `ℚ`, interval automatic differentiation and the +frozen rational preconditioners. The analytic theorem saying that the Taylor +intervals enclose the real `sin` and `cos`, and the abstract Krawczyk theorem, +remain separate proof obligations; the arithmetic replay itself is decidable. +-/ + +@[expose] public section + +namespace GerverSofa.ExactReplay + +open GerverSofa +open RatInterval +open scoped BigOperators + +/-- Construct an exact rational number from its integer numerator and natural denominator. -/ +def q (n : Int) (d : Nat := 1) : ℚ := (n : ℚ) / (d : ℚ) + +/-- The singleton rational interval at zero. -/ +def zeroI : RatInterval := point 0 +/-- The singleton rational interval at one. -/ +def oneI : RatInterval := point 1 + +private def midpoint (x : RatInterval) : ℚ := (x.lo + x.hi) / 2 + +/-- Multiply an interval by a rational singleton using exact interval arithmetic. -/ +def scale (a : ℚ) (x : RatInterval) : RatInterval := + mul (point a) x + +/-- A factorial interpreted as an exact rational number. -/ +def factorialQ (n : Nat) : ℚ := (Nat.factorial n : ℚ) + +/-- An alternating Taylor term with the specified power and factorial denominator. -/ +def signedTerm (k : Nat) (x : ℚ) (power : Nat) : ℚ := + let z := x ^ power / factorialQ power + if k % 2 = 0 then z else -z + +/-- The finite odd-power Taylor sum for sine at a rational argument. -/ +def sinPartial (x : ℚ) (terms : Nat) : ℚ := + Finset.sum (Finset.range terms) (fun k => signedTerm k x (2 * k + 1)) + +/-- The finite even-power Taylor sum for cosine at a rational argument. -/ +def cosPartial (x : ℚ) (terms : Nat) : ℚ := + Finset.sum (Finset.range terms) (fun k => signedTerm k x (2 * k)) + +/-- The interval between the nineteen- and twenty-term sine Taylor sums. -/ +def sinBound (x : ℚ) : RatInterval := + let a := sinPartial x 19 + let b := sinPartial x 20 + ⟨min a b, max a b⟩ + +/-- The interval between the nineteen- and twenty-term cosine Taylor sums. -/ +def cosBound (x : ℚ) : RatInterval := + let a := cosPartial x 19 + let b := cosPartial x 20 + ⟨min a b, max a b⟩ + +/-- The rational π enclosure used for trigonometric argument reduction. -/ +def piI : RatInterval := + ⟨q 157079632679489661923132169163975144209858469968755 + 50000000000000000000000000000000000000000000000000, + q 78539816339744830961566084581987572104929234984378 + 25000000000000000000000000000000000000000000000000⟩ + +/-- A finite alternating rational Taylor sum for arctangent. -/ +def atanPartial (x : ℚ) (terms : Nat) : ℚ := + Finset.sum (Finset.range terms) (fun k => + if k % 2 = 0 then + x ^ (2 * k + 1) / ((2 * k + 1 : Nat) : ℚ) + else + -(x ^ (2 * k + 1) / ((2 * k + 1 : Nat) : ℚ))) + +/-- The interval between two specified arctangent Taylor sums. -/ +def atanBound (x : ℚ) (lowTerms highTerms : Nat) : RatInterval := + let a := atanPartial x lowTerms + let b := atanPartial x highTerms + ⟨min a b, max a b⟩ + +/-- Evaluate the Machin expression `16 atan(1/5) - 4 atan(1/239)` by rational intervals. -/ +def machinPi : RatInterval := + sub (scale 16 (atanBound (1 / 5) 43 44)) + (scale 4 (atanBound (1 / 239) 13 14)) + +/-- Exact downward rounding to a fixed number of decimal places. -/ +def floorDecimal (x : ℚ) (digits : Nat := 60) : ℚ := + let scale : ℚ := (10 : ℚ) ^ digits + ((⌊x * scale⌋ : ℤ) : ℚ) / scale + +/-- Exact upward rounding to a fixed number of decimal places. -/ +def ceilDecimal (x : ℚ) (digits : Nat := 60) : ℚ := + let scale : ℚ := (10 : ℚ) ^ digits + ((⌈x * scale⌉ : ℤ) : ℚ) / scale + +/-- The same 60-decimal outward rounding used by the submitted verifier. -/ +def outwardDecimal (z : RatInterval) : RatInterval := + ⟨floorDecimal z.lo, ceilDecimal z.hi⟩ + +/-- Evaluate the small-argument sine enclosure with outward decimal rounding. -/ +def sinSmall (x : RatInterval) : RatInterval := + outwardDecimal ⟨(sinBound x.lo).lo, (sinBound x.hi).hi⟩ + +/-- Evaluate the small-argument cosine enclosure with outward decimal rounding. -/ +def cosSmall (x : RatInterval) : RatInterval := + outwardDecimal ⟨(cosBound x.hi).lo, (cosBound x.lo).hi⟩ + +/-- Clamp an interval to the physical angular range used by the Gerver +certificate. If `x ∈ [0, π/2]` and `x` is enclosed by the input interval, +then `x` is still enclosed after clamping once `piI` has been proved to +contain `Real.pi`. -/ +def physicalClamp (x : RatInterval) : RatInterval := + ⟨max 0 x.lo, min (piI.hi / 2) x.hi⟩ + +/-- A fail-closed enclosure used only when an externally supplied interval is +too wide for the small-argument Taylor/range-reduction evaluator. Every +certified Gerver call remains in one of the two sharp branches below, so this +fallback does not alter the frozen replay. -/ +def universalTrigInterval : RatInterval := ⟨-1, 1⟩ + +/-- Complementary interval for the identity `sin x = cos (π/2-x)` and +`cos x = sin (π/2-x)`. -/ +def complementInterval (x : RatInterval) : RatInterval := + ⟨max 0 (piI.lo / 2 - x.hi), piI.hi / 2 - x.lo⟩ + +/-- Evaluate sine by small-argument bounds and complementary-angle reduction. -/ +def sinI (x : RatInterval) : RatInterval := + let z := physicalClamp x + if z.hi ≤ 9 / 10 then sinSmall z + else + let y := complementInterval z + if y.hi ≤ 9 / 10 then cosSmall y else universalTrigInterval + +/-- Evaluate cosine by small-argument bounds and complementary-angle reduction. -/ +def cosI (x : RatInterval) : RatInterval := + let z := physicalClamp x + if z.hi ≤ 9 / 10 then cosSmall z + else + let y := complementInterval z + if y.hi ≤ 9 / 10 then sinSmall y else universalTrigInterval + +/-- An interval value together with a list of interval partial derivatives. -/ +structure D where + /-- The interval enclosing the scalar value. -/ + val : RatInterval + /-- Interval enclosures for the coordinate partial derivatives. -/ + der : List RatInterval + deriving Repr + +namespace D + +/-- A constant interval with zero partial derivatives in every coordinate. -/ +def const (v : RatInterval) (n : Nat) : D := + ⟨v, List.replicate n zeroI⟩ + +/-- A rational singleton with zero partial derivatives. -/ +def pointConst (v : ℚ) (n : Nat) : D := const (point v) n + +/-- An interval variable with the selected coordinate derivative equal to one. -/ +def varD (v : RatInterval) (j n : Nat) : D := + ⟨v, (List.range n).map (fun k => point (if k = j then 1 else 0))⟩ + +/-- Addition with interval propagation of all coordinate derivatives. -/ +def addD (x y : D) : D := + ⟨add x.val y.val, List.zipWith add x.der y.der⟩ + +/-- Negation with interval propagation of all coordinate derivatives. -/ +def negD (x : D) : D := + ⟨neg x.val, x.der.map neg⟩ + +/-- Subtraction with interval propagation of all coordinate derivatives. -/ +def subD (x y : D) : D := addD x (negD y) + +/-- Multiplication with interval propagation of all coordinate derivatives. -/ +def mulD (x y : D) : D := + ⟨mul x.val y.val, + List.zipWith (fun dx dy => add (mul dx y.val) (mul x.val dy)) x.der y.der⟩ + +/-- Rational scaling with interval propagation of all coordinate derivatives. -/ +def scaleD (a : ℚ) (x : D) : D := + ⟨scale a x.val, x.der.map (scale a)⟩ + +/-- Sine with interval propagation of all coordinate derivatives. -/ +def sinD (x : D) : D := + let sv := sinI x.val + let cv := cosI x.val + ⟨sv, x.der.map (mul cv)⟩ + +/-- Cosine with interval propagation of all coordinate derivatives. -/ +def cosD (x : D) : D := + let sv := sinI x.val + let cv := cosI x.val + ⟨cv, x.der.map (fun z => neg (mul sv z))⟩ + +instance : Add D := ⟨addD⟩ +instance : Neg D := ⟨negD⟩ +instance : Sub D := ⟨subD⟩ +instance : Mul D := ⟨mulD⟩ +instance : HMul ℚ D D := ⟨scaleD⟩ + +end D + +/-- Read an interval coordinate, returning the zero interval outside the list. -/ +def getI (xs : List RatInterval) (i : Nat) : RatInterval := + xs.getD i zeroI + +/-- Read a rational coordinate, returning zero outside the list. -/ +def getQ (xs : List ℚ) (i : Nat) : ℚ := xs.getD i 0 +/-- Read a rational matrix row, returning the empty row outside the list. -/ +def getRow (m : List (List ℚ)) (i : Nat) : List ℚ := m.getD i [] + +/-! ## Reduced 4D system -/ + +private def x4 : List RatInterval := [ + ⟨q 1888531216873 20000000000000, q 4721328042183 50000000000000⟩, + ⟨q 69960186366677 50000000000000, q 34980093183339 25000000000000⟩, + ⟨q 122429264969 3125000000000, q 3917736479009 100000000000000⟩, + ⟨q 2129067216821 3125000000000, q 68130150938273 100000000000000⟩ +] + +private def z22 : List RatInterval := [ + ⟨q (-21032242207268875141628571849) 100000000000000000000000000000, q + (-21032242207268875141608571849) 100000000000000000000000000000⟩, + ⟨q 2499999999999999999999 10000000000000000000000, q 2500000000000000000001 + 10000000000000000000000⟩, + ⟨q (-91917929277159332227479610289) 100000000000000000000000000000, q + (-91917929277159332227459610289) 100000000000000000000000000000⟩, + ⟨q 29525413734425341573853797657 62500000000000000000000000000, q 29525413734425341573866297657 + 62500000000000000000000000000⟩, + ⟨q (-15344080735756291713875357283) 25000000000000000000000000000, q + (-15344080735756291713870357283) 25000000000000000000000000000⟩, + ⟨q 17792529580064437214538861001 20000000000000000000000000000, q 17792529580064437214542861001 + 20000000000000000000000000000⟩, + ⟨q (-15417358304445500741761623987) 50000000000000000000000000000, q + (-15417358304445500741751623987) 50000000000000000000000000000⟩, + ⟨q 29525413734425341573853797657 62500000000000000000000000000, q 29525413734425341573866297657 + 62500000000000000000000000000⟩, + ⟨q (-20344080735756291713874857283) 20000000000000000000000000000, q + (-20344080735756291713870857283) 20000000000000000000000000000⟩, + ⟨q 2499999999999999999999 10000000000000000000000, q 2500000000000000000001 + 10000000000000000000000⟩, + ⟨q 2420644844145377502832171437 2000000000000000000000000000, q 2420644844145377502832571437 + 2000000000000000000000000000⟩, + ⟨q (-2500000000000000000001) 10000000000000000000000, q (-2499999999999999999999) + 10000000000000000000000⟩, + ⟨q (-52762459802678462416060380937) 100000000000000000000000000000, q + (-52762459802678462416040380937) 100000000000000000000000000000⟩, + ⟨q 92025838516063762289360579501 100000000000000000000000000000, q 92025838516063762289380579501 + 100000000000000000000000000000⟩, + ⟨q 313022761424232933776114655193 500000000000000000000000000000, q + 313022761424232933776214655193 500000000000000000000000000000⟩, + ⟨q (-151160128631428920268654781) 160000000000000000000000000, q (-151160128631428920268622781) + 160000000000000000000000000⟩, + ⟨q 1641278451780291167220080819 1250000000000000000000000000, q 1641278451780291167220330819 + 1250000000000000000000000000⟩, + ⟨q (-105076534082910887440587258861) 200000000000000000000000000000, q + (-105076534082910887440547258861) 200000000000000000000000000000⟩, + ⟨q 2420644844145377502832171437 2000000000000000000000000000, q 2420644844145377502832571437 + 2000000000000000000000000000⟩, + ⟨q 2499999999999999999999 10000000000000000000000, q 2500000000000000000001 + 10000000000000000000000⟩, + ⟨q 1958868239504182093160893749 50000000000000000000000000000, q 78354729580167283726435751 + 2000000000000000000000000000⟩, + ⟨q 34065075469136244723692787727 50000000000000000000000000000, q 34065075469136244723692787983 + 50000000000000000000000000000⟩ +] + +/-! ## Direct 22D Romik system -/ + +/-! ## Public proof-carrying view and optional executable cross-check + +The full executable Krawczyk/grid replay above is intentionally retained, but +normalizing it in one kernel reduction is prohibitively expensive. The trusted +proof path therefore consumes the frozen exact-rational certificate emitted by +the independent replay and checks that certificate in `CertificateManifest`. +This is the standard proof-carrying-data split: expensive certificate discovery +is outside the kernel; small rational certificate verification is inside it. + +The executable wrappers prefixed by `executable` remain available for offline +cross-checking and provenance. -/ + +/-- The rational interval used internally by the executable replay for `Real.pi`. -/ +def declaredPiInterval : RatInterval := piI + +/-- Public wrapper around the executable sine enclosure. -/ +def sineInterval (x : RatInterval) : RatInterval := sinI x + +/-- Public wrapper around the executable cosine enclosure. -/ +def cosineInterval (x : RatInterval) : RatInterval := cosI x + +/-- Frozen reduced input box used by the trusted certificate. -/ +def reducedInputBox : List RatInterval := CertificateManifest.x4 + +/-- Frozen direct-system input box used by the trusted certificate. -/ +def fullInputBox : List RatInterval := CertificateManifest.z22 + +end GerverSofa.ExactReplay + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle002.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle002.lean new file mode 100644 index 0000000000..e3f0fb9275 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle002.lean @@ -0,0 +1,5428 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import Aesop +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle001 +public import Mathlib.Algebra.Order.Floor.Ring +public import Mathlib.Analysis.Calculus.Deriv.Add +public import Mathlib.Analysis.Calculus.Deriv.Basic +public import Mathlib.Analysis.Calculus.Deriv.Mul +public import Mathlib.Analysis.Calculus.Deriv.Slope +public import Mathlib.Analysis.InnerProductSpace.PiL2 +public import Mathlib.Analysis.Normed.Affine.Isometry +public import Mathlib.Analysis.Real.Pi.Bounds +public import Mathlib.Analysis.SpecialFunctions.Complex.Arctan +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.Basic +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.Deriv +public import Mathlib.Analysis.SpecialFunctions.Trigonometric.Series +public import Mathlib.Analysis.SpecificLimits.Normed +public import Mathlib.Data.List.GetD +public import Mathlib.Data.List.Zip +public import Mathlib.Geometry.Euclidean.Angle.Oriented.Affine +public import Mathlib.Geometry.Euclidean.Angle.Oriented.Rotation +public import Mathlib.MeasureTheory.Integral.IntervalIntegral.FundThmCalculus +public import Mathlib.Tactic +public import Mathlib.Tactic.Linarith +public import Mathlib.Tactic.LinearCombination +public import Mathlib.Tactic.NormNum +public import Mathlib.Topology.Algebra.ContinuousAffineMap.Topology +public import Mathlib.Topology.Algebra.InfiniteSum.NatInt +public import Mathlib.Topology.Instances.Real.Lemmas +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.Foundation.Batch002`. +* `GerverSofa.KernelOnly.Foundation.Batch001`. +* `GerverSofa.KernelOnly.PartF.Semantics.Batch001`. +-/ + +@[expose] public section + +noncomputable section + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `SE2`. +* `SupportingHallway`. +* `Systems`. +* `Boxes`. +* `Geometry`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Orientation-preserving rigid motions of the plane + +An element is represented by `(c,s,tₓ,tᵧ)` with `c²+s²=1`. Its linear +part is the rotation matrix `[[c,-s],[s,c]]`, hence every value is an element +of `SE(2)` and not an arbitrary affine equivalence. +-/ + +@[expose] public section + +namespace GerverSofa + +/-- An orientation-preserving planar rigid motion represented by rotation and translation. -/ +structure SE2 where + /-- The cosine coefficient of the rotation. -/ + c : ℝ + /-- The sine coefficient of the rotation. -/ + s : ℝ + /-- The horizontal translation component. -/ + tx : ℝ + /-- The vertical translation component. -/ + ty : ℝ + unit : c * c + s * s = 1 + +namespace SE2 + +/-- Action of an orientation-preserving rigid motion on the plane. -/ +def act (g : SE2) (p : Point) : Point := + (g.c * p.1 - g.s * p.2 + g.tx, + g.s * p.1 + g.c * p.2 + g.ty) + +/-- Identity element. -/ +def one : SE2 where + c := 1 + s := 0 + tx := 0 + ty := 0 + unit := by norm_num + +/-- Inverse orientation-preserving rigid motion. -/ +def inv (g : SE2) : SE2 where + c := g.c + s := -g.s + tx := -(g.c * g.tx + g.s * g.ty) + ty := g.s * g.tx - g.c * g.ty + unit := by nlinarith [g.unit] + +@[simp] theorem one_act (p : Point) : one.act p = p := by + rcases p with ⟨x, y⟩ + simp [one, act] + +@[simp] theorem inv_act_act (g : SE2) (p : Point) : + g.inv.act (g.act p) = p := by + rcases p with ⟨x, y⟩ + apply Prod.ext + · dsimp [act, inv] + linear_combination x * g.unit + · dsimp [act, inv] + linear_combination y * g.unit + +@[simp] theorem act_inv_act (g : SE2) (p : Point) : + g.act (g.inv.act p) = p := by + rcases p with ⟨x, y⟩ + apply Prod.ext + · dsimp [act, inv] + linear_combination (x - g.tx) * g.unit + · dsimp [act, inv] + linear_combination (y - g.ty) * g.unit + +/-- Componentwise continuity is the topology-free representation of a path +in `SE(2)` used by the formal moving-sofa definition. -/ +def ContinuousPath (g : ℝ → SE2) : Prop := + Continuous (fun t => (g t).c) ∧ + Continuous (fun t => (g t).s) ∧ + Continuous (fun t => (g t).tx) ∧ + Continuous (fun t => (g t).ty) + +/-- Inversion preserves continuous `SE(2)` paths. -/ +theorem continuousPath_inv {g : ℝ → SE2} (hg : ContinuousPath g) : + ContinuousPath (fun t => (g t).inv) := by + rcases hg with ⟨hc, hs, htx, hty⟩ + refine ⟨hc, hs.neg, ?_, ?_⟩ + · exact ((hc.mul htx).add (hs.mul hty)).neg + · exact (hs.mul htx).sub (hc.mul hty) + +end SE2 +end GerverSofa + +end + +end + +section + +/-! +# Supporting hallway and inverse motion +-/ + +@[expose] public section + +namespace GerverSofa + +/-- World-frame hallway obtained from the standard hallway by `frame`. -/ +def supportingHallway (frame : SE2) : Set Point := + frame.act '' hallway + +/-- Membership in a supporting hallway is equivalent to standard-hallway +membership after applying the inverse frame. -/ +theorem mem_supportingHallway_iff (frame : SE2) (q : Point) : + q ∈ supportingHallway frame ↔ frame.inv.act q ∈ hallway := by + constructor + · rintro ⟨p, hp, rfl⟩ + simpa using hp + · intro hq + refine ⟨frame.inv.act q, hq, ?_⟩ + exact frame.act_inv_act q + +/-- Set-level version of `mem_supportingHallway_iff`. -/ +theorem inv_image_subset_hallway_of_subset_supporting + (frame : SE2) (S : Set Point) + (hS : S ⊆ supportingHallway frame) : + frame.inv.act '' S ⊆ hallway := by + rintro p ⟨q, hqS, rfl⟩ + exact (mem_supportingHallway_iff frame q).1 (hS hqS) + +end GerverSofa + +end + +end + +section + +/-! +# The concrete reduced and 22-dimensional Romik systems + +These are direct Lean transcriptions of equations (F1)--(F4) and of the +independent equations (27)--(39), (41), (43) used by the companion verifier. +-/ + +@[expose] public section + +namespace GerverSofa + +noncomputable section + +namespace Reduced + +/-- The four real parameters of the reduced Gerver equations. -/ +structure Params where + /-- The first scalar parameter in the reduced equations. -/ + a : ℝ + /-- The second scalar parameter in the reduced equations. -/ + b : ℝ + /-- The first switching angle. -/ + phi : ℝ + /-- The second switching angle. -/ + theta : ℝ + +/-- Four-dimensional reduced switching system. -/ +def system (p : Params) : Fin 4 → ℝ := + let cp := Real.cos p.phi + let sp := Real.sin p.phi + let ct := Real.cos p.theta + let st := Real.sin p.theta + let delta := p.theta - p.phi + ![ + p.a * (ct - cp) - 2 * p.b * sp + (delta - 1) * ct - st + cp + sp, + p.a * (3 * st + sp) - 2 * p.b * cp + 3 * (delta - 1) * st + 3 * ct - sp + cp, + p.a * cp - sp - (1 / 2 : ℝ) + (1 / 2 : ℝ) * cp - p.b * sp, + p.a + Real.pi / 2 - p.phi - p.theta - p.b + + (1 / 2 : ℝ) * delta * (1 + p.a) + (1 / 4 : ℝ) * delta * delta + ] + +/-- The proposition that all four reduced equations vanish. -/ +def Equations (p : Params) : Prop := system p = 0 + +end Reduced + +namespace Romik + +/-- Translation, phase, and switching-angle parameters of the five Romik branches. -/ +structure Params where + /-- Horizontal translation coefficient for phase 1. -/ + k11 : ℝ + /-- Vertical translation coefficient for phase 1. -/ + k12 : ℝ + /-- Horizontal translation coefficient for phase 2. -/ + k21 : ℝ + /-- Vertical translation coefficient for phase 2. -/ + k22 : ℝ + /-- Horizontal translation coefficient for phase 3. -/ + k31 : ℝ + /-- Vertical translation coefficient for phase 3. -/ + k32 : ℝ + /-- Horizontal translation coefficient for phase 4. -/ + k41 : ℝ + /-- Vertical translation coefficient for phase 4. -/ + k42 : ℝ + /-- Horizontal translation coefficient for phase 5. -/ + k51 : ℝ + /-- Vertical translation coefficient for phase 5. -/ + k52 : ℝ + /-- Coefficient 1 in the phase 1 closed formula. -/ + a1 : ℝ + /-- Coefficient 2 in the phase 1 closed formula. -/ + a2 : ℝ + /-- Coefficient 1 in the phase 2 closed formula. -/ + b1 : ℝ + /-- Coefficient 2 in the phase 2 closed formula. -/ + b2 : ℝ + /-- Coefficient 1 in the phase 3 closed formula. -/ + c1 : ℝ + /-- Coefficient 2 in the phase 3 closed formula. -/ + c2 : ℝ + /-- Coefficient 1 in the phase 4 closed formula. -/ + d1 : ℝ + /-- Coefficient 2 in the phase 4 closed formula. -/ + d2 : ℝ + /-- Coefficient 1 in the phase 5 closed formula. -/ + e1 : ℝ + /-- Coefficient 2 in the phase 5 closed formula. -/ + e2 : ℝ + /-- First switching angle. -/ + phi : ℝ + /-- Second switching angle. -/ + theta : ℝ + +/-- Rotation of a body-frame vector into the world frame. -/ +def rot (t : ℝ) (z : Point) : Point := + (Real.cos t * z.1 - Real.sin t * z.2, + Real.sin t * z.1 + Real.cos t * z.2) + +/-- Translate a point by the two specified coordinate offsets. -/ +def addK (r : Point) (kx ky : ℝ) : Point := (r.1 + kx, r.2 + ky) + +/-- Phase 1 of the five-phase Gerver path. -/ +def path1 (p : Params) (t : ℝ) : Point := + let z : Point := + (p.a1 * Real.cos t + p.a2 * Real.sin t - 1, + -p.a2 * Real.cos t + p.a1 * Real.sin t - 1 / 2) + addK (rot t z) p.k11 p.k12 + +/-- Phase 2 of the five-phase Gerver path. -/ +def path2 (p : Params) (t : ℝ) : Point := + let z : Point := + (-(1 / 4 : ℝ) * t * t + p.b1 * t + p.b2, + (1 / 2 : ℝ) * t - p.b1 - 1) + addK (rot t z) p.k21 p.k22 + +/-- Phase 3 of the five-phase Gerver path. -/ +def path3 (p : Params) (t : ℝ) : Point := + addK (rot t (p.c1 - t, p.c2 + t)) p.k31 p.k32 + +/-- Phase 4 of the five-phase Gerver path. -/ +def path4 (p : Params) (t : ℝ) : Point := + let z : Point := + (-(1 / 2 : ℝ) * t + p.d1 - 1, + -(1 / 4 : ℝ) * t * t + p.d1 * t + p.d2) + addK (rot t z) p.k41 p.k42 + +/-- Phase 5 of the five-phase Gerver path. -/ +def path5 (p : Params) (t : ℝ) : Point := + let z : Point := + (p.e1 * Real.cos t + p.e2 * Real.sin t - 1 / 2, + -p.e2 * Real.cos t + p.e1 * Real.sin t - 1) + addK (rot t z) p.k51 p.k52 + +/-- Body-frame derivative coefficients `(alpha,beta)` on phase 1. -/ +def alphaBeta1 (p : Params) (t : ℝ) : Point := + (-2 * p.a1 * Real.sin t + 2 * p.a2 * Real.cos t + 1 / 2, + 2 * p.a1 * Real.cos t + 2 * p.a2 * Real.sin t - 1) + +/-- Body-frame velocity coordinates for phase 2. -/ +def alphaBeta2 (p : Params) (t : ℝ) : Point := + (1 + 2 * p.b1 - t, + -(1 / 4 : ℝ) * t * t + p.b1 * t + p.b2 + 1 / 2) + +/-- Body-frame velocity coordinates for phase 3. -/ +def alphaBeta3 (p : Params) (t : ℝ) : Point := + (-1 - p.c2 - t, 1 + p.c1 - t) + +/-- Body-frame velocity coordinates for phase 4. -/ +def alphaBeta4 (p : Params) (t : ℝ) : Point := + ((1 / 4 : ℝ) * t * t - p.d1 * t - p.d2 - 1 / 2, + 2 * p.d1 - 1 - t) + +/-- Body-frame velocity coordinates for phase 5. -/ +def alphaBeta5 (p : Params) (t : ℝ) : Point := + (1 - 2 * p.e1 * Real.sin t + 2 * p.e2 * Real.cos t, + 2 * p.e1 * Real.cos t + 2 * p.e2 * Real.sin t - 1 / 2) + +/-- Rotate body-frame velocity coordinates into the world frame. -/ +def pathPrimeFromAB (t : ℝ) (ab : Point) : Point := rot t ab + +/-- World-frame velocity formula for phase 1. -/ +def pathPrime1 (p : Params) (t : ℝ) : Point := pathPrimeFromAB t (alphaBeta1 p t) +/-- World-frame velocity formula for phase 2. -/ +def pathPrime2 (p : Params) (t : ℝ) : Point := pathPrimeFromAB t (alphaBeta2 p t) +/-- World-frame velocity formula for phase 3. -/ +def pathPrime3 (p : Params) (t : ℝ) : Point := pathPrimeFromAB t (alphaBeta3 p t) + +/-- Romik's 22 independent scalar equations. -/ +def system (p : Params) : Fin 22 → ℝ := + let halfPi := Real.pi / 2 + let quarterPi := Real.pi / 4 + let eta := halfPi - p.theta + let tau := halfPi - p.phi + let x1phi := path1 p p.phi + let x2phi := path2 p p.phi + let v1phi := pathPrime1 p p.phi + let v2phi := pathPrime2 p p.phi + let x2theta := path2 p p.theta + let x3theta := path3 p p.theta + let v2theta := pathPrime2 p p.theta + let v3theta := pathPrime3 p p.theta + let x3eta := path3 p eta + let x4eta := path4 p eta + let x4tau := path4 p tau + let x5tau := path5 p tau + let abEta := alphaBeta3 p eta + let bEta : Point := + (x3eta.1 - abEta.1 * Real.sin eta, + x3eta.2 + abEta.1 * Real.cos eta) + ![ + p.e1 - p.a1, + p.e2 + p.a2, + p.d1 + p.b1 - quarterPi, + p.d2 - p.b2 - quarterPi * (2 * p.b1 - quarterPi), + p.c2 - p.c1 + halfPi, + p.k11 - 1 + p.a1, + p.k12 - 1 / 4, + p.a2 + 1 / 4, + x1phi.1 - x2phi.1, + x1phi.2 - x2phi.2, + v1phi.1 - v2phi.1, + v1phi.2 - v2phi.2, + x2theta.1 - x3theta.1, + x2theta.2 - x3theta.2, + v2theta.1 - v3theta.1, + v2theta.2 - v3theta.2, + x3eta.1 - x4eta.1, + x3eta.2 - x4eta.2, + x4tau.1 - x5tau.1, + x4tau.2 - x5tau.2, + x1phi.1 - bEta.1, + x1phi.2 - bEta.2 + ] + +/-- The proposition that all 22 independent equations vanish. -/ +def Equations (p : Params) : Prop := system p = 0 + +/-- The physical five-phase path on `[0,π/2]`. At a switching angle either +adjacent formula may be chosen; the certified matching equations prove they +coincide. -/ +def path (p : Params) (t : ℝ) : Point := + let eta := Real.pi / 2 - p.theta + let tau := Real.pi / 2 - p.phi + if t ≤ p.phi then path1 p t + else if t ≤ p.theta then path2 p t + else if t ≤ eta then path3 p t + else if t ≤ tau then path4 p t + else path5 p t + +/-- Linear normalization from unit time to physical rotation angle. -/ +def angle (u : ℝ) : ℝ := u * (Real.pi / 2) + +/-- Standard-to-world frame `q ↦ x(t)+R_t q` for normalized time. -/ +def frame (p : Params) (u : ℝ) : SE2 := + let t := angle u + let x := path p t + { c := Real.cos t + s := Real.sin t + tx := x.1 + ty := x.2 + unit := by nlinarith [Real.sin_sq_add_cos_sq t] } + +@[simp] theorem angle_zero : angle 0 = 0 := by + simp [angle] + +@[simp] theorem angle_one : angle 1 = Real.pi / 2 := by + simp [angle] + +/-- The normalized physical angle depends continuously on time. -/ +theorem continuous_angle : Continuous angle := by + unfold angle + fun_prop + +/-- Continuity of the five-phase path implies componentwise continuity of the +supporting `SE(2)` frame. -/ +theorem continuousPath_frame_of_path + (p : Params) (hpath : Continuous (path p)) : + SE2.ContinuousPath (frame p) := by + refine ⟨?_, ?_, ?_, ?_⟩ + · change Continuous (fun u : ℝ => Real.cos (angle u)) + simpa [Function.comp_def] using (Real.continuous_cos.comp continuous_angle) + · change Continuous (fun u : ℝ => Real.sin (angle u)) + simpa [Function.comp_def] using (Real.continuous_sin.comp continuous_angle) + · change Continuous (fun u : ℝ => (path p (angle u)).1) + have hp : Continuous (fun u : ℝ => path p (angle u)) := by + simpa [Function.comp_def] using (hpath.comp continuous_angle) + exact hp.fst + · change Continuous (fun u : ℝ => (path p (angle u)).2) + have hp : Continuous (fun u : ℝ => path p (angle u)) := by + simpa [Function.comp_def] using (hpath.comp continuous_angle) + exact hp.snd + +/-! ## Continuity from the independent matching equations -/ + +/-- Ordering data needed to read the five branches in their intended order. -/ +structure SwitchOrder (p : Params) : Prop where + phi_le_theta : p.phi ≤ p.theta + theta_le_eta : p.theta ≤ Real.pi / 2 - p.theta + eta_le_tau : Real.pi / 2 - p.theta ≤ Real.pi / 2 - p.phi + +private theorem continuous_path1 (p : Params) : Continuous (path1 p) := by + unfold path1 addK rot + fun_prop + +private theorem continuous_path2 (p : Params) : Continuous (path2 p) := by + unfold path2 addK rot + fun_prop + +private theorem continuous_path3 (p : Params) : Continuous (path3 p) := by + unfold path3 addK rot + fun_prop + +private theorem continuous_path4 (p : Params) : Continuous (path4 p) := by + unfold path4 addK rot + fun_prop + +private theorem continuous_path5 (p : Params) : Continuous (path5 p) := by + unfold path5 addK rot + fun_prop + +/-- Equation (35), extracted from the direct 22D system. -/ +theorem match_path12_of_equations {p : Params} (heq : Equations p) : + path1 p p.phi = path2 p p.phi := by + have h8 := congrFun heq (8 : Fin 22) + have h9 := congrFun heq (9 : Fin 22) + simp [system] at h8 h9 + apply Prod.ext <;> linarith + +/-- Equation (37), extracted from the direct 22D system. -/ +theorem match_path23_of_equations {p : Params} (heq : Equations p) : + path2 p p.theta = path3 p p.theta := by + have h12 := congrFun heq (12 : Fin 22) + have h13 := congrFun heq (13 : Fin 22) + simp [system] at h12 h13 + apply Prod.ext <;> linarith + +/-- Equation (39), extracted from the direct 22D system. -/ +theorem match_path34_of_equations {p : Params} (heq : Equations p) : + path3 p (Real.pi / 2 - p.theta) = + path4 p (Real.pi / 2 - p.theta) := by + have h16 := congrFun heq (16 : Fin 22) + have h17 := congrFun heq (17 : Fin 22) + simp [system] at h16 h17 + apply Prod.ext <;> linarith + +/-- Equation (41), extracted from the direct 22D system. -/ +theorem match_path45_of_equations {p : Params} (heq : Equations p) : + path4 p (Real.pi / 2 - p.phi) = + path5 p (Real.pi / 2 - p.phi) := by + have h18 := congrFun heq (18 : Fin 22) + have h19 := congrFun heq (19 : Fin 22) + simp [system] at h18 h19 + apply Prod.ext <;> linarith + +/-- The four positional matching equations make the literal nested-`if` +five-phase path continuous whenever its switches are ordered. -/ +theorem continuous_path_of_order_and_equations + {p : Params} (hord : SwitchOrder p) (heq : Equations p) : + Continuous (path p) := by + have h12 := match_path12_of_equations heq + have h23 := match_path23_of_equations heq + have h34 := match_path34_of_equations heq + have h45 := match_path45_of_equations heq + have hc45 : Continuous + (fun t : ℝ => + if t ≤ Real.pi / 2 - p.phi then path4 p t else path5 p t) := by + exact (continuous_path4 p).if_le (continuous_path5 p) + continuous_id continuous_const (by + intro t ht + subst t + exact h45) + have hc345 : Continuous + (fun t : ℝ => + if t ≤ Real.pi / 2 - p.theta then path3 p t + else if t ≤ Real.pi / 2 - p.phi then path4 p t else path5 p t) := by + exact (continuous_path3 p).if_le hc45 + continuous_id continuous_const (by + intro t ht + subst t + rw [ite_eq_left hord.eta_le_tau] + exact h34) + have hc2345 : Continuous + (fun t : ℝ => + if t ≤ p.theta then path2 p t + else if t ≤ Real.pi / 2 - p.theta then path3 p t + else if t ≤ Real.pi / 2 - p.phi then path4 p t else path5 p t) := by + exact (continuous_path2 p).if_le hc345 + continuous_id continuous_const (by + intro t ht + subst t + rw [ite_eq_left hord.theta_le_eta] + exact h23) + have hc12345 : Continuous + (fun t : ℝ => + if t ≤ p.phi then path1 p t + else if t ≤ p.theta then path2 p t + else if t ≤ Real.pi / 2 - p.theta then path3 p t + else if t ≤ Real.pi / 2 - p.phi then path4 p t else path5 p t) := by + exact (continuous_path1 p).if_le hc2345 + continuous_id continuous_const (by + intro t ht + subst t + rw [ite_eq_left hord.phi_le_theta] + exact h12) + unfold path + exact hc12345 + +end Romik + +end +end GerverSofa + +end + +end + +section + +/-! +# Exact real boxes used by the Krawczyk certificates + +Every endpoint is written as an exact integer quotient. There are no binary +floating-point constants in these definitions. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa + +/-- Interpret an integer numerator and natural denominator as a real quotient. -/ +def qR (n : Int) (d : Nat) : ℝ := (n : ℝ) / (d : ℝ) + +namespace Reduced + +/-- Input box `X_a × X_b × X_phi × X_theta`. -/ +def box : Set Params := + {p | + qR 1888531216873 20000000000000 ≤ p.a ∧ p.a ≤ qR 4721328042183 50000000000000 ∧ + qR 69960186366677 50000000000000 ≤ p.b ∧ p.b ≤ qR 34980093183339 25000000000000 ∧ + qR 122429264969 3125000000000 ≤ p.phi ∧ p.phi ≤ qR 3917736479009 100000000000000 ∧ + qR 2129067216821 3125000000000 ≤ p.theta ∧ p.theta ≤ qR 68130150938273 100000000000000} + +end Reduced + +namespace Romik + +/-- The direct 22-dimensional box `Y × Phi × Theta`. -/ +def box : Set Params := + {p | + qR (-21032242207268875141628571849) 100000000000000000000000000000 ≤ p.k11 ∧ p.k11 ≤ qR + (-21032242207268875141608571849) 100000000000000000000000000000 ∧ + qR 2499999999999999999999 10000000000000000000000 ≤ p.k12 ∧ p.k12 ≤ qR 2500000000000000000001 + 10000000000000000000000 ∧ + qR (-91917929277159332227479610289) 100000000000000000000000000000 ≤ p.k21 ∧ p.k21 ≤ qR + (-91917929277159332227459610289) 100000000000000000000000000000 ∧ + qR 29525413734425341573853797657 62500000000000000000000000000 ≤ p.k22 ∧ p.k22 ≤ qR + 29525413734425341573866297657 62500000000000000000000000000 ∧ + qR (-15344080735756291713875357283) 25000000000000000000000000000 ≤ p.k31 ∧ p.k31 ≤ qR + (-15344080735756291713870357283) 25000000000000000000000000000 ∧ + qR 17792529580064437214538861001 20000000000000000000000000000 ≤ p.k32 ∧ p.k32 ≤ qR + 17792529580064437214542861001 20000000000000000000000000000 ∧ + qR (-15417358304445500741761623987) 50000000000000000000000000000 ≤ p.k41 ∧ p.k41 ≤ qR + (-15417358304445500741751623987) 50000000000000000000000000000 ∧ + qR 29525413734425341573853797657 62500000000000000000000000000 ≤ p.k42 ∧ p.k42 ≤ qR + 29525413734425341573866297657 62500000000000000000000000000 ∧ + qR (-20344080735756291713874857283) 20000000000000000000000000000 ≤ p.k51 ∧ p.k51 ≤ qR + (-20344080735756291713870857283) 20000000000000000000000000000 ∧ + qR 2499999999999999999999 10000000000000000000000 ≤ p.k52 ∧ p.k52 ≤ qR 2500000000000000000001 + 10000000000000000000000 ∧ + qR 2420644844145377502832171437 2000000000000000000000000000 ≤ p.a1 ∧ p.a1 ≤ qR + 2420644844145377502832571437 2000000000000000000000000000 ∧ + qR (-2500000000000000000001) 10000000000000000000000 ≤ p.a2 ∧ p.a2 ≤ qR + (-2499999999999999999999) 10000000000000000000000 ∧ + qR (-52762459802678462416060380937) 100000000000000000000000000000 ≤ p.b1 ∧ p.b1 ≤ qR + (-52762459802678462416040380937) 100000000000000000000000000000 ∧ + qR 92025838516063762289360579501 100000000000000000000000000000 ≤ p.b2 ∧ p.b2 ≤ qR + 92025838516063762289380579501 100000000000000000000000000000 ∧ + qR 313022761424232933776114655193 500000000000000000000000000000 ≤ p.c1 ∧ p.c1 ≤ qR + 313022761424232933776214655193 500000000000000000000000000000 ∧ + qR (-151160128631428920268654781) 160000000000000000000000000 ≤ p.c2 ∧ p.c2 ≤ qR + (-151160128631428920268622781) 160000000000000000000000000 ∧ + qR 1641278451780291167220080819 1250000000000000000000000000 ≤ p.d1 ∧ p.d1 ≤ qR + 1641278451780291167220330819 1250000000000000000000000000 ∧ + qR (-105076534082910887440587258861) 200000000000000000000000000000 ≤ p.d2 ∧ p.d2 ≤ qR + (-105076534082910887440547258861) 200000000000000000000000000000 ∧ + qR 2420644844145377502832171437 2000000000000000000000000000 ≤ p.e1 ∧ p.e1 ≤ qR + 2420644844145377502832571437 2000000000000000000000000000 ∧ + qR 2499999999999999999999 10000000000000000000000 ≤ p.e2 ∧ p.e2 ≤ qR 2500000000000000000001 + 10000000000000000000000 ∧ + qR 1958868239504182093160893749 50000000000000000000000000000 ≤ p.phi ∧ p.phi ≤ qR + 78354729580167283726435751 2000000000000000000000000000 ∧ + qR 34065075469136244723692787727 50000000000000000000000000000 ≤ p.theta ∧ p.theta ≤ qR + 34065075469136244723692787983 50000000000000000000000000000} + +end Romik +end GerverSofa + +namespace GerverSofa.Romik + +/-- Every point in the certified direct-system box has a positive first +switching angle. -/ +theorem phi_pos_of_mem_box {p : Params} (hp : p ∈ box) : 0 < p.phi := by + dsimp [box, qR] at hp + have hlo : + ((1958868239504182093160893749 : ℝ) / + 50000000000000000000000000000) ≤ p.phi := by + aesop + have hpositive : + (0 : ℝ) < + ((1958868239504182093160893749 : ℝ) / + 50000000000000000000000000000) := by + norm_num + exact lt_of_lt_of_le hpositive hlo + +/-- Equations (32)--(34), together with the certified box, force the exact +initial path normalisation `x(0)=(0,0)`. -/ +theorem path_zero_of_mem_box_and_equations + {p : Params} (hp : p ∈ box) (heq : Equations p) : + path p 0 = (0, 0) := by + have hphi : 0 < p.phi := phi_pos_of_mem_box hp + have h5 := congrFun heq (5 : Fin 22) + have h6 := congrFun heq (6 : Fin 22) + have h7 := congrFun heq (7 : Fin 22) + simp [system] at h5 h6 h7 + have h0phi : (0 : ℝ) ≤ p.phi := le_of_lt hphi + apply Prod.ext <;> + simp [path, h0phi, path1, rot, addK] <;> + linarith + +/-- The exact direct-system box orders the four physical switching times. -/ +theorem switchOrder_of_mem_box {p : Params} (hp : p ∈ box) : SwitchOrder p := by + dsimp [box, qR] at hp + have hphiLo : + ((1958868239504182093160893749 : ℝ) / + 50000000000000000000000000000) ≤ p.phi := by + aesop + have hphiHi : + p.phi ≤ ((78354729580167283726435751 : ℝ) / + 2000000000000000000000000000) := by + aesop + have hthetaLo : + ((34065075469136244723692787727 : ℝ) / + 50000000000000000000000000000) ≤ p.theta := by + aesop + have hthetaHi : + p.theta ≤ ((34065075469136244723692787983 : ℝ) / + 50000000000000000000000000000) := by + aesop + have hphiTheta : p.phi ≤ p.theta := by + norm_num at hphiHi hthetaLo + linarith + have hthetaEta : p.theta ≤ Real.pi / 2 - p.theta := by + norm_num at hthetaHi + nlinarith [Real.pi_gt_three] + exact + { phi_le_theta := hphiTheta + theta_le_eta := hthetaEta + eta_le_tau := by linarith } + +/-- The certified box and the positional equations discharge the path +continuity field needed by the moving-sofa assembly. -/ +theorem continuous_path_of_mem_box_and_equations + {p : Params} (hp : p ∈ box) (heq : Equations p) : + Continuous (path p) := + continuous_path_of_order_and_equations (switchOrder_of_mem_box hp) heq + +/-- The direct-system box supplies the strict lower bound on `a₁` used in the +area proposition. -/ +theorem a1_lower_bound_of_mem_box {p : Params} (hp : p ∈ box) : + ((2420644844145377502832171437 : ℝ) / + 2000000000000000000000000000) ≤ p.a1 := by + dsimp [box, qR] at hp + aesop + +end GerverSofa.Romik + +end + +end + +end + +section + +/-! +# Concrete Gerver cap, niche and fixed sofa + +The definitions follow the manuscript literally. This file also proves the +closedness part of the main topological certificate directly from the +half-plane definitions; it does not use the numerical certificate or Baek's +cap theory. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa + +/-- Euclidean scalar product in the fixed coordinate representation. -/ +def dot (p q : Point) : ℝ := p.1 * q.1 + p.2 * q.2 + +/-- Rotating outer-wall normals. -/ +def u (t : ℝ) : Point := (Real.cos t, Real.sin t) +/-- The vertical unit vector rotated counterclockwise through angle `t`. -/ +def v (t : ℝ) : Point := (-Real.sin t, Real.cos t) + +/-- The lower fan in the manuscript normalisation. -/ +def capFan : Set Point := {q | 0 ≤ q.2} + +/-- First rotating supporting half-plane. -/ +def supportHalfU (p : Romik.Params) (t : ℝ) : Set Point := + {q | dot q (u t) ≤ dot (Romik.path p t) (u t) + 1} + +/-- Second rotating supporting half-plane. -/ +def supportHalfV (p : Romik.Params) (t : ℝ) : Set Point := + {q | dot q (v t) ≤ dot (Romik.path p t) (v t) + 1} + +/-- The cap `K₀` reconstructed from the five-phase path. -/ +def Romik.K0 (p : Romik.Params) : Set Point := + {q | 0 ≤ q.2 ∧ + ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + q ∈ supportHalfU p t ∩ supportHalfV p t} + +/-- Open inner quadrant of the supporting hallway at physical angle `t`. -/ +def Romik.innerQuadrantAt (p : Romik.Params) (t : ℝ) : Set Point := + let x := Romik.path p t + {q | dot (q.1 - x.1, q.2 - x.2) (u t) < 0 ∧ + dot (q.1 - x.1, q.2 - x.2) (v t) < 0} + +/-- Union of all forbidden inner quadrants at interior rotation times. -/ +def Romik.innerUnion (p : Romik.Params) : Set Point := + {q | ∃ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), q ∈ Romik.innerQuadrantAt p t} + +/-- The niche removed from the cap. -/ +def Romik.niche (p : Romik.Params) : Set Point := + capFan ∩ Romik.innerUnion p + +/-- The fixed Gerver candidate `G = K₀ \ N(K₀)`. -/ +def Romik.sofa (p : Romik.Params) : Set Point := + Romik.K0 p \ Romik.niche p + +/-- Physical supporting hallway at normalized time `s`. -/ +def Romik.hallwayAt (p : Romik.Params) (s : ℝ) : Set Point := + supportingHallway (Romik.frame p s) + +/-! ## Closedness facts independent of the numerical certificate -/ + +private theorem continuous_dot_fixed (a : Point) : + Continuous (fun q : Point => dot q a) := by + unfold dot + fun_prop + +private theorem continuous_shifted_dot (x a : Point) : + Continuous (fun q : Point => dot (q.1 - x.1, q.2 - x.2) a) := by + unfold dot + fun_prop + +/-- A fixed supporting half-plane is closed. -/ +theorem isClosed_supportHalfU (p : Romik.Params) (t : ℝ) : + IsClosed (supportHalfU p t) := by + change IsClosed ((fun q : Point => dot q (u t)) ⁻¹' + Set.Iic (dot (Romik.path p t) (u t) + 1)) + exact isClosed_Iic.preimage (continuous_dot_fixed (u t)) + +/-- The other fixed supporting half-plane is closed. -/ +theorem isClosed_supportHalfV (p : Romik.Params) (t : ℝ) : + IsClosed (supportHalfV p t) := by + change IsClosed ((fun q : Point => dot q (v t)) ⁻¹' + Set.Iic (dot (Romik.path p t) (v t) + 1)) + exact isClosed_Iic.preimage (continuous_dot_fixed (v t)) + +/-- The fan constraint is closed. -/ +theorem isClosed_capFan : IsClosed capFan := by + change IsClosed ((fun q : Point => q.2) ⁻¹' Set.Ici 0) + exact isClosed_Ici.preimage continuous_snd + +/-- The bounded-quantifier definition of `K₀` as an explicit intersection. -/ +theorem Romik.K0_eq_inter_iInter (p : Romik.Params) : + Romik.K0 p = capFan ∩ + ⋂ t : {t : ℝ // t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)}, + (supportHalfU p t.1 ∩ supportHalfV p t.1) := by + ext q + constructor + · rintro ⟨hbase, hall⟩ + refine ⟨hbase, Set.mem_iInter.mpr ?_⟩ + intro t + exact hall t.1 t.2 + · rintro ⟨hbase, hall⟩ + refine ⟨hbase, ?_⟩ + intro t ht + exact Set.mem_iInter.mp hall ⟨t, ht⟩ + +/-- `K₀` is closed, before any support-maximisation or compactness argument. -/ +theorem Romik.isClosed_K0 (p : Romik.Params) : IsClosed (Romik.K0 p) := by + rw [Romik.K0_eq_inter_iInter] + exact isClosed_capFan.inter <| + isClosed_iInter fun t => + (isClosed_supportHalfU p t.1).inter (isClosed_supportHalfV p t.1) + +/-- Every instantaneous inner quadrant is open. -/ +theorem Romik.isOpen_innerQuadrantAt (p : Romik.Params) (t : ℝ) : + IsOpen (Romik.innerQuadrantAt p t) := by + let x := Romik.path p t + have hu : IsOpen + ((fun q : Point => dot (q.1 - x.1, q.2 - x.2) (u t)) ⁻¹' Set.Iio 0) := + isOpen_Iio.preimage (continuous_shifted_dot x (u t)) + have hv : IsOpen + ((fun q : Point => dot (q.1 - x.1, q.2 - x.2) (v t)) ⁻¹' Set.Iio 0) := + isOpen_Iio.preimage (continuous_shifted_dot x (v t)) + change IsOpen + (((fun q : Point => dot (q.1 - x.1, q.2 - x.2) (u t)) ⁻¹' Set.Iio 0) ∩ + ((fun q : Point => dot (q.1 - x.1, q.2 - x.2) (v t)) ⁻¹' Set.Iio 0)) + exact hu.inter hv + +/-- The union of all interior-time inner quadrants is open. -/ +theorem Romik.isOpen_innerUnion (p : Romik.Params) : + IsOpen (Romik.innerUnion p) := by + have hrepr : Romik.innerUnion p = + ⋃ t : {t : ℝ // t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2)}, + Romik.innerQuadrantAt p t.1 := by + ext q + constructor + · rintro ⟨t, ht, hq⟩ + exact Set.mem_iUnion.mpr ⟨⟨t, ht⟩, hq⟩ + · intro hq + rcases Set.mem_iUnion.mp hq with ⟨t, hq⟩ + exact ⟨t.1, t.2, hq⟩ + rw [hrepr] + exact isOpen_iUnion fun t => Romik.isOpen_innerQuadrantAt p t.1 + +/-- The cap lies in its fan by definition. -/ +theorem Romik.K0_subset_capFan (p : Romik.Params) : Romik.K0 p ⊆ capFan := by + intro q hq + exact hq.1 + +/-- Since `K₀ ⊆ capFan`, removing the niche is the same as removing the open +union of forbidden quadrants. -/ +theorem Romik.sofa_eq_K0_diff_innerUnion (p : Romik.Params) : + Romik.sofa p = Romik.K0 p \ Romik.innerUnion p := by + ext q + constructor + · rintro ⟨hqK, hqN⟩ + refine ⟨hqK, ?_⟩ + intro hqU + exact hqN ⟨Romik.K0_subset_capFan p hqK, hqU⟩ + · rintro ⟨hqK, hqU⟩ + refine ⟨hqK, ?_⟩ + rintro ⟨_hqFan, hqInner⟩ + exact hqU hqInner + +/-- The concrete fixed sofa candidate is closed for every parameter vector. -/ +theorem Romik.isClosed_sofa (p : Romik.Params) : IsClosed (Romik.sofa p) := by + rw [Romik.sofa_eq_K0_diff_innerUnion] + simpa [Set.sdiff_eq] using + (Romik.isClosed_K0 p).inter (Romik.isOpen_innerUnion p).isClosed_compl + +/-! ## Algebraic hallway characterisation and endpoint assembly -/ + +@[simp] theorem Romik.mem_supportHalfU (p : Romik.Params) (t : ℝ) (q : Point) : + q ∈ supportHalfU p t ↔ + dot q (u t) ≤ dot (Romik.path p t) (u t) + 1 := Iff.rfl + +@[simp] theorem Romik.mem_supportHalfV (p : Romik.Params) (t : ℝ) (q : Point) : + q ∈ supportHalfV p t ↔ + dot q (v t) ≤ dot (Romik.path p t) (v t) + 1 := Iff.rfl + +@[simp] theorem Romik.mem_K0 (p : Romik.Params) (q : Point) : + q ∈ Romik.K0 p ↔ + 0 ≤ q.2 ∧ + ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + q ∈ supportHalfU p t ∩ supportHalfV p t := Iff.rfl + +@[simp] theorem Romik.mem_innerUnion (p : Romik.Params) (q : Point) : + q ∈ Romik.innerUnion p ↔ + ∃ t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2), + q ∈ Romik.innerQuadrantAt p t := Iff.rfl + +@[simp] theorem Romik.mem_niche (p : Romik.Params) (q : Point) : + q ∈ Romik.niche p ↔ q ∈ capFan ∧ q ∈ Romik.innerUnion p := Iff.rfl + +@[simp] theorem Romik.mem_sofa (p : Romik.Params) (q : Point) : + q ∈ Romik.sofa p ↔ q ∈ Romik.K0 p ∧ q ∉ Romik.niche p := Iff.rfl + +/-- The inverse supporting frame has exactly the two signed wall coordinates +used in the manuscript. -/ +theorem Romik.frame_inv_act_formula (p : Romik.Params) (s : ℝ) (q : Point) : + (Romik.frame p s).inv.act q = + (dot (q.1 - (Romik.path p (Romik.angle s)).1, + q.2 - (Romik.path p (Romik.angle s)).2) (u (Romik.angle s)), + dot (q.1 - (Romik.path p (Romik.angle s)).1, + q.2 - (Romik.path p (Romik.angle s)).2) (v (Romik.angle s))) := by + apply Prod.ext <;> + simp [Romik.frame, SE2.inv, SE2.act, dot, u, v] <;> ring + +/-- A point is in the supporting hallway iff its two wall coordinates lie in +`Q⁺` but not simultaneously in the open inner quadrant `Q⁻`. -/ +theorem Romik.mem_hallwayAt_iff_wall_coordinates + (p : Romik.Params) (s : ℝ) (q : Point) : + q ∈ Romik.hallwayAt p s ↔ + let t := Romik.angle s + let x := Romik.path p t + (dot (q.1 - x.1, q.2 - x.2) (u t) ≤ 1 ∧ + dot (q.1 - x.1, q.2 - x.2) (v t) ≤ 1) ∧ + ¬ (dot (q.1 - x.1, q.2 - x.2) (u t) < 0 ∧ + dot (q.1 - x.1, q.2 - x.2) (v t) < 0) := by + rw [Romik.hallwayAt, mem_supportingHallway_iff] + rw [Romik.frame_inv_act_formula] + rw [hallway_eq_outer_diff_inner] + simp [outerQuarter, innerQuarter] + +/-- A sofa point cannot lie in an instantaneous forbidden quadrant at an +interior physical time. -/ +theorem Romik.not_mem_innerQuadrantAt_of_mem_sofa + (p : Romik.Params) {q : Point} (hq : q ∈ Romik.sofa p) + {t : ℝ} (ht : t ∈ Set.Ioo (0 : ℝ) (Real.pi / 2)) : + q ∉ Romik.innerQuadrantAt p t := by + intro hinner + exact hq.2 ⟨Romik.K0_subset_capFan p hq.1, ⟨t, ht, hinner⟩⟩ + +/-- The lower-fan constraint excludes the initial inner quadrant once the +physical path starts at the origin. -/ +theorem Romik.not_mem_initial_innerQuadrant + (p : Romik.Params) (hzero : Romik.path p 0 = (0, 0)) + {q : Point} (hq : q ∈ Romik.sofa p) : + q ∉ Romik.innerQuadrantAt p 0 := by + intro hinner + have hbase : 0 ≤ q.2 := hq.1.1 + have hneg : q.2 < 0 := by + simpa [Romik.innerQuadrantAt, dot, u, v, hzero] using hinner.2 + exact (not_lt_of_ge hbase) hneg + +/-- The lower-fan constraint excludes the final inner quadrant once the final +path point has second coordinate zero. -/ +theorem Romik.not_mem_final_innerQuadrant + (p : Romik.Params) + (hend : (Romik.path p (Real.pi / 2)).2 = 0) + {q : Point} (hq : q ∈ Romik.sofa p) : + q ∉ Romik.innerQuadrantAt p (Real.pi / 2) := by + intro hinner + have hbase : 0 ≤ q.2 := hq.1.1 + have hneg : q.2 < 0 := by + simpa [Romik.innerQuadrantAt, dot, u, v, hend] using hinner.1 + exact (not_lt_of_ge hbase) hneg + +/-- The concrete cap-minus-niche set lies in every supporting hallway. The +only endpoint input is the pair of path normalisations used in the paper. -/ +theorem Romik.sofa_subset_hallwayAt + (p : Romik.Params) + (hzero : Romik.path p 0 = (0, 0)) + (hend : (Romik.path p (Real.pi / 2)).2 = 0) : + ∀ s ∈ Set.Icc (0 : ℝ) 1, + Romik.sofa p ⊆ Romik.hallwayAt p s := by + intro s hs q hq + rw [Romik.mem_hallwayAt_iff_wall_coordinates] + dsimp only + have hangle : Romik.angle s ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := by + constructor + · exact mul_nonneg hs.1 (by positivity) + · have hm := mul_le_mul_of_nonneg_right hs.2 + (show 0 ≤ Real.pi / 2 by positivity) + simpa [Romik.angle] using hm + have hsupports := hq.1.2 (Romik.angle s) hangle + constructor + · constructor + · have hu := hsupports.1 + change dot q (u (Romik.angle s)) ≤ + dot (Romik.path p (Romik.angle s)) (u (Romik.angle s)) + 1 at hu + dsimp [dot] at hu ⊢ + linarith + · have hv := hsupports.2 + change dot q (v (Romik.angle s)) ≤ + dot (Romik.path p (Romik.angle s)) (v (Romik.angle s)) + 1 at hv + dsimp [dot] at hv ⊢ + linarith + · change q ∉ Romik.innerQuadrantAt p (Romik.angle s) + by_cases hs0 : s = 0 + · subst s + simpa using Romik.not_mem_initial_innerQuadrant p hzero hq + by_cases hs1 : s = 1 + · subst s + simpa using Romik.not_mem_final_innerQuadrant p hend hq + · have hsIoo : s ∈ Set.Ioo (0 : ℝ) 1 := by + exact ⟨lt_of_le_of_ne hs.1 (Ne.symm hs0), + lt_of_le_of_ne hs.2 hs1⟩ + have hangleIoo : Romik.angle s ∈ + Set.Ioo (0 : ℝ) (Real.pi / 2) := by + constructor + · exact mul_pos hsIoo.1 (by positivity) + · have hm := mul_lt_mul_of_pos_right hsIoo.2 + (show 0 < Real.pi / 2 by positivity) + simpa [Romik.angle] using hm + exact Romik.not_mem_innerQuadrantAt_of_mem_sofa p hq hangleIoo + +/-- The inverse frame at time zero places the concrete sofa in the horizontal +arm. -/ +theorem Romik.initial_arm_of_path_zero + (p : Romik.Params) (hzero : Romik.path p 0 = (0, 0)) : + ((Romik.frame p 0).inv.act '' Romik.sofa p) ⊆ horizontalArm := by + rintro y ⟨q, hq, rfl⟩ + have htime : (0 : ℝ) ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := by + constructor <;> positivity + have hs := hq.1.2 0 htime + have hx : q.1 ≤ 1 := by + have hu := hs.1 + simpa [supportHalfU, dot, u, hzero] using hu + have hy0 : 0 ≤ q.2 := hq.1.1 + have hy1 : q.2 ≤ 1 := by + have hv := hs.2 + simpa [supportHalfV, dot, v, hzero] using hv + rw [Romik.frame_inv_act_formula] + simpa [Romik.angle, hzero, dot, u, v, horizontalArm] using + (show q.1 ≤ 1 ∧ 0 ≤ q.2 ∧ q.2 ≤ 1 from ⟨hx, hy0, hy1⟩) + +/-- The inverse frame at time one places the concrete sofa in the vertical +arm. -/ +theorem Romik.final_arm_of_path_end_y_zero + (p : Romik.Params) + (hend : (Romik.path p (Real.pi / 2)).2 = 0) : + ((Romik.frame p 1).inv.act '' Romik.sofa p) ⊆ verticalArm := by + rintro y ⟨q, hq, rfl⟩ + have htime : Real.pi / 2 ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := by + constructor + · positivity + · rfl + have hs := hq.1.2 (Real.pi / 2) htime + have hy0 : 0 ≤ q.2 := hq.1.1 + have hy1 : q.2 ≤ 1 := by + have hu := hs.1 + simpa [supportHalfU, dot, u, hend] using hu + have hv := hs.2 + have hv1 : + dot (q.1 - (Romik.path p (Real.pi / 2)).1, + q.2 - (Romik.path p (Real.pi / 2)).2) (v (Real.pi / 2)) ≤ 1 := by + change dot q (v (Real.pi / 2)) ≤ + dot (Romik.path p (Real.pi / 2)) (v (Real.pi / 2)) + 1 at hv + dsimp [dot] at hv ⊢ + linarith + rw [Romik.frame_inv_act_formula] + simpa [Romik.angle, dot, u, v, hend, verticalArm] using + (show 0 ≤ q.2 ∧ q.2 ≤ 1 ∧ + dot (q.1 - (Romik.path p (Real.pi / 2)).1, + q.2 - (Romik.path p (Real.pi / 2)).2) (v (Real.pi / 2)) ≤ 1 + from ⟨hy0, hy1, hv1⟩) + +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.AlternatingSeries`. +* `KernelOnly.Coordinates`. +* `KernelOnly.EndpointSymmetry`. +* `KernelOnly.Identification`. +* `KernelOnly.ReplayConsequences`. +* `KernelOnly.SoundnessInterfaces`. +* `KernelOnly.TranscendentalSoundness`. +* `KernelOnly.ADCoreSoundness`. +* `KernelOnly.ReducedADSoundness`. +* `KernelOnly.FullADSoundness`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Alternating-series kernel for the executable transcendental layer + +This file connects the exact rational partial sums used by `ExactReplay` to +Mathlib's real power-series theorems. The Taylor evaluator is intentionally +used only on arguments in `[0, 1]`; the range-reduction layer proves this +precondition before calling these results. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.ExactReplay + +open scoped BigOperators +open Filter Finset + +/-- Real magnitude of the `n`th sine-series term. -/ +def sinMagnitude (x : ℝ) (n : ℕ) : ℝ := + x ^ (2 * n + 1) / (Nat.factorial (2 * n + 1) : ℝ) + +/-- Real magnitude of the `n`th cosine-series term. -/ +def cosMagnitude (x : ℝ) (n : ℕ) : ℝ := + x ^ (2 * n) / (Nat.factorial (2 * n) : ℝ) + +/-- Real magnitude of the `n`th arctangent-series term. -/ +def atanMagnitude (x : ℝ) (n : ℕ) : ℝ := + x ^ (2 * n + 1) / ((2 * n + 1 : ℕ) : ℝ) + +/-- On `[0,1]`, the unsigned sine Taylor terms decrease. -/ +theorem antitone_sinMagnitude {x : ℝ} (hx0 : 0 ≤ x) (hx1 : x ≤ 1) : + Antitone (sinMagnitude x) := by + apply antitone_nat_of_succ_le + intro n + simp only [sinMagnitude] + refine div_le_div₀ (pow_nonneg hx0 _) ?_ (by positivity) ?_ + · exact pow_le_pow_of_le_one hx0 hx1 (by omega) + · exact_mod_cast Nat.factorial_le (by omega) + +/-- On `[0,1]`, the unsigned cosine Taylor terms decrease. -/ +theorem antitone_cosMagnitude {x : ℝ} (hx0 : 0 ≤ x) (hx1 : x ≤ 1) : + Antitone (cosMagnitude x) := by + apply antitone_nat_of_succ_le + intro n + simp only [cosMagnitude] + refine div_le_div₀ (pow_nonneg hx0 _) ?_ (by positivity) ?_ + · exact pow_le_pow_of_le_one hx0 hx1 (by omega) + · exact_mod_cast Nat.factorial_le (by omega) + +/-- On `[0,1]`, the unsigned arctangent Taylor terms decrease. -/ +theorem antitone_atanMagnitude {x : ℝ} (hx0 : 0 ≤ x) (hx1 : x ≤ 1) : + Antitone (atanMagnitude x) := by + apply antitone_nat_of_succ_le + intro n + simp only [atanMagnitude] + refine div_le_div₀ (pow_nonneg hx0 _) ?_ (by positivity) ?_ + · exact pow_le_pow_of_le_one hx0 hx1 (by omega) + · exact_mod_cast (show 2 * n + 1 ≤ 2 * (n + 1) + 1 by omega) + +/-- Casting the executable sine partial sum to `ℝ` gives the corresponding +Mathlib finite Taylor sum. -/ +theorem coe_sinPartial (x : ℚ) (terms : ℕ) : + ((GerverSofa.ExactReplay.sinPartial x terms : ℚ) : ℝ) = + ∑ k ∈ Finset.range terms, + (-1 : ℝ) ^ k * (x : ℝ) ^ (2 * k + 1) / + (Nat.factorial (2 * k + 1) : ℝ) := by + simp only [sinPartial, signedTerm, factorialQ, Rat.cast_sum, neg_one_pow_eq_ite, Nat.even_iff, + ite_mul, one_mul, neg_mul] + refine Finset.sum_congr rfl ?_ + intro k hk + by_cases h : k % 2 = 0 <;> simp [h, neg_div] + +/-- Casting the executable cosine partial sum to `ℝ` gives the corresponding +Mathlib finite Taylor sum. -/ +theorem coe_cosPartial (x : ℚ) (terms : ℕ) : + ((GerverSofa.ExactReplay.cosPartial x terms : ℚ) : ℝ) = + ∑ k ∈ Finset.range terms, + (-1 : ℝ) ^ k * (x : ℝ) ^ (2 * k) / + (Nat.factorial (2 * k) : ℝ) := by + simp only [cosPartial, signedTerm, factorialQ, Rat.cast_sum, neg_one_pow_eq_ite, Nat.even_iff, + ite_mul, one_mul, neg_mul] + refine Finset.sum_congr rfl ?_ + intro k hk + by_cases h : k % 2 = 0 <;> simp [h, neg_div] + +/-- Casting the executable arctangent partial sum to `ℝ` gives the +corresponding Mathlib finite Taylor sum. -/ +theorem coe_atanPartial (x : ℚ) (terms : ℕ) : + ((GerverSofa.ExactReplay.atanPartial x terms : ℚ) : ℝ) = + ∑ k ∈ Finset.range terms, + (-1 : ℝ) ^ k * (x : ℝ) ^ (2 * k + 1) / + ((2 * k + 1 : ℕ) : ℝ) := by + simp only [atanPartial, Nat.cast_add, Nat.cast_mul, Nat.cast_ofNat, Nat.cast_one, Rat.cast_sum, + neg_one_pow_eq_ite, Nat.even_iff, ite_mul, one_mul, neg_mul] + refine Finset.sum_congr rfl ?_ + intro k hk + by_cases h : k % 2 = 0 <;> simp [h, neg_div] + +/-- The 20-term sine partial sum is a lower bound and the 19-term partial sum +is an upper bound for every rational argument in `[0,1]`. -/ +theorem sine_between_partials {x : ℚ} + (hx0 : (0 : ℚ) ≤ x) (hx1 : x ≤ 1) : + ((GerverSofa.ExactReplay.sinPartial x 20 : ℚ) : ℝ) ≤ Real.sin (x : ℝ) ∧ + Real.sin (x : ℝ) ≤ ((GerverSofa.ExactReplay.sinPartial x 19 : ℚ) : ℝ) := by + have hx0r : (0 : ℝ) ≤ (x : ℝ) := by exact_mod_cast hx0 + have hx1r : (x : ℝ) ≤ 1 := by exact_mod_cast hx1 + have hanti : Antitone (sinMagnitude (x : ℝ)) := + antitone_sinMagnitude hx0r hx1r + have htendRaw := (Real.hasSum_sin (x : ℝ)).tendsto_sum_nat + have htendMag : + Filter.Tendsto + (fun n : ℕ => ∑ i ∈ Finset.range n, (-1 : ℝ) ^ i * sinMagnitude (x : ℝ) i) + Filter.atTop (nhds (Real.sin (x : ℝ))) := by + simpa only [sinMagnitude, mul_div_assoc] using htendRaw + have hlower := Antitone.alternating_series_le_tendsto htendMag hanti 10 + have hupper := Antitone.tendsto_le_alternating_series htendMag hanti 9 + have h20 : (2 * 10 : ℕ) = 20 := by norm_num + have h19 : (2 * 9 + 1 : ℕ) = 19 := by norm_num + constructor + · rw [coe_sinPartial] + simpa only [sinMagnitude, mul_div_assoc, h20] using hlower + · rw [coe_sinPartial] + simpa only [sinMagnitude, mul_div_assoc, h19] using hupper + +/-- The 20-term cosine partial sum is a lower bound and the 19-term partial +sum is an upper bound for every rational argument in `[0,1]`. -/ +theorem cosine_between_partials {x : ℚ} + (hx0 : (0 : ℚ) ≤ x) (hx1 : x ≤ 1) : + ((GerverSofa.ExactReplay.cosPartial x 20 : ℚ) : ℝ) ≤ Real.cos (x : ℝ) ∧ + Real.cos (x : ℝ) ≤ ((GerverSofa.ExactReplay.cosPartial x 19 : ℚ) : ℝ) := by + have hx0r : (0 : ℝ) ≤ (x : ℝ) := by exact_mod_cast hx0 + have hx1r : (x : ℝ) ≤ 1 := by exact_mod_cast hx1 + have hanti : Antitone (cosMagnitude (x : ℝ)) := + antitone_cosMagnitude hx0r hx1r + have htendRaw := (Real.hasSum_cos (x : ℝ)).tendsto_sum_nat + have htendMag : + Filter.Tendsto + (fun n : ℕ => ∑ i ∈ Finset.range n, (-1 : ℝ) ^ i * cosMagnitude (x : ℝ) i) + Filter.atTop (nhds (Real.cos (x : ℝ))) := by + simpa only [cosMagnitude, mul_div_assoc] using htendRaw + have hlower := Antitone.alternating_series_le_tendsto htendMag hanti 10 + have hupper := Antitone.tendsto_le_alternating_series htendMag hanti 9 + have h20 : (2 * 10 : ℕ) = 20 := by norm_num + have h19 : (2 * 9 + 1 : ℕ) = 19 := by norm_num + constructor + · rw [coe_cosPartial] + simpa only [cosMagnitude, mul_div_assoc, h20] using hlower + · rw [coe_cosPartial] + simpa only [cosMagnitude, mul_div_assoc, h19] using hupper + +/-- Even/odd arctangent partial sums provide certified lower/upper bounds. -/ +theorem arctan_between_partials {x : ℚ} + (hx0 : (0 : ℚ) ≤ x) (hx1 : x < 1) (k : ℕ) : + ((GerverSofa.ExactReplay.atanPartial x (2 * k + 2) : ℚ) : ℝ) ≤ Real.arctan (x : ℝ) ∧ + Real.arctan (x : ℝ) ≤ ((GerverSofa.ExactReplay.atanPartial x (2 * k + 1) : ℚ) : ℝ) := by + have hx0r : (0 : ℝ) ≤ (x : ℝ) := by exact_mod_cast hx0 + have hx1r : (x : ℝ) < 1 := by exact_mod_cast hx1 + have hx1le : (x : ℝ) ≤ 1 := hx1r.le + have habs : ‖(x : ℝ)‖ < 1 := by + rw [Real.norm_eq_abs, abs_of_nonneg hx0r] + exact hx1r + have hanti : Antitone (atanMagnitude (x : ℝ)) := + antitone_atanMagnitude hx0r hx1le + have htendRaw := (Real.hasSum_arctan habs).tendsto_sum_nat + have htendMag : + Filter.Tendsto + (fun n : ℕ => ∑ i ∈ Finset.range n, (-1 : ℝ) ^ i * atanMagnitude (x : ℝ) i) + Filter.atTop (nhds (Real.arctan (x : ℝ))) := by + simpa only [atanMagnitude, mul_div_assoc] using htendRaw + have hlower := Antitone.alternating_series_le_tendsto htendMag hanti (k + 1) + have hupper := Antitone.tendsto_le_alternating_series htendMag hanti k + constructor + · rw [coe_atanPartial] + have hidx : 2 * (k + 1) = 2 * k + 2 := by omega + simpa only [atanMagnitude, mul_div_assoc, hidx] using hlower + · rw [coe_atanPartial] + simpa only [atanMagnitude, mul_div_assoc] using hupper + +end GerverSofa.ExactReplay + +end + +end + +end + +section + +/-! +# Coordinate equivalences for the certified systems + +The executable interval layer works with `Fin n → ℝ`, while the manuscript +layer uses named parameter records. These equivalences are the explicit, +kernel-checked bridge between the two representations. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa + +namespace Reduced + +/-- Named reduced parameters as a four-vector in manuscript order. -/ +def coordEquiv : Params ≃ Vec 4 where + toFun p := ![p.a, p.b, p.phi, p.theta] + invFun x := + { a := x 0 + b := x 1 + phi := x 2 + theta := x 3 } + left_inv p := by + cases p + rfl + right_inv x := by + funext i + fin_cases i <;> rfl + +/-- Reduced system expressed in finite-vector coordinates. -/ +def vectorSystem (x : Vec 4) : Vec 4 := + system (coordEquiv.symm x) + +/-- The reduced parameter box expressed in finite-vector coordinates. -/ +def vectorBox : Set (Vec 4) := + {x | coordEquiv.symm x ∈ box} + +@[simp] theorem mem_vectorBox_iff (x : Vec 4) : + x ∈ vectorBox ↔ coordEquiv.symm x ∈ box := Iff.rfl + +/-- Transport a finite-vector uniqueness certificate back to named reduced +parameters. -/ +def uniqueSolutionOfVector + (c : CertifiedUniqueZero vectorSystem vectorBox) : + CertifiedUniqueSolution Equations box where + solution := coordEquiv.symm c.solution + solution_mem := by + simpa [vectorBox] using c.solution_mem + satisfies := by + simpa [Equations, vectorSystem] using c.satisfies + unique_iff y hy := by + constructor + · intro hEq + have hyVec : coordEquiv y ∈ vectorBox := by + simpa [vectorBox] using hy + have hzero : vectorSystem (coordEquiv y) = 0 := by + simpa [Equations, vectorSystem] using hEq + have h := c.unique (coordEquiv y) hyVec hzero + apply coordEquiv.injective + simpa using h + · rintro rfl + simpa [Equations, vectorSystem] using c.satisfies + +end Reduced + +namespace Romik + +/-- Named Romik parameters as a 22-vector in verifier order. -/ +def coordEquiv : Params ≃ Vec 22 where + toFun p := ![ + p.k11, p.k12, p.k21, p.k22, p.k31, p.k32, p.k41, p.k42, p.k51, p.k52, + p.a1, p.a2, p.b1, p.b2, p.c1, p.c2, p.d1, p.d2, p.e1, p.e2, + p.phi, p.theta + ] + invFun x := + { k11 := x 0 + k12 := x 1 + k21 := x 2 + k22 := x 3 + k31 := x 4 + k32 := x 5 + k41 := x 6 + k42 := x 7 + k51 := x 8 + k52 := x 9 + a1 := x 10 + a2 := x 11 + b1 := x 12 + b2 := x 13 + c1 := x 14 + c2 := x 15 + d1 := x 16 + d2 := x 17 + e1 := x 18 + e2 := x 19 + phi := x 20 + theta := x 21 } + left_inv p := by + cases p + rfl + right_inv x := by + funext i + fin_cases i <;> rfl + +/-- Direct Romik system expressed in finite-vector coordinates. -/ +def vectorSystem (x : Vec 22) : Vec 22 := + system (coordEquiv.symm x) + +/-- The direct Romik box expressed in finite-vector coordinates. -/ +def vectorBox : Set (Vec 22) := + {x | coordEquiv.symm x ∈ box} + +@[simp] theorem mem_vectorBox_iff (x : Vec 22) : + x ∈ vectorBox ↔ coordEquiv.symm x ∈ box := Iff.rfl + +/-- Transport a finite-vector uniqueness certificate back to named Romik +parameters. -/ +def uniqueSolutionOfVector + (c : CertifiedUniqueZero vectorSystem vectorBox) : + CertifiedUniqueSolution Equations box where + solution := coordEquiv.symm c.solution + solution_mem := by + simpa [vectorBox] using c.solution_mem + satisfies := by + simpa [Equations, vectorSystem] using c.satisfies + unique_iff y hy := by + constructor + · intro hEq + have hyVec : coordEquiv y ∈ vectorBox := by + simpa [vectorBox] using hy + have hzero : vectorSystem (coordEquiv y) = 0 := by + simpa [Equations, vectorSystem] using hEq + have h := c.unique (coordEquiv y) hyVec hzero + apply coordEquiv.injective + simpa using h + · rintro rfl + simpa [Equations, vectorSystem] using c.satisfies + +end Romik + +end GerverSofa + +end + +end + +end + +section + +/-! +# Endpoint symmetry derived from the direct 22-dimensional system + +The manuscript obtains the terminal condition `x₂(π/2)=0` from the reflection +symmetry of the five phases. This file proves the required consequence +without introducing a symmetry assumption and without using numerical +approximations. + +FIX12 keeps the BATCH11 mathematics and public theorem statements unchanged, +but factors the formula-level algebra into small coordinate identities. This +avoids asking `ring` to normalize the fully unfolded five-phase expressions in +one large proof term. +-/ + +/-! ## Exact parameter consequences of equations 27--34 -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.Romik + +/-- Equation 27. -/ +theorem e1_eq_a1_of_equations {p : Params} (heq : Equations p) : + p.e1 = p.a1 := by + have h0 := congrFun heq (0 : Fin 22) + simp [system] at h0 + linarith + +/-- Equation 28. -/ +theorem e2_eq_neg_a2_of_equations {p : Params} (heq : Equations p) : + p.e2 = -p.a2 := by + have h1 := congrFun heq (1 : Fin 22) + simp [system] at h1 + linarith + +/-- Equation 29. -/ +theorem d1_eq_quarterPi_sub_b1_of_equations + {p : Params} (heq : Equations p) : + p.d1 = Real.pi / 4 - p.b1 := by + have h2 := congrFun heq (2 : Fin 22) + simp [system] at h2 + linarith + +/-- Equation 30. -/ +theorem d2_eq_b2_add_quarterPi_correction_of_equations + {p : Params} (heq : Equations p) : + p.d2 = p.b2 + (Real.pi / 4) * (2 * p.b1 - Real.pi / 4) := by + have h3 := congrFun heq (3 : Fin 22) + simp [system] at h3 + linarith + +/-- Equation 31. -/ +theorem c2_eq_c1_sub_halfPi_of_equations + {p : Params} (heq : Equations p) : + p.c2 = p.c1 - Real.pi / 2 := by + have h4 := congrFun heq (4 : Fin 22) + simp [system] at h4 + linarith + +/-- Equation 33. -/ +theorem k12_eq_quarter_of_equations {p : Params} (heq : Equations p) : + p.k12 = (1 / 4 : ℝ) := by + have h6 := congrFun heq (6 : Fin 22) + simp [system] at h6 + linarith + +/-- Equation 34. -/ +theorem a2_eq_neg_quarter_of_equations {p : Params} (heq : Equations p) : + p.a2 = -(1 / 4 : ℝ) := by + have h7 := congrFun heq (7 : Fin 22) + simp [system] at h7 + linarith + +/-- Equations 28 and 34. -/ +theorem e2_eq_quarter_of_equations {p : Params} (heq : Equations p) : + p.e2 = (1 / 4 : ℝ) := by + rw [e2_eq_neg_a2_of_equations heq, a2_eq_neg_quarter_of_equations heq] + norm_num + +/-! ## Small definitional coordinate identities + +These are deliberately `rfl`: they expose only the second coordinate of one +phase at a time. Downstream algebra therefore operates on compact scalar +expressions rather than on the fully unfolded `Point`/`rot`/`addK` terms. -/ + +private theorem path1_snd_formula (p : Params) (t : ℝ) : + (path1 p t).2 = + Real.sin t * + (p.a1 * Real.cos t + p.a2 * Real.sin t - 1) + + Real.cos t * + (-p.a2 * Real.cos t + p.a1 * Real.sin t - 1 / 2) + + p.k12 := by + rfl + +private theorem path2_snd_formula (p : Params) (t : ℝ) : + (path2 p t).2 = + Real.sin t * + (-(1 / 4 : ℝ) * t * t + p.b1 * t + p.b2) + + Real.cos t * + ((1 / 2 : ℝ) * t - p.b1 - 1) + + p.k22 := by + rfl + +private theorem path3_snd_formula (p : Params) (t : ℝ) : + (path3 p t).2 = + Real.sin t * (p.c1 - t) + + Real.cos t * (p.c2 + t) + + p.k32 := by + rfl + +private theorem path4_snd_formula (p : Params) (t : ℝ) : + (path4 p t).2 = + Real.sin t * + (-(1 / 2 : ℝ) * t + p.d1 - 1) + + Real.cos t * + (-(1 / 4 : ℝ) * t * t + p.d1 * t + p.d2) + + p.k42 := by + rfl + +private theorem path5_snd_formula (p : Params) (t : ℝ) : + (path5 p t).2 = + Real.sin t * + (p.e1 * Real.cos t + p.e2 * Real.sin t - 1 / 2) + + Real.cos t * + (-p.e2 * Real.cos t + p.e1 * Real.sin t - 1) + + p.k52 := by + rfl + +/-! ## Formula-level reflection identities -/ + +/-- The vertical phase-5 formula at reflected time differs from phase 1 only +by its vertical translation constant. -/ +theorem phase15_vertical_reflection_of_equations + {p : Params} (heq : Equations p) (t : ℝ) : + (path5 p (Real.pi / 2 - t)).2 - p.k52 = + (path1 p t).2 - p.k12 := by + rw [path5_snd_formula, path1_snd_formula] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + rw [e1_eq_a1_of_equations heq, e2_eq_neg_a2_of_equations heq] + ring + +/-- The vertical phase-4 formula at reflected time differs from phase 2 only +by its vertical translation constant. -/ +theorem phase24_vertical_reflection_of_equations + {p : Params} (heq : Equations p) (t : ℝ) : + (path4 p (Real.pi / 2 - t)).2 - p.k42 = + (path2 p t).2 - p.k22 := by + rw [path4_snd_formula, path2_snd_formula] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + rw [d1_eq_quarterPi_sub_b1_of_equations heq, + d2_eq_b2_add_quarterPi_correction_of_equations heq] + have hlinear : + -(1 / 2 : ℝ) * (Real.pi / 2 - t) + + (Real.pi / 4 - p.b1) - 1 = + (1 / 2 : ℝ) * t - p.b1 - 1 := by + ring + have hquadratic : + -(1 / 4 : ℝ) * (Real.pi / 2 - t) * (Real.pi / 2 - t) + + (Real.pi / 4 - p.b1) * (Real.pi / 2 - t) + + (p.b2 + (Real.pi / 4) * (2 * p.b1 - Real.pi / 4)) = + -(1 / 4 : ℝ) * t * t + p.b1 * t + p.b2 := by + ring + rw [hlinear, hquadratic] + ring + +/-- The middle phase has exact vertical reflection symmetry. -/ +theorem phase3_vertical_reflection_of_equations + {p : Params} (heq : Equations p) (t : ℝ) : + (path3 p (Real.pi / 2 - t)).2 = (path3 p t).2 := by + rw [path3_snd_formula, path3_snd_formula] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + have hc2 := c2_eq_c1_sub_halfPi_of_equations heq + have hleft : + p.c1 - (Real.pi / 2 - t) = p.c2 + t := by + rw [hc2] + ring + have hright : + p.c2 + (Real.pi / 2 - t) = p.c1 - t := by + rw [hc2] + ring + rw [hleft, hright] + ring + +/-! ## Translation constants forced by matching -/ + +/-- Matching at `θ` and `π/2-θ`, together with middle-phase reflection, +forces the phase-2 and phase-4 vertical translations to coincide. -/ +theorem k42_eq_k22_of_equations {p : Params} (heq : Equations p) : + p.k42 = p.k22 := by + have h23 : (path2 p p.theta).2 = (path3 p p.theta).2 := + congrArg Prod.snd (match_path23_of_equations heq) + have h34 : (path3 p (Real.pi / 2 - p.theta)).2 = + (path4 p (Real.pi / 2 - p.theta)).2 := + congrArg Prod.snd (match_path34_of_equations heq) + have h24 := phase24_vertical_reflection_of_equations heq p.theta + have h33 := phase3_vertical_reflection_of_equations heq p.theta + rw [← h34, h33, ← h23] at h24 + linarith + +/-- Matching at `φ` and `π/2-φ` then forces the phase-1 and phase-5 vertical +translations to coincide. -/ +theorem k52_eq_k12_of_equations {p : Params} (heq : Equations p) : + p.k52 = p.k12 := by + have h12 : (path1 p p.phi).2 = (path2 p p.phi).2 := + congrArg Prod.snd (match_path12_of_equations heq) + have h45 : (path4 p (Real.pi / 2 - p.phi)).2 = + (path5 p (Real.pi / 2 - p.phi)).2 := + congrArg Prod.snd (match_path45_of_equations heq) + have h24 := phase24_vertical_reflection_of_equations heq p.phi + have hk := k42_eq_k22_of_equations heq + rw [hk] at h24 + have hy42 : + (path4 p (Real.pi / 2 - p.phi)).2 = (path2 p p.phi).2 := by + linarith + have hy51 : + (path5 p (Real.pi / 2 - p.phi)).2 = (path1 p p.phi).2 := by + calc + (path5 p (Real.pi / 2 - p.phi)).2 = + (path4 p (Real.pi / 2 - p.phi)).2 := by + exact h45.symm + _ = (path2 p p.phi).2 := hy42 + _ = (path1 p p.phi).2 := h12.symm + have h15 := phase15_vertical_reflection_of_equations heq p.phi + rw [hy51] at h15 + linarith + +/-- Equations 27--41 force the previously dependent coefficient `k₅₂=1/4`. +It is not an independent hypothesis of the final certificate. -/ +theorem k52_eq_quarter_of_equations {p : Params} (heq : Equations p) : + p.k52 = (1 / 4 : ℝ) := by + rw [k52_eq_k12_of_equations heq, k12_eq_quarter_of_equations heq] + +/-! ## Terminal condition -/ + +/-- The explicit fifth phase ends at vertical coordinate zero. -/ +theorem path5_end_y_zero_of_equations {p : Params} (heq : Equations p) : + (path5 p (Real.pi / 2)).2 = 0 := by + rw [path5_snd_formula] + simp [e2_eq_quarter_of_equations heq, + k52_eq_quarter_of_equations heq]; norm_num + +/-- The certified direct-system box places `π/2` strictly after the fourth +switch, so the literal nested-`if` path uses phase 5 at the endpoint. -/ +theorem path_halfPi_eq_path5_of_mem_box {p : Params} (hp : p ∈ box) : + path p (Real.pi / 2) = path5 p (Real.pi / 2) := by + have hphi : 0 < p.phi := phi_pos_of_mem_box hp + have hord : SwitchOrder p := switchOrder_of_mem_box hp + have hthetaPos : 0 < p.theta := lt_of_lt_of_le hphi hord.phi_le_theta + have hthetaLt : p.theta < Real.pi / 2 := by + linarith [hord.theta_le_eta] + have hphiLt : p.phi < Real.pi / 2 := + lt_of_le_of_lt hord.phi_le_theta hthetaLt + have hetaLt : Real.pi / 2 - p.theta < Real.pi / 2 := by + linarith + have htauLt : Real.pi / 2 - p.phi < Real.pi / 2 := by + linarith + simp [path, not_le.mpr hphiLt, not_le.mpr hthetaLt, + not_le.mpr hetaLt, not_le.mpr htauLt] + +/-- The terminal vertical normalisation is a theorem of the concrete box and +22 equations. No reflection hypothesis and no certificate field remain. -/ +theorem path_end_y_zero_of_mem_box_and_equations + {p : Params} (hp : p ∈ box) (heq : Equations p) : + (path p (Real.pi / 2)).2 = 0 := by + rw [path_halfPi_eq_path5_of_mem_box hp] + exact path5_end_y_zero_of_equations heq + +end GerverSofa.Romik + +end + +end + +end + +section + +/-! +# Identification with Romik's hallway-intersection reconstruction + +This is the set-theoretic part of Proposition `prop:gerver`. It uses only the +literal definitions and the two endpoint normalisations; the eighteen-piece +boundary statement remains a separate field of `FullArticleCertificate`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.Romik + +/-- Romik's fixed-frame reconstruction: initial arm, every supporting hallway, +and the final transported vertical arm. -/ +def reconstructedSet (p : Params) : Set Point := + {q | q ∈ horizontalArm ∧ + (∀ s ∈ Set.Icc (0 : ℝ) 1, q ∈ hallwayAt p s) ∧ + q ∈ (frame p 1).act '' verticalArm} + +/-- Convert a physical angle in `[0,π/2]` to normalized time. -/ +def normalizedTime (t : ℝ) : ℝ := t / (Real.pi / 2) + +@[simp] theorem angle_normalizedTime (t : ℝ) : + angle (normalizedTime t) = t := by + have hT : Real.pi / 2 ≠ 0 := by positivity + simp [angle, normalizedTime, hT] + +theorem normalizedTime_mem_unit {t : ℝ} + (ht : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2)) : + normalizedTime t ∈ Set.Icc (0 : ℝ) 1 := by + have hT : 0 < Real.pi / 2 := by positivity + constructor + · exact div_nonneg ht.1 (le_of_lt hT) + · exact (div_le_iff₀ hT).2 (by simpa using ht.2) + +/-- Every point of the cap-minus-niche set lies in Romik's hallway +intersection reconstruction. -/ +theorem sofa_subset_reconstructedSet + (p : Params) + (hzero : path p 0 = (0, 0)) + (hend : (path p (Real.pi / 2)).2 = 0) : + sofa p ⊆ reconstructedSet p := by + intro q hq + refine ⟨?_, ?_, ?_⟩ + · have hi : (frame p 0).inv.act q ∈ horizontalArm := + initial_arm_of_path_zero p hzero ⟨q, hq, rfl⟩ + simpa [frame, angle, hzero, SE2.inv, SE2.act] using hi + · intro s hs + exact sofa_subset_hallwayAt p hzero hend s hs hq + · have hf : (frame p 1).inv.act q ∈ verticalArm := + final_arm_of_path_end_y_zero p hend ⟨q, hq, rfl⟩ + exact ⟨(frame p 1).inv.act q, hf, (frame p 1).act_inv_act q⟩ + +/-- Membership in every physical supporting hallway gives all outer support +inequalities in the cap definition. -/ +theorem mem_K0_of_mem_all_hallways + (p : Params) {q : Point} + (hbase : 0 ≤ q.2) + (hall : ∀ s ∈ Set.Icc (0 : ℝ) 1, q ∈ hallwayAt p s) : + q ∈ K0 p := by + refine ⟨hbase, ?_⟩ + intro t ht + let s := normalizedTime t + have hs : s ∈ Set.Icc (0 : ℝ) 1 := normalizedTime_mem_unit ht + have hhall := hall s hs + have hwall : + (dot (q.1 - (path p t).1, q.2 - (path p t).2) (u t) ≤ 1 ∧ + dot (q.1 - (path p t).1, q.2 - (path p t).2) (v t) ≤ 1) ∧ + ¬ (dot (q.1 - (path p t).1, q.2 - (path p t).2) (u t) < 0 ∧ + dot (q.1 - (path p t).1, q.2 - (path p t).2) (v t) < 0) := by + rw [mem_hallwayAt_iff_wall_coordinates] at hhall + simpa [s] using hhall + constructor + · change dot q (u t) ≤ dot (path p t) (u t) + 1 + dsimp [dot] at hwall ⊢ + linarith [hwall.1.1] + · change dot q (v t) ≤ dot (path p t) (v t) + 1 + dsimp [dot] at hwall ⊢ + linarith [hwall.1.2] + +/-- Membership in every physical hallway excludes every open interior-time +inner quadrant. -/ +theorem not_mem_innerUnion_of_mem_all_hallways + (p : Params) {q : Point} + (hall : ∀ s ∈ Set.Icc (0 : ℝ) 1, q ∈ hallwayAt p s) : + q ∉ innerUnion p := by + rintro ⟨t, ht, hinner⟩ + let s := normalizedTime t + have htIcc : t ∈ Set.Icc (0 : ℝ) (Real.pi / 2) := + ⟨le_of_lt ht.1, le_of_lt ht.2⟩ + have hs : s ∈ Set.Icc (0 : ℝ) 1 := normalizedTime_mem_unit htIcc + have hhall := hall s hs + rw [mem_hallwayAt_iff_wall_coordinates] at hhall + have hwall : + ¬ (dot (q.1 - (path p t).1, q.2 - (path p t).2) (u t) < 0 ∧ + dot (q.1 - (path p t).1, q.2 - (path p t).2) (v t) < 0) := by + simpa [s] using hhall.2 + exact hwall (by simpa [innerQuadrantAt] using hinner) + +/-- Conversely, Romik's hallway intersection lies in the concrete +cap-minus-niche set. -/ +theorem reconstructedSet_subset_sofa (p : Params) : + reconstructedSet p ⊆ sofa p := by + intro q hq + have hbase : 0 ≤ q.2 := hq.1.2.1 + have hK : q ∈ K0 p := mem_K0_of_mem_all_hallways p hbase hq.2.1 + have hU : q ∉ innerUnion p := + not_mem_innerUnion_of_mem_all_hallways p hq.2.1 + refine ⟨hK, ?_⟩ + rintro ⟨_hfan, hinner⟩ + exact hU hinner + +/-- Set-theoretic identification `G = Sₓ`, conditional only on the endpoint +normalisations already isolated by the main certificate. -/ +theorem sofa_eq_reconstructedSet + (p : Params) + (hzero : path p 0 = (0, 0)) + (hend : (path p (Real.pi / 2)).2 = 0) : + sofa p = reconstructedSet p := by + apply Set.Subset.antisymm + · exact sofa_subset_reconstructedSet p hzero hend + · exact reconstructedSet_subset_sofa p + +end GerverSofa.Romik + +end + +end + +end + +section + +/-! +# Named consequences of the frozen kernel-only certificate + +These handles intentionally reason about the proof-carrying rational data, not +about re-running the expensive Krawczyk/grid search inside kernel reduction. +The latter remains available under `ExactReplay.executable*` for independent +diagnostic comparison. +-/ + +@[expose] public section + +namespace GerverSofa.CertificateManifest +theorem machin_inside_declared : + RatInterval.strictInsideB machinPi declaredPi = true := by + simpa [piCheck] using piCheck_eq_true + +end GerverSofa.CertificateManifest + +end + +end + +section + +/-! +# Semantic interfaces for the executable interval certificate + +These definitions state, without hiding any mathematical assumption, the +bridges that turn the frozen rational replay into facts about `Real.sin`, +`Real.cos`, the two real systems, and their Jacobians. Concrete proof terms +for these interfaces are the remaining analytic part of the end-to-end +certificate; no axiom is declared here. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa + +open RatInterval + +/-- A rational interval list encloses a finite real vector coordinatewise. -/ +def EnclosesVec {n : Nat} (box : List RatInterval) (x : Vec n) : Prop := + box.length = n ∧ + ∀ i : Fin n, Contains (box.getD i.1 (point 0)) (x i) + +/-- A one-dimensional real derivative certificate in the classical +difference-quotient form. This is the exact real specialization of the +right-hand side of Mathlib's `hasDerivAt_iff_tendsto_slope_zero`: it states +that `(f (x+t)-f x)/t` tends to `f'` as `t → 0`, `t ≠ 0`. + +Unlike storing raw `HasDerivAt`/`DifferentiableAt`, this proposition contains +no hidden `AddCommGroup`/`Module` instance path for the codomain `ℝ`; this +removes the instance diamond exposed by Lean 4.33 while retaining the full +mathematical meaning of an actual derivative. -/ +def RealDerivativeAt (f : ℝ → ℝ) (f' x : ℝ) : Prop := + Filter.Tendsto + (fun t : ℝ => t⁻¹ * (f (x + t) - f x)) + (nhdsWithin 0 (({0} : Set ℝ)ᶜ)) + (nhds f') + +/-- Exact analytic correctness required from the executable trigonometric +layer. The domain is the physical range used by the Gerver certificate. -/ +structure TranscendentalSoundness : Prop where + pi_mem : Contains ExactReplay.declaredPiInterval Real.pi + sine_mem : ∀ (z : RatInterval) (x : ℝ), + Contains z x → 0 ≤ x → x ≤ Real.pi / 2 → + Contains (ExactReplay.sineInterval z) (Real.sin x) + cosine_mem : ∀ (z : RatInterval) (x : ℝ), + Contains z x → 0 ≤ x → x ≤ Real.pi / 2 → + Contains (ExactReplay.cosineInterval z) (Real.cos x) + +end GerverSofa + +end + +end + +end + +section + +/-! +# Soundness of the exact transcendental interval evaluator + +This file proves the analytic trust bridge omitted by the executable replay: + +* the alternating rational arctangent sums enclose the two Machin terms; +* the computed Machin interval encloses `Real.pi` and lies in the declared + interval; +* fixed-decimal rounding is outward; +* the small-argument Taylor intervals enclose `Real.sin` and `Real.cos`; +* complementary-angle reduction is sound on `[0, π/2]`; +* externally over-wide intervals fail closed to `[-1,1]` rather than silently + violating the Taylor precondition. + +No project axiom and no floating-point literal occurs in this file. +-/ + +/-! ## Partial-sum interval consequences -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.ExactReplay + +open RatInterval + +/-- The executable sine Taylor hull contains the exact real sine value on +`[0,1]`. -/ +theorem sinBound_contains {x : ℚ} (hx0 : 0 ≤ x) (hx1 : x ≤ 1) : + Contains (sinBound x) (Real.sin (x : ℝ)) := by + have h := sine_between_partials hx0 hx1 + constructor + · have hmin : min (sinPartial x 19) (sinPartial x 20) ≤ sinPartial x 20 := + min_le_right _ _ + exact le_trans (by exact_mod_cast hmin) h.1 + · have hmax : sinPartial x 19 ≤ max (sinPartial x 19) (sinPartial x 20) := + le_max_left _ _ + exact le_trans h.2 (by exact_mod_cast hmax) + +/-- The executable cosine Taylor hull contains the exact real cosine value on +`[0,1]`. -/ +theorem cosBound_contains {x : ℚ} (hx0 : 0 ≤ x) (hx1 : x ≤ 1) : + Contains (cosBound x) (Real.cos (x : ℝ)) := by + have h := cosine_between_partials hx0 hx1 + constructor + · have hmin : min (cosPartial x 19) (cosPartial x 20) ≤ cosPartial x 20 := + min_le_right _ _ + exact le_trans (by exact_mod_cast hmin) h.1 + · have hmax : cosPartial x 19 ≤ max (cosPartial x 19) (cosPartial x 20) := + le_max_left _ _ + exact le_trans h.2 (by exact_mod_cast hmax) + +/-- Consecutive odd/even arctangent sums form a semantic interval. -/ +theorem atanBound_contains {x : ℚ} + (hx0 : 0 ≤ x) (hx1 : x < 1) (k : ℕ) : + Contains (atanBound x (2 * k + 1) (2 * k + 2)) + (Real.arctan (x : ℝ)) := by + have h := arctan_between_partials hx0 hx1 k + constructor + · have hmin : + min (atanPartial x (2 * k + 1)) (atanPartial x (2 * k + 2)) ≤ + atanPartial x (2 * k + 2) := min_le_right _ _ + exact le_trans (by exact_mod_cast hmin) h.1 + · have hmax : + atanPartial x (2 * k + 1) ≤ + max (atanPartial x (2 * k + 1)) (atanPartial x (2 * k + 2)) := + le_max_left _ _ + exact le_trans h.2 (by exact_mod_cast hmax) + +/-! ## Machin identity and the declared interval for π -/ + +/-- The interval computed from the two exact arctangent Taylor certificates +contains the true value of `π`. -/ +theorem machinPi_contains_pi : Contains machinPi Real.pi := by + have h5 : Contains (atanBound (1 / 5) 43 44) + (Real.arctan ((1 / 5 : ℚ) : ℝ)) := by + simpa using (atanBound_contains (x := (1 / 5 : ℚ)) (by norm_num) (by norm_num) 21) + have h239 : Contains (atanBound (1 / 239) 13 14) + (Real.arctan ((1 / 239 : ℚ) : ℝ)) := by + simpa using (atanBound_contains (x := (1 / 239 : ℚ)) (by norm_num) (by norm_num) 6) + have h16 := RatInterval.contains_scale (a := (16 : ℚ)) h5 + have h4 := RatInterval.contains_scale (a := (4 : ℚ)) h239 + have hsub := RatInterval.contains_sub h16 h4 + have hMachin : + (16 : ℝ) * Real.arctan (1 / 5) - + 4 * Real.arctan (1 / 239) = Real.pi := by + nlinarith [Real.four_mul_arctan_inv_5_sub_arctan_inv_239] + have hsub' : Contains machinPi + ((16 : ℝ) * Real.arctan (1 / 5) - + 4 * Real.arctan (1 / 239)) := by + simpa [machinPi, scale] using hsub + exact hMachin ▸ hsub' + +/-- The executable and proof-carrying manifests contain byte-for-byte equal +Machin intervals. This is a finite rational normalization, not a numerical +assumption. -/ +private theorem ratInterval_eq_of_endpoints {a b : RatInterval} + (hlo : a.lo = b.lo) (hhi : a.hi = b.hi) : a = b := by + cases a + cases b + simp_all + +/-- Exact lower endpoint agreement between the executable Machin evaluation +and the frozen manifest. This is a small bounded kernel computation (two +arctangent sums), deliberately separated from the old monolithic replay. -/ +private theorem machinPi_lo_eq_manifest : + machinPi.lo = CertificateManifest.machinPi.lo := by + decide +kernel + +/-- Exact upper endpoint agreement between the executable Machin evaluation +and the frozen manifest. -/ +private theorem machinPi_hi_eq_manifest : + machinPi.hi = CertificateManifest.machinPi.hi := by + decide +kernel + +theorem machinPi_eq_manifest : + machinPi = CertificateManifest.machinPi := + ratInterval_eq_of_endpoints machinPi_lo_eq_manifest machinPi_hi_eq_manifest + +/-- The executable declared interval agrees with the frozen manifest. -/ +theorem piI_eq_manifest : piI = CertificateManifest.declaredPi := by + apply ratInterval_eq_of_endpoints + · decide +kernel + · decide +kernel + +/-- The exact interval used by every transcendental call encloses `Real.pi`. -/ +theorem piI_contains_pi : Contains piI Real.pi := by + have hm : Contains CertificateManifest.machinPi Real.pi := by + simpa [machinPi_eq_manifest] using machinPi_contains_pi + have hd : Contains CertificateManifest.declaredPi Real.pi := + RatInterval.contains_of_strictInsideB + CertificateManifest.machin_inside_declared hm + simpa [piI_eq_manifest] using hd + +/-! ## Outward decimal rounding -/ + +/-- Fixed-decimal floor rounding never exceeds the input rational. -/ +theorem floorDecimal_le (x : ℚ) (digits : ℕ := 60) : + floorDecimal x digits ≤ x := by + let s : ℚ := (10 : ℚ) ^ digits + have hs : 0 < s := by positivity + apply (div_le_iff₀ hs).2 + have hf : (((⌊x * s⌋ : ℤ) : ℚ)) ≤ x * s := Int.floor_le _ + simpa [floorDecimal, s] using hf + +/-- Fixed-decimal ceiling rounding never lies below the input rational. -/ +theorem le_ceilDecimal (x : ℚ) (digits : ℕ := 60) : + x ≤ ceilDecimal x digits := by + let s : ℚ := (10 : ℚ) ^ digits + have hs : 0 < s := by positivity + apply (le_div_iff₀ hs).2 + have hc : x * s ≤ (((⌈x * s⌉ : ℤ) : ℚ)) := Int.le_ceil _ + simpa [ceilDecimal, s] using hc + +/-- The exact 60-decimal conversion is outward in real semantics. -/ +theorem outwardDecimal_contains {z : RatInterval} {x : ℝ} + (hx : Contains z x) : Contains (outwardDecimal z) x := by + constructor + · exact le_trans (by exact_mod_cast floorDecimal_le z.lo (digits := 60)) hx.1 + · exact le_trans hx.2 (by exact_mod_cast le_ceilDecimal z.hi (digits := 60)) + +/-! ## Small-argument sine and cosine -/ + +/-- The small sine evaluator is sound whenever its whole input lies in +`[0, 9/10]`. -/ +theorem sinSmall_contains {z : RatInterval} {x : ℝ} + (hx : Contains z x) (hz0 : 0 ≤ z.lo) (hz9 : z.hi ≤ 9 / 10) : + Contains (sinSmall z) (Real.sin x) := by + have hzvalid : z.lo ≤ z.hi := by exact_mod_cast RatInterval.valid_of_contains hx + have hlo1 : z.lo ≤ 1 := le_trans hzvalid (le_trans hz9 (by norm_num)) + have hhi0 : 0 ≤ z.hi := le_trans hz0 hzvalid + have hhi1 : z.hi ≤ 1 := le_trans hz9 (by norm_num) + have hloBound := sinBound_contains hz0 hlo1 + have hhiBound := sinBound_contains hhi0 hhi1 + have hpi : (9 / 10 : ℝ) ≤ Real.pi / 2 := by + nlinarith [Real.pi_gt_three] + have hloMem : -(Real.pi / 2) ≤ (z.lo : ℝ) := by + have : (0 : ℝ) ≤ (z.lo : ℝ) := by exact_mod_cast hz0 + nlinarith [Real.pi_pos] + have hhiMem : (z.hi : ℝ) ≤ Real.pi / 2 := by + have hz9R0 : (z.hi : ℝ) ≤ (((9 / 10 : ℚ) : ℝ)) := + (Rat.cast_le).2 hz9 + have hz9R : (z.hi : ℝ) ≤ (9 / 10 : ℝ) := by + norm_num at hz9R0 ⊢ + exact hz9R0 + exact le_trans hz9R hpi + have hmonoLo : Real.sin (z.lo : ℝ) ≤ Real.sin x := + Real.sin_le_sin_of_le_of_le_pi_div_two hloMem (le_trans hx.2 hhiMem) hx.1 + have hxLower : -(Real.pi / 2) ≤ x := by + have hneg : -(Real.pi / 2) ≤ (0 : ℝ) := by + nlinarith [Real.pi_pos] + exact le_trans hneg (le_trans (by exact_mod_cast hz0) hx.1) + have hmonoHi : Real.sin x ≤ Real.sin (z.hi : ℝ) := + Real.sin_le_sin_of_le_of_le_pi_div_two hxLower hhiMem hx.2 + apply outwardDecimal_contains + constructor + · exact le_trans hloBound.1 hmonoLo + · exact le_trans hmonoHi hhiBound.2 + +/-- The small cosine evaluator is sound whenever its whole input lies in +`[0, 9/10]`. -/ +theorem cosSmall_contains {z : RatInterval} {x : ℝ} + (hx : Contains z x) (hz0 : 0 ≤ z.lo) (hz9 : z.hi ≤ 9 / 10) : + Contains (cosSmall z) (Real.cos x) := by + have hzvalid : z.lo ≤ z.hi := by exact_mod_cast RatInterval.valid_of_contains hx + have hlo1 : z.lo ≤ 1 := le_trans hzvalid (le_trans hz9 (by norm_num)) + have hhi0 : 0 ≤ z.hi := le_trans hz0 hzvalid + have hhi1 : z.hi ≤ 1 := le_trans hz9 (by norm_num) + have hloBound := cosBound_contains hz0 hlo1 + have hhiBound := cosBound_contains hhi0 hhi1 + have hpi : (9 / 10 : ℝ) ≤ Real.pi := by + nlinarith [Real.pi_gt_three] + have hlo0 : (0 : ℝ) ≤ (z.lo : ℝ) := by exact_mod_cast hz0 + have hhiPi : (z.hi : ℝ) ≤ Real.pi := by + have hz9R0 : (z.hi : ℝ) ≤ (((9 / 10 : ℚ) : ℝ)) := + (Rat.cast_le).2 hz9 + have hz9R : (z.hi : ℝ) ≤ (9 / 10 : ℝ) := by + norm_num at hz9R0 ⊢ + exact hz9R0 + exact le_trans hz9R hpi + have hx0 : (0 : ℝ) ≤ x := le_trans hlo0 hx.1 + have hxPi : x ≤ Real.pi := le_trans hx.2 hhiPi + have hcosLower : Real.cos (z.hi : ℝ) ≤ Real.cos x := + Real.cos_le_cos_of_nonneg_of_le_pi hx0 hhiPi hx.2 + have hcosUpper : Real.cos x ≤ Real.cos (z.lo : ℝ) := + Real.cos_le_cos_of_nonneg_of_le_pi hlo0 hxPi hx.1 + apply outwardDecimal_contains + constructor + · exact le_trans hhiBound.1 hcosLower + · exact le_trans hcosUpper hloBound.2 + +/-! ## Range reduction and fail-closed totality -/ + +/-- Physical clamping preserves every enclosed angle in `[0,π/2]`. -/ +theorem physicalClamp_contains {z : RatInterval} {x : ℝ} + (hz : Contains z x) (hx0 : 0 ≤ x) (hxpi : x ≤ Real.pi / 2) : + Contains (physicalClamp z) x := by + have hpi := piI_contains_pi + constructor + · simpa [physicalClamp] using (max_le hx0 hz.1) + · have hupper : x ≤ ((piI.hi / 2 : ℚ) : ℝ) := by + have hhi : Real.pi ≤ (piI.hi : ℝ) := hpi.2 + have hxhi : x ≤ (piI.hi : ℝ) / 2 := by + linarith [hxpi, hhi] + have hcast : (((piI.hi / 2 : ℚ) : ℝ)) = (piI.hi : ℝ) / 2 := by + norm_num + rw [hcast] + exact hxhi + simpa [physicalClamp] using (le_min hupper hz.2) + +/-- Complementary-angle range reduction encloses `π/2-x`. -/ +theorem complementInterval_contains {z : RatInterval} {x : ℝ} + (hz : Contains z x) (hxpi : x ≤ Real.pi / 2) : + Contains (complementInterval z) (Real.pi / 2 - x) := by + have hpi := piI_contains_pi + constructor + · have hzero : 0 ≤ Real.pi / 2 - x := by linarith + have hdiff : ((piI.lo / 2 - z.hi : ℚ) : ℝ) ≤ Real.pi / 2 - x := by + have hlo : (piI.lo : ℝ) ≤ Real.pi := hpi.1 + have hdiff' : (piI.lo : ℝ) / 2 - (z.hi : ℝ) ≤ Real.pi / 2 - x := by + linarith [hlo, hz.2] + have hcast : (((piI.lo / 2 - z.hi : ℚ) : ℝ)) = + (piI.lo : ℝ) / 2 - (z.hi : ℝ) := by + norm_num + rw [hcast] + exact hdiff' + simpa [complementInterval] using (max_le hzero hdiff) + · have hdiff : Real.pi / 2 - x ≤ ((piI.hi / 2 - z.lo : ℚ) : ℝ) := by + have hhi : Real.pi ≤ (piI.hi : ℝ) := hpi.2 + have hdiff' : Real.pi / 2 - x ≤ (piI.hi : ℝ) / 2 - (z.lo : ℝ) := by + linarith [hhi, hz.1] + have hcast : (((piI.hi / 2 - z.lo : ℚ) : ℝ)) = + (piI.hi : ℝ) / 2 - (z.lo : ℝ) := by + norm_num + rw [hcast] + exact hdiff' + simpa [complementInterval] using hdiff + +/-- Universal fallback for sine. -/ +theorem universal_contains_sin (x : ℝ) : + Contains universalTrigInterval (Real.sin x) := by + simpa [Contains, universalTrigInterval] using Real.sin_mem_Icc x + +/-- Universal fallback for cosine. -/ +theorem universal_contains_cos (x : ℝ) : + Contains universalTrigInterval (Real.cos x) := by + simpa [Contains, universalTrigInterval] using Real.cos_mem_Icc x + +/-- Full soundness of the executable sine interval on the physical angular +range. -/ +theorem sinI_contains {z : RatInterval} {x : ℝ} + (hz : Contains z x) (hx0 : 0 ≤ x) (hxpi : x ≤ Real.pi / 2) : + Contains (sinI z) (Real.sin x) := by + let w := physicalClamp z + have hw : Contains w x := physicalClamp_contains hz hx0 hxpi + have hw0 : 0 ≤ w.lo := by simp [w, physicalClamp] + simp only [sinI] + split_ifs with hsmall hcomp + · exact sinSmall_contains hw hw0 hsmall + · let y := complementInterval w + have hy : Contains y (Real.pi / 2 - x) := + complementInterval_contains hw hxpi + have hy0 : 0 ≤ y.lo := by simp [y, complementInterval] + have hcy := cosSmall_contains hy hy0 hcomp + simpa [Real.cos_pi_div_two_sub] using hcy + · exact universal_contains_sin x + +/-- Full soundness of the executable cosine interval on the physical angular +range. -/ +theorem cosI_contains {z : RatInterval} {x : ℝ} + (hz : Contains z x) (hx0 : 0 ≤ x) (hxpi : x ≤ Real.pi / 2) : + Contains (cosI z) (Real.cos x) := by + let w := physicalClamp z + have hw : Contains w x := physicalClamp_contains hz hx0 hxpi + have hw0 : 0 ≤ w.lo := by simp [w, physicalClamp] + simp only [cosI] + split_ifs with hsmall hcomp + · exact cosSmall_contains hw hw0 hsmall + · let y := complementInterval w + have hy : Contains y (Real.pi / 2 - x) := + complementInterval_contains hw hxpi + have hy0 : 0 ≤ y.lo := by simp [y, complementInterval] + have hsy := sinSmall_contains hy hy0 hcomp + simpa [Real.sin_pi_div_two_sub] using hsy + · exact universal_contains_cos x + +end GerverSofa.ExactReplay + +namespace GerverSofa + +open RatInterval + +end GerverSofa + +end + +end + +end + +section + +/-! +# Structural soundness of first-order interval automatic differentiation + +The executable `ExactReplay.D` object stores a value interval and one interval +for every first partial derivative. This file supplies the reusable semantic +induction for all constructors actually used by the 4D and 22D certificates. +The concrete systems are handled in a separate module by instantiating these +constructor theorems. +-/ + +/-! ## Smooth scalar models -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa + +open RatInterval + +/-- A scalar function together with its coordinate gradient and a proof that +those coordinates are the actual partial derivatives. The derivative witness +is stored as `RealDerivativeAt`, a first-principles real difference-quotient +limit. Constructor proofs temporarily move through Mathlib's `HasDerivAt` +API and immediately return to this instance-stable semantic proposition. -/ +structure ScalarModel (n : Nat) where + /-- The real scalar function represented by the model. -/ + value : Vec n → ℝ + /-- The coordinate gradient of the scalar function. -/ + gradient : Vec n → Vec n + hasDeriv_update : ∀ x j, + RealDerivativeAt (fun t : ℝ => value (Function.update x j t)) + (gradient x j) (x j) + +namespace ScalarModel + +/-- Constant scalar model. -/ +def const (n : Nat) (c : ℝ) : ScalarModel n where + value := fun _ => c + gradient := fun _ _ => 0 + hasDeriv_update := by + intro x j + simpa only [RealDerivativeAt, smul_eq_mul] using + (hasDerivAt_const (x j) c).tendsto_slope_zero + +/-- Coordinate projection. -/ +def var (n : Nat) (k : Fin n) : ScalarModel n where + value := fun x => x k + gradient := fun _ j => if j = k then 1 else 0 + hasDeriv_update := by + intro x j + by_cases h : j = k + · subst k + have hid : RealDerivativeAt (fun t : ℝ => t) 1 (x j) := by + simpa only [RealDerivativeAt, smul_eq_mul] using + (hasDerivAt_id' (x j)).tendsto_slope_zero + convert hid using 1 <;> simp + · have hkj : k ≠ j := Ne.symm h + simpa only [RealDerivativeAt, Function.update_of_ne hkj, ite_eq_right h, + smul_eq_mul] using (hasDerivAt_const (x j) (x k)).tendsto_slope_zero + +/-- Pointwise addition. -/ +def add {n : Nat} (f g : ScalarModel n) : ScalarModel n where + value := fun x => f.value x + g.value x + gradient := fun x j => f.gradient x j + g.gradient x j + hasDeriv_update := by + intro x j + have hfh := + (hasDerivAt_iff_tendsto_slope_zero + (f := fun t : ℝ => f.value (Function.update x j t)) + (f' := f.gradient x j) (x := x j)).2 (by + simpa only [RealDerivativeAt, smul_eq_mul] using + f.hasDeriv_update x j) + have hgh := + (hasDerivAt_iff_tendsto_slope_zero + (f := fun t : ℝ => g.value (Function.update x j t)) + (f' := g.gradient x j) (x := x j)).2 (by + simpa only [RealDerivativeAt, smul_eq_mul] using + g.hasDeriv_update x j) + simpa only [RealDerivativeAt, smul_eq_mul] using + (hfh.fun_add hgh).tendsto_slope_zero + +/-- Pointwise negation. -/ +def neg {n : Nat} (f : ScalarModel n) : ScalarModel n where + value := fun x => -f.value x + gradient := fun x j => -f.gradient x j + hasDeriv_update := by + intro x j + have hfh := + (hasDerivAt_iff_tendsto_slope_zero + (f := fun t : ℝ => f.value (Function.update x j t)) + (f' := f.gradient x j) (x := x j)).2 (by + simpa only [RealDerivativeAt, smul_eq_mul] using + f.hasDeriv_update x j) + simpa only [RealDerivativeAt, smul_eq_mul] using + hfh.fun_neg.tendsto_slope_zero + +/-- Pointwise subtraction. -/ +def sub {n : Nat} (f g : ScalarModel n) : ScalarModel n := + add f (neg g) + +/-- Pointwise multiplication. -/ +def mul {n : Nat} (f g : ScalarModel n) : ScalarModel n where + value := fun x => f.value x * g.value x + gradient := fun x j => + f.gradient x j * g.value x + f.value x * g.gradient x j + hasDeriv_update := by + intro x j + have hfh := + (hasDerivAt_iff_tendsto_slope_zero + (f := fun t : ℝ => f.value (Function.update x j t)) + (f' := f.gradient x j) (x := x j)).2 (by + simpa only [RealDerivativeAt, smul_eq_mul] using + f.hasDeriv_update x j) + have hgh := + (hasDerivAt_iff_tendsto_slope_zero + (f := fun t : ℝ => g.value (Function.update x j t)) + (f' := g.gradient x j) (x := x j)).2 (by + simpa only [RealDerivativeAt, smul_eq_mul] using + g.hasDeriv_update x j) + have hupd : Function.update x j (x j) = x := + Function.update_eq_self j x + simpa only [RealDerivativeAt, smul_eq_mul, hupd] using + (hfh.fun_mul hgh).tendsto_slope_zero + +/-- Rational scaling. -/ +def scale {n : Nat} (a : ℚ) (f : ScalarModel n) : ScalarModel n where + value := fun x => (a : ℝ) * f.value x + gradient := fun x j => (a : ℝ) * f.gradient x j + hasDeriv_update := by + intro x j + have hfh := + (hasDerivAt_iff_tendsto_slope_zero + (f := fun t : ℝ => f.value (Function.update x j t)) + (f' := f.gradient x j) (x := x j)).2 (by + simpa only [RealDerivativeAt, smul_eq_mul] using + f.hasDeriv_update x j) + have hs := HasDerivAt.const_mul (a : ℝ) hfh + simpa only [RealDerivativeAt, smul_eq_mul] using hs.tendsto_slope_zero + +/-- Sine composition. -/ +def sin {n : Nat} (f : ScalarModel n) : ScalarModel n where + value := fun x => Real.sin (f.value x) + gradient := fun x j => Real.cos (f.value x) * f.gradient x j + hasDeriv_update := by + intro x j + have hfh := + (hasDerivAt_iff_tendsto_slope_zero + (f := fun t : ℝ => f.value (Function.update x j t)) + (f' := f.gradient x j) (x := x j)).2 (by + simpa only [RealDerivativeAt, smul_eq_mul] using + f.hasDeriv_update x j) + have hupd : Function.update x j (x j) = x := + Function.update_eq_self j x + simpa only [RealDerivativeAt, smul_eq_mul, hupd] using + hfh.sin.tendsto_slope_zero + +/-- Cosine composition. -/ +def cos {n : Nat} (f : ScalarModel n) : ScalarModel n where + value := fun x => Real.cos (f.value x) + gradient := fun x j => -Real.sin (f.value x) * f.gradient x j + hasDeriv_update := by + intro x j + have hfh := + (hasDerivAt_iff_tendsto_slope_zero + (f := fun t : ℝ => f.value (Function.update x j t)) + (f' := f.gradient x j) (x := x j)).2 (by + simpa only [RealDerivativeAt, smul_eq_mul] using + f.hasDeriv_update x j) + have hupd : Function.update x j (x j) = x := + Function.update_eq_self j x + simpa only [RealDerivativeAt, smul_eq_mul, hupd] using + hfh.cos.tendsto_slope_zero + +instance {n : Nat} : Add (ScalarModel n) := ⟨add⟩ +instance {n : Nat} : Neg (ScalarModel n) := ⟨neg⟩ +instance {n : Nat} : Sub (ScalarModel n) := ⟨sub⟩ +instance {n : Nat} : Mul (ScalarModel n) := ⟨mul⟩ +instance {n : Nat} : HMul ℚ (ScalarModel n) (ScalarModel n) := ⟨scale⟩ + +/-! The executable systems are written with notation, while constructor-level + soundness lemmas produce the named operations above. These tiny simp + bridges make that definitional equality explicit without unfolding the + proof-carrying structures themselves. -/ +@[simp] theorem add_notation {n : Nat} (f g : ScalarModel n) : + f + g = add f g := rfl + +@[simp] theorem neg_notation {n : Nat} (f : ScalarModel n) : + -f = neg f := rfl + +@[simp] theorem sub_notation {n : Nat} (f g : ScalarModel n) : + f - g = sub f g := rfl + +@[simp] theorem mul_notation {n : Nat} (f g : ScalarModel n) : + f * g = mul f g := rfl + +@[simp] theorem scale_notation {n : Nat} (a : ℚ) (f : ScalarModel n) : + a * f = scale a f := rfl + +@[simp] theorem add_value {n : Nat} (f g : ScalarModel n) (x : Vec n) : + (add f g).value x = f.value x + g.value x := rfl + +@[simp] theorem neg_value {n : Nat} (f : ScalarModel n) (x : Vec n) : + (neg f).value x = -f.value x := rfl + +@[simp] theorem sub_value {n : Nat} (f g : ScalarModel n) (x : Vec n) : + (sub f g).value x = f.value x - g.value x := rfl + +@[simp] theorem mul_value {n : Nat} (f g : ScalarModel n) (x : Vec n) : + (mul f g).value x = f.value x * g.value x := rfl + +@[simp] theorem scale_value {n : Nat} (a : ℚ) (f : ScalarModel n) (x : Vec n) : + (scale a f).value x = (a : ℝ) * f.value x := rfl + +@[simp] theorem sin_value {n : Nat} (f : ScalarModel n) (x : Vec n) : + (sin f).value x = Real.sin (f.value x) := rfl + +@[simp] theorem cos_value {n : Nat} (f : ScalarModel n) (x : Vec n) : + (cos f).value x = Real.cos (f.value x) := rfl + +end ScalarModel + +namespace ExactReplay.D + +/-! Matching notation bridges for the executable dual intervals. -/ +@[simp] theorem add_notation (x y : ExactReplay.D) : + x + y = addD x y := rfl + +@[simp] theorem neg_notation (x : ExactReplay.D) : + -x = negD x := rfl + +@[simp] theorem sub_notation (x y : ExactReplay.D) : + x - y = subD x y := rfl + +@[simp] theorem mul_notation (x y : ExactReplay.D) : + x * y = mulD x y := rfl + +@[simp] theorem scale_notation (a : ℚ) (x : ExactReplay.D) : + a * x = scaleD a x := rfl + +end ExactReplay.D + +/-! ## Semantic relation for the executable dual interval -/ + +/-- An executable dual interval encloses a smooth scalar model on a set. -/ +structure DSoundOn {n : Nat} (X : Set (Vec n)) + (d : ExactReplay.D) (f : ScalarModel n) : Prop where + value_sound : ∀ x ∈ X, Contains d.val (f.value x) + derivative_length : d.der.length = n + derivative_sound : ∀ x ∈ X, ∀ j : Fin n, + Contains (d.der.getD j.1 ExactReplay.zeroI) (f.gradient x j) + +/-! ## List access lemmas used by the AD constructors -/ + +private theorem getD_map_of_lt + {α β : Type*} (f : α → β) (xs : List α) + (i : Nat) (h : i < xs.length) (da : α) (db : β) : + (xs.map f).getD i db = f (xs.getD i da) := by + have hmap : i < (xs.map f).length := by simpa using h + rw [List.getD_eq_getElem (xs.map f) db hmap] + rw [List.getD_eq_getElem xs da h] + simp + +private theorem getD_zipWith_of_lt + {α β γ : Type*} (f : α → β → γ) + (xs : List α) (ys : List β) (i : Nat) + (hx : i < xs.length) (hy : i < ys.length) + (da : α) (db : β) (dc : γ) : + (List.zipWith f xs ys).getD i dc = + f (xs.getD i da) (ys.getD i db) := by + have hz : i < (List.zipWith f xs ys).length := by + simpa only [List.length_zipWith] using (lt_min hx hy) + rw [List.getD_eq_getElem (List.zipWith f xs ys) dc hz] + rw [List.getD_eq_getElem xs da hx] + rw [List.getD_eq_getElem ys db hy] + simp + +/-! ## Constructor soundness -/ + +/-- Exact interval constant. -/ +theorem DSoundOn.const {n : Nat} {X : Set (Vec n)} + {z : RatInterval} {c : ℝ} (hc : Contains z c) : + DSoundOn X (ExactReplay.D.const z n) (ScalarModel.const n c) := by + refine ⟨?_, ?_, ?_⟩ + · intro x hx + exact hc + · simp [ExactReplay.D.const] + · intro x hx j + simp [ExactReplay.D.const, ExactReplay.zeroI, ScalarModel.const, + RatInterval.Contains, RatInterval.point] + +/-- Rational point constant. -/ +theorem DSoundOn.pointConst {n : Nat} {X : Set (Vec n)} (q : ℚ) : + DSoundOn X (ExactReplay.D.pointConst q n) + (ScalarModel.const n (q : ℝ)) := by + apply DSoundOn.const + exact (RatInterval.contains_point_iff q (q : ℝ)).2 rfl + +/-- Coordinate variable read from an enclosing input interval. -/ +theorem DSoundOn.varD {n : Nat} {X : Set (Vec n)} + (input : RatInterval) (k : Fin n) + (hinput : ∀ x ∈ X, Contains input (x k)) : + DSoundOn X (ExactReplay.D.varD input k.1 n) (ScalarModel.var n k) := by + refine ⟨hinput, ?_, ?_⟩ + · simp [ExactReplay.D.varD] + · intro x hx j + have hj : j.1 < (List.range n).length := by simp + change Contains + (((List.range n).map + (fun m => RatInterval.point (if m = k.1 then 1 else 0))).getD + j.1 ExactReplay.zeroI) + (if j = k then 1 else 0) + rw [getD_map_of_lt (fun m => RatInterval.point (if m = k.1 then 1 else 0)) + (List.range n) j.1 hj 0 ExactReplay.zeroI] + have hjrange : (List.range n).getD j.1 0 = j.1 := by + rw [List.getD_eq_getElem (List.range n) 0 hj] + simp + rw [hjrange] + by_cases hjk : j = k + · subst k + simp [RatInterval.Contains, RatInterval.point] + · have hval : j.1 ≠ k.1 := by + intro hval + exact hjk (Fin.ext hval) + simp [hjk, hval, RatInterval.Contains, RatInterval.point] + +/-- Addition constructor. -/ +theorem DSoundOn.add {n : Nat} {X : Set (Vec n)} + {dx dy : ExactReplay.D} {f g : ScalarModel n} + (hx : DSoundOn X dx f) (hy : DSoundOn X dy g) : + DSoundOn X (ExactReplay.D.addD dx dy) (ScalarModel.add f g) := by + refine ⟨?_, ?_, ?_⟩ + · intro x hX + exact RatInterval.contains_add (hx.value_sound x hX) (hy.value_sound x hX) + · simp [ExactReplay.D.addD, hx.derivative_length, hy.derivative_length] + · intro x hX j + have hjx : j.1 < dx.der.length := by simp [hx.derivative_length] + have hjy : j.1 < dy.der.length := by simp [hy.derivative_length] + change Contains + ((List.zipWith RatInterval.add dx.der dy.der).getD j.1 ExactReplay.zeroI) + (f.gradient x j + g.gradient x j) + rw [getD_zipWith_of_lt RatInterval.add dx.der dy.der j.1 hjx hjy + ExactReplay.zeroI ExactReplay.zeroI ExactReplay.zeroI] + exact RatInterval.contains_add + (hx.derivative_sound x hX j) (hy.derivative_sound x hX j) + +/-- Negation constructor. -/ +theorem DSoundOn.neg {n : Nat} {X : Set (Vec n)} + {d : ExactReplay.D} {f : ScalarModel n} + (h : DSoundOn X d f) : + DSoundOn X (ExactReplay.D.negD d) (ScalarModel.neg f) := by + refine ⟨?_, ?_, ?_⟩ + · intro x hX + exact RatInterval.contains_neg (h.value_sound x hX) + · simp [ExactReplay.D.negD, h.derivative_length] + · intro x hX j + have hj : j.1 < d.der.length := by simp [h.derivative_length] + change Contains + ((d.der.map RatInterval.neg).getD j.1 ExactReplay.zeroI) + (-f.gradient x j) + rw [getD_map_of_lt RatInterval.neg d.der j.1 hj + ExactReplay.zeroI ExactReplay.zeroI] + exact RatInterval.contains_neg (h.derivative_sound x hX j) + +/-- Subtraction constructor. -/ +theorem DSoundOn.sub {n : Nat} {X : Set (Vec n)} + {dx dy : ExactReplay.D} {f g : ScalarModel n} + (hx : DSoundOn X dx f) (hy : DSoundOn X dy g) : + DSoundOn X (ExactReplay.D.subD dx dy) (ScalarModel.sub f g) := by + simpa [ExactReplay.D.subD, ScalarModel.sub] using hx.add hy.neg + +/-- Multiplication constructor and product rule. -/ +theorem DSoundOn.mul {n : Nat} {X : Set (Vec n)} + {dx dy : ExactReplay.D} {f g : ScalarModel n} + (hx : DSoundOn X dx f) (hy : DSoundOn X dy g) : + DSoundOn X (ExactReplay.D.mulD dx dy) (ScalarModel.mul f g) := by + refine ⟨?_, ?_, ?_⟩ + · intro x hX + exact RatInterval.contains_mul (hx.value_sound x hX) (hy.value_sound x hX) + · simp [ExactReplay.D.mulD, hx.derivative_length, hy.derivative_length] + · intro x hX j + have hjx : j.1 < dx.der.length := by simp [hx.derivative_length] + have hjy : j.1 < dy.der.length := by simp [hy.derivative_length] + change Contains + ((List.zipWith + (fun ddx ddy => RatInterval.add (RatInterval.mul ddx dy.val) + (RatInterval.mul dx.val ddy)) + dx.der dy.der).getD j.1 ExactReplay.zeroI) + (f.gradient x j * g.value x + f.value x * g.gradient x j) + rw [getD_zipWith_of_lt + (fun ddx ddy => RatInterval.add (RatInterval.mul ddx dy.val) + (RatInterval.mul dx.val ddy)) + dx.der dy.der j.1 hjx hjy ExactReplay.zeroI ExactReplay.zeroI ExactReplay.zeroI] + exact RatInterval.contains_add + (RatInterval.contains_mul (hx.derivative_sound x hX j) + (hy.value_sound x hX)) + (RatInterval.contains_mul (hx.value_sound x hX) + (hy.derivative_sound x hX j)) + +/-- Rational scaling constructor. -/ +theorem DSoundOn.scale {n : Nat} {X : Set (Vec n)} + (a : ℚ) {d : ExactReplay.D} {f : ScalarModel n} + (h : DSoundOn X d f) : + DSoundOn X (ExactReplay.D.scaleD a d) (ScalarModel.scale a f) := by + refine ⟨?_, ?_, ?_⟩ + · intro x hX + exact RatInterval.contains_scale (h.value_sound x hX) + · simp [ExactReplay.D.scaleD, h.derivative_length] + · intro x hX j + have hj : j.1 < d.der.length := by simp [h.derivative_length] + change Contains + ((d.der.map (ExactReplay.scale a)).getD j.1 ExactReplay.zeroI) + ((a : ℝ) * f.gradient x j) + rw [getD_map_of_lt (ExactReplay.scale a) d.der j.1 hj + ExactReplay.zeroI ExactReplay.zeroI] + exact RatInterval.contains_scale (h.derivative_sound x hX j) + +/-- Sine constructor and chain rule. -/ +theorem DSoundOn.sin {n : Nat} {X : Set (Vec n)} + {d : ExactReplay.D} {f : ScalarModel n} + (h : DSoundOn X d f) + (hphysical : ∀ x ∈ X, 0 ≤ f.value x ∧ f.value x ≤ Real.pi / 2) : + DSoundOn X (ExactReplay.D.sinD d) (ScalarModel.sin f) := by + refine ⟨?_, ?_, ?_⟩ + · intro x hX + exact ExactReplay.sinI_contains (h.value_sound x hX) + (hphysical x hX).1 (hphysical x hX).2 + · simp [ExactReplay.D.sinD, h.derivative_length] + · intro x hX j + have hj : j.1 < d.der.length := by simp [h.derivative_length] + change Contains + ((d.der.map (RatInterval.mul (ExactReplay.cosI d.val))).getD + j.1 ExactReplay.zeroI) + (Real.cos (f.value x) * f.gradient x j) + rw [getD_map_of_lt (RatInterval.mul (ExactReplay.cosI d.val)) d.der + j.1 hj ExactReplay.zeroI ExactReplay.zeroI] + exact RatInterval.contains_mul + (ExactReplay.cosI_contains (h.value_sound x hX) + (hphysical x hX).1 (hphysical x hX).2) + (h.derivative_sound x hX j) + +/-- Cosine constructor and chain rule. -/ +theorem DSoundOn.cos {n : Nat} {X : Set (Vec n)} + {d : ExactReplay.D} {f : ScalarModel n} + (h : DSoundOn X d f) + (hphysical : ∀ x ∈ X, 0 ≤ f.value x ∧ f.value x ≤ Real.pi / 2) : + DSoundOn X (ExactReplay.D.cosD d) (ScalarModel.cos f) := by + refine ⟨?_, ?_, ?_⟩ + · intro x hX + exact ExactReplay.cosI_contains (h.value_sound x hX) + (hphysical x hX).1 (hphysical x hX).2 + · simp [ExactReplay.D.cosD, h.derivative_length] + · intro x hX j + have hj : j.1 < d.der.length := by simp [h.derivative_length] + change Contains + ((d.der.map (fun z => RatInterval.neg + (RatInterval.mul (ExactReplay.sinI d.val) z))).getD + j.1 ExactReplay.zeroI) + (-Real.sin (f.value x) * f.gradient x j) + rw [getD_map_of_lt (fun z => RatInterval.neg + (RatInterval.mul (ExactReplay.sinI d.val) z)) d.der + j.1 hj ExactReplay.zeroI ExactReplay.zeroI] + simpa only [neg_mul] using + RatInterval.contains_neg (RatInterval.contains_mul + (ExactReplay.sinI_contains (h.value_sound x hX) + (hphysical x hX).1 (hphysical x hX).2) + (h.derivative_sound x hX j)) + +end GerverSofa + +end + +end + +end + +section + +/-! +# Concrete interval-AD soundness for the reduced 4D system + +This module instantiates the constructor-level AD theorem with equations +(F1)--(F4), proves that the frozen rational list is exactly the manuscript box, +and identifies the four smooth scalar models with `Reduced.vectorSystem`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa + +open RatInterval + +namespace Reduced + +/-- The four frozen rational intervals are exactly the named reduced box. -/ +theorem inputBox_exact (x : Vec 4) : + x ∈ vectorBox ↔ EnclosesVec ExactReplay.reducedInputBox x := by + constructor + · intro hx + change coordEquiv.symm x ∈ box at hx + dsimp [box, qR, coordEquiv] at hx + refine ⟨?_, ?_⟩ + · norm_num [ExactReplay.reducedInputBox, CertificateManifest.x4] + · intro i + fin_cases i <;> + simp [ExactReplay.reducedInputBox, CertificateManifest.x4, + CertificateManifest.q, RatInterval.Contains] <;> + aesop + · rintro ⟨hlen, hx⟩ + change coordEquiv.symm x ∈ box + dsimp [box, qR, coordEquiv] + have h0 := hx (0 : Fin 4) + have h1 := hx (1 : Fin 4) + have h2 := hx (2 : Fin 4) + have h3 := hx (3 : Fin 4) + simp [ExactReplay.reducedInputBox, CertificateManifest.x4, + CertificateManifest.q, RatInterval.Contains] at h0 h1 h2 h3 + aesop + +/-- Scalar models matching the four reduced equations. -/ +def models : Fin 4 → ScalarModel 4 := + let a := ScalarModel.var 4 (0 : Fin 4) + let b := ScalarModel.var 4 (1 : Fin 4) + let phi := ScalarModel.var 4 (2 : Fin 4) + let theta := ScalarModel.var 4 (3 : Fin 4) + let one := ScalarModel.const 4 1 + let half := ScalarModel.const 4 (1 / 2 : ℝ) + let quarter := ScalarModel.const 4 (1 / 4 : ℝ) + let piM := ScalarModel.const 4 Real.pi + let cp := ScalarModel.cos phi + let sp := ScalarModel.sin phi + let ct := ScalarModel.cos theta + let st := ScalarModel.sin theta + let delta := theta - phi + let f1 := a * (ct - cp) - (2 : ℚ) * b * sp + (delta - one) * ct - st + cp + sp + let f2 := a * ((3 : ℚ) * st + sp) - (2 : ℚ) * b * cp + + (3 : ℚ) * (delta - one) * st + (3 : ℚ) * ct - sp + cp + let f3 := a * cp - sp - half + half * cp - b * sp + let f4 := a + (1 / 2 : ℚ) * piM - phi - theta - b + + half * delta * (one + a) + quarter * delta * delta + ![f1, f2, f3, f4] + +/-- The model values are definitionally the manuscript reduced system after +coordinate conversion. -/ +theorem vectorSystem_eq_models (x : Vec 4) : + vectorSystem x = fun i => (models i).value x := by + funext i + fin_cases i <;> + simp [vectorSystem, coordEquiv, system, models, ScalarModel.var, + ScalarModel.const, ScalarModel.add, ScalarModel.neg, ScalarModel.sub, + ScalarModel.mul, ScalarModel.scale, ScalarModel.sin, ScalarModel.cos] <;> + ring + +end Reduced + +end GerverSofa + +end + +end + +end + +section + +/-! +# Concrete interval-AD soundness for the direct 22D Romik system + +The direct system contains five trigonometric path pieces, three derivative +pieces and six matching pairs. To avoid 22 unrelated derivative proofs, this +file evaluates every expression in a proof-carrying dual object. Its first +projection is the exact executable `ExactReplay.D`; its second projection is a +smooth real scalar model; and its third field is the constructor-level +soundness theorem from `ADCoreSoundness`. +-/ + +/-! ## Exact identification of the 22D input box + +The 22 coordinates are kept as separate tiny lemmas. This is deliberately +chunked: expanding all 44 rational endpoint inequalities in one `simp` call +exhausts the default heartbeat budget even though every coordinate identity is +individually trivial. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa + +open RatInterval + +namespace Romik + +private theorem fullInputBox_coord_0_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 0) (x 0) ↔ + qR (-21032242207268875141628571849) 100000000000000000000000000000 ≤ x 0 ∧ + x 0 ≤ qR (-21032242207268875141608571849) 100000000000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_1_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 1) (x 1) ↔ + qR 2499999999999999999999 10000000000000000000000 ≤ x 1 ∧ + x 1 ≤ qR 2500000000000000000001 10000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_2_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 2) (x 2) ↔ + qR (-91917929277159332227479610289) 100000000000000000000000000000 ≤ x 2 ∧ + x 2 ≤ qR (-91917929277159332227459610289) 100000000000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_3_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 3) (x 3) ↔ + qR 29525413734425341573853797657 62500000000000000000000000000 ≤ x 3 ∧ + x 3 ≤ qR 29525413734425341573866297657 62500000000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_4_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 4) (x 4) ↔ + qR (-15344080735756291713875357283) 25000000000000000000000000000 ≤ x 4 ∧ + x 4 ≤ qR (-15344080735756291713870357283) 25000000000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_5_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 5) (x 5) ↔ + qR 17792529580064437214538861001 20000000000000000000000000000 ≤ x 5 ∧ + x 5 ≤ qR 17792529580064437214542861001 20000000000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_6_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 6) (x 6) ↔ + qR (-15417358304445500741761623987) 50000000000000000000000000000 ≤ x 6 ∧ + x 6 ≤ qR (-15417358304445500741751623987) 50000000000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_7_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 7) (x 7) ↔ + qR 29525413734425341573853797657 62500000000000000000000000000 ≤ x 7 ∧ + x 7 ≤ qR 29525413734425341573866297657 62500000000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_8_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 8) (x 8) ↔ + qR (-20344080735756291713874857283) 20000000000000000000000000000 ≤ x 8 ∧ + x 8 ≤ qR (-20344080735756291713870857283) 20000000000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_9_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 9) (x 9) ↔ + qR 2499999999999999999999 10000000000000000000000 ≤ x 9 ∧ + x 9 ≤ qR 2500000000000000000001 10000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_10_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 10) (x 10) ↔ + qR 2420644844145377502832171437 2000000000000000000000000000 ≤ x 10 ∧ + x 10 ≤ qR 2420644844145377502832571437 2000000000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_11_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 11) (x 11) ↔ + qR (-2500000000000000000001) 10000000000000000000000 ≤ x 11 ∧ + x 11 ≤ qR (-2499999999999999999999) 10000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_12_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 12) (x 12) ↔ + qR (-52762459802678462416060380937) 100000000000000000000000000000 ≤ x 12 ∧ + x 12 ≤ qR (-52762459802678462416040380937) 100000000000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_13_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 13) (x 13) ↔ + qR 92025838516063762289360579501 100000000000000000000000000000 ≤ x 13 ∧ + x 13 ≤ qR 92025838516063762289380579501 100000000000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_14_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 14) (x 14) ↔ + qR 313022761424232933776114655193 500000000000000000000000000000 ≤ x 14 ∧ + x 14 ≤ qR 313022761424232933776214655193 500000000000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_15_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 15) (x 15) ↔ + qR (-151160128631428920268654781) 160000000000000000000000000 ≤ x 15 ∧ + x 15 ≤ qR (-151160128631428920268622781) 160000000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_16_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 16) (x 16) ↔ + qR 1641278451780291167220080819 1250000000000000000000000000 ≤ x 16 ∧ + x 16 ≤ qR 1641278451780291167220330819 1250000000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_17_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 17) (x 17) ↔ + qR (-105076534082910887440587258861) 200000000000000000000000000000 ≤ x 17 ∧ + x 17 ≤ qR (-105076534082910887440547258861) 200000000000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_18_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 18) (x 18) ↔ + qR 2420644844145377502832171437 2000000000000000000000000000 ≤ x 18 ∧ + x 18 ≤ qR 2420644844145377502832571437 2000000000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_19_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 19) (x 19) ↔ + qR 2499999999999999999999 10000000000000000000000 ≤ x 19 ∧ + x 19 ≤ qR 2500000000000000000001 10000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_20_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 20) (x 20) ↔ + qR 1958868239504182093160893749 50000000000000000000000000000 ≤ x 20 ∧ + x 20 ≤ qR 78354729580167283726435751 2000000000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] +private theorem fullInputBox_coord_21_iff (x : Vec 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox 21) (x 21) ↔ + qR 34065075469136244723692787727 50000000000000000000000000000 ≤ x 21 ∧ + x 21 ≤ qR 34065075469136244723692787983 50000000000000000000000000000 := by + simp [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI, RatInterval.Contains, qR] + +/-- The 22 frozen rational intervals are exactly the named direct-system box. -/ +theorem inputBox_exact (x : Vec 22) : + x ∈ vectorBox ↔ EnclosesVec ExactReplay.fullInputBox x := by + constructor + · intro hx + change coordEquiv.symm x ∈ box at hx + dsimp [box, coordEquiv] at hx + rcases hx with ⟨h0lo, h0hi, h1lo, h1hi, h2lo, h2hi, h3lo, h3hi, h4lo, h4hi, h5lo, h5hi, h6lo, + h6hi, h7lo, h7hi, h8lo, h8hi, h9lo, h9hi, h10lo, h10hi, h11lo, h11hi, h12lo, h12hi, h13lo, + h13hi, h14lo, h14hi, h15lo, h15hi, h16lo, h16hi, h17lo, h17hi, h18lo, h18hi, h19lo, h19hi, + h20lo, h20hi, h21lo, h21hi⟩ + refine ⟨?_, ?_⟩ + · norm_num [ExactReplay.fullInputBox, CertificateManifest.z22] + · intro i + fin_cases i + · exact (fullInputBox_coord_0_iff x).2 ⟨h0lo, h0hi⟩ + · exact (fullInputBox_coord_1_iff x).2 ⟨h1lo, h1hi⟩ + · exact (fullInputBox_coord_2_iff x).2 ⟨h2lo, h2hi⟩ + · exact (fullInputBox_coord_3_iff x).2 ⟨h3lo, h3hi⟩ + · exact (fullInputBox_coord_4_iff x).2 ⟨h4lo, h4hi⟩ + · exact (fullInputBox_coord_5_iff x).2 ⟨h5lo, h5hi⟩ + · exact (fullInputBox_coord_6_iff x).2 ⟨h6lo, h6hi⟩ + · exact (fullInputBox_coord_7_iff x).2 ⟨h7lo, h7hi⟩ + · exact (fullInputBox_coord_8_iff x).2 ⟨h8lo, h8hi⟩ + · exact (fullInputBox_coord_9_iff x).2 ⟨h9lo, h9hi⟩ + · exact (fullInputBox_coord_10_iff x).2 ⟨h10lo, h10hi⟩ + · exact (fullInputBox_coord_11_iff x).2 ⟨h11lo, h11hi⟩ + · exact (fullInputBox_coord_12_iff x).2 ⟨h12lo, h12hi⟩ + · exact (fullInputBox_coord_13_iff x).2 ⟨h13lo, h13hi⟩ + · exact (fullInputBox_coord_14_iff x).2 ⟨h14lo, h14hi⟩ + · exact (fullInputBox_coord_15_iff x).2 ⟨h15lo, h15hi⟩ + · exact (fullInputBox_coord_16_iff x).2 ⟨h16lo, h16hi⟩ + · exact (fullInputBox_coord_17_iff x).2 ⟨h17lo, h17hi⟩ + · exact (fullInputBox_coord_18_iff x).2 ⟨h18lo, h18hi⟩ + · exact (fullInputBox_coord_19_iff x).2 ⟨h19lo, h19hi⟩ + · exact (fullInputBox_coord_20_iff x).2 ⟨h20lo, h20hi⟩ + · exact (fullInputBox_coord_21_iff x).2 ⟨h21lo, h21hi⟩ + · rintro ⟨_hlen, hx⟩ + change coordEquiv.symm x ∈ box + dsimp [box, coordEquiv] + have h0 := (fullInputBox_coord_0_iff x).1 (hx (0 : Fin 22)) + have h1 := (fullInputBox_coord_1_iff x).1 (hx (1 : Fin 22)) + have h2 := (fullInputBox_coord_2_iff x).1 (hx (2 : Fin 22)) + have h3 := (fullInputBox_coord_3_iff x).1 (hx (3 : Fin 22)) + have h4 := (fullInputBox_coord_4_iff x).1 (hx (4 : Fin 22)) + have h5 := (fullInputBox_coord_5_iff x).1 (hx (5 : Fin 22)) + have h6 := (fullInputBox_coord_6_iff x).1 (hx (6 : Fin 22)) + have h7 := (fullInputBox_coord_7_iff x).1 (hx (7 : Fin 22)) + have h8 := (fullInputBox_coord_8_iff x).1 (hx (8 : Fin 22)) + have h9 := (fullInputBox_coord_9_iff x).1 (hx (9 : Fin 22)) + have h10 := (fullInputBox_coord_10_iff x).1 (hx (10 : Fin 22)) + have h11 := (fullInputBox_coord_11_iff x).1 (hx (11 : Fin 22)) + have h12 := (fullInputBox_coord_12_iff x).1 (hx (12 : Fin 22)) + have h13 := (fullInputBox_coord_13_iff x).1 (hx (13 : Fin 22)) + have h14 := (fullInputBox_coord_14_iff x).1 (hx (14 : Fin 22)) + have h15 := (fullInputBox_coord_15_iff x).1 (hx (15 : Fin 22)) + have h16 := (fullInputBox_coord_16_iff x).1 (hx (16 : Fin 22)) + have h17 := (fullInputBox_coord_17_iff x).1 (hx (17 : Fin 22)) + have h18 := (fullInputBox_coord_18_iff x).1 (hx (18 : Fin 22)) + have h19 := (fullInputBox_coord_19_iff x).1 (hx (19 : Fin 22)) + have h20 := (fullInputBox_coord_20_iff x).1 (hx (20 : Fin 22)) + have h21 := (fullInputBox_coord_21_iff x).1 (hx (21 : Fin 22)) + exact ⟨h0.1, h0.2, h1.1, h1.2, h2.1, h2.2, h3.1, h3.2, h4.1, h4.2, h5.1, h5.2, h6.1, h6.2, + h7.1, h7.2, h8.1, h8.2, h9.1, h9.2, h10.1, h10.2, h11.1, h11.2, h12.1, h12.2, h13.1, h13.2, + h14.1, h14.2, h15.1, h15.2, h16.1, h16.2, h17.1, h17.2, h18.1, h18.2, h19.1, h19.2, h20.1, + h20.2, h21.1, h21.2⟩ + +/-- All four switching times used by the direct evaluator lie in `[0,π/2]`. -/ +theorem full_switches_physical {x : Vec 22} (hx : x ∈ vectorBox) : + (0 ≤ x 20 ∧ x 20 ≤ Real.pi / 2) ∧ + (0 ≤ x 21 ∧ x 21 ≤ Real.pi / 2) ∧ + (0 ≤ Real.pi / 2 - x 21 ∧ Real.pi / 2 - x 21 ≤ Real.pi / 2) ∧ + (0 ≤ Real.pi / 2 - x 20 ∧ Real.pi / 2 - x 20 ≤ Real.pi / 2) := by + let p := coordEquiv.symm x + have hp : p ∈ box := hx + have hphiPos : 0 < p.phi := phi_pos_of_mem_box hp + have hord : SwitchOrder p := switchOrder_of_mem_box hp + have htheta0 : 0 ≤ p.theta := + le_trans hphiPos.le hord.phi_le_theta + have hthetaHalf : p.theta ≤ Real.pi / 2 := by + linarith [hord.theta_le_eta] + have hphiHalf : p.phi ≤ Real.pi / 2 := + le_trans hord.phi_le_theta hthetaHalf + change + (0 ≤ p.phi ∧ p.phi ≤ Real.pi / 2) ∧ + (0 ≤ p.theta ∧ p.theta ≤ Real.pi / 2) ∧ + (0 ≤ Real.pi / 2 - p.theta ∧ + Real.pi / 2 - p.theta ≤ Real.pi / 2) ∧ + (0 ≤ Real.pi / 2 - p.phi ∧ + Real.pi / 2 - p.phi ≤ Real.pi / 2) + constructor + · exact ⟨hphiPos.le, hphiHalf⟩ + constructor + · exact ⟨htheta0, hthetaHalf⟩ + constructor + · constructor <;> linarith + · constructor <;> linarith + +/-! ## Proof-carrying dual expressions -/ + +/-- One executable interval dual paired with its real semantic model. -/ +structure SoundDual (n : Nat) (X : Set (Vec n)) where + /-- The interval value and derivative data being certified. -/ + d : ExactReplay.D + /-- The real scalar function and gradient represented by the interval data. -/ + model : ScalarModel n + sound : DSoundOn X d model + +namespace SoundDual + +variable {n : Nat} {X : Set (Vec n)} + +/-- A constant scalar model with a certified interval enclosure. -/ +def const (z : RatInterval) (c : ℝ) (h : Contains z c) : SoundDual n X := + ⟨ExactReplay.D.const z n, ScalarModel.const n c, DSoundOn.const h⟩ + +/-- A rational constant represented by a singleton interval and zero gradient. -/ +def pointConst (q : ℚ) : SoundDual n X := + ⟨ExactReplay.D.pointConst q n, ScalarModel.const n (q : ℝ), + DSoundOn.pointConst q⟩ + +/-- A coordinate projection with its certified input interval. -/ +def var (input : RatInterval) (k : Fin n) + (h : ∀ x ∈ X, Contains input (x k)) : SoundDual n X := + ⟨ExactReplay.D.varD input k.1 n, ScalarModel.var n k, + DSoundOn.varD input k h⟩ + +/-- Addition with certified interval value and gradient enclosures. -/ +def add (a b : SoundDual n X) : SoundDual n X := + ⟨ExactReplay.D.addD a.d b.d, ScalarModel.add a.model b.model, + a.sound.add b.sound⟩ + +/-- Negation with certified interval value and gradient enclosures. -/ +def neg (a : SoundDual n X) : SoundDual n X := + ⟨ExactReplay.D.negD a.d, ScalarModel.neg a.model, a.sound.neg⟩ + +/-- Subtraction with certified interval value and gradient enclosures. -/ +def sub (a b : SoundDual n X) : SoundDual n X := + ⟨ExactReplay.D.subD a.d b.d, ScalarModel.sub a.model b.model, + a.sound.sub b.sound⟩ + +/-- Multiplication with certified interval value and gradient enclosures. -/ +def mul (a b : SoundDual n X) : SoundDual n X := + ⟨ExactReplay.D.mulD a.d b.d, ScalarModel.mul a.model b.model, + a.sound.mul b.sound⟩ + +/-- Rational scaling with certified interval value and gradient enclosures. -/ +def scale (q : ℚ) (a : SoundDual n X) : SoundDual n X := + ⟨ExactReplay.D.scaleD q a.d, ScalarModel.scale q a.model, + DSoundOn.scale q a.sound⟩ + +/-- Sine with certified interval value and gradient enclosures. -/ +def sin (a : SoundDual n X) + (h : ∀ x ∈ X, 0 ≤ a.model.value x ∧ + a.model.value x ≤ Real.pi / 2) : SoundDual n X := + ⟨ExactReplay.D.sinD a.d, ScalarModel.sin a.model, a.sound.sin h⟩ + +/-- Cosine with certified interval value and gradient enclosures. -/ +def cos (a : SoundDual n X) + (h : ∀ x ∈ X, 0 ≤ a.model.value x ∧ + a.model.value x ≤ Real.pi / 2) : SoundDual n X := + ⟨ExactReplay.D.cosD a.d, ScalarModel.cos a.model, a.sound.cos h⟩ + +instance : Add (SoundDual n X) := ⟨add⟩ +instance : Neg (SoundDual n X) := ⟨neg⟩ +instance : Sub (SoundDual n X) := ⟨sub⟩ +instance : Mul (SoundDual n X) := ⟨mul⟩ +instance : HMul ℚ (SoundDual n X) (SoundDual n X) := ⟨scale⟩ + +/-! Small projection lemmas keep the simplifier away from the proof fields of +`SoundDual`. All are definitional equalities. -/ +@[simp] theorem const_model_value (z : RatInterval) (c : ℝ) + (h : Contains z c) (x : Vec n) : + (const z c h : SoundDual n X).model.value x = c := rfl + +@[simp] theorem pointConst_model_value (q : ℚ) (x : Vec n) : + (pointConst q : SoundDual n X).model.value x = (q : ℝ) := rfl + +@[simp] theorem var_model_value (input : RatInterval) (k : Fin n) + (h : ∀ x ∈ X, Contains input (x k)) (x : Vec n) : + (var input k h : SoundDual n X).model.value x = x k := rfl + +@[simp] theorem add_model_value (a b : SoundDual n X) (x : Vec n) : + (a + b).model.value x = a.model.value x + b.model.value x := rfl + +@[simp] theorem neg_model_value (a : SoundDual n X) (x : Vec n) : + (-a).model.value x = -a.model.value x := rfl + +@[simp] theorem sub_model_value (a b : SoundDual n X) (x : Vec n) : + (a - b).model.value x = a.model.value x - b.model.value x := rfl + +@[simp] theorem mul_model_value (a b : SoundDual n X) (x : Vec n) : + (a * b).model.value x = a.model.value x * b.model.value x := rfl + +@[simp] theorem scale_model_value (q : ℚ) (a : SoundDual n X) (x : Vec n) : + (q * a).model.value x = (q : ℝ) * a.model.value x := rfl + +@[simp] theorem sin_model_value (a : SoundDual n X) + (h : ∀ x ∈ X, 0 ≤ a.model.value x ∧ a.model.value x ≤ Real.pi / 2) + (x : Vec n) : + (sin a h).model.value x = Real.sin (a.model.value x) := rfl + +@[simp] theorem cos_model_value (a : SoundDual n X) + (h : ∀ x ∈ X, 0 ≤ a.model.value x ∧ a.model.value x ≤ Real.pi / 2) + (x : Vec n) : + (cos a h).model.value x = Real.cos (a.model.value x) := rfl + +end SoundDual + +/-- A certified physical angle, used to justify every sine/cosine constructor. -/ +structure AngleDual (n : Nat) (X : Set (Vec n)) where + /-- The certified scalar model for the angle variable. -/ + dual : SoundDual n X + physical : ∀ x ∈ X, 0 ≤ dual.model.value x ∧ + dual.model.value x ≤ Real.pi / 2 + +namespace AngleDual + +variable {n : Nat} {X : Set (Vec n)} + +/-- Sine with certified interval value and gradient enclosures. -/ +def sin (t : AngleDual n X) : SoundDual n X := + SoundDual.sin t.dual t.physical + +/-- Cosine with certified interval value and gradient enclosures. -/ +def cos (t : AngleDual n X) : SoundDual n X := + SoundDual.cos t.dual t.physical + +@[simp] theorem sin_model_value (t : AngleDual n X) (x : Vec n) : + t.sin.model.value x = Real.sin (t.dual.model.value x) := rfl + +@[simp] theorem cos_model_value (t : AngleDual n X) (x : Vec n) : + t.cos.model.value x = Real.cos (t.dual.model.value x) := rfl + +end AngleDual + +/-- Named proof-carrying versions of all direct-system variables. -/ +structure FullVars (X : Set (Vec 22)) where + /-- Horizontal translation coefficient for phase 1 as a certified dual interval. -/ + k11 : SoundDual 22 X + /-- Vertical translation coefficient for phase 1 as a certified dual interval. -/ + k12 : SoundDual 22 X + /-- Horizontal translation coefficient for phase 2 as a certified dual interval. -/ + k21 : SoundDual 22 X + /-- Vertical translation coefficient for phase 2 as a certified dual interval. -/ + k22 : SoundDual 22 X + /-- Horizontal translation coefficient for phase 3 as a certified dual interval. -/ + k31 : SoundDual 22 X + /-- Vertical translation coefficient for phase 3 as a certified dual interval. -/ + k32 : SoundDual 22 X + /-- Horizontal translation coefficient for phase 4 as a certified dual interval. -/ + k41 : SoundDual 22 X + /-- Vertical translation coefficient for phase 4 as a certified dual interval. -/ + k42 : SoundDual 22 X + /-- Horizontal translation coefficient for phase 5 as a certified dual interval. -/ + k51 : SoundDual 22 X + /-- Vertical translation coefficient for phase 5 as a certified dual interval. -/ + k52 : SoundDual 22 X + /-- Coefficient 1 in the phase 1 closed formula as a certified dual interval. -/ + a1 : SoundDual 22 X + /-- Coefficient 2 in the phase 1 closed formula as a certified dual interval. -/ + a2 : SoundDual 22 X + /-- Coefficient 1 in the phase 2 closed formula as a certified dual interval. -/ + b1 : SoundDual 22 X + /-- Coefficient 2 in the phase 2 closed formula as a certified dual interval. -/ + b2 : SoundDual 22 X + /-- Coefficient 1 in the phase 3 closed formula as a certified dual interval. -/ + c1 : SoundDual 22 X + /-- Coefficient 2 in the phase 3 closed formula as a certified dual interval. -/ + c2 : SoundDual 22 X + /-- Coefficient 1 in the phase 4 closed formula as a certified dual interval. -/ + d1 : SoundDual 22 X + /-- Coefficient 2 in the phase 4 closed formula as a certified dual interval. -/ + d2 : SoundDual 22 X + /-- Coefficient 1 in the phase 5 closed formula as a certified dual interval. -/ + e1 : SoundDual 22 X + /-- Coefficient 2 in the phase 5 closed formula as a certified dual interval. -/ + e2 : SoundDual 22 X + +/-- The 22 coordinate variables equipped with their input-enclosure proofs. -/ +def inputDual (i : Fin 22) : SoundDual 22 vectorBox := + SoundDual.var (ExactReplay.getI ExactReplay.fullInputBox i.1) i (by + intro x hx + exact ((inputBox_exact x).1 hx).2 i) + +@[simp] theorem inputDual_model_value (i : Fin 22) (x : Vec 22) : + (inputDual i).model.value x = x i := rfl + +/-- Named first twenty variables in verifier order. -/ +def fullVars : FullVars vectorBox where + k11 := inputDual 0 + k12 := inputDual 1 + k21 := inputDual 2 + k22 := inputDual 3 + k31 := inputDual 4 + k32 := inputDual 5 + k41 := inputDual 6 + k42 := inputDual 7 + k51 := inputDual 8 + k52 := inputDual 9 + a1 := inputDual 10 + a2 := inputDual 11 + b1 := inputDual 12 + b2 := inputDual 13 + c1 := inputDual 14 + c2 := inputDual 15 + d1 := inputDual 16 + d2 := inputDual 17 + e1 := inputDual 18 + e2 := inputDual 19 + +/-- Exact proof-carrying π constant. -/ +def piDual : SoundDual 22 vectorBox := + SoundDual.const ExactReplay.piI Real.pi ExactReplay.piI_contains_pi + +@[simp] theorem piDual_model_value (x : Vec 22) : + piDual.model.value x = Real.pi := rfl + +/-- First switching angle. -/ +def phiDual : AngleDual 22 vectorBox where + dual := inputDual 20 + physical := by + intro x hx + simpa only [inputDual_model_value] using + (full_switches_physical hx).1 + +@[simp] theorem phiDual_model_value (x : Vec 22) : + phiDual.dual.model.value x = x 20 := rfl + +/-- Second switching angle. -/ +def thetaDual : AngleDual 22 vectorBox where + dual := inputDual 21 + physical := by + intro x hx + simpa only [inputDual_model_value] using + (full_switches_physical hx).2.1 + +@[simp] theorem thetaDual_model_value (x : Vec 22) : + thetaDual.dual.model.value x = x 21 := rfl + +private theorem eta_raw_model_value (x : Vec 22) : + (((1 / 2 : ℚ) * piDual - thetaDual.dual).model.value x) = + Real.pi / 2 - x 21 := by + simp; ring + +/-- Reflected third switching angle `π/2-θ`. -/ +def etaDual : AngleDual 22 vectorBox where + dual := (1 / 2 : ℚ) * piDual - thetaDual.dual + physical := by + intro x hx + rw [eta_raw_model_value] + exact (full_switches_physical hx).2.2.1 + +@[simp] theorem etaDual_model_value (x : Vec 22) : + etaDual.dual.model.value x = Real.pi / 2 - x 21 := by + exact eta_raw_model_value x + +private theorem tau_raw_model_value (x : Vec 22) : + (((1 / 2 : ℚ) * piDual - phiDual.dual).model.value x) = + Real.pi / 2 - x 20 := by + simp; ring + +/-- Reflected fourth switching angle `π/2-φ`. -/ +def tauDual : AngleDual 22 vectorBox where + dual := (1 / 2 : ℚ) * piDual - phiDual.dual + physical := by + intro x hx + rw [tau_raw_model_value] + exact (full_switches_physical hx).2.2.2 + +@[simp] theorem tauDual_model_value (x : Vec 22) : + tauDual.dual.model.value x = Real.pi / 2 - x 20 := by + exact tau_raw_model_value x + +/-- Rotation of a proof-carrying body-frame vector. -/ +def rotDual (t : AngleDual 22 vectorBox) + (z1 z2 : SoundDual 22 vectorBox) : + SoundDual 22 vectorBox × SoundDual 22 vectorBox := + let ct := t.cos + let st := t.sin + (ct * z1 - st * z2, st * z1 + ct * z2) + +/-- One proof-carrying path piece. -/ +def pathPieceDual (j : Nat) (t : AngleDual 22 vectorBox) + (p : FullVars vectorBox := fullVars) : + SoundDual 22 vectorBox × SoundDual 22 vectorBox := + let one : SoundDual 22 vectorBox := SoundDual.pointConst 1 + let half : SoundDual 22 vectorBox := SoundDual.pointConst (1 / 2) + let quarter : SoundDual 22 vectorBox := SoundDual.pointConst (1 / 4) + let ct := t.cos + let st := t.sin + let data : SoundDual 22 vectorBox × SoundDual 22 vectorBox × + SoundDual 22 vectorBox × SoundDual 22 vectorBox := + if j = 1 then + (p.a1 * ct + p.a2 * st - one, + -p.a2 * ct + p.a1 * st - half, + p.k11, p.k12) + else if j = 2 then + (-quarter * t.dual * t.dual + p.b1 * t.dual + p.b2, + half * t.dual - p.b1 - one, + p.k21, p.k22) + else if j = 3 then + (p.c1 - t.dual, p.c2 + t.dual, p.k31, p.k32) + else if j = 4 then + (-half * t.dual + p.d1 - one, + -quarter * t.dual * t.dual + p.d1 * t.dual + p.d2, + p.k41, p.k42) + else + (p.e1 * ct + p.e2 * st - half, + -p.e2 * ct + p.e1 * st - one, + p.k51, p.k52) + let rr := rotDual t data.1 data.2.1 + (rr.1 + data.2.2.1, rr.2 + data.2.2.2) + +/-- Body-frame derivative coefficients for one phase. -/ +def alphaBetaDual (j : Nat) (t : AngleDual 22 vectorBox) + (p : FullVars vectorBox := fullVars) : + SoundDual 22 vectorBox × SoundDual 22 vectorBox := + let one : SoundDual 22 vectorBox := SoundDual.pointConst 1 + let half : SoundDual 22 vectorBox := SoundDual.pointConst (1 / 2) + let quarter : SoundDual 22 vectorBox := SoundDual.pointConst (1 / 4) + let ct := t.cos + let st := t.sin + if j = 1 then + (-(2 : ℚ) * p.a1 * st + (2 : ℚ) * p.a2 * ct + half, + (2 : ℚ) * p.a1 * ct + (2 : ℚ) * p.a2 * st - one) + else if j = 2 then + (one + (2 : ℚ) * p.b1 - t.dual, + -quarter * t.dual * t.dual + p.b1 * t.dual + p.b2 + half) + else if j = 3 then + (-one - p.c2 - t.dual, one + p.c1 - t.dual) + else if j = 4 then + (quarter * t.dual * t.dual - p.d1 * t.dual - p.d2 - half, + (2 : ℚ) * p.d1 - one - t.dual) + else + (one - (2 : ℚ) * p.e1 * st + (2 : ℚ) * p.e2 * ct, + (2 : ℚ) * p.e1 * ct + (2 : ℚ) * p.e2 * st - half) + +/-- World-frame derivative piece. -/ +def pathPrimeDual (j : Nat) (t : AngleDual 22 vectorBox) + (p : FullVars vectorBox := fullVars) : + SoundDual 22 vectorBox × SoundDual 22 vectorBox := + let ab := alphaBetaDual j t p + rotDual t ab.1 ab.2 + +/-- The complete proof-carrying direct system in manuscript order. -/ +def fullDualOutput : List (SoundDual 22 vectorBox) := + let p := fullVars + let halfPi := (1 / 2 : ℚ) * piDual + let quarterPi := (1 / 4 : ℚ) * piDual + let one : SoundDual 22 vectorBox := SoundDual.pointConst 1 + let quarter : SoundDual 22 vectorBox := SoundDual.pointConst (1 / 4) + let first : List (SoundDual 22 vectorBox) := [ + p.e1 - p.a1, + p.e2 + p.a2, + p.d1 + p.b1 - quarterPi, + p.d2 - p.b2 - quarterPi * ((2 : ℚ) * p.b1 - quarterPi), + p.c2 - p.c1 + halfPi, + p.k11 - one + p.a1, + p.k12 - quarter, + p.a2 + quarter + ] + let pairs := [ + (pathPieceDual 1 phiDual p, pathPieceDual 2 phiDual p), + (pathPrimeDual 1 phiDual p, pathPrimeDual 2 phiDual p), + (pathPieceDual 2 thetaDual p, pathPieceDual 3 thetaDual p), + (pathPrimeDual 2 thetaDual p, pathPrimeDual 3 thetaDual p), + (pathPieceDual 3 etaDual p, pathPieceDual 4 etaDual p), + (pathPieceDual 4 tauDual p, pathPieceDual 5 tauDual p) + ] + let matchEqs := pairs.flatMap (fun lr => + [lr.1.1 - lr.2.1, lr.1.2 - lr.2.2]) + let lhs := pathPieceDual 1 phiDual p + let xe := pathPieceDual 3 etaDual p + let ae := (alphaBetaDual 3 etaDual p).1 + let be := + (xe.1 - ae * etaDual.sin, xe.2 + ae * etaDual.cos) + first ++ matchEqs ++ [lhs.1 - be.1, lhs.2 - be.2] + +/-! Public-shape unfold lemmas for the three derivative path pieces. + +`Systems.lean` deliberately hides the helper `pathPrimeFromAB`. When `system` +is unfolded outside that file, the private helper survives as an inaccessible +constant, so `ring` cannot see that the right-hand side is just a rotation. +These `rfl` lemmas expose exactly the public normal form needed by the four +derivative-matching equations. -/ +private theorem pathPrime1_eq_rot (p : Params) (t : ℝ) : + pathPrime1 p t = rot t (alphaBeta1 p t) := rfl + +private theorem pathPrime2_eq_rot (p : Params) (t : ℝ) : + pathPrime2 p t = rot t (alphaBeta2 p t) := rfl + +private theorem pathPrime3_eq_rot (p : Params) (t : ℝ) : + pathPrime3 p t = rot t (alphaBeta3 p t) := rfl + +/-! The semantic identification is split coordinatewise so each normalization +gets its own heartbeat budget. A single 22-way `fin_cases <;> simp <;> ring` +command is mathematically fine but deterministically exhausts 200000 heartbeats. -/ + +private theorem fullDualOutput_model_eq_0 (x : Vec 22) : + ((fullDualOutput.getD 0 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (0 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1, pathPrime2, + pathPrime3, alphaBeta1, alphaBeta2, alphaBeta3] + +private theorem fullDualOutput_model_eq_1 (x : Vec 22) : + ((fullDualOutput.getD 1 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (1 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1, pathPrime2, + pathPrime3, alphaBeta1, alphaBeta2, alphaBeta3] + +private theorem fullDualOutput_model_eq_2 (x : Vec 22) : + ((fullDualOutput.getD 2 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (2 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1, pathPrime2, + pathPrime3, alphaBeta1, alphaBeta2, alphaBeta3]; ring + +private theorem fullDualOutput_model_eq_3 (x : Vec 22) : + ((fullDualOutput.getD 3 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (3 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1, pathPrime2, + pathPrime3, alphaBeta1, alphaBeta2, alphaBeta3]; ring + +private theorem fullDualOutput_model_eq_4 (x : Vec 22) : + ((fullDualOutput.getD 4 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (4 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1, pathPrime2, + pathPrime3, alphaBeta1, alphaBeta2, alphaBeta3]; ring + +private theorem fullDualOutput_model_eq_5 (x : Vec 22) : + ((fullDualOutput.getD 5 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (5 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1, pathPrime2, + pathPrime3, alphaBeta1, alphaBeta2, alphaBeta3] + +private theorem fullDualOutput_model_eq_6 (x : Vec 22) : + ((fullDualOutput.getD 6 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (6 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1, pathPrime2, + pathPrime3, alphaBeta1, alphaBeta2, alphaBeta3] + +private theorem fullDualOutput_model_eq_7 (x : Vec 22) : + ((fullDualOutput.getD 7 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (7 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1, pathPrime2, + pathPrime3, alphaBeta1, alphaBeta2, alphaBeta3] + +private theorem fullDualOutput_model_eq_8 (x : Vec 22) : + ((fullDualOutput.getD 8 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (8 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1, pathPrime2, + pathPrime3, alphaBeta1, alphaBeta2, alphaBeta3] + +private theorem fullDualOutput_model_eq_9 (x : Vec 22) : + ((fullDualOutput.getD 9 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (9 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1, pathPrime2, + pathPrime3, alphaBeta1, alphaBeta2, alphaBeta3] + +private theorem fullDualOutput_model_eq_10 (x : Vec 22) : + ((fullDualOutput.getD 10 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (10 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1_eq_rot, + pathPrime2_eq_rot, pathPrime3_eq_rot, alphaBeta1, alphaBeta2, alphaBeta3] + +private theorem fullDualOutput_model_eq_11 (x : Vec 22) : + ((fullDualOutput.getD 11 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (11 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1_eq_rot, + pathPrime2_eq_rot, pathPrime3_eq_rot, alphaBeta1, alphaBeta2, alphaBeta3] + +private theorem fullDualOutput_model_eq_12 (x : Vec 22) : + ((fullDualOutput.getD 12 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (12 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1, pathPrime2, + pathPrime3, alphaBeta1, alphaBeta2, alphaBeta3] + +private theorem fullDualOutput_model_eq_13 (x : Vec 22) : + ((fullDualOutput.getD 13 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (13 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1, pathPrime2, + pathPrime3, alphaBeta1, alphaBeta2, alphaBeta3] + +private theorem fullDualOutput_model_eq_14 (x : Vec 22) : + ((fullDualOutput.getD 14 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (14 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1_eq_rot, + pathPrime2_eq_rot, pathPrime3_eq_rot, alphaBeta1, alphaBeta2, alphaBeta3] + +private theorem fullDualOutput_model_eq_15 (x : Vec 22) : + ((fullDualOutput.getD 15 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (15 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1_eq_rot, + pathPrime2_eq_rot, pathPrime3_eq_rot, alphaBeta1, alphaBeta2, alphaBeta3] + +private theorem fullDualOutput_model_eq_16 (x : Vec 22) : + ((fullDualOutput.getD 16 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (16 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1, pathPrime2, + pathPrime3, alphaBeta1, alphaBeta2, alphaBeta3] + +private theorem fullDualOutput_model_eq_17 (x : Vec 22) : + ((fullDualOutput.getD 17 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (17 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1, pathPrime2, + pathPrime3, alphaBeta1, alphaBeta2, alphaBeta3] + +private theorem fullDualOutput_model_eq_18 (x : Vec 22) : + ((fullDualOutput.getD 18 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (18 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1, pathPrime2, + pathPrime3, alphaBeta1, alphaBeta2, alphaBeta3] + +private theorem fullDualOutput_model_eq_19 (x : Vec 22) : + ((fullDualOutput.getD 19 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (19 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1, pathPrime2, + pathPrime3, alphaBeta1, alphaBeta2, alphaBeta3] + +private theorem fullDualOutput_model_eq_20 (x : Vec 22) : + ((fullDualOutput.getD 20 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (20 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1, pathPrime2, + pathPrime3, alphaBeta1, alphaBeta2, alphaBeta3] + +private theorem fullDualOutput_model_eq_21 (x : Vec 22) : + ((fullDualOutput.getD 21 (SoundDual.pointConst 0)).model.value x) = + vectorSystem x (21 : Fin 22) := by + simp [fullDualOutput, fullVars, rotDual, pathPieceDual, + alphaBetaDual, pathPrimeDual, vectorSystem, coordEquiv, system, rot, + addK, path1, path2, path3, path4, path5, pathPrime1, pathPrime2, + pathPrime3, alphaBeta1, alphaBeta2, alphaBeta3] + +/-- The real models carried by `fullDualOutput` are exactly the 22 manuscript +functions in finite-vector coordinates. -/ +theorem fullDualOutput_model_eq (x : Vec 22) : + (fun i : Fin 22 => + ((fullDualOutput.getD i.1 + (SoundDual.pointConst 0)).model.value x)) = vectorSystem x := by + funext i + fin_cases i + · exact fullDualOutput_model_eq_0 x + · exact fullDualOutput_model_eq_1 x + · exact fullDualOutput_model_eq_2 x + · exact fullDualOutput_model_eq_3 x + · exact fullDualOutput_model_eq_4 x + · exact fullDualOutput_model_eq_5 x + · exact fullDualOutput_model_eq_6 x + · exact fullDualOutput_model_eq_7 x + · exact fullDualOutput_model_eq_8 x + · exact fullDualOutput_model_eq_9 x + · exact fullDualOutput_model_eq_10 x + · exact fullDualOutput_model_eq_11 x + · exact fullDualOutput_model_eq_12 x + · exact fullDualOutput_model_eq_13 x + · exact fullDualOutput_model_eq_14 x + · exact fullDualOutput_model_eq_15 x + · exact fullDualOutput_model_eq_16 x + · exact fullDualOutput_model_eq_17 x + · exact fullDualOutput_model_eq_18 x + · exact fullDualOutput_model_eq_19 x + · exact fullDualOutput_model_eq_20 x + · exact fullDualOutput_model_eq_21 x + +end Romik + +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartF.F01AffineOrder`. +* `KernelOnly.PartF.F01PhaseAlgebra`. +* `KernelOnly.PartF.F01SetMotion`. +* `KernelOnly.PartF.F02Coordinates`. +* `KernelOnly.PartF.F04IntegralPrimitives`. +* `KernelOnly.PartF.F04IntegralEvaluation`. +* `KernelOnly.PartF.F05DictionaryEquations`. +* `KernelOnly.PartF.F06ReverseSystem`. +* `KernelOnly.PartF.F06FullReconstruction`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# F01: the affine-order bridge for issue #5270 + +The two constructors are deliberately given different names. No upstream +definition is changed or imported, and no theorem from the conjecture file +is used. Both application conventions and the conversion between them are +proved for an arbitrary linear isometry equivalence. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartF + +/-- The Euclidean plane used for the continuous rigid-motion formulation. -/ +abbrev Plane := EuclideanSpace ℝ (Fin 2) +/-- Affine isometries of the Euclidean plane. -/ +abbrev Rigid := Plane ≃ᵃⁱ[ℝ] Plane + +/-- The ordered coordinate-basis orientation used by the pinned upstream +`FormalConjecturesForMathlib/Geometry/2d.lean`. Importing `Mathlib` alone +does not install that project's plane-orientation instance. -/ +instance planeOriented : Module.Oriented ℝ Plane (Fin 2) := + ⟨Module.Basis.orientation <| PiLp.basisFun 2 _ _⟩ + +/-- The second instance supplied by the same upstream plane helper. -/ +instance planeFactFinrank : Fact (Module.finrank ℝ Plane = 2) := + ⟨finrank_euclideanSpace_fin⟩ + +/-- The topology used by the pinned `MovingSofa.IsMovingSofa` definition. -/ +instance rigidTopology : TopologicalSpace Rigid := + .induced (fun e => e.toAffineIsometry.toContinuousAffineMap) inferInstance + +/-- The composition currently implemented upstream: `q ↦ R q + p`. -/ +def rotateThenTranslate (R : Plane ≃ₗᵢ[ℝ] Plane) (p : Plane) : Rigid := + R.toAffineIsometryEquiv.trans (AffineIsometryEquiv.vaddConst ℝ p) + +/-- The documented composition: `q ↦ R (q + p)`. -/ +def translateThenRotate (R : Plane ≃ₗᵢ[ℝ] Plane) (p : Plane) : Rigid := + (AffineIsometryEquiv.vaddConst ℝ p).trans R.toAffineIsometryEquiv + +@[simp] theorem rotateThenTranslate_apply + (R : Plane ≃ₗᵢ[ℝ] Plane) (p q : Plane) : + rotateThenTranslate R p q = R q + p := rfl + +@[simp] theorem translateThenRotate_apply + (R : Plane ≃ₗᵢ[ℝ] Plane) (p q : Plane) : + translateThenRotate R p q = R (q + p) := rfl + +/-- Keeping the old composition is equivalent to rotating the translation. -/ +theorem translateThenRotate_eq_rotateThenTranslate + (R : Plane ≃ₗᵢ[ℝ] Plane) (p : Plane) : + translateThenRotate R p = rotateThenTranslate R (R p) := by + ext q + simp only [translateThenRotate_apply, rotateThenTranslate_apply, map_add] + +/-- Counterclockwise rotation of the oriented plane through angle `t`. -/ +def rotation (t : ℝ) : Plane ≃ₗᵢ[ℝ] Plane := + EuclideanGeometry.o.rotation (t : Real.Angle) + +/-- Translate by the body-frame offset and then rotate through `t`. -/ +def bodyFrame (t : ℝ) (p : Plane) : Rigid := + translateThenRotate (rotation t) p + +/-- Rotate through `t` and then translate by the world position. -/ +def worldFrame (t : ℝ) (x : Plane) : Rigid := + rotateThenTranslate (rotation t) x + +theorem bodyFrame_eq_worldFrame (t : ℝ) (p : Plane) : + bodyFrame t p = worldFrame t (rotation t p) := + translateThenRotate_eq_rotateThenTranslate (rotation t) p + +end GerverSofa.PartF + +end + +end + +end + +section + +/-! +# F01: algebraic half of the integral-to-five-phase representation + +The coefficient dictionary and the five explicit body-frame branches come +from the 4 September integral-motion excerpt. They are compared to the +actual `Romik.path1` ... `Romik.path5` definitions, then assembled using the +same `if` boundaries as `Romik.path`. + +This module does NOT evaluate the integrals: `closedPath` is explicitly +named as a closed-form candidate. Proving that the pinned integral path +equals it, and identifying `dictionary d` with the certified 22D tuple, +remain separate obligations. No such equality is assumed here. +-/ + +@[expose] public section + +noncomputable section +namespace GerverSofa.PartF.Phases + +/-- The terminal rotation angle π/2. -/ +def T : ℝ := Real.pi / 2 +/-- The auxiliary height parameter `(a + θ - φ - 1) / 2`. -/ +def hStar (d : Reduced.Params) : ℝ := (d.a + d.theta - d.phi - 1) / 2 +/-- Phase 4 integration constant for the vertical primitive. -/ +def U4 (d : Reduced.Params) : ℝ := + (1 + d.a) / 2 * Real.cos d.phi - (d.b + 1 / 2) * Real.sin d.phi +/-- Phase 4 integration constant for the horizontal primitive. -/ +def V4 (d : Reduced.Params) : ℝ := + 1 - (d.b + 1 / 2) * Real.cos d.phi - (1 + d.a) / 2 * Real.sin d.phi +/-- Phase 3 integration constant for the vertical primitive. -/ +def U3 (d : Reduced.Params) : ℝ := + U4 d + 1 / 2 * Real.sin d.theta - hStar d * Real.cos d.theta +/-- Phase 3 integration constant for the horizontal primitive. -/ +def V3 (d : Reduced.Params) : ℝ := + V4 d + 1 / 2 * Real.cos d.theta + hStar d * Real.sin d.theta +/-- Phase 2 integration constant for the vertical primitive. -/ +def U2 (d : Reduced.Params) : ℝ := U4 d +/-- Phase 2 integration constant for the horizontal primitive. -/ +def V2 (d : Reduced.Params) : ℝ := + V4 d + Real.cos d.theta + 2 * hStar d * Real.sin d.theta +/-- Phase 1 integration constant for the vertical primitive. -/ +def U1 (d : Reduced.Params) : ℝ := + U2 d + d.a / 2 * Real.cos d.phi - 1 / 2 * Real.sin d.phi +/-- Phase 1 integration constant for the horizontal primitive. -/ +def V1 (d : Reduced.Params) : ℝ := + V2 d + d.a / 2 * Real.sin d.phi + 1 / 2 * Real.cos d.phi +/-- The first-phase offset determined by `4 V1 - 2`. -/ +def ell (d : Reduced.Params) : ℝ := 4 * V1 d - 2 + +theorem U1_eq_half (d : Reduced.Params) (hd : Reduced.Equations d) : + U1 d = 1 / 2 := by + change Reduced.system d = 0 at hd + have h := congrFun hd (2 : Fin 4) + change d.a * Real.cos d.phi - Real.sin d.phi - 1 / 2 + + 1 / 2 * Real.cos d.phi - d.b * Real.sin d.phi = 0 at h + dsimp [U1, U2, U4] + linear_combination h + +theorem ell_eq (d : Reduced.Params) (hd : Reduced.Equations d) : + ell d = V2 d + V4 d := by + change Reduced.system d = 0 at hd + have h := congrFun hd (1 : Fin 4) + change d.a * (3 * Real.sin d.theta + Real.sin d.phi) - + 2 * d.b * Real.cos d.phi + + 3 * (d.theta - d.phi - 1) * Real.sin d.theta + + 3 * Real.cos d.theta - Real.sin d.phi + Real.cos d.phi = 0 at h + dsimp [ell, V1, V2, V4, hStar] + linear_combination h + +theorem ell_eq_two_V3 (d : Reduced.Params) (hd : Reduced.Equations d) : + ell d = 2 * V3 d := by + rw [ell_eq d hd] + dsimp [V2, V3] + ring + +/-- Express all twenty-two Romik parameters in terms of the four reduced parameters. -/ +def dictionary (d : Reduced.Params) : Romik.Params where + k11 := 1 - 3 / 2 * (1 - V1 d) + k12 := 1 / 4 + k21 := V4 d + k22 := U4 d + k31 := V3 d + k32 := U3 d + k41 := V2 d + k42 := U4 d + k51 := V1 d - 3 / 2 * (1 - V1 d) + k52 := 1 / 4 + a1 := 3 / 2 * (1 - V1 d) + a2 := -1 / 4 + b1 := (d.phi - 1 - d.a) / 2 + b2 := d.b - 1 / 2 + (1 + d.a) / 2 * d.phi - d.phi ^ 2 / 4 + c1 := d.a + T - d.phi - 1 + c2 := d.a - d.phi - 1 + d1 := (T - d.phi + 1 + d.a) / 2 + d2 := d.b - 1 / 2 - (1 + d.a) / 2 * (T - d.phi) - (T - d.phi)^2 / 4 + e1 := 3 / 2 * (1 - V1 d) + e2 := 1 / 4 + phi := d.phi + theta := d.theta + +@[simp] theorem dictionary_phi (d : Reduced.Params) : (dictionary d).phi = d.phi := rfl +@[simp] theorem dictionary_theta (d : Reduced.Params) : (dictionary d).theta = d.theta := rfl + +/-- The polynomial profile for phase 2 of the path. -/ +def g2 (d : Reduced.Params) (t : ℝ) : ℝ := (1 + d.a + t - d.phi) / 2 +/-- The polynomial profile for phase 3 of the path. -/ +def g3 (d : Reduced.Params) (t : ℝ) : ℝ := d.a + t - d.phi +/-- The polynomial profile for phase 4 of the path. -/ +def g4 (d : Reduced.Params) (t : ℝ) : ℝ := + d.b + 1 / 2 - (T - d.phi - t) * (1 + d.a) / 2 - (T - d.phi - t)^2 / 4 + +/-- The closed rotation-path formula for phase 1. -/ +def closed1 (d : Reduced.Params) (t : ℝ) : Point := + (Real.cos t - 1, + -1 / 2 + 1 / 2 * Real.cos t + (V1 d - ell d) * Real.sin t) + +/-- The closed rotation-path formula for phase 2. -/ +def closed2 (d : Reduced.Params) (t : ℝ) : Point := + (g4 d (T - t) + U4 d * Real.sin t + V4 d * Real.cos t - 1, + g2 d t + U4 d * Real.cos t + (V2 d - ell d) * Real.sin t - 1) + +/-- The closed rotation-path formula for phase 3. -/ +def closed3 (d : Reduced.Params) (t : ℝ) : Point := + (g3 d (T - t) + U3 d * Real.sin t + V3 d * Real.cos t - 1, + g3 d t + U3 d * Real.cos t + (V3 d - ell d) * Real.sin t - 1) + +/-- The closed rotation-path formula for phase 4. -/ +def closed4 (d : Reduced.Params) (t : ℝ) : Point := + (g2 d (T - t) + U4 d * Real.sin t + V2 d * Real.cos t - 1, + g4 d t + U4 d * Real.cos t + (V4 d - ell d) * Real.sin t - 1) + +/-- The closed rotation-path formula for phase 5. -/ +def closed5 (d : Reduced.Params) (t : ℝ) : Point := + (-1 / 2 + V1 d * Real.cos t + 1 / 2 * Real.sin t, + (1 - ell d) * Real.sin t - 1) + +theorem phase1 (d : Reduced.Params) (t : ℝ) : + Romik.rot t (closed1 d t) = Romik.path1 (dictionary d) t := by + apply Prod.ext + · dsimp [Romik.rot, closed1, Romik.path1, Romik.addK, dictionary, ell] + linear_combination (1 - 3 / 2 * (1 - V1 d)) * Real.sin_sq_add_cos_sq t + · dsimp [Romik.rot, closed1, Romik.path1, Romik.addK, dictionary, ell] + linear_combination (1 / 4 : ℝ) * Real.sin_sq_add_cos_sq t + +theorem phase2 (d : Reduced.Params) (hd : Reduced.Equations d) (t : ℝ) : + Romik.rot t (closed2 d t) = Romik.path2 (dictionary d) t := by + unfold closed2 + rw [ell_eq d hd] + apply Prod.ext + · dsimp [Romik.rot, Romik.path2, Romik.addK, dictionary, g2, g4, T] + linear_combination V4 d * Real.sin_sq_add_cos_sq t + · dsimp [Romik.rot, Romik.path2, Romik.addK, dictionary, g2, g4, T] + linear_combination U4 d * Real.sin_sq_add_cos_sq t + +theorem phase3 (d : Reduced.Params) (hd : Reduced.Equations d) (t : ℝ) : + Romik.rot t (closed3 d t) = Romik.path3 (dictionary d) t := by + unfold closed3 + rw [ell_eq_two_V3 d hd] + apply Prod.ext + · dsimp [Romik.rot, Romik.path3, Romik.addK, dictionary, g3, T] + linear_combination V3 d * Real.sin_sq_add_cos_sq t + · dsimp [Romik.rot, Romik.path3, Romik.addK, dictionary, g3, T] + linear_combination U3 d * Real.sin_sq_add_cos_sq t + +theorem phase4 (d : Reduced.Params) (hd : Reduced.Equations d) (t : ℝ) : + Romik.rot t (closed4 d t) = Romik.path4 (dictionary d) t := by + unfold closed4 + rw [ell_eq d hd] + apply Prod.ext + · dsimp [Romik.rot, Romik.path4, Romik.addK, dictionary, g2, g4, T] + linear_combination V2 d * Real.sin_sq_add_cos_sq t + · dsimp [Romik.rot, Romik.path4, Romik.addK, dictionary, g2, g4, T] + linear_combination U4 d * Real.sin_sq_add_cos_sq t + +theorem phase5 (d : Reduced.Params) (t : ℝ) : + Romik.rot t (closed5 d t) = Romik.path5 (dictionary d) t := by + apply Prod.ext + · dsimp [Romik.rot, closed5, Romik.path5, Romik.addK, dictionary, ell] + linear_combination (V1 d - 3 / 2 * (1 - V1 d)) * Real.sin_sq_add_cos_sq t + · dsimp [Romik.rot, closed5, Romik.path5, Romik.addK, dictionary, ell] + linear_combination (1 / 4 : ℝ) * Real.sin_sq_add_cos_sq t + +/-- The five-branch closed formula for the rotation path. -/ +def closedPath (d : Reduced.Params) (t : ℝ) : Point := + if t ≤ d.phi then closed1 d t + else if t ≤ d.theta then closed2 d t + else if t ≤ Real.pi / 2 - d.theta then closed3 d t + else if t ≤ Real.pi / 2 - d.phi then closed4 d t + else closed5 d t + +/-- Exact assembly for the explicit closed path, including every switching +endpoint. This is not yet the corresponding theorem for the integral path. -/ +theorem fivePhaseRepresentation (d : Reduced.Params) + (hd : Reduced.Equations d) (t : ℝ) : + Romik.rot t (closedPath d t) = Romik.path (dictionary d) t := by + -- Expose both sets of conditions, including the local `eta` and `tau` + -- definitions inside `Romik.path`, before choosing a branch. + change Romik.rot t + (if t ≤ d.phi then closed1 d t + else if t ≤ d.theta then closed2 d t + else if t ≤ Real.pi / 2 - d.theta then closed3 d t + else if t ≤ Real.pi / 2 - d.phi then closed4 d t + else closed5 d t) = + (if t ≤ d.phi then Romik.path1 (dictionary d) t + else if t ≤ d.theta then Romik.path2 (dictionary d) t + else if t ≤ Real.pi / 2 - d.theta then Romik.path3 (dictionary d) t + else if t ≤ Real.pi / 2 - d.phi then Romik.path4 (dictionary d) t + else Romik.path5 (dictionary d) t) + by_cases h1 : t ≤ d.phi + · simpa only [ite_eq_left h1] using phase1 d t + by_cases h2 : t ≤ d.theta + · simpa only [ite_eq_right h1, ite_eq_left h2] using phase2 d hd t + by_cases h3 : t ≤ Real.pi / 2 - d.theta + · simpa only [ite_eq_right h1, ite_eq_right h2, ite_eq_left h3] using phase3 d hd t + by_cases h4 : t ≤ Real.pi / 2 - d.phi + · simpa only [ite_eq_right h1, ite_eq_right h2, ite_eq_right h3, ite_eq_left h4] using phase4 d + hd t + · simpa only [ite_eq_right h1, ite_eq_right h2, ite_eq_right h3, ite_eq_right h4] using phase5 d t + +end GerverSofa.PartF.Phases + +end + +end + +end + +section + +/-! +# F01: supporting intersections and their continuous inverse motion + +`Model.IsMovingSofa` has the seven fields and the rigid-motion topology of +the upstream definition. This local, independently named model avoids +importing upstream conjectures with unfinished proof terms. Its concrete +instantiation for the integral Gerver path still needs the analytic bridge. +-/ + +@[expose] public section + +noncomputable section +open scoped unitInterval + +namespace GerverSofa.PartF + +/-- Intersect the endpoint hallway arms and all intermediate moving hallways. -/ +def frameIntersection (F : I → Rigid) (H V L : Set Plane) : Set Plane := + F 0 '' H ∩ F 1 '' V ∩ ⋂ s, F s '' L + +/-- The hallway intersection parametrized by angles from zero to π/2. -/ +def angleIntersection (F : ℝ → Rigid) (H V L : Set Plane) : Set Plane := + F 0 '' H ∩ F (Real.pi / 2) '' V ∩ + ⋂ t ∈ Set.Icc 0 (Real.pi / 2), F t '' L + +/-- The hallway intersection generated by a path in body-frame coordinates. -/ +def bodySofa (p : ℝ → Plane) (H V L : Set Plane) : Set Plane := + angleIntersection (fun t => bodyFrame t (p t)) H V L + +/-- The hallway intersection generated by a path in world-frame coordinates. -/ +def worldSofa (x : ℝ → Plane) (H V L : Set Plane) : Set Plane := + angleIntersection (fun t => worldFrame t (x t)) H V L + +theorem bodySofa_eq_worldSofa_of_path_identity + (p x : ℝ → Plane) (H V L : Set Plane) + (hpath : ∀ t ∈ Set.Icc 0 (Real.pi / 2), x t = rotation t (p t)) : + bodySofa p H V L = worldSofa x H V L := by + have hT : (0 : ℝ) ≤ Real.pi / 2 := by positivity + have h0 := hpath 0 ⟨le_rfl, hT⟩ + have h1 := hpath (Real.pi / 2) ⟨hT, le_rfl⟩ + -- Expose the applications before rewriting under the image coercions. + change + bodyFrame 0 (p 0) '' H ∩ + bodyFrame (Real.pi / 2) (p (Real.pi / 2)) '' V ∩ + (⋂ t ∈ Set.Icc 0 (Real.pi / 2), bodyFrame t (p t) '' L) = + worldFrame 0 (x 0) '' H ∩ + worldFrame (Real.pi / 2) (x (Real.pi / 2)) '' V ∩ + (⋂ t ∈ Set.Icc 0 (Real.pi / 2), worldFrame t (x t) '' L) + rw [bodyFrame_eq_worldFrame, ← h0, bodyFrame_eq_worldFrame, ← h1] + congr 1 + apply Set.iInter_congr + intro t + apply Set.iInter_congr + intro ht + rw [bodyFrame_eq_worldFrame, ← hpath t ht] + +/-- Normalizing the physical angle does not change the intersection. -/ +theorem angleIntersection_eq_frameIntersection + (F : ℝ → Rigid) (H V L : Set Plane) : + angleIntersection F H V L = + frameIntersection (fun s : I => F ((s : ℝ) * (Real.pi / 2))) H V L := by + have hT : (0 : ℝ) < Real.pi / 2 := by positivity + have hz : ((0 : I) : ℝ) = 0 := rfl + have ho : ((1 : I) : ℝ) = 1 := rfl + ext q + simp only [angleIntersection, frameIntersection, Set.mem_inter_iff, + Set.mem_iInter, hz, ho, zero_mul, one_mul] + constructor + · rintro ⟨hends, hall⟩ + refine ⟨hends, ?_⟩ + intro s + apply hall + exact ⟨mul_nonneg s.property.1 hT.le, + by nlinarith [s.property.2]⟩ + · rintro ⟨hends, hall⟩ + refine ⟨hends, ?_⟩ + intro t ht + let s : I := ⟨t / (Real.pi / 2), div_nonneg ht.1 hT.le, + (div_le_iff₀ hT).2 (by simpa using ht.2)⟩ + have h := hall s + simpa only [s, div_mul_cancel₀ t (ne_of_gt hT)] using h + +namespace Model + +/-- The horizontal unit-width hallway arm extending to the left. -/ +def horizontalHallway : Set Plane := {q | q 0 ≤ 1 ∧ 0 ≤ q 1 ∧ q 1 ≤ 1} +/-- The vertical unit-width hallway arm extending downwards. -/ +def verticalHallway : Set Plane := {q | 0 ≤ q 0 ∧ q 0 ≤ 1 ∧ q 1 ≤ 1} +/-- The union of the two perpendicular unit-width hallway arms. -/ +def hallway : Set Plane := horizontalHallway ∪ verticalHallway + +/-- A nonempty closed connected set moving continuously between the hallway arms. -/ +structure IsMovingSofa (S : Set Plane) (m : I → Rigid) : Prop where + isConnected : IsConnected S + isClosed : IsClosed S + continuous : Continuous m + zero : m 0 = AffineIsometryEquiv.refl ℝ Plane + initial : S ⊆ horizontalHallway + subset_hallway : ∀ s, m s '' S ⊆ hallway + final : m 1 '' S ⊆ verticalHallway + +end Model + +end GerverSofa.PartF + +end + +end + +end + +section + +/-! +# F02: the coordinate homeomorphism + +The product `Point = ℝ × ℝ` and `Plane = EuclideanSpace ℝ (Fin 2)` +have the same coordinates and topology. Their norms differ. Accordingly, +the coordinate identification below is a linear equivalence and a +homeomorphism. Euclidean isometries are constructed separately. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartF.Coordinates + +/-- Convert a pair of real coordinates to a Euclidean vector. -/ +def toPlane (q : Point) : Plane := WithLp.toLp 2 ![q.1, q.2] + +/-- Extract the two real coordinates of a Euclidean vector. -/ +def fromPlane (q : Plane) : Point := (q 0, q 1) + +@[simp] theorem toPlane_zero_coord (q : Point) : toPlane q 0 = q.1 := rfl +@[simp] theorem toPlane_one_coord (q : Point) : toPlane q 1 = q.2 := rfl + +theorem plane_ext {q r : Plane} (h0 : q 0 = r 0) (h1 : q 1 = r 1) : q = r := by + ext i + fin_cases i + · exact h0 + · exact h1 + +@[simp] theorem fromPlane_toPlane (q : Point) : fromPlane (toPlane q) = q := rfl + +@[simp] theorem toPlane_fromPlane (q : Plane) : toPlane (fromPlane q) = q := by + exact plane_ext rfl rfl + +theorem toPlane_add (q r : Point) : toPlane (q + r) = toPlane q + toPlane r := by + exact plane_ext rfl rfl + +theorem toPlane_smul (c : ℝ) (q : Point) : toPlane (c • q) = c • toPlane q := by + exact plane_ext rfl rfl + +/-- The coordinate equivalence, without any assertion that the two norms agree. -/ +def linearEquiv : Point ≃ₗ[ℝ] Plane where + toFun := toPlane + invFun := fromPlane + left_inv := fromPlane_toPlane + right_inv := toPlane_fromPlane + map_add' := toPlane_add + map_smul' := toPlane_smul + +/-- The coordinate homeomorphism between real pairs and the Euclidean plane. -/ +def homeomorph : Point ≃ₜ Plane := linearEquiv.toContinuousLinearEquiv.toHomeomorph + +theorem continuous_toPlane : Continuous toPlane := + linearEquiv.toContinuousLinearEquiv.continuous + +theorem continuous_fromPlane : Continuous fromPlane := + linearEquiv.toContinuousLinearEquiv.symm.continuous + +theorem image_eq_preimage (S : Set Point) : + toPlane '' S = fromPlane ⁻¹' S := by + ext q + constructor + · rintro ⟨p, hp, rfl⟩ + exact hp + · intro hq + exact ⟨fromPlane q, hq, toPlane_fromPlane q⟩ + +theorem isClosed_image {S : Set Point} (hS : IsClosed S) : IsClosed (toPlane '' S) := by + rw [image_eq_preimage] + exact hS.preimage continuous_fromPlane + +theorem isConnected_image {S : Set Point} (hS : IsConnected S) : + IsConnected (toPlane '' S) := + hS.image toPlane continuous_toPlane.continuousOn + +theorem horizontal_image : toPlane '' horizontalArm = Model.horizontalHallway := by + ext q + constructor + · rintro ⟨p, hp, rfl⟩ + exact hp + · intro hq + exact ⟨fromPlane q, hq, toPlane_fromPlane q⟩ + +theorem vertical_image : toPlane '' verticalArm = Model.verticalHallway := by + ext q + constructor + · rintro ⟨p, hp, rfl⟩ + exact hp + · intro hq + exact ⟨fromPlane q, hq, toPlane_fromPlane q⟩ + +theorem hallway_image : toPlane '' GerverSofa.hallway = Model.hallway := by + simp only [GerverSofa.hallway, Model.hallway, Set.image_union, + horizontal_image, vertical_image] + +end GerverSofa.PartF.Coordinates + +end + +end + +end + +section + +/-! +# F04: literal integral data and its branch primitives + +The parameterized definitions below are the pinned upstream scalar integrals. +The phase boundaries are preserved. Integrating across the jumps will use +equality on open intervals, not an incorrect global continuity assertion for r. +-/ + +@[expose] public section + +noncomputable section +open MeasureTheory +namespace GerverSofa.PartF.Integrals + +open Phases + +/-- The reflected second switching angle `π/2 - θ`. -/ +def eta (d : Reduced.Params) : ℝ := T - d.theta +/-- The reflected first switching angle `π/2 - φ`. -/ +def tau (d : Reduced.Params) : ℝ := T - d.phi +/-- The switching-angle condition `0 ≤ φ ≤ θ ≤ π/4`. -/ +def Ordered (d : Reduced.Params) : Prop := + 0 ≤ d.phi ∧ d.phi ≤ d.theta ∧ d.theta ≤ Real.pi / 4 + +theorem ordered_knots (d : Reduced.Params) (ho : Ordered d) : + 0 ≤ d.phi ∧ d.phi ≤ d.theta ∧ d.theta ≤ eta d ∧ + eta d ≤ tau d ∧ tau d ≤ T := by + rcases ho with ⟨h0, h1, h2⟩ + dsimp [eta, tau, T] + exact ⟨h0, h1, by linarith, by linarith, by linarith⟩ + +/-- The integrand profile on phase 1. -/ +def r1 (_d : Reduced.Params) (_t : ℝ) : ℝ := 1 / 2 +/-- The integrand profile on phase 2. -/ +def r2 (d : Reduced.Params) (t : ℝ) : ℝ := g2 d t +/-- The integrand profile on phase 3. -/ +def r3 (d : Reduced.Params) (t : ℝ) : ℝ := g3 d t +/-- The integrand profile on phase 4. -/ +def r4 (d : Reduced.Params) (t : ℝ) : ℝ := + d.b - (T - t - d.phi) * (1 + d.a) / 2 - (T - t - d.phi) ^ 2 / 4 + +/-- The piecewise phase profile used in the integral representation. -/ +def r (d : Reduced.Params) (t : ℝ) : ℝ := + if t ≤ d.phi then r1 d t + else if t ≤ d.theta then r2 d t + else if t ≤ eta d then r3 d t + else if t ≤ tau d then r4 d t + else 0 + +/-- One minus the cosine-weighted profile integral from `t` to the last switching angle. -/ +def xi (d : Reduced.Params) (t : ℝ) : ℝ := + 1 - ∫ s in t..tau d, r d s * Real.cos s +/-- The sine-weighted profile integral from `t` to the last switching angle. -/ +def zeta (d : Reduced.Params) (t : ℝ) : ℝ := + ∫ s in t..tau d, r d s * Real.sin s + +/-- The rotation path expressed using the two profile integrals. -/ +def path (d : Reduced.Params) (t : ℝ) : Point := + (if t ≤ d.phi then Real.cos t - 1 + else xi d (T - t) * Real.cos t + zeta d (T - t) * Real.sin t - 1, + if t ≤ tau d then + zeta d t * Real.cos t - (4 * xi d 0 - 2 - xi d t) * Real.sin t - 1 + else -(4 * xi d 0 - 3) * Real.sin t - 1) + +/-- The derivative formula for the fourth phase profile. -/ +def dg4 (d : Reduced.Params) (t : ℝ) : ℝ := + (1 + d.a) / 2 + (T - d.phi - t) / 2 + +/-- The horizontal primitive assembled from a profile, its derivative, and an offset. -/ +def primitiveX (V : ℝ) (g gp : ℝ → ℝ) (t : ℝ) : ℝ := + V + g t * Real.sin t + gp t * Real.cos t +/-- The vertical primitive assembled from a profile, its derivative, and an offset. -/ +def primitiveY (U : ℝ) (g gp : ℝ → ℝ) (t : ℝ) : ℝ := + U + g t * Real.cos t - gp t * Real.sin t + +/-- Horizontal primitive specialized to phase 1. -/ +def X1 (d : Reduced.Params) : ℝ → ℝ := primitiveX (V1 d) (r1 d) (fun _ => 0) +/-- Vertical primitive specialized to phase 1. -/ +def Y1 (d : Reduced.Params) : ℝ → ℝ := primitiveY (U1 d) (r1 d) (fun _ => 0) +/-- Horizontal primitive specialized to phase 2. -/ +def X2 (d : Reduced.Params) : ℝ → ℝ := primitiveX (V2 d) (g2 d) (fun _ => 1 / 2) +/-- Vertical primitive specialized to phase 2. -/ +def Y2 (d : Reduced.Params) : ℝ → ℝ := primitiveY (U2 d) (g2 d) (fun _ => 1 / 2) +/-- Horizontal primitive specialized to phase 3. -/ +def X3 (d : Reduced.Params) : ℝ → ℝ := primitiveX (V3 d) (g3 d) (fun _ => 1) +/-- Vertical primitive specialized to phase 3. -/ +def Y3 (d : Reduced.Params) : ℝ → ℝ := primitiveY (U3 d) (g3 d) (fun _ => 1) +/-- Horizontal primitive specialized to phase 4. -/ +def X4 (d : Reduced.Params) : ℝ → ℝ := primitiveX (V4 d) (g4 d) (dg4 d) +/-- Vertical primitive specialized to phase 4. -/ +def Y4 (d : Reduced.Params) : ℝ → ℝ := primitiveY (U4 d) (g4 d) (dg4 d) + +/-- F05 repair: normalize only the scalar derivative, never typeclass arguments. -/ +theorem primitiveX_hasDerivAt (V : ℝ) {g gp : ℝ → ℝ} {t gpp : ℝ} + (hg : HasDerivAt g (gp t) t) (hgp : HasDerivAt gp gpp t) : + HasDerivAt (primitiveX V g gp) ((g t + gpp) * Real.cos t) t := by + change HasDerivAt (fun s => V + g s * Real.sin s + gp s * Real.cos s) _ t + have h := ((hasDerivAt_const t V).fun_add + (hg.fun_mul (Real.hasDerivAt_sin t))).fun_add + (hgp.fun_mul (Real.hasDerivAt_cos t)) + exact h.congr_deriv (by ring) + +theorem primitiveY_hasDerivAt (U : ℝ) {g gp : ℝ → ℝ} {t gpp : ℝ} + (hg : HasDerivAt g (gp t) t) (hgp : HasDerivAt gp gpp t) : + HasDerivAt (primitiveY U g gp) (-(g t + gpp) * Real.sin t) t := by + change HasDerivAt (fun s => U + g s * Real.cos s - gp s * Real.sin s) _ t + have h := ((hasDerivAt_const t U).fun_add + (hg.fun_mul (Real.hasDerivAt_cos t))).fun_sub + (hgp.fun_mul (Real.hasDerivAt_sin t)) + exact h.congr_deriv (by ring) + +theorem g2_hasDerivAt (d : Reduced.Params) (t : ℝ) : + HasDerivAt (g2 d) (1 / 2) t := by + change HasDerivAt (fun s => (1 + d.a + s - d.phi) / 2) _ t + have h := (((hasDerivAt_const t (1 + d.a)).fun_add + (hasDerivAt_id t)).fun_sub (hasDerivAt_const t d.phi)).div_const 2 + exact h.congr_deriv (by ring) + +theorem g3_hasDerivAt (d : Reduced.Params) (t : ℝ) : + HasDerivAt (g3 d) 1 t := by + change HasDerivAt (fun s => d.a + s - d.phi) _ t + have h := ((hasDerivAt_const t d.a).fun_add + (hasDerivAt_id t)).fun_sub (hasDerivAt_const t d.phi) + exact h.congr_deriv (by ring) + +theorem g4_hasDerivAt (d : Reduced.Params) (t : ℝ) : + HasDerivAt (g4 d) (dg4 d t) t := by + change HasDerivAt (fun s => d.b + 1 / 2 - + (T - d.phi - s) * (1 + d.a) / 2 - (T - d.phi - s)^2 / 4) _ t + have h := (hasDerivAt_const t (T - d.phi)).fun_sub (hasDerivAt_id t) + have hfull := ((hasDerivAt_const t (d.b + 1 / 2)).fun_sub + ((h.mul_const (1 + d.a)).div_const 2)).fun_sub ((h.pow 2).div_const 4) + exact hfull.congr_deriv (by dsimp [dg4]; ring) + +theorem dg4_hasDerivAt (d : Reduced.Params) (t : ℝ) : + HasDerivAt (dg4 d) (-1 / 2) t := by + change HasDerivAt (fun s => (1 + d.a) / 2 + (T - d.phi - s) / 2) _ t + have h := (hasDerivAt_const t ((1 + d.a) / 2)).fun_add + (((hasDerivAt_const t (T - d.phi)).fun_sub (hasDerivAt_id t)).div_const 2) + exact h.congr_deriv (by ring) + +theorem X1_hasDerivAt (d : Reduced.Params) (t : ℝ) : + HasDerivAt (X1 d) (r1 d t * Real.cos t) t := by + have h := primitiveX_hasDerivAt (V1 d) (g := r1 d) (gp := fun _ => 0) + (hasDerivAt_const t (1 / 2 : ℝ)) (hasDerivAt_const t (0 : ℝ)) + exact h.congr_deriv (by dsimp [r1, r2, r3, r4, g2, g3, g4]; ring) + +theorem Y1_hasDerivAt (d : Reduced.Params) (t : ℝ) : + HasDerivAt (Y1 d) (-r1 d t * Real.sin t) t := by + have h := primitiveY_hasDerivAt (U1 d) (g := r1 d) (gp := fun _ => 0) + (hasDerivAt_const t (1 / 2 : ℝ)) (hasDerivAt_const t (0 : ℝ)) + exact h.congr_deriv (by dsimp [r1, r2, r3, r4, g2, g3, g4]; ring) + +theorem X2_hasDerivAt (d : Reduced.Params) (t : ℝ) : + HasDerivAt (X2 d) (r2 d t * Real.cos t) t := by + have h := primitiveX_hasDerivAt (V2 d) (g := g2 d) (gp := fun _ => 1 / 2) + (g2_hasDerivAt d t) (hasDerivAt_const t (1 / 2 : ℝ)) + exact h.congr_deriv (by dsimp [r1, r2, r3, r4, g2, g3, g4]; ring) + +theorem Y2_hasDerivAt (d : Reduced.Params) (t : ℝ) : + HasDerivAt (Y2 d) (-r2 d t * Real.sin t) t := by + have h := primitiveY_hasDerivAt (U2 d) (g := g2 d) (gp := fun _ => 1 / 2) + (g2_hasDerivAt d t) (hasDerivAt_const t (1 / 2 : ℝ)) + exact h.congr_deriv (by dsimp [r1, r2, r3, r4, g2, g3, g4]; ring) + +theorem X3_hasDerivAt (d : Reduced.Params) (t : ℝ) : + HasDerivAt (X3 d) (r3 d t * Real.cos t) t := by + have h := primitiveX_hasDerivAt (V3 d) (g := g3 d) (gp := fun _ => 1) + (g3_hasDerivAt d t) (hasDerivAt_const t (1 : ℝ)) + exact h.congr_deriv (by dsimp [r1, r2, r3, r4, g2, g3, g4]; ring) + +theorem Y3_hasDerivAt (d : Reduced.Params) (t : ℝ) : + HasDerivAt (Y3 d) (-r3 d t * Real.sin t) t := by + have h := primitiveY_hasDerivAt (U3 d) (g := g3 d) (gp := fun _ => 1) + (g3_hasDerivAt d t) (hasDerivAt_const t (1 : ℝ)) + exact h.congr_deriv (by dsimp [r1, r2, r3, r4, g2, g3, g4]; ring) + +theorem X4_hasDerivAt (d : Reduced.Params) (t : ℝ) : + HasDerivAt (X4 d) (r4 d t * Real.cos t) t := by + have h := primitiveX_hasDerivAt (V4 d) (g := g4 d) (gp := dg4 d) + (g4_hasDerivAt d t) (dg4_hasDerivAt d t) + exact h.congr_deriv (by dsimp [r1, r2, r3, r4, g2, g3, g4]; ring) + +theorem Y4_hasDerivAt (d : Reduced.Params) (t : ℝ) : + HasDerivAt (Y4 d) (-r4 d t * Real.sin t) t := by + have h := primitiveY_hasDerivAt (U4 d) (g := g4 d) (gp := dg4 d) + (g4_hasDerivAt d t) (dg4_hasDerivAt d t) + exact h.congr_deriv (by dsimp [r1, r2, r3, r4, g2, g3, g4]; ring) + +theorem X1_join (d : Reduced.Params) : + X1 d d.phi = X2 d d.phi := by + dsimp [X1, X2, primitiveX, r1, g2, g3, + U1, U2, U3, V1, V2, V3, hStar] + ring + +theorem Y1_join (d : Reduced.Params) : + Y1 d d.phi = Y2 d d.phi := by + dsimp [Y1, Y2, primitiveY, r1, g2, g3, + U1, U2, U3, V1, V2, V3, hStar] + ring + +theorem X2_join (d : Reduced.Params) : + X2 d d.theta = X3 d d.theta := by + dsimp [X2, X3, primitiveX, r1, g2, g3, + U1, U2, U3, V1, V2, V3, hStar] + ring + +theorem Y2_join (d : Reduced.Params) : + Y2 d d.theta = Y3 d d.theta := by + dsimp [Y2, Y3, primitiveY, r1, g2, g3, + U1, U2, U3, V1, V2, V3, hStar] + ring + +theorem fourth_equation (d : Reduced.Params) (hd : Reduced.Equations d) : + d.a + T - d.phi - d.theta - d.b + + (1 / 2 : ℝ) * (d.theta - d.phi) * (1 + d.a) + + (1 / 4 : ℝ) * (d.theta - d.phi) * (d.theta - d.phi) = 0 := by + exact congrFun hd (3 : Fin 4) + +theorem X3_join (d : Reduced.Params) (hd : Reduced.Equations d) : + X3 d (eta d) = X4 d (eta d) := by + have he := fourth_equation d hd + dsimp [X3, X4, primitiveX, eta, g3, g4, dg4, U3, V3, hStar, T] at * + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + linear_combination Real.cos d.theta * he + +theorem Y3_join (d : Reduced.Params) (hd : Reduced.Equations d) : + Y3 d (eta d) = Y4 d (eta d) := by + have he := fourth_equation d hd + dsimp [Y3, Y4, primitiveY, eta, g3, g4, dg4, U3, V3, hStar, T] at * + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + linear_combination Real.sin d.theta * he + +theorem X4_terminal (d : Reduced.Params) : + X4 d (tau d) = 1 := by + dsimp [X4, primitiveX, tau, g4, dg4, U4, V4, T] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + ring + +theorem Y4_terminal (d : Reduced.Params) : + Y4 d (tau d) = 0 := by + dsimp [Y4, primitiveY, tau, g4, dg4, U4, V4, T] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + ring + +theorem r_phase1 (d : Reduced.Params) {t : ℝ} (ht : t ≤ d.phi) : + r d t = r1 d t := by simp only [r, ite_eq_left ht] + +theorem r_phase2 (d : Reduced.Params) {t : ℝ} + (hlo : d.phi < t) (hhi : t ≤ d.theta) : r d t = r2 d t := by + simp only [r, ite_eq_right (not_le.mpr hlo), ite_eq_left hhi] + +theorem r_phase3 (d : Reduced.Params) (ho : Ordered d) {t : ℝ} + (hlo : d.theta < t) (hhi : t ≤ eta d) : r d t = r3 d t := by + have hphi : d.phi < t := lt_of_le_of_lt ho.2.1 hlo + simp only [r, ite_eq_right (not_le.mpr hphi), ite_eq_right (not_le.mpr hlo), ite_eq_left hhi] + +theorem r_phase4 (d : Reduced.Params) (ho : Ordered d) {t : ℝ} + (hlo : eta d < t) (hhi : t ≤ tau d) : r d t = r4 d t := by + have htheta : d.theta < t := lt_of_le_of_lt (ordered_knots d ho).2.2.1 hlo + have hphi : d.phi < t := lt_of_le_of_lt ho.2.1 htheta + simp only [r, ite_eq_right (not_le.mpr hphi), ite_eq_right (not_le.mpr htheta), + ite_eq_right (not_le.mpr hlo), ite_eq_left hhi] + +end GerverSofa.PartF.Integrals + +end + +end + +end + +section + +/-! +# F04: evaluation of the literal integrals on all four closed intervals + +The fundamental theorem is applied to smooth branch primitives. Equality with +the discontinuous integrand is required only on the open interval. Adjacent +integrals are then added, using the proved matching values at every switch. +-/ + +@[expose] public section + +noncomputable section +open MeasureTheory +namespace GerverSofa.PartF.Integrals + +open Phases + +theorem integrate_branch (f f' P : ℝ → ℝ) (a b : ℝ) + (hab : a ≤ b) (hf' : Continuous f') + (hderiv : ∀ t, HasDerivAt P (f' t) t) + (heq : ∀ t ∈ Set.Ioo a b, f t = f' t) : + IntervalIntegrable f volume a b ∧ + (∫ t in a..b, f t) = P b - P a := by + have hi : IntervalIntegrable f' volume a b := hf'.intervalIntegrable a b + have hf : IntervalIntegrable f volume a b := hi.congr_uIoo (by + rw [Set.uIoo_of_le hab] + intro t ht + exact (heq t ht).symm) + refine ⟨hf, ?_⟩ + calc + (∫ t in a..b, f t) = ∫ t in a..b, f' t := + intervalIntegral.integral_congr_Ioo_of_le hab heq + _ = P b - P a := + intervalIntegral.integral_eq_sub_of_hasDerivAt (fun t _ => hderiv t) hi + +theorem cos_tail4 (d : Reduced.Params) (ho : Ordered d) + (t : ℝ) (ht : t ∈ Set.Icc (eta d) (tau d)) : + IntervalIntegrable (fun u => r d u * Real.cos u) volume t (tau d) ∧ + (∫ u in t..tau d, r d u * Real.cos u) = 1 - X4 d t := by + have hpiece := integrate_branch + (fun u => r d u * Real.cos u) (fun u => r4 d u * Real.cos u) + (X4 d) t (tau d) ht.2 + (by dsimp [r1, r2, r3, r4, g2, g3]; fun_prop) + (by + intro u + exact X4_hasDerivAt d u) + (by + intro u hu + rw [r_phase4 d ho (lt_of_le_of_lt ht.1 hu.1) (le_of_lt hu.2)]) + refine ⟨hpiece.1, ?_⟩ + rw [hpiece.2] + rw [X4_terminal] + +theorem sin_tail4 (d : Reduced.Params) (ho : Ordered d) + (t : ℝ) (ht : t ∈ Set.Icc (eta d) (tau d)) : + IntervalIntegrable (fun u => r d u * Real.sin u) volume t (tau d) ∧ + (∫ u in t..tau d, r d u * Real.sin u) = Y4 d t := by + have hpiece := integrate_branch + (fun u => r d u * Real.sin u) (fun u => r4 d u * Real.sin u) + (fun u => -Y4 d u) t (tau d) ht.2 + (by dsimp [r1, r2, r3, r4, g2, g3]; fun_prop) + (by + intro u + exact (Y4_hasDerivAt d u).fun_neg.congr_deriv (by ring)) + (by + intro u hu + rw [r_phase4 d ho (lt_of_le_of_lt ht.1 hu.1) (le_of_lt hu.2)]) + refine ⟨hpiece.1, ?_⟩ + rw [hpiece.2] + rw [Y4_terminal]; ring + +theorem cos_tail3 (d : Reduced.Params) (ho : Ordered d) (hd : Reduced.Equations d) + (t : ℝ) (ht : t ∈ Set.Icc (d.theta) (eta d)) : + IntervalIntegrable (fun u => r d u * Real.cos u) volume t (tau d) ∧ + (∫ u in t..tau d, r d u * Real.cos u) = 1 - X3 d t := by + have hpiece := integrate_branch + (fun u => r d u * Real.cos u) (fun u => r3 d u * Real.cos u) + (X3 d) t (eta d) ht.2 + (by dsimp [r1, r2, r3, r4, g2, g3]; fun_prop) + (by + intro u + exact X3_hasDerivAt d u) + (by + intro u hu + rw [r_phase3 d ho (lt_of_le_of_lt ht.1 hu.1) (le_of_lt hu.2)]) + have hrest := cos_tail4 d ho (eta d) ⟨le_rfl, (ordered_knots d ho).2.2.2.1⟩ + refine ⟨hpiece.1.trans hrest.1, ?_⟩ + rw [← intervalIntegral.integral_add_adjacent_intervals hpiece.1 hrest.1, + hpiece.2, hrest.2] + rw [X3_join d hd]; ring + +theorem sin_tail3 (d : Reduced.Params) (ho : Ordered d) (hd : Reduced.Equations d) + (t : ℝ) (ht : t ∈ Set.Icc (d.theta) (eta d)) : + IntervalIntegrable (fun u => r d u * Real.sin u) volume t (tau d) ∧ + (∫ u in t..tau d, r d u * Real.sin u) = Y3 d t := by + have hpiece := integrate_branch + (fun u => r d u * Real.sin u) (fun u => r3 d u * Real.sin u) + (fun u => -Y3 d u) t (eta d) ht.2 + (by dsimp [r1, r2, r3, r4, g2, g3]; fun_prop) + (by + intro u + exact (Y3_hasDerivAt d u).fun_neg.congr_deriv (by ring)) + (by + intro u hu + rw [r_phase3 d ho (lt_of_le_of_lt ht.1 hu.1) (le_of_lt hu.2)]) + have hrest := sin_tail4 d ho (eta d) ⟨le_rfl, (ordered_knots d ho).2.2.2.1⟩ + refine ⟨hpiece.1.trans hrest.1, ?_⟩ + rw [← intervalIntegral.integral_add_adjacent_intervals hpiece.1 hrest.1, + hpiece.2, hrest.2] + rw [Y3_join d hd]; ring + +theorem cos_tail2 (d : Reduced.Params) (ho : Ordered d) (hd : Reduced.Equations d) + (t : ℝ) (ht : t ∈ Set.Icc (d.phi) (d.theta)) : + IntervalIntegrable (fun u => r d u * Real.cos u) volume t (tau d) ∧ + (∫ u in t..tau d, r d u * Real.cos u) = 1 - X2 d t := by + have hpiece := integrate_branch + (fun u => r d u * Real.cos u) (fun u => r2 d u * Real.cos u) + (X2 d) t (d.theta) ht.2 + (by dsimp [r1, r2, r3, r4, g2, g3]; fun_prop) + (by + intro u + exact X2_hasDerivAt d u) + (by + intro u hu + rw [r_phase2 d (lt_of_le_of_lt ht.1 hu.1) (le_of_lt hu.2)]) + have hrest := cos_tail3 d ho hd (d.theta) ⟨le_rfl, (ordered_knots d ho).2.2.1⟩ + refine ⟨hpiece.1.trans hrest.1, ?_⟩ + rw [← intervalIntegral.integral_add_adjacent_intervals hpiece.1 hrest.1, + hpiece.2, hrest.2] + rw [X2_join d]; ring + +theorem sin_tail2 (d : Reduced.Params) (ho : Ordered d) (hd : Reduced.Equations d) + (t : ℝ) (ht : t ∈ Set.Icc (d.phi) (d.theta)) : + IntervalIntegrable (fun u => r d u * Real.sin u) volume t (tau d) ∧ + (∫ u in t..tau d, r d u * Real.sin u) = Y2 d t := by + have hpiece := integrate_branch + (fun u => r d u * Real.sin u) (fun u => r2 d u * Real.sin u) + (fun u => -Y2 d u) t (d.theta) ht.2 + (by dsimp [r1, r2, r3, r4, g2, g3]; fun_prop) + (by + intro u + exact (Y2_hasDerivAt d u).fun_neg.congr_deriv (by ring)) + (by + intro u hu + rw [r_phase2 d (lt_of_le_of_lt ht.1 hu.1) (le_of_lt hu.2)]) + have hrest := sin_tail3 d ho hd (d.theta) ⟨le_rfl, (ordered_knots d ho).2.2.1⟩ + refine ⟨hpiece.1.trans hrest.1, ?_⟩ + rw [← intervalIntegral.integral_add_adjacent_intervals hpiece.1 hrest.1, + hpiece.2, hrest.2] + rw [Y2_join d]; ring + +theorem cos_tail1 (d : Reduced.Params) (ho : Ordered d) (hd : Reduced.Equations d) + (t : ℝ) (ht : t ∈ Set.Icc (0) (d.phi)) : + IntervalIntegrable (fun u => r d u * Real.cos u) volume t (tau d) ∧ + (∫ u in t..tau d, r d u * Real.cos u) = 1 - X1 d t := by + have hpiece := integrate_branch + (fun u => r d u * Real.cos u) (fun u => r1 d u * Real.cos u) + (X1 d) t (d.phi) ht.2 + (by dsimp [r1, r2, r3, r4, g2, g3]; fun_prop) + (by + intro u + exact X1_hasDerivAt d u) + (by + intro u hu + rw [r_phase1 d (le_of_lt hu.2)]) + have hrest := cos_tail2 d ho hd (d.phi) ⟨le_rfl, ho.2.1⟩ + refine ⟨hpiece.1.trans hrest.1, ?_⟩ + rw [← intervalIntegral.integral_add_adjacent_intervals hpiece.1 hrest.1, + hpiece.2, hrest.2] + rw [X1_join d]; ring + +theorem sin_tail1 (d : Reduced.Params) (ho : Ordered d) (hd : Reduced.Equations d) + (t : ℝ) (ht : t ∈ Set.Icc (0) (d.phi)) : + IntervalIntegrable (fun u => r d u * Real.sin u) volume t (tau d) ∧ + (∫ u in t..tau d, r d u * Real.sin u) = Y1 d t := by + have hpiece := integrate_branch + (fun u => r d u * Real.sin u) (fun u => r1 d u * Real.sin u) + (fun u => -Y1 d u) t (d.phi) ht.2 + (by dsimp [r1, r2, r3, r4, g2, g3]; fun_prop) + (by + intro u + exact (Y1_hasDerivAt d u).fun_neg.congr_deriv (by ring)) + (by + intro u hu + rw [r_phase1 d (le_of_lt hu.2)]) + have hrest := sin_tail2 d ho hd (d.phi) ⟨le_rfl, ho.2.1⟩ + refine ⟨hpiece.1.trans hrest.1, ?_⟩ + rw [← intervalIntegral.integral_add_adjacent_intervals hpiece.1 hrest.1, + hpiece.2, hrest.2] + rw [Y1_join d]; ring + +theorem xi_zeta_phase1 (d : Reduced.Params) (ho : Ordered d) (hd : Reduced.Equations d) + (t : ℝ) (ht : t ∈ Set.Icc (0) (d.phi)) : + xi d t = X1 d t ∧ zeta d t = Y1 d t := by + constructor + · unfold xi + rw [(cos_tail1 d ho hd t ht).2] + ring + · exact (sin_tail1 d ho hd t ht).2 + +theorem xi_zeta_phase2 (d : Reduced.Params) (ho : Ordered d) (hd : Reduced.Equations d) + (t : ℝ) (ht : t ∈ Set.Icc (d.phi) (d.theta)) : + xi d t = X2 d t ∧ zeta d t = Y2 d t := by + constructor + · unfold xi + rw [(cos_tail2 d ho hd t ht).2] + ring + · exact (sin_tail2 d ho hd t ht).2 + +theorem xi_zeta_phase3 (d : Reduced.Params) (ho : Ordered d) (hd : Reduced.Equations d) + (t : ℝ) (ht : t ∈ Set.Icc (d.theta) (eta d)) : + xi d t = X3 d t ∧ zeta d t = Y3 d t := by + constructor + · unfold xi + rw [(cos_tail3 d ho hd t ht).2] + ring + · exact (sin_tail3 d ho hd t ht).2 + +theorem xi_zeta_phase4 (d : Reduced.Params) (ho : Ordered d) + (t : ℝ) (ht : t ∈ Set.Icc (eta d) (tau d)) : + xi d t = X4 d t ∧ zeta d t = Y4 d t := by + constructor + · unfold xi + rw [(cos_tail4 d ho t ht).2] + ring + · exact (sin_tail4 d ho t ht).2 + +theorem xi_zero (d : Reduced.Params) (ho : Ordered d) + (hd : Reduced.Equations d) : xi d 0 = V1 d := by + have h := (xi_zeta_phase1 d ho hd 0 ⟨le_rfl, ho.1⟩).1 + simpa [X1, primitiveX] using h + +/-- The projection `ξ sin t + ζ cos t` used in the integral identities. -/ +def W (d : Reduced.Params) (t : ℝ) : ℝ := + xi d t * Real.sin t + zeta d t * Real.cos t + +theorem primitive_W (g gp U V t : ℝ) : + (V + g * Real.sin t + gp * Real.cos t) * Real.sin t + + (U + g * Real.cos t - gp * Real.sin t) * Real.cos t = + g + U * Real.cos t + V * Real.sin t := by + linear_combination g * Real.sin_sq_add_cos_sq t + +theorem W_phase1 (d : Reduced.Params) (ho : Ordered d) (hd : Reduced.Equations d) + (t : ℝ) (ht : t ∈ Set.Icc (0) (d.phi)) : + W d t = r1 d t + U1 d * Real.cos t + V1 d * Real.sin t := by + rcases xi_zeta_phase1 d ho hd t ht with ⟨hx, hy⟩ + unfold W + rw [hx, hy] + exact primitive_W (r1 d t) (0) (U1 d) (V1 d) t + +theorem W_phase2 (d : Reduced.Params) (ho : Ordered d) (hd : Reduced.Equations d) + (t : ℝ) (ht : t ∈ Set.Icc (d.phi) (d.theta)) : + W d t = g2 d t + U2 d * Real.cos t + V2 d * Real.sin t := by + rcases xi_zeta_phase2 d ho hd t ht with ⟨hx, hy⟩ + unfold W + rw [hx, hy] + exact primitive_W (g2 d t) (1 / 2) (U2 d) (V2 d) t + +theorem W_phase3 (d : Reduced.Params) (ho : Ordered d) (hd : Reduced.Equations d) + (t : ℝ) (ht : t ∈ Set.Icc (d.theta) (eta d)) : + W d t = g3 d t + U3 d * Real.cos t + V3 d * Real.sin t := by + rcases xi_zeta_phase3 d ho hd t ht with ⟨hx, hy⟩ + unfold W + rw [hx, hy] + exact primitive_W (g3 d t) (1) (U3 d) (V3 d) t + +theorem W_phase4 (d : Reduced.Params) (ho : Ordered d) + (t : ℝ) (ht : t ∈ Set.Icc (eta d) (tau d)) : + W d t = g4 d t + U4 d * Real.cos t + V4 d * Real.sin t := by + rcases xi_zeta_phase4 d ho t ht with ⟨hx, hy⟩ + unfold W + rw [hx, hy] + exact primitive_W (g4 d t) (dg4 d t) (U4 d) (V4 d) t + +end GerverSofa.PartF.Integrals + +end + +end + +end + +section + +/-! +# F05: the four-parameter dictionary satisfies the full 22 equations + +These polynomial certificates use the four reduced equations and the two +trigonometric circle identities. No box membership or uniqueness is assumed. +They do not identify the dictionary with the independently certified 22D root. +The module is independent of the F04 integral evaluation. +-/ + +@[expose] public section + +noncomputable section +namespace GerverSofa.PartF.Phases + +theorem dictionary_equations (d : Reduced.Params) (hd : Reduced.Equations d) : + Romik.Equations (dictionary d) := by + have h1 := congrFun hd (0 : Fin 4) + have h2 := congrFun hd (1 : Fin 4) + have h3 := congrFun hd (2 : Fin 4) + have h4 := congrFun hd (3 : Fin 4) + change d.a * (Real.cos d.theta - Real.cos d.phi) - + 2 * d.b * Real.sin d.phi + (d.theta - d.phi - 1) * Real.cos d.theta - + Real.sin d.theta + Real.cos d.phi + Real.sin d.phi = 0 at h1 + change d.a * (3 * Real.sin d.theta + Real.sin d.phi) - + 2 * d.b * Real.cos d.phi + 3 * (d.theta - d.phi - 1) * Real.sin d.theta + + 3 * Real.cos d.theta - Real.sin d.phi + Real.cos d.phi = 0 at h2 + change d.a * Real.cos d.phi - Real.sin d.phi - 1 / 2 + + 1 / 2 * Real.cos d.phi - d.b * Real.sin d.phi = 0 at h3 + change d.a + Real.pi / 2 - d.phi - d.theta - d.b + + 1 / 2 * (d.theta - d.phi) * (1 + d.a) + + 1 / 4 * (d.theta - d.phi) * (d.theta - d.phi) = 0 at h4 + have hcphi := Real.sin_sq_add_cos_sq d.phi + have hctheta := Real.sin_sq_add_cos_sq d.theta + change Romik.system (dictionary d) = 0 + funext i + fin_cases i + -- Row 0: exact scalar certificate. + · change (dictionary d).e1 - (dictionary d).a1 = 0 + dsimp [dictionary, T]; ring + -- Row 1: exact scalar certificate. + · change (dictionary d).e2 + (dictionary d).a2 = 0 + dsimp [dictionary, T]; ring + -- Row 2: exact scalar certificate. + · change (dictionary d).d1 + (dictionary d).b1 - Real.pi / 4 = 0 + dsimp [dictionary, T]; ring + -- Row 3: exact scalar certificate. + · change (dictionary d).d2 - (dictionary d).b2 - Real.pi / 4 * (2 * (dictionary d).b1 - Real.pi + / 4) = 0 + dsimp [dictionary, T]; ring + -- Row 4: exact scalar certificate. + · change (dictionary d).c2 - (dictionary d).c1 + Real.pi / 2 = 0 + dsimp [dictionary, T]; ring + -- Row 5: exact scalar certificate. + · change (dictionary d).k11 - 1 + (dictionary d).a1 = 0 + dsimp [dictionary, T]; ring + -- Row 6: exact scalar certificate. + · change (dictionary d).k12 - 1 / 4 = 0 + dsimp [dictionary, T]; ring + -- Row 7: exact scalar certificate. + · change (dictionary d).a2 + 1 / 4 = 0 + dsimp [dictionary, T]; ring + -- Row 8: exact scalar certificate. + · change (Romik.path1 (dictionary d) (d.phi)).1 - (Romik.path2 (dictionary d) (d.phi)).1 = 0 + dsimp [Romik.path1, Romik.path2, Romik.path3, Romik.path4, Romik.path5, + Romik.rot, Romik.addK, Romik.alphaBeta1, Romik.alphaBeta2, Romik.alphaBeta3, + dictionary, U1, U2, U3, U4, V1, V2, V3, V4, hStar, T] + linear_combination ((Real.sin d.phi) ^ 2) * h2 + + ((Real.sin d.phi) * (Real.cos d.phi)) * h3 + + (-1 * (d.a) * (Real.sin d.phi) + (-3 / 2 : ℝ) * (d.a) * (Real.sin d.theta) + (3 / 2 : ℝ) * + (d.b) * (Real.cos d.phi) + (3 / 2 : ℝ) * (d.phi) * (Real.sin d.theta) + (-3 / 2 : ℝ) * + (d.theta) * (Real.sin d.theta) + (1 / 4 : ℝ) * (Real.sin d.phi) + (3 / 2 : ℝ) * (Real.sin + d.theta) + (-3 / 2 : ℝ) * (Real.cos d.theta)) * hcphi + -- Row 9: exact scalar certificate. + · change (Romik.path1 (dictionary d) (d.phi)).2 - (Romik.path2 (dictionary d) (d.phi)).2 = 0 + dsimp [Romik.path1, Romik.path2, Romik.path3, Romik.path4, Romik.path5, + Romik.rot, Romik.addK, Romik.alphaBeta1, Romik.alphaBeta2, Romik.alphaBeta3, + dictionary, U1, U2, U3, U4, V1, V2, V3, V4, hStar, T] + linear_combination (-1 * (Real.sin d.phi) * (Real.cos d.phi)) * h2 + + ((Real.sin d.phi) ^ 2 + -1) * h3 + + ((d.b) * (Real.sin d.phi) + (Real.sin d.phi) + (1 / 4 : ℝ)) * hcphi + -- Row 10: exact scalar certificate. + · change (Romik.rot (d.phi) (Romik.alphaBeta1 (dictionary d) (d.phi))).1 - (Romik.rot (d.phi) + (Romik.alphaBeta2 (dictionary d) (d.phi))).1 = 0 + dsimp [Romik.path1, Romik.path2, Romik.path3, Romik.path4, Romik.path5, + Romik.rot, Romik.addK, Romik.alphaBeta1, Romik.alphaBeta2, Romik.alphaBeta3, + dictionary, U1, U2, U3, U4, V1, V2, V3, V4, hStar, T] + linear_combination (2 * (Real.sin d.phi) * (Real.cos d.phi)) * h2 + + (-2 * (Real.sin d.phi) ^ 2 + 1) * h3 + + (-2 * (d.b) * (Real.sin d.phi) + -2 * (Real.sin d.phi) + (-1 / 2 : ℝ)) * hcphi + -- Row 11: exact scalar certificate. + · change (Romik.rot (d.phi) (Romik.alphaBeta1 (dictionary d) (d.phi))).2 - (Romik.rot (d.phi) + (Romik.alphaBeta2 (dictionary d) (d.phi))).2 = 0 + dsimp [Romik.path1, Romik.path2, Romik.path3, Romik.path4, Romik.path5, + Romik.rot, Romik.addK, Romik.alphaBeta1, Romik.alphaBeta2, Romik.alphaBeta3, + dictionary, U1, U2, U3, U4, V1, V2, V3, V4, hStar, T] + linear_combination (2 * (Real.sin d.phi) ^ 2 + -1) * h2 + + (2 * (Real.sin d.phi) * (Real.cos d.phi)) * h3 + + (-2 * (d.a) * (Real.sin d.phi) + -3 * (d.a) * (Real.sin d.theta) + 3 * (d.b) * (Real.cos + d.phi) + 3 * (d.phi) * (Real.sin d.theta) + -3 * (d.theta) * (Real.sin d.theta) + (1 / 2 : + ℝ) * (Real.sin d.phi) + 3 * (Real.sin d.theta) + -3 * (Real.cos d.theta)) * hcphi + -- Row 12: exact scalar certificate. + · change (Romik.path2 (dictionary d) (d.theta)).1 - (Romik.path3 (dictionary d) (d.theta)).1 = 0 + dsimp [Romik.path1, Romik.path2, Romik.path3, Romik.path4, Romik.path5, + Romik.rot, Romik.addK, Romik.alphaBeta1, Romik.alphaBeta2, Romik.alphaBeta3, + dictionary, U1, U2, U3, U4, V1, V2, V3, V4, hStar, T] + linear_combination (-1 * (Real.cos d.theta)) * h4 + -- Row 13: exact scalar certificate. + · change (Romik.path2 (dictionary d) (d.theta)).2 - (Romik.path3 (dictionary d) (d.theta)).2 = 0 + dsimp [Romik.path1, Romik.path2, Romik.path3, Romik.path4, Romik.path5, + Romik.rot, Romik.addK, Romik.alphaBeta1, Romik.alphaBeta2, Romik.alphaBeta3, + dictionary, U1, U2, U3, U4, V1, V2, V3, V4, hStar, T] + linear_combination (-1 * (Real.sin d.theta)) * h4 + -- Row 14: exact scalar certificate. + · change (Romik.rot (d.theta) (Romik.alphaBeta2 (dictionary d) (d.theta))).1 - (Romik.rot + (d.theta) (Romik.alphaBeta3 (dictionary d) (d.theta))).1 = 0 + dsimp [Romik.path1, Romik.path2, Romik.path3, Romik.path4, Romik.path5, + Romik.rot, Romik.addK, Romik.alphaBeta1, Romik.alphaBeta2, Romik.alphaBeta3, + dictionary, U1, U2, U3, U4, V1, V2, V3, V4, hStar, T] + linear_combination ((Real.sin d.theta)) * h4 + -- Row 15: exact scalar certificate. + · change (Romik.rot (d.theta) (Romik.alphaBeta2 (dictionary d) (d.theta))).2 - (Romik.rot + (d.theta) (Romik.alphaBeta3 (dictionary d) (d.theta))).2 = 0 + dsimp [Romik.path1, Romik.path2, Romik.path3, Romik.path4, Romik.path5, + Romik.rot, Romik.addK, Romik.alphaBeta1, Romik.alphaBeta2, Romik.alphaBeta3, + dictionary, U1, U2, U3, U4, V1, V2, V3, V4, hStar, T] + linear_combination (-1 * (Real.cos d.theta)) * h4 + -- Row 16: exact scalar certificate. + · change (Romik.path3 (dictionary d) (Real.pi / 2 - d.theta)).1 - (Romik.path4 (dictionary d) + (Real.pi / 2 - d.theta)).1 = 0 + dsimp [Romik.path1, Romik.path2, Romik.path3, Romik.path4, Romik.path5, + Romik.rot, Romik.addK, Romik.alphaBeta1, Romik.alphaBeta2, Romik.alphaBeta3, + dictionary, U1, U2, U3, U4, V1, V2, V3, V4, hStar, T] + simp only [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + linear_combination (-1 * (Real.cos d.theta)) * h4 + -- Row 17: exact scalar certificate. + · change (Romik.path3 (dictionary d) (Real.pi / 2 - d.theta)).2 - (Romik.path4 (dictionary d) + (Real.pi / 2 - d.theta)).2 = 0 + dsimp [Romik.path1, Romik.path2, Romik.path3, Romik.path4, Romik.path5, + Romik.rot, Romik.addK, Romik.alphaBeta1, Romik.alphaBeta2, Romik.alphaBeta3, + dictionary, U1, U2, U3, U4, V1, V2, V3, V4, hStar, T] + simp only [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + linear_combination ((Real.sin d.theta)) * h4 + -- Row 18: exact scalar certificate. + · change (Romik.path4 (dictionary d) (Real.pi / 2 - d.phi)).1 - (Romik.path5 (dictionary d) + (Real.pi / 2 - d.phi)).1 = 0 + dsimp [Romik.path1, Romik.path2, Romik.path3, Romik.path4, Romik.path5, + Romik.rot, Romik.addK, Romik.alphaBeta1, Romik.alphaBeta2, Romik.alphaBeta3, + dictionary, U1, U2, U3, U4, V1, V2, V3, V4, hStar, T] + simp only [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + linear_combination ((Real.sin d.phi) ^ 2 + -1) * h2 + + ((Real.sin d.phi) * (Real.cos d.phi)) * h3 + + (-1 * (d.a) * (Real.sin d.phi) + (-3 / 2 : ℝ) * (d.a) * (Real.sin d.theta) + (3 / 2 : ℝ) * + (d.b) * (Real.cos d.phi) + (3 / 2 : ℝ) * (d.phi) * (Real.sin d.theta) + (-3 / 2 : ℝ) * + (d.theta) * (Real.sin d.theta) + (1 / 4 : ℝ) * (Real.sin d.phi) + (3 / 2 : ℝ) * (Real.sin + d.theta) + (-3 / 2 : ℝ) * (Real.cos d.theta)) * hcphi + -- Row 19: exact scalar certificate. + · change (Romik.path4 (dictionary d) (Real.pi / 2 - d.phi)).2 - (Romik.path5 (dictionary d) + (Real.pi / 2 - d.phi)).2 = 0 + dsimp [Romik.path1, Romik.path2, Romik.path3, Romik.path4, Romik.path5, + Romik.rot, Romik.addK, Romik.alphaBeta1, Romik.alphaBeta2, Romik.alphaBeta3, + dictionary, U1, U2, U3, U4, V1, V2, V3, V4, hStar, T] + simp only [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + linear_combination ((Real.sin d.phi) * (Real.cos d.phi)) * h2 + + (-1 * (Real.sin d.phi) ^ 2 + 1) * h3 + + (-1 * (d.b) * (Real.sin d.phi) + -1 * (Real.sin d.phi) + (-1 / 4 : ℝ)) * hcphi + -- Row 20: exact scalar certificate. + · change (Romik.path1 (dictionary d) d.phi).1 - ((Romik.path3 (dictionary d) (Real.pi / 2 - + d.theta)).1 - (Romik.alphaBeta3 (dictionary d) (Real.pi / 2 - d.theta)).1 * Real.sin (Real.pi + / 2 - d.theta)) = 0 + dsimp [Romik.path1, Romik.path2, Romik.path3, Romik.path4, Romik.path5, + Romik.rot, Romik.addK, Romik.alphaBeta1, Romik.alphaBeta2, Romik.alphaBeta3, + dictionary, U1, U2, U3, U4, V1, V2, V3, V4, hStar, T] + simp only [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + linear_combination ((Real.sin d.phi) ^ 2 + (-1 / 2 : ℝ)) * h2 + + ((Real.sin d.phi) * (Real.cos d.phi)) * h3 + + (-1 * (d.a) * (Real.sin d.phi) + (-3 / 2 : ℝ) * (d.a) * (Real.sin d.theta) + (3 / 2 : ℝ) * + (d.b) * (Real.cos d.phi) + (3 / 2 : ℝ) * (d.phi) * (Real.sin d.theta) + (-3 / 2 : ℝ) * + (d.theta) * (Real.sin d.theta) + (1 / 4 : ℝ) * (Real.sin d.phi) + (3 / 2 : ℝ) * (Real.sin + d.theta) + (-3 / 2 : ℝ) * (Real.cos d.theta)) * hcphi + -- Row 21: exact scalar certificate. + · change (Romik.path1 (dictionary d) d.phi).2 - ((Romik.path3 (dictionary d) (Real.pi / 2 - + d.theta)).2 + (Romik.alphaBeta3 (dictionary d) (Real.pi / 2 - d.theta)).1 * Real.cos (Real.pi + / 2 - d.theta)) = 0 + dsimp [Romik.path1, Romik.path2, Romik.path3, Romik.path4, Romik.path5, + Romik.rot, Romik.addK, Romik.alphaBeta1, Romik.alphaBeta2, Romik.alphaBeta3, + dictionary, U1, U2, U3, U4, V1, V2, V3, V4, hStar, T] + simp only [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + linear_combination ((-1 / 2 : ℝ)) * h1 + + (-1 * (Real.sin d.phi) * (Real.cos d.phi)) * h2 + + ((Real.sin d.phi) ^ 2 + -1) * h3 + + ((d.b) * (Real.sin d.phi) + (Real.sin d.phi) + (1 / 4 : ℝ)) * hcphi + +/-- Read back the four free parameters from the 22D representation. -/ +def undictionary (p : Romik.Params) : Reduced.Params where + a := p.phi - 1 - 2 * p.b1 + b := p.b2 + 1 / 2 - (1 + (p.phi - 1 - 2 * p.b1)) * p.phi / 2 + p.phi ^ 2 / 4 + phi := p.phi + theta := p.theta + +theorem undictionary_dictionary (d : Reduced.Params) : + undictionary (dictionary d) = d := by + rcases d with ⟨a, b, phi, theta⟩ + dsimp [undictionary, dictionary] + congr 1 <;> ring + +end GerverSofa.PartF.Phases + +end + +end + +end + +section + +/-! +# F06: reverse reduction from the full Romik equations + +This direction uses velocity matching and the two contact equations. It does +not assume membership in either numerical box or any strict angle inequality. +-/ + +@[expose] public section + +noncomputable section +namespace GerverSofa.PartF.Phases + +theorem rot_injective (t : ℝ) : Function.Injective (Romik.rot t) := by + intro z w h + have hx := congrArg Prod.fst h + have hy := congrArg Prod.snd h + dsimp [Romik.rot] at hx hy + apply Prod.ext + · linear_combination Real.cos t * hx + Real.sin t * hy - + (z.1 - w.1) * Real.sin_sq_add_cos_sq t + · linear_combination -Real.sin t * hx + Real.cos t * hy - + (z.2 - w.2) * Real.sin_sq_add_cos_sq t + +theorem alphaBeta12_eq {p : Romik.Params} (hp : Romik.Equations p) : + Romik.alphaBeta1 p p.phi = Romik.alphaBeta2 p p.phi := by + apply rot_injective p.phi + apply Prod.ext + · have h := congrFun hp (10 : Fin 22) + change (Romik.rot p.phi (Romik.alphaBeta1 p p.phi)).1 - + (Romik.rot p.phi (Romik.alphaBeta2 p p.phi)).1 = 0 at h + exact sub_eq_zero.mp h + · have h := congrFun hp (11 : Fin 22) + change (Romik.rot p.phi (Romik.alphaBeta1 p p.phi)).2 - + (Romik.rot p.phi (Romik.alphaBeta2 p p.phi)).2 = 0 at h + exact sub_eq_zero.mp h + +theorem alphaBeta23_eq {p : Romik.Params} (hp : Romik.Equations p) : + Romik.alphaBeta2 p p.theta = Romik.alphaBeta3 p p.theta := by + apply rot_injective p.theta + apply Prod.ext + · have h := congrFun hp (14 : Fin 22) + change (Romik.rot p.theta (Romik.alphaBeta2 p p.theta)).1 - + (Romik.rot p.theta (Romik.alphaBeta3 p p.theta)).1 = 0 at h + exact sub_eq_zero.mp h + · have h := congrFun hp (15 : Fin 22) + change (Romik.rot p.theta (Romik.alphaBeta2 p p.theta)).2 - + (Romik.rot p.theta (Romik.alphaBeta3 p p.theta)).2 = 0 at h + exact sub_eq_zero.mp h + +theorem c2_eq_of_full {p : Romik.Params} (hp : Romik.Equations p) : + p.c2 = -2 - 2 * p.b1 := by + have h := congrArg Prod.fst (alphaBeta23_eq hp) + dsimp [Romik.alphaBeta2, Romik.alphaBeta3] at h + linarith only [h] + +theorem c1_eq_of_full {p : Romik.Params} (hp : Romik.Equations p) : + p.c1 = Real.pi / 2 - 2 - 2 * p.b1 := by + have hs := Romik.c2_eq_c1_sub_halfPi_of_equations hp + have hc := c2_eq_of_full hp + linarith only [hs, hc] + +theorem reverse_equation4 {p : Romik.Params} (hp : Romik.Equations p) : + Reduced.system (undictionary p) 3 = 0 := by + have h := congrArg Prod.snd (alphaBeta23_eq hp) + dsimp [Romik.alphaBeta2, Romik.alphaBeta3] at h + rw [c1_eq_of_full hp] at h + change (undictionary p).a + Real.pi / 2 - (undictionary p).phi - + (undictionary p).theta - (undictionary p).b + + 1 / 2 * ((undictionary p).theta - (undictionary p).phi) * + (1 + (undictionary p).a) + + 1 / 4 * ((undictionary p).theta - (undictionary p).phi) * + ((undictionary p).theta - (undictionary p).phi) = 0 + dsimp [undictionary] + linear_combination -h + +theorem reverse_equation3 {p : Romik.Params} (hp : Romik.Equations p) : + Reduced.system (undictionary p) 2 = 0 := by + have ha := congrArg Prod.fst (alphaBeta12_eq hp) + have hb := congrArg Prod.snd (alphaBeta12_eq hp) + dsimp [Romik.alphaBeta1, Romik.alphaBeta2] at ha hb + rw [Romik.a2_eq_neg_quarter_of_equations hp] at ha hb + change (undictionary p).a * Real.cos (undictionary p).phi - + Real.sin (undictionary p).phi - 1 / 2 + + 1 / 2 * Real.cos (undictionary p).phi - + (undictionary p).b * Real.sin (undictionary p).phi = 0 + dsimp [undictionary] + linear_combination Real.cos p.phi * ha + Real.sin p.phi * hb + + (1 / 2 : ℝ) * Real.sin_sq_add_cos_sq p.phi + +theorem reverse_equation1 {p : Romik.Params} (hp : Romik.Equations p) : + Reduced.system (undictionary p) 0 = 0 := by + have h9 := congrFun hp (9 : Fin 22) + have h13 := congrFun hp (13 : Fin 22) + have h21 := congrFun hp (21 : Fin 22) + change (Romik.path1 p p.phi).2 - (Romik.path2 p p.phi).2 = 0 at h9 + change (Romik.path2 p p.theta).2 - (Romik.path3 p p.theta).2 = 0 at h13 + change (Romik.path1 p p.phi).2 - + ((Romik.path3 p (Real.pi / 2 - p.theta)).2 + + (Romik.alphaBeta3 p (Real.pi / 2 - p.theta)).1 * + Real.cos (Real.pi / 2 - p.theta)) = 0 at h21 + dsimp [Romik.path1, Romik.path2, Romik.path3, Romik.rot, Romik.addK, + Romik.alphaBeta3] at h9 h13 h21 + simp only [c1_eq_of_full hp, c2_eq_of_full hp] at h13 h21 + simp only [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] at h21 + have h4 := reverse_equation4 hp + change (undictionary p).a + Real.pi / 2 - (undictionary p).phi - + (undictionary p).theta - (undictionary p).b + + 1 / 2 * ((undictionary p).theta - (undictionary p).phi) * + (1 + (undictionary p).a) + + 1 / 4 * ((undictionary p).theta - (undictionary p).phi) * + ((undictionary p).theta - (undictionary p).phi) = 0 at h4 + change (undictionary p).a * (Real.cos (undictionary p).theta - + Real.cos (undictionary p).phi) - 2 * (undictionary p).b * + Real.sin (undictionary p).phi + + ((undictionary p).theta - (undictionary p).phi - 1) * + Real.cos (undictionary p).theta - Real.sin (undictionary p).theta + + Real.cos (undictionary p).phi + Real.sin (undictionary p).phi = 0 + dsimp [undictionary] at h4 ⊢ + linear_combination -2 * h21 + 2 * h9 + 2 * h13 + 2 * Real.sin p.theta * h4 + +theorem reverse_equation2 {p : Romik.Params} (hp : Romik.Equations p) : + Reduced.system (undictionary p) 1 = 0 := by + have h8 := congrFun hp (8 : Fin 22) + have h12 := congrFun hp (12 : Fin 22) + have h20 := congrFun hp (20 : Fin 22) + change (Romik.path1 p p.phi).1 - (Romik.path2 p p.phi).1 = 0 at h8 + change (Romik.path2 p p.theta).1 - (Romik.path3 p p.theta).1 = 0 at h12 + change (Romik.path1 p p.phi).1 - + ((Romik.path3 p (Real.pi / 2 - p.theta)).1 - + (Romik.alphaBeta3 p (Real.pi / 2 - p.theta)).1 * + Real.sin (Real.pi / 2 - p.theta)) = 0 at h20 + dsimp [Romik.path1, Romik.path2, Romik.path3, Romik.rot, Romik.addK, + Romik.alphaBeta3] at h8 h12 h20 + simp only [c1_eq_of_full hp, c2_eq_of_full hp] at h12 h20 + simp only [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] at h20 + have h4 := reverse_equation4 hp + change (undictionary p).a + Real.pi / 2 - (undictionary p).phi - + (undictionary p).theta - (undictionary p).b + + 1 / 2 * ((undictionary p).theta - (undictionary p).phi) * + (1 + (undictionary p).a) + + 1 / 4 * ((undictionary p).theta - (undictionary p).phi) * + ((undictionary p).theta - (undictionary p).phi) = 0 at h4 + change (undictionary p).a * (3 * Real.sin (undictionary p).theta + + Real.sin (undictionary p).phi) - 2 * (undictionary p).b * + Real.cos (undictionary p).phi + + 3 * ((undictionary p).theta - (undictionary p).phi - 1) * + Real.sin (undictionary p).theta + 3 * Real.cos (undictionary p).theta - + Real.sin (undictionary p).phi + Real.cos (undictionary p).phi = 0 + dsimp [undictionary] at h4 ⊢ + linear_combination -2 * h20 + 2 * h8 + 2 * h12 + 2 * Real.cos p.theta * h4 + +theorem undictionary_equations {p : Romik.Params} (hp : Romik.Equations p) : + Reduced.Equations (undictionary p) := by + change Reduced.system (undictionary p) = 0 + funext i + fin_cases i + · exact reverse_equation1 hp + · exact reverse_equation2 hp + · exact reverse_equation3 hp + · exact reverse_equation4 hp + +end GerverSofa.PartF.Phases + +end + +end + +end + +section + +/-! +# F06: the reverse parameters determine the full solution + +Velocity matching determines the shape coefficients. Positional matching +then determines each successive translation. No numerical enclosure is used. +-/ + +@[expose] public section + +noncomputable section +namespace GerverSofa.PartF.Phases + +theorem full_equations_injective {p q : Romik.Params} + (hp : Romik.Equations p) (hq : Romik.Equations q) + (h : undictionary p = undictionary q) : p = q := by + have hphi : p.phi = q.phi := congrArg Reduced.Params.phi h + have htheta : p.theta = q.theta := congrArg Reduced.Params.theta h + have ha := congrArg Reduced.Params.a h + have hb := congrArg Reduced.Params.b h + dsimp [undictionary] at ha hb + have hb1 : p.b1 = q.b1 := by + rw [hphi] at ha + linarith only [ha] + have hb2 : p.b2 = q.b2 := by + simp only [hphi, hb1] at hb + linarith only [hb] + have ha2 : p.a2 = q.a2 := by + rw [Romik.a2_eq_neg_quarter_of_equations hp, + Romik.a2_eq_neg_quarter_of_equations hq] + have ha1 : p.a1 = q.a1 := by + have hpa := congrArg Prod.fst (alphaBeta12_eq hp) + have hpb := congrArg Prod.snd (alphaBeta12_eq hp) + have hqa := congrArg Prod.fst (alphaBeta12_eq hq) + have hqb := congrArg Prod.snd (alphaBeta12_eq hq) + dsimp [Romik.alphaBeta1, Romik.alphaBeta2] at hpa hpb hqa hqb + simp only [hphi, hb1, hb2, ha2] at hpa hpb + linear_combination (-Real.sin q.phi / 2) * hpa + + (Real.sin q.phi / 2) * hqa + (Real.cos q.phi / 2) * hpb - + (Real.cos q.phi / 2) * hqb - + (p.a1 - q.a1) * Real.sin_sq_add_cos_sq q.phi + have hc1 : p.c1 = q.c1 := by + rw [c1_eq_of_full hp, c1_eq_of_full hq, hb1] + have hc2 : p.c2 = q.c2 := by + rw [c2_eq_of_full hp, c2_eq_of_full hq, hb1] + have hd1 : p.d1 = q.d1 := by + rw [Romik.d1_eq_quarterPi_sub_b1_of_equations hp, + Romik.d1_eq_quarterPi_sub_b1_of_equations hq, hb1] + have hd2 : p.d2 = q.d2 := by + rw [Romik.d2_eq_b2_add_quarterPi_correction_of_equations hp, + Romik.d2_eq_b2_add_quarterPi_correction_of_equations hq, hb1, hb2] + have he1 : p.e1 = q.e1 := by + rw [Romik.e1_eq_a1_of_equations hp, Romik.e1_eq_a1_of_equations hq, ha1] + have he2 : p.e2 = q.e2 := by + rw [Romik.e2_eq_neg_a2_of_equations hp, Romik.e2_eq_neg_a2_of_equations hq, ha2] + have hk11 : p.k11 = q.k11 := by + have h5p := congrFun hp (5 : Fin 22) + have h5q := congrFun hq (5 : Fin 22) + change p.k11 - 1 + p.a1 = 0 at h5p + change q.k11 - 1 + q.a1 = 0 at h5q + linarith only [h5p, h5q, ha1] + have hk12 : p.k12 = q.k12 := by + rw [Romik.k12_eq_quarter_of_equations hp, Romik.k12_eq_quarter_of_equations hq] + have hpath1 (t : ℝ) : Romik.path1 p t = Romik.path1 q t := by + simp only [Romik.path1, ha1, ha2, hk11, hk12] + have hj2 : Romik.path1 p (q.phi) = Romik.path2 p (q.phi) := by + simpa only [hphi] using Romik.match_path12_of_equations hp + have hx2 : Romik.path2 p (q.phi) = Romik.path2 q (q.phi) := + hj2.symm.trans ((hpath1 (q.phi)).trans (Romik.match_path12_of_equations hq)) + dsimp [Romik.path2, Romik.addK] at hx2 + simp only [hb1, hb2] at hx2 + have hk21 : p.k21 = q.k21 := add_left_cancel (congrArg Prod.fst hx2) + have hk22 : p.k22 = q.k22 := add_left_cancel (congrArg Prod.snd hx2) + have hpath2 (t : ℝ) : Romik.path2 p t = Romik.path2 q t := by + simp only [Romik.path2, hb1, hb2, hk21, hk22] + have hj3 : Romik.path2 p (q.theta) = Romik.path3 p (q.theta) := by + simpa only [htheta] using Romik.match_path23_of_equations hp + have hx3 : Romik.path3 p (q.theta) = Romik.path3 q (q.theta) := + hj3.symm.trans ((hpath2 (q.theta)).trans (Romik.match_path23_of_equations hq)) + dsimp [Romik.path3, Romik.addK] at hx3 + simp only [hc1, hc2] at hx3 + have hk31 : p.k31 = q.k31 := add_left_cancel (congrArg Prod.fst hx3) + have hk32 : p.k32 = q.k32 := add_left_cancel (congrArg Prod.snd hx3) + have hpath3 (t : ℝ) : Romik.path3 p t = Romik.path3 q t := by + simp only [Romik.path3, hc1, hc2, hk31, hk32] + have hj4 : Romik.path3 p (Real.pi / 2 - q.theta) = Romik.path4 p (Real.pi / 2 - q.theta) := by + simpa only [htheta] using Romik.match_path34_of_equations hp + have hx4 : Romik.path4 p (Real.pi / 2 - q.theta) = Romik.path4 q (Real.pi / 2 - q.theta) := + hj4.symm.trans ((hpath3 (Real.pi / 2 - q.theta)).trans (Romik.match_path34_of_equations hq)) + dsimp [Romik.path4, Romik.addK] at hx4 + simp only [hd1, hd2] at hx4 + have hk41 : p.k41 = q.k41 := add_left_cancel (congrArg Prod.fst hx4) + have hk42 : p.k42 = q.k42 := add_left_cancel (congrArg Prod.snd hx4) + have hpath4 (t : ℝ) : Romik.path4 p t = Romik.path4 q t := by + simp only [Romik.path4, hd1, hd2, hk41, hk42] + have hj5 : Romik.path4 p (Real.pi / 2 - q.phi) = Romik.path5 p (Real.pi / 2 - q.phi) := by + simpa only [hphi] using Romik.match_path45_of_equations hp + have hx5 : Romik.path5 p (Real.pi / 2 - q.phi) = Romik.path5 q (Real.pi / 2 - q.phi) := + hj5.symm.trans ((hpath4 (Real.pi / 2 - q.phi)).trans (Romik.match_path45_of_equations hq)) + dsimp [Romik.path5, Romik.addK] at hx5 + simp only [he1, he2] at hx5 + have hk51 : p.k51 = q.k51 := add_left_cancel (congrArg Prod.fst hx5) + have hk52 : p.k52 = q.k52 := add_left_cancel (congrArg Prod.snd hx5) + cases p + cases q + congr 1 + +theorem dictionary_undictionary_of_equations {p : Romik.Params} + (hp : Romik.Equations p) : dictionary (undictionary p) = p := by + apply full_equations_injective (dictionary_equations _ (undictionary_equations hp)) hp + exact undictionary_dictionary (undictionary p) + +end GerverSofa.PartF.Phases + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle003.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle003.lean new file mode 100644 index 0000000000..7954bf2c24 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle003.lean @@ -0,0 +1,7766 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle001 +public import Mathlib.Tactic.FinCases +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartB.Semantics.Batch001`. +* `GerverSofa.KernelOnly.PartB.Certificates.Batch004`. +* `GerverSofa.KernelOnly.PartB.Certificates.Batch003`. +* `GerverSofa.KernelOnly.PartB.Certificates.Batch002`. +* `GerverSofa.KernelOnly.PartB.Certificates.Batch001`. +* `GerverSofa.KernelOnly.PartB.Semantics.Batch002`. +-/ + +@[expose] public section + +noncomputable section + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartB.Arithmetic`. +* `KernelOnly.PartB.CellCache`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Part B exact product-cell arithmetic + +This module is deliberately independent of the noncomputable Part A root. +It contains only exact rational interval data, so all 64 diagnostic and +production rows can be kernel-reduced without rebuilding semantic layers. +-/ + +@[expose] public section + +namespace GerverSofa +namespace PartB + +open RatInterval + +/-- Exact target `0.171` used by the continuum theorem. -/ +def targetQ : ℚ := 171 / 1000 + +/-- The 64 closed mesh cells determined by the 65 nodes `iπ/128`. -/ +abbrev Cell := Fin 64 + +/-- Exact rational mesh coefficient. -/ +def nodeCoeff (i : Nat) : ℚ := (i : ℚ) / 128 + +/-- Hull of two rational intervals. -/ +def intervalHull (a b : RatInterval) : RatInterval := + ⟨min a.lo b.lo, max a.hi b.hi⟩ + +/-- Componentwise hull of two planar interval boxes. -/ +def pointHull (a b : RatInterval × RatInterval) : RatInterval × RatInterval := + (intervalHull a.1 b.1, intervalHull a.2 b.2) + +/-- Exact interval enclosure of one physical time cell. -/ +def cellTimeInterval (i : Cell) : RatInterval := + intervalHull + (ExactReplay.scale (nodeCoeff i.1) ExactReplay.piI) + (ExactReplay.scale (nodeCoeff (i.1 + 1)) ExactReplay.piI) + +/-- Exact interval evaluation of one path phase on one complete mesh cell. -/ +def cellPieceInterval (j : Nat) (i : Cell) : RatInterval × RatInterval := + let t := cellTimeInterval i + let k11 := ExactReplay.getI ExactReplay.fullInputBox 0 + let k12 := ExactReplay.getI ExactReplay.fullInputBox 1 + let k21 := ExactReplay.getI ExactReplay.fullInputBox 2 + let k22 := ExactReplay.getI ExactReplay.fullInputBox 3 + let k31 := ExactReplay.getI ExactReplay.fullInputBox 4 + let k32 := ExactReplay.getI ExactReplay.fullInputBox 5 + let k41 := ExactReplay.getI ExactReplay.fullInputBox 6 + let k42 := ExactReplay.getI ExactReplay.fullInputBox 7 + let k51 := ExactReplay.getI ExactReplay.fullInputBox 8 + let k52 := ExactReplay.getI ExactReplay.fullInputBox 9 + let a1 := ExactReplay.getI ExactReplay.fullInputBox 10 + let a2 := ExactReplay.getI ExactReplay.fullInputBox 11 + let b1 := ExactReplay.getI ExactReplay.fullInputBox 12 + let b2 := ExactReplay.getI ExactReplay.fullInputBox 13 + let c1 := ExactReplay.getI ExactReplay.fullInputBox 14 + let c2 := ExactReplay.getI ExactReplay.fullInputBox 15 + let d1 := ExactReplay.getI ExactReplay.fullInputBox 16 + let d2 := ExactReplay.getI ExactReplay.fullInputBox 17 + let e1 := ExactReplay.getI ExactReplay.fullInputBox 18 + let e2 := ExactReplay.getI ExactReplay.fullInputBox 19 + let one := ExactReplay.oneI + let half := RatInterval.point (1 / 2) + let quarter := RatInterval.point (1 / 4) + let ct := ExactReplay.cosineInterval t + let st := ExactReplay.sineInterval t + let data : RatInterval × RatInterval × RatInterval × RatInterval := + if j = 1 then + (RatInterval.sub + (RatInterval.add (RatInterval.mul a1 ct) (RatInterval.mul a2 st)) one, + RatInterval.sub + (RatInterval.add (RatInterval.mul (RatInterval.neg a2) ct) + (RatInterval.mul a1 st)) half, + k11, k12) + else if j = 2 then + (RatInterval.add + (RatInterval.add + (RatInterval.mul (RatInterval.neg quarter) (RatInterval.mul t t)) + (RatInterval.mul b1 t)) b2, + RatInterval.sub + (RatInterval.sub (RatInterval.mul half t) b1) one, + k21, k22) + else if j = 3 then + (RatInterval.sub c1 t, RatInterval.add c2 t, k31, k32) + else if j = 4 then + (RatInterval.sub + (RatInterval.add (RatInterval.mul (RatInterval.neg half) t) d1) one, + RatInterval.add + (RatInterval.add + (RatInterval.mul (RatInterval.neg quarter) (RatInterval.mul t t)) + (RatInterval.mul d1 t)) d2, + k41, k42) + else + (RatInterval.sub + (RatInterval.add (RatInterval.mul e1 ct) (RatInterval.mul e2 st)) half, + RatInterval.sub + (RatInterval.add (RatInterval.mul (RatInterval.neg e2) ct) + (RatInterval.mul e1 st)) one, + k51, k52) + let r1 := RatInterval.sub (RatInterval.mul ct data.1) + (RatInterval.mul st data.2.1) + let r2 := RatInterval.add (RatInterval.mul st data.1) + (RatInterval.mul ct data.2.1) + (RatInterval.add r1 data.2.2.1, RatInterval.add r2 data.2.2.2) + +/-- The path enclosure for a cell. Four cells contain a switching angle and +therefore take the hull of the two adjacent analytic phases. -/ +def cellPathInterval (i : Cell) : RatInterval × RatInterval := + if i.1 = 0 then cellPieceInterval 1 i + else if i.1 = 1 then pointHull (cellPieceInterval 1 i) (cellPieceInterval 2 i) + else if i.1 ≤ 26 then cellPieceInterval 2 i + else if i.1 = 27 then pointHull (cellPieceInterval 2 i) (cellPieceInterval 3 i) + else if i.1 ≤ 35 then cellPieceInterval 3 i + else if i.1 = 36 then pointHull (cellPieceInterval 3 i) (cellPieceInterval 4 i) + else if i.1 ≤ 61 then cellPieceInterval 4 i + else if i.1 = 62 then pointHull (cellPieceInterval 4 i) (cellPieceInterval 5 i) + else cellPieceInterval 5 i + +/-- Exact interval image of `Gu` on one product cell. -/ +def guCellInterval (i j : Cell) : RatInterval := + let xi := cellPathInterval i + let xj := cellPathInterval j + let c := ExactReplay.cosineInterval (cellTimeInterval i) + let s := ExactReplay.sineInterval (cellTimeInterval i) + let dx := RatInterval.sub xi.1 xj.1 + let dy := RatInterval.sub xi.2 xj.2 + RatInterval.add + (RatInterval.add ExactReplay.oneI (RatInterval.mul dx c)) + (RatInterval.mul dy s) + +/-- Exact interval image of `Gv` on one product cell. -/ +def gvCellInterval (i j : Cell) : RatInterval := + let xi := cellPathInterval i + let xj := cellPathInterval j + let c := ExactReplay.cosineInterval (cellTimeInterval i) + let s := ExactReplay.sineInterval (cellTimeInterval i) + let dx := RatInterval.sub xi.1 xj.1 + let dy := RatInterval.sub xi.2 xj.2 + RatInterval.add + (RatInterval.add ExactReplay.oneI + (RatInterval.mul dx (RatInterval.neg s))) + (RatInterval.mul dy c) + +end PartB +end GerverSofa + +end + +end + +section + +/-! +# Shared exact interval evaluations for the product-cell certificates + +Each table is checked against the original evaluator by the Lean kernel. +Sharing these evaluations avoids repeating the same Taylor computations in every row. +-/ + +@[expose] public section + +namespace GerverSofa.PartB + +/-- Reconstruct a natural number from base-10³⁵ chunks to share decimal elaboration. -/ +def naturalFromChunks (chunks : List ℕ) : ℕ := + chunks.foldl (fun value digit => value * 10 ^ 35 + digit) 0 + +/-- The exact cached path-coordinate pair for cell 0, sharing kernel reduction. -/ +def cachedPath00 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 32806, + 10584377830325517359742700908850139, + 81607231342652381947323845793090454, + 96144429388381831087652413032396797, + 36868186593732552082470650873461363]) : ℤ)) + (naturalFromChunks [ + 5000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 7671443713161115292750432506903126, + 43012829623794223200639225310598163, + 33075928858326908145305686159237480, + 91804944677611174042315416975718857]) + (naturalFromChunks [ + 12, + 50000000000000000000000000000000000, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (-((naturalFromChunks [ + 37647662, + 97447248562927873266328560474815312, + 52671058691422530540628864810962801]) : ℤ)) + (naturalFromChunks [ + 500000000000, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 87326, + 79792061110285957775373564882726820, + 13026632299000909904799014917975, + 23616446106846274741656489466558196, + 56629420125081855603683656880487509]) + (naturalFromChunks [ + 2500000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 1, sharing kernel reduction. -/ +def cachedPath01 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 397036559637444138821, + 23429525818379333822931949222691947, + 56024914729271489239510386186014461, + 63013117025166082450127814194603137, + 19506445506199262500255354407394047]) : ℤ)) + (naturalFromChunks [ + 25600000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 67381694628068574712, + 83394745669405697834748999450389856, + 81605402638451307158023210957921285, + 62191351641107813192015354106152141, + 69296959622689866676384082977573983]) + (naturalFromChunks [ + 6553600000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 342928, + 50341465024201468247210548101732037, + 79271707896851698787958705410829626, + 75662558918120062032679167808769808, + 7365225904837141520082684788612007]) + (naturalFromChunks [ + 10000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2281520274224607845462, + 45701440614950960933322900164023200, + 89547874173976888161305214283996027, + 10849698557208910987992676093182092, + 50000036718501707078589374865104737]) + (naturalFromChunks [ + 32768000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 2, sharing kernel reduction. -/ +def cachedPath02 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 257772707128381117139, + 53978082056034263614025552654969234, + 5677716471911388018466159748398086, + 55737085031605040111489958464383129, + 43581452883468530887685734453022763]) : ℤ)) + (naturalFromChunks [ + 12800000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 105594279288160461622, + 23118192145018609615577389422239556, + 10464295176902166486759014940652048, + 74082432524857500494799764093759241, + 94830813003930941592709856379344343]) + (naturalFromChunks [ + 16384000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 1398712699947913978358, + 25805078325706303648518730929878394, + 20081081063356190170462867234790298, + 57907457058855645071830435777098150, + 86042787547446458393668863106067779]) + (naturalFromChunks [ + 20480000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 26566583229087814189, + 33178357444382229822963276002699166, + 73942154990466666177652686009829343, + 30487308499161687512543927329346219, + 54195585922384154538050876594980787]) + (naturalFromChunks [ + 256000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 3, sharing kernel reduction. -/ +def cachedPath03 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 167431482098179646296, + 27653758568720291948081335555214563, + 13535285732814069244132527171883621, + 20204239016170134246262736347286126, + 34014896056281309646512058126667913]) : ℤ)) + (naturalFromChunks [ + 6400000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 38729481078125875109, + 76637089920329856098896184724691039, + 95799959139430198336179084055884012, + 55820193666305563558980105845381763, + 76477890508403675181138314083052333]) + (naturalFromChunks [ + 32768000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 651119810786289015763, + 4114142687924407599428325716088078, + 61023984528169290192365705819202379, + 79260090486694955629447642207579405, + 43485043701296945996538579373026391]) + (naturalFromChunks [ + 6400000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9005771742771812930505, + 58946786492959638175245597174788749, + 13038617100112156254240943432178320, + 21142311146930295085709411441844239, + 67644010607726716023327914535386407]) + (naturalFromChunks [ + 65536000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 4, sharing kernel reduction. -/ +def cachedPath04 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 137437287975512062338, + 70919967300170333811485565966232643, + 10638242570981596591505205507888429, + 52601132651448521777311208605664925, + 56192875748372588280815659249114093]) : ℤ)) + (naturalFromChunks [ + 4096000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 22467360245297988108, + 56112342793820765380264380655133334, + 29531591438965372171000682985755594, + 45429999022724786122338458184914204, + 45847365690044714883433796662013467]) : ℤ)) + (naturalFromChunks [ + 4096000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 275747586818673826219, + 50625546074936342703565113798977182, + 1146546306727773560019166956028854, + 3932337771064777894467575156849641, + 36243655997364990168367093676435219]) + (naturalFromChunks [ + 2048000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 698348227654038481169, + 70667851612610394756475484262548393, + 90457228968935196947491747574871989, + 62939162869168395373032340806845914, + 87252404329967669574965606841769861]) + (naturalFromChunks [ + 4096000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 5, sharing kernel reduction. -/ +def cachedPath05 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 1082669277612280165857, + 22213585892920254341856704042520998, + 56859783556261704480209291502237127, + 44933671459361595388973986850463799, + 46427798661081607985721723295531127]) : ℤ)) + (naturalFromChunks [ + 25600000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 17736738199344183985, + 44229400551172330353320805277303073, + 90697109383486804175230843143445183, + 11805592692696122400824278116777688, + 52807939621165628837900571803012337]) : ℤ)) + (naturalFromChunks [ + 1310720000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 2137037759635821945951, + 15731002209590382227717230893097918, + 41621198581896007480883971564401711, + 45389410335857388480574935897589974, + 99696444501811673621546840076749761]) + (naturalFromChunks [ + 12800000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 10640683123606004173, + 82310372426003510408455238278908779, + 81388355897557796731545048927062756, + 16302258963323942165116560400676029, + 18203798106858477556707665657063091]) + (naturalFromChunks [ + 52428800000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 6, sharing kernel reduction. -/ +def cachedPath06 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 2680170847027654534774, + 61684040855844559981322023906641975, + 56610652358746122042253325013736687, + 6277299733388226031141299438197790, + 40974691037601367059759116049734507]) : ℤ)) + (naturalFromChunks [ + 51200000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 93930487064265178796, + 29716699436248786974627997210335582, + 63237469195814457886919109558296907, + 84856482043037459793656525431470394, + 93931613502494613889086677778825469]) : ℤ)) + (naturalFromChunks [ + 4096000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 20339129419442060876594, + 1391626348646451668662347055303391, + 15465887621692242482729366937872609, + 66857945034095006437916010249540579, + 30871376576739564690425626507123041]) + (naturalFromChunks [ + 102400000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 3846022310136996615290, + 27002240885343835803255878584829161, + 14458217213200498088882103192466379, + 33396394683931457590206731343397247, + 73912213202174365346865034585117389]) + (naturalFromChunks [ + 16384000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 7, sharing kernel reduction. -/ +def cachedPath07 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 20381017934146979245, + 61693320989470503371401442326964127, + 91673893309935437692126346083375172, + 67450320294182700510700928248389603, + 58833253908103808060331507300338921]) : ℤ)) + (naturalFromChunks [ + 320000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 2205767220636735668142, + 35940810189556752352642392711344277, + 26762691955107816441077933703341457, + 20749704589015203587956213954524896, + 54736979393155779517911320839349317]) : ℤ)) + (naturalFromChunks [ + 65536000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 367350088712004395952, + 39766286536720862570011349737953538, + 31538324792015689931670428716135632, + 68644132135603915097918340468769638, + 55268171291805020647080139170596203]) + (naturalFromChunks [ + 1600000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 8709907405773836844111, + 50502012136984439007331574618703806, + 49469165334826194083182637786951896, + 72907450548893762289861020992783930, + 87470163690321514353102027409415497]) + (naturalFromChunks [ + 32768000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 8, sharing kernel reduction. -/ +def cachedPath08 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 7812229105725993755149, + 97641031873286603147948844413615301, + 75796343540237770318921365820474347, + 19977088575061253290482682834293765, + 45995749618422983633275842386474821]) : ℤ)) + (naturalFromChunks [ + 102400000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 46773151077659169260, + 97287040064071377465512343272931470, + 21573777092767783318958310731734855, + 93471337492423523767974706447344462, + 75704022560099374876133741254428909]) : ℤ)) + (naturalFromChunks [ + 1024000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 26604782435194208738668, + 80872704614358068781074789513746518, + 94493941070370043337611991993687952, + 40842667694072401880457855491441986, + 85621910315436639878553104013171707]) + (naturalFromChunks [ + 102400000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 151598740593416817709, + 9226378357809752850127442420102858, + 55734093541596926198555674243503923, + 73808143245022699455357008191806776, + 98485060194256457186362628699029373]) + (naturalFromChunks [ + 512000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 9, sharing kernel reduction. -/ +def cachedPath09 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 23069638736666002967, + 12877861193895208738983408374202765, + 64588438122218512545763457152858773, + 22073903643433764383209779706672121, + 94801059121046692794847678062741701]) : ℤ)) + (naturalFromChunks [ + 256000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 3863909614874605471117, + 40648359854104395342155670334436315, + 67926626152545763385582714167881168, + 97456953543625620753899127559258247, + 82607008735167379153577507820221821]) : ℤ)) + (naturalFromChunks [ + 65536000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 296170256433636930537, + 66630312236551833493561182688790199, + 6592420113866089103834981083121999, + 69467143296029617178237254333184173, + 33713656595485136675368018626081107]) + (naturalFromChunks [ + 1024000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 333363201323075817867, + 31687272918839090125789612300645001, + 1166954169132719044158493534968013, + 62890785944223099129582144205997474, + 90230433777095280334927491780464439]) + (naturalFromChunks [ + 1024000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 10, sharing kernel reduction. -/ +def cachedPath10 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 10765216446638226850857, + 59299744066641916576448686407520110, + 84702330161375927295680856336342208, + 4516745507330992498489976621197065, + 81511408194208121910810941333273883]) : ℤ)) + (naturalFromChunks [ + 102400000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 6018505024411921763, + 17030749444711649401090166160001354, + 83388115444377136493465757028048465, + 72372814606718744507039061226771621, + 85261206054916356321021061778285257]) : ℤ)) + (naturalFromChunks [ + 81920000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 650840451921177077031, + 93038030793606040741970645022740278, + 42989991280547562838022103397091788, + 61237015064879275543251033445908778, + 10927714242048705550957807694300573]) + (naturalFromChunks [ + 2048000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 58020991744810199843, + 68507999215275411867922016848468589, + 36207505591585407971144829603117203, + 25831506287041077221720129610627196, + 15847080038091018522379721036807589]) + (naturalFromChunks [ + 163840000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 11, sharing kernel reduction. -/ +def cachedPath11 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 388141736688336868895, + 66984257106958467182590409196082226, + 95481003145049932367296596182226025, + 25677986066847416526982958324964912, + 41008523163620647626192920678433497]) : ℤ)) + (naturalFromChunks [ + 3200000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 1168758992281440224547, + 16287102208851664666399704791712721, + 47676942061864743051552440361261081, + 90874044232132797985332200650670144, + 580541931498526622366134765199423]) : ℤ)) + (naturalFromChunks [ + 13107200000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 221092429879427027330, + 88608008438198821562909998043439665, + 13047336253194869013295956424692359, + 53363047135120315900082011173485363, + 47675313688007582100846275507645983]) + (naturalFromChunks [ + 640000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 25020942119207618609007, + 65662086365274136324062902241613617, + 20230407829829238053233158295393339, + 19732129575996048464524852170204763, + 56414247462160268260580912159592919]) + (naturalFromChunks [ + 65536000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 12, sharing kernel reduction. -/ +def cachedPath12 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 1773731627147483191230, + 36175209239618255945472513069837148, + 86686865313617304064171377235314437, + 89468174345549440081679584819172702, + 69303600230459694542080597360087611]) : ℤ)) + (naturalFromChunks [ + 12800000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 434274526001465855850, + 40140375888482141794938444560415681, + 81298170686723382039329372006731002, + 36272032346813362557734848497153891, + 23649817013654428840899432451078853]) : ℤ)) + (naturalFromChunks [ + 4096000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 38110474596107811052997, + 22567448013227543795816574190045428, + 6148621739332637984916400807260212, + 3105445367900174250407320778460984, + 67721687845924257486180275393586281]) + (naturalFromChunks [ + 102400000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1673113596354495819892, + 99663859850762056945110856967538721, + 15315187268085034040526245941768117, + 88868877078658470159320662446010791, + 40266793041155812902529175745836119]) + (naturalFromChunks [ + 4096000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 13, sharing kernel reduction. -/ +def cachedPath13 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 2008628765280496405999, + 88041818710889025150991536031988718, + 67802598540852776870906963033442949, + 32376771739553337244108350073120327, + 8101166361721646485967471924171109]) : ℤ)) + (naturalFromChunks [ + 12800000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 2031497294957303917014, + 84974101791982474935481011792204520, + 98426372616984371284109496076401980, + 65348067744465036717049064033141828, + 55012639527231088679188109392017203]) : ℤ)) + (naturalFromChunks [ + 16384000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 10186092982599889011385, + 75445809284625668857234827446401256, + 9572922591564378539877611180619063, + 59863876662292155909697277164309157, + 49029987172795481332882145234705061]) + (naturalFromChunks [ + 25600000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 28452052022163414126520, + 3188857407044636447299600183732073, + 64570549278856232420072930604538885, + 83164904112139175558683749277586688, + 98727427902645257279661989958565199]) + (naturalFromChunks [ + 65536000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 14, sharing kernel reduction. -/ +def cachedPath14 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 722150173434592909301, + 58851046991353602091763548730853537, + 98680631631649365122309591599360436, + 72445330859530973155614348395162504, + 30169567161732563058636612092586367]) : ℤ)) + (naturalFromChunks [ + 4096000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 1171732991930521869823, + 37343757013793546654818827806379467, + 58313561677554029029079042684963043, + 1394828477275913674129295740057125, + 21868219111420349550885807779387851]) : ℤ)) + (naturalFromChunks [ + 8192000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 346175364735067842297, + 48277590864265851194901038690959438, + 40969866803779673682446409520025577, + 41104078294823259265316314539343406, + 37139012554037842050137668908985367]) + (naturalFromChunks [ + 819200000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 3758096417306143734854, + 49157986947996196645973836218009980, + 81801442549508901343781373774936220, + 62988791699570044998146115095030841, + 28693784905060628582225160964862971]) + (naturalFromChunks [ + 8192000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 15, sharing kernel reduction. -/ +def cachedPath15 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 1573401899376989857, + 61390673445606358559943249262846074, + 40485303902441957060259762088802928, + 29980996385309511029707993723591671, + 20430162592414247590508160529451147]) : ℤ)) + (naturalFromChunks [ + 8000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 85513475642321595311, + 1611388138227603773581264109809037, + 29910490424832874624738082855515607, + 97815095887290868761373883257814986, + 83728519998198042073066687725457571]) : ℤ)) + (naturalFromChunks [ + 524288000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 178471541349866931552, + 82080798306619057628694172953525409, + 51461411668440376719160952009274494, + 64011786424290545832853943329622757, + 49291117201164234567807063159973151]) + (naturalFromChunks [ + 400000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1264208077804334994646, + 45984056187109252142191193421006168, + 21654621402168520232087262712011627, + 31900409802051276593209813112534137, + 86912007640780707299131977850470871]) + (naturalFromChunks [ + 2621440000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 16, sharing kernel reduction. -/ +def cachedPath16 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 2232175522607699188225, + 91190032953322708632477580711179517, + 18198603757775366862712918851175636, + 52554716962569962340204476268256643, + 48709358495140720560234482012956223]) : ℤ)) + (naturalFromChunks [ + 10240000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 47144573986484561700, + 20393882355647221312919724009336554, + 18935012311525313090963907184081000, + 8639326835990205916958039686816462, + 78321641706534454926480214352213933]) : ℤ)) + (naturalFromChunks [ + 256000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 47990508228491983736890, + 82777188360891801519454862611393458, + 97118251705832496709509992986480042, + 96040507250019094751055079215951112, + 85280886769706192295013734428061719]) + (naturalFromChunks [ + 102400000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 25836464706022605256, + 22509887965423031993705386895346402, + 37478877332775466019282535233622298, + 15550952670072662534870817639365081, + 8902297904708943185834023894469691]) + (naturalFromChunks [ + 51200000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 17, sharing kernel reduction. -/ +def cachedPath17 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 6148896072700788812949, + 53043421946390568404884368544093008, + 78958785753223498876364649105232574, + 71290632492409024233963674357743240, + 45501385942277855477573264461473913]) : ℤ)) + (naturalFromChunks [ + 25600000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 6755149746078905205046, + 28811037024431407510219365078312336, + 76658383922927573992298460543320860, + 53378925909911150600872596743289554, + 15594343672769671009892433651174151]) : ℤ)) + (naturalFromChunks [ + 32768000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 313582638106586757705, + 87372461386231909729904051768169255, + 93832339306618535561602351534722481, + 17396715823787651057097928500086174, + 80862350746552740550298161258652403]) + (naturalFromChunks [ + 640000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1722931461148887366510, + 46409158181583098086856385010171943, + 65411799477445493270226484209591504, + 52504702741971018918801514136857410, + 10006424262474222625926664492887733]) + (naturalFromChunks [ + 3276800000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 18, sharing kernel reduction. -/ +def cachedPath18 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 26956076469151142512381, + 49866755369027077396387222904166349, + 64686367075487352613288857348431751, + 22591177282038582248518256987764101, + 77830896854799858276659869424597243]) : ℤ)) + (naturalFromChunks [ + 102400000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 3752476427667790480364, + 70645451745216788284098881576421063, + 58888219615823033835494844744798409, + 84305029134523970870708510923637953, + 18092139045718317015403128802538637]) : ℤ)) + (naturalFromChunks [ + 16384000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 52232948799621723373687, + 97740482995519195309788825469980642, + 4716579278934641305838724815833601, + 15259250362978229305147952254142814, + 23930779926923549256356963352108949]) + (naturalFromChunks [ + 102400000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 4470827035596881257958, + 86961292595799761390584647742694265, + 26232252001435539485088086711004455, + 89975776386155454364118256180248451, + 89268163566843973969280851164826807]) + (naturalFromChunks [ + 8192000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 19, sharing kernel reduction. -/ +def cachedPath19 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 73495325945139818809, + 8306371050718563749998178032974320, + 33501377488505376525542559208090777, + 49474525788223448235415596534377789, + 96013070524635323176719248601235113]) : ℤ)) + (naturalFromChunks [ + 256000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 16564588421182096012176, + 29273864383361591221571777624871588, + 20641942462953251634759374321949101, + 23911874168868967341875742603229148, + 16128655578108919788171346684036691]) : ℤ)) + (naturalFromChunks [ + 65536000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 27082979284001047506, + 79559520492811177479762935518293604, + 63949262813513831368097858266552329, + 65635176247659198607447324192713447, + 26455732627678590531196400719831429]) + (naturalFromChunks [ + 51200000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 289002363685836856899, + 17527026093291510038295223648736736, + 85271027410740226881270884576939535, + 83954866806232751564042949776919242, + 97837979159043726499299779485472231]) + (naturalFromChunks [ + 512000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 20, sharing kernel reduction. -/ +def cachedPath20 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 6383300875517254031192, + 29131494420264809031195032822421161, + 82700393794748046111940805113088212, + 41845293725036682366573040277997876, + 85112712985090380754514866912717999]) : ℤ)) + (naturalFromChunks [ + 20480000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 45427533799981145858, + 17953586887851602939012078609143271, + 12949960118367039099434387728043027, + 41958000804686948437166022867217953, + 29216245456445894150979303716934211]) : ℤ)) + (naturalFromChunks [ + 163840000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 13992176165349168127972, + 83856438909825257690323117211977158, + 71687832787594844182089566373415837, + 5686253870847922247895428866751799, + 47367000195086438325264253866482631]) + (naturalFromChunks [ + 25600000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 47666841691201280669, + 55695454142107537182683935505704275, + 18006844203933817590497298518268947, + 68498735306032288499334897180644104, + 72115191142903246332754968347275817]) + (naturalFromChunks [ + 81920000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 21, sharing kernel reduction. -/ +def cachedPath21 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 431322785493072023787, + 56599427004958405722851738981481554, + 3384495675567098461980779425235168, + 5188460070626790897620710851323643, + 18763100099683038942106162392653023]) : ℤ)) + (naturalFromChunks [ + 1280000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 3965151587818684362262, + 94751912373538557491256839435816527, + 71181151810458439208200293840752877, + 36536264412921590864906946192054462, + 53257345090778891246698910753912169]) : ℤ)) + (naturalFromChunks [ + 13107200000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 7204728572088139345589, + 79024545077048721515620566775608790, + 74705170721863916571618142077828695, + 48213159886109202965179325337537991, + 97490990118691632549838940501890353]) + (naturalFromChunks [ + 12800000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9797009015704454333044, + 79531328010772785133822223168203504, + 55555474198942598713408721457461837, + 12673798127526764858314469522941493, + 61383687717026893520715691959243299]) + (naturalFromChunks [ + 16384000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 22, sharing kernel reduction. -/ +def cachedPath22 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 7432116517734618500798, + 93762291373445073759496636164725261, + 48065959727405143181300388384062330, + 90025766802837099493707177047597270, + 41875785710555023943980535691796973]) : ℤ)) + (naturalFromChunks [ + 20480000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 2690664215580521882457, + 8621210847716537766938969675171070, + 42829090155427542736073778285756218, + 32035517854597147101577588497096984, + 98899547702258424270356703570598241]) : ℤ)) + (naturalFromChunks [ + 8192000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 59170165059194991306530, + 62513249769526416741865203352728492, + 98237134454343858181410934094382458, + 19014127533375934479135993784516078, + 11676782152962256292537976344249187]) + (naturalFromChunks [ + 102400000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 401540232308970637289, + 71957584818052195563077915556536227, + 50857577687287708582644416149596137, + 98501216961056532077278540375472866, + 62043058645309070670626166162915149]) + (naturalFromChunks [ + 655360000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 23, sharing kernel reduction. -/ +def cachedPath23 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 311524683689077264076, + 81865832439147061117839984178997685, + 50586424143718922702154526372735043, + 65002669484641632410342495227830606, + 68183280954699394374852966183255519]) : ℤ)) + (naturalFromChunks [ + 800000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 1454130764090289837339, + 80087964315861009545481612666624919, + 79757576261319729592487442773874219, + 88594085886580568798190957097675234, + 48573394307380205278064762344761647]) : ℤ)) + (naturalFromChunks [ + 4096000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 29571653763547763974, + 37519747249989126270084668660719189, + 47928550782524185138035854584515490, + 24783589875666482940303231198041709, + 36720058144278890294853221355302129]) + (naturalFromChunks [ + 50000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 41029595577706048530349, + 68340607272369226115598963398150844, + 41502464298175621172978543202541514, + 9716158378904356395067473110130294, + 46472184805117273614742091299973859]) + (naturalFromChunks [ + 65536000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 24, sharing kernel reduction. -/ +def cachedPath24 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 68230104524419658859, + 3710018708085601961211588192614519, + 84719400461408904752799797939644498, + 73402860115551976871940859828566932, + 65156912367605957567924221548286637]) : ℤ)) + (naturalFromChunks [ + 163840000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 97829798387851889725, + 59693060005088178349348158273886876, + 5983367253201647876129139448652466, + 81855465756118828867565142653836040, + 73895300861281584358526124751061481]) : ℤ)) + (naturalFromChunks [ + 256000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 98900495310502982360, + 29947821290084573791962464607669732, + 87953102054601526846580069211511667, + 1365590475649153559773357988948831, + 81931142070375210687381955343034307]) + (naturalFromChunks [ + 163840000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 81666103229825782382, + 44915206810025307319170317505802327, + 32432750801747532264219951780762419, + 34121066514689279195213992138260298, + 16053739472581819338905830015984959]) + (naturalFromChunks [ + 128000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 25, sharing kernel reduction. -/ +def cachedPath25 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 2273035225321697952023, + 80779446263128223074618891179067779, + 75772731684221422477462013180320621, + 28702581762506875003691180955447801, + 67549939675737803575799401258684339]) : ℤ)) + (naturalFromChunks [ + 5120000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 21485268119185817861, + 7629542580321023468912116859403396, + 29257650911934346579814917546276952, + 40836213232775692138446652035476381, + 30958237619418358021179764206263731]) : ℤ)) + (naturalFromChunks [ + 52428800000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 7864724439432997294651, + 65660774943433334157277551864757897, + 26549610611022141140843763350181339, + 93105276316741746818811720060394398, + 30984780313361542265556932244536979]) + (naturalFromChunks [ + 12800000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 68004474492341669463, + 26122830130631861841938880657614502, + 70424812979247918609585316059100120, + 22590215519708530283359232084542963, + 49173423578136672004622928618214973]) + (naturalFromChunks [ + 104857600000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 26, sharing kernel reduction. -/ +def cachedPath26 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 386559050735951328428, + 93860253269995947760667068660819041, + 55832417161228116891869017173574073, + 50866365672816566287113469711448389, + 54678889780552157407435810450991959]) : ℤ)) + (naturalFromChunks [ + 819200000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 1434937896783106078200, + 59837873105880821029753500423892350, + 46883270872549022778880941131262379, + 32073849385708394435928305921846717, + 87395432974093925440676251287975507]) : ℤ)) + (naturalFromChunks [ + 3276800000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 63875358401001909129984, + 53931875469103674470904999909821618, + 20280316461203537408057328231977250, + 46775415376695493454704764317128611, + 25074892422465531369740415912627057]) + (naturalFromChunks [ + 102400000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 10774353128052990596664, + 86416535155033626126722231447149571, + 60117012165770299347635001926095565, + 48528175529105605724925051284711865, + 58625931480763357258191677872631807]) + (naturalFromChunks [ + 16384000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 27, sharing kernel reduction. -/ +def cachedPath27 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 100710, + 71722422228052535036734160717951499, + 42069078062123627069531182627031188, + 60431569588115081772421647447206221]) : ℤ)) + (naturalFromChunks [ + 200000, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 18525, + 51271337754643255148382898432441303, + 34014299681814911264804038180437217, + 55598380712549504288585707822915881]) : ℤ)) + (naturalFromChunks [ + 40000, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 4022053, + 77416366696858139556873172408424940, + 79924851481875114027458417550002170, + 34057053097440188372375809026152099]) + (naturalFromChunks [ + 6400000, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 4275306, + 20792989124941816891545250537159438, + 71482972875293744656267212392707172, + 74890077329955155725363858706138837]) + (naturalFromChunks [ + 6400000, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 28, sharing kernel reduction. -/ +def cachedPath28 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 106444, + 71744953679696011782194578058509761, + 28035999862186441429009740137354524, + 55943708561620240215135912314082437]) : ℤ)) + (naturalFromChunks [ + 200000, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 15740, + 8776750732905718839524000408044492, + 99632166219777093229462388845919239, + 70796128024550735631231214963854567]) : ℤ)) + (naturalFromChunks [ + 32000, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 253825, + 64058481427245968592862495904428802, + 74663502867928339362798909724833356, + 11912099252696050870015849165168127]) + (naturalFromChunks [ + 400000, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 539518, + 65313367049853022234902972594033713, + 8806996846566129895374134291782278, + 17196073080542759291747212267703029]) + (naturalFromChunks [ + 800000, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 29, sharing kernel reduction. -/ +def cachedPath29 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 89777, + 55072345144042668244602106782333374, + 94731070144562590808464065036350402, + 29965644846821098710715917405854081]) : ℤ)) + (naturalFromChunks [ + 160000, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 666645, + 1171114820531568089470279569241904, + 54693932395102532299204730188616454, + 52407016948570446094514425857577827]) : ℤ)) + (naturalFromChunks [ + 1280000, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 818124, + 19421896421628635293000871486288819, + 76388621254444552878242434497475770, + 38060824003142928695543674529583673]) + (naturalFromChunks [ + 1280000, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 217341, + 31536488008256338931217996649598166, + 30981014634211552498131485054543784, + 62955665460692692088623299896984261]) + (naturalFromChunks [ + 320000, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 30, sharing kernel reduction. -/ +def cachedPath30 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 472122, + 27345801840505864683752565458625043, + 340765445130149541613146265145124, + 25488894246904112308449638971592661]) : ℤ)) + (naturalFromChunks [ + 800000, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 70386, + 51776643102131349176530360857896298, + 79131142730744996451010861490057546, + 22223031733375280889558616807561627]) : ℤ)) + (naturalFromChunks [ + 128000, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 256890, + 54877857413562604335920363182883048, + 56113696613416722526159793535269617, + 80194738117956331104947460921687699]) + (naturalFromChunks [ + 400000, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 545912, + 38121625321411199307989203679242465, + 8310504212414468291325709056123391, + 336853041636457322733126202333951]) + (naturalFromChunks [ + 800000, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 31, sharing kernel reduction. -/ +def cachedPath31 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 1548, + 23451984757618522483743068889538775, + 2467044525233695220466329701764808, + 13030059661837812627229581950797903]) : ℤ)) + (naturalFromChunks [ + 2500, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 741188, + 10428913847327982246365640472463594, + 37223266166343662856610535550156216, + 38829505429891035371828895235774909]) : ℤ)) + (naturalFromChunks [ + 1280000, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 4120068, + 88587496638281270192440342247918330, + 852068397896095040199119774396422, + 79684037861133912448924813205371683]) + (naturalFromChunks [ + 6400000, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 4377541, + 82957527272248733233379179755066150, + 71402981636095666726216332865018091, + 20707916364849404817370397513298871]) + (naturalFromChunks [ + 6400000, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 32, sharing kernel reduction. -/ +def cachedPath32 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 1037557, + 20381538224777594765266198263867591, + 17355344825998510312127185975386422, + 19010784226342049402859228835237643]) : ℤ)) + (naturalFromChunks [ + 1600000, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 6082, + 32650921472863019893610369745587324, + 87027570329937475358145268319359999, + 67679932552720075109023094295453559]) : ℤ)) + (naturalFromChunks [ + 10000, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 206003, + 44429374831914063509622015054768728, + 55276994246074772276377295948882947, + 38179827455483014586016497717007069]) + (naturalFromChunks [ + 320000, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1094385, + 45739381818062183308344784394971508, + 83458021763788356837982250938260234, + 49082253023200486240710766338626717]) + (naturalFromChunks [ + 1600000, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 33, sharing kernel reduction. -/ +def cachedPath33 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 27105, + 27155241043932392696664843446877106, + 50354511670250788480004983656385382, + 56990910931227646574861427579691257]) : ℤ)) + (naturalFromChunks [ + 40000, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 815838, + 22980861482340674564574493531771712, + 94800799591790395897536460124431280, + 15716935301933724021892220250268897]) : ℤ)) + (naturalFromChunks [ + 1280000, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 822049, + 75609143723400333874945137498657250, + 73729894201134539091820954320725837, + 38537948222578738727711283411367437]) + (naturalFromChunks [ + 1280000, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 4367299, + 4973002571289594463913502933804126, + 765491218844505831266316844074914, + 50292332714913081064053457711124621]) + (naturalFromChunks [ + 6400000, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 34, sharing kernel reduction. -/ +def cachedPath34 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 226147, + 21390757401654622492277079674082469, + 30163024462876945293415825142433941, + 64363150663990668544077633154881581]) : ℤ)) + (naturalFromChunks [ + 320000, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 426506, + 73077691637404356050880871492442174, + 72191980451911471149162489950729374, + 79179700669322613733030819794165769]) : ℤ)) + (naturalFromChunks [ + 640000, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 409062, + 9710948210814317646500415179265414, + 739276934016533677155708834300459, + 38717100103909717517868281743284367]) + (naturalFromChunks [ + 640000, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 10867, + 6576824400412816946560899305607678, + 948756152874816408148517313783160, + 64178612778337557259232429562576461]) + (naturalFromChunks [ + 16000, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 35, sharing kernel reduction. -/ +def cachedPath35 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 18391, + 21790314748260181728078487908628352, + 13221599473533026755052808740851754, + 42819733087419604316361358437656289]) : ℤ)) + (naturalFromChunks [ + 25000, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 177997, + 53513288175419116530506659247824450, + 50634414250675474978678305401995017, + 62828540394903469587928314344297931]) : ℤ)) + (naturalFromChunks [ + 256000, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 2030605, + 12467851417967748742899823374996283, + 74418666746470078202535116915796006, + 79808973208004414171127008899367409]) + (naturalFromChunks [ + 3200000, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2158074, + 61253468199412088939611742940784153, + 38263522231899227350465390975518044, + 66441686576767014574220099412652673]) + (naturalFromChunks [ + 3200000, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 36, sharing kernel reduction. -/ +def cachedPath36 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 157650260878099320243, + 77877183835544861117453291204457878, + 85408826503185095076290249776113065, + 56338317715966295383843926844190705, + 54063379152704294116189504951559771]) : ℤ)) + (naturalFromChunks [ + 204800000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 2944527374203468901935, + 73418658657466729713988915032841429, + 27452335493026361108700336829728293, + 2352474002776145182751284289312870, + 74349856918070432957517775957957047]) : ℤ)) + (naturalFromChunks [ + 4096000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 31995384474996649030920, + 30982370731303358225852993965188042, + 57786581883320588009296983500155874, + 78279139001959409928903376240709002, + 71736359927529675093500875116198311]) + (naturalFromChunks [ + 51200000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2753291354746011280217, + 92137331557403889246327384849983287, + 87643888223871324018867139235900343, + 39952227844095517663775256005116018, + 55803892166959366738336404579319193]) + (naturalFromChunks [ + 4096000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 37, sharing kernel reduction. -/ +def cachedPath37 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 13085741654074134269776, + 1707740814580816308858624218147761, + 10586530483574567377783177782449970, + 85464263175550897348181033552398662, + 55101101011774827779589093218772079]) : ℤ)) + (naturalFromChunks [ + 16384000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 9558378885962762387558, + 92529579844214364227344025520042798, + 53025129524144499922517865350529380, + 70255581650820681934789214371770310, + 25610589354628624289781311565119499]) : ℤ)) + (naturalFromChunks [ + 12800000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 15796594000328278354811, + 4806842944676444889692661186813701, + 17188049668106790986154225185769722, + 51290900371701866475946425238545154, + 19537735839780775892090405221462671]) + (naturalFromChunks [ + 25600000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 21776409721634122234757, + 85765475947541595980081949119086403, + 36410766429321241702119140339133286, + 18158245202580975878649676448499776, + 69968545950001021423433392167593871]) + (naturalFromChunks [ + 32768000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 38, sharing kernel reduction. -/ +def cachedPath38 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 3388245014781300975675, + 62257780396155028107572725815834243, + 79605526765556607257159114066075160, + 53458880396600943367472701738966522, + 99811072926611660865191915110308823]) : ℤ)) + (naturalFromChunks [ + 4096000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 15856849343285038121097, + 21335660177827266289372394922475410, + 32353301978731273911042184450596208, + 52565989780522737971663069774584053, + 55958672018940696425292920070853233]) : ℤ)) + (naturalFromChunks [ + 20480000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 62234059691033561205202, + 72041491975324071202667201957781561, + 40488269595395087680097267140261562, + 41944073624348685550025871544939687, + 51518162853490671913188410094879277]) + (naturalFromChunks [ + 102400000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2147775196323453072477, + 12080543567950122671501329245521788, + 70551249522013375517987908675331295, + 84559345963399853657792798252786655, + 52654409187657027218125608568912411]) + (naturalFromChunks [ + 3276800000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 39, sharing kernel reduction. -/ +def cachedPath39 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 7006380179505396340401, + 26591034675492979700690500474508639, + 72925296017885390679453357256060938, + 20774394996248112906989115061316339, + 71566095562074281428499310135888971]) : ℤ)) + (naturalFromChunks [ + 8192000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 5128677963200454349, + 42652589724043692268324409396339717, + 67644942894425804576402185090826651, + 37901527079252080862568026861272062, + 42301357834304252210273270595382177]) : ℤ)) + (naturalFromChunks [ + 6400000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 597030955646730910, + 4518838282687858670956353430855641, + 2837082848479040788814812047680624, + 80215994492834686912530087027551208, + 24034863560506258813513243395950341]) + (naturalFromChunks [ + 1000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 42262001779426669296770, + 83370691679274566788010351722341093, + 25529337445357597648696356226010463, + 32948024434572673961575707866688863, + 56067163497323040407316462812425513]) + (naturalFromChunks [ + 65536000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 40, sharing kernel reduction. -/ +def cachedPath40 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 36160306118857710882, + 5637364715452318846181583026935750, + 65994035601950159937052876687844090, + 66620789810865566670384141816717892, + 42889012909875150037302349889175209]) : ℤ)) + (naturalFromChunks [ + 40960000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 42392471525259002272765, + 98497625433815176813013519398764759, + 79997446803030558650552850096755195, + 40429479525172061992291781353866063, + 92414253188762505333920506346965707]) : ℤ)) + (naturalFromChunks [ + 51200000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 11978893942808972830606, + 36739675436558411121279413558673518, + 92338319843915562704176182731675689, + 69886701125460575500497427411269169, + 8797979497755839010486854871716501]) + (naturalFromChunks [ + 20480000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 12960543596711541739, + 68716410404648112988552785205398062, + 92144207255726863406181658992288210, + 25803750077843375985321827072164013, + 62254430007761006508875765434759847]) + (naturalFromChunks [ + 20480000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 41, sharing kernel reduction. -/ +def cachedPath41 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 59624491974566283933102, + 82547220559936315181955057616233508, + 86429527491057069340402326136849956, + 92268404683545009733566424318178944, + 72678650790114615252734176824129619]) : ℤ)) + (naturalFromChunks [ + 65536000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 10932093047356330136971, + 9696759512862818178266377510251090, + 32134671497289089611679498261973339, + 30178901499109653244739872845361679, + 88390514781426934848327838990545399]) : ℤ)) + (naturalFromChunks [ + 12800000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 7314016486177454451940, + 95937799647973067723765081269277736, + 26983114173056975045466954039518194, + 13748801857053647035388932557238911, + 86147570199010292928060413920106303]) + (naturalFromChunks [ + 12800000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 10148070266148323980082, + 18023060885212154755876893073643680, + 45450828997018946703879364114695361, + 74817629414783409651610861273106753, + 51717065852373876182065250581819883]) + (naturalFromChunks [ + 16384000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 42, sharing kernel reduction. -/ +def cachedPath42 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 7668918286564322679689, + 9352599576170392709293563228818052, + 30179754261523247850192644312643956, + 52362071461116693780421485311512892, + 89279188531735054053690373980524333]) : ℤ)) + (naturalFromChunks [ + 8192000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 90068570023718357663162, + 65524347277540766694871527812740147, + 99333196312274416093445656564252617, + 72690538562106212467477997881839128, + 51086064377181974217262512486170671]) : ℤ)) + (naturalFromChunks [ + 102400000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 28495867128803959300327, + 26163041370325280163063847273374332, + 3209929424656591702633152350833764, + 68656394173078496353596419806842287, + 45868761308054199345187540466626551]) + (naturalFromChunks [ + 51200000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9904831318221862012534, + 50905794324561024451615961636933478, + 79207383237093218573890891722618781, + 38125139494542634661757462080484819, + 55303660877500939781949538329617873]) + (naturalFromChunks [ + 16384000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 43, sharing kernel reduction. -/ +def cachedPath43 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 7879178388149477673746, + 23714673916456777669685937995870527, + 10545171267936721742260093570952531, + 83095828373908876865982289055582915, + 65730978145220111651927232365375147]) : ℤ)) + (naturalFromChunks [ + 8192000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 1157685667064592245728, + 49828259997210687750039367447408573, + 88604682248001454789638479975678175, + 86060921589098163162873101250266023, + 56250931209511387448426599233937467]) : ℤ)) + (naturalFromChunks [ + 1280000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 216157248190062554479, + 71785053818265652223979546824576430, + 76538378090938234336923342683059768, + 14250195768537990973036583127359109, + 18479952534475768060907467061622801]) + (naturalFromChunks [ + 400000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 38556703137517870211117, + 28241724684927075716250640065144502, + 57720915238635422114559816095869955, + 96042046875150346981580176867951899, + 35505717856204925869704657360521887]) + (naturalFromChunks [ + 65536000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 44, sharing kernel reduction. -/ +def cachedPath44 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 505212415317868294538, + 50211467016962255326024614023257326, + 66981110742508224011555354486321043, + 56476770122811380947738989290375097, + 77582920687818381268977858681743971]) : ℤ)) + (naturalFromChunks [ + 512000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 3803605970039735401272, + 72145347326947618237545474684673909, + 56928945374755982658264895716101313, + 31803122109492817865433432527235195, + 77794107227009722635424036662968813]) : ℤ)) + (naturalFromChunks [ + 4096000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 2141954827079049538394, + 27639236917832832044482705046802756, + 77253700858583690067036036199108468, + 88790303745620361460471883435053948, + 52663687011200192143889685329791313]) + (naturalFromChunks [ + 4096000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 584474609222468956590, + 58905073657357212545258259266027752, + 26942537469885083847676325235661881, + 78856820038651330485557574638873692, + 46292422660751355963068226877845179]) + (naturalFromChunks [ + 1024000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 45, sharing kernel reduction. -/ +def cachedPath45 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 2649966872698085003432, + 99273626753215562186566571228357382, + 44211785454541797674607812071472944, + 64593253396544484079453272548864777, + 6138136071829232871078471374530409]) : ℤ)) + (naturalFromChunks [ + 2621440000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 24372285137753689855826, + 86409123090265534706672834197570492, + 80495670025600713919364203079150146, + 46909900536807392155913195672728113, + 23013681544175995100353056511267931]) : ℤ)) + (naturalFromChunks [ + 25600000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 12908236509867806135982, + 24405113202977992091996386183512872, + 7347215579436704568971982509727907, + 51917697256365602987645567880147497, + 20723926776211771775388129903317057]) + (naturalFromChunks [ + 25600000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 723408550138949514911, + 51054859033676080415227491800102356, + 1853793193088089386983222768366205, + 67933245721963854464881836676503061, + 78864150468167902422453221477050403]) + (naturalFromChunks [ + 1310720000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 46, sharing kernel reduction. -/ +def cachedPath46 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 8472000394770787861028, + 2665536894607534478167324040939957, + 90085702472351983988977353805875365, + 40372119564336809430230185470490439, + 80620696047447523449649303610982639]) : ℤ)) + (naturalFromChunks [ + 8192000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 99806644543929202256362, + 91556188147150478662833102530468523, + 9753752197400458595687344685903683, + 37579992291173423103390901427802553, + 69404480549133793329741677048669969]) : ℤ)) + (naturalFromChunks [ + 102400000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 49592034369823818580422, + 34667425687438318739634370691310607, + 68547011140961530710105652862218337, + 44359651950619047364576791908808164, + 79006900321058864968721496978135957]) + (naturalFromChunks [ + 102400000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 272273988974513452729, + 76664278446186546275125135494686871, + 85014858795928474065043429435580073, + 72931283928705849307596020749146835, + 32772759217420412222349767430958437]) + (naturalFromChunks [ + 512000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 47, sharing kernel reduction. -/ +def cachedPath47 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 17311100997464031881445, + 1512344220772055950560395149915447, + 16116332505401731781570101989325900, + 20897977391904366721180889633953509, + 70906311868029514423129786747076429]) : ℤ)) + (naturalFromChunks [ + 16384000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 39858444972835500800, + 57018352083868226106314877565159042, + 16832487704410403187344799405406145, + 37596833154004124356891301865804278, + 39076000321679708747565563543634747]) : ℤ)) + (naturalFromChunks [ + 40000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 37054585605281853954, + 94915339884404304339119805910159131, + 36396236373999104738310437920257421, + 12437246976726412883316301516375859, + 88718647538119505660283673844534681]) + (naturalFromChunks [ + 80000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 16725317056024294295559, + 77034318343739309400978069538019864, + 95615820602912051382268769443385630, + 90296848652607106485154043933012904, + 45892241938224594282749322505985729]) + (naturalFromChunks [ + 32768000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 48, sharing kernel reduction. -/ +def cachedPath48 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 275981217681435378862, + 86619130979711065865052112704629290, + 84634547757417395005440610964719260, + 82934756496722231909479808215220524, + 12122757196464645819591082423394779]) : ℤ)) + (naturalFromChunks [ + 256000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 13022146108334202659600, + 61687366393398644740428741388576365, + 87356394020849788304998433341014883, + 73243083608818824479047713621000212, + 36880174613750086299745333662297679]) : ℤ)) + (naturalFromChunks [ + 12800000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 45150361306281488147735, + 94224690673439145410284198439667332, + 67694304580166197059409903448335114, + 52859201600001340710079618836587823, + 48280367670439693521216150398367587]) + (naturalFromChunks [ + 102400000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 4995556961198896662, + 76610657888273821370146691095609852, + 41621384411657579053042638689649666, + 37077681604945017607115854269328256, + 77774981353087221497454858704972097]) + (naturalFromChunks [ + 10240000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 49, sharing kernel reduction. -/ +def cachedPath49 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 71993284149943212616658, + 97099490456612209913860422673534614, + 97964111359791215592675078898571154, + 28204840341701991238585237533028204, + 4665316128572012761507436991339023]) : ℤ)) + (naturalFromChunks [ + 65536000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 42488220324628514009, + 35738382166792831036049248306933591, + 95681369709997401681406271575757441, + 95481092383957032676419720956763770, + 58074866801741818163395943711773391]) : ℤ)) + (naturalFromChunks [ + 40960000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 4275758936002020188, + 63375988869887781459431726228500339, + 44628594077556808294419735106435159, + 81216750618248984389030957476883755, + 5627553881252710983505717429428701]) + (naturalFromChunks [ + 10240000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 15208210740232113699496, + 68493925350317657180141097639558021, + 99944416878430663157971220944245843, + 76917173107151541378507664010532663, + 76154619888679762733143406056433321]) + (naturalFromChunks [ + 32768000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 50, sharing kernel reduction. -/ +def cachedPath50 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 29307081218630724415, + 80430592264357168198119289665091910, + 12034387977291587567826251842157099, + 93110922645113395920887621734524031, + 38930225913411758723380740217608283]) : ℤ)) + (naturalFromChunks [ + 26214400000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 108163180183189475643827, + 25549384594879428175351783936800175, + 56466592596719639860898979988625645, + 24417204935529484086378145612724161, + 47289449639005726591578868873234177]) : ℤ)) + (naturalFromChunks [ + 102400000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 20127898947040552111019, + 16213136189845430568926329312694187, + 71304509393861978260060093665311672, + 26501755357712753992712139300445255, + 15315969047664909556137812603846479]) + (naturalFromChunks [ + 51200000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 5757574789943071342, + 13393811773274506708685529580597747, + 76739018115844315809213323172749689, + 19701315615203688644934297900707542, + 17454811849992515369678321983529931]) + (naturalFromChunks [ + 13107200000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 51, sharing kernel reduction. -/ +def cachedPath51 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 1861789442860452858052, + 37525670196665161410601596030472595, + 74195387808184084220935328394729863, + 58360803492354401315992514247453685, + 44044378386369864244309468289867267]) : ℤ)) + (naturalFromChunks [ + 1638400000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 6875039738607663470993, + 68055020551644687732198428785777321, + 99128782006745908568032578798351692, + 82902667640438661627154410285780134, + 78933966096920581771998575869931393]) : ℤ)) + (naturalFromChunks [ + 6400000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 2353086842178169546350, + 34182377096921935559552742894014476, + 39201710421975555257206922422686458, + 97562116398243036094073361828868317, + 6534469126379371925997495371079853]) + (naturalFromChunks [ + 6400000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 13544348377143453411646, + 18177972451653669979422730866805892, + 72597721025586188040230125583174036, + 52766344123903491694231185064347674, + 53216195051668262858705627367822151]) + (naturalFromChunks [ + 32768000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 52, sharing kernel reduction. -/ +def cachedPath52 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 2362567135595058373067, + 79146255403379597026328502579953079, + 68421356139909629911851834511996783, + 45719972557172012366800070712023143, + 58820123729708530443484881700403439]) : ℤ)) + (naturalFromChunks [ + 2048000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 13966083178290418210331, + 96126169696089460106517877766753560, + 85248533127098065360131991933703069, + 854203439712620730209737427584982, + 59179652572347895401779369488827973]) : ℤ)) + (naturalFromChunks [ + 12800000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 6988583791290071667195, + 49928742147790508645321146377384150, + 75426375740615352401675989428196315, + 42601120959721244617955537273518334, + 72740970265481089186556127197612667]) + (naturalFromChunks [ + 20480000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1582610411666785026245, + 95288658565463839607726946171383040, + 22896685612447778725819104221928348, + 67913818017450811474166838137633790, + 12850677809462307682975440381537859]) + (naturalFromChunks [ + 4096000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 53, sharing kernel reduction. -/ +def cachedPath53 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 19164192308501195176730, + 49730122551557770670473019875089675, + 30691583688146243136579503846280768, + 64728109512060421590601469029854805, + 15797315631581253513621188725261721]) : ℤ)) + (naturalFromChunks [ + 16384000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 1416789883055958606153, + 54065828925476856714357397251893026, + 78368486010663540401489265647580244, + 17966558365555546532205866471159716, + 1317816718938404836221035893849017]) : ℤ)) + (naturalFromChunks [ + 1280000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 8035271800160913109973, + 38500510846430161546365406016310841, + 44742895495566306637806878690220600, + 6640410991488991474351745313570233, + 54767044531080527081559116378247541]) + (naturalFromChunks [ + 25600000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 23490058084259180072820, + 1516488527900369035709955826877710, + 23991563544490884038658282362514016, + 89288770638214613208139798889965964, + 68691802325192982237427355700859099]) + (naturalFromChunks [ + 65536000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 54, sharing kernel reduction. -/ +def cachedPath54 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 19408227985754104559635, + 8396324328521525928134306385747216, + 87139152456209524296278577264112978, + 37474120520085124558449065157410788, + 60355706230284863020459636448069033]) : ℤ)) + (naturalFromChunks [ + 16384000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 35887597459077945473, + 59035212923305063461215666296455650, + 92005749006915165436833750201274608, + 57460797406582414793243334993166877, + 89172572889006383593751743229969143]) : ℤ)) + (naturalFromChunks [ + 32000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 1169949385766368642493, + 15619656802541891056022752247159386, + 36991108023943947733087845255336015, + 84726614262493445545688641342819049, + 80209377524264534094747826981637327]) + (naturalFromChunks [ + 4096000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 5399159943562120680457, + 47477558985996245565212371678229073, + 98596008763272863910814866964505341, + 61043410630469080719053047038055160, + 29276213552181227154041549550355293]) + (naturalFromChunks [ + 16384000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 55, sharing kernel reduction. -/ +def cachedPath55 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 3141126728033232139300, + 64433709273365123641076652943456198, + 38237652440255962047204367230007711, + 10962127756509147014114748288147563, + 6638630291687101485472293632323533]) : ℤ)) + (naturalFromChunks [ + 2621440000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 907939944361995515657, + 62104033544065297279192978383106796, + 26824475805742319319759258436661448, + 84800465760849910768572062524018572, + 99150079727612104064270838751869299]) : ℤ)) + (naturalFromChunks [ + 800000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 410481792508244094258, + 37437527439361368769059261307906714, + 28558060276409424485467883250747904, + 77054668705147774032497475256810071, + 65436848316672757445121948944023519]) + (naturalFromChunks [ + 1600000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 392893398411529813972, + 29422772376653529920942085353092201, + 59006719482609845780199983468598448, + 36267306121028127479704529278197436, + 56827690490780014032667461219173243]) + (naturalFromChunks [ + 1310720000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 56, sharing kernel reduction. -/ +def cachedPath56 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 247938289843843481706, + 87972967728677912801209050476587008, + 73996445291204324188419887357768491, + 10675039180128071640268490241818327, + 50236178533167617809229070901382781]) : ℤ)) + (naturalFromChunks [ + 204800000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 14683458153830003704904, + 69646805199971480692106625580355812, + 6523328941128642934926690503153143, + 9272242886390845438931150544463141, + 54684817919758799937296519304779131]) : ℤ)) + (naturalFromChunks [ + 12800000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 11606243571831659676745, + 63916517908471891481559286566749837, + 87629564580066460276723997717623838, + 67642068872609652266539598575592867, + 54111965568185015171691497722774567]) + (naturalFromChunks [ + 51200000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 137792127168248826715, + 95529132471145098400729089727287115, + 41567730914177240086907325208714506, + 33917053708245402416328235106112739, + 17773058008440909251614960282670999]) + (naturalFromChunks [ + 512000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 57, sharing kernel reduction. -/ +def cachedPath57 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 80067006011017004461286, + 1796391837515470644568159494326366, + 30955463005646480206256370460884923, + 61330182251842024652621971430645627, + 66963203290414428546674718193511439]) : ℤ)) + (naturalFromChunks [ + 65536000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 7411939527323301962829, + 99810774970572544608625822283237291, + 93343113147993040686831867199618724, + 57921030378128294595617217251247964, + 74808189927179389982575801908700929]) : ℤ)) + (naturalFromChunks [ + 6400000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 5019727765136790482313, + 23217892944513224113929013455933640, + 72507099784439513525018974913485235, + 85194440258981594059741435461348076, + 83936762323367696968108607654401011]) + (naturalFromChunks [ + 25600000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 7789065877333308284904, + 54737189541097368458695265351802718, + 41135777746979912138288052060510952, + 27066361141533621168199516304976736, + 2847598125027115477645371663448341]) + (naturalFromChunks [ + 32768000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 58, sharing kernel reduction. -/ +def cachedPath58 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 10088299575335840431240, + 55205804665072096782588160606672331, + 11638969101672594796819427669537107, + 98050308332084005555475167798696904, + 96865471851587102571918776114254837]) : ℤ)) + (naturalFromChunks [ + 8192000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 119583273905248130666943, + 13019329116091235392628306054606371, + 59964469300072616270621376592449125, + 14311517803419467558922559890197347, + 32313454234762690790445530286233781]) : ℤ)) + (naturalFromChunks [ + 102400000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 2109429760060368627470, + 80006764042218937252484565613892903, + 93412665360575265295705165935041889, + 3651628705288727530696183298924961, + 70209506322442573399541021334135201]) + (naturalFromChunks [ + 12800000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 841893124854572354980, + 42397658068461024358164265043485336, + 45538646147866940676041643609537972, + 53401481845321185738987124597585745, + 81786377887782996222358894912070487]) + (naturalFromChunks [ + 4096000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 59, sharing kernel reduction. -/ +def cachedPath59 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 40628261855695108521476, + 98436164360080019039896744190127201, + 47601975957783876214227478621905782, + 25576246974829156663735797899602996, + 45420038345741960605410511808728001]) : ℤ)) + (naturalFromChunks [ + 32768000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 301103621620064197898, + 8299094629563441193986484979507147, + 89737269524841028484629942536317194, + 74517547697049172540089371671692020, + 88609728189593713036286665297731631]) : ℤ)) + (naturalFromChunks [ + 256000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 34018762971280009037, + 16038881456561924907038935837437297, + 99960461060024166826417223242565572, + 16254863570643640444066946522242964, + 81343029253984610677309885333180499]) + (naturalFromChunks [ + 256000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 11317340890168309697721, + 45410299028241762657703443089265939, + 79771779002626572528856603660265125, + 54970491515034613284867040238729879, + 5521750114139824355078337721894631]) + (naturalFromChunks [ + 65536000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 60, sharing kernel reduction. -/ +def cachedPath60 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 204289048264916622360, + 25303690206038581779430164991556215, + 2192542270261213781441669906981730, + 66383526667398392301139367816128553, + 15726067403295889577864319623494443]) : ℤ)) + (naturalFromChunks [ + 163840000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 121162818757260980189505, + 73632300228112868338850596005476251, + 35119747346774774138799209858922082, + 30292570526512098617456899222946956, + 95047460575534287969219970635556017]) : ℤ)) + (naturalFromChunks [ + 102400000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 1285080943834146982381, + 94076033656129489289430988656901334, + 22865595832567104132331138343971778, + 2985720029198170062456256798785702, + 33723476089459091675404318918498647]) + (naturalFromChunks [ + 12800000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2280706495280212676, + 29625833186939974161218473680947791, + 60244908883737083223098208681189621, + 77514689582140903829783894757156308, + 75484925373905506392385720664182509]) + (naturalFromChunks [ + 16384000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 61, sharing kernel reduction. -/ +def cachedPath61 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 5130128137297982199970, + 11979015270500852222911160591749029, + 25387714147347173771511135197567510, + 99264800091974613863810433868205371, + 70937418602639320365290984537430863]) : ℤ)) + (naturalFromChunks [ + 4096000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 30436213158943509395870, + 14842680304673036196000346367541529, + 1194030108900438413113319737277935, + 18710598814112320770476596937507304, + 54248570701731552372197427932900391]) : ℤ)) + (naturalFromChunks [ + 25600000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 1725122804722919108622, + 65996905569999348341980100555845890, + 48926926223974220807794570992152633, + 6524284593208549896091570936524320, + 74595623604981686149735450315547597]) + (naturalFromChunks [ + 25600000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 6890349842948582395353, + 39086950416118534041198169122654079, + 31423384727865696078286774376217932, + 59251993932395900187461249530151928, + 16286338519958681309858881941110863]) + (naturalFromChunks [ + 65536000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 62, sharing kernel reduction. -/ +def cachedPath62 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 643393124505926708537, + 38552685670926548460089453816778488, + 38544509865162488014208150769602241, + 85686048365271887104508360608569377, + 12303532657538062832233408151059051]) : ℤ)) + (naturalFromChunks [ + 512000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 7636576749161744317076, + 85235683889594245840246913456978817, + 46167670878428799642138256405623192, + 46371516784914811403710767791822485, + 31039193548587898073356345094381007]) : ℤ)) + (naturalFromChunks [ + 6400000000000000000000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (naturalFromChunks [ + 86818643584218515155, + 3965904627296979473505833857292664, + 31216863896850199025975956944204168, + 64713996069642754926766697377185979, + 84282986450372156536682514815769571]) + (naturalFromChunks [ + 2560000000000000000000, + 0, + 0, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 288973460328803356995, + 84320300751959621006429197034719980, + 50460615055939948234575415871664412, + 61757624002882346781705050908845772, + 32582892504375119601395101704657703]) + (naturalFromChunks [ + 4096000000000000000000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for cell 63, sharing kernel reduction. -/ +def cachedPath63 : RatInterval × RatInterval := + (⟨(ExactReplay.q + (-((naturalFromChunks [ + 15, + 42079517288790286680036160806903126, + 43012829623794531003067991380792405, + 28809926010512734426230880545237976, + 61731630191804635017229301491936027]) : ℤ)) + (naturalFromChunks [ + 12, + 50000000000000000000000000000000000, + 0, + 0, + 0])), + (ExactReplay.q + (-((naturalFromChunks [ + 1526206, + 54711468459557349232894324772787465, + 4598192129324489394972717423811205, + 95446486344966956824293103245753667, + 87711918370437577208529341465376517]) : ℤ)) + (naturalFromChunks [ + 1250000, + 0, + 0, + 0, + 0]))⟩, + ⟨(ExactReplay.q + (-((naturalFromChunks [ + 18823831, + 48723624281463936633164280237407656, + 26335680331785015270314432345086971]) : ℤ)) + (naturalFromChunks [ + 250000000000, + 0, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 87326, + 79792061110285957775373564882726820, + 13026983046313166892255834128622, + 16157419760387029253635163962055685, + 70086123399049940050711975911460799]) + (naturalFromChunks [ + 2500000, + 0, + 0, + 0, + 0]))⟩) + +/-- The exact cached path-coordinate pair for the selected angle cell. -/ +def cachedPath (i : Cell) : RatInterval × RatInterval := + match i.val with + | 0 => cachedPath00 + | 1 => cachedPath01 + | 2 => cachedPath02 + | 3 => cachedPath03 + | 4 => cachedPath04 + | 5 => cachedPath05 + | 6 => cachedPath06 + | 7 => cachedPath07 + | 8 => cachedPath08 + | 9 => cachedPath09 + | 10 => cachedPath10 + | 11 => cachedPath11 + | 12 => cachedPath12 + | 13 => cachedPath13 + | 14 => cachedPath14 + | 15 => cachedPath15 + | 16 => cachedPath16 + | 17 => cachedPath17 + | 18 => cachedPath18 + | 19 => cachedPath19 + | 20 => cachedPath20 + | 21 => cachedPath21 + | 22 => cachedPath22 + | 23 => cachedPath23 + | 24 => cachedPath24 + | 25 => cachedPath25 + | 26 => cachedPath26 + | 27 => cachedPath27 + | 28 => cachedPath28 + | 29 => cachedPath29 + | 30 => cachedPath30 + | 31 => cachedPath31 + | 32 => cachedPath32 + | 33 => cachedPath33 + | 34 => cachedPath34 + | 35 => cachedPath35 + | 36 => cachedPath36 + | 37 => cachedPath37 + | 38 => cachedPath38 + | 39 => cachedPath39 + | 40 => cachedPath40 + | 41 => cachedPath41 + | 42 => cachedPath42 + | 43 => cachedPath43 + | 44 => cachedPath44 + | 45 => cachedPath45 + | 46 => cachedPath46 + | 47 => cachedPath47 + | 48 => cachedPath48 + | 49 => cachedPath49 + | 50 => cachedPath50 + | 51 => cachedPath51 + | 52 => cachedPath52 + | 53 => cachedPath53 + | 54 => cachedPath54 + | 55 => cachedPath55 + | 56 => cachedPath56 + | 57 => cachedPath57 + | 58 => cachedPath58 + | 59 => cachedPath59 + | 60 => cachedPath60 + | 61 => cachedPath61 + | 62 => cachedPath62 + | _ => cachedPath63 + +/-- The exact cached cosine interval for cell 0, sharing kernel reduction. -/ +def cachedCosine00 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 4998494093481021100578828, + 24833086098425030540628864810962801]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + 1 + 1)⟩ + +/-- The exact cached cosine interval for cell 1, sharing kernel reduction. -/ +def cachedCosine01 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 9987954562051723927147716, + 4759100694443203614704611783472007]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 999698818696204220115765, + 64966617219685006108125772962576017]) + (naturalFromChunks [ + 1000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 2, sharing kernel reduction. -/ +def cachedCosine02 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1246613070848362770169496, + 42522820977646461084895777668595067]) + (naturalFromChunks [ + 1250000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9987954562051723927147716, + 4759100694443203614704611798805657]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 3, sharing kernel reduction. -/ +def cachedCosine03 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 9951847266721968862448369, + 53109479921575474868729857018402753]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 4986452283393451080677985, + 70091283910585844339583110691621963]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 4, sharing kernel reduction. -/ +def cachedCosine04 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 9924795345987099981567672, + 51661117820010820654634159478691333]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9951847266721968862448369, + 53109479921575474868729857079663467]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 5, sharing kernel reduction. -/ +def cachedCosine05 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 9891765099647809734516737, + 38016243063983689533336907303495943]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 4962397672993549990783836, + 25830558910005410327317079787162337]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 6, sharing kernel reduction. -/ +def cachedCosine06 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 4926388211944706223870092, + 16589273893580064577906407370938883]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2472941274911952433629184, + 34504060765995922383334226860263941]) + (naturalFromChunks [ + 2500000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 7, sharing kernel reduction. -/ +def cachedCosine07 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1961570560806460898252364, + 47226847807394786746178667184423201]) + (naturalFromChunks [ + 2000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9852776423889412447740184, + 33178547787160129155812814928867333]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 8, sharing kernel reduction. -/ +def cachedCosine08 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 9757021300385285444603957, + 66419527971644012265792042946977421]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9807852804032304491261822, + 36134239036973933730893336165978909]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 9, sharing kernel reduction. -/ +def cachedCosine09 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 2425078132986359981509960, + 51821525062864216490562018457956381]) + (naturalFromChunks [ + 2500000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9757021300385285444603957, + 66419527971644012265792043255088541]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 10, sharing kernel reduction. -/ +def cachedCosine10 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 9637760657954398666864643, + 55507835153663083848826632379316763]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1212539066493179990754980, + 25910762531432108245281009276435257]) + (naturalFromChunks [ + 1250000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 11, sharing kernel reduction. -/ +def cachedCosine11 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 4784701678661044324678989, + 43490134984741424602815018437715273]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1927552131590879733372928, + 71101567030732616769765326567545863]) + (naturalFromChunks [ + 2000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 12, sharing kernel reduction. -/ +def cachedCosine12 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1186910225741295833994920, + 9273668128531528019229051300090539]) + (naturalFromChunks [ + 1250000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9569403357322088649357978, + 86980269969482849205630037419714317]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 13, sharing kernel reduction. -/ +def cachedCosine13 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 4707720325915103892062547, + 1299751178592794897912591172543821]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2373820451482591667989840, + 18547336257063056038458102759472587]) + (naturalFromChunks [ + 2500000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 14, sharing kernel reduction. -/ +def cachedCosine14 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 9329927988347388877116602, + 55543302498295015520512294450889103]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 4707720325915103892062547, + 1299751178592794897912591541017099]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 15, sharing kernel reduction. -/ +def cachedCosine15 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 184775906502257351225636, + 63787935765736448332517272836157107]) + (naturalFromChunks [ + 200000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1865985597669477775423320, + 51108660499659003104102459058878619]) + (naturalFromChunks [ + 2000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 16, sharing kernel reduction. -/ +def cachedCosine16 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 914209755703530654635014, + 82939357740104469111568217623822567]) + (naturalFromChunks [ + 1000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9238795325112867561281831, + 89396788286822416625863642764563933]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 17, sharing kernel reduction. -/ +def cachedCosine17 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 9039892931234433315862002, + 97230537048710132025050607197151713]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 4571048778517653273175074, + 14696788700522345557841088657323959]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 18, sharing kernel reduction. -/ +def cachedCosine18 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 8932243011955153203424164, + 47493397978000625588998871843311403]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9039892931234433315862002, + 97230537048710132025050608399650477]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 19, sharing kernel reduction. -/ +def cachedCosine19 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 8819212643483550297127568, + 63660388349508442620674726936265953]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 8932243011955153203424164, + 47493397978000625588998873178095531]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 20, sharing kernel reduction. -/ +def cachedCosine20 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1740173982217422837304584, + 80896769768782165557905964868101359]) + (naturalFromChunks [ + 2000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 8819212643483550297127568, + 63660388349508442620674728409384211]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 21, sharing kernel reduction. -/ +def cachedCosine21 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 428864305000136034951134, + 99214238506852124539971686638286303]) + (naturalFromChunks [ + 500000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1740173982217422837304584, + 80896769768782165557905965191570209]) + (naturalFromChunks [ + 2000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 22, sharing kernel reduction. -/ +def cachedCosine22 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1689707130499414146519142, + 41020991419543957196277821452719797]) + (naturalFromChunks [ + 2000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 4288643050001360349511349, + 92142385068521245399716867266541721]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 23, sharing kernel reduction. -/ +def cachedCosine23 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 4157348061512726185393941, + 88808952878369280405993624243212271]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 528033478281066920787232, + 319059818607486623836819324184143]) + (naturalFromChunks [ + 625000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 24, sharing kernel reduction. -/ +def cachedCosine24 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 8175848131515836965049208, + 84130633809471042517566912499545797]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2078674030756363092696970, + 94404476439184640202996812643334609]) + (naturalFromChunks [ + 2500000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 25, sharing kernel reduction. -/ +def cachedCosine25 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1606415062961289819613353, + 2592628384775913885434091823855011]) + (naturalFromChunks [ + 2000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 4087924065757918482524604, + 42065316904735521258783457382713731]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 26, sharing kernel reduction. -/ +def cachedCosine26 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 63067714210128500960733, + 17642877514261251945097197174484151]) + (naturalFromChunks [ + 80000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1606415062961289819613353, + 2592628384775913885434092322625003]) + (naturalFromChunks [ + 2000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 27, sharing kernel reduction. -/ +def cachedCosine27 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 7730104533627369608109066, + 9758469800971041292900807641309649]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 7883464276266062620091647, + 5359689282656493137149649715782547]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 28, sharing kernel reduction. -/ +def cachedCosine28 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 7572088465064845475754640, + 53605784473040433715731614750260323]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 7730104533627369608109066, + 9758469800971041292900811650456043]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 29, sharing kernel reduction. -/ +def cachedCosine29 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 7409511253549590911756168, + 97495162729728955309309087808108197]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 7572088465064845475754640, + 53605784473040433715731622390746331]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 30, sharing kernel reduction. -/ +def cachedCosine30 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 7242470829514669209410692, + 43290553167483093004800434490403453]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1852377813387397727939042, + 24373790682432238827327276982699053]) + (naturalFromChunks [ + 2500000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 31, sharing kernel reduction. -/ +def cachedCosine31 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 7071067811865475244008443, + 62104849039284835937688471452121003]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 7242470829514669209410692, + 43290553167483093004800496842348879]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 32, sharing kernel reduction. -/ +def cachedCosine32 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 6895405447370669246167306, + 29957484702845536844279120311458241]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 7071067811865475244008443, + 62104849039284835937688672182256779]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 33, sharing kernel reduction. -/ +def cachedCosine33 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 6715589548470184006253768, + 50427421803228750632199790827325159]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 6895405447370669246167306, + 29957484702845536844279758975438619]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 34, sharing kernel reduction. -/ +def cachedCosine34 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 6531728429537767640842030, + 13656305415076860023714154803176483]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 6715589548470184006253768, + 50427421803228750632201768979747313]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 35, sharing kernel reduction. -/ +def cachedCosine35 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 396495802602278436384482, + 25826593335667230443427606866067141]) + (naturalFromChunks [ + 625000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 653172842953776764084203, + 1365630541507686002372009887695613]) + (naturalFromChunks [ + 1000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 36, sharing kernel reduction. -/ +def cachedCosine36 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 3076157952903134227424567, + 81706992138829715003882209350922361]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 6343932841636454982151716, + 13225493370675687094841728373967047]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 37, sharing kernel reduction. -/ +def cachedCosine37 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 5956993044924333434670365, + 28829969889511926338437499068151809]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 3076157952903134227424567, + 81706992138829715003882215574100041]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 38, sharing kernel reduction. -/ +def cachedCosine38 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 5758081914178453007459724, + 53815730841776008455314090690525803]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1191398608984866686934073, + 5765993977902385267687502374095949]) + (naturalFromChunks [ + 2000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 39, sharing kernel reduction. -/ +def cachedCosine39 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 86807848909312847616067, + 31467945826162108393605543717839779]) + (naturalFromChunks [ + 156250000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 5758081914178453007459724, + 53815730841776008455314103848793047]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 40, sharing kernel reduction. -/ +def cachedCosine40 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1069995239774194421326153, + 80927403583112053138434378794486499]) + (naturalFromChunks [ + 2000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2777851165098011123714154, + 6974266437187468595377405726590153]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 41, sharing kernel reduction. -/ +def cachedCosine41 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 2570513720966108632968469, + 19484407886304024560208105658651777]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1337494049717743026657692, + 26159254478890066423042976958330357]) + (naturalFromChunks [ + 2500000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 42, sharing kernel reduction. -/ +def cachedCosine42 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 2464490961148920184365133, + 44379404634119843653274178452139081]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 5141027441932217265936938, + 38968815772608049120416225523435447]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 43, sharing kernel reduction. -/ +def cachedCosine43 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 294622960516248530347742, + 26619078398603591269933279609753839]) + (naturalFromChunks [ + 625000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 4928981922297840368730266, + 88758809268239687306548371451045337]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 44, sharing kernel reduction. -/ +def cachedCosine44 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 4496113296546066000462945, + 79424227075883187048377850210090887]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1178491842064994121390969, + 6476313594414365079733122159620701]) + (naturalFromChunks [ + 2500000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 45, sharing kernel reduction. -/ +def cachedCosine45 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 4275550934302820943209668, + 56888798534304578629342451401959127]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2248056648273033000231472, + 89712113537941593524188932711408637]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 46, sharing kernel reduction. -/ +def cachedCosine46 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 4052413140049898709084813, + 5505052466511947754105081593303987]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 133610966696963154475302, + 14277774954197018082166952091852347]) + (naturalFromChunks [ + 312500000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 47, sharing kernel reduction. -/ +def cachedCosine47 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 765366864730179543456919, + 96806079773352268912497123888020471]) + (naturalFromChunks [ + 2000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2026206570024949354542406, + 52752526233255973877052548724564719]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 48, sharing kernel reduction. -/ +def cachedCosine48 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 3598950365349881487751045, + 72326756420202317421129018070100053]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 153073372946035908691383, + 99361215954670453782499425424319767]) + (naturalFromChunks [ + 400000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 49, sharing kernel reduction. -/ +def cachedCosine49 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 842224633480550126723133, + 3154786892619441694917803582196619]) + (naturalFromChunks [ + 2500000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1799475182674940743875522, + 86163378210101158710564517271627079]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 50, sharing kernel reduction. -/ +def cachedCosine50 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1568408701994457383282394, + 22997050154996688754728269328643201]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1684449266961100253446266, + 6309573785238883389835615550020069]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 51, sharing kernel reduction. -/ +def cachedCosine51 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 2902846772544623676361923, + 75817395274691476278324142814062403]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1568408701994457383282394, + 22997050154996688754728277859560449]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 52, sharing kernel reduction. -/ +def cachedCosine52 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 533425514949796772650573, + 3023287278808423397671229548961797]) + (naturalFromChunks [ + 2000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2902846772544623676361923, + 75817395274691476278324160158605989]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 53, sharing kernel reduction. -/ +def cachedCosine53 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 2429801799032638899482741, + 62077471118320990783283823500268651]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2667127574748983863252865, + 15116436394042116988356165363840189]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 54, sharing kernel reduction. -/ +def cachedCosine54 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 2191012401568697972277375, + 47497357798848360796705583324219953]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2429801799032638899482741, + 62077471118320990783283841385219883]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 55, sharing kernel reduction. -/ +def cachedCosine55 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1950903220161282678482848, + 68477022240927691617751945869062889]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1095506200784348986138687, + 73748678899424180398352800733090717]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 56, sharing kernel reduction. -/ +def cachedCosine56 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 854809443801506131818211, + 78604131765983164529572290956241377]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 975451610080641339241424, + 34238511120463845808875982129393449]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 57, sharing kernel reduction. -/ +def cachedCosine57 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1467304744553617516588501, + 29646717819706215316529382832580349]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 854809443801506131818211, + 78604131765983164529572300270194091]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 58, sharing kernel reduction. -/ +def cachedCosine58 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 153013343999020248123380, + 59268868223446902951135637234185599]) + (naturalFromChunks [ + 1250000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 366826186138404379147125, + 32411679454926553829132350422189393]) + (naturalFromChunks [ + 2500000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 59, sharing kernel reduction. -/ +def cachedCosine59 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 980171403295606019941955, + 63888641845861136673167491056370909]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1224106751992161984987044, + 74150945787575223609085116947700849]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 60, sharing kernel reduction. -/ +def cachedCosine60 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 91955704499584279411832, + 2696904290226662408209734700340633]) + (naturalFromChunks [ + 1250000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 98017140329560601994195, + 56388864184586113667316751033807499]) + (naturalFromChunks [ + 1000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 61, sharing kernel reduction. -/ +def cachedCosine61 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 490676743274180142549549, + 76942682658314745363025743153535963]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 735645635996674235294656, + 21575234321813299265677897081054297]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 62, sharing kernel reduction. -/ +def cachedCosine62 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 6135307130728072007933, + 63236482073126636652980986039783221]) + (naturalFromChunks [ + 250000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 122669185818545035637387, + 44235670664578686340756440704330377]) + (naturalFromChunks [ + 2500000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for cell 63, sharing kernel reduction. -/ +def cachedCosine63 : RatInterval := + ⟨(ExactReplay.q + 0 + 1), + (ExactReplay.q + (naturalFromChunks [ + 122706142614561440158672, + 64729641462532733059619730714551137]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached cosine interval for the selected angle cell. -/ +def cachedCosine (i : Cell) : RatInterval := + match i.val with + | 0 => cachedCosine00 + | 1 => cachedCosine01 + | 2 => cachedCosine02 + | 3 => cachedCosine03 + | 4 => cachedCosine04 + | 5 => cachedCosine05 + | 6 => cachedCosine06 + | 7 => cachedCosine07 + | 8 => cachedCosine08 + | 9 => cachedCosine09 + | 10 => cachedCosine10 + | 11 => cachedCosine11 + | 12 => cachedCosine12 + | 13 => cachedCosine13 + | 14 => cachedCosine14 + | 15 => cachedCosine15 + | 16 => cachedCosine16 + | 17 => cachedCosine17 + | 18 => cachedCosine18 + | 19 => cachedCosine19 + | 20 => cachedCosine20 + | 21 => cachedCosine21 + | 22 => cachedCosine22 + | 23 => cachedCosine23 + | 24 => cachedCosine24 + | 25 => cachedCosine25 + | 26 => cachedCosine26 + | 27 => cachedCosine27 + | 28 => cachedCosine28 + | 29 => cachedCosine29 + | 30 => cachedCosine30 + | 31 => cachedCosine31 + | 32 => cachedCosine32 + | 33 => cachedCosine33 + | 34 => cachedCosine34 + | 35 => cachedCosine35 + | 36 => cachedCosine36 + | 37 => cachedCosine37 + | 38 => cachedCosine38 + | 39 => cachedCosine39 + | 40 => cachedCosine40 + | 41 => cachedCosine41 + | 42 => cachedCosine42 + | 43 => cachedCosine43 + | 44 => cachedCosine44 + | 45 => cachedCosine45 + | 46 => cachedCosine46 + | 47 => cachedCosine47 + | 48 => cachedCosine48 + | 49 => cachedCosine49 + | 50 => cachedCosine50 + | 51 => cachedCosine51 + | 52 => cachedCosine52 + | 53 => cachedCosine53 + | 54 => cachedCosine54 + | 55 => cachedCosine55 + | 56 => cachedCosine56 + | 57 => cachedCosine57 + | 58 => cachedCosine58 + | 59 => cachedCosine59 + | 60 => cachedCosine60 + | 61 => cachedCosine61 + | 62 => cachedCosine62 + | _ => cachedCosine63 + +/-- The exact cached sine interval for cell 0, sharing kernel reduction. -/ +def cachedSine00 : RatInterval := + ⟨(ExactReplay.q + 0 + 1), + (ExactReplay.q + (naturalFromChunks [ + 61353071307280720079336, + 32364820731266366529809862897079257]) + (naturalFromChunks [ + 2500000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 1, sharing kernel reduction. -/ +def cachedSine01 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 122706142614561440158672, + 64729641462532733059619725716057043]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 245338371637090071274774, + 88471341329157372681512876570745263]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 2, sharing kernel reduction. -/ +def cachedSine02 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 98135348654836028509909, + 95388536531662949072605150565873389]) + (naturalFromChunks [ + 2000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 11494463062448034926479, + 337113036278332801026216993369213]) + (naturalFromChunks [ + 156250000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 3, sharing kernel reduction. -/ +def cachedSine03 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 735645635996674235294656, + 21575234321813299265677887108149729]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 980171403295606019941955, + 63888641845861136673167501008218177]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 4, sharing kernel reduction. -/ +def cachedSine04 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 490085701647803009970977, + 81944320922930568336583750193113861]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1224106751992161984987044, + 74150945787575223609085107798280139]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 5, sharing kernel reduction. -/ +def cachedSine05 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 612053375996080992493522, + 37075472893787611804542553511452751]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 29346094891072350331770, + 2592934356394124306330587854486909]) + (naturalFromChunks [ + 200000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 6, sharing kernel reduction. -/ +def cachedSine06 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1467304744553617516588501, + 29646717819706215316529391796992471]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1709618887603012263636423, + 57208263531966329059144591765259179]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 7, sharing kernel reduction. -/ +def cachedSine07 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1709618887603012263636423, + 57208263531966329059144590687611757]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 975451610080641339241424, + 34238511120463845808875977838457847]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 8, sharing kernel reduction. -/ +def cachedSine08 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1950903220161282678482848, + 68477022240927691617751954450934093]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1095506200784348986138687, + 73748678899424180398352796540620627]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 9, sharing kernel reduction. -/ +def cachedSine09 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 2191012401568697972277375, + 47497357798848360796705591709160133]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 37965653109884982804417, + 83782460486223765480988809893759081]) + (naturalFromChunks [ + 156250000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 10, sharing kernel reduction. -/ +def cachedSine10 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 48596035980652777989654, + 83241549422366419815665676633698147]) + (naturalFromChunks [ + 200000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 666781893687245965813216, + 28779109098510529247089039345642411]) + (naturalFromChunks [ + 2500000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 11, sharing kernel reduction. -/ +def cachedSine11 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 266712757474898386325286, + 51511643639404211698835615572607953]) + (naturalFromChunks [ + 1000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2902846772544623676361923, + 75817395274691476278324152383465761]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 12, sharing kernel reduction. -/ +def cachedSine12 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 2902846772544623676361923, + 75817395274691476278324150589202631]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 3136817403988914766564788, + 45994100309993377509456548152568209]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 13, sharing kernel reduction. -/ +def cachedSine13 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 3136817403988914766564788, + 45994100309993377509456546223839091]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 3368898533922200506892532, + 12619147570477766779671223744227129]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 14, sharing kernel reduction. -/ +def cachedSine14 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 673779706784440101378506, + 42523829514095553355934244336919897]) + (naturalFromChunks [ + 2000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1799475182674940743875522, + 86163378210101158710564513700014021]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 15, sharing kernel reduction. -/ +def cachedSine15 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 3598950365349881487751045, + 72326756420202317421129025213326169]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 3826834323650897717284599, + 84030398866761344562485628678897681]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 16, sharing kernel reduction. -/ +def cachedSine16 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 3826834323650897717284599, + 84030398866761344562485626369198849]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 810482628009979741816962, + 61101010493302389550821018147080309]) + (naturalFromChunks [ + 2000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 17, sharing kernel reduction. -/ +def cachedSine17 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 101310328501247467727120, + 32637626311662798693852627207675797]) + (naturalFromChunks [ + 250000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 213777546715141047160483, + 42844439926715228931467123022092603]) + (naturalFromChunks [ + 500000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 18, sharing kernel reduction. -/ +def cachedSine18 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 4275550934302820943209668, + 56888798534304578629342457899382171]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2248056648273033000231472, + 89712113537941593524188929571166953]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 19, sharing kernel reduction. -/ +def cachedSine19 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 899222659309213200092589, + 15884845415176637409675571298114851]) + (naturalFromChunks [ + 2000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 36827870064531066293467, + 78327384799825448908741660020119329]) + (naturalFromChunks [ + 78125000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 20, sharing kernel reduction. -/ +def cachedSine20 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1178491842064994121390969, + 6476313594414365079733119954817529]) + (naturalFromChunks [ + 2500000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2464490961148920184365133, + 44379404634119843653274182802574183]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 21, sharing kernel reduction. -/ +def cachedSine21 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 2464490961148920184365133, + 44379404634119843653274181375087567]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1285256860483054316484234, + 59742203943152012280104054973647861]) + (naturalFromChunks [ + 2500000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 22, sharing kernel reduction. -/ +def cachedSine22 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 5141027441932217265936938, + 38968815772608049120416216946147557]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 213999047954838884265230, + 76185480716622410627686876096839131]) + (naturalFromChunks [ + 400000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 23, sharing kernel reduction. -/ +def cachedSine23 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 167186756214717878332211, + 53269906809861258302880371855774239]) + (naturalFromChunks [ + 312500000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 5555702330196022247428308, + 13948532874374937190754806256495229]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 24, sharing kernel reduction. -/ +def cachedSine24 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 5555702330196022247428308, + 13948532874374937190754803138430933]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 719760239272306625932465, + 56726966355222001056914262358329449]) + (naturalFromChunks [ + 1250000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 25, sharing kernel reduction. -/ +def cachedSine25 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 2879040957089226503729862, + 26907865420888004227657047836341629]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 5956993044924333434670365, + 28829969889511926338437507101435027]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 26, sharing kernel reduction. -/ +def cachedSine26 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 5956993044924333434670365, + 28829969889511926338437503837196527]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 6152315905806268454849135, + 63413984277659430007764426590572297]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 27, sharing kernel reduction. -/ +def cachedSine27 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 6152315905806268454849135, + 63413984277659430007764423259472507]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 6343932841636454982151716, + 13225493370675687094841724025783247]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 28, sharing kernel reduction. -/ +def cachedSine28 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 6343932841636454982151716, + 13225493370675687094841720622123773]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 6531728429537767640842030, + 13656305415076860023714163065397987]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 29, sharing kernel reduction. -/ +def cachedSine29 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1632932107384441910210507, + 53414076353769215005928539887217203]) + (naturalFromChunks [ + 2500000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1678897387117546001563442, + 12606855450807187658049949320398029]) + (naturalFromChunks [ + 2500000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 30, sharing kernel reduction. -/ +def cachedSine30 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 3357794774235092003126884, + 25213710901614375316099896743952173]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 3447702723685334623083653, + 14978742351422768422139563431888753]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 31, sharing kernel reduction. -/ +def cachedSine31 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 6895405447370669246167306, + 29957484702845536844279122204435661]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 3535533905932737622004221, + 81052424519642417968844240256401493]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 32, sharing kernel reduction. -/ +def cachedSine32 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 353553390593273762200422, + 18105242451964241796884423650304123]) + (naturalFromChunks [ + 500000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1448494165902933841882138, + 48658110633496618600960090516316199]) + (naturalFromChunks [ + 2000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 33, sharing kernel reduction. -/ +def cachedSine33 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 7242470829514669209410692, + 43290553167483093004800435840085161]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1157736133367123579961, + 90140233619176520149267079552312427]) + (naturalFromChunks [ + 1562500000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 34, sharing kernel reduction. -/ +def cachedSine34 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 3704755626774795455878084, + 48747581364864477654654544494722267]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1893022116266211368938660, + 13401446118260108428932937539722931]) + (naturalFromChunks [ + 2500000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 35, sharing kernel reduction. -/ +def cachedSine35 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 3786044232532422737877320, + 26802892236520216857865807875785847]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 7730104533627369608109066, + 9758469800971041292901204478665627]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 36, sharing kernel reduction. -/ +def cachedSine36 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 309204181345094784324362, + 64390338792038841651716032162913897]) + (naturalFromChunks [ + 400000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 394173213813303131004582, + 35267984464132824656857482663629509]) + (naturalFromChunks [ + 500000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 37, sharing kernel reduction. -/ +def cachedSine37 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 3941732138133031310045823, + 52679844641328246568574821626855621]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2008018828701612274516691, + 28240785480969892356792616287522409]) + (naturalFromChunks [ + 2500000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 38, sharing kernel reduction. -/ +def cachedSine38 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1606415062961289819613353, + 2592628384775913885434091116462087]) + (naturalFromChunks [ + 2000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2043962032878959241262302, + 21032658452367760629391729568564657]) + (naturalFromChunks [ + 2500000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 39, sharing kernel reduction. -/ +def cachedSine39 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 817584813151583696504920, + 88413063380947104251756690899071463]) + (naturalFromChunks [ + 1000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1039337015378181546348485, + 47202238219592320101498406755706549]) + (naturalFromChunks [ + 1250000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 40, sharing kernel reduction. -/ +def cachedSine40 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 4157348061512726185393941, + 88808952878369280405993622507055293]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 8448535652497070732595712, + 5104957097719785981389112614274791]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 41, sharing kernel reduction. -/ +def cachedSine41 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 4224267826248535366297856, + 2552478548859892990694551918135241]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 8577286100002720699022699, + 84284770137042490799433737906882701]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 42, sharing kernel reduction. -/ +def cachedSine42 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 8577286100002720699022699, + 84284770137042490799433729391926801]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 4350434955543557093261462, + 2241924421955413894764914634755387]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 43, sharing kernel reduction. -/ +def cachedSine43 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1740173982217422837304584, + 80896769768782165557905964205769413]) + (naturalFromChunks [ + 2000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1102401580435443787140946, + 7957548543688555327584341456279597]) + (naturalFromChunks [ + 1250000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 44, sharing kernel reduction. -/ +def cachedSine44 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 8819212643483550297127568, + 63660388349508442620674723695413387]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1116530376494394150428020, + 55936674747250078198624859542428149]) + (naturalFromChunks [ + 1250000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 45, sharing kernel reduction. -/ +def cachedSine45 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 8932243011955153203424164, + 47493397978000625588998868681981741]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9039892931234433315862002, + 97230537048710132025050611472702711]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 46, sharing kernel reduction. -/ +def cachedSine46 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 9039892931234433315862002, + 97230537048710132025050604124099479]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 4571048778517653273175074, + 14696788700522345557841090145319409]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 47, sharing kernel reduction. -/ +def cachedSine47 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 914209755703530654635014, + 82939357740104469111568217326223477]) + (naturalFromChunks [ + 1000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2309698831278216890320457, + 97349197071705604156465911408672419]) + (naturalFromChunks [ + 2500000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 48, sharing kernel reduction. -/ +def cachedSine48 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1154849415639108445160228, + 98674598535852802078232954867216201]) + (naturalFromChunks [ + 1250000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9329927988347388877116602, + 55543302498295015520512298049839469]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 49, sharing kernel reduction. -/ +def cachedSine49 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 9329927988347388877116602, + 55543302498295015520512291695442729]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9415440651830207784125094, + 2599502357185589795825185713986177]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 50, sharing kernel reduction. -/ +def cachedSine50 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 9415440651830207784125094, + 2599502357185589795825179713135663]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9495281805930366671959360, + 74189345028252224153832413537541717]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 51, sharing kernel reduction. -/ +def cachedSine51 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 9495281805930366671959360, + 74189345028252224153832407901072943]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 239235083933052216233949, + 47174506749237071230140750994456933]) + (naturalFromChunks [ + 250000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 52, sharing kernel reduction. -/ +def cachedSine52 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1196175419665261081169747, + 35872533746185356150703754314608443]) + (naturalFromChunks [ + 1250000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 4818880328977199333432321, + 77753917576831541924413317523222169]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 53, sharing kernel reduction. -/ +def cachedSine53 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 481888032897719933343232, + 17775391757683154192441331508530087]) + (naturalFromChunks [ + 500000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 2425078132986359981509960, + 51821525062864216490562019065406831]) + (naturalFromChunks [ + 2500000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 54, sharing kernel reduction. -/ +def cachedSine54 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 75783691655823749422186, + 26619422658214506765330063060794377]) + (naturalFromChunks [ + 78125000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9757021300385285444603957, + 66419527971644012265792045137989823]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 55, sharing kernel reduction. -/ +def cachedSine55 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 4878510650192642722301978, + 83209763985822006132896020532038069]) + (naturalFromChunks [ + 5000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9807852804032304491261822, + 36134239036973933730893337873019227]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 56, sharing kernel reduction. -/ +def cachedSine56 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 1225981600504038061407727, + 79516779879621741716361666776884461]) + (naturalFromChunks [ + 1250000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 1970555284777882489548036, + 86635709557432025831162563290299331]) + (naturalFromChunks [ + 2000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 57, sharing kernel reduction. -/ +def cachedSine57 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 2463194105972353111935046, + 8294636946790032288953203304812111]) + (naturalFromChunks [ + 2500000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9891765099647809734516737, + 38016243063983689533336908770800689]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 58, sharing kernel reduction. -/ +def cachedSine58 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 9891765099647809734516737, + 38016243063983689533336905973751019]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 4962397672993549990783836, + 25830558910005410327317080351399043]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 59, sharing kernel reduction. -/ +def cachedSine59 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 9924795345987099981567672, + 51661117820010820654634158350217921]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 4975923633360984431224184, + 76554739960787737434364928999287079]) + (naturalFromChunks [ + 5000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 60, sharing kernel reduction. -/ +def cachedSine60 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 9951847266721968862448369, + 53109479921575474868729856099492063]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 9972904566786902161355971, + 40182567821171688679166222084406173]) + (naturalFromChunks [ + 10000000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 61, sharing kernel reduction. -/ +def cachedSine61 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 9972904566786902161355971, + 40182567821171688679166220647598289]) + (naturalFromChunks [ + 10000000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 624247160128232745446732, + 25297443793402700225919038267134297]) + (naturalFromChunks [ + 625000000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 62, sharing kernel reduction. -/ +def cachedSine62 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 624247160128232745446732, + 25297443793402700225919038206758057]) + (naturalFromChunks [ + 625000000000000000000000, + 0])), + (ExactReplay.q + (naturalFromChunks [ + 312405880842563818786176, + 76552067881151564408789304058354309]) + (naturalFromChunks [ + 312500000000000000000000, + 0]))⟩ + +/-- The exact cached sine interval for cell 63, sharing kernel reduction. -/ +def cachedSine63 : RatInterval := + ⟨(ExactReplay.q + (naturalFromChunks [ + 2499247046740510550289414, + 12416543049212515270314432345086971]) + (naturalFromChunks [ + 2500000000000000000000000, + 0])), + (ExactReplay.q + 1 + 1)⟩ + +/-- The exact cached sine interval for the selected angle cell. -/ +def cachedSine (i : Cell) : RatInterval := + match i.val with + | 0 => cachedSine00 + | 1 => cachedSine01 + | 2 => cachedSine02 + | 3 => cachedSine03 + | 4 => cachedSine04 + | 5 => cachedSine05 + | 6 => cachedSine06 + | 7 => cachedSine07 + | 8 => cachedSine08 + | 9 => cachedSine09 + | 10 => cachedSine10 + | 11 => cachedSine11 + | 12 => cachedSine12 + | 13 => cachedSine13 + | 14 => cachedSine14 + | 15 => cachedSine15 + | 16 => cachedSine16 + | 17 => cachedSine17 + | 18 => cachedSine18 + | 19 => cachedSine19 + | 20 => cachedSine20 + | 21 => cachedSine21 + | 22 => cachedSine22 + | 23 => cachedSine23 + | 24 => cachedSine24 + | 25 => cachedSine25 + | 26 => cachedSine26 + | 27 => cachedSine27 + | 28 => cachedSine28 + | 29 => cachedSine29 + | 30 => cachedSine30 + | 31 => cachedSine31 + | 32 => cachedSine32 + | 33 => cachedSine33 + | 34 => cachedSine34 + | 35 => cachedSine35 + | 36 => cachedSine36 + | 37 => cachedSine37 + | 38 => cachedSine38 + | 39 => cachedSine39 + | 40 => cachedSine40 + | 41 => cachedSine41 + | 42 => cachedSine42 + | 43 => cachedSine43 + | 44 => cachedSine44 + | 45 => cachedSine45 + | 46 => cachedSine46 + | 47 => cachedSine47 + | 48 => cachedSine48 + | 49 => cachedSine49 + | 50 => cachedSine50 + | 51 => cachedSine51 + | 52 => cachedSine52 + | 53 => cachedSine53 + | 54 => cachedSine54 + | 55 => cachedSine55 + | 56 => cachedSine56 + | 57 => cachedSine57 + | 58 => cachedSine58 + | 59 => cachedSine59 + | 60 => cachedSine60 + | 61 => cachedSine61 + | 62 => cachedSine62 + | _ => cachedSine63 + +theorem cachedPath_eq : ∀ i : Cell, cellPathInterval i = cachedPath i := by + decide +kernel + +theorem cachedCosine_eq : ∀ i : Cell, + ExactReplay.cosineInterval (cellTimeInterval i) = cachedCosine i := by + decide +kernel + +theorem cachedSine_eq : ∀ i : Cell, + ExactReplay.sineInterval (cellTimeInterval i) = cachedSine i := by + decide +kernel + +end GerverSofa.PartB + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartB.CellRows.Row48`. +* `KernelOnly.PartB.CellRows.Row49`. +* `KernelOnly.PartB.CellRows.Row50`. +* `KernelOnly.PartB.CellRows.Row51`. +* `KernelOnly.PartB.CellRows.Row52`. +* `KernelOnly.PartB.CellRows.Row53`. +* `KernelOnly.PartB.CellRows.Row54`. +* `KernelOnly.PartB.CellRows.Row55`. +* `KernelOnly.PartB.CellRows.Row56`. +* `KernelOnly.PartB.CellRows.Row57`. +* `KernelOnly.PartB.CellRows.Row58`. +* `KernelOnly.PartB.CellRows.Row59`. +* `KernelOnly.PartB.CellRows.Row60`. +* `KernelOnly.PartB.CellRows.Row61`. +* `KernelOnly.PartB.CellRows.Row62`. +* `KernelOnly.PartB.CellRows.Row63`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +Independent exact product-cell lower bounds for row 48. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_48 : + ∀ j : Cell, + targetQ < (guCellInterval (48 : Cell) j).lo ∧ + targetQ < (gvCellInterval (48 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 49. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_49 : + ∀ j : Cell, + targetQ < (guCellInterval (49 : Cell) j).lo ∧ + targetQ < (gvCellInterval (49 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 50. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_50 : + ∀ j : Cell, + targetQ < (guCellInterval (50 : Cell) j).lo ∧ + targetQ < (gvCellInterval (50 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 51. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_51 : + ∀ j : Cell, + targetQ < (guCellInterval (51 : Cell) j).lo ∧ + targetQ < (gvCellInterval (51 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 52. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_52 : + ∀ j : Cell, + targetQ < (guCellInterval (52 : Cell) j).lo ∧ + targetQ < (gvCellInterval (52 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 53. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_53 : + ∀ j : Cell, + targetQ < (guCellInterval (53 : Cell) j).lo ∧ + targetQ < (gvCellInterval (53 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 54. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_54 : + ∀ j : Cell, + targetQ < (guCellInterval (54 : Cell) j).lo ∧ + targetQ < (gvCellInterval (54 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 55. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_55 : + ∀ j : Cell, + targetQ < (guCellInterval (55 : Cell) j).lo ∧ + targetQ < (gvCellInterval (55 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 56. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_56 : + ∀ j : Cell, + targetQ < (guCellInterval (56 : Cell) j).lo ∧ + targetQ < (gvCellInterval (56 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 57. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_57 : + ∀ j : Cell, + targetQ < (guCellInterval (57 : Cell) j).lo ∧ + targetQ < (gvCellInterval (57 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 58. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_58 : + ∀ j : Cell, + targetQ < (guCellInterval (58 : Cell) j).lo ∧ + targetQ < (gvCellInterval (58 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 59. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_59 : + ∀ j : Cell, + targetQ < (guCellInterval (59 : Cell) j).lo ∧ + targetQ < (gvCellInterval (59 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 60. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_60 : + ∀ j : Cell, + targetQ < (guCellInterval (60 : Cell) j).lo ∧ + targetQ < (gvCellInterval (60 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 61. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_61 : + ∀ j : Cell, + targetQ < (guCellInterval (61 : Cell) j).lo ∧ + targetQ < (gvCellInterval (61 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 62. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_62 : + ∀ j : Cell, + targetQ < (guCellInterval (62 : Cell) j).lo ∧ + targetQ < (gvCellInterval (62 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 63. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_63 : + ∀ j : Cell, + targetQ < (guCellInterval (63 : Cell) j).lo ∧ + targetQ < (gvCellInterval (63 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartB.CellRows.Row32`. +* `KernelOnly.PartB.CellRows.Row33`. +* `KernelOnly.PartB.CellRows.Row34`. +* `KernelOnly.PartB.CellRows.Row35`. +* `KernelOnly.PartB.CellRows.Row36`. +* `KernelOnly.PartB.CellRows.Row37`. +* `KernelOnly.PartB.CellRows.Row38`. +* `KernelOnly.PartB.CellRows.Row39`. +* `KernelOnly.PartB.CellRows.Row40`. +* `KernelOnly.PartB.CellRows.Row41`. +* `KernelOnly.PartB.CellRows.Row42`. +* `KernelOnly.PartB.CellRows.Row43`. +* `KernelOnly.PartB.CellRows.Row44`. +* `KernelOnly.PartB.CellRows.Row45`. +* `KernelOnly.PartB.CellRows.Row46`. +* `KernelOnly.PartB.CellRows.Row47`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +Independent exact product-cell lower bounds for row 32. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_32 : + ∀ j : Cell, + targetQ < (guCellInterval (32 : Cell) j).lo ∧ + targetQ < (gvCellInterval (32 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 33. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_33 : + ∀ j : Cell, + targetQ < (guCellInterval (33 : Cell) j).lo ∧ + targetQ < (gvCellInterval (33 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 34. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_34 : + ∀ j : Cell, + targetQ < (guCellInterval (34 : Cell) j).lo ∧ + targetQ < (gvCellInterval (34 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 35. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_35 : + ∀ j : Cell, + targetQ < (guCellInterval (35 : Cell) j).lo ∧ + targetQ < (gvCellInterval (35 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 36. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_36 : + ∀ j : Cell, + targetQ < (guCellInterval (36 : Cell) j).lo ∧ + targetQ < (gvCellInterval (36 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 37. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_37 : + ∀ j : Cell, + targetQ < (guCellInterval (37 : Cell) j).lo ∧ + targetQ < (gvCellInterval (37 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 38. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_38 : + ∀ j : Cell, + targetQ < (guCellInterval (38 : Cell) j).lo ∧ + targetQ < (gvCellInterval (38 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 39. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_39 : + ∀ j : Cell, + targetQ < (guCellInterval (39 : Cell) j).lo ∧ + targetQ < (gvCellInterval (39 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 40. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_40 : + ∀ j : Cell, + targetQ < (guCellInterval (40 : Cell) j).lo ∧ + targetQ < (gvCellInterval (40 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 41. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_41 : + ∀ j : Cell, + targetQ < (guCellInterval (41 : Cell) j).lo ∧ + targetQ < (gvCellInterval (41 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 42. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_42 : + ∀ j : Cell, + targetQ < (guCellInterval (42 : Cell) j).lo ∧ + targetQ < (gvCellInterval (42 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 43. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_43 : + ∀ j : Cell, + targetQ < (guCellInterval (43 : Cell) j).lo ∧ + targetQ < (gvCellInterval (43 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 44. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_44 : + ∀ j : Cell, + targetQ < (guCellInterval (44 : Cell) j).lo ∧ + targetQ < (gvCellInterval (44 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 45. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_45 : + ∀ j : Cell, + targetQ < (guCellInterval (45 : Cell) j).lo ∧ + targetQ < (gvCellInterval (45 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 46. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_46 : + ∀ j : Cell, + targetQ < (guCellInterval (46 : Cell) j).lo ∧ + targetQ < (gvCellInterval (46 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 47. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_47 : + ∀ j : Cell, + targetQ < (guCellInterval (47 : Cell) j).lo ∧ + targetQ < (gvCellInterval (47 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartB.CellRows.Row16`. +* `KernelOnly.PartB.CellRows.Row17`. +* `KernelOnly.PartB.CellRows.Row18`. +* `KernelOnly.PartB.CellRows.Row19`. +* `KernelOnly.PartB.CellRows.Row20`. +* `KernelOnly.PartB.CellRows.Row21`. +* `KernelOnly.PartB.CellRows.Row22`. +* `KernelOnly.PartB.CellRows.Row23`. +* `KernelOnly.PartB.CellRows.Row24`. +* `KernelOnly.PartB.CellRows.Row25`. +* `KernelOnly.PartB.CellRows.Row26`. +* `KernelOnly.PartB.CellRows.Row27`. +* `KernelOnly.PartB.CellRows.Row28`. +* `KernelOnly.PartB.CellRows.Row29`. +* `KernelOnly.PartB.CellRows.Row30`. +* `KernelOnly.PartB.CellRows.Row31`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +Independent exact product-cell lower bounds for row 16. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_16 : + ∀ j : Cell, + targetQ < (guCellInterval (16 : Cell) j).lo ∧ + targetQ < (gvCellInterval (16 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 17. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_17 : + ∀ j : Cell, + targetQ < (guCellInterval (17 : Cell) j).lo ∧ + targetQ < (gvCellInterval (17 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 18. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_18 : + ∀ j : Cell, + targetQ < (guCellInterval (18 : Cell) j).lo ∧ + targetQ < (gvCellInterval (18 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 19. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_19 : + ∀ j : Cell, + targetQ < (guCellInterval (19 : Cell) j).lo ∧ + targetQ < (gvCellInterval (19 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 20. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_20 : + ∀ j : Cell, + targetQ < (guCellInterval (20 : Cell) j).lo ∧ + targetQ < (gvCellInterval (20 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 21. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_21 : + ∀ j : Cell, + targetQ < (guCellInterval (21 : Cell) j).lo ∧ + targetQ < (gvCellInterval (21 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 22. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_22 : + ∀ j : Cell, + targetQ < (guCellInterval (22 : Cell) j).lo ∧ + targetQ < (gvCellInterval (22 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 23. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_23 : + ∀ j : Cell, + targetQ < (guCellInterval (23 : Cell) j).lo ∧ + targetQ < (gvCellInterval (23 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 24. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_24 : + ∀ j : Cell, + targetQ < (guCellInterval (24 : Cell) j).lo ∧ + targetQ < (gvCellInterval (24 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 25. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_25 : + ∀ j : Cell, + targetQ < (guCellInterval (25 : Cell) j).lo ∧ + targetQ < (gvCellInterval (25 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 26. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_26 : + ∀ j : Cell, + targetQ < (guCellInterval (26 : Cell) j).lo ∧ + targetQ < (gvCellInterval (26 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 27. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_27 : + ∀ j : Cell, + targetQ < (guCellInterval (27 : Cell) j).lo ∧ + targetQ < (gvCellInterval (27 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 28. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_28 : + ∀ j : Cell, + targetQ < (guCellInterval (28 : Cell) j).lo ∧ + targetQ < (gvCellInterval (28 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 29. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_29 : + ∀ j : Cell, + targetQ < (guCellInterval (29 : Cell) j).lo ∧ + targetQ < (gvCellInterval (29 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 30. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_30 : + ∀ j : Cell, + targetQ < (guCellInterval (30 : Cell) j).lo ∧ + targetQ < (gvCellInterval (30 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 31. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_31 : + ∀ j : Cell, + targetQ < (guCellInterval (31 : Cell) j).lo ∧ + targetQ < (gvCellInterval (31 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartB.CellRows.Row00`. +* `KernelOnly.PartB.CellRows.Row01`. +* `KernelOnly.PartB.CellRows.Row02`. +* `KernelOnly.PartB.CellRows.Row03`. +* `KernelOnly.PartB.CellRows.Row04`. +* `KernelOnly.PartB.CellRows.Row05`. +* `KernelOnly.PartB.CellRows.Row06`. +* `KernelOnly.PartB.CellRows.Row07`. +* `KernelOnly.PartB.CellRows.Row08`. +* `KernelOnly.PartB.CellRows.Row09`. +* `KernelOnly.PartB.CellRows.Row10`. +* `KernelOnly.PartB.CellRows.Row11`. +* `KernelOnly.PartB.CellRows.Row12`. +* `KernelOnly.PartB.CellRows.Row13`. +* `KernelOnly.PartB.CellRows.Row14`. +* `KernelOnly.PartB.CellRows.Row15`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +Independent exact product-cell lower bounds for row 00. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_00 : + ∀ j : Cell, + targetQ < (guCellInterval (0 : Cell) j).lo ∧ + targetQ < (gvCellInterval (0 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 01. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_01 : + ∀ j : Cell, + targetQ < (guCellInterval (1 : Cell) j).lo ∧ + targetQ < (gvCellInterval (1 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 02. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_02 : + ∀ j : Cell, + targetQ < (guCellInterval (2 : Cell) j).lo ∧ + targetQ < (gvCellInterval (2 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 03. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_03 : + ∀ j : Cell, + targetQ < (guCellInterval (3 : Cell) j).lo ∧ + targetQ < (gvCellInterval (3 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 04. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_04 : + ∀ j : Cell, + targetQ < (guCellInterval (4 : Cell) j).lo ∧ + targetQ < (gvCellInterval (4 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 05. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_05 : + ∀ j : Cell, + targetQ < (guCellInterval (5 : Cell) j).lo ∧ + targetQ < (gvCellInterval (5 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 06. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_06 : + ∀ j : Cell, + targetQ < (guCellInterval (6 : Cell) j).lo ∧ + targetQ < (gvCellInterval (6 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 07. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_07 : + ∀ j : Cell, + targetQ < (guCellInterval (7 : Cell) j).lo ∧ + targetQ < (gvCellInterval (7 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 08. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_08 : + ∀ j : Cell, + targetQ < (guCellInterval (8 : Cell) j).lo ∧ + targetQ < (gvCellInterval (8 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 09. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_09 : + ∀ j : Cell, + targetQ < (guCellInterval (9 : Cell) j).lo ∧ + targetQ < (gvCellInterval (9 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 10. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_10 : + ∀ j : Cell, + targetQ < (guCellInterval (10 : Cell) j).lo ∧ + targetQ < (gvCellInterval (10 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 11. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_11 : + ∀ j : Cell, + targetQ < (guCellInterval (11 : Cell) j).lo ∧ + targetQ < (gvCellInterval (11 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 12. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_12 : + ∀ j : Cell, + targetQ < (guCellInterval (12 : Cell) j).lo ∧ + targetQ < (gvCellInterval (12 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 13. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_13 : + ∀ j : Cell, + targetQ < (guCellInterval (13 : Cell) j).lo ∧ + targetQ < (gvCellInterval (13 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 14. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_14 : + ∀ j : Cell, + targetQ < (guCellInterval (14 : Cell) j).lo ∧ + targetQ < (gvCellInterval (14 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +section + +/-! +Independent exact product-cell lower bounds for row 15. +Build all 64 row modules sequentially before the final Part B assembly. +-/ + +@[expose] public section + +namespace GerverSofa.PartB +theorem cell_row_15 : + ∀ j : Cell, + targetQ < (guCellInterval (15 : Cell) j).lo ∧ + targetQ < (gvCellInterval (15 : Cell) j).lo := by + simp only [guCellInterval, gvCellInterval, cachedPath_eq, cachedCosine_eq, cachedSine_eq] + decide +kernel + +end GerverSofa.PartB + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartB.AllRows`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! Assembly of the 64 independently kernel-checked product-cell rows. -/ + +@[expose] public section + +namespace GerverSofa.PartB + +theorem all_cell_lower (i j : Cell) : + targetQ < (guCellInterval i j).lo ∧ + targetQ < (gvCellInterval i j).lo := by + fin_cases i + · exact cell_row_00 j + · exact cell_row_01 j + · exact cell_row_02 j + · exact cell_row_03 j + · exact cell_row_04 j + · exact cell_row_05 j + · exact cell_row_06 j + · exact cell_row_07 j + · exact cell_row_08 j + · exact cell_row_09 j + · exact cell_row_10 j + · exact cell_row_11 j + · exact cell_row_12 j + · exact cell_row_13 j + · exact cell_row_14 j + · exact cell_row_15 j + · exact cell_row_16 j + · exact cell_row_17 j + · exact cell_row_18 j + · exact cell_row_19 j + · exact cell_row_20 j + · exact cell_row_21 j + · exact cell_row_22 j + · exact cell_row_23 j + · exact cell_row_24 j + · exact cell_row_25 j + · exact cell_row_26 j + · exact cell_row_27 j + · exact cell_row_28 j + · exact cell_row_29 j + · exact cell_row_30 j + · exact cell_row_31 j + · exact cell_row_32 j + · exact cell_row_33 j + · exact cell_row_34 j + · exact cell_row_35 j + · exact cell_row_36 j + · exact cell_row_37 j + · exact cell_row_38 j + · exact cell_row_39 j + · exact cell_row_40 j + · exact cell_row_41 j + · exact cell_row_42 j + · exact cell_row_43 j + · exact cell_row_44 j + · exact cell_row_45 j + · exact cell_row_46 j + · exact cell_row_47 j + · exact cell_row_48 j + · exact cell_row_49 j + · exact cell_row_50 j + · exact cell_row_51 j + · exact cell_row_52 j + · exact cell_row_53 j + · exact cell_row_54 j + · exact cell_row_55 j + · exact cell_row_56 j + · exact cell_row_57 j + · exact cell_row_58 j + · exact cell_row_59 j + · exact cell_row_60 j + · exact cell_row_61 j + · exact cell_row_62 j + · exact cell_row_63 j + +end GerverSofa.PartB + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle004.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle004.lean new file mode 100644 index 0000000000..71ed7fbab2 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle004.lean @@ -0,0 +1,2382 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.Development.IntervalArithmetic.Foundations.Development002 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle002 +public import Mathlib.Analysis.Normed.Operator.Banach +public import Mathlib.LinearAlgebra.FiniteDimensional.Basic +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.Foundation.Batch002`. +-/ + +@[expose] public section + +noncomputable section + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.LeanCertGerverData`. +* `KernelOnly.LeanCertNamedConstAD`. +* `KernelOnly.LeanCertGerverExpr`. +* `KernelOnly.LeanCertGerverCorrespondence`. +* `KernelOnly.LeanCertNoDetKrawczyk`. +* `KernelOnly.LeanCertGerverNumericsCore`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Part A final adapter data + +The original Gerver boxes are affinely normalized to `[-1,1]^n`. +If `x = m + D u`, then the preconditioner is transformed from `C` to +`D⁻¹ C`. Consequently + +`I - (D⁻¹ C) (J_F(x) D) = D⁻¹ (I - C J_F(x)) D`, + +so the old weighted sup-norm contraction becomes the ordinary infinity norm +used by LeanCert. + +The preconditioner literals below are exact public copies of the frozen +rational data already used by `ExactReplay`. This avoids exposing private +helpers during simplification. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine + +/-- Construct an exact rational from an integer numerator and natural denominator. -/ +def q (n : Int) (d : Nat) : ℚ := (n : ℚ) / (d : ℚ) + +/-- The rational preconditioner table for the four reduced equations. -/ +def reducedCData : List (List ℚ) := [ + [q (-6807128249614081174405751646233895883477) 10000000000000000000000000000000000000000, q + (-1668645298254898823756872685901589912999) 5000000000000000000000000000000000000000, q + 142655469136580991746408771201083165281 250000000000000000000000000000000000000, q + 6979196385375907434754729126542237618887 10000000000000000000000000000000000000000], + [q (-1166509731502349263126377264338437200033) 2500000000000000000000000000000000000000, q + 12885386748281427252440540606364884831 80000000000000000000000000000000000000, q + 33867580317340694704135157308931896467 25000000000000000000000000000000000000, q + (-669198169890925059603288141447454387733) 500000000000000000000000000000000000000], + [q (-2734456716994644402025329684152137828373) 10000000000000000000000000000000000000000, q + (-8773012441591382751224116906117915601) 62500000000000000000000000000000000000, q + (-31169129168086947221083235454859786381) 156250000000000000000000000000000000000, q + 3097544571982855798592484554650267326733 10000000000000000000000000000000000000000], + [q 5937522534788503855395693041282403727707 10000000000000000000000000000000000000000, q + (-12894234217809317884645394772127946998229) 5000000000000000000000000000000000000000, q + (-8661560217304957931983485334759974222533) 5000000000000000000000000000000000000000, q + 51750746732148285574274925461942534764817 10000000000000000000000000000000000000000] +] + +/-- The rational preconditioner table for the twenty-two full equations. -/ +def fullCData : List (List ℚ) := [ + [q 97524664435861749 500000000000000000000000000000000000, q 0 1, q 0 1, q 0 1, q + 101771747759019027 100000000000000000, q 1 1, q 0 1, q 63813611575753437 50000000000000000, q + (-388441807573624079) 5000000000000000000, q 19675950003915553 31250000000000000, q + (-298520460968330237) 500000000000000000, q (-548415754484802953) 1000000000000000000, q + (-388441807573624079) 5000000000000000000, q 19675950003915553 31250000000000000, q + 20287597594763393 100000000000000000, q (-10119107089800079) 10000000000000000, q 0 1, q 0 1, + q 0 1, q 0 1, q 388441807573624079 5000000000000000000, q (-19675950003915553) + 31250000000000000], + [q 0 1, q 0 1, q 0 1, q 0 1, q 0 1, q 0 1, q 1 1, q 0 1, q 0 1, q 0 1, q 0 1, q 0 1, q 0 1, q 0 + 1, q 0 1, q 0 1, q 0 1, q 0 1, q 0 1, q 0 1, q 0 1, q 0 1], + [q (-803432388936903217) 10000000000000000000000000000000000000, q 0 1, q 0 1, q 0 1, q + 100605379900828451 50000000000000000, q 1 1, q 0 1, q 31765043860672787 12500000000000000, q + (-4704777879791199) 4000000000000000, q 121750850637699193 100000000000000000, q + (-122756605381830597) 100000000000000000, q (-30600542365273823) 312500000000000000, q + (-88097234973899999) 500000000000000000, q 121750850637699193 100000000000000000, q + 396110376767452643 1000000000000000000, q (-40111351612012509) 20000000000000000, q 0 1, q 0 + 1, q 0 1, q 0 1, q 88097234973899999 500000000000000000, q (-121750850637699193) + 100000000000000000], + [q 348543935143050227 50000000000000000000000000000000000, q 0 1, q 0 1, q 0 1, q + 48663249173571721 200000000000000000, q 0 1, q 1 1, q (-229748851313700347) + 1000000000000000000, q 38538669009926041 200000000000000000, q (-148514169684624997) + 250000000000000000, q (-77095605529021527) 200000000000000000, q 899174721266506223 + 100000000000000000000, q 38538669009926041 200000000000000000, q 101485830315375003 + 250000000000000000, q 475834949279834579 5000000000000000000, q (-48935313448682273) + 250000000000000000, q 0 1, q 0 1, q 0 1, q 0 1, q (-38538669009926041) 200000000000000000, q + (-101485830315375003) 250000000000000000], + [q (-27668786810187381) 62500000000000000000000000000000000, q 0 1, q 0 1, q 0 1, q + 156689147323938593 100000000000000000, q 1 1, q 0 1, q 6806785234747033 4000000000000000, q + (-770251148686299847) 1000000000000000000, q 839507200167063927 1000000000000000000, q + (-32364013024529501) 40000000000000000, q (-325328497901119923) 5000000000000000000, q + (-770251148686299847) 1000000000000000000, q 839507200167063927 1000000000000000000, q + 107433644407840839 1000000000000000000, q (-203691379660578653) 250000000000000000, q 0 1, q 0 + 1, q 0 1, q 0 1, q (-229748851313700181) 1000000000000000000, q (-839507200167063927) + 1000000000000000000], + [q 667707347369355603 100000000000000000000000000000000000, q 0 1, q 0 1, q 0 1, q + 39302260617100937 200000000000000000, q 0 1, q 1 1, q 810045947451984161 10000000000000000000, + q 770773380198521041 1000000000000000000, q (-376226714953999619) 1000000000000000000, q + (-67547253722371331) 125000000000000000, q (-317030024240986261) 100000000000000000000, q + 770773380198521041 1000000000000000000, q (-376226714953999619) 1000000000000000000, q + (-50799288029152201) 50000000000000000, q (-293762044611903417) 1000000000000000000, q 0 1, q + 0 1, q 0 1, q 0 1, q (-770773380198521041) 1000000000000000000, q (-623773285046000381) + 1000000000000000000], + [q (-27668786810187381) 62500000000000000000000000000000000, q 0 1, q 611138637517184627 + 10000000000000000000, q 48547105024120657 62500000000000000, q (-142441420640562477) + 500000000000000000, q 1 1, q 0 1, q 107773638564961749 125000000000000000, q + (-91076956856199917) 250000000000000000, q 461505893957135871 1000000000000000000, q + (-195317298704084513) 500000000000000000, q (-32209663591571687) 1000000000000000000, q + (-91076956856199917) 250000000000000000, q 461505893957135871 1000000000000000000, q + (-45310771987942769) 250000000000000000, q 376036543315996397 1000000000000000000, q (-1) 1, q + 0 1, q 0 1, q 0 1, q (-635692172575200387) 1000000000000000000, q (-461505893957135871) + 1000000000000000000], + [q 667707347369355603 100000000000000000000000000000000000, q 0 1, q (-133696152744215091) + 100000000000000000, q (-31490225467869859) 50000000000000000, q 12045884354915673 + 125000000000000000, q 0 1, q 1 1, q (-229748851313700347) 1000000000000000000, q + 12043334065601893 62500000000000000, q (-594056678738499877) 1000000000000000000, q + (-385478027645107413) 1000000000000000000, q 449587360633251377 50000000000000000000, q + 12043334065601893 62500000000000000, q (-594056678738499877) 1000000000000000000, q + 951669898559669991 10000000000000000000, q (-195741253794729203) 1000000000000000000, q 0 1, q + (-1) 1, q 0 1, q 0 1, q (-12043334065601893) 62500000000000000, q (-405943321261500123) + 1000000000000000000], + [q 498465919198540053 500000000000000000, q (-391372890930701059) 5000000000000000000, q + (-8938515563507099) 6250000000000000, q (-55619746202997561) 250000000000000000, q + 354753639572627011 500000000000000000, q 1 1, q 0 1, q 106356019292922399 50000000000000000, q + (-18512557434314989) 40000000000000000, q 52469200010441497 50000000000000000, q + (-102115972928981447) 100000000000000000, q 26142772207772183 62500000000000000, q + (-18512557434314989) 40000000000000000, q 52469200010441497 50000000000000000, q + 29978282170118999 2500000000000000000, q (-308810164152310551) 500000000000000000, q (-1) 1, q + 0 1, q (-1) 1, q 0 1, q (-53718606414212533) 100000000000000000, q (-52469200010441497) + 50000000000000000], + [q (-782745781861401979) 10000000000000000000, q (-498465919198540053) 500000000000000000, q + (-277739416158080399) 1000000000000000000, q (-295318582899254667) 500000000000000000, q + (-18368646378566663) 125000000000000000, q 0 1, q 1 1, q (-133419044772954399) + 250000000000000000000000000000000, q 14163773178071801 250000000000000000000000000000000, q + (-1) 1, q 79939871278032317 250000000000000000000000000000000, q (-2418968094552299) + 125000000000000000000000000000000, q 14163773178071801 250000000000000000000000000000000, q + (-1) 1, q 470629071136429359 5000000000000000000000000000000000, q (-223711639524848453) + 5000000000000000000000000000000000, q 0 1, q (-1) 1, q 0 1, q (-1) 1, q (-14163773178071801) + 250000000000000000000000000000000, q (-21329108080229053) 625000000000000000000000000000000], + [q (-97524664435861749) 500000000000000000000000000000000000, q 0 1, q 0 1, q 0 1, q + (-101771747759019027) 100000000000000000, q 0 1, q 0 1, q (-63813611575753437) + 50000000000000000, q 388441807573624079 5000000000000000000, q (-19675950003915553) + 31250000000000000, q 298520460968330237 500000000000000000, q 548415754484802953 + 1000000000000000000, q 388441807573624079 5000000000000000000, q (-19675950003915553) + 31250000000000000, q (-20287597594763393) 100000000000000000, q 10119107089800079 + 10000000000000000, q 0 1, q 0 1, q 0 1, q 0 1, q (-388441807573624079) 5000000000000000000, q + 19675950003915553 31250000000000000], + [q (-349465940599428639) 50000000000000000000000000000000000, q 0 1, q 0 1, q 0 1, q + (-25253489731359111) 2500000000000000000000000000000000, q 0 1, q 0 1, q 50000000000000011 + 50000000000000000, q (-353674953581839119) 5000000000000000000000000000000000, q + 94007553259298153 2000000000000000000000000000000000, q (-5928343202681263) + 25000000000000000000000000000000, q (-173331002701677877) 10000000000000000000000000000000000, + q (-353674953581839119) 5000000000000000000000000000000000, q 94007553259298153 + 2000000000000000000000000000000000, q (-288351357559389053) + 50000000000000000000000000000000000, q (-899167441101047079) + 10000000000000000000000000000000000, q 0 1, q 0 1, q 0 1, q 0 1, q 353674953581839119 + 5000000000000000000000000000000000, q (-94007553259298153) 2000000000000000000000000000000000], + [q 199958107491582403 10000000000000000000000000000000000000000000000000000, q 0 1, q 0 1, q 0 + 1, q 122021605728424423 500000000000000000, q 0 1, q 0 1, q 770104303222080677 + 1000000000000000000, q 193360860585517491 1000000000000000000, q 407267153261943571 + 1000000000000000000, q (-383870749384345733) 1000000000000000000, q (-150698973735099509) + 5000000000000000000, q 193360860585517491 1000000000000000000, q 407267153261943571 + 1000000000000000000, q 59669749873825801 625000000000000000, q (-98153004518806597) + 500000000000000000, q 0 1, q 0 1, q 0 1, q 0 1, q (-193360860585517491) 1000000000000000000, q + (-407267153261943571) 1000000000000000000], + [q (-466502263483670063) 1000000000000000000000000000000000000, q 0 1, q 0 1, q 0 1, q + (-50741366468655913) 25000000000000000, q 0 1, q 0 1, q (-50425164328510137) + 20000000000000000, q 80468307190360827 500000000000000000, q (-124842964508786847) + 100000000000000000, q 6283806471937059 5000000000000000, q 493376058472616841 + 5000000000000000000, q 80468307190360827 500000000000000000, q (-124842964508786847) + 100000000000000000, q (-403274191369431989) 1000000000000000000, q 10096930279303431 + 5000000000000000, q 0 1, q 0 1, q 0 1, q 0 1, q (-80468307190360827) 500000000000000000, q + 124842964508786847 100000000000000000], + [q 0 1, q 0 1, q 0 1, q 0 1, q (-74404321145684893) 50000000000000000, q 0 1, q 0 1, q + (-30804172128883227) 20000000000000000, q (-386721721171035093) 1000000000000000000, q + (-814534306523887031) 1000000000000000000, q 153548299753738271 200000000000000000, q + 150698973735099509 2500000000000000000, q (-386721721171035093) 1000000000000000000, q + (-814534306523887031) 1000000000000000000, q 585810480789687893 1000000000000000000, q + 20448330548652467 20000000000000000, q 0 1, q 0 1, q 0 1, q 0 1, q 386721721171035093 + 1000000000000000000, q 814534306523887031 1000000000000000000], + [q 0 1, q 0 1, q 0 1, q 0 1, q (-488086422913697859) 1000000000000000000, q 0 1, q 0 1, q + (-30804172128883227) 20000000000000000, q (-386721721171035093) 1000000000000000000, q + (-814534306523887031) 1000000000000000000, q 153548299753738271 200000000000000000, q + 150698973735099509 2500000000000000000, q (-386721721171035093) 1000000000000000000, q + (-814534306523887031) 1000000000000000000, q 585810480789687893 1000000000000000000, q + 20448330548652467 20000000000000000, q 0 1, q 0 1, q 0 1, q 0 1, q 386721721171035093 + 1000000000000000000, q 814534306523887031 1000000000000000000], + [q 0 1, q 0 1, q 1 1, q 0 1, q (-244043211456848957) 1000000000000000000, q 0 1, q 0 1, q + (-770104303222080677) 1000000000000000000, q (-193360860585517547) 1000000000000000000, q + (-407267153261943571) 1000000000000000000, q 191935374692172811 500000000000000000, q + 301397947470199087 10000000000000000000, q (-193360860585517547) 1000000000000000000, q + (-407267153261943571) 1000000000000000000, q (-477357998990606547) 5000000000000000000, q + 98153004518806597 500000000000000000, q 0 1, q 0 1, q 0 1, q 0 1, q 193360860585517547 + 1000000000000000000, q 407267153261943571 1000000000000000000], + [q 0 1, q 0 1, q 0 1, q 1 1, q (-32926249572211761) 20000000000000000, q 0 1, q 0 1, q + (-8197382535470743) 6250000000000000, q 29041696495897041 62500000000000000, q + (-304347948359896703) 500000000000000000, q 326889265645238569 500000000000000000, q + 513317328155524291 10000000000000000000, q 29041696495897041 62500000000000000, q + (-304347948359896703) 500000000000000000, q (-63326938273327693) 250000000000000000, q + 42775732448415943 25000000000000000, q 0 1, q 0 1, q 0 1, q 0 1, q (-29041696495897041) + 62500000000000000, q 304347948359896703 500000000000000000], + [q 1 1, q 0 1, q 0 1, q 0 1, q (-101771747759019027) 100000000000000000, q 0 1, q 0 1, q + (-31906805787876713) 25000000000000000, q 388441807573624287 5000000000000000000, q + (-314815200062648959) 500000000000000000, q 597040921936660363 1000000000000000000, q + 548415754484802953 1000000000000000000, q 388441807573624287 5000000000000000000, q + (-314815200062648959) 500000000000000000, q (-12679748496727131) 62500000000000000, q + 10119107089800079 10000000000000000, q 0 1, q 0 1, q 0 1, q 0 1, q (-388441807573624287) + 5000000000000000000, q 314815200062648959 500000000000000000], + [q 0 1, q 1 1, q 0 1, q 0 1, q 0 1, q 0 1, q 0 1, q (-1) 1, q 0 1, q 0 1, q 0 1, q 0 1, q 0 1, q + 0 1, q 0 1, q 0 1, q 0 1, q 0 1, q 0 1, q 0 1, q 0 1, q 0 1], + [q (-498591875083207211) 50000000000000000000000000000000000, q 0 1, q 0 1, q 0 1, q + (-29185445604164767) 100000000000000000, q 0 1, q 0 1, q 79792970670302621 200000000000000000, + q (-280736398130924159) 1000000000000000000, q (-546891343398928753) 1000000000000000000, q + (-19887038235377269) 100000000000000000, q (-31228805607184943) 2000000000000000000, q + (-280736398130924159) 1000000000000000000, q (-546891343398928753) 1000000000000000000, q + (-62553783297256041) 500000000000000000, q 55986183994322411 250000000000000000, q 0 1, q 0 1, + q 0 1, q 0 1, q 280736398130924159 1000000000000000000, q 546891343398928753 + 1000000000000000000], + [q 354149563585840613 100000000000000000000000000000000000, q 0 1, q 0 1, q 0 1, q + 142456721371719919 50000000000000000, q 0 1, q 0 1, q 173231204346099177 50000000000000000, q + (-515769368712372689) 100000000000000000, q 59375225347885019 50000000000000000, q + (-5396865719265527) 3125000000000000, q (-135595994488679511) 1000000000000000000, q + (-515769368712372689) 100000000000000000, q 59375225347885019 50000000000000000, q + 55842855499643207 25000000000000000, q (-656462321731497211) 1000000000000000000, q 0 1, q 0 + 1, q 0 1, q 0 1, q 515769368712372689 100000000000000000, q (-59375225347885019) + 50000000000000000] +] + +/-- Interpret rational row lists as a square matrix, using zero for missing entries. -/ +def listMatrix {n : Nat} (rows : List (List ℚ)) : + Matrix (Fin n) (Fin n) ℚ := + fun i j => ExactReplay.getQ (ExactReplay.getRow rows i.1) j.1 + +/-- The rational midpoint of a selected interval coordinate. -/ +def boxMid (box : List RatInterval) (i : Nat) : ℚ := + let z := ExactReplay.getI box i + (z.lo + z.hi) / 2 + +/-- Half the width of a selected rational interval coordinate. -/ +def boxRad (box : List RatInterval) (i : Nat) : ℚ := + let z := ExactReplay.getI box i + (z.hi - z.lo) / 2 + +/-- Map normalized coordinates to the given box using its midpoints and radii. -/ +def affineFromBox {n : Nat} (box : List RatInterval) + (u : Fin n → ℝ) : Fin n → ℝ := + fun i => (boxMid box i.1 : ℝ) + (boxRad box i.1 : ℝ) * u i + +/-- Subtract each box midpoint and divide by its coordinate radius. -/ +def normalizeToBox {n : Nat} (box : List RatInterval) + (x : Fin n → ℝ) : Fin n → ℝ := + fun i => (x i - (boxMid box i.1 : ℝ)) / (boxRad box i.1 : ℝ) + +/-- The coordinate box with interval `[-1, 1]` in every dimension. -/ +def unitBox {n : Nat} : Fin n → IntervalRat := + fun _ => + { lo := -1 + hi := 1 + le := by norm_num } + +/-- The rational origin used as the normalized Newton center. -/ +def zeroCenter {n : Nat} : Fin n → ℚ := fun _ => 0 + +/-- Rescale each preconditioner row by the inverse box radius. -/ +def scaledPreconditioner {n : Nat} + (box : List RatInterval) (rows : List (List ℚ)) : + Matrix (Fin n) (Fin n) ℚ := + fun i j => (boxRad box i.1)⁻¹ * listMatrix rows i j + +/-- The preconditioner for the normalized four-dimensional system. -/ +def reducedY : Matrix (Fin 4) (Fin 4) ℚ := + scaledPreconditioner ExactReplay.reducedInputBox reducedCData + +/-- The preconditioner for the normalized twenty-two-dimensional system. -/ +def fullY : Matrix (Fin 22) (Fin 22) ℚ := + scaledPreconditioner ExactReplay.fullInputBox fullCData + +/-- Map the normalized unit box into the reduced parameter box. -/ +def reducedAffine : (Fin 4 → ℝ) → Fin 4 → ℝ := + affineFromBox ExactReplay.reducedInputBox + +/-- Map the normalized unit box into the full Romik parameter box. -/ +def fullAffine : (Fin 22 → ℝ) → Fin 22 → ℝ := + affineFromBox ExactReplay.fullInputBox + +/-- Convert reduced parameter coordinates to normalized box coordinates. -/ +def reducedNormalize : (Fin 4 → ℝ) → Fin 4 → ℝ := + normalizeToBox ExactReplay.reducedInputBox + +/-- A deliberately generous verified contraction target. +The legacy exact bounds are ~5.2e-13 (4D) and ~8.6e-11 (22D), so `1/100` +leaves many orders of magnitude of slack while keeping the normalized self-map +well inside the unit box. -/ +def qTarget : ℚ := 1 / 100 + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Minimal named-constant extension of LeanCert's AD soundness layer + +LeanCert's computable total dual evaluator already evaluates +`Expr.namedConst c` as `DualInterval.ofMathConst c`, whose derivative component +is the singleton interval `{0}`. Its public `ADSupported` predicate, however, +does not currently include `namedConst`. + +The Gerver systems necessarily contain the exact constant `Real.pi`. This file +adds exactly one missing syntactic case -- differentiable named mathematical +constants -- while reusing LeanCert's existing evaluator, interval Jacobian, +matrix norm machinery, Newton map, and contraction theorem unchanged. + +No interval arithmetic is reimplemented here. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +open LeanCert.Engine.Optimization + +/-- The LeanCert AD fragment plus named mathematical constants. +Every constructor here is everywhere differentiable. -/ +inductive ADConstSupported : Expr → Prop where + | const (q : ℚ) : ADConstSupported (.const q) + | var (idx : Nat) : ADConstSupported (.var idx) + | add {a b : Expr} : + ADConstSupported a → ADConstSupported b → ADConstSupported (.add a b) + | mul {a b : Expr} : + ADConstSupported a → ADConstSupported b → ADConstSupported (.mul a b) + | neg {a : Expr} : ADConstSupported a → ADConstSupported (.neg a) + | exp {a : Expr} : ADConstSupported a → ADConstSupported (.exp a) + | sin {a : Expr} : ADConstSupported a → ADConstSupported (.sin a) + | cos {a : Expr} : ADConstSupported a → ADConstSupported (.cos a) + | namedConst (c : MathConst) : ADConstSupported (.namedConst c) + +/-- Computable recognition of the exact fragment used by the Gerver models. -/ +def checkADConstSupported : Expr → Bool + | .const _ | .var _ | .namedConst _ => true + | .add a b | .mul a b => checkADConstSupported a && checkADConstSupported b + | .neg a | .exp a | .sin a | .cos a => checkADConstSupported a + | _ => false + +theorem checkADConstSupported_correct {e : Expr} + (h : checkADConstSupported e = true) : ADConstSupported e := by + induction e with + | const q => exact .const q + | var i => exact .var i + | add a b iha ihb => + simp only [checkADConstSupported, Bool.and_eq_true] at h + exact .add (iha h.1) (ihb h.2) + | mul a b iha ihb => + simp only [checkADConstSupported, Bool.and_eq_true] at h + exact .mul (iha h.1) (ihb h.2) + | neg a ih => + exact .neg (ih h) + | exp a ih => + exact .exp (ih h) + | sin a ih => + exact .sin (ih h) + | cos a ih => + exact .cos (ih h) + | namedConst c => + exact .namedConst c + | inv _ _ | log _ _ | atan _ _ | arsinh _ _ | atanh _ _ | sinc _ _ + | erf _ _ | sinh _ _ | cosh _ _ | tanh _ _ | sqrt _ _ => + simp [checkADConstSupported] at h + +theorem ADConstSupported.toCore {e : Expr} (h : ADConstSupported e) : + ExprSupportedCore e := by + induction h with + | const q => exact .const q + | var i => exact .var i + | add _ _ iha ihb => exact .add iha ihb + | mul _ _ iha ihb => exact .mul iha ihb + | neg _ ih => exact .neg ih + | exp _ ih => exact .exp ih + | sin _ ih => exact .sin ih + | cos _ ih => exact .cos ih + | namedConst c => exact .namedConst c + +/-- Dual-evaluator domain validity is likewise automatic for this fragment. -/ +theorem ADConstSupported.domainValidDual {e : Expr} (h : ADConstSupported e) + (ρ : DualEnv) (cfg : EvalConfig) : evalDomainValidDual e ρ cfg := by + induction h with + | const _ => trivial + | var _ => trivial + | add _ _ iha ihb => exact ⟨iha, ihb⟩ + | mul _ _ iha ihb => exact ⟨iha, ihb⟩ + | neg _ ih => exact ih + | exp _ ih => exact ih + | sin _ ih => exact ih + | cos _ ih => exact ih + | namedConst _ => trivial + +/-! ## Calculus layer -/ + +theorem evalFin_differentiable_const {n : Nat} (e : Expr) + (h : ADConstSupported e) : + Differentiable ℝ (evalFin (n := n) e) := by + induction h with + | const q => + rw [show evalFin (n := n) (.const q) = + (fun _ : Fin n → ℝ => (q : ℝ)) from rfl] + exact differentiable_const _ + | var i => + by_cases hi : i < n + · rw [show evalFin (n := n) (.var i) = + (fun x : Fin n → ℝ => x ⟨i, hi⟩) by + funext x + simp [evalFin, finEnv, hi]] + exact differentiable_apply _ + · rw [show evalFin (n := n) (.var i) = + (fun _ : Fin n → ℝ => 0) by + funext x + simp [evalFin, finEnv, hi]] + exact differentiable_const _ + | add _ _ iha ihb => + rw [show evalFin (n := n) (.add _ _) = + evalFin (n := n) _ + evalFin (n := n) _ from rfl] + exact iha.add ihb + | mul _ _ iha ihb => + rw [show evalFin (n := n) (.mul _ _) = + evalFin (n := n) _ * evalFin (n := n) _ from rfl] + exact iha.mul ihb + | neg _ ih => + rw [show evalFin (n := n) (.neg _) = -evalFin (n := n) _ from rfl] + exact ih.neg + | exp _ ih => + rw [show evalFin (n := n) (.exp _) = + Real.exp ∘ evalFin (n := n) _ from rfl] + exact Real.differentiable_exp.comp ih + | sin _ ih => + rw [show evalFin (n := n) (.sin _) = + Real.sin ∘ evalFin (n := n) _ from rfl] + exact Real.differentiable_sin.comp ih + | cos _ ih => + rw [show evalFin (n := n) (.cos _) = + Real.cos ∘ evalFin (n := n) _ from rfl] + exact Real.differentiable_cos.comp ih + | namedConst c => + rw [show evalFin (n := n) (.namedConst c) = + (fun _ : Fin n → ℝ => c.toReal) from rfl] + exact differentiable_const _ + +theorem evalAlong_differentiable_const (e : Expr) (h : ADConstSupported e) + (ρ : Nat → ℝ) (idx : Nat) : + Differentiable ℝ (Expr.evalAlong e ρ idx) := by + induction h with + | const q => + simp only [Expr.evalAlong_const'] + exact differentiable_const _ + | var i => + by_cases hi : i = idx + · subst i + simp only [Expr.evalAlong_var_active] + exact differentiable_id + · simp only [Expr.evalAlong_var_passive _ _ _ hi] + exact differentiable_const _ + | add _ _ iha ihb => + simp only [Expr.evalAlong_add] + exact iha.add ihb + | mul _ _ iha ihb => + simp only [Expr.evalAlong_mul] + exact iha.mul ihb + | neg _ ih => + simp only [Expr.evalAlong_neg] + exact ih.neg + | exp _ ih => + simp only [Expr.evalAlong_exp] + exact Real.differentiable_exp.comp ih + | sin _ ih => + simp only [Expr.evalAlong_sin] + exact Real.differentiable_sin.comp ih + | cos _ ih => + simp only [Expr.evalAlong_cos] + exact Real.differentiable_cos.comp ih + | namedConst c => + rw [show Expr.evalAlong (.namedConst c) ρ idx = + (fun _ : ℝ => c.toReal) from rfl] + exact differentiable_const _ + +/-- LeanCert's computable total AD derivative theorem, extended by the single +missing `namedConst` case. The computed interval is unchanged. -/ +theorem evalDualTotalCore_der_correct_idx_const + (e : Expr) (h : ADConstSupported e) + (ρReal : Nat → ℝ) (ρInt : IntervalEnv) (idx : Nat) + (hρ : ∀ i, ρReal i ∈ ρInt i) + (x : ℝ) (hx : x ∈ ρInt idx) (cfg : EvalConfig) : + deriv (Expr.evalAlong e ρReal idx) x ∈ + (LeanCert.Internal.AD.evalTotalCore e + (mkDualEnvCore ρInt idx) cfg).der := by + have hmem : ∀ i, Expr.updateVar ρReal idx x i ∈ + (mkDualEnvCore ρInt idx i).val := by + simpa only [mkDualEnvCore, mkDualEnv] using + (updateVar_mem_mkDualEnv_val ρReal ρInt idx x hx hρ) + induction h generalizing x with + | const q => + simp only [Expr.evalAlong_const', deriv_const, + LeanCert.Internal.AD.evalTotalCore, DualInterval.const] + exact_mod_cast IntervalRat.mem_singleton 0 + | var i => + by_cases hi : i = idx + · subst i + simp only [Expr.evalAlong_var_active, LeanCert.Internal.AD.evalTotalCore, + mkDualEnvCore, ↓reduceIte, DualInterval.varActive, deriv_id] + exact_mod_cast IntervalRat.mem_singleton 1 + · simp only [Expr.evalAlong_var_passive _ _ _ hi, deriv_const, + LeanCert.Internal.AD.evalTotalCore, mkDualEnvCore, ite_eq_right hi, + DualInterval.varPassive] + exact_mod_cast IntervalRat.mem_singleton 0 + | add ha hb iha ihb => + have hda := evalAlong_differentiable_const _ ha ρReal idx + have hdb := evalAlong_differentiable_const _ hb ρReal idx + simp only [Expr.evalAlong_add_pi, deriv_add (hda x) (hdb x), + LeanCert.Internal.AD.evalTotalCore, DualInterval.add] + exact IntervalRat.mem_add (iha x hx hmem) (ihb x hx hmem) + | mul ha hb iha ihb => + have hda := evalAlong_differentiable_const _ ha ρReal idx + have hdb := evalAlong_differentiable_const _ hb ρReal idx + simp only [Expr.evalAlong_mul_pi, deriv_mul (hda x) (hdb x), + LeanCert.Internal.AD.evalTotalCore, DualInterval.mul] + have hvalA := LeanCert.Engine.evalDualTotalCore_val_correct _ ha.toCore + (Expr.updateVar ρReal idx x) (mkDualEnvCore ρInt idx) cfg hmem + (ha.domainValidDual (mkDualEnvCore ρInt idx) cfg) + have hvalB := LeanCert.Engine.evalDualTotalCore_val_correct _ hb.toCore + (Expr.updateVar ρReal idx x) (mkDualEnvCore ρInt idx) cfg hmem + (hb.domainValidDual (mkDualEnvCore ρInt idx) cfg) + exact IntervalRat.mem_add + (IntervalRat.mem_mul (iha x hx hmem) hvalB) + (IntervalRat.mem_mul hvalA (ihb x hx hmem)) + | neg ha ih => + have hd := evalAlong_differentiable_const _ ha ρReal idx + simp only [Expr.evalAlong_neg_pi, deriv.neg, + LeanCert.Internal.AD.evalTotalCore, DualInterval.neg] + exact IntervalRat.mem_neg (ih x hx hmem) + | @exp a ha ih => + have hd := evalAlong_differentiable_const a ha ρReal idx + simp only [Expr.evalAlong_exp, deriv_exp (hd.differentiableAt), + LeanCert.Internal.AD.evalTotalCore, DualInterval.expCore] + have hval := LeanCert.Engine.evalDualTotalCore_val_correct a ha.toCore + (Expr.updateVar ρReal idx x) (mkDualEnvCore ρInt idx) cfg hmem + (ha.domainValidDual (mkDualEnvCore ρInt idx) cfg) + exact IntervalRat.mem_mul + (IntervalRat.mem_expComputable hval cfg.taylorDepth) (ih x hx hmem) + | @sin a ha ih => + have hd := evalAlong_differentiable_const a ha ρReal idx + simp only [Expr.evalAlong_sin, deriv_sin (hd.differentiableAt), + LeanCert.Internal.AD.evalTotalCore, DualInterval.sinCore] + have hval := LeanCert.Engine.evalDualTotalCore_val_correct a ha.toCore + (Expr.updateVar ρReal idx x) (mkDualEnvCore ρInt idx) cfg hmem + (ha.domainValidDual (mkDualEnvCore ρInt idx) cfg) + exact IntervalRat.mem_mul + (IntervalRat.mem_cosComputable hval cfg.taylorDepth) (ih x hx hmem) + | @cos a ha ih => + have hd := evalAlong_differentiable_const a ha ρReal idx + simp only [Expr.evalAlong_cos, deriv_cos (hd.differentiableAt), + LeanCert.Internal.AD.evalTotalCore, DualInterval.cosCore] + have hval := LeanCert.Engine.evalDualTotalCore_val_correct a ha.toCore + (Expr.updateVar ρReal idx x) (mkDualEnvCore ρInt idx) cfg hmem + (ha.domainValidDual (mkDualEnvCore ρInt idx) cfg) + exact IntervalRat.mem_mul + (IntervalRat.mem_neg + (IntervalRat.mem_sinComputable hval cfg.taylorDepth)) + (ih x hx hmem) + | namedConst c => + rw [show Expr.evalAlong (.namedConst c) ρReal idx = + (fun _ : ℝ => c.toReal) from rfl] + simpa [LeanCert.Internal.AD.evalTotalCore, DualInterval.ofMathConst] using + (IntervalRat.mem_singleton (0 : ℚ)) + +/-! ## Krawczyk calculus adapters retaining LeanCert's data path -/ + +theorem fderiv_single_eq_deriv_evalAlong_const {n : Nat} + (e : Expr) (h : ADConstSupported e) + (x : Fin n → ℝ) (j : Fin n) : + fderiv ℝ (evalFin (n := n) e) x (Pi.single j 1) = + deriv (Expr.evalAlong e (finEnv x) j.val) (x j) := by + have hout : HasFDerivAt (evalFin (n := n) e) + (fderiv ℝ (evalFin (n := n) e) (Function.update x j (x j))) + (Function.update x j (x j)) := + (evalFin_differentiable_const (n := n) e h).differentiableAt.hasFDerivAt + have hcomp := hout.comp_hasDerivAt (x j) (hasDerivAt_update x j (x j)) + rw [Function.update_eq_self] at hcomp + have heq : (evalFin (n := n) e ∘ Function.update x j) = + Expr.evalAlong e (finEnv x) j.val := by + funext t + simp only [Function.comp_apply, evalFin, Expr.evalAlong_eq] + rw [finEnv_update] + rw [heq] at hcomp + exact hcomp.deriv.symm + +theorem systemEval_differentiable_const {n : Nat} + (F : Fin n → Expr) (h : ∀ i, ADConstSupported (F i)) : + Differentiable ℝ (systemEval F) := by + rw [differentiable_pi] + intro i + exact evalFin_differentiable_const (F i) (h i) + +theorem jacobianAt_apply_const {n : Nat} + (F : Fin n → Expr) (h : ∀ i, ADConstSupported (F i)) + (x : Fin n → ℝ) (i j : Fin n) : + jacobianAt F x i j = + deriv (Expr.evalAlong (F i) (finEnv x) j.val) (x j) := by + rw [jacobianAt, LinearMap.toMatrix'_apply] + change fderiv ℝ (systemEval F) x (Pi.single j 1) i = _ + rw [show systemEval F = (fun x i => evalFin (F i) x) from rfl] + have hpi := fderiv_pi (𝕜 := ℝ) (x := x) + (φ := fun i => evalFin (F i)) + (fun i => (evalFin_differentiable_const (F i) (h i)).differentiableAt) + rw [hpi] + simp only [ContinuousLinearMap.coe_pi'] + exact fderiv_single_eq_deriv_evalAlong_const (F i) (h i) x j + +theorem jacobianAt_mem_intervalJacobian_const {n : Nat} + (F : Fin n → Expr) (h : ∀ i, ADConstSupported (F i)) + (X : Fin n → IntervalRat) (x : Fin n → ℝ) + (hx : FinBoxMem x X) (cfg : EvalConfig) (i j : Fin n) : + jacobianAt F x i j ∈ intervalJacobian F X cfg i j := by + rw [jacobianAt_apply_const F h x i j] + exact evalDualTotalCore_der_correct_idx_const (F i) (h i) + (finEnv x) (finBoxEnv X) j.val (finEnv_mem_finBoxEnv hx) + (x j) (by + simpa only [finBoxEnv, j.isLt, dite_true] using hx j) cfg + +theorem newtonMap_differentiable_const {n : Nat} + (Y : Matrix (Fin n) (Fin n) ℝ) + (F : Fin n → Expr) (h : ∀ i, ADConstSupported (F i)) : + Differentiable ℝ (newtonMap Y F) := by + have hY : Differentiable ℝ (fun x => matrixCLM Y (systemEval F x)) := + (matrixCLM Y).differentiable.comp (systemEval_differentiable_const F h) + rw [show newtonMap Y F = + id - (fun x => matrixCLM Y (systemEval F x)) by + funext x + rfl] + exact differentiable_id.sub hY + +theorem newtonMap_fderiv_matrix_const {n : Nat} + (Y : Matrix (Fin n) (Fin n) ℝ) + (F : Fin n → Expr) (h : ∀ i, ADConstSupported (F i)) + (x : Fin n → ℝ) : + LinearMap.toMatrix' (fderiv ℝ (newtonMap Y F) x).toLinearMap = + 1 - Y * jacobianAt F x := by + have hF : HasFDerivAt (systemEval F) (fderiv ℝ (systemEval F) x) x := + (systemEval_differentiable_const F h).differentiableAt.hasFDerivAt + have hY := (matrixCLM Y).hasFDerivAt.comp x hF + have hg : HasFDerivAt (newtonMap Y F) + (ContinuousLinearMap.id ℝ _ - + (matrixCLM Y).comp (fderiv ℝ (systemEval F) x)) x := by + change HasFDerivAt (fun z => z - matrixCLM Y (systemEval F z)) _ x + exact (hasFDerivAt_id x).sub hY + rw [hg.fderiv] + change LinearMap.toMatrix' ((ContinuousLinearMap.id ℝ _ - + (matrixCLM Y).comp (fderiv ℝ (systemEval F) x)).toLinearMap) = _ + rw [ContinuousLinearMap.toLinearMap_sub] + change LinearMap.toMatrix' (1 - + (matrixCLM Y).toLinearMap.comp + (fderiv ℝ (systemEval F) x).toLinearMap) = _ + rw [map_sub, LinearMap.toMatrix'_one, LinearMap.toMatrix'_comp] + have hmatY : LinearMap.toMatrix' (matrixCLM Y).toLinearMap = Y := by + change LinearMap.toMatrix' (Matrix.mulVecLin Y) = Y + exact LinearMap.toMatrix'_toLin' Y + rw [hmatY] + rfl + +theorem newtonMap_fderiv_norm_le_const {n : Nat} + (Y : Matrix (Fin n) (Fin n) ℚ) + (F : Fin n → Expr) (h : ∀ i, ADConstSupported (F i)) + (X : Fin n → IntervalRat) (x : Fin n → ℝ) + (hx : FinBoxMem x X) (cfg : EvalConfig) : + ‖fderiv ℝ (newtonMap (Y.map fun q => (q : ℝ)) F) x‖ ≤ + (intervalMatrixBound + (preconditionedJacobian Y (intervalJacobian F X cfg)) : ℝ) := by + rw [← Matrix.linfty_opNorm_toMatrix] + rw [newtonMap_fderiv_matrix_const + (Y.map fun q => (q : ℝ)) F h x] + apply matrix_norm_le_intervalMatrixBound + exact mem_preconditionedJacobian Y (jacobianAt F x) + (intervalJacobian F X cfg) + (jacobianAt_mem_intervalJacobian_const F h X x hx cfg) + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# LeanCert expression models for the normalized Gerver systems + +These expressions use LeanCert's differentiable AD fragment plus exact +named mathematical constants. `LeanCertNamedConstAD` supplies the one +missing soundness case for `namedConst` (derivative zero). +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine + +/-- The expression syntax interpreted by the certified interval evaluator. -/ +abbrev E := Expr + +/-- A rational constant expression. -/ +def ec (r : ℚ) : E := .const r +/-- An indexed variable expression. -/ +def ev (i : Nat) : E := .var i +/-- Construct the sum of two expressions. -/ +def eadd (a b : E) : E := .add a b +/-- Construct the negation of an expression. -/ +def eneg (a : E) : E := .neg a +/-- Construct a difference using addition and negation. -/ +def esub (a b : E) : E := .add a (.neg b) +/-- Construct the product of two expressions. -/ +def emul (a b : E) : E := .mul a b +/-- Multiply an expression by a rational constant. -/ +def escale (r : ℚ) (a : E) : E := .mul (.const r) a +/-- Apply sine in the expression syntax. -/ +def esin (a : E) : E := .sin a +/-- Apply cosine in the expression syntax. -/ +def ecos (a : E) : E := .cos a +/-- The named π constant in the expression syntax. -/ +def epi : E := .namedConst .pi + +/-- An expression for a box coordinate in terms of its normalized variable. -/ +def scaledVar (box : List RatInterval) (i : Nat) : E := + eadd (ec (boxMid box i)) (emul (ec (boxRad box i)) (ev i)) + +/-! ## Reduced 4D -/ + +/-- The four reduced equations encoded as evaluator expressions. -/ +def reducedExprList : List E := + let a := scaledVar ExactReplay.reducedInputBox 0 + let b := scaledVar ExactReplay.reducedInputBox 1 + let phi := scaledVar ExactReplay.reducedInputBox 2 + let theta := scaledVar ExactReplay.reducedInputBox 3 + let one := ec 1 + let half := ec (1 / 2) + let quarter := ec (1 / 4) + let cp := ecos phi + let sp := esin phi + let ct := ecos theta + let st := esin theta + let delta := esub theta phi + -- Keep the mathematical value exactly; AST need not match the old D object. + let f1 := + eadd + (esub + (eadd + (esub (emul a (esub ct cp)) (emul (escale 2 b) sp)) + (emul (esub delta one) ct)) + st) + (eadd cp sp) + let f2 := + eadd + (esub + (eadd + (eadd + (esub (emul a (eadd (escale 3 st) sp)) + (emul (escale 2 b) cp)) + (emul (escale 3 (esub delta one)) st)) + (escale 3 ct)) + sp) + cp + let f3 := + esub + (eadd + (esub (esub (emul a cp) sp) half) + (emul half cp)) + (emul b sp) + let f4 := + eadd + (eadd + (esub + (esub + (esub + (esub (eadd a (escale (1 / 2) epi)) phi) + theta) + b) + (ec 0)) + (emul (emul half delta) (eadd one a))) + (emul (emul quarter delta) delta) + List.cons f1 (List.cons f2 (List.cons f3 (List.cons f4 List.nil))) + +/-- Select an equation from the reduced four-dimensional expression system. -/ +def reducedExpr (i : Fin 4) : E := + reducedExprList.getD i.1 (ec 0) + +/-! ## Direct 22D -/ + +/-- A full Romik parameter encoded as a normalized variable expression. -/ +def fv (i : Nat) : E := scaledVar ExactReplay.fullInputBox i + +/-- The expression for the first switching angle φ. -/ +def phiE : E := fv 20 +/-- The expression for the second switching angle θ. -/ +def thetaE : E := fv 21 +/-- The expression for the reflected angle `π/2 - θ`. -/ +def etaE : E := esub (escale (1 / 2) epi) thetaE +/-- The expression for the reflected angle `π/2 - φ`. -/ +def tauE : E := esub (escale (1 / 2) epi) phiE + +/-- Rotate a pair of coordinate expressions by an angle expression. -/ +def rotE (t z1 z2 : E) : E × E := + let ct := ecos t + let st := esin t + (esub (emul ct z1) (emul st z2), + eadd (emul st z1) (emul ct z2)) + +/-- Encode a selected closed path branch as two coordinate expressions. -/ +def pathPieceE (j : Nat) (t : E) : E × E := + let one := ec 1 + let half := ec (1 / 2) + let quarter := ec (1 / 4) + let ct := ecos t + let st := esin t + let data : E × E × E × E := + if j = 1 then + (esub (eadd (emul (fv 10) ct) (emul (fv 11) st)) one, + esub (eadd (emul (eneg (fv 11)) ct) (emul (fv 10) st)) half, + fv 0, fv 1) + else if j = 2 then + (eadd (eadd (emul (emul (eneg quarter) t) t) (emul (fv 12) t)) (fv 13), + esub (esub (emul half t) (fv 12)) one, + fv 2, fv 3) + else if j = 3 then + (esub (fv 14) t, eadd (fv 15) t, fv 4, fv 5) + else if j = 4 then + (esub (eadd (emul (eneg half) t) (fv 16)) one, + eadd (eadd (emul (emul (eneg quarter) t) t) (emul (fv 16) t)) (fv 17), + fv 6, fv 7) + else + (esub (eadd (emul (fv 18) ct) (emul (fv 19) st)) half, + esub (eadd (emul (eneg (fv 19)) ct) (emul (fv 18) st)) one, + fv 8, fv 9) + let rr := rotE t data.1 data.2.1 + (eadd rr.1 data.2.2.1, eadd rr.2 data.2.2.2) + +/-- Encode the body-frame velocity of a selected path branch. -/ +def alphaBetaE (j : Nat) (t : E) : E × E := + let one := ec 1 + let half := ec (1 / 2) + let quarter := ec (1 / 4) + let ct := ecos t + let st := esin t + if j = 1 then + (eadd (eadd (emul (escale (-2) (fv 10)) st) + (emul (escale 2 (fv 11)) ct)) half, + esub (eadd (emul (escale 2 (fv 10)) ct) + (emul (escale 2 (fv 11)) st)) one) + else if j = 2 then + (esub (eadd one (escale 2 (fv 12))) t, + eadd (eadd (eadd (emul (emul (eneg quarter) t) t) + (emul (fv 12) t)) (fv 13)) half) + else if j = 3 then + (esub (esub (eneg one) (fv 15)) t, + esub (eadd one (fv 14)) t) + else if j = 4 then + (esub (esub (esub (emul (emul quarter t) t) + (emul (fv 16) t)) (fv 17)) half, + esub (esub (escale 2 (fv 16)) one) t) + else + (eadd (esub one (emul (escale 2 (fv 18)) st)) + (emul (escale 2 (fv 19)) ct), + esub (eadd (emul (escale 2 (fv 18)) ct) + (emul (escale 2 (fv 19)) st)) half) + +/-- Encode the world-frame derivative of a selected path branch. -/ +def pathPrimeE (j : Nat) (t : E) : E × E := + let ab := alphaBetaE j t + rotE t ab.1 ab.2 + +/-- The twenty-two full equations encoded as evaluator expressions. -/ +def fullExprList : List E := + let halfPi := escale (1 / 2) epi + let quarterPi := escale (1 / 4) epi + let one := ec 1 + let quarter := ec (1 / 4) + let first : List E := [ + esub (fv 18) (fv 10), + eadd (fv 19) (fv 11), + esub (eadd (fv 16) (fv 12)) quarterPi, + esub (esub (fv 17) (fv 13)) + (emul quarterPi (esub (escale 2 (fv 12)) quarterPi)), + eadd (esub (fv 15) (fv 14)) halfPi, + eadd (esub (fv 0) one) (fv 10), + esub (fv 1) quarter, + eadd (fv 11) quarter + ] + let pairs : List ((E × E) × (E × E)) := [ + (pathPieceE 1 phiE, pathPieceE 2 phiE), + (pathPrimeE 1 phiE, pathPrimeE 2 phiE), + (pathPieceE 2 thetaE, pathPieceE 3 thetaE), + (pathPrimeE 2 thetaE, pathPrimeE 3 thetaE), + (pathPieceE 3 etaE, pathPieceE 4 etaE), + (pathPieceE 4 tauE, pathPieceE 5 tauE) + ] + let matchEqs : List E := pairs.flatMap (fun lr => + List.cons (esub lr.1.1 lr.2.1) + (List.cons (esub lr.1.2 lr.2.2) List.nil)) + let lhs := pathPieceE 1 phiE + let xe := pathPieceE 3 etaE + let ae := (alphaBetaE 3 etaE).1 + let be := + (esub xe.1 (emul ae (esin etaE)), + eadd xe.2 (emul ae (ecos etaE))) + first ++ matchEqs ++ + List.cons (esub lhs.1 be.1) (List.cons (esub lhs.2 be.2) List.nil) + +/-- Select one equation from the full Romik expression system. -/ +def fullExpr (i : Fin 22) : E := + fullExprList.getD i.1 (ec 0) + +/-- Purely syntactic support checks for the Gerver expression fragment. -/ +theorem reducedExpr_supported : + ∀ i : Fin 4, ADConstSupported (reducedExpr i) := by + intro i + apply checkADConstSupported_correct + fin_cases i <;> decide + +theorem fullExpr_supported : + ∀ i : Fin 22, ADConstSupported (fullExpr i) := by + intro i + apply checkADConstSupported_correct + fin_cases i <;> decide + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Lean Cert Gerver Correspondence +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine + +/-- LeanCert's named π has exactly Mathlib's real value. -/ +@[simp] theorem mathConst_pi_toReal : + MathConst.pi.toReal = Real.pi := rfl + +/-! Reduced semantic correspondence. -/ +theorem reducedExpr_eval_0 (u : Fin 4 → ℝ) : + evalFin (reducedExpr (0 : Fin 4)) u = + Reduced.vectorSystem (reducedAffine u) (0 : Fin 4) := by + have hm := congrFun (Reduced.vectorSystem_eq_models (reducedAffine u)) (0 : Fin 4) + rw [hm] + simp [reducedExpr, reducedExprList, reducedAffine, affineFromBox, + scaledVar, boxMid, boxRad, eadd, esub, emul, escale, esin, ecos, + ec, ev, epi, evalFin, finEnv, Reduced.models, ScalarModel.var, + ScalarModel.const, ScalarModel.add, ScalarModel.neg, ScalarModel.sub, + ScalarModel.mul, ScalarModel.scale, ScalarModel.sin, ScalarModel.cos]; ring +theorem reducedExpr_eval_1 (u : Fin 4 → ℝ) : + evalFin (reducedExpr (1 : Fin 4)) u = + Reduced.vectorSystem (reducedAffine u) (1 : Fin 4) := by + have hm := congrFun (Reduced.vectorSystem_eq_models (reducedAffine u)) (1 : Fin 4) + rw [hm] + simp [reducedExpr, reducedExprList, reducedAffine, affineFromBox, + scaledVar, boxMid, boxRad, eadd, esub, emul, escale, esin, ecos, + ec, ev, epi, evalFin, finEnv, Reduced.models, ScalarModel.var, + ScalarModel.const, ScalarModel.add, ScalarModel.neg, ScalarModel.sub, + ScalarModel.mul, ScalarModel.scale, ScalarModel.sin, ScalarModel.cos] + +theorem reducedExpr_eval_2 (u : Fin 4 → ℝ) : + evalFin (reducedExpr (2 : Fin 4)) u = + Reduced.vectorSystem (reducedAffine u) (2 : Fin 4) := by + have hm := congrFun (Reduced.vectorSystem_eq_models (reducedAffine u)) (2 : Fin 4) + rw [hm] + simp [reducedExpr, reducedExprList, reducedAffine, affineFromBox, + scaledVar, boxMid, boxRad, eadd, esub, emul, escale, esin, ecos, + ec, ev, epi, evalFin, finEnv, Reduced.models, ScalarModel.var, + ScalarModel.const, ScalarModel.add, ScalarModel.neg, ScalarModel.sub, + ScalarModel.mul, ScalarModel.scale, ScalarModel.sin, ScalarModel.cos] + +theorem reducedExpr_eval_3 (u : Fin 4 → ℝ) : + evalFin (reducedExpr (3 : Fin 4)) u = + Reduced.vectorSystem (reducedAffine u) (3 : Fin 4) := by + have hm := congrFun (Reduced.vectorSystem_eq_models (reducedAffine u)) (3 : Fin 4) + rw [hm] + simp [reducedExpr, reducedExprList, reducedAffine, affineFromBox, + scaledVar, boxMid, boxRad, eadd, esub, emul, escale, esin, ecos, + ec, ev, epi, evalFin, finEnv, Reduced.models, ScalarModel.var, + ScalarModel.const, ScalarModel.add, ScalarModel.neg, ScalarModel.sub, + ScalarModel.mul, ScalarModel.scale, ScalarModel.sin, ScalarModel.cos] + +theorem reduced_systemEval_eq (u : Fin 4 → ℝ) : + systemEval reducedExpr u = Reduced.vectorSystem (reducedAffine u) := by + funext i + fin_cases i + · exact reducedExpr_eval_0 u + · exact reducedExpr_eval_1 u + · exact reducedExpr_eval_2 u + · exact reducedExpr_eval_3 u + +/-! Full 22D semantic correspondence through the already proved public +`fullDualOutput_model_eq`. This avoids unfolding the private pathPrime helper. -/ +theorem fullExpr_eval_0 (u : Fin 22 → ℝ) : + evalFin (fullExpr (0 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (0 : Fin 22) := by + calc + evalFin (fullExpr (0 : Fin 22)) u = + ((Romik.fullDualOutput.getD 0 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring + _ = Romik.vectorSystem (fullAffine u) (0 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (0 : Fin 22) +theorem fullExpr_eval_1 (u : Fin 22 → ℝ) : + evalFin (fullExpr (1 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (1 : Fin 22) := by + calc + evalFin (fullExpr (1 : Fin 22)) u = + ((Romik.fullDualOutput.getD 1 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual] + _ = Romik.vectorSystem (fullAffine u) (1 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (1 : Fin 22) +theorem fullExpr_eval_2 (u : Fin 22 → ℝ) : + evalFin (fullExpr (2 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (2 : Fin 22) := by + calc + evalFin (fullExpr (2 : Fin 22)) u = + ((Romik.fullDualOutput.getD 2 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring + _ = Romik.vectorSystem (fullAffine u) (2 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (2 : Fin 22) +theorem fullExpr_eval_3 (u : Fin 22 → ℝ) : + evalFin (fullExpr (3 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (3 : Fin 22) := by + calc + evalFin (fullExpr (3 : Fin 22)) u = + ((Romik.fullDualOutput.getD 3 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring + _ = Romik.vectorSystem (fullAffine u) (3 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (3 : Fin 22) +theorem fullExpr_eval_4 (u : Fin 22 → ℝ) : + evalFin (fullExpr (4 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (4 : Fin 22) := by + calc + evalFin (fullExpr (4 : Fin 22)) u = + ((Romik.fullDualOutput.getD 4 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring + _ = Romik.vectorSystem (fullAffine u) (4 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (4 : Fin 22) +theorem fullExpr_eval_5 (u : Fin 22 → ℝ) : + evalFin (fullExpr (5 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (5 : Fin 22) := by + calc + evalFin (fullExpr (5 : Fin 22)) u = + ((Romik.fullDualOutput.getD 5 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring + _ = Romik.vectorSystem (fullAffine u) (5 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (5 : Fin 22) +theorem fullExpr_eval_6 (u : Fin 22 → ℝ) : + evalFin (fullExpr (6 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (6 : Fin 22) := by + calc + evalFin (fullExpr (6 : Fin 22)) u = + ((Romik.fullDualOutput.getD 6 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring + _ = Romik.vectorSystem (fullAffine u) (6 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (6 : Fin 22) +theorem fullExpr_eval_7 (u : Fin 22 → ℝ) : + evalFin (fullExpr (7 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (7 : Fin 22) := by + calc + evalFin (fullExpr (7 : Fin 22)) u = + ((Romik.fullDualOutput.getD 7 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual] + _ = Romik.vectorSystem (fullAffine u) (7 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (7 : Fin 22) +theorem fullExpr_eval_8 (u : Fin 22 → ℝ) : + evalFin (fullExpr (8 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (8 : Fin 22) := by + calc + evalFin (fullExpr (8 : Fin 22)) u = + ((Romik.fullDualOutput.getD 8 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring + _ = Romik.vectorSystem (fullAffine u) (8 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (8 : Fin 22) +theorem fullExpr_eval_9 (u : Fin 22 → ℝ) : + evalFin (fullExpr (9 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (9 : Fin 22) := by + calc + evalFin (fullExpr (9 : Fin 22)) u = + ((Romik.fullDualOutput.getD 9 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring + _ = Romik.vectorSystem (fullAffine u) (9 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (9 : Fin 22) +theorem fullExpr_eval_10 (u : Fin 22 → ℝ) : + evalFin (fullExpr (10 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (10 : Fin 22) := by + calc + evalFin (fullExpr (10 : Fin 22)) u = + ((Romik.fullDualOutput.getD 10 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring + _ = Romik.vectorSystem (fullAffine u) (10 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (10 : Fin 22) +theorem fullExpr_eval_11 (u : Fin 22 → ℝ) : + evalFin (fullExpr (11 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (11 : Fin 22) := by + calc + evalFin (fullExpr (11 : Fin 22)) u = + ((Romik.fullDualOutput.getD 11 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring + _ = Romik.vectorSystem (fullAffine u) (11 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (11 : Fin 22) +theorem fullExpr_eval_12 (u : Fin 22 → ℝ) : + evalFin (fullExpr (12 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (12 : Fin 22) := by + calc + evalFin (fullExpr (12 : Fin 22)) u = + ((Romik.fullDualOutput.getD 12 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring + _ = Romik.vectorSystem (fullAffine u) (12 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (12 : Fin 22) +theorem fullExpr_eval_13 (u : Fin 22 → ℝ) : + evalFin (fullExpr (13 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (13 : Fin 22) := by + calc + evalFin (fullExpr (13 : Fin 22)) u = + ((Romik.fullDualOutput.getD 13 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring + _ = Romik.vectorSystem (fullAffine u) (13 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (13 : Fin 22) +theorem fullExpr_eval_14 (u : Fin 22 → ℝ) : + evalFin (fullExpr (14 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (14 : Fin 22) := by + calc + evalFin (fullExpr (14 : Fin 22)) u = + ((Romik.fullDualOutput.getD 14 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring + _ = Romik.vectorSystem (fullAffine u) (14 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (14 : Fin 22) +theorem fullExpr_eval_15 (u : Fin 22 → ℝ) : + evalFin (fullExpr (15 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (15 : Fin 22) := by + calc + evalFin (fullExpr (15 : Fin 22)) u = + ((Romik.fullDualOutput.getD 15 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring + _ = Romik.vectorSystem (fullAffine u) (15 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (15 : Fin 22) +theorem fullExpr_eval_16 (u : Fin 22 → ℝ) : + evalFin (fullExpr (16 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (16 : Fin 22) := by + calc + evalFin (fullExpr (16 : Fin 22)) u = + ((Romik.fullDualOutput.getD 16 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring_nf + _ = Romik.vectorSystem (fullAffine u) (16 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (16 : Fin 22) +theorem fullExpr_eval_17 (u : Fin 22 → ℝ) : + evalFin (fullExpr (17 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (17 : Fin 22) := by + calc + evalFin (fullExpr (17 : Fin 22)) u = + ((Romik.fullDualOutput.getD 17 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring_nf + _ = Romik.vectorSystem (fullAffine u) (17 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (17 : Fin 22) +theorem fullExpr_eval_18 (u : Fin 22 → ℝ) : + evalFin (fullExpr (18 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (18 : Fin 22) := by + calc + evalFin (fullExpr (18 : Fin 22)) u = + ((Romik.fullDualOutput.getD 18 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring_nf + _ = Romik.vectorSystem (fullAffine u) (18 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (18 : Fin 22) +theorem fullExpr_eval_19 (u : Fin 22 → ℝ) : + evalFin (fullExpr (19 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (19 : Fin 22) := by + calc + evalFin (fullExpr (19 : Fin 22)) u = + ((Romik.fullDualOutput.getD 19 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring_nf + _ = Romik.vectorSystem (fullAffine u) (19 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (19 : Fin 22) +theorem fullExpr_eval_20 (u : Fin 22 → ℝ) : + evalFin (fullExpr (20 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (20 : Fin 22) := by + calc + evalFin (fullExpr (20 : Fin 22)) u = + ((Romik.fullDualOutput.getD 20 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring_nf + _ = Romik.vectorSystem (fullAffine u) (20 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (20 : Fin 22) +theorem fullExpr_eval_21 (u : Fin 22 → ℝ) : + evalFin (fullExpr (21 : Fin 22)) u = + Romik.vectorSystem (fullAffine u) (21 : Fin 22) := by + calc + evalFin (fullExpr (21 : Fin 22)) u = + ((Romik.fullDualOutput.getD 21 (Romik.SoundDual.pointConst 0)).model.value + (fullAffine u)) := by + simp [fullExpr, fullExprList, fv, phiE, thetaE, etaE, tauE, + rotE, pathPieceE, alphaBetaE, pathPrimeE, + fullAffine, affineFromBox, scaledVar, boxMid, boxRad, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv, + Romik.fullDualOutput, Romik.fullVars, Romik.inputDual, Romik.piDual, + Romik.phiDual, Romik.thetaDual, Romik.etaDual, Romik.tauDual, + Romik.rotDual, Romik.pathPieceDual, Romik.alphaBetaDual, + Romik.pathPrimeDual]; ring_nf + _ = Romik.vectorSystem (fullAffine u) (21 : Fin 22) := by + exact congrFun (Romik.fullDualOutput_model_eq (fullAffine u)) (21 : Fin 22) + +theorem full_systemEval_eq (u : Fin 22 → ℝ) : + systemEval fullExpr u = Romik.vectorSystem (fullAffine u) := by + funext i + fin_cases i + · exact fullExpr_eval_0 u + · exact fullExpr_eval_1 u + · exact fullExpr_eval_2 u + · exact fullExpr_eval_3 u + · exact fullExpr_eval_4 u + · exact fullExpr_eval_5 u + · exact fullExpr_eval_6 u + · exact fullExpr_eval_7 u + · exact fullExpr_eval_8 u + · exact fullExpr_eval_9 u + · exact fullExpr_eval_10 u + · exact fullExpr_eval_11 u + · exact fullExpr_eval_12 u + · exact fullExpr_eval_13 u + · exact fullExpr_eval_14 u + · exact fullExpr_eval_15 u + · exact fullExpr_eval_16 u + · exact fullExpr_eval_17 u + · exact fullExpr_eval_18 u + · exact fullExpr_eval_19 u + · exact fullExpr_eval_20 u + · exact fullExpr_eval_21 u + +/-! ## Box transport -/ + +theorem reduced_box_strict : + ∀ i : Fin 4, + (ExactReplay.getI ExactReplay.reducedInputBox i.1).lo < + (ExactReplay.getI ExactReplay.reducedInputBox i.1).hi := by + intro i + fin_cases i <;> + norm_num [ExactReplay.reducedInputBox, CertificateManifest.x4, + CertificateManifest.q, ExactReplay.getI] + +theorem full_box_strict : + ∀ i : Fin 22, + (ExactReplay.getI ExactReplay.fullInputBox i.1).lo < + (ExactReplay.getI ExactReplay.fullInputBox i.1).hi := by + intro i + fin_cases i <;> + norm_num [ExactReplay.fullInputBox, CertificateManifest.z22, + CertificateManifest.q, ExactReplay.getI] + +theorem affine_mem_interval + (z : RatInterval) (hz : z.lo < z.hi) (u : ℝ) + (hu : (-1 : ℝ) ≤ u ∧ u ≤ 1) : + RatInterval.Contains z + ((((z.lo + z.hi) / 2 : ℚ) : ℝ) + + ((((z.hi - z.lo) / 2 : ℚ) : ℝ) * u)) := by + have hzR : (z.lo : ℝ) < (z.hi : ℝ) := by + exact_mod_cast hz + have hrad : 0 ≤ ((z.hi : ℝ) - (z.lo : ℝ)) / 2 := by + linarith + constructor + · push_cast + calc + (z.lo : ℝ) = + ((z.lo : ℝ) + (z.hi : ℝ)) / 2 + + (((z.hi : ℝ) - (z.lo : ℝ)) / 2) * (-1) := by ring + _ ≤ ((z.lo : ℝ) + (z.hi : ℝ)) / 2 + + (((z.hi : ℝ) - (z.lo : ℝ)) / 2) * u := by + exact add_le_add_right + (mul_le_mul_of_nonneg_left hu.1 hrad) + (((z.lo : ℝ) + (z.hi : ℝ)) / 2) + · push_cast + calc + ((z.lo : ℝ) + (z.hi : ℝ)) / 2 + + (((z.hi : ℝ) - (z.lo : ℝ)) / 2) * u + ≤ ((z.lo : ℝ) + (z.hi : ℝ)) / 2 + + (((z.hi : ℝ) - (z.lo : ℝ)) / 2) * 1 := by + exact add_le_add_right + (mul_le_mul_of_nonneg_left hu.2 hrad) + (((z.lo : ℝ) + (z.hi : ℝ)) / 2) + _ = (z.hi : ℝ) := by ring + +theorem normalize_mem_unit + (z : RatInterval) (hz : z.lo < z.hi) (x : ℝ) + (hx : RatInterval.Contains z x) : + ((x - ((((z.lo + z.hi) / 2 : ℚ) : ℝ))) / + ((((z.hi - z.lo) / 2 : ℚ) : ℝ))) ∈ + (unitBox (n := 1) (0 : Fin 1)) := by + have hrQ : (0 : ℚ) < (z.hi - z.lo) / 2 := by + linarith + have hr : (0 : ℝ) < ((((z.hi - z.lo) / 2 : ℚ) : ℝ)) := by + exact_mod_cast hrQ + have hbounds : + (-1 : ℝ) ≤ + (x - ((((z.lo + z.hi) / 2 : ℚ) : ℝ))) / + ((((z.hi - z.lo) / 2 : ℚ) : ℝ)) ∧ + (x - ((((z.lo + z.hi) / 2 : ℚ) : ℝ))) / + ((((z.hi - z.lo) / 2 : ℚ) : ℝ)) ≤ 1 := by + constructor + · rw [le_div_iff₀ hr] + push_cast + have hxlo := hx.1 + linarith + · rw [div_le_iff₀ hr] + push_cast + have hxhi := hx.2 + linarith + simpa [unitBox, IntervalRat.mem_def] using hbounds + +theorem affine_normalize_coord + (z : RatInterval) (hz : z.lo < z.hi) (x : ℝ) : + ((((z.lo + z.hi) / 2 : ℚ) : ℝ) + + ((((z.hi - z.lo) / 2 : ℚ) : ℝ) * + ((x - ((((z.lo + z.hi) / 2 : ℚ) : ℝ))) / + ((((z.hi - z.lo) / 2 : ℚ) : ℝ))))) = x := by + have hrQ : ((z.hi - z.lo) / 2 : ℚ) ≠ 0 := by + have : (0 : ℚ) < (z.hi - z.lo) / 2 := by linarith + exact ne_of_gt this + have hr : ((((z.hi - z.lo) / 2 : ℚ) : ℝ)) ≠ 0 := by + exact_mod_cast hrQ + field_simp + ring + +theorem reducedAffine_mem {u : Fin 4 → ℝ} + (hu : FinBoxMem u (unitBox (n := 4))) : + reducedAffine u ∈ Reduced.vectorBox := by + apply (Reduced.inputBox_exact _).2 + refine ⟨by norm_num [ExactReplay.reducedInputBox, CertificateManifest.x4], ?_⟩ + intro i + simpa [reducedAffine, affineFromBox, boxMid, boxRad, + ExactReplay.getI, ExactReplay.zeroI, RatInterval.point] using + affine_mem_interval + (ExactReplay.getI ExactReplay.reducedInputBox i.1) + (reduced_box_strict i) (u i) (by + simpa [unitBox, IntervalRat.mem_def] using hu i) + +theorem fullAffine_mem {u : Fin 22 → ℝ} + (hu : FinBoxMem u (unitBox (n := 22))) : + fullAffine u ∈ Romik.vectorBox := by + apply (Romik.inputBox_exact _).2 + refine ⟨by norm_num [ExactReplay.fullInputBox, CertificateManifest.z22], ?_⟩ + intro i + simpa [fullAffine, affineFromBox, boxMid, boxRad, + ExactReplay.getI, ExactReplay.zeroI, RatInterval.point] using + affine_mem_interval + (ExactReplay.getI ExactReplay.fullInputBox i.1) + (full_box_strict i) (u i) (by + simpa [unitBox, IntervalRat.mem_def] using hu i) + +theorem reducedNormalize_mem {x : Fin 4 → ℝ} + (hx : x ∈ Reduced.vectorBox) : + FinBoxMem (reducedNormalize x) (unitBox (n := 4)) := by + have henc := (Reduced.inputBox_exact x).1 hx + intro i + have hi := henc.2 i + have h := normalize_mem_unit + (ExactReplay.getI ExactReplay.reducedInputBox i.1) + (reduced_box_strict i) (x i) hi + simpa [reducedNormalize, normalizeToBox, boxMid, boxRad, unitBox, + IntervalRat.mem_def] using h + +theorem reducedAffine_normalize (x : Fin 4 → ℝ) : + reducedAffine (reducedNormalize x) = x := by + funext i + simpa [reducedAffine, reducedNormalize, affineFromBox, normalizeToBox, + boxMid, boxRad] using + affine_normalize_coord + (ExactReplay.getI ExactReplay.reducedInputBox i.1) + (reduced_box_strict i) (x i) + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Determinant-free checked Krawczyk endgame + +For a square system, the usual explicit determinant test on the preconditioner +is redundant once `‖I - YJ‖ < 1` is known: at any point in the box, +`YJ = 1 - T` with `‖T‖ < 1`, hence `YJ` is a unit by the Neumann-series +theorem. Therefore `Y` is surjective, hence injective in finite dimension. + +This matters computationally in dimension 22 because Mathlib's generic +Leibniz determinant is the wrong algorithm for a huge exact rational matrix. +-/ + +/-! +## Kernel-reducible finite interval sums + +LeanCert's public `intervalRatMatVec` uses `Finset.sum` with a local +proof-transported `AddCommMonoid IntervalRat`. That is semantically sound, but +closed `decide +kernel` computations can get stuck reducing the transported +typeclass instance. + +We keep LeanCert's interval operations and mathematical semantics, but package +this one finite sum by structural recursion on `Fin n`. Mathlib's existing +`Fin.sum_univ_succ` is the semantic bridge to the ordinary real finite sum. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine + +/-- A finite interval sum that reduces by structural recursion, with no +`AddCommMonoid IntervalRat` instance involved in computation. -/ +def kernelIntervalFinSum : {n : Nat} → (Fin n → IntervalRat) → IntervalRat + | 0, _ => IntervalRat.singleton 0 + | n + 1, f => + IntervalRat.add (f 0) + (kernelIntervalFinSum (fun j : Fin n => f j.succ)) + +/-- Semantic soundness of the kernel-reducible finite interval sum. -/ +theorem mem_kernelIntervalFinSum : + ∀ (n : Nat) (x : Fin n → ℝ) (I : Fin n → IntervalRat), + (∀ i, x i ∈ I i) → + (∑ i, x i) ∈ kernelIntervalFinSum I := by + intro n + induction n with + | zero => + intro x I h + simp [kernelIntervalFinSum, IntervalRat.mem_def, IntervalRat.singleton] + | succ n ih => + intro x I h + rw [Fin.sum_univ_succ] + exact IntervalRat.mem_add (h 0) + (ih (fun j : Fin n => x j.succ) + (fun j : Fin n => I j.succ) + (fun j => h j.succ)) + +/-- Kernel-reducible exact interval matrix-vector product. -/ +def kernelIntervalRatMatVec {n : Nat} + (Y : Matrix (Fin n) (Fin n) ℚ) + (v : Fin n → IntervalRat) : Fin n → IntervalRat := + fun i => + kernelIntervalFinSum + (fun j => IntervalRat.scale (Y i j) (v j)) + +/-! +## Kernel-reducible point values at the Newton center + +LeanCert's ordinary rational evaluator uses `sinComputableReduced` and +`cosComputableReduced`. Those are mathematically excellent general-purpose +routines, but their period-reduction step computes a rational floor. On the +closed Gerver certificates that floor can prevent `decide +kernel` from +normalizing an otherwise entirely rational proposition. + +For the exact Gerver expression fragment (`ADConstSupported`) we therefore use +a tiny point evaluator that is identical on algebraic operations and named +constants, but calls the already-proved *unreduced* Taylor enclosures +`sinComputable` and `cosComputable`. These enclosures are globally sound for +arbitrary real arguments; argument reduction is an optimization, not a +soundness requirement. This keeps the Newton-center calculation purely in +kernel-reducible rational arithmetic without changing the mathematical map. +-/ + +/-- A kernel-reducible interval for π, using the exact project interval +whose semantic soundness is already proved in `TranscendentalSoundness`. + +The generic LeanCert `MathConst.interval` route is mathematically sound, but +its named-constant machinery does not always normalize far enough for closed +`decide +kernel` comparisons. Reusing the project's already-certified exact +rational π endpoints removes only that reduction bottleneck; it does not +change the represented real constant or weaken any enclosure. -/ +def kernelPiInterval : IntervalRat := + { lo := ExactReplay.piI.lo + hi := ExactReplay.piI.hi + le := by + norm_num [ExactReplay.piI, ExactReplay.q] } + +/-- The true real π lies in the kernel-reducible π interval. -/ +theorem real_pi_mem_kernelPiInterval : Real.pi ∈ kernelPiInterval := by + simpa [kernelPiInterval, IntervalRat.mem_def, RatInterval.Contains] using + ExactReplay.piI_contains_pi + +/-- Named constants for the point evaluator. π takes the specialized +kernel-reducible path; every other LeanCert named constant keeps LeanCert's +public certified interval unchanged. -/ +def kernelNamedConstInterval (c : MathConst) : IntervalRat := + if c = .pi then kernelPiInterval else c.interval + +/-- Point evaluator for the everywhere-defined Gerver expression fragment. +Unsupported constructors are deliberately mapped to `{0}`; the soundness +lemma below is only stated for `ADConstSupported`, whose constructors are all +handled explicitly. -/ +def kernelPointEvalCore (e : Expr) (ρ : IntervalEnv) + (depth : Nat) : IntervalRat := + match e with + | .const q => IntervalRat.singleton q + | .var idx => ρ idx + | .add a b => IntervalRat.add + (kernelPointEvalCore a ρ depth) (kernelPointEvalCore b ρ depth) + | .mul a b => IntervalRat.mul + (kernelPointEvalCore a ρ depth) (kernelPointEvalCore b ρ depth) + | .neg a => IntervalRat.neg (kernelPointEvalCore a ρ depth) + | .exp a => IntervalRat.expComputable + (kernelPointEvalCore a ρ depth) depth + | .sin a => IntervalRat.sinComputable + (kernelPointEvalCore a ρ depth) depth + | .cos a => IntervalRat.cosComputable + (kernelPointEvalCore a ρ depth) depth + | .namedConst c => kernelNamedConstInterval c + | _ => IntervalRat.singleton 0 + +/-- Soundness of the kernel-reducible point evaluator on exactly the Gerver +fragment. In the sine/cosine cases this uses LeanCert's global Taylor +correctness theorems directly, so no period-reduction hypothesis is needed. -/ +theorem eval_mem_kernelPointEvalCore {e : Expr} + (h : ADConstSupported e) + (ρReal : Nat → ℝ) (ρInt : IntervalEnv) + (hmem : envMem ρReal ρInt) (depth : Nat) : + Expr.eval ρReal e ∈ kernelPointEvalCore e ρInt depth := by + induction h with + | const q => + simp only [Expr.eval_const, kernelPointEvalCore] + exact IntervalRat.mem_singleton q + | var idx => + simp only [Expr.eval_var, kernelPointEvalCore] + exact hmem idx + | add _ _ iha ihb => + simp only [Expr.eval_add, kernelPointEvalCore] + exact IntervalRat.mem_add iha ihb + | mul _ _ iha ihb => + simp only [Expr.eval_mul, kernelPointEvalCore] + exact IntervalRat.mem_mul iha ihb + | neg _ ih => + simp only [Expr.eval_neg, kernelPointEvalCore] + exact IntervalRat.mem_neg ih + | exp _ ih => + simp only [Expr.eval_exp, kernelPointEvalCore] + exact IntervalRat.mem_expComputable ih depth + | sin _ ih => + simp only [Expr.eval_sin, kernelPointEvalCore] + exact IntervalRat.mem_sinComputable ih depth + | cos _ ih => + simp only [Expr.eval_cos, kernelPointEvalCore] + exact IntervalRat.mem_cosComputable ih depth + | namedConst c => + simp only [Expr.eval_namedConst, kernelPointEvalCore] + by_cases hc : c = .pi + · subst c + simp only [kernelNamedConstInterval] + simpa using real_pi_mem_kernelPiInterval + · simp only [kernelNamedConstInterval, ite_eq_right hc] + exact c.mem_interval + +/-- Taylor depth used only for the Newton-center point values. +The reduced system has coordinates at scale about `10^-15`; the 22D system +contains substantially thinner coordinates. Depth 26 is the smallest retained value after an +exact-rational replay of all +22 normalized Newton-center images that still leaves the direct self-map +strictly inside the unit box. It materially reduces kernel rational size +compared with depth 27/34 while leaving the Jacobian evaluator and its +already-passing certificates untouched. -/ +def kernelCenterTaylorDepth (n : Nat) : Nat := + if n ≤ 4 then 20 else 26 + +/-- Point-value enclosures for a square system at a rational center. -/ +def pointEvalIntervalsKernel {n : Nat} + (F : Fin n → Expr) (m : Fin n → ℚ) + (_cfg : EvalConfig := {}) : Fin n → IntervalRat := + fun i => kernelPointEvalCore (F i) (pointIntervalEnv m) + (kernelCenterTaylorDepth n) + +/-- Every real system coordinate at the rational center lies in the +kernel-reducible point enclosure. -/ +theorem systemEval_mem_pointEvalIntervalsKernel_const {n : Nat} + (F : Fin n → Expr) (h : ∀ i, ADConstSupported (F i)) + (m : Fin n → ℚ) (cfg : EvalConfig) (i : Fin n) : + systemEval F (fun j => (m j : ℝ)) i ∈ + pointEvalIntervalsKernel F m cfg i := by + change Expr.eval (finEnv (fun j => (m j : ℝ))) (F i) ∈ + kernelPointEvalCore (F i) (pointIntervalEnv m) + (kernelCenterTaylorDepth n) + exact eval_mem_kernelPointEvalCore (h i) + (finEnv (fun j => (m j : ℝ))) (pointIntervalEnv m) + (finEnv_ratCast_mem_pointIntervalEnv m) (kernelCenterTaylorDepth n) + +/-- Kernel-reducible version of LeanCert's Newton-center enclosure. -/ +def kernelNewtonCenterInterval {n : Nat} + (F : Fin n → Expr) (m : Fin n → ℚ) + (Y : Matrix (Fin n) (Fin n) ℚ) + (cfg : EvalConfig := {}) : Fin n → IntervalRat := + fun i => + IntervalRat.sub (IntervalRat.singleton (m i)) + (kernelIntervalRatMatVec Y (pointEvalIntervalsKernel F m cfg) i) + +/-- The real Newton center lies in the kernel-reducible enclosure. -/ +theorem newtonMap_center_mem_kernel_const {n : Nat} + (F : Fin n → Expr) (h : ∀ i, ADConstSupported (F i)) + (m : Fin n → ℚ) (Y : Matrix (Fin n) (Fin n) ℚ) + (cfg : EvalConfig) (i : Fin n) : + newtonMap (Y.map fun q => (q : ℝ)) F + (fun j => (m j : ℝ)) i ∈ + kernelNewtonCenterInterval F m Y cfg i := by + apply IntervalRat.mem_sub + · exact IntervalRat.mem_singleton (m i) + · simp only [Matrix.mulVec, dotProduct, kernelIntervalRatMatVec] + exact mem_kernelIntervalFinSum n + (fun j => (Y i j : ℝ) * systemEval F (fun k => (m k : ℝ)) j) + (fun j => IntervalRat.scale (Y i j) (pointEvalIntervalsKernel F m cfg j)) + (fun j => + IntervalRat.mem_scale (Y i j) + (systemEval_mem_pointEvalIntervalsKernel_const F h m cfg j)) + +/-- Same checked self-map enclosure as before, now with a kernel-reducible +finite interval sum at the Newton center. -/ +def imageEnclosureWithQ {n : Nat} + (F : Fin n → Expr) (X : Fin n → IntervalRat) + (m : Fin n → ℚ) (Y : Matrix (Fin n) (Fin n) ℚ) + (cfg : EvalConfig) (q : ℚ) : Fin n → IntervalRat := + fun i => IntervalRat.add (kernelNewtonCenterInterval F m Y cfg i) + (symmetricInterval (q * boxRadius X m)) + +theorem mapsTo_of_bound_and_enclosure {n : Nat} + (F : Fin n → Expr) (hsupp : ∀ i, ADConstSupported (F i)) + (X : Fin n → IntervalRat) (m : Fin n → ℚ) + (hm : FinBoxMem (fun i => (m i : ℝ)) X) + (Y : Matrix (Fin n) (Fin n) ℚ) (cfg : EvalConfig) + (q : ℚ) (hq0 : 0 ≤ q) + (hbound : + intervalMatrixBound + (preconditionedJacobian Y (intervalJacobian F X cfg)) ≤ q) + (hencl : ∀ i, + intervalStrictInside (imageEnclosureWithQ F X m Y cfg q i) (X i) = true) : + Set.MapsTo (newtonMap (Y.map fun r => (r : ℝ)) F) + (finBoxSet X) (finBoxSet X) := by + intro x hx i + let mr : Fin n → ℝ := fun i => (m i : ℝ) + have hdiff : + ‖newtonMap (Y.map fun r => (r : ℝ)) F x - + newtonMap (Y.map fun r => (r : ℝ)) F mr‖ + ≤ (q : ℝ) * ‖x - mr‖ := by + apply (finBoxSet_convex X).norm_image_sub_le_of_norm_fderiv_le (𝕜 := ℝ) + · intro z hz + exact (newtonMap_differentiable_const (Y.map fun r => (r : ℝ)) F hsupp).differentiableAt + · intro z hz + calc + ‖fderiv ℝ (newtonMap (Y.map fun r => (r : ℝ)) F) z‖ + ≤ (intervalMatrixBound + (preconditionedJacobian Y (intervalJacobian F X cfg)) : ℝ) := + newtonMap_fderiv_norm_le_const Y F hsupp X z hz cfg + _ ≤ (q : ℝ) := by exact_mod_cast hbound + · exact hm + · exact hx + have hr0 : 0 ≤ boxRadius X m := boxRadius_nonneg X m + have hnorm : + ‖newtonMap (Y.map fun r => (r : ℝ)) F x - + newtonMap (Y.map fun r => (r : ℝ)) F mr‖ + ≤ ((q * boxRadius X m : ℚ) : ℝ) := by + calc + _ ≤ (q : ℝ) * ‖x - mr‖ := hdiff + _ ≤ (q : ℝ) * (boxRadius X m : ℝ) := + mul_le_mul_of_nonneg_left (norm_sub_center_le_boxRadius hx) + (by exact_mod_cast hq0) + _ = _ := by push_cast; rfl + have hcoord : + |(newtonMap (Y.map fun r => (r : ℝ)) F x - + newtonMap (Y.map fun r => (r : ℝ)) F mr) i| + ≤ ((q * boxRadius X m : ℚ) : ℝ) := + (norm_le_pi_norm _ i).trans hnorm + have herr : + (newtonMap (Y.map fun r => (r : ℝ)) F x - + newtonMap (Y.map fun r => (r : ℝ)) F mr) i ∈ + symmetricInterval (q * boxRadius X m) := by + rw [abs_le] at hcoord + simpa [symmetricInterval, IntervalRat.mem_def, + abs_of_nonneg (mul_nonneg hq0 hr0)] using hcoord + have hcenter := newtonMap_center_mem_kernel_const F hsupp m Y cfg i + have himage : + newtonMap (Y.map fun r => (r : ℝ)) F x i ∈ + imageEnclosureWithQ F X m Y cfg q i := by + have hadd := IntervalRat.mem_add hcenter herr + simpa [imageEnclosureWithQ, mr, Pi.sub_apply] using hadd + exact intervalStrictInside_sound (hencl i) _ himage + +theorem preconditioner_injective_of_bound_lt_one {n : Nat} + (F : Fin n → Expr) (hsupp : ∀ i, ADConstSupported (F i)) + (X : Fin n → IntervalRat) (m : Fin n → ℚ) + (hm : FinBoxMem (fun i => (m i : ℝ)) X) + (Y : Matrix (Fin n) (Fin n) ℚ) (cfg : EvalConfig) + (hq : + intervalMatrixBound + (preconditionedJacobian Y (intervalJacobian F X cfg)) < 1) : + Function.Injective + (fun v : Fin n → ℝ => (Y.map fun r => (r : ℝ)).mulVec v) := by + let Yr : Matrix (Fin n) (Fin n) ℝ := Y.map fun r => (r : ℝ) + let mr : Fin n → ℝ := fun i => (m i : ℝ) + let J : (Fin n → ℝ) →L[ℝ] (Fin n → ℝ) := + fderiv ℝ (systemEval F) mr + let A : (Fin n → ℝ) →L[ℝ] (Fin n → ℝ) := matrixCLM Yr + let T : (Fin n → ℝ) →L[ℝ] (Fin n → ℝ) := + fderiv ℝ (newtonMap Yr F) mr + have hTle : + ‖T‖ ≤ + (intervalMatrixBound + (preconditionedJacobian Y (intervalJacobian F X cfg)) : ℝ) := by + exact newtonMap_fderiv_norm_le_const Y F hsupp X mr hm cfg + have hTlt : ‖T‖ < 1 := lt_of_le_of_lt hTle (by exact_mod_cast hq) + let S : (Fin n → ℝ) →L[ℝ] (Fin n → ℝ) := 1 - T + have hunitS : IsUnit S := by + dsimp [S] + exact isUnit_one_sub_of_norm_lt_one hTlt + have hbijS : Function.Bijective ⇑S := + (ContinuousLinearMap.isUnit_iff_bijective).mp hunitS + have hF : HasFDerivAt (systemEval F) J mr := + (systemEval_differentiable_const F hsupp).differentiableAt.hasFDerivAt + have hAJ : HasFDerivAt (fun x => A (systemEval F x)) (A.comp J) mr := + A.hasFDerivAt.comp mr hF + have hg : HasFDerivAt (newtonMap Yr F) + (ContinuousLinearMap.id ℝ _ - A.comp J) mr := by + change HasFDerivAt (fun z => z - A (systemEval F z)) _ mr + exact (hasFDerivAt_id mr).sub hAJ + have hT : + T = ContinuousLinearMap.id ℝ _ - A.comp J := hg.fderiv + have hS : S = A.comp J := by + dsimp [S] + rw [hT, ContinuousLinearMap.one_def] + abel + have hsurjComp : Function.Surjective ⇑(A.comp J) := by + rw [← hS] + exact hbijS.2 + have hsurjA : Function.Surjective ⇑A := by + intro y + obtain ⟨x, hx⟩ := hsurjComp y + refine ⟨J x, ?_⟩ + simpa only [ContinuousLinearMap.comp_apply] using hx + have hsurjLin : Function.Surjective ⇑A.toLinearMap := hsurjA + have hinjLin : Function.Injective ⇑A.toLinearMap := + (LinearMap.injective_iff_surjective (f := A.toLinearMap)).2 hsurjLin + intro x y hxy + apply hinjLin + change (Y.map fun r => (r : ℝ)).mulVec x = + (Y.map fun r => (r : ℝ)).mulVec y + exact hxy + +theorem fixedPoint_iff_systemZero_of_injective {n : Nat} + (F : Fin n → Expr) (Y : Matrix (Fin n) (Fin n) ℚ) + (hinj : Function.Injective + (fun v : Fin n → ℝ => (Y.map fun r => (r : ℝ)).mulVec v)) + (x : Fin n → ℝ) : + newtonMap (Y.map fun r => (r : ℝ)) F x = x ↔ SystemZero F x := by + let Yr : Matrix (Fin n) (Fin n) ℝ := Y.map fun r => (r : ℝ) + constructor + · intro hfix + have hmul : Yr.mulVec (systemEval F x) = 0 := by + funext i + have hi := congrFun hfix i + change x i - Yr.mulVec (systemEval F x) i = x i at hi + exact sub_eq_self.mp hi + have hz : systemEval F x = 0 := hinj (by simpa [Yr] using hmul) + intro i + exact congrFun hz i + · intro hz + have hs : systemEval F x = 0 := by + funext i + exact hz i + funext i + simp [newtonMap, hs] + +theorem uniqueSystemZero_of_certified_contraction {n : Nat} + (F : Fin n → Expr) (hsupp : ∀ i, ADConstSupported (F i)) + (X : Fin n → IntervalRat) (m : Fin n → ℚ) + (hm : FinBoxMem (fun i => (m i : ℝ)) X) + (Y : Matrix (Fin n) (Fin n) ℚ) (cfg : EvalConfig) + (q : ℚ) (hq0 : 0 ≤ q) (hq1 : q < 1) + (hbound : + intervalMatrixBound + (preconditionedJacobian Y (intervalJacobian F X cfg)) ≤ q) + (hencl : ∀ i, + intervalStrictInside (imageEnclosureWithQ F X m Y cfg q i) (X i) = true) : + ∃! x, FinBoxMem x X ∧ SystemZero F x := by + have hmap := mapsTo_of_bound_and_enclosure + F hsupp X m hm Y cfg q hq0 hbound hencl + have hactualLt : + intervalMatrixBound + (preconditionedJacobian Y (intervalJacobian F X cfg)) < 1 := + lt_of_le_of_lt hbound hq1 + have hinj := preconditioner_injective_of_bound_lt_one + F hsupp X m hm Y cfg hactualLt + have hfixed := contraction_unique_fixedPoint_in_finBox X + (fun i => (m i : ℝ)) hm + (newtonMap (Y.map fun r => (r : ℝ)) F) + hmap (q : ℝ) (by exact_mod_cast hq0) (by exact_mod_cast hq1) + (fun x _ => + (newtonMap_differentiable_const (Y.map fun r => (r : ℝ)) F hsupp).differentiableAt) + (fun x hx => by + calc + ‖fderiv ℝ (newtonMap (Y.map fun r => (r : ℝ)) F) x‖ + ≤ (intervalMatrixBound + (preconditionedJacobian Y (intervalJacobian F X cfg)) : ℝ) := + newtonMap_fderiv_norm_le_const Y F hsupp X x hx cfg + _ ≤ (q : ℝ) := by exact_mod_cast hbound) + refine ⟨hfixed.choose, ⟨hfixed.choose_spec.1.1, + (fixedPoint_iff_systemZero_of_injective F Y hinj hfixed.choose).mp + hfixed.choose_spec.1.2⟩, ?_⟩ + intro y hy + exact hfixed.unique ⟨hy.1, + (fixedPoint_iff_systemZero_of_injective F Y hinj y).mpr hy.2⟩ + hfixed.choose_spec.1 + +/-! +## Cached Newton-center values for large closed systems + +For the direct 22D Gerver certificate, recomputing all 22 transcendental +point values inside every image-row proposition creates a very large kernel +reduction. The following variant accepts independently checked point-value +enclosures. It changes no mathematics: each cached interval is accompanied +by a kernel proof that the corresponding real system value lies in it. +-/ + +/-- Endpoint inclusion between two rational intervals. -/ +def intervalContained (I J : IntervalRat) : Prop := + J.lo ≤ I.lo ∧ I.hi ≤ J.hi + +theorem mem_of_intervalContained {x : ℝ} {I J : IntervalRat} + (hx : x ∈ I) (hIJ : intervalContained I J) : x ∈ J := by + change J.lo ≤ I.lo ∧ I.hi ≤ J.hi at hIJ + rw [IntervalRat.mem_def] at hx ⊢ + have hlo : (J.lo : ℝ) ≤ (I.lo : ℝ) := by + exact_mod_cast hIJ.1 + have hhi : (I.hi : ℝ) ≤ (J.hi : ℝ) := by + exact_mod_cast hIJ.2 + exact ⟨hlo.trans hx.1, hx.2.trans hhi⟩ + +/-- Newton-center enclosure from externally supplied, proof-carrying point +value intervals. -/ +def kernelNewtonCenterIntervalWithValues {n : Nat} + (m : Fin n → ℚ) (Y : Matrix (Fin n) (Fin n) ℚ) + (V : Fin n → IntervalRat) : Fin n → IntervalRat := + fun i => + IntervalRat.sub (IntervalRat.singleton (m i)) + (kernelIntervalRatMatVec Y V i) + +theorem newtonMap_center_mem_kernel_values {n : Nat} + (F : Fin n → Expr) (m : Fin n → ℚ) + (Y : Matrix (Fin n) (Fin n) ℚ) + (V : Fin n → IntervalRat) + (hV : ∀ j, systemEval F (fun k => (m k : ℝ)) j ∈ V j) + (i : Fin n) : + newtonMap (Y.map fun q => (q : ℝ)) F + (fun j => (m j : ℝ)) i ∈ + kernelNewtonCenterIntervalWithValues m Y V i := by + apply IntervalRat.mem_sub + · exact IntervalRat.mem_singleton (m i) + · simp only [Matrix.mulVec, dotProduct, kernelIntervalRatMatVec] + exact mem_kernelIntervalFinSum n + (fun j => (Y i j : ℝ) * systemEval F (fun k => (m k : ℝ)) j) + (fun j => IntervalRat.scale (Y i j) (V j)) + (fun j => IntervalRat.mem_scale (Y i j) (hV j)) + +/-- Self-map enclosure built from independently certified center values. -/ +def imageEnclosureWithValuesQ {n : Nat} + (X : Fin n → IntervalRat) (m : Fin n → ℚ) + (Y : Matrix (Fin n) (Fin n) ℚ) (V : Fin n → IntervalRat) + (q : ℚ) : Fin n → IntervalRat := + fun i => IntervalRat.add (kernelNewtonCenterIntervalWithValues m Y V i) + (symmetricInterval (q * boxRadius X m)) + +theorem mapsTo_of_bound_and_values_enclosure {n : Nat} + (F : Fin n → Expr) (hsupp : ∀ i, ADConstSupported (F i)) + (X : Fin n → IntervalRat) (m : Fin n → ℚ) + (hm : FinBoxMem (fun i => (m i : ℝ)) X) + (Y : Matrix (Fin n) (Fin n) ℚ) (cfg : EvalConfig) + (q : ℚ) (hq0 : 0 ≤ q) + (hbound : + intervalMatrixBound + (preconditionedJacobian Y (intervalJacobian F X cfg)) ≤ q) + (V : Fin n → IntervalRat) + (hV : ∀ j, systemEval F (fun k => (m k : ℝ)) j ∈ V j) + (hencl : ∀ i, + intervalStrictInside (imageEnclosureWithValuesQ X m Y V q i) (X i) = true) : + Set.MapsTo (newtonMap (Y.map fun r => (r : ℝ)) F) + (finBoxSet X) (finBoxSet X) := by + intro x hx i + let mr : Fin n → ℝ := fun i => (m i : ℝ) + have hdiff : + ‖newtonMap (Y.map fun r => (r : ℝ)) F x - + newtonMap (Y.map fun r => (r : ℝ)) F mr‖ + ≤ (q : ℝ) * ‖x - mr‖ := by + apply (finBoxSet_convex X).norm_image_sub_le_of_norm_fderiv_le (𝕜 := ℝ) + · intro z hz + exact (newtonMap_differentiable_const (Y.map fun r => (r : ℝ)) F hsupp).differentiableAt + · intro z hz + calc + ‖fderiv ℝ (newtonMap (Y.map fun r => (r : ℝ)) F) z‖ + ≤ (intervalMatrixBound + (preconditionedJacobian Y (intervalJacobian F X cfg)) : ℝ) := + newtonMap_fderiv_norm_le_const Y F hsupp X z hz cfg + _ ≤ (q : ℝ) := by exact_mod_cast hbound + · exact hm + · exact hx + have hr0 : 0 ≤ boxRadius X m := boxRadius_nonneg X m + have hnorm : + ‖newtonMap (Y.map fun r => (r : ℝ)) F x - + newtonMap (Y.map fun r => (r : ℝ)) F mr‖ + ≤ ((q * boxRadius X m : ℚ) : ℝ) := by + calc + _ ≤ (q : ℝ) * ‖x - mr‖ := hdiff + _ ≤ (q : ℝ) * (boxRadius X m : ℝ) := + mul_le_mul_of_nonneg_left (norm_sub_center_le_boxRadius hx) + (by exact_mod_cast hq0) + _ = _ := by push_cast; rfl + have hcoord : + |(newtonMap (Y.map fun r => (r : ℝ)) F x - + newtonMap (Y.map fun r => (r : ℝ)) F mr) i| + ≤ ((q * boxRadius X m : ℚ) : ℝ) := + (norm_le_pi_norm _ i).trans hnorm + have herr : + (newtonMap (Y.map fun r => (r : ℝ)) F x - + newtonMap (Y.map fun r => (r : ℝ)) F mr) i ∈ + symmetricInterval (q * boxRadius X m) := by + rw [abs_le] at hcoord + simpa [symmetricInterval, IntervalRat.mem_def, + abs_of_nonneg (mul_nonneg hq0 hr0)] using hcoord + have hcenter := newtonMap_center_mem_kernel_values F m Y V hV i + have himage : + newtonMap (Y.map fun r => (r : ℝ)) F x i ∈ + imageEnclosureWithValuesQ X m Y V q i := by + have hadd := IntervalRat.mem_add hcenter herr + simpa [imageEnclosureWithValuesQ, mr, Pi.sub_apply] using hadd + exact intervalStrictInside_sound (hencl i) _ himage + +theorem uniqueSystemZero_of_certified_contraction_values {n : Nat} + (F : Fin n → Expr) (hsupp : ∀ i, ADConstSupported (F i)) + (X : Fin n → IntervalRat) (m : Fin n → ℚ) + (hm : FinBoxMem (fun i => (m i : ℝ)) X) + (Y : Matrix (Fin n) (Fin n) ℚ) (cfg : EvalConfig) + (q : ℚ) (hq0 : 0 ≤ q) (hq1 : q < 1) + (hbound : + intervalMatrixBound + (preconditionedJacobian Y (intervalJacobian F X cfg)) ≤ q) + (V : Fin n → IntervalRat) + (hV : ∀ j, systemEval F (fun k => (m k : ℝ)) j ∈ V j) + (hencl : ∀ i, + intervalStrictInside (imageEnclosureWithValuesQ X m Y V q i) (X i) = true) : + ∃! x, FinBoxMem x X ∧ SystemZero F x := by + have hmap := mapsTo_of_bound_and_values_enclosure + F hsupp X m hm Y cfg q hq0 hbound V hV hencl + have hactualLt : + intervalMatrixBound + (preconditionedJacobian Y (intervalJacobian F X cfg)) < 1 := + lt_of_le_of_lt hbound hq1 + have hinj := preconditioner_injective_of_bound_lt_one + F hsupp X m hm Y cfg hactualLt + have hfixed := contraction_unique_fixedPoint_in_finBox X + (fun i => (m i : ℝ)) hm + (newtonMap (Y.map fun r => (r : ℝ)) F) + hmap (q : ℝ) (by exact_mod_cast hq0) (by exact_mod_cast hq1) + (fun x _ => + (newtonMap_differentiable_const (Y.map fun r => (r : ℝ)) F hsupp).differentiableAt) + (fun x hx => by + calc + ‖fderiv ℝ (newtonMap (Y.map fun r => (r : ℝ)) F) x‖ + ≤ (intervalMatrixBound + (preconditionedJacobian Y (intervalJacobian F X cfg)) : ℝ) := + newtonMap_fderiv_norm_le_const Y F hsupp X x hx cfg + _ ≤ (q : ℝ) := by exact_mod_cast hbound) + refine ⟨hfixed.choose, ⟨hfixed.choose_spec.1.1, + (fixedPoint_iff_systemZero_of_injective F Y hinj hfixed.choose).mp + hfixed.choose_spec.1.2⟩, ?_⟩ + intro y hy + exact hfixed.unique ⟨hy.1, + (fixedPoint_iff_systemZero_of_injective F Y hinj y).mpr hy.2⟩ + hfixed.choose_spec.1 + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# LeanCert Gerver numerical core + +Only shared definitions and lightweight list lemmas live here. +The expensive 22D kernel checks are split into one Lake module per row. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine + +/-- The default evaluation configuration used for the numerical certificates. -/ +def cfg : EvalConfig := {} + +/-- The interval enclosure of the normalized reduced Newton-map derivative. -/ +def reducedPJ : Matrix (Fin 4) (Fin 4) IntervalRat := + preconditionedJacobian reducedY + (intervalJacobian reducedExpr (unitBox (n := 4)) cfg) + +/-- The interval enclosure of the normalized full Newton-map derivative. -/ +def fullPJ : Matrix (Fin 22) (Fin 22) IntervalRat := + preconditionedJacobian fullY + (intervalJacobian fullExpr (unitBox (n := 22)) cfg) + +theorem qTarget_pos : (0 : ℚ) < qTarget := by norm_num [qTarget] +theorem qTarget_nonneg : (0 : ℚ) ≤ qTarget := qTarget_pos.le +theorem qTarget_lt_one : qTarget < (1 : ℚ) := by norm_num [qTarget] + +/-- Assemble a bound from independently kernel-checked rows without re-running AD. -/ +theorem foldl_max_lt {xs : List ℚ} {a q : ℚ} + (ha : a < q) (hxs : ∀ x ∈ xs, x < q) : + xs.foldl max a < q := by + induction xs generalizing a with + | nil => simpa using ha + | cons x xs ih => + simp only [List.foldl_cons] + apply ih + · exact max_lt ha (hxs x (by simp)) + · intro y hy + exact hxs y (by simp [hy]) + +theorem matrixBound_lt_of_rows {n : Nat} + (A : Matrix (Fin n) (Fin n) IntervalRat) (q : ℚ) + (hq0 : 0 < q) + (hrows : ∀ i : Fin n, intervalMatrixRowBound A i < q) : + intervalMatrixBound A < q := by + unfold intervalMatrixBound + apply foldl_max_lt hq0 + intro x hx + rcases List.mem_ofFn.mp hx with ⟨i, rfl⟩ + exact hrows i + +/-! ## Proof-carrying cache for the 22 Newton-center residuals + +These deliberately simple rational intervals are much wider than the actual +point residuals, but still narrow enough after the scaled preconditioner to +leave a large self-map margin. Each coordinate is checked independently in a +separate module before it is used by the final contraction theorem. +-/ +/-- Cached interval evaluations of the full system at the normalized center. -/ +def fullPointCacheList : List IntervalRat := [ + ⟨q (-1) 100000000000000000000000000000, q 1 100000000000000000000000000000, by norm_num [q]⟩, + ⟨q (-1) 100000000000000000000000000000, q 1 100000000000000000000000000000, by norm_num [q]⟩, + ⟨q 0 1, q 3 100000000000000000000000000000, by norm_num [q]⟩, + ⟨q (-1) 50000000000000000000000000000, q 1 100000000000000000000000000000, by norm_num [q]⟩, + ⟨q (-1) 100000000000000000000000000000, q 1 50000000000000000000000000000, by norm_num [q]⟩, + ⟨q 0 1, q 1 50000000000000000000000000000, by norm_num [q]⟩, + ⟨q (-1) 100000000000000000000000000000, q 1 100000000000000000000000000000, by norm_num [q]⟩, + ⟨q (-1) 100000000000000000000000000000, q 1 100000000000000000000000000000, by norm_num [q]⟩, + ⟨q (-1) 100000000000000000000000000000, q 1 50000000000000000000000000000, by norm_num [q]⟩, + ⟨q (-1) 100000000000000000000000000000, q 1 50000000000000000000000000000, by norm_num [q]⟩, + ⟨q (-1) 50000000000000000000000000000, q 1 100000000000000000000000000000, by norm_num [q]⟩, + ⟨q 1 100000000000000000000000000000, q 1 25000000000000000000000000000, by norm_num [q]⟩, + ⟨q 0 1, q 3 100000000000000000000000000000, by norm_num [q]⟩, + ⟨q (-1) 50000000000000000000000000000, q 1 100000000000000000000000000000, by norm_num [q]⟩, + ⟨q (-1) 100000000000000000000000000000, q 1 50000000000000000000000000000, by norm_num [q]⟩, + ⟨q (-1) 100000000000000000000000000000, q 1 50000000000000000000000000000, by norm_num [q]⟩, + ⟨q (-1) 50000000000000000000000000000, q 1 100000000000000000000000000000, by norm_num [q]⟩, + ⟨q (-1) 50000000000000000000000000000, q 1 100000000000000000000000000000, by norm_num [q]⟩, + ⟨q (-1) 25000000000000000000000, q 1 20000000000000000000000, by norm_num [q]⟩, + ⟨q (-1) 20000000000000000000000, q 1 25000000000000000000000, by norm_num [q]⟩, + ⟨q (-1) 100000000000000000000000000000, q 3 100000000000000000000000000000, by norm_num [q]⟩, + ⟨q (-3) 100000000000000000000000000000, q 1 100000000000000000000000000000, by norm_num [q]⟩ +] + +/-- Select a cached center evaluation of a full-system equation. -/ +def fullPointCache (i : Fin 22) : IntervalRat := + fullPointCacheList.getD i.1 (IntervalRat.singleton 0) + +/-- The full Newton image enclosure computed with cached center evaluations. -/ +def fullImageCachedQ (i : Fin 22) : IntervalRat := + imageEnclosureWithValuesQ (unitBox (n := 22)) (zeroCenter (n := 22)) + fullY fullPointCache qTarget i + +/-- The reduced Newton image enclosure on the normalized unit box. -/ +def reducedImageQ (i : Fin 4) : IntervalRat := + imageEnclosureWithQ reducedExpr (unitBox (n := 4)) + (zeroCenter (n := 4)) reducedY cfg qTarget i + +theorem reduced_center_mem : + FinBoxMem (fun i : Fin 4 => ((zeroCenter (n := 4) i : ℚ) : ℝ)) + (unitBox (n := 4)) := by + intro i + simp [zeroCenter, unitBox, IntervalRat.mem_def] + +theorem full_center_mem : + FinBoxMem (fun i : Fin 22 => ((zeroCenter (n := 22) i : ℚ) : ℝ)) + (unitBox (n := 22)) := by + intro i + simp [zeroCenter, unitBox, IntervalRat.mem_def] + +end PartALeanCert +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle005.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle005.lean new file mode 100644 index 0000000000..cde177c757 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle005.lean @@ -0,0 +1,10349 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle002 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle004 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle003 + +public import Mathlib.Data.Nat.Find +public import Mathlib.Tactic +public import Mathlib.Tactic.FieldSimp +public import Mathlib.Tactic.FinCases +public import Mathlib.Tactic.Ring +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.Foundation.Batch003`. +* `GerverSofa.KernelOnly.Numerics.Batch001`. +* `GerverSofa.KernelOnly.Numerics.Batch002`. +* `GerverSofa.KernelOnly.Numerics.Batch003`. +* `GerverSofa.KernelOnly.Numerics.Batch004`. +* `GerverSofa.KernelOnly.Numerics.Batch005`. +* `GerverSofa.KernelOnly.Foundation.Batch004`. +* `GerverSofa.KernelOnly.PartE.Semantics.Batch001`. +* `GerverSofa.KernelOnly.PartB.Semantics.Batch003`. +-/ + +@[expose] public section + +noncomputable section + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.JacobianCache`. +* `KernelOnly.LeanCertGerverNumericsReduced`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Shared exact interval Jacobian for the 22-dimensional certificate + +The kernel verifies every matrix entry against the original automatic differentiation +evaluator. Matrix row bounds can then reuse the certified entries. +-/ + +@[expose] public section +namespace GerverSofa.PartALeanCert +open LeanCert.Core LeanCert.Engine + +/-- Reconstruct a natural number from base-10³⁵ chunks for decimal elaboration. -/ +def naturalFromChunks (chunks : List ℕ) : ℕ := + chunks.foldl (fun value digit => value * 10 ^ 35 + digit) 0 + +/-- Exact cached Jacobian interval number 0, shared by equal entries. -/ +def jacobianEntry000 : IntervalRat := + ⟨(q + 0 + 1), + (q + 0 + 1), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 1, shared by equal entries. -/ +def jacobianEntry001 : IntervalRat := + ⟨(q + (-(1 : ℤ)) + 10000000000000000000000), + (q + (-(1 : ℤ)) + 10000000000000000000000), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 2, shared by equal entries. -/ +def jacobianEntry002 : IntervalRat := + ⟨(q + 1 + 10000000000000000000000), + (q + 1 + 10000000000000000000000), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 3, shared by equal entries. -/ +def jacobianEntry003 : IntervalRat := + ⟨(q + (-(31415926535897933 : ℤ)) + (naturalFromChunks [ + 2000, + 0])), + (q + (-(7853981633974483 : ℤ)) + (naturalFromChunks [ + 500, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 4, shared by equal entries. -/ +def jacobianEntry004 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 7302291171534437540739059211270, + 62603078071522934985237770352870131, + 65836645916281358406641371202899231, + 53726555807649881687955070859646221, + 28324204846900711954852999095288560, + 74723762903619705246321908744465090, + 64826457649890704414497430491211281, + 20574610373540063477933619663935914, + 80242971244164644799995665107793557, + 6086704947498027804967631838853576, + 62481503746522252138415644597421765, + 32033537775236312858538976911582807, + 40311379023805556405510702050965361, + 77540705318547318829968145740509773, + 17367742985344688946603311510163578, + 74909356280402076830989205440282523, + 6995813836602201925464533090592071]) + (naturalFromChunks [ + 732476473344000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 507103553578780384773563442541417, + 94698791213826119093186876572859864, + 15548305859588655267023070389345830, + 33159838526908442543211837120728759, + 3865445100998990097784146416535036, + 64642752897093102844923553384615171, + 68763366624136086130719360401948367, + 619291325796097507385113031956620, + 19067116153975375531560230982057442, + 92910533440132892667508087960607232, + 10839074800776283949308197382802296, + 66457159709219595865536845126743026, + 34469108831014037616961089980351793, + 26133430441883788061713970279416234, + 21778463327947902555078192692702636, + 91002976914649816729672745776196632, + 38062025338495397123749885159021881]) + (naturalFromChunks [ + 50866421760000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 5, shared by equal entries. -/ +def jacobianEntry005 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 26155443047017164924, + 51948774198841577898573116771393516, + 40492442572889628469879882033256716, + 74655549198190939008143206760585064, + 81437387381446629703018736147636028, + 89476350149712987515166932908391254, + 86210131010838527615254636680772364, + 14418167525844757550395013766238555, + 58785462379224720453071008471370354, + 20265150396760286139513154614339561, + 67644720387271822398769553018517054, + 16756002041840783466098940078636727, + 15776017768574755885160693218947784, + 49406689895231013099621174747218230, + 18705223576009121622005064353559890, + 38638014191096243625012399666628208, + 73505208703653573295616036495840233, + 89953867437106799895512969220274001]) + (naturalFromChunks [ + 33414990, + 73277460480000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 26155443047017164924, + 53109182283427083433072861240124059, + 23126507692524839291624930472864879, + 72341749128136688648611150016306326, + 44139489352178350868323375137797958, + 65590161521538195435503240261540309, + 35051120974370767103797318127249504, + 7323238045333273918434772577727849, + 8062969635695436059523728331659876, + 9411507113629570449186098067951242, + 82358573374363972295006778826115466, + 92254742191300297818748796835597741, + 83167490748934545082649491651932510, + 38857585646488763229576985079482408, + 4442337792553033022243475041749642, + 61368240185514979758553782063506707, + 60389259661333090014056246622771847, + 38781140546001429783512969220274001]) + (naturalFromChunks [ + 33414990, + 73277460480000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 6, shared by equal entries. -/ +def jacobianEntry006 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 12804383003350103328, + 63307894022272997926538740311484949, + 25196721501196286822405177768269239, + 82390931751685070431278135581129012, + 57276281642207501766192210160813629, + 43155082000316152942557215709730655, + 60260303521391232922052999203904374, + 76502717447660000145505841759109266, + 4612015658335133293806642573132171, + 12428298655865671194597563325604001]) : ℤ)) + (naturalFromChunks [ + 16349921, + 28000000000000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 29100870462159325746, + 88690408519371071042552548825676558, + 7151971153710758093004047524014875, + 57778246443332979957500192691404948, + 13830430762981650893880915068665480, + 44366481210286091359786109795397712, + 35368953204907053050532703318844226, + 30845169156305955909356081423954341, + 37163402169222139733626194195214059, + 59269530634977972716063063008513591]) : ℤ)) + (naturalFromChunks [ + 37158912, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 7, shared by equal entries. -/ +def jacobianEntry007 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 8168687708195300209523685201, + 51466733258999157794562262879739361, + 83044118018001634139480470724425976, + 3124995890782157382952812227479795, + 79691021612686864121793062218595028, + 61848622605893783127624967686605586, + 37563139673860619382511127033019145, + 95717533889869613908008887710180867, + 61214949413130194370370491393605751]) : ℤ)) + (naturalFromChunks [ + 817496064000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 8168687708195300209523548508, + 262084693744252290618237845077936, + 59630898042252737007119539862573770, + 85670741929566438838418210096502502, + 68746015112854582979695067224582614, + 601569332966945250398739051546917, + 36111245854814052753836553329544049, + 75810951854582975130593161890447049, + 87296345979597779517629508606394249]) : ℤ)) + (naturalFromChunks [ + 817496064000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 8, shared by equal entries. -/ +def jacobianEntry008 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 4351836038171981263012981260, + 76017600016021480743208388315632944, + 11059251508958509065408380879317143, + 17207561234128667472718121598587959, + 77890635486980056142496917042239998, + 68914016068855974869102476150899260, + 61291516587791258017470197705861923, + 75450006095166098923841042297078292, + 98737604596196464211229335895301237, + 22932866990655735600974232255961840, + 16153008731703206338486341650497171, + 98729543000784849015390340426058108, + 68171485621218593874174140251422992, + 4958239564296464343197683438164893, + 52788849768402637056113713231700226, + 45073579579069554108872126778739708, + 99045958204655518403989095572552812, + 45924517960050625410242642699422681]) : ℤ)) + (naturalFromChunks [ + 3341499, + 7327746048000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 4003588609101864096620301357, + 54033188319852210103648514686085193, + 24581453046159760205867563659589489, + 96451152674805880241114754614814231, + 74693101752113895664848438931085207, + 26771314933477010177981076459428154, + 21316221310561555250942325250311776, + 33148371225775893519263090604991158, + 26172684688928662912950639001936885, + 35478157868322140978363434983717300, + 16559283188850556724662197227110021, + 45126752726317960859820799533549302, + 52417900864638374263706646541159920, + 72699857435174057099230395775600834, + 65327674957856151672412107355643413, + 2342514632318889702282044195493814, + 39788224412818939694489250424650159, + 7942965715558610045757357300577319]) + (naturalFromChunks [ + 3341499, + 7327746048000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 9, shared by equal entries. -/ +def jacobianEntry009 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 507103553578780384773563442541417, + 94698791213826119093186876572859864, + 15548305859588655267023070389345830, + 33159838526908442543211837120728759, + 3865445100998990097784146416535036, + 64642752897093102844923553384615171, + 68763366624136086130719360401948367, + 619291325796097507385113031956620, + 19067116153975375531560230982057442, + 92910533440132892667508087960607232, + 10839074800776283949308197382802296, + 66457159709219595865536845126743026, + 34469108831014037616961089980351793, + 26133430441883788061713970279416234, + 21778463327947902555078192692702636, + 91002976914649816729672745776196632, + 38062025338495397123749885159021881]) : ℤ)) + (naturalFromChunks [ + 50866421760000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 7302291171534437540739059211270, + 62603078071522934985237770352870131, + 65836645916281358406641371202899231, + 53726555807649881687955070859646221, + 28324204846900711954852999095288560, + 74723762903619705246321908744465090, + 64826457649890704414497430491211281, + 20574610373540063477933619663935914, + 80242971244164644799995665107793557, + 6086704947498027804967631838853576, + 62481503746522252138415644597421765, + 32033537775236312858538976911582807, + 40311379023805556405510702050965361, + 77540705318547318829968145740509773, + 17367742985344688946603311510163578, + 74909356280402076830989205440282523, + 6995813836602201925464533090592071]) : ℤ)) + (naturalFromChunks [ + 732476473344000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 10, shared by equal entries. -/ +def jacobianEntry010 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 163122868986236350200, + 13212104989835737702967996320253347, + 13343446698691791948896941422365475, + 8096241524554184648945198975238842, + 55534909982015434708979369629464764, + 76573441012851358138234190261693558, + 79427907664974237935799314423674117, + 4953829431951288217980965287083443, + 95618746533545362476016957876485554, + 44154543264308318693402436674395999]) + (naturalFromChunks [ + 16349921, + 28000000000000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 370733793150537159545, + 76127734659590509217418760566762798, + 83500695503852348111812708082675358, + 8167915944020144671694939034466768, + 70108246297247634239713857794350318, + 48346428376057315228605372168926753, + 77052008275409499730746022341858967, + 30494332824458242394752971556556394, + 26480558256939393278929373508455480, + 5642901791267147283936936991486409]) + (naturalFromChunks [ + 37158912, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 11, shared by equal entries. -/ +def jacobianEntry011 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 320191491967265573299622687, + 53013595983521471973089342170075396, + 64210432087316798696539851495592012, + 18605199481029466524389064552432920, + 91322680546566024998863058319218327, + 25520274592961360039367904724384559, + 37639720591938304020705346465799237, + 90794994241578641575695128019032725, + 32079403795705900482370491393605751]) : ℤ)) + (naturalFromChunks [ + 817496064000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 320191491967265573299485989, + 93256458762401047215486481839485294, + 66387420606013932458366418942019752, + 75158597834282975620530000652601944, + 81258519302743687820429638412903277, + 26525331629470118664578696517478146, + 37125905076490006801321755179098797, + 2827449942997481909038311980967274, + 67920596204294099517629508606394249]) : ℤ)) + (naturalFromChunks [ + 817496064000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 12, shared by equal entries. -/ +def jacobianEntry012 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 3420031750228409906252618489, + 90931929615262590050819024036832147, + 21506571044326610764292459863905479, + 74538770850235934189940647549294463, + 29621768507857295177364391873262079, + 10933450678245914120167591207427285, + 49181137297721373459800467154721233, + 89787178661856429371317394337935251, + 65843424654096570705147958715768220, + 63615469750503758464529825528864113, + 66409373661200684292384252948301388, + 32939891107539306601569814693951796, + 74322536731541153535575038767603862, + 44440620881220284070119322114887784, + 91668814424924291631841697402988320, + 32219074607272143865331607160174037, + 50460727063802276122996533532669802, + 13969508541598381181757357300577319]) : ℤ)) + (naturalFromChunks [ + 3341499, + 7327746048000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 3332542732427061890511872752, + 47000681977616353407805735599142210, + 94344814107689418558967999766690207, + 42694687435724596552986916073706462, + 91145540018505849404450452414800312, + 62191047578086169648923996108922988, + 90916961106701487614400715766740886, + 99743074794088195900952245813912149, + 572460563594575054478438406055569, + 63828687932987171491220304569694473, + 9634735810764848166091054799398721, + 66738387738006625412848379545388946, + 876281196732513526586105195911404, + 43530939696670331083413526607388632, + 52575071804007568732157139880458185, + 57448568521393973246195227052776783, + 27582531650396302574779440591735431, + 78361975134010854274242642699422681]) + (naturalFromChunks [ + 3341499, + 7327746048000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 13, shared by equal entries. -/ +def jacobianEntry013 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 26155443047017164924, + 53109182283427083433072861240124059, + 23126507692524839291624930472864879, + 72341749128136688648611150016306326, + 44139489352178350868323375137797958, + 65590161521538195435503240261540309, + 35051120974370767103797318127249504, + 7323238045333273918434772577727849, + 8062969635695436059523728331659876, + 9411507113629570449186098067951242, + 82358573374363972295006778826115466, + 92254742191300297818748796835597741, + 83167490748934545082649491651932510, + 38857585646488763229576985079482408, + 4442337792553033022243475041749642, + 61368240185514979758553782063506707, + 60389259661333090014056246622771847, + 38781140546001429783512969220274001]) : ℤ)) + (naturalFromChunks [ + 16707495, + 36638730240000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 26155443047017164924, + 51948774198841577898573116771393516, + 40492442572889628469879882033256716, + 74655549198190939008143206760585064, + 81437387381446629703018736147636028, + 89476350149712987515166932908391254, + 86210131010838527615254636680772364, + 14418167525844757550395013766238555, + 58785462379224720453071008471370354, + 20265150396760286139513154614339561, + 67644720387271822398769553018517054, + 16756002041840783466098940078636727, + 15776017768574755885160693218947784, + 49406689895231013099621174747218230, + 18705223576009121622005064353559890, + 38638014191096243625012399666628208, + 73505208703653573295616036495840233, + 89953867437106799895512969220274001]) : ℤ)) + (naturalFromChunks [ + 16707495, + 36638730240000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 14, shared by equal entries. -/ +def jacobianEntry014 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 7302291171534437540739059211270, + 62603078071522934985237770352870131, + 65836645916281358406641371202899231, + 53726555807649881687955070859646221, + 28324204846900711954852999095288560, + 74723762903619705246321908744465090, + 64826457649890704414497430491211281, + 20574610373540063477933619663935914, + 80242971244164644799995665107793557, + 6086704947498027804967631838853576, + 62481503746522252138415644597421765, + 32033537775236312858538976911582807, + 40311379023805556405510702050965361, + 77540705318547318829968145740509773, + 17367742985344688946603311510163578, + 74909356280402076830989205440282523, + 6995813836602201925464533090592071]) + (naturalFromChunks [ + 366238236672000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 507103553578780384773563442541417, + 94698791213826119093186876572859864, + 15548305859588655267023070389345830, + 33159838526908442543211837120728759, + 3865445100998990097784146416535036, + 64642752897093102844923553384615171, + 68763366624136086130719360401948367, + 619291325796097507385113031956620, + 19067116153975375531560230982057442, + 92910533440132892667508087960607232, + 10839074800776283949308197382802296, + 66457159709219595865536845126743026, + 34469108831014037616961089980351793, + 26133430441883788061713970279416234, + 21778463327947902555078192692702636, + 91002976914649816729672745776196632, + 38062025338495397123749885159021881]) + (naturalFromChunks [ + 25433210880000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 15, shared by equal entries. -/ +def jacobianEntry015 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 8162415578753558859765, + 21665156988862230891185263515522227, + 5475742064434838230756858649664301, + 11145876946719536779723020855540569, + 45180499115234782980284496634384612, + 61562143060941770461550657670678134, + 77851409811074333968515937016012156, + 86394958927807611277089641126564192, + 329521433808032633320293778255977, + 42359469703938620123306306906350499]) : ℤ)) + (naturalFromChunks [ + 408748032, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 108832207716714118130, + 20103040331692477192617680710872701, + 34499773297103250931317227188252090, + 77747927745989674413424658581201014, + 82846638452311912322023676407788703, + 8579556341627581599191031756556113, + 27507247462399718344026789833468394, + 54680642982723441769880155966315560, + 58837615426490760689324182743025242, + 18981013754769439564467478891465333]) : ℤ)) + (naturalFromChunks [ + 5449973, + 76000000000000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 16, shared by equal entries. -/ +def jacobianEntry016 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 320191491967265573299485989, + 93256458762401047215486481839485294, + 66387420606013932458366418942019752, + 75158597834282975620530000652601944, + 81258519302743687820429638412903277, + 26525331629470118664578696517478146, + 37125905076490006801321755179098797, + 2827449942997481909038311980967274, + 67920596204294099517629508606394249]) + (naturalFromChunks [ + 817496064000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 320191491967265573299622687, + 53013595983521471973089342170075396, + 64210432087316798696539851495592012, + 18605199481029466524389064552432920, + 91322680546566024998863058319218327, + 25520274592961360039367904724384559, + 37639720591938304020705346465799237, + 90794994241578641575695128019032725, + 32079403795705900482370491393605751]) + (naturalFromChunks [ + 817496064000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 17, shared by equal entries. -/ +def jacobianEntry017 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 151634312, + 99668462617431325434924986957764715, + 38315082266817589430283894717677095, + 91549475369686381133287033133555911, + 75876109123654603111324496463071341, + 61064827155573427181097189016633488, + 85681524817888904508842338212217589, + 72675186999137526039138098013588344, + 5255150243958148600212313159803052, + 34131427677854616396547911665043624, + 47176259434611004442151332683134006, + 4578465050974687057903727292714271, + 34203900707994397580821218261750773, + 79564513611835155373207464454168863, + 72538969294172836248080372278010559, + 15171635065118638502549526772181162, + 80370610047525248386619024623513609, + 82193934464217261030954945210498359, + 59164853490080518634357239863562013]) : ℤ)) + (naturalFromChunks [ + 4, + 17687384159682560000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 151634312, + 99668462617416978481107742412336288, + 27061273687144305340763248099942418, + 66472128684716957417589220526464924, + 11716352479633381087922121005932875, + 1659185385004219149455490139931359, + 26671873583124798776596643903348241, + 51898790226105682616793173713373460, + 33007661002417084715966542914381025, + 13652365332265279873898886620915624, + 15150983906130322213181695343945582, + 55791040746026127822866989331461882, + 62778000991423073680992127673149718, + 67423346041116510446078407330606718, + 52870955179725239729519256588904336, + 67033883199464819170875651586192127, + 83155782680642200937115120313076282, + 59476081743970139085199978805464650, + 68034783235751598055931400136437987]) : ℤ)) + (naturalFromChunks [ + 4, + 17687384159682560000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 18, shared by equal entries. -/ +def jacobianEntry018 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 26155443047017164924, + 51948774198841577898573116771393516, + 40492442572889628469879882033256716, + 74655549198190939008143206760585064, + 81437387381446629703018736147636028, + 89476350149712987515166932908391254, + 86210131010838527615254636680772364, + 14418167525844757550395013766238555, + 58785462379224720453071008471370354, + 20265150396760286139513154614339561, + 67644720387271822398769553018517054, + 16756002041840783466098940078636727, + 15776017768574755885160693218947784, + 49406689895231013099621174747218230, + 18705223576009121622005064353559890, + 38638014191096243625012399666628208, + 73505208703653573295616036495840233, + 89953867437106799895512969220274001]) + (naturalFromChunks [ + 16707495, + 36638730240000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 26155443047017164924, + 53109182283427083433072861240124059, + 23126507692524839291624930472864879, + 72341749128136688648611150016306326, + 44139489352178350868323375137797958, + 65590161521538195435503240261540309, + 35051120974370767103797318127249504, + 7323238045333273918434772577727849, + 8062969635695436059523728331659876, + 9411507113629570449186098067951242, + 82358573374363972295006778826115466, + 92254742191300297818748796835597741, + 83167490748934545082649491651932510, + 38857585646488763229576985079482408, + 4442337792553033022243475041749642, + 61368240185514979758553782063506707, + 60389259661333090014056246622771847, + 38781140546001429783512969220274001]) + (naturalFromChunks [ + 16707495, + 36638730240000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 19, shared by equal entries. -/ +def jacobianEntry019 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 6402737614231804931, + 54184423027514972532322726591090597, + 55115838261801642856247050566355423, + 24524985374596353350622488689636767, + 87380707822887037565837570046024931, + 93863912170240548267261472165696250, + 3009807424728548253606359872670434, + 69367064421186628325692891091003942, + 14225822099974403069308217406847332, + 99879933551955223731532521108534667]) : ℤ)) + (naturalFromChunks [ + 5449973, + 76000000000000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 480205321067385369865, + 49893990341311162668601644825683058, + 52936415884528642030010751947373102, + 36548348455961696673989929870454755, + 82231979022057811204533975970139491, + 33195156575812819692706540038723094, + 62965803816930121800863137168164078, + 94236712133090486501657850182653745, + 57161157821741639216937894962108958, + 71677286984757699876693693093649501]) : ℤ)) + (naturalFromChunks [ + 408748032, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 20, shared by equal entries. -/ +def jacobianEntry020 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 246109182533, + 63689055212495349844348455603740526, + 2459665425556941806640787160098397, + 11270491871680120158217013599123496, + 66445409117884011348990144753541055, + 82506355901505301651215645152779516, + 47134236083428643784023976624455135, + 84574353764108143116719381874126648, + 44893312590349192655134993659785375, + 95003490014442919984607271514730456, + 98104254324749327817987197614854755, + 90973124714442734213821944183162994, + 74410925451472791561088694529710817, + 48831698317442489424799148900490262, + 31813301634820340377618334876356607, + 37586912956214654189485401270870441, + 82561104235738048120696057098145611, + 37593003366534348715354835966369263, + 51581067049589316696246150566891409]) : ℤ)) + (naturalFromChunks [ + 92819, + 41870215168000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 2214982642802, + 73201493225300966841097223910816439, + 16463987998273083717738236625958625, + 90442503703288354254191954688229478, + 76037541601454949005935848779731582, + 78709483599527540687207532308343764, + 60923823608200002470591613505767552, + 77822847198303311411748421153740031, + 25427395199376513930956996404577040, + 86315368278883883977338450914883035, + 78411783013296250792276932159953039, + 36088998744013857335500585055966756, + 19639790244902352874810113946088499, + 35948411286810057474015964561512623, + 13189450925765156926809532464558295, + 21149086210374540235685034274315927, + 57812206231928416870078433837854017, + 41763164161878274216848841975509772, + 63668822760479365098269930296822681]) : ℤ)) + (naturalFromChunks [ + 835374, + 76831936512000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 21, shared by equal entries. -/ +def jacobianEntry021 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 37, + 64964932916807993933992739614852565, + 73425747625329018471695404071919474, + 32428598921433773523276536986136716, + 95804936725122105032338314478045544, + 37839005332906669519148382444918613, + 93910509049666464822504678557122067, + 47563294676419806542477618269298479, + 20057194249093442371341925670977569, + 83735790938670159845954730089687134, + 97739845371556534324558878348085397]) + (naturalFromChunks [ + 324843750000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 112, + 94894810802129538499495336548811395, + 30627346704914725170313587692932357, + 71856848395017812308204077540266185, + 46110065952096461758306574901708328, + 54964034329753530228877898686780806, + 93612167582613954419042710857760045, + 27573090730890605253666184909411466, + 41466664660821619052535510154677044, + 12164592087685865488315347374867414, + 85111645614031567298658147323581761]) + (naturalFromChunks [ + 974531250000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 22, shared by equal entries. -/ +def jacobianEntry022 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 50464715, + 64732670758294711200924782925221777, + 98385684290077839487301182380997546, + 53610107900326691496911028225237884, + 82456569428218072679478834100193025, + 10063572333607529684946179543893525, + 13470787246553804150266810892380951, + 21872306604849333638776947219394501, + 54380505433679613411774213979274707, + 18467897289415753684541230752125211]) + (naturalFromChunks [ + 649687500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 151394147, + 8534174455720092134237275166603186, + 16840640244550300415844583544502225, + 12894405273196777971379918291978794, + 4506348409732893778736073442501460, + 54756683995003484397907923306619480, + 27034357940592422468567779837099716, + 93382309438500237515411019035358590, + 70067448925761052854406226725970958, + 16662408131752738946376307743624367]) + (naturalFromChunks [ + 1949062500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 23, shared by equal entries. -/ +def jacobianEntry023 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 151394147, + 8534174455720092134237275166603186, + 16840640244550300415844583544502225, + 12894405273196777971379918291978794, + 4506348409732893778736073442501460, + 54756683995003484397907923306619480, + 27034357940592422468567779837099716, + 93382309438500237515411019035358590, + 70067448925761052854406226725970958, + 16662408131752738946376307743624367]) : ℤ)) + (naturalFromChunks [ + 1949062500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 50464715, + 64732670758294711200924782925221777, + 98385684290077839487301182380997546, + 53610107900326691496911028225237884, + 82456569428218072679478834100193025, + 10063572333607529684946179543893525, + 13470787246553804150266810892380951, + 21872306604849333638776947219394501, + 54380505433679613411774213979274707, + 18467897289415753684541230752125211]) : ℤ)) + (naturalFromChunks [ + 649687500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 24, shared by equal entries. -/ +def jacobianEntry024 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 1515467, + 10063860960057925900960894489197103, + 66168917845173991972096672824527974, + 53183908241597557284573812277137549, + 69640192145790299690329009864755874, + 48003263610387117627231916521224306, + 49002445145814704036244459302136418, + 52127853237031002786897475766547098, + 81067701652781485466240570252843736, + 13145612862570953840168193731560193]) + (naturalFromChunks [ + 24062500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 5845373, + 10928995235501331264236167522763103, + 2827494537651899868515205360977465, + 59035800219581348449874311656188945, + 85789624445699996804775633486439122, + 59044586474521916916533288165489581, + 82103179922346046789035128073019526, + 33880376764493741963357186245379313, + 20795421034628556058786371881888446, + 35009778958654892330779824178267827]) + (naturalFromChunks [ + 92812500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 25, shared by equal entries. -/ +def jacobianEntry025 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 485091274100409627536, + 13901544392852629819418868825090398, + 35450433787827185612016598182037754, + 5557708859197826275518814695136589, + 98534250869383383955967122947444557, + 83051016282114999111800152645156444, + 94051377464808728780631414730120654, + 20449081665850328703595286977030564, + 80319078339700008695123242082940053, + 11376622677708865854065652102189644, + 79582174573488767294650349188727457]) : ℤ)) + (naturalFromChunks [ + 1208496093750000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 4365821466903686647860, + 88877680303907831714098684624218164, + 73233505317830833297096253249348548, + 91698411880449546229923050680040289, + 49365738783344007659430652207853027, + 99599067937200731781200114966439453, + 48169942696227672029010618751339327, + 19182588669537476646476988824059052, + 94524946691928014519702481161264369, + 61261519466972078491402374373043157, + 53840789798821459410646967230091689]) + (naturalFromChunks [ + 10876464843750000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 26, shared by equal entries. -/ +def jacobianEntry026 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 33, + 88122760773053616496499903379466451, + 5096077917318477688114054076305538, + 66937289792503507838052086551881692, + 94567719696477485778768802524360075, + 30155624493727131320408201099332102, + 10729506593912846967972547381167997, + 53258972054123314253208391418671093, + 31444869785293900831980717333511578, + 38657798557831769524160962916922611, + 1909813885330397026323364955743809]) : ℤ)) + (naturalFromChunks [ + 974531250000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 11, + 29374249573782686599660933109279673, + 77799022607584671204943003755369587, + 39911281305734336515928231949106631, + 53334218904798949134269278401553318, + 4415711043391639552362372265268, + 48459612534507903238809762376445765, + 24175194930226652146003865268126180, + 66486347960967454364101507365219009, + 70781124931533619480101266683596603, + 61839501461989477567113950892139413]) : ℤ)) + (naturalFromChunks [ + 324843750000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 27, shared by equal entries. -/ +def jacobianEntry027 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 5845373, + 10928995235501331264236167522763103, + 2827494537651899868515205360977465, + 59035800219581348449874311656188945, + 85789624445699996804775633486439122, + 59044586474521916916533288165489581, + 82103179922346046789035128073019526, + 33880376764493741963357186245379313, + 20795421034628556058786371881888446, + 35009778958654892330779824178267827]) : ℤ)) + (naturalFromChunks [ + 92812500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 1515467, + 10063860960057925900960894489197103, + 66168917845173991972096672824527974, + 53183908241597557284573812277137549, + 69640192145790299690329009864755874, + 48003263610387117627231916521224306, + 49002445145814704036244459302136418, + 52127853237031002786897475766547098, + 81067701652781485466240570252843736, + 13145612862570953840168193731560193]) : ℤ)) + (naturalFromChunks [ + 24062500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 28, shared by equal entries. -/ +def jacobianEntry028 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 30560750268325715259578, + 45059249755923892730152515121737000, + 58021311014309865864504834518098863, + 4409058016588930549734277954327549, + 54632230606525788025255003949808604, + 58201999332763125181834068907814752, + 1845299535612137125670146205250468, + 39494269092926646227582315363058128, + 66208368007310371308944498944717222, + 28663989853683689734397219349462828, + 57376478591750215874528770610641823]) : ℤ)) + (naturalFromChunks [ + 76135253906250000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 10186916756108571753295, + 20813014449914099973949523518285637, + 25879790067798983771189226304697433, + 13287263925990852675053183577173353, + 24175154909157233857386045489373007, + 10054497976011609597655857661546764, + 80552341052976620573582613155341240, + 5533115486344029076499006209232462, + 32191053785896760019321063619776548, + 23396935955731872188083995486212636, + 28700416043264113187657332963276597]) + (naturalFromChunks [ + 25378417968750000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 29, shared by equal entries. -/ +def jacobianEntry029 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 12, + 17536677313372688582338844523890378, + 79629307266808938747954249135320259, + 29929536036929428893091326801540248, + 5076153377694554414435206046990122, + 69885223580943186147772401615118346, + 81045289756633842171903945836617070, + 47740918622126651523556894885533263, + 45403808383740057067969404417441999, + 78172161388494088062659369651403993, + 22700017153996492522371316964046471]) + (naturalFromChunks [ + 108281250000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 109, + 57830115040140844356545970498104034, + 35255386337638599963264261998597310, + 92048546239706144436441072241840838, + 93507421949651690645215691892396796, + 55228651872069128822150400053293755, + 41703520111091817264183781665057916, + 8244818745278033503327149124180610, + 99374404819018363712507144536624941, + 37205706889035835400530436105076482, + 83128163885330397026323364955743809]) + (naturalFromChunks [ + 974531250000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 30, shared by equal entries. -/ +def jacobianEntry030 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 1616957444096510759899354277419, + 74887375716016938866746843920307243, + 51157643195695921477281203192066356, + 65616641824260524729119407276033009, + 19453254735736653206166309707726957, + 25101192785985169104390988325685347, + 38655013556252709961311577586809900, + 18240984014065070799873049505704412, + 76422211541039454430245645876015181, + 27318904695997226642375849205843618, + 93945888129792339562971998889829791]) : ℤ)) + (naturalFromChunks [ + 76135253906250000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 230993905776237202179782526637, + 46380081887227801251185026370458557, + 36299359151163811902965995716516440, + 34142872270834534835273241258812516, + 99228338057946677951716964654906042, + 15793633184532460378322558399258845, + 25333391287807285014026792617205859, + 40553149297417714112305457641343041, + 93069716940229523227333746374619791, + 85092810503043596757341376611646048, + 26199040201178540589353032769908311]) : ℤ)) + (naturalFromChunks [ + 10876464843750000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 31, shared by equal entries. -/ +def jacobianEntry031 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 8, + 30120788396990136387998914655275452, + 84216527272245704045798146768143229, + 35027745272027862155757125533228922, + 61642432409673724743054876274239816, + 94038507625280772820748050010827378, + 63817752940382276188715595408188949, + 47389756914634072351573605912174475, + 36948655523295107845913674274096569, + 3254224057777686364833081765757501, + 57714342195936647760651268335440771]) + (naturalFromChunks [ + 46406250000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 174, + 32536575556579511263473611028570384, + 31885526393607370515262207102588647, + 98195718270920117912362801220538575, + 44503216743153141608273025045859936, + 16042754297911512709005522286306544, + 57673079666003139052533995726604811, + 98075746474846632437956800159867042, + 89745533012742482652374127411581803, + 95033259690364931364684820563021286, + 66329995614031567298658147323581761]) + (naturalFromChunks [ + 974531250000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 32, shared by equal entries. -/ +def jacobianEntry032 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 1994234009759722264901457439969, + 49360039213559102366964122375663351, + 26276931489110799309059606173493625, + 17307770798047303551297700165907731, + 74465689568175033235651048932898327, + 60190081655045440563869917472971320, + 76463266348926871010277778288675026, + 70886987244004625827398580947934584, + 46339734348312336507039774433488912, + 62898915938966790889384172277141695, + 62273561870207660437028001110170209]) + (naturalFromChunks [ + 76135253906250000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 31654509736866231897509356301, + 96398575588059848678301250606225753, + 4628880409120348398733370847936584, + 47437997395792112352641432414198774, + 34711976823280843741667151149709780, + 34210209603989770096373385264530149, + 27939894135903299690825094113084142, + 37773425439440608770757404602060859, + 47282318700833837675881509717267934, + 57091083563816549717105934641946221, + 65395412199869051045627440803343521]) + (naturalFromChunks [ + 1208496093750000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 33, shared by equal entries. -/ +def jacobianEntry033 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 17536119, + 10084661563291164598531904096705187, + 46246089116201486859339585521089185, + 47186683144289407157503065803807234, + 2736998198785441838380689680013748, + 14445096024031011027047707460337333, + 8143972684978169436762250440322623, + 64373987713694619207980776799913826, + 80013137739028021233752253233721137, + 37578161140524796131380045368913689]) + (naturalFromChunks [ + 278437500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 40917612, + 13306087550417405412114869598177685, + 61426539310448489769736824177739239, + 65005504077220973363480503874133275, + 7758904769637556336167078526384687, + 13681138997322924765112313260520347, + 95053470579008545798388028033874490, + 59531717903887874867560469954283919, + 81699651147333165609137637996749039, + 36339657338775475693446560805868059]) + (naturalFromChunks [ + 649687500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 34, shared by equal entries. -/ +def jacobianEntry034 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 16821572, + 18935248922107409779011936861546892, + 71376476958348548561460683376481257, + 85061682616827543129062393687586261, + 19405532908626417149486715056543736, + 30904983944941244570869968909097209, + 84428116516805737364712773753692006, + 7330986321138140492228688272409182, + 66949715050890374381608090773085069, + 24267769112925158564482186935289353]) : ℤ)) + (naturalFromChunks [ + 216562500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 50464715, + 67030536116960140322895629400942777, + 62809145236700557323210904616674083, + 3998159701527047864350336713655997, + 48772477919508938158243888925739049, + 85589032778862507796065820479243490, + 95333264316105385148079429867168206, + 70254532318534439970587147833422747, + 89754962979828876855175727680744792, + 27196692661224524306553439194131941]) : ℤ)) + (naturalFromChunks [ + 649687500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 35, shared by equal entries. -/ +def jacobianEntry035 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 7352760958989911093002129779957971, + 38299626901833229408593441362376647, + 92593236747330642672779646852860252, + 73430341751574594566568257632400528, + 53456098225869269864160115756019539, + 71054459678265101317888910028801934, + 92929446877184370292402003967286189, + 91542092966319163073734525547102562, + 83104794391129222903067344677697336, + 85339746954367425306185809042916111]) + (naturalFromChunks [ + 12031250000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 5, + 95573892122875938165955167205300950, + 45474966287466331105510345585053465, + 20454107543288661900942349570220890, + 16795478239478380724974877073695132, + 34387002344909475926872312131100829, + 94733980912638861602057403153906644, + 20190737994589786780104393410056966, + 26725777363866819408909926349358299, + 72939016476447914490644182542565658, + 16488233725009926776350666430464321]) + (naturalFromChunks [ + 974531250000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 36, shared by equal entries. -/ +def jacobianEntry036 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 50464715, + 67030536116960140322895629400942777, + 62809145236700557323210904616674083, + 3998159701527047864350336713655997, + 48772477919508938158243888925739049, + 85589032778862507796065820479243490, + 95333264316105385148079429867168206, + 70254532318534439970587147833422747, + 89754962979828876855175727680744792, + 27196692661224524306553439194131941]) + (naturalFromChunks [ + 649687500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 16821572, + 18935248922107409779011936861546892, + 71376476958348548561460683376481257, + 85061682616827543129062393687586261, + 19405532908626417149486715056543736, + 30904983944941244570869968909097209, + 84428116516805737364712773753692006, + 7330986321138140492228688272409182, + 66949715050890374381608090773085069, + 24267769112925158564482186935289353]) + (naturalFromChunks [ + 216562500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 37, shared by equal entries. -/ +def jacobianEntry037 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 82018298446083648441095, + 10965710589111349810828174202906852, + 54057918251696895929389124203075439, + 51503111143266982888961939226985620, + 56532227134084956283945894303401769, + 27155206676930610540553187776425173, + 44182607927942638851725840040513037, + 77100986836809465552248365631933610, + 26396926506923914412488108739234273, + 89724086546600335428749301776520308, + 9073434067037848400695748454857241]) : ℤ)) + (naturalFromChunks [ + 10876464843750000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 191376029713746975942689, + 71427720680276115950984118452646937, + 76990984290896808332157074694965771, + 23166720757868465448572539517937869, + 66650687737106865486375290154560759, + 46736331001143431974909521514872549, + 7241292628428576370337512262443261, + 83520945849443779692405052115115290, + 11381496595280236344831737232564080, + 30961872224334936764543012880487464, + 2018216484530971445961951504455909]) + (naturalFromChunks [ + 25378417968750000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 38, shared by equal entries. -/ +def jacobianEntry038 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 43, + 43036025064825739724446855858177309, + 17377584136198853420641235028599370, + 89501802582762793756629937648601420, + 41957346250886858179423278261662359, + 74434390456173978902661864456680827, + 17700294853974925183359977921745825, + 96215418133771769643550042298776660, + 25438591223545544179560895655700338, + 53423854591549230289207107890943880, + 73786294575003308925450222143488107]) : ℤ)) + (naturalFromChunks [ + 324843750000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 130, + 29107820749784137890280387454738648, + 8259215646414634522137312737256813, + 60191491061502203103569543518883330, + 14451579793330521252460742504994390, + 36489859432554132088150258773391840, + 15297323233866240025550377276113097, + 24117980008544563686397198039037574, + 63567756076579199446657768682298758, + 89366910210193362190565397570327059, + 41889353303761449801050532476204991]) : ℤ)) + (naturalFromChunks [ + 974531250000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 39, shared by equal entries. -/ +def jacobianEntry039 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 40917612, + 13306087550417405412114869598177685, + 61426539310448489769736824177739239, + 65005504077220973363480503874133275, + 7758904769637556336167078526384687, + 13681138997322924765112313260520347, + 95053470579008545798388028033874490, + 59531717903887874867560469954283919, + 81699651147333165609137637996749039, + 36339657338775475693446560805868059]) : ℤ)) + (naturalFromChunks [ + 649687500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 17536119, + 10084661563291164598531904096705187, + 46246089116201486859339585521089185, + 47186683144289407157503065803807234, + 2736998198785441838380689680013748, + 14445096024031011027047707460337333, + 8143972684978169436762250440322623, + 64373987713694619207980776799913826, + 80013137739028021233752253233721137, + 37578161140524796131380045368913689]) : ℤ)) + (naturalFromChunks [ + 278437500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 40, shared by equal entries. -/ +def jacobianEntry040 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 191376029714356954554402, + 23695053132912262710199406214725767, + 66427307139850131414137123653076340, + 33959991347605774688110272085705446, + 51884051757771194724224599960175901, + 71880779059571397762173050272077633, + 10880729126112322936891309361298248, + 72928571032892669105059550213046544, + 25480559037944012052870474799985087, + 22845714475780468121837713853728585, + 59363696156421646268290079728000229]) : ℤ)) + (naturalFromChunks [ + 25378417968750000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 82018298452297005939724, + 74867343575117313914636059574760046, + 72573132086062988228579157302169401, + 60312928033574625036509098431768199, + 86446711137163797818119119390626448, + 79949613416832221972615865545749037, + 44605357245011970259260573291765301, + 34130509668188161235121698086735352, + 73286042215300953320329745822260505, + 53652023047698947080917291385304288, + 54425942779084702048269407787623961]) + (naturalFromChunks [ + 10876464843750000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 41, shared by equal entries. -/ +def jacobianEntry041 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 62913700311502602125493655458169539, + 29500598271144577883408071150512484, + 38588748274724302762788183944538169, + 90960694599198179364454091211434112, + 23236725889133969923537385602541213, + 42390933092632254551785633794958687, + 97930992394419849553536416060336039, + 82550767915670116956169079835065789, + 65813602491809827545933067864284466, + 37344540435161992730930961295145671]) : ℤ)) + (naturalFromChunks [ + 4218750000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 83045315832353848792064018417284445, + 43007317033146046945486727064539853, + 59853819844081438900829397436916557, + 31455881781688608387356961202702700, + 36843301032989766817980058155882325, + 4892890807983502209632446042416553, + 25852552828266117983633830033688742, + 50544872829900710946324458660501892, + 37345816084159602973065242351186303, + 64891668628515642011874473787550643]) : ℤ)) + (naturalFromChunks [ + 5568750000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 42, shared by equal entries. -/ +def jacobianEntry042 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 9274178, + 39628007903092105676910274471642625, + 8460682123929382678966274409151638, + 2525267524709556731345482139467976, + 38852543140445848589701338604826101, + 95812158128401783022006918391741233, + 18238086367602360448440440499288897, + 27346283579310163722933960955767787, + 3936496585231591577070586698710788, + 87144021379327657050998090608058631]) : ℤ)) + (naturalFromChunks [ + 92812500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 27822383, + 39292601818031452402622978687728903, + 38970945000507503648122650927477903, + 69476662625930791291279624486197360, + 56124412275420953602991918245391930, + 52899540562556606508030739850561998, + 78047214983164602784752394541057797, + 62909855508282933504913871496950963, + 23810432119305225268788239903867633, + 38567935862017028847005728175824107]) : ℤ)) + (naturalFromChunks [ + 278437500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 43, shared by equal entries. -/ +def jacobianEntry043 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 31977577063, + 64493014863610428794579711755834698, + 6126787268670042666449841663631995, + 24384138840484890806488912784787953, + 50992658956985079916312647524515686, + 97355377530910807256457070938504953, + 34303413771707733090562630520701533, + 13471419750799962662137281315302664, + 99034325567934596434472930778715937, + 47151189077650338686546784172871320, + 73141847581964488288853012252696877, + 76007467476980728364856719735165672, + 84522116324710919696566340292662435, + 72495628465203378061100147351737729, + 25467852101977704648798957730703065, + 54630333100353909405568400695090052, + 56748302483955548620912385059624897, + 34266013882014103432069821931722411]) + (naturalFromChunks [ + 320760000000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 19986212645115, + 23778882643476778456146946607351543, + 43173188821542934522492500154177809, + 87754129015722280107768014539338804, + 95084408166129275918896274614798198, + 27389034044922172893118366449494479, + 47774882350879642754431995975862456, + 43428392856024354125631190738456078, + 70592814072682791156886664203453679, + 50457412439856964435370485944710880, + 13929713045539262589176056857131808, + 80476371182240578165560053023642244, + 17617173661931480200830790142960965, + 636599137259771434818751181840303, + 24285444011045926403160849987993491, + 31512432755204999220816364868239660, + 12943061642567295603821880849534881, + 29322569212096131691590313864126589]) + (naturalFromChunks [ + 2, + 475000000000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 44, shared by equal entries. -/ +def jacobianEntry044 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 10114716257576, + 56413508374272350231687714888574862, + 97655693948583087969196018310566635, + 85834636257667451953823857500193972, + 78415440053177866992849542488690255, + 78738038619906540843919983247546758, + 88507065683221705207687683392888001, + 58738931364878689422778014064700625, + 61631021283312825624980061862150459, + 12507820869076756066914229059071991, + 99169257319113724846023470986627803, + 82826954504778091142371581316279233, + 35842638838713248752786409939193615, + 92192463206003419680446242201086476, + 43415318165703827946900819015603592, + 8151015042163267002949180193293454, + 60482210303372048065448857443359327, + 46769533217684967682513944330393515, + 16001686632148675843294636200782483]) : ℤ)) + (naturalFromChunks [ + 12, + 92124023437500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 1123694810930, + 24822732348723027650303556253854653, + 2041673063789141106471056791484407, + 9330580287717921553199706197573873, + 16481515400947420206215274511965484, + 8959970028143335483504893249895287, + 3488161900912211925053005592308207, + 23781757072930561565286313603438609, + 16336491973918019441434630812682870, + 29836718896886107276218454909750608, + 79067054064968790090703023469462762, + 96579683912943848998341156456796582, + 44049463152100658027684157834369236, + 38069367260558529429092675523967210, + 11729947761038490364995760596262582, + 28344150671241673754956441284643967, + 37949192468712990483505118533892011, + 90345085560248653974654261702043494, + 69659909625794297315921626244531387]) : ℤ)) + (naturalFromChunks [ + 1, + 43569335937500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 45, shared by equal entries. -/ +def jacobianEntry045 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 2091, + 90777255471720937398394745777629880, + 78166682342265933289604573880938523, + 11480811393385331129320572957045471, + 89007220641067008157843714773645641, + 88521651750216504600638858288802763, + 90911516946512321335555612773529250, + 93374111032720125785090276745277869, + 60895366385043969566639293279164567, + 10518458321538694046569451794934025, + 80847834589216329111283875389905451, + 45373689546482777382117193736636776, + 76655216957945450951939163707856090, + 71255742777756629091942518363673072, + 94613679419212902916905662817994740, + 12440668941133310476132819508103563, + 98290451238975048191476378822482342, + 69546300316038622663375184535759494, + 16855922675677089846079277814551568, + 6290055276994395936665074066384769]) : ℤ)) + (naturalFromChunks [ + 3, + 87637207031250000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 645, + 41931621879594859728836761549152771, + 57857630478148993208399521258353240, + 24974507765034502042152131794922811, + 14683800671394121539682019830780558, + 62685994636562229261564017585937314, + 87582118311124833698222674173018182, + 23995305753644246962344688274871229, + 89945999903416874656232019509858811, + 5054282779120229240307810526011454, + 93173234925913135070337406167366833, + 13780593649663500176963028506087291, + 80857419284754149643901258806550864, + 63976541179667701706938880489585792, + 91025690555698814145647202980509945, + 30479890887379797298058278519655533, + 70934496011914864976070883880054546, + 95722991192613003741194627416450948, + 32366924374968737121919280776211076, + 66132481574335201354444975311205077]) + (naturalFromChunks [ + 1, + 29212402343750000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 46, shared by equal entries. -/ +def jacobianEntry046 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 58985167275757503076276755659046857, + 71123181475386544333799129533751529, + 243715573358998910061773181794391, + 73420184357698372063295604316131492, + 68462567024524818571792791737689042, + 6477477324196413846582613631659908, + 78751454466354401074771661512307366, + 35198904767889893862668328862756068, + 96552807071098214494083183438091054, + 23485418628515642011874473787550643]) + (naturalFromChunks [ + 5568750000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 1, + 34058945124061560426716003005897462, + 84952279676144560450474964148804356, + 28503085313873976697890923503425077, + 69329361670215117402207170533692067, + 60145926986326804712405449452110559, + 32833207753458591867212007934301405, + 27365008025147038887392469398543564, + 19350123197441227202753315280369313, + 72223349477062861908523743920381109, + 8127371305485978192792883885437013]) + (naturalFromChunks [ + 12656250000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 47, shared by equal entries. -/ +def jacobianEntry047 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 40388, + 15780304261501021507681257122839594, + 58410858435645254869378236303040131, + 61978945724661011746312555278703146, + 28899189191944818645637495334759181, + 27962745849574308028529813434567295, + 22571121116919363213350801237568330, + 60283174409494608053608437502590864, + 86600895734459452651972972822434061, + 84848580957852482549889101043549041]) + (naturalFromChunks [ + 10312500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 1090632, + 5659636967863010604568293350439534, + 58428238055044706927599558776990465, + 23781803431995170938158942718107700, + 84080332136460093039771740728331505, + 34598883984711842144516491544529454, + 68808892097483108729150825208058316, + 38997552012719541411474119385775894, + 31372171644725255166487518259636639, + 7525814137982971152994271824175893]) + (naturalFromChunks [ + 278437500000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 48, shared by equal entries. -/ +def jacobianEntry048 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 19986212645115, + 23778882643476778456146946607351543, + 43173188821542934522492500154177809, + 87754129015722280107768014539338804, + 95084408166129275918896274614798198, + 27389034044922172893118366449494479, + 47774882350879642754431995975862456, + 43428392856024354125631190738456078, + 70592814072682791156886664203453679, + 50457412439856964435370485944710880, + 13929713045539262589176056857131808, + 80476371182240578165560053023642244, + 17617173661931480200830790142960965, + 636599137259771434818751181840303, + 24285444011045926403160849987993491, + 31512432755204999220816364868239660, + 12943061642567295603821880849534881, + 29322569212096131691590313864126589]) : ℤ)) + (naturalFromChunks [ + 2, + 475000000000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 31977577063, + 64493014863610428794579711755834698, + 6126787268670042666449841663631995, + 24384138840484890806488912784787953, + 50992658956985079916312647524515686, + 97355377530910807256457070938504953, + 34303413771707733090562630520701533, + 13471419750799962662137281315302664, + 99034325567934596434472930778715937, + 47151189077650338686546784172871320, + 73141847581964488288853012252696877, + 76007467476980728364856719735165672, + 84522116324710919696566340292662435, + 72495628465203378061100147351737729, + 25467852101977704648798957730703065, + 54630333100353909405568400695090052, + 56748302483955548620912385059624897, + 34266013882014103432069821931722411]) : ℤ)) + (naturalFromChunks [ + 320760000000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 49, shared by equal entries. -/ +def jacobianEntry049 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 894, + 66271478398461557537071194378393090, + 55183902304062782329489987965879027, + 40943337127025536872573596477075292, + 45090309561234043998649294396692798, + 60870883304058602541285360539104900, + 79457415417858045939557208987736973, + 12578139961036170601399857722161467, + 90030554509993207855720137299089487, + 83536433708476808617532043034810799, + 48972077614064918920958208338324105, + 40784569972972586593916739341191923, + 6346393655368575067585084952842386, + 30109659646748424951147051310721408, + 4052876343767096799421109351046534, + 82933220023334525129751523855071861, + 60625709555571525179656963963752562, + 12374512377157072857240839248821428, + 86736708593857040933444457591221532, + 32305018425664798645555024688794923]) : ℤ)) + (naturalFromChunks [ + 1, + 29212402343750000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 1344, + 17757686254046876488035583261556641, + 78650055084389974652045253544446324, + 87444266832178408986033878898091884, + 57840378716251994984550282875733531, + 90171622725133182081026108811497017, + 22601008722988299108099406265272679, + 4894553128059246184381855578277596, + 78304617687127006541222489906684996, + 88830936420610317676278814283869126, + 49801109652730054647084748232974216, + 19381577242482056974018785915512477, + 9525604935436321019038552769825964, + 16071076048406921003320368502013828, + 33458946401814437708844894158624628, + 39254790958666032858391137273938453, + 54432553271902024830401459040558056, + 80626609933560802713034251587777435, + 16686023144012178411503747369520201, + 7772444723005604063334925933615231]) + (naturalFromChunks [ + 3, + 87637207031250000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 50, shared by equal entries. -/ +def jacobianEntry050 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 44887605324681044507070090591848950, + 25660142819172544180585572756384845, + 25593444074477790761418422174551393, + 4722060403185156645108128121946079, + 53562959527980612958272043124024069, + 28975542617155913473029445696953905, + 75869213322439990753049458491902400, + 5547091086421123144824272319255207, + 72803307338775475693446560805868059]) : ℤ)) + (naturalFromChunks [ + 324843750000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 44887605324681044507070090591848950, + 25660142819172544180585572756384845, + 25593444074477790761418422174551393, + 4722060403185156645108128121946079, + 53562959527980612958272043124024069, + 28975542617155913473029445696953905, + 75869213322439990753049458491902400, + 5547091086421123144824272319255207, + 72803307338775475693446560805868059]) + (naturalFromChunks [ + 324843750000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 51, shared by equal entries. -/ +def jacobianEntry051 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 12958624537686, + 3411955604200248628537498878931409, + 49964257633083246338658489719080626, + 1059736373559872021203039742230195, + 23450331873295340539312674961708827, + 6166062580590247393436451534768442, + 17841265684237176674649739904330005, + 45374322973612922328625375437434767, + 36674052302390468485597935658095276, + 10463225556386694007300163247335867, + 14646687719797409692324352968355344, + 85602818651703206338486341650497171, + 98729543000784849015390340426058108, + 68171485621218593874174140251422992, + 4958239564296464343197683438164893, + 52788849768402637056113713231700226, + 45073579579069554108872126778739708, + 99045958204655518403989095572552812, + 45924517960050625410242642699422681]) : ℤ)) + (naturalFromChunks [ + 3341499, + 7327746048000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 12958624537686, + 3411951140534475048444696848148017, + 70323934752057596763868527237977638, + 12772172004940854896605310490281237, + 12236995020814456370184196890045501, + 54114802261359873677414058685386936, + 61283306753299767786210496864503533, + 76173485512064918020142368216058323, + 58668505991971025064779049450337336, + 91641774237735595741183649664361991, + 43250608161528561287679690742416900, + 43777998244749443275337802772889978, + 54873247273682039140179200466450697, + 47582099135361625736293353458840079, + 27300142564825942900769604224399165, + 34672325042143848327587892644356586, + 97657485367681110297717955804506185, + 60211775587181060305510749575349840, + 92057034284441389954242642699422681]) : ℤ)) + (naturalFromChunks [ + 3341499, + 7327746048000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 52, shared by equal entries. -/ +def jacobianEntry052 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 199, + 42337922293587149037102343768136308, + 25921537238296178274377734707614062, + 30854886327910292822772796631537074, + 96015254260274561579626703197638098, + 72577453252666732232931549106824202, + 10760903073611646435874334103299175, + 20879823725305028196056192376499755, + 67097728956153505088339683389872668, + 38093102944346985303629873571427245, + 38173056714334370883169614740284191]) + (naturalFromChunks [ + 380676269531250000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 199, + 42343663574472357813613206851607195, + 74466926423157249498029889935253632, + 6226363067310336734062800117422978, + 50653761683863254200122848695935101, + 9529087591502531252943714659385561, + 7957790597042837565500288598614318, + 5467066308168839135364868911101570, + 74421796319432774584780565647697841, + 14675386325469931234150978464302653, + 66076982272908831164147605559795169]) + (naturalFromChunks [ + 380676269531250000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 53, shared by equal entries. -/ +def jacobianEntry053 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 1, + 34662815854107032023310640058798372, + 30278497058967530646916686942796710, + 32354865110818534993960025497874593, + 52058863458707288069918203909528912, + 19963872411875848553001493779599856, + 14076301471089225668914165509682553, + 13988619857900645073407986131727485, + 92503494634401674095573570677099578, + 22985922016326427080339682417604177]) : ℤ)) + (naturalFromChunks [ + 974531250000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 1, + 34662815854107032023310640058798372, + 30278497058967530646916686942796710, + 32354865110818534993960025497874593, + 52058863458707288069918203909528912, + 19963872411875848553001493779599856, + 14076301471089225668914165509682553, + 13988619857900645073407986131727485, + 92503494634401674095573570677099578, + 22985922016326427080339682417604177]) + (naturalFromChunks [ + 974531250000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 54, shared by equal entries. -/ +def jacobianEntry054 : IntervalRat := + ⟨(q + (naturalFromChunks [ + 121146792163966, + 31566016439952163144557534488385169, + 5217032132931414440907470672743303, + 74020617385281094664118685498184083, + 74229180346417659277865752141558727, + 3093295849137281312998248418142639, + 98452353292999508126048579050066448, + 17390001012980894263766730296203347, + 95634577277379975862219676731727365, + 25069763558549783859622607506205925, + 460822967832849253390195359638086, + 93927907772399315707615747051698611, + 67060108892460693398430185306048203, + 25677463268458846464424961232396137, + 55559379118779715929880677885112215, + 8331185575075708368158302597011679, + 67780925392727856134668392839825962, + 49539272936197723877003466467330197, + 86030491458401618818242642699422681]) + (naturalFromChunks [ + 3341499, + 7327746048000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (naturalFromChunks [ + 121146792163966, + 31566020903606026329779437565677673, + 76852309176823775608249235125454854, + 91533516022034347759759452382249680, + 6302649633124527938423627484572530, + 14575051052128363230557765073290711, + 28961297958582541548365605332025690, + 84373133080906120133344034671380725, + 44073991579243734065714874538488525, + 82055748030000834243540185726150196, + 16719844692655035596477369282087977, + 79084545730764848166091054799398721, + 66738387738006625412848379545388946, + 876281196732513526586105195911404, + 43530939696670331083413526607388632, + 52575071804007568732157139880458185, + 57448568521393973246195227052776783, + 27582531650396302574779440591735431, + 78361975134010854274242642699422681]) + (naturalFromChunks [ + 3341499, + 7327746048000000000000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Exact cached Jacobian interval number 55, shared by equal entries. -/ +def jacobianEntry055 : IntervalRat := + ⟨(q + (-((naturalFromChunks [ + 161, + 69576770785652954124268059928092552, + 41125461964680753035908064823083298, + 3398530467978541744421246575512057, + 5887481091326438268740209211073076, + 51569255847826610076224083379157727, + 6008219627226671767979426206742030, + 28007405389022218092447449490845533, + 72256749128638655842408278496656361, + 60078660246637482188947712873293451, + 56898806281413363132602792026408929]) : ℤ)) + (naturalFromChunks [ + 380676269531250000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), + (q + (-((naturalFromChunks [ + 161, + 69571029504767345282873690874819234, + 29127143311790006180748587793323213, + 1104883701748548388871833193850885, + 18596991957433403390259605204944387, + 50512313948589461443873177352519423, + 69153055437698746771232688006830315, + 40954776535535326676927122783315447, + 27950902226399756515328192552327982, + 41289491566442480259836576851168953, + 89538880722838902851624801206897951]) : ℤ)) + (naturalFromChunks [ + 380676269531250000000000000000, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0])), by decide +kernel⟩ + +/-- Cached interval row 0 of the full Jacobian. -/ +def jacobianRow00 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry000 + | 2 => jacobianEntry000 + | 3 => jacobianEntry000 + | 4 => jacobianEntry000 + | 5 => jacobianEntry000 + | 6 => jacobianEntry000 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry001 + | 11 => jacobianEntry000 + | 12 => jacobianEntry000 + | 13 => jacobianEntry000 + | 14 => jacobianEntry000 + | 15 => jacobianEntry000 + | 16 => jacobianEntry000 + | 17 => jacobianEntry000 + | 18 => jacobianEntry002 + | 19 => jacobianEntry000 + | 20 => jacobianEntry000 + | _ => jacobianEntry000 + +/-- Cached interval row 1 of the full Jacobian. -/ +def jacobianRow01 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry000 + | 2 => jacobianEntry000 + | 3 => jacobianEntry000 + | 4 => jacobianEntry000 + | 5 => jacobianEntry000 + | 6 => jacobianEntry000 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry000 + | 11 => jacobianEntry002 + | 12 => jacobianEntry000 + | 13 => jacobianEntry000 + | 14 => jacobianEntry000 + | 15 => jacobianEntry000 + | 16 => jacobianEntry000 + | 17 => jacobianEntry000 + | 18 => jacobianEntry000 + | 19 => jacobianEntry002 + | 20 => jacobianEntry000 + | _ => jacobianEntry000 + +/-- Cached interval row 2 of the full Jacobian. -/ +def jacobianRow02 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry000 + | 2 => jacobianEntry000 + | 3 => jacobianEntry000 + | 4 => jacobianEntry000 + | 5 => jacobianEntry000 + | 6 => jacobianEntry000 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry000 + | 11 => jacobianEntry000 + | 12 => jacobianEntry002 + | 13 => jacobianEntry000 + | 14 => jacobianEntry000 + | 15 => jacobianEntry000 + | 16 => jacobianEntry002 + | 17 => jacobianEntry000 + | 18 => jacobianEntry000 + | 19 => jacobianEntry000 + | 20 => jacobianEntry000 + | _ => jacobianEntry000 + +/-- Cached interval row 3 of the full Jacobian. -/ +def jacobianRow03 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry000 + | 2 => jacobianEntry000 + | 3 => jacobianEntry000 + | 4 => jacobianEntry000 + | 5 => jacobianEntry000 + | 6 => jacobianEntry000 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry000 + | 11 => jacobianEntry000 + | 12 => jacobianEntry003 + | 13 => jacobianEntry001 + | 14 => jacobianEntry000 + | 15 => jacobianEntry000 + | 16 => jacobianEntry000 + | 17 => jacobianEntry002 + | 18 => jacobianEntry000 + | 19 => jacobianEntry000 + | 20 => jacobianEntry000 + | _ => jacobianEntry000 + +/-- Cached interval row 4 of the full Jacobian. -/ +def jacobianRow04 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry000 + | 2 => jacobianEntry000 + | 3 => jacobianEntry000 + | 4 => jacobianEntry000 + | 5 => jacobianEntry000 + | 6 => jacobianEntry000 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry000 + | 11 => jacobianEntry000 + | 12 => jacobianEntry000 + | 13 => jacobianEntry000 + | 14 => jacobianEntry001 + | 15 => jacobianEntry002 + | 16 => jacobianEntry000 + | 17 => jacobianEntry000 + | 18 => jacobianEntry000 + | 19 => jacobianEntry000 + | 20 => jacobianEntry000 + | _ => jacobianEntry000 + +/-- Cached interval row 5 of the full Jacobian. -/ +def jacobianRow05 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry002 + | 1 => jacobianEntry000 + | 2 => jacobianEntry000 + | 3 => jacobianEntry000 + | 4 => jacobianEntry000 + | 5 => jacobianEntry000 + | 6 => jacobianEntry000 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry002 + | 11 => jacobianEntry000 + | 12 => jacobianEntry000 + | 13 => jacobianEntry000 + | 14 => jacobianEntry000 + | 15 => jacobianEntry000 + | 16 => jacobianEntry000 + | 17 => jacobianEntry000 + | 18 => jacobianEntry000 + | 19 => jacobianEntry000 + | 20 => jacobianEntry000 + | _ => jacobianEntry000 + +/-- Cached interval row 6 of the full Jacobian. -/ +def jacobianRow06 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry002 + | 2 => jacobianEntry000 + | 3 => jacobianEntry000 + | 4 => jacobianEntry000 + | 5 => jacobianEntry000 + | 6 => jacobianEntry000 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry000 + | 11 => jacobianEntry000 + | 12 => jacobianEntry000 + | 13 => jacobianEntry000 + | 14 => jacobianEntry000 + | 15 => jacobianEntry000 + | 16 => jacobianEntry000 + | 17 => jacobianEntry000 + | 18 => jacobianEntry000 + | 19 => jacobianEntry000 + | 20 => jacobianEntry000 + | _ => jacobianEntry000 + +/-- Cached interval row 7 of the full Jacobian. -/ +def jacobianRow07 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry000 + | 2 => jacobianEntry000 + | 3 => jacobianEntry000 + | 4 => jacobianEntry000 + | 5 => jacobianEntry000 + | 6 => jacobianEntry000 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry000 + | 11 => jacobianEntry002 + | 12 => jacobianEntry000 + | 13 => jacobianEntry000 + | 14 => jacobianEntry000 + | 15 => jacobianEntry000 + | 16 => jacobianEntry000 + | 17 => jacobianEntry000 + | 18 => jacobianEntry000 + | 19 => jacobianEntry000 + | 20 => jacobianEntry000 + | _ => jacobianEntry000 + +/-- Cached interval row 8 of the full Jacobian. -/ +def jacobianRow08 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry002 + | 1 => jacobianEntry000 + | 2 => jacobianEntry001 + | 3 => jacobianEntry000 + | 4 => jacobianEntry000 + | 5 => jacobianEntry000 + | 6 => jacobianEntry000 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry004 + | 11 => jacobianEntry005 + | 12 => jacobianEntry006 + | 13 => jacobianEntry007 + | 14 => jacobianEntry000 + | 15 => jacobianEntry000 + | 16 => jacobianEntry000 + | 17 => jacobianEntry000 + | 18 => jacobianEntry000 + | 19 => jacobianEntry000 + | 20 => jacobianEntry008 + | _ => jacobianEntry000 + +/-- Cached interval row 9 of the full Jacobian. -/ +def jacobianRow09 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry002 + | 2 => jacobianEntry000 + | 3 => jacobianEntry001 + | 4 => jacobianEntry000 + | 5 => jacobianEntry000 + | 6 => jacobianEntry000 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry005 + | 11 => jacobianEntry009 + | 12 => jacobianEntry010 + | 13 => jacobianEntry011 + | 14 => jacobianEntry000 + | 15 => jacobianEntry000 + | 16 => jacobianEntry000 + | 17 => jacobianEntry000 + | 18 => jacobianEntry000 + | 19 => jacobianEntry000 + | 20 => jacobianEntry012 + | _ => jacobianEntry000 + +/-- Cached interval row 10 of the full Jacobian. -/ +def jacobianRow10 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry000 + | 2 => jacobianEntry000 + | 3 => jacobianEntry000 + | 4 => jacobianEntry000 + | 5 => jacobianEntry000 + | 6 => jacobianEntry000 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry013 + | 11 => jacobianEntry014 + | 12 => jacobianEntry015 + | 13 => jacobianEntry016 + | 14 => jacobianEntry000 + | 15 => jacobianEntry000 + | 16 => jacobianEntry000 + | 17 => jacobianEntry000 + | 18 => jacobianEntry000 + | 19 => jacobianEntry000 + | 20 => jacobianEntry017 + | _ => jacobianEntry000 + +/-- Cached interval row 11 of the full Jacobian. -/ +def jacobianRow11 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry000 + | 2 => jacobianEntry000 + | 3 => jacobianEntry000 + | 4 => jacobianEntry000 + | 5 => jacobianEntry000 + | 6 => jacobianEntry000 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry014 + | 11 => jacobianEntry018 + | 12 => jacobianEntry019 + | 13 => jacobianEntry007 + | 14 => jacobianEntry000 + | 15 => jacobianEntry000 + | 16 => jacobianEntry000 + | 17 => jacobianEntry000 + | 18 => jacobianEntry000 + | 19 => jacobianEntry000 + | 20 => jacobianEntry020 + | _ => jacobianEntry000 + +/-- Cached interval row 12 of the full Jacobian. -/ +def jacobianRow12 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry000 + | 2 => jacobianEntry002 + | 3 => jacobianEntry000 + | 4 => jacobianEntry001 + | 5 => jacobianEntry000 + | 6 => jacobianEntry000 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry000 + | 11 => jacobianEntry000 + | 12 => jacobianEntry021 + | 13 => jacobianEntry022 + | 14 => jacobianEntry023 + | 15 => jacobianEntry024 + | 16 => jacobianEntry000 + | 17 => jacobianEntry000 + | 18 => jacobianEntry000 + | 19 => jacobianEntry000 + | 20 => jacobianEntry000 + | _ => jacobianEntry025 + +/-- Cached interval row 13 of the full Jacobian. -/ +def jacobianRow13 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry000 + | 2 => jacobianEntry000 + | 3 => jacobianEntry002 + | 4 => jacobianEntry000 + | 5 => jacobianEntry001 + | 6 => jacobianEntry000 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry000 + | 11 => jacobianEntry000 + | 12 => jacobianEntry026 + | 13 => jacobianEntry024 + | 14 => jacobianEntry027 + | 15 => jacobianEntry023 + | 16 => jacobianEntry000 + | 17 => jacobianEntry000 + | 18 => jacobianEntry000 + | 19 => jacobianEntry000 + | 20 => jacobianEntry000 + | _ => jacobianEntry028 + +/-- Cached interval row 14 of the full Jacobian. -/ +def jacobianRow14 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry000 + | 2 => jacobianEntry000 + | 3 => jacobianEntry000 + | 4 => jacobianEntry000 + | 5 => jacobianEntry000 + | 6 => jacobianEntry000 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry000 + | 11 => jacobianEntry000 + | 12 => jacobianEntry029 + | 13 => jacobianEntry027 + | 14 => jacobianEntry024 + | 15 => jacobianEntry022 + | 16 => jacobianEntry000 + | 17 => jacobianEntry000 + | 18 => jacobianEntry000 + | 19 => jacobianEntry000 + | 20 => jacobianEntry000 + | _ => jacobianEntry030 + +/-- Cached interval row 15 of the full Jacobian. -/ +def jacobianRow15 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry000 + | 2 => jacobianEntry000 + | 3 => jacobianEntry000 + | 4 => jacobianEntry000 + | 5 => jacobianEntry000 + | 6 => jacobianEntry000 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry000 + | 11 => jacobianEntry000 + | 12 => jacobianEntry031 + | 13 => jacobianEntry022 + | 14 => jacobianEntry023 + | 15 => jacobianEntry024 + | 16 => jacobianEntry000 + | 17 => jacobianEntry000 + | 18 => jacobianEntry000 + | 19 => jacobianEntry000 + | 20 => jacobianEntry000 + | _ => jacobianEntry032 + +/-- Cached interval row 16 of the full Jacobian. -/ +def jacobianRow16 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry000 + | 2 => jacobianEntry000 + | 3 => jacobianEntry000 + | 4 => jacobianEntry002 + | 5 => jacobianEntry000 + | 6 => jacobianEntry001 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry000 + | 11 => jacobianEntry000 + | 12 => jacobianEntry000 + | 13 => jacobianEntry000 + | 14 => jacobianEntry033 + | 15 => jacobianEntry034 + | 16 => jacobianEntry035 + | 17 => jacobianEntry036 + | 18 => jacobianEntry000 + | 19 => jacobianEntry000 + | 20 => jacobianEntry000 + | _ => jacobianEntry037 + +/-- Cached interval row 17 of the full Jacobian. -/ +def jacobianRow17 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry000 + | 2 => jacobianEntry000 + | 3 => jacobianEntry000 + | 4 => jacobianEntry000 + | 5 => jacobianEntry002 + | 6 => jacobianEntry000 + | 7 => jacobianEntry001 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry000 + | 11 => jacobianEntry000 + | 12 => jacobianEntry000 + | 13 => jacobianEntry000 + | 14 => jacobianEntry036 + | 15 => jacobianEntry033 + | 16 => jacobianEntry038 + | 17 => jacobianEntry039 + | 18 => jacobianEntry000 + | 19 => jacobianEntry000 + | 20 => jacobianEntry000 + | _ => jacobianEntry040 + +/-- Cached interval row 18 of the full Jacobian. -/ +def jacobianRow18 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry000 + | 2 => jacobianEntry000 + | 3 => jacobianEntry000 + | 4 => jacobianEntry000 + | 5 => jacobianEntry000 + | 6 => jacobianEntry002 + | 7 => jacobianEntry000 + | 8 => jacobianEntry001 + | 9 => jacobianEntry000 + | 10 => jacobianEntry000 + | 11 => jacobianEntry000 + | 12 => jacobianEntry000 + | 13 => jacobianEntry000 + | 14 => jacobianEntry000 + | 15 => jacobianEntry000 + | 16 => jacobianEntry041 + | 17 => jacobianEntry042 + | 18 => jacobianEntry043 + | 19 => jacobianEntry044 + | 20 => jacobianEntry045 + | _ => jacobianEntry000 + +/-- Cached interval row 19 of the full Jacobian. -/ +def jacobianRow19 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry000 + | 2 => jacobianEntry000 + | 3 => jacobianEntry000 + | 4 => jacobianEntry000 + | 5 => jacobianEntry000 + | 6 => jacobianEntry000 + | 7 => jacobianEntry002 + | 8 => jacobianEntry000 + | 9 => jacobianEntry001 + | 10 => jacobianEntry000 + | 11 => jacobianEntry000 + | 12 => jacobianEntry000 + | 13 => jacobianEntry000 + | 14 => jacobianEntry000 + | 15 => jacobianEntry000 + | 16 => jacobianEntry046 + | 17 => jacobianEntry047 + | 18 => jacobianEntry044 + | 19 => jacobianEntry048 + | 20 => jacobianEntry049 + | _ => jacobianEntry000 + +/-- Cached interval row 20 of the full Jacobian. -/ +def jacobianRow20 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry002 + | 1 => jacobianEntry000 + | 2 => jacobianEntry000 + | 3 => jacobianEntry000 + | 4 => jacobianEntry001 + | 5 => jacobianEntry000 + | 6 => jacobianEntry000 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry004 + | 11 => jacobianEntry005 + | 12 => jacobianEntry000 + | 13 => jacobianEntry000 + | 14 => jacobianEntry039 + | 15 => jacobianEntry050 + | 16 => jacobianEntry000 + | 17 => jacobianEntry000 + | 18 => jacobianEntry000 + | 19 => jacobianEntry000 + | 20 => jacobianEntry051 + | _ => jacobianEntry052 + +/-- Cached interval row 21 of the full Jacobian. -/ +def jacobianRow21 (j : Fin 22) : IntervalRat := + match j.val with + | 0 => jacobianEntry000 + | 1 => jacobianEntry002 + | 2 => jacobianEntry000 + | 3 => jacobianEntry000 + | 4 => jacobianEntry000 + | 5 => jacobianEntry001 + | 6 => jacobianEntry000 + | 7 => jacobianEntry000 + | 8 => jacobianEntry000 + | 9 => jacobianEntry000 + | 10 => jacobianEntry005 + | 11 => jacobianEntry009 + | 12 => jacobianEntry000 + | 13 => jacobianEntry000 + | 14 => jacobianEntry034 + | 15 => jacobianEntry053 + | 16 => jacobianEntry000 + | 17 => jacobianEntry000 + | 18 => jacobianEntry000 + | 19 => jacobianEntry000 + | 20 => jacobianEntry054 + | _ => jacobianEntry055 + +/-- Select an exact cached interval from the full interval Jacobian. -/ +def jacobianCache (i j : Fin 22) : IntervalRat := + match i.val with + | 0 => jacobianRow00 j + | 1 => jacobianRow01 j + | 2 => jacobianRow02 j + | 3 => jacobianRow03 j + | 4 => jacobianRow04 j + | 5 => jacobianRow05 j + | 6 => jacobianRow06 j + | 7 => jacobianRow07 j + | 8 => jacobianRow08 j + | 9 => jacobianRow09 j + | 10 => jacobianRow10 j + | 11 => jacobianRow11 j + | 12 => jacobianRow12 j + | 13 => jacobianRow13 j + | 14 => jacobianRow14 j + | 15 => jacobianRow15 j + | 16 => jacobianRow16 j + | 17 => jacobianRow17 j + | 18 => jacobianRow18 j + | 19 => jacobianRow19 j + | 20 => jacobianRow20 j + | _ => jacobianRow21 j + +theorem jacobianRow00_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (0 : Fin 22) j = + jacobianCache (0 : Fin 22) j := by decide +kernel + +theorem jacobianRow01_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (1 : Fin 22) j = + jacobianCache (1 : Fin 22) j := by decide +kernel + +theorem jacobianRow02_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (2 : Fin 22) j = + jacobianCache (2 : Fin 22) j := by decide +kernel + +theorem jacobianRow03_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (3 : Fin 22) j = + jacobianCache (3 : Fin 22) j := by decide +kernel + +theorem jacobianRow04_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (4 : Fin 22) j = + jacobianCache (4 : Fin 22) j := by decide +kernel + +theorem jacobianRow05_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (5 : Fin 22) j = + jacobianCache (5 : Fin 22) j := by decide +kernel + +theorem jacobianRow06_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (6 : Fin 22) j = + jacobianCache (6 : Fin 22) j := by decide +kernel + +theorem jacobianRow07_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (7 : Fin 22) j = + jacobianCache (7 : Fin 22) j := by decide +kernel + +theorem jacobianRow08_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (8 : Fin 22) j = + jacobianCache (8 : Fin 22) j := by decide +kernel + +theorem jacobianRow09_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (9 : Fin 22) j = + jacobianCache (9 : Fin 22) j := by decide +kernel + +theorem jacobianRow10_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (10 : Fin 22) j = + jacobianCache (10 : Fin 22) j := by decide +kernel + +theorem jacobianRow11_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (11 : Fin 22) j = + jacobianCache (11 : Fin 22) j := by decide +kernel + +theorem jacobianRow12_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (12 : Fin 22) j = + jacobianCache (12 : Fin 22) j := by decide +kernel + +theorem jacobianRow13_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (13 : Fin 22) j = + jacobianCache (13 : Fin 22) j := by decide +kernel + +theorem jacobianRow14_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (14 : Fin 22) j = + jacobianCache (14 : Fin 22) j := by decide +kernel + +theorem jacobianRow15_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (15 : Fin 22) j = + jacobianCache (15 : Fin 22) j := by decide +kernel + +theorem jacobianRow16_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (16 : Fin 22) j = + jacobianCache (16 : Fin 22) j := by decide +kernel + +theorem jacobianRow17_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (17 : Fin 22) j = + jacobianCache (17 : Fin 22) j := by decide +kernel + +theorem jacobianRow18_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (18 : Fin 22) j = + jacobianCache (18 : Fin 22) j := by decide +kernel + +theorem jacobianRow19_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (19 : Fin 22) j = + jacobianCache (19 : Fin 22) j := by decide +kernel + +theorem jacobianRow20_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (20 : Fin 22) j = + jacobianCache (20 : Fin 22) j := by decide +kernel + +theorem jacobianRow21_eq : ∀ j : Fin 22, + intervalJacobian fullExpr (unitBox (n := 22)) cfg (21 : Fin 22) j = + jacobianCache (21 : Fin 22) j := by decide +kernel + +theorem jacobianCache_eq : + intervalJacobian fullExpr (unitBox (n := 22)) cfg = jacobianCache := by + funext i j + fin_cases i + · exact jacobianRow00_eq j + · exact jacobianRow01_eq j + · exact jacobianRow02_eq j + · exact jacobianRow03_eq j + · exact jacobianRow04_eq j + · exact jacobianRow05_eq j + · exact jacobianRow06_eq j + · exact jacobianRow07_eq j + · exact jacobianRow08_eq j + · exact jacobianRow09_eq j + · exact jacobianRow10_eq j + · exact jacobianRow11_eq j + · exact jacobianRow12_eq j + · exact jacobianRow13_eq j + · exact jacobianRow14_eq j + · exact jacobianRow15_eq j + · exact jacobianRow16_eq j + · exact jacobianRow17_eq j + · exact jacobianRow18_eq j + · exact jacobianRow19_eq j + · exact jacobianRow20_eq j + · exact jacobianRow21_eq j + +end GerverSofa.PartALeanCert + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Lean Cert Gerver Numerics Reduced +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem reduced_row_0_lt : + intervalMatrixRowBound reducedPJ (0 : Fin 4) < qTarget := by + decide +kernel +theorem reduced_row_1_lt : + intervalMatrixRowBound reducedPJ (1 : Fin 4) < qTarget := by + decide +kernel +theorem reduced_row_2_lt : + intervalMatrixRowBound reducedPJ (2 : Fin 4) < qTarget := by + decide +kernel +theorem reduced_row_3_lt : + intervalMatrixRowBound reducedPJ (3 : Fin 4) < qTarget := by + decide +kernel + +theorem reduced_bound_lt : intervalMatrixBound reducedPJ < qTarget := by + apply matrixBound_lt_of_rows reducedPJ qTarget qTarget_pos + intro i + fin_cases i + · exact reduced_row_0_lt + · exact reduced_row_1_lt + · exact reduced_row_2_lt + · exact reduced_row_3_lt + +theorem reduced_bound_le : intervalMatrixBound reducedPJ ≤ qTarget := + reduced_bound_lt.le +theorem reduced_image_0_inside : + intervalStrictInside (reducedImageQ (0 : Fin 4)) + (unitBox (n := 4) (0 : Fin 4)) = true := by + decide +kernel +theorem reduced_image_1_inside : + intervalStrictInside (reducedImageQ (1 : Fin 4)) + (unitBox (n := 4) (1 : Fin 4)) = true := by + decide +kernel +theorem reduced_image_2_inside : + intervalStrictInside (reducedImageQ (2 : Fin 4)) + (unitBox (n := 4) (2 : Fin 4)) = true := by + decide +kernel +theorem reduced_image_3_inside : + intervalStrictInside (reducedImageQ (3 : Fin 4)) + (unitBox (n := 4) (3 : Fin 4)) = true := by + decide +kernel + +theorem reduced_images_inside : + ∀ i : Fin 4, + intervalStrictInside (reducedImageQ i) (unitBox (n := 4) i) = true := by + intro i + fin_cases i + · exact reduced_image_0_inside + · exact reduced_image_1_inside + · exact reduced_image_2_inside + · exact reduced_image_3_inside + +theorem reduced_unique_scaled : + ∃! u, FinBoxMem u (unitBox (n := 4)) ∧ SystemZero reducedExpr u := by + exact uniqueSystemZero_of_certified_contraction + reducedExpr reducedExpr_supported (unitBox (n := 4)) (zeroCenter (n := 4)) + reduced_center_mem reducedY cfg qTarget qTarget_nonneg qTarget_lt_one + (by simpa [reducedPJ] using reduced_bound_le) + reduced_images_inside + +end PartALeanCert +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.LeanCertNumericsRows.Full00`. +* `KernelOnly.LeanCertNumericsRows.FullPoint00`. +* `KernelOnly.LeanCertNumericsRows.FullImage00`. +* `KernelOnly.LeanCertNumericsRows.Full01`. +* `KernelOnly.LeanCertNumericsRows.FullPoint01`. +* `KernelOnly.LeanCertNumericsRows.FullImage01`. +* `KernelOnly.LeanCertNumericsRows.Full02`. +* `KernelOnly.LeanCertNumericsRows.FullPoint02`. +* `KernelOnly.LeanCertNumericsRows.FullImage02`. +* `KernelOnly.LeanCertNumericsRows.Full03`. +* `KernelOnly.LeanCertNumericsRows.FullPoint03`. +* `KernelOnly.LeanCertNumericsRows.FullImage03`. +* `KernelOnly.LeanCertNumericsRows.Full04`. +* `KernelOnly.LeanCertNumericsRows.FullPoint04`. +* `KernelOnly.LeanCertNumericsRows.FullImage04`. +* `KernelOnly.LeanCertNumericsRows.Full05`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Direct 22D certificate, row 0: Jacobian bound + +The row modules form a deliberate dependency chain beginning after the +already-certified reduced 4D module. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_0_lt : + intervalMatrixRowBound fullPJ (0 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 0 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_0_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (0 : Fin 22)) + (fullPointCache (0 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_0_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (0 : Fin 22) ∈ + fullPointCache (0 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (0 : Fin 22)) + full_point_0_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 0: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_0_inside : + intervalStrictInside (fullImageCachedQ (0 : Fin 22)) + (unitBox (n := 22) (0 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 1: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_1_lt : + intervalMatrixRowBound fullPJ (1 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 1 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_1_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (1 : Fin 22)) + (fullPointCache (1 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_1_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (1 : Fin 22) ∈ + fullPointCache (1 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (1 : Fin 22)) + full_point_1_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 1: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_1_inside : + intervalStrictInside (fullImageCachedQ (1 : Fin 22)) + (unitBox (n := 22) (1 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 2: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_2_lt : + intervalMatrixRowBound fullPJ (2 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 2 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_2_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (2 : Fin 22)) + (fullPointCache (2 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_2_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (2 : Fin 22) ∈ + fullPointCache (2 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (2 : Fin 22)) + full_point_2_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 2: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_2_inside : + intervalStrictInside (fullImageCachedQ (2 : Fin 22)) + (unitBox (n := 22) (2 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 3: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_3_lt : + intervalMatrixRowBound fullPJ (3 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 3 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_3_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (3 : Fin 22)) + (fullPointCache (3 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_3_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (3 : Fin 22) ∈ + fullPointCache (3 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (3 : Fin 22)) + full_point_3_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 3: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_3_inside : + intervalStrictInside (fullImageCachedQ (3 : Fin 22)) + (unitBox (n := 22) (3 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 4: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_4_lt : + intervalMatrixRowBound fullPJ (4 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 4 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_4_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (4 : Fin 22)) + (fullPointCache (4 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_4_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (4 : Fin 22) ∈ + fullPointCache (4 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (4 : Fin 22)) + full_point_4_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 4: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_4_inside : + intervalStrictInside (fullImageCachedQ (4 : Fin 22)) + (unitBox (n := 22) (4 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 5: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_5_lt : + intervalMatrixRowBound fullPJ (5 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.LeanCertNumericsRows.FullPoint05`. +* `KernelOnly.LeanCertNumericsRows.FullImage05`. +* `KernelOnly.LeanCertNumericsRows.Full06`. +* `KernelOnly.LeanCertNumericsRows.FullPoint06`. +* `KernelOnly.LeanCertNumericsRows.FullImage06`. +* `KernelOnly.LeanCertNumericsRows.Full07`. +* `KernelOnly.LeanCertNumericsRows.FullPoint07`. +* `KernelOnly.LeanCertNumericsRows.FullImage07`. +* `KernelOnly.LeanCertNumericsRows.Full08`. +* `KernelOnly.LeanCertNumericsRows.FullPoint08`. +* `KernelOnly.LeanCertNumericsRows.FullImage08`. +* `KernelOnly.LeanCertNumericsRows.Full09`. +* `KernelOnly.LeanCertNumericsRows.FullPoint09`. +* `KernelOnly.LeanCertNumericsRows.FullImage09`. +* `KernelOnly.LeanCertNumericsRows.Full10`. +* `KernelOnly.LeanCertNumericsRows.FullPoint10`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Direct 22D certificate, point residual 5 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_5_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (5 : Fin 22)) + (fullPointCache (5 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_5_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (5 : Fin 22) ∈ + fullPointCache (5 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (5 : Fin 22)) + full_point_5_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 5: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_5_inside : + intervalStrictInside (fullImageCachedQ (5 : Fin 22)) + (unitBox (n := 22) (5 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 6: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_6_lt : + intervalMatrixRowBound fullPJ (6 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 6 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_6_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (6 : Fin 22)) + (fullPointCache (6 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_6_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (6 : Fin 22) ∈ + fullPointCache (6 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (6 : Fin 22)) + full_point_6_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 6: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_6_inside : + intervalStrictInside (fullImageCachedQ (6 : Fin 22)) + (unitBox (n := 22) (6 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 7: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_7_lt : + intervalMatrixRowBound fullPJ (7 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 7 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_7_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (7 : Fin 22)) + (fullPointCache (7 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_7_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (7 : Fin 22) ∈ + fullPointCache (7 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (7 : Fin 22)) + full_point_7_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 7: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_7_inside : + intervalStrictInside (fullImageCachedQ (7 : Fin 22)) + (unitBox (n := 22) (7 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 8: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_8_lt : + intervalMatrixRowBound fullPJ (8 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 8 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_8_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (8 : Fin 22)) + (fullPointCache (8 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_8_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (8 : Fin 22) ∈ + fullPointCache (8 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (8 : Fin 22)) + full_point_8_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 8: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_8_inside : + intervalStrictInside (fullImageCachedQ (8 : Fin 22)) + (unitBox (n := 22) (8 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 9: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_9_lt : + intervalMatrixRowBound fullPJ (9 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 9 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_9_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (9 : Fin 22)) + (fullPointCache (9 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_9_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (9 : Fin 22) ∈ + fullPointCache (9 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (9 : Fin 22)) + full_point_9_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 9: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_9_inside : + intervalStrictInside (fullImageCachedQ (9 : Fin 22)) + (unitBox (n := 22) (9 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 10: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_10_lt : + intervalMatrixRowBound fullPJ (10 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 10 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_10_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (10 : Fin 22)) + (fullPointCache (10 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_10_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (10 : Fin 22) ∈ + fullPointCache (10 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (10 : Fin 22)) + full_point_10_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.LeanCertNumericsRows.FullImage10`. +* `KernelOnly.LeanCertNumericsRows.Full11`. +* `KernelOnly.LeanCertNumericsRows.FullPoint11`. +* `KernelOnly.LeanCertNumericsRows.FullImage11`. +* `KernelOnly.LeanCertNumericsRows.Full12`. +* `KernelOnly.LeanCertNumericsRows.FullPoint12`. +* `KernelOnly.LeanCertNumericsRows.FullImage12`. +* `KernelOnly.LeanCertNumericsRows.Full13`. +* `KernelOnly.LeanCertNumericsRows.FullPoint13`. +* `KernelOnly.LeanCertNumericsRows.FullImage13`. +* `KernelOnly.LeanCertNumericsRows.Full14`. +* `KernelOnly.LeanCertNumericsRows.FullPoint14`. +* `KernelOnly.LeanCertNumericsRows.FullImage14`. +* `KernelOnly.LeanCertNumericsRows.Full15`. +* `KernelOnly.LeanCertNumericsRows.FullPoint15`. +* `KernelOnly.LeanCertNumericsRows.FullImage15`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Direct 22D certificate, row 10: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_10_inside : + intervalStrictInside (fullImageCachedQ (10 : Fin 22)) + (unitBox (n := 22) (10 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 11: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_11_lt : + intervalMatrixRowBound fullPJ (11 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 11 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_11_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (11 : Fin 22)) + (fullPointCache (11 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_11_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (11 : Fin 22) ∈ + fullPointCache (11 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (11 : Fin 22)) + full_point_11_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 11: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_11_inside : + intervalStrictInside (fullImageCachedQ (11 : Fin 22)) + (unitBox (n := 22) (11 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 12: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_12_lt : + intervalMatrixRowBound fullPJ (12 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 12 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_12_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (12 : Fin 22)) + (fullPointCache (12 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_12_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (12 : Fin 22) ∈ + fullPointCache (12 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (12 : Fin 22)) + full_point_12_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 12: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_12_inside : + intervalStrictInside (fullImageCachedQ (12 : Fin 22)) + (unitBox (n := 22) (12 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 13: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_13_lt : + intervalMatrixRowBound fullPJ (13 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 13 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_13_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (13 : Fin 22)) + (fullPointCache (13 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_13_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (13 : Fin 22) ∈ + fullPointCache (13 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (13 : Fin 22)) + full_point_13_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 13: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_13_inside : + intervalStrictInside (fullImageCachedQ (13 : Fin 22)) + (unitBox (n := 22) (13 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 14: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_14_lt : + intervalMatrixRowBound fullPJ (14 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 14 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_14_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (14 : Fin 22)) + (fullPointCache (14 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_14_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (14 : Fin 22) ∈ + fullPointCache (14 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (14 : Fin 22)) + full_point_14_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 14: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_14_inside : + intervalStrictInside (fullImageCachedQ (14 : Fin 22)) + (unitBox (n := 22) (14 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 15: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_15_lt : + intervalMatrixRowBound fullPJ (15 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 15 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_15_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (15 : Fin 22)) + (fullPointCache (15 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_15_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (15 : Fin 22) ∈ + fullPointCache (15 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (15 : Fin 22)) + full_point_15_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 15: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_15_inside : + intervalStrictInside (fullImageCachedQ (15 : Fin 22)) + (unitBox (n := 22) (15 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.LeanCertNumericsRows.Full16`. +* `KernelOnly.LeanCertNumericsRows.FullPoint16`. +* `KernelOnly.LeanCertNumericsRows.FullImage16`. +* `KernelOnly.LeanCertNumericsRows.Full17`. +* `KernelOnly.LeanCertNumericsRows.FullPoint17`. +* `KernelOnly.LeanCertNumericsRows.FullImage17`. +* `KernelOnly.LeanCertNumericsRows.Full18`. +* `KernelOnly.LeanCertNumericsRows.FullPoint18`. +* `KernelOnly.LeanCertNumericsRows.FullImage18`. +* `KernelOnly.LeanCertNumericsRows.Full19`. +* `KernelOnly.LeanCertNumericsRows.FullPoint19`. +* `KernelOnly.LeanCertNumericsRows.FullImage19`. +* `KernelOnly.LeanCertNumericsRows.Full20`. +* `KernelOnly.LeanCertNumericsRows.FullPoint20`. +* `KernelOnly.LeanCertNumericsRows.FullImage20`. +* `KernelOnly.LeanCertNumericsRows.Full21`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Direct 22D certificate, row 16: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_16_lt : + intervalMatrixRowBound fullPJ (16 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 16 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_16_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (16 : Fin 22)) + (fullPointCache (16 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_16_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (16 : Fin 22) ∈ + fullPointCache (16 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (16 : Fin 22)) + full_point_16_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 16: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_16_inside : + intervalStrictInside (fullImageCachedQ (16 : Fin 22)) + (unitBox (n := 22) (16 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 17: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_17_lt : + intervalMatrixRowBound fullPJ (17 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 17 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_17_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (17 : Fin 22)) + (fullPointCache (17 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_17_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (17 : Fin 22) ∈ + fullPointCache (17 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (17 : Fin 22)) + full_point_17_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 17: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_17_inside : + intervalStrictInside (fullImageCachedQ (17 : Fin 22)) + (unitBox (n := 22) (17 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 18: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_18_lt : + intervalMatrixRowBound fullPJ (18 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 18 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_18_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (18 : Fin 22)) + (fullPointCache (18 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_18_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (18 : Fin 22) ∈ + fullPointCache (18 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (18 : Fin 22)) + full_point_18_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 18: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_18_inside : + intervalStrictInside (fullImageCachedQ (18 : Fin 22)) + (unitBox (n := 22) (18 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 19: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_19_lt : + intervalMatrixRowBound fullPJ (19 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 19 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_19_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (19 : Fin 22)) + (fullPointCache (19 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_19_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (19 : Fin 22) ∈ + fullPointCache (19 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (19 : Fin 22)) + full_point_19_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 19: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_19_inside : + intervalStrictInside (fullImageCachedQ (19 : Fin 22)) + (unitBox (n := 22) (19 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 20: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_20_lt : + intervalMatrixRowBound fullPJ (20 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, point residual 20 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_20_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (20 : Fin 22)) + (fullPointCache (20 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_20_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (20 : Fin 22) ∈ + fullPointCache (20 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (20 : Fin 22)) + full_point_20_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 20: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_20_inside : + intervalStrictInside (fullImageCachedQ (20 : Fin 22)) + (unitBox (n := 22) (20 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 21: Jacobian bound + +The row modules form a deliberate dependency chain. Lake therefore checks +only one expensive closed kernel proposition at a time instead of launching +all 22 rows concurrently and exhausting RAM. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_row_21_lt : + intervalMatrixRowBound fullPJ (21 : Fin 22) < qTarget := by + unfold fullPJ + rw [jacobianCache_eq] + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.LeanCertNumericsRows.FullPoint21`. +* `KernelOnly.LeanCertNumericsRows.FullImage21`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Direct 22D certificate, point residual 21 + +The expensive transcendental evaluation is checked once for this single +coordinate and then replaced by a small rational cache interval downstream. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_point_21_contained : + intervalContained + (pointEvalIntervalsKernel fullExpr (zeroCenter (n := 22)) cfg (21 : Fin 22)) + (fullPointCache (21 : Fin 22)) := by + constructor <;> decide +kernel + +theorem full_point_21_mem : + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) (21 : Fin 22) ∈ + fullPointCache (21 : Fin 22) := + mem_of_intervalContained + (systemEval_mem_pointEvalIntervalsKernel_const + fullExpr fullExpr_supported (zeroCenter (n := 22)) cfg (21 : Fin 22)) + full_point_21_contained + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct 22D certificate, row 21: strict self-map image + +This theorem is isolated from the Jacobian-row theorem so each Lean process +checks one heavy proposition and then releases its memory before the next +module in the serial chain begins. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine +theorem full_image_21_inside : + intervalStrictInside (fullImageCachedQ (21 : Fin 22)) + (unitBox (n := 22) (21 : Fin 22)) = true := by + decide +kernel + +end PartALeanCert +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.LeanCertGerverNumerics`. +* `KernelOnly.ConcreteUniqueZeros`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Final LeanCert numerical certificate for Gerver + +All expensive 22D checks are already cached in a serial dependency chain +ending at `FullImage21`. This module only assembles them into the global +norm/self-map facts and the unique-root theorem. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartALeanCert + +open LeanCert.Core +open LeanCert.Engine + +theorem full_bound_lt : intervalMatrixBound fullPJ < qTarget := by + apply matrixBound_lt_of_rows fullPJ qTarget qTarget_pos + intro i + fin_cases i + · exact full_row_0_lt + · exact full_row_1_lt + · exact full_row_2_lt + · exact full_row_3_lt + · exact full_row_4_lt + · exact full_row_5_lt + · exact full_row_6_lt + · exact full_row_7_lt + · exact full_row_8_lt + · exact full_row_9_lt + · exact full_row_10_lt + · exact full_row_11_lt + · exact full_row_12_lt + · exact full_row_13_lt + · exact full_row_14_lt + · exact full_row_15_lt + · exact full_row_16_lt + · exact full_row_17_lt + · exact full_row_18_lt + · exact full_row_19_lt + · exact full_row_20_lt + · exact full_row_21_lt + +theorem full_bound_le : intervalMatrixBound fullPJ ≤ qTarget := + full_bound_lt.le + +theorem full_point_values_mem : + ∀ j : Fin 22, + systemEval fullExpr + (fun k => ((zeroCenter (n := 22) k : ℚ) : ℝ)) j ∈ + fullPointCache j := by + intro j + fin_cases j + · exact full_point_0_mem + · exact full_point_1_mem + · exact full_point_2_mem + · exact full_point_3_mem + · exact full_point_4_mem + · exact full_point_5_mem + · exact full_point_6_mem + · exact full_point_7_mem + · exact full_point_8_mem + · exact full_point_9_mem + · exact full_point_10_mem + · exact full_point_11_mem + · exact full_point_12_mem + · exact full_point_13_mem + · exact full_point_14_mem + · exact full_point_15_mem + · exact full_point_16_mem + · exact full_point_17_mem + · exact full_point_18_mem + · exact full_point_19_mem + · exact full_point_20_mem + · exact full_point_21_mem + +theorem full_images_inside : + ∀ i : Fin 22, + intervalStrictInside (fullImageCachedQ i) (unitBox (n := 22) i) = true := by + intro i + fin_cases i + · exact full_image_0_inside + · exact full_image_1_inside + · exact full_image_2_inside + · exact full_image_3_inside + · exact full_image_4_inside + · exact full_image_5_inside + · exact full_image_6_inside + · exact full_image_7_inside + · exact full_image_8_inside + · exact full_image_9_inside + · exact full_image_10_inside + · exact full_image_11_inside + · exact full_image_12_inside + · exact full_image_13_inside + · exact full_image_14_inside + · exact full_image_15_inside + · exact full_image_16_inside + · exact full_image_17_inside + · exact full_image_18_inside + · exact full_image_19_inside + · exact full_image_20_inside + · exact full_image_21_inside + +theorem full_unique_scaled : + ∃! u, FinBoxMem u (unitBox (n := 22)) ∧ SystemZero fullExpr u := by + exact uniqueSystemZero_of_certified_contraction_values + fullExpr fullExpr_supported (unitBox (n := 22)) (zeroCenter (n := 22)) + full_center_mem fullY cfg qTarget qTarget_nonneg qTarget_lt_one + (by simpa [fullPJ] using full_bound_le) + fullPointCache full_point_values_mem full_images_inside + +end PartALeanCert +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Concrete Unique Zeros +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa + +open LeanCert.Engine + +namespace PartALeanCert + +/-- The unique normalized reduced-system zero selected from its existence certificate. -/ +def reducedRootU : Fin 4 → ℝ := Classical.choose reduced_unique_scaled +/-- The unique normalized full-system zero selected from its existence certificate. -/ +def fullRootU : Fin 22 → ℝ := Classical.choose full_unique_scaled + +theorem reducedRootU_spec : + FinBoxMem reducedRootU (unitBox (n := 4)) ∧ + SystemZero reducedExpr reducedRootU := + (Classical.choose_spec reduced_unique_scaled).1 + +theorem fullRootU_spec : + FinBoxMem fullRootU (unitBox (n := 22)) ∧ + SystemZero fullExpr fullRootU := + (Classical.choose_spec full_unique_scaled).1 + +/-- The certified reduced-system root in the original box coordinates. -/ +def reducedRoot : Vec 4 := reducedAffine reducedRootU +/-- The certified full-system root in the original Romik parameter coordinates. -/ +def fullRoot : Vec 22 := fullAffine fullRootU + +theorem reducedRoot_mem : reducedRoot ∈ Reduced.vectorBox := + reducedAffine_mem reducedRootU_spec.1 + +theorem fullRoot_mem : fullRoot ∈ Romik.vectorBox := + fullAffine_mem fullRootU_spec.1 + +theorem reducedRoot_zero : Reduced.vectorSystem reducedRoot = 0 := by + have hz : systemEval reducedExpr reducedRootU = 0 := by + funext i + exact reducedRootU_spec.2 i + rw [reduced_systemEval_eq] at hz + exact hz + +theorem fullRoot_zero : Romik.vectorSystem fullRoot = 0 := by + have hz : systemEval fullExpr fullRootU = 0 := by + funext i + exact fullRootU_spec.2 i + rw [full_systemEval_eq] at hz + exact hz + +/-- Concrete reduced 4D unique zero — no assumptions. -/ +def reducedCertifiedUniqueZero : + CertifiedUniqueZero Reduced.vectorSystem Reduced.vectorBox where + solution := reducedRoot + solution_mem := reducedRoot_mem + satisfies := reducedRoot_zero + unique_iff := by + intro y hy + constructor + · intro hzero + let uy := reducedNormalize y + have huy : FinBoxMem uy (unitBox (n := 4)) := reducedNormalize_mem hy + have hsys : SystemZero reducedExpr uy := by + intro i + change systemEval reducedExpr uy i = 0 + calc + systemEval reducedExpr uy i = + Reduced.vectorSystem (reducedAffine uy) i := + congrFun (reduced_systemEval_eq uy) i + _ = Reduced.vectorSystem y i := by + rw [show reducedAffine uy = y by + simpa [uy] using reducedAffine_normalize y] + _ = 0 := congrFun hzero i + have huEq : uy = reducedRootU := by + exact reduced_unique_scaled.unique ⟨huy, hsys⟩ reducedRootU_spec + calc + y = reducedAffine uy := by symm; exact reducedAffine_normalize y + _ = reducedAffine reducedRootU := by rw [huEq] + _ = reducedRoot := rfl + · rintro rfl + exact reducedRoot_zero + +/-- Existing manuscript-level unique-solution interfaces are now discharged +by concrete numerical certificates rather than assumptions. -/ +def reducedCertifiedUniqueSolution : + CertifiedUniqueSolution Reduced.Equations Reduced.box := + Reduced.uniqueSolutionOfVector reducedCertifiedUniqueZero + +end PartALeanCert + +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.DeepMindABPhiThetaBridge`. +* `KernelOnly.PartE.TwoAngleReduction`. +* `KernelOnly.PartE.ScaledResidualInterval`. +* `KernelOnly.PartE.FiniteCoverReplay`. +* `KernelOnly.PartE.LocalTwoAngleKrawczykClosure`. +* `KernelOnly.PartE.AdaptiveGlobalCoverClosure`. +* `KernelOnly.PartE.E24AlignedRegionFoundation`. +* `KernelOnly.PartE.E24AlignedLogic`. +* `KernelOnly.PartE.E24KC2ProofHelpers`. +* `KernelOnly.PartE.E24PhiBelowKernelHL`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Part E01: bridge to DeepMind's Gerver-constant specification + +This module mirrors the four equations and the physical domain used by +`GerversSofa.ABφθSpec` in `google-deepmind/formal-conjectures`. It proves that +the four displayed equations are exactly the already certified reduced Gerver +system, proves that the certified rational box lies in the physical domain, +and reduces the tuple-shaped global uniqueness statement to one explicit +global enclosure target. + +The enclosure target is a proposition passed as an ordinary theorem argument. +E01 does not claim that the global exclusion step has already been proved. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +/-- Reduced parameters assembled in the order `(A, B, phi, theta)`. -/ +def reducedParams (A B phi theta : ℝ) : Reduced.Params := + { a := A, b := B, phi := phi, theta := theta } + +/-- The physical domain appearing in DeepMind's `ABφθSpec`. -/ +def PhysicalDomain (p : Reduced.Params) : Prop := + 0 ≤ p.phi ∧ p.phi ≤ p.theta ∧ p.theta ≤ Real.pi / 4 ∧ + 0 ≤ p.a ∧ 0 ≤ p.b + +/-- The four displayed equations in DeepMind's `ABφθSpec`. -/ +def DeepMindEquations (A B phi theta : ℝ) : Prop := + A * (Real.cos theta - Real.cos phi) - 2 * B * Real.sin phi + + (theta - phi - 1) * Real.cos theta - Real.sin theta + + Real.cos phi + Real.sin phi = 0 ∧ + A * (3 * Real.sin theta + Real.sin phi) - 2 * B * Real.cos phi + + 3 * (theta - phi - 1) * Real.sin theta + 3 * Real.cos theta + - Real.sin phi + Real.cos phi = 0 ∧ + A * Real.cos phi + - (Real.sin phi + 1 / 2 - Real.cos phi / 2 + B * Real.sin phi) = 0 ∧ + (A + Real.pi / 2 - phi - theta) + - (B - (theta - phi) * (1 + A) / 2 - (theta - phi) ^ 2 / 4) = 0 + +/-- A local mirror of DeepMind's complete four-constant specification. -/ +def DeepMindABPhiThetaSpec (A B phi theta : ℝ) : Prop := + PhysicalDomain (reducedParams A B phi theta) ∧ + DeepMindEquations A B phi theta + +/-- Explicit equivalence between DeepMind's four equations and the certified +reduced Gerver system. -/ +theorem deepMindEquations_iff_reducedEquations (A B phi theta : ℝ) : + DeepMindEquations A B phi theta ↔ + Reduced.Equations (reducedParams A B phi theta) := by + constructor + · rintro ⟨h0, h1, h2, h3⟩ + change Reduced.system (reducedParams A B phi theta) = 0 + funext i + fin_cases i + · change + A * (Real.cos theta - Real.cos phi) - 2 * B * Real.sin phi + + (theta - phi - 1) * Real.cos theta - Real.sin theta + + Real.cos phi + Real.sin phi = 0 + exact h0 + · change + A * (3 * Real.sin theta + Real.sin phi) - 2 * B * Real.cos phi + + 3 * (theta - phi - 1) * Real.sin theta + 3 * Real.cos theta + - Real.sin phi + Real.cos phi = 0 + exact h1 + · change + A * Real.cos phi - Real.sin phi - 1 / 2 + + 1 / 2 * Real.cos phi - B * Real.sin phi = 0 + ring_nf at h2 ⊢ + exact h2 + · change + A + Real.pi / 2 - phi - theta - B + + 1 / 2 * (theta - phi) * (1 + A) + + 1 / 4 * (theta - phi) * (theta - phi) = 0 + ring_nf at h3 ⊢ + exact h3 + · intro h + change Reduced.system (reducedParams A B phi theta) = 0 at h + have h0 := congrFun h (0 : Fin 4) + have h1 := congrFun h (1 : Fin 4) + have h2 := congrFun h (2 : Fin 4) + have h3 := congrFun h (3 : Fin 4) + change + A * (Real.cos theta - Real.cos phi) - 2 * B * Real.sin phi + + (theta - phi - 1) * Real.cos theta - Real.sin theta + + Real.cos phi + Real.sin phi = 0 at h0 + change + A * (3 * Real.sin theta + Real.sin phi) - 2 * B * Real.cos phi + + 3 * (theta - phi - 1) * Real.sin theta + 3 * Real.cos theta + - Real.sin phi + Real.cos phi = 0 at h1 + change + A * Real.cos phi - Real.sin phi - 1 / 2 + + 1 / 2 * Real.cos phi - B * Real.sin phi = 0 at h2 + change + A + Real.pi / 2 - phi - theta - B + + 1 / 2 * (theta - phi) * (1 + A) + + 1 / 4 * (theta - phi) * (theta - phi) = 0 at h3 + refine ⟨h0, h1, ?_, ?_⟩ + · ring_nf at h2 ⊢ + exact h2 + · ring_nf at h3 ⊢ + exact h3 + +/-- Every point of the certified reduced box satisfies DeepMind's broad +physical-domain inequalities. -/ +theorem physicalDomain_of_mem_reducedBox {p : Reduced.Params} + (hp : p ∈ Reduced.box) : PhysicalDomain p := by + dsimp [Reduced.box, qR] at hp + rcases hp with + ⟨haLo, _haHi, hbLo, _hbHi, hphiLo, hphiHi, hthetaLo, hthetaHi⟩ + have hphiNonneg : 0 ≤ p.phi := by + have hconst : + (0 : ℝ) ≤ (122429264969 : ℝ) / 3125000000000 := by + norm_num + exact hconst.trans hphiLo + have hphiTheta : p.phi ≤ p.theta := by + have hgap : + (3917736479009 : ℝ) / 100000000000000 ≤ + (2129067216821 : ℝ) / 3125000000000 := by + norm_num + exact hphiHi.trans (hgap.trans hthetaLo) + have hthetaPi : p.theta ≤ Real.pi / 4 := by + have hrat : + (68130150938273 : ℝ) / 100000000000000 < (3 : ℝ) / 4 := by + norm_num + have hthree : (3 : ℝ) / 4 < Real.pi / 4 := by + nlinarith [Real.pi_gt_three] + exact hthetaHi.trans (le_of_lt (hrat.trans hthree)) + have haNonneg : 0 ≤ p.a := by + have hconst : + (0 : ℝ) ≤ (1888531216873 : ℝ) / 20000000000000 := by + norm_num + exact hconst.trans haLo + have hbNonneg : 0 ≤ p.b := by + have hconst : + (0 : ℝ) ≤ (69960186366677 : ℝ) / 50000000000000 := by + norm_num + exact hconst.trans hbLo + exact ⟨hphiNonneg, hphiTheta, hthetaPi, haNonneg, hbNonneg⟩ + +/-- The mirrored DeepMind specification is precisely physical-domain +membership plus the already named reduced equations. -/ +theorem deepMindSpec_iff_physicalDomain_and_reducedEquations + (A B phi theta : ℝ) : + DeepMindABPhiThetaSpec A B phi theta ↔ + PhysicalDomain (reducedParams A B phi theta) ∧ + Reduced.Equations (reducedParams A B phi theta) := by + unfold DeepMindABPhiThetaSpec + rw [deepMindEquations_iff_reducedEquations] + +/-- A certified-box solution of the reduced system is automatically a +solution of the mirrored DeepMind specification. -/ +theorem deepMindSpec_of_mem_reducedBox_and_equations {p : Reduced.Params} + (hp : p ∈ Reduced.box) (heq : Reduced.Equations p) : + DeepMindABPhiThetaSpec p.a p.b p.phi p.theta := by + apply + (deepMindSpec_iff_physicalDomain_and_reducedEquations + p.a p.b p.phi p.theta).2 + simpa [reducedParams] using + And.intro (physicalDomain_of_mem_reducedBox hp) heq + +/-- The sole new mathematical target left after E01: every physical solution +of the reduced equations lies in the already certified rational box. -/ +def GlobalEnclosureTarget : Prop := + ∀ p : Reduced.Params, + PhysicalDomain p → Reduced.Equations p → p ∈ Reduced.box + +/-- Coordinate equivalence between DeepMind's nested tuple and the named +reduced-parameter record. -/ +def tupleEquiv : (ℝ × ℝ × ℝ × ℝ) ≃ Reduced.Params where + toFun x := reducedParams x.1 x.2.1 x.2.2.1 x.2.2.2 + invFun p := (p.a, p.b, p.phi, p.theta) + left_inv x := by + rcases x with ⟨A, B, phi, theta⟩ + rfl + right_inv p := by + cases p + rfl + +/-- Once the explicit global enclosure theorem is supplied, the existing +kernel-checked local certificate yields the exact tuple-shaped uniqueness +statement required by DeepMind. -/ +theorem deepMindABPhiTheta_existsUnique_of_globalEnclosure + (hglobal : GlobalEnclosureTarget) : + ∃! ABphiTheta : ℝ × ℝ × ℝ × ℝ, + DeepMindABPhiThetaSpec + ABphiTheta.1 ABphiTheta.2.1 ABphiTheta.2.2.1 ABphiTheta.2.2.2 := by + let cert := PartALeanCert.reducedCertifiedUniqueSolution + refine ⟨tupleEquiv.symm cert.solution, ?_, ?_⟩ + · change + DeepMindABPhiThetaSpec + cert.solution.a cert.solution.b cert.solution.phi cert.solution.theta + exact + deepMindSpec_of_mem_reducedBox_and_equations + cert.solution_mem cert.satisfies + · intro y hy + apply tupleEquiv.injective + rw [tupleEquiv.apply_symm_apply] + apply cert.unique (tupleEquiv y) + · apply hglobal (tupleEquiv y) + · exact + ((deepMindSpec_iff_physicalDomain_and_reducedEquations + y.1 y.2.1 y.2.2.1 y.2.2.2).1 hy).1 + · exact + ((deepMindSpec_iff_physicalDomain_and_reducedEquations + y.1 y.2.1 y.2.2.1 y.2.2.2).1 hy).2 + · exact + ((deepMindSpec_iff_physicalDomain_and_reducedEquations + y.1 y.2.1 y.2.2.1 y.2.2.2).1 hy).2 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Part E02: exact reduction of the DeepMind system to two angles + +E01 identified the sole missing mathematical input as a global enclosure of +all physical solutions of the four-variable reduced system. E02 eliminates +the two linear variables `A` and `B` exactly. + +The third and fourth Gerver equations first give `B` as an affine expression +in `A`, and then give `A` as a quotient depending only on `(phi, theta)`. The +denominator is proved nonzero for every physical solution; this is a theorem, +not an additional assumption. Consequently existence of a physical +four-variable solution is equivalent to a two-angle specification. + +The remaining enclosure target quantifies only over +`0 <= phi <= theta <= pi/4`. It is still an ordinary theorem argument: E02 +does not declare the interval branch-and-bound conclusion as an axiom. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +/-- Difference of the two switching angles. -/ +def angleDelta (phi theta : ℝ) : ℝ := theta - phi + +/-- Constant part of the fourth equation after solving it for `B`. -/ +def bBase (phi theta : ℝ) : ℝ := + Real.pi / 2 - phi - theta + angleDelta phi theta / 2 + + angleDelta phi theta ^ 2 / 4 + +/-- The value of `B` forced by the fourth equation once `A` is fixed. -/ +def bFromA (A phi theta : ℝ) : ℝ := + A * (1 + angleDelta phi theta / 2) + bBase phi theta + +/-- Denominator obtained from the third equation after eliminating `B`. -/ +def angleDenominator (phi theta : ℝ) : ℝ := + Real.cos phi - (1 + angleDelta phi theta / 2) * Real.sin phi + +/-- Numerator obtained from the third equation after eliminating `B`. -/ +def angleNumerator (phi theta : ℝ) : ℝ := + Real.sin phi + 1 / 2 - Real.cos phi / 2 + + bBase phi theta * Real.sin phi + +/-- Reconstructed value of `A`, depending only on the two angles. -/ +def reconstructedA (phi theta : ℝ) : ℝ := + angleNumerator phi theta / angleDenominator phi theta + +/-- Reconstructed value of `B`, depending only on the two angles. -/ +def reconstructedB (phi theta : ℝ) : ℝ := + bFromA (reconstructedA phi theta) phi theta + +/-- The triangular physical domain for the two switching angles. -/ +def PhysicalAngleDomain (phi theta : ℝ) : Prop := + 0 ≤ phi ∧ phi ≤ theta ∧ theta ≤ Real.pi / 4 + +/-- The last two displayed equations of the DeepMind system. -/ +def ThirdFourthEquations (A B phi theta : ℝ) : Prop := + A * Real.cos phi + - (Real.sin phi + 1 / 2 - Real.cos phi / 2 + B * Real.sin phi) = 0 ∧ + (A + Real.pi / 2 - phi - theta) + - (B - (theta - phi) * (1 + A) / 2 - (theta - phi) ^ 2 / 4) = 0 + +/-- The fourth equation is exactly the affine reconstruction formula for `B`. -/ +theorem fourthEquation_iff_b_eq_bFromA (A B phi theta : ℝ) : + (A + Real.pi / 2 - phi - theta) + - (B - (theta - phi) * (1 + A) / 2 - + (theta - phi) ^ 2 / 4) = 0 ↔ + B = bFromA A phi theta := by + constructor <;> intro h <;> + dsimp [bFromA, bBase, angleDelta] at h ⊢ <;> + ring_nf at h ⊢ <;> + linarith + +/-- After the fourth equation has reconstructed `B`, the third equation is +exactly `A * denominator = numerator`. -/ +theorem thirdEquation_iff_mul_denominator_eq_numerator + (A B phi theta : ℝ) (hB : B = bFromA A phi theta) : + A * Real.cos phi + - (Real.sin phi + 1 / 2 - Real.cos phi / 2 + + B * Real.sin phi) = 0 ↔ + A * angleDenominator phi theta = angleNumerator phi theta := by + subst B + constructor <;> intro h <;> + dsimp [bFromA, bBase, angleDelta, angleDenominator, + angleNumerator] at h ⊢ <;> + ring_nf at h ⊢ <;> + linarith + +/-- Exact simultaneous elimination statement for equations three and four. -/ +theorem thirdFourthEquations_iff_eliminated (A B phi theta : ℝ) : + ThirdFourthEquations A B phi theta ↔ + B = bFromA A phi theta ∧ + A * angleDenominator phi theta = angleNumerator phi theta := by + constructor + · rintro ⟨h3, h4⟩ + have hB := (fourthEquation_iff_b_eq_bFromA A B phi theta).1 h4 + exact ⟨hB, + (thirdEquation_iff_mul_denominator_eq_numerator + A B phi theta hB).1 h3⟩ + · rintro ⟨hB, hA⟩ + exact ⟨ + (thirdEquation_iff_mul_denominator_eq_numerator + A B phi theta hB).2 hA, + (fourthEquation_iff_b_eq_bFromA A B phi theta).2 hB⟩ + +/-- The physical four-variable domain projects to the triangular angle domain. -/ +theorem physicalAngleDomain_of_physicalDomain {A B phi theta : ℝ} + (h : PhysicalDomain (reducedParams A B phi theta)) : + PhysicalAngleDomain phi theta := by + exact ⟨h.1, h.2.1, h.2.2.1⟩ + +/-- The constant part of the reconstructed `B` is nonnegative throughout the +physical angle triangle. -/ +theorem bBase_nonneg_of_physicalAngleDomain {phi theta : ℝ} + (h : PhysicalAngleDomain phi theta) : 0 ≤ bBase phi theta := by + rcases h with ⟨hphi0, hphiTheta, htheta⟩ + have hdelta : 0 ≤ theta - phi := sub_nonneg.mpr hphiTheta + have hsum : phi + theta ≤ Real.pi / 2 := by + nlinarith + have hsquare : 0 ≤ (theta - phi) ^ 2 := sq_nonneg (theta - phi) + dsimp [bBase, angleDelta] + nlinarith + +/-- The sine of the first switching angle is nonnegative in the physical +triangle. -/ +theorem sin_phi_nonneg_of_physicalAngleDomain {phi theta : ℝ} + (h : PhysicalAngleDomain phi theta) : 0 ≤ Real.sin phi := by + rcases h with ⟨hphi0, hphiTheta, htheta⟩ + apply Real.sin_nonneg_of_nonneg_of_le_pi hphi0 + nlinarith [Real.pi_gt_three] + +/-- The cosine of the first switching angle is strictly positive in the +physical triangle. -/ +theorem cos_phi_pos_of_physicalAngleDomain {phi theta : ℝ} + (h : PhysicalAngleDomain phi theta) : 0 < Real.cos phi := by + rcases h with ⟨hphi0, hphiTheta, htheta⟩ + apply Real.cos_pos_of_mem_Ioo + constructor <;> nlinarith [Real.pi_pos] + +/-- No physical solution of all four equations can hit the apparent zero +denominator of the two-angle reconstruction. -/ +theorem angleDenominator_ne_zero_of_physical_and_equations + {A B phi theta : ℝ} + (hdom : PhysicalDomain (reducedParams A B phi theta)) + (heq : DeepMindEquations A B phi theta) : + angleDenominator phi theta ≠ 0 := by + have hang : PhysicalAngleDomain phi theta := + physicalAngleDomain_of_physicalDomain hdom + have helim : + B = bFromA A phi theta ∧ + A * angleDenominator phi theta = angleNumerator phi theta := + (thirdFourthEquations_iff_eliminated A B phi theta).1 + ⟨heq.2.2.1, heq.2.2.2⟩ + intro hden + have hnumZero : angleNumerator phi theta = 0 := by + rw [← helim.2, hden, mul_zero] + have hsinNonneg : 0 ≤ Real.sin phi := + sin_phi_nonneg_of_physicalAngleDomain hang + have hcosPos : 0 < Real.cos phi := + cos_phi_pos_of_physicalAngleDomain hang + have hsinNe : Real.sin phi ≠ 0 := by + intro hsin + have hcosZero : Real.cos phi = 0 := by + dsimp [angleDenominator, angleDelta] at hden + rw [hsin, mul_zero, sub_zero] at hden + exact hden + exact (ne_of_gt hcosPos) hcosZero + have hsinPos : 0 < Real.sin phi := + lt_of_le_of_ne hsinNonneg hsinNe.symm + have hbaseNonneg : 0 ≤ bBase phi theta := + bBase_nonneg_of_physicalAngleDomain hang + have hcosGap : 0 ≤ 1 / 2 - Real.cos phi / 2 := by + nlinarith [Real.cos_le_one phi] + have hbaseSin : 0 ≤ bBase phi theta * Real.sin phi := + mul_nonneg hbaseNonneg hsinNonneg + have hnumPos : 0 < angleNumerator phi theta := by + dsimp [angleNumerator] + nlinarith + exact (ne_of_gt hnumPos) hnumZero + +/-- Every physical four-variable solution has the reconstructed value of `A`. -/ +theorem a_eq_reconstructed_of_physical_and_equations + {A B phi theta : ℝ} + (hdom : PhysicalDomain (reducedParams A B phi theta)) + (heq : DeepMindEquations A B phi theta) : + A = reconstructedA phi theta := by + have hden := + angleDenominator_ne_zero_of_physical_and_equations hdom heq + have helim := + (thirdFourthEquations_iff_eliminated A B phi theta).1 + ⟨heq.2.2.1, heq.2.2.2⟩ + exact (eq_div_iff hden).2 helim.2 + +/-- Every physical four-variable solution has the reconstructed value of `B`. -/ +theorem b_eq_reconstructed_of_physical_and_equations + {A B phi theta : ℝ} + (hdom : PhysicalDomain (reducedParams A B phi theta)) + (heq : DeepMindEquations A B phi theta) : + B = reconstructedB phi theta := by + have hA := a_eq_reconstructed_of_physical_and_equations hdom heq + have hB := + ((thirdFourthEquations_iff_eliminated A B phi theta).1 + ⟨heq.2.2.1, heq.2.2.2⟩).1 + calc + B = bFromA A phi theta := hB + _ = bFromA (reconstructedA phi theta) phi theta := by rw [hA] + _ = reconstructedB phi theta := rfl + +/-- The first two equations after exact reconstruction of `A` and `B`. -/ +def TwoAngleEquations (phi theta : ℝ) : Prop := + let A := reconstructedA phi theta + let B := reconstructedB phi theta + A * (Real.cos theta - Real.cos phi) - 2 * B * Real.sin phi + + (theta - phi - 1) * Real.cos theta - Real.sin theta + + Real.cos phi + Real.sin phi = 0 ∧ + A * (3 * Real.sin theta + Real.sin phi) - 2 * B * Real.cos phi + + 3 * (theta - phi - 1) * Real.sin theta + 3 * Real.cos theta + - Real.sin phi + Real.cos phi = 0 + +/-- Complete two-dimensional specification equivalent to existence of a +physical solution with the given two angles. -/ +def TwoAngleSpec (phi theta : ℝ) : Prop := + PhysicalAngleDomain phi theta ∧ + angleDenominator phi theta ≠ 0 ∧ + 0 ≤ reconstructedA phi theta ∧ + 0 ≤ reconstructedB phi theta ∧ + TwoAngleEquations phi theta + +/-- The reconstructed parameters assembled as a reduced-system record. -/ +def reconstructedParams (phi theta : ℝ) : Reduced.Params := + reducedParams (reconstructedA phi theta) (reconstructedB phi theta) phi theta + +/-- Two-angle data reconstruct a physical solution of all four displayed +DeepMind equations. -/ +theorem deepMindSpec_of_twoAngleSpec {phi theta : ℝ} + (h : TwoAngleSpec phi theta) : + DeepMindABPhiThetaSpec + (reconstructedA phi theta) (reconstructedB phi theta) phi theta := by + rcases h with ⟨hang, hden, hA0, hB0, h12⟩ + have h34 : ThirdFourthEquations + (reconstructedA phi theta) (reconstructedB phi theta) phi theta := by + apply (thirdFourthEquations_iff_eliminated + (reconstructedA phi theta) (reconstructedB phi theta) phi theta).2 + constructor + · rfl + · simp [reconstructedA, hden] + refine ⟨?_, ?_⟩ + · exact ⟨hang.1, hang.2.1, hang.2.2, hA0, hB0⟩ + · rcases h12 with ⟨h1, h2⟩ + exact ⟨h1, h2, h34.1, h34.2⟩ + +/-- Exact dimension reduction: for fixed angles, a physical four-variable +solution exists if and only if the reconstructed two-angle specification +holds. -/ +theorem exists_deepMindSpec_iff_twoAngleSpec (phi theta : ℝ) : + (∃ A B : ℝ, DeepMindABPhiThetaSpec A B phi theta) ↔ + TwoAngleSpec phi theta := by + constructor + · rintro ⟨A, B, hspec⟩ + have hden := angleDenominator_ne_zero_of_physical_and_equations + hspec.1 hspec.2 + have hA := a_eq_reconstructed_of_physical_and_equations hspec.1 hspec.2 + have hB := b_eq_reconstructed_of_physical_and_equations hspec.1 hspec.2 + refine ⟨physicalAngleDomain_of_physicalDomain hspec.1, hden, ?_, ?_, ?_⟩ + · have hA0 : 0 ≤ A := by + simpa only [reducedParams] using hspec.1.2.2.2.1 + rw [hA] at hA0 + exact hA0 + · have hB0 : 0 ≤ B := by + simpa only [reducedParams] using hspec.1.2.2.2.2 + rw [hB] at hB0 + exact hB0 + · rcases hspec.2 with ⟨h1, h2, _h3, _h4⟩ + simpa [TwoAngleEquations, hA, hB] using And.intro h1 h2 + · intro h + exact ⟨reconstructedA phi theta, reconstructedB phi theta, + deepMindSpec_of_twoAngleSpec h⟩ + +/-- The sole mathematical target left after E02. Unlike E01's four-variable +target, this quantifies only over the compact triangle of the two angles. -/ +def TwoAngleEnclosureTarget : Prop := + ∀ phi theta : ℝ, + TwoAngleSpec phi theta → reconstructedParams phi theta ∈ Reduced.box + +/-- A proof of the two-angle enclosure target yields E01's full global +enclosure target. -/ +theorem globalEnclosureTarget_of_twoAngleEnclosure + (hangle : TwoAngleEnclosureTarget) : GlobalEnclosureTarget := by + intro p hdom heq + have hdeep : DeepMindEquations p.a p.b p.phi p.theta := + (deepMindEquations_iff_reducedEquations + p.a p.b p.phi p.theta).2 (by simpa [reducedParams] using heq) + have hspec : DeepMindABPhiThetaSpec p.a p.b p.phi p.theta := + ⟨by simpa [reducedParams] using hdom, hdeep⟩ + have htwo : TwoAngleSpec p.phi p.theta := + (exists_deepMindSpec_iff_twoAngleSpec p.phi p.theta).1 + ⟨p.a, p.b, hspec⟩ + have hmem := hangle p.phi p.theta htwo + have hA := a_eq_reconstructed_of_physical_and_equations hspec.1 hspec.2 + have hB := b_eq_reconstructed_of_physical_and_equations hspec.1 hspec.2 + change + reducedParams + (reconstructedA p.phi p.theta) (reconstructedB p.phi p.theta) + p.phi p.theta ∈ Reduced.box at hmem + rw [← hA, ← hB] at hmem + simpa [reconstructedParams, reducedParams] using hmem + +/-- Terminal E02 bridge: the exact DeepMind-shaped uniqueness theorem now +requires only the compact two-angle enclosure theorem. -/ +theorem deepMindABPhiTheta_existsUnique_of_twoAngleEnclosure + (hangle : TwoAngleEnclosureTarget) : + ∃! ABphiTheta : ℝ × ℝ × ℝ × ℝ, + DeepMindABPhiThetaSpec + ABphiTheta.1 ABphiTheta.2.1 ABphiTheta.2.2.1 ABphiTheta.2.2.2 := + deepMindABPhiTheta_existsUnique_of_globalEnclosure + (globalEnclosureTarget_of_twoAngleEnclosure hangle) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Part E03: division-free two-angle residuals and interval rejection kernel + +E02 reduced the four-variable DeepMind system to two angles, but its +reconstructed values contain a quotient. Direct interval evaluation of that +quotient is unnecessarily singular near the corner where its denominator can +vanish. + +This module clears the denominator exactly. It proves that, whenever the E02 +denominator is nonzero, the two original reconstructed equations are +equivalent to two smooth residuals containing only addition, multiplication, +`sin`, `cos`, and the named constant `pi`. + +The same residuals are encoded as LeanCert expressions. The final theorem is +a reusable, executable cell-rejection kernel: if certified interval evaluation +of either residual excludes zero on a rational rectangle, no common zero can +lie in that rectangle. E03 intentionally does not postulate a global cover; +the finite branch-and-bound cover is the next data layer. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +open LeanCert.Core +open LeanCert.Engine +open PartALeanCert + +/-- First reconstructed E02 equation, written as a residual. -/ +def firstReconstructedResidual (phi theta : ℝ) : ℝ := + reconstructedA phi theta * (Real.cos theta - Real.cos phi) + - 2 * reconstructedB phi theta * Real.sin phi + + (theta - phi - 1) * Real.cos theta - Real.sin theta + + Real.cos phi + Real.sin phi + +/-- Second reconstructed E02 equation, written as a residual. -/ +def secondReconstructedResidual (phi theta : ℝ) : ℝ := + reconstructedA phi theta * (3 * Real.sin theta + Real.sin phi) + - 2 * reconstructedB phi theta * Real.cos phi + + 3 * (theta - phi - 1) * Real.sin theta + 3 * Real.cos theta + - Real.sin phi + Real.cos phi + +/-- Numerator of `denominator * reconstructedB`, with no division. -/ +def scaledB (phi theta : ℝ) : ℝ := + angleNumerator phi theta * (1 + angleDelta phi theta / 2) + + bBase phi theta * angleDenominator phi theta + +/-- Division-free first residual. -/ +def scaledResidualOne (phi theta : ℝ) : ℝ := + angleNumerator phi theta * (Real.cos theta - Real.cos phi) + - 2 * scaledB phi theta * Real.sin phi + + (angleDelta phi theta - 1) * Real.cos theta + * angleDenominator phi theta + - Real.sin theta * angleDenominator phi theta + + Real.cos phi * angleDenominator phi theta + + Real.sin phi * angleDenominator phi theta + +/-- Division-free second residual. -/ +def scaledResidualTwo (phi theta : ℝ) : ℝ := + angleNumerator phi theta * (3 * Real.sin theta + Real.sin phi) + - 2 * scaledB phi theta * Real.cos phi + + 3 * (angleDelta phi theta - 1) * Real.sin theta + * angleDenominator phi theta + + 3 * Real.cos theta * angleDenominator phi theta + - Real.sin phi * angleDenominator phi theta + + Real.cos phi * angleDenominator phi theta + +/-- The cleared numerator is exactly `denominator * reconstructedB`. -/ +theorem denominator_mul_reconstructedB_eq_scaledB + (phi theta : ℝ) (hden : angleDenominator phi theta ≠ 0) : + angleDenominator phi theta * reconstructedB phi theta = + scaledB phi theta := by + dsimp [reconstructedB, bFromA, reconstructedA, scaledB] + field_simp [hden] + +/-- The first smooth residual is the original residual multiplied by the +E02 denominator. -/ +theorem scaledResidualOne_eq_denominator_mul + (phi theta : ℝ) (hden : angleDenominator phi theta ≠ 0) : + scaledResidualOne phi theta = + angleDenominator phi theta * firstReconstructedResidual phi theta := by + have hA : angleDenominator phi theta * reconstructedA phi theta = + angleNumerator phi theta := by + dsimp [reconstructedA] + field_simp [hden] + have hB := denominator_mul_reconstructedB_eq_scaledB phi theta hden + unfold scaledResidualOne firstReconstructedResidual + rw [← hA, ← hB] + dsimp [angleDelta] + ring + +/-- The second smooth residual is the original residual multiplied by the +E02 denominator. -/ +theorem scaledResidualTwo_eq_denominator_mul + (phi theta : ℝ) (hden : angleDenominator phi theta ≠ 0) : + scaledResidualTwo phi theta = + angleDenominator phi theta * secondReconstructedResidual phi theta := by + have hA : angleDenominator phi theta * reconstructedA phi theta = + angleNumerator phi theta := by + dsimp [reconstructedA] + field_simp [hden] + have hB := denominator_mul_reconstructedB_eq_scaledB phi theta hden + unfold scaledResidualTwo secondReconstructedResidual + rw [← hA, ← hB] + dsimp [angleDelta] + ring + +/-- E02's two equations are exactly the vanishing of the two ordinary +reconstructed residuals. -/ +theorem twoAngleEquations_iff_reconstructedResiduals_zero + (phi theta : ℝ) : + TwoAngleEquations phi theta ↔ + firstReconstructedResidual phi theta = 0 ∧ + secondReconstructedResidual phi theta = 0 := by + rfl + +/-- Exact denominator-clearing equivalence used by the interval layer. -/ +theorem twoAngleEquations_iff_scaledResiduals_zero + (phi theta : ℝ) (hden : angleDenominator phi theta ≠ 0) : + TwoAngleEquations phi theta ↔ + scaledResidualOne phi theta = 0 ∧ + scaledResidualTwo phi theta = 0 := by + rw [twoAngleEquations_iff_reconstructedResiduals_zero] + rw [scaledResidualOne_eq_denominator_mul phi theta hden] + rw [scaledResidualTwo_eq_denominator_mul phi theta hden] + constructor + · rintro ⟨h1, h2⟩ + simp [h1, h2] + · rintro ⟨h1, h2⟩ + exact ⟨(mul_eq_zero.mp h1).resolve_left hden, + (mul_eq_zero.mp h2).resolve_left hden⟩ + +/-- The complete E02 specification with only smooth equations in its final +conjunct. -/ +def ScaledTwoAngleSpec (phi theta : ℝ) : Prop := + PhysicalAngleDomain phi theta ∧ + angleDenominator phi theta ≠ 0 ∧ + 0 ≤ reconstructedA phi theta ∧ + 0 ≤ reconstructedB phi theta ∧ + scaledResidualOne phi theta = 0 ∧ + scaledResidualTwo phi theta = 0 + +/-- No mathematical information is lost by clearing the denominator. -/ +theorem twoAngleSpec_iff_scaledTwoAngleSpec (phi theta : ℝ) : + TwoAngleSpec phi theta ↔ ScaledTwoAngleSpec phi theta := by + constructor + · rintro ⟨hdom, hden, hA, hB, heq⟩ + exact ⟨hdom, hden, hA, hB, + (twoAngleEquations_iff_scaledResiduals_zero phi theta hden).1 heq⟩ + · rintro ⟨hdom, hden, hA, hB, heq⟩ + exact ⟨hdom, hden, hA, hB, + (twoAngleEquations_iff_scaledResiduals_zero phi theta hden).2 heq⟩ + +/-- E02's remaining enclosure target, now stated over division-free +equations. -/ +def ScaledResidualEnclosureTarget : Prop := + ∀ phi theta : ℝ, + ScaledTwoAngleSpec phi theta → reconstructedParams phi theta ∈ Reduced.box + +/-- The smooth-residual enclosure target is exactly the E02 target. -/ +theorem scaledResidualEnclosureTarget_iff_twoAngleEnclosureTarget : + ScaledResidualEnclosureTarget ↔ TwoAngleEnclosureTarget := by + constructor + · intro h phi theta hspec + exact h phi theta ((twoAngleSpec_iff_scaledTwoAngleSpec phi theta).1 hspec) + · intro h phi theta hspec + exact h phi theta ((twoAngleSpec_iff_scaledTwoAngleSpec phi theta).2 hspec) + +/-! ## LeanCert expression model -/ + +/-- LeanCert AST for the two division-free residuals. Variable 0 is `phi` +and variable 1 is `theta`. -/ +def scaledResidualExprList : List Expr := + let phi := ev 0 + let theta := ev 1 + let one := ec 1 + let half := ec (1 / 2) + let delta := esub theta phi + let cp := ecos phi + let sp := esin phi + let ct := ecos theta + let st := esin theta + let base := + eadd + (eadd (esub (esub (escale (1 / 2) epi) phi) theta) + (escale (1 / 2) delta)) + (escale (1 / 4) (emul delta delta)) + let den := esub cp (emul (eadd one (escale (1 / 2) delta)) sp) + let num := + eadd + (eadd (eadd sp half) (eneg (escale (1 / 2) cp))) + (emul base sp) + let numB := + eadd (emul num (eadd one (escale (1 / 2) delta))) (emul base den) + let r1 := + eadd + (eadd + (eadd + (eadd + (esub (emul num (esub ct cp)) (emul (escale 2 numB) sp)) + (emul (emul (esub delta one) ct) den)) + (eneg (emul st den))) + (emul cp den)) + (emul sp den) + let r2 := + eadd + (eadd + (eadd + (eadd + (esub (emul num (eadd (escale 3 st) sp)) + (emul (escale 2 numB) cp)) + (emul (emul (escale 3 (esub delta one)) st) den)) + (emul (escale 3 ct) den)) + (eneg (emul sp den))) + (emul cp den) + r1 :: r2 :: [] + +/-- Select one of the two scaled residual expressions for the angle system. -/ +def scaledResidualExpr (i : Fin 2) : Expr := + scaledResidualExprList.getD i.1 (ec 0) + +/-- Both ASTs belong to LeanCert's fully proved core and AD fragment. -/ +theorem scaledResidualExpr_supported : + ∀ i : Fin 2, ADConstSupported (scaledResidualExpr i) := by + intro i + apply checkADConstSupported_correct + fin_cases i <;> decide +theorem scaledResidualExpr_eval_zero (phi theta : ℝ) : + evalFin (scaledResidualExpr (0 : Fin 2)) ![phi, theta] = + scaledResidualOne phi theta := by + simp [scaledResidualExpr, scaledResidualExprList, scaledResidualOne, scaledB, + angleNumerator, angleDenominator, bBase, angleDelta, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv]; ring +theorem scaledResidualExpr_eval_one (phi theta : ℝ) : + evalFin (scaledResidualExpr (1 : Fin 2)) ![phi, theta] = + scaledResidualTwo phi theta := by + simp [scaledResidualExpr, scaledResidualExprList, scaledResidualTwo, scaledB, + angleNumerator, angleDenominator, bBase, angleDelta, + eadd, eneg, esub, emul, escale, esin, ecos, ec, ev, epi, + evalFin, finEnv]; ring + +/-- Rational interval environment for the two angle variables. -/ +def angleIntervalEnv (phiI thetaI : IntervalRat) : IntervalEnv + | 0 => phiI + | 1 => thetaI + | _ => default + +/-- Executable test that an interval lies strictly on one side of zero. -/ +def intervalExcludesZero (I : IntervalRat) : Bool := + decide (I.hi < 0 ∨ 0 < I.lo) + +/-- The executable zero-exclusion test is sound over real interval +membership. -/ +theorem intervalExcludesZero_sound (I : IntervalRat) + (h : intervalExcludesZero I = true) : (0 : ℝ) ∉ I := by + have hrat : I.hi < 0 ∨ 0 < I.lo := by + exact of_decide_eq_true h + intro hmem + rw [IntervalRat.mem_def] at hmem + rcases hrat with hhi | hlo + · have hhi' : (I.hi : ℝ) < 0 := by exact_mod_cast hhi + linarith + · have hlo' : 0 < (I.lo : ℝ) := by exact_mod_cast hlo + linarith + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Part E04: finite-cover replay foundation + +E03 supplied a sound, executable rejection theorem for one rational rectangle +in the `(phi, theta)` plane. This module lifts that kernel to finite lists of +rectangles and states the exact two remaining data obligations: + +1. a finite rejected cover of the physical angle triangle outside the angle + projection of `Reduced.box`; +2. local reconstruction into `Reduced.box` inside that angle projection. + +Their conjunction yields `TwoAngleEnclosureTarget` and therefore the exact +DeepMind-shaped uniqueness theorem. No cover or local enclosure is assumed as +an axiom: both remain ordinary theorem arguments. + +The module also replays one nontrivial pilot rectangle near the origin. This +checks the complete path from rational cell data through LeanCert interval +evaluation to the no-common-zero theorem before the large cover is generated. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +open LeanCert.Core +open LeanCert.Engine +open PartALeanCert + +/-- Kernel-reducible interval evaluation for one smooth residual. This uses +the already certified project-specialized interval for `pi`, avoiding the +generic named-constant normalization bottleneck in closed `decide` replays. -/ +def scaledResidualKernelInterval (i : Fin 2) + (phiI thetaI : IntervalRat) (cfg : EvalConfig := {}) : IntervalRat := + kernelPointEvalCore (scaledResidualExpr i) + (angleIntervalEnv phiI thetaI) cfg.taylorDepth + +/-- Soundness of the kernel-reducible residual evaluator. -/ +theorem scaledResidual_mem_kernelInterval (i : Fin 2) + (phi theta : ℝ) (phiI thetaI : IntervalRat) + (hphi : phi ∈ phiI) (htheta : theta ∈ thetaI) + (cfg : EvalConfig := {}) : + (if i = 0 then scaledResidualOne phi theta + else scaledResidualTwo phi theta) ∈ + scaledResidualKernelInterval i phiI thetaI cfg := by + let u : Fin 2 → ℝ := ![phi, theta] + have henv : envMem (finEnv u) (angleIntervalEnv phiI thetaI) := by + intro n + rcases n with (_ | _ | n) + · simpa [u, finEnv, angleIntervalEnv] using hphi + · simpa [u, finEnv, angleIntervalEnv] using htheta + · change finEnv u (Nat.succ (Nat.succ n)) ∈ (default : IntervalRat) + rw [IntervalRat.mem_default] + simp [finEnv] + have hcore := eval_mem_kernelPointEvalCore + (scaledResidualExpr_supported i) (finEnv u) + (angleIntervalEnv phiI thetaI) henv cfg.taylorDepth + change evalFin (scaledResidualExpr i) u ∈ + scaledResidualKernelInterval i phiI thetaI cfg at hcore + fin_cases i + · simpa [u, scaledResidualExpr_eval_zero] using hcore + · simpa [u, scaledResidualExpr_eval_one] using hcore + +/-- A rational rectangle in the two-angle plane. -/ +structure AngleCell where + /-- The rational interval for the first switching angle φ. -/ + phiI : IntervalRat + /-- The rational interval for the second switching angle θ. -/ + thetaI : IntervalRat + +namespace AngleCell + +/-- Real point membership in a rational angle cell. -/ +def Contains (cell : AngleCell) (phi theta : ℝ) : Prop := + phi ∈ cell.phiI ∧ theta ∈ cell.thetaI + +/-- Executable E03 rejection test for a complete angle cell. -/ +def rejected (cell : AngleCell) (cfg : EvalConfig := {}) : Bool := + intervalExcludesZero + (scaledResidualKernelInterval (0 : Fin 2) cell.phiI cell.thetaI cfg) || + intervalExcludesZero + (scaledResidualKernelInterval (1 : Fin 2) cell.phiI cell.thetaI cfg) + +/-- A cell accepted by the executable checker contains no common zero of the +two smooth residuals. -/ +theorem no_common_zero_of_rejected + (cell : AngleCell) (phi theta : ℝ) + (hmem : cell.Contains phi theta) + (cfg : EvalConfig := {}) + (hreject : cell.rejected cfg = true) : + ¬ (scaledResidualOne phi theta = 0 ∧ + scaledResidualTwo phi theta = 0) := by + have hreject' : + intervalExcludesZero + (scaledResidualKernelInterval + (0 : Fin 2) cell.phiI cell.thetaI cfg) = true ∨ + intervalExcludesZero + (scaledResidualKernelInterval + (1 : Fin 2) cell.phiI cell.thetaI cfg) = true := by + simpa only [rejected, Bool.or_eq_true] using hreject + rintro ⟨hzero1, hzero2⟩ + rcases hreject' with hreject' | hreject' + · have hmem' := scaledResidual_mem_kernelInterval (0 : Fin 2) + phi theta cell.phiI cell.thetaI hmem.1 hmem.2 cfg + have hnot := intervalExcludesZero_sound _ hreject' + apply hnot + simpa [hzero1] using hmem' + · have hmem' := scaledResidual_mem_kernelInterval (1 : Fin 2) + phi theta cell.phiI cell.thetaI hmem.1 hmem.2 cfg + have hnot := intervalExcludesZero_sound _ hreject' + apply hnot + simpa [hzero2] using hmem' + +end AngleCell + +/-! ## Pilot replay -/ + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Part E21F: local two-angle Krawczyk closure repair + +The residual-only cover becomes inefficient close to the certified Gerver +zero. This module replaces arbitrarily deep subdivision there by a single +two-dimensional contraction certificate on a deliberately wider rational +box. The wide box contains both the exact projection of `Reduced.box` and +the complete unresolved E19 tail. + +The resulting theorem identifies every smooth residual zero in the wide box +with the already certified Part A reduced solution. A terminal composition +theorem therefore needs interval rejection only outside this wide local box. +-/ + +/-! ## Concrete two-dimensional contraction data -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +open LeanCert.Core +open LeanCert.Engine +open PartALeanCert + +/-- Local angle box containing the complete unresolved E20 tail and the exact +angle projection of `Reduced.box`. E21F narrows the exploratory E21 box to +the region actually required by the recorded E20 extrema. -/ +def localAngleX : Fin 2 → IntervalRat := ![ + ⟨391 / 10000, 157 / 4000, by norm_num⟩, + ⟨68113 / 100000, 34069 / 50000, by norm_num⟩ +] + +/-- Rational center near the already certified Gerver zero. -/ +def localAngleCenter : Fin 2 → ℚ := ![ + 3917736479 / 100000000000, + 681301509383 / 1000000000000 +] + +/-- Rational approximation to the inverse Jacobian of the two scaled +residuals at `localAngleCenter`. -/ +def localAngleY : Matrix (Fin 2) (Fin 2) ℚ := ![ + ![-2886 / 10000, -1481 / 10000], + ![6267 / 10000, -27218 / 10000] +] + +/-- The default interval-evaluation configuration for local angle certification. -/ +def localAngleCfg : EvalConfig := {} + +/-- Contraction constant used by the checked local uniqueness theorem. -/ +def localAngleQ : ℚ := 3 / 10 + +/-- Enclose the preconditioned Newton derivative on the local two-angle box. -/ +def localAnglePJ : Matrix (Fin 2) (Fin 2) IntervalRat := + preconditionedJacobian localAngleY + (intervalJacobian scaledResidualExpr localAngleX localAngleCfg) + +/-- Enclose the local Newton image using the certified contraction bound. -/ +def localAngleImage (i : Fin 2) : IntervalRat := + imageEnclosureWithQ scaledResidualExpr localAngleX localAngleCenter + localAngleY localAngleCfg localAngleQ i + +theorem localAngleQ_nonneg : (0 : ℚ) ≤ localAngleQ := by + norm_num [localAngleQ] + +theorem localAngleQ_lt_one : localAngleQ < (1 : ℚ) := by + norm_num [localAngleQ] + +theorem localAngleCenter_mem : + FinBoxMem (fun i : Fin 2 => (localAngleCenter i : ℝ)) localAngleX := by + intro i + fin_cases i <;> + simp [localAngleCenter, localAngleX, IntervalRat.mem_def] <;> + norm_num +theorem localAngle_bound_lt : + intervalMatrixBound localAnglePJ < localAngleQ := by + decide +kernel + +theorem localAngle_bound_le : + intervalMatrixBound localAnglePJ ≤ localAngleQ := + localAngle_bound_lt.le +theorem localAngle_image_zero_inside : + intervalStrictInside (localAngleImage (0 : Fin 2)) + (localAngleX (0 : Fin 2)) = true := by + decide +kernel +theorem localAngle_image_one_inside : + intervalStrictInside (localAngleImage (1 : Fin 2)) + (localAngleX (1 : Fin 2)) = true := by + decide +kernel + +theorem localAngle_images_inside : + ∀ i : Fin 2, + intervalStrictInside (localAngleImage i) (localAngleX i) = true := by + intro i + fin_cases i + · exact localAngle_image_zero_inside + · exact localAngle_image_one_inside + +/-- Kernel-checked existence and uniqueness of a common scaled-residual zero +throughout the complete wide local box. -/ +theorem localAngle_unique_scaled : + ∃! u, FinBoxMem u localAngleX ∧ SystemZero scaledResidualExpr u := by + exact uniqueSystemZero_of_certified_contraction + scaledResidualExpr scaledResidualExpr_supported + localAngleX localAngleCenter localAngleCenter_mem + localAngleY localAngleCfg localAngleQ + localAngleQ_nonneg localAngleQ_lt_one + (by simpa [localAnglePJ] using localAngle_bound_le) + (by simpa [localAngleImage] using localAngle_images_inside) + +/-! ## Semantic bridge to named angles and the Part A solution -/ + +/-- The two-angle cell corresponding to the certified local interval box. -/ +def localAngleCell : AngleCell := + ⟨localAngleX (0 : Fin 2), localAngleX (1 : Fin 2)⟩ + +/-- Package the two switching angles as a two-coordinate real vector. -/ +def localAngleVector (phi theta : ℝ) : Fin 2 → ℝ := ![phi, theta] + +theorem localAngleVector_mem_iff (phi theta : ℝ) : + FinBoxMem (localAngleVector phi theta) localAngleX ↔ + localAngleCell.Contains phi theta := by + constructor + · intro h + exact ⟨by simpa [localAngleVector, localAngleCell] using h (0 : Fin 2), + by simpa [localAngleVector, localAngleCell] using h (1 : Fin 2)⟩ + · rintro ⟨hphi, htheta⟩ i + fin_cases i + · simpa [localAngleVector, localAngleCell] using hphi + · simpa [localAngleVector, localAngleCell] using htheta + +theorem localAngleVector_systemZero_iff (phi theta : ℝ) : + SystemZero scaledResidualExpr (localAngleVector phi theta) ↔ + scaledResidualOne phi theta = 0 ∧ scaledResidualTwo phi theta = 0 := by + constructor + · intro h + constructor + · have hzero := h (0 : Fin 2) + change evalFin (scaledResidualExpr (0 : Fin 2)) + (localAngleVector phi theta) = 0 at hzero + simpa [localAngleVector, scaledResidualExpr_eval_zero] using hzero + · have hzero := h (1 : Fin 2) + change evalFin (scaledResidualExpr (1 : Fin 2)) + (localAngleVector phi theta) = 0 at hzero + simpa [localAngleVector, scaledResidualExpr_eval_one] using hzero + · rintro ⟨hzeroOne, hzeroTwo⟩ i + fin_cases i + · change evalFin (scaledResidualExpr (0 : Fin 2)) + (localAngleVector phi theta) = 0 + simpa [localAngleVector, scaledResidualExpr_eval_zero] using hzeroOne + · change evalFin (scaledResidualExpr (1 : Fin 2)) + (localAngleVector phi theta) = 0 + simpa [localAngleVector, scaledResidualExpr_eval_one] using hzeroTwo + +/-- The reduced parameter tuple selected by the concrete uniqueness certificate. -/ +def certifiedReducedSolution : Reduced.Params := + PartALeanCert.reducedCertifiedUniqueSolution.solution + +theorem certifiedReducedSolution_mem : + certifiedReducedSolution ∈ Reduced.box := by + exact PartALeanCert.reducedCertifiedUniqueSolution.solution_mem + +theorem certifiedReducedSolution_satisfies : + Reduced.Equations certifiedReducedSolution := by + exact PartALeanCert.reducedCertifiedUniqueSolution.satisfies + +/-- The Part A solution's angle pair lies strictly inside the wide local +box, by exact rational endpoint comparison. -/ +theorem certifiedAngles_mem_localAngleCell : + localAngleCell.Contains + certifiedReducedSolution.phi certifiedReducedSolution.theta := by + have hp := certifiedReducedSolution_mem + dsimp [Reduced.box, qR] at hp + rcases hp with + ⟨_haLo, _haHi, _hbLo, _hbHi, + hphiLo, hphiHi, hthetaLo, hthetaHi⟩ + change + certifiedReducedSolution.phi ∈ localAngleX (0 : Fin 2) ∧ + certifiedReducedSolution.theta ∈ localAngleX (1 : Fin 2) + constructor + · change + (((391 / 10000 : ℚ) : ℝ) ≤ certifiedReducedSolution.phi ∧ + certifiedReducedSolution.phi ≤ ((157 / 4000 : ℚ) : ℝ)) + constructor + · norm_num at hphiLo ⊢ + linarith + · norm_num at hphiHi ⊢ + linarith + · change + (((68113 / 100000 : ℚ) : ℝ) ≤ certifiedReducedSolution.theta ∧ + certifiedReducedSolution.theta ≤ ((34069 / 50000 : ℚ) : ℝ)) + constructor + · norm_num at hthetaLo ⊢ + linarith + · norm_num at hthetaHi ⊢ + linarith + +theorem certifiedAngles_mem_localAngleX : + FinBoxMem + (localAngleVector certifiedReducedSolution.phi + certifiedReducedSolution.theta) localAngleX := + (localAngleVector_mem_iff _ _).2 certifiedAngles_mem_localAngleCell + +theorem certifiedAngles_systemZero : + SystemZero scaledResidualExpr + (localAngleVector certifiedReducedSolution.phi + certifiedReducedSolution.theta) := by + have hdeep : DeepMindABPhiThetaSpec + certifiedReducedSolution.a certifiedReducedSolution.b + certifiedReducedSolution.phi certifiedReducedSolution.theta := + deepMindSpec_of_mem_reducedBox_and_equations + certifiedReducedSolution_mem certifiedReducedSolution_satisfies + have htwo : TwoAngleSpec + certifiedReducedSolution.phi certifiedReducedSolution.theta := + (exists_deepMindSpec_iff_twoAngleSpec + certifiedReducedSolution.phi certifiedReducedSolution.theta).1 + ⟨certifiedReducedSolution.a, certifiedReducedSolution.b, hdeep⟩ + have hscaled := + (twoAngleSpec_iff_scaledTwoAngleSpec + certifiedReducedSolution.phi certifiedReducedSolution.theta).1 htwo + rcases hscaled with ⟨_hdom, _hden, _hA, _hB, hzeroOne, hzeroTwo⟩ + exact (localAngleVector_systemZero_iff _ _).2 ⟨hzeroOne, hzeroTwo⟩ + +/-- Every smooth physical solution in the wide local cell reconstructs to +the already certified Part A solution and hence belongs to `Reduced.box`. -/ +theorem reconstructedParams_mem_reducedBox_of_mem_localAngleCell + {phi theta : ℝ} (hspec : ScaledTwoAngleSpec phi theta) + (hlocal : localAngleCell.Contains phi theta) : + reconstructedParams phi theta ∈ Reduced.box := by + have hmem : FinBoxMem (localAngleVector phi theta) localAngleX := + (localAngleVector_mem_iff phi theta).2 hlocal + have hzero : SystemZero scaledResidualExpr (localAngleVector phi theta) := + (localAngleVector_systemZero_iff phi theta).2 + ⟨hspec.2.2.2.2.1, hspec.2.2.2.2.2⟩ + have heq : + localAngleVector phi theta = + localAngleVector certifiedReducedSolution.phi + certifiedReducedSolution.theta := + localAngle_unique_scaled.unique ⟨hmem, hzero⟩ + ⟨certifiedAngles_mem_localAngleX, certifiedAngles_systemZero⟩ + have hphi : phi = certifiedReducedSolution.phi := by + have h := congrFun heq (0 : Fin 2) + simpa [localAngleVector] using h + have htheta : theta = certifiedReducedSolution.theta := by + have h := congrFun heq (1 : Fin 2) + simpa [localAngleVector] using h + have hdeep : DeepMindABPhiThetaSpec + certifiedReducedSolution.a certifiedReducedSolution.b + certifiedReducedSolution.phi certifiedReducedSolution.theta := + deepMindSpec_of_mem_reducedBox_and_equations + certifiedReducedSolution_mem certifiedReducedSolution_satisfies + have hA := a_eq_reconstructed_of_physical_and_equations hdeep.1 hdeep.2 + have hB := b_eq_reconstructed_of_physical_and_equations hdeep.1 hdeep.2 + rw [hphi, htheta] + change reducedParams + (reconstructedA certifiedReducedSolution.phi + certifiedReducedSolution.theta) + (reconstructedB certifiedReducedSolution.phi + certifiedReducedSolution.theta) + certifiedReducedSolution.phi certifiedReducedSolution.theta ∈ Reduced.box + rw [← hA, ← hB] + simpa [reducedParams] using certifiedReducedSolution_mem + +/-! ## Terminal composition with rejection only outside the wide box -/ + +/-- Solutions in the local angle cell reconstruct into the reduced parameter box. -/ +def WideLocalReconstructionEnclosureTarget : Prop := + ∀ phi theta : ℝ, + ScaledTwoAngleSpec phi theta → + localAngleCell.Contains phi theta → + reconstructedParams phi theta ∈ Reduced.box + +theorem wideLocalReconstructionEnclosureTarget : + WideLocalReconstructionEnclosureTarget := by + intro phi theta hspec hlocal + exact reconstructedParams_mem_reducedBox_of_mem_localAngleCell hspec hlocal + +/-! Machine-readable replay markers consumed by the E21 runner. -/ + +/- Exact diagnostic values are printed even if a later repair run stops at a +closed Boolean theorem. -/ + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Part E22F foundation: adaptive global cover + +This module replaces the probe-only upper-wedge files by one kernel-reducible +adaptive checker. Starting from the rational square `[0, 4/5]^2`, it prunes +cells which are outside the physical triangle, cells wholly contained in the +wide E21 local box, and cells rejected by the certified E03 interval kernel. +Every remaining cell is split into four exact rational children. Depth 18 is +the depth reached by the final E20 refinement around the Gerver root. + +The soundness theorem is independent of the closed computation. E22F compiles +the depth-18 Boolean certificate in sixty-four independent depth-15 modules; +`ParallelAdaptiveGlobalCoverClosure` recombines them without recomputation. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +open LeanCert.Core + +/-- The rational midpoint of an angle interval. -/ +def angleMid (i : IntervalRat) : ℚ := (i.lo + i.hi) / 2 + +/-- The closed lower half of a rational interval. -/ +def intervalLow (i : IntervalRat) : IntervalRat := + ⟨i.lo, angleMid i, by + dsimp [angleMid] + linarith [i.le]⟩ + +/-- The closed upper half of a rational interval. -/ +def intervalHigh (i : IntervalRat) : IntervalRat := + ⟨angleMid i, i.hi, by + dsimp [angleMid] + linarith [i.le]⟩ + +/-- Bisect both angle intervals and select the lower φ half and lower θ half. -/ +def childLL (cell : AngleCell) : AngleCell := + ⟨intervalLow cell.phiI, intervalLow cell.thetaI⟩ + +/-- Bisect both angle intervals and select the lower φ half and upper θ half. -/ +def childLH (cell : AngleCell) : AngleCell := + ⟨intervalLow cell.phiI, intervalHigh cell.thetaI⟩ + +/-- Bisect both angle intervals and select the upper φ half and lower θ half. -/ +def childHL (cell : AngleCell) : AngleCell := + ⟨intervalHigh cell.phiI, intervalLow cell.thetaI⟩ + +/-- Bisect both angle intervals and select the upper φ half and upper θ half. -/ +def childHH (cell : AngleCell) : AngleCell := + ⟨intervalHigh cell.phiI, intervalHigh cell.thetaI⟩ + +/-- A rational cell lies strictly above the physical half-plane `phi ≤ theta`. +The strict comparison deliberately keeps all cells touching the diagonal. -/ +def physicallyIrrelevant (cell : AngleCell) : Bool := + decide (cell.thetaI.hi < cell.phiI.lo) + +/-- Every point of the rational cell lies in the wide E21 local box. -/ +def cellInsideLocal (cell : AngleCell) : Bool := + decide ( + localAngleCell.phiI.lo ≤ cell.phiI.lo ∧ + cell.phiI.hi ≤ localAngleCell.phiI.hi ∧ + localAngleCell.thetaI.lo ≤ cell.thetaI.lo ∧ + cell.thetaI.hi ≤ localAngleCell.thetaI.hi) + +/-- Adaptive four-way replay. A node closes when it is irrelevant, local, or +rejected. Otherwise all four rational midpoint children must close. -/ +def adaptiveCoverCheck : Nat → AngleCell → Bool + | 0, cell => + if physicallyIrrelevant cell = true then true + else if cellInsideLocal cell = true then true + else cell.rejected + | depth + 1, cell => + if physicallyIrrelevant cell = true then true + else if cellInsideLocal cell = true then true + else if cell.rejected = true then true + else + adaptiveCoverCheck depth (childLL cell) && + (adaptiveCoverCheck depth (childLH cell) && + (adaptiveCoverCheck depth (childHL cell) && + adaptiveCoverCheck depth (childHH cell))) + +theorem physicallyIrrelevant_no_physical_point + (cell : AngleCell) (phi theta : ℝ) + (hirr : physicallyIrrelevant cell = true) + (hdom : PhysicalAngleDomain phi theta) + (hmem : cell.Contains phi theta) : False := by + have hrat : cell.thetaI.hi < cell.phiI.lo := by + exact of_decide_eq_true hirr + have hreal : (cell.thetaI.hi : ℝ) < (cell.phiI.lo : ℝ) := by + exact_mod_cast hrat + change phi ∈ cell.phiI ∧ theta ∈ cell.thetaI at hmem + simp only [IntervalRat.mem_def] at hmem + linarith [hdom.2.1, hmem.1.1, hmem.2.2] + +theorem cellInsideLocal_sound + (cell : AngleCell) (phi theta : ℝ) + (hlocal : cellInsideLocal cell = true) + (hmem : cell.Contains phi theta) : + localAngleCell.Contains phi theta := by + have hb : + localAngleCell.phiI.lo ≤ cell.phiI.lo ∧ + cell.phiI.hi ≤ localAngleCell.phiI.hi ∧ + localAngleCell.thetaI.lo ≤ cell.thetaI.lo ∧ + cell.thetaI.hi ≤ localAngleCell.thetaI.hi := by + exact of_decide_eq_true hlocal + change phi ∈ cell.phiI ∧ theta ∈ cell.thetaI at hmem + change phi ∈ localAngleCell.phiI ∧ theta ∈ localAngleCell.thetaI + simp only [IntervalRat.mem_def] at hmem ⊢ + have hpLo : (localAngleCell.phiI.lo : ℝ) ≤ (cell.phiI.lo : ℝ) := by + exact_mod_cast hb.1 + have hpHi : (cell.phiI.hi : ℝ) ≤ (localAngleCell.phiI.hi : ℝ) := by + exact_mod_cast hb.2.1 + have htLo : (localAngleCell.thetaI.lo : ℝ) ≤ (cell.thetaI.lo : ℝ) := by + exact_mod_cast hb.2.2.1 + have htHi : (cell.thetaI.hi : ℝ) ≤ (localAngleCell.thetaI.hi : ℝ) := by + exact_mod_cast hb.2.2.2 + exact ⟨⟨hpLo.trans hmem.1.1, hmem.1.2.trans hpHi⟩, + ⟨htLo.trans hmem.2.1, hmem.2.2.trans htHi⟩⟩ + +/-- Every real point in a parent cell belongs to at least one of its four +closed midpoint children. -/ +theorem contains_some_midpoint_child + (cell : AngleCell) (phi theta : ℝ) + (hmem : cell.Contains phi theta) : + (childLL cell).Contains phi theta ∨ + (childLH cell).Contains phi theta ∨ + (childHL cell).Contains phi theta ∨ + (childHH cell).Contains phi theta := by + change phi ∈ cell.phiI ∧ theta ∈ cell.thetaI at hmem + simp only [IntervalRat.mem_def] at hmem + by_cases hp : phi ≤ (angleMid cell.phiI : ℝ) + · by_cases ht : theta ≤ (angleMid cell.thetaI : ℝ) + · left + change phi ∈ intervalLow cell.phiI ∧ theta ∈ intervalLow cell.thetaI + simp only [IntervalRat.mem_def, intervalLow] + exact ⟨⟨hmem.1.1, hp⟩, ⟨hmem.2.1, ht⟩⟩ + · right; left + have ht' : (angleMid cell.thetaI : ℝ) ≤ theta := + le_of_lt (lt_of_not_ge ht) + change phi ∈ intervalLow cell.phiI ∧ theta ∈ intervalHigh cell.thetaI + simp only [IntervalRat.mem_def, intervalLow, intervalHigh] + exact ⟨⟨hmem.1.1, hp⟩, ⟨ht', hmem.2.2⟩⟩ + · have hp' : (angleMid cell.phiI : ℝ) ≤ phi := + le_of_lt (lt_of_not_ge hp) + by_cases ht : theta ≤ (angleMid cell.thetaI : ℝ) + · right; right; left + change phi ∈ intervalHigh cell.phiI ∧ theta ∈ intervalLow cell.thetaI + simp only [IntervalRat.mem_def, intervalLow, intervalHigh] + exact ⟨⟨hp', hmem.1.2⟩, ⟨hmem.2.1, ht⟩⟩ + · right; right; right + have ht' : (angleMid cell.thetaI : ℝ) ≤ theta := + le_of_lt (lt_of_not_ge ht) + change phi ∈ intervalHigh cell.phiI ∧ theta ∈ intervalHigh cell.thetaI + simp only [IntervalRat.mem_def, intervalHigh] + exact ⟨⟨hp', hmem.1.2⟩, ⟨ht', hmem.2.2⟩⟩ + +/-- Semantic soundness of the adaptive Boolean replay. -/ +theorem adaptiveCoverCheck_no_common_zero + (depth : Nat) (cell : AngleCell) + (hcheck : adaptiveCoverCheck depth cell = true) + (phi theta : ℝ) + (hdom : PhysicalAngleDomain phi theta) + (hmem : cell.Contains phi theta) + (houtside : ¬ localAngleCell.Contains phi theta) : + ¬ (scaledResidualOne phi theta = 0 ∧ + scaledResidualTwo phi theta = 0) := by + induction depth generalizing cell with + | zero => + by_cases hirr : physicallyIrrelevant cell = true + · exact (physicallyIrrelevant_no_physical_point + cell phi theta hirr hdom hmem).elim + by_cases hlocal : cellInsideLocal cell = true + · exact (houtside (cellInsideLocal_sound + cell phi theta hlocal hmem)).elim + have hrejected : cell.rejected = true := by + simpa [adaptiveCoverCheck, hirr, hlocal] using hcheck + exact AngleCell.no_common_zero_of_rejected + cell phi theta hmem (cfg := {}) hrejected + | succ depth ih => + by_cases hirr : physicallyIrrelevant cell = true + · exact (physicallyIrrelevant_no_physical_point + cell phi theta hirr hdom hmem).elim + by_cases hlocal : cellInsideLocal cell = true + · exact (houtside (cellInsideLocal_sound + cell phi theta hlocal hmem)).elim + by_cases hrejected : cell.rejected = true + · exact AngleCell.no_common_zero_of_rejected + cell phi theta hmem (cfg := {}) hrejected + have hchildren : + adaptiveCoverCheck depth (childLL cell) = true ∧ + (adaptiveCoverCheck depth (childLH cell) = true ∧ + (adaptiveCoverCheck depth (childHL cell) = true ∧ + adaptiveCoverCheck depth (childHH cell) = true)) := by + simpa [adaptiveCoverCheck, hirr, hlocal, hrejected, + Bool.and_eq_true] using hcheck + rcases contains_some_midpoint_child cell phi theta hmem with + hll | hlh | hhl | hhh + · exact ih (cell := childLL cell) hchildren.1 hll + · exact ih (cell := childLH cell) hchildren.2.1 hlh + · exact ih (cell := childHL cell) hchildren.2.2.1 hhl + · exact ih (cell := childHH cell) hchildren.2.2.2 hhh + +/-- Rational root containing the complete physical angle triangle. -/ +def globalAngleRoot : AngleCell := + ⟨⟨0, 4 / 5, by norm_num⟩, ⟨0, 4 / 5, by norm_num⟩⟩ + +theorem physicalAngleDomain_mem_globalAngleRoot + (phi theta : ℝ) (hdom : PhysicalAngleDomain phi theta) : + globalAngleRoot.Contains phi theta := by + have hpi := ExactReplay.piI_contains_pi + have hhi : Real.pi ≤ (ExactReplay.piI.hi : ℝ) := hpi.2 + have h32 : (ExactReplay.piI.hi : ℝ) < (16 / 5 : ℝ) := by + norm_num [ExactReplay.piI, ExactReplay.q] + have htheta : theta < (4 / 5 : ℝ) := by + linarith [hdom.2.2] + change phi ∈ (⟨0, 4 / 5, by norm_num⟩ : IntervalRat) ∧ + theta ∈ (⟨0, 4 / 5, by norm_num⟩ : IntervalRat) + simp only [IntervalRat.mem_def] + norm_num at ⊢ + exact ⟨⟨hdom.1, (hdom.2.1.trans htheta.le)⟩, + ⟨hdom.1.trans hdom.2.1, htheta.le⟩⟩ + +/-- A parent closes whenever its four children close. This lemma permits the +depth-18 computation to be compiled in independent shards without changing +the kernel proposition that is certified. -/ +theorem adaptiveCoverCheck_succ_of_children + (depth : Nat) (cell : AngleCell) + (hLL : adaptiveCoverCheck depth (childLL cell) = true) + (hLH : adaptiveCoverCheck depth (childLH cell) = true) + (hHL : adaptiveCoverCheck depth (childHL cell) = true) + (hHH : adaptiveCoverCheck depth (childHH cell) = true) : + adaptiveCoverCheck (depth + 1) cell = true := by + by_cases hirr : physicallyIrrelevant cell = true + · simp [adaptiveCoverCheck, hirr] + by_cases hlocal : cellInsideLocal cell = true + · simp [adaptiveCoverCheck, hirr, hlocal] + by_cases hrejected : cell.rejected = true + · simp [adaptiveCoverCheck, hirr, hlocal, hrejected] + simp [adaptiveCoverCheck, hirr, hlocal, hrejected, hLL, hLH, hHL, hHH] + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# E24 aligned region foundation + +Four rational rectangles are aligned exactly with the four sides of the +wide E21 local angle cell. Their union covers every point of the global +physical angle root that is not in the local cell. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +/-- The exclusion root cell below the local φ interval, with `φ ≤ 391/10000`. -/ +def e24PhiBelowRoot : AngleCell := + ⟨⟨0, 391 / 10000, by norm_num⟩, + ⟨0, 4 / 5, by norm_num⟩⟩ + +/-- The exclusion root cell above the local φ interval, with `157/4000 ≤ φ`. -/ +def e24PhiAboveRoot : AngleCell := + ⟨⟨157 / 4000, 4 / 5, by norm_num⟩, + ⟨0, 4 / 5, by norm_num⟩⟩ + +/-- The exclusion root cell below the local θ interval, with `θ ≤ 68113/100000`. -/ +def e24ThetaBelowRoot : AngleCell := + ⟨⟨0, 4 / 5, by norm_num⟩, + ⟨0, 68113 / 100000, by norm_num⟩⟩ + +/-- The exclusion root cell above the local θ interval, with `34069/50000 ≤ θ`. -/ +def e24ThetaAboveRoot : AngleCell := + ⟨⟨0, 4 / 5, by norm_num⟩, + ⟨34069 / 50000, 4 / 5, by norm_num⟩⟩ + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# E24 aligned-region semantic closure + +This file contains no closed heavy computation. It proves that the four +aligned rectangles cover the complement of the E21 local cell inside the +physical triangle and turns four Boolean adaptive-cover certificates into the +terminal DeepMind-shaped uniqueness theorem. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +open LeanCert.Core + +theorem e24AlignedRoots_cover_outside_local + (phi theta : ℝ) + (hdom : PhysicalAngleDomain phi theta) + (houtside : ¬ localAngleCell.Contains phi theta) : + e24PhiBelowRoot.Contains phi theta ∨ + e24PhiAboveRoot.Contains phi theta ∨ + e24ThetaBelowRoot.Contains phi theta ∨ + e24ThetaAboveRoot.Contains phi theta := by + have hglobal := + physicalAngleDomain_mem_globalAngleRoot phi theta hdom + change + phi ∈ globalAngleRoot.phiI ∧ theta ∈ globalAngleRoot.thetaI at hglobal + simp only [globalAngleRoot, IntervalRat.mem_def] at hglobal + by_cases hpLo : + phi ≤ (((391 / 10000 : ℚ) : ℝ)) + · left + change + phi ∈ e24PhiBelowRoot.phiI ∧ theta ∈ e24PhiBelowRoot.thetaI + simp only [e24PhiBelowRoot, IntervalRat.mem_def] + exact ⟨⟨hglobal.1.1, hpLo⟩, hglobal.2⟩ + by_cases hpHi : + (((157 / 4000 : ℚ) : ℝ)) ≤ phi + · right; left + change + phi ∈ e24PhiAboveRoot.phiI ∧ theta ∈ e24PhiAboveRoot.thetaI + simp only [e24PhiAboveRoot, IntervalRat.mem_def] + exact ⟨⟨hpHi, hglobal.1.2⟩, hglobal.2⟩ + by_cases htLo : + theta ≤ (((68113 / 100000 : ℚ) : ℝ)) + · right; right; left + change + phi ∈ e24ThetaBelowRoot.phiI ∧ theta ∈ e24ThetaBelowRoot.thetaI + simp only [e24ThetaBelowRoot, IntervalRat.mem_def] + exact ⟨hglobal.1, ⟨hglobal.2.1, htLo⟩⟩ + by_cases htHi : + (((34069 / 50000 : ℚ) : ℝ)) ≤ theta + · right; right; right + change + phi ∈ e24ThetaAboveRoot.phiI ∧ theta ∈ e24ThetaAboveRoot.thetaI + simp only [e24ThetaAboveRoot, IntervalRat.mem_def] + exact ⟨hglobal.1, ⟨htHi, hglobal.2.2⟩⟩ + have hphiLo : + (((391 / 10000 : ℚ) : ℝ)) < phi := + lt_of_not_ge hpLo + have hphiHi : + phi < (((157 / 4000 : ℚ) : ℝ)) := + lt_of_not_ge hpHi + have hthetaLo : + (((68113 / 100000 : ℚ) : ℝ)) < theta := + lt_of_not_ge htLo + have hthetaHi : + theta < (((34069 / 50000 : ℚ) : ℝ)) := + lt_of_not_ge htHi + exfalso + apply houtside + change + phi ∈ localAngleCell.phiI ∧ theta ∈ localAngleCell.thetaI + constructor + · change phi ∈ localAngleX (0 : Fin 2) + simp only [localAngleX, IntervalRat.mem_def] + exact ⟨hphiLo.le, hphiHi.le⟩ + · change theta ∈ localAngleX (1 : Fin 2) + simp only [localAngleX, IntervalRat.mem_def] + exact ⟨hthetaLo.le, hthetaHi.le⟩ + +theorem e24NoCommonZeroOutsideLocal_of_alignedChecks + (hPhiBelow : adaptiveCoverCheck 14 e24PhiBelowRoot = true) + (hPhiAbove : adaptiveCoverCheck 16 e24PhiAboveRoot = true) + (hThetaBelow : adaptiveCoverCheck 18 e24ThetaBelowRoot = true) + (hThetaAbove : adaptiveCoverCheck 19 e24ThetaAboveRoot = true) + (phi theta : ℝ) + (hdom : PhysicalAngleDomain phi theta) + (houtside : ¬ localAngleCell.Contains phi theta) : + ¬ (scaledResidualOne phi theta = 0 ∧ + scaledResidualTwo phi theta = 0) := by + rcases e24AlignedRoots_cover_outside_local phi theta hdom houtside with + hmem | hmem | hmem | hmem + · exact adaptiveCoverCheck_no_common_zero + 14 e24PhiBelowRoot hPhiBelow phi theta hdom hmem houtside + · exact adaptiveCoverCheck_no_common_zero + 16 e24PhiAboveRoot hPhiAbove phi theta hdom hmem houtside + · exact adaptiveCoverCheck_no_common_zero + 18 e24ThetaBelowRoot hThetaBelow phi theta hdom hmem houtside + · exact adaptiveCoverCheck_no_common_zero + 19 e24ThetaAboveRoot hThetaAbove phi theta hdom hmem houtside + +theorem e24ScaledResidualEnclosureTarget_of_alignedChecks + (hPhiBelow : adaptiveCoverCheck 14 e24PhiBelowRoot = true) + (hPhiAbove : adaptiveCoverCheck 16 e24PhiAboveRoot = true) + (hThetaBelow : adaptiveCoverCheck 18 e24ThetaBelowRoot = true) + (hThetaAbove : adaptiveCoverCheck 19 e24ThetaAboveRoot = true) : + ScaledResidualEnclosureTarget := by + intro phi theta hspec + by_cases hin : localAngleCell.Contains phi theta + · exact wideLocalReconstructionEnclosureTarget phi theta hspec hin + · have hnozero := + e24NoCommonZeroOutsideLocal_of_alignedChecks + hPhiBelow hPhiAbove hThetaBelow hThetaAbove + phi theta hspec.1 hin + exact (hnozero ⟨hspec.2.2.2.2.1, hspec.2.2.2.2.2⟩).elim + +theorem deepMindABPhiTheta_existsUnique_of_alignedChecks + (hPhiBelow : adaptiveCoverCheck 14 e24PhiBelowRoot = true) + (hPhiAbove : adaptiveCoverCheck 16 e24PhiAboveRoot = true) + (hThetaBelow : adaptiveCoverCheck 18 e24ThetaBelowRoot = true) + (hThetaAbove : adaptiveCoverCheck 19 e24ThetaAboveRoot = true) : + ∃! ABphiTheta : ℝ × ℝ × ℝ × ℝ, + DeepMindABPhiThetaSpec + ABphiTheta.1 ABphiTheta.2.1 ABphiTheta.2.2.1 ABphiTheta.2.2.2 := + deepMindABPhiTheta_existsUnique_of_twoAngleEnclosure + ((scaledResidualEnclosureTarget_iff_twoAngleEnclosureTarget).1 + (e24ScaledResidualEnclosureTarget_of_alignedChecks + hPhiBelow hPhiAbove hThetaBelow hThetaAbove)) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# E24KC2 proof helpers + +The discovery phase is intentionally outside the trusted chain. It only chooses +where to stop splitting and which terminal reason to claim. + +Every claimed leaf is then checked by the Lean kernel: +* physically irrelevant leaf -> `physicallyIrrelevant cell = true`; +* local leaf -> `cellInsideLocal cell = true`; +* interval-rejected leaf -> `cell.rejected = true`; +* unresolved frontier -> the old adaptive checker, but with remaining depth <= 9. + +These lemmas lift a primitive terminal fact to an `adaptiveCoverCheck` fact at +arbitrary remaining depth without asking the kernel to explore the subtree. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +theorem adaptiveCoverCheck_true_of_physicallyIrrelevant + (depth : Nat) (cell : AngleCell) + (h : physicallyIrrelevant cell = true) : + adaptiveCoverCheck depth cell = true := by + cases depth <;> simp [adaptiveCoverCheck, h] + +theorem adaptiveCoverCheck_true_of_rejected + (depth : Nat) (cell : AngleCell) + (h : cell.rejected = true) : + adaptiveCoverCheck depth cell = true := by + by_cases hirr : physicallyIrrelevant cell = true + · cases depth <;> simp [adaptiveCoverCheck, hirr] + · by_cases hlocal : cellInsideLocal cell = true + · cases depth <;> simp [adaptiveCoverCheck, hirr, hlocal] + · cases depth <;> simp [adaptiveCoverCheck, hirr, hlocal, h] + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24 kernel child certificate: PhiBelow/HL, remaining depth 13. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE +namespace CoverCertificateeccce3bad5 + +private abbrev cellRoot : AngleCell := + (childHL e24PhiBelowRoot) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +private abbrev cell1130 : AngleCell := + childLL cell113 + +private abbrev cell1131 : AngleCell := + childLH cell113 + +private abbrev cell1132 : AngleCell := + childHL cell113 + +private abbrev cell1133 : AngleCell := + childHH cell113 + +private abbrev cell1310 : AngleCell := + childLL cell131 + +private abbrev cell1311 : AngleCell := + childLH cell131 + +private abbrev cell1312 : AngleCell := + childHL cell131 + +private abbrev cell1313 : AngleCell := + childHH cell131 + +private abbrev cell1330 : AngleCell := + childLL cell133 + +private abbrev cell1331 : AngleCell := + childLH cell133 + +private abbrev cell1332 : AngleCell := + childHL cell133 + +private abbrev cell1333 : AngleCell := + childHH cell133 + +private abbrev cell3110 : AngleCell := + childLL cell311 + +private abbrev cell3111 : AngleCell := + childLH cell311 + +private abbrev cell3112 : AngleCell := + childHL cell311 + +private abbrev cell3113 : AngleCell := + childHH cell311 + +private abbrev cell3130 : AngleCell := + childLL cell313 + +private abbrev cell3131 : AngleCell := + childLH cell313 + +private abbrev cell3132 : AngleCell := + childHL cell313 + +private abbrev cell3133 : AngleCell := + childHH cell313 + +private abbrev cell3310 : AngleCell := + childLL cell331 + +private abbrev cell3311 : AngleCell := + childLH cell331 + +private abbrev cell3312 : AngleCell := + childHL cell331 + +private abbrev cell3313 : AngleCell := + childHH cell331 + +private abbrev cell3330 : AngleCell := + childLL cell333 + +private abbrev cell3331 : AngleCell := + childLH cell333 + +private abbrev cell3332 : AngleCell := + childHL cell333 + +private abbrev cell3333 : AngleCell := + childHH cell333 + +private theorem checked1130 : adaptiveCoverCheck 9 cell1130 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell1130 (by decide +kernel) + +private theorem checked1131 : adaptiveCoverCheck 9 cell1131 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell1131 (by decide +kernel) + +private theorem checked1132 : adaptiveCoverCheck 9 cell1132 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell1132 (by decide +kernel) + +private theorem checked1133 : adaptiveCoverCheck 9 cell1133 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell1133 (by decide +kernel) + +private theorem checked1310 : adaptiveCoverCheck 9 cell1310 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell1310 (by decide +kernel) + +private theorem checked1311 : adaptiveCoverCheck 9 cell1311 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell1311 (by decide +kernel) + +private theorem checked1312 : adaptiveCoverCheck 9 cell1312 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell1312 (by decide +kernel) + +private theorem checked1313 : adaptiveCoverCheck 9 cell1313 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell1313 (by decide +kernel) + +private theorem checked1330 : adaptiveCoverCheck 9 cell1330 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell1330 (by decide +kernel) + +private theorem checked1331 : adaptiveCoverCheck 9 cell1331 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell1331 (by decide +kernel) + +private theorem checked1332 : adaptiveCoverCheck 9 cell1332 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell1332 (by decide +kernel) + +private theorem checked1333 : adaptiveCoverCheck 9 cell1333 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell1333 (by decide +kernel) + +private theorem checked3110 : adaptiveCoverCheck 9 cell3110 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3110 (by decide +kernel) + +private theorem checked3111 : adaptiveCoverCheck 9 cell3111 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3111 (by decide +kernel) + +private theorem checked3112 : adaptiveCoverCheck 9 cell3112 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3112 (by decide +kernel) + +private theorem checked3113 : adaptiveCoverCheck 9 cell3113 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3113 (by decide +kernel) + +private theorem checked3130 : adaptiveCoverCheck 9 cell3130 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3130 (by decide +kernel) + +private theorem checked3131 : adaptiveCoverCheck 9 cell3131 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3131 (by decide +kernel) + +private theorem checked3132 : adaptiveCoverCheck 9 cell3132 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3132 (by decide +kernel) + +private theorem checked3133 : adaptiveCoverCheck 9 cell3133 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3133 (by decide +kernel) + +private theorem checked3310 : adaptiveCoverCheck 9 cell3310 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3310 (by decide +kernel) + +private theorem checked3311 : adaptiveCoverCheck 9 cell3311 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3311 (by decide +kernel) + +private theorem checked3312 : adaptiveCoverCheck 9 cell3312 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3312 (by decide +kernel) + +private theorem checked3313 : adaptiveCoverCheck 9 cell3313 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3313 (by decide +kernel) + +private theorem checked3330 : adaptiveCoverCheck 9 cell3330 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3330 (by decide +kernel) + +private theorem checked3331 : adaptiveCoverCheck 9 cell3331 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3331 (by decide +kernel) + +private theorem checked3332 : adaptiveCoverCheck 9 cell3332 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3332 (by decide +kernel) + +private theorem checked3333 : adaptiveCoverCheck 9 cell3333 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3333 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 10 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 10 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 10 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 10 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 10 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 10 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 10 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 10 cell113 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell113 + checked1130 checked1131 checked1132 checked1133 + +private theorem checked120 : adaptiveCoverCheck 10 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 10 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 10 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 10 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 10 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 10 cell131 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell131 + checked1310 checked1311 checked1312 checked1313 + +private theorem checked132 : adaptiveCoverCheck 10 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 10 cell133 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell133 + checked1330 checked1331 checked1332 checked1333 + +private theorem checked300 : adaptiveCoverCheck 10 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 10 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 10 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 10 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 10 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 10 cell311 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell311 + checked3110 checked3111 checked3112 checked3113 + +private theorem checked312 : adaptiveCoverCheck 10 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 10 cell313 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell313 + checked3130 checked3131 checked3132 checked3133 + +private theorem checked320 : adaptiveCoverCheck 10 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 10 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 10 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 10 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 10 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 10 cell331 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell331 + checked3310 checked3311 checked3312 checked3313 + +private theorem checked332 : adaptiveCoverCheck 10 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 10 cell333 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell333 + checked3330 checked3331 checked3332 checked3333 + +private theorem checked00 : adaptiveCoverCheck 11 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 11 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 11 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 11 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 11 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 11 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 11 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 11 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 11 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 11 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 11 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 11 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 11 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 11 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 11 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 11 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 11 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 11 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 11 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 11 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 11 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 11 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 11 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 11 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 12 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 11 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 12 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 11 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 12 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 11 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 12 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 11 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 13 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 12 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateeccce3bad5 + +theorem e24PhiBelowKernelHL : + adaptiveCoverCheck 13 (childHL e24PhiBelowRoot) = true := by + exact CoverCertificateeccce3bad5.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartB.Definitions`. +* `KernelOnly.PartB.Parameters`. +* `KernelOnly.PartB.CellSemanticsCore`. +* `KernelOnly.PartB.Phase1Semantics`. +* `KernelOnly.PartB.Phase2Semantics`. +* `KernelOnly.PartB.Phase3Semantics`. +* `KernelOnly.PartB.Phase4Semantics`. +* `KernelOnly.PartB.Phase5Semantics`. +* `KernelOnly.PartB.CellSemantics`. +* `KernelOnly.PartB.CellCover`. +* `KernelOnly.PartB.Continuum`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Part B semantic definitions + +The numerical layer from Part A is frozen. This file names the certified +parameter vector and the two real support functions whose continuum lower +bounds are established by the exact cell certificate. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartB + +open RatInterval + +/-- The unique direct-system parameter vector certified in Part A. -/ +def params : Romik.Params := + Romik.coordEquiv.symm PartALeanCert.fullRoot + +/-- The physical parameter interval. -/ +def physicalInterval : Set ℝ := Set.Icc (0 : ℝ) (Real.pi / 2) + +/-- The two global support functions used in the manuscript's grid lemma. -/ +def Gu (s t : ℝ) : ℝ := + 1 + dot (Romik.path params s - Romik.path params t) (u s) + +/-- The vertical support slack between two path positions in the frame at `s`. -/ +def Gv (s t : ℝ) : ℝ := + 1 + dot (Romik.path params s - Romik.path params t) (v s) + +/-- The real version of the exact rational target. -/ +def target : ℝ := (targetQ : ℝ) + +/-- Physical mesh node `iπ/128`. -/ +def nodeTime (i : Nat) : ℝ := (nodeCoeff i : ℝ) * Real.pi + +/-- Physical closed cell. -/ +def cellSet (i : Cell) : Set ℝ := + Set.Icc (nodeTime i.1) (nodeTime (i.1 + 1)) + +/-- Semantic containment in a planar interval box. -/ +def PointContains (z : RatInterval × RatInterval) (p : Point) : Prop := + RatInterval.Contains z.1 p.1 ∧ RatInterval.Contains z.2 p.2 + +end PartB +end GerverSofa + +end + +end + +end + +section + +/-! +# Part B parameter, matching and regularity certificate + +Every theorem in this file is a direct consequence of the concrete Part A +unique zero. No numerical computation is repeated. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartB + +/-- The certified parameter vector lies in the direct Romik box. -/ +theorem params_mem : params ∈ Romik.box := by + simpa [params, Romik.vectorBox] using PartALeanCert.fullRoot_mem + +/-- The certified parameter vector satisfies all 22 direct equations. -/ +theorem params_equations : Romik.Equations params := by + simpa [params, Romik.Equations, Romik.vectorSystem] using + PartALeanCert.fullRoot_zero + +/-- The four physical switches are correctly ordered. -/ +theorem params_switchOrder : Romik.SwitchOrder params := + Romik.switchOrder_of_mem_box params_mem + +/-- Positional matching at `φ`. -/ +theorem match12 : Romik.path1 params params.phi = Romik.path2 params params.phi := + Romik.match_path12_of_equations params_equations + +/-- Positional matching at `θ`. -/ +theorem match23 : Romik.path2 params params.theta = Romik.path3 params params.theta := + Romik.match_path23_of_equations params_equations + +/-- Positional matching at `π/2-θ`. -/ +theorem match34 : + Romik.path3 params (Real.pi / 2 - params.theta) = + Romik.path4 params (Real.pi / 2 - params.theta) := + Romik.match_path34_of_equations params_equations + +/-- Positional matching at `π/2-φ`. -/ +theorem match45 : + Romik.path4 params (Real.pi / 2 - params.phi) = + Romik.path5 params (Real.pi / 2 - params.phi) := + Romik.match_path45_of_equations params_equations + +/-- Global continuity of the literal five-phase path. -/ +theorem continuous_path : Continuous (Romik.path params) := + Romik.continuous_path_of_mem_box_and_equations params_mem params_equations + +/-- Global continuity of the associated rigid frame. -/ +theorem continuous_frame : SE2.ContinuousPath (Romik.frame params) := + Romik.continuousPath_frame_of_path params continuous_path + +/-- Exact initial normalization. -/ +theorem path_zero : Romik.path params 0 = (0, 0) := + Romik.path_zero_of_mem_box_and_equations params_mem params_equations + +/-- Clean exact bounds for the two independent switching angles. -/ +theorem phi_bounds : + ((1958868239504182093160893749 : ℝ) / + 50000000000000000000000000000) ≤ params.phi ∧ + params.phi ≤ + ((78354729580167283726435751 : ℝ) / + 2000000000000000000000000000) := by + have hp := params_mem + dsimp [params, Romik.vectorBox, Romik.box, qR] at hp ⊢ + aesop + +theorem theta_bounds : + ((34065075469136244723692787727 : ℝ) / + 50000000000000000000000000000) ≤ params.theta ∧ + params.theta ≤ + ((34065075469136244723692787983 : ℝ) / + 50000000000000000000000000000) := by + have hp := params_mem + dsimp [params, Romik.vectorBox, Romik.box, qR] at hp ⊢ + aesop + +end PartB +end GerverSofa + +end + +end + +end + +section + +/-! +# Core semantic infrastructure for the Part B cell certificate + +Hull, time-cell, certified-root-coordinate and trigonometric containment lemmas +are isolated here so the five analytic phases can be compiled and diagnosed +independently. +-/ + +/-! ## Hull and time-cell semantics -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartB + +open RatInterval + +theorem contains_intervalHull_left {a b : RatInterval} {x : ℝ} + (hx : Contains a x) : Contains (intervalHull a b) x := by + constructor + · have hmin : min a.lo b.lo ≤ a.lo := min_le_left _ _ + exact le_trans (by exact_mod_cast hmin) hx.1 + · have hmax : a.hi ≤ max a.hi b.hi := le_max_left _ _ + exact le_trans hx.2 (by exact_mod_cast hmax) + +theorem contains_intervalHull_right {a b : RatInterval} {x : ℝ} + (hx : Contains b x) : Contains (intervalHull a b) x := by + constructor + · have hmin : min a.lo b.lo ≤ b.lo := min_le_right _ _ + exact le_trans (by exact_mod_cast hmin) hx.1 + · have hmax : b.hi ≤ max a.hi b.hi := le_max_right _ _ + exact le_trans hx.2 (by exact_mod_cast hmax) + +theorem pointContains_hull_left {a b : RatInterval × RatInterval} {x : Point} + (hx : PointContains a x) : PointContains (pointHull a b) x := by + exact ⟨contains_intervalHull_left hx.1, + contains_intervalHull_left hx.2⟩ + +theorem pointContains_hull_right {a b : RatInterval × RatInterval} {x : Point} + (hx : PointContains b x) : PointContains (pointHull a b) x := by + exact ⟨contains_intervalHull_right hx.1, + contains_intervalHull_right hx.2⟩ + +theorem nodeTime_mono {i j : Nat} (hij : i ≤ j) : + nodeTime i ≤ nodeTime j := by + unfold nodeTime nodeCoeff + apply mul_le_mul_of_nonneg_right _ Real.pi_pos.le + norm_num + have hijR : (i : ℝ) ≤ (j : ℝ) := by + exact_mod_cast hij + exact div_le_div_of_nonneg_right hijR (by norm_num) + +theorem cellTimeInterval_contains_start (i : Cell) : + Contains (cellTimeInterval i) (nodeTime i.1) := by + apply contains_intervalHull_left + simpa [nodeTime, nodeCoeff, ExactReplay.scale] using + (RatInterval.contains_scale (a := nodeCoeff i.1) + ExactReplay.piI_contains_pi) + +theorem cellTimeInterval_contains_end (i : Cell) : + Contains (cellTimeInterval i) (nodeTime (i.1 + 1)) := by + apply contains_intervalHull_right + simpa [nodeTime, nodeCoeff, ExactReplay.scale] using + (RatInterval.contains_scale (a := nodeCoeff (i.1 + 1)) + ExactReplay.piI_contains_pi) + +theorem cellTimeInterval_contains {i : Cell} {t : ℝ} + (ht : t ∈ cellSet i) : Contains (cellTimeInterval i) t := by + exact ⟨le_trans (cellTimeInterval_contains_start i).1 ht.1, + le_trans ht.2 (cellTimeInterval_contains_end i).2⟩ + +/-! ## The Part A root is enclosed coordinatewise -/ + +theorem root_coord_contains (k : Fin 22) : + Contains (ExactReplay.getI ExactReplay.fullInputBox k.1) + (PartALeanCert.fullRoot k) := by + exact ((Romik.inputBox_exact PartALeanCert.fullRoot).1 + PartALeanCert.fullRoot_mem).2 k + +theorem k11_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 0) params.k11 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 0) + (PartALeanCert.fullRoot (0 : Fin 22)) + exact root_coord_contains (0 : Fin 22) +theorem k12_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 1) params.k12 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 1) + (PartALeanCert.fullRoot (1 : Fin 22)) + exact root_coord_contains (1 : Fin 22) +theorem k21_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 2) params.k21 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 2) + (PartALeanCert.fullRoot (2 : Fin 22)) + exact root_coord_contains (2 : Fin 22) +theorem k22_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 3) params.k22 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 3) + (PartALeanCert.fullRoot (3 : Fin 22)) + exact root_coord_contains (3 : Fin 22) +theorem k31_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 4) params.k31 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 4) + (PartALeanCert.fullRoot (4 : Fin 22)) + exact root_coord_contains (4 : Fin 22) +theorem k32_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 5) params.k32 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 5) + (PartALeanCert.fullRoot (5 : Fin 22)) + exact root_coord_contains (5 : Fin 22) +theorem k41_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 6) params.k41 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 6) + (PartALeanCert.fullRoot (6 : Fin 22)) + exact root_coord_contains (6 : Fin 22) +theorem k42_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 7) params.k42 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 7) + (PartALeanCert.fullRoot (7 : Fin 22)) + exact root_coord_contains (7 : Fin 22) +theorem k51_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 8) params.k51 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 8) + (PartALeanCert.fullRoot (8 : Fin 22)) + exact root_coord_contains (8 : Fin 22) +theorem k52_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 9) params.k52 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 9) + (PartALeanCert.fullRoot (9 : Fin 22)) + exact root_coord_contains (9 : Fin 22) +theorem a1_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 10) params.a1 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 10) + (PartALeanCert.fullRoot (10 : Fin 22)) + exact root_coord_contains (10 : Fin 22) +theorem a2_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 11) params.a2 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 11) + (PartALeanCert.fullRoot (11 : Fin 22)) + exact root_coord_contains (11 : Fin 22) +theorem b1_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 12) params.b1 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 12) + (PartALeanCert.fullRoot (12 : Fin 22)) + exact root_coord_contains (12 : Fin 22) +theorem b2_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 13) params.b2 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 13) + (PartALeanCert.fullRoot (13 : Fin 22)) + exact root_coord_contains (13 : Fin 22) +theorem c1_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 14) params.c1 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 14) + (PartALeanCert.fullRoot (14 : Fin 22)) + exact root_coord_contains (14 : Fin 22) +theorem c2_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 15) params.c2 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 15) + (PartALeanCert.fullRoot (15 : Fin 22)) + exact root_coord_contains (15 : Fin 22) +theorem d1_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 16) params.d1 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 16) + (PartALeanCert.fullRoot (16 : Fin 22)) + exact root_coord_contains (16 : Fin 22) +theorem d2_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 17) params.d2 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 17) + (PartALeanCert.fullRoot (17 : Fin 22)) + exact root_coord_contains (17 : Fin 22) +theorem e1_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 18) params.e1 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 18) + (PartALeanCert.fullRoot (18 : Fin 22)) + exact root_coord_contains (18 : Fin 22) +theorem e2_contains : + Contains (ExactReplay.getI ExactReplay.fullInputBox 19) params.e2 := by + change Contains (ExactReplay.getI ExactReplay.fullInputBox 19) + (PartALeanCert.fullRoot (19 : Fin 22)) + exact root_coord_contains (19 : Fin 22) + +theorem point_contains (q : ℚ) : Contains (RatInterval.point q) (q : ℝ) := + (RatInterval.contains_point_iff q (q : ℝ)).2 rfl + +theorem trig_contains {i : Cell} {t : ℝ} + (htCell : t ∈ cellSet i) (htPhys : t ∈ physicalInterval) : + Contains (ExactReplay.cosineInterval (cellTimeInterval i)) (Real.cos t) ∧ + Contains (ExactReplay.sineInterval (cellTimeInterval i)) (Real.sin t) := by + have htI := cellTimeInterval_contains htCell + exact ⟨ExactReplay.cosI_contains htI htPhys.1 htPhys.2, + ExactReplay.sinI_contains htI htPhys.1 htPhys.2⟩ + +end PartB +end GerverSofa + +end + +end + +end + +section + +/-! Semantic enclosure for analytic path phase 1. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartB + +open RatInterval + +theorem cellPiece1_contains {i : Cell} {t : ℝ} + (htCell : t ∈ cellSet i) (htPhys : t ∈ physicalInterval) : + PointContains (cellPieceInterval 1 i) (Romik.path1 params t) := by + let ti := cellTimeInterval i + have htI : Contains ti t := cellTimeInterval_contains htCell + have htr := trig_contains htCell htPhys + have hc := htr.1 + have hs := htr.2 + have hone := point_contains 1 + have hhalf := point_contains (1 / 2) + have hz1 := RatInterval.contains_sub + (RatInterval.contains_add (RatInterval.contains_mul a1_contains hc) + (RatInterval.contains_mul a2_contains hs)) hone + have hz2 := RatInterval.contains_sub + (RatInterval.contains_add + (RatInterval.contains_mul (RatInterval.contains_neg a2_contains) hc) + (RatInterval.contains_mul a1_contains hs)) hhalf + have hr1 := RatInterval.contains_sub + (RatInterval.contains_mul hc hz1) (RatInterval.contains_mul hs hz2) + have hr2 := RatInterval.contains_add + (RatInterval.contains_mul hs hz1) (RatInterval.contains_mul hc hz2) + constructor + · simpa [cellPieceInterval, ti, Romik.path1, Romik.rot, Romik.addK, ExactReplay.oneI] using + RatInterval.contains_add hr1 k11_contains + · simpa [cellPieceInterval, ti, Romik.path1, Romik.rot, Romik.addK, ExactReplay.oneI] using + RatInterval.contains_add hr2 k12_contains + +end PartB +end GerverSofa + +end + +end + +end + +section + +/-! Semantic enclosure for analytic path phase 2. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartB + +open RatInterval + +theorem cellPiece2_contains {i : Cell} {t : ℝ} + (htCell : t ∈ cellSet i) (htPhys : t ∈ physicalInterval) : + PointContains (cellPieceInterval 2 i) (Romik.path2 params t) := by + let ti := cellTimeInterval i + have htI : Contains ti t := cellTimeInterval_contains htCell + have htr := trig_contains htCell htPhys + have hc := htr.1 + have hs := htr.2 + have hone := point_contains 1 + have hhalf := point_contains (1 / 2) + have hquarter := point_contains (1 / 4) + have htt := RatInterval.contains_mul htI htI + have hz1 := RatInterval.contains_add + (RatInterval.contains_add + (RatInterval.contains_mul (RatInterval.contains_neg hquarter) htt) + (RatInterval.contains_mul b1_contains htI)) b2_contains + have hz2 := RatInterval.contains_sub + (RatInterval.contains_sub (RatInterval.contains_mul hhalf htI) b1_contains) + hone + have hr1 := RatInterval.contains_sub + (RatInterval.contains_mul hc hz1) (RatInterval.contains_mul hs hz2) + have hr2 := RatInterval.contains_add + (RatInterval.contains_mul hs hz1) (RatInterval.contains_mul hc hz2) + constructor + · simpa [cellPieceInterval, ti, Romik.path2, Romik.rot, Romik.addK, + ExactReplay.oneI, mul_assoc] using RatInterval.contains_add hr1 k21_contains + · simpa [cellPieceInterval, ti, Romik.path2, Romik.rot, Romik.addK, + ExactReplay.oneI, mul_assoc] using RatInterval.contains_add hr2 k22_contains + +end PartB +end GerverSofa + +end + +end + +end + +section + +/-! Semantic enclosure for analytic path phase 3. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartB + +open RatInterval + +theorem cellPiece3_contains {i : Cell} {t : ℝ} + (htCell : t ∈ cellSet i) (htPhys : t ∈ physicalInterval) : + PointContains (cellPieceInterval 3 i) (Romik.path3 params t) := by + let ti := cellTimeInterval i + have htI : Contains ti t := cellTimeInterval_contains htCell + have htr := trig_contains htCell htPhys + have hc := htr.1 + have hs := htr.2 + have hz1 := RatInterval.contains_sub c1_contains htI + have hz2 := RatInterval.contains_add c2_contains htI + have hr1 := RatInterval.contains_sub + (RatInterval.contains_mul hc hz1) (RatInterval.contains_mul hs hz2) + have hr2 := RatInterval.contains_add + (RatInterval.contains_mul hs hz1) (RatInterval.contains_mul hc hz2) + constructor + · simpa [cellPieceInterval, ti, Romik.path3, Romik.rot, Romik.addK] using + RatInterval.contains_add hr1 k31_contains + · simpa [cellPieceInterval, ti, Romik.path3, Romik.rot, Romik.addK] using + RatInterval.contains_add hr2 k32_contains + +end PartB +end GerverSofa + +end + +end + +end + +section + +/-! Semantic enclosure for analytic path phase 4. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartB + +open RatInterval + +theorem cellPiece4_contains {i : Cell} {t : ℝ} + (htCell : t ∈ cellSet i) (htPhys : t ∈ physicalInterval) : + PointContains (cellPieceInterval 4 i) (Romik.path4 params t) := by + let ti := cellTimeInterval i + have htI : Contains ti t := cellTimeInterval_contains htCell + have htr := trig_contains htCell htPhys + have hc := htr.1 + have hs := htr.2 + have hone := point_contains 1 + have hhalf := point_contains (1 / 2) + have hquarter := point_contains (1 / 4) + have htt := RatInterval.contains_mul htI htI + have hz1 := RatInterval.contains_sub + (RatInterval.contains_add + (RatInterval.contains_mul (RatInterval.contains_neg hhalf) htI) + d1_contains) hone + have hz2 := RatInterval.contains_add + (RatInterval.contains_add + (RatInterval.contains_mul (RatInterval.contains_neg hquarter) htt) + (RatInterval.contains_mul d1_contains htI)) d2_contains + have hr1 := RatInterval.contains_sub + (RatInterval.contains_mul hc hz1) (RatInterval.contains_mul hs hz2) + have hr2 := RatInterval.contains_add + (RatInterval.contains_mul hs hz1) (RatInterval.contains_mul hc hz2) + constructor + · simpa [cellPieceInterval, ti, Romik.path4, Romik.rot, Romik.addK, + ExactReplay.oneI, mul_assoc] using RatInterval.contains_add hr1 k41_contains + · simpa [cellPieceInterval, ti, Romik.path4, Romik.rot, Romik.addK, + ExactReplay.oneI, mul_assoc] using RatInterval.contains_add hr2 k42_contains + +end PartB +end GerverSofa + +end + +end + +end + +section + +/-! Semantic enclosure for analytic path phase 5. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartB + +open RatInterval + +theorem cellPiece5_contains {i : Cell} {t : ℝ} + (htCell : t ∈ cellSet i) (htPhys : t ∈ physicalInterval) : + PointContains (cellPieceInterval 5 i) (Romik.path5 params t) := by + let ti := cellTimeInterval i + have htr := trig_contains htCell htPhys + have hc := htr.1 + have hs := htr.2 + have hone := point_contains 1 + have hhalf := point_contains (1 / 2) + have hz1 := RatInterval.contains_sub + (RatInterval.contains_add (RatInterval.contains_mul e1_contains hc) + (RatInterval.contains_mul e2_contains hs)) hhalf + have hz2 := RatInterval.contains_sub + (RatInterval.contains_add + (RatInterval.contains_mul (RatInterval.contains_neg e2_contains) hc) + (RatInterval.contains_mul e1_contains hs)) hone + have hr1 := RatInterval.contains_sub + (RatInterval.contains_mul hc hz1) (RatInterval.contains_mul hs hz2) + have hr2 := RatInterval.contains_add + (RatInterval.contains_mul hs hz1) (RatInterval.contains_mul hc hz2) + constructor + · simpa [cellPieceInterval, ti, Romik.path5, Romik.rot, Romik.addK, ExactReplay.oneI] using + RatInterval.contains_add hr1 k51_contains + · simpa [cellPieceInterval, ti, Romik.path5, Romik.rot, Romik.addK, ExactReplay.oneI] using + RatInterval.contains_add hr2 k52_contains + +end PartB +end GerverSofa + +end + +end + +end + +section + +/-! +# Assembly of semantic soundness for the Part B cell certificate + +The five phase enclosures are independent modules. This file classifies the +four switching cells, selects the appropriate phase/hull, and proves semantic +soundness of the two product-cell support expressions. +-/ + +/-! ## Switches lie in exactly four mesh cells -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartB + +open RatInterval + +private theorem node1_lt_phi : nodeTime 1 < params.phi := by + have hpi : Real.pi ≤ (ExactReplay.piI.hi : ℝ) := + ExactReplay.piI_contains_pi.2 + have hp := phi_bounds.1 + unfold nodeTime nodeCoeff + norm_num [ExactReplay.piI, ExactReplay.q] at hpi hp ⊢ + nlinarith + +private theorem phi_lt_node2 : params.phi < nodeTime 2 := by + have hpi : (ExactReplay.piI.lo : ℝ) ≤ Real.pi := + ExactReplay.piI_contains_pi.1 + have hp := phi_bounds.2 + unfold nodeTime nodeCoeff + norm_num [ExactReplay.piI, ExactReplay.q] at hpi hp ⊢ + nlinarith + +private theorem node27_lt_theta : nodeTime 27 < params.theta := by + have hpi : Real.pi ≤ (ExactReplay.piI.hi : ℝ) := + ExactReplay.piI_contains_pi.2 + have hp := theta_bounds.1 + unfold nodeTime nodeCoeff + norm_num [ExactReplay.piI, ExactReplay.q] at hpi hp ⊢ + nlinarith + +private theorem theta_lt_node28 : params.theta < nodeTime 28 := by + have hpi : (ExactReplay.piI.lo : ℝ) ≤ Real.pi := + ExactReplay.piI_contains_pi.1 + have hp := theta_bounds.2 + unfold nodeTime nodeCoeff + norm_num [ExactReplay.piI, ExactReplay.q] at hpi hp ⊢ + nlinarith + +private theorem node36_lt_eta : + nodeTime 36 < Real.pi / 2 - params.theta := by + have h := theta_lt_node28 + unfold nodeTime nodeCoeff at h ⊢ + norm_num at h ⊢ + linarith + +private theorem eta_lt_node37 : + Real.pi / 2 - params.theta < nodeTime 37 := by + have h := node27_lt_theta + unfold nodeTime nodeCoeff at h ⊢ + norm_num at h ⊢ + linarith + +private theorem node62_lt_tau : + nodeTime 62 < Real.pi / 2 - params.phi := by + have h := phi_lt_node2 + unfold nodeTime nodeCoeff at h ⊢ + norm_num at h ⊢ + linarith + +private theorem tau_lt_node63 : + Real.pi / 2 - params.phi < nodeTime 63 := by + have h := node1_lt_phi + unfold nodeTime nodeCoeff at h ⊢ + norm_num at h ⊢ + linarith + +private theorem phase1_cell {i : Cell} {t : ℝ} + (ht : t ∈ cellSet i) (hphase : t ≤ params.phi) : i.1 ≤ 1 := by + by_contra hnot + have hi : 2 ≤ i.1 := by omega + have h2i : nodeTime 2 ≤ nodeTime i.1 := nodeTime_mono hi + linarith [phi_lt_node2, ht.1] + +private theorem phase2_cell {i : Cell} {t : ℝ} + (ht : t ∈ cellSet i) (hlo : params.phi < t) + (hhi : t ≤ params.theta) : 1 ≤ i.1 ∧ i.1 ≤ 27 := by + constructor + · by_contra hnot + have hi0 : i.1 = 0 := by omega + have hend : t ≤ nodeTime 1 := by simpa [cellSet, hi0] using ht.2 + linarith [node1_lt_phi] + · by_contra hnot + have hi : 28 ≤ i.1 := by omega + have h28i : nodeTime 28 ≤ nodeTime i.1 := nodeTime_mono hi + linarith [theta_lt_node28, ht.1] + +private theorem phase3_cell {i : Cell} {t : ℝ} + (ht : t ∈ cellSet i) (hlo : params.theta < t) + (hhi : t ≤ Real.pi / 2 - params.theta) : + 27 ≤ i.1 ∧ i.1 ≤ 36 := by + constructor + · by_contra hnot + have hi : i.1 + 1 ≤ 27 := by omega + have hend : nodeTime (i.1 + 1) ≤ nodeTime 27 := nodeTime_mono hi + linarith [node27_lt_theta, ht.2] + · by_contra hnot + have hi : 37 ≤ i.1 := by omega + have h37i : nodeTime 37 ≤ nodeTime i.1 := nodeTime_mono hi + linarith [eta_lt_node37, ht.1] + +private theorem phase4_cell {i : Cell} {t : ℝ} + (ht : t ∈ cellSet i) + (hlo : Real.pi / 2 - params.theta < t) + (hhi : t ≤ Real.pi / 2 - params.phi) : + 36 ≤ i.1 ∧ i.1 ≤ 62 := by + constructor + · by_contra hnot + have hi : i.1 + 1 ≤ 36 := by omega + have hend : nodeTime (i.1 + 1) ≤ nodeTime 36 := nodeTime_mono hi + linarith [node36_lt_eta, ht.2] + · by_contra hnot + have hi : 63 ≤ i.1 := by omega + have h63i : nodeTime 63 ≤ nodeTime i.1 := nodeTime_mono hi + linarith [tau_lt_node63, ht.1] + +private theorem phase5_cell {i : Cell} {t : ℝ} + (ht : t ∈ cellSet i) + (hlo : Real.pi / 2 - params.phi < t) : 62 ≤ i.1 := by + by_contra hnot + have hi : i.1 + 1 ≤ 62 := by omega + have hend : nodeTime (i.1 + 1) ≤ nodeTime 62 := nodeTime_mono hi + linarith [node62_lt_tau, ht.2] + +/-! ## Every literal path branch is contained in the selected cell hull -/ + +private theorem cellPath_contains_piece1 {i : Cell} {t : ℝ} + (htCell : t ∈ cellSet i) (htPhys : t ∈ physicalInterval) + (hi : i.1 ≤ 1) : + PointContains (cellPathInterval i) (Romik.path1 params t) := by + have h := cellPiece1_contains htCell htPhys + by_cases h0 : i.1 = 0 + · simpa [cellPathInterval, h0] using h + · have h1 : i.1 = 1 := by omega + simpa [cellPathInterval, h0, h1] using pointContains_hull_left h + +private theorem cellPath_contains_piece2 {i : Cell} {t : ℝ} + (htCell : t ∈ cellSet i) (htPhys : t ∈ physicalInterval) + (hi : 1 ≤ i.1 ∧ i.1 ≤ 27) : + PointContains (cellPathInterval i) (Romik.path2 params t) := by + have h := cellPiece2_contains htCell htPhys + by_cases h1 : i.1 = 1 + · have h0 : i.1 ≠ 0 := by omega + simpa [cellPathInterval, h0, h1] using pointContains_hull_right h + by_cases h27 : i.1 = 27 + · have h0 : i.1 ≠ 0 := by omega + have h26 : ¬ i.1 ≤ 26 := by omega + simpa [cellPathInterval, h0, h1, h26, h27] using pointContains_hull_left h + · have h0 : i.1 ≠ 0 := by omega + have h26 : i.1 ≤ 26 := by omega + simpa [cellPathInterval, h0, h1, h26] using h + +private theorem cellPath_contains_piece3 {i : Cell} {t : ℝ} + (htCell : t ∈ cellSet i) (htPhys : t ∈ physicalInterval) + (hi : 27 ≤ i.1 ∧ i.1 ≤ 36) : + PointContains (cellPathInterval i) (Romik.path3 params t) := by + have h := cellPiece3_contains htCell htPhys + by_cases h27 : i.1 = 27 + · have h0 : i.1 ≠ 0 := by omega + have h1 : i.1 ≠ 1 := by omega + have h26 : ¬ i.1 ≤ 26 := by omega + simpa [cellPathInterval, h0, h1, h26, h27] using pointContains_hull_right h + by_cases h36 : i.1 = 36 + · have h0 : i.1 ≠ 0 := by omega + have h1 : i.1 ≠ 1 := by omega + have h26 : ¬ i.1 ≤ 26 := by omega + have h27n : i.1 ≠ 27 := by omega + have h35 : ¬ i.1 ≤ 35 := by omega + simpa [cellPathInterval, h0, h1, h26, h27n, h35, h36] using + pointContains_hull_left h + · have h0 : i.1 ≠ 0 := by omega + have h1 : i.1 ≠ 1 := by omega + have h26 : ¬ i.1 ≤ 26 := by omega + have h27n : i.1 ≠ 27 := by omega + have h35 : i.1 ≤ 35 := by omega + simpa [cellPathInterval, h0, h1, h26, h27n, h35] using h + +private theorem cellPath_contains_piece4 {i : Cell} {t : ℝ} + (htCell : t ∈ cellSet i) (htPhys : t ∈ physicalInterval) + (hi : 36 ≤ i.1 ∧ i.1 ≤ 62) : + PointContains (cellPathInterval i) (Romik.path4 params t) := by + have h := cellPiece4_contains htCell htPhys + by_cases h36 : i.1 = 36 + · have h0 : i.1 ≠ 0 := by omega + have h1 : i.1 ≠ 1 := by omega + have h26 : ¬ i.1 ≤ 26 := by omega + have h27 : i.1 ≠ 27 := by omega + have h35 : ¬ i.1 ≤ 35 := by omega + simpa [cellPathInterval, h0, h1, h26, h27, h35, h36] using + pointContains_hull_right h + by_cases h62 : i.1 = 62 + · have h0 : i.1 ≠ 0 := by omega + have h1 : i.1 ≠ 1 := by omega + have h26 : ¬ i.1 ≤ 26 := by omega + have h27 : i.1 ≠ 27 := by omega + have h35 : ¬ i.1 ≤ 35 := by omega + have h36n : i.1 ≠ 36 := by omega + have h61 : ¬ i.1 ≤ 61 := by omega + simpa [cellPathInterval, h0, h1, h26, h27, h35, h36n, h61, h62] using + pointContains_hull_left h + · have h0 : i.1 ≠ 0 := by omega + have h1 : i.1 ≠ 1 := by omega + have h26 : ¬ i.1 ≤ 26 := by omega + have h27 : i.1 ≠ 27 := by omega + have h35 : ¬ i.1 ≤ 35 := by omega + have h36n : i.1 ≠ 36 := by omega + have h61 : i.1 ≤ 61 := by omega + simpa [cellPathInterval, h0, h1, h26, h27, h35, h36n, h61] using h + +private theorem cellPath_contains_piece5 {i : Cell} {t : ℝ} + (htCell : t ∈ cellSet i) (htPhys : t ∈ physicalInterval) + (hi : 62 ≤ i.1) : + PointContains (cellPathInterval i) (Romik.path5 params t) := by + have h := cellPiece5_contains htCell htPhys + by_cases h62 : i.1 = 62 + · have h0 : i.1 ≠ 0 := by omega + have h1 : i.1 ≠ 1 := by omega + have h26 : ¬ i.1 ≤ 26 := by omega + have h27 : i.1 ≠ 27 := by omega + have h35 : ¬ i.1 ≤ 35 := by omega + have h36 : i.1 ≠ 36 := by omega + have h61 : ¬ i.1 ≤ 61 := by omega + simpa [cellPathInterval, h0, h1, h26, h27, h35, h36, h61, h62] using + pointContains_hull_right h + · have h63 : i.1 = 63 := by omega + have h0 : i.1 ≠ 0 := by omega + have h1 : i.1 ≠ 1 := by omega + have h26 : ¬ i.1 ≤ 26 := by omega + have h27 : i.1 ≠ 27 := by omega + have h35 : ¬ i.1 ≤ 35 := by omega + have h36 : i.1 ≠ 36 := by omega + have h61 : ¬ i.1 ≤ 61 := by omega + have h62n : i.1 ≠ 62 := by omega + simpa [cellPathInterval, h0, h1, h26, h27, h35, h36, h61, h62n, + h63] using h + +/-- The interval selected for a cell contains the literal five-phase path at +every physical time in that cell. -/ +theorem cellPath_contains {i : Cell} {t : ℝ} + (htCell : t ∈ cellSet i) (htPhys : t ∈ physicalInterval) : + PointContains (cellPathInterval i) (Romik.path params t) := by + unfold Romik.path + by_cases h1 : t ≤ params.phi + · rw [ite_eq_left h1] + exact cellPath_contains_piece1 htCell htPhys (phase1_cell htCell h1) + · rw [ite_eq_right h1] + have h1' : params.phi < t := lt_of_not_ge h1 + by_cases h2 : t ≤ params.theta + · rw [ite_eq_left h2] + exact cellPath_contains_piece2 htCell htPhys + (phase2_cell htCell h1' h2) + · rw [ite_eq_right h2] + have h2' : params.theta < t := lt_of_not_ge h2 + by_cases h3 : t ≤ Real.pi / 2 - params.theta + · rw [ite_eq_left h3] + exact cellPath_contains_piece3 htCell htPhys + (phase3_cell htCell h2' h3) + · rw [ite_eq_right h3] + have h3' : Real.pi / 2 - params.theta < t := lt_of_not_ge h3 + by_cases h4 : t ≤ Real.pi / 2 - params.phi + · rw [ite_eq_left h4] + exact cellPath_contains_piece4 htCell htPhys + (phase4_cell htCell h3' h4) + · rw [ite_eq_right h4] + have h4' : Real.pi / 2 - params.phi < t := lt_of_not_ge h4 + exact cellPath_contains_piece5 htCell htPhys + (phase5_cell htCell h4') + +/-! ## Semantic soundness of the two product-cell expressions -/ + +theorem guCell_contains {i j : Cell} {s t : ℝ} + (hsCell : s ∈ cellSet i) (htCell : t ∈ cellSet j) + (hsPhys : s ∈ physicalInterval) (htPhys : t ∈ physicalInterval) : + Contains (guCellInterval i j) (Gu s t) := by + have hxs := cellPath_contains hsCell hsPhys + have hxt := cellPath_contains htCell htPhys + have htr := trig_contains hsCell hsPhys + have hdx := RatInterval.contains_sub hxs.1 hxt.1 + have hdy := RatInterval.contains_sub hxs.2 hxt.2 + have hone := point_contains 1 + have h := RatInterval.contains_add + (RatInterval.contains_add hone (RatInterval.contains_mul hdx htr.1)) + (RatInterval.contains_mul hdy htr.2) + simpa [guCellInterval, Gu, dot, u, sub_eq_add_neg, ExactReplay.oneI, add_assoc] using h + +theorem gvCell_contains {i j : Cell} {s t : ℝ} + (hsCell : s ∈ cellSet i) (htCell : t ∈ cellSet j) + (hsPhys : s ∈ physicalInterval) (htPhys : t ∈ physicalInterval) : + Contains (gvCellInterval i j) (Gv s t) := by + have hxs := cellPath_contains hsCell hsPhys + have hxt := cellPath_contains htCell htPhys + have htr := trig_contains hsCell hsPhys + have hdx := RatInterval.contains_sub hxs.1 hxt.1 + have hdy := RatInterval.contains_sub hxs.2 hxt.2 + have hone := point_contains 1 + have h := RatInterval.contains_add + (RatInterval.contains_add hone + (RatInterval.contains_mul hdx (RatInterval.contains_neg htr.2))) + (RatInterval.contains_mul hdy htr.1) + simpa [gvCellInterval, Gv, dot, v, sub_eq_add_neg, ExactReplay.oneI, add_assoc] using h + +end PartB +end GerverSofa + +end + +end + +end + +section + +/-! +# Coverage by the 64 exact mesh cells +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartB + +/-- Every physical angle belongs to one of the 64 closed cells between the +65 nodes `iπ/128`. -/ +theorem exists_cell_cover {t : ℝ} (ht : t ∈ physicalInterval) : + ∃ i : Cell, t ∈ cellSet i := by + let P : Nat → Prop := fun n => t ≤ nodeTime (n + 1) + have hnode64 : nodeTime 64 = Real.pi / 2 := by + norm_num [nodeTime, nodeCoeff]; ring + have h63 : P 63 := by + change t ≤ nodeTime 64 + simpa [hnode64] using ht.2 + have hex : ∃ n : Nat, P n := ⟨63, h63⟩ + let n : Nat := Nat.find hex + have hn63 : n ≤ 63 := Nat.find_min' hex h63 + have hn64 : n < 64 := by omega + refine ⟨⟨n, hn64⟩, ?_⟩ + constructor + · by_cases hn0 : n = 0 + · have hnode0 : nodeTime n = 0 := by + rw [hn0] + norm_num [nodeTime, nodeCoeff] + simpa [cellSet, hnode0] using ht.1 + · have hpred : n - 1 < n := Nat.sub_one_lt hn0 + have hnot : ¬ P (n - 1) := Nat.find_min hex hpred + have hlt : nodeTime ((n - 1) + 1) < t := lt_of_not_ge hnot + have hsucc : (n - 1) + 1 = n := Nat.sub_add_cancel (Nat.one_le_iff_ne_zero.2 hn0) + simpa [cellSet, hsucc] using hlt.le + · exact Nat.find_spec hex + +end PartB +end GerverSofa + +end + +end + +end + +section + +/-! +# Exact continuum support margins + +The 64×64 cell certificate is now transported to every pair of physical +angles. This is the semantic conclusion needed from Part B. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartB + +/-- First global support inequality on the complete square. -/ +theorem Gu_gt_target : + ∀ s ∈ physicalInterval, ∀ t ∈ physicalInterval, target < Gu s t := by + intro s hs t ht + rcases exists_cell_cover hs with ⟨i, hsi⟩ + rcases exists_cell_cover ht with ⟨j, htj⟩ + have hsem := guCell_contains hsi htj hs ht + have hrat := (all_cell_lower i j).1 + have hcast : (targetQ : ℝ) < ((guCellInterval i j).lo : ℝ) := by + exact_mod_cast hrat + simpa [target] using lt_of_lt_of_le hcast hsem.1 + +/-- Second global support inequality on the complete square. -/ +theorem Gv_gt_target : + ∀ s ∈ physicalInterval, ∀ t ∈ physicalInterval, target < Gv s t := by + intro s hs t ht + rcases exists_cell_cover hs with ⟨i, hsi⟩ + rcases exists_cell_cover ht with ⟨j, htj⟩ + have hsem := gvCell_contains hsi htj hs ht + have hrat := (all_cell_lower i j).2 + have hcast : (targetQ : ℝ) < ((gvCellInterval i j).lo : ℝ) := by + exact_mod_cast hrat + simpa [target] using lt_of_lt_of_le hcast hsem.1 + +/-- Manuscript form of the two `0.171` inequalities. -/ +theorem global_half_plane_margins : + (∀ s ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + (171 : ℝ) / 1000 < Gu s t) ∧ + (∀ s ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + ∀ t ∈ Set.Icc (0 : ℝ) (Real.pi / 2), + (171 : ℝ) / 1000 < Gv s t) := by + constructor + · simpa [physicalInterval, target, targetQ] using Gu_gt_target + · simpa [physicalInterval, target, targetQ] using Gv_gt_target + +end PartB +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle006.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle006.lean new file mode 100644 index 0000000000..41591796f3 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle006.lean @@ -0,0 +1,9406 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle002 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +public import Mathlib.Analysis.Calculus.Deriv.MeanValue +public import Mathlib.Analysis.Calculus.Deriv.Pow +public import Mathlib.Analysis.Calculus.Deriv.Prod +public import Mathlib.Analysis.Convex.Deriv +public import Mathlib.Analysis.Convex.PathConnected +public import Mathlib.Topology.Connected.Basic +public import Mathlib.Topology.Connected.Clopen +public import Mathlib.Topology.Constructions.SumProd +public import Mathlib.Topology.Order.Compact +public import Mathlib.Topology.Order.DenselyOrdered +public import Mathlib.Topology.Order.IntermediateValue +public import Mathlib.Topology.Order.MonotoneContinuity +public import Mathlib.Topology.Order.ProjIcc +public import Mathlib.Topology.Separation.Hausdorff +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartC.Semantics.Batch001`. +-/ + +@[expose] public section + +noncomputable section + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartC.Definitions`. +* `KernelOnly.PartC.Parameters`. +* `KernelOnly.PartC.ContactAlgebra`. +* `KernelOnly.PartC.GlobalSupport`. +* `KernelOnly.PartC.BaseGeometry`. +* `KernelOnly.PartC.TopologySpec`. +* `KernelOnly.PartC.GeometrySpec`. +* `KernelOnly.PartC.Stage2.MeshFacts`. +* `KernelOnly.PartC.Stage2.EnvelopeAlgebra`. +* `KernelOnly.PartC.Stage2.NoHiddenCore`. +* `KernelOnly.PartC.Stage2.SupportPhaseDerivatives`. +* `KernelOnly.PartC.Stage3.SupportDirect`. +* `KernelOnly.PartC.Stage3.FinalClosureDirect`. +* `KernelOnly.PartC.Stage4.PathDifferential`. +* `KernelOnly.PartC.Stage4.ExactGeometryFacts`. +* `KernelOnly.PartC.Stage4.NoHiddenMatchFacts`. +* `KernelOnly.PartC.Stage4.NoHiddenContinuityFacts`. +* `KernelOnly.PartC.Stage4.NoHiddenSignFacts`. +* `KernelOnly.PartC.Stage4.NoHiddenTurningFacts`. +* `KernelOnly.PartC.Stage4.NoHiddenDifferentialFacts`. +* `KernelOnly.PartC.Stage4.NoHiddenReflectionFacts`. +* `KernelOnly.PartC.Stage4.NoHiddenDirect`. +* `KernelOnly.PartC.Stage4.NicheEnvelopeSupport`. +* `KernelOnly.PartC.Stage4.SofaConvexityFacts`. +* `KernelOnly.PartC.Stage4.VerticalFillTopology`. +* `KernelOnly.PartC.Stage4.WallGraphs`. +* `KernelOnly.PartC.Stage4.NicheMembershipFacts`. +* `KernelOnly.PartC.Stage4.NicheFrontierTopology`. +* `KernelOnly.PartC.Stage4.NicheConnectedDirect`. +* `KernelOnly.PartC.Stage4.SofaFiberTopology`. +* `KernelOnly.PartC.Stage4.SofaTopologyDirect`. +* `KernelOnly.PartC.Stage4.FinalTopologyClosure`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Part C concrete objects + +This file fixes the exact objects used throughout Part C. The numerical root, +regularity and global two-variable support margins are inherited from the +closed Parts A and B. No alternative parameter vector or geometric set is +introduced here. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC + +/-- The certified twenty-two dimensional Gerver parameter vector. -/ +abbrev params : Romik.Params := PartB.params + +/-- Physical terminal angle. -/ +def T : ℝ := Real.pi / 2 + +/-- Reflected switching angles. -/ +def eta : ℝ := T - params.theta +/-- The reflected switching angle `π/2 - φ` for the certified parameters. -/ +def tau : ℝ := T - params.phi + +/-- The concrete cap, fixed sofa, reconstructed Romik set and frame. -/ +abbrev K : Set Point := Romik.K0 params +/-- The fixed Gerver sofa at the certified Romik parameters. -/ +abbrev G : Set Point := Romik.sofa params +/-- The reconstructed contact-curve set at the certified parameters. -/ +abbrev Sx : Set Point := Romik.reconstructedSet params +/-- The rigid frame path determined by the certified Romik parameters. -/ +abbrev frame : ℝ → SE2 := Romik.frame params + +/-- Endpoint support point used for the direct nonemptiness proof. -/ +def anchor : Point := (1, 0) + +/-- Piecewise body-frame derivative coefficients. This definition is local to +Part C so that the geometric layer does not import the later Part D article +claims. -/ +def alphaBetaAt (t : ℝ) : Point := + if t ≤ params.phi then Romik.alphaBeta1 params t + else if t ≤ params.theta then Romik.alphaBeta2 params t + else if t ≤ eta then Romik.alphaBeta3 params t + else if t ≤ tau then Romik.alphaBeta4 params t + else Romik.alphaBeta5 params t + +/-- The horizontal body-frame velocity coefficient. -/ +def alpha (t : ℝ) : ℝ := (alphaBetaAt t).1 +/-- The vertical body-frame velocity coefficient. -/ +def beta (t : ℝ) : ℝ := (alphaBetaAt t).2 + +/-- The four standard contact curves. -/ +def A (t : ℝ) : Point := + let x := Romik.path params t + let a := alpha t + (x.1 + a * (v t).1 + (u t).1, + x.2 + a * (v t).2 + (u t).2) + +/-- The inner contact curve `x + α v`. -/ +def B (t : ℝ) : Point := + let x := Romik.path params t + let a := alpha t + (x.1 + a * (v t).1, + x.2 + a * (v t).2) + +/-- The outer contact curve `x - β u + v`. -/ +def C (t : ℝ) : Point := + let x := Romik.path params t + let b := beta t + (x.1 - b * (u t).1 + (v t).1, + x.2 - b * (u t).2 + (v t).2) + +/-- The inner contact curve `x - β u`. -/ +def D (t : ℝ) : Point := + let x := Romik.path params t + let b := beta t + (x.1 - b * (u t).1, + x.2 - b * (u t).2) + +/-- Image of a parametrized curve over a time set. -/ +def curveImage (f : ℝ → Point) (I : Set ℝ) : Set Point := f '' I + +/-- A closed line segment, written without depending on a specialized convex +geometry API. -/ +def lineSegment (a b : Point) : Set Point := + {q | ∃ r ∈ Set.Icc (0 : ℝ) 1, + q = ((1 - r) * a.1 + r * b.1, + (1 - r) * a.2 + r * b.2)} + +/-- Set-valued form of the niche boundary described in the manuscript. -/ +def claimedNicheBoundary : Set Point := + lineSegment (D 0) (B T) ∪ + curveImage B (Set.Icc eta T) ∪ + curveImage (Romik.path params) (Set.Icc params.phi tau) ∪ + curveImage D (Set.Icc 0 params.theta) + +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Frozen parameter and endpoint consequences for Part C +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC + +theorem params_mem : params ∈ Romik.box := PartB.params_mem + +theorem params_equations : Romik.Equations params := PartB.params_equations + +theorem switchOrder : Romik.SwitchOrder params := PartB.params_switchOrder + +theorem pathContinuous : Continuous (Romik.path params) := PartB.continuous_path + +theorem frameContinuous : SE2.ContinuousPath frame := PartB.continuous_frame + +theorem pathZero : Romik.path params 0 = (0, 0) := PartB.path_zero + +theorem pathEndYZero : (Romik.path params T).2 = 0 := by + simpa [T] using + (Romik.path_end_y_zero_of_mem_box_and_equations params_mem params_equations) + +theorem phi_bounds : + ((1958868239504182093160893749 : ℝ) / + 50000000000000000000000000000) ≤ params.phi ∧ + params.phi ≤ + ((78354729580167283726435751 : ℝ) / + 2000000000000000000000000000) := + PartB.phi_bounds + +theorem theta_bounds : + ((34065075469136244723692787727 : ℝ) / + 50000000000000000000000000000) ≤ params.theta ∧ + params.theta ≤ + ((34065075469136244723692787983 : ℝ) / + 50000000000000000000000000000) := + PartB.theta_bounds + +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Exact contact-curve algebra + +These identities are independent of every interval estimate. They record +that `A` and `C` lie on the two outer supporting lines, while `B` and `D` lie +on the corresponding inner-wall lines. Later geometric work only has to prove +that the relevant contact points belong to the cap and that no hidden crossing +changes the boundary envelope. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC + +/-- `A(t)` lies on the first outer support line. -/ +theorem A_support_identity (t : ℝ) : + dot (A t) (u t) = dot (Romik.path params t) (u t) + 1 := by + simp only [A, dot, u, v] + nlinarith [Real.sin_sq_add_cos_sq t] + +/-- `C(t)` lies on the second outer support line. -/ +theorem C_support_identity (t : ℝ) : + dot (C t) (v t) = dot (Romik.path params t) (v t) + 1 := by + simp only [C, dot, u, v] + nlinarith [Real.sin_sq_add_cos_sq t] + +/-- `B(t)` lies on the first inner wall through the corner path. -/ +theorem B_inner_u_identity (t : ℝ) : + dot (B t - Romik.path params t) (u t) = 0 := by + change + ((B t).1 - (Romik.path params t).1) * Real.cos t + + ((B t).2 - (Romik.path params t).2) * Real.sin t = 0 + simp [B, v]; ring + +/-- `D(t)` lies on the second inner wall through the corner path. -/ +theorem D_inner_v_identity (t : ℝ) : + dot (D t - Romik.path params t) (v t) = 0 := by + change + ((D t).1 - (Romik.path params t).1) * (-Real.sin t) + + ((D t).2 - (Romik.path params t).2) * Real.cos t = 0 + simp [D, u]; ring + +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Consequences of the certified Part B continuum margins + +The two strict inequalities already certified on the complete square imply +that every point of the Gerver rotation path satisfies every outer supporting +half-plane inequality. This is one of the main bridges from Part B into the +global geometry of Part C. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC + +theorem Gu_positive {s t : ℝ} + (hs : s ∈ Set.Icc (0 : ℝ) T) + (ht : t ∈ Set.Icc (0 : ℝ) T) : + 0 < PartB.Gu s t := by + have h := PartB.global_half_plane_margins.1 s (by simpa [T] using hs) + t (by simpa [T] using ht) + linarith + +theorem Gv_positive {s t : ℝ} + (hs : s ∈ Set.Icc (0 : ℝ) T) + (ht : t ∈ Set.Icc (0 : ℝ) T) : + 0 < PartB.Gv s t := by + have h := PartB.global_half_plane_margins.2 s (by simpa [T] using hs) + t (by simpa [T] using ht) + linarith + +/-- Every path point lies in every first outer supporting half-plane. -/ +theorem path_mem_supportHalfU {s t : ℝ} + (hs : s ∈ Set.Icc (0 : ℝ) T) + (ht : t ∈ Set.Icc (0 : ℝ) T) : + Romik.path params t ∈ supportHalfU params s := by + have h := Gu_positive hs ht + change dot (Romik.path params t) (u s) ≤ + dot (Romik.path params s) (u s) + 1 + dsimp [PartB.Gu, dot] at h ⊢ + linarith + +/-- Every path point lies in every second outer supporting half-plane. -/ +theorem path_mem_supportHalfV {s t : ℝ} + (hs : s ∈ Set.Icc (0 : ℝ) T) + (ht : t ∈ Set.Icc (0 : ℝ) T) : + Romik.path params t ∈ supportHalfV params s := by + have h := Gv_positive hs ht + change dot (Romik.path params t) (v s) ≤ + dot (Romik.path params s) (v s) + 1 + dsimp [PartB.Gv, dot] at h ⊢ + linarith + +theorem path_mem_outer_supports {s t : ℝ} + (hs : s ∈ Set.Icc (0 : ℝ) T) + (ht : t ∈ Set.Icc (0 : ℝ) T) : + Romik.path params t ∈ + supportHalfU params s ∩ supportHalfV params s := + ⟨path_mem_supportHalfU hs ht, path_mem_supportHalfV hs ht⟩ + +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Part C geometric consequences already closed by the existing source + +Closedness, supporting-hallway containment, endpoint arms, motion continuity +and the set-theoretic identification with Romik's reconstruction require no new +numerical replay. They are collected here for the concrete certified +parameter vector. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC + +theorem closed_G : IsClosed G := Romik.isClosed_sofa params + +theorem G_subset_hallway : + ∀ s ∈ Set.Icc (0 : ℝ) 1, G ⊆ Romik.hallwayAt params s := + Romik.sofa_subset_hallwayAt params pathZero pathEndYZero + +theorem initialArm : ((frame 0).inv.act '' G) ⊆ horizontalArm := + Romik.initial_arm_of_path_zero params pathZero + +theorem finalArm : ((frame 1).inv.act '' G) ⊆ verticalArm := + Romik.final_arm_of_path_end_y_zero params pathEndYZero + +theorem G_eq_Sx : G = Sx := + Romik.sofa_eq_reconstructedSet params pathZero pathEndYZero + +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Exact topology target for the concrete Gerver set + +This file states, but does not postulate, the two genuinely remaining +set-theoretic obligations. A later concrete proof must construct a value of +`TopologyCertificate`; until then Part C cannot close. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC + +/-- Direct topology certificate with the manuscript's explicit endpoint +support witness, rather than an anonymous existential. -/ +structure TopologyCertificate : Prop where + anchor_mem : anchor ∈ G + connected : IsConnected G + +namespace TopologyCertificate + +theorem nonempty (cert : TopologyCertificate) : G.Nonempty := + ⟨anchor, cert.anchor_mem⟩ + +end TopologyCertificate +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Global support and niche-topology certificate interfaces + +The statements here encode the exact Part C geometry that is not allowed to be +hidden inside an arbitrary `connected` field: contact support, the two +no-hidden-crossing inequalities, and the claimed boundary of the niche. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC + +/-- First no-hidden-crossing inequality from the manuscript. -/ +def NoHiddenCrossingU : Prop := + ∀ r ∈ Set.Icc params.phi T, + ∀ t ∈ Set.Icc r T, + 0 ≤ dot (Romik.path params r - Romik.path params t) (u t) + +/-- Reflected no-hidden-crossing inequality. -/ +def NoHiddenCrossingV : Prop := + ∀ t ∈ Set.Icc 0 tau, + ∀ r ∈ Set.Icc t tau, + 0 ≤ dot (Romik.path params r - Romik.path params t) (v t) + +/-- Proof-carrying niche topology. The boundary equality is set-valued; the +orientation and eighteen-piece count belong to the later Part D boundary +certificate. -/ +structure NicheTopologyCertificate : Prop where + noHiddenU : NoHiddenCrossingU + noHiddenV : NoHiddenCrossingV + boundary_eq : frontier (Romik.niche params) = claimedNicheBoundary + niche_connected : IsConnected (Romik.niche params) + +/-- Complete genuinely new geometry required in Part C. -/ +structure GlobalGeometryCertificate : Prop where + supportA : ∀ t ∈ Set.Icc (0 : ℝ) T, A t ∈ K + supportC : ∀ t ∈ Set.Icc (0 : ℝ) T, C t ∈ K + nicheTopology : NicheTopologyCertificate + topology : TopologyCertificate + +namespace GlobalGeometryCertificate + +theorem nonempty (cert : GlobalGeometryCertificate) : G.Nonempty := + cert.topology.nonempty + +theorem connected (cert : GlobalGeometryCertificate) : IsConnected G := + cert.topology.connected + +end GlobalGeometryCertificate +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Part C Stage 2 public mesh and branch facts + +This module exposes the switch-cell classification already used internally in +Part B. It is deliberately proved again from the frozen angle boxes so that +Part C contact and no-hidden-crossing certificates can reuse the exact 64-cell +mesh without depending on private declarations. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage2 + +open RatInterval + +theorem node1_lt_phi : PartB.nodeTime 1 < params.phi := by + have hpi : Real.pi ≤ (ExactReplay.piI.hi : ℝ) := + ExactReplay.piI_contains_pi.2 + have hp := phi_bounds.1 + unfold PartB.nodeTime PartB.nodeCoeff + norm_num [ExactReplay.piI, ExactReplay.q] at hpi hp ⊢ + nlinarith + +theorem phi_lt_node2 : params.phi < PartB.nodeTime 2 := by + have hpi : (ExactReplay.piI.lo : ℝ) ≤ Real.pi := + ExactReplay.piI_contains_pi.1 + have hp := phi_bounds.2 + unfold PartB.nodeTime PartB.nodeCoeff + norm_num [ExactReplay.piI, ExactReplay.q] at hpi hp ⊢ + nlinarith + +theorem node27_lt_theta : PartB.nodeTime 27 < params.theta := by + have hpi : Real.pi ≤ (ExactReplay.piI.hi : ℝ) := + ExactReplay.piI_contains_pi.2 + have hp := theta_bounds.1 + unfold PartB.nodeTime PartB.nodeCoeff + norm_num [ExactReplay.piI, ExactReplay.q] at hpi hp ⊢ + nlinarith + +theorem theta_lt_node28 : params.theta < PartB.nodeTime 28 := by + have hpi : (ExactReplay.piI.lo : ℝ) ≤ Real.pi := + ExactReplay.piI_contains_pi.1 + have hp := theta_bounds.2 + unfold PartB.nodeTime PartB.nodeCoeff + norm_num [ExactReplay.piI, ExactReplay.q] at hpi hp ⊢ + nlinarith + +theorem node36_lt_eta : PartB.nodeTime 36 < eta := by + change PartB.nodeTime 36 < Real.pi / 2 - params.theta + have h := theta_lt_node28 + unfold PartB.nodeTime PartB.nodeCoeff at h ⊢ + norm_num at h ⊢ + linarith + +theorem eta_lt_node37 : eta < PartB.nodeTime 37 := by + change Real.pi / 2 - params.theta < PartB.nodeTime 37 + have h := node27_lt_theta + unfold PartB.nodeTime PartB.nodeCoeff at h ⊢ + norm_num at h ⊢ + linarith + +theorem node62_lt_tau : PartB.nodeTime 62 < tau := by + change PartB.nodeTime 62 < Real.pi / 2 - params.phi + have h := phi_lt_node2 + unfold PartB.nodeTime PartB.nodeCoeff at h ⊢ + norm_num at h ⊢ + linarith + +theorem tau_lt_node63 : tau < PartB.nodeTime 63 := by + change Real.pi / 2 - params.phi < PartB.nodeTime 63 + have h := node1_lt_phi + unfold PartB.nodeTime PartB.nodeCoeff at h ⊢ + norm_num at h ⊢ + linarith + +theorem phase1_cell {i : PartB.Cell} {t : ℝ} + (ht : t ∈ PartB.cellSet i) (hphase : t ≤ params.phi) : i.1 ≤ 1 := by + by_contra hnot + have hi : 2 ≤ i.1 := by omega + have h2i : PartB.nodeTime 2 ≤ PartB.nodeTime i.1 := + PartB.nodeTime_mono hi + linarith [phi_lt_node2, ht.1] + +theorem phase2_cell {i : PartB.Cell} {t : ℝ} + (ht : t ∈ PartB.cellSet i) + (hlo : params.phi < t) (hhi : t ≤ params.theta) : + 1 ≤ i.1 ∧ i.1 ≤ 27 := by + constructor + · by_contra hnot + have hi : i.1 + 1 ≤ 1 := by omega + have hend : PartB.nodeTime (i.1 + 1) ≤ PartB.nodeTime 1 := + PartB.nodeTime_mono hi + linarith [node1_lt_phi, ht.2] + · by_contra hnot + have hi : 28 ≤ i.1 := by omega + have h28i : PartB.nodeTime 28 ≤ PartB.nodeTime i.1 := + PartB.nodeTime_mono hi + linarith [theta_lt_node28, ht.1] + +theorem phase3_cell {i : PartB.Cell} {t : ℝ} + (ht : t ∈ PartB.cellSet i) + (hlo : params.theta < t) (hhi : t ≤ eta) : + 27 ≤ i.1 ∧ i.1 ≤ 36 := by + constructor + · by_contra hnot + have hi : i.1 + 1 ≤ 27 := by omega + have hend : PartB.nodeTime (i.1 + 1) ≤ PartB.nodeTime 27 := + PartB.nodeTime_mono hi + linarith [node27_lt_theta, ht.2] + · by_contra hnot + have hi : 37 ≤ i.1 := by omega + have h37i : PartB.nodeTime 37 ≤ PartB.nodeTime i.1 := + PartB.nodeTime_mono hi + linarith [eta_lt_node37, ht.1] + +theorem phase4_cell {i : PartB.Cell} {t : ℝ} + (ht : t ∈ PartB.cellSet i) + (hlo : eta < t) (hhi : t ≤ tau) : + 36 ≤ i.1 ∧ i.1 ≤ 62 := by + constructor + · by_contra hnot + have hi : i.1 + 1 ≤ 36 := by omega + have hend : PartB.nodeTime (i.1 + 1) ≤ PartB.nodeTime 36 := + PartB.nodeTime_mono hi + linarith [node36_lt_eta, ht.2] + · by_contra hnot + have hi : 63 ≤ i.1 := by omega + have h63i : PartB.nodeTime 63 ≤ PartB.nodeTime i.1 := + PartB.nodeTime_mono hi + linarith [tau_lt_node63, ht.1] + +theorem phase5_cell {i : PartB.Cell} {t : ℝ} + (ht : t ∈ PartB.cellSet i) (hlo : tau < t) : 62 ≤ i.1 := by + by_contra hnot + have hi : i.1 + 1 ≤ 62 := by omega + have hend : PartB.nodeTime (i.1 + 1) ≤ PartB.nodeTime 62 := + PartB.nodeTime_mono hi + linarith [node62_lt_tau, ht.2] + +theorem phi_nonneg : 0 ≤ params.phi := + (Romik.phi_pos_of_mem_box params_mem).le + +theorem tau_le_T : tau ≤ T := by + unfold tau + linarith [phi_nonneg] + +theorem zero_le_theta : 0 ≤ params.theta := by + linarith [phi_nonneg, switchOrder.phi_le_theta] + +theorem eta_le_tau : eta ≤ tau := by + simpa [eta, tau, T] using switchOrder.eta_le_tau + +theorem theta_le_eta : params.theta ≤ eta := by + simpa [eta, T] using switchOrder.theta_le_eta + +end Stage2 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Part C Stage 2 redesign: exact envelope algebra + +The first 64x64 contact-box attempt was intentionally fail-closed but too +coarse at contact/equality cells: interval dependency destroys exact +cancellation. This module switches to the analytic envelope coefficients. + +For the outer `u`-contact curve `A`, the phasewise velocity is a nonnegative +scalar multiple of `v`; for the outer `v`-contact curve `C`, the velocity is a +nonpositive scalar multiple of `u`. The scalar coefficients below are the +five exact algebraic pieces. No numerical root is recomputed here. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage2 + +/-- Phasewise scalar multiplying `v(t)` in the derivative of `A`. -/ +def rhoA (t : ℝ) : ℝ := + if t ≤ params.phi then 0 + else if t ≤ params.theta then + -(1 / 4 : ℝ) * t * t + params.b1 * t + params.b2 + 1 / 2 + else if t ≤ eta then + 1 + params.c1 - t + else if t ≤ tau then + params.d1 - t / 2 + else + 1 / 2 + +/-- Phasewise nonnegative scalar for `C'(t) = -rhoC(t) * u(t)`. -/ +def rhoC (t : ℝ) : ℝ := + if t ≤ params.phi then 1 / 2 + else if t ≤ params.theta then + t / 2 - params.b1 + else if t ≤ eta then + 1 + params.c2 + t + else if t ≤ tau then + -(1 / 4 : ℝ) * t * t + params.d1 * t + params.d2 + 1 / 2 + else + 0 + +private theorem b1_lower : (-53 / 100 : ℝ) ≤ params.b1 := by + have hp := params_mem + dsimp [Romik.box, qR] at hp + have h : + ((-52762459802678462416060380937 : ℝ) / + 100000000000000000000000000000) ≤ params.b1 := by + aesop + norm_num at h ⊢ + linarith + +private theorem b1_upper : params.b1 ≤ (-1 / 2 : ℝ) := by + have hp := params_mem + dsimp [Romik.box, qR] at hp + have h : params.b1 ≤ + ((-52762459802678462416040380937 : ℝ) / + 100000000000000000000000000000) := by + aesop + norm_num at h ⊢ + linarith + +private theorem b2_lower : (9 / 10 : ℝ) ≤ params.b2 := by + have hp := params_mem + dsimp [Romik.box, qR] at hp + have h : + ((92025838516063762289360579501 : ℝ) / + 100000000000000000000000000000) ≤ params.b2 := by + aesop + norm_num at h ⊢ + linarith + +private theorem c1_lower : (3 / 5 : ℝ) ≤ params.c1 := by + have hp := params_mem + dsimp [Romik.box, qR] at hp + have h : + ((313022761424232933776114655193 : ℝ) / + 500000000000000000000000000000) ≤ params.c1 := by + aesop + norm_num at h ⊢ + linarith + +private theorem c2_lower : (-1 : ℝ) ≤ params.c2 := by + have hp := params_mem + dsimp [Romik.box, qR] at hp + have h : + ((-151160128631428920268654781 : ℝ) / + 160000000000000000000000000) ≤ params.c2 := by + aesop + norm_num at h ⊢ + linarith + +private theorem d1_lower : (13 / 10 : ℝ) ≤ params.d1 := by + have hp := params_mem + dsimp [Romik.box, qR] at hp + have h : + ((1641278451780291167220080819 : ℝ) / + 1250000000000000000000000000) ≤ params.d1 := by + aesop + norm_num at h ⊢ + linarith + +private theorem d2_lower : (-53 / 100 : ℝ) ≤ params.d2 := by + have hp := params_mem + dsimp [Romik.box, qR] at hp + have h : + ((-105076534082910887440587258861 : ℝ) / + 200000000000000000000000000000) ≤ params.d2 := by + aesop + norm_num at h ⊢ + linarith + +private theorem theta_lower_crude : (2 / 3 : ℝ) ≤ params.theta := by + have h := theta_bounds.1 + norm_num at h ⊢ + linarith + +private theorem theta_upper_crude : params.theta ≤ (7 / 10 : ℝ) := by + have h := theta_bounds.2 + norm_num at h ⊢ + linarith + +private theorem T_lt_two : T < 2 := by + have hpi := ExactReplay.piI_contains_pi + have hhi : Real.pi ≤ (ExactReplay.piI.hi : ℝ) := hpi.2 + have hfour : (ExactReplay.piI.hi : ℝ) < 4 := by + norm_num [ExactReplay.piI, ExactReplay.q] + dsimp [T] + linarith + +private theorem three_halves_lt_T : (3 / 2 : ℝ) < T := by + have hpi := ExactReplay.piI_contains_pi + have hlo : (ExactReplay.piI.lo : ℝ) ≤ Real.pi := hpi.1 + have hthree : (3 : ℝ) < (ExactReplay.piI.lo : ℝ) := by + norm_num [ExactReplay.piI, ExactReplay.q] + dsimp [T] + linarith + +private theorem eta_lt_four_thirds : eta < (4 / 3 : ℝ) := by + dsimp [eta] + nlinarith [T_lt_two, theta_lower_crude] + +private theorem four_fifths_lt_eta : (4 / 5 : ℝ) < eta := by + dsimp [eta] + nlinarith [three_halves_lt_T, theta_upper_crude] + +private theorem rhoA_phase2_nonneg + {t : ℝ} (ht0 : 0 ≤ t) (htθ : t ≤ params.theta) : + 0 ≤ -(1 / 4 : ℝ) * t * t + params.b1 * t + params.b2 + 1 / 2 := by + have ht07 : t ≤ (7 / 10 : ℝ) := le_trans htθ theta_upper_crude + have ht1 : t ≤ 1 := by linarith + have hbt : (-53 / 100 : ℝ) * t ≤ params.b1 * t := + mul_le_mul_of_nonneg_right b1_lower ht0 + have hquad : 0 ≤ t * (1 - t) := mul_nonneg ht0 (by linarith) + nlinarith [b2_lower] + +private theorem rhoA_phase3_nonneg + {t : ℝ} (_ht0 : 0 ≤ t) (htη : t ≤ eta) : + 0 ≤ 1 + params.c1 - t := by + have ht : t < (4 / 3 : ℝ) := lt_of_le_of_lt htη eta_lt_four_thirds + nlinarith [c1_lower] + +private theorem rhoA_phase4_nonneg + {t : ℝ} (_ht0 : 0 ≤ t) (htτ : t ≤ tau) : + 0 ≤ params.d1 - t / 2 := by + have htT : t ≤ T := le_trans htτ tau_le_T + have ht2 : t < 2 := lt_of_le_of_lt htT T_lt_two + nlinarith [d1_lower] + +private theorem rhoC_phase2_nonneg + {t : ℝ} (ht0 : 0 ≤ t) : + 0 ≤ t / 2 - params.b1 := by + nlinarith [b1_upper] + +private theorem rhoC_phase3_nonneg + {t : ℝ} (ht0 : 0 ≤ t) : + 0 ≤ 1 + params.c2 + t := by + nlinarith [c2_lower] + +private theorem rhoC_phase4_nonneg + {t : ℝ} (hηt : eta ≤ t) (htτ : t ≤ tau) : + 0 ≤ -(1 / 4 : ℝ) * t * t + params.d1 * t + params.d2 + 1 / 2 := by + have ht0 : 0 ≤ t := by + have : (0 : ℝ) < eta := lt_trans (by norm_num) four_fifths_lt_eta + linarith + have htT : t ≤ T := le_trans htτ tau_le_T + have ht2 : t < 2 := lt_of_le_of_lt htT T_lt_two + have hmul : (13 / 10 : ℝ) * t ≤ params.d1 * t := + mul_le_mul_of_nonneg_right d1_lower ht0 + have hquad : 0 ≤ t * (2 - t) := mul_nonneg ht0 (by linarith) + nlinarith [d2_lower, four_fifths_lt_eta] + +/-- The `A` envelope coefficient is nonnegative on the full physical range. -/ +theorem rhoA_nonneg {t : ℝ} (ht : t ∈ Set.Icc (0 : ℝ) T) : + 0 ≤ rhoA t := by + unfold rhoA + split_ifs with hφ hθ hη hτ + · norm_num + · exact rhoA_phase2_nonneg ht.1 hθ + · exact rhoA_phase3_nonneg ht.1 hη + · exact rhoA_phase4_nonneg ht.1 hτ + · norm_num + +/-- The reflected `C` envelope coefficient is nonnegative on the full physical range. -/ +theorem rhoC_nonneg {t : ℝ} (ht : t ∈ Set.Icc (0 : ℝ) T) : + 0 ≤ rhoC t := by + unfold rhoC + split_ifs with hφ hθ hη hτ + · norm_num + · exact rhoC_phase2_nonneg ht.1 + · exact rhoC_phase3_nonneg ht.1 + · have hηt : eta ≤ t := le_of_lt (lt_of_not_ge hη) + exact rhoC_phase4_nonneg hηt hτ + · norm_num + +/-- The first outer contact starts at the exact fan endpoint `(1,0)`. -/ +theorem A_zero_eq_anchor : A 0 = anchor := by + have hφ : (0 : ℝ) ≤ params.phi := le_of_lt (Romik.phi_pos_of_mem_box params_mem) + have ha2 := Romik.a2_eq_neg_quarter_of_equations params_equations + have halpha0 : alpha 0 = 0 := by + unfold alpha alphaBetaAt + simp [hφ, Romik.alphaBeta1, ha2]; norm_num + simp [A, anchor, pathZero, halpha0, u, v] + +/-- The second outer contact ends exactly on the fan boundary. -/ +theorem C_T_snd_zero : (C T).2 = 0 := by + have hφpos : 0 < params.phi := Romik.phi_pos_of_mem_box params_mem + have hτT : tau < T := by + dsimp [tau] + linarith + have hητ : eta ≤ tau := switchOrder.eta_le_tau + have hθη : params.theta ≤ eta := switchOrder.theta_le_eta + have hφθ : params.phi ≤ params.theta := switchOrder.phi_le_theta + have hφT : params.phi < T := lt_of_le_of_lt (le_trans hφθ (le_trans hθη hητ)) hτT + have hθT : params.theta < T := lt_of_le_of_lt (le_trans hθη hητ) hτT + have hηT : eta < T := lt_of_le_of_lt hητ hτT + have he2 := Romik.e2_eq_quarter_of_equations params_equations + have hABT : alphaBetaAt T = Romik.alphaBeta5 params T := by + unfold alphaBetaAt + rw [ite_eq_right (not_le.mpr hφT)] + rw [ite_eq_right (not_le.mpr hθT)] + rw [ite_eq_right (not_le.mpr hηT)] + rw [ite_eq_right (not_le.mpr hτT)] + have hbetaT : beta T = 0 := by + rw [beta, hABT] + simp [Romik.alphaBeta5, T, he2]; norm_num + change (Romik.path params T).2 - beta T * (u T).2 + (v T).2 = 0 + rw [pathEndYZero, hbetaT] + simp [u, v, T] + +end Stage2 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Exact cell reduction of the two no-hidden-crossing inequalities + +Off-diagonal mesh cells are reduced to executable upper bounds for the already +sound Part B intervals `Gu` and `Gv`. The only analytic remainder after all +128 row certificates pass is the ordered triangle inside each single mesh +cell, named `SameCellU` and `SameCellV` below. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage2 + +/-- Manuscript `U(r,t)` in the orientation used by `NoHiddenCrossingU`. -/ +def UValue (r t : ℝ) : ℝ := + dot (Romik.path params r - Romik.path params t) (u t) + +/-- Reflected manuscript `V(t,r)`. -/ +def VValue (t r : ℝ) : ℝ := + dot (Romik.path params r - Romik.path params t) (v t) + +end Stage2 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# C10: source-clean phase derivative identities — residual batch fix + +This revision keeps the C09 no-`convert` architecture and fixes the complete residual class from the +C09 clean build. +It uses eta-expanded derivative combinators (`fun_add`, `fun_sub`, `fun_mul`, +`fun_neg`, `fun_smul`) so the function carried by `HasDerivAt` is in the desired +shape from the start. The proof remains organized in body coordinates and the +accompanying runner forces a fresh build of this module. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage2 + +/-- Phase-local outer `A` contact, written in vector form. -/ +def phaseA1 (t : ℝ) : Point := + Romik.path1 params t + (Romik.alphaBeta1 params t).1 • v t + u t + +/-- The phase 2 formula for the outer A contact curve. -/ +def phaseA2 (t : ℝ) : Point := + Romik.path2 params t + (Romik.alphaBeta2 params t).1 • v t + u t + +/-- The phase 3 formula for the outer A contact curve. -/ +def phaseA3 (t : ℝ) : Point := + Romik.path3 params t + (Romik.alphaBeta3 params t).1 • v t + u t + +/-- The phase 4 formula for the outer A contact curve. -/ +def phaseA4 (t : ℝ) : Point := + Romik.path4 params t + (Romik.alphaBeta4 params t).1 • v t + u t + +/-- The phase 5 formula for the outer A contact curve. -/ +def phaseA5 (t : ℝ) : Point := + Romik.path5 params t + (Romik.alphaBeta5 params t).1 • v t + u t + +/-- Phase-local outer `C` contact, written in vector form. -/ +def phaseC1 (t : ℝ) : Point := + Romik.path1 params t - (Romik.alphaBeta1 params t).2 • u t + v t + +/-- The phase 2 formula for the outer C contact curve. -/ +def phaseC2 (t : ℝ) : Point := + Romik.path2 params t - (Romik.alphaBeta2 params t).2 • u t + v t + +/-- The phase 3 formula for the outer C contact curve. -/ +def phaseC3 (t : ℝ) : Point := + Romik.path3 params t - (Romik.alphaBeta3 params t).2 • u t + v t + +/-- The phase 4 formula for the outer C contact curve. -/ +def phaseC4 (t : ℝ) : Point := + Romik.path4 params t - (Romik.alphaBeta4 params t).2 • u t + v t + +/-- The phase 5 formula for the outer C contact curve. -/ +def phaseC5 (t : ℝ) : Point := + Romik.path5 params t - (Romik.alphaBeta5 params t).2 • u t + v t + +/-- The vertical frame vector scaled by the contact coefficient `r`. -/ +def vecA (r t : ℝ) : Point := + (-r * Real.sin t, r * Real.cos t) + +/-- The negative horizontal frame vector scaled by the contact coefficient `r`. -/ +def vecC (r t : ℝ) : Point := + (-r * Real.cos t, -r * Real.sin t) + +/-- Derivative of the scalar square in the additive form used by the phase formulas. -/ +theorem square_hasDerivAt (t : ℝ) : + HasDerivAt (fun s : ℝ => s * s) (t + t) t := by + have h := (hasDerivAt_id t).fun_mul (hasDerivAt_id t) + simpa only [id_eq, one_mul, mul_one] using h + +/-- The horizontal frame vector has derivative equal to the vertical frame vector. -/ +theorem u_hasDerivAt (t : ℝ) : HasDerivAt u (v t) t := by + change HasDerivAt (fun s : ℝ => (Real.cos s, Real.sin s)) + (-Real.sin t, Real.cos t) t + exact (Real.hasDerivAt_cos t).prodMk (Real.hasDerivAt_sin t) + +/-- The vertical frame vector has derivative equal to the negative horizontal vector. -/ +theorem v_hasDerivAt (t : ℝ) : HasDerivAt v (-u t) t := by + change HasDerivAt (fun s : ℝ => (-Real.sin s, Real.cos s)) + (-Real.cos t, -Real.sin t) t + exact (Real.hasDerivAt_sin t).fun_neg.prodMk (Real.hasDerivAt_cos t) + +/-- Derivative of `addK (rot t (z1 t,z2 t))` in body coordinates. -/ +theorem rotAddK_hasDerivAt + {z1 z2 : ℝ → ℝ} {z1' z2' k1 k2 : ℝ} (t : ℝ) + (hz1 : HasDerivAt z1 z1' t) (hz2 : HasDerivAt z2 z2' t) : + HasDerivAt + (fun s => Romik.addK (Romik.rot s (z1 s, z2 s)) k1 k2) + (Romik.rot t (z1' - z2 t, z2' + z1 t)) t := by + apply HasDerivAt.prodMk + · change HasDerivAt + (fun s => Real.cos s * z1 s - Real.sin s * z2 s + k1) + (Real.cos t * (z1' - z2 t) - Real.sin t * (z2' + z1 t)) t + have h1 := (Real.hasDerivAt_cos t).fun_mul hz1 + have h2 := (Real.hasDerivAt_sin t).fun_mul hz2 + have h := (h1.fun_sub h2).fun_add (hasDerivAt_const t k1) + exact h.congr_deriv (by ring) + · change HasDerivAt + (fun s => Real.sin s * z1 s + Real.cos s * z2 s + k2) + (Real.sin t * (z1' - z2 t) + Real.cos t * (z2' + z1 t)) t + have h1 := (Real.hasDerivAt_sin t).fun_mul hz1 + have h2 := (Real.hasDerivAt_cos t).fun_mul hz2 + have h := (h1.fun_add h2).fun_add (hasDerivAt_const t k2) + exact h.congr_deriv (by ring) + +/-- The phase 1 path has the specified velocity in the rotating frame. -/ +theorem path1_hasDerivAt (t : ℝ) : + HasDerivAt (Romik.path1 params) + (Romik.rot t (Romik.alphaBeta1 params t)) t := by + let z1 : ℝ → ℝ := fun s => + params.a1 * Real.cos s + params.a2 * Real.sin s - 1 + let z2 : ℝ → ℝ := fun s => + -params.a2 * Real.cos s + params.a1 * Real.sin s - 1 / 2 + have hz1 : HasDerivAt z1 + (-params.a1 * Real.sin t + params.a2 * Real.cos t) t := by + have h1 := HasDerivAt.const_mul params.a1 (Real.hasDerivAt_cos t) + have h2 := HasDerivAt.const_mul params.a2 (Real.hasDerivAt_sin t) + have h := (h1.fun_add h2).fun_sub (hasDerivAt_const t (1 : ℝ)) + dsimp [z1] + exact h.congr_deriv (by ring) + have hz2 : HasDerivAt z2 + (params.a2 * Real.sin t + params.a1 * Real.cos t) t := by + have h1 := HasDerivAt.const_mul (-params.a2) (Real.hasDerivAt_cos t) + have h2 := HasDerivAt.const_mul params.a1 (Real.hasDerivAt_sin t) + have h := (h1.fun_add h2).fun_sub (hasDerivAt_const t (1 / 2 : ℝ)) + dsimp [z2] + exact h.congr_deriv (by ring) + change HasDerivAt + (fun s => Romik.addK (Romik.rot s (z1 s, z2 s)) params.k11 params.k12) + (Romik.rot t (Romik.alphaBeta1 params t)) t + have h := rotAddK_hasDerivAt (k1 := params.k11) (k2 := params.k12) t hz1 hz2 + refine h.congr_deriv ?_ + apply congrArg (Romik.rot t) + ext <;> dsimp [z1, z2, Romik.alphaBeta1] <;> ring + +/-- The phase 2 path has the specified velocity in the rotating frame. -/ +theorem path2_hasDerivAt (t : ℝ) : + HasDerivAt (Romik.path2 params) + (Romik.rot t (Romik.alphaBeta2 params t)) t := by + let z1 : ℝ → ℝ := fun s => + -(1 / 4 : ℝ) * s * s + params.b1 * s + params.b2 + let z2 : ℝ → ℝ := fun s => + (1 / 2 : ℝ) * s - params.b1 - 1 + have hz1 : HasDerivAt z1 (-(1 / 2 : ℝ) * t + params.b1) t := by + have h1 := HasDerivAt.const_mul (-(1 / 4 : ℝ)) (square_hasDerivAt t) + have h2 := HasDerivAt.const_mul params.b1 (hasDerivAt_id t) + have hraw := (h1.fun_add h2).fun_add (hasDerivAt_const t params.b2) + have heq : (-(1 / 4 : ℝ)) * (t + t) + params.b1 * 1 + 0 = + -(1 / 2 : ℝ) * t + params.b1 := by ring + rw [← heq] + simpa only [z1, id_eq, mul_assoc] using hraw + have hz2 : HasDerivAt z2 (1 / 2 : ℝ) t := by + have h1 := HasDerivAt.const_mul (1 / 2 : ℝ) (hasDerivAt_id t) + have h := (h1.fun_sub (hasDerivAt_const t params.b1)).fun_sub + (hasDerivAt_const t (1 : ℝ)) + dsimp [z2] + exact h.congr_deriv (by ring) + change HasDerivAt + (fun s => Romik.addK (Romik.rot s (z1 s, z2 s)) params.k21 params.k22) + (Romik.rot t (Romik.alphaBeta2 params t)) t + have h := rotAddK_hasDerivAt (k1 := params.k21) (k2 := params.k22) t hz1 hz2 + refine h.congr_deriv ?_ + apply congrArg (Romik.rot t) + ext <;> dsimp [z1, z2, Romik.alphaBeta2] <;> ring + +/-- The phase 3 path has the specified velocity in the rotating frame. -/ +theorem path3_hasDerivAt (t : ℝ) : + HasDerivAt (Romik.path3 params) + (Romik.rot t (Romik.alphaBeta3 params t)) t := by + let z1 : ℝ → ℝ := fun s => params.c1 - s + let z2 : ℝ → ℝ := fun s => params.c2 + s + have hz1 : HasDerivAt z1 (-1) t := by + have h := (hasDerivAt_const t params.c1).fun_sub (hasDerivAt_id t) + dsimp [z1] + exact h.congr_deriv (by ring) + have hz2 : HasDerivAt z2 1 t := by + have h := (hasDerivAt_const t params.c2).fun_add (hasDerivAt_id t) + dsimp [z2] + exact h.congr_deriv (by ring) + change HasDerivAt + (fun s => Romik.addK (Romik.rot s (z1 s, z2 s)) params.k31 params.k32) + (Romik.rot t (Romik.alphaBeta3 params t)) t + have h := rotAddK_hasDerivAt (k1 := params.k31) (k2 := params.k32) t hz1 hz2 + refine h.congr_deriv ?_ + apply congrArg (Romik.rot t) + ext <;> dsimp [z1, z2, Romik.alphaBeta3] <;> ring + +/-- The phase 4 path has the specified velocity in the rotating frame. -/ +theorem path4_hasDerivAt (t : ℝ) : + HasDerivAt (Romik.path4 params) + (Romik.rot t (Romik.alphaBeta4 params t)) t := by + let z1 : ℝ → ℝ := fun s => -(1 / 2 : ℝ) * s + params.d1 - 1 + let z2 : ℝ → ℝ := fun s => + -(1 / 4 : ℝ) * s * s + params.d1 * s + params.d2 + have hz1 : HasDerivAt z1 (-(1 / 2 : ℝ)) t := by + have h1 := HasDerivAt.const_mul (-(1 / 2 : ℝ)) (hasDerivAt_id t) + have h := (h1.fun_add (hasDerivAt_const t params.d1)).fun_sub + (hasDerivAt_const t (1 : ℝ)) + dsimp [z1] + exact h.congr_deriv (by ring) + have hz2 : HasDerivAt z2 (-(1 / 2 : ℝ) * t + params.d1) t := by + have h1 := HasDerivAt.const_mul (-(1 / 4 : ℝ)) (square_hasDerivAt t) + have h2 := HasDerivAt.const_mul params.d1 (hasDerivAt_id t) + have hraw := (h1.fun_add h2).fun_add (hasDerivAt_const t params.d2) + have heq : (-(1 / 4 : ℝ)) * (t + t) + params.d1 * 1 + 0 = + -(1 / 2 : ℝ) * t + params.d1 := by ring + rw [← heq] + simpa only [z2, id_eq, mul_assoc] using hraw + change HasDerivAt + (fun s => Romik.addK (Romik.rot s (z1 s, z2 s)) params.k41 params.k42) + (Romik.rot t (Romik.alphaBeta4 params t)) t + have h := rotAddK_hasDerivAt (k1 := params.k41) (k2 := params.k42) t hz1 hz2 + refine h.congr_deriv ?_ + apply congrArg (Romik.rot t) + ext <;> dsimp [z1, z2, Romik.alphaBeta4] <;> ring + +/-- The phase 5 path has the specified velocity in the rotating frame. -/ +theorem path5_hasDerivAt (t : ℝ) : + HasDerivAt (Romik.path5 params) + (Romik.rot t (Romik.alphaBeta5 params t)) t := by + let z1 : ℝ → ℝ := fun s => + params.e1 * Real.cos s + params.e2 * Real.sin s - 1 / 2 + let z2 : ℝ → ℝ := fun s => + -params.e2 * Real.cos s + params.e1 * Real.sin s - 1 + have hz1 : HasDerivAt z1 + (-params.e1 * Real.sin t + params.e2 * Real.cos t) t := by + have h1 := HasDerivAt.const_mul params.e1 (Real.hasDerivAt_cos t) + have h2 := HasDerivAt.const_mul params.e2 (Real.hasDerivAt_sin t) + have h := (h1.fun_add h2).fun_sub (hasDerivAt_const t (1 / 2 : ℝ)) + dsimp [z1] + exact h.congr_deriv (by ring) + have hz2 : HasDerivAt z2 + (params.e2 * Real.sin t + params.e1 * Real.cos t) t := by + have h1 := HasDerivAt.const_mul (-params.e2) (Real.hasDerivAt_cos t) + have h2 := HasDerivAt.const_mul params.e1 (Real.hasDerivAt_sin t) + have h := (h1.fun_add h2).fun_sub (hasDerivAt_const t (1 : ℝ)) + dsimp [z2] + exact h.congr_deriv (by ring) + change HasDerivAt + (fun s => Romik.addK (Romik.rot s (z1 s, z2 s)) params.k51 params.k52) + (Romik.rot t (Romik.alphaBeta5 params t)) t + have h := rotAddK_hasDerivAt (k1 := params.k51) (k2 := params.k52) t hz1 hz2 + refine h.congr_deriv ?_ + apply congrArg (Romik.rot t) + ext <;> dsimp [z1, z2, Romik.alphaBeta5] <;> ring + +/-- Generic outer-A envelope identity from `x'=R_t(alpha,beta)`. -/ +private theorem contactA_hasDerivAt + {x : ℝ → Point} {ab : ℝ → Point} {a' : ℝ} (t : ℝ) + (hx : HasDerivAt x (Romik.rot t (ab t)) t) + (ha : HasDerivAt (fun s => (ab s).1) a' t) : + HasDerivAt + (fun s => x s + (ab s).1 • v s + u s) + (vecA ((ab t).2 + a' + 1) t) t := by + have hscaled := ha.fun_smul (v_hasDerivAt t) + have h := (hx.fun_add hscaled).fun_add (u_hasDerivAt t) + refine h.congr_deriv ?_ + ext <;> simp [Romik.rot, u, v, vecA] <;> ring + +/-- Generic outer-C envelope identity from `x'=R_t(alpha,beta)`. -/ +private theorem contactC_hasDerivAt + {x : ℝ → Point} {ab : ℝ → Point} {b' : ℝ} (t : ℝ) + (hx : HasDerivAt x (Romik.rot t (ab t)) t) + (hb : HasDerivAt (fun s => (ab s).2) b' t) : + HasDerivAt + (fun s => x s - (ab s).2 • u s + v s) + (vecC (b' + 1 - (ab t).1) t) t := by + have hscaled := hb.fun_smul (u_hasDerivAt t) + have h := (hx.fun_sub hscaled).fun_add (v_hasDerivAt t) + refine h.congr_deriv ?_ + ext <;> simp [Romik.rot, u, v, vecC] <;> ring + +private theorem alpha1_fst_hasDerivAt (t : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta1 params s).1) + (-2 * params.a1 * Real.cos t - 2 * params.a2 * Real.sin t) t := by + have h1 := HasDerivAt.const_mul (-2 * params.a1) (Real.hasDerivAt_sin t) + have h2 := HasDerivAt.const_mul (2 * params.a2) (Real.hasDerivAt_cos t) + have h := (h1.fun_add h2).fun_add (hasDerivAt_const t (1 / 2 : ℝ)) + dsimp [Romik.alphaBeta1] + exact h.congr_deriv (by ring) + +private theorem alpha2_fst_hasDerivAt (t : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta2 params s).1) (-1) t := by + have h := (hasDerivAt_const t (1 + 2 * params.b1)).fun_sub (hasDerivAt_id t) + dsimp [Romik.alphaBeta2] + exact h.congr_deriv (by ring) + +private theorem alpha3_fst_hasDerivAt (t : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta3 params s).1) (-1) t := by + have h := (hasDerivAt_const t (-1 - params.c2)).fun_sub (hasDerivAt_id t) + dsimp [Romik.alphaBeta3] + exact h.congr_deriv (by ring) + +private theorem alpha4_fst_hasDerivAt (t : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta4 params s).1) + ((1 / 2 : ℝ) * t - params.d1) t := by + have h1 := HasDerivAt.const_mul (1 / 4 : ℝ) (square_hasDerivAt t) + have h2 := HasDerivAt.const_mul params.d1 (hasDerivAt_id t) + have hraw := (((h1.fun_sub h2).fun_sub (hasDerivAt_const t params.d2)).fun_sub + (hasDerivAt_const t (1 / 2 : ℝ))) + have heq : (1 / 4 : ℝ) * (t + t) - params.d1 * 1 - 0 - 0 = + (1 / 2 : ℝ) * t - params.d1 := by ring + rw [← heq] + simpa only [Romik.alphaBeta4, id_eq, mul_assoc] using hraw + +private theorem alpha5_fst_hasDerivAt (t : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta5 params s).1) + (-2 * params.e1 * Real.cos t - 2 * params.e2 * Real.sin t) t := by + have h1 := HasDerivAt.const_mul (2 * params.e1) (Real.hasDerivAt_sin t) + have h2 := HasDerivAt.const_mul (2 * params.e2) (Real.hasDerivAt_cos t) + have h := ((hasDerivAt_const t (1 : ℝ)).fun_sub h1).fun_add h2 + dsimp [Romik.alphaBeta5] + exact h.congr_deriv (by ring) + +private theorem beta1_hasDerivAt (t : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta1 params s).2) + (-2 * params.a1 * Real.sin t + 2 * params.a2 * Real.cos t) t := by + have h1 := HasDerivAt.const_mul (2 * params.a1) (Real.hasDerivAt_cos t) + have h2 := HasDerivAt.const_mul (2 * params.a2) (Real.hasDerivAt_sin t) + have h := (h1.fun_add h2).fun_sub (hasDerivAt_const t (1 : ℝ)) + dsimp [Romik.alphaBeta1] + exact h.congr_deriv (by ring) + +private theorem beta2_hasDerivAt (t : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta2 params s).2) + (-(1 / 2 : ℝ) * t + params.b1) t := by + have h1 := HasDerivAt.const_mul (-(1 / 4 : ℝ)) (square_hasDerivAt t) + have h2 := HasDerivAt.const_mul params.b1 (hasDerivAt_id t) + have hraw := ((h1.fun_add h2).fun_add (hasDerivAt_const t params.b2)).fun_add + (hasDerivAt_const t (1 / 2 : ℝ)) + have heq : (-(1 / 4 : ℝ)) * (t + t) + params.b1 * 1 + 0 + 0 = + -(1 / 2 : ℝ) * t + params.b1 := by ring + rw [← heq] + simpa only [Romik.alphaBeta2, id_eq, mul_assoc] using hraw + +private theorem beta3_hasDerivAt (t : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta3 params s).2) (-1) t := by + have h := (hasDerivAt_const t (1 + params.c1)).fun_sub (hasDerivAt_id t) + dsimp [Romik.alphaBeta3] + exact h.congr_deriv (by ring) + +private theorem beta4_hasDerivAt (t : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta4 params s).2) (-1) t := by + have h := (hasDerivAt_const t (2 * params.d1 - 1)).fun_sub (hasDerivAt_id t) + dsimp [Romik.alphaBeta4] + exact h.congr_deriv (by ring) + +private theorem beta5_hasDerivAt (t : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta5 params s).2) + (-2 * params.e1 * Real.sin t + 2 * params.e2 * Real.cos t) t := by + have h1 := HasDerivAt.const_mul (2 * params.e1) (Real.hasDerivAt_cos t) + have h2 := HasDerivAt.const_mul (2 * params.e2) (Real.hasDerivAt_sin t) + have h := (h1.fun_add h2).fun_sub (hasDerivAt_const t (1 / 2 : ℝ)) + dsimp [Romik.alphaBeta5] + exact h.congr_deriv (by ring) + +/-- Phase 1: `A' = 0 * v`. -/ +theorem A1_hasDerivAt (t : ℝ) : + HasDerivAt phaseA1 (vecA 0 t) t := by + change HasDerivAt + (fun s => Romik.path1 params s + (Romik.alphaBeta1 params s).1 • v s + u s) + (vecA 0 t) t + have h := contactA_hasDerivAt t (path1_hasDerivAt t) (alpha1_fst_hasDerivAt t) + refine h.congr_deriv ?_ + apply congrArg (fun r => vecA r t) + dsimp [Romik.alphaBeta1] + ring + +/-- Phase 2: `A' = beta_2 * v`. -/ +theorem A2_hasDerivAt (t : ℝ) : + HasDerivAt phaseA2 + (vecA (-(1 / 4 : ℝ) * t * t + params.b1 * t + params.b2 + 1 / 2) t) t := by + change HasDerivAt + (fun s => Romik.path2 params s + (Romik.alphaBeta2 params s).1 • v s + u s) + (vecA (-(1 / 4 : ℝ) * t * t + params.b1 * t + params.b2 + 1 / 2) t) t + have h := contactA_hasDerivAt t (path2_hasDerivAt t) (alpha2_fst_hasDerivAt t) + refine h.congr_deriv ?_ + apply congrArg (fun r => vecA r t) + dsimp [Romik.alphaBeta2] + ring + +/-- Phase 3: `A' = beta_3 * v`. -/ +theorem A3_hasDerivAt (t : ℝ) : + HasDerivAt phaseA3 (vecA (1 + params.c1 - t) t) t := by + change HasDerivAt + (fun s => Romik.path3 params s + (Romik.alphaBeta3 params s).1 • v s + u s) + (vecA (1 + params.c1 - t) t) t + have h := contactA_hasDerivAt t (path3_hasDerivAt t) (alpha3_fst_hasDerivAt t) + refine h.congr_deriv ?_ + apply congrArg (fun r => vecA r t) + dsimp [Romik.alphaBeta3] + ring + +/-- Phase 4: `A' = (d1-t/2) * v`. -/ +theorem A4_hasDerivAt (t : ℝ) : + HasDerivAt phaseA4 (vecA (params.d1 - t / 2) t) t := by + change HasDerivAt + (fun s => Romik.path4 params s + (Romik.alphaBeta4 params s).1 • v s + u s) + (vecA (params.d1 - t / 2) t) t + have h := contactA_hasDerivAt t (path4_hasDerivAt t) (alpha4_fst_hasDerivAt t) + refine h.congr_deriv ?_ + apply congrArg (fun r => vecA r t) + dsimp [Romik.alphaBeta4] + ring + +/-- Phase 5: `A' = (1/2) * v`. -/ +theorem A5_hasDerivAt (t : ℝ) : + HasDerivAt phaseA5 (vecA (1 / 2 : ℝ) t) t := by + change HasDerivAt + (fun s => Romik.path5 params s + (Romik.alphaBeta5 params s).1 • v s + u s) + (vecA (1 / 2 : ℝ) t) t + have h := contactA_hasDerivAt t (path5_hasDerivAt t) (alpha5_fst_hasDerivAt t) + refine h.congr_deriv ?_ + apply congrArg (fun r => vecA r t) + dsimp [Romik.alphaBeta5] + ring + +/-- Phase 1: `C' = -(1/2) * u`. -/ +theorem C1_hasDerivAt (t : ℝ) : + HasDerivAt phaseC1 (vecC (1 / 2 : ℝ) t) t := by + change HasDerivAt + (fun s => Romik.path1 params s - (Romik.alphaBeta1 params s).2 • u s + v s) + (vecC (1 / 2 : ℝ) t) t + have h := contactC_hasDerivAt t (path1_hasDerivAt t) (beta1_hasDerivAt t) + refine h.congr_deriv ?_ + apply congrArg (fun r => vecC r t) + dsimp [Romik.alphaBeta1] + ring + +/-- Phase 2: `C' = -(t/2-b1) * u`. -/ +theorem C2_hasDerivAt (t : ℝ) : + HasDerivAt phaseC2 (vecC (t / 2 - params.b1) t) t := by + change HasDerivAt + (fun s => Romik.path2 params s - (Romik.alphaBeta2 params s).2 • u s + v s) + (vecC (t / 2 - params.b1) t) t + have h := contactC_hasDerivAt t (path2_hasDerivAt t) (beta2_hasDerivAt t) + refine h.congr_deriv ?_ + apply congrArg (fun r => vecC r t) + dsimp [Romik.alphaBeta2] + ring + +/-- Phase 3: `C' = -(1+c2+t) * u`. -/ +theorem C3_hasDerivAt (t : ℝ) : + HasDerivAt phaseC3 (vecC (1 + params.c2 + t) t) t := by + change HasDerivAt + (fun s => Romik.path3 params s - (Romik.alphaBeta3 params s).2 • u s + v s) + (vecC (1 + params.c2 + t) t) t + have h := contactC_hasDerivAt t (path3_hasDerivAt t) (beta3_hasDerivAt t) + refine h.congr_deriv ?_ + apply congrArg (fun r => vecC r t) + dsimp [Romik.alphaBeta3] + ring + +/-- Phase 4: `C' = -rhoC_4 * u`. -/ +theorem C4_hasDerivAt (t : ℝ) : + HasDerivAt phaseC4 + (vecC (-(1 / 4 : ℝ) * t * t + params.d1 * t + params.d2 + 1 / 2) t) t := by + change HasDerivAt + (fun s => Romik.path4 params s - (Romik.alphaBeta4 params s).2 • u s + v s) + (vecC (-(1 / 4 : ℝ) * t * t + params.d1 * t + params.d2 + 1 / 2) t) t + have h := contactC_hasDerivAt t (path4_hasDerivAt t) (beta4_hasDerivAt t) + refine h.congr_deriv ?_ + apply congrArg (fun r => vecC r t) + dsimp [Romik.alphaBeta4] + ring + +/-- Phase 5: `C' = 0 * u`. -/ +theorem C5_hasDerivAt (t : ℝ) : + HasDerivAt phaseC5 (vecC 0 t) t := by + change HasDerivAt + (fun s => Romik.path5 params s - (Romik.alphaBeta5 params s).2 • u s + v s) + (vecC 0 t) t + have h := contactC_hasDerivAt t (path5_hasDerivAt t) (beta5_hasDerivAt t) + refine h.congr_deriv ?_ + apply congrArg (fun r => vecC r t) + dsimp [Romik.alphaBeta5] + ring + +/-! ## Public derivative shapes for downstream Part C closure + +The source-clean phase proofs above use private `vecA`/`vecC` helpers. +These public lemmas expose exactly the stable geometric derivative shapes used +by the direct support proof. The transport is derivative-only: the function +itself is unchanged, and the remaining pair equality is elementary algebra. +-/ + +theorem A1_hasDerivAt_public (t : ℝ) : + HasDerivAt phaseA1 ((0 : ℝ) • v t) t := by + refine (A1_hasDerivAt t).congr_deriv ?_ + apply Prod.ext <;> simp [vecA, v] + +theorem A2_hasDerivAt_public (t : ℝ) : + HasDerivAt phaseA2 + ((-(1 / 4 : ℝ) * t * t + params.b1 * t + params.b2 + 1 / 2) • v t) t := by + refine (A2_hasDerivAt t).congr_deriv ?_ + apply Prod.ext <;> simp [vecA, v]; ring + +theorem A3_hasDerivAt_public (t : ℝ) : + HasDerivAt phaseA3 ((1 + params.c1 - t) • v t) t := by + refine (A3_hasDerivAt t).congr_deriv ?_ + apply Prod.ext <;> simp [vecA, v]; ring + +theorem A4_hasDerivAt_public (t : ℝ) : + HasDerivAt phaseA4 ((params.d1 - t / 2) • v t) t := by + refine (A4_hasDerivAt t).congr_deriv ?_ + apply Prod.ext <;> simp [vecA, v]; ring + +theorem A5_hasDerivAt_public (t : ℝ) : + HasDerivAt phaseA5 ((1 / 2 : ℝ) • v t) t := by + refine (A5_hasDerivAt t).congr_deriv ?_ + apply Prod.ext <;> simp [vecA, v] + +theorem C1_hasDerivAt_public (t : ℝ) : + HasDerivAt phaseC1 ((-(1 / 2 : ℝ)) • u t) t := by + refine (C1_hasDerivAt t).congr_deriv ?_ + apply Prod.ext <;> simp [vecC, u] + +theorem C2_hasDerivAt_public (t : ℝ) : + HasDerivAt phaseC2 ((-(t / 2 - params.b1)) • u t) t := by + refine (C2_hasDerivAt t).congr_deriv ?_ + apply Prod.ext <;> simp [vecC, u] + +theorem C3_hasDerivAt_public (t : ℝ) : + HasDerivAt phaseC3 ((-(1 + params.c2 + t)) • u t) t := by + refine (C3_hasDerivAt t).congr_deriv ?_ + apply Prod.ext <;> simp [vecC, u] + +theorem C4_hasDerivAt_public (t : ℝ) : + HasDerivAt phaseC4 + ((-(-(1 / 4 : ℝ) * t * t + params.d1 * t + params.d2 + 1 / 2)) • u t) t := by + refine (C4_hasDerivAt t).congr_deriv ?_ + apply Prod.ext <;> simp [vecC, u] + +theorem C5_hasDerivAt_public (t : ℝ) : + HasDerivAt phaseC5 ((0 : ℝ) • u t) t := by + refine (C5_hasDerivAt t).congr_deriv ?_ + apply Prod.ext <;> simp [vecC, u] + +end Stage2 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Direct outer-support closure for Part C + +This proof uses the five source-clean phase derivative identities and glues +monotonicity across the four certified switching times. It does not require a +globally differentiable contact parametrisation at the speed-change junctions. +-/ + +@[expose] public section + +noncomputable section + +open Set + +namespace GerverSofa +namespace PartC +namespace Stage3 + +open Stage2 + +private theorem T_nonneg : (0 : ℝ) ≤ T := by + dsimp [T] + positivity + +private theorem T_le_pi : T ≤ Real.pi := by + dsimp [T] + nlinarith [Real.pi_pos] + +private theorem cos_nonneg_physical {x y : ℝ} + (hx : x ∈ Icc (0 : ℝ) T) (hy : y ∈ Icc (0 : ℝ) T) : + 0 ≤ Real.cos (x - y) := by + rcases hx with ⟨hx0, hxT⟩ + rcases hy with ⟨hy0, hyT⟩ + apply Real.cos_nonneg_of_neg_pi_div_two_le_of_le + · dsimp [T] at hxT hyT ⊢ + linarith + · dsimp [T] at hxT hyT ⊢ + linarith + +private theorem sin_nonneg_diff {x y : ℝ} + (hx : x ∈ Icc (0 : ℝ) T) (hy : y ∈ Icc (0 : ℝ) T) (hxy : x ≤ y) : + 0 ≤ Real.sin (y - x) := by + rcases hx with ⟨hx0, hxT⟩ + rcases hy with ⟨hy0, hyT⟩ + apply Real.sin_nonneg_of_nonneg_of_le_pi + · linarith + · have hT : y - x ≤ T := by linarith + exact le_trans hT T_le_pi + +private theorem dot_hasDerivAt_fixed {f : ℝ → Point} {df : Point} {t : ℝ} + (h : HasDerivAt f df t) (w : Point) : + HasDerivAt (fun s => dot (f s) w) (dot df w) t := by + have h1 := HasDerivAt.const_mul w.1 h.fst + have h2 := HasDerivAt.const_mul w.2 h.snd + have hs := h1.fun_add h2 + simpa [dot, mul_comm] using hs + +private theorem glue_mono {f : ℝ → ℝ} {a b c : ℝ} + (hab : a ≤ b) (hbc : b ≤ c) + (h1 : MonotoneOn f (Icc a b)) (h2 : MonotoneOn f (Icc b c)) : + MonotoneOn f (Icc a c) := by + intro x hx y hy hxy + by_cases hyb : y ≤ b + · exact h1 ⟨hx.1, le_trans hxy hyb⟩ ⟨hy.1, hyb⟩ hxy + by_cases hbx : b ≤ x + · exact h2 ⟨hbx, le_trans hxy hy.2⟩ ⟨le_trans hbx hxy, hy.2⟩ hxy + · have hxb : x ≤ b := le_of_not_ge hbx + have hby : b ≤ y := le_of_lt (lt_of_not_ge hyb) + exact le_trans + (h1 ⟨hx.1, hxb⟩ ⟨hab, le_rfl⟩ hxb) + (h2 ⟨le_rfl, hbc⟩ ⟨hby, hy.2⟩ hby) + +private theorem glue_anti {f : ℝ → ℝ} {a b c : ℝ} + (hab : a ≤ b) (hbc : b ≤ c) + (h1 : AntitoneOn f (Icc a b)) (h2 : AntitoneOn f (Icc b c)) : + AntitoneOn f (Icc a c) := by + intro x hx y hy hxy + by_cases hyb : y ≤ b + · exact h1 ⟨hx.1, le_trans hxy hyb⟩ ⟨hy.1, hyb⟩ hxy + by_cases hbx : b ≤ x + · exact h2 ⟨hbx, le_trans hxy hy.2⟩ ⟨le_trans hbx hxy, hy.2⟩ hxy + · have hxb : x ≤ b := le_of_not_ge hbx + have hby : b ≤ y := le_of_lt (lt_of_not_ge hyb) + exact le_trans + (h2 ⟨le_rfl, hbc⟩ ⟨hby, hy.2⟩ hby) + (h1 ⟨hx.1, hxb⟩ ⟨hab, le_rfl⟩ hxb) + +private theorem restrict_mono {f : ℝ → ℝ} {a b c d : ℝ} + (h : MonotoneOn f (Icc a b)) (hac : a ≤ c) (hdb : d ≤ b) : + MonotoneOn f (Icc c d) := by + intro x hx y hy hxy + exact h ⟨le_trans hac hx.1, le_trans hx.2 hdb⟩ + ⟨le_trans hac hy.1, le_trans hy.2 hdb⟩ hxy + +private def a1c (_t : ℝ) : ℝ := 0 +private def a2c (t : ℝ) : ℝ := -(1 / 4 : ℝ) * t * t + params.b1 * t + params.b2 + 1 / 2 +private def a3c (t : ℝ) : ℝ := 1 + params.c1 - t +private def a4c (t : ℝ) : ℝ := params.d1 - t / 2 +private def a5c (_t : ℝ) : ℝ := 1 / 2 + +private def c1c (_t : ℝ) : ℝ := 1 / 2 +private def c2c (t : ℝ) : ℝ := t / 2 - params.b1 +private def c3c (t : ℝ) : ℝ := 1 + params.c2 + t +private def c4c (t : ℝ) : ℝ := -(1 / 4 : ℝ) * t * t + params.d1 * t + params.d2 + 1 / 2 +private def c5c (_t : ℝ) : ℝ := 0 + +private theorem a1_nonneg (t : ℝ) : 0 ≤ a1c t := by simp [a1c] +private theorem a2_nonneg {t : ℝ} (ht : t ∈ Ioo params.phi params.theta) : 0 ≤ a2c t := by + have hp : t ∈ Icc (0 : ℝ) T := by + exact ⟨le_trans phi_nonneg (le_of_lt ht.1), + le_trans (le_of_lt ht.2) (le_trans theta_le_eta (le_trans eta_le_tau tau_le_T))⟩ + have h := rhoA_nonneg hp + simpa [rhoA, a2c, not_le.mpr ht.1, le_of_lt ht.2] using h +private theorem a3_nonneg {t : ℝ} (ht : t ∈ Ioo params.theta eta) : 0 ≤ a3c t := by + have hp : t ∈ Icc (0 : ℝ) T := ⟨le_trans zero_le_theta (le_of_lt ht.1), + le_trans (le_of_lt ht.2) (le_trans eta_le_tau tau_le_T)⟩ + have h := rhoA_nonneg hp + have hphi : params.phi < t := lt_of_le_of_lt switchOrder.phi_le_theta ht.1 + simpa [rhoA, a3c, not_le.mpr hphi, not_le.mpr ht.1, le_of_lt ht.2] using h +private theorem a4_nonneg {t : ℝ} (ht : t ∈ Ioo eta tau) : 0 ≤ a4c t := by + have hp : t ∈ Icc (0 : ℝ) T := ⟨le_trans (le_trans zero_le_theta theta_le_eta) (le_of_lt ht.1), + le_trans (le_of_lt ht.2) tau_le_T⟩ + have h := rhoA_nonneg hp + have htheta : params.theta < t := lt_of_le_of_lt theta_le_eta ht.1 + have hphi : params.phi < t := lt_of_le_of_lt switchOrder.phi_le_theta htheta + simpa [rhoA, a4c, not_le.mpr hphi, not_le.mpr htheta, not_le.mpr ht.1, + le_of_lt ht.2] using h +private theorem a5_nonneg (t : ℝ) : 0 ≤ a5c t := by norm_num [a5c] + +private theorem c1_nonneg (t : ℝ) : 0 ≤ c1c t := by norm_num [c1c] +private theorem c2_nonneg {t : ℝ} (ht : t ∈ Ioo params.phi params.theta) : 0 ≤ c2c t := by + have hp : t ∈ Icc (0 : ℝ) T := ⟨le_trans phi_nonneg (le_of_lt ht.1), + le_trans (le_of_lt ht.2) (le_trans theta_le_eta (le_trans eta_le_tau tau_le_T))⟩ + have h := rhoC_nonneg hp + simpa [rhoC, c2c, not_le.mpr ht.1, le_of_lt ht.2] using h +private theorem c3_nonneg {t : ℝ} (ht : t ∈ Ioo params.theta eta) : 0 ≤ c3c t := by + have hp : t ∈ Icc (0 : ℝ) T := ⟨le_trans zero_le_theta (le_of_lt ht.1), + le_trans (le_of_lt ht.2) (le_trans eta_le_tau tau_le_T)⟩ + have h := rhoC_nonneg hp + have hphi : params.phi < t := lt_of_le_of_lt switchOrder.phi_le_theta ht.1 + simpa [rhoC, c3c, not_le.mpr hphi, not_le.mpr ht.1, le_of_lt ht.2] using h +private theorem c4_nonneg {t : ℝ} (ht : t ∈ Ioo eta tau) : 0 ≤ c4c t := by + have hp : t ∈ Icc (0 : ℝ) T := ⟨le_trans (le_trans zero_le_theta theta_le_eta) (le_of_lt ht.1), + le_trans (le_of_lt ht.2) tau_le_T⟩ + have h := rhoC_nonneg hp + have htheta : params.theta < t := lt_of_le_of_lt theta_le_eta ht.1 + have hphi : params.phi < t := lt_of_le_of_lt switchOrder.phi_le_theta htheta + simpa [rhoC, c4c, not_le.mpr hphi, not_le.mpr htheta, not_le.mpr ht.1, + le_of_lt ht.2] using h +private theorem c5_nonneg (t : ℝ) : 0 ≤ c5c t := by simp [c5c] + +/-- The horizontal rotating-frame projection recovers the first body coordinate. -/ +theorem rot_dot_u (t : ℝ) (z : Point) : dot (Romik.rot t z) (u t) = z.1 := by + dsimp [dot, Romik.rot, u] + calc + (Real.cos t * z.1 - Real.sin t * z.2) * Real.cos t + + (Real.sin t * z.1 + Real.cos t * z.2) * Real.sin t + = z.1 * (Real.sin t ^ 2 + Real.cos t ^ 2) := by ring + _ = z.1 := by rw [Real.sin_sq_add_cos_sq]; ring + +/-- The vertical rotating-frame projection recovers the second body coordinate. -/ +theorem rot_dot_v (t : ℝ) (z : Point) : dot (Romik.rot t z) (v t) = z.2 := by + dsimp [dot, Romik.rot, v] + calc + (Real.cos t * z.1 - Real.sin t * z.2) * (-Real.sin t) + + (Real.sin t * z.1 + Real.cos t * z.2) * Real.cos t + = z.2 * (Real.sin t ^ 2 + Real.cos t ^ 2) := by ring + _ = z.2 := by rw [Real.sin_sq_add_cos_sq]; ring + +/-- Rotation in body coordinates is injective. -/ +theorem rot_injective (t : ℝ) : Function.Injective (Romik.rot t) := by + intro x y h + have hu := congrArg (fun z => dot z (u t)) h + have hv := congrArg (fun z => dot z (v t)) h + rw [rot_dot_u, rot_dot_u] at hu + rw [rot_dot_v, rot_dot_v] at hv + exact Prod.ext hu hv + +private theorem pathPrime1_eq_rot (p : Romik.Params) (t : ℝ) : + Romik.pathPrime1 p t = Romik.rot t (Romik.alphaBeta1 p t) := rfl +private theorem pathPrime2_eq_rot (p : Romik.Params) (t : ℝ) : + Romik.pathPrime2 p t = Romik.rot t (Romik.alphaBeta2 p t) := rfl +private theorem pathPrime3_eq_rot (p : Romik.Params) (t : ℝ) : + Romik.pathPrime3 p t = Romik.rot t (Romik.alphaBeta3 p t) := rfl + +private theorem matchPrime12 : Romik.pathPrime1 params params.phi = Romik.pathPrime2 params + params.phi := by + have h10 := congrFun params_equations (10 : Fin 22) + have h11 := congrFun params_equations (11 : Fin 22) + simp [Romik.system] at h10 h11 + apply Prod.ext <;> linarith +private theorem matchPrime23 : Romik.pathPrime2 params params.theta = Romik.pathPrime3 params + params.theta := by + have h14 := congrFun params_equations (14 : Fin 22) + have h15 := congrFun params_equations (15 : Fin 22) + simp [Romik.system] at h14 h15 + apply Prod.ext <;> linarith +private theorem matchAB12 : Romik.alphaBeta1 params params.phi = Romik.alphaBeta2 params + params.phi := by + apply rot_injective params.phi + simpa [pathPrime1_eq_rot, pathPrime2_eq_rot] using matchPrime12 +private theorem matchAB23 : Romik.alphaBeta2 params params.theta = Romik.alphaBeta3 params + params.theta := by + apply rot_injective params.theta + simpa [pathPrime2_eq_rot, pathPrime3_eq_rot] using matchPrime23 + +private def reflAB (z : Point) : Point := (-z.2, -z.1) +private theorem ab4_reflect_ab2 (t : ℝ) : Romik.alphaBeta4 params (T - t) = reflAB + (Romik.alphaBeta2 params t) := by + dsimp [T, reflAB, Romik.alphaBeta4, Romik.alphaBeta2] + rw [Romik.d1_eq_quarterPi_sub_b1_of_equations params_equations, + Romik.d2_eq_b2_add_quarterPi_correction_of_equations params_equations] + ring_nf +private theorem ab3_reflect (t : ℝ) : Romik.alphaBeta3 params (T - t) = reflAB (Romik.alphaBeta3 + params t) := by + dsimp [T, reflAB, Romik.alphaBeta3] + rw [Romik.c2_eq_c1_sub_halfPi_of_equations params_equations] + ring_nf +private theorem ab5_reflect_ab1 (t : ℝ) : Romik.alphaBeta5 params (T - t) = reflAB + (Romik.alphaBeta1 params t) := by + dsimp [T, reflAB, Romik.alphaBeta5, Romik.alphaBeta1] + rw [Romik.e1_eq_a1_of_equations params_equations, + Romik.e2_eq_neg_a2_of_equations params_equations] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + ring_nf +private theorem matchAB34 : Romik.alphaBeta3 params eta = Romik.alphaBeta4 params eta := by + have h3 := ab3_reflect params.theta + have h4 := ab4_reflect_ab2 params.theta + have hm := congrArg reflAB matchAB23 + simpa [eta] using h3.trans (hm.symm.trans h4.symm) +private theorem matchAB45 : Romik.alphaBeta4 params tau = Romik.alphaBeta5 params tau := by + have h4 := ab4_reflect_ab2 params.phi + have h5 := ab5_reflect_ab1 params.phi + have hm := congrArg reflAB matchAB12 + simpa [tau] using h4.trans (hm.symm.trans h5.symm) + +private theorem A_eq_phase1 {t : ℝ} (ht : t ∈ Icc (0 : ℝ) params.phi) : A t = phaseA1 t := by + apply Prod.ext <;> simp [A, alpha, alphaBetaAt, Romik.path, phaseA1, ht.2] + +private theorem A_eq_phase2 {t : ℝ} (ht : t ∈ Icc params.phi params.theta) : A t = phaseA2 t := by + by_cases h : t = params.phi + · subst t + calc + A params.phi = phaseA1 params.phi := A_eq_phase1 ⟨phi_nonneg, le_rfl⟩ + _ = phaseA2 params.phi := by + unfold phaseA1 phaseA2 + rw [PartB.match12, matchAB12] + · have hp : params.phi < t := lt_of_le_of_ne ht.1 (Ne.symm h) + apply Prod.ext <;> simp [A, alpha, alphaBetaAt, Romik.path, phaseA2, not_le.mpr hp, ht.2] + +private theorem A_eq_phase3 {t : ℝ} (ht : t ∈ Icc params.theta eta) : A t = phaseA3 t := by + by_cases h : t = params.theta + · subst t + calc + A params.theta = phaseA2 params.theta := A_eq_phase2 ⟨switchOrder.phi_le_theta, le_rfl⟩ + _ = phaseA3 params.theta := by + unfold phaseA2 phaseA3 + rw [PartB.match23, matchAB23] + · have htheta : params.theta < t := lt_of_le_of_ne ht.1 (Ne.symm h) + have hphi : params.phi < t := lt_of_le_of_lt switchOrder.phi_le_theta htheta + have hηraw : t ≤ Real.pi / 2 - params.theta := by + simpa [eta, T] using ht.2 + apply Prod.ext <;> simp [A, alpha, alphaBetaAt, Romik.path, phaseA3, not_le.mpr hphi, + not_le.mpr htheta, hηraw, eta, T] + +private theorem A_eq_phase4 {t : ℝ} (ht : t ∈ Icc eta tau) : A t = phaseA4 t := by + by_cases h : t = eta + · subst t + have hm : Romik.path3 params eta = Romik.path4 params eta := by + simpa [eta, T] using PartB.match34 + calc + A eta = phaseA3 eta := A_eq_phase3 ⟨theta_le_eta, le_rfl⟩ + _ = phaseA4 eta := by + unfold phaseA3 phaseA4 + rw [hm, matchAB34] + · have he : eta < t := lt_of_le_of_ne ht.1 (Ne.symm h) + have htheta : params.theta < t := lt_of_le_of_lt theta_le_eta he + have hphi : params.phi < t := lt_of_le_of_lt switchOrder.phi_le_theta htheta + have hηraw : Real.pi / 2 - params.theta < t := by + simpa [eta, T] using he + have hτraw : t ≤ Real.pi / 2 - params.phi := by + simpa [tau, T] using ht.2 + apply Prod.ext <;> simp [A, alpha, alphaBetaAt, Romik.path, phaseA4, not_le.mpr hphi, + not_le.mpr htheta, not_le.mpr hηraw, hτraw, eta, tau, T] + +private theorem A_eq_phase5 {t : ℝ} (ht : t ∈ Icc tau T) : A t = phaseA5 t := by + by_cases h : t = tau + · subst t + have hm : Romik.path4 params tau = Romik.path5 params tau := by + simpa [tau, T] using PartB.match45 + calc + A tau = phaseA4 tau := A_eq_phase4 ⟨eta_le_tau, le_rfl⟩ + _ = phaseA5 tau := by + unfold phaseA4 phaseA5 + rw [hm, matchAB45] + · have htau : tau < t := lt_of_le_of_ne ht.1 (Ne.symm h) + have heta : eta < t := lt_of_le_of_lt eta_le_tau htau + have htheta : params.theta < t := lt_of_le_of_lt theta_le_eta heta + have hphi : params.phi < t := lt_of_le_of_lt switchOrder.phi_le_theta htheta + have hηraw : Real.pi / 2 - params.theta < t := by + simpa [eta, T] using heta + have hτraw : Real.pi / 2 - params.phi < t := by + simpa [tau, T] using htau + apply Prod.ext <;> simp [A, alpha, alphaBetaAt, Romik.path, phaseA5, not_le.mpr hphi, + not_le.mpr htheta, not_le.mpr hηraw, not_le.mpr hτraw, eta, tau, T] + +private theorem C_eq_phase1 {t : ℝ} (ht : t ∈ Icc (0 : ℝ) params.phi) : C t = phaseC1 t := by + apply Prod.ext <;> simp [C, beta, alphaBetaAt, Romik.path, phaseC1, ht.2] + +private theorem C_eq_phase2 {t : ℝ} (ht : t ∈ Icc params.phi params.theta) : C t = phaseC2 t := by + by_cases h : t = params.phi + · subst t + calc + C params.phi = phaseC1 params.phi := C_eq_phase1 ⟨phi_nonneg, le_rfl⟩ + _ = phaseC2 params.phi := by + unfold phaseC1 phaseC2 + rw [PartB.match12, matchAB12] + · have hp : params.phi < t := lt_of_le_of_ne ht.1 (Ne.symm h) + apply Prod.ext <;> simp [C, beta, alphaBetaAt, Romik.path, phaseC2, not_le.mpr hp, ht.2] + +private theorem C_eq_phase3 {t : ℝ} (ht : t ∈ Icc params.theta eta) : C t = phaseC3 t := by + by_cases h : t = params.theta + · subst t + calc + C params.theta = phaseC2 params.theta := C_eq_phase2 ⟨switchOrder.phi_le_theta, le_rfl⟩ + _ = phaseC3 params.theta := by + unfold phaseC2 phaseC3 + rw [PartB.match23, matchAB23] + · have htheta : params.theta < t := lt_of_le_of_ne ht.1 (Ne.symm h) + have hphi : params.phi < t := lt_of_le_of_lt switchOrder.phi_le_theta htheta + have hηraw : t ≤ Real.pi / 2 - params.theta := by + simpa [eta, T] using ht.2 + apply Prod.ext <;> simp [C, beta, alphaBetaAt, Romik.path, phaseC3, not_le.mpr hphi, + not_le.mpr htheta, hηraw, eta, T] + +private theorem C_eq_phase4 {t : ℝ} (ht : t ∈ Icc eta tau) : C t = phaseC4 t := by + by_cases h : t = eta + · subst t + have hm : Romik.path3 params eta = Romik.path4 params eta := by + simpa [eta, T] using PartB.match34 + calc + C eta = phaseC3 eta := C_eq_phase3 ⟨theta_le_eta, le_rfl⟩ + _ = phaseC4 eta := by + unfold phaseC3 phaseC4 + rw [hm, matchAB34] + · have he : eta < t := lt_of_le_of_ne ht.1 (Ne.symm h) + have htheta : params.theta < t := lt_of_le_of_lt theta_le_eta he + have hphi : params.phi < t := lt_of_le_of_lt switchOrder.phi_le_theta htheta + have hηraw : Real.pi / 2 - params.theta < t := by + simpa [eta, T] using he + have hτraw : t ≤ Real.pi / 2 - params.phi := by + simpa [tau, T] using ht.2 + apply Prod.ext <;> simp [C, beta, alphaBetaAt, Romik.path, phaseC4, not_le.mpr hphi, + not_le.mpr htheta, not_le.mpr hηraw, hτraw, eta, tau, T] + +private theorem C_eq_phase5 {t : ℝ} (ht : t ∈ Icc tau T) : C t = phaseC5 t := by + by_cases h : t = tau + · subst t + have hm : Romik.path4 params tau = Romik.path5 params tau := by + simpa [tau, T] using PartB.match45 + calc + C tau = phaseC4 tau := C_eq_phase4 ⟨eta_le_tau, le_rfl⟩ + _ = phaseC5 tau := by + unfold phaseC4 phaseC5 + rw [hm, matchAB45] + · have htau : tau < t := lt_of_le_of_ne ht.1 (Ne.symm h) + have heta : eta < t := lt_of_le_of_lt eta_le_tau htau + have htheta : params.theta < t := lt_of_le_of_lt theta_le_eta heta + have hphi : params.phi < t := lt_of_le_of_lt switchOrder.phi_le_theta htheta + have hηraw : Real.pi / 2 - params.theta < t := by + simpa [eta, T] using heta + have hτraw : Real.pi / 2 - params.phi < t := by + simpa [tau, T] using htau + apply Prod.ext <;> simp [C, beta, alphaBetaAt, Romik.path, phaseC5, not_le.mpr hphi, + not_le.mpr htheta, not_le.mpr hηraw, not_le.mpr hτraw, eta, tau, T] + +private theorem C5_hasDerivAt_coeff (t : ℝ) : + HasDerivAt phaseC5 ((-(c5c t)) • u t) t := by + simpa [c5c] using C5_hasDerivAt_public t + +private theorem transfer_mono_A {F : ℝ → Point} {a b : ℝ} {w : Point} + (heq : ∀ t ∈ Icc a b, A t = F t) + (hm : MonotoneOn (fun t => dot (F t) w) (Icc a b)) : + MonotoneOn (fun t => dot (A t) w) (Icc a b) := by + intro x hx y hy hxy + simpa [heq x hx, heq y hy] using hm hx hy hxy +private theorem transfer_anti_A {F : ℝ → Point} {a b : ℝ} {w : Point} + (heq : ∀ t ∈ Icc a b, A t = F t) + (hm : AntitoneOn (fun t => dot (F t) w) (Icc a b)) : + AntitoneOn (fun t => dot (A t) w) (Icc a b) := by + intro x hx y hy hxy + simpa [heq x hx, heq y hy] using hm hx hy hxy +private theorem transfer_mono_C {F : ℝ → Point} {a b : ℝ} {w : Point} + (heq : ∀ t ∈ Icc a b, C t = F t) + (hm : MonotoneOn (fun t => dot (F t) w) (Icc a b)) : + MonotoneOn (fun t => dot (C t) w) (Icc a b) := by + intro x hx y hy hxy + simpa [heq x hx, heq y hy] using hm hx hy hxy +private theorem transfer_anti_C {F : ℝ → Point} {a b : ℝ} {w : Point} + (heq : ∀ t ∈ Icc a b, C t = F t) + (hm : AntitoneOn (fun t => dot (F t) w) (Icc a b)) : + AntitoneOn (fun t => dot (C t) w) (Icc a b) := by + intro x hx y hy hxy + simpa [heq x hx, heq y hy] using hm hx hy hxy + +private theorem phase_A_own_mono {F : ℝ → Point} {r : ℝ → ℝ} {a b s : ℝ} + (hder : ∀ t, HasDerivAt F ((r t) • v t) t) + (hr : ∀ t ∈ Ioo a b, 0 ≤ r t) + (ha0 : 0 ≤ a) (hbs : b ≤ s) (hsT : s ≤ T) : + MonotoneOn (fun t => dot (F t) (u s)) (Icc a b) := by + refine monotoneOn_of_hasDerivWithinAt_nonneg (f' := fun t => dot ((r t) • v t) (u s)) + (convex_Icc a b) ?_ ?_ ?_ + · intro t ht; exact (dot_hasDerivAt_fixed (hder t) (u s)).continuousAt.continuousWithinAt + · intro t ht; exact (dot_hasDerivAt_fixed (hder t) (u s)).hasDerivWithinAt + · intro t ht + have hi : t ∈ Ioo a b := by simpa only [interior_Icc] using ht + have hrt := hr t hi + have ht0 : 0 ≤ t := le_trans ha0 (le_of_lt hi.1) + have hsin := sin_nonneg_diff ⟨ht0, le_trans (le_of_lt hi.2) (le_trans hbs hsT)⟩ + ⟨le_trans ht0 (le_trans (le_of_lt hi.2) hbs), hsT⟩ (le_trans (le_of_lt hi.2) hbs) + have heq : dot ((r t) • v t) (u s) = r t * Real.sin (s - t) := by + simp [dot, u, v, Real.sin_sub] + ring + rw [heq] + exact mul_nonneg hrt hsin + +private theorem phase_A_own_anti {F : ℝ → Point} {r : ℝ → ℝ} {a b s : ℝ} + (hder : ∀ t, HasDerivAt F ((r t) • v t) t) + (hr : ∀ t ∈ Ioo a b, 0 ≤ r t) + (hs0 : 0 ≤ s) (hsa : s ≤ a) (hbT : b ≤ T) : + AntitoneOn (fun t => dot (F t) (u s)) (Icc a b) := by + refine antitoneOn_of_hasDerivWithinAt_nonpos (f' := fun t => dot ((r t) • v t) (u s)) + (convex_Icc a b) ?_ ?_ ?_ + · intro t ht; exact (dot_hasDerivAt_fixed (hder t) (u s)).continuousAt.continuousWithinAt + · intro t ht; exact (dot_hasDerivAt_fixed (hder t) (u s)).hasDerivWithinAt + · intro t ht + have hi : t ∈ Ioo a b := by simpa only [interior_Icc] using ht + have hrt := hr t hi + have htT : t ≤ T := le_trans (le_of_lt hi.2) hbT + have hsin0 : Real.sin (s - t) ≤ 0 := by + have hnon : s - t ≤ 0 := by linarith [hsa, hi.1] + have hnegpi : -Real.pi ≤ s - t := by + have : t - s ≤ T := by linarith + nlinarith [T_le_pi] + exact Real.sin_nonpos_of_nonpos_of_neg_pi_le hnon hnegpi + have heq : dot ((r t) • v t) (u s) = r t * Real.sin (s - t) := by + simp [dot, u, v, Real.sin_sub] + ring + rw [heq] + exact mul_nonpos_of_nonneg_of_nonpos hrt hsin0 + +private theorem phase_C_own_mono {F : ℝ → Point} {r : ℝ → ℝ} {a b s : ℝ} + (hder : ∀ t, HasDerivAt F ((-(r t)) • u t) t) + (hr : ∀ t ∈ Ioo a b, 0 ≤ r t) + (ha0 : 0 ≤ a) (hbs : b ≤ s) (hsT : s ≤ T) : + MonotoneOn (fun t => dot (F t) (v s)) (Icc a b) := by + refine monotoneOn_of_hasDerivWithinAt_nonneg (f' := fun t => dot ((-(r t)) • u t) (v s)) + (convex_Icc a b) ?_ ?_ ?_ + · intro t ht; exact (dot_hasDerivAt_fixed (hder t) (v s)).continuousAt.continuousWithinAt + · intro t ht; exact (dot_hasDerivAt_fixed (hder t) (v s)).hasDerivWithinAt + · intro t ht + have hi : t ∈ Ioo a b := by simpa only [interior_Icc] using ht + have hrt := hr t hi + have ht0 : 0 ≤ t := le_trans ha0 (le_of_lt hi.1) + have hsin := sin_nonneg_diff ⟨ht0, le_trans (le_of_lt hi.2) (le_trans hbs hsT)⟩ + ⟨le_trans ht0 (le_trans (le_of_lt hi.2) hbs), hsT⟩ (le_trans (le_of_lt hi.2) hbs) + have heq : dot ((-(r t)) • u t) (v s) = r t * Real.sin (s - t) := by + simp [dot, u, v, Real.sin_sub] + ring + rw [heq] + exact mul_nonneg hrt hsin + +private theorem phase_C_own_anti {F : ℝ → Point} {r : ℝ → ℝ} {a b s : ℝ} + (hder : ∀ t, HasDerivAt F ((-(r t)) • u t) t) + (hr : ∀ t ∈ Ioo a b, 0 ≤ r t) + (hs0 : 0 ≤ s) (hsa : s ≤ a) (hbT : b ≤ T) : + AntitoneOn (fun t => dot (F t) (v s)) (Icc a b) := by + refine antitoneOn_of_hasDerivWithinAt_nonpos (f' := fun t => dot ((-(r t)) • u t) (v s)) + (convex_Icc a b) ?_ ?_ ?_ + · intro t ht; exact (dot_hasDerivAt_fixed (hder t) (v s)).continuousAt.continuousWithinAt + · intro t ht; exact (dot_hasDerivAt_fixed (hder t) (v s)).hasDerivWithinAt + · intro t ht + have hi : t ∈ Ioo a b := by simpa only [interior_Icc] using ht + have hrt := hr t hi + have hsin0 : Real.sin (s - t) ≤ 0 := by + have hnon : s - t ≤ 0 := by linarith [hsa, hi.1] + have hnegpi : -Real.pi ≤ s - t := by + have : t - s ≤ T := by linarith [hbT, hi.2, hs0] + nlinarith [T_le_pi] + exact Real.sin_nonpos_of_nonpos_of_neg_pi_le hnon hnegpi + have heq : dot ((-(r t)) • u t) (v s) = r t * Real.sin (s - t) := by + simp [dot, u, v, Real.sin_sub] + ring + rw [heq] + exact mul_nonpos_of_nonneg_of_nonpos hrt hsin0 + +private theorem phase_A_cross_mono {F : ℝ → Point} {r : ℝ → ℝ} {a b s : ℝ} + (hder : ∀ t, HasDerivAt F ((r t) • v t) t) + (hr : ∀ t ∈ Ioo a b, 0 ≤ r t) + (ha0 : 0 ≤ a) (hbT : b ≤ T) (hs : s ∈ Icc (0 : ℝ) T) : + MonotoneOn (fun t => dot (F t) (v s)) (Icc a b) := by + refine monotoneOn_of_hasDerivWithinAt_nonneg (f' := fun t => dot ((r t) • v t) (v s)) + (convex_Icc a b) ?_ ?_ ?_ + · intro t ht; exact (dot_hasDerivAt_fixed (hder t) (v s)).continuousAt.continuousWithinAt + · intro t ht; exact (dot_hasDerivAt_fixed (hder t) (v s)).hasDerivWithinAt + · intro t ht + have hi : t ∈ Ioo a b := by simpa only [interior_Icc] using ht + have hp : t ∈ Icc (0 : ℝ) T := ⟨le_trans ha0 (le_of_lt hi.1), le_trans (le_of_lt hi.2) hbT⟩ + have hc := cos_nonneg_physical hp hs + have heq : dot ((r t) • v t) (v s) = r t * Real.cos (t - s) := by + simp [dot, v, Real.cos_sub] + ring + rw [heq] + exact mul_nonneg (hr t hi) hc + +private theorem phase_C_cross_anti {F : ℝ → Point} {r : ℝ → ℝ} {a b s : ℝ} + (hder : ∀ t, HasDerivAt F ((-(r t)) • u t) t) + (hr : ∀ t ∈ Ioo a b, 0 ≤ r t) + (ha0 : 0 ≤ a) (hbT : b ≤ T) (hs : s ∈ Icc (0 : ℝ) T) : + AntitoneOn (fun t => dot (F t) (u s)) (Icc a b) := by + refine antitoneOn_of_hasDerivWithinAt_nonpos (f' := fun t => dot ((-(r t)) • u t) (u s)) + (convex_Icc a b) ?_ ?_ ?_ + · intro t ht; exact (dot_hasDerivAt_fixed (hder t) (u s)).continuousAt.continuousWithinAt + · intro t ht; exact (dot_hasDerivAt_fixed (hder t) (u s)).hasDerivWithinAt + · intro t ht + have hi : t ∈ Ioo a b := by simpa only [interior_Icc] using ht + have hp : t ∈ Icc (0 : ℝ) T := ⟨le_trans ha0 (le_of_lt hi.1), le_trans (le_of_lt hi.2) hbT⟩ + have hc := cos_nonneg_physical hp hs + have heq : dot ((-(r t)) • u t) (u s) = -(r t * Real.cos (t - s)) := by + simp [dot, u, Real.cos_sub] + ring + rw [heq] + exact neg_nonpos.mpr (mul_nonneg (hr t hi) hc) + +private theorem phase_A_y_mono {F : ℝ → Point} {r : ℝ → ℝ} {a b : ℝ} + (hder : ∀ t, HasDerivAt F ((r t) • v t) t) + (hr : ∀ t ∈ Ioo a b, 0 ≤ r t) + (ha0 : 0 ≤ a) (hbT : b ≤ T) : + MonotoneOn (fun t => dot (F t) (0, 1)) (Icc a b) := by + refine monotoneOn_of_hasDerivWithinAt_nonneg + (f' := fun t => dot ((r t) • v t) (0, 1)) + (convex_Icc a b) ?_ ?_ ?_ + · intro t ht + exact (dot_hasDerivAt_fixed (hder t) (0, 1)).continuousAt.continuousWithinAt + · intro t ht + exact (dot_hasDerivAt_fixed (hder t) (0, 1)).hasDerivWithinAt + · intro t ht + have hi : t ∈ Ioo a b := by simpa only [interior_Icc] using ht + have ht0 : 0 ≤ t := le_trans ha0 (le_of_lt hi.1) + have htT : t ≤ T := le_trans (le_of_lt hi.2) hbT + have hc : 0 ≤ Real.cos t := by + apply Real.cos_nonneg_of_neg_pi_div_two_le_of_le + · nlinarith [Real.pi_pos, ht0] + · simpa [T] using htT + have heq : dot ((r t) • v t) (0, 1) = r t * Real.cos t := by + simp [dot, v] + rw [heq] + exact mul_nonneg (hr t hi) hc + +private theorem phase_C_y_anti {F : ℝ → Point} {r : ℝ → ℝ} {a b : ℝ} + (hder : ∀ t, HasDerivAt F ((-(r t)) • u t) t) + (hr : ∀ t ∈ Ioo a b, 0 ≤ r t) + (ha0 : 0 ≤ a) (hbT : b ≤ T) : + AntitoneOn (fun t => dot (F t) (0, 1)) (Icc a b) := by + refine antitoneOn_of_hasDerivWithinAt_nonpos + (f' := fun t => dot ((-(r t)) • u t) (0, 1)) + (convex_Icc a b) ?_ ?_ ?_ + · intro t ht + exact (dot_hasDerivAt_fixed (hder t) (0, 1)).continuousAt.continuousWithinAt + · intro t ht + exact (dot_hasDerivAt_fixed (hder t) (0, 1)).hasDerivWithinAt + · intro t ht + have hi : t ∈ Ioo a b := by simpa only [interior_Icc] using ht + have ht0 : 0 ≤ t := le_trans ha0 (le_of_lt hi.1) + have hsin : 0 ≤ Real.sin t := + Real.sin_nonneg_of_nonneg_of_le_pi ht0 + (le_trans (le_trans (le_of_lt hi.2) hbT) T_le_pi) + have heq : dot ((-(r t)) • u t) (0, 1) = -(r t * Real.sin t) := by + simp [dot, u] + rw [heq] + exact neg_nonpos.mpr (mul_nonneg (hr t hi) hsin) + +-- Full physical-phase monotonicities for cross supports and vertical coordinates. +private theorem A_v_global_mono (s : ℝ) (hs : s ∈ Icc (0 : ℝ) T) : + MonotoneOn (fun t => dot (A t) (v s)) (Icc (0 : ℝ) T) := by + have h1 := transfer_mono_A (w:=v s) (fun t ht => A_eq_phase1 ht) + (phase_A_cross_mono (r:=a1c) A1_hasDerivAt_public (fun t ht => a1_nonneg t) + (by rfl) (le_trans switchOrder.phi_le_theta (le_trans theta_le_eta (le_trans eta_le_tau + tau_le_T))) hs) + have h2 := transfer_mono_A (w:=v s) (fun t ht => A_eq_phase2 ht) + (phase_A_cross_mono (r:=a2c) A2_hasDerivAt_public (fun t ht => a2_nonneg ht) + phi_nonneg (le_trans theta_le_eta (le_trans eta_le_tau tau_le_T)) hs) + have h3 := transfer_mono_A (w:=v s) (fun t ht => A_eq_phase3 ht) + (phase_A_cross_mono (r:=a3c) A3_hasDerivAt_public (fun t ht => a3_nonneg ht) + zero_le_theta (le_trans eta_le_tau tau_le_T) hs) + have h4 := transfer_mono_A (w:=v s) (fun t ht => A_eq_phase4 ht) + (phase_A_cross_mono (r:=a4c) A4_hasDerivAt_public (fun t ht => a4_nonneg ht) + (le_trans zero_le_theta theta_le_eta) tau_le_T hs) + have h5 := transfer_mono_A (w:=v s) (fun t ht => A_eq_phase5 ht) + (phase_A_cross_mono (r:=a5c) A5_hasDerivAt_public (fun t ht => a5_nonneg t) + (le_trans (le_trans zero_le_theta theta_le_eta) eta_le_tau) (by rfl) hs) + have h12 := glue_mono phi_nonneg switchOrder.phi_le_theta h1 h2 + have h123 := glue_mono zero_le_theta theta_le_eta h12 h3 + have h1234 := glue_mono (le_trans zero_le_theta theta_le_eta) eta_le_tau h123 h4 + exact glue_mono + (le_trans (le_trans zero_le_theta theta_le_eta) eta_le_tau) tau_le_T h1234 h5 + +private theorem C_u_global_anti (s : ℝ) (hs : s ∈ Icc (0 : ℝ) T) : + AntitoneOn (fun t => dot (C t) (u s)) (Icc (0 : ℝ) T) := by + have h1 := transfer_anti_C (w:=u s) (fun t ht => C_eq_phase1 ht) + (phase_C_cross_anti (r:=c1c) C1_hasDerivAt_public (fun t ht => c1_nonneg t) + (by rfl) (le_trans switchOrder.phi_le_theta (le_trans theta_le_eta (le_trans eta_le_tau + tau_le_T))) hs) + have h2 := transfer_anti_C (w:=u s) (fun t ht => C_eq_phase2 ht) + (phase_C_cross_anti (r:=c2c) C2_hasDerivAt_public (fun t ht => c2_nonneg ht) + phi_nonneg (le_trans theta_le_eta (le_trans eta_le_tau tau_le_T)) hs) + have h3 := transfer_anti_C (w:=u s) (fun t ht => C_eq_phase3 ht) + (phase_C_cross_anti (r:=c3c) C3_hasDerivAt_public (fun t ht => c3_nonneg ht) + zero_le_theta (le_trans eta_le_tau tau_le_T) hs) + have h4 := transfer_anti_C (w:=u s) (fun t ht => C_eq_phase4 ht) + (phase_C_cross_anti (r:=c4c) C4_hasDerivAt_public (fun t ht => c4_nonneg ht) + (le_trans zero_le_theta theta_le_eta) tau_le_T hs) + have h5 := transfer_anti_C (w:=u s) (fun t ht => C_eq_phase5 ht) + (phase_C_cross_anti (r:=c5c) C5_hasDerivAt_coeff (fun t ht => c5_nonneg t) + (le_trans (le_trans zero_le_theta theta_le_eta) eta_le_tau) (by rfl) hs) + have h12 := glue_anti phi_nonneg switchOrder.phi_le_theta h1 h2 + have h123 := glue_anti zero_le_theta theta_le_eta h12 h3 + have h1234 := glue_anti (le_trans zero_le_theta theta_le_eta) eta_le_tau h123 h4 + exact glue_anti + (le_trans (le_trans zero_le_theta theta_le_eta) eta_le_tau) tau_le_T h1234 h5 + +private theorem A_y_global_mono : + MonotoneOn (fun t => dot (A t) (0, 1)) (Icc (0 : ℝ) T) := by + have h1 := transfer_mono_A (w:=(0,1)) (fun t ht => A_eq_phase1 ht) + (phase_A_y_mono (r:=a1c) A1_hasDerivAt_public (fun t ht => a1_nonneg t) + (by rfl) (le_trans switchOrder.phi_le_theta (le_trans theta_le_eta (le_trans eta_le_tau + tau_le_T)))) + have h2 := transfer_mono_A (w:=(0,1)) (fun t ht => A_eq_phase2 ht) + (phase_A_y_mono (r:=a2c) A2_hasDerivAt_public (fun t ht => a2_nonneg ht) + phi_nonneg (le_trans theta_le_eta (le_trans eta_le_tau tau_le_T))) + have h3 := transfer_mono_A (w:=(0,1)) (fun t ht => A_eq_phase3 ht) + (phase_A_y_mono (r:=a3c) A3_hasDerivAt_public (fun t ht => a3_nonneg ht) + zero_le_theta (le_trans eta_le_tau tau_le_T)) + have h4 := transfer_mono_A (w:=(0,1)) (fun t ht => A_eq_phase4 ht) + (phase_A_y_mono (r:=a4c) A4_hasDerivAt_public (fun t ht => a4_nonneg ht) + (le_trans zero_le_theta theta_le_eta) tau_le_T) + have h5 := transfer_mono_A (w:=(0,1)) (fun t ht => A_eq_phase5 ht) + (phase_A_y_mono (r:=a5c) A5_hasDerivAt_public (fun t ht => a5_nonneg t) + (le_trans (le_trans zero_le_theta theta_le_eta) eta_le_tau) (by rfl)) + have h12 := glue_mono phi_nonneg switchOrder.phi_le_theta h1 h2 + have h123 := glue_mono zero_le_theta theta_le_eta h12 h3 + have h1234 := glue_mono (le_trans zero_le_theta theta_le_eta) eta_le_tau h123 h4 + exact glue_mono + (le_trans (le_trans zero_le_theta theta_le_eta) eta_le_tau) tau_le_T h1234 h5 + +private theorem C_y_global_anti : + AntitoneOn (fun t => dot (C t) (0, 1)) (Icc (0 : ℝ) T) := by + have h1 := transfer_anti_C (w:=(0,1)) (fun t ht => C_eq_phase1 ht) + (phase_C_y_anti (r:=c1c) C1_hasDerivAt_public (fun t ht => c1_nonneg t) + (by rfl) (le_trans switchOrder.phi_le_theta (le_trans theta_le_eta (le_trans eta_le_tau + tau_le_T)))) + have h2 := transfer_anti_C (w:=(0,1)) (fun t ht => C_eq_phase2 ht) + (phase_C_y_anti (r:=c2c) C2_hasDerivAt_public (fun t ht => c2_nonneg ht) + phi_nonneg (le_trans theta_le_eta (le_trans eta_le_tau tau_le_T))) + have h3 := transfer_anti_C (w:=(0,1)) (fun t ht => C_eq_phase3 ht) + (phase_C_y_anti (r:=c3c) C3_hasDerivAt_public (fun t ht => c3_nonneg ht) + zero_le_theta (le_trans eta_le_tau tau_le_T)) + have h4 := transfer_anti_C (w:=(0,1)) (fun t ht => C_eq_phase4 ht) + (phase_C_y_anti (r:=c4c) C4_hasDerivAt_public (fun t ht => c4_nonneg ht) + (le_trans zero_le_theta theta_le_eta) tau_le_T) + have h5 := transfer_anti_C (w:=(0,1)) (fun t ht => C_eq_phase5 ht) + (phase_C_y_anti (r:=c5c) C5_hasDerivAt_coeff (fun t ht => c5_nonneg t) + (le_trans (le_trans zero_le_theta theta_le_eta) eta_le_tau) (by rfl)) + have h12 := glue_anti phi_nonneg switchOrder.phi_le_theta h1 h2 + have h123 := glue_anti zero_le_theta theta_le_eta h12 h3 + have h1234 := glue_anti (le_trans zero_le_theta theta_le_eta) eta_le_tau h123 h4 + exact glue_anti + (le_trans (le_trans zero_le_theta theta_le_eta) eta_le_tau) tau_le_T h1234 h5 + +private theorem A_u_left_mono (s : ℝ) (hs : s ∈ Icc (0 : ℝ) T) : + MonotoneOn (fun t => dot (A t) (u s)) (Icc (0 : ℝ) s) := by + by_cases h1 : s ≤ params.phi + · apply transfer_mono_A (w := u s) + · intro t ht + exact A_eq_phase1 ⟨ht.1, le_trans ht.2 h1⟩ + · exact phase_A_own_mono (r := a1c) A1_hasDerivAt_public + (fun t _ => a1_nonneg t) (by rfl) (by rfl) hs.2 + have hphi : params.phi ≤ s := le_of_lt (lt_of_not_ge h1) + by_cases h2 : s ≤ params.theta + · have m1 : MonotoneOn (fun t => dot (A t) (u s)) (Icc (0 : ℝ) params.phi) := + transfer_mono_A (w := u s) (fun t ht => A_eq_phase1 ht) + (phase_A_own_mono (r := a1c) A1_hasDerivAt_public + (fun t _ => a1_nonneg t) (by rfl) hphi hs.2) + have m2 : MonotoneOn (fun t => dot (A t) (u s)) (Icc params.phi s) := by + apply transfer_mono_A (w := u s) + · intro t ht + exact A_eq_phase2 ⟨ht.1, le_trans ht.2 h2⟩ + · exact phase_A_own_mono (r := a2c) A2_hasDerivAt_public + (fun t ht => a2_nonneg ⟨ht.1, lt_of_lt_of_le ht.2 h2⟩) + phi_nonneg (by rfl) hs.2 + exact glue_mono phi_nonneg hphi m1 m2 + have htheta : params.theta ≤ s := le_of_lt (lt_of_not_ge h2) + by_cases h3 : s ≤ eta + · have m12 : MonotoneOn (fun t => dot (A t) (u s)) (Icc (0 : ℝ) params.theta) := by + have m1 := transfer_mono_A (w := u s) (fun t ht => A_eq_phase1 ht) + (phase_A_own_mono (r := a1c) A1_hasDerivAt_public + (fun t _ => a1_nonneg t) (by rfl) (le_trans switchOrder.phi_le_theta htheta) hs.2) + have m2 := transfer_mono_A (w := u s) (fun t ht => A_eq_phase2 ht) + (phase_A_own_mono (r := a2c) A2_hasDerivAt_public + (fun t ht => a2_nonneg ht) phi_nonneg htheta hs.2) + exact glue_mono phi_nonneg switchOrder.phi_le_theta m1 m2 + have m3 : MonotoneOn (fun t => dot (A t) (u s)) (Icc params.theta s) := by + apply transfer_mono_A (w := u s) + · intro t ht + exact A_eq_phase3 ⟨ht.1, le_trans ht.2 h3⟩ + · exact phase_A_own_mono (r := a3c) A3_hasDerivAt_public + (fun t ht => a3_nonneg ⟨ht.1, lt_of_lt_of_le ht.2 h3⟩) + zero_le_theta (by rfl) hs.2 + exact glue_mono zero_le_theta htheta m12 m3 + have heta : eta ≤ s := le_of_lt (lt_of_not_ge h3) + by_cases h4 : s ≤ tau + · have m123 : MonotoneOn (fun t => dot (A t) (u s)) (Icc (0 : ℝ) eta) := by + have m1 := transfer_mono_A (w := u s) (fun t ht => A_eq_phase1 ht) + (phase_A_own_mono (r := a1c) A1_hasDerivAt_public + (fun t _ => a1_nonneg t) (by rfl) + (le_trans switchOrder.phi_le_theta (le_trans theta_le_eta heta)) hs.2) + have m2 := transfer_mono_A (w := u s) (fun t ht => A_eq_phase2 ht) + (phase_A_own_mono (r := a2c) A2_hasDerivAt_public + (fun t ht => a2_nonneg ht) phi_nonneg (le_trans theta_le_eta heta) hs.2) + have m3 := transfer_mono_A (w := u s) (fun t ht => A_eq_phase3 ht) + (phase_A_own_mono (r := a3c) A3_hasDerivAt_public + (fun t ht => a3_nonneg ht) zero_le_theta heta hs.2) + have m12 := glue_mono phi_nonneg switchOrder.phi_le_theta m1 m2 + exact glue_mono zero_le_theta theta_le_eta m12 m3 + have m4 : MonotoneOn (fun t => dot (A t) (u s)) (Icc eta s) := by + apply transfer_mono_A (w := u s) + · intro t ht + exact A_eq_phase4 ⟨ht.1, le_trans ht.2 h4⟩ + · exact phase_A_own_mono (r := a4c) A4_hasDerivAt_public + (fun t ht => a4_nonneg ⟨ht.1, lt_of_lt_of_le ht.2 h4⟩) + (le_trans zero_le_theta theta_le_eta) (by rfl) hs.2 + exact glue_mono (le_trans zero_le_theta theta_le_eta) heta m123 m4 + have htau : tau ≤ s := le_of_lt (lt_of_not_ge h4) + have mpre : MonotoneOn (fun t => dot (A t) (u s)) (Icc (0 : ℝ) tau) := by + have m1 := transfer_mono_A (w := u s) (fun t ht => A_eq_phase1 ht) + (phase_A_own_mono (r := a1c) A1_hasDerivAt_public + (fun t _ => a1_nonneg t) (by rfl) + (le_trans switchOrder.phi_le_theta (le_trans theta_le_eta (le_trans eta_le_tau htau))) hs.2) + have m2 := transfer_mono_A (w := u s) (fun t ht => A_eq_phase2 ht) + (phase_A_own_mono (r := a2c) A2_hasDerivAt_public + (fun t ht => a2_nonneg ht) phi_nonneg + (le_trans theta_le_eta (le_trans eta_le_tau htau)) hs.2) + have m3 := transfer_mono_A (w := u s) (fun t ht => A_eq_phase3 ht) + (phase_A_own_mono (r := a3c) A3_hasDerivAt_public + (fun t ht => a3_nonneg ht) zero_le_theta (le_trans eta_le_tau htau) hs.2) + have m4 := transfer_mono_A (w := u s) (fun t ht => A_eq_phase4 ht) + (phase_A_own_mono (r := a4c) A4_hasDerivAt_public + (fun t ht => a4_nonneg ht) (le_trans zero_le_theta theta_le_eta) htau hs.2) + have m12 := glue_mono phi_nonneg switchOrder.phi_le_theta m1 m2 + have m123 := glue_mono zero_le_theta theta_le_eta m12 m3 + exact glue_mono (le_trans zero_le_theta theta_le_eta) eta_le_tau m123 m4 + have m5 : MonotoneOn (fun t => dot (A t) (u s)) (Icc tau s) := by + apply transfer_mono_A (w := u s) + · intro t ht + exact A_eq_phase5 ⟨ht.1, le_trans ht.2 hs.2⟩ + · exact phase_A_own_mono (r := a5c) A5_hasDerivAt_public + (fun t _ => a5_nonneg t) (le_trans (le_trans zero_le_theta theta_le_eta) eta_le_tau) + (by rfl) hs.2 + exact glue_mono (le_trans (le_trans zero_le_theta theta_le_eta) eta_le_tau) htau mpre m5 + +private theorem A_u_right_anti (s : ℝ) (hs : s ∈ Icc (0 : ℝ) T) : + AntitoneOn (fun t => dot (A t) (u s)) (Icc s T) := by + by_cases h1 : s ≤ params.phi + · have m1 : AntitoneOn (fun t => dot (A t) (u s)) (Icc s params.phi) := by + apply transfer_anti_A (w := u s) + · intro t ht + exact A_eq_phase1 ⟨le_trans hs.1 ht.1, ht.2⟩ + · exact phase_A_own_anti (r := a1c) A1_hasDerivAt_public + (fun t _ => a1_nonneg t) hs.1 (by rfl) + (le_trans switchOrder.phi_le_theta (le_trans theta_le_eta (le_trans eta_le_tau tau_le_T))) + have m2 := transfer_anti_A (w := u s) (fun t ht => A_eq_phase2 ht) + (phase_A_own_anti (r := a2c) A2_hasDerivAt_public + (fun t ht => a2_nonneg ht) hs.1 h1 + (le_trans theta_le_eta (le_trans eta_le_tau tau_le_T))) + have m3 := transfer_anti_A (w := u s) (fun t ht => A_eq_phase3 ht) + (phase_A_own_anti (r := a3c) A3_hasDerivAt_public + (fun t ht => a3_nonneg ht) hs.1 (le_trans h1 switchOrder.phi_le_theta) + (le_trans eta_le_tau tau_le_T)) + have m4 := transfer_anti_A (w := u s) (fun t ht => A_eq_phase4 ht) + (phase_A_own_anti (r := a4c) A4_hasDerivAt_public + (fun t ht => a4_nonneg ht) hs.1 + (le_trans (le_trans h1 switchOrder.phi_le_theta) theta_le_eta) tau_le_T) + have m5 := transfer_anti_A (w := u s) (fun t ht => A_eq_phase5 ht) + (phase_A_own_anti (r := a5c) A5_hasDerivAt_public + (fun t _ => a5_nonneg t) hs.1 + (le_trans (le_trans (le_trans h1 switchOrder.phi_le_theta) theta_le_eta) eta_le_tau) + (by rfl)) + have m23 := glue_anti switchOrder.phi_le_theta theta_le_eta m2 m3 + have m234 := glue_anti (le_trans switchOrder.phi_le_theta theta_le_eta) eta_le_tau m23 m4 + have m2345 := glue_anti + (le_trans (le_trans switchOrder.phi_le_theta theta_le_eta) eta_le_tau) tau_le_T m234 m5 + exact glue_anti h1 + (le_trans (le_trans (le_trans switchOrder.phi_le_theta theta_le_eta) eta_le_tau) tau_le_T) + m1 m2345 + have hphi : params.phi ≤ s := le_of_lt (lt_of_not_ge h1) + by_cases h2 : s ≤ params.theta + · have m2 : AntitoneOn (fun t => dot (A t) (u s)) (Icc s params.theta) := by + apply transfer_anti_A (w := u s) + · intro t ht + exact A_eq_phase2 ⟨le_trans hphi ht.1, ht.2⟩ + · exact phase_A_own_anti (r := a2c) A2_hasDerivAt_public + (fun t ht => a2_nonneg ⟨lt_of_le_of_lt hphi ht.1, ht.2⟩) + hs.1 (by rfl) (le_trans theta_le_eta (le_trans eta_le_tau tau_le_T)) + have m3 := transfer_anti_A (w := u s) (fun t ht => A_eq_phase3 ht) + (phase_A_own_anti (r := a3c) A3_hasDerivAt_public + (fun t ht => a3_nonneg ht) hs.1 h2 (le_trans eta_le_tau tau_le_T)) + have m4 := transfer_anti_A (w := u s) (fun t ht => A_eq_phase4 ht) + (phase_A_own_anti (r := a4c) A4_hasDerivAt_public + (fun t ht => a4_nonneg ht) hs.1 (le_trans h2 theta_le_eta) tau_le_T) + have m5 := transfer_anti_A (w := u s) (fun t ht => A_eq_phase5 ht) + (phase_A_own_anti (r := a5c) A5_hasDerivAt_public + (fun t _ => a5_nonneg t) hs.1 (le_trans (le_trans h2 theta_le_eta) eta_le_tau) (by rfl)) + have m34 := glue_anti theta_le_eta eta_le_tau m3 m4 + have m345 := glue_anti (le_trans theta_le_eta eta_le_tau) tau_le_T m34 m5 + exact glue_anti h2 + (le_trans (le_trans theta_le_eta eta_le_tau) tau_le_T) m2 m345 + have htheta : params.theta ≤ s := le_of_lt (lt_of_not_ge h2) + by_cases h3 : s ≤ eta + · have m3 : AntitoneOn (fun t => dot (A t) (u s)) (Icc s eta) := by + apply transfer_anti_A (w := u s) + · intro t ht + exact A_eq_phase3 ⟨le_trans htheta ht.1, ht.2⟩ + · exact phase_A_own_anti (r := a3c) A3_hasDerivAt_public + (fun t ht => a3_nonneg ⟨lt_of_le_of_lt htheta ht.1, ht.2⟩) + hs.1 (by rfl) (le_trans eta_le_tau tau_le_T) + have m4 := transfer_anti_A (w := u s) (fun t ht => A_eq_phase4 ht) + (phase_A_own_anti (r := a4c) A4_hasDerivAt_public + (fun t ht => a4_nonneg ht) hs.1 h3 tau_le_T) + have m5 := transfer_anti_A (w := u s) (fun t ht => A_eq_phase5 ht) + (phase_A_own_anti (r := a5c) A5_hasDerivAt_public + (fun t _ => a5_nonneg t) hs.1 (le_trans h3 eta_le_tau) (by rfl)) + have m45 := glue_anti eta_le_tau tau_le_T m4 m5 + exact glue_anti h3 (le_trans eta_le_tau tau_le_T) m3 m45 + have heta : eta ≤ s := le_of_lt (lt_of_not_ge h3) + by_cases h4 : s ≤ tau + · have m4 : AntitoneOn (fun t => dot (A t) (u s)) (Icc s tau) := by + apply transfer_anti_A (w := u s) + · intro t ht + exact A_eq_phase4 ⟨le_trans heta ht.1, ht.2⟩ + · exact phase_A_own_anti (r := a4c) A4_hasDerivAt_public + (fun t ht => a4_nonneg ⟨lt_of_le_of_lt heta ht.1, ht.2⟩) + hs.1 (by rfl) tau_le_T + have m5 := transfer_anti_A (w := u s) (fun t ht => A_eq_phase5 ht) + (phase_A_own_anti (r := a5c) A5_hasDerivAt_public + (fun t _ => a5_nonneg t) hs.1 h4 (by rfl)) + exact glue_anti h4 tau_le_T m4 m5 + have htau : tau ≤ s := le_of_lt (lt_of_not_ge h4) + apply transfer_anti_A (w := u s) + · intro t ht + exact A_eq_phase5 ⟨le_trans htau ht.1, ht.2⟩ + · exact phase_A_own_anti (r := a5c) A5_hasDerivAt_public + (fun t _ => a5_nonneg t) hs.1 (by rfl) (by rfl) + +private theorem C_v_left_mono (s : ℝ) (hs : s ∈ Icc (0 : ℝ) T) : + MonotoneOn (fun t => dot (C t) (v s)) (Icc (0 : ℝ) s) := by + by_cases h1 : s ≤ params.phi + · apply transfer_mono_C (w := v s) + · intro t ht + exact C_eq_phase1 ⟨ht.1, le_trans ht.2 h1⟩ + · exact phase_C_own_mono (r := c1c) C1_hasDerivAt_public + (fun t _ => c1_nonneg t) (by rfl) (by rfl) hs.2 + have hphi : params.phi ≤ s := le_of_lt (lt_of_not_ge h1) + by_cases h2 : s ≤ params.theta + · have m1 := transfer_mono_C (w := v s) (fun t ht => C_eq_phase1 ht) + (phase_C_own_mono (r := c1c) C1_hasDerivAt_public + (fun t _ => c1_nonneg t) (by rfl) hphi hs.2) + have m2 : MonotoneOn (fun t => dot (C t) (v s)) (Icc params.phi s) := by + apply transfer_mono_C (w := v s) + · intro t ht + exact C_eq_phase2 ⟨ht.1, le_trans ht.2 h2⟩ + · exact phase_C_own_mono (r := c2c) C2_hasDerivAt_public + (fun t ht => c2_nonneg ⟨ht.1, lt_of_lt_of_le ht.2 h2⟩) + phi_nonneg (by rfl) hs.2 + exact glue_mono phi_nonneg hphi m1 m2 + have htheta : params.theta ≤ s := le_of_lt (lt_of_not_ge h2) + by_cases h3 : s ≤ eta + · have m12 : MonotoneOn (fun t => dot (C t) (v s)) (Icc (0 : ℝ) params.theta) := by + have m1 := transfer_mono_C (w := v s) (fun t ht => C_eq_phase1 ht) + (phase_C_own_mono (r := c1c) C1_hasDerivAt_public + (fun t _ => c1_nonneg t) (by rfl) (le_trans switchOrder.phi_le_theta htheta) hs.2) + have m2 := transfer_mono_C (w := v s) (fun t ht => C_eq_phase2 ht) + (phase_C_own_mono (r := c2c) C2_hasDerivAt_public + (fun t ht => c2_nonneg ht) phi_nonneg htheta hs.2) + exact glue_mono phi_nonneg switchOrder.phi_le_theta m1 m2 + have m3 : MonotoneOn (fun t => dot (C t) (v s)) (Icc params.theta s) := by + apply transfer_mono_C (w := v s) + · intro t ht + exact C_eq_phase3 ⟨ht.1, le_trans ht.2 h3⟩ + · exact phase_C_own_mono (r := c3c) C3_hasDerivAt_public + (fun t ht => c3_nonneg ⟨ht.1, lt_of_lt_of_le ht.2 h3⟩) + zero_le_theta (by rfl) hs.2 + exact glue_mono zero_le_theta htheta m12 m3 + have heta : eta ≤ s := le_of_lt (lt_of_not_ge h3) + by_cases h4 : s ≤ tau + · have m123 : MonotoneOn (fun t => dot (C t) (v s)) (Icc (0 : ℝ) eta) := by + have m1 := transfer_mono_C (w := v s) (fun t ht => C_eq_phase1 ht) + (phase_C_own_mono (r := c1c) C1_hasDerivAt_public + (fun t _ => c1_nonneg t) (by rfl) + (le_trans switchOrder.phi_le_theta (le_trans theta_le_eta heta)) hs.2) + have m2 := transfer_mono_C (w := v s) (fun t ht => C_eq_phase2 ht) + (phase_C_own_mono (r := c2c) C2_hasDerivAt_public + (fun t ht => c2_nonneg ht) phi_nonneg (le_trans theta_le_eta heta) hs.2) + have m3 := transfer_mono_C (w := v s) (fun t ht => C_eq_phase3 ht) + (phase_C_own_mono (r := c3c) C3_hasDerivAt_public + (fun t ht => c3_nonneg ht) zero_le_theta heta hs.2) + have m12 := glue_mono phi_nonneg switchOrder.phi_le_theta m1 m2 + exact glue_mono zero_le_theta theta_le_eta m12 m3 + have m4 : MonotoneOn (fun t => dot (C t) (v s)) (Icc eta s) := by + apply transfer_mono_C (w := v s) + · intro t ht + exact C_eq_phase4 ⟨ht.1, le_trans ht.2 h4⟩ + · exact phase_C_own_mono (r := c4c) C4_hasDerivAt_public + (fun t ht => c4_nonneg ⟨ht.1, lt_of_lt_of_le ht.2 h4⟩) + (le_trans zero_le_theta theta_le_eta) (by rfl) hs.2 + exact glue_mono (le_trans zero_le_theta theta_le_eta) heta m123 m4 + have htau : tau ≤ s := le_of_lt (lt_of_not_ge h4) + have mpre : MonotoneOn (fun t => dot (C t) (v s)) (Icc (0 : ℝ) tau) := by + have m1 := transfer_mono_C (w := v s) (fun t ht => C_eq_phase1 ht) + (phase_C_own_mono (r := c1c) C1_hasDerivAt_public + (fun t _ => c1_nonneg t) (by rfl) + (le_trans switchOrder.phi_le_theta (le_trans theta_le_eta (le_trans eta_le_tau htau))) hs.2) + have m2 := transfer_mono_C (w := v s) (fun t ht => C_eq_phase2 ht) + (phase_C_own_mono (r := c2c) C2_hasDerivAt_public + (fun t ht => c2_nonneg ht) phi_nonneg + (le_trans theta_le_eta (le_trans eta_le_tau htau)) hs.2) + have m3 := transfer_mono_C (w := v s) (fun t ht => C_eq_phase3 ht) + (phase_C_own_mono (r := c3c) C3_hasDerivAt_public + (fun t ht => c3_nonneg ht) zero_le_theta (le_trans eta_le_tau htau) hs.2) + have m4 := transfer_mono_C (w := v s) (fun t ht => C_eq_phase4 ht) + (phase_C_own_mono (r := c4c) C4_hasDerivAt_public + (fun t ht => c4_nonneg ht) (le_trans zero_le_theta theta_le_eta) htau hs.2) + have m12 := glue_mono phi_nonneg switchOrder.phi_le_theta m1 m2 + have m123 := glue_mono zero_le_theta theta_le_eta m12 m3 + exact glue_mono (le_trans zero_le_theta theta_le_eta) eta_le_tau m123 m4 + have m5 : MonotoneOn (fun t => dot (C t) (v s)) (Icc tau s) := by + apply transfer_mono_C (w := v s) + · intro t ht + exact C_eq_phase5 ⟨ht.1, le_trans ht.2 hs.2⟩ + · exact phase_C_own_mono (r := c5c) C5_hasDerivAt_coeff + (fun t _ => c5_nonneg t) (le_trans (le_trans zero_le_theta theta_le_eta) eta_le_tau) + (by rfl) hs.2 + exact glue_mono (le_trans (le_trans zero_le_theta theta_le_eta) eta_le_tau) htau mpre m5 + +private theorem C_v_right_anti (s : ℝ) (hs : s ∈ Icc (0 : ℝ) T) : + AntitoneOn (fun t => dot (C t) (v s)) (Icc s T) := by + by_cases h1 : s ≤ params.phi + · have m1 : AntitoneOn (fun t => dot (C t) (v s)) (Icc s params.phi) := by + apply transfer_anti_C (w := v s) + · intro t ht + exact C_eq_phase1 ⟨le_trans hs.1 ht.1, ht.2⟩ + · exact phase_C_own_anti (r := c1c) C1_hasDerivAt_public + (fun t _ => c1_nonneg t) hs.1 (by rfl) + (le_trans switchOrder.phi_le_theta (le_trans theta_le_eta (le_trans eta_le_tau tau_le_T))) + have m2 := transfer_anti_C (w := v s) (fun t ht => C_eq_phase2 ht) + (phase_C_own_anti (r := c2c) C2_hasDerivAt_public + (fun t ht => c2_nonneg ht) hs.1 h1 + (le_trans theta_le_eta (le_trans eta_le_tau tau_le_T))) + have m3 := transfer_anti_C (w := v s) (fun t ht => C_eq_phase3 ht) + (phase_C_own_anti (r := c3c) C3_hasDerivAt_public + (fun t ht => c3_nonneg ht) hs.1 (le_trans h1 switchOrder.phi_le_theta) + (le_trans eta_le_tau tau_le_T)) + have m4 := transfer_anti_C (w := v s) (fun t ht => C_eq_phase4 ht) + (phase_C_own_anti (r := c4c) C4_hasDerivAt_public + (fun t ht => c4_nonneg ht) hs.1 + (le_trans (le_trans h1 switchOrder.phi_le_theta) theta_le_eta) tau_le_T) + have m5 := transfer_anti_C (w := v s) (fun t ht => C_eq_phase5 ht) + (phase_C_own_anti (r := c5c) C5_hasDerivAt_coeff + (fun t _ => c5_nonneg t) hs.1 + (le_trans (le_trans (le_trans h1 switchOrder.phi_le_theta) theta_le_eta) eta_le_tau) + (by rfl)) + have m23 := glue_anti switchOrder.phi_le_theta theta_le_eta m2 m3 + have m234 := glue_anti (le_trans switchOrder.phi_le_theta theta_le_eta) eta_le_tau m23 m4 + have m2345 := glue_anti + (le_trans (le_trans switchOrder.phi_le_theta theta_le_eta) eta_le_tau) tau_le_T m234 m5 + exact glue_anti h1 + (le_trans (le_trans (le_trans switchOrder.phi_le_theta theta_le_eta) eta_le_tau) tau_le_T) + m1 m2345 + have hphi : params.phi ≤ s := le_of_lt (lt_of_not_ge h1) + by_cases h2 : s ≤ params.theta + · have m2 : AntitoneOn (fun t => dot (C t) (v s)) (Icc s params.theta) := by + apply transfer_anti_C (w := v s) + · intro t ht + exact C_eq_phase2 ⟨le_trans hphi ht.1, ht.2⟩ + · exact phase_C_own_anti (r := c2c) C2_hasDerivAt_public + (fun t ht => c2_nonneg ⟨lt_of_le_of_lt hphi ht.1, ht.2⟩) + hs.1 (by rfl) (le_trans theta_le_eta (le_trans eta_le_tau tau_le_T)) + have m3 := transfer_anti_C (w := v s) (fun t ht => C_eq_phase3 ht) + (phase_C_own_anti (r := c3c) C3_hasDerivAt_public + (fun t ht => c3_nonneg ht) hs.1 h2 (le_trans eta_le_tau tau_le_T)) + have m4 := transfer_anti_C (w := v s) (fun t ht => C_eq_phase4 ht) + (phase_C_own_anti (r := c4c) C4_hasDerivAt_public + (fun t ht => c4_nonneg ht) hs.1 (le_trans h2 theta_le_eta) tau_le_T) + have m5 := transfer_anti_C (w := v s) (fun t ht => C_eq_phase5 ht) + (phase_C_own_anti (r := c5c) C5_hasDerivAt_coeff + (fun t _ => c5_nonneg t) hs.1 (le_trans (le_trans h2 theta_le_eta) eta_le_tau) (by rfl)) + have m34 := glue_anti theta_le_eta eta_le_tau m3 m4 + have m345 := glue_anti (le_trans theta_le_eta eta_le_tau) tau_le_T m34 m5 + exact glue_anti h2 + (le_trans (le_trans theta_le_eta eta_le_tau) tau_le_T) m2 m345 + have htheta : params.theta ≤ s := le_of_lt (lt_of_not_ge h2) + by_cases h3 : s ≤ eta + · have m3 : AntitoneOn (fun t => dot (C t) (v s)) (Icc s eta) := by + apply transfer_anti_C (w := v s) + · intro t ht + exact C_eq_phase3 ⟨le_trans htheta ht.1, ht.2⟩ + · exact phase_C_own_anti (r := c3c) C3_hasDerivAt_public + (fun t ht => c3_nonneg ⟨lt_of_le_of_lt htheta ht.1, ht.2⟩) + hs.1 (by rfl) (le_trans eta_le_tau tau_le_T) + have m4 := transfer_anti_C (w := v s) (fun t ht => C_eq_phase4 ht) + (phase_C_own_anti (r := c4c) C4_hasDerivAt_public + (fun t ht => c4_nonneg ht) hs.1 h3 tau_le_T) + have m5 := transfer_anti_C (w := v s) (fun t ht => C_eq_phase5 ht) + (phase_C_own_anti (r := c5c) C5_hasDerivAt_coeff + (fun t _ => c5_nonneg t) hs.1 (le_trans h3 eta_le_tau) (by rfl)) + have m45 := glue_anti eta_le_tau tau_le_T m4 m5 + exact glue_anti h3 (le_trans eta_le_tau tau_le_T) m3 m45 + have heta : eta ≤ s := le_of_lt (lt_of_not_ge h3) + by_cases h4 : s ≤ tau + · have m4 : AntitoneOn (fun t => dot (C t) (v s)) (Icc s tau) := by + apply transfer_anti_C (w := v s) + · intro t ht + exact C_eq_phase4 ⟨le_trans heta ht.1, ht.2⟩ + · exact phase_C_own_anti (r := c4c) C4_hasDerivAt_public + (fun t ht => c4_nonneg ⟨lt_of_le_of_lt heta ht.1, ht.2⟩) + hs.1 (by rfl) tau_le_T + have m5 := transfer_anti_C (w := v s) (fun t ht => C_eq_phase5 ht) + (phase_C_own_anti (r := c5c) C5_hasDerivAt_coeff + (fun t _ => c5_nonneg t) hs.1 h4 (by rfl)) + exact glue_anti h4 tau_le_T m4 m5 + have htau : tau ≤ s := le_of_lt (lt_of_not_ge h4) + apply transfer_anti_C (w := v s) + · intro t ht + exact C_eq_phase5 ⟨le_trans htau ht.1, ht.2⟩ + · exact phase_C_own_anti (r := c5c) C5_hasDerivAt_coeff + (fun t _ => c5_nonneg t) hs.1 (by rfl) (by rfl) + +theorem A_own_max (s : ℝ) (hs : s ∈ Icc (0 : ℝ) T) : + ∀ t ∈ Icc (0 : ℝ) T, dot (A t) (u s) ≤ dot (A s) (u s) := by + intro t ht + by_cases hts : t ≤ s + · exact A_u_left_mono s hs ⟨ht.1, hts⟩ ⟨hs.1, le_rfl⟩ hts + · have hst : s ≤ t := le_of_lt (lt_of_not_ge hts) + exact A_u_right_anti s hs ⟨le_rfl, hs.2⟩ ⟨hst, ht.2⟩ hst + +theorem C_own_max (s : ℝ) (hs : s ∈ Icc (0 : ℝ) T) : + ∀ t ∈ Icc (0 : ℝ) T, dot (C t) (v s) ≤ dot (C s) (v s) := by + intro t ht + by_cases hts : t ≤ s + · exact C_v_left_mono s hs ⟨ht.1, hts⟩ ⟨hs.1, le_rfl⟩ hts + · have hst : s ≤ t := le_of_lt (lt_of_not_ge hts) + exact C_v_right_anti s hs ⟨le_rfl, hs.2⟩ ⟨hst, ht.2⟩ hst + +private theorem a1_lower : (6 / 5 : ℝ) ≤ params.a1 := by + have h := Romik.a1_lower_bound_of_mem_box params_mem + norm_num at h ⊢ + linarith + +private theorem k51_lower : (-11 / 10 : ℝ) ≤ params.k51 := by + have hp := params_mem + dsimp [Romik.box] at hp + have hlo : + qR (-20344080735756291713874857283) 20000000000000000000000000000 ≤ params.k51 := by + aesop + norm_num [qR] at hlo ⊢ + linarith + +private theorem endpointGap_nonneg : 0 ≤ 3 * params.a1 + params.k51 - 1 := by + nlinarith [a1_lower, k51_lower] + +private theorem path5_fst_formula (p : Romik.Params) (t : ℝ) : + (Romik.path5 p t).1 = + Real.cos t * (p.e1 * Real.cos t + p.e2 * Real.sin t - 1 / 2) - + Real.sin t * (-p.e2 * Real.cos t + p.e1 * Real.sin t - 1) + p.k51 := by + rfl + +private theorem C_zero_formula : C 0 = (1 - 2 * params.a1, 1) := by + have hphi : (0 : ℝ) ≤ params.phi := phi_nonneg + have ha2 := Romik.a2_eq_neg_quarter_of_equations params_equations + change + ((Romik.path params 0).1 - beta 0 * (u 0).1 + (v 0).1, + (Romik.path params 0).2 - beta 0 * (u 0).2 + (v 0).2) = + (1 - 2 * params.a1, 1) + rw [pathZero] + apply Prod.ext <;> simp [beta, alphaBetaAt, hphi, Romik.alphaBeta1, u, v, ha2] + +private theorem A_T_formula : A T = (params.a1 + params.k51, 1) := by + have he1 := Romik.e1_eq_a1_of_equations params_equations + have he2 := Romik.e2_eq_quarter_of_equations params_equations + have hphase : A T = phaseA5 T := A_eq_phase5 ⟨tau_le_T, le_rfl⟩ + rw [hphase] + apply Prod.ext + · simp [phaseA5, path5_fst_formula, Romik.alphaBeta5, u, v, T, he1, he2]; ring + · have hpath : Romik.path params T = Romik.path5 params T := by + simpa [T] using Romik.path_halfPi_eq_path5_of_mem_box params_mem + have hy : (Romik.path5 params T).2 = 0 := by + rw [← hpath] + exact pathEndYZero + have hyHalfPi : (Romik.path5 params (Real.pi / 2)).2 = 0 := by + simpa [T] using hy + simp [phaseA5, hyHalfPi, Romik.alphaBeta5, u, v, T, he1, he2] + +private theorem endpoint_relation : A T = C 0 + (3 * params.a1 + params.k51 - 1) • (1, 0) := by + rw [A_T_formula, C_zero_formula] + apply Prod.ext <;> simp; ring + +private theorem A_T_v_le_C_zero_v (s : ℝ) (hs : s ∈ Icc (0 : ℝ) T) : + dot (A T) (v s) ≤ dot (C 0) (v s) := by + rw [endpoint_relation] + have hsin : 0 ≤ Real.sin s := Real.sin_nonneg_of_nonneg_of_le_pi hs.1 (le_trans hs.2 T_le_pi) + simp [dot, v] + nlinarith [endpointGap_nonneg] + +private theorem C_zero_u_le_A_T_u (s : ℝ) (hs : s ∈ Icc (0 : ℝ) T) : + dot (C 0) (u s) ≤ dot (A T) (u s) := by + rw [endpoint_relation] + rcases hs with ⟨hs0, hsT⟩ + have hc : 0 ≤ Real.cos s := by + apply Real.cos_nonneg_of_neg_pi_div_two_le_of_le + · dsimp [T] at hsT ⊢ + nlinarith [Real.pi_pos] + · simpa [T] using hsT + simp [dot, u] + nlinarith [endpointGap_nonneg] + +theorem A_base_nonneg : ∀ t ∈ Icc (0 : ℝ) T, 0 ≤ (A t).2 := by + intro t ht + have hm := A_y_global_mono ⟨le_rfl, T_nonneg⟩ ht ht.1 + have h0 : dot (A 0) (0, 1) = 0 := by + rw [A_zero_eq_anchor] + simp [dot, anchor] + have ht' : dot (A t) (0, 1) = (A t).2 := by simp [dot] + change dot (A 0) (0, 1) ≤ dot (A t) (0, 1) at hm + rw [h0, ht'] at hm + exact hm + +theorem C_base_nonneg : ∀ t ∈ Icc (0 : ℝ) T, 0 ≤ (C t).2 := by + intro t ht + have hm := C_y_global_anti ht ⟨T_nonneg, le_rfl⟩ ht.2 + have hT : dot (C T) (0, 1) = 0 := by + simp [dot, C_T_snd_zero] + have ht' : dot (C t) (0, 1) = (C t).2 := by simp [dot] + change dot (C T) (0, 1) ≤ dot (C t) (0, 1) at hm + rw [hT, ht'] at hm + exact hm + +theorem supportA_direct : ∀ t ∈ Icc (0 : ℝ) T, A t ∈ K := by + intro t ht + rw [Romik.mem_K0] + refine ⟨A_base_nonneg t ht, ?_⟩ + intro s hs + have hsT : s ∈ Icc (0 : ℝ) T := by simpa [T] using hs + constructor + · change dot (A t) (u s) ≤ dot (Romik.path params s) (u s) + 1 + have hmax := A_own_max s hsT t ht + rw [A_support_identity] at hmax + exact hmax + · change dot (A t) (v s) ≤ dot (Romik.path params s) (v s) + 1 + have hmono := A_v_global_mono s hsT ht ⟨T_nonneg, le_rfl⟩ ht.2 + have hsep := A_T_v_le_C_zero_v s hsT + have hmax := C_own_max s hsT 0 ⟨le_rfl, T_nonneg⟩ + have hid := C_support_identity s + linarith + +theorem supportC_direct : ∀ t ∈ Icc (0 : ℝ) T, C t ∈ K := by + intro t ht + rw [Romik.mem_K0] + refine ⟨C_base_nonneg t ht, ?_⟩ + intro s hs + have hsT : s ∈ Icc (0 : ℝ) T := by simpa [T] using hs + constructor + · change dot (C t) (u s) ≤ dot (Romik.path params s) (u s) + 1 + have hanti := C_u_global_anti s hsT ⟨le_rfl, T_nonneg⟩ ht ht.1 + have hsep := C_zero_u_le_A_T_u s hsT + have hmax := A_own_max s hsT T ⟨T_nonneg, le_rfl⟩ + have hid := A_support_identity s + linarith + · change dot (C t) (v s) ≤ dot (Romik.path params s) (v s) + 1 + have hmax := C_own_max s hsT t ht + rw [C_support_identity] at hmax + exact hmax + +end Stage3 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Part C direct final assembly + +This module bypasses the earlier conditional calculus/branch certificate layers. +The two outer-support fields are now concrete theorems. What remains here is +exactly the six substantive topology/no-hidden facts; no additional certificate +wrapper is introduced. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage3 + +/-- Direct global geometry from the concrete support proof and the six exact +remaining topology/no-hidden statements. -/ +theorem globalGeometryDirect + (hU : NoHiddenCrossingU) + (hV : NoHiddenCrossingV) + (hboundary : frontier (Romik.niche params) = claimedNicheBoundary) + (hniche : IsConnected (Romik.niche params)) + (hanchor : anchor ∈ G) + (hG : IsConnected G) : GlobalGeometryCertificate := + { supportA := supportA_direct + supportC := supportC_direct + nicheTopology := + { noHiddenU := hU + noHiddenV := hV + boundary_eq := hboundary + niche_connected := hniche } + topology := + { anchor_mem := hanchor + connected := hG } } + +end Stage3 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Part C Stage 4: public path differential layer + +Source-clean phase derivatives of the five Gerver path pieces. These are +provided here as compatibility wrappers around the shared Stage 2 proofs. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage4 + +theorem path1_hasDerivAt_public (t : ℝ) : + HasDerivAt (Romik.path1 params) + (Romik.rot t (Romik.alphaBeta1 params t)) t := + Stage2.path1_hasDerivAt t + +theorem path2_hasDerivAt_public (t : ℝ) : + HasDerivAt (Romik.path2 params) + (Romik.rot t (Romik.alphaBeta2 params t)) t := + Stage2.path2_hasDerivAt t + +theorem path3_hasDerivAt_public (t : ℝ) : + HasDerivAt (Romik.path3 params) + (Romik.rot t (Romik.alphaBeta3 params t)) t := + Stage2.path3_hasDerivAt t + +theorem path4_hasDerivAt_public (t : ℝ) : + HasDerivAt (Romik.path4 params) + (Romik.rot t (Romik.alphaBeta4 params t)) t := + Stage2.path4_hasDerivAt t + +theorem path5_hasDerivAt_public (t : ℝ) : + HasDerivAt (Romik.path5 params) + (Romik.rot t (Romik.alphaBeta5 params t)) t := + Stage2.path5_hasDerivAt t + +/-! The five public phase derivative theorems above are the complete differential +interface used by Stage 4. We intentionally do not assert a global `HasDerivAt` +for the nested-if path at switching times: such a theorem requires a separate +matching-of-derivatives argument and is neither needed nor used by the Part C +closure. -/ + +end Stage4 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Part C Stage 4: concrete geometry facts + +C21: source-clean root closure. In particular, branch decisions for the +literal nested-if path are made before endpoint abbreviations are unfolded. +The core-path nonnegativity statement is transported from the already sound +Part B cell enclosure instead of being reproved by a large transcendental +`nlinarith` call. +-/ + +@[expose] public section + +noncomputable section + +open Set + +namespace GerverSofa +namespace PartC +namespace Stage4 + +open Stage2 + +private theorem T_nonneg : (0 : ℝ) ≤ T := by + dsimp [T] + positivity + +private theorem T_le_pi : T ≤ Real.pi := by + dsimp [T] + nlinarith [Real.pi_pos] + +private theorem rat_nonneg_cast {q : ℚ} (h : 0 ≤ q) : (0 : ℝ) ≤ (q : ℝ) := by + exact_mod_cast h + +private theorem rat_pos_cast {q : ℚ} (h : 0 < q) : (0 : ℝ) < (q : ℝ) := by + exact_mod_cast h + +theorem phi_pos : 0 < params.phi := Romik.phi_pos_of_mem_box params_mem + +theorem phi_lt_theta : params.phi < params.theta := by + have hphi := phi_bounds.2 + have htheta := theta_bounds.1 + norm_num at hphi htheta ⊢ + linarith + +theorem theta_pos : 0 < params.theta := lt_trans phi_pos phi_lt_theta + +theorem theta_lt_eta : params.theta < eta := by + have htheta := theta_bounds.2 + norm_num at htheta + dsimp [eta, T] + nlinarith [Real.pi_gt_three] + +theorem eta_lt_tau : eta < tau := by + dsimp [eta, tau] + linarith [phi_lt_theta] + +theorem eta_lt_T : eta < T := by + dsimp [eta] + linarith [theta_pos] + +theorem tau_lt_T : tau < T := by + dsimp [tau] + linarith [phi_pos] + +theorem theta_lt_T : params.theta < T := lt_trans theta_lt_eta eta_lt_T + +theorem phi_lt_T : params.phi < T := lt_trans phi_lt_theta theta_lt_T + +theorem phi_lt_eta : params.phi < eta := lt_trans phi_lt_theta theta_lt_eta + +theorem theta_lt_tau : params.theta < tau := + lt_trans theta_lt_eta eta_lt_tau + +private theorem path_at_phi : + Romik.path params params.phi = Romik.path1 params params.phi := by + simp only [Romik.path, ite_eq_left (le_refl params.phi)] + +private theorem path_at_theta : + Romik.path params params.theta = Romik.path2 params params.theta := by + simp only [Romik.path, ite_eq_right (not_le.mpr phi_lt_theta), + ite_eq_left (le_refl params.theta)] + +private theorem path_at_eta : + Romik.path params eta = Romik.path3 params eta := by + have hraw : eta ≤ Real.pi / 2 - params.theta := by + rfl + simp only [Romik.path, ite_eq_right (not_le.mpr phi_lt_eta), + ite_eq_right (not_le.mpr theta_lt_eta), ite_eq_left hraw] + +private theorem path_at_tau : + Romik.path params tau = Romik.path4 params tau := by + have hphi : ¬ tau ≤ params.phi := not_le.mpr (lt_trans phi_lt_theta theta_lt_tau) + have htheta : ¬ tau ≤ params.theta := not_le.mpr theta_lt_tau + have heta : ¬ tau ≤ Real.pi / 2 - params.theta := by + simpa [eta, T] using (not_le.mpr eta_lt_tau) + have htau : tau ≤ Real.pi / 2 - params.phi := by + rfl + simp only [Romik.path, ite_eq_right hphi, ite_eq_right htheta, ite_eq_right heta, ite_eq_left + htau] + +/-! ## C23: minimal exact reflection bridge + +C22 tried to replace the whole scalar layer at once and regressed badly. C23 +rolls back to the stable C21 file and cherry-picks only the reflection bridge +needed for `D_theta_eq_path_tau`. -/ + +private def hReflect (z : Point) : Point := + (2 * params.k31 - z.1, z.2) + +private theorem hReflect_involutive (z : Point) : hReflect (hReflect z) = z := by + ext <;> simp [hReflect] + +private theorem phase24_horizontal_reflection (t : ℝ) : + (Romik.path4 params (T - t)).1 + (Romik.path2 params t).1 = + params.k41 + params.k21 := by + have hd1 := Romik.d1_eq_quarterPi_sub_b1_of_equations params_equations + have hd2 := Romik.d2_eq_b2_add_quarterPi_correction_of_equations params_equations + dsimp [T, Romik.path4, Romik.path2, Romik.rot, Romik.addK] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub, hd1, hd2] + ring + +private theorem phase3_horizontal_reflection (t : ℝ) : + (Romik.path3 params (T - t)).1 + (Romik.path3 params t).1 = + 2 * params.k31 := by + have hc2 := Romik.c2_eq_c1_sub_halfPi_of_equations params_equations + dsimp [T, Romik.path3, Romik.rot, Romik.addK] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub, hc2] + ring + +private theorem k41_add_k21_eq_two_k31 : + params.k41 + params.k21 = 2 * params.k31 := by + have h24 := phase24_horizontal_reflection params.theta + have h33 := phase3_horizontal_reflection params.theta + have h23 := congrArg Prod.fst PartB.match23 + have h34 := congrArg Prod.fst PartB.match34 + simp only [T] at h24 h33 h34 + linarith + +private theorem phase24_reflect (t : ℝ) : + Romik.path4 params (T - t) = hReflect (Romik.path2 params t) := by + apply Prod.ext + · have h := phase24_horizontal_reflection t + rw [k41_add_k21_eq_two_k31] at h + dsimp [hReflect] + linarith + · have h := Romik.phase24_vertical_reflection_of_equations params_equations t + have hk := Romik.k42_eq_k22_of_equations params_equations + rw [hk] at h + have h' : (Romik.path4 params (T - t)).2 = (Romik.path2 params t).2 := by + dsimp [T] at ⊢ + linarith [h] + simpa [hReflect] using h' + +private theorem phase3_reflect (t : ℝ) : + Romik.path3 params (T - t) = hReflect (Romik.path3 params t) := by + apply Prod.ext + · have h := phase3_horizontal_reflection t + dsimp [hReflect] + linarith + · have h := Romik.phase3_vertical_reflection_of_equations params_equations t + simpa [T, hReflect] using h + +private theorem rot_dot_u (t : ℝ) (z : Point) : + dot (Romik.rot t z) (u t) = z.1 := + Stage3.rot_dot_u t z + +private theorem rot_dot_v (t : ℝ) (z : Point) : + dot (Romik.rot t z) (v t) = z.2 := + Stage3.rot_dot_v t z + +private theorem rot_injective (t : ℝ) : Function.Injective (Romik.rot t) := + Stage3.rot_injective t + +private theorem matchPrime23 : + Romik.pathPrime2 params params.theta = + Romik.pathPrime3 params params.theta := by + have h14 := congrFun params_equations (14 : Fin 22) + have h15 := congrFun params_equations (15 : Fin 22) + simp [Romik.system] at h14 h15 + apply Prod.ext <;> linarith + +private theorem pathPrime2_eq_rot (p : Romik.Params) (t : ℝ) : + Romik.pathPrime2 p t = Romik.rot t (Romik.alphaBeta2 p t) := rfl + +private theorem pathPrime3_eq_rot (p : Romik.Params) (t : ℝ) : + Romik.pathPrime3 p t = Romik.rot t (Romik.alphaBeta3 p t) := rfl + +private theorem matchAB23 : + Romik.alphaBeta2 params params.theta = + Romik.alphaBeta3 params params.theta := by + apply rot_injective params.theta + simpa [pathPrime2_eq_rot, pathPrime3_eq_rot] using matchPrime23 + +private def reflAB (z : Point) : Point := (-z.2, -z.1) + +private theorem ab3_reflect (t : ℝ) : + Romik.alphaBeta3 params (T - t) = reflAB (Romik.alphaBeta3 params t) := by + dsimp [T, reflAB, Romik.alphaBeta3] + rw [Romik.c2_eq_c1_sub_halfPi_of_equations params_equations] + ring_nf + +/-- Equation pair 20--21 is exactly the first niche contact. -/ +theorem B_eta_eq_path_phi : B eta = Romik.path params params.phi := by + have h20 := congrFun params_equations (20 : Fin 22) + have h21 := congrFun params_equations (21 : Fin 22) + simp only [Romik.system, one_div, Fin.isValue, Matrix.cons_val, Pi.zero_apply] at h20 h21 + have h20' : + (Romik.path1 params params.phi).1 - + ((Romik.path3 params eta).1 - + (Romik.alphaBeta3 params eta).1 * Real.sin eta) = 0 := by + simpa [eta, T] using h20 + have h21' : + (Romik.path1 params params.phi).2 - + ((Romik.path3 params eta).2 + + (Romik.alphaBeta3 params eta).1 * Real.cos eta) = 0 := by + simpa [eta, T] using h21 + rw [path_at_phi] + apply Prod.ext + · change (Romik.path params eta).1 + alpha eta * (v eta).1 = + (Romik.path1 params params.phi).1 + rw [path_at_eta] + have ha : alpha eta = (Romik.alphaBeta3 params eta).1 := by + simp only [alpha, alphaBetaAt, ite_eq_right (not_le.mpr phi_lt_eta), + ite_eq_right (not_le.mpr theta_lt_eta), ite_eq_left (le_refl eta)] + rw [ha] + simp only [v] + linarith + · change (Romik.path params eta).2 + alpha eta * (v eta).2 = + (Romik.path1 params params.phi).2 + rw [path_at_eta] + have ha : alpha eta = (Romik.alphaBeta3 params eta).1 := by + simp only [alpha, alphaBetaAt, ite_eq_right (not_le.mpr phi_lt_eta), + ite_eq_right (not_le.mpr theta_lt_eta), ite_eq_left (le_refl eta)] + rw [ha] + simp only [v] + linarith + +/-- Reflected contact at the other end of the core. -/ +theorem D_theta_eq_path_tau : D params.theta = Romik.path params tau := by + have hb : beta params.theta = (Romik.alphaBeta2 params params.theta).2 := by + simp only [beta, alphaBetaAt, ite_eq_right (not_le.mpr phi_lt_theta), + ite_eq_left (le_refl params.theta)] + have ha : alpha eta = (Romik.alphaBeta3 params eta).1 := by + simp only [alpha, alphaBetaAt, ite_eq_right (not_le.mpr phi_lt_eta), + ite_eq_right (not_le.mpr theta_lt_eta), ite_eq_left (le_refl eta)] + have h3 : Romik.path3 params eta = hReflect (Romik.path2 params params.theta) := by + calc + Romik.path3 params eta = hReflect (Romik.path3 params params.theta) := by + simpa [eta] using phase3_reflect params.theta + _ = hReflect (Romik.path2 params params.theta) := by + exact congrArg hReflect PartB.match23.symm + have hab0 : (Romik.alphaBeta3 params eta).1 = + -(Romik.alphaBeta3 params params.theta).2 := by + have h := congrArg Prod.fst (ab3_reflect params.theta) + simpa [eta, reflAB] using h + have hab : (Romik.alphaBeta3 params eta).1 = + -(Romik.alphaBeta2 params params.theta).2 := by + calc + (Romik.alphaBeta3 params eta).1 = + -(Romik.alphaBeta3 params params.theta).2 := hab0 + _ = -(Romik.alphaBeta2 params params.theta).2 := by + rw [← congrArg Prod.snd matchAB23] + have hDB : hReflect (D params.theta) = B eta := by + rw [D, B, path_at_theta, path_at_eta, hb, ha, h3, hab] + apply Prod.ext + · simp [hReflect, u, v, eta, T, Real.sin_pi_div_two_sub, + Real.cos_pi_div_two_sub] + ring + · simp [hReflect, u, v, eta, T, Real.sin_pi_div_two_sub, + Real.cos_pi_div_two_sub] + ring + have hTau : Romik.path params tau = hReflect (Romik.path params params.phi) := by + rw [path_at_tau, path_at_phi] + calc + Romik.path4 params tau = hReflect (Romik.path2 params params.phi) := by + simpa [tau] using phase24_reflect params.phi + _ = hReflect (Romik.path1 params params.phi) := by + exact congrArg hReflect PartB.match12.symm + have hDB' := congrArg hReflect hDB + rw [hReflect_involutive] at hDB' + calc + D params.theta = hReflect (B eta) := hDB' + _ = hReflect (Romik.path params params.phi) := congrArg hReflect B_eta_eq_path_phi + _ = Romik.path params tau := hTau.symm + +/-- The two base endpoints of the claimed niche boundary lie on `y=0`. -/ +theorem B_T_y_zero : (B T).2 = 0 := by + change (Romik.path params T).2 + alpha T * Real.cos T = 0 + have hEnd : (Romik.path params T).2 = 0 := by + simpa [T] using pathEndYZero + rw [hEnd] + simp [T] + +theorem D_zero_y_zero : (D 0).2 = 0 := by + change (Romik.path params 0).2 - beta 0 * Real.sin 0 = 0 + rw [pathZero] + norm_num + +/-! Exact mesh transport for the literal core path. Cells 1--62 are uniformly +above the base. Cells 0 and 63 are intentionally excluded: their interval +hulls contain the terminal base contacts and have a tiny negative lower hull. -/ +private theorem core_path_cell_lo_nonneg : + ∀ i : PartB.Cell, 1 ≤ i.1 → i.1 ≤ 62 → + (0 : ℚ) ≤ (PartB.cellPathInterval i).2.lo := by + decide +kernel + +/-! C30 strengthens the already kernel-checked cell statement from nonnegativity +to strict positivity on every core cell. The computation is the same finite +exact-rational decision problem; only the target relation is stronger. -/ +private theorem core_path_cell_lo_pos : + ∀ i : PartB.Cell, 1 ≤ i.1 → i.1 ≤ 62 → + (0 : ℚ) < (PartB.cellPathInterval i).2.lo := by + decide +kernel +private theorem cell1_path_y_lo_pos : + (0 : ℚ) < (PartB.cellPathInterval (1 : PartB.Cell)).2.lo := by + decide +kernel + +/-- The first core contact is strictly above the base. -/ +theorem B_eta_y_pos : 0 < (B eta).2 := by + rw [B_eta_eq_path_phi] + have hcell : params.phi ∈ PartB.cellSet (1 : PartB.Cell) := + ⟨Stage2.node1_lt_phi.le, Stage2.phi_lt_node2.le⟩ + have hphys : params.phi ∈ PartB.physicalInterval := by + constructor + · exact phi_pos.le + · simpa [PartB.physicalInterval, T] using phi_lt_T.le + have hcontains := PartB.cellPath_contains hcell hphys + exact lt_of_lt_of_le (rat_pos_cast cell1_path_y_lo_pos) hcontains.2.1 + +/-- The reflected core contact has the same strictly positive height. -/ +theorem D_theta_y_pos : 0 < (D params.theta).2 := by + rw [D_theta_eq_path_tau, path_at_tau] + have h24 := Romik.phase24_vertical_reflection_of_equations params_equations params.phi + have h24' : + (Romik.path4 params tau).2 - params.k42 = + (Romik.path2 params params.phi).2 - params.k22 := by + simpa [tau, T] using h24 + have hk := Romik.k42_eq_k22_of_equations params_equations + have hm12y := congrArg Prod.snd PartB.match12 + have h := B_eta_y_pos + rw [B_eta_eq_path_phi, path_at_phi] at h + nlinarith + +/-- Nonnegativity of the literal Gerver path on the core interval, transported +from the already proved Part B interval semantics. -/ +theorem path_core_y_nonneg {t : ℝ} (ht : t ∈ Icc params.phi tau) : + 0 ≤ (Romik.path params t).2 := by + have htPhys : t ∈ PartB.physicalInterval := by + constructor + · exact le_trans phi_pos.le ht.1 + · have htT : t ≤ T := le_trans ht.2 tau_lt_T.le + simpa [PartB.physicalInterval, T] using htT + rcases PartB.exists_cell_cover htPhys with ⟨i, hi⟩ + have hi1 : 1 ≤ i.1 := by + by_contra hnot + have hend : PartB.nodeTime (i.1 + 1) ≤ PartB.nodeTime 1 := + PartB.nodeTime_mono (by omega) + linarith [Stage2.node1_lt_phi, hi.2, ht.1] + have hi62 : i.1 ≤ 62 := by + by_contra hnot + have h63 : 63 ≤ i.1 := by omega + have hstart : PartB.nodeTime 63 ≤ PartB.nodeTime i.1 := + PartB.nodeTime_mono h63 + linarith [Stage2.tau_lt_node63, hstart, hi.1, ht.2] + have hcontains := PartB.cellPath_contains hi htPhys + exact le_trans (rat_nonneg_cast (core_path_cell_lo_nonneg i hi1 hi62)) hcontains.2.1 + +/-- Strict positivity of the literal Gerver path height on the complete core +interval `[phi,tau]`. C30 transports the exact strict lower hull proved above +through the existing Part B interval-containment theorem. -/ +theorem path_core_y_pos {t : ℝ} (ht : t ∈ Icc params.phi tau) : + 0 < (Romik.path params t).2 := by + have htPhys : t ∈ PartB.physicalInterval := by + constructor + · exact le_trans phi_pos.le ht.1 + · have htT : t ≤ T := le_trans ht.2 tau_lt_T.le + simpa [PartB.physicalInterval, T] using htT + rcases PartB.exists_cell_cover htPhys with ⟨i, hi⟩ + have hi1 : 1 ≤ i.1 := by + by_contra hnot + have hend : PartB.nodeTime (i.1 + 1) ≤ PartB.nodeTime 1 := + PartB.nodeTime_mono (by omega) + linarith [Stage2.node1_lt_phi, hi.2, ht.1] + have hi62 : i.1 ≤ 62 := by + by_contra hnot + have h63 : 63 ≤ i.1 := by omega + have hstart : PartB.nodeTime 63 ≤ PartB.nodeTime i.1 := + PartB.nodeTime_mono h63 + linarith [Stage2.tau_lt_node63, hstart, hi.1, ht.2] + have hcontains := PartB.cellPath_contains hi htPhys + exact lt_of_lt_of_le (rat_pos_cast (core_path_cell_lo_pos i hi1 hi62)) hcontains.2.1 + +/-! A compact phase-2 lower bound for the reflected contact `D`. It is also +used, by the exact phase-2/phase-4 reflection, to control the late `B` arc. -/ +private theorem b1_lower_crude : (-53 / 100 : ℝ) ≤ params.b1 := by + have hb := PartB.b1_contains.1 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at hb ⊢ + linarith + +private theorem theta_upper_crude : params.theta ≤ (7 / 10 : ℝ) := by + have h := theta_bounds.2 + norm_num at h ⊢ + linarith + +private theorem k22_sub_b1_sub_one_nonneg : + 0 ≤ params.k22 - params.b1 - 1 := by + have hk := PartB.k22_contains.1 + have hb := PartB.b1_contains.2 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at hk hb ⊢ + linarith + +private theorem phase2_D_y_nonneg {t : ℝ} + (ht0 : 0 ≤ t) (htθ : t ≤ params.theta) : + 0 ≤ (Romik.path2 params t).2 - + (Romik.alphaBeta2 params t).2 * Real.sin t := by + have hz : t / 2 - params.b1 - 1 ≤ 0 := by + nlinarith [b1_lower_crude, theta_upper_crude] + have hzc : t / 2 - params.b1 - 1 ≤ + (t / 2 - params.b1 - 1) * Real.cos t := by + have hprod : 0 ≤ + (t / 2 - params.b1 - 1) * (Real.cos t - 1) := + mul_nonneg_of_nonpos_of_nonpos hz (sub_nonpos.mpr (Real.cos_le_one t)) + nlinarith + have hs : Real.sin t ≤ t := Real.sin_le ht0 + simp [Romik.path2, Romik.rot, Romik.addK, Romik.alphaBeta2] + nlinarith [hzc, hs, k22_sub_b1_sub_one_nonneg] + +/-- Nonnegative height of the reflected early contact arc. -/ +theorem D_y_nonneg {t : ℝ} (ht : t ∈ Icc (0 : ℝ) params.theta) : 0 ≤ (D t).2 := by + by_cases hphi : t ≤ params.phi + · have hpath : Romik.path params t = Romik.path1 params t := by + simp only [Romik.path, ite_eq_left hphi] + have hb : beta t = (Romik.alphaBeta1 params t).2 := by + simp only [beta, alphaBetaAt, ite_eq_left hphi] + change 0 ≤ (Romik.path params t).2 - beta t * Real.sin t + rw [hpath, hb] + have ha2 := Romik.a2_eq_neg_quarter_of_equations params_equations + have hk12 := Romik.k12_eq_quarter_of_equations params_equations + simp [Romik.path1, Romik.rot, Romik.addK, Romik.alphaBeta1, ha2, hk12] + nlinarith [Real.sin_sq_add_cos_sq t, Real.cos_le_one t] + · have hphi' : params.phi < t := lt_of_not_ge hphi + have hpath : Romik.path params t = Romik.path2 params t := by + simp only [Romik.path, ite_eq_right hphi, ite_eq_left ht.2] + have hb : beta t = (Romik.alphaBeta2 params t).2 := by + simp only [beta, alphaBetaAt, ite_eq_right hphi, ite_eq_left ht.2] + change 0 ≤ (Romik.path params t).2 - beta t * Real.sin t + rw [hpath, hb] + exact phase2_D_y_nonneg ht.1 ht.2 + +/-- Nonnegative height of the reflected late contact arc. -/ +theorem B_y_nonneg {t : ℝ} (ht : t ∈ Icc eta T) : 0 ≤ (B t).2 := by + by_cases hetaEq : t = eta + · subst t + exact B_eta_y_pos.le + have hetaT : eta < t := lt_of_le_of_ne ht.1 (Ne.symm hetaEq) + by_cases htau : t ≤ tau + · have hphiT : params.phi < t := lt_trans phi_lt_eta hetaT + have hthetaT : params.theta < t := lt_trans theta_lt_eta hetaT + have hpath : Romik.path params t = Romik.path4 params t := by + have hetaRaw : ¬ t ≤ Real.pi / 2 - params.theta := by + simpa [eta, T] using (not_le.mpr hetaT) + have htauRaw : t ≤ Real.pi / 2 - params.phi := by + simpa [tau, T] using htau + simp only [Romik.path, ite_eq_right (not_le.mpr hphiT), + ite_eq_right (not_le.mpr hthetaT), ite_eq_right hetaRaw, ite_eq_left htauRaw] + have ha : alpha t = (Romik.alphaBeta4 params t).1 := by + simp only [alpha, alphaBetaAt, ite_eq_right (not_le.mpr hphiT), + ite_eq_right (not_le.mpr hthetaT), ite_eq_right (not_le.mpr hetaT), ite_eq_left htau] + change 0 ≤ (Romik.path params t).2 + alpha t * Real.cos t + rw [hpath, ha] + let s : ℝ := T - t + have hs0 : 0 ≤ s := by dsimp [s]; linarith [ht.2] + have hsθ : s ≤ params.theta := by + dsimp [s, eta] at * + linarith + have hD2 := phase2_D_y_nonneg hs0 hsθ + have hd1 := Romik.d1_eq_quarterPi_sub_b1_of_equations params_equations + have hk42 := Romik.k42_eq_k22_of_equations params_equations + have hreflect : + (Romik.path4 params t).2 + + (Romik.alphaBeta4 params t).1 * Real.cos t = + (Romik.path2 params s).2 - + (Romik.alphaBeta2 params s).2 * Real.sin s := by + dsimp [s, T] + simp [Romik.path4, Romik.path2, Romik.rot, Romik.addK, + Romik.alphaBeta4, Romik.alphaBeta2, hd1, hk42, + Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + ring + rw [hreflect] + exact hD2 + · have htauT : tau < t := lt_of_not_ge htau + have hphiT : params.phi < t := lt_trans (lt_trans phi_lt_theta theta_lt_tau) htauT + have hthetaT : params.theta < t := lt_trans theta_lt_tau htauT + have hetaT' : eta < t := lt_trans eta_lt_tau htauT + have hpath : Romik.path params t = Romik.path5 params t := by + have hetaRaw : ¬ t ≤ Real.pi / 2 - params.theta := by + simpa [eta, T] using (not_le.mpr hetaT') + have htauRaw : ¬ t ≤ Real.pi / 2 - params.phi := by + simpa [tau, T] using (not_le.mpr htauT) + simp only [Romik.path, ite_eq_right (not_le.mpr hphiT), + ite_eq_right (not_le.mpr hthetaT), ite_eq_right hetaRaw, ite_eq_right htauRaw] + have ha : alpha t = (Romik.alphaBeta5 params t).1 := by + simp only [alpha, alphaBetaAt, ite_eq_right (not_le.mpr hphiT), + ite_eq_right (not_le.mpr hthetaT), ite_eq_right (not_le.mpr hetaT'), ite_eq_right htau] + change 0 ≤ (Romik.path params t).2 + alpha t * Real.cos t + rw [hpath, ha] + have he2 := Romik.e2_eq_quarter_of_equations params_equations + have hk52 := Romik.k52_eq_quarter_of_equations params_equations + simp [Romik.path5, Romik.rot, Romik.addK, Romik.alphaBeta5, he2, hk52] + nlinarith [Real.sin_sq_add_cos_sq t, Real.sin_le_one t] + +/-! C31: strict positivity on the two open contact tails. The base endpoints +`D 0` and `B T` have height exactly zero, so the natural domains are `Ioc` +and `Ico`. These statements are used only for topology of the strict vertical +fills; the existing closed-interval nonnegativity theorems remain unchanged. -/ +private theorem k22_sub_b1_sub_one_pos : + 0 < params.k22 - params.b1 - 1 := by + have hk := PartB.k22_contains.1 + have hb := PartB.b1_contains.2 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at hk hb ⊢ + linarith + +private theorem phase2_D_y_pos {t : ℝ} + (ht0 : 0 ≤ t) (htθ : t ≤ params.theta) : + 0 < (Romik.path2 params t).2 - + (Romik.alphaBeta2 params t).2 * Real.sin t := by + have hz : t / 2 - params.b1 - 1 ≤ 0 := by + nlinarith [b1_lower_crude, theta_upper_crude] + have hzc : t / 2 - params.b1 - 1 ≤ + (t / 2 - params.b1 - 1) * Real.cos t := by + have hprod : 0 ≤ + (t / 2 - params.b1 - 1) * (Real.cos t - 1) := + mul_nonneg_of_nonpos_of_nonpos hz (sub_nonpos.mpr (Real.cos_le_one t)) + nlinarith + have hs : Real.sin t ≤ t := Real.sin_le ht0 + simp [Romik.path2, Romik.rot, Romik.addK, Romik.alphaBeta2] + nlinarith [hzc, hs, k22_sub_b1_sub_one_pos] + +/-- Strict height of the early reflected contact arc away from its base endpoint. -/ +theorem D_y_pos {t : ℝ} (ht : t ∈ Ioc (0 : ℝ) params.theta) : + 0 < (D t).2 := by + by_cases hphi : t ≤ params.phi + · have hpath : Romik.path params t = Romik.path1 params t := by + simp only [Romik.path, ite_eq_left hphi] + have hb : beta t = (Romik.alphaBeta1 params t).2 := by + simp only [beta, alphaBetaAt, ite_eq_left hphi] + change 0 < (Romik.path params t).2 - beta t * Real.sin t + rw [hpath, hb] + have ha2 := Romik.a2_eq_neg_quarter_of_equations params_equations + have hk12 := Romik.k12_eq_quarter_of_equations params_equations + have hcos : Real.cos t < 1 := by + have hc := Real.cos_lt_cos_of_nonneg_of_le_pi + (x := (0 : ℝ)) (y := t) (by norm_num) + (le_trans ht.2 (le_trans theta_lt_T.le (by + dsimp [T] + linarith [Real.pi_pos]))) ht.1 + simpa using hc + simp [Romik.path1, Romik.rot, Romik.addK, Romik.alphaBeta1, ha2, hk12] + nlinarith [Real.sin_sq_add_cos_sq t, hcos] + · have hpath : Romik.path params t = Romik.path2 params t := by + simp only [Romik.path, ite_eq_right hphi, ite_eq_left ht.2] + have hb : beta t = (Romik.alphaBeta2 params t).2 := by + simp only [beta, alphaBetaAt, ite_eq_right hphi, ite_eq_left ht.2] + change 0 < (Romik.path params t).2 - beta t * Real.sin t + rw [hpath, hb] + exact phase2_D_y_pos ht.1.le ht.2 + +/-- Strict height of the late contact arc away from its base endpoint. -/ +theorem B_y_pos {t : ℝ} (ht : t ∈ Ico eta T) : + 0 < (B t).2 := by + by_cases hetaEq : t = eta + · subst t + exact B_eta_y_pos + have hetaT : eta < t := lt_of_le_of_ne ht.1 (Ne.symm hetaEq) + by_cases htau : t ≤ tau + · have hphiT : params.phi < t := lt_trans phi_lt_eta hetaT + have hthetaT : params.theta < t := lt_trans theta_lt_eta hetaT + have hpath : Romik.path params t = Romik.path4 params t := by + have hetaRaw : ¬ t ≤ Real.pi / 2 - params.theta := by + simpa [eta, T] using (not_le.mpr hetaT) + have htauRaw : t ≤ Real.pi / 2 - params.phi := by + simpa [tau, T] using htau + simp only [Romik.path, ite_eq_right (not_le.mpr hphiT), + ite_eq_right (not_le.mpr hthetaT), ite_eq_right hetaRaw, ite_eq_left htauRaw] + have ha : alpha t = (Romik.alphaBeta4 params t).1 := by + simp only [alpha, alphaBetaAt, ite_eq_right (not_le.mpr hphiT), + ite_eq_right (not_le.mpr hthetaT), ite_eq_right (not_le.mpr hetaT), ite_eq_left htau] + change 0 < (Romik.path params t).2 + alpha t * Real.cos t + rw [hpath, ha] + let s : ℝ := T - t + have hs0 : 0 ≤ s := by + dsimp [s] + exact sub_nonneg.mpr ht.2.le + have hsθ : s ≤ params.theta := by + dsimp [s, eta] at * + linarith + have hD2 := phase2_D_y_pos hs0 hsθ + have hd1 := Romik.d1_eq_quarterPi_sub_b1_of_equations params_equations + have hk42 := Romik.k42_eq_k22_of_equations params_equations + have hreflect : + (Romik.path4 params t).2 + + (Romik.alphaBeta4 params t).1 * Real.cos t = + (Romik.path2 params s).2 - + (Romik.alphaBeta2 params s).2 * Real.sin s := by + dsimp [s, T] + simp [Romik.path4, Romik.path2, Romik.rot, Romik.addK, + Romik.alphaBeta4, Romik.alphaBeta2, hd1, hk42, + Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + ring + rw [hreflect] + exact hD2 + · have htauT : tau < t := lt_of_not_ge htau + have hphiT : params.phi < t := lt_trans (lt_trans phi_lt_theta theta_lt_tau) htauT + have hthetaT : params.theta < t := lt_trans theta_lt_tau htauT + have hetaT' : eta < t := lt_trans eta_lt_tau htauT + have hpath : Romik.path params t = Romik.path5 params t := by + have hetaRaw : ¬ t ≤ Real.pi / 2 - params.theta := by + simpa [eta, T] using (not_le.mpr hetaT') + have htauRaw : ¬ t ≤ Real.pi / 2 - params.phi := by + simpa [tau, T] using (not_le.mpr htauT) + simp only [Romik.path, ite_eq_right (not_le.mpr hphiT), + ite_eq_right (not_le.mpr hthetaT), ite_eq_right hetaRaw, ite_eq_right htauRaw] + have ha : alpha t = (Romik.alphaBeta5 params t).1 := by + simp only [alpha, alphaBetaAt, ite_eq_right (not_le.mpr hphiT), + ite_eq_right (not_le.mpr hthetaT), ite_eq_right (not_le.mpr hetaT'), ite_eq_right htau] + change 0 < (Romik.path params t).2 + alpha t * Real.cos t + rw [hpath, ha] + have he2 := Romik.e2_eq_quarter_of_equations params_equations + have hk52 := Romik.k52_eq_quarter_of_equations params_equations + have hsin : Real.sin t < 1 := by + have hs := Real.sin_lt_sin_of_lt_of_le_pi_div_two + (x := t) (y := T) + (by + have ht0 : 0 ≤ t := + le_trans theta_pos.le (le_trans theta_lt_eta.le ht.1) + nlinarith [Real.pi_pos]) + (by simp [T]) ht.2 + simpa [T] using hs + simp [Romik.path5, Romik.rot, Romik.addK, Romik.alphaBeta5, he2, hk52] + nlinarith [Real.sin_sq_add_cos_sq t, hsin] + +/-! ## C24: fixed-endpoint separation by a phase-2 Taylor bound and contact monotonicity + +C23 reduced the root gate to four scalar `U(phi,t)` residuals. This replacement +removes the large raw `nlinarith` calls. Phase 2 is reduced to one variable +`d=t-phi` and certified by low-order alternating Taylor bounds. Phases 3--5 +use the exact contact identity `B(eta)=path(phi)` and the sign of the derivative +of the phase-local `B` contact projected on the fixed normal `u(t)`. +-/ + +private theorem phi_lower_crude : (39 / 1000 : ℝ) ≤ params.phi := by + have h := phi_bounds.1 + norm_num at h ⊢ + linarith + +private theorem phi_upper_crude : params.phi ≤ (1 / 20 : ℝ) := by + have h := phi_bounds.2 + norm_num at h ⊢ + linarith + +private theorem theta_upper_689 : params.theta ≤ (689 / 1000 : ℝ) := by + have h := theta_bounds.2 + norm_num at h ⊢ + linarith + +private theorem b1_upper_crude : params.b1 ≤ (-527 / 1000 : ℝ) := by + have h := PartB.b1_contains.2 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at h ⊢ + linarith + +private theorem b2_lower_crude : (9 / 10 : ℝ) ≤ params.b2 := by + have h := PartB.b2_contains.1 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at h ⊢ + linarith + +private theorem b2_upper_921 : params.b2 ≤ (921 / 1000 : ℝ) := by + have h := PartB.b2_contains.2 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at h ⊢ + linarith + +open scoped BigOperators +open Filter Finset + +private theorem sin_taylor5_upper {x : ℝ} (hx0 : 0 ≤ x) (hx1 : x ≤ 1) : + Real.sin x ≤ x - x ^ 3 / 6 + x ^ 5 / 120 := by + have hanti : Antitone (ExactReplay.sinMagnitude x) := + ExactReplay.antitone_sinMagnitude hx0 hx1 + have htendRaw := (Real.hasSum_sin x).tendsto_sum_nat + have htendMag : + Filter.Tendsto + (fun n : ℕ => ∑ i ∈ Finset.range n, + (-1 : ℝ) ^ i * ExactReplay.sinMagnitude x i) + Filter.atTop (nhds (Real.sin x)) := by + simpa only [ExactReplay.sinMagnitude, mul_div_assoc] using htendRaw + have hupper := Antitone.tendsto_le_alternating_series htendMag hanti 1 + have h3 : (2 * 1 + 1 : ℕ) = 3 := by norm_num + rw [h3] at hupper + have hsum : + (∑ i ∈ Finset.range 3, + (-1 : ℝ) ^ i * ExactReplay.sinMagnitude x i) = + x - x ^ 3 / 6 + x ^ 5 / 120 := by + norm_num [ExactReplay.sinMagnitude, Finset.sum_range_succ]; ring + rw [hsum] at hupper + exact hupper + +private theorem cos_taylor6_lower {x : ℝ} (hx0 : 0 ≤ x) (hx1 : x ≤ 1) : + 1 - x ^ 2 / 2 + x ^ 4 / 24 - x ^ 6 / 720 ≤ Real.cos x := by + have hanti : Antitone (ExactReplay.cosMagnitude x) := + ExactReplay.antitone_cosMagnitude hx0 hx1 + have htendRaw := (Real.hasSum_cos x).tendsto_sum_nat + have htendMag : + Filter.Tendsto + (fun n : ℕ => ∑ i ∈ Finset.range n, + (-1 : ℝ) ^ i * ExactReplay.cosMagnitude x i) + Filter.atTop (nhds (Real.cos x)) := by + simpa only [ExactReplay.cosMagnitude, mul_div_assoc] using htendRaw + have hlower := Antitone.alternating_series_le_tendsto htendMag hanti 2 + have h4 : (2 * 2 : ℕ) = 4 := by norm_num + rw [h4] at hlower + have hsum : + (∑ i ∈ Finset.range 4, + (-1 : ℝ) ^ i * ExactReplay.cosMagnitude x i) = + 1 - x ^ 2 / 2 + x ^ 4 / 24 - x ^ 6 / 720 := by + norm_num [ExactReplay.cosMagnitude, Finset.sum_range_succ]; ring + rw [hsum] at hlower + exact hlower + +private theorem phase2_U_phi_formula {t : ℝ} + (hphiT : params.phi < t) (htheta : t ≤ params.theta) : + Stage2.UValue params.phi t = + (-(1 / 4 : ℝ) * params.phi * params.phi + + params.b1 * params.phi + params.b2) * + (Real.cos (t - params.phi) - 1) + + (params.phi / 2 - params.b1 - 1) * Real.sin (t - params.phi) + + (params.phi / 2 - params.b1) * (t - params.phi) + + (t - params.phi) * (t - params.phi) / 4 := by + have hPhi2 : Romik.path params params.phi = + Romik.path2 params params.phi := path_at_phi.trans PartB.match12 + have hPathT : Romik.path params t = Romik.path2 params t := by + simp only [Romik.path, ite_eq_right (not_le.mpr hphiT), ite_eq_left htheta] + unfold Stage2.UValue + rw [hPhi2, hPathT] + simp [dot, u, Romik.path2, Romik.rot, Romik.addK, + Real.cos_sub, Real.sin_sub] + ring_nf + have hunit : Real.cos t ^ 2 + Real.sin t ^ 2 = 1 := by + nlinarith [Real.sin_sq_add_cos_sq t] + have hb1collapse : + params.b1 * Real.cos t ^ 2 * t + params.b1 * t * Real.sin t ^ 2 = + params.b1 * t := by + calc + params.b1 * Real.cos t ^ 2 * t + params.b1 * t * Real.sin t ^ 2 = + params.b1 * t * (Real.cos t ^ 2 + Real.sin t ^ 2) := by ring + _ = params.b1 * t := by rw [hunit]; ring + have hb2collapse : + params.b2 * Real.cos t ^ 2 + params.b2 * Real.sin t ^ 2 = + params.b2 := by + calc + params.b2 * Real.cos t ^ 2 + params.b2 * Real.sin t ^ 2 = + params.b2 * (Real.cos t ^ 2 + Real.sin t ^ 2) := by ring + _ = params.b2 := by rw [hunit]; ring + have ht2collapse : + Real.cos t ^ 2 * t ^ 2 * (1 / 4 : ℝ) + + t ^ 2 * Real.sin t ^ 2 * (1 / 4 : ℝ) = + t ^ 2 * (1 / 4 : ℝ) := by + calc + Real.cos t ^ 2 * t ^ 2 * (1 / 4 : ℝ) + + t ^ 2 * Real.sin t ^ 2 * (1 / 4 : ℝ) = + t ^ 2 * (1 / 4 : ℝ) * (Real.cos t ^ 2 + Real.sin t ^ 2) := by ring + _ = t ^ 2 * (1 / 4 : ℝ) := by rw [hunit]; ring + linarith [hb1collapse, hb2collapse, ht2collapse] +private theorem phase2_U_phi_nonneg {t : ℝ} + (ht : t ∈ Icc params.phi params.theta) : + 0 ≤ Stage2.UValue params.phi t := by + by_cases heq : t = params.phi + · subst t + simp [Stage2.UValue, dot] + have hphiT : params.phi < t := lt_of_le_of_ne ht.1 (Ne.symm heq) + let d : ℝ := t - params.phi + let z1 : ℝ := + -(1 / 4 : ℝ) * params.phi * params.phi + + params.b1 * params.phi + params.b2 + let z2 : ℝ := params.phi / 2 - params.b1 - 1 + let c : ℝ := params.phi / 2 - params.b1 + have hd0 : 0 ≤ d := by dsimp [d]; linarith + have hdA : d ≤ (13 / 20 : ℝ) := by + dsimp [d] + linarith [theta_upper_689, phi_lower_crude, ht.2] + have hd1 : d ≤ 1 := by linarith + have hp0 : 0 ≤ params.phi := phi_pos.le + have hb1lo := b1_lower_crude + have hb1hi := b1_upper_crude + have hz1nonneg : 0 ≤ z1 := by + have hbp : 0 ≤ (params.b1 + 53 / 100) * params.phi := + mul_nonneg (by linarith) hp0 + have hpp : 0 ≤ params.phi * (1 / 20 - params.phi) := + mul_nonneg hp0 (by linarith [phi_upper_crude]) + dsimp [z1] + nlinarith [b2_lower_crude, hbp, hpp] + have hz1le : z1 ≤ (91 / 100 : ℝ) := by + have hbp : params.b1 * params.phi ≤ (-527 / 1000 : ℝ) * (39 / 1000 : ℝ) := by + have h1 := mul_le_mul_of_nonneg_right b1_upper_crude hp0 + have h2 := mul_le_mul_of_nonpos_left phi_lower_crude (by norm_num : (-527 / 1000 : ℝ) ≤ 0) + exact le_trans h1 h2 + have hsquare : 0 ≤ params.phi * params.phi := mul_self_nonneg _ + dsimp [z1] + nlinarith only [b2_upper_921, hbp, hsquare] + have hz2lo : (-227 / 500 : ℝ) ≤ z2 := by + dsimp [z2] + linarith [phi_lower_crude, b1_upper_crude] + have hz2hi : z2 ≤ 0 := by + dsimp [z2] + linarith [phi_upper_crude, hb1lo] + have hclo : (273 / 500 : ℝ) ≤ c := by + dsimp [c] + linarith [phi_lower_crude, b1_upper_crude] + have hsinU := sin_taylor5_upper hd0 hd1 + have hcosL := cos_taylor6_lower hd0 hd1 + let SU : ℝ := d - d ^ 3 / 6 + d ^ 5 / 120 + let CL : ℝ := -(d ^ 2) / 2 + d ^ 4 / 24 - d ^ 6 / 720 + have hd2le1 : d ^ 2 ≤ 1 := by + have hprod : 0 ≤ d * (1 - d) := mul_nonneg hd0 (sub_nonneg.mpr hd1) + nlinarith only [hprod, hd1] + have hSU0 : 0 ≤ SU := by + have hcube : d ^ 3 ≤ d := by + have hprod : 0 ≤ d * (1 - d ^ 2) := + mul_nonneg hd0 (sub_nonneg.mpr hd2le1) + nlinarith only [hprod] + have hd5 : 0 ≤ d ^ 5 := by positivity + dsimp [SU] + nlinarith only [hcube, hd5, hd0] + have hCL0 : CL ≤ 0 := by + have hd2 : 0 ≤ d ^ 2 := sq_nonneg d + have hd4le : d ^ 4 ≤ d ^ 2 := by + have h := mul_nonneg hd2 (sub_nonneg.mpr hd2le1) + nlinarith + dsimp [CL] + nlinarith only [sq_nonneg (d ^ 3), hd4le, hd2] + have hcosm1 : CL ≤ Real.cos d - 1 := by + dsimp [CL] + linarith only [hcosL] + have hsinSU : Real.sin d ≤ SU := by + dsimp [SU] + exact hsinU + have hz1CL : (91 / 100 : ℝ) * CL ≤ z1 * CL := by + exact mul_le_mul_of_nonpos_right hz1le hCL0 + have hz1cos : z1 * CL ≤ z1 * (Real.cos d - 1) := by + exact mul_le_mul_of_nonneg_left hcosm1 hz1nonneg + have hz2sin : z2 * SU ≤ z2 * Real.sin d := by + exact mul_le_mul_of_nonpos_left hsinSU hz2hi + have hz2SU : (-227 / 500 : ℝ) * SU ≤ z2 * SU := by + exact mul_le_mul_of_nonneg_right hz2lo hSU0 + have hcD : (273 / 500 : ℝ) * d ≤ c * d := by + exact mul_le_mul_of_nonneg_right hclo hd0 + let Q : ℝ := + (23 / 250 : ℝ) - (41 / 200) * d + (227 / 3000) * d ^ 2 + + (91 / 2400) * d ^ 3 - (227 / 60000) * d ^ 4 - + (91 / 72000) * d ^ 5 + let R : ℝ := + (14560000 * d ^ 4 + 53048000 * d ^ 3 - 402318800 * d ^ 2 - + 1133187220 * d + 1625028307 : ℝ) / 11520000000 + have hd2A : d ^ 2 ≤ (13 / 20 : ℝ) ^ 2 := by nlinarith + have hR : 0 ≤ R := by + dsimp [R] + have h3 : 0 ≤ d ^ 3 := by positivity + have h4 : 0 ≤ d ^ 4 := by positivity + nlinarith only [hdA, hd2A, h3, h4] + have hQend : 0 < (71432009 / 230400000000 : ℝ) := by norm_num + have hQfactor : + Q - (71432009 / 230400000000 : ℝ) = ((13 / 20 : ℝ) - d) * R := by + dsimp [Q, R] + ring + have hQ : 0 ≤ Q := by + have hprod : 0 ≤ ((13 / 20 : ℝ) - d) * R := + mul_nonneg (sub_nonneg.mpr hdA) hR + linarith only [hprod, hQfactor, hQend] + have hL : + 0 ≤ (91 / 100 : ℝ) * CL + (-227 / 500 : ℝ) * SU + + (273 / 500 : ℝ) * d + d * d / 4 := by + have hid : + (91 / 100 : ℝ) * CL + (-227 / 500 : ℝ) * SU + + (273 / 500 : ℝ) * d + d * d / 4 = d * Q := by + dsimp [CL, SU, Q] + ring + rw [hid] + exact mul_nonneg hd0 hQ + have hformula' : + Stage2.UValue params.phi t = + z1 * (Real.cos d - 1) + z2 * Real.sin d + c * d + d * d / 4 := by + simpa [d, z1, z2, c] using phase2_U_phi_formula hphiT ht.2 + rw [hformula'] + linarith only [hL, hz1CL, hz1cos, hz2sin, hz2SU, hcD] + +private theorem pathPrime1_eq_rot (p : Romik.Params) (t : ℝ) : + Romik.pathPrime1 p t = Romik.rot t (Romik.alphaBeta1 p t) := rfl + +private theorem matchPrime12 : + Romik.pathPrime1 params params.phi = Romik.pathPrime2 params params.phi := by + have h10 := congrFun params_equations (10 : Fin 22) + have h11 := congrFun params_equations (11 : Fin 22) + simp [Romik.system] at h10 h11 + apply Prod.ext <;> linarith + +private theorem matchAB12 : + Romik.alphaBeta1 params params.phi = Romik.alphaBeta2 params params.phi := by + apply rot_injective params.phi + simpa [pathPrime1_eq_rot, pathPrime2_eq_rot] using matchPrime12 + +private theorem ab4_reflect_ab2 (t : ℝ) : + Romik.alphaBeta4 params (T - t) = reflAB (Romik.alphaBeta2 params t) := by + dsimp [T, reflAB, Romik.alphaBeta4, Romik.alphaBeta2] + rw [Romik.d1_eq_quarterPi_sub_b1_of_equations params_equations, + Romik.d2_eq_b2_add_quarterPi_correction_of_equations params_equations] + ring_nf + +private theorem ab5_reflect_ab1 (t : ℝ) : + Romik.alphaBeta5 params (T - t) = reflAB (Romik.alphaBeta1 params t) := by + dsimp [T, reflAB, Romik.alphaBeta5, Romik.alphaBeta1] + rw [Romik.e1_eq_a1_of_equations params_equations, + Romik.e2_eq_neg_a2_of_equations params_equations] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + ring_nf + +private theorem matchAB34 : + Romik.alphaBeta3 params eta = Romik.alphaBeta4 params eta := by + have h3 := ab3_reflect params.theta + have h4 := ab4_reflect_ab2 params.theta + have hm := congrArg reflAB matchAB23 + simpa [eta] using h3.trans (hm.symm.trans h4.symm) + +private theorem matchAB45 : + Romik.alphaBeta4 params tau = Romik.alphaBeta5 params tau := by + have h4 := ab4_reflect_ab2 params.phi + have h5 := ab5_reflect_ab1 params.phi + have hm := congrArg reflAB matchAB12 + simpa [tau] using h4.trans (hm.symm.trans h5.symm) + +private def phaseB3 (t : ℝ) : Point := + Romik.path3 params t + (Romik.alphaBeta3 params t).1 • v t +private def phaseB4_m71dda23 (t : ℝ) : Point := + Romik.path4 params t + (Romik.alphaBeta4 params t).1 • v t +private def phaseB5_m71dda23 (t : ℝ) : Point := + Romik.path5 params t + (Romik.alphaBeta5 params t).1 • v t + +private theorem u_hasDerivAt_local (t : ℝ) : HasDerivAt u (v t) t := + Stage2.u_hasDerivAt t + +private theorem phaseB3_eq_A3_sub_u (t : ℝ) : + phaseB3 t = Stage2.phaseA3 t - u t := by + apply Prod.ext <;> simp [phaseB3, Stage2.phaseA3] + +private theorem phaseB4_eq_A4_sub_u (t : ℝ) : + phaseB4_m71dda23 t = Stage2.phaseA4 t - u t := by + apply Prod.ext <;> simp [phaseB4_m71dda23, Stage2.phaseA4] + +private theorem phaseB5_eq_A5_sub_u (t : ℝ) : + phaseB5_m71dda23 t = Stage2.phaseA5 t - u t := by + apply Prod.ext <;> simp [phaseB5_m71dda23, Stage2.phaseA5] + +private theorem B_eq_phaseB3 {t : ℝ} (ht : t ∈ Icc params.theta eta) : + B t = phaseB3 t := by + by_cases h : t = params.theta + · subst t + rw [B, path_at_theta] + have ha : alpha params.theta = (Romik.alphaBeta2 params params.theta).1 := by + simp only [alpha, alphaBetaAt, ite_eq_right (not_le.mpr phi_lt_theta), + ite_eq_left (le_refl params.theta)] + rw [ha] + have hm := PartB.match23 + rw [hm, matchAB23] + apply Prod.ext <;> simp [phaseB3, v] + · have htheta : params.theta < t := lt_of_le_of_ne ht.1 (Ne.symm h) + have hphi : params.phi < t := lt_trans phi_lt_theta htheta + have hetaRaw : t ≤ Real.pi / 2 - params.theta := by + simpa [eta, T] using ht.2 + apply Prod.ext <;> simp [B, alpha, alphaBetaAt, Romik.path, phaseB3, + not_le.mpr hphi, not_le.mpr htheta, hetaRaw, eta, T] + +private theorem B_eq_phaseB4 {t : ℝ} (ht : t ∈ Icc eta tau) : + B t = phaseB4_m71dda23 t := by + by_cases h : t = eta + · subst t + have hB3 := B_eq_phaseB3 (t := eta) ⟨theta_lt_eta.le, le_rfl⟩ + have hm : Romik.path3 params eta = Romik.path4 params eta := by + simpa [eta, T] using PartB.match34 + calc + B eta = phaseB3 eta := hB3 + _ = phaseB4_m71dda23 eta := by + unfold phaseB3 phaseB4_m71dda23 + rw [hm, matchAB34] + · have hetaT : eta < t := lt_of_le_of_ne ht.1 (Ne.symm h) + have htheta : params.theta < t := lt_trans theta_lt_eta hetaT + have hphi : params.phi < t := lt_trans phi_lt_theta htheta + have hetaRaw : Real.pi / 2 - params.theta < t := by + simpa [eta, T] using hetaT + have htauRaw : t ≤ Real.pi / 2 - params.phi := by + simpa [tau, T] using ht.2 + apply Prod.ext <;> simp [B, alpha, alphaBetaAt, Romik.path, phaseB4_m71dda23, + not_le.mpr hphi, not_le.mpr htheta, not_le.mpr hetaRaw, htauRaw, + eta, tau, T] + +private theorem B_eq_phaseB5 {t : ℝ} (ht : t ∈ Icc tau T) : + B t = phaseB5_m71dda23 t := by + by_cases h : t = tau + · subst t + have hB4 := B_eq_phaseB4 (t := tau) ⟨eta_lt_tau.le, le_rfl⟩ + have hm : Romik.path4 params tau = Romik.path5 params tau := by + simpa [tau, T] using PartB.match45 + calc + B tau = phaseB4_m71dda23 tau := hB4 + _ = phaseB5_m71dda23 tau := by + unfold phaseB4_m71dda23 phaseB5_m71dda23 + rw [hm, matchAB45] + · have htauT : tau < t := lt_of_le_of_ne ht.1 (Ne.symm h) + have hetaT : eta < t := lt_trans eta_lt_tau htauT + have htheta : params.theta < t := lt_trans theta_lt_eta hetaT + have hphi : params.phi < t := lt_trans phi_lt_theta htheta + have hetaRaw : Real.pi / 2 - params.theta < t := by + simpa [eta, T] using hetaT + have htauRaw : Real.pi / 2 - params.phi < t := by + simpa [tau, T] using htauT + apply Prod.ext <;> simp [B, alpha, alphaBetaAt, Romik.path, phaseB5_m71dda23, + not_le.mpr hphi, not_le.mpr htheta, not_le.mpr hetaRaw, + not_le.mpr htauRaw, eta, tau, T] + +private theorem c1_le_theta : params.c1 ≤ params.theta := by + have hc := PartB.c1_contains.2 + have ht := theta_bounds.1 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at hc ht ⊢ + linarith + +private theorem eta_lower_four_fifths : (4 / 5 : ℝ) ≤ eta := by + dsimp [eta, T] + nlinarith [Real.pi_gt_three, theta_upper_crude] + +private theorem d1_upper_33_25 : params.d1 ≤ (33 / 25 : ℝ) := by + have hd := PartB.d1_contains.2 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at hd ⊢ + linarith + +private theorem phaseB3_coeff_nonpos {q : ℝ} (hq : params.theta ≤ q) : + params.c1 - q ≤ 0 := by linarith [c1_le_theta] + +private theorem phaseB4_coeff_nonpos {q : ℝ} (hq : eta ≤ q) : + params.d1 - q / 2 - 1 ≤ 0 := by + nlinarith [d1_upper_33_25, eta_lower_four_fifths] + +private theorem dot_hasDerivAt_fixed_local {f : ℝ → Point} {df : Point} {t : ℝ} + (h : HasDerivAt f df t) (w : Point) : + HasDerivAt (fun s => dot (f s) w) (dot df w) t := by + have h1 := HasDerivAt.const_mul w.1 h.fst + have h2 := HasDerivAt.const_mul w.2 h.snd + have hs := h1.fun_add h2 + simpa [dot, mul_comm] using hs + +private theorem phaseB3_dot_hasDerivAt (s t : ℝ) : + HasDerivAt (fun q => dot (phaseB3 q) (u s)) + (dot ((params.c1 - t) • v t) (u s)) t := by + have h := (Stage2.A3_hasDerivAt_public t).fun_sub (u_hasDerivAt_local t) + have hd : ((1 + params.c1 - t) • v t) - v t = + (params.c1 - t) • v t := by + apply Prod.ext <;> simp [v] <;> ring + rw [hd] at h + have hdot := dot_hasDerivAt_fixed_local h (u s) + simpa only [phaseB3_eq_A3_sub_u] using hdot + +private theorem phaseB4_dot_hasDerivAt (s t : ℝ) : + HasDerivAt (fun q => dot (phaseB4_m71dda23 q) (u s)) + (dot ((params.d1 - t / 2 - 1) • v t) (u s)) t := by + have h := (Stage2.A4_hasDerivAt_public t).fun_sub (u_hasDerivAt_local t) + have hd : ((params.d1 - t / 2) • v t) - v t = + (params.d1 - t / 2 - 1) • v t := by + apply Prod.ext <;> simp [v] <;> ring + rw [hd] at h + have hdot := dot_hasDerivAt_fixed_local h (u s) + simpa only [phaseB4_eq_A4_sub_u] using hdot + +private theorem phaseB5_dot_hasDerivAt (s t : ℝ) : + HasDerivAt (fun q => dot (phaseB5_m71dda23 q) (u s)) + (dot ((-(1 / 2 : ℝ)) • v t) (u s)) t := by + have h := (Stage2.A5_hasDerivAt_public t).fun_sub (u_hasDerivAt_local t) + have hd : ((1 / 2 : ℝ) • v t) - v t = (-(1 / 2 : ℝ)) • v t := by + apply Prod.ext <;> simp [v] <;> ring + rw [hd] at h + have hdot := dot_hasDerivAt_fixed_local h (u s) + simpa only [phaseB5_eq_A5_sub_u] using hdot + +private theorem phaseB_mono_left + {F : ℝ → Point} {r : ℝ → ℝ} {a b s : ℝ} + (hder : ∀ q, + HasDerivAt (fun x => dot (F x) (u s)) + (dot ((r q) • v q) (u s)) q) + (hr : ∀ q ∈ Ioo a b, r q ≤ 0) + (hs0 : 0 ≤ s) (hsa : s ≤ a) (hbT : b ≤ T) : + MonotoneOn (fun q => dot (F q) (u s)) (Icc a b) := by + refine monotoneOn_of_hasDerivWithinAt_nonneg + (f' := fun q => dot ((r q) • v q) (u s)) (convex_Icc a b) ?_ ?_ ?_ + · intro q hq + exact (hder q).continuousAt.continuousWithinAt + · intro q hq + exact (hder q).hasDerivWithinAt + · intro q hq + have hi : q ∈ Ioo a b := by simpa only [interior_Icc] using hq + have hsin : Real.sin (s - q) ≤ 0 := by + have hnon : s - q ≤ 0 := by linarith [hsa, hi.1] + have hnegpi : -Real.pi ≤ s - q := by + have hqT : q ≤ T := le_trans (le_of_lt hi.2) hbT + have hqs : q - s ≤ T := by linarith + nlinarith [T_le_pi] + exact Real.sin_nonpos_of_nonpos_of_neg_pi_le hnon hnegpi + have heq : dot ((r q) • v q) (u s) = r q * Real.sin (s - q) := by + simp [dot, u, v, Real.sin_sub] + ring + rw [heq] + exact mul_nonneg_of_nonpos_of_nonpos (hr q hi) hsin + +private theorem phaseB_anti_right + {F : ℝ → Point} {r : ℝ → ℝ} {a b s : ℝ} + (hder : ∀ q, + HasDerivAt (fun x => dot (F x) (u s)) + (dot ((r q) • v q) (u s)) q) + (hr : ∀ q ∈ Ioo a b, r q ≤ 0) + (ha0 : 0 ≤ a) (hbs : b ≤ s) (hsT : s ≤ T) : + AntitoneOn (fun q => dot (F q) (u s)) (Icc a b) := by + refine antitoneOn_of_hasDerivWithinAt_nonpos + (f' := fun q => dot ((r q) • v q) (u s)) (convex_Icc a b) ?_ ?_ ?_ + · intro q hq + exact (hder q).continuousAt.continuousWithinAt + · intro q hq + exact (hder q).hasDerivWithinAt + · intro q hq + have hi : q ∈ Ioo a b := by simpa only [interior_Icc] using hq + have hq0 : 0 ≤ q := le_trans ha0 (le_of_lt hi.1) + have hdelta0 : 0 ≤ s - q := by linarith [hi.2, hbs] + have hdeltaPi : s - q ≤ Real.pi := by + have : s - q ≤ T := by linarith [hsT, hq0] + exact le_trans this T_le_pi + have hsin : 0 ≤ Real.sin (s - q) := + Real.sin_nonneg_of_nonneg_of_le_pi hdelta0 hdeltaPi + have heq : dot ((r q) • v q) (u s) = r q * Real.sin (s - q) := by + simp [dot, u, v, Real.sin_sub] + ring + rw [heq] + exact mul_nonpos_of_nonpos_of_nonneg (hr q hi) hsin + +private theorem criticalU_eq_Bdiff (t : ℝ) : + Stage2.UValue params.phi t = dot (B eta - B t) (u t) := by + unfold Stage2.UValue + rw [← B_eta_eq_path_phi] + have hinner := B_inner_u_identity t + unfold dot at hinner ⊢ + dsimp at hinner ⊢ + linarith + +private theorem phase3_U_phi_nonneg {t : ℝ} + (ht : t ∈ Icc params.theta eta) : + 0 ≤ Stage2.UValue params.phi t := by + have hm := phaseB_mono_left (F := phaseB3) + (r := fun q => params.c1 - q) (a := t) (b := eta) (s := t) + (phaseB3_dot_hasDerivAt t) + (by intro q hq; exact phaseB3_coeff_nonpos (le_trans ht.1 (le_of_lt hq.1))) + (le_trans theta_pos.le ht.1) (le_rfl) eta_lt_T.le + have hcomp := hm ⟨le_rfl, ht.2⟩ ⟨ht.2, le_rfl⟩ ht.2 + have hBt := B_eq_phaseB3 ht + have hBe := B_eq_phaseB3 (t := eta) ⟨theta_lt_eta.le, le_rfl⟩ + rw [criticalU_eq_Bdiff, hBt, hBe] + unfold dot at hcomp ⊢ + dsimp at hcomp ⊢ + linarith + +private theorem phase4_U_phi_nonneg {t : ℝ} + (ht : t ∈ Icc eta tau) : + 0 ≤ Stage2.UValue params.phi t := by + have hm := phaseB_anti_right (F := phaseB4_m71dda23) + (r := fun q => params.d1 - q / 2 - 1) (a := eta) (b := t) (s := t) + (phaseB4_dot_hasDerivAt t) + (by intro q hq; exact phaseB4_coeff_nonpos (le_of_lt hq.1)) + (le_trans theta_pos.le theta_lt_eta.le) (le_rfl) (le_trans ht.2 tau_lt_T.le) + have hcomp := hm ⟨le_rfl, ht.1⟩ ⟨ht.1, le_rfl⟩ ht.1 + have hBt := B_eq_phaseB4 ht + have hBe := B_eq_phaseB4 (t := eta) ⟨le_rfl, eta_lt_tau.le⟩ + rw [criticalU_eq_Bdiff, hBt, hBe] + unfold dot at hcomp ⊢ + dsimp at hcomp ⊢ + linarith + +private theorem phase5_U_phi_nonneg {t : ℝ} + (ht : t ∈ Icc tau T) : + 0 ≤ Stage2.UValue params.phi t := by + have hm4 := phaseB_anti_right (F := phaseB4_m71dda23) + (r := fun q => params.d1 - q / 2 - 1) (a := eta) (b := tau) (s := t) + (phaseB4_dot_hasDerivAt t) + (by intro q hq; exact phaseB4_coeff_nonpos (le_of_lt hq.1)) + (le_trans theta_pos.le theta_lt_eta.le) ht.1 ht.2 + have h4 := hm4 ⟨le_rfl, eta_lt_tau.le⟩ ⟨eta_lt_tau.le, le_rfl⟩ eta_lt_tau.le + have hm5 := phaseB_anti_right (F := phaseB5_m71dda23) + (r := fun _ => (-(1 / 2 : ℝ))) (a := tau) (b := t) (s := t) + (phaseB5_dot_hasDerivAt t) + (by intro q hq; norm_num) + (le_trans theta_pos.le (lt_trans theta_lt_eta eta_lt_tau).le) (le_rfl) ht.2 + have h5 := hm5 ⟨le_rfl, ht.1⟩ ⟨ht.1, le_rfl⟩ ht.1 + have hBetaEta := B_eq_phaseB4 (t := eta) ⟨le_rfl, eta_lt_tau.le⟩ + have hBetaTau4 := B_eq_phaseB4 (t := tau) ⟨eta_lt_tau.le, le_rfl⟩ + have hBetaTau5 := B_eq_phaseB5 (t := tau) ⟨le_rfl, tau_lt_T.le⟩ + have hBetaT := B_eq_phaseB5 ht + rw [criticalU_eq_Bdiff, hBetaEta, hBetaT] + have hmatch : phaseB4_m71dda23 tau = phaseB5_m71dda23 tau := by + rw [← hBetaTau4, ← hBetaTau5] + change dot (phaseB4_m71dda23 tau) (u t) ≤ dot (phaseB4_m71dda23 eta) (u t) at h4 + rw [hmatch] at h4 + unfold dot at h4 h5 ⊢ + dsimp at h4 h5 ⊢ + linarith + +/-- Fixed-endpoint separation required by the direct no-hidden-crossing proof. -/ +theorem U_phi_nonneg {t : ℝ} (ht : t ∈ Icc params.phi T) : + 0 ≤ Stage2.UValue params.phi t := by + by_cases h2 : t ≤ params.theta + · exact phase2_U_phi_nonneg ⟨ht.1, h2⟩ + have htheta : params.theta < t := lt_of_not_ge h2 + by_cases h3 : t ≤ eta + · exact phase3_U_phi_nonneg ⟨htheta.le, h3⟩ + have hetaT : eta < t := lt_of_not_ge h3 + by_cases h4 : t ≤ tau + · exact phase4_U_phi_nonneg ⟨hetaT.le, h4⟩ + · exact phase5_U_phi_nonneg ⟨(lt_of_not_ge h4).le, ht.2⟩ + +end Stage4 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part C / Stage4 / No Hidden Match Facts +-/ + +@[expose] public section + +namespace GerverSofa +namespace PartC +namespace Stage4 + +open Set +open Stage2 + +noncomputable section + +/-- Reflection on the `(alpha,beta)` coefficient plane induced by `t ↦ T-t`. -/ +def noHiddenReflAB (z : Point) : Point := (-z.2, -z.1) + +private theorem rot_dot_u_noHidden (t : ℝ) (z : Point) : + dot (Romik.rot t z) (u t) = z.1 := + Stage3.rot_dot_u t z + +private theorem rot_dot_v_noHidden (t : ℝ) (z : Point) : + dot (Romik.rot t z) (v t) = z.2 := + Stage3.rot_dot_v t z + +private theorem rot_injective_noHidden (t : ℝ) {z w : Point} + (h : Romik.rot t z = Romik.rot t w) : z = w := + Stage3.rot_injective t h + +private theorem matchPrime12_noHidden : + Romik.pathPrime1 params params.phi = Romik.pathPrime2 params params.phi := by + have h10 := congrFun params_equations (10 : Fin 22) + have h11 := congrFun params_equations (11 : Fin 22) + simp [Romik.system] at h10 h11 + exact Prod.ext (by linarith) (by linarith) + +private theorem matchPrime23_noHidden : + Romik.pathPrime2 params params.theta = Romik.pathPrime3 params params.theta := by + have h14 := congrFun params_equations (14 : Fin 22) + have h15 := congrFun params_equations (15 : Fin 22) + simp [Romik.system] at h14 h15 + exact Prod.ext (by linarith) (by linarith) + +private theorem pathPrime1_eq_rot_noHidden (p : Romik.Params) (t : ℝ) : + Romik.pathPrime1 p t = Romik.rot t (Romik.alphaBeta1 p t) := rfl + +private theorem pathPrime2_eq_rot_noHidden (p : Romik.Params) (t : ℝ) : + Romik.pathPrime2 p t = Romik.rot t (Romik.alphaBeta2 p t) := rfl + +private theorem pathPrime3_eq_rot_noHidden (p : Romik.Params) (t : ℝ) : + Romik.pathPrime3 p t = Romik.rot t (Romik.alphaBeta3 p t) := rfl + +/-- Exact matching of the coefficient pair at the first switch. -/ +theorem alphaBeta_match12_direct : + Romik.alphaBeta1 params params.phi = Romik.alphaBeta2 params params.phi := by + apply rot_injective_noHidden params.phi + simpa [pathPrime1_eq_rot_noHidden, pathPrime2_eq_rot_noHidden] using matchPrime12_noHidden + +/-- Exact matching of the coefficient pair at the second switch. -/ +theorem alphaBeta_match23_direct : + Romik.alphaBeta2 params params.theta = Romik.alphaBeta3 params params.theta := by + apply rot_injective_noHidden params.theta + simpa [pathPrime2_eq_rot_noHidden, pathPrime3_eq_rot_noHidden] using matchPrime23_noHidden + +/-- Phase four is the reflected phase two coefficient pair. -/ +theorem alphaBeta4_reflect2_direct (s : ℝ) : + Romik.alphaBeta4 params (T - s) = noHiddenReflAB (Romik.alphaBeta2 params s) := by + dsimp [T, noHiddenReflAB, Romik.alphaBeta4, Romik.alphaBeta2] + rw [Romik.d1_eq_quarterPi_sub_b1_of_equations params_equations, + Romik.d2_eq_b2_add_quarterPi_correction_of_equations params_equations] + ring_nf + +/-- Phase three has the same coefficient reflection symmetry. -/ +theorem alphaBeta3_reflect_direct (s : ℝ) : + Romik.alphaBeta3 params (T - s) = noHiddenReflAB (Romik.alphaBeta3 params s) := by + dsimp [T, noHiddenReflAB, Romik.alphaBeta3] + rw [Romik.c2_eq_c1_sub_halfPi_of_equations params_equations] + ring_nf + +/-- Phase five is the reflected phase one coefficient pair. -/ +theorem alphaBeta5_reflect1_direct (s : ℝ) : + Romik.alphaBeta5 params (T - s) = noHiddenReflAB (Romik.alphaBeta1 params s) := by + dsimp [T, noHiddenReflAB, Romik.alphaBeta5, Romik.alphaBeta1] + rw [Romik.e1_eq_a1_of_equations params_equations, + Romik.e2_eq_neg_a2_of_equations params_equations] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + ring_nf + +/-- Exact matching of the coefficient pair at the third switch. -/ +theorem alphaBeta_match34_direct : + Romik.alphaBeta3 params eta = Romik.alphaBeta4 params eta := by + have h3 := alphaBeta3_reflect_direct params.theta + have h4 := alphaBeta4_reflect2_direct params.theta + have hm := congrArg noHiddenReflAB alphaBeta_match23_direct + simpa [eta] using h3.trans (hm.symm.trans h4.symm) + +/-- Exact matching of the coefficient pair at the fourth switch. -/ +theorem alphaBeta_match45_direct : + Romik.alphaBeta4 params tau = Romik.alphaBeta5 params tau := by + have h4 := alphaBeta4_reflect2_direct params.phi + have h5 := alphaBeta5_reflect1_direct params.phi + have hm := congrArg noHiddenReflAB alphaBeta_match12_direct + simpa [tau] using h4.trans (hm.symm.trans h5.symm) + +end + +end Stage4 +end PartC +end GerverSofa + +end + +end + +section + +/-! +# Part C Stage 4: continuity of the matched velocity coefficients + +This file turns the five exact coefficient matching statements into a public +continuity interface for `alphaBetaAt`, `alpha`, `beta`, `B`, and `D`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage4 + +private theorem alphaBeta1_continuous : + Continuous (Romik.alphaBeta1 params) := by + unfold Romik.alphaBeta1 + fun_prop + +private theorem alphaBeta2_continuous : + Continuous (Romik.alphaBeta2 params) := by + unfold Romik.alphaBeta2 + fun_prop + +private theorem alphaBeta3_continuous : + Continuous (Romik.alphaBeta3 params) := by + unfold Romik.alphaBeta3 + fun_prop + +private theorem alphaBeta4_continuous : + Continuous (Romik.alphaBeta4 params) := by + unfold Romik.alphaBeta4 + fun_prop + +private theorem alphaBeta5_continuous : + Continuous (Romik.alphaBeta5 params) := by + unfold Romik.alphaBeta5 + fun_prop + +/-- The literal nested-if velocity coefficient is continuous across all four +switches. -/ +theorem alphaBetaAt_continuous : Continuous alphaBetaAt := by + have h45 : Continuous + (fun t : ℝ => + if t ≤ tau then Romik.alphaBeta4 params t + else Romik.alphaBeta5 params t) := by + exact alphaBeta4_continuous.if_le alphaBeta5_continuous + continuous_id continuous_const (by + intro t ht + subst t + exact alphaBeta_match45_direct) + have h345 : Continuous + (fun t : ℝ => + if t ≤ eta then Romik.alphaBeta3 params t + else if t ≤ tau then Romik.alphaBeta4 params t + else Romik.alphaBeta5 params t) := by + exact alphaBeta3_continuous.if_le h45 + continuous_id continuous_const (by + intro t ht + subst t + rw [ite_eq_left eta_lt_tau.le] + exact alphaBeta_match34_direct) + have h2345 : Continuous + (fun t : ℝ => + if t ≤ params.theta then Romik.alphaBeta2 params t + else if t ≤ eta then Romik.alphaBeta3 params t + else if t ≤ tau then Romik.alphaBeta4 params t + else Romik.alphaBeta5 params t) := by + exact alphaBeta2_continuous.if_le h345 + continuous_id continuous_const (by + intro t ht + subst t + rw [ite_eq_left theta_lt_eta.le] + exact alphaBeta_match23_direct) + have h12345 : Continuous + (fun t : ℝ => + if t ≤ params.phi then Romik.alphaBeta1 params t + else if t ≤ params.theta then Romik.alphaBeta2 params t + else if t ≤ eta then Romik.alphaBeta3 params t + else if t ≤ tau then Romik.alphaBeta4 params t + else Romik.alphaBeta5 params t) := by + exact alphaBeta1_continuous.if_le h2345 + continuous_id continuous_const (by + intro t ht + subst t + rw [ite_eq_left phi_lt_theta.le] + exact alphaBeta_match12_direct) + unfold alphaBetaAt + exact h12345 + +theorem alpha_continuous : Continuous alpha := by + unfold alpha + exact continuous_fst.comp alphaBetaAt_continuous + +theorem beta_continuous : Continuous beta := by + unfold beta + exact continuous_snd.comp alphaBetaAt_continuous + +private theorem u_continuous : Continuous u := by + unfold u + fun_prop + +private theorem v_continuous : Continuous v := by + unfold v + fun_prop + +/-- Public continuity of the early reflected contact curve. -/ +theorem D_continuous : Continuous D := by + have hx := pathContinuous + have hfirst := (continuous_fst.comp hx).sub + (beta_continuous.mul (continuous_fst.comp u_continuous)) + have hsecond := (continuous_snd.comp hx).sub + (beta_continuous.mul (continuous_snd.comp u_continuous)) + change Continuous (fun t : ℝ => + ((Romik.path params t).1 - beta t * (u t).1, + (Romik.path params t).2 - beta t * (u t).2)) + exact hfirst.prodMk hsecond + +/-- Public continuity of the late reflected contact curve. -/ +theorem B_continuous : Continuous B := by + have hx := pathContinuous + have hfirst := (continuous_fst.comp hx).add + (alpha_continuous.mul (continuous_fst.comp v_continuous)) + have hsecond := (continuous_snd.comp hx).add + (alpha_continuous.mul (continuous_snd.comp v_continuous)) + change Continuous (fun t : ℝ => + ((Romik.path params t).1 + alpha t * (v t).1, + (Romik.path params t).2 + alpha t * (v t).2)) + exact hfirst.prodMk hsecond + +end Stage4 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part C / Stage4 / No Hidden Sign Facts +-/ + +@[expose] public section + +namespace GerverSofa +namespace PartC +namespace Stage4 + +open Set +open Stage2 + +noncomputable section + +private theorem phi_upper_twentieth : params.phi ≤ (1 / 20 : ℝ) := by + have h := phi_bounds.2 + norm_num at h ⊢ + linarith + +private theorem a1_lower_six_fifths : (6 / 5 : ℝ) ≤ params.a1 := by + have h := Romik.a1_lower_bound_of_mem_box params_mem + norm_num at h ⊢ + linarith + +private theorem b1_upper_neg_half : params.b1 ≤ (-1 / 2 : ℝ) := by + have h := PartB.b1_contains.2 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at h ⊢ + linarith + +private theorem d1_lower_thirteen_tenths : (13 / 10 : ℝ) ≤ params.d1 := by + have h := PartB.d1_contains.1 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at h ⊢ + linarith + +private theorem T_lt_eight_fifths : T < (8 / 5 : ℝ) := by + have hp := ExactReplay.piI_contains_pi + have hhi : Real.pi ≤ (ExactReplay.piI.hi : ℝ) := hp.2 + have h32 : (ExactReplay.piI.hi : ℝ) < (16 / 5 : ℝ) := by + norm_num [ExactReplay.piI, ExactReplay.q] + dsimp [T] + linarith + +private theorem alphaBeta1_fst_nonpos_small {s : ℝ} + (hs0 : 0 ≤ s) (hs20 : s ≤ (1 / 20 : ℝ)) : + (Romik.alphaBeta1 params s).1 ≤ 0 := by + have hpi : s ≤ Real.pi := by + nlinarith [Real.pi_gt_three] + have hsin0 : 0 ≤ Real.sin s := + Real.sin_nonneg_of_nonneg_of_le_pi hs0 hpi + have hsinLower := Real.sin_ge_sub_cube hs0 + have hcosLower : 1 - s ^ 2 / 2 ≤ Real.cos s := + Real.one_sub_sq_div_two_le_cos + have hquad : 0 ≤ s * ((1 / 20 : ℝ) - s) := + mul_nonneg hs0 (sub_nonneg.mpr hs20) + have hcube : 0 ≤ s ^ 2 * ((1 / 20 : ℝ) - s) := + mul_nonneg (sq_nonneg s) (sub_nonneg.mpr hs20) + have hcoef : (12 / 5 : ℝ) ≤ 2 * params.a1 := by + nlinarith [a1_lower_six_fifths] + have hmul : (12 / 5 : ℝ) * Real.sin s ≤ 2 * params.a1 * Real.sin s := + mul_le_mul_of_nonneg_right hcoef hsin0 + have ha2 := Romik.a2_eq_neg_quarter_of_equations params_equations + dsimp [Romik.alphaBeta1] + rw [ha2] + nlinarith [hsinLower, hcosLower, hquad, hcube, hmul] + +private theorem alphaBeta1_snd_nonneg_small {s : ℝ} + (hs0 : 0 ≤ s) (hs20 : s ≤ (1 / 20 : ℝ)) : + 0 ≤ (Romik.alphaBeta1 params s).2 := by + have hpi : s ≤ Real.pi := by + nlinarith [Real.pi_gt_three] + have hsin0 : 0 ≤ Real.sin s := + Real.sin_nonneg_of_nonneg_of_le_pi hs0 hpi + have hsinUpper := Real.sin_le hs0 + have hcosLower : 1 - s ^ 2 / 2 ≤ Real.cos s := + Real.one_sub_sq_div_two_le_cos + have hcos0 : 0 ≤ Real.cos s := by + apply Real.cos_nonneg_of_mem_Icc + constructor <;> nlinarith [Real.pi_gt_three] + have hquad : 0 ≤ s * ((1 / 20 : ℝ) - s) := + mul_nonneg hs0 (sub_nonneg.mpr hs20) + have hcoef : (12 / 5 : ℝ) ≤ 2 * params.a1 := by + nlinarith [a1_lower_six_fifths] + have hmul : (12 / 5 : ℝ) * Real.cos s ≤ 2 * params.a1 * Real.cos s := + mul_le_mul_of_nonneg_right hcoef hcos0 + have ha2 := Romik.a2_eq_neg_quarter_of_equations params_equations + dsimp [Romik.alphaBeta1] + rw [ha2] + nlinarith [hsinUpper, hcosLower, hquad, hmul] + +private theorem alphaBeta5_fst_nonpos_tail {t : ℝ} + (ht : t ∈ Icc tau T) : + (Romik.alphaBeta5 params t).1 ≤ 0 := by + let s : ℝ := T - t + have hs0 : 0 ≤ s := by + dsimp [s] + linarith [ht.2] + have hsphi : s ≤ params.phi := by + have hTtau : T - tau = params.phi := by + dsimp [tau] + ring + dsimp [s] + rw [← hTtau] + linarith [ht.1] + have hs20 : s ≤ (1 / 20 : ℝ) := le_trans hsphi phi_upper_twentieth + have hb := alphaBeta1_snd_nonneg_small hs0 hs20 + have href := congrArg Prod.fst (alphaBeta5_reflect1_direct s) + have hTs : T - s = t := by + dsimp [s] + ring + rw [hTs] at href + have heq : (Romik.alphaBeta5 params t).1 = -(Romik.alphaBeta1 params s).2 := by + simpa [noHiddenReflAB] using href + rw [heq] + exact neg_nonpos.mpr hb + +private theorem alphaBeta5_snd_nonneg_tail {t : ℝ} + (ht : t ∈ Icc tau T) : + 0 ≤ (Romik.alphaBeta5 params t).2 := by + let s : ℝ := T - t + have hs0 : 0 ≤ s := by + dsimp [s] + linarith [ht.2] + have hsphi : s ≤ params.phi := by + have hTtau : T - tau = params.phi := by + dsimp [tau] + ring + dsimp [s] + rw [← hTtau] + linarith [ht.1] + have hs20 : s ≤ (1 / 20 : ℝ) := le_trans hsphi phi_upper_twentieth + have ha := alphaBeta1_fst_nonpos_small hs0 hs20 + have href := congrArg Prod.snd (alphaBeta5_reflect1_direct s) + have hTs : T - s = t := by + dsimp [s] + ring + rw [hTs] at href + have heq : (Romik.alphaBeta5 params t).2 = -(Romik.alphaBeta1 params s).1 := by + simpa [noHiddenReflAB] using href + rw [heq] + exact neg_nonneg.mpr ha + +/-- The `u_t` coefficient of the Gerver velocity is nonpositive on the +entire no-hidden `U` domain. -/ +theorem alpha_nonpos {t : ℝ} (ht : t ∈ Icc params.phi T) : + alpha t ≤ 0 := by + have htPhysical : t ∈ Icc (0 : ℝ) T := + ⟨le_trans phi_nonneg ht.1, ht.2⟩ + by_cases hphi : t ≤ params.phi + · have heq : t = params.phi := le_antisymm hphi ht.1 + subst t + have h := alphaBeta1_fst_nonpos_small phi_nonneg phi_upper_twentieth + simpa [alpha, alphaBetaAt] using h + · by_cases htheta : t ≤ params.theta + · simp only [alpha, alphaBetaAt, ite_eq_right hphi, ite_eq_left htheta] + dsimp [Romik.alphaBeta2] + have ht0 : 0 ≤ t := le_trans phi_nonneg ht.1 + have hb : 1 + 2 * params.b1 ≤ 0 := by + nlinarith [b1_upper_neg_half] + nlinarith + · by_cases heta : t ≤ eta + · have hrho := Stage2.rhoC_nonneg htPhysical + unfold Stage2.rhoC at hrho + rw [ite_eq_right hphi, ite_eq_right htheta, ite_eq_left heta] at hrho + simp only [alpha, alphaBetaAt, ite_eq_right hphi, ite_eq_right htheta, ite_eq_left heta] + dsimp [Romik.alphaBeta3] + nlinarith + · by_cases htau : t ≤ tau + · have hrho := Stage2.rhoC_nonneg htPhysical + unfold Stage2.rhoC at hrho + rw [ite_eq_right hphi, ite_eq_right htheta, ite_eq_right heta, ite_eq_left htau] at hrho + simp only [alpha, alphaBetaAt, ite_eq_right hphi, ite_eq_right htheta, ite_eq_right + heta, ite_eq_left htau] + dsimp [Romik.alphaBeta4] + nlinarith + · have ht5 : t ∈ Icc tau T := ⟨le_of_lt (lt_of_not_ge htau), ht.2⟩ + have h5 := alphaBeta5_fst_nonpos_tail ht5 + simpa [alpha, alphaBetaAt, hphi, htheta, heta, htau] using h5 + +/-- The `v_t` coefficient of the Gerver velocity is nonnegative on the +entire no-hidden `U` domain. -/ +theorem beta_nonneg {t : ℝ} (ht : t ∈ Icc params.phi T) : + 0 ≤ beta t := by + have htPhysical : t ∈ Icc (0 : ℝ) T := + ⟨le_trans phi_nonneg ht.1, ht.2⟩ + by_cases hphi : t ≤ params.phi + · have heq : t = params.phi := le_antisymm hphi ht.1 + subst t + have h := alphaBeta1_snd_nonneg_small phi_nonneg phi_upper_twentieth + simpa [beta, alphaBetaAt] using h + · by_cases htheta : t ≤ params.theta + · have hrho := Stage2.rhoA_nonneg htPhysical + unfold Stage2.rhoA at hrho + rw [ite_eq_right hphi, ite_eq_left htheta] at hrho + simp only [beta, alphaBetaAt, ite_eq_right hphi, ite_eq_left htheta] + dsimp [Romik.alphaBeta2] + exact hrho + · by_cases heta : t ≤ eta + · have hrho := Stage2.rhoA_nonneg htPhysical + unfold Stage2.rhoA at hrho + rw [ite_eq_right hphi, ite_eq_right htheta, ite_eq_left heta] at hrho + simp only [beta, alphaBetaAt, ite_eq_right hphi, ite_eq_right htheta, ite_eq_left heta] + dsimp [Romik.alphaBeta3] + exact hrho + · by_cases htau : t ≤ tau + · simp only [beta, alphaBetaAt, ite_eq_right hphi, ite_eq_right htheta, ite_eq_right heta, + ite_eq_left htau] + dsimp [Romik.alphaBeta4] + nlinarith [d1_lower_thirteen_tenths, T_lt_eight_fifths, ht.2] + · have ht5 : t ∈ Icc tau T := ⟨le_of_lt (lt_of_not_ge htau), ht.2⟩ + have h5 := alphaBeta5_snd_nonneg_tail ht5 + simpa [beta, alphaBetaAt, hphi, htheta, heta, htau] using h5 + +end + +end Stage4 +end PartC +end GerverSofa + +end + +end + +section + +/-! +# Part C Stage 4: positive turning determinant on phases 2--5 + +The determinant is the signed turning numerator of the nonzero path velocity. +These phasewise facts are the analytic input for the remaining one-turn chord +argument; they do not assert the no-hidden conclusion by themselves. +-/ + +@[expose] public section + +namespace GerverSofa +namespace PartC +namespace Stage4 + +open Set +open Stage2 + +noncomputable section + +private theorem b1_upper_neg_half_turn : params.b1 ≤ (-1 / 2 : ℝ) := by + have h := PartB.b1_contains.2 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at h ⊢ + linarith + +private theorem d1_lower_thirteen_tenths_turn : (13 / 10 : ℝ) ≤ params.d1 := by + have h := PartB.d1_contains.1 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at h ⊢ + linarith + +private theorem T_lt_eight_fifths_turn : T < (8 / 5 : ℝ) := by + have hp := ExactReplay.piI_contains_pi + have hhi : Real.pi ≤ (ExactReplay.piI.hi : ℝ) := hp.2 + have h32 : (ExactReplay.piI.hi : ℝ) < (16 / 5 : ℝ) := by + norm_num [ExactReplay.piI, ExactReplay.q] + dsimp [T] + linarith + +/-! The next six statements expose the coefficient-derivative signs used in +the manuscript's tangent-angle argument. They are deliberately stated for +the explicit smooth-phase formulae; no derivative is assigned at a switch. -/ + +theorem phase2_betaPrime_neg {r : ℝ} + (hr : r ∈ Ioo params.phi params.theta) : + -(1 / 2 : ℝ) * r + params.b1 < 0 := by + have hr0 : 0 ≤ r := le_trans phi_nonneg hr.1.le + nlinarith [b1_upper_neg_half_turn] + +theorem phase4_alphaPrime_neg {r : ℝ} (hr : r ∈ Ioo eta tau) : + (1 / 2 : ℝ) * r - params.d1 < 0 := by + have hrT : r < T := lt_trans hr.2 tau_lt_T + nlinarith [d1_lower_thirteen_tenths_turn, T_lt_eight_fifths_turn] + +private theorem a1_lower_six_fifths_turn : (6 / 5 : ℝ) ≤ params.a1 := by + have h := Romik.a1_lower_bound_of_mem_box params_mem + norm_num at h ⊢ + linarith + +private theorem phi_upper_twentieth_turn : params.phi ≤ (1 / 20 : ℝ) := by + have h := phi_bounds.2 + norm_num at h ⊢ + linarith + +private theorem alpha1_prime_nonpos_small_turn {s : ℝ} + (hs0 : 0 ≤ s) (hs20 : s ≤ (1 / 20 : ℝ)) : + -2 * params.a1 * Real.cos s - 2 * params.a2 * Real.sin s ≤ 0 := by + have hsinUpper := Real.sin_le hs0 + have hcosLower : 1 - s ^ 2 / 2 ≤ Real.cos s := + Real.one_sub_sq_div_two_le_cos + have hcos0 : 0 ≤ Real.cos s := by + apply Real.cos_nonneg_of_mem_Icc + constructor <;> nlinarith [Real.pi_gt_three] + have hcoef : (12 / 5 : ℝ) ≤ 2 * params.a1 := by + nlinarith [a1_lower_six_fifths_turn] + have hmul : (12 / 5 : ℝ) * Real.cos s ≤ 2 * params.a1 * Real.cos s := + mul_le_mul_of_nonneg_right hcoef hcos0 + have ha2 := Romik.a2_eq_neg_quarter_of_equations params_equations + rw [ha2] + have hquad : 0 ≤ s * ((1 / 20 : ℝ) - s) := + mul_nonneg hs0 (sub_nonneg.mpr hs20) + nlinarith [hsinUpper, hcosLower, hmul, hquad] + +private theorem beta1_prime_nonpos_small_turn {s : ℝ} + (hs0 : 0 ≤ s) (hs20 : s ≤ (1 / 20 : ℝ)) : + -2 * params.a1 * Real.sin s + 2 * params.a2 * Real.cos s ≤ 0 := by + have hpi : s ≤ Real.pi := by nlinarith [Real.pi_gt_three] + have hsin0 : 0 ≤ Real.sin s := + Real.sin_nonneg_of_nonneg_of_le_pi hs0 hpi + have hcos0 : 0 ≤ Real.cos s := by + apply Real.cos_nonneg_of_mem_Icc + constructor <;> nlinarith [Real.pi_gt_three] + have ha1 : 0 ≤ params.a1 := le_trans (by norm_num : (0 : ℝ) ≤ 6 / 5) + a1_lower_six_fifths_turn + have ha2 := Romik.a2_eq_neg_quarter_of_equations params_equations + rw [ha2] + nlinarith [mul_nonneg ha1 hsin0, hcos0] + +private theorem phase5_derivative_signs_turn {t : ℝ} + (ht : t ∈ Ioo tau T) : + (-2 * params.e1 * Real.cos t - 2 * params.e2 * Real.sin t ≤ 0) ∧ + (-2 * params.e1 * Real.sin t + 2 * params.e2 * Real.cos t ≤ 0) := by + let s : ℝ := T - t + have hs0 : 0 ≤ s := by dsimp [s]; linarith [ht.2] + have hsphi : s ≤ params.phi := by + have hTtau : T - tau = params.phi := by + dsimp [tau] + ring + dsimp [s] + rw [← hTtau] + linarith [ht.1] + have hs20 : s ≤ (1 / 20 : ℝ) := le_trans hsphi phi_upper_twentieth_turn + have hap1 := alpha1_prime_nonpos_small_turn hs0 hs20 + have hbp1 := beta1_prime_nonpos_small_turn hs0 hs20 + have he1 := Romik.e1_eq_a1_of_equations params_equations + have he2 := Romik.e2_eq_neg_a2_of_equations params_equations + have hsin := Real.sin_pi_div_two_sub s + have hcos := Real.cos_pi_div_two_sub s + have hts : t = T - s := by dsimp [s]; ring + constructor + · rw [hts] + dsimp [T] + rw [he1, he2, hcos, hsin] + simpa [mul_add, add_mul] using hbp1 + · rw [hts] + dsimp [T] + rw [he1, he2, hsin, hcos] + simpa [mul_add, add_mul] using hap1 + +/-- Phase-five coefficient derivatives are nonpositive. This is the exact +formula-level input used below; strict turning follows from the strict +nonvanishing of the first coefficient. -/ +theorem phase5_coefficientPrime_nonpos {t : ℝ} + (ht : t ∈ Ioo tau T) : + (-2 * params.e1 * Real.cos t - 2 * params.e2 * Real.sin t ≤ 0) ∧ + (-2 * params.e1 * Real.sin t + 2 * params.e2 * Real.cos t ≤ 0) := + phase5_derivative_signs_turn ht + +end + +end Stage4 +end PartC +end GerverSofa + +end + +end + +section + +/-! +# Part C Stage 4: global path derivative and one-turn velocity monotonicity + +The path derivative is glued across the four switches using equality of both +the path values and the body-frame velocity coefficients. The coefficient +derivatives themselves need not match at a switch. Consequently the fixed +projection is proved antitone phase by phase and then glued order-theoretically. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage4 + +open Set +open Stage2 + +private theorem hasDerivAt_if_le_point + {f g f' g' : ℝ → Point} {c x : ℝ} + (hf : HasDerivAt f (f' x) x) + (hg : HasDerivAt g (g' x) x) + (hvalue : f c = g c) + (hderiv : f' c = g' c) : + HasDerivAt (fun y => if y ≤ c then f y else g y) + (if x ≤ c then f' x else g' x) x := by + rcases lt_trichotomy x c with hxc | hxc | hxc + · rw [ite_eq_left hxc.le] + apply hf.congr_of_eventuallyEq + filter_upwards [Iio_mem_nhds hxc] with y hy + have hyc : y < c := show y < c from hy + simp [hyc.le] + · subst x + rw [ite_eq_left le_rfl] + have hleft : HasDerivWithinAt + (fun y => if y ≤ c then f y else g y) (f' c) (Iic c) c := by + exact hf.hasDerivWithinAt.congr + (by + intro y hy + have hyc : y ≤ c := show y ≤ c from hy + simp [hyc]) + (by simp) + have hright : HasDerivWithinAt + (fun y => if y ≤ c then f y else g y) (f' c) (Ici c) c := by + have hg' : HasDerivWithinAt g (f' c) (Ici c) c := + hg.hasDerivWithinAt.congr_deriv hderiv.symm + exact hg'.congr + (by + intro y hy + have hcy : c ≤ y := show c ≤ y from hy + rcases hcy.eq_or_lt with h | h + · subst y + simpa using hvalue + · simp [not_le.mpr h]) + (by simpa using hvalue) + simpa only [Iic_union_Ici, hasDerivWithinAt_univ] using + hleft.union hright + · rw [ite_eq_right (not_le.mpr hxc)] + apply hg.congr_of_eventuallyEq + filter_upwards [Ioi_mem_nhds hxc] with y hy + have hcy : c < y := show c < y from hy + simp [not_le.mpr hcy] + +/-- The literal five-piece Gerver path is differentiable at the switches as +well as in the phase interiors. -/ +theorem path_hasDerivAt_noHidden (x : ℝ) : + HasDerivAt (Romik.path params) + (Romik.rot x (alphaBetaAt x)) x := by + let p45 : ℝ → Point := fun y => + if y ≤ tau then Romik.path4 params y else Romik.path5 params y + let d45 : ℝ → Point := fun y => + if y ≤ tau then Romik.rot y (Romik.alphaBeta4 params y) + else Romik.rot y (Romik.alphaBeta5 params y) + have hp45 (y : ℝ) : HasDerivAt p45 (d45 y) y := by + apply hasDerivAt_if_le_point + (path4_hasDerivAt_public y) (path5_hasDerivAt_public y) + · simpa [tau, T] using PartB.match45 + · exact congrArg (Romik.rot tau) alphaBeta_match45_direct + let p345 : ℝ → Point := fun y => + if y ≤ eta then Romik.path3 params y else p45 y + let d345 : ℝ → Point := fun y => + if y ≤ eta then Romik.rot y (Romik.alphaBeta3 params y) else d45 y + have hp345 (y : ℝ) : HasDerivAt p345 (d345 y) y := by + apply hasDerivAt_if_le_point (path3_hasDerivAt_public y) (hp45 y) + · simp only [p45, ite_eq_left eta_lt_tau.le] + simpa [eta, T] using PartB.match34 + · simp only [d45, ite_eq_left eta_lt_tau.le] + exact congrArg (Romik.rot eta) alphaBeta_match34_direct + let p2345 : ℝ → Point := fun y => + if y ≤ params.theta then Romik.path2 params y else p345 y + let d2345 : ℝ → Point := fun y => + if y ≤ params.theta then Romik.rot y (Romik.alphaBeta2 params y) + else d345 y + have hp2345 (y : ℝ) : HasDerivAt p2345 (d2345 y) y := by + apply hasDerivAt_if_le_point (path2_hasDerivAt_public y) (hp345 y) + · simp only [p345, ite_eq_left theta_lt_eta.le] + exact PartB.match23 + · simp only [d345, ite_eq_left theta_lt_eta.le] + exact congrArg (Romik.rot params.theta) alphaBeta_match23_direct + let p12345 : ℝ → Point := fun y => + if y ≤ params.phi then Romik.path1 params y else p2345 y + let d12345 : ℝ → Point := fun y => + if y ≤ params.phi then Romik.rot y (Romik.alphaBeta1 params y) + else d2345 y + have hp12345 : HasDerivAt p12345 (d12345 x) x := by + apply hasDerivAt_if_le_point (path1_hasDerivAt_public x) (hp2345 x) + · simp only [p2345, ite_eq_left phi_lt_theta.le] + exact PartB.match12 + · simp only [d2345, ite_eq_left phi_lt_theta.le] + exact congrArg (Romik.rot params.phi) alphaBeta_match12_direct + have hpEq : p12345 = Romik.path params := by + funext y + simp only [p45, p345, p2345, p12345, Romik.path, eta, tau, T] + rfl + have hdEq : d12345 x = Romik.rot x (alphaBetaAt x) := by + simp only [d45, d345, d2345, d12345, alphaBetaAt] + by_cases h1 : x ≤ params.phi + · simp only [ite_eq_left h1] + · by_cases h2 : x ≤ params.theta + · simp only [ite_eq_right h1, ite_eq_left h2] + · by_cases h3 : x ≤ eta + · simp only [ite_eq_right h1, ite_eq_right h2, ite_eq_left h3] + · by_cases h4 : x ≤ tau + · simp only [ite_eq_right h1, ite_eq_right h2, ite_eq_right h3, ite_eq_left h4] + · simp only [ite_eq_right h1, ite_eq_right h2, ite_eq_right h3, ite_eq_right h4] + rw [hpEq] at hp12345 + exact hp12345.congr_deriv hdEq + +/-- Scalar projection of the corner velocity on the fixed vector `u(t)`. -/ +def uVelocity (t r : ℝ) : ℝ := + alpha r * Real.cos (t - r) + beta r * Real.sin (t - r) + +private def uVelocityPiece (ab : ℝ → Point) (t r : ℝ) : ℝ := + (ab r).1 * Real.cos (t - r) + (ab r).2 * Real.sin (t - r) + +private theorem square_hasDerivAt_noHidden (r : ℝ) : + HasDerivAt (fun s : ℝ => s * s) (r + r) r := + Stage2.square_hasDerivAt r + +private theorem alpha2_hasDerivAt (r : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta2 params s).1) (-1) r := by + dsimp [Romik.alphaBeta2] + have h := (hasDerivAt_const r (1 + 2 * params.b1)).fun_sub + (hasDerivAt_id r) + exact h.congr_deriv (by ring) + +private theorem beta2_hasDerivAt (r : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta2 params s).2) + (-(1 / 2 : ℝ) * r + params.b1) r := by + dsimp [Romik.alphaBeta2] + have hsq := HasDerivAt.const_mul (-(1 / 4 : ℝ)) + (square_hasDerivAt_noHidden r) + have hlin := HasDerivAt.const_mul params.b1 (hasDerivAt_id r) + have hraw := (((hsq.fun_add hlin).fun_add (hasDerivAt_const r params.b2)).fun_add + (hasDerivAt_const r (1 / 2 : ℝ))) + simpa only [id_eq, mul_assoc] using hraw.congr_deriv (by ring) + +private theorem alpha3_hasDerivAt (r : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta3 params s).1) (-1) r := by + dsimp [Romik.alphaBeta3] + have h := (hasDerivAt_const r (-1 - params.c2)).fun_sub + (hasDerivAt_id r) + exact h.congr_deriv (by ring) + +private theorem beta3_hasDerivAt (r : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta3 params s).2) (-1) r := by + dsimp [Romik.alphaBeta3] + have h := (hasDerivAt_const r (1 + params.c1)).fun_sub + (hasDerivAt_id r) + exact h.congr_deriv (by ring) + +private theorem alpha4_hasDerivAt (r : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta4 params s).1) + ((1 / 2 : ℝ) * r - params.d1) r := by + dsimp [Romik.alphaBeta4] + have hsq := HasDerivAt.const_mul (1 / 4 : ℝ) + (square_hasDerivAt_noHidden r) + have hlin := HasDerivAt.const_mul params.d1 (hasDerivAt_id r) + have hraw := (((hsq.fun_sub hlin).fun_sub (hasDerivAt_const r params.d2)).fun_sub + (hasDerivAt_const r (1 / 2 : ℝ))) + simpa only [id_eq, mul_assoc] using hraw.congr_deriv (by ring) + +private theorem beta4_hasDerivAt (r : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta4 params s).2) (-1) r := by + dsimp [Romik.alphaBeta4] + have h := (hasDerivAt_const r (2 * params.d1 - 1)).fun_sub + (hasDerivAt_id r) + exact h.congr_deriv (by ring) + +private theorem alpha5_hasDerivAt (r : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta5 params s).1) + (-2 * params.e1 * Real.cos r - 2 * params.e2 * Real.sin r) r := by + dsimp [Romik.alphaBeta5] + have hsin := HasDerivAt.const_mul (2 * params.e1) + (Real.hasDerivAt_sin r) + have hcos := HasDerivAt.const_mul (2 * params.e2) + (Real.hasDerivAt_cos r) + have hraw := ((hasDerivAt_const r (1 : ℝ)).fun_sub hsin).fun_add hcos + exact hraw.congr_deriv (by ring) + +private theorem beta5_hasDerivAt (r : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta5 params s).2) + (-2 * params.e1 * Real.sin r + 2 * params.e2 * Real.cos r) r := by + dsimp [Romik.alphaBeta5] + have hcos := HasDerivAt.const_mul (2 * params.e1) + (Real.hasDerivAt_cos r) + have hsin := HasDerivAt.const_mul (2 * params.e2) + (Real.hasDerivAt_sin r) + have hraw := (hcos.fun_add hsin).fun_sub + (hasDerivAt_const r (1 / 2 : ℝ)) + exact hraw.congr_deriv (by ring) + +private theorem alphaBetaAt_eq_piece2 {r : ℝ} + (hr : r ∈ Icc params.phi params.theta) : + alphaBetaAt r = Romik.alphaBeta2 params r := by + by_cases hphi : r ≤ params.phi + · have hrphi : r = params.phi := le_antisymm hphi hr.1 + subst r + simpa [alphaBetaAt] using alphaBeta_match12_direct + · simp [alphaBetaAt, hphi, hr.2] + +private theorem alphaBetaAt_eq_piece3 {r : ℝ} + (hr : r ∈ Icc params.theta eta) : + alphaBetaAt r = Romik.alphaBeta3 params r := by + by_cases htheta : r ≤ params.theta + · have hrtheta : r = params.theta := le_antisymm htheta hr.1 + subst r + simp only [alphaBetaAt, ite_eq_right (not_le.mpr phi_lt_theta), ite_eq_left le_rfl] + exact alphaBeta_match23_direct + · have hphi : ¬ r ≤ params.phi := + not_le.mpr (lt_trans phi_lt_theta (lt_of_not_ge htheta)) + simp [alphaBetaAt, hphi, htheta, hr.2] + +private theorem alphaBetaAt_eq_piece4 {r : ℝ} + (hr : r ∈ Icc eta tau) : + alphaBetaAt r = Romik.alphaBeta4 params r := by + by_cases heta : r ≤ eta + · have hreta : r = eta := le_antisymm heta hr.1 + subst r + simp only [alphaBetaAt, ite_eq_right (not_le.mpr phi_lt_eta), + ite_eq_right (not_le.mpr theta_lt_eta), ite_eq_left le_rfl] + exact alphaBeta_match34_direct + · have htheta : ¬ r ≤ params.theta := + not_le.mpr (lt_trans theta_lt_eta (lt_of_not_ge heta)) + have hphi : ¬ r ≤ params.phi := + not_le.mpr (lt_trans phi_lt_theta (lt_of_not_ge htheta)) + simp [alphaBetaAt, hphi, htheta, heta, hr.2] + +private theorem alphaBetaAt_eq_piece5 {r : ℝ} + (hr : r ∈ Icc tau T) : + alphaBetaAt r = Romik.alphaBeta5 params r := by + by_cases htau : r ≤ tau + · have hrtau : r = tau := le_antisymm htau hr.1 + subst r + simp only [alphaBetaAt, ite_eq_right (not_le.mpr + (lt_trans phi_lt_theta (lt_trans theta_lt_eta eta_lt_tau))), + ite_eq_right (not_le.mpr (lt_trans theta_lt_eta eta_lt_tau)), + ite_eq_right (not_le.mpr eta_lt_tau), ite_eq_left le_rfl] + exact alphaBeta_match45_direct + · have heta : ¬ r ≤ eta := + not_le.mpr (lt_trans eta_lt_tau (lt_of_not_ge htau)) + have htheta : ¬ r ≤ params.theta := + not_le.mpr (lt_trans theta_lt_eta (lt_of_not_ge heta)) + have hphi : ¬ r ≤ params.phi := + not_le.mpr (lt_trans phi_lt_theta (lt_of_not_ge htheta)) + simp [alphaBetaAt, hphi, htheta, heta, htau] + +private theorem uVelocityPiece_hasDerivAt + {a b : ℝ → ℝ} {ap bp t r : ℝ} + (ha : HasDerivAt a ap r) (hb : HasDerivAt b bp r) : + HasDerivAt + (fun s => a s * Real.cos (t - s) + b s * Real.sin (t - s)) + ((ap - b r) * Real.cos (t - r) + + (a r + bp) * Real.sin (t - r)) r := by + have hsub : HasDerivAt (fun s : ℝ => t - s) (-1) r := + by simpa only [id_eq, zero_sub] using + ((hasDerivAt_const r t).fun_sub (hasDerivAt_id r)) + have hcos : HasDerivAt (fun s : ℝ => Real.cos (t - s)) + (Real.sin (t - r)) r := by + have h := (Real.hasDerivAt_cos (t - r)).comp r hsub + exact h.congr_deriv (by ring) + have hsin : HasDerivAt (fun s : ℝ => Real.sin (t - s)) + (-Real.cos (t - r)) r := by + have h := (Real.hasDerivAt_sin (t - r)).comp r hsub + exact h.congr_deriv (by ring) + have h := (ha.fun_mul hcos).fun_add (hb.fun_mul hsin) + exact h.congr_deriv (by ring) + +private theorem uVelocity_eq_piece2 {t r : ℝ} + (hr : r ∈ Icc params.phi params.theta) : + uVelocity t r = uVelocityPiece (Romik.alphaBeta2 params) t r := by + unfold uVelocity uVelocityPiece + have h := alphaBetaAt_eq_piece2 hr + simp only [alpha, beta, h] + +private theorem uVelocity_eq_piece3 {t r : ℝ} + (hr : r ∈ Icc params.theta eta) : + uVelocity t r = uVelocityPiece (Romik.alphaBeta3 params) t r := by + unfold uVelocity uVelocityPiece + have h := alphaBetaAt_eq_piece3 hr + simp only [alpha, beta, h] + +private theorem uVelocity_eq_piece4 {t r : ℝ} + (hr : r ∈ Icc eta tau) : + uVelocity t r = uVelocityPiece (Romik.alphaBeta4 params) t r := by + unfold uVelocity uVelocityPiece + have h := alphaBetaAt_eq_piece4 hr + simp only [alpha, beta, h] + +private theorem uVelocity_eq_piece5 {t r : ℝ} + (hr : r ∈ Icc tau T) : + uVelocity t r = uVelocityPiece (Romik.alphaBeta5 params) t r := by + unfold uVelocity uVelocityPiece + have h := alphaBetaAt_eq_piece5 hr + simp only [alpha, beta, h] + +private theorem piece_signs + {ab : ℝ → Point} {r : ℝ} (hrT : r ∈ Icc params.phi T) + (heq : alphaBetaAt r = ab r) : + (ab r).1 ≤ 0 ∧ 0 ≤ (ab r).2 := by + have ha := alpha_nonpos hrT + have hb := beta_nonneg hrT + change (alphaBetaAt r).1 ≤ 0 at ha + change 0 ≤ (alphaBetaAt r).2 at hb + rw [heq] at ha hb + exact ⟨ha, hb⟩ + +private theorem uVelocity_continuous (t : ℝ) : Continuous (uVelocity t) := by + unfold uVelocity + have hsub : Continuous (fun r : ℝ => t - r) := + continuous_const.sub continuous_id + have ha : Continuous alpha := alpha_continuous + have hb : Continuous beta := beta_continuous + exact (ha.mul (Real.continuous_cos.comp hsub)).add + (hb.mul (Real.continuous_sin.comp hsub)) + +private theorem uVelocity_hasDerivAt_phase2 {t r : ℝ} + (hr : r ∈ Ioo params.phi params.theta) : + HasDerivAt (uVelocity t) + (((-1 : ℝ) - (Romik.alphaBeta2 params r).2) * Real.cos (t-r) + + ((Romik.alphaBeta2 params r).1 + + (-(1/2 : ℝ) * r + params.b1)) * Real.sin (t-r)) r := by + have hd := uVelocityPiece_hasDerivAt (t := t) + (alpha2_hasDerivAt r) (beta2_hasDerivAt r) + apply hd.congr_of_eventuallyEq + filter_upwards [Ioo_mem_nhds hr.1 hr.2] with s hs + exact uVelocity_eq_piece2 (t := t) ⟨hs.1.le, hs.2.le⟩ + +private theorem uVelocity_hasDerivAt_phase3 {t r : ℝ} + (hr : r ∈ Ioo params.theta eta) : + HasDerivAt (uVelocity t) + (((-1 : ℝ) - (Romik.alphaBeta3 params r).2) * Real.cos (t-r) + + ((Romik.alphaBeta3 params r).1 - 1) * Real.sin (t-r)) r := by + have hd := uVelocityPiece_hasDerivAt (t := t) + (alpha3_hasDerivAt r) (beta3_hasDerivAt r) + apply hd.congr_of_eventuallyEq + filter_upwards [Ioo_mem_nhds hr.1 hr.2] with s hs + exact uVelocity_eq_piece3 (t := t) ⟨hs.1.le, hs.2.le⟩ + +private theorem uVelocity_hasDerivAt_phase4 {t r : ℝ} + (hr : r ∈ Ioo eta tau) : + HasDerivAt (uVelocity t) + ((((1/2 : ℝ) * r - params.d1) - + (Romik.alphaBeta4 params r).2) * Real.cos (t-r) + + ((Romik.alphaBeta4 params r).1 - 1) * Real.sin (t-r)) r := by + have hd := uVelocityPiece_hasDerivAt (t := t) + (alpha4_hasDerivAt r) (beta4_hasDerivAt r) + apply hd.congr_of_eventuallyEq + filter_upwards [Ioo_mem_nhds hr.1 hr.2] with s hs + exact uVelocity_eq_piece4 (t := t) ⟨hs.1.le, hs.2.le⟩ + +private theorem uVelocity_hasDerivAt_phase5 {t r : ℝ} + (hr : r ∈ Ioo tau T) : + HasDerivAt (uVelocity t) + (((-2 * params.e1 * Real.cos r - 2 * params.e2 * Real.sin r) - + (Romik.alphaBeta5 params r).2) * Real.cos (t-r) + + ((Romik.alphaBeta5 params r).1 + + (-2 * params.e1 * Real.sin r + 2 * params.e2 * Real.cos r)) * + Real.sin (t-r)) r := by + have hd := uVelocityPiece_hasDerivAt (t := t) + (alpha5_hasDerivAt r) (beta5_hasDerivAt r) + apply hd.congr_of_eventuallyEq + filter_upwards [Ioo_mem_nhds hr.1 hr.2] with s hs + exact uVelocity_eq_piece5 (t := t) ⟨hs.1.le, hs.2.le⟩ + +private theorem uVelocity_phase2_anti {t hi : ℝ} + (hhi : hi ∈ Icc params.phi params.theta) (hit : hi ≤ t) (htT : t ≤ T) : + AntitoneOn (uVelocity t) (Icc params.phi hi) := by + let f' : ℝ → ℝ := fun r => + (((-1 : ℝ) - (Romik.alphaBeta2 params r).2) * Real.cos (t-r) + + ((Romik.alphaBeta2 params r).1 + + (-(1/2 : ℝ) * r + params.b1)) * Real.sin (t-r)) + apply antitoneOn_of_hasDerivWithinAt_nonpos + (f' := f') (convex_Icc params.phi hi) + · exact (uVelocity_continuous t).continuousOn + · intro r hr + have hir : r ∈ Ioo params.phi hi := by simpa only [interior_Icc] using hr + have hrphase : r ∈ Ioo params.phi params.theta := + ⟨hir.1, lt_of_lt_of_le hir.2 hhi.2⟩ + exact (uVelocity_hasDerivAt_phase2 (t := t) hrphase).hasDerivWithinAt + · intro r hr + have hir : r ∈ Ioo params.phi hi := by simpa only [interior_Icc] using hr + have hrphase : r ∈ Ioo params.phi params.theta := + ⟨hir.1, lt_of_lt_of_le hir.2 hhi.2⟩ + have hs := piece_signs + (show r ∈ Icc params.phi T from + ⟨hir.1.le, le_trans (le_trans hir.2.le hhi.2) theta_lt_T.le⟩) + (alphaBetaAt_eq_piece2 ⟨hir.1.le, + le_trans hir.2.le hhi.2⟩) + have hbp := (phase2_betaPrime_neg hrphase).le + have hr0 : 0 ≤ r := le_trans phi_pos.le hir.1.le + have hd0 : 0 ≤ t-r := by linarith [hir.2, hit] + have hdT : t-r ≤ T := by linarith [htT, hr0] + have hsin : 0 ≤ Real.sin (t-r) := Real.sin_nonneg_of_nonneg_of_le_pi hd0 + (le_trans hdT (by dsimp [T]; linarith [Real.pi_pos])) + have hcos : 0 ≤ Real.cos (t-r) := Real.cos_nonneg_of_mem_Icc + ⟨by linarith [Real.pi_pos, hd0], by simpa only [T] using hdT⟩ + dsimp only [f'] + exact add_nonpos + (mul_nonpos_of_nonpos_of_nonneg (by linarith [hs.2]) hcos) + (mul_nonpos_of_nonpos_of_nonneg (by linarith [hs.1, hbp]) hsin) + +private theorem uVelocity_phase3_anti {t hi : ℝ} + (hhi : hi ∈ Icc params.theta eta) (hit : hi ≤ t) (htT : t ≤ T) : + AntitoneOn (uVelocity t) (Icc params.theta hi) := by + let f' : ℝ → ℝ := fun r => + (((-1 : ℝ) - (Romik.alphaBeta3 params r).2) * Real.cos (t-r) + + ((Romik.alphaBeta3 params r).1 - 1) * Real.sin (t-r)) + apply antitoneOn_of_hasDerivWithinAt_nonpos + (f' := f') (convex_Icc params.theta hi) + · exact (uVelocity_continuous t).continuousOn + · intro r hr + have hir : r ∈ Ioo params.theta hi := by simpa only [interior_Icc] using hr + have hrphase : r ∈ Ioo params.theta eta := + ⟨hir.1, lt_of_lt_of_le hir.2 hhi.2⟩ + exact (uVelocity_hasDerivAt_phase3 (t := t) hrphase).hasDerivWithinAt + · intro r hr + have hir : r ∈ Ioo params.theta hi := by simpa only [interior_Icc] using hr + have hrphase : r ∈ Ioo params.theta eta := + ⟨hir.1, lt_of_lt_of_le hir.2 hhi.2⟩ + have hs := piece_signs + (show r ∈ Icc params.phi T from + ⟨(lt_trans phi_lt_theta hir.1).le, + le_trans (le_trans hir.2.le hhi.2) eta_lt_T.le⟩) + (alphaBetaAt_eq_piece3 ⟨hir.1.le, le_trans hir.2.le hhi.2⟩) + have hr0 : 0 ≤ r := le_trans theta_pos.le hir.1.le + have hd0 : 0 ≤ t-r := by linarith [hir.2, hit] + have hdT : t-r ≤ T := by linarith [htT, hr0] + have hsin : 0 ≤ Real.sin (t-r) := Real.sin_nonneg_of_nonneg_of_le_pi hd0 + (le_trans hdT (by dsimp [T]; linarith [Real.pi_pos])) + have hcos : 0 ≤ Real.cos (t-r) := Real.cos_nonneg_of_mem_Icc + ⟨by linarith [Real.pi_pos, hd0], by simpa only [T] using hdT⟩ + dsimp only [f'] + exact add_nonpos + (mul_nonpos_of_nonpos_of_nonneg (by linarith [hs.2]) hcos) + (mul_nonpos_of_nonpos_of_nonneg (by linarith [hs.1]) hsin) + +private theorem uVelocity_phase4_anti {t hi : ℝ} + (hhi : hi ∈ Icc eta tau) (hit : hi ≤ t) (htT : t ≤ T) : + AntitoneOn (uVelocity t) (Icc eta hi) := by + let f' : ℝ → ℝ := fun r => + ((((1/2 : ℝ) * r - params.d1) - + (Romik.alphaBeta4 params r).2) * Real.cos (t-r) + + ((Romik.alphaBeta4 params r).1 - 1) * Real.sin (t-r)) + apply antitoneOn_of_hasDerivWithinAt_nonpos + (f' := f') (convex_Icc eta hi) + · exact (uVelocity_continuous t).continuousOn + · intro r hr + have hir : r ∈ Ioo eta hi := by simpa only [interior_Icc] using hr + have hrphase : r ∈ Ioo eta tau := + ⟨hir.1, lt_of_lt_of_le hir.2 hhi.2⟩ + exact (uVelocity_hasDerivAt_phase4 (t := t) hrphase).hasDerivWithinAt + · intro r hr + have hir : r ∈ Ioo eta hi := by simpa only [interior_Icc] using hr + have hrphase : r ∈ Ioo eta tau := + ⟨hir.1, lt_of_lt_of_le hir.2 hhi.2⟩ + have hs := piece_signs + (show r ∈ Icc params.phi T from + ⟨(lt_trans phi_lt_eta hir.1).le, + le_trans (le_trans hir.2.le hhi.2) tau_lt_T.le⟩) + (alphaBetaAt_eq_piece4 ⟨hir.1.le, le_trans hir.2.le hhi.2⟩) + have hap := (phase4_alphaPrime_neg hrphase).le + have hr0 : 0 ≤ r := le_trans theta_pos.le (lt_trans theta_lt_eta hir.1).le + have hd0 : 0 ≤ t-r := by linarith [hir.2, hit] + have hdT : t-r ≤ T := by linarith [htT, hr0] + have hsin : 0 ≤ Real.sin (t-r) := Real.sin_nonneg_of_nonneg_of_le_pi hd0 + (le_trans hdT (by dsimp [T]; linarith [Real.pi_pos])) + have hcos : 0 ≤ Real.cos (t-r) := Real.cos_nonneg_of_mem_Icc + ⟨by linarith [Real.pi_pos, hd0], by simpa only [T] using hdT⟩ + dsimp only [f'] + exact add_nonpos + (mul_nonpos_of_nonpos_of_nonneg (by linarith [hs.2, hap]) hcos) + (mul_nonpos_of_nonpos_of_nonneg (by linarith [hs.1]) hsin) + +private theorem uVelocity_phase5_anti {t hi : ℝ} + (hhi : hi ∈ Icc tau T) (hit : hi ≤ t) (htT : t ≤ T) : + AntitoneOn (uVelocity t) (Icc tau hi) := by + let f' : ℝ → ℝ := fun r => + (((-2 * params.e1 * Real.cos r - 2 * params.e2 * Real.sin r) - + (Romik.alphaBeta5 params r).2) * Real.cos (t-r) + + ((Romik.alphaBeta5 params r).1 + + (-2 * params.e1 * Real.sin r + 2 * params.e2 * Real.cos r)) * + Real.sin (t-r)) + apply antitoneOn_of_hasDerivWithinAt_nonpos + (f' := f') (convex_Icc tau hi) + · exact (uVelocity_continuous t).continuousOn + · intro r hr + have hir : r ∈ Ioo tau hi := by simpa only [interior_Icc] using hr + have hrphase : r ∈ Ioo tau T := + ⟨hir.1, lt_of_lt_of_le hir.2 hhi.2⟩ + exact (uVelocity_hasDerivAt_phase5 (t := t) hrphase).hasDerivWithinAt + · intro r hr + have hir : r ∈ Ioo tau hi := by simpa only [interior_Icc] using hr + have hrphase : r ∈ Ioo tau T := + ⟨hir.1, lt_of_lt_of_le hir.2 hhi.2⟩ + have hs := piece_signs + (show r ∈ Icc params.phi T from + ⟨(lt_trans (lt_trans phi_lt_eta eta_lt_tau) hir.1).le, + le_trans hir.2.le hhi.2⟩) + (alphaBetaAt_eq_piece5 ⟨hir.1.le, le_trans hir.2.le hhi.2⟩) + obtain ⟨hap, hbp⟩ := phase5_coefficientPrime_nonpos hrphase + have hr0 : 0 ≤ r := le_trans phi_pos.le + (lt_trans (lt_trans phi_lt_eta eta_lt_tau) hir.1).le + have hd0 : 0 ≤ t-r := by linarith [hir.2, hit] + have hdT : t-r ≤ T := by linarith [htT, hr0] + have hsin : 0 ≤ Real.sin (t-r) := Real.sin_nonneg_of_nonneg_of_le_pi hd0 + (le_trans hdT (by dsimp [T]; linarith [Real.pi_pos])) + have hcos : 0 ≤ Real.cos (t-r) := Real.cos_nonneg_of_mem_Icc + ⟨by linarith [Real.pi_pos, hd0], by simpa only [T] using hdT⟩ + dsimp only [f'] + exact add_nonpos + (mul_nonpos_of_nonpos_of_nonneg (by linarith [hs.2, hap]) hcos) + (mul_nonpos_of_nonpos_of_nonneg (by linarith [hs.1, hbp]) hsin) + +private theorem antitoneOn_Icc_glue {f : ℝ → ℝ} {a b c : ℝ} + (hab : a ≤ b) + (hleft : AntitoneOn f (Icc a b)) + (hright : AntitoneOn f (Icc b c)) : + AntitoneOn f (Icc a c) := by + intro x hx y hy hxy + by_cases hyb : y ≤ b + · exact hleft ⟨hx.1, le_trans hxy hyb⟩ ⟨hy.1, hyb⟩ hxy + by_cases hbx : b ≤ x + · exact hright ⟨hbx, le_trans hxy hy.2⟩ ⟨le_trans hbx hxy, hy.2⟩ hxy + have hxb : x ≤ b := le_of_not_ge hbx + have hby : b ≤ y := le_of_not_ge hyb + exact le_trans + (hright ⟨le_rfl, le_trans hby hy.2⟩ ⟨hby, hy.2⟩ hby) + (hleft ⟨hx.1, hxb⟩ ⟨hab, le_rfl⟩ hxb) + +/-- For fixed terminal time, the projected path velocity is antitone on the +complete ordered no-hidden interval. -/ +theorem uVelocity_antitone {t : ℝ} (ht : t ∈ Icc params.phi T) : + AntitoneOn (uVelocity t) (Icc params.phi t) := by + by_cases h2 : t ≤ params.theta + · exact uVelocity_phase2_anti ⟨ht.1, h2⟩ le_rfl ht.2 + have ht2 : params.theta ≤ t := (lt_of_not_ge h2).le + have hphase2 := uVelocity_phase2_anti + (t := t) (hi := params.theta) ⟨phi_lt_theta.le, le_rfl⟩ ht2 ht.2 + by_cases h3 : t ≤ eta + · exact antitoneOn_Icc_glue phi_lt_theta.le hphase2 + (uVelocity_phase3_anti ⟨ht2, h3⟩ le_rfl ht.2) + have ht3 : eta ≤ t := (lt_of_not_ge h3).le + have hphase3 := uVelocity_phase3_anti + (t := t) (hi := eta) ⟨theta_lt_eta.le, le_rfl⟩ ht3 ht.2 + have h23 := antitoneOn_Icc_glue phi_lt_theta.le + hphase2 hphase3 + by_cases h4 : t ≤ tau + · exact antitoneOn_Icc_glue phi_lt_eta.le h23 + (uVelocity_phase4_anti ⟨ht3, h4⟩ le_rfl ht.2) + have ht4 : tau ≤ t := (lt_of_not_ge h4).le + have hphase4 := uVelocity_phase4_anti + (t := t) (hi := tau) ⟨eta_lt_tau.le, le_rfl⟩ ht4 ht.2 + have h234 := antitoneOn_Icc_glue phi_lt_eta.le h23 hphase4 + exact antitoneOn_Icc_glue + (lt_trans phi_lt_eta eta_lt_tau).le h234 + (uVelocity_phase5_anti ⟨ht4, ht.2⟩ le_rfl ht.2) + +private theorem dot_fixed_hasDerivAt {f : ℝ → Point} {f' : Point} + {r : ℝ} (hf : HasDerivAt f f' r) (w : Point) : + HasDerivAt (fun s => dot (f s) w) (dot f' w) r := by + have h1 := HasDerivAt.const_mul w.1 hf.fst + have h2 := HasDerivAt.const_mul w.2 hf.snd + simpa [dot, mul_comm] using h1.fun_add h2 + +/-- Derivative of `U(r,t)` in its first variable. -/ +theorem UValue_hasDerivAt_noHidden (r t : ℝ) : + HasDerivAt (fun s => Stage2.UValue s t) (uVelocity t r) r := by + have hpRaw := (path_hasDerivAt_noHidden r).fun_sub + (hasDerivAt_const r (Romik.path params t)) + have hp : HasDerivAt + (fun s => Romik.path params s - Romik.path params t) + (Romik.rot r (alphaBetaAt r)) r := by + exact hpRaw.congr_deriv (by simp) + have hd := dot_fixed_hasDerivAt hp (u t) + have hrot : dot (Romik.rot r (alphaBetaAt r)) (u t) = uVelocity t r := by + dsimp [dot, Romik.rot, u, uVelocity, alpha, beta] + rw [Real.cos_sub, Real.sin_sub] + ring + exact hd.congr_deriv hrot + +/-- Concavity form of the manuscript's one-turn tangent argument. -/ +theorem U_concave_on (t : ℝ) (ht : t ∈ Icc params.phi T) : + ConcaveOn ℝ (Icc params.phi t) (fun r => Stage2.UValue r t) := by + have hanti := uVelocity_antitone ht + have hantiDeriv : AntitoneOn + (deriv (fun r => Stage2.UValue r t)) (interior (Icc params.phi t)) := by + intro x hx y hy hxy + rw [(UValue_hasDerivAt_noHidden x t).deriv, + (UValue_hasDerivAt_noHidden y t).deriv] + exact hanti (interior_subset hx) (interior_subset hy) hxy + exact hantiDeriv.concaveOn_of_deriv (convex_Icc params.phi t) + (by + intro r hr + exact (UValue_hasDerivAt_noHidden r t).continuousAt.continuousWithinAt) + (by + intro r hr + exact (UValue_hasDerivAt_noHidden r t).differentiableAt.differentiableWithinAt) + +end Stage4 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Part C Stage 4: exact reflection bridge for the second no-hidden inequality + +The affine reflection is derived phase by phase from the certified matching +equations. No global symmetry hypothesis is introduced. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage4 + +open Set +open Stage2 + +/-- Reflect a point horizontally about the axis `x = k31`. -/ +def noHiddenHReflect (z : Point) : Point := + (2 * params.k31 - z.1, z.2) + +@[simp] theorem noHiddenHReflect_involutive (z : Point) : + noHiddenHReflect (noHiddenHReflect z) = z := by + ext <;> simp [noHiddenHReflect] + +private theorem phase24_horizontal_reflection_noHidden (s : ℝ) : + (Romik.path4 params (T - s)).1 + (Romik.path2 params s).1 = + params.k41 + params.k21 := by + have hd1 := Romik.d1_eq_quarterPi_sub_b1_of_equations params_equations + have hd2 := + Romik.d2_eq_b2_add_quarterPi_correction_of_equations params_equations + dsimp [T, Romik.path4, Romik.path2, Romik.rot, Romik.addK] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub, hd1, hd2] + ring + +private theorem phase3_horizontal_reflection_noHidden (s : ℝ) : + (Romik.path3 params (T - s)).1 + (Romik.path3 params s).1 = + 2 * params.k31 := by + have hc2 := Romik.c2_eq_c1_sub_halfPi_of_equations params_equations + dsimp [T, Romik.path3, Romik.rot, Romik.addK] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub, hc2] + ring + +private theorem k41_add_k21_eq_two_k31_noHidden : + params.k41 + params.k21 = 2 * params.k31 := by + have h24 := phase24_horizontal_reflection_noHidden params.theta + have h33 := phase3_horizontal_reflection_noHidden params.theta + have h23 := congrArg Prod.fst PartB.match23 + have h34 := congrArg Prod.fst PartB.match34 + simp only [T] at h24 h33 h34 + linarith + +private theorem phase24_reflect_noHidden (s : ℝ) : + Romik.path4 params (T - s) = + noHiddenHReflect (Romik.path2 params s) := by + apply Prod.ext + · have h := phase24_horizontal_reflection_noHidden s + rw [k41_add_k21_eq_two_k31_noHidden] at h + dsimp [noHiddenHReflect] + linarith + · have h := + Romik.phase24_vertical_reflection_of_equations params_equations s + have hk := Romik.k42_eq_k22_of_equations params_equations + rw [hk] at h + dsimp [T] at h ⊢ + dsimp [noHiddenHReflect] + linarith + +private theorem phase42_reflect_noHidden (s : ℝ) : + Romik.path2 params (T - s) = + noHiddenHReflect (Romik.path4 params s) := by + have h := congrArg noHiddenHReflect + (phase24_reflect_noHidden (T - s)) + have hT : T - (T - s) = s := by ring + rw [hT, noHiddenHReflect_involutive] at h + exact h.symm + +private theorem phase3_reflect_noHidden (s : ℝ) : + Romik.path3 params (T - s) = + noHiddenHReflect (Romik.path3 params s) := by + apply Prod.ext + · have h := phase3_horizontal_reflection_noHidden s + dsimp [noHiddenHReflect] + linarith + · have h := + Romik.phase3_vertical_reflection_of_equations params_equations s + simpa [T, noHiddenHReflect] using h + +private theorem phase15_horizontal_reflection_noHidden (s : ℝ) : + (Romik.path5 params (T - s)).1 + (Romik.path1 params s).1 = + params.k51 + params.k11 := by + have he1 := Romik.e1_eq_a1_of_equations params_equations + have he2 := Romik.e2_eq_neg_a2_of_equations params_equations + dsimp [T, Romik.path5, Romik.path1, Romik.rot, Romik.addK] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub, he1, he2] + ring + +private theorem k51_add_k11_eq_two_k31_noHidden : + params.k51 + params.k11 = 2 * params.k31 := by + have h15 := phase15_horizontal_reflection_noHidden params.phi + have h24 := phase24_horizontal_reflection_noHidden params.phi + have h12 := congrArg Prod.fst PartB.match12 + have h45 := congrArg Prod.fst PartB.match45 + rw [k41_add_k21_eq_two_k31_noHidden] at h24 + simp only [T] at h15 h24 h45 + linarith + +private theorem phase15_reflect_noHidden (s : ℝ) : + Romik.path5 params (T - s) = + noHiddenHReflect (Romik.path1 params s) := by + apply Prod.ext + · have h := phase15_horizontal_reflection_noHidden s + rw [k51_add_k11_eq_two_k31_noHidden] at h + dsimp [noHiddenHReflect] + linarith + · have h := + Romik.phase15_vertical_reflection_of_equations params_equations s + have hk := Romik.k52_eq_k12_of_equations params_equations + rw [hk] at h + dsimp [T] at h ⊢ + dsimp [noHiddenHReflect] + linarith + +private theorem phase51_reflect_noHidden (s : ℝ) : + Romik.path1 params (T - s) = + noHiddenHReflect (Romik.path5 params s) := by + have h := congrArg noHiddenHReflect + (phase15_reflect_noHidden (T - s)) + have hT : T - (T - s) = s := by ring + rw [hT, noHiddenHReflect_involutive] at h + exact h.symm + +private theorem path_eq_phase1_noHidden {s : ℝ} (hs : s ≤ params.phi) : + Romik.path params s = Romik.path1 params s := by + simp only [Romik.path, ite_eq_left hs] + +private theorem path_eq_phase2_noHidden {s : ℝ} + (hphi : params.phi < s) (hs : s ≤ params.theta) : + Romik.path params s = Romik.path2 params s := by + simp only [Romik.path, ite_eq_right (not_le.mpr hphi), ite_eq_left hs] + +private theorem path_eq_phase3_noHidden {s : ℝ} + (htheta : params.theta < s) (hs : s ≤ eta) : + Romik.path params s = Romik.path3 params s := by + have hphi : params.phi < s := lt_trans phi_lt_theta htheta + simpa only [eta, T] using + (show Romik.path params s = Romik.path3 params s by + simp only [Romik.path, ite_eq_right (not_le.mpr hphi), + ite_eq_right (not_le.mpr htheta), ite_eq_left (by simpa [eta, T] using hs)]) + +private theorem path_eq_phase4_noHidden {s : ℝ} + (heta : eta < s) (hs : s ≤ tau) : + Romik.path params s = Romik.path4 params s := by + have htheta : params.theta < s := lt_trans theta_lt_eta heta + have hphi : params.phi < s := lt_trans phi_lt_theta htheta + have hnotEta : ¬ s ≤ Real.pi / 2 - params.theta := by + apply not_le.mpr + simpa only [eta, T] using heta + have hleTau : s ≤ Real.pi / 2 - params.phi := by + simpa only [tau, T] using hs + simp only [Romik.path, ite_eq_right (not_le.mpr hphi), + ite_eq_right (not_le.mpr htheta), + ite_eq_right hnotEta, ite_eq_left hleTau] + +private theorem path_eq_phase5_noHidden {s : ℝ} (hs : tau < s) : + Romik.path params s = Romik.path5 params s := by + have heta : eta < s := lt_trans eta_lt_tau hs + have htheta : params.theta < s := lt_trans theta_lt_eta heta + have hphi : params.phi < s := lt_trans phi_lt_theta htheta + have hnotEta : ¬ s ≤ Real.pi / 2 - params.theta := by + apply not_le.mpr + simpa only [eta, T] using heta + have hnotTau : ¬ s ≤ Real.pi / 2 - params.phi := by + apply not_le.mpr + simpa only [tau, T] using hs + simp only [Romik.path, ite_eq_right (not_le.mpr hphi), + ite_eq_right (not_le.mpr htheta), + ite_eq_right hnotEta, ite_eq_right hnotTau] + +/-- Exact global horizontal reflection of the literal five-piece path. -/ +theorem path_reflect_noHidden {s : ℝ} (hs : s ∈ Icc (0 : ℝ) T) : + Romik.path params (T - s) = + noHiddenHReflect (Romik.path params s) := by + by_cases h1 : s ≤ params.phi + · by_cases he : s = params.phi + · subst s + rw [show T - params.phi = tau by rfl, + path_eq_phase4_noHidden eta_lt_tau le_rfl, + path_eq_phase1_noHidden le_rfl] + exact (phase24_reflect_noHidden params.phi).trans + (congrArg noHiddenHReflect PartB.match12.symm) + · have hsphi : s < params.phi := lt_of_le_of_ne h1 he + have href : tau < T - s := by dsimp [tau]; linarith + rw [path_eq_phase5_noHidden href, path_eq_phase1_noHidden h1] + exact phase15_reflect_noHidden s + · have hphi : params.phi < s := lt_of_not_ge h1 + by_cases h2 : s ≤ params.theta + · by_cases he : s = params.theta + · subst s + rw [show T - params.theta = eta by rfl, + path_eq_phase3_noHidden theta_lt_eta le_rfl, + path_eq_phase2_noHidden phi_lt_theta le_rfl] + exact (phase3_reflect_noHidden params.theta).trans + (congrArg noHiddenHReflect PartB.match23.symm) + · have hstheta : s < params.theta := lt_of_le_of_ne h2 he + have hetaRef : eta < T - s := by dsimp [eta]; linarith + have htauRef : T - s ≤ tau := by dsimp [tau]; linarith + rw [path_eq_phase4_noHidden hetaRef htauRef, + path_eq_phase2_noHidden hphi h2] + exact phase24_reflect_noHidden s + · have htheta : params.theta < s := lt_of_not_ge h2 + by_cases h3 : s ≤ eta + · by_cases he : s = eta + · subst s + rw [show T - eta = params.theta by + dsimp [eta]; ring, + path_eq_phase2_noHidden phi_lt_theta le_rfl, + path_eq_phase3_noHidden theta_lt_eta le_rfl] + have h := congrArg noHiddenHReflect + (phase3_reflect_noHidden params.theta) + rw [noHiddenHReflect_involutive] at h + simpa [eta] using (PartB.match23.trans h.symm) + · have hseta : s < eta := lt_of_le_of_ne h3 he + have hthetaRef : params.theta < T - s := by + dsimp [eta] at hseta + linarith + have hetaRef : T - s ≤ eta := by dsimp [eta]; linarith + rw [path_eq_phase3_noHidden hthetaRef hetaRef, + path_eq_phase3_noHidden htheta h3] + exact phase3_reflect_noHidden s + · have hetaS : eta < s := lt_of_not_ge h3 + by_cases h4 : s ≤ tau + · by_cases he : s = tau + · subst s + rw [show T - tau = params.phi by + dsimp [tau]; ring, + path_eq_phase1_noHidden le_rfl, + path_eq_phase4_noHidden eta_lt_tau le_rfl] + have h := congrArg noHiddenHReflect + (phase24_reflect_noHidden params.phi) + rw [noHiddenHReflect_involutive] at h + simpa [tau] using (PartB.match12.trans h.symm) + · have hstau : s < tau := lt_of_le_of_ne h4 he + have hphiRef : params.phi < T - s := by + dsimp [tau] at hstau + linarith + have hthetaRef : T - s ≤ params.theta := by + dsimp [eta] at hetaS + linarith + rw [path_eq_phase2_noHidden hphiRef hthetaRef, + path_eq_phase4_noHidden hetaS h4] + exact phase42_reflect_noHidden s + · have htauS : tau < s := lt_of_not_ge h4 + have href0 : 0 ≤ T - s := by linarith [hs.2] + have hrefphi : T - s ≤ params.phi := by + dsimp [tau] at htauS + linarith + rw [path_eq_phase1_noHidden hrefphi, + path_eq_phase5_noHidden htauS] + exact phase51_reflect_noHidden s + +/-- Reflection transports the second no-hidden scalar to the first one. -/ +theorem VValue_eq_reflected_UValue {t r : ℝ} + (ht : t ∈ Icc (0 : ℝ) T) (hr : r ∈ Icc (0 : ℝ) T) : + Stage2.VValue t r = Stage2.UValue (T-r) (T-t) := by + rw [Stage2.VValue, Stage2.UValue, + path_reflect_noHidden hr, path_reflect_noHidden ht] + dsimp [dot, noHiddenHReflect, u, v, T] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + ring + +end Stage4 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Part C Stage 4: direct no-hidden-crossing closure + +The first inequality follows from concavity and the two endpoint values. The +second is its exact phase-derived horizontal reflection. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage4 + +open Set +open Stage2 + +/-- Concrete first no-hidden-crossing theorem. -/ +theorem noHiddenU_direct : NoHiddenCrossingU := by + intro r hr t ht + change 0 ≤ Stage2.UValue r t + have htPhys : t ∈ Icc params.phi T := + ⟨le_trans hr.1 ht.1, ht.2⟩ + have hconc := U_concave_on t htPhys + have hphi := U_phi_nonneg htPhys + have htt : Stage2.UValue t t = 0 := by + simp [Stage2.UValue, dot] + by_cases hrt : r = t + · subst r + exact le_of_eq htt.symm + · have hrtlt : r < t := lt_of_le_of_ne ht.1 hrt + have hphit : params.phi < t := lt_of_le_of_lt hr.1 hrtlt + let a : ℝ := (t-r) / (t-params.phi) + let b : ℝ := (r-params.phi) / (t-params.phi) + have ha : 0 ≤ a := by + dsimp [a] + exact div_nonneg (sub_nonneg.mpr ht.1) (sub_nonneg.mpr hphit.le) + have hb : 0 ≤ b := by + dsimp [b] + exact div_nonneg (sub_nonneg.mpr hr.1) (sub_nonneg.mpr hphit.le) + have hab : a + b = 1 := by + dsimp [a, b] + field_simp [sub_ne_zero.mpr (ne_of_gt hphit)] + ring + have hrcomb : a • params.phi + b • t = r := by + dsimp [a, b] + field_simp [sub_ne_zero.mpr (ne_of_gt hphit)] + ring + have hJ := hconc.2 + (show params.phi ∈ Icc params.phi t from ⟨le_rfl, hphit.le⟩) + (show t ∈ Icc params.phi t from ⟨hphit.le, le_rfl⟩) + ha hb hab + rw [hrcomb] at hJ + change a • Stage2.UValue params.phi t + b • Stage2.UValue t t ≤ + Stage2.UValue r t at hJ + rw [htt] at hJ + simp only [smul_eq_mul, mul_zero, add_zero] at hJ + nlinarith + +/-- Concrete reflected no-hidden-crossing theorem. -/ +theorem noHiddenV_direct : NoHiddenCrossingV := by + intro t ht r hr + change 0 ≤ Stage2.VValue t r + have htT : t ∈ Icc (0 : ℝ) T := + ⟨ht.1, le_trans ht.2 Stage2.tau_le_T⟩ + have hrT : r ∈ Icc (0 : ℝ) T := + ⟨le_trans ht.1 hr.1, le_trans hr.2 Stage2.tau_le_T⟩ + have hleft : T-r ∈ Icc params.phi T := by + constructor + · dsimp [tau] at hr + linarith [hr.2] + · linarith [hrT.1] + have hright : T-t ∈ Icc (T-r) T := by + constructor + · linarith [hr.1] + · linarith [ht.1] + have hU := noHiddenU_direct (T-r) hleft (T-t) hright + change 0 ≤ Stage2.UValue (T-r) (T-t) at hU + rw [← VValue_eq_reflected_UValue htT hrT] at hU + exact hU + +end Stage4 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part C / Stage4 / Niche Envelope Support +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage4 + +open Set + +private theorem phi_le_one_twentieth_diag : + params.phi ≤ (1 / 20 : ℝ) := by + have h := phi_bounds.2 + norm_num at h ⊢ + linarith + +private theorem a1_lower_diag : (6 / 5 : ℝ) ≤ params.a1 := by + have h := Romik.a1_lower_bound_of_mem_box params_mem + norm_num at h ⊢ + linarith + +private theorem a1_upper_diag : params.a1 ≤ (5 / 4 : ℝ) := by + have h := PartB.a1_contains.2 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at h ⊢ + linarith + +private theorem phase1_alpha_lower {s : ℝ} + (hs0 : 0 ≤ s) (hs20 : s ≤ (1 / 20 : ℝ)) : + (-1 / 8 : ℝ) ≤ (Romik.alphaBeta1 params s).1 := by + have hpi : s ≤ Real.pi := by + nlinarith [Real.pi_gt_three] + have hsin0 : 0 ≤ Real.sin s := + Real.sin_nonneg_of_nonneg_of_le_pi hs0 hpi + have hsinUpper := Real.sin_le hs0 + have hcosUpper := Real.cos_le_one s + have ha2 := Romik.a2_eq_neg_quarter_of_equations params_equations + have hmul : 2 * params.a1 * Real.sin s ≤ (1 / 8 : ℝ) := by + have h1 : 2 * params.a1 ≤ (5 / 2 : ℝ) := by + nlinarith [a1_upper_diag] + have h2 : Real.sin s ≤ (1 / 20 : ℝ) := + le_trans hsinUpper hs20 + nlinarith [mul_nonneg hsin0 (sub_nonneg.mpr h1), + mul_nonneg (sub_nonneg.mpr h2) (show 0 ≤ (5 / 2 : ℝ) by norm_num)] + dsimp [Romik.alphaBeta1] + rw [ha2] + nlinarith + +private theorem phase1_alpha_nonpos_diag {s : ℝ} + (hs0 : 0 ≤ s) (hs20 : s ≤ (1 / 20 : ℝ)) : + (Romik.alphaBeta1 params s).1 ≤ 0 := by + have hpi : s ≤ Real.pi := by + nlinarith [Real.pi_gt_three] + have hsin0 : 0 ≤ Real.sin s := + Real.sin_nonneg_of_nonneg_of_le_pi hs0 hpi + have hsinLower := Real.sin_ge_sub_cube hs0 + have hcosLower : 1 - s ^ 2 / 2 ≤ Real.cos s := + Real.one_sub_sq_div_two_le_cos + have hquad : 0 ≤ s * ((1 / 20 : ℝ) - s) := + mul_nonneg hs0 (sub_nonneg.mpr hs20) + have hcube : 0 ≤ s ^ 2 * ((1 / 20 : ℝ) - s) := + mul_nonneg (sq_nonneg s) (sub_nonneg.mpr hs20) + have hcoef : (12 / 5 : ℝ) ≤ 2 * params.a1 := by + nlinarith [a1_lower_diag] + have hmul : (12 / 5 : ℝ) * Real.sin s ≤ + 2 * params.a1 * Real.sin s := + mul_le_mul_of_nonneg_right hcoef hsin0 + have ha2 := Romik.a2_eq_neg_quarter_of_equations params_equations + dsimp [Romik.alphaBeta1] + rw [ha2] + nlinarith [hsinLower, hcosLower, hquad, hcube, hmul] + +private theorem phase1_beta_lower {s : ℝ} + (hs0 : 0 ≤ s) (hs20 : s ≤ (1 / 20 : ℝ)) : + (13 / 10 : ℝ) ≤ (Romik.alphaBeta1 params s).2 := by + have hpi : s ≤ Real.pi := by + nlinarith [Real.pi_gt_three] + have hsin0 : 0 ≤ Real.sin s := + Real.sin_nonneg_of_nonneg_of_le_pi hs0 hpi + have hsinUpper := Real.sin_le hs0 + have hcosLower : 1 - s ^ 2 / 2 ≤ Real.cos s := + Real.one_sub_sq_div_two_le_cos + have hcosCrude : (799 / 800 : ℝ) ≤ Real.cos s := by + nlinarith [hcosLower, sq_nonneg s, + mul_nonneg hs0 (sub_nonneg.mpr hs20)] + have hcos0 : 0 ≤ Real.cos s := by linarith + have hcoef : (12 / 5 : ℝ) ≤ 2 * params.a1 := by + nlinarith [a1_lower_diag] + have hmul : (12 / 5 : ℝ) * Real.cos s ≤ + 2 * params.a1 * Real.cos s := + mul_le_mul_of_nonneg_right hcoef hcos0 + have ha2 := Romik.a2_eq_neg_quarter_of_equations params_equations + dsimp [Romik.alphaBeta1] + rw [ha2] + nlinarith [hsinUpper, hmul] + +private theorem dot_rot_phase1_diag (s t : ℝ) : + dot (Romik.rot s (Romik.alphaBeta1 params s)) (u t + v t) = + (Romik.alphaBeta1 params s).1 * + (Real.cos (s - t) + Real.sin (s - t)) + + (Romik.alphaBeta1 params s).2 * + (Real.cos (s - t) - Real.sin (s - t)) := by + simp [dot, Romik.rot, u, v, Real.cos_sub, Real.sin_sub] + ring + +private theorem phase1_diag_deriv_nonneg {t s : ℝ} + (ht0 : 0 ≤ t) (hts : t ≤ s) (hsphi : s ≤ params.phi) : + 0 ≤ dot (Romik.rot s (Romik.alphaBeta1 params s)) (u t + v t) := by + have hs0 : 0 ≤ s := le_trans ht0 hts + have hs20 : s ≤ (1 / 20 : ℝ) := + le_trans hsphi phi_le_one_twentieth_diag + have hd0 : 0 ≤ s - t := sub_nonneg.mpr hts + have hd20 : s - t ≤ (1 / 20 : ℝ) := by linarith + have hdpi : s - t ≤ Real.pi := by nlinarith [Real.pi_gt_three] + have hsin0 : 0 ≤ Real.sin (s - t) := + Real.sin_nonneg_of_nonneg_of_le_pi hd0 hdpi + have hsinUpper := Real.sin_le hd0 + have hcosLower : 1 - (s - t) ^ 2 / 2 ≤ Real.cos (s - t) := + Real.one_sub_sq_div_two_le_cos + have hcosUpper := Real.cos_le_one (s - t) + have hdiff : (9 / 10 : ℝ) ≤ + Real.cos (s - t) - Real.sin (s - t) := by + nlinarith [hcosLower, hsinUpper, sq_nonneg (s - t), + mul_nonneg hd0 (sub_nonneg.mpr hd20)] + have hsum0 : 0 ≤ Real.cos (s - t) + Real.sin (s - t) := by + nlinarith + have hsumUpper : Real.cos (s - t) + Real.sin (s - t) ≤ (21 / 20 : ℝ) := by + nlinarith + have haLo := phase1_alpha_lower hs0 hs20 + have haHi := phase1_alpha_nonpos_diag hs0 hs20 + have hbLo := phase1_beta_lower hs0 hs20 + have haProd : (-21 / 160 : ℝ) ≤ + (Romik.alphaBeta1 params s).1 * + (Real.cos (s - t) + Real.sin (s - t)) := by + have hmul1 := mul_le_mul_of_nonpos_left hsumUpper haHi + have hmul2 := mul_le_mul_of_nonneg_right haLo + (show 0 ≤ (21 / 20 : ℝ) by norm_num) + nlinarith + have hbProd : (117 / 100 : ℝ) ≤ + (Romik.alphaBeta1 params s).2 * + (Real.cos (s - t) - Real.sin (s - t)) := by + have hdiff0 : 0 ≤ Real.cos (s - t) - Real.sin (s - t) := by linarith + have hb0 : 0 ≤ (Romik.alphaBeta1 params s).2 := by linarith + nlinarith [mul_nonneg + ((show 0 ≤ (Romik.alphaBeta1 params s).2 - 13 / 10 by linarith)) hdiff0, + mul_nonneg (show 0 ≤ (13 / 10 : ℝ) by norm_num) + (show 0 ≤ Real.cos (s - t) - Real.sin (s - t) - 9 / 10 by linarith)] + rw [dot_rot_phase1_diag] + linarith + +private theorem dot_path1_diag_hasDerivAt (t s : ℝ) : + HasDerivAt (fun r => dot (Romik.path1 params r) (u t + v t)) + (dot (Romik.rot s (Romik.alphaBeta1 params s)) (u t + v t)) s := by + have h := path1_hasDerivAt_public s + have h1 := HasDerivAt.const_mul (u t + v t).1 h.fst + have h2 := HasDerivAt.const_mul (u t + v t).2 h.snd + simpa [dot, mul_comm] using h1.fun_add h2 + +theorem early_endpoint_diagonal_nonneg {t : ℝ} + (ht : t ∈ Icc (0 : ℝ) params.phi) : + 0 ≤ dot (Romik.path params params.phi - Romik.path params t) (u t + v t) := by + have hmono : MonotoneOn + (fun s => dot (Romik.path1 params s) (u t + v t)) + (Icc t params.phi) := by + refine monotoneOn_of_hasDerivWithinAt_nonneg + (f' := fun s => dot (Romik.rot s (Romik.alphaBeta1 params s)) (u t + v t)) + (convex_Icc t params.phi) ?_ ?_ ?_ + · intro s hs + exact (dot_path1_diag_hasDerivAt t s).continuousAt.continuousWithinAt + · intro s hs + exact (dot_path1_diag_hasDerivAt t s).hasDerivWithinAt + · intro s hs + have hi : s ∈ Ioo t params.phi := by + simpa only [interior_Icc] using hs + exact phase1_diag_deriv_nonneg ht.1 hi.1.le hi.2.le + have hle := hmono + (show t ∈ Icc t params.phi from ⟨le_rfl, ht.2⟩) + (show params.phi ∈ Icc t params.phi from ⟨ht.2, le_rfl⟩) ht.2 + have hpathT : Romik.path params t = Romik.path1 params t := by + simp only [Romik.path, ite_eq_left ht.2] + have hpathPhi : Romik.path params params.phi = + Romik.path1 params params.phi := by + simp only [Romik.path, ite_eq_left le_rfl] + rw [hpathT, hpathPhi] + unfold dot at hle ⊢ + dsimp at hle ⊢ + linarith + +private def diagPhaseB4 (r : ℝ) : Point := + Stage2.phaseA4 r - u r + +private def diagPhaseB5 (r : ℝ) : Point := + Stage2.phaseA5 r - u r + +private theorem u_hasDerivAt_diag (r : ℝ) : HasDerivAt u (v r) r := + Stage2.u_hasDerivAt r + +private theorem diagPhaseB4_hasDerivAt (r : ℝ) : + HasDerivAt diagPhaseB4 ((params.d1 - r / 2 - 1) • v r) r := by + have h := (Stage2.A4_hasDerivAt_public r).fun_sub (u_hasDerivAt_diag r) + refine h.congr_deriv ?_ + apply Prod.ext <;> simp [v] <;> ring + +private theorem diagPhaseB5_hasDerivAt (r : ℝ) : + HasDerivAt diagPhaseB5 ((-(1 / 2 : ℝ)) • v r) r := by + have h := (Stage2.A5_hasDerivAt_public r).fun_sub (u_hasDerivAt_diag r) + refine h.congr_deriv ?_ + apply Prod.ext <;> simp [v] <;> ring + +private theorem diagPhaseB4_eq_B {r : ℝ} (hr : r ∈ Icc eta tau) : + diagPhaseB4 r = B r := by + rcases hr.1.eq_or_lt with h | h + · subst r + have hm : Romik.path3 params eta = Romik.path4 params eta := by + simpa [eta, T] using PartB.match34 + have hdiag : diagPhaseB4 eta = + Romik.path4 params eta + + (Romik.alphaBeta4 params eta).1 • v eta := by + apply Prod.ext <;> simp [diagPhaseB4, Stage2.phaseA4] + have hetaRaw : eta ≤ Real.pi / 2 - params.theta := by rfl + have hB : B eta = Romik.path3 params eta + + (Romik.alphaBeta3 params eta).1 • v eta := by + apply Prod.ext <;> + simp [B, alpha, alphaBetaAt, Romik.path, + not_le.mpr phi_lt_eta, not_le.mpr theta_lt_eta, hetaRaw] + calc + diagPhaseB4 eta = Romik.path4 params eta + + (Romik.alphaBeta4 params eta).1 • v eta := hdiag + _ = Romik.path3 params eta + + (Romik.alphaBeta3 params eta).1 • v eta := by + rw [hm, alphaBeta_match34_direct] + _ = B eta := hB.symm + · have hetaRaw : Real.pi / 2 - params.theta < r := by + simpa [eta, T] using h + have htauRaw : r ≤ Real.pi / 2 - params.phi := by + simpa [tau, T] using hr.2 + apply Prod.ext <;> + simp [diagPhaseB4, Stage2.phaseA4, B, alpha, alphaBetaAt, + Romik.path, not_le.mpr (lt_trans phi_lt_eta h), + not_le.mpr (lt_trans theta_lt_eta h), not_le.mpr hetaRaw, htauRaw, eta, tau, T] + +private theorem diagPhaseB5_eq_B {r : ℝ} (hr : r ∈ Icc tau T) : + diagPhaseB5 r = B r := by + rcases hr.1.eq_or_lt with h | h + · subst r + have hm : Romik.path4 params tau = Romik.path5 params tau := by + simpa [tau, T] using PartB.match45 + have hdiag : diagPhaseB5 tau = + Romik.path5 params tau + + (Romik.alphaBeta5 params tau).1 • v tau := by + apply Prod.ext <;> simp [diagPhaseB5, Stage2.phaseA5] + have htauRaw : tau ≤ Real.pi / 2 - params.phi := by rfl + have hetaRaw : ¬ tau ≤ Real.pi / 2 - params.theta := by + exact not_le.mpr (by simpa [eta, T] using eta_lt_tau) + have hB : B tau = Romik.path4 params tau + + (Romik.alphaBeta4 params tau).1 • v tau := by + apply Prod.ext <;> + simp [B, alpha, alphaBetaAt, Romik.path, + not_le.mpr (lt_trans phi_lt_eta eta_lt_tau), + not_le.mpr (lt_trans theta_lt_eta eta_lt_tau), + not_le.mpr eta_lt_tau, hetaRaw, htauRaw] + calc + diagPhaseB5 tau = Romik.path5 params tau + + (Romik.alphaBeta5 params tau).1 • v tau := hdiag + _ = Romik.path4 params tau + + (Romik.alphaBeta4 params tau).1 • v tau := by + rw [hm, alphaBeta_match45_direct] + _ = B tau := hB.symm + · have hetaRaw : Real.pi / 2 - params.theta < r := by + simpa [eta, T] using lt_trans eta_lt_tau h + have htauRaw : Real.pi / 2 - params.phi < r := by + simpa [tau, T] using h + apply Prod.ext <;> + simp [diagPhaseB5, Stage2.phaseA5, B, alpha, alphaBetaAt, + Romik.path, + not_le.mpr (lt_trans (lt_trans phi_lt_eta eta_lt_tau) h), + not_le.mpr (lt_trans (lt_trans theta_lt_eta eta_lt_tau) h), + not_le.mpr hetaRaw, not_le.mpr htauRaw, eta, tau, T] + +private theorem theta_upper_diag : params.theta ≤ (689 / 1000 : ℝ) := by + have h := theta_bounds.2 + norm_num at h ⊢ + linarith + +private theorem halfT_le_eta_sub_phi : T / 2 ≤ eta - params.phi := by + have hp : (157 / 50 : ℝ) < Real.pi := by + have h := Real.pi_gt_d2 + norm_num at h ⊢ + exact h + dsimp [eta, T] + nlinarith [theta_upper_diag, phi_le_one_twentieth_diag] + +private theorem d1_upper_diag : params.d1 ≤ (33 / 25 : ℝ) := by + have h := PartB.d1_contains.2 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at h ⊢ + linarith + +private theorem eta_lower_diag : (4 / 5 : ℝ) ≤ eta := by + dsimp [eta, T] + nlinarith [Real.pi_gt_three, theta_upper_diag] + +private theorem phaseB4_coeff_nonpos_diag {r : ℝ} (hr : eta ≤ r) : + params.d1 - r / 2 - 1 ≤ 0 := by + nlinarith [d1_upper_diag, eta_lower_diag] + +private theorem late_cos_sub_sin_nonpos {t r : ℝ} + (ht : t ∈ Icc (0 : ℝ) params.phi) (hr : r ∈ Icc eta T) : + Real.cos (r - t) - Real.sin (r - t) ≤ 0 := by + have hhalf : T / 2 ≤ r - t := by + nlinarith [halfT_le_eta_sub_phi, ht.2, hr.1] + have hdeltaT : r - t ≤ T := by linarith [hr.2, ht.1] + have hlo : -(Real.pi / 2) ≤ T - (r - t) := by + dsimp [T] at hdeltaT ⊢ + nlinarith [Real.pi_pos] + have hhi : r - t ≤ Real.pi / 2 := by simpa [T] using hdeltaT + have horder : T - (r - t) ≤ r - t := by linarith + have hs := Real.sin_le_sin_of_le_of_le_pi_div_two hlo hhi horder + have htrig : Real.sin (T - (r - t)) = Real.cos (r - t) := by + change Real.sin (Real.pi / 2 - (r - t)) = Real.cos (r - t) + exact Real.sin_pi_div_two_sub (r - t) + rw [htrig] at hs + linarith + +private theorem dot_fixed_hasDerivAt_diag + {f : ℝ → Point} {df w : Point} {r : ℝ} + (h : HasDerivAt f df r) : + HasDerivAt (fun s => dot (f s) w) (dot df w) r := by + have h1 := HasDerivAt.const_mul w.1 h.fst + have h2 := HasDerivAt.const_mul w.2 h.snd + simpa [dot, mul_comm] using h1.fun_add h2 + +private theorem phaseB4_diag_monotone (t : ℝ) + (ht : t ∈ Icc (0 : ℝ) params.phi) : + MonotoneOn (fun r => dot (diagPhaseB4 r) (u t + v t)) (Icc eta tau) := by + refine monotoneOn_of_hasDerivWithinAt_nonneg + (f' := fun r => dot ((params.d1 - r / 2 - 1) • v r) (u t + v t)) + (convex_Icc eta tau) ?_ ?_ ?_ + · intro r hr + exact (dot_fixed_hasDerivAt_diag (w := u t + v t) + (diagPhaseB4_hasDerivAt r)).continuousAt.continuousWithinAt + · intro r hr + exact (dot_fixed_hasDerivAt_diag (w := u t + v t) + (diagPhaseB4_hasDerivAt r)).hasDerivWithinAt + · intro r hr + have hi : r ∈ Ioo eta tau := by simpa only [interior_Icc] using hr + have hcoef := phaseB4_coeff_nonpos_diag hi.1.le + have htrig := late_cos_sub_sin_nonpos ht + ⟨hi.1.le, le_trans hi.2.le tau_lt_T.le⟩ + have heq : + dot ((params.d1 - r / 2 - 1) • v r) (u t + v t) = + (params.d1 - r / 2 - 1) * + (Real.cos (r - t) - Real.sin (r - t)) := by + simp [dot, u, v, Real.cos_sub, Real.sin_sub] + ring + rw [heq] + exact mul_nonneg_of_nonpos_of_nonpos hcoef htrig + +private theorem phaseB5_diag_monotone (t : ℝ) + (ht : t ∈ Icc (0 : ℝ) params.phi) : + MonotoneOn (fun r => dot (diagPhaseB5 r) (u t + v t)) (Icc tau T) := by + refine monotoneOn_of_hasDerivWithinAt_nonneg + (f' := fun r => dot ((-(1 / 2 : ℝ)) • v r) (u t + v t)) + (convex_Icc tau T) ?_ ?_ ?_ + · intro r hr + exact (dot_fixed_hasDerivAt_diag (w := u t + v t) + (diagPhaseB5_hasDerivAt r)).continuousAt.continuousWithinAt + · intro r hr + exact (dot_fixed_hasDerivAt_diag (w := u t + v t) + (diagPhaseB5_hasDerivAt r)).hasDerivWithinAt + · intro r hr + have hi : r ∈ Ioo tau T := by simpa only [interior_Icc] using hr + have htrig := late_cos_sub_sin_nonpos ht + ⟨le_trans eta_lt_tau.le hi.1.le, hi.2.le⟩ + have heq : dot ((-(1 / 2 : ℝ)) • v r) (u t + v t) = + (-(1 / 2 : ℝ)) * + (Real.cos (r - t) - Real.sin (r - t)) := by + simp [dot, u, v, Real.cos_sub, Real.sin_sub] + ring + rw [heq] + exact mul_nonneg_of_nonpos_of_nonpos (by norm_num) htrig + +private theorem B_diag_mono_from_eta {t r : ℝ} + (ht : t ∈ Icc (0 : ℝ) params.phi) (hr : r ∈ Icc eta T) : + dot (B eta) (u t + v t) ≤ dot (B r) (u t + v t) := by + by_cases hrtau : r ≤ tau + · have hm := phaseB4_diag_monotone t ht + have heta : eta ∈ Icc eta tau := ⟨le_rfl, eta_lt_tau.le⟩ + have hrr : r ∈ Icc eta tau := ⟨hr.1, hrtau⟩ + have h := hm heta hrr hr.1 + change dot (diagPhaseB4 eta) (u t + v t) ≤ + dot (diagPhaseB4 r) (u t + v t) at h + rw [diagPhaseB4_eq_B heta, diagPhaseB4_eq_B hrr] at h + exact h + · have htaur : tau ≤ r := le_of_lt (lt_of_not_ge hrtau) + have heta : eta ∈ Icc eta tau := ⟨le_rfl, eta_lt_tau.le⟩ + have htau4 : tau ∈ Icc eta tau := ⟨eta_lt_tau.le, le_rfl⟩ + have htau5 : tau ∈ Icc tau T := ⟨le_rfl, tau_lt_T.le⟩ + have hrr : r ∈ Icc tau T := ⟨htaur, hr.2⟩ + have h4 := phaseB4_diag_monotone t ht heta htau4 eta_lt_tau.le + have h5 := phaseB5_diag_monotone t ht htau5 hrr htaur + change dot (diagPhaseB4 eta) (u t + v t) ≤ + dot (diagPhaseB4 tau) (u t + v t) at h4 + change dot (diagPhaseB5 tau) (u t + v t) ≤ + dot (diagPhaseB5 r) (u t + v t) at h5 + rw [diagPhaseB4_eq_B heta, diagPhaseB4_eq_B htau4] at h4 + rw [diagPhaseB5_eq_B htau5, diagPhaseB5_eq_B hrr] at h5 + exact le_trans h4 h5 + +theorem B_early_diagonal_nonneg {t r : ℝ} + (ht : t ∈ Icc (0 : ℝ) params.phi) (hr : r ∈ Icc eta T) : + 0 ≤ dot (B r - Romik.path params t) (u t + v t) := by + have hstart := early_endpoint_diagonal_nonneg ht + have hmono := B_diag_mono_from_eta ht hr + rw [B_eta_eq_path_phi] at hmono + unfold dot at hstart hmono ⊢ + dsimp at hstart hmono ⊢ + linarith + +theorem B_early_boundary_outside {t r : ℝ} + (ht : t ∈ Icc (0 : ℝ) params.phi) (hr : r ∈ Icc eta T) : + 0 ≤ dot (B r - Romik.path params t) (u t) ∨ + 0 ≤ dot (B r - Romik.path params t) (v t) := by + have hdiag := B_early_diagonal_nonneg ht hr + by_contra h + push Not at h + have hadd : + dot (B r - Romik.path params t) (u t + v t) = + dot (B r - Romik.path params t) (u t) + + dot (B r - Romik.path params t) (v t) := by + unfold dot + dsimp [u, v] + ring + rw [hadd] at hdiag + linarith + +private theorem T_le_pi_diag : T ≤ Real.pi := by + dsimp [T] + nlinarith [Real.pi_pos] + +private theorem contact_u_mono_after + {F : ℝ → Point} {c : ℝ → ℝ} {a b t : ℝ} + (hder : ∀ q, HasDerivAt F ((c q) • v q) q) + (hc : ∀ q ∈ Ioo a b, c q ≤ 0) + (ht0 : 0 ≤ t) (hta : t ≤ a) (hbT : b ≤ T) : + MonotoneOn (fun q => dot (F q) (u t)) (Icc a b) := by + refine monotoneOn_of_hasDerivWithinAt_nonneg + (f' := fun q => dot ((c q) • v q) (u t)) + (convex_Icc a b) ?_ ?_ ?_ + · intro q hq + exact (dot_fixed_hasDerivAt_diag (w := u t) (hder q)).continuousAt.continuousWithinAt + · intro q hq + exact (dot_fixed_hasDerivAt_diag (w := u t) (hder q)).hasDerivWithinAt + · intro q hq + have hi : q ∈ Ioo a b := by simpa only [interior_Icc] using hq + have hsin : Real.sin (t - q) ≤ 0 := by + apply Real.sin_nonpos_of_nonpos_of_neg_pi_le + · linarith [hta, hi.1] + · have hqT : q ≤ T := le_trans hi.2.le hbT + have : q - t ≤ T := by linarith + nlinarith [T_le_pi_diag] + have heq : dot ((c q) • v q) (u t) = c q * Real.sin (t - q) := by + simp [dot, u, v, Real.sin_sub] + ring + rw [heq] + exact mul_nonneg_of_nonpos_of_nonpos (hc q hi) hsin + +private theorem contact_u_anti_before + {F : ℝ → Point} {c : ℝ → ℝ} {a b t : ℝ} + (hder : ∀ q, HasDerivAt F ((c q) • v q) q) + (hc : ∀ q ∈ Ioo a b, c q ≤ 0) + (ha0 : 0 ≤ a) (hbt : b ≤ t) (htT : t ≤ T) : + AntitoneOn (fun q => dot (F q) (u t)) (Icc a b) := by + refine antitoneOn_of_hasDerivWithinAt_nonpos + (f' := fun q => dot ((c q) • v q) (u t)) + (convex_Icc a b) ?_ ?_ ?_ + · intro q hq + exact (dot_fixed_hasDerivAt_diag (w := u t) (hder q)).continuousAt.continuousWithinAt + · intro q hq + exact (dot_fixed_hasDerivAt_diag (w := u t) (hder q)).hasDerivWithinAt + · intro q hq + have hi : q ∈ Ioo a b := by simpa only [interior_Icc] using hq + have hsin : 0 ≤ Real.sin (t - q) := by + apply Real.sin_nonneg_of_nonneg_of_le_pi + · linarith [hi.2, hbt] + · have hq0 : 0 ≤ q := le_trans ha0 hi.1.le + have : t - q ≤ T := by linarith + exact le_trans this T_le_pi_diag + have heq : dot ((c q) • v q) (u t) = c q * Real.sin (t - q) := by + simp [dot, u, v, Real.sin_sub] + ring + rw [heq] + exact mul_nonpos_of_nonpos_of_nonneg (hc q hi) hsin + +private theorem phase4_u_mono_after {a b t : ℝ} + (ha : eta ≤ a) (hb : b ≤ tau) (ht0 : 0 ≤ t) (hta : t ≤ a) : + MonotoneOn (fun q => dot (diagPhaseB4 q) (u t)) (Icc a b) := by + exact contact_u_mono_after + (F := diagPhaseB4) (c := fun q => params.d1 - q / 2 - 1) + diagPhaseB4_hasDerivAt + (by intro q hq; exact phaseB4_coeff_nonpos_diag (le_trans ha hq.1.le)) + ht0 hta (le_trans hb tau_lt_T.le) + +private theorem phase4_u_anti_before {a b t : ℝ} + (ha : eta ≤ a) (hbt : b ≤ t) (htT : t ≤ T) : + AntitoneOn (fun q => dot (diagPhaseB4 q) (u t)) (Icc a b) := by + exact contact_u_anti_before + (F := diagPhaseB4) (c := fun q => params.d1 - q / 2 - 1) + diagPhaseB4_hasDerivAt + (by intro q hq; exact phaseB4_coeff_nonpos_diag (le_trans ha hq.1.le)) + (le_trans (by norm_num : (0 : ℝ) ≤ 4 / 5) + (le_trans eta_lower_diag ha)) hbt htT + +private theorem phase5_u_mono_after {a b t : ℝ} + (hb : b ≤ T) (ht0 : 0 ≤ t) (hta : t ≤ a) : + MonotoneOn (fun q => dot (diagPhaseB5 q) (u t)) (Icc a b) := by + exact contact_u_mono_after + (F := diagPhaseB5) (c := fun _ => (-(1 / 2 : ℝ))) + diagPhaseB5_hasDerivAt (by intro q hq; norm_num) + ht0 hta hb + +private theorem phase5_u_anti_before {a b t : ℝ} + (ha : tau ≤ a) (hbt : b ≤ t) (htT : t ≤ T) : + AntitoneOn (fun q => dot (diagPhaseB5 q) (u t)) (Icc a b) := by + exact contact_u_anti_before + (F := diagPhaseB5) (c := fun _ => (-(1 / 2 : ℝ))) + diagPhaseB5_hasDerivAt (by intro q hq; norm_num) + (le_trans (by norm_num : (0 : ℝ) ≤ 4 / 5) + (le_trans eta_lower_diag (le_trans eta_lt_tau.le ha))) hbt htT + +private theorem B_u_ge_eta {t r : ℝ} + (ht : t ∈ Icc (0 : ℝ) eta) (hr : r ∈ Icc eta T) : + dot (B eta) (u t) ≤ dot (B r) (u t) := by + by_cases hrtau : r ≤ tau + · have heta : eta ∈ Icc eta r := ⟨le_rfl, hr.1⟩ + have hrr : r ∈ Icc eta r := ⟨hr.1, le_rfl⟩ + have hm := phase4_u_mono_after (a := eta) (b := r) (t := t) + le_rfl hrtau ht.1 ht.2 + have h := hm heta hrr hr.1 + change dot (diagPhaseB4 eta) (u t) ≤ dot (diagPhaseB4 r) (u t) at h + rw [diagPhaseB4_eq_B ⟨le_rfl, eta_lt_tau.le⟩, + diagPhaseB4_eq_B ⟨hr.1, hrtau⟩] at h + exact h + · have htaur : tau ≤ r := le_of_lt (lt_of_not_ge hrtau) + have heta4 : eta ∈ Icc eta tau := ⟨le_rfl, eta_lt_tau.le⟩ + have htau4 : tau ∈ Icc eta tau := ⟨eta_lt_tau.le, le_rfl⟩ + have htau5 : tau ∈ Icc tau r := ⟨le_rfl, htaur⟩ + have hrr5 : r ∈ Icc tau r := ⟨htaur, le_rfl⟩ + have h4 := (phase4_u_mono_after (a := eta) (b := tau) (t := t) + le_rfl le_rfl ht.1 ht.2) + heta4 htau4 eta_lt_tau.le + have h5 := (phase5_u_mono_after (a := tau) (b := r) (t := t) + hr.2 ht.1 (le_trans ht.2 eta_lt_tau.le)) + htau5 hrr5 htaur + change dot (diagPhaseB4 eta) (u t) ≤ dot (diagPhaseB4 tau) (u t) at h4 + change dot (diagPhaseB5 tau) (u t) ≤ dot (diagPhaseB5 r) (u t) at h5 + rw [diagPhaseB4_eq_B heta4, diagPhaseB4_eq_B htau4] at h4 + rw [diagPhaseB5_eq_B ⟨le_rfl, tau_lt_T.le⟩, + diagPhaseB5_eq_B ⟨htaur, hr.2⟩] at h5 + exact le_trans h4 h5 + +private theorem B_u_global_min {t r : ℝ} + (ht : t ∈ Icc eta T) (hr : r ∈ Icc eta T) : + dot (B t) (u t) ≤ dot (B r) (u t) := by + have ht0 : 0 ≤ t := by nlinarith [eta_lower_diag, ht.1] + by_cases httau : t ≤ tau + · have ht4 : t ∈ Icc eta tau := ⟨ht.1, httau⟩ + by_cases hrtau : r ≤ tau + · have hr4 : r ∈ Icc eta tau := ⟨hr.1, hrtau⟩ + by_cases hrt : r ≤ t + · have hrr : r ∈ Icc r t := ⟨le_rfl, hrt⟩ + have htt : t ∈ Icc r t := ⟨hrt, le_rfl⟩ + have ha := phase4_u_anti_before (a := r) (b := t) (t := t) + hr.1 le_rfl ht.2 + have h := ha hrr htt hrt + change dot (diagPhaseB4 t) (u t) ≤ dot (diagPhaseB4 r) (u t) at h + rw [diagPhaseB4_eq_B hr4, diagPhaseB4_eq_B ht4] at h + exact h + · have htr : t ≤ r := le_of_lt (lt_of_not_ge hrt) + have htt : t ∈ Icc t r := ⟨le_rfl, htr⟩ + have hrr : r ∈ Icc t r := ⟨htr, le_rfl⟩ + have hm := phase4_u_mono_after (a := t) (b := r) (t := t) + ht.1 hrtau ht0 le_rfl + have h := hm htt hrr htr + change dot (diagPhaseB4 t) (u t) ≤ dot (diagPhaseB4 r) (u t) at h + rw [diagPhaseB4_eq_B ht4, diagPhaseB4_eq_B hr4] at h + exact h + · have htaur : tau ≤ r := le_of_lt (lt_of_not_ge hrtau) + have htt4 : t ∈ Icc t tau := ⟨le_rfl, httau⟩ + have htau4' : tau ∈ Icc t tau := ⟨httau, le_rfl⟩ + have h4 := (phase4_u_mono_after (a := t) (b := tau) (t := t) + ht.1 le_rfl ht0 le_rfl) + htt4 htau4' httau + have htau5' : tau ∈ Icc tau r := ⟨le_rfl, htaur⟩ + have hrr5 : r ∈ Icc tau r := ⟨htaur, le_rfl⟩ + have h5 := (phase5_u_mono_after (a := tau) (b := r) (t := t) + hr.2 ht0 httau) + htau5' hrr5 htaur + change dot (diagPhaseB4 t) (u t) ≤ dot (diagPhaseB4 tau) (u t) at h4 + change dot (diagPhaseB5 tau) (u t) ≤ dot (diagPhaseB5 r) (u t) at h5 + rw [diagPhaseB4_eq_B ht4, + diagPhaseB4_eq_B ⟨eta_lt_tau.le, le_rfl⟩] at h4 + rw [diagPhaseB5_eq_B ⟨le_rfl, tau_lt_T.le⟩, + diagPhaseB5_eq_B ⟨htaur, hr.2⟩] at h5 + exact le_trans h4 h5 + · have htaut : tau ≤ t := le_of_lt (lt_of_not_ge httau) + have ht5 : t ∈ Icc tau T := ⟨htaut, ht.2⟩ + by_cases hrtau : r ≤ tau + · have hr4 : r ∈ Icc eta tau := ⟨hr.1, hrtau⟩ + have hrr4 : r ∈ Icc r tau := ⟨le_rfl, hrtau⟩ + have htau4' : tau ∈ Icc r tau := ⟨hrtau, le_rfl⟩ + have h4 := (phase4_u_anti_before (a := r) (b := tau) (t := t) + hr.1 htaut ht.2) hrr4 htau4' hrtau + have htau5' : tau ∈ Icc tau t := ⟨le_rfl, htaut⟩ + have htt5 : t ∈ Icc tau t := ⟨htaut, le_rfl⟩ + have h5 := (phase5_u_anti_before (a := tau) (b := t) (t := t) + le_rfl le_rfl ht.2) htau5' htt5 htaut + change dot (diagPhaseB4 tau) (u t) ≤ dot (diagPhaseB4 r) (u t) at h4 + change dot (diagPhaseB5 t) (u t) ≤ dot (diagPhaseB5 tau) (u t) at h5 + rw [diagPhaseB4_eq_B hr4, + diagPhaseB4_eq_B ⟨eta_lt_tau.le, le_rfl⟩] at h4 + rw [diagPhaseB5_eq_B ⟨le_rfl, tau_lt_T.le⟩, + diagPhaseB5_eq_B ht5] at h5 + exact le_trans h5 h4 + · have htaur : tau ≤ r := le_of_lt (lt_of_not_ge hrtau) + have hr5 : r ∈ Icc tau T := ⟨htaur, hr.2⟩ + by_cases hrt : r ≤ t + · have hrr : r ∈ Icc r t := ⟨le_rfl, hrt⟩ + have htt : t ∈ Icc r t := ⟨hrt, le_rfl⟩ + have ha := phase5_u_anti_before (a := r) (b := t) (t := t) + htaur le_rfl ht.2 + have h := ha hrr htt hrt + change dot (diagPhaseB5 t) (u t) ≤ dot (diagPhaseB5 r) (u t) at h + rw [diagPhaseB5_eq_B hr5, diagPhaseB5_eq_B ht5] at h + exact h + · have htr : t ≤ r := le_of_lt (lt_of_not_ge hrt) + have htt : t ∈ Icc t r := ⟨le_rfl, htr⟩ + have hrr : r ∈ Icc t r := ⟨htr, le_rfl⟩ + have hm := phase5_u_mono_after (a := t) (b := r) (t := t) + hr.2 ht0 le_rfl + have h := hm htt hrr htr + change dot (diagPhaseB5 t) (u t) ≤ dot (diagPhaseB5 r) (u t) at h + rw [diagPhaseB5_eq_B ht5, diagPhaseB5_eq_B hr5] at h + exact h + +theorem B_late_u_nonneg {t r : ℝ} + (ht : t ∈ Icc params.phi T) (hr : r ∈ Icc eta T) : + 0 ≤ dot (B r - Romik.path params t) (u t) := by + by_cases hteta : t ≤ eta + · have hstart := U_phi_nonneg ht + have hmono := B_u_ge_eta + (show t ∈ Icc (0 : ℝ) eta from ⟨le_trans phi_pos.le ht.1, hteta⟩) hr + rw [B_eta_eq_path_phi] at hmono + unfold Stage2.UValue at hstart + unfold dot at hstart hmono ⊢ + dsimp at hstart hmono ⊢ + linarith + · have heta : eta ≤ t := le_of_lt (lt_of_not_ge hteta) + have hmin := B_u_global_min (show t ∈ Icc eta T from ⟨heta, ht.2⟩) hr + have hcontact := B_inner_u_identity t + unfold dot at hmin hcontact ⊢ + dsimp at hmin hcontact ⊢ + linarith + +theorem B_boundary_outside {t r : ℝ} + (ht : t ∈ Ioo (0 : ℝ) T) (hr : r ∈ Icc eta T) : + 0 ≤ dot (B r - Romik.path params t) (u t) ∨ + 0 ≤ dot (B r - Romik.path params t) (v t) := by + by_cases htphi : t ≤ params.phi + · exact B_early_boundary_outside ⟨ht.1.le, htphi⟩ hr + · exact Or.inl (B_late_u_nonneg + ⟨le_of_lt (lt_of_not_ge htphi), ht.2.le⟩ hr) + +private theorem phase1_beta_upper {s : ℝ} + (hs0 : 0 ≤ s) (hs20 : s ≤ (1 / 20 : ℝ)) : + (Romik.alphaBeta1 params s).2 ≤ (3 / 2 : ℝ) := by + have hpi : s ≤ Real.pi := by nlinarith [Real.pi_gt_three] + have hsin0 : 0 ≤ Real.sin s := + Real.sin_nonneg_of_nonneg_of_le_pi hs0 hpi + have hcosUpper := Real.cos_le_one s + have hcos0 : 0 ≤ Real.cos s := by + have hlow := Real.one_sub_sq_div_two_le_cos (x := s) + nlinarith [hlow, sq_nonneg s, mul_nonneg hs0 (sub_nonneg.mpr hs20)] + have ha2 := Romik.a2_eq_neg_quarter_of_equations params_equations + have hmul : 2 * params.a1 * Real.cos s ≤ (5 / 2 : ℝ) := by + have hc := mul_le_mul_of_nonneg_left hcosUpper + (show 0 ≤ 2 * params.a1 by nlinarith [a1_lower_diag]) + have ha : 2 * params.a1 ≤ (5 / 2 : ℝ) := by nlinarith [a1_upper_diag] + nlinarith + dsimp [Romik.alphaBeta1] + rw [ha2] + nlinarith + +private theorem path1_fst_antitone : + AntitoneOn (fun s => (Romik.path1 params s).1) + (Icc (0 : ℝ) params.phi) := by + refine antitoneOn_of_hasDerivWithinAt_nonpos + (f' := fun s => (Romik.rot s (Romik.alphaBeta1 params s)).1) + (convex_Icc (0 : ℝ) params.phi) ?_ ?_ ?_ + · intro s hs + have h := dot_fixed_hasDerivAt_diag (w := ((1 : ℝ), 0)) + (path1_hasDerivAt_public s) + simpa [dot] using h.continuousAt.continuousWithinAt + · intro s hs + have h := dot_fixed_hasDerivAt_diag (w := ((1 : ℝ), 0)) + (path1_hasDerivAt_public s) + simpa [dot] using h.hasDerivWithinAt + · intro s hs + have hi : s ∈ Ioo (0 : ℝ) params.phi := by + simpa only [interior_Icc] using hs + have hs20 := le_trans hi.2.le phi_le_one_twentieth_diag + have ha := phase1_alpha_nonpos_diag hi.1.le hs20 + have hb := phase1_beta_lower hi.1.le hs20 + have hsin : 0 ≤ Real.sin s := by + exact Real.sin_nonneg_of_nonneg_of_le_pi hi.1.le + (by nlinarith [Real.pi_gt_three, hs20]) + have hcos : 0 ≤ Real.cos s := by + have hlow := Real.one_sub_sq_div_two_le_cos (x := s) + nlinarith [hlow, sq_nonneg s, + mul_nonneg hi.1.le (sub_nonneg.mpr hs20)] + dsimp [Romik.rot] + nlinarith [mul_nonpos_of_nonpos_of_nonneg ha hcos, + mul_nonneg (show 0 ≤ (Romik.alphaBeta1 params s).2 by linarith) hsin] + +private theorem path1_snd_slope_upper : + AntitoneOn (fun s => (Romik.path1 params s).2 - (3 / 2 : ℝ) * s) + (Icc (0 : ℝ) params.phi) := by + refine antitoneOn_of_hasDerivWithinAt_nonpos + (f' := fun s => (Romik.rot s (Romik.alphaBeta1 params s)).2 - 3 / 2) + (convex_Icc (0 : ℝ) params.phi) ?_ ?_ ?_ + · intro s hs + have hp := dot_fixed_hasDerivAt_diag (w := ((0 : ℝ), 1)) + (path1_hasDerivAt_public s) + have h := hp.fun_sub + (HasDerivAt.const_mul (3 / 2 : ℝ) (hasDerivAt_id s)) + simpa [dot] using h.continuousAt.continuousWithinAt + · intro s hs + have hp := dot_fixed_hasDerivAt_diag (w := ((0 : ℝ), 1)) + (path1_hasDerivAt_public s) + have h := hp.fun_sub + (HasDerivAt.const_mul (3 / 2 : ℝ) (hasDerivAt_id s)) + simpa [dot] using h.hasDerivWithinAt + · intro s hs + have hi : s ∈ Ioo (0 : ℝ) params.phi := by + simpa only [interior_Icc] using hs + have hs20 := le_trans hi.2.le phi_le_one_twentieth_diag + have ha := phase1_alpha_nonpos_diag hi.1.le hs20 + have hbLo := phase1_beta_lower hi.1.le hs20 + have hbHi := phase1_beta_upper hi.1.le hs20 + have hsin : 0 ≤ Real.sin s := by + exact Real.sin_nonneg_of_nonneg_of_le_pi hi.1.le + (by nlinarith [Real.pi_gt_three, hs20]) + have hcos0 : 0 ≤ Real.cos s := by + have hlow := Real.one_sub_sq_div_two_le_cos (x := s) + nlinarith [hlow, sq_nonneg s, + mul_nonneg hi.1.le (sub_nonneg.mpr hs20)] + have hcos1 := Real.cos_le_one s + dsimp [Romik.rot] + have haSin := mul_nonpos_of_nonpos_of_nonneg ha hsin + have hbCos : (Romik.alphaBeta1 params s).2 * Real.cos s ≤ 3 / 2 := by + have h1 := mul_le_mul_of_nonneg_right hbHi hcos0 + have h2 := mul_le_mul_of_nonneg_left hcos1 + (show 0 ≤ (3 / 2 : ℝ) by norm_num) + nlinarith + nlinarith + +private theorem phase1_path_x_nonpos {t : ℝ} + (ht : t ∈ Icc (0 : ℝ) params.phi) : + (Romik.path params t).1 ≤ 0 := by + have h0 : (0 : ℝ) ∈ Icc (0 : ℝ) params.phi := ⟨le_rfl, phi_pos.le⟩ + have h := path1_fst_antitone h0 ht ht.1 + have hp0 := congrArg Prod.fst pathZero + have hpt : Romik.path params t = Romik.path1 params t := by + simp [Romik.path, ht.2] + have hzero : Romik.path params 0 = Romik.path1 params 0 := by + simp [Romik.path, phi_pos.le] + change (Romik.path1 params t).1 ≤ (Romik.path1 params 0).1 at h + rw [← congrArg Prod.fst hzero, ← congrArg Prod.fst hpt] at h + simpa [hp0] using h + +private theorem phase1_path_y_upper {t : ℝ} + (ht : t ∈ Icc (0 : ℝ) params.phi) : + (Romik.path params t).2 ≤ (3 / 40 : ℝ) := by + have h0 : (0 : ℝ) ∈ Icc (0 : ℝ) params.phi := ⟨le_rfl, phi_pos.le⟩ + have h := path1_snd_slope_upper h0 ht ht.1 + have hp0 := congrArg Prod.snd pathZero + have hpt : Romik.path params t = Romik.path1 params t := by + simp [Romik.path, ht.2] + have hzero : Romik.path params 0 = Romik.path1 params 0 := by + simp [Romik.path, phi_pos.le] + change (Romik.path1 params t).2 - 3 / 2 * t ≤ + (Romik.path1 params 0).2 - 3 / 2 * 0 at h + rw [← congrArg Prod.snd hzero, ← congrArg Prod.snd hpt] at h + nlinarith [phi_le_one_twentieth_diag, ht.2, hp0] + +private theorem B_T_x_formula : (B T).1 = params.k51 + params.e1 := by + have hetaRaw : ¬ T ≤ Real.pi / 2 - params.theta := by + exact not_le.mpr (by simpa [eta, T] using eta_lt_T) + have htauRaw : ¬ T ≤ Real.pi / 2 - params.phi := by + exact not_le.mpr (by simpa [tau, T] using tau_lt_T) + have hpath : Romik.path params T = Romik.path5 params T := by + simp only [Romik.path, ite_eq_right (not_le.mpr phi_lt_T), + ite_eq_right (not_le.mpr theta_lt_T), ite_eq_right hetaRaw, ite_eq_right htauRaw] + have halpha : alpha T = (Romik.alphaBeta5 params T).1 := by + simp only [alpha, alphaBetaAt, ite_eq_right (not_le.mpr phi_lt_T), + ite_eq_right (not_le.mpr theta_lt_T), ite_eq_right (not_le.mpr eta_lt_T), + ite_eq_right (not_le.mpr tau_lt_T)] + rw [B, hpath, halpha] + simp [Romik.path5, Romik.alphaBeta5, Romik.rot, Romik.addK, + v, T] + ring + +private theorem B_T_x_lower : (19 / 100 : ℝ) ≤ (B T).1 := by + have hk := PartB.k51_contains.1 + have he := PartB.e1_contains.1 + rw [B_T_x_formula] + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at hk he ⊢ + linarith + +theorem B_T_u_nonneg_early {t : ℝ} + (ht : t ∈ Icc (0 : ℝ) params.phi) : + 0 ≤ dot (B T - Romik.path params t) (u t) := by + have hx := phase1_path_x_nonpos ht + have hy := phase1_path_y_upper ht + have hBTx := B_T_x_lower + have hBTy := B_T_y_zero + have ht20 := le_trans ht.2 phi_le_one_twentieth_diag + have hsin0 : 0 ≤ Real.sin t := Real.sin_nonneg_of_nonneg_of_le_pi + ht.1 (by nlinarith [Real.pi_gt_three, ht20]) + have hsin1 := Real.sin_le ht.1 + have hcosLower : (799 / 800 : ℝ) ≤ Real.cos t := by + have h := Real.one_sub_sq_div_two_le_cos (x := t) + nlinarith [h, sq_nonneg t, mul_nonneg ht.1 (sub_nonneg.mpr ht20)] + have hcos0 : 0 ≤ Real.cos t := by linarith + have hdx : (19 / 100 : ℝ) ≤ (B T).1 - (Romik.path params t).1 := by + linarith + have hdxCos : (19 / 100 : ℝ) * (799 / 800) ≤ + ((B T).1 - (Romik.path params t).1) * Real.cos t := by + have h1 := mul_le_mul_of_nonneg_right hdx hcos0 + have h2 := mul_le_mul_of_nonneg_left hcosLower + (show 0 ≤ (19 / 100 : ℝ) by norm_num) + exact le_trans h2 h1 + have hySin : (Romik.path params t).2 * Real.sin t ≤ + (3 / 40 : ℝ) * (1 / 20) := by + have h1 := mul_le_mul_of_nonneg_right hy hsin0 + have h2 : (3 / 40 : ℝ) * Real.sin t ≤ (3 / 40) * (1 / 20) := by + apply mul_le_mul_of_nonneg_left + · exact le_trans hsin1 ht20 + · norm_num + exact le_trans h1 h2 + unfold dot + dsimp [u] + rw [hBTy] + nlinarith + +theorem B_T_u_nonneg {t : ℝ} (ht : t ∈ Ioo (0 : ℝ) T) : + 0 ≤ dot (B T - Romik.path params t) (u t) := by + by_cases htphi : t ≤ params.phi + · exact B_T_u_nonneg_early ⟨ht.1.le, htphi⟩ + · exact B_late_u_nonneg + ⟨le_of_lt (lt_of_not_ge htphi), ht.2.le⟩ + ⟨eta_lt_T.le, le_rfl⟩ + +/-! ## Exact reflected forms + +Only the early half of the coefficient reflection is needed here. Its image +under `r ↦ T-r` is exactly the late `B` interval. Keeping the endpoint cases +explicit avoids relying on definitional reduction across the four switching +equalities of `alphaBetaAt`. +-/ + +private theorem alpha_reflect_beta_early {r : ℝ} + (hr : r ∈ Icc (0 : ℝ) params.theta) : + alpha (T - r) = -beta r := by + by_cases hrphi : r < params.phi + · have hsphi : ¬ T - r ≤ params.phi := by + have hphiTau := lt_trans phi_lt_eta eta_lt_tau + exact not_le.mpr (by + dsimp [T, tau] at hphiTau ⊢ + nlinarith [hrphi]) + have hstheta : ¬ T - r ≤ params.theta := by + exact not_le.mpr (lt_trans theta_lt_tau (by dsimp [tau]; linarith)) + have hseta : ¬ T - r ≤ eta := by + exact not_le.mpr (by dsimp [eta]; linarith [hrphi, phi_lt_theta]) + have hstau : ¬ T - r ≤ tau := by + exact not_le.mpr (by dsimp [tau]; linarith) + have href := congrArg Prod.fst (alphaBeta5_reflect1_direct r) + simpa [alpha, beta, alphaBetaAt, noHiddenReflAB, hrphi.le, + hsphi, hstheta, hseta, hstau] using href + · have hphir : params.phi ≤ r := le_of_not_gt hrphi + by_cases hre : r = params.phi + · subst r + have href := congrArg Prod.fst + (alphaBeta4_reflect2_direct params.phi) + have hmatch := congrArg Prod.snd alphaBeta_match12_direct + have hTphi : T - params.phi = tau := by + rfl + rw [hTphi] at href + rw [hTphi] + simp only [alpha, beta, alphaBetaAt, + ite_eq_right (not_le.mpr (lt_trans phi_lt_eta eta_lt_tau)), + ite_eq_right (not_le.mpr theta_lt_tau), + ite_eq_right (not_le.mpr eta_lt_tau), + ite_eq_left le_rfl] + dsimp [noHiddenReflAB] at href + rw [hmatch] + exact href + · have hphir' : params.phi < r := lt_of_le_of_ne hphir (Ne.symm hre) + by_cases hretheta : r = params.theta + · subst r + have href := congrArg Prod.fst + (alphaBeta3_reflect_direct params.theta) + have hmatch := congrArg Prod.snd alphaBeta_match23_direct + simp only [alpha, beta, alphaBetaAt, + ite_eq_right (not_le.mpr phi_lt_theta), show T - params.theta = eta by rfl, + ite_eq_right (not_le.mpr phi_lt_eta), + ite_eq_right (not_le.mpr theta_lt_eta), ite_eq_left le_rfl] + dsimp [eta] at href ⊢ + dsimp [noHiddenReflAB] at href + rw [hmatch] + exact href + · have hrtheta : r < params.theta := + lt_of_le_of_ne hr.2 hretheta + have hsphi : ¬ T - r ≤ params.phi := by + have hthetaTau := theta_lt_tau + exact not_le.mpr (by + dsimp [T, tau] at hthetaTau ⊢ + linarith [hrtheta]) + have hstheta : ¬ T - r ≤ params.theta := by + have hthetaEta := theta_lt_eta + exact not_le.mpr (by + dsimp [T, eta] at hthetaEta ⊢ + linarith [hrtheta]) + have hseta : ¬ T - r ≤ eta := by + exact not_le.mpr (by dsimp [eta]; linarith) + have hstau : T - r ≤ tau := by + dsimp [tau] + linarith + have href := congrArg Prod.fst (alphaBeta4_reflect2_direct r) + simpa [alpha, beta, alphaBetaAt, noHiddenReflAB, + not_le.mpr hphir', hrtheta.le, + hsphi, hstheta, hseta, hstau] using href + +/-- The late `B` contact arc is the exact horizontal reflection of the early +`D` contact arc. -/ +theorem B_reflect_D {r : ℝ} (hr : r ∈ Icc (0 : ℝ) params.theta) : + B (T - r) = noHiddenHReflect (D r) := by + have hp := path_reflect_noHidden + (show r ∈ Icc (0 : ℝ) T from + ⟨hr.1, le_trans hr.2 theta_lt_T.le⟩) + have ha := alpha_reflect_beta_early hr + rw [B, D, hp, ha] + apply Prod.ext + · dsimp [noHiddenHReflect, u, v, T] + rw [Real.sin_pi_div_two_sub] + ring + · dsimp [noHiddenHReflect, u, v, T] + rw [Real.cos_pi_div_two_sub] + ring + +private theorem B_reflect_u_dot_eq_D_v {r t : ℝ} + (hr : r ∈ Icc (0 : ℝ) params.theta) + (ht : t ∈ Icc (0 : ℝ) T) : + dot (B (T - r) - Romik.path params (T - t)) (u (T - t)) = + dot (D r - Romik.path params t) (v t) := by + rw [B_reflect_D hr, path_reflect_noHidden ht] + dsimp [dot, noHiddenHReflect, u, v, T] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + ring + +private theorem B_reflect_v_dot_eq_D_u {r t : ℝ} + (hr : r ∈ Icc (0 : ℝ) params.theta) + (ht : t ∈ Icc (0 : ℝ) T) : + dot (B (T - r) - Romik.path params (T - t)) (v (T - t)) = + dot (D r - Romik.path params t) (u t) := by + rw [B_reflect_D hr, path_reflect_noHidden ht] + dsimp [dot, noHiddenHReflect, u, v, T] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + ring + +/-- Every point of the early `D` contact arc lies outside at least one of the +two moving inner walls. -/ +theorem D_boundary_outside {t r : ℝ} + (ht : t ∈ Ioo (0 : ℝ) T) + (hr : r ∈ Icc (0 : ℝ) params.theta) : + 0 ≤ dot (D r - Romik.path params t) (u t) ∨ + 0 ≤ dot (D r - Romik.path params t) (v t) := by + have htRef : T - t ∈ Ioo (0 : ℝ) T := by + have ht0 := ht.1 + have htT := ht.2 + constructor <;> dsimp [T] at ht0 htT ⊢ <;> linarith + have hrRef : T - r ∈ Icc eta T := by + constructor + · dsimp [eta] + linarith [hr.2] + · linarith [hr.1] + have htClosed : t ∈ Icc (0 : ℝ) T := ⟨ht.1.le, ht.2.le⟩ + rcases B_boundary_outside htRef hrRef with hu | hv + · right + rw [B_reflect_u_dot_eq_D_v hr htClosed] at hu + exact hu + · left + rw [B_reflect_v_dot_eq_D_u hr htClosed] at hv + exact hv + +/-- Reflected endpoint separator used for the strict lower horizontal range of +the niche. -/ +theorem D_zero_v_nonneg {t : ℝ} (ht : t ∈ Ioo (0 : ℝ) T) : + 0 ≤ dot (D 0 - Romik.path params t) (v t) := by + have htRef : T - t ∈ Ioo (0 : ℝ) T := by + have ht0 := ht.1 + have htT := ht.2 + constructor <;> dsimp [T] at ht0 htT ⊢ <;> linarith + have h := B_T_u_nonneg htRef + have htransport := B_reflect_u_dot_eq_D_v + (t := t) (r := 0) + (show (0 : ℝ) ∈ Icc (0 : ℝ) params.theta from + ⟨le_rfl, theta_pos.le⟩) + (show t ∈ Icc (0 : ℝ) T from ⟨ht.1.le, ht.2.le⟩) + have htransport' : + dot (B T - Romik.path params (T - t)) (u (T - t)) = + dot (D 0 - Romik.path params t) (v t) := by + simpa using htransport + rw [htransport'] at h + exact h + +end Stage4 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Part C Stage 4: independent cap convexity and anchor foundation + +This module separates the already direct cap geometry from the later theorem +that removing the downward niche preserves connectedness. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage4 + +open Set + +/-- The concrete endpoint anchor belongs to the reconstructed cap. -/ +theorem anchor_mem_K_direct : anchor ∈ K := by + have hA0 : A 0 = anchor := Stage2.A_zero_eq_anchor + rw [← hA0] + exact Stage3.supportA_direct 0 (by + constructor + · norm_num + · dsimp [T] + positivity) + +/-- Convexity of the literal cap follows directly from its half-plane +definition. -/ +theorem K_convex_direct : Convex ℝ K := by + intro x hx y hy a b ha hb hab + refine ⟨?_, ?_⟩ + · change 0 ≤ a * x.2 + b * y.2 + exact add_nonneg (mul_nonneg ha hx.1) (mul_nonneg hb hy.1) + · intro t ht + constructor + · change dot (a • x + b • y) (u t) ≤ + dot (Romik.path params t) (u t) + 1 + have hxU := (hx.2 t ht).1 + have hyU := (hy.2 t ht).1 + dsimp [supportHalfU, dot] at hxU hyU ⊢ + have hax := mul_le_mul_of_nonneg_left hxU ha + have hby := mul_le_mul_of_nonneg_left hyU hb + calc + (a * x.1 + b * y.1) * (u t).1 + + (a * x.2 + b * y.2) * (u t).2 = + a * (x.1 * (u t).1 + x.2 * (u t).2) + + b * (y.1 * (u t).1 + y.2 * (u t).2) := by ring + _ ≤ a * ((Romik.path params t).1 * (u t).1 + + (Romik.path params t).2 * (u t).2 + 1) + + b * ((Romik.path params t).1 * (u t).1 + + (Romik.path params t).2 * (u t).2 + 1) := add_le_add hax hby + _ = (Romik.path params t).1 * (u t).1 + + (Romik.path params t).2 * (u t).2 + 1 := by + rw [← add_mul, hab] + ring + · change dot (a • x + b • y) (v t) ≤ + dot (Romik.path params t) (v t) + 1 + have hxV := (hx.2 t ht).2 + have hyV := (hy.2 t ht).2 + dsimp [supportHalfV, dot] at hxV hyV ⊢ + have hax := mul_le_mul_of_nonneg_left hxV ha + have hby := mul_le_mul_of_nonneg_left hyV hb + calc + (a * x.1 + b * y.1) * (v t).1 + + (a * x.2 + b * y.2) * (v t).2 = + a * (x.1 * (v t).1 + x.2 * (v t).2) + + b * (y.1 * (v t).1 + y.2 * (v t).2) := by ring + _ ≤ a * ((Romik.path params t).1 * (v t).1 + + (Romik.path params t).2 * (v t).2 + 1) + + b * ((Romik.path params t).1 * (v t).1 + + (Romik.path params t).2 * (v t).2 + 1) := add_le_add hax hby + _ = (Romik.path params t).1 * (v t).1 + + (Romik.path params t).2 * (v t).2 + 1 := by + rw [← add_mul, hab] + ring + +/-- The nonempty convex cap is connected. -/ +theorem K_connected_direct : IsConnected K := + K_convex_direct.isConnected ⟨anchor, anchor_mem_K_direct⟩ + +end Stage4 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Part C Stage 4: independent vertical-fill topology + +This module isolates the connectedness half of the niche argument from the +upper-envelope/frontier equality. It can therefore be kernel-built even while +the boundary module is still under repair. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage4 + +open Set + +/-- Vertical fill below a parametrized graph. -/ +def verticalFill (f : ℝ → Point) (I : Set ℝ) : Set Point := + {q | ∃ t ∈ I, q.1 = (f t).1 ∧ 0 ≤ q.2 ∧ q.2 < (f t).2} + +/-- The three certified upper-envelope pieces as strict vertical fills. -/ +def certifiedNicheRegion : Set Point := + verticalFill D (Icc (0 : ℝ) params.theta) ∪ + verticalFill (Romik.path params) (Icc params.phi tau) ∪ + verticalFill B (Icc eta T) + +/-- Consecutive endpoint incidences of the three graph pieces. -/ +theorem niche_piece_endpoints : + B eta = Romik.path params params.phi ∧ + D params.theta = Romik.path params tau ∧ + (B T).2 = 0 ∧ (D 0).2 = 0 := + ⟨B_eta_eq_path_phi, D_theta_eq_path_tau, + B_T_y_zero, D_zero_y_zero⟩ + +/-- A strict positive vertical fill is a continuous image of a connected +product. -/ +theorem verticalFill_strict_isConnected + {f : ℝ → Point} {I : Set ℝ} + (hI : IsConnected I) + (hf : ContinuousOn f I) + (hy : ∀ t ∈ I, 0 < (f t).2) : + IsConnected (verticalFill f I) := by + let P : Set (ℝ × ℝ) := I ×ˢ Ico (0 : ℝ) 1 + have hP : IsConnected P := by + dsimp [P] + exact hI.prod (isConnected_Ico (by norm_num)) + let F : (ℝ × ℝ) → Point := fun z => + ((f z.1).1, z.2 * (f z.1).2) + have hfcomp : ContinuousOn (fun z : ℝ × ℝ => f z.1) P := by + exact hf.comp continuous_fst.continuousOn (by + intro z hz + exact hz.1) + have hF : ContinuousOn F P := by + dsimp [F] + exact hfcomp.fst.prodMk (continuous_snd.continuousOn.mul hfcomp.snd) + have himage : F '' P = verticalFill f I := by + ext q + constructor + · rintro ⟨z, hz, rfl⟩ + have hlt := mul_lt_mul_of_pos_right hz.2.2 (hy z.1 hz.1) + exact ⟨z.1, hz.1, rfl, + mul_nonneg hz.2.1 (hy z.1 hz.1).le, by simpa [F] using hlt⟩ + · rintro ⟨t, ht, hx, hy0, hylt⟩ + have htop := hy t ht + let s : ℝ := q.2 / (f t).2 + have hs : s ∈ Ico (0 : ℝ) 1 := by + constructor + · exact div_nonneg hy0 htop.le + · exact (div_lt_one htop).2 hylt + refine ⟨(t, s), ⟨ht, hs⟩, ?_⟩ + apply Prod.ext + · simpa [F] using hx.symm + · dsimp [F, s] + field_simp [ne_of_gt htop] + rw [← himage] + exact hP.image F hF + +theorem D_fill_Icc_eq_Ioc : + verticalFill D (Icc (0 : ℝ) params.theta) = + verticalFill D (Ioc (0 : ℝ) params.theta) := by + ext q + constructor + · rintro ⟨t, ht, hx, hy0, hylt⟩ + have htpos : 0 < t := by + by_contra hnot + have ht0 : t = 0 := le_antisymm (le_of_not_gt hnot) ht.1 + subst t + rw [D_zero_y_zero] at hylt + linarith + exact ⟨t, ⟨htpos, ht.2⟩, hx, hy0, hylt⟩ + · rintro ⟨t, ht, hx, hy0, hylt⟩ + exact ⟨t, ⟨ht.1.le, ht.2⟩, hx, hy0, hylt⟩ + +theorem B_fill_Icc_eq_Ico : + verticalFill B (Icc eta T) = verticalFill B (Ico eta T) := by + ext q + constructor + · rintro ⟨t, ht, hx, hy0, hylt⟩ + have htlt : t < T := by + by_contra hnot + have htT : t = T := le_antisymm ht.2 (le_of_not_gt hnot) + subst t + rw [B_T_y_zero] at hylt + linarith + exact ⟨t, ⟨ht.1, htlt⟩, hx, hy0, hylt⟩ + · rintro ⟨t, ht, hx, hy0, hylt⟩ + exact ⟨t, ⟨ht.1, ht.2.le⟩, hx, hy0, hylt⟩ + +private theorem D_fill_connected : + IsConnected (verticalFill D (Ioc (0 : ℝ) params.theta)) := by + exact verticalFill_strict_isConnected + (isConnected_Ioc theta_pos) D_continuous.continuousOn + (by intro t ht; exact D_y_pos ht) + +private theorem path_fill_connected : + IsConnected + (verticalFill (Romik.path params) (Icc params.phi tau)) := by + exact verticalFill_strict_isConnected + (isConnected_Icc (le_trans phi_lt_theta.le + (le_trans theta_lt_eta.le eta_lt_tau.le))) + pathContinuous.continuousOn (by + intro t ht + exact path_core_y_pos ht) + +private theorem B_fill_connected : + IsConnected (verticalFill B (Ico eta T)) := by + exact verticalFill_strict_isConnected + (isConnected_Ico eta_lt_T) B_continuous.continuousOn + (by intro t ht; exact B_y_pos ht) + +theorem niche_fills_overlap : + (verticalFill D (Ioc (0 : ℝ) params.theta) ∩ + verticalFill (Romik.path params) (Icc params.phi tau)).Nonempty ∧ + (verticalFill (Romik.path params) (Icc params.phi tau) ∩ + verticalFill B (Ico eta T)).Nonempty := by + refine ⟨?_, ?_⟩ + · let q : Point := ((D params.theta).1, (D params.theta).2 / 2) + have hy0 : 0 ≤ q.2 := by + dsimp [q] + nlinarith [D_theta_y_pos] + have hylt : q.2 < (D params.theta).2 := by + dsimp [q] + nlinarith [D_theta_y_pos] + refine ⟨q, ?_, ?_⟩ + · exact ⟨params.theta, ⟨theta_pos, le_rfl⟩, rfl, hy0, hylt⟩ + · refine ⟨tau, ⟨?_, le_rfl⟩, ?_, ?_, ?_⟩ + · exact le_trans phi_lt_theta.le (le_trans theta_lt_eta.le eta_lt_tau.le) + · dsimp [q] + rw [← D_theta_eq_path_tau] + · exact hy0 + · simpa [D_theta_eq_path_tau] using hylt + · let q : Point := ((B eta).1, (B eta).2 / 2) + have hy0 : 0 ≤ q.2 := by + dsimp [q] + nlinarith [B_eta_y_pos] + have hylt : q.2 < (B eta).2 := by + dsimp [q] + nlinarith [B_eta_y_pos] + refine ⟨q, ?_, ?_⟩ + · refine ⟨params.phi, ⟨le_rfl, ?_⟩, ?_, ?_, ?_⟩ + · exact le_trans phi_lt_theta.le (le_trans theta_lt_eta.le eta_lt_tau.le) + · dsimp [q] + rw [← B_eta_eq_path_phi] + · exact hy0 + · simpa [B_eta_eq_path_phi] using hylt + · exact ⟨eta, ⟨le_rfl, eta_lt_T⟩, rfl, hy0, hylt⟩ + +/-- Connectedness of the certified three-piece vertical-fill region. -/ +theorem certifiedNicheRegion_connected : IsConnected certifiedNicheRegion := by + unfold certifiedNicheRegion + rw [D_fill_Icc_eq_Ioc, B_fill_Icc_eq_Ico] + rcases niche_fills_overlap with ⟨hDX, hXB⟩ + have hDXc := D_fill_connected.union hDX path_fill_connected + exact hDXc.union (by + rcases hXB with ⟨q, hqX, hqB⟩ + exact ⟨q, Or.inr hqX, hqB⟩) B_fill_connected + +end Stage4 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Part C Stage 4: inner-wall graph identities +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage4 + +open Set + +/-- First inner wall as a graph over horizontal coordinate. -/ +def bRoof (t X : ℝ) : ℝ := + (dot (Romik.path params t) (u t) - X * Real.cos t) / Real.sin t + +/-- Second inner wall as a graph over horizontal coordinate. -/ +def dRoof (t X : ℝ) : ℝ := + (dot (Romik.path params t) (v t) + X * Real.sin t) / Real.cos t + +/-- Vertical roof of one instantaneous open inner quadrant. -/ +def instantRoof (t X : ℝ) : ℝ := min (bRoof t X) (dRoof t X) + +/-- A point of nonnegative height is in the instantaneous inner quadrant iff it +lies strictly below both graph roofs. -/ +theorem mem_innerQuadrant_iff_roofs {t X Y : ℝ} + (ht : t ∈ Set.Ioo (0 : ℝ) T) : + (X,Y) ∈ Romik.innerQuadrantAt params t ↔ + Y < bRoof t X ∧ Y < dRoof t X := by + have hs : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi ht.1 (lt_trans ht.2 (by + dsimp [T]; linarith [Real.pi_pos])) + have hc : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo ⟨by + linarith [Real.pi_pos, ht.1], by simpa [T] using ht.2⟩ + simp only [Romik.innerQuadrantAt, dot, u, v, mul_neg, neg_add_lt_iff_lt_add, add_zero, + mem_ofPred_eq, bRoof, dRoof] + constructor + · rintro ⟨hu,hv⟩ + constructor + · apply (lt_div_iff₀ hs).2 + linarith + · apply (lt_div_iff₀ hc).2 + linarith + · rintro ⟨hb,hd⟩ + constructor + · have := (lt_div_iff₀ hs).1 hb + linarith + · have := (lt_div_iff₀ hc).1 hd + linarith + +/-- The two walls agree at their apex. -/ +theorem roofs_at_path (t : ℝ) (ht : t ∈ Set.Ioo (0 : ℝ) T) : + bRoof t (Romik.path params t).1 = (Romik.path params t).2 ∧ + dRoof t (Romik.path params t).1 = (Romik.path params t).2 := by + have hs : Real.sin t ≠ 0 := ne_of_gt (Real.sin_pos_of_pos_of_lt_pi ht.1 (lt_trans ht.2 (by + dsimp [T]; linarith [Real.pi_pos]))) + have hc : Real.cos t ≠ 0 := ne_of_gt (Real.cos_pos_of_mem_Ioo ⟨by + linarith [Real.pi_pos, ht.1], by simpa [T] using ht.2⟩) + constructor <;> simp [bRoof, dRoof, dot, u, v, hs, hc] + +end Stage4 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Part C Stage 4: direct membership of the certified vertical fills + +These are the three concrete reverse-inclusion facts needed to identify the +literal niche with its certified vertical-fill region. They are proved from +the literal open-quadrant definition, not assumed through a Stage 2 API. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage4 + +open Set +open Stage2 + +private theorem sin_pos_physical {t : ℝ} (ht : t ∈ Ioo (0 : ℝ) T) : + 0 < Real.sin t := + Real.sin_pos_of_pos_of_lt_pi ht.1 + (lt_trans ht.2 (by dsimp [T]; linarith [Real.pi_pos])) + +private theorem cos_pos_physical {t : ℝ} (ht : t ∈ Ioo (0 : ℝ) T) : + 0 < Real.cos t := + Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, ht.1], by simpa [T] using ht.2⟩ + +private theorem phi_upper_twentieth_membership : + params.phi ≤ (1 / 20 : ℝ) := by + have h := phi_bounds.2 + norm_num at h ⊢ + linarith + +private theorem a1_lower_six_fifths_membership : + (6 / 5 : ℝ) ≤ params.a1 := by + have h := Romik.a1_lower_bound_of_mem_box params_mem + norm_num at h ⊢ + linarith + +private theorem alphaBeta1_snd_nonneg_early {s : ℝ} + (hs0 : 0 ≤ s) (hs20 : s ≤ (1 / 20 : ℝ)) : + 0 ≤ (Romik.alphaBeta1 params s).2 := by + have hpi : s ≤ Real.pi := by + nlinarith [Real.pi_gt_three] + have hsin0 : 0 ≤ Real.sin s := + Real.sin_nonneg_of_nonneg_of_le_pi hs0 hpi + have hsinUpper := Real.sin_le hs0 + have hcosLower : 1 - s ^ 2 / 2 ≤ Real.cos s := + Real.one_sub_sq_div_two_le_cos + have hcos0 : 0 ≤ Real.cos s := by + apply Real.cos_nonneg_of_mem_Icc + constructor <;> nlinarith [Real.pi_gt_three] + have hquad : 0 ≤ s * ((1 / 20 : ℝ) - s) := + mul_nonneg hs0 (sub_nonneg.mpr hs20) + have hcoef : (12 / 5 : ℝ) ≤ 2 * params.a1 := by + nlinarith [a1_lower_six_fifths_membership] + have hmul : (12 / 5 : ℝ) * Real.cos s ≤ + 2 * params.a1 * Real.cos s := + mul_le_mul_of_nonneg_right hcoef hcos0 + have ha2 := Romik.a2_eq_neg_quarter_of_equations params_equations + dsimp [Romik.alphaBeta1] + rw [ha2] + nlinarith [hsinUpper, hcosLower, hquad, hmul] + +private theorem beta_nonneg_early {t : ℝ} + (ht : t ∈ Icc (0 : ℝ) params.theta) : 0 ≤ beta t := by + by_cases hphi : t ≤ params.phi + · have hs20 : t ≤ (1 / 20 : ℝ) := + le_trans hphi phi_upper_twentieth_membership + have h := alphaBeta1_snd_nonneg_early ht.1 hs20 + simpa [beta, alphaBetaAt, hphi] using h + · have htPhysical : t ∈ Icc (0 : ℝ) T := + ⟨ht.1, le_trans ht.2 (le_trans theta_lt_eta.le + (le_trans eta_lt_tau.le tau_le_T))⟩ + have hrho := Stage2.rhoA_nonneg htPhysical + unfold Stage2.rhoA at hrho + rw [ite_eq_right hphi, ite_eq_left ht.2] at hrho + simp only [beta, alphaBetaAt, ite_eq_right hphi, ite_eq_left ht.2] + dsimp [Romik.alphaBeta2] + exact hrho + +private theorem B_bRoof_eq {t : ℝ} (ht : t ∈ Ioo (0 : ℝ) T) : + bRoof t (B t).1 = (B t).2 := by + have hs0 : Real.sin t ≠ 0 := ne_of_gt (sin_pos_physical ht) + have hcontact := B_inner_u_identity t + unfold bRoof + apply (div_eq_iff hs0).2 + dsimp [dot, u] at hcontact ⊢ + nlinarith + +private theorem B_le_dRoof {t : ℝ} + (ht : t ∈ Ioo (0 : ℝ) T) (htPhi : t ∈ Icc params.phi T) : + (B t).2 ≤ dRoof t (B t).1 := by + have hc := cos_pos_physical ht + have ha := alpha_nonpos htPhi + have hv : dot (B t - Romik.path params t) (v t) = alpha t := by + simp only [B, dot, v] + simp + nlinarith [Real.sin_sq_add_cos_sq t] + unfold dRoof + apply (le_div_iff₀ hc).2 + dsimp [dot, v] at hv ⊢ + nlinarith + +private theorem D_dRoof_eq {t : ℝ} (ht : t ∈ Ioo (0 : ℝ) T) : + dRoof t (D t).1 = (D t).2 := by + have hc0 : Real.cos t ≠ 0 := ne_of_gt (cos_pos_physical ht) + have hcontact := D_inner_v_identity t + unfold dRoof + apply (div_eq_iff hc0).2 + dsimp [dot, v] at hcontact ⊢ + nlinarith + +private theorem D_le_bRoof {t : ℝ} + (ht : t ∈ Ioo (0 : ℝ) T) + (htTheta : t ∈ Icc (0 : ℝ) params.theta) : + (D t).2 ≤ bRoof t (D t).1 := by + have hs := sin_pos_physical ht + have hb := beta_nonneg_early htTheta + have hu : dot (D t - Romik.path params t) (u t) = -beta t := by + simp only [D, dot, u] + simp + nlinarith [Real.sin_sq_add_cos_sq t] + unfold bRoof + apply (le_div_iff₀ hs).2 + dsimp [dot, u] at hu ⊢ + nlinarith + +/-- Every strict vertical point below a core-path point belongs to the literal +niche. -/ +theorem vertical_below_path_mem_niche {r Y : ℝ} + (hr : r ∈ Icc params.phi tau) (hY0 : 0 ≤ Y) + (hY : Y < (Romik.path params r).2) : + ((Romik.path params r).1, Y) ∈ Romik.niche params := by + have hrIoo : r ∈ Ioo (0 : ℝ) T := + ⟨lt_of_lt_of_le phi_pos hr.1, + lt_of_le_of_lt hr.2 tau_lt_T⟩ + refine ⟨by simpa [capFan] using hY0, ⟨r, hrIoo, ?_⟩⟩ + apply (mem_innerQuadrant_iff_roofs hrIoo).2 + have hroof := roofs_at_path r hrIoo + rw [hroof.1, hroof.2] + exact ⟨hY, hY⟩ + +/-- Every strict vertical point below the late `B` contact belongs to the +literal niche. -/ +theorem vertical_below_B_mem_niche {r Y : ℝ} + (hr : r ∈ Icc eta T) (hY0 : 0 ≤ Y) (hY : Y < (B r).2) : + ((B r).1, Y) ∈ Romik.niche params := by + have hrlt : r < T := by + by_contra hnot + have hrT : r = T := le_antisymm hr.2 (le_of_not_gt hnot) + subst r + rw [B_T_y_zero] at hY + linarith + have hrIoo : r ∈ Ioo (0 : ℝ) T := + ⟨lt_of_lt_of_le (lt_trans theta_pos theta_lt_eta) hr.1, hrlt⟩ + have hrPhi : r ∈ Icc params.phi T := + ⟨le_trans (le_trans phi_lt_theta.le theta_lt_eta.le) hr.1, hr.2⟩ + refine ⟨by simpa [capFan] using hY0, ⟨r, hrIoo, ?_⟩⟩ + apply (mem_innerQuadrant_iff_roofs hrIoo).2 + refine ⟨?_, ?_⟩ + · rw [B_bRoof_eq hrIoo] + exact hY + · exact lt_of_lt_of_le hY (B_le_dRoof hrIoo hrPhi) + +/-- Every strict vertical point below the early `D` contact belongs to the +literal niche. -/ +theorem vertical_below_D_mem_niche {r Y : ℝ} + (hr : r ∈ Icc (0 : ℝ) params.theta) (hY0 : 0 ≤ Y) + (hY : Y < (D r).2) : + ((D r).1, Y) ∈ Romik.niche params := by + have hrpos : 0 < r := by + by_contra hnot + have hr0 : r = 0 := le_antisymm (le_of_not_gt hnot) hr.1 + subst r + rw [D_zero_y_zero] at hY + linarith + have hrIoo : r ∈ Ioo (0 : ℝ) T := + ⟨hrpos, lt_of_le_of_lt hr.2 theta_lt_T⟩ + refine ⟨by simpa [capFan] using hY0, ⟨r, hrIoo, ?_⟩⟩ + apply (mem_innerQuadrant_iff_roofs hrIoo).2 + refine ⟨?_, ?_⟩ + · exact lt_of_lt_of_le hY (D_le_bRoof hrIoo hr) + · rw [D_dRoof_eq hrIoo] + exact hY + +end Stage4 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Part C Stage 4: frontier of a strict vertical subgraph + +This file contains the topological calculation used by the concrete Gerver +niche. The generic lemma is intentionally independent of the old Stage 2 +topology sketches: it computes the closure and the interior of a strict +vertical subgraph directly. +-/ + +/-! ## The three Gerver roof arcs are graphs over horizontal position -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage4 + +open Set + +private theorem u_hasDerivAt_frontier (t : ℝ) : HasDerivAt u (v t) t := + Stage2.u_hasDerivAt t + +private theorem v_hasDerivAt_frontier (t : ℝ) : HasDerivAt v (-u t) t := + Stage2.v_hasDerivAt t + +private theorem square_hasDerivAt_frontier (t : ℝ) : + HasDerivAt (fun s : ℝ => s * s) (t + t) t := + Stage2.square_hasDerivAt t + +private theorem beta1_hasDerivAt_frontier (t : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta1 params s).2) + (-2 * params.a1 * Real.sin t + 2 * params.a2 * Real.cos t) t := by + have h1 := HasDerivAt.const_mul (2 * params.a1) (Real.hasDerivAt_cos t) + have h2 := HasDerivAt.const_mul (2 * params.a2) (Real.hasDerivAt_sin t) + have h := (h1.fun_add h2).fun_sub (hasDerivAt_const t (1 : ℝ)) + refine h.congr_deriv ?_ + ring + +private theorem beta2_hasDerivAt_frontier (t : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta2 params s).2) + (-(1 / 2 : ℝ) * t + params.b1) t := + beta2_hasDerivAt t + +private theorem alpha4_hasDerivAt_frontier (t : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta4 params s).1) + ((1 / 2 : ℝ) * t - params.d1) t := + alpha4_hasDerivAt t + +private theorem alpha5_hasDerivAt_frontier (t : ℝ) : + HasDerivAt (fun s => (Romik.alphaBeta5 params s).1) + (-2 * params.e1 * Real.cos t - 2 * params.e2 * Real.sin t) t := + alpha5_hasDerivAt t + +private theorem contactD_hasDerivAt + {x : ℝ → Point} {ab : ℝ → Point} {bp : ℝ} (t : ℝ) + (hx : HasDerivAt x (Romik.rot t (ab t)) t) + (hb : HasDerivAt (fun s => (ab s).2) bp t) : + HasDerivAt (fun s => x s - (ab s).2 • u s) + (((ab t).1 - bp) • u t) t := by + have h := hx.fun_sub (hb.fun_smul (u_hasDerivAt_frontier t)) + refine h.congr_deriv ?_ + ext <;> simp [Romik.rot, u, v] <;> ring + +private theorem contactB_hasDerivAt + {x : ℝ → Point} {ab : ℝ → Point} {ap : ℝ} (t : ℝ) + (hx : HasDerivAt x (Romik.rot t (ab t)) t) + (ha : HasDerivAt (fun s => (ab s).1) ap t) : + HasDerivAt (fun s => x s + (ab s).1 • v s) + (((ab t).2 + ap) • v t) t := by + have h := hx.fun_add (ha.fun_smul (v_hasDerivAt_frontier t)) + refine h.congr_deriv ?_ + ext <;> simp [Romik.rot, u, v] <;> ring + +private def phaseD1 (t : ℝ) : Point := + Romik.path1 params t - (Romik.alphaBeta1 params t).2 • u t + +private def phaseD2 (t : ℝ) : Point := + Romik.path2 params t - (Romik.alphaBeta2 params t).2 • u t + +private def phaseB4_m421765a (t : ℝ) : Point := + Romik.path4 params t + (Romik.alphaBeta4 params t).1 • v t + +private def phaseB5_m421765a (t : ℝ) : Point := + Romik.path5 params t + (Romik.alphaBeta5 params t).1 • v t + +private theorem phaseD1_hasDerivAt (t : ℝ) : + HasDerivAt phaseD1 ((1 / 2 : ℝ) • u t) t := by + have h := contactD_hasDerivAt t (path1_hasDerivAt_public t) + (beta1_hasDerivAt_frontier t) + exact h.congr_deriv (by + apply congrArg (fun c : ℝ => c • u t) + dsimp [Romik.alphaBeta1] + ring) + +private theorem phaseD2_hasDerivAt (t : ℝ) : + HasDerivAt phaseD2 ((1 + params.b1 - t / 2) • u t) t := by + have h := contactD_hasDerivAt t (path2_hasDerivAt_public t) + (beta2_hasDerivAt_frontier t) + exact h.congr_deriv (by + apply congrArg (fun c : ℝ => c • u t) + dsimp [Romik.alphaBeta2] + ring) + +private theorem phaseB4_hasDerivAt (t : ℝ) : + HasDerivAt phaseB4_m421765a ((params.d1 - 1 - t / 2) • v t) t := by + have h := contactB_hasDerivAt t (path4_hasDerivAt_public t) + (alpha4_hasDerivAt_frontier t) + exact h.congr_deriv (by + apply congrArg (fun c : ℝ => c • v t) + dsimp [Romik.alphaBeta4] + ring) + +private theorem phaseB5_hasDerivAt (t : ℝ) : + HasDerivAt phaseB5_m421765a ((-(1 / 2 : ℝ)) • v t) t := by + have h := contactB_hasDerivAt t (path5_hasDerivAt_public t) + (alpha5_hasDerivAt_frontier t) + exact h.congr_deriv (by + apply congrArg (fun c : ℝ => c • v t) + dsimp [Romik.alphaBeta5] + ring) + +private theorem phaseD1_continuous : Continuous phaseD1 := by + exact continuous_iff_continuousAt.2 fun t => (phaseD1_hasDerivAt t).continuousAt + +private theorem phaseD2_continuous : Continuous phaseD2 := by + exact continuous_iff_continuousAt.2 fun t => (phaseD2_hasDerivAt t).continuousAt + +private theorem phaseB4_continuous : Continuous phaseB4_m421765a := by + exact continuous_iff_continuousAt.2 fun t => (phaseB4_hasDerivAt t).continuousAt + +private theorem phaseB5_continuous : Continuous phaseB5_m421765a := by + exact continuous_iff_continuousAt.2 fun t => (phaseB5_hasDerivAt t).continuousAt + +private theorem dot_fixed_hasDerivAt_frontier + {f : ℝ → Point} {df w : Point} {t : ℝ} + (h : HasDerivAt f df t) : + HasDerivAt (fun s => dot (f s) w) (dot df w) t := + dot_fixed_hasDerivAt h w + +private theorem b1_lower_frontier : (-53 / 100 : ℝ) ≤ params.b1 := by + have h := PartB.b1_contains.1 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at h ⊢ + linarith + +private theorem theta_upper_frontier : params.theta ≤ (689 / 1000 : ℝ) := by + have h := theta_bounds.2 + norm_num at h ⊢ + linarith + +private theorem d1_lower_frontier : (13 / 10 : ℝ) ≤ params.d1 := by + have h := PartB.d1_contains.1 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at h ⊢ + linarith + +private theorem d1_upper_frontier : params.d1 ≤ (33 / 25 : ℝ) := by + have h := PartB.d1_contains.2 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at h ⊢ + linarith + +private theorem eta_lower_frontier : (4 / 5 : ℝ) ≤ eta := by + dsimp [eta, T] + nlinarith [Real.pi_gt_three, theta_upper_frontier] + +private theorem T_upper_frontier : T < (8 / 5 : ℝ) := by + have hp := ExactReplay.piI_contains_pi + have hhi : Real.pi ≤ (ExactReplay.piI.hi : ℝ) := hp.2 + have h32 : (ExactReplay.piI.hi : ℝ) < (16 / 5 : ℝ) := by + norm_num [ExactReplay.piI, ExactReplay.q] + dsimp [T] + linarith + +private theorem phaseD1_fst_strictMono : + StrictMonoOn (fun t => (phaseD1 t).1) (Icc (0 : ℝ) params.phi) := by + apply strictMonoOn_of_deriv_pos (convex_Icc _ _) phaseD1_continuous.fst.continuousOn + intro t ht + rw [interior_Icc] at ht + have hder : HasDerivAt (fun s => (phaseD1 s).1) + (((1 / 2 : ℝ) • u t).1) t := by + have h := dot_fixed_hasDerivAt_frontier (w := ((1 : ℝ), 0)) + (phaseD1_hasDerivAt t) + simpa [dot] using h + rw [hder.deriv] + have hc : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, ht.1], by + have htT : t < T := lt_trans ht.2 phi_lt_T + simpa [T] using htT⟩ + simpa [u] using mul_pos (by norm_num : (0 : ℝ) < 1 / 2) hc + +private theorem phaseD2_fst_strictMono : + StrictMonoOn (fun t => (phaseD2 t).1) (Icc params.phi params.theta) := by + apply strictMonoOn_of_deriv_pos (convex_Icc _ _) phaseD2_continuous.fst.continuousOn + intro t ht + rw [interior_Icc] at ht + have hder : HasDerivAt (fun s => (phaseD2 s).1) + (((1 + params.b1 - t / 2) • u t).1) t := by + have h := dot_fixed_hasDerivAt_frontier (w := ((1 : ℝ), 0)) + (phaseD2_hasDerivAt t) + simpa [dot] using h + rw [hder.deriv] + have hcoef : 0 < 1 + params.b1 - t / 2 := by + nlinarith [b1_lower_frontier, theta_upper_frontier, ht.2] + have hc : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, phi_pos, ht.1], by + have htT : t < T := lt_trans ht.2 theta_lt_T + simpa [T] using htT⟩ + simpa [u] using mul_pos hcoef hc + +private theorem phaseB4_fst_strictMono : + StrictMonoOn (fun t => (phaseB4_m421765a t).1) (Icc eta tau) := by + apply strictMonoOn_of_deriv_pos (convex_Icc _ _) phaseB4_continuous.fst.continuousOn + intro t ht + rw [interior_Icc] at ht + have hder : HasDerivAt (fun s => (phaseB4_m421765a s).1) + (((params.d1 - 1 - t / 2) • v t).1) t := by + have h := dot_fixed_hasDerivAt_frontier (w := ((1 : ℝ), 0)) + (phaseB4_hasDerivAt t) + simpa [dot] using h + rw [hder.deriv] + have hcoef : params.d1 - 1 - t / 2 < 0 := by + nlinarith [d1_upper_frontier, eta_lower_frontier, ht.1] + have hs : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi + (lt_trans (lt_trans theta_pos theta_lt_eta) ht.1) + (lt_trans (lt_trans ht.2 tau_lt_T) (by + dsimp [T]; nlinarith [Real.pi_pos])) + have hm : 0 < (params.d1 - 1 - t / 2) * (-Real.sin t) := + mul_pos_of_neg_of_neg hcoef (neg_neg_of_pos hs) + simpa [v] using hm + +private theorem phaseB5_fst_strictMono : + StrictMonoOn (fun t => (phaseB5_m421765a t).1) (Icc tau T) := by + apply strictMonoOn_of_deriv_pos (convex_Icc _ _) phaseB5_continuous.fst.continuousOn + intro t ht + rw [interior_Icc] at ht + have hder : HasDerivAt (fun s => (phaseB5_m421765a s).1) + (((-(1 / 2 : ℝ)) • v t).1) t := by + have h := dot_fixed_hasDerivAt_frontier (w := ((1 : ℝ), 0)) + (phaseB5_hasDerivAt t) + simpa [dot] using h + rw [hder.deriv] + have hs : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi + (lt_trans (lt_trans (lt_trans theta_pos theta_lt_eta) eta_lt_tau) ht.1) + (lt_trans ht.2 (by dsimp [T]; nlinarith [Real.pi_pos])) + simpa [v] using mul_pos_of_neg_of_neg (by norm_num : (-(1 / 2 : ℝ)) < 0) + (neg_neg_of_pos hs) + +private theorem phaseD1_eq_D {t : ℝ} (ht : t ∈ Icc (0 : ℝ) params.phi) : + phaseD1 t = D t := by + apply Prod.ext <;> + simp [phaseD1, D, beta, alphaBetaAt, Romik.path, ht.2] + +private theorem phaseD2_eq_D {t : ℝ} (ht : t ∈ Icc params.phi params.theta) : + phaseD2 t = D t := by + rcases ht.1.eq_or_lt with h | h + · subst t + apply Prod.ext <;> + simp [phaseD2, D, beta, alphaBetaAt, Romik.path, PartB.match12, alphaBeta_match12_direct] + · apply Prod.ext <;> + simp [phaseD2, D, beta, alphaBetaAt, Romik.path, not_le.mpr h, ht.2] + +private theorem phaseB4_eq_B {t : ℝ} (ht : t ∈ Icc eta tau) : + phaseB4_m421765a t = B t := by + rcases ht.1.eq_or_lt with h | h + · subst t + have hm : Romik.path3 params eta = Romik.path4 params eta := by + simpa [eta, T] using PartB.match34 + have hphase : phaseB4_m421765a eta = Romik.path4 params eta + + (Romik.alphaBeta4 params eta).1 • v eta := by + rfl + have hetaRaw : eta ≤ Real.pi / 2 - params.theta := by rfl + have hB : B eta = Romik.path3 params eta + + (Romik.alphaBeta3 params eta).1 • v eta := by + apply Prod.ext <;> + simp [B, alpha, alphaBetaAt, Romik.path, + not_le.mpr phi_lt_eta, not_le.mpr theta_lt_eta, hetaRaw] + calc + phaseB4_m421765a eta = Romik.path4 params eta + + (Romik.alphaBeta4 params eta).1 • v eta := hphase + _ = Romik.path3 params eta + + (Romik.alphaBeta3 params eta).1 • v eta := by + rw [hm, alphaBeta_match34_direct] + _ = B eta := hB.symm + · have hetaRaw : Real.pi / 2 - params.theta < t := by + simpa [eta, T] using h + have htauRaw : t ≤ Real.pi / 2 - params.phi := by + simpa [tau, T] using ht.2 + apply Prod.ext <;> + simp [phaseB4_m421765a, B, alpha, alphaBetaAt, Romik.path, + not_le.mpr (lt_trans phi_lt_eta h), + not_le.mpr (lt_trans theta_lt_eta h), not_le.mpr hetaRaw, htauRaw, eta, tau, T] + +private theorem phaseB5_eq_B {t : ℝ} (ht : t ∈ Icc tau T) : + phaseB5_m421765a t = B t := by + rcases ht.1.eq_or_lt with h | h + · subst t + have hm : Romik.path4 params tau = Romik.path5 params tau := by + simpa [tau, T] using PartB.match45 + have hphase : phaseB5_m421765a tau = Romik.path5 params tau + + (Romik.alphaBeta5 params tau).1 • v tau := by + rfl + have htauRaw : tau ≤ Real.pi / 2 - params.phi := by rfl + have hetaRaw : ¬ tau ≤ Real.pi / 2 - params.theta := by + exact not_le.mpr (by simpa [eta, T] using eta_lt_tau) + have hB : B tau = Romik.path4 params tau + + (Romik.alphaBeta4 params tau).1 • v tau := by + apply Prod.ext <;> + simp [B, alpha, alphaBetaAt, Romik.path, + not_le.mpr (lt_trans phi_lt_eta eta_lt_tau), + not_le.mpr (lt_trans theta_lt_eta eta_lt_tau), + not_le.mpr eta_lt_tau, hetaRaw, htauRaw] + calc + phaseB5_m421765a tau = Romik.path5 params tau + + (Romik.alphaBeta5 params tau).1 • v tau := hphase + _ = Romik.path4 params tau + + (Romik.alphaBeta4 params tau).1 • v tau := by + rw [hm, alphaBeta_match45_direct] + _ = B tau := hB.symm + · have hetaRaw : Real.pi / 2 - params.theta < t := by + simpa [eta, T] using lt_trans eta_lt_tau h + have htauRaw : Real.pi / 2 - params.phi < t := by + simpa [tau, T] using h + apply Prod.ext <;> + simp [phaseB5_m421765a, B, alpha, alphaBetaAt, Romik.path, + not_le.mpr (lt_trans (lt_trans phi_lt_eta eta_lt_tau) h), + not_le.mpr (lt_trans (lt_trans theta_lt_eta eta_lt_tau) h), + not_le.mpr hetaRaw, not_le.mpr htauRaw, eta, tau, T] + +/-- The early contact arc has strictly increasing horizontal projection. -/ +theorem D_fst_strictMono : + StrictMonoOn (fun t => (D t).1) (Icc (0 : ℝ) params.theta) := by + intro x hx y hy hxy + by_cases hyphi : y ≤ params.phi + · have hxphi : x ∈ Icc (0 : ℝ) params.phi := + ⟨hx.1, le_trans hxy.le hyphi⟩ + have hyphi' : y ∈ Icc (0 : ℝ) params.phi := ⟨hy.1, hyphi⟩ + simpa [phaseD1_eq_D hxphi, phaseD1_eq_D hyphi'] using + phaseD1_fst_strictMono hxphi hyphi' hxy + · have hphiy : params.phi < y := lt_of_not_ge hyphi + by_cases hxphi : x ≤ params.phi + · have hx1 : x ∈ Icc (0 : ℝ) params.phi := ⟨hx.1, hxphi⟩ + have hphi1 : params.phi ∈ Icc (0 : ℝ) params.phi := + ⟨phi_pos.le, le_rfl⟩ + have hphi2 : params.phi ∈ Icc params.phi params.theta := + ⟨le_rfl, phi_lt_theta.le⟩ + have hy2 : y ∈ Icc params.phi params.theta := + ⟨hphiy.le, hy.2⟩ + have hleft := phaseD1_fst_strictMono.monotoneOn hx1 hphi1 hxphi + have hright := phaseD2_fst_strictMono hphi2 hy2 hphiy + calc + (D x).1 = (phaseD1 x).1 := congrArg Prod.fst (phaseD1_eq_D hx1).symm + _ ≤ (phaseD1 params.phi).1 := hleft + _ = (D params.phi).1 := congrArg Prod.fst (phaseD1_eq_D hphi1) + _ = (phaseD2 params.phi).1 := congrArg Prod.fst (phaseD2_eq_D hphi2).symm + _ < (phaseD2 y).1 := hright + _ = (D y).1 := congrArg Prod.fst (phaseD2_eq_D hy2) + · have hphix : params.phi < x := lt_of_not_ge hxphi + have hx2 : x ∈ Icc params.phi params.theta := ⟨hphix.le, hx.2⟩ + have hy2 : y ∈ Icc params.phi params.theta := ⟨hphiy.le, hy.2⟩ + simpa [phaseD2_eq_D hx2, phaseD2_eq_D hy2] using + phaseD2_fst_strictMono hx2 hy2 hxy + +/-- The late contact arc has strictly increasing horizontal projection. -/ +theorem B_fst_strictMono : + StrictMonoOn (fun t => (B t).1) (Icc eta T) := by + intro x hx y hy hxy + by_cases hytau : y ≤ tau + · have hx4 : x ∈ Icc eta tau := ⟨hx.1, le_trans hxy.le hytau⟩ + have hy4 : y ∈ Icc eta tau := ⟨hy.1, hytau⟩ + simpa [phaseB4_eq_B hx4, phaseB4_eq_B hy4] using + phaseB4_fst_strictMono hx4 hy4 hxy + · have htauy : tau < y := lt_of_not_ge hytau + by_cases hxtau : x ≤ tau + · have hx4 : x ∈ Icc eta tau := ⟨hx.1, hxtau⟩ + have htau4 : tau ∈ Icc eta tau := ⟨eta_lt_tau.le, le_rfl⟩ + have htau5 : tau ∈ Icc tau T := ⟨le_rfl, tau_lt_T.le⟩ + have hy5 : y ∈ Icc tau T := ⟨htauy.le, hy.2⟩ + have hleft := phaseB4_fst_strictMono.monotoneOn hx4 htau4 hxtau + have hright := phaseB5_fst_strictMono htau5 hy5 htauy + calc + (B x).1 = (phaseB4_m421765a x).1 := congrArg Prod.fst (phaseB4_eq_B hx4).symm + _ ≤ (phaseB4_m421765a tau).1 := hleft + _ = (B tau).1 := congrArg Prod.fst (phaseB4_eq_B htau4) + _ = (phaseB5_m421765a tau).1 := congrArg Prod.fst (phaseB5_eq_B htau5).symm + _ < (phaseB5_m421765a y).1 := hright + _ = (B y).1 := congrArg Prod.fst (phaseB5_eq_B hy5) + · have htaux : tau < x := lt_of_not_ge hxtau + have hx5 : x ∈ Icc tau T := ⟨htaux.le, hx.2⟩ + have hy5 : y ∈ Icc tau T := ⟨htauy.le, hy.2⟩ + simpa [phaseB5_eq_B hx5, phaseB5_eq_B hy5] using + phaseB5_fst_strictMono hx5 hy5 hxy + +private theorem b1_upper_frontier : params.b1 ≤ (-527 / 1000 : ℝ) := by + have h := PartB.b1_contains.2 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at h ⊢ + linarith + +private theorem c2_lower_frontier : (-1 : ℝ) ≤ params.c2 := by + have h := PartB.c2_contains.1 + norm_num [RatInterval.Contains, ExactReplay.fullInputBox, ExactReplay.getI, + CertificateManifest.z22, CertificateManifest.q] at h ⊢ + linarith + +private theorem path_fst_deriv_neg {t : ℝ} (ht : t ∈ Ioo params.phi tau) : + deriv (fun s => (Romik.path params s).1) t < 0 := by + have hder : HasDerivAt (fun s => (Romik.path params s).1) + ((Romik.rot t (alphaBetaAt t)).1) t := by + have h := dot_fixed_hasDerivAt_frontier (w := ((1 : ℝ), 0)) + (path_hasDerivAt_noHidden t) + simpa [dot] using h + rw [hder.deriv] + have htPhys : t ∈ Icc params.phi T := ⟨ht.1.le, le_trans ht.2.le tau_lt_T.le⟩ + have ha := alpha_nonpos htPhys + have hb := beta_nonneg htPhys + have hs : 0 < Real.sin t := Real.sin_pos_of_pos_of_lt_pi + (lt_trans phi_pos ht.1) (lt_trans (lt_trans ht.2 tau_lt_T) + (by dsimp [T]; nlinarith [Real.pi_pos])) + have hc : 0 < Real.cos t := Real.cos_pos_of_mem_Ioo + ⟨by linarith [Real.pi_pos, phi_pos, ht.1], by + have htT := lt_trans ht.2 tau_lt_T + simpa [T] using htT⟩ + by_cases htheta : t ≤ params.theta + · have hphi : ¬ t ≤ params.phi := not_le.mpr ht.1 + have has : alpha t < 0 := by + simp only [alpha, alphaBetaAt, ite_eq_right hphi, ite_eq_left htheta] + dsimp [Romik.alphaBeta2] + nlinarith [b1_upper_frontier, ht.1, phi_pos] + dsimp [Romik.rot] + change Real.cos t * alpha t - Real.sin t * beta t < 0 + nlinarith [mul_neg_of_neg_of_pos has hc, mul_nonneg hb hs.le] + · by_cases heta : t ≤ eta + · have hphi : ¬ t ≤ params.phi := not_le.mpr ht.1 + have has : alpha t < 0 := by + simp only [alpha, alphaBetaAt, ite_eq_right hphi, ite_eq_right htheta, ite_eq_left heta] + dsimp [Romik.alphaBeta3] + nlinarith [c2_lower_frontier, theta_pos, lt_of_not_ge htheta] + dsimp [Romik.rot] + change Real.cos t * alpha t - Real.sin t * beta t < 0 + nlinarith [mul_neg_of_neg_of_pos has hc, mul_nonneg hb hs.le] + · have hphi : ¬ t ≤ params.phi := not_le.mpr ht.1 + have hbp : 0 < beta t := by + simp only [beta, alphaBetaAt, ite_eq_right hphi, ite_eq_right htheta, ite_eq_right heta, + ite_eq_left ht.2.le] + dsimp [Romik.alphaBeta4] + nlinarith [d1_lower_frontier, T_upper_frontier, + lt_trans ht.2 tau_lt_T] + dsimp [Romik.rot] + change Real.cos t * alpha t - Real.sin t * beta t < 0 + nlinarith [mul_nonpos_of_nonpos_of_nonneg ha hc.le, + mul_pos hbp hs] + +/-- The core path runs strictly from right to left in horizontal projection. -/ +theorem core_path_fst_strictAnti : + StrictAntiOn (fun t => (Romik.path params t).1) (Icc params.phi tau) := by + apply strictAntiOn_of_deriv_neg (convex_Icc _ _) pathContinuous.fst.continuousOn + intro t ht + rw [interior_Icc] at ht + exact path_fst_deriv_neg ht + +/-! ## A single left-to-right parametrization of the three roof arcs -/ + +/-- The affine reversal which runs through the core path from `tau` to `phi` +while the auxiliary parameter runs from `theta` to `eta`. -/ +def coreReverseTime (s : ℝ) : ℝ := + tau - ((tau - params.phi) / (eta - params.theta)) * + (s - params.theta) + +private theorem coreReverseTime_theta : + coreReverseTime params.theta = tau := by + simp [coreReverseTime] + +private theorem coreReverseTime_eta : coreReverseTime eta = params.phi := by + have hne : eta - params.theta ≠ 0 := sub_ne_zero.mpr theta_lt_eta.ne' + dsimp [coreReverseTime] + field_simp [hne] + ring + +private theorem coreReverseTime_strictAnti : StrictAnti coreReverseTime := by + intro x y hxy + have hc : 0 < (tau - params.phi) / (eta - params.theta) := + div_pos (sub_pos.mpr (lt_trans phi_lt_theta + (lt_trans theta_lt_eta eta_lt_tau))) (sub_pos.mpr theta_lt_eta) + have hprod := mul_pos hc (sub_pos.mpr hxy) + dsimp [coreReverseTime] + nlinarith [hprod] + +private theorem coreReverseTime_mem {s : ℝ} + (hs : s ∈ Icc params.theta eta) : + coreReverseTime s ∈ Icc params.phi tau := by + constructor + · rw [← coreReverseTime_eta] + exact coreReverseTime_strictAnti.antitone hs.2 + · rw [← coreReverseTime_theta] + exact coreReverseTime_strictAnti.antitone hs.1 + +private theorem coreReverseTime_continuous : Continuous coreReverseTime := by + unfold coreReverseTime + fun_prop + +/-- A single continuous parametrization of the complete upper niche arc. -/ +def nicheTopArc (s : ℝ) : Point := + if s ≤ params.theta then D s + else if s ≤ eta then Romik.path params (coreReverseTime s) + else B s + +private theorem nicheTopArc_of_le_theta {s : ℝ} (hs : s ≤ params.theta) : + nicheTopArc s = D s := by + simp [nicheTopArc, hs] + +private theorem nicheTopArc_of_middle {s : ℝ} + (hθ : params.theta < s) (hη : s ≤ eta) : + nicheTopArc s = Romik.path params (coreReverseTime s) := by + simp [nicheTopArc, not_le.mpr hθ, hη] + +private theorem nicheTopArc_of_late {s : ℝ} (hη : eta < s) : + nicheTopArc s = B s := by + simp [nicheTopArc, not_le.mpr (lt_trans theta_lt_eta hη), + not_le.mpr hη] + +theorem nicheTopArc_continuous : Continuous nicheTopArc := by + have hcore : Continuous + (fun s : ℝ => Romik.path params (coreReverseTime s)) := + pathContinuous.comp coreReverseTime_continuous + have hcoreB : Continuous (fun s : ℝ => + if s ≤ eta then Romik.path params (coreReverseTime s) else B s) := by + exact hcore.if_le B_continuous continuous_id continuous_const (by + intro s hs + subst s + rw [coreReverseTime_eta] + exact B_eta_eq_path_phi.symm) + exact D_continuous.if_le hcoreB continuous_id continuous_const (by + intro s hs + subst s + rw [ite_eq_left theta_lt_eta.le, coreReverseTime_theta] + exact D_theta_eq_path_tau) + +/-- Horizontal projection of the complete upper arc is strictly increasing. -/ +theorem nicheTopArc_fst_strictMono : + StrictMonoOn (fun s => (nicheTopArc s).1) (Icc (0 : ℝ) T) := by + intro x hx y hy hxy + change (nicheTopArc x).1 < (nicheTopArc y).1 + by_cases hyθ : y ≤ params.theta + · have hxD : x ∈ Icc (0 : ℝ) params.theta := + ⟨hx.1, le_trans hxy.le hyθ⟩ + have hyD : y ∈ Icc (0 : ℝ) params.theta := ⟨hy.1, hyθ⟩ + rw [nicheTopArc_of_le_theta hxD.2, nicheTopArc_of_le_theta hyθ] + exact D_fst_strictMono hxD hyD hxy + · have hθy : params.theta < y := lt_of_not_ge hyθ + by_cases hxθ : x ≤ params.theta + · have hxD : x ∈ Icc (0 : ℝ) params.theta := ⟨hx.1, hxθ⟩ + have hθD : params.theta ∈ Icc (0 : ℝ) params.theta := + ⟨theta_pos.le, le_rfl⟩ + have hleft := D_fst_strictMono.monotoneOn hxD hθD hxθ + rw [nicheTopArc_of_le_theta hxθ] + by_cases hyη : y ≤ eta + · have hyM : y ∈ Icc params.theta eta := ⟨hθy.le, hyη⟩ + have hcy := coreReverseTime_mem hyM + have hcytau : coreReverseTime y < tau := by + rw [← coreReverseTime_theta] + exact coreReverseTime_strictAnti hθy + have hright := core_path_fst_strictAnti hcy + (right_mem_Icc.2 (lt_trans phi_lt_theta + (lt_trans theta_lt_eta eta_lt_tau)).le) hcytau + rw [nicheTopArc_of_middle hθy hyη] + calc + (D x).1 ≤ (D params.theta).1 := hleft + _ = (Romik.path params tau).1 := congrArg Prod.fst D_theta_eq_path_tau + _ < (Romik.path params (coreReverseTime y)).1 := hright + · have hηy : eta < y := lt_of_not_ge hyη + have hyB : y ∈ Icc eta T := ⟨hηy.le, hy.2⟩ + have hηB : eta ∈ Icc eta T := ⟨le_rfl, eta_lt_T.le⟩ + have hB := B_fst_strictMono hηB hyB hηy + have hcore := core_path_fst_strictAnti + (left_mem_Icc.2 (lt_trans phi_lt_theta + (lt_trans theta_lt_eta eta_lt_tau)).le) + (right_mem_Icc.2 (lt_trans phi_lt_theta + (lt_trans theta_lt_eta eta_lt_tau)).le) + (lt_trans phi_lt_theta (lt_trans theta_lt_eta eta_lt_tau)) + rw [nicheTopArc_of_late hηy] + calc + (D x).1 ≤ (D params.theta).1 := hleft + _ = (Romik.path params tau).1 := congrArg Prod.fst D_theta_eq_path_tau + _ < (Romik.path params params.phi).1 := hcore + _ = (B eta).1 := congrArg Prod.fst B_eta_eq_path_phi.symm + _ < (B y).1 := hB + · have hθx : params.theta < x := lt_of_not_ge hxθ + by_cases hyη : y ≤ eta + · have hxM : x ∈ Icc params.theta eta := + ⟨hθx.le, le_trans hxy.le hyη⟩ + have hyM : y ∈ Icc params.theta eta := ⟨hθy.le, hyη⟩ + have hcyx : coreReverseTime y < coreReverseTime x := + coreReverseTime_strictAnti hxy + rw [nicheTopArc_of_middle hθx hxM.2, + nicheTopArc_of_middle hθy hyη] + exact core_path_fst_strictAnti (coreReverseTime_mem hyM) + (coreReverseTime_mem hxM) hcyx + · have hηy : eta < y := lt_of_not_ge hyη + rw [nicheTopArc_of_late hηy] + by_cases hxη : x ≤ eta + · have hxM : x ∈ Icc params.theta eta := ⟨hθx.le, hxη⟩ + have hcx := coreReverseTime_mem hxM + have hpath : (Romik.path params (coreReverseTime x)).1 ≤ + (Romik.path params params.phi).1 := + core_path_fst_strictAnti.antitoneOn + (left_mem_Icc.2 (lt_trans phi_lt_theta + (lt_trans theta_lt_eta eta_lt_tau)).le) + hcx hcx.1 + have hyB : y ∈ Icc eta T := ⟨hηy.le, hy.2⟩ + have hB := B_fst_strictMono + (left_mem_Icc.2 eta_lt_T.le) hyB hηy + rw [nicheTopArc_of_middle hθx hxη] + calc + (Romik.path params (coreReverseTime x)).1 ≤ + (Romik.path params params.phi).1 := hpath + _ = (B eta).1 := congrArg Prod.fst B_eta_eq_path_phi.symm + _ < (B y).1 := hB + · have hηx : eta < x := lt_of_not_ge hxη + have hxB : x ∈ Icc eta T := ⟨hηx.le, hx.2⟩ + have hyB : y ∈ Icc eta T := ⟨hηy.le, hy.2⟩ + rw [nicheTopArc_of_late hηx] + exact B_fst_strictMono hxB hyB hxy + +theorem nicheTopArc_y_nonneg {s : ℝ} (hs : s ∈ Icc (0 : ℝ) T) : + 0 ≤ (nicheTopArc s).2 := by + by_cases hθ : s ≤ params.theta + · rw [nicheTopArc_of_le_theta hθ] + exact D_y_nonneg ⟨hs.1, hθ⟩ + · have hθs : params.theta < s := lt_of_not_ge hθ + by_cases hη : s ≤ eta + · rw [nicheTopArc_of_middle hθs hη] + exact path_core_y_nonneg (coreReverseTime_mem ⟨hθs.le, hη⟩) + · have hηs : eta < s := lt_of_not_ge hη + rw [nicheTopArc_of_late hηs] + exact B_y_nonneg ⟨hηs.le, hs.2⟩ + +theorem nicheTopArc_y_pos {s : ℝ} (hs : s ∈ Ioo (0 : ℝ) T) : + 0 < (nicheTopArc s).2 := by + by_cases hθ : s ≤ params.theta + · rw [nicheTopArc_of_le_theta hθ] + exact D_y_pos ⟨hs.1, hθ⟩ + · have hθs : params.theta < s := lt_of_not_ge hθ + by_cases hη : s ≤ eta + · rw [nicheTopArc_of_middle hθs hη] + exact path_core_y_pos (coreReverseTime_mem ⟨hθs.le, hη⟩) + · have hηs : eta < s := lt_of_not_ge hη + rw [nicheTopArc_of_late hηs] + exact B_y_pos ⟨hηs.le, hs.2⟩ + +theorem nicheTopArc_zero : nicheTopArc 0 = D 0 := by + exact nicheTopArc_of_le_theta theta_pos.le + +theorem nicheTopArc_T : nicheTopArc T = B T := by + exact nicheTopArc_of_late eta_lt_T + +theorem coreReverseTime_image : + coreReverseTime '' Icc params.theta eta = Icc params.phi tau := by + simpa [coreReverseTime_theta, coreReverseTime_eta] using + coreReverseTime_continuous.continuousOn.image_Icc_of_antitoneOn + theta_lt_eta.le + (coreReverseTime_strictAnti.antitone.antitoneOn (Icc params.theta eta)) + +/-- The glued arc has exactly the three curve images, with no additional +points introduced by the reparametrization. -/ +theorem nicheTopArc_image : + curveImage nicheTopArc (Icc (0 : ℝ) T) = + curveImage D (Icc (0 : ℝ) params.theta) ∪ + curveImage (Romik.path params) (Icc params.phi tau) ∪ + curveImage B (Icc eta T) := by + classical + ext p + constructor + · rintro ⟨s, hs, rfl⟩ + by_cases hθ : s ≤ params.theta + · left; left + exact ⟨s, ⟨hs.1, hθ⟩, (nicheTopArc_of_le_theta hθ).symm⟩ + · have hθs : params.theta < s := lt_of_not_ge hθ + by_cases hη : s ≤ eta + · left; right + exact ⟨coreReverseTime s, coreReverseTime_mem ⟨hθs.le, hη⟩, + (nicheTopArc_of_middle hθs hη).symm⟩ + · right + have hηs : eta < s := lt_of_not_ge hη + exact ⟨s, ⟨hηs.le, hs.2⟩, (nicheTopArc_of_late hηs).symm⟩ + · rintro ((⟨s, hs, rfl⟩ | ⟨t, ht, rfl⟩) | ⟨s, hs, rfl⟩) + · exact ⟨s, ⟨hs.1, le_trans hs.2 theta_lt_T.le⟩, + nicheTopArc_of_le_theta hs.2⟩ + · rw [← coreReverseTime_image] at ht + rcases ht with ⟨s, hs, rfl⟩ + by_cases hst : s = params.theta + · subst s + refine ⟨params.theta, ⟨theta_pos.le, theta_lt_T.le⟩, ?_⟩ + rw [nicheTopArc_of_le_theta le_rfl, coreReverseTime_theta] + exact D_theta_eq_path_tau + · have hθs : params.theta < s := lt_of_le_of_ne hs.1 (Ne.symm hst) + exact ⟨s, ⟨le_trans theta_pos.le hs.1, + le_trans hs.2 eta_lt_T.le⟩, + nicheTopArc_of_middle hθs hs.2⟩ + · by_cases hse : s = eta + · subst s + refine ⟨eta, ⟨le_trans theta_pos.le theta_lt_eta.le, eta_lt_T.le⟩, ?_⟩ + rw [nicheTopArc_of_middle theta_lt_eta le_rfl, coreReverseTime_eta] + exact B_eta_eq_path_phi.symm + · have hηs : eta < s := lt_of_le_of_ne hs.1 (Ne.symm hse) + exact ⟨s, ⟨le_trans (le_trans theta_pos.le theta_lt_eta.le) hs.1, hs.2⟩, + nicheTopArc_of_late hηs⟩ + +/-- A vertically filled strict subgraph over a compact interval. -/ +def strictSubgraphRegion (a b : ℝ) (H : ℝ → ℝ) : Set Point := + {p | p.1 ∈ Icc a b ∧ 0 ≤ p.2 ∧ p.2 < H p.1} + +/-- The closed vertical fill associated with `strictSubgraphRegion`. -/ +def closedSubgraphRegion (a b : ℝ) (H : ℝ → ℝ) : Set Point := + {p | p.1 ∈ Icc a b ∧ 0 ≤ p.2 ∧ p.2 ≤ H p.1} + +/-- The base together with the graph of the roof. -/ +def strictSubgraphBoundary (a b : ℝ) (H : ℝ → ℝ) : Set Point := + {p | p.1 ∈ Icc a b ∧ (p.2 = 0 ∨ p.2 = H p.1)} + +private theorem strictSubgraphRegion_as_image + {a b : ℝ} {H : ℝ → ℝ} + (hHpos : ∀ x ∈ Ioo a b, 0 < H x) + (ha : H a = 0) (hb : H b = 0) : + (fun z : ℝ × ℝ => (z.1, z.2 * H z.1)) '' + (Ioo a b ×ˢ Ico (0 : ℝ) 1) = + strictSubgraphRegion a b H := by + classical + ext p + constructor + · rintro ⟨z, ⟨hzx, hzs⟩, rfl⟩ + have htop := hHpos z.1 hzx + refine ⟨⟨hzx.1.le, hzx.2.le⟩, ?_, ?_⟩ + · exact mul_nonneg hzs.1 htop.le + · exact mul_lt_of_lt_one_left htop hzs.2 + · rintro ⟨hx, hy0, hy⟩ + have hxa : a < p.1 := by + rcases hx.1.eq_or_lt with h | h + · rw [← h, ha] at hy + linarith + · exact h + have hxb : p.1 < b := by + rcases hx.2.eq_or_lt with h | h + · rw [h, hb] at hy + linarith + · exact h + have htop := hHpos p.1 ⟨hxa, hxb⟩ + let s : ℝ := p.2 / H p.1 + have hs : s ∈ Ico (0 : ℝ) 1 := by + constructor + · exact div_nonneg hy0 htop.le + · exact (div_lt_one htop).2 hy + refine ⟨(p.1, s), ⟨⟨hxa, hxb⟩, hs⟩, ?_⟩ + apply Prod.ext + · rfl + · dsimp [s] + field_simp [ne_of_gt htop] + +private theorem closedSubgraphRegion_as_image + {a b : ℝ} {H : ℝ → ℝ} + (hHnonneg : ∀ x ∈ Icc a b, 0 ≤ H x) : + (fun z : ℝ × ℝ => (z.1, z.2 * H z.1)) '' + (Icc a b ×ˢ Icc (0 : ℝ) 1) = + closedSubgraphRegion a b H := by + classical + ext p + constructor + · rintro ⟨z, ⟨hzx, hzs⟩, rfl⟩ + have htop := hHnonneg z.1 hzx + refine ⟨hzx, mul_nonneg hzs.1 htop, ?_⟩ + exact mul_le_of_le_one_left htop hzs.2 + · rintro ⟨hx, hy0, hy⟩ + have htop := hHnonneg p.1 hx + by_cases hzero : H p.1 = 0 + · have hpy : p.2 = 0 := by linarith + refine ⟨(p.1, 0), ⟨hx, by norm_num⟩, ?_⟩ + apply Prod.ext + · rfl + · simpa only [zero_mul] using hpy.symm + · have htop' : 0 < H p.1 := lt_of_le_of_ne htop (Ne.symm hzero) + let s : ℝ := p.2 / H p.1 + have hs : s ∈ Icc (0 : ℝ) 1 := by + constructor + · exact div_nonneg hy0 htop'.le + · exact (div_le_one htop').2 hy + refine ⟨(p.1, s), ⟨hx, hs⟩, ?_⟩ + apply Prod.ext + · rfl + · dsimp [s] + field_simp [hzero] + +theorem closure_strictSubgraphRegion + {a b : ℝ} {H : ℝ → ℝ} (hab : a < b) + (hH : Continuous H) + (hHnonneg : ∀ x ∈ Icc a b, 0 ≤ H x) + (hHpos : ∀ x ∈ Ioo a b, 0 < H x) + (ha : H a = 0) (hb : H b = 0) : + closure (strictSubgraphRegion a b H) = closedSubgraphRegion a b H := by + let P : Set (ℝ × ℝ) := Ioo a b ×ˢ Ico (0 : ℝ) 1 + let Q : Set (ℝ × ℝ) := Icc a b ×ˢ Icc (0 : ℝ) 1 + let F : ℝ × ℝ → Point := fun z => (z.1, z.2 * H z.1) + have hclP : closure P = Q := by + simp only [P, Q, closure_prod_eq, closure_Ioo hab.ne, + closure_Ico (by norm_num : (0 : ℝ) ≠ 1)] + have hQcompact : IsCompact Q := by + exact isCompact_Icc.prod isCompact_Icc + have hF : Continuous F := by + dsimp [F] + exact continuous_fst.prodMk (continuous_snd.mul (hH.comp continuous_fst)) + have hPcompact : IsCompact (closure P) := by + rw [hclP] + exact hQcompact + calc + closure (strictSubgraphRegion a b H) = closure (F '' P) := by + rw [strictSubgraphRegion_as_image hHpos ha hb] + _ = F '' closure P := + (image_closure_of_isCompact hPcompact hF.continuousOn).symm + _ = F '' Q := by rw [hclP] + _ = closedSubgraphRegion a b H := + closedSubgraphRegion_as_image hHnonneg + +theorem interior_strictSubgraphRegion + {a b : ℝ} {H : ℝ → ℝ} (hH : Continuous H) : + interior (strictSubgraphRegion a b H) = + {p | p.1 ∈ Ioo a b ∧ 0 < p.2 ∧ p.2 < H p.1} := by + let O : Set Point := {p | p.1 ∈ Ioo a b ∧ 0 < p.2 ∧ p.2 < H p.1} + have hOopen : IsOpen O := by + dsimp [O] + exact (isOpen_Ioo.preimage continuous_fst).inter + ((isOpen_Ioi.preimage continuous_snd).inter + (isOpen_lt continuous_snd (hH.comp continuous_fst))) + apply Set.Subset.antisymm + · intro p hp + have hpS := interior_subset hp + have hxmono : strictSubgraphRegion a b H ⊆ Icc a b ×ˢ (Set.univ : Set ℝ) := by + intro q hq + exact ⟨hq.1, Set.mem_univ _⟩ + have hymono : strictSubgraphRegion a b H ⊆ (Set.univ : Set ℝ) ×ˢ Ici 0 := by + intro q hq + exact ⟨Set.mem_univ _, hq.2.1⟩ + have hx := interior_mono hxmono hp + have hy := interior_mono hymono hp + rw [interior_prod_eq, interior_Icc, interior_univ] at hx + rw [interior_prod_eq, interior_univ, interior_Ici] at hy + exact ⟨hx.1, hy.2, hpS.2.2⟩ + · apply interior_maximal + · intro p hp + exact ⟨⟨hp.1.1.le, hp.1.2.le⟩, hp.2.1.le, hp.2.2⟩ + · exact hOopen + +/-- The frontier of a positive strict vertical subgraph consists exactly of +its roof and its base. -/ +theorem frontier_strictSubgraphRegion + {a b : ℝ} {H : ℝ → ℝ} (hab : a < b) + (hH : Continuous H) + (hHnonneg : ∀ x ∈ Icc a b, 0 ≤ H x) + (hHpos : ∀ x ∈ Ioo a b, 0 < H x) + (ha : H a = 0) (hb : H b = 0) : + frontier (strictSubgraphRegion a b H) = strictSubgraphBoundary a b H := by + rw [frontier, closure_strictSubgraphRegion hab hH hHnonneg hHpos ha hb, + interior_strictSubgraphRegion hH] + ext p + simp only [Set.mem_sdiff, closedSubgraphRegion, strictSubgraphBoundary, + Set.mem_ofPred_eq] + constructor + · rintro ⟨⟨hx, hy0, hyH⟩, hnot⟩ + refine ⟨hx, ?_⟩ + by_cases hya : p.2 = 0 + · exact Or.inl hya + right + by_contra hyne + apply hnot + refine ⟨?_, lt_of_le_of_ne hy0 (Ne.symm hya), lt_of_le_of_ne hyH hyne⟩ + constructor + · apply lt_of_le_of_ne hx.1 + intro heq + have hp0 : p.2 = 0 := by + rw [← heq, ha] at hyH + linarith + exact hya hp0 + · apply lt_of_le_of_ne hx.2 + intro heq + have hp0 : p.2 = 0 := by + rw [heq, hb] at hyH + linarith + exact hya hp0 + · rintro ⟨hx, hbase | hroof⟩ + · refine ⟨⟨hx, ?_, ?_⟩, ?_⟩ + · simp [hbase] + · simpa [hbase] using hHnonneg p.1 hx + · intro hstrict + rw [hbase] at hstrict + exact (lt_irrefl (0 : ℝ)) hstrict.2.1 + · refine ⟨⟨hx, ?_, hroof.le⟩, ?_⟩ + · rw [hroof] + exact hHnonneg p.1 hx + · intro hstrict + exact (lt_irrefl (H p.1)) (hroof ▸ hstrict.2.2) + +/-! ## Turning a monotone roof arc into a global continuous graph -/ + +/-- Identify a strictly horizontally increasing arc with its horizontal coordinate interval. -/ +noncomputable def horizontalOrderIso + (γ : ℝ → Point) {a b : ℝ} (hab : a < b) + (hγ : ContinuousOn γ (Icc a b)) + (hx : StrictMonoOn (fun t ↦ (γ t).1) (Icc a b)) : + Icc a b ≃o Icc (γ a).1 (γ b).1 := by + have himage : + (fun t ↦ (γ t).1) '' Icc a b = Icc (γ a).1 (γ b).1 := + hγ.fst.image_Icc_of_monotoneOn hab.le hx.monotoneOn + exact + (StrictMonoOn.orderIso (fun t ↦ (γ t).1) (Icc a b) hx).trans + (Set.orderIsoOfEq _ _ himage) + +@[simp] +theorem horizontalOrderIso_apply_val + (γ : ℝ → Point) {a b : ℝ} (hab : a < b) + (hγ : ContinuousOn γ (Icc a b)) + (hx : StrictMonoOn (fun t ↦ (γ t).1) (Icc a b)) + (t : Icc a b) : + ((horizontalOrderIso γ hab hγ hx t : Icc (γ a).1 (γ b).1) : ℝ) = + (γ t.1).1 := by + rfl + +/-- Express the arc’s vertical coordinate as a function of its horizontal coordinate. -/ +noncomputable def roofOnHorizontalRange + (γ : ℝ → Point) {a b : ℝ} (hab : a < b) + (hγ : ContinuousOn γ (Icc a b)) + (hx : StrictMonoOn (fun t ↦ (γ t).1) (Icc a b)) : + Icc (γ a).1 (γ b).1 → ℝ := + fun X ↦ (γ ((horizontalOrderIso γ hab hγ hx).symm X).1).2 + +theorem continuous_roofOnHorizontalRange + (γ : ℝ → Point) {a b : ℝ} (hab : a < b) + (hγ : ContinuousOn γ (Icc a b)) + (hx : StrictMonoOn (fun t ↦ (γ t).1) (Icc a b)) : + Continuous (roofOnHorizontalRange γ hab hγ hx) := by + exact continuous_snd.comp + (hγ.domRestrict.comp (horizontalOrderIso γ hab hγ hx).symm.continuous) + +theorem horizontal_endpoints_le + (γ : ℝ → Point) {a b : ℝ} (hab : a < b) + (hx : StrictMonoOn (fun t ↦ (γ t).1) (Icc a b)) : + (γ a).1 ≤ (γ b).1 := + (hx (left_mem_Icc.2 hab.le) (right_mem_Icc.2 hab.le) hab).le + +/-- Extend the roof graph to the real line by clamping to its endpoint interval. -/ +noncomputable def monotoneCurveRoof + (γ : ℝ → Point) {a b : ℝ} (hab : a < b) + (hγ : ContinuousOn γ (Icc a b)) + (hx : StrictMonoOn (fun t ↦ (γ t).1) (Icc a b)) : ℝ → ℝ := + Set.IccExtend (horizontal_endpoints_le γ hab hx) + (roofOnHorizontalRange γ hab hγ hx) + +theorem continuous_monotoneCurveRoof + (γ : ℝ → Point) {a b : ℝ} (hab : a < b) + (hγ : ContinuousOn γ (Icc a b)) + (hx : StrictMonoOn (fun t ↦ (γ t).1) (Icc a b)) : + Continuous (monotoneCurveRoof γ hab hγ hx) := by + exact (continuous_roofOnHorizontalRange γ hab hγ hx).Icc_extend' + +private theorem horizontal_mem_range + (γ : ℝ → Point) {a b t : ℝ} (hab : a < b) + (hx : StrictMonoOn (fun t ↦ (γ t).1) (Icc a b)) + (ht : t ∈ Icc a b) : + (γ t).1 ∈ Icc (γ a).1 (γ b).1 := by + exact ⟨hx.monotoneOn (left_mem_Icc.2 hab.le) ht ht.1, + hx.monotoneOn ht (right_mem_Icc.2 hab.le) ht.2⟩ + +theorem monotoneCurveRoof_at + (γ : ℝ → Point) {a b t : ℝ} (hab : a < b) + (hγ : ContinuousOn γ (Icc a b)) + (hx : StrictMonoOn (fun t ↦ (γ t).1) (Icc a b)) + (ht : t ∈ Icc a b) : + monotoneCurveRoof γ hab hγ hx (γ t).1 = (γ t).2 := by + let e := horizontalOrderIso γ hab hγ hx + have htr := horizontal_mem_range γ hab hx ht + have heq : e ⟨t, ht⟩ = ⟨(γ t).1, htr⟩ := by + apply Subtype.ext + rfl + have hinv : e.symm ⟨(γ t).1, htr⟩ = ⟨t, ht⟩ := by + rw [← heq, e.symm_apply_apply] + rw [monotoneCurveRoof, Set.IccExtend_of_mem _ _ htr] + change (γ (e.symm ⟨(γ t).1, htr⟩).1).2 = (γ t).2 + rw [hinv] + +theorem verticalFill_eq_strictSubgraphRegion + (γ : ℝ → Point) {a b : ℝ} (hab : a < b) + (hγ : ContinuousOn γ (Icc a b)) + (hx : StrictMonoOn (fun t ↦ (γ t).1) (Icc a b)) : + verticalFill γ (Icc a b) = + strictSubgraphRegion (γ a).1 (γ b).1 + (monotoneCurveRoof γ hab hγ hx) := by + ext p + constructor + · rintro ⟨t, ht, hxt, hy0, hy⟩ + have htr := horizontal_mem_range γ hab hx ht + refine ⟨?_, hy0, ?_⟩ + · simpa [hxt] using htr + · rw [hxt, monotoneCurveRoof_at γ hab hγ hx ht] + exact hy + · rintro ⟨hpx, hy0, hy⟩ + let e := horizontalOrderIso γ hab hγ hx + let ts : Icc a b := e.symm ⟨p.1, hpx⟩ + have heval := congrArg Subtype.val + ((horizontalOrderIso γ hab hγ hx).apply_symm_apply ⟨p.1, hpx⟩) + have hxt : (γ ts.1).1 = p.1 := by + change + (γ ((horizontalOrderIso γ hab hγ hx).symm ⟨p.1, hpx⟩).1).1 = p.1 + simpa only [horizontalOrderIso_apply_val] using heval + refine ⟨ts.1, ts.2, hxt.symm, hy0, ?_⟩ + rw [← hxt, monotoneCurveRoof_at γ hab hγ hx ts.2] at hy + exact hy + +theorem curveImage_eq_roofGraph + (γ : ℝ → Point) {a b : ℝ} (hab : a < b) + (hγ : ContinuousOn γ (Icc a b)) + (hx : StrictMonoOn (fun t ↦ (γ t).1) (Icc a b)) : + curveImage γ (Icc a b) = + {p | p.1 ∈ Icc (γ a).1 (γ b).1 ∧ + p.2 = monotoneCurveRoof γ hab hγ hx p.1} := by + ext p + constructor + · rintro ⟨t, ht, rfl⟩ + exact ⟨horizontal_mem_range γ hab hx ht, + (monotoneCurveRoof_at γ hab hγ hx ht).symm⟩ + · rintro ⟨hpx, hpy⟩ + let e := horizontalOrderIso γ hab hγ hx + let ts : Icc a b := e.symm ⟨p.1, hpx⟩ + have heval := congrArg Subtype.val + ((horizontalOrderIso γ hab hγ hx).apply_symm_apply ⟨p.1, hpx⟩) + have hxt : (γ ts.1).1 = p.1 := by + change + (γ ((horizontalOrderIso γ hab hγ hx).symm ⟨p.1, hpx⟩).1).1 = p.1 + simpa only [horizontalOrderIso_apply_val] using heval + refine ⟨ts.1, ts.2, ?_⟩ + apply Prod.ext + · exact hxt + · calc + (γ ts.1).2 = monotoneCurveRoof γ hab hγ hx (γ ts.1).1 := + (monotoneCurveRoof_at γ hab hγ hx ts.2).symm + _ = monotoneCurveRoof γ hab hγ hx p.1 := by rw [hxt] + _ = p.2 := hpy.symm + +theorem T_pos_frontier : 0 < T := by + dsimp [T] + nlinarith [Real.pi_pos] + +/-- The continuous roof function determined by the complete niche top arc. -/ +noncomputable def nicheRoof : ℝ → ℝ := + monotoneCurveRoof nicheTopArc T_pos_frontier + nicheTopArc_continuous.continuousOn nicheTopArc_fst_strictMono + +theorem nicheRoof_continuous : Continuous nicheRoof := + continuous_monotoneCurveRoof nicheTopArc T_pos_frontier + nicheTopArc_continuous.continuousOn nicheTopArc_fst_strictMono + +theorem nicheRoof_at_topArc {s : ℝ} (hs : s ∈ Icc (0 : ℝ) T) : + nicheRoof (nicheTopArc s).1 = (nicheTopArc s).2 := + monotoneCurveRoof_at nicheTopArc T_pos_frontier + nicheTopArc_continuous.continuousOn nicheTopArc_fst_strictMono hs + +theorem nicheRoof_nonneg {X : ℝ} + (hX : X ∈ Icc (D 0).1 (B T).1) : 0 ≤ nicheRoof X := by + have hends : Icc (D 0).1 (B T).1 = + Icc (nicheTopArc 0).1 (nicheTopArc T).1 := by + rw [nicheTopArc_zero, nicheTopArc_T] + rw [hends] at hX + let e := horizontalOrderIso nicheTopArc T_pos_frontier + nicheTopArc_continuous.continuousOn nicheTopArc_fst_strictMono + let s : Icc (0 : ℝ) T := e.symm ⟨X, hX⟩ + have heval := congrArg Subtype.val + ((horizontalOrderIso nicheTopArc T_pos_frontier + nicheTopArc_continuous.continuousOn + nicheTopArc_fst_strictMono).apply_symm_apply ⟨X, hX⟩) + have hxarc : (nicheTopArc s.1).1 = X := by + change + (nicheTopArc ((horizontalOrderIso nicheTopArc T_pos_frontier + nicheTopArc_continuous.continuousOn + nicheTopArc_fst_strictMono).symm ⟨X, hX⟩).1).1 = X + simpa only [horizontalOrderIso_apply_val] using heval + rw [← hxarc, nicheRoof_at_topArc s.2] + exact nicheTopArc_y_nonneg s.2 + +theorem nicheRoof_pos {X : ℝ} + (hX : X ∈ Ioo (D 0).1 (B T).1) : 0 < nicheRoof X := by + have hends : Ioo (D 0).1 (B T).1 = + Ioo (nicheTopArc 0).1 (nicheTopArc T).1 := by + rw [nicheTopArc_zero, nicheTopArc_T] + rw [hends] at hX + let e := horizontalOrderIso nicheTopArc T_pos_frontier + nicheTopArc_continuous.continuousOn nicheTopArc_fst_strictMono + have hXcc : X ∈ Icc (nicheTopArc 0).1 (nicheTopArc T).1 := + ⟨hX.1.le, hX.2.le⟩ + let s : Icc (0 : ℝ) T := e.symm ⟨X, hXcc⟩ + have heval := congrArg Subtype.val + ((horizontalOrderIso nicheTopArc T_pos_frontier + nicheTopArc_continuous.continuousOn + nicheTopArc_fst_strictMono).apply_symm_apply ⟨X, hXcc⟩) + have hxarc : (nicheTopArc s.1).1 = X := by + change + (nicheTopArc ((horizontalOrderIso nicheTopArc T_pos_frontier + nicheTopArc_continuous.continuousOn + nicheTopArc_fst_strictMono).symm ⟨X, hXcc⟩).1).1 = X + simpa only [horizontalOrderIso_apply_val] using heval + have hs0 : 0 < s.1 := by + by_contra hn + have hszero : s.1 = 0 := le_antisymm (le_of_not_gt hn) s.2.1 + have hxzero : (nicheTopArc 0).1 = X := by + simpa [hszero] using hxarc + exact (ne_of_lt hX.1) hxzero + have hsT : s.1 < T := by + by_contra hn + have hsT' : s.1 = T := le_antisymm s.2.2 (le_of_not_gt hn) + have hxT : (nicheTopArc T).1 = X := by + simpa [hsT'] using hxarc + exact (ne_of_gt hX.2) hxT + rw [← hxarc, nicheRoof_at_topArc s.2] + exact nicheTopArc_y_pos ⟨hs0, hsT⟩ + +theorem nicheRoof_left : nicheRoof (D 0).1 = 0 := by + rw [← nicheTopArc_zero, nicheRoof_at_topArc (left_mem_Icc.2 T_pos_frontier.le), + nicheTopArc_zero] + exact D_zero_y_zero + +theorem nicheRoof_right : nicheRoof (B T).1 = 0 := by + rw [← nicheTopArc_T, nicheRoof_at_topArc (right_mem_Icc.2 T_pos_frontier.le), + nicheTopArc_T] + exact B_T_y_zero + +private theorem nicheTopArc_verticalFill : + verticalFill nicheTopArc (Icc (0 : ℝ) T) = certifiedNicheRegion := by + classical + ext q + constructor + · rintro ⟨s, hs, hx, hy0, hy⟩ + have htop : nicheTopArc s ∈ + curveImage D (Icc (0 : ℝ) params.theta) ∪ + curveImage (Romik.path params) (Icc params.phi tau) ∪ + curveImage B (Icc eta T) := by + rw [← nicheTopArc_image] + exact ⟨s, hs, rfl⟩ + rcases htop with (⟨r, hr, her⟩ | ⟨r, hr, her⟩) | ⟨r, hr, her⟩ + · exact Or.inl (Or.inl ⟨r, hr, by simpa [her] using hx, + hy0, by simpa [her] using hy⟩) + · exact Or.inl (Or.inr ⟨r, hr, by simpa [her] using hx, + hy0, by simpa [her] using hy⟩) + · exact Or.inr ⟨r, hr, by simpa [her] using hx, + hy0, by simpa [her] using hy⟩ + · intro hq + rcases hq with (⟨r, hr, hx, hy0, hy⟩ | ⟨r, hr, hx, hy0, hy⟩) | + ⟨r, hr, hx, hy0, hy⟩ + · have htop : D r ∈ curveImage nicheTopArc (Icc (0 : ℝ) T) := by + rw [nicheTopArc_image] + exact Or.inl (Or.inl ⟨r, hr, rfl⟩) + rcases htop with ⟨s, hs, her⟩ + exact ⟨s, hs, by simpa [her] using hx, + hy0, by simpa [her] using hy⟩ + · have htop : Romik.path params r ∈ + curveImage nicheTopArc (Icc (0 : ℝ) T) := by + rw [nicheTopArc_image] + exact Or.inl (Or.inr ⟨r, hr, rfl⟩) + rcases htop with ⟨s, hs, her⟩ + exact ⟨s, hs, by simpa [her] using hx, + hy0, by simpa [her] using hy⟩ + · have htop : B r ∈ curveImage nicheTopArc (Icc (0 : ℝ) T) := by + rw [nicheTopArc_image] + exact Or.inr ⟨r, hr, rfl⟩ + rcases htop with ⟨s, hs, her⟩ + exact ⟨s, hs, by simpa [her] using hx, + hy0, by simpa [her] using hy⟩ + +/-- The three certified fills form one strict subgraph. -/ +theorem certifiedNicheRegion_eq_strictSubgraph : + certifiedNicheRegion = + strictSubgraphRegion (D 0).1 (B T).1 nicheRoof := by + rw [← nicheTopArc_verticalFill, + verticalFill_eq_strictSubgraphRegion nicheTopArc T_pos_frontier + nicheTopArc_continuous.continuousOn nicheTopArc_fst_strictMono, + nicheTopArc_zero, nicheTopArc_T] + rfl + +private theorem lineSegment_horizontal + {a b : Point} (hab : a.1 < b.1) (ha : a.2 = 0) (hb : b.2 = 0) : + lineSegment a b = {p | p.1 ∈ Icc a.1 b.1 ∧ p.2 = 0} := by + classical + ext p + constructor + · rintro ⟨r, hr, rfl⟩ + constructor + · have hba : 0 ≤ b.1 - a.1 := sub_nonneg.mpr hab.le + constructor + · have hmul : 0 ≤ r * (b.1 - a.1) := mul_nonneg hr.1 hba + nlinarith [hmul] + · have hmul : 0 ≤ (1 - r) * (b.1 - a.1) := + mul_nonneg (sub_nonneg.mpr hr.2) hba + nlinarith [hmul] + · simp [ha, hb] + · rintro ⟨hx, hy⟩ + let r : ℝ := (p.1 - a.1) / (b.1 - a.1) + have hden : 0 < b.1 - a.1 := sub_pos.mpr hab + have hr : r ∈ Icc (0 : ℝ) 1 := by + constructor + · exact div_nonneg (sub_nonneg.mpr hx.1) hden.le + · exact (div_le_one hden).2 (by linarith [hx.2]) + refine ⟨r, hr, ?_⟩ + apply Prod.ext + · dsimp [r] + field_simp [ne_of_gt hden] + ring + · simp [ha, hb, hy] + +private theorem niche_horizontal_endpoints : (D 0).1 < (B T).1 := by + have h := nicheTopArc_fst_strictMono + (left_mem_Icc.2 T_pos_frontier.le) + (right_mem_Icc.2 T_pos_frontier.le) T_pos_frontier + simpa [nicheTopArc_zero, nicheTopArc_T] using h + +theorem claimedNicheBoundary_eq_subgraphBoundary : + claimedNicheBoundary = + strictSubgraphBoundary (D 0).1 (B T).1 nicheRoof := by + have hbase := lineSegment_horizontal niche_horizontal_endpoints + D_zero_y_zero B_T_y_zero + have hroof := curveImage_eq_roofGraph nicheTopArc T_pos_frontier + nicheTopArc_continuous.continuousOn nicheTopArc_fst_strictMono + rw [nicheTopArc_zero, nicheTopArc_T] at hroof + ext p + constructor + · intro hp + change p ∈ lineSegment (D 0) (B T) ∪ + curveImage B (Icc eta T) ∪ + curveImage (Romik.path params) (Icc params.phi tau) ∪ + curveImage D (Icc 0 params.theta) at hp + have hp' : p ∈ lineSegment (D 0) (B T) ∨ + p ∈ curveImage nicheTopArc (Icc (0 : ℝ) T) := by + rw [nicheTopArc_image] + rcases hp with ((hb | hB) | hpath) | hD + · exact Or.inl hb + · exact Or.inr (Or.inr hB) + · exact Or.inr (Or.inl (Or.inr hpath)) + · exact Or.inr (Or.inl (Or.inl hD)) + rcases hp' with hb | hr + · rw [hbase] at hb + exact ⟨hb.1, Or.inl hb.2⟩ + · rw [hroof] at hr + exact ⟨hr.1, Or.inr hr.2⟩ + · rintro ⟨hx, hbase' | hroof'⟩ + · have hb : p ∈ lineSegment (D 0) (B T) := by + rw [hbase] + exact ⟨hx, hbase'⟩ + change p ∈ lineSegment (D 0) (B T) ∪ + curveImage B (Icc eta T) ∪ + curveImage (Romik.path params) (Icc params.phi tau) ∪ + curveImage D (Icc 0 params.theta) + exact Or.inl (Or.inl (Or.inl hb)) + · have hr : p ∈ curveImage nicheTopArc (Icc (0 : ℝ) T) := by + rw [hroof] + exact ⟨hx, hroof'⟩ + rw [nicheTopArc_image] at hr + change p ∈ lineSegment (D 0) (B T) ∪ + curveImage B (Icc eta T) ∪ + curveImage (Romik.path params) (Icc params.phi tau) ∪ + curveImage D (Icc 0 params.theta) + rcases hr with (hD | hpath) | hB + · exact Or.inr hD + · exact Or.inl (Or.inr hpath) + · exact Or.inl (Or.inl (Or.inr hB)) + +/-- Direct frontier calculation for the certified three-fill region. -/ +theorem frontier_certifiedNicheRegion : + frontier certifiedNicheRegion = claimedNicheBoundary := by + rw [certifiedNicheRegion_eq_strictSubgraph, + frontier_strictSubgraphRegion niche_horizontal_endpoints nicheRoof_continuous + (by intro X hX; exact nicheRoof_nonneg hX) + (by intro X hX; exact nicheRoof_pos hX) + nicheRoof_left nicheRoof_right, + ← claimedNicheBoundary_eq_subgraphBoundary] + +/-! ## Literal instantaneous wedges lie below the certified graph -/ + +private theorem sin_pos_frontier {t : ℝ} (ht : t ∈ Ioo (0 : ℝ) T) : + 0 < Real.sin t := + Real.sin_pos_of_pos_of_lt_pi ht.1 + (lt_trans ht.2 (by dsimp [T]; nlinarith [Real.pi_pos])) + +private theorem cos_pos_frontier {t : ℝ} (ht : t ∈ Ioo (0 : ℝ) T) : + 0 < Real.cos t := + Real.cos_pos_of_mem_Ioo + ⟨by nlinarith [Real.pi_pos, ht.1], by simpa [T] using ht.2⟩ + +private theorem instantRoof_le_of_u_outside {t X Y : ℝ} + (ht : t ∈ Ioo (0 : ℝ) T) + (hu : 0 ≤ dot ((X, Y) - Romik.path params t) (u t)) : + instantRoof t X ≤ Y := by + apply le_trans (min_le_left _ _) + unfold bRoof + apply (div_le_iff₀ (sin_pos_frontier ht)).2 + dsimp [dot, u] at hu ⊢ + nlinarith + +private theorem instantRoof_le_of_v_outside {t X Y : ℝ} + (ht : t ∈ Ioo (0 : ℝ) T) + (hv : 0 ≤ dot ((X, Y) - Romik.path params t) (v t)) : + instantRoof t X ≤ Y := by + apply le_trans (min_le_right _ _) + unfold dRoof + apply (div_le_iff₀ (cos_pos_frontier ht)).2 + dsimp [dot, v] at hv ⊢ + nlinarith + +/-- A core path point dominates every instantaneous roof at its horizontal +coordinate. This is the exact geometric content of the two no-hidden +inequalities. -/ +theorem core_is_upper_envelope {r : ℝ} (hr : r ∈ Icc params.phi tau) : + ∀ t ∈ Ioo (0 : ℝ) T, + instantRoof t (Romik.path params r).1 ≤ (Romik.path params r).2 := by + intro t ht + by_cases htr : r ≤ t + · have hU : 0 ≤ dot (Romik.path params r - Romik.path params t) (u t) := + noHiddenU_direct r ⟨hr.1, le_trans hr.2 tau_lt_T.le⟩ t + ⟨htr, ht.2.le⟩ + exact instantRoof_le_of_u_outside ht hU + · have htr' : t ≤ r := le_of_not_ge htr + have hV : 0 ≤ dot (Romik.path params r - Romik.path params t) (v t) := + noHiddenV_direct t ⟨ht.1.le, le_trans htr' hr.2⟩ r ⟨htr', hr.2⟩ + exact instantRoof_le_of_v_outside ht hV + +/-- Every point of the glued certified roof dominates every instantaneous +wall roof at its horizontal coordinate. -/ +theorem nicheTopArc_is_upper_envelope {s t : ℝ} + (hs : s ∈ Icc (0 : ℝ) T) (ht : t ∈ Ioo (0 : ℝ) T) : + instantRoof t (nicheTopArc s).1 ≤ (nicheTopArc s).2 := by + by_cases hθ : s ≤ params.theta + · rw [nicheTopArc_of_le_theta hθ] + rcases D_boundary_outside ht ⟨hs.1, hθ⟩ with hu | hv + · exact instantRoof_le_of_u_outside ht hu + · exact instantRoof_le_of_v_outside ht hv + · have hθs : params.theta < s := lt_of_not_ge hθ + by_cases hη : s ≤ eta + · rw [nicheTopArc_of_middle hθs hη] + exact core_is_upper_envelope (coreReverseTime_mem ⟨hθs.le, hη⟩) t ht + · have hηs : eta < s := lt_of_not_ge hη + rw [nicheTopArc_of_late hηs] + rcases B_boundary_outside ht ⟨hηs.le, hs.2⟩ with hu | hv + · exact instantRoof_le_of_u_outside ht hu + · exact instantRoof_le_of_v_outside ht hv + +private theorem niche_point_horizontal_range {q : Point} + (hq : q ∈ Romik.niche params) : q.1 ∈ Ioo (D 0).1 (B T).1 := by + rcases hq with ⟨hqFan, t, ht, hquad⟩ + have hq0 : 0 ≤ q.2 := by simpa [capFan] using hqFan + have hwalls := hquad + change + dot (q - Romik.path params t) (u t) < 0 ∧ + dot (q - Romik.path params t) (v t) < 0 at hwalls + have hBT := B_T_u_nonneg ht + have hqBT : dot (q - B T) (u t) < 0 := by + unfold dot at hwalls hBT ⊢ + dsimp [u] at hwalls hBT ⊢ + linarith + have hright : q.1 < (B T).1 := by + by_contra hn + have hdx : 0 ≤ q.1 - (B T).1 := sub_nonneg.mpr (le_of_not_gt hn) + have hxterm : 0 ≤ (q.1 - (B T).1) * Real.cos t := + mul_nonneg hdx (cos_pos_frontier ht).le + have hyterm : 0 ≤ (q.2 - (B T).2) * Real.sin t := by + rw [B_T_y_zero] + simpa using mul_nonneg hq0 (sin_pos_frontier ht).le + dsimp [dot, u] at hqBT + linarith + have hD := D_zero_v_nonneg ht + have hqD : dot (q - D 0) (v t) < 0 := by + unfold dot at hwalls hD ⊢ + dsimp [v] at hwalls hD ⊢ + linarith + have hleft : (D 0).1 < q.1 := by + by_contra hn + have hdx : q.1 - (D 0).1 ≤ 0 := sub_nonpos.mpr (le_of_not_gt hn) + have hxterm : 0 ≤ (q.1 - (D 0).1) * (-Real.sin t) := + mul_nonneg_of_nonpos_of_nonpos hdx (neg_nonpos.mpr (sin_pos_frontier ht).le) + have hyterm : 0 ≤ (q.2 - (D 0).2) * Real.cos t := by + rw [D_zero_y_zero] + simpa using mul_nonneg hq0 (cos_pos_frontier ht).le + dsimp [dot, v] at hqD + linarith + exact ⟨hleft, hright⟩ + +private theorem niche_subset_certifiedNicheRegion : + Romik.niche params ⊆ certifiedNicheRegion := by + intro q hq + rcases hq with ⟨hqFan, t, ht, hquad⟩ + have hqAll : q ∈ Romik.niche params := ⟨hqFan, t, ht, hquad⟩ + have hXopen := niche_point_horizontal_range hqAll + have hX : q.1 ∈ Icc (nicheTopArc 0).1 (nicheTopArc T).1 := by + simpa [nicheTopArc_zero, nicheTopArc_T] using + (show q.1 ∈ Icc (D 0).1 (B T).1 from ⟨hXopen.1.le, hXopen.2.le⟩) + let e := horizontalOrderIso nicheTopArc T_pos_frontier + nicheTopArc_continuous.continuousOn nicheTopArc_fst_strictMono + let s : Icc (0 : ℝ) T := e.symm ⟨q.1, hX⟩ + have heval := congrArg Subtype.val + ((horizontalOrderIso nicheTopArc T_pos_frontier + nicheTopArc_continuous.continuousOn + nicheTopArc_fst_strictMono).apply_symm_apply ⟨q.1, hX⟩) + have hxarc : (nicheTopArc s.1).1 = q.1 := by + change + (nicheTopArc ((horizontalOrderIso nicheTopArc T_pos_frontier + nicheTopArc_continuous.continuousOn + nicheTopArc_fst_strictMono).symm ⟨q.1, hX⟩).1).1 = q.1 + simpa only [horizontalOrderIso_apply_val] using heval + have hinstant : q.2 < instantRoof t q.1 := by + have hw := (mem_innerQuadrant_iff_roofs ht).1 hquad + simpa [instantRoof, lt_min_iff] using hw + have hupper := nicheTopArc_is_upper_envelope s.2 ht + have hroofAt := nicheRoof_at_topArc s.2 + have hq0 : 0 ≤ q.2 := by simpa [capFan] using hqFan + rw [certifiedNicheRegion_eq_strictSubgraph] + refine ⟨by simpa [nicheTopArc_zero, nicheTopArc_T] using hX, hq0, ?_⟩ + calc + q.2 < instantRoof t q.1 := hinstant + _ ≤ (nicheTopArc s.1).2 := by simpa [hxarc] using hupper + _ = nicheRoof q.1 := by rw [← hroofAt, hxarc] + +private theorem certifiedNicheRegion_subset_niche : + certifiedNicheRegion ⊆ Romik.niche params := by + intro q hq + rcases hq with (⟨r, hr, hx, hy0, hy⟩ | ⟨r, hr, hx, hy0, hy⟩) | + ⟨r, hr, hx, hy0, hy⟩ + · have hmem := vertical_below_D_mem_niche hr hy0 hy + have heq : q = ((D r).1, q.2) := by + apply Prod.ext + · exact hx + · rfl + rw [heq] + exact hmem + · have hmem := vertical_below_path_mem_niche hr hy0 hy + have heq : q = ((Romik.path params r).1, q.2) := by + apply Prod.ext + · exact hx + · rfl + rw [heq] + exact hmem + · have hmem := vertical_below_B_mem_niche hr hy0 hy + have heq : q = ((B r).1, q.2) := by + apply Prod.ext + · exact hx + · rfl + rw [heq] + exact hmem + +/-- Literal niche equals the three concrete strict vertical fills. -/ +theorem niche_eq_certifiedNicheRegion : + Romik.niche params = certifiedNicheRegion := + Set.Subset.antisymm niche_subset_certifiedNicheRegion + certifiedNicheRegion_subset_niche + +/-- Final exact set-valued boundary equality required by Part C. -/ +theorem niche_frontier_direct : + frontier (Romik.niche params) = claimedNicheBoundary := by + rw [niche_eq_certifiedNicheRegion] + exact frontier_certifiedNicheRegion + +end Stage4 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Part C Stage 4: connectedness of the literal niche + +The independent vertical-fill module proves connectedness of the certified +three-piece region. Once the boundary layer identifies that region with the +literal niche, connectedness is immediate. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage4 + +open Set + +/-- Concrete connectedness of the literal niche. -/ +theorem niche_connected_direct : IsConnected (Romik.niche params) := by + rw [niche_eq_certifiedNicheRegion] + exact certifiedNicheRegion_connected + +end Stage4 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Part C Stage 4: vertical-fibre topology of the fixed sofa + +The argument in this file is independent of any Jordan-curve theorem. The +cap is compact and convex. Its removed niche is a strict vertical subgraph. +Consequently every nonempty vertical section of the complement is an interval. +Moreover, a highest point of each cap section survives: if it belonged to the +strict subgraph, one of the certified graph points would be a still higher cap +point. Thus the horizontal projections of the cap and sofa agree. A compact +map with connected fibres over that connected projection closes connectedness. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage4 + +open Set +open Stage2 + +private theorem physical_cos_diff_nonneg {s t : ℝ} + (hs : s ∈ Icc (0 : ℝ) T) (ht : t ∈ Icc (0 : ℝ) T) : + 0 ≤ Real.cos (t - s) := by + apply Real.cos_nonneg_of_neg_pi_div_two_le_of_le + · have hsT := hs.2 + have ht0 := ht.1 + dsimp [T] at hsT + linarith + · have hs0 := hs.1 + have htT := ht.2 + dsimp [T] at htT + linarith + +private theorem phi_upper_twentieth_fiber : + params.phi ≤ (1 / 20 : ℝ) := by + have h := phi_bounds.2 + norm_num at h ⊢ + linarith + +private theorem a1_lower_six_fifths_fiber : + (6 / 5 : ℝ) ≤ params.a1 := by + have h := Romik.a1_lower_bound_of_mem_box params_mem + norm_num at h ⊢ + linarith + +private theorem alphaBeta1_snd_nonneg_fiber {s : ℝ} + (hs0 : 0 ≤ s) (hs20 : s ≤ (1 / 20 : ℝ)) : + 0 ≤ (Romik.alphaBeta1 params s).2 := by + have hpi : s ≤ Real.pi := by + nlinarith [Real.pi_gt_three] + have hsin0 : 0 ≤ Real.sin s := + Real.sin_nonneg_of_nonneg_of_le_pi hs0 hpi + have hsinUpper := Real.sin_le hs0 + have hcosLower : 1 - s ^ 2 / 2 ≤ Real.cos s := + Real.one_sub_sq_div_two_le_cos + have hcos0 : 0 ≤ Real.cos s := by + apply Real.cos_nonneg_of_mem_Icc + constructor <;> nlinarith [Real.pi_gt_three] + have hquad : 0 ≤ s * ((1 / 20 : ℝ) - s) := + mul_nonneg hs0 (sub_nonneg.mpr hs20) + have hcoef : (12 / 5 : ℝ) ≤ 2 * params.a1 := by + nlinarith [a1_lower_six_fifths_fiber] + have hmul : (12 / 5 : ℝ) * Real.cos s ≤ + 2 * params.a1 * Real.cos s := + mul_le_mul_of_nonneg_right hcoef hcos0 + have ha2 := Romik.a2_eq_neg_quarter_of_equations params_equations + dsimp [Romik.alphaBeta1] + rw [ha2] + nlinarith [hsinUpper, hcosLower, hquad, hmul] + +/-- The early inner-contact coefficient is nonnegative on the whole `D` +parameter interval. -/ +theorem beta_nonneg_on_D {t : ℝ} + (ht : t ∈ Icc (0 : ℝ) params.theta) : 0 ≤ beta t := by + by_cases hphi : t ≤ params.phi + · have hs20 : t ≤ (1 / 20 : ℝ) := + le_trans hphi phi_upper_twentieth_fiber + have h := alphaBeta1_snd_nonneg_fiber ht.1 hs20 + simpa [beta, alphaBetaAt, hphi] using h + · have htPhysical : t ∈ Icc (0 : ℝ) T := + ⟨ht.1, le_trans ht.2 (le_trans theta_lt_eta.le + (le_trans eta_lt_tau.le tau_le_T))⟩ + have hrho := Stage2.rhoA_nonneg htPhysical + unfold Stage2.rhoA at hrho + rw [ite_eq_right hphi, ite_eq_left ht.2] at hrho + simp only [beta, alphaBetaAt, ite_eq_right hphi, ite_eq_left ht.2] + dsimp [Romik.alphaBeta2] + exact hrho + +/-- Core path points are cap points. -/ +theorem core_path_mem_K {t : ℝ} (ht : t ∈ Icc params.phi tau) : + Romik.path params t ∈ K := by + rw [Romik.mem_K0] + refine ⟨path_core_y_nonneg ht, ?_⟩ + intro s hs + have hs' : s ∈ Icc (0 : ℝ) T := by simpa [T] using hs + have ht' : t ∈ Icc (0 : ℝ) T := + ⟨le_trans phi_pos.le ht.1, le_trans ht.2 tau_le_T⟩ + exact path_mem_outer_supports hs' ht' + +/-- Every certified early `D` roof point lies in the cap. -/ +theorem D_mem_K {t : ℝ} (ht : t ∈ Icc (0 : ℝ) params.theta) : + D t ∈ K := by + rw [Romik.mem_K0] + refine ⟨D_y_nonneg ht, ?_⟩ + intro s hs + have hs' : s ∈ Icc (0 : ℝ) T := by simpa [T] using hs + have ht' : t ∈ Icc (0 : ℝ) T := + ⟨ht.1, le_trans ht.2 (le_trans theta_lt_eta.le + (le_trans eta_lt_tau.le tau_le_T))⟩ + have hcos := physical_cos_diff_nonneg hs' ht' + have hbeta := beta_nonneg_on_D ht + have hp := path_mem_outer_supports hs' ht' + have hC := Stage3.supportC_direct t ht' + constructor + · have hpU := hp.1 + change dot (D t) (u s) ≤ dot (Romik.path params s) (u s) + 1 + change dot (Romik.path params t) (u s) ≤ + dot (Romik.path params s) (u s) + 1 at hpU + have hrel : dot (D t) (u s) = + dot (Romik.path params t) (u s) - beta t * Real.cos (t - s) := by + simp [D, dot, u, Real.cos_sub] + ring + rw [hrel] + nlinarith [mul_nonneg hbeta hcos] + · have hCV := (hC.2 s hs).2 + change dot (D t) (v s) ≤ dot (Romik.path params s) (v s) + 1 + change dot (C t) (v s) ≤ dot (Romik.path params s) (v s) + 1 at hCV + have hrel : dot (C t) (v s) = + dot (D t) (v s) + Real.cos (t - s) := by + simp [C, D, dot, u, v, Real.cos_sub] + ring + rw [hrel] at hCV + linarith + +/-- Every certified late `B` roof point lies in the cap. -/ +theorem B_mem_K {t : ℝ} (ht : t ∈ Icc eta T) : B t ∈ K := by + rw [Romik.mem_K0] + refine ⟨B_y_nonneg ht, ?_⟩ + intro s hs + have hs' : s ∈ Icc (0 : ℝ) T := by simpa [T] using hs + have ht' : t ∈ Icc (0 : ℝ) T := + ⟨le_trans phi_pos.le (le_trans phi_lt_eta.le ht.1), ht.2⟩ + have hcos := physical_cos_diff_nonneg hs' ht' + have halpha := alpha_nonpos ⟨le_trans phi_lt_eta.le ht.1, ht.2⟩ + have hp := path_mem_outer_supports hs' ht' + have hA := Stage3.supportA_direct t ht' + constructor + · have hAU := (hA.2 s hs).1 + change dot (B t) (u s) ≤ dot (Romik.path params s) (u s) + 1 + change dot (A t) (u s) ≤ dot (Romik.path params s) (u s) + 1 at hAU + have hrel : dot (A t) (u s) = + dot (B t) (u s) + Real.cos (t - s) := by + simp [A, B, dot, u, v, Real.cos_sub] + ring + rw [hrel] at hAU + linarith + · have hpV := hp.2 + change dot (B t) (v s) ≤ dot (Romik.path params s) (v s) + 1 + change dot (Romik.path params t) (v s) ≤ + dot (Romik.path params s) (v s) + 1 at hpV + have hrel : dot (B t) (v s) = + dot (Romik.path params t) (v s) + alpha t * Real.cos (t - s) := by + simp [B, dot, v, Real.cos_sub] + ring + rw [hrel] + nlinarith [mul_nonpos_of_nonpos_of_nonneg halpha hcos] + +/-- Every graph which forms the certified strict niche roof consists of cap +points. -/ +theorem certified_roof_mem_K : + (∀ t ∈ Icc (0 : ℝ) params.theta, D t ∈ K) ∧ + (∀ t ∈ Icc params.phi tau, Romik.path params t ∈ K) ∧ + (∀ t ∈ Icc eta T, B t ∈ K) := + ⟨fun _ ht => D_mem_K ht, + fun _ ht => core_path_mem_K ht, + fun _ ht => B_mem_K ht⟩ + +/-- Strict vertical fills are downward closed along every nonnegative fibre. -/ +theorem verticalFill_downward + {f : ℝ → Point} {I : Set ℝ} {p q : Point} + (hx : p.1 = q.1) (hp0 : 0 ≤ p.2) (hy : p.2 ≤ q.2) + (hq : q ∈ verticalFill f I) : p ∈ verticalFill f I := by + rcases hq with ⟨t, ht, hqx, hq0, hqtop⟩ + exact ⟨t, ht, hx.trans hqx, hp0, lt_of_le_of_lt hy hqtop⟩ + +/-- The union of the three strict graph fills is downward closed in each +nonnegative vertical fibre. -/ +theorem certifiedNicheRegion_downward {p q : Point} + (hx : p.1 = q.1) (hp0 : 0 ≤ p.2) (hy : p.2 ≤ q.2) + (hq : q ∈ certifiedNicheRegion) : p ∈ certifiedNicheRegion := by + rcases hq with (hD | hP) | hB + · exact Or.inl (Or.inl (verticalFill_downward hx hp0 hy hD)) + · exact Or.inl (Or.inr (verticalFill_downward hx hp0 hy hP)) + · exact Or.inr (verticalFill_downward hx hp0 hy hB) + +/-- The Gerver cap is compact. -/ +theorem K_compact_direct : IsCompact K := by + let box : Set Point := + Icc ((Romik.path params T).1 - 1) 1 ×ˢ Icc (0 : ℝ) 1 + have hbox : IsCompact box := isCompact_Icc.prod isCompact_Icc + apply hbox.of_isClosed_subset (Romik.isClosed_K0 params) + intro q hq + have h0 : (0 : ℝ) ∈ Icc (0 : ℝ) (Real.pi / 2) := by + constructor + · exact le_rfl + · positivity + have hT : T ∈ Icc (0 : ℝ) (Real.pi / 2) := by + exact ⟨by dsimp [T]; positivity, by dsimp [T]; exact le_rfl⟩ + have hs0 := hq.2 0 h0 + have hsT := hq.2 T hT + have hxhi : q.1 ≤ 1 := by + have h := hs0.1 + simpa [supportHalfU, dot, u, pathZero] using h + have hyhi : q.2 ≤ 1 := by + have h := hs0.2 + simpa [supportHalfV, dot, v, pathZero] using h + have hxlo : (Romik.path params T).1 - 1 ≤ q.1 := by + have h := hsT.2 + simp [supportHalfV, dot, v, T] at h + dsimp [T] at ⊢ + linarith + exact ⟨⟨hxlo, hxhi⟩, ⟨hq.1, hyhi⟩⟩ + +/-- The fixed sofa is compact, as the difference of the compact cap and the +open union of forbidden quadrants. -/ +theorem G_compact_direct : IsCompact G := by + change IsCompact (Romik.sofa params) + rw [Romik.sofa_eq_K0_diff_innerUnion] + exact K_compact_direct.diff (Romik.isOpen_innerUnion params) + +private def KVerticalSection (x : ℝ) : Set Point := + K ∩ {q | q.1 = x} + +private theorem KVerticalSection_compact (x : ℝ) : + IsCompact (KVerticalSection x) := by + apply K_compact_direct.inter_right + exact isClosed_singleton.preimage continuous_fst + +/-- Every cap fibre has a highest point, and that point survives removal of +the strict niche. -/ +theorem exists_G_point_over_K {q : Point} (hq : q ∈ K) : + ∃ p ∈ G, p.1 = q.1 := by + let F := KVerticalSection q.1 + have hFcompact : IsCompact F := KVerticalSection_compact q.1 + have hFne : F.Nonempty := ⟨q, hq, rfl⟩ + rcases hFcompact.exists_isMaxOn hFne continuous_snd.continuousOn with + ⟨p, hpF, hpmax⟩ + have hpK : p ∈ K := hpF.1 + have hpx : p.1 = q.1 := hpF.2 + refine ⟨p, ⟨hpK, ?_⟩, hpx⟩ + intro hpN + rw [niche_eq_certifiedNicheRegion] at hpN + rcases hpN with (hD | hP) | hB + · rcases hD with ⟨t, ht, hx, _hy0, hylt⟩ + have hwK := D_mem_K ht + have hwF : D t ∈ F := ⟨hwK, hx.symm.trans hpx⟩ + exact (not_lt_of_ge (hpmax hwF)) hylt + · rcases hP with ⟨t, ht, hx, _hy0, hylt⟩ + have hwK := core_path_mem_K ht + have hwF : Romik.path params t ∈ F := ⟨hwK, hx.symm.trans hpx⟩ + exact (not_lt_of_ge (hpmax hwF)) hylt + · rcases hB with ⟨t, ht, hx, _hy0, hylt⟩ + have hwK := B_mem_K ht + have hwF : B t ∈ F := ⟨hwK, hx.symm.trans hpx⟩ + exact (not_lt_of_ge (hpmax hwF)) hylt + +/-- Removing the strict niche does not change the horizontal projection. -/ +theorem fst_image_G_eq_fst_image_K : + Prod.fst '' G = Prod.fst '' K := by + apply Set.Subset.antisymm + · rintro x ⟨q, hq, rfl⟩ + exact ⟨q, hq.1, rfl⟩ + · rintro x ⟨q, hq, rfl⟩ + rcases exists_G_point_over_K hq with ⟨p, hp, hpx⟩ + exact ⟨p, hp, hpx⟩ + +/-- A vertical section of the fixed sofa. -/ +def GVerticalSection (x : ℝ) : Set Point := + {q | q ∈ G ∧ q.1 = x} + +/-- Every vertical section of `G` is convex. -/ +theorem GVerticalSection_convex (x : ℝ) : + Convex ℝ (GVerticalSection x) := by + intro p hp q hq a b ha hb hab + have hpK : p ∈ K := hp.1.1 + have hqK : q ∈ K := hq.1.1 + have hzK := K_convex_direct hpK hqK ha hb hab + have hzx : (a • p + b • q).1 = x := by + change a * p.1 + b * q.1 = x + rw [hp.2, hq.2] + calc + a * x + b * x = (a + b) * x := by ring + _ = x := by rw [hab, one_mul] + refine ⟨⟨hzK, ?_⟩, hzx⟩ + intro hzN + have hzR : a • p + b • q ∈ certifiedNicheRegion := by + rw [← niche_eq_certifiedNicheRegion] + exact hzN + rcases le_total p.2 q.2 with hpq | hqp + · have hpz : p.2 ≤ (a • p + b • q).2 := by + change p.2 ≤ a * p.2 + b * q.2 + calc + p.2 = a * p.2 + b * p.2 := by + calc + p.2 = (a + b) * p.2 := by rw [hab, one_mul] + _ = a * p.2 + b * p.2 := by ring + _ ≤ a * p.2 + b * q.2 := + add_le_add le_rfl (mul_le_mul_of_nonneg_left hpq hb) + have hpR := certifiedNicheRegion_downward + (hp.2.trans hzx.symm) hpK.1 hpz hzR + exact hp.1.2 (by + rw [niche_eq_certifiedNicheRegion] + exact hpR) + · have hqz : q.2 ≤ (a • p + b • q).2 := by + change q.2 ≤ a * p.2 + b * q.2 + calc + q.2 = a * q.2 + b * q.2 := by + calc + q.2 = (a + b) * q.2 := by rw [hab, one_mul] + _ = a * q.2 + b * q.2 := by ring + _ ≤ a * p.2 + b * q.2 := + add_le_add (mul_le_mul_of_nonneg_left hqp ha) le_rfl + have hqR := certifiedNicheRegion_downward + (hq.2.trans hzx.symm) hqK.1 hqz hzR + exact hq.1.2 (by + rw [niche_eq_certifiedNicheRegion] + exact hqR) + +/-- Each nonempty vertical section is connected. -/ +theorem GVerticalSection_connected {x : ℝ} + (hne : (GVerticalSection x).Nonempty) : + IsConnected (GVerticalSection x) := + (GVerticalSection_convex x).isConnected hne + +private def GProjection : Set ℝ := Prod.fst '' G + +private def projectG : G → GProjection := fun q => + ⟨q.1.1, ⟨q.1, q.2, rfl⟩⟩ + +private theorem projectG_continuous : Continuous projectG := by + exact (continuous_fst.comp continuous_subtype_val).subtype_mk _ + +private theorem projectG_surjective : Function.Surjective projectG := by + rintro ⟨x, q, hq, hqx⟩ + refine ⟨⟨q, hq⟩, ?_⟩ + apply Subtype.ext + exact hqx + +private theorem projectG_fiber_connected (x : GProjection) : + IsConnected (projectG ⁻¹' {x}) := by + have hsectionNe : (GVerticalSection x.1).Nonempty := by + rcases x.2 with ⟨q, hq, hqx⟩ + exact ⟨q, hq, hqx⟩ + have hsection := GVerticalSection_connected hsectionNe + have : ConnectedSpace (GVerticalSection x.1) := + isConnected_iff_connectedSpace.mp hsection + let e : GVerticalSection x.1 → G := fun q => ⟨q.1, q.2.1⟩ + have he : Continuous e := by + exact continuous_subtype_val.subtype_mk _ + have hrange : Set.range e = projectG ⁻¹' {x} := by + ext q + constructor + · rintro ⟨z, rfl⟩ + apply Set.mem_preimage.mpr + apply Set.mem_singleton_iff.mpr + apply Subtype.ext + exact z.2.2 + · intro hq + have hx : q.1.1 = x.1 := by + have := Set.mem_singleton_iff.mp hq + exact congrArg Subtype.val this + exact ⟨⟨q.1, q.2, hx⟩, rfl⟩ + rw [← hrange] + exact isConnected_range he + +/-- Connectedness of the fixed Gerver sofa by compact connected fibres. -/ +theorem G_connected_by_vertical_fibers : IsConnected G := by + have hprojK : IsConnected (Prod.fst '' K) := + K_connected_direct.image Prod.fst continuous_fst.continuousOn + have hproj : IsConnected GProjection := by + simpa [GProjection, fst_image_G_eq_fst_image_K] using hprojK + have : CompactSpace G := isCompact_iff_compactSpace.mp G_compact_direct + have : ConnectedSpace GProjection := isConnected_iff_connectedSpace.mp hproj + have hquot : Topology.IsQuotientMap projectG := + Topology.IsQuotientMap.of_surjective_continuous + projectG_surjective projectG_continuous + have hpre : IsConnected (projectG ⁻¹' (Set.univ : Set GProjection)) := + Topology.IsCoinducing.isConnected_preimage_of_isClosed + projectG_fiber_connected hquot.isCoinducing isClosed_univ isConnected_univ + have huniv : IsConnected (Set.univ : Set G) := by simpa using hpre + have hspace : ConnectedSpace G := connectedSpace_iff_univ.mpr huniv + exact isConnected_iff_connectedSpace.mpr hspace + +end Stage4 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Part C Stage 4: topology of the concrete fixed set + +No new certificate structure is introduced here. This file is intended to +close the two literal topology fields left by `RemainingTopologyTarget`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage4 + +open Set + +/-- The right endpoint of the niche roof still satisfies the zero-angle +horizontal support inequality of the cap. -/ +private theorem B_T_fst_le_one : (B T).1 ≤ 1 := by + have hBTK : B T ∈ K := B_mem_K ⟨eta_lt_T.le, le_rfl⟩ + rw [Romik.mem_K0] at hBTK + have h0 : (0 : ℝ) ∈ Icc (0 : ℝ) (Real.pi / 2) := by + constructor + · exact le_rfl + · positivity + have h := (hBTK.2 0 h0).1 + simpa [supportHalfU, dot, u, pathZero] using h + +/-- The left endpoint of the zero-angle support face is the concrete anchor +and it is not removed by the niche. -/ +theorem anchor_mem_direct : anchor ∈ G := by + have hA0 : A 0 = anchor := Stage2.A_zero_eq_anchor + have hK : anchor ∈ K := by + rw [← hA0] + exact Stage3.supportA_direct 0 (by + constructor + · norm_num + · dsimp [T]; positivity) + refine ⟨hK, ?_⟩ + intro hn + rw [niche_eq_certifiedNicheRegion] at hn + rcases hn with (hD | hx) | hB + · rcases hD with ⟨t, ht, hx1, _hy0, _hylt⟩ + have htT : t < T := lt_of_le_of_lt ht.2 (lt_trans theta_lt_eta eta_lt_T) + have htPhysical : t ∈ Icc (0 : ℝ) T := ⟨ht.1, htT.le⟩ + have hroof := nicheTopArc_fst_strictMono htPhysical + (right_mem_Icc.2 (show (0 : ℝ) ≤ T by dsimp [T]; positivity)) htT + have hleft : nicheTopArc t = D t := by + simp [nicheTopArc, ht.2] + change (nicheTopArc t).1 < (nicheTopArc T).1 at hroof + rw [hleft, nicheTopArc_T] at hroof + change (1 : ℝ) = (D t).1 at hx1 + linarith [B_T_fst_le_one] + · rcases hx with ⟨t, ht, hx1, _hy0, _hylt⟩ + have hpath : (Romik.path params t).1 ≤ + (Romik.path params params.phi).1 := + core_path_fst_strictAnti.antitoneOn + (left_mem_Icc.2 (lt_trans phi_lt_theta + (lt_trans theta_lt_eta eta_lt_tau)).le) + ht ht.1 + have hlate : (B eta).1 < (B T).1 := + B_fst_strictMono (left_mem_Icc.2 eta_lt_T.le) + (right_mem_Icc.2 eta_lt_T.le) eta_lt_T + have hroof : (Romik.path params t).1 < (B T).1 := by + calc + (Romik.path params t).1 ≤ + (Romik.path params params.phi).1 := hpath + _ = (B eta).1 := congrArg Prod.fst B_eta_eq_path_phi.symm + _ < (B T).1 := hlate + change (1 : ℝ) = (Romik.path params t).1 at hx1 + linarith [B_T_fst_le_one] + · rcases hB with ⟨t, ht, hx1, _hy0, _hylt⟩ + by_cases hT : t = T + · subst t + change (0 : ℝ) < (B T).2 at _hylt + rw [B_T_y_zero] at _hylt + exact (lt_irrefl 0 _hylt) + · have htT : t < T := lt_of_le_of_ne ht.2 hT + have hroof : (B t).1 < (B T).1 := + B_fst_strictMono ht (right_mem_Icc.2 eta_lt_T.le) htT + change (1 : ℝ) = (B t).1 at hx1 + linarith [B_T_fst_le_one] + +/-- Direct connectedness of the cap-minus-niche set, obtained from the +compact connected horizontal projection and the connected vertical fibres. -/ +theorem G_connected_direct : IsConnected G := + G_connected_by_vertical_fibers + +end Stage4 +end PartC +end GerverSofa + +end + +end + +end + +section + +/-! +# Part C final unconditional closure + +This is the only terminal assembly for Part C. It contains no payload and no +new certificate interface. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartC +namespace Stage4 + +/-- Concrete global geometry certificate. -/ +theorem globalGeometryCertificate : GlobalGeometryCertificate := + Stage3.globalGeometryDirect + noHiddenU_direct noHiddenV_direct + niche_frontier_direct niche_connected_direct + anchor_mem_direct G_connected_direct + +end Stage4 +end PartC +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle007.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle007.lean new file mode 100644 index 0000000000..145884a738 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle007.lean @@ -0,0 +1,1582 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Semantics.Batch002`. +-/ + +@[expose] public section + +noncomputable section + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24PhiBelowKernelLH`. +* `KernelOnly.PartE.E24PhiBelowKernelLL`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24 kernel child certificate: PhiBelow/LH, remaining depth 13. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE +namespace CoverCertificatee18e89e753 + +private abbrev cellRoot : AngleCell := + (childLH e24PhiBelowRoot) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +private abbrev cell0000 : AngleCell := + childLL cell000 + +private abbrev cell0001 : AngleCell := + childLH cell000 + +private abbrev cell0002 : AngleCell := + childHL cell000 + +private abbrev cell0003 : AngleCell := + childHH cell000 + +private abbrev cell0020 : AngleCell := + childLL cell002 + +private abbrev cell0021 : AngleCell := + childLH cell002 + +private abbrev cell0022 : AngleCell := + childHL cell002 + +private abbrev cell0023 : AngleCell := + childHH cell002 + +private abbrev cell0200 : AngleCell := + childLL cell020 + +private abbrev cell0201 : AngleCell := + childLH cell020 + +private abbrev cell0202 : AngleCell := + childHL cell020 + +private abbrev cell0203 : AngleCell := + childHH cell020 + +private abbrev cell0210 : AngleCell := + childLL cell021 + +private abbrev cell0211 : AngleCell := + childLH cell021 + +private abbrev cell0212 : AngleCell := + childHL cell021 + +private abbrev cell0213 : AngleCell := + childHH cell021 + +private abbrev cell0220 : AngleCell := + childLL cell022 + +private abbrev cell0221 : AngleCell := + childLH cell022 + +private abbrev cell0222 : AngleCell := + childHL cell022 + +private abbrev cell0223 : AngleCell := + childHH cell022 + +private abbrev cell0230 : AngleCell := + childLL cell023 + +private abbrev cell0231 : AngleCell := + childLH cell023 + +private abbrev cell0232 : AngleCell := + childHL cell023 + +private abbrev cell0233 : AngleCell := + childHH cell023 + +private abbrev cell0320 : AngleCell := + childLL cell032 + +private abbrev cell0321 : AngleCell := + childLH cell032 + +private abbrev cell0322 : AngleCell := + childHL cell032 + +private abbrev cell0323 : AngleCell := + childHH cell032 + +private abbrev cell2000 : AngleCell := + childLL cell200 + +private abbrev cell2001 : AngleCell := + childLH cell200 + +private abbrev cell2002 : AngleCell := + childHL cell200 + +private abbrev cell2003 : AngleCell := + childHH cell200 + +private abbrev cell2010 : AngleCell := + childLL cell201 + +private abbrev cell2011 : AngleCell := + childLH cell201 + +private abbrev cell2012 : AngleCell := + childHL cell201 + +private abbrev cell2013 : AngleCell := + childHH cell201 + +private abbrev cell2020 : AngleCell := + childLL cell202 + +private abbrev cell2021 : AngleCell := + childLH cell202 + +private abbrev cell2022 : AngleCell := + childHL cell202 + +private abbrev cell2023 : AngleCell := + childHH cell202 + +private abbrev cell2030 : AngleCell := + childLL cell203 + +private abbrev cell2031 : AngleCell := + childLH cell203 + +private abbrev cell2032 : AngleCell := + childHL cell203 + +private abbrev cell2033 : AngleCell := + childHH cell203 + +private abbrev cell2100 : AngleCell := + childLL cell210 + +private abbrev cell2101 : AngleCell := + childLH cell210 + +private abbrev cell2102 : AngleCell := + childHL cell210 + +private abbrev cell2103 : AngleCell := + childHH cell210 + +private abbrev cell2120 : AngleCell := + childLL cell212 + +private abbrev cell2121 : AngleCell := + childLH cell212 + +private abbrev cell2122 : AngleCell := + childHL cell212 + +private abbrev cell2123 : AngleCell := + childHH cell212 + +private abbrev cell2130 : AngleCell := + childLL cell213 + +private abbrev cell2131 : AngleCell := + childLH cell213 + +private abbrev cell2132 : AngleCell := + childHL cell213 + +private abbrev cell2133 : AngleCell := + childHH cell213 + +private abbrev cell2200 : AngleCell := + childLL cell220 + +private abbrev cell2201 : AngleCell := + childLH cell220 + +private abbrev cell2202 : AngleCell := + childHL cell220 + +private abbrev cell2203 : AngleCell := + childHH cell220 + +private abbrev cell2210 : AngleCell := + childLL cell221 + +private abbrev cell2211 : AngleCell := + childLH cell221 + +private abbrev cell2212 : AngleCell := + childHL cell221 + +private abbrev cell2213 : AngleCell := + childHH cell221 + +private abbrev cell2220 : AngleCell := + childLL cell222 + +private abbrev cell2221 : AngleCell := + childLH cell222 + +private abbrev cell2222 : AngleCell := + childHL cell222 + +private abbrev cell2223 : AngleCell := + childHH cell222 + +private abbrev cell2230 : AngleCell := + childLL cell223 + +private abbrev cell2231 : AngleCell := + childLH cell223 + +private abbrev cell2232 : AngleCell := + childHL cell223 + +private abbrev cell2233 : AngleCell := + childHH cell223 + +private abbrev cell2300 : AngleCell := + childLL cell230 + +private abbrev cell2301 : AngleCell := + childLH cell230 + +private abbrev cell2302 : AngleCell := + childHL cell230 + +private abbrev cell2303 : AngleCell := + childHH cell230 + +private abbrev cell2310 : AngleCell := + childLL cell231 + +private abbrev cell2311 : AngleCell := + childLH cell231 + +private abbrev cell2312 : AngleCell := + childHL cell231 + +private abbrev cell2313 : AngleCell := + childHH cell231 + +private abbrev cell2320 : AngleCell := + childLL cell232 + +private abbrev cell2321 : AngleCell := + childLH cell232 + +private abbrev cell2322 : AngleCell := + childHL cell232 + +private abbrev cell2323 : AngleCell := + childHH cell232 + +private abbrev cell2330 : AngleCell := + childLL cell233 + +private abbrev cell2331 : AngleCell := + childLH cell233 + +private abbrev cell2332 : AngleCell := + childHL cell233 + +private abbrev cell2333 : AngleCell := + childHH cell233 + +private abbrev cell3200 : AngleCell := + childLL cell320 + +private abbrev cell3201 : AngleCell := + childLH cell320 + +private abbrev cell3202 : AngleCell := + childHL cell320 + +private abbrev cell3203 : AngleCell := + childHH cell320 + +private abbrev cell3220 : AngleCell := + childLL cell322 + +private abbrev cell3221 : AngleCell := + childLH cell322 + +private abbrev cell3222 : AngleCell := + childHL cell322 + +private abbrev cell3223 : AngleCell := + childHH cell322 + +private abbrev cell3230 : AngleCell := + childLL cell323 + +private abbrev cell3231 : AngleCell := + childLH cell323 + +private abbrev cell3232 : AngleCell := + childHL cell323 + +private abbrev cell3233 : AngleCell := + childHH cell323 + +private abbrev cell23200 : AngleCell := + childLL cell2320 + +private abbrev cell23201 : AngleCell := + childLH cell2320 + +private abbrev cell23202 : AngleCell := + childHL cell2320 + +private abbrev cell23203 : AngleCell := + childHH cell2320 + +private abbrev cell23220 : AngleCell := + childLL cell2322 + +private abbrev cell23221 : AngleCell := + childLH cell2322 + +private abbrev cell23222 : AngleCell := + childHL cell2322 + +private abbrev cell23223 : AngleCell := + childHH cell2322 + +private theorem checked23200 : adaptiveCoverCheck 8 cell23200 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell23200 (by decide +kernel) + +private theorem checked23201 : adaptiveCoverCheck 8 cell23201 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell23201 (by decide +kernel) + +private theorem checked23202 : adaptiveCoverCheck 8 cell23202 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell23202 (by decide +kernel) + +private theorem checked23203 : adaptiveCoverCheck 8 cell23203 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell23203 (by decide +kernel) + +private theorem checked23220 : adaptiveCoverCheck 8 cell23220 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell23220 (by decide +kernel) + +private theorem checked23221 : adaptiveCoverCheck 8 cell23221 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell23221 (by decide +kernel) + +private theorem checked23222 : adaptiveCoverCheck 8 cell23222 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell23222 (by decide +kernel) + +private theorem checked23223 : adaptiveCoverCheck 8 cell23223 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell23223 (by decide +kernel) + +private theorem checked0000 : adaptiveCoverCheck 9 cell0000 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0000 (by decide +kernel) + +private theorem checked0001 : adaptiveCoverCheck 9 cell0001 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0001 (by decide +kernel) + +private theorem checked0002 : adaptiveCoverCheck 9 cell0002 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0002 (by decide +kernel) + +private theorem checked0003 : adaptiveCoverCheck 9 cell0003 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0003 (by decide +kernel) + +private theorem checked0020 : adaptiveCoverCheck 9 cell0020 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0020 (by decide +kernel) + +private theorem checked0021 : adaptiveCoverCheck 9 cell0021 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0021 (by decide +kernel) + +private theorem checked0022 : adaptiveCoverCheck 9 cell0022 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0022 (by decide +kernel) + +private theorem checked0023 : adaptiveCoverCheck 9 cell0023 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0023 (by decide +kernel) + +private theorem checked0200 : adaptiveCoverCheck 9 cell0200 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0200 (by decide +kernel) + +private theorem checked0201 : adaptiveCoverCheck 9 cell0201 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0201 (by decide +kernel) + +private theorem checked0202 : adaptiveCoverCheck 9 cell0202 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0202 (by decide +kernel) + +private theorem checked0203 : adaptiveCoverCheck 9 cell0203 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0203 (by decide +kernel) + +private theorem checked0210 : adaptiveCoverCheck 9 cell0210 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0210 (by decide +kernel) + +private theorem checked0211 : adaptiveCoverCheck 9 cell0211 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0211 (by decide +kernel) + +private theorem checked0212 : adaptiveCoverCheck 9 cell0212 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0212 (by decide +kernel) + +private theorem checked0213 : adaptiveCoverCheck 9 cell0213 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0213 (by decide +kernel) + +private theorem checked0220 : adaptiveCoverCheck 9 cell0220 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0220 (by decide +kernel) + +private theorem checked0221 : adaptiveCoverCheck 9 cell0221 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0221 (by decide +kernel) + +private theorem checked0222 : adaptiveCoverCheck 9 cell0222 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0222 (by decide +kernel) + +private theorem checked0223 : adaptiveCoverCheck 9 cell0223 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0223 (by decide +kernel) + +private theorem checked0230 : adaptiveCoverCheck 9 cell0230 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0230 (by decide +kernel) + +private theorem checked0231 : adaptiveCoverCheck 9 cell0231 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0231 (by decide +kernel) + +private theorem checked0232 : adaptiveCoverCheck 9 cell0232 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0232 (by decide +kernel) + +private theorem checked0233 : adaptiveCoverCheck 9 cell0233 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0233 (by decide +kernel) + +private theorem checked0320 : adaptiveCoverCheck 9 cell0320 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0320 (by decide +kernel) + +private theorem checked0321 : adaptiveCoverCheck 9 cell0321 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0321 (by decide +kernel) + +private theorem checked0322 : adaptiveCoverCheck 9 cell0322 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0322 (by decide +kernel) + +private theorem checked0323 : adaptiveCoverCheck 9 cell0323 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell0323 (by decide +kernel) + +private theorem checked2000 : adaptiveCoverCheck 9 cell2000 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2000 (by decide +kernel) + +private theorem checked2001 : adaptiveCoverCheck 9 cell2001 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2001 (by decide +kernel) + +private theorem checked2002 : adaptiveCoverCheck 9 cell2002 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2002 (by decide +kernel) + +private theorem checked2003 : adaptiveCoverCheck 9 cell2003 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2003 (by decide +kernel) + +private theorem checked2010 : adaptiveCoverCheck 9 cell2010 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2010 (by decide +kernel) + +private theorem checked2011 : adaptiveCoverCheck 9 cell2011 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2011 (by decide +kernel) + +private theorem checked2012 : adaptiveCoverCheck 9 cell2012 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2012 (by decide +kernel) + +private theorem checked2013 : adaptiveCoverCheck 9 cell2013 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2013 (by decide +kernel) + +private theorem checked2020 : adaptiveCoverCheck 9 cell2020 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2020 (by decide +kernel) + +private theorem checked2021 : adaptiveCoverCheck 9 cell2021 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2021 (by decide +kernel) + +private theorem checked2022 : adaptiveCoverCheck 9 cell2022 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2022 (by decide +kernel) + +private theorem checked2023 : adaptiveCoverCheck 9 cell2023 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2023 (by decide +kernel) + +private theorem checked2030 : adaptiveCoverCheck 9 cell2030 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2030 (by decide +kernel) + +private theorem checked2031 : adaptiveCoverCheck 9 cell2031 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2031 (by decide +kernel) + +private theorem checked2032 : adaptiveCoverCheck 9 cell2032 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2032 (by decide +kernel) + +private theorem checked2033 : adaptiveCoverCheck 9 cell2033 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2033 (by decide +kernel) + +private theorem checked2100 : adaptiveCoverCheck 9 cell2100 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2100 (by decide +kernel) + +private theorem checked2101 : adaptiveCoverCheck 9 cell2101 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2101 (by decide +kernel) + +private theorem checked2102 : adaptiveCoverCheck 9 cell2102 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2102 (by decide +kernel) + +private theorem checked2103 : adaptiveCoverCheck 9 cell2103 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2103 (by decide +kernel) + +private theorem checked2120 : adaptiveCoverCheck 9 cell2120 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2120 (by decide +kernel) + +private theorem checked2121 : adaptiveCoverCheck 9 cell2121 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2121 (by decide +kernel) + +private theorem checked2122 : adaptiveCoverCheck 9 cell2122 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2122 (by decide +kernel) + +private theorem checked2123 : adaptiveCoverCheck 9 cell2123 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2123 (by decide +kernel) + +private theorem checked2130 : adaptiveCoverCheck 9 cell2130 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2130 (by decide +kernel) + +private theorem checked2131 : adaptiveCoverCheck 9 cell2131 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2131 (by decide +kernel) + +private theorem checked2132 : adaptiveCoverCheck 9 cell2132 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2132 (by decide +kernel) + +private theorem checked2133 : adaptiveCoverCheck 9 cell2133 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2133 (by decide +kernel) + +private theorem checked2200 : adaptiveCoverCheck 9 cell2200 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2200 (by decide +kernel) + +private theorem checked2201 : adaptiveCoverCheck 9 cell2201 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2201 (by decide +kernel) + +private theorem checked2202 : adaptiveCoverCheck 9 cell2202 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2202 (by decide +kernel) + +private theorem checked2203 : adaptiveCoverCheck 9 cell2203 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2203 (by decide +kernel) + +private theorem checked2210 : adaptiveCoverCheck 9 cell2210 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2210 (by decide +kernel) + +private theorem checked2211 : adaptiveCoverCheck 9 cell2211 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2211 (by decide +kernel) + +private theorem checked2212 : adaptiveCoverCheck 9 cell2212 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2212 (by decide +kernel) + +private theorem checked2213 : adaptiveCoverCheck 9 cell2213 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2213 (by decide +kernel) + +private theorem checked2220 : adaptiveCoverCheck 9 cell2220 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2220 (by decide +kernel) + +private theorem checked2221 : adaptiveCoverCheck 9 cell2221 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2221 (by decide +kernel) + +private theorem checked2222 : adaptiveCoverCheck 9 cell2222 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2222 (by decide +kernel) + +private theorem checked2223 : adaptiveCoverCheck 9 cell2223 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2223 (by decide +kernel) + +private theorem checked2230 : adaptiveCoverCheck 9 cell2230 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2230 (by decide +kernel) + +private theorem checked2231 : adaptiveCoverCheck 9 cell2231 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2231 (by decide +kernel) + +private theorem checked2232 : adaptiveCoverCheck 9 cell2232 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2232 (by decide +kernel) + +private theorem checked2233 : adaptiveCoverCheck 9 cell2233 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2233 (by decide +kernel) + +private theorem checked2300 : adaptiveCoverCheck 9 cell2300 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2300 (by decide +kernel) + +private theorem checked2301 : adaptiveCoverCheck 9 cell2301 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2301 (by decide +kernel) + +private theorem checked2302 : adaptiveCoverCheck 9 cell2302 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2302 (by decide +kernel) + +private theorem checked2303 : adaptiveCoverCheck 9 cell2303 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2303 (by decide +kernel) + +private theorem checked2310 : adaptiveCoverCheck 9 cell2310 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2310 (by decide +kernel) + +private theorem checked2311 : adaptiveCoverCheck 9 cell2311 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2311 (by decide +kernel) + +private theorem checked2312 : adaptiveCoverCheck 9 cell2312 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2312 (by decide +kernel) + +private theorem checked2313 : adaptiveCoverCheck 9 cell2313 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2313 (by decide +kernel) + +private theorem checked2320 : adaptiveCoverCheck 9 cell2320 = true := by + exact adaptiveCoverCheck_succ_of_children 8 cell2320 + checked23200 checked23201 checked23202 checked23203 + +private theorem checked2321 : adaptiveCoverCheck 9 cell2321 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2321 (by decide +kernel) + +private theorem checked2322 : adaptiveCoverCheck 9 cell2322 = true := by + exact adaptiveCoverCheck_succ_of_children 8 cell2322 + checked23220 checked23221 checked23222 checked23223 + +private theorem checked2323 : adaptiveCoverCheck 9 cell2323 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2323 (by decide +kernel) + +private theorem checked2330 : adaptiveCoverCheck 9 cell2330 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2330 (by decide +kernel) + +private theorem checked2331 : adaptiveCoverCheck 9 cell2331 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2331 (by decide +kernel) + +private theorem checked2332 : adaptiveCoverCheck 9 cell2332 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2332 (by decide +kernel) + +private theorem checked2333 : adaptiveCoverCheck 9 cell2333 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell2333 (by decide +kernel) + +private theorem checked3200 : adaptiveCoverCheck 9 cell3200 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3200 (by decide +kernel) + +private theorem checked3201 : adaptiveCoverCheck 9 cell3201 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3201 (by decide +kernel) + +private theorem checked3202 : adaptiveCoverCheck 9 cell3202 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3202 (by decide +kernel) + +private theorem checked3203 : adaptiveCoverCheck 9 cell3203 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3203 (by decide +kernel) + +private theorem checked3220 : adaptiveCoverCheck 9 cell3220 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3220 (by decide +kernel) + +private theorem checked3221 : adaptiveCoverCheck 9 cell3221 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3221 (by decide +kernel) + +private theorem checked3222 : adaptiveCoverCheck 9 cell3222 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3222 (by decide +kernel) + +private theorem checked3223 : adaptiveCoverCheck 9 cell3223 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3223 (by decide +kernel) + +private theorem checked3230 : adaptiveCoverCheck 9 cell3230 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3230 (by decide +kernel) + +private theorem checked3231 : adaptiveCoverCheck 9 cell3231 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3231 (by decide +kernel) + +private theorem checked3232 : adaptiveCoverCheck 9 cell3232 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3232 (by decide +kernel) + +private theorem checked3233 : adaptiveCoverCheck 9 cell3233 = true := by + exact adaptiveCoverCheck_true_of_rejected 9 cell3233 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 10 cell000 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell000 + checked0000 checked0001 checked0002 checked0003 + +private theorem checked001 : adaptiveCoverCheck 10 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 10 cell002 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell002 + checked0020 checked0021 checked0022 checked0023 + +private theorem checked003 : adaptiveCoverCheck 10 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 10 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 10 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 10 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 10 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 10 cell020 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell020 + checked0200 checked0201 checked0202 checked0203 + +private theorem checked021 : adaptiveCoverCheck 10 cell021 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell021 + checked0210 checked0211 checked0212 checked0213 + +private theorem checked022 : adaptiveCoverCheck 10 cell022 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell022 + checked0220 checked0221 checked0222 checked0223 + +private theorem checked023 : adaptiveCoverCheck 10 cell023 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell023 + checked0230 checked0231 checked0232 checked0233 + +private theorem checked030 : adaptiveCoverCheck 10 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 10 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 10 cell032 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell032 + checked0320 checked0321 checked0322 checked0323 + +private theorem checked033 : adaptiveCoverCheck 10 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 10 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 10 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 10 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 10 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell103 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 10 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 10 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 10 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 10 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 10 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 10 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 10 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 10 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 10 cell200 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell200 + checked2000 checked2001 checked2002 checked2003 + +private theorem checked201 : adaptiveCoverCheck 10 cell201 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell201 + checked2010 checked2011 checked2012 checked2013 + +private theorem checked202 : adaptiveCoverCheck 10 cell202 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell202 + checked2020 checked2021 checked2022 checked2023 + +private theorem checked203 : adaptiveCoverCheck 10 cell203 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell203 + checked2030 checked2031 checked2032 checked2033 + +private theorem checked210 : adaptiveCoverCheck 10 cell210 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell210 + checked2100 checked2101 checked2102 checked2103 + +private theorem checked211 : adaptiveCoverCheck 10 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 10 cell212 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell212 + checked2120 checked2121 checked2122 checked2123 + +private theorem checked213 : adaptiveCoverCheck 10 cell213 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell213 + checked2130 checked2131 checked2132 checked2133 + +private theorem checked220 : adaptiveCoverCheck 10 cell220 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell220 + checked2200 checked2201 checked2202 checked2203 + +private theorem checked221 : adaptiveCoverCheck 10 cell221 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell221 + checked2210 checked2211 checked2212 checked2213 + +private theorem checked222 : adaptiveCoverCheck 10 cell222 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell222 + checked2220 checked2221 checked2222 checked2223 + +private theorem checked223 : adaptiveCoverCheck 10 cell223 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell223 + checked2230 checked2231 checked2232 checked2233 + +private theorem checked230 : adaptiveCoverCheck 10 cell230 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell230 + checked2300 checked2301 checked2302 checked2303 + +private theorem checked231 : adaptiveCoverCheck 10 cell231 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell231 + checked2310 checked2311 checked2312 checked2313 + +private theorem checked232 : adaptiveCoverCheck 10 cell232 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell232 + checked2320 checked2321 checked2322 checked2323 + +private theorem checked233 : adaptiveCoverCheck 10 cell233 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell233 + checked2330 checked2331 checked2332 checked2333 + +private theorem checked300 : adaptiveCoverCheck 10 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 10 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 10 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 10 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 10 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 10 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 10 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 10 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 10 cell320 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell320 + checked3200 checked3201 checked3202 checked3203 + +private theorem checked321 : adaptiveCoverCheck 10 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 10 cell322 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell322 + checked3220 checked3221 checked3222 checked3223 + +private theorem checked323 : adaptiveCoverCheck 10 cell323 = true := by + exact adaptiveCoverCheck_succ_of_children 9 cell323 + checked3230 checked3231 checked3232 checked3233 + +private theorem checked330 : adaptiveCoverCheck 10 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 10 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 10 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 10 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 11 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 11 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 11 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 11 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 11 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 11 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 11 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 11 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 11 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 11 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 11 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 11 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 11 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 11 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 11 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 11 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 11 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 12 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 11 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 12 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 11 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 12 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 11 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 12 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 11 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 13 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 12 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee18e89e753 + +theorem e24PhiBelowKernelLH : + adaptiveCoverCheck 13 (childLH e24PhiBelowRoot) = true := by + exact CoverCertificatee18e89e753.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24 kernel child certificate: PhiBelow/LL, remaining depth 13. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE +namespace CoverCertificate4615b9c889 + +private abbrev cellRoot : AngleCell := + (childLL e24PhiBelowRoot) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +private theorem checked110 : adaptiveCoverCheck 10 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 10 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 10 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 10 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 10 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 10 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 10 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 10 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 10 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 10 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 10 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 10 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell133 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 10 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 10 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 10 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 10 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 10 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 10 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 10 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 10 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 10 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 10 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 10 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 10 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 10 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 10 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 10 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 10 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 10 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 11 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 11 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 11 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 11 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 11 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 11 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 11 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 11 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 11 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 11 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 11 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 11 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 11 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 11 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 11 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 11 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 11 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 11 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 11 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 11 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 11 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 11 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 11 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 11 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 11 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 10 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 12 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 11 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 12 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 11 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 12 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 11 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 12 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 11 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 13 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 12 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4615b9c889 + +theorem e24PhiBelowKernelLL : + adaptiveCoverCheck 13 (childLL e24PhiBelowRoot) = true := by + exact CoverCertificate4615b9c889.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle008.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle008.lean new file mode 100644 index 0000000000..21f4ca8b07 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/Core/Bundle008.lean @@ -0,0 +1,868 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle006 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle032 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle002 +public import Mathlib.Analysis.Normed.Affine.ContinuousAffineMap +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartF.Semantics.Batch002`. +-/ + +@[expose] public section + +noncomputable section + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartF.F01ExistingMotion`. +* `KernelOnly.PartF.F01ParameterChoice`. +* `KernelOnly.PartF.F02EuclideanMotion`. +* `KernelOnly.PartF.F03CanonicalRotation`. +* `KernelOnly.PartF.F03SetIdentification`. +* `KernelOnly.PartF.F04IntegralRepresentation`. +* `KernelOnly.PartF.F06ParameterIdentification`. +* `KernelOnly.PartF.F06IntegralMotion`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# F01: exact identity normalization of the already certified motion + +The original project asks for an initial translation. For its concrete +Gerver path the inverse frame is exactly the identity, which is the +stronger normalization required by DeepMind. These statements refer to +the existing `ℝ × ℝ` coordinate model, not to an unproved isometry between +the product norm and the Euclidean norm. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartF.Existing + +/-- Invert the hallway frame to obtain the sofa’s rigid motion. -/ +def motion (s : ℝ) : SE2 := (PartC.frame s).inv + +theorem motion_zero : motion 0 = SE2.one := by + change (Romik.frame PartC.params 0).inv = SE2.one + simp [Romik.frame, Romik.angle, PartC.pathZero, SE2.inv, SE2.one] + +theorem motion_continuous : SE2.ContinuousPath motion := + SE2.continuousPath_inv PartC.frameContinuous + +theorem initial : PartC.G ⊆ horizontalArm := by + intro q hq + have h := PartC.initialArm ⟨q, hq, rfl⟩ + change (motion 0).act q ∈ horizontalArm at h + rw [motion_zero, SE2.one_act] at h + exact h + +theorem all_times : + ∀ s ∈ Set.Icc (0 : ℝ) 1, (motion s).act '' PartC.G ⊆ hallway := by + intro s hs + exact inv_image_subset_hallway_of_subset_supporting + (PartC.frame s) PartC.G (PartC.G_subset_hallway s hs) + +theorem final : (motion 1).act '' PartC.G ⊆ verticalArm := PartC.finalArm + +end GerverSofa.PartF.Existing + +end + +end + +end + +section + +/-! +# F01: parameter selection is independent of the existence proof + +This module reuses the frozen E24KC6 theorem. It does not repeat numerical +exclusion. The literal upstream order of conjunctions is checked against +the existing specification, and its selected tuple is identified with the +certified reduced solution. No identification with the full 22D tuple is +claimed by this module. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartF.Parameters + +/-- The nonnegative parameter and ordered-angle equations used by the upstream canonical +definition. -/ +def upstreamSpec (A B φ θ : ℝ) : Prop := + 0 ≤ φ ∧ φ ≤ θ ∧ θ ≤ Real.pi / 4 ∧ 0 ≤ A ∧ 0 ≤ B ∧ + A * (θ.cos - φ.cos) - 2 * B * φ.sin + + (θ - φ - 1) * θ.cos - θ.sin + φ.cos + φ.sin = 0 ∧ + A * (3 * θ.sin + φ.sin) - 2 * B * φ.cos + + 3 * (θ - φ - 1) * θ.sin + 3 * θ.cos - φ.sin + φ.cos = 0 ∧ + A * φ.cos - (φ.sin + 1 / 2 - φ.cos / 2 + B * φ.sin) = 0 ∧ + (A + Real.pi / 2 - φ - θ) - + (B - (θ - φ) * (1 + A) / 2 - (θ - φ)^2 / 4) = 0 + +theorem upstreamSpec_iff (A B φ θ : ℝ) : + upstreamSpec A B φ θ ↔ PartE.DeepMindABPhiThetaSpec A B φ θ := by + unfold upstreamSpec PartE.DeepMindABPhiThetaSpec PartE.PhysicalDomain + PartE.reducedParams PartE.DeepMindEquations + dsimp only + tauto + +/-- Package the upstream four-parameter specification as a predicate on a nested tuple. -/ +def TupleSpec (q : ℝ × ℝ × ℝ × ℝ) : Prop := + upstreamSpec q.1 q.2.1 q.2.2.1 q.2.2.2 + +theorem existsUnique : ∃! q, TupleSpec q := by + simpa only [TupleSpec, upstreamSpec_iff] using PartE.deepMindABPhiTheta_existsUnique + +/-- The certified reduced solution converted to the upstream four-parameter tuple. -/ +def certified : ℝ × ℝ × ℝ × ℝ := + PartE.tupleEquiv.symm PartALeanCert.reducedCertifiedUniqueSolution.solution + +theorem certified_spec : TupleSpec certified := by + apply (upstreamSpec_iff _ _ _ _).2 + exact PartE.deepMindSpec_of_mem_reducedBox_and_equations + PartALeanCert.reducedCertifiedUniqueSolution.solution_mem + PartALeanCert.reducedCertifiedUniqueSolution.satisfies + +theorem any_solution_eq_certified (q : ℝ × ℝ × ℝ × ℝ) (hq : TupleSpec q) : + q = certified := existsUnique.unique hq certified_spec + +/-- This applies to any eventual upstream proof of the *same* specification. -/ +theorem choice_independent (h : ∃! q, TupleSpec q) : h.choose = certified := + any_solution_eq_certified h.choose h.choose_spec.1 + +end GerverSofa.PartF.Parameters + +end + +end + +end + +section + +/-! +# F02: the certified sofa as a set with Euclidean rigid motion + +Every existing `SE2` action is realized by an affine isometry of `Plane`. +Norm preservation is proved in `Plane` from the equation `c*c+s*s=1`. +Continuity is proved in the induced continuous-affine-map topology of F01. +The final theorem transfers all seven motion fields for the already +certified set, without adding geometric hypotheses. + +This module does not identify the set with the literal upstream integral +definition. Its rotation matrices are explicit; their comparison with +`F01.rotation` and the integral representation are separate bridge steps. +-/ + +@[expose] public section + +noncomputable section +open scoped unitInterval +namespace GerverSofa.PartF.EuclideanMotion + +open Coordinates + +/-- The standard rotation matrix associated with an existing `SE2` value. -/ +def linearPart (g : SE2) : Plane ≃ₗ[ℝ] Plane where + toFun := fun q => toPlane (g.c * q 0 - g.s * q 1, g.s * q 0 + g.c * q 1) + invFun := fun q => toPlane (g.c * q 0 + g.s * q 1, -g.s * q 0 + g.c * q 1) + left_inv := by + intro q + apply plane_ext + · change g.c * (g.c * q 0 - g.s * q 1) + + g.s * (g.s * q 0 + g.c * q 1) = q 0 + linear_combination (q 0) * g.unit + · change -g.s * (g.c * q 0 - g.s * q 1) + + g.c * (g.s * q 0 + g.c * q 1) = q 1 + linear_combination (q 1) * g.unit + right_inv := by + intro q + apply plane_ext + · change g.c * (g.c * q 0 + g.s * q 1) - + g.s * (-g.s * q 0 + g.c * q 1) = q 0 + linear_combination (q 0) * g.unit + · change g.s * (g.c * q 0 + g.s * q 1) + + g.c * (-g.s * q 0 + g.c * q 1) = q 1 + linear_combination (q 1) * g.unit + map_add' := by + intro q r + apply plane_ext + · change g.c * (q 0 + r 0) - g.s * (q 1 + r 1) = + (g.c * q 0 - g.s * q 1) + (g.c * r 0 - g.s * r 1) + ring + · change g.s * (q 0 + r 0) + g.c * (q 1 + r 1) = + (g.s * q 0 + g.c * q 1) + (g.s * r 0 + g.c * r 1) + ring + map_smul' := by + intro c q + apply plane_ext + · change g.c * (c * q 0) - g.s * (c * q 1) = c * (g.c * q 0 - g.s * q 1) + ring + · change g.s * (c * q 0) + g.c * (c * q 1) = c * (g.s * q 0 + g.c * q 1) + ring + +@[simp] theorem linearPart_zero_coord (g : SE2) (q : Plane) : + linearPart g q 0 = g.c * q 0 - g.s * q 1 := rfl + +@[simp] theorem linearPart_one_coord (g : SE2) (q : Plane) : + linearPart g q 1 = g.s * q 0 + g.c * q 1 := rfl + +theorem linearPart_norm_sq (g : SE2) (q : Plane) : + ‖linearPart g q‖ ^ 2 = ‖q‖ ^ 2 := by + rw [EuclideanSpace.real_norm_sq_eq, EuclideanSpace.real_norm_sq_eq] + simp only [Fin.sum_univ_two] + change (g.c * q 0 - g.s * q 1) ^ 2 + (g.s * q 0 + g.c * q 1) ^ 2 = + (q 0) ^ 2 + (q 1) ^ 2 + linear_combination ((q 0) ^ 2 + (q 1) ^ 2) * g.unit + +theorem linearPart_norm (g : SE2) (q : Plane) : ‖linearPart g q‖ = ‖q‖ := + (sq_eq_sq₀ (norm_nonneg _) (norm_nonneg _)).mp (linearPart_norm_sq g q) + +/-- The linear isometry determined by the rotation coefficients of an SE2 motion. -/ +def linearIsometry (g : SE2) : Plane ≃ₗᵢ[ℝ] Plane where + toLinearEquiv := linearPart g + norm_map' := linearPart_norm g + +/-- A genuine Euclidean affine isometry with the original coordinate action. -/ +def ofSE2 (g : SE2) : Rigid := + rotateThenTranslate (linearIsometry g) (toPlane (g.tx, g.ty)) + +theorem ofSE2_apply (g : SE2) (q : Plane) : + ofSE2 g q = toPlane (g.act (fromPlane q)) := by + exact plane_ext rfl rfl + +theorem ofSE2_apply_toPlane (g : SE2) (q : Point) : + ofSE2 g (toPlane q) = toPlane (g.act q) := by + rw [ofSE2_apply, fromPlane_toPlane] + +theorem ofSE2_one : ofSE2 SE2.one = AffineIsometryEquiv.refl ℝ Plane := by + apply AffineIsometryEquiv.ext + intro q + change ofSE2 SE2.one q = q + rw [ofSE2_apply, SE2.one_act, toPlane_fromPlane] + +theorem image_action (g : SE2) (S : Set Point) : + ofSE2 g '' (toPlane '' S) = toPlane '' (g.act '' S) := by + simp only [Set.image_image, ofSE2_apply_toPlane] + +/-- The coordinate quarter-turn, used to express continuous matrix coefficients. -/ +def quarterTurnLinear : Plane →ₗ[ℝ] Plane where + toFun := fun q => toPlane (-q 1, q 0) + map_add' := by + intro q r + apply plane_ext + · change -(q 1 + r 1) = -q 1 + -r 1 + ring + · rfl + map_smul' := by + intro c q + apply plane_ext + · change -(c * q 1) = c * (-q 1) + ring + · rfl + +/-- The quarter-turn rotation bundled as a continuous linear map. -/ +def quarterTurn : Plane →L[ℝ] Plane := quarterTurnLinear.toContinuousLinearMap + +/-- Componentwise continuous `SE2` coefficients give continuity in the +actual topology on affine isometry equivalences. -/ +theorem continuous_ofSE2 {X : Type*} [TopologicalSpace X] + (g : X → SE2) + (hc : Continuous (fun t => (g t).c)) + (hs : Continuous (fun t => (g t).s)) + (htx : Continuous (fun t => (g t).tx)) + (hty : Continuous (fun t => (g t).ty)) : + Continuous (fun t => ofSE2 (g t)) := by + let lin : X → (Plane →L[ℝ] Plane) := fun t => + (g t).c • ContinuousLinearMap.id ℝ Plane + (g t).s • quarterTurn + let offset : X → Plane := fun t => toPlane ((g t).tx, (g t).ty) + let D := ContinuousAffineMap.decompLinearIsometryEquiv ℝ ℝ Plane Plane + have hlin : Continuous lin := + (hc.smul continuous_const).add (hs.smul continuous_const) + have hoffset : Continuous offset := continuous_toPlane.comp (htx.prodMk hty) + have hD : Continuous (fun t => D.symm (offset t, lin t)) := + D.symm.continuous.comp (hoffset.prodMk hlin) + apply continuous_induced_rng.mpr + change Continuous (fun t => (ofSE2 (g t)).toAffineIsometry.toContinuousAffineMap) + have heq : + (fun t => (ofSE2 (g t)).toAffineIsometry.toContinuousAffineMap) = + (fun t => D.symm (offset t, lin t)) := by + funext t + apply ContinuousAffineMap.ext + intro q + change ofSE2 (g t) q = D.symm (offset t, lin t) q + dsimp only [D] + rw [ContinuousAffineMap.decompLinearIsometryEquiv_symm_apply, ofSE2_apply] + apply plane_ext + · change (g t).c * q 0 - (g t).s * q 1 + (g t).tx = + (g t).c * q 0 + (g t).s * (-q 1) + (g t).tx + ring + · change (g t).s * q 0 + (g t).c * q 1 + (g t).ty = + (g t).c * q 1 + (g t).s * q 0 + (g t).ty + ring + rw [heq] + exact hD + +theorem continuous_ofSE2_path (g : ℝ → SE2) (hg : SE2.ContinuousPath g) : + Continuous (fun t => ofSE2 (g t)) := by + rcases hg with ⟨hc, hs, htx, hty⟩ + exact continuous_ofSE2 g hc hs htx hty + +/-- The coordinate image of the certified Gerver sofa in the Euclidean plane. -/ +def sofa : Set Plane := toPlane '' PartC.G + +/-- The certified sofa motion as affine isometries indexed by the unit interval. -/ +def motion (s : I) : Rigid := ofSE2 (Existing.motion (s : ℝ)) + +theorem motion_continuous : Continuous motion := + (continuous_ofSE2_path Existing.motion Existing.motion_continuous).comp continuous_subtype_val + +/-- All seven motion requirements hold for the coordinate image of the +already certified Gerver set. No additional geometric assumptions occur. -/ +theorem concrete_movingSofa : Model.IsMovingSofa sofa motion := by + refine ⟨?_, ?_, motion_continuous, ?_, ?_, ?_, ?_⟩ + · exact isConnected_image PartC.Stage4.globalGeometryCertificate.connected + · exact isClosed_image PartC.closed_G + · change ofSE2 (Existing.motion 0) = AffineIsometryEquiv.refl ℝ Plane + rw [Existing.motion_zero, ofSE2_one] + · change toPlane '' PartC.G ⊆ Model.horizontalHallway + rw [← horizontal_image] + exact Set.image_mono Existing.initial + · intro s + change ofSE2 (Existing.motion (s : ℝ)) '' (toPlane '' PartC.G) ⊆ Model.hallway + rw [image_action, ← hallway_image] + exact Set.image_mono (Existing.all_times (s : ℝ) s.property) + · change ofSE2 (Existing.motion 1) '' (toPlane '' PartC.G) ⊆ Model.verticalHallway + rw [image_action, ← vertical_image] + exact Set.image_mono Existing.final + +end GerverSofa.PartF.EuclideanMotion + +end + +end + +end + +section + +/-! +# F03: the upstream-oriented rotation in the certified coordinates + +The orientation is the ordered coordinate-basis orientation installed in F01, +with the same definition as the pinned upstream plane helper. We compute its +area form, then its right-angle rotation, before comparing rotation matrices. +No replacement orientation or additional orientation hypothesis is introduced. +-/ + +@[expose] public section + +noncomputable section +namespace GerverSofa.PartF.CanonicalRotation + +open Coordinates EuclideanMotion + +/-- The sign is fixed by the ordered orthonormal coordinate basis. -/ +theorem areaForm_coordinates (q r : Plane) : + EuclideanGeometry.o.areaForm q r = q 0 * r 1 - q 1 * r 0 := by + rw [Orientation.areaForm_to_volumeForm, + EuclideanGeometry.o.volumeForm_robust (EuclideanSpace.basisFun (Fin 2) ℝ) rfl, + Module.Basis.det_apply] + simp [Module.Basis.toMatrix, Matrix.det_fin_two, mul_comm] + +/-- The positive quarter-turn is exactly `(x,y) ↦ (-y,x)`. -/ +theorem rightAngleRotation_apply (q : Plane) : + EuclideanGeometry.o.rightAngleRotation q = toPlane (-q 1, q 0) := by + apply plane_ext + · have h := EuclideanGeometry.o.inner_rightAngleRotation_left q + (EuclideanSpace.basisFun (Fin 2) ℝ 0) + rw [EuclideanSpace.inner_basisFun_real, areaForm_coordinates] at h + simpa [EuclideanSpace.basisFun_apply, PiLp.single_apply] using h + · have h := EuclideanGeometry.o.inner_rightAngleRotation_left q + (EuclideanSpace.basisFun (Fin 2) ℝ 1) + rw [EuclideanSpace.inner_basisFun_real, areaForm_coordinates] at h + simpa [EuclideanSpace.basisFun_apply, PiLp.single_apply] using h + +theorem rotation_apply (t : ℝ) (q : Plane) : + rotation t q = toPlane (Romik.rot t (fromPlane q)) := by + change EuclideanGeometry.o.rotation (t : Real.Angle) q = _ + rw [Orientation.rotation_apply, rightAngleRotation_apply] + simp only [Real.Angle.cos_coe, Real.Angle.sin_coe] + apply plane_ext + · change Real.cos t * q 0 + Real.sin t * (-q 1) = + Real.cos t * q 0 - Real.sin t * q 1 + ring + · change Real.cos t * q 1 + Real.sin t * q 0 = + Real.sin t * q 0 + Real.cos t * q 1 + ring + +theorem rotation_toPlane (t : ℝ) (q : Point) : + rotation t (toPlane q) = toPlane (Romik.rot t q) := by + rw [rotation_apply, fromPlane_toPlane] + +theorem linearIsometry_eq_rotation (g : SE2) (t : ℝ) + (hc : g.c = Real.cos t) (hs : g.s = Real.sin t) : + linearIsometry g = rotation t := by + apply LinearIsometryEquiv.ext + intro q + rw [rotation_apply] + change toPlane (g.c * q 0 - g.s * q 1, g.s * q 0 + g.c * q 1) = + toPlane (Real.cos t * q 0 - Real.sin t * q 1, + Real.sin t * q 0 + Real.cos t * q 1) + rw [hc, hs] + +theorem ofSE2_eq_worldFrame (g : SE2) (t : ℝ) + (hc : g.c = Real.cos t) (hs : g.s = Real.sin t) : + ofSE2 g = worldFrame t (toPlane (g.tx, g.ty)) := by + unfold ofSE2 worldFrame + rw [linearIsometry_eq_rotation g t hc hs] + +/-- The physical angle is `s * (π/2)`, including both endpoints. -/ +theorem romikFrame_eq_worldFrame (p : Romik.Params) (s : ℝ) : + ofSE2 (Romik.frame p s) = + worldFrame (Romik.angle s) (toPlane (Romik.path p (Romik.angle s))) := by + exact ofSE2_eq_worldFrame (Romik.frame p s) (Romik.angle s) rfl rfl + +theorem romikFrame_zero_act (p : Romik.Params) + (hzero : Romik.path p 0 = (0, 0)) (q : Point) : + (Romik.frame p 0).act q = q := by + simp [Romik.frame, Romik.angle, hzero, SE2.act] + +/-- The already proved five-phase algebra now uses the canonical rotation. -/ +theorem closedPath_rotation (d : Reduced.Params) + (hd : Reduced.Equations d) (t : ℝ) : + rotation t (toPlane (Phases.closedPath d t)) = + toPlane (Romik.path (Phases.dictionary d) t) := by + rw [rotation_toPlane, Phases.fivePhaseRepresentation d hd t] + +end GerverSofa.PartF.CanonicalRotation + +end + +end + +end + +section + +/-! +# F03: the certified set as a canonical hallway intersection + +We transport the existing reconstruction theorem, including the endpoint arms, +to the Euclidean world-frame convention. The final conditional interfaces state +the outstanding path/dictionary equalities explicitly. They do not prove the +literal integral representation or identify the certified 22D tuple. +-/ + +@[expose] public section + +noncomputable section +open scoped unitInterval +namespace GerverSofa.PartF.SetIdentification + +open Coordinates EuclideanMotion CanonicalRotation + +theorem mem_coordinate_image (S : Set Point) (q : Plane) : + q ∈ toPlane '' S ↔ fromPlane q ∈ S := by + rw [image_eq_preimage] + rfl + +theorem mem_ofSE2_image (g : SE2) (S : Set Point) (q : Plane) : + q ∈ ofSE2 g '' (toPlane '' S) ↔ fromPlane q ∈ g.act '' S := by + rw [image_action, mem_coordinate_image] + +/-- The change from real unit time to subtype unit time loses no constraint. -/ +theorem reconstructedSet_image (p : Romik.Params) + (hzero : Romik.path p 0 = (0, 0)) : + toPlane '' Romik.reconstructedSet p = + frameIntersection (fun s : I => ofSE2 (Romik.frame p (s : ℝ))) + Model.horizontalHallway Model.verticalHallway Model.hallway := by + have hstart : (Romik.frame p 0).act '' horizontalArm = horizontalArm := by + have hfun : (Romik.frame p 0).act = id := + funext (romikFrame_zero_act p hzero) + rw [hfun, Set.image_id] + ext q + simp only [frameIntersection, ← horizontal_image, ← vertical_image, + ← hallway_image, Set.mem_inter_iff, Set.mem_iInter, + mem_ofSE2_image, mem_coordinate_image] + change (fromPlane q ∈ horizontalArm ∧ + (∀ s ∈ Set.Icc (0 : ℝ) 1, + fromPlane q ∈ (Romik.frame p s).act '' hallway) ∧ + fromPlane q ∈ (Romik.frame p 1).act '' verticalArm) ↔ + (fromPlane q ∈ (Romik.frame p 0).act '' horizontalArm ∧ + fromPlane q ∈ (Romik.frame p 1).act '' verticalArm) ∧ + ∀ s : I, fromPlane q ∈ (Romik.frame p (s : ℝ)).act '' hallway + rw [hstart] + constructor + · rintro ⟨hi, hall, hf⟩ + exact ⟨⟨hi, hf⟩, fun s => hall (s : ℝ) s.property⟩ + · rintro ⟨⟨hi, hf⟩, hall⟩ + exact ⟨hi, fun s hs => hall ⟨s, hs⟩, hf⟩ + +theorem reconstructedSet_image_eq_worldSofa (p : Romik.Params) + (hzero : Romik.path p 0 = (0, 0)) : + toPlane '' Romik.reconstructedSet p = + worldSofa (fun t => toPlane (Romik.path p t)) + Model.horizontalHallway Model.verticalHallway Model.hallway := by + rw [reconstructedSet_image p hzero, worldSofa, angleIntersection_eq_frameIntersection] + have hframes : + (fun s : I => ofSE2 (Romik.frame p (s : ℝ))) = + (fun s : I => worldFrame ((s : ℝ) * (Real.pi / 2)) + (toPlane (Romik.path p ((s : ℝ) * (Real.pi / 2))))) := by + funext s + exact romikFrame_eq_worldFrame p (s : ℝ) + exact congrArg (fun F => frameIntersection F + Model.horizontalHallway Model.verticalHallway Model.hallway) hframes + +/-- An unconditional identification of the concrete, already certified set. -/ +theorem sofa_eq_worldSofa : + EuclideanMotion.sofa = + worldSofa (fun t => toPlane (Romik.path PartC.params t)) + Model.horizontalHallway Model.verticalHallway Model.hallway := by + change toPlane '' PartC.G = _ + rw [PartC.G_eq_Sx] + exact reconstructedSet_image_eq_worldSofa PartC.params PartC.pathZero + +end GerverSofa.PartF.SetIdentification + +end + +end + +end + +section + +/-! +# F04: the literal integral path equals the closed five-phase path + +All integral identities are proved in F04IntegralEvaluation. Reflection of the +closed intervals then gives the same five branches and the same endpoint choices +as F01. The final identification with PartC.params still requires the 22D +dictionary theorem; it remains an explicit hypothesis in the two last results. +-/ + +@[expose] public section + +noncomputable section +namespace GerverSofa.PartF.Integrals + +open Phases Coordinates + +theorem path_first_of_le (d : Reduced.Params) (t : ℝ) (ht : t ≤ d.phi) : + (path d t).1 = Real.cos t - 1 := by + simp only [path, ite_eq_left ht] + +theorem path_first_of_gt (d : Reduced.Params) (t : ℝ) (ht : d.phi < t) : + (path d t).1 = W d (T - t) - 1 := by + simp only [path, ite_eq_right (not_le.mpr ht)] + unfold W + dsimp only [T] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + +theorem path_second_of_le (d : Reduced.Params) (ho : Ordered d) + (hd : Reduced.Equations d) (t : ℝ) (ht : t ≤ tau d) : + (path d t).2 = W d t - ell d * Real.sin t - 1 := by + simp only [path, ite_eq_left ht] + rw [xi_zero d ho hd] + unfold W ell + ring + +theorem path_second_of_gt (d : Reduced.Params) (ho : Ordered d) + (hd : Reduced.Equations d) (t : ℝ) (ht : tau d < t) : + (path d t).2 = (1 - ell d) * Real.sin t - 1 := by + simp only [path, ite_eq_right (not_le.mpr ht)] + rw [xi_zero d ho hd] + unfold ell + ring + +theorem path_phase1 (d : Reduced.Params) (ho : Ordered d) + (hd : Reduced.Equations d) (t : ℝ) (ht : t ∈ Set.Icc 0 d.phi) : + path d t = closed1 d t := by + have hk := ordered_knots d ho + have htau : t ≤ tau d := ht.2.trans (hk.2.1.trans (hk.2.2.1.trans hk.2.2.2.1)) + apply Prod.ext + · exact path_first_of_le d t ht.2 + · rw [path_second_of_le d ho hd t htau, W_phase1 d ho hd t ht, U1_eq_half d hd] + dsimp [closed1, r1] + ring + +theorem path_phase2 (d : Reduced.Params) (ho : Ordered d) + (hd : Reduced.Equations d) (t : ℝ) + (hlo : d.phi < t) (hhi : t ≤ d.theta) : path d t = closed2 d t := by + have hk := ordered_knots d ho + have hr : T - t ∈ Set.Icc (eta d) (tau d) := by + dsimp [eta, tau] + constructor <;> linarith + have htau : t ≤ tau d := hhi.trans (hk.2.2.1.trans hk.2.2.2.1) + apply Prod.ext + · rw [path_first_of_gt d t hlo, W_phase4 d ho (T - t) hr] + simp only [closed2, T, Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + · rw [path_second_of_le d ho hd t htau, W_phase2 d ho hd t ⟨hlo.le, hhi⟩] + dsimp [closed2, U2] + ring + +theorem path_phase3 (d : Reduced.Params) (ho : Ordered d) + (hd : Reduced.Equations d) (t : ℝ) + (hlo : d.theta < t) (hhi : t ≤ eta d) : path d t = closed3 d t := by + have hk := ordered_knots d ho + have hphi : d.phi < t := lt_of_le_of_lt ho.2.1 hlo + have hr : T - t ∈ Set.Icc d.theta (eta d) := by + dsimp [eta] at * + constructor <;> linarith + have htau : t ≤ tau d := hhi.trans hk.2.2.2.1 + apply Prod.ext + · rw [path_first_of_gt d t hphi, W_phase3 d ho hd (T - t) hr] + simp only [closed3, T, Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + · rw [path_second_of_le d ho hd t htau, W_phase3 d ho hd t ⟨hlo.le, hhi⟩] + dsimp [closed3] + ring + +theorem path_phase4 (d : Reduced.Params) (ho : Ordered d) + (hd : Reduced.Equations d) (t : ℝ) + (hlo : eta d < t) (hhi : t ≤ tau d) : path d t = closed4 d t := by + have hk := ordered_knots d ho + have hphi : d.phi < t := lt_of_le_of_lt (ho.2.1.trans hk.2.2.1) hlo + have hr : T - t ∈ Set.Icc d.phi d.theta := by + dsimp [eta, tau] at * + constructor <;> linarith + apply Prod.ext + · rw [path_first_of_gt d t hphi, W_phase2 d ho hd (T - t) hr] + simp only [closed4, U2, T, Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + · rw [path_second_of_le d ho hd t hhi, W_phase4 d ho t ⟨hlo.le, hhi⟩] + dsimp [closed4] + ring + +theorem path_phase5 (d : Reduced.Params) (ho : Ordered d) + (hd : Reduced.Equations d) (t : ℝ) + (hlo : tau d < t) (hhi : t ≤ T) : path d t = closed5 d t := by + have hk := ordered_knots d ho + have hphi : d.phi < t := + lt_of_le_of_lt (ho.2.1.trans (hk.2.2.1.trans hk.2.2.2.1)) hlo + have hr : T - t ∈ Set.Icc 0 d.phi := by + dsimp [tau] at * + constructor <;> linarith + apply Prod.ext + · rw [path_first_of_gt d t hphi, W_phase1 d ho hd (T - t) hr, U1_eq_half d hd] + dsimp only [closed5, r1, T] + rw [Real.sin_pi_div_two_sub, Real.cos_pi_div_two_sub] + ring + · exact path_second_of_gt d ho hd t hlo + +/-- The literal integral path, not just its formal candidate, has these phases. -/ +theorem path_eq_closedPath (d : Reduced.Params) (ho : Ordered d) + (hd : Reduced.Equations d) (t : ℝ) (ht : t ∈ Set.Icc 0 T) : + path d t = closedPath d t := by + change path d t = + (if t ≤ d.phi then closed1 d t + else if t ≤ d.theta then closed2 d t + else if t ≤ eta d then closed3 d t + else if t ≤ tau d then closed4 d t + else closed5 d t) + by_cases h1 : t ≤ d.phi + · simpa only [ite_eq_left h1] using path_phase1 d ho hd t ⟨ht.1, h1⟩ + by_cases h2 : t ≤ d.theta + · simpa only [ite_eq_right h1, ite_eq_left h2] using path_phase2 d ho hd t (lt_of_not_ge h1) h2 + by_cases h3 : t ≤ eta d + · simpa only [ite_eq_right h1, ite_eq_right h2, ite_eq_left h3] using + path_phase3 d ho hd t (lt_of_not_ge h2) h3 + by_cases h4 : t ≤ tau d + · simpa only [ite_eq_right h1, ite_eq_right h2, ite_eq_right h3, ite_eq_left h4] using + path_phase4 d ho hd t (lt_of_not_ge h3) h4 + · simpa only [ite_eq_right h1, ite_eq_right h2, ite_eq_right h3, ite_eq_right h4] using + path_phase5 d ho hd t (lt_of_not_ge h4) ht.2 + +theorem integral_rotation (d : Reduced.Params) (ho : Ordered d) + (hd : Reduced.Equations d) (t : ℝ) (ht : t ∈ Set.Icc 0 T) : + rotation t (toPlane (path d t)) = toPlane (Romik.path (dictionary d) t) := by + rw [path_eq_closedPath d ho hd t ht, CanonicalRotation.closedPath_rotation d hd t] + +theorem integral_sofa_eq_worldSofa (d : Reduced.Params) (ho : Ordered d) + (hd : Reduced.Equations d) : + bodySofa (fun t => toPlane (path d t)) + Model.horizontalHallway Model.verticalHallway Model.hallway = + worldSofa (fun t => toPlane (Romik.path (dictionary d) t)) + Model.horizontalHallway Model.verticalHallway Model.hallway := by + apply bodySofa_eq_worldSofa_of_path_identity + intro t ht + exact (integral_rotation d ho hd t ht).symm + +/-- The reduced parameters selected by the concrete uniqueness certificate. -/ +def certified : Reduced.Params := PartALeanCert.reducedCertifiedUniqueSolution.solution + +theorem certified_ordered : Ordered certified := by + have h := PartE.physicalDomain_of_mem_reducedBox + PartALeanCert.reducedCertifiedUniqueSolution.solution_mem + exact ⟨h.1, h.2.1, h.2.2.1⟩ + +theorem certified_equations : Reduced.Equations certified := + PartALeanCert.reducedCertifiedUniqueSolution.satisfies + +/-- An unconditional representation theorem for the certified reduced tuple. -/ +theorem certified_integral_rotation (t : ℝ) (ht : t ∈ Set.Icc 0 T) : + rotation t (toPlane (path certified t)) = + toPlane (Romik.path (dictionary certified) t) := + integral_rotation certified certified_ordered certified_equations t ht + +/-- Remaining obligation: identify the full dictionary with the independent 22D root. -/ +theorem integral_sofa_eq_certified_of_dictionary + (hdictionary : dictionary certified = PartC.params) : + bodySofa (fun t => toPlane (path certified t)) + Model.horizontalHallway Model.verticalHallway Model.hallway = + EuclideanMotion.sofa := by + rw [integral_sofa_eq_worldSofa certified certified_ordered certified_equations, + hdictionary, ← SetIdentification.sofa_eq_worldSofa] + +end GerverSofa.PartF.Integrals + +end + +end + +end + +section + +/-! +# F06: identify the two independently certified parameter choices + +The 22D box supplies only coarse physical inequalities for its reverse +parameters. Global 4D uniqueness from Part E then identifies the reduced root. +The full algebraic reconstruction closes the 22D identity without a new +Krawczyk run or a forward enclosure into the narrow full box. +-/ + +@[expose] public section + +noncomputable section +namespace GerverSofa.PartF.Parameters + +open Phases + +theorem undictionary_physical_of_mem_full_box {p : Romik.Params} + (hp : p ∈ Romik.box) : PartE.PhysicalDomain (undictionary p) := by + dsimp [Romik.box, qR] at hp + rcases hp with ⟨_, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, + hb1lo, hb1hi, hb2lo, _, _, _, _, _, + _, _, _, _, _, _, _, _, + hphilo, hphihi, hthetalo, hthetahi⟩ + norm_num at hb1lo hb1hi hb2lo hphilo hphihi hthetalo hthetahi + have hphi0 : 0 ≤ p.phi := by linarith only [hphilo] + have hphi1 : p.phi ≤ 1 / 20 := by linarith only [hphihi] + have htheta0 : (3 / 5 : ℝ) ≤ p.theta := by linarith only [hthetalo] + have htheta1 : p.theta ≤ 7 / 10 := by linarith only [hthetahi] + change 0 ≤ p.phi ∧ p.phi ≤ p.theta ∧ p.theta ≤ Real.pi / 4 ∧ + 0 ≤ p.phi - 1 - 2 * p.b1 ∧ + 0 ≤ p.b2 + 1 / 2 - (1 + (p.phi - 1 - 2 * p.b1)) * p.phi / 2 + p.phi ^ 2 / 4 + refine ⟨hphi0, ?_, ?_, ?_, ?_⟩ + · linarith only [hphi1, htheta0] + · nlinarith only [htheta1, Real.pi_gt_three] + · linarith only [hphi0, hb1hi] + · have hprod : 0 ≤ (p.b1 + 3 / 5) * p.phi := + mul_nonneg (by linarith only [hb1lo]) hphi0 + have hsq : 0 ≤ p.phi * (1 / 20 - p.phi) := + mul_nonneg hphi0 (by linarith only [hphi1]) + nlinarith only [hb2lo, hprod, hsq, hphi0, hphi1] + +theorem undictionary_eq_reduced_certified {p : Romik.Params} + (hp : p ∈ Romik.box) (heq : Romik.Equations p) : + undictionary p = PartALeanCert.reducedCertifiedUniqueSolution.solution := by + let d := undictionary p + have hdom : PartE.PhysicalDomain d := undictionary_physical_of_mem_full_box hp + have he : Reduced.Equations d := undictionary_equations heq + have hspec : PartE.DeepMindABPhiThetaSpec d.a d.b d.phi d.theta := + (PartE.deepMindSpec_iff_physicalDomain_and_reducedEquations _ _ _ _).2 ⟨hdom, he⟩ + let q : ℝ × ℝ × ℝ × ℝ := (d.a, d.b, d.phi, d.theta) + have hq : TupleSpec q := (upstreamSpec_iff _ _ _ _).2 hspec + have htuple := any_solution_eq_certified q hq + have hparams := congrArg PartE.tupleEquiv htuple + rw [certified, PartE.tupleEquiv.apply_symm_apply] at hparams + exact hparams + +theorem dictionary_eq_full_certified : + dictionary PartALeanCert.reducedCertifiedUniqueSolution.solution = PartB.params := by + have hu := undictionary_eq_reduced_certified PartB.params_mem PartB.params_equations + calc + dictionary PartALeanCert.reducedCertifiedUniqueSolution.solution = + dictionary (undictionary PartB.params) := congrArg dictionary hu.symm + _ = PartB.params := dictionary_undictionary_of_equations PartB.params_equations + +end GerverSofa.PartF.Parameters + +end + +end + +end + +section + +/-! +# F06: unconditional motion bridge for the literal integral construction + +This is the translate-then-rotate body model defined in Part F, with the +canonical Euclidean orientation. It does not silently replace the current +upstream rotateTranslate definition discussed in issue #5270. +-/ + +@[expose] public section + +noncomputable section +namespace GerverSofa.PartF.Integrals + +open Phases Coordinates + +theorem certified_dictionary_eq_params : dictionary certified = PartC.params := + Parameters.dictionary_eq_full_certified + +theorem certified_integral_rotation_to_full (t : ℝ) (ht : t ∈ Set.Icc 0 T) : + rotation t (toPlane (path certified t)) = toPlane (Romik.path PartC.params t) := by + rw [certified_integral_rotation t ht, certified_dictionary_eq_params] + +theorem integral_sofa_eq_certified : + bodySofa (fun t => toPlane (path certified t)) + Model.horizontalHallway Model.verticalHallway Model.hallway = + EuclideanMotion.sofa := + integral_sofa_eq_certified_of_dictionary certified_dictionary_eq_params + +end GerverSofa.PartF.Integrals + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle001.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle001.lean new file mode 100644 index 0000000000..41448d2064 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle001.lean @@ -0,0 +1,15130 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch001`. +* `GerverSofa.KernelOnly.PartE.Certificates.Batch016`. +* `GerverSofa.KernelOnly.PartE.Certificates.Batch004`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CoverCertificate7eaf46f70e + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate7eaf46f70e + +namespace GerverSofa.PartE.CoverCertificate3307b34685 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate3307b34685 + +namespace GerverSofa.PartE.CoverCertificatea0fa380a93 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatea0fa380a93 + +namespace GerverSofa.PartE.CoverCertificate5f1fd442d3 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate5f1fd442d3 + +namespace GerverSofa.PartE.CoverCertificated6f9cbc5d6 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificated6f9cbc5d6 + +namespace GerverSofa.PartE.CoverCertificatecaa270a0ec + +private abbrev cellRoot : AngleCell := + (childLL (childHL (childLH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatecaa270a0ec + +namespace GerverSofa.PartE.CoverCertificate0254ae442a + +private abbrev cellRoot : AngleCell := + (childLH (childHL (childLH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate0254ae442a + +namespace GerverSofa.PartE.CoverCertificate44197a14bc + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childLH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate44197a14bc + +namespace GerverSofa.PartE.CoverCertificateaa4818b079 + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childLH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificateaa4818b079 + +namespace GerverSofa.PartE.CoverCertificateade660b261 + +private abbrev cellRoot : AngleCell := + (childLL (childHH (childLH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificateade660b261 + +namespace GerverSofa.PartE.CoverCertificateead4291aaf + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childLH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificateead4291aaf + +namespace GerverSofa.PartE.CoverCertificate76deff8421 + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childLH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate76deff8421 + +namespace GerverSofa.PartE.CoverCertificatef9c3dd592d + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childHL (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatef9c3dd592d + +namespace GerverSofa.PartE.CoverCertificate55e26a37bf + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childHL (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate55e26a37bf + +namespace GerverSofa.PartE.CoverCertificated546542719 + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childHL (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificated546542719 + +namespace GerverSofa.PartE.CoverCertificate09704881ea + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childHL (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate09704881ea + +namespace GerverSofa.PartE.CoverCertificate89f8bf996f + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childHH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate89f8bf996f + +namespace GerverSofa.PartE.CoverCertificate072d32638e + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childHH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate072d32638e + +namespace GerverSofa.PartE.CoverCertificate5c3ff9507c + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childHH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate5c3ff9507c + +namespace GerverSofa.PartE.CoverCertificate0e6fd3d794 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childHH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate0e6fd3d794 + +namespace GerverSofa.PartE.CoverCertificate1d8d5ed6e8 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childHH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate1d8d5ed6e8 + +namespace GerverSofa.PartE.CoverCertificatead0c92c0d4 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childHH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatead0c92c0d4 + +namespace GerverSofa.PartE.CoverCertificate4e6964ff18 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childHH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate4e6964ff18 + +namespace GerverSofa.PartE.CoverCertificate14906b8c69 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childHH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate14906b8c69 + +namespace GerverSofa.PartE.CoverCertificate4614f242b3 + +private abbrev cellRoot : AngleCell := + (childLL (childHL (childHH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate4614f242b3 + +namespace GerverSofa.PartE.CoverCertificatef3c458cae3 + +private abbrev cellRoot : AngleCell := + (childLH (childHL (childHH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatef3c458cae3 + +namespace GerverSofa.PartE.CoverCertificateeb6553a302 + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childHH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificateeb6553a302 + +namespace GerverSofa.PartE.CoverCertificatefa7152b230 + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childHH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatefa7152b230 + +namespace GerverSofa.PartE.CoverCertificate8afa5ed490 + +private abbrev cellRoot : AngleCell := + (childLL (childHH (childHH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate8afa5ed490 + +namespace GerverSofa.PartE.CoverCertificated9debec79d + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childHH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +end GerverSofa.PartE.CoverCertificated9debec79d + +namespace GerverSofa.PartE.CoverCertificate67d4072331 + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childHH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate67d4072331 + +namespace GerverSofa.PartE.CoverCertificatebed93df298 + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childHH (childLL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatebed93df298 + +namespace GerverSofa.PartE.CoverCertificatefd2c3f3274 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childHL (childLH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatefd2c3f3274 + +namespace GerverSofa.PartE.CoverCertificate1ffa851843 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childHL (childLH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate1ffa851843 + +namespace GerverSofa.PartE.CoverCertificated8ac44ac8f + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childHL (childLH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificated8ac44ac8f + +namespace GerverSofa.PartE.CoverCertificate3caeb3dd1d + +private abbrev cellRoot : AngleCell := + (childLL (childHL (childHL (childLH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate3caeb3dd1d + +namespace GerverSofa.PartE.CoverCertificate3195681328 + +private abbrev cellRoot : AngleCell := + (childLH (childHL (childHL (childLH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate3195681328 + +namespace GerverSofa.PartE.CoverCertificate24d91bb18c + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childHL (childLH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate24d91bb18c + +namespace GerverSofa.PartE.CoverCertificatea5eff6d169 + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childHL (childLH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatea5eff6d169 + +namespace GerverSofa.PartE.CoverCertificateabfc719760 + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childHL (childLH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificateabfc719760 + +namespace GerverSofa.PartE.CoverCertificate0a514de912 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLL (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate0a514de912 + +namespace GerverSofa.PartE.CoverCertificate7ed638f543 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate7ed638f543 + +namespace GerverSofa.PartE.CoverCertificatebdb1950cb6 + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childLL (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatebdb1950cb6 + +namespace GerverSofa.PartE.CoverCertificate5fb7a54ee1 + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childLL (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate5fb7a54ee1 + +namespace GerverSofa.PartE.CoverCertificated58a87e9b8 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificated58a87e9b8 + +namespace GerverSofa.PartE.CoverCertificate3ddf17b582 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate3ddf17b582 + +namespace GerverSofa.PartE.CoverCertificated26b7e0a55 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificated26b7e0a55 + +namespace GerverSofa.PartE.CoverCertificatea04fbf8169 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatea04fbf8169 + +namespace GerverSofa.PartE.CoverCertificate3ba43c403b + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate3ba43c403b + +namespace GerverSofa.PartE.CoverCertificate1430173dea + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate1430173dea + +namespace GerverSofa.PartE.CoverCertificate2756e7c1ab + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate2756e7c1ab + +namespace GerverSofa.PartE.CoverCertificate8e43edbf8f + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate8e43edbf8f + +namespace GerverSofa.PartE.CoverCertificated1acdb7cc1 + +private abbrev cellRoot : AngleCell := + (childLL (childHL (childLH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificated1acdb7cc1 + +namespace GerverSofa.PartE.CoverCertificated9d4fcb914 + +private abbrev cellRoot : AngleCell := + (childLH (childHL (childLH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificated9d4fcb914 + +namespace GerverSofa.PartE.CoverCertificate18d654774a + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childLH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate18d654774a + +namespace GerverSofa.PartE.CoverCertificate3c1ddcbe4a + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childLH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate3c1ddcbe4a + +namespace GerverSofa.PartE.CoverCertificatecaa9842c01 + +private abbrev cellRoot : AngleCell := + (childLL (childHH (childLH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatecaa9842c01 + +namespace GerverSofa.PartE.CoverCertificate8a64f55483 + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childLH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate8a64f55483 + +namespace GerverSofa.PartE.CoverCertificatea45749320c + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childLH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatea45749320c + +namespace GerverSofa.PartE.CoverCertificate96200cdbc3 + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childLH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate96200cdbc3 + +namespace GerverSofa.PartE.CoverCertificate1e0715601d + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLH (childLL (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate1e0715601d + +namespace GerverSofa.PartE.CoverCertificate645c2a2fa6 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLL (childLH (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +end GerverSofa.PartE.CoverCertificate645c2a2fa6 + +namespace GerverSofa.PartE.CoverCertificate22a5b25f41 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLL (childLH (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +end GerverSofa.PartE.CoverCertificate22a5b25f41 + +namespace GerverSofa.PartE.CoverCertificate052935fbc6 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLL (childLH (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell1010 : AngleCell := + childLL cell101 + +private abbrev cell1011 : AngleCell := + childLH cell101 + +private abbrev cell1012 : AngleCell := + childHL cell101 + +private abbrev cell1013 : AngleCell := + childHH cell101 + +private abbrev cell1100 : AngleCell := + childLL cell110 + +private abbrev cell1101 : AngleCell := + childLH cell110 + +private abbrev cell1102 : AngleCell := + childHL cell110 + +private abbrev cell1103 : AngleCell := + childHH cell110 + +private abbrev cell1110 : AngleCell := + childLL cell111 + +private abbrev cell1111 : AngleCell := + childLH cell111 + +private abbrev cell1112 : AngleCell := + childHL cell111 + +private abbrev cell1113 : AngleCell := + childHH cell111 + +end GerverSofa.PartE.CoverCertificate052935fbc6 + +namespace GerverSofa.PartE.CoverCertificateda1b0b5031 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLL (childLH (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell0000 : AngleCell := + childLL cell000 + +private abbrev cell0001 : AngleCell := + childLH cell000 + +private abbrev cell0002 : AngleCell := + childHL cell000 + +private abbrev cell0003 : AngleCell := + childHH cell000 + +private abbrev cell0010 : AngleCell := + childLL cell001 + +private abbrev cell0011 : AngleCell := + childLH cell001 + +private abbrev cell0012 : AngleCell := + childHL cell001 + +private abbrev cell0013 : AngleCell := + childHH cell001 + +private abbrev cell0100 : AngleCell := + childLL cell010 + +private abbrev cell0101 : AngleCell := + childLH cell010 + +private abbrev cell0102 : AngleCell := + childHL cell010 + +private abbrev cell0103 : AngleCell := + childHH cell010 + +private abbrev cell0110 : AngleCell := + childLL cell011 + +private abbrev cell0111 : AngleCell := + childLH cell011 + +private abbrev cell0112 : AngleCell := + childHL cell011 + +private abbrev cell0113 : AngleCell := + childHH cell011 + +private abbrev cell1000 : AngleCell := + childLL cell100 + +private abbrev cell1001 : AngleCell := + childLH cell100 + +private abbrev cell1002 : AngleCell := + childHL cell100 + +private abbrev cell1003 : AngleCell := + childHH cell100 + +private abbrev cell1010 : AngleCell := + childLL cell101 + +private abbrev cell1011 : AngleCell := + childLH cell101 + +private abbrev cell1012 : AngleCell := + childHL cell101 + +private abbrev cell1013 : AngleCell := + childHH cell101 + +private abbrev cell1100 : AngleCell := + childLL cell110 + +private abbrev cell1101 : AngleCell := + childLH cell110 + +private abbrev cell1102 : AngleCell := + childHL cell110 + +private abbrev cell1103 : AngleCell := + childHH cell110 + +private abbrev cell1110 : AngleCell := + childLL cell111 + +private abbrev cell1111 : AngleCell := + childLH cell111 + +private abbrev cell1112 : AngleCell := + childHL cell111 + +private abbrev cell1113 : AngleCell := + childHH cell111 + +private abbrev cell11110 : AngleCell := + childLL cell1111 + +private abbrev cell11111 : AngleCell := + childLH cell1111 + +private abbrev cell11112 : AngleCell := + childHL cell1111 + +private abbrev cell11113 : AngleCell := + childHH cell1111 + +end GerverSofa.PartE.CoverCertificateda1b0b5031 + +namespace GerverSofa.PartE.CoverCertificate87253a3a53 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLL (childLH (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate87253a3a53 + +namespace GerverSofa.PartE.CoverCertificate3f791a2e61 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childLH (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate3f791a2e61 + +namespace GerverSofa.PartE.CertificateCells68c1109b36 + +/-- Subcell `3000` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3000 : AngleCell := + childLL (childLL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells68c1109b36 + +namespace GerverSofa.PartE.CertificateCells3eb225f04c + +/-- Subcell `3000` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3000 : AngleCell := + childLL (childLL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells3eb225f04c + +namespace GerverSofa.PartE.CertificateCells50ca4e3af4 + +/-- Subcell `3000` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3000 : AngleCell := + childLL (childLL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells50ca4e3af4 + +namespace GerverSofa.PartE.CertificateCellsfa60677f23 + +/-- Subcell `3000` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3000 : AngleCell := + childLL (childLL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsfa60677f23 + +namespace GerverSofa.PartE.CertificateCellsadacfb8de1 + +/-- Subcell `3001` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3001 : AngleCell := + childLH (childLL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsadacfb8de1 + +namespace GerverSofa.PartE.CertificateCells2e1d52b748 + +/-- Subcell `3001` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3001 : AngleCell := + childLH (childLL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells2e1d52b748 + +namespace GerverSofa.PartE.CertificateCells7e7c37fb1b + +/-- Subcell `3001` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3001 : AngleCell := + childLH (childLL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells7e7c37fb1b + +namespace GerverSofa.PartE.CertificateCellsa8cebe99f5 + +/-- Subcell `3001` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3001 : AngleCell := + childLH (childLL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa8cebe99f5 + +namespace GerverSofa.PartE.CertificateCells7730b0e091 + +/-- Subcell `3002` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3002 : AngleCell := + childHL (childLL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells7730b0e091 + +namespace GerverSofa.PartE.CertificateCellse8a24af0c4 + +/-- Subcell `3002` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3002 : AngleCell := + childHL (childLL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellse8a24af0c4 + +namespace GerverSofa.PartE.CertificateCellse2e04a6320 + +/-- Subcell `3002` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3002 : AngleCell := + childHL (childLL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellse2e04a6320 + +namespace GerverSofa.PartE.CertificateCells1fb6bd85e4 + +/-- Subcell `3002` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3002 : AngleCell := + childHL (childLL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells1fb6bd85e4 + +namespace GerverSofa.PartE.CertificateCellsf0432d10ef + +/-- Subcell `3003` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3003 : AngleCell := + childHH (childLL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsf0432d10ef + +namespace GerverSofa.PartE.CertificateCells283f971137 + +/-- Subcell `3003` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3003 : AngleCell := + childHH (childLL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells283f971137 + +namespace GerverSofa.PartE.CertificateCellsad7da039d5 + +/-- Subcell `3003` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3003 : AngleCell := + childHH (childLL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsad7da039d5 + +namespace GerverSofa.PartE.CertificateCells1e800a73bb + +/-- Subcell `3003` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3003 : AngleCell := + childHH (childLL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells1e800a73bb + +namespace GerverSofa.PartE.CertificateCellsb9d63d60b8 + +/-- Subcell `3010` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3010 : AngleCell := + childLL (childLH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsb9d63d60b8 + +namespace GerverSofa.PartE.CertificateCells73ece5e183 + +/-- Subcell `3010` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3010 : AngleCell := + childLL (childLH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells73ece5e183 + +namespace GerverSofa.PartE.CertificateCellsb58c03cf78 + +/-- Subcell `3010` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3010 : AngleCell := + childLL (childLH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsb58c03cf78 + +namespace GerverSofa.PartE.CertificateCells3c73252ed6 + +/-- Subcell `3010` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3010 : AngleCell := + childLL (childLH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells3c73252ed6 + +namespace GerverSofa.PartE.CertificateCells75abf59285 + +/-- Subcell `3011` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3011 : AngleCell := + childLH (childLH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells75abf59285 + +namespace GerverSofa.PartE.CertificateCellsc77278a9b0 + +/-- Subcell `3011` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3011 : AngleCell := + childLH (childLH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsc77278a9b0 + +namespace GerverSofa.PartE.CertificateCells80b449154c + +/-- Subcell `3011` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3011 : AngleCell := + childLH (childLH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells80b449154c + +namespace GerverSofa.PartE.CertificateCells19cd4580af + +/-- Subcell `3011` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3011 : AngleCell := + childLH (childLH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells19cd4580af + +namespace GerverSofa.PartE.CertificateCellsad60f51a47 + +/-- Subcell `3012` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3012 : AngleCell := + childHL (childLH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsad60f51a47 + +namespace GerverSofa.PartE.CertificateCells59722ddf21 + +/-- Subcell `3012` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3012 : AngleCell := + childHL (childLH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells59722ddf21 + +namespace GerverSofa.PartE.CertificateCells38add90453 + +/-- Subcell `3012` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3012 : AngleCell := + childHL (childLH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells38add90453 + +namespace GerverSofa.PartE.CertificateCellsa2fd436678 + +/-- Subcell `3012` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3012 : AngleCell := + childHL (childLH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa2fd436678 + +namespace GerverSofa.PartE.CertificateCells4036e8788a + +/-- Subcell `3013` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3013 : AngleCell := + childHH (childLH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells4036e8788a + +namespace GerverSofa.PartE.CertificateCellse8e082f5ed + +/-- Subcell `3013` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3013 : AngleCell := + childHH (childLH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellse8e082f5ed + +namespace GerverSofa.PartE.CertificateCells33c2a4ae09 + +/-- Subcell `3013` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3013 : AngleCell := + childHH (childLH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells33c2a4ae09 + +namespace GerverSofa.PartE.CertificateCells8acf2cf43b + +/-- Subcell `3013` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3013 : AngleCell := + childHH (childLH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells8acf2cf43b + +namespace GerverSofa.PartE.CertificateCells4c5b439e46 + +/-- Subcell `3020` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3020 : AngleCell := + childLL (childHL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells4c5b439e46 + +namespace GerverSofa.PartE.CertificateCells1d890d537b + +/-- Subcell `3020` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3020 : AngleCell := + childLL (childHL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells1d890d537b + +namespace GerverSofa.PartE.CertificateCells3dfd612f88 + +/-- Subcell `3020` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3020 : AngleCell := + childLL (childHL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells3dfd612f88 + +namespace GerverSofa.PartE.CertificateCellsb73c54b84b + +/-- Subcell `3020` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3020 : AngleCell := + childLL (childHL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsb73c54b84b + +namespace GerverSofa.PartE.CertificateCellsa2d944a3cb + +/-- Subcell `3021` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3021 : AngleCell := + childLH (childHL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa2d944a3cb + +namespace GerverSofa.PartE.CertificateCellsa175b3d804 + +/-- Subcell `3021` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3021 : AngleCell := + childLH (childHL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa175b3d804 + +namespace GerverSofa.PartE.CertificateCells2377a41132 + +/-- Subcell `3021` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3021 : AngleCell := + childLH (childHL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells2377a41132 + +namespace GerverSofa.PartE.CertificateCells141b81b7b9 + +/-- Subcell `3021` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3021 : AngleCell := + childLH (childHL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells141b81b7b9 + +namespace GerverSofa.PartE.CertificateCells53ed2717a4 + +/-- Subcell `3022` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3022 : AngleCell := + childHL (childHL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells53ed2717a4 + +namespace GerverSofa.PartE.CertificateCells6cc17280cd + +/-- Subcell `3022` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3022 : AngleCell := + childHL (childHL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells6cc17280cd + +namespace GerverSofa.PartE.CertificateCellscd48c30df5 + +/-- Subcell `3022` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3022 : AngleCell := + childHL (childHL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellscd48c30df5 + +namespace GerverSofa.PartE.CertificateCells6a90ac3f5f + +/-- Subcell `3022` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3022 : AngleCell := + childHL (childHL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells6a90ac3f5f + +namespace GerverSofa.PartE.CertificateCellscb8a79a1e7 + +/-- Subcell `3023` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3023 : AngleCell := + childHH (childHL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellscb8a79a1e7 + +namespace GerverSofa.PartE.CertificateCellsa17655a9cd + +/-- Subcell `3023` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3023 : AngleCell := + childHH (childHL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa17655a9cd + +namespace GerverSofa.PartE.CertificateCellsea417091fc + +/-- Subcell `3023` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3023 : AngleCell := + childHH (childHL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsea417091fc + +namespace GerverSofa.PartE.CertificateCells58f12e8647 + +/-- Subcell `3023` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3023 : AngleCell := + childHH (childHL (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells58f12e8647 + +namespace GerverSofa.PartE.CertificateCells5256e12156 + +/-- Subcell `3030` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3030 : AngleCell := + childLL (childHH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells5256e12156 + +namespace GerverSofa.PartE.CertificateCellsa7b064ca3f + +/-- Subcell `3030` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3030 : AngleCell := + childLL (childHH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa7b064ca3f + +namespace GerverSofa.PartE.CertificateCellsa6d5038417 + +/-- Subcell `3030` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3030 : AngleCell := + childLL (childHH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa6d5038417 + +namespace GerverSofa.PartE.CertificateCellsa40437554b + +/-- Subcell `3030` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3030 : AngleCell := + childLL (childHH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa40437554b + +namespace GerverSofa.PartE.CertificateCells99d0a4be54 + +/-- Subcell `3031` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3031 : AngleCell := + childLH (childHH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells99d0a4be54 + +namespace GerverSofa.PartE.CertificateCells473a273fc9 + +/-- Subcell `3031` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3031 : AngleCell := + childLH (childHH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells473a273fc9 + +namespace GerverSofa.PartE.CertificateCells3c757ee420 + +/-- Subcell `3031` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3031 : AngleCell := + childLH (childHH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells3c757ee420 + +namespace GerverSofa.PartE.CertificateCellsd8b0ff734e + +/-- Subcell `3031` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3031 : AngleCell := + childLH (childHH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsd8b0ff734e + +namespace GerverSofa.PartE.CertificateCells03aa6fa886 + +/-- Subcell `3032` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3032 : AngleCell := + childHL (childHH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells03aa6fa886 + +namespace GerverSofa.PartE.CertificateCellsf82ea84544 + +/-- Subcell `3032` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3032 : AngleCell := + childHL (childHH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsf82ea84544 + +namespace GerverSofa.PartE.CertificateCellsa1f10633df + +/-- Subcell `3032` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3032 : AngleCell := + childHL (childHH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa1f10633df + +namespace GerverSofa.PartE.CertificateCells92aeaddf18 + +/-- Subcell `3032` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3032 : AngleCell := + childHL (childHH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells92aeaddf18 + +namespace GerverSofa.PartE.CertificateCells4d2736f1ee + +/-- Subcell `3033` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3033 : AngleCell := + childHH (childHH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells4d2736f1ee + +namespace GerverSofa.PartE.CertificateCellsf1c569afeb + +/-- Subcell `3033` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3033 : AngleCell := + childHH (childHH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsf1c569afeb + +namespace GerverSofa.PartE.CertificateCells899e3e87cc + +/-- Subcell `3033` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3033 : AngleCell := + childHH (childHH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells899e3e87cc + +namespace GerverSofa.PartE.CertificateCells8cea727797 + +/-- Subcell `3033` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3033 : AngleCell := + childHH (childHH (childLL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells8cea727797 + +namespace GerverSofa.PartE.CertificateCellsdf788d056e + +/-- Subcell `3100` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3100 : AngleCell := + childLL (childLL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsdf788d056e + +namespace GerverSofa.PartE.CertificateCells83252066d4 + +/-- Subcell `3100` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3100 : AngleCell := + childLL (childLL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells83252066d4 + +namespace GerverSofa.PartE.CertificateCellsd15521ecc4 + +/-- Subcell `3100` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3100 : AngleCell := + childLL (childLL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsd15521ecc4 + +namespace GerverSofa.PartE.CertificateCells9ebe05244a + +/-- Subcell `3100` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3100 : AngleCell := + childLL (childLL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells9ebe05244a + +namespace GerverSofa.PartE.CertificateCells21fc209558 + +/-- Subcell `3101` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3101 : AngleCell := + childLH (childLL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells21fc209558 + +namespace GerverSofa.PartE.CertificateCellsc545b9b00b + +/-- Subcell `3101` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3101 : AngleCell := + childLH (childLL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsc545b9b00b + +namespace GerverSofa.PartE.CertificateCellsa64e976caf + +/-- Subcell `3101` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3101 : AngleCell := + childLH (childLL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa64e976caf + +namespace GerverSofa.PartE.CertificateCellsf9eb6beb81 + +/-- Subcell `3101` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3101 : AngleCell := + childLH (childLL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsf9eb6beb81 + +namespace GerverSofa.PartE.CertificateCells1d67e12ba0 + +/-- Subcell `3102` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3102 : AngleCell := + childHL (childLL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells1d67e12ba0 + +namespace GerverSofa.PartE.CertificateCellsa2d5114e5e + +/-- Subcell `3102` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3102 : AngleCell := + childHL (childLL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa2d5114e5e + +namespace GerverSofa.PartE.CertificateCells414314cff6 + +/-- Subcell `3102` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3102 : AngleCell := + childHL (childLL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells414314cff6 + +namespace GerverSofa.PartE.CertificateCellsf9010539ff + +/-- Subcell `3102` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3102 : AngleCell := + childHL (childLL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsf9010539ff + +namespace GerverSofa.PartE.CertificateCellse34346aa4a + +/-- Subcell `3103` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3103 : AngleCell := + childHH (childLL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellse34346aa4a + +namespace GerverSofa.PartE.CertificateCellse191f15fec + +/-- Subcell `3103` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3103 : AngleCell := + childHH (childLL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellse191f15fec + +namespace GerverSofa.PartE.CertificateCellsf92808a3cc + +/-- Subcell `3103` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3103 : AngleCell := + childHH (childLL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsf92808a3cc + +namespace GerverSofa.PartE.CertificateCells897e4339a9 + +/-- Subcell `3103` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3103 : AngleCell := + childHH (childLL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells897e4339a9 + +namespace GerverSofa.PartE.CertificateCellsf4227a46c1 + +/-- Subcell `3110` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3110 : AngleCell := + childLL (childLH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsf4227a46c1 + +namespace GerverSofa.PartE.CertificateCellsa2ba14667f + +/-- Subcell `3111` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3111 : AngleCell := + childLH (childLH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa2ba14667f + +namespace GerverSofa.PartE.CertificateCells172a47199c + +/-- Subcell `3112` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3112 : AngleCell := + childHL (childLH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells172a47199c + +namespace GerverSofa.PartE.CertificateCells503a496e12 + +/-- Subcell `3112` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3112 : AngleCell := + childHL (childLH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells503a496e12 + +namespace GerverSofa.PartE.CertificateCells4f35c82776 + +/-- Subcell `3112` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3112 : AngleCell := + childHL (childLH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells4f35c82776 + +namespace GerverSofa.PartE.CertificateCellsddf26a1af9 + +/-- Subcell `3112` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3112 : AngleCell := + childHL (childLH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsddf26a1af9 + +namespace GerverSofa.PartE.CertificateCells725d74e81a + +/-- Subcell `3113` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3113 : AngleCell := + childHH (childLH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells725d74e81a + +namespace GerverSofa.PartE.CertificateCells3b33327e8a + +/-- Subcell `3120` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3120 : AngleCell := + childLL (childHL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells3b33327e8a + +namespace GerverSofa.PartE.CertificateCells7bfd1f464a + +/-- Subcell `3120` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3120 : AngleCell := + childLL (childHL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells7bfd1f464a + +namespace GerverSofa.PartE.CertificateCellsdd644ededa + +/-- Subcell `3120` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3120 : AngleCell := + childLL (childHL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsdd644ededa + +namespace GerverSofa.PartE.CertificateCellsdd54c72360 + +/-- Subcell `3120` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3120 : AngleCell := + childLL (childHL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsdd54c72360 + +namespace GerverSofa.PartE.CertificateCellsf0f5b1fc54 + +/-- Subcell `3121` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3121 : AngleCell := + childLH (childHL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsf0f5b1fc54 + +namespace GerverSofa.PartE.CertificateCells2b0822f9b0 + +/-- Subcell `3121` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3121 : AngleCell := + childLH (childHL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells2b0822f9b0 + +namespace GerverSofa.PartE.CertificateCells05e3ee5af2 + +/-- Subcell `3121` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3121 : AngleCell := + childLH (childHL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells05e3ee5af2 + +namespace GerverSofa.PartE.CertificateCells8f81fc559c + +/-- Subcell `3121` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3121 : AngleCell := + childLH (childHL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells8f81fc559c + +namespace GerverSofa.PartE.CertificateCells509a6074b0 + +/-- Subcell `3122` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3122 : AngleCell := + childHL (childHL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells509a6074b0 + +namespace GerverSofa.PartE.CertificateCells6ac6e4ee1a + +/-- Subcell `3122` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3122 : AngleCell := + childHL (childHL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells6ac6e4ee1a + +namespace GerverSofa.PartE.CertificateCells2e92118453 + +/-- Subcell `3122` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3122 : AngleCell := + childHL (childHL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells2e92118453 + +namespace GerverSofa.PartE.CertificateCells5761c4811e + +/-- Subcell `3122` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3122 : AngleCell := + childHL (childHL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells5761c4811e + +namespace GerverSofa.PartE.CertificateCellsf228466209 + +/-- Subcell `3123` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3123 : AngleCell := + childHH (childHL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsf228466209 + +namespace GerverSofa.PartE.CertificateCells4924d89385 + +/-- Subcell `3123` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3123 : AngleCell := + childHH (childHL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells4924d89385 + +namespace GerverSofa.PartE.CertificateCells75bbd1e667 + +/-- Subcell `3123` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3123 : AngleCell := + childHH (childHL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells75bbd1e667 + +namespace GerverSofa.PartE.CertificateCells131513700f + +/-- Subcell `3123` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3123 : AngleCell := + childHH (childHL (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells131513700f + +namespace GerverSofa.PartE.CertificateCells0436aa31cb + +/-- Subcell `3130` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3130 : AngleCell := + childLL (childHH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells0436aa31cb + +namespace GerverSofa.PartE.CertificateCells4cca5ef5ea + +/-- Subcell `3130` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3130 : AngleCell := + childLL (childHH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells4cca5ef5ea + +namespace GerverSofa.PartE.CertificateCells2133748f57 + +/-- Subcell `3130` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3130 : AngleCell := + childLL (childHH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells2133748f57 + +namespace GerverSofa.PartE.CertificateCells2d9432dbe0 + +/-- Subcell `3130` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3130 : AngleCell := + childLL (childHH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells2d9432dbe0 + +namespace GerverSofa.PartE.CertificateCells28839ca767 + +/-- Subcell `3131` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3131 : AngleCell := + childLH (childHH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells28839ca767 + +namespace GerverSofa.PartE.CertificateCells1b0bf20c51 + +/-- Subcell `3131` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3131 : AngleCell := + childLH (childHH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells1b0bf20c51 + +namespace GerverSofa.PartE.CertificateCells9fb8ae7256 + +/-- Subcell `3131` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3131 : AngleCell := + childLH (childHH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells9fb8ae7256 + +namespace GerverSofa.PartE.CertificateCells10b8b658d1 + +/-- Subcell `3131` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3131 : AngleCell := + childLH (childHH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells10b8b658d1 + +namespace GerverSofa.PartE.CertificateCells372671dc1b + +/-- Subcell `3132` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3132 : AngleCell := + childHL (childHH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells372671dc1b + +namespace GerverSofa.PartE.CertificateCells91a123c697 + +/-- Subcell `3132` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3132 : AngleCell := + childHL (childHH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells91a123c697 + +namespace GerverSofa.PartE.CertificateCellsce14c27bce + +/-- Subcell `3132` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3132 : AngleCell := + childHL (childHH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsce14c27bce + +namespace GerverSofa.PartE.CertificateCellsabc89a203a + +/-- Subcell `3132` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3132 : AngleCell := + childHL (childHH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsabc89a203a + +namespace GerverSofa.PartE.CertificateCells6f99a95071 + +/-- Subcell `3133` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3133 : AngleCell := + childHH (childHH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells6f99a95071 + +namespace GerverSofa.PartE.CertificateCells4acdbba755 + +/-- Subcell `3133` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3133 : AngleCell := + childHH (childHH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells4acdbba755 + +namespace GerverSofa.PartE.CertificateCells45607104df + +/-- Subcell `3133` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3133 : AngleCell := + childHH (childHH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells45607104df + +namespace GerverSofa.PartE.CertificateCellsf2e66397f6 + +/-- Subcell `3133` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3133 : AngleCell := + childHH (childHH (childLH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsf2e66397f6 + +namespace GerverSofa.PartE.CertificateCellsf60a68912f + +/-- Subcell `3200` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3200 : AngleCell := + childLL (childLL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsf60a68912f + +namespace GerverSofa.PartE.CertificateCellsdb667fab49 + +/-- Subcell `3200` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3200 : AngleCell := + childLL (childLL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsdb667fab49 + +namespace GerverSofa.PartE.CertificateCells378433963d + +/-- Subcell `3200` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3200 : AngleCell := + childLL (childLL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells378433963d + +namespace GerverSofa.PartE.CertificateCells3c30c58615 + +/-- Subcell `3200` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3200 : AngleCell := + childLL (childLL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells3c30c58615 + +namespace GerverSofa.PartE.CertificateCellscbc2cb8c4d + +/-- Subcell `3201` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3201 : AngleCell := + childLH (childLL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellscbc2cb8c4d + +namespace GerverSofa.PartE.CertificateCells0ae5e3afe8 + +/-- Subcell `3201` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3201 : AngleCell := + childLH (childLL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells0ae5e3afe8 + +namespace GerverSofa.PartE.CertificateCells72905f39fb + +/-- Subcell `3201` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3201 : AngleCell := + childLH (childLL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells72905f39fb + +namespace GerverSofa.PartE.CertificateCells36ded03275 + +/-- Subcell `3201` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3201 : AngleCell := + childLH (childLL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells36ded03275 + +namespace GerverSofa.PartE.CertificateCells055eee17e7 + +/-- Subcell `3202` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3202 : AngleCell := + childHL (childLL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells055eee17e7 + +namespace GerverSofa.PartE.CertificateCells86a7b10d51 + +/-- Subcell `3202` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3202 : AngleCell := + childHL (childLL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells86a7b10d51 + +namespace GerverSofa.PartE.CertificateCells62973479ba + +/-- Subcell `3202` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3202 : AngleCell := + childHL (childLL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells62973479ba + +namespace GerverSofa.PartE.CertificateCellse26adcc478 + +/-- Subcell `3202` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3202 : AngleCell := + childHL (childLL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellse26adcc478 + +namespace GerverSofa.PartE.CertificateCellsd471241912 + +/-- Subcell `3203` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3203 : AngleCell := + childHH (childLL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsd471241912 + +namespace GerverSofa.PartE.CertificateCells89c6c55f33 + +/-- Subcell `3203` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3203 : AngleCell := + childHH (childLL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells89c6c55f33 + +namespace GerverSofa.PartE.CertificateCells371a4c38c5 + +/-- Subcell `3203` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3203 : AngleCell := + childHH (childLL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells371a4c38c5 + +namespace GerverSofa.PartE.CertificateCells96fe0c4e84 + +/-- Subcell `3203` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3203 : AngleCell := + childHH (childLL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells96fe0c4e84 + +namespace GerverSofa.PartE.CertificateCells9ae3b0f784 + +/-- Subcell `3210` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3210 : AngleCell := + childLL (childLH (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells9ae3b0f784 + +namespace GerverSofa.PartE.CertificateCells9614d1d005 + +/-- Subcell `3210` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3210 : AngleCell := + childLL (childLH (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells9614d1d005 + +namespace GerverSofa.PartE.CertificateCells27f26686ef + +/-- Subcell `3210` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3210 : AngleCell := + childLL (childLH (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells27f26686ef + +namespace GerverSofa.PartE.CertificateCells9dc2121909 + +/-- Subcell `3210` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3210 : AngleCell := + childLL (childLH (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells9dc2121909 + +namespace GerverSofa.PartE.CertificateCellsc35310d566 + +/-- Subcell `3211` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3211 : AngleCell := + childLH (childLH (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsc35310d566 + +namespace GerverSofa.PartE.CertificateCellsa20e4da390 + +/-- Subcell `3211` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3211 : AngleCell := + childLH (childLH (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa20e4da390 + +namespace GerverSofa.PartE.CertificateCells3a90cbf635 + +/-- Subcell `3211` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3211 : AngleCell := + childLH (childLH (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells3a90cbf635 + +namespace GerverSofa.PartE.CertificateCells214a11de68 + +/-- Subcell `3211` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3211 : AngleCell := + childLH (childLH (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells214a11de68 + +namespace GerverSofa.PartE.CertificateCells032b91f5bc + +/-- Subcell `3212` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3212 : AngleCell := + childHL (childLH (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells032b91f5bc + +namespace GerverSofa.PartE.CertificateCellsaa8e493e23 + +/-- Subcell `3212` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3212 : AngleCell := + childHL (childLH (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsaa8e493e23 + +namespace GerverSofa.PartE.CertificateCells6bd715f340 + +/-- Subcell `3212` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3212 : AngleCell := + childHL (childLH (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells6bd715f340 + +namespace GerverSofa.PartE.CertificateCellsa228f232aa + +/-- Subcell `3212` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3212 : AngleCell := + childHL (childLH (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa228f232aa + +namespace GerverSofa.PartE.CertificateCells4dea68b576 + +/-- Subcell `3213` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3213 : AngleCell := + childHH (childLH (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells4dea68b576 + +namespace GerverSofa.PartE.CertificateCells3e707fd6af + +/-- Subcell `3213` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3213 : AngleCell := + childHH (childLH (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells3e707fd6af + +namespace GerverSofa.PartE.CertificateCells46e40ef0a9 + +/-- Subcell `3213` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3213 : AngleCell := + childHH (childLH (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells46e40ef0a9 + +namespace GerverSofa.PartE.CertificateCells9651c4a476 + +/-- Subcell `3213` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3213 : AngleCell := + childHH (childLH (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells9651c4a476 + +namespace GerverSofa.PartE.CertificateCells2fa7cd8552 + +/-- Subcell `3220` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3220 : AngleCell := + childLL (childHL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells2fa7cd8552 + +namespace GerverSofa.PartE.CertificateCellsec4b7eff4d + +/-- Subcell `3220` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3220 : AngleCell := + childLL (childHL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsec4b7eff4d + +namespace GerverSofa.PartE.CertificateCells434ca1e74d + +/-- Subcell `3220` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3220 : AngleCell := + childLL (childHL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells434ca1e74d + +namespace GerverSofa.PartE.CertificateCells886952c236 + +/-- Subcell `3220` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3220 : AngleCell := + childLL (childHL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells886952c236 + +namespace GerverSofa.PartE.CertificateCells969a7c12d6 + +/-- Subcell `3221` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3221 : AngleCell := + childLH (childHL (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells969a7c12d6 + +namespace GerverSofa.PartE.CertificateCells7aa82bee5f + +/-- Subcell `1100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1100 : AngleCell := + childLL (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCells7aa82bee5f + +namespace GerverSofa.PartE.CertificateCellsf8d478d36a + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCellsf8d478d36a + +namespace GerverSofa.PartE.CertificateCellsce54db6860 + +/-- Subcell `1023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1023 : AngleCell := + childHH (childHL (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1030 : AngleCell := + childLL (childHH (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1031 : AngleCell := + childLH (childHH (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1032 : AngleCell := + childHL (childHH (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1033 : AngleCell := + childHH (childHH (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1100 : AngleCell := + childLL (childLL (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1102 : AngleCell := + childHL (childLL (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1103 : AngleCell := + childHH (childLL (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11000320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11000320 : AngleCell := + childLL (childHL (childHH (childLL thetaBelowCell1100))) + +/-- Subcell `11000321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11000321 : AngleCell := + childLH (childHL (childHH (childLL thetaBelowCell1100))) + +/-- Subcell `11000322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11000322 : AngleCell := + childHL (childHL (childHH (childLL thetaBelowCell1100))) + +/-- Subcell `11000323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11000323 : AngleCell := + childHH (childHL (childHH (childLL thetaBelowCell1100))) + +/-- Subcell `11000330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11000330 : AngleCell := + childLL (childHH (childHH (childLL thetaBelowCell1100))) + +/-- Subcell `11000331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11000331 : AngleCell := + childLH (childHH (childHH (childLL thetaBelowCell1100))) + +/-- Subcell `11000332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11000332 : AngleCell := + childHL (childHH (childHH (childLL thetaBelowCell1100))) + +/-- Subcell `11000333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11000333 : AngleCell := + childHH (childHH (childHH (childLL thetaBelowCell1100))) + +/-- Subcell `11001220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11001220 : AngleCell := + childLL (childHL (childHL (childLH thetaBelowCell1100))) + +/-- Subcell `11001221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11001221 : AngleCell := + childLH (childHL (childHL (childLH thetaBelowCell1100))) + +/-- Subcell `11001222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11001222 : AngleCell := + childHL (childHL (childHL (childLH thetaBelowCell1100))) + +/-- Subcell `11001223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11001223 : AngleCell := + childHH (childHL (childHL (childLH thetaBelowCell1100))) + +/-- Subcell `11001230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11001230 : AngleCell := + childLL (childHH (childHL (childLH thetaBelowCell1100))) + +/-- Subcell `11001231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11001231 : AngleCell := + childLH (childHH (childHL (childLH thetaBelowCell1100))) + +/-- Subcell `11001232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11001232 : AngleCell := + childHL (childHH (childHL (childLH thetaBelowCell1100))) + +/-- Subcell `11001233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11001233 : AngleCell := + childHH (childHH (childHL (childLH thetaBelowCell1100))) + +/-- Subcell `11001320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11001320 : AngleCell := + childLL (childHL (childHH (childLH thetaBelowCell1100))) + +/-- Subcell `11001321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11001321 : AngleCell := + childLH (childHL (childHH (childLH thetaBelowCell1100))) + +/-- Subcell `11001322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11001322 : AngleCell := + childHL (childHL (childHH (childLH thetaBelowCell1100))) + +/-- Subcell `11001323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11001323 : AngleCell := + childHH (childHL (childHH (childLH thetaBelowCell1100))) + +/-- Subcell `11001330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11001330 : AngleCell := + childLL (childHH (childHH (childLH thetaBelowCell1100))) + +/-- Subcell `11001331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11001331 : AngleCell := + childLH (childHH (childHH (childLH thetaBelowCell1100))) + +/-- Subcell `11001332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11001332 : AngleCell := + childHL (childHH (childHH (childLH thetaBelowCell1100))) + +/-- Subcell `11001333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11001333 : AngleCell := + childHH (childHH (childHH (childLH thetaBelowCell1100))) + +/-- Subcell `11002000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002000 : AngleCell := + childLL (childLL (childLL (childHL thetaBelowCell1100))) + +/-- Subcell `11002001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002001 : AngleCell := + childLH (childLL (childLL (childHL thetaBelowCell1100))) + +/-- Subcell `11002002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002002 : AngleCell := + childHL (childLL (childLL (childHL thetaBelowCell1100))) + +/-- Subcell `11002003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002003 : AngleCell := + childHH (childLL (childLL (childHL thetaBelowCell1100))) + +/-- Subcell `11002010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002010 : AngleCell := + childLL (childLH (childLL (childHL thetaBelowCell1100))) + +/-- Subcell `11002011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002011 : AngleCell := + childLH (childLH (childLL (childHL thetaBelowCell1100))) + +/-- Subcell `11002012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002012 : AngleCell := + childHL (childLH (childLL (childHL thetaBelowCell1100))) + +/-- Subcell `11002013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002013 : AngleCell := + childHH (childLH (childLL (childHL thetaBelowCell1100))) + +/-- Subcell `11002020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002020 : AngleCell := + childLL (childHL (childLL (childHL thetaBelowCell1100))) + +/-- Subcell `11002021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002021 : AngleCell := + childLH (childHL (childLL (childHL thetaBelowCell1100))) + +/-- Subcell `11002022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002022 : AngleCell := + childHL (childHL (childLL (childHL thetaBelowCell1100))) + +/-- Subcell `11002023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002023 : AngleCell := + childHH (childHL (childLL (childHL thetaBelowCell1100))) + +/-- Subcell `11002030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002030 : AngleCell := + childLL (childHH (childLL (childHL thetaBelowCell1100))) + +/-- Subcell `11002031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002031 : AngleCell := + childLH (childHH (childLL (childHL thetaBelowCell1100))) + +/-- Subcell `11002032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002032 : AngleCell := + childHL (childHH (childLL (childHL thetaBelowCell1100))) + +/-- Subcell `11002033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002033 : AngleCell := + childHH (childHH (childLL (childHL thetaBelowCell1100))) + +/-- Subcell `11002100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002100 : AngleCell := + childLL (childLL (childLH (childHL thetaBelowCell1100))) + +/-- Subcell `11002101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002101 : AngleCell := + childLH (childLL (childLH (childHL thetaBelowCell1100))) + +/-- Subcell `11002102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002102 : AngleCell := + childHL (childLL (childLH (childHL thetaBelowCell1100))) + +/-- Subcell `11002103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002103 : AngleCell := + childHH (childLL (childLH (childHL thetaBelowCell1100))) + +/-- Subcell `11002110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002110 : AngleCell := + childLL (childLH (childLH (childHL thetaBelowCell1100))) + +/-- Subcell `11002111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002111 : AngleCell := + childLH (childLH (childLH (childHL thetaBelowCell1100))) + +/-- Subcell `11002112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002112 : AngleCell := + childHL (childLH (childLH (childHL thetaBelowCell1100))) + +/-- Subcell `11002113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002113 : AngleCell := + childHH (childLH (childLH (childHL thetaBelowCell1100))) + +/-- Subcell `11002120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002120 : AngleCell := + childLL (childHL (childLH (childHL thetaBelowCell1100))) + +/-- Subcell `11002121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002121 : AngleCell := + childLH (childHL (childLH (childHL thetaBelowCell1100))) + +/-- Subcell `11002122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002122 : AngleCell := + childHL (childHL (childLH (childHL thetaBelowCell1100))) + +/-- Subcell `11002123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002123 : AngleCell := + childHH (childHL (childLH (childHL thetaBelowCell1100))) + +/-- Subcell `11002130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002130 : AngleCell := + childLL (childHH (childLH (childHL thetaBelowCell1100))) + +/-- Subcell `11002131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002131 : AngleCell := + childLH (childHH (childLH (childHL thetaBelowCell1100))) + +/-- Subcell `11002132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002132 : AngleCell := + childHL (childHH (childLH (childHL thetaBelowCell1100))) + +/-- Subcell `11002133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11002133 : AngleCell := + childHH (childHH (childLH (childHL thetaBelowCell1100))) + +/-- Subcell `11003000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003000 : AngleCell := + childLL (childLL (childLL (childHH thetaBelowCell1100))) + +/-- Subcell `11003001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003001 : AngleCell := + childLH (childLL (childLL (childHH thetaBelowCell1100))) + +/-- Subcell `11003002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003002 : AngleCell := + childHL (childLL (childLL (childHH thetaBelowCell1100))) + +/-- Subcell `11003003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003003 : AngleCell := + childHH (childLL (childLL (childHH thetaBelowCell1100))) + +/-- Subcell `11003010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003010 : AngleCell := + childLL (childLH (childLL (childHH thetaBelowCell1100))) + +/-- Subcell `11003011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003011 : AngleCell := + childLH (childLH (childLL (childHH thetaBelowCell1100))) + +/-- Subcell `11003012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003012 : AngleCell := + childHL (childLH (childLL (childHH thetaBelowCell1100))) + +/-- Subcell `11003013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003013 : AngleCell := + childHH (childLH (childLL (childHH thetaBelowCell1100))) + +/-- Subcell `11003020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003020 : AngleCell := + childLL (childHL (childLL (childHH thetaBelowCell1100))) + +/-- Subcell `11003021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003021 : AngleCell := + childLH (childHL (childLL (childHH thetaBelowCell1100))) + +/-- Subcell `11003022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003022 : AngleCell := + childHL (childHL (childLL (childHH thetaBelowCell1100))) + +/-- Subcell `11003023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003023 : AngleCell := + childHH (childHL (childLL (childHH thetaBelowCell1100))) + +/-- Subcell `11003030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003030 : AngleCell := + childLL (childHH (childLL (childHH thetaBelowCell1100))) + +/-- Subcell `11003031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003031 : AngleCell := + childLH (childHH (childLL (childHH thetaBelowCell1100))) + +/-- Subcell `11003032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003032 : AngleCell := + childHL (childHH (childLL (childHH thetaBelowCell1100))) + +/-- Subcell `11003033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003033 : AngleCell := + childHH (childHH (childLL (childHH thetaBelowCell1100))) + +/-- Subcell `11003100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003100 : AngleCell := + childLL (childLL (childLH (childHH thetaBelowCell1100))) + +/-- Subcell `11003101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003101 : AngleCell := + childLH (childLL (childLH (childHH thetaBelowCell1100))) + +/-- Subcell `11003102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003102 : AngleCell := + childHL (childLL (childLH (childHH thetaBelowCell1100))) + +/-- Subcell `11003103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003103 : AngleCell := + childHH (childLL (childLH (childHH thetaBelowCell1100))) + +/-- Subcell `11003110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003110 : AngleCell := + childLL (childLH (childLH (childHH thetaBelowCell1100))) + +/-- Subcell `11003111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell1100))) + +/-- Subcell `11003112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003112 : AngleCell := + childHL (childLH (childLH (childHH thetaBelowCell1100))) + +/-- Subcell `11003113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003113 : AngleCell := + childHH (childLH (childLH (childHH thetaBelowCell1100))) + +/-- Subcell `11003120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003120 : AngleCell := + childLL (childHL (childLH (childHH thetaBelowCell1100))) + +/-- Subcell `11003121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003121 : AngleCell := + childLH (childHL (childLH (childHH thetaBelowCell1100))) + +/-- Subcell `11003122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003122 : AngleCell := + childHL (childHL (childLH (childHH thetaBelowCell1100))) + +/-- Subcell `11003123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003123 : AngleCell := + childHH (childHL (childLH (childHH thetaBelowCell1100))) + +/-- Subcell `11003130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003130 : AngleCell := + childLL (childHH (childLH (childHH thetaBelowCell1100))) + +/-- Subcell `11003131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003131 : AngleCell := + childLH (childHH (childLH (childHH thetaBelowCell1100))) + +/-- Subcell `11003132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003132 : AngleCell := + childHL (childHH (childLH (childHH thetaBelowCell1100))) + +/-- Subcell `11003133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003133 : AngleCell := + childHH (childHH (childLH (childHH thetaBelowCell1100))) + +/-- Subcell `11003300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003300 : AngleCell := + childLL (childLL (childHH (childHH thetaBelowCell1100))) + +/-- Subcell `11003301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003301 : AngleCell := + childLH (childLL (childHH (childHH thetaBelowCell1100))) + +/-- Subcell `11003302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003302 : AngleCell := + childHL (childLL (childHH (childHH thetaBelowCell1100))) + +/-- Subcell `11003303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003303 : AngleCell := + childHH (childLL (childHH (childHH thetaBelowCell1100))) + +/-- Subcell `11003310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003310 : AngleCell := + childLL (childLH (childHH (childHH thetaBelowCell1100))) + +/-- Subcell `11003311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1100))) + +/-- Subcell `11003312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003312 : AngleCell := + childHL (childLH (childHH (childHH thetaBelowCell1100))) + +/-- Subcell `11003313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11003313 : AngleCell := + childHH (childLH (childHH (childHH thetaBelowCell1100))) + +/-- Subcell `11010220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11010220 : AngleCell := + childLL (childHL (childHL (childLL thetaBelowCell1101))) + +/-- Subcell `11010221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11010221 : AngleCell := + childLH (childHL (childHL (childLL thetaBelowCell1101))) + +/-- Subcell `11010222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11010222 : AngleCell := + childHL (childHL (childHL (childLL thetaBelowCell1101))) + +/-- Subcell `11010223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11010223 : AngleCell := + childHH (childHL (childHL (childLL thetaBelowCell1101))) + +/-- Subcell `11010230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11010230 : AngleCell := + childLL (childHH (childHL (childLL thetaBelowCell1101))) + +/-- Subcell `11010231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11010231 : AngleCell := + childLH (childHH (childHL (childLL thetaBelowCell1101))) + +/-- Subcell `11010232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11010232 : AngleCell := + childHL (childHH (childHL (childLL thetaBelowCell1101))) + +/-- Subcell `11010233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11010233 : AngleCell := + childHH (childHH (childHL (childLL thetaBelowCell1101))) + +/-- Subcell `11012000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012000 : AngleCell := + childLL (childLL (childLL (childHL thetaBelowCell1101))) + +/-- Subcell `11012001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012001 : AngleCell := + childLH (childLL (childLL (childHL thetaBelowCell1101))) + +/-- Subcell `11012002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012002 : AngleCell := + childHL (childLL (childLL (childHL thetaBelowCell1101))) + +/-- Subcell `11012003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012003 : AngleCell := + childHH (childLL (childLL (childHL thetaBelowCell1101))) + +/-- Subcell `11012010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012010 : AngleCell := + childLL (childLH (childLL (childHL thetaBelowCell1101))) + +/-- Subcell `11012011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012011 : AngleCell := + childLH (childLH (childLL (childHL thetaBelowCell1101))) + +/-- Subcell `11012012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012012 : AngleCell := + childHL (childLH (childLL (childHL thetaBelowCell1101))) + +/-- Subcell `11012013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012013 : AngleCell := + childHH (childLH (childLL (childHL thetaBelowCell1101))) + +/-- Subcell `11012020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012020 : AngleCell := + childLL (childHL (childLL (childHL thetaBelowCell1101))) + +/-- Subcell `11012021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012021 : AngleCell := + childLH (childHL (childLL (childHL thetaBelowCell1101))) + +/-- Subcell `11012022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012022 : AngleCell := + childHL (childHL (childLL (childHL thetaBelowCell1101))) + +/-- Subcell `11012023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012023 : AngleCell := + childHH (childHL (childLL (childHL thetaBelowCell1101))) + +/-- Subcell `11012030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012030 : AngleCell := + childLL (childHH (childLL (childHL thetaBelowCell1101))) + +/-- Subcell `11012031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012031 : AngleCell := + childLH (childHH (childLL (childHL thetaBelowCell1101))) + +/-- Subcell `11012032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012032 : AngleCell := + childHL (childHH (childLL (childHL thetaBelowCell1101))) + +/-- Subcell `11012033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012033 : AngleCell := + childHH (childHH (childLL (childHL thetaBelowCell1101))) + +/-- Subcell `11012100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012100 : AngleCell := + childLL (childLL (childLH (childHL thetaBelowCell1101))) + +/-- Subcell `11012101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012101 : AngleCell := + childLH (childLL (childLH (childHL thetaBelowCell1101))) + +/-- Subcell `11012102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012102 : AngleCell := + childHL (childLL (childLH (childHL thetaBelowCell1101))) + +/-- Subcell `11012103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012103 : AngleCell := + childHH (childLL (childLH (childHL thetaBelowCell1101))) + +/-- Subcell `11012110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012110 : AngleCell := + childLL (childLH (childLH (childHL thetaBelowCell1101))) + +/-- Subcell `11012111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012111 : AngleCell := + childLH (childLH (childLH (childHL thetaBelowCell1101))) + +/-- Subcell `11012112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012112 : AngleCell := + childHL (childLH (childLH (childHL thetaBelowCell1101))) + +/-- Subcell `11012113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012113 : AngleCell := + childHH (childLH (childLH (childHL thetaBelowCell1101))) + +/-- Subcell `11012120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012120 : AngleCell := + childLL (childHL (childLH (childHL thetaBelowCell1101))) + +/-- Subcell `11012121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012121 : AngleCell := + childLH (childHL (childLH (childHL thetaBelowCell1101))) + +/-- Subcell `11012122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012122 : AngleCell := + childHL (childHL (childLH (childHL thetaBelowCell1101))) + +/-- Subcell `11012123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012123 : AngleCell := + childHH (childHL (childLH (childHL thetaBelowCell1101))) + +/-- Subcell `11012130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012130 : AngleCell := + childLL (childHH (childLH (childHL thetaBelowCell1101))) + +/-- Subcell `11012131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012131 : AngleCell := + childLH (childHH (childLH (childHL thetaBelowCell1101))) + +/-- Subcell `11012132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012132 : AngleCell := + childHL (childHH (childLH (childHL thetaBelowCell1101))) + +/-- Subcell `11012133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012133 : AngleCell := + childHH (childHH (childLH (childHL thetaBelowCell1101))) + +/-- Subcell `11012200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012200 : AngleCell := + childLL (childLL (childHL (childHL thetaBelowCell1101))) + +/-- Subcell `11012201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012201 : AngleCell := + childLH (childLL (childHL (childHL thetaBelowCell1101))) + +/-- Subcell `11012202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012202 : AngleCell := + childHL (childLL (childHL (childHL thetaBelowCell1101))) + +/-- Subcell `11012203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012203 : AngleCell := + childHH (childLL (childHL (childHL thetaBelowCell1101))) + +/-- Subcell `11012210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012210 : AngleCell := + childLL (childLH (childHL (childHL thetaBelowCell1101))) + +/-- Subcell `11012211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012211 : AngleCell := + childLH (childLH (childHL (childHL thetaBelowCell1101))) + +/-- Subcell `11012212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012212 : AngleCell := + childHL (childLH (childHL (childHL thetaBelowCell1101))) + +/-- Subcell `11012213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012213 : AngleCell := + childHH (childLH (childHL (childHL thetaBelowCell1101))) + +/-- Subcell `11012300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012300 : AngleCell := + childLL (childLL (childHH (childHL thetaBelowCell1101))) + +/-- Subcell `11012301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012301 : AngleCell := + childLH (childLL (childHH (childHL thetaBelowCell1101))) + +/-- Subcell `11012302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012302 : AngleCell := + childHL (childLL (childHH (childHL thetaBelowCell1101))) + +/-- Subcell `11012303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012303 : AngleCell := + childHH (childLL (childHH (childHL thetaBelowCell1101))) + +/-- Subcell `11012310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012310 : AngleCell := + childLL (childLH (childHH (childHL thetaBelowCell1101))) + +/-- Subcell `11012311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012311 : AngleCell := + childLH (childLH (childHH (childHL thetaBelowCell1101))) + +/-- Subcell `11012312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012312 : AngleCell := + childHL (childLH (childHH (childHL thetaBelowCell1101))) + +/-- Subcell `11012313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012313 : AngleCell := + childHH (childLH (childHH (childHL thetaBelowCell1101))) + +/-- Subcell `11013000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013000 : AngleCell := + childLL (childLL (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013001 : AngleCell := + childLH (childLL (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013002 : AngleCell := + childHL (childLL (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013003 : AngleCell := + childHH (childLL (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013010 : AngleCell := + childLL (childLH (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013011 : AngleCell := + childLH (childLH (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013012 : AngleCell := + childHL (childLH (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013013 : AngleCell := + childHH (childLH (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013020 : AngleCell := + childLL (childHL (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013021 : AngleCell := + childLH (childHL (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013022 : AngleCell := + childHL (childHL (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013023 : AngleCell := + childHH (childHL (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013030 : AngleCell := + childLL (childHH (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013031 : AngleCell := + childLH (childHH (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013032 : AngleCell := + childHL (childHH (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013033 : AngleCell := + childHH (childHH (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013100 : AngleCell := + childLL (childLL (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013101 : AngleCell := + childLH (childLL (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013102 : AngleCell := + childHL (childLL (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013103 : AngleCell := + childHH (childLL (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013110 : AngleCell := + childLL (childLH (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013112 : AngleCell := + childHL (childLH (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013113 : AngleCell := + childHH (childLH (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013120 : AngleCell := + childLL (childHL (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013121 : AngleCell := + childLH (childHL (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013122 : AngleCell := + childHL (childHL (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013123 : AngleCell := + childHH (childHL (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013130 : AngleCell := + childLL (childHH (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013131 : AngleCell := + childLH (childHH (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013132 : AngleCell := + childHL (childHH (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013133 : AngleCell := + childHH (childHH (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013200 : AngleCell := + childLL (childLL (childHL (childHH thetaBelowCell1101))) + +/-- Subcell `11013201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013201 : AngleCell := + childLH (childLL (childHL (childHH thetaBelowCell1101))) + +/-- Subcell `11013202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013202 : AngleCell := + childHL (childLL (childHL (childHH thetaBelowCell1101))) + +/-- Subcell `11013203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013203 : AngleCell := + childHH (childLL (childHL (childHH thetaBelowCell1101))) + +/-- Subcell `11013210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013210 : AngleCell := + childLL (childLH (childHL (childHH thetaBelowCell1101))) + +/-- Subcell `11013211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013211 : AngleCell := + childLH (childLH (childHL (childHH thetaBelowCell1101))) + +/-- Subcell `11013212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013212 : AngleCell := + childHL (childLH (childHL (childHH thetaBelowCell1101))) + +/-- Subcell `11013213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013213 : AngleCell := + childHH (childLH (childHL (childHH thetaBelowCell1101))) + +/-- Subcell `11013300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013300 : AngleCell := + childLL (childLL (childHH (childHH thetaBelowCell1101))) + +/-- Subcell `11013301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013301 : AngleCell := + childLH (childLL (childHH (childHH thetaBelowCell1101))) + +/-- Subcell `11013302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013302 : AngleCell := + childHL (childLL (childHH (childHH thetaBelowCell1101))) + +/-- Subcell `11013303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013303 : AngleCell := + childHH (childLL (childHH (childHH thetaBelowCell1101))) + +/-- Subcell `11013310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013310 : AngleCell := + childLL (childLH (childHH (childHH thetaBelowCell1101))) + +/-- Subcell `11013311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1101))) + +/-- Subcell `11013312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013312 : AngleCell := + childHL (childLH (childHH (childHH thetaBelowCell1101))) + +/-- Subcell `11013313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013313 : AngleCell := + childHH (childLH (childHH (childHH thetaBelowCell1101))) + +/-- Subcell `11102000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102000 : AngleCell := + childLL (childLL (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102001 : AngleCell := + childLH (childLL (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102002 : AngleCell := + childHL (childLL (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102003 : AngleCell := + childHH (childLL (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102010 : AngleCell := + childLL (childLH (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102011 : AngleCell := + childLH (childLH (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102012 : AngleCell := + childHL (childLH (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102013 : AngleCell := + childHH (childLH (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102020 : AngleCell := + childLL (childHL (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102021 : AngleCell := + childLH (childHL (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102022 : AngleCell := + childHL (childHL (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102023 : AngleCell := + childHH (childHL (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102030 : AngleCell := + childLL (childHH (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102031 : AngleCell := + childLH (childHH (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102032 : AngleCell := + childHL (childHH (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102033 : AngleCell := + childHH (childHH (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102100 : AngleCell := + childLL (childLL (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102101 : AngleCell := + childLH (childLL (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102102 : AngleCell := + childHL (childLL (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102103 : AngleCell := + childHH (childLL (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102110 : AngleCell := + childLL (childLH (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102111 : AngleCell := + childLH (childLH (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102112 : AngleCell := + childHL (childLH (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102113 : AngleCell := + childHH (childLH (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102120 : AngleCell := + childLL (childHL (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102121 : AngleCell := + childLH (childHL (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102122 : AngleCell := + childHL (childHL (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102123 : AngleCell := + childHH (childHL (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102130 : AngleCell := + childLL (childHH (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102131 : AngleCell := + childLH (childHH (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102132 : AngleCell := + childHL (childHH (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102133 : AngleCell := + childHH (childHH (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102200 : AngleCell := + childLL (childLL (childHL (childHL thetaBelowCell1110))) + +/-- Subcell `11102201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102201 : AngleCell := + childLH (childLL (childHL (childHL thetaBelowCell1110))) + +/-- Subcell `11102202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102202 : AngleCell := + childHL (childLL (childHL (childHL thetaBelowCell1110))) + +/-- Subcell `11102203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102203 : AngleCell := + childHH (childLL (childHL (childHL thetaBelowCell1110))) + +/-- Subcell `11102210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102210 : AngleCell := + childLL (childLH (childHL (childHL thetaBelowCell1110))) + +/-- Subcell `11102211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102211 : AngleCell := + childLH (childLH (childHL (childHL thetaBelowCell1110))) + +/-- Subcell `11102212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102212 : AngleCell := + childHL (childLH (childHL (childHL thetaBelowCell1110))) + +/-- Subcell `11102213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102213 : AngleCell := + childHH (childLH (childHL (childHL thetaBelowCell1110))) + +/-- Subcell `11102300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102300 : AngleCell := + childLL (childLL (childHH (childHL thetaBelowCell1110))) + +/-- Subcell `11102301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102301 : AngleCell := + childLH (childLL (childHH (childHL thetaBelowCell1110))) + +/-- Subcell `11102302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102302 : AngleCell := + childHL (childLL (childHH (childHL thetaBelowCell1110))) + +/-- Subcell `11102303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102303 : AngleCell := + childHH (childLL (childHH (childHL thetaBelowCell1110))) + +/-- Subcell `11102310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102310 : AngleCell := + childLL (childLH (childHH (childHL thetaBelowCell1110))) + +/-- Subcell `11102311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102311 : AngleCell := + childLH (childLH (childHH (childHL thetaBelowCell1110))) + +/-- Subcell `11102312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102312 : AngleCell := + childHL (childLH (childHH (childHL thetaBelowCell1110))) + +/-- Subcell `11102313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102313 : AngleCell := + childHH (childLH (childHH (childHL thetaBelowCell1110))) + +/-- Subcell `11103000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103000 : AngleCell := + childLL (childLL (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103001 : AngleCell := + childLH (childLL (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103002 : AngleCell := + childHL (childLL (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103003 : AngleCell := + childHH (childLL (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103010 : AngleCell := + childLL (childLH (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103011 : AngleCell := + childLH (childLH (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103012 : AngleCell := + childHL (childLH (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103013 : AngleCell := + childHH (childLH (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103020 : AngleCell := + childLL (childHL (childLL (childHH thetaBelowCell1110))) + +end GerverSofa.PartE.CertificateCellsce54db6860 + +namespace GerverSofa.PartE.CoverCertificate446b5129d2 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childHH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate446b5129d2 + +namespace GerverSofa.PartE.CoverCertificate3d29d6c185 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childHH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate3d29d6c185 + +namespace GerverSofa.PartE.CoverCertificate5443a01fd5 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childHH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate5443a01fd5 + +namespace GerverSofa.PartE.CoverCertificateef75f67166 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childHH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificateef75f67166 + +namespace GerverSofa.PartE.CoverCertificate77769ce963 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childHH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate77769ce963 + +namespace GerverSofa.PartE.CoverCertificateaaf4f15552 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childHH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificateaaf4f15552 + +namespace GerverSofa.PartE.CertificateCells5c0c39e876 + +/-- Subcell `3330` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3330 : AngleCell := + childLL (childHH (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells5c0c39e876 + +namespace GerverSofa.PartE.CertificateCellsa1414ae513 + +/-- Subcell `3330` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3330 : AngleCell := + childLL (childHH (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3331` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3331 : AngleCell := + childLH (childHH (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa1414ae513 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30000`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30001`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30002`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30003`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30010`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30011`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30012`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30013`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30020`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30021`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30022`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30023`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30030`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30031`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30032`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30033`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30100`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30101`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30102`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30103`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30110`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30111`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30112`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30113`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30120`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30121`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30122`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30123`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30130`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30131`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30132`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30133`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30200`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30201`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30202`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30203`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30210`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30211`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30212`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30213`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30220`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30221`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30222`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30223`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30230`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30231`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30232`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30233`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30300`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30301`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30302`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30303`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30310`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30311`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30312`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30313`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30320`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30321`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30322`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30323`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30330`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30331`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30332`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf30333`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31000`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31001`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31002`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31003`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31010`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31011`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31012`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31013`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31020`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31021`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31022`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31023`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31030`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31031`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31032`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31033`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf3110`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf3111`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31120`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31121`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31122`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31123`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf3113`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31200`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31201`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31202`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31203`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31210`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31211`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31212`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31213`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31220`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31221`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31222`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31223`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31230`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31231`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31232`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31233`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31300`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31301`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31302`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31303`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31310`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31311`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31312`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31313`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31320`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31321`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31322`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31323`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31330`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31331`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31332`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf31333`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32000`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32001`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32002`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32003`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32010`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32011`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32012`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32013`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32020`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32021`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32022`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32023`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32030`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32031`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32032`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32033`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32100`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32101`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32102`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32103`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32110`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32111`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32112`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32113`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32120`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32121`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32122`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32123`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32130`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32131`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32132`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32133`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32200`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32201`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32202`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32203`. +* `KernelOnly.PartE.E24KC2PhiBelowLeaf32210`. +* `KernelOnly.PartE.E24KC4BatchPhiAboveF9C1LLL0006`. +* `KernelOnly.PartE.E24KC4BatchPhiAboveF9C1LLRLL0009`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30000 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells68c1109b36 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells68c1109b36 + +open CertificateCells68c1109b36 +theorem e24KC2PhiBelowLeaf30000 : + adaptiveCoverCheck 9 (childLL phiBelowCell3000) = true := by + have h : ((childLL phiBelowCell3000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3000) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30001 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3eb225f04c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3eb225f04c + +open CertificateCells3eb225f04c +theorem e24KC2PhiBelowLeaf30001 : + adaptiveCoverCheck 9 (childLH phiBelowCell3000) = true := by + have h : ((childLH phiBelowCell3000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3000) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30002 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells50ca4e3af4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells50ca4e3af4 + +open CertificateCells50ca4e3af4 +theorem e24KC2PhiBelowLeaf30002 : + adaptiveCoverCheck 9 (childHL phiBelowCell3000) = true := by + have h : ((childHL phiBelowCell3000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3000) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30003 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsfa60677f23 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsfa60677f23 + +open CertificateCellsfa60677f23 +theorem e24KC2PhiBelowLeaf30003 : + adaptiveCoverCheck 9 (childHH phiBelowCell3000) = true := by + have h : ((childHH phiBelowCell3000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3000) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30010 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsadacfb8de1 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsadacfb8de1 + +open CertificateCellsadacfb8de1 +theorem e24KC2PhiBelowLeaf30010 : + adaptiveCoverCheck 9 (childLL phiBelowCell3001) = true := by + have h : ((childLL phiBelowCell3001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3001) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30011 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2e1d52b748 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2e1d52b748 + +open CertificateCells2e1d52b748 +theorem e24KC2PhiBelowLeaf30011 : + adaptiveCoverCheck 9 (childLH phiBelowCell3001) = true := by + have h : ((childLH phiBelowCell3001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3001) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30012 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells7e7c37fb1b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells7e7c37fb1b + +open CertificateCells7e7c37fb1b +theorem e24KC2PhiBelowLeaf30012 : + adaptiveCoverCheck 9 (childHL phiBelowCell3001) = true := by + have h : ((childHL phiBelowCell3001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3001) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30013 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa8cebe99f5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa8cebe99f5 + +open CertificateCellsa8cebe99f5 +theorem e24KC2PhiBelowLeaf30013 : + adaptiveCoverCheck 9 (childHH phiBelowCell3001) = true := by + have h : ((childHH phiBelowCell3001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3001) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30020 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells7730b0e091 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells7730b0e091 + +open CertificateCells7730b0e091 +theorem e24KC2PhiBelowLeaf30020 : + adaptiveCoverCheck 9 (childLL phiBelowCell3002) = true := by + have h : ((childLL phiBelowCell3002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3002) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30021 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse8a24af0c4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse8a24af0c4 + +open CertificateCellse8a24af0c4 +theorem e24KC2PhiBelowLeaf30021 : + adaptiveCoverCheck 9 (childLH phiBelowCell3002) = true := by + have h : ((childLH phiBelowCell3002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3002) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30022 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse2e04a6320 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse2e04a6320 + +open CertificateCellse2e04a6320 +theorem e24KC2PhiBelowLeaf30022 : + adaptiveCoverCheck 9 (childHL phiBelowCell3002) = true := by + have h : ((childHL phiBelowCell3002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3002) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30023 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1fb6bd85e4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1fb6bd85e4 + +open CertificateCells1fb6bd85e4 +theorem e24KC2PhiBelowLeaf30023 : + adaptiveCoverCheck 9 (childHH phiBelowCell3002) = true := by + have h : ((childHH phiBelowCell3002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3002) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30030 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf0432d10ef + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf0432d10ef + +open CertificateCellsf0432d10ef +theorem e24KC2PhiBelowLeaf30030 : + adaptiveCoverCheck 9 (childLL phiBelowCell3003) = true := by + have h : ((childLL phiBelowCell3003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3003) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30031 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells283f971137 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells283f971137 + +open CertificateCells283f971137 +theorem e24KC2PhiBelowLeaf30031 : + adaptiveCoverCheck 9 (childLH phiBelowCell3003) = true := by + have h : ((childLH phiBelowCell3003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3003) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30032 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsad7da039d5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsad7da039d5 + +open CertificateCellsad7da039d5 +theorem e24KC2PhiBelowLeaf30032 : + adaptiveCoverCheck 9 (childHL phiBelowCell3003) = true := by + have h : ((childHL phiBelowCell3003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3003) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30033 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1e800a73bb + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1e800a73bb + +open CertificateCells1e800a73bb +theorem e24KC2PhiBelowLeaf30033 : + adaptiveCoverCheck 9 (childHH phiBelowCell3003) = true := by + have h : ((childHH phiBelowCell3003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3003) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30100 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb9d63d60b8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb9d63d60b8 + +open CertificateCellsb9d63d60b8 +namespace CoverCertificate7eaf46f70e + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate7eaf46f70e + +theorem e24KC2PhiBelowLeaf30100 : + adaptiveCoverCheck 9 (childLL phiBelowCell3010) = true := by + exact CoverCertificate7eaf46f70e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30101 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells73ece5e183 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells73ece5e183 + +open CertificateCells73ece5e183 +namespace CoverCertificate3307b34685 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3307b34685 + +theorem e24KC2PhiBelowLeaf30101 : + adaptiveCoverCheck 9 (childLH phiBelowCell3010) = true := by + exact CoverCertificate3307b34685.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30102 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb58c03cf78 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb58c03cf78 + +open CertificateCellsb58c03cf78 +namespace CoverCertificatea0fa380a93 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea0fa380a93 + +theorem e24KC2PhiBelowLeaf30102 : + adaptiveCoverCheck 9 (childHL phiBelowCell3010) = true := by + exact CoverCertificatea0fa380a93.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30103 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3c73252ed6 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3c73252ed6 + +open CertificateCells3c73252ed6 +namespace CoverCertificate5f1fd442d3 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5f1fd442d3 + +theorem e24KC2PhiBelowLeaf30103 : + adaptiveCoverCheck 9 (childHH phiBelowCell3010) = true := by + exact CoverCertificate5f1fd442d3.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30110 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells75abf59285 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells75abf59285 + +open CertificateCells75abf59285 +theorem e24KC2PhiBelowLeaf30110 : + adaptiveCoverCheck 9 (childLL phiBelowCell3011) = true := by + have h : ((childLL phiBelowCell3011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3011) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30111 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc77278a9b0 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc77278a9b0 + +open CertificateCellsc77278a9b0 +theorem e24KC2PhiBelowLeaf30111 : + adaptiveCoverCheck 9 (childLH phiBelowCell3011) = true := by + have h : ((childLH phiBelowCell3011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3011) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30112 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells80b449154c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells80b449154c + +open CertificateCells80b449154c +namespace CoverCertificated6f9cbc5d6 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated6f9cbc5d6 + +theorem e24KC2PhiBelowLeaf30112 : + adaptiveCoverCheck 9 (childHL phiBelowCell3011) = true := by + exact CoverCertificated6f9cbc5d6.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30113 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells19cd4580af + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells19cd4580af + +open CertificateCells19cd4580af +theorem e24KC2PhiBelowLeaf30113 : + adaptiveCoverCheck 9 (childHH phiBelowCell3011) = true := by + have h : ((childHH phiBelowCell3011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3011) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30120 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsad60f51a47 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsad60f51a47 + +open CertificateCellsad60f51a47 +namespace CoverCertificatecaa270a0ec + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatecaa270a0ec + +theorem e24KC2PhiBelowLeaf30120 : + adaptiveCoverCheck 9 (childLL phiBelowCell3012) = true := by + exact CoverCertificatecaa270a0ec.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30121 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells59722ddf21 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells59722ddf21 + +open CertificateCells59722ddf21 +namespace CoverCertificate0254ae442a + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0254ae442a + +theorem e24KC2PhiBelowLeaf30121 : + adaptiveCoverCheck 9 (childLH phiBelowCell3012) = true := by + exact CoverCertificate0254ae442a.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30122 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells38add90453 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells38add90453 + +open CertificateCells38add90453 +namespace CoverCertificate44197a14bc + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate44197a14bc + +theorem e24KC2PhiBelowLeaf30122 : + adaptiveCoverCheck 9 (childHL phiBelowCell3012) = true := by + exact CoverCertificate44197a14bc.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30123 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa2fd436678 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa2fd436678 + +open CertificateCellsa2fd436678 +namespace CoverCertificateaa4818b079 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateaa4818b079 + +theorem e24KC2PhiBelowLeaf30123 : + adaptiveCoverCheck 9 (childHH phiBelowCell3012) = true := by + exact CoverCertificateaa4818b079.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30130 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4036e8788a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4036e8788a + +open CertificateCells4036e8788a +namespace CoverCertificateade660b261 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateade660b261 + +theorem e24KC2PhiBelowLeaf30130 : + adaptiveCoverCheck 9 (childLL phiBelowCell3013) = true := by + exact CoverCertificateade660b261.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30131 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse8e082f5ed + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse8e082f5ed + +open CertificateCellse8e082f5ed +theorem e24KC2PhiBelowLeaf30131 : + adaptiveCoverCheck 9 (childLH phiBelowCell3013) = true := by + have h : ((childLH phiBelowCell3013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3013) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30132 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells33c2a4ae09 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells33c2a4ae09 + +open CertificateCells33c2a4ae09 +namespace CoverCertificateead4291aaf + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateead4291aaf + +theorem e24KC2PhiBelowLeaf30132 : + adaptiveCoverCheck 9 (childHL phiBelowCell3013) = true := by + exact CoverCertificateead4291aaf.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30133 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8acf2cf43b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8acf2cf43b + +open CertificateCells8acf2cf43b +namespace CoverCertificate76deff8421 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate76deff8421 + +theorem e24KC2PhiBelowLeaf30133 : + adaptiveCoverCheck 9 (childHH phiBelowCell3013) = true := by + exact CoverCertificate76deff8421.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30200 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4c5b439e46 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4c5b439e46 + +open CertificateCells4c5b439e46 +theorem e24KC2PhiBelowLeaf30200 : + adaptiveCoverCheck 9 (childLL phiBelowCell3020) = true := by + have h : ((childLL phiBelowCell3020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3020) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30201 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1d890d537b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1d890d537b + +open CertificateCells1d890d537b +theorem e24KC2PhiBelowLeaf30201 : + adaptiveCoverCheck 9 (childLH phiBelowCell3020) = true := by + have h : ((childLH phiBelowCell3020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3020) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30202 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3dfd612f88 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3dfd612f88 + +open CertificateCells3dfd612f88 +theorem e24KC2PhiBelowLeaf30202 : + adaptiveCoverCheck 9 (childHL phiBelowCell3020) = true := by + have h : ((childHL phiBelowCell3020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3020) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30203 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb73c54b84b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb73c54b84b + +open CertificateCellsb73c54b84b +theorem e24KC2PhiBelowLeaf30203 : + adaptiveCoverCheck 9 (childHH phiBelowCell3020) = true := by + have h : ((childHH phiBelowCell3020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3020) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30210 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa2d944a3cb + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa2d944a3cb + +open CertificateCellsa2d944a3cb +theorem e24KC2PhiBelowLeaf30210 : + adaptiveCoverCheck 9 (childLL phiBelowCell3021) = true := by + have h : ((childLL phiBelowCell3021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3021) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30211 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa175b3d804 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa175b3d804 + +open CertificateCellsa175b3d804 +namespace CoverCertificatef9c3dd592d + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef9c3dd592d + +theorem e24KC2PhiBelowLeaf30211 : + adaptiveCoverCheck 9 (childLH phiBelowCell3021) = true := by + exact CoverCertificatef9c3dd592d.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30212 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2377a41132 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2377a41132 + +open CertificateCells2377a41132 +theorem e24KC2PhiBelowLeaf30212 : + adaptiveCoverCheck 9 (childHL phiBelowCell3021) = true := by + have h : ((childHL phiBelowCell3021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3021) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30213 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells141b81b7b9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells141b81b7b9 + +open CertificateCells141b81b7b9 +namespace CoverCertificate55e26a37bf + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate55e26a37bf + +theorem e24KC2PhiBelowLeaf30213 : + adaptiveCoverCheck 9 (childHH phiBelowCell3021) = true := by + exact CoverCertificate55e26a37bf.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30220 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells53ed2717a4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells53ed2717a4 + +open CertificateCells53ed2717a4 +theorem e24KC2PhiBelowLeaf30220 : + adaptiveCoverCheck 9 (childLL phiBelowCell3022) = true := by + have h : ((childLL phiBelowCell3022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3022) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30221 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6cc17280cd + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6cc17280cd + +open CertificateCells6cc17280cd +theorem e24KC2PhiBelowLeaf30221 : + adaptiveCoverCheck 9 (childLH phiBelowCell3022) = true := by + have h : ((childLH phiBelowCell3022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3022) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30222 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellscd48c30df5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellscd48c30df5 + +open CertificateCellscd48c30df5 +theorem e24KC2PhiBelowLeaf30222 : + adaptiveCoverCheck 9 (childHL phiBelowCell3022) = true := by + have h : ((childHL phiBelowCell3022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3022) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30223 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6a90ac3f5f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6a90ac3f5f + +open CertificateCells6a90ac3f5f +theorem e24KC2PhiBelowLeaf30223 : + adaptiveCoverCheck 9 (childHH phiBelowCell3022) = true := by + have h : ((childHH phiBelowCell3022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3022) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30230 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellscb8a79a1e7 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellscb8a79a1e7 + +open CertificateCellscb8a79a1e7 +theorem e24KC2PhiBelowLeaf30230 : + adaptiveCoverCheck 9 (childLL phiBelowCell3023) = true := by + have h : ((childLL phiBelowCell3023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3023) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30231 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa17655a9cd + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa17655a9cd + +open CertificateCellsa17655a9cd +namespace CoverCertificated546542719 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated546542719 + +theorem e24KC2PhiBelowLeaf30231 : + adaptiveCoverCheck 9 (childLH phiBelowCell3023) = true := by + exact CoverCertificated546542719.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30232 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsea417091fc + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsea417091fc + +open CertificateCellsea417091fc +theorem e24KC2PhiBelowLeaf30232 : + adaptiveCoverCheck 9 (childHL phiBelowCell3023) = true := by + have h : ((childHL phiBelowCell3023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3023) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30233 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells58f12e8647 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells58f12e8647 + +open CertificateCells58f12e8647 +namespace CoverCertificate09704881ea + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate09704881ea + +theorem e24KC2PhiBelowLeaf30233 : + adaptiveCoverCheck 9 (childHH phiBelowCell3023) = true := by + exact CoverCertificate09704881ea.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30300 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5256e12156 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5256e12156 + +open CertificateCells5256e12156 +namespace CoverCertificate89f8bf996f + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate89f8bf996f + +theorem e24KC2PhiBelowLeaf30300 : + adaptiveCoverCheck 9 (childLL phiBelowCell3030) = true := by + exact CoverCertificate89f8bf996f.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30301 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa7b064ca3f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa7b064ca3f + +open CertificateCellsa7b064ca3f +namespace CoverCertificate072d32638e + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate072d32638e + +theorem e24KC2PhiBelowLeaf30301 : + adaptiveCoverCheck 9 (childLH phiBelowCell3030) = true := by + exact CoverCertificate072d32638e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30302 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa6d5038417 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa6d5038417 + +open CertificateCellsa6d5038417 +namespace CoverCertificate5c3ff9507c + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5c3ff9507c + +theorem e24KC2PhiBelowLeaf30302 : + adaptiveCoverCheck 9 (childHL phiBelowCell3030) = true := by + exact CoverCertificate5c3ff9507c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30303 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa40437554b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa40437554b + +open CertificateCellsa40437554b +namespace CoverCertificate0e6fd3d794 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0e6fd3d794 + +theorem e24KC2PhiBelowLeaf30303 : + adaptiveCoverCheck 9 (childHH phiBelowCell3030) = true := by + exact CoverCertificate0e6fd3d794.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30310 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells99d0a4be54 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells99d0a4be54 + +open CertificateCells99d0a4be54 +namespace CoverCertificate1d8d5ed6e8 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1d8d5ed6e8 + +theorem e24KC2PhiBelowLeaf30310 : + adaptiveCoverCheck 9 (childLL phiBelowCell3031) = true := by + exact CoverCertificate1d8d5ed6e8.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30311 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells473a273fc9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells473a273fc9 + +open CertificateCells473a273fc9 +namespace CoverCertificatead0c92c0d4 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatead0c92c0d4 + +theorem e24KC2PhiBelowLeaf30311 : + adaptiveCoverCheck 9 (childLH phiBelowCell3031) = true := by + exact CoverCertificatead0c92c0d4.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30312 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3c757ee420 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3c757ee420 + +open CertificateCells3c757ee420 +namespace CoverCertificate4e6964ff18 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4e6964ff18 + +theorem e24KC2PhiBelowLeaf30312 : + adaptiveCoverCheck 9 (childHL phiBelowCell3031) = true := by + exact CoverCertificate4e6964ff18.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30313 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd8b0ff734e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd8b0ff734e + +open CertificateCellsd8b0ff734e +namespace CoverCertificate14906b8c69 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate14906b8c69 + +theorem e24KC2PhiBelowLeaf30313 : + adaptiveCoverCheck 9 (childHH phiBelowCell3031) = true := by + exact CoverCertificate14906b8c69.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30320 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells03aa6fa886 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells03aa6fa886 + +open CertificateCells03aa6fa886 +namespace CoverCertificate4614f242b3 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4614f242b3 + +theorem e24KC2PhiBelowLeaf30320 : + adaptiveCoverCheck 9 (childLL phiBelowCell3032) = true := by + exact CoverCertificate4614f242b3.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30321 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf82ea84544 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf82ea84544 + +open CertificateCellsf82ea84544 +namespace CoverCertificatef3c458cae3 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef3c458cae3 + +theorem e24KC2PhiBelowLeaf30321 : + adaptiveCoverCheck 9 (childLH phiBelowCell3032) = true := by + exact CoverCertificatef3c458cae3.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30322 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa1f10633df + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa1f10633df + +open CertificateCellsa1f10633df +namespace CoverCertificateeb6553a302 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateeb6553a302 + +theorem e24KC2PhiBelowLeaf30322 : + adaptiveCoverCheck 9 (childHL phiBelowCell3032) = true := by + exact CoverCertificateeb6553a302.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30323 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells92aeaddf18 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells92aeaddf18 + +open CertificateCells92aeaddf18 +namespace CoverCertificatefa7152b230 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatefa7152b230 + +theorem e24KC2PhiBelowLeaf30323 : + adaptiveCoverCheck 9 (childHH phiBelowCell3032) = true := by + exact CoverCertificatefa7152b230.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30330 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4d2736f1ee + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4d2736f1ee + +open CertificateCells4d2736f1ee +namespace CoverCertificate8afa5ed490 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate8afa5ed490 + +theorem e24KC2PhiBelowLeaf30330 : + adaptiveCoverCheck 9 (childLL phiBelowCell3033) = true := by + exact CoverCertificate8afa5ed490.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30331 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf1c569afeb + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf1c569afeb + +open CertificateCellsf1c569afeb +namespace CoverCertificated9debec79d + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated9debec79d + +theorem e24KC2PhiBelowLeaf30331 : + adaptiveCoverCheck 9 (childLH phiBelowCell3033) = true := by + exact CoverCertificated9debec79d.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30332 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells899e3e87cc + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells899e3e87cc + +open CertificateCells899e3e87cc +namespace CoverCertificate67d4072331 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate67d4072331 + +theorem e24KC2PhiBelowLeaf30332 : + adaptiveCoverCheck 9 (childHL phiBelowCell3033) = true := by + exact CoverCertificate67d4072331.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=30333 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8cea727797 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8cea727797 + +open CertificateCells8cea727797 +namespace CoverCertificatebed93df298 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatebed93df298 + +theorem e24KC2PhiBelowLeaf30333 : + adaptiveCoverCheck 9 (childHH phiBelowCell3033) = true := by + exact CoverCertificatebed93df298.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31000 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsdf788d056e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsdf788d056e + +open CertificateCellsdf788d056e +theorem e24KC2PhiBelowLeaf31000 : + adaptiveCoverCheck 9 (childLL phiBelowCell3100) = true := by + have h : ((childLL phiBelowCell3100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3100) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31001 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells83252066d4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells83252066d4 + +open CertificateCells83252066d4 +theorem e24KC2PhiBelowLeaf31001 : + adaptiveCoverCheck 9 (childLH phiBelowCell3100) = true := by + have h : ((childLH phiBelowCell3100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3100) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31002 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd15521ecc4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd15521ecc4 + +open CertificateCellsd15521ecc4 +theorem e24KC2PhiBelowLeaf31002 : + adaptiveCoverCheck 9 (childHL phiBelowCell3100) = true := by + have h : ((childHL phiBelowCell3100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3100) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31003 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9ebe05244a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9ebe05244a + +open CertificateCells9ebe05244a +theorem e24KC2PhiBelowLeaf31003 : + adaptiveCoverCheck 9 (childHH phiBelowCell3100) = true := by + have h : ((childHH phiBelowCell3100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3100) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31010 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells21fc209558 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells21fc209558 + +open CertificateCells21fc209558 +theorem e24KC2PhiBelowLeaf31010 : + adaptiveCoverCheck 9 (childLL phiBelowCell3101) = true := by + have h : ((childLL phiBelowCell3101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3101) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31011 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc545b9b00b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc545b9b00b + +open CertificateCellsc545b9b00b +theorem e24KC2PhiBelowLeaf31011 : + adaptiveCoverCheck 9 (childLH phiBelowCell3101) = true := by + have h : ((childLH phiBelowCell3101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3101) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31012 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa64e976caf + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa64e976caf + +open CertificateCellsa64e976caf +theorem e24KC2PhiBelowLeaf31012 : + adaptiveCoverCheck 9 (childHL phiBelowCell3101) = true := by + have h : ((childHL phiBelowCell3101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3101) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31013 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf9eb6beb81 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf9eb6beb81 + +open CertificateCellsf9eb6beb81 +theorem e24KC2PhiBelowLeaf31013 : + adaptiveCoverCheck 9 (childHH phiBelowCell3101) = true := by + have h : ((childHH phiBelowCell3101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3101) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31020 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1d67e12ba0 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1d67e12ba0 + +open CertificateCells1d67e12ba0 +theorem e24KC2PhiBelowLeaf31020 : + adaptiveCoverCheck 9 (childLL phiBelowCell3102) = true := by + have h : ((childLL phiBelowCell3102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3102) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31021 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa2d5114e5e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa2d5114e5e + +open CertificateCellsa2d5114e5e +theorem e24KC2PhiBelowLeaf31021 : + adaptiveCoverCheck 9 (childLH phiBelowCell3102) = true := by + have h : ((childLH phiBelowCell3102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3102) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31022 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells414314cff6 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells414314cff6 + +open CertificateCells414314cff6 +theorem e24KC2PhiBelowLeaf31022 : + adaptiveCoverCheck 9 (childHL phiBelowCell3102) = true := by + have h : ((childHL phiBelowCell3102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3102) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31023 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf9010539ff + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf9010539ff + +open CertificateCellsf9010539ff +theorem e24KC2PhiBelowLeaf31023 : + adaptiveCoverCheck 9 (childHH phiBelowCell3102) = true := by + have h : ((childHH phiBelowCell3102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3102) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31030 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse34346aa4a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse34346aa4a + +open CertificateCellse34346aa4a +theorem e24KC2PhiBelowLeaf31030 : + adaptiveCoverCheck 9 (childLL phiBelowCell3103) = true := by + have h : ((childLL phiBelowCell3103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3103) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31031 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse191f15fec + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse191f15fec + +open CertificateCellse191f15fec +theorem e24KC2PhiBelowLeaf31031 : + adaptiveCoverCheck 9 (childLH phiBelowCell3103) = true := by + have h : ((childLH phiBelowCell3103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3103) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31032 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf92808a3cc + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf92808a3cc + +open CertificateCellsf92808a3cc +theorem e24KC2PhiBelowLeaf31032 : + adaptiveCoverCheck 9 (childHL phiBelowCell3103) = true := by + have h : ((childHL phiBelowCell3103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3103) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31033 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells897e4339a9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells897e4339a9 + +open CertificateCells897e4339a9 +theorem e24KC2PhiBelowLeaf31033 : + adaptiveCoverCheck 9 (childHH phiBelowCell3103) = true := by + have h : ((childHH phiBelowCell3103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3103) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=3110 remaining=10 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf4227a46c1 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf4227a46c1 + +open CertificateCellsf4227a46c1 +theorem e24KC2PhiBelowLeaf3110 : + adaptiveCoverCheck 10 phiBelowCell3110 = true := by + have h : (phiBelowCell3110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 phiBelowCell3110 h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=3111 remaining=10 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa2ba14667f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa2ba14667f + +open CertificateCellsa2ba14667f +theorem e24KC2PhiBelowLeaf3111 : + adaptiveCoverCheck 10 phiBelowCell3111 = true := by + have h : (phiBelowCell3111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 phiBelowCell3111 h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31120 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells172a47199c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells172a47199c + +open CertificateCells172a47199c +theorem e24KC2PhiBelowLeaf31120 : + adaptiveCoverCheck 9 (childLL phiBelowCell3112) = true := by + have h : ((childLL phiBelowCell3112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3112) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31121 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells503a496e12 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells503a496e12 + +open CertificateCells503a496e12 +theorem e24KC2PhiBelowLeaf31121 : + adaptiveCoverCheck 9 (childLH phiBelowCell3112) = true := by + have h : ((childLH phiBelowCell3112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3112) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31122 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4f35c82776 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4f35c82776 + +open CertificateCells4f35c82776 +theorem e24KC2PhiBelowLeaf31122 : + adaptiveCoverCheck 9 (childHL phiBelowCell3112) = true := by + have h : ((childHL phiBelowCell3112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3112) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31123 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsddf26a1af9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsddf26a1af9 + +open CertificateCellsddf26a1af9 +theorem e24KC2PhiBelowLeaf31123 : + adaptiveCoverCheck 9 (childHH phiBelowCell3112) = true := by + have h : ((childHH phiBelowCell3112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3112) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=3113 remaining=10 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells725d74e81a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells725d74e81a + +open CertificateCells725d74e81a +theorem e24KC2PhiBelowLeaf3113 : + adaptiveCoverCheck 10 phiBelowCell3113 = true := by + have h : (phiBelowCell3113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 phiBelowCell3113 h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31200 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3b33327e8a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3b33327e8a + +open CertificateCells3b33327e8a +namespace CoverCertificatefd2c3f3274 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatefd2c3f3274 + +theorem e24KC2PhiBelowLeaf31200 : + adaptiveCoverCheck 9 (childLL phiBelowCell3120) = true := by + exact CoverCertificatefd2c3f3274.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31201 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells7bfd1f464a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells7bfd1f464a + +open CertificateCells7bfd1f464a +theorem e24KC2PhiBelowLeaf31201 : + adaptiveCoverCheck 9 (childLH phiBelowCell3120) = true := by + have h : ((childLH phiBelowCell3120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3120) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31202 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsdd644ededa + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsdd644ededa + +open CertificateCellsdd644ededa +namespace CoverCertificate1ffa851843 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1ffa851843 + +theorem e24KC2PhiBelowLeaf31202 : + adaptiveCoverCheck 9 (childHL phiBelowCell3120) = true := by + exact CoverCertificate1ffa851843.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31203 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsdd54c72360 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsdd54c72360 + +open CertificateCellsdd54c72360 +namespace CoverCertificated8ac44ac8f + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated8ac44ac8f + +theorem e24KC2PhiBelowLeaf31203 : + adaptiveCoverCheck 9 (childHH phiBelowCell3120) = true := by + exact CoverCertificated8ac44ac8f.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31210 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf0f5b1fc54 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf0f5b1fc54 + +open CertificateCellsf0f5b1fc54 +theorem e24KC2PhiBelowLeaf31210 : + adaptiveCoverCheck 9 (childLL phiBelowCell3121) = true := by + have h : ((childLL phiBelowCell3121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3121) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31211 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2b0822f9b0 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2b0822f9b0 + +open CertificateCells2b0822f9b0 +theorem e24KC2PhiBelowLeaf31211 : + adaptiveCoverCheck 9 (childLH phiBelowCell3121) = true := by + have h : ((childLH phiBelowCell3121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3121) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31212 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells05e3ee5af2 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells05e3ee5af2 + +open CertificateCells05e3ee5af2 +theorem e24KC2PhiBelowLeaf31212 : + adaptiveCoverCheck 9 (childHL phiBelowCell3121) = true := by + have h : ((childHL phiBelowCell3121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3121) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31213 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8f81fc559c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8f81fc559c + +open CertificateCells8f81fc559c +theorem e24KC2PhiBelowLeaf31213 : + adaptiveCoverCheck 9 (childHH phiBelowCell3121) = true := by + have h : ((childHH phiBelowCell3121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3121) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31220 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells509a6074b0 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells509a6074b0 + +open CertificateCells509a6074b0 +namespace CoverCertificate3caeb3dd1d + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3caeb3dd1d + +theorem e24KC2PhiBelowLeaf31220 : + adaptiveCoverCheck 9 (childLL phiBelowCell3122) = true := by + exact CoverCertificate3caeb3dd1d.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31221 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6ac6e4ee1a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6ac6e4ee1a + +open CertificateCells6ac6e4ee1a +namespace CoverCertificate3195681328 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3195681328 + +theorem e24KC2PhiBelowLeaf31221 : + adaptiveCoverCheck 9 (childLH phiBelowCell3122) = true := by + exact CoverCertificate3195681328.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31222 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2e92118453 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2e92118453 + +open CertificateCells2e92118453 +namespace CoverCertificate24d91bb18c + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate24d91bb18c + +theorem e24KC2PhiBelowLeaf31222 : + adaptiveCoverCheck 9 (childHL phiBelowCell3122) = true := by + exact CoverCertificate24d91bb18c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31223 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5761c4811e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5761c4811e + +open CertificateCells5761c4811e +namespace CoverCertificatea5eff6d169 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea5eff6d169 + +theorem e24KC2PhiBelowLeaf31223 : + adaptiveCoverCheck 9 (childHH phiBelowCell3122) = true := by + exact CoverCertificatea5eff6d169.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31230 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf228466209 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf228466209 + +open CertificateCellsf228466209 +theorem e24KC2PhiBelowLeaf31230 : + adaptiveCoverCheck 9 (childLL phiBelowCell3123) = true := by + have h : ((childLL phiBelowCell3123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3123) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31231 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4924d89385 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4924d89385 + +open CertificateCells4924d89385 +theorem e24KC2PhiBelowLeaf31231 : + adaptiveCoverCheck 9 (childLH phiBelowCell3123) = true := by + have h : ((childLH phiBelowCell3123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3123) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31232 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells75bbd1e667 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells75bbd1e667 + +open CertificateCells75bbd1e667 +namespace CoverCertificateabfc719760 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateabfc719760 + +theorem e24KC2PhiBelowLeaf31232 : + adaptiveCoverCheck 9 (childHL phiBelowCell3123) = true := by + exact CoverCertificateabfc719760.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31233 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells131513700f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells131513700f + +open CertificateCells131513700f +theorem e24KC2PhiBelowLeaf31233 : + adaptiveCoverCheck 9 (childHH phiBelowCell3123) = true := by + have h : ((childHH phiBelowCell3123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3123) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31300 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0436aa31cb + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0436aa31cb + +open CertificateCells0436aa31cb +theorem e24KC2PhiBelowLeaf31300 : + adaptiveCoverCheck 9 (childLL phiBelowCell3130) = true := by + have h : ((childLL phiBelowCell3130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3130) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31301 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4cca5ef5ea + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4cca5ef5ea + +open CertificateCells4cca5ef5ea +theorem e24KC2PhiBelowLeaf31301 : + adaptiveCoverCheck 9 (childLH phiBelowCell3130) = true := by + have h : ((childLH phiBelowCell3130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3130) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31302 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2133748f57 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2133748f57 + +open CertificateCells2133748f57 +theorem e24KC2PhiBelowLeaf31302 : + adaptiveCoverCheck 9 (childHL phiBelowCell3130) = true := by + have h : ((childHL phiBelowCell3130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3130) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31303 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2d9432dbe0 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2d9432dbe0 + +open CertificateCells2d9432dbe0 +theorem e24KC2PhiBelowLeaf31303 : + adaptiveCoverCheck 9 (childHH phiBelowCell3130) = true := by + have h : ((childHH phiBelowCell3130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3130) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31310 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells28839ca767 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells28839ca767 + +open CertificateCells28839ca767 +theorem e24KC2PhiBelowLeaf31310 : + adaptiveCoverCheck 9 (childLL phiBelowCell3131) = true := by + have h : ((childLL phiBelowCell3131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3131) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31311 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1b0bf20c51 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1b0bf20c51 + +open CertificateCells1b0bf20c51 +theorem e24KC2PhiBelowLeaf31311 : + adaptiveCoverCheck 9 (childLH phiBelowCell3131) = true := by + have h : ((childLH phiBelowCell3131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3131) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31312 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9fb8ae7256 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9fb8ae7256 + +open CertificateCells9fb8ae7256 +theorem e24KC2PhiBelowLeaf31312 : + adaptiveCoverCheck 9 (childHL phiBelowCell3131) = true := by + have h : ((childHL phiBelowCell3131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3131) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31313 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells10b8b658d1 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells10b8b658d1 + +open CertificateCells10b8b658d1 +theorem e24KC2PhiBelowLeaf31313 : + adaptiveCoverCheck 9 (childHH phiBelowCell3131) = true := by + have h : ((childHH phiBelowCell3131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3131) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31320 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells372671dc1b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells372671dc1b + +open CertificateCells372671dc1b +theorem e24KC2PhiBelowLeaf31320 : + adaptiveCoverCheck 9 (childLL phiBelowCell3132) = true := by + have h : ((childLL phiBelowCell3132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3132) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31321 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells91a123c697 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells91a123c697 + +open CertificateCells91a123c697 +theorem e24KC2PhiBelowLeaf31321 : + adaptiveCoverCheck 9 (childLH phiBelowCell3132) = true := by + have h : ((childLH phiBelowCell3132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3132) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31322 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsce14c27bce + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsce14c27bce + +open CertificateCellsce14c27bce +theorem e24KC2PhiBelowLeaf31322 : + adaptiveCoverCheck 9 (childHL phiBelowCell3132) = true := by + have h : ((childHL phiBelowCell3132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3132) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31323 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsabc89a203a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsabc89a203a + +open CertificateCellsabc89a203a +theorem e24KC2PhiBelowLeaf31323 : + adaptiveCoverCheck 9 (childHH phiBelowCell3132) = true := by + have h : ((childHH phiBelowCell3132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3132) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31330 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6f99a95071 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6f99a95071 + +open CertificateCells6f99a95071 +theorem e24KC2PhiBelowLeaf31330 : + adaptiveCoverCheck 9 (childLL phiBelowCell3133) = true := by + have h : ((childLL phiBelowCell3133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3133) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31331 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4acdbba755 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4acdbba755 + +open CertificateCells4acdbba755 +theorem e24KC2PhiBelowLeaf31331 : + adaptiveCoverCheck 9 (childLH phiBelowCell3133) = true := by + have h : ((childLH phiBelowCell3133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3133) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31332 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells45607104df + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells45607104df + +open CertificateCells45607104df +theorem e24KC2PhiBelowLeaf31332 : + adaptiveCoverCheck 9 (childHL phiBelowCell3133) = true := by + have h : ((childHL phiBelowCell3133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3133) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=31333 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf2e66397f6 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf2e66397f6 + +open CertificateCellsf2e66397f6 +theorem e24KC2PhiBelowLeaf31333 : + adaptiveCoverCheck 9 (childHH phiBelowCell3133) = true := by + have h : ((childHH phiBelowCell3133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3133) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32000 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf60a68912f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf60a68912f + +open CertificateCellsf60a68912f +theorem e24KC2PhiBelowLeaf32000 : + adaptiveCoverCheck 9 (childLL phiBelowCell3200) = true := by + have h : ((childLL phiBelowCell3200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3200) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32001 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsdb667fab49 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsdb667fab49 + +open CertificateCellsdb667fab49 +theorem e24KC2PhiBelowLeaf32001 : + adaptiveCoverCheck 9 (childLH phiBelowCell3200) = true := by + have h : ((childLH phiBelowCell3200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3200) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32002 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells378433963d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells378433963d + +open CertificateCells378433963d +theorem e24KC2PhiBelowLeaf32002 : + adaptiveCoverCheck 9 (childHL phiBelowCell3200) = true := by + have h : ((childHL phiBelowCell3200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3200) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32003 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3c30c58615 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3c30c58615 + +open CertificateCells3c30c58615 +theorem e24KC2PhiBelowLeaf32003 : + adaptiveCoverCheck 9 (childHH phiBelowCell3200) = true := by + have h : ((childHH phiBelowCell3200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3200) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32010 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellscbc2cb8c4d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellscbc2cb8c4d + +open CertificateCellscbc2cb8c4d +theorem e24KC2PhiBelowLeaf32010 : + adaptiveCoverCheck 9 (childLL phiBelowCell3201) = true := by + have h : ((childLL phiBelowCell3201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3201) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32011 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0ae5e3afe8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0ae5e3afe8 + +open CertificateCells0ae5e3afe8 +namespace CoverCertificate0a514de912 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0a514de912 + +theorem e24KC2PhiBelowLeaf32011 : + adaptiveCoverCheck 9 (childLH phiBelowCell3201) = true := by + exact CoverCertificate0a514de912.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32012 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells72905f39fb + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells72905f39fb + +open CertificateCells72905f39fb +theorem e24KC2PhiBelowLeaf32012 : + adaptiveCoverCheck 9 (childHL phiBelowCell3201) = true := by + have h : ((childHL phiBelowCell3201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3201) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32013 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells36ded03275 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells36ded03275 + +open CertificateCells36ded03275 +namespace CoverCertificate7ed638f543 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate7ed638f543 + +theorem e24KC2PhiBelowLeaf32013 : + adaptiveCoverCheck 9 (childHH phiBelowCell3201) = true := by + exact CoverCertificate7ed638f543.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32020 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells055eee17e7 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells055eee17e7 + +open CertificateCells055eee17e7 +theorem e24KC2PhiBelowLeaf32020 : + adaptiveCoverCheck 9 (childLL phiBelowCell3202) = true := by + have h : ((childLL phiBelowCell3202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3202) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32021 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells86a7b10d51 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells86a7b10d51 + +open CertificateCells86a7b10d51 +theorem e24KC2PhiBelowLeaf32021 : + adaptiveCoverCheck 9 (childLH phiBelowCell3202) = true := by + have h : ((childLH phiBelowCell3202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3202) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32022 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells62973479ba + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells62973479ba + +open CertificateCells62973479ba +theorem e24KC2PhiBelowLeaf32022 : + adaptiveCoverCheck 9 (childHL phiBelowCell3202) = true := by + have h : ((childHL phiBelowCell3202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3202) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32023 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse26adcc478 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse26adcc478 + +open CertificateCellse26adcc478 +theorem e24KC2PhiBelowLeaf32023 : + adaptiveCoverCheck 9 (childHH phiBelowCell3202) = true := by + have h : ((childHH phiBelowCell3202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3202) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32030 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd471241912 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd471241912 + +open CertificateCellsd471241912 +theorem e24KC2PhiBelowLeaf32030 : + adaptiveCoverCheck 9 (childLL phiBelowCell3203) = true := by + have h : ((childLL phiBelowCell3203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3203) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32031 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells89c6c55f33 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells89c6c55f33 + +open CertificateCells89c6c55f33 +namespace CoverCertificatebdb1950cb6 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatebdb1950cb6 + +theorem e24KC2PhiBelowLeaf32031 : + adaptiveCoverCheck 9 (childLH phiBelowCell3203) = true := by + exact CoverCertificatebdb1950cb6.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32032 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells371a4c38c5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells371a4c38c5 + +open CertificateCells371a4c38c5 +theorem e24KC2PhiBelowLeaf32032 : + adaptiveCoverCheck 9 (childHL phiBelowCell3203) = true := by + have h : ((childHL phiBelowCell3203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3203) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32033 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells96fe0c4e84 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells96fe0c4e84 + +open CertificateCells96fe0c4e84 +namespace CoverCertificate5fb7a54ee1 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5fb7a54ee1 + +theorem e24KC2PhiBelowLeaf32033 : + adaptiveCoverCheck 9 (childHH phiBelowCell3203) = true := by + exact CoverCertificate5fb7a54ee1.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32100 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9ae3b0f784 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9ae3b0f784 + +open CertificateCells9ae3b0f784 +namespace CoverCertificated58a87e9b8 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated58a87e9b8 + +theorem e24KC2PhiBelowLeaf32100 : + adaptiveCoverCheck 9 (childLL phiBelowCell3210) = true := by + exact CoverCertificated58a87e9b8.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32101 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9614d1d005 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9614d1d005 + +open CertificateCells9614d1d005 +namespace CoverCertificate3ddf17b582 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3ddf17b582 + +theorem e24KC2PhiBelowLeaf32101 : + adaptiveCoverCheck 9 (childLH phiBelowCell3210) = true := by + exact CoverCertificate3ddf17b582.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32102 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells27f26686ef + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells27f26686ef + +open CertificateCells27f26686ef +namespace CoverCertificated26b7e0a55 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated26b7e0a55 + +theorem e24KC2PhiBelowLeaf32102 : + adaptiveCoverCheck 9 (childHL phiBelowCell3210) = true := by + exact CoverCertificated26b7e0a55.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32103 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9dc2121909 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9dc2121909 + +open CertificateCells9dc2121909 +namespace CoverCertificatea04fbf8169 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea04fbf8169 + +theorem e24KC2PhiBelowLeaf32103 : + adaptiveCoverCheck 9 (childHH phiBelowCell3210) = true := by + exact CoverCertificatea04fbf8169.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32110 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc35310d566 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc35310d566 + +open CertificateCellsc35310d566 +namespace CoverCertificate3ba43c403b + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3ba43c403b + +theorem e24KC2PhiBelowLeaf32110 : + adaptiveCoverCheck 9 (childLL phiBelowCell3211) = true := by + exact CoverCertificate3ba43c403b.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32111 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa20e4da390 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa20e4da390 + +open CertificateCellsa20e4da390 +namespace CoverCertificate1430173dea + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1430173dea + +theorem e24KC2PhiBelowLeaf32111 : + adaptiveCoverCheck 9 (childLH phiBelowCell3211) = true := by + exact CoverCertificate1430173dea.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32112 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3a90cbf635 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3a90cbf635 + +open CertificateCells3a90cbf635 +namespace CoverCertificate2756e7c1ab + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate2756e7c1ab + +theorem e24KC2PhiBelowLeaf32112 : + adaptiveCoverCheck 9 (childHL phiBelowCell3211) = true := by + exact CoverCertificate2756e7c1ab.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32113 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells214a11de68 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells214a11de68 + +open CertificateCells214a11de68 +namespace CoverCertificate8e43edbf8f + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate8e43edbf8f + +theorem e24KC2PhiBelowLeaf32113 : + adaptiveCoverCheck 9 (childHH phiBelowCell3211) = true := by + exact CoverCertificate8e43edbf8f.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32120 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells032b91f5bc + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells032b91f5bc + +open CertificateCells032b91f5bc +namespace CoverCertificated1acdb7cc1 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated1acdb7cc1 + +theorem e24KC2PhiBelowLeaf32120 : + adaptiveCoverCheck 9 (childLL phiBelowCell3212) = true := by + exact CoverCertificated1acdb7cc1.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32121 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsaa8e493e23 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsaa8e493e23 + +open CertificateCellsaa8e493e23 +namespace CoverCertificated9d4fcb914 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated9d4fcb914 + +theorem e24KC2PhiBelowLeaf32121 : + adaptiveCoverCheck 9 (childLH phiBelowCell3212) = true := by + exact CoverCertificated9d4fcb914.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32122 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6bd715f340 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6bd715f340 + +open CertificateCells6bd715f340 +namespace CoverCertificate18d654774a + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate18d654774a + +theorem e24KC2PhiBelowLeaf32122 : + adaptiveCoverCheck 9 (childHL phiBelowCell3212) = true := by + exact CoverCertificate18d654774a.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32123 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa228f232aa + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa228f232aa + +open CertificateCellsa228f232aa +namespace CoverCertificate3c1ddcbe4a + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3c1ddcbe4a + +theorem e24KC2PhiBelowLeaf32123 : + adaptiveCoverCheck 9 (childHH phiBelowCell3212) = true := by + exact CoverCertificate3c1ddcbe4a.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32130 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4dea68b576 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4dea68b576 + +open CertificateCells4dea68b576 +namespace CoverCertificatecaa9842c01 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatecaa9842c01 + +theorem e24KC2PhiBelowLeaf32130 : + adaptiveCoverCheck 9 (childLL phiBelowCell3213) = true := by + exact CoverCertificatecaa9842c01.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32131 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3e707fd6af + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3e707fd6af + +open CertificateCells3e707fd6af +namespace CoverCertificate8a64f55483 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate8a64f55483 + +theorem e24KC2PhiBelowLeaf32131 : + adaptiveCoverCheck 9 (childLH phiBelowCell3213) = true := by + exact CoverCertificate8a64f55483.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32132 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells46e40ef0a9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells46e40ef0a9 + +open CertificateCells46e40ef0a9 +namespace CoverCertificatea45749320c + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea45749320c + +theorem e24KC2PhiBelowLeaf32132 : + adaptiveCoverCheck 9 (childHL phiBelowCell3213) = true := by + exact CoverCertificatea45749320c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32133 remaining=9 kind=F reason=ADAPTIVE. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9651c4a476 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9651c4a476 + +open CertificateCells9651c4a476 +namespace CoverCertificate96200cdbc3 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate96200cdbc3 + +theorem e24KC2PhiBelowLeaf32133 : + adaptiveCoverCheck 9 (childHH phiBelowCell3213) = true := by + exact CoverCertificate96200cdbc3.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32200 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2fa7cd8552 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2fa7cd8552 + +open CertificateCells2fa7cd8552 +theorem e24KC2PhiBelowLeaf32200 : + adaptiveCoverCheck 9 (childLL phiBelowCell3220) = true := by + have h : ((childLL phiBelowCell3220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3220) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32201 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsec4b7eff4d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsec4b7eff4d + +open CertificateCellsec4b7eff4d +theorem e24KC2PhiBelowLeaf32201 : + adaptiveCoverCheck 9 (childLH phiBelowCell3220) = true := by + have h : ((childLH phiBelowCell3220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3220) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32202 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells434ca1e74d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells434ca1e74d + +open CertificateCells434ca1e74d +theorem e24KC2PhiBelowLeaf32202 : + adaptiveCoverCheck 9 (childHL phiBelowCell3220) = true := by + have h : ((childHL phiBelowCell3220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3220) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32203 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells886952c236 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells886952c236 + +open CertificateCells886952c236 +theorem e24KC2PhiBelowLeaf32203 : + adaptiveCoverCheck 9 (childHH phiBelowCell3220) = true := by + have h : ((childHH phiBelowCell3220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3220) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! Generated E24KC2 kernel leaf. Discovery claim: PB path=32210 remaining=9 kind=T reason=R. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells969a7c12d6 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells969a7c12d6 + +open CertificateCells969a7c12d6 +theorem e24KC2PhiBelowLeaf32210 : + adaptiveCoverCheck 9 (childLL phiBelowCell3221) = true := by + have h : ((childLL phiBelowCell3221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3221) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC4 auto-tuned batched kernel certificates. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells7aa82bee5f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells7aa82bee5f + +open CertificateCells7aa82bee5f +namespace CoverCertificate1e0715601d + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1e0715601d + +theorem e24KC2PhiAboveLeaf1100111 : + adaptiveCoverCheck 9 (childLH (childLH (childLH phiAboveCell1100))) = true := by + exact CoverCertificate1e0715601d.checkedRoot +namespace CoverCertificate645c2a2fa6 + +private theorem checked010 : adaptiveCoverCheck 6 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 6 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 6 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 6 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 6 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 6 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 6 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 6 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 6 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 6 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 6 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 6 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate645c2a2fa6 + +theorem e24KC2PhiAboveLeaf1101000 : + adaptiveCoverCheck 9 (childLL (childLL (childLL phiAboveCell1101))) = true := by + exact CoverCertificate645c2a2fa6.checkedRoot +namespace CoverCertificate22a5b25f41 + +private theorem checked000 : adaptiveCoverCheck 6 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 6 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 6 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 6 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 6 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 6 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 6 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 6 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 6 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 6 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 6 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 6 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 6 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 6 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 6 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 6 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate22a5b25f41 + +theorem e24KC2PhiAboveLeaf1101001 : + adaptiveCoverCheck 9 (childLH (childLL (childLL phiAboveCell1101))) = true := by + exact CoverCertificate22a5b25f41.checkedRoot +namespace CoverCertificate052935fbc6 + +private theorem checked1010 : adaptiveCoverCheck 5 cell1010 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1010 (by decide +kernel) + +private theorem checked1011 : adaptiveCoverCheck 5 cell1011 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1011 (by decide +kernel) + +private theorem checked1012 : adaptiveCoverCheck 5 cell1012 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1012 (by decide +kernel) + +private theorem checked1013 : adaptiveCoverCheck 5 cell1013 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1013 (by decide +kernel) + +private theorem checked1100 : adaptiveCoverCheck 5 cell1100 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1100 (by decide +kernel) + +private theorem checked1101 : adaptiveCoverCheck 5 cell1101 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1101 (by decide +kernel) + +private theorem checked1102 : adaptiveCoverCheck 5 cell1102 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1102 (by decide +kernel) + +private theorem checked1103 : adaptiveCoverCheck 5 cell1103 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1103 (by decide +kernel) + +private theorem checked1110 : adaptiveCoverCheck 5 cell1110 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1110 (by decide +kernel) + +private theorem checked1111 : adaptiveCoverCheck 5 cell1111 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1111 (by decide +kernel) + +private theorem checked1112 : adaptiveCoverCheck 5 cell1112 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1112 (by decide +kernel) + +private theorem checked1113 : adaptiveCoverCheck 5 cell1113 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1113 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 6 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 6 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 6 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 6 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 6 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 6 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 6 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 6 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 6 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 6 cell101 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell101 + checked1010 checked1011 checked1012 checked1013 + +private theorem checked102 : adaptiveCoverCheck 6 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 6 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 6 cell110 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell110 + checked1100 checked1101 checked1102 checked1103 + +private theorem checked111 : adaptiveCoverCheck 6 cell111 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell111 + checked1110 checked1111 checked1112 checked1113 + +private theorem checked112 : adaptiveCoverCheck 6 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 6 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate052935fbc6 + +theorem e24KC2PhiAboveLeaf1101010 : + adaptiveCoverCheck 9 (childLL (childLH (childLL phiAboveCell1101))) = true := by + exact CoverCertificate052935fbc6.checkedRoot +namespace CoverCertificateda1b0b5031 + +private theorem checked11110 : adaptiveCoverCheck 4 cell11110 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11110 (by decide +kernel) + +private theorem checked11111 : adaptiveCoverCheck 4 cell11111 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11111 (by decide +kernel) + +private theorem checked11112 : adaptiveCoverCheck 4 cell11112 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11112 (by decide +kernel) + +private theorem checked11113 : adaptiveCoverCheck 4 cell11113 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11113 (by decide +kernel) + +private theorem checked0000 : adaptiveCoverCheck 5 cell0000 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0000 (by decide +kernel) + +private theorem checked0001 : adaptiveCoverCheck 5 cell0001 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0001 (by decide +kernel) + +private theorem checked0002 : adaptiveCoverCheck 5 cell0002 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0002 (by decide +kernel) + +private theorem checked0003 : adaptiveCoverCheck 5 cell0003 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0003 (by decide +kernel) + +private theorem checked0010 : adaptiveCoverCheck 5 cell0010 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0010 (by decide +kernel) + +private theorem checked0011 : adaptiveCoverCheck 5 cell0011 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0011 (by decide +kernel) + +private theorem checked0012 : adaptiveCoverCheck 5 cell0012 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0012 (by decide +kernel) + +private theorem checked0013 : adaptiveCoverCheck 5 cell0013 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0013 (by decide +kernel) + +private theorem checked0100 : adaptiveCoverCheck 5 cell0100 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0100 (by decide +kernel) + +private theorem checked0101 : adaptiveCoverCheck 5 cell0101 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0101 (by decide +kernel) + +private theorem checked0102 : adaptiveCoverCheck 5 cell0102 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0102 (by decide +kernel) + +private theorem checked0103 : adaptiveCoverCheck 5 cell0103 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0103 (by decide +kernel) + +private theorem checked0110 : adaptiveCoverCheck 5 cell0110 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0110 (by decide +kernel) + +private theorem checked0111 : adaptiveCoverCheck 5 cell0111 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0111 (by decide +kernel) + +private theorem checked0112 : adaptiveCoverCheck 5 cell0112 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0112 (by decide +kernel) + +private theorem checked0113 : adaptiveCoverCheck 5 cell0113 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0113 (by decide +kernel) + +private theorem checked1000 : adaptiveCoverCheck 5 cell1000 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1000 (by decide +kernel) + +private theorem checked1001 : adaptiveCoverCheck 5 cell1001 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1001 (by decide +kernel) + +private theorem checked1002 : adaptiveCoverCheck 5 cell1002 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1002 (by decide +kernel) + +private theorem checked1003 : adaptiveCoverCheck 5 cell1003 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1003 (by decide +kernel) + +private theorem checked1010 : adaptiveCoverCheck 5 cell1010 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1010 (by decide +kernel) + +private theorem checked1011 : adaptiveCoverCheck 5 cell1011 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1011 (by decide +kernel) + +private theorem checked1012 : adaptiveCoverCheck 5 cell1012 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1012 (by decide +kernel) + +private theorem checked1013 : adaptiveCoverCheck 5 cell1013 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1013 (by decide +kernel) + +private theorem checked1100 : adaptiveCoverCheck 5 cell1100 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1100 (by decide +kernel) + +private theorem checked1101 : adaptiveCoverCheck 5 cell1101 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1101 (by decide +kernel) + +private theorem checked1102 : adaptiveCoverCheck 5 cell1102 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1102 (by decide +kernel) + +private theorem checked1103 : adaptiveCoverCheck 5 cell1103 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1103 (by decide +kernel) + +private theorem checked1110 : adaptiveCoverCheck 5 cell1110 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1110 (by decide +kernel) + +private theorem checked1111 : adaptiveCoverCheck 5 cell1111 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1111 + checked11110 checked11111 checked11112 checked11113 + +private theorem checked1112 : adaptiveCoverCheck 5 cell1112 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1112 (by decide +kernel) + +private theorem checked1113 : adaptiveCoverCheck 5 cell1113 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1113 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 6 cell000 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell000 + checked0000 checked0001 checked0002 checked0003 + +private theorem checked001 : adaptiveCoverCheck 6 cell001 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell001 + checked0010 checked0011 checked0012 checked0013 + +private theorem checked002 : adaptiveCoverCheck 6 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 6 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 6 cell010 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell010 + checked0100 checked0101 checked0102 checked0103 + +private theorem checked011 : adaptiveCoverCheck 6 cell011 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell011 + checked0110 checked0111 checked0112 checked0113 + +private theorem checked012 : adaptiveCoverCheck 6 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 6 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 6 cell100 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell100 + checked1000 checked1001 checked1002 checked1003 + +private theorem checked101 : adaptiveCoverCheck 6 cell101 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell101 + checked1010 checked1011 checked1012 checked1013 + +private theorem checked102 : adaptiveCoverCheck 6 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 6 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 6 cell110 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell110 + checked1100 checked1101 checked1102 checked1103 + +private theorem checked111 : adaptiveCoverCheck 6 cell111 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell111 + checked1110 checked1111 checked1112 checked1113 + +private theorem checked112 : adaptiveCoverCheck 6 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 6 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateda1b0b5031 + +theorem e24KC2PhiAboveLeaf1101011 : + adaptiveCoverCheck 9 (childLH (childLH (childLL phiAboveCell1101))) = true := by + exact CoverCertificateda1b0b5031.checkedRoot +namespace CoverCertificate87253a3a53 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate87253a3a53 + +theorem e24KC2PhiAboveLeaf1101012 : + adaptiveCoverCheck 9 (childHL (childLH (childLL phiAboveCell1101))) = true := by + exact CoverCertificate87253a3a53.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC4 auto-tuned batched kernel certificates. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf8d478d36a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf8d478d36a + +open CertificateCellsf8d478d36a +namespace CoverCertificate3f791a2e61 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3f791a2e61 + +theorem e24KC2PhiAboveLeaf1101013 : + adaptiveCoverCheck 9 (childHH (childLH (childLL phiAboveCell1101))) = true := by + exact CoverCertificate3f791a2e61.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC5TerminalBatchT665600016`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsce54db6860 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsce54db6860 + +open CertificateCellsce54db6860 +theorem e24KC2ThetaBelowLeaf1023 : + adaptiveCoverCheck 14 thetaBelowCell1023 = true := by + have h : (thetaBelowCell1023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1023 h +theorem e24KC2ThetaBelowLeaf1030 : + adaptiveCoverCheck 14 thetaBelowCell1030 = true := by + have h : (thetaBelowCell1030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1030 h +theorem e24KC2ThetaBelowLeaf1031 : + adaptiveCoverCheck 14 thetaBelowCell1031 = true := by + have h : (thetaBelowCell1031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1031 h +theorem e24KC2ThetaBelowLeaf1032 : + adaptiveCoverCheck 14 thetaBelowCell1032 = true := by + have h : (thetaBelowCell1032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1032 h +theorem e24KC2ThetaBelowLeaf1033 : + adaptiveCoverCheck 14 thetaBelowCell1033 = true := by + have h : (thetaBelowCell1033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1033 h +theorem e24KC2ThetaBelowLeaf110000 : + adaptiveCoverCheck 12 (childLL (childLL thetaBelowCell1100)) = true := by + have h : ((childLL (childLL thetaBelowCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL thetaBelowCell1100)) h +theorem e24KC2ThetaBelowLeaf110001 : + adaptiveCoverCheck 12 (childLH (childLL thetaBelowCell1100)) = true := by + have h : ((childLH (childLL thetaBelowCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL thetaBelowCell1100)) h +theorem e24KC2ThetaBelowLeaf1100020 : + adaptiveCoverCheck 11 (childLL (childHL (childLL thetaBelowCell1100))) = true := by + have h : ((childLL (childHL (childLL thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHL (childLL thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf1100021 : + adaptiveCoverCheck 11 (childLH (childHL (childLL thetaBelowCell1100))) = true := by + have h : ((childLH (childHL (childLL thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHL (childLL thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf1100022 : + adaptiveCoverCheck 11 (childHL (childHL (childLL thetaBelowCell1100))) = true := by + have h : ((childHL (childHL (childLL thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childLL thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf1100023 : + adaptiveCoverCheck 11 (childHH (childHL (childLL thetaBelowCell1100))) = true := by + have h : ((childHH (childHL (childLL thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childLL thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf1100030 : + adaptiveCoverCheck 11 (childLL (childHH (childLL thetaBelowCell1100))) = true := by + have h : ((childLL (childHH (childLL thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHH (childLL thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf1100031 : + adaptiveCoverCheck 11 (childLH (childHH (childLL thetaBelowCell1100))) = true := by + have h : ((childLH (childHH (childLL thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHH (childLL thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf11000320 : + adaptiveCoverCheck 10 thetaBelowCell11000320 = true := by + have h : (thetaBelowCell11000320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11000320 h +theorem e24KC2ThetaBelowLeaf11000321 : + adaptiveCoverCheck 10 thetaBelowCell11000321 = true := by + have h : (thetaBelowCell11000321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11000321 h +theorem e24KC2ThetaBelowLeaf11000322 : + adaptiveCoverCheck 10 thetaBelowCell11000322 = true := by + have h : (thetaBelowCell11000322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11000322 h +theorem e24KC2ThetaBelowLeaf11000323 : + adaptiveCoverCheck 10 thetaBelowCell11000323 = true := by + have h : (thetaBelowCell11000323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11000323 h +theorem e24KC2ThetaBelowLeaf11000330 : + adaptiveCoverCheck 10 thetaBelowCell11000330 = true := by + have h : (thetaBelowCell11000330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11000330 h +theorem e24KC2ThetaBelowLeaf11000331 : + adaptiveCoverCheck 10 thetaBelowCell11000331 = true := by + have h : (thetaBelowCell11000331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11000331 h +theorem e24KC2ThetaBelowLeaf11000332 : + adaptiveCoverCheck 10 thetaBelowCell11000332 = true := by + have h : (thetaBelowCell11000332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11000332 h +theorem e24KC2ThetaBelowLeaf11000333 : + adaptiveCoverCheck 10 thetaBelowCell11000333 = true := by + have h : (thetaBelowCell11000333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11000333 h +theorem e24KC2ThetaBelowLeaf110010 : + adaptiveCoverCheck 12 (childLL (childLH thetaBelowCell1100)) = true := by + have h : ((childLL (childLH thetaBelowCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH thetaBelowCell1100)) h +theorem e24KC2ThetaBelowLeaf110011 : + adaptiveCoverCheck 12 (childLH (childLH thetaBelowCell1100)) = true := by + have h : ((childLH (childLH thetaBelowCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH thetaBelowCell1100)) h +theorem e24KC2ThetaBelowLeaf1100120 : + adaptiveCoverCheck 11 (childLL (childHL (childLH thetaBelowCell1100))) = true := by + have h : ((childLL (childHL (childLH thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHL (childLH thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf1100121 : + adaptiveCoverCheck 11 (childLH (childHL (childLH thetaBelowCell1100))) = true := by + have h : ((childLH (childHL (childLH thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHL (childLH thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf11001220 : + adaptiveCoverCheck 10 thetaBelowCell11001220 = true := by + have h : (thetaBelowCell11001220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11001220 h +theorem e24KC2ThetaBelowLeaf11001221 : + adaptiveCoverCheck 10 thetaBelowCell11001221 = true := by + have h : (thetaBelowCell11001221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11001221 h +theorem e24KC2ThetaBelowLeaf11001222 : + adaptiveCoverCheck 10 thetaBelowCell11001222 = true := by + have h : (thetaBelowCell11001222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11001222 h +theorem e24KC2ThetaBelowLeaf11001223 : + adaptiveCoverCheck 10 thetaBelowCell11001223 = true := by + have h : (thetaBelowCell11001223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11001223 h +theorem e24KC2ThetaBelowLeaf11001230 : + adaptiveCoverCheck 10 thetaBelowCell11001230 = true := by + have h : (thetaBelowCell11001230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11001230 h +theorem e24KC2ThetaBelowLeaf11001231 : + adaptiveCoverCheck 10 thetaBelowCell11001231 = true := by + have h : (thetaBelowCell11001231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11001231 h +theorem e24KC2ThetaBelowLeaf11001232 : + adaptiveCoverCheck 10 thetaBelowCell11001232 = true := by + have h : (thetaBelowCell11001232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11001232 h +theorem e24KC2ThetaBelowLeaf11001233 : + adaptiveCoverCheck 10 thetaBelowCell11001233 = true := by + have h : (thetaBelowCell11001233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11001233 h +theorem e24KC2ThetaBelowLeaf1100130 : + adaptiveCoverCheck 11 (childLL (childHH (childLH thetaBelowCell1100))) = true := by + have h : ((childLL (childHH (childLH thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHH (childLH thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf1100131 : + adaptiveCoverCheck 11 (childLH (childHH (childLH thetaBelowCell1100))) = true := by + have h : ((childLH (childHH (childLH thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHH (childLH thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf11001320 : + adaptiveCoverCheck 10 thetaBelowCell11001320 = true := by + have h : (thetaBelowCell11001320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11001320 h +theorem e24KC2ThetaBelowLeaf11001321 : + adaptiveCoverCheck 10 thetaBelowCell11001321 = true := by + have h : (thetaBelowCell11001321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11001321 h +theorem e24KC2ThetaBelowLeaf11001322 : + adaptiveCoverCheck 10 thetaBelowCell11001322 = true := by + have h : (thetaBelowCell11001322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11001322 h +theorem e24KC2ThetaBelowLeaf11001323 : + adaptiveCoverCheck 10 thetaBelowCell11001323 = true := by + have h : (thetaBelowCell11001323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11001323 h +theorem e24KC2ThetaBelowLeaf11001330 : + adaptiveCoverCheck 10 thetaBelowCell11001330 = true := by + have h : (thetaBelowCell11001330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11001330 h +theorem e24KC2ThetaBelowLeaf11001331 : + adaptiveCoverCheck 10 thetaBelowCell11001331 = true := by + have h : (thetaBelowCell11001331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11001331 h +theorem e24KC2ThetaBelowLeaf11001332 : + adaptiveCoverCheck 10 thetaBelowCell11001332 = true := by + have h : (thetaBelowCell11001332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11001332 h +theorem e24KC2ThetaBelowLeaf11001333 : + adaptiveCoverCheck 10 thetaBelowCell11001333 = true := by + have h : (thetaBelowCell11001333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11001333 h +theorem e24KC2ThetaBelowLeaf11002000 : + adaptiveCoverCheck 10 thetaBelowCell11002000 = true := by + have h : (thetaBelowCell11002000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002000 h +theorem e24KC2ThetaBelowLeaf11002001 : + adaptiveCoverCheck 10 thetaBelowCell11002001 = true := by + have h : (thetaBelowCell11002001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002001 h +theorem e24KC2ThetaBelowLeaf11002002 : + adaptiveCoverCheck 10 thetaBelowCell11002002 = true := by + have h : (thetaBelowCell11002002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002002 h +theorem e24KC2ThetaBelowLeaf11002003 : + adaptiveCoverCheck 10 thetaBelowCell11002003 = true := by + have h : (thetaBelowCell11002003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002003 h +theorem e24KC2ThetaBelowLeaf11002010 : + adaptiveCoverCheck 10 thetaBelowCell11002010 = true := by + have h : (thetaBelowCell11002010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002010 h +theorem e24KC2ThetaBelowLeaf11002011 : + adaptiveCoverCheck 10 thetaBelowCell11002011 = true := by + have h : (thetaBelowCell11002011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002011 h +theorem e24KC2ThetaBelowLeaf11002012 : + adaptiveCoverCheck 10 thetaBelowCell11002012 = true := by + have h : (thetaBelowCell11002012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002012 h +theorem e24KC2ThetaBelowLeaf11002013 : + adaptiveCoverCheck 10 thetaBelowCell11002013 = true := by + have h : (thetaBelowCell11002013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002013 h +theorem e24KC2ThetaBelowLeaf11002020 : + adaptiveCoverCheck 10 thetaBelowCell11002020 = true := by + have h : (thetaBelowCell11002020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002020 h +theorem e24KC2ThetaBelowLeaf11002021 : + adaptiveCoverCheck 10 thetaBelowCell11002021 = true := by + have h : (thetaBelowCell11002021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002021 h +theorem e24KC2ThetaBelowLeaf11002022 : + adaptiveCoverCheck 10 thetaBelowCell11002022 = true := by + have h : (thetaBelowCell11002022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002022 h +theorem e24KC2ThetaBelowLeaf11002023 : + adaptiveCoverCheck 10 thetaBelowCell11002023 = true := by + have h : (thetaBelowCell11002023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002023 h +theorem e24KC2ThetaBelowLeaf11002030 : + adaptiveCoverCheck 10 thetaBelowCell11002030 = true := by + have h : (thetaBelowCell11002030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002030 h +theorem e24KC2ThetaBelowLeaf11002031 : + adaptiveCoverCheck 10 thetaBelowCell11002031 = true := by + have h : (thetaBelowCell11002031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002031 h +theorem e24KC2ThetaBelowLeaf11002032 : + adaptiveCoverCheck 10 thetaBelowCell11002032 = true := by + have h : (thetaBelowCell11002032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002032 h +theorem e24KC2ThetaBelowLeaf11002033 : + adaptiveCoverCheck 10 thetaBelowCell11002033 = true := by + have h : (thetaBelowCell11002033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002033 h +theorem e24KC2ThetaBelowLeaf11002100 : + adaptiveCoverCheck 10 thetaBelowCell11002100 = true := by + have h : (thetaBelowCell11002100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002100 h +theorem e24KC2ThetaBelowLeaf11002101 : + adaptiveCoverCheck 10 thetaBelowCell11002101 = true := by + have h : (thetaBelowCell11002101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002101 h +theorem e24KC2ThetaBelowLeaf11002102 : + adaptiveCoverCheck 10 thetaBelowCell11002102 = true := by + have h : (thetaBelowCell11002102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002102 h +theorem e24KC2ThetaBelowLeaf11002103 : + adaptiveCoverCheck 10 thetaBelowCell11002103 = true := by + have h : (thetaBelowCell11002103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002103 h +theorem e24KC2ThetaBelowLeaf11002110 : + adaptiveCoverCheck 10 thetaBelowCell11002110 = true := by + have h : (thetaBelowCell11002110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002110 h +theorem e24KC2ThetaBelowLeaf11002111 : + adaptiveCoverCheck 10 thetaBelowCell11002111 = true := by + have h : (thetaBelowCell11002111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002111 h +theorem e24KC2ThetaBelowLeaf11002112 : + adaptiveCoverCheck 10 thetaBelowCell11002112 = true := by + have h : (thetaBelowCell11002112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002112 h +theorem e24KC2ThetaBelowLeaf11002113 : + adaptiveCoverCheck 10 thetaBelowCell11002113 = true := by + have h : (thetaBelowCell11002113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002113 h +theorem e24KC2ThetaBelowLeaf11002120 : + adaptiveCoverCheck 10 thetaBelowCell11002120 = true := by + have h : (thetaBelowCell11002120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002120 h +theorem e24KC2ThetaBelowLeaf11002121 : + adaptiveCoverCheck 10 thetaBelowCell11002121 = true := by + have h : (thetaBelowCell11002121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002121 h +theorem e24KC2ThetaBelowLeaf11002122 : + adaptiveCoverCheck 10 thetaBelowCell11002122 = true := by + have h : (thetaBelowCell11002122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002122 h +theorem e24KC2ThetaBelowLeaf11002123 : + adaptiveCoverCheck 10 thetaBelowCell11002123 = true := by + have h : (thetaBelowCell11002123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002123 h +theorem e24KC2ThetaBelowLeaf11002130 : + adaptiveCoverCheck 10 thetaBelowCell11002130 = true := by + have h : (thetaBelowCell11002130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002130 h +theorem e24KC2ThetaBelowLeaf11002131 : + adaptiveCoverCheck 10 thetaBelowCell11002131 = true := by + have h : (thetaBelowCell11002131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002131 h +theorem e24KC2ThetaBelowLeaf11002132 : + adaptiveCoverCheck 10 thetaBelowCell11002132 = true := by + have h : (thetaBelowCell11002132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002132 h +theorem e24KC2ThetaBelowLeaf11002133 : + adaptiveCoverCheck 10 thetaBelowCell11002133 = true := by + have h : (thetaBelowCell11002133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11002133 h +theorem e24KC2ThetaBelowLeaf1100220 : + adaptiveCoverCheck 11 (childLL (childHL (childHL thetaBelowCell1100))) = true := by + have h : ((childLL (childHL (childHL thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHL (childHL thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf1100221 : + adaptiveCoverCheck 11 (childLH (childHL (childHL thetaBelowCell1100))) = true := by + have h : ((childLH (childHL (childHL thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHL (childHL thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf1100222 : + adaptiveCoverCheck 11 (childHL (childHL (childHL thetaBelowCell1100))) = true := by + have h : ((childHL (childHL (childHL thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childHL thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf1100223 : + adaptiveCoverCheck 11 (childHH (childHL (childHL thetaBelowCell1100))) = true := by + have h : ((childHH (childHL (childHL thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childHL thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf1100230 : + adaptiveCoverCheck 11 (childLL (childHH (childHL thetaBelowCell1100))) = true := by + have h : ((childLL (childHH (childHL thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHH (childHL thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf1100231 : + adaptiveCoverCheck 11 (childLH (childHH (childHL thetaBelowCell1100))) = true := by + have h : ((childLH (childHH (childHL thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHH (childHL thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf1100232 : + adaptiveCoverCheck 11 (childHL (childHH (childHL thetaBelowCell1100))) = true := by + have h : ((childHL (childHH (childHL thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childHL thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf1100233 : + adaptiveCoverCheck 11 (childHH (childHH (childHL thetaBelowCell1100))) = true := by + have h : ((childHH (childHH (childHL thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childHL thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf11003000 : + adaptiveCoverCheck 10 thetaBelowCell11003000 = true := by + have h : (thetaBelowCell11003000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003000 h +theorem e24KC2ThetaBelowLeaf11003001 : + adaptiveCoverCheck 10 thetaBelowCell11003001 = true := by + have h : (thetaBelowCell11003001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003001 h +theorem e24KC2ThetaBelowLeaf11003002 : + adaptiveCoverCheck 10 thetaBelowCell11003002 = true := by + have h : (thetaBelowCell11003002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003002 h +theorem e24KC2ThetaBelowLeaf11003003 : + adaptiveCoverCheck 10 thetaBelowCell11003003 = true := by + have h : (thetaBelowCell11003003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003003 h +theorem e24KC2ThetaBelowLeaf11003010 : + adaptiveCoverCheck 10 thetaBelowCell11003010 = true := by + have h : (thetaBelowCell11003010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003010 h +theorem e24KC2ThetaBelowLeaf11003011 : + adaptiveCoverCheck 10 thetaBelowCell11003011 = true := by + have h : (thetaBelowCell11003011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003011 h +theorem e24KC2ThetaBelowLeaf11003012 : + adaptiveCoverCheck 10 thetaBelowCell11003012 = true := by + have h : (thetaBelowCell11003012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003012 h +theorem e24KC2ThetaBelowLeaf11003013 : + adaptiveCoverCheck 10 thetaBelowCell11003013 = true := by + have h : (thetaBelowCell11003013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003013 h +theorem e24KC2ThetaBelowLeaf11003020 : + adaptiveCoverCheck 10 thetaBelowCell11003020 = true := by + have h : (thetaBelowCell11003020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003020 h +theorem e24KC2ThetaBelowLeaf11003021 : + adaptiveCoverCheck 10 thetaBelowCell11003021 = true := by + have h : (thetaBelowCell11003021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003021 h +theorem e24KC2ThetaBelowLeaf11003022 : + adaptiveCoverCheck 10 thetaBelowCell11003022 = true := by + have h : (thetaBelowCell11003022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003022 h +theorem e24KC2ThetaBelowLeaf11003023 : + adaptiveCoverCheck 10 thetaBelowCell11003023 = true := by + have h : (thetaBelowCell11003023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003023 h +theorem e24KC2ThetaBelowLeaf11003030 : + adaptiveCoverCheck 10 thetaBelowCell11003030 = true := by + have h : (thetaBelowCell11003030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003030 h +theorem e24KC2ThetaBelowLeaf11003031 : + adaptiveCoverCheck 10 thetaBelowCell11003031 = true := by + have h : (thetaBelowCell11003031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003031 h +theorem e24KC2ThetaBelowLeaf11003032 : + adaptiveCoverCheck 10 thetaBelowCell11003032 = true := by + have h : (thetaBelowCell11003032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003032 h +theorem e24KC2ThetaBelowLeaf11003033 : + adaptiveCoverCheck 10 thetaBelowCell11003033 = true := by + have h : (thetaBelowCell11003033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003033 h +theorem e24KC2ThetaBelowLeaf11003100 : + adaptiveCoverCheck 10 thetaBelowCell11003100 = true := by + have h : (thetaBelowCell11003100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003100 h +theorem e24KC2ThetaBelowLeaf11003101 : + adaptiveCoverCheck 10 thetaBelowCell11003101 = true := by + have h : (thetaBelowCell11003101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003101 h +theorem e24KC2ThetaBelowLeaf11003102 : + adaptiveCoverCheck 10 thetaBelowCell11003102 = true := by + have h : (thetaBelowCell11003102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003102 h +theorem e24KC2ThetaBelowLeaf11003103 : + adaptiveCoverCheck 10 thetaBelowCell11003103 = true := by + have h : (thetaBelowCell11003103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003103 h +theorem e24KC2ThetaBelowLeaf11003110 : + adaptiveCoverCheck 10 thetaBelowCell11003110 = true := by + have h : (thetaBelowCell11003110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003110 h +theorem e24KC2ThetaBelowLeaf11003111 : + adaptiveCoverCheck 10 thetaBelowCell11003111 = true := by + have h : (thetaBelowCell11003111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003111 h +theorem e24KC2ThetaBelowLeaf11003112 : + adaptiveCoverCheck 10 thetaBelowCell11003112 = true := by + have h : (thetaBelowCell11003112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003112 h +theorem e24KC2ThetaBelowLeaf11003113 : + adaptiveCoverCheck 10 thetaBelowCell11003113 = true := by + have h : (thetaBelowCell11003113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003113 h +theorem e24KC2ThetaBelowLeaf11003120 : + adaptiveCoverCheck 10 thetaBelowCell11003120 = true := by + have h : (thetaBelowCell11003120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003120 h +theorem e24KC2ThetaBelowLeaf11003121 : + adaptiveCoverCheck 10 thetaBelowCell11003121 = true := by + have h : (thetaBelowCell11003121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003121 h +theorem e24KC2ThetaBelowLeaf11003122 : + adaptiveCoverCheck 10 thetaBelowCell11003122 = true := by + have h : (thetaBelowCell11003122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003122 h +theorem e24KC2ThetaBelowLeaf11003123 : + adaptiveCoverCheck 10 thetaBelowCell11003123 = true := by + have h : (thetaBelowCell11003123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003123 h +theorem e24KC2ThetaBelowLeaf11003130 : + adaptiveCoverCheck 10 thetaBelowCell11003130 = true := by + have h : (thetaBelowCell11003130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003130 h +theorem e24KC2ThetaBelowLeaf11003131 : + adaptiveCoverCheck 10 thetaBelowCell11003131 = true := by + have h : (thetaBelowCell11003131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003131 h +theorem e24KC2ThetaBelowLeaf11003132 : + adaptiveCoverCheck 10 thetaBelowCell11003132 = true := by + have h : (thetaBelowCell11003132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003132 h +theorem e24KC2ThetaBelowLeaf11003133 : + adaptiveCoverCheck 10 thetaBelowCell11003133 = true := by + have h : (thetaBelowCell11003133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003133 h +theorem e24KC2ThetaBelowLeaf1100320 : + adaptiveCoverCheck 11 (childLL (childHL (childHH thetaBelowCell1100))) = true := by + have h : ((childLL (childHL (childHH thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHL (childHH thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf1100321 : + adaptiveCoverCheck 11 (childLH (childHL (childHH thetaBelowCell1100))) = true := by + have h : ((childLH (childHL (childHH thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHL (childHH thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf1100322 : + adaptiveCoverCheck 11 (childHL (childHL (childHH thetaBelowCell1100))) = true := by + have h : ((childHL (childHL (childHH thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childHH thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf1100323 : + adaptiveCoverCheck 11 (childHH (childHL (childHH thetaBelowCell1100))) = true := by + have h : ((childHH (childHL (childHH thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childHH thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf11003300 : + adaptiveCoverCheck 10 thetaBelowCell11003300 = true := by + have h : (thetaBelowCell11003300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003300 h +theorem e24KC2ThetaBelowLeaf11003301 : + adaptiveCoverCheck 10 thetaBelowCell11003301 = true := by + have h : (thetaBelowCell11003301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003301 h +theorem e24KC2ThetaBelowLeaf11003302 : + adaptiveCoverCheck 10 thetaBelowCell11003302 = true := by + have h : (thetaBelowCell11003302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003302 h +theorem e24KC2ThetaBelowLeaf11003303 : + adaptiveCoverCheck 10 thetaBelowCell11003303 = true := by + have h : (thetaBelowCell11003303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003303 h +theorem e24KC2ThetaBelowLeaf11003310 : + adaptiveCoverCheck 10 thetaBelowCell11003310 = true := by + have h : (thetaBelowCell11003310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003310 h +theorem e24KC2ThetaBelowLeaf11003311 : + adaptiveCoverCheck 10 thetaBelowCell11003311 = true := by + have h : (thetaBelowCell11003311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003311 h +theorem e24KC2ThetaBelowLeaf11003312 : + adaptiveCoverCheck 10 thetaBelowCell11003312 = true := by + have h : (thetaBelowCell11003312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003312 h +theorem e24KC2ThetaBelowLeaf11003313 : + adaptiveCoverCheck 10 thetaBelowCell11003313 = true := by + have h : (thetaBelowCell11003313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11003313 h +theorem e24KC2ThetaBelowLeaf1100332 : + adaptiveCoverCheck 11 (childHL (childHH (childHH thetaBelowCell1100))) = true := by + have h : ((childHL (childHH (childHH thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childHH thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf1100333 : + adaptiveCoverCheck 11 (childHH (childHH (childHH thetaBelowCell1100))) = true := by + have h : ((childHH (childHH (childHH thetaBelowCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childHH thetaBelowCell1100))) h +theorem e24KC2ThetaBelowLeaf110100 : + adaptiveCoverCheck 12 (childLL (childLL thetaBelowCell1101)) = true := by + have h : ((childLL (childLL thetaBelowCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL thetaBelowCell1101)) h +theorem e24KC2ThetaBelowLeaf110101 : + adaptiveCoverCheck 12 (childLH (childLL thetaBelowCell1101)) = true := by + have h : ((childLH (childLL thetaBelowCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL thetaBelowCell1101)) h +theorem e24KC2ThetaBelowLeaf1101020 : + adaptiveCoverCheck 11 (childLL (childHL (childLL thetaBelowCell1101))) = true := by + have h : ((childLL (childHL (childLL thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHL (childLL thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf1101021 : + adaptiveCoverCheck 11 (childLH (childHL (childLL thetaBelowCell1101))) = true := by + have h : ((childLH (childHL (childLL thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHL (childLL thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf11010220 : + adaptiveCoverCheck 10 thetaBelowCell11010220 = true := by + have h : (thetaBelowCell11010220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11010220 h +theorem e24KC2ThetaBelowLeaf11010221 : + adaptiveCoverCheck 10 thetaBelowCell11010221 = true := by + have h : (thetaBelowCell11010221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11010221 h +theorem e24KC2ThetaBelowLeaf11010222 : + adaptiveCoverCheck 10 thetaBelowCell11010222 = true := by + have h : (thetaBelowCell11010222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11010222 h +theorem e24KC2ThetaBelowLeaf11010223 : + adaptiveCoverCheck 10 thetaBelowCell11010223 = true := by + have h : (thetaBelowCell11010223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11010223 h +theorem e24KC2ThetaBelowLeaf11010230 : + adaptiveCoverCheck 10 thetaBelowCell11010230 = true := by + have h : (thetaBelowCell11010230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11010230 h +theorem e24KC2ThetaBelowLeaf11010231 : + adaptiveCoverCheck 10 thetaBelowCell11010231 = true := by + have h : (thetaBelowCell11010231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11010231 h +theorem e24KC2ThetaBelowLeaf11010232 : + adaptiveCoverCheck 10 thetaBelowCell11010232 = true := by + have h : (thetaBelowCell11010232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11010232 h +theorem e24KC2ThetaBelowLeaf11010233 : + adaptiveCoverCheck 10 thetaBelowCell11010233 = true := by + have h : (thetaBelowCell11010233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11010233 h +theorem e24KC2ThetaBelowLeaf1101030 : + adaptiveCoverCheck 11 (childLL (childHH (childLL thetaBelowCell1101))) = true := by + have h : ((childLL (childHH (childLL thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHH (childLL thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf1101031 : + adaptiveCoverCheck 11 (childLH (childHH (childLL thetaBelowCell1101))) = true := by + have h : ((childLH (childHH (childLL thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHH (childLL thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf1101032 : + adaptiveCoverCheck 11 (childHL (childHH (childLL thetaBelowCell1101))) = true := by + have h : ((childHL (childHH (childLL thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childLL thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf1101033 : + adaptiveCoverCheck 11 (childHH (childHH (childLL thetaBelowCell1101))) = true := by + have h : ((childHH (childHH (childLL thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childLL thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf110110 : + adaptiveCoverCheck 12 (childLL (childLH thetaBelowCell1101)) = true := by + have h : ((childLL (childLH thetaBelowCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH thetaBelowCell1101)) h +theorem e24KC2ThetaBelowLeaf110111 : + adaptiveCoverCheck 12 (childLH (childLH thetaBelowCell1101)) = true := by + have h : ((childLH (childLH thetaBelowCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH thetaBelowCell1101)) h +theorem e24KC2ThetaBelowLeaf1101120 : + adaptiveCoverCheck 11 (childLL (childHL (childLH thetaBelowCell1101))) = true := by + have h : ((childLL (childHL (childLH thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHL (childLH thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf1101121 : + adaptiveCoverCheck 11 (childLH (childHL (childLH thetaBelowCell1101))) = true := by + have h : ((childLH (childHL (childLH thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHL (childLH thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf1101122 : + adaptiveCoverCheck 11 (childHL (childHL (childLH thetaBelowCell1101))) = true := by + have h : ((childHL (childHL (childLH thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childLH thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf1101123 : + adaptiveCoverCheck 11 (childHH (childHL (childLH thetaBelowCell1101))) = true := by + have h : ((childHH (childHL (childLH thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childLH thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf1101130 : + adaptiveCoverCheck 11 (childLL (childHH (childLH thetaBelowCell1101))) = true := by + have h : ((childLL (childHH (childLH thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHH (childLH thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf1101131 : + adaptiveCoverCheck 11 (childLH (childHH (childLH thetaBelowCell1101))) = true := by + have h : ((childLH (childHH (childLH thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHH (childLH thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf1101132 : + adaptiveCoverCheck 11 (childHL (childHH (childLH thetaBelowCell1101))) = true := by + have h : ((childHL (childHH (childLH thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childLH thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf1101133 : + adaptiveCoverCheck 11 (childHH (childHH (childLH thetaBelowCell1101))) = true := by + have h : ((childHH (childHH (childLH thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childLH thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf11012000 : + adaptiveCoverCheck 10 thetaBelowCell11012000 = true := by + have h : (thetaBelowCell11012000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012000 h +theorem e24KC2ThetaBelowLeaf11012001 : + adaptiveCoverCheck 10 thetaBelowCell11012001 = true := by + have h : (thetaBelowCell11012001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012001 h +theorem e24KC2ThetaBelowLeaf11012002 : + adaptiveCoverCheck 10 thetaBelowCell11012002 = true := by + have h : (thetaBelowCell11012002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012002 h +theorem e24KC2ThetaBelowLeaf11012003 : + adaptiveCoverCheck 10 thetaBelowCell11012003 = true := by + have h : (thetaBelowCell11012003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012003 h +theorem e24KC2ThetaBelowLeaf11012010 : + adaptiveCoverCheck 10 thetaBelowCell11012010 = true := by + have h : (thetaBelowCell11012010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012010 h +theorem e24KC2ThetaBelowLeaf11012011 : + adaptiveCoverCheck 10 thetaBelowCell11012011 = true := by + have h : (thetaBelowCell11012011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012011 h +theorem e24KC2ThetaBelowLeaf11012012 : + adaptiveCoverCheck 10 thetaBelowCell11012012 = true := by + have h : (thetaBelowCell11012012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012012 h +theorem e24KC2ThetaBelowLeaf11012013 : + adaptiveCoverCheck 10 thetaBelowCell11012013 = true := by + have h : (thetaBelowCell11012013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012013 h +theorem e24KC2ThetaBelowLeaf11012020 : + adaptiveCoverCheck 10 thetaBelowCell11012020 = true := by + have h : (thetaBelowCell11012020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012020 h +theorem e24KC2ThetaBelowLeaf11012021 : + adaptiveCoverCheck 10 thetaBelowCell11012021 = true := by + have h : (thetaBelowCell11012021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012021 h +theorem e24KC2ThetaBelowLeaf11012022 : + adaptiveCoverCheck 10 thetaBelowCell11012022 = true := by + have h : (thetaBelowCell11012022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012022 h +theorem e24KC2ThetaBelowLeaf11012023 : + adaptiveCoverCheck 10 thetaBelowCell11012023 = true := by + have h : (thetaBelowCell11012023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012023 h +theorem e24KC2ThetaBelowLeaf11012030 : + adaptiveCoverCheck 10 thetaBelowCell11012030 = true := by + have h : (thetaBelowCell11012030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012030 h +theorem e24KC2ThetaBelowLeaf11012031 : + adaptiveCoverCheck 10 thetaBelowCell11012031 = true := by + have h : (thetaBelowCell11012031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012031 h +theorem e24KC2ThetaBelowLeaf11012032 : + adaptiveCoverCheck 10 thetaBelowCell11012032 = true := by + have h : (thetaBelowCell11012032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012032 h +theorem e24KC2ThetaBelowLeaf11012033 : + adaptiveCoverCheck 10 thetaBelowCell11012033 = true := by + have h : (thetaBelowCell11012033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012033 h +theorem e24KC2ThetaBelowLeaf11012100 : + adaptiveCoverCheck 10 thetaBelowCell11012100 = true := by + have h : (thetaBelowCell11012100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012100 h +theorem e24KC2ThetaBelowLeaf11012101 : + adaptiveCoverCheck 10 thetaBelowCell11012101 = true := by + have h : (thetaBelowCell11012101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012101 h +theorem e24KC2ThetaBelowLeaf11012102 : + adaptiveCoverCheck 10 thetaBelowCell11012102 = true := by + have h : (thetaBelowCell11012102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012102 h +theorem e24KC2ThetaBelowLeaf11012103 : + adaptiveCoverCheck 10 thetaBelowCell11012103 = true := by + have h : (thetaBelowCell11012103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012103 h +theorem e24KC2ThetaBelowLeaf11012110 : + adaptiveCoverCheck 10 thetaBelowCell11012110 = true := by + have h : (thetaBelowCell11012110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012110 h +theorem e24KC2ThetaBelowLeaf11012111 : + adaptiveCoverCheck 10 thetaBelowCell11012111 = true := by + have h : (thetaBelowCell11012111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012111 h +theorem e24KC2ThetaBelowLeaf11012112 : + adaptiveCoverCheck 10 thetaBelowCell11012112 = true := by + have h : (thetaBelowCell11012112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012112 h +theorem e24KC2ThetaBelowLeaf11012113 : + adaptiveCoverCheck 10 thetaBelowCell11012113 = true := by + have h : (thetaBelowCell11012113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012113 h +theorem e24KC2ThetaBelowLeaf11012120 : + adaptiveCoverCheck 10 thetaBelowCell11012120 = true := by + have h : (thetaBelowCell11012120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012120 h +theorem e24KC2ThetaBelowLeaf11012121 : + adaptiveCoverCheck 10 thetaBelowCell11012121 = true := by + have h : (thetaBelowCell11012121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012121 h +theorem e24KC2ThetaBelowLeaf11012122 : + adaptiveCoverCheck 10 thetaBelowCell11012122 = true := by + have h : (thetaBelowCell11012122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012122 h +theorem e24KC2ThetaBelowLeaf11012123 : + adaptiveCoverCheck 10 thetaBelowCell11012123 = true := by + have h : (thetaBelowCell11012123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012123 h +theorem e24KC2ThetaBelowLeaf11012130 : + adaptiveCoverCheck 10 thetaBelowCell11012130 = true := by + have h : (thetaBelowCell11012130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012130 h +theorem e24KC2ThetaBelowLeaf11012131 : + adaptiveCoverCheck 10 thetaBelowCell11012131 = true := by + have h : (thetaBelowCell11012131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012131 h +theorem e24KC2ThetaBelowLeaf110121320 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11012132) = true := by + have h : ((childLL thetaBelowCell11012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11012132) h +theorem e24KC2ThetaBelowLeaf110121321 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11012132) = true := by + have h : ((childLH thetaBelowCell11012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11012132) h +theorem e24KC2ThetaBelowLeaf110121322 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11012132) = true := by + have h : ((childHL thetaBelowCell11012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11012132) h +theorem e24KC2ThetaBelowLeaf110121323 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11012132) = true := by + have h : ((childHH thetaBelowCell11012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11012132) h +theorem e24KC2ThetaBelowLeaf110121330 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11012133) = true := by + have h : ((childLL thetaBelowCell11012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11012133) h +theorem e24KC2ThetaBelowLeaf110121331 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11012133) = true := by + have h : ((childLH thetaBelowCell11012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11012133) h +theorem e24KC2ThetaBelowLeaf110121332 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11012133) = true := by + have h : ((childHL thetaBelowCell11012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11012133) h +theorem e24KC2ThetaBelowLeaf110121333 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11012133) = true := by + have h : ((childHH thetaBelowCell11012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11012133) h +theorem e24KC2ThetaBelowLeaf11012200 : + adaptiveCoverCheck 10 thetaBelowCell11012200 = true := by + have h : (thetaBelowCell11012200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012200 h +theorem e24KC2ThetaBelowLeaf11012201 : + adaptiveCoverCheck 10 thetaBelowCell11012201 = true := by + have h : (thetaBelowCell11012201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012201 h +theorem e24KC2ThetaBelowLeaf11012202 : + adaptiveCoverCheck 10 thetaBelowCell11012202 = true := by + have h : (thetaBelowCell11012202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012202 h +theorem e24KC2ThetaBelowLeaf11012203 : + adaptiveCoverCheck 10 thetaBelowCell11012203 = true := by + have h : (thetaBelowCell11012203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012203 h +theorem e24KC2ThetaBelowLeaf11012210 : + adaptiveCoverCheck 10 thetaBelowCell11012210 = true := by + have h : (thetaBelowCell11012210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012210 h +theorem e24KC2ThetaBelowLeaf11012211 : + adaptiveCoverCheck 10 thetaBelowCell11012211 = true := by + have h : (thetaBelowCell11012211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012211 h +theorem e24KC2ThetaBelowLeaf11012212 : + adaptiveCoverCheck 10 thetaBelowCell11012212 = true := by + have h : (thetaBelowCell11012212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012212 h +theorem e24KC2ThetaBelowLeaf11012213 : + adaptiveCoverCheck 10 thetaBelowCell11012213 = true := by + have h : (thetaBelowCell11012213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012213 h +theorem e24KC2ThetaBelowLeaf1101222 : + adaptiveCoverCheck 11 (childHL (childHL (childHL thetaBelowCell1101))) = true := by + have h : ((childHL (childHL (childHL thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childHL thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf1101223 : + adaptiveCoverCheck 11 (childHH (childHL (childHL thetaBelowCell1101))) = true := by + have h : ((childHH (childHL (childHL thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childHL thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf11012300 : + adaptiveCoverCheck 10 thetaBelowCell11012300 = true := by + have h : (thetaBelowCell11012300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012300 h +theorem e24KC2ThetaBelowLeaf11012301 : + adaptiveCoverCheck 10 thetaBelowCell11012301 = true := by + have h : (thetaBelowCell11012301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012301 h +theorem e24KC2ThetaBelowLeaf11012302 : + adaptiveCoverCheck 10 thetaBelowCell11012302 = true := by + have h : (thetaBelowCell11012302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012302 h +theorem e24KC2ThetaBelowLeaf11012303 : + adaptiveCoverCheck 10 thetaBelowCell11012303 = true := by + have h : (thetaBelowCell11012303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012303 h +theorem e24KC2ThetaBelowLeaf11012310 : + adaptiveCoverCheck 10 thetaBelowCell11012310 = true := by + have h : (thetaBelowCell11012310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012310 h +theorem e24KC2ThetaBelowLeaf11012311 : + adaptiveCoverCheck 10 thetaBelowCell11012311 = true := by + have h : (thetaBelowCell11012311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012311 h +theorem e24KC2ThetaBelowLeaf11012312 : + adaptiveCoverCheck 10 thetaBelowCell11012312 = true := by + have h : (thetaBelowCell11012312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012312 h +theorem e24KC2ThetaBelowLeaf11012313 : + adaptiveCoverCheck 10 thetaBelowCell11012313 = true := by + have h : (thetaBelowCell11012313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11012313 h +theorem e24KC2ThetaBelowLeaf1101232 : + adaptiveCoverCheck 11 (childHL (childHH (childHL thetaBelowCell1101))) = true := by + have h : ((childHL (childHH (childHL thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childHL thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf1101233 : + adaptiveCoverCheck 11 (childHH (childHH (childHL thetaBelowCell1101))) = true := by + have h : ((childHH (childHH (childHL thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childHL thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf11013000 : + adaptiveCoverCheck 10 thetaBelowCell11013000 = true := by + have h : (thetaBelowCell11013000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013000 h +theorem e24KC2ThetaBelowLeaf11013001 : + adaptiveCoverCheck 10 thetaBelowCell11013001 = true := by + have h : (thetaBelowCell11013001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013001 h +theorem e24KC2ThetaBelowLeaf11013002 : + adaptiveCoverCheck 10 thetaBelowCell11013002 = true := by + have h : (thetaBelowCell11013002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013002 h +theorem e24KC2ThetaBelowLeaf11013003 : + adaptiveCoverCheck 10 thetaBelowCell11013003 = true := by + have h : (thetaBelowCell11013003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013003 h +theorem e24KC2ThetaBelowLeaf11013010 : + adaptiveCoverCheck 10 thetaBelowCell11013010 = true := by + have h : (thetaBelowCell11013010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013010 h +theorem e24KC2ThetaBelowLeaf11013011 : + adaptiveCoverCheck 10 thetaBelowCell11013011 = true := by + have h : (thetaBelowCell11013011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013011 h +theorem e24KC2ThetaBelowLeaf11013012 : + adaptiveCoverCheck 10 thetaBelowCell11013012 = true := by + have h : (thetaBelowCell11013012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013012 h +theorem e24KC2ThetaBelowLeaf110130130 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013013) = true := by + have h : ((childLL thetaBelowCell11013013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013013) h +theorem e24KC2ThetaBelowLeaf110130131 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013013) = true := by + have h : ((childLH thetaBelowCell11013013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013013) h +theorem e24KC2ThetaBelowLeaf110130132 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013013) = true := by + have h : ((childHL thetaBelowCell11013013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013013) h +theorem e24KC2ThetaBelowLeaf110130133 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013013) = true := by + have h : ((childHH thetaBelowCell11013013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013013) h +theorem e24KC2ThetaBelowLeaf11013020 : + adaptiveCoverCheck 10 thetaBelowCell11013020 = true := by + have h : (thetaBelowCell11013020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013020 h +theorem e24KC2ThetaBelowLeaf110130210 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013021) = true := by + have h : ((childLL thetaBelowCell11013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013021) h +theorem e24KC2ThetaBelowLeaf110130211 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013021) = true := by + have h : ((childLH thetaBelowCell11013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013021) h +theorem e24KC2ThetaBelowLeaf110130212 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013021) = true := by + have h : ((childHL thetaBelowCell11013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013021) h +theorem e24KC2ThetaBelowLeaf110130213 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013021) = true := by + have h : ((childHH thetaBelowCell11013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013021) h +theorem e24KC2ThetaBelowLeaf110130220 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013022) = true := by + have h : ((childLL thetaBelowCell11013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013022) h +theorem e24KC2ThetaBelowLeaf110130221 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013022) = true := by + have h : ((childLH thetaBelowCell11013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013022) h +theorem e24KC2ThetaBelowLeaf110130222 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013022) = true := by + have h : ((childHL thetaBelowCell11013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013022) h +theorem e24KC2ThetaBelowLeaf110130223 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013022) = true := by + have h : ((childHH thetaBelowCell11013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013022) h +theorem e24KC2ThetaBelowLeaf110130230 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013023) = true := by + have h : ((childLL thetaBelowCell11013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013023) h +theorem e24KC2ThetaBelowLeaf110130231 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013023) = true := by + have h : ((childLH thetaBelowCell11013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013023) h +theorem e24KC2ThetaBelowLeaf110130232 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013023) = true := by + have h : ((childHL thetaBelowCell11013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013023) h +theorem e24KC2ThetaBelowLeaf110130233 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013023) = true := by + have h : ((childHH thetaBelowCell11013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013023) h +theorem e24KC2ThetaBelowLeaf110130300 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013030) = true := by + have h : ((childLL thetaBelowCell11013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013030) h +theorem e24KC2ThetaBelowLeaf110130301 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013030) = true := by + have h : ((childLH thetaBelowCell11013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013030) h +theorem e24KC2ThetaBelowLeaf110130302 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013030) = true := by + have h : ((childHL thetaBelowCell11013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013030) h +theorem e24KC2ThetaBelowLeaf110130303 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013030) = true := by + have h : ((childHH thetaBelowCell11013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013030) h +theorem e24KC2ThetaBelowLeaf110130310 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013031) = true := by + have h : ((childLL thetaBelowCell11013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013031) h +theorem e24KC2ThetaBelowLeaf110130311 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013031) = true := by + have h : ((childLH thetaBelowCell11013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013031) h +theorem e24KC2ThetaBelowLeaf110130312 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013031) = true := by + have h : ((childHL thetaBelowCell11013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013031) h +theorem e24KC2ThetaBelowLeaf110130313 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013031) = true := by + have h : ((childHH thetaBelowCell11013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013031) h +theorem e24KC2ThetaBelowLeaf110130320 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013032) = true := by + have h : ((childLL thetaBelowCell11013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013032) h +theorem e24KC2ThetaBelowLeaf110130321 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013032) = true := by + have h : ((childLH thetaBelowCell11013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013032) h +theorem e24KC2ThetaBelowLeaf110130322 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013032) = true := by + have h : ((childHL thetaBelowCell11013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013032) h +theorem e24KC2ThetaBelowLeaf110130323 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013032) = true := by + have h : ((childHH thetaBelowCell11013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013032) h +theorem e24KC2ThetaBelowLeaf110130330 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013033) = true := by + have h : ((childLL thetaBelowCell11013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013033) h +theorem e24KC2ThetaBelowLeaf110130331 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013033) = true := by + have h : ((childLH thetaBelowCell11013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013033) h +theorem e24KC2ThetaBelowLeaf110130332 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013033) = true := by + have h : ((childHL thetaBelowCell11013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013033) h +theorem e24KC2ThetaBelowLeaf110130333 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013033) = true := by + have h : ((childHH thetaBelowCell11013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013033) h +theorem e24KC2ThetaBelowLeaf11013100 : + adaptiveCoverCheck 10 thetaBelowCell11013100 = true := by + have h : (thetaBelowCell11013100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013100 h +theorem e24KC2ThetaBelowLeaf11013101 : + adaptiveCoverCheck 10 thetaBelowCell11013101 = true := by + have h : (thetaBelowCell11013101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013101 h +theorem e24KC2ThetaBelowLeaf110131020 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013102) = true := by + have h : ((childLL thetaBelowCell11013102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013102) h +theorem e24KC2ThetaBelowLeaf110131021 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013102) = true := by + have h : ((childLH thetaBelowCell11013102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013102) h +theorem e24KC2ThetaBelowLeaf110131022 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013102) = true := by + have h : ((childHL thetaBelowCell11013102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013102) h +theorem e24KC2ThetaBelowLeaf110131023 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013102) = true := by + have h : ((childHH thetaBelowCell11013102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013102) h +theorem e24KC2ThetaBelowLeaf110131030 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013103) = true := by + have h : ((childLL thetaBelowCell11013103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013103) h +theorem e24KC2ThetaBelowLeaf110131031 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013103) = true := by + have h : ((childLH thetaBelowCell11013103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013103) h +theorem e24KC2ThetaBelowLeaf110131032 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013103) = true := by + have h : ((childHL thetaBelowCell11013103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013103) h +theorem e24KC2ThetaBelowLeaf110131033 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013103) = true := by + have h : ((childHH thetaBelowCell11013103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013103) h +theorem e24KC2ThetaBelowLeaf11013110 : + adaptiveCoverCheck 10 thetaBelowCell11013110 = true := by + have h : (thetaBelowCell11013110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013110 h +theorem e24KC2ThetaBelowLeaf11013111 : + adaptiveCoverCheck 10 thetaBelowCell11013111 = true := by + have h : (thetaBelowCell11013111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013111 h +theorem e24KC2ThetaBelowLeaf110131120 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013112) = true := by + have h : ((childLL thetaBelowCell11013112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013112) h +theorem e24KC2ThetaBelowLeaf110131121 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013112) = true := by + have h : ((childLH thetaBelowCell11013112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013112) h +theorem e24KC2ThetaBelowLeaf110131122 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013112) = true := by + have h : ((childHL thetaBelowCell11013112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013112) h +theorem e24KC2ThetaBelowLeaf110131123 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013112) = true := by + have h : ((childHH thetaBelowCell11013112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013112) h +theorem e24KC2ThetaBelowLeaf110131130 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013113) = true := by + have h : ((childLL thetaBelowCell11013113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013113) h +theorem e24KC2ThetaBelowLeaf110131131 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013113) = true := by + have h : ((childLH thetaBelowCell11013113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013113) h +theorem e24KC2ThetaBelowLeaf110131132 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013113) = true := by + have h : ((childHL thetaBelowCell11013113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013113) h +theorem e24KC2ThetaBelowLeaf110131133 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013113) = true := by + have h : ((childHH thetaBelowCell11013113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013113) h +theorem e24KC2ThetaBelowLeaf110131200 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013120) = true := by + have h : ((childLL thetaBelowCell11013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013120) h +theorem e24KC2ThetaBelowLeaf110131201 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013120) = true := by + have h : ((childLH thetaBelowCell11013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013120) h +theorem e24KC2ThetaBelowLeaf110131202 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013120) = true := by + have h : ((childHL thetaBelowCell11013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013120) h +theorem e24KC2ThetaBelowLeaf110131203 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013120) = true := by + have h : ((childHH thetaBelowCell11013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013120) h +theorem e24KC2ThetaBelowLeaf110131210 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013121) = true := by + have h : ((childLL thetaBelowCell11013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013121) h +theorem e24KC2ThetaBelowLeaf110131211 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013121) = true := by + have h : ((childLH thetaBelowCell11013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013121) h +theorem e24KC2ThetaBelowLeaf110131212 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013121) = true := by + have h : ((childHL thetaBelowCell11013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013121) h +theorem e24KC2ThetaBelowLeaf110131213 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013121) = true := by + have h : ((childHH thetaBelowCell11013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013121) h +theorem e24KC2ThetaBelowLeaf110131220 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013122) = true := by + have h : ((childLL thetaBelowCell11013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013122) h +theorem e24KC2ThetaBelowLeaf110131221 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013122) = true := by + have h : ((childLH thetaBelowCell11013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013122) h +theorem e24KC2ThetaBelowLeaf110131222 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013122) = true := by + have h : ((childHL thetaBelowCell11013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013122) h +theorem e24KC2ThetaBelowLeaf110131223 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013122) = true := by + have h : ((childHH thetaBelowCell11013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013122) h +theorem e24KC2ThetaBelowLeaf110131230 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013123) = true := by + have h : ((childLL thetaBelowCell11013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013123) h +theorem e24KC2ThetaBelowLeaf110131231 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013123) = true := by + have h : ((childLH thetaBelowCell11013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013123) h +theorem e24KC2ThetaBelowLeaf110131232 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013123) = true := by + have h : ((childHL thetaBelowCell11013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013123) h +theorem e24KC2ThetaBelowLeaf110131233 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013123) = true := by + have h : ((childHH thetaBelowCell11013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013123) h +theorem e24KC2ThetaBelowLeaf110131300 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013130) = true := by + have h : ((childLL thetaBelowCell11013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013130) h +theorem e24KC2ThetaBelowLeaf110131301 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013130) = true := by + have h : ((childLH thetaBelowCell11013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013130) h +theorem e24KC2ThetaBelowLeaf110131302 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013130) = true := by + have h : ((childHL thetaBelowCell11013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013130) h +theorem e24KC2ThetaBelowLeaf110131303 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013130) = true := by + have h : ((childHH thetaBelowCell11013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013130) h +theorem e24KC2ThetaBelowLeaf110131310 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013131) = true := by + have h : ((childLL thetaBelowCell11013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013131) h +theorem e24KC2ThetaBelowLeaf110131311 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013131) = true := by + have h : ((childLH thetaBelowCell11013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013131) h +theorem e24KC2ThetaBelowLeaf110131312 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013131) = true := by + have h : ((childHL thetaBelowCell11013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013131) h +theorem e24KC2ThetaBelowLeaf110131313 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013131) = true := by + have h : ((childHH thetaBelowCell11013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013131) h +theorem e24KC2ThetaBelowLeaf110131320 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013132) = true := by + have h : ((childLL thetaBelowCell11013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013132) h +theorem e24KC2ThetaBelowLeaf110131321 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013132) = true := by + have h : ((childLH thetaBelowCell11013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013132) h +theorem e24KC2ThetaBelowLeaf110131322 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013132) = true := by + have h : ((childHL thetaBelowCell11013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013132) h +theorem e24KC2ThetaBelowLeaf110131323 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013132) = true := by + have h : ((childHH thetaBelowCell11013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013132) h +theorem e24KC2ThetaBelowLeaf110131330 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11013133) = true := by + have h : ((childLL thetaBelowCell11013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11013133) h +theorem e24KC2ThetaBelowLeaf110131331 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11013133) = true := by + have h : ((childLH thetaBelowCell11013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11013133) h +theorem e24KC2ThetaBelowLeaf110131332 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11013133) = true := by + have h : ((childHL thetaBelowCell11013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11013133) h +theorem e24KC2ThetaBelowLeaf110131333 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11013133) = true := by + have h : ((childHH thetaBelowCell11013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11013133) h +theorem e24KC2ThetaBelowLeaf11013200 : + adaptiveCoverCheck 10 thetaBelowCell11013200 = true := by + have h : (thetaBelowCell11013200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013200 h +theorem e24KC2ThetaBelowLeaf11013201 : + adaptiveCoverCheck 10 thetaBelowCell11013201 = true := by + have h : (thetaBelowCell11013201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013201 h +theorem e24KC2ThetaBelowLeaf11013202 : + adaptiveCoverCheck 10 thetaBelowCell11013202 = true := by + have h : (thetaBelowCell11013202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013202 h +theorem e24KC2ThetaBelowLeaf11013203 : + adaptiveCoverCheck 10 thetaBelowCell11013203 = true := by + have h : (thetaBelowCell11013203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013203 h +theorem e24KC2ThetaBelowLeaf11013210 : + adaptiveCoverCheck 10 thetaBelowCell11013210 = true := by + have h : (thetaBelowCell11013210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013210 h +theorem e24KC2ThetaBelowLeaf11013211 : + adaptiveCoverCheck 10 thetaBelowCell11013211 = true := by + have h : (thetaBelowCell11013211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013211 h +theorem e24KC2ThetaBelowLeaf11013212 : + adaptiveCoverCheck 10 thetaBelowCell11013212 = true := by + have h : (thetaBelowCell11013212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013212 h +theorem e24KC2ThetaBelowLeaf11013213 : + adaptiveCoverCheck 10 thetaBelowCell11013213 = true := by + have h : (thetaBelowCell11013213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013213 h +theorem e24KC2ThetaBelowLeaf1101322 : + adaptiveCoverCheck 11 (childHL (childHL (childHH thetaBelowCell1101))) = true := by + have h : ((childHL (childHL (childHH thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childHH thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf1101323 : + adaptiveCoverCheck 11 (childHH (childHL (childHH thetaBelowCell1101))) = true := by + have h : ((childHH (childHL (childHH thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childHH thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf11013300 : + adaptiveCoverCheck 10 thetaBelowCell11013300 = true := by + have h : (thetaBelowCell11013300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013300 h +theorem e24KC2ThetaBelowLeaf11013301 : + adaptiveCoverCheck 10 thetaBelowCell11013301 = true := by + have h : (thetaBelowCell11013301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013301 h +theorem e24KC2ThetaBelowLeaf11013302 : + adaptiveCoverCheck 10 thetaBelowCell11013302 = true := by + have h : (thetaBelowCell11013302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013302 h +theorem e24KC2ThetaBelowLeaf11013303 : + adaptiveCoverCheck 10 thetaBelowCell11013303 = true := by + have h : (thetaBelowCell11013303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013303 h +theorem e24KC2ThetaBelowLeaf11013310 : + adaptiveCoverCheck 10 thetaBelowCell11013310 = true := by + have h : (thetaBelowCell11013310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013310 h +theorem e24KC2ThetaBelowLeaf11013311 : + adaptiveCoverCheck 10 thetaBelowCell11013311 = true := by + have h : (thetaBelowCell11013311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013311 h +theorem e24KC2ThetaBelowLeaf11013312 : + adaptiveCoverCheck 10 thetaBelowCell11013312 = true := by + have h : (thetaBelowCell11013312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013312 h +theorem e24KC2ThetaBelowLeaf11013313 : + adaptiveCoverCheck 10 thetaBelowCell11013313 = true := by + have h : (thetaBelowCell11013313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11013313 h +theorem e24KC2ThetaBelowLeaf1101332 : + adaptiveCoverCheck 11 (childHL (childHH (childHH thetaBelowCell1101))) = true := by + have h : ((childHL (childHH (childHH thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childHH thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf1101333 : + adaptiveCoverCheck 11 (childHH (childHH (childHH thetaBelowCell1101))) = true := by + have h : ((childHH (childHH (childHH thetaBelowCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childHH thetaBelowCell1101))) h +theorem e24KC2ThetaBelowLeaf110200 : + adaptiveCoverCheck 12 (childLL (childLL thetaBelowCell1102)) = true := by + have h : ((childLL (childLL thetaBelowCell1102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL thetaBelowCell1102)) h +theorem e24KC2ThetaBelowLeaf110201 : + adaptiveCoverCheck 12 (childLH (childLL thetaBelowCell1102)) = true := by + have h : ((childLH (childLL thetaBelowCell1102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL thetaBelowCell1102)) h +theorem e24KC2ThetaBelowLeaf110202 : + adaptiveCoverCheck 12 (childHL (childLL thetaBelowCell1102)) = true := by + have h : ((childHL (childLL thetaBelowCell1102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL thetaBelowCell1102)) h +theorem e24KC2ThetaBelowLeaf110203 : + adaptiveCoverCheck 12 (childHH (childLL thetaBelowCell1102)) = true := by + have h : ((childHH (childLL thetaBelowCell1102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL thetaBelowCell1102)) h +theorem e24KC2ThetaBelowLeaf110210 : + adaptiveCoverCheck 12 (childLL (childLH thetaBelowCell1102)) = true := by + have h : ((childLL (childLH thetaBelowCell1102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH thetaBelowCell1102)) h +theorem e24KC2ThetaBelowLeaf110211 : + adaptiveCoverCheck 12 (childLH (childLH thetaBelowCell1102)) = true := by + have h : ((childLH (childLH thetaBelowCell1102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH thetaBelowCell1102)) h +theorem e24KC2ThetaBelowLeaf110212 : + adaptiveCoverCheck 12 (childHL (childLH thetaBelowCell1102)) = true := by + have h : ((childHL (childLH thetaBelowCell1102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH thetaBelowCell1102)) h +theorem e24KC2ThetaBelowLeaf110213 : + adaptiveCoverCheck 12 (childHH (childLH thetaBelowCell1102)) = true := by + have h : ((childHH (childLH thetaBelowCell1102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH thetaBelowCell1102)) h +theorem e24KC2ThetaBelowLeaf11022 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1102) = true := by + have h : ((childHL thetaBelowCell1102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell1102) h +theorem e24KC2ThetaBelowLeaf11023 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1102) = true := by + have h : ((childHH thetaBelowCell1102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell1102) h +theorem e24KC2ThetaBelowLeaf110300 : + adaptiveCoverCheck 12 (childLL (childLL thetaBelowCell1103)) = true := by + have h : ((childLL (childLL thetaBelowCell1103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL thetaBelowCell1103)) h +theorem e24KC2ThetaBelowLeaf110301 : + adaptiveCoverCheck 12 (childLH (childLL thetaBelowCell1103)) = true := by + have h : ((childLH (childLL thetaBelowCell1103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL thetaBelowCell1103)) h +theorem e24KC2ThetaBelowLeaf110302 : + adaptiveCoverCheck 12 (childHL (childLL thetaBelowCell1103)) = true := by + have h : ((childHL (childLL thetaBelowCell1103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL thetaBelowCell1103)) h +theorem e24KC2ThetaBelowLeaf110303 : + adaptiveCoverCheck 12 (childHH (childLL thetaBelowCell1103)) = true := by + have h : ((childHH (childLL thetaBelowCell1103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL thetaBelowCell1103)) h +theorem e24KC2ThetaBelowLeaf110310 : + adaptiveCoverCheck 12 (childLL (childLH thetaBelowCell1103)) = true := by + have h : ((childLL (childLH thetaBelowCell1103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH thetaBelowCell1103)) h +theorem e24KC2ThetaBelowLeaf110311 : + adaptiveCoverCheck 12 (childLH (childLH thetaBelowCell1103)) = true := by + have h : ((childLH (childLH thetaBelowCell1103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH thetaBelowCell1103)) h +theorem e24KC2ThetaBelowLeaf110312 : + adaptiveCoverCheck 12 (childHL (childLH thetaBelowCell1103)) = true := by + have h : ((childHL (childLH thetaBelowCell1103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH thetaBelowCell1103)) h +theorem e24KC2ThetaBelowLeaf110313 : + adaptiveCoverCheck 12 (childHH (childLH thetaBelowCell1103)) = true := by + have h : ((childHH (childLH thetaBelowCell1103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH thetaBelowCell1103)) h +theorem e24KC2ThetaBelowLeaf11032 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1103) = true := by + have h : ((childHL thetaBelowCell1103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell1103) h +theorem e24KC2ThetaBelowLeaf11033 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1103) = true := by + have h : ((childHH thetaBelowCell1103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell1103) h +theorem e24KC2ThetaBelowLeaf111000 : + adaptiveCoverCheck 12 (childLL (childLL thetaBelowCell1110)) = true := by + have h : ((childLL (childLL thetaBelowCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL thetaBelowCell1110)) h +theorem e24KC2ThetaBelowLeaf111001 : + adaptiveCoverCheck 12 (childLH (childLL thetaBelowCell1110)) = true := by + have h : ((childLH (childLL thetaBelowCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL thetaBelowCell1110)) h +theorem e24KC2ThetaBelowLeaf1110020 : + adaptiveCoverCheck 11 (childLL (childHL (childLL thetaBelowCell1110))) = true := by + have h : ((childLL (childHL (childLL thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHL (childLL thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf1110021 : + adaptiveCoverCheck 11 (childLH (childHL (childLL thetaBelowCell1110))) = true := by + have h : ((childLH (childHL (childLL thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHL (childLL thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf1110022 : + adaptiveCoverCheck 11 (childHL (childHL (childLL thetaBelowCell1110))) = true := by + have h : ((childHL (childHL (childLL thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childLL thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf1110023 : + adaptiveCoverCheck 11 (childHH (childHL (childLL thetaBelowCell1110))) = true := by + have h : ((childHH (childHL (childLL thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childLL thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf1110030 : + adaptiveCoverCheck 11 (childLL (childHH (childLL thetaBelowCell1110))) = true := by + have h : ((childLL (childHH (childLL thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHH (childLL thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf1110031 : + adaptiveCoverCheck 11 (childLH (childHH (childLL thetaBelowCell1110))) = true := by + have h : ((childLH (childHH (childLL thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHH (childLL thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf1110032 : + adaptiveCoverCheck 11 (childHL (childHH (childLL thetaBelowCell1110))) = true := by + have h : ((childHL (childHH (childLL thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childLL thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf1110033 : + adaptiveCoverCheck 11 (childHH (childHH (childLL thetaBelowCell1110))) = true := by + have h : ((childHH (childHH (childLL thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childLL thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf111010 : + adaptiveCoverCheck 12 (childLL (childLH thetaBelowCell1110)) = true := by + have h : ((childLL (childLH thetaBelowCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH thetaBelowCell1110)) h +theorem e24KC2ThetaBelowLeaf111011 : + adaptiveCoverCheck 12 (childLH (childLH thetaBelowCell1110)) = true := by + have h : ((childLH (childLH thetaBelowCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH thetaBelowCell1110)) h +theorem e24KC2ThetaBelowLeaf1110120 : + adaptiveCoverCheck 11 (childLL (childHL (childLH thetaBelowCell1110))) = true := by + have h : ((childLL (childHL (childLH thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHL (childLH thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf1110121 : + adaptiveCoverCheck 11 (childLH (childHL (childLH thetaBelowCell1110))) = true := by + have h : ((childLH (childHL (childLH thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHL (childLH thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf1110122 : + adaptiveCoverCheck 11 (childHL (childHL (childLH thetaBelowCell1110))) = true := by + have h : ((childHL (childHL (childLH thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childLH thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf1110123 : + adaptiveCoverCheck 11 (childHH (childHL (childLH thetaBelowCell1110))) = true := by + have h : ((childHH (childHL (childLH thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childLH thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf1110130 : + adaptiveCoverCheck 11 (childLL (childHH (childLH thetaBelowCell1110))) = true := by + have h : ((childLL (childHH (childLH thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHH (childLH thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf1110131 : + adaptiveCoverCheck 11 (childLH (childHH (childLH thetaBelowCell1110))) = true := by + have h : ((childLH (childHH (childLH thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHH (childLH thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf1110132 : + adaptiveCoverCheck 11 (childHL (childHH (childLH thetaBelowCell1110))) = true := by + have h : ((childHL (childHH (childLH thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childLH thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf1110133 : + adaptiveCoverCheck 11 (childHH (childHH (childLH thetaBelowCell1110))) = true := by + have h : ((childHH (childHH (childLH thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childLH thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf11102000 : + adaptiveCoverCheck 10 thetaBelowCell11102000 = true := by + have h : (thetaBelowCell11102000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102000 h +theorem e24KC2ThetaBelowLeaf11102001 : + adaptiveCoverCheck 10 thetaBelowCell11102001 = true := by + have h : (thetaBelowCell11102001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102001 h +theorem e24KC2ThetaBelowLeaf111020020 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102002) = true := by + have h : ((childLL thetaBelowCell11102002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102002) h +theorem e24KC2ThetaBelowLeaf111020021 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102002) = true := by + have h : ((childLH thetaBelowCell11102002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102002) h +theorem e24KC2ThetaBelowLeaf111020022 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102002) = true := by + have h : ((childHL thetaBelowCell11102002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102002) h +theorem e24KC2ThetaBelowLeaf111020023 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102002) = true := by + have h : ((childHH thetaBelowCell11102002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102002) h +theorem e24KC2ThetaBelowLeaf111020030 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102003) = true := by + have h : ((childLL thetaBelowCell11102003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102003) h +theorem e24KC2ThetaBelowLeaf111020031 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102003) = true := by + have h : ((childLH thetaBelowCell11102003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102003) h +theorem e24KC2ThetaBelowLeaf111020032 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102003) = true := by + have h : ((childHL thetaBelowCell11102003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102003) h +theorem e24KC2ThetaBelowLeaf111020033 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102003) = true := by + have h : ((childHH thetaBelowCell11102003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102003) h +theorem e24KC2ThetaBelowLeaf11102010 : + adaptiveCoverCheck 10 thetaBelowCell11102010 = true := by + have h : (thetaBelowCell11102010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102010 h +theorem e24KC2ThetaBelowLeaf11102011 : + adaptiveCoverCheck 10 thetaBelowCell11102011 = true := by + have h : (thetaBelowCell11102011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102011 h +theorem e24KC2ThetaBelowLeaf111020120 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102012) = true := by + have h : ((childLL thetaBelowCell11102012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102012) h +theorem e24KC2ThetaBelowLeaf111020121 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102012) = true := by + have h : ((childLH thetaBelowCell11102012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102012) h +theorem e24KC2ThetaBelowLeaf111020122 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102012) = true := by + have h : ((childHL thetaBelowCell11102012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102012) h +theorem e24KC2ThetaBelowLeaf111020123 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102012) = true := by + have h : ((childHH thetaBelowCell11102012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102012) h +theorem e24KC2ThetaBelowLeaf111020130 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102013) = true := by + have h : ((childLL thetaBelowCell11102013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102013) h +theorem e24KC2ThetaBelowLeaf111020131 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102013) = true := by + have h : ((childLH thetaBelowCell11102013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102013) h +theorem e24KC2ThetaBelowLeaf111020132 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102013) = true := by + have h : ((childHL thetaBelowCell11102013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102013) h +theorem e24KC2ThetaBelowLeaf111020133 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102013) = true := by + have h : ((childHH thetaBelowCell11102013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102013) h +theorem e24KC2ThetaBelowLeaf111020200 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102020) = true := by + have h : ((childLL thetaBelowCell11102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102020) h +theorem e24KC2ThetaBelowLeaf111020201 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102020) = true := by + have h : ((childLH thetaBelowCell11102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102020) h +theorem e24KC2ThetaBelowLeaf111020202 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102020) = true := by + have h : ((childHL thetaBelowCell11102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102020) h +theorem e24KC2ThetaBelowLeaf111020203 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102020) = true := by + have h : ((childHH thetaBelowCell11102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102020) h +theorem e24KC2ThetaBelowLeaf111020210 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102021) = true := by + have h : ((childLL thetaBelowCell11102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102021) h +theorem e24KC2ThetaBelowLeaf111020211 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102021) = true := by + have h : ((childLH thetaBelowCell11102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102021) h +theorem e24KC2ThetaBelowLeaf111020212 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102021) = true := by + have h : ((childHL thetaBelowCell11102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102021) h +theorem e24KC2ThetaBelowLeaf111020213 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102021) = true := by + have h : ((childHH thetaBelowCell11102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102021) h +theorem e24KC2ThetaBelowLeaf111020220 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102022) = true := by + have h : ((childLL thetaBelowCell11102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102022) h +theorem e24KC2ThetaBelowLeaf111020221 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102022) = true := by + have h : ((childLH thetaBelowCell11102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102022) h +theorem e24KC2ThetaBelowLeaf111020222 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102022) = true := by + have h : ((childHL thetaBelowCell11102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102022) h +theorem e24KC2ThetaBelowLeaf111020223 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102022) = true := by + have h : ((childHH thetaBelowCell11102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102022) h +theorem e24KC2ThetaBelowLeaf111020230 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102023) = true := by + have h : ((childLL thetaBelowCell11102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102023) h +theorem e24KC2ThetaBelowLeaf111020231 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102023) = true := by + have h : ((childLH thetaBelowCell11102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102023) h +theorem e24KC2ThetaBelowLeaf111020232 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102023) = true := by + have h : ((childHL thetaBelowCell11102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102023) h +theorem e24KC2ThetaBelowLeaf111020233 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102023) = true := by + have h : ((childHH thetaBelowCell11102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102023) h +theorem e24KC2ThetaBelowLeaf111020300 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102030) = true := by + have h : ((childLL thetaBelowCell11102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102030) h +theorem e24KC2ThetaBelowLeaf111020301 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102030) = true := by + have h : ((childLH thetaBelowCell11102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102030) h +theorem e24KC2ThetaBelowLeaf111020302 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102030) = true := by + have h : ((childHL thetaBelowCell11102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102030) h +theorem e24KC2ThetaBelowLeaf111020303 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102030) = true := by + have h : ((childHH thetaBelowCell11102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102030) h +theorem e24KC2ThetaBelowLeaf111020310 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102031) = true := by + have h : ((childLL thetaBelowCell11102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102031) h +theorem e24KC2ThetaBelowLeaf111020311 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102031) = true := by + have h : ((childLH thetaBelowCell11102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102031) h +theorem e24KC2ThetaBelowLeaf111020312 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102031) = true := by + have h : ((childHL thetaBelowCell11102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102031) h +theorem e24KC2ThetaBelowLeaf111020313 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102031) = true := by + have h : ((childHH thetaBelowCell11102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102031) h +theorem e24KC2ThetaBelowLeaf111020320 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102032) = true := by + have h : ((childLL thetaBelowCell11102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102032) h +theorem e24KC2ThetaBelowLeaf111020321 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102032) = true := by + have h : ((childLH thetaBelowCell11102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102032) h +theorem e24KC2ThetaBelowLeaf111020322 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102032) = true := by + have h : ((childHL thetaBelowCell11102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102032) h +theorem e24KC2ThetaBelowLeaf111020323 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102032) = true := by + have h : ((childHH thetaBelowCell11102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102032) h +theorem e24KC2ThetaBelowLeaf111020330 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102033) = true := by + have h : ((childLL thetaBelowCell11102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102033) h +theorem e24KC2ThetaBelowLeaf111020331 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102033) = true := by + have h : ((childLH thetaBelowCell11102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102033) h +theorem e24KC2ThetaBelowLeaf111020332 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102033) = true := by + have h : ((childHL thetaBelowCell11102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102033) h +theorem e24KC2ThetaBelowLeaf111020333 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102033) = true := by + have h : ((childHH thetaBelowCell11102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102033) h +theorem e24KC2ThetaBelowLeaf11102100 : + adaptiveCoverCheck 10 thetaBelowCell11102100 = true := by + have h : (thetaBelowCell11102100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102100 h +theorem e24KC2ThetaBelowLeaf11102101 : + adaptiveCoverCheck 10 thetaBelowCell11102101 = true := by + have h : (thetaBelowCell11102101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102101 h +theorem e24KC2ThetaBelowLeaf11102102 : + adaptiveCoverCheck 10 thetaBelowCell11102102 = true := by + have h : (thetaBelowCell11102102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102102 h +theorem e24KC2ThetaBelowLeaf11102103 : + adaptiveCoverCheck 10 thetaBelowCell11102103 = true := by + have h : (thetaBelowCell11102103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102103 h +theorem e24KC2ThetaBelowLeaf11102110 : + adaptiveCoverCheck 10 thetaBelowCell11102110 = true := by + have h : (thetaBelowCell11102110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102110 h +theorem e24KC2ThetaBelowLeaf11102111 : + adaptiveCoverCheck 10 thetaBelowCell11102111 = true := by + have h : (thetaBelowCell11102111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102111 h +theorem e24KC2ThetaBelowLeaf11102112 : + adaptiveCoverCheck 10 thetaBelowCell11102112 = true := by + have h : (thetaBelowCell11102112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102112 h +theorem e24KC2ThetaBelowLeaf11102113 : + adaptiveCoverCheck 10 thetaBelowCell11102113 = true := by + have h : (thetaBelowCell11102113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102113 h +theorem e24KC2ThetaBelowLeaf111021200 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102120) = true := by + have h : ((childLL thetaBelowCell11102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102120) h +theorem e24KC2ThetaBelowLeaf111021201 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102120) = true := by + have h : ((childLH thetaBelowCell11102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102120) h +theorem e24KC2ThetaBelowLeaf111021202 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102120) = true := by + have h : ((childHL thetaBelowCell11102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102120) h +theorem e24KC2ThetaBelowLeaf111021203 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102120) = true := by + have h : ((childHH thetaBelowCell11102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102120) h +theorem e24KC2ThetaBelowLeaf111021210 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102121) = true := by + have h : ((childLL thetaBelowCell11102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102121) h +theorem e24KC2ThetaBelowLeaf111021211 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102121) = true := by + have h : ((childLH thetaBelowCell11102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102121) h +theorem e24KC2ThetaBelowLeaf111021212 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102121) = true := by + have h : ((childHL thetaBelowCell11102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102121) h +theorem e24KC2ThetaBelowLeaf111021213 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102121) = true := by + have h : ((childHH thetaBelowCell11102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102121) h +theorem e24KC2ThetaBelowLeaf111021220 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102122) = true := by + have h : ((childLL thetaBelowCell11102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102122) h +theorem e24KC2ThetaBelowLeaf111021221 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102122) = true := by + have h : ((childLH thetaBelowCell11102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102122) h +theorem e24KC2ThetaBelowLeaf111021222 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102122) = true := by + have h : ((childHL thetaBelowCell11102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102122) h +theorem e24KC2ThetaBelowLeaf111021223 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102122) = true := by + have h : ((childHH thetaBelowCell11102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102122) h +theorem e24KC2ThetaBelowLeaf111021230 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102123) = true := by + have h : ((childLL thetaBelowCell11102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102123) h +theorem e24KC2ThetaBelowLeaf111021231 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102123) = true := by + have h : ((childLH thetaBelowCell11102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102123) h +theorem e24KC2ThetaBelowLeaf111021232 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102123) = true := by + have h : ((childHL thetaBelowCell11102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102123) h +theorem e24KC2ThetaBelowLeaf111021233 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102123) = true := by + have h : ((childHH thetaBelowCell11102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102123) h +theorem e24KC2ThetaBelowLeaf111021300 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102130) = true := by + have h : ((childLL thetaBelowCell11102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102130) h +theorem e24KC2ThetaBelowLeaf111021301 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102130) = true := by + have h : ((childLH thetaBelowCell11102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102130) h +theorem e24KC2ThetaBelowLeaf111021302 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102130) = true := by + have h : ((childHL thetaBelowCell11102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102130) h +theorem e24KC2ThetaBelowLeaf111021303 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102130) = true := by + have h : ((childHH thetaBelowCell11102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102130) h +theorem e24KC2ThetaBelowLeaf111021310 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102131) = true := by + have h : ((childLL thetaBelowCell11102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102131) h +theorem e24KC2ThetaBelowLeaf111021311 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102131) = true := by + have h : ((childLH thetaBelowCell11102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102131) h +theorem e24KC2ThetaBelowLeaf111021312 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102131) = true := by + have h : ((childHL thetaBelowCell11102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102131) h +theorem e24KC2ThetaBelowLeaf111021313 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102131) = true := by + have h : ((childHH thetaBelowCell11102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102131) h +theorem e24KC2ThetaBelowLeaf111021320 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102132) = true := by + have h : ((childLL thetaBelowCell11102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102132) h +theorem e24KC2ThetaBelowLeaf111021321 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102132) = true := by + have h : ((childLH thetaBelowCell11102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102132) h +theorem e24KC2ThetaBelowLeaf111021322 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102132) = true := by + have h : ((childHL thetaBelowCell11102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102132) h +theorem e24KC2ThetaBelowLeaf111021323 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102132) = true := by + have h : ((childHH thetaBelowCell11102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102132) h +theorem e24KC2ThetaBelowLeaf111021330 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102133) = true := by + have h : ((childLL thetaBelowCell11102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102133) h +theorem e24KC2ThetaBelowLeaf111021331 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102133) = true := by + have h : ((childLH thetaBelowCell11102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102133) h +theorem e24KC2ThetaBelowLeaf111021332 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102133) = true := by + have h : ((childHL thetaBelowCell11102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102133) h +theorem e24KC2ThetaBelowLeaf111021333 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102133) = true := by + have h : ((childHH thetaBelowCell11102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102133) h +theorem e24KC2ThetaBelowLeaf111022000 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102200) = true := by + have h : ((childLL thetaBelowCell11102200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102200) h +theorem e24KC2ThetaBelowLeaf111022001 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102200) = true := by + have h : ((childLH thetaBelowCell11102200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102200) h +theorem e24KC2ThetaBelowLeaf111022002 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102200) = true := by + have h : ((childHL thetaBelowCell11102200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102200) h +theorem e24KC2ThetaBelowLeaf111022003 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102200) = true := by + have h : ((childHH thetaBelowCell11102200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102200) h +theorem e24KC2ThetaBelowLeaf111022010 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102201) = true := by + have h : ((childLL thetaBelowCell11102201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102201) h +theorem e24KC2ThetaBelowLeaf111022011 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102201) = true := by + have h : ((childLH thetaBelowCell11102201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102201) h +theorem e24KC2ThetaBelowLeaf111022012 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102201) = true := by + have h : ((childHL thetaBelowCell11102201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102201) h +theorem e24KC2ThetaBelowLeaf111022013 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102201) = true := by + have h : ((childHH thetaBelowCell11102201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102201) h +theorem e24KC2ThetaBelowLeaf11102202 : + adaptiveCoverCheck 10 thetaBelowCell11102202 = true := by + have h : (thetaBelowCell11102202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102202 h +theorem e24KC2ThetaBelowLeaf11102203 : + adaptiveCoverCheck 10 thetaBelowCell11102203 = true := by + have h : (thetaBelowCell11102203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102203 h +theorem e24KC2ThetaBelowLeaf111022100 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102210) = true := by + have h : ((childLL thetaBelowCell11102210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102210) h +theorem e24KC2ThetaBelowLeaf111022101 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102210) = true := by + have h : ((childLH thetaBelowCell11102210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102210) h +theorem e24KC2ThetaBelowLeaf111022102 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102210) = true := by + have h : ((childHL thetaBelowCell11102210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102210) h +theorem e24KC2ThetaBelowLeaf111022103 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102210) = true := by + have h : ((childHH thetaBelowCell11102210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102210) h +theorem e24KC2ThetaBelowLeaf111022110 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102211) = true := by + have h : ((childLL thetaBelowCell11102211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102211) h +theorem e24KC2ThetaBelowLeaf111022111 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102211) = true := by + have h : ((childLH thetaBelowCell11102211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102211) h +theorem e24KC2ThetaBelowLeaf111022112 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102211) = true := by + have h : ((childHL thetaBelowCell11102211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102211) h +theorem e24KC2ThetaBelowLeaf111022113 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102211) = true := by + have h : ((childHH thetaBelowCell11102211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102211) h +theorem e24KC2ThetaBelowLeaf11102212 : + adaptiveCoverCheck 10 thetaBelowCell11102212 = true := by + have h : (thetaBelowCell11102212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102212 h +theorem e24KC2ThetaBelowLeaf11102213 : + adaptiveCoverCheck 10 thetaBelowCell11102213 = true := by + have h : (thetaBelowCell11102213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102213 h +theorem e24KC2ThetaBelowLeaf1110222 : + adaptiveCoverCheck 11 (childHL (childHL (childHL thetaBelowCell1110))) = true := by + have h : ((childHL (childHL (childHL thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childHL thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf1110223 : + adaptiveCoverCheck 11 (childHH (childHL (childHL thetaBelowCell1110))) = true := by + have h : ((childHH (childHL (childHL thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childHL thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf111023000 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102300) = true := by + have h : ((childLL thetaBelowCell11102300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102300) h +theorem e24KC2ThetaBelowLeaf111023001 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102300) = true := by + have h : ((childLH thetaBelowCell11102300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102300) h +theorem e24KC2ThetaBelowLeaf111023002 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102300) = true := by + have h : ((childHL thetaBelowCell11102300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102300) h +theorem e24KC2ThetaBelowLeaf111023003 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102300) = true := by + have h : ((childHH thetaBelowCell11102300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102300) h +theorem e24KC2ThetaBelowLeaf111023010 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102301) = true := by + have h : ((childLL thetaBelowCell11102301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102301) h +theorem e24KC2ThetaBelowLeaf111023011 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102301) = true := by + have h : ((childLH thetaBelowCell11102301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102301) h +theorem e24KC2ThetaBelowLeaf111023012 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102301) = true := by + have h : ((childHL thetaBelowCell11102301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102301) h +theorem e24KC2ThetaBelowLeaf111023013 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102301) = true := by + have h : ((childHH thetaBelowCell11102301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102301) h +theorem e24KC2ThetaBelowLeaf11102302 : + adaptiveCoverCheck 10 thetaBelowCell11102302 = true := by + have h : (thetaBelowCell11102302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102302 h +theorem e24KC2ThetaBelowLeaf11102303 : + adaptiveCoverCheck 10 thetaBelowCell11102303 = true := by + have h : (thetaBelowCell11102303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102303 h +theorem e24KC2ThetaBelowLeaf111023100 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102310) = true := by + have h : ((childLL thetaBelowCell11102310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102310) h +theorem e24KC2ThetaBelowLeaf111023101 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102310) = true := by + have h : ((childLH thetaBelowCell11102310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102310) h +theorem e24KC2ThetaBelowLeaf111023102 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102310) = true := by + have h : ((childHL thetaBelowCell11102310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102310) h +theorem e24KC2ThetaBelowLeaf111023103 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102310) = true := by + have h : ((childHH thetaBelowCell11102310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102310) h +theorem e24KC2ThetaBelowLeaf111023110 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11102311) = true := by + have h : ((childLL thetaBelowCell11102311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11102311) h +theorem e24KC2ThetaBelowLeaf111023111 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11102311) = true := by + have h : ((childLH thetaBelowCell11102311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11102311) h +theorem e24KC2ThetaBelowLeaf111023112 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11102311) = true := by + have h : ((childHL thetaBelowCell11102311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11102311) h +theorem e24KC2ThetaBelowLeaf111023113 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11102311) = true := by + have h : ((childHH thetaBelowCell11102311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11102311) h +theorem e24KC2ThetaBelowLeaf11102312 : + adaptiveCoverCheck 10 thetaBelowCell11102312 = true := by + have h : (thetaBelowCell11102312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102312 h +theorem e24KC2ThetaBelowLeaf11102313 : + adaptiveCoverCheck 10 thetaBelowCell11102313 = true := by + have h : (thetaBelowCell11102313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11102313 h +theorem e24KC2ThetaBelowLeaf1110232 : + adaptiveCoverCheck 11 (childHL (childHH (childHL thetaBelowCell1110))) = true := by + have h : ((childHL (childHH (childHL thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childHL thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf1110233 : + adaptiveCoverCheck 11 (childHH (childHH (childHL thetaBelowCell1110))) = true := by + have h : ((childHH (childHH (childHL thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childHL thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf11103000 : + adaptiveCoverCheck 10 thetaBelowCell11103000 = true := by + have h : (thetaBelowCell11103000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103000 h +theorem e24KC2ThetaBelowLeaf11103001 : + adaptiveCoverCheck 10 thetaBelowCell11103001 = true := by + have h : (thetaBelowCell11103001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103001 h +theorem e24KC2ThetaBelowLeaf11103002 : + adaptiveCoverCheck 10 thetaBelowCell11103002 = true := by + have h : (thetaBelowCell11103002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103002 h +theorem e24KC2ThetaBelowLeaf11103003 : + adaptiveCoverCheck 10 thetaBelowCell11103003 = true := by + have h : (thetaBelowCell11103003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103003 h +theorem e24KC2ThetaBelowLeaf11103010 : + adaptiveCoverCheck 10 thetaBelowCell11103010 = true := by + have h : (thetaBelowCell11103010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103010 h +theorem e24KC2ThetaBelowLeaf11103011 : + adaptiveCoverCheck 10 thetaBelowCell11103011 = true := by + have h : (thetaBelowCell11103011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103011 h +theorem e24KC2ThetaBelowLeaf11103012 : + adaptiveCoverCheck 10 thetaBelowCell11103012 = true := by + have h : (thetaBelowCell11103012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103012 h +theorem e24KC2ThetaBelowLeaf11103013 : + adaptiveCoverCheck 10 thetaBelowCell11103013 = true := by + have h : (thetaBelowCell11103013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103013 h +theorem e24KC2ThetaBelowLeaf111030200 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103020) = true := by + have h : ((childLL thetaBelowCell11103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11103020) h +theorem e24KC2ThetaBelowLeaf111030201 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103020) = true := by + have h : ((childLH thetaBelowCell11103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11103020) h +theorem e24KC2ThetaBelowLeaf111030202 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103020) = true := by + have h : ((childHL thetaBelowCell11103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11103020) h + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC5FrontierBatchF96LR00464`. +* `KernelOnly.PartE.E24KC5FrontierBatchF96R00465`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5c0c39e876 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5c0c39e876 + +open CertificateCells5c0c39e876 +namespace CoverCertificate446b5129d2 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate446b5129d2 + +theorem e24KC2PhiBelowLeaf33301 : + adaptiveCoverCheck 9 (childLH phiBelowCell3330) = true := by + exact CoverCertificate446b5129d2.checkedRoot +namespace CoverCertificate3d29d6c185 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3d29d6c185 + +theorem e24KC2PhiBelowLeaf33302 : + adaptiveCoverCheck 9 (childHL phiBelowCell3330) = true := by + exact CoverCertificate3d29d6c185.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa1414ae513 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa1414ae513 + +open CertificateCellsa1414ae513 +namespace CoverCertificate5443a01fd5 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5443a01fd5 + +theorem e24KC2PhiBelowLeaf33303 : + adaptiveCoverCheck 9 (childHH phiBelowCell3330) = true := by + exact CoverCertificate5443a01fd5.checkedRoot +namespace CoverCertificateef75f67166 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateef75f67166 + +theorem e24KC2PhiBelowLeaf33310 : + adaptiveCoverCheck 9 (childLL phiBelowCell3331) = true := by + exact CoverCertificateef75f67166.checkedRoot +namespace CoverCertificate77769ce963 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate77769ce963 + +theorem e24KC2PhiBelowLeaf33311 : + adaptiveCoverCheck 9 (childLH phiBelowCell3331) = true := by + exact CoverCertificate77769ce963.checkedRoot +namespace CoverCertificateaaf4f15552 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateaaf4f15552 + +theorem e24KC2PhiBelowLeaf33312 : + adaptiveCoverCheck 9 (childHL phiBelowCell3331) = true := by + exact CoverCertificateaaf4f15552.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle002.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle002.lean new file mode 100644 index 0000000000..c7fcc8a3ed --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle002.lean @@ -0,0 +1,12859 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch002`. +* `GerverSofa.KernelOnly.PartE.Certificates.Batch014`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CoverCertificate6cd78cf99c + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLL (childLH (childLH (childLL (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate6cd78cf99c + +namespace GerverSofa.PartE.CoverCertificate3b2bb200ff + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLH (childLH (childLH (childLL (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate3b2bb200ff + +namespace GerverSofa.PartE.CoverCertificate416e1e96e0 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLH (childLH (childLH (childLL (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate416e1e96e0 + +namespace GerverSofa.PartE.CoverCertificate2a65321173 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLH (childLH (childLH (childLL (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate2a65321173 + +namespace GerverSofa.PartE.CoverCertificatecc929b68fe + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLH (childLH (childLH (childLL (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatecc929b68fe + +namespace GerverSofa.PartE.CoverCertificate82c27f8e4d + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLL (childLL (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate82c27f8e4d + +namespace GerverSofa.PartE.CoverCertificatecbf8beb65d + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLL (childLL (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatecbf8beb65d + +namespace GerverSofa.PartE.CoverCertificate319b5d79a7 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLL (childLL (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate319b5d79a7 + +namespace GerverSofa.PartE.CoverCertificate52a2adcf18 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLL (childLL (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate52a2adcf18 + +namespace GerverSofa.PartE.CoverCertificatef66846141d + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLH (childLL (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificatef66846141d + +namespace GerverSofa.PartE.CoverCertificate5cd1561dfb + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLH (childLL (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate5cd1561dfb + +namespace GerverSofa.PartE.CoverCertificate43ce0d7d08 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLH (childLL (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate43ce0d7d08 + +namespace GerverSofa.PartE.CoverCertificate3c4ee9d54f + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childLH (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate3c4ee9d54f + +namespace GerverSofa.PartE.CoverCertificate5ea8c0bac2 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLH (childLH (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate5ea8c0bac2 + +namespace GerverSofa.PartE.CoverCertificatec619bc60a1 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLH (childLH (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatec619bc60a1 + +namespace GerverSofa.PartE.CoverCertificate5746fe2caf + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLH (childLH (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate5746fe2caf + +namespace GerverSofa.PartE.CoverCertificate98b9778203 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childHH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate98b9778203 + +namespace GerverSofa.PartE.CoverCertificate7f98aa56d1 + +private abbrev cellRoot : AngleCell := + (childLL (childHL (childHH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +end GerverSofa.PartE.CoverCertificate7f98aa56d1 + +namespace GerverSofa.PartE.CoverCertificateb650783453 + +private abbrev cellRoot : AngleCell := + (childLH (childHL (childHH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificateb650783453 + +namespace GerverSofa.PartE.CoverCertificate05dde891b1 + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childHH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +private abbrev cell2220 : AngleCell := + childLL cell222 + +private abbrev cell2221 : AngleCell := + childLH cell222 + +private abbrev cell2222 : AngleCell := + childHL cell222 + +private abbrev cell2223 : AngleCell := + childHH cell222 + +end GerverSofa.PartE.CoverCertificate05dde891b1 + +namespace GerverSofa.PartE.CoverCertificatedd1cfe6f59 + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childHH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +end GerverSofa.PartE.CoverCertificatedd1cfe6f59 + +namespace GerverSofa.PartE.CoverCertificatefe5dc96009 + +private abbrev cellRoot : AngleCell := + (childLL (childHH (childHH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatefe5dc96009 + +namespace GerverSofa.PartE.CoverCertificate7ba2433252 + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childHH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate7ba2433252 + +namespace GerverSofa.PartE.CoverCertificate7633ba69a5 + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childHH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate7633ba69a5 + +namespace GerverSofa.PartE.CoverCertificate8e17b594b9 + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childHH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +end GerverSofa.PartE.CoverCertificate8e17b594b9 + +namespace GerverSofa.PartE.CoverCertificate2ad8ea30c5 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLL (childLL (childHL (childHL (childLL (childLL (childLL (childLL + (e24ThetaAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate2ad8ea30c5 + +namespace GerverSofa.PartE.CoverCertificate5fed50edc5 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLL (childLL (childHL (childHL (childLL (childLL (childLL (childLL + (e24ThetaAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate5fed50edc5 + +namespace GerverSofa.PartE.CoverCertificatebeb942e0ae + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLL (childLL (childHL (childHL (childLL (childLL (childLL (childLL + (e24ThetaAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatebeb942e0ae + +namespace GerverSofa.PartE.CoverCertificate4aac8bf510 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childLL (childHL (childHL (childLL (childLL (childLL (childLL + (e24ThetaAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate4aac8bf510 + +namespace GerverSofa.PartE.CoverCertificate018ca4eb00 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLH (childLL (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +end GerverSofa.PartE.CoverCertificate018ca4eb00 + +namespace GerverSofa.PartE.CoverCertificatefbeddf9072 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childLL (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatefbeddf9072 + +namespace GerverSofa.PartE.CoverCertificatee6bd46d219 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLH (childLL (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificatee6bd46d219 + +namespace GerverSofa.PartE.CoverCertificate2a0a30dc9d + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLH (childLL (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate2a0a30dc9d + +namespace GerverSofa.PartE.CoverCertificateff98d0df99 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLH (childLL (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificateff98d0df99 + +namespace GerverSofa.PartE.CoverCertificate63e0e0ed96 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLH (childLL (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate63e0e0ed96 + +namespace GerverSofa.PartE.CoverCertificate1d20eb40b2 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLH (childLL (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate1d20eb40b2 + +namespace GerverSofa.PartE.CoverCertificate49ab43c4dd + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLL (childLH (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate49ab43c4dd + +namespace GerverSofa.PartE.CoverCertificatede0603de49 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLL (childLH (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatede0603de49 + +namespace GerverSofa.PartE.CoverCertificate90d2e1946c + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLL (childLH (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate90d2e1946c + +namespace GerverSofa.PartE.CoverCertificatebf3761efb7 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLL (childLH (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificatebf3761efb7 + +namespace GerverSofa.PartE.CoverCertificate48ab78c281 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLL (childLH (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate48ab78c281 + +namespace GerverSofa.PartE.CoverCertificate5e935aba69 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLL (childLH (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate5e935aba69 + +namespace GerverSofa.PartE.CoverCertificateea859f6e20 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLL (childLH (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificateea859f6e20 + +namespace GerverSofa.PartE.CoverCertificatedc87a79519 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childLH (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +end GerverSofa.PartE.CoverCertificatedc87a79519 + +namespace GerverSofa.PartE.CoverCertificatefd3c81c65d + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLH (childLH (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatefd3c81c65d + +namespace GerverSofa.PartE.CoverPhiAbove1101100 + +/-- The root angle cell for the expanded adaptive-cover certificate below `phiAboveCell1101`. -/ +abbrev coverCell : AngleCell := + (childLL (childLL (childLH (childLH (childLL (childLH (childLH (e24PhiAboveRoot)))))))) + +/-- Cached adaptive-cover cell 0; its parent subdivisions specify the exact interval. -/ +abbrev coverCell0 : AngleCell := childLL coverCell + +/-- Cached adaptive-cover cell 1; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1 : AngleCell := childLH coverCell + +/-- Cached adaptive-cover cell 2; its parent subdivisions specify the exact interval. -/ +abbrev coverCell2 : AngleCell := childHL coverCell + +/-- Cached adaptive-cover cell 3; its parent subdivisions specify the exact interval. -/ +abbrev coverCell3 : AngleCell := childHH coverCell + +/-- Cached adaptive-cover cell 00; its parent subdivisions specify the exact interval. -/ +abbrev coverCell00 : AngleCell := childLL coverCell0 + +/-- Cached adaptive-cover cell 01; its parent subdivisions specify the exact interval. -/ +abbrev coverCell01 : AngleCell := childLH coverCell0 + +/-- Cached adaptive-cover cell 02; its parent subdivisions specify the exact interval. -/ +abbrev coverCell02 : AngleCell := childHL coverCell0 + +/-- Cached adaptive-cover cell 03; its parent subdivisions specify the exact interval. -/ +abbrev coverCell03 : AngleCell := childHH coverCell0 + +/-- Cached adaptive-cover cell 10; its parent subdivisions specify the exact interval. -/ +abbrev coverCell10 : AngleCell := childLL coverCell1 + +/-- Cached adaptive-cover cell 11; its parent subdivisions specify the exact interval. -/ +abbrev coverCell11 : AngleCell := childLH coverCell1 + +/-- Cached adaptive-cover cell 12; its parent subdivisions specify the exact interval. -/ +abbrev coverCell12 : AngleCell := childHL coverCell1 + +/-- Cached adaptive-cover cell 13; its parent subdivisions specify the exact interval. -/ +abbrev coverCell13 : AngleCell := childHH coverCell1 + +/-- Cached adaptive-cover cell 20; its parent subdivisions specify the exact interval. -/ +abbrev coverCell20 : AngleCell := childLL coverCell2 + +/-- Cached adaptive-cover cell 21; its parent subdivisions specify the exact interval. -/ +abbrev coverCell21 : AngleCell := childLH coverCell2 + +/-- Cached adaptive-cover cell 22; its parent subdivisions specify the exact interval. -/ +abbrev coverCell22 : AngleCell := childHL coverCell2 + +/-- Cached adaptive-cover cell 23; its parent subdivisions specify the exact interval. -/ +abbrev coverCell23 : AngleCell := childHH coverCell2 + +/-- Cached adaptive-cover cell 30; its parent subdivisions specify the exact interval. -/ +abbrev coverCell30 : AngleCell := childLL coverCell3 + +/-- Cached adaptive-cover cell 31; its parent subdivisions specify the exact interval. -/ +abbrev coverCell31 : AngleCell := childLH coverCell3 + +/-- Cached adaptive-cover cell 32; its parent subdivisions specify the exact interval. -/ +abbrev coverCell32 : AngleCell := childHL coverCell3 + +/-- Cached adaptive-cover cell 33; its parent subdivisions specify the exact interval. -/ +abbrev coverCell33 : AngleCell := childHH coverCell3 + +/-- Cached adaptive-cover cell 000; its parent subdivisions specify the exact interval. -/ +abbrev coverCell000 : AngleCell := childLL coverCell00 + +/-- Cached adaptive-cover cell 001; its parent subdivisions specify the exact interval. -/ +abbrev coverCell001 : AngleCell := childLH coverCell00 + +/-- Cached adaptive-cover cell 002; its parent subdivisions specify the exact interval. -/ +abbrev coverCell002 : AngleCell := childHL coverCell00 + +/-- Cached adaptive-cover cell 003; its parent subdivisions specify the exact interval. -/ +abbrev coverCell003 : AngleCell := childHH coverCell00 + +/-- Cached adaptive-cover cell 010; its parent subdivisions specify the exact interval. -/ +abbrev coverCell010 : AngleCell := childLL coverCell01 + +/-- Cached adaptive-cover cell 011; its parent subdivisions specify the exact interval. -/ +abbrev coverCell011 : AngleCell := childLH coverCell01 + +/-- Cached adaptive-cover cell 012; its parent subdivisions specify the exact interval. -/ +abbrev coverCell012 : AngleCell := childHL coverCell01 + +/-- Cached adaptive-cover cell 013; its parent subdivisions specify the exact interval. -/ +abbrev coverCell013 : AngleCell := childHH coverCell01 + +/-- Cached adaptive-cover cell 030; its parent subdivisions specify the exact interval. -/ +abbrev coverCell030 : AngleCell := childLL coverCell03 + +/-- Cached adaptive-cover cell 031; its parent subdivisions specify the exact interval. -/ +abbrev coverCell031 : AngleCell := childLH coverCell03 + +/-- Cached adaptive-cover cell 032; its parent subdivisions specify the exact interval. -/ +abbrev coverCell032 : AngleCell := childHL coverCell03 + +/-- Cached adaptive-cover cell 033; its parent subdivisions specify the exact interval. -/ +abbrev coverCell033 : AngleCell := childHH coverCell03 + +/-- Cached adaptive-cover cell 100; its parent subdivisions specify the exact interval. -/ +abbrev coverCell100 : AngleCell := childLL coverCell10 + +/-- Cached adaptive-cover cell 101; its parent subdivisions specify the exact interval. -/ +abbrev coverCell101 : AngleCell := childLH coverCell10 + +/-- Cached adaptive-cover cell 102; its parent subdivisions specify the exact interval. -/ +abbrev coverCell102 : AngleCell := childHL coverCell10 + +/-- Cached adaptive-cover cell 103; its parent subdivisions specify the exact interval. -/ +abbrev coverCell103 : AngleCell := childHH coverCell10 + +/-- Cached adaptive-cover cell 110; its parent subdivisions specify the exact interval. -/ +abbrev coverCell110 : AngleCell := childLL coverCell11 + +/-- Cached adaptive-cover cell 111; its parent subdivisions specify the exact interval. -/ +abbrev coverCell111 : AngleCell := childLH coverCell11 + +/-- Cached adaptive-cover cell 112; its parent subdivisions specify the exact interval. -/ +abbrev coverCell112 : AngleCell := childHL coverCell11 + +/-- Cached adaptive-cover cell 113; its parent subdivisions specify the exact interval. -/ +abbrev coverCell113 : AngleCell := childHH coverCell11 + +/-- Cached adaptive-cover cell 120; its parent subdivisions specify the exact interval. -/ +abbrev coverCell120 : AngleCell := childLL coverCell12 + +/-- Cached adaptive-cover cell 121; its parent subdivisions specify the exact interval. -/ +abbrev coverCell121 : AngleCell := childLH coverCell12 + +/-- Cached adaptive-cover cell 122; its parent subdivisions specify the exact interval. -/ +abbrev coverCell122 : AngleCell := childHL coverCell12 + +/-- Cached adaptive-cover cell 123; its parent subdivisions specify the exact interval. -/ +abbrev coverCell123 : AngleCell := childHH coverCell12 + +/-- Cached adaptive-cover cell 130; its parent subdivisions specify the exact interval. -/ +abbrev coverCell130 : AngleCell := childLL coverCell13 + +/-- Cached adaptive-cover cell 131; its parent subdivisions specify the exact interval. -/ +abbrev coverCell131 : AngleCell := childLH coverCell13 + +/-- Cached adaptive-cover cell 132; its parent subdivisions specify the exact interval. -/ +abbrev coverCell132 : AngleCell := childHL coverCell13 + +/-- Cached adaptive-cover cell 133; its parent subdivisions specify the exact interval. -/ +abbrev coverCell133 : AngleCell := childHH coverCell13 + +/-- Cached adaptive-cover cell 0000; its parent subdivisions specify the exact interval. -/ +abbrev coverCell0000 : AngleCell := childLL coverCell000 + +/-- Cached adaptive-cover cell 0001; its parent subdivisions specify the exact interval. -/ +abbrev coverCell0001 : AngleCell := childLH coverCell000 + +/-- Cached adaptive-cover cell 0002; its parent subdivisions specify the exact interval. -/ +abbrev coverCell0002 : AngleCell := childHL coverCell000 + +/-- Cached adaptive-cover cell 0003; its parent subdivisions specify the exact interval. -/ +abbrev coverCell0003 : AngleCell := childHH coverCell000 + +/-- Cached adaptive-cover cell 0010; its parent subdivisions specify the exact interval. -/ +abbrev coverCell0010 : AngleCell := childLL coverCell001 + +/-- Cached adaptive-cover cell 0011; its parent subdivisions specify the exact interval. -/ +abbrev coverCell0011 : AngleCell := childLH coverCell001 + +/-- Cached adaptive-cover cell 0012; its parent subdivisions specify the exact interval. -/ +abbrev coverCell0012 : AngleCell := childHL coverCell001 + +/-- Cached adaptive-cover cell 0013; its parent subdivisions specify the exact interval. -/ +abbrev coverCell0013 : AngleCell := childHH coverCell001 + +/-- Cached adaptive-cover cell 0100; its parent subdivisions specify the exact interval. -/ +abbrev coverCell0100 : AngleCell := childLL coverCell010 + +/-- Cached adaptive-cover cell 0101; its parent subdivisions specify the exact interval. -/ +abbrev coverCell0101 : AngleCell := childLH coverCell010 + +/-- Cached adaptive-cover cell 0102; its parent subdivisions specify the exact interval. -/ +abbrev coverCell0102 : AngleCell := childHL coverCell010 + +/-- Cached adaptive-cover cell 0103; its parent subdivisions specify the exact interval. -/ +abbrev coverCell0103 : AngleCell := childHH coverCell010 + +/-- Cached adaptive-cover cell 0110; its parent subdivisions specify the exact interval. -/ +abbrev coverCell0110 : AngleCell := childLL coverCell011 + +/-- Cached adaptive-cover cell 0111; its parent subdivisions specify the exact interval. -/ +abbrev coverCell0111 : AngleCell := childLH coverCell011 + +/-- Cached adaptive-cover cell 0112; its parent subdivisions specify the exact interval. -/ +abbrev coverCell0112 : AngleCell := childHL coverCell011 + +/-- Cached adaptive-cover cell 0113; its parent subdivisions specify the exact interval. -/ +abbrev coverCell0113 : AngleCell := childHH coverCell011 + +/-- Cached adaptive-cover cell 1000; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1000 : AngleCell := childLL coverCell100 + +/-- Cached adaptive-cover cell 1001; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1001 : AngleCell := childLH coverCell100 + +/-- Cached adaptive-cover cell 1002; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1002 : AngleCell := childHL coverCell100 + +/-- Cached adaptive-cover cell 1003; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1003 : AngleCell := childHH coverCell100 + +/-- Cached adaptive-cover cell 1010; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1010 : AngleCell := childLL coverCell101 + +/-- Cached adaptive-cover cell 1011; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1011 : AngleCell := childLH coverCell101 + +/-- Cached adaptive-cover cell 1012; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1012 : AngleCell := childHL coverCell101 + +/-- Cached adaptive-cover cell 1013; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1013 : AngleCell := childHH coverCell101 + +/-- Cached adaptive-cover cell 1100; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1100 : AngleCell := childLL coverCell110 + +/-- Cached adaptive-cover cell 1101; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1101 : AngleCell := childLH coverCell110 + +/-- Cached adaptive-cover cell 1102; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1102 : AngleCell := childHL coverCell110 + +/-- Cached adaptive-cover cell 1103; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1103 : AngleCell := childHH coverCell110 + +/-- Cached adaptive-cover cell 1110; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1110 : AngleCell := childLL coverCell111 + +/-- Cached adaptive-cover cell 1111; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1111 : AngleCell := childLH coverCell111 + +/-- Cached adaptive-cover cell 1112; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1112 : AngleCell := childHL coverCell111 + +/-- Cached adaptive-cover cell 1113; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1113 : AngleCell := childHH coverCell111 + +/-- Cached adaptive-cover cell 1120; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1120 : AngleCell := childLL coverCell112 + +/-- Cached adaptive-cover cell 1121; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1121 : AngleCell := childLH coverCell112 + +/-- Cached adaptive-cover cell 1122; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1122 : AngleCell := childHL coverCell112 + +/-- Cached adaptive-cover cell 1123; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1123 : AngleCell := childHH coverCell112 + +/-- Cached adaptive-cover cell 1130; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1130 : AngleCell := childLL coverCell113 + +/-- Cached adaptive-cover cell 1131; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1131 : AngleCell := childLH coverCell113 + +/-- Cached adaptive-cover cell 1132; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1132 : AngleCell := childHL coverCell113 + +/-- Cached adaptive-cover cell 1133; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1133 : AngleCell := childHH coverCell113 + +/-- Cached adaptive-cover cell 00000; its parent subdivisions specify the exact interval. -/ +abbrev coverCell00000 : AngleCell := childLL coverCell0000 + +/-- Cached adaptive-cover cell 00001; its parent subdivisions specify the exact interval. -/ +abbrev coverCell00001 : AngleCell := childLH coverCell0000 + +/-- Cached adaptive-cover cell 00002; its parent subdivisions specify the exact interval. -/ +abbrev coverCell00002 : AngleCell := childHL coverCell0000 + +/-- Cached adaptive-cover cell 00003; its parent subdivisions specify the exact interval. -/ +abbrev coverCell00003 : AngleCell := childHH coverCell0000 + +/-- Cached adaptive-cover cell 00010; its parent subdivisions specify the exact interval. -/ +abbrev coverCell00010 : AngleCell := childLL coverCell0001 + +/-- Cached adaptive-cover cell 00011; its parent subdivisions specify the exact interval. -/ +abbrev coverCell00011 : AngleCell := childLH coverCell0001 + +/-- Cached adaptive-cover cell 00012; its parent subdivisions specify the exact interval. -/ +abbrev coverCell00012 : AngleCell := childHL coverCell0001 + +/-- Cached adaptive-cover cell 00013; its parent subdivisions specify the exact interval. -/ +abbrev coverCell00013 : AngleCell := childHH coverCell0001 + +/-- Cached adaptive-cover cell 00100; its parent subdivisions specify the exact interval. -/ +abbrev coverCell00100 : AngleCell := childLL coverCell0010 + +/-- Cached adaptive-cover cell 00101; its parent subdivisions specify the exact interval. -/ +abbrev coverCell00101 : AngleCell := childLH coverCell0010 + +/-- Cached adaptive-cover cell 00102; its parent subdivisions specify the exact interval. -/ +abbrev coverCell00102 : AngleCell := childHL coverCell0010 + +/-- Cached adaptive-cover cell 00103; its parent subdivisions specify the exact interval. -/ +abbrev coverCell00103 : AngleCell := childHH coverCell0010 + +/-- Cached adaptive-cover cell 00110; its parent subdivisions specify the exact interval. -/ +abbrev coverCell00110 : AngleCell := childLL coverCell0011 + +/-- Cached adaptive-cover cell 00111; its parent subdivisions specify the exact interval. -/ +abbrev coverCell00111 : AngleCell := childLH coverCell0011 + +/-- Cached adaptive-cover cell 00112; its parent subdivisions specify the exact interval. -/ +abbrev coverCell00112 : AngleCell := childHL coverCell0011 + +/-- Cached adaptive-cover cell 00113; its parent subdivisions specify the exact interval. -/ +abbrev coverCell00113 : AngleCell := childHH coverCell0011 + +/-- Cached adaptive-cover cell 01000; its parent subdivisions specify the exact interval. -/ +abbrev coverCell01000 : AngleCell := childLL coverCell0100 + +/-- Cached adaptive-cover cell 01001; its parent subdivisions specify the exact interval. -/ +abbrev coverCell01001 : AngleCell := childLH coverCell0100 + +/-- Cached adaptive-cover cell 01002; its parent subdivisions specify the exact interval. -/ +abbrev coverCell01002 : AngleCell := childHL coverCell0100 + +/-- Cached adaptive-cover cell 01003; its parent subdivisions specify the exact interval. -/ +abbrev coverCell01003 : AngleCell := childHH coverCell0100 + +/-- Cached adaptive-cover cell 01010; its parent subdivisions specify the exact interval. -/ +abbrev coverCell01010 : AngleCell := childLL coverCell0101 + +/-- Cached adaptive-cover cell 01011; its parent subdivisions specify the exact interval. -/ +abbrev coverCell01011 : AngleCell := childLH coverCell0101 + +/-- Cached adaptive-cover cell 01012; its parent subdivisions specify the exact interval. -/ +abbrev coverCell01012 : AngleCell := childHL coverCell0101 + +/-- Cached adaptive-cover cell 01013; its parent subdivisions specify the exact interval. -/ +abbrev coverCell01013 : AngleCell := childHH coverCell0101 + +/-- Cached adaptive-cover cell 01100; its parent subdivisions specify the exact interval. -/ +abbrev coverCell01100 : AngleCell := childLL coverCell0110 + +/-- Cached adaptive-cover cell 01101; its parent subdivisions specify the exact interval. -/ +abbrev coverCell01101 : AngleCell := childLH coverCell0110 + +/-- Cached adaptive-cover cell 01102; its parent subdivisions specify the exact interval. -/ +abbrev coverCell01102 : AngleCell := childHL coverCell0110 + +/-- Cached adaptive-cover cell 01103; its parent subdivisions specify the exact interval. -/ +abbrev coverCell01103 : AngleCell := childHH coverCell0110 + +/-- Cached adaptive-cover cell 01110; its parent subdivisions specify the exact interval. -/ +abbrev coverCell01110 : AngleCell := childLL coverCell0111 + +/-- Cached adaptive-cover cell 01111; its parent subdivisions specify the exact interval. -/ +abbrev coverCell01111 : AngleCell := childLH coverCell0111 + +/-- Cached adaptive-cover cell 01112; its parent subdivisions specify the exact interval. -/ +abbrev coverCell01112 : AngleCell := childHL coverCell0111 + +/-- Cached adaptive-cover cell 01113; its parent subdivisions specify the exact interval. -/ +abbrev coverCell01113 : AngleCell := childHH coverCell0111 + +/-- Cached adaptive-cover cell 10000; its parent subdivisions specify the exact interval. -/ +abbrev coverCell10000 : AngleCell := childLL coverCell1000 + +/-- Cached adaptive-cover cell 10001; its parent subdivisions specify the exact interval. -/ +abbrev coverCell10001 : AngleCell := childLH coverCell1000 + +/-- Cached adaptive-cover cell 10002; its parent subdivisions specify the exact interval. -/ +abbrev coverCell10002 : AngleCell := childHL coverCell1000 + +/-- Cached adaptive-cover cell 10003; its parent subdivisions specify the exact interval. -/ +abbrev coverCell10003 : AngleCell := childHH coverCell1000 + +/-- Cached adaptive-cover cell 10010; its parent subdivisions specify the exact interval. -/ +abbrev coverCell10010 : AngleCell := childLL coverCell1001 + +/-- Cached adaptive-cover cell 10011; its parent subdivisions specify the exact interval. -/ +abbrev coverCell10011 : AngleCell := childLH coverCell1001 + +/-- Cached adaptive-cover cell 10012; its parent subdivisions specify the exact interval. -/ +abbrev coverCell10012 : AngleCell := childHL coverCell1001 + +/-- Cached adaptive-cover cell 10013; its parent subdivisions specify the exact interval. -/ +abbrev coverCell10013 : AngleCell := childHH coverCell1001 + +/-- Cached adaptive-cover cell 10100; its parent subdivisions specify the exact interval. -/ +abbrev coverCell10100 : AngleCell := childLL coverCell1010 + +/-- Cached adaptive-cover cell 10101; its parent subdivisions specify the exact interval. -/ +abbrev coverCell10101 : AngleCell := childLH coverCell1010 + +/-- Cached adaptive-cover cell 10102; its parent subdivisions specify the exact interval. -/ +abbrev coverCell10102 : AngleCell := childHL coverCell1010 + +/-- Cached adaptive-cover cell 10103; its parent subdivisions specify the exact interval. -/ +abbrev coverCell10103 : AngleCell := childHH coverCell1010 + +/-- Cached adaptive-cover cell 10110; its parent subdivisions specify the exact interval. -/ +abbrev coverCell10110 : AngleCell := childLL coverCell1011 + +/-- Cached adaptive-cover cell 10111; its parent subdivisions specify the exact interval. -/ +abbrev coverCell10111 : AngleCell := childLH coverCell1011 + +/-- Cached adaptive-cover cell 10112; its parent subdivisions specify the exact interval. -/ +abbrev coverCell10112 : AngleCell := childHL coverCell1011 + +/-- Cached adaptive-cover cell 10113; its parent subdivisions specify the exact interval. -/ +abbrev coverCell10113 : AngleCell := childHH coverCell1011 + +/-- Cached adaptive-cover cell 11000; its parent subdivisions specify the exact interval. -/ +abbrev coverCell11000 : AngleCell := childLL coverCell1100 + +/-- Cached adaptive-cover cell 11001; its parent subdivisions specify the exact interval. -/ +abbrev coverCell11001 : AngleCell := childLH coverCell1100 + +/-- Cached adaptive-cover cell 11002; its parent subdivisions specify the exact interval. -/ +abbrev coverCell11002 : AngleCell := childHL coverCell1100 + +/-- Cached adaptive-cover cell 11003; its parent subdivisions specify the exact interval. -/ +abbrev coverCell11003 : AngleCell := childHH coverCell1100 + +/-- Cached adaptive-cover cell 11010; its parent subdivisions specify the exact interval. -/ +abbrev coverCell11010 : AngleCell := childLL coverCell1101 + +/-- Cached adaptive-cover cell 11011; its parent subdivisions specify the exact interval. -/ +abbrev coverCell11011 : AngleCell := childLH coverCell1101 + +/-- Cached adaptive-cover cell 11012; its parent subdivisions specify the exact interval. -/ +abbrev coverCell11012 : AngleCell := childHL coverCell1101 + +/-- Cached adaptive-cover cell 11013; its parent subdivisions specify the exact interval. -/ +abbrev coverCell11013 : AngleCell := childHH coverCell1101 + +/-- Cached adaptive-cover cell 11100; its parent subdivisions specify the exact interval. -/ +abbrev coverCell11100 : AngleCell := childLL coverCell1110 + +/-- Cached adaptive-cover cell 11101; its parent subdivisions specify the exact interval. -/ +abbrev coverCell11101 : AngleCell := childLH coverCell1110 + +/-- Cached adaptive-cover cell 11102; its parent subdivisions specify the exact interval. -/ +abbrev coverCell11102 : AngleCell := childHL coverCell1110 + +/-- Cached adaptive-cover cell 11103; its parent subdivisions specify the exact interval. -/ +abbrev coverCell11103 : AngleCell := childHH coverCell1110 + +/-- Cached adaptive-cover cell 11110; its parent subdivisions specify the exact interval. -/ +abbrev coverCell11110 : AngleCell := childLL coverCell1111 + +/-- Cached adaptive-cover cell 11111; its parent subdivisions specify the exact interval. -/ +abbrev coverCell11111 : AngleCell := childLH coverCell1111 + +/-- Cached adaptive-cover cell 11112; its parent subdivisions specify the exact interval. -/ +abbrev coverCell11112 : AngleCell := childHL coverCell1111 + +/-- Cached adaptive-cover cell 11113; its parent subdivisions specify the exact interval. -/ +abbrev coverCell11113 : AngleCell := childHH coverCell1111 + +/-- Cached adaptive-cover cell 100100; its parent subdivisions specify the exact interval. -/ +abbrev coverCell100100 : AngleCell := childLL coverCell10010 + +/-- Cached adaptive-cover cell 100101; its parent subdivisions specify the exact interval. -/ +abbrev coverCell100101 : AngleCell := childLH coverCell10010 + +/-- Cached adaptive-cover cell 100102; its parent subdivisions specify the exact interval. -/ +abbrev coverCell100102 : AngleCell := childHL coverCell10010 + +/-- Cached adaptive-cover cell 100103; its parent subdivisions specify the exact interval. -/ +abbrev coverCell100103 : AngleCell := childHH coverCell10010 + +/-- Cached adaptive-cover cell 100110; its parent subdivisions specify the exact interval. -/ +abbrev coverCell100110 : AngleCell := childLL coverCell10011 + +/-- Cached adaptive-cover cell 100111; its parent subdivisions specify the exact interval. -/ +abbrev coverCell100111 : AngleCell := childLH coverCell10011 + +/-- Cached adaptive-cover cell 100112; its parent subdivisions specify the exact interval. -/ +abbrev coverCell100112 : AngleCell := childHL coverCell10011 + +/-- Cached adaptive-cover cell 100113; its parent subdivisions specify the exact interval. -/ +abbrev coverCell100113 : AngleCell := childHH coverCell10011 + +/-- Cached adaptive-cover cell 101000; its parent subdivisions specify the exact interval. -/ +abbrev coverCell101000 : AngleCell := childLL coverCell10100 + +/-- Cached adaptive-cover cell 101001; its parent subdivisions specify the exact interval. -/ +abbrev coverCell101001 : AngleCell := childLH coverCell10100 + +/-- Cached adaptive-cover cell 101002; its parent subdivisions specify the exact interval. -/ +abbrev coverCell101002 : AngleCell := childHL coverCell10100 + +/-- Cached adaptive-cover cell 101003; its parent subdivisions specify the exact interval. -/ +abbrev coverCell101003 : AngleCell := childHH coverCell10100 + +/-- Cached adaptive-cover cell 101010; its parent subdivisions specify the exact interval. -/ +abbrev coverCell101010 : AngleCell := childLL coverCell10101 + +/-- Cached adaptive-cover cell 101011; its parent subdivisions specify the exact interval. -/ +abbrev coverCell101011 : AngleCell := childLH coverCell10101 + +/-- Cached adaptive-cover cell 101012; its parent subdivisions specify the exact interval. -/ +abbrev coverCell101012 : AngleCell := childHL coverCell10101 + +/-- Cached adaptive-cover cell 101013; its parent subdivisions specify the exact interval. -/ +abbrev coverCell101013 : AngleCell := childHH coverCell10101 + +/-- Cached adaptive-cover cell 101100; its parent subdivisions specify the exact interval. -/ +abbrev coverCell101100 : AngleCell := childLL coverCell10110 + +/-- Cached adaptive-cover cell 101101; its parent subdivisions specify the exact interval. -/ +abbrev coverCell101101 : AngleCell := childLH coverCell10110 + +/-- Cached adaptive-cover cell 101102; its parent subdivisions specify the exact interval. -/ +abbrev coverCell101102 : AngleCell := childHL coverCell10110 + +/-- Cached adaptive-cover cell 101103; its parent subdivisions specify the exact interval. -/ +abbrev coverCell101103 : AngleCell := childHH coverCell10110 + +/-- Cached adaptive-cover cell 101110; its parent subdivisions specify the exact interval. -/ +abbrev coverCell101110 : AngleCell := childLL coverCell10111 + +/-- Cached adaptive-cover cell 101111; its parent subdivisions specify the exact interval. -/ +abbrev coverCell101111 : AngleCell := childLH coverCell10111 + +/-- Cached adaptive-cover cell 101112; its parent subdivisions specify the exact interval. -/ +abbrev coverCell101112 : AngleCell := childHL coverCell10111 + +/-- Cached adaptive-cover cell 101113; its parent subdivisions specify the exact interval. -/ +abbrev coverCell101113 : AngleCell := childHH coverCell10111 + +/-- Cached adaptive-cover cell 110000; its parent subdivisions specify the exact interval. -/ +abbrev coverCell110000 : AngleCell := childLL coverCell11000 + +/-- Cached adaptive-cover cell 110001; its parent subdivisions specify the exact interval. -/ +abbrev coverCell110001 : AngleCell := childLH coverCell11000 + +/-- Cached adaptive-cover cell 110002; its parent subdivisions specify the exact interval. -/ +abbrev coverCell110002 : AngleCell := childHL coverCell11000 + +/-- Cached adaptive-cover cell 110003; its parent subdivisions specify the exact interval. -/ +abbrev coverCell110003 : AngleCell := childHH coverCell11000 + +/-- Cached adaptive-cover cell 110010; its parent subdivisions specify the exact interval. -/ +abbrev coverCell110010 : AngleCell := childLL coverCell11001 + +/-- Cached adaptive-cover cell 110011; its parent subdivisions specify the exact interval. -/ +abbrev coverCell110011 : AngleCell := childLH coverCell11001 + +/-- Cached adaptive-cover cell 110012; its parent subdivisions specify the exact interval. -/ +abbrev coverCell110012 : AngleCell := childHL coverCell11001 + +/-- Cached adaptive-cover cell 110013; its parent subdivisions specify the exact interval. -/ +abbrev coverCell110013 : AngleCell := childHH coverCell11001 + +/-- Cached adaptive-cover cell 110100; its parent subdivisions specify the exact interval. -/ +abbrev coverCell110100 : AngleCell := childLL coverCell11010 + +/-- Cached adaptive-cover cell 110101; its parent subdivisions specify the exact interval. -/ +abbrev coverCell110101 : AngleCell := childLH coverCell11010 + +/-- Cached adaptive-cover cell 110102; its parent subdivisions specify the exact interval. -/ +abbrev coverCell110102 : AngleCell := childHL coverCell11010 + +/-- Cached adaptive-cover cell 110103; its parent subdivisions specify the exact interval. -/ +abbrev coverCell110103 : AngleCell := childHH coverCell11010 + +/-- Cached adaptive-cover cell 110110; its parent subdivisions specify the exact interval. -/ +abbrev coverCell110110 : AngleCell := childLL coverCell11011 + +/-- Cached adaptive-cover cell 110111; its parent subdivisions specify the exact interval. -/ +abbrev coverCell110111 : AngleCell := childLH coverCell11011 + +/-- Cached adaptive-cover cell 110112; its parent subdivisions specify the exact interval. -/ +abbrev coverCell110112 : AngleCell := childHL coverCell11011 + +/-- Cached adaptive-cover cell 110113; its parent subdivisions specify the exact interval. -/ +abbrev coverCell110113 : AngleCell := childHH coverCell11011 + +/-- Cached adaptive-cover cell 111000; its parent subdivisions specify the exact interval. -/ +abbrev coverCell111000 : AngleCell := childLL coverCell11100 + +/-- Cached adaptive-cover cell 111001; its parent subdivisions specify the exact interval. -/ +abbrev coverCell111001 : AngleCell := childLH coverCell11100 + +/-- Cached adaptive-cover cell 111002; its parent subdivisions specify the exact interval. -/ +abbrev coverCell111002 : AngleCell := childHL coverCell11100 + +/-- Cached adaptive-cover cell 111003; its parent subdivisions specify the exact interval. -/ +abbrev coverCell111003 : AngleCell := childHH coverCell11100 + +/-- Cached adaptive-cover cell 111010; its parent subdivisions specify the exact interval. -/ +abbrev coverCell111010 : AngleCell := childLL coverCell11101 + +/-- Cached adaptive-cover cell 111011; its parent subdivisions specify the exact interval. -/ +abbrev coverCell111011 : AngleCell := childLH coverCell11101 + +/-- Cached adaptive-cover cell 111012; its parent subdivisions specify the exact interval. -/ +abbrev coverCell111012 : AngleCell := childHL coverCell11101 + +/-- Cached adaptive-cover cell 111013; its parent subdivisions specify the exact interval. -/ +abbrev coverCell111013 : AngleCell := childHH coverCell11101 + +/-- Cached adaptive-cover cell 111100; its parent subdivisions specify the exact interval. -/ +abbrev coverCell111100 : AngleCell := childLL coverCell11110 + +/-- Cached adaptive-cover cell 111101; its parent subdivisions specify the exact interval. -/ +abbrev coverCell111101 : AngleCell := childLH coverCell11110 + +/-- Cached adaptive-cover cell 111102; its parent subdivisions specify the exact interval. -/ +abbrev coverCell111102 : AngleCell := childHL coverCell11110 + +/-- Cached adaptive-cover cell 111103; its parent subdivisions specify the exact interval. -/ +abbrev coverCell111103 : AngleCell := childHH coverCell11110 + +/-- Cached adaptive-cover cell 111110; its parent subdivisions specify the exact interval. -/ +abbrev coverCell111110 : AngleCell := childLL coverCell11111 + +/-- Cached adaptive-cover cell 111111; its parent subdivisions specify the exact interval. -/ +abbrev coverCell111111 : AngleCell := childLH coverCell11111 + +/-- Cached adaptive-cover cell 111112; its parent subdivisions specify the exact interval. -/ +abbrev coverCell111112 : AngleCell := childHL coverCell11111 + +/-- Cached adaptive-cover cell 111113; its parent subdivisions specify the exact interval. -/ +abbrev coverCell111113 : AngleCell := childHH coverCell11111 + +/-- Cached adaptive-cover cell 1110010; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1110010 : AngleCell := childLL coverCell111001 + +/-- Cached adaptive-cover cell 1110011; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1110011 : AngleCell := childLH coverCell111001 + +/-- Cached adaptive-cover cell 1110012; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1110012 : AngleCell := childHL coverCell111001 + +/-- Cached adaptive-cover cell 1110013; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1110013 : AngleCell := childHH coverCell111001 + +/-- Cached adaptive-cover cell 1110100; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1110100 : AngleCell := childLL coverCell111010 + +/-- Cached adaptive-cover cell 1110101; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1110101 : AngleCell := childLH coverCell111010 + +/-- Cached adaptive-cover cell 1110102; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1110102 : AngleCell := childHL coverCell111010 + +/-- Cached adaptive-cover cell 1110103; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1110103 : AngleCell := childHH coverCell111010 + +/-- Cached adaptive-cover cell 1110110; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1110110 : AngleCell := childLL coverCell111011 + +/-- Cached adaptive-cover cell 1110111; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1110111 : AngleCell := childLH coverCell111011 + +/-- Cached adaptive-cover cell 1110112; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1110112 : AngleCell := childHL coverCell111011 + +/-- Cached adaptive-cover cell 1110113; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1110113 : AngleCell := childHH coverCell111011 + +/-- Cached adaptive-cover cell 1111000; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1111000 : AngleCell := childLL coverCell111100 + +/-- Cached adaptive-cover cell 1111001; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1111001 : AngleCell := childLH coverCell111100 + +/-- Cached adaptive-cover cell 1111002; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1111002 : AngleCell := childHL coverCell111100 + +/-- Cached adaptive-cover cell 1111003; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1111003 : AngleCell := childHH coverCell111100 + +/-- Cached adaptive-cover cell 1111010; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1111010 : AngleCell := childLL coverCell111101 + +/-- Cached adaptive-cover cell 1111011; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1111011 : AngleCell := childLH coverCell111101 + +/-- Cached adaptive-cover cell 1111012; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1111012 : AngleCell := childHL coverCell111101 + +/-- Cached adaptive-cover cell 1111013; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1111013 : AngleCell := childHH coverCell111101 + +/-- Cached adaptive-cover cell 1111100; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1111100 : AngleCell := childLL coverCell111110 + +/-- Cached adaptive-cover cell 1111101; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1111101 : AngleCell := childLH coverCell111110 + +/-- Cached adaptive-cover cell 1111102; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1111102 : AngleCell := childHL coverCell111110 + +/-- Cached adaptive-cover cell 1111103; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1111103 : AngleCell := childHH coverCell111110 + +/-- Cached adaptive-cover cell 1111110; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1111110 : AngleCell := childLL coverCell111111 + +/-- Cached adaptive-cover cell 1111111; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1111111 : AngleCell := childLH coverCell111111 + +/-- Cached adaptive-cover cell 1111112; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1111112 : AngleCell := childHL coverCell111111 + +/-- Cached adaptive-cover cell 1111113; its parent subdivisions specify the exact interval. -/ +abbrev coverCell1111113 : AngleCell := childHH coverCell111111 + +end GerverSofa.PartE.CoverPhiAbove1101100 + +namespace GerverSofa.PartE.CoverPhiAbove1101100.CertificateCellsdb86b7498a + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CoverPhiAbove1101100.CertificateCellsdb86b7498a + +namespace GerverSofa.PartE.CertificateCellsf80409361d + +/-- Subcell `1011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1011 : AngleCell := + childLH (childLH (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1100 : AngleCell := + childLL (childLL (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCellsf80409361d + +namespace GerverSofa.PartE.CertificateCells93b6719794 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCells93b6719794 + +namespace GerverSofa.PartE.CertificateCellsdf243d4011 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCellsdf243d4011 + +namespace GerverSofa.PartE.CertificateCells88c20ab319 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCells88c20ab319 + +namespace GerverSofa.PartE.CertificateCells2e53b5dd0c + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCells2e53b5dd0c + +namespace GerverSofa.PartE.CertificateCellsce9330d4cd + +/-- Subcell `3331` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3331 : AngleCell := + childLH (childHH (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3332` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3332 : AngleCell := + childHL (childHH (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3333` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3333 : AngleCell := + childHH (childHH (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsce9330d4cd + +namespace GerverSofa.PartE.CertificateCells9612bd9bbf + +/-- Subcell `3333` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3333 : AngleCell := + childHH (childHH (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +end GerverSofa.PartE.CertificateCells9612bd9bbf + +namespace GerverSofa.PartE.CertificateCellsd19e562ded + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +end GerverSofa.PartE.CertificateCellsd19e562ded + +namespace GerverSofa.PartE.CertificateCellse3e967073d + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCellse3e967073d + +namespace GerverSofa.PartE.CertificateCells23b3ec373b + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCells23b3ec373b + +namespace GerverSofa.PartE.CertificateCells9b25d0fd5e + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCells9b25d0fd5e + +namespace GerverSofa.PartE.CertificateCells486c3dc7d8 + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCells486c3dc7d8 + +namespace GerverSofa.PartE.CertificateCellsdd72fc553d + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1111` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCellsdd72fc553d + +namespace GerverSofa.PartE.CertificateCells308b6c24e8 + +/-- Subcell `1111` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCells308b6c24e8 + +namespace GerverSofa.PartE.CertificateCells48ddfaabb3 + +/-- Subcell `1111` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCells48ddfaabb3 + +namespace GerverSofa.PartE.CertificateCells4368513ed3 + +/-- Subcell `1111` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCells4368513ed3 + +namespace GerverSofa.PartE.CertificateCellsd48a6bc390 + +/-- Subcell `1111` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCellsd48a6bc390 + +namespace GerverSofa.PartE.CertificateCells3620ccdfd7 + +/-- Subcell `1100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1100 : AngleCell := + childLL (childLL (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1102 : AngleCell := + childHL (childLL (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1103 : AngleCell := + childHH (childLL (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `11003330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell1111))) + +end GerverSofa.PartE.CertificateCells3620ccdfd7 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC4BatchPhiAboveF9C1LLRLRL0011`. +* `KernelOnly.PartE.E24KC4PilotPhiAboveF90002`. +* `KernelOnly.PartE.E24KC5FrontierBatchF0LLR00112`. +* `KernelOnly.PartE.E24KC5FrontierBatchF0LRL00114`. +* `KernelOnly.PartE.E24KC5FrontierBatchF0RLR00169`. +* `KernelOnly.PartE.E24KC5FrontierBatchF0RRL00171`. +* `KernelOnly.PartE.E24KC5FrontierBatchF10400466`. +* `KernelOnly.PartE.E24KC5FrontierBatchF112L00468`. +* `KernelOnly.PartE.E24KC5FrontierBatchF112RLL00471`. +* `KernelOnly.PartE.E24KC5FrontierBatchF16LLL00214`. +* `KernelOnly.PartE.E24KC5FrontierBatchF16LLR00215`. +* `KernelOnly.PartE.E24KC5FrontierBatchF16LR00216`. +* `KernelOnly.PartE.E24KC5FrontierBatchF16RL00218`. +* `KernelOnly.PartE.E24KC5FrontierBatchF16RR00219`. +* `KernelOnly.PartE.E24KC5FrontierBatchF24LL00222`. +* `KernelOnly.PartE.E24KC5FrontierBatchF24LR00223`. +* `KernelOnly.PartE.E24KC5FrontierBatchF24RL00225`. +* `KernelOnly.PartE.E24KC5FrontierBatchF24RR00226`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC4 auto-tuned batched kernel certificates. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CoverPhiAbove1101100 + +namespace CertificateCellsdb86b7498a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsdb86b7498a + +open CertificateCellsdb86b7498a + +theorem checked1110010 : adaptiveCoverCheck 2 coverCell1110010 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1110010 (by decide +kernel) + +theorem checked1110011 : adaptiveCoverCheck 2 coverCell1110011 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1110011 (by decide +kernel) + +theorem checked1110012 : adaptiveCoverCheck 2 coverCell1110012 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1110012 (by decide +kernel) + +theorem checked1110013 : adaptiveCoverCheck 2 coverCell1110013 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1110013 (by decide +kernel) + +theorem checked1110100 : adaptiveCoverCheck 2 coverCell1110100 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1110100 (by decide +kernel) + +theorem checked1110101 : adaptiveCoverCheck 2 coverCell1110101 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1110101 (by decide +kernel) + +theorem checked1110102 : adaptiveCoverCheck 2 coverCell1110102 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1110102 (by decide +kernel) + +theorem checked1110103 : adaptiveCoverCheck 2 coverCell1110103 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1110103 (by decide +kernel) + +theorem checked1110110 : adaptiveCoverCheck 2 coverCell1110110 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1110110 (by decide +kernel) + +theorem checked1110111 : adaptiveCoverCheck 2 coverCell1110111 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1110111 (by decide +kernel) + +theorem checked1110112 : adaptiveCoverCheck 2 coverCell1110112 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1110112 (by decide +kernel) + +theorem checked1110113 : adaptiveCoverCheck 2 coverCell1110113 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1110113 (by decide +kernel) + +theorem checked1111000 : adaptiveCoverCheck 2 coverCell1111000 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1111000 (by decide +kernel) + +theorem checked1111001 : adaptiveCoverCheck 2 coverCell1111001 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1111001 (by decide +kernel) + +theorem checked1111002 : adaptiveCoverCheck 2 coverCell1111002 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1111002 (by decide +kernel) + +theorem checked1111003 : adaptiveCoverCheck 2 coverCell1111003 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1111003 (by decide +kernel) + +theorem checked1111010 : adaptiveCoverCheck 2 coverCell1111010 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1111010 (by decide +kernel) + +theorem checked1111011 : adaptiveCoverCheck 2 coverCell1111011 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1111011 (by decide +kernel) + +theorem checked1111012 : adaptiveCoverCheck 2 coverCell1111012 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1111012 (by decide +kernel) + +theorem checked1111013 : adaptiveCoverCheck 2 coverCell1111013 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1111013 (by decide +kernel) + +theorem checked1111100 : adaptiveCoverCheck 2 coverCell1111100 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1111100 (by decide +kernel) + +theorem checked1111101 : adaptiveCoverCheck 2 coverCell1111101 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1111101 (by decide +kernel) + +theorem checked1111102 : adaptiveCoverCheck 2 coverCell1111102 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1111102 (by decide +kernel) + +theorem checked1111103 : adaptiveCoverCheck 2 coverCell1111103 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1111103 (by decide +kernel) + +theorem checked1111110 : adaptiveCoverCheck 2 coverCell1111110 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1111110 (by decide +kernel) + +theorem checked1111111 : adaptiveCoverCheck 2 coverCell1111111 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1111111 (by decide +kernel) + +theorem checked1111112 : adaptiveCoverCheck 2 coverCell1111112 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1111112 (by decide +kernel) + +theorem checked1111113 : adaptiveCoverCheck 2 coverCell1111113 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 coverCell1111113 (by decide +kernel) + +theorem checked100100 : adaptiveCoverCheck 3 coverCell100100 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell100100 (by decide +kernel) + +theorem checked100101 : adaptiveCoverCheck 3 coverCell100101 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell100101 (by decide +kernel) + +theorem checked100102 : adaptiveCoverCheck 3 coverCell100102 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell100102 (by decide +kernel) + +theorem checked100103 : adaptiveCoverCheck 3 coverCell100103 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell100103 (by decide +kernel) + +theorem checked100110 : adaptiveCoverCheck 3 coverCell100110 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell100110 (by decide +kernel) + +theorem checked100111 : adaptiveCoverCheck 3 coverCell100111 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell100111 (by decide +kernel) + +theorem checked100112 : adaptiveCoverCheck 3 coverCell100112 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell100112 (by decide +kernel) + +theorem checked100113 : adaptiveCoverCheck 3 coverCell100113 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell100113 (by decide +kernel) + +theorem checked101000 : adaptiveCoverCheck 3 coverCell101000 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell101000 (by decide +kernel) + +theorem checked101001 : adaptiveCoverCheck 3 coverCell101001 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell101001 (by decide +kernel) + +theorem checked101002 : adaptiveCoverCheck 3 coverCell101002 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell101002 (by decide +kernel) + +theorem checked101003 : adaptiveCoverCheck 3 coverCell101003 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell101003 (by decide +kernel) + +theorem checked101010 : adaptiveCoverCheck 3 coverCell101010 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell101010 (by decide +kernel) + +theorem checked101011 : adaptiveCoverCheck 3 coverCell101011 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell101011 (by decide +kernel) + +theorem checked101012 : adaptiveCoverCheck 3 coverCell101012 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell101012 (by decide +kernel) + +theorem checked101013 : adaptiveCoverCheck 3 coverCell101013 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell101013 (by decide +kernel) + +theorem checked101100 : adaptiveCoverCheck 3 coverCell101100 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell101100 (by decide +kernel) + +theorem checked101101 : adaptiveCoverCheck 3 coverCell101101 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell101101 (by decide +kernel) + +theorem checked101102 : adaptiveCoverCheck 3 coverCell101102 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell101102 (by decide +kernel) + +theorem checked101103 : adaptiveCoverCheck 3 coverCell101103 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell101103 (by decide +kernel) + +theorem checked101110 : adaptiveCoverCheck 3 coverCell101110 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell101110 (by decide +kernel) + +theorem checked101111 : adaptiveCoverCheck 3 coverCell101111 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell101111 (by decide +kernel) + +theorem checked101112 : adaptiveCoverCheck 3 coverCell101112 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell101112 (by decide +kernel) + +theorem checked101113 : adaptiveCoverCheck 3 coverCell101113 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell101113 (by decide +kernel) + +theorem checked110000 : adaptiveCoverCheck 3 coverCell110000 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell110000 (by decide +kernel) + +theorem checked110001 : adaptiveCoverCheck 3 coverCell110001 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell110001 (by decide +kernel) + +theorem checked110002 : adaptiveCoverCheck 3 coverCell110002 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell110002 (by decide +kernel) + +theorem checked110003 : adaptiveCoverCheck 3 coverCell110003 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell110003 (by decide +kernel) + +theorem checked110010 : adaptiveCoverCheck 3 coverCell110010 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell110010 (by decide +kernel) + +theorem checked110011 : adaptiveCoverCheck 3 coverCell110011 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell110011 (by decide +kernel) + +theorem checked110012 : adaptiveCoverCheck 3 coverCell110012 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell110012 (by decide +kernel) + +theorem checked110013 : adaptiveCoverCheck 3 coverCell110013 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell110013 (by decide +kernel) + +theorem checked110100 : adaptiveCoverCheck 3 coverCell110100 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell110100 (by decide +kernel) + +theorem checked110101 : adaptiveCoverCheck 3 coverCell110101 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell110101 (by decide +kernel) + +theorem checked110102 : adaptiveCoverCheck 3 coverCell110102 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell110102 (by decide +kernel) + +theorem checked110103 : adaptiveCoverCheck 3 coverCell110103 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell110103 (by decide +kernel) + +theorem checked110110 : adaptiveCoverCheck 3 coverCell110110 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell110110 (by decide +kernel) + +theorem checked110111 : adaptiveCoverCheck 3 coverCell110111 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell110111 (by decide +kernel) + +theorem checked110112 : adaptiveCoverCheck 3 coverCell110112 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell110112 (by decide +kernel) + +theorem checked110113 : adaptiveCoverCheck 3 coverCell110113 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell110113 (by decide +kernel) + +theorem checked111000 : adaptiveCoverCheck 3 coverCell111000 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell111000 (by decide +kernel) + +theorem checked111001 : adaptiveCoverCheck 3 coverCell111001 = true := by + exact adaptiveCoverCheck_succ_of_children 2 coverCell111001 + checked1110010 checked1110011 checked1110012 checked1110013 + +theorem checked111002 : adaptiveCoverCheck 3 coverCell111002 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell111002 (by decide +kernel) + +theorem checked111003 : adaptiveCoverCheck 3 coverCell111003 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell111003 (by decide +kernel) + +theorem checked111010 : adaptiveCoverCheck 3 coverCell111010 = true := by + exact adaptiveCoverCheck_succ_of_children 2 coverCell111010 + checked1110100 checked1110101 checked1110102 checked1110103 + +theorem checked111011 : adaptiveCoverCheck 3 coverCell111011 = true := by + exact adaptiveCoverCheck_succ_of_children 2 coverCell111011 + checked1110110 checked1110111 checked1110112 checked1110113 + +theorem checked111012 : adaptiveCoverCheck 3 coverCell111012 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell111012 (by decide +kernel) + +theorem checked111013 : adaptiveCoverCheck 3 coverCell111013 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell111013 (by decide +kernel) + +theorem checked111100 : adaptiveCoverCheck 3 coverCell111100 = true := by + exact adaptiveCoverCheck_succ_of_children 2 coverCell111100 + checked1111000 checked1111001 checked1111002 checked1111003 + +theorem checked111101 : adaptiveCoverCheck 3 coverCell111101 = true := by + exact adaptiveCoverCheck_succ_of_children 2 coverCell111101 + checked1111010 checked1111011 checked1111012 checked1111013 + +theorem checked111102 : adaptiveCoverCheck 3 coverCell111102 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell111102 (by decide +kernel) + +theorem checked111103 : adaptiveCoverCheck 3 coverCell111103 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell111103 (by decide +kernel) + +theorem checked111110 : adaptiveCoverCheck 3 coverCell111110 = true := by + exact adaptiveCoverCheck_succ_of_children 2 coverCell111110 + checked1111100 checked1111101 checked1111102 checked1111103 + +theorem checked111111 : adaptiveCoverCheck 3 coverCell111111 = true := by + exact adaptiveCoverCheck_succ_of_children 2 coverCell111111 + checked1111110 checked1111111 checked1111112 checked1111113 + +theorem checked111112 : adaptiveCoverCheck 3 coverCell111112 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell111112 (by decide +kernel) + +theorem checked111113 : adaptiveCoverCheck 3 coverCell111113 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 coverCell111113 (by decide +kernel) + +theorem checked00000 : adaptiveCoverCheck 4 coverCell00000 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell00000 (by decide +kernel) + +theorem checked00001 : adaptiveCoverCheck 4 coverCell00001 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell00001 (by decide +kernel) + +theorem checked00002 : adaptiveCoverCheck 4 coverCell00002 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell00002 (by decide +kernel) + +theorem checked00003 : adaptiveCoverCheck 4 coverCell00003 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell00003 (by decide +kernel) + +theorem checked00010 : adaptiveCoverCheck 4 coverCell00010 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell00010 (by decide +kernel) + +theorem checked00011 : adaptiveCoverCheck 4 coverCell00011 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell00011 (by decide +kernel) + +theorem checked00012 : adaptiveCoverCheck 4 coverCell00012 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell00012 (by decide +kernel) + +theorem checked00013 : adaptiveCoverCheck 4 coverCell00013 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell00013 (by decide +kernel) + +theorem checked00100 : adaptiveCoverCheck 4 coverCell00100 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell00100 (by decide +kernel) + +theorem checked00101 : adaptiveCoverCheck 4 coverCell00101 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell00101 (by decide +kernel) + +theorem checked00102 : adaptiveCoverCheck 4 coverCell00102 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell00102 (by decide +kernel) + +theorem checked00103 : adaptiveCoverCheck 4 coverCell00103 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell00103 (by decide +kernel) + +theorem checked00110 : adaptiveCoverCheck 4 coverCell00110 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell00110 (by decide +kernel) + +theorem checked00111 : adaptiveCoverCheck 4 coverCell00111 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell00111 (by decide +kernel) + +theorem checked00112 : adaptiveCoverCheck 4 coverCell00112 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell00112 (by decide +kernel) + +theorem checked00113 : adaptiveCoverCheck 4 coverCell00113 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell00113 (by decide +kernel) + +theorem checked01000 : adaptiveCoverCheck 4 coverCell01000 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell01000 (by decide +kernel) + +theorem checked01001 : adaptiveCoverCheck 4 coverCell01001 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell01001 (by decide +kernel) + +theorem checked01002 : adaptiveCoverCheck 4 coverCell01002 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell01002 (by decide +kernel) + +theorem checked01003 : adaptiveCoverCheck 4 coverCell01003 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell01003 (by decide +kernel) + +theorem checked01010 : adaptiveCoverCheck 4 coverCell01010 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell01010 (by decide +kernel) + +theorem checked01011 : adaptiveCoverCheck 4 coverCell01011 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell01011 (by decide +kernel) + +theorem checked01012 : adaptiveCoverCheck 4 coverCell01012 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell01012 (by decide +kernel) + +theorem checked01013 : adaptiveCoverCheck 4 coverCell01013 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell01013 (by decide +kernel) + +theorem checked01100 : adaptiveCoverCheck 4 coverCell01100 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell01100 (by decide +kernel) + +theorem checked01101 : adaptiveCoverCheck 4 coverCell01101 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell01101 (by decide +kernel) + +theorem checked01102 : adaptiveCoverCheck 4 coverCell01102 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell01102 (by decide +kernel) + +theorem checked01103 : adaptiveCoverCheck 4 coverCell01103 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell01103 (by decide +kernel) + +theorem checked01110 : adaptiveCoverCheck 4 coverCell01110 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell01110 (by decide +kernel) + +theorem checked01111 : adaptiveCoverCheck 4 coverCell01111 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell01111 (by decide +kernel) + +theorem checked01112 : adaptiveCoverCheck 4 coverCell01112 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell01112 (by decide +kernel) + +theorem checked01113 : adaptiveCoverCheck 4 coverCell01113 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell01113 (by decide +kernel) + +theorem checked10000 : adaptiveCoverCheck 4 coverCell10000 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell10000 (by decide +kernel) + +theorem checked10001 : adaptiveCoverCheck 4 coverCell10001 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell10001 (by decide +kernel) + +theorem checked10002 : adaptiveCoverCheck 4 coverCell10002 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell10002 (by decide +kernel) + +theorem checked10003 : adaptiveCoverCheck 4 coverCell10003 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell10003 (by decide +kernel) + +theorem checked10010 : adaptiveCoverCheck 4 coverCell10010 = true := by + exact adaptiveCoverCheck_succ_of_children 3 coverCell10010 + checked100100 checked100101 checked100102 checked100103 + +theorem checked10011 : adaptiveCoverCheck 4 coverCell10011 = true := by + exact adaptiveCoverCheck_succ_of_children 3 coverCell10011 + checked100110 checked100111 checked100112 checked100113 + +theorem checked10012 : adaptiveCoverCheck 4 coverCell10012 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell10012 (by decide +kernel) + +theorem checked10013 : adaptiveCoverCheck 4 coverCell10013 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell10013 (by decide +kernel) + +theorem checked10100 : adaptiveCoverCheck 4 coverCell10100 = true := by + exact adaptiveCoverCheck_succ_of_children 3 coverCell10100 + checked101000 checked101001 checked101002 checked101003 + +theorem checked10101 : adaptiveCoverCheck 4 coverCell10101 = true := by + exact adaptiveCoverCheck_succ_of_children 3 coverCell10101 + checked101010 checked101011 checked101012 checked101013 + +theorem checked10102 : adaptiveCoverCheck 4 coverCell10102 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell10102 (by decide +kernel) + +theorem checked10103 : adaptiveCoverCheck 4 coverCell10103 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell10103 (by decide +kernel) + +theorem checked10110 : adaptiveCoverCheck 4 coverCell10110 = true := by + exact adaptiveCoverCheck_succ_of_children 3 coverCell10110 + checked101100 checked101101 checked101102 checked101103 + +theorem checked10111 : adaptiveCoverCheck 4 coverCell10111 = true := by + exact adaptiveCoverCheck_succ_of_children 3 coverCell10111 + checked101110 checked101111 checked101112 checked101113 + +theorem checked10112 : adaptiveCoverCheck 4 coverCell10112 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell10112 (by decide +kernel) + +theorem checked10113 : adaptiveCoverCheck 4 coverCell10113 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell10113 (by decide +kernel) + +theorem checked11000 : adaptiveCoverCheck 4 coverCell11000 = true := by + exact adaptiveCoverCheck_succ_of_children 3 coverCell11000 + checked110000 checked110001 checked110002 checked110003 + +theorem checked11001 : adaptiveCoverCheck 4 coverCell11001 = true := by + exact adaptiveCoverCheck_succ_of_children 3 coverCell11001 + checked110010 checked110011 checked110012 checked110013 + +theorem checked11002 : adaptiveCoverCheck 4 coverCell11002 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell11002 (by decide +kernel) + +theorem checked11003 : adaptiveCoverCheck 4 coverCell11003 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell11003 (by decide +kernel) + +theorem checked11010 : adaptiveCoverCheck 4 coverCell11010 = true := by + exact adaptiveCoverCheck_succ_of_children 3 coverCell11010 + checked110100 checked110101 checked110102 checked110103 + +theorem checked11011 : adaptiveCoverCheck 4 coverCell11011 = true := by + exact adaptiveCoverCheck_succ_of_children 3 coverCell11011 + checked110110 checked110111 checked110112 checked110113 + +theorem checked11012 : adaptiveCoverCheck 4 coverCell11012 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell11012 (by decide +kernel) + +theorem checked11013 : adaptiveCoverCheck 4 coverCell11013 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell11013 (by decide +kernel) + +theorem checked11100 : adaptiveCoverCheck 4 coverCell11100 = true := by + exact adaptiveCoverCheck_succ_of_children 3 coverCell11100 + checked111000 checked111001 checked111002 checked111003 + +theorem checked11101 : adaptiveCoverCheck 4 coverCell11101 = true := by + exact adaptiveCoverCheck_succ_of_children 3 coverCell11101 + checked111010 checked111011 checked111012 checked111013 + +theorem checked11102 : adaptiveCoverCheck 4 coverCell11102 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell11102 (by decide +kernel) + +theorem checked11103 : adaptiveCoverCheck 4 coverCell11103 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell11103 (by decide +kernel) + +theorem checked11110 : adaptiveCoverCheck 4 coverCell11110 = true := by + exact adaptiveCoverCheck_succ_of_children 3 coverCell11110 + checked111100 checked111101 checked111102 checked111103 + +theorem checked11111 : adaptiveCoverCheck 4 coverCell11111 = true := by + exact adaptiveCoverCheck_succ_of_children 3 coverCell11111 + checked111110 checked111111 checked111112 checked111113 + +theorem checked11112 : adaptiveCoverCheck 4 coverCell11112 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell11112 (by decide +kernel) + +theorem checked11113 : adaptiveCoverCheck 4 coverCell11113 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 coverCell11113 (by decide +kernel) + +theorem checked0000 : adaptiveCoverCheck 5 coverCell0000 = true := by + exact adaptiveCoverCheck_succ_of_children 4 coverCell0000 + checked00000 checked00001 checked00002 checked00003 + +theorem checked0001 : adaptiveCoverCheck 5 coverCell0001 = true := by + exact adaptiveCoverCheck_succ_of_children 4 coverCell0001 + checked00010 checked00011 checked00012 checked00013 + +theorem checked0002 : adaptiveCoverCheck 5 coverCell0002 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell0002 (by decide +kernel) + +theorem checked0003 : adaptiveCoverCheck 5 coverCell0003 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell0003 (by decide +kernel) + +theorem checked0010 : adaptiveCoverCheck 5 coverCell0010 = true := by + exact adaptiveCoverCheck_succ_of_children 4 coverCell0010 + checked00100 checked00101 checked00102 checked00103 + +theorem checked0011 : adaptiveCoverCheck 5 coverCell0011 = true := by + exact adaptiveCoverCheck_succ_of_children 4 coverCell0011 + checked00110 checked00111 checked00112 checked00113 + +theorem checked0012 : adaptiveCoverCheck 5 coverCell0012 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell0012 (by decide +kernel) + +theorem checked0013 : adaptiveCoverCheck 5 coverCell0013 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell0013 (by decide +kernel) + +theorem checked0100 : adaptiveCoverCheck 5 coverCell0100 = true := by + exact adaptiveCoverCheck_succ_of_children 4 coverCell0100 + checked01000 checked01001 checked01002 checked01003 + +theorem checked0101 : adaptiveCoverCheck 5 coverCell0101 = true := by + exact adaptiveCoverCheck_succ_of_children 4 coverCell0101 + checked01010 checked01011 checked01012 checked01013 + +theorem checked0102 : adaptiveCoverCheck 5 coverCell0102 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell0102 (by decide +kernel) + +theorem checked0103 : adaptiveCoverCheck 5 coverCell0103 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell0103 (by decide +kernel) + +theorem checked0110 : adaptiveCoverCheck 5 coverCell0110 = true := by + exact adaptiveCoverCheck_succ_of_children 4 coverCell0110 + checked01100 checked01101 checked01102 checked01103 + +theorem checked0111 : adaptiveCoverCheck 5 coverCell0111 = true := by + exact adaptiveCoverCheck_succ_of_children 4 coverCell0111 + checked01110 checked01111 checked01112 checked01113 + +theorem checked0112 : adaptiveCoverCheck 5 coverCell0112 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell0112 (by decide +kernel) + +theorem checked0113 : adaptiveCoverCheck 5 coverCell0113 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell0113 (by decide +kernel) + +theorem checked1000 : adaptiveCoverCheck 5 coverCell1000 = true := by + exact adaptiveCoverCheck_succ_of_children 4 coverCell1000 + checked10000 checked10001 checked10002 checked10003 + +theorem checked1001 : adaptiveCoverCheck 5 coverCell1001 = true := by + exact adaptiveCoverCheck_succ_of_children 4 coverCell1001 + checked10010 checked10011 checked10012 checked10013 + +theorem checked1002 : adaptiveCoverCheck 5 coverCell1002 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell1002 (by decide +kernel) + +theorem checked1003 : adaptiveCoverCheck 5 coverCell1003 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell1003 (by decide +kernel) + +theorem checked1010 : adaptiveCoverCheck 5 coverCell1010 = true := by + exact adaptiveCoverCheck_succ_of_children 4 coverCell1010 + checked10100 checked10101 checked10102 checked10103 + +theorem checked1011 : adaptiveCoverCheck 5 coverCell1011 = true := by + exact adaptiveCoverCheck_succ_of_children 4 coverCell1011 + checked10110 checked10111 checked10112 checked10113 + +theorem checked1012 : adaptiveCoverCheck 5 coverCell1012 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell1012 (by decide +kernel) + +theorem checked1013 : adaptiveCoverCheck 5 coverCell1013 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell1013 (by decide +kernel) + +theorem checked1100 : adaptiveCoverCheck 5 coverCell1100 = true := by + exact adaptiveCoverCheck_succ_of_children 4 coverCell1100 + checked11000 checked11001 checked11002 checked11003 + +theorem checked1101 : adaptiveCoverCheck 5 coverCell1101 = true := by + exact adaptiveCoverCheck_succ_of_children 4 coverCell1101 + checked11010 checked11011 checked11012 checked11013 + +theorem checked1102 : adaptiveCoverCheck 5 coverCell1102 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell1102 (by decide +kernel) + +theorem checked1103 : adaptiveCoverCheck 5 coverCell1103 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell1103 (by decide +kernel) + +theorem checked1110 : adaptiveCoverCheck 5 coverCell1110 = true := by + exact adaptiveCoverCheck_succ_of_children 4 coverCell1110 + checked11100 checked11101 checked11102 checked11103 + +theorem checked1111 : adaptiveCoverCheck 5 coverCell1111 = true := by + exact adaptiveCoverCheck_succ_of_children 4 coverCell1111 + checked11110 checked11111 checked11112 checked11113 + +theorem checked1112 : adaptiveCoverCheck 5 coverCell1112 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell1112 (by decide +kernel) + +theorem checked1113 : adaptiveCoverCheck 5 coverCell1113 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell1113 (by decide +kernel) + +theorem checked1120 : adaptiveCoverCheck 5 coverCell1120 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell1120 (by decide +kernel) + +theorem checked1121 : adaptiveCoverCheck 5 coverCell1121 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell1121 (by decide +kernel) + +theorem checked1122 : adaptiveCoverCheck 5 coverCell1122 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell1122 (by decide +kernel) + +theorem checked1123 : adaptiveCoverCheck 5 coverCell1123 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell1123 (by decide +kernel) + +theorem checked1130 : adaptiveCoverCheck 5 coverCell1130 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell1130 (by decide +kernel) + +theorem checked1131 : adaptiveCoverCheck 5 coverCell1131 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell1131 (by decide +kernel) + +theorem checked1132 : adaptiveCoverCheck 5 coverCell1132 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell1132 (by decide +kernel) + +theorem checked1133 : adaptiveCoverCheck 5 coverCell1133 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 coverCell1133 (by decide +kernel) + +theorem checked000 : adaptiveCoverCheck 6 coverCell000 = true := by + exact adaptiveCoverCheck_succ_of_children 5 coverCell000 + checked0000 checked0001 checked0002 checked0003 + +theorem checked001 : adaptiveCoverCheck 6 coverCell001 = true := by + exact adaptiveCoverCheck_succ_of_children 5 coverCell001 + checked0010 checked0011 checked0012 checked0013 + +theorem checked002 : adaptiveCoverCheck 6 coverCell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 coverCell002 (by decide +kernel) + +theorem checked003 : adaptiveCoverCheck 6 coverCell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 coverCell003 (by decide +kernel) + +theorem checked010 : adaptiveCoverCheck 6 coverCell010 = true := by + exact adaptiveCoverCheck_succ_of_children 5 coverCell010 + checked0100 checked0101 checked0102 checked0103 + +theorem checked011 : adaptiveCoverCheck 6 coverCell011 = true := by + exact adaptiveCoverCheck_succ_of_children 5 coverCell011 + checked0110 checked0111 checked0112 checked0113 + +theorem checked012 : adaptiveCoverCheck 6 coverCell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 coverCell012 (by decide +kernel) + +theorem checked013 : adaptiveCoverCheck 6 coverCell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 coverCell013 (by decide +kernel) + +theorem checked030 : adaptiveCoverCheck 6 coverCell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 coverCell030 (by decide +kernel) + +theorem checked031 : adaptiveCoverCheck 6 coverCell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 coverCell031 (by decide +kernel) + +theorem checked032 : adaptiveCoverCheck 6 coverCell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 coverCell032 (by decide +kernel) + +theorem checked033 : adaptiveCoverCheck 6 coverCell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 coverCell033 (by decide +kernel) + +theorem checked100 : adaptiveCoverCheck 6 coverCell100 = true := by + exact adaptiveCoverCheck_succ_of_children 5 coverCell100 + checked1000 checked1001 checked1002 checked1003 + +theorem checked101 : adaptiveCoverCheck 6 coverCell101 = true := by + exact adaptiveCoverCheck_succ_of_children 5 coverCell101 + checked1010 checked1011 checked1012 checked1013 + +theorem checked102 : adaptiveCoverCheck 6 coverCell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 coverCell102 (by decide +kernel) + +theorem checked103 : adaptiveCoverCheck 6 coverCell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 coverCell103 (by decide +kernel) + +theorem checked110 : adaptiveCoverCheck 6 coverCell110 = true := by + exact adaptiveCoverCheck_succ_of_children 5 coverCell110 + checked1100 checked1101 checked1102 checked1103 + +theorem checked111 : adaptiveCoverCheck 6 coverCell111 = true := by + exact adaptiveCoverCheck_succ_of_children 5 coverCell111 + checked1110 checked1111 checked1112 checked1113 + +theorem checked112 : adaptiveCoverCheck 6 coverCell112 = true := by + exact adaptiveCoverCheck_succ_of_children 5 coverCell112 + checked1120 checked1121 checked1122 checked1123 + +theorem checked113 : adaptiveCoverCheck 6 coverCell113 = true := by + exact adaptiveCoverCheck_succ_of_children 5 coverCell113 + checked1130 checked1131 checked1132 checked1133 + +theorem checked120 : adaptiveCoverCheck 6 coverCell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 coverCell120 (by decide +kernel) + +theorem checked121 : adaptiveCoverCheck 6 coverCell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 coverCell121 (by decide +kernel) + +theorem checked122 : adaptiveCoverCheck 6 coverCell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 coverCell122 (by decide +kernel) + +theorem checked123 : adaptiveCoverCheck 6 coverCell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 coverCell123 (by decide +kernel) + +theorem checked130 : adaptiveCoverCheck 6 coverCell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 coverCell130 (by decide +kernel) + +theorem checked131 : adaptiveCoverCheck 6 coverCell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 coverCell131 (by decide +kernel) + +theorem checked132 : adaptiveCoverCheck 6 coverCell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 coverCell132 (by decide +kernel) + +theorem checked133 : adaptiveCoverCheck 6 coverCell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 coverCell133 (by decide +kernel) + +theorem checked00 : adaptiveCoverCheck 7 coverCell00 = true := by + exact adaptiveCoverCheck_succ_of_children 6 coverCell00 + checked000 checked001 checked002 checked003 + +theorem checked01 : adaptiveCoverCheck 7 coverCell01 = true := by + exact adaptiveCoverCheck_succ_of_children 6 coverCell01 + checked010 checked011 checked012 checked013 + +theorem checked02 : adaptiveCoverCheck 7 coverCell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 coverCell02 (by decide +kernel) + +theorem checked03 : adaptiveCoverCheck 7 coverCell03 = true := by + exact adaptiveCoverCheck_succ_of_children 6 coverCell03 + checked030 checked031 checked032 checked033 + +theorem checked10 : adaptiveCoverCheck 7 coverCell10 = true := by + exact adaptiveCoverCheck_succ_of_children 6 coverCell10 + checked100 checked101 checked102 checked103 + +theorem checked11 : adaptiveCoverCheck 7 coverCell11 = true := by + exact adaptiveCoverCheck_succ_of_children 6 coverCell11 + checked110 checked111 checked112 checked113 + +theorem checked12 : adaptiveCoverCheck 7 coverCell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 coverCell12 + checked120 checked121 checked122 checked123 + +theorem checked13 : adaptiveCoverCheck 7 coverCell13 = true := by + exact adaptiveCoverCheck_succ_of_children 6 coverCell13 + checked130 checked131 checked132 checked133 + +theorem checked20 : adaptiveCoverCheck 7 coverCell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 coverCell20 (by decide +kernel) + +theorem checked21 : adaptiveCoverCheck 7 coverCell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 coverCell21 (by decide +kernel) + +theorem checked22 : adaptiveCoverCheck 7 coverCell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 coverCell22 (by decide +kernel) + +theorem checked23 : adaptiveCoverCheck 7 coverCell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 coverCell23 (by decide +kernel) + +theorem checked30 : adaptiveCoverCheck 7 coverCell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 coverCell30 (by decide +kernel) + +theorem checked31 : adaptiveCoverCheck 7 coverCell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 coverCell31 (by decide +kernel) + +theorem checked32 : adaptiveCoverCheck 7 coverCell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 coverCell32 (by decide +kernel) + +theorem checked33 : adaptiveCoverCheck 7 coverCell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 coverCell33 (by decide +kernel) + +theorem checked0 : adaptiveCoverCheck 8 coverCell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 coverCell0 + checked00 checked01 checked02 checked03 + +theorem checked1 : adaptiveCoverCheck 8 coverCell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 coverCell1 + checked10 checked11 checked12 checked13 + +theorem checked2 : adaptiveCoverCheck 8 coverCell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 coverCell2 + checked20 checked21 checked22 checked23 + +theorem checked3 : adaptiveCoverCheck 8 coverCell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 coverCell3 + checked30 checked31 checked32 checked33 + +theorem checkedRoot : adaptiveCoverCheck 9 coverCell = true := by + exact adaptiveCoverCheck_succ_of_children 8 coverCell + checked0 checked1 checked2 checked3 + +end CoverPhiAbove1101100 + +theorem e24KC2PhiAboveLeaf1101100 : + adaptiveCoverCheck 9 CoverPhiAbove1101100.coverCell = true := + CoverPhiAbove1101100.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC4 auto-tuned batched kernel certificates. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf80409361d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf80409361d + +open CertificateCellsf80409361d +namespace CoverCertificate6cd78cf99c + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate6cd78cf99c + +theorem e24KC2PhiAboveLeaf1011011 : + adaptiveCoverCheck 9 (childLH (childLH (childLL phiAboveCell1011))) = true := by + exact CoverCertificate6cd78cf99c.checkedRoot +namespace CoverCertificate3b2bb200ff + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3b2bb200ff + +theorem e24KC2PhiAboveLeaf1011100 : + adaptiveCoverCheck 9 (childLL (childLL (childLH phiAboveCell1011))) = true := by + exact CoverCertificate3b2bb200ff.checkedRoot +namespace CoverCertificate416e1e96e0 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate416e1e96e0 + +theorem e24KC2PhiAboveLeaf1011101 : + adaptiveCoverCheck 9 (childLH (childLL (childLH phiAboveCell1011))) = true := by + exact CoverCertificate416e1e96e0.checkedRoot +namespace CoverCertificate2a65321173 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate2a65321173 + +theorem e24KC2PhiAboveLeaf1011110 : + adaptiveCoverCheck 9 (childLL (childLH (childLH phiAboveCell1011))) = true := by + exact CoverCertificate2a65321173.checkedRoot +namespace CoverCertificatecc929b68fe + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatecc929b68fe + +theorem e24KC2PhiAboveLeaf1011111 : + adaptiveCoverCheck 9 (childLH (childLH (childLH phiAboveCell1011))) = true := by + exact CoverCertificatecc929b68fe.checkedRoot +namespace CoverCertificate82c27f8e4d + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate82c27f8e4d + +theorem e24KC2PhiAboveLeaf1100000 : + adaptiveCoverCheck 9 (childLL (childLL (childLL phiAboveCell1100))) = true := by + exact CoverCertificate82c27f8e4d.checkedRoot +namespace CoverCertificatecbf8beb65d + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatecbf8beb65d + +theorem e24KC2PhiAboveLeaf1100001 : + adaptiveCoverCheck 9 (childLH (childLL (childLL phiAboveCell1100))) = true := by + exact CoverCertificatecbf8beb65d.checkedRoot +namespace CoverCertificate319b5d79a7 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate319b5d79a7 + +theorem e24KC2PhiAboveLeaf1100010 : + adaptiveCoverCheck 9 (childLL (childLH (childLL phiAboveCell1100))) = true := by + exact CoverCertificate319b5d79a7.checkedRoot +namespace CoverCertificate52a2adcf18 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate52a2adcf18 + +theorem e24KC2PhiAboveLeaf1100011 : + adaptiveCoverCheck 9 (childLH (childLH (childLL phiAboveCell1100))) = true := by + exact CoverCertificate52a2adcf18.checkedRoot +namespace CoverCertificatef66846141d + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef66846141d + +theorem e24KC2PhiAboveLeaf1100100 : + adaptiveCoverCheck 9 (childLL (childLL (childLH phiAboveCell1100))) = true := by + exact CoverCertificatef66846141d.checkedRoot +namespace CoverCertificate5cd1561dfb + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5cd1561dfb + +theorem e24KC2PhiAboveLeaf1100101 : + adaptiveCoverCheck 9 (childLH (childLL (childLH phiAboveCell1100))) = true := by + exact CoverCertificate5cd1561dfb.checkedRoot +namespace CoverCertificate43ce0d7d08 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate43ce0d7d08 + +theorem e24KC2PhiAboveLeaf1100110 : + adaptiveCoverCheck 9 (childLL (childLH (childLH phiAboveCell1100))) = true := by + exact CoverCertificate43ce0d7d08.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells93b6719794 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells93b6719794 + +open CertificateCells93b6719794 +namespace CoverCertificate3c4ee9d54f + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3c4ee9d54f + +theorem e24KC2PhiAboveLeaf1101102 : + adaptiveCoverCheck 9 (childHL (childLL (childLH phiAboveCell1101))) = true := by + exact CoverCertificate3c4ee9d54f.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsdf243d4011 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsdf243d4011 + +open CertificateCellsdf243d4011 +namespace CoverCertificate5ea8c0bac2 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5ea8c0bac2 + +theorem e24KC2PhiAboveLeaf1101103 : + adaptiveCoverCheck 9 (childHH (childLL (childLH phiAboveCell1101))) = true := by + exact CoverCertificate5ea8c0bac2.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells88c20ab319 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells88c20ab319 + +open CertificateCells88c20ab319 +namespace CoverCertificatec619bc60a1 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec619bc60a1 + +theorem e24KC2PhiAboveLeaf1101112 : + adaptiveCoverCheck 9 (childHL (childLH (childLH phiAboveCell1101))) = true := by + exact CoverCertificatec619bc60a1.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2e53b5dd0c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2e53b5dd0c + +open CertificateCells2e53b5dd0c +namespace CoverCertificate5746fe2caf + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5746fe2caf + +theorem e24KC2PhiAboveLeaf1101113 : + adaptiveCoverCheck 9 (childHH (childLH (childLH phiAboveCell1101))) = true := by + exact CoverCertificate5746fe2caf.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsce9330d4cd + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsce9330d4cd + +open CertificateCellsce9330d4cd +namespace CoverCertificate98b9778203 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate98b9778203 + +theorem e24KC2PhiBelowLeaf33313 : + adaptiveCoverCheck 9 (childHH phiBelowCell3331) = true := by + exact CoverCertificate98b9778203.checkedRoot +namespace CoverCertificate7f98aa56d1 + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate7f98aa56d1 + +theorem e24KC2PhiBelowLeaf33320 : + adaptiveCoverCheck 9 (childLL phiBelowCell3332) = true := by + exact CoverCertificate7f98aa56d1.checkedRoot +namespace CoverCertificateb650783453 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateb650783453 + +theorem e24KC2PhiBelowLeaf33321 : + adaptiveCoverCheck 9 (childLH phiBelowCell3332) = true := by + exact CoverCertificateb650783453.checkedRoot +namespace CoverCertificate05dde891b1 + +private theorem checked2220 : adaptiveCoverCheck 5 cell2220 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2220 (by decide +kernel) + +private theorem checked2221 : adaptiveCoverCheck 5 cell2221 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2221 (by decide +kernel) + +private theorem checked2222 : adaptiveCoverCheck 5 cell2222 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2222 (by decide +kernel) + +private theorem checked2223 : adaptiveCoverCheck 5 cell2223 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2223 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 6 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 6 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 6 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 6 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 6 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 6 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 6 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 6 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 6 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 6 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 6 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 6 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 6 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 6 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 6 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 6 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 6 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 6 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 6 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 6 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell123 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 6 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 6 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 6 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 6 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 6 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 6 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 6 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 6 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell222 + checked2220 checked2221 checked2222 checked2223 + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 6 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 6 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 6 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 6 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 6 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 6 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 6 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 6 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 6 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 6 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 6 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 6 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate05dde891b1 + +theorem e24KC2PhiBelowLeaf33322 : + adaptiveCoverCheck 9 (childHL phiBelowCell3332) = true := by + exact CoverCertificate05dde891b1.checkedRoot +namespace CoverCertificatedd1cfe6f59 + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatedd1cfe6f59 + +theorem e24KC2PhiBelowLeaf33323 : + adaptiveCoverCheck 9 (childHH phiBelowCell3332) = true := by + exact CoverCertificatedd1cfe6f59.checkedRoot +namespace CoverCertificatefe5dc96009 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatefe5dc96009 + +theorem e24KC2PhiBelowLeaf33330 : + adaptiveCoverCheck 9 (childLL phiBelowCell3333) = true := by + exact CoverCertificatefe5dc96009.checkedRoot +namespace CoverCertificate7ba2433252 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate7ba2433252 + +theorem e24KC2PhiBelowLeaf33331 : + adaptiveCoverCheck 9 (childLH phiBelowCell3333) = true := by + exact CoverCertificate7ba2433252.checkedRoot +namespace CoverCertificate7633ba69a5 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate7633ba69a5 + +theorem e24KC2PhiBelowLeaf33332 : + adaptiveCoverCheck 9 (childHL phiBelowCell3333) = true := by + exact CoverCertificate7633ba69a5.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9612bd9bbf + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9612bd9bbf + +open CertificateCells9612bd9bbf +namespace CoverCertificate8e17b594b9 + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate8e17b594b9 + +theorem e24KC2PhiBelowLeaf33333 : + adaptiveCoverCheck 9 (childHH phiBelowCell3333) = true := by + exact CoverCertificate8e17b594b9.checkedRoot +namespace CoverCertificate2ad8ea30c5 + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 6 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 6 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 6 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 6 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate2ad8ea30c5 + +theorem e24KC2ThetaAboveLeaf0000220002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00002200)) = true := by + exact CoverCertificate2ad8ea30c5.checkedRoot +namespace CoverCertificate5fed50edc5 + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 6 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 6 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 6 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 6 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5fed50edc5 + +theorem e24KC2ThetaAboveLeaf0000220003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00002200)) = true := by + exact CoverCertificate5fed50edc5.checkedRoot +namespace CoverCertificatebeb942e0ae + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 6 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 6 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 6 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 6 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatebeb942e0ae + +theorem e24KC2ThetaAboveLeaf0000220012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00002200)) = true := by + exact CoverCertificatebeb942e0ae.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd19e562ded + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd19e562ded + +open CertificateCellsd19e562ded +namespace CoverCertificate4aac8bf510 + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 6 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 6 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 6 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 6 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4aac8bf510 + +theorem e24KC2ThetaAboveLeaf0000220013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00002200)) = true := by + exact CoverCertificate4aac8bf510.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse3e967073d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse3e967073d + +open CertificateCellse3e967073d +namespace CoverCertificate018ca4eb00 + +private theorem checked000 : adaptiveCoverCheck 6 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 6 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 6 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 6 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 6 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 6 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 6 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 6 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 6 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 6 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 6 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 6 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 6 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 6 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 6 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 6 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 6 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 6 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 6 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 6 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 6 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 6 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 6 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 6 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 6 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 6 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 6 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 6 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 6 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 6 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 6 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 6 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 6 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 6 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 6 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 6 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 6 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 6 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 6 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 6 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 6 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 6 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 6 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 6 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 6 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 6 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 6 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 6 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell313 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate018ca4eb00 + +theorem e24KC2PhiAboveLeaf1110101 : + adaptiveCoverCheck 9 (childLH (childLL (childLH phiAboveCell1110))) = true := by + exact CoverCertificate018ca4eb00.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells23b3ec373b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells23b3ec373b + +open CertificateCells23b3ec373b +namespace CoverCertificatefbeddf9072 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatefbeddf9072 + +theorem e24KC2PhiAboveLeaf1110102 : + adaptiveCoverCheck 9 (childHL (childLL (childLH phiAboveCell1110))) = true := by + exact CoverCertificatefbeddf9072.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9b25d0fd5e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9b25d0fd5e + +open CertificateCells9b25d0fd5e +namespace CoverCertificatee6bd46d219 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee6bd46d219 + +theorem e24KC2PhiAboveLeaf1110103 : + adaptiveCoverCheck 9 (childHH (childLL (childLH phiAboveCell1110))) = true := by + exact CoverCertificatee6bd46d219.checkedRoot +namespace CoverCertificate2a0a30dc9d + +private theorem checked000 : adaptiveCoverCheck 6 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 6 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 6 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 6 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 6 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 6 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 6 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 6 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 6 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 6 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 6 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 6 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 6 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 6 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 6 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 6 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 6 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 6 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 6 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 6 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 6 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 6 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 6 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 6 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 6 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 6 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 6 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 6 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 6 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 6 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 6 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 6 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 6 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 6 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 6 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 6 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 6 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 6 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 6 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 6 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 6 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 6 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 6 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 6 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 6 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 6 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 6 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 6 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 6 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 6 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 6 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 6 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate2a0a30dc9d + +theorem e24KC2PhiAboveLeaf1110110 : + adaptiveCoverCheck 9 (childLL (childLH (childLH phiAboveCell1110))) = true := by + exact CoverCertificate2a0a30dc9d.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells486c3dc7d8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells486c3dc7d8 + +open CertificateCells486c3dc7d8 +namespace CoverCertificateff98d0df99 + +private theorem checked000 : adaptiveCoverCheck 6 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 6 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 6 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 6 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 6 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 6 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 6 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 6 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 6 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 6 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 6 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 6 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 6 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 6 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 6 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 6 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 6 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 6 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 6 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 6 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 6 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 6 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 6 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 6 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 6 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 6 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 6 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 6 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 6 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 6 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 6 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 6 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 6 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 6 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 6 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 6 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 6 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 6 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 6 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 6 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 6 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 6 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 6 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 6 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 6 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 6 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 6 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 6 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 6 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 6 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 6 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 6 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateff98d0df99 + +theorem e24KC2PhiAboveLeaf1110111 : + adaptiveCoverCheck 9 (childLH (childLH (childLH phiAboveCell1110))) = true := by + exact CoverCertificateff98d0df99.checkedRoot +namespace CoverCertificate63e0e0ed96 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate63e0e0ed96 + +theorem e24KC2PhiAboveLeaf1110112 : + adaptiveCoverCheck 9 (childHL (childLH (childLH phiAboveCell1110))) = true := by + exact CoverCertificate63e0e0ed96.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsdd72fc553d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsdd72fc553d + +open CertificateCellsdd72fc553d +namespace CoverCertificate1d20eb40b2 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1d20eb40b2 + +theorem e24KC2PhiAboveLeaf1110113 : + adaptiveCoverCheck 9 (childHH (childLH (childLH phiAboveCell1110))) = true := by + exact CoverCertificate1d20eb40b2.checkedRoot +namespace CoverCertificate49ab43c4dd + +private theorem checked020 : adaptiveCoverCheck 6 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 6 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 6 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 6 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 6 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 6 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 6 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 6 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 6 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 6 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 6 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 6 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 6 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 6 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 6 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 6 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 6 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 6 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 6 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 6 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 6 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 6 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 6 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 6 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 6 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 6 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 6 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 6 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 6 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 6 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 6 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 6 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 6 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 6 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 6 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 6 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate49ab43c4dd + +theorem e24KC2PhiAboveLeaf1111000 : + adaptiveCoverCheck 9 (childLL (childLL (childLL phiAboveCell1111))) = true := by + exact CoverCertificate49ab43c4dd.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells308b6c24e8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells308b6c24e8 + +open CertificateCells308b6c24e8 +namespace CoverCertificatede0603de49 + +private theorem checked020 : adaptiveCoverCheck 6 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 6 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 6 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 6 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 6 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 6 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 6 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 6 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 6 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 6 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 6 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 6 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 6 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 6 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 6 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 6 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 6 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 6 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 6 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 6 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 6 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 6 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 6 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 6 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 6 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 6 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 6 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 6 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 6 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 6 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 6 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 6 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 6 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 6 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 6 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 6 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatede0603de49 + +theorem e24KC2PhiAboveLeaf1111001 : + adaptiveCoverCheck 9 (childLH (childLL (childLL phiAboveCell1111))) = true := by + exact CoverCertificatede0603de49.checkedRoot +namespace CoverCertificate90d2e1946c + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate90d2e1946c + +theorem e24KC2PhiAboveLeaf1111002 : + adaptiveCoverCheck 9 (childHL (childLL (childLL phiAboveCell1111))) = true := by + exact CoverCertificate90d2e1946c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells48ddfaabb3 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells48ddfaabb3 + +open CertificateCells48ddfaabb3 +namespace CoverCertificatebf3761efb7 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatebf3761efb7 + +theorem e24KC2PhiAboveLeaf1111003 : + adaptiveCoverCheck 9 (childHH (childLL (childLL phiAboveCell1111))) = true := by + exact CoverCertificatebf3761efb7.checkedRoot +namespace CoverCertificate48ab78c281 + +private theorem checked020 : adaptiveCoverCheck 6 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 6 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 6 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 6 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 6 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 6 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 6 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 6 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 6 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 6 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 6 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 6 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 6 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 6 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 6 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 6 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 6 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 6 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 6 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 6 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 6 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 6 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 6 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 6 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 6 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 6 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 6 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 6 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 6 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 6 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 6 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 6 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 6 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 6 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 6 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 6 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate48ab78c281 + +theorem e24KC2PhiAboveLeaf1111010 : + adaptiveCoverCheck 9 (childLL (childLH (childLL phiAboveCell1111))) = true := by + exact CoverCertificate48ab78c281.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4368513ed3 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4368513ed3 + +open CertificateCells4368513ed3 +namespace CoverCertificate5e935aba69 + +private theorem checked020 : adaptiveCoverCheck 6 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 6 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 6 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 6 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 6 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 6 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 6 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 6 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 6 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 6 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 6 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 6 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 6 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 6 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 6 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 6 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 6 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 6 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 6 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 6 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 6 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 6 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 6 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 6 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 6 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 6 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 6 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 6 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 6 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 6 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 6 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 6 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 6 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 6 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 6 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 6 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5e935aba69 + +theorem e24KC2PhiAboveLeaf1111011 : + adaptiveCoverCheck 9 (childLH (childLH (childLL phiAboveCell1111))) = true := by + exact CoverCertificate5e935aba69.checkedRoot +namespace CoverCertificateea859f6e20 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateea859f6e20 + +theorem e24KC2PhiAboveLeaf1111012 : + adaptiveCoverCheck 9 (childHL (childLH (childLL phiAboveCell1111))) = true := by + exact CoverCertificateea859f6e20.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd48a6bc390 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd48a6bc390 + +open CertificateCellsd48a6bc390 +namespace CoverCertificatedc87a79519 + +private theorem checked110 : adaptiveCoverCheck 6 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 6 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 6 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 6 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatedc87a79519 + +theorem e24KC2PhiAboveLeaf1111013 : + adaptiveCoverCheck 9 (childHH (childLH (childLL phiAboveCell1111))) = true := by + exact CoverCertificatedc87a79519.checkedRoot +namespace CoverCertificatefd3c81c65d + +private theorem checked020 : adaptiveCoverCheck 6 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 6 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 6 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 6 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 6 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 6 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 6 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 6 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 6 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 6 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 6 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 6 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 6 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 6 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 6 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 6 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 6 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 6 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 6 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 6 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 6 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 6 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 6 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 6 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 6 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 6 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 6 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 6 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 6 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 6 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 6 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 6 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 6 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 6 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 6 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 6 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatefd3c81c65d + +theorem e24KC2PhiAboveLeaf1111100 : + adaptiveCoverCheck 9 (childLL (childLL (childLH phiAboveCell1111))) = true := by + exact CoverCertificatefd3c81c65d.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC5TerminalBatchT563200014`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3620ccdfd7 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3620ccdfd7 + +open CertificateCells3620ccdfd7 +theorem e24KC2ThetaAboveLeaf110033301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11003330) = true := by + have h : ((childLH thetaAboveCell11003330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11003330) h +theorem e24KC2ThetaAboveLeaf110033302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11003330) = true := by + have h : ((childHL thetaAboveCell11003330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11003330) h +theorem e24KC2ThetaAboveLeaf110033303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11003330) = true := by + have h : ((childHH thetaAboveCell11003330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11003330) h +theorem e24KC2ThetaAboveLeaf110033310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11003331) = true := by + have h : ((childLL thetaAboveCell11003331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11003331) h +theorem e24KC2ThetaAboveLeaf110033311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11003331) = true := by + have h : ((childLH thetaAboveCell11003331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11003331) h +theorem e24KC2ThetaAboveLeaf110033312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11003331) = true := by + have h : ((childHL thetaAboveCell11003331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11003331) h +theorem e24KC2ThetaAboveLeaf110033313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11003331) = true := by + have h : ((childHH thetaAboveCell11003331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11003331) h +theorem e24KC2ThetaAboveLeaf11003332 : + adaptiveCoverCheck 11 thetaAboveCell11003332 = true := by + have h : (thetaAboveCell11003332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11003332 h +theorem e24KC2ThetaAboveLeaf11003333 : + adaptiveCoverCheck 11 thetaAboveCell11003333 = true := by + have h : (thetaAboveCell11003333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11003333 h +theorem e24KC2ThetaAboveLeaf110100 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell1101)) = true := by + have h : ((childLL (childLL thetaAboveCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLL thetaAboveCell1101)) h +theorem e24KC2ThetaAboveLeaf110101 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell1101)) = true := by + have h : ((childLH (childLL thetaAboveCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLL thetaAboveCell1101)) h +theorem e24KC2ThetaAboveLeaf110102 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell1101)) = true := by + have h : ((childHL (childLL thetaAboveCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell1101)) h +theorem e24KC2ThetaAboveLeaf110103 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell1101)) = true := by + have h : ((childHH (childLL thetaAboveCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell1101)) h +theorem e24KC2ThetaAboveLeaf110110 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell1101)) = true := by + have h : ((childLL (childLH thetaAboveCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLH thetaAboveCell1101)) h +theorem e24KC2ThetaAboveLeaf110111 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell1101)) = true := by + have h : ((childLH (childLH thetaAboveCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLH thetaAboveCell1101)) h +theorem e24KC2ThetaAboveLeaf110112 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell1101)) = true := by + have h : ((childHL (childLH thetaAboveCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell1101)) h +theorem e24KC2ThetaAboveLeaf110113 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell1101)) = true := by + have h : ((childHH (childLH thetaAboveCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell1101)) h +theorem e24KC2ThetaAboveLeaf1101200 : + adaptiveCoverCheck 12 (childLL (childLL (childHL thetaAboveCell1101))) = true := by + have h : ((childLL (childLL (childHL thetaAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHL thetaAboveCell1101))) h +theorem e24KC2ThetaAboveLeaf1101201 : + adaptiveCoverCheck 12 (childLH (childLL (childHL thetaAboveCell1101))) = true := by + have h : ((childLH (childLL (childHL thetaAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHL thetaAboveCell1101))) h +theorem e24KC2ThetaAboveLeaf1101202 : + adaptiveCoverCheck 12 (childHL (childLL (childHL thetaAboveCell1101))) = true := by + have h : ((childHL (childLL (childHL thetaAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childHL thetaAboveCell1101))) h +theorem e24KC2ThetaAboveLeaf1101203 : + adaptiveCoverCheck 12 (childHH (childLL (childHL thetaAboveCell1101))) = true := by + have h : ((childHH (childLL (childHL thetaAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childHL thetaAboveCell1101))) h +theorem e24KC2ThetaAboveLeaf1101210 : + adaptiveCoverCheck 12 (childLL (childLH (childHL thetaAboveCell1101))) = true := by + have h : ((childLL (childLH (childHL thetaAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHL thetaAboveCell1101))) h +theorem e24KC2ThetaAboveLeaf1101211 : + adaptiveCoverCheck 12 (childLH (childLH (childHL thetaAboveCell1101))) = true := by + have h : ((childLH (childLH (childHL thetaAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHL thetaAboveCell1101))) h +theorem e24KC2ThetaAboveLeaf1101212 : + adaptiveCoverCheck 12 (childHL (childLH (childHL thetaAboveCell1101))) = true := by + have h : ((childHL (childLH (childHL thetaAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childHL thetaAboveCell1101))) h +theorem e24KC2ThetaAboveLeaf1101213 : + adaptiveCoverCheck 12 (childHH (childLH (childHL thetaAboveCell1101))) = true := by + have h : ((childHH (childLH (childHL thetaAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childHL thetaAboveCell1101))) h +theorem e24KC2ThetaAboveLeaf11012200 : + adaptiveCoverCheck 11 thetaAboveCell11012200 = true := by + have h : (thetaAboveCell11012200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11012200 h +theorem e24KC2ThetaAboveLeaf11012201 : + adaptiveCoverCheck 11 thetaAboveCell11012201 = true := by + have h : (thetaAboveCell11012201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11012201 h +theorem e24KC2ThetaAboveLeaf110122020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11012202) = true := by + have h : ((childLL thetaAboveCell11012202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11012202) h +theorem e24KC2ThetaAboveLeaf110122021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11012202) = true := by + have h : ((childLH thetaAboveCell11012202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11012202) h +theorem e24KC2ThetaAboveLeaf110122022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11012202) = true := by + have h : ((childHL thetaAboveCell11012202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11012202) h +theorem e24KC2ThetaAboveLeaf110122023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11012202) = true := by + have h : ((childHH thetaAboveCell11012202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11012202) h +theorem e24KC2ThetaAboveLeaf110122030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11012203) = true := by + have h : ((childLL thetaAboveCell11012203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11012203) h +theorem e24KC2ThetaAboveLeaf110122031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11012203) = true := by + have h : ((childLH thetaAboveCell11012203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11012203) h +theorem e24KC2ThetaAboveLeaf110122032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11012203) = true := by + have h : ((childHL thetaAboveCell11012203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11012203) h +theorem e24KC2ThetaAboveLeaf110122033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11012203) = true := by + have h : ((childHH thetaAboveCell11012203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11012203) h +theorem e24KC2ThetaAboveLeaf11012210 : + adaptiveCoverCheck 11 thetaAboveCell11012210 = true := by + have h : (thetaAboveCell11012210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11012210 h +theorem e24KC2ThetaAboveLeaf11012211 : + adaptiveCoverCheck 11 thetaAboveCell11012211 = true := by + have h : (thetaAboveCell11012211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11012211 h +theorem e24KC2ThetaAboveLeaf110122120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11012212) = true := by + have h : ((childLL thetaAboveCell11012212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11012212) h +theorem e24KC2ThetaAboveLeaf110122121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11012212) = true := by + have h : ((childLH thetaAboveCell11012212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11012212) h +theorem e24KC2ThetaAboveLeaf110122122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11012212) = true := by + have h : ((childHL thetaAboveCell11012212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11012212) h +theorem e24KC2ThetaAboveLeaf110122123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11012212) = true := by + have h : ((childHH thetaAboveCell11012212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11012212) h +theorem e24KC2ThetaAboveLeaf110122130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11012213) = true := by + have h : ((childLL thetaAboveCell11012213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11012213) h +theorem e24KC2ThetaAboveLeaf110122131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11012213) = true := by + have h : ((childLH thetaAboveCell11012213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11012213) h +theorem e24KC2ThetaAboveLeaf110122132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11012213) = true := by + have h : ((childHL thetaAboveCell11012213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11012213) h +theorem e24KC2ThetaAboveLeaf110122133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11012213) = true := by + have h : ((childHH thetaAboveCell11012213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11012213) h +theorem e24KC2ThetaAboveLeaf110122200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11012220) = true := by + have h : ((childLL thetaAboveCell11012220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11012220) h +theorem e24KC2ThetaAboveLeaf110122201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11012220) = true := by + have h : ((childLH thetaAboveCell11012220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11012220) h +theorem e24KC2ThetaAboveLeaf110122202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11012220) = true := by + have h : ((childHL thetaAboveCell11012220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11012220) h +theorem e24KC2ThetaAboveLeaf110122203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11012220) = true := by + have h : ((childHH thetaAboveCell11012220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11012220) h +theorem e24KC2ThetaAboveLeaf110122210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11012221) = true := by + have h : ((childLL thetaAboveCell11012221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11012221) h +theorem e24KC2ThetaAboveLeaf110122211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11012221) = true := by + have h : ((childLH thetaAboveCell11012221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11012221) h +theorem e24KC2ThetaAboveLeaf110122212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11012221) = true := by + have h : ((childHL thetaAboveCell11012221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11012221) h +theorem e24KC2ThetaAboveLeaf110122213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11012221) = true := by + have h : ((childHH thetaAboveCell11012221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11012221) h +theorem e24KC2ThetaAboveLeaf11012222 : + adaptiveCoverCheck 11 thetaAboveCell11012222 = true := by + have h : (thetaAboveCell11012222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11012222 h +theorem e24KC2ThetaAboveLeaf11012223 : + adaptiveCoverCheck 11 thetaAboveCell11012223 = true := by + have h : (thetaAboveCell11012223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11012223 h +theorem e24KC2ThetaAboveLeaf110122300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11012230) = true := by + have h : ((childLL thetaAboveCell11012230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11012230) h +theorem e24KC2ThetaAboveLeaf110122301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11012230) = true := by + have h : ((childLH thetaAboveCell11012230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11012230) h +theorem e24KC2ThetaAboveLeaf110122302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11012230) = true := by + have h : ((childHL thetaAboveCell11012230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11012230) h +theorem e24KC2ThetaAboveLeaf110122303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11012230) = true := by + have h : ((childHH thetaAboveCell11012230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11012230) h +theorem e24KC2ThetaAboveLeaf110122310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11012231) = true := by + have h : ((childLL thetaAboveCell11012231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11012231) h +theorem e24KC2ThetaAboveLeaf110122311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11012231) = true := by + have h : ((childLH thetaAboveCell11012231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11012231) h +theorem e24KC2ThetaAboveLeaf110122312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11012231) = true := by + have h : ((childHL thetaAboveCell11012231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11012231) h +theorem e24KC2ThetaAboveLeaf110122313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11012231) = true := by + have h : ((childHH thetaAboveCell11012231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11012231) h +theorem e24KC2ThetaAboveLeaf11012232 : + adaptiveCoverCheck 11 thetaAboveCell11012232 = true := by + have h : (thetaAboveCell11012232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11012232 h +theorem e24KC2ThetaAboveLeaf11012233 : + adaptiveCoverCheck 11 thetaAboveCell11012233 = true := by + have h : (thetaAboveCell11012233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11012233 h +theorem e24KC2ThetaAboveLeaf11012300 : + adaptiveCoverCheck 11 thetaAboveCell11012300 = true := by + have h : (thetaAboveCell11012300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11012300 h +theorem e24KC2ThetaAboveLeaf11012301 : + adaptiveCoverCheck 11 thetaAboveCell11012301 = true := by + have h : (thetaAboveCell11012301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11012301 h +theorem e24KC2ThetaAboveLeaf110123020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11012302) = true := by + have h : ((childLL thetaAboveCell11012302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11012302) h +theorem e24KC2ThetaAboveLeaf110123021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11012302) = true := by + have h : ((childLH thetaAboveCell11012302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11012302) h +theorem e24KC2ThetaAboveLeaf110123022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11012302) = true := by + have h : ((childHL thetaAboveCell11012302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11012302) h +theorem e24KC2ThetaAboveLeaf110123023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11012302) = true := by + have h : ((childHH thetaAboveCell11012302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11012302) h +theorem e24KC2ThetaAboveLeaf110123030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11012303) = true := by + have h : ((childLL thetaAboveCell11012303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11012303) h +theorem e24KC2ThetaAboveLeaf110123031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11012303) = true := by + have h : ((childLH thetaAboveCell11012303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11012303) h +theorem e24KC2ThetaAboveLeaf110123032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11012303) = true := by + have h : ((childHL thetaAboveCell11012303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11012303) h +theorem e24KC2ThetaAboveLeaf110123033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11012303) = true := by + have h : ((childHH thetaAboveCell11012303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11012303) h +theorem e24KC2ThetaAboveLeaf11012310 : + adaptiveCoverCheck 11 thetaAboveCell11012310 = true := by + have h : (thetaAboveCell11012310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11012310 h +theorem e24KC2ThetaAboveLeaf11012311 : + adaptiveCoverCheck 11 thetaAboveCell11012311 = true := by + have h : (thetaAboveCell11012311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11012311 h +theorem e24KC2ThetaAboveLeaf110123120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11012312) = true := by + have h : ((childLL thetaAboveCell11012312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11012312) h +theorem e24KC2ThetaAboveLeaf110123121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11012312) = true := by + have h : ((childLH thetaAboveCell11012312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11012312) h +theorem e24KC2ThetaAboveLeaf110123122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11012312) = true := by + have h : ((childHL thetaAboveCell11012312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11012312) h +theorem e24KC2ThetaAboveLeaf110123123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11012312) = true := by + have h : ((childHH thetaAboveCell11012312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11012312) h +theorem e24KC2ThetaAboveLeaf110123130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11012313) = true := by + have h : ((childLL thetaAboveCell11012313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11012313) h +theorem e24KC2ThetaAboveLeaf110123131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11012313) = true := by + have h : ((childLH thetaAboveCell11012313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11012313) h +theorem e24KC2ThetaAboveLeaf110123132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11012313) = true := by + have h : ((childHL thetaAboveCell11012313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11012313) h +theorem e24KC2ThetaAboveLeaf110123133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11012313) = true := by + have h : ((childHH thetaAboveCell11012313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11012313) h +theorem e24KC2ThetaAboveLeaf110123200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11012320) = true := by + have h : ((childLL thetaAboveCell11012320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11012320) h +theorem e24KC2ThetaAboveLeaf110123201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11012320) = true := by + have h : ((childLH thetaAboveCell11012320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11012320) h +theorem e24KC2ThetaAboveLeaf110123202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11012320) = true := by + have h : ((childHL thetaAboveCell11012320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11012320) h +theorem e24KC2ThetaAboveLeaf110123203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11012320) = true := by + have h : ((childHH thetaAboveCell11012320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11012320) h +theorem e24KC2ThetaAboveLeaf110123210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11012321) = true := by + have h : ((childLL thetaAboveCell11012321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11012321) h +theorem e24KC2ThetaAboveLeaf110123211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11012321) = true := by + have h : ((childLH thetaAboveCell11012321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11012321) h +theorem e24KC2ThetaAboveLeaf110123212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11012321) = true := by + have h : ((childHL thetaAboveCell11012321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11012321) h +theorem e24KC2ThetaAboveLeaf110123213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11012321) = true := by + have h : ((childHH thetaAboveCell11012321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11012321) h +theorem e24KC2ThetaAboveLeaf11012322 : + adaptiveCoverCheck 11 thetaAboveCell11012322 = true := by + have h : (thetaAboveCell11012322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11012322 h +theorem e24KC2ThetaAboveLeaf11012323 : + adaptiveCoverCheck 11 thetaAboveCell11012323 = true := by + have h : (thetaAboveCell11012323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11012323 h +theorem e24KC2ThetaAboveLeaf110123300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11012330) = true := by + have h : ((childLL thetaAboveCell11012330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11012330) h +theorem e24KC2ThetaAboveLeaf110123301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11012330) = true := by + have h : ((childLH thetaAboveCell11012330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11012330) h +theorem e24KC2ThetaAboveLeaf110123302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11012330) = true := by + have h : ((childHL thetaAboveCell11012330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11012330) h +theorem e24KC2ThetaAboveLeaf110123303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11012330) = true := by + have h : ((childHH thetaAboveCell11012330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11012330) h +theorem e24KC2ThetaAboveLeaf110123310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11012331) = true := by + have h : ((childLL thetaAboveCell11012331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11012331) h +theorem e24KC2ThetaAboveLeaf110123311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11012331) = true := by + have h : ((childLH thetaAboveCell11012331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11012331) h +theorem e24KC2ThetaAboveLeaf110123312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11012331) = true := by + have h : ((childHL thetaAboveCell11012331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11012331) h +theorem e24KC2ThetaAboveLeaf110123313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11012331) = true := by + have h : ((childHH thetaAboveCell11012331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11012331) h +theorem e24KC2ThetaAboveLeaf11012332 : + adaptiveCoverCheck 11 thetaAboveCell11012332 = true := by + have h : (thetaAboveCell11012332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11012332 h +theorem e24KC2ThetaAboveLeaf11012333 : + adaptiveCoverCheck 11 thetaAboveCell11012333 = true := by + have h : (thetaAboveCell11012333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11012333 h +theorem e24KC2ThetaAboveLeaf1101300 : + adaptiveCoverCheck 12 (childLL (childLL (childHH thetaAboveCell1101))) = true := by + have h : ((childLL (childLL (childHH thetaAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHH thetaAboveCell1101))) h +theorem e24KC2ThetaAboveLeaf1101301 : + adaptiveCoverCheck 12 (childLH (childLL (childHH thetaAboveCell1101))) = true := by + have h : ((childLH (childLL (childHH thetaAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHH thetaAboveCell1101))) h +theorem e24KC2ThetaAboveLeaf1101302 : + adaptiveCoverCheck 12 (childHL (childLL (childHH thetaAboveCell1101))) = true := by + have h : ((childHL (childLL (childHH thetaAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childHH thetaAboveCell1101))) h +theorem e24KC2ThetaAboveLeaf1101303 : + adaptiveCoverCheck 12 (childHH (childLL (childHH thetaAboveCell1101))) = true := by + have h : ((childHH (childLL (childHH thetaAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childHH thetaAboveCell1101))) h +theorem e24KC2ThetaAboveLeaf1101310 : + adaptiveCoverCheck 12 (childLL (childLH (childHH thetaAboveCell1101))) = true := by + have h : ((childLL (childLH (childHH thetaAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHH thetaAboveCell1101))) h +theorem e24KC2ThetaAboveLeaf1101311 : + adaptiveCoverCheck 12 (childLH (childLH (childHH thetaAboveCell1101))) = true := by + have h : ((childLH (childLH (childHH thetaAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHH thetaAboveCell1101))) h +theorem e24KC2ThetaAboveLeaf1101312 : + adaptiveCoverCheck 12 (childHL (childLH (childHH thetaAboveCell1101))) = true := by + have h : ((childHL (childLH (childHH thetaAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childHH thetaAboveCell1101))) h +theorem e24KC2ThetaAboveLeaf1101313 : + adaptiveCoverCheck 12 (childHH (childLH (childHH thetaAboveCell1101))) = true := by + have h : ((childHH (childLH (childHH thetaAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childHH thetaAboveCell1101))) h +theorem e24KC2ThetaAboveLeaf11013200 : + adaptiveCoverCheck 11 thetaAboveCell11013200 = true := by + have h : (thetaAboveCell11013200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11013200 h +theorem e24KC2ThetaAboveLeaf11013201 : + adaptiveCoverCheck 11 thetaAboveCell11013201 = true := by + have h : (thetaAboveCell11013201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11013201 h +theorem e24KC2ThetaAboveLeaf110132020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11013202) = true := by + have h : ((childLL thetaAboveCell11013202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11013202) h +theorem e24KC2ThetaAboveLeaf110132021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11013202) = true := by + have h : ((childLH thetaAboveCell11013202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11013202) h +theorem e24KC2ThetaAboveLeaf110132022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11013202) = true := by + have h : ((childHL thetaAboveCell11013202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11013202) h +theorem e24KC2ThetaAboveLeaf110132023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11013202) = true := by + have h : ((childHH thetaAboveCell11013202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11013202) h +theorem e24KC2ThetaAboveLeaf110132030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11013203) = true := by + have h : ((childLL thetaAboveCell11013203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11013203) h +theorem e24KC2ThetaAboveLeaf110132031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11013203) = true := by + have h : ((childLH thetaAboveCell11013203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11013203) h +theorem e24KC2ThetaAboveLeaf110132032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11013203) = true := by + have h : ((childHL thetaAboveCell11013203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11013203) h +theorem e24KC2ThetaAboveLeaf110132033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11013203) = true := by + have h : ((childHH thetaAboveCell11013203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11013203) h +theorem e24KC2ThetaAboveLeaf11013210 : + adaptiveCoverCheck 11 thetaAboveCell11013210 = true := by + have h : (thetaAboveCell11013210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11013210 h +theorem e24KC2ThetaAboveLeaf11013211 : + adaptiveCoverCheck 11 thetaAboveCell11013211 = true := by + have h : (thetaAboveCell11013211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11013211 h +theorem e24KC2ThetaAboveLeaf110132120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11013212) = true := by + have h : ((childLL thetaAboveCell11013212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11013212) h +theorem e24KC2ThetaAboveLeaf110132121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11013212) = true := by + have h : ((childLH thetaAboveCell11013212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11013212) h +theorem e24KC2ThetaAboveLeaf110132122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11013212) = true := by + have h : ((childHL thetaAboveCell11013212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11013212) h +theorem e24KC2ThetaAboveLeaf110132123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11013212) = true := by + have h : ((childHH thetaAboveCell11013212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11013212) h +theorem e24KC2ThetaAboveLeaf110132130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11013213) = true := by + have h : ((childLL thetaAboveCell11013213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11013213) h +theorem e24KC2ThetaAboveLeaf110132131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11013213) = true := by + have h : ((childLH thetaAboveCell11013213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11013213) h +theorem e24KC2ThetaAboveLeaf110132132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11013213) = true := by + have h : ((childHL thetaAboveCell11013213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11013213) h +theorem e24KC2ThetaAboveLeaf110132133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11013213) = true := by + have h : ((childHH thetaAboveCell11013213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11013213) h +theorem e24KC2ThetaAboveLeaf110132200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11013220) = true := by + have h : ((childLL thetaAboveCell11013220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11013220) h +theorem e24KC2ThetaAboveLeaf110132201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11013220) = true := by + have h : ((childLH thetaAboveCell11013220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11013220) h +theorem e24KC2ThetaAboveLeaf110132202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11013220) = true := by + have h : ((childHL thetaAboveCell11013220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11013220) h +theorem e24KC2ThetaAboveLeaf110132203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11013220) = true := by + have h : ((childHH thetaAboveCell11013220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11013220) h +theorem e24KC2ThetaAboveLeaf110132210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11013221) = true := by + have h : ((childLL thetaAboveCell11013221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11013221) h +theorem e24KC2ThetaAboveLeaf110132211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11013221) = true := by + have h : ((childLH thetaAboveCell11013221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11013221) h +theorem e24KC2ThetaAboveLeaf110132212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11013221) = true := by + have h : ((childHL thetaAboveCell11013221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11013221) h +theorem e24KC2ThetaAboveLeaf110132213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11013221) = true := by + have h : ((childHH thetaAboveCell11013221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11013221) h +theorem e24KC2ThetaAboveLeaf11013222 : + adaptiveCoverCheck 11 thetaAboveCell11013222 = true := by + have h : (thetaAboveCell11013222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11013222 h +theorem e24KC2ThetaAboveLeaf11013223 : + adaptiveCoverCheck 11 thetaAboveCell11013223 = true := by + have h : (thetaAboveCell11013223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11013223 h +theorem e24KC2ThetaAboveLeaf110132300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11013230) = true := by + have h : ((childLL thetaAboveCell11013230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11013230) h +theorem e24KC2ThetaAboveLeaf110132301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11013230) = true := by + have h : ((childLH thetaAboveCell11013230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11013230) h +theorem e24KC2ThetaAboveLeaf110132302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11013230) = true := by + have h : ((childHL thetaAboveCell11013230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11013230) h +theorem e24KC2ThetaAboveLeaf110132303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11013230) = true := by + have h : ((childHH thetaAboveCell11013230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11013230) h +theorem e24KC2ThetaAboveLeaf110132310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11013231) = true := by + have h : ((childLL thetaAboveCell11013231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11013231) h +theorem e24KC2ThetaAboveLeaf110132311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11013231) = true := by + have h : ((childLH thetaAboveCell11013231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11013231) h +theorem e24KC2ThetaAboveLeaf110132312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11013231) = true := by + have h : ((childHL thetaAboveCell11013231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11013231) h +theorem e24KC2ThetaAboveLeaf110132313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11013231) = true := by + have h : ((childHH thetaAboveCell11013231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11013231) h +theorem e24KC2ThetaAboveLeaf11013232 : + adaptiveCoverCheck 11 thetaAboveCell11013232 = true := by + have h : (thetaAboveCell11013232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11013232 h +theorem e24KC2ThetaAboveLeaf11013233 : + adaptiveCoverCheck 11 thetaAboveCell11013233 = true := by + have h : (thetaAboveCell11013233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11013233 h +theorem e24KC2ThetaAboveLeaf11013300 : + adaptiveCoverCheck 11 thetaAboveCell11013300 = true := by + have h : (thetaAboveCell11013300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11013300 h +theorem e24KC2ThetaAboveLeaf11013301 : + adaptiveCoverCheck 11 thetaAboveCell11013301 = true := by + have h : (thetaAboveCell11013301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11013301 h +theorem e24KC2ThetaAboveLeaf110133020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11013302) = true := by + have h : ((childLL thetaAboveCell11013302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11013302) h +theorem e24KC2ThetaAboveLeaf110133021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11013302) = true := by + have h : ((childLH thetaAboveCell11013302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11013302) h +theorem e24KC2ThetaAboveLeaf110133022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11013302) = true := by + have h : ((childHL thetaAboveCell11013302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11013302) h +theorem e24KC2ThetaAboveLeaf110133023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11013302) = true := by + have h : ((childHH thetaAboveCell11013302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11013302) h +theorem e24KC2ThetaAboveLeaf110133030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11013303) = true := by + have h : ((childLL thetaAboveCell11013303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11013303) h +theorem e24KC2ThetaAboveLeaf110133031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11013303) = true := by + have h : ((childLH thetaAboveCell11013303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11013303) h +theorem e24KC2ThetaAboveLeaf110133032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11013303) = true := by + have h : ((childHL thetaAboveCell11013303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11013303) h +theorem e24KC2ThetaAboveLeaf110133033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11013303) = true := by + have h : ((childHH thetaAboveCell11013303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11013303) h +theorem e24KC2ThetaAboveLeaf11013310 : + adaptiveCoverCheck 11 thetaAboveCell11013310 = true := by + have h : (thetaAboveCell11013310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11013310 h +theorem e24KC2ThetaAboveLeaf11013311 : + adaptiveCoverCheck 11 thetaAboveCell11013311 = true := by + have h : (thetaAboveCell11013311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11013311 h +theorem e24KC2ThetaAboveLeaf110133120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11013312) = true := by + have h : ((childLL thetaAboveCell11013312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11013312) h +theorem e24KC2ThetaAboveLeaf110133121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11013312) = true := by + have h : ((childLH thetaAboveCell11013312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11013312) h +theorem e24KC2ThetaAboveLeaf110133122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11013312) = true := by + have h : ((childHL thetaAboveCell11013312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11013312) h +theorem e24KC2ThetaAboveLeaf110133123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11013312) = true := by + have h : ((childHH thetaAboveCell11013312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11013312) h +theorem e24KC2ThetaAboveLeaf110133130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11013313) = true := by + have h : ((childLL thetaAboveCell11013313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11013313) h +theorem e24KC2ThetaAboveLeaf110133131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11013313) = true := by + have h : ((childLH thetaAboveCell11013313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11013313) h +theorem e24KC2ThetaAboveLeaf110133132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11013313) = true := by + have h : ((childHL thetaAboveCell11013313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11013313) h +theorem e24KC2ThetaAboveLeaf110133133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11013313) = true := by + have h : ((childHH thetaAboveCell11013313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11013313) h +theorem e24KC2ThetaAboveLeaf110133200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11013320) = true := by + have h : ((childLL thetaAboveCell11013320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11013320) h +theorem e24KC2ThetaAboveLeaf110133201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11013320) = true := by + have h : ((childLH thetaAboveCell11013320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11013320) h +theorem e24KC2ThetaAboveLeaf110133202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11013320) = true := by + have h : ((childHL thetaAboveCell11013320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11013320) h +theorem e24KC2ThetaAboveLeaf110133203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11013320) = true := by + have h : ((childHH thetaAboveCell11013320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11013320) h +theorem e24KC2ThetaAboveLeaf110133210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11013321) = true := by + have h : ((childLL thetaAboveCell11013321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11013321) h +theorem e24KC2ThetaAboveLeaf110133211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11013321) = true := by + have h : ((childLH thetaAboveCell11013321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11013321) h +theorem e24KC2ThetaAboveLeaf110133212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11013321) = true := by + have h : ((childHL thetaAboveCell11013321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11013321) h +theorem e24KC2ThetaAboveLeaf110133213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11013321) = true := by + have h : ((childHH thetaAboveCell11013321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11013321) h +theorem e24KC2ThetaAboveLeaf11013322 : + adaptiveCoverCheck 11 thetaAboveCell11013322 = true := by + have h : (thetaAboveCell11013322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11013322 h +theorem e24KC2ThetaAboveLeaf11013323 : + adaptiveCoverCheck 11 thetaAboveCell11013323 = true := by + have h : (thetaAboveCell11013323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11013323 h +theorem e24KC2ThetaAboveLeaf110133300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11013330) = true := by + have h : ((childLL thetaAboveCell11013330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11013330) h +theorem e24KC2ThetaAboveLeaf110133301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11013330) = true := by + have h : ((childLH thetaAboveCell11013330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11013330) h +theorem e24KC2ThetaAboveLeaf110133302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11013330) = true := by + have h : ((childHL thetaAboveCell11013330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11013330) h +theorem e24KC2ThetaAboveLeaf110133303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11013330) = true := by + have h : ((childHH thetaAboveCell11013330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11013330) h +theorem e24KC2ThetaAboveLeaf110133310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11013331) = true := by + have h : ((childLL thetaAboveCell11013331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11013331) h +theorem e24KC2ThetaAboveLeaf110133311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11013331) = true := by + have h : ((childLH thetaAboveCell11013331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11013331) h +theorem e24KC2ThetaAboveLeaf110133312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11013331) = true := by + have h : ((childHL thetaAboveCell11013331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11013331) h +theorem e24KC2ThetaAboveLeaf110133313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11013331) = true := by + have h : ((childHH thetaAboveCell11013331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11013331) h +theorem e24KC2ThetaAboveLeaf11013332 : + adaptiveCoverCheck 11 thetaAboveCell11013332 = true := by + have h : (thetaAboveCell11013332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11013332 h +theorem e24KC2ThetaAboveLeaf11013333 : + adaptiveCoverCheck 11 thetaAboveCell11013333 = true := by + have h : (thetaAboveCell11013333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11013333 h +theorem e24KC2ThetaAboveLeaf1102000 : + adaptiveCoverCheck 12 (childLL (childLL (childLL thetaAboveCell1102))) = true := by + have h : ((childLL (childLL (childLL thetaAboveCell1102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLL thetaAboveCell1102))) h +theorem e24KC2ThetaAboveLeaf1102001 : + adaptiveCoverCheck 12 (childLH (childLL (childLL thetaAboveCell1102))) = true := by + have h : ((childLH (childLL (childLL thetaAboveCell1102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLL thetaAboveCell1102))) h +theorem e24KC2ThetaAboveLeaf1102002 : + adaptiveCoverCheck 12 (childHL (childLL (childLL thetaAboveCell1102))) = true := by + have h : ((childHL (childLL (childLL thetaAboveCell1102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLL thetaAboveCell1102))) h +theorem e24KC2ThetaAboveLeaf1102003 : + adaptiveCoverCheck 12 (childHH (childLL (childLL thetaAboveCell1102))) = true := by + have h : ((childHH (childLL (childLL thetaAboveCell1102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLL thetaAboveCell1102))) h +theorem e24KC2ThetaAboveLeaf1102010 : + adaptiveCoverCheck 12 (childLL (childLH (childLL thetaAboveCell1102))) = true := by + have h : ((childLL (childLH (childLL thetaAboveCell1102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLL thetaAboveCell1102))) h +theorem e24KC2ThetaAboveLeaf1102011 : + adaptiveCoverCheck 12 (childLH (childLH (childLL thetaAboveCell1102))) = true := by + have h : ((childLH (childLH (childLL thetaAboveCell1102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLL thetaAboveCell1102))) h +theorem e24KC2ThetaAboveLeaf1102012 : + adaptiveCoverCheck 12 (childHL (childLH (childLL thetaAboveCell1102))) = true := by + have h : ((childHL (childLH (childLL thetaAboveCell1102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLL thetaAboveCell1102))) h +theorem e24KC2ThetaAboveLeaf1102013 : + adaptiveCoverCheck 12 (childHH (childLH (childLL thetaAboveCell1102))) = true := by + have h : ((childHH (childLH (childLL thetaAboveCell1102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLL thetaAboveCell1102))) h +theorem e24KC2ThetaAboveLeaf110202 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell1102)) = true := by + have h : ((childHL (childLL thetaAboveCell1102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell1102)) h +theorem e24KC2ThetaAboveLeaf110203 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell1102)) = true := by + have h : ((childHH (childLL thetaAboveCell1102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell1102)) h +theorem e24KC2ThetaAboveLeaf1102100 : + adaptiveCoverCheck 12 (childLL (childLL (childLH thetaAboveCell1102))) = true := by + have h : ((childLL (childLL (childLH thetaAboveCell1102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLH thetaAboveCell1102))) h +theorem e24KC2ThetaAboveLeaf1102101 : + adaptiveCoverCheck 12 (childLH (childLL (childLH thetaAboveCell1102))) = true := by + have h : ((childLH (childLL (childLH thetaAboveCell1102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLH thetaAboveCell1102))) h +theorem e24KC2ThetaAboveLeaf1102102 : + adaptiveCoverCheck 12 (childHL (childLL (childLH thetaAboveCell1102))) = true := by + have h : ((childHL (childLL (childLH thetaAboveCell1102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLH thetaAboveCell1102))) h +theorem e24KC2ThetaAboveLeaf1102103 : + adaptiveCoverCheck 12 (childHH (childLL (childLH thetaAboveCell1102))) = true := by + have h : ((childHH (childLL (childLH thetaAboveCell1102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLH thetaAboveCell1102))) h +theorem e24KC2ThetaAboveLeaf1102110 : + adaptiveCoverCheck 12 (childLL (childLH (childLH thetaAboveCell1102))) = true := by + have h : ((childLL (childLH (childLH thetaAboveCell1102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLH thetaAboveCell1102))) h +theorem e24KC2ThetaAboveLeaf1102111 : + adaptiveCoverCheck 12 (childLH (childLH (childLH thetaAboveCell1102))) = true := by + have h : ((childLH (childLH (childLH thetaAboveCell1102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLH thetaAboveCell1102))) h +theorem e24KC2ThetaAboveLeaf1102112 : + adaptiveCoverCheck 12 (childHL (childLH (childLH thetaAboveCell1102))) = true := by + have h : ((childHL (childLH (childLH thetaAboveCell1102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLH thetaAboveCell1102))) h +theorem e24KC2ThetaAboveLeaf1102113 : + adaptiveCoverCheck 12 (childHH (childLH (childLH thetaAboveCell1102))) = true := by + have h : ((childHH (childLH (childLH thetaAboveCell1102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLH thetaAboveCell1102))) h +theorem e24KC2ThetaAboveLeaf110212 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell1102)) = true := by + have h : ((childHL (childLH thetaAboveCell1102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell1102)) h +theorem e24KC2ThetaAboveLeaf110213 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell1102)) = true := by + have h : ((childHH (childLH thetaAboveCell1102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell1102)) h +theorem e24KC2ThetaAboveLeaf11022 : + adaptiveCoverCheck 14 (childHL thetaAboveCell1102) = true := by + have h : ((childHL thetaAboveCell1102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHL thetaAboveCell1102) h +theorem e24KC2ThetaAboveLeaf11023 : + adaptiveCoverCheck 14 (childHH thetaAboveCell1102) = true := by + have h : ((childHH thetaAboveCell1102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHH thetaAboveCell1102) h +theorem e24KC2ThetaAboveLeaf1103000 : + adaptiveCoverCheck 12 (childLL (childLL (childLL thetaAboveCell1103))) = true := by + have h : ((childLL (childLL (childLL thetaAboveCell1103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLL thetaAboveCell1103))) h +theorem e24KC2ThetaAboveLeaf1103001 : + adaptiveCoverCheck 12 (childLH (childLL (childLL thetaAboveCell1103))) = true := by + have h : ((childLH (childLL (childLL thetaAboveCell1103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLL thetaAboveCell1103))) h +theorem e24KC2ThetaAboveLeaf1103002 : + adaptiveCoverCheck 12 (childHL (childLL (childLL thetaAboveCell1103))) = true := by + have h : ((childHL (childLL (childLL thetaAboveCell1103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLL thetaAboveCell1103))) h +theorem e24KC2ThetaAboveLeaf1103003 : + adaptiveCoverCheck 12 (childHH (childLL (childLL thetaAboveCell1103))) = true := by + have h : ((childHH (childLL (childLL thetaAboveCell1103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLL thetaAboveCell1103))) h +theorem e24KC2ThetaAboveLeaf1103010 : + adaptiveCoverCheck 12 (childLL (childLH (childLL thetaAboveCell1103))) = true := by + have h : ((childLL (childLH (childLL thetaAboveCell1103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLL thetaAboveCell1103))) h +theorem e24KC2ThetaAboveLeaf1103011 : + adaptiveCoverCheck 12 (childLH (childLH (childLL thetaAboveCell1103))) = true := by + have h : ((childLH (childLH (childLL thetaAboveCell1103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLL thetaAboveCell1103))) h +theorem e24KC2ThetaAboveLeaf1103012 : + adaptiveCoverCheck 12 (childHL (childLH (childLL thetaAboveCell1103))) = true := by + have h : ((childHL (childLH (childLL thetaAboveCell1103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLL thetaAboveCell1103))) h +theorem e24KC2ThetaAboveLeaf1103013 : + adaptiveCoverCheck 12 (childHH (childLH (childLL thetaAboveCell1103))) = true := by + have h : ((childHH (childLH (childLL thetaAboveCell1103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLL thetaAboveCell1103))) h +theorem e24KC2ThetaAboveLeaf110302 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell1103)) = true := by + have h : ((childHL (childLL thetaAboveCell1103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell1103)) h +theorem e24KC2ThetaAboveLeaf110303 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell1103)) = true := by + have h : ((childHH (childLL thetaAboveCell1103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell1103)) h +theorem e24KC2ThetaAboveLeaf1103100 : + adaptiveCoverCheck 12 (childLL (childLL (childLH thetaAboveCell1103))) = true := by + have h : ((childLL (childLL (childLH thetaAboveCell1103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLH thetaAboveCell1103))) h +theorem e24KC2ThetaAboveLeaf1103101 : + adaptiveCoverCheck 12 (childLH (childLL (childLH thetaAboveCell1103))) = true := by + have h : ((childLH (childLL (childLH thetaAboveCell1103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLH thetaAboveCell1103))) h +theorem e24KC2ThetaAboveLeaf1103102 : + adaptiveCoverCheck 12 (childHL (childLL (childLH thetaAboveCell1103))) = true := by + have h : ((childHL (childLL (childLH thetaAboveCell1103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLH thetaAboveCell1103))) h +theorem e24KC2ThetaAboveLeaf1103103 : + adaptiveCoverCheck 12 (childHH (childLL (childLH thetaAboveCell1103))) = true := by + have h : ((childHH (childLL (childLH thetaAboveCell1103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLH thetaAboveCell1103))) h +theorem e24KC2ThetaAboveLeaf1103110 : + adaptiveCoverCheck 12 (childLL (childLH (childLH thetaAboveCell1103))) = true := by + have h : ((childLL (childLH (childLH thetaAboveCell1103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLH thetaAboveCell1103))) h +theorem e24KC2ThetaAboveLeaf1103111 : + adaptiveCoverCheck 12 (childLH (childLH (childLH thetaAboveCell1103))) = true := by + have h : ((childLH (childLH (childLH thetaAboveCell1103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLH thetaAboveCell1103))) h +theorem e24KC2ThetaAboveLeaf1103112 : + adaptiveCoverCheck 12 (childHL (childLH (childLH thetaAboveCell1103))) = true := by + have h : ((childHL (childLH (childLH thetaAboveCell1103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLH thetaAboveCell1103))) h +theorem e24KC2ThetaAboveLeaf1103113 : + adaptiveCoverCheck 12 (childHH (childLH (childLH thetaAboveCell1103))) = true := by + have h : ((childHH (childLH (childLH thetaAboveCell1103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLH thetaAboveCell1103))) h +theorem e24KC2ThetaAboveLeaf110312 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell1103)) = true := by + have h : ((childHL (childLH thetaAboveCell1103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell1103)) h +theorem e24KC2ThetaAboveLeaf110313 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell1103)) = true := by + have h : ((childHH (childLH thetaAboveCell1103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell1103)) h +theorem e24KC2ThetaAboveLeaf11032 : + adaptiveCoverCheck 14 (childHL thetaAboveCell1103) = true := by + have h : ((childHL thetaAboveCell1103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHL thetaAboveCell1103) h +theorem e24KC2ThetaAboveLeaf11033 : + adaptiveCoverCheck 14 (childHH thetaAboveCell1103) = true := by + have h : ((childHH thetaAboveCell1103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHH thetaAboveCell1103) h +theorem e24KC2ThetaAboveLeaf111000 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell1110)) = true := by + have h : ((childLL (childLL thetaAboveCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLL thetaAboveCell1110)) h +theorem e24KC2ThetaAboveLeaf111001 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell1110)) = true := by + have h : ((childLH (childLL thetaAboveCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLL thetaAboveCell1110)) h +theorem e24KC2ThetaAboveLeaf111002 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell1110)) = true := by + have h : ((childHL (childLL thetaAboveCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell1110)) h +theorem e24KC2ThetaAboveLeaf111003 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell1110)) = true := by + have h : ((childHH (childLL thetaAboveCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell1110)) h +theorem e24KC2ThetaAboveLeaf111010 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell1110)) = true := by + have h : ((childLL (childLH thetaAboveCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLH thetaAboveCell1110)) h +theorem e24KC2ThetaAboveLeaf111011 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell1110)) = true := by + have h : ((childLH (childLH thetaAboveCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLH thetaAboveCell1110)) h +theorem e24KC2ThetaAboveLeaf111012 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell1110)) = true := by + have h : ((childHL (childLH thetaAboveCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell1110)) h +theorem e24KC2ThetaAboveLeaf111013 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell1110)) = true := by + have h : ((childHH (childLH thetaAboveCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell1110)) h +theorem e24KC2ThetaAboveLeaf1110200 : + adaptiveCoverCheck 12 (childLL (childLL (childHL thetaAboveCell1110))) = true := by + have h : ((childLL (childLL (childHL thetaAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHL thetaAboveCell1110))) h +theorem e24KC2ThetaAboveLeaf1110201 : + adaptiveCoverCheck 12 (childLH (childLL (childHL thetaAboveCell1110))) = true := by + have h : ((childLH (childLL (childHL thetaAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHL thetaAboveCell1110))) h +theorem e24KC2ThetaAboveLeaf1110202 : + adaptiveCoverCheck 12 (childHL (childLL (childHL thetaAboveCell1110))) = true := by + have h : ((childHL (childLL (childHL thetaAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childHL thetaAboveCell1110))) h +theorem e24KC2ThetaAboveLeaf1110203 : + adaptiveCoverCheck 12 (childHH (childLL (childHL thetaAboveCell1110))) = true := by + have h : ((childHH (childLL (childHL thetaAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childHL thetaAboveCell1110))) h +theorem e24KC2ThetaAboveLeaf1110210 : + adaptiveCoverCheck 12 (childLL (childLH (childHL thetaAboveCell1110))) = true := by + have h : ((childLL (childLH (childHL thetaAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHL thetaAboveCell1110))) h +theorem e24KC2ThetaAboveLeaf1110211 : + adaptiveCoverCheck 12 (childLH (childLH (childHL thetaAboveCell1110))) = true := by + have h : ((childLH (childLH (childHL thetaAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHL thetaAboveCell1110))) h +theorem e24KC2ThetaAboveLeaf1110212 : + adaptiveCoverCheck 12 (childHL (childLH (childHL thetaAboveCell1110))) = true := by + have h : ((childHL (childLH (childHL thetaAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childHL thetaAboveCell1110))) h +theorem e24KC2ThetaAboveLeaf1110213 : + adaptiveCoverCheck 12 (childHH (childLH (childHL thetaAboveCell1110))) = true := by + have h : ((childHH (childLH (childHL thetaAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childHL thetaAboveCell1110))) h +theorem e24KC2ThetaAboveLeaf11102200 : + adaptiveCoverCheck 11 thetaAboveCell11102200 = true := by + have h : (thetaAboveCell11102200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11102200 h +theorem e24KC2ThetaAboveLeaf11102201 : + adaptiveCoverCheck 11 thetaAboveCell11102201 = true := by + have h : (thetaAboveCell11102201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11102201 h +theorem e24KC2ThetaAboveLeaf111022020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11102202) = true := by + have h : ((childLL thetaAboveCell11102202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11102202) h +theorem e24KC2ThetaAboveLeaf111022021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11102202) = true := by + have h : ((childLH thetaAboveCell11102202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11102202) h +theorem e24KC2ThetaAboveLeaf111022022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11102202) = true := by + have h : ((childHL thetaAboveCell11102202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11102202) h +theorem e24KC2ThetaAboveLeaf111022023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11102202) = true := by + have h : ((childHH thetaAboveCell11102202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11102202) h +theorem e24KC2ThetaAboveLeaf111022030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11102203) = true := by + have h : ((childLL thetaAboveCell11102203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11102203) h +theorem e24KC2ThetaAboveLeaf111022031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11102203) = true := by + have h : ((childLH thetaAboveCell11102203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11102203) h +theorem e24KC2ThetaAboveLeaf111022032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11102203) = true := by + have h : ((childHL thetaAboveCell11102203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11102203) h +theorem e24KC2ThetaAboveLeaf111022033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11102203) = true := by + have h : ((childHH thetaAboveCell11102203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11102203) h +theorem e24KC2ThetaAboveLeaf11102210 : + adaptiveCoverCheck 11 thetaAboveCell11102210 = true := by + have h : (thetaAboveCell11102210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11102210 h +theorem e24KC2ThetaAboveLeaf11102211 : + adaptiveCoverCheck 11 thetaAboveCell11102211 = true := by + have h : (thetaAboveCell11102211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11102211 h +theorem e24KC2ThetaAboveLeaf111022120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11102212) = true := by + have h : ((childLL thetaAboveCell11102212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11102212) h +theorem e24KC2ThetaAboveLeaf111022121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11102212) = true := by + have h : ((childLH thetaAboveCell11102212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11102212) h +theorem e24KC2ThetaAboveLeaf111022122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11102212) = true := by + have h : ((childHL thetaAboveCell11102212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11102212) h +theorem e24KC2ThetaAboveLeaf111022123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11102212) = true := by + have h : ((childHH thetaAboveCell11102212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11102212) h +theorem e24KC2ThetaAboveLeaf111022130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11102213) = true := by + have h : ((childLL thetaAboveCell11102213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11102213) h +theorem e24KC2ThetaAboveLeaf111022131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11102213) = true := by + have h : ((childLH thetaAboveCell11102213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11102213) h +theorem e24KC2ThetaAboveLeaf111022132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11102213) = true := by + have h : ((childHL thetaAboveCell11102213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11102213) h +theorem e24KC2ThetaAboveLeaf111022133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11102213) = true := by + have h : ((childHH thetaAboveCell11102213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11102213) h +theorem e24KC2ThetaAboveLeaf111022200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11102220) = true := by + have h : ((childLL thetaAboveCell11102220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11102220) h +theorem e24KC2ThetaAboveLeaf111022201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11102220) = true := by + have h : ((childLH thetaAboveCell11102220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11102220) h +theorem e24KC2ThetaAboveLeaf111022202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11102220) = true := by + have h : ((childHL thetaAboveCell11102220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11102220) h +theorem e24KC2ThetaAboveLeaf111022203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11102220) = true := by + have h : ((childHH thetaAboveCell11102220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11102220) h +theorem e24KC2ThetaAboveLeaf111022210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11102221) = true := by + have h : ((childLL thetaAboveCell11102221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11102221) h +theorem e24KC2ThetaAboveLeaf111022211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11102221) = true := by + have h : ((childLH thetaAboveCell11102221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11102221) h +theorem e24KC2ThetaAboveLeaf111022212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11102221) = true := by + have h : ((childHL thetaAboveCell11102221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11102221) h +theorem e24KC2ThetaAboveLeaf111022213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11102221) = true := by + have h : ((childHH thetaAboveCell11102221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11102221) h +theorem e24KC2ThetaAboveLeaf11102222 : + adaptiveCoverCheck 11 thetaAboveCell11102222 = true := by + have h : (thetaAboveCell11102222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11102222 h +theorem e24KC2ThetaAboveLeaf11102223 : + adaptiveCoverCheck 11 thetaAboveCell11102223 = true := by + have h : (thetaAboveCell11102223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11102223 h +theorem e24KC2ThetaAboveLeaf111022300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11102230) = true := by + have h : ((childLL thetaAboveCell11102230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11102230) h +theorem e24KC2ThetaAboveLeaf111022301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11102230) = true := by + have h : ((childLH thetaAboveCell11102230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11102230) h +theorem e24KC2ThetaAboveLeaf111022302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11102230) = true := by + have h : ((childHL thetaAboveCell11102230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11102230) h +theorem e24KC2ThetaAboveLeaf111022303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11102230) = true := by + have h : ((childHH thetaAboveCell11102230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11102230) h +theorem e24KC2ThetaAboveLeaf111022310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11102231) = true := by + have h : ((childLL thetaAboveCell11102231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11102231) h +theorem e24KC2ThetaAboveLeaf111022311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11102231) = true := by + have h : ((childLH thetaAboveCell11102231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11102231) h +theorem e24KC2ThetaAboveLeaf111022312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11102231) = true := by + have h : ((childHL thetaAboveCell11102231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11102231) h +theorem e24KC2ThetaAboveLeaf111022313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11102231) = true := by + have h : ((childHH thetaAboveCell11102231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11102231) h +theorem e24KC2ThetaAboveLeaf11102232 : + adaptiveCoverCheck 11 thetaAboveCell11102232 = true := by + have h : (thetaAboveCell11102232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11102232 h +theorem e24KC2ThetaAboveLeaf11102233 : + adaptiveCoverCheck 11 thetaAboveCell11102233 = true := by + have h : (thetaAboveCell11102233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11102233 h +theorem e24KC2ThetaAboveLeaf11102300 : + adaptiveCoverCheck 11 thetaAboveCell11102300 = true := by + have h : (thetaAboveCell11102300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11102300 h +theorem e24KC2ThetaAboveLeaf11102301 : + adaptiveCoverCheck 11 thetaAboveCell11102301 = true := by + have h : (thetaAboveCell11102301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11102301 h +theorem e24KC2ThetaAboveLeaf111023020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11102302) = true := by + have h : ((childLL thetaAboveCell11102302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11102302) h +theorem e24KC2ThetaAboveLeaf111023021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11102302) = true := by + have h : ((childLH thetaAboveCell11102302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11102302) h +theorem e24KC2ThetaAboveLeaf111023022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11102302) = true := by + have h : ((childHL thetaAboveCell11102302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11102302) h +theorem e24KC2ThetaAboveLeaf111023023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11102302) = true := by + have h : ((childHH thetaAboveCell11102302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11102302) h +theorem e24KC2ThetaAboveLeaf111023030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11102303) = true := by + have h : ((childLL thetaAboveCell11102303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11102303) h +theorem e24KC2ThetaAboveLeaf111023031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11102303) = true := by + have h : ((childLH thetaAboveCell11102303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11102303) h +theorem e24KC2ThetaAboveLeaf111023032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11102303) = true := by + have h : ((childHL thetaAboveCell11102303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11102303) h +theorem e24KC2ThetaAboveLeaf111023033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11102303) = true := by + have h : ((childHH thetaAboveCell11102303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11102303) h +theorem e24KC2ThetaAboveLeaf11102310 : + adaptiveCoverCheck 11 thetaAboveCell11102310 = true := by + have h : (thetaAboveCell11102310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11102310 h +theorem e24KC2ThetaAboveLeaf11102311 : + adaptiveCoverCheck 11 thetaAboveCell11102311 = true := by + have h : (thetaAboveCell11102311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11102311 h +theorem e24KC2ThetaAboveLeaf111023120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11102312) = true := by + have h : ((childLL thetaAboveCell11102312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11102312) h +theorem e24KC2ThetaAboveLeaf111023121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11102312) = true := by + have h : ((childLH thetaAboveCell11102312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11102312) h +theorem e24KC2ThetaAboveLeaf111023122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11102312) = true := by + have h : ((childHL thetaAboveCell11102312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11102312) h +theorem e24KC2ThetaAboveLeaf111023123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11102312) = true := by + have h : ((childHH thetaAboveCell11102312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11102312) h +theorem e24KC2ThetaAboveLeaf111023130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11102313) = true := by + have h : ((childLL thetaAboveCell11102313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11102313) h +theorem e24KC2ThetaAboveLeaf111023131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11102313) = true := by + have h : ((childLH thetaAboveCell11102313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11102313) h +theorem e24KC2ThetaAboveLeaf111023132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11102313) = true := by + have h : ((childHL thetaAboveCell11102313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11102313) h +theorem e24KC2ThetaAboveLeaf111023133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11102313) = true := by + have h : ((childHH thetaAboveCell11102313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11102313) h +theorem e24KC2ThetaAboveLeaf111023200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11102320) = true := by + have h : ((childLL thetaAboveCell11102320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11102320) h +theorem e24KC2ThetaAboveLeaf111023201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11102320) = true := by + have h : ((childLH thetaAboveCell11102320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11102320) h +theorem e24KC2ThetaAboveLeaf111023202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11102320) = true := by + have h : ((childHL thetaAboveCell11102320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11102320) h +theorem e24KC2ThetaAboveLeaf111023203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11102320) = true := by + have h : ((childHH thetaAboveCell11102320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11102320) h +theorem e24KC2ThetaAboveLeaf111023210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11102321) = true := by + have h : ((childLL thetaAboveCell11102321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11102321) h +theorem e24KC2ThetaAboveLeaf111023211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11102321) = true := by + have h : ((childLH thetaAboveCell11102321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11102321) h +theorem e24KC2ThetaAboveLeaf111023212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11102321) = true := by + have h : ((childHL thetaAboveCell11102321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11102321) h +theorem e24KC2ThetaAboveLeaf111023213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11102321) = true := by + have h : ((childHH thetaAboveCell11102321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11102321) h +theorem e24KC2ThetaAboveLeaf11102322 : + adaptiveCoverCheck 11 thetaAboveCell11102322 = true := by + have h : (thetaAboveCell11102322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11102322 h +theorem e24KC2ThetaAboveLeaf11102323 : + adaptiveCoverCheck 11 thetaAboveCell11102323 = true := by + have h : (thetaAboveCell11102323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11102323 h +theorem e24KC2ThetaAboveLeaf111023300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11102330) = true := by + have h : ((childLL thetaAboveCell11102330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11102330) h +theorem e24KC2ThetaAboveLeaf111023301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11102330) = true := by + have h : ((childLH thetaAboveCell11102330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11102330) h +theorem e24KC2ThetaAboveLeaf111023302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11102330) = true := by + have h : ((childHL thetaAboveCell11102330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11102330) h +theorem e24KC2ThetaAboveLeaf111023303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11102330) = true := by + have h : ((childHH thetaAboveCell11102330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11102330) h +theorem e24KC2ThetaAboveLeaf111023310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11102331) = true := by + have h : ((childLL thetaAboveCell11102331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11102331) h +theorem e24KC2ThetaAboveLeaf111023311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11102331) = true := by + have h : ((childLH thetaAboveCell11102331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11102331) h +theorem e24KC2ThetaAboveLeaf111023312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11102331) = true := by + have h : ((childHL thetaAboveCell11102331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11102331) h +theorem e24KC2ThetaAboveLeaf111023313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11102331) = true := by + have h : ((childHH thetaAboveCell11102331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11102331) h +theorem e24KC2ThetaAboveLeaf11102332 : + adaptiveCoverCheck 11 thetaAboveCell11102332 = true := by + have h : (thetaAboveCell11102332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11102332 h +theorem e24KC2ThetaAboveLeaf11102333 : + adaptiveCoverCheck 11 thetaAboveCell11102333 = true := by + have h : (thetaAboveCell11102333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11102333 h +theorem e24KC2ThetaAboveLeaf1110300 : + adaptiveCoverCheck 12 (childLL (childLL (childHH thetaAboveCell1110))) = true := by + have h : ((childLL (childLL (childHH thetaAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHH thetaAboveCell1110))) h +theorem e24KC2ThetaAboveLeaf1110301 : + adaptiveCoverCheck 12 (childLH (childLL (childHH thetaAboveCell1110))) = true := by + have h : ((childLH (childLL (childHH thetaAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHH thetaAboveCell1110))) h +theorem e24KC2ThetaAboveLeaf1110302 : + adaptiveCoverCheck 12 (childHL (childLL (childHH thetaAboveCell1110))) = true := by + have h : ((childHL (childLL (childHH thetaAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childHH thetaAboveCell1110))) h +theorem e24KC2ThetaAboveLeaf1110303 : + adaptiveCoverCheck 12 (childHH (childLL (childHH thetaAboveCell1110))) = true := by + have h : ((childHH (childLL (childHH thetaAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childHH thetaAboveCell1110))) h +theorem e24KC2ThetaAboveLeaf1110310 : + adaptiveCoverCheck 12 (childLL (childLH (childHH thetaAboveCell1110))) = true := by + have h : ((childLL (childLH (childHH thetaAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHH thetaAboveCell1110))) h +theorem e24KC2ThetaAboveLeaf1110311 : + adaptiveCoverCheck 12 (childLH (childLH (childHH thetaAboveCell1110))) = true := by + have h : ((childLH (childLH (childHH thetaAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHH thetaAboveCell1110))) h +theorem e24KC2ThetaAboveLeaf1110312 : + adaptiveCoverCheck 12 (childHL (childLH (childHH thetaAboveCell1110))) = true := by + have h : ((childHL (childLH (childHH thetaAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childHH thetaAboveCell1110))) h +theorem e24KC2ThetaAboveLeaf1110313 : + adaptiveCoverCheck 12 (childHH (childLH (childHH thetaAboveCell1110))) = true := by + have h : ((childHH (childLH (childHH thetaAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childHH thetaAboveCell1110))) h +theorem e24KC2ThetaAboveLeaf11103200 : + adaptiveCoverCheck 11 thetaAboveCell11103200 = true := by + have h : (thetaAboveCell11103200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11103200 h +theorem e24KC2ThetaAboveLeaf11103201 : + adaptiveCoverCheck 11 thetaAboveCell11103201 = true := by + have h : (thetaAboveCell11103201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11103201 h +theorem e24KC2ThetaAboveLeaf111032020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11103202) = true := by + have h : ((childLL thetaAboveCell11103202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11103202) h +theorem e24KC2ThetaAboveLeaf111032021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11103202) = true := by + have h : ((childLH thetaAboveCell11103202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11103202) h +theorem e24KC2ThetaAboveLeaf111032022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11103202) = true := by + have h : ((childHL thetaAboveCell11103202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11103202) h +theorem e24KC2ThetaAboveLeaf111032023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11103202) = true := by + have h : ((childHH thetaAboveCell11103202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11103202) h +theorem e24KC2ThetaAboveLeaf111032030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11103203) = true := by + have h : ((childLL thetaAboveCell11103203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11103203) h +theorem e24KC2ThetaAboveLeaf111032031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11103203) = true := by + have h : ((childLH thetaAboveCell11103203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11103203) h +theorem e24KC2ThetaAboveLeaf111032032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11103203) = true := by + have h : ((childHL thetaAboveCell11103203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11103203) h +theorem e24KC2ThetaAboveLeaf111032033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11103203) = true := by + have h : ((childHH thetaAboveCell11103203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11103203) h +theorem e24KC2ThetaAboveLeaf11103210 : + adaptiveCoverCheck 11 thetaAboveCell11103210 = true := by + have h : (thetaAboveCell11103210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11103210 h +theorem e24KC2ThetaAboveLeaf11103211 : + adaptiveCoverCheck 11 thetaAboveCell11103211 = true := by + have h : (thetaAboveCell11103211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11103211 h +theorem e24KC2ThetaAboveLeaf111032120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11103212) = true := by + have h : ((childLL thetaAboveCell11103212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11103212) h +theorem e24KC2ThetaAboveLeaf111032121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11103212) = true := by + have h : ((childLH thetaAboveCell11103212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11103212) h +theorem e24KC2ThetaAboveLeaf111032122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11103212) = true := by + have h : ((childHL thetaAboveCell11103212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11103212) h +theorem e24KC2ThetaAboveLeaf111032123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11103212) = true := by + have h : ((childHH thetaAboveCell11103212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11103212) h +theorem e24KC2ThetaAboveLeaf111032130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11103213) = true := by + have h : ((childLL thetaAboveCell11103213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11103213) h +theorem e24KC2ThetaAboveLeaf111032131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11103213) = true := by + have h : ((childLH thetaAboveCell11103213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11103213) h +theorem e24KC2ThetaAboveLeaf111032132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11103213) = true := by + have h : ((childHL thetaAboveCell11103213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11103213) h +theorem e24KC2ThetaAboveLeaf111032133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11103213) = true := by + have h : ((childHH thetaAboveCell11103213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11103213) h +theorem e24KC2ThetaAboveLeaf111032200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11103220) = true := by + have h : ((childLL thetaAboveCell11103220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11103220) h +theorem e24KC2ThetaAboveLeaf111032201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11103220) = true := by + have h : ((childLH thetaAboveCell11103220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11103220) h +theorem e24KC2ThetaAboveLeaf111032202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11103220) = true := by + have h : ((childHL thetaAboveCell11103220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11103220) h +theorem e24KC2ThetaAboveLeaf111032203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11103220) = true := by + have h : ((childHH thetaAboveCell11103220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11103220) h +theorem e24KC2ThetaAboveLeaf111032210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11103221) = true := by + have h : ((childLL thetaAboveCell11103221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11103221) h +theorem e24KC2ThetaAboveLeaf111032211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11103221) = true := by + have h : ((childLH thetaAboveCell11103221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11103221) h +theorem e24KC2ThetaAboveLeaf111032212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11103221) = true := by + have h : ((childHL thetaAboveCell11103221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11103221) h +theorem e24KC2ThetaAboveLeaf111032213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11103221) = true := by + have h : ((childHH thetaAboveCell11103221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11103221) h +theorem e24KC2ThetaAboveLeaf11103222 : + adaptiveCoverCheck 11 thetaAboveCell11103222 = true := by + have h : (thetaAboveCell11103222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11103222 h +theorem e24KC2ThetaAboveLeaf11103223 : + adaptiveCoverCheck 11 thetaAboveCell11103223 = true := by + have h : (thetaAboveCell11103223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11103223 h +theorem e24KC2ThetaAboveLeaf111032300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11103230) = true := by + have h : ((childLL thetaAboveCell11103230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11103230) h +theorem e24KC2ThetaAboveLeaf111032301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11103230) = true := by + have h : ((childLH thetaAboveCell11103230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11103230) h +theorem e24KC2ThetaAboveLeaf111032302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11103230) = true := by + have h : ((childHL thetaAboveCell11103230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11103230) h +theorem e24KC2ThetaAboveLeaf111032303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11103230) = true := by + have h : ((childHH thetaAboveCell11103230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11103230) h +theorem e24KC2ThetaAboveLeaf111032310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11103231) = true := by + have h : ((childLL thetaAboveCell11103231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11103231) h +theorem e24KC2ThetaAboveLeaf111032311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11103231) = true := by + have h : ((childLH thetaAboveCell11103231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11103231) h +theorem e24KC2ThetaAboveLeaf111032312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11103231) = true := by + have h : ((childHL thetaAboveCell11103231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11103231) h +theorem e24KC2ThetaAboveLeaf111032313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11103231) = true := by + have h : ((childHH thetaAboveCell11103231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11103231) h +theorem e24KC2ThetaAboveLeaf11103232 : + adaptiveCoverCheck 11 thetaAboveCell11103232 = true := by + have h : (thetaAboveCell11103232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11103232 h +theorem e24KC2ThetaAboveLeaf11103233 : + adaptiveCoverCheck 11 thetaAboveCell11103233 = true := by + have h : (thetaAboveCell11103233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11103233 h +theorem e24KC2ThetaAboveLeaf11103300 : + adaptiveCoverCheck 11 thetaAboveCell11103300 = true := by + have h : (thetaAboveCell11103300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11103300 h +theorem e24KC2ThetaAboveLeaf11103301 : + adaptiveCoverCheck 11 thetaAboveCell11103301 = true := by + have h : (thetaAboveCell11103301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11103301 h +theorem e24KC2ThetaAboveLeaf111033020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11103302) = true := by + have h : ((childLL thetaAboveCell11103302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11103302) h +theorem e24KC2ThetaAboveLeaf111033021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11103302) = true := by + have h : ((childLH thetaAboveCell11103302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11103302) h +theorem e24KC2ThetaAboveLeaf111033022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11103302) = true := by + have h : ((childHL thetaAboveCell11103302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11103302) h +theorem e24KC2ThetaAboveLeaf111033023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11103302) = true := by + have h : ((childHH thetaAboveCell11103302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11103302) h +theorem e24KC2ThetaAboveLeaf111033030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11103303) = true := by + have h : ((childLL thetaAboveCell11103303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11103303) h +theorem e24KC2ThetaAboveLeaf111033031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11103303) = true := by + have h : ((childLH thetaAboveCell11103303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11103303) h +theorem e24KC2ThetaAboveLeaf111033032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11103303) = true := by + have h : ((childHL thetaAboveCell11103303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11103303) h +theorem e24KC2ThetaAboveLeaf111033033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11103303) = true := by + have h : ((childHH thetaAboveCell11103303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11103303) h +theorem e24KC2ThetaAboveLeaf11103310 : + adaptiveCoverCheck 11 thetaAboveCell11103310 = true := by + have h : (thetaAboveCell11103310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11103310 h +theorem e24KC2ThetaAboveLeaf11103311 : + adaptiveCoverCheck 11 thetaAboveCell11103311 = true := by + have h : (thetaAboveCell11103311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11103311 h +theorem e24KC2ThetaAboveLeaf111033120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11103312) = true := by + have h : ((childLL thetaAboveCell11103312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11103312) h +theorem e24KC2ThetaAboveLeaf111033121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11103312) = true := by + have h : ((childLH thetaAboveCell11103312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11103312) h +theorem e24KC2ThetaAboveLeaf111033122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11103312) = true := by + have h : ((childHL thetaAboveCell11103312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11103312) h +theorem e24KC2ThetaAboveLeaf111033123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11103312) = true := by + have h : ((childHH thetaAboveCell11103312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11103312) h +theorem e24KC2ThetaAboveLeaf111033130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11103313) = true := by + have h : ((childLL thetaAboveCell11103313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11103313) h +theorem e24KC2ThetaAboveLeaf111033131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11103313) = true := by + have h : ((childLH thetaAboveCell11103313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11103313) h +theorem e24KC2ThetaAboveLeaf111033132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11103313) = true := by + have h : ((childHL thetaAboveCell11103313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11103313) h +theorem e24KC2ThetaAboveLeaf111033133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11103313) = true := by + have h : ((childHH thetaAboveCell11103313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11103313) h +theorem e24KC2ThetaAboveLeaf111033200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11103320) = true := by + have h : ((childLL thetaAboveCell11103320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11103320) h +theorem e24KC2ThetaAboveLeaf111033201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11103320) = true := by + have h : ((childLH thetaAboveCell11103320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11103320) h +theorem e24KC2ThetaAboveLeaf111033202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11103320) = true := by + have h : ((childHL thetaAboveCell11103320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11103320) h +theorem e24KC2ThetaAboveLeaf111033203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11103320) = true := by + have h : ((childHH thetaAboveCell11103320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11103320) h +theorem e24KC2ThetaAboveLeaf111033210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11103321) = true := by + have h : ((childLL thetaAboveCell11103321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11103321) h +theorem e24KC2ThetaAboveLeaf111033211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11103321) = true := by + have h : ((childLH thetaAboveCell11103321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11103321) h +theorem e24KC2ThetaAboveLeaf111033212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11103321) = true := by + have h : ((childHL thetaAboveCell11103321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11103321) h +theorem e24KC2ThetaAboveLeaf111033213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11103321) = true := by + have h : ((childHH thetaAboveCell11103321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11103321) h +theorem e24KC2ThetaAboveLeaf11103322 : + adaptiveCoverCheck 11 thetaAboveCell11103322 = true := by + have h : (thetaAboveCell11103322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11103322 h +theorem e24KC2ThetaAboveLeaf11103323 : + adaptiveCoverCheck 11 thetaAboveCell11103323 = true := by + have h : (thetaAboveCell11103323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11103323 h +theorem e24KC2ThetaAboveLeaf111033300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11103330) = true := by + have h : ((childLL thetaAboveCell11103330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11103330) h +theorem e24KC2ThetaAboveLeaf111033301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11103330) = true := by + have h : ((childLH thetaAboveCell11103330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11103330) h +theorem e24KC2ThetaAboveLeaf111033302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11103330) = true := by + have h : ((childHL thetaAboveCell11103330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11103330) h +theorem e24KC2ThetaAboveLeaf111033303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11103330) = true := by + have h : ((childHH thetaAboveCell11103330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11103330) h +theorem e24KC2ThetaAboveLeaf111033310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11103331) = true := by + have h : ((childLL thetaAboveCell11103331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11103331) h +theorem e24KC2ThetaAboveLeaf111033311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11103331) = true := by + have h : ((childLH thetaAboveCell11103331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11103331) h +theorem e24KC2ThetaAboveLeaf111033312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11103331) = true := by + have h : ((childHL thetaAboveCell11103331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11103331) h +theorem e24KC2ThetaAboveLeaf111033313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11103331) = true := by + have h : ((childHH thetaAboveCell11103331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11103331) h +theorem e24KC2ThetaAboveLeaf11103332 : + adaptiveCoverCheck 11 thetaAboveCell11103332 = true := by + have h : (thetaAboveCell11103332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11103332 h +theorem e24KC2ThetaAboveLeaf11103333 : + adaptiveCoverCheck 11 thetaAboveCell11103333 = true := by + have h : (thetaAboveCell11103333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11103333 h +theorem e24KC2ThetaAboveLeaf111100 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell1111)) = true := by + have h : ((childLL (childLL thetaAboveCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLL thetaAboveCell1111)) h +theorem e24KC2ThetaAboveLeaf111101 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell1111)) = true := by + have h : ((childLH (childLL thetaAboveCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLL thetaAboveCell1111)) h +theorem e24KC2ThetaAboveLeaf111102 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell1111)) = true := by + have h : ((childHL (childLL thetaAboveCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell1111)) h +theorem e24KC2ThetaAboveLeaf111103 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell1111)) = true := by + have h : ((childHH (childLL thetaAboveCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell1111)) h +theorem e24KC2ThetaAboveLeaf111110 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell1111)) = true := by + have h : ((childLL (childLH thetaAboveCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLH thetaAboveCell1111)) h +theorem e24KC2ThetaAboveLeaf111111 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell1111)) = true := by + have h : ((childLH (childLH thetaAboveCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLH thetaAboveCell1111)) h +theorem e24KC2ThetaAboveLeaf111112 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell1111)) = true := by + have h : ((childHL (childLH thetaAboveCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell1111)) h +theorem e24KC2ThetaAboveLeaf111113 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell1111)) = true := by + have h : ((childHH (childLH thetaAboveCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell1111)) h +theorem e24KC2ThetaAboveLeaf1111200 : + adaptiveCoverCheck 12 (childLL (childLL (childHL thetaAboveCell1111))) = true := by + have h : ((childLL (childLL (childHL thetaAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHL thetaAboveCell1111))) h +theorem e24KC2ThetaAboveLeaf1111201 : + adaptiveCoverCheck 12 (childLH (childLL (childHL thetaAboveCell1111))) = true := by + have h : ((childLH (childLL (childHL thetaAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHL thetaAboveCell1111))) h +theorem e24KC2ThetaAboveLeaf1111202 : + adaptiveCoverCheck 12 (childHL (childLL (childHL thetaAboveCell1111))) = true := by + have h : ((childHL (childLL (childHL thetaAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childHL thetaAboveCell1111))) h +theorem e24KC2ThetaAboveLeaf1111203 : + adaptiveCoverCheck 12 (childHH (childLL (childHL thetaAboveCell1111))) = true := by + have h : ((childHH (childLL (childHL thetaAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childHL thetaAboveCell1111))) h +theorem e24KC2ThetaAboveLeaf1111210 : + adaptiveCoverCheck 12 (childLL (childLH (childHL thetaAboveCell1111))) = true := by + have h : ((childLL (childLH (childHL thetaAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHL thetaAboveCell1111))) h +theorem e24KC2ThetaAboveLeaf1111211 : + adaptiveCoverCheck 12 (childLH (childLH (childHL thetaAboveCell1111))) = true := by + have h : ((childLH (childLH (childHL thetaAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHL thetaAboveCell1111))) h +theorem e24KC2ThetaAboveLeaf1111212 : + adaptiveCoverCheck 12 (childHL (childLH (childHL thetaAboveCell1111))) = true := by + have h : ((childHL (childLH (childHL thetaAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childHL thetaAboveCell1111))) h +theorem e24KC2ThetaAboveLeaf1111213 : + adaptiveCoverCheck 12 (childHH (childLH (childHL thetaAboveCell1111))) = true := by + have h : ((childHH (childLH (childHL thetaAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childHL thetaAboveCell1111))) h +theorem e24KC2ThetaAboveLeaf11112200 : + adaptiveCoverCheck 11 thetaAboveCell11112200 = true := by + have h : (thetaAboveCell11112200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11112200 h +theorem e24KC2ThetaAboveLeaf11112201 : + adaptiveCoverCheck 11 thetaAboveCell11112201 = true := by + have h : (thetaAboveCell11112201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11112201 h +theorem e24KC2ThetaAboveLeaf111122020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11112202) = true := by + have h : ((childLL thetaAboveCell11112202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11112202) h +theorem e24KC2ThetaAboveLeaf111122021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11112202) = true := by + have h : ((childLH thetaAboveCell11112202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11112202) h +theorem e24KC2ThetaAboveLeaf111122022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11112202) = true := by + have h : ((childHL thetaAboveCell11112202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11112202) h +theorem e24KC2ThetaAboveLeaf111122023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11112202) = true := by + have h : ((childHH thetaAboveCell11112202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11112202) h +theorem e24KC2ThetaAboveLeaf111122030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11112203) = true := by + have h : ((childLL thetaAboveCell11112203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11112203) h +theorem e24KC2ThetaAboveLeaf111122031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11112203) = true := by + have h : ((childLH thetaAboveCell11112203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11112203) h +theorem e24KC2ThetaAboveLeaf111122032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11112203) = true := by + have h : ((childHL thetaAboveCell11112203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11112203) h +theorem e24KC2ThetaAboveLeaf111122033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11112203) = true := by + have h : ((childHH thetaAboveCell11112203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11112203) h +theorem e24KC2ThetaAboveLeaf11112210 : + adaptiveCoverCheck 11 thetaAboveCell11112210 = true := by + have h : (thetaAboveCell11112210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11112210 h +theorem e24KC2ThetaAboveLeaf11112211 : + adaptiveCoverCheck 11 thetaAboveCell11112211 = true := by + have h : (thetaAboveCell11112211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11112211 h +theorem e24KC2ThetaAboveLeaf111122120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11112212) = true := by + have h : ((childLL thetaAboveCell11112212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11112212) h +theorem e24KC2ThetaAboveLeaf111122121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11112212) = true := by + have h : ((childLH thetaAboveCell11112212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11112212) h +theorem e24KC2ThetaAboveLeaf111122122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11112212) = true := by + have h : ((childHL thetaAboveCell11112212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11112212) h +theorem e24KC2ThetaAboveLeaf111122123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11112212) = true := by + have h : ((childHH thetaAboveCell11112212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11112212) h +theorem e24KC2ThetaAboveLeaf111122130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11112213) = true := by + have h : ((childLL thetaAboveCell11112213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11112213) h +theorem e24KC2ThetaAboveLeaf111122131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11112213) = true := by + have h : ((childLH thetaAboveCell11112213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11112213) h +theorem e24KC2ThetaAboveLeaf111122132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11112213) = true := by + have h : ((childHL thetaAboveCell11112213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11112213) h +theorem e24KC2ThetaAboveLeaf111122133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11112213) = true := by + have h : ((childHH thetaAboveCell11112213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11112213) h +theorem e24KC2ThetaAboveLeaf111122200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11112220) = true := by + have h : ((childLL thetaAboveCell11112220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11112220) h +theorem e24KC2ThetaAboveLeaf111122201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11112220) = true := by + have h : ((childLH thetaAboveCell11112220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11112220) h +theorem e24KC2ThetaAboveLeaf111122202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11112220) = true := by + have h : ((childHL thetaAboveCell11112220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11112220) h +theorem e24KC2ThetaAboveLeaf111122203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11112220) = true := by + have h : ((childHH thetaAboveCell11112220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11112220) h +theorem e24KC2ThetaAboveLeaf111122210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11112221) = true := by + have h : ((childLL thetaAboveCell11112221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11112221) h +theorem e24KC2ThetaAboveLeaf111122211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11112221) = true := by + have h : ((childLH thetaAboveCell11112221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11112221) h +theorem e24KC2ThetaAboveLeaf111122212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11112221) = true := by + have h : ((childHL thetaAboveCell11112221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11112221) h +theorem e24KC2ThetaAboveLeaf111122213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11112221) = true := by + have h : ((childHH thetaAboveCell11112221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11112221) h +theorem e24KC2ThetaAboveLeaf11112222 : + adaptiveCoverCheck 11 thetaAboveCell11112222 = true := by + have h : (thetaAboveCell11112222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11112222 h +theorem e24KC2ThetaAboveLeaf11112223 : + adaptiveCoverCheck 11 thetaAboveCell11112223 = true := by + have h : (thetaAboveCell11112223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11112223 h +theorem e24KC2ThetaAboveLeaf111122300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11112230) = true := by + have h : ((childLL thetaAboveCell11112230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11112230) h +theorem e24KC2ThetaAboveLeaf111122301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11112230) = true := by + have h : ((childLH thetaAboveCell11112230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11112230) h +theorem e24KC2ThetaAboveLeaf111122302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11112230) = true := by + have h : ((childHL thetaAboveCell11112230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11112230) h +theorem e24KC2ThetaAboveLeaf111122303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11112230) = true := by + have h : ((childHH thetaAboveCell11112230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11112230) h +theorem e24KC2ThetaAboveLeaf111122310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11112231) = true := by + have h : ((childLL thetaAboveCell11112231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11112231) h +theorem e24KC2ThetaAboveLeaf111122311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11112231) = true := by + have h : ((childLH thetaAboveCell11112231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11112231) h +theorem e24KC2ThetaAboveLeaf111122312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11112231) = true := by + have h : ((childHL thetaAboveCell11112231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11112231) h +theorem e24KC2ThetaAboveLeaf111122313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11112231) = true := by + have h : ((childHH thetaAboveCell11112231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11112231) h +theorem e24KC2ThetaAboveLeaf11112232 : + adaptiveCoverCheck 11 thetaAboveCell11112232 = true := by + have h : (thetaAboveCell11112232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11112232 h +theorem e24KC2ThetaAboveLeaf11112233 : + adaptiveCoverCheck 11 thetaAboveCell11112233 = true := by + have h : (thetaAboveCell11112233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11112233 h +theorem e24KC2ThetaAboveLeaf11112300 : + adaptiveCoverCheck 11 thetaAboveCell11112300 = true := by + have h : (thetaAboveCell11112300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11112300 h +theorem e24KC2ThetaAboveLeaf11112301 : + adaptiveCoverCheck 11 thetaAboveCell11112301 = true := by + have h : (thetaAboveCell11112301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11112301 h +theorem e24KC2ThetaAboveLeaf111123020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11112302) = true := by + have h : ((childLL thetaAboveCell11112302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11112302) h +theorem e24KC2ThetaAboveLeaf111123021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11112302) = true := by + have h : ((childLH thetaAboveCell11112302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11112302) h +theorem e24KC2ThetaAboveLeaf111123022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11112302) = true := by + have h : ((childHL thetaAboveCell11112302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11112302) h +theorem e24KC2ThetaAboveLeaf111123023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11112302) = true := by + have h : ((childHH thetaAboveCell11112302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11112302) h +theorem e24KC2ThetaAboveLeaf111123030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11112303) = true := by + have h : ((childLL thetaAboveCell11112303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11112303) h +theorem e24KC2ThetaAboveLeaf111123031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11112303) = true := by + have h : ((childLH thetaAboveCell11112303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11112303) h +theorem e24KC2ThetaAboveLeaf111123032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11112303) = true := by + have h : ((childHL thetaAboveCell11112303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11112303) h +theorem e24KC2ThetaAboveLeaf111123033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11112303) = true := by + have h : ((childHH thetaAboveCell11112303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11112303) h +theorem e24KC2ThetaAboveLeaf11112310 : + adaptiveCoverCheck 11 thetaAboveCell11112310 = true := by + have h : (thetaAboveCell11112310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11112310 h +theorem e24KC2ThetaAboveLeaf11112311 : + adaptiveCoverCheck 11 thetaAboveCell11112311 = true := by + have h : (thetaAboveCell11112311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11112311 h +theorem e24KC2ThetaAboveLeaf111123120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11112312) = true := by + have h : ((childLL thetaAboveCell11112312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11112312) h +theorem e24KC2ThetaAboveLeaf111123121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11112312) = true := by + have h : ((childLH thetaAboveCell11112312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11112312) h +theorem e24KC2ThetaAboveLeaf111123122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11112312) = true := by + have h : ((childHL thetaAboveCell11112312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11112312) h +theorem e24KC2ThetaAboveLeaf111123123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11112312) = true := by + have h : ((childHH thetaAboveCell11112312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11112312) h +theorem e24KC2ThetaAboveLeaf111123130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11112313) = true := by + have h : ((childLL thetaAboveCell11112313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11112313) h +theorem e24KC2ThetaAboveLeaf111123131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11112313) = true := by + have h : ((childLH thetaAboveCell11112313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11112313) h +theorem e24KC2ThetaAboveLeaf111123132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11112313) = true := by + have h : ((childHL thetaAboveCell11112313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11112313) h +theorem e24KC2ThetaAboveLeaf111123133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11112313) = true := by + have h : ((childHH thetaAboveCell11112313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11112313) h +theorem e24KC2ThetaAboveLeaf111123200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11112320) = true := by + have h : ((childLL thetaAboveCell11112320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11112320) h +theorem e24KC2ThetaAboveLeaf111123201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11112320) = true := by + have h : ((childLH thetaAboveCell11112320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11112320) h +theorem e24KC2ThetaAboveLeaf111123202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11112320) = true := by + have h : ((childHL thetaAboveCell11112320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11112320) h +theorem e24KC2ThetaAboveLeaf111123203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11112320) = true := by + have h : ((childHH thetaAboveCell11112320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11112320) h +theorem e24KC2ThetaAboveLeaf111123210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11112321) = true := by + have h : ((childLL thetaAboveCell11112321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11112321) h +theorem e24KC2ThetaAboveLeaf111123211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11112321) = true := by + have h : ((childLH thetaAboveCell11112321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11112321) h +theorem e24KC2ThetaAboveLeaf111123212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11112321) = true := by + have h : ((childHL thetaAboveCell11112321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11112321) h +theorem e24KC2ThetaAboveLeaf111123213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11112321) = true := by + have h : ((childHH thetaAboveCell11112321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11112321) h +theorem e24KC2ThetaAboveLeaf11112322 : + adaptiveCoverCheck 11 thetaAboveCell11112322 = true := by + have h : (thetaAboveCell11112322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11112322 h +theorem e24KC2ThetaAboveLeaf11112323 : + adaptiveCoverCheck 11 thetaAboveCell11112323 = true := by + have h : (thetaAboveCell11112323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11112323 h +theorem e24KC2ThetaAboveLeaf111123300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11112330) = true := by + have h : ((childLL thetaAboveCell11112330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11112330) h +theorem e24KC2ThetaAboveLeaf111123301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11112330) = true := by + have h : ((childLH thetaAboveCell11112330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11112330) h +theorem e24KC2ThetaAboveLeaf111123302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11112330) = true := by + have h : ((childHL thetaAboveCell11112330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11112330) h +theorem e24KC2ThetaAboveLeaf111123303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11112330) = true := by + have h : ((childHH thetaAboveCell11112330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11112330) h +theorem e24KC2ThetaAboveLeaf111123310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11112331) = true := by + have h : ((childLL thetaAboveCell11112331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11112331) h + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle003.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle003.lean new file mode 100644 index 0000000000..0079b266b1 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle003.lean @@ -0,0 +1,12868 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch003`. +* `GerverSofa.KernelOnly.PartE.Certificates.Batch012`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CoverCertificate12be39bbad + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLH (childLH (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +end GerverSofa.PartE.CoverCertificate12be39bbad + +namespace GerverSofa.PartE.CoverCertificatec4afef5d19 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childLH (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +end GerverSofa.PartE.CoverCertificatec4afef5d19 + +namespace GerverSofa.PartE.CoverCertificate62151508e5 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLH (childLH (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate62151508e5 + +namespace GerverSofa.PartE.CoverCertificate2dddad520f + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLH (childLH (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +end GerverSofa.PartE.CoverCertificate2dddad520f + +namespace GerverSofa.PartE.CoverCertificate4f8bf27ed0 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLH (childLH (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate4f8bf27ed0 + +namespace GerverSofa.PartE.CoverCertificate60aadf3941 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLH (childLH (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate60aadf3941 + +namespace GerverSofa.PartE.CoverCertificate19be7723d5 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLH (childLH (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate19be7723d5 + +namespace GerverSofa.PartE.CoverCertificatea0740027fc + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childLH (childLH (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatea0740027fc + +namespace GerverSofa.PartE.CoverCertificate069fa78a71 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childHL (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate069fa78a71 + +namespace GerverSofa.PartE.CoverCertificate1d00d9f69c + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childHL (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate1d00d9f69c + +namespace GerverSofa.PartE.CoverCertificate01063797cc + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childHL (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate01063797cc + +namespace GerverSofa.PartE.CoverCertificatef842354b5b + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childHH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatef842354b5b + +namespace GerverSofa.PartE.CoverCertificate0e9db7bf30 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childHH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate0e9db7bf30 + +namespace GerverSofa.PartE.CoverCertificate1dc6ae7126 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childHH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate1dc6ae7126 + +namespace GerverSofa.PartE.CoverCertificate3c9114c82d + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childHH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate3c9114c82d + +namespace GerverSofa.PartE.CoverCertificateec279abdfe + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childHH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificateec279abdfe + +namespace GerverSofa.PartE.CoverCertificate4e21575659 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childHH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate4e21575659 + +namespace GerverSofa.PartE.CoverCertificated2df3f1b8b + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childHH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificated2df3f1b8b + +namespace GerverSofa.PartE.CoverCertificatefd72248a13 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childHH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatefd72248a13 + +namespace GerverSofa.PartE.CoverCertificate182948158b + +private abbrev cellRoot : AngleCell := + (childLL (childHL (childHH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate182948158b + +namespace GerverSofa.PartE.CoverCertificate2c60bab4c6 + +private abbrev cellRoot : AngleCell := + (childLH (childHL (childHH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate2c60bab4c6 + +namespace GerverSofa.PartE.CoverCertificatefc5d468444 + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childHH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatefc5d468444 + +namespace GerverSofa.PartE.CoverCertificatee3c94e2667 + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childHH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatee3c94e2667 + +namespace GerverSofa.PartE.CoverCertificatee175b9aa59 + +private abbrev cellRoot : AngleCell := + (childLL (childHH (childHH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatee175b9aa59 + +namespace GerverSofa.PartE.CoverCertificate1efa344902 + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childHH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate1efa344902 + +namespace GerverSofa.PartE.CoverCertificatea932254ffe + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childHH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatea932254ffe + +namespace GerverSofa.PartE.CoverCertificate4b644f2af3 + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childHH (childHL (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate4b644f2af3 + +namespace GerverSofa.PartE.CoverCertificate27ea8c6704 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate27ea8c6704 + +namespace GerverSofa.PartE.CoverCertificate7519fa3e77 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate7519fa3e77 + +namespace GerverSofa.PartE.CoverCertificate79beaf8121 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate79beaf8121 + +namespace GerverSofa.PartE.CoverCertificatef1c8d80a5e + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +end GerverSofa.PartE.CoverCertificatef1c8d80a5e + +namespace GerverSofa.PartE.CoverCertificateffa95a2bce + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificateffa95a2bce + +namespace GerverSofa.PartE.CoverCertificatea622d1d6d8 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatea622d1d6d8 + +namespace GerverSofa.PartE.CoverCertificate6808a28f96 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate6808a28f96 + +namespace GerverSofa.PartE.CoverCertificate64b5caf113 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate64b5caf113 + +namespace GerverSofa.PartE.CoverCertificate8d399165ed + +private abbrev cellRoot : AngleCell := + (childLL (childHL (childLL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +end GerverSofa.PartE.CoverCertificate8d399165ed + +namespace GerverSofa.PartE.CoverCertificateb129667c78 + +private abbrev cellRoot : AngleCell := + (childLH (childHL (childLL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificateb129667c78 + +namespace GerverSofa.PartE.CoverCertificatee5db5e1b6d + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childLL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatee5db5e1b6d + +namespace GerverSofa.PartE.CoverCertificatee9fa971b95 + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childLL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +end GerverSofa.PartE.CoverCertificatee9fa971b95 + +namespace GerverSofa.PartE.CoverCertificated4cb65cefa + +private abbrev cellRoot : AngleCell := + (childLL (childHH (childLL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +end GerverSofa.PartE.CoverCertificated4cb65cefa + +namespace GerverSofa.PartE.CoverCertificate75e4a1640f + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childLL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate75e4a1640f + +namespace GerverSofa.PartE.CoverCertificateb422ba7d7a + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childLL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificateb422ba7d7a + +namespace GerverSofa.PartE.CoverCertificate348be683b7 + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childLL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +end GerverSofa.PartE.CoverCertificate348be683b7 + +namespace GerverSofa.PartE.CoverCertificatee69a3e135e + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatee69a3e135e + +namespace GerverSofa.PartE.CoverCertificate7cfce934a3 + +private abbrev cellRoot : AngleCell := + (childLL (childHL (childLH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate7cfce934a3 + +namespace GerverSofa.PartE.CoverCertificatee6e5d7b950 + +private abbrev cellRoot : AngleCell := + (childLH (childHL (childLH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatee6e5d7b950 + +namespace GerverSofa.PartE.CoverCertificatedbde18308c + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childLH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatedbde18308c + +namespace GerverSofa.PartE.CoverCertificate78624e9f2e + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childLH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate78624e9f2e + +namespace GerverSofa.PartE.CoverCertificate86b7e57f5c + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childLH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate86b7e57f5c + +namespace GerverSofa.PartE.CoverCertificate81d94c7da5 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childHL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate81d94c7da5 + +namespace GerverSofa.PartE.CoverCertificatecaeab30c1b + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childHL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatecaeab30c1b + +namespace GerverSofa.PartE.CoverCertificatecee0fdb8c5 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childHL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatecee0fdb8c5 + +namespace GerverSofa.PartE.CoverCertificate92301c5291 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childHL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +end GerverSofa.PartE.CoverCertificate92301c5291 + +namespace GerverSofa.PartE.CoverCertificate16ba550865 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childHL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate16ba550865 + +namespace GerverSofa.PartE.CoverCertificatebb39ac0110 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childHL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +private abbrev cell2020 : AngleCell := + childLL cell202 + +private abbrev cell2021 : AngleCell := + childLH cell202 + +private abbrev cell2022 : AngleCell := + childHL cell202 + +private abbrev cell2023 : AngleCell := + childHH cell202 + +private abbrev cell2200 : AngleCell := + childLL cell220 + +private abbrev cell2201 : AngleCell := + childLH cell220 + +private abbrev cell2202 : AngleCell := + childHL cell220 + +private abbrev cell2203 : AngleCell := + childHH cell220 + +private abbrev cell2210 : AngleCell := + childLL cell221 + +private abbrev cell2211 : AngleCell := + childLH cell221 + +private abbrev cell2212 : AngleCell := + childHL cell221 + +private abbrev cell2213 : AngleCell := + childHH cell221 + +private abbrev cell2220 : AngleCell := + childLL cell222 + +private abbrev cell2221 : AngleCell := + childLH cell222 + +private abbrev cell2222 : AngleCell := + childHL cell222 + +private abbrev cell2223 : AngleCell := + childHH cell222 + +private abbrev cell2230 : AngleCell := + childLL cell223 + +private abbrev cell2231 : AngleCell := + childLH cell223 + +private abbrev cell2232 : AngleCell := + childHL cell223 + +private abbrev cell2233 : AngleCell := + childHH cell223 + +private abbrev cell2320 : AngleCell := + childLL cell232 + +private abbrev cell2321 : AngleCell := + childLH cell232 + +private abbrev cell2322 : AngleCell := + childHL cell232 + +private abbrev cell2323 : AngleCell := + childHH cell232 + +end GerverSofa.PartE.CoverCertificatebb39ac0110 + +namespace GerverSofa.PartE.CoverCertificatef2ad9b0e27 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childHL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +end GerverSofa.PartE.CoverCertificatef2ad9b0e27 + +namespace GerverSofa.PartE.CoverCertificate73093b0a81 + +private abbrev cellRoot : AngleCell := + (childLL (childHL (childHL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate73093b0a81 + +namespace GerverSofa.PartE.CoverCertificate74c1ca1637 + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childHL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +end GerverSofa.PartE.CoverCertificate74c1ca1637 + +namespace GerverSofa.PartE.CoverCertificateec9c3e1faf + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +private abbrev cell2200 : AngleCell := + childLL cell220 + +private abbrev cell2201 : AngleCell := + childLH cell220 + +private abbrev cell2202 : AngleCell := + childHL cell220 + +private abbrev cell2203 : AngleCell := + childHH cell220 + +private abbrev cell2220 : AngleCell := + childLL cell222 + +private abbrev cell2221 : AngleCell := + childLH cell222 + +private abbrev cell2222 : AngleCell := + childHL cell222 + +private abbrev cell2223 : AngleCell := + childHH cell222 + +private abbrev cell2230 : AngleCell := + childLL cell223 + +private abbrev cell2231 : AngleCell := + childLH cell223 + +private abbrev cell2232 : AngleCell := + childHL cell223 + +private abbrev cell2233 : AngleCell := + childHH cell223 + +end GerverSofa.PartE.CoverCertificateec9c3e1faf + +namespace GerverSofa.PartE.CoverCertificate144616495b + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate144616495b + +namespace GerverSofa.PartE.CoverCertificatef96351225f + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatef96351225f + +namespace GerverSofa.PartE.CoverCertificateed7fe84102 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificateed7fe84102 + +namespace GerverSofa.PartE.CoverCertificateb1ce232ebf + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificateb1ce232ebf + +namespace GerverSofa.PartE.CoverCertificate3e6f5d1050 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLH (childLL (childLH (childLH (childLH (e24PhiAboveRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +end GerverSofa.PartE.CoverCertificate3e6f5d1050 + +namespace GerverSofa.PartE.CoverCertificate3c635b07e8 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childHH (childHH (childHH (e24PhiBelowRoot)))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate3c635b07e8 + +namespace GerverSofa.PartE.CertificateCells976ad3f816 + +/-- Subcell `1111` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCells976ad3f816 + +namespace GerverSofa.PartE.CertificateCells83c065d08f + +/-- Subcell `3221` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3221 : AngleCell := + childLH (childHL (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3223 : AngleCell := + childHH (childHL (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3230` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3230 : AngleCell := + childLL (childHH (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3231` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3231 : AngleCell := + childLH (childHH (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells83c065d08f + +namespace GerverSofa.PartE.CertificateCells9044f599c8 + +/-- Subcell `3231` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3231 : AngleCell := + childLH (childHH (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3232` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3232 : AngleCell := + childHL (childHH (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3233` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3233 : AngleCell := + childHH (childHH (childHL (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells9044f599c8 + +namespace GerverSofa.PartE.CertificateCellse87459d2a7 + +/-- Subcell `3233` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3233 : AngleCell := + childHH (childHH (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3300` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3300 : AngleCell := + childLL (childLL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3301` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3301 : AngleCell := + childLH (childLL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellse87459d2a7 + +namespace GerverSofa.PartE.CertificateCells5c2e184d25 + +/-- Subcell `3301` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3301 : AngleCell := + childLH (childLL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3302` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3302 : AngleCell := + childHL (childLL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3303` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3303 : AngleCell := + childHH (childLL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells5c2e184d25 + +namespace GerverSofa.PartE.CertificateCells32f77991dd + +/-- Subcell `3303` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3303 : AngleCell := + childHH (childLL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3310` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3310 : AngleCell := + childLL (childLH (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3312` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3312 : AngleCell := + childHL (childLH (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells32f77991dd + +namespace GerverSofa.PartE.CertificateCells6c9e156424 + +/-- Subcell `3313` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3313 : AngleCell := + childHH (childLH (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3320` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3320 : AngleCell := + childLL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells6c9e156424 + +namespace GerverSofa.PartE.CertificateCells613b88d08f + +/-- Subcell `3320` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3320 : AngleCell := + childLL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells613b88d08f + +namespace GerverSofa.PartE.CertificateCells14a7ef0a1a + +/-- Subcell `3320` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3320 : AngleCell := + childLL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells14a7ef0a1a + +namespace GerverSofa.PartE.CertificateCells756d9e6827 + +/-- Subcell `3321` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3321 : AngleCell := + childLH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells756d9e6827 + +namespace GerverSofa.PartE.CertificateCells9052ca8de4 + +/-- Subcell `3321` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3321 : AngleCell := + childLH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells9052ca8de4 + +namespace GerverSofa.PartE.CertificateCells8466e30288 + +/-- Subcell `3321` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3321 : AngleCell := + childLH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells8466e30288 + +namespace GerverSofa.PartE.CertificateCells960370a0be + +/-- Subcell `3321` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3321 : AngleCell := + childLH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3322` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3322 : AngleCell := + childHL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells960370a0be + +namespace GerverSofa.PartE.CertificateCellsd434aeb685 + +/-- Subcell `3322` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3322 : AngleCell := + childHL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsd434aeb685 + +namespace GerverSofa.PartE.CertificateCells720ec0d149 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells720ec0d149 + +namespace GerverSofa.PartE.CertificateCells9005545168 + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCells9005545168 + +namespace GerverSofa.PartE.CertificateCellse586487728 + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCellse586487728 + +namespace GerverSofa.PartE.CertificateCellsce87a9d03d + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCellsce87a9d03d + +namespace GerverSofa.PartE.CertificateCellsce3c5151af + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCellsce3c5151af + +namespace GerverSofa.PartE.CertificateCells7c64a780f8 + +/-- Subcell `3330` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3330 : AngleCell := + childLL (childHH (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells7c64a780f8 + +namespace GerverSofa.PartE.CertificateCells168aeb56e4 + +/-- Subcell `1010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1010 : AngleCell := + childLL (childLH (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1011 : AngleCell := + childLH (childLH (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1012 : AngleCell := + childHL (childLH (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1013 : AngleCell := + childHH (childLH (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1020 : AngleCell := + childLL (childHL (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1021 : AngleCell := + childLH (childHL (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1022 : AngleCell := + childHL (childHL (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1023 : AngleCell := + childHH (childHL (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1030 : AngleCell := + childLL (childHH (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1031 : AngleCell := + childLH (childHH (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1032 : AngleCell := + childHL (childHH (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1033 : AngleCell := + childHH (childHH (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1100 : AngleCell := + childLL (childLL (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `10103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `11002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell1100))) + +end GerverSofa.PartE.CertificateCells168aeb56e4 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC5FrontierBatchF3200227`. +* `KernelOnly.PartE.E24KC5FrontierBatchF4000228`. +* `KernelOnly.PartE.E24KC5FrontierBatchF4800229`. +* `KernelOnly.PartE.E24KC5FrontierBatchF5600230`. +* `KernelOnly.PartE.E24KC5FrontierBatchF6400231`. +* `KernelOnly.PartE.E24KC5FrontierBatchF7200232`. +* `KernelOnly.PartE.E24KC5FrontierBatchF80LL00235`. +* `KernelOnly.PartE.E24KC5FrontierBatchF80LRL00237`. +* `KernelOnly.PartE.E24KC5FrontierBatchF80LRR00238`. +* `KernelOnly.PartE.E24KC5FrontierBatchF80RLR00247`. +* `KernelOnly.PartE.E24KC5FrontierBatchF80RRL00249`. +* `KernelOnly.PartE.E24KC5FrontierBatchF80RRR00250`. +* `KernelOnly.PartE.E24KC5FrontierBatchF88LL00253`. +* `KernelOnly.PartE.E24KC5FrontierBatchF88LRR00261`. +* `KernelOnly.PartE.E24KC5FrontierBatchF88RRL00287`. +* `KernelOnly.PartE.E24KC5FrontierBatchF8LLR00192`. +* `KernelOnly.PartE.E24KC5FrontierBatchF8LRL00194`. +* `KernelOnly.PartE.E24KC5FrontierBatchF8RLR00209`. +* `KernelOnly.PartE.E24KC5FrontierBatchF8RR00210`. +* `KernelOnly.PartE.E24KC5FrontierBatchF96LLR00463`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells976ad3f816 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells976ad3f816 + +open CertificateCells976ad3f816 +namespace CoverCertificate12be39bbad + +private theorem checked020 : adaptiveCoverCheck 6 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 6 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 6 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 6 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 6 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 6 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 6 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 6 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 6 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 6 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 6 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 6 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 6 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 6 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 6 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 6 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 6 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 6 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 6 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 6 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 6 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 6 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 6 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 6 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 6 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 6 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 6 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 6 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 6 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 6 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 6 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 6 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell313 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate12be39bbad + +theorem e24KC2PhiAboveLeaf1111101 : + adaptiveCoverCheck 9 (childLH (childLL (childLH phiAboveCell1111))) = true := by + exact CoverCertificate12be39bbad.checkedRoot +namespace CoverCertificatec4afef5d19 + +private theorem checked000 : adaptiveCoverCheck 6 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 6 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 6 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 6 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 6 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 6 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 6 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 6 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 6 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 6 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 6 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 6 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell103 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec4afef5d19 + +theorem e24KC2PhiAboveLeaf1111102 : + adaptiveCoverCheck 9 (childHL (childLL (childLH phiAboveCell1111))) = true := by + exact CoverCertificatec4afef5d19.checkedRoot +namespace CoverCertificate62151508e5 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate62151508e5 + +theorem e24KC2PhiAboveLeaf1111103 : + adaptiveCoverCheck 9 (childHH (childLL (childLH phiAboveCell1111))) = true := by + exact CoverCertificate62151508e5.checkedRoot +namespace CoverCertificate2dddad520f + +private theorem checked020 : adaptiveCoverCheck 6 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 6 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 6 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 6 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell023 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate2dddad520f + +theorem e24KC2PhiAboveLeaf1111110 : + adaptiveCoverCheck 9 (childLL (childLH (childLH phiAboveCell1111))) = true := by + exact CoverCertificate2dddad520f.checkedRoot +namespace CoverCertificate4f8bf27ed0 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4f8bf27ed0 + +theorem e24KC2PhiAboveLeaf1111111 : + adaptiveCoverCheck 9 (childLH (childLH (childLH phiAboveCell1111))) = true := by + exact CoverCertificate4f8bf27ed0.checkedRoot +namespace CoverCertificate60aadf3941 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate60aadf3941 + +theorem e24KC2PhiAboveLeaf1111112 : + adaptiveCoverCheck 9 (childHL (childLH (childLH phiAboveCell1111))) = true := by + exact CoverCertificate60aadf3941.checkedRoot +namespace CoverCertificate19be7723d5 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate19be7723d5 + +theorem e24KC2PhiAboveLeaf1111113 : + adaptiveCoverCheck 9 (childHH (childLH (childLH phiAboveCell1111))) = true := by + exact CoverCertificate19be7723d5.checkedRoot +namespace CoverCertificatea0740027fc + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea0740027fc + +theorem e24KC2PhiAboveLeaf1111131 : + adaptiveCoverCheck 9 (childLH (childHH (childLH phiAboveCell1111))) = true := by + exact CoverCertificatea0740027fc.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells83c065d08f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells83c065d08f + +open CertificateCells83c065d08f +namespace CoverCertificate069fa78a71 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate069fa78a71 + +theorem e24KC2PhiBelowLeaf32211 : + adaptiveCoverCheck 9 (childLH phiBelowCell3221) = true := by + exact CoverCertificate069fa78a71.checkedRoot +namespace CoverCertificate1d00d9f69c + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1d00d9f69c + +theorem e24KC2PhiBelowLeaf32213 : + adaptiveCoverCheck 9 (childHH phiBelowCell3221) = true := by + exact CoverCertificate1d00d9f69c.checkedRoot +namespace CoverCertificate01063797cc + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate01063797cc + +theorem e24KC2PhiBelowLeaf32231 : + adaptiveCoverCheck 9 (childLH phiBelowCell3223) = true := by + exact CoverCertificate01063797cc.checkedRoot +namespace CoverCertificatef842354b5b + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef842354b5b + +theorem e24KC2PhiBelowLeaf32300 : + adaptiveCoverCheck 9 (childLL phiBelowCell3230) = true := by + exact CoverCertificatef842354b5b.checkedRoot +namespace CoverCertificate0e9db7bf30 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0e9db7bf30 + +theorem e24KC2PhiBelowLeaf32301 : + adaptiveCoverCheck 9 (childLH phiBelowCell3230) = true := by + exact CoverCertificate0e9db7bf30.checkedRoot +namespace CoverCertificate1dc6ae7126 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1dc6ae7126 + +theorem e24KC2PhiBelowLeaf32302 : + adaptiveCoverCheck 9 (childHL phiBelowCell3230) = true := by + exact CoverCertificate1dc6ae7126.checkedRoot +namespace CoverCertificate3c9114c82d + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3c9114c82d + +theorem e24KC2PhiBelowLeaf32303 : + adaptiveCoverCheck 9 (childHH phiBelowCell3230) = true := by + exact CoverCertificate3c9114c82d.checkedRoot +namespace CoverCertificateec279abdfe + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateec279abdfe + +theorem e24KC2PhiBelowLeaf32310 : + adaptiveCoverCheck 9 (childLL phiBelowCell3231) = true := by + exact CoverCertificateec279abdfe.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9044f599c8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9044f599c8 + +open CertificateCells9044f599c8 +namespace CoverCertificate4e21575659 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4e21575659 + +theorem e24KC2PhiBelowLeaf32311 : + adaptiveCoverCheck 9 (childLH phiBelowCell3231) = true := by + exact CoverCertificate4e21575659.checkedRoot +namespace CoverCertificated2df3f1b8b + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated2df3f1b8b + +theorem e24KC2PhiBelowLeaf32312 : + adaptiveCoverCheck 9 (childHL phiBelowCell3231) = true := by + exact CoverCertificated2df3f1b8b.checkedRoot +namespace CoverCertificatefd72248a13 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatefd72248a13 + +theorem e24KC2PhiBelowLeaf32313 : + adaptiveCoverCheck 9 (childHH phiBelowCell3231) = true := by + exact CoverCertificatefd72248a13.checkedRoot +namespace CoverCertificate182948158b + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate182948158b + +theorem e24KC2PhiBelowLeaf32320 : + adaptiveCoverCheck 9 (childLL phiBelowCell3232) = true := by + exact CoverCertificate182948158b.checkedRoot +namespace CoverCertificate2c60bab4c6 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate2c60bab4c6 + +theorem e24KC2PhiBelowLeaf32321 : + adaptiveCoverCheck 9 (childLH phiBelowCell3232) = true := by + exact CoverCertificate2c60bab4c6.checkedRoot +namespace CoverCertificatefc5d468444 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatefc5d468444 + +theorem e24KC2PhiBelowLeaf32322 : + adaptiveCoverCheck 9 (childHL phiBelowCell3232) = true := by + exact CoverCertificatefc5d468444.checkedRoot +namespace CoverCertificatee3c94e2667 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee3c94e2667 + +theorem e24KC2PhiBelowLeaf32323 : + adaptiveCoverCheck 9 (childHH phiBelowCell3232) = true := by + exact CoverCertificatee3c94e2667.checkedRoot +namespace CoverCertificatee175b9aa59 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee175b9aa59 + +theorem e24KC2PhiBelowLeaf32330 : + adaptiveCoverCheck 9 (childLL phiBelowCell3233) = true := by + exact CoverCertificatee175b9aa59.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse87459d2a7 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse87459d2a7 + +open CertificateCellse87459d2a7 +namespace CoverCertificate1efa344902 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1efa344902 + +theorem e24KC2PhiBelowLeaf32331 : + adaptiveCoverCheck 9 (childLH phiBelowCell3233) = true := by + exact CoverCertificate1efa344902.checkedRoot +namespace CoverCertificatea932254ffe + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea932254ffe + +theorem e24KC2PhiBelowLeaf32332 : + adaptiveCoverCheck 9 (childHL phiBelowCell3233) = true := by + exact CoverCertificatea932254ffe.checkedRoot +namespace CoverCertificate4b644f2af3 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4b644f2af3 + +theorem e24KC2PhiBelowLeaf32333 : + adaptiveCoverCheck 9 (childHH phiBelowCell3233) = true := by + exact CoverCertificate4b644f2af3.checkedRoot +namespace CoverCertificate27ea8c6704 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate27ea8c6704 + +theorem e24KC2PhiBelowLeaf33000 : + adaptiveCoverCheck 9 (childLL phiBelowCell3300) = true := by + exact CoverCertificate27ea8c6704.checkedRoot +namespace CoverCertificate7519fa3e77 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate7519fa3e77 + +theorem e24KC2PhiBelowLeaf33001 : + adaptiveCoverCheck 9 (childLH phiBelowCell3300) = true := by + exact CoverCertificate7519fa3e77.checkedRoot +namespace CoverCertificate79beaf8121 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate79beaf8121 + +theorem e24KC2PhiBelowLeaf33002 : + adaptiveCoverCheck 9 (childHL phiBelowCell3300) = true := by + exact CoverCertificate79beaf8121.checkedRoot +namespace CoverCertificatef1c8d80a5e + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef1c8d80a5e + +theorem e24KC2PhiBelowLeaf33003 : + adaptiveCoverCheck 9 (childHH phiBelowCell3300) = true := by + exact CoverCertificatef1c8d80a5e.checkedRoot +namespace CoverCertificateffa95a2bce + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateffa95a2bce + +theorem e24KC2PhiBelowLeaf33010 : + adaptiveCoverCheck 9 (childLL phiBelowCell3301) = true := by + exact CoverCertificateffa95a2bce.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5c2e184d25 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5c2e184d25 + +open CertificateCells5c2e184d25 +namespace CoverCertificatea622d1d6d8 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea622d1d6d8 + +theorem e24KC2PhiBelowLeaf33011 : + adaptiveCoverCheck 9 (childLH phiBelowCell3301) = true := by + exact CoverCertificatea622d1d6d8.checkedRoot +namespace CoverCertificate6808a28f96 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate6808a28f96 + +theorem e24KC2PhiBelowLeaf33012 : + adaptiveCoverCheck 9 (childHL phiBelowCell3301) = true := by + exact CoverCertificate6808a28f96.checkedRoot +namespace CoverCertificate64b5caf113 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate64b5caf113 + +theorem e24KC2PhiBelowLeaf33013 : + adaptiveCoverCheck 9 (childHH phiBelowCell3301) = true := by + exact CoverCertificate64b5caf113.checkedRoot +namespace CoverCertificate8d399165ed + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate8d399165ed + +theorem e24KC2PhiBelowLeaf33020 : + adaptiveCoverCheck 9 (childLL phiBelowCell3302) = true := by + exact CoverCertificate8d399165ed.checkedRoot +namespace CoverCertificateb129667c78 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateb129667c78 + +theorem e24KC2PhiBelowLeaf33021 : + adaptiveCoverCheck 9 (childLH phiBelowCell3302) = true := by + exact CoverCertificateb129667c78.checkedRoot +namespace CoverCertificatee5db5e1b6d + +private theorem checked100 : adaptiveCoverCheck 6 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 6 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 6 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 6 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 6 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 6 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 6 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 6 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 6 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 6 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 6 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 6 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 6 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 6 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 6 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 6 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell133 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 6 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 6 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 6 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 6 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 6 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 6 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 6 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 6 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee5db5e1b6d + +theorem e24KC2PhiBelowLeaf33022 : + adaptiveCoverCheck 9 (childHL phiBelowCell3302) = true := by + exact CoverCertificatee5db5e1b6d.checkedRoot +namespace CoverCertificatee9fa971b95 + +private theorem checked020 : adaptiveCoverCheck 6 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 6 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 6 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 6 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell023 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 6 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 6 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 6 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 6 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 6 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 6 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 6 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 6 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 6 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 6 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 6 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 6 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell233 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee9fa971b95 + +theorem e24KC2PhiBelowLeaf33023 : + adaptiveCoverCheck 9 (childHH phiBelowCell3302) = true := by + exact CoverCertificatee9fa971b95.checkedRoot +namespace CoverCertificated4cb65cefa + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated4cb65cefa + +theorem e24KC2PhiBelowLeaf33030 : + adaptiveCoverCheck 9 (childLL phiBelowCell3303) = true := by + exact CoverCertificated4cb65cefa.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells32f77991dd + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells32f77991dd + +open CertificateCells32f77991dd +namespace CoverCertificate75e4a1640f + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate75e4a1640f + +theorem e24KC2PhiBelowLeaf33031 : + adaptiveCoverCheck 9 (childLH phiBelowCell3303) = true := by + exact CoverCertificate75e4a1640f.checkedRoot +namespace CoverCertificateb422ba7d7a + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateb422ba7d7a + +theorem e24KC2PhiBelowLeaf33032 : + adaptiveCoverCheck 9 (childHL phiBelowCell3303) = true := by + exact CoverCertificateb422ba7d7a.checkedRoot +namespace CoverCertificate348be683b7 + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate348be683b7 + +theorem e24KC2PhiBelowLeaf33033 : + adaptiveCoverCheck 9 (childHH phiBelowCell3303) = true := by + exact CoverCertificate348be683b7.checkedRoot +namespace CoverCertificatee69a3e135e + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee69a3e135e + +theorem e24KC2PhiBelowLeaf33102 : + adaptiveCoverCheck 9 (childHL phiBelowCell3310) = true := by + exact CoverCertificatee69a3e135e.checkedRoot +namespace CoverCertificate7cfce934a3 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate7cfce934a3 + +theorem e24KC2PhiBelowLeaf33120 : + adaptiveCoverCheck 9 (childLL phiBelowCell3312) = true := by + exact CoverCertificate7cfce934a3.checkedRoot +namespace CoverCertificatee6e5d7b950 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee6e5d7b950 + +theorem e24KC2PhiBelowLeaf33121 : + adaptiveCoverCheck 9 (childLH phiBelowCell3312) = true := by + exact CoverCertificatee6e5d7b950.checkedRoot +namespace CoverCertificatedbde18308c + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatedbde18308c + +theorem e24KC2PhiBelowLeaf33122 : + adaptiveCoverCheck 9 (childHL phiBelowCell3312) = true := by + exact CoverCertificatedbde18308c.checkedRoot +namespace CoverCertificate78624e9f2e + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate78624e9f2e + +theorem e24KC2PhiBelowLeaf33123 : + adaptiveCoverCheck 9 (childHH phiBelowCell3312) = true := by + exact CoverCertificate78624e9f2e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6c9e156424 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6c9e156424 + +open CertificateCells6c9e156424 +namespace CoverCertificate86b7e57f5c + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate86b7e57f5c + +theorem e24KC2PhiBelowLeaf33132 : + adaptiveCoverCheck 9 (childHL phiBelowCell3313) = true := by + exact CoverCertificate86b7e57f5c.checkedRoot +namespace CoverCertificate81d94c7da5 + +private theorem checked100 : adaptiveCoverCheck 6 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 6 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 6 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 6 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 6 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 6 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 6 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 6 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 6 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 6 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 6 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 6 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 6 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 6 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 6 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 6 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell133 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 6 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 6 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 6 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 6 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 6 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 6 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 6 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 6 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate81d94c7da5 + +theorem e24KC2PhiBelowLeaf33200 : + adaptiveCoverCheck 9 (childLL phiBelowCell3320) = true := by + exact CoverCertificate81d94c7da5.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells613b88d08f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells613b88d08f + +open CertificateCells613b88d08f +namespace CoverCertificatecaeab30c1b + +private theorem checked000 : adaptiveCoverCheck 6 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 6 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 6 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 6 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 6 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 6 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 6 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 6 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 6 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 6 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 6 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 6 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 6 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 6 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 6 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 6 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 6 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 6 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 6 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 6 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell103 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 6 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 6 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 6 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 6 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 6 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 6 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 6 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 6 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 6 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 6 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 6 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 6 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 6 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 6 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 6 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 6 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 6 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 6 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 6 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 6 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 6 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 6 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 6 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 6 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 6 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 6 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 6 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 6 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatecaeab30c1b + +theorem e24KC2PhiBelowLeaf33201 : + adaptiveCoverCheck 9 (childLH phiBelowCell3320) = true := by + exact CoverCertificatecaeab30c1b.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells14a7ef0a1a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells14a7ef0a1a + +open CertificateCells14a7ef0a1a +namespace CoverCertificatecee0fdb8c5 + +private theorem checked030 : adaptiveCoverCheck 6 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 6 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 6 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 6 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 6 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 6 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 6 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 6 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 6 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 6 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 6 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 6 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 6 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 6 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 6 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 6 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 6 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 6 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 6 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 6 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell133 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 6 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 6 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 6 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 6 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell213 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 6 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 6 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 6 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 6 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 6 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 6 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 6 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 6 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 6 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 6 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 6 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 6 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatecee0fdb8c5 + +theorem e24KC2PhiBelowLeaf33202 : + adaptiveCoverCheck 9 (childHL phiBelowCell3320) = true := by + exact CoverCertificatecee0fdb8c5.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells756d9e6827 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells756d9e6827 + +open CertificateCells756d9e6827 +namespace CoverCertificate92301c5291 + +private theorem checked200 : adaptiveCoverCheck 6 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 6 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 6 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 6 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell203 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 6 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 6 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 6 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 6 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell233 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate92301c5291 + +theorem e24KC2PhiBelowLeaf33210 : + adaptiveCoverCheck 9 (childLL phiBelowCell3321) = true := by + exact CoverCertificate92301c5291.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9052ca8de4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9052ca8de4 + +open CertificateCells9052ca8de4 +namespace CoverCertificate16ba550865 + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate16ba550865 + +theorem e24KC2PhiBelowLeaf33211 : + adaptiveCoverCheck 9 (childLH phiBelowCell3321) = true := by + exact CoverCertificate16ba550865.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8466e30288 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8466e30288 + +open CertificateCells8466e30288 +namespace CoverCertificatebb39ac0110 + +private theorem checked2020 : adaptiveCoverCheck 5 cell2020 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2020 (by decide +kernel) + +private theorem checked2021 : adaptiveCoverCheck 5 cell2021 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2021 (by decide +kernel) + +private theorem checked2022 : adaptiveCoverCheck 5 cell2022 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2022 (by decide +kernel) + +private theorem checked2023 : adaptiveCoverCheck 5 cell2023 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2023 (by decide +kernel) + +private theorem checked2200 : adaptiveCoverCheck 5 cell2200 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2200 (by decide +kernel) + +private theorem checked2201 : adaptiveCoverCheck 5 cell2201 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2201 (by decide +kernel) + +private theorem checked2202 : adaptiveCoverCheck 5 cell2202 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2202 (by decide +kernel) + +private theorem checked2203 : adaptiveCoverCheck 5 cell2203 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2203 (by decide +kernel) + +private theorem checked2210 : adaptiveCoverCheck 5 cell2210 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2210 (by decide +kernel) + +private theorem checked2211 : adaptiveCoverCheck 5 cell2211 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2211 (by decide +kernel) + +private theorem checked2212 : adaptiveCoverCheck 5 cell2212 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2212 (by decide +kernel) + +private theorem checked2213 : adaptiveCoverCheck 5 cell2213 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2213 (by decide +kernel) + +private theorem checked2220 : adaptiveCoverCheck 5 cell2220 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2220 (by decide +kernel) + +private theorem checked2221 : adaptiveCoverCheck 5 cell2221 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2221 (by decide +kernel) + +private theorem checked2222 : adaptiveCoverCheck 5 cell2222 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2222 (by decide +kernel) + +private theorem checked2223 : adaptiveCoverCheck 5 cell2223 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2223 (by decide +kernel) + +private theorem checked2230 : adaptiveCoverCheck 5 cell2230 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2230 (by decide +kernel) + +private theorem checked2231 : adaptiveCoverCheck 5 cell2231 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2231 (by decide +kernel) + +private theorem checked2232 : adaptiveCoverCheck 5 cell2232 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2232 (by decide +kernel) + +private theorem checked2233 : adaptiveCoverCheck 5 cell2233 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2233 (by decide +kernel) + +private theorem checked2320 : adaptiveCoverCheck 5 cell2320 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2320 (by decide +kernel) + +private theorem checked2321 : adaptiveCoverCheck 5 cell2321 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2321 (by decide +kernel) + +private theorem checked2322 : adaptiveCoverCheck 5 cell2322 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2322 (by decide +kernel) + +private theorem checked2323 : adaptiveCoverCheck 5 cell2323 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2323 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 6 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 6 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 6 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 6 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 6 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 6 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 6 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 6 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 6 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 6 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 6 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 6 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 6 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 6 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 6 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 6 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 6 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 6 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 6 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 6 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell123 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 6 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 6 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 6 cell202 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell202 + checked2020 checked2021 checked2022 checked2023 + +private theorem checked203 : adaptiveCoverCheck 6 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 6 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 6 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 6 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 6 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell220 + checked2200 checked2201 checked2202 checked2203 + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell221 + checked2210 checked2211 checked2212 checked2213 + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell222 + checked2220 checked2221 checked2222 checked2223 + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell223 + checked2230 checked2231 checked2232 checked2233 + +private theorem checked230 : adaptiveCoverCheck 6 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 6 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 6 cell232 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell232 + checked2320 checked2321 checked2322 checked2323 + +private theorem checked233 : adaptiveCoverCheck 6 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 6 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 6 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 6 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 6 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 6 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 6 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 6 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 6 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatebb39ac0110 + +theorem e24KC2PhiBelowLeaf33212 : + adaptiveCoverCheck 9 (childHL phiBelowCell3321) = true := by + exact CoverCertificatebb39ac0110.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells960370a0be + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells960370a0be + +open CertificateCells960370a0be +namespace CoverCertificatef2ad9b0e27 + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell223 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef2ad9b0e27 + +theorem e24KC2PhiBelowLeaf33213 : + adaptiveCoverCheck 9 (childHH phiBelowCell3321) = true := by + exact CoverCertificatef2ad9b0e27.checkedRoot +namespace CoverCertificate73093b0a81 + +private theorem checked010 : adaptiveCoverCheck 6 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 6 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 6 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 6 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell013 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 6 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 6 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 6 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 6 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 6 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 6 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 6 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 6 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 6 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 6 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 6 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 6 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 6 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 6 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 6 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 6 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 6 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 6 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 6 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 6 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell133 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 6 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 6 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 6 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 6 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 6 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 6 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 6 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 6 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 6 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 6 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 6 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 6 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate73093b0a81 + +theorem e24KC2PhiBelowLeaf33220 : + adaptiveCoverCheck 9 (childLL phiBelowCell3322) = true := by + exact CoverCertificate73093b0a81.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd434aeb685 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd434aeb685 + +open CertificateCellsd434aeb685 +namespace CoverCertificate74c1ca1637 + +private theorem checked110 : adaptiveCoverCheck 6 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 6 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 6 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 6 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell113 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 6 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 6 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 6 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 6 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell133 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate74c1ca1637 + +theorem e24KC2PhiBelowLeaf33222 : + adaptiveCoverCheck 9 (childHL phiBelowCell3322) = true := by + exact CoverCertificate74c1ca1637.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells720ec0d149 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells720ec0d149 + +open CertificateCells720ec0d149 +namespace CoverCertificateec9c3e1faf + +private theorem checked2200 : adaptiveCoverCheck 5 cell2200 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2200 (by decide +kernel) + +private theorem checked2201 : adaptiveCoverCheck 5 cell2201 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2201 (by decide +kernel) + +private theorem checked2202 : adaptiveCoverCheck 5 cell2202 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2202 (by decide +kernel) + +private theorem checked2203 : adaptiveCoverCheck 5 cell2203 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2203 (by decide +kernel) + +private theorem checked2220 : adaptiveCoverCheck 5 cell2220 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2220 (by decide +kernel) + +private theorem checked2221 : adaptiveCoverCheck 5 cell2221 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2221 (by decide +kernel) + +private theorem checked2222 : adaptiveCoverCheck 5 cell2222 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2222 (by decide +kernel) + +private theorem checked2223 : adaptiveCoverCheck 5 cell2223 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2223 (by decide +kernel) + +private theorem checked2230 : adaptiveCoverCheck 5 cell2230 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2230 (by decide +kernel) + +private theorem checked2231 : adaptiveCoverCheck 5 cell2231 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2231 (by decide +kernel) + +private theorem checked2232 : adaptiveCoverCheck 5 cell2232 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2232 (by decide +kernel) + +private theorem checked2233 : adaptiveCoverCheck 5 cell2233 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2233 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 6 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 6 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 6 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 6 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 6 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 6 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 6 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 6 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 6 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 6 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 6 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 6 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 6 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 6 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 6 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 6 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 6 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 6 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 6 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 6 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell123 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 6 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 6 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 6 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 6 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 6 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 6 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 6 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 6 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 6 cell220 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell220 + checked2200 checked2201 checked2202 checked2203 + +private theorem checked221 : adaptiveCoverCheck 6 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 6 cell222 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell222 + checked2220 checked2221 checked2222 checked2223 + +private theorem checked223 : adaptiveCoverCheck 6 cell223 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell223 + checked2230 checked2231 checked2232 checked2233 + +private theorem checked230 : adaptiveCoverCheck 6 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 6 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 6 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 6 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 6 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 6 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 6 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 6 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 6 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 6 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 6 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 6 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 6 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 6 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 6 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 6 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 6 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 6 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 6 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 6 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateec9c3e1faf + +theorem e24KC2PhiBelowLeaf33231 : + adaptiveCoverCheck 9 (childLH phiBelowCell3323) = true := by + exact CoverCertificateec9c3e1faf.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9005545168 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9005545168 + +open CertificateCells9005545168 +namespace CoverCertificate144616495b + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate144616495b + +theorem e24KC2PhiAboveLeaf1110002 : + adaptiveCoverCheck 9 (childHL (childLL (childLL phiAboveCell1110))) = true := by + exact CoverCertificate144616495b.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse586487728 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse586487728 + +open CertificateCellse586487728 +namespace CoverCertificatef96351225f + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef96351225f + +theorem e24KC2PhiAboveLeaf1110003 : + adaptiveCoverCheck 9 (childHH (childLL (childLL phiAboveCell1110))) = true := by + exact CoverCertificatef96351225f.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsce87a9d03d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsce87a9d03d + +open CertificateCellsce87a9d03d +namespace CoverCertificateed7fe84102 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateed7fe84102 + +theorem e24KC2PhiAboveLeaf1110012 : + adaptiveCoverCheck 9 (childHL (childLH (childLL phiAboveCell1110))) = true := by + exact CoverCertificateed7fe84102.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsce3c5151af + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsce3c5151af + +open CertificateCellsce3c5151af +namespace CoverCertificateb1ce232ebf + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateb1ce232ebf + +theorem e24KC2PhiAboveLeaf1110013 : + adaptiveCoverCheck 9 (childHH (childLH (childLL phiAboveCell1110))) = true := by + exact CoverCertificateb1ce232ebf.checkedRoot +namespace CoverCertificate3e6f5d1050 + +private theorem checked000 : adaptiveCoverCheck 6 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 6 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 6 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 6 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 6 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 6 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 6 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 6 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 6 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 6 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 6 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 6 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 6 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 6 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 6 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 6 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 6 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 6 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 6 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 6 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 6 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 6 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 6 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 6 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 6 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 6 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 6 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 6 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 6 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 6 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 6 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 6 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 6 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 6 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 6 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 6 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 6 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 6 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 6 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 6 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 6 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 6 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 6 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 6 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 6 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 6 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 6 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 6 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell313 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 7 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 7 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 7 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 7 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 7 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 7 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 7 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 7 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 7 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 7 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 7 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 7 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 7 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 7 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 7 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 7 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 7 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3e6f5d1050 + +theorem e24KC2PhiAboveLeaf1110100 : + adaptiveCoverCheck 9 (childLL (childLL (childLH phiAboveCell1110))) = true := by + exact CoverCertificate3e6f5d1050.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells7c64a780f8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells7c64a780f8 + +open CertificateCells7c64a780f8 +namespace CoverCertificate3c635b07e8 + +private theorem checked0 : adaptiveCoverCheck 8 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 8 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 8 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 8 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 8 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 9 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 8 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3c635b07e8 + +theorem e24KC2PhiBelowLeaf33300 : + adaptiveCoverCheck 9 (childLL phiBelowCell3330) = true := by + exact CoverCertificate3c635b07e8.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC5TerminalBatchT512000013`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells168aeb56e4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells168aeb56e4 + +open CertificateCells168aeb56e4 +theorem e24KC2ThetaAboveLeaf101033002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103300) = true := by + have h : ((childHL thetaAboveCell10103300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103300) h +theorem e24KC2ThetaAboveLeaf101033003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103300) = true := by + have h : ((childHH thetaAboveCell10103300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103300) h +theorem e24KC2ThetaAboveLeaf101033010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103301) = true := by + have h : ((childLL thetaAboveCell10103301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103301) h +theorem e24KC2ThetaAboveLeaf101033011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103301) = true := by + have h : ((childLH thetaAboveCell10103301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103301) h +theorem e24KC2ThetaAboveLeaf101033012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103301) = true := by + have h : ((childHL thetaAboveCell10103301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103301) h +theorem e24KC2ThetaAboveLeaf101033013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103301) = true := by + have h : ((childHH thetaAboveCell10103301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103301) h +theorem e24KC2ThetaAboveLeaf1010330200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10103302)) = true := by + have h : ((childLL (childLL thetaAboveCell10103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10103302)) h +theorem e24KC2ThetaAboveLeaf1010330201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10103302)) = true := by + have h : ((childLH (childLL thetaAboveCell10103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10103302)) h +theorem e24KC2ThetaAboveLeaf1010330202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10103302)) = true := by + have h : ((childHL (childLL thetaAboveCell10103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10103302)) h +theorem e24KC2ThetaAboveLeaf1010330203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10103302)) = true := by + have h : ((childHH (childLL thetaAboveCell10103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10103302)) h +theorem e24KC2ThetaAboveLeaf101033021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103302) = true := by + have h : ((childLH thetaAboveCell10103302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103302) h +theorem e24KC2ThetaAboveLeaf101033022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103302) = true := by + have h : ((childHL thetaAboveCell10103302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103302) h +theorem e24KC2ThetaAboveLeaf101033023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103302) = true := by + have h : ((childHH thetaAboveCell10103302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103302) h +theorem e24KC2ThetaAboveLeaf101033030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103303) = true := by + have h : ((childLL thetaAboveCell10103303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103303) h +theorem e24KC2ThetaAboveLeaf101033031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103303) = true := by + have h : ((childLH thetaAboveCell10103303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103303) h +theorem e24KC2ThetaAboveLeaf101033032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103303) = true := by + have h : ((childHL thetaAboveCell10103303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103303) h +theorem e24KC2ThetaAboveLeaf101033033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103303) = true := by + have h : ((childHH thetaAboveCell10103303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103303) h +theorem e24KC2ThetaAboveLeaf101033100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103310) = true := by + have h : ((childLL thetaAboveCell10103310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103310) h +theorem e24KC2ThetaAboveLeaf101033101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103310) = true := by + have h : ((childLH thetaAboveCell10103310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103310) h +theorem e24KC2ThetaAboveLeaf101033102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103310) = true := by + have h : ((childHL thetaAboveCell10103310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103310) h +theorem e24KC2ThetaAboveLeaf101033103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103310) = true := by + have h : ((childHH thetaAboveCell10103310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103310) h +theorem e24KC2ThetaAboveLeaf101033110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103311) = true := by + have h : ((childLL thetaAboveCell10103311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103311) h +theorem e24KC2ThetaAboveLeaf101033111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103311) = true := by + have h : ((childLH thetaAboveCell10103311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103311) h +theorem e24KC2ThetaAboveLeaf101033112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103311) = true := by + have h : ((childHL thetaAboveCell10103311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103311) h +theorem e24KC2ThetaAboveLeaf101033113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103311) = true := by + have h : ((childHH thetaAboveCell10103311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103311) h +theorem e24KC2ThetaAboveLeaf101033120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103312) = true := by + have h : ((childLL thetaAboveCell10103312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103312) h +theorem e24KC2ThetaAboveLeaf101033121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103312) = true := by + have h : ((childLH thetaAboveCell10103312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103312) h +theorem e24KC2ThetaAboveLeaf101033122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103312) = true := by + have h : ((childHL thetaAboveCell10103312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103312) h +theorem e24KC2ThetaAboveLeaf101033123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103312) = true := by + have h : ((childHH thetaAboveCell10103312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103312) h +theorem e24KC2ThetaAboveLeaf101033130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103313) = true := by + have h : ((childLL thetaAboveCell10103313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103313) h +theorem e24KC2ThetaAboveLeaf101033131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103313) = true := by + have h : ((childLH thetaAboveCell10103313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103313) h +theorem e24KC2ThetaAboveLeaf101033132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103313) = true := by + have h : ((childHL thetaAboveCell10103313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103313) h +theorem e24KC2ThetaAboveLeaf101033133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103313) = true := by + have h : ((childHH thetaAboveCell10103313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103313) h +theorem e24KC2ThetaAboveLeaf101033200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103320) = true := by + have h : ((childLL thetaAboveCell10103320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103320) h +theorem e24KC2ThetaAboveLeaf101033201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103320) = true := by + have h : ((childLH thetaAboveCell10103320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103320) h +theorem e24KC2ThetaAboveLeaf101033202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103320) = true := by + have h : ((childHL thetaAboveCell10103320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103320) h +theorem e24KC2ThetaAboveLeaf101033203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103320) = true := by + have h : ((childHH thetaAboveCell10103320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103320) h +theorem e24KC2ThetaAboveLeaf101033210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103321) = true := by + have h : ((childLL thetaAboveCell10103321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103321) h +theorem e24KC2ThetaAboveLeaf101033211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103321) = true := by + have h : ((childLH thetaAboveCell10103321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103321) h +theorem e24KC2ThetaAboveLeaf101033212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103321) = true := by + have h : ((childHL thetaAboveCell10103321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103321) h +theorem e24KC2ThetaAboveLeaf101033213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103321) = true := by + have h : ((childHH thetaAboveCell10103321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103321) h +theorem e24KC2ThetaAboveLeaf10103322 : + adaptiveCoverCheck 11 thetaAboveCell10103322 = true := by + have h : (thetaAboveCell10103322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10103322 h +theorem e24KC2ThetaAboveLeaf10103323 : + adaptiveCoverCheck 11 thetaAboveCell10103323 = true := by + have h : (thetaAboveCell10103323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10103323 h +theorem e24KC2ThetaAboveLeaf101033300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103330) = true := by + have h : ((childLL thetaAboveCell10103330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103330) h +theorem e24KC2ThetaAboveLeaf101033301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103330) = true := by + have h : ((childLH thetaAboveCell10103330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103330) h +theorem e24KC2ThetaAboveLeaf101033302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103330) = true := by + have h : ((childHL thetaAboveCell10103330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103330) h +theorem e24KC2ThetaAboveLeaf101033303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103330) = true := by + have h : ((childHH thetaAboveCell10103330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103330) h +theorem e24KC2ThetaAboveLeaf101033310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103331) = true := by + have h : ((childLL thetaAboveCell10103331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103331) h +theorem e24KC2ThetaAboveLeaf101033311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103331) = true := by + have h : ((childLH thetaAboveCell10103331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103331) h +theorem e24KC2ThetaAboveLeaf101033312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103331) = true := by + have h : ((childHL thetaAboveCell10103331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103331) h +theorem e24KC2ThetaAboveLeaf101033313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103331) = true := by + have h : ((childHH thetaAboveCell10103331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103331) h +theorem e24KC2ThetaAboveLeaf10103332 : + adaptiveCoverCheck 11 thetaAboveCell10103332 = true := by + have h : (thetaAboveCell10103332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10103332 h +theorem e24KC2ThetaAboveLeaf10103333 : + adaptiveCoverCheck 11 thetaAboveCell10103333 = true := by + have h : (thetaAboveCell10103333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10103333 h +theorem e24KC2ThetaAboveLeaf101100 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell1011)) = true := by + have h : ((childLL (childLL thetaAboveCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLL thetaAboveCell1011)) h +theorem e24KC2ThetaAboveLeaf101101 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell1011)) = true := by + have h : ((childLH (childLL thetaAboveCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLL thetaAboveCell1011)) h +theorem e24KC2ThetaAboveLeaf101102 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell1011)) = true := by + have h : ((childHL (childLL thetaAboveCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell1011)) h +theorem e24KC2ThetaAboveLeaf101103 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell1011)) = true := by + have h : ((childHH (childLL thetaAboveCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell1011)) h +theorem e24KC2ThetaAboveLeaf101110 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell1011)) = true := by + have h : ((childLL (childLH thetaAboveCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLH thetaAboveCell1011)) h +theorem e24KC2ThetaAboveLeaf101111 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell1011)) = true := by + have h : ((childLH (childLH thetaAboveCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLH thetaAboveCell1011)) h +theorem e24KC2ThetaAboveLeaf101112 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell1011)) = true := by + have h : ((childHL (childLH thetaAboveCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell1011)) h +theorem e24KC2ThetaAboveLeaf101113 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell1011)) = true := by + have h : ((childHH (childLH thetaAboveCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell1011)) h +theorem e24KC2ThetaAboveLeaf1011200 : + adaptiveCoverCheck 12 (childLL (childLL (childHL thetaAboveCell1011))) = true := by + have h : ((childLL (childLL (childHL thetaAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHL thetaAboveCell1011))) h +theorem e24KC2ThetaAboveLeaf1011201 : + adaptiveCoverCheck 12 (childLH (childLL (childHL thetaAboveCell1011))) = true := by + have h : ((childLH (childLL (childHL thetaAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHL thetaAboveCell1011))) h +theorem e24KC2ThetaAboveLeaf1011202 : + adaptiveCoverCheck 12 (childHL (childLL (childHL thetaAboveCell1011))) = true := by + have h : ((childHL (childLL (childHL thetaAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childHL thetaAboveCell1011))) h +theorem e24KC2ThetaAboveLeaf1011203 : + adaptiveCoverCheck 12 (childHH (childLL (childHL thetaAboveCell1011))) = true := by + have h : ((childHH (childLL (childHL thetaAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childHL thetaAboveCell1011))) h +theorem e24KC2ThetaAboveLeaf1011210 : + adaptiveCoverCheck 12 (childLL (childLH (childHL thetaAboveCell1011))) = true := by + have h : ((childLL (childLH (childHL thetaAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHL thetaAboveCell1011))) h +theorem e24KC2ThetaAboveLeaf1011211 : + adaptiveCoverCheck 12 (childLH (childLH (childHL thetaAboveCell1011))) = true := by + have h : ((childLH (childLH (childHL thetaAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHL thetaAboveCell1011))) h +theorem e24KC2ThetaAboveLeaf1011212 : + adaptiveCoverCheck 12 (childHL (childLH (childHL thetaAboveCell1011))) = true := by + have h : ((childHL (childLH (childHL thetaAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childHL thetaAboveCell1011))) h +theorem e24KC2ThetaAboveLeaf1011213 : + adaptiveCoverCheck 12 (childHH (childLH (childHL thetaAboveCell1011))) = true := by + have h : ((childHH (childLH (childHL thetaAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childHL thetaAboveCell1011))) h +theorem e24KC2ThetaAboveLeaf101122000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112200) = true := by + have h : ((childLL thetaAboveCell10112200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112200) h +theorem e24KC2ThetaAboveLeaf101122001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112200) = true := by + have h : ((childLH thetaAboveCell10112200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112200) h +theorem e24KC2ThetaAboveLeaf101122002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112200) = true := by + have h : ((childHL thetaAboveCell10112200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112200) h +theorem e24KC2ThetaAboveLeaf101122003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112200) = true := by + have h : ((childHH thetaAboveCell10112200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112200) h +theorem e24KC2ThetaAboveLeaf101122010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112201) = true := by + have h : ((childLL thetaAboveCell10112201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112201) h +theorem e24KC2ThetaAboveLeaf101122011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112201) = true := by + have h : ((childLH thetaAboveCell10112201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112201) h +theorem e24KC2ThetaAboveLeaf101122012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112201) = true := by + have h : ((childHL thetaAboveCell10112201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112201) h +theorem e24KC2ThetaAboveLeaf101122013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112201) = true := by + have h : ((childHH thetaAboveCell10112201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112201) h +theorem e24KC2ThetaAboveLeaf101122020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112202) = true := by + have h : ((childLL thetaAboveCell10112202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112202) h +theorem e24KC2ThetaAboveLeaf101122021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112202) = true := by + have h : ((childLH thetaAboveCell10112202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112202) h +theorem e24KC2ThetaAboveLeaf101122022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112202) = true := by + have h : ((childHL thetaAboveCell10112202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112202) h +theorem e24KC2ThetaAboveLeaf101122023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112202) = true := by + have h : ((childHH thetaAboveCell10112202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112202) h +theorem e24KC2ThetaAboveLeaf101122030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112203) = true := by + have h : ((childLL thetaAboveCell10112203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112203) h +theorem e24KC2ThetaAboveLeaf101122031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112203) = true := by + have h : ((childLH thetaAboveCell10112203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112203) h +theorem e24KC2ThetaAboveLeaf101122032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112203) = true := by + have h : ((childHL thetaAboveCell10112203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112203) h +theorem e24KC2ThetaAboveLeaf101122033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112203) = true := by + have h : ((childHH thetaAboveCell10112203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112203) h +theorem e24KC2ThetaAboveLeaf101122100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112210) = true := by + have h : ((childLL thetaAboveCell10112210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112210) h +theorem e24KC2ThetaAboveLeaf101122101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112210) = true := by + have h : ((childLH thetaAboveCell10112210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112210) h +theorem e24KC2ThetaAboveLeaf101122102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112210) = true := by + have h : ((childHL thetaAboveCell10112210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112210) h +theorem e24KC2ThetaAboveLeaf101122103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112210) = true := by + have h : ((childHH thetaAboveCell10112210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112210) h +theorem e24KC2ThetaAboveLeaf101122110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112211) = true := by + have h : ((childLL thetaAboveCell10112211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112211) h +theorem e24KC2ThetaAboveLeaf101122111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112211) = true := by + have h : ((childLH thetaAboveCell10112211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112211) h +theorem e24KC2ThetaAboveLeaf101122112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112211) = true := by + have h : ((childHL thetaAboveCell10112211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112211) h +theorem e24KC2ThetaAboveLeaf101122113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112211) = true := by + have h : ((childHH thetaAboveCell10112211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112211) h +theorem e24KC2ThetaAboveLeaf101122120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112212) = true := by + have h : ((childLL thetaAboveCell10112212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112212) h +theorem e24KC2ThetaAboveLeaf101122121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112212) = true := by + have h : ((childLH thetaAboveCell10112212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112212) h +theorem e24KC2ThetaAboveLeaf101122122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112212) = true := by + have h : ((childHL thetaAboveCell10112212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112212) h +theorem e24KC2ThetaAboveLeaf101122123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112212) = true := by + have h : ((childHH thetaAboveCell10112212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112212) h +theorem e24KC2ThetaAboveLeaf101122130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112213) = true := by + have h : ((childLL thetaAboveCell10112213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112213) h +theorem e24KC2ThetaAboveLeaf101122131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112213) = true := by + have h : ((childLH thetaAboveCell10112213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112213) h +theorem e24KC2ThetaAboveLeaf101122132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112213) = true := by + have h : ((childHL thetaAboveCell10112213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112213) h +theorem e24KC2ThetaAboveLeaf101122133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112213) = true := by + have h : ((childHH thetaAboveCell10112213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112213) h +theorem e24KC2ThetaAboveLeaf101122200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112220) = true := by + have h : ((childLL thetaAboveCell10112220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112220) h +theorem e24KC2ThetaAboveLeaf101122201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112220) = true := by + have h : ((childLH thetaAboveCell10112220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112220) h +theorem e24KC2ThetaAboveLeaf101122202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112220) = true := by + have h : ((childHL thetaAboveCell10112220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112220) h +theorem e24KC2ThetaAboveLeaf101122203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112220) = true := by + have h : ((childHH thetaAboveCell10112220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112220) h +theorem e24KC2ThetaAboveLeaf101122210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112221) = true := by + have h : ((childLL thetaAboveCell10112221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112221) h +theorem e24KC2ThetaAboveLeaf101122211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112221) = true := by + have h : ((childLH thetaAboveCell10112221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112221) h +theorem e24KC2ThetaAboveLeaf101122212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112221) = true := by + have h : ((childHL thetaAboveCell10112221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112221) h +theorem e24KC2ThetaAboveLeaf101122213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112221) = true := by + have h : ((childHH thetaAboveCell10112221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112221) h +theorem e24KC2ThetaAboveLeaf10112222 : + adaptiveCoverCheck 11 thetaAboveCell10112222 = true := by + have h : (thetaAboveCell10112222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10112222 h +theorem e24KC2ThetaAboveLeaf10112223 : + adaptiveCoverCheck 11 thetaAboveCell10112223 = true := by + have h : (thetaAboveCell10112223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10112223 h +theorem e24KC2ThetaAboveLeaf101122300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112230) = true := by + have h : ((childLL thetaAboveCell10112230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112230) h +theorem e24KC2ThetaAboveLeaf101122301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112230) = true := by + have h : ((childLH thetaAboveCell10112230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112230) h +theorem e24KC2ThetaAboveLeaf101122302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112230) = true := by + have h : ((childHL thetaAboveCell10112230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112230) h +theorem e24KC2ThetaAboveLeaf101122303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112230) = true := by + have h : ((childHH thetaAboveCell10112230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112230) h +theorem e24KC2ThetaAboveLeaf101122310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112231) = true := by + have h : ((childLL thetaAboveCell10112231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112231) h +theorem e24KC2ThetaAboveLeaf101122311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112231) = true := by + have h : ((childLH thetaAboveCell10112231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112231) h +theorem e24KC2ThetaAboveLeaf101122312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112231) = true := by + have h : ((childHL thetaAboveCell10112231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112231) h +theorem e24KC2ThetaAboveLeaf101122313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112231) = true := by + have h : ((childHH thetaAboveCell10112231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112231) h +theorem e24KC2ThetaAboveLeaf10112232 : + adaptiveCoverCheck 11 thetaAboveCell10112232 = true := by + have h : (thetaAboveCell10112232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10112232 h +theorem e24KC2ThetaAboveLeaf10112233 : + adaptiveCoverCheck 11 thetaAboveCell10112233 = true := by + have h : (thetaAboveCell10112233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10112233 h +theorem e24KC2ThetaAboveLeaf101123000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112300) = true := by + have h : ((childLL thetaAboveCell10112300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112300) h +theorem e24KC2ThetaAboveLeaf101123001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112300) = true := by + have h : ((childLH thetaAboveCell10112300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112300) h +theorem e24KC2ThetaAboveLeaf101123002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112300) = true := by + have h : ((childHL thetaAboveCell10112300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112300) h +theorem e24KC2ThetaAboveLeaf101123003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112300) = true := by + have h : ((childHH thetaAboveCell10112300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112300) h +theorem e24KC2ThetaAboveLeaf101123010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112301) = true := by + have h : ((childLL thetaAboveCell10112301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112301) h +theorem e24KC2ThetaAboveLeaf101123011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112301) = true := by + have h : ((childLH thetaAboveCell10112301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112301) h +theorem e24KC2ThetaAboveLeaf101123012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112301) = true := by + have h : ((childHL thetaAboveCell10112301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112301) h +theorem e24KC2ThetaAboveLeaf101123013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112301) = true := by + have h : ((childHH thetaAboveCell10112301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112301) h +theorem e24KC2ThetaAboveLeaf101123020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112302) = true := by + have h : ((childLL thetaAboveCell10112302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112302) h +theorem e24KC2ThetaAboveLeaf101123021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112302) = true := by + have h : ((childLH thetaAboveCell10112302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112302) h +theorem e24KC2ThetaAboveLeaf101123022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112302) = true := by + have h : ((childHL thetaAboveCell10112302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112302) h +theorem e24KC2ThetaAboveLeaf101123023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112302) = true := by + have h : ((childHH thetaAboveCell10112302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112302) h +theorem e24KC2ThetaAboveLeaf101123030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112303) = true := by + have h : ((childLL thetaAboveCell10112303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112303) h +theorem e24KC2ThetaAboveLeaf101123031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112303) = true := by + have h : ((childLH thetaAboveCell10112303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112303) h +theorem e24KC2ThetaAboveLeaf101123032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112303) = true := by + have h : ((childHL thetaAboveCell10112303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112303) h +theorem e24KC2ThetaAboveLeaf101123033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112303) = true := by + have h : ((childHH thetaAboveCell10112303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112303) h +theorem e24KC2ThetaAboveLeaf101123100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112310) = true := by + have h : ((childLL thetaAboveCell10112310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112310) h +theorem e24KC2ThetaAboveLeaf101123101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112310) = true := by + have h : ((childLH thetaAboveCell10112310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112310) h +theorem e24KC2ThetaAboveLeaf101123102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112310) = true := by + have h : ((childHL thetaAboveCell10112310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112310) h +theorem e24KC2ThetaAboveLeaf101123103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112310) = true := by + have h : ((childHH thetaAboveCell10112310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112310) h +theorem e24KC2ThetaAboveLeaf101123110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112311) = true := by + have h : ((childLL thetaAboveCell10112311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112311) h +theorem e24KC2ThetaAboveLeaf101123111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112311) = true := by + have h : ((childLH thetaAboveCell10112311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112311) h +theorem e24KC2ThetaAboveLeaf101123112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112311) = true := by + have h : ((childHL thetaAboveCell10112311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112311) h +theorem e24KC2ThetaAboveLeaf101123113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112311) = true := by + have h : ((childHH thetaAboveCell10112311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112311) h +theorem e24KC2ThetaAboveLeaf101123120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112312) = true := by + have h : ((childLL thetaAboveCell10112312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112312) h +theorem e24KC2ThetaAboveLeaf101123121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112312) = true := by + have h : ((childLH thetaAboveCell10112312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112312) h +theorem e24KC2ThetaAboveLeaf101123122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112312) = true := by + have h : ((childHL thetaAboveCell10112312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112312) h +theorem e24KC2ThetaAboveLeaf101123123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112312) = true := by + have h : ((childHH thetaAboveCell10112312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112312) h +theorem e24KC2ThetaAboveLeaf101123130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112313) = true := by + have h : ((childLL thetaAboveCell10112313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112313) h +theorem e24KC2ThetaAboveLeaf101123131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112313) = true := by + have h : ((childLH thetaAboveCell10112313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112313) h +theorem e24KC2ThetaAboveLeaf101123132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112313) = true := by + have h : ((childHL thetaAboveCell10112313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112313) h +theorem e24KC2ThetaAboveLeaf101123133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112313) = true := by + have h : ((childHH thetaAboveCell10112313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112313) h +theorem e24KC2ThetaAboveLeaf101123200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112320) = true := by + have h : ((childLL thetaAboveCell10112320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112320) h +theorem e24KC2ThetaAboveLeaf101123201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112320) = true := by + have h : ((childLH thetaAboveCell10112320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112320) h +theorem e24KC2ThetaAboveLeaf101123202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112320) = true := by + have h : ((childHL thetaAboveCell10112320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112320) h +theorem e24KC2ThetaAboveLeaf101123203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112320) = true := by + have h : ((childHH thetaAboveCell10112320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112320) h +theorem e24KC2ThetaAboveLeaf101123210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112321) = true := by + have h : ((childLL thetaAboveCell10112321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112321) h +theorem e24KC2ThetaAboveLeaf101123211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112321) = true := by + have h : ((childLH thetaAboveCell10112321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112321) h +theorem e24KC2ThetaAboveLeaf101123212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112321) = true := by + have h : ((childHL thetaAboveCell10112321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112321) h +theorem e24KC2ThetaAboveLeaf101123213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112321) = true := by + have h : ((childHH thetaAboveCell10112321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112321) h +theorem e24KC2ThetaAboveLeaf10112322 : + adaptiveCoverCheck 11 thetaAboveCell10112322 = true := by + have h : (thetaAboveCell10112322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10112322 h +theorem e24KC2ThetaAboveLeaf10112323 : + adaptiveCoverCheck 11 thetaAboveCell10112323 = true := by + have h : (thetaAboveCell10112323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10112323 h +theorem e24KC2ThetaAboveLeaf101123300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112330) = true := by + have h : ((childLL thetaAboveCell10112330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112330) h +theorem e24KC2ThetaAboveLeaf101123301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112330) = true := by + have h : ((childLH thetaAboveCell10112330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112330) h +theorem e24KC2ThetaAboveLeaf101123302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112330) = true := by + have h : ((childHL thetaAboveCell10112330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112330) h +theorem e24KC2ThetaAboveLeaf101123303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112330) = true := by + have h : ((childHH thetaAboveCell10112330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112330) h +theorem e24KC2ThetaAboveLeaf101123310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10112331) = true := by + have h : ((childLL thetaAboveCell10112331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10112331) h +theorem e24KC2ThetaAboveLeaf101123311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10112331) = true := by + have h : ((childLH thetaAboveCell10112331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10112331) h +theorem e24KC2ThetaAboveLeaf101123312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10112331) = true := by + have h : ((childHL thetaAboveCell10112331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10112331) h +theorem e24KC2ThetaAboveLeaf101123313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10112331) = true := by + have h : ((childHH thetaAboveCell10112331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10112331) h +theorem e24KC2ThetaAboveLeaf10112332 : + adaptiveCoverCheck 11 thetaAboveCell10112332 = true := by + have h : (thetaAboveCell10112332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10112332 h +theorem e24KC2ThetaAboveLeaf10112333 : + adaptiveCoverCheck 11 thetaAboveCell10112333 = true := by + have h : (thetaAboveCell10112333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10112333 h +theorem e24KC2ThetaAboveLeaf1011300 : + adaptiveCoverCheck 12 (childLL (childLL (childHH thetaAboveCell1011))) = true := by + have h : ((childLL (childLL (childHH thetaAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHH thetaAboveCell1011))) h +theorem e24KC2ThetaAboveLeaf1011301 : + adaptiveCoverCheck 12 (childLH (childLL (childHH thetaAboveCell1011))) = true := by + have h : ((childLH (childLL (childHH thetaAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHH thetaAboveCell1011))) h +theorem e24KC2ThetaAboveLeaf1011302 : + adaptiveCoverCheck 12 (childHL (childLL (childHH thetaAboveCell1011))) = true := by + have h : ((childHL (childLL (childHH thetaAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childHH thetaAboveCell1011))) h +theorem e24KC2ThetaAboveLeaf1011303 : + adaptiveCoverCheck 12 (childHH (childLL (childHH thetaAboveCell1011))) = true := by + have h : ((childHH (childLL (childHH thetaAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childHH thetaAboveCell1011))) h +theorem e24KC2ThetaAboveLeaf1011310 : + adaptiveCoverCheck 12 (childLL (childLH (childHH thetaAboveCell1011))) = true := by + have h : ((childLL (childLH (childHH thetaAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHH thetaAboveCell1011))) h +theorem e24KC2ThetaAboveLeaf1011311 : + adaptiveCoverCheck 12 (childLH (childLH (childHH thetaAboveCell1011))) = true := by + have h : ((childLH (childLH (childHH thetaAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHH thetaAboveCell1011))) h +theorem e24KC2ThetaAboveLeaf1011312 : + adaptiveCoverCheck 12 (childHL (childLH (childHH thetaAboveCell1011))) = true := by + have h : ((childHL (childLH (childHH thetaAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childHH thetaAboveCell1011))) h +theorem e24KC2ThetaAboveLeaf1011313 : + adaptiveCoverCheck 12 (childHH (childLH (childHH thetaAboveCell1011))) = true := by + have h : ((childHH (childLH (childHH thetaAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childHH thetaAboveCell1011))) h +theorem e24KC2ThetaAboveLeaf101132000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113200) = true := by + have h : ((childLL thetaAboveCell10113200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113200) h +theorem e24KC2ThetaAboveLeaf101132001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113200) = true := by + have h : ((childLH thetaAboveCell10113200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113200) h +theorem e24KC2ThetaAboveLeaf101132002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113200) = true := by + have h : ((childHL thetaAboveCell10113200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113200) h +theorem e24KC2ThetaAboveLeaf101132003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113200) = true := by + have h : ((childHH thetaAboveCell10113200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113200) h +theorem e24KC2ThetaAboveLeaf101132010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113201) = true := by + have h : ((childLL thetaAboveCell10113201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113201) h +theorem e24KC2ThetaAboveLeaf101132011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113201) = true := by + have h : ((childLH thetaAboveCell10113201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113201) h +theorem e24KC2ThetaAboveLeaf101132012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113201) = true := by + have h : ((childHL thetaAboveCell10113201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113201) h +theorem e24KC2ThetaAboveLeaf101132013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113201) = true := by + have h : ((childHH thetaAboveCell10113201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113201) h +theorem e24KC2ThetaAboveLeaf101132020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113202) = true := by + have h : ((childLL thetaAboveCell10113202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113202) h +theorem e24KC2ThetaAboveLeaf101132021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113202) = true := by + have h : ((childLH thetaAboveCell10113202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113202) h +theorem e24KC2ThetaAboveLeaf101132022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113202) = true := by + have h : ((childHL thetaAboveCell10113202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113202) h +theorem e24KC2ThetaAboveLeaf101132023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113202) = true := by + have h : ((childHH thetaAboveCell10113202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113202) h +theorem e24KC2ThetaAboveLeaf101132030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113203) = true := by + have h : ((childLL thetaAboveCell10113203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113203) h +theorem e24KC2ThetaAboveLeaf101132031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113203) = true := by + have h : ((childLH thetaAboveCell10113203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113203) h +theorem e24KC2ThetaAboveLeaf101132032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113203) = true := by + have h : ((childHL thetaAboveCell10113203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113203) h +theorem e24KC2ThetaAboveLeaf101132033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113203) = true := by + have h : ((childHH thetaAboveCell10113203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113203) h +theorem e24KC2ThetaAboveLeaf101132100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113210) = true := by + have h : ((childLL thetaAboveCell10113210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113210) h +theorem e24KC2ThetaAboveLeaf101132101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113210) = true := by + have h : ((childLH thetaAboveCell10113210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113210) h +theorem e24KC2ThetaAboveLeaf101132102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113210) = true := by + have h : ((childHL thetaAboveCell10113210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113210) h +theorem e24KC2ThetaAboveLeaf101132103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113210) = true := by + have h : ((childHH thetaAboveCell10113210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113210) h +theorem e24KC2ThetaAboveLeaf101132110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113211) = true := by + have h : ((childLL thetaAboveCell10113211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113211) h +theorem e24KC2ThetaAboveLeaf101132111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113211) = true := by + have h : ((childLH thetaAboveCell10113211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113211) h +theorem e24KC2ThetaAboveLeaf101132112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113211) = true := by + have h : ((childHL thetaAboveCell10113211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113211) h +theorem e24KC2ThetaAboveLeaf101132113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113211) = true := by + have h : ((childHH thetaAboveCell10113211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113211) h +theorem e24KC2ThetaAboveLeaf101132120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113212) = true := by + have h : ((childLL thetaAboveCell10113212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113212) h +theorem e24KC2ThetaAboveLeaf101132121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113212) = true := by + have h : ((childLH thetaAboveCell10113212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113212) h +theorem e24KC2ThetaAboveLeaf101132122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113212) = true := by + have h : ((childHL thetaAboveCell10113212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113212) h +theorem e24KC2ThetaAboveLeaf101132123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113212) = true := by + have h : ((childHH thetaAboveCell10113212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113212) h +theorem e24KC2ThetaAboveLeaf101132130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113213) = true := by + have h : ((childLL thetaAboveCell10113213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113213) h +theorem e24KC2ThetaAboveLeaf101132131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113213) = true := by + have h : ((childLH thetaAboveCell10113213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113213) h +theorem e24KC2ThetaAboveLeaf101132132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113213) = true := by + have h : ((childHL thetaAboveCell10113213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113213) h +theorem e24KC2ThetaAboveLeaf101132133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113213) = true := by + have h : ((childHH thetaAboveCell10113213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113213) h +theorem e24KC2ThetaAboveLeaf101132200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113220) = true := by + have h : ((childLL thetaAboveCell10113220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113220) h +theorem e24KC2ThetaAboveLeaf101132201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113220) = true := by + have h : ((childLH thetaAboveCell10113220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113220) h +theorem e24KC2ThetaAboveLeaf101132202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113220) = true := by + have h : ((childHL thetaAboveCell10113220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113220) h +theorem e24KC2ThetaAboveLeaf101132203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113220) = true := by + have h : ((childHH thetaAboveCell10113220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113220) h +theorem e24KC2ThetaAboveLeaf101132210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113221) = true := by + have h : ((childLL thetaAboveCell10113221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113221) h +theorem e24KC2ThetaAboveLeaf101132211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113221) = true := by + have h : ((childLH thetaAboveCell10113221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113221) h +theorem e24KC2ThetaAboveLeaf101132212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113221) = true := by + have h : ((childHL thetaAboveCell10113221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113221) h +theorem e24KC2ThetaAboveLeaf101132213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113221) = true := by + have h : ((childHH thetaAboveCell10113221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113221) h +theorem e24KC2ThetaAboveLeaf10113222 : + adaptiveCoverCheck 11 thetaAboveCell10113222 = true := by + have h : (thetaAboveCell10113222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10113222 h +theorem e24KC2ThetaAboveLeaf10113223 : + adaptiveCoverCheck 11 thetaAboveCell10113223 = true := by + have h : (thetaAboveCell10113223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10113223 h +theorem e24KC2ThetaAboveLeaf101132300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113230) = true := by + have h : ((childLL thetaAboveCell10113230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113230) h +theorem e24KC2ThetaAboveLeaf101132301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113230) = true := by + have h : ((childLH thetaAboveCell10113230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113230) h +theorem e24KC2ThetaAboveLeaf101132302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113230) = true := by + have h : ((childHL thetaAboveCell10113230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113230) h +theorem e24KC2ThetaAboveLeaf101132303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113230) = true := by + have h : ((childHH thetaAboveCell10113230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113230) h +theorem e24KC2ThetaAboveLeaf101132310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113231) = true := by + have h : ((childLL thetaAboveCell10113231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113231) h +theorem e24KC2ThetaAboveLeaf101132311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113231) = true := by + have h : ((childLH thetaAboveCell10113231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113231) h +theorem e24KC2ThetaAboveLeaf101132312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113231) = true := by + have h : ((childHL thetaAboveCell10113231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113231) h +theorem e24KC2ThetaAboveLeaf101132313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113231) = true := by + have h : ((childHH thetaAboveCell10113231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113231) h +theorem e24KC2ThetaAboveLeaf10113232 : + adaptiveCoverCheck 11 thetaAboveCell10113232 = true := by + have h : (thetaAboveCell10113232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10113232 h +theorem e24KC2ThetaAboveLeaf10113233 : + adaptiveCoverCheck 11 thetaAboveCell10113233 = true := by + have h : (thetaAboveCell10113233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10113233 h +theorem e24KC2ThetaAboveLeaf101133000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113300) = true := by + have h : ((childLL thetaAboveCell10113300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113300) h +theorem e24KC2ThetaAboveLeaf101133001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113300) = true := by + have h : ((childLH thetaAboveCell10113300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113300) h +theorem e24KC2ThetaAboveLeaf101133002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113300) = true := by + have h : ((childHL thetaAboveCell10113300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113300) h +theorem e24KC2ThetaAboveLeaf101133003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113300) = true := by + have h : ((childHH thetaAboveCell10113300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113300) h +theorem e24KC2ThetaAboveLeaf101133010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113301) = true := by + have h : ((childLL thetaAboveCell10113301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113301) h +theorem e24KC2ThetaAboveLeaf101133011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113301) = true := by + have h : ((childLH thetaAboveCell10113301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113301) h +theorem e24KC2ThetaAboveLeaf101133012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113301) = true := by + have h : ((childHL thetaAboveCell10113301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113301) h +theorem e24KC2ThetaAboveLeaf101133013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113301) = true := by + have h : ((childHH thetaAboveCell10113301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113301) h +theorem e24KC2ThetaAboveLeaf101133020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113302) = true := by + have h : ((childLL thetaAboveCell10113302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113302) h +theorem e24KC2ThetaAboveLeaf101133021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113302) = true := by + have h : ((childLH thetaAboveCell10113302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113302) h +theorem e24KC2ThetaAboveLeaf101133022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113302) = true := by + have h : ((childHL thetaAboveCell10113302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113302) h +theorem e24KC2ThetaAboveLeaf101133023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113302) = true := by + have h : ((childHH thetaAboveCell10113302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113302) h +theorem e24KC2ThetaAboveLeaf101133030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113303) = true := by + have h : ((childLL thetaAboveCell10113303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113303) h +theorem e24KC2ThetaAboveLeaf101133031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113303) = true := by + have h : ((childLH thetaAboveCell10113303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113303) h +theorem e24KC2ThetaAboveLeaf101133032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113303) = true := by + have h : ((childHL thetaAboveCell10113303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113303) h +theorem e24KC2ThetaAboveLeaf101133033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113303) = true := by + have h : ((childHH thetaAboveCell10113303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113303) h +theorem e24KC2ThetaAboveLeaf101133100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113310) = true := by + have h : ((childLL thetaAboveCell10113310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113310) h +theorem e24KC2ThetaAboveLeaf101133101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113310) = true := by + have h : ((childLH thetaAboveCell10113310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113310) h +theorem e24KC2ThetaAboveLeaf101133102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113310) = true := by + have h : ((childHL thetaAboveCell10113310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113310) h +theorem e24KC2ThetaAboveLeaf101133103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113310) = true := by + have h : ((childHH thetaAboveCell10113310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113310) h +theorem e24KC2ThetaAboveLeaf101133110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113311) = true := by + have h : ((childLL thetaAboveCell10113311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113311) h +theorem e24KC2ThetaAboveLeaf101133111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113311) = true := by + have h : ((childLH thetaAboveCell10113311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113311) h +theorem e24KC2ThetaAboveLeaf101133112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113311) = true := by + have h : ((childHL thetaAboveCell10113311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113311) h +theorem e24KC2ThetaAboveLeaf101133113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113311) = true := by + have h : ((childHH thetaAboveCell10113311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113311) h +theorem e24KC2ThetaAboveLeaf101133120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113312) = true := by + have h : ((childLL thetaAboveCell10113312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113312) h +theorem e24KC2ThetaAboveLeaf101133121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113312) = true := by + have h : ((childLH thetaAboveCell10113312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113312) h +theorem e24KC2ThetaAboveLeaf101133122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113312) = true := by + have h : ((childHL thetaAboveCell10113312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113312) h +theorem e24KC2ThetaAboveLeaf101133123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113312) = true := by + have h : ((childHH thetaAboveCell10113312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113312) h +theorem e24KC2ThetaAboveLeaf101133130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113313) = true := by + have h : ((childLL thetaAboveCell10113313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113313) h +theorem e24KC2ThetaAboveLeaf101133131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113313) = true := by + have h : ((childLH thetaAboveCell10113313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113313) h +theorem e24KC2ThetaAboveLeaf101133132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113313) = true := by + have h : ((childHL thetaAboveCell10113313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113313) h +theorem e24KC2ThetaAboveLeaf101133133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113313) = true := by + have h : ((childHH thetaAboveCell10113313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113313) h +theorem e24KC2ThetaAboveLeaf101133200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113320) = true := by + have h : ((childLL thetaAboveCell10113320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113320) h +theorem e24KC2ThetaAboveLeaf101133201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113320) = true := by + have h : ((childLH thetaAboveCell10113320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113320) h +theorem e24KC2ThetaAboveLeaf101133202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113320) = true := by + have h : ((childHL thetaAboveCell10113320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113320) h +theorem e24KC2ThetaAboveLeaf101133203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113320) = true := by + have h : ((childHH thetaAboveCell10113320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113320) h +theorem e24KC2ThetaAboveLeaf101133210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113321) = true := by + have h : ((childLL thetaAboveCell10113321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113321) h +theorem e24KC2ThetaAboveLeaf101133211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113321) = true := by + have h : ((childLH thetaAboveCell10113321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113321) h +theorem e24KC2ThetaAboveLeaf101133212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113321) = true := by + have h : ((childHL thetaAboveCell10113321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113321) h +theorem e24KC2ThetaAboveLeaf101133213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113321) = true := by + have h : ((childHH thetaAboveCell10113321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113321) h +theorem e24KC2ThetaAboveLeaf10113322 : + adaptiveCoverCheck 11 thetaAboveCell10113322 = true := by + have h : (thetaAboveCell10113322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10113322 h +theorem e24KC2ThetaAboveLeaf10113323 : + adaptiveCoverCheck 11 thetaAboveCell10113323 = true := by + have h : (thetaAboveCell10113323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10113323 h +theorem e24KC2ThetaAboveLeaf101133300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113330) = true := by + have h : ((childLL thetaAboveCell10113330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113330) h +theorem e24KC2ThetaAboveLeaf101133301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113330) = true := by + have h : ((childLH thetaAboveCell10113330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113330) h +theorem e24KC2ThetaAboveLeaf101133302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113330) = true := by + have h : ((childHL thetaAboveCell10113330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113330) h +theorem e24KC2ThetaAboveLeaf101133303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113330) = true := by + have h : ((childHH thetaAboveCell10113330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113330) h +theorem e24KC2ThetaAboveLeaf101133310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10113331) = true := by + have h : ((childLL thetaAboveCell10113331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10113331) h +theorem e24KC2ThetaAboveLeaf101133311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10113331) = true := by + have h : ((childLH thetaAboveCell10113331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10113331) h +theorem e24KC2ThetaAboveLeaf101133312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10113331) = true := by + have h : ((childHL thetaAboveCell10113331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10113331) h +theorem e24KC2ThetaAboveLeaf101133313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10113331) = true := by + have h : ((childHH thetaAboveCell10113331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10113331) h +theorem e24KC2ThetaAboveLeaf10113332 : + adaptiveCoverCheck 11 thetaAboveCell10113332 = true := by + have h : (thetaAboveCell10113332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10113332 h +theorem e24KC2ThetaAboveLeaf10113333 : + adaptiveCoverCheck 11 thetaAboveCell10113333 = true := by + have h : (thetaAboveCell10113333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10113333 h +theorem e24KC2ThetaAboveLeaf1012000 : + adaptiveCoverCheck 12 (childLL (childLL (childLL thetaAboveCell1012))) = true := by + have h : ((childLL (childLL (childLL thetaAboveCell1012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLL thetaAboveCell1012))) h +theorem e24KC2ThetaAboveLeaf1012001 : + adaptiveCoverCheck 12 (childLH (childLL (childLL thetaAboveCell1012))) = true := by + have h : ((childLH (childLL (childLL thetaAboveCell1012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLL thetaAboveCell1012))) h +theorem e24KC2ThetaAboveLeaf1012002 : + adaptiveCoverCheck 12 (childHL (childLL (childLL thetaAboveCell1012))) = true := by + have h : ((childHL (childLL (childLL thetaAboveCell1012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLL thetaAboveCell1012))) h +theorem e24KC2ThetaAboveLeaf1012003 : + adaptiveCoverCheck 12 (childHH (childLL (childLL thetaAboveCell1012))) = true := by + have h : ((childHH (childLL (childLL thetaAboveCell1012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLL thetaAboveCell1012))) h +theorem e24KC2ThetaAboveLeaf1012010 : + adaptiveCoverCheck 12 (childLL (childLH (childLL thetaAboveCell1012))) = true := by + have h : ((childLL (childLH (childLL thetaAboveCell1012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLL thetaAboveCell1012))) h +theorem e24KC2ThetaAboveLeaf1012011 : + adaptiveCoverCheck 12 (childLH (childLH (childLL thetaAboveCell1012))) = true := by + have h : ((childLH (childLH (childLL thetaAboveCell1012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLL thetaAboveCell1012))) h +theorem e24KC2ThetaAboveLeaf1012012 : + adaptiveCoverCheck 12 (childHL (childLH (childLL thetaAboveCell1012))) = true := by + have h : ((childHL (childLH (childLL thetaAboveCell1012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLL thetaAboveCell1012))) h +theorem e24KC2ThetaAboveLeaf1012013 : + adaptiveCoverCheck 12 (childHH (childLH (childLL thetaAboveCell1012))) = true := by + have h : ((childHH (childLH (childLL thetaAboveCell1012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLL thetaAboveCell1012))) h +theorem e24KC2ThetaAboveLeaf101202 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell1012)) = true := by + have h : ((childHL (childLL thetaAboveCell1012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell1012)) h +theorem e24KC2ThetaAboveLeaf101203 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell1012)) = true := by + have h : ((childHH (childLL thetaAboveCell1012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell1012)) h +theorem e24KC2ThetaAboveLeaf1012100 : + adaptiveCoverCheck 12 (childLL (childLL (childLH thetaAboveCell1012))) = true := by + have h : ((childLL (childLL (childLH thetaAboveCell1012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLH thetaAboveCell1012))) h +theorem e24KC2ThetaAboveLeaf1012101 : + adaptiveCoverCheck 12 (childLH (childLL (childLH thetaAboveCell1012))) = true := by + have h : ((childLH (childLL (childLH thetaAboveCell1012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLH thetaAboveCell1012))) h +theorem e24KC2ThetaAboveLeaf1012102 : + adaptiveCoverCheck 12 (childHL (childLL (childLH thetaAboveCell1012))) = true := by + have h : ((childHL (childLL (childLH thetaAboveCell1012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLH thetaAboveCell1012))) h +theorem e24KC2ThetaAboveLeaf1012103 : + adaptiveCoverCheck 12 (childHH (childLL (childLH thetaAboveCell1012))) = true := by + have h : ((childHH (childLL (childLH thetaAboveCell1012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLH thetaAboveCell1012))) h +theorem e24KC2ThetaAboveLeaf1012110 : + adaptiveCoverCheck 12 (childLL (childLH (childLH thetaAboveCell1012))) = true := by + have h : ((childLL (childLH (childLH thetaAboveCell1012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLH thetaAboveCell1012))) h +theorem e24KC2ThetaAboveLeaf1012111 : + adaptiveCoverCheck 12 (childLH (childLH (childLH thetaAboveCell1012))) = true := by + have h : ((childLH (childLH (childLH thetaAboveCell1012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLH thetaAboveCell1012))) h +theorem e24KC2ThetaAboveLeaf1012112 : + adaptiveCoverCheck 12 (childHL (childLH (childLH thetaAboveCell1012))) = true := by + have h : ((childHL (childLH (childLH thetaAboveCell1012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLH thetaAboveCell1012))) h +theorem e24KC2ThetaAboveLeaf1012113 : + adaptiveCoverCheck 12 (childHH (childLH (childLH thetaAboveCell1012))) = true := by + have h : ((childHH (childLH (childLH thetaAboveCell1012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLH thetaAboveCell1012))) h +theorem e24KC2ThetaAboveLeaf101212 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell1012)) = true := by + have h : ((childHL (childLH thetaAboveCell1012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell1012)) h +theorem e24KC2ThetaAboveLeaf101213 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell1012)) = true := by + have h : ((childHH (childLH thetaAboveCell1012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell1012)) h +theorem e24KC2ThetaAboveLeaf10122 : + adaptiveCoverCheck 14 (childHL thetaAboveCell1012) = true := by + have h : ((childHL thetaAboveCell1012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHL thetaAboveCell1012) h +theorem e24KC2ThetaAboveLeaf10123 : + adaptiveCoverCheck 14 (childHH thetaAboveCell1012) = true := by + have h : ((childHH thetaAboveCell1012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHH thetaAboveCell1012) h +theorem e24KC2ThetaAboveLeaf1013000 : + adaptiveCoverCheck 12 (childLL (childLL (childLL thetaAboveCell1013))) = true := by + have h : ((childLL (childLL (childLL thetaAboveCell1013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLL thetaAboveCell1013))) h +theorem e24KC2ThetaAboveLeaf1013001 : + adaptiveCoverCheck 12 (childLH (childLL (childLL thetaAboveCell1013))) = true := by + have h : ((childLH (childLL (childLL thetaAboveCell1013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLL thetaAboveCell1013))) h +theorem e24KC2ThetaAboveLeaf1013002 : + adaptiveCoverCheck 12 (childHL (childLL (childLL thetaAboveCell1013))) = true := by + have h : ((childHL (childLL (childLL thetaAboveCell1013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLL thetaAboveCell1013))) h +theorem e24KC2ThetaAboveLeaf1013003 : + adaptiveCoverCheck 12 (childHH (childLL (childLL thetaAboveCell1013))) = true := by + have h : ((childHH (childLL (childLL thetaAboveCell1013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLL thetaAboveCell1013))) h +theorem e24KC2ThetaAboveLeaf1013010 : + adaptiveCoverCheck 12 (childLL (childLH (childLL thetaAboveCell1013))) = true := by + have h : ((childLL (childLH (childLL thetaAboveCell1013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLL thetaAboveCell1013))) h +theorem e24KC2ThetaAboveLeaf1013011 : + adaptiveCoverCheck 12 (childLH (childLH (childLL thetaAboveCell1013))) = true := by + have h : ((childLH (childLH (childLL thetaAboveCell1013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLL thetaAboveCell1013))) h +theorem e24KC2ThetaAboveLeaf1013012 : + adaptiveCoverCheck 12 (childHL (childLH (childLL thetaAboveCell1013))) = true := by + have h : ((childHL (childLH (childLL thetaAboveCell1013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLL thetaAboveCell1013))) h +theorem e24KC2ThetaAboveLeaf1013013 : + adaptiveCoverCheck 12 (childHH (childLH (childLL thetaAboveCell1013))) = true := by + have h : ((childHH (childLH (childLL thetaAboveCell1013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLL thetaAboveCell1013))) h +theorem e24KC2ThetaAboveLeaf101302 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell1013)) = true := by + have h : ((childHL (childLL thetaAboveCell1013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell1013)) h +theorem e24KC2ThetaAboveLeaf101303 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell1013)) = true := by + have h : ((childHH (childLL thetaAboveCell1013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell1013)) h +theorem e24KC2ThetaAboveLeaf1013100 : + adaptiveCoverCheck 12 (childLL (childLL (childLH thetaAboveCell1013))) = true := by + have h : ((childLL (childLL (childLH thetaAboveCell1013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLH thetaAboveCell1013))) h +theorem e24KC2ThetaAboveLeaf1013101 : + adaptiveCoverCheck 12 (childLH (childLL (childLH thetaAboveCell1013))) = true := by + have h : ((childLH (childLL (childLH thetaAboveCell1013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLH thetaAboveCell1013))) h +theorem e24KC2ThetaAboveLeaf1013102 : + adaptiveCoverCheck 12 (childHL (childLL (childLH thetaAboveCell1013))) = true := by + have h : ((childHL (childLL (childLH thetaAboveCell1013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLH thetaAboveCell1013))) h +theorem e24KC2ThetaAboveLeaf1013103 : + adaptiveCoverCheck 12 (childHH (childLL (childLH thetaAboveCell1013))) = true := by + have h : ((childHH (childLL (childLH thetaAboveCell1013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLH thetaAboveCell1013))) h +theorem e24KC2ThetaAboveLeaf1013110 : + adaptiveCoverCheck 12 (childLL (childLH (childLH thetaAboveCell1013))) = true := by + have h : ((childLL (childLH (childLH thetaAboveCell1013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLH thetaAboveCell1013))) h +theorem e24KC2ThetaAboveLeaf1013111 : + adaptiveCoverCheck 12 (childLH (childLH (childLH thetaAboveCell1013))) = true := by + have h : ((childLH (childLH (childLH thetaAboveCell1013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLH thetaAboveCell1013))) h +theorem e24KC2ThetaAboveLeaf1013112 : + adaptiveCoverCheck 12 (childHL (childLH (childLH thetaAboveCell1013))) = true := by + have h : ((childHL (childLH (childLH thetaAboveCell1013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLH thetaAboveCell1013))) h +theorem e24KC2ThetaAboveLeaf1013113 : + adaptiveCoverCheck 12 (childHH (childLH (childLH thetaAboveCell1013))) = true := by + have h : ((childHH (childLH (childLH thetaAboveCell1013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLH thetaAboveCell1013))) h +theorem e24KC2ThetaAboveLeaf101312 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell1013)) = true := by + have h : ((childHL (childLH thetaAboveCell1013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell1013)) h +theorem e24KC2ThetaAboveLeaf101313 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell1013)) = true := by + have h : ((childHH (childLH thetaAboveCell1013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell1013)) h +theorem e24KC2ThetaAboveLeaf10132 : + adaptiveCoverCheck 14 (childHL thetaAboveCell1013) = true := by + have h : ((childHL thetaAboveCell1013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHL thetaAboveCell1013) h +theorem e24KC2ThetaAboveLeaf10133 : + adaptiveCoverCheck 14 (childHH thetaAboveCell1013) = true := by + have h : ((childHH thetaAboveCell1013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHH thetaAboveCell1013) h +theorem e24KC2ThetaAboveLeaf1020 : + adaptiveCoverCheck 15 thetaAboveCell1020 = true := by + have h : (thetaAboveCell1020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell1020 h +theorem e24KC2ThetaAboveLeaf1021 : + adaptiveCoverCheck 15 thetaAboveCell1021 = true := by + have h : (thetaAboveCell1021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell1021 h +theorem e24KC2ThetaAboveLeaf1022 : + adaptiveCoverCheck 15 thetaAboveCell1022 = true := by + have h : (thetaAboveCell1022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell1022 h +theorem e24KC2ThetaAboveLeaf1023 : + adaptiveCoverCheck 15 thetaAboveCell1023 = true := by + have h : (thetaAboveCell1023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell1023 h +theorem e24KC2ThetaAboveLeaf1030 : + adaptiveCoverCheck 15 thetaAboveCell1030 = true := by + have h : (thetaAboveCell1030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell1030 h +theorem e24KC2ThetaAboveLeaf1031 : + adaptiveCoverCheck 15 thetaAboveCell1031 = true := by + have h : (thetaAboveCell1031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell1031 h +theorem e24KC2ThetaAboveLeaf1032 : + adaptiveCoverCheck 15 thetaAboveCell1032 = true := by + have h : (thetaAboveCell1032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell1032 h +theorem e24KC2ThetaAboveLeaf1033 : + adaptiveCoverCheck 15 thetaAboveCell1033 = true := by + have h : (thetaAboveCell1033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell1033 h +theorem e24KC2ThetaAboveLeaf110000 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell1100)) = true := by + have h : ((childLL (childLL thetaAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLL thetaAboveCell1100)) h +theorem e24KC2ThetaAboveLeaf110001 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell1100)) = true := by + have h : ((childLH (childLL thetaAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLL thetaAboveCell1100)) h +theorem e24KC2ThetaAboveLeaf110002 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell1100)) = true := by + have h : ((childHL (childLL thetaAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell1100)) h +theorem e24KC2ThetaAboveLeaf110003 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell1100)) = true := by + have h : ((childHH (childLL thetaAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell1100)) h +theorem e24KC2ThetaAboveLeaf110010 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell1100)) = true := by + have h : ((childLL (childLH thetaAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLH thetaAboveCell1100)) h +theorem e24KC2ThetaAboveLeaf110011 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell1100)) = true := by + have h : ((childLH (childLH thetaAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLH thetaAboveCell1100)) h +theorem e24KC2ThetaAboveLeaf110012 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell1100)) = true := by + have h : ((childHL (childLH thetaAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell1100)) h +theorem e24KC2ThetaAboveLeaf110013 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell1100)) = true := by + have h : ((childHH (childLH thetaAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell1100)) h +theorem e24KC2ThetaAboveLeaf1100200 : + adaptiveCoverCheck 12 (childLL (childLL (childHL thetaAboveCell1100))) = true := by + have h : ((childLL (childLL (childHL thetaAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHL thetaAboveCell1100))) h +theorem e24KC2ThetaAboveLeaf1100201 : + adaptiveCoverCheck 12 (childLH (childLL (childHL thetaAboveCell1100))) = true := by + have h : ((childLH (childLL (childHL thetaAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHL thetaAboveCell1100))) h +theorem e24KC2ThetaAboveLeaf1100202 : + adaptiveCoverCheck 12 (childHL (childLL (childHL thetaAboveCell1100))) = true := by + have h : ((childHL (childLL (childHL thetaAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childHL thetaAboveCell1100))) h +theorem e24KC2ThetaAboveLeaf1100203 : + adaptiveCoverCheck 12 (childHH (childLL (childHL thetaAboveCell1100))) = true := by + have h : ((childHH (childLL (childHL thetaAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childHL thetaAboveCell1100))) h +theorem e24KC2ThetaAboveLeaf1100210 : + adaptiveCoverCheck 12 (childLL (childLH (childHL thetaAboveCell1100))) = true := by + have h : ((childLL (childLH (childHL thetaAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHL thetaAboveCell1100))) h +theorem e24KC2ThetaAboveLeaf1100211 : + adaptiveCoverCheck 12 (childLH (childLH (childHL thetaAboveCell1100))) = true := by + have h : ((childLH (childLH (childHL thetaAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHL thetaAboveCell1100))) h +theorem e24KC2ThetaAboveLeaf1100212 : + adaptiveCoverCheck 12 (childHL (childLH (childHL thetaAboveCell1100))) = true := by + have h : ((childHL (childLH (childHL thetaAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childHL thetaAboveCell1100))) h +theorem e24KC2ThetaAboveLeaf1100213 : + adaptiveCoverCheck 12 (childHH (childLH (childHL thetaAboveCell1100))) = true := by + have h : ((childHH (childLH (childHL thetaAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childHL thetaAboveCell1100))) h +theorem e24KC2ThetaAboveLeaf11002200 : + adaptiveCoverCheck 11 thetaAboveCell11002200 = true := by + have h : (thetaAboveCell11002200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11002200 h +theorem e24KC2ThetaAboveLeaf11002201 : + adaptiveCoverCheck 11 thetaAboveCell11002201 = true := by + have h : (thetaAboveCell11002201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11002201 h +theorem e24KC2ThetaAboveLeaf110022020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11002202) = true := by + have h : ((childLL thetaAboveCell11002202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11002202) h +theorem e24KC2ThetaAboveLeaf110022021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11002202) = true := by + have h : ((childLH thetaAboveCell11002202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11002202) h +theorem e24KC2ThetaAboveLeaf110022022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11002202) = true := by + have h : ((childHL thetaAboveCell11002202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11002202) h +theorem e24KC2ThetaAboveLeaf110022023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11002202) = true := by + have h : ((childHH thetaAboveCell11002202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11002202) h +theorem e24KC2ThetaAboveLeaf110022030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11002203) = true := by + have h : ((childLL thetaAboveCell11002203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11002203) h +theorem e24KC2ThetaAboveLeaf110022031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11002203) = true := by + have h : ((childLH thetaAboveCell11002203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11002203) h +theorem e24KC2ThetaAboveLeaf110022032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11002203) = true := by + have h : ((childHL thetaAboveCell11002203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11002203) h +theorem e24KC2ThetaAboveLeaf110022033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11002203) = true := by + have h : ((childHH thetaAboveCell11002203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11002203) h +theorem e24KC2ThetaAboveLeaf11002210 : + adaptiveCoverCheck 11 thetaAboveCell11002210 = true := by + have h : (thetaAboveCell11002210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11002210 h +theorem e24KC2ThetaAboveLeaf11002211 : + adaptiveCoverCheck 11 thetaAboveCell11002211 = true := by + have h : (thetaAboveCell11002211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11002211 h +theorem e24KC2ThetaAboveLeaf110022120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11002212) = true := by + have h : ((childLL thetaAboveCell11002212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11002212) h +theorem e24KC2ThetaAboveLeaf110022121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11002212) = true := by + have h : ((childLH thetaAboveCell11002212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11002212) h +theorem e24KC2ThetaAboveLeaf110022122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11002212) = true := by + have h : ((childHL thetaAboveCell11002212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11002212) h +theorem e24KC2ThetaAboveLeaf110022123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11002212) = true := by + have h : ((childHH thetaAboveCell11002212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11002212) h +theorem e24KC2ThetaAboveLeaf110022130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11002213) = true := by + have h : ((childLL thetaAboveCell11002213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11002213) h +theorem e24KC2ThetaAboveLeaf110022131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11002213) = true := by + have h : ((childLH thetaAboveCell11002213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11002213) h +theorem e24KC2ThetaAboveLeaf110022132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11002213) = true := by + have h : ((childHL thetaAboveCell11002213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11002213) h +theorem e24KC2ThetaAboveLeaf110022133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11002213) = true := by + have h : ((childHH thetaAboveCell11002213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11002213) h +theorem e24KC2ThetaAboveLeaf110022200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11002220) = true := by + have h : ((childLL thetaAboveCell11002220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11002220) h +theorem e24KC2ThetaAboveLeaf110022201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11002220) = true := by + have h : ((childLH thetaAboveCell11002220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11002220) h +theorem e24KC2ThetaAboveLeaf110022202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11002220) = true := by + have h : ((childHL thetaAboveCell11002220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11002220) h +theorem e24KC2ThetaAboveLeaf110022203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11002220) = true := by + have h : ((childHH thetaAboveCell11002220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11002220) h +theorem e24KC2ThetaAboveLeaf110022210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11002221) = true := by + have h : ((childLL thetaAboveCell11002221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11002221) h +theorem e24KC2ThetaAboveLeaf110022211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11002221) = true := by + have h : ((childLH thetaAboveCell11002221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11002221) h +theorem e24KC2ThetaAboveLeaf110022212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11002221) = true := by + have h : ((childHL thetaAboveCell11002221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11002221) h +theorem e24KC2ThetaAboveLeaf110022213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11002221) = true := by + have h : ((childHH thetaAboveCell11002221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11002221) h +theorem e24KC2ThetaAboveLeaf11002222 : + adaptiveCoverCheck 11 thetaAboveCell11002222 = true := by + have h : (thetaAboveCell11002222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11002222 h +theorem e24KC2ThetaAboveLeaf11002223 : + adaptiveCoverCheck 11 thetaAboveCell11002223 = true := by + have h : (thetaAboveCell11002223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11002223 h +theorem e24KC2ThetaAboveLeaf110022300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11002230) = true := by + have h : ((childLL thetaAboveCell11002230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11002230) h +theorem e24KC2ThetaAboveLeaf110022301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11002230) = true := by + have h : ((childLH thetaAboveCell11002230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11002230) h +theorem e24KC2ThetaAboveLeaf110022302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11002230) = true := by + have h : ((childHL thetaAboveCell11002230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11002230) h +theorem e24KC2ThetaAboveLeaf110022303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11002230) = true := by + have h : ((childHH thetaAboveCell11002230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11002230) h +theorem e24KC2ThetaAboveLeaf110022310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11002231) = true := by + have h : ((childLL thetaAboveCell11002231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11002231) h +theorem e24KC2ThetaAboveLeaf110022311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11002231) = true := by + have h : ((childLH thetaAboveCell11002231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11002231) h +theorem e24KC2ThetaAboveLeaf110022312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11002231) = true := by + have h : ((childHL thetaAboveCell11002231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11002231) h +theorem e24KC2ThetaAboveLeaf110022313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11002231) = true := by + have h : ((childHH thetaAboveCell11002231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11002231) h +theorem e24KC2ThetaAboveLeaf11002232 : + adaptiveCoverCheck 11 thetaAboveCell11002232 = true := by + have h : (thetaAboveCell11002232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11002232 h +theorem e24KC2ThetaAboveLeaf11002233 : + adaptiveCoverCheck 11 thetaAboveCell11002233 = true := by + have h : (thetaAboveCell11002233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11002233 h +theorem e24KC2ThetaAboveLeaf11002300 : + adaptiveCoverCheck 11 thetaAboveCell11002300 = true := by + have h : (thetaAboveCell11002300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11002300 h +theorem e24KC2ThetaAboveLeaf11002301 : + adaptiveCoverCheck 11 thetaAboveCell11002301 = true := by + have h : (thetaAboveCell11002301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11002301 h +theorem e24KC2ThetaAboveLeaf110023020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11002302) = true := by + have h : ((childLL thetaAboveCell11002302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11002302) h +theorem e24KC2ThetaAboveLeaf110023021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11002302) = true := by + have h : ((childLH thetaAboveCell11002302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11002302) h +theorem e24KC2ThetaAboveLeaf110023022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11002302) = true := by + have h : ((childHL thetaAboveCell11002302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11002302) h +theorem e24KC2ThetaAboveLeaf110023023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11002302) = true := by + have h : ((childHH thetaAboveCell11002302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11002302) h +theorem e24KC2ThetaAboveLeaf110023030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11002303) = true := by + have h : ((childLL thetaAboveCell11002303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11002303) h +theorem e24KC2ThetaAboveLeaf110023031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11002303) = true := by + have h : ((childLH thetaAboveCell11002303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11002303) h +theorem e24KC2ThetaAboveLeaf110023032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11002303) = true := by + have h : ((childHL thetaAboveCell11002303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11002303) h +theorem e24KC2ThetaAboveLeaf110023033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11002303) = true := by + have h : ((childHH thetaAboveCell11002303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11002303) h +theorem e24KC2ThetaAboveLeaf11002310 : + adaptiveCoverCheck 11 thetaAboveCell11002310 = true := by + have h : (thetaAboveCell11002310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11002310 h +theorem e24KC2ThetaAboveLeaf11002311 : + adaptiveCoverCheck 11 thetaAboveCell11002311 = true := by + have h : (thetaAboveCell11002311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11002311 h +theorem e24KC2ThetaAboveLeaf110023120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11002312) = true := by + have h : ((childLL thetaAboveCell11002312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11002312) h +theorem e24KC2ThetaAboveLeaf110023121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11002312) = true := by + have h : ((childLH thetaAboveCell11002312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11002312) h +theorem e24KC2ThetaAboveLeaf110023122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11002312) = true := by + have h : ((childHL thetaAboveCell11002312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11002312) h +theorem e24KC2ThetaAboveLeaf110023123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11002312) = true := by + have h : ((childHH thetaAboveCell11002312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11002312) h +theorem e24KC2ThetaAboveLeaf110023130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11002313) = true := by + have h : ((childLL thetaAboveCell11002313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11002313) h +theorem e24KC2ThetaAboveLeaf110023131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11002313) = true := by + have h : ((childLH thetaAboveCell11002313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11002313) h +theorem e24KC2ThetaAboveLeaf110023132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11002313) = true := by + have h : ((childHL thetaAboveCell11002313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11002313) h +theorem e24KC2ThetaAboveLeaf110023133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11002313) = true := by + have h : ((childHH thetaAboveCell11002313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11002313) h +theorem e24KC2ThetaAboveLeaf110023200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11002320) = true := by + have h : ((childLL thetaAboveCell11002320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11002320) h +theorem e24KC2ThetaAboveLeaf110023201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11002320) = true := by + have h : ((childLH thetaAboveCell11002320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11002320) h +theorem e24KC2ThetaAboveLeaf110023202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11002320) = true := by + have h : ((childHL thetaAboveCell11002320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11002320) h +theorem e24KC2ThetaAboveLeaf110023203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11002320) = true := by + have h : ((childHH thetaAboveCell11002320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11002320) h +theorem e24KC2ThetaAboveLeaf110023210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11002321) = true := by + have h : ((childLL thetaAboveCell11002321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11002321) h +theorem e24KC2ThetaAboveLeaf110023211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11002321) = true := by + have h : ((childLH thetaAboveCell11002321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11002321) h +theorem e24KC2ThetaAboveLeaf110023212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11002321) = true := by + have h : ((childHL thetaAboveCell11002321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11002321) h +theorem e24KC2ThetaAboveLeaf110023213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11002321) = true := by + have h : ((childHH thetaAboveCell11002321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11002321) h +theorem e24KC2ThetaAboveLeaf11002322 : + adaptiveCoverCheck 11 thetaAboveCell11002322 = true := by + have h : (thetaAboveCell11002322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11002322 h +theorem e24KC2ThetaAboveLeaf11002323 : + adaptiveCoverCheck 11 thetaAboveCell11002323 = true := by + have h : (thetaAboveCell11002323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11002323 h +theorem e24KC2ThetaAboveLeaf110023300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11002330) = true := by + have h : ((childLL thetaAboveCell11002330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11002330) h +theorem e24KC2ThetaAboveLeaf110023301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11002330) = true := by + have h : ((childLH thetaAboveCell11002330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11002330) h +theorem e24KC2ThetaAboveLeaf110023302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11002330) = true := by + have h : ((childHL thetaAboveCell11002330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11002330) h +theorem e24KC2ThetaAboveLeaf110023303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11002330) = true := by + have h : ((childHH thetaAboveCell11002330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11002330) h +theorem e24KC2ThetaAboveLeaf110023310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11002331) = true := by + have h : ((childLL thetaAboveCell11002331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11002331) h +theorem e24KC2ThetaAboveLeaf110023311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11002331) = true := by + have h : ((childLH thetaAboveCell11002331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11002331) h +theorem e24KC2ThetaAboveLeaf110023312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11002331) = true := by + have h : ((childHL thetaAboveCell11002331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11002331) h +theorem e24KC2ThetaAboveLeaf110023313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11002331) = true := by + have h : ((childHH thetaAboveCell11002331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11002331) h +theorem e24KC2ThetaAboveLeaf11002332 : + adaptiveCoverCheck 11 thetaAboveCell11002332 = true := by + have h : (thetaAboveCell11002332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11002332 h +theorem e24KC2ThetaAboveLeaf11002333 : + adaptiveCoverCheck 11 thetaAboveCell11002333 = true := by + have h : (thetaAboveCell11002333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11002333 h +theorem e24KC2ThetaAboveLeaf1100300 : + adaptiveCoverCheck 12 (childLL (childLL (childHH thetaAboveCell1100))) = true := by + have h : ((childLL (childLL (childHH thetaAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHH thetaAboveCell1100))) h +theorem e24KC2ThetaAboveLeaf1100301 : + adaptiveCoverCheck 12 (childLH (childLL (childHH thetaAboveCell1100))) = true := by + have h : ((childLH (childLL (childHH thetaAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHH thetaAboveCell1100))) h +theorem e24KC2ThetaAboveLeaf1100302 : + adaptiveCoverCheck 12 (childHL (childLL (childHH thetaAboveCell1100))) = true := by + have h : ((childHL (childLL (childHH thetaAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childHH thetaAboveCell1100))) h +theorem e24KC2ThetaAboveLeaf1100303 : + adaptiveCoverCheck 12 (childHH (childLL (childHH thetaAboveCell1100))) = true := by + have h : ((childHH (childLL (childHH thetaAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childHH thetaAboveCell1100))) h +theorem e24KC2ThetaAboveLeaf1100310 : + adaptiveCoverCheck 12 (childLL (childLH (childHH thetaAboveCell1100))) = true := by + have h : ((childLL (childLH (childHH thetaAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHH thetaAboveCell1100))) h +theorem e24KC2ThetaAboveLeaf1100311 : + adaptiveCoverCheck 12 (childLH (childLH (childHH thetaAboveCell1100))) = true := by + have h : ((childLH (childLH (childHH thetaAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHH thetaAboveCell1100))) h +theorem e24KC2ThetaAboveLeaf1100312 : + adaptiveCoverCheck 12 (childHL (childLH (childHH thetaAboveCell1100))) = true := by + have h : ((childHL (childLH (childHH thetaAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childHH thetaAboveCell1100))) h +theorem e24KC2ThetaAboveLeaf1100313 : + adaptiveCoverCheck 12 (childHH (childLH (childHH thetaAboveCell1100))) = true := by + have h : ((childHH (childLH (childHH thetaAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childHH thetaAboveCell1100))) h +theorem e24KC2ThetaAboveLeaf11003200 : + adaptiveCoverCheck 11 thetaAboveCell11003200 = true := by + have h : (thetaAboveCell11003200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11003200 h +theorem e24KC2ThetaAboveLeaf11003201 : + adaptiveCoverCheck 11 thetaAboveCell11003201 = true := by + have h : (thetaAboveCell11003201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11003201 h +theorem e24KC2ThetaAboveLeaf110032020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11003202) = true := by + have h : ((childLL thetaAboveCell11003202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11003202) h +theorem e24KC2ThetaAboveLeaf110032021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11003202) = true := by + have h : ((childLH thetaAboveCell11003202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11003202) h +theorem e24KC2ThetaAboveLeaf110032022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11003202) = true := by + have h : ((childHL thetaAboveCell11003202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11003202) h +theorem e24KC2ThetaAboveLeaf110032023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11003202) = true := by + have h : ((childHH thetaAboveCell11003202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11003202) h +theorem e24KC2ThetaAboveLeaf110032030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11003203) = true := by + have h : ((childLL thetaAboveCell11003203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11003203) h +theorem e24KC2ThetaAboveLeaf110032031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11003203) = true := by + have h : ((childLH thetaAboveCell11003203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11003203) h +theorem e24KC2ThetaAboveLeaf110032032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11003203) = true := by + have h : ((childHL thetaAboveCell11003203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11003203) h +theorem e24KC2ThetaAboveLeaf110032033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11003203) = true := by + have h : ((childHH thetaAboveCell11003203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11003203) h +theorem e24KC2ThetaAboveLeaf11003210 : + adaptiveCoverCheck 11 thetaAboveCell11003210 = true := by + have h : (thetaAboveCell11003210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11003210 h +theorem e24KC2ThetaAboveLeaf11003211 : + adaptiveCoverCheck 11 thetaAboveCell11003211 = true := by + have h : (thetaAboveCell11003211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11003211 h +theorem e24KC2ThetaAboveLeaf110032120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11003212) = true := by + have h : ((childLL thetaAboveCell11003212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11003212) h +theorem e24KC2ThetaAboveLeaf110032121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11003212) = true := by + have h : ((childLH thetaAboveCell11003212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11003212) h +theorem e24KC2ThetaAboveLeaf110032122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11003212) = true := by + have h : ((childHL thetaAboveCell11003212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11003212) h +theorem e24KC2ThetaAboveLeaf110032123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11003212) = true := by + have h : ((childHH thetaAboveCell11003212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11003212) h +theorem e24KC2ThetaAboveLeaf110032130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11003213) = true := by + have h : ((childLL thetaAboveCell11003213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11003213) h +theorem e24KC2ThetaAboveLeaf110032131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11003213) = true := by + have h : ((childLH thetaAboveCell11003213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11003213) h +theorem e24KC2ThetaAboveLeaf110032132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11003213) = true := by + have h : ((childHL thetaAboveCell11003213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11003213) h +theorem e24KC2ThetaAboveLeaf110032133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11003213) = true := by + have h : ((childHH thetaAboveCell11003213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11003213) h +theorem e24KC2ThetaAboveLeaf110032200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11003220) = true := by + have h : ((childLL thetaAboveCell11003220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11003220) h +theorem e24KC2ThetaAboveLeaf110032201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11003220) = true := by + have h : ((childLH thetaAboveCell11003220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11003220) h +theorem e24KC2ThetaAboveLeaf110032202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11003220) = true := by + have h : ((childHL thetaAboveCell11003220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11003220) h +theorem e24KC2ThetaAboveLeaf110032203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11003220) = true := by + have h : ((childHH thetaAboveCell11003220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11003220) h +theorem e24KC2ThetaAboveLeaf110032210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11003221) = true := by + have h : ((childLL thetaAboveCell11003221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11003221) h +theorem e24KC2ThetaAboveLeaf110032211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11003221) = true := by + have h : ((childLH thetaAboveCell11003221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11003221) h +theorem e24KC2ThetaAboveLeaf110032212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11003221) = true := by + have h : ((childHL thetaAboveCell11003221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11003221) h +theorem e24KC2ThetaAboveLeaf110032213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11003221) = true := by + have h : ((childHH thetaAboveCell11003221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11003221) h +theorem e24KC2ThetaAboveLeaf11003222 : + adaptiveCoverCheck 11 thetaAboveCell11003222 = true := by + have h : (thetaAboveCell11003222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11003222 h +theorem e24KC2ThetaAboveLeaf11003223 : + adaptiveCoverCheck 11 thetaAboveCell11003223 = true := by + have h : (thetaAboveCell11003223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11003223 h +theorem e24KC2ThetaAboveLeaf110032300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11003230) = true := by + have h : ((childLL thetaAboveCell11003230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11003230) h +theorem e24KC2ThetaAboveLeaf110032301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11003230) = true := by + have h : ((childLH thetaAboveCell11003230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11003230) h +theorem e24KC2ThetaAboveLeaf110032302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11003230) = true := by + have h : ((childHL thetaAboveCell11003230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11003230) h +theorem e24KC2ThetaAboveLeaf110032303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11003230) = true := by + have h : ((childHH thetaAboveCell11003230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11003230) h +theorem e24KC2ThetaAboveLeaf110032310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11003231) = true := by + have h : ((childLL thetaAboveCell11003231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11003231) h +theorem e24KC2ThetaAboveLeaf110032311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11003231) = true := by + have h : ((childLH thetaAboveCell11003231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11003231) h +theorem e24KC2ThetaAboveLeaf110032312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11003231) = true := by + have h : ((childHL thetaAboveCell11003231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11003231) h +theorem e24KC2ThetaAboveLeaf110032313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11003231) = true := by + have h : ((childHH thetaAboveCell11003231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11003231) h +theorem e24KC2ThetaAboveLeaf11003232 : + adaptiveCoverCheck 11 thetaAboveCell11003232 = true := by + have h : (thetaAboveCell11003232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11003232 h +theorem e24KC2ThetaAboveLeaf11003233 : + adaptiveCoverCheck 11 thetaAboveCell11003233 = true := by + have h : (thetaAboveCell11003233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11003233 h +theorem e24KC2ThetaAboveLeaf11003300 : + adaptiveCoverCheck 11 thetaAboveCell11003300 = true := by + have h : (thetaAboveCell11003300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11003300 h +theorem e24KC2ThetaAboveLeaf11003301 : + adaptiveCoverCheck 11 thetaAboveCell11003301 = true := by + have h : (thetaAboveCell11003301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11003301 h +theorem e24KC2ThetaAboveLeaf110033020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11003302) = true := by + have h : ((childLL thetaAboveCell11003302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11003302) h +theorem e24KC2ThetaAboveLeaf110033021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11003302) = true := by + have h : ((childLH thetaAboveCell11003302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11003302) h +theorem e24KC2ThetaAboveLeaf110033022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11003302) = true := by + have h : ((childHL thetaAboveCell11003302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11003302) h +theorem e24KC2ThetaAboveLeaf110033023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11003302) = true := by + have h : ((childHH thetaAboveCell11003302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11003302) h +theorem e24KC2ThetaAboveLeaf110033030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11003303) = true := by + have h : ((childLL thetaAboveCell11003303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11003303) h +theorem e24KC2ThetaAboveLeaf110033031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11003303) = true := by + have h : ((childLH thetaAboveCell11003303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11003303) h +theorem e24KC2ThetaAboveLeaf110033032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11003303) = true := by + have h : ((childHL thetaAboveCell11003303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11003303) h +theorem e24KC2ThetaAboveLeaf110033033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11003303) = true := by + have h : ((childHH thetaAboveCell11003303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11003303) h +theorem e24KC2ThetaAboveLeaf11003310 : + adaptiveCoverCheck 11 thetaAboveCell11003310 = true := by + have h : (thetaAboveCell11003310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11003310 h +theorem e24KC2ThetaAboveLeaf11003311 : + adaptiveCoverCheck 11 thetaAboveCell11003311 = true := by + have h : (thetaAboveCell11003311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11003311 h +theorem e24KC2ThetaAboveLeaf110033120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11003312) = true := by + have h : ((childLL thetaAboveCell11003312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11003312) h +theorem e24KC2ThetaAboveLeaf110033121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11003312) = true := by + have h : ((childLH thetaAboveCell11003312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11003312) h +theorem e24KC2ThetaAboveLeaf110033122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11003312) = true := by + have h : ((childHL thetaAboveCell11003312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11003312) h +theorem e24KC2ThetaAboveLeaf110033123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11003312) = true := by + have h : ((childHH thetaAboveCell11003312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11003312) h +theorem e24KC2ThetaAboveLeaf110033130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11003313) = true := by + have h : ((childLL thetaAboveCell11003313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11003313) h +theorem e24KC2ThetaAboveLeaf110033131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11003313) = true := by + have h : ((childLH thetaAboveCell11003313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11003313) h +theorem e24KC2ThetaAboveLeaf110033132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11003313) = true := by + have h : ((childHL thetaAboveCell11003313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11003313) h +theorem e24KC2ThetaAboveLeaf110033133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11003313) = true := by + have h : ((childHH thetaAboveCell11003313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11003313) h +theorem e24KC2ThetaAboveLeaf110033200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11003320) = true := by + have h : ((childLL thetaAboveCell11003320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11003320) h +theorem e24KC2ThetaAboveLeaf110033201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11003320) = true := by + have h : ((childLH thetaAboveCell11003320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11003320) h +theorem e24KC2ThetaAboveLeaf110033202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11003320) = true := by + have h : ((childHL thetaAboveCell11003320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11003320) h +theorem e24KC2ThetaAboveLeaf110033203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11003320) = true := by + have h : ((childHH thetaAboveCell11003320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11003320) h +theorem e24KC2ThetaAboveLeaf110033210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11003321) = true := by + have h : ((childLL thetaAboveCell11003321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11003321) h +theorem e24KC2ThetaAboveLeaf110033211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11003321) = true := by + have h : ((childLH thetaAboveCell11003321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11003321) h +theorem e24KC2ThetaAboveLeaf110033212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11003321) = true := by + have h : ((childHL thetaAboveCell11003321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11003321) h +theorem e24KC2ThetaAboveLeaf110033213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11003321) = true := by + have h : ((childHH thetaAboveCell11003321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11003321) h +theorem e24KC2ThetaAboveLeaf11003322 : + adaptiveCoverCheck 11 thetaAboveCell11003322 = true := by + have h : (thetaAboveCell11003322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11003322 h +theorem e24KC2ThetaAboveLeaf11003323 : + adaptiveCoverCheck 11 thetaAboveCell11003323 = true := by + have h : (thetaAboveCell11003323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11003323 h +theorem e24KC2ThetaAboveLeaf110033300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11003330) = true := by + have h : ((childLL thetaAboveCell11003330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11003330) h + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle004.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle004.lean new file mode 100644 index 0000000000..9ccd225f1d --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle004.lean @@ -0,0 +1,10654 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch005`. +* `GerverSofa.KernelOnly.PartE.Certificates.Batch027`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCells0d991a929b + +/-- Subcell `0000` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24PhiAboveRoot))) + +/-- Subcell `0001` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0001 : AngleCell := + childLH (childLL (childLL (childLL e24PhiAboveRoot))) + +/-- Subcell `0002` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0002 : AngleCell := + childHL (childLL (childLL (childLL e24PhiAboveRoot))) + +/-- Subcell `0003` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0003 : AngleCell := + childHH (childLL (childLL (childLL e24PhiAboveRoot))) + +/-- Subcell `0010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0010 : AngleCell := + childLL (childLH (childLL (childLL e24PhiAboveRoot))) + +/-- Subcell `0011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0011 : AngleCell := + childLH (childLH (childLL (childLL e24PhiAboveRoot))) + +/-- Subcell `0012` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0012 : AngleCell := + childHL (childLH (childLL (childLL e24PhiAboveRoot))) + +/-- Subcell `0013` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0013 : AngleCell := + childHH (childLH (childLL (childLL e24PhiAboveRoot))) + +/-- Subcell `0030` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0030 : AngleCell := + childLL (childHH (childLL (childLL e24PhiAboveRoot))) + +/-- Subcell `0031` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0031 : AngleCell := + childLH (childHH (childLL (childLL e24PhiAboveRoot))) + +/-- Subcell `0032` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0032 : AngleCell := + childHL (childHH (childLL (childLL e24PhiAboveRoot))) + +/-- Subcell `0033` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0033 : AngleCell := + childHH (childHH (childLL (childLL e24PhiAboveRoot))) + +/-- Subcell `0100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0100 : AngleCell := + childLL (childLL (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `0101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0101 : AngleCell := + childLH (childLL (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `0102` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0102 : AngleCell := + childHL (childLL (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `0103` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0103 : AngleCell := + childHH (childLL (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `0110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0110 : AngleCell := + childLL (childLH (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `0111` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0111 : AngleCell := + childLH (childLH (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `0112` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0112 : AngleCell := + childHL (childLH (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `0113` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0113 : AngleCell := + childHH (childLH (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `0120` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0120 : AngleCell := + childLL (childHL (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `0121` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0121 : AngleCell := + childLH (childHL (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `0122` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0122 : AngleCell := + childHL (childHL (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `0123` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0123 : AngleCell := + childHH (childHL (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `0130` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0130 : AngleCell := + childLL (childHH (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `0131` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0131 : AngleCell := + childLH (childHH (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `0132` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0132 : AngleCell := + childHL (childHH (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `0133` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0133 : AngleCell := + childHH (childHH (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `1000` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1000 : AngleCell := + childLL (childLL (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1001` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1001 : AngleCell := + childLH (childLL (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1002` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1002 : AngleCell := + childHL (childLL (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1003` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1003 : AngleCell := + childHH (childLL (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1010 : AngleCell := + childLL (childLH (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1011 : AngleCell := + childLH (childLH (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1012` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1012 : AngleCell := + childHL (childLH (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1013` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1013 : AngleCell := + childHH (childLH (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1020` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1020 : AngleCell := + childLL (childHL (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1021` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1021 : AngleCell := + childLH (childHL (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1022` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1022 : AngleCell := + childHL (childHL (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1023` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1023 : AngleCell := + childHH (childHL (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1030` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1030 : AngleCell := + childLL (childHH (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1031` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1031 : AngleCell := + childLH (childHH (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1032` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1032 : AngleCell := + childHL (childHH (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1033` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1033 : AngleCell := + childHH (childHH (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1100 : AngleCell := + childLL (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1102` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1102 : AngleCell := + childHL (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1103` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1103 : AngleCell := + childHH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1111` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1112` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1112 : AngleCell := + childHL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1113` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1113 : AngleCell := + childHH (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1120` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1120 : AngleCell := + childLL (childHL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1121` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1121 : AngleCell := + childLH (childHL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1122` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1122 : AngleCell := + childHL (childHL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1123` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1123 : AngleCell := + childHH (childHL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1130` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1130 : AngleCell := + childLL (childHH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1131` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1131 : AngleCell := + childLH (childHH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1132` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1132 : AngleCell := + childHL (childHH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1133` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1133 : AngleCell := + childHH (childHH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `3221` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3221 : AngleCell := + childLH (childHL (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3222` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3222 : AngleCell := + childHL (childHL (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3223 : AngleCell := + childHH (childHL (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3310` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3310 : AngleCell := + childLL (childLH (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3311` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3311 : AngleCell := + childLH (childLH (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3313` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3313 : AngleCell := + childHH (childLH (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell0000))) + +/-- Subcell `00002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell0000))) + +/-- Subcell `00002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell0000))) + +/-- Subcell `00002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell0000))) + +/-- Subcell `00002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell0000))) + +/-- Subcell `00002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell0000))) + +/-- Subcell `00002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell0000))) + +/-- Subcell `00002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell0000))) + +/-- Subcell `00002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell0000))) + +/-- Subcell `00002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell0000))) + +/-- Subcell `00002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell0000))) + +/-- Subcell `00002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell0000))) + +/-- Subcell `00002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell0000))) + +/-- Subcell `00002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell0000))) + +/-- Subcell `00002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell0000))) + +/-- Subcell `00002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell0000))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell0000))) + +/-- Subcell `00003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell0000))) + +/-- Subcell `00003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell0000))) + +/-- Subcell `00003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell0000))) + +/-- Subcell `00003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell0000))) + +/-- Subcell `00003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell0000))) + +/-- Subcell `00003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell0000))) + +/-- Subcell `00003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell0000))) + +/-- Subcell `00003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell0000))) + +end GerverSofa.PartE.CertificateCells0d991a929b + +namespace GerverSofa.PartE.CertificateCells802ef10e9d + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `000023102000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00002310))) + +/-- Subcell `000023102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00002310))) + +/-- Subcell `000023103002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00002310))) + +/-- Subcell `000023103133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023103133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00002310))) + +/-- Subcell `000023110220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023110220 : AngleCell := + childLL (childHL (childHL (childLL thetaAboveCell00002311))) + +/-- Subcell `000023110221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023110221 : AngleCell := + childLH (childHL (childHL (childLL thetaAboveCell00002311))) + +/-- Subcell `000023110222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023110222 : AngleCell := + childHL (childHL (childHL (childLL thetaAboveCell00002311))) + +/-- Subcell `000023110223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023110223 : AngleCell := + childHH (childHL (childHL (childLL thetaAboveCell00002311))) + +/-- Subcell `000023110230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023110230 : AngleCell := + childLL (childHH (childHL (childLL thetaAboveCell00002311))) + +/-- Subcell `000023110231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023110231 : AngleCell := + childLH (childHH (childHL (childLL thetaAboveCell00002311))) + +/-- Subcell `000023110232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023110232 : AngleCell := + childHL (childHH (childHL (childLL thetaAboveCell00002311))) + +/-- Subcell `000023110233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023110233 : AngleCell := + childHH (childHH (childHL (childLL thetaAboveCell00002311))) + +/-- Subcell `000023110320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023110320 : AngleCell := + childLL (childHL (childHH (childLL thetaAboveCell00002311))) + +/-- Subcell `000023110321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023110321 : AngleCell := + childLH (childHL (childHH (childLL thetaAboveCell00002311))) + +/-- Subcell `000023110322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023110322 : AngleCell := + childHL (childHL (childHH (childLL thetaAboveCell00002311))) + +/-- Subcell `000023110323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023110323 : AngleCell := + childHH (childHL (childHH (childLL thetaAboveCell00002311))) + +/-- Subcell `000023110330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023110330 : AngleCell := + childLL (childHH (childHH (childLL thetaAboveCell00002311))) + +/-- Subcell `000023110331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023110331 : AngleCell := + childLH (childHH (childHH (childLL thetaAboveCell00002311))) + +/-- Subcell `000023110332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023110332 : AngleCell := + childHL (childHH (childHH (childLL thetaAboveCell00002311))) + +/-- Subcell `000023110333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023110333 : AngleCell := + childHH (childHH (childHH (childLL thetaAboveCell00002311))) + +/-- Subcell `000023111220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023111220 : AngleCell := + childLL (childHL (childHL (childLH thetaAboveCell00002311))) + +/-- Subcell `000023111221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023111221 : AngleCell := + childLH (childHL (childHL (childLH thetaAboveCell00002311))) + +/-- Subcell `000023111222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023111222 : AngleCell := + childHL (childHL (childHL (childLH thetaAboveCell00002311))) + +/-- Subcell `000023111223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023111223 : AngleCell := + childHH (childHL (childHL (childLH thetaAboveCell00002311))) + +/-- Subcell `000023111230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023111230 : AngleCell := + childLL (childHH (childHL (childLH thetaAboveCell00002311))) + +/-- Subcell `000023111231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023111231 : AngleCell := + childLH (childHH (childHL (childLH thetaAboveCell00002311))) + +/-- Subcell `000023111232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023111232 : AngleCell := + childHL (childHH (childHL (childLH thetaAboveCell00002311))) + +/-- Subcell `000023111233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023111233 : AngleCell := + childHH (childHH (childHL (childLH thetaAboveCell00002311))) + +/-- Subcell `000023111320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023111320 : AngleCell := + childLL (childHL (childHH (childLH thetaAboveCell00002311))) + +/-- Subcell `000023111321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023111321 : AngleCell := + childLH (childHL (childHH (childLH thetaAboveCell00002311))) + +/-- Subcell `000023111322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023111322 : AngleCell := + childHL (childHL (childHH (childLH thetaAboveCell00002311))) + +/-- Subcell `000023111323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023111323 : AngleCell := + childHH (childHL (childHH (childLH thetaAboveCell00002311))) + +/-- Subcell `000023111330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023111330 : AngleCell := + childLL (childHH (childHH (childLH thetaAboveCell00002311))) + +/-- Subcell `000023111331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023111331 : AngleCell := + childLH (childHH (childHH (childLH thetaAboveCell00002311))) + +/-- Subcell `000023111332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023111332 : AngleCell := + childHL (childHH (childHH (childLH thetaAboveCell00002311))) + +/-- Subcell `000023111333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023111333 : AngleCell := + childHH (childHH (childHH (childLH thetaAboveCell00002311))) + +/-- Subcell `000023112002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00002311))) + +/-- Subcell `000023112133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023112133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00002311))) + +/-- Subcell `000023113002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00002311))) + +/-- Subcell `000023113133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023113133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00002311))) + +/-- Subcell `000032000220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032000220 : AngleCell := + childLL (childHL (childHL (childLL thetaAboveCell00003200))) + +/-- Subcell `000032000221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032000221 : AngleCell := + childLH (childHL (childHL (childLL thetaAboveCell00003200))) + +/-- Subcell `000032000222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032000222 : AngleCell := + childHL (childHL (childHL (childLL thetaAboveCell00003200))) + +/-- Subcell `000032000223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032000223 : AngleCell := + childHH (childHL (childHL (childLL thetaAboveCell00003200))) + +/-- Subcell `000032000230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032000230 : AngleCell := + childLL (childHH (childHL (childLL thetaAboveCell00003200))) + +/-- Subcell `000032000231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032000231 : AngleCell := + childLH (childHH (childHL (childLL thetaAboveCell00003200))) + +/-- Subcell `000032000232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032000232 : AngleCell := + childHL (childHH (childHL (childLL thetaAboveCell00003200))) + +/-- Subcell `000032000233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032000233 : AngleCell := + childHH (childHH (childHL (childLL thetaAboveCell00003200))) + +/-- Subcell `000032000320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032000320 : AngleCell := + childLL (childHL (childHH (childLL thetaAboveCell00003200))) + +/-- Subcell `000032000321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032000321 : AngleCell := + childLH (childHL (childHH (childLL thetaAboveCell00003200))) + +/-- Subcell `000032000322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032000322 : AngleCell := + childHL (childHL (childHH (childLL thetaAboveCell00003200))) + +/-- Subcell `000032000323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032000323 : AngleCell := + childHH (childHL (childHH (childLL thetaAboveCell00003200))) + +/-- Subcell `000032000330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032000330 : AngleCell := + childLL (childHH (childHH (childLL thetaAboveCell00003200))) + +/-- Subcell `000032000331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032000331 : AngleCell := + childLH (childHH (childHH (childLL thetaAboveCell00003200))) + +/-- Subcell `000032000332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032000332 : AngleCell := + childHL (childHH (childHH (childLL thetaAboveCell00003200))) + +/-- Subcell `000032000333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032000333 : AngleCell := + childHH (childHH (childHH (childLL thetaAboveCell00003200))) + +/-- Subcell `000032001220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032001220 : AngleCell := + childLL (childHL (childHL (childLH thetaAboveCell00003200))) + +/-- Subcell `000032001221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032001221 : AngleCell := + childLH (childHL (childHL (childLH thetaAboveCell00003200))) + +/-- Subcell `000032001222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032001222 : AngleCell := + childHL (childHL (childHL (childLH thetaAboveCell00003200))) + +/-- Subcell `000032001223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032001223 : AngleCell := + childHH (childHL (childHL (childLH thetaAboveCell00003200))) + +/-- Subcell `000032002002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00003200))) + +/-- Subcell `000032002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00003200))) + +/-- Subcell `000032003000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00003200))) + +/-- Subcell `000032003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00003200))) + +end GerverSofa.PartE.CertificateCells802ef10e9d + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC5TerminalBatchT000001`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0d991a929b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0d991a929b + +open CertificateCells0d991a929b + +theorem e24KC2PhiAboveLeaf00000 : + adaptiveCoverCheck 11 (childLL phiAboveCell0000) = true := by + have h : physicallyIrrelevant (childLL phiAboveCell0000) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 11 (childLL phiAboveCell0000) h +theorem e24KC2PhiAboveLeaf00001 : + adaptiveCoverCheck 11 (childLH phiAboveCell0000) = true := by + have h : ((childLH phiAboveCell0000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH phiAboveCell0000) h + +theorem e24KC2PhiAboveLeaf00002 : + adaptiveCoverCheck 11 (childHL phiAboveCell0000) = true := by + have h : physicallyIrrelevant (childHL phiAboveCell0000) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 11 (childHL phiAboveCell0000) h + +theorem e24KC2PhiAboveLeaf00003 : + adaptiveCoverCheck 11 (childHH phiAboveCell0000) = true := by + have h : physicallyIrrelevant (childHH phiAboveCell0000) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 11 (childHH phiAboveCell0000) h +theorem e24KC2PhiAboveLeaf00010 : + adaptiveCoverCheck 11 (childLL phiAboveCell0001) = true := by + have h : ((childLL phiAboveCell0001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL phiAboveCell0001) h +theorem e24KC2PhiAboveLeaf00011 : + adaptiveCoverCheck 11 (childLH phiAboveCell0001) = true := by + have h : ((childLH phiAboveCell0001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH phiAboveCell0001) h +theorem e24KC2PhiAboveLeaf00012 : + adaptiveCoverCheck 11 (childHL phiAboveCell0001) = true := by + have h : ((childHL phiAboveCell0001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell0001) h +theorem e24KC2PhiAboveLeaf00013 : + adaptiveCoverCheck 11 (childHH phiAboveCell0001) = true := by + have h : ((childHH phiAboveCell0001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH phiAboveCell0001) h + +theorem e24KC2PhiAboveLeaf0002 : + adaptiveCoverCheck 12 phiAboveCell0002 = true := by + have h : physicallyIrrelevant phiAboveCell0002 = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 12 phiAboveCell0002 h +theorem e24KC2PhiAboveLeaf0003 : + adaptiveCoverCheck 12 phiAboveCell0003 = true := by + have h : (phiAboveCell0003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell0003 h +theorem e24KC2PhiAboveLeaf00100 : + adaptiveCoverCheck 11 (childLL phiAboveCell0010) = true := by + have h : ((childLL phiAboveCell0010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL phiAboveCell0010) h +theorem e24KC2PhiAboveLeaf00101 : + adaptiveCoverCheck 11 (childLH phiAboveCell0010) = true := by + have h : ((childLH phiAboveCell0010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH phiAboveCell0010) h +theorem e24KC2PhiAboveLeaf00102 : + adaptiveCoverCheck 11 (childHL phiAboveCell0010) = true := by + have h : ((childHL phiAboveCell0010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell0010) h +theorem e24KC2PhiAboveLeaf00103 : + adaptiveCoverCheck 11 (childHH phiAboveCell0010) = true := by + have h : ((childHH phiAboveCell0010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH phiAboveCell0010) h +theorem e24KC2PhiAboveLeaf00110 : + adaptiveCoverCheck 11 (childLL phiAboveCell0011) = true := by + have h : ((childLL phiAboveCell0011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL phiAboveCell0011) h +theorem e24KC2PhiAboveLeaf00111 : + adaptiveCoverCheck 11 (childLH phiAboveCell0011) = true := by + have h : ((childLH phiAboveCell0011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH phiAboveCell0011) h +theorem e24KC2PhiAboveLeaf00112 : + adaptiveCoverCheck 11 (childHL phiAboveCell0011) = true := by + have h : ((childHL phiAboveCell0011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell0011) h +theorem e24KC2PhiAboveLeaf00113 : + adaptiveCoverCheck 11 (childHH phiAboveCell0011) = true := by + have h : ((childHH phiAboveCell0011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH phiAboveCell0011) h +theorem e24KC2PhiAboveLeaf0012 : + adaptiveCoverCheck 12 phiAboveCell0012 = true := by + have h : (phiAboveCell0012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell0012 h +theorem e24KC2PhiAboveLeaf0013 : + adaptiveCoverCheck 12 phiAboveCell0013 = true := by + have h : (phiAboveCell0013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell0013 h + +theorem e24KC2PhiAboveLeaf002 : + adaptiveCoverCheck 13 (childHL (childLL (childLL e24PhiAboveRoot))) = true := by + have h : physicallyIrrelevant (childHL (childLL (childLL e24PhiAboveRoot))) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 13 (childHL (childLL (childLL + e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf0030 : + adaptiveCoverCheck 12 phiAboveCell0030 = true := by + have h : (phiAboveCell0030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell0030 h +theorem e24KC2PhiAboveLeaf0031 : + adaptiveCoverCheck 12 phiAboveCell0031 = true := by + have h : (phiAboveCell0031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell0031 h + +theorem e24KC2PhiAboveLeaf0032 : + adaptiveCoverCheck 12 phiAboveCell0032 = true := by + have h : physicallyIrrelevant phiAboveCell0032 = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 12 phiAboveCell0032 h +theorem e24KC2PhiAboveLeaf0033 : + adaptiveCoverCheck 12 phiAboveCell0033 = true := by + have h : (phiAboveCell0033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell0033 h +theorem e24KC2PhiAboveLeaf01000 : + adaptiveCoverCheck 11 (childLL phiAboveCell0100) = true := by + have h : ((childLL phiAboveCell0100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL phiAboveCell0100) h +theorem e24KC2PhiAboveLeaf01001 : + adaptiveCoverCheck 11 (childLH phiAboveCell0100) = true := by + have h : ((childLH phiAboveCell0100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH phiAboveCell0100) h +theorem e24KC2PhiAboveLeaf01002 : + adaptiveCoverCheck 11 (childHL phiAboveCell0100) = true := by + have h : ((childHL phiAboveCell0100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell0100) h +theorem e24KC2PhiAboveLeaf01003 : + adaptiveCoverCheck 11 (childHH phiAboveCell0100) = true := by + have h : ((childHH phiAboveCell0100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH phiAboveCell0100) h +theorem e24KC2PhiAboveLeaf01010 : + adaptiveCoverCheck 11 (childLL phiAboveCell0101) = true := by + have h : ((childLL phiAboveCell0101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL phiAboveCell0101) h +theorem e24KC2PhiAboveLeaf010110 : + adaptiveCoverCheck 10 (childLL (childLH phiAboveCell0101)) = true := by + have h : ((childLL (childLH phiAboveCell0101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL (childLH phiAboveCell0101)) h +theorem e24KC2PhiAboveLeaf010111 : + adaptiveCoverCheck 10 (childLH (childLH phiAboveCell0101)) = true := by + have h : ((childLH (childLH phiAboveCell0101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH (childLH phiAboveCell0101)) h +theorem e24KC2PhiAboveLeaf010112 : + adaptiveCoverCheck 10 (childHL (childLH phiAboveCell0101)) = true := by + have h : ((childHL (childLH phiAboveCell0101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childLH phiAboveCell0101)) h +theorem e24KC2PhiAboveLeaf010113 : + adaptiveCoverCheck 10 (childHH (childLH phiAboveCell0101)) = true := by + have h : ((childHH (childLH phiAboveCell0101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childLH phiAboveCell0101)) h +theorem e24KC2PhiAboveLeaf01012 : + adaptiveCoverCheck 11 (childHL phiAboveCell0101) = true := by + have h : ((childHL phiAboveCell0101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell0101) h +theorem e24KC2PhiAboveLeaf01013 : + adaptiveCoverCheck 11 (childHH phiAboveCell0101) = true := by + have h : ((childHH phiAboveCell0101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH phiAboveCell0101) h +theorem e24KC2PhiAboveLeaf0102 : + adaptiveCoverCheck 12 phiAboveCell0102 = true := by + have h : (phiAboveCell0102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell0102 h +theorem e24KC2PhiAboveLeaf0103 : + adaptiveCoverCheck 12 phiAboveCell0103 = true := by + have h : (phiAboveCell0103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell0103 h +theorem e24KC2PhiAboveLeaf011000 : + adaptiveCoverCheck 10 (childLL (childLL phiAboveCell0110)) = true := by + have h : ((childLL (childLL phiAboveCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL (childLL phiAboveCell0110)) h +theorem e24KC2PhiAboveLeaf011001 : + adaptiveCoverCheck 10 (childLH (childLL phiAboveCell0110)) = true := by + have h : ((childLH (childLL phiAboveCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH (childLL phiAboveCell0110)) h +theorem e24KC2PhiAboveLeaf011002 : + adaptiveCoverCheck 10 (childHL (childLL phiAboveCell0110)) = true := by + have h : ((childHL (childLL phiAboveCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childLL phiAboveCell0110)) h +theorem e24KC2PhiAboveLeaf011003 : + adaptiveCoverCheck 10 (childHH (childLL phiAboveCell0110)) = true := by + have h : ((childHH (childLL phiAboveCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childLL phiAboveCell0110)) h +theorem e24KC2PhiAboveLeaf011010 : + adaptiveCoverCheck 10 (childLL (childLH phiAboveCell0110)) = true := by + have h : ((childLL (childLH phiAboveCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL (childLH phiAboveCell0110)) h +theorem e24KC2PhiAboveLeaf011011 : + adaptiveCoverCheck 10 (childLH (childLH phiAboveCell0110)) = true := by + have h : ((childLH (childLH phiAboveCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH (childLH phiAboveCell0110)) h +theorem e24KC2PhiAboveLeaf011012 : + adaptiveCoverCheck 10 (childHL (childLH phiAboveCell0110)) = true := by + have h : ((childHL (childLH phiAboveCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childLH phiAboveCell0110)) h +theorem e24KC2PhiAboveLeaf011013 : + adaptiveCoverCheck 10 (childHH (childLH phiAboveCell0110)) = true := by + have h : ((childHH (childLH phiAboveCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childLH phiAboveCell0110)) h +theorem e24KC2PhiAboveLeaf01102 : + adaptiveCoverCheck 11 (childHL phiAboveCell0110) = true := by + have h : ((childHL phiAboveCell0110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell0110) h +theorem e24KC2PhiAboveLeaf01103 : + adaptiveCoverCheck 11 (childHH phiAboveCell0110) = true := by + have h : ((childHH phiAboveCell0110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH phiAboveCell0110) h +theorem e24KC2PhiAboveLeaf011100 : + adaptiveCoverCheck 10 (childLL (childLL phiAboveCell0111)) = true := by + have h : ((childLL (childLL phiAboveCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL (childLL phiAboveCell0111)) h +theorem e24KC2PhiAboveLeaf011101 : + adaptiveCoverCheck 10 (childLH (childLL phiAboveCell0111)) = true := by + have h : ((childLH (childLL phiAboveCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH (childLL phiAboveCell0111)) h +theorem e24KC2PhiAboveLeaf011102 : + adaptiveCoverCheck 10 (childHL (childLL phiAboveCell0111)) = true := by + have h : ((childHL (childLL phiAboveCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childLL phiAboveCell0111)) h +theorem e24KC2PhiAboveLeaf011103 : + adaptiveCoverCheck 10 (childHH (childLL phiAboveCell0111)) = true := by + have h : ((childHH (childLL phiAboveCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childLL phiAboveCell0111)) h +theorem e24KC2PhiAboveLeaf011110 : + adaptiveCoverCheck 10 (childLL (childLH phiAboveCell0111)) = true := by + have h : ((childLL (childLH phiAboveCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL (childLH phiAboveCell0111)) h +theorem e24KC2PhiAboveLeaf011111 : + adaptiveCoverCheck 10 (childLH (childLH phiAboveCell0111)) = true := by + have h : ((childLH (childLH phiAboveCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH (childLH phiAboveCell0111)) h +theorem e24KC2PhiAboveLeaf011112 : + adaptiveCoverCheck 10 (childHL (childLH phiAboveCell0111)) = true := by + have h : ((childHL (childLH phiAboveCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childLH phiAboveCell0111)) h +theorem e24KC2PhiAboveLeaf011113 : + adaptiveCoverCheck 10 (childHH (childLH phiAboveCell0111)) = true := by + have h : ((childHH (childLH phiAboveCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childLH phiAboveCell0111)) h +theorem e24KC2PhiAboveLeaf01112 : + adaptiveCoverCheck 11 (childHL phiAboveCell0111) = true := by + have h : ((childHL phiAboveCell0111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell0111) h +theorem e24KC2PhiAboveLeaf01113 : + adaptiveCoverCheck 11 (childHH phiAboveCell0111) = true := by + have h : ((childHH phiAboveCell0111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH phiAboveCell0111) h +theorem e24KC2PhiAboveLeaf0112 : + adaptiveCoverCheck 12 phiAboveCell0112 = true := by + have h : (phiAboveCell0112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell0112 h +theorem e24KC2PhiAboveLeaf0113 : + adaptiveCoverCheck 12 phiAboveCell0113 = true := by + have h : (phiAboveCell0113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell0113 h +theorem e24KC2PhiAboveLeaf0120 : + adaptiveCoverCheck 12 phiAboveCell0120 = true := by + have h : (phiAboveCell0120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell0120 h +theorem e24KC2PhiAboveLeaf0121 : + adaptiveCoverCheck 12 phiAboveCell0121 = true := by + have h : (phiAboveCell0121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell0121 h +theorem e24KC2PhiAboveLeaf0122 : + adaptiveCoverCheck 12 phiAboveCell0122 = true := by + have h : (phiAboveCell0122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell0122 h +theorem e24KC2PhiAboveLeaf0123 : + adaptiveCoverCheck 12 phiAboveCell0123 = true := by + have h : (phiAboveCell0123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell0123 h +theorem e24KC2PhiAboveLeaf0130 : + adaptiveCoverCheck 12 phiAboveCell0130 = true := by + have h : (phiAboveCell0130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell0130 h +theorem e24KC2PhiAboveLeaf0131 : + adaptiveCoverCheck 12 phiAboveCell0131 = true := by + have h : (phiAboveCell0131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell0131 h +theorem e24KC2PhiAboveLeaf0132 : + adaptiveCoverCheck 12 phiAboveCell0132 = true := by + have h : (phiAboveCell0132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell0132 h +theorem e24KC2PhiAboveLeaf0133 : + adaptiveCoverCheck 12 phiAboveCell0133 = true := by + have h : (phiAboveCell0133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell0133 h + +theorem e24KC2PhiAboveLeaf02 : + adaptiveCoverCheck 14 (childHL (childLL e24PhiAboveRoot)) = true := by + have h : physicallyIrrelevant (childHL (childLL e24PhiAboveRoot)) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 14 (childHL (childLL e24PhiAboveRoot)) h +theorem e24KC2PhiAboveLeaf030 : + adaptiveCoverCheck 13 (childLL (childHH (childLL e24PhiAboveRoot))) = true := by + have h : ((childLL (childHH (childLL e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childHH (childLL e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf031 : + adaptiveCoverCheck 13 (childLH (childHH (childLL e24PhiAboveRoot))) = true := by + have h : ((childLH (childHH (childLL e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childHH (childLL e24PhiAboveRoot))) h + +theorem e24KC2PhiAboveLeaf032 : + adaptiveCoverCheck 13 (childHL (childHH (childLL e24PhiAboveRoot))) = true := by + have h : physicallyIrrelevant (childHL (childHH (childLL e24PhiAboveRoot))) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 13 (childHL (childHH (childLL + e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf033 : + adaptiveCoverCheck 13 (childHH (childHH (childLL e24PhiAboveRoot))) = true := by + have h : ((childHH (childHH (childLL e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childHH (childLL e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf100000 : + adaptiveCoverCheck 10 (childLL (childLL phiAboveCell1000)) = true := by + have h : ((childLL (childLL phiAboveCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL (childLL phiAboveCell1000)) h +theorem e24KC2PhiAboveLeaf100001 : + adaptiveCoverCheck 10 (childLH (childLL phiAboveCell1000)) = true := by + have h : ((childLH (childLL phiAboveCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH (childLL phiAboveCell1000)) h +theorem e24KC2PhiAboveLeaf100002 : + adaptiveCoverCheck 10 (childHL (childLL phiAboveCell1000)) = true := by + have h : ((childHL (childLL phiAboveCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childLL phiAboveCell1000)) h +theorem e24KC2PhiAboveLeaf100003 : + adaptiveCoverCheck 10 (childHH (childLL phiAboveCell1000)) = true := by + have h : ((childHH (childLL phiAboveCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childLL phiAboveCell1000)) h +theorem e24KC2PhiAboveLeaf100010 : + adaptiveCoverCheck 10 (childLL (childLH phiAboveCell1000)) = true := by + have h : ((childLL (childLH phiAboveCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL (childLH phiAboveCell1000)) h +theorem e24KC2PhiAboveLeaf100011 : + adaptiveCoverCheck 10 (childLH (childLH phiAboveCell1000)) = true := by + have h : ((childLH (childLH phiAboveCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH (childLH phiAboveCell1000)) h +theorem e24KC2PhiAboveLeaf100012 : + adaptiveCoverCheck 10 (childHL (childLH phiAboveCell1000)) = true := by + have h : ((childHL (childLH phiAboveCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childLH phiAboveCell1000)) h +theorem e24KC2PhiAboveLeaf100013 : + adaptiveCoverCheck 10 (childHH (childLH phiAboveCell1000)) = true := by + have h : ((childHH (childLH phiAboveCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childLH phiAboveCell1000)) h +theorem e24KC2PhiAboveLeaf10002 : + adaptiveCoverCheck 11 (childHL phiAboveCell1000) = true := by + have h : ((childHL phiAboveCell1000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell1000) h +theorem e24KC2PhiAboveLeaf10003 : + adaptiveCoverCheck 11 (childHH phiAboveCell1000) = true := by + have h : ((childHH phiAboveCell1000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH phiAboveCell1000) h +theorem e24KC2PhiAboveLeaf100100 : + adaptiveCoverCheck 10 (childLL (childLL phiAboveCell1001)) = true := by + have h : ((childLL (childLL phiAboveCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL (childLL phiAboveCell1001)) h +theorem e24KC2PhiAboveLeaf1001010 : + adaptiveCoverCheck 9 (childLL (childLH (childLL phiAboveCell1001))) = true := by + have h : ((childLL (childLH (childLL phiAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH (childLL phiAboveCell1001))) h +theorem e24KC2PhiAboveLeaf1001011 : + adaptiveCoverCheck 9 (childLH (childLH (childLL phiAboveCell1001))) = true := by + have h : ((childLH (childLH (childLL phiAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH (childLL phiAboveCell1001))) h +theorem e24KC2PhiAboveLeaf1001012 : + adaptiveCoverCheck 9 (childHL (childLH (childLL phiAboveCell1001))) = true := by + have h : ((childHL (childLH (childLL phiAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH (childLL phiAboveCell1001))) h +theorem e24KC2PhiAboveLeaf1001013 : + adaptiveCoverCheck 9 (childHH (childLH (childLL phiAboveCell1001))) = true := by + have h : ((childHH (childLH (childLL phiAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH (childLL phiAboveCell1001))) h +theorem e24KC2PhiAboveLeaf100102 : + adaptiveCoverCheck 10 (childHL (childLL phiAboveCell1001)) = true := by + have h : ((childHL (childLL phiAboveCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childLL phiAboveCell1001)) h +theorem e24KC2PhiAboveLeaf100103 : + adaptiveCoverCheck 10 (childHH (childLL phiAboveCell1001)) = true := by + have h : ((childHH (childLL phiAboveCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childLL phiAboveCell1001)) h +theorem e24KC2PhiAboveLeaf1001100 : + adaptiveCoverCheck 9 (childLL (childLL (childLH phiAboveCell1001))) = true := by + have h : ((childLL (childLL (childLH phiAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL (childLH phiAboveCell1001))) h +theorem e24KC2PhiAboveLeaf1001101 : + adaptiveCoverCheck 9 (childLH (childLL (childLH phiAboveCell1001))) = true := by + have h : ((childLH (childLL (childLH phiAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL (childLH phiAboveCell1001))) h +theorem e24KC2PhiAboveLeaf1001102 : + adaptiveCoverCheck 9 (childHL (childLL (childLH phiAboveCell1001))) = true := by + have h : ((childHL (childLL (childLH phiAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL (childLH phiAboveCell1001))) h +theorem e24KC2PhiAboveLeaf1001103 : + adaptiveCoverCheck 9 (childHH (childLL (childLH phiAboveCell1001))) = true := by + have h : ((childHH (childLL (childLH phiAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL (childLH phiAboveCell1001))) h +theorem e24KC2PhiAboveLeaf1001110 : + adaptiveCoverCheck 9 (childLL (childLH (childLH phiAboveCell1001))) = true := by + have h : ((childLL (childLH (childLH phiAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH (childLH phiAboveCell1001))) h +theorem e24KC2PhiAboveLeaf1001111 : + adaptiveCoverCheck 9 (childLH (childLH (childLH phiAboveCell1001))) = true := by + have h : ((childLH (childLH (childLH phiAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH (childLH phiAboveCell1001))) h +theorem e24KC2PhiAboveLeaf1001112 : + adaptiveCoverCheck 9 (childHL (childLH (childLH phiAboveCell1001))) = true := by + have h : ((childHL (childLH (childLH phiAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH (childLH phiAboveCell1001))) h +theorem e24KC2PhiAboveLeaf1001113 : + adaptiveCoverCheck 9 (childHH (childLH (childLH phiAboveCell1001))) = true := by + have h : ((childHH (childLH (childLH phiAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH (childLH phiAboveCell1001))) h +theorem e24KC2PhiAboveLeaf100112 : + adaptiveCoverCheck 10 (childHL (childLH phiAboveCell1001)) = true := by + have h : ((childHL (childLH phiAboveCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childLH phiAboveCell1001)) h +theorem e24KC2PhiAboveLeaf100113 : + adaptiveCoverCheck 10 (childHH (childLH phiAboveCell1001)) = true := by + have h : ((childHH (childLH phiAboveCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childLH phiAboveCell1001)) h +theorem e24KC2PhiAboveLeaf10012 : + adaptiveCoverCheck 11 (childHL phiAboveCell1001) = true := by + have h : ((childHL phiAboveCell1001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell1001) h +theorem e24KC2PhiAboveLeaf10013 : + adaptiveCoverCheck 11 (childHH phiAboveCell1001) = true := by + have h : ((childHH phiAboveCell1001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH phiAboveCell1001) h +theorem e24KC2PhiAboveLeaf10020 : + adaptiveCoverCheck 11 (childLL phiAboveCell1002) = true := by + have h : ((childLL phiAboveCell1002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL phiAboveCell1002) h +theorem e24KC2PhiAboveLeaf10021 : + adaptiveCoverCheck 11 (childLH phiAboveCell1002) = true := by + have h : ((childLH phiAboveCell1002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH phiAboveCell1002) h +theorem e24KC2PhiAboveLeaf10022 : + adaptiveCoverCheck 11 (childHL phiAboveCell1002) = true := by + have h : ((childHL phiAboveCell1002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell1002) h +theorem e24KC2PhiAboveLeaf10023 : + adaptiveCoverCheck 11 (childHH phiAboveCell1002) = true := by + have h : ((childHH phiAboveCell1002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH phiAboveCell1002) h +theorem e24KC2PhiAboveLeaf10030 : + adaptiveCoverCheck 11 (childLL phiAboveCell1003) = true := by + have h : ((childLL phiAboveCell1003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL phiAboveCell1003) h +theorem e24KC2PhiAboveLeaf10031 : + adaptiveCoverCheck 11 (childLH phiAboveCell1003) = true := by + have h : ((childLH phiAboveCell1003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH phiAboveCell1003) h +theorem e24KC2PhiAboveLeaf10032 : + adaptiveCoverCheck 11 (childHL phiAboveCell1003) = true := by + have h : ((childHL phiAboveCell1003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell1003) h +theorem e24KC2PhiAboveLeaf10033 : + adaptiveCoverCheck 11 (childHH phiAboveCell1003) = true := by + have h : ((childHH phiAboveCell1003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH phiAboveCell1003) h +theorem e24KC2PhiAboveLeaf1010000 : + adaptiveCoverCheck 9 (childLL (childLL (childLL phiAboveCell1010))) = true := by + have h : ((childLL (childLL (childLL phiAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL (childLL phiAboveCell1010))) h +theorem e24KC2PhiAboveLeaf1010001 : + adaptiveCoverCheck 9 (childLH (childLL (childLL phiAboveCell1010))) = true := by + have h : ((childLH (childLL (childLL phiAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL (childLL phiAboveCell1010))) h +theorem e24KC2PhiAboveLeaf1010002 : + adaptiveCoverCheck 9 (childHL (childLL (childLL phiAboveCell1010))) = true := by + have h : ((childHL (childLL (childLL phiAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL (childLL phiAboveCell1010))) h +theorem e24KC2PhiAboveLeaf1010003 : + adaptiveCoverCheck 9 (childHH (childLL (childLL phiAboveCell1010))) = true := by + have h : ((childHH (childLL (childLL phiAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL (childLL phiAboveCell1010))) h +theorem e24KC2PhiAboveLeaf1010010 : + adaptiveCoverCheck 9 (childLL (childLH (childLL phiAboveCell1010))) = true := by + have h : ((childLL (childLH (childLL phiAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH (childLL phiAboveCell1010))) h +theorem e24KC2PhiAboveLeaf1010011 : + adaptiveCoverCheck 9 (childLH (childLH (childLL phiAboveCell1010))) = true := by + have h : ((childLH (childLH (childLL phiAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH (childLL phiAboveCell1010))) h +theorem e24KC2PhiAboveLeaf1010012 : + adaptiveCoverCheck 9 (childHL (childLH (childLL phiAboveCell1010))) = true := by + have h : ((childHL (childLH (childLL phiAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH (childLL phiAboveCell1010))) h +theorem e24KC2PhiAboveLeaf1010013 : + adaptiveCoverCheck 9 (childHH (childLH (childLL phiAboveCell1010))) = true := by + have h : ((childHH (childLH (childLL phiAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH (childLL phiAboveCell1010))) h +theorem e24KC2PhiAboveLeaf101002 : + adaptiveCoverCheck 10 (childHL (childLL phiAboveCell1010)) = true := by + have h : ((childHL (childLL phiAboveCell1010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childLL phiAboveCell1010)) h +theorem e24KC2PhiAboveLeaf101003 : + adaptiveCoverCheck 10 (childHH (childLL phiAboveCell1010)) = true := by + have h : ((childHH (childLL phiAboveCell1010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childLL phiAboveCell1010)) h +theorem e24KC2PhiAboveLeaf1010100 : + adaptiveCoverCheck 9 (childLL (childLL (childLH phiAboveCell1010))) = true := by + have h : ((childLL (childLL (childLH phiAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL (childLH phiAboveCell1010))) h +theorem e24KC2PhiAboveLeaf1010101 : + adaptiveCoverCheck 9 (childLH (childLL (childLH phiAboveCell1010))) = true := by + have h : ((childLH (childLL (childLH phiAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL (childLH phiAboveCell1010))) h +theorem e24KC2PhiAboveLeaf1010102 : + adaptiveCoverCheck 9 (childHL (childLL (childLH phiAboveCell1010))) = true := by + have h : ((childHL (childLL (childLH phiAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL (childLH phiAboveCell1010))) h +theorem e24KC2PhiAboveLeaf1010103 : + adaptiveCoverCheck 9 (childHH (childLL (childLH phiAboveCell1010))) = true := by + have h : ((childHH (childLL (childLH phiAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL (childLH phiAboveCell1010))) h +theorem e24KC2PhiAboveLeaf1010110 : + adaptiveCoverCheck 9 (childLL (childLH (childLH phiAboveCell1010))) = true := by + have h : ((childLL (childLH (childLH phiAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH (childLH phiAboveCell1010))) h +theorem e24KC2PhiAboveLeaf1010111 : + adaptiveCoverCheck 9 (childLH (childLH (childLH phiAboveCell1010))) = true := by + have h : ((childLH (childLH (childLH phiAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH (childLH phiAboveCell1010))) h +theorem e24KC2PhiAboveLeaf1010112 : + adaptiveCoverCheck 9 (childHL (childLH (childLH phiAboveCell1010))) = true := by + have h : ((childHL (childLH (childLH phiAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH (childLH phiAboveCell1010))) h +theorem e24KC2PhiAboveLeaf1010113 : + adaptiveCoverCheck 9 (childHH (childLH (childLH phiAboveCell1010))) = true := by + have h : ((childHH (childLH (childLH phiAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH (childLH phiAboveCell1010))) h +theorem e24KC2PhiAboveLeaf101012 : + adaptiveCoverCheck 10 (childHL (childLH phiAboveCell1010)) = true := by + have h : ((childHL (childLH phiAboveCell1010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childLH phiAboveCell1010)) h +theorem e24KC2PhiAboveLeaf101013 : + adaptiveCoverCheck 10 (childHH (childLH phiAboveCell1010)) = true := by + have h : ((childHH (childLH phiAboveCell1010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childLH phiAboveCell1010)) h +theorem e24KC2PhiAboveLeaf10102 : + adaptiveCoverCheck 11 (childHL phiAboveCell1010) = true := by + have h : ((childHL phiAboveCell1010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell1010) h +theorem e24KC2PhiAboveLeaf10103 : + adaptiveCoverCheck 11 (childHH phiAboveCell1010) = true := by + have h : ((childHH phiAboveCell1010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH phiAboveCell1010) h +theorem e24KC2PhiAboveLeaf1011000 : + adaptiveCoverCheck 9 (childLL (childLL (childLL phiAboveCell1011))) = true := by + have h : ((childLL (childLL (childLL phiAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL (childLL phiAboveCell1011))) h +theorem e24KC2PhiAboveLeaf1011001 : + adaptiveCoverCheck 9 (childLH (childLL (childLL phiAboveCell1011))) = true := by + have h : ((childLH (childLL (childLL phiAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL (childLL phiAboveCell1011))) h +theorem e24KC2PhiAboveLeaf1011002 : + adaptiveCoverCheck 9 (childHL (childLL (childLL phiAboveCell1011))) = true := by + have h : ((childHL (childLL (childLL phiAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL (childLL phiAboveCell1011))) h +theorem e24KC2PhiAboveLeaf1011003 : + adaptiveCoverCheck 9 (childHH (childLL (childLL phiAboveCell1011))) = true := by + have h : ((childHH (childLL (childLL phiAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL (childLL phiAboveCell1011))) h +theorem e24KC2PhiAboveLeaf1011010 : + adaptiveCoverCheck 9 (childLL (childLH (childLL phiAboveCell1011))) = true := by + have h : ((childLL (childLH (childLL phiAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH (childLL phiAboveCell1011))) h +theorem e24KC2PhiAboveLeaf1011012 : + adaptiveCoverCheck 9 (childHL (childLH (childLL phiAboveCell1011))) = true := by + have h : ((childHL (childLH (childLL phiAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH (childLL phiAboveCell1011))) h +theorem e24KC2PhiAboveLeaf1011013 : + adaptiveCoverCheck 9 (childHH (childLH (childLL phiAboveCell1011))) = true := by + have h : ((childHH (childLH (childLL phiAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH (childLL phiAboveCell1011))) h +theorem e24KC2PhiAboveLeaf101102 : + adaptiveCoverCheck 10 (childHL (childLL phiAboveCell1011)) = true := by + have h : ((childHL (childLL phiAboveCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childLL phiAboveCell1011)) h +theorem e24KC2PhiAboveLeaf101103 : + adaptiveCoverCheck 10 (childHH (childLL phiAboveCell1011)) = true := by + have h : ((childHH (childLL phiAboveCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childLL phiAboveCell1011)) h +theorem e24KC2PhiAboveLeaf1011102 : + adaptiveCoverCheck 9 (childHL (childLL (childLH phiAboveCell1011))) = true := by + have h : ((childHL (childLL (childLH phiAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL (childLH phiAboveCell1011))) h +theorem e24KC2PhiAboveLeaf1011103 : + adaptiveCoverCheck 9 (childHH (childLL (childLH phiAboveCell1011))) = true := by + have h : ((childHH (childLL (childLH phiAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL (childLH phiAboveCell1011))) h +theorem e24KC2PhiAboveLeaf1011112 : + adaptiveCoverCheck 9 (childHL (childLH (childLH phiAboveCell1011))) = true := by + have h : ((childHL (childLH (childLH phiAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH (childLH phiAboveCell1011))) h +theorem e24KC2PhiAboveLeaf1011113 : + adaptiveCoverCheck 9 (childHH (childLH (childLH phiAboveCell1011))) = true := by + have h : ((childHH (childLH (childLH phiAboveCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH (childLH phiAboveCell1011))) h +theorem e24KC2PhiAboveLeaf101112 : + adaptiveCoverCheck 10 (childHL (childLH phiAboveCell1011)) = true := by + have h : ((childHL (childLH phiAboveCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childLH phiAboveCell1011)) h +theorem e24KC2PhiAboveLeaf101113 : + adaptiveCoverCheck 10 (childHH (childLH phiAboveCell1011)) = true := by + have h : ((childHH (childLH phiAboveCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childLH phiAboveCell1011)) h +theorem e24KC2PhiAboveLeaf10112 : + adaptiveCoverCheck 11 (childHL phiAboveCell1011) = true := by + have h : ((childHL phiAboveCell1011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell1011) h +theorem e24KC2PhiAboveLeaf101130 : + adaptiveCoverCheck 10 (childLL (childHH phiAboveCell1011)) = true := by + have h : ((childLL (childHH phiAboveCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL (childHH phiAboveCell1011)) h +theorem e24KC2PhiAboveLeaf101131 : + adaptiveCoverCheck 10 (childLH (childHH phiAboveCell1011)) = true := by + have h : ((childLH (childHH phiAboveCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH (childHH phiAboveCell1011)) h +theorem e24KC2PhiAboveLeaf101132 : + adaptiveCoverCheck 10 (childHL (childHH phiAboveCell1011)) = true := by + have h : ((childHL (childHH phiAboveCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childHH phiAboveCell1011)) h +theorem e24KC2PhiAboveLeaf101133 : + adaptiveCoverCheck 10 (childHH (childHH phiAboveCell1011)) = true := by + have h : ((childHH (childHH phiAboveCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childHH phiAboveCell1011)) h +theorem e24KC2PhiAboveLeaf10120 : + adaptiveCoverCheck 11 (childLL phiAboveCell1012) = true := by + have h : ((childLL phiAboveCell1012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL phiAboveCell1012) h +theorem e24KC2PhiAboveLeaf10121 : + adaptiveCoverCheck 11 (childLH phiAboveCell1012) = true := by + have h : ((childLH phiAboveCell1012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH phiAboveCell1012) h +theorem e24KC2PhiAboveLeaf10122 : + adaptiveCoverCheck 11 (childHL phiAboveCell1012) = true := by + have h : ((childHL phiAboveCell1012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell1012) h +theorem e24KC2PhiAboveLeaf10123 : + adaptiveCoverCheck 11 (childHH phiAboveCell1012) = true := by + have h : ((childHH phiAboveCell1012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH phiAboveCell1012) h +theorem e24KC2PhiAboveLeaf10130 : + adaptiveCoverCheck 11 (childLL phiAboveCell1013) = true := by + have h : ((childLL phiAboveCell1013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL phiAboveCell1013) h +theorem e24KC2PhiAboveLeaf10131 : + adaptiveCoverCheck 11 (childLH phiAboveCell1013) = true := by + have h : ((childLH phiAboveCell1013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH phiAboveCell1013) h +theorem e24KC2PhiAboveLeaf10132 : + adaptiveCoverCheck 11 (childHL phiAboveCell1013) = true := by + have h : ((childHL phiAboveCell1013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell1013) h +theorem e24KC2PhiAboveLeaf10133 : + adaptiveCoverCheck 11 (childHH phiAboveCell1013) = true := by + have h : ((childHH phiAboveCell1013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH phiAboveCell1013) h +theorem e24KC2PhiAboveLeaf1020 : + adaptiveCoverCheck 12 phiAboveCell1020 = true := by + have h : (phiAboveCell1020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell1020 h +theorem e24KC2PhiAboveLeaf1021 : + adaptiveCoverCheck 12 phiAboveCell1021 = true := by + have h : (phiAboveCell1021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell1021 h +theorem e24KC2PhiAboveLeaf1022 : + adaptiveCoverCheck 12 phiAboveCell1022 = true := by + have h : (phiAboveCell1022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell1022 h +theorem e24KC2PhiAboveLeaf1023 : + adaptiveCoverCheck 12 phiAboveCell1023 = true := by + have h : (phiAboveCell1023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell1023 h +theorem e24KC2PhiAboveLeaf1030 : + adaptiveCoverCheck 12 phiAboveCell1030 = true := by + have h : (phiAboveCell1030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell1030 h +theorem e24KC2PhiAboveLeaf1031 : + adaptiveCoverCheck 12 phiAboveCell1031 = true := by + have h : (phiAboveCell1031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell1031 h +theorem e24KC2PhiAboveLeaf1032 : + adaptiveCoverCheck 12 phiAboveCell1032 = true := by + have h : (phiAboveCell1032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell1032 h +theorem e24KC2PhiAboveLeaf1033 : + adaptiveCoverCheck 12 phiAboveCell1033 = true := by + have h : (phiAboveCell1033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell1033 h +theorem e24KC2PhiAboveLeaf1100002 : + adaptiveCoverCheck 9 (childHL (childLL (childLL phiAboveCell1100))) = true := by + have h : ((childHL (childLL (childLL phiAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL (childLL phiAboveCell1100))) h +theorem e24KC2PhiAboveLeaf1100003 : + adaptiveCoverCheck 9 (childHH (childLL (childLL phiAboveCell1100))) = true := by + have h : ((childHH (childLL (childLL phiAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL (childLL phiAboveCell1100))) h +theorem e24KC2PhiAboveLeaf1100012 : + adaptiveCoverCheck 9 (childHL (childLH (childLL phiAboveCell1100))) = true := by + have h : ((childHL (childLH (childLL phiAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH (childLL phiAboveCell1100))) h +theorem e24KC2PhiAboveLeaf1100013 : + adaptiveCoverCheck 9 (childHH (childLH (childLL phiAboveCell1100))) = true := by + have h : ((childHH (childLH (childLL phiAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH (childLL phiAboveCell1100))) h +theorem e24KC2PhiAboveLeaf110002 : + adaptiveCoverCheck 10 (childHL (childLL phiAboveCell1100)) = true := by + have h : ((childHL (childLL phiAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childLL phiAboveCell1100)) h +theorem e24KC2PhiAboveLeaf110003 : + adaptiveCoverCheck 10 (childHH (childLL phiAboveCell1100)) = true := by + have h : ((childHH (childLL phiAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childLL phiAboveCell1100)) h +theorem e24KC2PhiAboveLeaf1100102 : + adaptiveCoverCheck 9 (childHL (childLL (childLH phiAboveCell1100))) = true := by + have h : ((childHL (childLL (childLH phiAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL (childLH phiAboveCell1100))) h +theorem e24KC2PhiAboveLeaf1100103 : + adaptiveCoverCheck 9 (childHH (childLL (childLH phiAboveCell1100))) = true := by + have h : ((childHH (childLL (childLH phiAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL (childLH phiAboveCell1100))) h +theorem e24KC2PhiAboveLeaf1100112 : + adaptiveCoverCheck 9 (childHL (childLH (childLH phiAboveCell1100))) = true := by + have h : ((childHL (childLH (childLH phiAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH (childLH phiAboveCell1100))) h +theorem e24KC2PhiAboveLeaf1100113 : + adaptiveCoverCheck 9 (childHH (childLH (childLH phiAboveCell1100))) = true := by + have h : ((childHH (childLH (childLH phiAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH (childLH phiAboveCell1100))) h +theorem e24KC2PhiAboveLeaf110012 : + adaptiveCoverCheck 10 (childHL (childLH phiAboveCell1100)) = true := by + have h : ((childHL (childLH phiAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childLH phiAboveCell1100)) h +theorem e24KC2PhiAboveLeaf1100130 : + adaptiveCoverCheck 9 (childLL (childHH (childLH phiAboveCell1100))) = true := by + have h : ((childLL (childHH (childLH phiAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH (childLH phiAboveCell1100))) h +theorem e24KC2PhiAboveLeaf1100131 : + adaptiveCoverCheck 9 (childLH (childHH (childLH phiAboveCell1100))) = true := by + have h : ((childLH (childHH (childLH phiAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH (childLH phiAboveCell1100))) h +theorem e24KC2PhiAboveLeaf1100132 : + adaptiveCoverCheck 9 (childHL (childHH (childLH phiAboveCell1100))) = true := by + have h : ((childHL (childHH (childLH phiAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH (childLH phiAboveCell1100))) h +theorem e24KC2PhiAboveLeaf1100133 : + adaptiveCoverCheck 9 (childHH (childHH (childLH phiAboveCell1100))) = true := by + have h : ((childHH (childHH (childLH phiAboveCell1100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH (childLH phiAboveCell1100))) h +theorem e24KC2PhiAboveLeaf110020 : + adaptiveCoverCheck 10 (childLL (childHL phiAboveCell1100)) = true := by + have h : ((childLL (childHL phiAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL (childHL phiAboveCell1100)) h +theorem e24KC2PhiAboveLeaf110021 : + adaptiveCoverCheck 10 (childLH (childHL phiAboveCell1100)) = true := by + have h : ((childLH (childHL phiAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH (childHL phiAboveCell1100)) h +theorem e24KC2PhiAboveLeaf110022 : + adaptiveCoverCheck 10 (childHL (childHL phiAboveCell1100)) = true := by + have h : ((childHL (childHL phiAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childHL phiAboveCell1100)) h +theorem e24KC2PhiAboveLeaf110023 : + adaptiveCoverCheck 10 (childHH (childHL phiAboveCell1100)) = true := by + have h : ((childHH (childHL phiAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childHL phiAboveCell1100)) h +theorem e24KC2PhiAboveLeaf110030 : + adaptiveCoverCheck 10 (childLL (childHH phiAboveCell1100)) = true := by + have h : ((childLL (childHH phiAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL (childHH phiAboveCell1100)) h +theorem e24KC2PhiAboveLeaf110031 : + adaptiveCoverCheck 10 (childLH (childHH phiAboveCell1100)) = true := by + have h : ((childLH (childHH phiAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH (childHH phiAboveCell1100)) h +theorem e24KC2PhiAboveLeaf110032 : + adaptiveCoverCheck 10 (childHL (childHH phiAboveCell1100)) = true := by + have h : ((childHL (childHH phiAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childHH phiAboveCell1100)) h +theorem e24KC2PhiAboveLeaf110033 : + adaptiveCoverCheck 10 (childHH (childHH phiAboveCell1100)) = true := by + have h : ((childHH (childHH phiAboveCell1100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childHH phiAboveCell1100)) h +theorem e24KC2PhiAboveLeaf1101002 : + adaptiveCoverCheck 9 (childHL (childLL (childLL phiAboveCell1101))) = true := by + have h : ((childHL (childLL (childLL phiAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL (childLL phiAboveCell1101))) h +theorem e24KC2PhiAboveLeaf1101003 : + adaptiveCoverCheck 9 (childHH (childLL (childLL phiAboveCell1101))) = true := by + have h : ((childHH (childLL (childLL phiAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL (childLL phiAboveCell1101))) h +theorem e24KC2PhiAboveLeaf1101020 : + adaptiveCoverCheck 9 (childLL (childHL (childLL phiAboveCell1101))) = true := by + have h : ((childLL (childHL (childLL phiAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL (childLL phiAboveCell1101))) h +theorem e24KC2PhiAboveLeaf1101021 : + adaptiveCoverCheck 9 (childLH (childHL (childLL phiAboveCell1101))) = true := by + have h : ((childLH (childHL (childLL phiAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL (childLL phiAboveCell1101))) h +theorem e24KC2PhiAboveLeaf1101022 : + adaptiveCoverCheck 9 (childHL (childHL (childLL phiAboveCell1101))) = true := by + have h : ((childHL (childHL (childLL phiAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL (childLL phiAboveCell1101))) h +theorem e24KC2PhiAboveLeaf1101023 : + adaptiveCoverCheck 9 (childHH (childHL (childLL phiAboveCell1101))) = true := by + have h : ((childHH (childHL (childLL phiAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL (childLL phiAboveCell1101))) h +theorem e24KC2PhiAboveLeaf1101030 : + adaptiveCoverCheck 9 (childLL (childHH (childLL phiAboveCell1101))) = true := by + have h : ((childLL (childHH (childLL phiAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH (childLL phiAboveCell1101))) h +theorem e24KC2PhiAboveLeaf1101031 : + adaptiveCoverCheck 9 (childLH (childHH (childLL phiAboveCell1101))) = true := by + have h : ((childLH (childHH (childLL phiAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH (childLL phiAboveCell1101))) h +theorem e24KC2PhiAboveLeaf1101032 : + adaptiveCoverCheck 9 (childHL (childHH (childLL phiAboveCell1101))) = true := by + have h : ((childHL (childHH (childLL phiAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH (childLL phiAboveCell1101))) h +theorem e24KC2PhiAboveLeaf1101033 : + adaptiveCoverCheck 9 (childHH (childHH (childLL phiAboveCell1101))) = true := by + have h : ((childHH (childHH (childLL phiAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH (childLL phiAboveCell1101))) h +theorem e24KC2PhiAboveLeaf1101120 : + adaptiveCoverCheck 9 (childLL (childHL (childLH phiAboveCell1101))) = true := by + have h : ((childLL (childHL (childLH phiAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL (childLH phiAboveCell1101))) h +theorem e24KC2PhiAboveLeaf1101121 : + adaptiveCoverCheck 9 (childLH (childHL (childLH phiAboveCell1101))) = true := by + have h : ((childLH (childHL (childLH phiAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL (childLH phiAboveCell1101))) h +theorem e24KC2PhiAboveLeaf1101122 : + adaptiveCoverCheck 9 (childHL (childHL (childLH phiAboveCell1101))) = true := by + have h : ((childHL (childHL (childLH phiAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL (childLH phiAboveCell1101))) h +theorem e24KC2PhiAboveLeaf1101123 : + adaptiveCoverCheck 9 (childHH (childHL (childLH phiAboveCell1101))) = true := by + have h : ((childHH (childHL (childLH phiAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL (childLH phiAboveCell1101))) h +theorem e24KC2PhiAboveLeaf1101130 : + adaptiveCoverCheck 9 (childLL (childHH (childLH phiAboveCell1101))) = true := by + have h : ((childLL (childHH (childLH phiAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH (childLH phiAboveCell1101))) h +theorem e24KC2PhiAboveLeaf1101131 : + adaptiveCoverCheck 9 (childLH (childHH (childLH phiAboveCell1101))) = true := by + have h : ((childLH (childHH (childLH phiAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH (childLH phiAboveCell1101))) h +theorem e24KC2PhiAboveLeaf1101132 : + adaptiveCoverCheck 9 (childHL (childHH (childLH phiAboveCell1101))) = true := by + have h : ((childHL (childHH (childLH phiAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH (childLH phiAboveCell1101))) h +theorem e24KC2PhiAboveLeaf1101133 : + adaptiveCoverCheck 9 (childHH (childHH (childLH phiAboveCell1101))) = true := by + have h : ((childHH (childHH (childLH phiAboveCell1101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH (childLH phiAboveCell1101))) h +theorem e24KC2PhiAboveLeaf110120 : + adaptiveCoverCheck 10 (childLL (childHL phiAboveCell1101)) = true := by + have h : ((childLL (childHL phiAboveCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL (childHL phiAboveCell1101)) h +theorem e24KC2PhiAboveLeaf110121 : + adaptiveCoverCheck 10 (childLH (childHL phiAboveCell1101)) = true := by + have h : ((childLH (childHL phiAboveCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH (childHL phiAboveCell1101)) h +theorem e24KC2PhiAboveLeaf110122 : + adaptiveCoverCheck 10 (childHL (childHL phiAboveCell1101)) = true := by + have h : ((childHL (childHL phiAboveCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childHL phiAboveCell1101)) h +theorem e24KC2PhiAboveLeaf110123 : + adaptiveCoverCheck 10 (childHH (childHL phiAboveCell1101)) = true := by + have h : ((childHH (childHL phiAboveCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childHL phiAboveCell1101)) h +theorem e24KC2PhiAboveLeaf110130 : + adaptiveCoverCheck 10 (childLL (childHH phiAboveCell1101)) = true := by + have h : ((childLL (childHH phiAboveCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL (childHH phiAboveCell1101)) h +theorem e24KC2PhiAboveLeaf110131 : + adaptiveCoverCheck 10 (childLH (childHH phiAboveCell1101)) = true := by + have h : ((childLH (childHH phiAboveCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH (childHH phiAboveCell1101)) h +theorem e24KC2PhiAboveLeaf110132 : + adaptiveCoverCheck 10 (childHL (childHH phiAboveCell1101)) = true := by + have h : ((childHL (childHH phiAboveCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childHH phiAboveCell1101)) h +theorem e24KC2PhiAboveLeaf110133 : + adaptiveCoverCheck 10 (childHH (childHH phiAboveCell1101)) = true := by + have h : ((childHH (childHH phiAboveCell1101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childHH phiAboveCell1101)) h +theorem e24KC2PhiAboveLeaf11020 : + adaptiveCoverCheck 11 (childLL phiAboveCell1102) = true := by + have h : ((childLL phiAboveCell1102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL phiAboveCell1102) h +theorem e24KC2PhiAboveLeaf11021 : + adaptiveCoverCheck 11 (childLH phiAboveCell1102) = true := by + have h : ((childLH phiAboveCell1102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH phiAboveCell1102) h +theorem e24KC2PhiAboveLeaf11022 : + adaptiveCoverCheck 11 (childHL phiAboveCell1102) = true := by + have h : ((childHL phiAboveCell1102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell1102) h +theorem e24KC2PhiAboveLeaf11023 : + adaptiveCoverCheck 11 (childHH phiAboveCell1102) = true := by + have h : ((childHH phiAboveCell1102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH phiAboveCell1102) h +theorem e24KC2PhiAboveLeaf11030 : + adaptiveCoverCheck 11 (childLL phiAboveCell1103) = true := by + have h : ((childLL phiAboveCell1103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL phiAboveCell1103) h +theorem e24KC2PhiAboveLeaf11031 : + adaptiveCoverCheck 11 (childLH phiAboveCell1103) = true := by + have h : ((childLH phiAboveCell1103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH phiAboveCell1103) h +theorem e24KC2PhiAboveLeaf11032 : + adaptiveCoverCheck 11 (childHL phiAboveCell1103) = true := by + have h : ((childHL phiAboveCell1103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell1103) h +theorem e24KC2PhiAboveLeaf11033 : + adaptiveCoverCheck 11 (childHH phiAboveCell1103) = true := by + have h : ((childHH phiAboveCell1103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH phiAboveCell1103) h +theorem e24KC2PhiAboveLeaf1110020 : + adaptiveCoverCheck 9 (childLL (childHL (childLL phiAboveCell1110))) = true := by + have h : ((childLL (childHL (childLL phiAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL (childLL phiAboveCell1110))) h +theorem e24KC2PhiAboveLeaf1110021 : + adaptiveCoverCheck 9 (childLH (childHL (childLL phiAboveCell1110))) = true := by + have h : ((childLH (childHL (childLL phiAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL (childLL phiAboveCell1110))) h +theorem e24KC2PhiAboveLeaf1110022 : + adaptiveCoverCheck 9 (childHL (childHL (childLL phiAboveCell1110))) = true := by + have h : ((childHL (childHL (childLL phiAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL (childLL phiAboveCell1110))) h +theorem e24KC2PhiAboveLeaf1110023 : + adaptiveCoverCheck 9 (childHH (childHL (childLL phiAboveCell1110))) = true := by + have h : ((childHH (childHL (childLL phiAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL (childLL phiAboveCell1110))) h +theorem e24KC2PhiAboveLeaf1110030 : + adaptiveCoverCheck 9 (childLL (childHH (childLL phiAboveCell1110))) = true := by + have h : ((childLL (childHH (childLL phiAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH (childLL phiAboveCell1110))) h +theorem e24KC2PhiAboveLeaf1110031 : + adaptiveCoverCheck 9 (childLH (childHH (childLL phiAboveCell1110))) = true := by + have h : ((childLH (childHH (childLL phiAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH (childLL phiAboveCell1110))) h +theorem e24KC2PhiAboveLeaf1110032 : + adaptiveCoverCheck 9 (childHL (childHH (childLL phiAboveCell1110))) = true := by + have h : ((childHL (childHH (childLL phiAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH (childLL phiAboveCell1110))) h +theorem e24KC2PhiAboveLeaf1110033 : + adaptiveCoverCheck 9 (childHH (childHH (childLL phiAboveCell1110))) = true := by + have h : ((childHH (childHH (childLL phiAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH (childLL phiAboveCell1110))) h +theorem e24KC2PhiAboveLeaf1110120 : + adaptiveCoverCheck 9 (childLL (childHL (childLH phiAboveCell1110))) = true := by + have h : ((childLL (childHL (childLH phiAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL (childLH phiAboveCell1110))) h +theorem e24KC2PhiAboveLeaf1110121 : + adaptiveCoverCheck 9 (childLH (childHL (childLH phiAboveCell1110))) = true := by + have h : ((childLH (childHL (childLH phiAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL (childLH phiAboveCell1110))) h +theorem e24KC2PhiAboveLeaf1110122 : + adaptiveCoverCheck 9 (childHL (childHL (childLH phiAboveCell1110))) = true := by + have h : ((childHL (childHL (childLH phiAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL (childLH phiAboveCell1110))) h +theorem e24KC2PhiAboveLeaf1110123 : + adaptiveCoverCheck 9 (childHH (childHL (childLH phiAboveCell1110))) = true := by + have h : ((childHH (childHL (childLH phiAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL (childLH phiAboveCell1110))) h +theorem e24KC2PhiAboveLeaf1110130 : + adaptiveCoverCheck 9 (childLL (childHH (childLH phiAboveCell1110))) = true := by + have h : ((childLL (childHH (childLH phiAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH (childLH phiAboveCell1110))) h +theorem e24KC2PhiAboveLeaf1110131 : + adaptiveCoverCheck 9 (childLH (childHH (childLH phiAboveCell1110))) = true := by + have h : ((childLH (childHH (childLH phiAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH (childLH phiAboveCell1110))) h +theorem e24KC2PhiAboveLeaf1110132 : + adaptiveCoverCheck 9 (childHL (childHH (childLH phiAboveCell1110))) = true := by + have h : ((childHL (childHH (childLH phiAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH (childLH phiAboveCell1110))) h +theorem e24KC2PhiAboveLeaf1110133 : + adaptiveCoverCheck 9 (childHH (childHH (childLH phiAboveCell1110))) = true := by + have h : ((childHH (childHH (childLH phiAboveCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH (childLH phiAboveCell1110))) h +theorem e24KC2PhiAboveLeaf111020 : + adaptiveCoverCheck 10 (childLL (childHL phiAboveCell1110)) = true := by + have h : ((childLL (childHL phiAboveCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL (childHL phiAboveCell1110)) h +theorem e24KC2PhiAboveLeaf111021 : + adaptiveCoverCheck 10 (childLH (childHL phiAboveCell1110)) = true := by + have h : ((childLH (childHL phiAboveCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH (childHL phiAboveCell1110)) h +theorem e24KC2PhiAboveLeaf111022 : + adaptiveCoverCheck 10 (childHL (childHL phiAboveCell1110)) = true := by + have h : ((childHL (childHL phiAboveCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childHL phiAboveCell1110)) h +theorem e24KC2PhiAboveLeaf111023 : + adaptiveCoverCheck 10 (childHH (childHL phiAboveCell1110)) = true := by + have h : ((childHH (childHL phiAboveCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childHL phiAboveCell1110)) h +theorem e24KC2PhiAboveLeaf111030 : + adaptiveCoverCheck 10 (childLL (childHH phiAboveCell1110)) = true := by + have h : ((childLL (childHH phiAboveCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL (childHH phiAboveCell1110)) h +theorem e24KC2PhiAboveLeaf111031 : + adaptiveCoverCheck 10 (childLH (childHH phiAboveCell1110)) = true := by + have h : ((childLH (childHH phiAboveCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH (childHH phiAboveCell1110)) h +theorem e24KC2PhiAboveLeaf111032 : + adaptiveCoverCheck 10 (childHL (childHH phiAboveCell1110)) = true := by + have h : ((childHL (childHH phiAboveCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childHH phiAboveCell1110)) h +theorem e24KC2PhiAboveLeaf111033 : + adaptiveCoverCheck 10 (childHH (childHH phiAboveCell1110)) = true := by + have h : ((childHH (childHH phiAboveCell1110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childHH phiAboveCell1110)) h +theorem e24KC2PhiAboveLeaf1111020 : + adaptiveCoverCheck 9 (childLL (childHL (childLL phiAboveCell1111))) = true := by + have h : ((childLL (childHL (childLL phiAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL (childLL phiAboveCell1111))) h +theorem e24KC2PhiAboveLeaf1111021 : + adaptiveCoverCheck 9 (childLH (childHL (childLL phiAboveCell1111))) = true := by + have h : ((childLH (childHL (childLL phiAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL (childLL phiAboveCell1111))) h +theorem e24KC2PhiAboveLeaf1111022 : + adaptiveCoverCheck 9 (childHL (childHL (childLL phiAboveCell1111))) = true := by + have h : ((childHL (childHL (childLL phiAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL (childLL phiAboveCell1111))) h +theorem e24KC2PhiAboveLeaf1111023 : + adaptiveCoverCheck 9 (childHH (childHL (childLL phiAboveCell1111))) = true := by + have h : ((childHH (childHL (childLL phiAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL (childLL phiAboveCell1111))) h +theorem e24KC2PhiAboveLeaf1111030 : + adaptiveCoverCheck 9 (childLL (childHH (childLL phiAboveCell1111))) = true := by + have h : ((childLL (childHH (childLL phiAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH (childLL phiAboveCell1111))) h +theorem e24KC2PhiAboveLeaf1111031 : + adaptiveCoverCheck 9 (childLH (childHH (childLL phiAboveCell1111))) = true := by + have h : ((childLH (childHH (childLL phiAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH (childLL phiAboveCell1111))) h +theorem e24KC2PhiAboveLeaf1111032 : + adaptiveCoverCheck 9 (childHL (childHH (childLL phiAboveCell1111))) = true := by + have h : ((childHL (childHH (childLL phiAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH (childLL phiAboveCell1111))) h +theorem e24KC2PhiAboveLeaf1111033 : + adaptiveCoverCheck 9 (childHH (childHH (childLL phiAboveCell1111))) = true := by + have h : ((childHH (childHH (childLL phiAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH (childLL phiAboveCell1111))) h +theorem e24KC2PhiAboveLeaf1111120 : + adaptiveCoverCheck 9 (childLL (childHL (childLH phiAboveCell1111))) = true := by + have h : ((childLL (childHL (childLH phiAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL (childLH phiAboveCell1111))) h +theorem e24KC2PhiAboveLeaf1111121 : + adaptiveCoverCheck 9 (childLH (childHL (childLH phiAboveCell1111))) = true := by + have h : ((childLH (childHL (childLH phiAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL (childLH phiAboveCell1111))) h +theorem e24KC2PhiAboveLeaf1111122 : + adaptiveCoverCheck 9 (childHL (childHL (childLH phiAboveCell1111))) = true := by + have h : ((childHL (childHL (childLH phiAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL (childLH phiAboveCell1111))) h +theorem e24KC2PhiAboveLeaf1111123 : + adaptiveCoverCheck 9 (childHH (childHL (childLH phiAboveCell1111))) = true := by + have h : ((childHH (childHL (childLH phiAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL (childLH phiAboveCell1111))) h +theorem e24KC2PhiAboveLeaf1111130 : + adaptiveCoverCheck 9 (childLL (childHH (childLH phiAboveCell1111))) = true := by + have h : ((childLL (childHH (childLH phiAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH (childLH phiAboveCell1111))) h +theorem e24KC2PhiAboveLeaf1111132 : + adaptiveCoverCheck 9 (childHL (childHH (childLH phiAboveCell1111))) = true := by + have h : ((childHL (childHH (childLH phiAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH (childLH phiAboveCell1111))) h +theorem e24KC2PhiAboveLeaf1111133 : + adaptiveCoverCheck 9 (childHH (childHH (childLH phiAboveCell1111))) = true := by + have h : ((childHH (childHH (childLH phiAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH (childLH phiAboveCell1111))) h +theorem e24KC2PhiAboveLeaf111120 : + adaptiveCoverCheck 10 (childLL (childHL phiAboveCell1111)) = true := by + have h : ((childLL (childHL phiAboveCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL (childHL phiAboveCell1111)) h +theorem e24KC2PhiAboveLeaf111121 : + adaptiveCoverCheck 10 (childLH (childHL phiAboveCell1111)) = true := by + have h : ((childLH (childHL phiAboveCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH (childHL phiAboveCell1111)) h +theorem e24KC2PhiAboveLeaf111122 : + adaptiveCoverCheck 10 (childHL (childHL phiAboveCell1111)) = true := by + have h : ((childHL (childHL phiAboveCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childHL phiAboveCell1111)) h +theorem e24KC2PhiAboveLeaf111123 : + adaptiveCoverCheck 10 (childHH (childHL phiAboveCell1111)) = true := by + have h : ((childHH (childHL phiAboveCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childHL phiAboveCell1111)) h +theorem e24KC2PhiAboveLeaf111130 : + adaptiveCoverCheck 10 (childLL (childHH phiAboveCell1111)) = true := by + have h : ((childLL (childHH phiAboveCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL (childHH phiAboveCell1111)) h +theorem e24KC2PhiAboveLeaf111131 : + adaptiveCoverCheck 10 (childLH (childHH phiAboveCell1111)) = true := by + have h : ((childLH (childHH phiAboveCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH (childHH phiAboveCell1111)) h +theorem e24KC2PhiAboveLeaf111132 : + adaptiveCoverCheck 10 (childHL (childHH phiAboveCell1111)) = true := by + have h : ((childHL (childHH phiAboveCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL (childHH phiAboveCell1111)) h +theorem e24KC2PhiAboveLeaf111133 : + adaptiveCoverCheck 10 (childHH (childHH phiAboveCell1111)) = true := by + have h : ((childHH (childHH phiAboveCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH (childHH phiAboveCell1111)) h +theorem e24KC2PhiAboveLeaf11120 : + adaptiveCoverCheck 11 (childLL phiAboveCell1112) = true := by + have h : ((childLL phiAboveCell1112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL phiAboveCell1112) h +theorem e24KC2PhiAboveLeaf11121 : + adaptiveCoverCheck 11 (childLH phiAboveCell1112) = true := by + have h : ((childLH phiAboveCell1112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH phiAboveCell1112) h +theorem e24KC2PhiAboveLeaf11122 : + adaptiveCoverCheck 11 (childHL phiAboveCell1112) = true := by + have h : ((childHL phiAboveCell1112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell1112) h +theorem e24KC2PhiAboveLeaf11123 : + adaptiveCoverCheck 11 (childHH phiAboveCell1112) = true := by + have h : ((childHH phiAboveCell1112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH phiAboveCell1112) h +theorem e24KC2PhiAboveLeaf11130 : + adaptiveCoverCheck 11 (childLL phiAboveCell1113) = true := by + have h : ((childLL phiAboveCell1113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL phiAboveCell1113) h +theorem e24KC2PhiAboveLeaf11131 : + adaptiveCoverCheck 11 (childLH phiAboveCell1113) = true := by + have h : ((childLH phiAboveCell1113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH phiAboveCell1113) h +theorem e24KC2PhiAboveLeaf11132 : + adaptiveCoverCheck 11 (childHL phiAboveCell1113) = true := by + have h : ((childHL phiAboveCell1113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL phiAboveCell1113) h +theorem e24KC2PhiAboveLeaf11133 : + adaptiveCoverCheck 11 (childHH phiAboveCell1113) = true := by + have h : ((childHH phiAboveCell1113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH phiAboveCell1113) h +theorem e24KC2PhiAboveLeaf1120 : + adaptiveCoverCheck 12 phiAboveCell1120 = true := by + have h : (phiAboveCell1120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell1120 h +theorem e24KC2PhiAboveLeaf1121 : + adaptiveCoverCheck 12 phiAboveCell1121 = true := by + have h : (phiAboveCell1121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell1121 h +theorem e24KC2PhiAboveLeaf1122 : + adaptiveCoverCheck 12 phiAboveCell1122 = true := by + have h : (phiAboveCell1122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell1122 h +theorem e24KC2PhiAboveLeaf1123 : + adaptiveCoverCheck 12 phiAboveCell1123 = true := by + have h : (phiAboveCell1123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell1123 h +theorem e24KC2PhiAboveLeaf1130 : + adaptiveCoverCheck 12 phiAboveCell1130 = true := by + have h : (phiAboveCell1130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell1130 h +theorem e24KC2PhiAboveLeaf1131 : + adaptiveCoverCheck 12 phiAboveCell1131 = true := by + have h : (phiAboveCell1131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell1131 h +theorem e24KC2PhiAboveLeaf1132 : + adaptiveCoverCheck 12 phiAboveCell1132 = true := by + have h : (phiAboveCell1132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell1132 h +theorem e24KC2PhiAboveLeaf1133 : + adaptiveCoverCheck 12 phiAboveCell1133 = true := by + have h : (phiAboveCell1133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 phiAboveCell1133 h +theorem e24KC2PhiAboveLeaf120 : + adaptiveCoverCheck 13 (childLL (childHL (childLH e24PhiAboveRoot))) = true := by + have h : ((childLL (childHL (childLH e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childHL (childLH e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf121 : + adaptiveCoverCheck 13 (childLH (childHL (childLH e24PhiAboveRoot))) = true := by + have h : ((childLH (childHL (childLH e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childHL (childLH e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf122 : + adaptiveCoverCheck 13 (childHL (childHL (childLH e24PhiAboveRoot))) = true := by + have h : ((childHL (childHL (childLH e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childHL (childLH e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf123 : + adaptiveCoverCheck 13 (childHH (childHL (childLH e24PhiAboveRoot))) = true := by + have h : ((childHH (childHL (childLH e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childHL (childLH e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf130 : + adaptiveCoverCheck 13 (childLL (childHH (childLH e24PhiAboveRoot))) = true := by + have h : ((childLL (childHH (childLH e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childHH (childLH e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf131 : + adaptiveCoverCheck 13 (childLH (childHH (childLH e24PhiAboveRoot))) = true := by + have h : ((childLH (childHH (childLH e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childHH (childLH e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf132 : + adaptiveCoverCheck 13 (childHL (childHH (childLH e24PhiAboveRoot))) = true := by + have h : ((childHL (childHH (childLH e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childHH (childLH e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf133 : + adaptiveCoverCheck 13 (childHH (childHH (childLH e24PhiAboveRoot))) = true := by + have h : ((childHH (childHH (childLH e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childHH (childLH e24PhiAboveRoot))) h + +theorem e24KC2PhiAboveLeaf2 : + adaptiveCoverCheck 15 (childHL e24PhiAboveRoot) = true := by + have h : physicallyIrrelevant (childHL e24PhiAboveRoot) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 15 (childHL e24PhiAboveRoot) h +theorem e24KC2PhiAboveLeaf300 : + adaptiveCoverCheck 13 (childLL (childLL (childHH e24PhiAboveRoot))) = true := by + have h : ((childLL (childLL (childHH e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLL (childHH e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf301 : + adaptiveCoverCheck 13 (childLH (childLL (childHH e24PhiAboveRoot))) = true := by + have h : ((childLH (childLL (childHH e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLL (childHH e24PhiAboveRoot))) h + +theorem e24KC2PhiAboveLeaf302 : + adaptiveCoverCheck 13 (childHL (childLL (childHH e24PhiAboveRoot))) = true := by + have h : physicallyIrrelevant (childHL (childLL (childHH e24PhiAboveRoot))) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 13 (childHL (childLL (childHH + e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf303 : + adaptiveCoverCheck 13 (childHH (childLL (childHH e24PhiAboveRoot))) = true := by + have h : ((childHH (childLL (childHH e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL (childHH e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf310 : + adaptiveCoverCheck 13 (childLL (childLH (childHH e24PhiAboveRoot))) = true := by + have h : ((childLL (childLH (childHH e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLH (childHH e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf311 : + adaptiveCoverCheck 13 (childLH (childLH (childHH e24PhiAboveRoot))) = true := by + have h : ((childLH (childLH (childHH e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLH (childHH e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf312 : + adaptiveCoverCheck 13 (childHL (childLH (childHH e24PhiAboveRoot))) = true := by + have h : ((childHL (childLH (childHH e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH (childHH e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf313 : + adaptiveCoverCheck 13 (childHH (childLH (childHH e24PhiAboveRoot))) = true := by + have h : ((childHH (childLH (childHH e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH (childHH e24PhiAboveRoot))) h + +theorem e24KC2PhiAboveLeaf32 : + adaptiveCoverCheck 14 (childHL (childHH e24PhiAboveRoot)) = true := by + have h : physicallyIrrelevant (childHL (childHH e24PhiAboveRoot)) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 14 (childHL (childHH e24PhiAboveRoot)) h +theorem e24KC2PhiAboveLeaf330 : + adaptiveCoverCheck 13 (childLL (childHH (childHH e24PhiAboveRoot))) = true := by + have h : ((childLL (childHH (childHH e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childHH (childHH e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf331 : + adaptiveCoverCheck 13 (childLH (childHH (childHH e24PhiAboveRoot))) = true := by + have h : ((childLH (childHH (childHH e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childHH (childHH e24PhiAboveRoot))) h + +theorem e24KC2PhiAboveLeaf332 : + adaptiveCoverCheck 13 (childHL (childHH (childHH e24PhiAboveRoot))) = true := by + have h : physicallyIrrelevant (childHL (childHH (childHH e24PhiAboveRoot))) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 13 (childHL (childHH (childHH + e24PhiAboveRoot))) h +theorem e24KC2PhiAboveLeaf333 : + adaptiveCoverCheck 13 (childHH (childHH (childHH e24PhiAboveRoot))) = true := by + have h : ((childHH (childHH (childHH e24PhiAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childHH (childHH e24PhiAboveRoot))) h +theorem e24KC2PhiBelowLeaf32212 : + adaptiveCoverCheck 9 (childHL phiBelowCell3221) = true := by + have h : ((childHL phiBelowCell3221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3221) h +theorem e24KC2PhiBelowLeaf32220 : + adaptiveCoverCheck 9 (childLL phiBelowCell3222) = true := by + have h : ((childLL phiBelowCell3222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3222) h +theorem e24KC2PhiBelowLeaf32221 : + adaptiveCoverCheck 9 (childLH phiBelowCell3222) = true := by + have h : ((childLH phiBelowCell3222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3222) h +theorem e24KC2PhiBelowLeaf32222 : + adaptiveCoverCheck 9 (childHL phiBelowCell3222) = true := by + have h : ((childHL phiBelowCell3222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3222) h +theorem e24KC2PhiBelowLeaf32223 : + adaptiveCoverCheck 9 (childHH phiBelowCell3222) = true := by + have h : ((childHH phiBelowCell3222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3222) h +theorem e24KC2PhiBelowLeaf32230 : + adaptiveCoverCheck 9 (childLL phiBelowCell3223) = true := by + have h : ((childLL phiBelowCell3223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3223) h +theorem e24KC2PhiBelowLeaf32232 : + adaptiveCoverCheck 9 (childHL phiBelowCell3223) = true := by + have h : ((childHL phiBelowCell3223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3223) h +theorem e24KC2PhiBelowLeaf32233 : + adaptiveCoverCheck 9 (childHH phiBelowCell3223) = true := by + have h : ((childHH phiBelowCell3223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3223) h +theorem e24KC2PhiBelowLeaf33100 : + adaptiveCoverCheck 9 (childLL phiBelowCell3310) = true := by + have h : ((childLL phiBelowCell3310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3310) h +theorem e24KC2PhiBelowLeaf33101 : + adaptiveCoverCheck 9 (childLH phiBelowCell3310) = true := by + have h : ((childLH phiBelowCell3310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3310) h +theorem e24KC2PhiBelowLeaf33103 : + adaptiveCoverCheck 9 (childHH phiBelowCell3310) = true := by + have h : ((childHH phiBelowCell3310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3310) h +theorem e24KC2PhiBelowLeaf33110 : + adaptiveCoverCheck 9 (childLL phiBelowCell3311) = true := by + have h : ((childLL phiBelowCell3311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3311) h +theorem e24KC2PhiBelowLeaf33111 : + adaptiveCoverCheck 9 (childLH phiBelowCell3311) = true := by + have h : ((childLH phiBelowCell3311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3311) h +theorem e24KC2PhiBelowLeaf33112 : + adaptiveCoverCheck 9 (childHL phiBelowCell3311) = true := by + have h : ((childHL phiBelowCell3311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL phiBelowCell3311) h +theorem e24KC2PhiBelowLeaf33113 : + adaptiveCoverCheck 9 (childHH phiBelowCell3311) = true := by + have h : ((childHH phiBelowCell3311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3311) h +theorem e24KC2PhiBelowLeaf33130 : + adaptiveCoverCheck 9 (childLL phiBelowCell3313) = true := by + have h : ((childLL phiBelowCell3313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL phiBelowCell3313) h +theorem e24KC2PhiBelowLeaf33131 : + adaptiveCoverCheck 9 (childLH phiBelowCell3313) = true := by + have h : ((childLH phiBelowCell3313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH phiBelowCell3313) h +theorem e24KC2PhiBelowLeaf33133 : + adaptiveCoverCheck 9 (childHH phiBelowCell3313) = true := by + have h : ((childHH phiBelowCell3313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH phiBelowCell3313) h +theorem e24KC2ThetaAboveLeaf000000 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell0000)) = true := by + have h : ((childLL (childLL thetaAboveCell0000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLL thetaAboveCell0000)) h +theorem e24KC2ThetaAboveLeaf000001 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell0000)) = true := by + have h : ((childLH (childLL thetaAboveCell0000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLL thetaAboveCell0000)) h +theorem e24KC2ThetaAboveLeaf000002 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell0000)) = true := by + have h : ((childHL (childLL thetaAboveCell0000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell0000)) h +theorem e24KC2ThetaAboveLeaf000003 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell0000)) = true := by + have h : ((childHH (childLL thetaAboveCell0000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell0000)) h +theorem e24KC2ThetaAboveLeaf000010 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell0000)) = true := by + have h : ((childLL (childLH thetaAboveCell0000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLH thetaAboveCell0000)) h +theorem e24KC2ThetaAboveLeaf000011 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell0000)) = true := by + have h : ((childLH (childLH thetaAboveCell0000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLH thetaAboveCell0000)) h +theorem e24KC2ThetaAboveLeaf000012 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell0000)) = true := by + have h : ((childHL (childLH thetaAboveCell0000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell0000)) h +theorem e24KC2ThetaAboveLeaf000013 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell0000)) = true := by + have h : ((childHH (childLH thetaAboveCell0000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell0000)) h +theorem e24KC2ThetaAboveLeaf0000200 : + adaptiveCoverCheck 12 (childLL (childLL (childHL thetaAboveCell0000))) = true := by + have h : ((childLL (childLL (childHL thetaAboveCell0000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHL thetaAboveCell0000))) h +theorem e24KC2ThetaAboveLeaf0000201 : + adaptiveCoverCheck 12 (childLH (childLL (childHL thetaAboveCell0000))) = true := by + have h : ((childLH (childLL (childHL thetaAboveCell0000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHL thetaAboveCell0000))) h +theorem e24KC2ThetaAboveLeaf00002020 : + adaptiveCoverCheck 11 thetaAboveCell00002020 = true := by + have h : (thetaAboveCell00002020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002020 h +theorem e24KC2ThetaAboveLeaf00002021 : + adaptiveCoverCheck 11 thetaAboveCell00002021 = true := by + have h : (thetaAboveCell00002021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002021 h +theorem e24KC2ThetaAboveLeaf000020220 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002022) = true := by + have h : ((childLL thetaAboveCell00002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00002022) h +theorem e24KC2ThetaAboveLeaf000020221 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002022) = true := by + have h : ((childLH thetaAboveCell00002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00002022) h +theorem e24KC2ThetaAboveLeaf000020222 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002022) = true := by + have h : ((childHL thetaAboveCell00002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00002022) h +theorem e24KC2ThetaAboveLeaf000020223 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002022) = true := by + have h : ((childHH thetaAboveCell00002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00002022) h +theorem e24KC2ThetaAboveLeaf000020230 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002023) = true := by + have h : ((childLL thetaAboveCell00002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00002023) h +theorem e24KC2ThetaAboveLeaf000020231 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002023) = true := by + have h : ((childLH thetaAboveCell00002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00002023) h +theorem e24KC2ThetaAboveLeaf000020232 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002023) = true := by + have h : ((childHL thetaAboveCell00002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00002023) h +theorem e24KC2ThetaAboveLeaf000020233 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002023) = true := by + have h : ((childHH thetaAboveCell00002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00002023) h +theorem e24KC2ThetaAboveLeaf00002030 : + adaptiveCoverCheck 11 thetaAboveCell00002030 = true := by + have h : (thetaAboveCell00002030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002030 h +theorem e24KC2ThetaAboveLeaf00002031 : + adaptiveCoverCheck 11 thetaAboveCell00002031 = true := by + have h : (thetaAboveCell00002031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002031 h +theorem e24KC2ThetaAboveLeaf000020320 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002032) = true := by + have h : ((childLL thetaAboveCell00002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00002032) h +theorem e24KC2ThetaAboveLeaf000020321 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002032) = true := by + have h : ((childLH thetaAboveCell00002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00002032) h +theorem e24KC2ThetaAboveLeaf000020322 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002032) = true := by + have h : ((childHL thetaAboveCell00002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00002032) h +theorem e24KC2ThetaAboveLeaf000020323 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002032) = true := by + have h : ((childHH thetaAboveCell00002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00002032) h +theorem e24KC2ThetaAboveLeaf000020330 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002033) = true := by + have h : ((childLL thetaAboveCell00002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00002033) h +theorem e24KC2ThetaAboveLeaf000020331 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002033) = true := by + have h : ((childLH thetaAboveCell00002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00002033) h +theorem e24KC2ThetaAboveLeaf000020332 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002033) = true := by + have h : ((childHL thetaAboveCell00002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00002033) h +theorem e24KC2ThetaAboveLeaf000020333 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002033) = true := by + have h : ((childHH thetaAboveCell00002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00002033) h +theorem e24KC2ThetaAboveLeaf0000210 : + adaptiveCoverCheck 12 (childLL (childLH (childHL thetaAboveCell0000))) = true := by + have h : ((childLL (childLH (childHL thetaAboveCell0000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHL thetaAboveCell0000))) h +theorem e24KC2ThetaAboveLeaf0000211 : + adaptiveCoverCheck 12 (childLH (childLH (childHL thetaAboveCell0000))) = true := by + have h : ((childLH (childLH (childHL thetaAboveCell0000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHL thetaAboveCell0000))) h +theorem e24KC2ThetaAboveLeaf00002120 : + adaptiveCoverCheck 11 thetaAboveCell00002120 = true := by + have h : (thetaAboveCell00002120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002120 h +theorem e24KC2ThetaAboveLeaf00002121 : + adaptiveCoverCheck 11 thetaAboveCell00002121 = true := by + have h : (thetaAboveCell00002121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002121 h +theorem e24KC2ThetaAboveLeaf000021220 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002122) = true := by + have h : ((childLL thetaAboveCell00002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00002122) h +theorem e24KC2ThetaAboveLeaf000021221 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002122) = true := by + have h : ((childLH thetaAboveCell00002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00002122) h +theorem e24KC2ThetaAboveLeaf000021222 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002122) = true := by + have h : ((childHL thetaAboveCell00002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00002122) h +theorem e24KC2ThetaAboveLeaf000021223 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002122) = true := by + have h : ((childHH thetaAboveCell00002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00002122) h +theorem e24KC2ThetaAboveLeaf000021230 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002123) = true := by + have h : ((childLL thetaAboveCell00002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00002123) h +theorem e24KC2ThetaAboveLeaf000021231 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002123) = true := by + have h : ((childLH thetaAboveCell00002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00002123) h +theorem e24KC2ThetaAboveLeaf000021232 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002123) = true := by + have h : ((childHL thetaAboveCell00002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00002123) h +theorem e24KC2ThetaAboveLeaf000021233 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002123) = true := by + have h : ((childHH thetaAboveCell00002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00002123) h +theorem e24KC2ThetaAboveLeaf00002130 : + adaptiveCoverCheck 11 thetaAboveCell00002130 = true := by + have h : (thetaAboveCell00002130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002130 h +theorem e24KC2ThetaAboveLeaf00002131 : + adaptiveCoverCheck 11 thetaAboveCell00002131 = true := by + have h : (thetaAboveCell00002131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002131 h +theorem e24KC2ThetaAboveLeaf000021320 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002132) = true := by + have h : ((childLL thetaAboveCell00002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00002132) h +theorem e24KC2ThetaAboveLeaf000021321 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002132) = true := by + have h : ((childLH thetaAboveCell00002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00002132) h +theorem e24KC2ThetaAboveLeaf000021322 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002132) = true := by + have h : ((childHL thetaAboveCell00002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00002132) h +theorem e24KC2ThetaAboveLeaf000021323 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002132) = true := by + have h : ((childHH thetaAboveCell00002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00002132) h +theorem e24KC2ThetaAboveLeaf000021330 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002133) = true := by + have h : ((childLL thetaAboveCell00002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00002133) h +theorem e24KC2ThetaAboveLeaf000021331 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002133) = true := by + have h : ((childLH thetaAboveCell00002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00002133) h +theorem e24KC2ThetaAboveLeaf000021332 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002133) = true := by + have h : ((childHL thetaAboveCell00002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00002133) h +theorem e24KC2ThetaAboveLeaf000021333 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002133) = true := by + have h : ((childHH thetaAboveCell00002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00002133) h +theorem e24KC2ThetaAboveLeaf0000220000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00002200)) = true := by + have h : ((childLL (childLL thetaAboveCell00002200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00002200)) h +theorem e24KC2ThetaAboveLeaf0000220001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00002200)) = true := by + have h : ((childLH (childLL thetaAboveCell00002200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00002200)) h +theorem e24KC2ThetaAboveLeaf0000220010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00002200)) = true := by + have h : ((childLL (childLH thetaAboveCell00002200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00002200)) h +theorem e24KC2ThetaAboveLeaf0000220011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00002200)) = true := by + have h : ((childLH (childLH thetaAboveCell00002200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00002200)) h +theorem e24KC2ThetaAboveLeaf0000220100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00002201)) = true := by + have h : ((childLL (childLL thetaAboveCell00002201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00002201)) h +theorem e24KC2ThetaAboveLeaf0000220101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00002201)) = true := by + have h : ((childLH (childLL thetaAboveCell00002201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00002201)) h +theorem e24KC2ThetaAboveLeaf0000220110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00002201)) = true := by + have h : ((childLL (childLH thetaAboveCell00002201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00002201)) h +theorem e24KC2ThetaAboveLeaf0000220111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00002201)) = true := by + have h : ((childLH (childLH thetaAboveCell00002201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00002201)) h +theorem e24KC2ThetaAboveLeaf000022020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002202) = true := by + have h : ((childLL thetaAboveCell00002202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00002202) h +theorem e24KC2ThetaAboveLeaf000022021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002202) = true := by + have h : ((childLH thetaAboveCell00002202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00002202) h +theorem e24KC2ThetaAboveLeaf000022022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002202) = true := by + have h : ((childHL thetaAboveCell00002202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00002202) h +theorem e24KC2ThetaAboveLeaf000022023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002202) = true := by + have h : ((childHH thetaAboveCell00002202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00002202) h +theorem e24KC2ThetaAboveLeaf000022030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002203) = true := by + have h : ((childLL thetaAboveCell00002203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00002203) h +theorem e24KC2ThetaAboveLeaf000022031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002203) = true := by + have h : ((childLH thetaAboveCell00002203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00002203) h +theorem e24KC2ThetaAboveLeaf000022032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002203) = true := by + have h : ((childHL thetaAboveCell00002203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00002203) h +theorem e24KC2ThetaAboveLeaf000022033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002203) = true := by + have h : ((childHH thetaAboveCell00002203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00002203) h +theorem e24KC2ThetaAboveLeaf0000221000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00002210)) = true := by + have h : ((childLL (childLL thetaAboveCell00002210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00002210)) h +theorem e24KC2ThetaAboveLeaf0000221001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00002210)) = true := by + have h : ((childLH (childLL thetaAboveCell00002210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00002210)) h +theorem e24KC2ThetaAboveLeaf0000221010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00002210)) = true := by + have h : ((childLL (childLH thetaAboveCell00002210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00002210)) h +theorem e24KC2ThetaAboveLeaf0000221011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00002210)) = true := by + have h : ((childLH (childLH thetaAboveCell00002210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00002210)) h +theorem e24KC2ThetaAboveLeaf0000221100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00002211)) = true := by + have h : ((childLL (childLL thetaAboveCell00002211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00002211)) h +theorem e24KC2ThetaAboveLeaf0000221101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00002211)) = true := by + have h : ((childLH (childLL thetaAboveCell00002211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00002211)) h +theorem e24KC2ThetaAboveLeaf0000221110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00002211)) = true := by + have h : ((childLL (childLH thetaAboveCell00002211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00002211)) h +theorem e24KC2ThetaAboveLeaf0000221111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00002211)) = true := by + have h : ((childLH (childLH thetaAboveCell00002211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00002211)) h +theorem e24KC2ThetaAboveLeaf000022120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002212) = true := by + have h : ((childLL thetaAboveCell00002212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00002212) h +theorem e24KC2ThetaAboveLeaf000022121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002212) = true := by + have h : ((childLH thetaAboveCell00002212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00002212) h +theorem e24KC2ThetaAboveLeaf000022122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002212) = true := by + have h : ((childHL thetaAboveCell00002212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00002212) h +theorem e24KC2ThetaAboveLeaf000022123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002212) = true := by + have h : ((childHH thetaAboveCell00002212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00002212) h +theorem e24KC2ThetaAboveLeaf000022130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002213) = true := by + have h : ((childLL thetaAboveCell00002213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00002213) h +theorem e24KC2ThetaAboveLeaf0000221310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00002213)) = true := by + have h : ((childLL (childLH thetaAboveCell00002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00002213)) h +theorem e24KC2ThetaAboveLeaf0000221311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00002213)) = true := by + have h : ((childLH (childLH thetaAboveCell00002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00002213)) h +theorem e24KC2ThetaAboveLeaf0000221312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00002213)) = true := by + have h : ((childHL (childLH thetaAboveCell00002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00002213)) h +theorem e24KC2ThetaAboveLeaf0000221313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00002213)) = true := by + have h : ((childHH (childLH thetaAboveCell00002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00002213)) h +theorem e24KC2ThetaAboveLeaf000022132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002213) = true := by + have h : ((childHL thetaAboveCell00002213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00002213) h +theorem e24KC2ThetaAboveLeaf000022133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002213) = true := by + have h : ((childHH thetaAboveCell00002213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00002213) h +theorem e24KC2ThetaAboveLeaf00002220 : + adaptiveCoverCheck 11 thetaAboveCell00002220 = true := by + have h : (thetaAboveCell00002220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002220 h +theorem e24KC2ThetaAboveLeaf00002221 : + adaptiveCoverCheck 11 thetaAboveCell00002221 = true := by + have h : (thetaAboveCell00002221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002221 h +theorem e24KC2ThetaAboveLeaf00002222 : + adaptiveCoverCheck 11 thetaAboveCell00002222 = true := by + have h : (thetaAboveCell00002222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002222 h +theorem e24KC2ThetaAboveLeaf00002223 : + adaptiveCoverCheck 11 thetaAboveCell00002223 = true := by + have h : (thetaAboveCell00002223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002223 h +theorem e24KC2ThetaAboveLeaf00002230 : + adaptiveCoverCheck 11 thetaAboveCell00002230 = true := by + have h : (thetaAboveCell00002230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002230 h +theorem e24KC2ThetaAboveLeaf00002231 : + adaptiveCoverCheck 11 thetaAboveCell00002231 = true := by + have h : (thetaAboveCell00002231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002231 h +theorem e24KC2ThetaAboveLeaf00002232 : + adaptiveCoverCheck 11 thetaAboveCell00002232 = true := by + have h : (thetaAboveCell00002232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002232 h +theorem e24KC2ThetaAboveLeaf00002233 : + adaptiveCoverCheck 11 thetaAboveCell00002233 = true := by + have h : (thetaAboveCell00002233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002233 h +theorem e24KC2ThetaAboveLeaf0000230000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00002300)) = true := by + have h : ((childLL (childLL thetaAboveCell00002300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00002300)) h +theorem e24KC2ThetaAboveLeaf0000230001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00002300)) = true := by + have h : ((childLH (childLL thetaAboveCell00002300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00002300)) h +theorem e24KC2ThetaAboveLeaf0000230010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00002300)) = true := by + have h : ((childLL (childLH thetaAboveCell00002300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00002300)) h +theorem e24KC2ThetaAboveLeaf0000230011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00002300)) = true := by + have h : ((childLH (childLH thetaAboveCell00002300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00002300)) h +theorem e24KC2ThetaAboveLeaf0000230100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00002301)) = true := by + have h : ((childLL (childLL thetaAboveCell00002301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00002301)) h +theorem e24KC2ThetaAboveLeaf0000230101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00002301)) = true := by + have h : ((childLH (childLL thetaAboveCell00002301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00002301)) h +theorem e24KC2ThetaAboveLeaf0000230110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00002301)) = true := by + have h : ((childLL (childLH thetaAboveCell00002301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00002301)) h +theorem e24KC2ThetaAboveLeaf0000230111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00002301)) = true := by + have h : ((childLH (childLH thetaAboveCell00002301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00002301)) h +theorem e24KC2ThetaAboveLeaf0000230200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00002302)) = true := by + have h : ((childLL (childLL thetaAboveCell00002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00002302)) h +theorem e24KC2ThetaAboveLeaf0000230201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00002302)) = true := by + have h : ((childLH (childLL thetaAboveCell00002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00002302)) h +theorem e24KC2ThetaAboveLeaf0000230202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00002302)) = true := by + have h : ((childHL (childLL thetaAboveCell00002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00002302)) h +theorem e24KC2ThetaAboveLeaf0000230203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00002302)) = true := by + have h : ((childHH (childLL thetaAboveCell00002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00002302)) h +theorem e24KC2ThetaAboveLeaf0000230210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00002302)) = true := by + have h : ((childLL (childLH thetaAboveCell00002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00002302)) h +theorem e24KC2ThetaAboveLeaf0000230211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00002302)) = true := by + have h : ((childLH (childLH thetaAboveCell00002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00002302)) h +theorem e24KC2ThetaAboveLeaf0000230212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00002302)) = true := by + have h : ((childHL (childLH thetaAboveCell00002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00002302)) h +theorem e24KC2ThetaAboveLeaf0000230213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00002302)) = true := by + have h : ((childHH (childLH thetaAboveCell00002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00002302)) h +theorem e24KC2ThetaAboveLeaf000023022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002302) = true := by + have h : ((childHL thetaAboveCell00002302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00002302) h +theorem e24KC2ThetaAboveLeaf000023023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002302) = true := by + have h : ((childHH thetaAboveCell00002302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00002302) h +theorem e24KC2ThetaAboveLeaf0000230300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00002303)) = true := by + have h : ((childLL (childLL thetaAboveCell00002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00002303)) h +theorem e24KC2ThetaAboveLeaf0000230301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00002303)) = true := by + have h : ((childLH (childLL thetaAboveCell00002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00002303)) h +theorem e24KC2ThetaAboveLeaf0000230302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00002303)) = true := by + have h : ((childHL (childLL thetaAboveCell00002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00002303)) h +theorem e24KC2ThetaAboveLeaf0000230303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00002303)) = true := by + have h : ((childHH (childLL thetaAboveCell00002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00002303)) h +theorem e24KC2ThetaAboveLeaf0000230310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00002303)) = true := by + have h : ((childLL (childLH thetaAboveCell00002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00002303)) h +theorem e24KC2ThetaAboveLeaf0000230311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00002303)) = true := by + have h : ((childLH (childLH thetaAboveCell00002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00002303)) h +theorem e24KC2ThetaAboveLeaf0000230312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00002303)) = true := by + have h : ((childHL (childLH thetaAboveCell00002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00002303)) h +theorem e24KC2ThetaAboveLeaf0000230313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00002303)) = true := by + have h : ((childHH (childLH thetaAboveCell00002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00002303)) h +theorem e24KC2ThetaAboveLeaf000023032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002303) = true := by + have h : ((childHL thetaAboveCell00002303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00002303) h +theorem e24KC2ThetaAboveLeaf000023033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002303) = true := by + have h : ((childHH thetaAboveCell00002303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00002303) h +theorem e24KC2ThetaAboveLeaf0000231000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00002310)) = true := by + have h : ((childLL (childLL thetaAboveCell00002310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00002310)) h +theorem e24KC2ThetaAboveLeaf0000231001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00002310)) = true := by + have h : ((childLH (childLL thetaAboveCell00002310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00002310)) h +theorem e24KC2ThetaAboveLeaf0000231010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00002310)) = true := by + have h : ((childLL (childLH thetaAboveCell00002310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00002310)) h +theorem e24KC2ThetaAboveLeaf0000231011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00002310)) = true := by + have h : ((childLH (childLH thetaAboveCell00002310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00002310)) h +theorem e24KC2ThetaAboveLeaf0000231100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00002311)) = true := by + have h : ((childLL (childLL thetaAboveCell00002311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00002311)) h +theorem e24KC2ThetaAboveLeaf0000231101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00002311)) = true := by + have h : ((childLH (childLL thetaAboveCell00002311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00002311)) h +theorem e24KC2ThetaAboveLeaf0000231110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00002311)) = true := by + have h : ((childLL (childLH thetaAboveCell00002311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00002311)) h +theorem e24KC2ThetaAboveLeaf0000231111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00002311)) = true := by + have h : ((childLH (childLH thetaAboveCell00002311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00002311)) h +theorem e24KC2ThetaAboveLeaf0000231200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00002312)) = true := by + have h : ((childLL (childLL thetaAboveCell00002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00002312)) h +theorem e24KC2ThetaAboveLeaf0000231201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00002312)) = true := by + have h : ((childLH (childLL thetaAboveCell00002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00002312)) h +theorem e24KC2ThetaAboveLeaf0000231202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00002312)) = true := by + have h : ((childHL (childLL thetaAboveCell00002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00002312)) h +theorem e24KC2ThetaAboveLeaf0000231203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00002312)) = true := by + have h : ((childHH (childLL thetaAboveCell00002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00002312)) h +theorem e24KC2ThetaAboveLeaf0000231210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00002312)) = true := by + have h : ((childLL (childLH thetaAboveCell00002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00002312)) h +theorem e24KC2ThetaAboveLeaf0000231211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00002312)) = true := by + have h : ((childLH (childLH thetaAboveCell00002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00002312)) h +theorem e24KC2ThetaAboveLeaf0000231212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00002312)) = true := by + have h : ((childHL (childLH thetaAboveCell00002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00002312)) h +theorem e24KC2ThetaAboveLeaf0000231213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00002312)) = true := by + have h : ((childHH (childLH thetaAboveCell00002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00002312)) h +theorem e24KC2ThetaAboveLeaf000023122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002312) = true := by + have h : ((childHL thetaAboveCell00002312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00002312) h +theorem e24KC2ThetaAboveLeaf000023123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002312) = true := by + have h : ((childHH thetaAboveCell00002312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00002312) h +theorem e24KC2ThetaAboveLeaf0000231300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00002313)) = true := by + have h : ((childLL (childLL thetaAboveCell00002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00002313)) h +theorem e24KC2ThetaAboveLeaf0000231301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00002313)) = true := by + have h : ((childLH (childLL thetaAboveCell00002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00002313)) h +theorem e24KC2ThetaAboveLeaf0000231302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00002313)) = true := by + have h : ((childHL (childLL thetaAboveCell00002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00002313)) h +theorem e24KC2ThetaAboveLeaf0000231303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00002313)) = true := by + have h : ((childHH (childLL thetaAboveCell00002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00002313)) h +theorem e24KC2ThetaAboveLeaf0000231310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00002313)) = true := by + have h : ((childLL (childLH thetaAboveCell00002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00002313)) h +theorem e24KC2ThetaAboveLeaf0000231311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00002313)) = true := by + have h : ((childLH (childLH thetaAboveCell00002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00002313)) h +theorem e24KC2ThetaAboveLeaf0000231312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00002313)) = true := by + have h : ((childHL (childLH thetaAboveCell00002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00002313)) h +theorem e24KC2ThetaAboveLeaf0000231313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00002313)) = true := by + have h : ((childHH (childLH thetaAboveCell00002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00002313)) h +theorem e24KC2ThetaAboveLeaf000023132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002313) = true := by + have h : ((childHL thetaAboveCell00002313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00002313) h +theorem e24KC2ThetaAboveLeaf000023133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002313) = true := by + have h : ((childHH thetaAboveCell00002313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00002313) h +theorem e24KC2ThetaAboveLeaf00002320 : + adaptiveCoverCheck 11 thetaAboveCell00002320 = true := by + have h : (thetaAboveCell00002320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002320 h +theorem e24KC2ThetaAboveLeaf00002321 : + adaptiveCoverCheck 11 thetaAboveCell00002321 = true := by + have h : (thetaAboveCell00002321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002321 h +theorem e24KC2ThetaAboveLeaf00002322 : + adaptiveCoverCheck 11 thetaAboveCell00002322 = true := by + have h : (thetaAboveCell00002322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002322 h +theorem e24KC2ThetaAboveLeaf00002323 : + adaptiveCoverCheck 11 thetaAboveCell00002323 = true := by + have h : (thetaAboveCell00002323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002323 h +theorem e24KC2ThetaAboveLeaf00002330 : + adaptiveCoverCheck 11 thetaAboveCell00002330 = true := by + have h : (thetaAboveCell00002330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002330 h +theorem e24KC2ThetaAboveLeaf00002331 : + adaptiveCoverCheck 11 thetaAboveCell00002331 = true := by + have h : (thetaAboveCell00002331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002331 h +theorem e24KC2ThetaAboveLeaf00002332 : + adaptiveCoverCheck 11 thetaAboveCell00002332 = true := by + have h : (thetaAboveCell00002332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002332 h +theorem e24KC2ThetaAboveLeaf00002333 : + adaptiveCoverCheck 11 thetaAboveCell00002333 = true := by + have h : (thetaAboveCell00002333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00002333 h +theorem e24KC2ThetaAboveLeaf0000300 : + adaptiveCoverCheck 12 (childLL (childLL (childHH thetaAboveCell0000))) = true := by + have h : ((childLL (childLL (childHH thetaAboveCell0000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHH thetaAboveCell0000))) h +theorem e24KC2ThetaAboveLeaf0000301 : + adaptiveCoverCheck 12 (childLH (childLL (childHH thetaAboveCell0000))) = true := by + have h : ((childLH (childLL (childHH thetaAboveCell0000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHH thetaAboveCell0000))) h +theorem e24KC2ThetaAboveLeaf00003020 : + adaptiveCoverCheck 11 thetaAboveCell00003020 = true := by + have h : (thetaAboveCell00003020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003020 h +theorem e24KC2ThetaAboveLeaf00003021 : + adaptiveCoverCheck 11 thetaAboveCell00003021 = true := by + have h : (thetaAboveCell00003021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003021 h +theorem e24KC2ThetaAboveLeaf000030220 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003022) = true := by + have h : ((childLL thetaAboveCell00003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00003022) h +theorem e24KC2ThetaAboveLeaf000030221 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003022) = true := by + have h : ((childLH thetaAboveCell00003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00003022) h +theorem e24KC2ThetaAboveLeaf000030222 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003022) = true := by + have h : ((childHL thetaAboveCell00003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00003022) h +theorem e24KC2ThetaAboveLeaf000030223 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003022) = true := by + have h : ((childHH thetaAboveCell00003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00003022) h +theorem e24KC2ThetaAboveLeaf000030230 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003023) = true := by + have h : ((childLL thetaAboveCell00003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00003023) h +theorem e24KC2ThetaAboveLeaf000030231 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003023) = true := by + have h : ((childLH thetaAboveCell00003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00003023) h +theorem e24KC2ThetaAboveLeaf000030232 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003023) = true := by + have h : ((childHL thetaAboveCell00003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00003023) h +theorem e24KC2ThetaAboveLeaf000030233 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003023) = true := by + have h : ((childHH thetaAboveCell00003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00003023) h +theorem e24KC2ThetaAboveLeaf00003030 : + adaptiveCoverCheck 11 thetaAboveCell00003030 = true := by + have h : (thetaAboveCell00003030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003030 h +theorem e24KC2ThetaAboveLeaf00003031 : + adaptiveCoverCheck 11 thetaAboveCell00003031 = true := by + have h : (thetaAboveCell00003031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003031 h +theorem e24KC2ThetaAboveLeaf000030320 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003032) = true := by + have h : ((childLL thetaAboveCell00003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00003032) h +theorem e24KC2ThetaAboveLeaf000030321 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003032) = true := by + have h : ((childLH thetaAboveCell00003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00003032) h +theorem e24KC2ThetaAboveLeaf000030322 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003032) = true := by + have h : ((childHL thetaAboveCell00003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00003032) h +theorem e24KC2ThetaAboveLeaf000030323 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003032) = true := by + have h : ((childHH thetaAboveCell00003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00003032) h +theorem e24KC2ThetaAboveLeaf000030330 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003033) = true := by + have h : ((childLL thetaAboveCell00003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00003033) h +theorem e24KC2ThetaAboveLeaf000030331 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003033) = true := by + have h : ((childLH thetaAboveCell00003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00003033) h +theorem e24KC2ThetaAboveLeaf000030332 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003033) = true := by + have h : ((childHL thetaAboveCell00003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00003033) h +theorem e24KC2ThetaAboveLeaf000030333 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003033) = true := by + have h : ((childHH thetaAboveCell00003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00003033) h +theorem e24KC2ThetaAboveLeaf0000310 : + adaptiveCoverCheck 12 (childLL (childLH (childHH thetaAboveCell0000))) = true := by + have h : ((childLL (childLH (childHH thetaAboveCell0000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHH thetaAboveCell0000))) h +theorem e24KC2ThetaAboveLeaf0000311 : + adaptiveCoverCheck 12 (childLH (childLH (childHH thetaAboveCell0000))) = true := by + have h : ((childLH (childLH (childHH thetaAboveCell0000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHH thetaAboveCell0000))) h +theorem e24KC2ThetaAboveLeaf00003120 : + adaptiveCoverCheck 11 thetaAboveCell00003120 = true := by + have h : (thetaAboveCell00003120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003120 h + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC6ProofBatchB39d17cf54d27511`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC6 explicit proof-producing certificate batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells802ef10e9d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells802ef10e9d + +open CertificateCells802ef10e9d +theorem cover_subtree_f27aed8d7652 : + adaptiveCoverCheck 7 thetaAboveCell000023102000 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102000 + (by + have h : ((childLL thetaAboveCell000023102000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023102000) h) + (by + have h : ((childLH thetaAboveCell000023102000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023102000) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023102000) + (by + have h : ((childLL (childHL thetaAboveCell000023102000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023102000)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023102000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023102000)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023102000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023102000)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023102000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023102000)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023102000) + (by + have h : ((childLL (childHH thetaAboveCell000023102000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023102000)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023102000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023102000)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023102000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023102000)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023102000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023102000)) h)) + +theorem cover_subtree_005f989c43cb : + adaptiveCoverCheck 7 thetaAboveCell000023102001 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102001 + (by + have h : ((childLL thetaAboveCell000023102001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023102001) h) + (by + have h : ((childLH thetaAboveCell000023102001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023102001) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023102001) + (by + have h : ((childLL (childHL thetaAboveCell000023102001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023102001)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023102001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023102001)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023102001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023102001)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023102001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023102001)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023102001) + (by + have h : ((childLL (childHH thetaAboveCell000023102001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023102001)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023102001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023102001)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023102001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023102001)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023102001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023102001)) h)) + +theorem cover_subtree_9ea21eaf3506 : + adaptiveCoverCheck 7 thetaAboveCell000023102002 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102002 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023102002) + (by + have h : ((childLL (childLL thetaAboveCell000023102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023102002)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023102002)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023102002)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023102002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023102002) + (by + have h : ((childLL (childLH thetaAboveCell000023102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023102002)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023102002)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023102002)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023102002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023102002) + (by + have h : ((childLL (childHL thetaAboveCell000023102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023102002)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023102002)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023102002)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023102002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023102002) + (by + have h : ((childLL (childHH thetaAboveCell000023102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023102002)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023102002)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023102002)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023102002)) h)) + +theorem cover_subtree_aecd625dd7fb : + adaptiveCoverCheck 7 thetaAboveCell000023102003 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102003 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023102003) + (by + have h : ((childLL (childLL thetaAboveCell000023102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023102003)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023102003)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023102003)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023102003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023102003) + (by + have h : ((childLL (childLH thetaAboveCell000023102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023102003)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023102003)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023102003)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023102003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023102003) + (by + have h : ((childLL (childHL thetaAboveCell000023102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023102003)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023102003)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023102003)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023102003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023102003) + (by + have h : ((childLL (childHH thetaAboveCell000023102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023102003)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023102003)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023102003)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023102003)) h)) + +theorem cover_subtree_77a434675cac : + adaptiveCoverCheck 8 (childLL (childLL (childHL thetaAboveCell00002310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL thetaAboveCell00002310))) + cover_subtree_f27aed8d7652 + cover_subtree_005f989c43cb + cover_subtree_9ea21eaf3506 + cover_subtree_aecd625dd7fb + +theorem cover_subtree_422f11b7507e : + adaptiveCoverCheck 7 thetaAboveCell000023102010 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102010 + (by + have h : ((childLL thetaAboveCell000023102010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023102010) h) + (by + have h : ((childLH thetaAboveCell000023102010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023102010) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023102010) + (by + have h : ((childLL (childHL thetaAboveCell000023102010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023102010)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023102010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023102010)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023102010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023102010)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023102010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023102010)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023102010) + (by + have h : ((childLL (childHH thetaAboveCell000023102010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023102010)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023102010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023102010)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023102010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023102010)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023102010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023102010)) h)) + +theorem cover_subtree_9333e7948d29 : + adaptiveCoverCheck 7 thetaAboveCell000023102011 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102011 + (by + have h : ((childLL thetaAboveCell000023102011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023102011) h) + (by + have h : ((childLH thetaAboveCell000023102011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023102011) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023102011) + (by + have h : ((childLL (childHL thetaAboveCell000023102011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023102011)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023102011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023102011)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023102011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023102011)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023102011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023102011)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023102011) + (by + have h : ((childLL (childHH thetaAboveCell000023102011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023102011)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023102011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023102011)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023102011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023102011)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023102011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023102011)) h)) + +theorem cover_subtree_0e2f446f3080 : + adaptiveCoverCheck 7 thetaAboveCell000023102012 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102012 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023102012) + (by + have h : ((childLL (childLL thetaAboveCell000023102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023102012)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023102012)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023102012)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023102012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023102012) + (by + have h : ((childLL (childLH thetaAboveCell000023102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023102012)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023102012)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023102012)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023102012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023102012) + (by + have h : ((childLL (childHL thetaAboveCell000023102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023102012)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023102012)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023102012)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023102012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023102012) + (by + have h : ((childLL (childHH thetaAboveCell000023102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023102012)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023102012)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023102012)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023102012)) h)) + +theorem cover_subtree_07cb153dceed : + adaptiveCoverCheck 7 thetaAboveCell000023102013 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102013 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023102013) + (by + have h : ((childLL (childLL thetaAboveCell000023102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023102013)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023102013)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023102013)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023102013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023102013) + (by + have h : ((childLL (childLH thetaAboveCell000023102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023102013)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023102013)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023102013)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023102013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023102013) + (by + have h : ((childLL (childHL thetaAboveCell000023102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023102013)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023102013)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023102013)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023102013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023102013) + (by + have h : ((childLL (childHH thetaAboveCell000023102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023102013)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023102013)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023102013)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023102013)) h)) + +theorem cover_subtree_334813029f45 : + adaptiveCoverCheck 8 (childLH (childLL (childHL thetaAboveCell00002310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL thetaAboveCell00002310))) + cover_subtree_422f11b7507e + cover_subtree_9333e7948d29 + cover_subtree_0e2f446f3080 + cover_subtree_07cb153dceed + +theorem cover_subtree_c82ade123eba : + adaptiveCoverCheck 8 (childHL (childLL (childHL thetaAboveCell00002310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL thetaAboveCell00002310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102020 + (by + have h : ((childLL thetaAboveCell000023102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023102020) h) + (by + have h : ((childLH thetaAboveCell000023102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023102020) h) + (by + have h : ((childHL thetaAboveCell000023102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023102020) h) + (by + have h : ((childHH thetaAboveCell000023102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023102020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102021 + (by + have h : ((childLL thetaAboveCell000023102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023102021) h) + (by + have h : ((childLH thetaAboveCell000023102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023102021) h) + (by + have h : ((childHL thetaAboveCell000023102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023102021) h) + (by + have h : ((childHH thetaAboveCell000023102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023102021) h)) + (by + have h : (thetaAboveCell000023102022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023102022 h) + (by + have h : (thetaAboveCell000023102023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023102023 h) + +theorem cover_subtree_b2c2dad45076 : + adaptiveCoverCheck 8 (childHH (childLL (childHL thetaAboveCell00002310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL thetaAboveCell00002310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102030 + (by + have h : ((childLL thetaAboveCell000023102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023102030) h) + (by + have h : ((childLH thetaAboveCell000023102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023102030) h) + (by + have h : ((childHL thetaAboveCell000023102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023102030) h) + (by + have h : ((childHH thetaAboveCell000023102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023102030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102031 + (by + have h : ((childLL thetaAboveCell000023102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023102031) h) + (by + have h : ((childLH thetaAboveCell000023102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023102031) h) + (by + have h : ((childHL thetaAboveCell000023102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023102031) h) + (by + have h : ((childHH thetaAboveCell000023102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023102031) h)) + (by + have h : (thetaAboveCell000023102032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023102032 h) + (by + have h : (thetaAboveCell000023102033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023102033 h) + +theorem e24KC2ThetaAboveLeaf0000231020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00002310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00002310)) + cover_subtree_77a434675cac + cover_subtree_334813029f45 + cover_subtree_c82ade123eba + cover_subtree_b2c2dad45076 +theorem cover_subtree_d0ee7bfc8527 : + adaptiveCoverCheck 7 thetaAboveCell000023102100 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102100 + (by + have h : ((childLL thetaAboveCell000023102100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023102100) h) + (by + have h : ((childLH thetaAboveCell000023102100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023102100) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023102100) + (by + have h : ((childLL (childHL thetaAboveCell000023102100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023102100)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023102100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023102100)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023102100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023102100)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023102100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023102100)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023102100) + (by + have h : ((childLL (childHH thetaAboveCell000023102100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023102100)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023102100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023102100)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023102100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023102100)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023102100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023102100)) h)) + +theorem cover_subtree_58a66e346033 : + adaptiveCoverCheck 7 thetaAboveCell000023102101 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102101 + (by + have h : ((childLL thetaAboveCell000023102101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023102101) h) + (by + have h : ((childLH thetaAboveCell000023102101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023102101) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023102101) + (by + have h : ((childLL (childHL thetaAboveCell000023102101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023102101)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023102101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023102101)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023102101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023102101)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023102101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023102101)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023102101) + (by + have h : ((childLL (childHH thetaAboveCell000023102101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023102101)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023102101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023102101)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023102101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023102101)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023102101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023102101)) h)) + +theorem cover_subtree_c17867007896 : + adaptiveCoverCheck 7 thetaAboveCell000023102102 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102102 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023102102) + (by + have h : ((childLL (childLL thetaAboveCell000023102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023102102)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023102102)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023102102)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023102102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023102102) + (by + have h : ((childLL (childLH thetaAboveCell000023102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023102102)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023102102)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023102102)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023102102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023102102) + (by + have h : ((childLL (childHL thetaAboveCell000023102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023102102)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023102102)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023102102)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023102102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023102102) + (by + have h : ((childLL (childHH thetaAboveCell000023102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023102102)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023102102)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023102102)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023102102)) h)) + +theorem cover_subtree_70f834eb3976 : + adaptiveCoverCheck 7 thetaAboveCell000023102103 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102103 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023102103) + (by + have h : ((childLL (childLL thetaAboveCell000023102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023102103)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023102103)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023102103)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023102103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023102103) + (by + have h : ((childLL (childLH thetaAboveCell000023102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023102103)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023102103)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023102103)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023102103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023102103) + (by + have h : ((childLL (childHL thetaAboveCell000023102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023102103)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023102103)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023102103)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023102103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023102103) + (by + have h : ((childLL (childHH thetaAboveCell000023102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023102103)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023102103)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023102103)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023102103)) h)) + +theorem cover_subtree_a226aa051b7b : + adaptiveCoverCheck 8 (childLL (childLH (childHL thetaAboveCell00002310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL thetaAboveCell00002310))) + cover_subtree_d0ee7bfc8527 + cover_subtree_58a66e346033 + cover_subtree_c17867007896 + cover_subtree_70f834eb3976 + +theorem cover_subtree_71a49837eadf : + adaptiveCoverCheck 7 thetaAboveCell000023102112 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102112 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023102112) + (by + have h : ((childLL (childLL thetaAboveCell000023102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023102112)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023102112)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023102112)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023102112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023102112) + (by + have h : ((childLL (childLH thetaAboveCell000023102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023102112)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023102112)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023102112)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023102112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023102112) + (by + have h : ((childLL (childHL thetaAboveCell000023102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023102112)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023102112)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023102112)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023102112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023102112) + (by + have h : ((childLL (childHH thetaAboveCell000023102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023102112)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023102112)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023102112)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023102112)) h)) + +theorem cover_subtree_5a86501aa891 : + adaptiveCoverCheck 7 thetaAboveCell000023102113 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102113 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023102113) + (by + have h : ((childLL (childLL thetaAboveCell000023102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023102113)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023102113)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023102113)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023102113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023102113) + (by + have h : ((childLL (childLH thetaAboveCell000023102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023102113)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023102113)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023102113)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023102113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023102113) + (by + have h : ((childLL (childHL thetaAboveCell000023102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023102113)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023102113)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023102113)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023102113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023102113) + (by + have h : ((childLL (childHH thetaAboveCell000023102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023102113)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023102113)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023102113)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023102113)) h)) + +theorem cover_subtree_1d4344731b0b : + adaptiveCoverCheck 8 (childLH (childLH (childHL thetaAboveCell00002310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL thetaAboveCell00002310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102110 + (by + have h : ((childLL thetaAboveCell000023102110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023102110) h) + (by + have h : ((childLH thetaAboveCell000023102110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023102110) h) + (by + have h : ((childHL thetaAboveCell000023102110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023102110) h) + (by + have h : ((childHH thetaAboveCell000023102110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023102110) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102111 + (by + have h : ((childLL thetaAboveCell000023102111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023102111) h) + (by + have h : ((childLH thetaAboveCell000023102111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023102111) h) + (by + have h : ((childHL thetaAboveCell000023102111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023102111) h) + (by + have h : ((childHH thetaAboveCell000023102111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023102111) h)) + cover_subtree_71a49837eadf + cover_subtree_5a86501aa891 + +theorem cover_subtree_3bdba90bbb0c : + adaptiveCoverCheck 8 (childHL (childLH (childHL thetaAboveCell00002310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL thetaAboveCell00002310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102120 + (by + have h : ((childLL thetaAboveCell000023102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023102120) h) + (by + have h : ((childLH thetaAboveCell000023102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023102120) h) + (by + have h : ((childHL thetaAboveCell000023102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023102120) h) + (by + have h : ((childHH thetaAboveCell000023102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023102120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102121 + (by + have h : ((childLL thetaAboveCell000023102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023102121) h) + (by + have h : ((childLH thetaAboveCell000023102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023102121) h) + (by + have h : ((childHL thetaAboveCell000023102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023102121) h) + (by + have h : ((childHH thetaAboveCell000023102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023102121) h)) + (by + have h : (thetaAboveCell000023102122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023102122 h) + (by + have h : (thetaAboveCell000023102123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023102123 h) + +theorem cover_subtree_f8da85ca8892 : + adaptiveCoverCheck 8 (childHH (childLH (childHL thetaAboveCell00002310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL thetaAboveCell00002310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102130 + (by + have h : ((childLL thetaAboveCell000023102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023102130) h) + (by + have h : ((childLH thetaAboveCell000023102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023102130) h) + (by + have h : ((childHL thetaAboveCell000023102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023102130) h) + (by + have h : ((childHH thetaAboveCell000023102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023102130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023102131 + (by + have h : ((childLL thetaAboveCell000023102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023102131) h) + (by + have h : ((childLH thetaAboveCell000023102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023102131) h) + (by + have h : ((childHL thetaAboveCell000023102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023102131) h) + (by + have h : ((childHH thetaAboveCell000023102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023102131) h)) + (by + have h : (thetaAboveCell000023102132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023102132 h) + (by + have h : (thetaAboveCell000023102133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023102133 h) + +theorem e24KC2ThetaAboveLeaf0000231021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00002310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00002310)) + cover_subtree_a226aa051b7b + cover_subtree_1d4344731b0b + cover_subtree_3bdba90bbb0c + cover_subtree_f8da85ca8892 +theorem e24KC2ThetaAboveLeaf0000231022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00002310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00002310)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00002310))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00002310))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00002310))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00002310))) h) +theorem e24KC2ThetaAboveLeaf0000231023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00002310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00002310)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00002310))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00002310))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00002310))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00002310))) h) +theorem cover_subtree_786f313d71e4 : + adaptiveCoverCheck 7 thetaAboveCell000023103002 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103002 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023103002) + (by + have h : ((childLL (childLL thetaAboveCell000023103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023103002)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023103002)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023103002)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023103002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023103002) + (by + have h : ((childLL (childLH thetaAboveCell000023103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023103002)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023103002)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023103002)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023103002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023103002) + (by + have h : ((childLL (childHL thetaAboveCell000023103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023103002)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023103002)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023103002)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023103002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023103002) + (by + have h : ((childLL (childHH thetaAboveCell000023103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023103002)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023103002)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023103002)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023103002)) h)) + +theorem cover_subtree_7c7cbd1b1de9 : + adaptiveCoverCheck 7 thetaAboveCell000023103003 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103003 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023103003) + (by + have h : ((childLL (childLL thetaAboveCell000023103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023103003)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023103003)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023103003)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023103003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023103003) + (by + have h : ((childLL (childLH thetaAboveCell000023103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023103003)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023103003)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023103003)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023103003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023103003) + (by + have h : ((childLL (childHL thetaAboveCell000023103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023103003)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023103003)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023103003)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023103003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023103003) + (by + have h : ((childLL (childHH thetaAboveCell000023103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023103003)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023103003)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023103003)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023103003)) h)) + +theorem cover_subtree_e95dc4fe2400 : + adaptiveCoverCheck 8 (childLL (childLL (childHH thetaAboveCell00002310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH thetaAboveCell00002310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103000 + (by + have h : ((childLL thetaAboveCell000023103000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023103000) h) + (by + have h : ((childLH thetaAboveCell000023103000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023103000) h) + (by + have h : ((childHL thetaAboveCell000023103000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023103000) h) + (by + have h : ((childHH thetaAboveCell000023103000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023103000) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103001 + (by + have h : ((childLL thetaAboveCell000023103001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023103001) h) + (by + have h : ((childLH thetaAboveCell000023103001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023103001) h) + (by + have h : ((childHL thetaAboveCell000023103001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023103001) h) + (by + have h : ((childHH thetaAboveCell000023103001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023103001) h)) + cover_subtree_786f313d71e4 + cover_subtree_7c7cbd1b1de9 + +theorem cover_subtree_d1ef0fda9310 : + adaptiveCoverCheck 7 thetaAboveCell000023103012 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103012 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023103012) + (by + have h : ((childLL (childLL thetaAboveCell000023103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023103012)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023103012)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023103012)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023103012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023103012) + (by + have h : ((childLL (childLH thetaAboveCell000023103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023103012)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023103012)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023103012)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023103012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023103012) + (by + have h : ((childLL (childHL thetaAboveCell000023103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023103012)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023103012)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023103012)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023103012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023103012) + (by + have h : ((childLL (childHH thetaAboveCell000023103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023103012)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023103012)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023103012)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023103012)) h)) + +theorem cover_subtree_334bbbdc1a85 : + adaptiveCoverCheck 7 thetaAboveCell000023103013 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103013 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023103013) + (by + have h : ((childLL (childLL thetaAboveCell000023103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023103013)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023103013)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023103013)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023103013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023103013) + (by + have h : ((childLL (childLH thetaAboveCell000023103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023103013)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023103013)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023103013)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023103013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023103013) + (by + have h : ((childLL (childHL thetaAboveCell000023103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023103013)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023103013)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023103013)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023103013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023103013) + (by + have h : ((childLL (childHH thetaAboveCell000023103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023103013)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023103013)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023103013)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023103013)) h)) + +theorem cover_subtree_1b4b2c805488 : + adaptiveCoverCheck 8 (childLH (childLL (childHH thetaAboveCell00002310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH thetaAboveCell00002310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103010 + (by + have h : ((childLL thetaAboveCell000023103010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023103010) h) + (by + have h : ((childLH thetaAboveCell000023103010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023103010) h) + (by + have h : ((childHL thetaAboveCell000023103010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023103010) h) + (by + have h : ((childHH thetaAboveCell000023103010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023103010) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103011 + (by + have h : ((childLL thetaAboveCell000023103011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023103011) h) + (by + have h : ((childLH thetaAboveCell000023103011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023103011) h) + (by + have h : ((childHL thetaAboveCell000023103011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023103011) h) + (by + have h : ((childHH thetaAboveCell000023103011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023103011) h)) + cover_subtree_d1ef0fda9310 + cover_subtree_334bbbdc1a85 + +theorem cover_subtree_d023ef13133b : + adaptiveCoverCheck 8 (childHL (childLL (childHH thetaAboveCell00002310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH thetaAboveCell00002310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103020 + (by + have h : ((childLL thetaAboveCell000023103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023103020) h) + (by + have h : ((childLH thetaAboveCell000023103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023103020) h) + (by + have h : ((childHL thetaAboveCell000023103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023103020) h) + (by + have h : ((childHH thetaAboveCell000023103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023103020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103021 + (by + have h : ((childLL thetaAboveCell000023103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023103021) h) + (by + have h : ((childLH thetaAboveCell000023103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023103021) h) + (by + have h : ((childHL thetaAboveCell000023103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023103021) h) + (by + have h : ((childHH thetaAboveCell000023103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023103021) h)) + (by + have h : (thetaAboveCell000023103022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023103022 h) + (by + have h : (thetaAboveCell000023103023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023103023 h) + +theorem cover_subtree_8107f33bf217 : + adaptiveCoverCheck 8 (childHH (childLL (childHH thetaAboveCell00002310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH thetaAboveCell00002310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103030 + (by + have h : ((childLL thetaAboveCell000023103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023103030) h) + (by + have h : ((childLH thetaAboveCell000023103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023103030) h) + (by + have h : ((childHL thetaAboveCell000023103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023103030) h) + (by + have h : ((childHH thetaAboveCell000023103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023103030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103031 + (by + have h : ((childLL thetaAboveCell000023103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023103031) h) + (by + have h : ((childLH thetaAboveCell000023103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023103031) h) + (by + have h : ((childHL thetaAboveCell000023103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023103031) h) + (by + have h : ((childHH thetaAboveCell000023103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023103031) h)) + (by + have h : (thetaAboveCell000023103032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023103032 h) + (by + have h : (thetaAboveCell000023103033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023103033 h) + +theorem e24KC2ThetaAboveLeaf0000231030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00002310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00002310)) + cover_subtree_e95dc4fe2400 + cover_subtree_1b4b2c805488 + cover_subtree_d023ef13133b + cover_subtree_8107f33bf217 +theorem cover_subtree_e7898c3dadb7 : + adaptiveCoverCheck 7 thetaAboveCell000023103102 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103102 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023103102) + (by + have h : ((childLL (childLL thetaAboveCell000023103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023103102)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023103102)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023103102)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023103102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023103102) + (by + have h : ((childLL (childLH thetaAboveCell000023103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023103102)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023103102)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023103102)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023103102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023103102) + (by + have h : ((childLL (childHL thetaAboveCell000023103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023103102)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023103102)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023103102)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023103102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023103102) + (by + have h : ((childLL (childHH thetaAboveCell000023103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023103102)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023103102)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023103102)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023103102)) h)) + +theorem cover_subtree_76677b2fe65f : + adaptiveCoverCheck 7 thetaAboveCell000023103103 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103103 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023103103) + (by + have h : ((childLL (childLL thetaAboveCell000023103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023103103)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023103103)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023103103)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023103103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023103103) + (by + have h : ((childLL (childLH thetaAboveCell000023103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023103103)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023103103)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023103103)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023103103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023103103) + (by + have h : ((childLL (childHL thetaAboveCell000023103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023103103)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023103103)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023103103)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023103103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023103103) + (by + have h : ((childLL (childHH thetaAboveCell000023103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023103103)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023103103)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023103103)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023103103)) h)) + +theorem cover_subtree_b293a3c8540f : + adaptiveCoverCheck 8 (childLL (childLH (childHH thetaAboveCell00002310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH thetaAboveCell00002310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103100 + (by + have h : ((childLL thetaAboveCell000023103100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023103100) h) + (by + have h : ((childLH thetaAboveCell000023103100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023103100) h) + (by + have h : ((childHL thetaAboveCell000023103100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023103100) h) + (by + have h : ((childHH thetaAboveCell000023103100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023103100) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103101 + (by + have h : ((childLL thetaAboveCell000023103101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023103101) h) + (by + have h : ((childLH thetaAboveCell000023103101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023103101) h) + (by + have h : ((childHL thetaAboveCell000023103101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023103101) h) + (by + have h : ((childHH thetaAboveCell000023103101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023103101) h)) + cover_subtree_e7898c3dadb7 + cover_subtree_76677b2fe65f + +theorem cover_subtree_a17e19b0274e : + adaptiveCoverCheck 7 thetaAboveCell000023103112 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103112 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023103112) + (by + have h : ((childLL (childLL thetaAboveCell000023103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023103112)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023103112)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023103112)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023103112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023103112) + (by + have h : ((childLL (childLH thetaAboveCell000023103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023103112)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023103112)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023103112)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023103112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023103112) + (by + have h : ((childLL (childHL thetaAboveCell000023103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023103112)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023103112)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023103112)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023103112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023103112) + (by + have h : ((childLL (childHH thetaAboveCell000023103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023103112)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023103112)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023103112)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023103112)) h)) + +theorem cover_subtree_e650c47410b7 : + adaptiveCoverCheck 7 thetaAboveCell000023103113 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103113 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023103113) + (by + have h : ((childLL (childLL thetaAboveCell000023103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023103113)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023103113)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023103113)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023103113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023103113) + (by + have h : ((childLL (childLH thetaAboveCell000023103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023103113)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023103113)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023103113)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023103113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023103113) + (by + have h : ((childLL (childHL thetaAboveCell000023103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023103113)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023103113)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023103113)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023103113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023103113) + (by + have h : ((childLL (childHH thetaAboveCell000023103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023103113)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023103113)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023103113)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023103113)) h)) + +theorem cover_subtree_d40c83c06c06 : + adaptiveCoverCheck 8 (childLH (childLH (childHH thetaAboveCell00002310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH thetaAboveCell00002310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103110 + (by + have h : ((childLL thetaAboveCell000023103110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023103110) h) + (by + have h : ((childLH thetaAboveCell000023103110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023103110) h) + (by + have h : ((childHL thetaAboveCell000023103110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023103110) h) + (by + have h : ((childHH thetaAboveCell000023103110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023103110) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103111 + (by + have h : ((childLL thetaAboveCell000023103111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023103111) h) + (by + have h : ((childLH thetaAboveCell000023103111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023103111) h) + (by + have h : ((childHL thetaAboveCell000023103111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023103111) h) + (by + have h : ((childHH thetaAboveCell000023103111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023103111) h)) + cover_subtree_a17e19b0274e + cover_subtree_e650c47410b7 + +theorem cover_subtree_759d6e2f1f21 : + adaptiveCoverCheck 8 (childHL (childLH (childHH thetaAboveCell00002310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH thetaAboveCell00002310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103120 + (by + have h : ((childLL thetaAboveCell000023103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023103120) h) + (by + have h : ((childLH thetaAboveCell000023103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023103120) h) + (by + have h : ((childHL thetaAboveCell000023103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023103120) h) + (by + have h : ((childHH thetaAboveCell000023103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023103120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103121 + (by + have h : ((childLL thetaAboveCell000023103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023103121) h) + (by + have h : ((childLH thetaAboveCell000023103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023103121) h) + (by + have h : ((childHL thetaAboveCell000023103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023103121) h) + (by + have h : ((childHH thetaAboveCell000023103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023103121) h)) + (by + have h : (thetaAboveCell000023103122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023103122 h) + (by + have h : (thetaAboveCell000023103123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023103123 h) + +theorem cover_subtree_695ff4e0f9a2 : + adaptiveCoverCheck 8 (childHH (childLH (childHH thetaAboveCell00002310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH thetaAboveCell00002310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103130 + (by + have h : ((childLL thetaAboveCell000023103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023103130) h) + (by + have h : ((childLH thetaAboveCell000023103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023103130) h) + (by + have h : ((childHL thetaAboveCell000023103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023103130) h) + (by + have h : ((childHH thetaAboveCell000023103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023103130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023103131 + (by + have h : ((childLL thetaAboveCell000023103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023103131) h) + (by + have h : ((childLH thetaAboveCell000023103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023103131) h) + (by + have h : ((childHL thetaAboveCell000023103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023103131) h) + (by + have h : ((childHH thetaAboveCell000023103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023103131) h)) + (by + have h : (thetaAboveCell000023103132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023103132 h) + (by + have h : (thetaAboveCell000023103133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023103133 h) + +theorem e24KC2ThetaAboveLeaf0000231031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00002310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00002310)) + cover_subtree_b293a3c8540f + cover_subtree_d40c83c06c06 + cover_subtree_759d6e2f1f21 + cover_subtree_695ff4e0f9a2 +theorem e24KC2ThetaAboveLeaf0000231032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00002310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00002310)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00002310))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00002310))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00002310))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00002310))) h) +theorem e24KC2ThetaAboveLeaf0000231033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00002310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00002310)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00002310))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00002310))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00002310))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00002310))) h) +theorem e24KC2ThetaAboveLeaf0000231102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00002311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00002311)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00002311))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00002311))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childLL + thetaAboveCell00002311))) + (by + have h : (thetaAboveCell000023110220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023110220 h) + (by + have h : (thetaAboveCell000023110221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023110221 h) + (by + have h : (thetaAboveCell000023110222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023110222 h) + (by + have h : (thetaAboveCell000023110223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023110223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childLL + thetaAboveCell00002311))) + (by + have h : (thetaAboveCell000023110230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023110230 h) + (by + have h : (thetaAboveCell000023110231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023110231 h) + (by + have h : (thetaAboveCell000023110232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023110232 h) + (by + have h : (thetaAboveCell000023110233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023110233 h)) +theorem e24KC2ThetaAboveLeaf0000231103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00002311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00002311)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00002311))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00002311))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childLL + thetaAboveCell00002311))) + (by + have h : (thetaAboveCell000023110320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023110320 h) + (by + have h : (thetaAboveCell000023110321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023110321 h) + (by + have h : (thetaAboveCell000023110322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023110322 h) + (by + have h : (thetaAboveCell000023110323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023110323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childLL + thetaAboveCell00002311))) + (by + have h : (thetaAboveCell000023110330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023110330 h) + (by + have h : (thetaAboveCell000023110331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023110331 h) + (by + have h : (thetaAboveCell000023110332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023110332 h) + (by + have h : (thetaAboveCell000023110333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023110333 h)) +theorem e24KC2ThetaAboveLeaf0000231112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00002311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00002311)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00002311))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00002311))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childLH + thetaAboveCell00002311))) + (by + have h : (thetaAboveCell000023111220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023111220 h) + (by + have h : (thetaAboveCell000023111221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023111221 h) + (by + have h : (thetaAboveCell000023111222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023111222 h) + (by + have h : (thetaAboveCell000023111223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023111223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childLH + thetaAboveCell00002311))) + (by + have h : (thetaAboveCell000023111230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023111230 h) + (by + have h : (thetaAboveCell000023111231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023111231 h) + (by + have h : (thetaAboveCell000023111232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023111232 h) + (by + have h : (thetaAboveCell000023111233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023111233 h)) +theorem e24KC2ThetaAboveLeaf0000231113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00002311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00002311)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00002311))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00002311))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childLH + thetaAboveCell00002311))) + (by + have h : (thetaAboveCell000023111320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023111320 h) + (by + have h : (thetaAboveCell000023111321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023111321 h) + (by + have h : (thetaAboveCell000023111322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023111322 h) + (by + have h : (thetaAboveCell000023111323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023111323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childLH + thetaAboveCell00002311))) + (by + have h : (thetaAboveCell000023111330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023111330 h) + (by + have h : (thetaAboveCell000023111331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023111331 h) + (by + have h : (thetaAboveCell000023111332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023111332 h) + (by + have h : (thetaAboveCell000023111333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023111333 h)) +theorem cover_subtree_b3ebd2cd2770 : + adaptiveCoverCheck 7 thetaAboveCell000023112002 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112002 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023112002) + (by + have h : ((childLL (childLL thetaAboveCell000023112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023112002)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023112002)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023112002)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023112002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023112002) + (by + have h : ((childLL (childLH thetaAboveCell000023112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023112002)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023112002)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023112002)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023112002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023112002) + (by + have h : ((childLL (childHL thetaAboveCell000023112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023112002)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023112002)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023112002)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023112002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023112002) + (by + have h : ((childLL (childHH thetaAboveCell000023112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023112002)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023112002)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023112002)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023112002)) h)) + +theorem cover_subtree_f788d0e2a5ae : + adaptiveCoverCheck 7 thetaAboveCell000023112003 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112003 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023112003) + (by + have h : ((childLL (childLL thetaAboveCell000023112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023112003)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023112003)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023112003)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023112003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023112003) + (by + have h : ((childLL (childLH thetaAboveCell000023112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023112003)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023112003)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023112003)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023112003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023112003) + (by + have h : ((childLL (childHL thetaAboveCell000023112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023112003)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023112003)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023112003)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023112003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023112003) + (by + have h : ((childLL (childHH thetaAboveCell000023112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023112003)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023112003)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023112003)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023112003)) h)) + +theorem cover_subtree_7f7afb8d0a4d : + adaptiveCoverCheck 8 (childLL (childLL (childHL thetaAboveCell00002311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL thetaAboveCell00002311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112000 + (by + have h : ((childLL thetaAboveCell000023112000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023112000) h) + (by + have h : ((childLH thetaAboveCell000023112000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023112000) h) + (by + have h : ((childHL thetaAboveCell000023112000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023112000) h) + (by + have h : ((childHH thetaAboveCell000023112000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023112000) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112001 + (by + have h : ((childLL thetaAboveCell000023112001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023112001) h) + (by + have h : ((childLH thetaAboveCell000023112001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023112001) h) + (by + have h : ((childHL thetaAboveCell000023112001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023112001) h) + (by + have h : ((childHH thetaAboveCell000023112001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023112001) h)) + cover_subtree_b3ebd2cd2770 + cover_subtree_f788d0e2a5ae + +theorem cover_subtree_074cd1f5f52c : + adaptiveCoverCheck 7 thetaAboveCell000023112012 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112012 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023112012) + (by + have h : ((childLL (childLL thetaAboveCell000023112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023112012)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023112012)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023112012)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023112012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023112012) + (by + have h : ((childLL (childLH thetaAboveCell000023112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023112012)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023112012)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023112012)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023112012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023112012) + (by + have h : ((childLL (childHL thetaAboveCell000023112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023112012)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023112012)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023112012)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023112012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023112012) + (by + have h : ((childLL (childHH thetaAboveCell000023112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023112012)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023112012)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023112012)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023112012)) h)) + +theorem cover_subtree_dfbe90b65883 : + adaptiveCoverCheck 7 thetaAboveCell000023112013 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112013 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023112013) + (by + have h : ((childLL (childLL thetaAboveCell000023112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023112013)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023112013)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023112013)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023112013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023112013) + (by + have h : ((childLL (childLH thetaAboveCell000023112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023112013)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023112013)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023112013)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023112013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023112013) + (by + have h : ((childLL (childHL thetaAboveCell000023112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023112013)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023112013)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023112013)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023112013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023112013) + (by + have h : ((childLL (childHH thetaAboveCell000023112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023112013)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023112013)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023112013)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023112013)) h)) + +theorem cover_subtree_20dd499bd364 : + adaptiveCoverCheck 8 (childLH (childLL (childHL thetaAboveCell00002311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL thetaAboveCell00002311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112010 + (by + have h : ((childLL thetaAboveCell000023112010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023112010) h) + (by + have h : ((childLH thetaAboveCell000023112010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023112010) h) + (by + have h : ((childHL thetaAboveCell000023112010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023112010) h) + (by + have h : ((childHH thetaAboveCell000023112010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023112010) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112011 + (by + have h : ((childLL thetaAboveCell000023112011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023112011) h) + (by + have h : ((childLH thetaAboveCell000023112011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023112011) h) + (by + have h : ((childHL thetaAboveCell000023112011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023112011) h) + (by + have h : ((childHH thetaAboveCell000023112011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023112011) h)) + cover_subtree_074cd1f5f52c + cover_subtree_dfbe90b65883 + +theorem cover_subtree_97430f27dc25 : + adaptiveCoverCheck 8 (childHL (childLL (childHL thetaAboveCell00002311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL thetaAboveCell00002311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112020 + (by + have h : ((childLL thetaAboveCell000023112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023112020) h) + (by + have h : ((childLH thetaAboveCell000023112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023112020) h) + (by + have h : ((childHL thetaAboveCell000023112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023112020) h) + (by + have h : ((childHH thetaAboveCell000023112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023112020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112021 + (by + have h : ((childLL thetaAboveCell000023112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023112021) h) + (by + have h : ((childLH thetaAboveCell000023112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023112021) h) + (by + have h : ((childHL thetaAboveCell000023112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023112021) h) + (by + have h : ((childHH thetaAboveCell000023112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023112021) h)) + (by + have h : (thetaAboveCell000023112022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023112022 h) + (by + have h : (thetaAboveCell000023112023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023112023 h) + +theorem cover_subtree_8ea35ca64562 : + adaptiveCoverCheck 8 (childHH (childLL (childHL thetaAboveCell00002311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL thetaAboveCell00002311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112030 + (by + have h : ((childLL thetaAboveCell000023112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023112030) h) + (by + have h : ((childLH thetaAboveCell000023112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023112030) h) + (by + have h : ((childHL thetaAboveCell000023112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023112030) h) + (by + have h : ((childHH thetaAboveCell000023112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023112030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112031 + (by + have h : ((childLL thetaAboveCell000023112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023112031) h) + (by + have h : ((childLH thetaAboveCell000023112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023112031) h) + (by + have h : ((childHL thetaAboveCell000023112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023112031) h) + (by + have h : ((childHH thetaAboveCell000023112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023112031) h)) + (by + have h : (thetaAboveCell000023112032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023112032 h) + (by + have h : (thetaAboveCell000023112033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023112033 h) + +theorem e24KC2ThetaAboveLeaf0000231120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00002311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00002311)) + cover_subtree_7f7afb8d0a4d + cover_subtree_20dd499bd364 + cover_subtree_97430f27dc25 + cover_subtree_8ea35ca64562 +theorem cover_subtree_bb7934ab6a6d : + adaptiveCoverCheck 7 thetaAboveCell000023112102 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112102 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023112102) + (by + have h : ((childLL (childLL thetaAboveCell000023112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023112102)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023112102)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023112102)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023112102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023112102) + (by + have h : ((childLL (childLH thetaAboveCell000023112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023112102)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023112102)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023112102)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023112102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023112102) + (by + have h : ((childLL (childHL thetaAboveCell000023112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023112102)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023112102)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023112102)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023112102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023112102) + (by + have h : ((childLL (childHH thetaAboveCell000023112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023112102)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023112102)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023112102)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023112102)) h)) + +theorem cover_subtree_f960ce5080b6 : + adaptiveCoverCheck 7 thetaAboveCell000023112103 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112103 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023112103) + (by + have h : ((childLL (childLL thetaAboveCell000023112103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023112103)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023112103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023112103)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023112103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023112103)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023112103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023112103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023112103) + (by + have h : ((childLL (childLH thetaAboveCell000023112103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023112103)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023112103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023112103)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023112103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023112103)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023112103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023112103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023112103) + (by + have h : ((childLL (childHL thetaAboveCell000023112103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023112103)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023112103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023112103)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023112103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023112103)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023112103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023112103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023112103) + (by + have h : ((childLL (childHH thetaAboveCell000023112103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023112103)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023112103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023112103)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023112103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023112103)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023112103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023112103)) h)) + +theorem cover_subtree_be8b495598ef : + adaptiveCoverCheck 8 (childLL (childLH (childHL thetaAboveCell00002311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL thetaAboveCell00002311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112100 + (by + have h : ((childLL thetaAboveCell000023112100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023112100) h) + (by + have h : ((childLH thetaAboveCell000023112100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023112100) h) + (by + have h : ((childHL thetaAboveCell000023112100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023112100) h) + (by + have h : ((childHH thetaAboveCell000023112100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023112100) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112101 + (by + have h : ((childLL thetaAboveCell000023112101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023112101) h) + (by + have h : ((childLH thetaAboveCell000023112101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023112101) h) + (by + have h : ((childHL thetaAboveCell000023112101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023112101) h) + (by + have h : ((childHH thetaAboveCell000023112101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023112101) h)) + cover_subtree_bb7934ab6a6d + cover_subtree_f960ce5080b6 + +theorem cover_subtree_c24cbad7c860 : + adaptiveCoverCheck 7 thetaAboveCell000023112112 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112112 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023112112) + (by + have h : ((childLL (childLL thetaAboveCell000023112112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023112112)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023112112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023112112)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023112112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023112112)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023112112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023112112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023112112) + (by + have h : ((childLL (childLH thetaAboveCell000023112112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023112112)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023112112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023112112)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023112112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023112112)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023112112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023112112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023112112) + (by + have h : ((childLL (childHL thetaAboveCell000023112112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023112112)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023112112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023112112)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023112112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023112112)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023112112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023112112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023112112) + (by + have h : ((childLL (childHH thetaAboveCell000023112112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023112112)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023112112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023112112)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023112112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023112112)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023112112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023112112)) h)) + +theorem cover_subtree_5030364bf316 : + adaptiveCoverCheck 7 thetaAboveCell000023112113 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112113 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023112113) + (by + have h : ((childLL (childLL thetaAboveCell000023112113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023112113)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023112113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023112113)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023112113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023112113)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023112113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023112113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023112113) + (by + have h : ((childLL (childLH thetaAboveCell000023112113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023112113)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023112113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023112113)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023112113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023112113)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023112113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023112113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023112113) + (by + have h : ((childLL (childHL thetaAboveCell000023112113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023112113)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023112113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023112113)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023112113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023112113)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023112113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023112113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023112113) + (by + have h : ((childLL (childHH thetaAboveCell000023112113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023112113)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023112113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023112113)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023112113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023112113)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023112113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023112113)) h)) + +theorem cover_subtree_b9cce4a71b20 : + adaptiveCoverCheck 8 (childLH (childLH (childHL thetaAboveCell00002311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL thetaAboveCell00002311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112110 + (by + have h : ((childLL thetaAboveCell000023112110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023112110) h) + (by + have h : ((childLH thetaAboveCell000023112110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023112110) h) + (by + have h : ((childHL thetaAboveCell000023112110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023112110) h) + (by + have h : ((childHH thetaAboveCell000023112110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023112110) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112111 + (by + have h : ((childLL thetaAboveCell000023112111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023112111) h) + (by + have h : ((childLH thetaAboveCell000023112111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023112111) h) + (by + have h : ((childHL thetaAboveCell000023112111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023112111) h) + (by + have h : ((childHH thetaAboveCell000023112111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023112111) h)) + cover_subtree_c24cbad7c860 + cover_subtree_5030364bf316 + +theorem cover_subtree_f376dd8d0235 : + adaptiveCoverCheck 8 (childHL (childLH (childHL thetaAboveCell00002311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL thetaAboveCell00002311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112120 + (by + have h : ((childLL thetaAboveCell000023112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023112120) h) + (by + have h : ((childLH thetaAboveCell000023112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023112120) h) + (by + have h : ((childHL thetaAboveCell000023112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023112120) h) + (by + have h : ((childHH thetaAboveCell000023112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023112120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112121 + (by + have h : ((childLL thetaAboveCell000023112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023112121) h) + (by + have h : ((childLH thetaAboveCell000023112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023112121) h) + (by + have h : ((childHL thetaAboveCell000023112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023112121) h) + (by + have h : ((childHH thetaAboveCell000023112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023112121) h)) + (by + have h : (thetaAboveCell000023112122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023112122 h) + (by + have h : (thetaAboveCell000023112123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023112123 h) + +theorem cover_subtree_a9dfb54a5534 : + adaptiveCoverCheck 8 (childHH (childLH (childHL thetaAboveCell00002311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL thetaAboveCell00002311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112130 + (by + have h : ((childLL thetaAboveCell000023112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023112130) h) + (by + have h : ((childLH thetaAboveCell000023112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023112130) h) + (by + have h : ((childHL thetaAboveCell000023112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023112130) h) + (by + have h : ((childHH thetaAboveCell000023112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023112130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023112131 + (by + have h : ((childLL thetaAboveCell000023112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023112131) h) + (by + have h : ((childLH thetaAboveCell000023112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023112131) h) + (by + have h : ((childHL thetaAboveCell000023112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023112131) h) + (by + have h : ((childHH thetaAboveCell000023112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023112131) h)) + (by + have h : (thetaAboveCell000023112132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023112132 h) + (by + have h : (thetaAboveCell000023112133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023112133 h) + +theorem e24KC2ThetaAboveLeaf0000231121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00002311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00002311)) + cover_subtree_be8b495598ef + cover_subtree_b9cce4a71b20 + cover_subtree_f376dd8d0235 + cover_subtree_a9dfb54a5534 +theorem e24KC2ThetaAboveLeaf0000231122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00002311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00002311)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00002311))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00002311))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00002311))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00002311))) h) +theorem e24KC2ThetaAboveLeaf0000231123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00002311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00002311)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00002311))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00002311))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00002311))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00002311))) h) +theorem cover_subtree_d1cb21971feb : + adaptiveCoverCheck 7 thetaAboveCell000023113002 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113002 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023113002) + (by + have h : ((childLL (childLL thetaAboveCell000023113002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023113002)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023113002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023113002)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023113002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023113002)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023113002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023113002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023113002) + (by + have h : ((childLL (childLH thetaAboveCell000023113002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023113002)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023113002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023113002)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023113002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023113002)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023113002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023113002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023113002) + (by + have h : ((childLL (childHL thetaAboveCell000023113002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023113002)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023113002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023113002)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023113002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023113002)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023113002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023113002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023113002) + (by + have h : ((childLL (childHH thetaAboveCell000023113002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023113002)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023113002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023113002)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023113002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023113002)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023113002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023113002)) h)) + +theorem cover_subtree_3efb79a6f9e0 : + adaptiveCoverCheck 7 thetaAboveCell000023113003 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113003 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023113003) + (by + have h : ((childLL (childLL thetaAboveCell000023113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023113003)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023113003)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023113003)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023113003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023113003) + (by + have h : ((childLL (childLH thetaAboveCell000023113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023113003)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023113003)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023113003)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023113003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023113003) + (by + have h : ((childLL (childHL thetaAboveCell000023113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023113003)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023113003)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023113003)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023113003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023113003) + (by + have h : ((childLL (childHH thetaAboveCell000023113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023113003)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023113003)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023113003)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023113003)) h)) + +theorem cover_subtree_f6e1fff83561 : + adaptiveCoverCheck 8 (childLL (childLL (childHH thetaAboveCell00002311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH thetaAboveCell00002311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113000 + (by + have h : ((childLL thetaAboveCell000023113000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023113000) h) + (by + have h : ((childLH thetaAboveCell000023113000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023113000) h) + (by + have h : ((childHL thetaAboveCell000023113000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113000) h) + (by + have h : ((childHH thetaAboveCell000023113000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113000) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113001 + (by + have h : ((childLL thetaAboveCell000023113001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023113001) h) + (by + have h : ((childLH thetaAboveCell000023113001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023113001) h) + (by + have h : ((childHL thetaAboveCell000023113001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113001) h) + (by + have h : ((childHH thetaAboveCell000023113001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113001) h)) + cover_subtree_d1cb21971feb + cover_subtree_3efb79a6f9e0 + +theorem cover_subtree_4cb56c792c1b : + adaptiveCoverCheck 7 thetaAboveCell000023113012 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113012 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023113012) + (by + have h : ((childLL (childLL thetaAboveCell000023113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023113012)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023113012)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023113012)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023113012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023113012) + (by + have h : ((childLL (childLH thetaAboveCell000023113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023113012)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023113012)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023113012)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023113012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023113012) + (by + have h : ((childLL (childHL thetaAboveCell000023113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023113012)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023113012)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023113012)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023113012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023113012) + (by + have h : ((childLL (childHH thetaAboveCell000023113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023113012)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023113012)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023113012)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023113012)) h)) + +theorem cover_subtree_d84633da1a8a : + adaptiveCoverCheck 7 thetaAboveCell000023113013 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113013 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023113013) + (by + have h : ((childLL (childLL thetaAboveCell000023113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023113013)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023113013)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023113013)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023113013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023113013) + (by + have h : ((childLL (childLH thetaAboveCell000023113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023113013)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023113013)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023113013)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023113013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023113013) + (by + have h : ((childLL (childHL thetaAboveCell000023113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023113013)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023113013)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023113013)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023113013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023113013) + (by + have h : ((childLL (childHH thetaAboveCell000023113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023113013)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023113013)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023113013)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023113013)) h)) + +theorem cover_subtree_5c601c4361a5 : + adaptiveCoverCheck 8 (childLH (childLL (childHH thetaAboveCell00002311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH thetaAboveCell00002311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113010 + (by + have h : ((childLL thetaAboveCell000023113010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023113010) h) + (by + have h : ((childLH thetaAboveCell000023113010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023113010) h) + (by + have h : ((childHL thetaAboveCell000023113010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113010) h) + (by + have h : ((childHH thetaAboveCell000023113010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113010) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113011 + (by + have h : ((childLL thetaAboveCell000023113011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023113011) h) + (by + have h : ((childLH thetaAboveCell000023113011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023113011) h) + (by + have h : ((childHL thetaAboveCell000023113011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113011) h) + (by + have h : ((childHH thetaAboveCell000023113011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113011) h)) + cover_subtree_4cb56c792c1b + cover_subtree_d84633da1a8a + +theorem cover_subtree_7c8020e781ad : + adaptiveCoverCheck 8 (childHL (childLL (childHH thetaAboveCell00002311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH thetaAboveCell00002311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113020 + (by + have h : ((childLL thetaAboveCell000023113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023113020) h) + (by + have h : ((childLH thetaAboveCell000023113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023113020) h) + (by + have h : ((childHL thetaAboveCell000023113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113020) h) + (by + have h : ((childHH thetaAboveCell000023113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113021 + (by + have h : ((childLL thetaAboveCell000023113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023113021) h) + (by + have h : ((childLH thetaAboveCell000023113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023113021) h) + (by + have h : ((childHL thetaAboveCell000023113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113021) h) + (by + have h : ((childHH thetaAboveCell000023113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113021) h)) + (by + have h : (thetaAboveCell000023113022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023113022 h) + (by + have h : (thetaAboveCell000023113023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023113023 h) + +theorem cover_subtree_01c951b510fe : + adaptiveCoverCheck 8 (childHH (childLL (childHH thetaAboveCell00002311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH thetaAboveCell00002311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113030 + (by + have h : ((childLL thetaAboveCell000023113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023113030) h) + (by + have h : ((childLH thetaAboveCell000023113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023113030) h) + (by + have h : ((childHL thetaAboveCell000023113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113030) h) + (by + have h : ((childHH thetaAboveCell000023113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113031 + (by + have h : ((childLL thetaAboveCell000023113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023113031) h) + (by + have h : ((childLH thetaAboveCell000023113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023113031) h) + (by + have h : ((childHL thetaAboveCell000023113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113031) h) + (by + have h : ((childHH thetaAboveCell000023113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113031) h)) + (by + have h : (thetaAboveCell000023113032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023113032 h) + (by + have h : (thetaAboveCell000023113033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023113033 h) + +theorem e24KC2ThetaAboveLeaf0000231130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00002311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00002311)) + cover_subtree_f6e1fff83561 + cover_subtree_5c601c4361a5 + cover_subtree_7c8020e781ad + cover_subtree_01c951b510fe +theorem cover_subtree_195c372ae99b : + adaptiveCoverCheck 7 thetaAboveCell000023113102 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113102 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023113102) + (by + have h : ((childLL (childLL thetaAboveCell000023113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023113102)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023113102)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023113102)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023113102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023113102) + (by + have h : ((childLL (childLH thetaAboveCell000023113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023113102)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023113102)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023113102)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023113102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023113102) + (by + have h : ((childLL (childHL thetaAboveCell000023113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023113102)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023113102)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023113102)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023113102)) h)) + (by + have h : ((childHH thetaAboveCell000023113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113102) h) + +theorem cover_subtree_d1cce1dbdb65 : + adaptiveCoverCheck 7 thetaAboveCell000023113103 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113103 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023113103) + (by + have h : ((childLL (childLL thetaAboveCell000023113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023113103)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023113103)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023113103)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023113103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023113103) + (by + have h : ((childLL (childLH thetaAboveCell000023113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023113103)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023113103)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023113103)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023113103)) h)) + (by + have h : ((childHL thetaAboveCell000023113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113103) h) + (by + have h : ((childHH thetaAboveCell000023113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113103) h) + +theorem cover_subtree_f77ed6807865 : + adaptiveCoverCheck 8 (childLL (childLH (childHH thetaAboveCell00002311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH thetaAboveCell00002311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113100 + (by + have h : ((childLL thetaAboveCell000023113100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023113100) h) + (by + have h : ((childLH thetaAboveCell000023113100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023113100) h) + (by + have h : ((childHL thetaAboveCell000023113100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113100) h) + (by + have h : ((childHH thetaAboveCell000023113100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113100) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113101 + (by + have h : ((childLL thetaAboveCell000023113101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023113101) h) + (by + have h : ((childLH thetaAboveCell000023113101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023113101) h) + (by + have h : ((childHL thetaAboveCell000023113101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113101) h) + (by + have h : ((childHH thetaAboveCell000023113101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113101) h)) + cover_subtree_195c372ae99b + cover_subtree_d1cce1dbdb65 + +theorem cover_subtree_93cb889e1841 : + adaptiveCoverCheck 7 thetaAboveCell000023113112 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113112 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023113112) + (by + have h : ((childLL (childLL thetaAboveCell000023113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023113112)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023113112)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023113112)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023113112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023113112) + (by + have h : ((childLL (childLH thetaAboveCell000023113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023113112)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023113112)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023113112)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023113112)) h)) + (by + have h : ((childHL thetaAboveCell000023113112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113112) h) + (by + have h : ((childHH thetaAboveCell000023113112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113112) h) + +theorem cover_subtree_dd2e8b0050d0 : + adaptiveCoverCheck 7 thetaAboveCell000023113113 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113113 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023113113) + (by + have h : ((childLL (childLL thetaAboveCell000023113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023113113)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023113113)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023113113)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023113113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023113113) + (by + have h : ((childLL (childLH thetaAboveCell000023113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023113113)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023113113)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023113113)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023113113)) h)) + (by + have h : ((childHL thetaAboveCell000023113113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113113) h) + (by + have h : ((childHH thetaAboveCell000023113113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113113) h) + +theorem cover_subtree_9bd401d941dd : + adaptiveCoverCheck 8 (childLH (childLH (childHH thetaAboveCell00002311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH thetaAboveCell00002311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113110 + (by + have h : ((childLL thetaAboveCell000023113110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023113110) h) + (by + have h : ((childLH thetaAboveCell000023113110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023113110) h) + (by + have h : ((childHL thetaAboveCell000023113110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113110) h) + (by + have h : ((childHH thetaAboveCell000023113110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113110) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113111 + (by + have h : ((childLL thetaAboveCell000023113111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023113111) h) + (by + have h : ((childLH thetaAboveCell000023113111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023113111) h) + (by + have h : ((childHL thetaAboveCell000023113111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113111) h) + (by + have h : ((childHH thetaAboveCell000023113111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113111) h)) + cover_subtree_93cb889e1841 + cover_subtree_dd2e8b0050d0 + +theorem cover_subtree_17ce5f0eb4e5 : + adaptiveCoverCheck 8 (childHL (childLH (childHH thetaAboveCell00002311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH thetaAboveCell00002311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113120 + (by + have h : ((childLL thetaAboveCell000023113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023113120) h) + (by + have h : ((childLH thetaAboveCell000023113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023113120) h) + (by + have h : ((childHL thetaAboveCell000023113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113120) h) + (by + have h : ((childHH thetaAboveCell000023113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113121 + (by + have h : ((childLL thetaAboveCell000023113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023113121) h) + (by + have h : ((childLH thetaAboveCell000023113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023113121) h) + (by + have h : ((childHL thetaAboveCell000023113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113121) h) + (by + have h : ((childHH thetaAboveCell000023113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113121) h)) + (by + have h : (thetaAboveCell000023113122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023113122 h) + (by + have h : (thetaAboveCell000023113123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023113123 h) + +theorem cover_subtree_167fbbc5bd30 : + adaptiveCoverCheck 8 (childHH (childLH (childHH thetaAboveCell00002311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH thetaAboveCell00002311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113130 + (by + have h : ((childLL thetaAboveCell000023113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023113130) h) + (by + have h : ((childLH thetaAboveCell000023113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023113130) h) + (by + have h : ((childHL thetaAboveCell000023113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113130) h) + (by + have h : ((childHH thetaAboveCell000023113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023113131 + (by + have h : ((childLL thetaAboveCell000023113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023113131) h) + (by + have h : ((childLH thetaAboveCell000023113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023113131) h) + (by + have h : ((childHL thetaAboveCell000023113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023113131) h) + (by + have h : ((childHH thetaAboveCell000023113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023113131) h)) + (by + have h : (thetaAboveCell000023113132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023113132 h) + (by + have h : (thetaAboveCell000023113133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023113133 h) + +theorem e24KC2ThetaAboveLeaf0000231131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00002311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00002311)) + cover_subtree_f77ed6807865 + cover_subtree_9bd401d941dd + cover_subtree_17ce5f0eb4e5 + cover_subtree_167fbbc5bd30 +theorem e24KC2ThetaAboveLeaf0000231132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00002311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00002311)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00002311))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00002311))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00002311))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00002311))) h) +theorem e24KC2ThetaAboveLeaf0000231133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00002311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00002311)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00002311))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00002311))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00002311))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00002311))) h) +theorem e24KC2ThetaAboveLeaf0000320002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00003200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00003200)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00003200))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00003200))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childLL + thetaAboveCell00003200))) + (by + have h : (thetaAboveCell000032000220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032000220 h) + (by + have h : (thetaAboveCell000032000221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032000221 h) + (by + have h : (thetaAboveCell000032000222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032000222 h) + (by + have h : (thetaAboveCell000032000223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032000223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childLL + thetaAboveCell00003200))) + (by + have h : (thetaAboveCell000032000230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032000230 h) + (by + have h : (thetaAboveCell000032000231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032000231 h) + (by + have h : (thetaAboveCell000032000232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032000232 h) + (by + have h : (thetaAboveCell000032000233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032000233 h)) +theorem e24KC2ThetaAboveLeaf0000320003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00003200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00003200)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00003200))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00003200))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childLL + thetaAboveCell00003200))) + (by + have h : (thetaAboveCell000032000320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032000320 h) + (by + have h : (thetaAboveCell000032000321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032000321 h) + (by + have h : (thetaAboveCell000032000322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032000322 h) + (by + have h : (thetaAboveCell000032000323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032000323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childLL + thetaAboveCell00003200))) + (by + have h : (thetaAboveCell000032000330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032000330 h) + (by + have h : (thetaAboveCell000032000331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032000331 h) + (by + have h : (thetaAboveCell000032000332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032000332 h) + (by + have h : (thetaAboveCell000032000333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032000333 h)) +theorem e24KC2ThetaAboveLeaf0000320012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00003200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00003200)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00003200))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00003200))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childLH + thetaAboveCell00003200))) + (by + have h : (thetaAboveCell000032001220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032001220 h) + (by + have h : (thetaAboveCell000032001221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032001221 h) + (by + have h : (thetaAboveCell000032001222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032001222 h) + (by + have h : (thetaAboveCell000032001223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032001223 h)) + (by + have h : ((childHH (childHL (childLH thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLH + thetaAboveCell00003200))) h) +theorem e24KC2ThetaAboveLeaf0000320013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00003200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00003200)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00003200))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00003200))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLH + thetaAboveCell00003200))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLH + thetaAboveCell00003200))) h) +theorem cover_subtree_dc923db2d444 : + adaptiveCoverCheck 7 thetaAboveCell000032002002 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002002 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000032002002) + (by + have h : ((childLL (childLL thetaAboveCell000032002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000032002002)) h) + (by + have h : ((childLH (childLL thetaAboveCell000032002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000032002002)) h) + (by + have h : ((childHL (childLL thetaAboveCell000032002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000032002002)) h) + (by + have h : ((childHH (childLL thetaAboveCell000032002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000032002002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000032002002) + (by + have h : ((childLL (childLH thetaAboveCell000032002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000032002002)) h) + (by + have h : ((childLH (childLH thetaAboveCell000032002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000032002002)) h) + (by + have h : ((childHL (childLH thetaAboveCell000032002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000032002002)) h) + (by + have h : ((childHH (childLH thetaAboveCell000032002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000032002002)) h)) + (by + have h : ((childHL thetaAboveCell000032002002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002002) h) + (by + have h : ((childHH thetaAboveCell000032002002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002002) h) + +theorem cover_subtree_3d16a69d20d7 : + adaptiveCoverCheck 7 thetaAboveCell000032002003 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002003 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000032002003) + (by + have h : ((childLL (childLL thetaAboveCell000032002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000032002003)) h) + (by + have h : ((childLH (childLL thetaAboveCell000032002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000032002003)) h) + (by + have h : ((childHL (childLL thetaAboveCell000032002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000032002003)) h) + (by + have h : ((childHH (childLL thetaAboveCell000032002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000032002003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000032002003) + (by + have h : ((childLL (childLH thetaAboveCell000032002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000032002003)) h) + (by + have h : ((childLH (childLH thetaAboveCell000032002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000032002003)) h) + (by + have h : ((childHL (childLH thetaAboveCell000032002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000032002003)) h) + (by + have h : ((childHH (childLH thetaAboveCell000032002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000032002003)) h)) + (by + have h : ((childHL thetaAboveCell000032002003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002003) h) + (by + have h : ((childHH thetaAboveCell000032002003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002003) h) + +theorem cover_subtree_80a354cc93c8 : + adaptiveCoverCheck 8 (childLL (childLL (childHL thetaAboveCell00003200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL thetaAboveCell00003200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002000 + (by + have h : ((childLL thetaAboveCell000032002000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002000) h) + (by + have h : ((childLH thetaAboveCell000032002000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002000) h) + (by + have h : ((childHL thetaAboveCell000032002000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002000) h) + (by + have h : ((childHH thetaAboveCell000032002000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002000) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002001 + (by + have h : ((childLL thetaAboveCell000032002001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002001) h) + (by + have h : ((childLH thetaAboveCell000032002001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002001) h) + (by + have h : ((childHL thetaAboveCell000032002001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002001) h) + (by + have h : ((childHH thetaAboveCell000032002001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002001) h)) + cover_subtree_dc923db2d444 + cover_subtree_3d16a69d20d7 + +theorem cover_subtree_0a679df94e2d : + adaptiveCoverCheck 7 thetaAboveCell000032002012 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002012 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000032002012) + (by + have h : ((childLL (childLL thetaAboveCell000032002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000032002012)) h) + (by + have h : ((childLH (childLL thetaAboveCell000032002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000032002012)) h) + (by + have h : ((childHL (childLL thetaAboveCell000032002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000032002012)) h) + (by + have h : ((childHH (childLL thetaAboveCell000032002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000032002012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000032002012) + (by + have h : ((childLL (childLH thetaAboveCell000032002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000032002012)) h) + (by + have h : ((childLH (childLH thetaAboveCell000032002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000032002012)) h) + (by + have h : ((childHL (childLH thetaAboveCell000032002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000032002012)) h) + (by + have h : ((childHH (childLH thetaAboveCell000032002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000032002012)) h)) + (by + have h : ((childHL thetaAboveCell000032002012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002012) h) + (by + have h : ((childHH thetaAboveCell000032002012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002012) h) + +theorem cover_subtree_a9518d4839ee : + adaptiveCoverCheck 7 thetaAboveCell000032002013 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002013 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000032002013) + (by + have h : ((childLL (childLL thetaAboveCell000032002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000032002013)) h) + (by + have h : ((childLH (childLL thetaAboveCell000032002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000032002013)) h) + (by + have h : ((childHL (childLL thetaAboveCell000032002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000032002013)) h) + (by + have h : ((childHH (childLL thetaAboveCell000032002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000032002013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000032002013) + (by + have h : ((childLL (childLH thetaAboveCell000032002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000032002013)) h) + (by + have h : ((childLH (childLH thetaAboveCell000032002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000032002013)) h) + (by + have h : ((childHL (childLH thetaAboveCell000032002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000032002013)) h) + (by + have h : ((childHH (childLH thetaAboveCell000032002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000032002013)) h)) + (by + have h : ((childHL thetaAboveCell000032002013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002013) h) + (by + have h : ((childHH thetaAboveCell000032002013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002013) h) + +theorem cover_subtree_69eb32740a9f : + adaptiveCoverCheck 8 (childLH (childLL (childHL thetaAboveCell00003200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL thetaAboveCell00003200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002010 + (by + have h : ((childLL thetaAboveCell000032002010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002010) h) + (by + have h : ((childLH thetaAboveCell000032002010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002010) h) + (by + have h : ((childHL thetaAboveCell000032002010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002010) h) + (by + have h : ((childHH thetaAboveCell000032002010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002010) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002011 + (by + have h : ((childLL thetaAboveCell000032002011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002011) h) + (by + have h : ((childLH thetaAboveCell000032002011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002011) h) + (by + have h : ((childHL thetaAboveCell000032002011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002011) h) + (by + have h : ((childHH thetaAboveCell000032002011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002011) h)) + cover_subtree_0a679df94e2d + cover_subtree_a9518d4839ee + +theorem cover_subtree_0afe6e641e2b : + adaptiveCoverCheck 8 (childHL (childLL (childHL thetaAboveCell00003200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL thetaAboveCell00003200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002020 + (by + have h : ((childLL thetaAboveCell000032002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002020) h) + (by + have h : ((childLH thetaAboveCell000032002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002020) h) + (by + have h : ((childHL thetaAboveCell000032002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002020) h) + (by + have h : ((childHH thetaAboveCell000032002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002021 + (by + have h : ((childLL thetaAboveCell000032002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002021) h) + (by + have h : ((childLH thetaAboveCell000032002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002021) h) + (by + have h : ((childHL thetaAboveCell000032002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002021) h) + (by + have h : ((childHH thetaAboveCell000032002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002021) h)) + (by + have h : (thetaAboveCell000032002022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032002022 h) + (by + have h : (thetaAboveCell000032002023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032002023 h) + +theorem cover_subtree_13f8c37ba985 : + adaptiveCoverCheck 8 (childHH (childLL (childHL thetaAboveCell00003200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL thetaAboveCell00003200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002030 + (by + have h : ((childLL thetaAboveCell000032002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002030) h) + (by + have h : ((childLH thetaAboveCell000032002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002030) h) + (by + have h : ((childHL thetaAboveCell000032002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002030) h) + (by + have h : ((childHH thetaAboveCell000032002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002031 + (by + have h : ((childLL thetaAboveCell000032002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002031) h) + (by + have h : ((childLH thetaAboveCell000032002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002031) h) + (by + have h : ((childHL thetaAboveCell000032002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002031) h) + (by + have h : ((childHH thetaAboveCell000032002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002031) h)) + (by + have h : (thetaAboveCell000032002032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032002032 h) + (by + have h : (thetaAboveCell000032002033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032002033 h) + +theorem e24KC2ThetaAboveLeaf0000320020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00003200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00003200)) + cover_subtree_80a354cc93c8 + cover_subtree_69eb32740a9f + cover_subtree_0afe6e641e2b + cover_subtree_13f8c37ba985 +theorem cover_subtree_6185ee76a9ce : + adaptiveCoverCheck 8 (childLL (childLH (childHL thetaAboveCell00003200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL thetaAboveCell00003200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002100 + (by + have h : ((childLL thetaAboveCell000032002100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002100) h) + (by + have h : ((childLH thetaAboveCell000032002100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002100) h) + (by + have h : ((childHL thetaAboveCell000032002100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002100) h) + (by + have h : ((childHH thetaAboveCell000032002100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002100) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002101 + (by + have h : ((childLL thetaAboveCell000032002101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002101) h) + (by + have h : ((childLH thetaAboveCell000032002101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002101) h) + (by + have h : ((childHL thetaAboveCell000032002101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002101) h) + (by + have h : ((childHH thetaAboveCell000032002101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002101) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002102 + (by + have h : ((childLL thetaAboveCell000032002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002102) h) + (by + have h : ((childLH thetaAboveCell000032002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002102) h) + (by + have h : ((childHL thetaAboveCell000032002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002102) h) + (by + have h : ((childHH thetaAboveCell000032002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002103 + (by + have h : ((childLL thetaAboveCell000032002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002103) h) + (by + have h : ((childLH thetaAboveCell000032002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002103) h) + (by + have h : ((childHL thetaAboveCell000032002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002103) h) + (by + have h : ((childHH thetaAboveCell000032002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002103) h)) + +theorem cover_subtree_d6e21884e5c8 : + adaptiveCoverCheck 8 (childLH (childLH (childHL thetaAboveCell00003200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL thetaAboveCell00003200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002110 + (by + have h : ((childLL thetaAboveCell000032002110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002110) h) + (by + have h : ((childLH thetaAboveCell000032002110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002110) h) + (by + have h : ((childHL thetaAboveCell000032002110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002110) h) + (by + have h : ((childHH thetaAboveCell000032002110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002110) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002111 + (by + have h : ((childLL thetaAboveCell000032002111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002111) h) + (by + have h : ((childLH thetaAboveCell000032002111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002111) h) + (by + have h : ((childHL thetaAboveCell000032002111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002111) h) + (by + have h : ((childHH thetaAboveCell000032002111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002111) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002112 + (by + have h : ((childLL thetaAboveCell000032002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002112) h) + (by + have h : ((childLH thetaAboveCell000032002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002112) h) + (by + have h : ((childHL thetaAboveCell000032002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002112) h) + (by + have h : ((childHH thetaAboveCell000032002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002113 + (by + have h : ((childLL thetaAboveCell000032002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002113) h) + (by + have h : ((childLH thetaAboveCell000032002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002113) h) + (by + have h : ((childHL thetaAboveCell000032002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002113) h) + (by + have h : ((childHH thetaAboveCell000032002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002113) h)) + +theorem cover_subtree_d4ae0081215d : + adaptiveCoverCheck 8 (childHL (childLH (childHL thetaAboveCell00003200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL thetaAboveCell00003200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002120 + (by + have h : ((childLL thetaAboveCell000032002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002120) h) + (by + have h : ((childLH thetaAboveCell000032002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002120) h) + (by + have h : ((childHL thetaAboveCell000032002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002120) h) + (by + have h : ((childHH thetaAboveCell000032002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002121 + (by + have h : ((childLL thetaAboveCell000032002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002121) h) + (by + have h : ((childLH thetaAboveCell000032002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002121) h) + (by + have h : ((childHL thetaAboveCell000032002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002121) h) + (by + have h : ((childHH thetaAboveCell000032002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002121) h)) + (by + have h : (thetaAboveCell000032002122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032002122 h) + (by + have h : (thetaAboveCell000032002123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032002123 h) + +theorem cover_subtree_14b21c11f4bb : + adaptiveCoverCheck 8 (childHH (childLH (childHL thetaAboveCell00003200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL thetaAboveCell00003200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002130 + (by + have h : ((childLL thetaAboveCell000032002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002130) h) + (by + have h : ((childLH thetaAboveCell000032002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002130) h) + (by + have h : ((childHL thetaAboveCell000032002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002130) h) + (by + have h : ((childHH thetaAboveCell000032002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032002131 + (by + have h : ((childLL thetaAboveCell000032002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032002131) h) + (by + have h : ((childLH thetaAboveCell000032002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032002131) h) + (by + have h : ((childHL thetaAboveCell000032002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032002131) h) + (by + have h : ((childHH thetaAboveCell000032002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032002131) h)) + (by + have h : (thetaAboveCell000032002132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032002132 h) + (by + have h : (thetaAboveCell000032002133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032002133 h) + +theorem e24KC2ThetaAboveLeaf0000320021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00003200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00003200)) + cover_subtree_6185ee76a9ce + cover_subtree_d6e21884e5c8 + cover_subtree_d4ae0081215d + cover_subtree_14b21c11f4bb +theorem e24KC2ThetaAboveLeaf0000320022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00003200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00003200)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00003200))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00003200))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00003200))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00003200))) h) +theorem e24KC2ThetaAboveLeaf0000320023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00003200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00003200)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00003200))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00003200))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00003200))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00003200))) h) +theorem cover_subtree_0c3f9f5d2a22 : + adaptiveCoverCheck 8 (childLL (childLL (childHH thetaAboveCell00003200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH thetaAboveCell00003200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003000 + (by + have h : ((childLL thetaAboveCell000032003000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003000) h) + (by + have h : ((childLH thetaAboveCell000032003000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003000) h) + (by + have h : ((childHL thetaAboveCell000032003000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003000) h) + (by + have h : ((childHH thetaAboveCell000032003000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003000) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003001 + (by + have h : ((childLL thetaAboveCell000032003001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003001) h) + (by + have h : ((childLH thetaAboveCell000032003001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003001) h) + (by + have h : ((childHL thetaAboveCell000032003001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003001) h) + (by + have h : ((childHH thetaAboveCell000032003001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003001) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003002 + (by + have h : ((childLL thetaAboveCell000032003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003002) h) + (by + have h : ((childLH thetaAboveCell000032003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003002) h) + (by + have h : ((childHL thetaAboveCell000032003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003002) h) + (by + have h : ((childHH thetaAboveCell000032003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003003 + (by + have h : ((childLL thetaAboveCell000032003003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003003) h) + (by + have h : ((childLH thetaAboveCell000032003003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003003) h) + (by + have h : ((childHL thetaAboveCell000032003003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003003) h) + (by + have h : ((childHH thetaAboveCell000032003003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003003) h)) + +theorem cover_subtree_e68bbaf0142c : + adaptiveCoverCheck 8 (childLH (childLL (childHH thetaAboveCell00003200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH thetaAboveCell00003200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003010 + (by + have h : ((childLL thetaAboveCell000032003010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003010) h) + (by + have h : ((childLH thetaAboveCell000032003010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003010) h) + (by + have h : ((childHL thetaAboveCell000032003010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003010) h) + (by + have h : ((childHH thetaAboveCell000032003010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003010) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003011 + (by + have h : ((childLL thetaAboveCell000032003011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003011) h) + (by + have h : ((childLH thetaAboveCell000032003011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003011) h) + (by + have h : ((childHL thetaAboveCell000032003011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003011) h) + (by + have h : ((childHH thetaAboveCell000032003011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003011) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003012 + (by + have h : ((childLL thetaAboveCell000032003012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003012) h) + (by + have h : ((childLH thetaAboveCell000032003012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003012) h) + (by + have h : ((childHL thetaAboveCell000032003012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003012) h) + (by + have h : ((childHH thetaAboveCell000032003012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003013 + (by + have h : ((childLL thetaAboveCell000032003013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003013) h) + (by + have h : ((childLH thetaAboveCell000032003013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003013) h) + (by + have h : ((childHL thetaAboveCell000032003013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003013) h) + (by + have h : ((childHH thetaAboveCell000032003013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003013) h)) + +theorem cover_subtree_80b59cc08427 : + adaptiveCoverCheck 8 (childHL (childLL (childHH thetaAboveCell00003200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH thetaAboveCell00003200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003020 + (by + have h : ((childLL thetaAboveCell000032003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003020) h) + (by + have h : ((childLH thetaAboveCell000032003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003020) h) + (by + have h : ((childHL thetaAboveCell000032003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003020) h) + (by + have h : ((childHH thetaAboveCell000032003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003021 + (by + have h : ((childLL thetaAboveCell000032003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003021) h) + (by + have h : ((childLH thetaAboveCell000032003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003021) h) + (by + have h : ((childHL thetaAboveCell000032003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003021) h) + (by + have h : ((childHH thetaAboveCell000032003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003021) h)) + (by + have h : (thetaAboveCell000032003022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032003022 h) + (by + have h : (thetaAboveCell000032003023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032003023 h) + +theorem cover_subtree_45a4c3e7665d : + adaptiveCoverCheck 8 (childHH (childLL (childHH thetaAboveCell00003200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH thetaAboveCell00003200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003030 + (by + have h : ((childLL thetaAboveCell000032003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003030) h) + (by + have h : ((childLH thetaAboveCell000032003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003030) h) + (by + have h : ((childHL thetaAboveCell000032003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003030) h) + (by + have h : ((childHH thetaAboveCell000032003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003031 + (by + have h : ((childLL thetaAboveCell000032003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003031) h) + (by + have h : ((childLH thetaAboveCell000032003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003031) h) + (by + have h : ((childHL thetaAboveCell000032003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003031) h) + (by + have h : ((childHH thetaAboveCell000032003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003031) h)) + (by + have h : (thetaAboveCell000032003032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032003032 h) + (by + have h : (thetaAboveCell000032003033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032003033 h) + +theorem e24KC2ThetaAboveLeaf0000320030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00003200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00003200)) + cover_subtree_0c3f9f5d2a22 + cover_subtree_e68bbaf0142c + cover_subtree_80b59cc08427 + cover_subtree_45a4c3e7665d +theorem cover_subtree_cabec6ebeaec : + adaptiveCoverCheck 8 (childLL (childLH (childHH thetaAboveCell00003200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH thetaAboveCell00003200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003100 + (by + have h : ((childLL thetaAboveCell000032003100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003100) h) + (by + have h : ((childLH thetaAboveCell000032003100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003100) h) + (by + have h : ((childHL thetaAboveCell000032003100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003100) h) + (by + have h : ((childHH thetaAboveCell000032003100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003100) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003101 + (by + have h : ((childLL thetaAboveCell000032003101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003101) h) + (by + have h : ((childLH thetaAboveCell000032003101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003101) h) + (by + have h : ((childHL thetaAboveCell000032003101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003101) h) + (by + have h : ((childHH thetaAboveCell000032003101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003101) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003102 + (by + have h : ((childLL thetaAboveCell000032003102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003102) h) + (by + have h : ((childLH thetaAboveCell000032003102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003102) h) + (by + have h : ((childHL thetaAboveCell000032003102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003102) h) + (by + have h : ((childHH thetaAboveCell000032003102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003103 + (by + have h : ((childLL thetaAboveCell000032003103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003103) h) + (by + have h : ((childLH thetaAboveCell000032003103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003103) h) + (by + have h : ((childHL thetaAboveCell000032003103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003103) h) + (by + have h : ((childHH thetaAboveCell000032003103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003103) h)) + +theorem cover_subtree_f94fc5a27c16 : + adaptiveCoverCheck 8 (childLH (childLH (childHH thetaAboveCell00003200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH thetaAboveCell00003200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003110 + (by + have h : ((childLL thetaAboveCell000032003110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003110) h) + (by + have h : ((childLH thetaAboveCell000032003110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003110) h) + (by + have h : ((childHL thetaAboveCell000032003110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003110) h) + (by + have h : ((childHH thetaAboveCell000032003110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003110) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003111 + (by + have h : ((childLL thetaAboveCell000032003111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003111) h) + (by + have h : ((childLH thetaAboveCell000032003111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003111) h) + (by + have h : ((childHL thetaAboveCell000032003111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003111) h) + (by + have h : ((childHH thetaAboveCell000032003111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003111) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003112 + (by + have h : ((childLL thetaAboveCell000032003112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003112) h) + (by + have h : ((childLH thetaAboveCell000032003112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003112) h) + (by + have h : ((childHL thetaAboveCell000032003112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003112) h) + (by + have h : ((childHH thetaAboveCell000032003112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003113 + (by + have h : ((childLL thetaAboveCell000032003113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003113) h) + (by + have h : ((childLH thetaAboveCell000032003113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003113) h) + (by + have h : ((childHL thetaAboveCell000032003113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003113) h) + (by + have h : ((childHH thetaAboveCell000032003113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003113) h)) + +theorem cover_subtree_5a58662c5bc0 : + adaptiveCoverCheck 8 (childHL (childLH (childHH thetaAboveCell00003200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH thetaAboveCell00003200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003120 + (by + have h : ((childLL thetaAboveCell000032003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003120) h) + (by + have h : ((childLH thetaAboveCell000032003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003120) h) + (by + have h : ((childHL thetaAboveCell000032003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003120) h) + (by + have h : ((childHH thetaAboveCell000032003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003121 + (by + have h : ((childLL thetaAboveCell000032003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003121) h) + (by + have h : ((childLH thetaAboveCell000032003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003121) h) + (by + have h : ((childHL thetaAboveCell000032003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003121) h) + (by + have h : ((childHH thetaAboveCell000032003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003121) h)) + (by + have h : (thetaAboveCell000032003122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032003122 h) + (by + have h : (thetaAboveCell000032003123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032003123 h) + +theorem cover_subtree_38aaf5d7c82e : + adaptiveCoverCheck 8 (childHH (childLH (childHH thetaAboveCell00003200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH thetaAboveCell00003200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003130 + (by + have h : ((childLL thetaAboveCell000032003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003130) h) + (by + have h : ((childLH thetaAboveCell000032003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003130) h) + (by + have h : ((childHL thetaAboveCell000032003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003130) h) + (by + have h : ((childHH thetaAboveCell000032003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032003131 + (by + have h : ((childLL thetaAboveCell000032003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032003131) h) + (by + have h : ((childLH thetaAboveCell000032003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032003131) h) + (by + have h : ((childHL thetaAboveCell000032003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032003131) h) + (by + have h : ((childHH thetaAboveCell000032003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032003131) h)) + (by + have h : (thetaAboveCell000032003132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032003132 h) + (by + have h : (thetaAboveCell000032003133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032003133 h) + +theorem e24KC2ThetaAboveLeaf0000320031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00003200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00003200)) + cover_subtree_cabec6ebeaec + cover_subtree_f94fc5a27c16 + cover_subtree_5a58662c5bc0 + cover_subtree_38aaf5d7c82e +theorem e24KC2ThetaAboveLeaf0000320032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00003200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00003200)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00003200))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00003200))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00003200))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00003200))) h) +theorem e24KC2ThetaAboveLeaf0000320033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00003200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00003200)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00003200))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00003200))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00003200))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00003200))) h) +theorem e24KC2ThetaAboveLeaf0000320102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00003201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00003201)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00003201))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00003201))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLL + thetaAboveCell00003201))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLL + thetaAboveCell00003201))) h) +theorem e24KC2ThetaAboveLeaf0000320103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00003201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00003201)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00003201))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00003201))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLL + thetaAboveCell00003201))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLL + thetaAboveCell00003201))) h) +theorem e24KC2ThetaAboveLeaf0000320112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00003201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00003201)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00003201))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00003201))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLH + thetaAboveCell00003201))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLH + thetaAboveCell00003201))) h) +theorem e24KC2ThetaAboveLeaf0000320113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00003201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00003201)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00003201))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00003201))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLH + thetaAboveCell00003201))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLH + thetaAboveCell00003201))) h) + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle005.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle005.lean new file mode 100644 index 0000000000..0108fe293b --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle005.lean @@ -0,0 +1,11109 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch006`. +* `GerverSofa.KernelOnly.PartE.Certificates.Batch028`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCells3b1d8a0c5a + +/-- Subcell `0001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0001 : AngleCell := + childLH (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0002 : AngleCell := + childHL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0003 : AngleCell := + childHH (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0010 : AngleCell := + childLL (childLH (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0011 : AngleCell := + childLH (childLH (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell0010))) + +/-- Subcell `00102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell0010))) + +/-- Subcell `00102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell0010))) + +/-- Subcell `00102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell0010))) + +/-- Subcell `00102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell0010))) + +/-- Subcell `00102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell0010))) + +/-- Subcell `00102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell0010))) + +/-- Subcell `00102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell0010))) + +/-- Subcell `00102120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell0010))) + +/-- Subcell `00102121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell0010))) + +/-- Subcell `00102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell0010))) + +/-- Subcell `00102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell0010))) + +/-- Subcell `00102130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell0010))) + +/-- Subcell `00102131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell0010))) + +/-- Subcell `00102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell0010))) + +/-- Subcell `00102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell0010))) + +/-- Subcell `00102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00103020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell0010))) + +/-- Subcell `00103021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell0010))) + +/-- Subcell `00103022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell0010))) + +/-- Subcell `00103023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell0010))) + +/-- Subcell `00103030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell0010))) + +/-- Subcell `00103031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell0010))) + +/-- Subcell `00103032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell0010))) + +/-- Subcell `00103033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell0010))) + +/-- Subcell `00103120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell0010))) + +/-- Subcell `00103121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell0010))) + +/-- Subcell `00103122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell0010))) + +/-- Subcell `00103123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell0010))) + +/-- Subcell `00103130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell0010))) + +/-- Subcell `00103131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell0010))) + +/-- Subcell `00103132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell0010))) + +/-- Subcell `00103133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell0010))) + +/-- Subcell `00103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00112020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell0011))) + +/-- Subcell `00112021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell0011))) + +/-- Subcell `00112022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell0011))) + +/-- Subcell `00112023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell0011))) + +/-- Subcell `00112030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell0011))) + +/-- Subcell `00112031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell0011))) + +/-- Subcell `00112032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell0011))) + +/-- Subcell `00112033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell0011))) + +/-- Subcell `00112120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell0011))) + +/-- Subcell `00112121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell0011))) + +/-- Subcell `00112122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell0011))) + +/-- Subcell `00112123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell0011))) + +/-- Subcell `00112130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell0011))) + +/-- Subcell `00112131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell0011))) + +/-- Subcell `00112132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell0011))) + +/-- Subcell `00112133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell0011))) + +/-- Subcell `00112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0011))) + +end GerverSofa.PartE.CertificateCells3b1d8a0c5a + +namespace GerverSofa.PartE.CertificateCells3658ca4972 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113210 : AngleCell := + childLL (childLH (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113211 : AngleCell := + childLH (childLH (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113300 : AngleCell := + childLL (childLL (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113301 : AngleCell := + childLH (childLL (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113310 : AngleCell := + childLL (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111132101020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101020 : AngleCell := + childLL (childHL (childLL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101021 : AngleCell := + childLH (childHL (childLL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101022 : AngleCell := + childHL (childHL (childLL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101023 : AngleCell := + childHH (childHL (childLL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101030 : AngleCell := + childLL (childHH (childLL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101031 : AngleCell := + childLH (childHH (childLL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101032 : AngleCell := + childHL (childHH (childLL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101033 : AngleCell := + childHH (childHH (childLL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101120 : AngleCell := + childLL (childHL (childLH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101121 : AngleCell := + childLH (childHL (childLH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101122 : AngleCell := + childHL (childHL (childLH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101123 : AngleCell := + childHH (childHL (childLH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101130 : AngleCell := + childLL (childHH (childLH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101131 : AngleCell := + childLH (childHH (childLH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101132 : AngleCell := + childHL (childHH (childLH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101133 : AngleCell := + childHH (childHH (childLH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101200 : AngleCell := + childLL (childLL (childHL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101201 : AngleCell := + childLH (childLL (childHL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101202 : AngleCell := + childHL (childLL (childHL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101203 : AngleCell := + childHH (childLL (childHL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101210 : AngleCell := + childLL (childLH (childHL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101211 : AngleCell := + childLH (childLH (childHL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101212 : AngleCell := + childHL (childLH (childHL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101213 : AngleCell := + childHH (childLH (childHL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101220 : AngleCell := + childLL (childHL (childHL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101221 : AngleCell := + childLH (childHL (childHL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101222 : AngleCell := + childHL (childHL (childHL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101223 : AngleCell := + childHH (childHL (childHL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101230 : AngleCell := + childLL (childHH (childHL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101231 : AngleCell := + childLH (childHH (childHL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101232 : AngleCell := + childHL (childHH (childHL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101233 : AngleCell := + childHH (childHH (childHL (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101300 : AngleCell := + childLL (childLL (childHH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101301 : AngleCell := + childLH (childLL (childHH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101302 : AngleCell := + childHL (childLL (childHH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101303 : AngleCell := + childHH (childLL (childHH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101310 : AngleCell := + childLL (childLH (childHH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101311 : AngleCell := + childLH (childLH (childHH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101312 : AngleCell := + childHL (childLH (childHH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101313 : AngleCell := + childHH (childLH (childHH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101320 : AngleCell := + childLL (childHL (childHH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101321 : AngleCell := + childLH (childHL (childHH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101322 : AngleCell := + childHL (childHL (childHH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101323 : AngleCell := + childHH (childHL (childHH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101330 : AngleCell := + childLL (childHH (childHH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101331 : AngleCell := + childLH (childHH (childHH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101332 : AngleCell := + childHL (childHH (childHH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132101333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132101333 : AngleCell := + childHH (childHH (childHH (childLH thetaBelowCell11113210))) + +/-- Subcell `111132110020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110020 : AngleCell := + childLL (childHL (childLL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110021 : AngleCell := + childLH (childHL (childLL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110022 : AngleCell := + childHL (childHL (childLL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110023 : AngleCell := + childHH (childHL (childLL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110030 : AngleCell := + childLL (childHH (childLL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110031 : AngleCell := + childLH (childHH (childLL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110032 : AngleCell := + childHL (childHH (childLL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110033 : AngleCell := + childHH (childHH (childLL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110120 : AngleCell := + childLL (childHL (childLH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110121 : AngleCell := + childLH (childHL (childLH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110122 : AngleCell := + childHL (childHL (childLH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110123 : AngleCell := + childHH (childHL (childLH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110130 : AngleCell := + childLL (childHH (childLH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110131 : AngleCell := + childLH (childHH (childLH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110132 : AngleCell := + childHL (childHH (childLH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110133 : AngleCell := + childHH (childHH (childLH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110200 : AngleCell := + childLL (childLL (childHL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110201 : AngleCell := + childLH (childLL (childHL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110202 : AngleCell := + childHL (childLL (childHL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110203 : AngleCell := + childHH (childLL (childHL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110210 : AngleCell := + childLL (childLH (childHL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110211 : AngleCell := + childLH (childLH (childHL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110212 : AngleCell := + childHL (childLH (childHL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110213 : AngleCell := + childHH (childLH (childHL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110220 : AngleCell := + childLL (childHL (childHL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110221 : AngleCell := + childLH (childHL (childHL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110222 : AngleCell := + childHL (childHL (childHL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110223 : AngleCell := + childHH (childHL (childHL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110230 : AngleCell := + childLL (childHH (childHL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110231 : AngleCell := + childLH (childHH (childHL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110232 : AngleCell := + childHL (childHH (childHL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110233 : AngleCell := + childHH (childHH (childHL (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110300 : AngleCell := + childLL (childLL (childHH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110301 : AngleCell := + childLH (childLL (childHH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110302 : AngleCell := + childHL (childLL (childHH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110303 : AngleCell := + childHH (childLL (childHH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110310 : AngleCell := + childLL (childLH (childHH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110311 : AngleCell := + childLH (childLH (childHH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110312 : AngleCell := + childHL (childLH (childHH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110313 : AngleCell := + childHH (childLH (childHH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110320 : AngleCell := + childLL (childHL (childHH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110321 : AngleCell := + childLH (childHL (childHH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110322 : AngleCell := + childHL (childHL (childHH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110323 : AngleCell := + childHH (childHL (childHH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110330 : AngleCell := + childLL (childHH (childHH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110331 : AngleCell := + childLH (childHH (childHH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110332 : AngleCell := + childHL (childHH (childHH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132110333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132110333 : AngleCell := + childHH (childHH (childHH (childLL thetaBelowCell11113211))) + +/-- Subcell `111132111020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111020 : AngleCell := + childLL (childHL (childLL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111021 : AngleCell := + childLH (childHL (childLL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111022 : AngleCell := + childHL (childHL (childLL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111023 : AngleCell := + childHH (childHL (childLL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111030 : AngleCell := + childLL (childHH (childLL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111031 : AngleCell := + childLH (childHH (childLL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111032 : AngleCell := + childHL (childHH (childLL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111033 : AngleCell := + childHH (childHH (childLL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111120 : AngleCell := + childLL (childHL (childLH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111121 : AngleCell := + childLH (childHL (childLH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111122 : AngleCell := + childHL (childHL (childLH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111123 : AngleCell := + childHH (childHL (childLH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111130 : AngleCell := + childLL (childHH (childLH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111131 : AngleCell := + childLH (childHH (childLH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111132 : AngleCell := + childHL (childHH (childLH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111133 : AngleCell := + childHH (childHH (childLH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111200 : AngleCell := + childLL (childLL (childHL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111201 : AngleCell := + childLH (childLL (childHL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111202 : AngleCell := + childHL (childLL (childHL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111203 : AngleCell := + childHH (childLL (childHL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111210 : AngleCell := + childLL (childLH (childHL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111211 : AngleCell := + childLH (childLH (childHL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111212 : AngleCell := + childHL (childLH (childHL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111213 : AngleCell := + childHH (childLH (childHL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111220 : AngleCell := + childLL (childHL (childHL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111221 : AngleCell := + childLH (childHL (childHL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111222 : AngleCell := + childHL (childHL (childHL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111223 : AngleCell := + childHH (childHL (childHL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111230 : AngleCell := + childLL (childHH (childHL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111231 : AngleCell := + childLH (childHH (childHL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111232 : AngleCell := + childHL (childHH (childHL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111233 : AngleCell := + childHH (childHH (childHL (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111300 : AngleCell := + childLL (childLL (childHH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111301 : AngleCell := + childLH (childLL (childHH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111302 : AngleCell := + childHL (childLL (childHH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111303 : AngleCell := + childHH (childLL (childHH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111310 : AngleCell := + childLL (childLH (childHH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111311 : AngleCell := + childLH (childLH (childHH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111312 : AngleCell := + childHL (childLH (childHH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111313 : AngleCell := + childHH (childLH (childHH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111320 : AngleCell := + childLL (childHL (childHH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111321 : AngleCell := + childLH (childHL (childHH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111322 : AngleCell := + childHL (childHL (childHH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111323 : AngleCell := + childHH (childHL (childHH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111330 : AngleCell := + childLL (childHH (childHH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111331 : AngleCell := + childLH (childHH (childHH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111332 : AngleCell := + childHL (childHH (childHH (childLH thetaBelowCell11113211))) + +/-- Subcell `111132111333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132111333 : AngleCell := + childHH (childHH (childHH (childLH thetaBelowCell11113211))) + +/-- Subcell `111133000020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000020 : AngleCell := + childLL (childHL (childLL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000021 : AngleCell := + childLH (childHL (childLL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000022 : AngleCell := + childHL (childHL (childLL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000023 : AngleCell := + childHH (childHL (childLL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000030 : AngleCell := + childLL (childHH (childLL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000031 : AngleCell := + childLH (childHH (childLL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000032 : AngleCell := + childHL (childHH (childLL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000033 : AngleCell := + childHH (childHH (childLL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000120 : AngleCell := + childLL (childHL (childLH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000121 : AngleCell := + childLH (childHL (childLH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000122 : AngleCell := + childHL (childHL (childLH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000123 : AngleCell := + childHH (childHL (childLH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000130 : AngleCell := + childLL (childHH (childLH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000131 : AngleCell := + childLH (childHH (childLH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000132 : AngleCell := + childHL (childHH (childLH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000133 : AngleCell := + childHH (childHH (childLH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000200 : AngleCell := + childLL (childLL (childHL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000201 : AngleCell := + childLH (childLL (childHL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000202 : AngleCell := + childHL (childLL (childHL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000203 : AngleCell := + childHH (childLL (childHL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000210 : AngleCell := + childLL (childLH (childHL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000211 : AngleCell := + childLH (childLH (childHL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000212 : AngleCell := + childHL (childLH (childHL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000213 : AngleCell := + childHH (childLH (childHL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000220 : AngleCell := + childLL (childHL (childHL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000221 : AngleCell := + childLH (childHL (childHL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000222 : AngleCell := + childHL (childHL (childHL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000223 : AngleCell := + childHH (childHL (childHL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000230 : AngleCell := + childLL (childHH (childHL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000231 : AngleCell := + childLH (childHH (childHL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000232 : AngleCell := + childHL (childHH (childHL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000233 : AngleCell := + childHH (childHH (childHL (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000300 : AngleCell := + childLL (childLL (childHH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000301 : AngleCell := + childLH (childLL (childHH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000302 : AngleCell := + childHL (childLL (childHH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000303 : AngleCell := + childHH (childLL (childHH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000310 : AngleCell := + childLL (childLH (childHH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000311 : AngleCell := + childLH (childLH (childHH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000312 : AngleCell := + childHL (childLH (childHH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000313 : AngleCell := + childHH (childLH (childHH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000320 : AngleCell := + childLL (childHL (childHH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000321 : AngleCell := + childLH (childHL (childHH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000322 : AngleCell := + childHL (childHL (childHH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000323 : AngleCell := + childHH (childHL (childHH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000330 : AngleCell := + childLL (childHH (childHH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000331 : AngleCell := + childLH (childHH (childHH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000332 : AngleCell := + childHL (childHH (childHH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133000333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133000333 : AngleCell := + childHH (childHH (childHH (childLL thetaBelowCell11113300))) + +/-- Subcell `111133001020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001020 : AngleCell := + childLL (childHL (childLL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001021 : AngleCell := + childLH (childHL (childLL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001022 : AngleCell := + childHL (childHL (childLL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001023 : AngleCell := + childHH (childHL (childLL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001030 : AngleCell := + childLL (childHH (childLL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001031 : AngleCell := + childLH (childHH (childLL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001032 : AngleCell := + childHL (childHH (childLL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001033 : AngleCell := + childHH (childHH (childLL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001220 : AngleCell := + childLL (childHL (childHL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001221 : AngleCell := + childLH (childHL (childHL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001222 : AngleCell := + childHL (childHL (childHL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001223 : AngleCell := + childHH (childHL (childHL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001230 : AngleCell := + childLL (childHH (childHL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001231 : AngleCell := + childLH (childHH (childHL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001232 : AngleCell := + childHL (childHH (childHL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001233 : AngleCell := + childHH (childHH (childHL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001200 : AngleCell := + childLL (childLL (childHL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001201 : AngleCell := + childLH (childLL (childHL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001202 : AngleCell := + childHL (childLL (childHL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001203 : AngleCell := + childHH (childLL (childHL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001210 : AngleCell := + childLL (childLH (childHL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001211 : AngleCell := + childLH (childLH (childHL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001212 : AngleCell := + childHL (childLH (childHL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001213 : AngleCell := + childHH (childLH (childHL (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001310 : AngleCell := + childLL (childLH (childHH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001311 : AngleCell := + childLH (childLH (childHH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001312 : AngleCell := + childHL (childLH (childHH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001313 : AngleCell := + childHH (childLH (childHH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001320 : AngleCell := + childLL (childHL (childHH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001321 : AngleCell := + childLH (childHL (childHH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001322 : AngleCell := + childHL (childHL (childHH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001323 : AngleCell := + childHH (childHL (childHH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001330 : AngleCell := + childLL (childHH (childHH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001331 : AngleCell := + childLH (childHH (childHH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001332 : AngleCell := + childHL (childHH (childHH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001333 : AngleCell := + childHH (childHH (childHH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001300 : AngleCell := + childLL (childLL (childHH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001301 : AngleCell := + childLH (childLL (childHH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001302 : AngleCell := + childHL (childLL (childHH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001303 : AngleCell := + childHH (childLL (childHH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001120 : AngleCell := + childLL (childHL (childLH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001121 : AngleCell := + childLH (childHL (childLH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001122 : AngleCell := + childHL (childHL (childLH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133001123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133001123 : AngleCell := + childHH (childHL (childLH (childLH thetaBelowCell11113300))) + +/-- Subcell `111133002100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133002100 : AngleCell := + childLL (childLL (childLH (childHL thetaBelowCell11113300))) + +/-- Subcell `111133002101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133002101 : AngleCell := + childLH (childLL (childLH (childHL thetaBelowCell11113300))) + +/-- Subcell `111133002102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133002102 : AngleCell := + childHL (childLL (childLH (childHL thetaBelowCell11113300))) + +/-- Subcell `111133002103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133002103 : AngleCell := + childHH (childLL (childLH (childHL thetaBelowCell11113300))) + +/-- Subcell `111133002110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133002110 : AngleCell := + childLL (childLH (childLH (childHL thetaBelowCell11113300))) + +/-- Subcell `111133002111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133002111 : AngleCell := + childLH (childLH (childLH (childHL thetaBelowCell11113300))) + +/-- Subcell `111133002112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133002112 : AngleCell := + childHL (childLH (childLH (childHL thetaBelowCell11113300))) + +/-- Subcell `111133002113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133002113 : AngleCell := + childHH (childLH (childLH (childHL thetaBelowCell11113300))) + +/-- Subcell `111133003000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133003000 : AngleCell := + childLL (childLL (childLL (childHH thetaBelowCell11113300))) + +/-- Subcell `111133003001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133003001 : AngleCell := + childLH (childLL (childLL (childHH thetaBelowCell11113300))) + +/-- Subcell `111133003002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133003002 : AngleCell := + childHL (childLL (childLL (childHH thetaBelowCell11113300))) + +/-- Subcell `111133003003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133003003 : AngleCell := + childHH (childLL (childLL (childHH thetaBelowCell11113300))) + +/-- Subcell `111133003010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133003010 : AngleCell := + childLL (childLH (childLL (childHH thetaBelowCell11113300))) + +/-- Subcell `111133003011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133003011 : AngleCell := + childLH (childLH (childLL (childHH thetaBelowCell11113300))) + +/-- Subcell `111133003012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133003012 : AngleCell := + childHL (childLH (childLL (childHH thetaBelowCell11113300))) + +/-- Subcell `111133003013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133003013 : AngleCell := + childHH (childLH (childLL (childHH thetaBelowCell11113300))) + +/-- Subcell `111133003100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133003100 : AngleCell := + childLL (childLL (childLH (childHH thetaBelowCell11113300))) + +/-- Subcell `111133003101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133003101 : AngleCell := + childLH (childLL (childLH (childHH thetaBelowCell11113300))) + +/-- Subcell `111133003102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133003102 : AngleCell := + childHL (childLL (childLH (childHH thetaBelowCell11113300))) + +/-- Subcell `111133003103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133003103 : AngleCell := + childHH (childLL (childLH (childHH thetaBelowCell11113300))) + +/-- Subcell `111133003110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133003110 : AngleCell := + childLL (childLH (childLH (childHH thetaBelowCell11113300))) + +/-- Subcell `111133003111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133003111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell11113300))) + +/-- Subcell `111133003112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133003112 : AngleCell := + childHL (childLH (childLH (childHH thetaBelowCell11113300))) + +/-- Subcell `111133003113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133003113 : AngleCell := + childHH (childLH (childLH (childHH thetaBelowCell11113300))) + +/-- Subcell `111133010200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010200 : AngleCell := + childLL (childLL (childHL (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010201 : AngleCell := + childLH (childLL (childHL (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010202 : AngleCell := + childHL (childLL (childHL (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010203 : AngleCell := + childHH (childLL (childHL (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010210 : AngleCell := + childLL (childLH (childHL (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010211 : AngleCell := + childLH (childLH (childHL (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010212 : AngleCell := + childHL (childLH (childHL (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010213 : AngleCell := + childHH (childLH (childHL (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010220 : AngleCell := + childLL (childHL (childHL (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010221 : AngleCell := + childLH (childHL (childHL (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010222 : AngleCell := + childHL (childHL (childHL (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010223 : AngleCell := + childHH (childHL (childHL (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010230 : AngleCell := + childLL (childHH (childHL (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010231 : AngleCell := + childLH (childHH (childHL (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010232 : AngleCell := + childHL (childHH (childHL (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010233 : AngleCell := + childHH (childHH (childHL (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010300 : AngleCell := + childLL (childLL (childHH (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010301 : AngleCell := + childLH (childLL (childHH (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010302 : AngleCell := + childHL (childLL (childHH (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010303 : AngleCell := + childHH (childLL (childHH (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010310 : AngleCell := + childLL (childLH (childHH (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010311 : AngleCell := + childLH (childLH (childHH (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010312 : AngleCell := + childHL (childLH (childHH (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010313 : AngleCell := + childHH (childLH (childHH (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010320 : AngleCell := + childLL (childHL (childHH (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010321 : AngleCell := + childLH (childHL (childHH (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010322 : AngleCell := + childHL (childHL (childHH (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010323 : AngleCell := + childHH (childHL (childHH (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010330 : AngleCell := + childLL (childHH (childHH (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010331 : AngleCell := + childLH (childHH (childHH (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010332 : AngleCell := + childHL (childHH (childHH (childLL thetaBelowCell11113301))) + +/-- Subcell `111133010333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133010333 : AngleCell := + childHH (childHH (childHH (childLL thetaBelowCell11113301))) + +/-- Subcell `111133011200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011200 : AngleCell := + childLL (childLL (childHL (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011201 : AngleCell := + childLH (childLL (childHL (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011202 : AngleCell := + childHL (childLL (childHL (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011203 : AngleCell := + childHH (childLL (childHL (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011210 : AngleCell := + childLL (childLH (childHL (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011211 : AngleCell := + childLH (childLH (childHL (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011212 : AngleCell := + childHL (childLH (childHL (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011213 : AngleCell := + childHH (childLH (childHL (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011220 : AngleCell := + childLL (childHL (childHL (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011221 : AngleCell := + childLH (childHL (childHL (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011222 : AngleCell := + childHL (childHL (childHL (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011223 : AngleCell := + childHH (childHL (childHL (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011230 : AngleCell := + childLL (childHH (childHL (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011231 : AngleCell := + childLH (childHH (childHL (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011232 : AngleCell := + childHL (childHH (childHL (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011233 : AngleCell := + childHH (childHH (childHL (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011300 : AngleCell := + childLL (childLL (childHH (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011301 : AngleCell := + childLH (childLL (childHH (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011302 : AngleCell := + childHL (childLL (childHH (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011303 : AngleCell := + childHH (childLL (childHH (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011310 : AngleCell := + childLL (childLH (childHH (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011311 : AngleCell := + childLH (childLH (childHH (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011312 : AngleCell := + childHL (childLH (childHH (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011313 : AngleCell := + childHH (childLH (childHH (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011320 : AngleCell := + childLL (childHL (childHH (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011321 : AngleCell := + childLH (childHL (childHH (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011322 : AngleCell := + childHL (childHL (childHH (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011323 : AngleCell := + childHH (childHL (childHH (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011330 : AngleCell := + childLL (childHH (childHH (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011331 : AngleCell := + childLH (childHH (childHH (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011332 : AngleCell := + childHL (childHH (childHH (childLH thetaBelowCell11113301))) + +/-- Subcell `111133011333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133011333 : AngleCell := + childHH (childHH (childHH (childLH thetaBelowCell11113301))) + +/-- Subcell `111133012000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133012000 : AngleCell := + childLL (childLL (childLL (childHL thetaBelowCell11113301))) + +/-- Subcell `111133012001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133012001 : AngleCell := + childLH (childLL (childLL (childHL thetaBelowCell11113301))) + +/-- Subcell `111133012002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133012002 : AngleCell := + childHL (childLL (childLL (childHL thetaBelowCell11113301))) + +/-- Subcell `111133012003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133012003 : AngleCell := + childHH (childLL (childLL (childHL thetaBelowCell11113301))) + +/-- Subcell `111133012010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133012010 : AngleCell := + childLL (childLH (childLL (childHL thetaBelowCell11113301))) + +/-- Subcell `111133012011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133012011 : AngleCell := + childLH (childLH (childLL (childHL thetaBelowCell11113301))) + +/-- Subcell `111133012012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133012012 : AngleCell := + childHL (childLH (childLL (childHL thetaBelowCell11113301))) + +/-- Subcell `111133012013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133012013 : AngleCell := + childHH (childLH (childLL (childHL thetaBelowCell11113301))) + +/-- Subcell `111133012100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133012100 : AngleCell := + childLL (childLL (childLH (childHL thetaBelowCell11113301))) + +/-- Subcell `111133012101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133012101 : AngleCell := + childLH (childLL (childLH (childHL thetaBelowCell11113301))) + +/-- Subcell `111133012102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133012102 : AngleCell := + childHL (childLL (childLH (childHL thetaBelowCell11113301))) + +/-- Subcell `111133012103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133012103 : AngleCell := + childHH (childLL (childLH (childHL thetaBelowCell11113301))) + +/-- Subcell `111133012110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133012110 : AngleCell := + childLL (childLH (childLH (childHL thetaBelowCell11113301))) + +/-- Subcell `111133012111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133012111 : AngleCell := + childLH (childLH (childLH (childHL thetaBelowCell11113301))) + +/-- Subcell `111133012112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133012112 : AngleCell := + childHL (childLH (childLH (childHL thetaBelowCell11113301))) + +/-- Subcell `111133012113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133012113 : AngleCell := + childHH (childLH (childLH (childHL thetaBelowCell11113301))) + +/-- Subcell `111133013000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133013000 : AngleCell := + childLL (childLL (childLL (childHH thetaBelowCell11113301))) + +/-- Subcell `111133013001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133013001 : AngleCell := + childLH (childLL (childLL (childHH thetaBelowCell11113301))) + +/-- Subcell `111133013002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133013002 : AngleCell := + childHL (childLL (childLL (childHH thetaBelowCell11113301))) + +/-- Subcell `111133013003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133013003 : AngleCell := + childHH (childLL (childLL (childHH thetaBelowCell11113301))) + +/-- Subcell `111133013010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133013010 : AngleCell := + childLL (childLH (childLL (childHH thetaBelowCell11113301))) + +/-- Subcell `111133013011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133013011 : AngleCell := + childLH (childLH (childLL (childHH thetaBelowCell11113301))) + +/-- Subcell `111133013012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133013012 : AngleCell := + childHL (childLH (childLL (childHH thetaBelowCell11113301))) + +/-- Subcell `111133013013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133013013 : AngleCell := + childHH (childLH (childLL (childHH thetaBelowCell11113301))) + +/-- Subcell `111133013100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133013100 : AngleCell := + childLL (childLL (childLH (childHH thetaBelowCell11113301))) + +/-- Subcell `111133013101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133013101 : AngleCell := + childLH (childLL (childLH (childHH thetaBelowCell11113301))) + +/-- Subcell `111133013102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133013102 : AngleCell := + childHL (childLL (childLH (childHH thetaBelowCell11113301))) + +/-- Subcell `111133013103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133013103 : AngleCell := + childHH (childLL (childLH (childHH thetaBelowCell11113301))) + +/-- Subcell `111133013110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133013110 : AngleCell := + childLL (childLH (childLH (childHH thetaBelowCell11113301))) + +/-- Subcell `111133013111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133013111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell11113301))) + +/-- Subcell `111133013112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133013112 : AngleCell := + childHL (childLH (childLH (childHH thetaBelowCell11113301))) + +/-- Subcell `111133013113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133013113 : AngleCell := + childHH (childLH (childLH (childHH thetaBelowCell11113301))) + +/-- Subcell `111133100200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100200 : AngleCell := + childLL (childLL (childHL (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100201 : AngleCell := + childLH (childLL (childHL (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100202 : AngleCell := + childHL (childLL (childHL (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100203 : AngleCell := + childHH (childLL (childHL (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100220 : AngleCell := + childLL (childHL (childHL (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100221 : AngleCell := + childLH (childHL (childHL (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100222 : AngleCell := + childHL (childHL (childHL (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100223 : AngleCell := + childHH (childHL (childHL (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100230 : AngleCell := + childLL (childHH (childHL (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100231 : AngleCell := + childLH (childHH (childHL (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100232 : AngleCell := + childHL (childHH (childHL (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100233 : AngleCell := + childHH (childHH (childHL (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100210 : AngleCell := + childLL (childLH (childHL (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100211 : AngleCell := + childLH (childLH (childHL (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100212 : AngleCell := + childHL (childLH (childHL (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100213 : AngleCell := + childHH (childLH (childHL (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100323 : AngleCell := + childHH (childHL (childHH (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100320 : AngleCell := + childLL (childHL (childHH (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100321 : AngleCell := + childLH (childHL (childHH (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100322 : AngleCell := + childHL (childHL (childHH (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100332 : AngleCell := + childHL (childHH (childHH (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100333 : AngleCell := + childHH (childHH (childHH (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100330 : AngleCell := + childLL (childHH (childHH (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100331 : AngleCell := + childLH (childHH (childHH (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100300 : AngleCell := + childLL (childLL (childHH (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100301 : AngleCell := + childLH (childLL (childHH (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100302 : AngleCell := + childHL (childLL (childHH (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100303 : AngleCell := + childHH (childLL (childHH (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100310 : AngleCell := + childLL (childLH (childHH (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100311 : AngleCell := + childLH (childLH (childHH (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100312 : AngleCell := + childHL (childLH (childHH (childLL thetaBelowCell11113310))) + +/-- Subcell `111133100313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133100313 : AngleCell := + childHH (childLH (childHH (childLL thetaBelowCell11113310))) + +/-- Subcell `111133101220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101220 : AngleCell := + childLL (childHL (childHL (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101221 : AngleCell := + childLH (childHL (childHL (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101222 : AngleCell := + childHL (childHL (childHL (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101223 : AngleCell := + childHH (childHL (childHL (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101230 : AngleCell := + childLL (childHH (childHL (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101232 : AngleCell := + childHL (childHH (childHL (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101233 : AngleCell := + childHH (childHH (childHL (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101231 : AngleCell := + childLH (childHH (childHL (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101200 : AngleCell := + childLL (childLL (childHL (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101201 : AngleCell := + childLH (childLL (childHL (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101202 : AngleCell := + childHL (childLL (childHL (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101203 : AngleCell := + childHH (childLL (childHL (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101210 : AngleCell := + childLL (childLH (childHL (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101211 : AngleCell := + childLH (childLH (childHL (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101212 : AngleCell := + childHL (childLH (childHL (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101213 : AngleCell := + childHH (childLH (childHL (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101322 : AngleCell := + childHL (childHL (childHH (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101323 : AngleCell := + childHH (childHL (childHH (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101320 : AngleCell := + childLL (childHL (childHH (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101321 : AngleCell := + childLH (childHL (childHH (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101332 : AngleCell := + childHL (childHH (childHH (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101333 : AngleCell := + childHH (childHH (childHH (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101330 : AngleCell := + childLL (childHH (childHH (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101331 : AngleCell := + childLH (childHH (childHH (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101300 : AngleCell := + childLL (childLL (childHH (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101301 : AngleCell := + childLH (childLL (childHH (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101302 : AngleCell := + childHL (childLL (childHH (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101303 : AngleCell := + childHH (childLL (childHH (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101310 : AngleCell := + childLL (childLH (childHH (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101311 : AngleCell := + childLH (childLH (childHH (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101312 : AngleCell := + childHL (childLH (childHH (childLH thetaBelowCell11113310))) + +/-- Subcell `111133101313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133101313 : AngleCell := + childHH (childLH (childHH (childLH thetaBelowCell11113310))) + +/-- Subcell `111133102000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133102000 : AngleCell := + childLL (childLL (childLL (childHL thetaBelowCell11113310))) + +/-- Subcell `111133102001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133102001 : AngleCell := + childLH (childLL (childLL (childHL thetaBelowCell11113310))) + +/-- Subcell `111133102002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133102002 : AngleCell := + childHL (childLL (childLL (childHL thetaBelowCell11113310))) + +/-- Subcell `111133102003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133102003 : AngleCell := + childHH (childLL (childLL (childHL thetaBelowCell11113310))) + +/-- Subcell `111133102010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133102010 : AngleCell := + childLL (childLH (childLL (childHL thetaBelowCell11113310))) + +/-- Subcell `111133102011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133102011 : AngleCell := + childLH (childLH (childLL (childHL thetaBelowCell11113310))) + +/-- Subcell `111133102012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133102012 : AngleCell := + childHL (childLH (childLL (childHL thetaBelowCell11113310))) + +/-- Subcell `111133102013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133102013 : AngleCell := + childHH (childLH (childLL (childHL thetaBelowCell11113310))) + +/-- Subcell `111133102100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133102100 : AngleCell := + childLL (childLL (childLH (childHL thetaBelowCell11113310))) + +/-- Subcell `111133102101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133102101 : AngleCell := + childLH (childLL (childLH (childHL thetaBelowCell11113310))) + +/-- Subcell `111133102102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133102102 : AngleCell := + childHL (childLL (childLH (childHL thetaBelowCell11113310))) + +/-- Subcell `111133102103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133102103 : AngleCell := + childHH (childLL (childLH (childHL thetaBelowCell11113310))) + +/-- Subcell `111133102110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133102110 : AngleCell := + childLL (childLH (childLH (childHL thetaBelowCell11113310))) + +/-- Subcell `111133102111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133102111 : AngleCell := + childLH (childLH (childLH (childHL thetaBelowCell11113310))) + +/-- Subcell `111133102112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133102112 : AngleCell := + childHL (childLH (childLH (childHL thetaBelowCell11113310))) + +/-- Subcell `111133102113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133102113 : AngleCell := + childHH (childLH (childLH (childHL thetaBelowCell11113310))) + +/-- Subcell `111133103001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133103001 : AngleCell := + childLH (childLL (childLL (childHH thetaBelowCell11113310))) + +/-- Subcell `111133103000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133103000 : AngleCell := + childLL (childLL (childLL (childHH thetaBelowCell11113310))) + +/-- Subcell `111133103002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133103002 : AngleCell := + childHL (childLL (childLL (childHH thetaBelowCell11113310))) + +/-- Subcell `111133103003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133103003 : AngleCell := + childHH (childLL (childLL (childHH thetaBelowCell11113310))) + +/-- Subcell `111133103010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133103010 : AngleCell := + childLL (childLH (childLL (childHH thetaBelowCell11113310))) + +/-- Subcell `111133103011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133103011 : AngleCell := + childLH (childLH (childLL (childHH thetaBelowCell11113310))) + +/-- Subcell `111133103012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133103012 : AngleCell := + childHL (childLH (childLL (childHH thetaBelowCell11113310))) + +/-- Subcell `111133103013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133103013 : AngleCell := + childHH (childLH (childLL (childHH thetaBelowCell11113310))) + +/-- Subcell `111133103100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133103100 : AngleCell := + childLL (childLL (childLH (childHH thetaBelowCell11113310))) + +/-- Subcell `111133103101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133103101 : AngleCell := + childLH (childLL (childLH (childHH thetaBelowCell11113310))) + +/-- Subcell `111133103102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133103102 : AngleCell := + childHL (childLL (childLH (childHH thetaBelowCell11113310))) + +/-- Subcell `111133103103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133103103 : AngleCell := + childHH (childLL (childLH (childHH thetaBelowCell11113310))) + +/-- Subcell `111133103110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133103110 : AngleCell := + childLL (childLH (childLH (childHH thetaBelowCell11113310))) + +/-- Subcell `111133103111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133103111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell11113310))) + +/-- Subcell `111133103112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133103112 : AngleCell := + childHL (childLH (childLH (childHH thetaBelowCell11113310))) + +/-- Subcell `111133103113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133103113 : AngleCell := + childHH (childLH (childLH (childHH thetaBelowCell11113310))) + +end GerverSofa.PartE.CertificateCells3658ca4972 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC5TerminalBatchT102400005`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3b1d8a0c5a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3b1d8a0c5a + +open CertificateCells3b1d8a0c5a +theorem e24KC2ThetaAboveLeaf0001331202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00013312)) = true := by + have h : ((childHL (childLL thetaAboveCell00013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00013312)) h +theorem e24KC2ThetaAboveLeaf0001331203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00013312)) = true := by + have h : ((childHH (childLL thetaAboveCell00013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00013312)) h +theorem e24KC2ThetaAboveLeaf0001331210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00013312)) = true := by + have h : ((childLL (childLH thetaAboveCell00013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00013312)) h +theorem e24KC2ThetaAboveLeaf0001331211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00013312)) = true := by + have h : ((childLH (childLH thetaAboveCell00013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00013312)) h +theorem e24KC2ThetaAboveLeaf0001331212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00013312)) = true := by + have h : ((childHL (childLH thetaAboveCell00013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00013312)) h +theorem e24KC2ThetaAboveLeaf0001331213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00013312)) = true := by + have h : ((childHH (childLH thetaAboveCell00013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00013312)) h +theorem e24KC2ThetaAboveLeaf000133122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013312) = true := by + have h : ((childHL thetaAboveCell00013312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00013312) h +theorem e24KC2ThetaAboveLeaf000133123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013312) = true := by + have h : ((childHH thetaAboveCell00013312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00013312) h +theorem e24KC2ThetaAboveLeaf0001331300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00013313)) = true := by + have h : ((childLL (childLL thetaAboveCell00013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00013313)) h +theorem e24KC2ThetaAboveLeaf0001331302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00013313)) = true := by + have h : ((childHL (childLL thetaAboveCell00013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00013313)) h +theorem e24KC2ThetaAboveLeaf0001331303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00013313)) = true := by + have h : ((childHH (childLL thetaAboveCell00013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00013313)) h +theorem e24KC2ThetaAboveLeaf0001331312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00013313)) = true := by + have h : ((childHL (childLH thetaAboveCell00013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00013313)) h +theorem e24KC2ThetaAboveLeaf0001331313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00013313)) = true := by + have h : ((childHH (childLH thetaAboveCell00013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00013313)) h +theorem e24KC2ThetaAboveLeaf000133132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013313) = true := by + have h : ((childHL thetaAboveCell00013313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00013313) h +theorem e24KC2ThetaAboveLeaf000133133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013313) = true := by + have h : ((childHH thetaAboveCell00013313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00013313) h +theorem e24KC2ThetaAboveLeaf00013320 : + adaptiveCoverCheck 11 thetaAboveCell00013320 = true := by + have h : (thetaAboveCell00013320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013320 h +theorem e24KC2ThetaAboveLeaf00013321 : + adaptiveCoverCheck 11 thetaAboveCell00013321 = true := by + have h : (thetaAboveCell00013321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013321 h +theorem e24KC2ThetaAboveLeaf00013322 : + adaptiveCoverCheck 11 thetaAboveCell00013322 = true := by + have h : (thetaAboveCell00013322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013322 h +theorem e24KC2ThetaAboveLeaf00013323 : + adaptiveCoverCheck 11 thetaAboveCell00013323 = true := by + have h : (thetaAboveCell00013323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013323 h +theorem e24KC2ThetaAboveLeaf00013330 : + adaptiveCoverCheck 11 thetaAboveCell00013330 = true := by + have h : (thetaAboveCell00013330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013330 h +theorem e24KC2ThetaAboveLeaf00013331 : + adaptiveCoverCheck 11 thetaAboveCell00013331 = true := by + have h : (thetaAboveCell00013331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013331 h +theorem e24KC2ThetaAboveLeaf00013332 : + adaptiveCoverCheck 11 thetaAboveCell00013332 = true := by + have h : (thetaAboveCell00013332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013332 h +theorem e24KC2ThetaAboveLeaf00013333 : + adaptiveCoverCheck 11 thetaAboveCell00013333 = true := by + have h : (thetaAboveCell00013333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013333 h +theorem e24KC2ThetaAboveLeaf0002000 : + adaptiveCoverCheck 12 (childLL (childLL (childLL thetaAboveCell0002))) = true := by + have h : ((childLL (childLL (childLL thetaAboveCell0002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLL thetaAboveCell0002))) h +theorem e24KC2ThetaAboveLeaf0002001 : + adaptiveCoverCheck 12 (childLH (childLL (childLL thetaAboveCell0002))) = true := by + have h : ((childLH (childLL (childLL thetaAboveCell0002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLL thetaAboveCell0002))) h +theorem e24KC2ThetaAboveLeaf0002002 : + adaptiveCoverCheck 12 (childHL (childLL (childLL thetaAboveCell0002))) = true := by + have h : ((childHL (childLL (childLL thetaAboveCell0002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLL thetaAboveCell0002))) h +theorem e24KC2ThetaAboveLeaf0002003 : + adaptiveCoverCheck 12 (childHH (childLL (childLL thetaAboveCell0002))) = true := by + have h : ((childHH (childLL (childLL thetaAboveCell0002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLL thetaAboveCell0002))) h +theorem e24KC2ThetaAboveLeaf0002010 : + adaptiveCoverCheck 12 (childLL (childLH (childLL thetaAboveCell0002))) = true := by + have h : ((childLL (childLH (childLL thetaAboveCell0002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLL thetaAboveCell0002))) h +theorem e24KC2ThetaAboveLeaf0002011 : + adaptiveCoverCheck 12 (childLH (childLH (childLL thetaAboveCell0002))) = true := by + have h : ((childLH (childLH (childLL thetaAboveCell0002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLL thetaAboveCell0002))) h +theorem e24KC2ThetaAboveLeaf0002012 : + adaptiveCoverCheck 12 (childHL (childLH (childLL thetaAboveCell0002))) = true := by + have h : ((childHL (childLH (childLL thetaAboveCell0002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLL thetaAboveCell0002))) h +theorem e24KC2ThetaAboveLeaf0002013 : + adaptiveCoverCheck 12 (childHH (childLH (childLL thetaAboveCell0002))) = true := by + have h : ((childHH (childLH (childLL thetaAboveCell0002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLL thetaAboveCell0002))) h +theorem e24KC2ThetaAboveLeaf000202 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell0002)) = true := by + have h : ((childHL (childLL thetaAboveCell0002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell0002)) h +theorem e24KC2ThetaAboveLeaf000203 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell0002)) = true := by + have h : ((childHH (childLL thetaAboveCell0002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell0002)) h +theorem e24KC2ThetaAboveLeaf0002100 : + adaptiveCoverCheck 12 (childLL (childLL (childLH thetaAboveCell0002))) = true := by + have h : ((childLL (childLL (childLH thetaAboveCell0002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLH thetaAboveCell0002))) h +theorem e24KC2ThetaAboveLeaf0002101 : + adaptiveCoverCheck 12 (childLH (childLL (childLH thetaAboveCell0002))) = true := by + have h : ((childLH (childLL (childLH thetaAboveCell0002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLH thetaAboveCell0002))) h +theorem e24KC2ThetaAboveLeaf0002102 : + adaptiveCoverCheck 12 (childHL (childLL (childLH thetaAboveCell0002))) = true := by + have h : ((childHL (childLL (childLH thetaAboveCell0002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLH thetaAboveCell0002))) h +theorem e24KC2ThetaAboveLeaf0002103 : + adaptiveCoverCheck 12 (childHH (childLL (childLH thetaAboveCell0002))) = true := by + have h : ((childHH (childLL (childLH thetaAboveCell0002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLH thetaAboveCell0002))) h +theorem e24KC2ThetaAboveLeaf0002110 : + adaptiveCoverCheck 12 (childLL (childLH (childLH thetaAboveCell0002))) = true := by + have h : ((childLL (childLH (childLH thetaAboveCell0002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLH thetaAboveCell0002))) h +theorem e24KC2ThetaAboveLeaf0002111 : + adaptiveCoverCheck 12 (childLH (childLH (childLH thetaAboveCell0002))) = true := by + have h : ((childLH (childLH (childLH thetaAboveCell0002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLH thetaAboveCell0002))) h +theorem e24KC2ThetaAboveLeaf0002112 : + adaptiveCoverCheck 12 (childHL (childLH (childLH thetaAboveCell0002))) = true := by + have h : ((childHL (childLH (childLH thetaAboveCell0002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLH thetaAboveCell0002))) h +theorem e24KC2ThetaAboveLeaf0002113 : + adaptiveCoverCheck 12 (childHH (childLH (childLH thetaAboveCell0002))) = true := by + have h : ((childHH (childLH (childLH thetaAboveCell0002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLH thetaAboveCell0002))) h +theorem e24KC2ThetaAboveLeaf000212 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell0002)) = true := by + have h : ((childHL (childLH thetaAboveCell0002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell0002)) h +theorem e24KC2ThetaAboveLeaf000213 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell0002)) = true := by + have h : ((childHH (childLH thetaAboveCell0002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell0002)) h +theorem e24KC2ThetaAboveLeaf00022 : + adaptiveCoverCheck 14 (childHL thetaAboveCell0002) = true := by + have h : ((childHL thetaAboveCell0002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHL thetaAboveCell0002) h +theorem e24KC2ThetaAboveLeaf00023 : + adaptiveCoverCheck 14 (childHH thetaAboveCell0002) = true := by + have h : ((childHH thetaAboveCell0002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHH thetaAboveCell0002) h +theorem e24KC2ThetaAboveLeaf0003000 : + adaptiveCoverCheck 12 (childLL (childLL (childLL thetaAboveCell0003))) = true := by + have h : ((childLL (childLL (childLL thetaAboveCell0003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLL thetaAboveCell0003))) h +theorem e24KC2ThetaAboveLeaf0003001 : + adaptiveCoverCheck 12 (childLH (childLL (childLL thetaAboveCell0003))) = true := by + have h : ((childLH (childLL (childLL thetaAboveCell0003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLL thetaAboveCell0003))) h +theorem e24KC2ThetaAboveLeaf0003002 : + adaptiveCoverCheck 12 (childHL (childLL (childLL thetaAboveCell0003))) = true := by + have h : ((childHL (childLL (childLL thetaAboveCell0003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLL thetaAboveCell0003))) h +theorem e24KC2ThetaAboveLeaf0003003 : + adaptiveCoverCheck 12 (childHH (childLL (childLL thetaAboveCell0003))) = true := by + have h : ((childHH (childLL (childLL thetaAboveCell0003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLL thetaAboveCell0003))) h +theorem e24KC2ThetaAboveLeaf0003010 : + adaptiveCoverCheck 12 (childLL (childLH (childLL thetaAboveCell0003))) = true := by + have h : ((childLL (childLH (childLL thetaAboveCell0003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLL thetaAboveCell0003))) h +theorem e24KC2ThetaAboveLeaf0003011 : + adaptiveCoverCheck 12 (childLH (childLH (childLL thetaAboveCell0003))) = true := by + have h : ((childLH (childLH (childLL thetaAboveCell0003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLL thetaAboveCell0003))) h +theorem e24KC2ThetaAboveLeaf0003012 : + adaptiveCoverCheck 12 (childHL (childLH (childLL thetaAboveCell0003))) = true := by + have h : ((childHL (childLH (childLL thetaAboveCell0003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLL thetaAboveCell0003))) h +theorem e24KC2ThetaAboveLeaf0003013 : + adaptiveCoverCheck 12 (childHH (childLH (childLL thetaAboveCell0003))) = true := by + have h : ((childHH (childLH (childLL thetaAboveCell0003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLL thetaAboveCell0003))) h +theorem e24KC2ThetaAboveLeaf000302 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell0003)) = true := by + have h : ((childHL (childLL thetaAboveCell0003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell0003)) h +theorem e24KC2ThetaAboveLeaf000303 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell0003)) = true := by + have h : ((childHH (childLL thetaAboveCell0003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell0003)) h +theorem e24KC2ThetaAboveLeaf0003100 : + adaptiveCoverCheck 12 (childLL (childLL (childLH thetaAboveCell0003))) = true := by + have h : ((childLL (childLL (childLH thetaAboveCell0003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLH thetaAboveCell0003))) h +theorem e24KC2ThetaAboveLeaf0003101 : + adaptiveCoverCheck 12 (childLH (childLL (childLH thetaAboveCell0003))) = true := by + have h : ((childLH (childLL (childLH thetaAboveCell0003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLH thetaAboveCell0003))) h +theorem e24KC2ThetaAboveLeaf0003102 : + adaptiveCoverCheck 12 (childHL (childLL (childLH thetaAboveCell0003))) = true := by + have h : ((childHL (childLL (childLH thetaAboveCell0003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLH thetaAboveCell0003))) h +theorem e24KC2ThetaAboveLeaf0003103 : + adaptiveCoverCheck 12 (childHH (childLL (childLH thetaAboveCell0003))) = true := by + have h : ((childHH (childLL (childLH thetaAboveCell0003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLH thetaAboveCell0003))) h +theorem e24KC2ThetaAboveLeaf0003110 : + adaptiveCoverCheck 12 (childLL (childLH (childLH thetaAboveCell0003))) = true := by + have h : ((childLL (childLH (childLH thetaAboveCell0003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLH thetaAboveCell0003))) h +theorem e24KC2ThetaAboveLeaf0003111 : + adaptiveCoverCheck 12 (childLH (childLH (childLH thetaAboveCell0003))) = true := by + have h : ((childLH (childLH (childLH thetaAboveCell0003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLH thetaAboveCell0003))) h +theorem e24KC2ThetaAboveLeaf0003112 : + adaptiveCoverCheck 12 (childHL (childLH (childLH thetaAboveCell0003))) = true := by + have h : ((childHL (childLH (childLH thetaAboveCell0003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLH thetaAboveCell0003))) h +theorem e24KC2ThetaAboveLeaf0003113 : + adaptiveCoverCheck 12 (childHH (childLH (childLH thetaAboveCell0003))) = true := by + have h : ((childHH (childLH (childLH thetaAboveCell0003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLH thetaAboveCell0003))) h +theorem e24KC2ThetaAboveLeaf000312 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell0003)) = true := by + have h : ((childHL (childLH thetaAboveCell0003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell0003)) h +theorem e24KC2ThetaAboveLeaf000313 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell0003)) = true := by + have h : ((childHH (childLH thetaAboveCell0003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell0003)) h +theorem e24KC2ThetaAboveLeaf00032 : + adaptiveCoverCheck 14 (childHL thetaAboveCell0003) = true := by + have h : ((childHL thetaAboveCell0003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHL thetaAboveCell0003) h +theorem e24KC2ThetaAboveLeaf00033 : + adaptiveCoverCheck 14 (childHH thetaAboveCell0003) = true := by + have h : ((childHH thetaAboveCell0003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHH thetaAboveCell0003) h +theorem e24KC2ThetaAboveLeaf001000 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell0010)) = true := by + have h : ((childLL (childLL thetaAboveCell0010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLL thetaAboveCell0010)) h +theorem e24KC2ThetaAboveLeaf001001 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell0010)) = true := by + have h : ((childLH (childLL thetaAboveCell0010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLL thetaAboveCell0010)) h +theorem e24KC2ThetaAboveLeaf001002 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell0010)) = true := by + have h : ((childHL (childLL thetaAboveCell0010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell0010)) h +theorem e24KC2ThetaAboveLeaf001003 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell0010)) = true := by + have h : ((childHH (childLL thetaAboveCell0010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell0010)) h +theorem e24KC2ThetaAboveLeaf001010 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell0010)) = true := by + have h : ((childLL (childLH thetaAboveCell0010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLH thetaAboveCell0010)) h +theorem e24KC2ThetaAboveLeaf001011 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell0010)) = true := by + have h : ((childLH (childLH thetaAboveCell0010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLH thetaAboveCell0010)) h +theorem e24KC2ThetaAboveLeaf001012 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell0010)) = true := by + have h : ((childHL (childLH thetaAboveCell0010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell0010)) h +theorem e24KC2ThetaAboveLeaf001013 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell0010)) = true := by + have h : ((childHH (childLH thetaAboveCell0010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell0010)) h +theorem e24KC2ThetaAboveLeaf0010200 : + adaptiveCoverCheck 12 (childLL (childLL (childHL thetaAboveCell0010))) = true := by + have h : ((childLL (childLL (childHL thetaAboveCell0010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHL thetaAboveCell0010))) h +theorem e24KC2ThetaAboveLeaf0010201 : + adaptiveCoverCheck 12 (childLH (childLL (childHL thetaAboveCell0010))) = true := by + have h : ((childLH (childLL (childHL thetaAboveCell0010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHL thetaAboveCell0010))) h +theorem e24KC2ThetaAboveLeaf00102020 : + adaptiveCoverCheck 11 thetaAboveCell00102020 = true := by + have h : (thetaAboveCell00102020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102020 h +theorem e24KC2ThetaAboveLeaf00102021 : + adaptiveCoverCheck 11 thetaAboveCell00102021 = true := by + have h : (thetaAboveCell00102021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102021 h +theorem e24KC2ThetaAboveLeaf001020220 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102022) = true := by + have h : ((childLL thetaAboveCell00102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00102022) h +theorem e24KC2ThetaAboveLeaf001020221 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102022) = true := by + have h : ((childLH thetaAboveCell00102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00102022) h +theorem e24KC2ThetaAboveLeaf001020222 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102022) = true := by + have h : ((childHL thetaAboveCell00102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00102022) h +theorem e24KC2ThetaAboveLeaf001020223 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102022) = true := by + have h : ((childHH thetaAboveCell00102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00102022) h +theorem e24KC2ThetaAboveLeaf001020230 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102023) = true := by + have h : ((childLL thetaAboveCell00102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00102023) h +theorem e24KC2ThetaAboveLeaf001020231 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102023) = true := by + have h : ((childLH thetaAboveCell00102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00102023) h +theorem e24KC2ThetaAboveLeaf001020232 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102023) = true := by + have h : ((childHL thetaAboveCell00102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00102023) h +theorem e24KC2ThetaAboveLeaf001020233 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102023) = true := by + have h : ((childHH thetaAboveCell00102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00102023) h +theorem e24KC2ThetaAboveLeaf00102030 : + adaptiveCoverCheck 11 thetaAboveCell00102030 = true := by + have h : (thetaAboveCell00102030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102030 h +theorem e24KC2ThetaAboveLeaf00102031 : + adaptiveCoverCheck 11 thetaAboveCell00102031 = true := by + have h : (thetaAboveCell00102031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102031 h +theorem e24KC2ThetaAboveLeaf001020320 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102032) = true := by + have h : ((childLL thetaAboveCell00102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00102032) h +theorem e24KC2ThetaAboveLeaf001020321 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102032) = true := by + have h : ((childLH thetaAboveCell00102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00102032) h +theorem e24KC2ThetaAboveLeaf001020322 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102032) = true := by + have h : ((childHL thetaAboveCell00102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00102032) h +theorem e24KC2ThetaAboveLeaf001020323 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102032) = true := by + have h : ((childHH thetaAboveCell00102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00102032) h +theorem e24KC2ThetaAboveLeaf001020330 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102033) = true := by + have h : ((childLL thetaAboveCell00102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00102033) h +theorem e24KC2ThetaAboveLeaf001020331 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102033) = true := by + have h : ((childLH thetaAboveCell00102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00102033) h +theorem e24KC2ThetaAboveLeaf001020332 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102033) = true := by + have h : ((childHL thetaAboveCell00102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00102033) h +theorem e24KC2ThetaAboveLeaf001020333 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102033) = true := by + have h : ((childHH thetaAboveCell00102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00102033) h +theorem e24KC2ThetaAboveLeaf0010210 : + adaptiveCoverCheck 12 (childLL (childLH (childHL thetaAboveCell0010))) = true := by + have h : ((childLL (childLH (childHL thetaAboveCell0010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHL thetaAboveCell0010))) h +theorem e24KC2ThetaAboveLeaf0010211 : + adaptiveCoverCheck 12 (childLH (childLH (childHL thetaAboveCell0010))) = true := by + have h : ((childLH (childLH (childHL thetaAboveCell0010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHL thetaAboveCell0010))) h +theorem e24KC2ThetaAboveLeaf00102120 : + adaptiveCoverCheck 11 thetaAboveCell00102120 = true := by + have h : (thetaAboveCell00102120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102120 h +theorem e24KC2ThetaAboveLeaf00102121 : + adaptiveCoverCheck 11 thetaAboveCell00102121 = true := by + have h : (thetaAboveCell00102121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102121 h +theorem e24KC2ThetaAboveLeaf001021220 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102122) = true := by + have h : ((childLL thetaAboveCell00102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00102122) h +theorem e24KC2ThetaAboveLeaf001021221 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102122) = true := by + have h : ((childLH thetaAboveCell00102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00102122) h +theorem e24KC2ThetaAboveLeaf001021222 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102122) = true := by + have h : ((childHL thetaAboveCell00102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00102122) h +theorem e24KC2ThetaAboveLeaf001021223 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102122) = true := by + have h : ((childHH thetaAboveCell00102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00102122) h +theorem e24KC2ThetaAboveLeaf001021230 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102123) = true := by + have h : ((childLL thetaAboveCell00102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00102123) h +theorem e24KC2ThetaAboveLeaf001021231 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102123) = true := by + have h : ((childLH thetaAboveCell00102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00102123) h +theorem e24KC2ThetaAboveLeaf001021232 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102123) = true := by + have h : ((childHL thetaAboveCell00102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00102123) h +theorem e24KC2ThetaAboveLeaf001021233 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102123) = true := by + have h : ((childHH thetaAboveCell00102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00102123) h +theorem e24KC2ThetaAboveLeaf00102130 : + adaptiveCoverCheck 11 thetaAboveCell00102130 = true := by + have h : (thetaAboveCell00102130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102130 h +theorem e24KC2ThetaAboveLeaf00102131 : + adaptiveCoverCheck 11 thetaAboveCell00102131 = true := by + have h : (thetaAboveCell00102131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102131 h +theorem e24KC2ThetaAboveLeaf001021320 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102132) = true := by + have h : ((childLL thetaAboveCell00102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00102132) h +theorem e24KC2ThetaAboveLeaf001021321 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102132) = true := by + have h : ((childLH thetaAboveCell00102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00102132) h +theorem e24KC2ThetaAboveLeaf001021322 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102132) = true := by + have h : ((childHL thetaAboveCell00102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00102132) h +theorem e24KC2ThetaAboveLeaf001021323 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102132) = true := by + have h : ((childHH thetaAboveCell00102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00102132) h +theorem e24KC2ThetaAboveLeaf001021330 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102133) = true := by + have h : ((childLL thetaAboveCell00102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00102133) h +theorem e24KC2ThetaAboveLeaf001021331 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102133) = true := by + have h : ((childLH thetaAboveCell00102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00102133) h +theorem e24KC2ThetaAboveLeaf001021332 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102133) = true := by + have h : ((childHL thetaAboveCell00102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00102133) h +theorem e24KC2ThetaAboveLeaf001021333 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102133) = true := by + have h : ((childHH thetaAboveCell00102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00102133) h +theorem e24KC2ThetaAboveLeaf0010220000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00102200)) = true := by + have h : ((childLL (childLL thetaAboveCell00102200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00102200)) h +theorem e24KC2ThetaAboveLeaf0010220001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00102200)) = true := by + have h : ((childLH (childLL thetaAboveCell00102200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00102200)) h +theorem e24KC2ThetaAboveLeaf0010220002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00102200)) = true := by + have h : ((childHL (childLL thetaAboveCell00102200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00102200)) h +theorem e24KC2ThetaAboveLeaf0010220003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00102200)) = true := by + have h : ((childHH (childLL thetaAboveCell00102200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00102200)) h +theorem e24KC2ThetaAboveLeaf0010220010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00102200)) = true := by + have h : ((childLL (childLH thetaAboveCell00102200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00102200)) h +theorem e24KC2ThetaAboveLeaf0010220011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00102200)) = true := by + have h : ((childLH (childLH thetaAboveCell00102200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00102200)) h +theorem e24KC2ThetaAboveLeaf0010220012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00102200)) = true := by + have h : ((childHL (childLH thetaAboveCell00102200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00102200)) h +theorem e24KC2ThetaAboveLeaf0010220013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00102200)) = true := by + have h : ((childHH (childLH thetaAboveCell00102200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00102200)) h +theorem e24KC2ThetaAboveLeaf0010220100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00102201)) = true := by + have h : ((childLL (childLL thetaAboveCell00102201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00102201)) h +theorem e24KC2ThetaAboveLeaf0010220101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00102201)) = true := by + have h : ((childLH (childLL thetaAboveCell00102201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00102201)) h +theorem e24KC2ThetaAboveLeaf0010220102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00102201)) = true := by + have h : ((childHL (childLL thetaAboveCell00102201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00102201)) h +theorem e24KC2ThetaAboveLeaf0010220103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00102201)) = true := by + have h : ((childHH (childLL thetaAboveCell00102201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00102201)) h +theorem e24KC2ThetaAboveLeaf0010220110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00102201)) = true := by + have h : ((childLL (childLH thetaAboveCell00102201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00102201)) h +theorem e24KC2ThetaAboveLeaf0010220111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00102201)) = true := by + have h : ((childLH (childLH thetaAboveCell00102201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00102201)) h +theorem e24KC2ThetaAboveLeaf0010220112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00102201)) = true := by + have h : ((childHL (childLH thetaAboveCell00102201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00102201)) h +theorem e24KC2ThetaAboveLeaf0010220113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00102201)) = true := by + have h : ((childHH (childLH thetaAboveCell00102201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00102201)) h +theorem e24KC2ThetaAboveLeaf0010220202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00102202)) = true := by + have h : ((childHL (childLL thetaAboveCell00102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00102202)) h +theorem e24KC2ThetaAboveLeaf0010220203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00102202)) = true := by + have h : ((childHH (childLL thetaAboveCell00102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00102202)) h +theorem e24KC2ThetaAboveLeaf0010220212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00102202)) = true := by + have h : ((childHL (childLH thetaAboveCell00102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00102202)) h +theorem e24KC2ThetaAboveLeaf0010220213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00102202)) = true := by + have h : ((childHH (childLH thetaAboveCell00102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00102202)) h +theorem e24KC2ThetaAboveLeaf001022022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102202) = true := by + have h : ((childHL thetaAboveCell00102202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00102202) h +theorem e24KC2ThetaAboveLeaf001022023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102202) = true := by + have h : ((childHH thetaAboveCell00102202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00102202) h +theorem e24KC2ThetaAboveLeaf0010220302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00102203)) = true := by + have h : ((childHL (childLL thetaAboveCell00102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00102203)) h +theorem e24KC2ThetaAboveLeaf0010220303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00102203)) = true := by + have h : ((childHH (childLL thetaAboveCell00102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00102203)) h +theorem e24KC2ThetaAboveLeaf0010220312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00102203)) = true := by + have h : ((childHL (childLH thetaAboveCell00102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00102203)) h +theorem e24KC2ThetaAboveLeaf0010220313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00102203)) = true := by + have h : ((childHH (childLH thetaAboveCell00102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00102203)) h +theorem e24KC2ThetaAboveLeaf001022032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102203) = true := by + have h : ((childHL thetaAboveCell00102203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00102203) h +theorem e24KC2ThetaAboveLeaf001022033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102203) = true := by + have h : ((childHH thetaAboveCell00102203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00102203) h +theorem e24KC2ThetaAboveLeaf0010221000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00102210)) = true := by + have h : ((childLL (childLL thetaAboveCell00102210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00102210)) h +theorem e24KC2ThetaAboveLeaf0010221001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00102210)) = true := by + have h : ((childLH (childLL thetaAboveCell00102210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00102210)) h +theorem e24KC2ThetaAboveLeaf0010221002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00102210)) = true := by + have h : ((childHL (childLL thetaAboveCell00102210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00102210)) h +theorem e24KC2ThetaAboveLeaf0010221003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00102210)) = true := by + have h : ((childHH (childLL thetaAboveCell00102210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00102210)) h +theorem e24KC2ThetaAboveLeaf0010221010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00102210)) = true := by + have h : ((childLL (childLH thetaAboveCell00102210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00102210)) h +theorem e24KC2ThetaAboveLeaf0010221011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00102210)) = true := by + have h : ((childLH (childLH thetaAboveCell00102210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00102210)) h +theorem e24KC2ThetaAboveLeaf0010221012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00102210)) = true := by + have h : ((childHL (childLH thetaAboveCell00102210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00102210)) h +theorem e24KC2ThetaAboveLeaf0010221013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00102210)) = true := by + have h : ((childHH (childLH thetaAboveCell00102210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00102210)) h +theorem e24KC2ThetaAboveLeaf0010221100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00102211)) = true := by + have h : ((childLL (childLL thetaAboveCell00102211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00102211)) h +theorem e24KC2ThetaAboveLeaf0010221101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00102211)) = true := by + have h : ((childLH (childLL thetaAboveCell00102211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00102211)) h +theorem e24KC2ThetaAboveLeaf0010221102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00102211)) = true := by + have h : ((childHL (childLL thetaAboveCell00102211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00102211)) h +theorem e24KC2ThetaAboveLeaf0010221103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00102211)) = true := by + have h : ((childHH (childLL thetaAboveCell00102211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00102211)) h +theorem e24KC2ThetaAboveLeaf0010221110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00102211)) = true := by + have h : ((childLL (childLH thetaAboveCell00102211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00102211)) h +theorem e24KC2ThetaAboveLeaf0010221111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00102211)) = true := by + have h : ((childLH (childLH thetaAboveCell00102211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00102211)) h +theorem e24KC2ThetaAboveLeaf0010221112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00102211)) = true := by + have h : ((childHL (childLH thetaAboveCell00102211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00102211)) h +theorem e24KC2ThetaAboveLeaf0010221113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00102211)) = true := by + have h : ((childHH (childLH thetaAboveCell00102211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00102211)) h +theorem e24KC2ThetaAboveLeaf0010221202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00102212)) = true := by + have h : ((childHL (childLL thetaAboveCell00102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00102212)) h +theorem e24KC2ThetaAboveLeaf0010221203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00102212)) = true := by + have h : ((childHH (childLL thetaAboveCell00102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00102212)) h +theorem e24KC2ThetaAboveLeaf0010221212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00102212)) = true := by + have h : ((childHL (childLH thetaAboveCell00102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00102212)) h +theorem e24KC2ThetaAboveLeaf0010221213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00102212)) = true := by + have h : ((childHH (childLH thetaAboveCell00102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00102212)) h +theorem e24KC2ThetaAboveLeaf001022122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102212) = true := by + have h : ((childHL thetaAboveCell00102212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00102212) h +theorem e24KC2ThetaAboveLeaf001022123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102212) = true := by + have h : ((childHH thetaAboveCell00102212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00102212) h +theorem e24KC2ThetaAboveLeaf0010221302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00102213)) = true := by + have h : ((childHL (childLL thetaAboveCell00102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00102213)) h +theorem e24KC2ThetaAboveLeaf0010221303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00102213)) = true := by + have h : ((childHH (childLL thetaAboveCell00102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00102213)) h +theorem e24KC2ThetaAboveLeaf0010221312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00102213)) = true := by + have h : ((childHL (childLH thetaAboveCell00102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00102213)) h +theorem e24KC2ThetaAboveLeaf0010221313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00102213)) = true := by + have h : ((childHH (childLH thetaAboveCell00102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00102213)) h +theorem e24KC2ThetaAboveLeaf001022132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102213) = true := by + have h : ((childHL thetaAboveCell00102213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00102213) h +theorem e24KC2ThetaAboveLeaf001022133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102213) = true := by + have h : ((childHH thetaAboveCell00102213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00102213) h +theorem e24KC2ThetaAboveLeaf00102220 : + adaptiveCoverCheck 11 thetaAboveCell00102220 = true := by + have h : (thetaAboveCell00102220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102220 h +theorem e24KC2ThetaAboveLeaf00102221 : + adaptiveCoverCheck 11 thetaAboveCell00102221 = true := by + have h : (thetaAboveCell00102221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102221 h +theorem e24KC2ThetaAboveLeaf00102222 : + adaptiveCoverCheck 11 thetaAboveCell00102222 = true := by + have h : (thetaAboveCell00102222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102222 h +theorem e24KC2ThetaAboveLeaf00102223 : + adaptiveCoverCheck 11 thetaAboveCell00102223 = true := by + have h : (thetaAboveCell00102223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102223 h +theorem e24KC2ThetaAboveLeaf00102230 : + adaptiveCoverCheck 11 thetaAboveCell00102230 = true := by + have h : (thetaAboveCell00102230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102230 h +theorem e24KC2ThetaAboveLeaf00102231 : + adaptiveCoverCheck 11 thetaAboveCell00102231 = true := by + have h : (thetaAboveCell00102231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102231 h +theorem e24KC2ThetaAboveLeaf00102232 : + adaptiveCoverCheck 11 thetaAboveCell00102232 = true := by + have h : (thetaAboveCell00102232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102232 h +theorem e24KC2ThetaAboveLeaf00102233 : + adaptiveCoverCheck 11 thetaAboveCell00102233 = true := by + have h : (thetaAboveCell00102233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102233 h +theorem e24KC2ThetaAboveLeaf0010230000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00102300)) = true := by + have h : ((childLL (childLL thetaAboveCell00102300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00102300)) h +theorem e24KC2ThetaAboveLeaf0010230001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00102300)) = true := by + have h : ((childLH (childLL thetaAboveCell00102300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00102300)) h +theorem e24KC2ThetaAboveLeaf0010230002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00102300)) = true := by + have h : ((childHL (childLL thetaAboveCell00102300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00102300)) h +theorem e24KC2ThetaAboveLeaf0010230003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00102300)) = true := by + have h : ((childHH (childLL thetaAboveCell00102300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00102300)) h +theorem e24KC2ThetaAboveLeaf0010230010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00102300)) = true := by + have h : ((childLL (childLH thetaAboveCell00102300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00102300)) h +theorem e24KC2ThetaAboveLeaf0010230011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00102300)) = true := by + have h : ((childLH (childLH thetaAboveCell00102300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00102300)) h +theorem e24KC2ThetaAboveLeaf0010230012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00102300)) = true := by + have h : ((childHL (childLH thetaAboveCell00102300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00102300)) h +theorem e24KC2ThetaAboveLeaf0010230013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00102300)) = true := by + have h : ((childHH (childLH thetaAboveCell00102300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00102300)) h +theorem e24KC2ThetaAboveLeaf0010230100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00102301)) = true := by + have h : ((childLL (childLL thetaAboveCell00102301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00102301)) h +theorem e24KC2ThetaAboveLeaf0010230101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00102301)) = true := by + have h : ((childLH (childLL thetaAboveCell00102301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00102301)) h +theorem e24KC2ThetaAboveLeaf0010230102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00102301)) = true := by + have h : ((childHL (childLL thetaAboveCell00102301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00102301)) h +theorem e24KC2ThetaAboveLeaf0010230103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00102301)) = true := by + have h : ((childHH (childLL thetaAboveCell00102301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00102301)) h +theorem e24KC2ThetaAboveLeaf0010230110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00102301)) = true := by + have h : ((childLL (childLH thetaAboveCell00102301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00102301)) h +theorem e24KC2ThetaAboveLeaf0010230111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00102301)) = true := by + have h : ((childLH (childLH thetaAboveCell00102301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00102301)) h +theorem e24KC2ThetaAboveLeaf0010230112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00102301)) = true := by + have h : ((childHL (childLH thetaAboveCell00102301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00102301)) h +theorem e24KC2ThetaAboveLeaf0010230113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00102301)) = true := by + have h : ((childHH (childLH thetaAboveCell00102301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00102301)) h +theorem e24KC2ThetaAboveLeaf0010230202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00102302)) = true := by + have h : ((childHL (childLL thetaAboveCell00102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00102302)) h +theorem e24KC2ThetaAboveLeaf0010230203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00102302)) = true := by + have h : ((childHH (childLL thetaAboveCell00102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00102302)) h +theorem e24KC2ThetaAboveLeaf0010230212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00102302)) = true := by + have h : ((childHL (childLH thetaAboveCell00102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00102302)) h +theorem e24KC2ThetaAboveLeaf0010230213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00102302)) = true := by + have h : ((childHH (childLH thetaAboveCell00102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00102302)) h +theorem e24KC2ThetaAboveLeaf001023022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102302) = true := by + have h : ((childHL thetaAboveCell00102302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00102302) h +theorem e24KC2ThetaAboveLeaf001023023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102302) = true := by + have h : ((childHH thetaAboveCell00102302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00102302) h +theorem e24KC2ThetaAboveLeaf0010230302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00102303)) = true := by + have h : ((childHL (childLL thetaAboveCell00102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00102303)) h +theorem e24KC2ThetaAboveLeaf0010230303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00102303)) = true := by + have h : ((childHH (childLL thetaAboveCell00102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00102303)) h +theorem e24KC2ThetaAboveLeaf0010230312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00102303)) = true := by + have h : ((childHL (childLH thetaAboveCell00102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00102303)) h +theorem e24KC2ThetaAboveLeaf0010230313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00102303)) = true := by + have h : ((childHH (childLH thetaAboveCell00102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00102303)) h +theorem e24KC2ThetaAboveLeaf001023032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102303) = true := by + have h : ((childHL thetaAboveCell00102303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00102303) h +theorem e24KC2ThetaAboveLeaf001023033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102303) = true := by + have h : ((childHH thetaAboveCell00102303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00102303) h +theorem e24KC2ThetaAboveLeaf0010231000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00102310)) = true := by + have h : ((childLL (childLL thetaAboveCell00102310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00102310)) h +theorem e24KC2ThetaAboveLeaf0010231001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00102310)) = true := by + have h : ((childLH (childLL thetaAboveCell00102310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00102310)) h +theorem e24KC2ThetaAboveLeaf0010231002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00102310)) = true := by + have h : ((childHL (childLL thetaAboveCell00102310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00102310)) h +theorem e24KC2ThetaAboveLeaf0010231003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00102310)) = true := by + have h : ((childHH (childLL thetaAboveCell00102310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00102310)) h +theorem e24KC2ThetaAboveLeaf0010231010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00102310)) = true := by + have h : ((childLL (childLH thetaAboveCell00102310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00102310)) h +theorem e24KC2ThetaAboveLeaf0010231011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00102310)) = true := by + have h : ((childLH (childLH thetaAboveCell00102310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00102310)) h +theorem e24KC2ThetaAboveLeaf0010231012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00102310)) = true := by + have h : ((childHL (childLH thetaAboveCell00102310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00102310)) h +theorem e24KC2ThetaAboveLeaf0010231013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00102310)) = true := by + have h : ((childHH (childLH thetaAboveCell00102310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00102310)) h +theorem e24KC2ThetaAboveLeaf0010231100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00102311)) = true := by + have h : ((childLL (childLL thetaAboveCell00102311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00102311)) h +theorem e24KC2ThetaAboveLeaf0010231101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00102311)) = true := by + have h : ((childLH (childLL thetaAboveCell00102311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00102311)) h +theorem e24KC2ThetaAboveLeaf0010231102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00102311)) = true := by + have h : ((childHL (childLL thetaAboveCell00102311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00102311)) h +theorem e24KC2ThetaAboveLeaf0010231103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00102311)) = true := by + have h : ((childHH (childLL thetaAboveCell00102311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00102311)) h +theorem e24KC2ThetaAboveLeaf0010231110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00102311)) = true := by + have h : ((childLL (childLH thetaAboveCell00102311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00102311)) h +theorem e24KC2ThetaAboveLeaf0010231111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00102311)) = true := by + have h : ((childLH (childLH thetaAboveCell00102311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00102311)) h +theorem e24KC2ThetaAboveLeaf0010231112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00102311)) = true := by + have h : ((childHL (childLH thetaAboveCell00102311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00102311)) h +theorem e24KC2ThetaAboveLeaf0010231113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00102311)) = true := by + have h : ((childHH (childLH thetaAboveCell00102311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00102311)) h +theorem e24KC2ThetaAboveLeaf0010231202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00102312)) = true := by + have h : ((childHL (childLL thetaAboveCell00102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00102312)) h +theorem e24KC2ThetaAboveLeaf0010231203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00102312)) = true := by + have h : ((childHH (childLL thetaAboveCell00102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00102312)) h +theorem e24KC2ThetaAboveLeaf0010231212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00102312)) = true := by + have h : ((childHL (childLH thetaAboveCell00102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00102312)) h +theorem e24KC2ThetaAboveLeaf0010231213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00102312)) = true := by + have h : ((childHH (childLH thetaAboveCell00102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00102312)) h +theorem e24KC2ThetaAboveLeaf001023122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102312) = true := by + have h : ((childHL thetaAboveCell00102312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00102312) h +theorem e24KC2ThetaAboveLeaf001023123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102312) = true := by + have h : ((childHH thetaAboveCell00102312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00102312) h +theorem e24KC2ThetaAboveLeaf0010231302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00102313)) = true := by + have h : ((childHL (childLL thetaAboveCell00102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00102313)) h +theorem e24KC2ThetaAboveLeaf0010231303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00102313)) = true := by + have h : ((childHH (childLL thetaAboveCell00102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00102313)) h +theorem e24KC2ThetaAboveLeaf0010231312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00102313)) = true := by + have h : ((childHL (childLH thetaAboveCell00102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00102313)) h +theorem e24KC2ThetaAboveLeaf0010231313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00102313)) = true := by + have h : ((childHH (childLH thetaAboveCell00102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00102313)) h +theorem e24KC2ThetaAboveLeaf001023132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102313) = true := by + have h : ((childHL thetaAboveCell00102313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00102313) h +theorem e24KC2ThetaAboveLeaf001023133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102313) = true := by + have h : ((childHH thetaAboveCell00102313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00102313) h +theorem e24KC2ThetaAboveLeaf00102320 : + adaptiveCoverCheck 11 thetaAboveCell00102320 = true := by + have h : (thetaAboveCell00102320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102320 h +theorem e24KC2ThetaAboveLeaf00102321 : + adaptiveCoverCheck 11 thetaAboveCell00102321 = true := by + have h : (thetaAboveCell00102321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102321 h +theorem e24KC2ThetaAboveLeaf00102322 : + adaptiveCoverCheck 11 thetaAboveCell00102322 = true := by + have h : (thetaAboveCell00102322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102322 h +theorem e24KC2ThetaAboveLeaf00102323 : + adaptiveCoverCheck 11 thetaAboveCell00102323 = true := by + have h : (thetaAboveCell00102323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102323 h +theorem e24KC2ThetaAboveLeaf00102330 : + adaptiveCoverCheck 11 thetaAboveCell00102330 = true := by + have h : (thetaAboveCell00102330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102330 h +theorem e24KC2ThetaAboveLeaf00102331 : + adaptiveCoverCheck 11 thetaAboveCell00102331 = true := by + have h : (thetaAboveCell00102331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102331 h +theorem e24KC2ThetaAboveLeaf00102332 : + adaptiveCoverCheck 11 thetaAboveCell00102332 = true := by + have h : (thetaAboveCell00102332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102332 h +theorem e24KC2ThetaAboveLeaf00102333 : + adaptiveCoverCheck 11 thetaAboveCell00102333 = true := by + have h : (thetaAboveCell00102333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00102333 h +theorem e24KC2ThetaAboveLeaf0010300 : + adaptiveCoverCheck 12 (childLL (childLL (childHH thetaAboveCell0010))) = true := by + have h : ((childLL (childLL (childHH thetaAboveCell0010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHH thetaAboveCell0010))) h +theorem e24KC2ThetaAboveLeaf0010301 : + adaptiveCoverCheck 12 (childLH (childLL (childHH thetaAboveCell0010))) = true := by + have h : ((childLH (childLL (childHH thetaAboveCell0010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHH thetaAboveCell0010))) h +theorem e24KC2ThetaAboveLeaf00103020 : + adaptiveCoverCheck 11 thetaAboveCell00103020 = true := by + have h : (thetaAboveCell00103020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103020 h +theorem e24KC2ThetaAboveLeaf00103021 : + adaptiveCoverCheck 11 thetaAboveCell00103021 = true := by + have h : (thetaAboveCell00103021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103021 h +theorem e24KC2ThetaAboveLeaf00103022 : + adaptiveCoverCheck 11 thetaAboveCell00103022 = true := by + have h : (thetaAboveCell00103022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103022 h +theorem e24KC2ThetaAboveLeaf00103023 : + adaptiveCoverCheck 11 thetaAboveCell00103023 = true := by + have h : (thetaAboveCell00103023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103023 h +theorem e24KC2ThetaAboveLeaf00103030 : + adaptiveCoverCheck 11 thetaAboveCell00103030 = true := by + have h : (thetaAboveCell00103030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103030 h +theorem e24KC2ThetaAboveLeaf00103031 : + adaptiveCoverCheck 11 thetaAboveCell00103031 = true := by + have h : (thetaAboveCell00103031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103031 h +theorem e24KC2ThetaAboveLeaf00103032 : + adaptiveCoverCheck 11 thetaAboveCell00103032 = true := by + have h : (thetaAboveCell00103032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103032 h +theorem e24KC2ThetaAboveLeaf00103033 : + adaptiveCoverCheck 11 thetaAboveCell00103033 = true := by + have h : (thetaAboveCell00103033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103033 h +theorem e24KC2ThetaAboveLeaf0010310 : + adaptiveCoverCheck 12 (childLL (childLH (childHH thetaAboveCell0010))) = true := by + have h : ((childLL (childLH (childHH thetaAboveCell0010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHH thetaAboveCell0010))) h +theorem e24KC2ThetaAboveLeaf0010311 : + adaptiveCoverCheck 12 (childLH (childLH (childHH thetaAboveCell0010))) = true := by + have h : ((childLH (childLH (childHH thetaAboveCell0010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHH thetaAboveCell0010))) h +theorem e24KC2ThetaAboveLeaf00103120 : + adaptiveCoverCheck 11 thetaAboveCell00103120 = true := by + have h : (thetaAboveCell00103120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103120 h +theorem e24KC2ThetaAboveLeaf00103121 : + adaptiveCoverCheck 11 thetaAboveCell00103121 = true := by + have h : (thetaAboveCell00103121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103121 h +theorem e24KC2ThetaAboveLeaf00103122 : + adaptiveCoverCheck 11 thetaAboveCell00103122 = true := by + have h : (thetaAboveCell00103122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103122 h +theorem e24KC2ThetaAboveLeaf00103123 : + adaptiveCoverCheck 11 thetaAboveCell00103123 = true := by + have h : (thetaAboveCell00103123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103123 h +theorem e24KC2ThetaAboveLeaf00103130 : + adaptiveCoverCheck 11 thetaAboveCell00103130 = true := by + have h : (thetaAboveCell00103130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103130 h +theorem e24KC2ThetaAboveLeaf00103131 : + adaptiveCoverCheck 11 thetaAboveCell00103131 = true := by + have h : (thetaAboveCell00103131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103131 h +theorem e24KC2ThetaAboveLeaf00103132 : + adaptiveCoverCheck 11 thetaAboveCell00103132 = true := by + have h : (thetaAboveCell00103132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103132 h +theorem e24KC2ThetaAboveLeaf00103133 : + adaptiveCoverCheck 11 thetaAboveCell00103133 = true := by + have h : (thetaAboveCell00103133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103133 h +theorem e24KC2ThetaAboveLeaf0010320000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00103200)) = true := by + have h : ((childLL (childLL thetaAboveCell00103200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00103200)) h +theorem e24KC2ThetaAboveLeaf0010320001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00103200)) = true := by + have h : ((childLH (childLL thetaAboveCell00103200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00103200)) h +theorem e24KC2ThetaAboveLeaf0010320002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00103200)) = true := by + have h : ((childHL (childLL thetaAboveCell00103200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00103200)) h +theorem e24KC2ThetaAboveLeaf0010320003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00103200)) = true := by + have h : ((childHH (childLL thetaAboveCell00103200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00103200)) h +theorem e24KC2ThetaAboveLeaf0010320010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00103200)) = true := by + have h : ((childLL (childLH thetaAboveCell00103200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00103200)) h +theorem e24KC2ThetaAboveLeaf0010320011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00103200)) = true := by + have h : ((childLH (childLH thetaAboveCell00103200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00103200)) h +theorem e24KC2ThetaAboveLeaf0010320012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00103200)) = true := by + have h : ((childHL (childLH thetaAboveCell00103200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00103200)) h +theorem e24KC2ThetaAboveLeaf0010320013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00103200)) = true := by + have h : ((childHH (childLH thetaAboveCell00103200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00103200)) h +theorem e24KC2ThetaAboveLeaf0010320100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00103201)) = true := by + have h : ((childLL (childLL thetaAboveCell00103201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00103201)) h +theorem e24KC2ThetaAboveLeaf0010320101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00103201)) = true := by + have h : ((childLH (childLL thetaAboveCell00103201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00103201)) h +theorem e24KC2ThetaAboveLeaf0010320102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00103201)) = true := by + have h : ((childHL (childLL thetaAboveCell00103201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00103201)) h +theorem e24KC2ThetaAboveLeaf0010320103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00103201)) = true := by + have h : ((childHH (childLL thetaAboveCell00103201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00103201)) h +theorem e24KC2ThetaAboveLeaf0010320110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00103201)) = true := by + have h : ((childLL (childLH thetaAboveCell00103201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00103201)) h +theorem e24KC2ThetaAboveLeaf0010320111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00103201)) = true := by + have h : ((childLH (childLH thetaAboveCell00103201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00103201)) h +theorem e24KC2ThetaAboveLeaf0010320112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00103201)) = true := by + have h : ((childHL (childLH thetaAboveCell00103201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00103201)) h +theorem e24KC2ThetaAboveLeaf0010320113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00103201)) = true := by + have h : ((childHH (childLH thetaAboveCell00103201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00103201)) h +theorem e24KC2ThetaAboveLeaf0010320202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00103202)) = true := by + have h : ((childHL (childLL thetaAboveCell00103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00103202)) h +theorem e24KC2ThetaAboveLeaf0010320203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00103202)) = true := by + have h : ((childHH (childLL thetaAboveCell00103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00103202)) h +theorem e24KC2ThetaAboveLeaf0010320212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00103202)) = true := by + have h : ((childHL (childLH thetaAboveCell00103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00103202)) h +theorem e24KC2ThetaAboveLeaf0010320213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00103202)) = true := by + have h : ((childHH (childLH thetaAboveCell00103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00103202)) h +theorem e24KC2ThetaAboveLeaf001032022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00103202) = true := by + have h : ((childHL thetaAboveCell00103202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00103202) h +theorem e24KC2ThetaAboveLeaf001032023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00103202) = true := by + have h : ((childHH thetaAboveCell00103202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00103202) h +theorem e24KC2ThetaAboveLeaf0010320302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00103203)) = true := by + have h : ((childHL (childLL thetaAboveCell00103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00103203)) h +theorem e24KC2ThetaAboveLeaf0010320303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00103203)) = true := by + have h : ((childHH (childLL thetaAboveCell00103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00103203)) h +theorem e24KC2ThetaAboveLeaf0010320312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00103203)) = true := by + have h : ((childHL (childLH thetaAboveCell00103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00103203)) h +theorem e24KC2ThetaAboveLeaf0010320313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00103203)) = true := by + have h : ((childHH (childLH thetaAboveCell00103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00103203)) h +theorem e24KC2ThetaAboveLeaf001032032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00103203) = true := by + have h : ((childHL thetaAboveCell00103203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00103203) h +theorem e24KC2ThetaAboveLeaf001032033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00103203) = true := by + have h : ((childHH thetaAboveCell00103203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00103203) h +theorem e24KC2ThetaAboveLeaf0010321000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00103210)) = true := by + have h : ((childLL (childLL thetaAboveCell00103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00103210)) h +theorem e24KC2ThetaAboveLeaf0010321001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00103210)) = true := by + have h : ((childLH (childLL thetaAboveCell00103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00103210)) h +theorem e24KC2ThetaAboveLeaf0010321002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00103210)) = true := by + have h : ((childHL (childLL thetaAboveCell00103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00103210)) h +theorem e24KC2ThetaAboveLeaf0010321003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00103210)) = true := by + have h : ((childHH (childLL thetaAboveCell00103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00103210)) h +theorem e24KC2ThetaAboveLeaf0010321010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00103210)) = true := by + have h : ((childLL (childLH thetaAboveCell00103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00103210)) h +theorem e24KC2ThetaAboveLeaf0010321011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00103210)) = true := by + have h : ((childLH (childLH thetaAboveCell00103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00103210)) h +theorem e24KC2ThetaAboveLeaf0010321012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00103210)) = true := by + have h : ((childHL (childLH thetaAboveCell00103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00103210)) h +theorem e24KC2ThetaAboveLeaf0010321013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00103210)) = true := by + have h : ((childHH (childLH thetaAboveCell00103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00103210)) h +theorem e24KC2ThetaAboveLeaf0010321100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00103211)) = true := by + have h : ((childLL (childLL thetaAboveCell00103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00103211)) h +theorem e24KC2ThetaAboveLeaf0010321101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00103211)) = true := by + have h : ((childLH (childLL thetaAboveCell00103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00103211)) h +theorem e24KC2ThetaAboveLeaf0010321102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00103211)) = true := by + have h : ((childHL (childLL thetaAboveCell00103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00103211)) h +theorem e24KC2ThetaAboveLeaf0010321103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00103211)) = true := by + have h : ((childHH (childLL thetaAboveCell00103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00103211)) h +theorem e24KC2ThetaAboveLeaf0010321110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00103211)) = true := by + have h : ((childLL (childLH thetaAboveCell00103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00103211)) h +theorem e24KC2ThetaAboveLeaf0010321111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00103211)) = true := by + have h : ((childLH (childLH thetaAboveCell00103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00103211)) h +theorem e24KC2ThetaAboveLeaf0010321112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00103211)) = true := by + have h : ((childHL (childLH thetaAboveCell00103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00103211)) h +theorem e24KC2ThetaAboveLeaf0010321113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00103211)) = true := by + have h : ((childHH (childLH thetaAboveCell00103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00103211)) h +theorem e24KC2ThetaAboveLeaf0010321202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00103212)) = true := by + have h : ((childHL (childLL thetaAboveCell00103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00103212)) h +theorem e24KC2ThetaAboveLeaf0010321203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00103212)) = true := by + have h : ((childHH (childLL thetaAboveCell00103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00103212)) h +theorem e24KC2ThetaAboveLeaf0010321212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00103212)) = true := by + have h : ((childHL (childLH thetaAboveCell00103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00103212)) h +theorem e24KC2ThetaAboveLeaf0010321213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00103212)) = true := by + have h : ((childHH (childLH thetaAboveCell00103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00103212)) h +theorem e24KC2ThetaAboveLeaf001032122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00103212) = true := by + have h : ((childHL thetaAboveCell00103212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00103212) h +theorem e24KC2ThetaAboveLeaf001032123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00103212) = true := by + have h : ((childHH thetaAboveCell00103212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00103212) h +theorem e24KC2ThetaAboveLeaf0010321302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00103213)) = true := by + have h : ((childHL (childLL thetaAboveCell00103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00103213)) h +theorem e24KC2ThetaAboveLeaf0010321303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00103213)) = true := by + have h : ((childHH (childLL thetaAboveCell00103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00103213)) h +theorem e24KC2ThetaAboveLeaf0010321312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00103213)) = true := by + have h : ((childHL (childLH thetaAboveCell00103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00103213)) h +theorem e24KC2ThetaAboveLeaf0010321313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00103213)) = true := by + have h : ((childHH (childLH thetaAboveCell00103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00103213)) h +theorem e24KC2ThetaAboveLeaf001032132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00103213) = true := by + have h : ((childHL thetaAboveCell00103213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00103213) h +theorem e24KC2ThetaAboveLeaf001032133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00103213) = true := by + have h : ((childHH thetaAboveCell00103213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00103213) h +theorem e24KC2ThetaAboveLeaf00103220 : + adaptiveCoverCheck 11 thetaAboveCell00103220 = true := by + have h : (thetaAboveCell00103220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103220 h +theorem e24KC2ThetaAboveLeaf00103221 : + adaptiveCoverCheck 11 thetaAboveCell00103221 = true := by + have h : (thetaAboveCell00103221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103221 h +theorem e24KC2ThetaAboveLeaf00103222 : + adaptiveCoverCheck 11 thetaAboveCell00103222 = true := by + have h : (thetaAboveCell00103222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103222 h +theorem e24KC2ThetaAboveLeaf00103223 : + adaptiveCoverCheck 11 thetaAboveCell00103223 = true := by + have h : (thetaAboveCell00103223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103223 h +theorem e24KC2ThetaAboveLeaf00103230 : + adaptiveCoverCheck 11 thetaAboveCell00103230 = true := by + have h : (thetaAboveCell00103230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103230 h +theorem e24KC2ThetaAboveLeaf00103231 : + adaptiveCoverCheck 11 thetaAboveCell00103231 = true := by + have h : (thetaAboveCell00103231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103231 h +theorem e24KC2ThetaAboveLeaf00103232 : + adaptiveCoverCheck 11 thetaAboveCell00103232 = true := by + have h : (thetaAboveCell00103232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103232 h +theorem e24KC2ThetaAboveLeaf00103233 : + adaptiveCoverCheck 11 thetaAboveCell00103233 = true := by + have h : (thetaAboveCell00103233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103233 h +theorem e24KC2ThetaAboveLeaf0010330000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00103300)) = true := by + have h : ((childLL (childLL thetaAboveCell00103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00103300)) h +theorem e24KC2ThetaAboveLeaf0010330001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00103300)) = true := by + have h : ((childLH (childLL thetaAboveCell00103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00103300)) h +theorem e24KC2ThetaAboveLeaf0010330002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00103300)) = true := by + have h : ((childHL (childLL thetaAboveCell00103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00103300)) h +theorem e24KC2ThetaAboveLeaf0010330003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00103300)) = true := by + have h : ((childHH (childLL thetaAboveCell00103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00103300)) h +theorem e24KC2ThetaAboveLeaf0010330010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00103300)) = true := by + have h : ((childLL (childLH thetaAboveCell00103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00103300)) h +theorem e24KC2ThetaAboveLeaf0010330011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00103300)) = true := by + have h : ((childLH (childLH thetaAboveCell00103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00103300)) h +theorem e24KC2ThetaAboveLeaf0010330012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00103300)) = true := by + have h : ((childHL (childLH thetaAboveCell00103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00103300)) h +theorem e24KC2ThetaAboveLeaf0010330013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00103300)) = true := by + have h : ((childHH (childLH thetaAboveCell00103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00103300)) h +theorem e24KC2ThetaAboveLeaf0010330100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00103301)) = true := by + have h : ((childLL (childLL thetaAboveCell00103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00103301)) h +theorem e24KC2ThetaAboveLeaf0010330101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00103301)) = true := by + have h : ((childLH (childLL thetaAboveCell00103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00103301)) h +theorem e24KC2ThetaAboveLeaf0010330102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00103301)) = true := by + have h : ((childHL (childLL thetaAboveCell00103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00103301)) h +theorem e24KC2ThetaAboveLeaf0010330103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00103301)) = true := by + have h : ((childHH (childLL thetaAboveCell00103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00103301)) h +theorem e24KC2ThetaAboveLeaf0010330110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00103301)) = true := by + have h : ((childLL (childLH thetaAboveCell00103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00103301)) h +theorem e24KC2ThetaAboveLeaf0010330111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00103301)) = true := by + have h : ((childLH (childLH thetaAboveCell00103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00103301)) h +theorem e24KC2ThetaAboveLeaf0010330112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00103301)) = true := by + have h : ((childHL (childLH thetaAboveCell00103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00103301)) h +theorem e24KC2ThetaAboveLeaf0010330113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00103301)) = true := by + have h : ((childHH (childLH thetaAboveCell00103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00103301)) h +theorem e24KC2ThetaAboveLeaf0010330202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00103302)) = true := by + have h : ((childHL (childLL thetaAboveCell00103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00103302)) h +theorem e24KC2ThetaAboveLeaf0010330203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00103302)) = true := by + have h : ((childHH (childLL thetaAboveCell00103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00103302)) h +theorem e24KC2ThetaAboveLeaf0010330212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00103302)) = true := by + have h : ((childHL (childLH thetaAboveCell00103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00103302)) h +theorem e24KC2ThetaAboveLeaf0010330213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00103302)) = true := by + have h : ((childHH (childLH thetaAboveCell00103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00103302)) h +theorem e24KC2ThetaAboveLeaf001033022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00103302) = true := by + have h : ((childHL thetaAboveCell00103302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00103302) h +theorem e24KC2ThetaAboveLeaf001033023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00103302) = true := by + have h : ((childHH thetaAboveCell00103302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00103302) h +theorem e24KC2ThetaAboveLeaf0010330302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00103303)) = true := by + have h : ((childHL (childLL thetaAboveCell00103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00103303)) h +theorem e24KC2ThetaAboveLeaf0010330303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00103303)) = true := by + have h : ((childHH (childLL thetaAboveCell00103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00103303)) h +theorem e24KC2ThetaAboveLeaf0010330312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00103303)) = true := by + have h : ((childHL (childLH thetaAboveCell00103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00103303)) h +theorem e24KC2ThetaAboveLeaf0010330313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00103303)) = true := by + have h : ((childHH (childLH thetaAboveCell00103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00103303)) h +theorem e24KC2ThetaAboveLeaf001033032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00103303) = true := by + have h : ((childHL thetaAboveCell00103303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00103303) h +theorem e24KC2ThetaAboveLeaf001033033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00103303) = true := by + have h : ((childHH thetaAboveCell00103303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00103303) h +theorem e24KC2ThetaAboveLeaf0010331000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00103310)) = true := by + have h : ((childLL (childLL thetaAboveCell00103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00103310)) h +theorem e24KC2ThetaAboveLeaf0010331001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00103310)) = true := by + have h : ((childLH (childLL thetaAboveCell00103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00103310)) h +theorem e24KC2ThetaAboveLeaf0010331002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00103310)) = true := by + have h : ((childHL (childLL thetaAboveCell00103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00103310)) h +theorem e24KC2ThetaAboveLeaf0010331003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00103310)) = true := by + have h : ((childHH (childLL thetaAboveCell00103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00103310)) h +theorem e24KC2ThetaAboveLeaf0010331010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00103310)) = true := by + have h : ((childLL (childLH thetaAboveCell00103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00103310)) h +theorem e24KC2ThetaAboveLeaf0010331011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00103310)) = true := by + have h : ((childLH (childLH thetaAboveCell00103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00103310)) h +theorem e24KC2ThetaAboveLeaf0010331012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00103310)) = true := by + have h : ((childHL (childLH thetaAboveCell00103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00103310)) h +theorem e24KC2ThetaAboveLeaf0010331013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00103310)) = true := by + have h : ((childHH (childLH thetaAboveCell00103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00103310)) h +theorem e24KC2ThetaAboveLeaf0010331100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00103311)) = true := by + have h : ((childLL (childLL thetaAboveCell00103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00103311)) h +theorem e24KC2ThetaAboveLeaf0010331101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00103311)) = true := by + have h : ((childLH (childLL thetaAboveCell00103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00103311)) h +theorem e24KC2ThetaAboveLeaf0010331102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00103311)) = true := by + have h : ((childHL (childLL thetaAboveCell00103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00103311)) h +theorem e24KC2ThetaAboveLeaf0010331103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00103311)) = true := by + have h : ((childHH (childLL thetaAboveCell00103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00103311)) h +theorem e24KC2ThetaAboveLeaf0010331110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00103311)) = true := by + have h : ((childLL (childLH thetaAboveCell00103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00103311)) h +theorem e24KC2ThetaAboveLeaf0010331111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00103311)) = true := by + have h : ((childLH (childLH thetaAboveCell00103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00103311)) h +theorem e24KC2ThetaAboveLeaf0010331112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00103311)) = true := by + have h : ((childHL (childLH thetaAboveCell00103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00103311)) h +theorem e24KC2ThetaAboveLeaf0010331113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00103311)) = true := by + have h : ((childHH (childLH thetaAboveCell00103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00103311)) h +theorem e24KC2ThetaAboveLeaf0010331202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00103312)) = true := by + have h : ((childHL (childLL thetaAboveCell00103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00103312)) h +theorem e24KC2ThetaAboveLeaf0010331203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00103312)) = true := by + have h : ((childHH (childLL thetaAboveCell00103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00103312)) h +theorem e24KC2ThetaAboveLeaf0010331212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00103312)) = true := by + have h : ((childHL (childLH thetaAboveCell00103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00103312)) h +theorem e24KC2ThetaAboveLeaf0010331213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00103312)) = true := by + have h : ((childHH (childLH thetaAboveCell00103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00103312)) h +theorem e24KC2ThetaAboveLeaf001033122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00103312) = true := by + have h : ((childHL thetaAboveCell00103312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00103312) h +theorem e24KC2ThetaAboveLeaf001033123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00103312) = true := by + have h : ((childHH thetaAboveCell00103312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00103312) h +theorem e24KC2ThetaAboveLeaf0010331302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00103313)) = true := by + have h : ((childHL (childLL thetaAboveCell00103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00103313)) h +theorem e24KC2ThetaAboveLeaf0010331303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00103313)) = true := by + have h : ((childHH (childLL thetaAboveCell00103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00103313)) h +theorem e24KC2ThetaAboveLeaf0010331312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00103313)) = true := by + have h : ((childHL (childLH thetaAboveCell00103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00103313)) h +theorem e24KC2ThetaAboveLeaf0010331313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00103313)) = true := by + have h : ((childHH (childLH thetaAboveCell00103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00103313)) h +theorem e24KC2ThetaAboveLeaf001033132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00103313) = true := by + have h : ((childHL thetaAboveCell00103313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00103313) h +theorem e24KC2ThetaAboveLeaf001033133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00103313) = true := by + have h : ((childHH thetaAboveCell00103313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00103313) h +theorem e24KC2ThetaAboveLeaf00103320 : + adaptiveCoverCheck 11 thetaAboveCell00103320 = true := by + have h : (thetaAboveCell00103320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103320 h +theorem e24KC2ThetaAboveLeaf00103321 : + adaptiveCoverCheck 11 thetaAboveCell00103321 = true := by + have h : (thetaAboveCell00103321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103321 h +theorem e24KC2ThetaAboveLeaf00103322 : + adaptiveCoverCheck 11 thetaAboveCell00103322 = true := by + have h : (thetaAboveCell00103322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103322 h +theorem e24KC2ThetaAboveLeaf00103323 : + adaptiveCoverCheck 11 thetaAboveCell00103323 = true := by + have h : (thetaAboveCell00103323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103323 h +theorem e24KC2ThetaAboveLeaf00103330 : + adaptiveCoverCheck 11 thetaAboveCell00103330 = true := by + have h : (thetaAboveCell00103330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103330 h +theorem e24KC2ThetaAboveLeaf00103331 : + adaptiveCoverCheck 11 thetaAboveCell00103331 = true := by + have h : (thetaAboveCell00103331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103331 h +theorem e24KC2ThetaAboveLeaf00103332 : + adaptiveCoverCheck 11 thetaAboveCell00103332 = true := by + have h : (thetaAboveCell00103332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103332 h +theorem e24KC2ThetaAboveLeaf00103333 : + adaptiveCoverCheck 11 thetaAboveCell00103333 = true := by + have h : (thetaAboveCell00103333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00103333 h +theorem e24KC2ThetaAboveLeaf001100 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell0011)) = true := by + have h : ((childLL (childLL thetaAboveCell0011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLL thetaAboveCell0011)) h +theorem e24KC2ThetaAboveLeaf001101 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell0011)) = true := by + have h : ((childLH (childLL thetaAboveCell0011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLL thetaAboveCell0011)) h +theorem e24KC2ThetaAboveLeaf001102 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell0011)) = true := by + have h : ((childHL (childLL thetaAboveCell0011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell0011)) h +theorem e24KC2ThetaAboveLeaf001103 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell0011)) = true := by + have h : ((childHH (childLL thetaAboveCell0011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell0011)) h +theorem e24KC2ThetaAboveLeaf001110 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell0011)) = true := by + have h : ((childLL (childLH thetaAboveCell0011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLH thetaAboveCell0011)) h +theorem e24KC2ThetaAboveLeaf001111 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell0011)) = true := by + have h : ((childLH (childLH thetaAboveCell0011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLH thetaAboveCell0011)) h +theorem e24KC2ThetaAboveLeaf001112 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell0011)) = true := by + have h : ((childHL (childLH thetaAboveCell0011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell0011)) h +theorem e24KC2ThetaAboveLeaf001113 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell0011)) = true := by + have h : ((childHH (childLH thetaAboveCell0011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell0011)) h +theorem e24KC2ThetaAboveLeaf0011200 : + adaptiveCoverCheck 12 (childLL (childLL (childHL thetaAboveCell0011))) = true := by + have h : ((childLL (childLL (childHL thetaAboveCell0011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHL thetaAboveCell0011))) h +theorem e24KC2ThetaAboveLeaf0011201 : + adaptiveCoverCheck 12 (childLH (childLL (childHL thetaAboveCell0011))) = true := by + have h : ((childLH (childLL (childHL thetaAboveCell0011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHL thetaAboveCell0011))) h +theorem e24KC2ThetaAboveLeaf00112020 : + adaptiveCoverCheck 11 thetaAboveCell00112020 = true := by + have h : (thetaAboveCell00112020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112020 h +theorem e24KC2ThetaAboveLeaf00112021 : + adaptiveCoverCheck 11 thetaAboveCell00112021 = true := by + have h : (thetaAboveCell00112021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112021 h +theorem e24KC2ThetaAboveLeaf00112022 : + adaptiveCoverCheck 11 thetaAboveCell00112022 = true := by + have h : (thetaAboveCell00112022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112022 h +theorem e24KC2ThetaAboveLeaf00112023 : + adaptiveCoverCheck 11 thetaAboveCell00112023 = true := by + have h : (thetaAboveCell00112023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112023 h +theorem e24KC2ThetaAboveLeaf00112030 : + adaptiveCoverCheck 11 thetaAboveCell00112030 = true := by + have h : (thetaAboveCell00112030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112030 h +theorem e24KC2ThetaAboveLeaf00112031 : + adaptiveCoverCheck 11 thetaAboveCell00112031 = true := by + have h : (thetaAboveCell00112031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112031 h +theorem e24KC2ThetaAboveLeaf00112032 : + adaptiveCoverCheck 11 thetaAboveCell00112032 = true := by + have h : (thetaAboveCell00112032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112032 h +theorem e24KC2ThetaAboveLeaf00112033 : + adaptiveCoverCheck 11 thetaAboveCell00112033 = true := by + have h : (thetaAboveCell00112033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112033 h +theorem e24KC2ThetaAboveLeaf0011210 : + adaptiveCoverCheck 12 (childLL (childLH (childHL thetaAboveCell0011))) = true := by + have h : ((childLL (childLH (childHL thetaAboveCell0011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHL thetaAboveCell0011))) h +theorem e24KC2ThetaAboveLeaf0011211 : + adaptiveCoverCheck 12 (childLH (childLH (childHL thetaAboveCell0011))) = true := by + have h : ((childLH (childLH (childHL thetaAboveCell0011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHL thetaAboveCell0011))) h +theorem e24KC2ThetaAboveLeaf00112120 : + adaptiveCoverCheck 11 thetaAboveCell00112120 = true := by + have h : (thetaAboveCell00112120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112120 h +theorem e24KC2ThetaAboveLeaf00112121 : + adaptiveCoverCheck 11 thetaAboveCell00112121 = true := by + have h : (thetaAboveCell00112121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112121 h +theorem e24KC2ThetaAboveLeaf00112122 : + adaptiveCoverCheck 11 thetaAboveCell00112122 = true := by + have h : (thetaAboveCell00112122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112122 h +theorem e24KC2ThetaAboveLeaf00112123 : + adaptiveCoverCheck 11 thetaAboveCell00112123 = true := by + have h : (thetaAboveCell00112123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112123 h +theorem e24KC2ThetaAboveLeaf00112130 : + adaptiveCoverCheck 11 thetaAboveCell00112130 = true := by + have h : (thetaAboveCell00112130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112130 h +theorem e24KC2ThetaAboveLeaf00112131 : + adaptiveCoverCheck 11 thetaAboveCell00112131 = true := by + have h : (thetaAboveCell00112131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112131 h +theorem e24KC2ThetaAboveLeaf00112132 : + adaptiveCoverCheck 11 thetaAboveCell00112132 = true := by + have h : (thetaAboveCell00112132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112132 h +theorem e24KC2ThetaAboveLeaf00112133 : + adaptiveCoverCheck 11 thetaAboveCell00112133 = true := by + have h : (thetaAboveCell00112133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112133 h +theorem e24KC2ThetaAboveLeaf0011220000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00112200)) = true := by + have h : ((childLL (childLL thetaAboveCell00112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00112200)) h +theorem e24KC2ThetaAboveLeaf0011220001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00112200)) = true := by + have h : ((childLH (childLL thetaAboveCell00112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00112200)) h +theorem e24KC2ThetaAboveLeaf0011220002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00112200)) = true := by + have h : ((childHL (childLL thetaAboveCell00112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00112200)) h +theorem e24KC2ThetaAboveLeaf0011220003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00112200)) = true := by + have h : ((childHH (childLL thetaAboveCell00112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00112200)) h +theorem e24KC2ThetaAboveLeaf0011220010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00112200)) = true := by + have h : ((childLL (childLH thetaAboveCell00112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00112200)) h +theorem e24KC2ThetaAboveLeaf0011220011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00112200)) = true := by + have h : ((childLH (childLH thetaAboveCell00112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00112200)) h +theorem e24KC2ThetaAboveLeaf0011220012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00112200)) = true := by + have h : ((childHL (childLH thetaAboveCell00112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00112200)) h +theorem e24KC2ThetaAboveLeaf0011220013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00112200)) = true := by + have h : ((childHH (childLH thetaAboveCell00112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00112200)) h +theorem e24KC2ThetaAboveLeaf0011220100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00112201)) = true := by + have h : ((childLL (childLL thetaAboveCell00112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00112201)) h +theorem e24KC2ThetaAboveLeaf0011220101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00112201)) = true := by + have h : ((childLH (childLL thetaAboveCell00112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00112201)) h +theorem e24KC2ThetaAboveLeaf0011220102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00112201)) = true := by + have h : ((childHL (childLL thetaAboveCell00112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00112201)) h +theorem e24KC2ThetaAboveLeaf0011220103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00112201)) = true := by + have h : ((childHH (childLL thetaAboveCell00112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00112201)) h +theorem e24KC2ThetaAboveLeaf0011220110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00112201)) = true := by + have h : ((childLL (childLH thetaAboveCell00112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00112201)) h +theorem e24KC2ThetaAboveLeaf0011220111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00112201)) = true := by + have h : ((childLH (childLH thetaAboveCell00112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00112201)) h +theorem e24KC2ThetaAboveLeaf0011220112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00112201)) = true := by + have h : ((childHL (childLH thetaAboveCell00112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00112201)) h +theorem e24KC2ThetaAboveLeaf0011220113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00112201)) = true := by + have h : ((childHH (childLH thetaAboveCell00112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00112201)) h +theorem e24KC2ThetaAboveLeaf0011220202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00112202)) = true := by + have h : ((childHL (childLL thetaAboveCell00112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00112202)) h +theorem e24KC2ThetaAboveLeaf0011220203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00112202)) = true := by + have h : ((childHH (childLL thetaAboveCell00112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00112202)) h +theorem e24KC2ThetaAboveLeaf0011220212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00112202)) = true := by + have h : ((childHL (childLH thetaAboveCell00112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00112202)) h +theorem e24KC2ThetaAboveLeaf0011220213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00112202)) = true := by + have h : ((childHH (childLH thetaAboveCell00112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00112202)) h +theorem e24KC2ThetaAboveLeaf001122022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00112202) = true := by + have h : ((childHL thetaAboveCell00112202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00112202) h +theorem e24KC2ThetaAboveLeaf001122023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00112202) = true := by + have h : ((childHH thetaAboveCell00112202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00112202) h +theorem e24KC2ThetaAboveLeaf0011220302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00112203)) = true := by + have h : ((childHL (childLL thetaAboveCell00112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00112203)) h +theorem e24KC2ThetaAboveLeaf0011220303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00112203)) = true := by + have h : ((childHH (childLL thetaAboveCell00112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00112203)) h +theorem e24KC2ThetaAboveLeaf0011220312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00112203)) = true := by + have h : ((childHL (childLH thetaAboveCell00112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00112203)) h +theorem e24KC2ThetaAboveLeaf0011220313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00112203)) = true := by + have h : ((childHH (childLH thetaAboveCell00112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00112203)) h +theorem e24KC2ThetaAboveLeaf001122032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00112203) = true := by + have h : ((childHL thetaAboveCell00112203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00112203) h +theorem e24KC2ThetaAboveLeaf001122033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00112203) = true := by + have h : ((childHH thetaAboveCell00112203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00112203) h +theorem e24KC2ThetaAboveLeaf0011221000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00112210)) = true := by + have h : ((childLL (childLL thetaAboveCell00112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00112210)) h +theorem e24KC2ThetaAboveLeaf0011221001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00112210)) = true := by + have h : ((childLH (childLL thetaAboveCell00112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00112210)) h +theorem e24KC2ThetaAboveLeaf0011221002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00112210)) = true := by + have h : ((childHL (childLL thetaAboveCell00112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00112210)) h +theorem e24KC2ThetaAboveLeaf0011221003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00112210)) = true := by + have h : ((childHH (childLL thetaAboveCell00112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00112210)) h +theorem e24KC2ThetaAboveLeaf001122101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00112210) = true := by + have h : ((childLH thetaAboveCell00112210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00112210) h +theorem e24KC2ThetaAboveLeaf001122110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00112211) = true := by + have h : ((childLL thetaAboveCell00112211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00112211) h +theorem e24KC2ThetaAboveLeaf001122111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00112211) = true := by + have h : ((childLH thetaAboveCell00112211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00112211) h +theorem e24KC2ThetaAboveLeaf0011221202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00112212)) = true := by + have h : ((childHL (childLL thetaAboveCell00112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00112212)) h +theorem e24KC2ThetaAboveLeaf0011221203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00112212)) = true := by + have h : ((childHH (childLL thetaAboveCell00112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00112212)) h +theorem e24KC2ThetaAboveLeaf0011221212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00112212)) = true := by + have h : ((childHL (childLH thetaAboveCell00112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00112212)) h +theorem e24KC2ThetaAboveLeaf0011221213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00112212)) = true := by + have h : ((childHH (childLH thetaAboveCell00112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00112212)) h +theorem e24KC2ThetaAboveLeaf001122122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00112212) = true := by + have h : ((childHL thetaAboveCell00112212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00112212) h +theorem e24KC2ThetaAboveLeaf001122123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00112212) = true := by + have h : ((childHH thetaAboveCell00112212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00112212) h +theorem e24KC2ThetaAboveLeaf0011221302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00112213)) = true := by + have h : ((childHL (childLL thetaAboveCell00112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00112213)) h +theorem e24KC2ThetaAboveLeaf0011221303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00112213)) = true := by + have h : ((childHH (childLL thetaAboveCell00112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00112213)) h +theorem e24KC2ThetaAboveLeaf0011221312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00112213)) = true := by + have h : ((childHL (childLH thetaAboveCell00112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00112213)) h +theorem e24KC2ThetaAboveLeaf0011221313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00112213)) = true := by + have h : ((childHH (childLH thetaAboveCell00112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00112213)) h +theorem e24KC2ThetaAboveLeaf001122132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00112213) = true := by + have h : ((childHL thetaAboveCell00112213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00112213) h +theorem e24KC2ThetaAboveLeaf001122133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00112213) = true := by + have h : ((childHH thetaAboveCell00112213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00112213) h +theorem e24KC2ThetaAboveLeaf00112220 : + adaptiveCoverCheck 11 thetaAboveCell00112220 = true := by + have h : (thetaAboveCell00112220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112220 h +theorem e24KC2ThetaAboveLeaf00112221 : + adaptiveCoverCheck 11 thetaAboveCell00112221 = true := by + have h : (thetaAboveCell00112221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112221 h +theorem e24KC2ThetaAboveLeaf00112222 : + adaptiveCoverCheck 11 thetaAboveCell00112222 = true := by + have h : (thetaAboveCell00112222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112222 h +theorem e24KC2ThetaAboveLeaf00112223 : + adaptiveCoverCheck 11 thetaAboveCell00112223 = true := by + have h : (thetaAboveCell00112223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112223 h +theorem e24KC2ThetaAboveLeaf00112230 : + adaptiveCoverCheck 11 thetaAboveCell00112230 = true := by + have h : (thetaAboveCell00112230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112230 h +theorem e24KC2ThetaAboveLeaf00112231 : + adaptiveCoverCheck 11 thetaAboveCell00112231 = true := by + have h : (thetaAboveCell00112231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112231 h +theorem e24KC2ThetaAboveLeaf00112232 : + adaptiveCoverCheck 11 thetaAboveCell00112232 = true := by + have h : (thetaAboveCell00112232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112232 h +theorem e24KC2ThetaAboveLeaf00112233 : + adaptiveCoverCheck 11 thetaAboveCell00112233 = true := by + have h : (thetaAboveCell00112233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112233 h +theorem e24KC2ThetaAboveLeaf001123000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00112300) = true := by + have h : ((childLL thetaAboveCell00112300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00112300) h +theorem e24KC2ThetaAboveLeaf001123001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00112300) = true := by + have h : ((childLH thetaAboveCell00112300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00112300) h +theorem e24KC2ThetaAboveLeaf001123010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00112301) = true := by + have h : ((childLL thetaAboveCell00112301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00112301) h +theorem e24KC2ThetaAboveLeaf001123011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00112301) = true := by + have h : ((childLH thetaAboveCell00112301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00112301) h +theorem e24KC2ThetaAboveLeaf0011230202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00112302)) = true := by + have h : ((childHL (childLL thetaAboveCell00112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00112302)) h +theorem e24KC2ThetaAboveLeaf0011230203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00112302)) = true := by + have h : ((childHH (childLL thetaAboveCell00112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00112302)) h +theorem e24KC2ThetaAboveLeaf0011230212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00112302)) = true := by + have h : ((childHL (childLH thetaAboveCell00112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00112302)) h +theorem e24KC2ThetaAboveLeaf0011230213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00112302)) = true := by + have h : ((childHH (childLH thetaAboveCell00112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00112302)) h +theorem e24KC2ThetaAboveLeaf001123022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00112302) = true := by + have h : ((childHL thetaAboveCell00112302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00112302) h +theorem e24KC2ThetaAboveLeaf001123023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00112302) = true := by + have h : ((childHH thetaAboveCell00112302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00112302) h +theorem e24KC2ThetaAboveLeaf0011230302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00112303)) = true := by + have h : ((childHL (childLL thetaAboveCell00112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00112303)) h +theorem e24KC2ThetaAboveLeaf0011230303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00112303)) = true := by + have h : ((childHH (childLL thetaAboveCell00112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00112303)) h +theorem e24KC2ThetaAboveLeaf0011230312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00112303)) = true := by + have h : ((childHL (childLH thetaAboveCell00112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00112303)) h +theorem e24KC2ThetaAboveLeaf0011230313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00112303)) = true := by + have h : ((childHH (childLH thetaAboveCell00112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00112303)) h +theorem e24KC2ThetaAboveLeaf001123032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00112303) = true := by + have h : ((childHL thetaAboveCell00112303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00112303) h +theorem e24KC2ThetaAboveLeaf001123033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00112303) = true := by + have h : ((childHH thetaAboveCell00112303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00112303) h +theorem e24KC2ThetaAboveLeaf001123100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00112310) = true := by + have h : ((childLL thetaAboveCell00112310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00112310) h +theorem e24KC2ThetaAboveLeaf001123101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00112310) = true := by + have h : ((childLH thetaAboveCell00112310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00112310) h +theorem e24KC2ThetaAboveLeaf001123110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00112311) = true := by + have h : ((childLL thetaAboveCell00112311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00112311) h +theorem e24KC2ThetaAboveLeaf001123111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00112311) = true := by + have h : ((childLH thetaAboveCell00112311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00112311) h +theorem e24KC2ThetaAboveLeaf0011231121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00112311)) = true := by + have h : ((childLH (childHL thetaAboveCell00112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell00112311)) h +theorem e24KC2ThetaAboveLeaf0011231130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00112311)) = true := by + have h : ((childLL (childHH thetaAboveCell00112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell00112311)) h +theorem e24KC2ThetaAboveLeaf0011231131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00112311)) = true := by + have h : ((childLH (childHH thetaAboveCell00112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell00112311)) h +theorem e24KC2ThetaAboveLeaf0011231202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00112312)) = true := by + have h : ((childHL (childLL thetaAboveCell00112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00112312)) h +theorem e24KC2ThetaAboveLeaf0011231203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00112312)) = true := by + have h : ((childHH (childLL thetaAboveCell00112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00112312)) h +theorem e24KC2ThetaAboveLeaf0011231212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00112312)) = true := by + have h : ((childHL (childLH thetaAboveCell00112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00112312)) h +theorem e24KC2ThetaAboveLeaf0011231213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00112312)) = true := by + have h : ((childHH (childLH thetaAboveCell00112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00112312)) h +theorem e24KC2ThetaAboveLeaf001123122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00112312) = true := by + have h : ((childHL thetaAboveCell00112312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00112312) h +theorem e24KC2ThetaAboveLeaf001123123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00112312) = true := by + have h : ((childHH thetaAboveCell00112312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00112312) h +theorem e24KC2ThetaAboveLeaf0011231302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00112313)) = true := by + have h : ((childHL (childLL thetaAboveCell00112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00112313)) h +theorem e24KC2ThetaAboveLeaf0011231303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00112313)) = true := by + have h : ((childHH (childLL thetaAboveCell00112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00112313)) h +theorem e24KC2ThetaAboveLeaf0011231312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00112313)) = true := by + have h : ((childHL (childLH thetaAboveCell00112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00112313)) h +theorem e24KC2ThetaAboveLeaf0011231313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00112313)) = true := by + have h : ((childHH (childLH thetaAboveCell00112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00112313)) h +theorem e24KC2ThetaAboveLeaf001123132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00112313) = true := by + have h : ((childHL thetaAboveCell00112313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00112313) h + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC6ProofBatchC0ea1b4a6af3d1dc`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC6 explicit proof-producing certificate batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3658ca4972 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3658ca4972 + +open CertificateCells3658ca4972 +theorem cover_subtree_c250c0508e67 : + adaptiveCoverCheck 8 (childLL (childLH thetaBelowCell11113210)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH thetaBelowCell11113210)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLH + thetaBelowCell11113210))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLH + thetaBelowCell11113210))) h) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childLL (childLH + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132101020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101020 h) + (by + have h : (thetaBelowCell111132101021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101021 h) + (by + have h : (thetaBelowCell111132101022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101022 h) + (by + have h : (thetaBelowCell111132101023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childLL (childLH + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132101030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101030 h) + (by + have h : (thetaBelowCell111132101031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101031 h) + (by + have h : (thetaBelowCell111132101032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101032 h) + (by + have h : (thetaBelowCell111132101033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101033 h)) + +theorem cover_subtree_37f607119182 : + adaptiveCoverCheck 8 (childLH (childLH thetaBelowCell11113210)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH thetaBelowCell11113210)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLH + thetaBelowCell11113210))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLH + thetaBelowCell11113210))) h) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childLH (childLH + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132101120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101120 h) + (by + have h : (thetaBelowCell111132101121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101121 h) + (by + have h : (thetaBelowCell111132101122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101122 h) + (by + have h : (thetaBelowCell111132101123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childLH (childLH + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132101130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101130 h) + (by + have h : (thetaBelowCell111132101131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101131 h) + (by + have h : (thetaBelowCell111132101132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101132 h) + (by + have h : (thetaBelowCell111132101133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101133 h)) + +theorem cover_subtree_9b56cbca582c : + adaptiveCoverCheck 8 (childHL (childLH thetaBelowCell11113210)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH thetaBelowCell11113210)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHL (childLH + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132101200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101200 h) + (by + have h : (thetaBelowCell111132101201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101201 h) + (by + have h : (thetaBelowCell111132101202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101202 h) + (by + have h : (thetaBelowCell111132101203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHL (childLH + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132101210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101210 h) + (by + have h : (thetaBelowCell111132101211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101211 h) + (by + have h : (thetaBelowCell111132101212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101212 h) + (by + have h : (thetaBelowCell111132101213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHL (childLH + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132101220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101220 h) + (by + have h : (thetaBelowCell111132101221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101221 h) + (by + have h : (thetaBelowCell111132101222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101222 h) + (by + have h : (thetaBelowCell111132101223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHL (childLH + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132101230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101230 h) + (by + have h : (thetaBelowCell111132101231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101231 h) + (by + have h : (thetaBelowCell111132101232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101232 h) + (by + have h : (thetaBelowCell111132101233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101233 h)) + +theorem cover_subtree_321b06e53dc8 : + adaptiveCoverCheck 8 (childHH (childLH thetaBelowCell11113210)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH thetaBelowCell11113210)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHH (childLH + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132101300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101300 h) + (by + have h : (thetaBelowCell111132101301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101301 h) + (by + have h : (thetaBelowCell111132101302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101302 h) + (by + have h : (thetaBelowCell111132101303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHH (childLH + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132101310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101310 h) + (by + have h : (thetaBelowCell111132101311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101311 h) + (by + have h : (thetaBelowCell111132101312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101312 h) + (by + have h : (thetaBelowCell111132101313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHH (childLH + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132101320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101320 h) + (by + have h : (thetaBelowCell111132101321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101321 h) + (by + have h : (thetaBelowCell111132101322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101322 h) + (by + have h : (thetaBelowCell111132101323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHH (childLH + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132101330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101330 h) + (by + have h : (thetaBelowCell111132101331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101331 h) + (by + have h : (thetaBelowCell111132101332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101332 h) + (by + have h : (thetaBelowCell111132101333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132101333 h)) + +theorem e24KC2ThetaBelowLeaf111132101 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113210) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11113210) + cover_subtree_c250c0508e67 + cover_subtree_37f607119182 + cover_subtree_9b56cbca582c + cover_subtree_321b06e53dc8 +theorem e24KC2ThetaBelowLeaf111132102 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113210) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11113210) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL thetaBelowCell11113210)) + (by + have h : ((childLL (childLL (childHL thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childHL + thetaBelowCell11113210))) h) + (by + have h : ((childLH (childLL (childHL thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childHL + thetaBelowCell11113210))) h) + (by + have h : ((childHL (childLL (childHL thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childHL + thetaBelowCell11113210))) h) + (by + have h : ((childHH (childLL (childHL thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childHL + thetaBelowCell11113210))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL thetaBelowCell11113210)) + (by + have h : ((childLL (childLH (childHL thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childHL + thetaBelowCell11113210))) h) + (by + have h : ((childLH (childLH (childHL thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childHL + thetaBelowCell11113210))) h) + (by + have h : ((childHL (childLH (childHL thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childHL + thetaBelowCell11113210))) h) + (by + have h : ((childHH (childLH (childHL thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childHL + thetaBelowCell11113210))) h)) + (by + have h : ((childHL (childHL thetaBelowCell11113210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11113210)) h) + (by + have h : ((childHH (childHL thetaBelowCell11113210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11113210)) h) +theorem e24KC2ThetaBelowLeaf111132103 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113210) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11113210) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH thetaBelowCell11113210)) + (by + have h : ((childLL (childLL (childHH thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childHH + thetaBelowCell11113210))) h) + (by + have h : ((childLH (childLL (childHH thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childHH + thetaBelowCell11113210))) h) + (by + have h : ((childHL (childLL (childHH thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childHH + thetaBelowCell11113210))) h) + (by + have h : ((childHH (childLL (childHH thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childHH + thetaBelowCell11113210))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH thetaBelowCell11113210)) + (by + have h : ((childLL (childLH (childHH thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childHH + thetaBelowCell11113210))) h) + (by + have h : ((childLH (childLH (childHH thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childHH + thetaBelowCell11113210))) h) + (by + have h : ((childHL (childLH (childHH thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childHH + thetaBelowCell11113210))) h) + (by + have h : ((childHH (childLH (childHH thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childHH + thetaBelowCell11113210))) h)) + (by + have h : ((childHL (childHH thetaBelowCell11113210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11113210)) h) + (by + have h : ((childHH (childHH thetaBelowCell11113210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11113210)) h) +theorem cover_subtree_c437be4b8029 : + adaptiveCoverCheck 8 (childLL (childLL thetaBelowCell11113211)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL thetaBelowCell11113211)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLL + thetaBelowCell11113211))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLL + thetaBelowCell11113211))) h) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childLL (childLL + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132110020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110020 h) + (by + have h : (thetaBelowCell111132110021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110021 h) + (by + have h : (thetaBelowCell111132110022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110022 h) + (by + have h : (thetaBelowCell111132110023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childLL (childLL + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132110030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110030 h) + (by + have h : (thetaBelowCell111132110031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110031 h) + (by + have h : (thetaBelowCell111132110032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110032 h) + (by + have h : (thetaBelowCell111132110033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110033 h)) + +theorem cover_subtree_e1c2184f45cd : + adaptiveCoverCheck 8 (childLH (childLL thetaBelowCell11113211)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL thetaBelowCell11113211)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLL + thetaBelowCell11113211))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLL + thetaBelowCell11113211))) h) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childLH (childLL + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132110120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110120 h) + (by + have h : (thetaBelowCell111132110121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110121 h) + (by + have h : (thetaBelowCell111132110122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110122 h) + (by + have h : (thetaBelowCell111132110123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childLH (childLL + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132110130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110130 h) + (by + have h : (thetaBelowCell111132110131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110131 h) + (by + have h : (thetaBelowCell111132110132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110132 h) + (by + have h : (thetaBelowCell111132110133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110133 h)) + +theorem cover_subtree_baaa428341e9 : + adaptiveCoverCheck 8 (childHL (childLL thetaBelowCell11113211)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL thetaBelowCell11113211)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHL (childLL + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132110200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110200 h) + (by + have h : (thetaBelowCell111132110201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110201 h) + (by + have h : (thetaBelowCell111132110202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110202 h) + (by + have h : (thetaBelowCell111132110203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHL (childLL + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132110210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110210 h) + (by + have h : (thetaBelowCell111132110211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110211 h) + (by + have h : (thetaBelowCell111132110212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110212 h) + (by + have h : (thetaBelowCell111132110213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHL (childLL + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132110220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110220 h) + (by + have h : (thetaBelowCell111132110221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110221 h) + (by + have h : (thetaBelowCell111132110222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110222 h) + (by + have h : (thetaBelowCell111132110223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHL (childLL + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132110230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110230 h) + (by + have h : (thetaBelowCell111132110231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110231 h) + (by + have h : (thetaBelowCell111132110232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110232 h) + (by + have h : (thetaBelowCell111132110233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110233 h)) + +theorem cover_subtree_fa56c52c3951 : + adaptiveCoverCheck 8 (childHH (childLL thetaBelowCell11113211)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL thetaBelowCell11113211)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHH (childLL + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132110300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110300 h) + (by + have h : (thetaBelowCell111132110301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110301 h) + (by + have h : (thetaBelowCell111132110302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110302 h) + (by + have h : (thetaBelowCell111132110303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHH (childLL + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132110310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110310 h) + (by + have h : (thetaBelowCell111132110311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110311 h) + (by + have h : (thetaBelowCell111132110312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110312 h) + (by + have h : (thetaBelowCell111132110313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHH (childLL + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132110320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110320 h) + (by + have h : (thetaBelowCell111132110321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110321 h) + (by + have h : (thetaBelowCell111132110322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110322 h) + (by + have h : (thetaBelowCell111132110323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHH (childLL + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132110330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110330 h) + (by + have h : (thetaBelowCell111132110331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110331 h) + (by + have h : (thetaBelowCell111132110332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110332 h) + (by + have h : (thetaBelowCell111132110333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132110333 h)) + +theorem e24KC2ThetaBelowLeaf111132110 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113211) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11113211) + cover_subtree_c437be4b8029 + cover_subtree_e1c2184f45cd + cover_subtree_baaa428341e9 + cover_subtree_fa56c52c3951 +theorem cover_subtree_3dbc5ee0205c : + adaptiveCoverCheck 8 (childLL (childLH thetaBelowCell11113211)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH thetaBelowCell11113211)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLH + thetaBelowCell11113211))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLH + thetaBelowCell11113211))) h) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childLL (childLH + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132111020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111020 h) + (by + have h : (thetaBelowCell111132111021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111021 h) + (by + have h : (thetaBelowCell111132111022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111022 h) + (by + have h : (thetaBelowCell111132111023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childLL (childLH + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132111030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111030 h) + (by + have h : (thetaBelowCell111132111031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111031 h) + (by + have h : (thetaBelowCell111132111032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111032 h) + (by + have h : (thetaBelowCell111132111033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111033 h)) + +theorem cover_subtree_63676dfa48d8 : + adaptiveCoverCheck 8 (childLH (childLH thetaBelowCell11113211)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH thetaBelowCell11113211)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLH + thetaBelowCell11113211))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLH + thetaBelowCell11113211))) h) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childLH (childLH + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132111120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111120 h) + (by + have h : (thetaBelowCell111132111121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111121 h) + (by + have h : (thetaBelowCell111132111122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111122 h) + (by + have h : (thetaBelowCell111132111123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childLH (childLH + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132111130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111130 h) + (by + have h : (thetaBelowCell111132111131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111131 h) + (by + have h : (thetaBelowCell111132111132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111132 h) + (by + have h : (thetaBelowCell111132111133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111133 h)) + +theorem cover_subtree_27023d7e3233 : + adaptiveCoverCheck 8 (childHL (childLH thetaBelowCell11113211)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH thetaBelowCell11113211)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHL (childLH + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132111200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111200 h) + (by + have h : (thetaBelowCell111132111201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111201 h) + (by + have h : (thetaBelowCell111132111202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111202 h) + (by + have h : (thetaBelowCell111132111203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHL (childLH + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132111210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111210 h) + (by + have h : (thetaBelowCell111132111211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111211 h) + (by + have h : (thetaBelowCell111132111212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111212 h) + (by + have h : (thetaBelowCell111132111213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHL (childLH + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132111220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111220 h) + (by + have h : (thetaBelowCell111132111221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111221 h) + (by + have h : (thetaBelowCell111132111222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111222 h) + (by + have h : (thetaBelowCell111132111223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHL (childLH + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132111230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111230 h) + (by + have h : (thetaBelowCell111132111231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111231 h) + (by + have h : (thetaBelowCell111132111232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111232 h) + (by + have h : (thetaBelowCell111132111233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111233 h)) + +theorem cover_subtree_f383ba4cac40 : + adaptiveCoverCheck 8 (childHH (childLH thetaBelowCell11113211)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH thetaBelowCell11113211)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHH (childLH + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132111300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111300 h) + (by + have h : (thetaBelowCell111132111301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111301 h) + (by + have h : (thetaBelowCell111132111302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111302 h) + (by + have h : (thetaBelowCell111132111303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHH (childLH + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132111310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111310 h) + (by + have h : (thetaBelowCell111132111311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111311 h) + (by + have h : (thetaBelowCell111132111312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111312 h) + (by + have h : (thetaBelowCell111132111313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHH (childLH + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132111320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111320 h) + (by + have h : (thetaBelowCell111132111321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111321 h) + (by + have h : (thetaBelowCell111132111322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111322 h) + (by + have h : (thetaBelowCell111132111323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHH (childLH + thetaBelowCell11113211))) + (by + have h : (thetaBelowCell111132111330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111330 h) + (by + have h : (thetaBelowCell111132111331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111331 h) + (by + have h : (thetaBelowCell111132111332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111332 h) + (by + have h : (thetaBelowCell111132111333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132111333 h)) + +theorem e24KC2ThetaBelowLeaf111132111 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113211) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11113211) + cover_subtree_3dbc5ee0205c + cover_subtree_63676dfa48d8 + cover_subtree_27023d7e3233 + cover_subtree_f383ba4cac40 +theorem e24KC2ThetaBelowLeaf111132112 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113211) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11113211) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL thetaBelowCell11113211)) + (by + have h : ((childLL (childLL (childHL thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childHL + thetaBelowCell11113211))) h) + (by + have h : ((childLH (childLL (childHL thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childHL + thetaBelowCell11113211))) h) + (by + have h : ((childHL (childLL (childHL thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childHL + thetaBelowCell11113211))) h) + (by + have h : ((childHH (childLL (childHL thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childHL + thetaBelowCell11113211))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL thetaBelowCell11113211)) + (by + have h : ((childLL (childLH (childHL thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childHL + thetaBelowCell11113211))) h) + (by + have h : ((childLH (childLH (childHL thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childHL + thetaBelowCell11113211))) h) + (by + have h : ((childHL (childLH (childHL thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childHL + thetaBelowCell11113211))) h) + (by + have h : ((childHH (childLH (childHL thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childHL + thetaBelowCell11113211))) h)) + (by + have h : ((childHL (childHL thetaBelowCell11113211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11113211)) h) + (by + have h : ((childHH (childHL thetaBelowCell11113211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11113211)) h) +theorem e24KC2ThetaBelowLeaf111132113 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113211) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11113211) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH thetaBelowCell11113211)) + (by + have h : ((childLL (childLL (childHH thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childHH + thetaBelowCell11113211))) h) + (by + have h : ((childLH (childLL (childHH thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childHH + thetaBelowCell11113211))) h) + (by + have h : ((childHL (childLL (childHH thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childHH + thetaBelowCell11113211))) h) + (by + have h : ((childHH (childLL (childHH thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childHH + thetaBelowCell11113211))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH thetaBelowCell11113211)) + (by + have h : ((childLL (childLH (childHH thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childHH + thetaBelowCell11113211))) h) + (by + have h : ((childLH (childLH (childHH thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childHH + thetaBelowCell11113211))) h) + (by + have h : ((childHL (childLH (childHH thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childHH + thetaBelowCell11113211))) h) + (by + have h : ((childHH (childLH (childHH thetaBelowCell11113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childHH + thetaBelowCell11113211))) h)) + (by + have h : ((childHL (childHH thetaBelowCell11113211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11113211)) h) + (by + have h : ((childHH (childHH thetaBelowCell11113211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11113211)) h) +theorem cover_subtree_2d104ae8510a : + adaptiveCoverCheck 8 (childLL (childLL thetaBelowCell11113300)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL thetaBelowCell11113300)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLL + thetaBelowCell11113300))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLL + thetaBelowCell11113300))) h) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childLL (childLL + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133000020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000020 h) + (by + have h : (thetaBelowCell111133000021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000021 h) + (by + have h : (thetaBelowCell111133000022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000022 h) + (by + have h : (thetaBelowCell111133000023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childLL (childLL + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133000030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000030 h) + (by + have h : (thetaBelowCell111133000031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000031 h) + (by + have h : (thetaBelowCell111133000032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000032 h) + (by + have h : (thetaBelowCell111133000033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000033 h)) + +theorem cover_subtree_73e80951f42f : + adaptiveCoverCheck 8 (childLH (childLL thetaBelowCell11113300)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL thetaBelowCell11113300)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLL + thetaBelowCell11113300))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLL + thetaBelowCell11113300))) h) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childLH (childLL + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133000120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000120 h) + (by + have h : (thetaBelowCell111133000121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000121 h) + (by + have h : (thetaBelowCell111133000122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000122 h) + (by + have h : (thetaBelowCell111133000123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childLH (childLL + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133000130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000130 h) + (by + have h : (thetaBelowCell111133000131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000131 h) + (by + have h : (thetaBelowCell111133000132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000132 h) + (by + have h : (thetaBelowCell111133000133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000133 h)) + +theorem cover_subtree_788fa0ec2ac5 : + adaptiveCoverCheck 8 (childHL (childLL thetaBelowCell11113300)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL thetaBelowCell11113300)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHL (childLL + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133000200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000200 h) + (by + have h : (thetaBelowCell111133000201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000201 h) + (by + have h : (thetaBelowCell111133000202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000202 h) + (by + have h : (thetaBelowCell111133000203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHL (childLL + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133000210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000210 h) + (by + have h : (thetaBelowCell111133000211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000211 h) + (by + have h : (thetaBelowCell111133000212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000212 h) + (by + have h : (thetaBelowCell111133000213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHL (childLL + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133000220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000220 h) + (by + have h : (thetaBelowCell111133000221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000221 h) + (by + have h : (thetaBelowCell111133000222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000222 h) + (by + have h : (thetaBelowCell111133000223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHL (childLL + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133000230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000230 h) + (by + have h : (thetaBelowCell111133000231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000231 h) + (by + have h : (thetaBelowCell111133000232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000232 h) + (by + have h : (thetaBelowCell111133000233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000233 h)) + +theorem cover_subtree_a895dbe70eef : + adaptiveCoverCheck 8 (childHH (childLL thetaBelowCell11113300)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL thetaBelowCell11113300)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHH (childLL + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133000300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000300 h) + (by + have h : (thetaBelowCell111133000301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000301 h) + (by + have h : (thetaBelowCell111133000302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000302 h) + (by + have h : (thetaBelowCell111133000303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHH (childLL + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133000310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000310 h) + (by + have h : (thetaBelowCell111133000311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000311 h) + (by + have h : (thetaBelowCell111133000312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000312 h) + (by + have h : (thetaBelowCell111133000313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHH (childLL + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133000320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000320 h) + (by + have h : (thetaBelowCell111133000321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000321 h) + (by + have h : (thetaBelowCell111133000322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000322 h) + (by + have h : (thetaBelowCell111133000323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHH (childLL + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133000330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000330 h) + (by + have h : (thetaBelowCell111133000331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000331 h) + (by + have h : (thetaBelowCell111133000332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000332 h) + (by + have h : (thetaBelowCell111133000333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133000333 h)) + +theorem e24KC2ThetaBelowLeaf111133000 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113300) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11113300) + cover_subtree_2d104ae8510a + cover_subtree_73e80951f42f + cover_subtree_788fa0ec2ac5 + cover_subtree_a895dbe70eef +theorem cover_subtree_f0725b4a5e12 : + adaptiveCoverCheck 8 (childLL (childLH thetaBelowCell11113300)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH thetaBelowCell11113300)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLH + thetaBelowCell11113300))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLH + thetaBelowCell11113300))) h) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childLL (childLH + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133001020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001020 h) + (by + have h : (thetaBelowCell111133001021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001021 h) + (by + have h : (thetaBelowCell111133001022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001022 h) + (by + have h : (thetaBelowCell111133001023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childLL (childLH + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133001030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001030 h) + (by + have h : (thetaBelowCell111133001031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001031 h) + (by + have h : (thetaBelowCell111133001032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001032 h) + (by + have h : (thetaBelowCell111133001033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001033 h)) + +theorem cover_subtree_cedab414430b : + adaptiveCoverCheck 7 (childHL (childHL (childLH thetaBelowCell11113300))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHL (childLH thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133001220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001220 h) + (by + have h : (thetaBelowCell111133001221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001221 h) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133001222 + (by + have h : ((childLL thetaBelowCell111133001222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133001222) h) + (by + have h : ((childLH thetaBelowCell111133001222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133001222) h) + (by + have h : ((childHL thetaBelowCell111133001222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133001222) h) + (by + have h : ((childHH thetaBelowCell111133001222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133001222) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133001223 + (by + have h : ((childLL thetaBelowCell111133001223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133001223) h) + (by + have h : ((childLH thetaBelowCell111133001223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133001223) h) + (by + have h : ((childHL thetaBelowCell111133001223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133001223) h) + (by + have h : ((childHH thetaBelowCell111133001223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133001223) h)) + +theorem cover_subtree_15d931d0b831 : + adaptiveCoverCheck 7 (childHH (childHL (childLH thetaBelowCell11113300))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHL (childLH thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133001230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001230 h) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133001231 + (by + have h : ((childLL thetaBelowCell111133001231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133001231) h) + (by + have h : ((childLH thetaBelowCell111133001231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133001231) h) + (by + have h : ((childHL thetaBelowCell111133001231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133001231) h) + (by + have h : ((childHH thetaBelowCell111133001231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133001231) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133001232 + (by + have h : ((childLL thetaBelowCell111133001232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133001232) h) + (by + have h : ((childLH thetaBelowCell111133001232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133001232) h) + (by + have h : ((childHL thetaBelowCell111133001232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133001232) h) + (by + have h : ((childHH thetaBelowCell111133001232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133001232) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133001233 + (by + have h : ((childLL thetaBelowCell111133001233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133001233) h) + (by + have h : ((childLH thetaBelowCell111133001233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133001233) h) + (by + have h : ((childHL thetaBelowCell111133001233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133001233) h) + (by + have h : ((childHH thetaBelowCell111133001233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133001233) h)) + +theorem cover_subtree_4398f73b5a5d : + adaptiveCoverCheck 8 (childHL (childLH thetaBelowCell11113300)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH thetaBelowCell11113300)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHL (childLH + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133001200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001200 h) + (by + have h : (thetaBelowCell111133001201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001201 h) + (by + have h : (thetaBelowCell111133001202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001202 h) + (by + have h : (thetaBelowCell111133001203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHL (childLH + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133001210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001210 h) + (by + have h : (thetaBelowCell111133001211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001211 h) + (by + have h : (thetaBelowCell111133001212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001212 h) + (by + have h : (thetaBelowCell111133001213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001213 h)) + cover_subtree_cedab414430b + cover_subtree_15d931d0b831 + +theorem cover_subtree_947341870459 : + adaptiveCoverCheck 7 (childLH (childHH (childLH thetaBelowCell11113300))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHH (childLH thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133001310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001310 h) + (by + have h : (thetaBelowCell111133001311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001311 h) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133001312 + (by + have h : ((childLL thetaBelowCell111133001312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133001312) h) + (by + have h : ((childLH thetaBelowCell111133001312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133001312) h) + (by + have h : ((childHL thetaBelowCell111133001312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133001312) h) + (by + have h : ((childHH thetaBelowCell111133001312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133001312) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133001313 + (by + have h : ((childLL thetaBelowCell111133001313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133001313) h) + (by + have h : ((childLH thetaBelowCell111133001313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133001313) h) + (by + have h : ((childHL thetaBelowCell111133001313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133001313) h) + (by + have h : ((childHH thetaBelowCell111133001313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133001313) h)) + +theorem cover_subtree_28ced15c6953 : + adaptiveCoverCheck 7 (childHL (childHH (childLH thetaBelowCell11113300))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHH (childLH thetaBelowCell11113300))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133001320 + (by + have h : ((childLL thetaBelowCell111133001320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133001320) h) + (by + have h : ((childLH thetaBelowCell111133001320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133001320) h) + (by + have h : ((childHL thetaBelowCell111133001320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133001320) h) + (by + have h : ((childHH thetaBelowCell111133001320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133001320) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133001321 + (by + have h : ((childLL thetaBelowCell111133001321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133001321) h) + (by + have h : ((childLH thetaBelowCell111133001321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133001321) h) + (by + have h : ((childHL thetaBelowCell111133001321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133001321) h) + (by + have h : ((childHH thetaBelowCell111133001321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133001321) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133001322 + (by + have h : ((childLL thetaBelowCell111133001322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133001322) h) + (by + have h : ((childLH thetaBelowCell111133001322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133001322) h) + (by + have h : ((childHL thetaBelowCell111133001322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133001322) h) + (by + have h : ((childHH thetaBelowCell111133001322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133001322) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133001323 + (by + have h : ((childLL thetaBelowCell111133001323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133001323) h) + (by + have h : ((childLH thetaBelowCell111133001323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133001323) h) + (by + have h : ((childHL thetaBelowCell111133001323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133001323) h) + (by + have h : ((childHH thetaBelowCell111133001323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133001323) h)) + +theorem cover_subtree_440561389a75 : + adaptiveCoverCheck 7 (childHH (childHH (childLH thetaBelowCell11113300))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHH (childLH thetaBelowCell11113300))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133001330 + (by + have h : ((childLL thetaBelowCell111133001330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133001330) h) + (by + have h : ((childLH thetaBelowCell111133001330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133001330) h) + (by + have h : ((childHL thetaBelowCell111133001330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133001330) h) + (by + have h : ((childHH thetaBelowCell111133001330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133001330) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133001331 + (by + have h : ((childLL thetaBelowCell111133001331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133001331) h) + (by + have h : ((childLH thetaBelowCell111133001331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133001331) h) + (by + have h : ((childHL thetaBelowCell111133001331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133001331) h) + (by + have h : ((childHH thetaBelowCell111133001331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133001331) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133001332 + (by + have h : ((childLL thetaBelowCell111133001332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133001332) h) + (by + have h : ((childLH thetaBelowCell111133001332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133001332) h) + (by + have h : ((childHL thetaBelowCell111133001332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133001332) h) + (by + have h : ((childHH thetaBelowCell111133001332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133001332) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133001333 + (by + have h : ((childLL thetaBelowCell111133001333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133001333) h) + (by + have h : ((childLH thetaBelowCell111133001333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133001333) h) + (by + have h : ((childHL thetaBelowCell111133001333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133001333) h) + (by + have h : ((childHH thetaBelowCell111133001333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133001333) h)) + +theorem cover_subtree_42d3bf5965e9 : + adaptiveCoverCheck 8 (childHH (childLH thetaBelowCell11113300)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH thetaBelowCell11113300)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHH (childLH + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133001300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001300 h) + (by + have h : (thetaBelowCell111133001301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001301 h) + (by + have h : (thetaBelowCell111133001302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001302 h) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133001303 + (by + have h : ((childLL thetaBelowCell111133001303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133001303) h) + (by + have h : ((childLH thetaBelowCell111133001303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133001303) h) + (by + have h : ((childHL thetaBelowCell111133001303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133001303) h) + (by + have h : ((childHH thetaBelowCell111133001303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133001303) h))) + cover_subtree_947341870459 + cover_subtree_28ced15c6953 + cover_subtree_440561389a75 + +theorem e24KC2ThetaBelowLeaf111133001 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113300) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11113300) + cover_subtree_f0725b4a5e12 + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH thetaBelowCell11113300)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLH + thetaBelowCell11113300))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLH + thetaBelowCell11113300))) h) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childLH (childLH + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133001120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001120 h) + (by + have h : (thetaBelowCell111133001121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001121 h) + (by + have h : (thetaBelowCell111133001122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001122 h) + (by + have h : (thetaBelowCell111133001123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133001123 h)) + (by + have h : ((childHH (childLH (childLH thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLH + thetaBelowCell11113300))) h)) + cover_subtree_4398f73b5a5d + cover_subtree_42d3bf5965e9 +theorem e24KC2ThetaBelowLeaf111133002 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113300) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11113300) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL thetaBelowCell11113300)) + (by + have h : ((childLL (childLL (childHL thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childHL + thetaBelowCell11113300))) h) + (by + have h : ((childLH (childLL (childHL thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childHL + thetaBelowCell11113300))) h) + (by + have h : ((childHL (childLL (childHL thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childHL + thetaBelowCell11113300))) h) + (by + have h : ((childHH (childLL (childHL thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childHL + thetaBelowCell11113300))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL thetaBelowCell11113300)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childLH (childHL + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133002100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133002100 h) + (by + have h : (thetaBelowCell111133002101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133002101 h) + (by + have h : (thetaBelowCell111133002102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133002102 h) + (by + have h : (thetaBelowCell111133002103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133002103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childLH (childHL + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133002110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133002110 h) + (by + have h : (thetaBelowCell111133002111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133002111 h) + (by + have h : (thetaBelowCell111133002112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133002112 h) + (by + have h : (thetaBelowCell111133002113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133002113 h)) + (by + have h : ((childHL (childLH (childHL thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childHL + thetaBelowCell11113300))) h) + (by + have h : ((childHH (childLH (childHL thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childHL + thetaBelowCell11113300))) h)) + (by + have h : ((childHL (childHL thetaBelowCell11113300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11113300)) h) + (by + have h : ((childHH (childHL thetaBelowCell11113300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11113300)) h) +theorem e24KC2ThetaBelowLeaf111133003 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113300) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11113300) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH thetaBelowCell11113300)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childLL (childHH + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133003000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133003000 h) + (by + have h : (thetaBelowCell111133003001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133003001 h) + (by + have h : (thetaBelowCell111133003002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133003002 h) + (by + have h : (thetaBelowCell111133003003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133003003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childLL (childHH + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133003010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133003010 h) + (by + have h : (thetaBelowCell111133003011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133003011 h) + (by + have h : (thetaBelowCell111133003012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133003012 h) + (by + have h : (thetaBelowCell111133003013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133003013 h)) + (by + have h : ((childHL (childLL (childHH thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childHH + thetaBelowCell11113300))) h) + (by + have h : ((childHH (childLL (childHH thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childHH + thetaBelowCell11113300))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH thetaBelowCell11113300)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childLH (childHH + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133003100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133003100 h) + (by + have h : (thetaBelowCell111133003101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133003101 h) + (by + have h : (thetaBelowCell111133003102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133003102 h) + (by + have h : (thetaBelowCell111133003103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133003103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childLH (childHH + thetaBelowCell11113300))) + (by + have h : (thetaBelowCell111133003110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133003110 h) + (by + have h : (thetaBelowCell111133003111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133003111 h) + (by + have h : (thetaBelowCell111133003112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133003112 h) + (by + have h : (thetaBelowCell111133003113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133003113 h)) + (by + have h : ((childHL (childLH (childHH thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childHH + thetaBelowCell11113300))) h) + (by + have h : ((childHH (childLH (childHH thetaBelowCell11113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childHH + thetaBelowCell11113300))) h)) + (by + have h : ((childHL (childHH thetaBelowCell11113300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11113300)) h) + (by + have h : ((childHH (childHH thetaBelowCell11113300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11113300)) h) +theorem cover_subtree_37babc6363e9 : + adaptiveCoverCheck 7 (childLL (childHL (childLL thetaBelowCell11113301))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHL (childLL thetaBelowCell11113301))) + (by + have h : (thetaBelowCell111133010200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133010200 h) + (by + have h : (thetaBelowCell111133010201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133010201 h) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010202 + (by + have h : ((childLL thetaBelowCell111133010202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010202) h) + (by + have h : ((childLH thetaBelowCell111133010202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010202) h) + (by + have h : ((childHL thetaBelowCell111133010202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010202) h) + (by + have h : ((childHH thetaBelowCell111133010202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010202) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010203 + (by + have h : ((childLL thetaBelowCell111133010203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010203) h) + (by + have h : ((childLH thetaBelowCell111133010203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010203) h) + (by + have h : ((childHL thetaBelowCell111133010203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010203) h) + (by + have h : ((childHH thetaBelowCell111133010203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010203) h)) + +theorem cover_subtree_507281a99f13 : + adaptiveCoverCheck 7 (childLH (childHL (childLL thetaBelowCell11113301))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHL (childLL thetaBelowCell11113301))) + (by + have h : (thetaBelowCell111133010210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133010210 h) + (by + have h : (thetaBelowCell111133010211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133010211 h) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010212 + (by + have h : ((childLL thetaBelowCell111133010212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010212) h) + (by + have h : ((childLH thetaBelowCell111133010212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010212) h) + (by + have h : ((childHL thetaBelowCell111133010212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010212) h) + (by + have h : ((childHH thetaBelowCell111133010212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010212) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010213 + (by + have h : ((childLL thetaBelowCell111133010213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010213) h) + (by + have h : ((childLH thetaBelowCell111133010213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010213) h) + (by + have h : ((childHL thetaBelowCell111133010213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010213) h) + (by + have h : ((childHH thetaBelowCell111133010213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010213) h)) + +theorem cover_subtree_a5c13fd746d7 : + adaptiveCoverCheck 7 (childHL (childHL (childLL thetaBelowCell11113301))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHL (childLL thetaBelowCell11113301))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010220 + (by + have h : ((childLL thetaBelowCell111133010220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010220) h) + (by + have h : ((childLH thetaBelowCell111133010220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010220) h) + (by + have h : ((childHL thetaBelowCell111133010220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010220) h) + (by + have h : ((childHH thetaBelowCell111133010220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010220) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010221 + (by + have h : ((childLL thetaBelowCell111133010221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010221) h) + (by + have h : ((childLH thetaBelowCell111133010221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010221) h) + (by + have h : ((childHL thetaBelowCell111133010221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010221) h) + (by + have h : ((childHH thetaBelowCell111133010221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010221) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010222 + (by + have h : ((childLL thetaBelowCell111133010222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010222) h) + (by + have h : ((childLH thetaBelowCell111133010222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010222) h) + (by + have h : ((childHL thetaBelowCell111133010222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010222) h) + (by + have h : ((childHH thetaBelowCell111133010222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010222) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010223 + (by + have h : ((childLL thetaBelowCell111133010223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010223) h) + (by + have h : ((childLH thetaBelowCell111133010223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010223) h) + (by + have h : ((childHL thetaBelowCell111133010223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010223) h) + (by + have h : ((childHH thetaBelowCell111133010223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010223) h)) + +theorem cover_subtree_6d4cbcd8b0bf : + adaptiveCoverCheck 7 (childHH (childHL (childLL thetaBelowCell11113301))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHL (childLL thetaBelowCell11113301))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010230 + (by + have h : ((childLL thetaBelowCell111133010230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010230) h) + (by + have h : ((childLH thetaBelowCell111133010230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010230) h) + (by + have h : ((childHL thetaBelowCell111133010230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010230) h) + (by + have h : ((childHH thetaBelowCell111133010230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010230) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010231 + (by + have h : ((childLL thetaBelowCell111133010231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010231) h) + (by + have h : ((childLH thetaBelowCell111133010231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010231) h) + (by + have h : ((childHL thetaBelowCell111133010231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010231) h) + (by + have h : ((childHH thetaBelowCell111133010231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010231) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010232 + (by + have h : ((childLL thetaBelowCell111133010232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010232) h) + (by + have h : ((childLH thetaBelowCell111133010232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010232) h) + (by + have h : ((childHL thetaBelowCell111133010232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010232) h) + (by + have h : ((childHH thetaBelowCell111133010232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010232) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010233 + (by + have h : ((childLL thetaBelowCell111133010233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010233) h) + (by + have h : ((childLH thetaBelowCell111133010233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010233) h) + (by + have h : ((childHL thetaBelowCell111133010233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010233) h) + (by + have h : ((childHH thetaBelowCell111133010233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010233) h)) + +theorem cover_subtree_3b5ec2cd76c2 : + adaptiveCoverCheck 8 (childHL (childLL thetaBelowCell11113301)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL thetaBelowCell11113301)) + cover_subtree_37babc6363e9 + cover_subtree_507281a99f13 + cover_subtree_a5c13fd746d7 + cover_subtree_6d4cbcd8b0bf + +theorem cover_subtree_a6f74a199082 : + adaptiveCoverCheck 7 (childLL (childHH (childLL thetaBelowCell11113301))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHH (childLL thetaBelowCell11113301))) + (by + have h : (thetaBelowCell111133010300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133010300 h) + (by + have h : (thetaBelowCell111133010301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133010301 h) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010302 + (by + have h : ((childLL thetaBelowCell111133010302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010302) h) + (by + have h : ((childLH thetaBelowCell111133010302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010302) h) + (by + have h : ((childHL thetaBelowCell111133010302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010302) h) + (by + have h : ((childHH thetaBelowCell111133010302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010302) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010303 + (by + have h : ((childLL thetaBelowCell111133010303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010303) h) + (by + have h : ((childLH thetaBelowCell111133010303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010303) h) + (by + have h : ((childHL thetaBelowCell111133010303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010303) h) + (by + have h : ((childHH thetaBelowCell111133010303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010303) h)) + +theorem cover_subtree_9f6cabcef004 : + adaptiveCoverCheck 7 (childLH (childHH (childLL thetaBelowCell11113301))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHH (childLL thetaBelowCell11113301))) + (by + have h : (thetaBelowCell111133010310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133010310 h) + (by + have h : (thetaBelowCell111133010311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133010311 h) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010312 + (by + have h : ((childLL thetaBelowCell111133010312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010312) h) + (by + have h : ((childLH thetaBelowCell111133010312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010312) h) + (by + have h : ((childHL thetaBelowCell111133010312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010312) h) + (by + have h : ((childHH thetaBelowCell111133010312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010312) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010313 + (by + have h : ((childLL thetaBelowCell111133010313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010313) h) + (by + have h : ((childLH thetaBelowCell111133010313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010313) h) + (by + have h : ((childHL thetaBelowCell111133010313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010313) h) + (by + have h : ((childHH thetaBelowCell111133010313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010313) h)) + +theorem cover_subtree_66d25ab1916a : + adaptiveCoverCheck 7 (childHL (childHH (childLL thetaBelowCell11113301))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHH (childLL thetaBelowCell11113301))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010320 + (by + have h : ((childLL thetaBelowCell111133010320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010320) h) + (by + have h : ((childLH thetaBelowCell111133010320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010320) h) + (by + have h : ((childHL thetaBelowCell111133010320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010320) h) + (by + have h : ((childHH thetaBelowCell111133010320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010320) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010321 + (by + have h : ((childLL thetaBelowCell111133010321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010321) h) + (by + have h : ((childLH thetaBelowCell111133010321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010321) h) + (by + have h : ((childHL thetaBelowCell111133010321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010321) h) + (by + have h : ((childHH thetaBelowCell111133010321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010321) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010322 + (by + have h : ((childLL thetaBelowCell111133010322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010322) h) + (by + have h : ((childLH thetaBelowCell111133010322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010322) h) + (by + have h : ((childHL thetaBelowCell111133010322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010322) h) + (by + have h : ((childHH thetaBelowCell111133010322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010322) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010323 + (by + have h : ((childLL thetaBelowCell111133010323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010323) h) + (by + have h : ((childLH thetaBelowCell111133010323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010323) h) + (by + have h : ((childHL thetaBelowCell111133010323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010323) h) + (by + have h : ((childHH thetaBelowCell111133010323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010323) h)) + +theorem cover_subtree_7a16ff7db42a : + adaptiveCoverCheck 7 (childHH (childHH (childLL thetaBelowCell11113301))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHH (childLL thetaBelowCell11113301))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010330 + (by + have h : ((childLL thetaBelowCell111133010330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010330) h) + (by + have h : ((childLH thetaBelowCell111133010330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010330) h) + (by + have h : ((childHL thetaBelowCell111133010330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010330) h) + (by + have h : ((childHH thetaBelowCell111133010330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010330) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010331 + (by + have h : ((childLL thetaBelowCell111133010331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010331) h) + (by + have h : ((childLH thetaBelowCell111133010331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010331) h) + (by + have h : ((childHL thetaBelowCell111133010331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010331) h) + (by + have h : ((childHH thetaBelowCell111133010331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010331) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010332 + (by + have h : ((childLL thetaBelowCell111133010332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010332) h) + (by + have h : ((childLH thetaBelowCell111133010332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010332) h) + (by + have h : ((childHL thetaBelowCell111133010332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010332) h) + (by + have h : ((childHH thetaBelowCell111133010332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010332) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133010333 + (by + have h : ((childLL thetaBelowCell111133010333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133010333) h) + (by + have h : ((childLH thetaBelowCell111133010333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133010333) h) + (by + have h : ((childHL thetaBelowCell111133010333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133010333) h) + (by + have h : ((childHH thetaBelowCell111133010333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133010333) h)) + +theorem cover_subtree_c3eeff28e7cb : + adaptiveCoverCheck 8 (childHH (childLL thetaBelowCell11113301)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL thetaBelowCell11113301)) + cover_subtree_a6f74a199082 + cover_subtree_9f6cabcef004 + cover_subtree_66d25ab1916a + cover_subtree_7a16ff7db42a + +theorem e24KC2ThetaBelowLeaf111133010 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113301) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11113301) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL thetaBelowCell11113301)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLL + thetaBelowCell11113301))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLL + thetaBelowCell11113301))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLL + thetaBelowCell11113301))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLL + thetaBelowCell11113301))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL thetaBelowCell11113301)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLL + thetaBelowCell11113301))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLL + thetaBelowCell11113301))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLL + thetaBelowCell11113301))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLL + thetaBelowCell11113301))) h)) + cover_subtree_3b5ec2cd76c2 + cover_subtree_c3eeff28e7cb +theorem cover_subtree_1ae28d021e20 : + adaptiveCoverCheck 7 (childLL (childHL (childLH thetaBelowCell11113301))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHL (childLH thetaBelowCell11113301))) + (by + have h : (thetaBelowCell111133011200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133011200 h) + (by + have h : (thetaBelowCell111133011201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133011201 h) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011202 + (by + have h : ((childLL thetaBelowCell111133011202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011202) h) + (by + have h : ((childLH thetaBelowCell111133011202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011202) h) + (by + have h : ((childHL thetaBelowCell111133011202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011202) h) + (by + have h : ((childHH thetaBelowCell111133011202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011202) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011203 + (by + have h : ((childLL thetaBelowCell111133011203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011203) h) + (by + have h : ((childLH thetaBelowCell111133011203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011203) h) + (by + have h : ((childHL thetaBelowCell111133011203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011203) h) + (by + have h : ((childHH thetaBelowCell111133011203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011203) h)) + +theorem cover_subtree_40cb4ec2b408 : + adaptiveCoverCheck 7 (childLH (childHL (childLH thetaBelowCell11113301))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHL (childLH thetaBelowCell11113301))) + (by + have h : (thetaBelowCell111133011210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133011210 h) + (by + have h : (thetaBelowCell111133011211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133011211 h) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011212 + (by + have h : ((childLL thetaBelowCell111133011212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011212) h) + (by + have h : ((childLH thetaBelowCell111133011212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011212) h) + (by + have h : ((childHL thetaBelowCell111133011212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011212) h) + (by + have h : ((childHH thetaBelowCell111133011212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011212) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011213 + (by + have h : ((childLL thetaBelowCell111133011213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011213) h) + (by + have h : ((childLH thetaBelowCell111133011213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011213) h) + (by + have h : ((childHL thetaBelowCell111133011213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011213) h) + (by + have h : ((childHH thetaBelowCell111133011213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011213) h)) + +theorem cover_subtree_b87befd4bfbe : + adaptiveCoverCheck 7 (childHL (childHL (childLH thetaBelowCell11113301))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHL (childLH thetaBelowCell11113301))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011220 + (by + have h : ((childLL thetaBelowCell111133011220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011220) h) + (by + have h : ((childLH thetaBelowCell111133011220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011220) h) + (by + have h : ((childHL thetaBelowCell111133011220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011220) h) + (by + have h : ((childHH thetaBelowCell111133011220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011220) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011221 + (by + have h : ((childLL thetaBelowCell111133011221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011221) h) + (by + have h : ((childLH thetaBelowCell111133011221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011221) h) + (by + have h : ((childHL thetaBelowCell111133011221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011221) h) + (by + have h : ((childHH thetaBelowCell111133011221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011221) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011222 + (by + have h : ((childLL thetaBelowCell111133011222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011222) h) + (by + have h : ((childLH thetaBelowCell111133011222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011222) h) + (by + have h : ((childHL thetaBelowCell111133011222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011222) h) + (by + have h : ((childHH thetaBelowCell111133011222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011222) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011223 + (by + have h : ((childLL thetaBelowCell111133011223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011223) h) + (by + have h : ((childLH thetaBelowCell111133011223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011223) h) + (by + have h : ((childHL thetaBelowCell111133011223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011223) h) + (by + have h : ((childHH thetaBelowCell111133011223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011223) h)) + +theorem cover_subtree_58527e6cb5e3 : + adaptiveCoverCheck 7 (childHH (childHL (childLH thetaBelowCell11113301))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHL (childLH thetaBelowCell11113301))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011230 + (by + have h : ((childLL thetaBelowCell111133011230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011230) h) + (by + have h : ((childLH thetaBelowCell111133011230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011230) h) + (by + have h : ((childHL thetaBelowCell111133011230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011230) h) + (by + have h : ((childHH thetaBelowCell111133011230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011230) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011231 + (by + have h : ((childLL thetaBelowCell111133011231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011231) h) + (by + have h : ((childLH thetaBelowCell111133011231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011231) h) + (by + have h : ((childHL thetaBelowCell111133011231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011231) h) + (by + have h : ((childHH thetaBelowCell111133011231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011231) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011232 + (by + have h : ((childLL thetaBelowCell111133011232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011232) h) + (by + have h : ((childLH thetaBelowCell111133011232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011232) h) + (by + have h : ((childHL thetaBelowCell111133011232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011232) h) + (by + have h : ((childHH thetaBelowCell111133011232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011232) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011233 + (by + have h : ((childLL thetaBelowCell111133011233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011233) h) + (by + have h : ((childLH thetaBelowCell111133011233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011233) h) + (by + have h : ((childHL thetaBelowCell111133011233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011233) h) + (by + have h : ((childHH thetaBelowCell111133011233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011233) h)) + +theorem cover_subtree_c56ac23b21bd : + adaptiveCoverCheck 8 (childHL (childLH thetaBelowCell11113301)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH thetaBelowCell11113301)) + cover_subtree_1ae28d021e20 + cover_subtree_40cb4ec2b408 + cover_subtree_b87befd4bfbe + cover_subtree_58527e6cb5e3 + +theorem cover_subtree_644ffb1207bc : + adaptiveCoverCheck 7 (childLL (childHH (childLH thetaBelowCell11113301))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHH (childLH thetaBelowCell11113301))) + (by + have h : (thetaBelowCell111133011300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133011300 h) + (by + have h : (thetaBelowCell111133011301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133011301 h) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011302 + (by + have h : ((childLL thetaBelowCell111133011302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011302) h) + (by + have h : ((childLH thetaBelowCell111133011302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011302) h) + (by + have h : ((childHL thetaBelowCell111133011302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011302) h) + (by + have h : ((childHH thetaBelowCell111133011302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011302) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011303 + (by + have h : ((childLL thetaBelowCell111133011303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011303) h) + (by + have h : ((childLH thetaBelowCell111133011303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011303) h) + (by + have h : ((childHL thetaBelowCell111133011303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011303) h) + (by + have h : ((childHH thetaBelowCell111133011303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011303) h)) + +theorem cover_subtree_15868ac019bc : + adaptiveCoverCheck 7 (childLH (childHH (childLH thetaBelowCell11113301))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHH (childLH thetaBelowCell11113301))) + (by + have h : (thetaBelowCell111133011310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133011310 h) + (by + have h : (thetaBelowCell111133011311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133011311 h) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011312 + (by + have h : ((childLL thetaBelowCell111133011312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011312) h) + (by + have h : ((childLH thetaBelowCell111133011312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011312) h) + (by + have h : ((childHL thetaBelowCell111133011312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011312) h) + (by + have h : ((childHH thetaBelowCell111133011312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011312) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011313 + (by + have h : ((childLL thetaBelowCell111133011313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011313) h) + (by + have h : ((childLH thetaBelowCell111133011313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011313) h) + (by + have h : ((childHL thetaBelowCell111133011313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011313) h) + (by + have h : ((childHH thetaBelowCell111133011313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011313) h)) + +theorem cover_subtree_c4a4ddefa402 : + adaptiveCoverCheck 7 (childHL (childHH (childLH thetaBelowCell11113301))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHH (childLH thetaBelowCell11113301))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011320 + (by + have h : ((childLL thetaBelowCell111133011320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011320) h) + (by + have h : ((childLH thetaBelowCell111133011320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011320) h) + (by + have h : ((childHL thetaBelowCell111133011320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011320) h) + (by + have h : ((childHH thetaBelowCell111133011320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011320) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011321 + (by + have h : ((childLL thetaBelowCell111133011321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011321) h) + (by + have h : ((childLH thetaBelowCell111133011321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011321) h) + (by + have h : ((childHL thetaBelowCell111133011321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011321) h) + (by + have h : ((childHH thetaBelowCell111133011321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011321) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011322 + (by + have h : ((childLL thetaBelowCell111133011322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011322) h) + (by + have h : ((childLH thetaBelowCell111133011322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011322) h) + (by + have h : ((childHL thetaBelowCell111133011322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011322) h) + (by + have h : ((childHH thetaBelowCell111133011322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011322) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011323 + (by + have h : ((childLL thetaBelowCell111133011323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011323) h) + (by + have h : ((childLH thetaBelowCell111133011323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011323) h) + (by + have h : ((childHL thetaBelowCell111133011323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011323) h) + (by + have h : ((childHH thetaBelowCell111133011323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011323) h)) + +theorem cover_subtree_2e2978a517d6 : + adaptiveCoverCheck 7 (childHH (childHH (childLH thetaBelowCell11113301))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHH (childLH thetaBelowCell11113301))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011330 + (by + have h : ((childLL thetaBelowCell111133011330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011330) h) + (by + have h : ((childLH thetaBelowCell111133011330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011330) h) + (by + have h : ((childHL thetaBelowCell111133011330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011330) h) + (by + have h : ((childHH thetaBelowCell111133011330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011330) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011331 + (by + have h : ((childLL thetaBelowCell111133011331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011331) h) + (by + have h : ((childLH thetaBelowCell111133011331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011331) h) + (by + have h : ((childHL thetaBelowCell111133011331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011331) h) + (by + have h : ((childHH thetaBelowCell111133011331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011331) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011332 + (by + have h : ((childLL thetaBelowCell111133011332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011332) h) + (by + have h : ((childLH thetaBelowCell111133011332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011332) h) + (by + have h : ((childHL thetaBelowCell111133011332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011332) h) + (by + have h : ((childHH thetaBelowCell111133011332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011332) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133011333 + (by + have h : ((childLL thetaBelowCell111133011333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133011333) h) + (by + have h : ((childLH thetaBelowCell111133011333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133011333) h) + (by + have h : ((childHL thetaBelowCell111133011333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133011333) h) + (by + have h : ((childHH thetaBelowCell111133011333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133011333) h)) + +theorem cover_subtree_f27cd76bf084 : + adaptiveCoverCheck 8 (childHH (childLH thetaBelowCell11113301)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH thetaBelowCell11113301)) + cover_subtree_644ffb1207bc + cover_subtree_15868ac019bc + cover_subtree_c4a4ddefa402 + cover_subtree_2e2978a517d6 + +theorem e24KC2ThetaBelowLeaf111133011 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113301) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11113301) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH thetaBelowCell11113301)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLH + thetaBelowCell11113301))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLH + thetaBelowCell11113301))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLH + thetaBelowCell11113301))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLH + thetaBelowCell11113301))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH thetaBelowCell11113301)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLH + thetaBelowCell11113301))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLH + thetaBelowCell11113301))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLH + thetaBelowCell11113301))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLH + thetaBelowCell11113301))) h)) + cover_subtree_c56ac23b21bd + cover_subtree_f27cd76bf084 +theorem e24KC2ThetaBelowLeaf111133012 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113301) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11113301) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL thetaBelowCell11113301)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childLL (childHL + thetaBelowCell11113301))) + (by + have h : (thetaBelowCell111133012000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133012000 h) + (by + have h : (thetaBelowCell111133012001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133012001 h) + (by + have h : (thetaBelowCell111133012002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133012002 h) + (by + have h : (thetaBelowCell111133012003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133012003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childLL (childHL + thetaBelowCell11113301))) + (by + have h : (thetaBelowCell111133012010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133012010 h) + (by + have h : (thetaBelowCell111133012011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133012011 h) + (by + have h : (thetaBelowCell111133012012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133012012 h) + (by + have h : (thetaBelowCell111133012013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133012013 h)) + (by + have h : ((childHL (childLL (childHL thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childHL + thetaBelowCell11113301))) h) + (by + have h : ((childHH (childLL (childHL thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childHL + thetaBelowCell11113301))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL thetaBelowCell11113301)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childLH (childHL + thetaBelowCell11113301))) + (by + have h : (thetaBelowCell111133012100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133012100 h) + (by + have h : (thetaBelowCell111133012101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133012101 h) + (by + have h : (thetaBelowCell111133012102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133012102 h) + (by + have h : (thetaBelowCell111133012103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133012103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childLH (childHL + thetaBelowCell11113301))) + (by + have h : (thetaBelowCell111133012110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133012110 h) + (by + have h : (thetaBelowCell111133012111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133012111 h) + (by + have h : (thetaBelowCell111133012112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133012112 h) + (by + have h : (thetaBelowCell111133012113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133012113 h)) + (by + have h : ((childHL (childLH (childHL thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childHL + thetaBelowCell11113301))) h) + (by + have h : ((childHH (childLH (childHL thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childHL + thetaBelowCell11113301))) h)) + (by + have h : ((childHL (childHL thetaBelowCell11113301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11113301)) h) + (by + have h : ((childHH (childHL thetaBelowCell11113301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11113301)) h) +theorem e24KC2ThetaBelowLeaf111133013 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113301) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11113301) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH thetaBelowCell11113301)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childLL (childHH + thetaBelowCell11113301))) + (by + have h : (thetaBelowCell111133013000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133013000 h) + (by + have h : (thetaBelowCell111133013001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133013001 h) + (by + have h : (thetaBelowCell111133013002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133013002 h) + (by + have h : (thetaBelowCell111133013003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133013003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childLL (childHH + thetaBelowCell11113301))) + (by + have h : (thetaBelowCell111133013010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133013010 h) + (by + have h : (thetaBelowCell111133013011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133013011 h) + (by + have h : (thetaBelowCell111133013012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133013012 h) + (by + have h : (thetaBelowCell111133013013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133013013 h)) + (by + have h : ((childHL (childLL (childHH thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childHH + thetaBelowCell11113301))) h) + (by + have h : ((childHH (childLL (childHH thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childHH + thetaBelowCell11113301))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH thetaBelowCell11113301)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childLH (childHH + thetaBelowCell11113301))) + (by + have h : (thetaBelowCell111133013100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133013100 h) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133013101 + (by + have h : ((childLL thetaBelowCell111133013101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133013101) + h) + (by + have h : ((childLH thetaBelowCell111133013101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133013101) + h) + (by + have h : ((childHL thetaBelowCell111133013101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133013101) + h) + (by + have h : ((childHH thetaBelowCell111133013101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133013101) + h)) + (by + have h : (thetaBelowCell111133013102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133013102 h) + (by + have h : (thetaBelowCell111133013103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133013103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childLH (childHH + thetaBelowCell11113301))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133013110 + (by + have h : ((childLL thetaBelowCell111133013110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133013110) + h) + (by + have h : ((childLH thetaBelowCell111133013110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133013110) + h) + (by + have h : ((childHL thetaBelowCell111133013110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133013110) + h) + (by + have h : ((childHH thetaBelowCell111133013110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133013110) + h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133013111 + (by + have h : ((childLL thetaBelowCell111133013111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133013111) + h) + (by + have h : ((childLH thetaBelowCell111133013111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133013111) + h) + (by + have h : ((childHL thetaBelowCell111133013111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133013111) + h) + (by + have h : ((childHH thetaBelowCell111133013111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133013111) + h)) + (by + have h : (thetaBelowCell111133013112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133013112 h) + (by + have h : (thetaBelowCell111133013113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133013113 h)) + (by + have h : ((childHL (childLH (childHH thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childHH + thetaBelowCell11113301))) h) + (by + have h : ((childHH (childLH (childHH thetaBelowCell11113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childHH + thetaBelowCell11113301))) h)) + (by + have h : ((childHL (childHH thetaBelowCell11113301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11113301)) h) + (by + have h : ((childHH (childHH thetaBelowCell11113301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11113301)) h) +theorem cover_subtree_e85bd45b4e1d : + adaptiveCoverCheck 7 (childLL (childHL (childLL thetaBelowCell11113310))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHL (childLL thetaBelowCell11113310))) + (by + have h : (thetaBelowCell111133100200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133100200 h) + (by + have h : (thetaBelowCell111133100201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133100201 h) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133100202 + (by + have h : ((childLL thetaBelowCell111133100202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133100202) h) + (by + have h : ((childLH thetaBelowCell111133100202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133100202) h) + (by + have h : ((childHL thetaBelowCell111133100202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133100202) h) + (by + have h : ((childHH thetaBelowCell111133100202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133100202) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133100203 + (by + have h : ((childLL thetaBelowCell111133100203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133100203) h) + (by + have h : ((childLH thetaBelowCell111133100203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133100203) h) + (by + have h : ((childHL thetaBelowCell111133100203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133100203) h) + (by + have h : ((childHH thetaBelowCell111133100203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133100203) h)) + +theorem cover_subtree_0f8d2b9c96c3 : + adaptiveCoverCheck 7 (childHL (childHL (childLL thetaBelowCell11113310))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHL (childLL thetaBelowCell11113310))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133100220 + (by + have h : ((childLL thetaBelowCell111133100220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133100220) h) + (by + have h : ((childLH thetaBelowCell111133100220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133100220) h) + (by + have h : ((childHL thetaBelowCell111133100220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133100220) h) + (by + have h : ((childHH thetaBelowCell111133100220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133100220) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133100221 + (by + have h : ((childLL thetaBelowCell111133100221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133100221) h) + (by + have h : ((childLH thetaBelowCell111133100221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133100221) h) + (by + have h : ((childHL thetaBelowCell111133100221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133100221) h) + (by + have h : ((childHH thetaBelowCell111133100221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133100221) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133100222 + (by + have h : ((childLL thetaBelowCell111133100222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133100222) h) + (by + have h : ((childLH thetaBelowCell111133100222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133100222) h) + (by + have h : ((childHL thetaBelowCell111133100222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133100222) h) + (by + have h : ((childHH thetaBelowCell111133100222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133100222) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133100223 + (by + have h : ((childLL thetaBelowCell111133100223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133100223) h) + (by + have h : ((childLH thetaBelowCell111133100223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133100223) h) + (by + have h : ((childHL thetaBelowCell111133100223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133100223) h) + (by + have h : ((childHH thetaBelowCell111133100223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133100223) h)) + +theorem cover_subtree_8e5ba23f7a1f : + adaptiveCoverCheck 7 (childHH (childHL (childLL thetaBelowCell11113310))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHL (childLL thetaBelowCell11113310))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133100230 + (by + have h : ((childLL thetaBelowCell111133100230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133100230) h) + (by + have h : ((childLH thetaBelowCell111133100230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133100230) h) + (by + have h : ((childHL thetaBelowCell111133100230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133100230) h) + (by + have h : ((childHH thetaBelowCell111133100230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133100230) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133100231 + (by + have h : ((childLL thetaBelowCell111133100231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133100231) h) + (by + have h : ((childLH thetaBelowCell111133100231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133100231) h) + (by + have h : ((childHL thetaBelowCell111133100231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133100231) h) + (by + have h : ((childHH thetaBelowCell111133100231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133100231) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133100232 + (by + have h : ((childLL thetaBelowCell111133100232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133100232) h) + (by + have h : ((childLH thetaBelowCell111133100232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133100232) h) + (by + have h : ((childHL thetaBelowCell111133100232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133100232) h) + (by + have h : ((childHH thetaBelowCell111133100232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133100232) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133100233 + (by + have h : ((childLL thetaBelowCell111133100233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133100233) h) + (by + have h : ((childLH thetaBelowCell111133100233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133100233) h) + (by + have h : ((childHL thetaBelowCell111133100233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133100233) h) + (by + have h : ((childHH thetaBelowCell111133100233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133100233) h)) + +theorem cover_subtree_dfa4585c7b57 : + adaptiveCoverCheck 8 (childHL (childLL thetaBelowCell11113310)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL thetaBelowCell11113310)) + cover_subtree_e85bd45b4e1d + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHL (childLL + thetaBelowCell11113310))) + (by + have h : (thetaBelowCell111133100210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133100210 h) + (by + have h : (thetaBelowCell111133100211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133100211 h) + (by + have h : (thetaBelowCell111133100212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133100212 h) + (by + have h : (thetaBelowCell111133100213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133100213 h)) + cover_subtree_0f8d2b9c96c3 + cover_subtree_8e5ba23f7a1f + +theorem cover_subtree_c078044ffcf3 : + adaptiveCoverCheck 6 thetaBelowCell111133100323 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133100323 + (by + have h : ((childLL thetaBelowCell111133100323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133100323) h) + (by + have h : ((childLH thetaBelowCell111133100323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133100323) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133100323) + (by + have h : ((childLL (childHL thetaBelowCell111133100323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133100323)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133100323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133100323)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133100323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133100323)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133100323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133100323)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133100323) + (by + have h : ((childLL (childHH thetaBelowCell111133100323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133100323)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133100323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133100323)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133100323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133100323)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133100323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133100323)) h)) + +theorem cover_subtree_4936ea81b96a : + adaptiveCoverCheck 7 (childHL (childHH (childLL thetaBelowCell11113310))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHH (childLL thetaBelowCell11113310))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133100320 + (by + have h : ((childLL thetaBelowCell111133100320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133100320) h) + (by + have h : ((childLH thetaBelowCell111133100320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133100320) h) + (by + have h : ((childHL thetaBelowCell111133100320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133100320) h) + (by + have h : ((childHH thetaBelowCell111133100320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133100320) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133100321 + (by + have h : ((childLL thetaBelowCell111133100321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133100321) h) + (by + have h : ((childLH thetaBelowCell111133100321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133100321) h) + (by + have h : ((childHL thetaBelowCell111133100321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133100321) h) + (by + have h : ((childHH thetaBelowCell111133100321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133100321) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133100322 + (by + have h : ((childLL thetaBelowCell111133100322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133100322) h) + (by + have h : ((childLH thetaBelowCell111133100322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133100322) h) + (by + have h : ((childHL thetaBelowCell111133100322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133100322) h) + (by + have h : ((childHH thetaBelowCell111133100322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133100322) h)) + cover_subtree_c078044ffcf3 + +theorem cover_subtree_4aef0c949cec : + adaptiveCoverCheck 6 thetaBelowCell111133100332 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133100332 + (by + have h : ((childLL thetaBelowCell111133100332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133100332) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133100332) + (by + have h : ((childLL (childLH thetaBelowCell111133100332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133100332)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133100332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133100332)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133100332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133100332)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133100332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133100332)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133100332) + (by + have h : ((childLL (childHL thetaBelowCell111133100332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133100332)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133100332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133100332)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133100332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133100332)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133100332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133100332)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133100332) + (by + have h : ((childLL (childHH thetaBelowCell111133100332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133100332)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133100332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133100332)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133100332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133100332)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133100332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133100332)) h)) + +theorem cover_subtree_4d117a1fae58 : + adaptiveCoverCheck 6 thetaBelowCell111133100333 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133100333 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133100333) + (by + have h : ((childLL (childLL thetaBelowCell111133100333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133100333)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133100333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133100333)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133100333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133100333)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133100333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133100333)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133100333) + (by + have h : ((childLL (childLH thetaBelowCell111133100333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133100333)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133100333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133100333)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133100333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133100333)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133100333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133100333)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133100333) + (by + have h : ((childLL (childHL thetaBelowCell111133100333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133100333)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133100333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133100333)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133100333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133100333)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133100333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133100333)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133100333) + (by + have h : ((childLL (childHH thetaBelowCell111133100333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133100333)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133100333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133100333)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133100333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133100333)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133100333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133100333)) h)) + +theorem cover_subtree_d8cdaaae2631 : + adaptiveCoverCheck 7 (childHH (childHH (childLL thetaBelowCell11113310))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHH (childLL thetaBelowCell11113310))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133100330 + (by + have h : ((childLL thetaBelowCell111133100330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133100330) h) + (by + have h : ((childLH thetaBelowCell111133100330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133100330) h) + (by + have h : ((childHL thetaBelowCell111133100330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133100330) h) + (by + have h : ((childHH thetaBelowCell111133100330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133100330) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133100331 + (by + have h : ((childLL thetaBelowCell111133100331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133100331) h) + (by + have h : ((childLH thetaBelowCell111133100331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133100331) h) + (by + have h : ((childHL thetaBelowCell111133100331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133100331) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133100331) + (by + have h : ((childLL (childHH thetaBelowCell111133100331))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133100331)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133100331))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133100331)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133100331))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133100331)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133100331))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133100331)) h))) + cover_subtree_4aef0c949cec + cover_subtree_4d117a1fae58 + +theorem cover_subtree_04c9e6a73353 : + adaptiveCoverCheck 8 (childHH (childLL thetaBelowCell11113310)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL thetaBelowCell11113310)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHH (childLL + thetaBelowCell11113310))) + (by + have h : (thetaBelowCell111133100300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133100300 h) + (by + have h : (thetaBelowCell111133100301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133100301 h) + (by + have h : (thetaBelowCell111133100302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133100302 h) + (by + have h : (thetaBelowCell111133100303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133100303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHH (childLL + thetaBelowCell11113310))) + (by + have h : (thetaBelowCell111133100310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133100310 h) + (by + have h : (thetaBelowCell111133100311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133100311 h) + (by + have h : (thetaBelowCell111133100312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133100312 h) + (by + have h : (thetaBelowCell111133100313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133100313 h)) + cover_subtree_4936ea81b96a + cover_subtree_d8cdaaae2631 + +theorem e24KC2ThetaBelowLeaf111133100 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113310) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11113310) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL thetaBelowCell11113310)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLL + thetaBelowCell11113310))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLL + thetaBelowCell11113310))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLL + thetaBelowCell11113310))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLL + thetaBelowCell11113310))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL thetaBelowCell11113310)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLL + thetaBelowCell11113310))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLL + thetaBelowCell11113310))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLL + thetaBelowCell11113310))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLL + thetaBelowCell11113310))) h)) + cover_subtree_dfa4585c7b57 + cover_subtree_04c9e6a73353 +theorem cover_subtree_ac282f2600dc : + adaptiveCoverCheck 6 thetaBelowCell111133101220 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133101220 + (by + have h : ((childLL thetaBelowCell111133101220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133101220) h) + (by + have h : ((childLH thetaBelowCell111133101220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133101220) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133101220) + (by + have h : ((childLL (childHL thetaBelowCell111133101220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133101220)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133101220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133101220)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133101220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133101220)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133101220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133101220)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133101220) + (by + have h : ((childLL (childHH thetaBelowCell111133101220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133101220)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133101220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133101220)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133101220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133101220)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133101220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133101220)) h)) + +theorem cover_subtree_073de9109fcf : + adaptiveCoverCheck 6 thetaBelowCell111133101221 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133101221 + (by + have h : ((childLL thetaBelowCell111133101221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133101221) h) + (by + have h : ((childLH thetaBelowCell111133101221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133101221) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133101221) + (by + have h : ((childLL (childHL thetaBelowCell111133101221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133101221)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133101221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133101221)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133101221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133101221)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133101221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133101221)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133101221) + (by + have h : ((childLL (childHH thetaBelowCell111133101221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133101221)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133101221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133101221)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133101221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133101221)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133101221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133101221)) h)) + +theorem cover_subtree_09bb9f7fb348 : + adaptiveCoverCheck 6 thetaBelowCell111133101222 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133101222 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133101222) + (by + have h : ((childLL (childLL thetaBelowCell111133101222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133101222)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133101222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133101222)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133101222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133101222)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133101222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133101222)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133101222) + (by + have h : ((childLL (childLH thetaBelowCell111133101222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133101222)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133101222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133101222)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133101222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133101222)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133101222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133101222)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133101222) + (by + have h : ((childLL (childHL thetaBelowCell111133101222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133101222)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133101222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133101222)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133101222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133101222)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133101222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133101222)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133101222) + (by + have h : ((childLL (childHH thetaBelowCell111133101222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133101222)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133101222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133101222)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133101222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133101222)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133101222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133101222)) h)) + +theorem cover_subtree_616efb7da0d5 : + adaptiveCoverCheck 6 thetaBelowCell111133101223 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133101223 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133101223) + (by + have h : ((childLL (childLL thetaBelowCell111133101223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133101223)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133101223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133101223)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133101223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133101223)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133101223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133101223)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133101223) + (by + have h : ((childLL (childLH thetaBelowCell111133101223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133101223)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133101223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133101223)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133101223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133101223)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133101223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133101223)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133101223) + (by + have h : ((childLL (childHL thetaBelowCell111133101223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133101223)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133101223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133101223)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133101223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133101223)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133101223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133101223)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133101223) + (by + have h : ((childLL (childHH thetaBelowCell111133101223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133101223)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133101223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133101223)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133101223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133101223)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133101223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133101223)) h)) + +theorem cover_subtree_76fb46ac376b : + adaptiveCoverCheck 7 (childHL (childHL (childLH thetaBelowCell11113310))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHL (childLH thetaBelowCell11113310))) + cover_subtree_ac282f2600dc + cover_subtree_073de9109fcf + cover_subtree_09bb9f7fb348 + cover_subtree_616efb7da0d5 + +theorem cover_subtree_2ee17850d55a : + adaptiveCoverCheck 6 thetaBelowCell111133101230 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133101230 + (by + have h : ((childLL thetaBelowCell111133101230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133101230) h) + (by + have h : ((childLH thetaBelowCell111133101230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133101230) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133101230) + (by + have h : ((childLL (childHL thetaBelowCell111133101230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133101230)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133101230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133101230)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133101230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133101230)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133101230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133101230)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133101230) + (by + have h : ((childLL (childHH thetaBelowCell111133101230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133101230)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133101230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133101230)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133101230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133101230)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133101230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133101230)) h)) + +theorem cover_subtree_7a3325b5d632 : + adaptiveCoverCheck 6 thetaBelowCell111133101232 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133101232 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133101232) + (by + have h : ((childLL (childLL thetaBelowCell111133101232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133101232)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133101232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133101232)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133101232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133101232)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133101232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133101232)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133101232) + (by + have h : ((childLL (childLH thetaBelowCell111133101232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133101232)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133101232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133101232)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133101232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133101232)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133101232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133101232)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133101232) + (by + have h : ((childLL (childHL thetaBelowCell111133101232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133101232)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133101232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133101232)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133101232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133101232)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133101232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133101232)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133101232) + (by + have h : ((childLL (childHH thetaBelowCell111133101232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133101232)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133101232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133101232)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133101232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133101232)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133101232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133101232)) h)) + +theorem cover_subtree_03b1ead1eef9 : + adaptiveCoverCheck 6 thetaBelowCell111133101233 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133101233 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133101233) + (by + have h : ((childLL (childLL thetaBelowCell111133101233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133101233)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133101233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133101233)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133101233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133101233)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133101233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133101233)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133101233) + (by + have h : ((childLL (childLH thetaBelowCell111133101233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133101233)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133101233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133101233)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133101233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133101233)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133101233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133101233)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133101233) + (by + have h : ((childLL (childHL thetaBelowCell111133101233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133101233)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133101233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133101233)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133101233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133101233)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133101233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133101233)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133101233) + (by + have h : ((childLL (childHH thetaBelowCell111133101233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133101233)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133101233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133101233)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133101233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133101233)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133101233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133101233)) h)) + +theorem cover_subtree_3534513f2dea : + adaptiveCoverCheck 7 (childHH (childHL (childLH thetaBelowCell11113310))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHL (childLH thetaBelowCell11113310))) + cover_subtree_2ee17850d55a + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133101231 + (by + have h : ((childLL thetaBelowCell111133101231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133101231) h) + (by + have h : ((childLH thetaBelowCell111133101231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133101231) h) + (by + have h : ((childHL thetaBelowCell111133101231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133101231) h) + (by + have h : ((childHH thetaBelowCell111133101231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133101231) h)) + cover_subtree_7a3325b5d632 + cover_subtree_03b1ead1eef9 + +theorem cover_subtree_fee8f6a2356e : + adaptiveCoverCheck 8 (childHL (childLH thetaBelowCell11113310)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH thetaBelowCell11113310)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHL (childLH + thetaBelowCell11113310))) + (by + have h : (thetaBelowCell111133101200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133101200 h) + (by + have h : (thetaBelowCell111133101201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133101201 h) + (by + have h : (thetaBelowCell111133101202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133101202 h) + (by + have h : (thetaBelowCell111133101203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133101203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHL (childLH + thetaBelowCell11113310))) + (by + have h : (thetaBelowCell111133101210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133101210 h) + (by + have h : (thetaBelowCell111133101211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133101211 h) + (by + have h : (thetaBelowCell111133101212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133101212 h) + (by + have h : (thetaBelowCell111133101213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133101213 h)) + cover_subtree_76fb46ac376b + cover_subtree_3534513f2dea + +theorem cover_subtree_5721355f2386 : + adaptiveCoverCheck 6 thetaBelowCell111133101322 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133101322 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133101322) + (by + have h : ((childLL (childLL thetaBelowCell111133101322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133101322)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133101322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133101322)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133101322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133101322)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133101322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133101322)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133101322) + (by + have h : ((childLL (childLH thetaBelowCell111133101322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133101322)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133101322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133101322)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133101322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133101322)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133101322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133101322)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133101322) + (by + have h : ((childLL (childHL thetaBelowCell111133101322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133101322)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133101322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133101322)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133101322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133101322)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133101322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133101322)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133101322) + (by + have h : ((childLL (childHH thetaBelowCell111133101322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133101322)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133101322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133101322)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133101322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133101322)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133101322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133101322)) h)) + +theorem cover_subtree_c66d1685818d : + adaptiveCoverCheck 6 thetaBelowCell111133101323 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133101323 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133101323) + (by + have h : ((childLL (childLL thetaBelowCell111133101323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133101323)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133101323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133101323)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133101323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133101323)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133101323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133101323)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133101323) + (by + have h : ((childLL (childLH thetaBelowCell111133101323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133101323)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133101323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133101323)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133101323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133101323)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133101323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133101323)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133101323) + (by + have h : ((childLL (childHL thetaBelowCell111133101323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133101323)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133101323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133101323)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133101323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133101323)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133101323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133101323)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133101323) + (by + have h : ((childLL (childHH thetaBelowCell111133101323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133101323)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133101323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133101323)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133101323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133101323)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133101323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133101323)) h)) + +theorem cover_subtree_8703d282848e : + adaptiveCoverCheck 7 (childHL (childHH (childLH thetaBelowCell11113310))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHH (childLH thetaBelowCell11113310))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133101320 + (by + have h : ((childLL thetaBelowCell111133101320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133101320) h) + (by + have h : ((childLH thetaBelowCell111133101320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133101320) h) + (by + have h : ((childHL thetaBelowCell111133101320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133101320) h) + (by + have h : ((childHH thetaBelowCell111133101320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133101320) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133101321 + (by + have h : ((childLL thetaBelowCell111133101321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133101321) h) + (by + have h : ((childLH thetaBelowCell111133101321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133101321) h) + (by + have h : ((childHL thetaBelowCell111133101321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133101321) h) + (by + have h : ((childHH thetaBelowCell111133101321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133101321) h)) + cover_subtree_5721355f2386 + cover_subtree_c66d1685818d + +theorem cover_subtree_e6b72831ee5a : + adaptiveCoverCheck 6 thetaBelowCell111133101332 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133101332 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133101332) + (by + have h : ((childLL (childLL thetaBelowCell111133101332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133101332)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133101332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133101332)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133101332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133101332)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133101332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133101332)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133101332) + (by + have h : ((childLL (childLH thetaBelowCell111133101332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133101332)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133101332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133101332)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133101332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133101332)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133101332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133101332)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133101332) + (by + have h : ((childLL (childHL thetaBelowCell111133101332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133101332)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133101332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133101332)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133101332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133101332)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133101332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133101332)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133101332) + (by + have h : ((childLL (childHH thetaBelowCell111133101332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133101332)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133101332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133101332)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133101332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133101332)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133101332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133101332)) h)) + +theorem cover_subtree_58f9acea628e : + adaptiveCoverCheck 6 thetaBelowCell111133101333 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133101333 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133101333) + (by + have h : ((childLL (childLL thetaBelowCell111133101333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133101333)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133101333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133101333)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133101333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133101333)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133101333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133101333)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133101333) + (by + have h : ((childLL (childLH thetaBelowCell111133101333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133101333)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133101333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133101333)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133101333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133101333)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133101333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133101333)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133101333) + (by + have h : ((childLL (childHL thetaBelowCell111133101333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133101333)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133101333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133101333)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133101333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133101333)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133101333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133101333)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133101333) + (by + have h : ((childLL (childHH thetaBelowCell111133101333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133101333)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133101333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133101333)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133101333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133101333)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133101333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133101333)) h)) + +theorem cover_subtree_72f2137bba25 : + adaptiveCoverCheck 7 (childHH (childHH (childLH thetaBelowCell11113310))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHH (childLH thetaBelowCell11113310))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133101330 + (by + have h : ((childLL thetaBelowCell111133101330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133101330) h) + (by + have h : ((childLH thetaBelowCell111133101330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133101330) h) + (by + have h : ((childHL thetaBelowCell111133101330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133101330) h) + (by + have h : ((childHH thetaBelowCell111133101330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133101330) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133101331 + (by + have h : ((childLL thetaBelowCell111133101331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133101331) h) + (by + have h : ((childLH thetaBelowCell111133101331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133101331) h) + (by + have h : ((childHL thetaBelowCell111133101331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133101331) h) + (by + have h : ((childHH thetaBelowCell111133101331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133101331) h)) + cover_subtree_e6b72831ee5a + cover_subtree_58f9acea628e + +theorem cover_subtree_d0cab3230f27 : + adaptiveCoverCheck 8 (childHH (childLH thetaBelowCell11113310)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH thetaBelowCell11113310)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHH (childLH + thetaBelowCell11113310))) + (by + have h : (thetaBelowCell111133101300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133101300 h) + (by + have h : (thetaBelowCell111133101301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133101301 h) + (by + have h : (thetaBelowCell111133101302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133101302 h) + (by + have h : (thetaBelowCell111133101303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133101303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHH (childLH + thetaBelowCell11113310))) + (by + have h : (thetaBelowCell111133101310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133101310 h) + (by + have h : (thetaBelowCell111133101311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133101311 h) + (by + have h : (thetaBelowCell111133101312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133101312 h) + (by + have h : (thetaBelowCell111133101313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133101313 h)) + cover_subtree_8703d282848e + cover_subtree_72f2137bba25 + +theorem e24KC2ThetaBelowLeaf111133101 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113310) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11113310) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH thetaBelowCell11113310)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLH + thetaBelowCell11113310))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLH + thetaBelowCell11113310))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLH + thetaBelowCell11113310))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLH + thetaBelowCell11113310))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH thetaBelowCell11113310)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLH + thetaBelowCell11113310))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLH + thetaBelowCell11113310))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLH + thetaBelowCell11113310))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLH + thetaBelowCell11113310))) h)) + cover_subtree_fee8f6a2356e + cover_subtree_d0cab3230f27 +theorem cover_subtree_b25dcd0a7904 : + adaptiveCoverCheck 7 (childLL (childLL (childHL thetaBelowCell11113310))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childLL (childHL thetaBelowCell11113310))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133102000 + (by + have h : ((childLL thetaBelowCell111133102000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133102000) h) + (by + have h : ((childLH thetaBelowCell111133102000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133102000) h) + (by + have h : ((childHL thetaBelowCell111133102000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133102000) h) + (by + have h : ((childHH thetaBelowCell111133102000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133102000) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133102001 + (by + have h : ((childLL thetaBelowCell111133102001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133102001) h) + (by + have h : ((childLH thetaBelowCell111133102001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133102001) h) + (by + have h : ((childHL thetaBelowCell111133102001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133102001) h) + (by + have h : ((childHH thetaBelowCell111133102001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133102001) h)) + (by + have h : (thetaBelowCell111133102002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133102002 h) + (by + have h : (thetaBelowCell111133102003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133102003 h) + +theorem cover_subtree_b136e2f967cb : + adaptiveCoverCheck 7 (childLH (childLL (childHL thetaBelowCell11113310))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childLL (childHL thetaBelowCell11113310))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133102010 + (by + have h : ((childLL thetaBelowCell111133102010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133102010) h) + (by + have h : ((childLH thetaBelowCell111133102010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133102010) h) + (by + have h : ((childHL thetaBelowCell111133102010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133102010) h) + (by + have h : ((childHH thetaBelowCell111133102010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133102010) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133102011 + (by + have h : ((childLL thetaBelowCell111133102011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133102011) h) + (by + have h : ((childLH thetaBelowCell111133102011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133102011) h) + (by + have h : ((childHL thetaBelowCell111133102011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133102011) h) + (by + have h : ((childHH thetaBelowCell111133102011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133102011) h)) + (by + have h : (thetaBelowCell111133102012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133102012 h) + (by + have h : (thetaBelowCell111133102013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133102013 h) + +theorem cover_subtree_2f872975a74f : + adaptiveCoverCheck 8 (childLL (childHL thetaBelowCell11113310)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL thetaBelowCell11113310)) + cover_subtree_b25dcd0a7904 + cover_subtree_b136e2f967cb + (by + have h : ((childHL (childLL (childHL thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childHL + thetaBelowCell11113310))) h) + (by + have h : ((childHH (childLL (childHL thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childHL + thetaBelowCell11113310))) h) + +theorem cover_subtree_d85bc7893c75 : + adaptiveCoverCheck 7 (childLL (childLH (childHL thetaBelowCell11113310))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childLH (childHL thetaBelowCell11113310))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133102100 + (by + have h : ((childLL thetaBelowCell111133102100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133102100) h) + (by + have h : ((childLH thetaBelowCell111133102100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133102100) h) + (by + have h : ((childHL thetaBelowCell111133102100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133102100) h) + (by + have h : ((childHH thetaBelowCell111133102100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133102100) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133102101 + (by + have h : ((childLL thetaBelowCell111133102101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133102101) h) + (by + have h : ((childLH thetaBelowCell111133102101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133102101) h) + (by + have h : ((childHL thetaBelowCell111133102101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133102101) h) + (by + have h : ((childHH thetaBelowCell111133102101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133102101) h)) + (by + have h : (thetaBelowCell111133102102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133102102 h) + (by + have h : (thetaBelowCell111133102103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133102103 h) + +theorem cover_subtree_16d826fbb67f : + adaptiveCoverCheck 7 (childLH (childLH (childHL thetaBelowCell11113310))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childLH (childHL thetaBelowCell11113310))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133102110 + (by + have h : ((childLL thetaBelowCell111133102110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133102110) h) + (by + have h : ((childLH thetaBelowCell111133102110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133102110) h) + (by + have h : ((childHL thetaBelowCell111133102110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133102110) h) + (by + have h : ((childHH thetaBelowCell111133102110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133102110) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133102111 + (by + have h : ((childLL thetaBelowCell111133102111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133102111) h) + (by + have h : ((childLH thetaBelowCell111133102111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133102111) h) + (by + have h : ((childHL thetaBelowCell111133102111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133102111) h) + (by + have h : ((childHH thetaBelowCell111133102111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133102111) h)) + (by + have h : (thetaBelowCell111133102112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133102112 h) + (by + have h : (thetaBelowCell111133102113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133102113 h) + +theorem cover_subtree_94cd8267c854 : + adaptiveCoverCheck 8 (childLH (childHL thetaBelowCell11113310)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL thetaBelowCell11113310)) + cover_subtree_d85bc7893c75 + cover_subtree_16d826fbb67f + (by + have h : ((childHL (childLH (childHL thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childHL + thetaBelowCell11113310))) h) + (by + have h : ((childHH (childLH (childHL thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childHL + thetaBelowCell11113310))) h) + +theorem e24KC2ThetaBelowLeaf111133102 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113310) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11113310) + cover_subtree_2f872975a74f + cover_subtree_94cd8267c854 + (by + have h : ((childHL (childHL thetaBelowCell11113310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11113310)) h) + (by + have h : ((childHH (childHL thetaBelowCell11113310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11113310)) h) +theorem cover_subtree_8bd8067ea850 : + adaptiveCoverCheck 6 thetaBelowCell111133103001 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133103001 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133103001) + (by + have h : ((childLL (childLL thetaBelowCell111133103001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133103001)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133103001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133103001)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133103001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133103001)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133103001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133103001)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133103001) + (by + have h : ((childLL (childLH thetaBelowCell111133103001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133103001)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133103001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133103001)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133103001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133103001)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133103001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133103001)) h)) + (by + have h : ((childHL thetaBelowCell111133103001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133103001) h) + (by + have h : ((childHH thetaBelowCell111133103001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133103001) h) + +theorem cover_subtree_e3f60d1c040d : + adaptiveCoverCheck 7 (childLL (childLL (childHH thetaBelowCell11113310))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childLL (childHH thetaBelowCell11113310))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133103000 + (by + have h : ((childLL thetaBelowCell111133103000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133103000) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133103000) + (by + have h : ((childLL (childLH thetaBelowCell111133103000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133103000)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133103000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133103000)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133103000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133103000)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133103000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133103000)) h)) + (by + have h : ((childHL thetaBelowCell111133103000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133103000) h) + (by + have h : ((childHH thetaBelowCell111133103000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133103000) h)) + cover_subtree_8bd8067ea850 + (by + have h : (thetaBelowCell111133103002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133103002 h) + (by + have h : (thetaBelowCell111133103003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133103003 h) + +theorem cover_subtree_542375e93ae0 : + adaptiveCoverCheck 6 thetaBelowCell111133103010 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133103010 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133103010) + (by + have h : ((childLL (childLL thetaBelowCell111133103010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133103010)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133103010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133103010)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133103010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133103010)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133103010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133103010)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133103010) + (by + have h : ((childLL (childLH thetaBelowCell111133103010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133103010)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133103010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133103010)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133103010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133103010)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133103010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133103010)) h)) + (by + have h : ((childHL thetaBelowCell111133103010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133103010) h) + (by + have h : ((childHH thetaBelowCell111133103010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133103010) h) + +theorem cover_subtree_31a24cecd31f : + adaptiveCoverCheck 6 thetaBelowCell111133103011 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133103011 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133103011) + (by + have h : ((childLL (childLL thetaBelowCell111133103011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133103011)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133103011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133103011)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133103011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133103011)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133103011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133103011)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133103011) + (by + have h : ((childLL (childLH thetaBelowCell111133103011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133103011)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133103011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133103011)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133103011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133103011)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133103011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133103011)) h)) + (by + have h : ((childHL thetaBelowCell111133103011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133103011) h) + (by + have h : ((childHH thetaBelowCell111133103011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133103011) h) + +theorem cover_subtree_785b55e573a2 : + adaptiveCoverCheck 7 (childLH (childLL (childHH thetaBelowCell11113310))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childLL (childHH thetaBelowCell11113310))) + cover_subtree_542375e93ae0 + cover_subtree_31a24cecd31f + (by + have h : (thetaBelowCell111133103012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133103012 h) + (by + have h : (thetaBelowCell111133103013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133103013 h) + +theorem cover_subtree_5ea908f6482f : + adaptiveCoverCheck 8 (childLL (childHH thetaBelowCell11113310)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH thetaBelowCell11113310)) + cover_subtree_e3f60d1c040d + cover_subtree_785b55e573a2 + (by + have h : ((childHL (childLL (childHH thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childHH + thetaBelowCell11113310))) h) + (by + have h : ((childHH (childLL (childHH thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childHH + thetaBelowCell11113310))) h) + +theorem cover_subtree_90ee2a55599b : + adaptiveCoverCheck 6 thetaBelowCell111133103100 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133103100 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133103100) + (by + have h : ((childLL (childLL thetaBelowCell111133103100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133103100)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133103100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133103100)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133103100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133103100)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133103100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133103100)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133103100) + (by + have h : ((childLL (childLH thetaBelowCell111133103100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133103100)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133103100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133103100)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133103100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133103100)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133103100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133103100)) h)) + (by + have h : ((childHL thetaBelowCell111133103100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133103100) h) + (by + have h : ((childHH thetaBelowCell111133103100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133103100) h) + +theorem cover_subtree_846f12d54937 : + adaptiveCoverCheck 6 thetaBelowCell111133103101 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133103101 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133103101) + (by + have h : ((childLL (childLL thetaBelowCell111133103101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133103101)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133103101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133103101)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133103101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133103101)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133103101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133103101)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133103101) + (by + have h : ((childLL (childLH thetaBelowCell111133103101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133103101)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133103101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133103101)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133103101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133103101)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133103101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133103101)) h)) + (by + have h : ((childHL thetaBelowCell111133103101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133103101) h) + (by + have h : ((childHH thetaBelowCell111133103101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133103101) h) + +theorem cover_subtree_c6f98b640f2b : + adaptiveCoverCheck 7 (childLL (childLH (childHH thetaBelowCell11113310))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childLH (childHH thetaBelowCell11113310))) + cover_subtree_90ee2a55599b + cover_subtree_846f12d54937 + (by + have h : (thetaBelowCell111133103102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133103102 h) + (by + have h : (thetaBelowCell111133103103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133103103 h) + +theorem cover_subtree_83af3b43e370 : + adaptiveCoverCheck 6 thetaBelowCell111133103110 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133103110 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133103110) + (by + have h : ((childLL (childLL thetaBelowCell111133103110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133103110)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133103110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133103110)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133103110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133103110)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133103110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133103110)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133103110) + (by + have h : ((childLL (childLH thetaBelowCell111133103110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133103110)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133103110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133103110)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133103110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133103110)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133103110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133103110)) h)) + (by + have h : ((childHL thetaBelowCell111133103110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133103110) h) + (by + have h : ((childHH thetaBelowCell111133103110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133103110) h) + +theorem cover_subtree_6c43321af990 : + adaptiveCoverCheck 6 thetaBelowCell111133103111 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133103111 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133103111) + (by + have h : ((childLL (childLL thetaBelowCell111133103111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133103111)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133103111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133103111)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133103111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133103111)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133103111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133103111)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133103111) + (by + have h : ((childLL (childLH thetaBelowCell111133103111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133103111)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133103111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133103111)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133103111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133103111)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133103111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133103111)) h)) + (by + have h : ((childHL thetaBelowCell111133103111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133103111) h) + (by + have h : ((childHH thetaBelowCell111133103111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133103111) h) + +theorem cover_subtree_ad23d1ccf385 : + adaptiveCoverCheck 7 (childLH (childLH (childHH thetaBelowCell11113310))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childLH (childHH thetaBelowCell11113310))) + cover_subtree_83af3b43e370 + cover_subtree_6c43321af990 + (by + have h : (thetaBelowCell111133103112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133103112 h) + (by + have h : (thetaBelowCell111133103113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133103113 h) + +theorem cover_subtree_5edd590faea9 : + adaptiveCoverCheck 8 (childLH (childHH thetaBelowCell11113310)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH thetaBelowCell11113310)) + cover_subtree_c6f98b640f2b + cover_subtree_ad23d1ccf385 + (by + have h : ((childHL (childLH (childHH thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childHH + thetaBelowCell11113310))) h) + (by + have h : ((childHH (childLH (childHH thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childHH + thetaBelowCell11113310))) h) + +theorem e24KC2ThetaBelowLeaf111133103 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113310) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11113310) + cover_subtree_5ea908f6482f + cover_subtree_5edd590faea9 + (by + have h : ((childHL (childHH thetaBelowCell11113310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11113310)) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH thetaBelowCell11113310)) + (by + have h : ((childLL (childHH (childHH thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childHH + thetaBelowCell11113310))) h) + (by + have h : ((childLH (childHH (childHH thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childHH + thetaBelowCell11113310))) h) + (by + have h : ((childHL (childHH (childHH thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childHH + thetaBelowCell11113310))) h) + (by + have h : ((childHH (childHH (childHH thetaBelowCell11113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childHH + thetaBelowCell11113310))) h)) + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle006.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle006.lean new file mode 100644 index 0000000000..18d5f1e746 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle006.lean @@ -0,0 +1,10386 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch007`. +* `GerverSofa.KernelOnly.PartE.Certificates.Batch023`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCells502d119e99 + +/-- Subcell `0011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0011 : AngleCell := + childLH (childLH (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0012 : AngleCell := + childHL (childLH (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0013 : AngleCell := + childHH (childLH (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0020 : AngleCell := + childLL (childHL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0021 : AngleCell := + childLH (childHL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0022 : AngleCell := + childHL (childHL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0023 : AngleCell := + childHH (childHL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0030 : AngleCell := + childLL (childHH (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0031 : AngleCell := + childLH (childHH (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0032 : AngleCell := + childHL (childHH (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0033 : AngleCell := + childHH (childHH (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0100 : AngleCell := + childLL (childLL (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `00112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00113020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell0011))) + +/-- Subcell `00113021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell0011))) + +/-- Subcell `00113022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell0011))) + +/-- Subcell `00113023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell0011))) + +/-- Subcell `00113030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell0011))) + +/-- Subcell `00113031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell0011))) + +/-- Subcell `00113032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell0011))) + +/-- Subcell `00113033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell0011))) + +/-- Subcell `00113120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell0011))) + +/-- Subcell `00113121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell0011))) + +/-- Subcell `00113122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell0011))) + +/-- Subcell `00113123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell0011))) + +/-- Subcell `00113130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell0011))) + +/-- Subcell `00113131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell0011))) + +/-- Subcell `00113132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell0011))) + +/-- Subcell `00113133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell0011))) + +/-- Subcell `00113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `01002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell0100))) + +/-- Subcell `01002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell0100))) + +/-- Subcell `01002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell0100))) + +/-- Subcell `01002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell0100))) + +/-- Subcell `01002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell0100))) + +/-- Subcell `01002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell0100))) + +/-- Subcell `01002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell0100))) + +/-- Subcell `01002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell0100))) + +/-- Subcell `01002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell0100))) + +/-- Subcell `01002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell0100))) + +/-- Subcell `01002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell0100))) + +/-- Subcell `01002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell0100))) + +/-- Subcell `01002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell0100))) + +/-- Subcell `01002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell0100))) + +/-- Subcell `01002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell0100))) + +/-- Subcell `01002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell0100))) + +/-- Subcell `01002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell0100))) + +/-- Subcell `01003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell0100))) + +/-- Subcell `01003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell0100))) + +/-- Subcell `01003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell0100))) + +/-- Subcell `01003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell0100))) + +/-- Subcell `01003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell0100))) + +/-- Subcell `01003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell0100))) + +/-- Subcell `01003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell0100))) + +/-- Subcell `01003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell0100))) + +/-- Subcell `01003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell0100))) + +/-- Subcell `01003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell0100))) + +/-- Subcell `01003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell0100))) + +/-- Subcell `01003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell0100))) + +/-- Subcell `01003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell0100))) + +/-- Subcell `01003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell0100))) + +/-- Subcell `01003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell0100))) + +/-- Subcell `01003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell0100))) + +end GerverSofa.PartE.CertificateCells502d119e99 + +namespace GerverSofa.PartE.CertificateCells66bed457b5 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `000023002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00002300))) + +/-- Subcell `000023002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00002300))) + +/-- Subcell `000023003000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00002300))) + +/-- Subcell `000023003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00002300))) + +/-- Subcell `000023010220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023010220 : AngleCell := + childLL (childHL (childHL (childLL thetaAboveCell00002301))) + +/-- Subcell `000023010221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023010221 : AngleCell := + childLH (childHL (childHL (childLL thetaAboveCell00002301))) + +/-- Subcell `000023010222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023010222 : AngleCell := + childHL (childHL (childHL (childLL thetaAboveCell00002301))) + +/-- Subcell `000023010223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023010223 : AngleCell := + childHH (childHL (childHL (childLL thetaAboveCell00002301))) + +/-- Subcell `000023010230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023010230 : AngleCell := + childLL (childHH (childHL (childLL thetaAboveCell00002301))) + +/-- Subcell `000023010231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023010231 : AngleCell := + childLH (childHH (childHL (childLL thetaAboveCell00002301))) + +/-- Subcell `000023010232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023010232 : AngleCell := + childHL (childHH (childHL (childLL thetaAboveCell00002301))) + +/-- Subcell `000023010233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023010233 : AngleCell := + childHH (childHH (childHL (childLL thetaAboveCell00002301))) + +/-- Subcell `000023010320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023010320 : AngleCell := + childLL (childHL (childHH (childLL thetaAboveCell00002301))) + +/-- Subcell `000023010321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023010321 : AngleCell := + childLH (childHL (childHH (childLL thetaAboveCell00002301))) + +/-- Subcell `000023010322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023010322 : AngleCell := + childHL (childHL (childHH (childLL thetaAboveCell00002301))) + +/-- Subcell `000023010323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023010323 : AngleCell := + childHH (childHL (childHH (childLL thetaAboveCell00002301))) + +/-- Subcell `000023010330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023010330 : AngleCell := + childLL (childHH (childHH (childLL thetaAboveCell00002301))) + +/-- Subcell `000023010331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023010331 : AngleCell := + childLH (childHH (childHH (childLL thetaAboveCell00002301))) + +/-- Subcell `000023010332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023010332 : AngleCell := + childHL (childHH (childHH (childLL thetaAboveCell00002301))) + +/-- Subcell `000023010333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023010333 : AngleCell := + childHH (childHH (childHH (childLL thetaAboveCell00002301))) + +/-- Subcell `000023011220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023011220 : AngleCell := + childLL (childHL (childHL (childLH thetaAboveCell00002301))) + +/-- Subcell `000023011221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023011221 : AngleCell := + childLH (childHL (childHL (childLH thetaAboveCell00002301))) + +/-- Subcell `000023011222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023011222 : AngleCell := + childHL (childHL (childHL (childLH thetaAboveCell00002301))) + +/-- Subcell `000023011223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023011223 : AngleCell := + childHH (childHL (childHL (childLH thetaAboveCell00002301))) + +/-- Subcell `000023011230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023011230 : AngleCell := + childLL (childHH (childHL (childLH thetaAboveCell00002301))) + +/-- Subcell `000023011231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023011231 : AngleCell := + childLH (childHH (childHL (childLH thetaAboveCell00002301))) + +/-- Subcell `000023011232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023011232 : AngleCell := + childHL (childHH (childHL (childLH thetaAboveCell00002301))) + +/-- Subcell `000023011233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023011233 : AngleCell := + childHH (childHH (childHL (childLH thetaAboveCell00002301))) + +/-- Subcell `000023011320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023011320 : AngleCell := + childLL (childHL (childHH (childLH thetaAboveCell00002301))) + +/-- Subcell `000023011321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023011321 : AngleCell := + childLH (childHL (childHH (childLH thetaAboveCell00002301))) + +/-- Subcell `000023011322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023011322 : AngleCell := + childHL (childHL (childHH (childLH thetaAboveCell00002301))) + +/-- Subcell `000023011323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023011323 : AngleCell := + childHH (childHL (childHH (childLH thetaAboveCell00002301))) + +/-- Subcell `000023011330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023011330 : AngleCell := + childLL (childHH (childHH (childLH thetaAboveCell00002301))) + +/-- Subcell `000023011331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023011331 : AngleCell := + childLH (childHH (childHH (childLH thetaAboveCell00002301))) + +/-- Subcell `000023011332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023011332 : AngleCell := + childHL (childHH (childHH (childLH thetaAboveCell00002301))) + +/-- Subcell `000023011333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023011333 : AngleCell := + childHH (childHH (childHH (childLH thetaAboveCell00002301))) + +/-- Subcell `000023012000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00002301))) + +/-- Subcell `000023012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00002301))) + +/-- Subcell `000023013000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00002301))) + +/-- Subcell `000023013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00002301))) + +/-- Subcell `000023100220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023100220 : AngleCell := + childLL (childHL (childHL (childLL thetaAboveCell00002310))) + +/-- Subcell `000023100221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023100221 : AngleCell := + childLH (childHL (childHL (childLL thetaAboveCell00002310))) + +/-- Subcell `000023100222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023100222 : AngleCell := + childHL (childHL (childHL (childLL thetaAboveCell00002310))) + +/-- Subcell `000023100223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023100223 : AngleCell := + childHH (childHL (childHL (childLL thetaAboveCell00002310))) + +/-- Subcell `000023100230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023100230 : AngleCell := + childLL (childHH (childHL (childLL thetaAboveCell00002310))) + +/-- Subcell `000023100231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023100231 : AngleCell := + childLH (childHH (childHL (childLL thetaAboveCell00002310))) + +/-- Subcell `000023100232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023100232 : AngleCell := + childHL (childHH (childHL (childLL thetaAboveCell00002310))) + +/-- Subcell `000023100233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023100233 : AngleCell := + childHH (childHH (childHL (childLL thetaAboveCell00002310))) + +/-- Subcell `000023100320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023100320 : AngleCell := + childLL (childHL (childHH (childLL thetaAboveCell00002310))) + +/-- Subcell `000023100321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023100321 : AngleCell := + childLH (childHL (childHH (childLL thetaAboveCell00002310))) + +/-- Subcell `000023100322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023100322 : AngleCell := + childHL (childHL (childHH (childLL thetaAboveCell00002310))) + +/-- Subcell `000023100323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023100323 : AngleCell := + childHH (childHL (childHH (childLL thetaAboveCell00002310))) + +/-- Subcell `000023100330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023100330 : AngleCell := + childLL (childHH (childHH (childLL thetaAboveCell00002310))) + +/-- Subcell `000023100331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023100331 : AngleCell := + childLH (childHH (childHH (childLL thetaAboveCell00002310))) + +/-- Subcell `000023100332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023100332 : AngleCell := + childHL (childHH (childHH (childLL thetaAboveCell00002310))) + +/-- Subcell `000023100333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023100333 : AngleCell := + childHH (childHH (childHH (childLL thetaAboveCell00002310))) + +/-- Subcell `000023101220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023101220 : AngleCell := + childLL (childHL (childHL (childLH thetaAboveCell00002310))) + +/-- Subcell `000023101221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023101221 : AngleCell := + childLH (childHL (childHL (childLH thetaAboveCell00002310))) + +/-- Subcell `000023101222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023101222 : AngleCell := + childHL (childHL (childHL (childLH thetaAboveCell00002310))) + +/-- Subcell `000023101223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023101223 : AngleCell := + childHH (childHL (childHL (childLH thetaAboveCell00002310))) + +/-- Subcell `000023101230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023101230 : AngleCell := + childLL (childHH (childHL (childLH thetaAboveCell00002310))) + +/-- Subcell `000023101231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023101231 : AngleCell := + childLH (childHH (childHL (childLH thetaAboveCell00002310))) + +/-- Subcell `000023101232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023101232 : AngleCell := + childHL (childHH (childHL (childLH thetaAboveCell00002310))) + +/-- Subcell `000023101233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023101233 : AngleCell := + childHH (childHH (childHL (childLH thetaAboveCell00002310))) + +/-- Subcell `000023101320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023101320 : AngleCell := + childLL (childHL (childHH (childLH thetaAboveCell00002310))) + +/-- Subcell `000023101321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023101321 : AngleCell := + childLH (childHL (childHH (childLH thetaAboveCell00002310))) + +/-- Subcell `000023101322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023101322 : AngleCell := + childHL (childHL (childHH (childLH thetaAboveCell00002310))) + +/-- Subcell `000023101323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023101323 : AngleCell := + childHH (childHL (childHH (childLH thetaAboveCell00002310))) + +/-- Subcell `000023101330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023101330 : AngleCell := + childLL (childHH (childHH (childLH thetaAboveCell00002310))) + +/-- Subcell `000023101331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023101331 : AngleCell := + childLH (childHH (childHH (childLH thetaAboveCell00002310))) + +/-- Subcell `000023101332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023101332 : AngleCell := + childHL (childHH (childHH (childLH thetaAboveCell00002310))) + +/-- Subcell `000023101333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023101333 : AngleCell := + childHH (childHH (childHH (childLH thetaAboveCell00002310))) + +end GerverSofa.PartE.CertificateCells66bed457b5 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC5TerminalBatchT153600006`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells502d119e99 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells502d119e99 + +open CertificateCells502d119e99 +theorem e24KC2ThetaAboveLeaf001123133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00112313) = true := by + have h : ((childHH thetaAboveCell00112313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00112313) h +theorem e24KC2ThetaAboveLeaf00112320 : + adaptiveCoverCheck 11 thetaAboveCell00112320 = true := by + have h : (thetaAboveCell00112320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112320 h +theorem e24KC2ThetaAboveLeaf00112321 : + adaptiveCoverCheck 11 thetaAboveCell00112321 = true := by + have h : (thetaAboveCell00112321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112321 h +theorem e24KC2ThetaAboveLeaf00112322 : + adaptiveCoverCheck 11 thetaAboveCell00112322 = true := by + have h : (thetaAboveCell00112322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112322 h +theorem e24KC2ThetaAboveLeaf00112323 : + adaptiveCoverCheck 11 thetaAboveCell00112323 = true := by + have h : (thetaAboveCell00112323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112323 h +theorem e24KC2ThetaAboveLeaf00112330 : + adaptiveCoverCheck 11 thetaAboveCell00112330 = true := by + have h : (thetaAboveCell00112330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112330 h +theorem e24KC2ThetaAboveLeaf00112331 : + adaptiveCoverCheck 11 thetaAboveCell00112331 = true := by + have h : (thetaAboveCell00112331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112331 h +theorem e24KC2ThetaAboveLeaf00112332 : + adaptiveCoverCheck 11 thetaAboveCell00112332 = true := by + have h : (thetaAboveCell00112332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112332 h +theorem e24KC2ThetaAboveLeaf00112333 : + adaptiveCoverCheck 11 thetaAboveCell00112333 = true := by + have h : (thetaAboveCell00112333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00112333 h +theorem e24KC2ThetaAboveLeaf0011300 : + adaptiveCoverCheck 12 (childLL (childLL (childHH thetaAboveCell0011))) = true := by + have h : ((childLL (childLL (childHH thetaAboveCell0011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHH thetaAboveCell0011))) h +theorem e24KC2ThetaAboveLeaf0011301 : + adaptiveCoverCheck 12 (childLH (childLL (childHH thetaAboveCell0011))) = true := by + have h : ((childLH (childLL (childHH thetaAboveCell0011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHH thetaAboveCell0011))) h +theorem e24KC2ThetaAboveLeaf00113020 : + adaptiveCoverCheck 11 thetaAboveCell00113020 = true := by + have h : (thetaAboveCell00113020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113020 h +theorem e24KC2ThetaAboveLeaf00113021 : + adaptiveCoverCheck 11 thetaAboveCell00113021 = true := by + have h : (thetaAboveCell00113021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113021 h +theorem e24KC2ThetaAboveLeaf00113022 : + adaptiveCoverCheck 11 thetaAboveCell00113022 = true := by + have h : (thetaAboveCell00113022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113022 h +theorem e24KC2ThetaAboveLeaf00113023 : + adaptiveCoverCheck 11 thetaAboveCell00113023 = true := by + have h : (thetaAboveCell00113023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113023 h +theorem e24KC2ThetaAboveLeaf00113030 : + adaptiveCoverCheck 11 thetaAboveCell00113030 = true := by + have h : (thetaAboveCell00113030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113030 h +theorem e24KC2ThetaAboveLeaf00113031 : + adaptiveCoverCheck 11 thetaAboveCell00113031 = true := by + have h : (thetaAboveCell00113031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113031 h +theorem e24KC2ThetaAboveLeaf00113032 : + adaptiveCoverCheck 11 thetaAboveCell00113032 = true := by + have h : (thetaAboveCell00113032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113032 h +theorem e24KC2ThetaAboveLeaf00113033 : + adaptiveCoverCheck 11 thetaAboveCell00113033 = true := by + have h : (thetaAboveCell00113033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113033 h +theorem e24KC2ThetaAboveLeaf0011310 : + adaptiveCoverCheck 12 (childLL (childLH (childHH thetaAboveCell0011))) = true := by + have h : ((childLL (childLH (childHH thetaAboveCell0011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHH thetaAboveCell0011))) h +theorem e24KC2ThetaAboveLeaf0011311 : + adaptiveCoverCheck 12 (childLH (childLH (childHH thetaAboveCell0011))) = true := by + have h : ((childLH (childLH (childHH thetaAboveCell0011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHH thetaAboveCell0011))) h +theorem e24KC2ThetaAboveLeaf00113120 : + adaptiveCoverCheck 11 thetaAboveCell00113120 = true := by + have h : (thetaAboveCell00113120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113120 h +theorem e24KC2ThetaAboveLeaf00113121 : + adaptiveCoverCheck 11 thetaAboveCell00113121 = true := by + have h : (thetaAboveCell00113121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113121 h +theorem e24KC2ThetaAboveLeaf00113122 : + adaptiveCoverCheck 11 thetaAboveCell00113122 = true := by + have h : (thetaAboveCell00113122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113122 h +theorem e24KC2ThetaAboveLeaf00113123 : + adaptiveCoverCheck 11 thetaAboveCell00113123 = true := by + have h : (thetaAboveCell00113123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113123 h +theorem e24KC2ThetaAboveLeaf00113130 : + adaptiveCoverCheck 11 thetaAboveCell00113130 = true := by + have h : (thetaAboveCell00113130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113130 h +theorem e24KC2ThetaAboveLeaf00113131 : + adaptiveCoverCheck 11 thetaAboveCell00113131 = true := by + have h : (thetaAboveCell00113131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113131 h +theorem e24KC2ThetaAboveLeaf00113132 : + adaptiveCoverCheck 11 thetaAboveCell00113132 = true := by + have h : (thetaAboveCell00113132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113132 h +theorem e24KC2ThetaAboveLeaf00113133 : + adaptiveCoverCheck 11 thetaAboveCell00113133 = true := by + have h : (thetaAboveCell00113133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113133 h +theorem e24KC2ThetaAboveLeaf001132000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00113200) = true := by + have h : ((childLL thetaAboveCell00113200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00113200) h +theorem e24KC2ThetaAboveLeaf001132001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00113200) = true := by + have h : ((childLH thetaAboveCell00113200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00113200) h +theorem e24KC2ThetaAboveLeaf0011320020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00113200)) = true := by + have h : ((childLL (childHL thetaAboveCell00113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell00113200)) h +theorem e24KC2ThetaAboveLeaf0011320021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00113200)) = true := by + have h : ((childLH (childHL thetaAboveCell00113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell00113200)) h +theorem e24KC2ThetaAboveLeaf0011320030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00113200)) = true := by + have h : ((childLL (childHH thetaAboveCell00113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell00113200)) h +theorem e24KC2ThetaAboveLeaf0011320031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00113200)) = true := by + have h : ((childLH (childHH thetaAboveCell00113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell00113200)) h +theorem e24KC2ThetaAboveLeaf001132010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00113201) = true := by + have h : ((childLL thetaAboveCell00113201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00113201) h +theorem e24KC2ThetaAboveLeaf001132011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00113201) = true := by + have h : ((childLH thetaAboveCell00113201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00113201) h +theorem e24KC2ThetaAboveLeaf0011320120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00113201)) = true := by + have h : ((childLL (childHL thetaAboveCell00113201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell00113201)) h +theorem e24KC2ThetaAboveLeaf0011320121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00113201)) = true := by + have h : ((childLH (childHL thetaAboveCell00113201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell00113201)) h +theorem e24KC2ThetaAboveLeaf0011320130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00113201)) = true := by + have h : ((childLL (childHH thetaAboveCell00113201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell00113201)) h +theorem e24KC2ThetaAboveLeaf0011320131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00113201)) = true := by + have h : ((childLH (childHH thetaAboveCell00113201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell00113201)) h +theorem e24KC2ThetaAboveLeaf0011320202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00113202)) = true := by + have h : ((childHL (childLL thetaAboveCell00113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00113202)) h +theorem e24KC2ThetaAboveLeaf0011320203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00113202)) = true := by + have h : ((childHH (childLL thetaAboveCell00113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00113202)) h +theorem e24KC2ThetaAboveLeaf0011320212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00113202)) = true := by + have h : ((childHL (childLH thetaAboveCell00113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00113202)) h +theorem e24KC2ThetaAboveLeaf0011320213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00113202)) = true := by + have h : ((childHH (childLH thetaAboveCell00113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00113202)) h +theorem e24KC2ThetaAboveLeaf001132022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00113202) = true := by + have h : ((childHL thetaAboveCell00113202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00113202) h +theorem e24KC2ThetaAboveLeaf001132023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00113202) = true := by + have h : ((childHH thetaAboveCell00113202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00113202) h +theorem e24KC2ThetaAboveLeaf0011320302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00113203)) = true := by + have h : ((childHL (childLL thetaAboveCell00113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00113203)) h +theorem e24KC2ThetaAboveLeaf0011320303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00113203)) = true := by + have h : ((childHH (childLL thetaAboveCell00113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00113203)) h +theorem e24KC2ThetaAboveLeaf0011320312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00113203)) = true := by + have h : ((childHL (childLH thetaAboveCell00113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00113203)) h +theorem e24KC2ThetaAboveLeaf0011320313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00113203)) = true := by + have h : ((childHH (childLH thetaAboveCell00113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00113203)) h +theorem e24KC2ThetaAboveLeaf001132032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00113203) = true := by + have h : ((childHL thetaAboveCell00113203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00113203) h +theorem e24KC2ThetaAboveLeaf001132033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00113203) = true := by + have h : ((childHH thetaAboveCell00113203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00113203) h +theorem e24KC2ThetaAboveLeaf001132100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00113210) = true := by + have h : ((childLL thetaAboveCell00113210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00113210) h +theorem e24KC2ThetaAboveLeaf001132101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00113210) = true := by + have h : ((childLH thetaAboveCell00113210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00113210) h +theorem e24KC2ThetaAboveLeaf0011321020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00113210)) = true := by + have h : ((childLL (childHL thetaAboveCell00113210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell00113210)) h +theorem e24KC2ThetaAboveLeaf0011321021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00113210)) = true := by + have h : ((childLH (childHL thetaAboveCell00113210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell00113210)) h +theorem e24KC2ThetaAboveLeaf0011321030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00113210)) = true := by + have h : ((childLL (childHH thetaAboveCell00113210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell00113210)) h +theorem e24KC2ThetaAboveLeaf0011321031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00113210)) = true := by + have h : ((childLH (childHH thetaAboveCell00113210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell00113210)) h +theorem e24KC2ThetaAboveLeaf001132110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00113211) = true := by + have h : ((childLL thetaAboveCell00113211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00113211) h +theorem e24KC2ThetaAboveLeaf001132111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00113211) = true := by + have h : ((childLH thetaAboveCell00113211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00113211) h +theorem e24KC2ThetaAboveLeaf0011321120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00113211)) = true := by + have h : ((childLL (childHL thetaAboveCell00113211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell00113211)) h +theorem e24KC2ThetaAboveLeaf0011321121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00113211)) = true := by + have h : ((childLH (childHL thetaAboveCell00113211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell00113211)) h +theorem e24KC2ThetaAboveLeaf0011321130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00113211)) = true := by + have h : ((childLL (childHH thetaAboveCell00113211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell00113211)) h +theorem e24KC2ThetaAboveLeaf0011321131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00113211)) = true := by + have h : ((childLH (childHH thetaAboveCell00113211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell00113211)) h +theorem e24KC2ThetaAboveLeaf0011321202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00113212)) = true := by + have h : ((childHL (childLL thetaAboveCell00113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00113212)) h +theorem e24KC2ThetaAboveLeaf0011321203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00113212)) = true := by + have h : ((childHH (childLL thetaAboveCell00113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00113212)) h +theorem e24KC2ThetaAboveLeaf0011321212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00113212)) = true := by + have h : ((childHL (childLH thetaAboveCell00113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00113212)) h +theorem e24KC2ThetaAboveLeaf0011321213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00113212)) = true := by + have h : ((childHH (childLH thetaAboveCell00113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00113212)) h +theorem e24KC2ThetaAboveLeaf001132122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00113212) = true := by + have h : ((childHL thetaAboveCell00113212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00113212) h +theorem e24KC2ThetaAboveLeaf001132123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00113212) = true := by + have h : ((childHH thetaAboveCell00113212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00113212) h +theorem e24KC2ThetaAboveLeaf0011321302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00113213)) = true := by + have h : ((childHL (childLL thetaAboveCell00113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00113213)) h +theorem e24KC2ThetaAboveLeaf0011321303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00113213)) = true := by + have h : ((childHH (childLL thetaAboveCell00113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00113213)) h +theorem e24KC2ThetaAboveLeaf0011321312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00113213)) = true := by + have h : ((childHL (childLH thetaAboveCell00113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00113213)) h +theorem e24KC2ThetaAboveLeaf0011321313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00113213)) = true := by + have h : ((childHH (childLH thetaAboveCell00113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00113213)) h +theorem e24KC2ThetaAboveLeaf001132132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00113213) = true := by + have h : ((childHL thetaAboveCell00113213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00113213) h +theorem e24KC2ThetaAboveLeaf001132133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00113213) = true := by + have h : ((childHH thetaAboveCell00113213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00113213) h +theorem e24KC2ThetaAboveLeaf00113220 : + adaptiveCoverCheck 11 thetaAboveCell00113220 = true := by + have h : (thetaAboveCell00113220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113220 h +theorem e24KC2ThetaAboveLeaf00113221 : + adaptiveCoverCheck 11 thetaAboveCell00113221 = true := by + have h : (thetaAboveCell00113221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113221 h +theorem e24KC2ThetaAboveLeaf00113222 : + adaptiveCoverCheck 11 thetaAboveCell00113222 = true := by + have h : (thetaAboveCell00113222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113222 h +theorem e24KC2ThetaAboveLeaf00113223 : + adaptiveCoverCheck 11 thetaAboveCell00113223 = true := by + have h : (thetaAboveCell00113223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113223 h +theorem e24KC2ThetaAboveLeaf00113230 : + adaptiveCoverCheck 11 thetaAboveCell00113230 = true := by + have h : (thetaAboveCell00113230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113230 h +theorem e24KC2ThetaAboveLeaf00113231 : + adaptiveCoverCheck 11 thetaAboveCell00113231 = true := by + have h : (thetaAboveCell00113231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113231 h +theorem e24KC2ThetaAboveLeaf00113232 : + adaptiveCoverCheck 11 thetaAboveCell00113232 = true := by + have h : (thetaAboveCell00113232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113232 h +theorem e24KC2ThetaAboveLeaf00113233 : + adaptiveCoverCheck 11 thetaAboveCell00113233 = true := by + have h : (thetaAboveCell00113233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113233 h +theorem e24KC2ThetaAboveLeaf001133000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00113300) = true := by + have h : ((childLL thetaAboveCell00113300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00113300) h +theorem e24KC2ThetaAboveLeaf001133001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00113300) = true := by + have h : ((childLH thetaAboveCell00113300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00113300) h +theorem e24KC2ThetaAboveLeaf0011330020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00113300)) = true := by + have h : ((childLL (childHL thetaAboveCell00113300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell00113300)) h +theorem e24KC2ThetaAboveLeaf0011330021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00113300)) = true := by + have h : ((childLH (childHL thetaAboveCell00113300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell00113300)) h +theorem e24KC2ThetaAboveLeaf0011330030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00113300)) = true := by + have h : ((childLL (childHH thetaAboveCell00113300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell00113300)) h +theorem e24KC2ThetaAboveLeaf0011330031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00113300)) = true := by + have h : ((childLH (childHH thetaAboveCell00113300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell00113300)) h +theorem e24KC2ThetaAboveLeaf001133010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00113301) = true := by + have h : ((childLL thetaAboveCell00113301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00113301) h +theorem e24KC2ThetaAboveLeaf001133011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00113301) = true := by + have h : ((childLH thetaAboveCell00113301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00113301) h +theorem e24KC2ThetaAboveLeaf0011330120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00113301)) = true := by + have h : ((childLL (childHL thetaAboveCell00113301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell00113301)) h +theorem e24KC2ThetaAboveLeaf0011330121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00113301)) = true := by + have h : ((childLH (childHL thetaAboveCell00113301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell00113301)) h +theorem e24KC2ThetaAboveLeaf0011330130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00113301)) = true := by + have h : ((childLL (childHH thetaAboveCell00113301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell00113301)) h +theorem e24KC2ThetaAboveLeaf0011330131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00113301)) = true := by + have h : ((childLH (childHH thetaAboveCell00113301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell00113301)) h +theorem e24KC2ThetaAboveLeaf0011330202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00113302)) = true := by + have h : ((childHL (childLL thetaAboveCell00113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00113302)) h +theorem e24KC2ThetaAboveLeaf0011330203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00113302)) = true := by + have h : ((childHH (childLL thetaAboveCell00113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00113302)) h +theorem e24KC2ThetaAboveLeaf0011330212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00113302)) = true := by + have h : ((childHL (childLH thetaAboveCell00113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00113302)) h +theorem e24KC2ThetaAboveLeaf0011330213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00113302)) = true := by + have h : ((childHH (childLH thetaAboveCell00113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00113302)) h +theorem e24KC2ThetaAboveLeaf001133022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00113302) = true := by + have h : ((childHL thetaAboveCell00113302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00113302) h +theorem e24KC2ThetaAboveLeaf001133023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00113302) = true := by + have h : ((childHH thetaAboveCell00113302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00113302) h +theorem e24KC2ThetaAboveLeaf0011330302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00113303)) = true := by + have h : ((childHL (childLL thetaAboveCell00113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00113303)) h +theorem e24KC2ThetaAboveLeaf0011330303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00113303)) = true := by + have h : ((childHH (childLL thetaAboveCell00113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00113303)) h +theorem e24KC2ThetaAboveLeaf0011330312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00113303)) = true := by + have h : ((childHL (childLH thetaAboveCell00113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00113303)) h +theorem e24KC2ThetaAboveLeaf0011330313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00113303)) = true := by + have h : ((childHH (childLH thetaAboveCell00113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00113303)) h +theorem e24KC2ThetaAboveLeaf001133032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00113303) = true := by + have h : ((childHL thetaAboveCell00113303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00113303) h +theorem e24KC2ThetaAboveLeaf001133033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00113303) = true := by + have h : ((childHH thetaAboveCell00113303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00113303) h +theorem e24KC2ThetaAboveLeaf001133100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00113310) = true := by + have h : ((childLL thetaAboveCell00113310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00113310) h +theorem e24KC2ThetaAboveLeaf001133101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00113310) = true := by + have h : ((childLH thetaAboveCell00113310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00113310) h +theorem e24KC2ThetaAboveLeaf0011331020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00113310)) = true := by + have h : ((childLL (childHL thetaAboveCell00113310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell00113310)) h +theorem e24KC2ThetaAboveLeaf0011331021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00113310)) = true := by + have h : ((childLH (childHL thetaAboveCell00113310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell00113310)) h +theorem e24KC2ThetaAboveLeaf0011331030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00113310)) = true := by + have h : ((childLL (childHH thetaAboveCell00113310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell00113310)) h +theorem e24KC2ThetaAboveLeaf0011331031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00113310)) = true := by + have h : ((childLH (childHH thetaAboveCell00113310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell00113310)) h +theorem e24KC2ThetaAboveLeaf001133110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00113311) = true := by + have h : ((childLL thetaAboveCell00113311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00113311) h +theorem e24KC2ThetaAboveLeaf001133111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00113311) = true := by + have h : ((childLH thetaAboveCell00113311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00113311) h +theorem e24KC2ThetaAboveLeaf0011331120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00113311)) = true := by + have h : ((childLL (childHL thetaAboveCell00113311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell00113311)) h +theorem e24KC2ThetaAboveLeaf0011331121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00113311)) = true := by + have h : ((childLH (childHL thetaAboveCell00113311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell00113311)) h +theorem e24KC2ThetaAboveLeaf0011331130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00113311)) = true := by + have h : ((childLL (childHH thetaAboveCell00113311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell00113311)) h +theorem e24KC2ThetaAboveLeaf0011331131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00113311)) = true := by + have h : ((childLH (childHH thetaAboveCell00113311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell00113311)) h +theorem e24KC2ThetaAboveLeaf0011331202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00113312)) = true := by + have h : ((childHL (childLL thetaAboveCell00113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00113312)) h +theorem e24KC2ThetaAboveLeaf0011331203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00113312)) = true := by + have h : ((childHH (childLL thetaAboveCell00113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00113312)) h +theorem e24KC2ThetaAboveLeaf0011331212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00113312)) = true := by + have h : ((childHL (childLH thetaAboveCell00113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00113312)) h +theorem e24KC2ThetaAboveLeaf0011331213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00113312)) = true := by + have h : ((childHH (childLH thetaAboveCell00113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00113312)) h +theorem e24KC2ThetaAboveLeaf001133122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00113312) = true := by + have h : ((childHL thetaAboveCell00113312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00113312) h +theorem e24KC2ThetaAboveLeaf001133123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00113312) = true := by + have h : ((childHH thetaAboveCell00113312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00113312) h +theorem e24KC2ThetaAboveLeaf0011331302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00113313)) = true := by + have h : ((childHL (childLL thetaAboveCell00113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00113313)) h +theorem e24KC2ThetaAboveLeaf0011331303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00113313)) = true := by + have h : ((childHH (childLL thetaAboveCell00113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00113313)) h +theorem e24KC2ThetaAboveLeaf0011331312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00113313)) = true := by + have h : ((childHL (childLH thetaAboveCell00113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00113313)) h +theorem e24KC2ThetaAboveLeaf0011331313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00113313)) = true := by + have h : ((childHH (childLH thetaAboveCell00113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00113313)) h +theorem e24KC2ThetaAboveLeaf001133132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00113313) = true := by + have h : ((childHL thetaAboveCell00113313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00113313) h +theorem e24KC2ThetaAboveLeaf001133133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00113313) = true := by + have h : ((childHH thetaAboveCell00113313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00113313) h +theorem e24KC2ThetaAboveLeaf00113320 : + adaptiveCoverCheck 11 thetaAboveCell00113320 = true := by + have h : (thetaAboveCell00113320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113320 h +theorem e24KC2ThetaAboveLeaf00113321 : + adaptiveCoverCheck 11 thetaAboveCell00113321 = true := by + have h : (thetaAboveCell00113321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113321 h +theorem e24KC2ThetaAboveLeaf00113322 : + adaptiveCoverCheck 11 thetaAboveCell00113322 = true := by + have h : (thetaAboveCell00113322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113322 h +theorem e24KC2ThetaAboveLeaf00113323 : + adaptiveCoverCheck 11 thetaAboveCell00113323 = true := by + have h : (thetaAboveCell00113323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113323 h +theorem e24KC2ThetaAboveLeaf00113330 : + adaptiveCoverCheck 11 thetaAboveCell00113330 = true := by + have h : (thetaAboveCell00113330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113330 h +theorem e24KC2ThetaAboveLeaf00113331 : + adaptiveCoverCheck 11 thetaAboveCell00113331 = true := by + have h : (thetaAboveCell00113331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113331 h +theorem e24KC2ThetaAboveLeaf00113332 : + adaptiveCoverCheck 11 thetaAboveCell00113332 = true := by + have h : (thetaAboveCell00113332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113332 h +theorem e24KC2ThetaAboveLeaf00113333 : + adaptiveCoverCheck 11 thetaAboveCell00113333 = true := by + have h : (thetaAboveCell00113333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00113333 h +theorem e24KC2ThetaAboveLeaf0012000 : + adaptiveCoverCheck 12 (childLL (childLL (childLL thetaAboveCell0012))) = true := by + have h : ((childLL (childLL (childLL thetaAboveCell0012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLL thetaAboveCell0012))) h +theorem e24KC2ThetaAboveLeaf0012001 : + adaptiveCoverCheck 12 (childLH (childLL (childLL thetaAboveCell0012))) = true := by + have h : ((childLH (childLL (childLL thetaAboveCell0012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLL thetaAboveCell0012))) h +theorem e24KC2ThetaAboveLeaf0012002 : + adaptiveCoverCheck 12 (childHL (childLL (childLL thetaAboveCell0012))) = true := by + have h : ((childHL (childLL (childLL thetaAboveCell0012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLL thetaAboveCell0012))) h +theorem e24KC2ThetaAboveLeaf0012003 : + adaptiveCoverCheck 12 (childHH (childLL (childLL thetaAboveCell0012))) = true := by + have h : ((childHH (childLL (childLL thetaAboveCell0012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLL thetaAboveCell0012))) h +theorem e24KC2ThetaAboveLeaf0012010 : + adaptiveCoverCheck 12 (childLL (childLH (childLL thetaAboveCell0012))) = true := by + have h : ((childLL (childLH (childLL thetaAboveCell0012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLL thetaAboveCell0012))) h +theorem e24KC2ThetaAboveLeaf0012011 : + adaptiveCoverCheck 12 (childLH (childLH (childLL thetaAboveCell0012))) = true := by + have h : ((childLH (childLH (childLL thetaAboveCell0012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLL thetaAboveCell0012))) h +theorem e24KC2ThetaAboveLeaf0012012 : + adaptiveCoverCheck 12 (childHL (childLH (childLL thetaAboveCell0012))) = true := by + have h : ((childHL (childLH (childLL thetaAboveCell0012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLL thetaAboveCell0012))) h +theorem e24KC2ThetaAboveLeaf0012013 : + adaptiveCoverCheck 12 (childHH (childLH (childLL thetaAboveCell0012))) = true := by + have h : ((childHH (childLH (childLL thetaAboveCell0012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLL thetaAboveCell0012))) h +theorem e24KC2ThetaAboveLeaf001202 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell0012)) = true := by + have h : ((childHL (childLL thetaAboveCell0012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell0012)) h +theorem e24KC2ThetaAboveLeaf001203 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell0012)) = true := by + have h : ((childHH (childLL thetaAboveCell0012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell0012)) h +theorem e24KC2ThetaAboveLeaf0012100 : + adaptiveCoverCheck 12 (childLL (childLL (childLH thetaAboveCell0012))) = true := by + have h : ((childLL (childLL (childLH thetaAboveCell0012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLH thetaAboveCell0012))) h +theorem e24KC2ThetaAboveLeaf0012101 : + adaptiveCoverCheck 12 (childLH (childLL (childLH thetaAboveCell0012))) = true := by + have h : ((childLH (childLL (childLH thetaAboveCell0012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLH thetaAboveCell0012))) h +theorem e24KC2ThetaAboveLeaf0012102 : + adaptiveCoverCheck 12 (childHL (childLL (childLH thetaAboveCell0012))) = true := by + have h : ((childHL (childLL (childLH thetaAboveCell0012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLH thetaAboveCell0012))) h +theorem e24KC2ThetaAboveLeaf0012103 : + adaptiveCoverCheck 12 (childHH (childLL (childLH thetaAboveCell0012))) = true := by + have h : ((childHH (childLL (childLH thetaAboveCell0012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLH thetaAboveCell0012))) h +theorem e24KC2ThetaAboveLeaf0012110 : + adaptiveCoverCheck 12 (childLL (childLH (childLH thetaAboveCell0012))) = true := by + have h : ((childLL (childLH (childLH thetaAboveCell0012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLH thetaAboveCell0012))) h +theorem e24KC2ThetaAboveLeaf0012111 : + adaptiveCoverCheck 12 (childLH (childLH (childLH thetaAboveCell0012))) = true := by + have h : ((childLH (childLH (childLH thetaAboveCell0012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLH thetaAboveCell0012))) h +theorem e24KC2ThetaAboveLeaf0012112 : + adaptiveCoverCheck 12 (childHL (childLH (childLH thetaAboveCell0012))) = true := by + have h : ((childHL (childLH (childLH thetaAboveCell0012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLH thetaAboveCell0012))) h +theorem e24KC2ThetaAboveLeaf0012113 : + adaptiveCoverCheck 12 (childHH (childLH (childLH thetaAboveCell0012))) = true := by + have h : ((childHH (childLH (childLH thetaAboveCell0012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLH thetaAboveCell0012))) h +theorem e24KC2ThetaAboveLeaf001212 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell0012)) = true := by + have h : ((childHL (childLH thetaAboveCell0012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell0012)) h +theorem e24KC2ThetaAboveLeaf001213 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell0012)) = true := by + have h : ((childHH (childLH thetaAboveCell0012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell0012)) h +theorem e24KC2ThetaAboveLeaf00122 : + adaptiveCoverCheck 14 (childHL thetaAboveCell0012) = true := by + have h : ((childHL thetaAboveCell0012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHL thetaAboveCell0012) h +theorem e24KC2ThetaAboveLeaf00123 : + adaptiveCoverCheck 14 (childHH thetaAboveCell0012) = true := by + have h : ((childHH thetaAboveCell0012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHH thetaAboveCell0012) h +theorem e24KC2ThetaAboveLeaf0013000 : + adaptiveCoverCheck 12 (childLL (childLL (childLL thetaAboveCell0013))) = true := by + have h : ((childLL (childLL (childLL thetaAboveCell0013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLL thetaAboveCell0013))) h +theorem e24KC2ThetaAboveLeaf0013001 : + adaptiveCoverCheck 12 (childLH (childLL (childLL thetaAboveCell0013))) = true := by + have h : ((childLH (childLL (childLL thetaAboveCell0013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLL thetaAboveCell0013))) h +theorem e24KC2ThetaAboveLeaf0013002 : + adaptiveCoverCheck 12 (childHL (childLL (childLL thetaAboveCell0013))) = true := by + have h : ((childHL (childLL (childLL thetaAboveCell0013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLL thetaAboveCell0013))) h +theorem e24KC2ThetaAboveLeaf0013003 : + adaptiveCoverCheck 12 (childHH (childLL (childLL thetaAboveCell0013))) = true := by + have h : ((childHH (childLL (childLL thetaAboveCell0013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLL thetaAboveCell0013))) h +theorem e24KC2ThetaAboveLeaf0013010 : + adaptiveCoverCheck 12 (childLL (childLH (childLL thetaAboveCell0013))) = true := by + have h : ((childLL (childLH (childLL thetaAboveCell0013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLL thetaAboveCell0013))) h +theorem e24KC2ThetaAboveLeaf0013011 : + adaptiveCoverCheck 12 (childLH (childLH (childLL thetaAboveCell0013))) = true := by + have h : ((childLH (childLH (childLL thetaAboveCell0013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLL thetaAboveCell0013))) h +theorem e24KC2ThetaAboveLeaf0013012 : + adaptiveCoverCheck 12 (childHL (childLH (childLL thetaAboveCell0013))) = true := by + have h : ((childHL (childLH (childLL thetaAboveCell0013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLL thetaAboveCell0013))) h +theorem e24KC2ThetaAboveLeaf0013013 : + adaptiveCoverCheck 12 (childHH (childLH (childLL thetaAboveCell0013))) = true := by + have h : ((childHH (childLH (childLL thetaAboveCell0013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLL thetaAboveCell0013))) h +theorem e24KC2ThetaAboveLeaf001302 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell0013)) = true := by + have h : ((childHL (childLL thetaAboveCell0013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell0013)) h +theorem e24KC2ThetaAboveLeaf001303 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell0013)) = true := by + have h : ((childHH (childLL thetaAboveCell0013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell0013)) h +theorem e24KC2ThetaAboveLeaf0013100 : + adaptiveCoverCheck 12 (childLL (childLL (childLH thetaAboveCell0013))) = true := by + have h : ((childLL (childLL (childLH thetaAboveCell0013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLH thetaAboveCell0013))) h +theorem e24KC2ThetaAboveLeaf0013101 : + adaptiveCoverCheck 12 (childLH (childLL (childLH thetaAboveCell0013))) = true := by + have h : ((childLH (childLL (childLH thetaAboveCell0013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLH thetaAboveCell0013))) h +theorem e24KC2ThetaAboveLeaf0013102 : + adaptiveCoverCheck 12 (childHL (childLL (childLH thetaAboveCell0013))) = true := by + have h : ((childHL (childLL (childLH thetaAboveCell0013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLH thetaAboveCell0013))) h +theorem e24KC2ThetaAboveLeaf0013103 : + adaptiveCoverCheck 12 (childHH (childLL (childLH thetaAboveCell0013))) = true := by + have h : ((childHH (childLL (childLH thetaAboveCell0013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLH thetaAboveCell0013))) h +theorem e24KC2ThetaAboveLeaf0013110 : + adaptiveCoverCheck 12 (childLL (childLH (childLH thetaAboveCell0013))) = true := by + have h : ((childLL (childLH (childLH thetaAboveCell0013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLH thetaAboveCell0013))) h +theorem e24KC2ThetaAboveLeaf0013111 : + adaptiveCoverCheck 12 (childLH (childLH (childLH thetaAboveCell0013))) = true := by + have h : ((childLH (childLH (childLH thetaAboveCell0013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLH thetaAboveCell0013))) h +theorem e24KC2ThetaAboveLeaf0013112 : + adaptiveCoverCheck 12 (childHL (childLH (childLH thetaAboveCell0013))) = true := by + have h : ((childHL (childLH (childLH thetaAboveCell0013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLH thetaAboveCell0013))) h +theorem e24KC2ThetaAboveLeaf0013113 : + adaptiveCoverCheck 12 (childHH (childLH (childLH thetaAboveCell0013))) = true := by + have h : ((childHH (childLH (childLH thetaAboveCell0013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLH thetaAboveCell0013))) h +theorem e24KC2ThetaAboveLeaf001312 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell0013)) = true := by + have h : ((childHL (childLH thetaAboveCell0013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell0013)) h +theorem e24KC2ThetaAboveLeaf001313 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell0013)) = true := by + have h : ((childHH (childLH thetaAboveCell0013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell0013)) h +theorem e24KC2ThetaAboveLeaf00132 : + adaptiveCoverCheck 14 (childHL thetaAboveCell0013) = true := by + have h : ((childHL thetaAboveCell0013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHL thetaAboveCell0013) h +theorem e24KC2ThetaAboveLeaf00133 : + adaptiveCoverCheck 14 (childHH thetaAboveCell0013) = true := by + have h : ((childHH thetaAboveCell0013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHH thetaAboveCell0013) h +theorem e24KC2ThetaAboveLeaf0020 : + adaptiveCoverCheck 15 thetaAboveCell0020 = true := by + have h : (thetaAboveCell0020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell0020 h +theorem e24KC2ThetaAboveLeaf0021 : + adaptiveCoverCheck 15 thetaAboveCell0021 = true := by + have h : (thetaAboveCell0021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell0021 h +theorem e24KC2ThetaAboveLeaf0022 : + adaptiveCoverCheck 15 thetaAboveCell0022 = true := by + have h : (thetaAboveCell0022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell0022 h +theorem e24KC2ThetaAboveLeaf0023 : + adaptiveCoverCheck 15 thetaAboveCell0023 = true := by + have h : (thetaAboveCell0023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell0023 h +theorem e24KC2ThetaAboveLeaf0030 : + adaptiveCoverCheck 15 thetaAboveCell0030 = true := by + have h : (thetaAboveCell0030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell0030 h +theorem e24KC2ThetaAboveLeaf0031 : + adaptiveCoverCheck 15 thetaAboveCell0031 = true := by + have h : (thetaAboveCell0031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell0031 h +theorem e24KC2ThetaAboveLeaf0032 : + adaptiveCoverCheck 15 thetaAboveCell0032 = true := by + have h : (thetaAboveCell0032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell0032 h +theorem e24KC2ThetaAboveLeaf0033 : + adaptiveCoverCheck 15 thetaAboveCell0033 = true := by + have h : (thetaAboveCell0033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell0033 h +theorem e24KC2ThetaAboveLeaf010000 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell0100)) = true := by + have h : ((childLL (childLL thetaAboveCell0100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLL thetaAboveCell0100)) h +theorem e24KC2ThetaAboveLeaf010001 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell0100)) = true := by + have h : ((childLH (childLL thetaAboveCell0100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLL thetaAboveCell0100)) h +theorem e24KC2ThetaAboveLeaf010002 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell0100)) = true := by + have h : ((childHL (childLL thetaAboveCell0100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell0100)) h +theorem e24KC2ThetaAboveLeaf010003 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell0100)) = true := by + have h : ((childHH (childLL thetaAboveCell0100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell0100)) h +theorem e24KC2ThetaAboveLeaf010010 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell0100)) = true := by + have h : ((childLL (childLH thetaAboveCell0100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLH thetaAboveCell0100)) h +theorem e24KC2ThetaAboveLeaf010011 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell0100)) = true := by + have h : ((childLH (childLH thetaAboveCell0100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLH thetaAboveCell0100)) h +theorem e24KC2ThetaAboveLeaf010012 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell0100)) = true := by + have h : ((childHL (childLH thetaAboveCell0100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell0100)) h +theorem e24KC2ThetaAboveLeaf010013 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell0100)) = true := by + have h : ((childHH (childLH thetaAboveCell0100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell0100)) h +theorem e24KC2ThetaAboveLeaf0100200 : + adaptiveCoverCheck 12 (childLL (childLL (childHL thetaAboveCell0100))) = true := by + have h : ((childLL (childLL (childHL thetaAboveCell0100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHL thetaAboveCell0100))) h +theorem e24KC2ThetaAboveLeaf0100201 : + adaptiveCoverCheck 12 (childLH (childLL (childHL thetaAboveCell0100))) = true := by + have h : ((childLH (childLL (childHL thetaAboveCell0100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHL thetaAboveCell0100))) h +theorem e24KC2ThetaAboveLeaf01002020 : + adaptiveCoverCheck 11 thetaAboveCell01002020 = true := by + have h : (thetaAboveCell01002020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002020 h +theorem e24KC2ThetaAboveLeaf01002021 : + adaptiveCoverCheck 11 thetaAboveCell01002021 = true := by + have h : (thetaAboveCell01002021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002021 h +theorem e24KC2ThetaAboveLeaf01002022 : + adaptiveCoverCheck 11 thetaAboveCell01002022 = true := by + have h : (thetaAboveCell01002022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002022 h +theorem e24KC2ThetaAboveLeaf01002023 : + adaptiveCoverCheck 11 thetaAboveCell01002023 = true := by + have h : (thetaAboveCell01002023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002023 h +theorem e24KC2ThetaAboveLeaf01002030 : + adaptiveCoverCheck 11 thetaAboveCell01002030 = true := by + have h : (thetaAboveCell01002030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002030 h +theorem e24KC2ThetaAboveLeaf01002031 : + adaptiveCoverCheck 11 thetaAboveCell01002031 = true := by + have h : (thetaAboveCell01002031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002031 h +theorem e24KC2ThetaAboveLeaf01002032 : + adaptiveCoverCheck 11 thetaAboveCell01002032 = true := by + have h : (thetaAboveCell01002032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002032 h +theorem e24KC2ThetaAboveLeaf01002033 : + adaptiveCoverCheck 11 thetaAboveCell01002033 = true := by + have h : (thetaAboveCell01002033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002033 h +theorem e24KC2ThetaAboveLeaf0100210 : + adaptiveCoverCheck 12 (childLL (childLH (childHL thetaAboveCell0100))) = true := by + have h : ((childLL (childLH (childHL thetaAboveCell0100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHL thetaAboveCell0100))) h +theorem e24KC2ThetaAboveLeaf0100211 : + adaptiveCoverCheck 12 (childLH (childLH (childHL thetaAboveCell0100))) = true := by + have h : ((childLH (childLH (childHL thetaAboveCell0100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHL thetaAboveCell0100))) h +theorem e24KC2ThetaAboveLeaf01002120 : + adaptiveCoverCheck 11 thetaAboveCell01002120 = true := by + have h : (thetaAboveCell01002120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002120 h +theorem e24KC2ThetaAboveLeaf01002121 : + adaptiveCoverCheck 11 thetaAboveCell01002121 = true := by + have h : (thetaAboveCell01002121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002121 h +theorem e24KC2ThetaAboveLeaf01002122 : + adaptiveCoverCheck 11 thetaAboveCell01002122 = true := by + have h : (thetaAboveCell01002122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002122 h +theorem e24KC2ThetaAboveLeaf01002123 : + adaptiveCoverCheck 11 thetaAboveCell01002123 = true := by + have h : (thetaAboveCell01002123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002123 h +theorem e24KC2ThetaAboveLeaf01002130 : + adaptiveCoverCheck 11 thetaAboveCell01002130 = true := by + have h : (thetaAboveCell01002130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002130 h +theorem e24KC2ThetaAboveLeaf01002131 : + adaptiveCoverCheck 11 thetaAboveCell01002131 = true := by + have h : (thetaAboveCell01002131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002131 h +theorem e24KC2ThetaAboveLeaf01002132 : + adaptiveCoverCheck 11 thetaAboveCell01002132 = true := by + have h : (thetaAboveCell01002132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002132 h +theorem e24KC2ThetaAboveLeaf01002133 : + adaptiveCoverCheck 11 thetaAboveCell01002133 = true := by + have h : (thetaAboveCell01002133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002133 h +theorem e24KC2ThetaAboveLeaf010022000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01002200) = true := by + have h : ((childLL thetaAboveCell01002200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01002200) h +theorem e24KC2ThetaAboveLeaf010022001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01002200) = true := by + have h : ((childLH thetaAboveCell01002200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01002200) h +theorem e24KC2ThetaAboveLeaf0100220020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01002200)) = true := by + have h : ((childLL (childHL thetaAboveCell01002200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01002200)) h +theorem e24KC2ThetaAboveLeaf0100220021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01002200)) = true := by + have h : ((childLH (childHL thetaAboveCell01002200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01002200)) h +theorem e24KC2ThetaAboveLeaf0100220030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01002200)) = true := by + have h : ((childLL (childHH thetaAboveCell01002200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01002200)) h +theorem e24KC2ThetaAboveLeaf0100220031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01002200)) = true := by + have h : ((childLH (childHH thetaAboveCell01002200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01002200)) h +theorem e24KC2ThetaAboveLeaf010022010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01002201) = true := by + have h : ((childLL thetaAboveCell01002201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01002201) h +theorem e24KC2ThetaAboveLeaf010022011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01002201) = true := by + have h : ((childLH thetaAboveCell01002201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01002201) h +theorem e24KC2ThetaAboveLeaf0100220120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01002201)) = true := by + have h : ((childLL (childHL thetaAboveCell01002201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01002201)) h +theorem e24KC2ThetaAboveLeaf0100220121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01002201)) = true := by + have h : ((childLH (childHL thetaAboveCell01002201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01002201)) h +theorem e24KC2ThetaAboveLeaf0100220130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01002201)) = true := by + have h : ((childLL (childHH thetaAboveCell01002201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01002201)) h +theorem e24KC2ThetaAboveLeaf0100220131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01002201)) = true := by + have h : ((childLH (childHH thetaAboveCell01002201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01002201)) h +theorem e24KC2ThetaAboveLeaf0100220202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01002202)) = true := by + have h : ((childHL (childLL thetaAboveCell01002202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01002202)) h +theorem e24KC2ThetaAboveLeaf0100220203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01002202)) = true := by + have h : ((childHH (childLL thetaAboveCell01002202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01002202)) h +theorem e24KC2ThetaAboveLeaf010022022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01002202) = true := by + have h : ((childHL thetaAboveCell01002202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01002202) h +theorem e24KC2ThetaAboveLeaf010022023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01002202) = true := by + have h : ((childHH thetaAboveCell01002202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01002202) h +theorem e24KC2ThetaAboveLeaf010022032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01002203) = true := by + have h : ((childHL thetaAboveCell01002203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01002203) h +theorem e24KC2ThetaAboveLeaf010022033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01002203) = true := by + have h : ((childHH thetaAboveCell01002203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01002203) h +theorem e24KC2ThetaAboveLeaf010022100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01002210) = true := by + have h : ((childLL thetaAboveCell01002210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01002210) h +theorem e24KC2ThetaAboveLeaf010022101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01002210) = true := by + have h : ((childLH thetaAboveCell01002210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01002210) h +theorem e24KC2ThetaAboveLeaf0100221020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01002210)) = true := by + have h : ((childLL (childHL thetaAboveCell01002210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01002210)) h +theorem e24KC2ThetaAboveLeaf0100221021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01002210)) = true := by + have h : ((childLH (childHL thetaAboveCell01002210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01002210)) h +theorem e24KC2ThetaAboveLeaf0100221030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01002210)) = true := by + have h : ((childLL (childHH thetaAboveCell01002210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01002210)) h +theorem e24KC2ThetaAboveLeaf0100221031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01002210)) = true := by + have h : ((childLH (childHH thetaAboveCell01002210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01002210)) h +theorem e24KC2ThetaAboveLeaf010022110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01002211) = true := by + have h : ((childLL thetaAboveCell01002211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01002211) h +theorem e24KC2ThetaAboveLeaf010022111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01002211) = true := by + have h : ((childLH thetaAboveCell01002211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01002211) h +theorem e24KC2ThetaAboveLeaf0100221120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01002211)) = true := by + have h : ((childLL (childHL thetaAboveCell01002211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01002211)) h +theorem e24KC2ThetaAboveLeaf0100221121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01002211)) = true := by + have h : ((childLH (childHL thetaAboveCell01002211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01002211)) h +theorem e24KC2ThetaAboveLeaf0100221130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01002211)) = true := by + have h : ((childLL (childHH thetaAboveCell01002211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01002211)) h +theorem e24KC2ThetaAboveLeaf0100221131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01002211)) = true := by + have h : ((childLH (childHH thetaAboveCell01002211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01002211)) h +theorem e24KC2ThetaAboveLeaf0100221203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01002212)) = true := by + have h : ((childHH (childLL thetaAboveCell01002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01002212)) h +theorem e24KC2ThetaAboveLeaf0100221212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01002212)) = true := by + have h : ((childHL (childLH thetaAboveCell01002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01002212)) h +theorem e24KC2ThetaAboveLeaf0100221213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01002212)) = true := by + have h : ((childHH (childLH thetaAboveCell01002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01002212)) h +theorem e24KC2ThetaAboveLeaf010022122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01002212) = true := by + have h : ((childHL thetaAboveCell01002212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01002212) h +theorem e24KC2ThetaAboveLeaf010022123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01002212) = true := by + have h : ((childHH thetaAboveCell01002212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01002212) h +theorem e24KC2ThetaAboveLeaf0100221302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01002213)) = true := by + have h : ((childHL (childLL thetaAboveCell01002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01002213)) h +theorem e24KC2ThetaAboveLeaf0100221303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01002213)) = true := by + have h : ((childHH (childLL thetaAboveCell01002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01002213)) h +theorem e24KC2ThetaAboveLeaf0100221312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01002213)) = true := by + have h : ((childHL (childLH thetaAboveCell01002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01002213)) h +theorem e24KC2ThetaAboveLeaf0100221313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01002213)) = true := by + have h : ((childHH (childLH thetaAboveCell01002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01002213)) h +theorem e24KC2ThetaAboveLeaf010022132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01002213) = true := by + have h : ((childHL thetaAboveCell01002213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01002213) h +theorem e24KC2ThetaAboveLeaf010022133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01002213) = true := by + have h : ((childHH thetaAboveCell01002213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01002213) h +theorem e24KC2ThetaAboveLeaf01002220 : + adaptiveCoverCheck 11 thetaAboveCell01002220 = true := by + have h : (thetaAboveCell01002220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002220 h +theorem e24KC2ThetaAboveLeaf01002221 : + adaptiveCoverCheck 11 thetaAboveCell01002221 = true := by + have h : (thetaAboveCell01002221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002221 h +theorem e24KC2ThetaAboveLeaf01002222 : + adaptiveCoverCheck 11 thetaAboveCell01002222 = true := by + have h : (thetaAboveCell01002222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002222 h +theorem e24KC2ThetaAboveLeaf01002223 : + adaptiveCoverCheck 11 thetaAboveCell01002223 = true := by + have h : (thetaAboveCell01002223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002223 h +theorem e24KC2ThetaAboveLeaf01002230 : + adaptiveCoverCheck 11 thetaAboveCell01002230 = true := by + have h : (thetaAboveCell01002230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002230 h +theorem e24KC2ThetaAboveLeaf01002231 : + adaptiveCoverCheck 11 thetaAboveCell01002231 = true := by + have h : (thetaAboveCell01002231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002231 h +theorem e24KC2ThetaAboveLeaf01002232 : + adaptiveCoverCheck 11 thetaAboveCell01002232 = true := by + have h : (thetaAboveCell01002232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002232 h +theorem e24KC2ThetaAboveLeaf01002233 : + adaptiveCoverCheck 11 thetaAboveCell01002233 = true := by + have h : (thetaAboveCell01002233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002233 h +theorem e24KC2ThetaAboveLeaf010023000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01002300) = true := by + have h : ((childLL thetaAboveCell01002300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01002300) h +theorem e24KC2ThetaAboveLeaf010023001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01002300) = true := by + have h : ((childLH thetaAboveCell01002300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01002300) h +theorem e24KC2ThetaAboveLeaf0100230020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01002300)) = true := by + have h : ((childLL (childHL thetaAboveCell01002300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01002300)) h +theorem e24KC2ThetaAboveLeaf0100230021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01002300)) = true := by + have h : ((childLH (childHL thetaAboveCell01002300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01002300)) h +theorem e24KC2ThetaAboveLeaf0100230030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01002300)) = true := by + have h : ((childLL (childHH thetaAboveCell01002300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01002300)) h +theorem e24KC2ThetaAboveLeaf0100230031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01002300)) = true := by + have h : ((childLH (childHH thetaAboveCell01002300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01002300)) h +theorem e24KC2ThetaAboveLeaf010023010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01002301) = true := by + have h : ((childLL thetaAboveCell01002301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01002301) h +theorem e24KC2ThetaAboveLeaf010023011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01002301) = true := by + have h : ((childLH thetaAboveCell01002301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01002301) h +theorem e24KC2ThetaAboveLeaf0100230120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01002301)) = true := by + have h : ((childLL (childHL thetaAboveCell01002301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01002301)) h +theorem e24KC2ThetaAboveLeaf0100230121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01002301)) = true := by + have h : ((childLH (childHL thetaAboveCell01002301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01002301)) h +theorem e24KC2ThetaAboveLeaf0100230130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01002301)) = true := by + have h : ((childLL (childHH thetaAboveCell01002301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01002301)) h +theorem e24KC2ThetaAboveLeaf0100230131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01002301)) = true := by + have h : ((childLH (childHH thetaAboveCell01002301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01002301)) h +theorem e24KC2ThetaAboveLeaf0100230202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01002302)) = true := by + have h : ((childHL (childLL thetaAboveCell01002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01002302)) h +theorem e24KC2ThetaAboveLeaf0100230203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01002302)) = true := by + have h : ((childHH (childLL thetaAboveCell01002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01002302)) h +theorem e24KC2ThetaAboveLeaf0100230212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01002302)) = true := by + have h : ((childHL (childLH thetaAboveCell01002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01002302)) h +theorem e24KC2ThetaAboveLeaf0100230213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01002302)) = true := by + have h : ((childHH (childLH thetaAboveCell01002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01002302)) h +theorem e24KC2ThetaAboveLeaf010023022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01002302) = true := by + have h : ((childHL thetaAboveCell01002302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01002302) h +theorem e24KC2ThetaAboveLeaf010023023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01002302) = true := by + have h : ((childHH thetaAboveCell01002302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01002302) h +theorem e24KC2ThetaAboveLeaf0100230302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01002303)) = true := by + have h : ((childHL (childLL thetaAboveCell01002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01002303)) h +theorem e24KC2ThetaAboveLeaf0100230303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01002303)) = true := by + have h : ((childHH (childLL thetaAboveCell01002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01002303)) h +theorem e24KC2ThetaAboveLeaf0100230312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01002303)) = true := by + have h : ((childHL (childLH thetaAboveCell01002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01002303)) h +theorem e24KC2ThetaAboveLeaf0100230313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01002303)) = true := by + have h : ((childHH (childLH thetaAboveCell01002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01002303)) h +theorem e24KC2ThetaAboveLeaf0100230320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01002303)) = true := by + have h : ((childLL (childHL thetaAboveCell01002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01002303)) h +theorem e24KC2ThetaAboveLeaf0100230321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01002303)) = true := by + have h : ((childLH (childHL thetaAboveCell01002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01002303)) h +theorem e24KC2ThetaAboveLeaf0100230322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01002303)) = true := by + have h : ((childHL (childHL thetaAboveCell01002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01002303)) h +theorem e24KC2ThetaAboveLeaf0100230323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01002303)) = true := by + have h : ((childHH (childHL thetaAboveCell01002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01002303)) h +theorem e24KC2ThetaAboveLeaf0100230330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01002303)) = true := by + have h : ((childLL (childHH thetaAboveCell01002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01002303)) h +theorem e24KC2ThetaAboveLeaf0100230331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01002303)) = true := by + have h : ((childLH (childHH thetaAboveCell01002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01002303)) h +theorem e24KC2ThetaAboveLeaf0100230332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01002303)) = true := by + have h : ((childHL (childHH thetaAboveCell01002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01002303)) h +theorem e24KC2ThetaAboveLeaf0100230333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01002303)) = true := by + have h : ((childHH (childHH thetaAboveCell01002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01002303)) h +theorem e24KC2ThetaAboveLeaf010023100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01002310) = true := by + have h : ((childLL thetaAboveCell01002310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01002310) h +theorem e24KC2ThetaAboveLeaf010023101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01002310) = true := by + have h : ((childLH thetaAboveCell01002310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01002310) h +theorem e24KC2ThetaAboveLeaf0100231020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01002310)) = true := by + have h : ((childLL (childHL thetaAboveCell01002310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01002310)) h +theorem e24KC2ThetaAboveLeaf0100231021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01002310)) = true := by + have h : ((childLH (childHL thetaAboveCell01002310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01002310)) h +theorem e24KC2ThetaAboveLeaf0100231030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01002310)) = true := by + have h : ((childLL (childHH thetaAboveCell01002310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01002310)) h +theorem e24KC2ThetaAboveLeaf0100231031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01002310)) = true := by + have h : ((childLH (childHH thetaAboveCell01002310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01002310)) h +theorem e24KC2ThetaAboveLeaf010023110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01002311) = true := by + have h : ((childLL thetaAboveCell01002311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01002311) h +theorem e24KC2ThetaAboveLeaf010023111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01002311) = true := by + have h : ((childLH thetaAboveCell01002311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01002311) h +theorem e24KC2ThetaAboveLeaf0100231120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01002311)) = true := by + have h : ((childLL (childHL thetaAboveCell01002311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01002311)) h +theorem e24KC2ThetaAboveLeaf0100231121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01002311)) = true := by + have h : ((childLH (childHL thetaAboveCell01002311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01002311)) h +theorem e24KC2ThetaAboveLeaf0100231130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01002311)) = true := by + have h : ((childLL (childHH thetaAboveCell01002311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01002311)) h +theorem e24KC2ThetaAboveLeaf0100231131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01002311)) = true := by + have h : ((childLH (childHH thetaAboveCell01002311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01002311)) h +theorem e24KC2ThetaAboveLeaf0100231200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01002312)) = true := by + have h : ((childLL (childLL thetaAboveCell01002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01002312)) h +theorem e24KC2ThetaAboveLeaf0100231201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01002312)) = true := by + have h : ((childLH (childLL thetaAboveCell01002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01002312)) h +theorem e24KC2ThetaAboveLeaf0100231202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01002312)) = true := by + have h : ((childHL (childLL thetaAboveCell01002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01002312)) h +theorem e24KC2ThetaAboveLeaf0100231203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01002312)) = true := by + have h : ((childHH (childLL thetaAboveCell01002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01002312)) h +theorem e24KC2ThetaAboveLeaf0100231210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01002312)) = true := by + have h : ((childLL (childLH thetaAboveCell01002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01002312)) h +theorem e24KC2ThetaAboveLeaf0100231211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01002312)) = true := by + have h : ((childLH (childLH thetaAboveCell01002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01002312)) h +theorem e24KC2ThetaAboveLeaf0100231212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01002312)) = true := by + have h : ((childHL (childLH thetaAboveCell01002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01002312)) h +theorem e24KC2ThetaAboveLeaf0100231213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01002312)) = true := by + have h : ((childHH (childLH thetaAboveCell01002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01002312)) h +theorem e24KC2ThetaAboveLeaf0100231220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01002312)) = true := by + have h : ((childLL (childHL thetaAboveCell01002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01002312)) h +theorem e24KC2ThetaAboveLeaf0100231221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01002312)) = true := by + have h : ((childLH (childHL thetaAboveCell01002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01002312)) h +theorem e24KC2ThetaAboveLeaf0100231222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01002312)) = true := by + have h : ((childHL (childHL thetaAboveCell01002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01002312)) h +theorem e24KC2ThetaAboveLeaf0100231223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01002312)) = true := by + have h : ((childHH (childHL thetaAboveCell01002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01002312)) h +theorem e24KC2ThetaAboveLeaf0100231230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01002312)) = true := by + have h : ((childLL (childHH thetaAboveCell01002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01002312)) h +theorem e24KC2ThetaAboveLeaf0100231231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01002312)) = true := by + have h : ((childLH (childHH thetaAboveCell01002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01002312)) h +theorem e24KC2ThetaAboveLeaf0100231232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01002312)) = true := by + have h : ((childHL (childHH thetaAboveCell01002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01002312)) h +theorem e24KC2ThetaAboveLeaf0100231233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01002312)) = true := by + have h : ((childHH (childHH thetaAboveCell01002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01002312)) h +theorem e24KC2ThetaAboveLeaf0100231300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01002313)) = true := by + have h : ((childLL (childLL thetaAboveCell01002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01002313)) h +theorem e24KC2ThetaAboveLeaf0100231301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01002313)) = true := by + have h : ((childLH (childLL thetaAboveCell01002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01002313)) h +theorem e24KC2ThetaAboveLeaf0100231302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01002313)) = true := by + have h : ((childHL (childLL thetaAboveCell01002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01002313)) h +theorem e24KC2ThetaAboveLeaf0100231303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01002313)) = true := by + have h : ((childHH (childLL thetaAboveCell01002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01002313)) h +theorem e24KC2ThetaAboveLeaf0100231310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01002313)) = true := by + have h : ((childLL (childLH thetaAboveCell01002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01002313)) h +theorem e24KC2ThetaAboveLeaf0100231311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01002313)) = true := by + have h : ((childLH (childLH thetaAboveCell01002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01002313)) h +theorem e24KC2ThetaAboveLeaf0100231312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01002313)) = true := by + have h : ((childHL (childLH thetaAboveCell01002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01002313)) h +theorem e24KC2ThetaAboveLeaf0100231313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01002313)) = true := by + have h : ((childHH (childLH thetaAboveCell01002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01002313)) h +theorem e24KC2ThetaAboveLeaf0100231320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01002313)) = true := by + have h : ((childLL (childHL thetaAboveCell01002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01002313)) h +theorem e24KC2ThetaAboveLeaf0100231321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01002313)) = true := by + have h : ((childLH (childHL thetaAboveCell01002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01002313)) h +theorem e24KC2ThetaAboveLeaf0100231322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01002313)) = true := by + have h : ((childHL (childHL thetaAboveCell01002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01002313)) h +theorem e24KC2ThetaAboveLeaf0100231323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01002313)) = true := by + have h : ((childHH (childHL thetaAboveCell01002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01002313)) h +theorem e24KC2ThetaAboveLeaf0100231330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01002313)) = true := by + have h : ((childLL (childHH thetaAboveCell01002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01002313)) h +theorem e24KC2ThetaAboveLeaf0100231331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01002313)) = true := by + have h : ((childLH (childHH thetaAboveCell01002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01002313)) h +theorem e24KC2ThetaAboveLeaf0100231332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01002313)) = true := by + have h : ((childHL (childHH thetaAboveCell01002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01002313)) h +theorem e24KC2ThetaAboveLeaf0100231333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01002313)) = true := by + have h : ((childHH (childHH thetaAboveCell01002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01002313)) h +theorem e24KC2ThetaAboveLeaf01002320 : + adaptiveCoverCheck 11 thetaAboveCell01002320 = true := by + have h : (thetaAboveCell01002320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002320 h +theorem e24KC2ThetaAboveLeaf01002321 : + adaptiveCoverCheck 11 thetaAboveCell01002321 = true := by + have h : (thetaAboveCell01002321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002321 h +theorem e24KC2ThetaAboveLeaf01002322 : + adaptiveCoverCheck 11 thetaAboveCell01002322 = true := by + have h : (thetaAboveCell01002322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002322 h +theorem e24KC2ThetaAboveLeaf01002323 : + adaptiveCoverCheck 11 thetaAboveCell01002323 = true := by + have h : (thetaAboveCell01002323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002323 h +theorem e24KC2ThetaAboveLeaf01002330 : + adaptiveCoverCheck 11 thetaAboveCell01002330 = true := by + have h : (thetaAboveCell01002330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002330 h +theorem e24KC2ThetaAboveLeaf01002331 : + adaptiveCoverCheck 11 thetaAboveCell01002331 = true := by + have h : (thetaAboveCell01002331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002331 h +theorem e24KC2ThetaAboveLeaf01002332 : + adaptiveCoverCheck 11 thetaAboveCell01002332 = true := by + have h : (thetaAboveCell01002332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002332 h +theorem e24KC2ThetaAboveLeaf01002333 : + adaptiveCoverCheck 11 thetaAboveCell01002333 = true := by + have h : (thetaAboveCell01002333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01002333 h +theorem e24KC2ThetaAboveLeaf0100300 : + adaptiveCoverCheck 12 (childLL (childLL (childHH thetaAboveCell0100))) = true := by + have h : ((childLL (childLL (childHH thetaAboveCell0100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHH thetaAboveCell0100))) h +theorem e24KC2ThetaAboveLeaf0100301 : + adaptiveCoverCheck 12 (childLH (childLL (childHH thetaAboveCell0100))) = true := by + have h : ((childLH (childLL (childHH thetaAboveCell0100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHH thetaAboveCell0100))) h +theorem e24KC2ThetaAboveLeaf01003020 : + adaptiveCoverCheck 11 thetaAboveCell01003020 = true := by + have h : (thetaAboveCell01003020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003020 h +theorem e24KC2ThetaAboveLeaf01003021 : + adaptiveCoverCheck 11 thetaAboveCell01003021 = true := by + have h : (thetaAboveCell01003021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003021 h +theorem e24KC2ThetaAboveLeaf01003022 : + adaptiveCoverCheck 11 thetaAboveCell01003022 = true := by + have h : (thetaAboveCell01003022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003022 h +theorem e24KC2ThetaAboveLeaf01003023 : + adaptiveCoverCheck 11 thetaAboveCell01003023 = true := by + have h : (thetaAboveCell01003023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003023 h +theorem e24KC2ThetaAboveLeaf01003030 : + adaptiveCoverCheck 11 thetaAboveCell01003030 = true := by + have h : (thetaAboveCell01003030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003030 h +theorem e24KC2ThetaAboveLeaf01003031 : + adaptiveCoverCheck 11 thetaAboveCell01003031 = true := by + have h : (thetaAboveCell01003031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003031 h +theorem e24KC2ThetaAboveLeaf01003032 : + adaptiveCoverCheck 11 thetaAboveCell01003032 = true := by + have h : (thetaAboveCell01003032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003032 h +theorem e24KC2ThetaAboveLeaf01003033 : + adaptiveCoverCheck 11 thetaAboveCell01003033 = true := by + have h : (thetaAboveCell01003033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003033 h +theorem e24KC2ThetaAboveLeaf0100310 : + adaptiveCoverCheck 12 (childLL (childLH (childHH thetaAboveCell0100))) = true := by + have h : ((childLL (childLH (childHH thetaAboveCell0100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHH thetaAboveCell0100))) h +theorem e24KC2ThetaAboveLeaf0100311 : + adaptiveCoverCheck 12 (childLH (childLH (childHH thetaAboveCell0100))) = true := by + have h : ((childLH (childLH (childHH thetaAboveCell0100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHH thetaAboveCell0100))) h +theorem e24KC2ThetaAboveLeaf01003120 : + adaptiveCoverCheck 11 thetaAboveCell01003120 = true := by + have h : (thetaAboveCell01003120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003120 h +theorem e24KC2ThetaAboveLeaf01003121 : + adaptiveCoverCheck 11 thetaAboveCell01003121 = true := by + have h : (thetaAboveCell01003121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003121 h +theorem e24KC2ThetaAboveLeaf01003122 : + adaptiveCoverCheck 11 thetaAboveCell01003122 = true := by + have h : (thetaAboveCell01003122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003122 h +theorem e24KC2ThetaAboveLeaf01003123 : + adaptiveCoverCheck 11 thetaAboveCell01003123 = true := by + have h : (thetaAboveCell01003123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003123 h +theorem e24KC2ThetaAboveLeaf01003130 : + adaptiveCoverCheck 11 thetaAboveCell01003130 = true := by + have h : (thetaAboveCell01003130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003130 h +theorem e24KC2ThetaAboveLeaf01003131 : + adaptiveCoverCheck 11 thetaAboveCell01003131 = true := by + have h : (thetaAboveCell01003131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003131 h +theorem e24KC2ThetaAboveLeaf01003132 : + adaptiveCoverCheck 11 thetaAboveCell01003132 = true := by + have h : (thetaAboveCell01003132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003132 h +theorem e24KC2ThetaAboveLeaf01003133 : + adaptiveCoverCheck 11 thetaAboveCell01003133 = true := by + have h : (thetaAboveCell01003133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003133 h +theorem e24KC2ThetaAboveLeaf010032000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01003200) = true := by + have h : ((childLL thetaAboveCell01003200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01003200) h +theorem e24KC2ThetaAboveLeaf010032001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01003200) = true := by + have h : ((childLH thetaAboveCell01003200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01003200) h +theorem e24KC2ThetaAboveLeaf0100320020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01003200)) = true := by + have h : ((childLL (childHL thetaAboveCell01003200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01003200)) h +theorem e24KC2ThetaAboveLeaf0100320021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01003200)) = true := by + have h : ((childLH (childHL thetaAboveCell01003200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01003200)) h +theorem e24KC2ThetaAboveLeaf0100320030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01003200)) = true := by + have h : ((childLL (childHH thetaAboveCell01003200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01003200)) h +theorem e24KC2ThetaAboveLeaf0100320031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01003200)) = true := by + have h : ((childLH (childHH thetaAboveCell01003200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01003200)) h +theorem e24KC2ThetaAboveLeaf010032010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01003201) = true := by + have h : ((childLL thetaAboveCell01003201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01003201) h +theorem e24KC2ThetaAboveLeaf010032011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01003201) = true := by + have h : ((childLH thetaAboveCell01003201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01003201) h +theorem e24KC2ThetaAboveLeaf0100320120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01003201)) = true := by + have h : ((childLL (childHL thetaAboveCell01003201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01003201)) h +theorem e24KC2ThetaAboveLeaf0100320121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01003201)) = true := by + have h : ((childLH (childHL thetaAboveCell01003201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01003201)) h +theorem e24KC2ThetaAboveLeaf0100320130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01003201)) = true := by + have h : ((childLL (childHH thetaAboveCell01003201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01003201)) h +theorem e24KC2ThetaAboveLeaf0100320131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01003201)) = true := by + have h : ((childLH (childHH thetaAboveCell01003201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01003201)) h +theorem e24KC2ThetaAboveLeaf0100320200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01003202)) = true := by + have h : ((childLL (childLL thetaAboveCell01003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01003202)) h +theorem e24KC2ThetaAboveLeaf0100320201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01003202)) = true := by + have h : ((childLH (childLL thetaAboveCell01003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01003202)) h +theorem e24KC2ThetaAboveLeaf0100320202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01003202)) = true := by + have h : ((childHL (childLL thetaAboveCell01003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01003202)) h +theorem e24KC2ThetaAboveLeaf0100320203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01003202)) = true := by + have h : ((childHH (childLL thetaAboveCell01003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01003202)) h +theorem e24KC2ThetaAboveLeaf0100320210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01003202)) = true := by + have h : ((childLL (childLH thetaAboveCell01003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01003202)) h +theorem e24KC2ThetaAboveLeaf0100320211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01003202)) = true := by + have h : ((childLH (childLH thetaAboveCell01003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01003202)) h +theorem e24KC2ThetaAboveLeaf0100320212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01003202)) = true := by + have h : ((childHL (childLH thetaAboveCell01003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01003202)) h +theorem e24KC2ThetaAboveLeaf0100320213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01003202)) = true := by + have h : ((childHH (childLH thetaAboveCell01003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01003202)) h +theorem e24KC2ThetaAboveLeaf0100320220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01003202)) = true := by + have h : ((childLL (childHL thetaAboveCell01003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01003202)) h +theorem e24KC2ThetaAboveLeaf0100320221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01003202)) = true := by + have h : ((childLH (childHL thetaAboveCell01003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01003202)) h +theorem e24KC2ThetaAboveLeaf0100320222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01003202)) = true := by + have h : ((childHL (childHL thetaAboveCell01003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01003202)) h +theorem e24KC2ThetaAboveLeaf0100320223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01003202)) = true := by + have h : ((childHH (childHL thetaAboveCell01003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01003202)) h +theorem e24KC2ThetaAboveLeaf0100320230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01003202)) = true := by + have h : ((childLL (childHH thetaAboveCell01003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01003202)) h +theorem e24KC2ThetaAboveLeaf0100320231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01003202)) = true := by + have h : ((childLH (childHH thetaAboveCell01003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01003202)) h +theorem e24KC2ThetaAboveLeaf0100320232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01003202)) = true := by + have h : ((childHL (childHH thetaAboveCell01003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01003202)) h +theorem e24KC2ThetaAboveLeaf0100320233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01003202)) = true := by + have h : ((childHH (childHH thetaAboveCell01003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01003202)) h +theorem e24KC2ThetaAboveLeaf0100320300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01003203)) = true := by + have h : ((childLL (childLL thetaAboveCell01003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01003203)) h +theorem e24KC2ThetaAboveLeaf0100320301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01003203)) = true := by + have h : ((childLH (childLL thetaAboveCell01003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01003203)) h +theorem e24KC2ThetaAboveLeaf0100320302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01003203)) = true := by + have h : ((childHL (childLL thetaAboveCell01003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01003203)) h +theorem e24KC2ThetaAboveLeaf0100320303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01003203)) = true := by + have h : ((childHH (childLL thetaAboveCell01003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01003203)) h +theorem e24KC2ThetaAboveLeaf0100320310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01003203)) = true := by + have h : ((childLL (childLH thetaAboveCell01003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01003203)) h +theorem e24KC2ThetaAboveLeaf0100320311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01003203)) = true := by + have h : ((childLH (childLH thetaAboveCell01003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01003203)) h +theorem e24KC2ThetaAboveLeaf0100320312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01003203)) = true := by + have h : ((childHL (childLH thetaAboveCell01003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01003203)) h +theorem e24KC2ThetaAboveLeaf0100320313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01003203)) = true := by + have h : ((childHH (childLH thetaAboveCell01003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01003203)) h +theorem e24KC2ThetaAboveLeaf0100320320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01003203)) = true := by + have h : ((childLL (childHL thetaAboveCell01003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01003203)) h +theorem e24KC2ThetaAboveLeaf0100320321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01003203)) = true := by + have h : ((childLH (childHL thetaAboveCell01003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01003203)) h +theorem e24KC2ThetaAboveLeaf0100320322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01003203)) = true := by + have h : ((childHL (childHL thetaAboveCell01003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01003203)) h +theorem e24KC2ThetaAboveLeaf0100320323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01003203)) = true := by + have h : ((childHH (childHL thetaAboveCell01003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01003203)) h +theorem e24KC2ThetaAboveLeaf0100320330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01003203)) = true := by + have h : ((childLL (childHH thetaAboveCell01003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01003203)) h +theorem e24KC2ThetaAboveLeaf0100320331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01003203)) = true := by + have h : ((childLH (childHH thetaAboveCell01003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01003203)) h +theorem e24KC2ThetaAboveLeaf0100320332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01003203)) = true := by + have h : ((childHL (childHH thetaAboveCell01003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01003203)) h +theorem e24KC2ThetaAboveLeaf0100320333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01003203)) = true := by + have h : ((childHH (childHH thetaAboveCell01003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01003203)) h +theorem e24KC2ThetaAboveLeaf010032100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01003210) = true := by + have h : ((childLL thetaAboveCell01003210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01003210) h +theorem e24KC2ThetaAboveLeaf010032101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01003210) = true := by + have h : ((childLH thetaAboveCell01003210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01003210) h +theorem e24KC2ThetaAboveLeaf0100321020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01003210)) = true := by + have h : ((childLL (childHL thetaAboveCell01003210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01003210)) h +theorem e24KC2ThetaAboveLeaf0100321021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01003210)) = true := by + have h : ((childLH (childHL thetaAboveCell01003210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01003210)) h +theorem e24KC2ThetaAboveLeaf0100321022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01003210)) = true := by + have h : ((childHL (childHL thetaAboveCell01003210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01003210)) h +theorem e24KC2ThetaAboveLeaf0100321023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01003210)) = true := by + have h : ((childHH (childHL thetaAboveCell01003210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01003210)) h +theorem e24KC2ThetaAboveLeaf0100321030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01003210)) = true := by + have h : ((childLL (childHH thetaAboveCell01003210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01003210)) h +theorem e24KC2ThetaAboveLeaf0100321031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01003210)) = true := by + have h : ((childLH (childHH thetaAboveCell01003210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01003210)) h +theorem e24KC2ThetaAboveLeaf0100321032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01003210)) = true := by + have h : ((childHL (childHH thetaAboveCell01003210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01003210)) h +theorem e24KC2ThetaAboveLeaf0100321033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01003210)) = true := by + have h : ((childHH (childHH thetaAboveCell01003210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01003210)) h +theorem e24KC2ThetaAboveLeaf010032110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01003211) = true := by + have h : ((childLL thetaAboveCell01003211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01003211) h +theorem e24KC2ThetaAboveLeaf010032111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01003211) = true := by + have h : ((childLH thetaAboveCell01003211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01003211) h +theorem e24KC2ThetaAboveLeaf0100321120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01003211)) = true := by + have h : ((childLL (childHL thetaAboveCell01003211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01003211)) h +theorem e24KC2ThetaAboveLeaf0100321121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01003211)) = true := by + have h : ((childLH (childHL thetaAboveCell01003211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01003211)) h +theorem e24KC2ThetaAboveLeaf0100321122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01003211)) = true := by + have h : ((childHL (childHL thetaAboveCell01003211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01003211)) h +theorem e24KC2ThetaAboveLeaf0100321123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01003211)) = true := by + have h : ((childHH (childHL thetaAboveCell01003211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01003211)) h +theorem e24KC2ThetaAboveLeaf0100321130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01003211)) = true := by + have h : ((childLL (childHH thetaAboveCell01003211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01003211)) h +theorem e24KC2ThetaAboveLeaf0100321131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01003211)) = true := by + have h : ((childLH (childHH thetaAboveCell01003211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01003211)) h +theorem e24KC2ThetaAboveLeaf0100321132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01003211)) = true := by + have h : ((childHL (childHH thetaAboveCell01003211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01003211)) h +theorem e24KC2ThetaAboveLeaf0100321133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01003211)) = true := by + have h : ((childHH (childHH thetaAboveCell01003211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01003211)) h +theorem e24KC2ThetaAboveLeaf0100321200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01003212)) = true := by + have h : ((childLL (childLL thetaAboveCell01003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01003212)) h +theorem e24KC2ThetaAboveLeaf0100321201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01003212)) = true := by + have h : ((childLH (childLL thetaAboveCell01003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01003212)) h +theorem e24KC2ThetaAboveLeaf0100321202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01003212)) = true := by + have h : ((childHL (childLL thetaAboveCell01003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01003212)) h +theorem e24KC2ThetaAboveLeaf0100321203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01003212)) = true := by + have h : ((childHH (childLL thetaAboveCell01003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01003212)) h +theorem e24KC2ThetaAboveLeaf0100321210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01003212)) = true := by + have h : ((childLL (childLH thetaAboveCell01003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01003212)) h +theorem e24KC2ThetaAboveLeaf0100321211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01003212)) = true := by + have h : ((childLH (childLH thetaAboveCell01003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01003212)) h +theorem e24KC2ThetaAboveLeaf0100321212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01003212)) = true := by + have h : ((childHL (childLH thetaAboveCell01003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01003212)) h +theorem e24KC2ThetaAboveLeaf0100321213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01003212)) = true := by + have h : ((childHH (childLH thetaAboveCell01003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01003212)) h +theorem e24KC2ThetaAboveLeaf0100321220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01003212)) = true := by + have h : ((childLL (childHL thetaAboveCell01003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01003212)) h +theorem e24KC2ThetaAboveLeaf0100321221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01003212)) = true := by + have h : ((childLH (childHL thetaAboveCell01003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01003212)) h +theorem e24KC2ThetaAboveLeaf0100321222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01003212)) = true := by + have h : ((childHL (childHL thetaAboveCell01003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01003212)) h +theorem e24KC2ThetaAboveLeaf0100321223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01003212)) = true := by + have h : ((childHH (childHL thetaAboveCell01003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01003212)) h +theorem e24KC2ThetaAboveLeaf0100321230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01003212)) = true := by + have h : ((childLL (childHH thetaAboveCell01003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01003212)) h +theorem e24KC2ThetaAboveLeaf0100321231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01003212)) = true := by + have h : ((childLH (childHH thetaAboveCell01003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01003212)) h +theorem e24KC2ThetaAboveLeaf0100321232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01003212)) = true := by + have h : ((childHL (childHH thetaAboveCell01003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01003212)) h +theorem e24KC2ThetaAboveLeaf0100321233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01003212)) = true := by + have h : ((childHH (childHH thetaAboveCell01003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01003212)) h +theorem e24KC2ThetaAboveLeaf0100321300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01003213)) = true := by + have h : ((childLL (childLL thetaAboveCell01003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01003213)) h +theorem e24KC2ThetaAboveLeaf0100321301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01003213)) = true := by + have h : ((childLH (childLL thetaAboveCell01003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01003213)) h +theorem e24KC2ThetaAboveLeaf0100321302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01003213)) = true := by + have h : ((childHL (childLL thetaAboveCell01003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01003213)) h +theorem e24KC2ThetaAboveLeaf0100321303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01003213)) = true := by + have h : ((childHH (childLL thetaAboveCell01003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01003213)) h +theorem e24KC2ThetaAboveLeaf0100321310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01003213)) = true := by + have h : ((childLL (childLH thetaAboveCell01003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01003213)) h +theorem e24KC2ThetaAboveLeaf0100321311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01003213)) = true := by + have h : ((childLH (childLH thetaAboveCell01003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01003213)) h +theorem e24KC2ThetaAboveLeaf0100321312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01003213)) = true := by + have h : ((childHL (childLH thetaAboveCell01003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01003213)) h +theorem e24KC2ThetaAboveLeaf0100321313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01003213)) = true := by + have h : ((childHH (childLH thetaAboveCell01003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01003213)) h +theorem e24KC2ThetaAboveLeaf0100321320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01003213)) = true := by + have h : ((childLL (childHL thetaAboveCell01003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01003213)) h +theorem e24KC2ThetaAboveLeaf0100321321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01003213)) = true := by + have h : ((childLH (childHL thetaAboveCell01003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01003213)) h +theorem e24KC2ThetaAboveLeaf0100321322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01003213)) = true := by + have h : ((childHL (childHL thetaAboveCell01003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01003213)) h +theorem e24KC2ThetaAboveLeaf0100321323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01003213)) = true := by + have h : ((childHH (childHL thetaAboveCell01003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01003213)) h +theorem e24KC2ThetaAboveLeaf0100321330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01003213)) = true := by + have h : ((childLL (childHH thetaAboveCell01003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01003213)) h +theorem e24KC2ThetaAboveLeaf0100321331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01003213)) = true := by + have h : ((childLH (childHH thetaAboveCell01003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01003213)) h +theorem e24KC2ThetaAboveLeaf0100321332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01003213)) = true := by + have h : ((childHL (childHH thetaAboveCell01003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01003213)) h +theorem e24KC2ThetaAboveLeaf0100321333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01003213)) = true := by + have h : ((childHH (childHH thetaAboveCell01003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01003213)) h +theorem e24KC2ThetaAboveLeaf01003220 : + adaptiveCoverCheck 11 thetaAboveCell01003220 = true := by + have h : (thetaAboveCell01003220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003220 h +theorem e24KC2ThetaAboveLeaf01003221 : + adaptiveCoverCheck 11 thetaAboveCell01003221 = true := by + have h : (thetaAboveCell01003221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003221 h +theorem e24KC2ThetaAboveLeaf01003222 : + adaptiveCoverCheck 11 thetaAboveCell01003222 = true := by + have h : (thetaAboveCell01003222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003222 h +theorem e24KC2ThetaAboveLeaf01003223 : + adaptiveCoverCheck 11 thetaAboveCell01003223 = true := by + have h : (thetaAboveCell01003223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003223 h +theorem e24KC2ThetaAboveLeaf01003230 : + adaptiveCoverCheck 11 thetaAboveCell01003230 = true := by + have h : (thetaAboveCell01003230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003230 h +theorem e24KC2ThetaAboveLeaf01003231 : + adaptiveCoverCheck 11 thetaAboveCell01003231 = true := by + have h : (thetaAboveCell01003231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003231 h +theorem e24KC2ThetaAboveLeaf01003232 : + adaptiveCoverCheck 11 thetaAboveCell01003232 = true := by + have h : (thetaAboveCell01003232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003232 h +theorem e24KC2ThetaAboveLeaf01003233 : + adaptiveCoverCheck 11 thetaAboveCell01003233 = true := by + have h : (thetaAboveCell01003233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003233 h +theorem e24KC2ThetaAboveLeaf010033000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01003300) = true := by + have h : ((childLL thetaAboveCell01003300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01003300) h +theorem e24KC2ThetaAboveLeaf010033001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01003300) = true := by + have h : ((childLH thetaAboveCell01003300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01003300) h +theorem e24KC2ThetaAboveLeaf0100330020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01003300)) = true := by + have h : ((childLL (childHL thetaAboveCell01003300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01003300)) h +theorem e24KC2ThetaAboveLeaf0100330021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01003300)) = true := by + have h : ((childLH (childHL thetaAboveCell01003300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01003300)) h +theorem e24KC2ThetaAboveLeaf0100330022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01003300)) = true := by + have h : ((childHL (childHL thetaAboveCell01003300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01003300)) h +theorem e24KC2ThetaAboveLeaf0100330023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01003300)) = true := by + have h : ((childHH (childHL thetaAboveCell01003300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01003300)) h +theorem e24KC2ThetaAboveLeaf0100330030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01003300)) = true := by + have h : ((childLL (childHH thetaAboveCell01003300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01003300)) h +theorem e24KC2ThetaAboveLeaf0100330031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01003300)) = true := by + have h : ((childLH (childHH thetaAboveCell01003300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01003300)) h +theorem e24KC2ThetaAboveLeaf0100330032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01003300)) = true := by + have h : ((childHL (childHH thetaAboveCell01003300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01003300)) h +theorem e24KC2ThetaAboveLeaf0100330033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01003300)) = true := by + have h : ((childHH (childHH thetaAboveCell01003300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01003300)) h +theorem e24KC2ThetaAboveLeaf010033010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01003301) = true := by + have h : ((childLL thetaAboveCell01003301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01003301) h +theorem e24KC2ThetaAboveLeaf010033011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01003301) = true := by + have h : ((childLH thetaAboveCell01003301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01003301) h +theorem e24KC2ThetaAboveLeaf0100330120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01003301)) = true := by + have h : ((childLL (childHL thetaAboveCell01003301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01003301)) h +theorem e24KC2ThetaAboveLeaf0100330121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01003301)) = true := by + have h : ((childLH (childHL thetaAboveCell01003301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01003301)) h +theorem e24KC2ThetaAboveLeaf0100330122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01003301)) = true := by + have h : ((childHL (childHL thetaAboveCell01003301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01003301)) h +theorem e24KC2ThetaAboveLeaf0100330123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01003301)) = true := by + have h : ((childHH (childHL thetaAboveCell01003301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01003301)) h +theorem e24KC2ThetaAboveLeaf0100330130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01003301)) = true := by + have h : ((childLL (childHH thetaAboveCell01003301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01003301)) h +theorem e24KC2ThetaAboveLeaf0100330131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01003301)) = true := by + have h : ((childLH (childHH thetaAboveCell01003301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01003301)) h +theorem e24KC2ThetaAboveLeaf0100330132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01003301)) = true := by + have h : ((childHL (childHH thetaAboveCell01003301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01003301)) h +theorem e24KC2ThetaAboveLeaf0100330133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01003301)) = true := by + have h : ((childHH (childHH thetaAboveCell01003301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01003301)) h +theorem e24KC2ThetaAboveLeaf0100330200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01003302)) = true := by + have h : ((childLL (childLL thetaAboveCell01003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01003302)) h +theorem e24KC2ThetaAboveLeaf0100330201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01003302)) = true := by + have h : ((childLH (childLL thetaAboveCell01003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01003302)) h +theorem e24KC2ThetaAboveLeaf0100330202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01003302)) = true := by + have h : ((childHL (childLL thetaAboveCell01003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01003302)) h +theorem e24KC2ThetaAboveLeaf0100330203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01003302)) = true := by + have h : ((childHH (childLL thetaAboveCell01003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01003302)) h +theorem e24KC2ThetaAboveLeaf0100330210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01003302)) = true := by + have h : ((childLL (childLH thetaAboveCell01003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01003302)) h +theorem e24KC2ThetaAboveLeaf0100330211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01003302)) = true := by + have h : ((childLH (childLH thetaAboveCell01003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01003302)) h +theorem e24KC2ThetaAboveLeaf0100330212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01003302)) = true := by + have h : ((childHL (childLH thetaAboveCell01003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01003302)) h +theorem e24KC2ThetaAboveLeaf0100330213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01003302)) = true := by + have h : ((childHH (childLH thetaAboveCell01003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01003302)) h +theorem e24KC2ThetaAboveLeaf0100330220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01003302)) = true := by + have h : ((childLL (childHL thetaAboveCell01003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01003302)) h +theorem e24KC2ThetaAboveLeaf0100330221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01003302)) = true := by + have h : ((childLH (childHL thetaAboveCell01003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01003302)) h +theorem e24KC2ThetaAboveLeaf0100330222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01003302)) = true := by + have h : ((childHL (childHL thetaAboveCell01003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01003302)) h +theorem e24KC2ThetaAboveLeaf0100330223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01003302)) = true := by + have h : ((childHH (childHL thetaAboveCell01003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01003302)) h +theorem e24KC2ThetaAboveLeaf0100330230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01003302)) = true := by + have h : ((childLL (childHH thetaAboveCell01003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01003302)) h +theorem e24KC2ThetaAboveLeaf0100330231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01003302)) = true := by + have h : ((childLH (childHH thetaAboveCell01003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01003302)) h +theorem e24KC2ThetaAboveLeaf0100330232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01003302)) = true := by + have h : ((childHL (childHH thetaAboveCell01003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01003302)) h +theorem e24KC2ThetaAboveLeaf0100330233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01003302)) = true := by + have h : ((childHH (childHH thetaAboveCell01003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01003302)) h + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC6ProofBatch6018780a0c691fa2`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC6 explicit proof-producing certificate batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells66bed457b5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells66bed457b5 + +open CertificateCells66bed457b5 +theorem cover_subtree_6415e703c807 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000023002000) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023002000) + (by + have h : ((childLL (childHL thetaAboveCell000023002000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000023002000)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023002000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000023002000)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000023002000)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000023002000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000023002000))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000023002000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000023002000))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000023002000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000023002000))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000023002000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000023002000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000023002000)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000023002000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000023002000))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000023002000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000023002000))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000023002000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000023002000))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000023002000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000023002000))) h)) + +theorem cover_subtree_22d363d7acf8 : + adaptiveCoverCheck 7 thetaAboveCell000023002000 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002000 + (by + have h : ((childLL thetaAboveCell000023002000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023002000) h) + (by + have h : ((childLH thetaAboveCell000023002000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023002000) h) + cover_subtree_6415e703c807 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023002000) + (by + have h : ((childLL (childHH thetaAboveCell000023002000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023002000)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023002000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023002000)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000023002000)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000023002000)))).rejected = true + := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000023002000))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000023002000)))).rejected = true + := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000023002000))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000023002000)))).rejected = true + := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000023002000))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000023002000)))).rejected = true + := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000023002000))) h)) + (by + have h : ((childHH (childHH thetaAboveCell000023002000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023002000)) h)) + +theorem cover_subtree_549010c79ddd : + adaptiveCoverCheck 7 thetaAboveCell000023002001 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002001 + (by + have h : ((childLL thetaAboveCell000023002001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023002001) h) + (by + have h : ((childLH thetaAboveCell000023002001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023002001) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023002001) + (by + have h : ((childLL (childHL thetaAboveCell000023002001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023002001)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023002001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023002001)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023002001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023002001)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023002001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023002001)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023002001) + (by + have h : ((childLL (childHH thetaAboveCell000023002001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023002001)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023002001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023002001)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023002001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023002001)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023002001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023002001)) h)) + +theorem cover_subtree_cee31392fc88 : + adaptiveCoverCheck 7 thetaAboveCell000023002002 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002002 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023002002) + (by + have h : ((childLL (childLL thetaAboveCell000023002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023002002)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023002002)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023002002)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023002002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023002002) + (by + have h : ((childLL (childLH thetaAboveCell000023002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023002002)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023002002)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023002002)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023002002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023002002) + (by + have h : ((childLL (childHL thetaAboveCell000023002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023002002)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023002002)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023002002)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023002002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023002002) + (by + have h : ((childLL (childHH thetaAboveCell000023002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023002002)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023002002)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023002002)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023002002)) h)) + +theorem cover_subtree_6e289b6e590a : + adaptiveCoverCheck 7 thetaAboveCell000023002003 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002003 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023002003) + (by + have h : ((childLL (childLL thetaAboveCell000023002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023002003)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023002003)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023002003)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023002003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023002003) + (by + have h : ((childLL (childLH thetaAboveCell000023002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023002003)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023002003)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023002003)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023002003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023002003) + (by + have h : ((childLL (childHL thetaAboveCell000023002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023002003)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023002003)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023002003)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023002003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023002003) + (by + have h : ((childLL (childHH thetaAboveCell000023002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023002003)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023002003)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023002003)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023002003)) h)) + +theorem cover_subtree_682a52ae1e8e : + adaptiveCoverCheck 8 (childLL (childLL (childHL thetaAboveCell00002300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL thetaAboveCell00002300))) + cover_subtree_22d363d7acf8 + cover_subtree_549010c79ddd + cover_subtree_cee31392fc88 + cover_subtree_6e289b6e590a + +theorem cover_subtree_f7dd1bf145ad : + adaptiveCoverCheck 7 thetaAboveCell000023002010 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002010 + (by + have h : ((childLL thetaAboveCell000023002010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023002010) h) + (by + have h : ((childLH thetaAboveCell000023002010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023002010) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023002010) + (by + have h : ((childLL (childHL thetaAboveCell000023002010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023002010)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023002010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023002010)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023002010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023002010)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023002010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023002010)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023002010) + (by + have h : ((childLL (childHH thetaAboveCell000023002010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023002010)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023002010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023002010)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023002010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023002010)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023002010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023002010)) h)) + +theorem cover_subtree_ef225adab279 : + adaptiveCoverCheck 7 thetaAboveCell000023002011 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002011 + (by + have h : ((childLL thetaAboveCell000023002011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023002011) h) + (by + have h : ((childLH thetaAboveCell000023002011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023002011) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023002011) + (by + have h : ((childLL (childHL thetaAboveCell000023002011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023002011)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023002011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023002011)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023002011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023002011)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023002011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023002011)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023002011) + (by + have h : ((childLL (childHH thetaAboveCell000023002011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023002011)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023002011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023002011)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023002011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023002011)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023002011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023002011)) h)) + +theorem cover_subtree_8107e804592b : + adaptiveCoverCheck 7 thetaAboveCell000023002012 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002012 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023002012) + (by + have h : ((childLL (childLL thetaAboveCell000023002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023002012)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023002012)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023002012)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023002012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023002012) + (by + have h : ((childLL (childLH thetaAboveCell000023002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023002012)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023002012)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023002012)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023002012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023002012) + (by + have h : ((childLL (childHL thetaAboveCell000023002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023002012)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023002012)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023002012)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023002012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023002012) + (by + have h : ((childLL (childHH thetaAboveCell000023002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023002012)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023002012)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023002012)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023002012)) h)) + +theorem cover_subtree_ce4b7ef4c4ef : + adaptiveCoverCheck 7 thetaAboveCell000023002013 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002013 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023002013) + (by + have h : ((childLL (childLL thetaAboveCell000023002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023002013)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023002013)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023002013)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023002013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023002013) + (by + have h : ((childLL (childLH thetaAboveCell000023002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023002013)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023002013)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023002013)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023002013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023002013) + (by + have h : ((childLL (childHL thetaAboveCell000023002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023002013)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023002013)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023002013)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023002013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023002013) + (by + have h : ((childLL (childHH thetaAboveCell000023002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023002013)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023002013)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023002013)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023002013)) h)) + +theorem cover_subtree_1c0e76b133f5 : + adaptiveCoverCheck 8 (childLH (childLL (childHL thetaAboveCell00002300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL thetaAboveCell00002300))) + cover_subtree_f7dd1bf145ad + cover_subtree_ef225adab279 + cover_subtree_8107e804592b + cover_subtree_ce4b7ef4c4ef + +theorem cover_subtree_eef2c1bd32f7 : + adaptiveCoverCheck 8 (childHH (childLL (childHL thetaAboveCell00002300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL thetaAboveCell00002300))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002030 + (by + have h : ((childLL thetaAboveCell000023002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023002030) h) + (by + have h : ((childLH thetaAboveCell000023002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023002030) h) + (by + have h : ((childHL thetaAboveCell000023002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023002030) h) + (by + have h : ((childHH thetaAboveCell000023002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023002030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002031 + (by + have h : ((childLL thetaAboveCell000023002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023002031) h) + (by + have h : ((childLH thetaAboveCell000023002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023002031) h) + (by + have h : ((childHL thetaAboveCell000023002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023002031) h) + (by + have h : ((childHH thetaAboveCell000023002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023002031) h)) + (by + have h : (thetaAboveCell000023002032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023002032 h) + (by + have h : (thetaAboveCell000023002033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023002033 h) + +theorem e24KC2ThetaAboveLeaf0000230020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00002300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00002300)) + cover_subtree_682a52ae1e8e + cover_subtree_1c0e76b133f5 + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00002300))) + (by + have h : (thetaAboveCell000023002020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023002020 h) + (by + have h : (thetaAboveCell000023002021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023002021 h) + (by + have h : (thetaAboveCell000023002022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023002022 h) + (by + have h : (thetaAboveCell000023002023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023002023 h)) + cover_subtree_eef2c1bd32f7 +theorem cover_subtree_681c28bf7d84 : + adaptiveCoverCheck 7 thetaAboveCell000023002100 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002100 + (by + have h : ((childLL thetaAboveCell000023002100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023002100) h) + (by + have h : ((childLH thetaAboveCell000023002100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023002100) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023002100) + (by + have h : ((childLL (childHL thetaAboveCell000023002100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023002100)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023002100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023002100)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023002100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023002100)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023002100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023002100)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023002100) + (by + have h : ((childLL (childHH thetaAboveCell000023002100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023002100)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023002100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023002100)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023002100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023002100)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023002100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023002100)) h)) + +theorem cover_subtree_779aeebb5c73 : + adaptiveCoverCheck 7 thetaAboveCell000023002101 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002101 + (by + have h : ((childLL thetaAboveCell000023002101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023002101) h) + (by + have h : ((childLH thetaAboveCell000023002101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023002101) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023002101) + (by + have h : ((childLL (childHL thetaAboveCell000023002101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023002101)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023002101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023002101)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023002101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023002101)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023002101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023002101)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023002101) + (by + have h : ((childLL (childHH thetaAboveCell000023002101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023002101)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023002101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023002101)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023002101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023002101)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023002101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023002101)) h)) + +theorem cover_subtree_ef8a630852fd : + adaptiveCoverCheck 7 thetaAboveCell000023002102 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002102 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023002102) + (by + have h : ((childLL (childLL thetaAboveCell000023002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023002102)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023002102)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023002102)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023002102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023002102) + (by + have h : ((childLL (childLH thetaAboveCell000023002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023002102)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023002102)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023002102)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023002102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023002102) + (by + have h : ((childLL (childHL thetaAboveCell000023002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023002102)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023002102)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023002102)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023002102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023002102) + (by + have h : ((childLL (childHH thetaAboveCell000023002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023002102)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023002102)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023002102)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023002102)) h)) + +theorem cover_subtree_315ebd923bb4 : + adaptiveCoverCheck 7 thetaAboveCell000023002103 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002103 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023002103) + (by + have h : ((childLL (childLL thetaAboveCell000023002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023002103)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023002103)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023002103)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023002103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023002103) + (by + have h : ((childLL (childLH thetaAboveCell000023002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023002103)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023002103)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023002103)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023002103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023002103) + (by + have h : ((childLL (childHL thetaAboveCell000023002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023002103)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023002103)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023002103)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023002103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023002103) + (by + have h : ((childLL (childHH thetaAboveCell000023002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023002103)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023002103)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023002103)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023002103)) h)) + +theorem cover_subtree_27e55c8a3d8e : + adaptiveCoverCheck 8 (childLL (childLH (childHL thetaAboveCell00002300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL thetaAboveCell00002300))) + cover_subtree_681c28bf7d84 + cover_subtree_779aeebb5c73 + cover_subtree_ef8a630852fd + cover_subtree_315ebd923bb4 + +theorem cover_subtree_6d8f95e98e1d : + adaptiveCoverCheck 7 thetaAboveCell000023002110 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002110 + (by + have h : ((childLL thetaAboveCell000023002110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023002110) h) + (by + have h : ((childLH thetaAboveCell000023002110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023002110) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023002110) + (by + have h : ((childLL (childHL thetaAboveCell000023002110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023002110)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023002110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023002110)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023002110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023002110)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023002110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023002110)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023002110) + (by + have h : ((childLL (childHH thetaAboveCell000023002110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023002110)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023002110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023002110)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023002110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023002110)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023002110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023002110)) h)) + +theorem cover_subtree_d2993040295e : + adaptiveCoverCheck 7 thetaAboveCell000023002111 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002111 + (by + have h : ((childLL thetaAboveCell000023002111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023002111) h) + (by + have h : ((childLH thetaAboveCell000023002111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023002111) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023002111) + (by + have h : ((childLL (childHL thetaAboveCell000023002111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023002111)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023002111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023002111)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023002111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023002111)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023002111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023002111)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023002111) + (by + have h : ((childLL (childHH thetaAboveCell000023002111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023002111)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023002111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023002111)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023002111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023002111)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023002111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023002111)) h)) + +theorem cover_subtree_eb2399542077 : + adaptiveCoverCheck 7 thetaAboveCell000023002112 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002112 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023002112) + (by + have h : ((childLL (childLL thetaAboveCell000023002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023002112)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023002112)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023002112)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023002112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023002112) + (by + have h : ((childLL (childLH thetaAboveCell000023002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023002112)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023002112)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023002112)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023002112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023002112) + (by + have h : ((childLL (childHL thetaAboveCell000023002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023002112)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023002112)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023002112)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023002112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023002112) + (by + have h : ((childLL (childHH thetaAboveCell000023002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023002112)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023002112)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023002112)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023002112)) h)) + +theorem cover_subtree_da276d5ec562 : + adaptiveCoverCheck 7 thetaAboveCell000023002113 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002113 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023002113) + (by + have h : ((childLL (childLL thetaAboveCell000023002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023002113)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023002113)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023002113)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023002113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023002113) + (by + have h : ((childLL (childLH thetaAboveCell000023002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023002113)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023002113)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023002113)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023002113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023002113) + (by + have h : ((childLL (childHL thetaAboveCell000023002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023002113)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023002113)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023002113)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023002113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023002113) + (by + have h : ((childLL (childHH thetaAboveCell000023002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023002113)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023002113)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023002113)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023002113)) h)) + +theorem cover_subtree_0fc1de09da1d : + adaptiveCoverCheck 8 (childLH (childLH (childHL thetaAboveCell00002300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL thetaAboveCell00002300))) + cover_subtree_6d8f95e98e1d + cover_subtree_d2993040295e + cover_subtree_eb2399542077 + cover_subtree_da276d5ec562 + +theorem cover_subtree_b179888799ba : + adaptiveCoverCheck 8 (childHL (childLH (childHL thetaAboveCell00002300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL thetaAboveCell00002300))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002120 + (by + have h : ((childLL thetaAboveCell000023002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023002120) h) + (by + have h : ((childLH thetaAboveCell000023002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023002120) h) + (by + have h : ((childHL thetaAboveCell000023002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023002120) h) + (by + have h : ((childHH thetaAboveCell000023002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023002120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002121 + (by + have h : ((childLL thetaAboveCell000023002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023002121) h) + (by + have h : ((childLH thetaAboveCell000023002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023002121) h) + (by + have h : ((childHL thetaAboveCell000023002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023002121) h) + (by + have h : ((childHH thetaAboveCell000023002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023002121) h)) + (by + have h : (thetaAboveCell000023002122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023002122 h) + (by + have h : (thetaAboveCell000023002123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023002123 h) + +theorem cover_subtree_dfa114599465 : + adaptiveCoverCheck 8 (childHH (childLH (childHL thetaAboveCell00002300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL thetaAboveCell00002300))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002130 + (by + have h : ((childLL thetaAboveCell000023002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023002130) h) + (by + have h : ((childLH thetaAboveCell000023002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023002130) h) + (by + have h : ((childHL thetaAboveCell000023002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023002130) h) + (by + have h : ((childHH thetaAboveCell000023002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023002130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023002131 + (by + have h : ((childLL thetaAboveCell000023002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023002131) h) + (by + have h : ((childLH thetaAboveCell000023002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023002131) h) + (by + have h : ((childHL thetaAboveCell000023002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023002131) h) + (by + have h : ((childHH thetaAboveCell000023002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023002131) h)) + (by + have h : (thetaAboveCell000023002132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023002132 h) + (by + have h : (thetaAboveCell000023002133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023002133 h) + +theorem e24KC2ThetaAboveLeaf0000230021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00002300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00002300)) + cover_subtree_27e55c8a3d8e + cover_subtree_0fc1de09da1d + cover_subtree_b179888799ba + cover_subtree_dfa114599465 +theorem e24KC2ThetaAboveLeaf0000230022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00002300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00002300)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00002300))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00002300))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00002300))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00002300))) h) +theorem e24KC2ThetaAboveLeaf0000230023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00002300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00002300)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00002300))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00002300))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00002300))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00002300))) h) +theorem cover_subtree_889f5da0dfde : + adaptiveCoverCheck 7 thetaAboveCell000023003000 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003000 + (by + have h : ((childLL thetaAboveCell000023003000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023003000) h) + (by + have h : ((childLH thetaAboveCell000023003000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023003000) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023003000) + (by + have h : ((childLL (childHL thetaAboveCell000023003000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023003000)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023003000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023003000)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023003000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023003000)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023003000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023003000)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023003000) + (by + have h : ((childLL (childHH thetaAboveCell000023003000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023003000)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023003000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023003000)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023003000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023003000)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023003000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023003000)) h)) + +theorem cover_subtree_a942590dff68 : + adaptiveCoverCheck 7 thetaAboveCell000023003001 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003001 + (by + have h : ((childLL thetaAboveCell000023003001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023003001) h) + (by + have h : ((childLH thetaAboveCell000023003001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023003001) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023003001) + (by + have h : ((childLL (childHL thetaAboveCell000023003001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023003001)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023003001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023003001)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023003001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023003001)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023003001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023003001)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023003001) + (by + have h : ((childLL (childHH thetaAboveCell000023003001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023003001)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023003001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023003001)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023003001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023003001)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023003001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023003001)) h)) + +theorem cover_subtree_34efc5e5d537 : + adaptiveCoverCheck 7 thetaAboveCell000023003002 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003002 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023003002) + (by + have h : ((childLL (childLL thetaAboveCell000023003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023003002)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023003002)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023003002)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023003002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023003002) + (by + have h : ((childLL (childLH thetaAboveCell000023003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023003002)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023003002)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023003002)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023003002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023003002) + (by + have h : ((childLL (childHL thetaAboveCell000023003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023003002)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023003002)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023003002)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023003002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023003002) + (by + have h : ((childLL (childHH thetaAboveCell000023003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023003002)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023003002)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023003002)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023003002)) h)) + +theorem cover_subtree_808bd571537c : + adaptiveCoverCheck 7 thetaAboveCell000023003003 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003003 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023003003) + (by + have h : ((childLL (childLL thetaAboveCell000023003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023003003)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023003003)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023003003)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023003003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023003003) + (by + have h : ((childLL (childLH thetaAboveCell000023003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023003003)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023003003)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023003003)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023003003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023003003) + (by + have h : ((childLL (childHL thetaAboveCell000023003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023003003)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023003003)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023003003)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023003003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023003003) + (by + have h : ((childLL (childHH thetaAboveCell000023003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023003003)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023003003)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023003003)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023003003)) h)) + +theorem cover_subtree_d6772732d30e : + adaptiveCoverCheck 8 (childLL (childLL (childHH thetaAboveCell00002300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH thetaAboveCell00002300))) + cover_subtree_889f5da0dfde + cover_subtree_a942590dff68 + cover_subtree_34efc5e5d537 + cover_subtree_808bd571537c + +theorem cover_subtree_32b068109428 : + adaptiveCoverCheck 7 thetaAboveCell000023003010 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003010 + (by + have h : ((childLL thetaAboveCell000023003010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023003010) h) + (by + have h : ((childLH thetaAboveCell000023003010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023003010) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023003010) + (by + have h : ((childLL (childHL thetaAboveCell000023003010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023003010)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023003010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023003010)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023003010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023003010)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023003010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023003010)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023003010) + (by + have h : ((childLL (childHH thetaAboveCell000023003010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023003010)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023003010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023003010)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023003010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023003010)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023003010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023003010)) h)) + +theorem cover_subtree_a0bb05b8d428 : + adaptiveCoverCheck 7 thetaAboveCell000023003011 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003011 + (by + have h : ((childLL thetaAboveCell000023003011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023003011) h) + (by + have h : ((childLH thetaAboveCell000023003011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023003011) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023003011) + (by + have h : ((childLL (childHL thetaAboveCell000023003011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023003011)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023003011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023003011)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023003011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023003011)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023003011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023003011)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023003011) + (by + have h : ((childLL (childHH thetaAboveCell000023003011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023003011)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023003011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023003011)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023003011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023003011)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023003011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023003011)) h)) + +theorem cover_subtree_70a4687b5e1a : + adaptiveCoverCheck 7 thetaAboveCell000023003012 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003012 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023003012) + (by + have h : ((childLL (childLL thetaAboveCell000023003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023003012)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023003012)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023003012)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023003012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023003012) + (by + have h : ((childLL (childLH thetaAboveCell000023003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023003012)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023003012)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023003012)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023003012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023003012) + (by + have h : ((childLL (childHL thetaAboveCell000023003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023003012)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023003012)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023003012)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023003012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023003012) + (by + have h : ((childLL (childHH thetaAboveCell000023003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023003012)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023003012)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023003012)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023003012)) h)) + +theorem cover_subtree_4ff3df89e6e6 : + adaptiveCoverCheck 7 thetaAboveCell000023003013 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003013 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023003013) + (by + have h : ((childLL (childLL thetaAboveCell000023003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023003013)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023003013)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023003013)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023003013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023003013) + (by + have h : ((childLL (childLH thetaAboveCell000023003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023003013)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023003013)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023003013)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023003013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023003013) + (by + have h : ((childLL (childHL thetaAboveCell000023003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023003013)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023003013)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023003013)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023003013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023003013) + (by + have h : ((childLL (childHH thetaAboveCell000023003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023003013)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023003013)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023003013)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023003013)) h)) + +theorem cover_subtree_a0bd78863117 : + adaptiveCoverCheck 8 (childLH (childLL (childHH thetaAboveCell00002300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH thetaAboveCell00002300))) + cover_subtree_32b068109428 + cover_subtree_a0bb05b8d428 + cover_subtree_70a4687b5e1a + cover_subtree_4ff3df89e6e6 + +theorem cover_subtree_f223ac82735f : + adaptiveCoverCheck 8 (childHL (childLL (childHH thetaAboveCell00002300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH thetaAboveCell00002300))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003020 + (by + have h : ((childLL thetaAboveCell000023003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023003020) h) + (by + have h : ((childLH thetaAboveCell000023003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023003020) h) + (by + have h : ((childHL thetaAboveCell000023003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023003020) h) + (by + have h : ((childHH thetaAboveCell000023003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023003020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003021 + (by + have h : ((childLL thetaAboveCell000023003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023003021) h) + (by + have h : ((childLH thetaAboveCell000023003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023003021) h) + (by + have h : ((childHL thetaAboveCell000023003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023003021) h) + (by + have h : ((childHH thetaAboveCell000023003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023003021) h)) + (by + have h : (thetaAboveCell000023003022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023003022 h) + (by + have h : (thetaAboveCell000023003023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023003023 h) + +theorem cover_subtree_e57b220fb2b2 : + adaptiveCoverCheck 8 (childHH (childLL (childHH thetaAboveCell00002300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH thetaAboveCell00002300))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003030 + (by + have h : ((childLL thetaAboveCell000023003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023003030) h) + (by + have h : ((childLH thetaAboveCell000023003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023003030) h) + (by + have h : ((childHL thetaAboveCell000023003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023003030) h) + (by + have h : ((childHH thetaAboveCell000023003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023003030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003031 + (by + have h : ((childLL thetaAboveCell000023003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023003031) h) + (by + have h : ((childLH thetaAboveCell000023003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023003031) h) + (by + have h : ((childHL thetaAboveCell000023003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023003031) h) + (by + have h : ((childHH thetaAboveCell000023003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023003031) h)) + (by + have h : (thetaAboveCell000023003032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023003032 h) + (by + have h : (thetaAboveCell000023003033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023003033 h) + +theorem e24KC2ThetaAboveLeaf0000230030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00002300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00002300)) + cover_subtree_d6772732d30e + cover_subtree_a0bd78863117 + cover_subtree_f223ac82735f + cover_subtree_e57b220fb2b2 +theorem cover_subtree_6632af055f6f : + adaptiveCoverCheck 7 thetaAboveCell000023003100 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003100 + (by + have h : ((childLL thetaAboveCell000023003100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023003100) h) + (by + have h : ((childLH thetaAboveCell000023003100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023003100) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023003100) + (by + have h : ((childLL (childHL thetaAboveCell000023003100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023003100)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023003100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023003100)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023003100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023003100)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023003100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023003100)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023003100) + (by + have h : ((childLL (childHH thetaAboveCell000023003100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023003100)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023003100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023003100)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023003100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023003100)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023003100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023003100)) h)) + +theorem cover_subtree_0ed63a4c90ba : + adaptiveCoverCheck 7 thetaAboveCell000023003101 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003101 + (by + have h : ((childLL thetaAboveCell000023003101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023003101) h) + (by + have h : ((childLH thetaAboveCell000023003101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023003101) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023003101) + (by + have h : ((childLL (childHL thetaAboveCell000023003101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023003101)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023003101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023003101)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023003101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023003101)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023003101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023003101)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023003101) + (by + have h : ((childLL (childHH thetaAboveCell000023003101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023003101)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023003101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023003101)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023003101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023003101)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023003101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023003101)) h)) + +theorem cover_subtree_540084271e05 : + adaptiveCoverCheck 7 thetaAboveCell000023003102 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003102 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023003102) + (by + have h : ((childLL (childLL thetaAboveCell000023003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023003102)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023003102)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023003102)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023003102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023003102) + (by + have h : ((childLL (childLH thetaAboveCell000023003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023003102)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023003102)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023003102)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023003102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023003102) + (by + have h : ((childLL (childHL thetaAboveCell000023003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023003102)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023003102)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023003102)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023003102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023003102) + (by + have h : ((childLL (childHH thetaAboveCell000023003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023003102)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023003102)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023003102)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023003102)) h)) + +theorem cover_subtree_17438f0398bf : + adaptiveCoverCheck 7 thetaAboveCell000023003103 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003103 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023003103) + (by + have h : ((childLL (childLL thetaAboveCell000023003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023003103)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023003103)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023003103)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023003103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023003103) + (by + have h : ((childLL (childLH thetaAboveCell000023003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023003103)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023003103)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023003103)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023003103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023003103) + (by + have h : ((childLL (childHL thetaAboveCell000023003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023003103)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023003103)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023003103)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023003103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023003103) + (by + have h : ((childLL (childHH thetaAboveCell000023003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023003103)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023003103)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023003103)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023003103)) h)) + +theorem cover_subtree_694b687a682b : + adaptiveCoverCheck 8 (childLL (childLH (childHH thetaAboveCell00002300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH thetaAboveCell00002300))) + cover_subtree_6632af055f6f + cover_subtree_0ed63a4c90ba + cover_subtree_540084271e05 + cover_subtree_17438f0398bf + +theorem cover_subtree_58d260377aaf : + adaptiveCoverCheck 7 thetaAboveCell000023003110 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003110 + (by + have h : ((childLL thetaAboveCell000023003110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023003110) h) + (by + have h : ((childLH thetaAboveCell000023003110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023003110) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023003110) + (by + have h : ((childLL (childHL thetaAboveCell000023003110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023003110)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023003110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023003110)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023003110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023003110)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023003110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023003110)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023003110) + (by + have h : ((childLL (childHH thetaAboveCell000023003110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023003110)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023003110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023003110)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023003110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023003110)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023003110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023003110)) h)) + +theorem cover_subtree_914c54a898af : + adaptiveCoverCheck 7 thetaAboveCell000023003111 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003111 + (by + have h : ((childLL thetaAboveCell000023003111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023003111) h) + (by + have h : ((childLH thetaAboveCell000023003111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023003111) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023003111) + (by + have h : ((childLL (childHL thetaAboveCell000023003111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023003111)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023003111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023003111)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023003111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023003111)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023003111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023003111)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023003111) + (by + have h : ((childLL (childHH thetaAboveCell000023003111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023003111)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023003111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023003111)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023003111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023003111)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023003111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023003111)) h)) + +theorem cover_subtree_338e908ef3ba : + adaptiveCoverCheck 7 thetaAboveCell000023003112 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003112 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023003112) + (by + have h : ((childLL (childLL thetaAboveCell000023003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023003112)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023003112)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023003112)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023003112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023003112) + (by + have h : ((childLL (childLH thetaAboveCell000023003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023003112)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023003112)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023003112)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023003112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023003112) + (by + have h : ((childLL (childHL thetaAboveCell000023003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023003112)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023003112)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023003112)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023003112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023003112) + (by + have h : ((childLL (childHH thetaAboveCell000023003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023003112)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023003112)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023003112)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023003112)) h)) + +theorem cover_subtree_81566ac30c71 : + adaptiveCoverCheck 7 thetaAboveCell000023003113 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003113 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023003113) + (by + have h : ((childLL (childLL thetaAboveCell000023003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023003113)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023003113)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023003113)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023003113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023003113) + (by + have h : ((childLL (childLH thetaAboveCell000023003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023003113)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023003113)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023003113)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023003113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023003113) + (by + have h : ((childLL (childHL thetaAboveCell000023003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023003113)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023003113)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023003113)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023003113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023003113) + (by + have h : ((childLL (childHH thetaAboveCell000023003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023003113)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023003113)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023003113)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023003113)) h)) + +theorem cover_subtree_d79efead209d : + adaptiveCoverCheck 8 (childLH (childLH (childHH thetaAboveCell00002300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH thetaAboveCell00002300))) + cover_subtree_58d260377aaf + cover_subtree_914c54a898af + cover_subtree_338e908ef3ba + cover_subtree_81566ac30c71 + +theorem cover_subtree_9f7611e92013 : + adaptiveCoverCheck 8 (childHL (childLH (childHH thetaAboveCell00002300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH thetaAboveCell00002300))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003120 + (by + have h : ((childLL thetaAboveCell000023003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023003120) h) + (by + have h : ((childLH thetaAboveCell000023003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023003120) h) + (by + have h : ((childHL thetaAboveCell000023003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023003120) h) + (by + have h : ((childHH thetaAboveCell000023003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023003120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003121 + (by + have h : ((childLL thetaAboveCell000023003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023003121) h) + (by + have h : ((childLH thetaAboveCell000023003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023003121) h) + (by + have h : ((childHL thetaAboveCell000023003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023003121) h) + (by + have h : ((childHH thetaAboveCell000023003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023003121) h)) + (by + have h : (thetaAboveCell000023003122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023003122 h) + (by + have h : (thetaAboveCell000023003123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023003123 h) + +theorem cover_subtree_5a6e4c62f563 : + adaptiveCoverCheck 8 (childHH (childLH (childHH thetaAboveCell00002300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH thetaAboveCell00002300))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003130 + (by + have h : ((childLL thetaAboveCell000023003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023003130) h) + (by + have h : ((childLH thetaAboveCell000023003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023003130) h) + (by + have h : ((childHL thetaAboveCell000023003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023003130) h) + (by + have h : ((childHH thetaAboveCell000023003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023003130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023003131 + (by + have h : ((childLL thetaAboveCell000023003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023003131) h) + (by + have h : ((childLH thetaAboveCell000023003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023003131) h) + (by + have h : ((childHL thetaAboveCell000023003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023003131) h) + (by + have h : ((childHH thetaAboveCell000023003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023003131) h)) + (by + have h : (thetaAboveCell000023003132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023003132 h) + (by + have h : (thetaAboveCell000023003133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023003133 h) + +theorem e24KC2ThetaAboveLeaf0000230031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00002300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00002300)) + cover_subtree_694b687a682b + cover_subtree_d79efead209d + cover_subtree_9f7611e92013 + cover_subtree_5a6e4c62f563 +theorem e24KC2ThetaAboveLeaf0000230032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00002300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00002300)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00002300))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00002300))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00002300))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00002300))) h) +theorem e24KC2ThetaAboveLeaf0000230033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00002300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00002300)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00002300))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00002300))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00002300))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00002300))) h) +theorem e24KC2ThetaAboveLeaf0000230102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00002301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00002301)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00002301))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00002301))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childLL + thetaAboveCell00002301))) + (by + have h : (thetaAboveCell000023010220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023010220 h) + (by + have h : (thetaAboveCell000023010221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023010221 h) + (by + have h : (thetaAboveCell000023010222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023010222 h) + (by + have h : (thetaAboveCell000023010223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023010223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childLL + thetaAboveCell00002301))) + (by + have h : (thetaAboveCell000023010230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023010230 h) + (by + have h : (thetaAboveCell000023010231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023010231 h) + (by + have h : (thetaAboveCell000023010232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023010232 h) + (by + have h : (thetaAboveCell000023010233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023010233 h)) +theorem e24KC2ThetaAboveLeaf0000230103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00002301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00002301)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00002301))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00002301))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childLL + thetaAboveCell00002301))) + (by + have h : (thetaAboveCell000023010320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023010320 h) + (by + have h : (thetaAboveCell000023010321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023010321 h) + (by + have h : (thetaAboveCell000023010322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023010322 h) + (by + have h : (thetaAboveCell000023010323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023010323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childLL + thetaAboveCell00002301))) + (by + have h : (thetaAboveCell000023010330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023010330 h) + (by + have h : (thetaAboveCell000023010331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023010331 h) + (by + have h : (thetaAboveCell000023010332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023010332 h) + (by + have h : (thetaAboveCell000023010333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023010333 h)) +theorem e24KC2ThetaAboveLeaf0000230112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00002301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00002301)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00002301))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00002301))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childLH + thetaAboveCell00002301))) + (by + have h : (thetaAboveCell000023011220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023011220 h) + (by + have h : (thetaAboveCell000023011221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023011221 h) + (by + have h : (thetaAboveCell000023011222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023011222 h) + (by + have h : (thetaAboveCell000023011223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023011223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childLH + thetaAboveCell00002301))) + (by + have h : (thetaAboveCell000023011230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023011230 h) + (by + have h : (thetaAboveCell000023011231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023011231 h) + (by + have h : (thetaAboveCell000023011232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023011232 h) + (by + have h : (thetaAboveCell000023011233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023011233 h)) +theorem e24KC2ThetaAboveLeaf0000230113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00002301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00002301)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00002301))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00002301))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childLH + thetaAboveCell00002301))) + (by + have h : (thetaAboveCell000023011320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023011320 h) + (by + have h : (thetaAboveCell000023011321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023011321 h) + (by + have h : (thetaAboveCell000023011322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023011322 h) + (by + have h : (thetaAboveCell000023011323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023011323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childLH + thetaAboveCell00002301))) + (by + have h : (thetaAboveCell000023011330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023011330 h) + (by + have h : (thetaAboveCell000023011331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023011331 h) + (by + have h : (thetaAboveCell000023011332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023011332 h) + (by + have h : (thetaAboveCell000023011333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023011333 h)) +theorem cover_subtree_97a6e5a0f9c0 : + adaptiveCoverCheck 7 thetaAboveCell000023012000 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012000 + (by + have h : ((childLL thetaAboveCell000023012000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023012000) h) + (by + have h : ((childLH thetaAboveCell000023012000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023012000) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023012000) + (by + have h : ((childLL (childHL thetaAboveCell000023012000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023012000)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023012000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023012000)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023012000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023012000)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023012000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023012000)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023012000) + (by + have h : ((childLL (childHH thetaAboveCell000023012000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023012000)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023012000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023012000)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023012000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023012000)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023012000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023012000)) h)) + +theorem cover_subtree_b0cb05399587 : + adaptiveCoverCheck 7 thetaAboveCell000023012001 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012001 + (by + have h : ((childLL thetaAboveCell000023012001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023012001) h) + (by + have h : ((childLH thetaAboveCell000023012001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023012001) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023012001) + (by + have h : ((childLL (childHL thetaAboveCell000023012001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023012001)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023012001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023012001)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023012001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023012001)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023012001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023012001)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023012001) + (by + have h : ((childLL (childHH thetaAboveCell000023012001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023012001)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023012001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023012001)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023012001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023012001)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023012001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023012001)) h)) + +theorem cover_subtree_ec160a01c291 : + adaptiveCoverCheck 7 thetaAboveCell000023012002 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012002 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023012002) + (by + have h : ((childLL (childLL thetaAboveCell000023012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023012002)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023012002)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023012002)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023012002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023012002) + (by + have h : ((childLL (childLH thetaAboveCell000023012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023012002)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023012002)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023012002)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023012002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023012002) + (by + have h : ((childLL (childHL thetaAboveCell000023012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023012002)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023012002)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023012002)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023012002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023012002) + (by + have h : ((childLL (childHH thetaAboveCell000023012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023012002)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023012002)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023012002)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023012002)) h)) + +theorem cover_subtree_01b50c333c69 : + adaptiveCoverCheck 7 thetaAboveCell000023012003 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012003 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023012003) + (by + have h : ((childLL (childLL thetaAboveCell000023012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023012003)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023012003)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023012003)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023012003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023012003) + (by + have h : ((childLL (childLH thetaAboveCell000023012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023012003)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023012003)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023012003)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023012003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023012003) + (by + have h : ((childLL (childHL thetaAboveCell000023012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023012003)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023012003)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023012003)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023012003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023012003) + (by + have h : ((childLL (childHH thetaAboveCell000023012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023012003)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023012003)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023012003)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023012003)) h)) + +theorem cover_subtree_672879a40a99 : + adaptiveCoverCheck 8 (childLL (childLL (childHL thetaAboveCell00002301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL thetaAboveCell00002301))) + cover_subtree_97a6e5a0f9c0 + cover_subtree_b0cb05399587 + cover_subtree_ec160a01c291 + cover_subtree_01b50c333c69 + +theorem cover_subtree_d4f66ebe8c34 : + adaptiveCoverCheck 7 thetaAboveCell000023012010 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012010 + (by + have h : ((childLL thetaAboveCell000023012010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023012010) h) + (by + have h : ((childLH thetaAboveCell000023012010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023012010) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023012010) + (by + have h : ((childLL (childHL thetaAboveCell000023012010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023012010)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023012010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023012010)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023012010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023012010)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023012010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023012010)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023012010) + (by + have h : ((childLL (childHH thetaAboveCell000023012010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023012010)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023012010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023012010)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023012010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023012010)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023012010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023012010)) h)) + +theorem cover_subtree_2daeb5f0aede : + adaptiveCoverCheck 7 thetaAboveCell000023012011 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012011 + (by + have h : ((childLL thetaAboveCell000023012011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023012011) h) + (by + have h : ((childLH thetaAboveCell000023012011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023012011) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023012011) + (by + have h : ((childLL (childHL thetaAboveCell000023012011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023012011)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023012011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023012011)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023012011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023012011)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023012011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023012011)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023012011) + (by + have h : ((childLL (childHH thetaAboveCell000023012011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023012011)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023012011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023012011)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023012011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023012011)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023012011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023012011)) h)) + +theorem cover_subtree_0a19cf9c168e : + adaptiveCoverCheck 7 thetaAboveCell000023012012 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012012 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023012012) + (by + have h : ((childLL (childLL thetaAboveCell000023012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023012012)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023012012)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023012012)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023012012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023012012) + (by + have h : ((childLL (childLH thetaAboveCell000023012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023012012)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023012012)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023012012)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023012012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023012012) + (by + have h : ((childLL (childHL thetaAboveCell000023012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023012012)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023012012)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023012012)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023012012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023012012) + (by + have h : ((childLL (childHH thetaAboveCell000023012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023012012)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023012012)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023012012)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023012012)) h)) + +theorem cover_subtree_5397c7c8c770 : + adaptiveCoverCheck 7 thetaAboveCell000023012013 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012013 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023012013) + (by + have h : ((childLL (childLL thetaAboveCell000023012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023012013)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023012013)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023012013)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023012013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023012013) + (by + have h : ((childLL (childLH thetaAboveCell000023012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023012013)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023012013)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023012013)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023012013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023012013) + (by + have h : ((childLL (childHL thetaAboveCell000023012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023012013)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023012013)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023012013)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023012013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023012013) + (by + have h : ((childLL (childHH thetaAboveCell000023012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023012013)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023012013)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023012013)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023012013)) h)) + +theorem cover_subtree_857a1aa148c2 : + adaptiveCoverCheck 8 (childLH (childLL (childHL thetaAboveCell00002301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL thetaAboveCell00002301))) + cover_subtree_d4f66ebe8c34 + cover_subtree_2daeb5f0aede + cover_subtree_0a19cf9c168e + cover_subtree_5397c7c8c770 + +theorem cover_subtree_334f666b102f : + adaptiveCoverCheck 8 (childHL (childLL (childHL thetaAboveCell00002301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL thetaAboveCell00002301))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012020 + (by + have h : ((childLL thetaAboveCell000023012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023012020) h) + (by + have h : ((childLH thetaAboveCell000023012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023012020) h) + (by + have h : ((childHL thetaAboveCell000023012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023012020) h) + (by + have h : ((childHH thetaAboveCell000023012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023012020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012021 + (by + have h : ((childLL thetaAboveCell000023012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023012021) h) + (by + have h : ((childLH thetaAboveCell000023012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023012021) h) + (by + have h : ((childHL thetaAboveCell000023012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023012021) h) + (by + have h : ((childHH thetaAboveCell000023012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023012021) h)) + (by + have h : (thetaAboveCell000023012022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023012022 h) + (by + have h : (thetaAboveCell000023012023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023012023 h) + +theorem cover_subtree_f871df99dda8 : + adaptiveCoverCheck 8 (childHH (childLL (childHL thetaAboveCell00002301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL thetaAboveCell00002301))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012030 + (by + have h : ((childLL thetaAboveCell000023012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023012030) h) + (by + have h : ((childLH thetaAboveCell000023012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023012030) h) + (by + have h : ((childHL thetaAboveCell000023012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023012030) h) + (by + have h : ((childHH thetaAboveCell000023012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023012030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012031 + (by + have h : ((childLL thetaAboveCell000023012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023012031) h) + (by + have h : ((childLH thetaAboveCell000023012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023012031) h) + (by + have h : ((childHL thetaAboveCell000023012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023012031) h) + (by + have h : ((childHH thetaAboveCell000023012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023012031) h)) + (by + have h : (thetaAboveCell000023012032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023012032 h) + (by + have h : (thetaAboveCell000023012033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023012033 h) + +theorem e24KC2ThetaAboveLeaf0000230120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00002301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00002301)) + cover_subtree_672879a40a99 + cover_subtree_857a1aa148c2 + cover_subtree_334f666b102f + cover_subtree_f871df99dda8 +theorem cover_subtree_82ae04dee4d4 : + adaptiveCoverCheck 7 thetaAboveCell000023012100 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012100 + (by + have h : ((childLL thetaAboveCell000023012100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023012100) h) + (by + have h : ((childLH thetaAboveCell000023012100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023012100) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023012100) + (by + have h : ((childLL (childHL thetaAboveCell000023012100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023012100)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023012100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023012100)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023012100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023012100)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023012100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023012100)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023012100) + (by + have h : ((childLL (childHH thetaAboveCell000023012100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023012100)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023012100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023012100)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023012100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023012100)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023012100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023012100)) h)) + +theorem cover_subtree_e5b18c272c0b : + adaptiveCoverCheck 7 thetaAboveCell000023012101 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012101 + (by + have h : ((childLL thetaAboveCell000023012101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023012101) h) + (by + have h : ((childLH thetaAboveCell000023012101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023012101) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023012101) + (by + have h : ((childLL (childHL thetaAboveCell000023012101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023012101)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023012101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023012101)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023012101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023012101)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023012101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023012101)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023012101) + (by + have h : ((childLL (childHH thetaAboveCell000023012101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023012101)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023012101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023012101)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023012101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023012101)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023012101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023012101)) h)) + +theorem cover_subtree_9c247030adc1 : + adaptiveCoverCheck 7 thetaAboveCell000023012102 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012102 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023012102) + (by + have h : ((childLL (childLL thetaAboveCell000023012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023012102)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023012102)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023012102)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023012102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023012102) + (by + have h : ((childLL (childLH thetaAboveCell000023012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023012102)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023012102)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023012102)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023012102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023012102) + (by + have h : ((childLL (childHL thetaAboveCell000023012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023012102)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023012102)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023012102)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023012102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023012102) + (by + have h : ((childLL (childHH thetaAboveCell000023012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023012102)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023012102)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023012102)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023012102)) h)) + +theorem cover_subtree_058bb465c064 : + adaptiveCoverCheck 7 thetaAboveCell000023012103 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012103 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023012103) + (by + have h : ((childLL (childLL thetaAboveCell000023012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023012103)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023012103)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023012103)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023012103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023012103) + (by + have h : ((childLL (childLH thetaAboveCell000023012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023012103)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023012103)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023012103)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023012103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023012103) + (by + have h : ((childLL (childHL thetaAboveCell000023012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023012103)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023012103)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023012103)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023012103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023012103) + (by + have h : ((childLL (childHH thetaAboveCell000023012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023012103)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023012103)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023012103)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023012103)) h)) + +theorem cover_subtree_9278d082fba6 : + adaptiveCoverCheck 8 (childLL (childLH (childHL thetaAboveCell00002301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL thetaAboveCell00002301))) + cover_subtree_82ae04dee4d4 + cover_subtree_e5b18c272c0b + cover_subtree_9c247030adc1 + cover_subtree_058bb465c064 + +theorem cover_subtree_8e71329f2820 : + adaptiveCoverCheck 7 thetaAboveCell000023012110 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012110 + (by + have h : ((childLL thetaAboveCell000023012110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023012110) h) + (by + have h : ((childLH thetaAboveCell000023012110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023012110) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023012110) + (by + have h : ((childLL (childHL thetaAboveCell000023012110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023012110)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023012110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023012110)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023012110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023012110)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023012110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023012110)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023012110) + (by + have h : ((childLL (childHH thetaAboveCell000023012110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023012110)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023012110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023012110)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023012110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023012110)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023012110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023012110)) h)) + +theorem cover_subtree_31c6f84c8564 : + adaptiveCoverCheck 7 thetaAboveCell000023012111 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012111 + (by + have h : ((childLL thetaAboveCell000023012111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023012111) h) + (by + have h : ((childLH thetaAboveCell000023012111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023012111) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023012111) + (by + have h : ((childLL (childHL thetaAboveCell000023012111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023012111)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023012111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023012111)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023012111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023012111)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023012111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023012111)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023012111) + (by + have h : ((childLL (childHH thetaAboveCell000023012111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023012111)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023012111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023012111)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023012111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023012111)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023012111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023012111)) h)) + +theorem cover_subtree_c08a134eb452 : + adaptiveCoverCheck 7 thetaAboveCell000023012112 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012112 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023012112) + (by + have h : ((childLL (childLL thetaAboveCell000023012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023012112)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023012112)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023012112)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023012112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023012112) + (by + have h : ((childLL (childLH thetaAboveCell000023012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023012112)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023012112)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023012112)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023012112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023012112) + (by + have h : ((childLL (childHL thetaAboveCell000023012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023012112)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023012112)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023012112)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023012112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023012112) + (by + have h : ((childLL (childHH thetaAboveCell000023012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023012112)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023012112)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023012112)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023012112)) h)) + +theorem cover_subtree_90cbd7801a03 : + adaptiveCoverCheck 7 thetaAboveCell000023012113 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012113 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023012113) + (by + have h : ((childLL (childLL thetaAboveCell000023012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023012113)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023012113)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023012113)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023012113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023012113) + (by + have h : ((childLL (childLH thetaAboveCell000023012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023012113)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023012113)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023012113)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023012113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023012113) + (by + have h : ((childLL (childHL thetaAboveCell000023012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023012113)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023012113)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023012113)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023012113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023012113) + (by + have h : ((childLL (childHH thetaAboveCell000023012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023012113)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023012113)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023012113)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023012113)) h)) + +theorem cover_subtree_f310f207f337 : + adaptiveCoverCheck 8 (childLH (childLH (childHL thetaAboveCell00002301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL thetaAboveCell00002301))) + cover_subtree_8e71329f2820 + cover_subtree_31c6f84c8564 + cover_subtree_c08a134eb452 + cover_subtree_90cbd7801a03 + +theorem cover_subtree_81898220a27c : + adaptiveCoverCheck 8 (childHL (childLH (childHL thetaAboveCell00002301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL thetaAboveCell00002301))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012120 + (by + have h : ((childLL thetaAboveCell000023012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023012120) h) + (by + have h : ((childLH thetaAboveCell000023012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023012120) h) + (by + have h : ((childHL thetaAboveCell000023012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023012120) h) + (by + have h : ((childHH thetaAboveCell000023012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023012120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012121 + (by + have h : ((childLL thetaAboveCell000023012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023012121) h) + (by + have h : ((childLH thetaAboveCell000023012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023012121) h) + (by + have h : ((childHL thetaAboveCell000023012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023012121) h) + (by + have h : ((childHH thetaAboveCell000023012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023012121) h)) + (by + have h : (thetaAboveCell000023012122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023012122 h) + (by + have h : (thetaAboveCell000023012123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023012123 h) + +theorem cover_subtree_d001d1c55e17 : + adaptiveCoverCheck 8 (childHH (childLH (childHL thetaAboveCell00002301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL thetaAboveCell00002301))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012130 + (by + have h : ((childLL thetaAboveCell000023012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023012130) h) + (by + have h : ((childLH thetaAboveCell000023012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023012130) h) + (by + have h : ((childHL thetaAboveCell000023012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023012130) h) + (by + have h : ((childHH thetaAboveCell000023012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023012130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023012131 + (by + have h : ((childLL thetaAboveCell000023012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023012131) h) + (by + have h : ((childLH thetaAboveCell000023012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023012131) h) + (by + have h : ((childHL thetaAboveCell000023012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023012131) h) + (by + have h : ((childHH thetaAboveCell000023012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023012131) h)) + (by + have h : (thetaAboveCell000023012132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023012132 h) + (by + have h : (thetaAboveCell000023012133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023012133 h) + +theorem e24KC2ThetaAboveLeaf0000230121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00002301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00002301)) + cover_subtree_9278d082fba6 + cover_subtree_f310f207f337 + cover_subtree_81898220a27c + cover_subtree_d001d1c55e17 +theorem e24KC2ThetaAboveLeaf0000230122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00002301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00002301)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00002301))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00002301))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00002301))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00002301))) h) +theorem e24KC2ThetaAboveLeaf0000230123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00002301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00002301)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00002301))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00002301))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00002301))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00002301))) h) +theorem cover_subtree_1956171ef0f4 : + adaptiveCoverCheck 7 thetaAboveCell000023013000 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013000 + (by + have h : ((childLL thetaAboveCell000023013000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023013000) h) + (by + have h : ((childLH thetaAboveCell000023013000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023013000) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023013000) + (by + have h : ((childLL (childHL thetaAboveCell000023013000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023013000)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023013000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023013000)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023013000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023013000)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023013000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023013000)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023013000) + (by + have h : ((childLL (childHH thetaAboveCell000023013000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023013000)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023013000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023013000)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023013000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023013000)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023013000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023013000)) h)) + +theorem cover_subtree_d3d741223709 : + adaptiveCoverCheck 7 thetaAboveCell000023013001 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013001 + (by + have h : ((childLL thetaAboveCell000023013001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023013001) h) + (by + have h : ((childLH thetaAboveCell000023013001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023013001) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023013001) + (by + have h : ((childLL (childHL thetaAboveCell000023013001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023013001)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023013001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023013001)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023013001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023013001)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023013001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023013001)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023013001) + (by + have h : ((childLL (childHH thetaAboveCell000023013001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023013001)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023013001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023013001)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023013001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023013001)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023013001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023013001)) h)) + +theorem cover_subtree_c4ce6eecc651 : + adaptiveCoverCheck 7 thetaAboveCell000023013002 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013002 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023013002) + (by + have h : ((childLL (childLL thetaAboveCell000023013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023013002)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023013002)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023013002)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023013002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023013002) + (by + have h : ((childLL (childLH thetaAboveCell000023013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023013002)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023013002)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023013002)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023013002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023013002) + (by + have h : ((childLL (childHL thetaAboveCell000023013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023013002)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023013002)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023013002)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023013002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023013002) + (by + have h : ((childLL (childHH thetaAboveCell000023013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023013002)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023013002)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023013002)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023013002)) h)) + +theorem cover_subtree_764c189c1428 : + adaptiveCoverCheck 7 thetaAboveCell000023013003 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013003 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023013003) + (by + have h : ((childLL (childLL thetaAboveCell000023013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023013003)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023013003)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023013003)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023013003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023013003) + (by + have h : ((childLL (childLH thetaAboveCell000023013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023013003)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023013003)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023013003)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023013003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023013003) + (by + have h : ((childLL (childHL thetaAboveCell000023013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023013003)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023013003)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023013003)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023013003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023013003) + (by + have h : ((childLL (childHH thetaAboveCell000023013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023013003)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023013003)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023013003)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023013003)) h)) + +theorem cover_subtree_d1b1d3400177 : + adaptiveCoverCheck 8 (childLL (childLL (childHH thetaAboveCell00002301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH thetaAboveCell00002301))) + cover_subtree_1956171ef0f4 + cover_subtree_d3d741223709 + cover_subtree_c4ce6eecc651 + cover_subtree_764c189c1428 + +theorem cover_subtree_7d1a2c16b724 : + adaptiveCoverCheck 7 thetaAboveCell000023013010 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013010 + (by + have h : ((childLL thetaAboveCell000023013010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023013010) h) + (by + have h : ((childLH thetaAboveCell000023013010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023013010) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023013010) + (by + have h : ((childLL (childHL thetaAboveCell000023013010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023013010)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023013010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023013010)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023013010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023013010)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023013010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023013010)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023013010) + (by + have h : ((childLL (childHH thetaAboveCell000023013010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023013010)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023013010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023013010)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023013010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023013010)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023013010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023013010)) h)) + +theorem cover_subtree_7a802d18a6f2 : + adaptiveCoverCheck 7 thetaAboveCell000023013011 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013011 + (by + have h : ((childLL thetaAboveCell000023013011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023013011) h) + (by + have h : ((childLH thetaAboveCell000023013011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023013011) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023013011) + (by + have h : ((childLL (childHL thetaAboveCell000023013011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023013011)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023013011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023013011)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023013011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023013011)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023013011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023013011)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023013011) + (by + have h : ((childLL (childHH thetaAboveCell000023013011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023013011)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023013011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023013011)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023013011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023013011)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023013011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023013011)) h)) + +theorem cover_subtree_7e8d1889716b : + adaptiveCoverCheck 7 thetaAboveCell000023013012 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013012 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023013012) + (by + have h : ((childLL (childLL thetaAboveCell000023013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023013012)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023013012)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023013012)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023013012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023013012) + (by + have h : ((childLL (childLH thetaAboveCell000023013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023013012)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023013012)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023013012)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023013012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023013012) + (by + have h : ((childLL (childHL thetaAboveCell000023013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023013012)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023013012)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023013012)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023013012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023013012) + (by + have h : ((childLL (childHH thetaAboveCell000023013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023013012)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023013012)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023013012)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023013012)) h)) + +theorem cover_subtree_6291f06ec5a0 : + adaptiveCoverCheck 7 thetaAboveCell000023013013 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013013 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023013013) + (by + have h : ((childLL (childLL thetaAboveCell000023013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023013013)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023013013)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023013013)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023013013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023013013) + (by + have h : ((childLL (childLH thetaAboveCell000023013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023013013)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023013013)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023013013)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023013013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023013013) + (by + have h : ((childLL (childHL thetaAboveCell000023013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023013013)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023013013)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023013013)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023013013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023013013) + (by + have h : ((childLL (childHH thetaAboveCell000023013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023013013)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023013013)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023013013)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023013013)) h)) + +theorem cover_subtree_60b54bf255b1 : + adaptiveCoverCheck 8 (childLH (childLL (childHH thetaAboveCell00002301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH thetaAboveCell00002301))) + cover_subtree_7d1a2c16b724 + cover_subtree_7a802d18a6f2 + cover_subtree_7e8d1889716b + cover_subtree_6291f06ec5a0 + +theorem cover_subtree_1e3ac8710eca : + adaptiveCoverCheck 8 (childHL (childLL (childHH thetaAboveCell00002301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH thetaAboveCell00002301))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013020 + (by + have h : ((childLL thetaAboveCell000023013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023013020) h) + (by + have h : ((childLH thetaAboveCell000023013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023013020) h) + (by + have h : ((childHL thetaAboveCell000023013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023013020) h) + (by + have h : ((childHH thetaAboveCell000023013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023013020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013021 + (by + have h : ((childLL thetaAboveCell000023013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023013021) h) + (by + have h : ((childLH thetaAboveCell000023013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023013021) h) + (by + have h : ((childHL thetaAboveCell000023013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023013021) h) + (by + have h : ((childHH thetaAboveCell000023013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023013021) h)) + (by + have h : (thetaAboveCell000023013022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023013022 h) + (by + have h : (thetaAboveCell000023013023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023013023 h) + +theorem cover_subtree_7c913110e3c1 : + adaptiveCoverCheck 8 (childHH (childLL (childHH thetaAboveCell00002301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH thetaAboveCell00002301))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013030 + (by + have h : ((childLL thetaAboveCell000023013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023013030) h) + (by + have h : ((childLH thetaAboveCell000023013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023013030) h) + (by + have h : ((childHL thetaAboveCell000023013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023013030) h) + (by + have h : ((childHH thetaAboveCell000023013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023013030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013031 + (by + have h : ((childLL thetaAboveCell000023013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023013031) h) + (by + have h : ((childLH thetaAboveCell000023013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023013031) h) + (by + have h : ((childHL thetaAboveCell000023013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023013031) h) + (by + have h : ((childHH thetaAboveCell000023013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023013031) h)) + (by + have h : (thetaAboveCell000023013032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023013032 h) + (by + have h : (thetaAboveCell000023013033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023013033 h) + +theorem e24KC2ThetaAboveLeaf0000230130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00002301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00002301)) + cover_subtree_d1b1d3400177 + cover_subtree_60b54bf255b1 + cover_subtree_1e3ac8710eca + cover_subtree_7c913110e3c1 +theorem cover_subtree_45e055a15e46 : + adaptiveCoverCheck 7 thetaAboveCell000023013100 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013100 + (by + have h : ((childLL thetaAboveCell000023013100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023013100) h) + (by + have h : ((childLH thetaAboveCell000023013100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023013100) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023013100) + (by + have h : ((childLL (childHL thetaAboveCell000023013100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023013100)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023013100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023013100)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023013100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023013100)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023013100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023013100)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023013100) + (by + have h : ((childLL (childHH thetaAboveCell000023013100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023013100)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023013100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023013100)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023013100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023013100)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023013100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023013100)) h)) + +theorem cover_subtree_027a6b743c2f : + adaptiveCoverCheck 7 thetaAboveCell000023013101 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013101 + (by + have h : ((childLL thetaAboveCell000023013101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023013101) h) + (by + have h : ((childLH thetaAboveCell000023013101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023013101) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023013101) + (by + have h : ((childLL (childHL thetaAboveCell000023013101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023013101)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023013101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023013101)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023013101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023013101)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023013101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023013101)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023013101) + (by + have h : ((childLL (childHH thetaAboveCell000023013101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023013101)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023013101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023013101)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023013101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023013101)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023013101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023013101)) h)) + +theorem cover_subtree_2814d469dde6 : + adaptiveCoverCheck 7 thetaAboveCell000023013102 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013102 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023013102) + (by + have h : ((childLL (childLL thetaAboveCell000023013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023013102)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023013102)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023013102)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023013102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023013102) + (by + have h : ((childLL (childLH thetaAboveCell000023013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023013102)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023013102)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023013102)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023013102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023013102) + (by + have h : ((childLL (childHL thetaAboveCell000023013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023013102)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023013102)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023013102)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023013102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023013102) + (by + have h : ((childLL (childHH thetaAboveCell000023013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023013102)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023013102)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023013102)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023013102)) h)) + +theorem cover_subtree_f25d3ae916f4 : + adaptiveCoverCheck 7 thetaAboveCell000023013103 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013103 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023013103) + (by + have h : ((childLL (childLL thetaAboveCell000023013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023013103)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023013103)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023013103)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023013103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023013103) + (by + have h : ((childLL (childLH thetaAboveCell000023013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023013103)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023013103)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023013103)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023013103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023013103) + (by + have h : ((childLL (childHL thetaAboveCell000023013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023013103)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023013103)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023013103)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023013103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023013103) + (by + have h : ((childLL (childHH thetaAboveCell000023013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023013103)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023013103)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023013103)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023013103)) h)) + +theorem cover_subtree_8f3c6cde6196 : + adaptiveCoverCheck 8 (childLL (childLH (childHH thetaAboveCell00002301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH thetaAboveCell00002301))) + cover_subtree_45e055a15e46 + cover_subtree_027a6b743c2f + cover_subtree_2814d469dde6 + cover_subtree_f25d3ae916f4 + +theorem cover_subtree_6d98447fe707 : + adaptiveCoverCheck 7 thetaAboveCell000023013110 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013110 + (by + have h : ((childLL thetaAboveCell000023013110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023013110) h) + (by + have h : ((childLH thetaAboveCell000023013110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023013110) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023013110) + (by + have h : ((childLL (childHL thetaAboveCell000023013110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023013110)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023013110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023013110)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023013110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023013110)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023013110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023013110)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023013110) + (by + have h : ((childLL (childHH thetaAboveCell000023013110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023013110)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023013110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023013110)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023013110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023013110)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023013110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023013110)) h)) + +theorem cover_subtree_d1177bcdcb0d : + adaptiveCoverCheck 7 thetaAboveCell000023013111 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013111 + (by + have h : ((childLL thetaAboveCell000023013111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023013111) h) + (by + have h : ((childLH thetaAboveCell000023013111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023013111) h) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023013111) + (by + have h : ((childLL (childHL thetaAboveCell000023013111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023013111)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023013111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023013111)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023013111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023013111)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023013111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023013111)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023013111) + (by + have h : ((childLL (childHH thetaAboveCell000023013111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023013111)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023013111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023013111)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023013111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023013111)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023013111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023013111)) h)) + +theorem cover_subtree_6f6899221514 : + adaptiveCoverCheck 7 thetaAboveCell000023013112 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013112 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023013112) + (by + have h : ((childLL (childLL thetaAboveCell000023013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023013112)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023013112)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023013112)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023013112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023013112) + (by + have h : ((childLL (childLH thetaAboveCell000023013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023013112)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023013112)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023013112)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023013112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023013112) + (by + have h : ((childLL (childHL thetaAboveCell000023013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023013112)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023013112)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023013112)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023013112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023013112) + (by + have h : ((childLL (childHH thetaAboveCell000023013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023013112)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023013112)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023013112)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023013112)) h)) + +theorem cover_subtree_b4799a6c1d22 : + adaptiveCoverCheck 7 thetaAboveCell000023013113 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013113 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000023013113) + (by + have h : ((childLL (childLL thetaAboveCell000023013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000023013113)) h) + (by + have h : ((childLH (childLL thetaAboveCell000023013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000023013113)) h) + (by + have h : ((childHL (childLL thetaAboveCell000023013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000023013113)) h) + (by + have h : ((childHH (childLL thetaAboveCell000023013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000023013113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000023013113) + (by + have h : ((childLL (childLH thetaAboveCell000023013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000023013113)) h) + (by + have h : ((childLH (childLH thetaAboveCell000023013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000023013113)) h) + (by + have h : ((childHL (childLH thetaAboveCell000023013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000023013113)) h) + (by + have h : ((childHH (childLH thetaAboveCell000023013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000023013113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000023013113) + (by + have h : ((childLL (childHL thetaAboveCell000023013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000023013113)) h) + (by + have h : ((childLH (childHL thetaAboveCell000023013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000023013113)) h) + (by + have h : ((childHL (childHL thetaAboveCell000023013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000023013113)) h) + (by + have h : ((childHH (childHL thetaAboveCell000023013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000023013113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000023013113) + (by + have h : ((childLL (childHH thetaAboveCell000023013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000023013113)) h) + (by + have h : ((childLH (childHH thetaAboveCell000023013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000023013113)) h) + (by + have h : ((childHL (childHH thetaAboveCell000023013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000023013113)) h) + (by + have h : ((childHH (childHH thetaAboveCell000023013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000023013113)) h)) + +theorem cover_subtree_adb76ba4b661 : + adaptiveCoverCheck 8 (childLH (childLH (childHH thetaAboveCell00002301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH thetaAboveCell00002301))) + cover_subtree_6d98447fe707 + cover_subtree_d1177bcdcb0d + cover_subtree_6f6899221514 + cover_subtree_b4799a6c1d22 + +theorem cover_subtree_8b60b15919f9 : + adaptiveCoverCheck 8 (childHL (childLH (childHH thetaAboveCell00002301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH thetaAboveCell00002301))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013120 + (by + have h : ((childLL thetaAboveCell000023013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023013120) h) + (by + have h : ((childLH thetaAboveCell000023013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023013120) h) + (by + have h : ((childHL thetaAboveCell000023013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023013120) h) + (by + have h : ((childHH thetaAboveCell000023013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023013120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013121 + (by + have h : ((childLL thetaAboveCell000023013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023013121) h) + (by + have h : ((childLH thetaAboveCell000023013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023013121) h) + (by + have h : ((childHL thetaAboveCell000023013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023013121) h) + (by + have h : ((childHH thetaAboveCell000023013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023013121) h)) + (by + have h : (thetaAboveCell000023013122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023013122 h) + (by + have h : (thetaAboveCell000023013123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023013123 h) + +theorem cover_subtree_9d36c543bc7e : + adaptiveCoverCheck 8 (childHH (childLH (childHH thetaAboveCell00002301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH thetaAboveCell00002301))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013130 + (by + have h : ((childLL thetaAboveCell000023013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023013130) h) + (by + have h : ((childLH thetaAboveCell000023013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023013130) h) + (by + have h : ((childHL thetaAboveCell000023013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023013130) h) + (by + have h : ((childHH thetaAboveCell000023013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023013130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000023013131 + (by + have h : ((childLL thetaAboveCell000023013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000023013131) h) + (by + have h : ((childLH thetaAboveCell000023013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000023013131) h) + (by + have h : ((childHL thetaAboveCell000023013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000023013131) h) + (by + have h : ((childHH thetaAboveCell000023013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000023013131) h)) + (by + have h : (thetaAboveCell000023013132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023013132 h) + (by + have h : (thetaAboveCell000023013133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023013133 h) + +theorem e24KC2ThetaAboveLeaf0000230131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00002301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00002301)) + cover_subtree_8f3c6cde6196 + cover_subtree_adb76ba4b661 + cover_subtree_8b60b15919f9 + cover_subtree_9d36c543bc7e +theorem e24KC2ThetaAboveLeaf0000230132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00002301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00002301)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00002301))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00002301))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00002301))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00002301))) h) +theorem e24KC2ThetaAboveLeaf0000230133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00002301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00002301)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00002301))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00002301))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00002301))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00002301))) h) +theorem e24KC2ThetaAboveLeaf0000231002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00002310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00002310)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00002310))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00002310))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childLL + thetaAboveCell00002310))) + (by + have h : (thetaAboveCell000023100220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023100220 h) + (by + have h : (thetaAboveCell000023100221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023100221 h) + (by + have h : (thetaAboveCell000023100222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023100222 h) + (by + have h : (thetaAboveCell000023100223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023100223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childLL + thetaAboveCell00002310))) + (by + have h : (thetaAboveCell000023100230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023100230 h) + (by + have h : (thetaAboveCell000023100231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023100231 h) + (by + have h : (thetaAboveCell000023100232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023100232 h) + (by + have h : (thetaAboveCell000023100233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023100233 h)) +theorem e24KC2ThetaAboveLeaf0000231003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00002310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00002310)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00002310))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00002310))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childLL + thetaAboveCell00002310))) + (by + have h : (thetaAboveCell000023100320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023100320 h) + (by + have h : (thetaAboveCell000023100321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023100321 h) + (by + have h : (thetaAboveCell000023100322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023100322 h) + (by + have h : (thetaAboveCell000023100323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023100323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childLL + thetaAboveCell00002310))) + (by + have h : (thetaAboveCell000023100330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023100330 h) + (by + have h : (thetaAboveCell000023100331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023100331 h) + (by + have h : (thetaAboveCell000023100332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023100332 h) + (by + have h : (thetaAboveCell000023100333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023100333 h)) +theorem e24KC2ThetaAboveLeaf0000231012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00002310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00002310)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00002310))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00002310))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childLH + thetaAboveCell00002310))) + (by + have h : (thetaAboveCell000023101220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023101220 h) + (by + have h : (thetaAboveCell000023101221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023101221 h) + (by + have h : (thetaAboveCell000023101222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023101222 h) + (by + have h : (thetaAboveCell000023101223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023101223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childLH + thetaAboveCell00002310))) + (by + have h : (thetaAboveCell000023101230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023101230 h) + (by + have h : (thetaAboveCell000023101231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023101231 h) + (by + have h : (thetaAboveCell000023101232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023101232 h) + (by + have h : (thetaAboveCell000023101233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023101233 h)) +theorem e24KC2ThetaAboveLeaf0000231013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00002310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00002310)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00002310))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00002310))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childLH + thetaAboveCell00002310))) + (by + have h : (thetaAboveCell000023101320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023101320 h) + (by + have h : (thetaAboveCell000023101321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023101321 h) + (by + have h : (thetaAboveCell000023101322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023101322 h) + (by + have h : (thetaAboveCell000023101323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023101323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childLH + thetaAboveCell00002310))) + (by + have h : (thetaAboveCell000023101330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023101330 h) + (by + have h : (thetaAboveCell000023101331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023101331 h) + (by + have h : (thetaAboveCell000023101332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023101332 h) + (by + have h : (thetaAboveCell000023101333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023101333 h)) + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle007.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle007.lean new file mode 100644 index 0000000000..f330744d18 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle007.lean @@ -0,0 +1,9988 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch008`. +* `GerverSofa.KernelOnly.PartE.Certificates.Batch026`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCells2cfecae988 + +/-- Subcell `0100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0100 : AngleCell := + childLL (childLL (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0101 : AngleCell := + childLH (childLL (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `01003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell0101))) + +/-- Subcell `01012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell0101))) + +/-- Subcell `01012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell0101))) + +/-- Subcell `01012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell0101))) + +/-- Subcell `01012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell0101))) + +/-- Subcell `01012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell0101))) + +/-- Subcell `01012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell0101))) + +/-- Subcell `01012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell0101))) + +/-- Subcell `01012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell0101))) + +/-- Subcell `01012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell0101))) + +/-- Subcell `01012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell0101))) + +/-- Subcell `01012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell0101))) + +/-- Subcell `01012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell0101))) + +/-- Subcell `01012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell0101))) + +/-- Subcell `01012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell0101))) + +/-- Subcell `01012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell0101))) + +/-- Subcell `01012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell0101))) + +/-- Subcell `01013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell0101))) + +/-- Subcell `01013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell0101))) + +/-- Subcell `01013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell0101))) + +/-- Subcell `01013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell0101))) + +/-- Subcell `01013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell0101))) + +/-- Subcell `01013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell0101))) + +/-- Subcell `01013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell0101))) + +/-- Subcell `01013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell0101))) + +/-- Subcell `01013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell0101))) + +/-- Subcell `01013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell0101))) + +/-- Subcell `01013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell0101))) + +/-- Subcell `01013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell0101))) + +/-- Subcell `01013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell0101))) + +/-- Subcell `01013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell0101))) + +/-- Subcell `01013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell0101))) + +/-- Subcell `01013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0101))) + +end GerverSofa.PartE.CertificateCells2cfecae988 + +namespace GerverSofa.PartE.CertificateCells6df5a7a03f + +/-- Subcell `0101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0101 : AngleCell := + childLH (childLL (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0102 : AngleCell := + childHL (childLL (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0103 : AngleCell := + childHH (childLL (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0110 : AngleCell := + childLL (childLH (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `01013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell0110))) + +/-- Subcell `01102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell0110))) + +/-- Subcell `01102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell0110))) + +/-- Subcell `01102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell0110))) + +/-- Subcell `01102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell0110))) + +/-- Subcell `01102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell0110))) + +/-- Subcell `01102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell0110))) + +/-- Subcell `01102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell0110))) + +/-- Subcell `01102120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell0110))) + +/-- Subcell `01102121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell0110))) + +/-- Subcell `01102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell0110))) + +/-- Subcell `01102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell0110))) + +/-- Subcell `01102130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell0110))) + +/-- Subcell `01102131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell0110))) + +/-- Subcell `01102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell0110))) + +/-- Subcell `01102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell0110))) + +/-- Subcell `01102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01103020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell0110))) + +/-- Subcell `01103021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell0110))) + +/-- Subcell `01103022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell0110))) + +/-- Subcell `01103023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell0110))) + +/-- Subcell `01103030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell0110))) + +/-- Subcell `01103031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell0110))) + +/-- Subcell `01103032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell0110))) + +/-- Subcell `01103033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell0110))) + +/-- Subcell `01103120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell0110))) + +/-- Subcell `01103121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell0110))) + +/-- Subcell `01103122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell0110))) + +/-- Subcell `01103123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell0110))) + +/-- Subcell `01103130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell0110))) + +/-- Subcell `01103131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell0110))) + +/-- Subcell `01103132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell0110))) + +/-- Subcell `01103133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell0110))) + +/-- Subcell `01103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0110))) + +end GerverSofa.PartE.CertificateCells6df5a7a03f + +namespace GerverSofa.PartE.CertificateCells8ecd2c98f8 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133110222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110222 : AngleCell := + childHL (childHL (childHL (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110223 : AngleCell := + childHH (childHL (childHL (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110220 : AngleCell := + childLL (childHL (childHL (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110221 : AngleCell := + childLH (childHL (childHL (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110232 : AngleCell := + childHL (childHH (childHL (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110233 : AngleCell := + childHH (childHH (childHL (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110230 : AngleCell := + childLL (childHH (childHL (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110231 : AngleCell := + childLH (childHH (childHL (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110200 : AngleCell := + childLL (childLL (childHL (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110201 : AngleCell := + childLH (childLL (childHL (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110202 : AngleCell := + childHL (childLL (childHL (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110203 : AngleCell := + childHH (childLL (childHL (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110210 : AngleCell := + childLL (childLH (childHL (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110211 : AngleCell := + childLH (childLH (childHL (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110212 : AngleCell := + childHL (childLH (childHL (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110213 : AngleCell := + childHH (childLH (childHL (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110322 : AngleCell := + childHL (childHL (childHH (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110323 : AngleCell := + childHH (childHL (childHH (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110320 : AngleCell := + childLL (childHL (childHH (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110321 : AngleCell := + childLH (childHL (childHH (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110332 : AngleCell := + childHL (childHH (childHH (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110333 : AngleCell := + childHH (childHH (childHH (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110330 : AngleCell := + childLL (childHH (childHH (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110331 : AngleCell := + childLH (childHH (childHH (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110300 : AngleCell := + childLL (childLL (childHH (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110301 : AngleCell := + childLH (childLL (childHH (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110302 : AngleCell := + childHL (childLL (childHH (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110303 : AngleCell := + childHH (childLL (childHH (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110310 : AngleCell := + childLL (childLH (childHH (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110311 : AngleCell := + childLH (childLH (childHH (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110312 : AngleCell := + childHL (childLH (childHH (childLL thetaBelowCell11113311))) + +/-- Subcell `111133110313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133110313 : AngleCell := + childHH (childLH (childHH (childLL thetaBelowCell11113311))) + +/-- Subcell `111133111222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111222 : AngleCell := + childHL (childHL (childHL (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111223 : AngleCell := + childHH (childHL (childHL (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111220 : AngleCell := + childLL (childHL (childHL (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111221 : AngleCell := + childLH (childHL (childHL (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111232 : AngleCell := + childHL (childHH (childHL (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111233 : AngleCell := + childHH (childHH (childHL (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111230 : AngleCell := + childLL (childHH (childHL (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111231 : AngleCell := + childLH (childHH (childHL (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111200 : AngleCell := + childLL (childLL (childHL (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111201 : AngleCell := + childLH (childLL (childHL (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111202 : AngleCell := + childHL (childLL (childHL (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111203 : AngleCell := + childHH (childLL (childHL (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111322 : AngleCell := + childHL (childHL (childHH (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111323 : AngleCell := + childHH (childHL (childHH (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111320 : AngleCell := + childLL (childHL (childHH (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111321 : AngleCell := + childLH (childHL (childHH (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111332 : AngleCell := + childHL (childHH (childHH (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111333 : AngleCell := + childHH (childHH (childHH (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111330 : AngleCell := + childLL (childHH (childHH (childLH thetaBelowCell11113311))) + +/-- Subcell `111133111331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133111331 : AngleCell := + childLH (childHH (childHH (childLH thetaBelowCell11113311))) + +/-- Subcell `111133112000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112000 : AngleCell := + childLL (childLL (childLL (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112001 : AngleCell := + childLH (childLL (childLL (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112002 : AngleCell := + childHL (childLL (childLL (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112003 : AngleCell := + childHH (childLL (childLL (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112010 : AngleCell := + childLL (childLH (childLL (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112011 : AngleCell := + childLH (childLH (childLL (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112012 : AngleCell := + childHL (childLH (childLL (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112013 : AngleCell := + childHH (childLH (childLL (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112020 : AngleCell := + childLL (childHL (childLL (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112021 : AngleCell := + childLH (childHL (childLL (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112022 : AngleCell := + childHL (childHL (childLL (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112023 : AngleCell := + childHH (childHL (childLL (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112030 : AngleCell := + childLL (childHH (childLL (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112031 : AngleCell := + childLH (childHH (childLL (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112032 : AngleCell := + childHL (childHH (childLL (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112033 : AngleCell := + childHH (childHH (childLL (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112100 : AngleCell := + childLL (childLL (childLH (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112101 : AngleCell := + childLH (childLL (childLH (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112102 : AngleCell := + childHL (childLL (childLH (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112103 : AngleCell := + childHH (childLL (childLH (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112110 : AngleCell := + childLL (childLH (childLH (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112111 : AngleCell := + childLH (childLH (childLH (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112112 : AngleCell := + childHL (childLH (childLH (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112113 : AngleCell := + childHH (childLH (childLH (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112120 : AngleCell := + childLL (childHL (childLH (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112121 : AngleCell := + childLH (childHL (childLH (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112122 : AngleCell := + childHL (childHL (childLH (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112123 : AngleCell := + childHH (childHL (childLH (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112130 : AngleCell := + childLL (childHH (childLH (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112131 : AngleCell := + childLH (childHH (childLH (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112132 : AngleCell := + childHL (childHH (childLH (childHL thetaBelowCell11113311))) + +/-- Subcell `111133112133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133112133 : AngleCell := + childHH (childHH (childLH (childHL thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCells8ecd2c98f8 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC5TerminalBatchT204800007`. +* `KernelOnly.PartE.E24KC5TerminalBatchT256000008`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2cfecae988 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2cfecae988 + +open CertificateCells2cfecae988 +theorem e24KC2ThetaAboveLeaf0100330300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01003303)) = true := by + have h : ((childLL (childLL thetaAboveCell01003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01003303)) h +theorem e24KC2ThetaAboveLeaf0100330301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01003303)) = true := by + have h : ((childLH (childLL thetaAboveCell01003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01003303)) h +theorem e24KC2ThetaAboveLeaf0100330302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01003303)) = true := by + have h : ((childHL (childLL thetaAboveCell01003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01003303)) h +theorem e24KC2ThetaAboveLeaf0100330303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01003303)) = true := by + have h : ((childHH (childLL thetaAboveCell01003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01003303)) h +theorem e24KC2ThetaAboveLeaf0100330310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01003303)) = true := by + have h : ((childLL (childLH thetaAboveCell01003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01003303)) h +theorem e24KC2ThetaAboveLeaf0100330311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01003303)) = true := by + have h : ((childLH (childLH thetaAboveCell01003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01003303)) h +theorem e24KC2ThetaAboveLeaf0100330312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01003303)) = true := by + have h : ((childHL (childLH thetaAboveCell01003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01003303)) h +theorem e24KC2ThetaAboveLeaf0100330313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01003303)) = true := by + have h : ((childHH (childLH thetaAboveCell01003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01003303)) h +theorem e24KC2ThetaAboveLeaf0100330320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01003303)) = true := by + have h : ((childLL (childHL thetaAboveCell01003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01003303)) h +theorem e24KC2ThetaAboveLeaf0100330321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01003303)) = true := by + have h : ((childLH (childHL thetaAboveCell01003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01003303)) h +theorem e24KC2ThetaAboveLeaf0100330322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01003303)) = true := by + have h : ((childHL (childHL thetaAboveCell01003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01003303)) h +theorem e24KC2ThetaAboveLeaf0100330323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01003303)) = true := by + have h : ((childHH (childHL thetaAboveCell01003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01003303)) h +theorem e24KC2ThetaAboveLeaf0100330330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01003303)) = true := by + have h : ((childLL (childHH thetaAboveCell01003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01003303)) h +theorem e24KC2ThetaAboveLeaf0100330331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01003303)) = true := by + have h : ((childLH (childHH thetaAboveCell01003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01003303)) h +theorem e24KC2ThetaAboveLeaf0100330332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01003303)) = true := by + have h : ((childHL (childHH thetaAboveCell01003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01003303)) h +theorem e24KC2ThetaAboveLeaf0100330333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01003303)) = true := by + have h : ((childHH (childHH thetaAboveCell01003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01003303)) h +theorem e24KC2ThetaAboveLeaf010033100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01003310) = true := by + have h : ((childLL thetaAboveCell01003310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01003310) h +theorem e24KC2ThetaAboveLeaf010033101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01003310) = true := by + have h : ((childLH thetaAboveCell01003310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01003310) h +theorem e24KC2ThetaAboveLeaf0100331020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01003310)) = true := by + have h : ((childLL (childHL thetaAboveCell01003310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01003310)) h +theorem e24KC2ThetaAboveLeaf0100331021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01003310)) = true := by + have h : ((childLH (childHL thetaAboveCell01003310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01003310)) h +theorem e24KC2ThetaAboveLeaf0100331022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01003310)) = true := by + have h : ((childHL (childHL thetaAboveCell01003310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01003310)) h +theorem e24KC2ThetaAboveLeaf0100331023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01003310)) = true := by + have h : ((childHH (childHL thetaAboveCell01003310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01003310)) h +theorem e24KC2ThetaAboveLeaf0100331030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01003310)) = true := by + have h : ((childLL (childHH thetaAboveCell01003310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01003310)) h +theorem e24KC2ThetaAboveLeaf0100331031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01003310)) = true := by + have h : ((childLH (childHH thetaAboveCell01003310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01003310)) h +theorem e24KC2ThetaAboveLeaf0100331032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01003310)) = true := by + have h : ((childHL (childHH thetaAboveCell01003310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01003310)) h +theorem e24KC2ThetaAboveLeaf0100331033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01003310)) = true := by + have h : ((childHH (childHH thetaAboveCell01003310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01003310)) h +theorem e24KC2ThetaAboveLeaf010033110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01003311) = true := by + have h : ((childLL thetaAboveCell01003311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01003311) h +theorem e24KC2ThetaAboveLeaf010033111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01003311) = true := by + have h : ((childLH thetaAboveCell01003311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01003311) h +theorem e24KC2ThetaAboveLeaf0100331120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01003311)) = true := by + have h : ((childLL (childHL thetaAboveCell01003311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01003311)) h +theorem e24KC2ThetaAboveLeaf0100331121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01003311)) = true := by + have h : ((childLH (childHL thetaAboveCell01003311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01003311)) h +theorem e24KC2ThetaAboveLeaf0100331122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01003311)) = true := by + have h : ((childHL (childHL thetaAboveCell01003311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01003311)) h +theorem e24KC2ThetaAboveLeaf0100331123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01003311)) = true := by + have h : ((childHH (childHL thetaAboveCell01003311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01003311)) h +theorem e24KC2ThetaAboveLeaf0100331130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01003311)) = true := by + have h : ((childLL (childHH thetaAboveCell01003311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01003311)) h +theorem e24KC2ThetaAboveLeaf0100331131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01003311)) = true := by + have h : ((childLH (childHH thetaAboveCell01003311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01003311)) h +theorem e24KC2ThetaAboveLeaf0100331132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01003311)) = true := by + have h : ((childHL (childHH thetaAboveCell01003311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01003311)) h +theorem e24KC2ThetaAboveLeaf0100331133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01003311)) = true := by + have h : ((childHH (childHH thetaAboveCell01003311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01003311)) h +theorem e24KC2ThetaAboveLeaf0100331200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01003312)) = true := by + have h : ((childLL (childLL thetaAboveCell01003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01003312)) h +theorem e24KC2ThetaAboveLeaf0100331201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01003312)) = true := by + have h : ((childLH (childLL thetaAboveCell01003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01003312)) h +theorem e24KC2ThetaAboveLeaf0100331202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01003312)) = true := by + have h : ((childHL (childLL thetaAboveCell01003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01003312)) h +theorem e24KC2ThetaAboveLeaf0100331203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01003312)) = true := by + have h : ((childHH (childLL thetaAboveCell01003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01003312)) h +theorem e24KC2ThetaAboveLeaf0100331210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01003312)) = true := by + have h : ((childLL (childLH thetaAboveCell01003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01003312)) h +theorem e24KC2ThetaAboveLeaf0100331211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01003312)) = true := by + have h : ((childLH (childLH thetaAboveCell01003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01003312)) h +theorem e24KC2ThetaAboveLeaf0100331212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01003312)) = true := by + have h : ((childHL (childLH thetaAboveCell01003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01003312)) h +theorem e24KC2ThetaAboveLeaf0100331213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01003312)) = true := by + have h : ((childHH (childLH thetaAboveCell01003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01003312)) h +theorem e24KC2ThetaAboveLeaf0100331220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01003312)) = true := by + have h : ((childLL (childHL thetaAboveCell01003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01003312)) h +theorem e24KC2ThetaAboveLeaf0100331221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01003312)) = true := by + have h : ((childLH (childHL thetaAboveCell01003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01003312)) h +theorem e24KC2ThetaAboveLeaf0100331222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01003312)) = true := by + have h : ((childHL (childHL thetaAboveCell01003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01003312)) h +theorem e24KC2ThetaAboveLeaf0100331223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01003312)) = true := by + have h : ((childHH (childHL thetaAboveCell01003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01003312)) h +theorem e24KC2ThetaAboveLeaf0100331230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01003312)) = true := by + have h : ((childLL (childHH thetaAboveCell01003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01003312)) h +theorem e24KC2ThetaAboveLeaf0100331231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01003312)) = true := by + have h : ((childLH (childHH thetaAboveCell01003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01003312)) h +theorem e24KC2ThetaAboveLeaf0100331232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01003312)) = true := by + have h : ((childHL (childHH thetaAboveCell01003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01003312)) h +theorem e24KC2ThetaAboveLeaf0100331233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01003312)) = true := by + have h : ((childHH (childHH thetaAboveCell01003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01003312)) h +theorem e24KC2ThetaAboveLeaf0100331300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01003313)) = true := by + have h : ((childLL (childLL thetaAboveCell01003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01003313)) h +theorem e24KC2ThetaAboveLeaf0100331301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01003313)) = true := by + have h : ((childLH (childLL thetaAboveCell01003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01003313)) h +theorem e24KC2ThetaAboveLeaf0100331302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01003313)) = true := by + have h : ((childHL (childLL thetaAboveCell01003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01003313)) h +theorem e24KC2ThetaAboveLeaf0100331303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01003313)) = true := by + have h : ((childHH (childLL thetaAboveCell01003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01003313)) h +theorem e24KC2ThetaAboveLeaf0100331310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01003313)) = true := by + have h : ((childLL (childLH thetaAboveCell01003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01003313)) h +theorem e24KC2ThetaAboveLeaf0100331311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01003313)) = true := by + have h : ((childLH (childLH thetaAboveCell01003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01003313)) h +theorem e24KC2ThetaAboveLeaf0100331312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01003313)) = true := by + have h : ((childHL (childLH thetaAboveCell01003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01003313)) h +theorem e24KC2ThetaAboveLeaf0100331313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01003313)) = true := by + have h : ((childHH (childLH thetaAboveCell01003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01003313)) h +theorem e24KC2ThetaAboveLeaf0100331320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01003313)) = true := by + have h : ((childLL (childHL thetaAboveCell01003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01003313)) h +theorem e24KC2ThetaAboveLeaf0100331321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01003313)) = true := by + have h : ((childLH (childHL thetaAboveCell01003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01003313)) h +theorem e24KC2ThetaAboveLeaf0100331322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01003313)) = true := by + have h : ((childHL (childHL thetaAboveCell01003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01003313)) h +theorem e24KC2ThetaAboveLeaf0100331323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01003313)) = true := by + have h : ((childHH (childHL thetaAboveCell01003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01003313)) h +theorem e24KC2ThetaAboveLeaf0100331330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01003313)) = true := by + have h : ((childLL (childHH thetaAboveCell01003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01003313)) h +theorem e24KC2ThetaAboveLeaf0100331331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01003313)) = true := by + have h : ((childLH (childHH thetaAboveCell01003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01003313)) h +theorem e24KC2ThetaAboveLeaf0100331332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01003313)) = true := by + have h : ((childHL (childHH thetaAboveCell01003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01003313)) h +theorem e24KC2ThetaAboveLeaf0100331333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01003313)) = true := by + have h : ((childHH (childHH thetaAboveCell01003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01003313)) h +theorem e24KC2ThetaAboveLeaf01003320 : + adaptiveCoverCheck 11 thetaAboveCell01003320 = true := by + have h : (thetaAboveCell01003320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003320 h +theorem e24KC2ThetaAboveLeaf01003321 : + adaptiveCoverCheck 11 thetaAboveCell01003321 = true := by + have h : (thetaAboveCell01003321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003321 h +theorem e24KC2ThetaAboveLeaf01003322 : + adaptiveCoverCheck 11 thetaAboveCell01003322 = true := by + have h : (thetaAboveCell01003322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003322 h +theorem e24KC2ThetaAboveLeaf01003323 : + adaptiveCoverCheck 11 thetaAboveCell01003323 = true := by + have h : (thetaAboveCell01003323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003323 h +theorem e24KC2ThetaAboveLeaf010033300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01003330) = true := by + have h : ((childLL thetaAboveCell01003330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01003330) h +theorem e24KC2ThetaAboveLeaf010033301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01003330) = true := by + have h : ((childLH thetaAboveCell01003330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01003330) h +theorem e24KC2ThetaAboveLeaf010033302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01003330) = true := by + have h : ((childHL thetaAboveCell01003330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01003330) h +theorem e24KC2ThetaAboveLeaf010033303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01003330) = true := by + have h : ((childHH thetaAboveCell01003330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01003330) h +theorem e24KC2ThetaAboveLeaf010033310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01003331) = true := by + have h : ((childLL thetaAboveCell01003331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01003331) h +theorem e24KC2ThetaAboveLeaf010033311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01003331) = true := by + have h : ((childLH thetaAboveCell01003331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01003331) h +theorem e24KC2ThetaAboveLeaf010033312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01003331) = true := by + have h : ((childHL thetaAboveCell01003331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01003331) h +theorem e24KC2ThetaAboveLeaf010033313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01003331) = true := by + have h : ((childHH thetaAboveCell01003331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01003331) h +theorem e24KC2ThetaAboveLeaf01003332 : + adaptiveCoverCheck 11 thetaAboveCell01003332 = true := by + have h : (thetaAboveCell01003332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003332 h +theorem e24KC2ThetaAboveLeaf01003333 : + adaptiveCoverCheck 11 thetaAboveCell01003333 = true := by + have h : (thetaAboveCell01003333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01003333 h +theorem e24KC2ThetaAboveLeaf010100 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell0101)) = true := by + have h : ((childLL (childLL thetaAboveCell0101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLL thetaAboveCell0101)) h +theorem e24KC2ThetaAboveLeaf010101 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell0101)) = true := by + have h : ((childLH (childLL thetaAboveCell0101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLL thetaAboveCell0101)) h +theorem e24KC2ThetaAboveLeaf010102 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell0101)) = true := by + have h : ((childHL (childLL thetaAboveCell0101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell0101)) h +theorem e24KC2ThetaAboveLeaf010103 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell0101)) = true := by + have h : ((childHH (childLL thetaAboveCell0101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell0101)) h +theorem e24KC2ThetaAboveLeaf010110 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell0101)) = true := by + have h : ((childLL (childLH thetaAboveCell0101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLH thetaAboveCell0101)) h +theorem e24KC2ThetaAboveLeaf010111 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell0101)) = true := by + have h : ((childLH (childLH thetaAboveCell0101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLH thetaAboveCell0101)) h +theorem e24KC2ThetaAboveLeaf010112 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell0101)) = true := by + have h : ((childHL (childLH thetaAboveCell0101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell0101)) h +theorem e24KC2ThetaAboveLeaf010113 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell0101)) = true := by + have h : ((childHH (childLH thetaAboveCell0101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell0101)) h +theorem e24KC2ThetaAboveLeaf0101200 : + adaptiveCoverCheck 12 (childLL (childLL (childHL thetaAboveCell0101))) = true := by + have h : ((childLL (childLL (childHL thetaAboveCell0101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHL thetaAboveCell0101))) h +theorem e24KC2ThetaAboveLeaf0101201 : + adaptiveCoverCheck 12 (childLH (childLL (childHL thetaAboveCell0101))) = true := by + have h : ((childLH (childLL (childHL thetaAboveCell0101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHL thetaAboveCell0101))) h +theorem e24KC2ThetaAboveLeaf01012020 : + adaptiveCoverCheck 11 thetaAboveCell01012020 = true := by + have h : (thetaAboveCell01012020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012020 h +theorem e24KC2ThetaAboveLeaf01012021 : + adaptiveCoverCheck 11 thetaAboveCell01012021 = true := by + have h : (thetaAboveCell01012021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012021 h +theorem e24KC2ThetaAboveLeaf01012022 : + adaptiveCoverCheck 11 thetaAboveCell01012022 = true := by + have h : (thetaAboveCell01012022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012022 h +theorem e24KC2ThetaAboveLeaf01012023 : + adaptiveCoverCheck 11 thetaAboveCell01012023 = true := by + have h : (thetaAboveCell01012023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012023 h +theorem e24KC2ThetaAboveLeaf01012030 : + adaptiveCoverCheck 11 thetaAboveCell01012030 = true := by + have h : (thetaAboveCell01012030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012030 h +theorem e24KC2ThetaAboveLeaf01012031 : + adaptiveCoverCheck 11 thetaAboveCell01012031 = true := by + have h : (thetaAboveCell01012031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012031 h +theorem e24KC2ThetaAboveLeaf01012032 : + adaptiveCoverCheck 11 thetaAboveCell01012032 = true := by + have h : (thetaAboveCell01012032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012032 h +theorem e24KC2ThetaAboveLeaf01012033 : + adaptiveCoverCheck 11 thetaAboveCell01012033 = true := by + have h : (thetaAboveCell01012033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012033 h +theorem e24KC2ThetaAboveLeaf0101210 : + adaptiveCoverCheck 12 (childLL (childLH (childHL thetaAboveCell0101))) = true := by + have h : ((childLL (childLH (childHL thetaAboveCell0101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHL thetaAboveCell0101))) h +theorem e24KC2ThetaAboveLeaf0101211 : + adaptiveCoverCheck 12 (childLH (childLH (childHL thetaAboveCell0101))) = true := by + have h : ((childLH (childLH (childHL thetaAboveCell0101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHL thetaAboveCell0101))) h +theorem e24KC2ThetaAboveLeaf01012120 : + adaptiveCoverCheck 11 thetaAboveCell01012120 = true := by + have h : (thetaAboveCell01012120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012120 h +theorem e24KC2ThetaAboveLeaf01012121 : + adaptiveCoverCheck 11 thetaAboveCell01012121 = true := by + have h : (thetaAboveCell01012121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012121 h +theorem e24KC2ThetaAboveLeaf01012122 : + adaptiveCoverCheck 11 thetaAboveCell01012122 = true := by + have h : (thetaAboveCell01012122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012122 h +theorem e24KC2ThetaAboveLeaf01012123 : + adaptiveCoverCheck 11 thetaAboveCell01012123 = true := by + have h : (thetaAboveCell01012123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012123 h +theorem e24KC2ThetaAboveLeaf01012130 : + adaptiveCoverCheck 11 thetaAboveCell01012130 = true := by + have h : (thetaAboveCell01012130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012130 h +theorem e24KC2ThetaAboveLeaf01012131 : + adaptiveCoverCheck 11 thetaAboveCell01012131 = true := by + have h : (thetaAboveCell01012131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012131 h +theorem e24KC2ThetaAboveLeaf01012132 : + adaptiveCoverCheck 11 thetaAboveCell01012132 = true := by + have h : (thetaAboveCell01012132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012132 h +theorem e24KC2ThetaAboveLeaf01012133 : + adaptiveCoverCheck 11 thetaAboveCell01012133 = true := by + have h : (thetaAboveCell01012133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012133 h +theorem e24KC2ThetaAboveLeaf010122000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012200) = true := by + have h : ((childLL thetaAboveCell01012200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01012200) h +theorem e24KC2ThetaAboveLeaf010122001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012200) = true := by + have h : ((childLH thetaAboveCell01012200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01012200) h +theorem e24KC2ThetaAboveLeaf0101220020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01012200)) = true := by + have h : ((childLL (childHL thetaAboveCell01012200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01012200)) h +theorem e24KC2ThetaAboveLeaf0101220021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01012200)) = true := by + have h : ((childLH (childHL thetaAboveCell01012200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01012200)) h +theorem e24KC2ThetaAboveLeaf0101220022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01012200)) = true := by + have h : ((childHL (childHL thetaAboveCell01012200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01012200)) h +theorem e24KC2ThetaAboveLeaf0101220023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01012200)) = true := by + have h : ((childHH (childHL thetaAboveCell01012200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01012200)) h +theorem e24KC2ThetaAboveLeaf0101220030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01012200)) = true := by + have h : ((childLL (childHH thetaAboveCell01012200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01012200)) h +theorem e24KC2ThetaAboveLeaf0101220031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01012200)) = true := by + have h : ((childLH (childHH thetaAboveCell01012200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01012200)) h +theorem e24KC2ThetaAboveLeaf0101220032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01012200)) = true := by + have h : ((childHL (childHH thetaAboveCell01012200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01012200)) h +theorem e24KC2ThetaAboveLeaf0101220033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01012200)) = true := by + have h : ((childHH (childHH thetaAboveCell01012200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01012200)) h +theorem e24KC2ThetaAboveLeaf010122010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012201) = true := by + have h : ((childLL thetaAboveCell01012201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01012201) h +theorem e24KC2ThetaAboveLeaf010122011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012201) = true := by + have h : ((childLH thetaAboveCell01012201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01012201) h +theorem e24KC2ThetaAboveLeaf0101220120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01012201)) = true := by + have h : ((childLL (childHL thetaAboveCell01012201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01012201)) h +theorem e24KC2ThetaAboveLeaf0101220121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01012201)) = true := by + have h : ((childLH (childHL thetaAboveCell01012201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01012201)) h +theorem e24KC2ThetaAboveLeaf0101220122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01012201)) = true := by + have h : ((childHL (childHL thetaAboveCell01012201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01012201)) h +theorem e24KC2ThetaAboveLeaf0101220123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01012201)) = true := by + have h : ((childHH (childHL thetaAboveCell01012201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01012201)) h +theorem e24KC2ThetaAboveLeaf0101220130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01012201)) = true := by + have h : ((childLL (childHH thetaAboveCell01012201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01012201)) h +theorem e24KC2ThetaAboveLeaf0101220131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01012201)) = true := by + have h : ((childLH (childHH thetaAboveCell01012201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01012201)) h +theorem e24KC2ThetaAboveLeaf0101220132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01012201)) = true := by + have h : ((childHL (childHH thetaAboveCell01012201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01012201)) h +theorem e24KC2ThetaAboveLeaf0101220133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01012201)) = true := by + have h : ((childHH (childHH thetaAboveCell01012201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01012201)) h +theorem e24KC2ThetaAboveLeaf0101220200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01012202)) = true := by + have h : ((childLL (childLL thetaAboveCell01012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01012202)) h +theorem e24KC2ThetaAboveLeaf0101220201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01012202)) = true := by + have h : ((childLH (childLL thetaAboveCell01012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01012202)) h +theorem e24KC2ThetaAboveLeaf0101220202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01012202)) = true := by + have h : ((childHL (childLL thetaAboveCell01012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01012202)) h +theorem e24KC2ThetaAboveLeaf0101220203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01012202)) = true := by + have h : ((childHH (childLL thetaAboveCell01012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01012202)) h +theorem e24KC2ThetaAboveLeaf0101220210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01012202)) = true := by + have h : ((childLL (childLH thetaAboveCell01012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01012202)) h +theorem e24KC2ThetaAboveLeaf0101220211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01012202)) = true := by + have h : ((childLH (childLH thetaAboveCell01012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01012202)) h +theorem e24KC2ThetaAboveLeaf0101220212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01012202)) = true := by + have h : ((childHL (childLH thetaAboveCell01012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01012202)) h +theorem e24KC2ThetaAboveLeaf0101220213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01012202)) = true := by + have h : ((childHH (childLH thetaAboveCell01012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01012202)) h +theorem e24KC2ThetaAboveLeaf0101220220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01012202)) = true := by + have h : ((childLL (childHL thetaAboveCell01012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01012202)) h +theorem e24KC2ThetaAboveLeaf0101220221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01012202)) = true := by + have h : ((childLH (childHL thetaAboveCell01012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01012202)) h +theorem e24KC2ThetaAboveLeaf0101220222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01012202)) = true := by + have h : ((childHL (childHL thetaAboveCell01012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01012202)) h +theorem e24KC2ThetaAboveLeaf0101220223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01012202)) = true := by + have h : ((childHH (childHL thetaAboveCell01012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01012202)) h +theorem e24KC2ThetaAboveLeaf0101220230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01012202)) = true := by + have h : ((childLL (childHH thetaAboveCell01012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01012202)) h +theorem e24KC2ThetaAboveLeaf0101220231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01012202)) = true := by + have h : ((childLH (childHH thetaAboveCell01012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01012202)) h +theorem e24KC2ThetaAboveLeaf0101220232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01012202)) = true := by + have h : ((childHL (childHH thetaAboveCell01012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01012202)) h +theorem e24KC2ThetaAboveLeaf0101220233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01012202)) = true := by + have h : ((childHH (childHH thetaAboveCell01012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01012202)) h +theorem e24KC2ThetaAboveLeaf0101220300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01012203)) = true := by + have h : ((childLL (childLL thetaAboveCell01012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01012203)) h +theorem e24KC2ThetaAboveLeaf0101220301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01012203)) = true := by + have h : ((childLH (childLL thetaAboveCell01012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01012203)) h +theorem e24KC2ThetaAboveLeaf0101220302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01012203)) = true := by + have h : ((childHL (childLL thetaAboveCell01012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01012203)) h +theorem e24KC2ThetaAboveLeaf0101220303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01012203)) = true := by + have h : ((childHH (childLL thetaAboveCell01012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01012203)) h +theorem e24KC2ThetaAboveLeaf0101220310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01012203)) = true := by + have h : ((childLL (childLH thetaAboveCell01012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01012203)) h +theorem e24KC2ThetaAboveLeaf0101220311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01012203)) = true := by + have h : ((childLH (childLH thetaAboveCell01012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01012203)) h +theorem e24KC2ThetaAboveLeaf0101220312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01012203)) = true := by + have h : ((childHL (childLH thetaAboveCell01012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01012203)) h +theorem e24KC2ThetaAboveLeaf0101220313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01012203)) = true := by + have h : ((childHH (childLH thetaAboveCell01012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01012203)) h +theorem e24KC2ThetaAboveLeaf0101220320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01012203)) = true := by + have h : ((childLL (childHL thetaAboveCell01012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01012203)) h +theorem e24KC2ThetaAboveLeaf0101220321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01012203)) = true := by + have h : ((childLH (childHL thetaAboveCell01012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01012203)) h +theorem e24KC2ThetaAboveLeaf0101220322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01012203)) = true := by + have h : ((childHL (childHL thetaAboveCell01012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01012203)) h +theorem e24KC2ThetaAboveLeaf0101220323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01012203)) = true := by + have h : ((childHH (childHL thetaAboveCell01012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01012203)) h +theorem e24KC2ThetaAboveLeaf0101220330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01012203)) = true := by + have h : ((childLL (childHH thetaAboveCell01012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01012203)) h +theorem e24KC2ThetaAboveLeaf0101220331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01012203)) = true := by + have h : ((childLH (childHH thetaAboveCell01012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01012203)) h +theorem e24KC2ThetaAboveLeaf0101220332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01012203)) = true := by + have h : ((childHL (childHH thetaAboveCell01012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01012203)) h +theorem e24KC2ThetaAboveLeaf0101220333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01012203)) = true := by + have h : ((childHH (childHH thetaAboveCell01012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01012203)) h +theorem e24KC2ThetaAboveLeaf010122100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012210) = true := by + have h : ((childLL thetaAboveCell01012210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01012210) h +theorem e24KC2ThetaAboveLeaf010122101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012210) = true := by + have h : ((childLH thetaAboveCell01012210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01012210) h +theorem e24KC2ThetaAboveLeaf0101221020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01012210)) = true := by + have h : ((childLL (childHL thetaAboveCell01012210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01012210)) h +theorem e24KC2ThetaAboveLeaf0101221021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01012210)) = true := by + have h : ((childLH (childHL thetaAboveCell01012210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01012210)) h +theorem e24KC2ThetaAboveLeaf0101221022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01012210)) = true := by + have h : ((childHL (childHL thetaAboveCell01012210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01012210)) h +theorem e24KC2ThetaAboveLeaf0101221023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01012210)) = true := by + have h : ((childHH (childHL thetaAboveCell01012210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01012210)) h +theorem e24KC2ThetaAboveLeaf0101221030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01012210)) = true := by + have h : ((childLL (childHH thetaAboveCell01012210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01012210)) h +theorem e24KC2ThetaAboveLeaf0101221031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01012210)) = true := by + have h : ((childLH (childHH thetaAboveCell01012210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01012210)) h +theorem e24KC2ThetaAboveLeaf0101221032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01012210)) = true := by + have h : ((childHL (childHH thetaAboveCell01012210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01012210)) h +theorem e24KC2ThetaAboveLeaf0101221033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01012210)) = true := by + have h : ((childHH (childHH thetaAboveCell01012210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01012210)) h +theorem e24KC2ThetaAboveLeaf010122110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012211) = true := by + have h : ((childLL thetaAboveCell01012211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01012211) h +theorem e24KC2ThetaAboveLeaf010122111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012211) = true := by + have h : ((childLH thetaAboveCell01012211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01012211) h +theorem e24KC2ThetaAboveLeaf0101221120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01012211)) = true := by + have h : ((childLL (childHL thetaAboveCell01012211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01012211)) h +theorem e24KC2ThetaAboveLeaf0101221121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01012211)) = true := by + have h : ((childLH (childHL thetaAboveCell01012211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01012211)) h +theorem e24KC2ThetaAboveLeaf0101221122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01012211)) = true := by + have h : ((childHL (childHL thetaAboveCell01012211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01012211)) h +theorem e24KC2ThetaAboveLeaf0101221123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01012211)) = true := by + have h : ((childHH (childHL thetaAboveCell01012211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01012211)) h +theorem e24KC2ThetaAboveLeaf0101221130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01012211)) = true := by + have h : ((childLL (childHH thetaAboveCell01012211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01012211)) h +theorem e24KC2ThetaAboveLeaf0101221131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01012211)) = true := by + have h : ((childLH (childHH thetaAboveCell01012211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01012211)) h +theorem e24KC2ThetaAboveLeaf0101221132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01012211)) = true := by + have h : ((childHL (childHH thetaAboveCell01012211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01012211)) h +theorem e24KC2ThetaAboveLeaf0101221133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01012211)) = true := by + have h : ((childHH (childHH thetaAboveCell01012211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01012211)) h +theorem e24KC2ThetaAboveLeaf0101221200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01012212)) = true := by + have h : ((childLL (childLL thetaAboveCell01012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01012212)) h +theorem e24KC2ThetaAboveLeaf0101221201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01012212)) = true := by + have h : ((childLH (childLL thetaAboveCell01012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01012212)) h +theorem e24KC2ThetaAboveLeaf0101221202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01012212)) = true := by + have h : ((childHL (childLL thetaAboveCell01012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01012212)) h +theorem e24KC2ThetaAboveLeaf0101221203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01012212)) = true := by + have h : ((childHH (childLL thetaAboveCell01012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01012212)) h +theorem e24KC2ThetaAboveLeaf0101221210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01012212)) = true := by + have h : ((childLL (childLH thetaAboveCell01012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01012212)) h +theorem e24KC2ThetaAboveLeaf0101221211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01012212)) = true := by + have h : ((childLH (childLH thetaAboveCell01012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01012212)) h +theorem e24KC2ThetaAboveLeaf0101221212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01012212)) = true := by + have h : ((childHL (childLH thetaAboveCell01012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01012212)) h +theorem e24KC2ThetaAboveLeaf0101221213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01012212)) = true := by + have h : ((childHH (childLH thetaAboveCell01012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01012212)) h +theorem e24KC2ThetaAboveLeaf0101221220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01012212)) = true := by + have h : ((childLL (childHL thetaAboveCell01012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01012212)) h +theorem e24KC2ThetaAboveLeaf0101221221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01012212)) = true := by + have h : ((childLH (childHL thetaAboveCell01012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01012212)) h +theorem e24KC2ThetaAboveLeaf0101221222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01012212)) = true := by + have h : ((childHL (childHL thetaAboveCell01012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01012212)) h +theorem e24KC2ThetaAboveLeaf0101221223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01012212)) = true := by + have h : ((childHH (childHL thetaAboveCell01012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01012212)) h +theorem e24KC2ThetaAboveLeaf0101221230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01012212)) = true := by + have h : ((childLL (childHH thetaAboveCell01012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01012212)) h +theorem e24KC2ThetaAboveLeaf0101221231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01012212)) = true := by + have h : ((childLH (childHH thetaAboveCell01012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01012212)) h +theorem e24KC2ThetaAboveLeaf0101221232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01012212)) = true := by + have h : ((childHL (childHH thetaAboveCell01012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01012212)) h +theorem e24KC2ThetaAboveLeaf0101221233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01012212)) = true := by + have h : ((childHH (childHH thetaAboveCell01012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01012212)) h +theorem e24KC2ThetaAboveLeaf0101221300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01012213)) = true := by + have h : ((childLL (childLL thetaAboveCell01012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01012213)) h +theorem e24KC2ThetaAboveLeaf0101221301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01012213)) = true := by + have h : ((childLH (childLL thetaAboveCell01012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01012213)) h +theorem e24KC2ThetaAboveLeaf0101221302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01012213)) = true := by + have h : ((childHL (childLL thetaAboveCell01012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01012213)) h +theorem e24KC2ThetaAboveLeaf0101221303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01012213)) = true := by + have h : ((childHH (childLL thetaAboveCell01012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01012213)) h +theorem e24KC2ThetaAboveLeaf0101221310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01012213)) = true := by + have h : ((childLL (childLH thetaAboveCell01012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01012213)) h +theorem e24KC2ThetaAboveLeaf0101221311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01012213)) = true := by + have h : ((childLH (childLH thetaAboveCell01012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01012213)) h +theorem e24KC2ThetaAboveLeaf0101221312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01012213)) = true := by + have h : ((childHL (childLH thetaAboveCell01012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01012213)) h +theorem e24KC2ThetaAboveLeaf0101221313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01012213)) = true := by + have h : ((childHH (childLH thetaAboveCell01012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01012213)) h +theorem e24KC2ThetaAboveLeaf0101221320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01012213)) = true := by + have h : ((childLL (childHL thetaAboveCell01012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01012213)) h +theorem e24KC2ThetaAboveLeaf0101221321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01012213)) = true := by + have h : ((childLH (childHL thetaAboveCell01012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01012213)) h +theorem e24KC2ThetaAboveLeaf0101221322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01012213)) = true := by + have h : ((childHL (childHL thetaAboveCell01012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01012213)) h +theorem e24KC2ThetaAboveLeaf0101221323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01012213)) = true := by + have h : ((childHH (childHL thetaAboveCell01012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01012213)) h +theorem e24KC2ThetaAboveLeaf0101221330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01012213)) = true := by + have h : ((childLL (childHH thetaAboveCell01012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01012213)) h +theorem e24KC2ThetaAboveLeaf0101221331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01012213)) = true := by + have h : ((childLH (childHH thetaAboveCell01012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01012213)) h +theorem e24KC2ThetaAboveLeaf0101221332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01012213)) = true := by + have h : ((childHL (childHH thetaAboveCell01012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01012213)) h +theorem e24KC2ThetaAboveLeaf0101221333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01012213)) = true := by + have h : ((childHH (childHH thetaAboveCell01012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01012213)) h +theorem e24KC2ThetaAboveLeaf010122200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012220) = true := by + have h : ((childLL thetaAboveCell01012220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01012220) h +theorem e24KC2ThetaAboveLeaf010122201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012220) = true := by + have h : ((childLH thetaAboveCell01012220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01012220) h +theorem e24KC2ThetaAboveLeaf010122202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012220) = true := by + have h : ((childHL thetaAboveCell01012220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01012220) h +theorem e24KC2ThetaAboveLeaf010122203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012220) = true := by + have h : ((childHH thetaAboveCell01012220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01012220) h +theorem e24KC2ThetaAboveLeaf010122210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012221) = true := by + have h : ((childLL thetaAboveCell01012221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01012221) h +theorem e24KC2ThetaAboveLeaf010122211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012221) = true := by + have h : ((childLH thetaAboveCell01012221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01012221) h +theorem e24KC2ThetaAboveLeaf010122212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012221) = true := by + have h : ((childHL thetaAboveCell01012221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01012221) h +theorem e24KC2ThetaAboveLeaf010122213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012221) = true := by + have h : ((childHH thetaAboveCell01012221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01012221) h +theorem e24KC2ThetaAboveLeaf01012222 : + adaptiveCoverCheck 11 thetaAboveCell01012222 = true := by + have h : (thetaAboveCell01012222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012222 h +theorem e24KC2ThetaAboveLeaf01012223 : + adaptiveCoverCheck 11 thetaAboveCell01012223 = true := by + have h : (thetaAboveCell01012223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012223 h +theorem e24KC2ThetaAboveLeaf010122300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012230) = true := by + have h : ((childLL thetaAboveCell01012230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01012230) h +theorem e24KC2ThetaAboveLeaf010122301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012230) = true := by + have h : ((childLH thetaAboveCell01012230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01012230) h +theorem e24KC2ThetaAboveLeaf010122302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012230) = true := by + have h : ((childHL thetaAboveCell01012230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01012230) h +theorem e24KC2ThetaAboveLeaf010122303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012230) = true := by + have h : ((childHH thetaAboveCell01012230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01012230) h +theorem e24KC2ThetaAboveLeaf010122310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012231) = true := by + have h : ((childLL thetaAboveCell01012231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01012231) h +theorem e24KC2ThetaAboveLeaf010122311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012231) = true := by + have h : ((childLH thetaAboveCell01012231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01012231) h +theorem e24KC2ThetaAboveLeaf010122312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012231) = true := by + have h : ((childHL thetaAboveCell01012231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01012231) h +theorem e24KC2ThetaAboveLeaf010122313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012231) = true := by + have h : ((childHH thetaAboveCell01012231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01012231) h +theorem e24KC2ThetaAboveLeaf01012232 : + adaptiveCoverCheck 11 thetaAboveCell01012232 = true := by + have h : (thetaAboveCell01012232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012232 h +theorem e24KC2ThetaAboveLeaf01012233 : + adaptiveCoverCheck 11 thetaAboveCell01012233 = true := by + have h : (thetaAboveCell01012233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012233 h +theorem e24KC2ThetaAboveLeaf010123000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012300) = true := by + have h : ((childLL thetaAboveCell01012300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01012300) h +theorem e24KC2ThetaAboveLeaf010123001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012300) = true := by + have h : ((childLH thetaAboveCell01012300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01012300) h +theorem e24KC2ThetaAboveLeaf0101230020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01012300)) = true := by + have h : ((childLL (childHL thetaAboveCell01012300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01012300)) h +theorem e24KC2ThetaAboveLeaf0101230021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01012300)) = true := by + have h : ((childLH (childHL thetaAboveCell01012300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01012300)) h +theorem e24KC2ThetaAboveLeaf0101230022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01012300)) = true := by + have h : ((childHL (childHL thetaAboveCell01012300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01012300)) h +theorem e24KC2ThetaAboveLeaf0101230023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01012300)) = true := by + have h : ((childHH (childHL thetaAboveCell01012300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01012300)) h +theorem e24KC2ThetaAboveLeaf0101230030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01012300)) = true := by + have h : ((childLL (childHH thetaAboveCell01012300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01012300)) h +theorem e24KC2ThetaAboveLeaf0101230031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01012300)) = true := by + have h : ((childLH (childHH thetaAboveCell01012300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01012300)) h +theorem e24KC2ThetaAboveLeaf0101230032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01012300)) = true := by + have h : ((childHL (childHH thetaAboveCell01012300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01012300)) h +theorem e24KC2ThetaAboveLeaf0101230033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01012300)) = true := by + have h : ((childHH (childHH thetaAboveCell01012300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01012300)) h +theorem e24KC2ThetaAboveLeaf010123010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012301) = true := by + have h : ((childLL thetaAboveCell01012301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01012301) h +theorem e24KC2ThetaAboveLeaf010123011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012301) = true := by + have h : ((childLH thetaAboveCell01012301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01012301) h +theorem e24KC2ThetaAboveLeaf0101230120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01012301)) = true := by + have h : ((childLL (childHL thetaAboveCell01012301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01012301)) h +theorem e24KC2ThetaAboveLeaf0101230121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01012301)) = true := by + have h : ((childLH (childHL thetaAboveCell01012301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01012301)) h +theorem e24KC2ThetaAboveLeaf0101230122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01012301)) = true := by + have h : ((childHL (childHL thetaAboveCell01012301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01012301)) h +theorem e24KC2ThetaAboveLeaf0101230123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01012301)) = true := by + have h : ((childHH (childHL thetaAboveCell01012301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01012301)) h +theorem e24KC2ThetaAboveLeaf0101230130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01012301)) = true := by + have h : ((childLL (childHH thetaAboveCell01012301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01012301)) h +theorem e24KC2ThetaAboveLeaf0101230131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01012301)) = true := by + have h : ((childLH (childHH thetaAboveCell01012301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01012301)) h +theorem e24KC2ThetaAboveLeaf0101230132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01012301)) = true := by + have h : ((childHL (childHH thetaAboveCell01012301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01012301)) h +theorem e24KC2ThetaAboveLeaf0101230133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01012301)) = true := by + have h : ((childHH (childHH thetaAboveCell01012301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01012301)) h +theorem e24KC2ThetaAboveLeaf0101230200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01012302)) = true := by + have h : ((childLL (childLL thetaAboveCell01012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01012302)) h +theorem e24KC2ThetaAboveLeaf0101230201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01012302)) = true := by + have h : ((childLH (childLL thetaAboveCell01012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01012302)) h +theorem e24KC2ThetaAboveLeaf0101230202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01012302)) = true := by + have h : ((childHL (childLL thetaAboveCell01012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01012302)) h +theorem e24KC2ThetaAboveLeaf0101230203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01012302)) = true := by + have h : ((childHH (childLL thetaAboveCell01012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01012302)) h +theorem e24KC2ThetaAboveLeaf0101230210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01012302)) = true := by + have h : ((childLL (childLH thetaAboveCell01012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01012302)) h +theorem e24KC2ThetaAboveLeaf0101230211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01012302)) = true := by + have h : ((childLH (childLH thetaAboveCell01012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01012302)) h +theorem e24KC2ThetaAboveLeaf0101230212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01012302)) = true := by + have h : ((childHL (childLH thetaAboveCell01012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01012302)) h +theorem e24KC2ThetaAboveLeaf0101230213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01012302)) = true := by + have h : ((childHH (childLH thetaAboveCell01012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01012302)) h +theorem e24KC2ThetaAboveLeaf0101230220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01012302)) = true := by + have h : ((childLL (childHL thetaAboveCell01012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01012302)) h +theorem e24KC2ThetaAboveLeaf0101230221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01012302)) = true := by + have h : ((childLH (childHL thetaAboveCell01012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01012302)) h +theorem e24KC2ThetaAboveLeaf0101230222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01012302)) = true := by + have h : ((childHL (childHL thetaAboveCell01012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01012302)) h +theorem e24KC2ThetaAboveLeaf0101230223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01012302)) = true := by + have h : ((childHH (childHL thetaAboveCell01012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01012302)) h +theorem e24KC2ThetaAboveLeaf0101230230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01012302)) = true := by + have h : ((childLL (childHH thetaAboveCell01012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01012302)) h +theorem e24KC2ThetaAboveLeaf0101230231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01012302)) = true := by + have h : ((childLH (childHH thetaAboveCell01012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01012302)) h +theorem e24KC2ThetaAboveLeaf0101230232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01012302)) = true := by + have h : ((childHL (childHH thetaAboveCell01012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01012302)) h +theorem e24KC2ThetaAboveLeaf0101230233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01012302)) = true := by + have h : ((childHH (childHH thetaAboveCell01012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01012302)) h +theorem e24KC2ThetaAboveLeaf0101230300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01012303)) = true := by + have h : ((childLL (childLL thetaAboveCell01012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01012303)) h +theorem e24KC2ThetaAboveLeaf0101230301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01012303)) = true := by + have h : ((childLH (childLL thetaAboveCell01012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01012303)) h +theorem e24KC2ThetaAboveLeaf0101230302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01012303)) = true := by + have h : ((childHL (childLL thetaAboveCell01012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01012303)) h +theorem e24KC2ThetaAboveLeaf0101230303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01012303)) = true := by + have h : ((childHH (childLL thetaAboveCell01012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01012303)) h +theorem e24KC2ThetaAboveLeaf0101230310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01012303)) = true := by + have h : ((childLL (childLH thetaAboveCell01012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01012303)) h +theorem e24KC2ThetaAboveLeaf0101230311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01012303)) = true := by + have h : ((childLH (childLH thetaAboveCell01012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01012303)) h +theorem e24KC2ThetaAboveLeaf0101230312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01012303)) = true := by + have h : ((childHL (childLH thetaAboveCell01012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01012303)) h +theorem e24KC2ThetaAboveLeaf0101230313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01012303)) = true := by + have h : ((childHH (childLH thetaAboveCell01012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01012303)) h +theorem e24KC2ThetaAboveLeaf0101230320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01012303)) = true := by + have h : ((childLL (childHL thetaAboveCell01012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01012303)) h +theorem e24KC2ThetaAboveLeaf0101230321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01012303)) = true := by + have h : ((childLH (childHL thetaAboveCell01012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01012303)) h +theorem e24KC2ThetaAboveLeaf0101230322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01012303)) = true := by + have h : ((childHL (childHL thetaAboveCell01012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01012303)) h +theorem e24KC2ThetaAboveLeaf0101230323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01012303)) = true := by + have h : ((childHH (childHL thetaAboveCell01012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01012303)) h +theorem e24KC2ThetaAboveLeaf0101230330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01012303)) = true := by + have h : ((childLL (childHH thetaAboveCell01012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01012303)) h +theorem e24KC2ThetaAboveLeaf0101230331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01012303)) = true := by + have h : ((childLH (childHH thetaAboveCell01012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01012303)) h +theorem e24KC2ThetaAboveLeaf0101230332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01012303)) = true := by + have h : ((childHL (childHH thetaAboveCell01012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01012303)) h +theorem e24KC2ThetaAboveLeaf0101230333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01012303)) = true := by + have h : ((childHH (childHH thetaAboveCell01012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01012303)) h +theorem e24KC2ThetaAboveLeaf010123100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012310) = true := by + have h : ((childLL thetaAboveCell01012310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01012310) h +theorem e24KC2ThetaAboveLeaf010123101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012310) = true := by + have h : ((childLH thetaAboveCell01012310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01012310) h +theorem e24KC2ThetaAboveLeaf0101231020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01012310)) = true := by + have h : ((childLL (childHL thetaAboveCell01012310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01012310)) h +theorem e24KC2ThetaAboveLeaf0101231021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01012310)) = true := by + have h : ((childLH (childHL thetaAboveCell01012310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01012310)) h +theorem e24KC2ThetaAboveLeaf0101231022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01012310)) = true := by + have h : ((childHL (childHL thetaAboveCell01012310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01012310)) h +theorem e24KC2ThetaAboveLeaf0101231023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01012310)) = true := by + have h : ((childHH (childHL thetaAboveCell01012310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01012310)) h +theorem e24KC2ThetaAboveLeaf0101231030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01012310)) = true := by + have h : ((childLL (childHH thetaAboveCell01012310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01012310)) h +theorem e24KC2ThetaAboveLeaf0101231031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01012310)) = true := by + have h : ((childLH (childHH thetaAboveCell01012310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01012310)) h +theorem e24KC2ThetaAboveLeaf0101231032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01012310)) = true := by + have h : ((childHL (childHH thetaAboveCell01012310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01012310)) h +theorem e24KC2ThetaAboveLeaf0101231033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01012310)) = true := by + have h : ((childHH (childHH thetaAboveCell01012310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01012310)) h +theorem e24KC2ThetaAboveLeaf010123110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012311) = true := by + have h : ((childLL thetaAboveCell01012311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01012311) h +theorem e24KC2ThetaAboveLeaf010123111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012311) = true := by + have h : ((childLH thetaAboveCell01012311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01012311) h +theorem e24KC2ThetaAboveLeaf0101231120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01012311)) = true := by + have h : ((childLL (childHL thetaAboveCell01012311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01012311)) h +theorem e24KC2ThetaAboveLeaf0101231121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01012311)) = true := by + have h : ((childLH (childHL thetaAboveCell01012311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01012311)) h +theorem e24KC2ThetaAboveLeaf0101231122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01012311)) = true := by + have h : ((childHL (childHL thetaAboveCell01012311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01012311)) h +theorem e24KC2ThetaAboveLeaf0101231123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01012311)) = true := by + have h : ((childHH (childHL thetaAboveCell01012311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01012311)) h +theorem e24KC2ThetaAboveLeaf0101231130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01012311)) = true := by + have h : ((childLL (childHH thetaAboveCell01012311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01012311)) h +theorem e24KC2ThetaAboveLeaf0101231131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01012311)) = true := by + have h : ((childLH (childHH thetaAboveCell01012311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01012311)) h +theorem e24KC2ThetaAboveLeaf0101231132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01012311)) = true := by + have h : ((childHL (childHH thetaAboveCell01012311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01012311)) h +theorem e24KC2ThetaAboveLeaf0101231133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01012311)) = true := by + have h : ((childHH (childHH thetaAboveCell01012311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01012311)) h +theorem e24KC2ThetaAboveLeaf0101231200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01012312)) = true := by + have h : ((childLL (childLL thetaAboveCell01012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01012312)) h +theorem e24KC2ThetaAboveLeaf0101231201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01012312)) = true := by + have h : ((childLH (childLL thetaAboveCell01012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01012312)) h +theorem e24KC2ThetaAboveLeaf0101231202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01012312)) = true := by + have h : ((childHL (childLL thetaAboveCell01012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01012312)) h +theorem e24KC2ThetaAboveLeaf0101231203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01012312)) = true := by + have h : ((childHH (childLL thetaAboveCell01012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01012312)) h +theorem e24KC2ThetaAboveLeaf0101231210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01012312)) = true := by + have h : ((childLL (childLH thetaAboveCell01012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01012312)) h +theorem e24KC2ThetaAboveLeaf0101231211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01012312)) = true := by + have h : ((childLH (childLH thetaAboveCell01012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01012312)) h +theorem e24KC2ThetaAboveLeaf0101231212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01012312)) = true := by + have h : ((childHL (childLH thetaAboveCell01012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01012312)) h +theorem e24KC2ThetaAboveLeaf0101231213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01012312)) = true := by + have h : ((childHH (childLH thetaAboveCell01012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01012312)) h +theorem e24KC2ThetaAboveLeaf0101231220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01012312)) = true := by + have h : ((childLL (childHL thetaAboveCell01012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01012312)) h +theorem e24KC2ThetaAboveLeaf0101231221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01012312)) = true := by + have h : ((childLH (childHL thetaAboveCell01012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01012312)) h +theorem e24KC2ThetaAboveLeaf0101231222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01012312)) = true := by + have h : ((childHL (childHL thetaAboveCell01012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01012312)) h +theorem e24KC2ThetaAboveLeaf0101231223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01012312)) = true := by + have h : ((childHH (childHL thetaAboveCell01012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01012312)) h +theorem e24KC2ThetaAboveLeaf0101231230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01012312)) = true := by + have h : ((childLL (childHH thetaAboveCell01012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01012312)) h +theorem e24KC2ThetaAboveLeaf0101231231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01012312)) = true := by + have h : ((childLH (childHH thetaAboveCell01012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01012312)) h +theorem e24KC2ThetaAboveLeaf0101231232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01012312)) = true := by + have h : ((childHL (childHH thetaAboveCell01012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01012312)) h +theorem e24KC2ThetaAboveLeaf0101231233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01012312)) = true := by + have h : ((childHH (childHH thetaAboveCell01012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01012312)) h +theorem e24KC2ThetaAboveLeaf0101231300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01012313)) = true := by + have h : ((childLL (childLL thetaAboveCell01012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01012313)) h +theorem e24KC2ThetaAboveLeaf0101231301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01012313)) = true := by + have h : ((childLH (childLL thetaAboveCell01012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01012313)) h +theorem e24KC2ThetaAboveLeaf0101231302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01012313)) = true := by + have h : ((childHL (childLL thetaAboveCell01012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01012313)) h +theorem e24KC2ThetaAboveLeaf0101231303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01012313)) = true := by + have h : ((childHH (childLL thetaAboveCell01012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01012313)) h +theorem e24KC2ThetaAboveLeaf0101231310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01012313)) = true := by + have h : ((childLL (childLH thetaAboveCell01012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01012313)) h +theorem e24KC2ThetaAboveLeaf0101231311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01012313)) = true := by + have h : ((childLH (childLH thetaAboveCell01012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01012313)) h +theorem e24KC2ThetaAboveLeaf0101231312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01012313)) = true := by + have h : ((childHL (childLH thetaAboveCell01012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01012313)) h +theorem e24KC2ThetaAboveLeaf0101231313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01012313)) = true := by + have h : ((childHH (childLH thetaAboveCell01012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01012313)) h +theorem e24KC2ThetaAboveLeaf0101231320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01012313)) = true := by + have h : ((childLL (childHL thetaAboveCell01012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01012313)) h +theorem e24KC2ThetaAboveLeaf0101231321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01012313)) = true := by + have h : ((childLH (childHL thetaAboveCell01012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01012313)) h +theorem e24KC2ThetaAboveLeaf0101231322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01012313)) = true := by + have h : ((childHL (childHL thetaAboveCell01012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01012313)) h +theorem e24KC2ThetaAboveLeaf0101231323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01012313)) = true := by + have h : ((childHH (childHL thetaAboveCell01012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01012313)) h +theorem e24KC2ThetaAboveLeaf0101231330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01012313)) = true := by + have h : ((childLL (childHH thetaAboveCell01012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01012313)) h +theorem e24KC2ThetaAboveLeaf0101231331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01012313)) = true := by + have h : ((childLH (childHH thetaAboveCell01012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01012313)) h +theorem e24KC2ThetaAboveLeaf0101231332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01012313)) = true := by + have h : ((childHL (childHH thetaAboveCell01012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01012313)) h +theorem e24KC2ThetaAboveLeaf0101231333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01012313)) = true := by + have h : ((childHH (childHH thetaAboveCell01012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01012313)) h +theorem e24KC2ThetaAboveLeaf010123200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012320) = true := by + have h : ((childLL thetaAboveCell01012320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01012320) h +theorem e24KC2ThetaAboveLeaf010123201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012320) = true := by + have h : ((childLH thetaAboveCell01012320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01012320) h +theorem e24KC2ThetaAboveLeaf010123202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012320) = true := by + have h : ((childHL thetaAboveCell01012320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01012320) h +theorem e24KC2ThetaAboveLeaf010123203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012320) = true := by + have h : ((childHH thetaAboveCell01012320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01012320) h +theorem e24KC2ThetaAboveLeaf010123210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012321) = true := by + have h : ((childLL thetaAboveCell01012321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01012321) h +theorem e24KC2ThetaAboveLeaf010123211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012321) = true := by + have h : ((childLH thetaAboveCell01012321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01012321) h +theorem e24KC2ThetaAboveLeaf010123212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012321) = true := by + have h : ((childHL thetaAboveCell01012321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01012321) h +theorem e24KC2ThetaAboveLeaf010123213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012321) = true := by + have h : ((childHH thetaAboveCell01012321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01012321) h +theorem e24KC2ThetaAboveLeaf01012322 : + adaptiveCoverCheck 11 thetaAboveCell01012322 = true := by + have h : (thetaAboveCell01012322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012322 h +theorem e24KC2ThetaAboveLeaf01012323 : + adaptiveCoverCheck 11 thetaAboveCell01012323 = true := by + have h : (thetaAboveCell01012323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012323 h +theorem e24KC2ThetaAboveLeaf010123300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012330) = true := by + have h : ((childLL thetaAboveCell01012330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01012330) h +theorem e24KC2ThetaAboveLeaf010123301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012330) = true := by + have h : ((childLH thetaAboveCell01012330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01012330) h +theorem e24KC2ThetaAboveLeaf010123302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012330) = true := by + have h : ((childHL thetaAboveCell01012330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01012330) h +theorem e24KC2ThetaAboveLeaf010123303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012330) = true := by + have h : ((childHH thetaAboveCell01012330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01012330) h +theorem e24KC2ThetaAboveLeaf010123310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012331) = true := by + have h : ((childLL thetaAboveCell01012331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01012331) h +theorem e24KC2ThetaAboveLeaf010123311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012331) = true := by + have h : ((childLH thetaAboveCell01012331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01012331) h +theorem e24KC2ThetaAboveLeaf010123312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012331) = true := by + have h : ((childHL thetaAboveCell01012331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01012331) h +theorem e24KC2ThetaAboveLeaf010123313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012331) = true := by + have h : ((childHH thetaAboveCell01012331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01012331) h +theorem e24KC2ThetaAboveLeaf01012332 : + adaptiveCoverCheck 11 thetaAboveCell01012332 = true := by + have h : (thetaAboveCell01012332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012332 h +theorem e24KC2ThetaAboveLeaf01012333 : + adaptiveCoverCheck 11 thetaAboveCell01012333 = true := by + have h : (thetaAboveCell01012333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01012333 h +theorem e24KC2ThetaAboveLeaf0101300 : + adaptiveCoverCheck 12 (childLL (childLL (childHH thetaAboveCell0101))) = true := by + have h : ((childLL (childLL (childHH thetaAboveCell0101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHH thetaAboveCell0101))) h +theorem e24KC2ThetaAboveLeaf0101301 : + adaptiveCoverCheck 12 (childLH (childLL (childHH thetaAboveCell0101))) = true := by + have h : ((childLH (childLL (childHH thetaAboveCell0101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHH thetaAboveCell0101))) h +theorem e24KC2ThetaAboveLeaf01013020 : + adaptiveCoverCheck 11 thetaAboveCell01013020 = true := by + have h : (thetaAboveCell01013020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013020 h +theorem e24KC2ThetaAboveLeaf01013021 : + adaptiveCoverCheck 11 thetaAboveCell01013021 = true := by + have h : (thetaAboveCell01013021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013021 h +theorem e24KC2ThetaAboveLeaf01013022 : + adaptiveCoverCheck 11 thetaAboveCell01013022 = true := by + have h : (thetaAboveCell01013022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013022 h +theorem e24KC2ThetaAboveLeaf01013023 : + adaptiveCoverCheck 11 thetaAboveCell01013023 = true := by + have h : (thetaAboveCell01013023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013023 h +theorem e24KC2ThetaAboveLeaf01013030 : + adaptiveCoverCheck 11 thetaAboveCell01013030 = true := by + have h : (thetaAboveCell01013030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013030 h +theorem e24KC2ThetaAboveLeaf01013031 : + adaptiveCoverCheck 11 thetaAboveCell01013031 = true := by + have h : (thetaAboveCell01013031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013031 h +theorem e24KC2ThetaAboveLeaf01013032 : + adaptiveCoverCheck 11 thetaAboveCell01013032 = true := by + have h : (thetaAboveCell01013032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013032 h +theorem e24KC2ThetaAboveLeaf01013033 : + adaptiveCoverCheck 11 thetaAboveCell01013033 = true := by + have h : (thetaAboveCell01013033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013033 h +theorem e24KC2ThetaAboveLeaf0101310 : + adaptiveCoverCheck 12 (childLL (childLH (childHH thetaAboveCell0101))) = true := by + have h : ((childLL (childLH (childHH thetaAboveCell0101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHH thetaAboveCell0101))) h +theorem e24KC2ThetaAboveLeaf0101311 : + adaptiveCoverCheck 12 (childLH (childLH (childHH thetaAboveCell0101))) = true := by + have h : ((childLH (childLH (childHH thetaAboveCell0101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHH thetaAboveCell0101))) h +theorem e24KC2ThetaAboveLeaf01013120 : + adaptiveCoverCheck 11 thetaAboveCell01013120 = true := by + have h : (thetaAboveCell01013120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013120 h +theorem e24KC2ThetaAboveLeaf01013121 : + adaptiveCoverCheck 11 thetaAboveCell01013121 = true := by + have h : (thetaAboveCell01013121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013121 h +theorem e24KC2ThetaAboveLeaf01013122 : + adaptiveCoverCheck 11 thetaAboveCell01013122 = true := by + have h : (thetaAboveCell01013122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013122 h +theorem e24KC2ThetaAboveLeaf01013123 : + adaptiveCoverCheck 11 thetaAboveCell01013123 = true := by + have h : (thetaAboveCell01013123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013123 h +theorem e24KC2ThetaAboveLeaf01013130 : + adaptiveCoverCheck 11 thetaAboveCell01013130 = true := by + have h : (thetaAboveCell01013130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013130 h +theorem e24KC2ThetaAboveLeaf01013131 : + adaptiveCoverCheck 11 thetaAboveCell01013131 = true := by + have h : (thetaAboveCell01013131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013131 h +theorem e24KC2ThetaAboveLeaf01013132 : + adaptiveCoverCheck 11 thetaAboveCell01013132 = true := by + have h : (thetaAboveCell01013132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013132 h +theorem e24KC2ThetaAboveLeaf01013133 : + adaptiveCoverCheck 11 thetaAboveCell01013133 = true := by + have h : (thetaAboveCell01013133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013133 h +theorem e24KC2ThetaAboveLeaf010132000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013200) = true := by + have h : ((childLL thetaAboveCell01013200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01013200) h +theorem e24KC2ThetaAboveLeaf010132001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013200) = true := by + have h : ((childLH thetaAboveCell01013200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01013200) h +theorem e24KC2ThetaAboveLeaf0101320020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01013200)) = true := by + have h : ((childLL (childHL thetaAboveCell01013200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01013200)) h +theorem e24KC2ThetaAboveLeaf0101320021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01013200)) = true := by + have h : ((childLH (childHL thetaAboveCell01013200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01013200)) h +theorem e24KC2ThetaAboveLeaf0101320022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01013200)) = true := by + have h : ((childHL (childHL thetaAboveCell01013200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01013200)) h +theorem e24KC2ThetaAboveLeaf0101320023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01013200)) = true := by + have h : ((childHH (childHL thetaAboveCell01013200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01013200)) h +theorem e24KC2ThetaAboveLeaf0101320030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01013200)) = true := by + have h : ((childLL (childHH thetaAboveCell01013200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01013200)) h +theorem e24KC2ThetaAboveLeaf0101320031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01013200)) = true := by + have h : ((childLH (childHH thetaAboveCell01013200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01013200)) h +theorem e24KC2ThetaAboveLeaf0101320032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01013200)) = true := by + have h : ((childHL (childHH thetaAboveCell01013200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01013200)) h +theorem e24KC2ThetaAboveLeaf0101320033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01013200)) = true := by + have h : ((childHH (childHH thetaAboveCell01013200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01013200)) h +theorem e24KC2ThetaAboveLeaf010132010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013201) = true := by + have h : ((childLL thetaAboveCell01013201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01013201) h +theorem e24KC2ThetaAboveLeaf010132011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013201) = true := by + have h : ((childLH thetaAboveCell01013201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01013201) h +theorem e24KC2ThetaAboveLeaf0101320120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01013201)) = true := by + have h : ((childLL (childHL thetaAboveCell01013201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01013201)) h +theorem e24KC2ThetaAboveLeaf0101320121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01013201)) = true := by + have h : ((childLH (childHL thetaAboveCell01013201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01013201)) h +theorem e24KC2ThetaAboveLeaf0101320122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01013201)) = true := by + have h : ((childHL (childHL thetaAboveCell01013201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01013201)) h +theorem e24KC2ThetaAboveLeaf0101320123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01013201)) = true := by + have h : ((childHH (childHL thetaAboveCell01013201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01013201)) h +theorem e24KC2ThetaAboveLeaf0101320130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01013201)) = true := by + have h : ((childLL (childHH thetaAboveCell01013201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01013201)) h +theorem e24KC2ThetaAboveLeaf0101320131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01013201)) = true := by + have h : ((childLH (childHH thetaAboveCell01013201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01013201)) h +theorem e24KC2ThetaAboveLeaf0101320132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01013201)) = true := by + have h : ((childHL (childHH thetaAboveCell01013201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01013201)) h +theorem e24KC2ThetaAboveLeaf0101320133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01013201)) = true := by + have h : ((childHH (childHH thetaAboveCell01013201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01013201)) h +theorem e24KC2ThetaAboveLeaf0101320200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01013202)) = true := by + have h : ((childLL (childLL thetaAboveCell01013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01013202)) h +theorem e24KC2ThetaAboveLeaf0101320201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01013202)) = true := by + have h : ((childLH (childLL thetaAboveCell01013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01013202)) h +theorem e24KC2ThetaAboveLeaf0101320202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01013202)) = true := by + have h : ((childHL (childLL thetaAboveCell01013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01013202)) h +theorem e24KC2ThetaAboveLeaf0101320203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01013202)) = true := by + have h : ((childHH (childLL thetaAboveCell01013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01013202)) h +theorem e24KC2ThetaAboveLeaf0101320210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01013202)) = true := by + have h : ((childLL (childLH thetaAboveCell01013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01013202)) h +theorem e24KC2ThetaAboveLeaf0101320211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01013202)) = true := by + have h : ((childLH (childLH thetaAboveCell01013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01013202)) h +theorem e24KC2ThetaAboveLeaf0101320212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01013202)) = true := by + have h : ((childHL (childLH thetaAboveCell01013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01013202)) h +theorem e24KC2ThetaAboveLeaf0101320213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01013202)) = true := by + have h : ((childHH (childLH thetaAboveCell01013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01013202)) h +theorem e24KC2ThetaAboveLeaf0101320220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01013202)) = true := by + have h : ((childLL (childHL thetaAboveCell01013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01013202)) h +theorem e24KC2ThetaAboveLeaf0101320221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01013202)) = true := by + have h : ((childLH (childHL thetaAboveCell01013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01013202)) h +theorem e24KC2ThetaAboveLeaf0101320222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01013202)) = true := by + have h : ((childHL (childHL thetaAboveCell01013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01013202)) h +theorem e24KC2ThetaAboveLeaf0101320223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01013202)) = true := by + have h : ((childHH (childHL thetaAboveCell01013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01013202)) h +theorem e24KC2ThetaAboveLeaf0101320230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01013202)) = true := by + have h : ((childLL (childHH thetaAboveCell01013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01013202)) h +theorem e24KC2ThetaAboveLeaf0101320231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01013202)) = true := by + have h : ((childLH (childHH thetaAboveCell01013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01013202)) h +theorem e24KC2ThetaAboveLeaf0101320232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01013202)) = true := by + have h : ((childHL (childHH thetaAboveCell01013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01013202)) h +theorem e24KC2ThetaAboveLeaf0101320233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01013202)) = true := by + have h : ((childHH (childHH thetaAboveCell01013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01013202)) h +theorem e24KC2ThetaAboveLeaf0101320300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01013203)) = true := by + have h : ((childLL (childLL thetaAboveCell01013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01013203)) h +theorem e24KC2ThetaAboveLeaf0101320301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01013203)) = true := by + have h : ((childLH (childLL thetaAboveCell01013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01013203)) h +theorem e24KC2ThetaAboveLeaf0101320302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01013203)) = true := by + have h : ((childHL (childLL thetaAboveCell01013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01013203)) h +theorem e24KC2ThetaAboveLeaf0101320303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01013203)) = true := by + have h : ((childHH (childLL thetaAboveCell01013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01013203)) h +theorem e24KC2ThetaAboveLeaf0101320310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01013203)) = true := by + have h : ((childLL (childLH thetaAboveCell01013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01013203)) h +theorem e24KC2ThetaAboveLeaf0101320311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01013203)) = true := by + have h : ((childLH (childLH thetaAboveCell01013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01013203)) h +theorem e24KC2ThetaAboveLeaf0101320312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01013203)) = true := by + have h : ((childHL (childLH thetaAboveCell01013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01013203)) h +theorem e24KC2ThetaAboveLeaf0101320313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01013203)) = true := by + have h : ((childHH (childLH thetaAboveCell01013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01013203)) h +theorem e24KC2ThetaAboveLeaf0101320320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01013203)) = true := by + have h : ((childLL (childHL thetaAboveCell01013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01013203)) h +theorem e24KC2ThetaAboveLeaf0101320321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01013203)) = true := by + have h : ((childLH (childHL thetaAboveCell01013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01013203)) h +theorem e24KC2ThetaAboveLeaf0101320322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01013203)) = true := by + have h : ((childHL (childHL thetaAboveCell01013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01013203)) h +theorem e24KC2ThetaAboveLeaf0101320323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01013203)) = true := by + have h : ((childHH (childHL thetaAboveCell01013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01013203)) h +theorem e24KC2ThetaAboveLeaf0101320330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01013203)) = true := by + have h : ((childLL (childHH thetaAboveCell01013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01013203)) h +theorem e24KC2ThetaAboveLeaf0101320331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01013203)) = true := by + have h : ((childLH (childHH thetaAboveCell01013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01013203)) h +theorem e24KC2ThetaAboveLeaf0101320332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01013203)) = true := by + have h : ((childHL (childHH thetaAboveCell01013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01013203)) h +theorem e24KC2ThetaAboveLeaf0101320333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01013203)) = true := by + have h : ((childHH (childHH thetaAboveCell01013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01013203)) h +theorem e24KC2ThetaAboveLeaf010132100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013210) = true := by + have h : ((childLL thetaAboveCell01013210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01013210) h +theorem e24KC2ThetaAboveLeaf010132101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013210) = true := by + have h : ((childLH thetaAboveCell01013210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01013210) h +theorem e24KC2ThetaAboveLeaf0101321020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01013210)) = true := by + have h : ((childLL (childHL thetaAboveCell01013210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01013210)) h +theorem e24KC2ThetaAboveLeaf0101321021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01013210)) = true := by + have h : ((childLH (childHL thetaAboveCell01013210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01013210)) h +theorem e24KC2ThetaAboveLeaf0101321022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01013210)) = true := by + have h : ((childHL (childHL thetaAboveCell01013210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01013210)) h +theorem e24KC2ThetaAboveLeaf0101321023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01013210)) = true := by + have h : ((childHH (childHL thetaAboveCell01013210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01013210)) h +theorem e24KC2ThetaAboveLeaf0101321030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01013210)) = true := by + have h : ((childLL (childHH thetaAboveCell01013210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01013210)) h +theorem e24KC2ThetaAboveLeaf0101321031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01013210)) = true := by + have h : ((childLH (childHH thetaAboveCell01013210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01013210)) h +theorem e24KC2ThetaAboveLeaf0101321032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01013210)) = true := by + have h : ((childHL (childHH thetaAboveCell01013210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01013210)) h +theorem e24KC2ThetaAboveLeaf0101321033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01013210)) = true := by + have h : ((childHH (childHH thetaAboveCell01013210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01013210)) h +theorem e24KC2ThetaAboveLeaf010132110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013211) = true := by + have h : ((childLL thetaAboveCell01013211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01013211) h +theorem e24KC2ThetaAboveLeaf010132111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013211) = true := by + have h : ((childLH thetaAboveCell01013211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01013211) h +theorem e24KC2ThetaAboveLeaf0101321120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01013211)) = true := by + have h : ((childLL (childHL thetaAboveCell01013211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01013211)) h +theorem e24KC2ThetaAboveLeaf0101321121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01013211)) = true := by + have h : ((childLH (childHL thetaAboveCell01013211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01013211)) h +theorem e24KC2ThetaAboveLeaf0101321122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01013211)) = true := by + have h : ((childHL (childHL thetaAboveCell01013211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01013211)) h +theorem e24KC2ThetaAboveLeaf0101321123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01013211)) = true := by + have h : ((childHH (childHL thetaAboveCell01013211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01013211)) h +theorem e24KC2ThetaAboveLeaf0101321130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01013211)) = true := by + have h : ((childLL (childHH thetaAboveCell01013211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01013211)) h +theorem e24KC2ThetaAboveLeaf0101321131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01013211)) = true := by + have h : ((childLH (childHH thetaAboveCell01013211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01013211)) h +theorem e24KC2ThetaAboveLeaf0101321132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01013211)) = true := by + have h : ((childHL (childHH thetaAboveCell01013211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01013211)) h +theorem e24KC2ThetaAboveLeaf0101321133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01013211)) = true := by + have h : ((childHH (childHH thetaAboveCell01013211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01013211)) h +theorem e24KC2ThetaAboveLeaf0101321200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01013212)) = true := by + have h : ((childLL (childLL thetaAboveCell01013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01013212)) h +theorem e24KC2ThetaAboveLeaf0101321201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01013212)) = true := by + have h : ((childLH (childLL thetaAboveCell01013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01013212)) h +theorem e24KC2ThetaAboveLeaf0101321202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01013212)) = true := by + have h : ((childHL (childLL thetaAboveCell01013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01013212)) h +theorem e24KC2ThetaAboveLeaf0101321203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01013212)) = true := by + have h : ((childHH (childLL thetaAboveCell01013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01013212)) h +theorem e24KC2ThetaAboveLeaf0101321210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01013212)) = true := by + have h : ((childLL (childLH thetaAboveCell01013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01013212)) h +theorem e24KC2ThetaAboveLeaf0101321211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01013212)) = true := by + have h : ((childLH (childLH thetaAboveCell01013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01013212)) h +theorem e24KC2ThetaAboveLeaf0101321212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01013212)) = true := by + have h : ((childHL (childLH thetaAboveCell01013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01013212)) h +theorem e24KC2ThetaAboveLeaf0101321213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01013212)) = true := by + have h : ((childHH (childLH thetaAboveCell01013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01013212)) h +theorem e24KC2ThetaAboveLeaf0101321220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01013212)) = true := by + have h : ((childLL (childHL thetaAboveCell01013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01013212)) h +theorem e24KC2ThetaAboveLeaf0101321221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01013212)) = true := by + have h : ((childLH (childHL thetaAboveCell01013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01013212)) h +theorem e24KC2ThetaAboveLeaf0101321222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01013212)) = true := by + have h : ((childHL (childHL thetaAboveCell01013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01013212)) h +theorem e24KC2ThetaAboveLeaf0101321223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01013212)) = true := by + have h : ((childHH (childHL thetaAboveCell01013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01013212)) h +theorem e24KC2ThetaAboveLeaf0101321230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01013212)) = true := by + have h : ((childLL (childHH thetaAboveCell01013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01013212)) h +theorem e24KC2ThetaAboveLeaf0101321231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01013212)) = true := by + have h : ((childLH (childHH thetaAboveCell01013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01013212)) h +theorem e24KC2ThetaAboveLeaf0101321232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01013212)) = true := by + have h : ((childHL (childHH thetaAboveCell01013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01013212)) h +theorem e24KC2ThetaAboveLeaf0101321233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01013212)) = true := by + have h : ((childHH (childHH thetaAboveCell01013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01013212)) h +theorem e24KC2ThetaAboveLeaf0101321300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01013213)) = true := by + have h : ((childLL (childLL thetaAboveCell01013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01013213)) h +theorem e24KC2ThetaAboveLeaf0101321301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01013213)) = true := by + have h : ((childLH (childLL thetaAboveCell01013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01013213)) h +theorem e24KC2ThetaAboveLeaf0101321302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01013213)) = true := by + have h : ((childHL (childLL thetaAboveCell01013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01013213)) h +theorem e24KC2ThetaAboveLeaf0101321303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01013213)) = true := by + have h : ((childHH (childLL thetaAboveCell01013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01013213)) h +theorem e24KC2ThetaAboveLeaf0101321310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01013213)) = true := by + have h : ((childLL (childLH thetaAboveCell01013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01013213)) h +theorem e24KC2ThetaAboveLeaf0101321311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01013213)) = true := by + have h : ((childLH (childLH thetaAboveCell01013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01013213)) h +theorem e24KC2ThetaAboveLeaf0101321312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01013213)) = true := by + have h : ((childHL (childLH thetaAboveCell01013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01013213)) h +theorem e24KC2ThetaAboveLeaf0101321313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01013213)) = true := by + have h : ((childHH (childLH thetaAboveCell01013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01013213)) h +theorem e24KC2ThetaAboveLeaf0101321320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01013213)) = true := by + have h : ((childLL (childHL thetaAboveCell01013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01013213)) h +theorem e24KC2ThetaAboveLeaf0101321321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01013213)) = true := by + have h : ((childLH (childHL thetaAboveCell01013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01013213)) h +theorem e24KC2ThetaAboveLeaf0101321322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01013213)) = true := by + have h : ((childHL (childHL thetaAboveCell01013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01013213)) h +theorem e24KC2ThetaAboveLeaf0101321323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01013213)) = true := by + have h : ((childHH (childHL thetaAboveCell01013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01013213)) h +theorem e24KC2ThetaAboveLeaf0101321330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01013213)) = true := by + have h : ((childLL (childHH thetaAboveCell01013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01013213)) h +theorem e24KC2ThetaAboveLeaf0101321331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01013213)) = true := by + have h : ((childLH (childHH thetaAboveCell01013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01013213)) h +theorem e24KC2ThetaAboveLeaf0101321332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01013213)) = true := by + have h : ((childHL (childHH thetaAboveCell01013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01013213)) h +theorem e24KC2ThetaAboveLeaf0101321333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01013213)) = true := by + have h : ((childHH (childHH thetaAboveCell01013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01013213)) h +theorem e24KC2ThetaAboveLeaf010132200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013220) = true := by + have h : ((childLL thetaAboveCell01013220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01013220) h +theorem e24KC2ThetaAboveLeaf010132201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013220) = true := by + have h : ((childLH thetaAboveCell01013220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01013220) h +theorem e24KC2ThetaAboveLeaf010132202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013220) = true := by + have h : ((childHL thetaAboveCell01013220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01013220) h +theorem e24KC2ThetaAboveLeaf010132203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013220) = true := by + have h : ((childHH thetaAboveCell01013220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01013220) h +theorem e24KC2ThetaAboveLeaf010132210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013221) = true := by + have h : ((childLL thetaAboveCell01013221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01013221) h +theorem e24KC2ThetaAboveLeaf010132211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013221) = true := by + have h : ((childLH thetaAboveCell01013221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01013221) h +theorem e24KC2ThetaAboveLeaf010132212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013221) = true := by + have h : ((childHL thetaAboveCell01013221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01013221) h +theorem e24KC2ThetaAboveLeaf010132213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013221) = true := by + have h : ((childHH thetaAboveCell01013221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01013221) h +theorem e24KC2ThetaAboveLeaf01013222 : + adaptiveCoverCheck 11 thetaAboveCell01013222 = true := by + have h : (thetaAboveCell01013222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013222 h +theorem e24KC2ThetaAboveLeaf01013223 : + adaptiveCoverCheck 11 thetaAboveCell01013223 = true := by + have h : (thetaAboveCell01013223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013223 h +theorem e24KC2ThetaAboveLeaf010132300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013230) = true := by + have h : ((childLL thetaAboveCell01013230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01013230) h +theorem e24KC2ThetaAboveLeaf010132301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013230) = true := by + have h : ((childLH thetaAboveCell01013230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01013230) h +theorem e24KC2ThetaAboveLeaf010132302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013230) = true := by + have h : ((childHL thetaAboveCell01013230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01013230) h +theorem e24KC2ThetaAboveLeaf010132303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013230) = true := by + have h : ((childHH thetaAboveCell01013230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01013230) h +theorem e24KC2ThetaAboveLeaf010132310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013231) = true := by + have h : ((childLL thetaAboveCell01013231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01013231) h +theorem e24KC2ThetaAboveLeaf010132311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013231) = true := by + have h : ((childLH thetaAboveCell01013231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01013231) h +theorem e24KC2ThetaAboveLeaf010132312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013231) = true := by + have h : ((childHL thetaAboveCell01013231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01013231) h +theorem e24KC2ThetaAboveLeaf010132313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013231) = true := by + have h : ((childHH thetaAboveCell01013231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01013231) h +theorem e24KC2ThetaAboveLeaf01013232 : + adaptiveCoverCheck 11 thetaAboveCell01013232 = true := by + have h : (thetaAboveCell01013232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013232 h +theorem e24KC2ThetaAboveLeaf01013233 : + adaptiveCoverCheck 11 thetaAboveCell01013233 = true := by + have h : (thetaAboveCell01013233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013233 h +theorem e24KC2ThetaAboveLeaf010133000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013300) = true := by + have h : ((childLL thetaAboveCell01013300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01013300) h +theorem e24KC2ThetaAboveLeaf010133001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013300) = true := by + have h : ((childLH thetaAboveCell01013300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01013300) h +theorem e24KC2ThetaAboveLeaf0101330020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01013300)) = true := by + have h : ((childLL (childHL thetaAboveCell01013300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01013300)) h +theorem e24KC2ThetaAboveLeaf0101330021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01013300)) = true := by + have h : ((childLH (childHL thetaAboveCell01013300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01013300)) h +theorem e24KC2ThetaAboveLeaf0101330022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01013300)) = true := by + have h : ((childHL (childHL thetaAboveCell01013300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01013300)) h +theorem e24KC2ThetaAboveLeaf0101330023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01013300)) = true := by + have h : ((childHH (childHL thetaAboveCell01013300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01013300)) h +theorem e24KC2ThetaAboveLeaf0101330030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01013300)) = true := by + have h : ((childLL (childHH thetaAboveCell01013300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01013300)) h +theorem e24KC2ThetaAboveLeaf0101330031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01013300)) = true := by + have h : ((childLH (childHH thetaAboveCell01013300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01013300)) h +theorem e24KC2ThetaAboveLeaf0101330032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01013300)) = true := by + have h : ((childHL (childHH thetaAboveCell01013300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01013300)) h +theorem e24KC2ThetaAboveLeaf0101330033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01013300)) = true := by + have h : ((childHH (childHH thetaAboveCell01013300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01013300)) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6df5a7a03f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6df5a7a03f + +open CertificateCells6df5a7a03f +theorem e24KC2ThetaAboveLeaf010133010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013301) = true := by + have h : ((childLL thetaAboveCell01013301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01013301) h +theorem e24KC2ThetaAboveLeaf010133011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013301) = true := by + have h : ((childLH thetaAboveCell01013301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01013301) h +theorem e24KC2ThetaAboveLeaf0101330120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01013301)) = true := by + have h : ((childLL (childHL thetaAboveCell01013301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01013301)) h +theorem e24KC2ThetaAboveLeaf0101330121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01013301)) = true := by + have h : ((childLH (childHL thetaAboveCell01013301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01013301)) h +theorem e24KC2ThetaAboveLeaf0101330122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01013301)) = true := by + have h : ((childHL (childHL thetaAboveCell01013301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01013301)) h +theorem e24KC2ThetaAboveLeaf0101330123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01013301)) = true := by + have h : ((childHH (childHL thetaAboveCell01013301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01013301)) h +theorem e24KC2ThetaAboveLeaf0101330130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01013301)) = true := by + have h : ((childLL (childHH thetaAboveCell01013301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01013301)) h +theorem e24KC2ThetaAboveLeaf0101330131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01013301)) = true := by + have h : ((childLH (childHH thetaAboveCell01013301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01013301)) h +theorem e24KC2ThetaAboveLeaf0101330132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01013301)) = true := by + have h : ((childHL (childHH thetaAboveCell01013301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01013301)) h +theorem e24KC2ThetaAboveLeaf0101330133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01013301)) = true := by + have h : ((childHH (childHH thetaAboveCell01013301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01013301)) h +theorem e24KC2ThetaAboveLeaf0101330200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01013302)) = true := by + have h : ((childLL (childLL thetaAboveCell01013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01013302)) h +theorem e24KC2ThetaAboveLeaf0101330201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01013302)) = true := by + have h : ((childLH (childLL thetaAboveCell01013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01013302)) h +theorem e24KC2ThetaAboveLeaf0101330202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01013302)) = true := by + have h : ((childHL (childLL thetaAboveCell01013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01013302)) h +theorem e24KC2ThetaAboveLeaf0101330203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01013302)) = true := by + have h : ((childHH (childLL thetaAboveCell01013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01013302)) h +theorem e24KC2ThetaAboveLeaf0101330210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01013302)) = true := by + have h : ((childLL (childLH thetaAboveCell01013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01013302)) h +theorem e24KC2ThetaAboveLeaf0101330211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01013302)) = true := by + have h : ((childLH (childLH thetaAboveCell01013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01013302)) h +theorem e24KC2ThetaAboveLeaf0101330212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01013302)) = true := by + have h : ((childHL (childLH thetaAboveCell01013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01013302)) h +theorem e24KC2ThetaAboveLeaf0101330213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01013302)) = true := by + have h : ((childHH (childLH thetaAboveCell01013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01013302)) h +theorem e24KC2ThetaAboveLeaf0101330220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01013302)) = true := by + have h : ((childLL (childHL thetaAboveCell01013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01013302)) h +theorem e24KC2ThetaAboveLeaf0101330221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01013302)) = true := by + have h : ((childLH (childHL thetaAboveCell01013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01013302)) h +theorem e24KC2ThetaAboveLeaf0101330222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01013302)) = true := by + have h : ((childHL (childHL thetaAboveCell01013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01013302)) h +theorem e24KC2ThetaAboveLeaf0101330223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01013302)) = true := by + have h : ((childHH (childHL thetaAboveCell01013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01013302)) h +theorem e24KC2ThetaAboveLeaf0101330230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01013302)) = true := by + have h : ((childLL (childHH thetaAboveCell01013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01013302)) h +theorem e24KC2ThetaAboveLeaf0101330231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01013302)) = true := by + have h : ((childLH (childHH thetaAboveCell01013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01013302)) h +theorem e24KC2ThetaAboveLeaf0101330232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01013302)) = true := by + have h : ((childHL (childHH thetaAboveCell01013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01013302)) h +theorem e24KC2ThetaAboveLeaf0101330233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01013302)) = true := by + have h : ((childHH (childHH thetaAboveCell01013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01013302)) h +theorem e24KC2ThetaAboveLeaf0101330300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01013303)) = true := by + have h : ((childLL (childLL thetaAboveCell01013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01013303)) h +theorem e24KC2ThetaAboveLeaf0101330301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01013303)) = true := by + have h : ((childLH (childLL thetaAboveCell01013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01013303)) h +theorem e24KC2ThetaAboveLeaf0101330302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01013303)) = true := by + have h : ((childHL (childLL thetaAboveCell01013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01013303)) h +theorem e24KC2ThetaAboveLeaf0101330303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01013303)) = true := by + have h : ((childHH (childLL thetaAboveCell01013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01013303)) h +theorem e24KC2ThetaAboveLeaf0101330310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01013303)) = true := by + have h : ((childLL (childLH thetaAboveCell01013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01013303)) h +theorem e24KC2ThetaAboveLeaf0101330311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01013303)) = true := by + have h : ((childLH (childLH thetaAboveCell01013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01013303)) h +theorem e24KC2ThetaAboveLeaf0101330312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01013303)) = true := by + have h : ((childHL (childLH thetaAboveCell01013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01013303)) h +theorem e24KC2ThetaAboveLeaf0101330313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01013303)) = true := by + have h : ((childHH (childLH thetaAboveCell01013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01013303)) h +theorem e24KC2ThetaAboveLeaf0101330320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01013303)) = true := by + have h : ((childLL (childHL thetaAboveCell01013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01013303)) h +theorem e24KC2ThetaAboveLeaf0101330321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01013303)) = true := by + have h : ((childLH (childHL thetaAboveCell01013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01013303)) h +theorem e24KC2ThetaAboveLeaf0101330322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01013303)) = true := by + have h : ((childHL (childHL thetaAboveCell01013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01013303)) h +theorem e24KC2ThetaAboveLeaf0101330323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01013303)) = true := by + have h : ((childHH (childHL thetaAboveCell01013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01013303)) h +theorem e24KC2ThetaAboveLeaf0101330330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01013303)) = true := by + have h : ((childLL (childHH thetaAboveCell01013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01013303)) h +theorem e24KC2ThetaAboveLeaf0101330331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01013303)) = true := by + have h : ((childLH (childHH thetaAboveCell01013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01013303)) h +theorem e24KC2ThetaAboveLeaf0101330332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01013303)) = true := by + have h : ((childHL (childHH thetaAboveCell01013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01013303)) h +theorem e24KC2ThetaAboveLeaf0101330333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01013303)) = true := by + have h : ((childHH (childHH thetaAboveCell01013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01013303)) h +theorem e24KC2ThetaAboveLeaf010133100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013310) = true := by + have h : ((childLL thetaAboveCell01013310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01013310) h +theorem e24KC2ThetaAboveLeaf010133101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013310) = true := by + have h : ((childLH thetaAboveCell01013310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01013310) h +theorem e24KC2ThetaAboveLeaf0101331020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01013310)) = true := by + have h : ((childLL (childHL thetaAboveCell01013310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01013310)) h +theorem e24KC2ThetaAboveLeaf0101331021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01013310)) = true := by + have h : ((childLH (childHL thetaAboveCell01013310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01013310)) h +theorem e24KC2ThetaAboveLeaf0101331022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01013310)) = true := by + have h : ((childHL (childHL thetaAboveCell01013310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01013310)) h +theorem e24KC2ThetaAboveLeaf0101331023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01013310)) = true := by + have h : ((childHH (childHL thetaAboveCell01013310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01013310)) h +theorem e24KC2ThetaAboveLeaf0101331030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01013310)) = true := by + have h : ((childLL (childHH thetaAboveCell01013310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01013310)) h +theorem e24KC2ThetaAboveLeaf0101331031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01013310)) = true := by + have h : ((childLH (childHH thetaAboveCell01013310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01013310)) h +theorem e24KC2ThetaAboveLeaf0101331032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01013310)) = true := by + have h : ((childHL (childHH thetaAboveCell01013310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01013310)) h +theorem e24KC2ThetaAboveLeaf0101331033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01013310)) = true := by + have h : ((childHH (childHH thetaAboveCell01013310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01013310)) h +theorem e24KC2ThetaAboveLeaf010133110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013311) = true := by + have h : ((childLL thetaAboveCell01013311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01013311) h +theorem e24KC2ThetaAboveLeaf010133111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013311) = true := by + have h : ((childLH thetaAboveCell01013311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01013311) h +theorem e24KC2ThetaAboveLeaf0101331120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01013311)) = true := by + have h : ((childLL (childHL thetaAboveCell01013311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01013311)) h +theorem e24KC2ThetaAboveLeaf0101331121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01013311)) = true := by + have h : ((childLH (childHL thetaAboveCell01013311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01013311)) h +theorem e24KC2ThetaAboveLeaf0101331122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01013311)) = true := by + have h : ((childHL (childHL thetaAboveCell01013311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01013311)) h +theorem e24KC2ThetaAboveLeaf0101331123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01013311)) = true := by + have h : ((childHH (childHL thetaAboveCell01013311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01013311)) h +theorem e24KC2ThetaAboveLeaf0101331130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01013311)) = true := by + have h : ((childLL (childHH thetaAboveCell01013311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01013311)) h +theorem e24KC2ThetaAboveLeaf0101331131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01013311)) = true := by + have h : ((childLH (childHH thetaAboveCell01013311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01013311)) h +theorem e24KC2ThetaAboveLeaf0101331132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01013311)) = true := by + have h : ((childHL (childHH thetaAboveCell01013311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01013311)) h +theorem e24KC2ThetaAboveLeaf0101331133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01013311)) = true := by + have h : ((childHH (childHH thetaAboveCell01013311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01013311)) h +theorem e24KC2ThetaAboveLeaf0101331200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01013312)) = true := by + have h : ((childLL (childLL thetaAboveCell01013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01013312)) h +theorem e24KC2ThetaAboveLeaf0101331201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01013312)) = true := by + have h : ((childLH (childLL thetaAboveCell01013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01013312)) h +theorem e24KC2ThetaAboveLeaf0101331202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01013312)) = true := by + have h : ((childHL (childLL thetaAboveCell01013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01013312)) h +theorem e24KC2ThetaAboveLeaf0101331203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01013312)) = true := by + have h : ((childHH (childLL thetaAboveCell01013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01013312)) h +theorem e24KC2ThetaAboveLeaf0101331210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01013312)) = true := by + have h : ((childLL (childLH thetaAboveCell01013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01013312)) h +theorem e24KC2ThetaAboveLeaf0101331211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01013312)) = true := by + have h : ((childLH (childLH thetaAboveCell01013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01013312)) h +theorem e24KC2ThetaAboveLeaf0101331212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01013312)) = true := by + have h : ((childHL (childLH thetaAboveCell01013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01013312)) h +theorem e24KC2ThetaAboveLeaf0101331213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01013312)) = true := by + have h : ((childHH (childLH thetaAboveCell01013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01013312)) h +theorem e24KC2ThetaAboveLeaf0101331220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01013312)) = true := by + have h : ((childLL (childHL thetaAboveCell01013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01013312)) h +theorem e24KC2ThetaAboveLeaf0101331221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01013312)) = true := by + have h : ((childLH (childHL thetaAboveCell01013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01013312)) h +theorem e24KC2ThetaAboveLeaf0101331222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01013312)) = true := by + have h : ((childHL (childHL thetaAboveCell01013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01013312)) h +theorem e24KC2ThetaAboveLeaf0101331223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01013312)) = true := by + have h : ((childHH (childHL thetaAboveCell01013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01013312)) h +theorem e24KC2ThetaAboveLeaf0101331230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01013312)) = true := by + have h : ((childLL (childHH thetaAboveCell01013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01013312)) h +theorem e24KC2ThetaAboveLeaf0101331231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01013312)) = true := by + have h : ((childLH (childHH thetaAboveCell01013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01013312)) h +theorem e24KC2ThetaAboveLeaf0101331232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01013312)) = true := by + have h : ((childHL (childHH thetaAboveCell01013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01013312)) h +theorem e24KC2ThetaAboveLeaf0101331233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01013312)) = true := by + have h : ((childHH (childHH thetaAboveCell01013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01013312)) h +theorem e24KC2ThetaAboveLeaf0101331300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01013313)) = true := by + have h : ((childLL (childLL thetaAboveCell01013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01013313)) h +theorem e24KC2ThetaAboveLeaf0101331301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01013313)) = true := by + have h : ((childLH (childLL thetaAboveCell01013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01013313)) h +theorem e24KC2ThetaAboveLeaf0101331302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01013313)) = true := by + have h : ((childHL (childLL thetaAboveCell01013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01013313)) h +theorem e24KC2ThetaAboveLeaf0101331303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01013313)) = true := by + have h : ((childHH (childLL thetaAboveCell01013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01013313)) h +theorem e24KC2ThetaAboveLeaf0101331310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01013313)) = true := by + have h : ((childLL (childLH thetaAboveCell01013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01013313)) h +theorem e24KC2ThetaAboveLeaf0101331311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01013313)) = true := by + have h : ((childLH (childLH thetaAboveCell01013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01013313)) h +theorem e24KC2ThetaAboveLeaf0101331312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01013313)) = true := by + have h : ((childHL (childLH thetaAboveCell01013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01013313)) h +theorem e24KC2ThetaAboveLeaf0101331313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01013313)) = true := by + have h : ((childHH (childLH thetaAboveCell01013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01013313)) h +theorem e24KC2ThetaAboveLeaf0101331320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01013313)) = true := by + have h : ((childLL (childHL thetaAboveCell01013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01013313)) h +theorem e24KC2ThetaAboveLeaf0101331321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01013313)) = true := by + have h : ((childLH (childHL thetaAboveCell01013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01013313)) h +theorem e24KC2ThetaAboveLeaf0101331322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01013313)) = true := by + have h : ((childHL (childHL thetaAboveCell01013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01013313)) h +theorem e24KC2ThetaAboveLeaf0101331323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01013313)) = true := by + have h : ((childHH (childHL thetaAboveCell01013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01013313)) h +theorem e24KC2ThetaAboveLeaf0101331330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01013313)) = true := by + have h : ((childLL (childHH thetaAboveCell01013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01013313)) h +theorem e24KC2ThetaAboveLeaf0101331331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01013313)) = true := by + have h : ((childLH (childHH thetaAboveCell01013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01013313)) h +theorem e24KC2ThetaAboveLeaf0101331332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01013313)) = true := by + have h : ((childHL (childHH thetaAboveCell01013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01013313)) h +theorem e24KC2ThetaAboveLeaf0101331333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01013313)) = true := by + have h : ((childHH (childHH thetaAboveCell01013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01013313)) h +theorem e24KC2ThetaAboveLeaf010133200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013320) = true := by + have h : ((childLL thetaAboveCell01013320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01013320) h +theorem e24KC2ThetaAboveLeaf010133201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013320) = true := by + have h : ((childLH thetaAboveCell01013320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01013320) h +theorem e24KC2ThetaAboveLeaf010133202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013320) = true := by + have h : ((childHL thetaAboveCell01013320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01013320) h +theorem e24KC2ThetaAboveLeaf010133203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013320) = true := by + have h : ((childHH thetaAboveCell01013320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01013320) h +theorem e24KC2ThetaAboveLeaf010133210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013321) = true := by + have h : ((childLL thetaAboveCell01013321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01013321) h +theorem e24KC2ThetaAboveLeaf010133211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013321) = true := by + have h : ((childLH thetaAboveCell01013321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01013321) h +theorem e24KC2ThetaAboveLeaf010133212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013321) = true := by + have h : ((childHL thetaAboveCell01013321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01013321) h +theorem e24KC2ThetaAboveLeaf010133213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013321) = true := by + have h : ((childHH thetaAboveCell01013321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01013321) h +theorem e24KC2ThetaAboveLeaf01013322 : + adaptiveCoverCheck 11 thetaAboveCell01013322 = true := by + have h : (thetaAboveCell01013322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013322 h +theorem e24KC2ThetaAboveLeaf01013323 : + adaptiveCoverCheck 11 thetaAboveCell01013323 = true := by + have h : (thetaAboveCell01013323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013323 h +theorem e24KC2ThetaAboveLeaf010133300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013330) = true := by + have h : ((childLL thetaAboveCell01013330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01013330) h +theorem e24KC2ThetaAboveLeaf010133301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013330) = true := by + have h : ((childLH thetaAboveCell01013330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01013330) h +theorem e24KC2ThetaAboveLeaf010133302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013330) = true := by + have h : ((childHL thetaAboveCell01013330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01013330) h +theorem e24KC2ThetaAboveLeaf010133303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013330) = true := by + have h : ((childHH thetaAboveCell01013330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01013330) h +theorem e24KC2ThetaAboveLeaf010133310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013331) = true := by + have h : ((childLL thetaAboveCell01013331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01013331) h +theorem e24KC2ThetaAboveLeaf010133311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013331) = true := by + have h : ((childLH thetaAboveCell01013331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01013331) h +theorem e24KC2ThetaAboveLeaf010133312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013331) = true := by + have h : ((childHL thetaAboveCell01013331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01013331) h +theorem e24KC2ThetaAboveLeaf010133313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013331) = true := by + have h : ((childHH thetaAboveCell01013331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01013331) h +theorem e24KC2ThetaAboveLeaf01013332 : + adaptiveCoverCheck 11 thetaAboveCell01013332 = true := by + have h : (thetaAboveCell01013332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013332 h +theorem e24KC2ThetaAboveLeaf01013333 : + adaptiveCoverCheck 11 thetaAboveCell01013333 = true := by + have h : (thetaAboveCell01013333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01013333 h +theorem e24KC2ThetaAboveLeaf0102000 : + adaptiveCoverCheck 12 (childLL (childLL (childLL thetaAboveCell0102))) = true := by + have h : ((childLL (childLL (childLL thetaAboveCell0102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLL thetaAboveCell0102))) h +theorem e24KC2ThetaAboveLeaf0102001 : + adaptiveCoverCheck 12 (childLH (childLL (childLL thetaAboveCell0102))) = true := by + have h : ((childLH (childLL (childLL thetaAboveCell0102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLL thetaAboveCell0102))) h +theorem e24KC2ThetaAboveLeaf0102002 : + adaptiveCoverCheck 12 (childHL (childLL (childLL thetaAboveCell0102))) = true := by + have h : ((childHL (childLL (childLL thetaAboveCell0102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLL thetaAboveCell0102))) h +theorem e24KC2ThetaAboveLeaf0102003 : + adaptiveCoverCheck 12 (childHH (childLL (childLL thetaAboveCell0102))) = true := by + have h : ((childHH (childLL (childLL thetaAboveCell0102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLL thetaAboveCell0102))) h +theorem e24KC2ThetaAboveLeaf0102010 : + adaptiveCoverCheck 12 (childLL (childLH (childLL thetaAboveCell0102))) = true := by + have h : ((childLL (childLH (childLL thetaAboveCell0102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLL thetaAboveCell0102))) h +theorem e24KC2ThetaAboveLeaf0102011 : + adaptiveCoverCheck 12 (childLH (childLH (childLL thetaAboveCell0102))) = true := by + have h : ((childLH (childLH (childLL thetaAboveCell0102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLL thetaAboveCell0102))) h +theorem e24KC2ThetaAboveLeaf0102012 : + adaptiveCoverCheck 12 (childHL (childLH (childLL thetaAboveCell0102))) = true := by + have h : ((childHL (childLH (childLL thetaAboveCell0102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLL thetaAboveCell0102))) h +theorem e24KC2ThetaAboveLeaf0102013 : + adaptiveCoverCheck 12 (childHH (childLH (childLL thetaAboveCell0102))) = true := by + have h : ((childHH (childLH (childLL thetaAboveCell0102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLL thetaAboveCell0102))) h +theorem e24KC2ThetaAboveLeaf010202 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell0102)) = true := by + have h : ((childHL (childLL thetaAboveCell0102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell0102)) h +theorem e24KC2ThetaAboveLeaf010203 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell0102)) = true := by + have h : ((childHH (childLL thetaAboveCell0102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell0102)) h +theorem e24KC2ThetaAboveLeaf0102100 : + adaptiveCoverCheck 12 (childLL (childLL (childLH thetaAboveCell0102))) = true := by + have h : ((childLL (childLL (childLH thetaAboveCell0102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLH thetaAboveCell0102))) h +theorem e24KC2ThetaAboveLeaf0102101 : + adaptiveCoverCheck 12 (childLH (childLL (childLH thetaAboveCell0102))) = true := by + have h : ((childLH (childLL (childLH thetaAboveCell0102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLH thetaAboveCell0102))) h +theorem e24KC2ThetaAboveLeaf0102102 : + adaptiveCoverCheck 12 (childHL (childLL (childLH thetaAboveCell0102))) = true := by + have h : ((childHL (childLL (childLH thetaAboveCell0102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLH thetaAboveCell0102))) h +theorem e24KC2ThetaAboveLeaf0102103 : + adaptiveCoverCheck 12 (childHH (childLL (childLH thetaAboveCell0102))) = true := by + have h : ((childHH (childLL (childLH thetaAboveCell0102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLH thetaAboveCell0102))) h +theorem e24KC2ThetaAboveLeaf0102110 : + adaptiveCoverCheck 12 (childLL (childLH (childLH thetaAboveCell0102))) = true := by + have h : ((childLL (childLH (childLH thetaAboveCell0102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLH thetaAboveCell0102))) h +theorem e24KC2ThetaAboveLeaf0102111 : + adaptiveCoverCheck 12 (childLH (childLH (childLH thetaAboveCell0102))) = true := by + have h : ((childLH (childLH (childLH thetaAboveCell0102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLH thetaAboveCell0102))) h +theorem e24KC2ThetaAboveLeaf0102112 : + adaptiveCoverCheck 12 (childHL (childLH (childLH thetaAboveCell0102))) = true := by + have h : ((childHL (childLH (childLH thetaAboveCell0102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLH thetaAboveCell0102))) h +theorem e24KC2ThetaAboveLeaf0102113 : + adaptiveCoverCheck 12 (childHH (childLH (childLH thetaAboveCell0102))) = true := by + have h : ((childHH (childLH (childLH thetaAboveCell0102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLH thetaAboveCell0102))) h +theorem e24KC2ThetaAboveLeaf010212 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell0102)) = true := by + have h : ((childHL (childLH thetaAboveCell0102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell0102)) h +theorem e24KC2ThetaAboveLeaf010213 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell0102)) = true := by + have h : ((childHH (childLH thetaAboveCell0102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell0102)) h +theorem e24KC2ThetaAboveLeaf01022 : + adaptiveCoverCheck 14 (childHL thetaAboveCell0102) = true := by + have h : ((childHL thetaAboveCell0102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHL thetaAboveCell0102) h +theorem e24KC2ThetaAboveLeaf01023 : + adaptiveCoverCheck 14 (childHH thetaAboveCell0102) = true := by + have h : ((childHH thetaAboveCell0102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHH thetaAboveCell0102) h +theorem e24KC2ThetaAboveLeaf0103000 : + adaptiveCoverCheck 12 (childLL (childLL (childLL thetaAboveCell0103))) = true := by + have h : ((childLL (childLL (childLL thetaAboveCell0103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLL thetaAboveCell0103))) h +theorem e24KC2ThetaAboveLeaf0103001 : + adaptiveCoverCheck 12 (childLH (childLL (childLL thetaAboveCell0103))) = true := by + have h : ((childLH (childLL (childLL thetaAboveCell0103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLL thetaAboveCell0103))) h +theorem e24KC2ThetaAboveLeaf0103002 : + adaptiveCoverCheck 12 (childHL (childLL (childLL thetaAboveCell0103))) = true := by + have h : ((childHL (childLL (childLL thetaAboveCell0103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLL thetaAboveCell0103))) h +theorem e24KC2ThetaAboveLeaf0103003 : + adaptiveCoverCheck 12 (childHH (childLL (childLL thetaAboveCell0103))) = true := by + have h : ((childHH (childLL (childLL thetaAboveCell0103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLL thetaAboveCell0103))) h +theorem e24KC2ThetaAboveLeaf0103010 : + adaptiveCoverCheck 12 (childLL (childLH (childLL thetaAboveCell0103))) = true := by + have h : ((childLL (childLH (childLL thetaAboveCell0103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLL thetaAboveCell0103))) h +theorem e24KC2ThetaAboveLeaf0103011 : + adaptiveCoverCheck 12 (childLH (childLH (childLL thetaAboveCell0103))) = true := by + have h : ((childLH (childLH (childLL thetaAboveCell0103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLL thetaAboveCell0103))) h +theorem e24KC2ThetaAboveLeaf0103012 : + adaptiveCoverCheck 12 (childHL (childLH (childLL thetaAboveCell0103))) = true := by + have h : ((childHL (childLH (childLL thetaAboveCell0103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLL thetaAboveCell0103))) h +theorem e24KC2ThetaAboveLeaf0103013 : + adaptiveCoverCheck 12 (childHH (childLH (childLL thetaAboveCell0103))) = true := by + have h : ((childHH (childLH (childLL thetaAboveCell0103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLL thetaAboveCell0103))) h +theorem e24KC2ThetaAboveLeaf010302 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell0103)) = true := by + have h : ((childHL (childLL thetaAboveCell0103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell0103)) h +theorem e24KC2ThetaAboveLeaf010303 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell0103)) = true := by + have h : ((childHH (childLL thetaAboveCell0103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell0103)) h +theorem e24KC2ThetaAboveLeaf0103100 : + adaptiveCoverCheck 12 (childLL (childLL (childLH thetaAboveCell0103))) = true := by + have h : ((childLL (childLL (childLH thetaAboveCell0103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLH thetaAboveCell0103))) h +theorem e24KC2ThetaAboveLeaf0103101 : + adaptiveCoverCheck 12 (childLH (childLL (childLH thetaAboveCell0103))) = true := by + have h : ((childLH (childLL (childLH thetaAboveCell0103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLH thetaAboveCell0103))) h +theorem e24KC2ThetaAboveLeaf0103102 : + adaptiveCoverCheck 12 (childHL (childLL (childLH thetaAboveCell0103))) = true := by + have h : ((childHL (childLL (childLH thetaAboveCell0103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLH thetaAboveCell0103))) h +theorem e24KC2ThetaAboveLeaf0103103 : + adaptiveCoverCheck 12 (childHH (childLL (childLH thetaAboveCell0103))) = true := by + have h : ((childHH (childLL (childLH thetaAboveCell0103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLH thetaAboveCell0103))) h +theorem e24KC2ThetaAboveLeaf0103110 : + adaptiveCoverCheck 12 (childLL (childLH (childLH thetaAboveCell0103))) = true := by + have h : ((childLL (childLH (childLH thetaAboveCell0103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLH thetaAboveCell0103))) h +theorem e24KC2ThetaAboveLeaf0103111 : + adaptiveCoverCheck 12 (childLH (childLH (childLH thetaAboveCell0103))) = true := by + have h : ((childLH (childLH (childLH thetaAboveCell0103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLH thetaAboveCell0103))) h +theorem e24KC2ThetaAboveLeaf0103112 : + adaptiveCoverCheck 12 (childHL (childLH (childLH thetaAboveCell0103))) = true := by + have h : ((childHL (childLH (childLH thetaAboveCell0103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLH thetaAboveCell0103))) h +theorem e24KC2ThetaAboveLeaf0103113 : + adaptiveCoverCheck 12 (childHH (childLH (childLH thetaAboveCell0103))) = true := by + have h : ((childHH (childLH (childLH thetaAboveCell0103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLH thetaAboveCell0103))) h +theorem e24KC2ThetaAboveLeaf010312 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell0103)) = true := by + have h : ((childHL (childLH thetaAboveCell0103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell0103)) h +theorem e24KC2ThetaAboveLeaf010313 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell0103)) = true := by + have h : ((childHH (childLH thetaAboveCell0103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell0103)) h +theorem e24KC2ThetaAboveLeaf01032 : + adaptiveCoverCheck 14 (childHL thetaAboveCell0103) = true := by + have h : ((childHL thetaAboveCell0103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHL thetaAboveCell0103) h +theorem e24KC2ThetaAboveLeaf01033 : + adaptiveCoverCheck 14 (childHH thetaAboveCell0103) = true := by + have h : ((childHH thetaAboveCell0103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHH thetaAboveCell0103) h +theorem e24KC2ThetaAboveLeaf011000 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell0110)) = true := by + have h : ((childLL (childLL thetaAboveCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLL thetaAboveCell0110)) h +theorem e24KC2ThetaAboveLeaf011001 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell0110)) = true := by + have h : ((childLH (childLL thetaAboveCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLL thetaAboveCell0110)) h +theorem e24KC2ThetaAboveLeaf011002 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell0110)) = true := by + have h : ((childHL (childLL thetaAboveCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell0110)) h +theorem e24KC2ThetaAboveLeaf011003 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell0110)) = true := by + have h : ((childHH (childLL thetaAboveCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell0110)) h +theorem e24KC2ThetaAboveLeaf011010 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell0110)) = true := by + have h : ((childLL (childLH thetaAboveCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLH thetaAboveCell0110)) h +theorem e24KC2ThetaAboveLeaf011011 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell0110)) = true := by + have h : ((childLH (childLH thetaAboveCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLH thetaAboveCell0110)) h +theorem e24KC2ThetaAboveLeaf011012 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell0110)) = true := by + have h : ((childHL (childLH thetaAboveCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell0110)) h +theorem e24KC2ThetaAboveLeaf011013 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell0110)) = true := by + have h : ((childHH (childLH thetaAboveCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell0110)) h +theorem e24KC2ThetaAboveLeaf0110200 : + adaptiveCoverCheck 12 (childLL (childLL (childHL thetaAboveCell0110))) = true := by + have h : ((childLL (childLL (childHL thetaAboveCell0110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHL thetaAboveCell0110))) h +theorem e24KC2ThetaAboveLeaf0110201 : + adaptiveCoverCheck 12 (childLH (childLL (childHL thetaAboveCell0110))) = true := by + have h : ((childLH (childLL (childHL thetaAboveCell0110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHL thetaAboveCell0110))) h +theorem e24KC2ThetaAboveLeaf01102020 : + adaptiveCoverCheck 11 thetaAboveCell01102020 = true := by + have h : (thetaAboveCell01102020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102020 h +theorem e24KC2ThetaAboveLeaf01102021 : + adaptiveCoverCheck 11 thetaAboveCell01102021 = true := by + have h : (thetaAboveCell01102021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102021 h +theorem e24KC2ThetaAboveLeaf01102022 : + adaptiveCoverCheck 11 thetaAboveCell01102022 = true := by + have h : (thetaAboveCell01102022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102022 h +theorem e24KC2ThetaAboveLeaf01102023 : + adaptiveCoverCheck 11 thetaAboveCell01102023 = true := by + have h : (thetaAboveCell01102023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102023 h +theorem e24KC2ThetaAboveLeaf01102030 : + adaptiveCoverCheck 11 thetaAboveCell01102030 = true := by + have h : (thetaAboveCell01102030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102030 h +theorem e24KC2ThetaAboveLeaf01102031 : + adaptiveCoverCheck 11 thetaAboveCell01102031 = true := by + have h : (thetaAboveCell01102031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102031 h +theorem e24KC2ThetaAboveLeaf01102032 : + adaptiveCoverCheck 11 thetaAboveCell01102032 = true := by + have h : (thetaAboveCell01102032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102032 h +theorem e24KC2ThetaAboveLeaf01102033 : + adaptiveCoverCheck 11 thetaAboveCell01102033 = true := by + have h : (thetaAboveCell01102033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102033 h +theorem e24KC2ThetaAboveLeaf0110210 : + adaptiveCoverCheck 12 (childLL (childLH (childHL thetaAboveCell0110))) = true := by + have h : ((childLL (childLH (childHL thetaAboveCell0110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHL thetaAboveCell0110))) h +theorem e24KC2ThetaAboveLeaf0110211 : + adaptiveCoverCheck 12 (childLH (childLH (childHL thetaAboveCell0110))) = true := by + have h : ((childLH (childLH (childHL thetaAboveCell0110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHL thetaAboveCell0110))) h +theorem e24KC2ThetaAboveLeaf01102120 : + adaptiveCoverCheck 11 thetaAboveCell01102120 = true := by + have h : (thetaAboveCell01102120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102120 h +theorem e24KC2ThetaAboveLeaf01102121 : + adaptiveCoverCheck 11 thetaAboveCell01102121 = true := by + have h : (thetaAboveCell01102121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102121 h +theorem e24KC2ThetaAboveLeaf01102122 : + adaptiveCoverCheck 11 thetaAboveCell01102122 = true := by + have h : (thetaAboveCell01102122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102122 h +theorem e24KC2ThetaAboveLeaf01102123 : + adaptiveCoverCheck 11 thetaAboveCell01102123 = true := by + have h : (thetaAboveCell01102123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102123 h +theorem e24KC2ThetaAboveLeaf01102130 : + adaptiveCoverCheck 11 thetaAboveCell01102130 = true := by + have h : (thetaAboveCell01102130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102130 h +theorem e24KC2ThetaAboveLeaf01102131 : + adaptiveCoverCheck 11 thetaAboveCell01102131 = true := by + have h : (thetaAboveCell01102131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102131 h +theorem e24KC2ThetaAboveLeaf01102132 : + adaptiveCoverCheck 11 thetaAboveCell01102132 = true := by + have h : (thetaAboveCell01102132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102132 h +theorem e24KC2ThetaAboveLeaf01102133 : + adaptiveCoverCheck 11 thetaAboveCell01102133 = true := by + have h : (thetaAboveCell01102133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102133 h +theorem e24KC2ThetaAboveLeaf011022000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102200) = true := by + have h : ((childLL thetaAboveCell01102200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01102200) h +theorem e24KC2ThetaAboveLeaf011022001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102200) = true := by + have h : ((childLH thetaAboveCell01102200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01102200) h +theorem e24KC2ThetaAboveLeaf0110220020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01102200)) = true := by + have h : ((childLL (childHL thetaAboveCell01102200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01102200)) h +theorem e24KC2ThetaAboveLeaf0110220021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01102200)) = true := by + have h : ((childLH (childHL thetaAboveCell01102200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01102200)) h +theorem e24KC2ThetaAboveLeaf0110220022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01102200)) = true := by + have h : ((childHL (childHL thetaAboveCell01102200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01102200)) h +theorem e24KC2ThetaAboveLeaf0110220023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01102200)) = true := by + have h : ((childHH (childHL thetaAboveCell01102200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01102200)) h +theorem e24KC2ThetaAboveLeaf0110220030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01102200)) = true := by + have h : ((childLL (childHH thetaAboveCell01102200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01102200)) h +theorem e24KC2ThetaAboveLeaf0110220031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01102200)) = true := by + have h : ((childLH (childHH thetaAboveCell01102200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01102200)) h +theorem e24KC2ThetaAboveLeaf0110220032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01102200)) = true := by + have h : ((childHL (childHH thetaAboveCell01102200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01102200)) h +theorem e24KC2ThetaAboveLeaf0110220033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01102200)) = true := by + have h : ((childHH (childHH thetaAboveCell01102200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01102200)) h +theorem e24KC2ThetaAboveLeaf011022010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102201) = true := by + have h : ((childLL thetaAboveCell01102201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01102201) h +theorem e24KC2ThetaAboveLeaf011022011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102201) = true := by + have h : ((childLH thetaAboveCell01102201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01102201) h +theorem e24KC2ThetaAboveLeaf0110220120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01102201)) = true := by + have h : ((childLL (childHL thetaAboveCell01102201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01102201)) h +theorem e24KC2ThetaAboveLeaf0110220121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01102201)) = true := by + have h : ((childLH (childHL thetaAboveCell01102201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01102201)) h +theorem e24KC2ThetaAboveLeaf0110220122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01102201)) = true := by + have h : ((childHL (childHL thetaAboveCell01102201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01102201)) h +theorem e24KC2ThetaAboveLeaf0110220123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01102201)) = true := by + have h : ((childHH (childHL thetaAboveCell01102201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01102201)) h +theorem e24KC2ThetaAboveLeaf0110220130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01102201)) = true := by + have h : ((childLL (childHH thetaAboveCell01102201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01102201)) h +theorem e24KC2ThetaAboveLeaf0110220131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01102201)) = true := by + have h : ((childLH (childHH thetaAboveCell01102201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01102201)) h +theorem e24KC2ThetaAboveLeaf0110220132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01102201)) = true := by + have h : ((childHL (childHH thetaAboveCell01102201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01102201)) h +theorem e24KC2ThetaAboveLeaf0110220133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01102201)) = true := by + have h : ((childHH (childHH thetaAboveCell01102201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01102201)) h +theorem e24KC2ThetaAboveLeaf0110220200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01102202)) = true := by + have h : ((childLL (childLL thetaAboveCell01102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01102202)) h +theorem e24KC2ThetaAboveLeaf0110220201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01102202)) = true := by + have h : ((childLH (childLL thetaAboveCell01102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01102202)) h +theorem e24KC2ThetaAboveLeaf0110220202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01102202)) = true := by + have h : ((childHL (childLL thetaAboveCell01102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01102202)) h +theorem e24KC2ThetaAboveLeaf0110220203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01102202)) = true := by + have h : ((childHH (childLL thetaAboveCell01102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01102202)) h +theorem e24KC2ThetaAboveLeaf0110220210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01102202)) = true := by + have h : ((childLL (childLH thetaAboveCell01102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01102202)) h +theorem e24KC2ThetaAboveLeaf0110220211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01102202)) = true := by + have h : ((childLH (childLH thetaAboveCell01102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01102202)) h +theorem e24KC2ThetaAboveLeaf0110220212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01102202)) = true := by + have h : ((childHL (childLH thetaAboveCell01102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01102202)) h +theorem e24KC2ThetaAboveLeaf0110220213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01102202)) = true := by + have h : ((childHH (childLH thetaAboveCell01102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01102202)) h +theorem e24KC2ThetaAboveLeaf0110220220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01102202)) = true := by + have h : ((childLL (childHL thetaAboveCell01102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01102202)) h +theorem e24KC2ThetaAboveLeaf0110220221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01102202)) = true := by + have h : ((childLH (childHL thetaAboveCell01102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01102202)) h +theorem e24KC2ThetaAboveLeaf0110220222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01102202)) = true := by + have h : ((childHL (childHL thetaAboveCell01102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01102202)) h +theorem e24KC2ThetaAboveLeaf0110220223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01102202)) = true := by + have h : ((childHH (childHL thetaAboveCell01102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01102202)) h +theorem e24KC2ThetaAboveLeaf0110220230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01102202)) = true := by + have h : ((childLL (childHH thetaAboveCell01102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01102202)) h +theorem e24KC2ThetaAboveLeaf0110220231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01102202)) = true := by + have h : ((childLH (childHH thetaAboveCell01102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01102202)) h +theorem e24KC2ThetaAboveLeaf0110220232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01102202)) = true := by + have h : ((childHL (childHH thetaAboveCell01102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01102202)) h +theorem e24KC2ThetaAboveLeaf0110220233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01102202)) = true := by + have h : ((childHH (childHH thetaAboveCell01102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01102202)) h +theorem e24KC2ThetaAboveLeaf0110220300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01102203)) = true := by + have h : ((childLL (childLL thetaAboveCell01102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01102203)) h +theorem e24KC2ThetaAboveLeaf0110220301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01102203)) = true := by + have h : ((childLH (childLL thetaAboveCell01102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01102203)) h +theorem e24KC2ThetaAboveLeaf0110220302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01102203)) = true := by + have h : ((childHL (childLL thetaAboveCell01102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01102203)) h +theorem e24KC2ThetaAboveLeaf0110220303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01102203)) = true := by + have h : ((childHH (childLL thetaAboveCell01102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01102203)) h +theorem e24KC2ThetaAboveLeaf0110220310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01102203)) = true := by + have h : ((childLL (childLH thetaAboveCell01102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01102203)) h +theorem e24KC2ThetaAboveLeaf0110220311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01102203)) = true := by + have h : ((childLH (childLH thetaAboveCell01102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01102203)) h +theorem e24KC2ThetaAboveLeaf0110220312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01102203)) = true := by + have h : ((childHL (childLH thetaAboveCell01102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01102203)) h +theorem e24KC2ThetaAboveLeaf0110220313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01102203)) = true := by + have h : ((childHH (childLH thetaAboveCell01102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01102203)) h +theorem e24KC2ThetaAboveLeaf0110220320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01102203)) = true := by + have h : ((childLL (childHL thetaAboveCell01102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01102203)) h +theorem e24KC2ThetaAboveLeaf0110220321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01102203)) = true := by + have h : ((childLH (childHL thetaAboveCell01102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01102203)) h +theorem e24KC2ThetaAboveLeaf0110220322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01102203)) = true := by + have h : ((childHL (childHL thetaAboveCell01102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01102203)) h +theorem e24KC2ThetaAboveLeaf0110220323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01102203)) = true := by + have h : ((childHH (childHL thetaAboveCell01102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01102203)) h +theorem e24KC2ThetaAboveLeaf0110220330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01102203)) = true := by + have h : ((childLL (childHH thetaAboveCell01102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01102203)) h +theorem e24KC2ThetaAboveLeaf0110220331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01102203)) = true := by + have h : ((childLH (childHH thetaAboveCell01102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01102203)) h +theorem e24KC2ThetaAboveLeaf0110220332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01102203)) = true := by + have h : ((childHL (childHH thetaAboveCell01102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01102203)) h +theorem e24KC2ThetaAboveLeaf0110220333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01102203)) = true := by + have h : ((childHH (childHH thetaAboveCell01102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01102203)) h +theorem e24KC2ThetaAboveLeaf011022100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102210) = true := by + have h : ((childLL thetaAboveCell01102210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01102210) h +theorem e24KC2ThetaAboveLeaf011022101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102210) = true := by + have h : ((childLH thetaAboveCell01102210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01102210) h +theorem e24KC2ThetaAboveLeaf0110221020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01102210)) = true := by + have h : ((childLL (childHL thetaAboveCell01102210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01102210)) h +theorem e24KC2ThetaAboveLeaf0110221021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01102210)) = true := by + have h : ((childLH (childHL thetaAboveCell01102210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01102210)) h +theorem e24KC2ThetaAboveLeaf0110221022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01102210)) = true := by + have h : ((childHL (childHL thetaAboveCell01102210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01102210)) h +theorem e24KC2ThetaAboveLeaf0110221023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01102210)) = true := by + have h : ((childHH (childHL thetaAboveCell01102210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01102210)) h +theorem e24KC2ThetaAboveLeaf0110221030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01102210)) = true := by + have h : ((childLL (childHH thetaAboveCell01102210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01102210)) h +theorem e24KC2ThetaAboveLeaf0110221031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01102210)) = true := by + have h : ((childLH (childHH thetaAboveCell01102210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01102210)) h +theorem e24KC2ThetaAboveLeaf0110221032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01102210)) = true := by + have h : ((childHL (childHH thetaAboveCell01102210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01102210)) h +theorem e24KC2ThetaAboveLeaf0110221033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01102210)) = true := by + have h : ((childHH (childHH thetaAboveCell01102210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01102210)) h +theorem e24KC2ThetaAboveLeaf011022110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102211) = true := by + have h : ((childLL thetaAboveCell01102211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01102211) h +theorem e24KC2ThetaAboveLeaf011022111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102211) = true := by + have h : ((childLH thetaAboveCell01102211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01102211) h +theorem e24KC2ThetaAboveLeaf0110221120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01102211)) = true := by + have h : ((childLL (childHL thetaAboveCell01102211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01102211)) h +theorem e24KC2ThetaAboveLeaf0110221121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01102211)) = true := by + have h : ((childLH (childHL thetaAboveCell01102211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01102211)) h +theorem e24KC2ThetaAboveLeaf0110221122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01102211)) = true := by + have h : ((childHL (childHL thetaAboveCell01102211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01102211)) h +theorem e24KC2ThetaAboveLeaf0110221123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01102211)) = true := by + have h : ((childHH (childHL thetaAboveCell01102211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01102211)) h +theorem e24KC2ThetaAboveLeaf0110221130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01102211)) = true := by + have h : ((childLL (childHH thetaAboveCell01102211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01102211)) h +theorem e24KC2ThetaAboveLeaf0110221131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01102211)) = true := by + have h : ((childLH (childHH thetaAboveCell01102211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01102211)) h +theorem e24KC2ThetaAboveLeaf0110221132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01102211)) = true := by + have h : ((childHL (childHH thetaAboveCell01102211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01102211)) h +theorem e24KC2ThetaAboveLeaf0110221133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01102211)) = true := by + have h : ((childHH (childHH thetaAboveCell01102211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01102211)) h +theorem e24KC2ThetaAboveLeaf0110221200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01102212)) = true := by + have h : ((childLL (childLL thetaAboveCell01102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01102212)) h +theorem e24KC2ThetaAboveLeaf0110221201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01102212)) = true := by + have h : ((childLH (childLL thetaAboveCell01102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01102212)) h +theorem e24KC2ThetaAboveLeaf0110221202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01102212)) = true := by + have h : ((childHL (childLL thetaAboveCell01102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01102212)) h +theorem e24KC2ThetaAboveLeaf0110221203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01102212)) = true := by + have h : ((childHH (childLL thetaAboveCell01102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01102212)) h +theorem e24KC2ThetaAboveLeaf0110221210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01102212)) = true := by + have h : ((childLL (childLH thetaAboveCell01102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01102212)) h +theorem e24KC2ThetaAboveLeaf0110221211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01102212)) = true := by + have h : ((childLH (childLH thetaAboveCell01102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01102212)) h +theorem e24KC2ThetaAboveLeaf0110221212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01102212)) = true := by + have h : ((childHL (childLH thetaAboveCell01102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01102212)) h +theorem e24KC2ThetaAboveLeaf0110221213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01102212)) = true := by + have h : ((childHH (childLH thetaAboveCell01102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01102212)) h +theorem e24KC2ThetaAboveLeaf0110221220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01102212)) = true := by + have h : ((childLL (childHL thetaAboveCell01102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01102212)) h +theorem e24KC2ThetaAboveLeaf0110221221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01102212)) = true := by + have h : ((childLH (childHL thetaAboveCell01102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01102212)) h +theorem e24KC2ThetaAboveLeaf0110221222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01102212)) = true := by + have h : ((childHL (childHL thetaAboveCell01102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01102212)) h +theorem e24KC2ThetaAboveLeaf0110221223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01102212)) = true := by + have h : ((childHH (childHL thetaAboveCell01102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01102212)) h +theorem e24KC2ThetaAboveLeaf0110221230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01102212)) = true := by + have h : ((childLL (childHH thetaAboveCell01102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01102212)) h +theorem e24KC2ThetaAboveLeaf0110221231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01102212)) = true := by + have h : ((childLH (childHH thetaAboveCell01102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01102212)) h +theorem e24KC2ThetaAboveLeaf0110221232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01102212)) = true := by + have h : ((childHL (childHH thetaAboveCell01102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01102212)) h +theorem e24KC2ThetaAboveLeaf0110221233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01102212)) = true := by + have h : ((childHH (childHH thetaAboveCell01102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01102212)) h +theorem e24KC2ThetaAboveLeaf0110221300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01102213)) = true := by + have h : ((childLL (childLL thetaAboveCell01102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01102213)) h +theorem e24KC2ThetaAboveLeaf0110221301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01102213)) = true := by + have h : ((childLH (childLL thetaAboveCell01102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01102213)) h +theorem e24KC2ThetaAboveLeaf0110221302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01102213)) = true := by + have h : ((childHL (childLL thetaAboveCell01102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01102213)) h +theorem e24KC2ThetaAboveLeaf0110221303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01102213)) = true := by + have h : ((childHH (childLL thetaAboveCell01102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01102213)) h +theorem e24KC2ThetaAboveLeaf0110221310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01102213)) = true := by + have h : ((childLL (childLH thetaAboveCell01102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01102213)) h +theorem e24KC2ThetaAboveLeaf0110221311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01102213)) = true := by + have h : ((childLH (childLH thetaAboveCell01102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01102213)) h +theorem e24KC2ThetaAboveLeaf0110221312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01102213)) = true := by + have h : ((childHL (childLH thetaAboveCell01102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01102213)) h +theorem e24KC2ThetaAboveLeaf0110221313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01102213)) = true := by + have h : ((childHH (childLH thetaAboveCell01102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01102213)) h +theorem e24KC2ThetaAboveLeaf0110221320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01102213)) = true := by + have h : ((childLL (childHL thetaAboveCell01102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01102213)) h +theorem e24KC2ThetaAboveLeaf0110221321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01102213)) = true := by + have h : ((childLH (childHL thetaAboveCell01102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01102213)) h +theorem e24KC2ThetaAboveLeaf0110221322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01102213)) = true := by + have h : ((childHL (childHL thetaAboveCell01102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01102213)) h +theorem e24KC2ThetaAboveLeaf0110221323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01102213)) = true := by + have h : ((childHH (childHL thetaAboveCell01102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01102213)) h +theorem e24KC2ThetaAboveLeaf0110221330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01102213)) = true := by + have h : ((childLL (childHH thetaAboveCell01102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01102213)) h +theorem e24KC2ThetaAboveLeaf0110221331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01102213)) = true := by + have h : ((childLH (childHH thetaAboveCell01102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01102213)) h +theorem e24KC2ThetaAboveLeaf0110221332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01102213)) = true := by + have h : ((childHL (childHH thetaAboveCell01102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01102213)) h +theorem e24KC2ThetaAboveLeaf0110221333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01102213)) = true := by + have h : ((childHH (childHH thetaAboveCell01102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01102213)) h +theorem e24KC2ThetaAboveLeaf011022200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102220) = true := by + have h : ((childLL thetaAboveCell01102220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01102220) h +theorem e24KC2ThetaAboveLeaf011022201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102220) = true := by + have h : ((childLH thetaAboveCell01102220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01102220) h +theorem e24KC2ThetaAboveLeaf011022202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102220) = true := by + have h : ((childHL thetaAboveCell01102220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01102220) h +theorem e24KC2ThetaAboveLeaf011022203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102220) = true := by + have h : ((childHH thetaAboveCell01102220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01102220) h +theorem e24KC2ThetaAboveLeaf011022210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102221) = true := by + have h : ((childLL thetaAboveCell01102221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01102221) h +theorem e24KC2ThetaAboveLeaf011022211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102221) = true := by + have h : ((childLH thetaAboveCell01102221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01102221) h +theorem e24KC2ThetaAboveLeaf011022212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102221) = true := by + have h : ((childHL thetaAboveCell01102221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01102221) h +theorem e24KC2ThetaAboveLeaf011022213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102221) = true := by + have h : ((childHH thetaAboveCell01102221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01102221) h +theorem e24KC2ThetaAboveLeaf01102222 : + adaptiveCoverCheck 11 thetaAboveCell01102222 = true := by + have h : (thetaAboveCell01102222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102222 h +theorem e24KC2ThetaAboveLeaf01102223 : + adaptiveCoverCheck 11 thetaAboveCell01102223 = true := by + have h : (thetaAboveCell01102223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102223 h +theorem e24KC2ThetaAboveLeaf011022300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102230) = true := by + have h : ((childLL thetaAboveCell01102230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01102230) h +theorem e24KC2ThetaAboveLeaf011022301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102230) = true := by + have h : ((childLH thetaAboveCell01102230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01102230) h +theorem e24KC2ThetaAboveLeaf011022302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102230) = true := by + have h : ((childHL thetaAboveCell01102230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01102230) h +theorem e24KC2ThetaAboveLeaf011022303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102230) = true := by + have h : ((childHH thetaAboveCell01102230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01102230) h +theorem e24KC2ThetaAboveLeaf011022310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102231) = true := by + have h : ((childLL thetaAboveCell01102231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01102231) h +theorem e24KC2ThetaAboveLeaf011022311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102231) = true := by + have h : ((childLH thetaAboveCell01102231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01102231) h +theorem e24KC2ThetaAboveLeaf011022312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102231) = true := by + have h : ((childHL thetaAboveCell01102231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01102231) h +theorem e24KC2ThetaAboveLeaf011022313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102231) = true := by + have h : ((childHH thetaAboveCell01102231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01102231) h +theorem e24KC2ThetaAboveLeaf01102232 : + adaptiveCoverCheck 11 thetaAboveCell01102232 = true := by + have h : (thetaAboveCell01102232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102232 h +theorem e24KC2ThetaAboveLeaf01102233 : + adaptiveCoverCheck 11 thetaAboveCell01102233 = true := by + have h : (thetaAboveCell01102233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102233 h +theorem e24KC2ThetaAboveLeaf011023000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102300) = true := by + have h : ((childLL thetaAboveCell01102300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01102300) h +theorem e24KC2ThetaAboveLeaf011023001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102300) = true := by + have h : ((childLH thetaAboveCell01102300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01102300) h +theorem e24KC2ThetaAboveLeaf0110230020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01102300)) = true := by + have h : ((childLL (childHL thetaAboveCell01102300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01102300)) h +theorem e24KC2ThetaAboveLeaf0110230021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01102300)) = true := by + have h : ((childLH (childHL thetaAboveCell01102300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01102300)) h +theorem e24KC2ThetaAboveLeaf0110230022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01102300)) = true := by + have h : ((childHL (childHL thetaAboveCell01102300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01102300)) h +theorem e24KC2ThetaAboveLeaf0110230023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01102300)) = true := by + have h : ((childHH (childHL thetaAboveCell01102300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01102300)) h +theorem e24KC2ThetaAboveLeaf0110230030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01102300)) = true := by + have h : ((childLL (childHH thetaAboveCell01102300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01102300)) h +theorem e24KC2ThetaAboveLeaf0110230031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01102300)) = true := by + have h : ((childLH (childHH thetaAboveCell01102300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01102300)) h +theorem e24KC2ThetaAboveLeaf0110230032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01102300)) = true := by + have h : ((childHL (childHH thetaAboveCell01102300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01102300)) h +theorem e24KC2ThetaAboveLeaf0110230033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01102300)) = true := by + have h : ((childHH (childHH thetaAboveCell01102300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01102300)) h +theorem e24KC2ThetaAboveLeaf011023010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102301) = true := by + have h : ((childLL thetaAboveCell01102301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01102301) h +theorem e24KC2ThetaAboveLeaf011023011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102301) = true := by + have h : ((childLH thetaAboveCell01102301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01102301) h +theorem e24KC2ThetaAboveLeaf0110230120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01102301)) = true := by + have h : ((childLL (childHL thetaAboveCell01102301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01102301)) h +theorem e24KC2ThetaAboveLeaf0110230121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01102301)) = true := by + have h : ((childLH (childHL thetaAboveCell01102301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01102301)) h +theorem e24KC2ThetaAboveLeaf0110230122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01102301)) = true := by + have h : ((childHL (childHL thetaAboveCell01102301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01102301)) h +theorem e24KC2ThetaAboveLeaf0110230123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01102301)) = true := by + have h : ((childHH (childHL thetaAboveCell01102301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01102301)) h +theorem e24KC2ThetaAboveLeaf0110230130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01102301)) = true := by + have h : ((childLL (childHH thetaAboveCell01102301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01102301)) h +theorem e24KC2ThetaAboveLeaf0110230131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01102301)) = true := by + have h : ((childLH (childHH thetaAboveCell01102301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01102301)) h +theorem e24KC2ThetaAboveLeaf0110230132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01102301)) = true := by + have h : ((childHL (childHH thetaAboveCell01102301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01102301)) h +theorem e24KC2ThetaAboveLeaf0110230133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01102301)) = true := by + have h : ((childHH (childHH thetaAboveCell01102301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01102301)) h +theorem e24KC2ThetaAboveLeaf0110230200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01102302)) = true := by + have h : ((childLL (childLL thetaAboveCell01102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01102302)) h +theorem e24KC2ThetaAboveLeaf0110230201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01102302)) = true := by + have h : ((childLH (childLL thetaAboveCell01102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01102302)) h +theorem e24KC2ThetaAboveLeaf0110230202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01102302)) = true := by + have h : ((childHL (childLL thetaAboveCell01102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01102302)) h +theorem e24KC2ThetaAboveLeaf0110230203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01102302)) = true := by + have h : ((childHH (childLL thetaAboveCell01102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01102302)) h +theorem e24KC2ThetaAboveLeaf0110230210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01102302)) = true := by + have h : ((childLL (childLH thetaAboveCell01102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01102302)) h +theorem e24KC2ThetaAboveLeaf0110230211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01102302)) = true := by + have h : ((childLH (childLH thetaAboveCell01102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01102302)) h +theorem e24KC2ThetaAboveLeaf0110230212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01102302)) = true := by + have h : ((childHL (childLH thetaAboveCell01102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01102302)) h +theorem e24KC2ThetaAboveLeaf0110230213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01102302)) = true := by + have h : ((childHH (childLH thetaAboveCell01102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01102302)) h +theorem e24KC2ThetaAboveLeaf0110230220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01102302)) = true := by + have h : ((childLL (childHL thetaAboveCell01102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01102302)) h +theorem e24KC2ThetaAboveLeaf0110230221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01102302)) = true := by + have h : ((childLH (childHL thetaAboveCell01102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01102302)) h +theorem e24KC2ThetaAboveLeaf0110230222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01102302)) = true := by + have h : ((childHL (childHL thetaAboveCell01102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01102302)) h +theorem e24KC2ThetaAboveLeaf0110230223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01102302)) = true := by + have h : ((childHH (childHL thetaAboveCell01102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01102302)) h +theorem e24KC2ThetaAboveLeaf0110230230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01102302)) = true := by + have h : ((childLL (childHH thetaAboveCell01102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01102302)) h +theorem e24KC2ThetaAboveLeaf0110230231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01102302)) = true := by + have h : ((childLH (childHH thetaAboveCell01102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01102302)) h +theorem e24KC2ThetaAboveLeaf0110230232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01102302)) = true := by + have h : ((childHL (childHH thetaAboveCell01102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01102302)) h +theorem e24KC2ThetaAboveLeaf0110230233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01102302)) = true := by + have h : ((childHH (childHH thetaAboveCell01102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01102302)) h +theorem e24KC2ThetaAboveLeaf0110230300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01102303)) = true := by + have h : ((childLL (childLL thetaAboveCell01102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01102303)) h +theorem e24KC2ThetaAboveLeaf0110230301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01102303)) = true := by + have h : ((childLH (childLL thetaAboveCell01102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01102303)) h +theorem e24KC2ThetaAboveLeaf0110230302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01102303)) = true := by + have h : ((childHL (childLL thetaAboveCell01102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01102303)) h +theorem e24KC2ThetaAboveLeaf0110230303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01102303)) = true := by + have h : ((childHH (childLL thetaAboveCell01102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01102303)) h +theorem e24KC2ThetaAboveLeaf0110230310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01102303)) = true := by + have h : ((childLL (childLH thetaAboveCell01102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01102303)) h +theorem e24KC2ThetaAboveLeaf0110230311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01102303)) = true := by + have h : ((childLH (childLH thetaAboveCell01102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01102303)) h +theorem e24KC2ThetaAboveLeaf0110230312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01102303)) = true := by + have h : ((childHL (childLH thetaAboveCell01102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01102303)) h +theorem e24KC2ThetaAboveLeaf0110230313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01102303)) = true := by + have h : ((childHH (childLH thetaAboveCell01102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01102303)) h +theorem e24KC2ThetaAboveLeaf0110230320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01102303)) = true := by + have h : ((childLL (childHL thetaAboveCell01102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01102303)) h +theorem e24KC2ThetaAboveLeaf0110230321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01102303)) = true := by + have h : ((childLH (childHL thetaAboveCell01102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01102303)) h +theorem e24KC2ThetaAboveLeaf0110230322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01102303)) = true := by + have h : ((childHL (childHL thetaAboveCell01102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01102303)) h +theorem e24KC2ThetaAboveLeaf0110230323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01102303)) = true := by + have h : ((childHH (childHL thetaAboveCell01102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01102303)) h +theorem e24KC2ThetaAboveLeaf0110230330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01102303)) = true := by + have h : ((childLL (childHH thetaAboveCell01102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01102303)) h +theorem e24KC2ThetaAboveLeaf0110230331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01102303)) = true := by + have h : ((childLH (childHH thetaAboveCell01102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01102303)) h +theorem e24KC2ThetaAboveLeaf0110230332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01102303)) = true := by + have h : ((childHL (childHH thetaAboveCell01102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01102303)) h +theorem e24KC2ThetaAboveLeaf0110230333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01102303)) = true := by + have h : ((childHH (childHH thetaAboveCell01102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01102303)) h +theorem e24KC2ThetaAboveLeaf011023100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102310) = true := by + have h : ((childLL thetaAboveCell01102310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01102310) h +theorem e24KC2ThetaAboveLeaf011023101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102310) = true := by + have h : ((childLH thetaAboveCell01102310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01102310) h +theorem e24KC2ThetaAboveLeaf0110231020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01102310)) = true := by + have h : ((childLL (childHL thetaAboveCell01102310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01102310)) h +theorem e24KC2ThetaAboveLeaf0110231021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01102310)) = true := by + have h : ((childLH (childHL thetaAboveCell01102310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01102310)) h +theorem e24KC2ThetaAboveLeaf0110231022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01102310)) = true := by + have h : ((childHL (childHL thetaAboveCell01102310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01102310)) h +theorem e24KC2ThetaAboveLeaf0110231023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01102310)) = true := by + have h : ((childHH (childHL thetaAboveCell01102310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01102310)) h +theorem e24KC2ThetaAboveLeaf0110231030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01102310)) = true := by + have h : ((childLL (childHH thetaAboveCell01102310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01102310)) h +theorem e24KC2ThetaAboveLeaf0110231031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01102310)) = true := by + have h : ((childLH (childHH thetaAboveCell01102310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01102310)) h +theorem e24KC2ThetaAboveLeaf0110231032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01102310)) = true := by + have h : ((childHL (childHH thetaAboveCell01102310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01102310)) h +theorem e24KC2ThetaAboveLeaf0110231033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01102310)) = true := by + have h : ((childHH (childHH thetaAboveCell01102310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01102310)) h +theorem e24KC2ThetaAboveLeaf011023110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102311) = true := by + have h : ((childLL thetaAboveCell01102311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01102311) h +theorem e24KC2ThetaAboveLeaf011023111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102311) = true := by + have h : ((childLH thetaAboveCell01102311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01102311) h +theorem e24KC2ThetaAboveLeaf0110231120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01102311)) = true := by + have h : ((childLL (childHL thetaAboveCell01102311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01102311)) h +theorem e24KC2ThetaAboveLeaf0110231121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01102311)) = true := by + have h : ((childLH (childHL thetaAboveCell01102311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01102311)) h +theorem e24KC2ThetaAboveLeaf0110231122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01102311)) = true := by + have h : ((childHL (childHL thetaAboveCell01102311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01102311)) h +theorem e24KC2ThetaAboveLeaf0110231123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01102311)) = true := by + have h : ((childHH (childHL thetaAboveCell01102311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01102311)) h +theorem e24KC2ThetaAboveLeaf0110231130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01102311)) = true := by + have h : ((childLL (childHH thetaAboveCell01102311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01102311)) h +theorem e24KC2ThetaAboveLeaf0110231131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01102311)) = true := by + have h : ((childLH (childHH thetaAboveCell01102311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01102311)) h +theorem e24KC2ThetaAboveLeaf0110231132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01102311)) = true := by + have h : ((childHL (childHH thetaAboveCell01102311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01102311)) h +theorem e24KC2ThetaAboveLeaf0110231133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01102311)) = true := by + have h : ((childHH (childHH thetaAboveCell01102311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01102311)) h +theorem e24KC2ThetaAboveLeaf0110231200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01102312)) = true := by + have h : ((childLL (childLL thetaAboveCell01102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01102312)) h +theorem e24KC2ThetaAboveLeaf0110231201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01102312)) = true := by + have h : ((childLH (childLL thetaAboveCell01102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01102312)) h +theorem e24KC2ThetaAboveLeaf0110231202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01102312)) = true := by + have h : ((childHL (childLL thetaAboveCell01102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01102312)) h +theorem e24KC2ThetaAboveLeaf0110231203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01102312)) = true := by + have h : ((childHH (childLL thetaAboveCell01102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01102312)) h +theorem e24KC2ThetaAboveLeaf0110231210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01102312)) = true := by + have h : ((childLL (childLH thetaAboveCell01102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01102312)) h +theorem e24KC2ThetaAboveLeaf0110231211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01102312)) = true := by + have h : ((childLH (childLH thetaAboveCell01102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01102312)) h +theorem e24KC2ThetaAboveLeaf0110231212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01102312)) = true := by + have h : ((childHL (childLH thetaAboveCell01102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01102312)) h +theorem e24KC2ThetaAboveLeaf0110231213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01102312)) = true := by + have h : ((childHH (childLH thetaAboveCell01102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01102312)) h +theorem e24KC2ThetaAboveLeaf0110231220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01102312)) = true := by + have h : ((childLL (childHL thetaAboveCell01102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01102312)) h +theorem e24KC2ThetaAboveLeaf0110231221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01102312)) = true := by + have h : ((childLH (childHL thetaAboveCell01102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01102312)) h +theorem e24KC2ThetaAboveLeaf0110231222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01102312)) = true := by + have h : ((childHL (childHL thetaAboveCell01102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01102312)) h +theorem e24KC2ThetaAboveLeaf0110231223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01102312)) = true := by + have h : ((childHH (childHL thetaAboveCell01102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01102312)) h +theorem e24KC2ThetaAboveLeaf0110231230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01102312)) = true := by + have h : ((childLL (childHH thetaAboveCell01102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01102312)) h +theorem e24KC2ThetaAboveLeaf0110231231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01102312)) = true := by + have h : ((childLH (childHH thetaAboveCell01102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01102312)) h +theorem e24KC2ThetaAboveLeaf0110231232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01102312)) = true := by + have h : ((childHL (childHH thetaAboveCell01102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01102312)) h +theorem e24KC2ThetaAboveLeaf0110231233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01102312)) = true := by + have h : ((childHH (childHH thetaAboveCell01102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01102312)) h +theorem e24KC2ThetaAboveLeaf0110231300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01102313)) = true := by + have h : ((childLL (childLL thetaAboveCell01102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01102313)) h +theorem e24KC2ThetaAboveLeaf0110231301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01102313)) = true := by + have h : ((childLH (childLL thetaAboveCell01102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01102313)) h +theorem e24KC2ThetaAboveLeaf0110231302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01102313)) = true := by + have h : ((childHL (childLL thetaAboveCell01102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01102313)) h +theorem e24KC2ThetaAboveLeaf0110231303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01102313)) = true := by + have h : ((childHH (childLL thetaAboveCell01102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01102313)) h +theorem e24KC2ThetaAboveLeaf0110231310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01102313)) = true := by + have h : ((childLL (childLH thetaAboveCell01102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01102313)) h +theorem e24KC2ThetaAboveLeaf0110231311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01102313)) = true := by + have h : ((childLH (childLH thetaAboveCell01102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01102313)) h +theorem e24KC2ThetaAboveLeaf0110231312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01102313)) = true := by + have h : ((childHL (childLH thetaAboveCell01102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01102313)) h +theorem e24KC2ThetaAboveLeaf0110231313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01102313)) = true := by + have h : ((childHH (childLH thetaAboveCell01102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01102313)) h +theorem e24KC2ThetaAboveLeaf0110231320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01102313)) = true := by + have h : ((childLL (childHL thetaAboveCell01102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01102313)) h +theorem e24KC2ThetaAboveLeaf0110231321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01102313)) = true := by + have h : ((childLH (childHL thetaAboveCell01102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01102313)) h +theorem e24KC2ThetaAboveLeaf0110231322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01102313)) = true := by + have h : ((childHL (childHL thetaAboveCell01102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01102313)) h +theorem e24KC2ThetaAboveLeaf0110231323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01102313)) = true := by + have h : ((childHH (childHL thetaAboveCell01102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01102313)) h +theorem e24KC2ThetaAboveLeaf0110231330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01102313)) = true := by + have h : ((childLL (childHH thetaAboveCell01102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01102313)) h +theorem e24KC2ThetaAboveLeaf0110231331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01102313)) = true := by + have h : ((childLH (childHH thetaAboveCell01102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01102313)) h +theorem e24KC2ThetaAboveLeaf0110231332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01102313)) = true := by + have h : ((childHL (childHH thetaAboveCell01102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01102313)) h +theorem e24KC2ThetaAboveLeaf0110231333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01102313)) = true := by + have h : ((childHH (childHH thetaAboveCell01102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01102313)) h +theorem e24KC2ThetaAboveLeaf011023200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102320) = true := by + have h : ((childLL thetaAboveCell01102320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01102320) h +theorem e24KC2ThetaAboveLeaf011023201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102320) = true := by + have h : ((childLH thetaAboveCell01102320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01102320) h +theorem e24KC2ThetaAboveLeaf011023202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102320) = true := by + have h : ((childHL thetaAboveCell01102320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01102320) h +theorem e24KC2ThetaAboveLeaf011023203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102320) = true := by + have h : ((childHH thetaAboveCell01102320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01102320) h +theorem e24KC2ThetaAboveLeaf011023210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102321) = true := by + have h : ((childLL thetaAboveCell01102321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01102321) h +theorem e24KC2ThetaAboveLeaf011023211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102321) = true := by + have h : ((childLH thetaAboveCell01102321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01102321) h +theorem e24KC2ThetaAboveLeaf011023212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102321) = true := by + have h : ((childHL thetaAboveCell01102321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01102321) h +theorem e24KC2ThetaAboveLeaf011023213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102321) = true := by + have h : ((childHH thetaAboveCell01102321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01102321) h +theorem e24KC2ThetaAboveLeaf01102322 : + adaptiveCoverCheck 11 thetaAboveCell01102322 = true := by + have h : (thetaAboveCell01102322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102322 h +theorem e24KC2ThetaAboveLeaf01102323 : + adaptiveCoverCheck 11 thetaAboveCell01102323 = true := by + have h : (thetaAboveCell01102323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102323 h +theorem e24KC2ThetaAboveLeaf011023300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102330) = true := by + have h : ((childLL thetaAboveCell01102330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01102330) h +theorem e24KC2ThetaAboveLeaf011023301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102330) = true := by + have h : ((childLH thetaAboveCell01102330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01102330) h +theorem e24KC2ThetaAboveLeaf011023302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102330) = true := by + have h : ((childHL thetaAboveCell01102330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01102330) h +theorem e24KC2ThetaAboveLeaf011023303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102330) = true := by + have h : ((childHH thetaAboveCell01102330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01102330) h +theorem e24KC2ThetaAboveLeaf011023310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102331) = true := by + have h : ((childLL thetaAboveCell01102331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01102331) h +theorem e24KC2ThetaAboveLeaf011023311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102331) = true := by + have h : ((childLH thetaAboveCell01102331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01102331) h +theorem e24KC2ThetaAboveLeaf011023312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102331) = true := by + have h : ((childHL thetaAboveCell01102331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01102331) h +theorem e24KC2ThetaAboveLeaf011023313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102331) = true := by + have h : ((childHH thetaAboveCell01102331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01102331) h +theorem e24KC2ThetaAboveLeaf01102332 : + adaptiveCoverCheck 11 thetaAboveCell01102332 = true := by + have h : (thetaAboveCell01102332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102332 h +theorem e24KC2ThetaAboveLeaf01102333 : + adaptiveCoverCheck 11 thetaAboveCell01102333 = true := by + have h : (thetaAboveCell01102333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01102333 h +theorem e24KC2ThetaAboveLeaf0110300 : + adaptiveCoverCheck 12 (childLL (childLL (childHH thetaAboveCell0110))) = true := by + have h : ((childLL (childLL (childHH thetaAboveCell0110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHH thetaAboveCell0110))) h +theorem e24KC2ThetaAboveLeaf0110301 : + adaptiveCoverCheck 12 (childLH (childLL (childHH thetaAboveCell0110))) = true := by + have h : ((childLH (childLL (childHH thetaAboveCell0110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHH thetaAboveCell0110))) h +theorem e24KC2ThetaAboveLeaf01103020 : + adaptiveCoverCheck 11 thetaAboveCell01103020 = true := by + have h : (thetaAboveCell01103020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103020 h +theorem e24KC2ThetaAboveLeaf01103021 : + adaptiveCoverCheck 11 thetaAboveCell01103021 = true := by + have h : (thetaAboveCell01103021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103021 h +theorem e24KC2ThetaAboveLeaf01103022 : + adaptiveCoverCheck 11 thetaAboveCell01103022 = true := by + have h : (thetaAboveCell01103022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103022 h +theorem e24KC2ThetaAboveLeaf01103023 : + adaptiveCoverCheck 11 thetaAboveCell01103023 = true := by + have h : (thetaAboveCell01103023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103023 h +theorem e24KC2ThetaAboveLeaf01103030 : + adaptiveCoverCheck 11 thetaAboveCell01103030 = true := by + have h : (thetaAboveCell01103030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103030 h +theorem e24KC2ThetaAboveLeaf01103031 : + adaptiveCoverCheck 11 thetaAboveCell01103031 = true := by + have h : (thetaAboveCell01103031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103031 h +theorem e24KC2ThetaAboveLeaf01103032 : + adaptiveCoverCheck 11 thetaAboveCell01103032 = true := by + have h : (thetaAboveCell01103032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103032 h +theorem e24KC2ThetaAboveLeaf01103033 : + adaptiveCoverCheck 11 thetaAboveCell01103033 = true := by + have h : (thetaAboveCell01103033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103033 h +theorem e24KC2ThetaAboveLeaf0110310 : + adaptiveCoverCheck 12 (childLL (childLH (childHH thetaAboveCell0110))) = true := by + have h : ((childLL (childLH (childHH thetaAboveCell0110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHH thetaAboveCell0110))) h +theorem e24KC2ThetaAboveLeaf0110311 : + adaptiveCoverCheck 12 (childLH (childLH (childHH thetaAboveCell0110))) = true := by + have h : ((childLH (childLH (childHH thetaAboveCell0110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHH thetaAboveCell0110))) h +theorem e24KC2ThetaAboveLeaf01103120 : + adaptiveCoverCheck 11 thetaAboveCell01103120 = true := by + have h : (thetaAboveCell01103120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103120 h +theorem e24KC2ThetaAboveLeaf01103121 : + adaptiveCoverCheck 11 thetaAboveCell01103121 = true := by + have h : (thetaAboveCell01103121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103121 h +theorem e24KC2ThetaAboveLeaf01103122 : + adaptiveCoverCheck 11 thetaAboveCell01103122 = true := by + have h : (thetaAboveCell01103122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103122 h +theorem e24KC2ThetaAboveLeaf01103123 : + adaptiveCoverCheck 11 thetaAboveCell01103123 = true := by + have h : (thetaAboveCell01103123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103123 h +theorem e24KC2ThetaAboveLeaf01103130 : + adaptiveCoverCheck 11 thetaAboveCell01103130 = true := by + have h : (thetaAboveCell01103130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103130 h +theorem e24KC2ThetaAboveLeaf01103131 : + adaptiveCoverCheck 11 thetaAboveCell01103131 = true := by + have h : (thetaAboveCell01103131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103131 h +theorem e24KC2ThetaAboveLeaf01103132 : + adaptiveCoverCheck 11 thetaAboveCell01103132 = true := by + have h : (thetaAboveCell01103132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103132 h +theorem e24KC2ThetaAboveLeaf01103133 : + adaptiveCoverCheck 11 thetaAboveCell01103133 = true := by + have h : (thetaAboveCell01103133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103133 h +theorem e24KC2ThetaAboveLeaf011032000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103200) = true := by + have h : ((childLL thetaAboveCell01103200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01103200) h +theorem e24KC2ThetaAboveLeaf011032001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103200) = true := by + have h : ((childLH thetaAboveCell01103200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01103200) h +theorem e24KC2ThetaAboveLeaf0110320020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01103200)) = true := by + have h : ((childLL (childHL thetaAboveCell01103200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01103200)) h +theorem e24KC2ThetaAboveLeaf0110320021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01103200)) = true := by + have h : ((childLH (childHL thetaAboveCell01103200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01103200)) h +theorem e24KC2ThetaAboveLeaf0110320022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01103200)) = true := by + have h : ((childHL (childHL thetaAboveCell01103200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01103200)) h +theorem e24KC2ThetaAboveLeaf0110320023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01103200)) = true := by + have h : ((childHH (childHL thetaAboveCell01103200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01103200)) h +theorem e24KC2ThetaAboveLeaf0110320030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01103200)) = true := by + have h : ((childLL (childHH thetaAboveCell01103200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01103200)) h +theorem e24KC2ThetaAboveLeaf0110320031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01103200)) = true := by + have h : ((childLH (childHH thetaAboveCell01103200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01103200)) h +theorem e24KC2ThetaAboveLeaf0110320032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01103200)) = true := by + have h : ((childHL (childHH thetaAboveCell01103200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01103200)) h +theorem e24KC2ThetaAboveLeaf0110320033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01103200)) = true := by + have h : ((childHH (childHH thetaAboveCell01103200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01103200)) h +theorem e24KC2ThetaAboveLeaf011032010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103201) = true := by + have h : ((childLL thetaAboveCell01103201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01103201) h +theorem e24KC2ThetaAboveLeaf011032011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103201) = true := by + have h : ((childLH thetaAboveCell01103201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01103201) h +theorem e24KC2ThetaAboveLeaf0110320120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01103201)) = true := by + have h : ((childLL (childHL thetaAboveCell01103201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01103201)) h +theorem e24KC2ThetaAboveLeaf0110320121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01103201)) = true := by + have h : ((childLH (childHL thetaAboveCell01103201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01103201)) h +theorem e24KC2ThetaAboveLeaf0110320122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01103201)) = true := by + have h : ((childHL (childHL thetaAboveCell01103201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01103201)) h +theorem e24KC2ThetaAboveLeaf0110320123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01103201)) = true := by + have h : ((childHH (childHL thetaAboveCell01103201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01103201)) h +theorem e24KC2ThetaAboveLeaf0110320130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01103201)) = true := by + have h : ((childLL (childHH thetaAboveCell01103201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01103201)) h +theorem e24KC2ThetaAboveLeaf0110320131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01103201)) = true := by + have h : ((childLH (childHH thetaAboveCell01103201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01103201)) h +theorem e24KC2ThetaAboveLeaf0110320132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01103201)) = true := by + have h : ((childHL (childHH thetaAboveCell01103201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01103201)) h +theorem e24KC2ThetaAboveLeaf0110320133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01103201)) = true := by + have h : ((childHH (childHH thetaAboveCell01103201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01103201)) h +theorem e24KC2ThetaAboveLeaf0110320200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01103202)) = true := by + have h : ((childLL (childLL thetaAboveCell01103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01103202)) h +theorem e24KC2ThetaAboveLeaf0110320201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01103202)) = true := by + have h : ((childLH (childLL thetaAboveCell01103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01103202)) h +theorem e24KC2ThetaAboveLeaf0110320202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01103202)) = true := by + have h : ((childHL (childLL thetaAboveCell01103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01103202)) h +theorem e24KC2ThetaAboveLeaf0110320203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01103202)) = true := by + have h : ((childHH (childLL thetaAboveCell01103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01103202)) h +theorem e24KC2ThetaAboveLeaf0110320210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01103202)) = true := by + have h : ((childLL (childLH thetaAboveCell01103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01103202)) h +theorem e24KC2ThetaAboveLeaf0110320211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01103202)) = true := by + have h : ((childLH (childLH thetaAboveCell01103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01103202)) h +theorem e24KC2ThetaAboveLeaf0110320212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01103202)) = true := by + have h : ((childHL (childLH thetaAboveCell01103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01103202)) h +theorem e24KC2ThetaAboveLeaf0110320213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01103202)) = true := by + have h : ((childHH (childLH thetaAboveCell01103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01103202)) h +theorem e24KC2ThetaAboveLeaf0110320220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01103202)) = true := by + have h : ((childLL (childHL thetaAboveCell01103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01103202)) h +theorem e24KC2ThetaAboveLeaf0110320221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01103202)) = true := by + have h : ((childLH (childHL thetaAboveCell01103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01103202)) h +theorem e24KC2ThetaAboveLeaf0110320222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01103202)) = true := by + have h : ((childHL (childHL thetaAboveCell01103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01103202)) h +theorem e24KC2ThetaAboveLeaf0110320223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01103202)) = true := by + have h : ((childHH (childHL thetaAboveCell01103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01103202)) h +theorem e24KC2ThetaAboveLeaf0110320230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01103202)) = true := by + have h : ((childLL (childHH thetaAboveCell01103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01103202)) h +theorem e24KC2ThetaAboveLeaf0110320231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01103202)) = true := by + have h : ((childLH (childHH thetaAboveCell01103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01103202)) h +theorem e24KC2ThetaAboveLeaf0110320232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01103202)) = true := by + have h : ((childHL (childHH thetaAboveCell01103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01103202)) h +theorem e24KC2ThetaAboveLeaf0110320233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01103202)) = true := by + have h : ((childHH (childHH thetaAboveCell01103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01103202)) h +theorem e24KC2ThetaAboveLeaf0110320300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01103203)) = true := by + have h : ((childLL (childLL thetaAboveCell01103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01103203)) h +theorem e24KC2ThetaAboveLeaf0110320301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01103203)) = true := by + have h : ((childLH (childLL thetaAboveCell01103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01103203)) h +theorem e24KC2ThetaAboveLeaf0110320302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01103203)) = true := by + have h : ((childHL (childLL thetaAboveCell01103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01103203)) h +theorem e24KC2ThetaAboveLeaf0110320303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01103203)) = true := by + have h : ((childHH (childLL thetaAboveCell01103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01103203)) h +theorem e24KC2ThetaAboveLeaf0110320310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01103203)) = true := by + have h : ((childLL (childLH thetaAboveCell01103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01103203)) h +theorem e24KC2ThetaAboveLeaf0110320311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01103203)) = true := by + have h : ((childLH (childLH thetaAboveCell01103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01103203)) h +theorem e24KC2ThetaAboveLeaf0110320312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01103203)) = true := by + have h : ((childHL (childLH thetaAboveCell01103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01103203)) h +theorem e24KC2ThetaAboveLeaf0110320313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01103203)) = true := by + have h : ((childHH (childLH thetaAboveCell01103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01103203)) h +theorem e24KC2ThetaAboveLeaf0110320320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01103203)) = true := by + have h : ((childLL (childHL thetaAboveCell01103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01103203)) h +theorem e24KC2ThetaAboveLeaf0110320321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01103203)) = true := by + have h : ((childLH (childHL thetaAboveCell01103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01103203)) h +theorem e24KC2ThetaAboveLeaf0110320322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01103203)) = true := by + have h : ((childHL (childHL thetaAboveCell01103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01103203)) h +theorem e24KC2ThetaAboveLeaf0110320323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01103203)) = true := by + have h : ((childHH (childHL thetaAboveCell01103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01103203)) h +theorem e24KC2ThetaAboveLeaf0110320330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01103203)) = true := by + have h : ((childLL (childHH thetaAboveCell01103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01103203)) h +theorem e24KC2ThetaAboveLeaf0110320331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01103203)) = true := by + have h : ((childLH (childHH thetaAboveCell01103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01103203)) h +theorem e24KC2ThetaAboveLeaf0110320332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01103203)) = true := by + have h : ((childHL (childHH thetaAboveCell01103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01103203)) h +theorem e24KC2ThetaAboveLeaf0110320333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01103203)) = true := by + have h : ((childHH (childHH thetaAboveCell01103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01103203)) h +theorem e24KC2ThetaAboveLeaf011032100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103210) = true := by + have h : ((childLL thetaAboveCell01103210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01103210) h +theorem e24KC2ThetaAboveLeaf011032101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103210) = true := by + have h : ((childLH thetaAboveCell01103210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01103210) h +theorem e24KC2ThetaAboveLeaf0110321020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01103210)) = true := by + have h : ((childLL (childHL thetaAboveCell01103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01103210)) h +theorem e24KC2ThetaAboveLeaf0110321021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01103210)) = true := by + have h : ((childLH (childHL thetaAboveCell01103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01103210)) h +theorem e24KC2ThetaAboveLeaf0110321022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01103210)) = true := by + have h : ((childHL (childHL thetaAboveCell01103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01103210)) h +theorem e24KC2ThetaAboveLeaf0110321023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01103210)) = true := by + have h : ((childHH (childHL thetaAboveCell01103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01103210)) h + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC6ProofBatchAf2b60d8e2cf09a4`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC6 explicit proof-producing certificate batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8ecd2c98f8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8ecd2c98f8 + +open CertificateCells8ecd2c98f8 +theorem cover_subtree_d3f1948c7bb2 : + adaptiveCoverCheck 6 thetaBelowCell111133110222 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133110222 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133110222) + (by + have h : ((childLL (childLL thetaBelowCell111133110222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133110222)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133110222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133110222)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133110222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133110222)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133110222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133110222)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133110222) + (by + have h : ((childLL (childLH thetaBelowCell111133110222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133110222)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133110222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133110222)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133110222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133110222)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133110222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133110222)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133110222) + (by + have h : ((childLL (childHL thetaBelowCell111133110222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133110222)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133110222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133110222)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133110222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133110222)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133110222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133110222)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133110222) + (by + have h : ((childLL (childHH thetaBelowCell111133110222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133110222)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133110222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133110222)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133110222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133110222)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133110222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133110222)) h)) + +theorem cover_subtree_06756667cdcb : + adaptiveCoverCheck 6 thetaBelowCell111133110223 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133110223 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133110223) + (by + have h : ((childLL (childLL thetaBelowCell111133110223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133110223)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133110223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133110223)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133110223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133110223)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133110223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133110223)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133110223) + (by + have h : ((childLL (childLH thetaBelowCell111133110223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133110223)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133110223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133110223)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133110223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133110223)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133110223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133110223)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133110223) + (by + have h : ((childLL (childHL thetaBelowCell111133110223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133110223)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133110223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133110223)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133110223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133110223)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133110223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133110223)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133110223) + (by + have h : ((childLL (childHH thetaBelowCell111133110223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133110223)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133110223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133110223)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133110223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133110223)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133110223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133110223)) h)) + +theorem cover_subtree_5fd1a813f187 : + adaptiveCoverCheck 7 (childHL (childHL (childLL thetaBelowCell11113311))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHL (childLL thetaBelowCell11113311))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133110220 + (by + have h : ((childLL thetaBelowCell111133110220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133110220) h) + (by + have h : ((childLH thetaBelowCell111133110220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133110220) h) + (by + have h : ((childHL thetaBelowCell111133110220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133110220) h) + (by + have h : ((childHH thetaBelowCell111133110220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133110220) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133110221 + (by + have h : ((childLL thetaBelowCell111133110221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133110221) h) + (by + have h : ((childLH thetaBelowCell111133110221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133110221) h) + (by + have h : ((childHL thetaBelowCell111133110221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133110221) h) + (by + have h : ((childHH thetaBelowCell111133110221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133110221) h)) + cover_subtree_d3f1948c7bb2 + cover_subtree_06756667cdcb + +theorem cover_subtree_985d36a8aada : + adaptiveCoverCheck 6 thetaBelowCell111133110232 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133110232 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133110232) + (by + have h : ((childLL (childLL thetaBelowCell111133110232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133110232)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133110232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133110232)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133110232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133110232)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133110232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133110232)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133110232) + (by + have h : ((childLL (childLH thetaBelowCell111133110232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133110232)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133110232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133110232)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133110232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133110232)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133110232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133110232)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133110232) + (by + have h : ((childLL (childHL thetaBelowCell111133110232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133110232)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133110232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133110232)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133110232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133110232)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133110232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133110232)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133110232) + (by + have h : ((childLL (childHH thetaBelowCell111133110232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133110232)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133110232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133110232)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133110232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133110232)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133110232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133110232)) h)) + +theorem cover_subtree_91f684fb2a75 : + adaptiveCoverCheck 6 thetaBelowCell111133110233 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133110233 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133110233) + (by + have h : ((childLL (childLL thetaBelowCell111133110233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133110233)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133110233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133110233)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133110233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133110233)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133110233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133110233)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133110233) + (by + have h : ((childLL (childLH thetaBelowCell111133110233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133110233)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133110233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133110233)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133110233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133110233)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133110233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133110233)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133110233) + (by + have h : ((childLL (childHL thetaBelowCell111133110233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133110233)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133110233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133110233)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133110233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133110233)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133110233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133110233)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133110233) + (by + have h : ((childLL (childHH thetaBelowCell111133110233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133110233)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133110233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133110233)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133110233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133110233)) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH thetaBelowCell111133110233)) + (by + have h : ((childLL (childHH (childHH thetaBelowCell111133110233)))).rejected = true + := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childHH + thetaBelowCell111133110233))) h) + (by + have h : ((childLH (childHH (childHH thetaBelowCell111133110233)))).rejected = true + := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childHH + thetaBelowCell111133110233))) h) + (by + have h : ((childHL (childHH (childHH thetaBelowCell111133110233)))).rejected = true + := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childHH + thetaBelowCell111133110233))) h) + (by + have h : ((childHH (childHH (childHH thetaBelowCell111133110233)))).rejected = true + := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childHH + thetaBelowCell111133110233))) h))) + +theorem cover_subtree_145b055d6873 : + adaptiveCoverCheck 7 (childHH (childHL (childLL thetaBelowCell11113311))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHL (childLL thetaBelowCell11113311))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133110230 + (by + have h : ((childLL thetaBelowCell111133110230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133110230) h) + (by + have h : ((childLH thetaBelowCell111133110230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133110230) h) + (by + have h : ((childHL thetaBelowCell111133110230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133110230) h) + (by + have h : ((childHH thetaBelowCell111133110230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133110230) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133110231 + (by + have h : ((childLL thetaBelowCell111133110231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133110231) h) + (by + have h : ((childLH thetaBelowCell111133110231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133110231) h) + (by + have h : ((childHL thetaBelowCell111133110231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133110231) h) + (by + have h : ((childHH thetaBelowCell111133110231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133110231) h)) + cover_subtree_985d36a8aada + cover_subtree_91f684fb2a75 + +theorem cover_subtree_3ea9d3baa8d2 : + adaptiveCoverCheck 8 (childHL (childLL thetaBelowCell11113311)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL thetaBelowCell11113311)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHL (childLL + thetaBelowCell11113311))) + (by + have h : (thetaBelowCell111133110200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133110200 h) + (by + have h : (thetaBelowCell111133110201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133110201 h) + (by + have h : (thetaBelowCell111133110202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133110202 h) + (by + have h : (thetaBelowCell111133110203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133110203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHL (childLL + thetaBelowCell11113311))) + (by + have h : (thetaBelowCell111133110210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133110210 h) + (by + have h : (thetaBelowCell111133110211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133110211 h) + (by + have h : (thetaBelowCell111133110212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133110212 h) + (by + have h : (thetaBelowCell111133110213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133110213 h)) + cover_subtree_5fd1a813f187 + cover_subtree_145b055d6873 + +theorem cover_subtree_2d2eae393440 : + adaptiveCoverCheck 5 (childHL thetaBelowCell111133110322) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133110322) + (by + have h : ((childLL (childHL thetaBelowCell111133110322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL thetaBelowCell111133110322)) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL thetaBelowCell111133110322)) + (by + have h : ((childLL (childLH (childHL thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childHL + thetaBelowCell111133110322))) h) + (by + have h : ((childLH (childLH (childHL thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childHL + thetaBelowCell111133110322))) h) + (by + have h : ((childHL (childLH (childHL thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childHL + thetaBelowCell111133110322))) h) + (by + have h : ((childHH (childLH (childHL thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childHL + thetaBelowCell111133110322))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL thetaBelowCell111133110322)) + (by + have h : ((childLL (childHL (childHL thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childHL + thetaBelowCell111133110322))) h) + (by + have h : ((childLH (childHL (childHL thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childHL + thetaBelowCell111133110322))) h) + (by + have h : ((childHL (childHL (childHL thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childHL + thetaBelowCell111133110322))) h) + (by + have h : ((childHH (childHL (childHL thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childHL + thetaBelowCell111133110322))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL thetaBelowCell111133110322)) + (by + have h : ((childLL (childHH (childHL thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childHL + thetaBelowCell111133110322))) h) + (by + have h : ((childLH (childHH (childHL thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childHL + thetaBelowCell111133110322))) h) + (by + have h : ((childHL (childHH (childHL thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childHL + thetaBelowCell111133110322))) h) + (by + have h : ((childHH (childHH (childHL thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childHL + thetaBelowCell111133110322))) h)) + +theorem cover_subtree_4a90a1e8c08a : + adaptiveCoverCheck 5 (childHH thetaBelowCell111133110322) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133110322) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH thetaBelowCell111133110322)) + (by + have h : ((childLL (childLL (childHH thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childHH + thetaBelowCell111133110322))) h) + (by + have h : ((childLH (childLL (childHH thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childHH + thetaBelowCell111133110322))) h) + (by + have h : ((childHL (childLL (childHH thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childHH + thetaBelowCell111133110322))) h) + (by + have h : ((childHH (childLL (childHH thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childHH + thetaBelowCell111133110322))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH thetaBelowCell111133110322)) + (by + have h : ((childLL (childLH (childHH thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childHH + thetaBelowCell111133110322))) h) + (by + have h : ((childLH (childLH (childHH thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childHH + thetaBelowCell111133110322))) h) + (by + have h : ((childHL (childLH (childHH thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childHH + thetaBelowCell111133110322))) h) + (by + have h : ((childHH (childLH (childHH thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childHH + thetaBelowCell111133110322))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH thetaBelowCell111133110322)) + (by + have h : ((childLL (childHL (childHH thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childHH + thetaBelowCell111133110322))) h) + (by + have h : ((childLH (childHL (childHH thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childHH + thetaBelowCell111133110322))) h) + (by + have h : ((childHL (childHL (childHH thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childHH + thetaBelowCell111133110322))) h) + (by + have h : ((childHH (childHL (childHH thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childHH + thetaBelowCell111133110322))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH thetaBelowCell111133110322)) + (by + have h : ((childLL (childHH (childHH thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childHH + thetaBelowCell111133110322))) h) + (by + have h : ((childLH (childHH (childHH thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childHH + thetaBelowCell111133110322))) h) + (by + have h : ((childHL (childHH (childHH thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childHH + thetaBelowCell111133110322))) h) + (by + have h : ((childHH (childHH (childHH thetaBelowCell111133110322)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childHH + thetaBelowCell111133110322))) h)) + +theorem cover_subtree_179b6bbb140a : + adaptiveCoverCheck 6 thetaBelowCell111133110322 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133110322 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133110322) + (by + have h : ((childLL (childLL thetaBelowCell111133110322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133110322)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133110322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133110322)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133110322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133110322)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133110322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133110322)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133110322) + (by + have h : ((childLL (childLH thetaBelowCell111133110322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133110322)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133110322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133110322)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133110322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133110322)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133110322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133110322)) h)) + cover_subtree_2d2eae393440 + cover_subtree_4a90a1e8c08a + +theorem cover_subtree_802a68149050 : + adaptiveCoverCheck 5 (childHL thetaBelowCell111133110323) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133110323) + (by + have h : ((childLL (childHL thetaBelowCell111133110323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL thetaBelowCell111133110323)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133110323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL thetaBelowCell111133110323)) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL thetaBelowCell111133110323)) + (by + have h : ((childLL (childHL (childHL thetaBelowCell111133110323)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childHL + thetaBelowCell111133110323))) h) + (by + have h : ((childLH (childHL (childHL thetaBelowCell111133110323)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childHL + thetaBelowCell111133110323))) h) + (by + have h : ((childHL (childHL (childHL thetaBelowCell111133110323)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childHL + thetaBelowCell111133110323))) h) + (by + have h : ((childHH (childHL (childHL thetaBelowCell111133110323)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childHL + thetaBelowCell111133110323))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL thetaBelowCell111133110323)) + (by + have h : ((childLL (childHH (childHL thetaBelowCell111133110323)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childHL + thetaBelowCell111133110323))) h) + (by + have h : ((childLH (childHH (childHL thetaBelowCell111133110323)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childHL + thetaBelowCell111133110323))) h) + (by + have h : ((childHL (childHH (childHL thetaBelowCell111133110323)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childHL + thetaBelowCell111133110323))) h) + (by + have h : ((childHH (childHH (childHL thetaBelowCell111133110323)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childHL + thetaBelowCell111133110323))) h)) + +theorem cover_subtree_15d7407001b6 : + adaptiveCoverCheck 5 (childHH thetaBelowCell111133110323) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133110323) + (by + have h : ((childLL (childHH thetaBelowCell111133110323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH thetaBelowCell111133110323)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133110323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH thetaBelowCell111133110323)) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH thetaBelowCell111133110323)) + (by + have h : ((childLL (childHL (childHH thetaBelowCell111133110323)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childHH + thetaBelowCell111133110323))) h) + (by + have h : ((childLH (childHL (childHH thetaBelowCell111133110323)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childHH + thetaBelowCell111133110323))) h) + (by + have h : ((childHL (childHL (childHH thetaBelowCell111133110323)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childHH + thetaBelowCell111133110323))) h) + (by + have h : ((childHH (childHL (childHH thetaBelowCell111133110323)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childHH + thetaBelowCell111133110323))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH thetaBelowCell111133110323)) + (by + have h : ((childLL (childHH (childHH thetaBelowCell111133110323)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childHH + thetaBelowCell111133110323))) h) + (by + have h : ((childLH (childHH (childHH thetaBelowCell111133110323)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childHH + thetaBelowCell111133110323))) h) + (by + have h : ((childHL (childHH (childHH thetaBelowCell111133110323)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childHH + thetaBelowCell111133110323))) h) + (by + have h : ((childHH (childHH (childHH thetaBelowCell111133110323)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childHH + thetaBelowCell111133110323))) h)) + +theorem cover_subtree_6849ebb64c74 : + adaptiveCoverCheck 6 thetaBelowCell111133110323 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133110323 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133110323) + (by + have h : ((childLL (childLL thetaBelowCell111133110323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133110323)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133110323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133110323)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133110323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133110323)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133110323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133110323)) h)) + (by + have h : ((childLH thetaBelowCell111133110323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133110323) h) + cover_subtree_802a68149050 + cover_subtree_15d7407001b6 + +theorem cover_subtree_4bd97887e2d4 : + adaptiveCoverCheck 7 (childHL (childHH (childLL thetaBelowCell11113311))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHH (childLL thetaBelowCell11113311))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133110320 + (by + have h : ((childLL thetaBelowCell111133110320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133110320) h) + (by + have h : ((childLH thetaBelowCell111133110320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133110320) h) + (by + have h : ((childHL thetaBelowCell111133110320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133110320) h) + (by + have h : ((childHH thetaBelowCell111133110320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133110320) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133110321 + (by + have h : ((childLL thetaBelowCell111133110321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133110321) h) + (by + have h : ((childLH thetaBelowCell111133110321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133110321) h) + (by + have h : ((childHL thetaBelowCell111133110321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133110321) h) + (by + have h : ((childHH thetaBelowCell111133110321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133110321) h)) + cover_subtree_179b6bbb140a + cover_subtree_6849ebb64c74 + +theorem cover_subtree_63bf927d197e : + adaptiveCoverCheck 5 (childHL thetaBelowCell111133110332) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133110332) + (by + have h : ((childLL (childHL thetaBelowCell111133110332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL thetaBelowCell111133110332)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133110332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL thetaBelowCell111133110332)) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL thetaBelowCell111133110332)) + (by + have h : ((childLL (childHL (childHL thetaBelowCell111133110332)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childHL + thetaBelowCell111133110332))) h) + (by + have h : ((childLH (childHL (childHL thetaBelowCell111133110332)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childHL + thetaBelowCell111133110332))) h) + (by + have h : ((childHL (childHL (childHL thetaBelowCell111133110332)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childHL + thetaBelowCell111133110332))) h) + (by + have h : ((childHH (childHL (childHL thetaBelowCell111133110332)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childHL + thetaBelowCell111133110332))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL thetaBelowCell111133110332)) + (by + have h : ((childLL (childHH (childHL thetaBelowCell111133110332)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childHL + thetaBelowCell111133110332))) h) + (by + have h : ((childLH (childHH (childHL thetaBelowCell111133110332)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childHL + thetaBelowCell111133110332))) h) + (by + have h : ((childHL (childHH (childHL thetaBelowCell111133110332)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childHL + thetaBelowCell111133110332))) h) + (by + have h : ((childHH (childHH (childHL thetaBelowCell111133110332)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childHL + thetaBelowCell111133110332))) h)) + +theorem cover_subtree_4b23bc69c953 : + adaptiveCoverCheck 5 (childHH thetaBelowCell111133110332) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133110332) + (by + have h : ((childLL (childHH thetaBelowCell111133110332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH thetaBelowCell111133110332)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133110332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH thetaBelowCell111133110332)) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH thetaBelowCell111133110332)) + (by + have h : ((childLL (childHL (childHH thetaBelowCell111133110332)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childHH + thetaBelowCell111133110332))) h) + (by + have h : ((childLH (childHL (childHH thetaBelowCell111133110332)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childHH + thetaBelowCell111133110332))) h) + (by + have h : ((childHL (childHL (childHH thetaBelowCell111133110332)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childHH + thetaBelowCell111133110332))) h) + (by + have h : ((childHH (childHL (childHH thetaBelowCell111133110332)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childHH + thetaBelowCell111133110332))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH thetaBelowCell111133110332)) + (by + have h : ((childLL (childHH (childHH thetaBelowCell111133110332)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childHH + thetaBelowCell111133110332))) h) + (by + have h : ((childLH (childHH (childHH thetaBelowCell111133110332)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childHH + thetaBelowCell111133110332))) h) + (by + have h : ((childHL (childHH (childHH thetaBelowCell111133110332)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childHH + thetaBelowCell111133110332))) h) + (by + have h : ((childHH (childHH (childHH thetaBelowCell111133110332)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childHH + thetaBelowCell111133110332))) h)) + +theorem cover_subtree_b2776b022cdc : + adaptiveCoverCheck 6 thetaBelowCell111133110332 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133110332 + (by + have h : ((childLL thetaBelowCell111133110332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133110332) h) + (by + have h : ((childLH thetaBelowCell111133110332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133110332) h) + cover_subtree_63bf927d197e + cover_subtree_4b23bc69c953 + +theorem cover_subtree_273cf6356f9d : + adaptiveCoverCheck 5 (childHL thetaBelowCell111133110333) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133110333) + (by + have h : ((childLL (childHL thetaBelowCell111133110333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL thetaBelowCell111133110333)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133110333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL thetaBelowCell111133110333)) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL thetaBelowCell111133110333)) + (by + have h : ((childLL (childHL (childHL thetaBelowCell111133110333)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childHL + thetaBelowCell111133110333))) h) + (by + have h : ((childLH (childHL (childHL thetaBelowCell111133110333)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childHL + thetaBelowCell111133110333))) h) + (by + have h : ((childHL (childHL (childHL thetaBelowCell111133110333)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childHL + thetaBelowCell111133110333))) h) + (by + have h : ((childHH (childHL (childHL thetaBelowCell111133110333)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childHL + thetaBelowCell111133110333))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL thetaBelowCell111133110333)) + (by + have h : ((childLL (childHH (childHL thetaBelowCell111133110333)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childHL + thetaBelowCell111133110333))) h) + (by + have h : ((childLH (childHH (childHL thetaBelowCell111133110333)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childHL + thetaBelowCell111133110333))) h) + (by + have h : ((childHL (childHH (childHL thetaBelowCell111133110333)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childHL + thetaBelowCell111133110333))) h) + (by + have h : ((childHH (childHH (childHL thetaBelowCell111133110333)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childHL + thetaBelowCell111133110333))) h)) + +theorem cover_subtree_27ddb3080e9d : + adaptiveCoverCheck 5 (childHH thetaBelowCell111133110333) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133110333) + (by + have h : ((childLL (childHH thetaBelowCell111133110333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH thetaBelowCell111133110333)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133110333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH thetaBelowCell111133110333)) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH thetaBelowCell111133110333)) + (by + have h : ((childLL (childHL (childHH thetaBelowCell111133110333)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childHH + thetaBelowCell111133110333))) h) + (by + have h : ((childLH (childHL (childHH thetaBelowCell111133110333)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childHH + thetaBelowCell111133110333))) h) + (by + have h : ((childHL (childHL (childHH thetaBelowCell111133110333)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childHH + thetaBelowCell111133110333))) h) + (by + have h : ((childHH (childHL (childHH thetaBelowCell111133110333)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childHH + thetaBelowCell111133110333))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH thetaBelowCell111133110333)) + (by + have h : ((childLL (childHH (childHH thetaBelowCell111133110333)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childHH + thetaBelowCell111133110333))) h) + (by + have h : ((childLH (childHH (childHH thetaBelowCell111133110333)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childHH + thetaBelowCell111133110333))) h) + (by + have h : ((childHL (childHH (childHH thetaBelowCell111133110333)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childHH + thetaBelowCell111133110333))) h) + (by + have h : ((childHH (childHH (childHH thetaBelowCell111133110333)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childHH + thetaBelowCell111133110333))) h)) + +theorem cover_subtree_27a44a78bf0e : + adaptiveCoverCheck 6 thetaBelowCell111133110333 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133110333 + (by + have h : ((childLL thetaBelowCell111133110333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133110333) h) + (by + have h : ((childLH thetaBelowCell111133110333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133110333) h) + cover_subtree_273cf6356f9d + cover_subtree_27ddb3080e9d + +theorem cover_subtree_0fe512b8a712 : + adaptiveCoverCheck 7 (childHH (childHH (childLL thetaBelowCell11113311))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHH (childLL thetaBelowCell11113311))) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133110330 + (by + have h : ((childLL thetaBelowCell111133110330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133110330) h) + (by + have h : ((childLH thetaBelowCell111133110330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133110330) h) + (by + have h : ((childHL thetaBelowCell111133110330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133110330) h) + (by + have h : ((childHH thetaBelowCell111133110330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133110330) h)) + (by + have h : (thetaBelowCell111133110331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133110331 h) + cover_subtree_b2776b022cdc + cover_subtree_27a44a78bf0e + +theorem cover_subtree_780d3c38d99a : + adaptiveCoverCheck 8 (childHH (childLL thetaBelowCell11113311)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL thetaBelowCell11113311)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHH (childLL + thetaBelowCell11113311))) + (by + have h : (thetaBelowCell111133110300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133110300 h) + (by + have h : (thetaBelowCell111133110301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133110301 h) + (by + have h : (thetaBelowCell111133110302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133110302 h) + (by + have h : (thetaBelowCell111133110303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133110303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHH (childLL + thetaBelowCell11113311))) + (by + have h : (thetaBelowCell111133110310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133110310 h) + (by + have h : (thetaBelowCell111133110311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133110311 h) + (by + have h : (thetaBelowCell111133110312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133110312 h) + (by + have h : (thetaBelowCell111133110313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133110313 h)) + cover_subtree_4bd97887e2d4 + cover_subtree_0fe512b8a712 + +theorem e24KC2ThetaBelowLeaf111133110 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113311) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11113311) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL thetaBelowCell11113311)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLL + thetaBelowCell11113311))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLL + thetaBelowCell11113311))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLL + thetaBelowCell11113311))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLL + thetaBelowCell11113311))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL thetaBelowCell11113311)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLL + thetaBelowCell11113311))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLL + thetaBelowCell11113311))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLL + thetaBelowCell11113311))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLL + thetaBelowCell11113311))) h)) + cover_subtree_3ea9d3baa8d2 + cover_subtree_780d3c38d99a +theorem cover_subtree_789cd4100198 : + adaptiveCoverCheck 5 (childHL thetaBelowCell111133111222) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133111222) + (by + have h : ((childLL (childHL thetaBelowCell111133111222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL thetaBelowCell111133111222)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133111222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL thetaBelowCell111133111222)) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL thetaBelowCell111133111222)) + (by + have h : ((childLL (childHL (childHL thetaBelowCell111133111222)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childHL + thetaBelowCell111133111222))) h) + (by + have h : ((childLH (childHL (childHL thetaBelowCell111133111222)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childHL + thetaBelowCell111133111222))) h) + (by + have h : ((childHL (childHL (childHL thetaBelowCell111133111222)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childHL + thetaBelowCell111133111222))) h) + (by + have h : ((childHH (childHL (childHL thetaBelowCell111133111222)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childHL + thetaBelowCell111133111222))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL thetaBelowCell111133111222)) + (by + have h : ((childLL (childHH (childHL thetaBelowCell111133111222)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childHL + thetaBelowCell111133111222))) h) + (by + have h : ((childLH (childHH (childHL thetaBelowCell111133111222)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childHL + thetaBelowCell111133111222))) h) + (by + have h : ((childHL (childHH (childHL thetaBelowCell111133111222)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childHL + thetaBelowCell111133111222))) h) + (by + have h : ((childHH (childHH (childHL thetaBelowCell111133111222)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childHL + thetaBelowCell111133111222))) h)) + +theorem cover_subtree_c3bc65d3adac : + adaptiveCoverCheck 5 (childHH thetaBelowCell111133111222) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133111222) + (by + have h : ((childLL (childHH thetaBelowCell111133111222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH thetaBelowCell111133111222)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133111222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH thetaBelowCell111133111222)) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH thetaBelowCell111133111222)) + (by + have h : ((childLL (childHL (childHH thetaBelowCell111133111222)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childHH + thetaBelowCell111133111222))) h) + (by + have h : ((childLH (childHL (childHH thetaBelowCell111133111222)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childHH + thetaBelowCell111133111222))) h) + (by + have h : ((childHL (childHL (childHH thetaBelowCell111133111222)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childHH + thetaBelowCell111133111222))) h) + (by + have h : ((childHH (childHL (childHH thetaBelowCell111133111222)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childHH + thetaBelowCell111133111222))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH thetaBelowCell111133111222)) + (by + have h : ((childLL (childHH (childHH thetaBelowCell111133111222)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childHH + thetaBelowCell111133111222))) h) + (by + have h : ((childLH (childHH (childHH thetaBelowCell111133111222)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childHH + thetaBelowCell111133111222))) h) + (by + have h : ((childHL (childHH (childHH thetaBelowCell111133111222)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childHH + thetaBelowCell111133111222))) h) + (by + have h : ((childHH (childHH (childHH thetaBelowCell111133111222)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childHH + thetaBelowCell111133111222))) h)) + +theorem cover_subtree_006e01dadc14 : + adaptiveCoverCheck 6 thetaBelowCell111133111222 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133111222 + (by + have h : ((childLL thetaBelowCell111133111222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133111222) h) + (by + have h : ((childLH thetaBelowCell111133111222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133111222) h) + cover_subtree_789cd4100198 + cover_subtree_c3bc65d3adac + +theorem cover_subtree_15ffb840ba9a : + adaptiveCoverCheck 5 (childHL thetaBelowCell111133111223) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133111223) + (by + have h : ((childLL (childHL thetaBelowCell111133111223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL thetaBelowCell111133111223)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133111223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL thetaBelowCell111133111223)) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL thetaBelowCell111133111223)) + (by + have h : ((childLL (childHL (childHL thetaBelowCell111133111223)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childHL + thetaBelowCell111133111223))) h) + (by + have h : ((childLH (childHL (childHL thetaBelowCell111133111223)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childHL + thetaBelowCell111133111223))) h) + (by + have h : ((childHL (childHL (childHL thetaBelowCell111133111223)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childHL + thetaBelowCell111133111223))) h) + (by + have h : ((childHH (childHL (childHL thetaBelowCell111133111223)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childHL + thetaBelowCell111133111223))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL thetaBelowCell111133111223)) + (by + have h : ((childLL (childHH (childHL thetaBelowCell111133111223)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childHL + thetaBelowCell111133111223))) h) + (by + have h : ((childLH (childHH (childHL thetaBelowCell111133111223)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childHL + thetaBelowCell111133111223))) h) + (by + have h : ((childHL (childHH (childHL thetaBelowCell111133111223)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childHL + thetaBelowCell111133111223))) h) + (by + have h : ((childHH (childHH (childHL thetaBelowCell111133111223)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childHL + thetaBelowCell111133111223))) h)) + +theorem cover_subtree_f79e20abb6dd : + adaptiveCoverCheck 5 (childHH thetaBelowCell111133111223) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133111223) + (by + have h : ((childLL (childHH thetaBelowCell111133111223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH thetaBelowCell111133111223)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133111223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH thetaBelowCell111133111223)) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH thetaBelowCell111133111223)) + (by + have h : ((childLL (childHL (childHH thetaBelowCell111133111223)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childHH + thetaBelowCell111133111223))) h) + (by + have h : ((childLH (childHL (childHH thetaBelowCell111133111223)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childHH + thetaBelowCell111133111223))) h) + (by + have h : ((childHL (childHL (childHH thetaBelowCell111133111223)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childHH + thetaBelowCell111133111223))) h) + (by + have h : ((childHH (childHL (childHH thetaBelowCell111133111223)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childHH + thetaBelowCell111133111223))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH thetaBelowCell111133111223)) + (by + have h : ((childLL (childHH (childHH thetaBelowCell111133111223)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childHH + thetaBelowCell111133111223))) h) + (by + have h : ((childLH (childHH (childHH thetaBelowCell111133111223)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childHH + thetaBelowCell111133111223))) h) + (by + have h : ((childHL (childHH (childHH thetaBelowCell111133111223)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childHH + thetaBelowCell111133111223))) h) + (by + have h : ((childHH (childHH (childHH thetaBelowCell111133111223)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childHH + thetaBelowCell111133111223))) h)) + +theorem cover_subtree_c67dbdb52005 : + adaptiveCoverCheck 6 thetaBelowCell111133111223 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133111223 + (by + have h : ((childLL thetaBelowCell111133111223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133111223) h) + (by + have h : ((childLH thetaBelowCell111133111223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133111223) h) + cover_subtree_15ffb840ba9a + cover_subtree_f79e20abb6dd + +theorem cover_subtree_7319345fe5a3 : + adaptiveCoverCheck 7 (childHL (childHL (childLH thetaBelowCell11113311))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHL (childLH thetaBelowCell11113311))) + (by + have h : (thetaBelowCell111133111220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133111220 h) + (by + have h : (thetaBelowCell111133111221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133111221 h) + cover_subtree_006e01dadc14 + cover_subtree_c67dbdb52005 + +theorem cover_subtree_95410d7d0fe9 : + adaptiveCoverCheck 5 (childHL thetaBelowCell111133111232) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133111232) + (by + have h : ((childLL (childHL thetaBelowCell111133111232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL thetaBelowCell111133111232)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133111232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL thetaBelowCell111133111232)) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL thetaBelowCell111133111232)) + (by + have h : ((childLL (childHL (childHL thetaBelowCell111133111232)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childHL + thetaBelowCell111133111232))) h) + (by + have h : ((childLH (childHL (childHL thetaBelowCell111133111232)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childHL + thetaBelowCell111133111232))) h) + (by + have h : ((childHL (childHL (childHL thetaBelowCell111133111232)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childHL + thetaBelowCell111133111232))) h) + (by + have h : ((childHH (childHL (childHL thetaBelowCell111133111232)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childHL + thetaBelowCell111133111232))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL thetaBelowCell111133111232)) + (by + have h : ((childLL (childHH (childHL thetaBelowCell111133111232)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childHL + thetaBelowCell111133111232))) h) + (by + have h : ((childLH (childHH (childHL thetaBelowCell111133111232)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childHL + thetaBelowCell111133111232))) h) + (by + have h : ((childHL (childHH (childHL thetaBelowCell111133111232)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childHL + thetaBelowCell111133111232))) h) + (by + have h : ((childHH (childHH (childHL thetaBelowCell111133111232)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childHL + thetaBelowCell111133111232))) h)) + +theorem cover_subtree_bb5d3c6632a7 : + adaptiveCoverCheck 6 thetaBelowCell111133111232 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133111232 + (by + have h : ((childLL thetaBelowCell111133111232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133111232) h) + (by + have h : ((childLH thetaBelowCell111133111232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133111232) h) + cover_subtree_95410d7d0fe9 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133111232) + (by + have h : ((childLL (childHH thetaBelowCell111133111232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133111232)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133111232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133111232)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133111232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133111232)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133111232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133111232)) h)) + +theorem cover_subtree_36f6a3ec0dcf : + adaptiveCoverCheck 6 thetaBelowCell111133111233 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133111233 + (by + have h : ((childLL thetaBelowCell111133111233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133111233) h) + (by + have h : ((childLH thetaBelowCell111133111233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133111233) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133111233) + (by + have h : ((childLL (childHL thetaBelowCell111133111233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133111233)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133111233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133111233)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133111233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133111233)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133111233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133111233)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133111233) + (by + have h : ((childLL (childHH thetaBelowCell111133111233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133111233)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133111233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133111233)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133111233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133111233)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133111233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133111233)) h)) + +theorem cover_subtree_51a12797f9e1 : + adaptiveCoverCheck 7 (childHH (childHL (childLH thetaBelowCell11113311))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHL (childLH thetaBelowCell11113311))) + (by + have h : (thetaBelowCell111133111230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133111230 h) + (by + have h : (thetaBelowCell111133111231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133111231 h) + cover_subtree_bb5d3c6632a7 + cover_subtree_36f6a3ec0dcf + +theorem cover_subtree_8ababed519f4 : + adaptiveCoverCheck 8 (childHL (childLH thetaBelowCell11113311)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH thetaBelowCell11113311)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHL (childLH + thetaBelowCell11113311))) + (by + have h : (thetaBelowCell111133111200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133111200 h) + (by + have h : (thetaBelowCell111133111201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133111201 h) + (by + have h : (thetaBelowCell111133111202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133111202 h) + (by + have h : (thetaBelowCell111133111203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133111203 h)) + (by + have h : ((childLH (childHL (childLH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childLH + thetaBelowCell11113311))) h) + cover_subtree_7319345fe5a3 + cover_subtree_51a12797f9e1 + +theorem cover_subtree_b8b0e3b2827e : + adaptiveCoverCheck 6 thetaBelowCell111133111322 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133111322 + (by + have h : ((childLL thetaBelowCell111133111322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133111322) h) + (by + have h : ((childLH thetaBelowCell111133111322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133111322) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133111322) + (by + have h : ((childLL (childHL thetaBelowCell111133111322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133111322)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133111322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133111322)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133111322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133111322)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133111322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133111322)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133111322) + (by + have h : ((childLL (childHH thetaBelowCell111133111322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133111322)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133111322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133111322)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133111322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133111322)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133111322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133111322)) h)) + +theorem cover_subtree_2989b06dc516 : + adaptiveCoverCheck 6 thetaBelowCell111133111323 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133111323 + (by + have h : ((childLL thetaBelowCell111133111323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133111323) h) + (by + have h : ((childLH thetaBelowCell111133111323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133111323) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133111323) + (by + have h : ((childLL (childHL thetaBelowCell111133111323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133111323)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133111323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133111323)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133111323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133111323)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133111323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133111323)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133111323) + (by + have h : ((childLL (childHH thetaBelowCell111133111323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133111323)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133111323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133111323)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133111323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133111323)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133111323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133111323)) h)) + +theorem cover_subtree_bf01e4b37001 : + adaptiveCoverCheck 7 (childHL (childHH (childLH thetaBelowCell11113311))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHH (childLH thetaBelowCell11113311))) + (by + have h : (thetaBelowCell111133111320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133111320 h) + (by + have h : (thetaBelowCell111133111321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133111321 h) + cover_subtree_b8b0e3b2827e + cover_subtree_2989b06dc516 + +theorem cover_subtree_730eb8da47c4 : + adaptiveCoverCheck 6 thetaBelowCell111133111332 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133111332 + (by + have h : ((childLL thetaBelowCell111133111332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133111332) h) + (by + have h : ((childLH thetaBelowCell111133111332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133111332) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133111332) + (by + have h : ((childLL (childHL thetaBelowCell111133111332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133111332)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133111332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133111332)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133111332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133111332)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133111332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133111332)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133111332) + (by + have h : ((childLL (childHH thetaBelowCell111133111332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133111332)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133111332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133111332)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133111332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133111332)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133111332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133111332)) h)) + +theorem cover_subtree_1841de2ff0e1 : + adaptiveCoverCheck 6 thetaBelowCell111133111333 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133111333 + (by + have h : ((childLL thetaBelowCell111133111333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133111333) h) + (by + have h : ((childLH thetaBelowCell111133111333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133111333) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133111333) + (by + have h : ((childLL (childHL thetaBelowCell111133111333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133111333)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133111333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133111333)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133111333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133111333)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133111333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133111333)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133111333) + (by + have h : ((childLL (childHH thetaBelowCell111133111333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133111333)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133111333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133111333)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133111333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133111333)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133111333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133111333)) h)) + +theorem cover_subtree_245b6882ed3e : + adaptiveCoverCheck 7 (childHH (childHH (childLH thetaBelowCell11113311))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHH (childLH thetaBelowCell11113311))) + (by + have h : (thetaBelowCell111133111330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133111330 h) + (by + have h : (thetaBelowCell111133111331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133111331 h) + cover_subtree_730eb8da47c4 + cover_subtree_1841de2ff0e1 + +theorem cover_subtree_a132a8d74d97 : + adaptiveCoverCheck 8 (childHH (childLH thetaBelowCell11113311)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH thetaBelowCell11113311)) + (by + have h : ((childLL (childHH (childLH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childLH + thetaBelowCell11113311))) h) + (by + have h : ((childLH (childHH (childLH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childLH + thetaBelowCell11113311))) h) + cover_subtree_bf01e4b37001 + cover_subtree_245b6882ed3e + +theorem e24KC2ThetaBelowLeaf111133111 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113311) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11113311) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH thetaBelowCell11113311)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLH + thetaBelowCell11113311))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLH + thetaBelowCell11113311))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLH + thetaBelowCell11113311))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLH + thetaBelowCell11113311))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH thetaBelowCell11113311)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLH + thetaBelowCell11113311))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLH + thetaBelowCell11113311))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLH + thetaBelowCell11113311))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLH + thetaBelowCell11113311))) h)) + cover_subtree_8ababed519f4 + cover_subtree_a132a8d74d97 +theorem cover_subtree_d86d6d397d37 : + adaptiveCoverCheck 6 thetaBelowCell111133112000 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133112000 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133112000) + (by + have h : ((childLL (childLL thetaBelowCell111133112000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133112000)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133112000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133112000)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133112000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133112000)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133112000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133112000)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133112000) + (by + have h : ((childLL (childLH thetaBelowCell111133112000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133112000)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133112000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133112000)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133112000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133112000)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133112000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133112000)) h)) + (by + have h : ((childHL thetaBelowCell111133112000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133112000) h) + (by + have h : ((childHH thetaBelowCell111133112000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133112000) h) + +theorem cover_subtree_6aa6edf26d6b : + adaptiveCoverCheck 6 thetaBelowCell111133112001 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133112001 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133112001) + (by + have h : ((childLL (childLL thetaBelowCell111133112001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133112001)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133112001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133112001)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133112001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133112001)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133112001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133112001)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133112001) + (by + have h : ((childLL (childLH thetaBelowCell111133112001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133112001)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133112001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133112001)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133112001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133112001)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133112001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133112001)) h)) + (by + have h : ((childHL thetaBelowCell111133112001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133112001) h) + (by + have h : ((childHH thetaBelowCell111133112001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133112001) h) + +theorem cover_subtree_08f0ea41225e : + adaptiveCoverCheck 7 (childLL (childLL (childHL thetaBelowCell11113311))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childLL (childHL thetaBelowCell11113311))) + cover_subtree_d86d6d397d37 + cover_subtree_6aa6edf26d6b + (by + have h : (thetaBelowCell111133112002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133112002 h) + (by + have h : (thetaBelowCell111133112003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133112003 h) + +theorem cover_subtree_9a3060df2fad : + adaptiveCoverCheck 6 thetaBelowCell111133112010 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133112010 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133112010) + (by + have h : ((childLL (childLL thetaBelowCell111133112010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133112010)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133112010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133112010)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133112010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133112010)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133112010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133112010)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133112010) + (by + have h : ((childLL (childLH thetaBelowCell111133112010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133112010)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133112010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133112010)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133112010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133112010)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133112010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133112010)) h)) + (by + have h : ((childHL thetaBelowCell111133112010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133112010) h) + (by + have h : ((childHH thetaBelowCell111133112010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133112010) h) + +theorem cover_subtree_2515da0e05d0 : + adaptiveCoverCheck 5 (childLL thetaBelowCell111133112011) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133112011) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL thetaBelowCell111133112011)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLL + thetaBelowCell111133112011))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLL + thetaBelowCell111133112011))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLL + thetaBelowCell111133112011))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLL + thetaBelowCell111133112011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL thetaBelowCell111133112011)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLL + thetaBelowCell111133112011))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLL + thetaBelowCell111133112011))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLL + thetaBelowCell111133112011))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLL + thetaBelowCell111133112011))) h)) + (by + have h : ((childHL (childLL thetaBelowCell111133112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL thetaBelowCell111133112011)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL thetaBelowCell111133112011)) h) + +theorem cover_subtree_2e5826939a0b : + adaptiveCoverCheck 5 (childLH thetaBelowCell111133112011) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133112011) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH thetaBelowCell111133112011)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLH + thetaBelowCell111133112011))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLH + thetaBelowCell111133112011))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLH + thetaBelowCell111133112011))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLH + thetaBelowCell111133112011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH thetaBelowCell111133112011)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLH + thetaBelowCell111133112011))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLH + thetaBelowCell111133112011))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLH + thetaBelowCell111133112011))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLH + thetaBelowCell111133112011))) h)) + (by + have h : ((childHL (childLH thetaBelowCell111133112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH thetaBelowCell111133112011)) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH thetaBelowCell111133112011)) + (by + have h : ((childLL (childHH (childLH thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childLH + thetaBelowCell111133112011))) h) + (by + have h : ((childLH (childHH (childLH thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childLH + thetaBelowCell111133112011))) h) + (by + have h : ((childHL (childHH (childLH thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childLH + thetaBelowCell111133112011))) h) + (by + have h : ((childHH (childHH (childLH thetaBelowCell111133112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childLH + thetaBelowCell111133112011))) h)) + +theorem cover_subtree_9e7e8b4def5a : + adaptiveCoverCheck 6 thetaBelowCell111133112011 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133112011 + cover_subtree_2515da0e05d0 + cover_subtree_2e5826939a0b + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133112011) + (by + have h : ((childLL (childHL thetaBelowCell111133112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133112011)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133112011)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133112011)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133112011)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133112011) + (by + have h : ((childLL (childHH thetaBelowCell111133112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133112011)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133112011)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133112011)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133112011)) h)) + +theorem cover_subtree_6ec9728983f6 : + adaptiveCoverCheck 7 (childLH (childLL (childHL thetaBelowCell11113311))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childLL (childHL thetaBelowCell11113311))) + cover_subtree_9a3060df2fad + cover_subtree_9e7e8b4def5a + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133112012 + (by + have h : ((childLL thetaBelowCell111133112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133112012) h) + (by + have h : ((childLH thetaBelowCell111133112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133112012) h) + (by + have h : ((childHL thetaBelowCell111133112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133112012) h) + (by + have h : ((childHH thetaBelowCell111133112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133112012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133112013 + (by + have h : ((childLL thetaBelowCell111133112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133112013) h) + (by + have h : ((childLH thetaBelowCell111133112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133112013) h) + (by + have h : ((childHL thetaBelowCell111133112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133112013) h) + (by + have h : ((childHH thetaBelowCell111133112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133112013) h)) + +theorem cover_subtree_35cd51a2309c : + adaptiveCoverCheck 8 (childLL (childHL thetaBelowCell11113311)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL thetaBelowCell11113311)) + cover_subtree_08f0ea41225e + cover_subtree_6ec9728983f6 + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childLL (childHL + thetaBelowCell11113311))) + (by + have h : (thetaBelowCell111133112020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133112020 h) + (by + have h : (thetaBelowCell111133112021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133112021 h) + (by + have h : (thetaBelowCell111133112022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133112022 h) + (by + have h : (thetaBelowCell111133112023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133112023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childLL (childHL + thetaBelowCell11113311))) + (by + have h : (thetaBelowCell111133112030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133112030 h) + (by + have h : (thetaBelowCell111133112031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133112031 h) + (by + have h : (thetaBelowCell111133112032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133112032 h) + (by + have h : (thetaBelowCell111133112033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133112033 h)) + +theorem cover_subtree_15005e137c79 : + adaptiveCoverCheck 5 (childLL thetaBelowCell111133112100) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133112100) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL thetaBelowCell111133112100)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLL + thetaBelowCell111133112100))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLL + thetaBelowCell111133112100))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLL + thetaBelowCell111133112100))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLL + thetaBelowCell111133112100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL thetaBelowCell111133112100)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLL + thetaBelowCell111133112100))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLL + thetaBelowCell111133112100))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLL + thetaBelowCell111133112100))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLL + thetaBelowCell111133112100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL thetaBelowCell111133112100)) + (by + have h : ((childLL (childHL (childLL thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childLL + thetaBelowCell111133112100))) h) + (by + have h : ((childLH (childHL (childLL thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childLL + thetaBelowCell111133112100))) h) + (by + have h : ((childHL (childHL (childLL thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childLL + thetaBelowCell111133112100))) h) + (by + have h : ((childHH (childHL (childLL thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childLL + thetaBelowCell111133112100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL thetaBelowCell111133112100)) + (by + have h : ((childLL (childHH (childLL thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childLL + thetaBelowCell111133112100))) h) + (by + have h : ((childLH (childHH (childLL thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childLL + thetaBelowCell111133112100))) h) + (by + have h : ((childHL (childHH (childLL thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childLL + thetaBelowCell111133112100))) h) + (by + have h : ((childHH (childHH (childLL thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childLL + thetaBelowCell111133112100))) h)) + +theorem cover_subtree_28298b1a6476 : + adaptiveCoverCheck 5 (childLH thetaBelowCell111133112100) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133112100) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH thetaBelowCell111133112100)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLH + thetaBelowCell111133112100))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLH + thetaBelowCell111133112100))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLH + thetaBelowCell111133112100))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLH + thetaBelowCell111133112100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH thetaBelowCell111133112100)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLH + thetaBelowCell111133112100))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLH + thetaBelowCell111133112100))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLH + thetaBelowCell111133112100))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLH + thetaBelowCell111133112100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH thetaBelowCell111133112100)) + (by + have h : ((childLL (childHL (childLH thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childLH + thetaBelowCell111133112100))) h) + (by + have h : ((childLH (childHL (childLH thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childLH + thetaBelowCell111133112100))) h) + (by + have h : ((childHL (childHL (childLH thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childLH + thetaBelowCell111133112100))) h) + (by + have h : ((childHH (childHL (childLH thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childLH + thetaBelowCell111133112100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH thetaBelowCell111133112100)) + (by + have h : ((childLL (childHH (childLH thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childLH + thetaBelowCell111133112100))) h) + (by + have h : ((childLH (childHH (childLH thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childLH + thetaBelowCell111133112100))) h) + (by + have h : ((childHL (childHH (childLH thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childLH + thetaBelowCell111133112100))) h) + (by + have h : ((childHH (childHH (childLH thetaBelowCell111133112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childLH + thetaBelowCell111133112100))) h)) + +theorem cover_subtree_dd3b58e15058 : + adaptiveCoverCheck 6 thetaBelowCell111133112100 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133112100 + cover_subtree_15005e137c79 + cover_subtree_28298b1a6476 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133112100) + (by + have h : ((childLL (childHL thetaBelowCell111133112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133112100)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133112100)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133112100)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133112100)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133112100) + (by + have h : ((childLL (childHH thetaBelowCell111133112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133112100)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133112100)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133112100)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133112100)) h)) + +theorem cover_subtree_e1ad3991ba4f : + adaptiveCoverCheck 5 (childLL thetaBelowCell111133112101) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133112101) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL thetaBelowCell111133112101)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLL + thetaBelowCell111133112101))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLL + thetaBelowCell111133112101))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLL + thetaBelowCell111133112101))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLL + thetaBelowCell111133112101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL thetaBelowCell111133112101)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLL + thetaBelowCell111133112101))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLL + thetaBelowCell111133112101))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLL + thetaBelowCell111133112101))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLL + thetaBelowCell111133112101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL thetaBelowCell111133112101)) + (by + have h : ((childLL (childHL (childLL thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childLL + thetaBelowCell111133112101))) h) + (by + have h : ((childLH (childHL (childLL thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childLL + thetaBelowCell111133112101))) h) + (by + have h : ((childHL (childHL (childLL thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childLL + thetaBelowCell111133112101))) h) + (by + have h : ((childHH (childHL (childLL thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childLL + thetaBelowCell111133112101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL thetaBelowCell111133112101)) + (by + have h : ((childLL (childHH (childLL thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childLL + thetaBelowCell111133112101))) h) + (by + have h : ((childLH (childHH (childLL thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childLL + thetaBelowCell111133112101))) h) + (by + have h : ((childHL (childHH (childLL thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childLL + thetaBelowCell111133112101))) h) + (by + have h : ((childHH (childHH (childLL thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childLL + thetaBelowCell111133112101))) h)) + +theorem cover_subtree_222381d65095 : + adaptiveCoverCheck 5 (childLH thetaBelowCell111133112101) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133112101) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH thetaBelowCell111133112101)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLH + thetaBelowCell111133112101))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLH + thetaBelowCell111133112101))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLH + thetaBelowCell111133112101))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLH + thetaBelowCell111133112101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH thetaBelowCell111133112101)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLH + thetaBelowCell111133112101))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLH + thetaBelowCell111133112101))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLH + thetaBelowCell111133112101))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLH + thetaBelowCell111133112101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH thetaBelowCell111133112101)) + (by + have h : ((childLL (childHL (childLH thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childLH + thetaBelowCell111133112101))) h) + (by + have h : ((childLH (childHL (childLH thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childLH + thetaBelowCell111133112101))) h) + (by + have h : ((childHL (childHL (childLH thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childLH + thetaBelowCell111133112101))) h) + (by + have h : ((childHH (childHL (childLH thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childLH + thetaBelowCell111133112101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH thetaBelowCell111133112101)) + (by + have h : ((childLL (childHH (childLH thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childLH + thetaBelowCell111133112101))) h) + (by + have h : ((childLH (childHH (childLH thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childLH + thetaBelowCell111133112101))) h) + (by + have h : ((childHL (childHH (childLH thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childLH + thetaBelowCell111133112101))) h) + (by + have h : ((childHH (childHH (childLH thetaBelowCell111133112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childLH + thetaBelowCell111133112101))) h)) + +theorem cover_subtree_a500ccb0f9dd : + adaptiveCoverCheck 6 thetaBelowCell111133112101 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133112101 + cover_subtree_e1ad3991ba4f + cover_subtree_222381d65095 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133112101) + (by + have h : ((childLL (childHL thetaBelowCell111133112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133112101)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133112101)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133112101)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133112101)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133112101) + (by + have h : ((childLL (childHH thetaBelowCell111133112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133112101)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133112101)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133112101)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133112101)) h)) + +theorem cover_subtree_b97026ab0ee7 : + adaptiveCoverCheck 7 (childLL (childLH (childHL thetaBelowCell11113311))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childLH (childHL thetaBelowCell11113311))) + cover_subtree_dd3b58e15058 + cover_subtree_a500ccb0f9dd + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133112102 + (by + have h : ((childLL thetaBelowCell111133112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133112102) h) + (by + have h : ((childLH thetaBelowCell111133112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133112102) h) + (by + have h : ((childHL thetaBelowCell111133112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133112102) h) + (by + have h : ((childHH thetaBelowCell111133112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133112102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133112103 + (by + have h : ((childLL thetaBelowCell111133112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133112103) h) + (by + have h : ((childLH thetaBelowCell111133112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133112103) h) + (by + have h : ((childHL thetaBelowCell111133112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133112103) h) + (by + have h : ((childHH thetaBelowCell111133112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133112103) h)) + +theorem cover_subtree_0942b83515e8 : + adaptiveCoverCheck 5 (childLL thetaBelowCell111133112110) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133112110) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL thetaBelowCell111133112110)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLL + thetaBelowCell111133112110))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLL + thetaBelowCell111133112110))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLL + thetaBelowCell111133112110))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLL + thetaBelowCell111133112110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL thetaBelowCell111133112110)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLL + thetaBelowCell111133112110))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLL + thetaBelowCell111133112110))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLL + thetaBelowCell111133112110))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLL + thetaBelowCell111133112110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL thetaBelowCell111133112110)) + (by + have h : ((childLL (childHL (childLL thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childLL + thetaBelowCell111133112110))) h) + (by + have h : ((childLH (childHL (childLL thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childLL + thetaBelowCell111133112110))) h) + (by + have h : ((childHL (childHL (childLL thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childLL + thetaBelowCell111133112110))) h) + (by + have h : ((childHH (childHL (childLL thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childLL + thetaBelowCell111133112110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL thetaBelowCell111133112110)) + (by + have h : ((childLL (childHH (childLL thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childLL + thetaBelowCell111133112110))) h) + (by + have h : ((childLH (childHH (childLL thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childLL + thetaBelowCell111133112110))) h) + (by + have h : ((childHL (childHH (childLL thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childLL + thetaBelowCell111133112110))) h) + (by + have h : ((childHH (childHH (childLL thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childLL + thetaBelowCell111133112110))) h)) + +theorem cover_subtree_4ccf6d139a48 : + adaptiveCoverCheck 5 (childLH thetaBelowCell111133112110) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133112110) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH thetaBelowCell111133112110)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLH + thetaBelowCell111133112110))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLH + thetaBelowCell111133112110))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLH + thetaBelowCell111133112110))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLH + thetaBelowCell111133112110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH thetaBelowCell111133112110)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLH + thetaBelowCell111133112110))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLH + thetaBelowCell111133112110))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLH + thetaBelowCell111133112110))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLH + thetaBelowCell111133112110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH thetaBelowCell111133112110)) + (by + have h : ((childLL (childHL (childLH thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childLH + thetaBelowCell111133112110))) h) + (by + have h : ((childLH (childHL (childLH thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childLH + thetaBelowCell111133112110))) h) + (by + have h : ((childHL (childHL (childLH thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childLH + thetaBelowCell111133112110))) h) + (by + have h : ((childHH (childHL (childLH thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childLH + thetaBelowCell111133112110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH thetaBelowCell111133112110)) + (by + have h : ((childLL (childHH (childLH thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childLH + thetaBelowCell111133112110))) h) + (by + have h : ((childLH (childHH (childLH thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childLH + thetaBelowCell111133112110))) h) + (by + have h : ((childHL (childHH (childLH thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childLH + thetaBelowCell111133112110))) h) + (by + have h : ((childHH (childHH (childLH thetaBelowCell111133112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childLH + thetaBelowCell111133112110))) h)) + +theorem cover_subtree_b6335e66944c : + adaptiveCoverCheck 6 thetaBelowCell111133112110 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133112110 + cover_subtree_0942b83515e8 + cover_subtree_4ccf6d139a48 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133112110) + (by + have h : ((childLL (childHL thetaBelowCell111133112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133112110)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133112110)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133112110)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133112110)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133112110) + (by + have h : ((childLL (childHH thetaBelowCell111133112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133112110)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133112110)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133112110)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133112110)) h)) + +theorem cover_subtree_964421ffff09 : + adaptiveCoverCheck 5 (childLL thetaBelowCell111133112111) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133112111) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL thetaBelowCell111133112111)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLL + thetaBelowCell111133112111))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLL + thetaBelowCell111133112111))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLL + thetaBelowCell111133112111))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLL + thetaBelowCell111133112111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL thetaBelowCell111133112111)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLL + thetaBelowCell111133112111))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLL + thetaBelowCell111133112111))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLL + thetaBelowCell111133112111))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLL + thetaBelowCell111133112111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL thetaBelowCell111133112111)) + (by + have h : ((childLL (childHL (childLL thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childLL + thetaBelowCell111133112111))) h) + (by + have h : ((childLH (childHL (childLL thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childLL + thetaBelowCell111133112111))) h) + (by + have h : ((childHL (childHL (childLL thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childLL + thetaBelowCell111133112111))) h) + (by + have h : ((childHH (childHL (childLL thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childLL + thetaBelowCell111133112111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL thetaBelowCell111133112111)) + (by + have h : ((childLL (childHH (childLL thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childLL + thetaBelowCell111133112111))) h) + (by + have h : ((childLH (childHH (childLL thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childLL + thetaBelowCell111133112111))) h) + (by + have h : ((childHL (childHH (childLL thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childLL + thetaBelowCell111133112111))) h) + (by + have h : ((childHH (childHH (childLL thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childLL + thetaBelowCell111133112111))) h)) + +theorem cover_subtree_d60f6638c35c : + adaptiveCoverCheck 5 (childLH thetaBelowCell111133112111) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133112111) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH thetaBelowCell111133112111)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLH + thetaBelowCell111133112111))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLH + thetaBelowCell111133112111))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLH + thetaBelowCell111133112111))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLH + thetaBelowCell111133112111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH thetaBelowCell111133112111)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLH + thetaBelowCell111133112111))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLH + thetaBelowCell111133112111))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLH + thetaBelowCell111133112111))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLH + thetaBelowCell111133112111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH thetaBelowCell111133112111)) + (by + have h : ((childLL (childHL (childLH thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childLH + thetaBelowCell111133112111))) h) + (by + have h : ((childLH (childHL (childLH thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childLH + thetaBelowCell111133112111))) h) + (by + have h : ((childHL (childHL (childLH thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childLH + thetaBelowCell111133112111))) h) + (by + have h : ((childHH (childHL (childLH thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childLH + thetaBelowCell111133112111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH thetaBelowCell111133112111)) + (by + have h : ((childLL (childHH (childLH thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childLH + thetaBelowCell111133112111))) h) + (by + have h : ((childLH (childHH (childLH thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childLH + thetaBelowCell111133112111))) h) + (by + have h : ((childHL (childHH (childLH thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childLH + thetaBelowCell111133112111))) h) + (by + have h : ((childHH (childHH (childLH thetaBelowCell111133112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childLH + thetaBelowCell111133112111))) h)) + +theorem cover_subtree_fd996b69dc6a : + adaptiveCoverCheck 6 thetaBelowCell111133112111 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133112111 + cover_subtree_964421ffff09 + cover_subtree_d60f6638c35c + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133112111) + (by + have h : ((childLL (childHL thetaBelowCell111133112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133112111)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133112111)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133112111)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133112111)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133112111) + (by + have h : ((childLL (childHH thetaBelowCell111133112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133112111)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133112111)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133112111)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133112111)) h)) + +theorem cover_subtree_4fddc783c766 : + adaptiveCoverCheck 7 (childLH (childLH (childHL thetaBelowCell11113311))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childLH (childHL thetaBelowCell11113311))) + cover_subtree_b6335e66944c + cover_subtree_fd996b69dc6a + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133112112 + (by + have h : ((childLL thetaBelowCell111133112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133112112) h) + (by + have h : ((childLH thetaBelowCell111133112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133112112) h) + (by + have h : ((childHL thetaBelowCell111133112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133112112) h) + (by + have h : ((childHH thetaBelowCell111133112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133112112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133112113 + (by + have h : ((childLL thetaBelowCell111133112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133112113) h) + (by + have h : ((childLH thetaBelowCell111133112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133112113) h) + (by + have h : ((childHL thetaBelowCell111133112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133112113) h) + (by + have h : ((childHH thetaBelowCell111133112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133112113) h)) + +theorem cover_subtree_06a38a993bbb : + adaptiveCoverCheck 8 (childLH (childHL thetaBelowCell11113311)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL thetaBelowCell11113311)) + cover_subtree_b97026ab0ee7 + cover_subtree_4fddc783c766 + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childLH (childHL + thetaBelowCell11113311))) + (by + have h : (thetaBelowCell111133112120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133112120 h) + (by + have h : (thetaBelowCell111133112121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133112121 h) + (by + have h : (thetaBelowCell111133112122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133112122 h) + (by + have h : (thetaBelowCell111133112123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133112123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childLH (childHL + thetaBelowCell11113311))) + (by + have h : (thetaBelowCell111133112130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133112130 h) + (by + have h : (thetaBelowCell111133112131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133112131 h) + (by + have h : (thetaBelowCell111133112132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133112132 h) + (by + have h : (thetaBelowCell111133112133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133112133 h)) + +theorem e24KC2ThetaBelowLeaf111133112 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113311) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11113311) + cover_subtree_35cd51a2309c + cover_subtree_06a38a993bbb + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL thetaBelowCell11113311)) + (by + have h : ((childLL (childHL (childHL thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childHL + thetaBelowCell11113311))) h) + (by + have h : ((childLH (childHL (childHL thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childHL + thetaBelowCell11113311))) h) + (by + have h : ((childHL (childHL (childHL thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childHL + thetaBelowCell11113311))) h) + (by + have h : ((childHH (childHL (childHL thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childHL + thetaBelowCell11113311))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL thetaBelowCell11113311)) + (by + have h : ((childLL (childHH (childHL thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childHL + thetaBelowCell11113311))) h) + (by + have h : ((childLH (childHH (childHL thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childHL + thetaBelowCell11113311))) h) + (by + have h : ((childHL (childHH (childHL thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childHL + thetaBelowCell11113311))) h) + (by + have h : ((childHH (childHH (childHL thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childHL + thetaBelowCell11113311))) h)) + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle008.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle008.lean new file mode 100644 index 0000000000..a3e302e6f0 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle008.lean @@ -0,0 +1,10035 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch009`. +* `GerverSofa.KernelOnly.PartE.Certificates.Batch024`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCellsb518b98fbe + +/-- Subcell `0110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0110 : AngleCell := + childLL (childLH (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0111 : AngleCell := + childLH (childLH (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `01103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01112020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell0111))) + +/-- Subcell `01112021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell0111))) + +/-- Subcell `01112022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell0111))) + +/-- Subcell `01112023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell0111))) + +/-- Subcell `01112030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell0111))) + +/-- Subcell `01112031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell0111))) + +/-- Subcell `01112032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell0111))) + +/-- Subcell `01112033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell0111))) + +/-- Subcell `01112120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell0111))) + +/-- Subcell `01112121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell0111))) + +/-- Subcell `01112122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell0111))) + +/-- Subcell `01112123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell0111))) + +/-- Subcell `01112130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell0111))) + +/-- Subcell `01112131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell0111))) + +/-- Subcell `01112132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell0111))) + +/-- Subcell `01112133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell0111))) + +/-- Subcell `01112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01113020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell0111))) + +/-- Subcell `01113021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell0111))) + +/-- Subcell `01113022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell0111))) + +/-- Subcell `01113023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell0111))) + +/-- Subcell `01113030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell0111))) + +/-- Subcell `01113031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell0111))) + +/-- Subcell `01113032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell0111))) + +/-- Subcell `01113033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell0111))) + +/-- Subcell `01113120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell0111))) + +/-- Subcell `01113121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell0111))) + +/-- Subcell `01113122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell0111))) + +/-- Subcell `01113123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell0111))) + +/-- Subcell `01113130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell0111))) + +/-- Subcell `01113131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell0111))) + +/-- Subcell `01113132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell0111))) + +/-- Subcell `01113133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell0111))) + +/-- Subcell `01113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0111))) + +end GerverSofa.PartE.CertificateCellsb518b98fbe + +namespace GerverSofa.PartE.CertificateCells37514173c1 + +/-- Subcell `0011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0011 : AngleCell := + childLH (childLH (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0100 : AngleCell := + childLL (childLL (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `1110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `00113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `01002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `11103022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103022 : AngleCell := + childHL (childHL (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103023 : AngleCell := + childHH (childHL (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103031 : AngleCell := + childLH (childHH (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103032 : AngleCell := + childHL (childHH (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103033 : AngleCell := + childHH (childHH (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103120 : AngleCell := + childLL (childHL (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103122 : AngleCell := + childHL (childHL (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103123 : AngleCell := + childHH (childHL (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103132 : AngleCell := + childHL (childHH (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103133 : AngleCell := + childHH (childHH (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103210 : AngleCell := + childLL (childLH (childHL (childHH thetaBelowCell1110))) + +/-- Subcell `11103211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103211 : AngleCell := + childLH (childLH (childHL (childHH thetaBelowCell1110))) + +/-- Subcell `11103300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103300 : AngleCell := + childLL (childLL (childHH (childHH thetaBelowCell1110))) + +/-- Subcell `11103301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103301 : AngleCell := + childLH (childLL (childHH (childHH thetaBelowCell1110))) + +/-- Subcell `11103310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103310 : AngleCell := + childLL (childLH (childHH (childHH thetaBelowCell1110))) + +/-- Subcell `11103311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1110))) + +/-- Subcell `11112022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112022 : AngleCell := + childHL (childHL (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112023 : AngleCell := + childHH (childHL (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112032 : AngleCell := + childHL (childHH (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112033 : AngleCell := + childHH (childHH (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112122 : AngleCell := + childHL (childHL (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112123 : AngleCell := + childHH (childHL (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112132 : AngleCell := + childHL (childHH (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112133 : AngleCell := + childHH (childHH (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112200 : AngleCell := + childLL (childLL (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112201 : AngleCell := + childLH (childLL (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112210 : AngleCell := + childLL (childLH (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112211 : AngleCell := + childLH (childLH (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112300 : AngleCell := + childLL (childLL (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112301 : AngleCell := + childLH (childLL (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112310 : AngleCell := + childLL (childLH (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112311 : AngleCell := + childLH (childLH (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11113022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113022 : AngleCell := + childHL (childHL (childLL (childHH thetaBelowCell1111))) + +/-- Subcell `11113023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113023 : AngleCell := + childHH (childHL (childLL (childHH thetaBelowCell1111))) + +/-- Subcell `11113032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113032 : AngleCell := + childHL (childHH (childLL (childHH thetaBelowCell1111))) + +/-- Subcell `11113033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113033 : AngleCell := + childHH (childHH (childLL (childHH thetaBelowCell1111))) + +/-- Subcell `11113122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113122 : AngleCell := + childHL (childHL (childLH (childHH thetaBelowCell1111))) + +/-- Subcell `11113123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113123 : AngleCell := + childHH (childHL (childLH (childHH thetaBelowCell1111))) + +/-- Subcell `11113132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113132 : AngleCell := + childHL (childHH (childLH (childHH thetaBelowCell1111))) + +/-- Subcell `11113133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113133 : AngleCell := + childHH (childHH (childLH (childHH thetaBelowCell1111))) + +/-- Subcell `11113200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113200 : AngleCell := + childLL (childLL (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113201 : AngleCell := + childLH (childLL (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113210 : AngleCell := + childLL (childLH (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `111132010310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132010310 : AngleCell := + childLL (childLH (childHH (childLL thetaBelowCell11113201))) + +/-- Subcell `111132010311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132010311 : AngleCell := + childLH (childLH (childHH (childLL thetaBelowCell11113201))) + +/-- Subcell `111132010312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132010312 : AngleCell := + childHL (childLH (childHH (childLL thetaBelowCell11113201))) + +/-- Subcell `111132010313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132010313 : AngleCell := + childHH (childLH (childHH (childLL thetaBelowCell11113201))) + +/-- Subcell `111132011120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011120 : AngleCell := + childLL (childHL (childLH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011121 : AngleCell := + childLH (childHL (childLH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011122 : AngleCell := + childHL (childHL (childLH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011123 : AngleCell := + childHH (childHL (childLH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011130 : AngleCell := + childLL (childHH (childLH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011131 : AngleCell := + childLH (childHH (childLH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011132 : AngleCell := + childHL (childHH (childLH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011133 : AngleCell := + childHH (childHH (childLH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011200 : AngleCell := + childLL (childLL (childHL (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011201 : AngleCell := + childLH (childLL (childHL (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011202 : AngleCell := + childHL (childLL (childHL (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011203 : AngleCell := + childHH (childLL (childHL (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011210 : AngleCell := + childLL (childLH (childHL (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011211 : AngleCell := + childLH (childLH (childHL (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011212 : AngleCell := + childHL (childLH (childHL (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011213 : AngleCell := + childHH (childLH (childHL (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011300 : AngleCell := + childLL (childLL (childHH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011301 : AngleCell := + childLH (childLL (childHH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011302 : AngleCell := + childHL (childLL (childHH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011303 : AngleCell := + childHH (childLL (childHH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011310 : AngleCell := + childLL (childLH (childHH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011311 : AngleCell := + childLH (childLH (childHH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011312 : AngleCell := + childHL (childLH (childHH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011313 : AngleCell := + childHH (childLH (childHH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011320 : AngleCell := + childLL (childHL (childHH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011321 : AngleCell := + childLH (childHL (childHH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011322 : AngleCell := + childHL (childHL (childHH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011323 : AngleCell := + childHH (childHL (childHH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011330 : AngleCell := + childLL (childHH (childHH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011331 : AngleCell := + childLH (childHH (childHH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011332 : AngleCell := + childHL (childHH (childHH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132011333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132011333 : AngleCell := + childHH (childHH (childHH (childLH thetaBelowCell11113201))) + +/-- Subcell `111132100000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100000 : AngleCell := + childLL (childLL (childLL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100001 : AngleCell := + childLH (childLL (childLL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100002 : AngleCell := + childHL (childLL (childLL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100003 : AngleCell := + childHH (childLL (childLL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100010 : AngleCell := + childLL (childLH (childLL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100011 : AngleCell := + childLH (childLH (childLL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100012 : AngleCell := + childHL (childLH (childLL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100013 : AngleCell := + childHH (childLH (childLL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100020 : AngleCell := + childLL (childHL (childLL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100021 : AngleCell := + childLH (childHL (childLL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100022 : AngleCell := + childHL (childHL (childLL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100023 : AngleCell := + childHH (childHL (childLL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100030 : AngleCell := + childLL (childHH (childLL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100031 : AngleCell := + childLH (childHH (childLL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100032 : AngleCell := + childHL (childHH (childLL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100033 : AngleCell := + childHH (childHH (childLL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100100 : AngleCell := + childLL (childLL (childLH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100101 : AngleCell := + childLH (childLL (childLH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100102 : AngleCell := + childHL (childLL (childLH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100103 : AngleCell := + childHH (childLL (childLH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100120 : AngleCell := + childLL (childHL (childLH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100121 : AngleCell := + childLH (childHL (childLH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100122 : AngleCell := + childHL (childHL (childLH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100123 : AngleCell := + childHH (childHL (childLH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100130 : AngleCell := + childLL (childHH (childLH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100131 : AngleCell := + childLH (childHH (childLH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100132 : AngleCell := + childHL (childHH (childLH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100133 : AngleCell := + childHH (childHH (childLH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100200 : AngleCell := + childLL (childLL (childHL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100201 : AngleCell := + childLH (childLL (childHL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100202 : AngleCell := + childHL (childLL (childHL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100203 : AngleCell := + childHH (childLL (childHL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100210 : AngleCell := + childLL (childLH (childHL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100211 : AngleCell := + childLH (childLH (childHL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100212 : AngleCell := + childHL (childLH (childHL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100213 : AngleCell := + childHH (childLH (childHL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100220 : AngleCell := + childLL (childHL (childHL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100221 : AngleCell := + childLH (childHL (childHL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100222 : AngleCell := + childHL (childHL (childHL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100223 : AngleCell := + childHH (childHL (childHL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100230 : AngleCell := + childLL (childHH (childHL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100231 : AngleCell := + childLH (childHH (childHL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100232 : AngleCell := + childHL (childHH (childHL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100233 : AngleCell := + childHH (childHH (childHL (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100300 : AngleCell := + childLL (childLL (childHH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100301 : AngleCell := + childLH (childLL (childHH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100302 : AngleCell := + childHL (childLL (childHH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100303 : AngleCell := + childHH (childLL (childHH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100310 : AngleCell := + childLL (childLH (childHH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100311 : AngleCell := + childLH (childLH (childHH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100312 : AngleCell := + childHL (childLH (childHH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100313 : AngleCell := + childHH (childLH (childHH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100320 : AngleCell := + childLL (childHL (childHH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100321 : AngleCell := + childLH (childHL (childHH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100322 : AngleCell := + childHL (childHL (childHH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100323 : AngleCell := + childHH (childHL (childHH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100330 : AngleCell := + childLL (childHH (childHH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100331 : AngleCell := + childLH (childHH (childHH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100332 : AngleCell := + childHL (childHH (childHH (childLL thetaBelowCell11113210))) + +/-- Subcell `111132100333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111132100333 : AngleCell := + childHH (childHH (childHH (childLL thetaBelowCell11113210))) + +end GerverSofa.PartE.CertificateCells37514173c1 + +namespace GerverSofa.PartE.CertificateCells00c658e5bf + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113312 : AngleCell := + childHL (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113313 : AngleCell := + childHH (childLH (childHH (childHH thetaBelowCell1111))) + +end GerverSofa.PartE.CertificateCells00c658e5bf + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC5TerminalBatchT307200009`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb518b98fbe + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb518b98fbe + +open CertificateCellsb518b98fbe +theorem e24KC2ThetaAboveLeaf0110321030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01103210)) = true := by + have h : ((childLL (childHH thetaAboveCell01103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01103210)) h +theorem e24KC2ThetaAboveLeaf0110321031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01103210)) = true := by + have h : ((childLH (childHH thetaAboveCell01103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01103210)) h +theorem e24KC2ThetaAboveLeaf0110321032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01103210)) = true := by + have h : ((childHL (childHH thetaAboveCell01103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01103210)) h +theorem e24KC2ThetaAboveLeaf0110321033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01103210)) = true := by + have h : ((childHH (childHH thetaAboveCell01103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01103210)) h +theorem e24KC2ThetaAboveLeaf011032110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103211) = true := by + have h : ((childLL thetaAboveCell01103211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01103211) h +theorem e24KC2ThetaAboveLeaf011032111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103211) = true := by + have h : ((childLH thetaAboveCell01103211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01103211) h +theorem e24KC2ThetaAboveLeaf0110321120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01103211)) = true := by + have h : ((childLL (childHL thetaAboveCell01103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01103211)) h +theorem e24KC2ThetaAboveLeaf0110321121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01103211)) = true := by + have h : ((childLH (childHL thetaAboveCell01103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01103211)) h +theorem e24KC2ThetaAboveLeaf0110321122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01103211)) = true := by + have h : ((childHL (childHL thetaAboveCell01103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01103211)) h +theorem e24KC2ThetaAboveLeaf0110321123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01103211)) = true := by + have h : ((childHH (childHL thetaAboveCell01103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01103211)) h +theorem e24KC2ThetaAboveLeaf0110321130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01103211)) = true := by + have h : ((childLL (childHH thetaAboveCell01103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01103211)) h +theorem e24KC2ThetaAboveLeaf0110321131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01103211)) = true := by + have h : ((childLH (childHH thetaAboveCell01103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01103211)) h +theorem e24KC2ThetaAboveLeaf0110321132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01103211)) = true := by + have h : ((childHL (childHH thetaAboveCell01103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01103211)) h +theorem e24KC2ThetaAboveLeaf0110321133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01103211)) = true := by + have h : ((childHH (childHH thetaAboveCell01103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01103211)) h +theorem e24KC2ThetaAboveLeaf0110321200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01103212)) = true := by + have h : ((childLL (childLL thetaAboveCell01103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01103212)) h +theorem e24KC2ThetaAboveLeaf0110321201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01103212)) = true := by + have h : ((childLH (childLL thetaAboveCell01103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01103212)) h +theorem e24KC2ThetaAboveLeaf0110321202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01103212)) = true := by + have h : ((childHL (childLL thetaAboveCell01103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01103212)) h +theorem e24KC2ThetaAboveLeaf0110321203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01103212)) = true := by + have h : ((childHH (childLL thetaAboveCell01103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01103212)) h +theorem e24KC2ThetaAboveLeaf0110321210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01103212)) = true := by + have h : ((childLL (childLH thetaAboveCell01103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01103212)) h +theorem e24KC2ThetaAboveLeaf0110321211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01103212)) = true := by + have h : ((childLH (childLH thetaAboveCell01103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01103212)) h +theorem e24KC2ThetaAboveLeaf0110321212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01103212)) = true := by + have h : ((childHL (childLH thetaAboveCell01103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01103212)) h +theorem e24KC2ThetaAboveLeaf0110321213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01103212)) = true := by + have h : ((childHH (childLH thetaAboveCell01103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01103212)) h +theorem e24KC2ThetaAboveLeaf0110321220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01103212)) = true := by + have h : ((childLL (childHL thetaAboveCell01103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01103212)) h +theorem e24KC2ThetaAboveLeaf0110321221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01103212)) = true := by + have h : ((childLH (childHL thetaAboveCell01103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01103212)) h +theorem e24KC2ThetaAboveLeaf0110321222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01103212)) = true := by + have h : ((childHL (childHL thetaAboveCell01103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01103212)) h +theorem e24KC2ThetaAboveLeaf0110321223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01103212)) = true := by + have h : ((childHH (childHL thetaAboveCell01103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01103212)) h +theorem e24KC2ThetaAboveLeaf0110321230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01103212)) = true := by + have h : ((childLL (childHH thetaAboveCell01103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01103212)) h +theorem e24KC2ThetaAboveLeaf0110321231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01103212)) = true := by + have h : ((childLH (childHH thetaAboveCell01103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01103212)) h +theorem e24KC2ThetaAboveLeaf0110321232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01103212)) = true := by + have h : ((childHL (childHH thetaAboveCell01103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01103212)) h +theorem e24KC2ThetaAboveLeaf0110321233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01103212)) = true := by + have h : ((childHH (childHH thetaAboveCell01103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01103212)) h +theorem e24KC2ThetaAboveLeaf0110321300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01103213)) = true := by + have h : ((childLL (childLL thetaAboveCell01103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01103213)) h +theorem e24KC2ThetaAboveLeaf0110321301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01103213)) = true := by + have h : ((childLH (childLL thetaAboveCell01103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01103213)) h +theorem e24KC2ThetaAboveLeaf0110321302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01103213)) = true := by + have h : ((childHL (childLL thetaAboveCell01103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01103213)) h +theorem e24KC2ThetaAboveLeaf0110321303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01103213)) = true := by + have h : ((childHH (childLL thetaAboveCell01103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01103213)) h +theorem e24KC2ThetaAboveLeaf0110321310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01103213)) = true := by + have h : ((childLL (childLH thetaAboveCell01103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01103213)) h +theorem e24KC2ThetaAboveLeaf0110321311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01103213)) = true := by + have h : ((childLH (childLH thetaAboveCell01103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01103213)) h +theorem e24KC2ThetaAboveLeaf0110321312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01103213)) = true := by + have h : ((childHL (childLH thetaAboveCell01103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01103213)) h +theorem e24KC2ThetaAboveLeaf0110321313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01103213)) = true := by + have h : ((childHH (childLH thetaAboveCell01103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01103213)) h +theorem e24KC2ThetaAboveLeaf0110321320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01103213)) = true := by + have h : ((childLL (childHL thetaAboveCell01103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01103213)) h +theorem e24KC2ThetaAboveLeaf0110321321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01103213)) = true := by + have h : ((childLH (childHL thetaAboveCell01103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01103213)) h +theorem e24KC2ThetaAboveLeaf0110321322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01103213)) = true := by + have h : ((childHL (childHL thetaAboveCell01103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01103213)) h +theorem e24KC2ThetaAboveLeaf0110321323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01103213)) = true := by + have h : ((childHH (childHL thetaAboveCell01103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01103213)) h +theorem e24KC2ThetaAboveLeaf0110321330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01103213)) = true := by + have h : ((childLL (childHH thetaAboveCell01103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01103213)) h +theorem e24KC2ThetaAboveLeaf0110321331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01103213)) = true := by + have h : ((childLH (childHH thetaAboveCell01103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01103213)) h +theorem e24KC2ThetaAboveLeaf0110321332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01103213)) = true := by + have h : ((childHL (childHH thetaAboveCell01103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01103213)) h +theorem e24KC2ThetaAboveLeaf0110321333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01103213)) = true := by + have h : ((childHH (childHH thetaAboveCell01103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01103213)) h +theorem e24KC2ThetaAboveLeaf011032200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103220) = true := by + have h : ((childLL thetaAboveCell01103220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01103220) h +theorem e24KC2ThetaAboveLeaf011032201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103220) = true := by + have h : ((childLH thetaAboveCell01103220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01103220) h +theorem e24KC2ThetaAboveLeaf011032202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103220) = true := by + have h : ((childHL thetaAboveCell01103220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01103220) h +theorem e24KC2ThetaAboveLeaf011032203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103220) = true := by + have h : ((childHH thetaAboveCell01103220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01103220) h +theorem e24KC2ThetaAboveLeaf011032210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103221) = true := by + have h : ((childLL thetaAboveCell01103221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01103221) h +theorem e24KC2ThetaAboveLeaf011032211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103221) = true := by + have h : ((childLH thetaAboveCell01103221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01103221) h +theorem e24KC2ThetaAboveLeaf011032212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103221) = true := by + have h : ((childHL thetaAboveCell01103221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01103221) h +theorem e24KC2ThetaAboveLeaf011032213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103221) = true := by + have h : ((childHH thetaAboveCell01103221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01103221) h +theorem e24KC2ThetaAboveLeaf01103222 : + adaptiveCoverCheck 11 thetaAboveCell01103222 = true := by + have h : (thetaAboveCell01103222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103222 h +theorem e24KC2ThetaAboveLeaf01103223 : + adaptiveCoverCheck 11 thetaAboveCell01103223 = true := by + have h : (thetaAboveCell01103223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103223 h +theorem e24KC2ThetaAboveLeaf011032300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103230) = true := by + have h : ((childLL thetaAboveCell01103230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01103230) h +theorem e24KC2ThetaAboveLeaf011032301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103230) = true := by + have h : ((childLH thetaAboveCell01103230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01103230) h +theorem e24KC2ThetaAboveLeaf011032302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103230) = true := by + have h : ((childHL thetaAboveCell01103230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01103230) h +theorem e24KC2ThetaAboveLeaf011032303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103230) = true := by + have h : ((childHH thetaAboveCell01103230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01103230) h +theorem e24KC2ThetaAboveLeaf011032310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103231) = true := by + have h : ((childLL thetaAboveCell01103231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01103231) h +theorem e24KC2ThetaAboveLeaf011032311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103231) = true := by + have h : ((childLH thetaAboveCell01103231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01103231) h +theorem e24KC2ThetaAboveLeaf011032312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103231) = true := by + have h : ((childHL thetaAboveCell01103231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01103231) h +theorem e24KC2ThetaAboveLeaf011032313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103231) = true := by + have h : ((childHH thetaAboveCell01103231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01103231) h +theorem e24KC2ThetaAboveLeaf01103232 : + adaptiveCoverCheck 11 thetaAboveCell01103232 = true := by + have h : (thetaAboveCell01103232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103232 h +theorem e24KC2ThetaAboveLeaf01103233 : + adaptiveCoverCheck 11 thetaAboveCell01103233 = true := by + have h : (thetaAboveCell01103233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103233 h +theorem e24KC2ThetaAboveLeaf011033000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103300) = true := by + have h : ((childLL thetaAboveCell01103300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01103300) h +theorem e24KC2ThetaAboveLeaf011033001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103300) = true := by + have h : ((childLH thetaAboveCell01103300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01103300) h +theorem e24KC2ThetaAboveLeaf0110330020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01103300)) = true := by + have h : ((childLL (childHL thetaAboveCell01103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01103300)) h +theorem e24KC2ThetaAboveLeaf0110330021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01103300)) = true := by + have h : ((childLH (childHL thetaAboveCell01103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01103300)) h +theorem e24KC2ThetaAboveLeaf0110330022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01103300)) = true := by + have h : ((childHL (childHL thetaAboveCell01103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01103300)) h +theorem e24KC2ThetaAboveLeaf0110330023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01103300)) = true := by + have h : ((childHH (childHL thetaAboveCell01103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01103300)) h +theorem e24KC2ThetaAboveLeaf0110330030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01103300)) = true := by + have h : ((childLL (childHH thetaAboveCell01103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01103300)) h +theorem e24KC2ThetaAboveLeaf0110330031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01103300)) = true := by + have h : ((childLH (childHH thetaAboveCell01103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01103300)) h +theorem e24KC2ThetaAboveLeaf0110330032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01103300)) = true := by + have h : ((childHL (childHH thetaAboveCell01103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01103300)) h +theorem e24KC2ThetaAboveLeaf0110330033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01103300)) = true := by + have h : ((childHH (childHH thetaAboveCell01103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01103300)) h +theorem e24KC2ThetaAboveLeaf011033010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103301) = true := by + have h : ((childLL thetaAboveCell01103301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01103301) h +theorem e24KC2ThetaAboveLeaf011033011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103301) = true := by + have h : ((childLH thetaAboveCell01103301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01103301) h +theorem e24KC2ThetaAboveLeaf0110330120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01103301)) = true := by + have h : ((childLL (childHL thetaAboveCell01103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01103301)) h +theorem e24KC2ThetaAboveLeaf0110330121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01103301)) = true := by + have h : ((childLH (childHL thetaAboveCell01103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01103301)) h +theorem e24KC2ThetaAboveLeaf0110330122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01103301)) = true := by + have h : ((childHL (childHL thetaAboveCell01103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01103301)) h +theorem e24KC2ThetaAboveLeaf0110330123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01103301)) = true := by + have h : ((childHH (childHL thetaAboveCell01103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01103301)) h +theorem e24KC2ThetaAboveLeaf0110330130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01103301)) = true := by + have h : ((childLL (childHH thetaAboveCell01103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01103301)) h +theorem e24KC2ThetaAboveLeaf0110330131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01103301)) = true := by + have h : ((childLH (childHH thetaAboveCell01103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01103301)) h +theorem e24KC2ThetaAboveLeaf0110330132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01103301)) = true := by + have h : ((childHL (childHH thetaAboveCell01103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01103301)) h +theorem e24KC2ThetaAboveLeaf0110330133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01103301)) = true := by + have h : ((childHH (childHH thetaAboveCell01103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01103301)) h +theorem e24KC2ThetaAboveLeaf0110330200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01103302)) = true := by + have h : ((childLL (childLL thetaAboveCell01103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01103302)) h +theorem e24KC2ThetaAboveLeaf0110330201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01103302)) = true := by + have h : ((childLH (childLL thetaAboveCell01103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01103302)) h +theorem e24KC2ThetaAboveLeaf0110330202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01103302)) = true := by + have h : ((childHL (childLL thetaAboveCell01103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01103302)) h +theorem e24KC2ThetaAboveLeaf0110330203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01103302)) = true := by + have h : ((childHH (childLL thetaAboveCell01103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01103302)) h +theorem e24KC2ThetaAboveLeaf0110330210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01103302)) = true := by + have h : ((childLL (childLH thetaAboveCell01103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01103302)) h +theorem e24KC2ThetaAboveLeaf0110330211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01103302)) = true := by + have h : ((childLH (childLH thetaAboveCell01103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01103302)) h +theorem e24KC2ThetaAboveLeaf0110330212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01103302)) = true := by + have h : ((childHL (childLH thetaAboveCell01103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01103302)) h +theorem e24KC2ThetaAboveLeaf0110330213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01103302)) = true := by + have h : ((childHH (childLH thetaAboveCell01103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01103302)) h +theorem e24KC2ThetaAboveLeaf0110330220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01103302)) = true := by + have h : ((childLL (childHL thetaAboveCell01103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01103302)) h +theorem e24KC2ThetaAboveLeaf0110330221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01103302)) = true := by + have h : ((childLH (childHL thetaAboveCell01103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01103302)) h +theorem e24KC2ThetaAboveLeaf0110330222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01103302)) = true := by + have h : ((childHL (childHL thetaAboveCell01103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01103302)) h +theorem e24KC2ThetaAboveLeaf0110330223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01103302)) = true := by + have h : ((childHH (childHL thetaAboveCell01103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01103302)) h +theorem e24KC2ThetaAboveLeaf0110330230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01103302)) = true := by + have h : ((childLL (childHH thetaAboveCell01103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01103302)) h +theorem e24KC2ThetaAboveLeaf0110330231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01103302)) = true := by + have h : ((childLH (childHH thetaAboveCell01103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01103302)) h +theorem e24KC2ThetaAboveLeaf0110330232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01103302)) = true := by + have h : ((childHL (childHH thetaAboveCell01103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01103302)) h +theorem e24KC2ThetaAboveLeaf0110330233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01103302)) = true := by + have h : ((childHH (childHH thetaAboveCell01103302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01103302)) h +theorem e24KC2ThetaAboveLeaf0110330300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01103303)) = true := by + have h : ((childLL (childLL thetaAboveCell01103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01103303)) h +theorem e24KC2ThetaAboveLeaf0110330301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01103303)) = true := by + have h : ((childLH (childLL thetaAboveCell01103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01103303)) h +theorem e24KC2ThetaAboveLeaf0110330302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01103303)) = true := by + have h : ((childHL (childLL thetaAboveCell01103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01103303)) h +theorem e24KC2ThetaAboveLeaf0110330303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01103303)) = true := by + have h : ((childHH (childLL thetaAboveCell01103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01103303)) h +theorem e24KC2ThetaAboveLeaf0110330310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01103303)) = true := by + have h : ((childLL (childLH thetaAboveCell01103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01103303)) h +theorem e24KC2ThetaAboveLeaf0110330311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01103303)) = true := by + have h : ((childLH (childLH thetaAboveCell01103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01103303)) h +theorem e24KC2ThetaAboveLeaf0110330312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01103303)) = true := by + have h : ((childHL (childLH thetaAboveCell01103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01103303)) h +theorem e24KC2ThetaAboveLeaf0110330313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01103303)) = true := by + have h : ((childHH (childLH thetaAboveCell01103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01103303)) h +theorem e24KC2ThetaAboveLeaf0110330320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01103303)) = true := by + have h : ((childLL (childHL thetaAboveCell01103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01103303)) h +theorem e24KC2ThetaAboveLeaf0110330321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01103303)) = true := by + have h : ((childLH (childHL thetaAboveCell01103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01103303)) h +theorem e24KC2ThetaAboveLeaf0110330322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01103303)) = true := by + have h : ((childHL (childHL thetaAboveCell01103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01103303)) h +theorem e24KC2ThetaAboveLeaf0110330323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01103303)) = true := by + have h : ((childHH (childHL thetaAboveCell01103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01103303)) h +theorem e24KC2ThetaAboveLeaf0110330330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01103303)) = true := by + have h : ((childLL (childHH thetaAboveCell01103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01103303)) h +theorem e24KC2ThetaAboveLeaf0110330331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01103303)) = true := by + have h : ((childLH (childHH thetaAboveCell01103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01103303)) h +theorem e24KC2ThetaAboveLeaf0110330332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01103303)) = true := by + have h : ((childHL (childHH thetaAboveCell01103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01103303)) h +theorem e24KC2ThetaAboveLeaf0110330333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01103303)) = true := by + have h : ((childHH (childHH thetaAboveCell01103303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01103303)) h +theorem e24KC2ThetaAboveLeaf011033100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103310) = true := by + have h : ((childLL thetaAboveCell01103310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01103310) h +theorem e24KC2ThetaAboveLeaf011033101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103310) = true := by + have h : ((childLH thetaAboveCell01103310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01103310) h +theorem e24KC2ThetaAboveLeaf0110331020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01103310)) = true := by + have h : ((childLL (childHL thetaAboveCell01103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01103310)) h +theorem e24KC2ThetaAboveLeaf0110331021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01103310)) = true := by + have h : ((childLH (childHL thetaAboveCell01103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01103310)) h +theorem e24KC2ThetaAboveLeaf0110331022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01103310)) = true := by + have h : ((childHL (childHL thetaAboveCell01103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01103310)) h +theorem e24KC2ThetaAboveLeaf0110331023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01103310)) = true := by + have h : ((childHH (childHL thetaAboveCell01103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01103310)) h +theorem e24KC2ThetaAboveLeaf0110331030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01103310)) = true := by + have h : ((childLL (childHH thetaAboveCell01103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01103310)) h +theorem e24KC2ThetaAboveLeaf0110331031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01103310)) = true := by + have h : ((childLH (childHH thetaAboveCell01103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01103310)) h +theorem e24KC2ThetaAboveLeaf0110331032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01103310)) = true := by + have h : ((childHL (childHH thetaAboveCell01103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01103310)) h +theorem e24KC2ThetaAboveLeaf0110331033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01103310)) = true := by + have h : ((childHH (childHH thetaAboveCell01103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01103310)) h +theorem e24KC2ThetaAboveLeaf011033110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103311) = true := by + have h : ((childLL thetaAboveCell01103311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01103311) h +theorem e24KC2ThetaAboveLeaf011033111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103311) = true := by + have h : ((childLH thetaAboveCell01103311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01103311) h +theorem e24KC2ThetaAboveLeaf0110331120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01103311)) = true := by + have h : ((childLL (childHL thetaAboveCell01103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01103311)) h +theorem e24KC2ThetaAboveLeaf0110331121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01103311)) = true := by + have h : ((childLH (childHL thetaAboveCell01103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01103311)) h +theorem e24KC2ThetaAboveLeaf0110331122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01103311)) = true := by + have h : ((childHL (childHL thetaAboveCell01103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01103311)) h +theorem e24KC2ThetaAboveLeaf0110331123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01103311)) = true := by + have h : ((childHH (childHL thetaAboveCell01103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01103311)) h +theorem e24KC2ThetaAboveLeaf0110331130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01103311)) = true := by + have h : ((childLL (childHH thetaAboveCell01103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01103311)) h +theorem e24KC2ThetaAboveLeaf0110331131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01103311)) = true := by + have h : ((childLH (childHH thetaAboveCell01103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01103311)) h +theorem e24KC2ThetaAboveLeaf0110331132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01103311)) = true := by + have h : ((childHL (childHH thetaAboveCell01103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01103311)) h +theorem e24KC2ThetaAboveLeaf0110331133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01103311)) = true := by + have h : ((childHH (childHH thetaAboveCell01103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01103311)) h +theorem e24KC2ThetaAboveLeaf0110331200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01103312)) = true := by + have h : ((childLL (childLL thetaAboveCell01103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01103312)) h +theorem e24KC2ThetaAboveLeaf0110331201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01103312)) = true := by + have h : ((childLH (childLL thetaAboveCell01103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01103312)) h +theorem e24KC2ThetaAboveLeaf0110331202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01103312)) = true := by + have h : ((childHL (childLL thetaAboveCell01103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01103312)) h +theorem e24KC2ThetaAboveLeaf0110331203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01103312)) = true := by + have h : ((childHH (childLL thetaAboveCell01103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01103312)) h +theorem e24KC2ThetaAboveLeaf0110331210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01103312)) = true := by + have h : ((childLL (childLH thetaAboveCell01103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01103312)) h +theorem e24KC2ThetaAboveLeaf0110331211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01103312)) = true := by + have h : ((childLH (childLH thetaAboveCell01103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01103312)) h +theorem e24KC2ThetaAboveLeaf0110331212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01103312)) = true := by + have h : ((childHL (childLH thetaAboveCell01103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01103312)) h +theorem e24KC2ThetaAboveLeaf0110331213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01103312)) = true := by + have h : ((childHH (childLH thetaAboveCell01103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01103312)) h +theorem e24KC2ThetaAboveLeaf0110331220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01103312)) = true := by + have h : ((childLL (childHL thetaAboveCell01103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01103312)) h +theorem e24KC2ThetaAboveLeaf0110331221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01103312)) = true := by + have h : ((childLH (childHL thetaAboveCell01103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01103312)) h +theorem e24KC2ThetaAboveLeaf0110331222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01103312)) = true := by + have h : ((childHL (childHL thetaAboveCell01103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01103312)) h +theorem e24KC2ThetaAboveLeaf0110331223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01103312)) = true := by + have h : ((childHH (childHL thetaAboveCell01103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01103312)) h +theorem e24KC2ThetaAboveLeaf0110331230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01103312)) = true := by + have h : ((childLL (childHH thetaAboveCell01103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01103312)) h +theorem e24KC2ThetaAboveLeaf0110331231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01103312)) = true := by + have h : ((childLH (childHH thetaAboveCell01103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01103312)) h +theorem e24KC2ThetaAboveLeaf0110331232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01103312)) = true := by + have h : ((childHL (childHH thetaAboveCell01103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01103312)) h +theorem e24KC2ThetaAboveLeaf0110331233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01103312)) = true := by + have h : ((childHH (childHH thetaAboveCell01103312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01103312)) h +theorem e24KC2ThetaAboveLeaf0110331300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01103313)) = true := by + have h : ((childLL (childLL thetaAboveCell01103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01103313)) h +theorem e24KC2ThetaAboveLeaf0110331301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01103313)) = true := by + have h : ((childLH (childLL thetaAboveCell01103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01103313)) h +theorem e24KC2ThetaAboveLeaf0110331302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01103313)) = true := by + have h : ((childHL (childLL thetaAboveCell01103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01103313)) h +theorem e24KC2ThetaAboveLeaf0110331303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01103313)) = true := by + have h : ((childHH (childLL thetaAboveCell01103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01103313)) h +theorem e24KC2ThetaAboveLeaf0110331310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01103313)) = true := by + have h : ((childLL (childLH thetaAboveCell01103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01103313)) h +theorem e24KC2ThetaAboveLeaf0110331311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01103313)) = true := by + have h : ((childLH (childLH thetaAboveCell01103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01103313)) h +theorem e24KC2ThetaAboveLeaf0110331312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01103313)) = true := by + have h : ((childHL (childLH thetaAboveCell01103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01103313)) h +theorem e24KC2ThetaAboveLeaf0110331313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01103313)) = true := by + have h : ((childHH (childLH thetaAboveCell01103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01103313)) h +theorem e24KC2ThetaAboveLeaf0110331320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01103313)) = true := by + have h : ((childLL (childHL thetaAboveCell01103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01103313)) h +theorem e24KC2ThetaAboveLeaf0110331321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01103313)) = true := by + have h : ((childLH (childHL thetaAboveCell01103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01103313)) h +theorem e24KC2ThetaAboveLeaf0110331322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01103313)) = true := by + have h : ((childHL (childHL thetaAboveCell01103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01103313)) h +theorem e24KC2ThetaAboveLeaf0110331323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01103313)) = true := by + have h : ((childHH (childHL thetaAboveCell01103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01103313)) h +theorem e24KC2ThetaAboveLeaf0110331330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01103313)) = true := by + have h : ((childLL (childHH thetaAboveCell01103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01103313)) h +theorem e24KC2ThetaAboveLeaf0110331331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01103313)) = true := by + have h : ((childLH (childHH thetaAboveCell01103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01103313)) h +theorem e24KC2ThetaAboveLeaf0110331332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01103313)) = true := by + have h : ((childHL (childHH thetaAboveCell01103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01103313)) h +theorem e24KC2ThetaAboveLeaf0110331333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01103313)) = true := by + have h : ((childHH (childHH thetaAboveCell01103313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01103313)) h +theorem e24KC2ThetaAboveLeaf011033200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103320) = true := by + have h : ((childLL thetaAboveCell01103320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01103320) h +theorem e24KC2ThetaAboveLeaf011033201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103320) = true := by + have h : ((childLH thetaAboveCell01103320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01103320) h +theorem e24KC2ThetaAboveLeaf011033202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103320) = true := by + have h : ((childHL thetaAboveCell01103320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01103320) h +theorem e24KC2ThetaAboveLeaf011033203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103320) = true := by + have h : ((childHH thetaAboveCell01103320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01103320) h +theorem e24KC2ThetaAboveLeaf011033210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103321) = true := by + have h : ((childLL thetaAboveCell01103321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01103321) h +theorem e24KC2ThetaAboveLeaf011033211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103321) = true := by + have h : ((childLH thetaAboveCell01103321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01103321) h +theorem e24KC2ThetaAboveLeaf011033212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103321) = true := by + have h : ((childHL thetaAboveCell01103321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01103321) h +theorem e24KC2ThetaAboveLeaf011033213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103321) = true := by + have h : ((childHH thetaAboveCell01103321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01103321) h +theorem e24KC2ThetaAboveLeaf01103322 : + adaptiveCoverCheck 11 thetaAboveCell01103322 = true := by + have h : (thetaAboveCell01103322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103322 h +theorem e24KC2ThetaAboveLeaf01103323 : + adaptiveCoverCheck 11 thetaAboveCell01103323 = true := by + have h : (thetaAboveCell01103323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103323 h +theorem e24KC2ThetaAboveLeaf011033300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103330) = true := by + have h : ((childLL thetaAboveCell01103330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01103330) h +theorem e24KC2ThetaAboveLeaf011033301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103330) = true := by + have h : ((childLH thetaAboveCell01103330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01103330) h +theorem e24KC2ThetaAboveLeaf011033302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103330) = true := by + have h : ((childHL thetaAboveCell01103330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01103330) h +theorem e24KC2ThetaAboveLeaf011033303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103330) = true := by + have h : ((childHH thetaAboveCell01103330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01103330) h +theorem e24KC2ThetaAboveLeaf011033310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103331) = true := by + have h : ((childLL thetaAboveCell01103331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01103331) h +theorem e24KC2ThetaAboveLeaf011033311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103331) = true := by + have h : ((childLH thetaAboveCell01103331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01103331) h +theorem e24KC2ThetaAboveLeaf011033312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103331) = true := by + have h : ((childHL thetaAboveCell01103331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01103331) h +theorem e24KC2ThetaAboveLeaf011033313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103331) = true := by + have h : ((childHH thetaAboveCell01103331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01103331) h +theorem e24KC2ThetaAboveLeaf01103332 : + adaptiveCoverCheck 11 thetaAboveCell01103332 = true := by + have h : (thetaAboveCell01103332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103332 h +theorem e24KC2ThetaAboveLeaf01103333 : + adaptiveCoverCheck 11 thetaAboveCell01103333 = true := by + have h : (thetaAboveCell01103333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01103333 h +theorem e24KC2ThetaAboveLeaf011100 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell0111)) = true := by + have h : ((childLL (childLL thetaAboveCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLL thetaAboveCell0111)) h +theorem e24KC2ThetaAboveLeaf011101 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell0111)) = true := by + have h : ((childLH (childLL thetaAboveCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLL thetaAboveCell0111)) h +theorem e24KC2ThetaAboveLeaf011102 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell0111)) = true := by + have h : ((childHL (childLL thetaAboveCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell0111)) h +theorem e24KC2ThetaAboveLeaf011103 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell0111)) = true := by + have h : ((childHH (childLL thetaAboveCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell0111)) h +theorem e24KC2ThetaAboveLeaf011110 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell0111)) = true := by + have h : ((childLL (childLH thetaAboveCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLH thetaAboveCell0111)) h +theorem e24KC2ThetaAboveLeaf011111 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell0111)) = true := by + have h : ((childLH (childLH thetaAboveCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLH thetaAboveCell0111)) h +theorem e24KC2ThetaAboveLeaf011112 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell0111)) = true := by + have h : ((childHL (childLH thetaAboveCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell0111)) h +theorem e24KC2ThetaAboveLeaf011113 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell0111)) = true := by + have h : ((childHH (childLH thetaAboveCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell0111)) h +theorem e24KC2ThetaAboveLeaf0111200 : + adaptiveCoverCheck 12 (childLL (childLL (childHL thetaAboveCell0111))) = true := by + have h : ((childLL (childLL (childHL thetaAboveCell0111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHL thetaAboveCell0111))) h +theorem e24KC2ThetaAboveLeaf0111201 : + adaptiveCoverCheck 12 (childLH (childLL (childHL thetaAboveCell0111))) = true := by + have h : ((childLH (childLL (childHL thetaAboveCell0111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHL thetaAboveCell0111))) h +theorem e24KC2ThetaAboveLeaf01112020 : + adaptiveCoverCheck 11 thetaAboveCell01112020 = true := by + have h : (thetaAboveCell01112020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112020 h +theorem e24KC2ThetaAboveLeaf01112021 : + adaptiveCoverCheck 11 thetaAboveCell01112021 = true := by + have h : (thetaAboveCell01112021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112021 h +theorem e24KC2ThetaAboveLeaf01112022 : + adaptiveCoverCheck 11 thetaAboveCell01112022 = true := by + have h : (thetaAboveCell01112022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112022 h +theorem e24KC2ThetaAboveLeaf01112023 : + adaptiveCoverCheck 11 thetaAboveCell01112023 = true := by + have h : (thetaAboveCell01112023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112023 h +theorem e24KC2ThetaAboveLeaf01112030 : + adaptiveCoverCheck 11 thetaAboveCell01112030 = true := by + have h : (thetaAboveCell01112030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112030 h +theorem e24KC2ThetaAboveLeaf01112031 : + adaptiveCoverCheck 11 thetaAboveCell01112031 = true := by + have h : (thetaAboveCell01112031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112031 h +theorem e24KC2ThetaAboveLeaf01112032 : + adaptiveCoverCheck 11 thetaAboveCell01112032 = true := by + have h : (thetaAboveCell01112032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112032 h +theorem e24KC2ThetaAboveLeaf01112033 : + adaptiveCoverCheck 11 thetaAboveCell01112033 = true := by + have h : (thetaAboveCell01112033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112033 h +theorem e24KC2ThetaAboveLeaf0111210 : + adaptiveCoverCheck 12 (childLL (childLH (childHL thetaAboveCell0111))) = true := by + have h : ((childLL (childLH (childHL thetaAboveCell0111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHL thetaAboveCell0111))) h +theorem e24KC2ThetaAboveLeaf0111211 : + adaptiveCoverCheck 12 (childLH (childLH (childHL thetaAboveCell0111))) = true := by + have h : ((childLH (childLH (childHL thetaAboveCell0111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHL thetaAboveCell0111))) h +theorem e24KC2ThetaAboveLeaf01112120 : + adaptiveCoverCheck 11 thetaAboveCell01112120 = true := by + have h : (thetaAboveCell01112120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112120 h +theorem e24KC2ThetaAboveLeaf01112121 : + adaptiveCoverCheck 11 thetaAboveCell01112121 = true := by + have h : (thetaAboveCell01112121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112121 h +theorem e24KC2ThetaAboveLeaf01112122 : + adaptiveCoverCheck 11 thetaAboveCell01112122 = true := by + have h : (thetaAboveCell01112122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112122 h +theorem e24KC2ThetaAboveLeaf01112123 : + adaptiveCoverCheck 11 thetaAboveCell01112123 = true := by + have h : (thetaAboveCell01112123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112123 h +theorem e24KC2ThetaAboveLeaf01112130 : + adaptiveCoverCheck 11 thetaAboveCell01112130 = true := by + have h : (thetaAboveCell01112130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112130 h +theorem e24KC2ThetaAboveLeaf01112131 : + adaptiveCoverCheck 11 thetaAboveCell01112131 = true := by + have h : (thetaAboveCell01112131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112131 h +theorem e24KC2ThetaAboveLeaf01112132 : + adaptiveCoverCheck 11 thetaAboveCell01112132 = true := by + have h : (thetaAboveCell01112132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112132 h +theorem e24KC2ThetaAboveLeaf01112133 : + adaptiveCoverCheck 11 thetaAboveCell01112133 = true := by + have h : (thetaAboveCell01112133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112133 h +theorem e24KC2ThetaAboveLeaf011122000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112200) = true := by + have h : ((childLL thetaAboveCell01112200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01112200) h +theorem e24KC2ThetaAboveLeaf011122001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112200) = true := by + have h : ((childLH thetaAboveCell01112200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01112200) h +theorem e24KC2ThetaAboveLeaf0111220020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01112200)) = true := by + have h : ((childLL (childHL thetaAboveCell01112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01112200)) h +theorem e24KC2ThetaAboveLeaf0111220021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01112200)) = true := by + have h : ((childLH (childHL thetaAboveCell01112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01112200)) h +theorem e24KC2ThetaAboveLeaf0111220022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01112200)) = true := by + have h : ((childHL (childHL thetaAboveCell01112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01112200)) h +theorem e24KC2ThetaAboveLeaf0111220023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01112200)) = true := by + have h : ((childHH (childHL thetaAboveCell01112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01112200)) h +theorem e24KC2ThetaAboveLeaf0111220030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01112200)) = true := by + have h : ((childLL (childHH thetaAboveCell01112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01112200)) h +theorem e24KC2ThetaAboveLeaf0111220031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01112200)) = true := by + have h : ((childLH (childHH thetaAboveCell01112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01112200)) h +theorem e24KC2ThetaAboveLeaf0111220032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01112200)) = true := by + have h : ((childHL (childHH thetaAboveCell01112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01112200)) h +theorem e24KC2ThetaAboveLeaf0111220033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01112200)) = true := by + have h : ((childHH (childHH thetaAboveCell01112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01112200)) h +theorem e24KC2ThetaAboveLeaf011122010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112201) = true := by + have h : ((childLL thetaAboveCell01112201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01112201) h +theorem e24KC2ThetaAboveLeaf011122011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112201) = true := by + have h : ((childLH thetaAboveCell01112201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01112201) h +theorem e24KC2ThetaAboveLeaf0111220120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01112201)) = true := by + have h : ((childLL (childHL thetaAboveCell01112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01112201)) h +theorem e24KC2ThetaAboveLeaf0111220121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01112201)) = true := by + have h : ((childLH (childHL thetaAboveCell01112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01112201)) h +theorem e24KC2ThetaAboveLeaf0111220122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01112201)) = true := by + have h : ((childHL (childHL thetaAboveCell01112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01112201)) h +theorem e24KC2ThetaAboveLeaf0111220123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01112201)) = true := by + have h : ((childHH (childHL thetaAboveCell01112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01112201)) h +theorem e24KC2ThetaAboveLeaf0111220130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01112201)) = true := by + have h : ((childLL (childHH thetaAboveCell01112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01112201)) h +theorem e24KC2ThetaAboveLeaf0111220131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01112201)) = true := by + have h : ((childLH (childHH thetaAboveCell01112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01112201)) h +theorem e24KC2ThetaAboveLeaf0111220132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01112201)) = true := by + have h : ((childHL (childHH thetaAboveCell01112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01112201)) h +theorem e24KC2ThetaAboveLeaf0111220133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01112201)) = true := by + have h : ((childHH (childHH thetaAboveCell01112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01112201)) h +theorem e24KC2ThetaAboveLeaf0111220200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01112202)) = true := by + have h : ((childLL (childLL thetaAboveCell01112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01112202)) h +theorem e24KC2ThetaAboveLeaf0111220201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01112202)) = true := by + have h : ((childLH (childLL thetaAboveCell01112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01112202)) h +theorem e24KC2ThetaAboveLeaf0111220202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01112202)) = true := by + have h : ((childHL (childLL thetaAboveCell01112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01112202)) h +theorem e24KC2ThetaAboveLeaf0111220203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01112202)) = true := by + have h : ((childHH (childLL thetaAboveCell01112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01112202)) h +theorem e24KC2ThetaAboveLeaf0111220210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01112202)) = true := by + have h : ((childLL (childLH thetaAboveCell01112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01112202)) h +theorem e24KC2ThetaAboveLeaf0111220211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01112202)) = true := by + have h : ((childLH (childLH thetaAboveCell01112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01112202)) h +theorem e24KC2ThetaAboveLeaf0111220212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01112202)) = true := by + have h : ((childHL (childLH thetaAboveCell01112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01112202)) h +theorem e24KC2ThetaAboveLeaf0111220213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01112202)) = true := by + have h : ((childHH (childLH thetaAboveCell01112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01112202)) h +theorem e24KC2ThetaAboveLeaf0111220220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01112202)) = true := by + have h : ((childLL (childHL thetaAboveCell01112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01112202)) h +theorem e24KC2ThetaAboveLeaf0111220221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01112202)) = true := by + have h : ((childLH (childHL thetaAboveCell01112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01112202)) h +theorem e24KC2ThetaAboveLeaf0111220222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01112202)) = true := by + have h : ((childHL (childHL thetaAboveCell01112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01112202)) h +theorem e24KC2ThetaAboveLeaf0111220223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01112202)) = true := by + have h : ((childHH (childHL thetaAboveCell01112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01112202)) h +theorem e24KC2ThetaAboveLeaf0111220230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01112202)) = true := by + have h : ((childLL (childHH thetaAboveCell01112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01112202)) h +theorem e24KC2ThetaAboveLeaf0111220231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01112202)) = true := by + have h : ((childLH (childHH thetaAboveCell01112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01112202)) h +theorem e24KC2ThetaAboveLeaf0111220232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01112202)) = true := by + have h : ((childHL (childHH thetaAboveCell01112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01112202)) h +theorem e24KC2ThetaAboveLeaf0111220233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01112202)) = true := by + have h : ((childHH (childHH thetaAboveCell01112202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01112202)) h +theorem e24KC2ThetaAboveLeaf0111220300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01112203)) = true := by + have h : ((childLL (childLL thetaAboveCell01112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01112203)) h +theorem e24KC2ThetaAboveLeaf0111220301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01112203)) = true := by + have h : ((childLH (childLL thetaAboveCell01112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01112203)) h +theorem e24KC2ThetaAboveLeaf0111220302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01112203)) = true := by + have h : ((childHL (childLL thetaAboveCell01112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01112203)) h +theorem e24KC2ThetaAboveLeaf0111220303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01112203)) = true := by + have h : ((childHH (childLL thetaAboveCell01112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01112203)) h +theorem e24KC2ThetaAboveLeaf0111220310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01112203)) = true := by + have h : ((childLL (childLH thetaAboveCell01112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01112203)) h +theorem e24KC2ThetaAboveLeaf0111220311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01112203)) = true := by + have h : ((childLH (childLH thetaAboveCell01112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01112203)) h +theorem e24KC2ThetaAboveLeaf0111220312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01112203)) = true := by + have h : ((childHL (childLH thetaAboveCell01112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01112203)) h +theorem e24KC2ThetaAboveLeaf0111220313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01112203)) = true := by + have h : ((childHH (childLH thetaAboveCell01112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01112203)) h +theorem e24KC2ThetaAboveLeaf0111220320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01112203)) = true := by + have h : ((childLL (childHL thetaAboveCell01112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01112203)) h +theorem e24KC2ThetaAboveLeaf0111220321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01112203)) = true := by + have h : ((childLH (childHL thetaAboveCell01112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01112203)) h +theorem e24KC2ThetaAboveLeaf0111220322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01112203)) = true := by + have h : ((childHL (childHL thetaAboveCell01112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01112203)) h +theorem e24KC2ThetaAboveLeaf0111220323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01112203)) = true := by + have h : ((childHH (childHL thetaAboveCell01112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01112203)) h +theorem e24KC2ThetaAboveLeaf0111220330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01112203)) = true := by + have h : ((childLL (childHH thetaAboveCell01112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01112203)) h +theorem e24KC2ThetaAboveLeaf0111220331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01112203)) = true := by + have h : ((childLH (childHH thetaAboveCell01112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01112203)) h +theorem e24KC2ThetaAboveLeaf0111220332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01112203)) = true := by + have h : ((childHL (childHH thetaAboveCell01112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01112203)) h +theorem e24KC2ThetaAboveLeaf0111220333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01112203)) = true := by + have h : ((childHH (childHH thetaAboveCell01112203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01112203)) h +theorem e24KC2ThetaAboveLeaf011122100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112210) = true := by + have h : ((childLL thetaAboveCell01112210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01112210) h +theorem e24KC2ThetaAboveLeaf011122101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112210) = true := by + have h : ((childLH thetaAboveCell01112210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01112210) h +theorem e24KC2ThetaAboveLeaf0111221020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01112210)) = true := by + have h : ((childLL (childHL thetaAboveCell01112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01112210)) h +theorem e24KC2ThetaAboveLeaf0111221021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01112210)) = true := by + have h : ((childLH (childHL thetaAboveCell01112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01112210)) h +theorem e24KC2ThetaAboveLeaf0111221022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01112210)) = true := by + have h : ((childHL (childHL thetaAboveCell01112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01112210)) h +theorem e24KC2ThetaAboveLeaf0111221023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01112210)) = true := by + have h : ((childHH (childHL thetaAboveCell01112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01112210)) h +theorem e24KC2ThetaAboveLeaf0111221030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01112210)) = true := by + have h : ((childLL (childHH thetaAboveCell01112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01112210)) h +theorem e24KC2ThetaAboveLeaf0111221031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01112210)) = true := by + have h : ((childLH (childHH thetaAboveCell01112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01112210)) h +theorem e24KC2ThetaAboveLeaf0111221032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01112210)) = true := by + have h : ((childHL (childHH thetaAboveCell01112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01112210)) h +theorem e24KC2ThetaAboveLeaf0111221033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01112210)) = true := by + have h : ((childHH (childHH thetaAboveCell01112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01112210)) h +theorem e24KC2ThetaAboveLeaf011122110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112211) = true := by + have h : ((childLL thetaAboveCell01112211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01112211) h +theorem e24KC2ThetaAboveLeaf011122111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112211) = true := by + have h : ((childLH thetaAboveCell01112211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01112211) h +theorem e24KC2ThetaAboveLeaf0111221120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01112211)) = true := by + have h : ((childLL (childHL thetaAboveCell01112211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01112211)) h +theorem e24KC2ThetaAboveLeaf0111221121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01112211)) = true := by + have h : ((childLH (childHL thetaAboveCell01112211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01112211)) h +theorem e24KC2ThetaAboveLeaf0111221122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01112211)) = true := by + have h : ((childHL (childHL thetaAboveCell01112211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01112211)) h +theorem e24KC2ThetaAboveLeaf0111221123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01112211)) = true := by + have h : ((childHH (childHL thetaAboveCell01112211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01112211)) h +theorem e24KC2ThetaAboveLeaf0111221130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01112211)) = true := by + have h : ((childLL (childHH thetaAboveCell01112211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01112211)) h +theorem e24KC2ThetaAboveLeaf0111221131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01112211)) = true := by + have h : ((childLH (childHH thetaAboveCell01112211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01112211)) h +theorem e24KC2ThetaAboveLeaf0111221132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01112211)) = true := by + have h : ((childHL (childHH thetaAboveCell01112211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01112211)) h +theorem e24KC2ThetaAboveLeaf0111221133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01112211)) = true := by + have h : ((childHH (childHH thetaAboveCell01112211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01112211)) h +theorem e24KC2ThetaAboveLeaf0111221200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01112212)) = true := by + have h : ((childLL (childLL thetaAboveCell01112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01112212)) h +theorem e24KC2ThetaAboveLeaf0111221201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01112212)) = true := by + have h : ((childLH (childLL thetaAboveCell01112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01112212)) h +theorem e24KC2ThetaAboveLeaf0111221202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01112212)) = true := by + have h : ((childHL (childLL thetaAboveCell01112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01112212)) h +theorem e24KC2ThetaAboveLeaf0111221203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01112212)) = true := by + have h : ((childHH (childLL thetaAboveCell01112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01112212)) h +theorem e24KC2ThetaAboveLeaf0111221210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01112212)) = true := by + have h : ((childLL (childLH thetaAboveCell01112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01112212)) h +theorem e24KC2ThetaAboveLeaf0111221211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01112212)) = true := by + have h : ((childLH (childLH thetaAboveCell01112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01112212)) h +theorem e24KC2ThetaAboveLeaf0111221212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01112212)) = true := by + have h : ((childHL (childLH thetaAboveCell01112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01112212)) h +theorem e24KC2ThetaAboveLeaf0111221213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01112212)) = true := by + have h : ((childHH (childLH thetaAboveCell01112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01112212)) h +theorem e24KC2ThetaAboveLeaf0111221220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01112212)) = true := by + have h : ((childLL (childHL thetaAboveCell01112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01112212)) h +theorem e24KC2ThetaAboveLeaf0111221221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01112212)) = true := by + have h : ((childLH (childHL thetaAboveCell01112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01112212)) h +theorem e24KC2ThetaAboveLeaf0111221222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01112212)) = true := by + have h : ((childHL (childHL thetaAboveCell01112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01112212)) h +theorem e24KC2ThetaAboveLeaf0111221223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01112212)) = true := by + have h : ((childHH (childHL thetaAboveCell01112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01112212)) h +theorem e24KC2ThetaAboveLeaf0111221230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01112212)) = true := by + have h : ((childLL (childHH thetaAboveCell01112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01112212)) h +theorem e24KC2ThetaAboveLeaf0111221231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01112212)) = true := by + have h : ((childLH (childHH thetaAboveCell01112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01112212)) h +theorem e24KC2ThetaAboveLeaf0111221232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01112212)) = true := by + have h : ((childHL (childHH thetaAboveCell01112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01112212)) h +theorem e24KC2ThetaAboveLeaf0111221233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01112212)) = true := by + have h : ((childHH (childHH thetaAboveCell01112212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01112212)) h +theorem e24KC2ThetaAboveLeaf0111221300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01112213)) = true := by + have h : ((childLL (childLL thetaAboveCell01112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01112213)) h +theorem e24KC2ThetaAboveLeaf0111221301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01112213)) = true := by + have h : ((childLH (childLL thetaAboveCell01112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01112213)) h +theorem e24KC2ThetaAboveLeaf0111221302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01112213)) = true := by + have h : ((childHL (childLL thetaAboveCell01112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01112213)) h +theorem e24KC2ThetaAboveLeaf0111221303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01112213)) = true := by + have h : ((childHH (childLL thetaAboveCell01112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01112213)) h +theorem e24KC2ThetaAboveLeaf0111221310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01112213)) = true := by + have h : ((childLL (childLH thetaAboveCell01112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01112213)) h +theorem e24KC2ThetaAboveLeaf0111221311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01112213)) = true := by + have h : ((childLH (childLH thetaAboveCell01112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01112213)) h +theorem e24KC2ThetaAboveLeaf0111221312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01112213)) = true := by + have h : ((childHL (childLH thetaAboveCell01112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01112213)) h +theorem e24KC2ThetaAboveLeaf0111221313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01112213)) = true := by + have h : ((childHH (childLH thetaAboveCell01112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01112213)) h +theorem e24KC2ThetaAboveLeaf0111221320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01112213)) = true := by + have h : ((childLL (childHL thetaAboveCell01112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01112213)) h +theorem e24KC2ThetaAboveLeaf0111221321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01112213)) = true := by + have h : ((childLH (childHL thetaAboveCell01112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01112213)) h +theorem e24KC2ThetaAboveLeaf0111221322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01112213)) = true := by + have h : ((childHL (childHL thetaAboveCell01112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01112213)) h +theorem e24KC2ThetaAboveLeaf0111221323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01112213)) = true := by + have h : ((childHH (childHL thetaAboveCell01112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01112213)) h +theorem e24KC2ThetaAboveLeaf0111221330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01112213)) = true := by + have h : ((childLL (childHH thetaAboveCell01112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01112213)) h +theorem e24KC2ThetaAboveLeaf0111221331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01112213)) = true := by + have h : ((childLH (childHH thetaAboveCell01112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01112213)) h +theorem e24KC2ThetaAboveLeaf0111221332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01112213)) = true := by + have h : ((childHL (childHH thetaAboveCell01112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01112213)) h +theorem e24KC2ThetaAboveLeaf0111221333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01112213)) = true := by + have h : ((childHH (childHH thetaAboveCell01112213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01112213)) h +theorem e24KC2ThetaAboveLeaf011122200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112220) = true := by + have h : ((childLL thetaAboveCell01112220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01112220) h +theorem e24KC2ThetaAboveLeaf011122201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112220) = true := by + have h : ((childLH thetaAboveCell01112220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01112220) h +theorem e24KC2ThetaAboveLeaf011122202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112220) = true := by + have h : ((childHL thetaAboveCell01112220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01112220) h +theorem e24KC2ThetaAboveLeaf011122203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112220) = true := by + have h : ((childHH thetaAboveCell01112220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01112220) h +theorem e24KC2ThetaAboveLeaf011122210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112221) = true := by + have h : ((childLL thetaAboveCell01112221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01112221) h +theorem e24KC2ThetaAboveLeaf011122211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112221) = true := by + have h : ((childLH thetaAboveCell01112221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01112221) h +theorem e24KC2ThetaAboveLeaf011122212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112221) = true := by + have h : ((childHL thetaAboveCell01112221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01112221) h +theorem e24KC2ThetaAboveLeaf011122213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112221) = true := by + have h : ((childHH thetaAboveCell01112221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01112221) h +theorem e24KC2ThetaAboveLeaf01112222 : + adaptiveCoverCheck 11 thetaAboveCell01112222 = true := by + have h : (thetaAboveCell01112222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112222 h +theorem e24KC2ThetaAboveLeaf01112223 : + adaptiveCoverCheck 11 thetaAboveCell01112223 = true := by + have h : (thetaAboveCell01112223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112223 h +theorem e24KC2ThetaAboveLeaf011122300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112230) = true := by + have h : ((childLL thetaAboveCell01112230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01112230) h +theorem e24KC2ThetaAboveLeaf011122301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112230) = true := by + have h : ((childLH thetaAboveCell01112230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01112230) h +theorem e24KC2ThetaAboveLeaf011122302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112230) = true := by + have h : ((childHL thetaAboveCell01112230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01112230) h +theorem e24KC2ThetaAboveLeaf011122303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112230) = true := by + have h : ((childHH thetaAboveCell01112230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01112230) h +theorem e24KC2ThetaAboveLeaf011122310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112231) = true := by + have h : ((childLL thetaAboveCell01112231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01112231) h +theorem e24KC2ThetaAboveLeaf011122311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112231) = true := by + have h : ((childLH thetaAboveCell01112231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01112231) h +theorem e24KC2ThetaAboveLeaf011122312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112231) = true := by + have h : ((childHL thetaAboveCell01112231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01112231) h +theorem e24KC2ThetaAboveLeaf011122313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112231) = true := by + have h : ((childHH thetaAboveCell01112231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01112231) h +theorem e24KC2ThetaAboveLeaf01112232 : + adaptiveCoverCheck 11 thetaAboveCell01112232 = true := by + have h : (thetaAboveCell01112232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112232 h +theorem e24KC2ThetaAboveLeaf01112233 : + adaptiveCoverCheck 11 thetaAboveCell01112233 = true := by + have h : (thetaAboveCell01112233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112233 h +theorem e24KC2ThetaAboveLeaf011123000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112300) = true := by + have h : ((childLL thetaAboveCell01112300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01112300) h +theorem e24KC2ThetaAboveLeaf011123001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112300) = true := by + have h : ((childLH thetaAboveCell01112300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01112300) h +theorem e24KC2ThetaAboveLeaf0111230020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01112300)) = true := by + have h : ((childLL (childHL thetaAboveCell01112300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01112300)) h +theorem e24KC2ThetaAboveLeaf0111230021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01112300)) = true := by + have h : ((childLH (childHL thetaAboveCell01112300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01112300)) h +theorem e24KC2ThetaAboveLeaf0111230022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01112300)) = true := by + have h : ((childHL (childHL thetaAboveCell01112300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01112300)) h +theorem e24KC2ThetaAboveLeaf0111230023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01112300)) = true := by + have h : ((childHH (childHL thetaAboveCell01112300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01112300)) h +theorem e24KC2ThetaAboveLeaf0111230030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01112300)) = true := by + have h : ((childLL (childHH thetaAboveCell01112300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01112300)) h +theorem e24KC2ThetaAboveLeaf0111230031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01112300)) = true := by + have h : ((childLH (childHH thetaAboveCell01112300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01112300)) h +theorem e24KC2ThetaAboveLeaf0111230032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01112300)) = true := by + have h : ((childHL (childHH thetaAboveCell01112300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01112300)) h +theorem e24KC2ThetaAboveLeaf0111230033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01112300)) = true := by + have h : ((childHH (childHH thetaAboveCell01112300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01112300)) h +theorem e24KC2ThetaAboveLeaf011123010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112301) = true := by + have h : ((childLL thetaAboveCell01112301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01112301) h +theorem e24KC2ThetaAboveLeaf011123011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112301) = true := by + have h : ((childLH thetaAboveCell01112301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01112301) h +theorem e24KC2ThetaAboveLeaf0111230120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01112301)) = true := by + have h : ((childLL (childHL thetaAboveCell01112301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01112301)) h +theorem e24KC2ThetaAboveLeaf0111230121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01112301)) = true := by + have h : ((childLH (childHL thetaAboveCell01112301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01112301)) h +theorem e24KC2ThetaAboveLeaf0111230122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01112301)) = true := by + have h : ((childHL (childHL thetaAboveCell01112301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01112301)) h +theorem e24KC2ThetaAboveLeaf0111230123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01112301)) = true := by + have h : ((childHH (childHL thetaAboveCell01112301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01112301)) h +theorem e24KC2ThetaAboveLeaf0111230130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01112301)) = true := by + have h : ((childLL (childHH thetaAboveCell01112301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01112301)) h +theorem e24KC2ThetaAboveLeaf0111230131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01112301)) = true := by + have h : ((childLH (childHH thetaAboveCell01112301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01112301)) h +theorem e24KC2ThetaAboveLeaf0111230132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01112301)) = true := by + have h : ((childHL (childHH thetaAboveCell01112301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01112301)) h +theorem e24KC2ThetaAboveLeaf0111230133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01112301)) = true := by + have h : ((childHH (childHH thetaAboveCell01112301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01112301)) h +theorem e24KC2ThetaAboveLeaf0111230200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01112302)) = true := by + have h : ((childLL (childLL thetaAboveCell01112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01112302)) h +theorem e24KC2ThetaAboveLeaf0111230201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01112302)) = true := by + have h : ((childLH (childLL thetaAboveCell01112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01112302)) h +theorem e24KC2ThetaAboveLeaf0111230202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01112302)) = true := by + have h : ((childHL (childLL thetaAboveCell01112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01112302)) h +theorem e24KC2ThetaAboveLeaf0111230203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01112302)) = true := by + have h : ((childHH (childLL thetaAboveCell01112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01112302)) h +theorem e24KC2ThetaAboveLeaf0111230210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01112302)) = true := by + have h : ((childLL (childLH thetaAboveCell01112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01112302)) h +theorem e24KC2ThetaAboveLeaf0111230211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01112302)) = true := by + have h : ((childLH (childLH thetaAboveCell01112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01112302)) h +theorem e24KC2ThetaAboveLeaf0111230212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01112302)) = true := by + have h : ((childHL (childLH thetaAboveCell01112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01112302)) h +theorem e24KC2ThetaAboveLeaf0111230213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01112302)) = true := by + have h : ((childHH (childLH thetaAboveCell01112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01112302)) h +theorem e24KC2ThetaAboveLeaf0111230220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01112302)) = true := by + have h : ((childLL (childHL thetaAboveCell01112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01112302)) h +theorem e24KC2ThetaAboveLeaf0111230221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01112302)) = true := by + have h : ((childLH (childHL thetaAboveCell01112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01112302)) h +theorem e24KC2ThetaAboveLeaf0111230222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01112302)) = true := by + have h : ((childHL (childHL thetaAboveCell01112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01112302)) h +theorem e24KC2ThetaAboveLeaf0111230223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01112302)) = true := by + have h : ((childHH (childHL thetaAboveCell01112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01112302)) h +theorem e24KC2ThetaAboveLeaf0111230230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01112302)) = true := by + have h : ((childLL (childHH thetaAboveCell01112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01112302)) h +theorem e24KC2ThetaAboveLeaf0111230231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01112302)) = true := by + have h : ((childLH (childHH thetaAboveCell01112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01112302)) h +theorem e24KC2ThetaAboveLeaf0111230232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01112302)) = true := by + have h : ((childHL (childHH thetaAboveCell01112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01112302)) h +theorem e24KC2ThetaAboveLeaf0111230233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01112302)) = true := by + have h : ((childHH (childHH thetaAboveCell01112302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01112302)) h +theorem e24KC2ThetaAboveLeaf0111230300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01112303)) = true := by + have h : ((childLL (childLL thetaAboveCell01112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01112303)) h +theorem e24KC2ThetaAboveLeaf0111230301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01112303)) = true := by + have h : ((childLH (childLL thetaAboveCell01112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01112303)) h +theorem e24KC2ThetaAboveLeaf0111230302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01112303)) = true := by + have h : ((childHL (childLL thetaAboveCell01112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01112303)) h +theorem e24KC2ThetaAboveLeaf0111230303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01112303)) = true := by + have h : ((childHH (childLL thetaAboveCell01112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01112303)) h +theorem e24KC2ThetaAboveLeaf0111230310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01112303)) = true := by + have h : ((childLL (childLH thetaAboveCell01112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01112303)) h +theorem e24KC2ThetaAboveLeaf0111230311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01112303)) = true := by + have h : ((childLH (childLH thetaAboveCell01112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01112303)) h +theorem e24KC2ThetaAboveLeaf0111230312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01112303)) = true := by + have h : ((childHL (childLH thetaAboveCell01112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01112303)) h +theorem e24KC2ThetaAboveLeaf0111230313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01112303)) = true := by + have h : ((childHH (childLH thetaAboveCell01112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01112303)) h +theorem e24KC2ThetaAboveLeaf0111230320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01112303)) = true := by + have h : ((childLL (childHL thetaAboveCell01112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01112303)) h +theorem e24KC2ThetaAboveLeaf0111230321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01112303)) = true := by + have h : ((childLH (childHL thetaAboveCell01112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01112303)) h +theorem e24KC2ThetaAboveLeaf0111230322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01112303)) = true := by + have h : ((childHL (childHL thetaAboveCell01112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01112303)) h +theorem e24KC2ThetaAboveLeaf0111230323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01112303)) = true := by + have h : ((childHH (childHL thetaAboveCell01112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01112303)) h +theorem e24KC2ThetaAboveLeaf0111230330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01112303)) = true := by + have h : ((childLL (childHH thetaAboveCell01112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01112303)) h +theorem e24KC2ThetaAboveLeaf0111230331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01112303)) = true := by + have h : ((childLH (childHH thetaAboveCell01112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01112303)) h +theorem e24KC2ThetaAboveLeaf0111230332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01112303)) = true := by + have h : ((childHL (childHH thetaAboveCell01112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01112303)) h +theorem e24KC2ThetaAboveLeaf0111230333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01112303)) = true := by + have h : ((childHH (childHH thetaAboveCell01112303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01112303)) h +theorem e24KC2ThetaAboveLeaf011123100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112310) = true := by + have h : ((childLL thetaAboveCell01112310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01112310) h +theorem e24KC2ThetaAboveLeaf011123101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112310) = true := by + have h : ((childLH thetaAboveCell01112310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01112310) h +theorem e24KC2ThetaAboveLeaf0111231020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01112310)) = true := by + have h : ((childLL (childHL thetaAboveCell01112310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01112310)) h +theorem e24KC2ThetaAboveLeaf0111231021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01112310)) = true := by + have h : ((childLH (childHL thetaAboveCell01112310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01112310)) h +theorem e24KC2ThetaAboveLeaf0111231022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01112310)) = true := by + have h : ((childHL (childHL thetaAboveCell01112310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01112310)) h +theorem e24KC2ThetaAboveLeaf0111231023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01112310)) = true := by + have h : ((childHH (childHL thetaAboveCell01112310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01112310)) h +theorem e24KC2ThetaAboveLeaf0111231030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01112310)) = true := by + have h : ((childLL (childHH thetaAboveCell01112310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01112310)) h +theorem e24KC2ThetaAboveLeaf0111231031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01112310)) = true := by + have h : ((childLH (childHH thetaAboveCell01112310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01112310)) h +theorem e24KC2ThetaAboveLeaf0111231032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01112310)) = true := by + have h : ((childHL (childHH thetaAboveCell01112310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01112310)) h +theorem e24KC2ThetaAboveLeaf0111231033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01112310)) = true := by + have h : ((childHH (childHH thetaAboveCell01112310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01112310)) h +theorem e24KC2ThetaAboveLeaf011123110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112311) = true := by + have h : ((childLL thetaAboveCell01112311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01112311) h +theorem e24KC2ThetaAboveLeaf011123111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112311) = true := by + have h : ((childLH thetaAboveCell01112311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01112311) h +theorem e24KC2ThetaAboveLeaf0111231120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01112311)) = true := by + have h : ((childLL (childHL thetaAboveCell01112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01112311)) h +theorem e24KC2ThetaAboveLeaf0111231121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01112311)) = true := by + have h : ((childLH (childHL thetaAboveCell01112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01112311)) h +theorem e24KC2ThetaAboveLeaf0111231122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01112311)) = true := by + have h : ((childHL (childHL thetaAboveCell01112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01112311)) h +theorem e24KC2ThetaAboveLeaf0111231123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01112311)) = true := by + have h : ((childHH (childHL thetaAboveCell01112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01112311)) h +theorem e24KC2ThetaAboveLeaf0111231130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01112311)) = true := by + have h : ((childLL (childHH thetaAboveCell01112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01112311)) h +theorem e24KC2ThetaAboveLeaf0111231131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01112311)) = true := by + have h : ((childLH (childHH thetaAboveCell01112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01112311)) h +theorem e24KC2ThetaAboveLeaf0111231132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01112311)) = true := by + have h : ((childHL (childHH thetaAboveCell01112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01112311)) h +theorem e24KC2ThetaAboveLeaf0111231133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01112311)) = true := by + have h : ((childHH (childHH thetaAboveCell01112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01112311)) h +theorem e24KC2ThetaAboveLeaf0111231200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01112312)) = true := by + have h : ((childLL (childLL thetaAboveCell01112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01112312)) h +theorem e24KC2ThetaAboveLeaf0111231201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01112312)) = true := by + have h : ((childLH (childLL thetaAboveCell01112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01112312)) h +theorem e24KC2ThetaAboveLeaf0111231202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01112312)) = true := by + have h : ((childHL (childLL thetaAboveCell01112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01112312)) h +theorem e24KC2ThetaAboveLeaf0111231203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01112312)) = true := by + have h : ((childHH (childLL thetaAboveCell01112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01112312)) h +theorem e24KC2ThetaAboveLeaf0111231210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01112312)) = true := by + have h : ((childLL (childLH thetaAboveCell01112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01112312)) h +theorem e24KC2ThetaAboveLeaf0111231211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01112312)) = true := by + have h : ((childLH (childLH thetaAboveCell01112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01112312)) h +theorem e24KC2ThetaAboveLeaf0111231212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01112312)) = true := by + have h : ((childHL (childLH thetaAboveCell01112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01112312)) h +theorem e24KC2ThetaAboveLeaf0111231213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01112312)) = true := by + have h : ((childHH (childLH thetaAboveCell01112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01112312)) h +theorem e24KC2ThetaAboveLeaf0111231220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01112312)) = true := by + have h : ((childLL (childHL thetaAboveCell01112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01112312)) h +theorem e24KC2ThetaAboveLeaf0111231221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01112312)) = true := by + have h : ((childLH (childHL thetaAboveCell01112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01112312)) h +theorem e24KC2ThetaAboveLeaf0111231222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01112312)) = true := by + have h : ((childHL (childHL thetaAboveCell01112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01112312)) h +theorem e24KC2ThetaAboveLeaf0111231223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01112312)) = true := by + have h : ((childHH (childHL thetaAboveCell01112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01112312)) h +theorem e24KC2ThetaAboveLeaf0111231230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01112312)) = true := by + have h : ((childLL (childHH thetaAboveCell01112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01112312)) h +theorem e24KC2ThetaAboveLeaf0111231231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01112312)) = true := by + have h : ((childLH (childHH thetaAboveCell01112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01112312)) h +theorem e24KC2ThetaAboveLeaf0111231232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01112312)) = true := by + have h : ((childHL (childHH thetaAboveCell01112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01112312)) h +theorem e24KC2ThetaAboveLeaf0111231233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01112312)) = true := by + have h : ((childHH (childHH thetaAboveCell01112312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01112312)) h +theorem e24KC2ThetaAboveLeaf0111231300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01112313)) = true := by + have h : ((childLL (childLL thetaAboveCell01112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01112313)) h +theorem e24KC2ThetaAboveLeaf0111231301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01112313)) = true := by + have h : ((childLH (childLL thetaAboveCell01112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01112313)) h +theorem e24KC2ThetaAboveLeaf0111231302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01112313)) = true := by + have h : ((childHL (childLL thetaAboveCell01112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01112313)) h +theorem e24KC2ThetaAboveLeaf0111231303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01112313)) = true := by + have h : ((childHH (childLL thetaAboveCell01112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01112313)) h +theorem e24KC2ThetaAboveLeaf0111231310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01112313)) = true := by + have h : ((childLL (childLH thetaAboveCell01112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01112313)) h +theorem e24KC2ThetaAboveLeaf0111231311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01112313)) = true := by + have h : ((childLH (childLH thetaAboveCell01112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01112313)) h +theorem e24KC2ThetaAboveLeaf0111231312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01112313)) = true := by + have h : ((childHL (childLH thetaAboveCell01112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01112313)) h +theorem e24KC2ThetaAboveLeaf0111231313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01112313)) = true := by + have h : ((childHH (childLH thetaAboveCell01112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01112313)) h +theorem e24KC2ThetaAboveLeaf0111231320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01112313)) = true := by + have h : ((childLL (childHL thetaAboveCell01112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01112313)) h +theorem e24KC2ThetaAboveLeaf0111231321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01112313)) = true := by + have h : ((childLH (childHL thetaAboveCell01112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01112313)) h +theorem e24KC2ThetaAboveLeaf0111231322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01112313)) = true := by + have h : ((childHL (childHL thetaAboveCell01112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01112313)) h +theorem e24KC2ThetaAboveLeaf0111231323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01112313)) = true := by + have h : ((childHH (childHL thetaAboveCell01112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01112313)) h +theorem e24KC2ThetaAboveLeaf0111231330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01112313)) = true := by + have h : ((childLL (childHH thetaAboveCell01112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01112313)) h +theorem e24KC2ThetaAboveLeaf0111231331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01112313)) = true := by + have h : ((childLH (childHH thetaAboveCell01112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01112313)) h +theorem e24KC2ThetaAboveLeaf0111231332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01112313)) = true := by + have h : ((childHL (childHH thetaAboveCell01112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01112313)) h +theorem e24KC2ThetaAboveLeaf0111231333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01112313)) = true := by + have h : ((childHH (childHH thetaAboveCell01112313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01112313)) h +theorem e24KC2ThetaAboveLeaf011123200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112320) = true := by + have h : ((childLL thetaAboveCell01112320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01112320) h +theorem e24KC2ThetaAboveLeaf011123201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112320) = true := by + have h : ((childLH thetaAboveCell01112320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01112320) h +theorem e24KC2ThetaAboveLeaf011123202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112320) = true := by + have h : ((childHL thetaAboveCell01112320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01112320) h +theorem e24KC2ThetaAboveLeaf011123203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112320) = true := by + have h : ((childHH thetaAboveCell01112320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01112320) h +theorem e24KC2ThetaAboveLeaf011123210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112321) = true := by + have h : ((childLL thetaAboveCell01112321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01112321) h +theorem e24KC2ThetaAboveLeaf011123211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112321) = true := by + have h : ((childLH thetaAboveCell01112321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01112321) h +theorem e24KC2ThetaAboveLeaf011123212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112321) = true := by + have h : ((childHL thetaAboveCell01112321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01112321) h +theorem e24KC2ThetaAboveLeaf011123213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112321) = true := by + have h : ((childHH thetaAboveCell01112321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01112321) h +theorem e24KC2ThetaAboveLeaf01112322 : + adaptiveCoverCheck 11 thetaAboveCell01112322 = true := by + have h : (thetaAboveCell01112322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112322 h +theorem e24KC2ThetaAboveLeaf01112323 : + adaptiveCoverCheck 11 thetaAboveCell01112323 = true := by + have h : (thetaAboveCell01112323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112323 h +theorem e24KC2ThetaAboveLeaf011123300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112330) = true := by + have h : ((childLL thetaAboveCell01112330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01112330) h +theorem e24KC2ThetaAboveLeaf011123301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112330) = true := by + have h : ((childLH thetaAboveCell01112330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01112330) h +theorem e24KC2ThetaAboveLeaf011123302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112330) = true := by + have h : ((childHL thetaAboveCell01112330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01112330) h +theorem e24KC2ThetaAboveLeaf011123303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112330) = true := by + have h : ((childHH thetaAboveCell01112330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01112330) h +theorem e24KC2ThetaAboveLeaf011123310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112331) = true := by + have h : ((childLL thetaAboveCell01112331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01112331) h +theorem e24KC2ThetaAboveLeaf011123311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112331) = true := by + have h : ((childLH thetaAboveCell01112331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01112331) h +theorem e24KC2ThetaAboveLeaf011123312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112331) = true := by + have h : ((childHL thetaAboveCell01112331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01112331) h +theorem e24KC2ThetaAboveLeaf011123313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112331) = true := by + have h : ((childHH thetaAboveCell01112331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01112331) h +theorem e24KC2ThetaAboveLeaf01112332 : + adaptiveCoverCheck 11 thetaAboveCell01112332 = true := by + have h : (thetaAboveCell01112332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112332 h +theorem e24KC2ThetaAboveLeaf01112333 : + adaptiveCoverCheck 11 thetaAboveCell01112333 = true := by + have h : (thetaAboveCell01112333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01112333 h +theorem e24KC2ThetaAboveLeaf0111300 : + adaptiveCoverCheck 12 (childLL (childLL (childHH thetaAboveCell0111))) = true := by + have h : ((childLL (childLL (childHH thetaAboveCell0111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHH thetaAboveCell0111))) h +theorem e24KC2ThetaAboveLeaf0111301 : + adaptiveCoverCheck 12 (childLH (childLL (childHH thetaAboveCell0111))) = true := by + have h : ((childLH (childLL (childHH thetaAboveCell0111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHH thetaAboveCell0111))) h +theorem e24KC2ThetaAboveLeaf01113020 : + adaptiveCoverCheck 11 thetaAboveCell01113020 = true := by + have h : (thetaAboveCell01113020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113020 h +theorem e24KC2ThetaAboveLeaf01113021 : + adaptiveCoverCheck 11 thetaAboveCell01113021 = true := by + have h : (thetaAboveCell01113021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113021 h +theorem e24KC2ThetaAboveLeaf01113022 : + adaptiveCoverCheck 11 thetaAboveCell01113022 = true := by + have h : (thetaAboveCell01113022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113022 h +theorem e24KC2ThetaAboveLeaf01113023 : + adaptiveCoverCheck 11 thetaAboveCell01113023 = true := by + have h : (thetaAboveCell01113023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113023 h +theorem e24KC2ThetaAboveLeaf01113030 : + adaptiveCoverCheck 11 thetaAboveCell01113030 = true := by + have h : (thetaAboveCell01113030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113030 h +theorem e24KC2ThetaAboveLeaf01113031 : + adaptiveCoverCheck 11 thetaAboveCell01113031 = true := by + have h : (thetaAboveCell01113031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113031 h +theorem e24KC2ThetaAboveLeaf01113032 : + adaptiveCoverCheck 11 thetaAboveCell01113032 = true := by + have h : (thetaAboveCell01113032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113032 h +theorem e24KC2ThetaAboveLeaf01113033 : + adaptiveCoverCheck 11 thetaAboveCell01113033 = true := by + have h : (thetaAboveCell01113033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113033 h +theorem e24KC2ThetaAboveLeaf0111310 : + adaptiveCoverCheck 12 (childLL (childLH (childHH thetaAboveCell0111))) = true := by + have h : ((childLL (childLH (childHH thetaAboveCell0111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHH thetaAboveCell0111))) h +theorem e24KC2ThetaAboveLeaf0111311 : + adaptiveCoverCheck 12 (childLH (childLH (childHH thetaAboveCell0111))) = true := by + have h : ((childLH (childLH (childHH thetaAboveCell0111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHH thetaAboveCell0111))) h +theorem e24KC2ThetaAboveLeaf01113120 : + adaptiveCoverCheck 11 thetaAboveCell01113120 = true := by + have h : (thetaAboveCell01113120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113120 h +theorem e24KC2ThetaAboveLeaf01113121 : + adaptiveCoverCheck 11 thetaAboveCell01113121 = true := by + have h : (thetaAboveCell01113121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113121 h +theorem e24KC2ThetaAboveLeaf01113122 : + adaptiveCoverCheck 11 thetaAboveCell01113122 = true := by + have h : (thetaAboveCell01113122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113122 h +theorem e24KC2ThetaAboveLeaf01113123 : + adaptiveCoverCheck 11 thetaAboveCell01113123 = true := by + have h : (thetaAboveCell01113123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113123 h +theorem e24KC2ThetaAboveLeaf01113130 : + adaptiveCoverCheck 11 thetaAboveCell01113130 = true := by + have h : (thetaAboveCell01113130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113130 h +theorem e24KC2ThetaAboveLeaf01113131 : + adaptiveCoverCheck 11 thetaAboveCell01113131 = true := by + have h : (thetaAboveCell01113131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113131 h +theorem e24KC2ThetaAboveLeaf01113132 : + adaptiveCoverCheck 11 thetaAboveCell01113132 = true := by + have h : (thetaAboveCell01113132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113132 h +theorem e24KC2ThetaAboveLeaf01113133 : + adaptiveCoverCheck 11 thetaAboveCell01113133 = true := by + have h : (thetaAboveCell01113133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113133 h +theorem e24KC2ThetaAboveLeaf011132000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113200) = true := by + have h : ((childLL thetaAboveCell01113200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01113200) h +theorem e24KC2ThetaAboveLeaf011132001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113200) = true := by + have h : ((childLH thetaAboveCell01113200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01113200) h +theorem e24KC2ThetaAboveLeaf0111320020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01113200)) = true := by + have h : ((childLL (childHL thetaAboveCell01113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01113200)) h +theorem e24KC2ThetaAboveLeaf0111320021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01113200)) = true := by + have h : ((childLH (childHL thetaAboveCell01113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01113200)) h +theorem e24KC2ThetaAboveLeaf0111320022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01113200)) = true := by + have h : ((childHL (childHL thetaAboveCell01113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01113200)) h +theorem e24KC2ThetaAboveLeaf0111320023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01113200)) = true := by + have h : ((childHH (childHL thetaAboveCell01113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01113200)) h +theorem e24KC2ThetaAboveLeaf0111320030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01113200)) = true := by + have h : ((childLL (childHH thetaAboveCell01113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01113200)) h +theorem e24KC2ThetaAboveLeaf0111320031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01113200)) = true := by + have h : ((childLH (childHH thetaAboveCell01113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01113200)) h +theorem e24KC2ThetaAboveLeaf0111320032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01113200)) = true := by + have h : ((childHL (childHH thetaAboveCell01113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01113200)) h +theorem e24KC2ThetaAboveLeaf0111320033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01113200)) = true := by + have h : ((childHH (childHH thetaAboveCell01113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01113200)) h +theorem e24KC2ThetaAboveLeaf011132010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113201) = true := by + have h : ((childLL thetaAboveCell01113201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01113201) h +theorem e24KC2ThetaAboveLeaf011132011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113201) = true := by + have h : ((childLH thetaAboveCell01113201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01113201) h +theorem e24KC2ThetaAboveLeaf0111320120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01113201)) = true := by + have h : ((childLL (childHL thetaAboveCell01113201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01113201)) h +theorem e24KC2ThetaAboveLeaf0111320121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01113201)) = true := by + have h : ((childLH (childHL thetaAboveCell01113201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01113201)) h +theorem e24KC2ThetaAboveLeaf0111320122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01113201)) = true := by + have h : ((childHL (childHL thetaAboveCell01113201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01113201)) h +theorem e24KC2ThetaAboveLeaf0111320123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01113201)) = true := by + have h : ((childHH (childHL thetaAboveCell01113201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01113201)) h +theorem e24KC2ThetaAboveLeaf0111320130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01113201)) = true := by + have h : ((childLL (childHH thetaAboveCell01113201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01113201)) h +theorem e24KC2ThetaAboveLeaf0111320131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01113201)) = true := by + have h : ((childLH (childHH thetaAboveCell01113201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01113201)) h +theorem e24KC2ThetaAboveLeaf0111320132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01113201)) = true := by + have h : ((childHL (childHH thetaAboveCell01113201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01113201)) h +theorem e24KC2ThetaAboveLeaf0111320133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01113201)) = true := by + have h : ((childHH (childHH thetaAboveCell01113201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01113201)) h +theorem e24KC2ThetaAboveLeaf0111320200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01113202)) = true := by + have h : ((childLL (childLL thetaAboveCell01113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01113202)) h +theorem e24KC2ThetaAboveLeaf0111320201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01113202)) = true := by + have h : ((childLH (childLL thetaAboveCell01113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01113202)) h +theorem e24KC2ThetaAboveLeaf0111320202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01113202)) = true := by + have h : ((childHL (childLL thetaAboveCell01113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01113202)) h +theorem e24KC2ThetaAboveLeaf0111320203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01113202)) = true := by + have h : ((childHH (childLL thetaAboveCell01113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01113202)) h +theorem e24KC2ThetaAboveLeaf0111320210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01113202)) = true := by + have h : ((childLL (childLH thetaAboveCell01113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01113202)) h +theorem e24KC2ThetaAboveLeaf0111320211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01113202)) = true := by + have h : ((childLH (childLH thetaAboveCell01113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01113202)) h + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC6ProofBatchA7de3be3b4ab1789`. +* `KernelOnly.PartE.E24KC6ProofBatchAad74ad127e30429`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC6 explicit proof-producing certificate batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells37514173c1 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells37514173c1 + +open CertificateCells37514173c1 +theorem e24KC2ThetaAboveLeaf0011331022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00113310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00113310)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00113310))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00113310))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00113310))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00113310))) h) +theorem e24KC2ThetaAboveLeaf0011331023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00113310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00113310)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00113310))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00113310))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00113310))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00113310))) h) +theorem e24KC2ThetaAboveLeaf0011331032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00113310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00113310)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00113310))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00113310))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00113310))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00113310))) h) +theorem e24KC2ThetaAboveLeaf0011331033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00113310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00113310)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00113310))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00113310))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00113310))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00113310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00113310))) h) +theorem e24KC2ThetaAboveLeaf0011331122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00113311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00113311)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00113311))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00113311))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00113311))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00113311))) h) +theorem e24KC2ThetaAboveLeaf0011331123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00113311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00113311)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00113311))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00113311))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00113311))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00113311))) h) +theorem e24KC2ThetaAboveLeaf0011331132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00113311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00113311)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00113311))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00113311))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00113311))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00113311))) h) +theorem e24KC2ThetaAboveLeaf0011331133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00113311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00113311)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00113311))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00113311))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00113311))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00113311))) h) +theorem e24KC2ThetaAboveLeaf0011331200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00113312)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00113312)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00113312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00113312))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00113312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00113312))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00113312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00113312))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00113312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00113312))) h) +theorem e24KC2ThetaAboveLeaf0011331201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00113312)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00113312)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00113312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00113312))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00113312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00113312))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00113312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00113312))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00113312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00113312))) h) +theorem e24KC2ThetaAboveLeaf0011331210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00113312)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00113312)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00113312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00113312))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00113312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00113312))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00113312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00113312))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00113312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00113312))) h) +theorem e24KC2ThetaAboveLeaf0011331211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00113312)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00113312)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00113312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00113312))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00113312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00113312))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00113312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00113312))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00113312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00113312))) h) +theorem e24KC2ThetaAboveLeaf0011331300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00113313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00113313)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00113313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00113313))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00113313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00113313))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00113313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00113313))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00113313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00113313))) h) +theorem e24KC2ThetaAboveLeaf0011331301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00113313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00113313)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00113313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00113313))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00113313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00113313))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00113313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00113313))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00113313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00113313))) h) +theorem e24KC2ThetaAboveLeaf0011331310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00113313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00113313)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00113313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00113313))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00113313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00113313))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00113313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00113313))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00113313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00113313))) h) +theorem e24KC2ThetaAboveLeaf0011331311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00113313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00113313)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00113313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00113313))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00113313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00113313))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00113313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00113313))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00113313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00113313))) h) +theorem e24KC2ThetaAboveLeaf0100220022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01002200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell01002200)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell01002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell01002200))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell01002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell01002200))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell01002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell01002200))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell01002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell01002200))) h) +theorem e24KC2ThetaAboveLeaf0100220023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01002200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell01002200)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell01002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell01002200))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell01002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell01002200))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell01002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell01002200))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell01002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell01002200))) h) +theorem e24KC2ThetaAboveLeaf0100220032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01002200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell01002200)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell01002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell01002200))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell01002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell01002200))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell01002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell01002200))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell01002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell01002200))) h) +theorem e24KC2ThetaAboveLeaf0100220033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01002200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell01002200)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell01002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell01002200))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell01002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell01002200))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell01002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell01002200))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell01002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell01002200))) h) +theorem e24KC2ThetaAboveLeaf0100220122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01002201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell01002201)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell01002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell01002201))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell01002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell01002201))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell01002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell01002201))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell01002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell01002201))) h) +theorem e24KC2ThetaAboveLeaf0100220123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01002201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell01002201)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell01002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell01002201))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell01002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell01002201))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell01002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell01002201))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell01002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell01002201))) h) +theorem e24KC2ThetaAboveLeaf0100220132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01002201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell01002201)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell01002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell01002201))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell01002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell01002201))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell01002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell01002201))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell01002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell01002201))) h) +theorem e24KC2ThetaAboveLeaf0100220133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01002201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell01002201)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell01002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell01002201))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell01002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell01002201))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell01002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell01002201))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell01002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell01002201))) h) +theorem e24KC2ThetaAboveLeaf0100220200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01002202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell01002202)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell01002202))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell01002202))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell01002202))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell01002202))) h) +theorem e24KC2ThetaAboveLeaf0100220201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01002202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell01002202)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell01002202))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell01002202))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell01002202))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell01002202))) h) +theorem e24KC2ThetaAboveLeaf0100220210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01002202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell01002202)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell01002202))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell01002202))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell01002202))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell01002202))) h) +theorem e24KC2ThetaAboveLeaf0100220211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01002202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell01002202)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell01002202))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell01002202))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell01002202))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell01002202))) h) +theorem e24KC2ThetaAboveLeaf0100220212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01002202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell01002202)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell01002202))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell01002202))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLH + thetaAboveCell01002202))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLH + thetaAboveCell01002202))) h) +theorem e24KC2ThetaAboveLeaf0100220213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01002202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell01002202)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell01002202))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell01002202))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLH + thetaAboveCell01002202))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell01002202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLH + thetaAboveCell01002202))) h) +theorem e24KC2ThetaAboveLeaf0100220300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01002203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell01002203)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell01002203))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell01002203))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell01002203))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell01002203))) h) +theorem e24KC2ThetaAboveLeaf0100220301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01002203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell01002203)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell01002203))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell01002203))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell01002203))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell01002203))) h) +theorem e24KC2ThetaAboveLeaf0100220302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01002203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell01002203)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell01002203))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell01002203))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLL + thetaAboveCell01002203))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLL + thetaAboveCell01002203))) h) +theorem e24KC2ThetaAboveLeaf0100220303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01002203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell01002203)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell01002203))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell01002203))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLL + thetaAboveCell01002203))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLL + thetaAboveCell01002203))) h) +theorem e24KC2ThetaAboveLeaf0100220310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01002203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell01002203)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell01002203))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell01002203))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell01002203))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell01002203))) h) +theorem e24KC2ThetaAboveLeaf0100220311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01002203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell01002203)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell01002203))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell01002203))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell01002203))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell01002203))) h) +theorem e24KC2ThetaAboveLeaf0100220312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01002203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell01002203)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell01002203))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell01002203))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLH + thetaAboveCell01002203))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLH + thetaAboveCell01002203))) h) +theorem e24KC2ThetaAboveLeaf0100220313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01002203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell01002203)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell01002203))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell01002203))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLH + thetaAboveCell01002203))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell01002203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLH + thetaAboveCell01002203))) h) +theorem e24KC2ThetaAboveLeaf0100221022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01002210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell01002210)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell01002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell01002210))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell01002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell01002210))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell01002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell01002210))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell01002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell01002210))) h) +theorem e24KC2ThetaAboveLeaf0100221023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01002210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell01002210)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell01002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell01002210))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell01002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell01002210))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell01002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell01002210))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell01002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell01002210))) h) +theorem e24KC2ThetaAboveLeaf0100221032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01002210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell01002210)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell01002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell01002210))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell01002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell01002210))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell01002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell01002210))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell01002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell01002210))) h) +theorem e24KC2ThetaAboveLeaf0100221033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01002210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell01002210)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell01002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell01002210))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell01002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell01002210))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell01002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell01002210))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell01002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell01002210))) h) +theorem e24KC2ThetaAboveLeaf0100221122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01002211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell01002211)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell01002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell01002211))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell01002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell01002211))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell01002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell01002211))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell01002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell01002211))) h) +theorem e24KC2ThetaAboveLeaf0100221123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01002211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell01002211)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell01002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell01002211))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell01002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell01002211))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell01002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell01002211))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell01002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell01002211))) h) +theorem e24KC2ThetaAboveLeaf0100221132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01002211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell01002211)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell01002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell01002211))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell01002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell01002211))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell01002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell01002211))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell01002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell01002211))) h) +theorem e24KC2ThetaAboveLeaf0100221133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01002211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell01002211)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell01002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell01002211))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell01002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell01002211))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell01002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell01002211))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell01002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell01002211))) h) +theorem e24KC2ThetaAboveLeaf0100221200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01002212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell01002212)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell01002212))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell01002212))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell01002212))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell01002212))) h) +theorem e24KC2ThetaAboveLeaf0100221201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01002212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell01002212)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell01002212))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell01002212))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell01002212))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell01002212))) h) +theorem e24KC2ThetaAboveLeaf0100221202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01002212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell01002212)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell01002212))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell01002212))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLL + thetaAboveCell01002212))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLL + thetaAboveCell01002212))) h) +theorem e24KC2ThetaAboveLeaf0100221210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01002212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell01002212)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell01002212))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell01002212))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell01002212))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell01002212))) h) +theorem e24KC2ThetaAboveLeaf0100221211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01002212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell01002212)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell01002212))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell01002212))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell01002212))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell01002212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell01002212))) h) +theorem e24KC2ThetaAboveLeaf0100221300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01002213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell01002213)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell01002213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell01002213))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell01002213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell01002213))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell01002213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell01002213))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell01002213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell01002213))) h) +theorem e24KC2ThetaAboveLeaf0100221301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01002213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell01002213)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell01002213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell01002213))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell01002213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell01002213))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell01002213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell01002213))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell01002213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell01002213))) h) +theorem e24KC2ThetaAboveLeaf0100221310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01002213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell01002213)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell01002213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell01002213))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell01002213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell01002213))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell01002213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell01002213))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell01002213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell01002213))) h) +theorem e24KC2ThetaAboveLeaf0100221311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01002213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell01002213)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell01002213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell01002213))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell01002213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell01002213))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell01002213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell01002213))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell01002213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell01002213))) h) +theorem e24KC2ThetaAboveLeaf0100230022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01002300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell01002300)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell01002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell01002300))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell01002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell01002300))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell01002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell01002300))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell01002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell01002300))) h) +theorem e24KC2ThetaAboveLeaf0100230023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01002300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell01002300)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell01002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell01002300))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell01002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell01002300))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell01002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell01002300))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell01002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell01002300))) h) +theorem e24KC2ThetaAboveLeaf0100230032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01002300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell01002300)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell01002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell01002300))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell01002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell01002300))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell01002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell01002300))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell01002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell01002300))) h) +theorem e24KC2ThetaAboveLeaf0100230033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01002300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell01002300)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell01002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell01002300))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell01002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell01002300))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell01002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell01002300))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell01002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell01002300))) h) +theorem e24KC2ThetaAboveLeaf0100230122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01002301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell01002301)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell01002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell01002301))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell01002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell01002301))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell01002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell01002301))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell01002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell01002301))) h) +theorem e24KC2ThetaAboveLeaf0100230123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01002301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell01002301)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell01002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell01002301))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell01002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell01002301))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell01002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell01002301))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell01002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell01002301))) h) +theorem e24KC2ThetaAboveLeaf0100230132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01002301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell01002301)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell01002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell01002301))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell01002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell01002301))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell01002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell01002301))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell01002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell01002301))) h) +theorem e24KC2ThetaAboveLeaf0100230133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01002301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell01002301)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell01002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell01002301))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell01002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell01002301))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell01002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell01002301))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell01002301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell01002301))) h) +theorem e24KC2ThetaAboveLeaf0100230200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01002302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell01002302)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell01002302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell01002302))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell01002302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell01002302))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell01002302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell01002302))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell01002302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell01002302))) h) +theorem e24KC2ThetaAboveLeaf0100230201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01002302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell01002302)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell01002302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell01002302))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell01002302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell01002302))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell01002302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell01002302))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell01002302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell01002302))) h) +theorem e24KC2ThetaAboveLeaf0100230210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01002302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell01002302)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell01002302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell01002302))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell01002302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell01002302))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell01002302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell01002302))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell01002302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell01002302))) h) +theorem e24KC2ThetaAboveLeaf0100230211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01002302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell01002302)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell01002302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell01002302))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell01002302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell01002302))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell01002302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell01002302))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell01002302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell01002302))) h) +theorem e24KC2ThetaAboveLeaf0100230300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01002303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell01002303)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell01002303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell01002303))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell01002303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell01002303))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell01002303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell01002303))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell01002303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell01002303))) h) +theorem e24KC2ThetaAboveLeaf0100230301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01002303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell01002303)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell01002303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell01002303))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell01002303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell01002303))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell01002303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell01002303))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell01002303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell01002303))) h) +theorem e24KC2ThetaAboveLeaf0100230310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01002303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell01002303)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell01002303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell01002303))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell01002303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell01002303))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell01002303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell01002303))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell01002303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell01002303))) h) +theorem e24KC2ThetaAboveLeaf0100230311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01002303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell01002303)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell01002303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell01002303))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell01002303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell01002303))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell01002303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell01002303))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell01002303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell01002303))) h) +theorem e24KC2ThetaAboveLeaf0100231022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01002310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell01002310)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell01002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell01002310))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell01002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell01002310))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell01002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell01002310))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell01002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell01002310))) h) +theorem e24KC2ThetaAboveLeaf0100231023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01002310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell01002310)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell01002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell01002310))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell01002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell01002310))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell01002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell01002310))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell01002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell01002310))) h) +theorem e24KC2ThetaAboveLeaf0100231032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01002310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell01002310)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell01002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell01002310))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell01002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell01002310))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell01002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell01002310))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell01002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell01002310))) h) +theorem e24KC2ThetaAboveLeaf0100231033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01002310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell01002310)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell01002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell01002310))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell01002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell01002310))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell01002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell01002310))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell01002310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell01002310))) h) +theorem e24KC2ThetaAboveLeaf0100231122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01002311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell01002311)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell01002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell01002311))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell01002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell01002311))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell01002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell01002311))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell01002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell01002311))) h) +theorem e24KC2ThetaAboveLeaf0100231123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01002311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell01002311)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell01002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell01002311))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell01002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell01002311))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell01002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell01002311))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell01002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell01002311))) h) +theorem e24KC2ThetaAboveLeaf0100231132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01002311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell01002311)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell01002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell01002311))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell01002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell01002311))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell01002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell01002311))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell01002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell01002311))) h) +theorem e24KC2ThetaAboveLeaf0100231133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01002311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell01002311)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell01002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell01002311))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell01002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell01002311))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell01002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell01002311))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell01002311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell01002311))) h) +theorem e24KC2ThetaAboveLeaf0100320022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01003200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell01003200)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell01003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell01003200))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell01003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell01003200))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell01003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell01003200))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell01003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell01003200))) h) +theorem e24KC2ThetaAboveLeaf0100320023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01003200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell01003200)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell01003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell01003200))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell01003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell01003200))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell01003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell01003200))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell01003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell01003200))) h) +theorem e24KC2ThetaAboveLeaf0100320032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01003200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell01003200)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell01003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell01003200))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell01003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell01003200))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell01003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell01003200))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell01003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell01003200))) h) +theorem e24KC2ThetaAboveLeaf0100320033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01003200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell01003200)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell01003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell01003200))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell01003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell01003200))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell01003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell01003200))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell01003200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell01003200))) h) +theorem e24KC2ThetaAboveLeaf0100320122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01003201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell01003201)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell01003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell01003201))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell01003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell01003201))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell01003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell01003201))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell01003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell01003201))) h) +theorem e24KC2ThetaAboveLeaf0100320123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01003201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell01003201)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell01003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell01003201))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell01003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell01003201))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell01003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell01003201))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell01003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell01003201))) h) +theorem e24KC2ThetaAboveLeaf0100320132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01003201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell01003201)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell01003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell01003201))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell01003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell01003201))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell01003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell01003201))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell01003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell01003201))) h) +theorem e24KC2ThetaAboveLeaf0100320133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01003201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell01003201)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell01003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell01003201))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell01003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell01003201))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell01003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell01003201))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell01003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell01003201))) h) +theorem e24KC2ThetaBelowLeaf111030223 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103022) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11103022) + (by + have h : ((childLL (childHH thetaBelowCell11103022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11103022)) h) + (by + have h : ((childLH (childHH thetaBelowCell11103022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11103022)) h) + (by + have h : ((childHL (childHH thetaBelowCell11103022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11103022)) h) + (by + have h : ((childHH (childHH thetaBelowCell11103022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11103022)) h) +theorem e24KC2ThetaBelowLeaf111030232 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103023) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11103023) + (by + have h : ((childLL (childHL thetaBelowCell11103023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11103023)) h) + (by + have h : ((childLH (childHL thetaBelowCell11103023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11103023)) h) + (by + have h : ((childHL (childHL thetaBelowCell11103023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11103023)) h) + (by + have h : ((childHH (childHL thetaBelowCell11103023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11103023)) h) +theorem e24KC2ThetaBelowLeaf111030233 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103023) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11103023) + (by + have h : ((childLL (childHH thetaBelowCell11103023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11103023)) h) + (by + have h : ((childLH (childHH thetaBelowCell11103023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11103023)) h) + (by + have h : ((childHL (childHH thetaBelowCell11103023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11103023)) h) + (by + have h : ((childHH (childHH thetaBelowCell11103023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11103023)) h) +theorem e24KC2ThetaBelowLeaf111030312 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103031) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11103031) + (by + have h : ((childLL (childHL thetaBelowCell11103031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11103031)) h) + (by + have h : ((childLH (childHL thetaBelowCell11103031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11103031)) h) + (by + have h : ((childHL (childHL thetaBelowCell11103031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11103031)) h) + (by + have h : ((childHH (childHL thetaBelowCell11103031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11103031)) h) +theorem e24KC2ThetaBelowLeaf111030313 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103031) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11103031) + (by + have h : ((childLL (childHH thetaBelowCell11103031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11103031)) h) + (by + have h : ((childLH (childHH thetaBelowCell11103031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11103031)) h) + (by + have h : ((childHL (childHH thetaBelowCell11103031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11103031)) h) + (by + have h : ((childHH (childHH thetaBelowCell11103031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11103031)) h) +theorem e24KC2ThetaBelowLeaf111030320 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103032) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11103032) + (by + have h : ((childLL (childLL thetaBelowCell11103032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11103032)) h) + (by + have h : ((childLH (childLL thetaBelowCell11103032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11103032)) h) + (by + have h : ((childHL (childLL thetaBelowCell11103032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11103032)) h) + (by + have h : ((childHH (childLL thetaBelowCell11103032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11103032)) h) +theorem e24KC2ThetaBelowLeaf111030321 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103032) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11103032) + (by + have h : ((childLL (childLH thetaBelowCell11103032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11103032)) h) + (by + have h : ((childLH (childLH thetaBelowCell11103032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11103032)) h) + (by + have h : ((childHL (childLH thetaBelowCell11103032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11103032)) h) + (by + have h : ((childHH (childLH thetaBelowCell11103032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11103032)) h) +theorem e24KC2ThetaBelowLeaf111030322 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103032) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11103032) + (by + have h : ((childLL (childHL thetaBelowCell11103032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11103032)) h) + (by + have h : ((childLH (childHL thetaBelowCell11103032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11103032)) h) + (by + have h : ((childHL (childHL thetaBelowCell11103032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11103032)) h) + (by + have h : ((childHH (childHL thetaBelowCell11103032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11103032)) h) +theorem e24KC2ThetaBelowLeaf111030323 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103032) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11103032) + (by + have h : ((childLL (childHH thetaBelowCell11103032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11103032)) h) + (by + have h : ((childLH (childHH thetaBelowCell11103032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11103032)) h) + (by + have h : ((childHL (childHH thetaBelowCell11103032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11103032)) h) + (by + have h : ((childHH (childHH thetaBelowCell11103032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11103032)) h) +theorem e24KC2ThetaBelowLeaf111030330 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103033) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11103033) + (by + have h : ((childLL (childLL thetaBelowCell11103033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11103033)) h) + (by + have h : ((childLH (childLL thetaBelowCell11103033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11103033)) h) + (by + have h : ((childHL (childLL thetaBelowCell11103033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11103033)) h) + (by + have h : ((childHH (childLL thetaBelowCell11103033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11103033)) h) +theorem e24KC2ThetaBelowLeaf111030331 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103033) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11103033) + (by + have h : ((childLL (childLH thetaBelowCell11103033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11103033)) h) + (by + have h : ((childLH (childLH thetaBelowCell11103033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11103033)) h) + (by + have h : ((childHL (childLH thetaBelowCell11103033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11103033)) h) + (by + have h : ((childHH (childLH thetaBelowCell11103033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11103033)) h) +theorem e24KC2ThetaBelowLeaf111030332 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103033) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11103033) + (by + have h : ((childLL (childHL thetaBelowCell11103033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11103033)) h) + (by + have h : ((childLH (childHL thetaBelowCell11103033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11103033)) h) + (by + have h : ((childHL (childHL thetaBelowCell11103033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11103033)) h) + (by + have h : ((childHH (childHL thetaBelowCell11103033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11103033)) h) +theorem e24KC2ThetaBelowLeaf111030333 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103033) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11103033) + (by + have h : ((childLL (childHH thetaBelowCell11103033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11103033)) h) + (by + have h : ((childLH (childHH thetaBelowCell11103033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11103033)) h) + (by + have h : ((childHL (childHH thetaBelowCell11103033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11103033)) h) + (by + have h : ((childHH (childHH thetaBelowCell11103033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11103033)) h) +theorem e24KC2ThetaBelowLeaf111031202 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103120) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11103120) + (by + have h : ((childLL (childHL thetaBelowCell11103120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11103120)) h) + (by + have h : ((childLH (childHL thetaBelowCell11103120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11103120)) h) + (by + have h : ((childHL (childHL thetaBelowCell11103120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11103120)) h) + (by + have h : ((childHH (childHL thetaBelowCell11103120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11103120)) h) +theorem e24KC2ThetaBelowLeaf111031220 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103122) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11103122) + (by + have h : ((childLL (childLL thetaBelowCell11103122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11103122)) h) + (by + have h : ((childLH (childLL thetaBelowCell11103122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11103122)) h) + (by + have h : ((childHL (childLL thetaBelowCell11103122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11103122)) h) + (by + have h : ((childHH (childLL thetaBelowCell11103122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11103122)) h) +theorem e24KC2ThetaBelowLeaf111031221 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103122) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11103122) + (by + have h : ((childLL (childLH thetaBelowCell11103122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11103122)) h) + (by + have h : ((childLH (childLH thetaBelowCell11103122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11103122)) h) + (by + have h : ((childHL (childLH thetaBelowCell11103122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11103122)) h) + (by + have h : ((childHH (childLH thetaBelowCell11103122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11103122)) h) +theorem e24KC2ThetaBelowLeaf111031222 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103122) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11103122) + (by + have h : ((childLL (childHL thetaBelowCell11103122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11103122)) h) + (by + have h : ((childLH (childHL thetaBelowCell11103122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11103122)) h) + (by + have h : ((childHL (childHL thetaBelowCell11103122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11103122)) h) + (by + have h : ((childHH (childHL thetaBelowCell11103122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11103122)) h) +theorem e24KC2ThetaBelowLeaf111031223 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103122) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11103122) + (by + have h : ((childLL (childHH thetaBelowCell11103122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11103122)) h) + (by + have h : ((childLH (childHH thetaBelowCell11103122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11103122)) h) + (by + have h : ((childHL (childHH thetaBelowCell11103122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11103122)) h) + (by + have h : ((childHH (childHH thetaBelowCell11103122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11103122)) h) +theorem e24KC2ThetaBelowLeaf111031230 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103123) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11103123) + (by + have h : ((childLL (childLL thetaBelowCell11103123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11103123)) h) + (by + have h : ((childLH (childLL thetaBelowCell11103123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11103123)) h) + (by + have h : ((childHL (childLL thetaBelowCell11103123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11103123)) h) + (by + have h : ((childHH (childLL thetaBelowCell11103123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11103123)) h) +theorem e24KC2ThetaBelowLeaf111031231 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103123) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11103123) + (by + have h : ((childLL (childLH thetaBelowCell11103123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11103123)) h) + (by + have h : ((childLH (childLH thetaBelowCell11103123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11103123)) h) + (by + have h : ((childHL (childLH thetaBelowCell11103123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11103123)) h) + (by + have h : ((childHH (childLH thetaBelowCell11103123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11103123)) h) +theorem e24KC2ThetaBelowLeaf111031232 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103123) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11103123) + (by + have h : ((childLL (childHL thetaBelowCell11103123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11103123)) h) + (by + have h : ((childLH (childHL thetaBelowCell11103123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11103123)) h) + (by + have h : ((childHL (childHL thetaBelowCell11103123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11103123)) h) + (by + have h : ((childHH (childHL thetaBelowCell11103123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11103123)) h) +theorem e24KC2ThetaBelowLeaf111031233 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103123) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11103123) + (by + have h : ((childLL (childHH thetaBelowCell11103123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11103123)) h) + (by + have h : ((childLH (childHH thetaBelowCell11103123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11103123)) h) + (by + have h : ((childHL (childHH thetaBelowCell11103123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11103123)) h) + (by + have h : ((childHH (childHH thetaBelowCell11103123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11103123)) h) +theorem e24KC2ThetaBelowLeaf111031320 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103132) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11103132) + (by + have h : ((childLL (childLL thetaBelowCell11103132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11103132)) h) + (by + have h : ((childLH (childLL thetaBelowCell11103132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11103132)) h) + (by + have h : ((childHL (childLL thetaBelowCell11103132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11103132)) h) + (by + have h : ((childHH (childLL thetaBelowCell11103132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11103132)) h) +theorem e24KC2ThetaBelowLeaf111031321 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103132) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11103132) + (by + have h : ((childLL (childLH thetaBelowCell11103132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11103132)) h) + (by + have h : ((childLH (childLH thetaBelowCell11103132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11103132)) h) + (by + have h : ((childHL (childLH thetaBelowCell11103132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11103132)) h) + (by + have h : ((childHH (childLH thetaBelowCell11103132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11103132)) h) +theorem e24KC2ThetaBelowLeaf111031322 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103132) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11103132) + (by + have h : ((childLL (childHL thetaBelowCell11103132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11103132)) h) + (by + have h : ((childLH (childHL thetaBelowCell11103132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11103132)) h) + (by + have h : ((childHL (childHL thetaBelowCell11103132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11103132)) h) + (by + have h : ((childHH (childHL thetaBelowCell11103132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11103132)) h) +theorem e24KC2ThetaBelowLeaf111031323 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103132) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11103132) + (by + have h : ((childLL (childHH thetaBelowCell11103132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11103132)) h) + (by + have h : ((childLH (childHH thetaBelowCell11103132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11103132)) h) + (by + have h : ((childHL (childHH thetaBelowCell11103132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11103132)) h) + (by + have h : ((childHH (childHH thetaBelowCell11103132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11103132)) h) +theorem e24KC2ThetaBelowLeaf111031330 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103133) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11103133) + (by + have h : ((childLL (childLL thetaBelowCell11103133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11103133)) h) + (by + have h : ((childLH (childLL thetaBelowCell11103133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11103133)) h) + (by + have h : ((childHL (childLL thetaBelowCell11103133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11103133)) h) + (by + have h : ((childHH (childLL thetaBelowCell11103133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11103133)) h) +theorem e24KC2ThetaBelowLeaf111031331 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103133) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11103133) + (by + have h : ((childLL (childLH thetaBelowCell11103133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11103133)) h) + (by + have h : ((childLH (childLH thetaBelowCell11103133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11103133)) h) + (by + have h : ((childHL (childLH thetaBelowCell11103133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11103133)) h) + (by + have h : ((childHH (childLH thetaBelowCell11103133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11103133)) h) +theorem e24KC2ThetaBelowLeaf111031332 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103133) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11103133) + (by + have h : ((childLL (childHL thetaBelowCell11103133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11103133)) h) + (by + have h : ((childLH (childHL thetaBelowCell11103133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11103133)) h) + (by + have h : ((childHL (childHL thetaBelowCell11103133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11103133)) h) + (by + have h : ((childHH (childHL thetaBelowCell11103133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11103133)) h) +theorem e24KC2ThetaBelowLeaf111031333 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103133) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11103133) + (by + have h : ((childLL (childHH thetaBelowCell11103133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11103133)) h) + (by + have h : ((childLH (childHH thetaBelowCell11103133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11103133)) h) + (by + have h : ((childHL (childHH thetaBelowCell11103133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11103133)) h) + (by + have h : ((childHH (childHH thetaBelowCell11103133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11103133)) h) +theorem e24KC2ThetaBelowLeaf111032100 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103210) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11103210) + (by + have h : ((childLL (childLL thetaBelowCell11103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11103210)) h) + (by + have h : ((childLH (childLL thetaBelowCell11103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11103210)) h) + (by + have h : ((childHL (childLL thetaBelowCell11103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11103210)) h) + (by + have h : ((childHH (childLL thetaBelowCell11103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11103210)) h) +theorem e24KC2ThetaBelowLeaf111032101 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103210) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11103210) + (by + have h : ((childLL (childLH thetaBelowCell11103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11103210)) h) + (by + have h : ((childLH (childLH thetaBelowCell11103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11103210)) h) + (by + have h : ((childHL (childLH thetaBelowCell11103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11103210)) h) + (by + have h : ((childHH (childLH thetaBelowCell11103210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11103210)) h) +theorem e24KC2ThetaBelowLeaf111032110 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103211) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11103211) + (by + have h : ((childLL (childLL thetaBelowCell11103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11103211)) h) + (by + have h : ((childLH (childLL thetaBelowCell11103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11103211)) h) + (by + have h : ((childHL (childLL thetaBelowCell11103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11103211)) h) + (by + have h : ((childHH (childLL thetaBelowCell11103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11103211)) h) +theorem e24KC2ThetaBelowLeaf111032111 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103211) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11103211) + (by + have h : ((childLL (childLH thetaBelowCell11103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11103211)) h) + (by + have h : ((childLH (childLH thetaBelowCell11103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11103211)) h) + (by + have h : ((childHL (childLH thetaBelowCell11103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11103211)) h) + (by + have h : ((childHH (childLH thetaBelowCell11103211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11103211)) h) +theorem e24KC2ThetaBelowLeaf111033000 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103300) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11103300) + (by + have h : ((childLL (childLL thetaBelowCell11103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11103300)) h) + (by + have h : ((childLH (childLL thetaBelowCell11103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11103300)) h) + (by + have h : ((childHL (childLL thetaBelowCell11103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11103300)) h) + (by + have h : ((childHH (childLL thetaBelowCell11103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11103300)) h) +theorem e24KC2ThetaBelowLeaf111033001 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103300) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11103300) + (by + have h : ((childLL (childLH thetaBelowCell11103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11103300)) h) + (by + have h : ((childLH (childLH thetaBelowCell11103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11103300)) h) + (by + have h : ((childHL (childLH thetaBelowCell11103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11103300)) h) + (by + have h : ((childHH (childLH thetaBelowCell11103300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11103300)) h) +theorem e24KC2ThetaBelowLeaf111033010 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103301) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11103301) + (by + have h : ((childLL (childLL thetaBelowCell11103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11103301)) h) + (by + have h : ((childLH (childLL thetaBelowCell11103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11103301)) h) + (by + have h : ((childHL (childLL thetaBelowCell11103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11103301)) h) + (by + have h : ((childHH (childLL thetaBelowCell11103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11103301)) h) +theorem e24KC2ThetaBelowLeaf111033011 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103301) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11103301) + (by + have h : ((childLL (childLH thetaBelowCell11103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11103301)) h) + (by + have h : ((childLH (childLH thetaBelowCell11103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11103301)) h) + (by + have h : ((childHL (childLH thetaBelowCell11103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11103301)) h) + (by + have h : ((childHH (childLH thetaBelowCell11103301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11103301)) h) +theorem e24KC2ThetaBelowLeaf111033100 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103310) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11103310) + (by + have h : ((childLL (childLL thetaBelowCell11103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11103310)) h) + (by + have h : ((childLH (childLL thetaBelowCell11103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11103310)) h) + (by + have h : ((childHL (childLL thetaBelowCell11103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11103310)) h) + (by + have h : ((childHH (childLL thetaBelowCell11103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11103310)) h) +theorem e24KC2ThetaBelowLeaf111033101 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103310) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11103310) + (by + have h : ((childLL (childLH thetaBelowCell11103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11103310)) h) + (by + have h : ((childLH (childLH thetaBelowCell11103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11103310)) h) + (by + have h : ((childHL (childLH thetaBelowCell11103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11103310)) h) + (by + have h : ((childHH (childLH thetaBelowCell11103310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11103310)) h) +theorem e24KC2ThetaBelowLeaf111033110 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103311) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11103311) + (by + have h : ((childLL (childLL thetaBelowCell11103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11103311)) h) + (by + have h : ((childLH (childLL thetaBelowCell11103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11103311)) h) + (by + have h : ((childHL (childLL thetaBelowCell11103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11103311)) h) + (by + have h : ((childHH (childLL thetaBelowCell11103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11103311)) h) +theorem e24KC2ThetaBelowLeaf111033111 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103311) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11103311) + (by + have h : ((childLL (childLH thetaBelowCell11103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11103311)) h) + (by + have h : ((childLH (childLH thetaBelowCell11103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11103311)) h) + (by + have h : ((childHL (childLH thetaBelowCell11103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11103311)) h) + (by + have h : ((childHH (childLH thetaBelowCell11103311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11103311)) h) +theorem e24KC2ThetaBelowLeaf111120220 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112022) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11112022) + (by + have h : ((childLL (childLL thetaBelowCell11112022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11112022)) h) + (by + have h : ((childLH (childLL thetaBelowCell11112022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11112022)) h) + (by + have h : ((childHL (childLL thetaBelowCell11112022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11112022)) h) + (by + have h : ((childHH (childLL thetaBelowCell11112022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11112022)) h) +theorem e24KC2ThetaBelowLeaf111120221 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112022) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11112022) + (by + have h : ((childLL (childLH thetaBelowCell11112022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11112022)) h) + (by + have h : ((childLH (childLH thetaBelowCell11112022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11112022)) h) + (by + have h : ((childHL (childLH thetaBelowCell11112022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11112022)) h) + (by + have h : ((childHH (childLH thetaBelowCell11112022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11112022)) h) +theorem e24KC2ThetaBelowLeaf111120222 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112022) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11112022) + (by + have h : ((childLL (childHL thetaBelowCell11112022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11112022)) h) + (by + have h : ((childLH (childHL thetaBelowCell11112022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11112022)) h) + (by + have h : ((childHL (childHL thetaBelowCell11112022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11112022)) h) + (by + have h : ((childHH (childHL thetaBelowCell11112022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11112022)) h) +theorem e24KC2ThetaBelowLeaf111120223 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112022) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11112022) + (by + have h : ((childLL (childHH thetaBelowCell11112022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11112022)) h) + (by + have h : ((childLH (childHH thetaBelowCell11112022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11112022)) h) + (by + have h : ((childHL (childHH thetaBelowCell11112022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11112022)) h) + (by + have h : ((childHH (childHH thetaBelowCell11112022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11112022)) h) +theorem e24KC2ThetaBelowLeaf111120230 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112023) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11112023) + (by + have h : ((childLL (childLL thetaBelowCell11112023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11112023)) h) + (by + have h : ((childLH (childLL thetaBelowCell11112023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11112023)) h) + (by + have h : ((childHL (childLL thetaBelowCell11112023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11112023)) h) + (by + have h : ((childHH (childLL thetaBelowCell11112023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11112023)) h) +theorem e24KC2ThetaBelowLeaf111120231 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112023) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11112023) + (by + have h : ((childLL (childLH thetaBelowCell11112023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11112023)) h) + (by + have h : ((childLH (childLH thetaBelowCell11112023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11112023)) h) + (by + have h : ((childHL (childLH thetaBelowCell11112023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11112023)) h) + (by + have h : ((childHH (childLH thetaBelowCell11112023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11112023)) h) +theorem e24KC2ThetaBelowLeaf111120232 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112023) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11112023) + (by + have h : ((childLL (childHL thetaBelowCell11112023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11112023)) h) + (by + have h : ((childLH (childHL thetaBelowCell11112023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11112023)) h) + (by + have h : ((childHL (childHL thetaBelowCell11112023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11112023)) h) + (by + have h : ((childHH (childHL thetaBelowCell11112023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11112023)) h) +theorem e24KC2ThetaBelowLeaf111120233 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112023) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11112023) + (by + have h : ((childLL (childHH thetaBelowCell11112023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11112023)) h) + (by + have h : ((childLH (childHH thetaBelowCell11112023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11112023)) h) + (by + have h : ((childHL (childHH thetaBelowCell11112023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11112023)) h) + (by + have h : ((childHH (childHH thetaBelowCell11112023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11112023)) h) +theorem e24KC2ThetaBelowLeaf111120320 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112032) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11112032) + (by + have h : ((childLL (childLL thetaBelowCell11112032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11112032)) h) + (by + have h : ((childLH (childLL thetaBelowCell11112032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11112032)) h) + (by + have h : ((childHL (childLL thetaBelowCell11112032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11112032)) h) + (by + have h : ((childHH (childLL thetaBelowCell11112032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11112032)) h) +theorem e24KC2ThetaBelowLeaf111120321 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112032) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11112032) + (by + have h : ((childLL (childLH thetaBelowCell11112032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11112032)) h) + (by + have h : ((childLH (childLH thetaBelowCell11112032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11112032)) h) + (by + have h : ((childHL (childLH thetaBelowCell11112032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11112032)) h) + (by + have h : ((childHH (childLH thetaBelowCell11112032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11112032)) h) +theorem e24KC2ThetaBelowLeaf111120322 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112032) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11112032) + (by + have h : ((childLL (childHL thetaBelowCell11112032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11112032)) h) + (by + have h : ((childLH (childHL thetaBelowCell11112032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11112032)) h) + (by + have h : ((childHL (childHL thetaBelowCell11112032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11112032)) h) + (by + have h : ((childHH (childHL thetaBelowCell11112032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11112032)) h) +theorem e24KC2ThetaBelowLeaf111120323 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112032) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11112032) + (by + have h : ((childLL (childHH thetaBelowCell11112032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11112032)) h) + (by + have h : ((childLH (childHH thetaBelowCell11112032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11112032)) h) + (by + have h : ((childHL (childHH thetaBelowCell11112032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11112032)) h) + (by + have h : ((childHH (childHH thetaBelowCell11112032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11112032)) h) +theorem e24KC2ThetaBelowLeaf111120330 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112033) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11112033) + (by + have h : ((childLL (childLL thetaBelowCell11112033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11112033)) h) + (by + have h : ((childLH (childLL thetaBelowCell11112033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11112033)) h) + (by + have h : ((childHL (childLL thetaBelowCell11112033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11112033)) h) + (by + have h : ((childHH (childLL thetaBelowCell11112033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11112033)) h) +theorem e24KC2ThetaBelowLeaf111120331 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112033) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11112033) + (by + have h : ((childLL (childLH thetaBelowCell11112033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11112033)) h) + (by + have h : ((childLH (childLH thetaBelowCell11112033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11112033)) h) + (by + have h : ((childHL (childLH thetaBelowCell11112033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11112033)) h) + (by + have h : ((childHH (childLH thetaBelowCell11112033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11112033)) h) +theorem e24KC2ThetaBelowLeaf111120332 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112033) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11112033) + (by + have h : ((childLL (childHL thetaBelowCell11112033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11112033)) h) + (by + have h : ((childLH (childHL thetaBelowCell11112033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11112033)) h) + (by + have h : ((childHL (childHL thetaBelowCell11112033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11112033)) h) + (by + have h : ((childHH (childHL thetaBelowCell11112033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11112033)) h) +theorem e24KC2ThetaBelowLeaf111120333 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112033) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11112033) + (by + have h : ((childLL (childHH thetaBelowCell11112033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11112033)) h) + (by + have h : ((childLH (childHH thetaBelowCell11112033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11112033)) h) + (by + have h : ((childHL (childHH thetaBelowCell11112033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11112033)) h) + (by + have h : ((childHH (childHH thetaBelowCell11112033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11112033)) h) +theorem e24KC2ThetaBelowLeaf111121220 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112122) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11112122) + (by + have h : ((childLL (childLL thetaBelowCell11112122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11112122)) h) + (by + have h : ((childLH (childLL thetaBelowCell11112122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11112122)) h) + (by + have h : ((childHL (childLL thetaBelowCell11112122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11112122)) h) + (by + have h : ((childHH (childLL thetaBelowCell11112122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11112122)) h) +theorem e24KC2ThetaBelowLeaf111121221 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112122) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11112122) + (by + have h : ((childLL (childLH thetaBelowCell11112122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11112122)) h) + (by + have h : ((childLH (childLH thetaBelowCell11112122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11112122)) h) + (by + have h : ((childHL (childLH thetaBelowCell11112122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11112122)) h) + (by + have h : ((childHH (childLH thetaBelowCell11112122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11112122)) h) +theorem e24KC2ThetaBelowLeaf111121222 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112122) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11112122) + (by + have h : ((childLL (childHL thetaBelowCell11112122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11112122)) h) + (by + have h : ((childLH (childHL thetaBelowCell11112122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11112122)) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL thetaBelowCell11112122)) + (by + have h : ((childLL (childHL (childHL thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childHL + thetaBelowCell11112122))) h) + (by + have h : ((childLH (childHL (childHL thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childHL + thetaBelowCell11112122))) h) + (by + have h : ((childHL (childHL (childHL thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childHL + thetaBelowCell11112122))) h) + (by + have h : ((childHH (childHL (childHL thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childHL + thetaBelowCell11112122))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL thetaBelowCell11112122)) + (by + have h : ((childLL (childHH (childHL thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childHL + thetaBelowCell11112122))) h) + (by + have h : ((childLH (childHH (childHL thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childHL + thetaBelowCell11112122))) h) + (by + have h : ((childHL (childHH (childHL thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childHL + thetaBelowCell11112122))) h) + (by + have h : ((childHH (childHH (childHL thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childHL + thetaBelowCell11112122))) h)) +theorem e24KC2ThetaBelowLeaf111121223 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112122) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11112122) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH thetaBelowCell11112122)) + (by + have h : ((childLL (childLL (childHH thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childHH + thetaBelowCell11112122))) h) + (by + have h : ((childLH (childLL (childHH thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childHH + thetaBelowCell11112122))) h) + (by + have h : ((childHL (childLL (childHH thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childHH + thetaBelowCell11112122))) h) + (by + have h : ((childHH (childLL (childHH thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childHH + thetaBelowCell11112122))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH thetaBelowCell11112122)) + (by + have h : ((childLL (childLH (childHH thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childHH + thetaBelowCell11112122))) h) + (by + have h : ((childLH (childLH (childHH thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childHH + thetaBelowCell11112122))) h) + (by + have h : ((childHL (childLH (childHH thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childHH + thetaBelowCell11112122))) h) + (by + have h : ((childHH (childLH (childHH thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childHH + thetaBelowCell11112122))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH thetaBelowCell11112122)) + (by + have h : ((childLL (childHL (childHH thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childHH + thetaBelowCell11112122))) h) + (by + have h : ((childLH (childHL (childHH thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childHH + thetaBelowCell11112122))) h) + (by + have h : ((childHL (childHL (childHH thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childHH + thetaBelowCell11112122))) h) + (by + have h : ((childHH (childHL (childHH thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childHH + thetaBelowCell11112122))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH thetaBelowCell11112122)) + (by + have h : ((childLL (childHH (childHH thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childHH + thetaBelowCell11112122))) h) + (by + have h : ((childLH (childHH (childHH thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childHH + thetaBelowCell11112122))) h) + (by + have h : ((childHL (childHH (childHH thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childHH + thetaBelowCell11112122))) h) + (by + have h : ((childHH (childHH (childHH thetaBelowCell11112122)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childHH + thetaBelowCell11112122))) h)) +theorem e24KC2ThetaBelowLeaf111121230 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112123) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11112123) + (by + have h : ((childLL (childLL thetaBelowCell11112123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11112123)) h) + (by + have h : ((childLH (childLL thetaBelowCell11112123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11112123)) h) + (by + have h : ((childHL (childLL thetaBelowCell11112123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11112123)) h) + (by + have h : ((childHH (childLL thetaBelowCell11112123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11112123)) h) +theorem e24KC2ThetaBelowLeaf111121231 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112123) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11112123) + (by + have h : ((childLL (childLH thetaBelowCell11112123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11112123)) h) + (by + have h : ((childLH (childLH thetaBelowCell11112123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11112123)) h) + (by + have h : ((childHL (childLH thetaBelowCell11112123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11112123)) h) + (by + have h : ((childHH (childLH thetaBelowCell11112123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11112123)) h) +theorem e24KC2ThetaBelowLeaf111121232 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112123) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11112123) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL thetaBelowCell11112123)) + (by + have h : ((childLL (childLL (childHL thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childHL + thetaBelowCell11112123))) h) + (by + have h : ((childLH (childLL (childHL thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childHL + thetaBelowCell11112123))) h) + (by + have h : ((childHL (childLL (childHL thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childHL + thetaBelowCell11112123))) h) + (by + have h : ((childHH (childLL (childHL thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childHL + thetaBelowCell11112123))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL thetaBelowCell11112123)) + (by + have h : ((childLL (childLH (childHL thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childHL + thetaBelowCell11112123))) h) + (by + have h : ((childLH (childLH (childHL thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childHL + thetaBelowCell11112123))) h) + (by + have h : ((childHL (childLH (childHL thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childHL + thetaBelowCell11112123))) h) + (by + have h : ((childHH (childLH (childHL thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childHL + thetaBelowCell11112123))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL thetaBelowCell11112123)) + (by + have h : ((childLL (childHL (childHL thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childHL + thetaBelowCell11112123))) h) + (by + have h : ((childLH (childHL (childHL thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childHL + thetaBelowCell11112123))) h) + (by + have h : ((childHL (childHL (childHL thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childHL + thetaBelowCell11112123))) h) + (by + have h : ((childHH (childHL (childHL thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childHL + thetaBelowCell11112123))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL thetaBelowCell11112123)) + (by + have h : ((childLL (childHH (childHL thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childHL + thetaBelowCell11112123))) h) + (by + have h : ((childLH (childHH (childHL thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childHL + thetaBelowCell11112123))) h) + (by + have h : ((childHL (childHH (childHL thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childHL + thetaBelowCell11112123))) h) + (by + have h : ((childHH (childHH (childHL thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childHL + thetaBelowCell11112123))) h)) +theorem e24KC2ThetaBelowLeaf111121233 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112123) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11112123) + (by + have h : ((childLL (childHH thetaBelowCell11112123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11112123)) h) + (by + have h : ((childLH (childHH thetaBelowCell11112123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11112123)) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH thetaBelowCell11112123)) + (by + have h : ((childLL (childHL (childHH thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childHH + thetaBelowCell11112123))) h) + (by + have h : ((childLH (childHL (childHH thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childHH + thetaBelowCell11112123))) h) + (by + have h : ((childHL (childHL (childHH thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childHH + thetaBelowCell11112123))) h) + (by + have h : ((childHH (childHL (childHH thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childHH + thetaBelowCell11112123))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH thetaBelowCell11112123)) + (by + have h : ((childLL (childHH (childHH thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childHH + thetaBelowCell11112123))) h) + (by + have h : ((childLH (childHH (childHH thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childHH + thetaBelowCell11112123))) h) + (by + have h : ((childHL (childHH (childHH thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childHH + thetaBelowCell11112123))) h) + (by + have h : ((childHH (childHH (childHH thetaBelowCell11112123)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childHH + thetaBelowCell11112123))) h)) +theorem e24KC2ThetaBelowLeaf111121322 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112132) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11112132) + (by + have h : ((childLL (childHL thetaBelowCell11112132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11112132)) h) + (by + have h : ((childLH (childHL thetaBelowCell11112132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11112132)) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL thetaBelowCell11112132)) + (by + have h : ((childLL (childHL (childHL thetaBelowCell11112132)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childHL + thetaBelowCell11112132))) h) + (by + have h : ((childLH (childHL (childHL thetaBelowCell11112132)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childHL + thetaBelowCell11112132))) h) + (by + have h : ((childHL (childHL (childHL thetaBelowCell11112132)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childHL + thetaBelowCell11112132))) h) + (by + have h : ((childHH (childHL (childHL thetaBelowCell11112132)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childHL + thetaBelowCell11112132))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL thetaBelowCell11112132)) + (by + have h : ((childLL (childHH (childHL thetaBelowCell11112132)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childHL + thetaBelowCell11112132))) h) + (by + have h : ((childLH (childHH (childHL thetaBelowCell11112132)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childHL + thetaBelowCell11112132))) h) + (by + have h : ((childHL (childHH (childHL thetaBelowCell11112132)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childHL + thetaBelowCell11112132))) h) + (by + have h : ((childHH (childHH (childHL thetaBelowCell11112132)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childHL + thetaBelowCell11112132))) h)) +theorem e24KC2ThetaBelowLeaf111121323 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112132) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11112132) + (by + have h : ((childLL (childHH thetaBelowCell11112132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11112132)) h) + (by + have h : ((childLH (childHH thetaBelowCell11112132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11112132)) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH thetaBelowCell11112132)) + (by + have h : ((childLL (childHL (childHH thetaBelowCell11112132)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childHH + thetaBelowCell11112132))) h) + (by + have h : ((childLH (childHL (childHH thetaBelowCell11112132)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childHH + thetaBelowCell11112132))) h) + (by + have h : ((childHL (childHL (childHH thetaBelowCell11112132)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childHH + thetaBelowCell11112132))) h) + (by + have h : ((childHH (childHL (childHH thetaBelowCell11112132)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childHH + thetaBelowCell11112132))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH thetaBelowCell11112132)) + (by + have h : ((childLL (childHH (childHH thetaBelowCell11112132)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childHH + thetaBelowCell11112132))) h) + (by + have h : ((childLH (childHH (childHH thetaBelowCell11112132)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childHH + thetaBelowCell11112132))) h) + (by + have h : ((childHL (childHH (childHH thetaBelowCell11112132)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childHH + thetaBelowCell11112132))) h) + (by + have h : ((childHH (childHH (childHH thetaBelowCell11112132)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childHH + thetaBelowCell11112132))) h)) +theorem e24KC2ThetaBelowLeaf111121332 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112133) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11112133) + (by + have h : ((childLL (childHL thetaBelowCell11112133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11112133)) h) + (by + have h : ((childLH (childHL thetaBelowCell11112133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11112133)) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL thetaBelowCell11112133)) + (by + have h : ((childLL (childHL (childHL thetaBelowCell11112133)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childHL + thetaBelowCell11112133))) h) + (by + have h : ((childLH (childHL (childHL thetaBelowCell11112133)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childHL + thetaBelowCell11112133))) h) + (by + have h : ((childHL (childHL (childHL thetaBelowCell11112133)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childHL + thetaBelowCell11112133))) h) + (by + have h : ((childHH (childHL (childHL thetaBelowCell11112133)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childHL + thetaBelowCell11112133))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL thetaBelowCell11112133)) + (by + have h : ((childLL (childHH (childHL thetaBelowCell11112133)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childHL + thetaBelowCell11112133))) h) + (by + have h : ((childLH (childHH (childHL thetaBelowCell11112133)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childHL + thetaBelowCell11112133))) h) + (by + have h : ((childHL (childHH (childHL thetaBelowCell11112133)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childHL + thetaBelowCell11112133))) h) + (by + have h : ((childHH (childHH (childHL thetaBelowCell11112133)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childHL + thetaBelowCell11112133))) h)) +theorem e24KC2ThetaBelowLeaf111121333 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112133) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11112133) + (by + have h : ((childLL (childHH thetaBelowCell11112133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11112133)) h) + (by + have h : ((childLH (childHH thetaBelowCell11112133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11112133)) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH thetaBelowCell11112133)) + (by + have h : ((childLL (childHL (childHH thetaBelowCell11112133)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childHH + thetaBelowCell11112133))) h) + (by + have h : ((childLH (childHL (childHH thetaBelowCell11112133)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childHH + thetaBelowCell11112133))) h) + (by + have h : ((childHL (childHL (childHH thetaBelowCell11112133)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childHH + thetaBelowCell11112133))) h) + (by + have h : ((childHH (childHL (childHH thetaBelowCell11112133)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childHH + thetaBelowCell11112133))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH thetaBelowCell11112133)) + (by + have h : ((childLL (childHH (childHH thetaBelowCell11112133)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childHH + thetaBelowCell11112133))) h) + (by + have h : ((childLH (childHH (childHH thetaBelowCell11112133)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childHH + thetaBelowCell11112133))) h) + (by + have h : ((childHL (childHH (childHH thetaBelowCell11112133)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childHH + thetaBelowCell11112133))) h) + (by + have h : ((childHH (childHH (childHH thetaBelowCell11112133)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childHH + thetaBelowCell11112133))) h)) +theorem e24KC2ThetaBelowLeaf111122000 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112200) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11112200) + (by + have h : ((childLL (childLL thetaBelowCell11112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11112200)) h) + (by + have h : ((childLH (childLL thetaBelowCell11112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11112200)) h) + (by + have h : ((childHL (childLL thetaBelowCell11112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11112200)) h) + (by + have h : ((childHH (childLL thetaBelowCell11112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11112200)) h) +theorem e24KC2ThetaBelowLeaf111122001 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112200) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11112200) + (by + have h : ((childLL (childLH thetaBelowCell11112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11112200)) h) + (by + have h : ((childLH (childLH thetaBelowCell11112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11112200)) h) + (by + have h : ((childHL (childLH thetaBelowCell11112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11112200)) h) + (by + have h : ((childHH (childLH thetaBelowCell11112200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11112200)) h) +theorem e24KC2ThetaBelowLeaf111122010 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112201) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11112201) + (by + have h : ((childLL (childLL thetaBelowCell11112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11112201)) h) + (by + have h : ((childLH (childLL thetaBelowCell11112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11112201)) h) + (by + have h : ((childHL (childLL thetaBelowCell11112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11112201)) h) + (by + have h : ((childHH (childLL thetaBelowCell11112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11112201)) h) +theorem e24KC2ThetaBelowLeaf111122011 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112201) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11112201) + (by + have h : ((childLL (childLH thetaBelowCell11112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11112201)) h) + (by + have h : ((childLH (childLH thetaBelowCell11112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11112201)) h) + (by + have h : ((childHL (childLH thetaBelowCell11112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11112201)) h) + (by + have h : ((childHH (childLH thetaBelowCell11112201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11112201)) h) +theorem e24KC2ThetaBelowLeaf111122100 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112210) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11112210) + (by + have h : ((childLL (childLL thetaBelowCell11112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11112210)) h) + (by + have h : ((childLH (childLL thetaBelowCell11112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11112210)) h) + (by + have h : ((childHL (childLL thetaBelowCell11112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11112210)) h) + (by + have h : ((childHH (childLL thetaBelowCell11112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11112210)) h) +theorem e24KC2ThetaBelowLeaf111122101 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112210) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11112210) + (by + have h : ((childLL (childLH thetaBelowCell11112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11112210)) h) + (by + have h : ((childLH (childLH thetaBelowCell11112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11112210)) h) + (by + have h : ((childHL (childLH thetaBelowCell11112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11112210)) h) + (by + have h : ((childHH (childLH thetaBelowCell11112210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11112210)) h) +theorem e24KC2ThetaBelowLeaf111122110 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112211) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11112211) + (by + have h : ((childLL (childLL thetaBelowCell11112211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11112211)) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL thetaBelowCell11112211)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell11112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLL + thetaBelowCell11112211))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell11112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLL + thetaBelowCell11112211))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell11112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLL + thetaBelowCell11112211))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell11112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLL + thetaBelowCell11112211))) h)) + (by + have h : ((childHL (childLL thetaBelowCell11112211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11112211)) h) + (by + have h : ((childHH (childLL thetaBelowCell11112211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11112211)) h) +theorem e24KC2ThetaBelowLeaf111122111 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112211) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11112211) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH thetaBelowCell11112211)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell11112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLH + thetaBelowCell11112211))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell11112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLH + thetaBelowCell11112211))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell11112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLH + thetaBelowCell11112211))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell11112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLH + thetaBelowCell11112211))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH thetaBelowCell11112211)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell11112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLH + thetaBelowCell11112211))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell11112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLH + thetaBelowCell11112211))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell11112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLH + thetaBelowCell11112211))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell11112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLH + thetaBelowCell11112211))) h)) + (by + have h : ((childHL (childLH thetaBelowCell11112211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11112211)) h) + (by + have h : ((childHH (childLH thetaBelowCell11112211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11112211)) h) +theorem e24KC2ThetaBelowLeaf111122113 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112211) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11112211) + (by + have h : ((childLL (childHH thetaBelowCell11112211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11112211)) h) + (by + have h : ((childLH (childHH thetaBelowCell11112211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11112211)) h) + (by + have h : ((childHL (childHH thetaBelowCell11112211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11112211)) h) + (by + have h : ((childHH (childHH thetaBelowCell11112211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11112211)) h) +theorem e24KC2ThetaBelowLeaf111123000 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112300) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11112300) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL thetaBelowCell11112300)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLL + thetaBelowCell11112300))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLL + thetaBelowCell11112300))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLL + thetaBelowCell11112300))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLL + thetaBelowCell11112300))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL thetaBelowCell11112300)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLL + thetaBelowCell11112300))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLL + thetaBelowCell11112300))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLL + thetaBelowCell11112300))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLL + thetaBelowCell11112300))) h)) + (by + have h : ((childHL (childLL thetaBelowCell11112300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11112300)) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL thetaBelowCell11112300)) + (by + have h : ((childLL (childHH (childLL thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childLL + thetaBelowCell11112300))) h) + (by + have h : ((childLH (childHH (childLL thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childLL + thetaBelowCell11112300))) h) + (by + have h : ((childHL (childHH (childLL thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childLL + thetaBelowCell11112300))) h) + (by + have h : ((childHH (childHH (childLL thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childLL + thetaBelowCell11112300))) h)) +theorem e24KC2ThetaBelowLeaf111123001 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112300) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11112300) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH thetaBelowCell11112300)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLH + thetaBelowCell11112300))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLH + thetaBelowCell11112300))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLH + thetaBelowCell11112300))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLH + thetaBelowCell11112300))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH thetaBelowCell11112300)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLH + thetaBelowCell11112300))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLH + thetaBelowCell11112300))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLH + thetaBelowCell11112300))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLH + thetaBelowCell11112300))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH thetaBelowCell11112300)) + (by + have h : ((childLL (childHL (childLH thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childLH + thetaBelowCell11112300))) h) + (by + have h : ((childLH (childHL (childLH thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childLH + thetaBelowCell11112300))) h) + (by + have h : ((childHL (childHL (childLH thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childLH + thetaBelowCell11112300))) h) + (by + have h : ((childHH (childHL (childLH thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childLH + thetaBelowCell11112300))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH thetaBelowCell11112300)) + (by + have h : ((childLL (childHH (childLH thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childLH + thetaBelowCell11112300))) h) + (by + have h : ((childLH (childHH (childLH thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childLH + thetaBelowCell11112300))) h) + (by + have h : ((childHL (childHH (childLH thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childLH + thetaBelowCell11112300))) h) + (by + have h : ((childHH (childHH (childLH thetaBelowCell11112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childLH + thetaBelowCell11112300))) h)) +theorem e24KC2ThetaBelowLeaf111123002 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112300) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11112300) + (by + have h : ((childLL (childHL thetaBelowCell11112300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11112300)) h) + (by + have h : ((childLH (childHL thetaBelowCell11112300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11112300)) h) + (by + have h : ((childHL (childHL thetaBelowCell11112300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11112300)) h) + (by + have h : ((childHH (childHL thetaBelowCell11112300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11112300)) h) +theorem e24KC2ThetaBelowLeaf111123003 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112300) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11112300) + (by + have h : ((childLL (childHH thetaBelowCell11112300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11112300)) h) + (by + have h : ((childLH (childHH thetaBelowCell11112300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11112300)) h) + (by + have h : ((childHL (childHH thetaBelowCell11112300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11112300)) h) + (by + have h : ((childHH (childHH thetaBelowCell11112300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11112300)) h) +theorem e24KC2ThetaBelowLeaf111123010 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112301) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11112301) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL thetaBelowCell11112301)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLL + thetaBelowCell11112301))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLL + thetaBelowCell11112301))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLL + thetaBelowCell11112301))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLL + thetaBelowCell11112301))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL thetaBelowCell11112301)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLL + thetaBelowCell11112301))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLL + thetaBelowCell11112301))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLL + thetaBelowCell11112301))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLL + thetaBelowCell11112301))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL thetaBelowCell11112301)) + (by + have h : ((childLL (childHL (childLL thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childLL + thetaBelowCell11112301))) h) + (by + have h : ((childLH (childHL (childLL thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childLL + thetaBelowCell11112301))) h) + (by + have h : ((childHL (childHL (childLL thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childLL + thetaBelowCell11112301))) h) + (by + have h : ((childHH (childHL (childLL thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childLL + thetaBelowCell11112301))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL thetaBelowCell11112301)) + (by + have h : ((childLL (childHH (childLL thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childLL + thetaBelowCell11112301))) h) + (by + have h : ((childLH (childHH (childLL thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childLL + thetaBelowCell11112301))) h) + (by + have h : ((childHL (childHH (childLL thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childLL + thetaBelowCell11112301))) h) + (by + have h : ((childHH (childHH (childLL thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childLL + thetaBelowCell11112301))) h)) +theorem e24KC2ThetaBelowLeaf111123011 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112301) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11112301) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH thetaBelowCell11112301)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLH + thetaBelowCell11112301))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLH + thetaBelowCell11112301))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLH + thetaBelowCell11112301))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLH + thetaBelowCell11112301))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH thetaBelowCell11112301)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLH + thetaBelowCell11112301))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLH + thetaBelowCell11112301))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLH + thetaBelowCell11112301))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLH + thetaBelowCell11112301))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH thetaBelowCell11112301)) + (by + have h : ((childLL (childHL (childLH thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childLH + thetaBelowCell11112301))) h) + (by + have h : ((childLH (childHL (childLH thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childLH + thetaBelowCell11112301))) h) + (by + have h : ((childHL (childHL (childLH thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childLH + thetaBelowCell11112301))) h) + (by + have h : ((childHH (childHL (childLH thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childLH + thetaBelowCell11112301))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH thetaBelowCell11112301)) + (by + have h : ((childLL (childHH (childLH thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childLH + thetaBelowCell11112301))) h) + (by + have h : ((childLH (childHH (childLH thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childLH + thetaBelowCell11112301))) h) + (by + have h : ((childHL (childHH (childLH thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childLH + thetaBelowCell11112301))) h) + (by + have h : ((childHH (childHH (childLH thetaBelowCell11112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childLH + thetaBelowCell11112301))) h)) +theorem e24KC2ThetaBelowLeaf111123012 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112301) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11112301) + (by + have h : ((childLL (childHL thetaBelowCell11112301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11112301)) h) + (by + have h : ((childLH (childHL thetaBelowCell11112301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11112301)) h) + (by + have h : ((childHL (childHL thetaBelowCell11112301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11112301)) h) + (by + have h : ((childHH (childHL thetaBelowCell11112301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11112301)) h) +theorem e24KC2ThetaBelowLeaf111123013 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112301) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11112301) + (by + have h : ((childLL (childHH thetaBelowCell11112301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11112301)) h) + (by + have h : ((childLH (childHH thetaBelowCell11112301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11112301)) h) + (by + have h : ((childHL (childHH thetaBelowCell11112301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11112301)) h) + (by + have h : ((childHH (childHH thetaBelowCell11112301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11112301)) h) +theorem e24KC2ThetaBelowLeaf111123100 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112310) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11112310) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL thetaBelowCell11112310)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLL + thetaBelowCell11112310))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLL + thetaBelowCell11112310))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLL + thetaBelowCell11112310))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLL + thetaBelowCell11112310))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL thetaBelowCell11112310)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLL + thetaBelowCell11112310))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLL + thetaBelowCell11112310))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLL + thetaBelowCell11112310))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLL + thetaBelowCell11112310))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL thetaBelowCell11112310)) + (by + have h : ((childLL (childHL (childLL thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childLL + thetaBelowCell11112310))) h) + (by + have h : ((childLH (childHL (childLL thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childLL + thetaBelowCell11112310))) h) + (by + have h : ((childHL (childHL (childLL thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childLL + thetaBelowCell11112310))) h) + (by + have h : ((childHH (childHL (childLL thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childLL + thetaBelowCell11112310))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL thetaBelowCell11112310)) + (by + have h : ((childLL (childHH (childLL thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childLL + thetaBelowCell11112310))) h) + (by + have h : ((childLH (childHH (childLL thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childLL + thetaBelowCell11112310))) h) + (by + have h : ((childHL (childHH (childLL thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childLL + thetaBelowCell11112310))) h) + (by + have h : ((childHH (childHH (childLL thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childLL + thetaBelowCell11112310))) h)) +theorem e24KC2ThetaBelowLeaf111123101 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112310) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11112310) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH thetaBelowCell11112310)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLH + thetaBelowCell11112310))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLH + thetaBelowCell11112310))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLH + thetaBelowCell11112310))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLH + thetaBelowCell11112310))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH thetaBelowCell11112310)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLH + thetaBelowCell11112310))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLH + thetaBelowCell11112310))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLH + thetaBelowCell11112310))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLH + thetaBelowCell11112310))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH thetaBelowCell11112310)) + (by + have h : ((childLL (childHL (childLH thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childLH + thetaBelowCell11112310))) h) + (by + have h : ((childLH (childHL (childLH thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childLH + thetaBelowCell11112310))) h) + (by + have h : ((childHL (childHL (childLH thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childLH + thetaBelowCell11112310))) h) + (by + have h : ((childHH (childHL (childLH thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childLH + thetaBelowCell11112310))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH thetaBelowCell11112310)) + (by + have h : ((childLL (childHH (childLH thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childLH + thetaBelowCell11112310))) h) + (by + have h : ((childLH (childHH (childLH thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childLH + thetaBelowCell11112310))) h) + (by + have h : ((childHL (childHH (childLH thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childLH + thetaBelowCell11112310))) h) + (by + have h : ((childHH (childHH (childLH thetaBelowCell11112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childLH + thetaBelowCell11112310))) h)) +theorem e24KC2ThetaBelowLeaf111123102 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112310) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11112310) + (by + have h : ((childLL (childHL thetaBelowCell11112310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11112310)) h) + (by + have h : ((childLH (childHL thetaBelowCell11112310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11112310)) h) + (by + have h : ((childHL (childHL thetaBelowCell11112310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11112310)) h) + (by + have h : ((childHH (childHL thetaBelowCell11112310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11112310)) h) +theorem e24KC2ThetaBelowLeaf111123103 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112310) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11112310) + (by + have h : ((childLL (childHH thetaBelowCell11112310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11112310)) h) + (by + have h : ((childLH (childHH thetaBelowCell11112310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11112310)) h) + (by + have h : ((childHL (childHH thetaBelowCell11112310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11112310)) h) + (by + have h : ((childHH (childHH thetaBelowCell11112310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11112310)) h) +theorem e24KC2ThetaBelowLeaf111123110 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112311) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11112311) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL thetaBelowCell11112311)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLL + thetaBelowCell11112311))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLL + thetaBelowCell11112311))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLL + thetaBelowCell11112311))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLL + thetaBelowCell11112311))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL thetaBelowCell11112311)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLL + thetaBelowCell11112311))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLL + thetaBelowCell11112311))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLL + thetaBelowCell11112311))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLL + thetaBelowCell11112311))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL thetaBelowCell11112311)) + (by + have h : ((childLL (childHL (childLL thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childLL + thetaBelowCell11112311))) h) + (by + have h : ((childLH (childHL (childLL thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childLL + thetaBelowCell11112311))) h) + (by + have h : ((childHL (childHL (childLL thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childLL + thetaBelowCell11112311))) h) + (by + have h : ((childHH (childHL (childLL thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childLL + thetaBelowCell11112311))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL thetaBelowCell11112311)) + (by + have h : ((childLL (childHH (childLL thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childLL + thetaBelowCell11112311))) h) + (by + have h : ((childLH (childHH (childLL thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childLL + thetaBelowCell11112311))) h) + (by + have h : ((childHL (childHH (childLL thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childLL + thetaBelowCell11112311))) h) + (by + have h : ((childHH (childHH (childLL thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childLL + thetaBelowCell11112311))) h)) +theorem e24KC2ThetaBelowLeaf111123111 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112311) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11112311) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH thetaBelowCell11112311)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLH + thetaBelowCell11112311))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLH + thetaBelowCell11112311))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLH + thetaBelowCell11112311))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLH + thetaBelowCell11112311))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH thetaBelowCell11112311)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLH + thetaBelowCell11112311))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLH + thetaBelowCell11112311))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLH + thetaBelowCell11112311))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLH + thetaBelowCell11112311))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH thetaBelowCell11112311)) + (by + have h : ((childLL (childHL (childLH thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childLH + thetaBelowCell11112311))) h) + (by + have h : ((childLH (childHL (childLH thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childLH + thetaBelowCell11112311))) h) + (by + have h : ((childHL (childHL (childLH thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childLH + thetaBelowCell11112311))) h) + (by + have h : ((childHH (childHL (childLH thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childLH + thetaBelowCell11112311))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH thetaBelowCell11112311)) + (by + have h : ((childLL (childHH (childLH thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childLH + thetaBelowCell11112311))) h) + (by + have h : ((childLH (childHH (childLH thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childLH + thetaBelowCell11112311))) h) + (by + have h : ((childHL (childHH (childLH thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childLH + thetaBelowCell11112311))) h) + (by + have h : ((childHH (childHH (childLH thetaBelowCell11112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childLH + thetaBelowCell11112311))) h)) +theorem e24KC2ThetaBelowLeaf111123112 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112311) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11112311) + (by + have h : ((childLL (childHL thetaBelowCell11112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11112311)) h) + (by + have h : ((childLH (childHL thetaBelowCell11112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11112311)) h) + (by + have h : ((childHL (childHL thetaBelowCell11112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11112311)) h) + (by + have h : ((childHH (childHL thetaBelowCell11112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11112311)) h) +theorem e24KC2ThetaBelowLeaf111123113 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112311) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11112311) + (by + have h : ((childLL (childHH thetaBelowCell11112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11112311)) h) + (by + have h : ((childLH (childHH thetaBelowCell11112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11112311)) h) + (by + have h : ((childHL (childHH thetaBelowCell11112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11112311)) h) + (by + have h : ((childHH (childHH thetaBelowCell11112311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11112311)) h) +theorem e24KC2ThetaBelowLeaf111130222 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113022) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11113022) + (by + have h : ((childLL (childHL thetaBelowCell11113022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11113022)) h) + (by + have h : ((childLH (childHL thetaBelowCell11113022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11113022)) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL thetaBelowCell11113022)) + (by + have h : ((childLL (childHL (childHL thetaBelowCell11113022)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childHL + thetaBelowCell11113022))) h) + (by + have h : ((childLH (childHL (childHL thetaBelowCell11113022)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childHL + thetaBelowCell11113022))) h) + (by + have h : ((childHL (childHL (childHL thetaBelowCell11113022)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childHL + thetaBelowCell11113022))) h) + (by + have h : ((childHH (childHL (childHL thetaBelowCell11113022)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childHL + thetaBelowCell11113022))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL thetaBelowCell11113022)) + (by + have h : ((childLL (childHH (childHL thetaBelowCell11113022)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childHL + thetaBelowCell11113022))) h) + (by + have h : ((childLH (childHH (childHL thetaBelowCell11113022)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childHL + thetaBelowCell11113022))) h) + (by + have h : ((childHL (childHH (childHL thetaBelowCell11113022)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childHL + thetaBelowCell11113022))) h) + (by + have h : ((childHH (childHH (childHL thetaBelowCell11113022)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childHL + thetaBelowCell11113022))) h)) +theorem e24KC2ThetaBelowLeaf111130223 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113022) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11113022) + (by + have h : ((childLL (childHH thetaBelowCell11113022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11113022)) h) + (by + have h : ((childLH (childHH thetaBelowCell11113022))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11113022)) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH thetaBelowCell11113022)) + (by + have h : ((childLL (childHL (childHH thetaBelowCell11113022)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childHH + thetaBelowCell11113022))) h) + (by + have h : ((childLH (childHL (childHH thetaBelowCell11113022)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childHH + thetaBelowCell11113022))) h) + (by + have h : ((childHL (childHL (childHH thetaBelowCell11113022)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childHH + thetaBelowCell11113022))) h) + (by + have h : ((childHH (childHL (childHH thetaBelowCell11113022)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childHH + thetaBelowCell11113022))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH thetaBelowCell11113022)) + (by + have h : ((childLL (childHH (childHH thetaBelowCell11113022)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childHH + thetaBelowCell11113022))) h) + (by + have h : ((childLH (childHH (childHH thetaBelowCell11113022)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childHH + thetaBelowCell11113022))) h) + (by + have h : ((childHL (childHH (childHH thetaBelowCell11113022)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childHH + thetaBelowCell11113022))) h) + (by + have h : ((childHH (childHH (childHH thetaBelowCell11113022)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childHH + thetaBelowCell11113022))) h)) +theorem e24KC2ThetaBelowLeaf111130232 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113023) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11113023) + (by + have h : ((childLL (childHL thetaBelowCell11113023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11113023)) h) + (by + have h : ((childLH (childHL thetaBelowCell11113023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11113023)) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL thetaBelowCell11113023)) + (by + have h : ((childLL (childHL (childHL thetaBelowCell11113023)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childHL + thetaBelowCell11113023))) h) + (by + have h : ((childLH (childHL (childHL thetaBelowCell11113023)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childHL + thetaBelowCell11113023))) h) + (by + have h : ((childHL (childHL (childHL thetaBelowCell11113023)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childHL + thetaBelowCell11113023))) h) + (by + have h : ((childHH (childHL (childHL thetaBelowCell11113023)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childHL + thetaBelowCell11113023))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL thetaBelowCell11113023)) + (by + have h : ((childLL (childHH (childHL thetaBelowCell11113023)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childHL + thetaBelowCell11113023))) h) + (by + have h : ((childLH (childHH (childHL thetaBelowCell11113023)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childHL + thetaBelowCell11113023))) h) + (by + have h : ((childHL (childHH (childHL thetaBelowCell11113023)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childHL + thetaBelowCell11113023))) h) + (by + have h : ((childHH (childHH (childHL thetaBelowCell11113023)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childHL + thetaBelowCell11113023))) h)) +theorem e24KC2ThetaBelowLeaf111130233 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113023) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11113023) + (by + have h : ((childLL (childHH thetaBelowCell11113023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11113023)) h) + (by + have h : ((childLH (childHH thetaBelowCell11113023))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11113023)) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH thetaBelowCell11113023)) + (by + have h : ((childLL (childHL (childHH thetaBelowCell11113023)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childHH + thetaBelowCell11113023))) h) + (by + have h : ((childLH (childHL (childHH thetaBelowCell11113023)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childHH + thetaBelowCell11113023))) h) + (by + have h : ((childHL (childHL (childHH thetaBelowCell11113023)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childHH + thetaBelowCell11113023))) h) + (by + have h : ((childHH (childHL (childHH thetaBelowCell11113023)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childHH + thetaBelowCell11113023))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH thetaBelowCell11113023)) + (by + have h : ((childLL (childHH (childHH thetaBelowCell11113023)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childHH + thetaBelowCell11113023))) h) + (by + have h : ((childLH (childHH (childHH thetaBelowCell11113023)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childHH + thetaBelowCell11113023))) h) + (by + have h : ((childHL (childHH (childHH thetaBelowCell11113023)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childHH + thetaBelowCell11113023))) h) + (by + have h : ((childHH (childHH (childHH thetaBelowCell11113023)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childHH + thetaBelowCell11113023))) h)) +theorem e24KC2ThetaBelowLeaf111130322 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113032) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11113032) + (by + have h : ((childLL (childHL thetaBelowCell11113032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11113032)) h) + (by + have h : ((childLH (childHL thetaBelowCell11113032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11113032)) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL thetaBelowCell11113032)) + (by + have h : ((childLL (childHL (childHL thetaBelowCell11113032)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childHL + thetaBelowCell11113032))) h) + (by + have h : ((childLH (childHL (childHL thetaBelowCell11113032)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childHL + thetaBelowCell11113032))) h) + (by + have h : ((childHL (childHL (childHL thetaBelowCell11113032)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childHL + thetaBelowCell11113032))) h) + (by + have h : ((childHH (childHL (childHL thetaBelowCell11113032)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childHL + thetaBelowCell11113032))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL thetaBelowCell11113032)) + (by + have h : ((childLL (childHH (childHL thetaBelowCell11113032)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childHL + thetaBelowCell11113032))) h) + (by + have h : ((childLH (childHH (childHL thetaBelowCell11113032)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childHL + thetaBelowCell11113032))) h) + (by + have h : ((childHL (childHH (childHL thetaBelowCell11113032)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childHL + thetaBelowCell11113032))) h) + (by + have h : ((childHH (childHH (childHL thetaBelowCell11113032)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childHL + thetaBelowCell11113032))) h)) +theorem e24KC2ThetaBelowLeaf111130323 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113032) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11113032) + (by + have h : ((childLL (childHH thetaBelowCell11113032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11113032)) h) + (by + have h : ((childLH (childHH thetaBelowCell11113032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11113032)) h) + (by + have h : ((childHL (childHH thetaBelowCell11113032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11113032)) h) + (by + have h : ((childHH (childHH thetaBelowCell11113032))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11113032)) h) +theorem e24KC2ThetaBelowLeaf111130332 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113033) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11113033) + (by + have h : ((childLL (childHL thetaBelowCell11113033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11113033)) h) + (by + have h : ((childLH (childHL thetaBelowCell11113033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11113033)) h) + (by + have h : ((childHL (childHL thetaBelowCell11113033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11113033)) h) + (by + have h : ((childHH (childHL thetaBelowCell11113033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11113033)) h) +theorem e24KC2ThetaBelowLeaf111130333 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113033) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11113033) + (by + have h : ((childLL (childHH thetaBelowCell11113033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11113033)) h) + (by + have h : ((childLH (childHH thetaBelowCell11113033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11113033)) h) + (by + have h : ((childHL (childHH thetaBelowCell11113033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11113033)) h) + (by + have h : ((childHH (childHH thetaBelowCell11113033))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11113033)) h) +theorem e24KC2ThetaBelowLeaf111131222 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113122) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11113122) + (by + have h : ((childLL (childHL thetaBelowCell11113122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11113122)) h) + (by + have h : ((childLH (childHL thetaBelowCell11113122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11113122)) h) + (by + have h : ((childHL (childHL thetaBelowCell11113122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11113122)) h) + (by + have h : ((childHH (childHL thetaBelowCell11113122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11113122)) h) +theorem e24KC2ThetaBelowLeaf111131223 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113122) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11113122) + (by + have h : ((childLL (childHH thetaBelowCell11113122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11113122)) h) + (by + have h : ((childLH (childHH thetaBelowCell11113122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11113122)) h) + (by + have h : ((childHL (childHH thetaBelowCell11113122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11113122)) h) + (by + have h : ((childHH (childHH thetaBelowCell11113122))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11113122)) h) +theorem e24KC2ThetaBelowLeaf111131232 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113123) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11113123) + (by + have h : ((childLL (childHL thetaBelowCell11113123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11113123)) h) + (by + have h : ((childLH (childHL thetaBelowCell11113123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11113123)) h) + (by + have h : ((childHL (childHL thetaBelowCell11113123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11113123)) h) + (by + have h : ((childHH (childHL thetaBelowCell11113123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11113123)) h) +theorem e24KC2ThetaBelowLeaf111131233 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113123) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11113123) + (by + have h : ((childLL (childHH thetaBelowCell11113123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11113123)) h) + (by + have h : ((childLH (childHH thetaBelowCell11113123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11113123)) h) + (by + have h : ((childHL (childHH thetaBelowCell11113123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11113123)) h) + (by + have h : ((childHH (childHH thetaBelowCell11113123))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11113123)) h) +theorem e24KC2ThetaBelowLeaf111131322 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113132) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11113132) + (by + have h : ((childLL (childHL thetaBelowCell11113132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11113132)) h) + (by + have h : ((childLH (childHL thetaBelowCell11113132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11113132)) h) + (by + have h : ((childHL (childHL thetaBelowCell11113132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11113132)) h) + (by + have h : ((childHH (childHL thetaBelowCell11113132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11113132)) h) +theorem e24KC2ThetaBelowLeaf111131323 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113132) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11113132) + (by + have h : ((childLL (childHH thetaBelowCell11113132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11113132)) h) + (by + have h : ((childLH (childHH thetaBelowCell11113132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11113132)) h) + (by + have h : ((childHL (childHH thetaBelowCell11113132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11113132)) h) + (by + have h : ((childHH (childHH thetaBelowCell11113132))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11113132)) h) +theorem e24KC2ThetaBelowLeaf111131332 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113133) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11113133) + (by + have h : ((childLL (childHL thetaBelowCell11113133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11113133)) h) + (by + have h : ((childLH (childHL thetaBelowCell11113133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11113133)) h) + (by + have h : ((childHL (childHL thetaBelowCell11113133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11113133)) h) + (by + have h : ((childHH (childHL thetaBelowCell11113133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11113133)) h) +theorem e24KC2ThetaBelowLeaf111131333 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113133) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11113133) + (by + have h : ((childLL (childHH thetaBelowCell11113133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11113133)) h) + (by + have h : ((childLH (childHH thetaBelowCell11113133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11113133)) h) + (by + have h : ((childHL (childHH thetaBelowCell11113133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11113133)) h) + (by + have h : ((childHH (childHH thetaBelowCell11113133))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11113133)) h) +theorem e24KC2ThetaBelowLeaf111132000 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113200) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11113200) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL thetaBelowCell11113200)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLL + thetaBelowCell11113200))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLL + thetaBelowCell11113200))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLL + thetaBelowCell11113200))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLL + thetaBelowCell11113200))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL thetaBelowCell11113200)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLL + thetaBelowCell11113200))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLL + thetaBelowCell11113200))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLL + thetaBelowCell11113200))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLL + thetaBelowCell11113200))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL thetaBelowCell11113200)) + (by + have h : ((childLL (childHL (childLL thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childLL + thetaBelowCell11113200))) h) + (by + have h : ((childLH (childHL (childLL thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childLL + thetaBelowCell11113200))) h) + (by + have h : ((childHL (childHL (childLL thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childLL + thetaBelowCell11113200))) h) + (by + have h : ((childHH (childHL (childLL thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childLL + thetaBelowCell11113200))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL thetaBelowCell11113200)) + (by + have h : ((childLL (childHH (childLL thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childLL + thetaBelowCell11113200))) h) + (by + have h : ((childLH (childHH (childLL thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childLL + thetaBelowCell11113200))) h) + (by + have h : ((childHL (childHH (childLL thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childLL + thetaBelowCell11113200))) h) + (by + have h : ((childHH (childHH (childLL thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childLL + thetaBelowCell11113200))) h)) +theorem e24KC2ThetaBelowLeaf111132001 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113200) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11113200) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH thetaBelowCell11113200)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLH + thetaBelowCell11113200))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLH + thetaBelowCell11113200))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLH + thetaBelowCell11113200))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLH + thetaBelowCell11113200))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH thetaBelowCell11113200)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLH + thetaBelowCell11113200))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLH + thetaBelowCell11113200))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLH + thetaBelowCell11113200))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLH + thetaBelowCell11113200))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH thetaBelowCell11113200)) + (by + have h : ((childLL (childHL (childLH thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childLH + thetaBelowCell11113200))) h) + (by + have h : ((childLH (childHL (childLH thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childLH + thetaBelowCell11113200))) h) + (by + have h : ((childHL (childHL (childLH thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childLH + thetaBelowCell11113200))) h) + (by + have h : ((childHH (childHL (childLH thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childLH + thetaBelowCell11113200))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH thetaBelowCell11113200)) + (by + have h : ((childLL (childHH (childLH thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childLH + thetaBelowCell11113200))) h) + (by + have h : ((childLH (childHH (childLH thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childLH + thetaBelowCell11113200))) h) + (by + have h : ((childHL (childHH (childLH thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childLH + thetaBelowCell11113200))) h) + (by + have h : ((childHH (childHH (childLH thetaBelowCell11113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childLH + thetaBelowCell11113200))) h)) +theorem e24KC2ThetaBelowLeaf111132002 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113200) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11113200) + (by + have h : ((childLL (childHL thetaBelowCell11113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11113200)) h) + (by + have h : ((childLH (childHL thetaBelowCell11113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11113200)) h) + (by + have h : ((childHL (childHL thetaBelowCell11113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11113200)) h) + (by + have h : ((childHH (childHL thetaBelowCell11113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11113200)) h) +theorem e24KC2ThetaBelowLeaf111132003 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113200) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11113200) + (by + have h : ((childLL (childHH thetaBelowCell11113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH thetaBelowCell11113200)) h) + (by + have h : ((childLH (childHH thetaBelowCell11113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH thetaBelowCell11113200)) h) + (by + have h : ((childHL (childHH thetaBelowCell11113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11113200)) h) + (by + have h : ((childHH (childHH thetaBelowCell11113200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11113200)) h) +theorem e24KC2ThetaBelowLeaf111132010 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113201) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11113201) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL thetaBelowCell11113201)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLL + thetaBelowCell11113201))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLL + thetaBelowCell11113201))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLL + thetaBelowCell11113201))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLL + thetaBelowCell11113201))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL thetaBelowCell11113201)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLL + thetaBelowCell11113201))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLL + thetaBelowCell11113201))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childLL + thetaBelowCell11113201))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childLL + thetaBelowCell11113201))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL thetaBelowCell11113201)) + (by + have h : ((childLL (childHL (childLL thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childLL + thetaBelowCell11113201))) h) + (by + have h : ((childLH (childHL (childLL thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childLL + thetaBelowCell11113201))) h) + (by + have h : ((childHL (childHL (childLL thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childLL + thetaBelowCell11113201))) h) + (by + have h : ((childHH (childHL (childLL thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childLL + thetaBelowCell11113201))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL thetaBelowCell11113201)) + (by + have h : ((childLL (childHH (childLL thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childLL + thetaBelowCell11113201))) h) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHH (childLL + thetaBelowCell11113201))) + (by + have h : (thetaBelowCell111132010310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132010310 h) + (by + have h : (thetaBelowCell111132010311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132010311 h) + (by + have h : (thetaBelowCell111132010312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132010312 h) + (by + have h : (thetaBelowCell111132010313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132010313 h)) + (by + have h : ((childHL (childHH (childLL thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childLL + thetaBelowCell11113201))) h) + (by + have h : ((childHH (childHH (childLL thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childLL + thetaBelowCell11113201))) h)) +theorem cover_subtree_b3391292f833 : + adaptiveCoverCheck 8 (childLH (childLH thetaBelowCell11113201)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH thetaBelowCell11113201)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childLH + thetaBelowCell11113201))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLH + thetaBelowCell11113201))) h) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childLH (childLH + thetaBelowCell11113201))) + (by + have h : (thetaBelowCell111132011120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011120 h) + (by + have h : (thetaBelowCell111132011121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011121 h) + (by + have h : (thetaBelowCell111132011122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011122 h) + (by + have h : (thetaBelowCell111132011123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childLH (childLH + thetaBelowCell11113201))) + (by + have h : (thetaBelowCell111132011130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011130 h) + (by + have h : (thetaBelowCell111132011131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011131 h) + (by + have h : (thetaBelowCell111132011132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011132 h) + (by + have h : (thetaBelowCell111132011133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011133 h)) + +theorem cover_subtree_3e9c61b8ab9c : + adaptiveCoverCheck 8 (childHL (childLH thetaBelowCell11113201)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH thetaBelowCell11113201)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHL (childLH + thetaBelowCell11113201))) + (by + have h : (thetaBelowCell111132011200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011200 h) + (by + have h : (thetaBelowCell111132011201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011201 h) + (by + have h : (thetaBelowCell111132011202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011202 h) + (by + have h : (thetaBelowCell111132011203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHL (childLH + thetaBelowCell11113201))) + (by + have h : (thetaBelowCell111132011210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011210 h) + (by + have h : (thetaBelowCell111132011211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011211 h) + (by + have h : (thetaBelowCell111132011212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011212 h) + (by + have h : (thetaBelowCell111132011213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011213 h)) + (by + have h : ((childHL (childHL (childLH thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childLH + thetaBelowCell11113201))) h) + (by + have h : ((childHH (childHL (childLH thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childLH + thetaBelowCell11113201))) h) + +theorem cover_subtree_466ff371217d : + adaptiveCoverCheck 8 (childHH (childLH thetaBelowCell11113201)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH thetaBelowCell11113201)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHH (childLH + thetaBelowCell11113201))) + (by + have h : (thetaBelowCell111132011300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011300 h) + (by + have h : (thetaBelowCell111132011301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011301 h) + (by + have h : (thetaBelowCell111132011302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011302 h) + (by + have h : (thetaBelowCell111132011303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHH (childLH + thetaBelowCell11113201))) + (by + have h : (thetaBelowCell111132011310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011310 h) + (by + have h : (thetaBelowCell111132011311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011311 h) + (by + have h : (thetaBelowCell111132011312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011312 h) + (by + have h : (thetaBelowCell111132011313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHH (childLH + thetaBelowCell11113201))) + (by + have h : (thetaBelowCell111132011320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011320 h) + (by + have h : (thetaBelowCell111132011321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011321 h) + (by + have h : (thetaBelowCell111132011322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011322 h) + (by + have h : (thetaBelowCell111132011323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHH (childLH + thetaBelowCell11113201))) + (by + have h : (thetaBelowCell111132011330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011330 h) + (by + have h : (thetaBelowCell111132011331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011331 h) + (by + have h : (thetaBelowCell111132011332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011332 h) + (by + have h : (thetaBelowCell111132011333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132011333 h)) + +theorem e24KC2ThetaBelowLeaf111132011 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113201) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11113201) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH thetaBelowCell11113201)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childLH + thetaBelowCell11113201))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childLH + thetaBelowCell11113201))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childLH + thetaBelowCell11113201))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childLH + thetaBelowCell11113201))) h)) + cover_subtree_b3391292f833 + cover_subtree_3e9c61b8ab9c + cover_subtree_466ff371217d +theorem e24KC2ThetaBelowLeaf111132012 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113201) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL thetaBelowCell11113201) + (by + have h : ((childLL (childHL thetaBelowCell11113201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL thetaBelowCell11113201)) h) + (by + have h : ((childLH (childHL thetaBelowCell11113201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL thetaBelowCell11113201)) h) + (by + have h : ((childHL (childHL thetaBelowCell11113201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL thetaBelowCell11113201)) h) + (by + have h : ((childHH (childHL thetaBelowCell11113201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL thetaBelowCell11113201)) h) +theorem e24KC2ThetaBelowLeaf111132013 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113201) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11113201) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH thetaBelowCell11113201)) + (by + have h : ((childLL (childLL (childHH thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLL (childHH + thetaBelowCell11113201))) h) + (by + have h : ((childLH (childLL (childHH thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLL (childHH + thetaBelowCell11113201))) h) + (by + have h : ((childHL (childLL (childHH thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLL (childHH + thetaBelowCell11113201))) h) + (by + have h : ((childHH (childLL (childHH thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLL (childHH + thetaBelowCell11113201))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH thetaBelowCell11113201)) + (by + have h : ((childLL (childLH (childHH thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childLH (childHH + thetaBelowCell11113201))) h) + (by + have h : ((childLH (childLH (childHH thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childHH + thetaBelowCell11113201))) h) + (by + have h : ((childHL (childLH (childHH thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childLH (childHH + thetaBelowCell11113201))) h) + (by + have h : ((childHH (childLH (childHH thetaBelowCell11113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childLH (childHH + thetaBelowCell11113201))) h)) + (by + have h : ((childHL (childHH thetaBelowCell11113201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH thetaBelowCell11113201)) h) + (by + have h : ((childHH (childHH thetaBelowCell11113201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH thetaBelowCell11113201)) h) +theorem cover_subtree_7f4f4b92c5ab : + adaptiveCoverCheck 8 (childLL (childLL thetaBelowCell11113210)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL thetaBelowCell11113210)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childLL (childLL + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132100000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100000 h) + (by + have h : (thetaBelowCell111132100001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100001 h) + (by + have h : (thetaBelowCell111132100002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100002 h) + (by + have h : (thetaBelowCell111132100003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childLL (childLL + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132100010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100010 h) + (by + have h : (thetaBelowCell111132100011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100011 h) + (by + have h : (thetaBelowCell111132100012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100012 h) + (by + have h : (thetaBelowCell111132100013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100013 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childLL (childLL + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132100020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100020 h) + (by + have h : (thetaBelowCell111132100021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100021 h) + (by + have h : (thetaBelowCell111132100022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100022 h) + (by + have h : (thetaBelowCell111132100023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childLL (childLL + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132100030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100030 h) + (by + have h : (thetaBelowCell111132100031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100031 h) + (by + have h : (thetaBelowCell111132100032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100032 h) + (by + have h : (thetaBelowCell111132100033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100033 h)) + +theorem cover_subtree_c689c5c4108b : + adaptiveCoverCheck 8 (childLH (childLL thetaBelowCell11113210)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL thetaBelowCell11113210)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childLH (childLL + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132100100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100100 h) + (by + have h : (thetaBelowCell111132100101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100101 h) + (by + have h : (thetaBelowCell111132100102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100102 h) + (by + have h : (thetaBelowCell111132100103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100103 h)) + (by + have h : ((childLH (childLH (childLL thetaBelowCell11113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childLH (childLL + thetaBelowCell11113210))) h) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childLH (childLL + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132100120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100120 h) + (by + have h : (thetaBelowCell111132100121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100121 h) + (by + have h : (thetaBelowCell111132100122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100122 h) + (by + have h : (thetaBelowCell111132100123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childLH (childLL + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132100130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100130 h) + (by + have h : (thetaBelowCell111132100131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100131 h) + (by + have h : (thetaBelowCell111132100132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100132 h) + (by + have h : (thetaBelowCell111132100133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100133 h)) + +theorem cover_subtree_9df392f82d53 : + adaptiveCoverCheck 8 (childHL (childLL thetaBelowCell11113210)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL thetaBelowCell11113210)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHL (childLL + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132100200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100200 h) + (by + have h : (thetaBelowCell111132100201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100201 h) + (by + have h : (thetaBelowCell111132100202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100202 h) + (by + have h : (thetaBelowCell111132100203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHL (childLL + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132100210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100210 h) + (by + have h : (thetaBelowCell111132100211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100211 h) + (by + have h : (thetaBelowCell111132100212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100212 h) + (by + have h : (thetaBelowCell111132100213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHL (childLL + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132100220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100220 h) + (by + have h : (thetaBelowCell111132100221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100221 h) + (by + have h : (thetaBelowCell111132100222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100222 h) + (by + have h : (thetaBelowCell111132100223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHL (childLL + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132100230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100230 h) + (by + have h : (thetaBelowCell111132100231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100231 h) + (by + have h : (thetaBelowCell111132100232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100232 h) + (by + have h : (thetaBelowCell111132100233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100233 h)) + +theorem cover_subtree_f50cdc547dbb : + adaptiveCoverCheck 8 (childHH (childLL thetaBelowCell11113210)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL thetaBelowCell11113210)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childHH (childLL + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132100300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100300 h) + (by + have h : (thetaBelowCell111132100301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100301 h) + (by + have h : (thetaBelowCell111132100302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100302 h) + (by + have h : (thetaBelowCell111132100303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childLH (childHH (childLL + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132100310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100310 h) + (by + have h : (thetaBelowCell111132100311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100311 h) + (by + have h : (thetaBelowCell111132100312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100312 h) + (by + have h : (thetaBelowCell111132100313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childHH (childLL + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132100320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100320 h) + (by + have h : (thetaBelowCell111132100321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100321 h) + (by + have h : (thetaBelowCell111132100322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100322 h) + (by + have h : (thetaBelowCell111132100323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childHH (childLL + thetaBelowCell11113210))) + (by + have h : (thetaBelowCell111132100330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100330 h) + (by + have h : (thetaBelowCell111132100331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100331 h) + (by + have h : (thetaBelowCell111132100332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100332 h) + (by + have h : (thetaBelowCell111132100333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111132100333 h)) + +theorem e24KC2ThetaBelowLeaf111132100 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113210) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11113210) + cover_subtree_7f4f4b92c5ab + cover_subtree_c689c5c4108b + cover_subtree_9df392f82d53 + cover_subtree_f50cdc547dbb + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC6 explicit proof-producing certificate batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells00c658e5bf + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells00c658e5bf + +open CertificateCells00c658e5bf +theorem e24KC2ThetaBelowLeaf111133120 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113312) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11113312) + (by + have h : ((childLL (childLL thetaBelowCell11113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11113312)) h) + (by + have h : ((childLH (childLL thetaBelowCell11113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11113312)) h) + (by + have h : ((childHL (childLL thetaBelowCell11113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11113312)) h) + (by + have h : ((childHH (childLL thetaBelowCell11113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11113312)) h) +theorem e24KC2ThetaBelowLeaf111133121 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113312) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11113312) + (by + have h : ((childLL (childLH thetaBelowCell11113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11113312)) h) + (by + have h : ((childLH (childLH thetaBelowCell11113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11113312)) h) + (by + have h : ((childHL (childLH thetaBelowCell11113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11113312)) h) + (by + have h : ((childHH (childLH thetaBelowCell11113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11113312)) h) +theorem e24KC2ThetaBelowLeaf111133130 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113313) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL thetaBelowCell11113313) + (by + have h : ((childLL (childLL thetaBelowCell11113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL thetaBelowCell11113313)) h) + (by + have h : ((childLH (childLL thetaBelowCell11113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL thetaBelowCell11113313)) h) + (by + have h : ((childHL (childLL thetaBelowCell11113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL thetaBelowCell11113313)) h) + (by + have h : ((childHH (childLL thetaBelowCell11113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL thetaBelowCell11113313)) h) +theorem e24KC2ThetaBelowLeaf111133131 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113313) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH thetaBelowCell11113313) + (by + have h : ((childLL (childLH thetaBelowCell11113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH thetaBelowCell11113313)) h) + (by + have h : ((childLH (childLH thetaBelowCell11113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH thetaBelowCell11113313)) h) + (by + have h : ((childHL (childLH thetaBelowCell11113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH thetaBelowCell11113313)) h) + (by + have h : ((childHH (childLH thetaBelowCell11113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH thetaBelowCell11113313)) h) + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle009.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle009.lean new file mode 100644 index 0000000000..58e6a751d0 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle009.lean @@ -0,0 +1,10521 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch010`. +* `GerverSofa.KernelOnly.PartE.Certificates.Batch029`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCellse8870ef6ec + +/-- Subcell `0111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0111 : AngleCell := + childLH (childLH (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0112 : AngleCell := + childHL (childLH (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0113 : AngleCell := + childHH (childLH (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0120 : AngleCell := + childLL (childHL (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0121 : AngleCell := + childLH (childHL (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0122 : AngleCell := + childHL (childHL (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0123 : AngleCell := + childHH (childHL (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0130 : AngleCell := + childLL (childHH (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0131 : AngleCell := + childLH (childHH (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0132 : AngleCell := + childHL (childHH (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0133 : AngleCell := + childHH (childHH (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `1000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1000 : AngleCell := + childLL (childLL (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `01113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `10002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell1000))) + +/-- Subcell `10002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell1000))) + +/-- Subcell `10002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell1000))) + +/-- Subcell `10002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell1000))) + +/-- Subcell `10002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell1000))) + +/-- Subcell `10002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell1000))) + +/-- Subcell `10002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell1000))) + +/-- Subcell `10002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell1000))) + +/-- Subcell `10002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell1000))) + +/-- Subcell `10002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell1000))) + +/-- Subcell `10002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell1000))) + +/-- Subcell `10002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell1000))) + +/-- Subcell `10002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell1000))) + +/-- Subcell `10002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell1000))) + +/-- Subcell `10002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell1000))) + +/-- Subcell `10002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell1000))) + +/-- Subcell `10002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell1000))) + +/-- Subcell `10003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell1000))) + +/-- Subcell `10003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell1000))) + +/-- Subcell `10003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell1000))) + +/-- Subcell `10003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell1000))) + +/-- Subcell `10003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell1000))) + +/-- Subcell `10003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell1000))) + +/-- Subcell `10003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell1000))) + +/-- Subcell `10003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell1000))) + +/-- Subcell `10003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell1000))) + +/-- Subcell `10003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell1000))) + +/-- Subcell `10003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell1000))) + +/-- Subcell `10003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell1000))) + +/-- Subcell `10003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell1000))) + +/-- Subcell `10003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell1000))) + +/-- Subcell `10003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell1000))) + +/-- Subcell `10003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell1000))) + +end GerverSofa.PartE.CertificateCellse8870ef6ec + +namespace GerverSofa.PartE.CertificateCells7b7ba6d809 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `000032012000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00003201))) + +/-- Subcell `000032012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00003201))) + +/-- Subcell `000032013000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00003201))) + +/-- Subcell `000032013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00003201))) + +/-- Subcell `000032102000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00003210))) + +/-- Subcell `000032102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00003210))) + +/-- Subcell `000032103000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00003210))) + +/-- Subcell `000032103133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032103133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00003210))) + +/-- Subcell `000032112000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00003211))) + +/-- Subcell `000032112133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032112133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00003211))) + +/-- Subcell `000032113000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00003211))) + +/-- Subcell `000032113133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000032113133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00003211))) + +/-- Subcell `000033002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00003300))) + +/-- Subcell `000033002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00003300))) + +/-- Subcell `000033003000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00003300))) + +/-- Subcell `000033003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00003300))) + +/-- Subcell `000033012000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00003301))) + +/-- Subcell `000033013000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00003301))) + +/-- Subcell `000033102000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00003310))) + +end GerverSofa.PartE.CertificateCells7b7ba6d809 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC5TerminalBatchT358400010`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse8870ef6ec + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse8870ef6ec + +open CertificateCellse8870ef6ec +theorem e24KC2ThetaAboveLeaf0111320212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01113202)) = true := by + have h : ((childHL (childLH thetaAboveCell01113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01113202)) h +theorem e24KC2ThetaAboveLeaf0111320213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01113202)) = true := by + have h : ((childHH (childLH thetaAboveCell01113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01113202)) h +theorem e24KC2ThetaAboveLeaf0111320220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01113202)) = true := by + have h : ((childLL (childHL thetaAboveCell01113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01113202)) h +theorem e24KC2ThetaAboveLeaf0111320221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01113202)) = true := by + have h : ((childLH (childHL thetaAboveCell01113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01113202)) h +theorem e24KC2ThetaAboveLeaf0111320222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01113202)) = true := by + have h : ((childHL (childHL thetaAboveCell01113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01113202)) h +theorem e24KC2ThetaAboveLeaf0111320223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01113202)) = true := by + have h : ((childHH (childHL thetaAboveCell01113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01113202)) h +theorem e24KC2ThetaAboveLeaf0111320230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01113202)) = true := by + have h : ((childLL (childHH thetaAboveCell01113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01113202)) h +theorem e24KC2ThetaAboveLeaf0111320231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01113202)) = true := by + have h : ((childLH (childHH thetaAboveCell01113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01113202)) h +theorem e24KC2ThetaAboveLeaf0111320232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01113202)) = true := by + have h : ((childHL (childHH thetaAboveCell01113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01113202)) h +theorem e24KC2ThetaAboveLeaf0111320233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01113202)) = true := by + have h : ((childHH (childHH thetaAboveCell01113202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01113202)) h +theorem e24KC2ThetaAboveLeaf0111320300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01113203)) = true := by + have h : ((childLL (childLL thetaAboveCell01113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01113203)) h +theorem e24KC2ThetaAboveLeaf0111320301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01113203)) = true := by + have h : ((childLH (childLL thetaAboveCell01113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01113203)) h +theorem e24KC2ThetaAboveLeaf0111320302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01113203)) = true := by + have h : ((childHL (childLL thetaAboveCell01113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01113203)) h +theorem e24KC2ThetaAboveLeaf0111320303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01113203)) = true := by + have h : ((childHH (childLL thetaAboveCell01113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01113203)) h +theorem e24KC2ThetaAboveLeaf0111320310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01113203)) = true := by + have h : ((childLL (childLH thetaAboveCell01113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01113203)) h +theorem e24KC2ThetaAboveLeaf0111320311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01113203)) = true := by + have h : ((childLH (childLH thetaAboveCell01113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01113203)) h +theorem e24KC2ThetaAboveLeaf0111320312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01113203)) = true := by + have h : ((childHL (childLH thetaAboveCell01113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01113203)) h +theorem e24KC2ThetaAboveLeaf0111320313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01113203)) = true := by + have h : ((childHH (childLH thetaAboveCell01113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01113203)) h +theorem e24KC2ThetaAboveLeaf0111320320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01113203)) = true := by + have h : ((childLL (childHL thetaAboveCell01113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01113203)) h +theorem e24KC2ThetaAboveLeaf0111320321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01113203)) = true := by + have h : ((childLH (childHL thetaAboveCell01113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01113203)) h +theorem e24KC2ThetaAboveLeaf0111320322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01113203)) = true := by + have h : ((childHL (childHL thetaAboveCell01113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01113203)) h +theorem e24KC2ThetaAboveLeaf0111320323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01113203)) = true := by + have h : ((childHH (childHL thetaAboveCell01113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01113203)) h +theorem e24KC2ThetaAboveLeaf0111320330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01113203)) = true := by + have h : ((childLL (childHH thetaAboveCell01113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01113203)) h +theorem e24KC2ThetaAboveLeaf0111320331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01113203)) = true := by + have h : ((childLH (childHH thetaAboveCell01113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01113203)) h +theorem e24KC2ThetaAboveLeaf0111320332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01113203)) = true := by + have h : ((childHL (childHH thetaAboveCell01113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01113203)) h +theorem e24KC2ThetaAboveLeaf0111320333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01113203)) = true := by + have h : ((childHH (childHH thetaAboveCell01113203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01113203)) h +theorem e24KC2ThetaAboveLeaf011132100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113210) = true := by + have h : ((childLL thetaAboveCell01113210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01113210) h +theorem e24KC2ThetaAboveLeaf011132101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113210) = true := by + have h : ((childLH thetaAboveCell01113210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01113210) h +theorem e24KC2ThetaAboveLeaf011132102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113210) = true := by + have h : ((childHL thetaAboveCell01113210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01113210) h +theorem e24KC2ThetaAboveLeaf011132103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113210) = true := by + have h : ((childHH thetaAboveCell01113210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01113210) h +theorem e24KC2ThetaAboveLeaf011132110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113211) = true := by + have h : ((childLL thetaAboveCell01113211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01113211) h +theorem e24KC2ThetaAboveLeaf011132111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113211) = true := by + have h : ((childLH thetaAboveCell01113211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01113211) h +theorem e24KC2ThetaAboveLeaf011132112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113211) = true := by + have h : ((childHL thetaAboveCell01113211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01113211) h +theorem e24KC2ThetaAboveLeaf011132113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113211) = true := by + have h : ((childHH thetaAboveCell01113211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01113211) h +theorem e24KC2ThetaAboveLeaf0111321200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01113212)) = true := by + have h : ((childLL (childLL thetaAboveCell01113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01113212)) h +theorem e24KC2ThetaAboveLeaf0111321201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01113212)) = true := by + have h : ((childLH (childLL thetaAboveCell01113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01113212)) h +theorem e24KC2ThetaAboveLeaf0111321202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01113212)) = true := by + have h : ((childHL (childLL thetaAboveCell01113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01113212)) h +theorem e24KC2ThetaAboveLeaf0111321203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01113212)) = true := by + have h : ((childHH (childLL thetaAboveCell01113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01113212)) h +theorem e24KC2ThetaAboveLeaf0111321210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01113212)) = true := by + have h : ((childLL (childLH thetaAboveCell01113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01113212)) h +theorem e24KC2ThetaAboveLeaf0111321211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01113212)) = true := by + have h : ((childLH (childLH thetaAboveCell01113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01113212)) h +theorem e24KC2ThetaAboveLeaf0111321212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01113212)) = true := by + have h : ((childHL (childLH thetaAboveCell01113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01113212)) h +theorem e24KC2ThetaAboveLeaf0111321213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01113212)) = true := by + have h : ((childHH (childLH thetaAboveCell01113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01113212)) h +theorem e24KC2ThetaAboveLeaf0111321220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01113212)) = true := by + have h : ((childLL (childHL thetaAboveCell01113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01113212)) h +theorem e24KC2ThetaAboveLeaf0111321221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01113212)) = true := by + have h : ((childLH (childHL thetaAboveCell01113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01113212)) h +theorem e24KC2ThetaAboveLeaf0111321222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01113212)) = true := by + have h : ((childHL (childHL thetaAboveCell01113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01113212)) h +theorem e24KC2ThetaAboveLeaf0111321223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01113212)) = true := by + have h : ((childHH (childHL thetaAboveCell01113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01113212)) h +theorem e24KC2ThetaAboveLeaf0111321230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01113212)) = true := by + have h : ((childLL (childHH thetaAboveCell01113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01113212)) h +theorem e24KC2ThetaAboveLeaf0111321231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01113212)) = true := by + have h : ((childLH (childHH thetaAboveCell01113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01113212)) h +theorem e24KC2ThetaAboveLeaf0111321232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01113212)) = true := by + have h : ((childHL (childHH thetaAboveCell01113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01113212)) h +theorem e24KC2ThetaAboveLeaf0111321233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01113212)) = true := by + have h : ((childHH (childHH thetaAboveCell01113212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01113212)) h +theorem e24KC2ThetaAboveLeaf0111321300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01113213)) = true := by + have h : ((childLL (childLL thetaAboveCell01113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01113213)) h +theorem e24KC2ThetaAboveLeaf0111321301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01113213)) = true := by + have h : ((childLH (childLL thetaAboveCell01113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01113213)) h +theorem e24KC2ThetaAboveLeaf0111321302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01113213)) = true := by + have h : ((childHL (childLL thetaAboveCell01113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01113213)) h +theorem e24KC2ThetaAboveLeaf0111321303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01113213)) = true := by + have h : ((childHH (childLL thetaAboveCell01113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01113213)) h +theorem e24KC2ThetaAboveLeaf0111321310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01113213)) = true := by + have h : ((childLL (childLH thetaAboveCell01113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01113213)) h +theorem e24KC2ThetaAboveLeaf0111321311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01113213)) = true := by + have h : ((childLH (childLH thetaAboveCell01113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01113213)) h +theorem e24KC2ThetaAboveLeaf0111321312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01113213)) = true := by + have h : ((childHL (childLH thetaAboveCell01113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01113213)) h +theorem e24KC2ThetaAboveLeaf0111321313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01113213)) = true := by + have h : ((childHH (childLH thetaAboveCell01113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01113213)) h +theorem e24KC2ThetaAboveLeaf0111321320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01113213)) = true := by + have h : ((childLL (childHL thetaAboveCell01113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01113213)) h +theorem e24KC2ThetaAboveLeaf0111321321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01113213)) = true := by + have h : ((childLH (childHL thetaAboveCell01113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01113213)) h +theorem e24KC2ThetaAboveLeaf0111321322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01113213)) = true := by + have h : ((childHL (childHL thetaAboveCell01113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01113213)) h +theorem e24KC2ThetaAboveLeaf0111321323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01113213)) = true := by + have h : ((childHH (childHL thetaAboveCell01113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01113213)) h +theorem e24KC2ThetaAboveLeaf0111321330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01113213)) = true := by + have h : ((childLL (childHH thetaAboveCell01113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01113213)) h +theorem e24KC2ThetaAboveLeaf0111321331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01113213)) = true := by + have h : ((childLH (childHH thetaAboveCell01113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01113213)) h +theorem e24KC2ThetaAboveLeaf0111321332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01113213)) = true := by + have h : ((childHL (childHH thetaAboveCell01113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01113213)) h +theorem e24KC2ThetaAboveLeaf0111321333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01113213)) = true := by + have h : ((childHH (childHH thetaAboveCell01113213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01113213)) h +theorem e24KC2ThetaAboveLeaf011132200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113220) = true := by + have h : ((childLL thetaAboveCell01113220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01113220) h +theorem e24KC2ThetaAboveLeaf011132201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113220) = true := by + have h : ((childLH thetaAboveCell01113220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01113220) h +theorem e24KC2ThetaAboveLeaf011132202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113220) = true := by + have h : ((childHL thetaAboveCell01113220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01113220) h +theorem e24KC2ThetaAboveLeaf011132203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113220) = true := by + have h : ((childHH thetaAboveCell01113220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01113220) h +theorem e24KC2ThetaAboveLeaf011132210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113221) = true := by + have h : ((childLL thetaAboveCell01113221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01113221) h +theorem e24KC2ThetaAboveLeaf011132211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113221) = true := by + have h : ((childLH thetaAboveCell01113221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01113221) h +theorem e24KC2ThetaAboveLeaf011132212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113221) = true := by + have h : ((childHL thetaAboveCell01113221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01113221) h +theorem e24KC2ThetaAboveLeaf011132213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113221) = true := by + have h : ((childHH thetaAboveCell01113221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01113221) h +theorem e24KC2ThetaAboveLeaf01113222 : + adaptiveCoverCheck 11 thetaAboveCell01113222 = true := by + have h : (thetaAboveCell01113222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113222 h +theorem e24KC2ThetaAboveLeaf01113223 : + adaptiveCoverCheck 11 thetaAboveCell01113223 = true := by + have h : (thetaAboveCell01113223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113223 h +theorem e24KC2ThetaAboveLeaf011132300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113230) = true := by + have h : ((childLL thetaAboveCell01113230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01113230) h +theorem e24KC2ThetaAboveLeaf011132301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113230) = true := by + have h : ((childLH thetaAboveCell01113230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01113230) h +theorem e24KC2ThetaAboveLeaf011132302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113230) = true := by + have h : ((childHL thetaAboveCell01113230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01113230) h +theorem e24KC2ThetaAboveLeaf011132303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113230) = true := by + have h : ((childHH thetaAboveCell01113230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01113230) h +theorem e24KC2ThetaAboveLeaf011132310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113231) = true := by + have h : ((childLL thetaAboveCell01113231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01113231) h +theorem e24KC2ThetaAboveLeaf011132311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113231) = true := by + have h : ((childLH thetaAboveCell01113231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01113231) h +theorem e24KC2ThetaAboveLeaf011132312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113231) = true := by + have h : ((childHL thetaAboveCell01113231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01113231) h +theorem e24KC2ThetaAboveLeaf011132313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113231) = true := by + have h : ((childHH thetaAboveCell01113231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01113231) h +theorem e24KC2ThetaAboveLeaf01113232 : + adaptiveCoverCheck 11 thetaAboveCell01113232 = true := by + have h : (thetaAboveCell01113232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113232 h +theorem e24KC2ThetaAboveLeaf01113233 : + adaptiveCoverCheck 11 thetaAboveCell01113233 = true := by + have h : (thetaAboveCell01113233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113233 h +theorem e24KC2ThetaAboveLeaf011133000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113300) = true := by + have h : ((childLL thetaAboveCell01113300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01113300) h +theorem e24KC2ThetaAboveLeaf011133001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113300) = true := by + have h : ((childLH thetaAboveCell01113300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01113300) h +theorem e24KC2ThetaAboveLeaf011133002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113300) = true := by + have h : ((childHL thetaAboveCell01113300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01113300) h +theorem e24KC2ThetaAboveLeaf011133003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113300) = true := by + have h : ((childHH thetaAboveCell01113300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01113300) h +theorem e24KC2ThetaAboveLeaf011133010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113301) = true := by + have h : ((childLL thetaAboveCell01113301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01113301) h +theorem e24KC2ThetaAboveLeaf011133011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113301) = true := by + have h : ((childLH thetaAboveCell01113301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01113301) h +theorem e24KC2ThetaAboveLeaf011133012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113301) = true := by + have h : ((childHL thetaAboveCell01113301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01113301) h +theorem e24KC2ThetaAboveLeaf011133013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113301) = true := by + have h : ((childHH thetaAboveCell01113301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01113301) h +theorem e24KC2ThetaAboveLeaf0111330200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01113302)) = true := by + have h : ((childLL (childLL thetaAboveCell01113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01113302)) h +theorem e24KC2ThetaAboveLeaf0111330201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01113302)) = true := by + have h : ((childLH (childLL thetaAboveCell01113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01113302)) h +theorem e24KC2ThetaAboveLeaf0111330202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01113302)) = true := by + have h : ((childHL (childLL thetaAboveCell01113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01113302)) h +theorem e24KC2ThetaAboveLeaf0111330203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01113302)) = true := by + have h : ((childHH (childLL thetaAboveCell01113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01113302)) h +theorem e24KC2ThetaAboveLeaf0111330210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01113302)) = true := by + have h : ((childLL (childLH thetaAboveCell01113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01113302)) h +theorem e24KC2ThetaAboveLeaf0111330211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01113302)) = true := by + have h : ((childLH (childLH thetaAboveCell01113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01113302)) h +theorem e24KC2ThetaAboveLeaf0111330212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01113302)) = true := by + have h : ((childHL (childLH thetaAboveCell01113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01113302)) h +theorem e24KC2ThetaAboveLeaf0111330213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01113302)) = true := by + have h : ((childHH (childLH thetaAboveCell01113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01113302)) h +theorem e24KC2ThetaAboveLeaf0111330220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01113302)) = true := by + have h : ((childLL (childHL thetaAboveCell01113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01113302)) h +theorem e24KC2ThetaAboveLeaf0111330221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01113302)) = true := by + have h : ((childLH (childHL thetaAboveCell01113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01113302)) h +theorem e24KC2ThetaAboveLeaf0111330222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01113302)) = true := by + have h : ((childHL (childHL thetaAboveCell01113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01113302)) h +theorem e24KC2ThetaAboveLeaf0111330223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01113302)) = true := by + have h : ((childHH (childHL thetaAboveCell01113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01113302)) h +theorem e24KC2ThetaAboveLeaf0111330230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01113302)) = true := by + have h : ((childLL (childHH thetaAboveCell01113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01113302)) h +theorem e24KC2ThetaAboveLeaf0111330231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01113302)) = true := by + have h : ((childLH (childHH thetaAboveCell01113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01113302)) h +theorem e24KC2ThetaAboveLeaf0111330232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01113302)) = true := by + have h : ((childHL (childHH thetaAboveCell01113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01113302)) h +theorem e24KC2ThetaAboveLeaf0111330233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01113302)) = true := by + have h : ((childHH (childHH thetaAboveCell01113302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01113302)) h +theorem e24KC2ThetaAboveLeaf0111330300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01113303)) = true := by + have h : ((childLL (childLL thetaAboveCell01113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01113303)) h +theorem e24KC2ThetaAboveLeaf0111330301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01113303)) = true := by + have h : ((childLH (childLL thetaAboveCell01113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01113303)) h +theorem e24KC2ThetaAboveLeaf0111330302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01113303)) = true := by + have h : ((childHL (childLL thetaAboveCell01113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01113303)) h +theorem e24KC2ThetaAboveLeaf0111330303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01113303)) = true := by + have h : ((childHH (childLL thetaAboveCell01113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01113303)) h +theorem e24KC2ThetaAboveLeaf0111330310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01113303)) = true := by + have h : ((childLL (childLH thetaAboveCell01113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01113303)) h +theorem e24KC2ThetaAboveLeaf0111330311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01113303)) = true := by + have h : ((childLH (childLH thetaAboveCell01113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01113303)) h +theorem e24KC2ThetaAboveLeaf0111330312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01113303)) = true := by + have h : ((childHL (childLH thetaAboveCell01113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01113303)) h +theorem e24KC2ThetaAboveLeaf0111330313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01113303)) = true := by + have h : ((childHH (childLH thetaAboveCell01113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01113303)) h +theorem e24KC2ThetaAboveLeaf0111330320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01113303)) = true := by + have h : ((childLL (childHL thetaAboveCell01113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01113303)) h +theorem e24KC2ThetaAboveLeaf0111330321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01113303)) = true := by + have h : ((childLH (childHL thetaAboveCell01113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01113303)) h +theorem e24KC2ThetaAboveLeaf0111330322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01113303)) = true := by + have h : ((childHL (childHL thetaAboveCell01113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01113303)) h +theorem e24KC2ThetaAboveLeaf0111330323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01113303)) = true := by + have h : ((childHH (childHL thetaAboveCell01113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01113303)) h +theorem e24KC2ThetaAboveLeaf0111330330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01113303)) = true := by + have h : ((childLL (childHH thetaAboveCell01113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01113303)) h +theorem e24KC2ThetaAboveLeaf0111330331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01113303)) = true := by + have h : ((childLH (childHH thetaAboveCell01113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01113303)) h +theorem e24KC2ThetaAboveLeaf0111330332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01113303)) = true := by + have h : ((childHL (childHH thetaAboveCell01113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01113303)) h +theorem e24KC2ThetaAboveLeaf0111330333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01113303)) = true := by + have h : ((childHH (childHH thetaAboveCell01113303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01113303)) h +theorem e24KC2ThetaAboveLeaf011133100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113310) = true := by + have h : ((childLL thetaAboveCell01113310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01113310) h +theorem e24KC2ThetaAboveLeaf011133101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113310) = true := by + have h : ((childLH thetaAboveCell01113310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01113310) h +theorem e24KC2ThetaAboveLeaf011133102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113310) = true := by + have h : ((childHL thetaAboveCell01113310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01113310) h +theorem e24KC2ThetaAboveLeaf011133103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113310) = true := by + have h : ((childHH thetaAboveCell01113310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01113310) h +theorem e24KC2ThetaAboveLeaf011133110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113311) = true := by + have h : ((childLL thetaAboveCell01113311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01113311) h +theorem e24KC2ThetaAboveLeaf011133111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113311) = true := by + have h : ((childLH thetaAboveCell01113311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01113311) h +theorem e24KC2ThetaAboveLeaf011133112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113311) = true := by + have h : ((childHL thetaAboveCell01113311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01113311) h +theorem e24KC2ThetaAboveLeaf011133113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113311) = true := by + have h : ((childHH thetaAboveCell01113311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01113311) h +theorem e24KC2ThetaAboveLeaf0111331200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01113312)) = true := by + have h : ((childLL (childLL thetaAboveCell01113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01113312)) h +theorem e24KC2ThetaAboveLeaf0111331201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01113312)) = true := by + have h : ((childLH (childLL thetaAboveCell01113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01113312)) h +theorem e24KC2ThetaAboveLeaf0111331202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01113312)) = true := by + have h : ((childHL (childLL thetaAboveCell01113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01113312)) h +theorem e24KC2ThetaAboveLeaf0111331203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01113312)) = true := by + have h : ((childHH (childLL thetaAboveCell01113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01113312)) h +theorem e24KC2ThetaAboveLeaf0111331210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01113312)) = true := by + have h : ((childLL (childLH thetaAboveCell01113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01113312)) h +theorem e24KC2ThetaAboveLeaf0111331211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01113312)) = true := by + have h : ((childLH (childLH thetaAboveCell01113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01113312)) h +theorem e24KC2ThetaAboveLeaf0111331212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01113312)) = true := by + have h : ((childHL (childLH thetaAboveCell01113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01113312)) h +theorem e24KC2ThetaAboveLeaf0111331213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01113312)) = true := by + have h : ((childHH (childLH thetaAboveCell01113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01113312)) h +theorem e24KC2ThetaAboveLeaf0111331220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01113312)) = true := by + have h : ((childLL (childHL thetaAboveCell01113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01113312)) h +theorem e24KC2ThetaAboveLeaf0111331221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01113312)) = true := by + have h : ((childLH (childHL thetaAboveCell01113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01113312)) h +theorem e24KC2ThetaAboveLeaf0111331222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01113312)) = true := by + have h : ((childHL (childHL thetaAboveCell01113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01113312)) h +theorem e24KC2ThetaAboveLeaf0111331223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01113312)) = true := by + have h : ((childHH (childHL thetaAboveCell01113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01113312)) h +theorem e24KC2ThetaAboveLeaf0111331230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01113312)) = true := by + have h : ((childLL (childHH thetaAboveCell01113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01113312)) h +theorem e24KC2ThetaAboveLeaf0111331231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01113312)) = true := by + have h : ((childLH (childHH thetaAboveCell01113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01113312)) h +theorem e24KC2ThetaAboveLeaf0111331232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01113312)) = true := by + have h : ((childHL (childHH thetaAboveCell01113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01113312)) h +theorem e24KC2ThetaAboveLeaf0111331233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01113312)) = true := by + have h : ((childHH (childHH thetaAboveCell01113312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01113312)) h +theorem e24KC2ThetaAboveLeaf0111331300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell01113313)) = true := by + have h : ((childLL (childLL thetaAboveCell01113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell01113313)) h +theorem e24KC2ThetaAboveLeaf0111331301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell01113313)) = true := by + have h : ((childLH (childLL thetaAboveCell01113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell01113313)) h +theorem e24KC2ThetaAboveLeaf0111331302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell01113313)) = true := by + have h : ((childHL (childLL thetaAboveCell01113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell01113313)) h +theorem e24KC2ThetaAboveLeaf0111331303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell01113313)) = true := by + have h : ((childHH (childLL thetaAboveCell01113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell01113313)) h +theorem e24KC2ThetaAboveLeaf0111331310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell01113313)) = true := by + have h : ((childLL (childLH thetaAboveCell01113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell01113313)) h +theorem e24KC2ThetaAboveLeaf0111331311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell01113313)) = true := by + have h : ((childLH (childLH thetaAboveCell01113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell01113313)) h +theorem e24KC2ThetaAboveLeaf0111331312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell01113313)) = true := by + have h : ((childHL (childLH thetaAboveCell01113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell01113313)) h +theorem e24KC2ThetaAboveLeaf0111331313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell01113313)) = true := by + have h : ((childHH (childLH thetaAboveCell01113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell01113313)) h +theorem e24KC2ThetaAboveLeaf0111331320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell01113313)) = true := by + have h : ((childLL (childHL thetaAboveCell01113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell01113313)) h +theorem e24KC2ThetaAboveLeaf0111331321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell01113313)) = true := by + have h : ((childLH (childHL thetaAboveCell01113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell01113313)) h +theorem e24KC2ThetaAboveLeaf0111331322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell01113313)) = true := by + have h : ((childHL (childHL thetaAboveCell01113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell01113313)) h +theorem e24KC2ThetaAboveLeaf0111331323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell01113313)) = true := by + have h : ((childHH (childHL thetaAboveCell01113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell01113313)) h +theorem e24KC2ThetaAboveLeaf0111331330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell01113313)) = true := by + have h : ((childLL (childHH thetaAboveCell01113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell01113313)) h +theorem e24KC2ThetaAboveLeaf0111331331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell01113313)) = true := by + have h : ((childLH (childHH thetaAboveCell01113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell01113313)) h +theorem e24KC2ThetaAboveLeaf0111331332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell01113313)) = true := by + have h : ((childHL (childHH thetaAboveCell01113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell01113313)) h +theorem e24KC2ThetaAboveLeaf0111331333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell01113313)) = true := by + have h : ((childHH (childHH thetaAboveCell01113313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell01113313)) h +theorem e24KC2ThetaAboveLeaf011133200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113320) = true := by + have h : ((childLL thetaAboveCell01113320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01113320) h +theorem e24KC2ThetaAboveLeaf011133201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113320) = true := by + have h : ((childLH thetaAboveCell01113320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01113320) h +theorem e24KC2ThetaAboveLeaf011133202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113320) = true := by + have h : ((childHL thetaAboveCell01113320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01113320) h +theorem e24KC2ThetaAboveLeaf011133203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113320) = true := by + have h : ((childHH thetaAboveCell01113320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01113320) h +theorem e24KC2ThetaAboveLeaf011133210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113321) = true := by + have h : ((childLL thetaAboveCell01113321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01113321) h +theorem e24KC2ThetaAboveLeaf011133211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113321) = true := by + have h : ((childLH thetaAboveCell01113321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01113321) h +theorem e24KC2ThetaAboveLeaf011133212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113321) = true := by + have h : ((childHL thetaAboveCell01113321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01113321) h +theorem e24KC2ThetaAboveLeaf011133213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113321) = true := by + have h : ((childHH thetaAboveCell01113321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01113321) h +theorem e24KC2ThetaAboveLeaf01113322 : + adaptiveCoverCheck 11 thetaAboveCell01113322 = true := by + have h : (thetaAboveCell01113322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113322 h +theorem e24KC2ThetaAboveLeaf01113323 : + adaptiveCoverCheck 11 thetaAboveCell01113323 = true := by + have h : (thetaAboveCell01113323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113323 h +theorem e24KC2ThetaAboveLeaf011133300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113330) = true := by + have h : ((childLL thetaAboveCell01113330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01113330) h +theorem e24KC2ThetaAboveLeaf011133301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113330) = true := by + have h : ((childLH thetaAboveCell01113330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01113330) h +theorem e24KC2ThetaAboveLeaf011133302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113330) = true := by + have h : ((childHL thetaAboveCell01113330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01113330) h +theorem e24KC2ThetaAboveLeaf011133303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113330) = true := by + have h : ((childHH thetaAboveCell01113330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01113330) h +theorem e24KC2ThetaAboveLeaf011133310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113331) = true := by + have h : ((childLL thetaAboveCell01113331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell01113331) h +theorem e24KC2ThetaAboveLeaf011133311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113331) = true := by + have h : ((childLH thetaAboveCell01113331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell01113331) h +theorem e24KC2ThetaAboveLeaf011133312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113331) = true := by + have h : ((childHL thetaAboveCell01113331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell01113331) h +theorem e24KC2ThetaAboveLeaf011133313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113331) = true := by + have h : ((childHH thetaAboveCell01113331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell01113331) h +theorem e24KC2ThetaAboveLeaf01113332 : + adaptiveCoverCheck 11 thetaAboveCell01113332 = true := by + have h : (thetaAboveCell01113332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113332 h +theorem e24KC2ThetaAboveLeaf01113333 : + adaptiveCoverCheck 11 thetaAboveCell01113333 = true := by + have h : (thetaAboveCell01113333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell01113333 h +theorem e24KC2ThetaAboveLeaf0112000 : + adaptiveCoverCheck 12 (childLL (childLL (childLL thetaAboveCell0112))) = true := by + have h : ((childLL (childLL (childLL thetaAboveCell0112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLL thetaAboveCell0112))) h +theorem e24KC2ThetaAboveLeaf0112001 : + adaptiveCoverCheck 12 (childLH (childLL (childLL thetaAboveCell0112))) = true := by + have h : ((childLH (childLL (childLL thetaAboveCell0112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLL thetaAboveCell0112))) h +theorem e24KC2ThetaAboveLeaf0112002 : + adaptiveCoverCheck 12 (childHL (childLL (childLL thetaAboveCell0112))) = true := by + have h : ((childHL (childLL (childLL thetaAboveCell0112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLL thetaAboveCell0112))) h +theorem e24KC2ThetaAboveLeaf0112003 : + adaptiveCoverCheck 12 (childHH (childLL (childLL thetaAboveCell0112))) = true := by + have h : ((childHH (childLL (childLL thetaAboveCell0112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLL thetaAboveCell0112))) h +theorem e24KC2ThetaAboveLeaf0112010 : + adaptiveCoverCheck 12 (childLL (childLH (childLL thetaAboveCell0112))) = true := by + have h : ((childLL (childLH (childLL thetaAboveCell0112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLL thetaAboveCell0112))) h +theorem e24KC2ThetaAboveLeaf0112011 : + adaptiveCoverCheck 12 (childLH (childLH (childLL thetaAboveCell0112))) = true := by + have h : ((childLH (childLH (childLL thetaAboveCell0112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLL thetaAboveCell0112))) h +theorem e24KC2ThetaAboveLeaf0112012 : + adaptiveCoverCheck 12 (childHL (childLH (childLL thetaAboveCell0112))) = true := by + have h : ((childHL (childLH (childLL thetaAboveCell0112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLL thetaAboveCell0112))) h +theorem e24KC2ThetaAboveLeaf0112013 : + adaptiveCoverCheck 12 (childHH (childLH (childLL thetaAboveCell0112))) = true := by + have h : ((childHH (childLH (childLL thetaAboveCell0112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLL thetaAboveCell0112))) h +theorem e24KC2ThetaAboveLeaf011202 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell0112)) = true := by + have h : ((childHL (childLL thetaAboveCell0112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell0112)) h +theorem e24KC2ThetaAboveLeaf011203 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell0112)) = true := by + have h : ((childHH (childLL thetaAboveCell0112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell0112)) h +theorem e24KC2ThetaAboveLeaf0112100 : + adaptiveCoverCheck 12 (childLL (childLL (childLH thetaAboveCell0112))) = true := by + have h : ((childLL (childLL (childLH thetaAboveCell0112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLH thetaAboveCell0112))) h +theorem e24KC2ThetaAboveLeaf0112101 : + adaptiveCoverCheck 12 (childLH (childLL (childLH thetaAboveCell0112))) = true := by + have h : ((childLH (childLL (childLH thetaAboveCell0112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLH thetaAboveCell0112))) h +theorem e24KC2ThetaAboveLeaf0112102 : + adaptiveCoverCheck 12 (childHL (childLL (childLH thetaAboveCell0112))) = true := by + have h : ((childHL (childLL (childLH thetaAboveCell0112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLH thetaAboveCell0112))) h +theorem e24KC2ThetaAboveLeaf0112103 : + adaptiveCoverCheck 12 (childHH (childLL (childLH thetaAboveCell0112))) = true := by + have h : ((childHH (childLL (childLH thetaAboveCell0112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLH thetaAboveCell0112))) h +theorem e24KC2ThetaAboveLeaf0112110 : + adaptiveCoverCheck 12 (childLL (childLH (childLH thetaAboveCell0112))) = true := by + have h : ((childLL (childLH (childLH thetaAboveCell0112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLH thetaAboveCell0112))) h +theorem e24KC2ThetaAboveLeaf0112111 : + adaptiveCoverCheck 12 (childLH (childLH (childLH thetaAboveCell0112))) = true := by + have h : ((childLH (childLH (childLH thetaAboveCell0112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLH thetaAboveCell0112))) h +theorem e24KC2ThetaAboveLeaf0112112 : + adaptiveCoverCheck 12 (childHL (childLH (childLH thetaAboveCell0112))) = true := by + have h : ((childHL (childLH (childLH thetaAboveCell0112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLH thetaAboveCell0112))) h +theorem e24KC2ThetaAboveLeaf0112113 : + adaptiveCoverCheck 12 (childHH (childLH (childLH thetaAboveCell0112))) = true := by + have h : ((childHH (childLH (childLH thetaAboveCell0112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLH thetaAboveCell0112))) h +theorem e24KC2ThetaAboveLeaf011212 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell0112)) = true := by + have h : ((childHL (childLH thetaAboveCell0112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell0112)) h +theorem e24KC2ThetaAboveLeaf011213 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell0112)) = true := by + have h : ((childHH (childLH thetaAboveCell0112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell0112)) h +theorem e24KC2ThetaAboveLeaf01122 : + adaptiveCoverCheck 14 (childHL thetaAboveCell0112) = true := by + have h : ((childHL thetaAboveCell0112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHL thetaAboveCell0112) h +theorem e24KC2ThetaAboveLeaf01123 : + adaptiveCoverCheck 14 (childHH thetaAboveCell0112) = true := by + have h : ((childHH thetaAboveCell0112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHH thetaAboveCell0112) h +theorem e24KC2ThetaAboveLeaf0113000 : + adaptiveCoverCheck 12 (childLL (childLL (childLL thetaAboveCell0113))) = true := by + have h : ((childLL (childLL (childLL thetaAboveCell0113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLL thetaAboveCell0113))) h +theorem e24KC2ThetaAboveLeaf0113001 : + adaptiveCoverCheck 12 (childLH (childLL (childLL thetaAboveCell0113))) = true := by + have h : ((childLH (childLL (childLL thetaAboveCell0113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLL thetaAboveCell0113))) h +theorem e24KC2ThetaAboveLeaf0113002 : + adaptiveCoverCheck 12 (childHL (childLL (childLL thetaAboveCell0113))) = true := by + have h : ((childHL (childLL (childLL thetaAboveCell0113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLL thetaAboveCell0113))) h +theorem e24KC2ThetaAboveLeaf0113003 : + adaptiveCoverCheck 12 (childHH (childLL (childLL thetaAboveCell0113))) = true := by + have h : ((childHH (childLL (childLL thetaAboveCell0113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLL thetaAboveCell0113))) h +theorem e24KC2ThetaAboveLeaf0113010 : + adaptiveCoverCheck 12 (childLL (childLH (childLL thetaAboveCell0113))) = true := by + have h : ((childLL (childLH (childLL thetaAboveCell0113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLL thetaAboveCell0113))) h +theorem e24KC2ThetaAboveLeaf0113011 : + adaptiveCoverCheck 12 (childLH (childLH (childLL thetaAboveCell0113))) = true := by + have h : ((childLH (childLH (childLL thetaAboveCell0113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLL thetaAboveCell0113))) h +theorem e24KC2ThetaAboveLeaf0113012 : + adaptiveCoverCheck 12 (childHL (childLH (childLL thetaAboveCell0113))) = true := by + have h : ((childHL (childLH (childLL thetaAboveCell0113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLL thetaAboveCell0113))) h +theorem e24KC2ThetaAboveLeaf0113013 : + adaptiveCoverCheck 12 (childHH (childLH (childLL thetaAboveCell0113))) = true := by + have h : ((childHH (childLH (childLL thetaAboveCell0113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLL thetaAboveCell0113))) h +theorem e24KC2ThetaAboveLeaf011302 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell0113)) = true := by + have h : ((childHL (childLL thetaAboveCell0113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell0113)) h +theorem e24KC2ThetaAboveLeaf011303 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell0113)) = true := by + have h : ((childHH (childLL thetaAboveCell0113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell0113)) h +theorem e24KC2ThetaAboveLeaf0113100 : + adaptiveCoverCheck 12 (childLL (childLL (childLH thetaAboveCell0113))) = true := by + have h : ((childLL (childLL (childLH thetaAboveCell0113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLH thetaAboveCell0113))) h +theorem e24KC2ThetaAboveLeaf0113101 : + adaptiveCoverCheck 12 (childLH (childLL (childLH thetaAboveCell0113))) = true := by + have h : ((childLH (childLL (childLH thetaAboveCell0113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLH thetaAboveCell0113))) h +theorem e24KC2ThetaAboveLeaf0113102 : + adaptiveCoverCheck 12 (childHL (childLL (childLH thetaAboveCell0113))) = true := by + have h : ((childHL (childLL (childLH thetaAboveCell0113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLH thetaAboveCell0113))) h +theorem e24KC2ThetaAboveLeaf0113103 : + adaptiveCoverCheck 12 (childHH (childLL (childLH thetaAboveCell0113))) = true := by + have h : ((childHH (childLL (childLH thetaAboveCell0113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLH thetaAboveCell0113))) h +theorem e24KC2ThetaAboveLeaf0113110 : + adaptiveCoverCheck 12 (childLL (childLH (childLH thetaAboveCell0113))) = true := by + have h : ((childLL (childLH (childLH thetaAboveCell0113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLH thetaAboveCell0113))) h +theorem e24KC2ThetaAboveLeaf0113111 : + adaptiveCoverCheck 12 (childLH (childLH (childLH thetaAboveCell0113))) = true := by + have h : ((childLH (childLH (childLH thetaAboveCell0113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLH thetaAboveCell0113))) h +theorem e24KC2ThetaAboveLeaf0113112 : + adaptiveCoverCheck 12 (childHL (childLH (childLH thetaAboveCell0113))) = true := by + have h : ((childHL (childLH (childLH thetaAboveCell0113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLH thetaAboveCell0113))) h +theorem e24KC2ThetaAboveLeaf0113113 : + adaptiveCoverCheck 12 (childHH (childLH (childLH thetaAboveCell0113))) = true := by + have h : ((childHH (childLH (childLH thetaAboveCell0113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLH thetaAboveCell0113))) h +theorem e24KC2ThetaAboveLeaf011312 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell0113)) = true := by + have h : ((childHL (childLH thetaAboveCell0113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell0113)) h +theorem e24KC2ThetaAboveLeaf011313 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell0113)) = true := by + have h : ((childHH (childLH thetaAboveCell0113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell0113)) h +theorem e24KC2ThetaAboveLeaf01132 : + adaptiveCoverCheck 14 (childHL thetaAboveCell0113) = true := by + have h : ((childHL thetaAboveCell0113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHL thetaAboveCell0113) h +theorem e24KC2ThetaAboveLeaf01133 : + adaptiveCoverCheck 14 (childHH thetaAboveCell0113) = true := by + have h : ((childHH thetaAboveCell0113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHH thetaAboveCell0113) h +theorem e24KC2ThetaAboveLeaf0120 : + adaptiveCoverCheck 15 thetaAboveCell0120 = true := by + have h : (thetaAboveCell0120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell0120 h +theorem e24KC2ThetaAboveLeaf0121 : + adaptiveCoverCheck 15 thetaAboveCell0121 = true := by + have h : (thetaAboveCell0121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell0121 h +theorem e24KC2ThetaAboveLeaf0122 : + adaptiveCoverCheck 15 thetaAboveCell0122 = true := by + have h : (thetaAboveCell0122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell0122 h +theorem e24KC2ThetaAboveLeaf0123 : + adaptiveCoverCheck 15 thetaAboveCell0123 = true := by + have h : (thetaAboveCell0123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell0123 h +theorem e24KC2ThetaAboveLeaf0130 : + adaptiveCoverCheck 15 thetaAboveCell0130 = true := by + have h : (thetaAboveCell0130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell0130 h +theorem e24KC2ThetaAboveLeaf0131 : + adaptiveCoverCheck 15 thetaAboveCell0131 = true := by + have h : (thetaAboveCell0131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell0131 h +theorem e24KC2ThetaAboveLeaf0132 : + adaptiveCoverCheck 15 thetaAboveCell0132 = true := by + have h : (thetaAboveCell0132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell0132 h +theorem e24KC2ThetaAboveLeaf0133 : + adaptiveCoverCheck 15 thetaAboveCell0133 = true := by + have h : (thetaAboveCell0133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell0133 h +theorem e24KC2ThetaAboveLeaf020 : + adaptiveCoverCheck 16 (childLL (childHL (childLL e24ThetaAboveRoot))) = true := by + have h : ((childLL (childHL (childLL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLL (childHL (childLL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf021 : + adaptiveCoverCheck 16 (childLH (childHL (childLL e24ThetaAboveRoot))) = true := by + have h : ((childLH (childHL (childLL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLH (childHL (childLL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf022 : + adaptiveCoverCheck 16 (childHL (childHL (childLL e24ThetaAboveRoot))) = true := by + have h : ((childHL (childHL (childLL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHL (childHL (childLL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf023 : + adaptiveCoverCheck 16 (childHH (childHL (childLL e24ThetaAboveRoot))) = true := by + have h : ((childHH (childHL (childLL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHH (childHL (childLL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf030 : + adaptiveCoverCheck 16 (childLL (childHH (childLL e24ThetaAboveRoot))) = true := by + have h : ((childLL (childHH (childLL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLL (childHH (childLL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf031 : + adaptiveCoverCheck 16 (childLH (childHH (childLL e24ThetaAboveRoot))) = true := by + have h : ((childLH (childHH (childLL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLH (childHH (childLL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf032 : + adaptiveCoverCheck 16 (childHL (childHH (childLL e24ThetaAboveRoot))) = true := by + have h : ((childHL (childHH (childLL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHL (childHH (childLL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf033 : + adaptiveCoverCheck 16 (childHH (childHH (childLL e24ThetaAboveRoot))) = true := by + have h : ((childHH (childHH (childLL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHH (childHH (childLL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf100000 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell1000)) = true := by + have h : ((childLL (childLL thetaAboveCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLL thetaAboveCell1000)) h +theorem e24KC2ThetaAboveLeaf100001 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell1000)) = true := by + have h : ((childLH (childLL thetaAboveCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLL thetaAboveCell1000)) h +theorem e24KC2ThetaAboveLeaf100002 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell1000)) = true := by + have h : ((childHL (childLL thetaAboveCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell1000)) h +theorem e24KC2ThetaAboveLeaf100003 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell1000)) = true := by + have h : ((childHH (childLL thetaAboveCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell1000)) h +theorem e24KC2ThetaAboveLeaf100010 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell1000)) = true := by + have h : ((childLL (childLH thetaAboveCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLH thetaAboveCell1000)) h +theorem e24KC2ThetaAboveLeaf100011 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell1000)) = true := by + have h : ((childLH (childLH thetaAboveCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLH thetaAboveCell1000)) h +theorem e24KC2ThetaAboveLeaf100012 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell1000)) = true := by + have h : ((childHL (childLH thetaAboveCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell1000)) h +theorem e24KC2ThetaAboveLeaf100013 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell1000)) = true := by + have h : ((childHH (childLH thetaAboveCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell1000)) h +theorem e24KC2ThetaAboveLeaf1000200 : + adaptiveCoverCheck 12 (childLL (childLL (childHL thetaAboveCell1000))) = true := by + have h : ((childLL (childLL (childHL thetaAboveCell1000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHL thetaAboveCell1000))) h +theorem e24KC2ThetaAboveLeaf1000201 : + adaptiveCoverCheck 12 (childLH (childLL (childHL thetaAboveCell1000))) = true := by + have h : ((childLH (childLL (childHL thetaAboveCell1000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHL thetaAboveCell1000))) h +theorem e24KC2ThetaAboveLeaf10002020 : + adaptiveCoverCheck 11 thetaAboveCell10002020 = true := by + have h : (thetaAboveCell10002020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002020 h +theorem e24KC2ThetaAboveLeaf10002021 : + adaptiveCoverCheck 11 thetaAboveCell10002021 = true := by + have h : (thetaAboveCell10002021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002021 h +theorem e24KC2ThetaAboveLeaf10002022 : + adaptiveCoverCheck 11 thetaAboveCell10002022 = true := by + have h : (thetaAboveCell10002022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002022 h +theorem e24KC2ThetaAboveLeaf10002023 : + adaptiveCoverCheck 11 thetaAboveCell10002023 = true := by + have h : (thetaAboveCell10002023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002023 h +theorem e24KC2ThetaAboveLeaf10002030 : + adaptiveCoverCheck 11 thetaAboveCell10002030 = true := by + have h : (thetaAboveCell10002030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002030 h +theorem e24KC2ThetaAboveLeaf10002031 : + adaptiveCoverCheck 11 thetaAboveCell10002031 = true := by + have h : (thetaAboveCell10002031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002031 h +theorem e24KC2ThetaAboveLeaf10002032 : + adaptiveCoverCheck 11 thetaAboveCell10002032 = true := by + have h : (thetaAboveCell10002032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002032 h +theorem e24KC2ThetaAboveLeaf10002033 : + adaptiveCoverCheck 11 thetaAboveCell10002033 = true := by + have h : (thetaAboveCell10002033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002033 h +theorem e24KC2ThetaAboveLeaf1000210 : + adaptiveCoverCheck 12 (childLL (childLH (childHL thetaAboveCell1000))) = true := by + have h : ((childLL (childLH (childHL thetaAboveCell1000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHL thetaAboveCell1000))) h +theorem e24KC2ThetaAboveLeaf1000211 : + adaptiveCoverCheck 12 (childLH (childLH (childHL thetaAboveCell1000))) = true := by + have h : ((childLH (childLH (childHL thetaAboveCell1000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHL thetaAboveCell1000))) h +theorem e24KC2ThetaAboveLeaf10002120 : + adaptiveCoverCheck 11 thetaAboveCell10002120 = true := by + have h : (thetaAboveCell10002120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002120 h +theorem e24KC2ThetaAboveLeaf10002121 : + adaptiveCoverCheck 11 thetaAboveCell10002121 = true := by + have h : (thetaAboveCell10002121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002121 h +theorem e24KC2ThetaAboveLeaf10002122 : + adaptiveCoverCheck 11 thetaAboveCell10002122 = true := by + have h : (thetaAboveCell10002122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002122 h +theorem e24KC2ThetaAboveLeaf10002123 : + adaptiveCoverCheck 11 thetaAboveCell10002123 = true := by + have h : (thetaAboveCell10002123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002123 h +theorem e24KC2ThetaAboveLeaf10002130 : + adaptiveCoverCheck 11 thetaAboveCell10002130 = true := by + have h : (thetaAboveCell10002130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002130 h +theorem e24KC2ThetaAboveLeaf10002131 : + adaptiveCoverCheck 11 thetaAboveCell10002131 = true := by + have h : (thetaAboveCell10002131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002131 h +theorem e24KC2ThetaAboveLeaf10002132 : + adaptiveCoverCheck 11 thetaAboveCell10002132 = true := by + have h : (thetaAboveCell10002132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002132 h +theorem e24KC2ThetaAboveLeaf10002133 : + adaptiveCoverCheck 11 thetaAboveCell10002133 = true := by + have h : (thetaAboveCell10002133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002133 h +theorem e24KC2ThetaAboveLeaf100022000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002200) = true := by + have h : ((childLL thetaAboveCell10002200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10002200) h +theorem e24KC2ThetaAboveLeaf100022001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002200) = true := by + have h : ((childLH thetaAboveCell10002200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10002200) h +theorem e24KC2ThetaAboveLeaf100022002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002200) = true := by + have h : ((childHL thetaAboveCell10002200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10002200) h +theorem e24KC2ThetaAboveLeaf100022003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002200) = true := by + have h : ((childHH thetaAboveCell10002200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10002200) h +theorem e24KC2ThetaAboveLeaf100022010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002201) = true := by + have h : ((childLL thetaAboveCell10002201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10002201) h +theorem e24KC2ThetaAboveLeaf100022011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002201) = true := by + have h : ((childLH thetaAboveCell10002201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10002201) h +theorem e24KC2ThetaAboveLeaf100022012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002201) = true := by + have h : ((childHL thetaAboveCell10002201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10002201) h +theorem e24KC2ThetaAboveLeaf100022013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002201) = true := by + have h : ((childHH thetaAboveCell10002201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10002201) h +theorem e24KC2ThetaAboveLeaf1000220200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10002202)) = true := by + have h : ((childLL (childLL thetaAboveCell10002202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10002202)) h +theorem e24KC2ThetaAboveLeaf1000220201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10002202)) = true := by + have h : ((childLH (childLL thetaAboveCell10002202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10002202)) h +theorem e24KC2ThetaAboveLeaf1000220202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10002202)) = true := by + have h : ((childHL (childLL thetaAboveCell10002202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10002202)) h +theorem e24KC2ThetaAboveLeaf1000220203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10002202)) = true := by + have h : ((childHH (childLL thetaAboveCell10002202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10002202)) h +theorem e24KC2ThetaAboveLeaf1000220210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10002202)) = true := by + have h : ((childLL (childLH thetaAboveCell10002202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10002202)) h +theorem e24KC2ThetaAboveLeaf1000220211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10002202)) = true := by + have h : ((childLH (childLH thetaAboveCell10002202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10002202)) h +theorem e24KC2ThetaAboveLeaf1000220212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10002202)) = true := by + have h : ((childHL (childLH thetaAboveCell10002202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10002202)) h +theorem e24KC2ThetaAboveLeaf1000220213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10002202)) = true := by + have h : ((childHH (childLH thetaAboveCell10002202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10002202)) h +theorem e24KC2ThetaAboveLeaf1000220220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10002202)) = true := by + have h : ((childLL (childHL thetaAboveCell10002202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10002202)) h +theorem e24KC2ThetaAboveLeaf1000220221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10002202)) = true := by + have h : ((childLH (childHL thetaAboveCell10002202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10002202)) h +theorem e24KC2ThetaAboveLeaf1000220222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10002202)) = true := by + have h : ((childHL (childHL thetaAboveCell10002202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10002202)) h +theorem e24KC2ThetaAboveLeaf1000220223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10002202)) = true := by + have h : ((childHH (childHL thetaAboveCell10002202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10002202)) h +theorem e24KC2ThetaAboveLeaf1000220230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10002202)) = true := by + have h : ((childLL (childHH thetaAboveCell10002202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10002202)) h +theorem e24KC2ThetaAboveLeaf1000220231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10002202)) = true := by + have h : ((childLH (childHH thetaAboveCell10002202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10002202)) h +theorem e24KC2ThetaAboveLeaf1000220232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10002202)) = true := by + have h : ((childHL (childHH thetaAboveCell10002202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10002202)) h +theorem e24KC2ThetaAboveLeaf1000220233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10002202)) = true := by + have h : ((childHH (childHH thetaAboveCell10002202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10002202)) h +theorem e24KC2ThetaAboveLeaf1000220300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10002203)) = true := by + have h : ((childLL (childLL thetaAboveCell10002203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10002203)) h +theorem e24KC2ThetaAboveLeaf1000220301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10002203)) = true := by + have h : ((childLH (childLL thetaAboveCell10002203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10002203)) h +theorem e24KC2ThetaAboveLeaf1000220302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10002203)) = true := by + have h : ((childHL (childLL thetaAboveCell10002203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10002203)) h +theorem e24KC2ThetaAboveLeaf1000220303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10002203)) = true := by + have h : ((childHH (childLL thetaAboveCell10002203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10002203)) h +theorem e24KC2ThetaAboveLeaf1000220310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10002203)) = true := by + have h : ((childLL (childLH thetaAboveCell10002203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10002203)) h +theorem e24KC2ThetaAboveLeaf1000220311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10002203)) = true := by + have h : ((childLH (childLH thetaAboveCell10002203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10002203)) h +theorem e24KC2ThetaAboveLeaf1000220312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10002203)) = true := by + have h : ((childHL (childLH thetaAboveCell10002203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10002203)) h +theorem e24KC2ThetaAboveLeaf1000220313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10002203)) = true := by + have h : ((childHH (childLH thetaAboveCell10002203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10002203)) h +theorem e24KC2ThetaAboveLeaf1000220320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10002203)) = true := by + have h : ((childLL (childHL thetaAboveCell10002203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10002203)) h +theorem e24KC2ThetaAboveLeaf1000220321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10002203)) = true := by + have h : ((childLH (childHL thetaAboveCell10002203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10002203)) h +theorem e24KC2ThetaAboveLeaf1000220322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10002203)) = true := by + have h : ((childHL (childHL thetaAboveCell10002203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10002203)) h +theorem e24KC2ThetaAboveLeaf1000220323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10002203)) = true := by + have h : ((childHH (childHL thetaAboveCell10002203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10002203)) h +theorem e24KC2ThetaAboveLeaf1000220330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10002203)) = true := by + have h : ((childLL (childHH thetaAboveCell10002203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10002203)) h +theorem e24KC2ThetaAboveLeaf1000220331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10002203)) = true := by + have h : ((childLH (childHH thetaAboveCell10002203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10002203)) h +theorem e24KC2ThetaAboveLeaf1000220332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10002203)) = true := by + have h : ((childHL (childHH thetaAboveCell10002203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10002203)) h +theorem e24KC2ThetaAboveLeaf1000220333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10002203)) = true := by + have h : ((childHH (childHH thetaAboveCell10002203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10002203)) h +theorem e24KC2ThetaAboveLeaf100022100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002210) = true := by + have h : ((childLL thetaAboveCell10002210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10002210) h +theorem e24KC2ThetaAboveLeaf100022101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002210) = true := by + have h : ((childLH thetaAboveCell10002210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10002210) h +theorem e24KC2ThetaAboveLeaf100022102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002210) = true := by + have h : ((childHL thetaAboveCell10002210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10002210) h +theorem e24KC2ThetaAboveLeaf100022103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002210) = true := by + have h : ((childHH thetaAboveCell10002210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10002210) h +theorem e24KC2ThetaAboveLeaf100022110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002211) = true := by + have h : ((childLL thetaAboveCell10002211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10002211) h +theorem e24KC2ThetaAboveLeaf100022111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002211) = true := by + have h : ((childLH thetaAboveCell10002211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10002211) h +theorem e24KC2ThetaAboveLeaf100022112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002211) = true := by + have h : ((childHL thetaAboveCell10002211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10002211) h +theorem e24KC2ThetaAboveLeaf100022113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002211) = true := by + have h : ((childHH thetaAboveCell10002211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10002211) h +theorem e24KC2ThetaAboveLeaf1000221200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10002212)) = true := by + have h : ((childLL (childLL thetaAboveCell10002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10002212)) h +theorem e24KC2ThetaAboveLeaf1000221201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10002212)) = true := by + have h : ((childLH (childLL thetaAboveCell10002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10002212)) h +theorem e24KC2ThetaAboveLeaf1000221202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10002212)) = true := by + have h : ((childHL (childLL thetaAboveCell10002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10002212)) h +theorem e24KC2ThetaAboveLeaf1000221203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10002212)) = true := by + have h : ((childHH (childLL thetaAboveCell10002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10002212)) h +theorem e24KC2ThetaAboveLeaf1000221210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10002212)) = true := by + have h : ((childLL (childLH thetaAboveCell10002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10002212)) h +theorem e24KC2ThetaAboveLeaf1000221211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10002212)) = true := by + have h : ((childLH (childLH thetaAboveCell10002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10002212)) h +theorem e24KC2ThetaAboveLeaf1000221212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10002212)) = true := by + have h : ((childHL (childLH thetaAboveCell10002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10002212)) h +theorem e24KC2ThetaAboveLeaf1000221213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10002212)) = true := by + have h : ((childHH (childLH thetaAboveCell10002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10002212)) h +theorem e24KC2ThetaAboveLeaf1000221220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10002212)) = true := by + have h : ((childLL (childHL thetaAboveCell10002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10002212)) h +theorem e24KC2ThetaAboveLeaf1000221221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10002212)) = true := by + have h : ((childLH (childHL thetaAboveCell10002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10002212)) h +theorem e24KC2ThetaAboveLeaf1000221222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10002212)) = true := by + have h : ((childHL (childHL thetaAboveCell10002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10002212)) h +theorem e24KC2ThetaAboveLeaf1000221223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10002212)) = true := by + have h : ((childHH (childHL thetaAboveCell10002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10002212)) h +theorem e24KC2ThetaAboveLeaf1000221230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10002212)) = true := by + have h : ((childLL (childHH thetaAboveCell10002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10002212)) h +theorem e24KC2ThetaAboveLeaf1000221231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10002212)) = true := by + have h : ((childLH (childHH thetaAboveCell10002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10002212)) h +theorem e24KC2ThetaAboveLeaf1000221232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10002212)) = true := by + have h : ((childHL (childHH thetaAboveCell10002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10002212)) h +theorem e24KC2ThetaAboveLeaf1000221233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10002212)) = true := by + have h : ((childHH (childHH thetaAboveCell10002212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10002212)) h +theorem e24KC2ThetaAboveLeaf1000221300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10002213)) = true := by + have h : ((childLL (childLL thetaAboveCell10002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10002213)) h +theorem e24KC2ThetaAboveLeaf1000221301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10002213)) = true := by + have h : ((childLH (childLL thetaAboveCell10002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10002213)) h +theorem e24KC2ThetaAboveLeaf1000221302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10002213)) = true := by + have h : ((childHL (childLL thetaAboveCell10002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10002213)) h +theorem e24KC2ThetaAboveLeaf1000221303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10002213)) = true := by + have h : ((childHH (childLL thetaAboveCell10002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10002213)) h +theorem e24KC2ThetaAboveLeaf1000221310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10002213)) = true := by + have h : ((childLL (childLH thetaAboveCell10002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10002213)) h +theorem e24KC2ThetaAboveLeaf1000221311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10002213)) = true := by + have h : ((childLH (childLH thetaAboveCell10002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10002213)) h +theorem e24KC2ThetaAboveLeaf1000221312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10002213)) = true := by + have h : ((childHL (childLH thetaAboveCell10002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10002213)) h +theorem e24KC2ThetaAboveLeaf1000221313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10002213)) = true := by + have h : ((childHH (childLH thetaAboveCell10002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10002213)) h +theorem e24KC2ThetaAboveLeaf1000221320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10002213)) = true := by + have h : ((childLL (childHL thetaAboveCell10002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10002213)) h +theorem e24KC2ThetaAboveLeaf1000221321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10002213)) = true := by + have h : ((childLH (childHL thetaAboveCell10002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10002213)) h +theorem e24KC2ThetaAboveLeaf1000221322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10002213)) = true := by + have h : ((childHL (childHL thetaAboveCell10002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10002213)) h +theorem e24KC2ThetaAboveLeaf1000221323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10002213)) = true := by + have h : ((childHH (childHL thetaAboveCell10002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10002213)) h +theorem e24KC2ThetaAboveLeaf1000221330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10002213)) = true := by + have h : ((childLL (childHH thetaAboveCell10002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10002213)) h +theorem e24KC2ThetaAboveLeaf1000221331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10002213)) = true := by + have h : ((childLH (childHH thetaAboveCell10002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10002213)) h +theorem e24KC2ThetaAboveLeaf1000221332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10002213)) = true := by + have h : ((childHL (childHH thetaAboveCell10002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10002213)) h +theorem e24KC2ThetaAboveLeaf1000221333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10002213)) = true := by + have h : ((childHH (childHH thetaAboveCell10002213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10002213)) h +theorem e24KC2ThetaAboveLeaf100022200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002220) = true := by + have h : ((childLL thetaAboveCell10002220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10002220) h +theorem e24KC2ThetaAboveLeaf100022201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002220) = true := by + have h : ((childLH thetaAboveCell10002220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10002220) h +theorem e24KC2ThetaAboveLeaf100022202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002220) = true := by + have h : ((childHL thetaAboveCell10002220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10002220) h +theorem e24KC2ThetaAboveLeaf100022203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002220) = true := by + have h : ((childHH thetaAboveCell10002220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10002220) h +theorem e24KC2ThetaAboveLeaf100022210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002221) = true := by + have h : ((childLL thetaAboveCell10002221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10002221) h +theorem e24KC2ThetaAboveLeaf100022211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002221) = true := by + have h : ((childLH thetaAboveCell10002221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10002221) h +theorem e24KC2ThetaAboveLeaf100022212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002221) = true := by + have h : ((childHL thetaAboveCell10002221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10002221) h +theorem e24KC2ThetaAboveLeaf100022213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002221) = true := by + have h : ((childHH thetaAboveCell10002221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10002221) h +theorem e24KC2ThetaAboveLeaf10002222 : + adaptiveCoverCheck 11 thetaAboveCell10002222 = true := by + have h : (thetaAboveCell10002222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002222 h +theorem e24KC2ThetaAboveLeaf10002223 : + adaptiveCoverCheck 11 thetaAboveCell10002223 = true := by + have h : (thetaAboveCell10002223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002223 h +theorem e24KC2ThetaAboveLeaf100022300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002230) = true := by + have h : ((childLL thetaAboveCell10002230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10002230) h +theorem e24KC2ThetaAboveLeaf100022301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002230) = true := by + have h : ((childLH thetaAboveCell10002230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10002230) h +theorem e24KC2ThetaAboveLeaf100022302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002230) = true := by + have h : ((childHL thetaAboveCell10002230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10002230) h +theorem e24KC2ThetaAboveLeaf100022303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002230) = true := by + have h : ((childHH thetaAboveCell10002230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10002230) h +theorem e24KC2ThetaAboveLeaf100022310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002231) = true := by + have h : ((childLL thetaAboveCell10002231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10002231) h +theorem e24KC2ThetaAboveLeaf100022311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002231) = true := by + have h : ((childLH thetaAboveCell10002231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10002231) h +theorem e24KC2ThetaAboveLeaf100022312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002231) = true := by + have h : ((childHL thetaAboveCell10002231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10002231) h +theorem e24KC2ThetaAboveLeaf100022313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002231) = true := by + have h : ((childHH thetaAboveCell10002231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10002231) h +theorem e24KC2ThetaAboveLeaf10002232 : + adaptiveCoverCheck 11 thetaAboveCell10002232 = true := by + have h : (thetaAboveCell10002232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002232 h +theorem e24KC2ThetaAboveLeaf10002233 : + adaptiveCoverCheck 11 thetaAboveCell10002233 = true := by + have h : (thetaAboveCell10002233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002233 h +theorem e24KC2ThetaAboveLeaf100023000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002300) = true := by + have h : ((childLL thetaAboveCell10002300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10002300) h +theorem e24KC2ThetaAboveLeaf100023001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002300) = true := by + have h : ((childLH thetaAboveCell10002300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10002300) h +theorem e24KC2ThetaAboveLeaf100023002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002300) = true := by + have h : ((childHL thetaAboveCell10002300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10002300) h +theorem e24KC2ThetaAboveLeaf100023003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002300) = true := by + have h : ((childHH thetaAboveCell10002300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10002300) h +theorem e24KC2ThetaAboveLeaf100023010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002301) = true := by + have h : ((childLL thetaAboveCell10002301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10002301) h +theorem e24KC2ThetaAboveLeaf100023011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002301) = true := by + have h : ((childLH thetaAboveCell10002301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10002301) h +theorem e24KC2ThetaAboveLeaf100023012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002301) = true := by + have h : ((childHL thetaAboveCell10002301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10002301) h +theorem e24KC2ThetaAboveLeaf100023013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002301) = true := by + have h : ((childHH thetaAboveCell10002301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10002301) h +theorem e24KC2ThetaAboveLeaf1000230200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10002302)) = true := by + have h : ((childLL (childLL thetaAboveCell10002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10002302)) h +theorem e24KC2ThetaAboveLeaf1000230201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10002302)) = true := by + have h : ((childLH (childLL thetaAboveCell10002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10002302)) h +theorem e24KC2ThetaAboveLeaf1000230202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10002302)) = true := by + have h : ((childHL (childLL thetaAboveCell10002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10002302)) h +theorem e24KC2ThetaAboveLeaf1000230203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10002302)) = true := by + have h : ((childHH (childLL thetaAboveCell10002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10002302)) h +theorem e24KC2ThetaAboveLeaf1000230210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10002302)) = true := by + have h : ((childLL (childLH thetaAboveCell10002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10002302)) h +theorem e24KC2ThetaAboveLeaf1000230211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10002302)) = true := by + have h : ((childLH (childLH thetaAboveCell10002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10002302)) h +theorem e24KC2ThetaAboveLeaf1000230212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10002302)) = true := by + have h : ((childHL (childLH thetaAboveCell10002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10002302)) h +theorem e24KC2ThetaAboveLeaf1000230213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10002302)) = true := by + have h : ((childHH (childLH thetaAboveCell10002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10002302)) h +theorem e24KC2ThetaAboveLeaf1000230220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10002302)) = true := by + have h : ((childLL (childHL thetaAboveCell10002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10002302)) h +theorem e24KC2ThetaAboveLeaf1000230221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10002302)) = true := by + have h : ((childLH (childHL thetaAboveCell10002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10002302)) h +theorem e24KC2ThetaAboveLeaf1000230222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10002302)) = true := by + have h : ((childHL (childHL thetaAboveCell10002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10002302)) h +theorem e24KC2ThetaAboveLeaf1000230223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10002302)) = true := by + have h : ((childHH (childHL thetaAboveCell10002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10002302)) h +theorem e24KC2ThetaAboveLeaf1000230230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10002302)) = true := by + have h : ((childLL (childHH thetaAboveCell10002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10002302)) h +theorem e24KC2ThetaAboveLeaf1000230231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10002302)) = true := by + have h : ((childLH (childHH thetaAboveCell10002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10002302)) h +theorem e24KC2ThetaAboveLeaf1000230232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10002302)) = true := by + have h : ((childHL (childHH thetaAboveCell10002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10002302)) h +theorem e24KC2ThetaAboveLeaf1000230233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10002302)) = true := by + have h : ((childHH (childHH thetaAboveCell10002302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10002302)) h +theorem e24KC2ThetaAboveLeaf1000230300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10002303)) = true := by + have h : ((childLL (childLL thetaAboveCell10002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10002303)) h +theorem e24KC2ThetaAboveLeaf1000230301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10002303)) = true := by + have h : ((childLH (childLL thetaAboveCell10002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10002303)) h +theorem e24KC2ThetaAboveLeaf1000230302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10002303)) = true := by + have h : ((childHL (childLL thetaAboveCell10002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10002303)) h +theorem e24KC2ThetaAboveLeaf1000230303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10002303)) = true := by + have h : ((childHH (childLL thetaAboveCell10002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10002303)) h +theorem e24KC2ThetaAboveLeaf1000230310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10002303)) = true := by + have h : ((childLL (childLH thetaAboveCell10002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10002303)) h +theorem e24KC2ThetaAboveLeaf1000230311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10002303)) = true := by + have h : ((childLH (childLH thetaAboveCell10002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10002303)) h +theorem e24KC2ThetaAboveLeaf1000230312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10002303)) = true := by + have h : ((childHL (childLH thetaAboveCell10002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10002303)) h +theorem e24KC2ThetaAboveLeaf1000230313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10002303)) = true := by + have h : ((childHH (childLH thetaAboveCell10002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10002303)) h +theorem e24KC2ThetaAboveLeaf1000230320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10002303)) = true := by + have h : ((childLL (childHL thetaAboveCell10002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10002303)) h +theorem e24KC2ThetaAboveLeaf1000230321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10002303)) = true := by + have h : ((childLH (childHL thetaAboveCell10002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10002303)) h +theorem e24KC2ThetaAboveLeaf1000230322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10002303)) = true := by + have h : ((childHL (childHL thetaAboveCell10002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10002303)) h +theorem e24KC2ThetaAboveLeaf1000230323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10002303)) = true := by + have h : ((childHH (childHL thetaAboveCell10002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10002303)) h +theorem e24KC2ThetaAboveLeaf1000230330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10002303)) = true := by + have h : ((childLL (childHH thetaAboveCell10002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10002303)) h +theorem e24KC2ThetaAboveLeaf1000230331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10002303)) = true := by + have h : ((childLH (childHH thetaAboveCell10002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10002303)) h +theorem e24KC2ThetaAboveLeaf1000230332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10002303)) = true := by + have h : ((childHL (childHH thetaAboveCell10002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10002303)) h +theorem e24KC2ThetaAboveLeaf1000230333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10002303)) = true := by + have h : ((childHH (childHH thetaAboveCell10002303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10002303)) h +theorem e24KC2ThetaAboveLeaf100023100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002310) = true := by + have h : ((childLL thetaAboveCell10002310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10002310) h +theorem e24KC2ThetaAboveLeaf100023101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002310) = true := by + have h : ((childLH thetaAboveCell10002310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10002310) h +theorem e24KC2ThetaAboveLeaf100023102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002310) = true := by + have h : ((childHL thetaAboveCell10002310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10002310) h +theorem e24KC2ThetaAboveLeaf100023103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002310) = true := by + have h : ((childHH thetaAboveCell10002310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10002310) h +theorem e24KC2ThetaAboveLeaf100023110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002311) = true := by + have h : ((childLL thetaAboveCell10002311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10002311) h +theorem e24KC2ThetaAboveLeaf100023111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002311) = true := by + have h : ((childLH thetaAboveCell10002311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10002311) h +theorem e24KC2ThetaAboveLeaf100023112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002311) = true := by + have h : ((childHL thetaAboveCell10002311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10002311) h +theorem e24KC2ThetaAboveLeaf100023113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002311) = true := by + have h : ((childHH thetaAboveCell10002311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10002311) h +theorem e24KC2ThetaAboveLeaf1000231200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10002312)) = true := by + have h : ((childLL (childLL thetaAboveCell10002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10002312)) h +theorem e24KC2ThetaAboveLeaf1000231201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10002312)) = true := by + have h : ((childLH (childLL thetaAboveCell10002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10002312)) h +theorem e24KC2ThetaAboveLeaf1000231202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10002312)) = true := by + have h : ((childHL (childLL thetaAboveCell10002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10002312)) h +theorem e24KC2ThetaAboveLeaf1000231203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10002312)) = true := by + have h : ((childHH (childLL thetaAboveCell10002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10002312)) h +theorem e24KC2ThetaAboveLeaf1000231210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10002312)) = true := by + have h : ((childLL (childLH thetaAboveCell10002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10002312)) h +theorem e24KC2ThetaAboveLeaf1000231211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10002312)) = true := by + have h : ((childLH (childLH thetaAboveCell10002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10002312)) h +theorem e24KC2ThetaAboveLeaf1000231212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10002312)) = true := by + have h : ((childHL (childLH thetaAboveCell10002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10002312)) h +theorem e24KC2ThetaAboveLeaf1000231213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10002312)) = true := by + have h : ((childHH (childLH thetaAboveCell10002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10002312)) h +theorem e24KC2ThetaAboveLeaf1000231220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10002312)) = true := by + have h : ((childLL (childHL thetaAboveCell10002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10002312)) h +theorem e24KC2ThetaAboveLeaf1000231221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10002312)) = true := by + have h : ((childLH (childHL thetaAboveCell10002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10002312)) h +theorem e24KC2ThetaAboveLeaf1000231222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10002312)) = true := by + have h : ((childHL (childHL thetaAboveCell10002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10002312)) h +theorem e24KC2ThetaAboveLeaf1000231223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10002312)) = true := by + have h : ((childHH (childHL thetaAboveCell10002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10002312)) h +theorem e24KC2ThetaAboveLeaf1000231230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10002312)) = true := by + have h : ((childLL (childHH thetaAboveCell10002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10002312)) h +theorem e24KC2ThetaAboveLeaf1000231231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10002312)) = true := by + have h : ((childLH (childHH thetaAboveCell10002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10002312)) h +theorem e24KC2ThetaAboveLeaf1000231232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10002312)) = true := by + have h : ((childHL (childHH thetaAboveCell10002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10002312)) h +theorem e24KC2ThetaAboveLeaf1000231233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10002312)) = true := by + have h : ((childHH (childHH thetaAboveCell10002312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10002312)) h +theorem e24KC2ThetaAboveLeaf1000231300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10002313)) = true := by + have h : ((childLL (childLL thetaAboveCell10002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10002313)) h +theorem e24KC2ThetaAboveLeaf1000231301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10002313)) = true := by + have h : ((childLH (childLL thetaAboveCell10002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10002313)) h +theorem e24KC2ThetaAboveLeaf1000231302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10002313)) = true := by + have h : ((childHL (childLL thetaAboveCell10002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10002313)) h +theorem e24KC2ThetaAboveLeaf1000231303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10002313)) = true := by + have h : ((childHH (childLL thetaAboveCell10002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10002313)) h +theorem e24KC2ThetaAboveLeaf1000231310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10002313)) = true := by + have h : ((childLL (childLH thetaAboveCell10002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10002313)) h +theorem e24KC2ThetaAboveLeaf1000231311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10002313)) = true := by + have h : ((childLH (childLH thetaAboveCell10002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10002313)) h +theorem e24KC2ThetaAboveLeaf1000231312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10002313)) = true := by + have h : ((childHL (childLH thetaAboveCell10002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10002313)) h +theorem e24KC2ThetaAboveLeaf1000231313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10002313)) = true := by + have h : ((childHH (childLH thetaAboveCell10002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10002313)) h +theorem e24KC2ThetaAboveLeaf1000231320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10002313)) = true := by + have h : ((childLL (childHL thetaAboveCell10002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10002313)) h +theorem e24KC2ThetaAboveLeaf1000231321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10002313)) = true := by + have h : ((childLH (childHL thetaAboveCell10002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10002313)) h +theorem e24KC2ThetaAboveLeaf1000231322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10002313)) = true := by + have h : ((childHL (childHL thetaAboveCell10002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10002313)) h +theorem e24KC2ThetaAboveLeaf1000231323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10002313)) = true := by + have h : ((childHH (childHL thetaAboveCell10002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10002313)) h +theorem e24KC2ThetaAboveLeaf1000231330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10002313)) = true := by + have h : ((childLL (childHH thetaAboveCell10002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10002313)) h +theorem e24KC2ThetaAboveLeaf1000231331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10002313)) = true := by + have h : ((childLH (childHH thetaAboveCell10002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10002313)) h +theorem e24KC2ThetaAboveLeaf1000231332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10002313)) = true := by + have h : ((childHL (childHH thetaAboveCell10002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10002313)) h +theorem e24KC2ThetaAboveLeaf1000231333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10002313)) = true := by + have h : ((childHH (childHH thetaAboveCell10002313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10002313)) h +theorem e24KC2ThetaAboveLeaf100023200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002320) = true := by + have h : ((childLL thetaAboveCell10002320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10002320) h +theorem e24KC2ThetaAboveLeaf100023201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002320) = true := by + have h : ((childLH thetaAboveCell10002320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10002320) h +theorem e24KC2ThetaAboveLeaf100023202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002320) = true := by + have h : ((childHL thetaAboveCell10002320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10002320) h +theorem e24KC2ThetaAboveLeaf100023203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002320) = true := by + have h : ((childHH thetaAboveCell10002320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10002320) h +theorem e24KC2ThetaAboveLeaf100023210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002321) = true := by + have h : ((childLL thetaAboveCell10002321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10002321) h +theorem e24KC2ThetaAboveLeaf100023211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002321) = true := by + have h : ((childLH thetaAboveCell10002321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10002321) h +theorem e24KC2ThetaAboveLeaf100023212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002321) = true := by + have h : ((childHL thetaAboveCell10002321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10002321) h +theorem e24KC2ThetaAboveLeaf100023213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002321) = true := by + have h : ((childHH thetaAboveCell10002321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10002321) h +theorem e24KC2ThetaAboveLeaf10002322 : + adaptiveCoverCheck 11 thetaAboveCell10002322 = true := by + have h : (thetaAboveCell10002322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002322 h +theorem e24KC2ThetaAboveLeaf10002323 : + adaptiveCoverCheck 11 thetaAboveCell10002323 = true := by + have h : (thetaAboveCell10002323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002323 h +theorem e24KC2ThetaAboveLeaf100023300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002330) = true := by + have h : ((childLL thetaAboveCell10002330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10002330) h +theorem e24KC2ThetaAboveLeaf100023301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002330) = true := by + have h : ((childLH thetaAboveCell10002330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10002330) h +theorem e24KC2ThetaAboveLeaf100023302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002330) = true := by + have h : ((childHL thetaAboveCell10002330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10002330) h +theorem e24KC2ThetaAboveLeaf100023303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002330) = true := by + have h : ((childHH thetaAboveCell10002330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10002330) h +theorem e24KC2ThetaAboveLeaf100023310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002331) = true := by + have h : ((childLL thetaAboveCell10002331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10002331) h +theorem e24KC2ThetaAboveLeaf100023311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002331) = true := by + have h : ((childLH thetaAboveCell10002331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10002331) h +theorem e24KC2ThetaAboveLeaf100023312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002331) = true := by + have h : ((childHL thetaAboveCell10002331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10002331) h +theorem e24KC2ThetaAboveLeaf100023313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002331) = true := by + have h : ((childHH thetaAboveCell10002331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10002331) h +theorem e24KC2ThetaAboveLeaf10002332 : + adaptiveCoverCheck 11 thetaAboveCell10002332 = true := by + have h : (thetaAboveCell10002332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002332 h +theorem e24KC2ThetaAboveLeaf10002333 : + adaptiveCoverCheck 11 thetaAboveCell10002333 = true := by + have h : (thetaAboveCell10002333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10002333 h +theorem e24KC2ThetaAboveLeaf1000300 : + adaptiveCoverCheck 12 (childLL (childLL (childHH thetaAboveCell1000))) = true := by + have h : ((childLL (childLL (childHH thetaAboveCell1000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHH thetaAboveCell1000))) h +theorem e24KC2ThetaAboveLeaf1000301 : + adaptiveCoverCheck 12 (childLH (childLL (childHH thetaAboveCell1000))) = true := by + have h : ((childLH (childLL (childHH thetaAboveCell1000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHH thetaAboveCell1000))) h +theorem e24KC2ThetaAboveLeaf10003020 : + adaptiveCoverCheck 11 thetaAboveCell10003020 = true := by + have h : (thetaAboveCell10003020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003020 h +theorem e24KC2ThetaAboveLeaf10003021 : + adaptiveCoverCheck 11 thetaAboveCell10003021 = true := by + have h : (thetaAboveCell10003021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003021 h +theorem e24KC2ThetaAboveLeaf10003022 : + adaptiveCoverCheck 11 thetaAboveCell10003022 = true := by + have h : (thetaAboveCell10003022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003022 h +theorem e24KC2ThetaAboveLeaf10003023 : + adaptiveCoverCheck 11 thetaAboveCell10003023 = true := by + have h : (thetaAboveCell10003023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003023 h +theorem e24KC2ThetaAboveLeaf10003030 : + adaptiveCoverCheck 11 thetaAboveCell10003030 = true := by + have h : (thetaAboveCell10003030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003030 h +theorem e24KC2ThetaAboveLeaf10003031 : + adaptiveCoverCheck 11 thetaAboveCell10003031 = true := by + have h : (thetaAboveCell10003031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003031 h +theorem e24KC2ThetaAboveLeaf10003032 : + adaptiveCoverCheck 11 thetaAboveCell10003032 = true := by + have h : (thetaAboveCell10003032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003032 h +theorem e24KC2ThetaAboveLeaf10003033 : + adaptiveCoverCheck 11 thetaAboveCell10003033 = true := by + have h : (thetaAboveCell10003033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003033 h +theorem e24KC2ThetaAboveLeaf1000310 : + adaptiveCoverCheck 12 (childLL (childLH (childHH thetaAboveCell1000))) = true := by + have h : ((childLL (childLH (childHH thetaAboveCell1000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHH thetaAboveCell1000))) h +theorem e24KC2ThetaAboveLeaf1000311 : + adaptiveCoverCheck 12 (childLH (childLH (childHH thetaAboveCell1000))) = true := by + have h : ((childLH (childLH (childHH thetaAboveCell1000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHH thetaAboveCell1000))) h +theorem e24KC2ThetaAboveLeaf10003120 : + adaptiveCoverCheck 11 thetaAboveCell10003120 = true := by + have h : (thetaAboveCell10003120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003120 h +theorem e24KC2ThetaAboveLeaf10003121 : + adaptiveCoverCheck 11 thetaAboveCell10003121 = true := by + have h : (thetaAboveCell10003121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003121 h +theorem e24KC2ThetaAboveLeaf10003122 : + adaptiveCoverCheck 11 thetaAboveCell10003122 = true := by + have h : (thetaAboveCell10003122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003122 h +theorem e24KC2ThetaAboveLeaf10003123 : + adaptiveCoverCheck 11 thetaAboveCell10003123 = true := by + have h : (thetaAboveCell10003123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003123 h +theorem e24KC2ThetaAboveLeaf10003130 : + adaptiveCoverCheck 11 thetaAboveCell10003130 = true := by + have h : (thetaAboveCell10003130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003130 h +theorem e24KC2ThetaAboveLeaf10003131 : + adaptiveCoverCheck 11 thetaAboveCell10003131 = true := by + have h : (thetaAboveCell10003131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003131 h +theorem e24KC2ThetaAboveLeaf10003132 : + adaptiveCoverCheck 11 thetaAboveCell10003132 = true := by + have h : (thetaAboveCell10003132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003132 h +theorem e24KC2ThetaAboveLeaf10003133 : + adaptiveCoverCheck 11 thetaAboveCell10003133 = true := by + have h : (thetaAboveCell10003133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003133 h +theorem e24KC2ThetaAboveLeaf100032000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003200) = true := by + have h : ((childLL thetaAboveCell10003200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10003200) h +theorem e24KC2ThetaAboveLeaf100032001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003200) = true := by + have h : ((childLH thetaAboveCell10003200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10003200) h +theorem e24KC2ThetaAboveLeaf100032002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003200) = true := by + have h : ((childHL thetaAboveCell10003200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10003200) h +theorem e24KC2ThetaAboveLeaf100032003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003200) = true := by + have h : ((childHH thetaAboveCell10003200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10003200) h +theorem e24KC2ThetaAboveLeaf100032010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003201) = true := by + have h : ((childLL thetaAboveCell10003201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10003201) h +theorem e24KC2ThetaAboveLeaf100032011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003201) = true := by + have h : ((childLH thetaAboveCell10003201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10003201) h +theorem e24KC2ThetaAboveLeaf100032012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003201) = true := by + have h : ((childHL thetaAboveCell10003201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10003201) h +theorem e24KC2ThetaAboveLeaf100032013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003201) = true := by + have h : ((childHH thetaAboveCell10003201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10003201) h +theorem e24KC2ThetaAboveLeaf1000320200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10003202)) = true := by + have h : ((childLL (childLL thetaAboveCell10003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10003202)) h +theorem e24KC2ThetaAboveLeaf1000320201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10003202)) = true := by + have h : ((childLH (childLL thetaAboveCell10003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10003202)) h +theorem e24KC2ThetaAboveLeaf1000320202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10003202)) = true := by + have h : ((childHL (childLL thetaAboveCell10003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10003202)) h +theorem e24KC2ThetaAboveLeaf1000320203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10003202)) = true := by + have h : ((childHH (childLL thetaAboveCell10003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10003202)) h +theorem e24KC2ThetaAboveLeaf1000320210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10003202)) = true := by + have h : ((childLL (childLH thetaAboveCell10003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10003202)) h +theorem e24KC2ThetaAboveLeaf1000320211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10003202)) = true := by + have h : ((childLH (childLH thetaAboveCell10003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10003202)) h +theorem e24KC2ThetaAboveLeaf1000320212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10003202)) = true := by + have h : ((childHL (childLH thetaAboveCell10003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10003202)) h +theorem e24KC2ThetaAboveLeaf1000320213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10003202)) = true := by + have h : ((childHH (childLH thetaAboveCell10003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10003202)) h +theorem e24KC2ThetaAboveLeaf1000320220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10003202)) = true := by + have h : ((childLL (childHL thetaAboveCell10003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10003202)) h +theorem e24KC2ThetaAboveLeaf1000320221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10003202)) = true := by + have h : ((childLH (childHL thetaAboveCell10003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10003202)) h + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC6ProofBatchDeeff549d6afce41`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC6 explicit proof-producing certificate batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells7b7ba6d809 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells7b7ba6d809 + +open CertificateCells7b7ba6d809 +theorem cover_subtree_7c323abdd313 : + adaptiveCoverCheck 8 (childLL (childLL (childHL thetaAboveCell00003201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL thetaAboveCell00003201))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012000 + (by + have h : ((childLL thetaAboveCell000032012000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012000) h) + (by + have h : ((childLH thetaAboveCell000032012000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012000) h) + (by + have h : ((childHL thetaAboveCell000032012000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012000) h) + (by + have h : ((childHH thetaAboveCell000032012000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012000) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012001 + (by + have h : ((childLL thetaAboveCell000032012001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012001) h) + (by + have h : ((childLH thetaAboveCell000032012001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012001) h) + (by + have h : ((childHL thetaAboveCell000032012001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012001) h) + (by + have h : ((childHH thetaAboveCell000032012001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012001) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012002 + (by + have h : ((childLL thetaAboveCell000032012002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012002) h) + (by + have h : ((childLH thetaAboveCell000032012002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012002) h) + (by + have h : ((childHL thetaAboveCell000032012002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012002) h) + (by + have h : ((childHH thetaAboveCell000032012002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012003 + (by + have h : ((childLL thetaAboveCell000032012003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012003) h) + (by + have h : ((childLH thetaAboveCell000032012003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012003) h) + (by + have h : ((childHL thetaAboveCell000032012003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012003) h) + (by + have h : ((childHH thetaAboveCell000032012003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012003) h)) + +theorem cover_subtree_2c6010c13cb7 : + adaptiveCoverCheck 8 (childLH (childLL (childHL thetaAboveCell00003201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL thetaAboveCell00003201))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012010 + (by + have h : ((childLL thetaAboveCell000032012010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012010) h) + (by + have h : ((childLH thetaAboveCell000032012010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012010) h) + (by + have h : ((childHL thetaAboveCell000032012010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012010) h) + (by + have h : ((childHH thetaAboveCell000032012010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012010) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012011 + (by + have h : ((childLL thetaAboveCell000032012011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012011) h) + (by + have h : ((childLH thetaAboveCell000032012011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012011) h) + (by + have h : ((childHL thetaAboveCell000032012011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012011) h) + (by + have h : ((childHH thetaAboveCell000032012011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012011) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012012 + (by + have h : ((childLL thetaAboveCell000032012012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012012) h) + (by + have h : ((childLH thetaAboveCell000032012012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012012) h) + (by + have h : ((childHL thetaAboveCell000032012012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012012) h) + (by + have h : ((childHH thetaAboveCell000032012012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012013 + (by + have h : ((childLL thetaAboveCell000032012013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012013) h) + (by + have h : ((childLH thetaAboveCell000032012013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012013) h) + (by + have h : ((childHL thetaAboveCell000032012013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012013) h) + (by + have h : ((childHH thetaAboveCell000032012013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012013) h)) + +theorem cover_subtree_1c36f4e287e2 : + adaptiveCoverCheck 8 (childHL (childLL (childHL thetaAboveCell00003201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL thetaAboveCell00003201))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012020 + (by + have h : ((childLL thetaAboveCell000032012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012020) h) + (by + have h : ((childLH thetaAboveCell000032012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012020) h) + (by + have h : ((childHL thetaAboveCell000032012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012020) h) + (by + have h : ((childHH thetaAboveCell000032012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012021 + (by + have h : ((childLL thetaAboveCell000032012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012021) h) + (by + have h : ((childLH thetaAboveCell000032012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012021) h) + (by + have h : ((childHL thetaAboveCell000032012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012021) h) + (by + have h : ((childHH thetaAboveCell000032012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012021) h)) + (by + have h : (thetaAboveCell000032012022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032012022 h) + (by + have h : (thetaAboveCell000032012023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032012023 h) + +theorem cover_subtree_2d88b84be921 : + adaptiveCoverCheck 8 (childHH (childLL (childHL thetaAboveCell00003201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL thetaAboveCell00003201))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012030 + (by + have h : ((childLL thetaAboveCell000032012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012030) h) + (by + have h : ((childLH thetaAboveCell000032012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012030) h) + (by + have h : ((childHL thetaAboveCell000032012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012030) h) + (by + have h : ((childHH thetaAboveCell000032012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012031 + (by + have h : ((childLL thetaAboveCell000032012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012031) h) + (by + have h : ((childLH thetaAboveCell000032012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012031) h) + (by + have h : ((childHL thetaAboveCell000032012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012031) h) + (by + have h : ((childHH thetaAboveCell000032012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012031) h)) + (by + have h : (thetaAboveCell000032012032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032012032 h) + (by + have h : (thetaAboveCell000032012033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032012033 h) + +theorem e24KC2ThetaAboveLeaf0000320120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00003201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00003201)) + cover_subtree_7c323abdd313 + cover_subtree_2c6010c13cb7 + cover_subtree_1c36f4e287e2 + cover_subtree_2d88b84be921 +theorem cover_subtree_15ce3b085062 : + adaptiveCoverCheck 8 (childLL (childLH (childHL thetaAboveCell00003201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL thetaAboveCell00003201))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012100 + (by + have h : ((childLL thetaAboveCell000032012100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012100) h) + (by + have h : ((childLH thetaAboveCell000032012100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012100) h) + (by + have h : ((childHL thetaAboveCell000032012100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012100) h) + (by + have h : ((childHH thetaAboveCell000032012100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012100) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012101 + (by + have h : ((childLL thetaAboveCell000032012101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012101) h) + (by + have h : ((childLH thetaAboveCell000032012101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012101) h) + (by + have h : ((childHL thetaAboveCell000032012101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012101) h) + (by + have h : ((childHH thetaAboveCell000032012101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012101) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012102 + (by + have h : ((childLL thetaAboveCell000032012102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012102) h) + (by + have h : ((childLH thetaAboveCell000032012102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012102) h) + (by + have h : ((childHL thetaAboveCell000032012102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012102) h) + (by + have h : ((childHH thetaAboveCell000032012102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012103 + (by + have h : ((childLL thetaAboveCell000032012103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012103) h) + (by + have h : ((childLH thetaAboveCell000032012103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012103) h) + (by + have h : ((childHL thetaAboveCell000032012103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012103) h) + (by + have h : ((childHH thetaAboveCell000032012103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012103) h)) + +theorem cover_subtree_08caed552cac : + adaptiveCoverCheck 8 (childLH (childLH (childHL thetaAboveCell00003201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL thetaAboveCell00003201))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012110 + (by + have h : ((childLL thetaAboveCell000032012110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012110) h) + (by + have h : ((childLH thetaAboveCell000032012110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012110) h) + (by + have h : ((childHL thetaAboveCell000032012110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012110) h) + (by + have h : ((childHH thetaAboveCell000032012110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012110) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012111 + (by + have h : ((childLL thetaAboveCell000032012111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012111) h) + (by + have h : ((childLH thetaAboveCell000032012111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012111) h) + (by + have h : ((childHL thetaAboveCell000032012111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012111) h) + (by + have h : ((childHH thetaAboveCell000032012111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012111) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012112 + (by + have h : ((childLL thetaAboveCell000032012112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012112) h) + (by + have h : ((childLH thetaAboveCell000032012112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012112) h) + (by + have h : ((childHL thetaAboveCell000032012112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012112) h) + (by + have h : ((childHH thetaAboveCell000032012112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012113 + (by + have h : ((childLL thetaAboveCell000032012113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012113) h) + (by + have h : ((childLH thetaAboveCell000032012113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012113) h) + (by + have h : ((childHL thetaAboveCell000032012113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012113) h) + (by + have h : ((childHH thetaAboveCell000032012113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012113) h)) + +theorem cover_subtree_26481d0c715c : + adaptiveCoverCheck 8 (childHL (childLH (childHL thetaAboveCell00003201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL thetaAboveCell00003201))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012120 + (by + have h : ((childLL thetaAboveCell000032012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012120) h) + (by + have h : ((childLH thetaAboveCell000032012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012120) h) + (by + have h : ((childHL thetaAboveCell000032012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012120) h) + (by + have h : ((childHH thetaAboveCell000032012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012121 + (by + have h : ((childLL thetaAboveCell000032012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012121) h) + (by + have h : ((childLH thetaAboveCell000032012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012121) h) + (by + have h : ((childHL thetaAboveCell000032012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012121) h) + (by + have h : ((childHH thetaAboveCell000032012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012121) h)) + (by + have h : (thetaAboveCell000032012122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032012122 h) + (by + have h : (thetaAboveCell000032012123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032012123 h) + +theorem cover_subtree_a0f2894108e0 : + adaptiveCoverCheck 8 (childHH (childLH (childHL thetaAboveCell00003201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL thetaAboveCell00003201))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012130 + (by + have h : ((childLL thetaAboveCell000032012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012130) h) + (by + have h : ((childLH thetaAboveCell000032012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012130) h) + (by + have h : ((childHL thetaAboveCell000032012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012130) h) + (by + have h : ((childHH thetaAboveCell000032012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032012131 + (by + have h : ((childLL thetaAboveCell000032012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032012131) h) + (by + have h : ((childLH thetaAboveCell000032012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032012131) h) + (by + have h : ((childHL thetaAboveCell000032012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032012131) h) + (by + have h : ((childHH thetaAboveCell000032012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032012131) h)) + (by + have h : (thetaAboveCell000032012132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032012132 h) + (by + have h : (thetaAboveCell000032012133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032012133 h) + +theorem e24KC2ThetaAboveLeaf0000320121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00003201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00003201)) + cover_subtree_15ce3b085062 + cover_subtree_08caed552cac + cover_subtree_26481d0c715c + cover_subtree_a0f2894108e0 +theorem e24KC2ThetaAboveLeaf0000320122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00003201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00003201)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00003201))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00003201))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00003201))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00003201))) h) +theorem e24KC2ThetaAboveLeaf0000320123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00003201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00003201)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00003201))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00003201))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00003201))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00003201))) h) +theorem cover_subtree_69db60e02bff : + adaptiveCoverCheck 8 (childLL (childLL (childHH thetaAboveCell00003201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH thetaAboveCell00003201))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013000 + (by + have h : ((childLL thetaAboveCell000032013000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013000) h) + (by + have h : ((childLH thetaAboveCell000032013000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013000) h) + (by + have h : ((childHL thetaAboveCell000032013000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013000) h) + (by + have h : ((childHH thetaAboveCell000032013000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013000) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013001 + (by + have h : ((childLL thetaAboveCell000032013001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013001) h) + (by + have h : ((childLH thetaAboveCell000032013001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013001) h) + (by + have h : ((childHL thetaAboveCell000032013001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013001) h) + (by + have h : ((childHH thetaAboveCell000032013001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013001) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013002 + (by + have h : ((childLL thetaAboveCell000032013002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013002) h) + (by + have h : ((childLH thetaAboveCell000032013002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013002) h) + (by + have h : ((childHL thetaAboveCell000032013002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013002) h) + (by + have h : ((childHH thetaAboveCell000032013002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013003 + (by + have h : ((childLL thetaAboveCell000032013003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013003) h) + (by + have h : ((childLH thetaAboveCell000032013003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013003) h) + (by + have h : ((childHL thetaAboveCell000032013003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013003) h) + (by + have h : ((childHH thetaAboveCell000032013003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013003) h)) + +theorem cover_subtree_42fb80f99488 : + adaptiveCoverCheck 8 (childLH (childLL (childHH thetaAboveCell00003201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH thetaAboveCell00003201))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013010 + (by + have h : ((childLL thetaAboveCell000032013010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013010) h) + (by + have h : ((childLH thetaAboveCell000032013010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013010) h) + (by + have h : ((childHL thetaAboveCell000032013010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013010) h) + (by + have h : ((childHH thetaAboveCell000032013010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013010) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013011 + (by + have h : ((childLL thetaAboveCell000032013011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013011) h) + (by + have h : ((childLH thetaAboveCell000032013011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013011) h) + (by + have h : ((childHL thetaAboveCell000032013011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013011) h) + (by + have h : ((childHH thetaAboveCell000032013011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013011) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013012 + (by + have h : ((childLL thetaAboveCell000032013012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013012) h) + (by + have h : ((childLH thetaAboveCell000032013012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013012) h) + (by + have h : ((childHL thetaAboveCell000032013012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013012) h) + (by + have h : ((childHH thetaAboveCell000032013012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013013 + (by + have h : ((childLL thetaAboveCell000032013013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013013) h) + (by + have h : ((childLH thetaAboveCell000032013013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013013) h) + (by + have h : ((childHL thetaAboveCell000032013013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013013) h) + (by + have h : ((childHH thetaAboveCell000032013013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013013) h)) + +theorem cover_subtree_190c09664a4f : + adaptiveCoverCheck 8 (childHL (childLL (childHH thetaAboveCell00003201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH thetaAboveCell00003201))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013020 + (by + have h : ((childLL thetaAboveCell000032013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013020) h) + (by + have h : ((childLH thetaAboveCell000032013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013020) h) + (by + have h : ((childHL thetaAboveCell000032013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013020) h) + (by + have h : ((childHH thetaAboveCell000032013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013021 + (by + have h : ((childLL thetaAboveCell000032013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013021) h) + (by + have h : ((childLH thetaAboveCell000032013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013021) h) + (by + have h : ((childHL thetaAboveCell000032013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013021) h) + (by + have h : ((childHH thetaAboveCell000032013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013021) h)) + (by + have h : (thetaAboveCell000032013022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032013022 h) + (by + have h : (thetaAboveCell000032013023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032013023 h) + +theorem cover_subtree_f68e71dd24e5 : + adaptiveCoverCheck 8 (childHH (childLL (childHH thetaAboveCell00003201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH thetaAboveCell00003201))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013030 + (by + have h : ((childLL thetaAboveCell000032013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013030) h) + (by + have h : ((childLH thetaAboveCell000032013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013030) h) + (by + have h : ((childHL thetaAboveCell000032013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013030) h) + (by + have h : ((childHH thetaAboveCell000032013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013031 + (by + have h : ((childLL thetaAboveCell000032013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013031) h) + (by + have h : ((childLH thetaAboveCell000032013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013031) h) + (by + have h : ((childHL thetaAboveCell000032013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013031) h) + (by + have h : ((childHH thetaAboveCell000032013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013031) h)) + (by + have h : (thetaAboveCell000032013032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032013032 h) + (by + have h : (thetaAboveCell000032013033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032013033 h) + +theorem e24KC2ThetaAboveLeaf0000320130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00003201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00003201)) + cover_subtree_69db60e02bff + cover_subtree_42fb80f99488 + cover_subtree_190c09664a4f + cover_subtree_f68e71dd24e5 +theorem cover_subtree_7cb6ec704eae : + adaptiveCoverCheck 8 (childLL (childLH (childHH thetaAboveCell00003201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH thetaAboveCell00003201))) + (by + have h : (thetaAboveCell000032013100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032013100 h) + (by + have h : (thetaAboveCell000032013101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032013101 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013102 + (by + have h : ((childLL thetaAboveCell000032013102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013102) h) + (by + have h : ((childLH thetaAboveCell000032013102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013102) h) + (by + have h : ((childHL thetaAboveCell000032013102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013102) h) + (by + have h : ((childHH thetaAboveCell000032013102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013103 + (by + have h : ((childLL thetaAboveCell000032013103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013103) h) + (by + have h : ((childLH thetaAboveCell000032013103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013103) h) + (by + have h : ((childHL thetaAboveCell000032013103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013103) h) + (by + have h : ((childHH thetaAboveCell000032013103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013103) h)) + +theorem cover_subtree_5ed05ff39522 : + adaptiveCoverCheck 8 (childLH (childLH (childHH thetaAboveCell00003201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH thetaAboveCell00003201))) + (by + have h : (thetaAboveCell000032013110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032013110 h) + (by + have h : (thetaAboveCell000032013111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032013111 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013112 + (by + have h : ((childLL thetaAboveCell000032013112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013112) h) + (by + have h : ((childLH thetaAboveCell000032013112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013112) h) + (by + have h : ((childHL thetaAboveCell000032013112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013112) h) + (by + have h : ((childHH thetaAboveCell000032013112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013113 + (by + have h : ((childLL thetaAboveCell000032013113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013113) h) + (by + have h : ((childLH thetaAboveCell000032013113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013113) h) + (by + have h : ((childHL thetaAboveCell000032013113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013113) h) + (by + have h : ((childHH thetaAboveCell000032013113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013113) h)) + +theorem cover_subtree_0c55724b42aa : + adaptiveCoverCheck 8 (childHL (childLH (childHH thetaAboveCell00003201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH thetaAboveCell00003201))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013120 + (by + have h : ((childLL thetaAboveCell000032013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013120) h) + (by + have h : ((childLH thetaAboveCell000032013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013120) h) + (by + have h : ((childHL thetaAboveCell000032013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013120) h) + (by + have h : ((childHH thetaAboveCell000032013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013121 + (by + have h : ((childLL thetaAboveCell000032013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013121) h) + (by + have h : ((childLH thetaAboveCell000032013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013121) h) + (by + have h : ((childHL thetaAboveCell000032013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013121) h) + (by + have h : ((childHH thetaAboveCell000032013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013121) h)) + (by + have h : (thetaAboveCell000032013122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032013122 h) + (by + have h : (thetaAboveCell000032013123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032013123 h) + +theorem cover_subtree_a20be064bbc9 : + adaptiveCoverCheck 8 (childHH (childLH (childHH thetaAboveCell00003201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH thetaAboveCell00003201))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013130 + (by + have h : ((childLL thetaAboveCell000032013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013130) h) + (by + have h : ((childLH thetaAboveCell000032013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013130) h) + (by + have h : ((childHL thetaAboveCell000032013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013130) h) + (by + have h : ((childHH thetaAboveCell000032013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032013131 + (by + have h : ((childLL thetaAboveCell000032013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032013131) h) + (by + have h : ((childLH thetaAboveCell000032013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032013131) h) + (by + have h : ((childHL thetaAboveCell000032013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032013131) h) + (by + have h : ((childHH thetaAboveCell000032013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032013131) h)) + (by + have h : (thetaAboveCell000032013132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032013132 h) + (by + have h : (thetaAboveCell000032013133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032013133 h) + +theorem e24KC2ThetaAboveLeaf0000320131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00003201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00003201)) + cover_subtree_7cb6ec704eae + cover_subtree_5ed05ff39522 + cover_subtree_0c55724b42aa + cover_subtree_a20be064bbc9 +theorem e24KC2ThetaAboveLeaf0000320132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00003201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00003201)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00003201))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00003201))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00003201))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00003201))) h) +theorem e24KC2ThetaAboveLeaf0000320133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00003201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00003201)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00003201))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00003201))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00003201))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00003201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00003201))) h) +theorem e24KC2ThetaAboveLeaf0000321002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00003210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00003210)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00003210))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00003210))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLL + thetaAboveCell00003210))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLL + thetaAboveCell00003210))) h) +theorem e24KC2ThetaAboveLeaf0000321003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00003210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00003210)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00003210))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00003210))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLL + thetaAboveCell00003210))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLL + thetaAboveCell00003210))) h) +theorem e24KC2ThetaAboveLeaf0000321012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00003210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00003210)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00003210))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00003210))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLH + thetaAboveCell00003210))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLH + thetaAboveCell00003210))) h) +theorem e24KC2ThetaAboveLeaf0000321013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00003210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00003210)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00003210))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00003210))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLH + thetaAboveCell00003210))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLH + thetaAboveCell00003210))) h) +theorem cover_subtree_0ba391c6ec0d : + adaptiveCoverCheck 8 (childLL (childLL (childHL thetaAboveCell00003210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL thetaAboveCell00003210))) + (by + have h : (thetaAboveCell000032102000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032102000 h) + (by + have h : (thetaAboveCell000032102001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032102001 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032102002 + (by + have h : ((childLL thetaAboveCell000032102002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032102002) h) + (by + have h : ((childLH thetaAboveCell000032102002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032102002) h) + (by + have h : ((childHL thetaAboveCell000032102002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032102002) h) + (by + have h : ((childHH thetaAboveCell000032102002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032102002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032102003 + (by + have h : ((childLL thetaAboveCell000032102003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032102003) h) + (by + have h : ((childLH thetaAboveCell000032102003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032102003) h) + (by + have h : ((childHL thetaAboveCell000032102003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032102003) h) + (by + have h : ((childHH thetaAboveCell000032102003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032102003) h)) + +theorem cover_subtree_8fafa3f6224a : + adaptiveCoverCheck 8 (childLH (childLL (childHL thetaAboveCell00003210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL thetaAboveCell00003210))) + (by + have h : (thetaAboveCell000032102010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032102010 h) + (by + have h : (thetaAboveCell000032102011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032102011 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032102012 + (by + have h : ((childLL thetaAboveCell000032102012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032102012) h) + (by + have h : ((childLH thetaAboveCell000032102012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032102012) h) + (by + have h : ((childHL thetaAboveCell000032102012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032102012) h) + (by + have h : ((childHH thetaAboveCell000032102012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032102012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032102013 + (by + have h : ((childLL thetaAboveCell000032102013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032102013) h) + (by + have h : ((childLH thetaAboveCell000032102013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032102013) h) + (by + have h : ((childHL thetaAboveCell000032102013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032102013) h) + (by + have h : ((childHH thetaAboveCell000032102013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032102013) h)) + +theorem cover_subtree_d5e7f8726976 : + adaptiveCoverCheck 8 (childHL (childLL (childHL thetaAboveCell00003210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL thetaAboveCell00003210))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032102020 + (by + have h : ((childLL thetaAboveCell000032102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032102020) h) + (by + have h : ((childLH thetaAboveCell000032102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032102020) h) + (by + have h : ((childHL thetaAboveCell000032102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032102020) h) + (by + have h : ((childHH thetaAboveCell000032102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032102020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032102021 + (by + have h : ((childLL thetaAboveCell000032102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032102021) h) + (by + have h : ((childLH thetaAboveCell000032102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032102021) h) + (by + have h : ((childHL thetaAboveCell000032102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032102021) h) + (by + have h : ((childHH thetaAboveCell000032102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032102021) h)) + (by + have h : (thetaAboveCell000032102022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032102022 h) + (by + have h : (thetaAboveCell000032102023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032102023 h) + +theorem cover_subtree_c2e91aa19513 : + adaptiveCoverCheck 8 (childHH (childLL (childHL thetaAboveCell00003210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL thetaAboveCell00003210))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032102030 + (by + have h : ((childLL thetaAboveCell000032102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032102030) h) + (by + have h : ((childLH thetaAboveCell000032102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032102030) h) + (by + have h : ((childHL thetaAboveCell000032102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032102030) h) + (by + have h : ((childHH thetaAboveCell000032102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032102030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032102031 + (by + have h : ((childLL thetaAboveCell000032102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032102031) h) + (by + have h : ((childLH thetaAboveCell000032102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032102031) h) + (by + have h : ((childHL thetaAboveCell000032102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032102031) h) + (by + have h : ((childHH thetaAboveCell000032102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032102031) h)) + (by + have h : (thetaAboveCell000032102032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032102032 h) + (by + have h : (thetaAboveCell000032102033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032102033 h) + +theorem e24KC2ThetaAboveLeaf0000321020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00003210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00003210)) + cover_subtree_0ba391c6ec0d + cover_subtree_8fafa3f6224a + cover_subtree_d5e7f8726976 + cover_subtree_c2e91aa19513 +theorem cover_subtree_80cc442a7cb0 : + adaptiveCoverCheck 8 (childLL (childLH (childHL thetaAboveCell00003210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL thetaAboveCell00003210))) + (by + have h : (thetaAboveCell000032102100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032102100 h) + (by + have h : (thetaAboveCell000032102101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032102101 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032102102 + (by + have h : ((childLL thetaAboveCell000032102102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032102102) h) + (by + have h : ((childLH thetaAboveCell000032102102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032102102) h) + (by + have h : ((childHL thetaAboveCell000032102102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032102102) h) + (by + have h : ((childHH thetaAboveCell000032102102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032102102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032102103 + (by + have h : ((childLL thetaAboveCell000032102103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032102103) h) + (by + have h : ((childLH thetaAboveCell000032102103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032102103) h) + (by + have h : ((childHL thetaAboveCell000032102103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032102103) h) + (by + have h : ((childHH thetaAboveCell000032102103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032102103) h)) + +theorem cover_subtree_7d2d9f5abf21 : + adaptiveCoverCheck 8 (childLH (childLH (childHL thetaAboveCell00003210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL thetaAboveCell00003210))) + (by + have h : (thetaAboveCell000032102110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032102110 h) + (by + have h : (thetaAboveCell000032102111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032102111 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032102112 + (by + have h : ((childLL thetaAboveCell000032102112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032102112) h) + (by + have h : ((childLH thetaAboveCell000032102112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032102112) h) + (by + have h : ((childHL thetaAboveCell000032102112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032102112) h) + (by + have h : ((childHH thetaAboveCell000032102112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032102112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032102113 + (by + have h : ((childLL thetaAboveCell000032102113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032102113) h) + (by + have h : ((childLH thetaAboveCell000032102113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032102113) h) + (by + have h : ((childHL thetaAboveCell000032102113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032102113) h) + (by + have h : ((childHH thetaAboveCell000032102113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032102113) h)) + +theorem cover_subtree_4430ea3984ba : + adaptiveCoverCheck 8 (childHL (childLH (childHL thetaAboveCell00003210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL thetaAboveCell00003210))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032102120 + (by + have h : ((childLL thetaAboveCell000032102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032102120) h) + (by + have h : ((childLH thetaAboveCell000032102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032102120) h) + (by + have h : ((childHL thetaAboveCell000032102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032102120) h) + (by + have h : ((childHH thetaAboveCell000032102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032102120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032102121 + (by + have h : ((childLL thetaAboveCell000032102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032102121) h) + (by + have h : ((childLH thetaAboveCell000032102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032102121) h) + (by + have h : ((childHL thetaAboveCell000032102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032102121) h) + (by + have h : ((childHH thetaAboveCell000032102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032102121) h)) + (by + have h : (thetaAboveCell000032102122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032102122 h) + (by + have h : (thetaAboveCell000032102123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032102123 h) + +theorem cover_subtree_7e0429da25bc : + adaptiveCoverCheck 8 (childHH (childLH (childHL thetaAboveCell00003210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL thetaAboveCell00003210))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032102130 + (by + have h : ((childLL thetaAboveCell000032102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032102130) h) + (by + have h : ((childLH thetaAboveCell000032102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032102130) h) + (by + have h : ((childHL thetaAboveCell000032102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032102130) h) + (by + have h : ((childHH thetaAboveCell000032102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032102130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032102131 + (by + have h : ((childLL thetaAboveCell000032102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032102131) h) + (by + have h : ((childLH thetaAboveCell000032102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032102131) h) + (by + have h : ((childHL thetaAboveCell000032102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032102131) h) + (by + have h : ((childHH thetaAboveCell000032102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032102131) h)) + (by + have h : (thetaAboveCell000032102132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032102132 h) + (by + have h : (thetaAboveCell000032102133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032102133 h) + +theorem e24KC2ThetaAboveLeaf0000321021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00003210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00003210)) + cover_subtree_80cc442a7cb0 + cover_subtree_7d2d9f5abf21 + cover_subtree_4430ea3984ba + cover_subtree_7e0429da25bc +theorem e24KC2ThetaAboveLeaf0000321022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00003210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00003210)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00003210))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00003210))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00003210))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00003210))) h) +theorem e24KC2ThetaAboveLeaf0000321023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00003210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00003210)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00003210))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00003210))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00003210))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00003210))) h) +theorem cover_subtree_c3fcf1053462 : + adaptiveCoverCheck 8 (childLL (childLL (childHH thetaAboveCell00003210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH thetaAboveCell00003210))) + (by + have h : (thetaAboveCell000032103000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032103000 h) + (by + have h : (thetaAboveCell000032103001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032103001 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032103002 + (by + have h : ((childLL thetaAboveCell000032103002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032103002) h) + (by + have h : ((childLH thetaAboveCell000032103002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032103002) h) + (by + have h : ((childHL thetaAboveCell000032103002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032103002) h) + (by + have h : ((childHH thetaAboveCell000032103002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032103002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032103003 + (by + have h : ((childLL thetaAboveCell000032103003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032103003) h) + (by + have h : ((childLH thetaAboveCell000032103003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032103003) h) + (by + have h : ((childHL thetaAboveCell000032103003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032103003) h) + (by + have h : ((childHH thetaAboveCell000032103003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032103003) h)) + +theorem cover_subtree_c50e8ae52b0f : + adaptiveCoverCheck 8 (childLH (childLL (childHH thetaAboveCell00003210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH thetaAboveCell00003210))) + (by + have h : (thetaAboveCell000032103010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032103010 h) + (by + have h : (thetaAboveCell000032103011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032103011 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032103012 + (by + have h : ((childLL thetaAboveCell000032103012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032103012) h) + (by + have h : ((childLH thetaAboveCell000032103012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032103012) h) + (by + have h : ((childHL thetaAboveCell000032103012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032103012) h) + (by + have h : ((childHH thetaAboveCell000032103012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032103012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032103013 + (by + have h : ((childLL thetaAboveCell000032103013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032103013) h) + (by + have h : ((childLH thetaAboveCell000032103013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032103013) h) + (by + have h : ((childHL thetaAboveCell000032103013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032103013) h) + (by + have h : ((childHH thetaAboveCell000032103013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032103013) h)) + +theorem cover_subtree_d417fd422e6e : + adaptiveCoverCheck 8 (childHL (childLL (childHH thetaAboveCell00003210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH thetaAboveCell00003210))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032103020 + (by + have h : ((childLL thetaAboveCell000032103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032103020) h) + (by + have h : ((childLH thetaAboveCell000032103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032103020) h) + (by + have h : ((childHL thetaAboveCell000032103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032103020) h) + (by + have h : ((childHH thetaAboveCell000032103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032103020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032103021 + (by + have h : ((childLL thetaAboveCell000032103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032103021) h) + (by + have h : ((childLH thetaAboveCell000032103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032103021) h) + (by + have h : ((childHL thetaAboveCell000032103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032103021) h) + (by + have h : ((childHH thetaAboveCell000032103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032103021) h)) + (by + have h : (thetaAboveCell000032103022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032103022 h) + (by + have h : (thetaAboveCell000032103023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032103023 h) + +theorem cover_subtree_803a1ba0f62b : + adaptiveCoverCheck 8 (childHH (childLL (childHH thetaAboveCell00003210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH thetaAboveCell00003210))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032103030 + (by + have h : ((childLL thetaAboveCell000032103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032103030) h) + (by + have h : ((childLH thetaAboveCell000032103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032103030) h) + (by + have h : ((childHL thetaAboveCell000032103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032103030) h) + (by + have h : ((childHH thetaAboveCell000032103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032103030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032103031 + (by + have h : ((childLL thetaAboveCell000032103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032103031) h) + (by + have h : ((childLH thetaAboveCell000032103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032103031) h) + (by + have h : ((childHL thetaAboveCell000032103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032103031) h) + (by + have h : ((childHH thetaAboveCell000032103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032103031) h)) + (by + have h : (thetaAboveCell000032103032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032103032 h) + (by + have h : (thetaAboveCell000032103033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032103033 h) + +theorem e24KC2ThetaAboveLeaf0000321030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00003210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00003210)) + cover_subtree_c3fcf1053462 + cover_subtree_c50e8ae52b0f + cover_subtree_d417fd422e6e + cover_subtree_803a1ba0f62b +theorem cover_subtree_dc9cc0fd25e0 : + adaptiveCoverCheck 8 (childLL (childLH (childHH thetaAboveCell00003210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH thetaAboveCell00003210))) + (by + have h : (thetaAboveCell000032103100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032103100 h) + (by + have h : (thetaAboveCell000032103101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032103101 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032103102 + (by + have h : ((childLL thetaAboveCell000032103102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032103102) h) + (by + have h : ((childLH thetaAboveCell000032103102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032103102) h) + (by + have h : ((childHL thetaAboveCell000032103102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032103102) h) + (by + have h : ((childHH thetaAboveCell000032103102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032103102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032103103 + (by + have h : ((childLL thetaAboveCell000032103103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032103103) h) + (by + have h : ((childLH thetaAboveCell000032103103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032103103) h) + (by + have h : ((childHL thetaAboveCell000032103103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032103103) h) + (by + have h : ((childHH thetaAboveCell000032103103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032103103) h)) + +theorem cover_subtree_4e80a706fe6e : + adaptiveCoverCheck 8 (childLH (childLH (childHH thetaAboveCell00003210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH thetaAboveCell00003210))) + (by + have h : (thetaAboveCell000032103110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032103110 h) + (by + have h : (thetaAboveCell000032103111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032103111 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032103112 + (by + have h : ((childLL thetaAboveCell000032103112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032103112) h) + (by + have h : ((childLH thetaAboveCell000032103112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032103112) h) + (by + have h : ((childHL thetaAboveCell000032103112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032103112) h) + (by + have h : ((childHH thetaAboveCell000032103112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032103112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032103113 + (by + have h : ((childLL thetaAboveCell000032103113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032103113) h) + (by + have h : ((childLH thetaAboveCell000032103113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032103113) h) + (by + have h : ((childHL thetaAboveCell000032103113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032103113) h) + (by + have h : ((childHH thetaAboveCell000032103113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032103113) h)) + +theorem cover_subtree_06156bdf5c57 : + adaptiveCoverCheck 8 (childHL (childLH (childHH thetaAboveCell00003210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH thetaAboveCell00003210))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032103120 + (by + have h : ((childLL thetaAboveCell000032103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032103120) h) + (by + have h : ((childLH thetaAboveCell000032103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032103120) h) + (by + have h : ((childHL thetaAboveCell000032103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032103120) h) + (by + have h : ((childHH thetaAboveCell000032103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032103120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032103121 + (by + have h : ((childLL thetaAboveCell000032103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032103121) h) + (by + have h : ((childLH thetaAboveCell000032103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032103121) h) + (by + have h : ((childHL thetaAboveCell000032103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032103121) h) + (by + have h : ((childHH thetaAboveCell000032103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032103121) h)) + (by + have h : (thetaAboveCell000032103122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032103122 h) + (by + have h : (thetaAboveCell000032103123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032103123 h) + +theorem cover_subtree_dfe1ff6f4f14 : + adaptiveCoverCheck 8 (childHH (childLH (childHH thetaAboveCell00003210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH thetaAboveCell00003210))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032103130 + (by + have h : ((childLL thetaAboveCell000032103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032103130) h) + (by + have h : ((childLH thetaAboveCell000032103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032103130) h) + (by + have h : ((childHL thetaAboveCell000032103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032103130) h) + (by + have h : ((childHH thetaAboveCell000032103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032103130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032103131 + (by + have h : ((childLL thetaAboveCell000032103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032103131) h) + (by + have h : ((childLH thetaAboveCell000032103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032103131) h) + (by + have h : ((childHL thetaAboveCell000032103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032103131) h) + (by + have h : ((childHH thetaAboveCell000032103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032103131) h)) + (by + have h : (thetaAboveCell000032103132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032103132 h) + (by + have h : (thetaAboveCell000032103133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032103133 h) + +theorem e24KC2ThetaAboveLeaf0000321031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00003210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00003210)) + cover_subtree_dc9cc0fd25e0 + cover_subtree_4e80a706fe6e + cover_subtree_06156bdf5c57 + cover_subtree_dfe1ff6f4f14 +theorem e24KC2ThetaAboveLeaf0000321032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00003210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00003210)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00003210))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00003210))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00003210))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00003210))) h) +theorem e24KC2ThetaAboveLeaf0000321033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00003210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00003210)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00003210))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00003210))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00003210))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00003210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00003210))) h) +theorem e24KC2ThetaAboveLeaf0000321102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00003211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00003211)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00003211))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00003211))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLL + thetaAboveCell00003211))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLL + thetaAboveCell00003211))) h) +theorem e24KC2ThetaAboveLeaf0000321103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00003211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00003211)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00003211))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00003211))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLL + thetaAboveCell00003211))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLL + thetaAboveCell00003211))) h) +theorem e24KC2ThetaAboveLeaf0000321112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00003211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00003211)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00003211))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00003211))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLH + thetaAboveCell00003211))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLH + thetaAboveCell00003211))) h) +theorem e24KC2ThetaAboveLeaf0000321113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00003211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00003211)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00003211))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00003211))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLH + thetaAboveCell00003211))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLH + thetaAboveCell00003211))) h) +theorem cover_subtree_5921e16da435 : + adaptiveCoverCheck 8 (childLL (childLL (childHL thetaAboveCell00003211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL thetaAboveCell00003211))) + (by + have h : (thetaAboveCell000032112000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032112000 h) + (by + have h : (thetaAboveCell000032112001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032112001 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032112002 + (by + have h : ((childLL thetaAboveCell000032112002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032112002) h) + (by + have h : ((childLH thetaAboveCell000032112002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032112002) h) + (by + have h : ((childHL thetaAboveCell000032112002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032112002) h) + (by + have h : ((childHH thetaAboveCell000032112002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032112002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032112003 + (by + have h : ((childLL thetaAboveCell000032112003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032112003) h) + (by + have h : ((childLH thetaAboveCell000032112003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032112003) h) + (by + have h : ((childHL thetaAboveCell000032112003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032112003) h) + (by + have h : ((childHH thetaAboveCell000032112003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032112003) h)) + +theorem cover_subtree_52f1b09bd9bd : + adaptiveCoverCheck 8 (childLH (childLL (childHL thetaAboveCell00003211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL thetaAboveCell00003211))) + (by + have h : (thetaAboveCell000032112010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032112010 h) + (by + have h : (thetaAboveCell000032112011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032112011 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032112012 + (by + have h : ((childLL thetaAboveCell000032112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032112012) h) + (by + have h : ((childLH thetaAboveCell000032112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032112012) h) + (by + have h : ((childHL thetaAboveCell000032112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032112012) h) + (by + have h : ((childHH thetaAboveCell000032112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032112012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032112013 + (by + have h : ((childLL thetaAboveCell000032112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032112013) h) + (by + have h : ((childLH thetaAboveCell000032112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032112013) h) + (by + have h : ((childHL thetaAboveCell000032112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032112013) h) + (by + have h : ((childHH thetaAboveCell000032112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032112013) h)) + +theorem cover_subtree_0a1ef543bda5 : + adaptiveCoverCheck 8 (childHL (childLL (childHL thetaAboveCell00003211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL thetaAboveCell00003211))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032112020 + (by + have h : ((childLL thetaAboveCell000032112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032112020) h) + (by + have h : ((childLH thetaAboveCell000032112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032112020) h) + (by + have h : ((childHL thetaAboveCell000032112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032112020) h) + (by + have h : ((childHH thetaAboveCell000032112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032112020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032112021 + (by + have h : ((childLL thetaAboveCell000032112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032112021) h) + (by + have h : ((childLH thetaAboveCell000032112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032112021) h) + (by + have h : ((childHL thetaAboveCell000032112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032112021) h) + (by + have h : ((childHH thetaAboveCell000032112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032112021) h)) + (by + have h : (thetaAboveCell000032112022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032112022 h) + (by + have h : (thetaAboveCell000032112023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032112023 h) + +theorem cover_subtree_26949ddfa0ff : + adaptiveCoverCheck 8 (childHH (childLL (childHL thetaAboveCell00003211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL thetaAboveCell00003211))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032112030 + (by + have h : ((childLL thetaAboveCell000032112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032112030) h) + (by + have h : ((childLH thetaAboveCell000032112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032112030) h) + (by + have h : ((childHL thetaAboveCell000032112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032112030) h) + (by + have h : ((childHH thetaAboveCell000032112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032112030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032112031 + (by + have h : ((childLL thetaAboveCell000032112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032112031) h) + (by + have h : ((childLH thetaAboveCell000032112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032112031) h) + (by + have h : ((childHL thetaAboveCell000032112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032112031) h) + (by + have h : ((childHH thetaAboveCell000032112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032112031) h)) + (by + have h : (thetaAboveCell000032112032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032112032 h) + (by + have h : (thetaAboveCell000032112033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032112033 h) + +theorem e24KC2ThetaAboveLeaf0000321120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00003211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00003211)) + cover_subtree_5921e16da435 + cover_subtree_52f1b09bd9bd + cover_subtree_0a1ef543bda5 + cover_subtree_26949ddfa0ff +theorem cover_subtree_b04014698fa2 : + adaptiveCoverCheck 8 (childLL (childLH (childHL thetaAboveCell00003211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL thetaAboveCell00003211))) + (by + have h : (thetaAboveCell000032112100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032112100 h) + (by + have h : (thetaAboveCell000032112101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032112101 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032112102 + (by + have h : ((childLL thetaAboveCell000032112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032112102) h) + (by + have h : ((childLH thetaAboveCell000032112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032112102) h) + (by + have h : ((childHL thetaAboveCell000032112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032112102) h) + (by + have h : ((childHH thetaAboveCell000032112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032112102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032112103 + (by + have h : ((childLL thetaAboveCell000032112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032112103) h) + (by + have h : ((childLH thetaAboveCell000032112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032112103) h) + (by + have h : ((childHL thetaAboveCell000032112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032112103) h) + (by + have h : ((childHH thetaAboveCell000032112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032112103) h)) + +theorem cover_subtree_49d16aafe784 : + adaptiveCoverCheck 8 (childLH (childLH (childHL thetaAboveCell00003211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL thetaAboveCell00003211))) + (by + have h : (thetaAboveCell000032112110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032112110 h) + (by + have h : (thetaAboveCell000032112111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032112111 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032112112 + (by + have h : ((childLL thetaAboveCell000032112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032112112) h) + (by + have h : ((childLH thetaAboveCell000032112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032112112) h) + (by + have h : ((childHL thetaAboveCell000032112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032112112) h) + (by + have h : ((childHH thetaAboveCell000032112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032112112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032112113 + (by + have h : ((childLL thetaAboveCell000032112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032112113) h) + (by + have h : ((childLH thetaAboveCell000032112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032112113) h) + (by + have h : ((childHL thetaAboveCell000032112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032112113) h) + (by + have h : ((childHH thetaAboveCell000032112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032112113) h)) + +theorem cover_subtree_b7dcbd8da2a4 : + adaptiveCoverCheck 8 (childHL (childLH (childHL thetaAboveCell00003211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL thetaAboveCell00003211))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032112120 + (by + have h : ((childLL thetaAboveCell000032112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032112120) h) + (by + have h : ((childLH thetaAboveCell000032112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032112120) h) + (by + have h : ((childHL thetaAboveCell000032112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032112120) h) + (by + have h : ((childHH thetaAboveCell000032112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032112120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032112121 + (by + have h : ((childLL thetaAboveCell000032112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032112121) h) + (by + have h : ((childLH thetaAboveCell000032112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032112121) h) + (by + have h : ((childHL thetaAboveCell000032112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032112121) h) + (by + have h : ((childHH thetaAboveCell000032112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032112121) h)) + (by + have h : (thetaAboveCell000032112122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032112122 h) + (by + have h : (thetaAboveCell000032112123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032112123 h) + +theorem cover_subtree_fb1811cd44df : + adaptiveCoverCheck 8 (childHH (childLH (childHL thetaAboveCell00003211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL thetaAboveCell00003211))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032112130 + (by + have h : ((childLL thetaAboveCell000032112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032112130) h) + (by + have h : ((childLH thetaAboveCell000032112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032112130) h) + (by + have h : ((childHL thetaAboveCell000032112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032112130) h) + (by + have h : ((childHH thetaAboveCell000032112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032112130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032112131 + (by + have h : ((childLL thetaAboveCell000032112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032112131) h) + (by + have h : ((childLH thetaAboveCell000032112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032112131) h) + (by + have h : ((childHL thetaAboveCell000032112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032112131) h) + (by + have h : ((childHH thetaAboveCell000032112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032112131) h)) + (by + have h : (thetaAboveCell000032112132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032112132 h) + (by + have h : (thetaAboveCell000032112133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032112133 h) + +theorem e24KC2ThetaAboveLeaf0000321121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00003211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00003211)) + cover_subtree_b04014698fa2 + cover_subtree_49d16aafe784 + cover_subtree_b7dcbd8da2a4 + cover_subtree_fb1811cd44df +theorem e24KC2ThetaAboveLeaf0000321122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00003211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00003211)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00003211))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00003211))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00003211))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00003211))) h) +theorem e24KC2ThetaAboveLeaf0000321123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00003211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00003211)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00003211))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00003211))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00003211))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00003211))) h) +theorem cover_subtree_6f17b9dcfe31 : + adaptiveCoverCheck 8 (childLL (childLL (childHH thetaAboveCell00003211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH thetaAboveCell00003211))) + (by + have h : (thetaAboveCell000032113000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032113000 h) + (by + have h : (thetaAboveCell000032113001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032113001 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032113002 + (by + have h : ((childLL thetaAboveCell000032113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032113002) h) + (by + have h : ((childLH thetaAboveCell000032113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032113002) h) + (by + have h : ((childHL thetaAboveCell000032113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032113002) h) + (by + have h : ((childHH thetaAboveCell000032113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032113002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032113003 + (by + have h : ((childLL thetaAboveCell000032113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032113003) h) + (by + have h : ((childLH thetaAboveCell000032113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032113003) h) + (by + have h : ((childHL thetaAboveCell000032113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032113003) h) + (by + have h : ((childHH thetaAboveCell000032113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032113003) h)) + +theorem cover_subtree_bf78b444527b : + adaptiveCoverCheck 8 (childLH (childLL (childHH thetaAboveCell00003211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH thetaAboveCell00003211))) + (by + have h : (thetaAboveCell000032113010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032113010 h) + (by + have h : (thetaAboveCell000032113011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032113011 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032113012 + (by + have h : ((childLL thetaAboveCell000032113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032113012) h) + (by + have h : ((childLH thetaAboveCell000032113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032113012) h) + (by + have h : ((childHL thetaAboveCell000032113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032113012) h) + (by + have h : ((childHH thetaAboveCell000032113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032113012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032113013 + (by + have h : ((childLL thetaAboveCell000032113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032113013) h) + (by + have h : ((childLH thetaAboveCell000032113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032113013) h) + (by + have h : ((childHL thetaAboveCell000032113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032113013) h) + (by + have h : ((childHH thetaAboveCell000032113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032113013) h)) + +theorem cover_subtree_68fa0f6b74ff : + adaptiveCoverCheck 8 (childHL (childLL (childHH thetaAboveCell00003211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH thetaAboveCell00003211))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032113020 + (by + have h : ((childLL thetaAboveCell000032113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032113020) h) + (by + have h : ((childLH thetaAboveCell000032113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032113020) h) + (by + have h : ((childHL thetaAboveCell000032113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032113020) h) + (by + have h : ((childHH thetaAboveCell000032113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032113020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032113021 + (by + have h : ((childLL thetaAboveCell000032113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032113021) h) + (by + have h : ((childLH thetaAboveCell000032113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032113021) h) + (by + have h : ((childHL thetaAboveCell000032113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032113021) h) + (by + have h : ((childHH thetaAboveCell000032113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032113021) h)) + (by + have h : (thetaAboveCell000032113022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032113022 h) + (by + have h : (thetaAboveCell000032113023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032113023 h) + +theorem cover_subtree_00b90c74e0b1 : + adaptiveCoverCheck 8 (childHH (childLL (childHH thetaAboveCell00003211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH thetaAboveCell00003211))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032113030 + (by + have h : ((childLL thetaAboveCell000032113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032113030) h) + (by + have h : ((childLH thetaAboveCell000032113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032113030) h) + (by + have h : ((childHL thetaAboveCell000032113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032113030) h) + (by + have h : ((childHH thetaAboveCell000032113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032113030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032113031 + (by + have h : ((childLL thetaAboveCell000032113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032113031) h) + (by + have h : ((childLH thetaAboveCell000032113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032113031) h) + (by + have h : ((childHL thetaAboveCell000032113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032113031) h) + (by + have h : ((childHH thetaAboveCell000032113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032113031) h)) + (by + have h : (thetaAboveCell000032113032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032113032 h) + (by + have h : (thetaAboveCell000032113033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032113033 h) + +theorem e24KC2ThetaAboveLeaf0000321130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00003211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00003211)) + cover_subtree_6f17b9dcfe31 + cover_subtree_bf78b444527b + cover_subtree_68fa0f6b74ff + cover_subtree_00b90c74e0b1 +theorem cover_subtree_bd2e141553af : + adaptiveCoverCheck 8 (childLL (childLH (childHH thetaAboveCell00003211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH thetaAboveCell00003211))) + (by + have h : (thetaAboveCell000032113100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032113100 h) + (by + have h : (thetaAboveCell000032113101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032113101 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032113102 + (by + have h : ((childLL thetaAboveCell000032113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032113102) h) + (by + have h : ((childLH thetaAboveCell000032113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032113102) h) + (by + have h : ((childHL thetaAboveCell000032113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032113102) h) + (by + have h : ((childHH thetaAboveCell000032113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032113102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032113103 + (by + have h : ((childLL thetaAboveCell000032113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032113103) h) + (by + have h : ((childLH thetaAboveCell000032113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032113103) h) + (by + have h : ((childHL thetaAboveCell000032113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032113103) h) + (by + have h : ((childHH thetaAboveCell000032113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032113103) h)) + +theorem cover_subtree_689bdaf91bf7 : + adaptiveCoverCheck 8 (childLH (childLH (childHH thetaAboveCell00003211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH thetaAboveCell00003211))) + (by + have h : (thetaAboveCell000032113110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032113110 h) + (by + have h : (thetaAboveCell000032113111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032113111 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032113112 + (by + have h : ((childLL thetaAboveCell000032113112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032113112) h) + (by + have h : ((childLH thetaAboveCell000032113112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032113112) h) + (by + have h : ((childHL thetaAboveCell000032113112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032113112) h) + (by + have h : ((childHH thetaAboveCell000032113112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032113112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032113113 + (by + have h : ((childLL thetaAboveCell000032113113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032113113) h) + (by + have h : ((childLH thetaAboveCell000032113113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032113113) h) + (by + have h : ((childHL thetaAboveCell000032113113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032113113) h) + (by + have h : ((childHH thetaAboveCell000032113113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032113113) h)) + +theorem cover_subtree_0feb1fef76ea : + adaptiveCoverCheck 8 (childHL (childLH (childHH thetaAboveCell00003211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH thetaAboveCell00003211))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032113120 + (by + have h : ((childLL thetaAboveCell000032113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032113120) h) + (by + have h : ((childLH thetaAboveCell000032113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032113120) h) + (by + have h : ((childHL thetaAboveCell000032113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032113120) h) + (by + have h : ((childHH thetaAboveCell000032113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032113120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032113121 + (by + have h : ((childLL thetaAboveCell000032113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032113121) h) + (by + have h : ((childLH thetaAboveCell000032113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032113121) h) + (by + have h : ((childHL thetaAboveCell000032113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032113121) h) + (by + have h : ((childHH thetaAboveCell000032113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032113121) h)) + (by + have h : (thetaAboveCell000032113122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032113122 h) + (by + have h : (thetaAboveCell000032113123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032113123 h) + +theorem cover_subtree_5f404684ac08 : + adaptiveCoverCheck 8 (childHH (childLH (childHH thetaAboveCell00003211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH thetaAboveCell00003211))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032113130 + (by + have h : ((childLL thetaAboveCell000032113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032113130) h) + (by + have h : ((childLH thetaAboveCell000032113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032113130) h) + (by + have h : ((childHL thetaAboveCell000032113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032113130) h) + (by + have h : ((childHH thetaAboveCell000032113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032113130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032113131 + (by + have h : ((childLL thetaAboveCell000032113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032113131) h) + (by + have h : ((childLH thetaAboveCell000032113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032113131) h) + (by + have h : ((childHL thetaAboveCell000032113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032113131) h) + (by + have h : ((childHH thetaAboveCell000032113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032113131) h)) + (by + have h : (thetaAboveCell000032113132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000032113132 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000032113133 + (by + have h : ((childLL thetaAboveCell000032113133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000032113133) h) + (by + have h : ((childLH thetaAboveCell000032113133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000032113133) h) + (by + have h : ((childHL thetaAboveCell000032113133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000032113133) h) + (by + have h : ((childHH thetaAboveCell000032113133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000032113133) h)) + +theorem e24KC2ThetaAboveLeaf0000321131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00003211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00003211)) + cover_subtree_bd2e141553af + cover_subtree_689bdaf91bf7 + cover_subtree_0feb1fef76ea + cover_subtree_5f404684ac08 +theorem e24KC2ThetaAboveLeaf0000321132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00003211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00003211)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00003211))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00003211))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00003211))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00003211))) h) +theorem e24KC2ThetaAboveLeaf0000321133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00003211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00003211)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00003211))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00003211))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00003211))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00003211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00003211))) h) +theorem e24KC2ThetaAboveLeaf0000330002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00003300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00003300)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00003300))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00003300))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLL + thetaAboveCell00003300))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLL + thetaAboveCell00003300))) h) +theorem e24KC2ThetaAboveLeaf0000330003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00003300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00003300)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00003300))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00003300))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLL + thetaAboveCell00003300))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLL + thetaAboveCell00003300))) h) +theorem e24KC2ThetaAboveLeaf0000330012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00003300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00003300)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00003300))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00003300))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLH + thetaAboveCell00003300))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLH + thetaAboveCell00003300))) h) +theorem e24KC2ThetaAboveLeaf0000330013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00003300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00003300)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00003300))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00003300))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLH + thetaAboveCell00003300))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLH + thetaAboveCell00003300))) h) +theorem cover_subtree_307fcc32307f : + adaptiveCoverCheck 8 (childLL (childLL (childHL thetaAboveCell00003300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL thetaAboveCell00003300))) + (by + have h : (thetaAboveCell000033002000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033002000 h) + (by + have h : (thetaAboveCell000033002001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033002001 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002002 + (by + have h : ((childLL thetaAboveCell000033002002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002002) h) + (by + have h : ((childLH thetaAboveCell000033002002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002002) h) + (by + have h : ((childHL thetaAboveCell000033002002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002002) h) + (by + have h : ((childHH thetaAboveCell000033002002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002003 + (by + have h : ((childLL thetaAboveCell000033002003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002003) h) + (by + have h : ((childLH thetaAboveCell000033002003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002003) h) + (by + have h : ((childHL thetaAboveCell000033002003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002003) h) + (by + have h : ((childHH thetaAboveCell000033002003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002003) h)) + +theorem cover_subtree_d72d916d3b48 : + adaptiveCoverCheck 8 (childLH (childLL (childHL thetaAboveCell00003300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL thetaAboveCell00003300))) + (by + have h : (thetaAboveCell000033002010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033002010 h) + (by + have h : (thetaAboveCell000033002011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033002011 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002012 + (by + have h : ((childLL thetaAboveCell000033002012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002012) h) + (by + have h : ((childLH thetaAboveCell000033002012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002012) h) + (by + have h : ((childHL thetaAboveCell000033002012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002012) h) + (by + have h : ((childHH thetaAboveCell000033002012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002013 + (by + have h : ((childLL thetaAboveCell000033002013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002013) h) + (by + have h : ((childLH thetaAboveCell000033002013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002013) h) + (by + have h : ((childHL thetaAboveCell000033002013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002013) h) + (by + have h : ((childHH thetaAboveCell000033002013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002013) h)) + +theorem cover_subtree_68d4094c9ee3 : + adaptiveCoverCheck 8 (childHL (childLL (childHL thetaAboveCell00003300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL thetaAboveCell00003300))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002020 + (by + have h : ((childLL thetaAboveCell000033002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002020) h) + (by + have h : ((childLH thetaAboveCell000033002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002020) h) + (by + have h : ((childHL thetaAboveCell000033002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002020) h) + (by + have h : ((childHH thetaAboveCell000033002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002021 + (by + have h : ((childLL thetaAboveCell000033002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002021) h) + (by + have h : ((childLH thetaAboveCell000033002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002021) h) + (by + have h : ((childHL thetaAboveCell000033002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002021) h) + (by + have h : ((childHH thetaAboveCell000033002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002022 + (by + have h : ((childLL thetaAboveCell000033002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002022) h) + (by + have h : ((childLH thetaAboveCell000033002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002022) h) + (by + have h : ((childHL thetaAboveCell000033002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002022) h) + (by + have h : ((childHH thetaAboveCell000033002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002023 + (by + have h : ((childLL thetaAboveCell000033002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002023) h) + (by + have h : ((childLH thetaAboveCell000033002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002023) h) + (by + have h : ((childHL thetaAboveCell000033002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002023) h) + (by + have h : ((childHH thetaAboveCell000033002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002023) h)) + +theorem cover_subtree_133a2eba8f2a : + adaptiveCoverCheck 8 (childHH (childLL (childHL thetaAboveCell00003300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL thetaAboveCell00003300))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002030 + (by + have h : ((childLL thetaAboveCell000033002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002030) h) + (by + have h : ((childLH thetaAboveCell000033002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002030) h) + (by + have h : ((childHL thetaAboveCell000033002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002030) h) + (by + have h : ((childHH thetaAboveCell000033002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002031 + (by + have h : ((childLL thetaAboveCell000033002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002031) h) + (by + have h : ((childLH thetaAboveCell000033002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002031) h) + (by + have h : ((childHL thetaAboveCell000033002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002031) h) + (by + have h : ((childHH thetaAboveCell000033002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002032 + (by + have h : ((childLL thetaAboveCell000033002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002032) h) + (by + have h : ((childLH thetaAboveCell000033002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002032) h) + (by + have h : ((childHL thetaAboveCell000033002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002032) h) + (by + have h : ((childHH thetaAboveCell000033002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002033 + (by + have h : ((childLL thetaAboveCell000033002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002033) h) + (by + have h : ((childLH thetaAboveCell000033002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002033) h) + (by + have h : ((childHL thetaAboveCell000033002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002033) h) + (by + have h : ((childHH thetaAboveCell000033002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002033) h)) + +theorem e24KC2ThetaAboveLeaf0000330020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00003300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00003300)) + cover_subtree_307fcc32307f + cover_subtree_d72d916d3b48 + cover_subtree_68d4094c9ee3 + cover_subtree_133a2eba8f2a +theorem cover_subtree_81e0e7f5c28b : + adaptiveCoverCheck 8 (childLL (childLH (childHL thetaAboveCell00003300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL thetaAboveCell00003300))) + (by + have h : (thetaAboveCell000033002100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033002100 h) + (by + have h : (thetaAboveCell000033002101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033002101 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002102 + (by + have h : ((childLL thetaAboveCell000033002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002102) h) + (by + have h : ((childLH thetaAboveCell000033002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002102) h) + (by + have h : ((childHL thetaAboveCell000033002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002102) h) + (by + have h : ((childHH thetaAboveCell000033002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002103 + (by + have h : ((childLL thetaAboveCell000033002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002103) h) + (by + have h : ((childLH thetaAboveCell000033002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002103) h) + (by + have h : ((childHL thetaAboveCell000033002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002103) h) + (by + have h : ((childHH thetaAboveCell000033002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002103) h)) + +theorem cover_subtree_db4d96344863 : + adaptiveCoverCheck 8 (childLH (childLH (childHL thetaAboveCell00003300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL thetaAboveCell00003300))) + (by + have h : (thetaAboveCell000033002110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033002110 h) + (by + have h : (thetaAboveCell000033002111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033002111 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002112 + (by + have h : ((childLL thetaAboveCell000033002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002112) h) + (by + have h : ((childLH thetaAboveCell000033002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002112) h) + (by + have h : ((childHL thetaAboveCell000033002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002112) h) + (by + have h : ((childHH thetaAboveCell000033002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002113 + (by + have h : ((childLL thetaAboveCell000033002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002113) h) + (by + have h : ((childLH thetaAboveCell000033002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002113) h) + (by + have h : ((childHL thetaAboveCell000033002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002113) h) + (by + have h : ((childHH thetaAboveCell000033002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002113) h)) + +theorem cover_subtree_f83decf107d3 : + adaptiveCoverCheck 8 (childHL (childLH (childHL thetaAboveCell00003300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL thetaAboveCell00003300))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002120 + (by + have h : ((childLL thetaAboveCell000033002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002120) h) + (by + have h : ((childLH thetaAboveCell000033002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002120) h) + (by + have h : ((childHL thetaAboveCell000033002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002120) h) + (by + have h : ((childHH thetaAboveCell000033002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002121 + (by + have h : ((childLL thetaAboveCell000033002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002121) h) + (by + have h : ((childLH thetaAboveCell000033002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002121) h) + (by + have h : ((childHL thetaAboveCell000033002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002121) h) + (by + have h : ((childHH thetaAboveCell000033002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002122 + (by + have h : ((childLL thetaAboveCell000033002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002122) h) + (by + have h : ((childLH thetaAboveCell000033002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002122) h) + (by + have h : ((childHL thetaAboveCell000033002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002122) h) + (by + have h : ((childHH thetaAboveCell000033002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002123 + (by + have h : ((childLL thetaAboveCell000033002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002123) h) + (by + have h : ((childLH thetaAboveCell000033002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002123) h) + (by + have h : ((childHL thetaAboveCell000033002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002123) h) + (by + have h : ((childHH thetaAboveCell000033002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002123) h)) + +theorem cover_subtree_aa2cd6339b25 : + adaptiveCoverCheck 8 (childHH (childLH (childHL thetaAboveCell00003300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL thetaAboveCell00003300))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002130 + (by + have h : ((childLL thetaAboveCell000033002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002130) h) + (by + have h : ((childLH thetaAboveCell000033002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002130) h) + (by + have h : ((childHL thetaAboveCell000033002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002130) h) + (by + have h : ((childHH thetaAboveCell000033002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002131 + (by + have h : ((childLL thetaAboveCell000033002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002131) h) + (by + have h : ((childLH thetaAboveCell000033002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002131) h) + (by + have h : ((childHL thetaAboveCell000033002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002131) h) + (by + have h : ((childHH thetaAboveCell000033002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002132 + (by + have h : ((childLL thetaAboveCell000033002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002132) h) + (by + have h : ((childLH thetaAboveCell000033002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002132) h) + (by + have h : ((childHL thetaAboveCell000033002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002132) h) + (by + have h : ((childHH thetaAboveCell000033002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033002133 + (by + have h : ((childLL thetaAboveCell000033002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033002133) h) + (by + have h : ((childLH thetaAboveCell000033002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033002133) h) + (by + have h : ((childHL thetaAboveCell000033002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033002133) h) + (by + have h : ((childHH thetaAboveCell000033002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033002133) h)) + +theorem e24KC2ThetaAboveLeaf0000330021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00003300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00003300)) + cover_subtree_81e0e7f5c28b + cover_subtree_db4d96344863 + cover_subtree_f83decf107d3 + cover_subtree_aa2cd6339b25 +theorem e24KC2ThetaAboveLeaf0000330022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00003300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00003300)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00003300))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00003300))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00003300))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00003300))) h) +theorem e24KC2ThetaAboveLeaf0000330023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00003300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00003300)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00003300))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00003300))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00003300))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00003300))) h) +theorem cover_subtree_9d0a80f57bd8 : + adaptiveCoverCheck 8 (childLL (childLL (childHH thetaAboveCell00003300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH thetaAboveCell00003300))) + (by + have h : (thetaAboveCell000033003000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033003000 h) + (by + have h : (thetaAboveCell000033003001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033003001 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003002 + (by + have h : ((childLL thetaAboveCell000033003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003002) h) + (by + have h : ((childLH thetaAboveCell000033003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003002) h) + (by + have h : ((childHL thetaAboveCell000033003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003002) h) + (by + have h : ((childHH thetaAboveCell000033003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003003 + (by + have h : ((childLL thetaAboveCell000033003003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003003) h) + (by + have h : ((childLH thetaAboveCell000033003003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003003) h) + (by + have h : ((childHL thetaAboveCell000033003003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003003) h) + (by + have h : ((childHH thetaAboveCell000033003003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003003) h)) + +theorem cover_subtree_dc4f306f6518 : + adaptiveCoverCheck 8 (childLH (childLL (childHH thetaAboveCell00003300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH thetaAboveCell00003300))) + (by + have h : (thetaAboveCell000033003010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033003010 h) + (by + have h : (thetaAboveCell000033003011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033003011 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003012 + (by + have h : ((childLL thetaAboveCell000033003012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003012) h) + (by + have h : ((childLH thetaAboveCell000033003012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003012) h) + (by + have h : ((childHL thetaAboveCell000033003012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003012) h) + (by + have h : ((childHH thetaAboveCell000033003012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003013 + (by + have h : ((childLL thetaAboveCell000033003013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003013) h) + (by + have h : ((childLH thetaAboveCell000033003013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003013) h) + (by + have h : ((childHL thetaAboveCell000033003013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003013) h) + (by + have h : ((childHH thetaAboveCell000033003013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003013) h)) + +theorem cover_subtree_f02da567f8d1 : + adaptiveCoverCheck 8 (childHL (childLL (childHH thetaAboveCell00003300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH thetaAboveCell00003300))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003020 + (by + have h : ((childLL thetaAboveCell000033003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003020) h) + (by + have h : ((childLH thetaAboveCell000033003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003020) h) + (by + have h : ((childHL thetaAboveCell000033003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003020) h) + (by + have h : ((childHH thetaAboveCell000033003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003021 + (by + have h : ((childLL thetaAboveCell000033003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003021) h) + (by + have h : ((childLH thetaAboveCell000033003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003021) h) + (by + have h : ((childHL thetaAboveCell000033003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003021) h) + (by + have h : ((childHH thetaAboveCell000033003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003022 + (by + have h : ((childLL thetaAboveCell000033003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003022) h) + (by + have h : ((childLH thetaAboveCell000033003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003022) h) + (by + have h : ((childHL thetaAboveCell000033003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003022) h) + (by + have h : ((childHH thetaAboveCell000033003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003023 + (by + have h : ((childLL thetaAboveCell000033003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003023) h) + (by + have h : ((childLH thetaAboveCell000033003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003023) h) + (by + have h : ((childHL thetaAboveCell000033003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003023) h) + (by + have h : ((childHH thetaAboveCell000033003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003023) h)) + +theorem cover_subtree_5b244ca5864c : + adaptiveCoverCheck 8 (childHH (childLL (childHH thetaAboveCell00003300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH thetaAboveCell00003300))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003030 + (by + have h : ((childLL thetaAboveCell000033003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003030) h) + (by + have h : ((childLH thetaAboveCell000033003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003030) h) + (by + have h : ((childHL thetaAboveCell000033003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003030) h) + (by + have h : ((childHH thetaAboveCell000033003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003031 + (by + have h : ((childLL thetaAboveCell000033003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003031) h) + (by + have h : ((childLH thetaAboveCell000033003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003031) h) + (by + have h : ((childHL thetaAboveCell000033003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003031) h) + (by + have h : ((childHH thetaAboveCell000033003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003032 + (by + have h : ((childLL thetaAboveCell000033003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003032) h) + (by + have h : ((childLH thetaAboveCell000033003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003032) h) + (by + have h : ((childHL thetaAboveCell000033003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003032) h) + (by + have h : ((childHH thetaAboveCell000033003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003033 + (by + have h : ((childLL thetaAboveCell000033003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003033) h) + (by + have h : ((childLH thetaAboveCell000033003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003033) h) + (by + have h : ((childHL thetaAboveCell000033003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003033) h) + (by + have h : ((childHH thetaAboveCell000033003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003033) h)) + +theorem e24KC2ThetaAboveLeaf0000330030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00003300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00003300)) + cover_subtree_9d0a80f57bd8 + cover_subtree_dc4f306f6518 + cover_subtree_f02da567f8d1 + cover_subtree_5b244ca5864c +theorem cover_subtree_834d2353fe6e : + adaptiveCoverCheck 8 (childLL (childLH (childHH thetaAboveCell00003300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH thetaAboveCell00003300))) + (by + have h : (thetaAboveCell000033003100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033003100 h) + (by + have h : (thetaAboveCell000033003101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033003101 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003102 + (by + have h : ((childLL thetaAboveCell000033003102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003102) h) + (by + have h : ((childLH thetaAboveCell000033003102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003102) h) + (by + have h : ((childHL thetaAboveCell000033003102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003102) h) + (by + have h : ((childHH thetaAboveCell000033003102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003103 + (by + have h : ((childLL thetaAboveCell000033003103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003103) h) + (by + have h : ((childLH thetaAboveCell000033003103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003103) h) + (by + have h : ((childHL thetaAboveCell000033003103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003103) h) + (by + have h : ((childHH thetaAboveCell000033003103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003103) h)) + +theorem cover_subtree_d145e983fe8d : + adaptiveCoverCheck 8 (childLH (childLH (childHH thetaAboveCell00003300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH thetaAboveCell00003300))) + (by + have h : (thetaAboveCell000033003110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033003110 h) + (by + have h : (thetaAboveCell000033003111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033003111 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003112 + (by + have h : ((childLL thetaAboveCell000033003112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003112) h) + (by + have h : ((childLH thetaAboveCell000033003112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003112) h) + (by + have h : ((childHL thetaAboveCell000033003112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003112) h) + (by + have h : ((childHH thetaAboveCell000033003112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003113 + (by + have h : ((childLL thetaAboveCell000033003113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003113) h) + (by + have h : ((childLH thetaAboveCell000033003113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003113) h) + (by + have h : ((childHL thetaAboveCell000033003113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003113) h) + (by + have h : ((childHH thetaAboveCell000033003113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003113) h)) + +theorem cover_subtree_d12e61a2b3bb : + adaptiveCoverCheck 8 (childHL (childLH (childHH thetaAboveCell00003300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH thetaAboveCell00003300))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003120 + (by + have h : ((childLL thetaAboveCell000033003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003120) h) + (by + have h : ((childLH thetaAboveCell000033003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003120) h) + (by + have h : ((childHL thetaAboveCell000033003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003120) h) + (by + have h : ((childHH thetaAboveCell000033003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003121 + (by + have h : ((childLL thetaAboveCell000033003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003121) h) + (by + have h : ((childLH thetaAboveCell000033003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003121) h) + (by + have h : ((childHL thetaAboveCell000033003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003121) h) + (by + have h : ((childHH thetaAboveCell000033003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003122 + (by + have h : ((childLL thetaAboveCell000033003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003122) h) + (by + have h : ((childLH thetaAboveCell000033003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003122) h) + (by + have h : ((childHL thetaAboveCell000033003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003122) h) + (by + have h : ((childHH thetaAboveCell000033003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003123 + (by + have h : ((childLL thetaAboveCell000033003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003123) h) + (by + have h : ((childLH thetaAboveCell000033003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003123) h) + (by + have h : ((childHL thetaAboveCell000033003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003123) h) + (by + have h : ((childHH thetaAboveCell000033003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003123) h)) + +theorem cover_subtree_19725b594124 : + adaptiveCoverCheck 8 (childHH (childLH (childHH thetaAboveCell00003300))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH thetaAboveCell00003300))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003130 + (by + have h : ((childLL thetaAboveCell000033003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003130) h) + (by + have h : ((childLH thetaAboveCell000033003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003130) h) + (by + have h : ((childHL thetaAboveCell000033003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003130) h) + (by + have h : ((childHH thetaAboveCell000033003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003131 + (by + have h : ((childLL thetaAboveCell000033003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003131) h) + (by + have h : ((childLH thetaAboveCell000033003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003131) h) + (by + have h : ((childHL thetaAboveCell000033003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003131) h) + (by + have h : ((childHH thetaAboveCell000033003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003132 + (by + have h : ((childLL thetaAboveCell000033003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003132) h) + (by + have h : ((childLH thetaAboveCell000033003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003132) h) + (by + have h : ((childHL thetaAboveCell000033003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003132) h) + (by + have h : ((childHH thetaAboveCell000033003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033003133 + (by + have h : ((childLL thetaAboveCell000033003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033003133) h) + (by + have h : ((childLH thetaAboveCell000033003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033003133) h) + (by + have h : ((childHL thetaAboveCell000033003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033003133) h) + (by + have h : ((childHH thetaAboveCell000033003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033003133) h)) + +theorem e24KC2ThetaAboveLeaf0000330031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00003300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00003300)) + cover_subtree_834d2353fe6e + cover_subtree_d145e983fe8d + cover_subtree_d12e61a2b3bb + cover_subtree_19725b594124 +theorem e24KC2ThetaAboveLeaf0000330032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00003300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00003300)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00003300))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00003300))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00003300))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00003300))) h) +theorem e24KC2ThetaAboveLeaf0000330033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00003300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00003300)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00003300))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00003300))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00003300))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00003300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00003300))) h) +theorem e24KC2ThetaAboveLeaf0000330102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00003301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00003301)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00003301))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00003301))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLL + thetaAboveCell00003301))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLL + thetaAboveCell00003301))) h) +theorem e24KC2ThetaAboveLeaf0000330103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00003301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00003301)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00003301))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00003301))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLL + thetaAboveCell00003301))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLL + thetaAboveCell00003301))) h) +theorem e24KC2ThetaAboveLeaf0000330112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00003301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00003301)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00003301))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00003301))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLH + thetaAboveCell00003301))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLH + thetaAboveCell00003301))) h) +theorem e24KC2ThetaAboveLeaf0000330113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00003301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00003301)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00003301))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00003301))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLH + thetaAboveCell00003301))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLH + thetaAboveCell00003301))) h) +theorem cover_subtree_8335c3bf0b1b : + adaptiveCoverCheck 8 (childLL (childLL (childHL thetaAboveCell00003301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL thetaAboveCell00003301))) + (by + have h : (thetaAboveCell000033012000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012000 h) + (by + have h : (thetaAboveCell000033012001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012001 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012002 + (by + have h : ((childLL thetaAboveCell000033012002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012002) h) + (by + have h : ((childLH thetaAboveCell000033012002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012002) h) + (by + have h : ((childHL thetaAboveCell000033012002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012002) h) + (by + have h : ((childHH thetaAboveCell000033012002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012003 + (by + have h : ((childLL thetaAboveCell000033012003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012003) h) + (by + have h : ((childLH thetaAboveCell000033012003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012003) h) + (by + have h : ((childHL thetaAboveCell000033012003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012003) h) + (by + have h : ((childHH thetaAboveCell000033012003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012003) h)) + +theorem cover_subtree_020729332332 : + adaptiveCoverCheck 8 (childLH (childLL (childHL thetaAboveCell00003301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL thetaAboveCell00003301))) + (by + have h : (thetaAboveCell000033012010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012010 h) + (by + have h : (thetaAboveCell000033012011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012011 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012012 + (by + have h : ((childLL thetaAboveCell000033012012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012012) h) + (by + have h : ((childLH thetaAboveCell000033012012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012012) h) + (by + have h : ((childHL thetaAboveCell000033012012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012012) h) + (by + have h : ((childHH thetaAboveCell000033012012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012013 + (by + have h : ((childLL thetaAboveCell000033012013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012013) h) + (by + have h : ((childLH thetaAboveCell000033012013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012013) h) + (by + have h : ((childHL thetaAboveCell000033012013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012013) h) + (by + have h : ((childHH thetaAboveCell000033012013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012013) h)) + +theorem cover_subtree_f21e4f8d9787 : + adaptiveCoverCheck 8 (childHL (childLL (childHL thetaAboveCell00003301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL thetaAboveCell00003301))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012020 + (by + have h : ((childLL thetaAboveCell000033012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012020) h) + (by + have h : ((childLH thetaAboveCell000033012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012020) h) + (by + have h : ((childHL thetaAboveCell000033012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012020) h) + (by + have h : ((childHH thetaAboveCell000033012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012021 + (by + have h : ((childLL thetaAboveCell000033012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012021) h) + (by + have h : ((childLH thetaAboveCell000033012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012021) h) + (by + have h : ((childHL thetaAboveCell000033012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012021) h) + (by + have h : ((childHH thetaAboveCell000033012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012022 + (by + have h : ((childLL thetaAboveCell000033012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012022) h) + (by + have h : ((childLH thetaAboveCell000033012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012022) h) + (by + have h : ((childHL thetaAboveCell000033012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012022) h) + (by + have h : ((childHH thetaAboveCell000033012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012023 + (by + have h : ((childLL thetaAboveCell000033012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012023) h) + (by + have h : ((childLH thetaAboveCell000033012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012023) h) + (by + have h : ((childHL thetaAboveCell000033012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012023) h) + (by + have h : ((childHH thetaAboveCell000033012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012023) h)) + +theorem cover_subtree_bb534365ac4e : + adaptiveCoverCheck 8 (childHH (childLL (childHL thetaAboveCell00003301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL thetaAboveCell00003301))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012030 + (by + have h : ((childLL thetaAboveCell000033012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012030) h) + (by + have h : ((childLH thetaAboveCell000033012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012030) h) + (by + have h : ((childHL thetaAboveCell000033012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012030) h) + (by + have h : ((childHH thetaAboveCell000033012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012031 + (by + have h : ((childLL thetaAboveCell000033012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012031) h) + (by + have h : ((childLH thetaAboveCell000033012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012031) h) + (by + have h : ((childHL thetaAboveCell000033012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012031) h) + (by + have h : ((childHH thetaAboveCell000033012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012032 + (by + have h : ((childLL thetaAboveCell000033012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012032) h) + (by + have h : ((childLH thetaAboveCell000033012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012032) h) + (by + have h : ((childHL thetaAboveCell000033012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012032) h) + (by + have h : ((childHH thetaAboveCell000033012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012033 + (by + have h : ((childLL thetaAboveCell000033012033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012033) h) + (by + have h : ((childLH thetaAboveCell000033012033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012033) h) + (by + have h : ((childHL thetaAboveCell000033012033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012033) h) + (by + have h : ((childHH thetaAboveCell000033012033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012033) h)) + +theorem e24KC2ThetaAboveLeaf0000330120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00003301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00003301)) + cover_subtree_8335c3bf0b1b + cover_subtree_020729332332 + cover_subtree_f21e4f8d9787 + cover_subtree_bb534365ac4e +theorem cover_subtree_2bf93d8ac027 : + adaptiveCoverCheck 8 (childLL (childLH (childHL thetaAboveCell00003301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL thetaAboveCell00003301))) + (by + have h : (thetaAboveCell000033012100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012100 h) + (by + have h : (thetaAboveCell000033012101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012101 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012102 + (by + have h : ((childLL thetaAboveCell000033012102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012102) h) + (by + have h : ((childLH thetaAboveCell000033012102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012102) h) + (by + have h : ((childHL thetaAboveCell000033012102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012102) h) + (by + have h : ((childHH thetaAboveCell000033012102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012103 + (by + have h : ((childLL thetaAboveCell000033012103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012103) h) + (by + have h : ((childLH thetaAboveCell000033012103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012103) h) + (by + have h : ((childHL thetaAboveCell000033012103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012103) h) + (by + have h : ((childHH thetaAboveCell000033012103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012103) h)) + +theorem cover_subtree_1f4c8299dae5 : + adaptiveCoverCheck 8 (childLH (childLH (childHL thetaAboveCell00003301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL thetaAboveCell00003301))) + (by + have h : (thetaAboveCell000033012110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012110 h) + (by + have h : (thetaAboveCell000033012111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012111 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012112 + (by + have h : ((childLL thetaAboveCell000033012112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012112) h) + (by + have h : ((childLH thetaAboveCell000033012112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012112) h) + (by + have h : ((childHL thetaAboveCell000033012112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012112) h) + (by + have h : ((childHH thetaAboveCell000033012112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012113 + (by + have h : ((childLL thetaAboveCell000033012113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012113) h) + (by + have h : ((childLH thetaAboveCell000033012113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012113) h) + (by + have h : ((childHL thetaAboveCell000033012113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012113) h) + (by + have h : ((childHH thetaAboveCell000033012113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012113) h)) + +theorem cover_subtree_6e263eab4641 : + adaptiveCoverCheck 8 (childHL (childLH (childHL thetaAboveCell00003301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL thetaAboveCell00003301))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012120 + (by + have h : ((childLL thetaAboveCell000033012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012120) h) + (by + have h : ((childLH thetaAboveCell000033012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012120) h) + (by + have h : ((childHL thetaAboveCell000033012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012120) h) + (by + have h : ((childHH thetaAboveCell000033012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012121 + (by + have h : ((childLL thetaAboveCell000033012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012121) h) + (by + have h : ((childLH thetaAboveCell000033012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012121) h) + (by + have h : ((childHL thetaAboveCell000033012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012121) h) + (by + have h : ((childHH thetaAboveCell000033012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012122 + (by + have h : ((childLL thetaAboveCell000033012122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012122) h) + (by + have h : ((childLH thetaAboveCell000033012122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012122) h) + (by + have h : ((childHL thetaAboveCell000033012122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012122) h) + (by + have h : ((childHH thetaAboveCell000033012122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012123 + (by + have h : ((childLL thetaAboveCell000033012123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012123) h) + (by + have h : ((childLH thetaAboveCell000033012123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012123) h) + (by + have h : ((childHL thetaAboveCell000033012123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012123) h) + (by + have h : ((childHH thetaAboveCell000033012123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012123) h)) + +theorem cover_subtree_d9fe12f58957 : + adaptiveCoverCheck 8 (childHH (childLH (childHL thetaAboveCell00003301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL thetaAboveCell00003301))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012130 + (by + have h : ((childLL thetaAboveCell000033012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012130) h) + (by + have h : ((childLH thetaAboveCell000033012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012130) h) + (by + have h : ((childHL thetaAboveCell000033012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012130) h) + (by + have h : ((childHH thetaAboveCell000033012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012131 + (by + have h : ((childLL thetaAboveCell000033012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012131) h) + (by + have h : ((childLH thetaAboveCell000033012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012131) h) + (by + have h : ((childHL thetaAboveCell000033012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012131) h) + (by + have h : ((childHH thetaAboveCell000033012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012132 + (by + have h : ((childLL thetaAboveCell000033012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012132) h) + (by + have h : ((childLH thetaAboveCell000033012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012132) h) + (by + have h : ((childHL thetaAboveCell000033012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012132) h) + (by + have h : ((childHH thetaAboveCell000033012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033012133 + (by + have h : ((childLL thetaAboveCell000033012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033012133) h) + (by + have h : ((childLH thetaAboveCell000033012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033012133) h) + (by + have h : ((childHL thetaAboveCell000033012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033012133) h) + (by + have h : ((childHH thetaAboveCell000033012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033012133) h)) + +theorem e24KC2ThetaAboveLeaf0000330121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00003301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00003301)) + cover_subtree_2bf93d8ac027 + cover_subtree_1f4c8299dae5 + cover_subtree_6e263eab4641 + cover_subtree_d9fe12f58957 +theorem e24KC2ThetaAboveLeaf0000330122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00003301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00003301)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00003301))) + (by + have h : (thetaAboveCell000033012200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012200 h) + (by + have h : (thetaAboveCell000033012201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012201 h) + (by + have h : (thetaAboveCell000033012202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012202 h) + (by + have h : (thetaAboveCell000033012203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00003301))) + (by + have h : (thetaAboveCell000033012210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012210 h) + (by + have h : (thetaAboveCell000033012211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012211 h) + (by + have h : (thetaAboveCell000033012212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012212 h) + (by + have h : (thetaAboveCell000033012213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00003301))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00003301))) h) +theorem e24KC2ThetaAboveLeaf0000330123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00003301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00003301)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00003301))) + (by + have h : (thetaAboveCell000033012300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012300 h) + (by + have h : (thetaAboveCell000033012301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012301 h) + (by + have h : (thetaAboveCell000033012302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012302 h) + (by + have h : (thetaAboveCell000033012303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00003301))) + (by + have h : (thetaAboveCell000033012310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012310 h) + (by + have h : (thetaAboveCell000033012311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012311 h) + (by + have h : (thetaAboveCell000033012312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012312 h) + (by + have h : (thetaAboveCell000033012313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033012313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00003301))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00003301))) h) +theorem cover_subtree_3ee7d70a5db3 : + adaptiveCoverCheck 8 (childLL (childLL (childHH thetaAboveCell00003301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH thetaAboveCell00003301))) + (by + have h : (thetaAboveCell000033013000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013000 h) + (by + have h : (thetaAboveCell000033013001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013001 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013002 + (by + have h : ((childLL thetaAboveCell000033013002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013002) h) + (by + have h : ((childLH thetaAboveCell000033013002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013002) h) + (by + have h : ((childHL thetaAboveCell000033013002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013002) h) + (by + have h : ((childHH thetaAboveCell000033013002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013003 + (by + have h : ((childLL thetaAboveCell000033013003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013003) h) + (by + have h : ((childLH thetaAboveCell000033013003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013003) h) + (by + have h : ((childHL thetaAboveCell000033013003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013003) h) + (by + have h : ((childHH thetaAboveCell000033013003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013003) h)) + +theorem cover_subtree_f6080530d2a9 : + adaptiveCoverCheck 8 (childLH (childLL (childHH thetaAboveCell00003301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH thetaAboveCell00003301))) + (by + have h : (thetaAboveCell000033013010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013010 h) + (by + have h : (thetaAboveCell000033013011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013011 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013012 + (by + have h : ((childLL thetaAboveCell000033013012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013012) h) + (by + have h : ((childLH thetaAboveCell000033013012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013012) h) + (by + have h : ((childHL thetaAboveCell000033013012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013012) h) + (by + have h : ((childHH thetaAboveCell000033013012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013013 + (by + have h : ((childLL thetaAboveCell000033013013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013013) h) + (by + have h : ((childLH thetaAboveCell000033013013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013013) h) + (by + have h : ((childHL thetaAboveCell000033013013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013013) h) + (by + have h : ((childHH thetaAboveCell000033013013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013013) h)) + +theorem cover_subtree_2e5606e732f5 : + adaptiveCoverCheck 8 (childHL (childLL (childHH thetaAboveCell00003301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH thetaAboveCell00003301))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013020 + (by + have h : ((childLL thetaAboveCell000033013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013020) h) + (by + have h : ((childLH thetaAboveCell000033013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013020) h) + (by + have h : ((childHL thetaAboveCell000033013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013020) h) + (by + have h : ((childHH thetaAboveCell000033013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013021 + (by + have h : ((childLL thetaAboveCell000033013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013021) h) + (by + have h : ((childLH thetaAboveCell000033013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013021) h) + (by + have h : ((childHL thetaAboveCell000033013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013021) h) + (by + have h : ((childHH thetaAboveCell000033013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013022 + (by + have h : ((childLL thetaAboveCell000033013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013022) h) + (by + have h : ((childLH thetaAboveCell000033013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013022) h) + (by + have h : ((childHL thetaAboveCell000033013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013022) h) + (by + have h : ((childHH thetaAboveCell000033013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013023 + (by + have h : ((childLL thetaAboveCell000033013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013023) h) + (by + have h : ((childLH thetaAboveCell000033013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013023) h) + (by + have h : ((childHL thetaAboveCell000033013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013023) h) + (by + have h : ((childHH thetaAboveCell000033013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013023) h)) + +theorem cover_subtree_6143158a1495 : + adaptiveCoverCheck 8 (childHH (childLL (childHH thetaAboveCell00003301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH thetaAboveCell00003301))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013030 + (by + have h : ((childLL thetaAboveCell000033013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013030) h) + (by + have h : ((childLH thetaAboveCell000033013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013030) h) + (by + have h : ((childHL thetaAboveCell000033013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013030) h) + (by + have h : ((childHH thetaAboveCell000033013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013031 + (by + have h : ((childLL thetaAboveCell000033013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013031) h) + (by + have h : ((childLH thetaAboveCell000033013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013031) h) + (by + have h : ((childHL thetaAboveCell000033013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013031) h) + (by + have h : ((childHH thetaAboveCell000033013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013032 + (by + have h : ((childLL thetaAboveCell000033013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013032) h) + (by + have h : ((childLH thetaAboveCell000033013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013032) h) + (by + have h : ((childHL thetaAboveCell000033013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013032) h) + (by + have h : ((childHH thetaAboveCell000033013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013033 + (by + have h : ((childLL thetaAboveCell000033013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013033) h) + (by + have h : ((childLH thetaAboveCell000033013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013033) h) + (by + have h : ((childHL thetaAboveCell000033013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013033) h) + (by + have h : ((childHH thetaAboveCell000033013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013033) h)) + +theorem e24KC2ThetaAboveLeaf0000330130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00003301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00003301)) + cover_subtree_3ee7d70a5db3 + cover_subtree_f6080530d2a9 + cover_subtree_2e5606e732f5 + cover_subtree_6143158a1495 +theorem cover_subtree_fd7379f50292 : + adaptiveCoverCheck 8 (childLL (childLH (childHH thetaAboveCell00003301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH thetaAboveCell00003301))) + (by + have h : (thetaAboveCell000033013100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013100 h) + (by + have h : (thetaAboveCell000033013101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013101 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013102 + (by + have h : ((childLL thetaAboveCell000033013102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013102) h) + (by + have h : ((childLH thetaAboveCell000033013102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013102) h) + (by + have h : ((childHL thetaAboveCell000033013102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013102) h) + (by + have h : ((childHH thetaAboveCell000033013102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013103 + (by + have h : ((childLL thetaAboveCell000033013103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013103) h) + (by + have h : ((childLH thetaAboveCell000033013103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013103) h) + (by + have h : ((childHL thetaAboveCell000033013103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013103) h) + (by + have h : ((childHH thetaAboveCell000033013103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013103) h)) + +theorem cover_subtree_f974def6b3e0 : + adaptiveCoverCheck 8 (childLH (childLH (childHH thetaAboveCell00003301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH thetaAboveCell00003301))) + (by + have h : (thetaAboveCell000033013110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013110 h) + (by + have h : (thetaAboveCell000033013111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013111 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013112 + (by + have h : ((childLL thetaAboveCell000033013112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013112) h) + (by + have h : ((childLH thetaAboveCell000033013112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013112) h) + (by + have h : ((childHL thetaAboveCell000033013112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013112) h) + (by + have h : ((childHH thetaAboveCell000033013112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013113 + (by + have h : ((childLL thetaAboveCell000033013113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013113) h) + (by + have h : ((childLH thetaAboveCell000033013113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013113) h) + (by + have h : ((childHL thetaAboveCell000033013113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013113) h) + (by + have h : ((childHH thetaAboveCell000033013113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013113) h)) + +theorem cover_subtree_d879dc743b47 : + adaptiveCoverCheck 8 (childHL (childLH (childHH thetaAboveCell00003301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH thetaAboveCell00003301))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013120 + (by + have h : ((childLL thetaAboveCell000033013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013120) h) + (by + have h : ((childLH thetaAboveCell000033013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013120) h) + (by + have h : ((childHL thetaAboveCell000033013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013120) h) + (by + have h : ((childHH thetaAboveCell000033013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013121 + (by + have h : ((childLL thetaAboveCell000033013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013121) h) + (by + have h : ((childLH thetaAboveCell000033013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013121) h) + (by + have h : ((childHL thetaAboveCell000033013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013121) h) + (by + have h : ((childHH thetaAboveCell000033013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013122 + (by + have h : ((childLL thetaAboveCell000033013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013122) h) + (by + have h : ((childLH thetaAboveCell000033013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013122) h) + (by + have h : ((childHL thetaAboveCell000033013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013122) h) + (by + have h : ((childHH thetaAboveCell000033013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013123 + (by + have h : ((childLL thetaAboveCell000033013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013123) h) + (by + have h : ((childLH thetaAboveCell000033013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013123) h) + (by + have h : ((childHL thetaAboveCell000033013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013123) h) + (by + have h : ((childHH thetaAboveCell000033013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013123) h)) + +theorem cover_subtree_ebda71a3a487 : + adaptiveCoverCheck 8 (childHH (childLH (childHH thetaAboveCell00003301))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH thetaAboveCell00003301))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013130 + (by + have h : ((childLL thetaAboveCell000033013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013130) h) + (by + have h : ((childLH thetaAboveCell000033013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013130) h) + (by + have h : ((childHL thetaAboveCell000033013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013130) h) + (by + have h : ((childHH thetaAboveCell000033013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013131 + (by + have h : ((childLL thetaAboveCell000033013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013131) h) + (by + have h : ((childLH thetaAboveCell000033013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013131) h) + (by + have h : ((childHL thetaAboveCell000033013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013131) h) + (by + have h : ((childHH thetaAboveCell000033013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013132 + (by + have h : ((childLL thetaAboveCell000033013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013132) h) + (by + have h : ((childLH thetaAboveCell000033013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013132) h) + (by + have h : ((childHL thetaAboveCell000033013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013132) h) + (by + have h : ((childHH thetaAboveCell000033013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033013133 + (by + have h : ((childLL thetaAboveCell000033013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033013133) h) + (by + have h : ((childLH thetaAboveCell000033013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033013133) h) + (by + have h : ((childHL thetaAboveCell000033013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033013133) h) + (by + have h : ((childHH thetaAboveCell000033013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033013133) h)) + +theorem e24KC2ThetaAboveLeaf0000330131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00003301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00003301)) + cover_subtree_fd7379f50292 + cover_subtree_f974def6b3e0 + cover_subtree_d879dc743b47 + cover_subtree_ebda71a3a487 +theorem e24KC2ThetaAboveLeaf0000330132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00003301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00003301)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00003301))) + (by + have h : (thetaAboveCell000033013200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013200 h) + (by + have h : (thetaAboveCell000033013201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013201 h) + (by + have h : (thetaAboveCell000033013202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013202 h) + (by + have h : (thetaAboveCell000033013203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00003301))) + (by + have h : (thetaAboveCell000033013210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013210 h) + (by + have h : (thetaAboveCell000033013211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013211 h) + (by + have h : (thetaAboveCell000033013212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013212 h) + (by + have h : (thetaAboveCell000033013213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00003301))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00003301))) h) +theorem e24KC2ThetaAboveLeaf0000330133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00003301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00003301)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00003301))) + (by + have h : (thetaAboveCell000033013300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013300 h) + (by + have h : (thetaAboveCell000033013301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013301 h) + (by + have h : (thetaAboveCell000033013302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013302 h) + (by + have h : (thetaAboveCell000033013303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00003301))) + (by + have h : (thetaAboveCell000033013310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013310 h) + (by + have h : (thetaAboveCell000033013311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013311 h) + (by + have h : (thetaAboveCell000033013312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013312 h) + (by + have h : (thetaAboveCell000033013313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033013313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00003301))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00003301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00003301))) h) +theorem e24KC2ThetaAboveLeaf0000331002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00003310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00003310)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00003310))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00003310))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLL + thetaAboveCell00003310))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLL + thetaAboveCell00003310))) h) +theorem e24KC2ThetaAboveLeaf0000331003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00003310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00003310)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00003310))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00003310))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLL + thetaAboveCell00003310))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLL + thetaAboveCell00003310))) h) +theorem e24KC2ThetaAboveLeaf0000331012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00003310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00003310)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00003310))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00003310))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLH + thetaAboveCell00003310))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLH + thetaAboveCell00003310))) h) +theorem e24KC2ThetaAboveLeaf0000331013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00003310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00003310)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00003310))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00003310))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLH + thetaAboveCell00003310))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLH + thetaAboveCell00003310))) h) +theorem cover_subtree_01b17a5cfced : + adaptiveCoverCheck 8 (childLL (childLL (childHL thetaAboveCell00003310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL thetaAboveCell00003310))) + (by + have h : (thetaAboveCell000033102000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102000 h) + (by + have h : (thetaAboveCell000033102001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102001 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102002 + (by + have h : ((childLL thetaAboveCell000033102002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102002) h) + (by + have h : ((childLH thetaAboveCell000033102002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102002) h) + (by + have h : ((childHL thetaAboveCell000033102002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102002) h) + (by + have h : ((childHH thetaAboveCell000033102002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102003 + (by + have h : ((childLL thetaAboveCell000033102003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102003) h) + (by + have h : ((childLH thetaAboveCell000033102003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102003) h) + (by + have h : ((childHL thetaAboveCell000033102003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102003) h) + (by + have h : ((childHH thetaAboveCell000033102003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102003) h)) + +theorem cover_subtree_26a3db88cf1e : + adaptiveCoverCheck 8 (childLH (childLL (childHL thetaAboveCell00003310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL thetaAboveCell00003310))) + (by + have h : (thetaAboveCell000033102010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102010 h) + (by + have h : (thetaAboveCell000033102011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102011 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102012 + (by + have h : ((childLL thetaAboveCell000033102012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102012) h) + (by + have h : ((childLH thetaAboveCell000033102012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102012) h) + (by + have h : ((childHL thetaAboveCell000033102012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102012) h) + (by + have h : ((childHH thetaAboveCell000033102012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102013 + (by + have h : ((childLL thetaAboveCell000033102013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102013) h) + (by + have h : ((childLH thetaAboveCell000033102013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102013) h) + (by + have h : ((childHL thetaAboveCell000033102013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102013) h) + (by + have h : ((childHH thetaAboveCell000033102013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102013) h)) + +theorem cover_subtree_afbc4e7a5775 : + adaptiveCoverCheck 8 (childHL (childLL (childHL thetaAboveCell00003310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL thetaAboveCell00003310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102020 + (by + have h : ((childLL thetaAboveCell000033102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102020) h) + (by + have h : ((childLH thetaAboveCell000033102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102020) h) + (by + have h : ((childHL thetaAboveCell000033102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102020) h) + (by + have h : ((childHH thetaAboveCell000033102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102021 + (by + have h : ((childLL thetaAboveCell000033102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102021) h) + (by + have h : ((childLH thetaAboveCell000033102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102021) h) + (by + have h : ((childHL thetaAboveCell000033102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102021) h) + (by + have h : ((childHH thetaAboveCell000033102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102022 + (by + have h : ((childLL thetaAboveCell000033102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102022) h) + (by + have h : ((childLH thetaAboveCell000033102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102022) h) + (by + have h : ((childHL thetaAboveCell000033102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102022) h) + (by + have h : ((childHH thetaAboveCell000033102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102023 + (by + have h : ((childLL thetaAboveCell000033102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102023) h) + (by + have h : ((childLH thetaAboveCell000033102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102023) h) + (by + have h : ((childHL thetaAboveCell000033102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102023) h) + (by + have h : ((childHH thetaAboveCell000033102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102023) h)) + +theorem cover_subtree_0885b8dd2e23 : + adaptiveCoverCheck 8 (childHH (childLL (childHL thetaAboveCell00003310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL thetaAboveCell00003310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102030 + (by + have h : ((childLL thetaAboveCell000033102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102030) h) + (by + have h : ((childLH thetaAboveCell000033102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102030) h) + (by + have h : ((childHL thetaAboveCell000033102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102030) h) + (by + have h : ((childHH thetaAboveCell000033102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102031 + (by + have h : ((childLL thetaAboveCell000033102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102031) h) + (by + have h : ((childLH thetaAboveCell000033102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102031) h) + (by + have h : ((childHL thetaAboveCell000033102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102031) h) + (by + have h : ((childHH thetaAboveCell000033102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102032 + (by + have h : ((childLL thetaAboveCell000033102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102032) h) + (by + have h : ((childLH thetaAboveCell000033102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102032) h) + (by + have h : ((childHL thetaAboveCell000033102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102032) h) + (by + have h : ((childHH thetaAboveCell000033102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102033 + (by + have h : ((childLL thetaAboveCell000033102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102033) h) + (by + have h : ((childLH thetaAboveCell000033102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102033) h) + (by + have h : ((childHL thetaAboveCell000033102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102033) h) + (by + have h : ((childHH thetaAboveCell000033102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102033) h)) + +theorem e24KC2ThetaAboveLeaf0000331020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00003310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00003310)) + cover_subtree_01b17a5cfced + cover_subtree_26a3db88cf1e + cover_subtree_afbc4e7a5775 + cover_subtree_0885b8dd2e23 + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle010.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle010.lean new file mode 100644 index 0000000000..7fed58f069 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle010.lean @@ -0,0 +1,9113 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch011`. +* `GerverSofa.KernelOnly.PartE.Certificates.Batch013`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCells0c0d0adfef + +/-- Subcell `1000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1000 : AngleCell := + childLL (childLL (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1001 : AngleCell := + childLH (childLL (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `10003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell1001))) + +/-- Subcell `10012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell1001))) + +/-- Subcell `10012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell1001))) + +/-- Subcell `10012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell1001))) + +/-- Subcell `10012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell1001))) + +/-- Subcell `10012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell1001))) + +/-- Subcell `10012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell1001))) + +/-- Subcell `10012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell1001))) + +/-- Subcell `10012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell1001))) + +/-- Subcell `10012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell1001))) + +/-- Subcell `10012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell1001))) + +/-- Subcell `10012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell1001))) + +/-- Subcell `10012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell1001))) + +/-- Subcell `10012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell1001))) + +/-- Subcell `10012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell1001))) + +/-- Subcell `10012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell1001))) + +/-- Subcell `10012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell1001))) + +/-- Subcell `10013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell1001))) + +/-- Subcell `10013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell1001))) + +/-- Subcell `10013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell1001))) + +/-- Subcell `10013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell1001))) + +/-- Subcell `10013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell1001))) + +/-- Subcell `10013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell1001))) + +/-- Subcell `10013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell1001))) + +/-- Subcell `10013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell1001))) + +/-- Subcell `10013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell1001))) + +/-- Subcell `10013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell1001))) + +/-- Subcell `10013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell1001))) + +/-- Subcell `10013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell1001))) + +/-- Subcell `10013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell1001))) + +/-- Subcell `10013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell1001))) + +/-- Subcell `10013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell1001))) + +/-- Subcell `10013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell1001))) + +end GerverSofa.PartE.CertificateCells0c0d0adfef + +namespace GerverSofa.PartE.CertificateCells660a83a47d + +/-- Subcell `1001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1001 : AngleCell := + childLH (childLL (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1002 : AngleCell := + childHL (childLL (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1003 : AngleCell := + childHH (childLL (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1010 : AngleCell := + childLL (childLH (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `10013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell1010))) + +/-- Subcell `10102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell1010))) + +/-- Subcell `10102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell1010))) + +/-- Subcell `10102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell1010))) + +/-- Subcell `10102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell1010))) + +/-- Subcell `10102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell1010))) + +/-- Subcell `10102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell1010))) + +/-- Subcell `10102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell1010))) + +/-- Subcell `10102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell1010))) + +end GerverSofa.PartE.CertificateCells660a83a47d + +namespace GerverSofa.PartE.CertificateCellse876d675ca + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0001 : AngleCell := + childLH (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell0000))) + +/-- Subcell `00003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell0000))) + +/-- Subcell `00003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell0000))) + +/-- Subcell `00003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell0000))) + +/-- Subcell `00003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell0000))) + +/-- Subcell `00003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell0000))) + +/-- Subcell `00003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell0000))) + +/-- Subcell `00003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell0001))) + +/-- Subcell `00012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell0001))) + +/-- Subcell `00012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell0001))) + +/-- Subcell `00012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell0001))) + +/-- Subcell `00012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell0001))) + +/-- Subcell `00012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell0001))) + +/-- Subcell `00012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell0001))) + +/-- Subcell `00012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell0001))) + +/-- Subcell `00012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell0001))) + +/-- Subcell `00012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell0001))) + +/-- Subcell `00012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell0001))) + +/-- Subcell `00012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell0001))) + +/-- Subcell `00012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell0001))) + +/-- Subcell `00012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell0001))) + +/-- Subcell `00012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell0001))) + +/-- Subcell `00012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell0001))) + +/-- Subcell `00012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell0001))) + +/-- Subcell `00013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell0001))) + +/-- Subcell `00013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell0001))) + +/-- Subcell `00013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell0001))) + +/-- Subcell `00013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell0001))) + +/-- Subcell `00013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell0001))) + +/-- Subcell `00013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell0001))) + +/-- Subcell `00013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell0001))) + +/-- Subcell `00013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell0001))) + +/-- Subcell `00013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell0001))) + +/-- Subcell `00013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell0001))) + +/-- Subcell `00013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell0001))) + +/-- Subcell `00013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell0001))) + +/-- Subcell `00013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell0001))) + +/-- Subcell `00013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell0001))) + +/-- Subcell `00013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell0001))) + +/-- Subcell `00013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0001))) + +end GerverSofa.PartE.CertificateCellse876d675ca + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC5TerminalBatchT409600011`. +* `KernelOnly.PartE.E24KC5TerminalBatchT460800012`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0c0d0adfef + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0c0d0adfef + +open CertificateCells0c0d0adfef +theorem e24KC2ThetaAboveLeaf1000320222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10003202)) = true := by + have h : ((childHL (childHL thetaAboveCell10003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10003202)) h +theorem e24KC2ThetaAboveLeaf1000320223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10003202)) = true := by + have h : ((childHH (childHL thetaAboveCell10003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10003202)) h +theorem e24KC2ThetaAboveLeaf1000320230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10003202)) = true := by + have h : ((childLL (childHH thetaAboveCell10003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10003202)) h +theorem e24KC2ThetaAboveLeaf1000320231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10003202)) = true := by + have h : ((childLH (childHH thetaAboveCell10003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10003202)) h +theorem e24KC2ThetaAboveLeaf1000320232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10003202)) = true := by + have h : ((childHL (childHH thetaAboveCell10003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10003202)) h +theorem e24KC2ThetaAboveLeaf1000320233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10003202)) = true := by + have h : ((childHH (childHH thetaAboveCell10003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10003202)) h +theorem e24KC2ThetaAboveLeaf1000320300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10003203)) = true := by + have h : ((childLL (childLL thetaAboveCell10003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10003203)) h +theorem e24KC2ThetaAboveLeaf1000320301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10003203)) = true := by + have h : ((childLH (childLL thetaAboveCell10003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10003203)) h +theorem e24KC2ThetaAboveLeaf1000320302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10003203)) = true := by + have h : ((childHL (childLL thetaAboveCell10003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10003203)) h +theorem e24KC2ThetaAboveLeaf1000320303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10003203)) = true := by + have h : ((childHH (childLL thetaAboveCell10003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10003203)) h +theorem e24KC2ThetaAboveLeaf1000320310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10003203)) = true := by + have h : ((childLL (childLH thetaAboveCell10003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10003203)) h +theorem e24KC2ThetaAboveLeaf1000320311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10003203)) = true := by + have h : ((childLH (childLH thetaAboveCell10003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10003203)) h +theorem e24KC2ThetaAboveLeaf1000320312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10003203)) = true := by + have h : ((childHL (childLH thetaAboveCell10003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10003203)) h +theorem e24KC2ThetaAboveLeaf1000320313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10003203)) = true := by + have h : ((childHH (childLH thetaAboveCell10003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10003203)) h +theorem e24KC2ThetaAboveLeaf1000320320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10003203)) = true := by + have h : ((childLL (childHL thetaAboveCell10003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10003203)) h +theorem e24KC2ThetaAboveLeaf1000320321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10003203)) = true := by + have h : ((childLH (childHL thetaAboveCell10003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10003203)) h +theorem e24KC2ThetaAboveLeaf1000320322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10003203)) = true := by + have h : ((childHL (childHL thetaAboveCell10003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10003203)) h +theorem e24KC2ThetaAboveLeaf1000320323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10003203)) = true := by + have h : ((childHH (childHL thetaAboveCell10003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10003203)) h +theorem e24KC2ThetaAboveLeaf1000320330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10003203)) = true := by + have h : ((childLL (childHH thetaAboveCell10003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10003203)) h +theorem e24KC2ThetaAboveLeaf1000320331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10003203)) = true := by + have h : ((childLH (childHH thetaAboveCell10003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10003203)) h +theorem e24KC2ThetaAboveLeaf1000320332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10003203)) = true := by + have h : ((childHL (childHH thetaAboveCell10003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10003203)) h +theorem e24KC2ThetaAboveLeaf1000320333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10003203)) = true := by + have h : ((childHH (childHH thetaAboveCell10003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10003203)) h +theorem e24KC2ThetaAboveLeaf100032100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003210) = true := by + have h : ((childLL thetaAboveCell10003210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10003210) h +theorem e24KC2ThetaAboveLeaf100032101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003210) = true := by + have h : ((childLH thetaAboveCell10003210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10003210) h +theorem e24KC2ThetaAboveLeaf100032102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003210) = true := by + have h : ((childHL thetaAboveCell10003210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10003210) h +theorem e24KC2ThetaAboveLeaf100032103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003210) = true := by + have h : ((childHH thetaAboveCell10003210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10003210) h +theorem e24KC2ThetaAboveLeaf100032110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003211) = true := by + have h : ((childLL thetaAboveCell10003211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10003211) h +theorem e24KC2ThetaAboveLeaf100032111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003211) = true := by + have h : ((childLH thetaAboveCell10003211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10003211) h +theorem e24KC2ThetaAboveLeaf100032112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003211) = true := by + have h : ((childHL thetaAboveCell10003211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10003211) h +theorem e24KC2ThetaAboveLeaf100032113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003211) = true := by + have h : ((childHH thetaAboveCell10003211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10003211) h +theorem e24KC2ThetaAboveLeaf1000321200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10003212)) = true := by + have h : ((childLL (childLL thetaAboveCell10003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10003212)) h +theorem e24KC2ThetaAboveLeaf1000321201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10003212)) = true := by + have h : ((childLH (childLL thetaAboveCell10003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10003212)) h +theorem e24KC2ThetaAboveLeaf1000321202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10003212)) = true := by + have h : ((childHL (childLL thetaAboveCell10003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10003212)) h +theorem e24KC2ThetaAboveLeaf1000321203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10003212)) = true := by + have h : ((childHH (childLL thetaAboveCell10003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10003212)) h +theorem e24KC2ThetaAboveLeaf1000321210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10003212)) = true := by + have h : ((childLL (childLH thetaAboveCell10003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10003212)) h +theorem e24KC2ThetaAboveLeaf1000321211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10003212)) = true := by + have h : ((childLH (childLH thetaAboveCell10003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10003212)) h +theorem e24KC2ThetaAboveLeaf1000321212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10003212)) = true := by + have h : ((childHL (childLH thetaAboveCell10003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10003212)) h +theorem e24KC2ThetaAboveLeaf1000321213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10003212)) = true := by + have h : ((childHH (childLH thetaAboveCell10003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10003212)) h +theorem e24KC2ThetaAboveLeaf1000321220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10003212)) = true := by + have h : ((childLL (childHL thetaAboveCell10003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10003212)) h +theorem e24KC2ThetaAboveLeaf1000321221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10003212)) = true := by + have h : ((childLH (childHL thetaAboveCell10003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10003212)) h +theorem e24KC2ThetaAboveLeaf1000321222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10003212)) = true := by + have h : ((childHL (childHL thetaAboveCell10003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10003212)) h +theorem e24KC2ThetaAboveLeaf1000321223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10003212)) = true := by + have h : ((childHH (childHL thetaAboveCell10003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10003212)) h +theorem e24KC2ThetaAboveLeaf1000321230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10003212)) = true := by + have h : ((childLL (childHH thetaAboveCell10003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10003212)) h +theorem e24KC2ThetaAboveLeaf1000321231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10003212)) = true := by + have h : ((childLH (childHH thetaAboveCell10003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10003212)) h +theorem e24KC2ThetaAboveLeaf1000321232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10003212)) = true := by + have h : ((childHL (childHH thetaAboveCell10003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10003212)) h +theorem e24KC2ThetaAboveLeaf1000321233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10003212)) = true := by + have h : ((childHH (childHH thetaAboveCell10003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10003212)) h +theorem e24KC2ThetaAboveLeaf1000321300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10003213)) = true := by + have h : ((childLL (childLL thetaAboveCell10003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10003213)) h +theorem e24KC2ThetaAboveLeaf1000321301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10003213)) = true := by + have h : ((childLH (childLL thetaAboveCell10003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10003213)) h +theorem e24KC2ThetaAboveLeaf1000321302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10003213)) = true := by + have h : ((childHL (childLL thetaAboveCell10003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10003213)) h +theorem e24KC2ThetaAboveLeaf1000321303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10003213)) = true := by + have h : ((childHH (childLL thetaAboveCell10003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10003213)) h +theorem e24KC2ThetaAboveLeaf1000321310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10003213)) = true := by + have h : ((childLL (childLH thetaAboveCell10003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10003213)) h +theorem e24KC2ThetaAboveLeaf1000321311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10003213)) = true := by + have h : ((childLH (childLH thetaAboveCell10003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10003213)) h +theorem e24KC2ThetaAboveLeaf1000321312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10003213)) = true := by + have h : ((childHL (childLH thetaAboveCell10003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10003213)) h +theorem e24KC2ThetaAboveLeaf1000321313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10003213)) = true := by + have h : ((childHH (childLH thetaAboveCell10003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10003213)) h +theorem e24KC2ThetaAboveLeaf1000321320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10003213)) = true := by + have h : ((childLL (childHL thetaAboveCell10003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10003213)) h +theorem e24KC2ThetaAboveLeaf1000321321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10003213)) = true := by + have h : ((childLH (childHL thetaAboveCell10003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10003213)) h +theorem e24KC2ThetaAboveLeaf1000321322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10003213)) = true := by + have h : ((childHL (childHL thetaAboveCell10003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10003213)) h +theorem e24KC2ThetaAboveLeaf1000321323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10003213)) = true := by + have h : ((childHH (childHL thetaAboveCell10003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10003213)) h +theorem e24KC2ThetaAboveLeaf1000321330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10003213)) = true := by + have h : ((childLL (childHH thetaAboveCell10003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10003213)) h +theorem e24KC2ThetaAboveLeaf1000321331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10003213)) = true := by + have h : ((childLH (childHH thetaAboveCell10003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10003213)) h +theorem e24KC2ThetaAboveLeaf1000321332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10003213)) = true := by + have h : ((childHL (childHH thetaAboveCell10003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10003213)) h +theorem e24KC2ThetaAboveLeaf1000321333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10003213)) = true := by + have h : ((childHH (childHH thetaAboveCell10003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10003213)) h +theorem e24KC2ThetaAboveLeaf100032200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003220) = true := by + have h : ((childLL thetaAboveCell10003220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10003220) h +theorem e24KC2ThetaAboveLeaf100032201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003220) = true := by + have h : ((childLH thetaAboveCell10003220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10003220) h +theorem e24KC2ThetaAboveLeaf100032202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003220) = true := by + have h : ((childHL thetaAboveCell10003220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10003220) h +theorem e24KC2ThetaAboveLeaf100032203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003220) = true := by + have h : ((childHH thetaAboveCell10003220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10003220) h +theorem e24KC2ThetaAboveLeaf100032210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003221) = true := by + have h : ((childLL thetaAboveCell10003221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10003221) h +theorem e24KC2ThetaAboveLeaf100032211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003221) = true := by + have h : ((childLH thetaAboveCell10003221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10003221) h +theorem e24KC2ThetaAboveLeaf100032212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003221) = true := by + have h : ((childHL thetaAboveCell10003221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10003221) h +theorem e24KC2ThetaAboveLeaf100032213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003221) = true := by + have h : ((childHH thetaAboveCell10003221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10003221) h +theorem e24KC2ThetaAboveLeaf10003222 : + adaptiveCoverCheck 11 thetaAboveCell10003222 = true := by + have h : (thetaAboveCell10003222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003222 h +theorem e24KC2ThetaAboveLeaf10003223 : + adaptiveCoverCheck 11 thetaAboveCell10003223 = true := by + have h : (thetaAboveCell10003223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003223 h +theorem e24KC2ThetaAboveLeaf100032300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003230) = true := by + have h : ((childLL thetaAboveCell10003230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10003230) h +theorem e24KC2ThetaAboveLeaf100032301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003230) = true := by + have h : ((childLH thetaAboveCell10003230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10003230) h +theorem e24KC2ThetaAboveLeaf100032302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003230) = true := by + have h : ((childHL thetaAboveCell10003230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10003230) h +theorem e24KC2ThetaAboveLeaf100032303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003230) = true := by + have h : ((childHH thetaAboveCell10003230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10003230) h +theorem e24KC2ThetaAboveLeaf100032310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003231) = true := by + have h : ((childLL thetaAboveCell10003231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10003231) h +theorem e24KC2ThetaAboveLeaf100032311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003231) = true := by + have h : ((childLH thetaAboveCell10003231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10003231) h +theorem e24KC2ThetaAboveLeaf100032312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003231) = true := by + have h : ((childHL thetaAboveCell10003231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10003231) h +theorem e24KC2ThetaAboveLeaf100032313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003231) = true := by + have h : ((childHH thetaAboveCell10003231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10003231) h +theorem e24KC2ThetaAboveLeaf10003232 : + adaptiveCoverCheck 11 thetaAboveCell10003232 = true := by + have h : (thetaAboveCell10003232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003232 h +theorem e24KC2ThetaAboveLeaf10003233 : + adaptiveCoverCheck 11 thetaAboveCell10003233 = true := by + have h : (thetaAboveCell10003233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003233 h +theorem e24KC2ThetaAboveLeaf100033000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003300) = true := by + have h : ((childLL thetaAboveCell10003300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10003300) h +theorem e24KC2ThetaAboveLeaf100033001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003300) = true := by + have h : ((childLH thetaAboveCell10003300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10003300) h +theorem e24KC2ThetaAboveLeaf100033002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003300) = true := by + have h : ((childHL thetaAboveCell10003300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10003300) h +theorem e24KC2ThetaAboveLeaf100033003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003300) = true := by + have h : ((childHH thetaAboveCell10003300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10003300) h +theorem e24KC2ThetaAboveLeaf100033010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003301) = true := by + have h : ((childLL thetaAboveCell10003301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10003301) h +theorem e24KC2ThetaAboveLeaf100033011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003301) = true := by + have h : ((childLH thetaAboveCell10003301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10003301) h +theorem e24KC2ThetaAboveLeaf100033012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003301) = true := by + have h : ((childHL thetaAboveCell10003301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10003301) h +theorem e24KC2ThetaAboveLeaf100033013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003301) = true := by + have h : ((childHH thetaAboveCell10003301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10003301) h +theorem e24KC2ThetaAboveLeaf1000330200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10003302)) = true := by + have h : ((childLL (childLL thetaAboveCell10003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10003302)) h +theorem e24KC2ThetaAboveLeaf1000330201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10003302)) = true := by + have h : ((childLH (childLL thetaAboveCell10003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10003302)) h +theorem e24KC2ThetaAboveLeaf1000330202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10003302)) = true := by + have h : ((childHL (childLL thetaAboveCell10003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10003302)) h +theorem e24KC2ThetaAboveLeaf1000330203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10003302)) = true := by + have h : ((childHH (childLL thetaAboveCell10003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10003302)) h +theorem e24KC2ThetaAboveLeaf1000330210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10003302)) = true := by + have h : ((childLL (childLH thetaAboveCell10003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10003302)) h +theorem e24KC2ThetaAboveLeaf1000330211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10003302)) = true := by + have h : ((childLH (childLH thetaAboveCell10003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10003302)) h +theorem e24KC2ThetaAboveLeaf1000330212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10003302)) = true := by + have h : ((childHL (childLH thetaAboveCell10003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10003302)) h +theorem e24KC2ThetaAboveLeaf1000330213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10003302)) = true := by + have h : ((childHH (childLH thetaAboveCell10003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10003302)) h +theorem e24KC2ThetaAboveLeaf1000330220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10003302)) = true := by + have h : ((childLL (childHL thetaAboveCell10003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10003302)) h +theorem e24KC2ThetaAboveLeaf1000330221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10003302)) = true := by + have h : ((childLH (childHL thetaAboveCell10003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10003302)) h +theorem e24KC2ThetaAboveLeaf1000330222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10003302)) = true := by + have h : ((childHL (childHL thetaAboveCell10003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10003302)) h +theorem e24KC2ThetaAboveLeaf1000330223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10003302)) = true := by + have h : ((childHH (childHL thetaAboveCell10003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10003302)) h +theorem e24KC2ThetaAboveLeaf1000330230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10003302)) = true := by + have h : ((childLL (childHH thetaAboveCell10003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10003302)) h +theorem e24KC2ThetaAboveLeaf1000330231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10003302)) = true := by + have h : ((childLH (childHH thetaAboveCell10003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10003302)) h +theorem e24KC2ThetaAboveLeaf1000330232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10003302)) = true := by + have h : ((childHL (childHH thetaAboveCell10003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10003302)) h +theorem e24KC2ThetaAboveLeaf1000330233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10003302)) = true := by + have h : ((childHH (childHH thetaAboveCell10003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10003302)) h +theorem e24KC2ThetaAboveLeaf1000330300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10003303)) = true := by + have h : ((childLL (childLL thetaAboveCell10003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10003303)) h +theorem e24KC2ThetaAboveLeaf1000330301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10003303)) = true := by + have h : ((childLH (childLL thetaAboveCell10003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10003303)) h +theorem e24KC2ThetaAboveLeaf1000330302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10003303)) = true := by + have h : ((childHL (childLL thetaAboveCell10003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10003303)) h +theorem e24KC2ThetaAboveLeaf1000330303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10003303)) = true := by + have h : ((childHH (childLL thetaAboveCell10003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10003303)) h +theorem e24KC2ThetaAboveLeaf1000330310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10003303)) = true := by + have h : ((childLL (childLH thetaAboveCell10003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10003303)) h +theorem e24KC2ThetaAboveLeaf1000330311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10003303)) = true := by + have h : ((childLH (childLH thetaAboveCell10003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10003303)) h +theorem e24KC2ThetaAboveLeaf1000330312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10003303)) = true := by + have h : ((childHL (childLH thetaAboveCell10003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10003303)) h +theorem e24KC2ThetaAboveLeaf1000330313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10003303)) = true := by + have h : ((childHH (childLH thetaAboveCell10003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10003303)) h +theorem e24KC2ThetaAboveLeaf1000330320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10003303)) = true := by + have h : ((childLL (childHL thetaAboveCell10003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10003303)) h +theorem e24KC2ThetaAboveLeaf1000330321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10003303)) = true := by + have h : ((childLH (childHL thetaAboveCell10003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10003303)) h +theorem e24KC2ThetaAboveLeaf1000330322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10003303)) = true := by + have h : ((childHL (childHL thetaAboveCell10003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10003303)) h +theorem e24KC2ThetaAboveLeaf1000330323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10003303)) = true := by + have h : ((childHH (childHL thetaAboveCell10003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10003303)) h +theorem e24KC2ThetaAboveLeaf1000330330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10003303)) = true := by + have h : ((childLL (childHH thetaAboveCell10003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10003303)) h +theorem e24KC2ThetaAboveLeaf1000330331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10003303)) = true := by + have h : ((childLH (childHH thetaAboveCell10003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10003303)) h +theorem e24KC2ThetaAboveLeaf1000330332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10003303)) = true := by + have h : ((childHL (childHH thetaAboveCell10003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10003303)) h +theorem e24KC2ThetaAboveLeaf1000330333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10003303)) = true := by + have h : ((childHH (childHH thetaAboveCell10003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10003303)) h +theorem e24KC2ThetaAboveLeaf100033100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003310) = true := by + have h : ((childLL thetaAboveCell10003310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10003310) h +theorem e24KC2ThetaAboveLeaf100033101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003310) = true := by + have h : ((childLH thetaAboveCell10003310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10003310) h +theorem e24KC2ThetaAboveLeaf100033102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003310) = true := by + have h : ((childHL thetaAboveCell10003310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10003310) h +theorem e24KC2ThetaAboveLeaf100033103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003310) = true := by + have h : ((childHH thetaAboveCell10003310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10003310) h +theorem e24KC2ThetaAboveLeaf100033110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003311) = true := by + have h : ((childLL thetaAboveCell10003311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10003311) h +theorem e24KC2ThetaAboveLeaf100033111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003311) = true := by + have h : ((childLH thetaAboveCell10003311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10003311) h +theorem e24KC2ThetaAboveLeaf100033112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003311) = true := by + have h : ((childHL thetaAboveCell10003311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10003311) h +theorem e24KC2ThetaAboveLeaf100033113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003311) = true := by + have h : ((childHH thetaAboveCell10003311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10003311) h +theorem e24KC2ThetaAboveLeaf1000331200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10003312)) = true := by + have h : ((childLL (childLL thetaAboveCell10003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10003312)) h +theorem e24KC2ThetaAboveLeaf1000331201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10003312)) = true := by + have h : ((childLH (childLL thetaAboveCell10003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10003312)) h +theorem e24KC2ThetaAboveLeaf1000331202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10003312)) = true := by + have h : ((childHL (childLL thetaAboveCell10003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10003312)) h +theorem e24KC2ThetaAboveLeaf1000331203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10003312)) = true := by + have h : ((childHH (childLL thetaAboveCell10003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10003312)) h +theorem e24KC2ThetaAboveLeaf1000331210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10003312)) = true := by + have h : ((childLL (childLH thetaAboveCell10003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10003312)) h +theorem e24KC2ThetaAboveLeaf1000331211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10003312)) = true := by + have h : ((childLH (childLH thetaAboveCell10003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10003312)) h +theorem e24KC2ThetaAboveLeaf1000331212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10003312)) = true := by + have h : ((childHL (childLH thetaAboveCell10003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10003312)) h +theorem e24KC2ThetaAboveLeaf1000331213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10003312)) = true := by + have h : ((childHH (childLH thetaAboveCell10003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10003312)) h +theorem e24KC2ThetaAboveLeaf1000331220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10003312)) = true := by + have h : ((childLL (childHL thetaAboveCell10003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10003312)) h +theorem e24KC2ThetaAboveLeaf1000331221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10003312)) = true := by + have h : ((childLH (childHL thetaAboveCell10003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10003312)) h +theorem e24KC2ThetaAboveLeaf1000331222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10003312)) = true := by + have h : ((childHL (childHL thetaAboveCell10003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10003312)) h +theorem e24KC2ThetaAboveLeaf1000331223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10003312)) = true := by + have h : ((childHH (childHL thetaAboveCell10003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10003312)) h +theorem e24KC2ThetaAboveLeaf1000331230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10003312)) = true := by + have h : ((childLL (childHH thetaAboveCell10003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10003312)) h +theorem e24KC2ThetaAboveLeaf1000331231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10003312)) = true := by + have h : ((childLH (childHH thetaAboveCell10003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10003312)) h +theorem e24KC2ThetaAboveLeaf1000331232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10003312)) = true := by + have h : ((childHL (childHH thetaAboveCell10003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10003312)) h +theorem e24KC2ThetaAboveLeaf1000331233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10003312)) = true := by + have h : ((childHH (childHH thetaAboveCell10003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10003312)) h +theorem e24KC2ThetaAboveLeaf1000331300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10003313)) = true := by + have h : ((childLL (childLL thetaAboveCell10003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10003313)) h +theorem e24KC2ThetaAboveLeaf1000331301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10003313)) = true := by + have h : ((childLH (childLL thetaAboveCell10003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10003313)) h +theorem e24KC2ThetaAboveLeaf1000331302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10003313)) = true := by + have h : ((childHL (childLL thetaAboveCell10003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10003313)) h +theorem e24KC2ThetaAboveLeaf1000331303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10003313)) = true := by + have h : ((childHH (childLL thetaAboveCell10003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10003313)) h +theorem e24KC2ThetaAboveLeaf1000331310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10003313)) = true := by + have h : ((childLL (childLH thetaAboveCell10003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10003313)) h +theorem e24KC2ThetaAboveLeaf1000331311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10003313)) = true := by + have h : ((childLH (childLH thetaAboveCell10003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10003313)) h +theorem e24KC2ThetaAboveLeaf1000331312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10003313)) = true := by + have h : ((childHL (childLH thetaAboveCell10003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10003313)) h +theorem e24KC2ThetaAboveLeaf1000331313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10003313)) = true := by + have h : ((childHH (childLH thetaAboveCell10003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10003313)) h +theorem e24KC2ThetaAboveLeaf1000331320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10003313)) = true := by + have h : ((childLL (childHL thetaAboveCell10003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10003313)) h +theorem e24KC2ThetaAboveLeaf1000331321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10003313)) = true := by + have h : ((childLH (childHL thetaAboveCell10003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10003313)) h +theorem e24KC2ThetaAboveLeaf1000331322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10003313)) = true := by + have h : ((childHL (childHL thetaAboveCell10003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10003313)) h +theorem e24KC2ThetaAboveLeaf1000331323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10003313)) = true := by + have h : ((childHH (childHL thetaAboveCell10003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10003313)) h +theorem e24KC2ThetaAboveLeaf1000331330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10003313)) = true := by + have h : ((childLL (childHH thetaAboveCell10003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10003313)) h +theorem e24KC2ThetaAboveLeaf1000331331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10003313)) = true := by + have h : ((childLH (childHH thetaAboveCell10003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10003313)) h +theorem e24KC2ThetaAboveLeaf1000331332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10003313)) = true := by + have h : ((childHL (childHH thetaAboveCell10003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10003313)) h +theorem e24KC2ThetaAboveLeaf1000331333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10003313)) = true := by + have h : ((childHH (childHH thetaAboveCell10003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10003313)) h +theorem e24KC2ThetaAboveLeaf100033200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003320) = true := by + have h : ((childLL thetaAboveCell10003320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10003320) h +theorem e24KC2ThetaAboveLeaf100033201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003320) = true := by + have h : ((childLH thetaAboveCell10003320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10003320) h +theorem e24KC2ThetaAboveLeaf100033202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003320) = true := by + have h : ((childHL thetaAboveCell10003320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10003320) h +theorem e24KC2ThetaAboveLeaf100033203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003320) = true := by + have h : ((childHH thetaAboveCell10003320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10003320) h +theorem e24KC2ThetaAboveLeaf100033210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003321) = true := by + have h : ((childLL thetaAboveCell10003321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10003321) h +theorem e24KC2ThetaAboveLeaf100033211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003321) = true := by + have h : ((childLH thetaAboveCell10003321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10003321) h +theorem e24KC2ThetaAboveLeaf100033212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003321) = true := by + have h : ((childHL thetaAboveCell10003321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10003321) h +theorem e24KC2ThetaAboveLeaf100033213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003321) = true := by + have h : ((childHH thetaAboveCell10003321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10003321) h +theorem e24KC2ThetaAboveLeaf10003322 : + adaptiveCoverCheck 11 thetaAboveCell10003322 = true := by + have h : (thetaAboveCell10003322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003322 h +theorem e24KC2ThetaAboveLeaf10003323 : + adaptiveCoverCheck 11 thetaAboveCell10003323 = true := by + have h : (thetaAboveCell10003323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003323 h +theorem e24KC2ThetaAboveLeaf100033300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003330) = true := by + have h : ((childLL thetaAboveCell10003330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10003330) h +theorem e24KC2ThetaAboveLeaf100033301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003330) = true := by + have h : ((childLH thetaAboveCell10003330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10003330) h +theorem e24KC2ThetaAboveLeaf100033302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003330) = true := by + have h : ((childHL thetaAboveCell10003330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10003330) h +theorem e24KC2ThetaAboveLeaf100033303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003330) = true := by + have h : ((childHH thetaAboveCell10003330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10003330) h +theorem e24KC2ThetaAboveLeaf100033310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003331) = true := by + have h : ((childLL thetaAboveCell10003331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10003331) h +theorem e24KC2ThetaAboveLeaf1000333110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10003331)) = true := by + have h : ((childLL (childLH thetaAboveCell10003331))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10003331)) h +theorem e24KC2ThetaAboveLeaf1000333111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10003331)) = true := by + have h : ((childLH (childLH thetaAboveCell10003331))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10003331)) h +theorem e24KC2ThetaAboveLeaf1000333112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10003331)) = true := by + have h : ((childHL (childLH thetaAboveCell10003331))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10003331)) h +theorem e24KC2ThetaAboveLeaf1000333113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10003331)) = true := by + have h : ((childHH (childLH thetaAboveCell10003331))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10003331)) h +theorem e24KC2ThetaAboveLeaf100033312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003331) = true := by + have h : ((childHL thetaAboveCell10003331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10003331) h +theorem e24KC2ThetaAboveLeaf100033313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003331) = true := by + have h : ((childHH thetaAboveCell10003331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10003331) h +theorem e24KC2ThetaAboveLeaf10003332 : + adaptiveCoverCheck 11 thetaAboveCell10003332 = true := by + have h : (thetaAboveCell10003332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003332 h +theorem e24KC2ThetaAboveLeaf10003333 : + adaptiveCoverCheck 11 thetaAboveCell10003333 = true := by + have h : (thetaAboveCell10003333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10003333 h +theorem e24KC2ThetaAboveLeaf100100 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell1001)) = true := by + have h : ((childLL (childLL thetaAboveCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLL thetaAboveCell1001)) h +theorem e24KC2ThetaAboveLeaf100101 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell1001)) = true := by + have h : ((childLH (childLL thetaAboveCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLL thetaAboveCell1001)) h +theorem e24KC2ThetaAboveLeaf100102 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell1001)) = true := by + have h : ((childHL (childLL thetaAboveCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell1001)) h +theorem e24KC2ThetaAboveLeaf100103 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell1001)) = true := by + have h : ((childHH (childLL thetaAboveCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell1001)) h +theorem e24KC2ThetaAboveLeaf100110 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell1001)) = true := by + have h : ((childLL (childLH thetaAboveCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLH thetaAboveCell1001)) h +theorem e24KC2ThetaAboveLeaf100111 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell1001)) = true := by + have h : ((childLH (childLH thetaAboveCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLH thetaAboveCell1001)) h +theorem e24KC2ThetaAboveLeaf100112 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell1001)) = true := by + have h : ((childHL (childLH thetaAboveCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell1001)) h +theorem e24KC2ThetaAboveLeaf100113 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell1001)) = true := by + have h : ((childHH (childLH thetaAboveCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell1001)) h +theorem e24KC2ThetaAboveLeaf1001200 : + adaptiveCoverCheck 12 (childLL (childLL (childHL thetaAboveCell1001))) = true := by + have h : ((childLL (childLL (childHL thetaAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHL thetaAboveCell1001))) h +theorem e24KC2ThetaAboveLeaf1001201 : + adaptiveCoverCheck 12 (childLH (childLL (childHL thetaAboveCell1001))) = true := by + have h : ((childLH (childLL (childHL thetaAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHL thetaAboveCell1001))) h +theorem e24KC2ThetaAboveLeaf10012020 : + adaptiveCoverCheck 11 thetaAboveCell10012020 = true := by + have h : (thetaAboveCell10012020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012020 h +theorem e24KC2ThetaAboveLeaf10012021 : + adaptiveCoverCheck 11 thetaAboveCell10012021 = true := by + have h : (thetaAboveCell10012021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012021 h +theorem e24KC2ThetaAboveLeaf10012022 : + adaptiveCoverCheck 11 thetaAboveCell10012022 = true := by + have h : (thetaAboveCell10012022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012022 h +theorem e24KC2ThetaAboveLeaf10012023 : + adaptiveCoverCheck 11 thetaAboveCell10012023 = true := by + have h : (thetaAboveCell10012023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012023 h +theorem e24KC2ThetaAboveLeaf10012030 : + adaptiveCoverCheck 11 thetaAboveCell10012030 = true := by + have h : (thetaAboveCell10012030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012030 h +theorem e24KC2ThetaAboveLeaf10012031 : + adaptiveCoverCheck 11 thetaAboveCell10012031 = true := by + have h : (thetaAboveCell10012031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012031 h +theorem e24KC2ThetaAboveLeaf10012032 : + adaptiveCoverCheck 11 thetaAboveCell10012032 = true := by + have h : (thetaAboveCell10012032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012032 h +theorem e24KC2ThetaAboveLeaf10012033 : + adaptiveCoverCheck 11 thetaAboveCell10012033 = true := by + have h : (thetaAboveCell10012033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012033 h +theorem e24KC2ThetaAboveLeaf1001210 : + adaptiveCoverCheck 12 (childLL (childLH (childHL thetaAboveCell1001))) = true := by + have h : ((childLL (childLH (childHL thetaAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHL thetaAboveCell1001))) h +theorem e24KC2ThetaAboveLeaf1001211 : + adaptiveCoverCheck 12 (childLH (childLH (childHL thetaAboveCell1001))) = true := by + have h : ((childLH (childLH (childHL thetaAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHL thetaAboveCell1001))) h +theorem e24KC2ThetaAboveLeaf10012120 : + adaptiveCoverCheck 11 thetaAboveCell10012120 = true := by + have h : (thetaAboveCell10012120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012120 h +theorem e24KC2ThetaAboveLeaf10012121 : + adaptiveCoverCheck 11 thetaAboveCell10012121 = true := by + have h : (thetaAboveCell10012121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012121 h +theorem e24KC2ThetaAboveLeaf10012122 : + adaptiveCoverCheck 11 thetaAboveCell10012122 = true := by + have h : (thetaAboveCell10012122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012122 h +theorem e24KC2ThetaAboveLeaf10012123 : + adaptiveCoverCheck 11 thetaAboveCell10012123 = true := by + have h : (thetaAboveCell10012123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012123 h +theorem e24KC2ThetaAboveLeaf10012130 : + adaptiveCoverCheck 11 thetaAboveCell10012130 = true := by + have h : (thetaAboveCell10012130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012130 h +theorem e24KC2ThetaAboveLeaf10012131 : + adaptiveCoverCheck 11 thetaAboveCell10012131 = true := by + have h : (thetaAboveCell10012131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012131 h +theorem e24KC2ThetaAboveLeaf10012132 : + adaptiveCoverCheck 11 thetaAboveCell10012132 = true := by + have h : (thetaAboveCell10012132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012132 h +theorem e24KC2ThetaAboveLeaf10012133 : + adaptiveCoverCheck 11 thetaAboveCell10012133 = true := by + have h : (thetaAboveCell10012133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012133 h +theorem e24KC2ThetaAboveLeaf100122000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012200) = true := by + have h : ((childLL thetaAboveCell10012200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10012200) h +theorem e24KC2ThetaAboveLeaf100122001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012200) = true := by + have h : ((childLH thetaAboveCell10012200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10012200) h +theorem e24KC2ThetaAboveLeaf100122002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012200) = true := by + have h : ((childHL thetaAboveCell10012200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10012200) h +theorem e24KC2ThetaAboveLeaf100122003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012200) = true := by + have h : ((childHH thetaAboveCell10012200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10012200) h +theorem e24KC2ThetaAboveLeaf100122010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012201) = true := by + have h : ((childLL thetaAboveCell10012201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10012201) h +theorem e24KC2ThetaAboveLeaf100122011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012201) = true := by + have h : ((childLH thetaAboveCell10012201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10012201) h +theorem e24KC2ThetaAboveLeaf100122012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012201) = true := by + have h : ((childHL thetaAboveCell10012201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10012201) h +theorem e24KC2ThetaAboveLeaf100122013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012201) = true := by + have h : ((childHH thetaAboveCell10012201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10012201) h +theorem e24KC2ThetaAboveLeaf1001220200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10012202)) = true := by + have h : ((childLL (childLL thetaAboveCell10012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10012202)) h +theorem e24KC2ThetaAboveLeaf1001220201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10012202)) = true := by + have h : ((childLH (childLL thetaAboveCell10012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10012202)) h +theorem e24KC2ThetaAboveLeaf1001220202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10012202)) = true := by + have h : ((childHL (childLL thetaAboveCell10012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10012202)) h +theorem e24KC2ThetaAboveLeaf1001220203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10012202)) = true := by + have h : ((childHH (childLL thetaAboveCell10012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10012202)) h +theorem e24KC2ThetaAboveLeaf1001220210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10012202)) = true := by + have h : ((childLL (childLH thetaAboveCell10012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10012202)) h +theorem e24KC2ThetaAboveLeaf1001220211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10012202)) = true := by + have h : ((childLH (childLH thetaAboveCell10012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10012202)) h +theorem e24KC2ThetaAboveLeaf1001220212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10012202)) = true := by + have h : ((childHL (childLH thetaAboveCell10012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10012202)) h +theorem e24KC2ThetaAboveLeaf1001220213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10012202)) = true := by + have h : ((childHH (childLH thetaAboveCell10012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10012202)) h +theorem e24KC2ThetaAboveLeaf1001220220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10012202)) = true := by + have h : ((childLL (childHL thetaAboveCell10012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10012202)) h +theorem e24KC2ThetaAboveLeaf1001220221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10012202)) = true := by + have h : ((childLH (childHL thetaAboveCell10012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10012202)) h +theorem e24KC2ThetaAboveLeaf1001220222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10012202)) = true := by + have h : ((childHL (childHL thetaAboveCell10012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10012202)) h +theorem e24KC2ThetaAboveLeaf1001220223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10012202)) = true := by + have h : ((childHH (childHL thetaAboveCell10012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10012202)) h +theorem e24KC2ThetaAboveLeaf1001220230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10012202)) = true := by + have h : ((childLL (childHH thetaAboveCell10012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10012202)) h +theorem e24KC2ThetaAboveLeaf1001220231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10012202)) = true := by + have h : ((childLH (childHH thetaAboveCell10012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10012202)) h +theorem e24KC2ThetaAboveLeaf1001220232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10012202)) = true := by + have h : ((childHL (childHH thetaAboveCell10012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10012202)) h +theorem e24KC2ThetaAboveLeaf1001220233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10012202)) = true := by + have h : ((childHH (childHH thetaAboveCell10012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10012202)) h +theorem e24KC2ThetaAboveLeaf1001220300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10012203)) = true := by + have h : ((childLL (childLL thetaAboveCell10012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10012203)) h +theorem e24KC2ThetaAboveLeaf1001220301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10012203)) = true := by + have h : ((childLH (childLL thetaAboveCell10012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10012203)) h +theorem e24KC2ThetaAboveLeaf1001220302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10012203)) = true := by + have h : ((childHL (childLL thetaAboveCell10012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10012203)) h +theorem e24KC2ThetaAboveLeaf1001220303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10012203)) = true := by + have h : ((childHH (childLL thetaAboveCell10012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10012203)) h +theorem e24KC2ThetaAboveLeaf1001220310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10012203)) = true := by + have h : ((childLL (childLH thetaAboveCell10012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10012203)) h +theorem e24KC2ThetaAboveLeaf1001220311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10012203)) = true := by + have h : ((childLH (childLH thetaAboveCell10012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10012203)) h +theorem e24KC2ThetaAboveLeaf1001220312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10012203)) = true := by + have h : ((childHL (childLH thetaAboveCell10012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10012203)) h +theorem e24KC2ThetaAboveLeaf1001220313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10012203)) = true := by + have h : ((childHH (childLH thetaAboveCell10012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10012203)) h +theorem e24KC2ThetaAboveLeaf1001220320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10012203)) = true := by + have h : ((childLL (childHL thetaAboveCell10012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10012203)) h +theorem e24KC2ThetaAboveLeaf1001220321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10012203)) = true := by + have h : ((childLH (childHL thetaAboveCell10012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10012203)) h +theorem e24KC2ThetaAboveLeaf1001220322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10012203)) = true := by + have h : ((childHL (childHL thetaAboveCell10012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10012203)) h +theorem e24KC2ThetaAboveLeaf1001220323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10012203)) = true := by + have h : ((childHH (childHL thetaAboveCell10012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10012203)) h +theorem e24KC2ThetaAboveLeaf1001220330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10012203)) = true := by + have h : ((childLL (childHH thetaAboveCell10012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10012203)) h +theorem e24KC2ThetaAboveLeaf1001220331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10012203)) = true := by + have h : ((childLH (childHH thetaAboveCell10012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10012203)) h +theorem e24KC2ThetaAboveLeaf1001220332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10012203)) = true := by + have h : ((childHL (childHH thetaAboveCell10012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10012203)) h +theorem e24KC2ThetaAboveLeaf1001220333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10012203)) = true := by + have h : ((childHH (childHH thetaAboveCell10012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10012203)) h +theorem e24KC2ThetaAboveLeaf100122100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012210) = true := by + have h : ((childLL thetaAboveCell10012210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10012210) h +theorem e24KC2ThetaAboveLeaf100122101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012210) = true := by + have h : ((childLH thetaAboveCell10012210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10012210) h +theorem e24KC2ThetaAboveLeaf100122102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012210) = true := by + have h : ((childHL thetaAboveCell10012210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10012210) h +theorem e24KC2ThetaAboveLeaf100122103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012210) = true := by + have h : ((childHH thetaAboveCell10012210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10012210) h +theorem e24KC2ThetaAboveLeaf100122110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012211) = true := by + have h : ((childLL thetaAboveCell10012211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10012211) h +theorem e24KC2ThetaAboveLeaf100122111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012211) = true := by + have h : ((childLH thetaAboveCell10012211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10012211) h +theorem e24KC2ThetaAboveLeaf100122112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012211) = true := by + have h : ((childHL thetaAboveCell10012211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10012211) h +theorem e24KC2ThetaAboveLeaf100122113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012211) = true := by + have h : ((childHH thetaAboveCell10012211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10012211) h +theorem e24KC2ThetaAboveLeaf1001221200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10012212)) = true := by + have h : ((childLL (childLL thetaAboveCell10012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10012212)) h +theorem e24KC2ThetaAboveLeaf1001221201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10012212)) = true := by + have h : ((childLH (childLL thetaAboveCell10012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10012212)) h +theorem e24KC2ThetaAboveLeaf1001221202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10012212)) = true := by + have h : ((childHL (childLL thetaAboveCell10012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10012212)) h +theorem e24KC2ThetaAboveLeaf1001221203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10012212)) = true := by + have h : ((childHH (childLL thetaAboveCell10012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10012212)) h +theorem e24KC2ThetaAboveLeaf1001221210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10012212)) = true := by + have h : ((childLL (childLH thetaAboveCell10012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10012212)) h +theorem e24KC2ThetaAboveLeaf1001221211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10012212)) = true := by + have h : ((childLH (childLH thetaAboveCell10012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10012212)) h +theorem e24KC2ThetaAboveLeaf1001221212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10012212)) = true := by + have h : ((childHL (childLH thetaAboveCell10012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10012212)) h +theorem e24KC2ThetaAboveLeaf1001221213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10012212)) = true := by + have h : ((childHH (childLH thetaAboveCell10012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10012212)) h +theorem e24KC2ThetaAboveLeaf1001221220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10012212)) = true := by + have h : ((childLL (childHL thetaAboveCell10012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10012212)) h +theorem e24KC2ThetaAboveLeaf1001221221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10012212)) = true := by + have h : ((childLH (childHL thetaAboveCell10012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10012212)) h +theorem e24KC2ThetaAboveLeaf1001221222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10012212)) = true := by + have h : ((childHL (childHL thetaAboveCell10012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10012212)) h +theorem e24KC2ThetaAboveLeaf1001221223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10012212)) = true := by + have h : ((childHH (childHL thetaAboveCell10012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10012212)) h +theorem e24KC2ThetaAboveLeaf1001221230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10012212)) = true := by + have h : ((childLL (childHH thetaAboveCell10012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10012212)) h +theorem e24KC2ThetaAboveLeaf1001221231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10012212)) = true := by + have h : ((childLH (childHH thetaAboveCell10012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10012212)) h +theorem e24KC2ThetaAboveLeaf1001221232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10012212)) = true := by + have h : ((childHL (childHH thetaAboveCell10012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10012212)) h +theorem e24KC2ThetaAboveLeaf1001221233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10012212)) = true := by + have h : ((childHH (childHH thetaAboveCell10012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10012212)) h +theorem e24KC2ThetaAboveLeaf1001221300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10012213)) = true := by + have h : ((childLL (childLL thetaAboveCell10012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10012213)) h +theorem e24KC2ThetaAboveLeaf1001221301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10012213)) = true := by + have h : ((childLH (childLL thetaAboveCell10012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10012213)) h +theorem e24KC2ThetaAboveLeaf1001221302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10012213)) = true := by + have h : ((childHL (childLL thetaAboveCell10012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10012213)) h +theorem e24KC2ThetaAboveLeaf1001221303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10012213)) = true := by + have h : ((childHH (childLL thetaAboveCell10012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10012213)) h +theorem e24KC2ThetaAboveLeaf1001221310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10012213)) = true := by + have h : ((childLL (childLH thetaAboveCell10012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10012213)) h +theorem e24KC2ThetaAboveLeaf1001221311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10012213)) = true := by + have h : ((childLH (childLH thetaAboveCell10012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10012213)) h +theorem e24KC2ThetaAboveLeaf1001221312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10012213)) = true := by + have h : ((childHL (childLH thetaAboveCell10012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10012213)) h +theorem e24KC2ThetaAboveLeaf1001221313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10012213)) = true := by + have h : ((childHH (childLH thetaAboveCell10012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10012213)) h +theorem e24KC2ThetaAboveLeaf1001221320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10012213)) = true := by + have h : ((childLL (childHL thetaAboveCell10012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10012213)) h +theorem e24KC2ThetaAboveLeaf1001221321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10012213)) = true := by + have h : ((childLH (childHL thetaAboveCell10012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10012213)) h +theorem e24KC2ThetaAboveLeaf1001221322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10012213)) = true := by + have h : ((childHL (childHL thetaAboveCell10012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10012213)) h +theorem e24KC2ThetaAboveLeaf1001221323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10012213)) = true := by + have h : ((childHH (childHL thetaAboveCell10012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10012213)) h +theorem e24KC2ThetaAboveLeaf1001221330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10012213)) = true := by + have h : ((childLL (childHH thetaAboveCell10012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10012213)) h +theorem e24KC2ThetaAboveLeaf1001221331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10012213)) = true := by + have h : ((childLH (childHH thetaAboveCell10012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10012213)) h +theorem e24KC2ThetaAboveLeaf1001221332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10012213)) = true := by + have h : ((childHL (childHH thetaAboveCell10012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10012213)) h +theorem e24KC2ThetaAboveLeaf1001221333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10012213)) = true := by + have h : ((childHH (childHH thetaAboveCell10012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10012213)) h +theorem e24KC2ThetaAboveLeaf1001222000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10012220)) = true := by + have h : ((childLL (childLL thetaAboveCell10012220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10012220)) h +theorem e24KC2ThetaAboveLeaf1001222001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10012220)) = true := by + have h : ((childLH (childLL thetaAboveCell10012220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10012220)) h +theorem e24KC2ThetaAboveLeaf1001222002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10012220)) = true := by + have h : ((childHL (childLL thetaAboveCell10012220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10012220)) h +theorem e24KC2ThetaAboveLeaf1001222003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10012220)) = true := by + have h : ((childHH (childLL thetaAboveCell10012220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10012220)) h +theorem e24KC2ThetaAboveLeaf1001222010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10012220)) = true := by + have h : ((childLL (childLH thetaAboveCell10012220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10012220)) h +theorem e24KC2ThetaAboveLeaf1001222011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10012220)) = true := by + have h : ((childLH (childLH thetaAboveCell10012220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10012220)) h +theorem e24KC2ThetaAboveLeaf1001222012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10012220)) = true := by + have h : ((childHL (childLH thetaAboveCell10012220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10012220)) h +theorem e24KC2ThetaAboveLeaf1001222013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10012220)) = true := by + have h : ((childHH (childLH thetaAboveCell10012220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10012220)) h +theorem e24KC2ThetaAboveLeaf100122202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012220) = true := by + have h : ((childHL thetaAboveCell10012220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10012220) h +theorem e24KC2ThetaAboveLeaf100122203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012220) = true := by + have h : ((childHH thetaAboveCell10012220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10012220) h +theorem e24KC2ThetaAboveLeaf1001222100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10012221)) = true := by + have h : ((childLL (childLL thetaAboveCell10012221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10012221)) h +theorem e24KC2ThetaAboveLeaf1001222101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10012221)) = true := by + have h : ((childLH (childLL thetaAboveCell10012221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10012221)) h +theorem e24KC2ThetaAboveLeaf1001222102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10012221)) = true := by + have h : ((childHL (childLL thetaAboveCell10012221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10012221)) h +theorem e24KC2ThetaAboveLeaf1001222103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10012221)) = true := by + have h : ((childHH (childLL thetaAboveCell10012221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10012221)) h +theorem e24KC2ThetaAboveLeaf1001222110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10012221)) = true := by + have h : ((childLL (childLH thetaAboveCell10012221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10012221)) h +theorem e24KC2ThetaAboveLeaf1001222111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10012221)) = true := by + have h : ((childLH (childLH thetaAboveCell10012221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10012221)) h +theorem e24KC2ThetaAboveLeaf1001222112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10012221)) = true := by + have h : ((childHL (childLH thetaAboveCell10012221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10012221)) h +theorem e24KC2ThetaAboveLeaf1001222113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10012221)) = true := by + have h : ((childHH (childLH thetaAboveCell10012221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10012221)) h +theorem e24KC2ThetaAboveLeaf100122212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012221) = true := by + have h : ((childHL thetaAboveCell10012221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10012221) h +theorem e24KC2ThetaAboveLeaf100122213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012221) = true := by + have h : ((childHH thetaAboveCell10012221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10012221) h +theorem e24KC2ThetaAboveLeaf10012222 : + adaptiveCoverCheck 11 thetaAboveCell10012222 = true := by + have h : (thetaAboveCell10012222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012222 h +theorem e24KC2ThetaAboveLeaf10012223 : + adaptiveCoverCheck 11 thetaAboveCell10012223 = true := by + have h : (thetaAboveCell10012223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012223 h +theorem e24KC2ThetaAboveLeaf1001223000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10012230)) = true := by + have h : ((childLL (childLL thetaAboveCell10012230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10012230)) h +theorem e24KC2ThetaAboveLeaf1001223001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10012230)) = true := by + have h : ((childLH (childLL thetaAboveCell10012230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10012230)) h +theorem e24KC2ThetaAboveLeaf1001223002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10012230)) = true := by + have h : ((childHL (childLL thetaAboveCell10012230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10012230)) h +theorem e24KC2ThetaAboveLeaf1001223003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10012230)) = true := by + have h : ((childHH (childLL thetaAboveCell10012230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10012230)) h +theorem e24KC2ThetaAboveLeaf1001223010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10012230)) = true := by + have h : ((childLL (childLH thetaAboveCell10012230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10012230)) h +theorem e24KC2ThetaAboveLeaf1001223011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10012230)) = true := by + have h : ((childLH (childLH thetaAboveCell10012230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10012230)) h +theorem e24KC2ThetaAboveLeaf1001223012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10012230)) = true := by + have h : ((childHL (childLH thetaAboveCell10012230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10012230)) h +theorem e24KC2ThetaAboveLeaf1001223013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10012230)) = true := by + have h : ((childHH (childLH thetaAboveCell10012230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10012230)) h +theorem e24KC2ThetaAboveLeaf100122302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012230) = true := by + have h : ((childHL thetaAboveCell10012230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10012230) h +theorem e24KC2ThetaAboveLeaf100122303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012230) = true := by + have h : ((childHH thetaAboveCell10012230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10012230) h +theorem e24KC2ThetaAboveLeaf1001223100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10012231)) = true := by + have h : ((childLL (childLL thetaAboveCell10012231))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10012231)) h +theorem e24KC2ThetaAboveLeaf1001223101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10012231)) = true := by + have h : ((childLH (childLL thetaAboveCell10012231))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10012231)) h +theorem e24KC2ThetaAboveLeaf1001223102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10012231)) = true := by + have h : ((childHL (childLL thetaAboveCell10012231))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10012231)) h +theorem e24KC2ThetaAboveLeaf1001223103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10012231)) = true := by + have h : ((childHH (childLL thetaAboveCell10012231))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10012231)) h +theorem e24KC2ThetaAboveLeaf1001223110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10012231)) = true := by + have h : ((childLL (childLH thetaAboveCell10012231))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10012231)) h +theorem e24KC2ThetaAboveLeaf1001223111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10012231)) = true := by + have h : ((childLH (childLH thetaAboveCell10012231))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10012231)) h +theorem e24KC2ThetaAboveLeaf1001223112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10012231)) = true := by + have h : ((childHL (childLH thetaAboveCell10012231))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10012231)) h +theorem e24KC2ThetaAboveLeaf1001223113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10012231)) = true := by + have h : ((childHH (childLH thetaAboveCell10012231))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10012231)) h +theorem e24KC2ThetaAboveLeaf100122312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012231) = true := by + have h : ((childHL thetaAboveCell10012231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10012231) h +theorem e24KC2ThetaAboveLeaf100122313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012231) = true := by + have h : ((childHH thetaAboveCell10012231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10012231) h +theorem e24KC2ThetaAboveLeaf10012232 : + adaptiveCoverCheck 11 thetaAboveCell10012232 = true := by + have h : (thetaAboveCell10012232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012232 h +theorem e24KC2ThetaAboveLeaf10012233 : + adaptiveCoverCheck 11 thetaAboveCell10012233 = true := by + have h : (thetaAboveCell10012233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012233 h +theorem e24KC2ThetaAboveLeaf100123000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012300) = true := by + have h : ((childLL thetaAboveCell10012300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10012300) h +theorem e24KC2ThetaAboveLeaf100123001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012300) = true := by + have h : ((childLH thetaAboveCell10012300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10012300) h +theorem e24KC2ThetaAboveLeaf100123002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012300) = true := by + have h : ((childHL thetaAboveCell10012300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10012300) h +theorem e24KC2ThetaAboveLeaf100123003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012300) = true := by + have h : ((childHH thetaAboveCell10012300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10012300) h +theorem e24KC2ThetaAboveLeaf100123010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012301) = true := by + have h : ((childLL thetaAboveCell10012301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10012301) h +theorem e24KC2ThetaAboveLeaf100123011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012301) = true := by + have h : ((childLH thetaAboveCell10012301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10012301) h +theorem e24KC2ThetaAboveLeaf100123012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012301) = true := by + have h : ((childHL thetaAboveCell10012301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10012301) h +theorem e24KC2ThetaAboveLeaf100123013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012301) = true := by + have h : ((childHH thetaAboveCell10012301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10012301) h +theorem e24KC2ThetaAboveLeaf1001230200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10012302)) = true := by + have h : ((childLL (childLL thetaAboveCell10012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10012302)) h +theorem e24KC2ThetaAboveLeaf1001230201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10012302)) = true := by + have h : ((childLH (childLL thetaAboveCell10012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10012302)) h +theorem e24KC2ThetaAboveLeaf1001230202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10012302)) = true := by + have h : ((childHL (childLL thetaAboveCell10012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10012302)) h +theorem e24KC2ThetaAboveLeaf1001230203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10012302)) = true := by + have h : ((childHH (childLL thetaAboveCell10012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10012302)) h +theorem e24KC2ThetaAboveLeaf1001230210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10012302)) = true := by + have h : ((childLL (childLH thetaAboveCell10012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10012302)) h +theorem e24KC2ThetaAboveLeaf1001230211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10012302)) = true := by + have h : ((childLH (childLH thetaAboveCell10012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10012302)) h +theorem e24KC2ThetaAboveLeaf1001230212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10012302)) = true := by + have h : ((childHL (childLH thetaAboveCell10012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10012302)) h +theorem e24KC2ThetaAboveLeaf1001230213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10012302)) = true := by + have h : ((childHH (childLH thetaAboveCell10012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10012302)) h +theorem e24KC2ThetaAboveLeaf1001230220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10012302)) = true := by + have h : ((childLL (childHL thetaAboveCell10012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10012302)) h +theorem e24KC2ThetaAboveLeaf1001230221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10012302)) = true := by + have h : ((childLH (childHL thetaAboveCell10012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10012302)) h +theorem e24KC2ThetaAboveLeaf1001230222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10012302)) = true := by + have h : ((childHL (childHL thetaAboveCell10012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10012302)) h +theorem e24KC2ThetaAboveLeaf1001230223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10012302)) = true := by + have h : ((childHH (childHL thetaAboveCell10012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10012302)) h +theorem e24KC2ThetaAboveLeaf1001230230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10012302)) = true := by + have h : ((childLL (childHH thetaAboveCell10012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10012302)) h +theorem e24KC2ThetaAboveLeaf1001230231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10012302)) = true := by + have h : ((childLH (childHH thetaAboveCell10012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10012302)) h +theorem e24KC2ThetaAboveLeaf1001230232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10012302)) = true := by + have h : ((childHL (childHH thetaAboveCell10012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10012302)) h +theorem e24KC2ThetaAboveLeaf1001230233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10012302)) = true := by + have h : ((childHH (childHH thetaAboveCell10012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10012302)) h +theorem e24KC2ThetaAboveLeaf1001230300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10012303)) = true := by + have h : ((childLL (childLL thetaAboveCell10012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10012303)) h +theorem e24KC2ThetaAboveLeaf1001230301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10012303)) = true := by + have h : ((childLH (childLL thetaAboveCell10012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10012303)) h +theorem e24KC2ThetaAboveLeaf1001230302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10012303)) = true := by + have h : ((childHL (childLL thetaAboveCell10012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10012303)) h +theorem e24KC2ThetaAboveLeaf1001230303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10012303)) = true := by + have h : ((childHH (childLL thetaAboveCell10012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10012303)) h +theorem e24KC2ThetaAboveLeaf1001230310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10012303)) = true := by + have h : ((childLL (childLH thetaAboveCell10012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10012303)) h +theorem e24KC2ThetaAboveLeaf1001230311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10012303)) = true := by + have h : ((childLH (childLH thetaAboveCell10012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10012303)) h +theorem e24KC2ThetaAboveLeaf1001230312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10012303)) = true := by + have h : ((childHL (childLH thetaAboveCell10012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10012303)) h +theorem e24KC2ThetaAboveLeaf1001230313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10012303)) = true := by + have h : ((childHH (childLH thetaAboveCell10012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10012303)) h +theorem e24KC2ThetaAboveLeaf1001230320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10012303)) = true := by + have h : ((childLL (childHL thetaAboveCell10012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10012303)) h +theorem e24KC2ThetaAboveLeaf1001230321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10012303)) = true := by + have h : ((childLH (childHL thetaAboveCell10012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10012303)) h +theorem e24KC2ThetaAboveLeaf1001230322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10012303)) = true := by + have h : ((childHL (childHL thetaAboveCell10012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10012303)) h +theorem e24KC2ThetaAboveLeaf1001230323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10012303)) = true := by + have h : ((childHH (childHL thetaAboveCell10012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10012303)) h +theorem e24KC2ThetaAboveLeaf1001230330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10012303)) = true := by + have h : ((childLL (childHH thetaAboveCell10012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10012303)) h +theorem e24KC2ThetaAboveLeaf1001230331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10012303)) = true := by + have h : ((childLH (childHH thetaAboveCell10012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10012303)) h +theorem e24KC2ThetaAboveLeaf1001230332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10012303)) = true := by + have h : ((childHL (childHH thetaAboveCell10012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10012303)) h +theorem e24KC2ThetaAboveLeaf1001230333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10012303)) = true := by + have h : ((childHH (childHH thetaAboveCell10012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10012303)) h +theorem e24KC2ThetaAboveLeaf100123100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012310) = true := by + have h : ((childLL thetaAboveCell10012310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10012310) h +theorem e24KC2ThetaAboveLeaf100123101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012310) = true := by + have h : ((childLH thetaAboveCell10012310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10012310) h +theorem e24KC2ThetaAboveLeaf100123102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012310) = true := by + have h : ((childHL thetaAboveCell10012310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10012310) h +theorem e24KC2ThetaAboveLeaf100123103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012310) = true := by + have h : ((childHH thetaAboveCell10012310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10012310) h +theorem e24KC2ThetaAboveLeaf100123110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012311) = true := by + have h : ((childLL thetaAboveCell10012311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10012311) h +theorem e24KC2ThetaAboveLeaf100123111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012311) = true := by + have h : ((childLH thetaAboveCell10012311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10012311) h +theorem e24KC2ThetaAboveLeaf100123112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012311) = true := by + have h : ((childHL thetaAboveCell10012311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10012311) h +theorem e24KC2ThetaAboveLeaf100123113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012311) = true := by + have h : ((childHH thetaAboveCell10012311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10012311) h +theorem e24KC2ThetaAboveLeaf1001231200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10012312)) = true := by + have h : ((childLL (childLL thetaAboveCell10012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10012312)) h +theorem e24KC2ThetaAboveLeaf1001231201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10012312)) = true := by + have h : ((childLH (childLL thetaAboveCell10012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10012312)) h +theorem e24KC2ThetaAboveLeaf1001231202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10012312)) = true := by + have h : ((childHL (childLL thetaAboveCell10012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10012312)) h +theorem e24KC2ThetaAboveLeaf1001231203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10012312)) = true := by + have h : ((childHH (childLL thetaAboveCell10012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10012312)) h +theorem e24KC2ThetaAboveLeaf1001231210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10012312)) = true := by + have h : ((childLL (childLH thetaAboveCell10012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10012312)) h +theorem e24KC2ThetaAboveLeaf1001231211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10012312)) = true := by + have h : ((childLH (childLH thetaAboveCell10012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10012312)) h +theorem e24KC2ThetaAboveLeaf1001231212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10012312)) = true := by + have h : ((childHL (childLH thetaAboveCell10012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10012312)) h +theorem e24KC2ThetaAboveLeaf1001231213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10012312)) = true := by + have h : ((childHH (childLH thetaAboveCell10012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10012312)) h +theorem e24KC2ThetaAboveLeaf1001231220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10012312)) = true := by + have h : ((childLL (childHL thetaAboveCell10012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10012312)) h +theorem e24KC2ThetaAboveLeaf1001231221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10012312)) = true := by + have h : ((childLH (childHL thetaAboveCell10012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10012312)) h +theorem e24KC2ThetaAboveLeaf1001231222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10012312)) = true := by + have h : ((childHL (childHL thetaAboveCell10012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10012312)) h +theorem e24KC2ThetaAboveLeaf1001231223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10012312)) = true := by + have h : ((childHH (childHL thetaAboveCell10012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10012312)) h +theorem e24KC2ThetaAboveLeaf1001231230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10012312)) = true := by + have h : ((childLL (childHH thetaAboveCell10012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10012312)) h +theorem e24KC2ThetaAboveLeaf1001231231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10012312)) = true := by + have h : ((childLH (childHH thetaAboveCell10012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10012312)) h +theorem e24KC2ThetaAboveLeaf1001231232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10012312)) = true := by + have h : ((childHL (childHH thetaAboveCell10012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10012312)) h +theorem e24KC2ThetaAboveLeaf1001231233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10012312)) = true := by + have h : ((childHH (childHH thetaAboveCell10012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10012312)) h +theorem e24KC2ThetaAboveLeaf1001231300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10012313)) = true := by + have h : ((childLL (childLL thetaAboveCell10012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10012313)) h +theorem e24KC2ThetaAboveLeaf1001231301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10012313)) = true := by + have h : ((childLH (childLL thetaAboveCell10012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10012313)) h +theorem e24KC2ThetaAboveLeaf1001231302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10012313)) = true := by + have h : ((childHL (childLL thetaAboveCell10012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10012313)) h +theorem e24KC2ThetaAboveLeaf1001231303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10012313)) = true := by + have h : ((childHH (childLL thetaAboveCell10012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10012313)) h +theorem e24KC2ThetaAboveLeaf1001231310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10012313)) = true := by + have h : ((childLL (childLH thetaAboveCell10012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10012313)) h +theorem e24KC2ThetaAboveLeaf1001231311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10012313)) = true := by + have h : ((childLH (childLH thetaAboveCell10012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10012313)) h +theorem e24KC2ThetaAboveLeaf1001231312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10012313)) = true := by + have h : ((childHL (childLH thetaAboveCell10012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10012313)) h +theorem e24KC2ThetaAboveLeaf1001231313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10012313)) = true := by + have h : ((childHH (childLH thetaAboveCell10012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10012313)) h +theorem e24KC2ThetaAboveLeaf1001231320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10012313)) = true := by + have h : ((childLL (childHL thetaAboveCell10012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10012313)) h +theorem e24KC2ThetaAboveLeaf1001231321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10012313)) = true := by + have h : ((childLH (childHL thetaAboveCell10012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10012313)) h +theorem e24KC2ThetaAboveLeaf1001231322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10012313)) = true := by + have h : ((childHL (childHL thetaAboveCell10012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10012313)) h +theorem e24KC2ThetaAboveLeaf1001231323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10012313)) = true := by + have h : ((childHH (childHL thetaAboveCell10012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10012313)) h +theorem e24KC2ThetaAboveLeaf1001231330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10012313)) = true := by + have h : ((childLL (childHH thetaAboveCell10012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10012313)) h +theorem e24KC2ThetaAboveLeaf1001231331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10012313)) = true := by + have h : ((childLH (childHH thetaAboveCell10012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10012313)) h +theorem e24KC2ThetaAboveLeaf1001231332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10012313)) = true := by + have h : ((childHL (childHH thetaAboveCell10012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10012313)) h +theorem e24KC2ThetaAboveLeaf1001231333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10012313)) = true := by + have h : ((childHH (childHH thetaAboveCell10012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10012313)) h +theorem e24KC2ThetaAboveLeaf1001232000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10012320)) = true := by + have h : ((childLL (childLL thetaAboveCell10012320))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10012320)) h +theorem e24KC2ThetaAboveLeaf1001232001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10012320)) = true := by + have h : ((childLH (childLL thetaAboveCell10012320))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10012320)) h +theorem e24KC2ThetaAboveLeaf1001232002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10012320)) = true := by + have h : ((childHL (childLL thetaAboveCell10012320))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10012320)) h +theorem e24KC2ThetaAboveLeaf1001232003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10012320)) = true := by + have h : ((childHH (childLL thetaAboveCell10012320))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10012320)) h +theorem e24KC2ThetaAboveLeaf1001232010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10012320)) = true := by + have h : ((childLL (childLH thetaAboveCell10012320))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10012320)) h +theorem e24KC2ThetaAboveLeaf1001232011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10012320)) = true := by + have h : ((childLH (childLH thetaAboveCell10012320))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10012320)) h +theorem e24KC2ThetaAboveLeaf1001232012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10012320)) = true := by + have h : ((childHL (childLH thetaAboveCell10012320))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10012320)) h +theorem e24KC2ThetaAboveLeaf1001232013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10012320)) = true := by + have h : ((childHH (childLH thetaAboveCell10012320))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10012320)) h +theorem e24KC2ThetaAboveLeaf100123202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012320) = true := by + have h : ((childHL thetaAboveCell10012320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10012320) h +theorem e24KC2ThetaAboveLeaf100123203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012320) = true := by + have h : ((childHH thetaAboveCell10012320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10012320) h +theorem e24KC2ThetaAboveLeaf1001232100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10012321)) = true := by + have h : ((childLL (childLL thetaAboveCell10012321))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10012321)) h +theorem e24KC2ThetaAboveLeaf1001232101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10012321)) = true := by + have h : ((childLH (childLL thetaAboveCell10012321))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10012321)) h +theorem e24KC2ThetaAboveLeaf1001232102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10012321)) = true := by + have h : ((childHL (childLL thetaAboveCell10012321))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10012321)) h +theorem e24KC2ThetaAboveLeaf1001232103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10012321)) = true := by + have h : ((childHH (childLL thetaAboveCell10012321))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10012321)) h +theorem e24KC2ThetaAboveLeaf1001232110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10012321)) = true := by + have h : ((childLL (childLH thetaAboveCell10012321))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10012321)) h +theorem e24KC2ThetaAboveLeaf1001232111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10012321)) = true := by + have h : ((childLH (childLH thetaAboveCell10012321))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10012321)) h +theorem e24KC2ThetaAboveLeaf1001232112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10012321)) = true := by + have h : ((childHL (childLH thetaAboveCell10012321))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10012321)) h +theorem e24KC2ThetaAboveLeaf1001232113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10012321)) = true := by + have h : ((childHH (childLH thetaAboveCell10012321))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10012321)) h +theorem e24KC2ThetaAboveLeaf100123212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012321) = true := by + have h : ((childHL thetaAboveCell10012321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10012321) h +theorem e24KC2ThetaAboveLeaf100123213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012321) = true := by + have h : ((childHH thetaAboveCell10012321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10012321) h +theorem e24KC2ThetaAboveLeaf10012322 : + adaptiveCoverCheck 11 thetaAboveCell10012322 = true := by + have h : (thetaAboveCell10012322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012322 h +theorem e24KC2ThetaAboveLeaf10012323 : + adaptiveCoverCheck 11 thetaAboveCell10012323 = true := by + have h : (thetaAboveCell10012323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012323 h +theorem e24KC2ThetaAboveLeaf1001233000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10012330)) = true := by + have h : ((childLL (childLL thetaAboveCell10012330))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10012330)) h +theorem e24KC2ThetaAboveLeaf1001233001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10012330)) = true := by + have h : ((childLH (childLL thetaAboveCell10012330))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10012330)) h +theorem e24KC2ThetaAboveLeaf1001233002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10012330)) = true := by + have h : ((childHL (childLL thetaAboveCell10012330))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10012330)) h +theorem e24KC2ThetaAboveLeaf1001233003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10012330)) = true := by + have h : ((childHH (childLL thetaAboveCell10012330))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10012330)) h +theorem e24KC2ThetaAboveLeaf1001233010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10012330)) = true := by + have h : ((childLL (childLH thetaAboveCell10012330))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10012330)) h +theorem e24KC2ThetaAboveLeaf1001233011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10012330)) = true := by + have h : ((childLH (childLH thetaAboveCell10012330))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10012330)) h +theorem e24KC2ThetaAboveLeaf1001233012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10012330)) = true := by + have h : ((childHL (childLH thetaAboveCell10012330))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10012330)) h +theorem e24KC2ThetaAboveLeaf1001233013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10012330)) = true := by + have h : ((childHH (childLH thetaAboveCell10012330))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10012330)) h +theorem e24KC2ThetaAboveLeaf100123302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012330) = true := by + have h : ((childHL thetaAboveCell10012330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10012330) h +theorem e24KC2ThetaAboveLeaf100123303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012330) = true := by + have h : ((childHH thetaAboveCell10012330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10012330) h +theorem e24KC2ThetaAboveLeaf1001233100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10012331)) = true := by + have h : ((childLL (childLL thetaAboveCell10012331))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10012331)) h +theorem e24KC2ThetaAboveLeaf1001233101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10012331)) = true := by + have h : ((childLH (childLL thetaAboveCell10012331))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10012331)) h +theorem e24KC2ThetaAboveLeaf1001233102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10012331)) = true := by + have h : ((childHL (childLL thetaAboveCell10012331))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10012331)) h +theorem e24KC2ThetaAboveLeaf1001233103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10012331)) = true := by + have h : ((childHH (childLL thetaAboveCell10012331))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10012331)) h +theorem e24KC2ThetaAboveLeaf1001233110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10012331)) = true := by + have h : ((childLL (childLH thetaAboveCell10012331))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10012331)) h +theorem e24KC2ThetaAboveLeaf1001233111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10012331)) = true := by + have h : ((childLH (childLH thetaAboveCell10012331))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10012331)) h +theorem e24KC2ThetaAboveLeaf1001233112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10012331)) = true := by + have h : ((childHL (childLH thetaAboveCell10012331))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10012331)) h +theorem e24KC2ThetaAboveLeaf1001233113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10012331)) = true := by + have h : ((childHH (childLH thetaAboveCell10012331))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10012331)) h +theorem e24KC2ThetaAboveLeaf100123312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012331) = true := by + have h : ((childHL thetaAboveCell10012331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10012331) h +theorem e24KC2ThetaAboveLeaf100123313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012331) = true := by + have h : ((childHH thetaAboveCell10012331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10012331) h +theorem e24KC2ThetaAboveLeaf10012332 : + adaptiveCoverCheck 11 thetaAboveCell10012332 = true := by + have h : (thetaAboveCell10012332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012332 h +theorem e24KC2ThetaAboveLeaf10012333 : + adaptiveCoverCheck 11 thetaAboveCell10012333 = true := by + have h : (thetaAboveCell10012333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10012333 h +theorem e24KC2ThetaAboveLeaf1001300 : + adaptiveCoverCheck 12 (childLL (childLL (childHH thetaAboveCell1001))) = true := by + have h : ((childLL (childLL (childHH thetaAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHH thetaAboveCell1001))) h +theorem e24KC2ThetaAboveLeaf1001301 : + adaptiveCoverCheck 12 (childLH (childLL (childHH thetaAboveCell1001))) = true := by + have h : ((childLH (childLL (childHH thetaAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHH thetaAboveCell1001))) h +theorem e24KC2ThetaAboveLeaf10013020 : + adaptiveCoverCheck 11 thetaAboveCell10013020 = true := by + have h : (thetaAboveCell10013020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013020 h +theorem e24KC2ThetaAboveLeaf10013021 : + adaptiveCoverCheck 11 thetaAboveCell10013021 = true := by + have h : (thetaAboveCell10013021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013021 h +theorem e24KC2ThetaAboveLeaf10013022 : + adaptiveCoverCheck 11 thetaAboveCell10013022 = true := by + have h : (thetaAboveCell10013022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013022 h +theorem e24KC2ThetaAboveLeaf10013023 : + adaptiveCoverCheck 11 thetaAboveCell10013023 = true := by + have h : (thetaAboveCell10013023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013023 h +theorem e24KC2ThetaAboveLeaf10013030 : + adaptiveCoverCheck 11 thetaAboveCell10013030 = true := by + have h : (thetaAboveCell10013030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013030 h +theorem e24KC2ThetaAboveLeaf10013031 : + adaptiveCoverCheck 11 thetaAboveCell10013031 = true := by + have h : (thetaAboveCell10013031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013031 h +theorem e24KC2ThetaAboveLeaf10013032 : + adaptiveCoverCheck 11 thetaAboveCell10013032 = true := by + have h : (thetaAboveCell10013032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013032 h +theorem e24KC2ThetaAboveLeaf10013033 : + adaptiveCoverCheck 11 thetaAboveCell10013033 = true := by + have h : (thetaAboveCell10013033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013033 h +theorem e24KC2ThetaAboveLeaf1001310 : + adaptiveCoverCheck 12 (childLL (childLH (childHH thetaAboveCell1001))) = true := by + have h : ((childLL (childLH (childHH thetaAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHH thetaAboveCell1001))) h +theorem e24KC2ThetaAboveLeaf1001311 : + adaptiveCoverCheck 12 (childLH (childLH (childHH thetaAboveCell1001))) = true := by + have h : ((childLH (childLH (childHH thetaAboveCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHH thetaAboveCell1001))) h +theorem e24KC2ThetaAboveLeaf10013120 : + adaptiveCoverCheck 11 thetaAboveCell10013120 = true := by + have h : (thetaAboveCell10013120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013120 h +theorem e24KC2ThetaAboveLeaf10013121 : + adaptiveCoverCheck 11 thetaAboveCell10013121 = true := by + have h : (thetaAboveCell10013121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013121 h +theorem e24KC2ThetaAboveLeaf10013122 : + adaptiveCoverCheck 11 thetaAboveCell10013122 = true := by + have h : (thetaAboveCell10013122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013122 h +theorem e24KC2ThetaAboveLeaf10013123 : + adaptiveCoverCheck 11 thetaAboveCell10013123 = true := by + have h : (thetaAboveCell10013123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013123 h +theorem e24KC2ThetaAboveLeaf10013130 : + adaptiveCoverCheck 11 thetaAboveCell10013130 = true := by + have h : (thetaAboveCell10013130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013130 h +theorem e24KC2ThetaAboveLeaf10013131 : + adaptiveCoverCheck 11 thetaAboveCell10013131 = true := by + have h : (thetaAboveCell10013131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013131 h +theorem e24KC2ThetaAboveLeaf10013132 : + adaptiveCoverCheck 11 thetaAboveCell10013132 = true := by + have h : (thetaAboveCell10013132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013132 h +theorem e24KC2ThetaAboveLeaf10013133 : + adaptiveCoverCheck 11 thetaAboveCell10013133 = true := by + have h : (thetaAboveCell10013133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013133 h +theorem e24KC2ThetaAboveLeaf100132000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013200) = true := by + have h : ((childLL thetaAboveCell10013200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10013200) h +theorem e24KC2ThetaAboveLeaf100132001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013200) = true := by + have h : ((childLH thetaAboveCell10013200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10013200) h +theorem e24KC2ThetaAboveLeaf100132002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013200) = true := by + have h : ((childHL thetaAboveCell10013200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10013200) h +theorem e24KC2ThetaAboveLeaf100132003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013200) = true := by + have h : ((childHH thetaAboveCell10013200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10013200) h +theorem e24KC2ThetaAboveLeaf100132010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013201) = true := by + have h : ((childLL thetaAboveCell10013201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10013201) h +theorem e24KC2ThetaAboveLeaf100132011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013201) = true := by + have h : ((childLH thetaAboveCell10013201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10013201) h +theorem e24KC2ThetaAboveLeaf100132012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013201) = true := by + have h : ((childHL thetaAboveCell10013201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10013201) h +theorem e24KC2ThetaAboveLeaf100132013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013201) = true := by + have h : ((childHH thetaAboveCell10013201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10013201) h +theorem e24KC2ThetaAboveLeaf1001320200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10013202)) = true := by + have h : ((childLL (childLL thetaAboveCell10013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10013202)) h +theorem e24KC2ThetaAboveLeaf1001320201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10013202)) = true := by + have h : ((childLH (childLL thetaAboveCell10013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10013202)) h +theorem e24KC2ThetaAboveLeaf1001320202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10013202)) = true := by + have h : ((childHL (childLL thetaAboveCell10013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10013202)) h +theorem e24KC2ThetaAboveLeaf1001320203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10013202)) = true := by + have h : ((childHH (childLL thetaAboveCell10013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10013202)) h +theorem e24KC2ThetaAboveLeaf1001320210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10013202)) = true := by + have h : ((childLL (childLH thetaAboveCell10013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10013202)) h +theorem e24KC2ThetaAboveLeaf1001320211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10013202)) = true := by + have h : ((childLH (childLH thetaAboveCell10013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10013202)) h +theorem e24KC2ThetaAboveLeaf1001320212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10013202)) = true := by + have h : ((childHL (childLH thetaAboveCell10013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10013202)) h +theorem e24KC2ThetaAboveLeaf1001320213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10013202)) = true := by + have h : ((childHH (childLH thetaAboveCell10013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10013202)) h +theorem e24KC2ThetaAboveLeaf1001320220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10013202)) = true := by + have h : ((childLL (childHL thetaAboveCell10013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10013202)) h +theorem e24KC2ThetaAboveLeaf1001320221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10013202)) = true := by + have h : ((childLH (childHL thetaAboveCell10013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10013202)) h +theorem e24KC2ThetaAboveLeaf1001320222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10013202)) = true := by + have h : ((childHL (childHL thetaAboveCell10013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10013202)) h +theorem e24KC2ThetaAboveLeaf1001320223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10013202)) = true := by + have h : ((childHH (childHL thetaAboveCell10013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10013202)) h +theorem e24KC2ThetaAboveLeaf1001320230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10013202)) = true := by + have h : ((childLL (childHH thetaAboveCell10013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10013202)) h +theorem e24KC2ThetaAboveLeaf1001320231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10013202)) = true := by + have h : ((childLH (childHH thetaAboveCell10013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10013202)) h +theorem e24KC2ThetaAboveLeaf1001320232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10013202)) = true := by + have h : ((childHL (childHH thetaAboveCell10013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10013202)) h +theorem e24KC2ThetaAboveLeaf1001320233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10013202)) = true := by + have h : ((childHH (childHH thetaAboveCell10013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10013202)) h +theorem e24KC2ThetaAboveLeaf1001320300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10013203)) = true := by + have h : ((childLL (childLL thetaAboveCell10013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10013203)) h +theorem e24KC2ThetaAboveLeaf1001320301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10013203)) = true := by + have h : ((childLH (childLL thetaAboveCell10013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10013203)) h +theorem e24KC2ThetaAboveLeaf1001320302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10013203)) = true := by + have h : ((childHL (childLL thetaAboveCell10013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10013203)) h +theorem e24KC2ThetaAboveLeaf1001320303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10013203)) = true := by + have h : ((childHH (childLL thetaAboveCell10013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10013203)) h +theorem e24KC2ThetaAboveLeaf1001320310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10013203)) = true := by + have h : ((childLL (childLH thetaAboveCell10013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10013203)) h +theorem e24KC2ThetaAboveLeaf1001320311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10013203)) = true := by + have h : ((childLH (childLH thetaAboveCell10013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10013203)) h +theorem e24KC2ThetaAboveLeaf1001320312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10013203)) = true := by + have h : ((childHL (childLH thetaAboveCell10013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10013203)) h + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells660a83a47d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells660a83a47d + +open CertificateCells660a83a47d +theorem e24KC2ThetaAboveLeaf1001320313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10013203)) = true := by + have h : ((childHH (childLH thetaAboveCell10013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10013203)) h +theorem e24KC2ThetaAboveLeaf1001320320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10013203)) = true := by + have h : ((childLL (childHL thetaAboveCell10013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10013203)) h +theorem e24KC2ThetaAboveLeaf1001320321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10013203)) = true := by + have h : ((childLH (childHL thetaAboveCell10013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10013203)) h +theorem e24KC2ThetaAboveLeaf1001320322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10013203)) = true := by + have h : ((childHL (childHL thetaAboveCell10013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10013203)) h +theorem e24KC2ThetaAboveLeaf1001320323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10013203)) = true := by + have h : ((childHH (childHL thetaAboveCell10013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10013203)) h +theorem e24KC2ThetaAboveLeaf1001320330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10013203)) = true := by + have h : ((childLL (childHH thetaAboveCell10013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10013203)) h +theorem e24KC2ThetaAboveLeaf1001320331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10013203)) = true := by + have h : ((childLH (childHH thetaAboveCell10013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10013203)) h +theorem e24KC2ThetaAboveLeaf1001320332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10013203)) = true := by + have h : ((childHL (childHH thetaAboveCell10013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10013203)) h +theorem e24KC2ThetaAboveLeaf1001320333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10013203)) = true := by + have h : ((childHH (childHH thetaAboveCell10013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10013203)) h +theorem e24KC2ThetaAboveLeaf100132100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013210) = true := by + have h : ((childLL thetaAboveCell10013210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10013210) h +theorem e24KC2ThetaAboveLeaf100132101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013210) = true := by + have h : ((childLH thetaAboveCell10013210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10013210) h +theorem e24KC2ThetaAboveLeaf100132102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013210) = true := by + have h : ((childHL thetaAboveCell10013210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10013210) h +theorem e24KC2ThetaAboveLeaf100132103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013210) = true := by + have h : ((childHH thetaAboveCell10013210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10013210) h +theorem e24KC2ThetaAboveLeaf100132110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013211) = true := by + have h : ((childLL thetaAboveCell10013211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10013211) h +theorem e24KC2ThetaAboveLeaf100132111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013211) = true := by + have h : ((childLH thetaAboveCell10013211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10013211) h +theorem e24KC2ThetaAboveLeaf100132112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013211) = true := by + have h : ((childHL thetaAboveCell10013211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10013211) h +theorem e24KC2ThetaAboveLeaf100132113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013211) = true := by + have h : ((childHH thetaAboveCell10013211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10013211) h +theorem e24KC2ThetaAboveLeaf1001321200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10013212)) = true := by + have h : ((childLL (childLL thetaAboveCell10013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10013212)) h +theorem e24KC2ThetaAboveLeaf1001321201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10013212)) = true := by + have h : ((childLH (childLL thetaAboveCell10013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10013212)) h +theorem e24KC2ThetaAboveLeaf1001321202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10013212)) = true := by + have h : ((childHL (childLL thetaAboveCell10013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10013212)) h +theorem e24KC2ThetaAboveLeaf1001321203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10013212)) = true := by + have h : ((childHH (childLL thetaAboveCell10013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10013212)) h +theorem e24KC2ThetaAboveLeaf1001321210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10013212)) = true := by + have h : ((childLL (childLH thetaAboveCell10013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10013212)) h +theorem e24KC2ThetaAboveLeaf1001321211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10013212)) = true := by + have h : ((childLH (childLH thetaAboveCell10013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10013212)) h +theorem e24KC2ThetaAboveLeaf1001321212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10013212)) = true := by + have h : ((childHL (childLH thetaAboveCell10013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10013212)) h +theorem e24KC2ThetaAboveLeaf1001321213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10013212)) = true := by + have h : ((childHH (childLH thetaAboveCell10013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10013212)) h +theorem e24KC2ThetaAboveLeaf1001321220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10013212)) = true := by + have h : ((childLL (childHL thetaAboveCell10013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10013212)) h +theorem e24KC2ThetaAboveLeaf1001321221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10013212)) = true := by + have h : ((childLH (childHL thetaAboveCell10013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10013212)) h +theorem e24KC2ThetaAboveLeaf1001321222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10013212)) = true := by + have h : ((childHL (childHL thetaAboveCell10013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10013212)) h +theorem e24KC2ThetaAboveLeaf1001321223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10013212)) = true := by + have h : ((childHH (childHL thetaAboveCell10013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10013212)) h +theorem e24KC2ThetaAboveLeaf1001321230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10013212)) = true := by + have h : ((childLL (childHH thetaAboveCell10013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10013212)) h +theorem e24KC2ThetaAboveLeaf1001321231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10013212)) = true := by + have h : ((childLH (childHH thetaAboveCell10013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10013212)) h +theorem e24KC2ThetaAboveLeaf1001321232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10013212)) = true := by + have h : ((childHL (childHH thetaAboveCell10013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10013212)) h +theorem e24KC2ThetaAboveLeaf1001321233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10013212)) = true := by + have h : ((childHH (childHH thetaAboveCell10013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10013212)) h +theorem e24KC2ThetaAboveLeaf1001321300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10013213)) = true := by + have h : ((childLL (childLL thetaAboveCell10013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10013213)) h +theorem e24KC2ThetaAboveLeaf1001321301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10013213)) = true := by + have h : ((childLH (childLL thetaAboveCell10013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10013213)) h +theorem e24KC2ThetaAboveLeaf1001321302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10013213)) = true := by + have h : ((childHL (childLL thetaAboveCell10013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10013213)) h +theorem e24KC2ThetaAboveLeaf1001321303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10013213)) = true := by + have h : ((childHH (childLL thetaAboveCell10013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10013213)) h +theorem e24KC2ThetaAboveLeaf1001321310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10013213)) = true := by + have h : ((childLL (childLH thetaAboveCell10013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10013213)) h +theorem e24KC2ThetaAboveLeaf1001321311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10013213)) = true := by + have h : ((childLH (childLH thetaAboveCell10013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10013213)) h +theorem e24KC2ThetaAboveLeaf1001321312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10013213)) = true := by + have h : ((childHL (childLH thetaAboveCell10013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10013213)) h +theorem e24KC2ThetaAboveLeaf1001321313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10013213)) = true := by + have h : ((childHH (childLH thetaAboveCell10013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10013213)) h +theorem e24KC2ThetaAboveLeaf1001321320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10013213)) = true := by + have h : ((childLL (childHL thetaAboveCell10013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10013213)) h +theorem e24KC2ThetaAboveLeaf1001321321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10013213)) = true := by + have h : ((childLH (childHL thetaAboveCell10013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10013213)) h +theorem e24KC2ThetaAboveLeaf1001321322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10013213)) = true := by + have h : ((childHL (childHL thetaAboveCell10013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10013213)) h +theorem e24KC2ThetaAboveLeaf1001321323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10013213)) = true := by + have h : ((childHH (childHL thetaAboveCell10013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10013213)) h +theorem e24KC2ThetaAboveLeaf1001321330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10013213)) = true := by + have h : ((childLL (childHH thetaAboveCell10013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10013213)) h +theorem e24KC2ThetaAboveLeaf1001321331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10013213)) = true := by + have h : ((childLH (childHH thetaAboveCell10013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10013213)) h +theorem e24KC2ThetaAboveLeaf1001321332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10013213)) = true := by + have h : ((childHL (childHH thetaAboveCell10013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10013213)) h +theorem e24KC2ThetaAboveLeaf1001321333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10013213)) = true := by + have h : ((childHH (childHH thetaAboveCell10013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10013213)) h +theorem e24KC2ThetaAboveLeaf1001322000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10013220)) = true := by + have h : ((childLL (childLL thetaAboveCell10013220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10013220)) h +theorem e24KC2ThetaAboveLeaf1001322001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10013220)) = true := by + have h : ((childLH (childLL thetaAboveCell10013220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10013220)) h +theorem e24KC2ThetaAboveLeaf1001322002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10013220)) = true := by + have h : ((childHL (childLL thetaAboveCell10013220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10013220)) h +theorem e24KC2ThetaAboveLeaf1001322003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10013220)) = true := by + have h : ((childHH (childLL thetaAboveCell10013220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10013220)) h +theorem e24KC2ThetaAboveLeaf1001322010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10013220)) = true := by + have h : ((childLL (childLH thetaAboveCell10013220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10013220)) h +theorem e24KC2ThetaAboveLeaf1001322011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10013220)) = true := by + have h : ((childLH (childLH thetaAboveCell10013220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10013220)) h +theorem e24KC2ThetaAboveLeaf1001322012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10013220)) = true := by + have h : ((childHL (childLH thetaAboveCell10013220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10013220)) h +theorem e24KC2ThetaAboveLeaf1001322013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10013220)) = true := by + have h : ((childHH (childLH thetaAboveCell10013220))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10013220)) h +theorem e24KC2ThetaAboveLeaf100132202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013220) = true := by + have h : ((childHL thetaAboveCell10013220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10013220) h +theorem e24KC2ThetaAboveLeaf100132203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013220) = true := by + have h : ((childHH thetaAboveCell10013220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10013220) h +theorem e24KC2ThetaAboveLeaf1001322100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10013221)) = true := by + have h : ((childLL (childLL thetaAboveCell10013221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10013221)) h +theorem e24KC2ThetaAboveLeaf1001322101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10013221)) = true := by + have h : ((childLH (childLL thetaAboveCell10013221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10013221)) h +theorem e24KC2ThetaAboveLeaf1001322102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10013221)) = true := by + have h : ((childHL (childLL thetaAboveCell10013221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10013221)) h +theorem e24KC2ThetaAboveLeaf1001322103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10013221)) = true := by + have h : ((childHH (childLL thetaAboveCell10013221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10013221)) h +theorem e24KC2ThetaAboveLeaf1001322110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10013221)) = true := by + have h : ((childLL (childLH thetaAboveCell10013221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10013221)) h +theorem e24KC2ThetaAboveLeaf1001322111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10013221)) = true := by + have h : ((childLH (childLH thetaAboveCell10013221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10013221)) h +theorem e24KC2ThetaAboveLeaf1001322112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10013221)) = true := by + have h : ((childHL (childLH thetaAboveCell10013221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10013221)) h +theorem e24KC2ThetaAboveLeaf1001322113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10013221)) = true := by + have h : ((childHH (childLH thetaAboveCell10013221))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10013221)) h +theorem e24KC2ThetaAboveLeaf100132212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013221) = true := by + have h : ((childHL thetaAboveCell10013221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10013221) h +theorem e24KC2ThetaAboveLeaf100132213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013221) = true := by + have h : ((childHH thetaAboveCell10013221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10013221) h +theorem e24KC2ThetaAboveLeaf10013222 : + adaptiveCoverCheck 11 thetaAboveCell10013222 = true := by + have h : (thetaAboveCell10013222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013222 h +theorem e24KC2ThetaAboveLeaf10013223 : + adaptiveCoverCheck 11 thetaAboveCell10013223 = true := by + have h : (thetaAboveCell10013223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013223 h +theorem e24KC2ThetaAboveLeaf1001323000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10013230)) = true := by + have h : ((childLL (childLL thetaAboveCell10013230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10013230)) h +theorem e24KC2ThetaAboveLeaf1001323001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10013230)) = true := by + have h : ((childLH (childLL thetaAboveCell10013230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10013230)) h +theorem e24KC2ThetaAboveLeaf1001323002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10013230)) = true := by + have h : ((childHL (childLL thetaAboveCell10013230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10013230)) h +theorem e24KC2ThetaAboveLeaf1001323003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10013230)) = true := by + have h : ((childHH (childLL thetaAboveCell10013230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10013230)) h +theorem e24KC2ThetaAboveLeaf1001323010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10013230)) = true := by + have h : ((childLL (childLH thetaAboveCell10013230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10013230)) h +theorem e24KC2ThetaAboveLeaf1001323011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10013230)) = true := by + have h : ((childLH (childLH thetaAboveCell10013230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10013230)) h +theorem e24KC2ThetaAboveLeaf1001323012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10013230)) = true := by + have h : ((childHL (childLH thetaAboveCell10013230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10013230)) h +theorem e24KC2ThetaAboveLeaf1001323013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10013230)) = true := by + have h : ((childHH (childLH thetaAboveCell10013230))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10013230)) h +theorem e24KC2ThetaAboveLeaf100132302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013230) = true := by + have h : ((childHL thetaAboveCell10013230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10013230) h +theorem e24KC2ThetaAboveLeaf100132303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013230) = true := by + have h : ((childHH thetaAboveCell10013230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10013230) h +theorem e24KC2ThetaAboveLeaf100132310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013231) = true := by + have h : ((childLL thetaAboveCell10013231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10013231) h +theorem e24KC2ThetaAboveLeaf100132311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013231) = true := by + have h : ((childLH thetaAboveCell10013231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10013231) h +theorem e24KC2ThetaAboveLeaf100132312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013231) = true := by + have h : ((childHL thetaAboveCell10013231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10013231) h +theorem e24KC2ThetaAboveLeaf100132313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013231) = true := by + have h : ((childHH thetaAboveCell10013231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10013231) h +theorem e24KC2ThetaAboveLeaf10013232 : + adaptiveCoverCheck 11 thetaAboveCell10013232 = true := by + have h : (thetaAboveCell10013232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013232 h +theorem e24KC2ThetaAboveLeaf10013233 : + adaptiveCoverCheck 11 thetaAboveCell10013233 = true := by + have h : (thetaAboveCell10013233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013233 h +theorem e24KC2ThetaAboveLeaf100133000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013300) = true := by + have h : ((childLL thetaAboveCell10013300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10013300) h +theorem e24KC2ThetaAboveLeaf100133001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013300) = true := by + have h : ((childLH thetaAboveCell10013300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10013300) h +theorem e24KC2ThetaAboveLeaf100133002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013300) = true := by + have h : ((childHL thetaAboveCell10013300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10013300) h +theorem e24KC2ThetaAboveLeaf100133003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013300) = true := by + have h : ((childHH thetaAboveCell10013300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10013300) h +theorem e24KC2ThetaAboveLeaf100133010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013301) = true := by + have h : ((childLL thetaAboveCell10013301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10013301) h +theorem e24KC2ThetaAboveLeaf100133011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013301) = true := by + have h : ((childLH thetaAboveCell10013301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10013301) h +theorem e24KC2ThetaAboveLeaf100133012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013301) = true := by + have h : ((childHL thetaAboveCell10013301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10013301) h +theorem e24KC2ThetaAboveLeaf100133013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013301) = true := by + have h : ((childHH thetaAboveCell10013301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10013301) h +theorem e24KC2ThetaAboveLeaf1001330200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10013302)) = true := by + have h : ((childLL (childLL thetaAboveCell10013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10013302)) h +theorem e24KC2ThetaAboveLeaf1001330201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10013302)) = true := by + have h : ((childLH (childLL thetaAboveCell10013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10013302)) h +theorem e24KC2ThetaAboveLeaf1001330202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10013302)) = true := by + have h : ((childHL (childLL thetaAboveCell10013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10013302)) h +theorem e24KC2ThetaAboveLeaf1001330203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10013302)) = true := by + have h : ((childHH (childLL thetaAboveCell10013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10013302)) h +theorem e24KC2ThetaAboveLeaf1001330210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10013302)) = true := by + have h : ((childLL (childLH thetaAboveCell10013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10013302)) h +theorem e24KC2ThetaAboveLeaf1001330211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10013302)) = true := by + have h : ((childLH (childLH thetaAboveCell10013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10013302)) h +theorem e24KC2ThetaAboveLeaf1001330212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10013302)) = true := by + have h : ((childHL (childLH thetaAboveCell10013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10013302)) h +theorem e24KC2ThetaAboveLeaf1001330213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10013302)) = true := by + have h : ((childHH (childLH thetaAboveCell10013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10013302)) h +theorem e24KC2ThetaAboveLeaf1001330220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10013302)) = true := by + have h : ((childLL (childHL thetaAboveCell10013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10013302)) h +theorem e24KC2ThetaAboveLeaf1001330221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10013302)) = true := by + have h : ((childLH (childHL thetaAboveCell10013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10013302)) h +theorem e24KC2ThetaAboveLeaf1001330222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10013302)) = true := by + have h : ((childHL (childHL thetaAboveCell10013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10013302)) h +theorem e24KC2ThetaAboveLeaf1001330223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10013302)) = true := by + have h : ((childHH (childHL thetaAboveCell10013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10013302)) h +theorem e24KC2ThetaAboveLeaf1001330230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10013302)) = true := by + have h : ((childLL (childHH thetaAboveCell10013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10013302)) h +theorem e24KC2ThetaAboveLeaf1001330231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10013302)) = true := by + have h : ((childLH (childHH thetaAboveCell10013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10013302)) h +theorem e24KC2ThetaAboveLeaf1001330232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10013302)) = true := by + have h : ((childHL (childHH thetaAboveCell10013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10013302)) h +theorem e24KC2ThetaAboveLeaf1001330233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10013302)) = true := by + have h : ((childHH (childHH thetaAboveCell10013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10013302)) h +theorem e24KC2ThetaAboveLeaf1001330300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10013303)) = true := by + have h : ((childLL (childLL thetaAboveCell10013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10013303)) h +theorem e24KC2ThetaAboveLeaf1001330301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10013303)) = true := by + have h : ((childLH (childLL thetaAboveCell10013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10013303)) h +theorem e24KC2ThetaAboveLeaf1001330302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10013303)) = true := by + have h : ((childHL (childLL thetaAboveCell10013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10013303)) h +theorem e24KC2ThetaAboveLeaf1001330303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10013303)) = true := by + have h : ((childHH (childLL thetaAboveCell10013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10013303)) h +theorem e24KC2ThetaAboveLeaf1001330310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10013303)) = true := by + have h : ((childLL (childLH thetaAboveCell10013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10013303)) h +theorem e24KC2ThetaAboveLeaf1001330311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10013303)) = true := by + have h : ((childLH (childLH thetaAboveCell10013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10013303)) h +theorem e24KC2ThetaAboveLeaf1001330312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10013303)) = true := by + have h : ((childHL (childLH thetaAboveCell10013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10013303)) h +theorem e24KC2ThetaAboveLeaf1001330313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10013303)) = true := by + have h : ((childHH (childLH thetaAboveCell10013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10013303)) h +theorem e24KC2ThetaAboveLeaf1001330320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10013303)) = true := by + have h : ((childLL (childHL thetaAboveCell10013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10013303)) h +theorem e24KC2ThetaAboveLeaf1001330321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10013303)) = true := by + have h : ((childLH (childHL thetaAboveCell10013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10013303)) h +theorem e24KC2ThetaAboveLeaf1001330322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10013303)) = true := by + have h : ((childHL (childHL thetaAboveCell10013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10013303)) h +theorem e24KC2ThetaAboveLeaf1001330323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10013303)) = true := by + have h : ((childHH (childHL thetaAboveCell10013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10013303)) h +theorem e24KC2ThetaAboveLeaf1001330330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10013303)) = true := by + have h : ((childLL (childHH thetaAboveCell10013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10013303)) h +theorem e24KC2ThetaAboveLeaf1001330331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10013303)) = true := by + have h : ((childLH (childHH thetaAboveCell10013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10013303)) h +theorem e24KC2ThetaAboveLeaf1001330332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10013303)) = true := by + have h : ((childHL (childHH thetaAboveCell10013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10013303)) h +theorem e24KC2ThetaAboveLeaf1001330333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10013303)) = true := by + have h : ((childHH (childHH thetaAboveCell10013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10013303)) h +theorem e24KC2ThetaAboveLeaf100133100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013310) = true := by + have h : ((childLL thetaAboveCell10013310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10013310) h +theorem e24KC2ThetaAboveLeaf100133101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013310) = true := by + have h : ((childLH thetaAboveCell10013310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10013310) h +theorem e24KC2ThetaAboveLeaf100133102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013310) = true := by + have h : ((childHL thetaAboveCell10013310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10013310) h +theorem e24KC2ThetaAboveLeaf100133103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013310) = true := by + have h : ((childHH thetaAboveCell10013310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10013310) h +theorem e24KC2ThetaAboveLeaf100133110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013311) = true := by + have h : ((childLL thetaAboveCell10013311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10013311) h +theorem e24KC2ThetaAboveLeaf100133111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013311) = true := by + have h : ((childLH thetaAboveCell10013311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10013311) h +theorem e24KC2ThetaAboveLeaf100133112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013311) = true := by + have h : ((childHL thetaAboveCell10013311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10013311) h +theorem e24KC2ThetaAboveLeaf100133113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013311) = true := by + have h : ((childHH thetaAboveCell10013311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10013311) h +theorem e24KC2ThetaAboveLeaf1001331200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10013312)) = true := by + have h : ((childLL (childLL thetaAboveCell10013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10013312)) h +theorem e24KC2ThetaAboveLeaf1001331201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10013312)) = true := by + have h : ((childLH (childLL thetaAboveCell10013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10013312)) h +theorem e24KC2ThetaAboveLeaf1001331202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10013312)) = true := by + have h : ((childHL (childLL thetaAboveCell10013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10013312)) h +theorem e24KC2ThetaAboveLeaf1001331203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10013312)) = true := by + have h : ((childHH (childLL thetaAboveCell10013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10013312)) h +theorem e24KC2ThetaAboveLeaf1001331210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10013312)) = true := by + have h : ((childLL (childLH thetaAboveCell10013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10013312)) h +theorem e24KC2ThetaAboveLeaf1001331211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10013312)) = true := by + have h : ((childLH (childLH thetaAboveCell10013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10013312)) h +theorem e24KC2ThetaAboveLeaf1001331212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10013312)) = true := by + have h : ((childHL (childLH thetaAboveCell10013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10013312)) h +theorem e24KC2ThetaAboveLeaf1001331213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10013312)) = true := by + have h : ((childHH (childLH thetaAboveCell10013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10013312)) h +theorem e24KC2ThetaAboveLeaf1001331220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10013312)) = true := by + have h : ((childLL (childHL thetaAboveCell10013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10013312)) h +theorem e24KC2ThetaAboveLeaf1001331221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10013312)) = true := by + have h : ((childLH (childHL thetaAboveCell10013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10013312)) h +theorem e24KC2ThetaAboveLeaf1001331222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10013312)) = true := by + have h : ((childHL (childHL thetaAboveCell10013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10013312)) h +theorem e24KC2ThetaAboveLeaf1001331223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10013312)) = true := by + have h : ((childHH (childHL thetaAboveCell10013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10013312)) h +theorem e24KC2ThetaAboveLeaf1001331230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10013312)) = true := by + have h : ((childLL (childHH thetaAboveCell10013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10013312)) h +theorem e24KC2ThetaAboveLeaf1001331231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10013312)) = true := by + have h : ((childLH (childHH thetaAboveCell10013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10013312)) h +theorem e24KC2ThetaAboveLeaf1001331232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10013312)) = true := by + have h : ((childHL (childHH thetaAboveCell10013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10013312)) h +theorem e24KC2ThetaAboveLeaf1001331233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10013312)) = true := by + have h : ((childHH (childHH thetaAboveCell10013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10013312)) h +theorem e24KC2ThetaAboveLeaf1001331300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10013313)) = true := by + have h : ((childLL (childLL thetaAboveCell10013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10013313)) h +theorem e24KC2ThetaAboveLeaf1001331301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10013313)) = true := by + have h : ((childLH (childLL thetaAboveCell10013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10013313)) h +theorem e24KC2ThetaAboveLeaf1001331302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10013313)) = true := by + have h : ((childHL (childLL thetaAboveCell10013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10013313)) h +theorem e24KC2ThetaAboveLeaf1001331303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10013313)) = true := by + have h : ((childHH (childLL thetaAboveCell10013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10013313)) h +theorem e24KC2ThetaAboveLeaf1001331310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10013313)) = true := by + have h : ((childLL (childLH thetaAboveCell10013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10013313)) h +theorem e24KC2ThetaAboveLeaf1001331311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10013313)) = true := by + have h : ((childLH (childLH thetaAboveCell10013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10013313)) h +theorem e24KC2ThetaAboveLeaf1001331312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10013313)) = true := by + have h : ((childHL (childLH thetaAboveCell10013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10013313)) h +theorem e24KC2ThetaAboveLeaf1001331313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10013313)) = true := by + have h : ((childHH (childLH thetaAboveCell10013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10013313)) h +theorem e24KC2ThetaAboveLeaf1001331320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10013313)) = true := by + have h : ((childLL (childHL thetaAboveCell10013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10013313)) h +theorem e24KC2ThetaAboveLeaf1001331321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10013313)) = true := by + have h : ((childLH (childHL thetaAboveCell10013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10013313)) h +theorem e24KC2ThetaAboveLeaf1001331322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10013313)) = true := by + have h : ((childHL (childHL thetaAboveCell10013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10013313)) h +theorem e24KC2ThetaAboveLeaf1001331323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10013313)) = true := by + have h : ((childHH (childHL thetaAboveCell10013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10013313)) h +theorem e24KC2ThetaAboveLeaf1001331330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10013313)) = true := by + have h : ((childLL (childHH thetaAboveCell10013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10013313)) h +theorem e24KC2ThetaAboveLeaf1001331331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10013313)) = true := by + have h : ((childLH (childHH thetaAboveCell10013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10013313)) h +theorem e24KC2ThetaAboveLeaf1001331332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10013313)) = true := by + have h : ((childHL (childHH thetaAboveCell10013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10013313)) h +theorem e24KC2ThetaAboveLeaf1001331333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10013313)) = true := by + have h : ((childHH (childHH thetaAboveCell10013313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10013313)) h +theorem e24KC2ThetaAboveLeaf100133200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013320) = true := by + have h : ((childLL thetaAboveCell10013320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10013320) h +theorem e24KC2ThetaAboveLeaf100133201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013320) = true := by + have h : ((childLH thetaAboveCell10013320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10013320) h +theorem e24KC2ThetaAboveLeaf100133202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013320) = true := by + have h : ((childHL thetaAboveCell10013320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10013320) h +theorem e24KC2ThetaAboveLeaf100133203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013320) = true := by + have h : ((childHH thetaAboveCell10013320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10013320) h +theorem e24KC2ThetaAboveLeaf100133210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013321) = true := by + have h : ((childLL thetaAboveCell10013321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10013321) h +theorem e24KC2ThetaAboveLeaf100133211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013321) = true := by + have h : ((childLH thetaAboveCell10013321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10013321) h +theorem e24KC2ThetaAboveLeaf100133212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013321) = true := by + have h : ((childHL thetaAboveCell10013321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10013321) h +theorem e24KC2ThetaAboveLeaf100133213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013321) = true := by + have h : ((childHH thetaAboveCell10013321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10013321) h +theorem e24KC2ThetaAboveLeaf10013322 : + adaptiveCoverCheck 11 thetaAboveCell10013322 = true := by + have h : (thetaAboveCell10013322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013322 h +theorem e24KC2ThetaAboveLeaf10013323 : + adaptiveCoverCheck 11 thetaAboveCell10013323 = true := by + have h : (thetaAboveCell10013323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013323 h +theorem e24KC2ThetaAboveLeaf100133300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013330) = true := by + have h : ((childLL thetaAboveCell10013330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10013330) h +theorem e24KC2ThetaAboveLeaf100133301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013330) = true := by + have h : ((childLH thetaAboveCell10013330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10013330) h +theorem e24KC2ThetaAboveLeaf100133302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013330) = true := by + have h : ((childHL thetaAboveCell10013330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10013330) h +theorem e24KC2ThetaAboveLeaf100133303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013330) = true := by + have h : ((childHH thetaAboveCell10013330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10013330) h +theorem e24KC2ThetaAboveLeaf100133310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013331) = true := by + have h : ((childLL thetaAboveCell10013331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10013331) h +theorem e24KC2ThetaAboveLeaf100133311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013331) = true := by + have h : ((childLH thetaAboveCell10013331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10013331) h +theorem e24KC2ThetaAboveLeaf100133312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013331) = true := by + have h : ((childHL thetaAboveCell10013331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10013331) h +theorem e24KC2ThetaAboveLeaf100133313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013331) = true := by + have h : ((childHH thetaAboveCell10013331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10013331) h +theorem e24KC2ThetaAboveLeaf10013332 : + adaptiveCoverCheck 11 thetaAboveCell10013332 = true := by + have h : (thetaAboveCell10013332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013332 h +theorem e24KC2ThetaAboveLeaf10013333 : + adaptiveCoverCheck 11 thetaAboveCell10013333 = true := by + have h : (thetaAboveCell10013333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10013333 h +theorem e24KC2ThetaAboveLeaf1002000 : + adaptiveCoverCheck 12 (childLL (childLL (childLL thetaAboveCell1002))) = true := by + have h : ((childLL (childLL (childLL thetaAboveCell1002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLL thetaAboveCell1002))) h +theorem e24KC2ThetaAboveLeaf1002001 : + adaptiveCoverCheck 12 (childLH (childLL (childLL thetaAboveCell1002))) = true := by + have h : ((childLH (childLL (childLL thetaAboveCell1002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLL thetaAboveCell1002))) h +theorem e24KC2ThetaAboveLeaf1002002 : + adaptiveCoverCheck 12 (childHL (childLL (childLL thetaAboveCell1002))) = true := by + have h : ((childHL (childLL (childLL thetaAboveCell1002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLL thetaAboveCell1002))) h +theorem e24KC2ThetaAboveLeaf1002003 : + adaptiveCoverCheck 12 (childHH (childLL (childLL thetaAboveCell1002))) = true := by + have h : ((childHH (childLL (childLL thetaAboveCell1002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLL thetaAboveCell1002))) h +theorem e24KC2ThetaAboveLeaf1002010 : + adaptiveCoverCheck 12 (childLL (childLH (childLL thetaAboveCell1002))) = true := by + have h : ((childLL (childLH (childLL thetaAboveCell1002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLL thetaAboveCell1002))) h +theorem e24KC2ThetaAboveLeaf1002011 : + adaptiveCoverCheck 12 (childLH (childLH (childLL thetaAboveCell1002))) = true := by + have h : ((childLH (childLH (childLL thetaAboveCell1002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLL thetaAboveCell1002))) h +theorem e24KC2ThetaAboveLeaf1002012 : + adaptiveCoverCheck 12 (childHL (childLH (childLL thetaAboveCell1002))) = true := by + have h : ((childHL (childLH (childLL thetaAboveCell1002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLL thetaAboveCell1002))) h +theorem e24KC2ThetaAboveLeaf1002013 : + adaptiveCoverCheck 12 (childHH (childLH (childLL thetaAboveCell1002))) = true := by + have h : ((childHH (childLH (childLL thetaAboveCell1002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLL thetaAboveCell1002))) h +theorem e24KC2ThetaAboveLeaf100202 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell1002)) = true := by + have h : ((childHL (childLL thetaAboveCell1002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell1002)) h +theorem e24KC2ThetaAboveLeaf100203 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell1002)) = true := by + have h : ((childHH (childLL thetaAboveCell1002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell1002)) h +theorem e24KC2ThetaAboveLeaf1002100 : + adaptiveCoverCheck 12 (childLL (childLL (childLH thetaAboveCell1002))) = true := by + have h : ((childLL (childLL (childLH thetaAboveCell1002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLH thetaAboveCell1002))) h +theorem e24KC2ThetaAboveLeaf1002101 : + adaptiveCoverCheck 12 (childLH (childLL (childLH thetaAboveCell1002))) = true := by + have h : ((childLH (childLL (childLH thetaAboveCell1002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLH thetaAboveCell1002))) h +theorem e24KC2ThetaAboveLeaf1002102 : + adaptiveCoverCheck 12 (childHL (childLL (childLH thetaAboveCell1002))) = true := by + have h : ((childHL (childLL (childLH thetaAboveCell1002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLH thetaAboveCell1002))) h +theorem e24KC2ThetaAboveLeaf1002103 : + adaptiveCoverCheck 12 (childHH (childLL (childLH thetaAboveCell1002))) = true := by + have h : ((childHH (childLL (childLH thetaAboveCell1002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLH thetaAboveCell1002))) h +theorem e24KC2ThetaAboveLeaf1002110 : + adaptiveCoverCheck 12 (childLL (childLH (childLH thetaAboveCell1002))) = true := by + have h : ((childLL (childLH (childLH thetaAboveCell1002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLH thetaAboveCell1002))) h +theorem e24KC2ThetaAboveLeaf1002111 : + adaptiveCoverCheck 12 (childLH (childLH (childLH thetaAboveCell1002))) = true := by + have h : ((childLH (childLH (childLH thetaAboveCell1002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLH thetaAboveCell1002))) h +theorem e24KC2ThetaAboveLeaf1002112 : + adaptiveCoverCheck 12 (childHL (childLH (childLH thetaAboveCell1002))) = true := by + have h : ((childHL (childLH (childLH thetaAboveCell1002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLH thetaAboveCell1002))) h +theorem e24KC2ThetaAboveLeaf1002113 : + adaptiveCoverCheck 12 (childHH (childLH (childLH thetaAboveCell1002))) = true := by + have h : ((childHH (childLH (childLH thetaAboveCell1002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLH thetaAboveCell1002))) h +theorem e24KC2ThetaAboveLeaf100212 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell1002)) = true := by + have h : ((childHL (childLH thetaAboveCell1002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell1002)) h +theorem e24KC2ThetaAboveLeaf100213 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell1002)) = true := by + have h : ((childHH (childLH thetaAboveCell1002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell1002)) h +theorem e24KC2ThetaAboveLeaf10022 : + adaptiveCoverCheck 14 (childHL thetaAboveCell1002) = true := by + have h : ((childHL thetaAboveCell1002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHL thetaAboveCell1002) h +theorem e24KC2ThetaAboveLeaf10023 : + adaptiveCoverCheck 14 (childHH thetaAboveCell1002) = true := by + have h : ((childHH thetaAboveCell1002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHH thetaAboveCell1002) h +theorem e24KC2ThetaAboveLeaf1003000 : + adaptiveCoverCheck 12 (childLL (childLL (childLL thetaAboveCell1003))) = true := by + have h : ((childLL (childLL (childLL thetaAboveCell1003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLL thetaAboveCell1003))) h +theorem e24KC2ThetaAboveLeaf1003001 : + adaptiveCoverCheck 12 (childLH (childLL (childLL thetaAboveCell1003))) = true := by + have h : ((childLH (childLL (childLL thetaAboveCell1003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLL thetaAboveCell1003))) h +theorem e24KC2ThetaAboveLeaf1003002 : + adaptiveCoverCheck 12 (childHL (childLL (childLL thetaAboveCell1003))) = true := by + have h : ((childHL (childLL (childLL thetaAboveCell1003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLL thetaAboveCell1003))) h +theorem e24KC2ThetaAboveLeaf1003003 : + adaptiveCoverCheck 12 (childHH (childLL (childLL thetaAboveCell1003))) = true := by + have h : ((childHH (childLL (childLL thetaAboveCell1003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLL thetaAboveCell1003))) h +theorem e24KC2ThetaAboveLeaf1003010 : + adaptiveCoverCheck 12 (childLL (childLH (childLL thetaAboveCell1003))) = true := by + have h : ((childLL (childLH (childLL thetaAboveCell1003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLL thetaAboveCell1003))) h +theorem e24KC2ThetaAboveLeaf1003011 : + adaptiveCoverCheck 12 (childLH (childLH (childLL thetaAboveCell1003))) = true := by + have h : ((childLH (childLH (childLL thetaAboveCell1003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLL thetaAboveCell1003))) h +theorem e24KC2ThetaAboveLeaf1003012 : + adaptiveCoverCheck 12 (childHL (childLH (childLL thetaAboveCell1003))) = true := by + have h : ((childHL (childLH (childLL thetaAboveCell1003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLL thetaAboveCell1003))) h +theorem e24KC2ThetaAboveLeaf1003013 : + adaptiveCoverCheck 12 (childHH (childLH (childLL thetaAboveCell1003))) = true := by + have h : ((childHH (childLH (childLL thetaAboveCell1003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLL thetaAboveCell1003))) h +theorem e24KC2ThetaAboveLeaf100302 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell1003)) = true := by + have h : ((childHL (childLL thetaAboveCell1003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell1003)) h +theorem e24KC2ThetaAboveLeaf100303 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell1003)) = true := by + have h : ((childHH (childLL thetaAboveCell1003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell1003)) h +theorem e24KC2ThetaAboveLeaf1003100 : + adaptiveCoverCheck 12 (childLL (childLL (childLH thetaAboveCell1003))) = true := by + have h : ((childLL (childLL (childLH thetaAboveCell1003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLH thetaAboveCell1003))) h +theorem e24KC2ThetaAboveLeaf1003101 : + adaptiveCoverCheck 12 (childLH (childLL (childLH thetaAboveCell1003))) = true := by + have h : ((childLH (childLL (childLH thetaAboveCell1003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLH thetaAboveCell1003))) h +theorem e24KC2ThetaAboveLeaf1003102 : + adaptiveCoverCheck 12 (childHL (childLL (childLH thetaAboveCell1003))) = true := by + have h : ((childHL (childLL (childLH thetaAboveCell1003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLH thetaAboveCell1003))) h +theorem e24KC2ThetaAboveLeaf1003103 : + adaptiveCoverCheck 12 (childHH (childLL (childLH thetaAboveCell1003))) = true := by + have h : ((childHH (childLL (childLH thetaAboveCell1003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLH thetaAboveCell1003))) h +theorem e24KC2ThetaAboveLeaf1003110 : + adaptiveCoverCheck 12 (childLL (childLH (childLH thetaAboveCell1003))) = true := by + have h : ((childLL (childLH (childLH thetaAboveCell1003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLH thetaAboveCell1003))) h +theorem e24KC2ThetaAboveLeaf1003111 : + adaptiveCoverCheck 12 (childLH (childLH (childLH thetaAboveCell1003))) = true := by + have h : ((childLH (childLH (childLH thetaAboveCell1003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLH thetaAboveCell1003))) h +theorem e24KC2ThetaAboveLeaf1003112 : + adaptiveCoverCheck 12 (childHL (childLH (childLH thetaAboveCell1003))) = true := by + have h : ((childHL (childLH (childLH thetaAboveCell1003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLH thetaAboveCell1003))) h +theorem e24KC2ThetaAboveLeaf1003113 : + adaptiveCoverCheck 12 (childHH (childLH (childLH thetaAboveCell1003))) = true := by + have h : ((childHH (childLH (childLH thetaAboveCell1003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLH thetaAboveCell1003))) h +theorem e24KC2ThetaAboveLeaf100312 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell1003)) = true := by + have h : ((childHL (childLH thetaAboveCell1003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell1003)) h +theorem e24KC2ThetaAboveLeaf100313 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell1003)) = true := by + have h : ((childHH (childLH thetaAboveCell1003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell1003)) h +theorem e24KC2ThetaAboveLeaf10032 : + adaptiveCoverCheck 14 (childHL thetaAboveCell1003) = true := by + have h : ((childHL thetaAboveCell1003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHL thetaAboveCell1003) h +theorem e24KC2ThetaAboveLeaf10033 : + adaptiveCoverCheck 14 (childHH thetaAboveCell1003) = true := by + have h : ((childHH thetaAboveCell1003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHH thetaAboveCell1003) h +theorem e24KC2ThetaAboveLeaf101000 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell1010)) = true := by + have h : ((childLL (childLL thetaAboveCell1010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLL thetaAboveCell1010)) h +theorem e24KC2ThetaAboveLeaf101001 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell1010)) = true := by + have h : ((childLH (childLL thetaAboveCell1010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLL thetaAboveCell1010)) h +theorem e24KC2ThetaAboveLeaf101002 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell1010)) = true := by + have h : ((childHL (childLL thetaAboveCell1010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell1010)) h +theorem e24KC2ThetaAboveLeaf101003 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell1010)) = true := by + have h : ((childHH (childLL thetaAboveCell1010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell1010)) h +theorem e24KC2ThetaAboveLeaf101010 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell1010)) = true := by + have h : ((childLL (childLH thetaAboveCell1010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLH thetaAboveCell1010)) h +theorem e24KC2ThetaAboveLeaf101011 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell1010)) = true := by + have h : ((childLH (childLH thetaAboveCell1010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLH thetaAboveCell1010)) h +theorem e24KC2ThetaAboveLeaf101012 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell1010)) = true := by + have h : ((childHL (childLH thetaAboveCell1010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell1010)) h +theorem e24KC2ThetaAboveLeaf101013 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell1010)) = true := by + have h : ((childHH (childLH thetaAboveCell1010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell1010)) h +theorem e24KC2ThetaAboveLeaf1010200 : + adaptiveCoverCheck 12 (childLL (childLL (childHL thetaAboveCell1010))) = true := by + have h : ((childLL (childLL (childHL thetaAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHL thetaAboveCell1010))) h +theorem e24KC2ThetaAboveLeaf1010201 : + adaptiveCoverCheck 12 (childLH (childLL (childHL thetaAboveCell1010))) = true := by + have h : ((childLH (childLL (childHL thetaAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHL thetaAboveCell1010))) h +theorem e24KC2ThetaAboveLeaf10102020 : + adaptiveCoverCheck 11 thetaAboveCell10102020 = true := by + have h : (thetaAboveCell10102020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10102020 h +theorem e24KC2ThetaAboveLeaf10102021 : + adaptiveCoverCheck 11 thetaAboveCell10102021 = true := by + have h : (thetaAboveCell10102021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10102021 h +theorem e24KC2ThetaAboveLeaf10102022 : + adaptiveCoverCheck 11 thetaAboveCell10102022 = true := by + have h : (thetaAboveCell10102022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10102022 h +theorem e24KC2ThetaAboveLeaf10102023 : + adaptiveCoverCheck 11 thetaAboveCell10102023 = true := by + have h : (thetaAboveCell10102023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10102023 h +theorem e24KC2ThetaAboveLeaf10102030 : + adaptiveCoverCheck 11 thetaAboveCell10102030 = true := by + have h : (thetaAboveCell10102030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10102030 h +theorem e24KC2ThetaAboveLeaf10102031 : + adaptiveCoverCheck 11 thetaAboveCell10102031 = true := by + have h : (thetaAboveCell10102031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10102031 h +theorem e24KC2ThetaAboveLeaf10102032 : + adaptiveCoverCheck 11 thetaAboveCell10102032 = true := by + have h : (thetaAboveCell10102032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10102032 h +theorem e24KC2ThetaAboveLeaf10102033 : + adaptiveCoverCheck 11 thetaAboveCell10102033 = true := by + have h : (thetaAboveCell10102033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10102033 h +theorem e24KC2ThetaAboveLeaf1010210 : + adaptiveCoverCheck 12 (childLL (childLH (childHL thetaAboveCell1010))) = true := by + have h : ((childLL (childLH (childHL thetaAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHL thetaAboveCell1010))) h +theorem e24KC2ThetaAboveLeaf1010211 : + adaptiveCoverCheck 12 (childLH (childLH (childHL thetaAboveCell1010))) = true := by + have h : ((childLH (childLH (childHL thetaAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHL thetaAboveCell1010))) h +theorem e24KC2ThetaAboveLeaf1010212 : + adaptiveCoverCheck 12 (childHL (childLH (childHL thetaAboveCell1010))) = true := by + have h : ((childHL (childLH (childHL thetaAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childHL thetaAboveCell1010))) h +theorem e24KC2ThetaAboveLeaf1010213 : + adaptiveCoverCheck 12 (childHH (childLH (childHL thetaAboveCell1010))) = true := by + have h : ((childHH (childLH (childHL thetaAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childHL thetaAboveCell1010))) h +theorem e24KC2ThetaAboveLeaf101022000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102200) = true := by + have h : ((childLL thetaAboveCell10102200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10102200) h +theorem e24KC2ThetaAboveLeaf101022001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102200) = true := by + have h : ((childLH thetaAboveCell10102200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10102200) h +theorem e24KC2ThetaAboveLeaf101022002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102200) = true := by + have h : ((childHL thetaAboveCell10102200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102200) h +theorem e24KC2ThetaAboveLeaf101022003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102200) = true := by + have h : ((childHH thetaAboveCell10102200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102200) h +theorem e24KC2ThetaAboveLeaf101022010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102201) = true := by + have h : ((childLL thetaAboveCell10102201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10102201) h +theorem e24KC2ThetaAboveLeaf101022011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102201) = true := by + have h : ((childLH thetaAboveCell10102201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10102201) h +theorem e24KC2ThetaAboveLeaf101022012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102201) = true := by + have h : ((childHL thetaAboveCell10102201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102201) h +theorem e24KC2ThetaAboveLeaf101022013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102201) = true := by + have h : ((childHH thetaAboveCell10102201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102201) h +theorem e24KC2ThetaAboveLeaf1010220200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10102202)) = true := by + have h : ((childLL (childLL thetaAboveCell10102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10102202)) h +theorem e24KC2ThetaAboveLeaf1010220201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10102202)) = true := by + have h : ((childLH (childLL thetaAboveCell10102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10102202)) h +theorem e24KC2ThetaAboveLeaf1010220202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10102202)) = true := by + have h : ((childHL (childLL thetaAboveCell10102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10102202)) h +theorem e24KC2ThetaAboveLeaf1010220203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10102202)) = true := by + have h : ((childHH (childLL thetaAboveCell10102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10102202)) h +theorem e24KC2ThetaAboveLeaf1010220210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10102202)) = true := by + have h : ((childLL (childLH thetaAboveCell10102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10102202)) h +theorem e24KC2ThetaAboveLeaf1010220211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10102202)) = true := by + have h : ((childLH (childLH thetaAboveCell10102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10102202)) h +theorem e24KC2ThetaAboveLeaf1010220212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10102202)) = true := by + have h : ((childHL (childLH thetaAboveCell10102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10102202)) h +theorem e24KC2ThetaAboveLeaf1010220213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10102202)) = true := by + have h : ((childHH (childLH thetaAboveCell10102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10102202)) h +theorem e24KC2ThetaAboveLeaf1010220220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10102202)) = true := by + have h : ((childLL (childHL thetaAboveCell10102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10102202)) h +theorem e24KC2ThetaAboveLeaf1010220221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10102202)) = true := by + have h : ((childLH (childHL thetaAboveCell10102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10102202)) h +theorem e24KC2ThetaAboveLeaf1010220222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10102202)) = true := by + have h : ((childHL (childHL thetaAboveCell10102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10102202)) h +theorem e24KC2ThetaAboveLeaf1010220223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10102202)) = true := by + have h : ((childHH (childHL thetaAboveCell10102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10102202)) h +theorem e24KC2ThetaAboveLeaf1010220230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10102202)) = true := by + have h : ((childLL (childHH thetaAboveCell10102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10102202)) h +theorem e24KC2ThetaAboveLeaf1010220231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10102202)) = true := by + have h : ((childLH (childHH thetaAboveCell10102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10102202)) h +theorem e24KC2ThetaAboveLeaf1010220232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10102202)) = true := by + have h : ((childHL (childHH thetaAboveCell10102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10102202)) h +theorem e24KC2ThetaAboveLeaf1010220233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10102202)) = true := by + have h : ((childHH (childHH thetaAboveCell10102202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10102202)) h +theorem e24KC2ThetaAboveLeaf1010220300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10102203)) = true := by + have h : ((childLL (childLL thetaAboveCell10102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10102203)) h +theorem e24KC2ThetaAboveLeaf1010220301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10102203)) = true := by + have h : ((childLH (childLL thetaAboveCell10102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10102203)) h +theorem e24KC2ThetaAboveLeaf1010220302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10102203)) = true := by + have h : ((childHL (childLL thetaAboveCell10102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10102203)) h +theorem e24KC2ThetaAboveLeaf1010220303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10102203)) = true := by + have h : ((childHH (childLL thetaAboveCell10102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10102203)) h +theorem e24KC2ThetaAboveLeaf1010220310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10102203)) = true := by + have h : ((childLL (childLH thetaAboveCell10102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10102203)) h +theorem e24KC2ThetaAboveLeaf1010220311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10102203)) = true := by + have h : ((childLH (childLH thetaAboveCell10102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10102203)) h +theorem e24KC2ThetaAboveLeaf1010220312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10102203)) = true := by + have h : ((childHL (childLH thetaAboveCell10102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10102203)) h +theorem e24KC2ThetaAboveLeaf1010220313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10102203)) = true := by + have h : ((childHH (childLH thetaAboveCell10102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10102203)) h +theorem e24KC2ThetaAboveLeaf1010220320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10102203)) = true := by + have h : ((childLL (childHL thetaAboveCell10102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10102203)) h +theorem e24KC2ThetaAboveLeaf1010220321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10102203)) = true := by + have h : ((childLH (childHL thetaAboveCell10102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10102203)) h +theorem e24KC2ThetaAboveLeaf1010220322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10102203)) = true := by + have h : ((childHL (childHL thetaAboveCell10102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10102203)) h +theorem e24KC2ThetaAboveLeaf1010220323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10102203)) = true := by + have h : ((childHH (childHL thetaAboveCell10102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10102203)) h +theorem e24KC2ThetaAboveLeaf1010220330 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10102203)) = true := by + have h : ((childLL (childHH thetaAboveCell10102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10102203)) h +theorem e24KC2ThetaAboveLeaf1010220331 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10102203)) = true := by + have h : ((childLH (childHH thetaAboveCell10102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10102203)) h +theorem e24KC2ThetaAboveLeaf1010220332 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10102203)) = true := by + have h : ((childHL (childHH thetaAboveCell10102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10102203)) h +theorem e24KC2ThetaAboveLeaf1010220333 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10102203)) = true := by + have h : ((childHH (childHH thetaAboveCell10102203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10102203)) h +theorem e24KC2ThetaAboveLeaf101022100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102210) = true := by + have h : ((childLL thetaAboveCell10102210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10102210) h +theorem e24KC2ThetaAboveLeaf101022101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102210) = true := by + have h : ((childLH thetaAboveCell10102210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10102210) h +theorem e24KC2ThetaAboveLeaf101022102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102210) = true := by + have h : ((childHL thetaAboveCell10102210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102210) h +theorem e24KC2ThetaAboveLeaf101022103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102210) = true := by + have h : ((childHH thetaAboveCell10102210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102210) h +theorem e24KC2ThetaAboveLeaf101022110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102211) = true := by + have h : ((childLL thetaAboveCell10102211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10102211) h +theorem e24KC2ThetaAboveLeaf101022111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102211) = true := by + have h : ((childLH thetaAboveCell10102211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10102211) h +theorem e24KC2ThetaAboveLeaf101022112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102211) = true := by + have h : ((childHL thetaAboveCell10102211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102211) h +theorem e24KC2ThetaAboveLeaf101022113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102211) = true := by + have h : ((childHH thetaAboveCell10102211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102211) h +theorem e24KC2ThetaAboveLeaf1010221200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10102212)) = true := by + have h : ((childLL (childLL thetaAboveCell10102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10102212)) h +theorem e24KC2ThetaAboveLeaf1010221201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10102212)) = true := by + have h : ((childLH (childLL thetaAboveCell10102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10102212)) h +theorem e24KC2ThetaAboveLeaf1010221202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10102212)) = true := by + have h : ((childHL (childLL thetaAboveCell10102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10102212)) h +theorem e24KC2ThetaAboveLeaf1010221203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10102212)) = true := by + have h : ((childHH (childLL thetaAboveCell10102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10102212)) h +theorem e24KC2ThetaAboveLeaf1010221210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10102212)) = true := by + have h : ((childLL (childLH thetaAboveCell10102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10102212)) h +theorem e24KC2ThetaAboveLeaf1010221211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10102212)) = true := by + have h : ((childLH (childLH thetaAboveCell10102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10102212)) h +theorem e24KC2ThetaAboveLeaf1010221212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10102212)) = true := by + have h : ((childHL (childLH thetaAboveCell10102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10102212)) h +theorem e24KC2ThetaAboveLeaf1010221213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10102212)) = true := by + have h : ((childHH (childLH thetaAboveCell10102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10102212)) h +theorem e24KC2ThetaAboveLeaf1010221220 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10102212)) = true := by + have h : ((childLL (childHL thetaAboveCell10102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10102212)) h +theorem e24KC2ThetaAboveLeaf1010221221 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10102212)) = true := by + have h : ((childLH (childHL thetaAboveCell10102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10102212)) h +theorem e24KC2ThetaAboveLeaf1010221222 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10102212)) = true := by + have h : ((childHL (childHL thetaAboveCell10102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10102212)) h +theorem e24KC2ThetaAboveLeaf1010221223 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10102212)) = true := by + have h : ((childHH (childHL thetaAboveCell10102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10102212)) h +theorem e24KC2ThetaAboveLeaf1010221230 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell10102212)) = true := by + have h : ((childLL (childHH thetaAboveCell10102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHH thetaAboveCell10102212)) h +theorem e24KC2ThetaAboveLeaf1010221231 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell10102212)) = true := by + have h : ((childLH (childHH thetaAboveCell10102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHH thetaAboveCell10102212)) h +theorem e24KC2ThetaAboveLeaf1010221232 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell10102212)) = true := by + have h : ((childHL (childHH thetaAboveCell10102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHH thetaAboveCell10102212)) h +theorem e24KC2ThetaAboveLeaf1010221233 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell10102212)) = true := by + have h : ((childHH (childHH thetaAboveCell10102212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHH thetaAboveCell10102212)) h +theorem e24KC2ThetaAboveLeaf1010221300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10102213)) = true := by + have h : ((childLL (childLL thetaAboveCell10102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10102213)) h +theorem e24KC2ThetaAboveLeaf1010221301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10102213)) = true := by + have h : ((childLH (childLL thetaAboveCell10102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10102213)) h +theorem e24KC2ThetaAboveLeaf1010221302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10102213)) = true := by + have h : ((childHL (childLL thetaAboveCell10102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10102213)) h +theorem e24KC2ThetaAboveLeaf1010221303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10102213)) = true := by + have h : ((childHH (childLL thetaAboveCell10102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10102213)) h +theorem e24KC2ThetaAboveLeaf1010221310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10102213)) = true := by + have h : ((childLL (childLH thetaAboveCell10102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10102213)) h +theorem e24KC2ThetaAboveLeaf1010221311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10102213)) = true := by + have h : ((childLH (childLH thetaAboveCell10102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10102213)) h +theorem e24KC2ThetaAboveLeaf1010221312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10102213)) = true := by + have h : ((childHL (childLH thetaAboveCell10102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10102213)) h +theorem e24KC2ThetaAboveLeaf1010221313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10102213)) = true := by + have h : ((childHH (childLH thetaAboveCell10102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10102213)) h +theorem e24KC2ThetaAboveLeaf1010221320 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell10102213)) = true := by + have h : ((childLL (childHL thetaAboveCell10102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childHL thetaAboveCell10102213)) h +theorem e24KC2ThetaAboveLeaf1010221321 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell10102213)) = true := by + have h : ((childLH (childHL thetaAboveCell10102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childHL thetaAboveCell10102213)) h +theorem e24KC2ThetaAboveLeaf1010221322 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell10102213)) = true := by + have h : ((childHL (childHL thetaAboveCell10102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childHL thetaAboveCell10102213)) h +theorem e24KC2ThetaAboveLeaf1010221323 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell10102213)) = true := by + have h : ((childHH (childHL thetaAboveCell10102213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childHL thetaAboveCell10102213)) h +theorem e24KC2ThetaAboveLeaf101022133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102213) = true := by + have h : ((childHH thetaAboveCell10102213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102213) h +theorem e24KC2ThetaAboveLeaf101022200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102220) = true := by + have h : ((childLL thetaAboveCell10102220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10102220) h +theorem e24KC2ThetaAboveLeaf101022201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102220) = true := by + have h : ((childLH thetaAboveCell10102220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10102220) h +theorem e24KC2ThetaAboveLeaf101022202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102220) = true := by + have h : ((childHL thetaAboveCell10102220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102220) h +theorem e24KC2ThetaAboveLeaf101022203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102220) = true := by + have h : ((childHH thetaAboveCell10102220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102220) h +theorem e24KC2ThetaAboveLeaf101022210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102221) = true := by + have h : ((childLL thetaAboveCell10102221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10102221) h +theorem e24KC2ThetaAboveLeaf101022211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102221) = true := by + have h : ((childLH thetaAboveCell10102221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10102221) h +theorem e24KC2ThetaAboveLeaf101022212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102221) = true := by + have h : ((childHL thetaAboveCell10102221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102221) h +theorem e24KC2ThetaAboveLeaf101022213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102221) = true := by + have h : ((childHH thetaAboveCell10102221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102221) h +theorem e24KC2ThetaAboveLeaf10102222 : + adaptiveCoverCheck 11 thetaAboveCell10102222 = true := by + have h : (thetaAboveCell10102222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10102222 h +theorem e24KC2ThetaAboveLeaf10102223 : + adaptiveCoverCheck 11 thetaAboveCell10102223 = true := by + have h : (thetaAboveCell10102223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10102223 h +theorem e24KC2ThetaAboveLeaf101022300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102230) = true := by + have h : ((childLL thetaAboveCell10102230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10102230) h +theorem e24KC2ThetaAboveLeaf101022301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102230) = true := by + have h : ((childLH thetaAboveCell10102230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10102230) h +theorem e24KC2ThetaAboveLeaf101022302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102230) = true := by + have h : ((childHL thetaAboveCell10102230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102230) h +theorem e24KC2ThetaAboveLeaf101022303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102230) = true := by + have h : ((childHH thetaAboveCell10102230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102230) h +theorem e24KC2ThetaAboveLeaf101022310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102231) = true := by + have h : ((childLL thetaAboveCell10102231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10102231) h +theorem e24KC2ThetaAboveLeaf101022311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102231) = true := by + have h : ((childLH thetaAboveCell10102231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10102231) h +theorem e24KC2ThetaAboveLeaf101022312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102231) = true := by + have h : ((childHL thetaAboveCell10102231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102231) h +theorem e24KC2ThetaAboveLeaf101022313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102231) = true := by + have h : ((childHH thetaAboveCell10102231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102231) h +theorem e24KC2ThetaAboveLeaf10102232 : + adaptiveCoverCheck 11 thetaAboveCell10102232 = true := by + have h : (thetaAboveCell10102232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10102232 h +theorem e24KC2ThetaAboveLeaf10102233 : + adaptiveCoverCheck 11 thetaAboveCell10102233 = true := by + have h : (thetaAboveCell10102233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10102233 h +theorem e24KC2ThetaAboveLeaf101023000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102300) = true := by + have h : ((childLL thetaAboveCell10102300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10102300) h +theorem e24KC2ThetaAboveLeaf101023001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102300) = true := by + have h : ((childLH thetaAboveCell10102300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10102300) h +theorem e24KC2ThetaAboveLeaf101023002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102300) = true := by + have h : ((childHL thetaAboveCell10102300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102300) h +theorem e24KC2ThetaAboveLeaf101023003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102300) = true := by + have h : ((childHH thetaAboveCell10102300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102300) h +theorem e24KC2ThetaAboveLeaf101023010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102301) = true := by + have h : ((childLL thetaAboveCell10102301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10102301) h +theorem e24KC2ThetaAboveLeaf101023011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102301) = true := by + have h : ((childLH thetaAboveCell10102301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10102301) h +theorem e24KC2ThetaAboveLeaf101023012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102301) = true := by + have h : ((childHL thetaAboveCell10102301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102301) h +theorem e24KC2ThetaAboveLeaf101023013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102301) = true := by + have h : ((childHH thetaAboveCell10102301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102301) h +theorem e24KC2ThetaAboveLeaf1010230200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10102302)) = true := by + have h : ((childLL (childLL thetaAboveCell10102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10102302)) h +theorem e24KC2ThetaAboveLeaf1010230201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10102302)) = true := by + have h : ((childLH (childLL thetaAboveCell10102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10102302)) h +theorem e24KC2ThetaAboveLeaf1010230202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10102302)) = true := by + have h : ((childHL (childLL thetaAboveCell10102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10102302)) h +theorem e24KC2ThetaAboveLeaf1010230203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10102302)) = true := by + have h : ((childHH (childLL thetaAboveCell10102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10102302)) h +theorem e24KC2ThetaAboveLeaf1010230210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10102302)) = true := by + have h : ((childLL (childLH thetaAboveCell10102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10102302)) h +theorem e24KC2ThetaAboveLeaf1010230211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10102302)) = true := by + have h : ((childLH (childLH thetaAboveCell10102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10102302)) h +theorem e24KC2ThetaAboveLeaf1010230212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10102302)) = true := by + have h : ((childHL (childLH thetaAboveCell10102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10102302)) h +theorem e24KC2ThetaAboveLeaf1010230213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10102302)) = true := by + have h : ((childHH (childLH thetaAboveCell10102302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10102302)) h +theorem e24KC2ThetaAboveLeaf101023022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102302) = true := by + have h : ((childHL thetaAboveCell10102302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102302) h +theorem e24KC2ThetaAboveLeaf101023023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102302) = true := by + have h : ((childHH thetaAboveCell10102302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102302) h +theorem e24KC2ThetaAboveLeaf1010230300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10102303)) = true := by + have h : ((childLL (childLL thetaAboveCell10102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10102303)) h +theorem e24KC2ThetaAboveLeaf1010230301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10102303)) = true := by + have h : ((childLH (childLL thetaAboveCell10102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10102303)) h +theorem e24KC2ThetaAboveLeaf1010230302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10102303)) = true := by + have h : ((childHL (childLL thetaAboveCell10102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10102303)) h +theorem e24KC2ThetaAboveLeaf1010230303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10102303)) = true := by + have h : ((childHH (childLL thetaAboveCell10102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10102303)) h +theorem e24KC2ThetaAboveLeaf1010230310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10102303)) = true := by + have h : ((childLL (childLH thetaAboveCell10102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10102303)) h +theorem e24KC2ThetaAboveLeaf1010230311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10102303)) = true := by + have h : ((childLH (childLH thetaAboveCell10102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10102303)) h +theorem e24KC2ThetaAboveLeaf1010230312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10102303)) = true := by + have h : ((childHL (childLH thetaAboveCell10102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10102303)) h +theorem e24KC2ThetaAboveLeaf1010230313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10102303)) = true := by + have h : ((childHH (childLH thetaAboveCell10102303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10102303)) h +theorem e24KC2ThetaAboveLeaf101023032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102303) = true := by + have h : ((childHL thetaAboveCell10102303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102303) h +theorem e24KC2ThetaAboveLeaf101023033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102303) = true := by + have h : ((childHH thetaAboveCell10102303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102303) h +theorem e24KC2ThetaAboveLeaf101023100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102310) = true := by + have h : ((childLL thetaAboveCell10102310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10102310) h +theorem e24KC2ThetaAboveLeaf101023101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102310) = true := by + have h : ((childLH thetaAboveCell10102310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10102310) h +theorem e24KC2ThetaAboveLeaf101023102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102310) = true := by + have h : ((childHL thetaAboveCell10102310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102310) h +theorem e24KC2ThetaAboveLeaf101023103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102310) = true := by + have h : ((childHH thetaAboveCell10102310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102310) h +theorem e24KC2ThetaAboveLeaf101023110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102311) = true := by + have h : ((childLL thetaAboveCell10102311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10102311) h +theorem e24KC2ThetaAboveLeaf101023111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102311) = true := by + have h : ((childLH thetaAboveCell10102311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10102311) h +theorem e24KC2ThetaAboveLeaf101023112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102311) = true := by + have h : ((childHL thetaAboveCell10102311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102311) h +theorem e24KC2ThetaAboveLeaf101023113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102311) = true := by + have h : ((childHH thetaAboveCell10102311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102311) h +theorem e24KC2ThetaAboveLeaf1010231200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10102312)) = true := by + have h : ((childLL (childLL thetaAboveCell10102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10102312)) h +theorem e24KC2ThetaAboveLeaf1010231201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10102312)) = true := by + have h : ((childLH (childLL thetaAboveCell10102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10102312)) h +theorem e24KC2ThetaAboveLeaf1010231202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10102312)) = true := by + have h : ((childHL (childLL thetaAboveCell10102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10102312)) h +theorem e24KC2ThetaAboveLeaf1010231203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10102312)) = true := by + have h : ((childHH (childLL thetaAboveCell10102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10102312)) h +theorem e24KC2ThetaAboveLeaf1010231210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10102312)) = true := by + have h : ((childLL (childLH thetaAboveCell10102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10102312)) h +theorem e24KC2ThetaAboveLeaf1010231211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10102312)) = true := by + have h : ((childLH (childLH thetaAboveCell10102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10102312)) h +theorem e24KC2ThetaAboveLeaf1010231212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10102312)) = true := by + have h : ((childHL (childLH thetaAboveCell10102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10102312)) h +theorem e24KC2ThetaAboveLeaf1010231213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10102312)) = true := by + have h : ((childHH (childLH thetaAboveCell10102312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10102312)) h +theorem e24KC2ThetaAboveLeaf101023122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102312) = true := by + have h : ((childHL thetaAboveCell10102312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102312) h +theorem e24KC2ThetaAboveLeaf101023123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102312) = true := by + have h : ((childHH thetaAboveCell10102312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102312) h +theorem e24KC2ThetaAboveLeaf1010231300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10102313)) = true := by + have h : ((childLL (childLL thetaAboveCell10102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10102313)) h +theorem e24KC2ThetaAboveLeaf1010231301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10102313)) = true := by + have h : ((childLH (childLL thetaAboveCell10102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10102313)) h +theorem e24KC2ThetaAboveLeaf1010231302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10102313)) = true := by + have h : ((childHL (childLL thetaAboveCell10102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10102313)) h +theorem e24KC2ThetaAboveLeaf1010231303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10102313)) = true := by + have h : ((childHH (childLL thetaAboveCell10102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10102313)) h +theorem e24KC2ThetaAboveLeaf1010231310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10102313)) = true := by + have h : ((childLL (childLH thetaAboveCell10102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10102313)) h +theorem e24KC2ThetaAboveLeaf1010231311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10102313)) = true := by + have h : ((childLH (childLH thetaAboveCell10102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10102313)) h +theorem e24KC2ThetaAboveLeaf1010231312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10102313)) = true := by + have h : ((childHL (childLH thetaAboveCell10102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10102313)) h +theorem e24KC2ThetaAboveLeaf1010231313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10102313)) = true := by + have h : ((childHH (childLH thetaAboveCell10102313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10102313)) h +theorem e24KC2ThetaAboveLeaf101023132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102313) = true := by + have h : ((childHL thetaAboveCell10102313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102313) h +theorem e24KC2ThetaAboveLeaf101023133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102313) = true := by + have h : ((childHH thetaAboveCell10102313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102313) h +theorem e24KC2ThetaAboveLeaf101023200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102320) = true := by + have h : ((childLL thetaAboveCell10102320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10102320) h +theorem e24KC2ThetaAboveLeaf101023201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102320) = true := by + have h : ((childLH thetaAboveCell10102320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10102320) h +theorem e24KC2ThetaAboveLeaf101023202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102320) = true := by + have h : ((childHL thetaAboveCell10102320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102320) h +theorem e24KC2ThetaAboveLeaf101023203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102320) = true := by + have h : ((childHH thetaAboveCell10102320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102320) h +theorem e24KC2ThetaAboveLeaf101023210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102321) = true := by + have h : ((childLL thetaAboveCell10102321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10102321) h +theorem e24KC2ThetaAboveLeaf101023211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102321) = true := by + have h : ((childLH thetaAboveCell10102321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10102321) h +theorem e24KC2ThetaAboveLeaf101023212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102321) = true := by + have h : ((childHL thetaAboveCell10102321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102321) h +theorem e24KC2ThetaAboveLeaf101023213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102321) = true := by + have h : ((childHH thetaAboveCell10102321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102321) h +theorem e24KC2ThetaAboveLeaf10102322 : + adaptiveCoverCheck 11 thetaAboveCell10102322 = true := by + have h : (thetaAboveCell10102322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10102322 h +theorem e24KC2ThetaAboveLeaf10102323 : + adaptiveCoverCheck 11 thetaAboveCell10102323 = true := by + have h : (thetaAboveCell10102323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10102323 h +theorem e24KC2ThetaAboveLeaf101023300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102330) = true := by + have h : ((childLL thetaAboveCell10102330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10102330) h +theorem e24KC2ThetaAboveLeaf101023301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102330) = true := by + have h : ((childLH thetaAboveCell10102330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10102330) h +theorem e24KC2ThetaAboveLeaf101023302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102330) = true := by + have h : ((childHL thetaAboveCell10102330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102330) h +theorem e24KC2ThetaAboveLeaf101023303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102330) = true := by + have h : ((childHH thetaAboveCell10102330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102330) h +theorem e24KC2ThetaAboveLeaf101023310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102331) = true := by + have h : ((childLL thetaAboveCell10102331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10102331) h +theorem e24KC2ThetaAboveLeaf101023311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102331) = true := by + have h : ((childLH thetaAboveCell10102331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10102331) h +theorem e24KC2ThetaAboveLeaf101023312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102331) = true := by + have h : ((childHL thetaAboveCell10102331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10102331) h +theorem e24KC2ThetaAboveLeaf101023313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102331) = true := by + have h : ((childHH thetaAboveCell10102331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10102331) h +theorem e24KC2ThetaAboveLeaf10102332 : + adaptiveCoverCheck 11 thetaAboveCell10102332 = true := by + have h : (thetaAboveCell10102332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10102332 h +theorem e24KC2ThetaAboveLeaf10102333 : + adaptiveCoverCheck 11 thetaAboveCell10102333 = true := by + have h : (thetaAboveCell10102333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10102333 h +theorem e24KC2ThetaAboveLeaf1010300 : + adaptiveCoverCheck 12 (childLL (childLL (childHH thetaAboveCell1010))) = true := by + have h : ((childLL (childLL (childHH thetaAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHH thetaAboveCell1010))) h +theorem e24KC2ThetaAboveLeaf1010301 : + adaptiveCoverCheck 12 (childLH (childLL (childHH thetaAboveCell1010))) = true := by + have h : ((childLH (childLL (childHH thetaAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHH thetaAboveCell1010))) h +theorem e24KC2ThetaAboveLeaf1010302 : + adaptiveCoverCheck 12 (childHL (childLL (childHH thetaAboveCell1010))) = true := by + have h : ((childHL (childLL (childHH thetaAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childHH thetaAboveCell1010))) h +theorem e24KC2ThetaAboveLeaf1010303 : + adaptiveCoverCheck 12 (childHH (childLL (childHH thetaAboveCell1010))) = true := by + have h : ((childHH (childLL (childHH thetaAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childHH thetaAboveCell1010))) h +theorem e24KC2ThetaAboveLeaf1010310 : + adaptiveCoverCheck 12 (childLL (childLH (childHH thetaAboveCell1010))) = true := by + have h : ((childLL (childLH (childHH thetaAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHH thetaAboveCell1010))) h +theorem e24KC2ThetaAboveLeaf1010311 : + adaptiveCoverCheck 12 (childLH (childLH (childHH thetaAboveCell1010))) = true := by + have h : ((childLH (childLH (childHH thetaAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHH thetaAboveCell1010))) h +theorem e24KC2ThetaAboveLeaf1010312 : + adaptiveCoverCheck 12 (childHL (childLH (childHH thetaAboveCell1010))) = true := by + have h : ((childHL (childLH (childHH thetaAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childHH thetaAboveCell1010))) h +theorem e24KC2ThetaAboveLeaf1010313 : + adaptiveCoverCheck 12 (childHH (childLH (childHH thetaAboveCell1010))) = true := by + have h : ((childHH (childLH (childHH thetaAboveCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childHH thetaAboveCell1010))) h +theorem e24KC2ThetaAboveLeaf101032000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103200) = true := by + have h : ((childLL thetaAboveCell10103200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103200) h +theorem e24KC2ThetaAboveLeaf101032001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103200) = true := by + have h : ((childLH thetaAboveCell10103200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103200) h +theorem e24KC2ThetaAboveLeaf101032002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103200) = true := by + have h : ((childHL thetaAboveCell10103200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103200) h +theorem e24KC2ThetaAboveLeaf101032003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103200) = true := by + have h : ((childHH thetaAboveCell10103200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103200) h +theorem e24KC2ThetaAboveLeaf101032010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103201) = true := by + have h : ((childLL thetaAboveCell10103201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103201) h +theorem e24KC2ThetaAboveLeaf101032011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103201) = true := by + have h : ((childLH thetaAboveCell10103201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103201) h +theorem e24KC2ThetaAboveLeaf101032012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103201) = true := by + have h : ((childHL thetaAboveCell10103201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103201) h +theorem e24KC2ThetaAboveLeaf101032013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103201) = true := by + have h : ((childHH thetaAboveCell10103201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103201) h +theorem e24KC2ThetaAboveLeaf1010320200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10103202)) = true := by + have h : ((childLL (childLL thetaAboveCell10103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10103202)) h +theorem e24KC2ThetaAboveLeaf1010320201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10103202)) = true := by + have h : ((childLH (childLL thetaAboveCell10103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10103202)) h +theorem e24KC2ThetaAboveLeaf1010320202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10103202)) = true := by + have h : ((childHL (childLL thetaAboveCell10103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10103202)) h +theorem e24KC2ThetaAboveLeaf1010320203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10103202)) = true := by + have h : ((childHH (childLL thetaAboveCell10103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10103202)) h +theorem e24KC2ThetaAboveLeaf1010320210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10103202)) = true := by + have h : ((childLL (childLH thetaAboveCell10103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10103202)) h +theorem e24KC2ThetaAboveLeaf1010320211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10103202)) = true := by + have h : ((childLH (childLH thetaAboveCell10103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10103202)) h +theorem e24KC2ThetaAboveLeaf1010320212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10103202)) = true := by + have h : ((childHL (childLH thetaAboveCell10103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10103202)) h +theorem e24KC2ThetaAboveLeaf1010320213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10103202)) = true := by + have h : ((childHH (childLH thetaAboveCell10103202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10103202)) h +theorem e24KC2ThetaAboveLeaf101032022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103202) = true := by + have h : ((childHL thetaAboveCell10103202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103202) h +theorem e24KC2ThetaAboveLeaf101032023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103202) = true := by + have h : ((childHH thetaAboveCell10103202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103202) h +theorem e24KC2ThetaAboveLeaf1010320300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10103203)) = true := by + have h : ((childLL (childLL thetaAboveCell10103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10103203)) h +theorem e24KC2ThetaAboveLeaf1010320301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10103203)) = true := by + have h : ((childLH (childLL thetaAboveCell10103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10103203)) h +theorem e24KC2ThetaAboveLeaf1010320302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10103203)) = true := by + have h : ((childHL (childLL thetaAboveCell10103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10103203)) h +theorem e24KC2ThetaAboveLeaf1010320303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10103203)) = true := by + have h : ((childHH (childLL thetaAboveCell10103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10103203)) h +theorem e24KC2ThetaAboveLeaf1010320310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10103203)) = true := by + have h : ((childLL (childLH thetaAboveCell10103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10103203)) h +theorem e24KC2ThetaAboveLeaf1010320311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10103203)) = true := by + have h : ((childLH (childLH thetaAboveCell10103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10103203)) h +theorem e24KC2ThetaAboveLeaf1010320312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10103203)) = true := by + have h : ((childHL (childLH thetaAboveCell10103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10103203)) h +theorem e24KC2ThetaAboveLeaf1010320313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10103203)) = true := by + have h : ((childHH (childLH thetaAboveCell10103203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10103203)) h +theorem e24KC2ThetaAboveLeaf101032032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103203) = true := by + have h : ((childHL thetaAboveCell10103203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103203) h +theorem e24KC2ThetaAboveLeaf101032033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103203) = true := by + have h : ((childHH thetaAboveCell10103203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103203) h +theorem e24KC2ThetaAboveLeaf101032100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103210) = true := by + have h : ((childLL thetaAboveCell10103210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103210) h +theorem e24KC2ThetaAboveLeaf101032101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103210) = true := by + have h : ((childLH thetaAboveCell10103210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103210) h +theorem e24KC2ThetaAboveLeaf101032102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103210) = true := by + have h : ((childHL thetaAboveCell10103210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103210) h +theorem e24KC2ThetaAboveLeaf101032103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103210) = true := by + have h : ((childHH thetaAboveCell10103210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103210) h +theorem e24KC2ThetaAboveLeaf101032110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103211) = true := by + have h : ((childLL thetaAboveCell10103211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103211) h +theorem e24KC2ThetaAboveLeaf101032111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103211) = true := by + have h : ((childLH thetaAboveCell10103211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103211) h +theorem e24KC2ThetaAboveLeaf101032112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103211) = true := by + have h : ((childHL thetaAboveCell10103211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103211) h +theorem e24KC2ThetaAboveLeaf101032113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103211) = true := by + have h : ((childHH thetaAboveCell10103211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103211) h +theorem e24KC2ThetaAboveLeaf1010321200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10103212)) = true := by + have h : ((childLL (childLL thetaAboveCell10103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10103212)) h +theorem e24KC2ThetaAboveLeaf1010321201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10103212)) = true := by + have h : ((childLH (childLL thetaAboveCell10103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10103212)) h +theorem e24KC2ThetaAboveLeaf1010321202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10103212)) = true := by + have h : ((childHL (childLL thetaAboveCell10103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10103212)) h +theorem e24KC2ThetaAboveLeaf1010321203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10103212)) = true := by + have h : ((childHH (childLL thetaAboveCell10103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10103212)) h +theorem e24KC2ThetaAboveLeaf1010321210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10103212)) = true := by + have h : ((childLL (childLH thetaAboveCell10103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10103212)) h +theorem e24KC2ThetaAboveLeaf1010321211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10103212)) = true := by + have h : ((childLH (childLH thetaAboveCell10103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10103212)) h +theorem e24KC2ThetaAboveLeaf1010321212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10103212)) = true := by + have h : ((childHL (childLH thetaAboveCell10103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10103212)) h +theorem e24KC2ThetaAboveLeaf1010321213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10103212)) = true := by + have h : ((childHH (childLH thetaAboveCell10103212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10103212)) h +theorem e24KC2ThetaAboveLeaf101032122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103212) = true := by + have h : ((childHL thetaAboveCell10103212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103212) h +theorem e24KC2ThetaAboveLeaf101032123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103212) = true := by + have h : ((childHH thetaAboveCell10103212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103212) h +theorem e24KC2ThetaAboveLeaf1010321300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell10103213)) = true := by + have h : ((childLL (childLL thetaAboveCell10103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell10103213)) h +theorem e24KC2ThetaAboveLeaf1010321301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell10103213)) = true := by + have h : ((childLH (childLL thetaAboveCell10103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell10103213)) h +theorem e24KC2ThetaAboveLeaf1010321302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell10103213)) = true := by + have h : ((childHL (childLL thetaAboveCell10103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell10103213)) h +theorem e24KC2ThetaAboveLeaf1010321303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell10103213)) = true := by + have h : ((childHH (childLL thetaAboveCell10103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell10103213)) h +theorem e24KC2ThetaAboveLeaf1010321310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell10103213)) = true := by + have h : ((childLL (childLH thetaAboveCell10103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell10103213)) h +theorem e24KC2ThetaAboveLeaf1010321311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell10103213)) = true := by + have h : ((childLH (childLH thetaAboveCell10103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell10103213)) h +theorem e24KC2ThetaAboveLeaf1010321312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell10103213)) = true := by + have h : ((childHL (childLH thetaAboveCell10103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell10103213)) h +theorem e24KC2ThetaAboveLeaf1010321313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell10103213)) = true := by + have h : ((childHH (childLH thetaAboveCell10103213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell10103213)) h +theorem e24KC2ThetaAboveLeaf101032132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103213) = true := by + have h : ((childHL thetaAboveCell10103213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103213) h +theorem e24KC2ThetaAboveLeaf101032133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103213) = true := by + have h : ((childHH thetaAboveCell10103213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103213) h +theorem e24KC2ThetaAboveLeaf101032200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103220) = true := by + have h : ((childLL thetaAboveCell10103220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103220) h +theorem e24KC2ThetaAboveLeaf101032201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103220) = true := by + have h : ((childLH thetaAboveCell10103220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103220) h +theorem e24KC2ThetaAboveLeaf101032202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103220) = true := by + have h : ((childHL thetaAboveCell10103220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103220) h +theorem e24KC2ThetaAboveLeaf101032203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103220) = true := by + have h : ((childHH thetaAboveCell10103220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103220) h +theorem e24KC2ThetaAboveLeaf101032210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103221) = true := by + have h : ((childLL thetaAboveCell10103221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103221) h +theorem e24KC2ThetaAboveLeaf101032211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103221) = true := by + have h : ((childLH thetaAboveCell10103221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103221) h +theorem e24KC2ThetaAboveLeaf101032212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103221) = true := by + have h : ((childHL thetaAboveCell10103221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103221) h +theorem e24KC2ThetaAboveLeaf101032213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103221) = true := by + have h : ((childHH thetaAboveCell10103221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103221) h +theorem e24KC2ThetaAboveLeaf10103222 : + adaptiveCoverCheck 11 thetaAboveCell10103222 = true := by + have h : (thetaAboveCell10103222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10103222 h +theorem e24KC2ThetaAboveLeaf10103223 : + adaptiveCoverCheck 11 thetaAboveCell10103223 = true := by + have h : (thetaAboveCell10103223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10103223 h +theorem e24KC2ThetaAboveLeaf101032300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103230) = true := by + have h : ((childLL thetaAboveCell10103230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103230) h +theorem e24KC2ThetaAboveLeaf101032301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103230) = true := by + have h : ((childLH thetaAboveCell10103230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103230) h +theorem e24KC2ThetaAboveLeaf101032302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103230) = true := by + have h : ((childHL thetaAboveCell10103230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103230) h +theorem e24KC2ThetaAboveLeaf101032303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103230) = true := by + have h : ((childHH thetaAboveCell10103230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103230) h +theorem e24KC2ThetaAboveLeaf101032310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103231) = true := by + have h : ((childLL thetaAboveCell10103231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103231) h +theorem e24KC2ThetaAboveLeaf101032311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103231) = true := by + have h : ((childLH thetaAboveCell10103231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103231) h +theorem e24KC2ThetaAboveLeaf101032312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10103231) = true := by + have h : ((childHL thetaAboveCell10103231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell10103231) h +theorem e24KC2ThetaAboveLeaf101032313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10103231) = true := by + have h : ((childHH thetaAboveCell10103231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell10103231) h +theorem e24KC2ThetaAboveLeaf10103232 : + adaptiveCoverCheck 11 thetaAboveCell10103232 = true := by + have h : (thetaAboveCell10103232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10103232 h +theorem e24KC2ThetaAboveLeaf10103233 : + adaptiveCoverCheck 11 thetaAboveCell10103233 = true := by + have h : (thetaAboveCell10103233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell10103233 h +theorem e24KC2ThetaAboveLeaf101033000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103300) = true := by + have h : ((childLL thetaAboveCell10103300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell10103300) h +theorem e24KC2ThetaAboveLeaf101033001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103300) = true := by + have h : ((childLH thetaAboveCell10103300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell10103300) h + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC5TerminalBatchT51200004`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse876d675ca + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse876d675ca + +open CertificateCellse876d675ca +theorem e24KC2ThetaAboveLeaf00003121 : + adaptiveCoverCheck 11 thetaAboveCell00003121 = true := by + have h : (thetaAboveCell00003121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003121 h +theorem e24KC2ThetaAboveLeaf000031220 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003122) = true := by + have h : ((childLL thetaAboveCell00003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00003122) h +theorem e24KC2ThetaAboveLeaf000031221 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003122) = true := by + have h : ((childLH thetaAboveCell00003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00003122) h +theorem e24KC2ThetaAboveLeaf000031222 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003122) = true := by + have h : ((childHL thetaAboveCell00003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00003122) h +theorem e24KC2ThetaAboveLeaf000031223 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003122) = true := by + have h : ((childHH thetaAboveCell00003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00003122) h +theorem e24KC2ThetaAboveLeaf000031230 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003123) = true := by + have h : ((childLL thetaAboveCell00003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00003123) h +theorem e24KC2ThetaAboveLeaf000031231 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003123) = true := by + have h : ((childLH thetaAboveCell00003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00003123) h +theorem e24KC2ThetaAboveLeaf000031232 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003123) = true := by + have h : ((childHL thetaAboveCell00003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00003123) h +theorem e24KC2ThetaAboveLeaf000031233 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003123) = true := by + have h : ((childHH thetaAboveCell00003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00003123) h +theorem e24KC2ThetaAboveLeaf00003130 : + adaptiveCoverCheck 11 thetaAboveCell00003130 = true := by + have h : (thetaAboveCell00003130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003130 h +theorem e24KC2ThetaAboveLeaf00003131 : + adaptiveCoverCheck 11 thetaAboveCell00003131 = true := by + have h : (thetaAboveCell00003131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003131 h +theorem e24KC2ThetaAboveLeaf000031320 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003132) = true := by + have h : ((childLL thetaAboveCell00003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00003132) h +theorem e24KC2ThetaAboveLeaf000031321 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003132) = true := by + have h : ((childLH thetaAboveCell00003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00003132) h +theorem e24KC2ThetaAboveLeaf000031322 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003132) = true := by + have h : ((childHL thetaAboveCell00003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00003132) h +theorem e24KC2ThetaAboveLeaf000031323 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003132) = true := by + have h : ((childHH thetaAboveCell00003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00003132) h +theorem e24KC2ThetaAboveLeaf000031330 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003133) = true := by + have h : ((childLL thetaAboveCell00003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00003133) h +theorem e24KC2ThetaAboveLeaf000031331 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003133) = true := by + have h : ((childLH thetaAboveCell00003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00003133) h +theorem e24KC2ThetaAboveLeaf000031332 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003133) = true := by + have h : ((childHL thetaAboveCell00003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00003133) h +theorem e24KC2ThetaAboveLeaf000031333 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003133) = true := by + have h : ((childHH thetaAboveCell00003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00003133) h +theorem e24KC2ThetaAboveLeaf0000320000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00003200)) = true := by + have h : ((childLL (childLL thetaAboveCell00003200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00003200)) h +theorem e24KC2ThetaAboveLeaf0000320001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00003200)) = true := by + have h : ((childLH (childLL thetaAboveCell00003200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00003200)) h +theorem e24KC2ThetaAboveLeaf0000320010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00003200)) = true := by + have h : ((childLL (childLH thetaAboveCell00003200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00003200)) h +theorem e24KC2ThetaAboveLeaf0000320011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00003200)) = true := by + have h : ((childLH (childLH thetaAboveCell00003200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00003200)) h +theorem e24KC2ThetaAboveLeaf0000320100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00003201)) = true := by + have h : ((childLL (childLL thetaAboveCell00003201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00003201)) h +theorem e24KC2ThetaAboveLeaf0000320101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00003201)) = true := by + have h : ((childLH (childLL thetaAboveCell00003201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00003201)) h +theorem e24KC2ThetaAboveLeaf0000320110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00003201)) = true := by + have h : ((childLL (childLH thetaAboveCell00003201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00003201)) h +theorem e24KC2ThetaAboveLeaf0000320111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00003201)) = true := by + have h : ((childLH (childLH thetaAboveCell00003201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00003201)) h +theorem e24KC2ThetaAboveLeaf0000320200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00003202)) = true := by + have h : ((childLL (childLL thetaAboveCell00003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00003202)) h +theorem e24KC2ThetaAboveLeaf0000320201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00003202)) = true := by + have h : ((childLH (childLL thetaAboveCell00003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00003202)) h +theorem e24KC2ThetaAboveLeaf0000320202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00003202)) = true := by + have h : ((childHL (childLL thetaAboveCell00003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00003202)) h +theorem e24KC2ThetaAboveLeaf0000320203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00003202)) = true := by + have h : ((childHH (childLL thetaAboveCell00003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00003202)) h +theorem e24KC2ThetaAboveLeaf0000320210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00003202)) = true := by + have h : ((childLL (childLH thetaAboveCell00003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00003202)) h +theorem e24KC2ThetaAboveLeaf0000320211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00003202)) = true := by + have h : ((childLH (childLH thetaAboveCell00003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00003202)) h +theorem e24KC2ThetaAboveLeaf0000320212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00003202)) = true := by + have h : ((childHL (childLH thetaAboveCell00003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00003202)) h +theorem e24KC2ThetaAboveLeaf0000320213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00003202)) = true := by + have h : ((childHH (childLH thetaAboveCell00003202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00003202)) h +theorem e24KC2ThetaAboveLeaf000032022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003202) = true := by + have h : ((childHL thetaAboveCell00003202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00003202) h +theorem e24KC2ThetaAboveLeaf000032023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003202) = true := by + have h : ((childHH thetaAboveCell00003202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00003202) h +theorem e24KC2ThetaAboveLeaf0000320300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00003203)) = true := by + have h : ((childLL (childLL thetaAboveCell00003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00003203)) h +theorem e24KC2ThetaAboveLeaf0000320301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00003203)) = true := by + have h : ((childLH (childLL thetaAboveCell00003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00003203)) h +theorem e24KC2ThetaAboveLeaf0000320302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00003203)) = true := by + have h : ((childHL (childLL thetaAboveCell00003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00003203)) h +theorem e24KC2ThetaAboveLeaf0000320303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00003203)) = true := by + have h : ((childHH (childLL thetaAboveCell00003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00003203)) h +theorem e24KC2ThetaAboveLeaf0000320310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00003203)) = true := by + have h : ((childLL (childLH thetaAboveCell00003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00003203)) h +theorem e24KC2ThetaAboveLeaf0000320311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00003203)) = true := by + have h : ((childLH (childLH thetaAboveCell00003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00003203)) h +theorem e24KC2ThetaAboveLeaf0000320312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00003203)) = true := by + have h : ((childHL (childLH thetaAboveCell00003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00003203)) h +theorem e24KC2ThetaAboveLeaf0000320313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00003203)) = true := by + have h : ((childHH (childLH thetaAboveCell00003203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00003203)) h +theorem e24KC2ThetaAboveLeaf000032032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003203) = true := by + have h : ((childHL thetaAboveCell00003203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00003203) h +theorem e24KC2ThetaAboveLeaf000032033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003203) = true := by + have h : ((childHH thetaAboveCell00003203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00003203) h +theorem e24KC2ThetaAboveLeaf0000321000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00003210)) = true := by + have h : ((childLL (childLL thetaAboveCell00003210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00003210)) h +theorem e24KC2ThetaAboveLeaf0000321001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00003210)) = true := by + have h : ((childLH (childLL thetaAboveCell00003210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00003210)) h +theorem e24KC2ThetaAboveLeaf0000321010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00003210)) = true := by + have h : ((childLL (childLH thetaAboveCell00003210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00003210)) h +theorem e24KC2ThetaAboveLeaf0000321011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00003210)) = true := by + have h : ((childLH (childLH thetaAboveCell00003210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00003210)) h +theorem e24KC2ThetaAboveLeaf0000321100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00003211)) = true := by + have h : ((childLL (childLL thetaAboveCell00003211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00003211)) h +theorem e24KC2ThetaAboveLeaf0000321101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00003211)) = true := by + have h : ((childLH (childLL thetaAboveCell00003211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00003211)) h +theorem e24KC2ThetaAboveLeaf0000321110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00003211)) = true := by + have h : ((childLL (childLH thetaAboveCell00003211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00003211)) h +theorem e24KC2ThetaAboveLeaf0000321111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00003211)) = true := by + have h : ((childLH (childLH thetaAboveCell00003211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00003211)) h +theorem e24KC2ThetaAboveLeaf0000321200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00003212)) = true := by + have h : ((childLL (childLL thetaAboveCell00003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00003212)) h +theorem e24KC2ThetaAboveLeaf0000321201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00003212)) = true := by + have h : ((childLH (childLL thetaAboveCell00003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00003212)) h +theorem e24KC2ThetaAboveLeaf0000321202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00003212)) = true := by + have h : ((childHL (childLL thetaAboveCell00003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00003212)) h +theorem e24KC2ThetaAboveLeaf0000321203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00003212)) = true := by + have h : ((childHH (childLL thetaAboveCell00003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00003212)) h +theorem e24KC2ThetaAboveLeaf0000321210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00003212)) = true := by + have h : ((childLL (childLH thetaAboveCell00003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00003212)) h +theorem e24KC2ThetaAboveLeaf0000321211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00003212)) = true := by + have h : ((childLH (childLH thetaAboveCell00003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00003212)) h +theorem e24KC2ThetaAboveLeaf0000321212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00003212)) = true := by + have h : ((childHL (childLH thetaAboveCell00003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00003212)) h +theorem e24KC2ThetaAboveLeaf0000321213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00003212)) = true := by + have h : ((childHH (childLH thetaAboveCell00003212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00003212)) h +theorem e24KC2ThetaAboveLeaf000032122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003212) = true := by + have h : ((childHL thetaAboveCell00003212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00003212) h +theorem e24KC2ThetaAboveLeaf000032123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003212) = true := by + have h : ((childHH thetaAboveCell00003212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00003212) h +theorem e24KC2ThetaAboveLeaf0000321300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00003213)) = true := by + have h : ((childLL (childLL thetaAboveCell00003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00003213)) h +theorem e24KC2ThetaAboveLeaf0000321301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00003213)) = true := by + have h : ((childLH (childLL thetaAboveCell00003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00003213)) h +theorem e24KC2ThetaAboveLeaf0000321302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00003213)) = true := by + have h : ((childHL (childLL thetaAboveCell00003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00003213)) h +theorem e24KC2ThetaAboveLeaf0000321303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00003213)) = true := by + have h : ((childHH (childLL thetaAboveCell00003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00003213)) h +theorem e24KC2ThetaAboveLeaf0000321310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00003213)) = true := by + have h : ((childLL (childLH thetaAboveCell00003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00003213)) h +theorem e24KC2ThetaAboveLeaf0000321311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00003213)) = true := by + have h : ((childLH (childLH thetaAboveCell00003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00003213)) h +theorem e24KC2ThetaAboveLeaf0000321312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00003213)) = true := by + have h : ((childHL (childLH thetaAboveCell00003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00003213)) h +theorem e24KC2ThetaAboveLeaf0000321313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00003213)) = true := by + have h : ((childHH (childLH thetaAboveCell00003213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00003213)) h +theorem e24KC2ThetaAboveLeaf000032132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003213) = true := by + have h : ((childHL thetaAboveCell00003213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00003213) h +theorem e24KC2ThetaAboveLeaf000032133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003213) = true := by + have h : ((childHH thetaAboveCell00003213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00003213) h +theorem e24KC2ThetaAboveLeaf00003220 : + adaptiveCoverCheck 11 thetaAboveCell00003220 = true := by + have h : (thetaAboveCell00003220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003220 h +theorem e24KC2ThetaAboveLeaf00003221 : + adaptiveCoverCheck 11 thetaAboveCell00003221 = true := by + have h : (thetaAboveCell00003221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003221 h +theorem e24KC2ThetaAboveLeaf00003222 : + adaptiveCoverCheck 11 thetaAboveCell00003222 = true := by + have h : (thetaAboveCell00003222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003222 h +theorem e24KC2ThetaAboveLeaf00003223 : + adaptiveCoverCheck 11 thetaAboveCell00003223 = true := by + have h : (thetaAboveCell00003223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003223 h +theorem e24KC2ThetaAboveLeaf00003230 : + adaptiveCoverCheck 11 thetaAboveCell00003230 = true := by + have h : (thetaAboveCell00003230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003230 h +theorem e24KC2ThetaAboveLeaf00003231 : + adaptiveCoverCheck 11 thetaAboveCell00003231 = true := by + have h : (thetaAboveCell00003231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003231 h +theorem e24KC2ThetaAboveLeaf00003232 : + adaptiveCoverCheck 11 thetaAboveCell00003232 = true := by + have h : (thetaAboveCell00003232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003232 h +theorem e24KC2ThetaAboveLeaf00003233 : + adaptiveCoverCheck 11 thetaAboveCell00003233 = true := by + have h : (thetaAboveCell00003233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003233 h +theorem e24KC2ThetaAboveLeaf0000330000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00003300)) = true := by + have h : ((childLL (childLL thetaAboveCell00003300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00003300)) h +theorem e24KC2ThetaAboveLeaf0000330001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00003300)) = true := by + have h : ((childLH (childLL thetaAboveCell00003300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00003300)) h +theorem e24KC2ThetaAboveLeaf0000330010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00003300)) = true := by + have h : ((childLL (childLH thetaAboveCell00003300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00003300)) h +theorem e24KC2ThetaAboveLeaf0000330011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00003300)) = true := by + have h : ((childLH (childLH thetaAboveCell00003300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00003300)) h +theorem e24KC2ThetaAboveLeaf0000330100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00003301)) = true := by + have h : ((childLL (childLL thetaAboveCell00003301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00003301)) h +theorem e24KC2ThetaAboveLeaf0000330101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00003301)) = true := by + have h : ((childLH (childLL thetaAboveCell00003301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00003301)) h +theorem e24KC2ThetaAboveLeaf0000330110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00003301)) = true := by + have h : ((childLL (childLH thetaAboveCell00003301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00003301)) h +theorem e24KC2ThetaAboveLeaf0000330111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00003301)) = true := by + have h : ((childLH (childLH thetaAboveCell00003301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00003301)) h +theorem e24KC2ThetaAboveLeaf0000330200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00003302)) = true := by + have h : ((childLL (childLL thetaAboveCell00003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00003302)) h +theorem e24KC2ThetaAboveLeaf0000330201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00003302)) = true := by + have h : ((childLH (childLL thetaAboveCell00003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00003302)) h +theorem e24KC2ThetaAboveLeaf0000330202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00003302)) = true := by + have h : ((childHL (childLL thetaAboveCell00003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00003302)) h +theorem e24KC2ThetaAboveLeaf0000330203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00003302)) = true := by + have h : ((childHH (childLL thetaAboveCell00003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00003302)) h +theorem e24KC2ThetaAboveLeaf0000330210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00003302)) = true := by + have h : ((childLL (childLH thetaAboveCell00003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00003302)) h +theorem e24KC2ThetaAboveLeaf0000330211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00003302)) = true := by + have h : ((childLH (childLH thetaAboveCell00003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00003302)) h +theorem e24KC2ThetaAboveLeaf0000330212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00003302)) = true := by + have h : ((childHL (childLH thetaAboveCell00003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00003302)) h +theorem e24KC2ThetaAboveLeaf0000330213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00003302)) = true := by + have h : ((childHH (childLH thetaAboveCell00003302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00003302)) h +theorem e24KC2ThetaAboveLeaf000033022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003302) = true := by + have h : ((childHL thetaAboveCell00003302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00003302) h +theorem e24KC2ThetaAboveLeaf000033023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003302) = true := by + have h : ((childHH thetaAboveCell00003302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00003302) h +theorem e24KC2ThetaAboveLeaf0000330300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00003303)) = true := by + have h : ((childLL (childLL thetaAboveCell00003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00003303)) h +theorem e24KC2ThetaAboveLeaf0000330301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00003303)) = true := by + have h : ((childLH (childLL thetaAboveCell00003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00003303)) h +theorem e24KC2ThetaAboveLeaf0000330302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00003303)) = true := by + have h : ((childHL (childLL thetaAboveCell00003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00003303)) h +theorem e24KC2ThetaAboveLeaf0000330303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00003303)) = true := by + have h : ((childHH (childLL thetaAboveCell00003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00003303)) h +theorem e24KC2ThetaAboveLeaf0000330310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00003303)) = true := by + have h : ((childLL (childLH thetaAboveCell00003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00003303)) h +theorem e24KC2ThetaAboveLeaf0000330311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00003303)) = true := by + have h : ((childLH (childLH thetaAboveCell00003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00003303)) h +theorem e24KC2ThetaAboveLeaf0000330312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00003303)) = true := by + have h : ((childHL (childLH thetaAboveCell00003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00003303)) h +theorem e24KC2ThetaAboveLeaf0000330313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00003303)) = true := by + have h : ((childHH (childLH thetaAboveCell00003303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00003303)) h +theorem e24KC2ThetaAboveLeaf000033032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003303) = true := by + have h : ((childHL thetaAboveCell00003303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00003303) h +theorem e24KC2ThetaAboveLeaf000033033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003303) = true := by + have h : ((childHH thetaAboveCell00003303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00003303) h +theorem e24KC2ThetaAboveLeaf0000331000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00003310)) = true := by + have h : ((childLL (childLL thetaAboveCell00003310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00003310)) h +theorem e24KC2ThetaAboveLeaf0000331001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00003310)) = true := by + have h : ((childLH (childLL thetaAboveCell00003310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00003310)) h +theorem e24KC2ThetaAboveLeaf0000331010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00003310)) = true := by + have h : ((childLL (childLH thetaAboveCell00003310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00003310)) h +theorem e24KC2ThetaAboveLeaf0000331011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00003310)) = true := by + have h : ((childLH (childLH thetaAboveCell00003310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00003310)) h +theorem e24KC2ThetaAboveLeaf0000331100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00003311)) = true := by + have h : ((childLL (childLL thetaAboveCell00003311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00003311)) h +theorem e24KC2ThetaAboveLeaf0000331101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00003311)) = true := by + have h : ((childLH (childLL thetaAboveCell00003311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00003311)) h +theorem e24KC2ThetaAboveLeaf0000331110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00003311)) = true := by + have h : ((childLL (childLH thetaAboveCell00003311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00003311)) h +theorem e24KC2ThetaAboveLeaf0000331111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00003311)) = true := by + have h : ((childLH (childLH thetaAboveCell00003311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00003311)) h +theorem e24KC2ThetaAboveLeaf0000331200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00003312)) = true := by + have h : ((childLL (childLL thetaAboveCell00003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00003312)) h +theorem e24KC2ThetaAboveLeaf0000331201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00003312)) = true := by + have h : ((childLH (childLL thetaAboveCell00003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00003312)) h +theorem e24KC2ThetaAboveLeaf0000331202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00003312)) = true := by + have h : ((childHL (childLL thetaAboveCell00003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00003312)) h +theorem e24KC2ThetaAboveLeaf0000331203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00003312)) = true := by + have h : ((childHH (childLL thetaAboveCell00003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00003312)) h +theorem e24KC2ThetaAboveLeaf0000331210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00003312)) = true := by + have h : ((childLL (childLH thetaAboveCell00003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00003312)) h +theorem e24KC2ThetaAboveLeaf0000331211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00003312)) = true := by + have h : ((childLH (childLH thetaAboveCell00003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00003312)) h +theorem e24KC2ThetaAboveLeaf0000331212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00003312)) = true := by + have h : ((childHL (childLH thetaAboveCell00003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00003312)) h +theorem e24KC2ThetaAboveLeaf0000331213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00003312)) = true := by + have h : ((childHH (childLH thetaAboveCell00003312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00003312)) h +theorem e24KC2ThetaAboveLeaf000033122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003312) = true := by + have h : ((childHL thetaAboveCell00003312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00003312) h +theorem e24KC2ThetaAboveLeaf000033123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003312) = true := by + have h : ((childHH thetaAboveCell00003312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00003312) h +theorem e24KC2ThetaAboveLeaf0000331300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00003313)) = true := by + have h : ((childLL (childLL thetaAboveCell00003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00003313)) h +theorem e24KC2ThetaAboveLeaf0000331301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00003313)) = true := by + have h : ((childLH (childLL thetaAboveCell00003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00003313)) h +theorem e24KC2ThetaAboveLeaf0000331302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00003313)) = true := by + have h : ((childHL (childLL thetaAboveCell00003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00003313)) h +theorem e24KC2ThetaAboveLeaf0000331303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00003313)) = true := by + have h : ((childHH (childLL thetaAboveCell00003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00003313)) h +theorem e24KC2ThetaAboveLeaf0000331310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00003313)) = true := by + have h : ((childLL (childLH thetaAboveCell00003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00003313)) h +theorem e24KC2ThetaAboveLeaf0000331311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00003313)) = true := by + have h : ((childLH (childLH thetaAboveCell00003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00003313)) h +theorem e24KC2ThetaAboveLeaf0000331312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00003313)) = true := by + have h : ((childHL (childLH thetaAboveCell00003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00003313)) h +theorem e24KC2ThetaAboveLeaf0000331313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00003313)) = true := by + have h : ((childHH (childLH thetaAboveCell00003313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00003313)) h +theorem e24KC2ThetaAboveLeaf000033132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003313) = true := by + have h : ((childHL thetaAboveCell00003313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00003313) h +theorem e24KC2ThetaAboveLeaf000033133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003313) = true := by + have h : ((childHH thetaAboveCell00003313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00003313) h +theorem e24KC2ThetaAboveLeaf00003320 : + adaptiveCoverCheck 11 thetaAboveCell00003320 = true := by + have h : (thetaAboveCell00003320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003320 h +theorem e24KC2ThetaAboveLeaf00003321 : + adaptiveCoverCheck 11 thetaAboveCell00003321 = true := by + have h : (thetaAboveCell00003321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003321 h +theorem e24KC2ThetaAboveLeaf00003322 : + adaptiveCoverCheck 11 thetaAboveCell00003322 = true := by + have h : (thetaAboveCell00003322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003322 h +theorem e24KC2ThetaAboveLeaf00003323 : + adaptiveCoverCheck 11 thetaAboveCell00003323 = true := by + have h : (thetaAboveCell00003323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003323 h +theorem e24KC2ThetaAboveLeaf00003330 : + adaptiveCoverCheck 11 thetaAboveCell00003330 = true := by + have h : (thetaAboveCell00003330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003330 h +theorem e24KC2ThetaAboveLeaf00003331 : + adaptiveCoverCheck 11 thetaAboveCell00003331 = true := by + have h : (thetaAboveCell00003331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003331 h +theorem e24KC2ThetaAboveLeaf00003332 : + adaptiveCoverCheck 11 thetaAboveCell00003332 = true := by + have h : (thetaAboveCell00003332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003332 h +theorem e24KC2ThetaAboveLeaf00003333 : + adaptiveCoverCheck 11 thetaAboveCell00003333 = true := by + have h : (thetaAboveCell00003333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00003333 h +theorem e24KC2ThetaAboveLeaf000100 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell0001)) = true := by + have h : ((childLL (childLL thetaAboveCell0001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLL thetaAboveCell0001)) h +theorem e24KC2ThetaAboveLeaf000101 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell0001)) = true := by + have h : ((childLH (childLL thetaAboveCell0001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLL thetaAboveCell0001)) h +theorem e24KC2ThetaAboveLeaf000102 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell0001)) = true := by + have h : ((childHL (childLL thetaAboveCell0001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell0001)) h +theorem e24KC2ThetaAboveLeaf000103 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell0001)) = true := by + have h : ((childHH (childLL thetaAboveCell0001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell0001)) h +theorem e24KC2ThetaAboveLeaf000110 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell0001)) = true := by + have h : ((childLL (childLH thetaAboveCell0001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL (childLH thetaAboveCell0001)) h +theorem e24KC2ThetaAboveLeaf000111 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell0001)) = true := by + have h : ((childLH (childLH thetaAboveCell0001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH (childLH thetaAboveCell0001)) h +theorem e24KC2ThetaAboveLeaf000112 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell0001)) = true := by + have h : ((childHL (childLH thetaAboveCell0001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell0001)) h +theorem e24KC2ThetaAboveLeaf000113 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell0001)) = true := by + have h : ((childHH (childLH thetaAboveCell0001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell0001)) h +theorem e24KC2ThetaAboveLeaf0001200 : + adaptiveCoverCheck 12 (childLL (childLL (childHL thetaAboveCell0001))) = true := by + have h : ((childLL (childLL (childHL thetaAboveCell0001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHL thetaAboveCell0001))) h +theorem e24KC2ThetaAboveLeaf0001201 : + adaptiveCoverCheck 12 (childLH (childLL (childHL thetaAboveCell0001))) = true := by + have h : ((childLH (childLL (childHL thetaAboveCell0001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHL thetaAboveCell0001))) h +theorem e24KC2ThetaAboveLeaf00012020 : + adaptiveCoverCheck 11 thetaAboveCell00012020 = true := by + have h : (thetaAboveCell00012020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012020 h +theorem e24KC2ThetaAboveLeaf00012021 : + adaptiveCoverCheck 11 thetaAboveCell00012021 = true := by + have h : (thetaAboveCell00012021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012021 h +theorem e24KC2ThetaAboveLeaf000120220 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012022) = true := by + have h : ((childLL thetaAboveCell00012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00012022) h +theorem e24KC2ThetaAboveLeaf000120221 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012022) = true := by + have h : ((childLH thetaAboveCell00012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00012022) h +theorem e24KC2ThetaAboveLeaf000120222 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012022) = true := by + have h : ((childHL thetaAboveCell00012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00012022) h +theorem e24KC2ThetaAboveLeaf000120223 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012022) = true := by + have h : ((childHH thetaAboveCell00012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00012022) h +theorem e24KC2ThetaAboveLeaf000120230 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012023) = true := by + have h : ((childLL thetaAboveCell00012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00012023) h +theorem e24KC2ThetaAboveLeaf000120231 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012023) = true := by + have h : ((childLH thetaAboveCell00012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00012023) h +theorem e24KC2ThetaAboveLeaf000120232 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012023) = true := by + have h : ((childHL thetaAboveCell00012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00012023) h +theorem e24KC2ThetaAboveLeaf000120233 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012023) = true := by + have h : ((childHH thetaAboveCell00012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00012023) h +theorem e24KC2ThetaAboveLeaf00012030 : + adaptiveCoverCheck 11 thetaAboveCell00012030 = true := by + have h : (thetaAboveCell00012030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012030 h +theorem e24KC2ThetaAboveLeaf00012031 : + adaptiveCoverCheck 11 thetaAboveCell00012031 = true := by + have h : (thetaAboveCell00012031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012031 h +theorem e24KC2ThetaAboveLeaf000120320 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012032) = true := by + have h : ((childLL thetaAboveCell00012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00012032) h +theorem e24KC2ThetaAboveLeaf000120321 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012032) = true := by + have h : ((childLH thetaAboveCell00012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00012032) h +theorem e24KC2ThetaAboveLeaf000120322 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012032) = true := by + have h : ((childHL thetaAboveCell00012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00012032) h +theorem e24KC2ThetaAboveLeaf000120323 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012032) = true := by + have h : ((childHH thetaAboveCell00012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00012032) h +theorem e24KC2ThetaAboveLeaf000120330 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012033) = true := by + have h : ((childLL thetaAboveCell00012033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00012033) h +theorem e24KC2ThetaAboveLeaf000120331 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012033) = true := by + have h : ((childLH thetaAboveCell00012033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00012033) h +theorem e24KC2ThetaAboveLeaf000120332 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012033) = true := by + have h : ((childHL thetaAboveCell00012033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00012033) h +theorem e24KC2ThetaAboveLeaf000120333 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012033) = true := by + have h : ((childHH thetaAboveCell00012033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00012033) h +theorem e24KC2ThetaAboveLeaf0001210 : + adaptiveCoverCheck 12 (childLL (childLH (childHL thetaAboveCell0001))) = true := by + have h : ((childLL (childLH (childHL thetaAboveCell0001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHL thetaAboveCell0001))) h +theorem e24KC2ThetaAboveLeaf0001211 : + adaptiveCoverCheck 12 (childLH (childLH (childHL thetaAboveCell0001))) = true := by + have h : ((childLH (childLH (childHL thetaAboveCell0001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHL thetaAboveCell0001))) h +theorem e24KC2ThetaAboveLeaf00012120 : + adaptiveCoverCheck 11 thetaAboveCell00012120 = true := by + have h : (thetaAboveCell00012120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012120 h +theorem e24KC2ThetaAboveLeaf00012121 : + adaptiveCoverCheck 11 thetaAboveCell00012121 = true := by + have h : (thetaAboveCell00012121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012121 h +theorem e24KC2ThetaAboveLeaf000121220 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012122) = true := by + have h : ((childLL thetaAboveCell00012122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00012122) h +theorem e24KC2ThetaAboveLeaf000121221 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012122) = true := by + have h : ((childLH thetaAboveCell00012122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00012122) h +theorem e24KC2ThetaAboveLeaf000121222 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012122) = true := by + have h : ((childHL thetaAboveCell00012122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00012122) h +theorem e24KC2ThetaAboveLeaf000121223 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012122) = true := by + have h : ((childHH thetaAboveCell00012122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00012122) h +theorem e24KC2ThetaAboveLeaf000121230 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012123) = true := by + have h : ((childLL thetaAboveCell00012123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00012123) h +theorem e24KC2ThetaAboveLeaf000121231 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012123) = true := by + have h : ((childLH thetaAboveCell00012123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00012123) h +theorem e24KC2ThetaAboveLeaf000121232 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012123) = true := by + have h : ((childHL thetaAboveCell00012123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00012123) h +theorem e24KC2ThetaAboveLeaf000121233 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012123) = true := by + have h : ((childHH thetaAboveCell00012123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00012123) h +theorem e24KC2ThetaAboveLeaf00012130 : + adaptiveCoverCheck 11 thetaAboveCell00012130 = true := by + have h : (thetaAboveCell00012130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012130 h +theorem e24KC2ThetaAboveLeaf00012131 : + adaptiveCoverCheck 11 thetaAboveCell00012131 = true := by + have h : (thetaAboveCell00012131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012131 h +theorem e24KC2ThetaAboveLeaf000121320 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012132) = true := by + have h : ((childLL thetaAboveCell00012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00012132) h +theorem e24KC2ThetaAboveLeaf000121321 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012132) = true := by + have h : ((childLH thetaAboveCell00012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00012132) h +theorem e24KC2ThetaAboveLeaf000121322 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012132) = true := by + have h : ((childHL thetaAboveCell00012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00012132) h +theorem e24KC2ThetaAboveLeaf000121323 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012132) = true := by + have h : ((childHH thetaAboveCell00012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00012132) h +theorem e24KC2ThetaAboveLeaf000121330 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012133) = true := by + have h : ((childLL thetaAboveCell00012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00012133) h +theorem e24KC2ThetaAboveLeaf000121331 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012133) = true := by + have h : ((childLH thetaAboveCell00012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00012133) h +theorem e24KC2ThetaAboveLeaf000121332 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012133) = true := by + have h : ((childHL thetaAboveCell00012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00012133) h +theorem e24KC2ThetaAboveLeaf000121333 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012133) = true := by + have h : ((childHH thetaAboveCell00012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00012133) h +theorem e24KC2ThetaAboveLeaf0001220000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00012200)) = true := by + have h : ((childLL (childLL thetaAboveCell00012200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00012200)) h +theorem e24KC2ThetaAboveLeaf0001220001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00012200)) = true := by + have h : ((childLH (childLL thetaAboveCell00012200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00012200)) h +theorem e24KC2ThetaAboveLeaf0001220010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00012200)) = true := by + have h : ((childLL (childLH thetaAboveCell00012200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00012200)) h +theorem e24KC2ThetaAboveLeaf0001220011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00012200)) = true := by + have h : ((childLH (childLH thetaAboveCell00012200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00012200)) h +theorem e24KC2ThetaAboveLeaf0001220100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00012201)) = true := by + have h : ((childLL (childLL thetaAboveCell00012201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00012201)) h +theorem e24KC2ThetaAboveLeaf0001220101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00012201)) = true := by + have h : ((childLH (childLL thetaAboveCell00012201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00012201)) h +theorem e24KC2ThetaAboveLeaf0001220110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00012201)) = true := by + have h : ((childLL (childLH thetaAboveCell00012201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00012201)) h +theorem e24KC2ThetaAboveLeaf0001220111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00012201)) = true := by + have h : ((childLH (childLH thetaAboveCell00012201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00012201)) h +theorem e24KC2ThetaAboveLeaf0001220200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00012202)) = true := by + have h : ((childLL (childLL thetaAboveCell00012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00012202)) h +theorem e24KC2ThetaAboveLeaf0001220201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00012202)) = true := by + have h : ((childLH (childLL thetaAboveCell00012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00012202)) h +theorem e24KC2ThetaAboveLeaf0001220202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00012202)) = true := by + have h : ((childHL (childLL thetaAboveCell00012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00012202)) h +theorem e24KC2ThetaAboveLeaf0001220203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00012202)) = true := by + have h : ((childHH (childLL thetaAboveCell00012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00012202)) h +theorem e24KC2ThetaAboveLeaf0001220210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00012202)) = true := by + have h : ((childLL (childLH thetaAboveCell00012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00012202)) h +theorem e24KC2ThetaAboveLeaf0001220211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00012202)) = true := by + have h : ((childLH (childLH thetaAboveCell00012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00012202)) h +theorem e24KC2ThetaAboveLeaf0001220212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00012202)) = true := by + have h : ((childHL (childLH thetaAboveCell00012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00012202)) h +theorem e24KC2ThetaAboveLeaf0001220213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00012202)) = true := by + have h : ((childHH (childLH thetaAboveCell00012202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00012202)) h +theorem e24KC2ThetaAboveLeaf000122022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012202) = true := by + have h : ((childHL thetaAboveCell00012202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00012202) h +theorem e24KC2ThetaAboveLeaf000122023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012202) = true := by + have h : ((childHH thetaAboveCell00012202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00012202) h +theorem e24KC2ThetaAboveLeaf0001220300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00012203)) = true := by + have h : ((childLL (childLL thetaAboveCell00012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00012203)) h +theorem e24KC2ThetaAboveLeaf0001220301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00012203)) = true := by + have h : ((childLH (childLL thetaAboveCell00012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00012203)) h +theorem e24KC2ThetaAboveLeaf0001220302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00012203)) = true := by + have h : ((childHL (childLL thetaAboveCell00012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00012203)) h +theorem e24KC2ThetaAboveLeaf0001220303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00012203)) = true := by + have h : ((childHH (childLL thetaAboveCell00012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00012203)) h +theorem e24KC2ThetaAboveLeaf0001220310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00012203)) = true := by + have h : ((childLL (childLH thetaAboveCell00012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00012203)) h +theorem e24KC2ThetaAboveLeaf0001220311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00012203)) = true := by + have h : ((childLH (childLH thetaAboveCell00012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00012203)) h +theorem e24KC2ThetaAboveLeaf0001220312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00012203)) = true := by + have h : ((childHL (childLH thetaAboveCell00012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00012203)) h +theorem e24KC2ThetaAboveLeaf0001220313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00012203)) = true := by + have h : ((childHH (childLH thetaAboveCell00012203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00012203)) h +theorem e24KC2ThetaAboveLeaf000122032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012203) = true := by + have h : ((childHL thetaAboveCell00012203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00012203) h +theorem e24KC2ThetaAboveLeaf000122033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012203) = true := by + have h : ((childHH thetaAboveCell00012203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00012203) h +theorem e24KC2ThetaAboveLeaf0001221000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00012210)) = true := by + have h : ((childLL (childLL thetaAboveCell00012210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00012210)) h +theorem e24KC2ThetaAboveLeaf0001221001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00012210)) = true := by + have h : ((childLH (childLL thetaAboveCell00012210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00012210)) h +theorem e24KC2ThetaAboveLeaf0001221010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00012210)) = true := by + have h : ((childLL (childLH thetaAboveCell00012210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00012210)) h +theorem e24KC2ThetaAboveLeaf0001221011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00012210)) = true := by + have h : ((childLH (childLH thetaAboveCell00012210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00012210)) h +theorem e24KC2ThetaAboveLeaf0001221100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00012211)) = true := by + have h : ((childLL (childLL thetaAboveCell00012211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00012211)) h +theorem e24KC2ThetaAboveLeaf0001221101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00012211)) = true := by + have h : ((childLH (childLL thetaAboveCell00012211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00012211)) h +theorem e24KC2ThetaAboveLeaf0001221110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00012211)) = true := by + have h : ((childLL (childLH thetaAboveCell00012211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00012211)) h +theorem e24KC2ThetaAboveLeaf0001221111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00012211)) = true := by + have h : ((childLH (childLH thetaAboveCell00012211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00012211)) h +theorem e24KC2ThetaAboveLeaf0001221200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00012212)) = true := by + have h : ((childLL (childLL thetaAboveCell00012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00012212)) h +theorem e24KC2ThetaAboveLeaf0001221201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00012212)) = true := by + have h : ((childLH (childLL thetaAboveCell00012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00012212)) h +theorem e24KC2ThetaAboveLeaf0001221202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00012212)) = true := by + have h : ((childHL (childLL thetaAboveCell00012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00012212)) h +theorem e24KC2ThetaAboveLeaf0001221203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00012212)) = true := by + have h : ((childHH (childLL thetaAboveCell00012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00012212)) h +theorem e24KC2ThetaAboveLeaf0001221210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00012212)) = true := by + have h : ((childLL (childLH thetaAboveCell00012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00012212)) h +theorem e24KC2ThetaAboveLeaf0001221211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00012212)) = true := by + have h : ((childLH (childLH thetaAboveCell00012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00012212)) h +theorem e24KC2ThetaAboveLeaf0001221212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00012212)) = true := by + have h : ((childHL (childLH thetaAboveCell00012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00012212)) h +theorem e24KC2ThetaAboveLeaf0001221213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00012212)) = true := by + have h : ((childHH (childLH thetaAboveCell00012212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00012212)) h +theorem e24KC2ThetaAboveLeaf000122122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012212) = true := by + have h : ((childHL thetaAboveCell00012212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00012212) h +theorem e24KC2ThetaAboveLeaf000122123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012212) = true := by + have h : ((childHH thetaAboveCell00012212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00012212) h +theorem e24KC2ThetaAboveLeaf0001221300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00012213)) = true := by + have h : ((childLL (childLL thetaAboveCell00012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00012213)) h +theorem e24KC2ThetaAboveLeaf0001221301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00012213)) = true := by + have h : ((childLH (childLL thetaAboveCell00012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00012213)) h +theorem e24KC2ThetaAboveLeaf0001221302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00012213)) = true := by + have h : ((childHL (childLL thetaAboveCell00012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00012213)) h +theorem e24KC2ThetaAboveLeaf0001221303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00012213)) = true := by + have h : ((childHH (childLL thetaAboveCell00012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00012213)) h +theorem e24KC2ThetaAboveLeaf0001221310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00012213)) = true := by + have h : ((childLL (childLH thetaAboveCell00012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00012213)) h +theorem e24KC2ThetaAboveLeaf0001221311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00012213)) = true := by + have h : ((childLH (childLH thetaAboveCell00012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00012213)) h +theorem e24KC2ThetaAboveLeaf0001221312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00012213)) = true := by + have h : ((childHL (childLH thetaAboveCell00012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00012213)) h +theorem e24KC2ThetaAboveLeaf0001221313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00012213)) = true := by + have h : ((childHH (childLH thetaAboveCell00012213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00012213)) h +theorem e24KC2ThetaAboveLeaf000122132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012213) = true := by + have h : ((childHL thetaAboveCell00012213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00012213) h +theorem e24KC2ThetaAboveLeaf000122133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012213) = true := by + have h : ((childHH thetaAboveCell00012213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00012213) h +theorem e24KC2ThetaAboveLeaf00012220 : + adaptiveCoverCheck 11 thetaAboveCell00012220 = true := by + have h : (thetaAboveCell00012220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012220 h +theorem e24KC2ThetaAboveLeaf00012221 : + adaptiveCoverCheck 11 thetaAboveCell00012221 = true := by + have h : (thetaAboveCell00012221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012221 h +theorem e24KC2ThetaAboveLeaf00012222 : + adaptiveCoverCheck 11 thetaAboveCell00012222 = true := by + have h : (thetaAboveCell00012222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012222 h +theorem e24KC2ThetaAboveLeaf00012223 : + adaptiveCoverCheck 11 thetaAboveCell00012223 = true := by + have h : (thetaAboveCell00012223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012223 h +theorem e24KC2ThetaAboveLeaf00012230 : + adaptiveCoverCheck 11 thetaAboveCell00012230 = true := by + have h : (thetaAboveCell00012230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012230 h +theorem e24KC2ThetaAboveLeaf00012231 : + adaptiveCoverCheck 11 thetaAboveCell00012231 = true := by + have h : (thetaAboveCell00012231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012231 h +theorem e24KC2ThetaAboveLeaf00012232 : + adaptiveCoverCheck 11 thetaAboveCell00012232 = true := by + have h : (thetaAboveCell00012232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012232 h +theorem e24KC2ThetaAboveLeaf00012233 : + adaptiveCoverCheck 11 thetaAboveCell00012233 = true := by + have h : (thetaAboveCell00012233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012233 h +theorem e24KC2ThetaAboveLeaf0001230000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00012300)) = true := by + have h : ((childLL (childLL thetaAboveCell00012300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00012300)) h +theorem e24KC2ThetaAboveLeaf0001230001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00012300)) = true := by + have h : ((childLH (childLL thetaAboveCell00012300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00012300)) h +theorem e24KC2ThetaAboveLeaf0001230010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00012300)) = true := by + have h : ((childLL (childLH thetaAboveCell00012300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00012300)) h +theorem e24KC2ThetaAboveLeaf0001230011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00012300)) = true := by + have h : ((childLH (childLH thetaAboveCell00012300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00012300)) h +theorem e24KC2ThetaAboveLeaf0001230100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00012301)) = true := by + have h : ((childLL (childLL thetaAboveCell00012301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00012301)) h +theorem e24KC2ThetaAboveLeaf0001230101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00012301)) = true := by + have h : ((childLH (childLL thetaAboveCell00012301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00012301)) h +theorem e24KC2ThetaAboveLeaf0001230110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00012301)) = true := by + have h : ((childLL (childLH thetaAboveCell00012301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00012301)) h +theorem e24KC2ThetaAboveLeaf0001230111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00012301)) = true := by + have h : ((childLH (childLH thetaAboveCell00012301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00012301)) h +theorem e24KC2ThetaAboveLeaf0001230200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00012302)) = true := by + have h : ((childLL (childLL thetaAboveCell00012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00012302)) h +theorem e24KC2ThetaAboveLeaf0001230201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00012302)) = true := by + have h : ((childLH (childLL thetaAboveCell00012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00012302)) h +theorem e24KC2ThetaAboveLeaf0001230202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00012302)) = true := by + have h : ((childHL (childLL thetaAboveCell00012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00012302)) h +theorem e24KC2ThetaAboveLeaf0001230203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00012302)) = true := by + have h : ((childHH (childLL thetaAboveCell00012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00012302)) h +theorem e24KC2ThetaAboveLeaf0001230210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00012302)) = true := by + have h : ((childLL (childLH thetaAboveCell00012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00012302)) h +theorem e24KC2ThetaAboveLeaf0001230211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00012302)) = true := by + have h : ((childLH (childLH thetaAboveCell00012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00012302)) h +theorem e24KC2ThetaAboveLeaf0001230212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00012302)) = true := by + have h : ((childHL (childLH thetaAboveCell00012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00012302)) h +theorem e24KC2ThetaAboveLeaf0001230213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00012302)) = true := by + have h : ((childHH (childLH thetaAboveCell00012302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00012302)) h +theorem e24KC2ThetaAboveLeaf000123022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012302) = true := by + have h : ((childHL thetaAboveCell00012302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00012302) h +theorem e24KC2ThetaAboveLeaf000123023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012302) = true := by + have h : ((childHH thetaAboveCell00012302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00012302) h +theorem e24KC2ThetaAboveLeaf0001230300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00012303)) = true := by + have h : ((childLL (childLL thetaAboveCell00012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00012303)) h +theorem e24KC2ThetaAboveLeaf0001230301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00012303)) = true := by + have h : ((childLH (childLL thetaAboveCell00012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00012303)) h +theorem e24KC2ThetaAboveLeaf0001230302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00012303)) = true := by + have h : ((childHL (childLL thetaAboveCell00012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00012303)) h +theorem e24KC2ThetaAboveLeaf0001230303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00012303)) = true := by + have h : ((childHH (childLL thetaAboveCell00012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00012303)) h +theorem e24KC2ThetaAboveLeaf0001230310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00012303)) = true := by + have h : ((childLL (childLH thetaAboveCell00012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00012303)) h +theorem e24KC2ThetaAboveLeaf0001230311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00012303)) = true := by + have h : ((childLH (childLH thetaAboveCell00012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00012303)) h +theorem e24KC2ThetaAboveLeaf0001230312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00012303)) = true := by + have h : ((childHL (childLH thetaAboveCell00012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00012303)) h +theorem e24KC2ThetaAboveLeaf0001230313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00012303)) = true := by + have h : ((childHH (childLH thetaAboveCell00012303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00012303)) h +theorem e24KC2ThetaAboveLeaf000123032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012303) = true := by + have h : ((childHL thetaAboveCell00012303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00012303) h +theorem e24KC2ThetaAboveLeaf000123033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012303) = true := by + have h : ((childHH thetaAboveCell00012303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00012303) h +theorem e24KC2ThetaAboveLeaf0001231000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00012310)) = true := by + have h : ((childLL (childLL thetaAboveCell00012310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00012310)) h +theorem e24KC2ThetaAboveLeaf0001231001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00012310)) = true := by + have h : ((childLH (childLL thetaAboveCell00012310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00012310)) h +theorem e24KC2ThetaAboveLeaf0001231003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00012310)) = true := by + have h : ((childHH (childLL thetaAboveCell00012310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00012310)) h +theorem e24KC2ThetaAboveLeaf0001231010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00012310)) = true := by + have h : ((childLL (childLH thetaAboveCell00012310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00012310)) h +theorem e24KC2ThetaAboveLeaf0001231011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00012310)) = true := by + have h : ((childLH (childLH thetaAboveCell00012310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00012310)) h +theorem e24KC2ThetaAboveLeaf0001231012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00012310)) = true := by + have h : ((childHL (childLH thetaAboveCell00012310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00012310)) h +theorem e24KC2ThetaAboveLeaf0001231013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00012310)) = true := by + have h : ((childHH (childLH thetaAboveCell00012310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00012310)) h +theorem e24KC2ThetaAboveLeaf0001231100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00012311)) = true := by + have h : ((childLL (childLL thetaAboveCell00012311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00012311)) h +theorem e24KC2ThetaAboveLeaf0001231101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00012311)) = true := by + have h : ((childLH (childLL thetaAboveCell00012311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00012311)) h +theorem e24KC2ThetaAboveLeaf0001231102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00012311)) = true := by + have h : ((childHL (childLL thetaAboveCell00012311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00012311)) h +theorem e24KC2ThetaAboveLeaf0001231103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00012311)) = true := by + have h : ((childHH (childLL thetaAboveCell00012311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00012311)) h +theorem e24KC2ThetaAboveLeaf0001231110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00012311)) = true := by + have h : ((childLL (childLH thetaAboveCell00012311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00012311)) h +theorem e24KC2ThetaAboveLeaf0001231111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00012311)) = true := by + have h : ((childLH (childLH thetaAboveCell00012311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00012311)) h +theorem e24KC2ThetaAboveLeaf0001231112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00012311)) = true := by + have h : ((childHL (childLH thetaAboveCell00012311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00012311)) h +theorem e24KC2ThetaAboveLeaf0001231113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00012311)) = true := by + have h : ((childHH (childLH thetaAboveCell00012311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00012311)) h +theorem e24KC2ThetaAboveLeaf0001231200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00012312)) = true := by + have h : ((childLL (childLL thetaAboveCell00012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00012312)) h +theorem e24KC2ThetaAboveLeaf0001231201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00012312)) = true := by + have h : ((childLH (childLL thetaAboveCell00012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00012312)) h +theorem e24KC2ThetaAboveLeaf0001231202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00012312)) = true := by + have h : ((childHL (childLL thetaAboveCell00012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00012312)) h +theorem e24KC2ThetaAboveLeaf0001231203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00012312)) = true := by + have h : ((childHH (childLL thetaAboveCell00012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00012312)) h +theorem e24KC2ThetaAboveLeaf0001231210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00012312)) = true := by + have h : ((childLL (childLH thetaAboveCell00012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00012312)) h +theorem e24KC2ThetaAboveLeaf0001231211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00012312)) = true := by + have h : ((childLH (childLH thetaAboveCell00012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00012312)) h +theorem e24KC2ThetaAboveLeaf0001231212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00012312)) = true := by + have h : ((childHL (childLH thetaAboveCell00012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00012312)) h +theorem e24KC2ThetaAboveLeaf0001231213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00012312)) = true := by + have h : ((childHH (childLH thetaAboveCell00012312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00012312)) h +theorem e24KC2ThetaAboveLeaf000123122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012312) = true := by + have h : ((childHL thetaAboveCell00012312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00012312) h +theorem e24KC2ThetaAboveLeaf000123123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012312) = true := by + have h : ((childHH thetaAboveCell00012312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00012312) h +theorem e24KC2ThetaAboveLeaf0001231300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00012313)) = true := by + have h : ((childLL (childLL thetaAboveCell00012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00012313)) h +theorem e24KC2ThetaAboveLeaf0001231301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00012313)) = true := by + have h : ((childLH (childLL thetaAboveCell00012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00012313)) h +theorem e24KC2ThetaAboveLeaf0001231302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00012313)) = true := by + have h : ((childHL (childLL thetaAboveCell00012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00012313)) h +theorem e24KC2ThetaAboveLeaf0001231303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00012313)) = true := by + have h : ((childHH (childLL thetaAboveCell00012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00012313)) h +theorem e24KC2ThetaAboveLeaf0001231310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00012313)) = true := by + have h : ((childLL (childLH thetaAboveCell00012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00012313)) h +theorem e24KC2ThetaAboveLeaf0001231311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00012313)) = true := by + have h : ((childLH (childLH thetaAboveCell00012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00012313)) h +theorem e24KC2ThetaAboveLeaf0001231312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00012313)) = true := by + have h : ((childHL (childLH thetaAboveCell00012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00012313)) h +theorem e24KC2ThetaAboveLeaf0001231313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00012313)) = true := by + have h : ((childHH (childLH thetaAboveCell00012313))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00012313)) h +theorem e24KC2ThetaAboveLeaf000123132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012313) = true := by + have h : ((childHL thetaAboveCell00012313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00012313) h +theorem e24KC2ThetaAboveLeaf000123133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012313) = true := by + have h : ((childHH thetaAboveCell00012313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00012313) h +theorem e24KC2ThetaAboveLeaf00012320 : + adaptiveCoverCheck 11 thetaAboveCell00012320 = true := by + have h : (thetaAboveCell00012320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012320 h +theorem e24KC2ThetaAboveLeaf00012321 : + adaptiveCoverCheck 11 thetaAboveCell00012321 = true := by + have h : (thetaAboveCell00012321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012321 h +theorem e24KC2ThetaAboveLeaf00012322 : + adaptiveCoverCheck 11 thetaAboveCell00012322 = true := by + have h : (thetaAboveCell00012322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012322 h +theorem e24KC2ThetaAboveLeaf00012323 : + adaptiveCoverCheck 11 thetaAboveCell00012323 = true := by + have h : (thetaAboveCell00012323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012323 h +theorem e24KC2ThetaAboveLeaf00012330 : + adaptiveCoverCheck 11 thetaAboveCell00012330 = true := by + have h : (thetaAboveCell00012330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012330 h +theorem e24KC2ThetaAboveLeaf00012331 : + adaptiveCoverCheck 11 thetaAboveCell00012331 = true := by + have h : (thetaAboveCell00012331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012331 h +theorem e24KC2ThetaAboveLeaf00012332 : + adaptiveCoverCheck 11 thetaAboveCell00012332 = true := by + have h : (thetaAboveCell00012332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012332 h +theorem e24KC2ThetaAboveLeaf00012333 : + adaptiveCoverCheck 11 thetaAboveCell00012333 = true := by + have h : (thetaAboveCell00012333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00012333 h +theorem e24KC2ThetaAboveLeaf0001300 : + adaptiveCoverCheck 12 (childLL (childLL (childHH thetaAboveCell0001))) = true := by + have h : ((childLL (childLL (childHH thetaAboveCell0001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHH thetaAboveCell0001))) h +theorem e24KC2ThetaAboveLeaf0001301 : + adaptiveCoverCheck 12 (childLH (childLL (childHH thetaAboveCell0001))) = true := by + have h : ((childLH (childLL (childHH thetaAboveCell0001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHH thetaAboveCell0001))) h +theorem e24KC2ThetaAboveLeaf00013020 : + adaptiveCoverCheck 11 thetaAboveCell00013020 = true := by + have h : (thetaAboveCell00013020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013020 h +theorem e24KC2ThetaAboveLeaf00013021 : + adaptiveCoverCheck 11 thetaAboveCell00013021 = true := by + have h : (thetaAboveCell00013021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013021 h +theorem e24KC2ThetaAboveLeaf000130220 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013022) = true := by + have h : ((childLL thetaAboveCell00013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00013022) h +theorem e24KC2ThetaAboveLeaf000130221 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013022) = true := by + have h : ((childLH thetaAboveCell00013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00013022) h +theorem e24KC2ThetaAboveLeaf000130222 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013022) = true := by + have h : ((childHL thetaAboveCell00013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00013022) h +theorem e24KC2ThetaAboveLeaf000130223 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013022) = true := by + have h : ((childHH thetaAboveCell00013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00013022) h +theorem e24KC2ThetaAboveLeaf000130230 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013023) = true := by + have h : ((childLL thetaAboveCell00013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00013023) h +theorem e24KC2ThetaAboveLeaf000130231 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013023) = true := by + have h : ((childLH thetaAboveCell00013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00013023) h +theorem e24KC2ThetaAboveLeaf000130232 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013023) = true := by + have h : ((childHL thetaAboveCell00013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00013023) h +theorem e24KC2ThetaAboveLeaf000130233 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013023) = true := by + have h : ((childHH thetaAboveCell00013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00013023) h +theorem e24KC2ThetaAboveLeaf00013030 : + adaptiveCoverCheck 11 thetaAboveCell00013030 = true := by + have h : (thetaAboveCell00013030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013030 h +theorem e24KC2ThetaAboveLeaf00013031 : + adaptiveCoverCheck 11 thetaAboveCell00013031 = true := by + have h : (thetaAboveCell00013031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013031 h +theorem e24KC2ThetaAboveLeaf000130320 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013032) = true := by + have h : ((childLL thetaAboveCell00013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00013032) h +theorem e24KC2ThetaAboveLeaf000130321 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013032) = true := by + have h : ((childLH thetaAboveCell00013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00013032) h +theorem e24KC2ThetaAboveLeaf000130322 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013032) = true := by + have h : ((childHL thetaAboveCell00013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00013032) h +theorem e24KC2ThetaAboveLeaf000130323 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013032) = true := by + have h : ((childHH thetaAboveCell00013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00013032) h +theorem e24KC2ThetaAboveLeaf000130330 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013033) = true := by + have h : ((childLL thetaAboveCell00013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00013033) h +theorem e24KC2ThetaAboveLeaf000130331 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013033) = true := by + have h : ((childLH thetaAboveCell00013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00013033) h +theorem e24KC2ThetaAboveLeaf000130332 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013033) = true := by + have h : ((childHL thetaAboveCell00013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00013033) h +theorem e24KC2ThetaAboveLeaf000130333 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013033) = true := by + have h : ((childHH thetaAboveCell00013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00013033) h +theorem e24KC2ThetaAboveLeaf0001310 : + adaptiveCoverCheck 12 (childLL (childLH (childHH thetaAboveCell0001))) = true := by + have h : ((childLL (childLH (childHH thetaAboveCell0001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHH thetaAboveCell0001))) h +theorem e24KC2ThetaAboveLeaf0001311 : + adaptiveCoverCheck 12 (childLH (childLH (childHH thetaAboveCell0001))) = true := by + have h : ((childLH (childLH (childHH thetaAboveCell0001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHH thetaAboveCell0001))) h +theorem e24KC2ThetaAboveLeaf00013120 : + adaptiveCoverCheck 11 thetaAboveCell00013120 = true := by + have h : (thetaAboveCell00013120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013120 h +theorem e24KC2ThetaAboveLeaf00013121 : + adaptiveCoverCheck 11 thetaAboveCell00013121 = true := by + have h : (thetaAboveCell00013121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013121 h +theorem e24KC2ThetaAboveLeaf000131220 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013122) = true := by + have h : ((childLL thetaAboveCell00013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00013122) h +theorem e24KC2ThetaAboveLeaf000131221 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013122) = true := by + have h : ((childLH thetaAboveCell00013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00013122) h +theorem e24KC2ThetaAboveLeaf000131222 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013122) = true := by + have h : ((childHL thetaAboveCell00013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00013122) h +theorem e24KC2ThetaAboveLeaf000131223 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013122) = true := by + have h : ((childHH thetaAboveCell00013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00013122) h +theorem e24KC2ThetaAboveLeaf000131230 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013123) = true := by + have h : ((childLL thetaAboveCell00013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00013123) h +theorem e24KC2ThetaAboveLeaf000131231 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013123) = true := by + have h : ((childLH thetaAboveCell00013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00013123) h +theorem e24KC2ThetaAboveLeaf000131232 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013123) = true := by + have h : ((childHL thetaAboveCell00013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00013123) h +theorem e24KC2ThetaAboveLeaf000131233 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013123) = true := by + have h : ((childHH thetaAboveCell00013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00013123) h +theorem e24KC2ThetaAboveLeaf00013130 : + adaptiveCoverCheck 11 thetaAboveCell00013130 = true := by + have h : (thetaAboveCell00013130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013130 h +theorem e24KC2ThetaAboveLeaf00013131 : + adaptiveCoverCheck 11 thetaAboveCell00013131 = true := by + have h : (thetaAboveCell00013131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013131 h +theorem e24KC2ThetaAboveLeaf000131320 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013132) = true := by + have h : ((childLL thetaAboveCell00013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00013132) h +theorem e24KC2ThetaAboveLeaf000131321 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013132) = true := by + have h : ((childLH thetaAboveCell00013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00013132) h +theorem e24KC2ThetaAboveLeaf000131322 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013132) = true := by + have h : ((childHL thetaAboveCell00013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00013132) h +theorem e24KC2ThetaAboveLeaf000131323 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013132) = true := by + have h : ((childHH thetaAboveCell00013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00013132) h +theorem e24KC2ThetaAboveLeaf000131330 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013133) = true := by + have h : ((childLL thetaAboveCell00013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell00013133) h +theorem e24KC2ThetaAboveLeaf000131331 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013133) = true := by + have h : ((childLH thetaAboveCell00013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell00013133) h +theorem e24KC2ThetaAboveLeaf000131332 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013133) = true := by + have h : ((childHL thetaAboveCell00013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00013133) h +theorem e24KC2ThetaAboveLeaf000131333 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013133) = true := by + have h : ((childHH thetaAboveCell00013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00013133) h +theorem e24KC2ThetaAboveLeaf0001320000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00013200)) = true := by + have h : ((childLL (childLL thetaAboveCell00013200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00013200)) h +theorem e24KC2ThetaAboveLeaf0001320001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00013200)) = true := by + have h : ((childLH (childLL thetaAboveCell00013200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00013200)) h +theorem e24KC2ThetaAboveLeaf0001320002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00013200)) = true := by + have h : ((childHL (childLL thetaAboveCell00013200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00013200)) h +theorem e24KC2ThetaAboveLeaf0001320003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00013200)) = true := by + have h : ((childHH (childLL thetaAboveCell00013200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00013200)) h +theorem e24KC2ThetaAboveLeaf0001320010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00013200)) = true := by + have h : ((childLL (childLH thetaAboveCell00013200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00013200)) h +theorem e24KC2ThetaAboveLeaf0001320011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00013200)) = true := by + have h : ((childLH (childLH thetaAboveCell00013200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00013200)) h +theorem e24KC2ThetaAboveLeaf0001320012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00013200)) = true := by + have h : ((childHL (childLH thetaAboveCell00013200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00013200)) h +theorem e24KC2ThetaAboveLeaf0001320013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00013200)) = true := by + have h : ((childHH (childLH thetaAboveCell00013200))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00013200)) h +theorem e24KC2ThetaAboveLeaf0001320100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00013201)) = true := by + have h : ((childLL (childLL thetaAboveCell00013201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00013201)) h +theorem e24KC2ThetaAboveLeaf0001320101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00013201)) = true := by + have h : ((childLH (childLL thetaAboveCell00013201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00013201)) h +theorem e24KC2ThetaAboveLeaf0001320102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00013201)) = true := by + have h : ((childHL (childLL thetaAboveCell00013201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00013201)) h +theorem e24KC2ThetaAboveLeaf0001320103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00013201)) = true := by + have h : ((childHH (childLL thetaAboveCell00013201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00013201)) h +theorem e24KC2ThetaAboveLeaf0001320110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00013201)) = true := by + have h : ((childLL (childLH thetaAboveCell00013201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00013201)) h +theorem e24KC2ThetaAboveLeaf0001320111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00013201)) = true := by + have h : ((childLH (childLH thetaAboveCell00013201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00013201)) h +theorem e24KC2ThetaAboveLeaf0001320112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00013201)) = true := by + have h : ((childHL (childLH thetaAboveCell00013201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00013201)) h +theorem e24KC2ThetaAboveLeaf0001320113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00013201)) = true := by + have h : ((childHH (childLH thetaAboveCell00013201))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00013201)) h +theorem e24KC2ThetaAboveLeaf0001320200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00013202)) = true := by + have h : ((childLL (childLL thetaAboveCell00013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00013202)) h +theorem e24KC2ThetaAboveLeaf0001320201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00013202)) = true := by + have h : ((childLH (childLL thetaAboveCell00013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00013202)) h +theorem e24KC2ThetaAboveLeaf0001320202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00013202)) = true := by + have h : ((childHL (childLL thetaAboveCell00013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00013202)) h +theorem e24KC2ThetaAboveLeaf0001320203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00013202)) = true := by + have h : ((childHH (childLL thetaAboveCell00013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00013202)) h +theorem e24KC2ThetaAboveLeaf0001320210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00013202)) = true := by + have h : ((childLL (childLH thetaAboveCell00013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00013202)) h +theorem e24KC2ThetaAboveLeaf0001320211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00013202)) = true := by + have h : ((childLH (childLH thetaAboveCell00013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00013202)) h +theorem e24KC2ThetaAboveLeaf0001320212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00013202)) = true := by + have h : ((childHL (childLH thetaAboveCell00013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00013202)) h +theorem e24KC2ThetaAboveLeaf0001320213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00013202)) = true := by + have h : ((childHH (childLH thetaAboveCell00013202))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00013202)) h +theorem e24KC2ThetaAboveLeaf000132022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013202) = true := by + have h : ((childHL thetaAboveCell00013202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00013202) h +theorem e24KC2ThetaAboveLeaf000132023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013202) = true := by + have h : ((childHH thetaAboveCell00013202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00013202) h +theorem e24KC2ThetaAboveLeaf0001320300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00013203)) = true := by + have h : ((childLL (childLL thetaAboveCell00013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00013203)) h +theorem e24KC2ThetaAboveLeaf0001320301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00013203)) = true := by + have h : ((childLH (childLL thetaAboveCell00013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00013203)) h +theorem e24KC2ThetaAboveLeaf0001320302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00013203)) = true := by + have h : ((childHL (childLL thetaAboveCell00013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00013203)) h +theorem e24KC2ThetaAboveLeaf0001320303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00013203)) = true := by + have h : ((childHH (childLL thetaAboveCell00013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00013203)) h +theorem e24KC2ThetaAboveLeaf0001320310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00013203)) = true := by + have h : ((childLL (childLH thetaAboveCell00013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00013203)) h +theorem e24KC2ThetaAboveLeaf0001320311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00013203)) = true := by + have h : ((childLH (childLH thetaAboveCell00013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00013203)) h +theorem e24KC2ThetaAboveLeaf0001320312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00013203)) = true := by + have h : ((childHL (childLH thetaAboveCell00013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00013203)) h +theorem e24KC2ThetaAboveLeaf0001320313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00013203)) = true := by + have h : ((childHH (childLH thetaAboveCell00013203))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00013203)) h +theorem e24KC2ThetaAboveLeaf000132032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013203) = true := by + have h : ((childHL thetaAboveCell00013203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00013203) h +theorem e24KC2ThetaAboveLeaf000132033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013203) = true := by + have h : ((childHH thetaAboveCell00013203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00013203) h +theorem e24KC2ThetaAboveLeaf0001321000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00013210)) = true := by + have h : ((childLL (childLL thetaAboveCell00013210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00013210)) h +theorem e24KC2ThetaAboveLeaf0001321001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00013210)) = true := by + have h : ((childLH (childLL thetaAboveCell00013210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00013210)) h +theorem e24KC2ThetaAboveLeaf0001321002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00013210)) = true := by + have h : ((childHL (childLL thetaAboveCell00013210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00013210)) h +theorem e24KC2ThetaAboveLeaf0001321003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00013210)) = true := by + have h : ((childHH (childLL thetaAboveCell00013210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00013210)) h +theorem e24KC2ThetaAboveLeaf0001321010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00013210)) = true := by + have h : ((childLL (childLH thetaAboveCell00013210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00013210)) h +theorem e24KC2ThetaAboveLeaf0001321011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00013210)) = true := by + have h : ((childLH (childLH thetaAboveCell00013210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00013210)) h +theorem e24KC2ThetaAboveLeaf0001321012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00013210)) = true := by + have h : ((childHL (childLH thetaAboveCell00013210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00013210)) h +theorem e24KC2ThetaAboveLeaf0001321013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00013210)) = true := by + have h : ((childHH (childLH thetaAboveCell00013210))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00013210)) h +theorem e24KC2ThetaAboveLeaf0001321100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00013211)) = true := by + have h : ((childLL (childLL thetaAboveCell00013211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00013211)) h +theorem e24KC2ThetaAboveLeaf0001321101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00013211)) = true := by + have h : ((childLH (childLL thetaAboveCell00013211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00013211)) h +theorem e24KC2ThetaAboveLeaf0001321102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00013211)) = true := by + have h : ((childHL (childLL thetaAboveCell00013211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00013211)) h +theorem e24KC2ThetaAboveLeaf0001321103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00013211)) = true := by + have h : ((childHH (childLL thetaAboveCell00013211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00013211)) h +theorem e24KC2ThetaAboveLeaf0001321110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00013211)) = true := by + have h : ((childLL (childLH thetaAboveCell00013211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00013211)) h +theorem e24KC2ThetaAboveLeaf0001321111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00013211)) = true := by + have h : ((childLH (childLH thetaAboveCell00013211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00013211)) h +theorem e24KC2ThetaAboveLeaf0001321112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00013211)) = true := by + have h : ((childHL (childLH thetaAboveCell00013211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00013211)) h +theorem e24KC2ThetaAboveLeaf0001321113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00013211)) = true := by + have h : ((childHH (childLH thetaAboveCell00013211))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00013211)) h +theorem e24KC2ThetaAboveLeaf0001321200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00013212)) = true := by + have h : ((childLL (childLL thetaAboveCell00013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00013212)) h +theorem e24KC2ThetaAboveLeaf0001321201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00013212)) = true := by + have h : ((childLH (childLL thetaAboveCell00013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00013212)) h +theorem e24KC2ThetaAboveLeaf0001321202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00013212)) = true := by + have h : ((childHL (childLL thetaAboveCell00013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00013212)) h +theorem e24KC2ThetaAboveLeaf0001321203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00013212)) = true := by + have h : ((childHH (childLL thetaAboveCell00013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00013212)) h +theorem e24KC2ThetaAboveLeaf0001321210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00013212)) = true := by + have h : ((childLL (childLH thetaAboveCell00013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00013212)) h +theorem e24KC2ThetaAboveLeaf0001321211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00013212)) = true := by + have h : ((childLH (childLH thetaAboveCell00013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00013212)) h +theorem e24KC2ThetaAboveLeaf0001321212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00013212)) = true := by + have h : ((childHL (childLH thetaAboveCell00013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00013212)) h +theorem e24KC2ThetaAboveLeaf0001321213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00013212)) = true := by + have h : ((childHH (childLH thetaAboveCell00013212))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00013212)) h +theorem e24KC2ThetaAboveLeaf000132122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013212) = true := by + have h : ((childHL thetaAboveCell00013212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00013212) h +theorem e24KC2ThetaAboveLeaf000132123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013212) = true := by + have h : ((childHH thetaAboveCell00013212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00013212) h +theorem e24KC2ThetaAboveLeaf0001321300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00013213)) = true := by + have h : ((childLL (childLL thetaAboveCell00013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00013213)) h +theorem e24KC2ThetaAboveLeaf0001321301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00013213)) = true := by + have h : ((childLH (childLL thetaAboveCell00013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00013213)) h +theorem e24KC2ThetaAboveLeaf0001321302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00013213)) = true := by + have h : ((childHL (childLL thetaAboveCell00013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00013213)) h +theorem e24KC2ThetaAboveLeaf0001321303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00013213)) = true := by + have h : ((childHH (childLL thetaAboveCell00013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00013213)) h +theorem e24KC2ThetaAboveLeaf0001321310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00013213)) = true := by + have h : ((childLL (childLH thetaAboveCell00013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00013213)) h +theorem e24KC2ThetaAboveLeaf0001321311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00013213)) = true := by + have h : ((childLH (childLH thetaAboveCell00013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00013213)) h +theorem e24KC2ThetaAboveLeaf0001321312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00013213)) = true := by + have h : ((childHL (childLH thetaAboveCell00013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00013213)) h +theorem e24KC2ThetaAboveLeaf0001321313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00013213)) = true := by + have h : ((childHH (childLH thetaAboveCell00013213))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00013213)) h +theorem e24KC2ThetaAboveLeaf000132132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013213) = true := by + have h : ((childHL thetaAboveCell00013213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00013213) h +theorem e24KC2ThetaAboveLeaf000132133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013213) = true := by + have h : ((childHH thetaAboveCell00013213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00013213) h +theorem e24KC2ThetaAboveLeaf00013220 : + adaptiveCoverCheck 11 thetaAboveCell00013220 = true := by + have h : (thetaAboveCell00013220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013220 h +theorem e24KC2ThetaAboveLeaf00013221 : + adaptiveCoverCheck 11 thetaAboveCell00013221 = true := by + have h : (thetaAboveCell00013221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013221 h +theorem e24KC2ThetaAboveLeaf00013222 : + adaptiveCoverCheck 11 thetaAboveCell00013222 = true := by + have h : (thetaAboveCell00013222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013222 h +theorem e24KC2ThetaAboveLeaf00013223 : + adaptiveCoverCheck 11 thetaAboveCell00013223 = true := by + have h : (thetaAboveCell00013223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013223 h +theorem e24KC2ThetaAboveLeaf00013230 : + adaptiveCoverCheck 11 thetaAboveCell00013230 = true := by + have h : (thetaAboveCell00013230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013230 h +theorem e24KC2ThetaAboveLeaf00013231 : + adaptiveCoverCheck 11 thetaAboveCell00013231 = true := by + have h : (thetaAboveCell00013231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013231 h +theorem e24KC2ThetaAboveLeaf00013232 : + adaptiveCoverCheck 11 thetaAboveCell00013232 = true := by + have h : (thetaAboveCell00013232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013232 h +theorem e24KC2ThetaAboveLeaf00013233 : + adaptiveCoverCheck 11 thetaAboveCell00013233 = true := by + have h : (thetaAboveCell00013233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell00013233 h +theorem e24KC2ThetaAboveLeaf0001330000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00013300)) = true := by + have h : ((childLL (childLL thetaAboveCell00013300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00013300)) h +theorem e24KC2ThetaAboveLeaf0001330001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00013300)) = true := by + have h : ((childLH (childLL thetaAboveCell00013300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00013300)) h +theorem e24KC2ThetaAboveLeaf0001330002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00013300)) = true := by + have h : ((childHL (childLL thetaAboveCell00013300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00013300)) h +theorem e24KC2ThetaAboveLeaf0001330003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00013300)) = true := by + have h : ((childHH (childLL thetaAboveCell00013300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00013300)) h +theorem e24KC2ThetaAboveLeaf0001330010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00013300)) = true := by + have h : ((childLL (childLH thetaAboveCell00013300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00013300)) h +theorem e24KC2ThetaAboveLeaf0001330011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00013300)) = true := by + have h : ((childLH (childLH thetaAboveCell00013300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00013300)) h +theorem e24KC2ThetaAboveLeaf0001330012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00013300)) = true := by + have h : ((childHL (childLH thetaAboveCell00013300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00013300)) h +theorem e24KC2ThetaAboveLeaf0001330013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00013300)) = true := by + have h : ((childHH (childLH thetaAboveCell00013300))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00013300)) h +theorem e24KC2ThetaAboveLeaf0001330100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00013301)) = true := by + have h : ((childLL (childLL thetaAboveCell00013301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00013301)) h +theorem e24KC2ThetaAboveLeaf0001330101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00013301)) = true := by + have h : ((childLH (childLL thetaAboveCell00013301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00013301)) h +theorem e24KC2ThetaAboveLeaf0001330102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00013301)) = true := by + have h : ((childHL (childLL thetaAboveCell00013301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00013301)) h +theorem e24KC2ThetaAboveLeaf0001330103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00013301)) = true := by + have h : ((childHH (childLL thetaAboveCell00013301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00013301)) h +theorem e24KC2ThetaAboveLeaf0001330110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00013301)) = true := by + have h : ((childLL (childLH thetaAboveCell00013301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00013301)) h +theorem e24KC2ThetaAboveLeaf0001330111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00013301)) = true := by + have h : ((childLH (childLH thetaAboveCell00013301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00013301)) h +theorem e24KC2ThetaAboveLeaf0001330112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00013301)) = true := by + have h : ((childHL (childLH thetaAboveCell00013301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00013301)) h +theorem e24KC2ThetaAboveLeaf0001330113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00013301)) = true := by + have h : ((childHH (childLH thetaAboveCell00013301))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00013301)) h +theorem e24KC2ThetaAboveLeaf0001330200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00013302)) = true := by + have h : ((childLL (childLL thetaAboveCell00013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00013302)) h +theorem e24KC2ThetaAboveLeaf0001330201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00013302)) = true := by + have h : ((childLH (childLL thetaAboveCell00013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00013302)) h +theorem e24KC2ThetaAboveLeaf0001330202 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00013302)) = true := by + have h : ((childHL (childLL thetaAboveCell00013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00013302)) h +theorem e24KC2ThetaAboveLeaf0001330203 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00013302)) = true := by + have h : ((childHH (childLL thetaAboveCell00013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00013302)) h +theorem e24KC2ThetaAboveLeaf0001330210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00013302)) = true := by + have h : ((childLL (childLH thetaAboveCell00013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00013302)) h +theorem e24KC2ThetaAboveLeaf0001330211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00013302)) = true := by + have h : ((childLH (childLH thetaAboveCell00013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00013302)) h +theorem e24KC2ThetaAboveLeaf0001330212 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00013302)) = true := by + have h : ((childHL (childLH thetaAboveCell00013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00013302)) h +theorem e24KC2ThetaAboveLeaf0001330213 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00013302)) = true := by + have h : ((childHH (childLH thetaAboveCell00013302))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00013302)) h +theorem e24KC2ThetaAboveLeaf000133022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013302) = true := by + have h : ((childHL thetaAboveCell00013302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00013302) h +theorem e24KC2ThetaAboveLeaf000133023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013302) = true := by + have h : ((childHH thetaAboveCell00013302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00013302) h +theorem e24KC2ThetaAboveLeaf0001330300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00013303)) = true := by + have h : ((childLL (childLL thetaAboveCell00013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00013303)) h +theorem e24KC2ThetaAboveLeaf0001330301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00013303)) = true := by + have h : ((childLH (childLL thetaAboveCell00013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00013303)) h +theorem e24KC2ThetaAboveLeaf0001330302 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00013303)) = true := by + have h : ((childHL (childLL thetaAboveCell00013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00013303)) h +theorem e24KC2ThetaAboveLeaf0001330303 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00013303)) = true := by + have h : ((childHH (childLL thetaAboveCell00013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00013303)) h +theorem e24KC2ThetaAboveLeaf0001330310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00013303)) = true := by + have h : ((childLL (childLH thetaAboveCell00013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00013303)) h +theorem e24KC2ThetaAboveLeaf0001330311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00013303)) = true := by + have h : ((childLH (childLH thetaAboveCell00013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00013303)) h +theorem e24KC2ThetaAboveLeaf0001330312 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00013303)) = true := by + have h : ((childHL (childLH thetaAboveCell00013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00013303)) h +theorem e24KC2ThetaAboveLeaf0001330313 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00013303)) = true := by + have h : ((childHH (childLH thetaAboveCell00013303))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00013303)) h +theorem e24KC2ThetaAboveLeaf000133032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013303) = true := by + have h : ((childHL thetaAboveCell00013303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell00013303) h +theorem e24KC2ThetaAboveLeaf000133033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013303) = true := by + have h : ((childHH thetaAboveCell00013303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell00013303) h +theorem e24KC2ThetaAboveLeaf0001331000 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00013310)) = true := by + have h : ((childLL (childLL thetaAboveCell00013310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00013310)) h +theorem e24KC2ThetaAboveLeaf0001331001 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00013310)) = true := by + have h : ((childLH (childLL thetaAboveCell00013310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00013310)) h +theorem e24KC2ThetaAboveLeaf0001331002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00013310)) = true := by + have h : ((childHL (childLL thetaAboveCell00013310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00013310)) h +theorem e24KC2ThetaAboveLeaf0001331003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00013310)) = true := by + have h : ((childHH (childLL thetaAboveCell00013310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00013310)) h +theorem e24KC2ThetaAboveLeaf0001331010 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00013310)) = true := by + have h : ((childLL (childLH thetaAboveCell00013310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00013310)) h +theorem e24KC2ThetaAboveLeaf0001331011 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00013310)) = true := by + have h : ((childLH (childLH thetaAboveCell00013310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00013310)) h +theorem e24KC2ThetaAboveLeaf0001331012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00013310)) = true := by + have h : ((childHL (childLH thetaAboveCell00013310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00013310)) h +theorem e24KC2ThetaAboveLeaf0001331013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00013310)) = true := by + have h : ((childHH (childLH thetaAboveCell00013310))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00013310)) h +theorem e24KC2ThetaAboveLeaf0001331100 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00013311)) = true := by + have h : ((childLL (childLL thetaAboveCell00013311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00013311)) h +theorem e24KC2ThetaAboveLeaf0001331101 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00013311)) = true := by + have h : ((childLH (childLL thetaAboveCell00013311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00013311)) h +theorem e24KC2ThetaAboveLeaf0001331102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00013311)) = true := by + have h : ((childHL (childLL thetaAboveCell00013311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLL thetaAboveCell00013311)) h +theorem e24KC2ThetaAboveLeaf0001331103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00013311)) = true := by + have h : ((childHH (childLL thetaAboveCell00013311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLL thetaAboveCell00013311)) h +theorem e24KC2ThetaAboveLeaf0001331110 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00013311)) = true := by + have h : ((childLL (childLH thetaAboveCell00013311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLH thetaAboveCell00013311)) h +theorem e24KC2ThetaAboveLeaf0001331111 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00013311)) = true := by + have h : ((childLH (childLH thetaAboveCell00013311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLH thetaAboveCell00013311)) h +theorem e24KC2ThetaAboveLeaf0001331112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00013311)) = true := by + have h : ((childHL (childLH thetaAboveCell00013311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL (childLH thetaAboveCell00013311)) h +theorem e24KC2ThetaAboveLeaf0001331113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00013311)) = true := by + have h : ((childHH (childLH thetaAboveCell00013311))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH (childLH thetaAboveCell00013311)) h +theorem e24KC2ThetaAboveLeaf0001331200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00013312)) = true := by + have h : ((childLL (childLL thetaAboveCell00013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL (childLL thetaAboveCell00013312)) h +theorem e24KC2ThetaAboveLeaf0001331201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00013312)) = true := by + have h : ((childLH (childLL thetaAboveCell00013312))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH (childLL thetaAboveCell00013312)) h + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle011.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle011.lean new file mode 100644 index 0000000000..c85ad293eb --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle011.lean @@ -0,0 +1,9977 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch015`. +* `GerverSofa.KernelOnly.PartE.Certificates.Batch019`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCells2f4f8ea4fc + +/-- Subcell `1111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1112 : AngleCell := + childHL (childLH (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1113 : AngleCell := + childHH (childLH (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1120 : AngleCell := + childLL (childHL (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1121 : AngleCell := + childLH (childHL (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1122 : AngleCell := + childHL (childHL (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1123 : AngleCell := + childHH (childHL (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1130 : AngleCell := + childLL (childHH (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1131 : AngleCell := + childLH (childHH (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1132 : AngleCell := + childHL (childHH (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1133 : AngleCell := + childHH (childHH (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `0000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaBelowRoot))) + +/-- Subcell `0001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0001 : AngleCell := + childLH (childLL (childLL (childLL e24ThetaBelowRoot))) + +/-- Subcell `0002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0002 : AngleCell := + childHL (childLL (childLL (childLL e24ThetaBelowRoot))) + +/-- Subcell `0003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0003 : AngleCell := + childHH (childLL (childLL (childLL e24ThetaBelowRoot))) + +/-- Subcell `0010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0010 : AngleCell := + childLL (childLH (childLL (childLL e24ThetaBelowRoot))) + +/-- Subcell `0011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0011 : AngleCell := + childLH (childLH (childLL (childLL e24ThetaBelowRoot))) + +/-- Subcell `0012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0012 : AngleCell := + childHL (childLH (childLL (childLL e24ThetaBelowRoot))) + +/-- Subcell `0013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0013 : AngleCell := + childHH (childLH (childLL (childLL e24ThetaBelowRoot))) + +/-- Subcell `0030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0030 : AngleCell := + childLL (childHH (childLL (childLL e24ThetaBelowRoot))) + +/-- Subcell `0031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0031 : AngleCell := + childLH (childHH (childLL (childLL e24ThetaBelowRoot))) + +/-- Subcell `0032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0032 : AngleCell := + childHL (childHH (childLL (childLL e24ThetaBelowRoot))) + +/-- Subcell `0033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0033 : AngleCell := + childHH (childHH (childLL (childLL e24ThetaBelowRoot))) + +/-- Subcell `0100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0100 : AngleCell := + childLL (childLL (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0101 : AngleCell := + childLH (childLL (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0102 : AngleCell := + childHL (childLL (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0103 : AngleCell := + childHH (childLL (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0110 : AngleCell := + childLL (childLH (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0111 : AngleCell := + childLH (childLH (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0112 : AngleCell := + childHL (childLH (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0113 : AngleCell := + childHH (childLH (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0120 : AngleCell := + childLL (childHL (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0121 : AngleCell := + childLH (childHL (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0122 : AngleCell := + childHL (childHL (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0123 : AngleCell := + childHH (childHL (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0130 : AngleCell := + childLL (childHH (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0131 : AngleCell := + childLH (childHH (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0132 : AngleCell := + childHL (childHH (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0133 : AngleCell := + childHH (childHH (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `1000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1000 : AngleCell := + childLL (childLL (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1001 : AngleCell := + childLH (childLL (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1002 : AngleCell := + childHL (childLL (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1003 : AngleCell := + childHH (childLL (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1010 : AngleCell := + childLL (childLH (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1011 : AngleCell := + childLH (childLH (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1012 : AngleCell := + childHL (childLH (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1013 : AngleCell := + childHH (childLH (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1020 : AngleCell := + childLL (childHL (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1021 : AngleCell := + childLH (childHL (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1022 : AngleCell := + childHL (childHL (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `11112331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `10113030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell10113030 : AngleCell := + childLL (childHH (childLL (childHH thetaBelowCell1011))) + +/-- Subcell `10113031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell10113031 : AngleCell := + childLH (childHH (childLL (childHH thetaBelowCell1011))) + +/-- Subcell `10113032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell10113032 : AngleCell := + childHL (childHH (childLL (childHH thetaBelowCell1011))) + +/-- Subcell `10113033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell10113033 : AngleCell := + childHH (childHH (childLL (childHH thetaBelowCell1011))) + +/-- Subcell `10113110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell10113110 : AngleCell := + childLL (childLH (childLH (childHH thetaBelowCell1011))) + +/-- Subcell `10113111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell10113111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell1011))) + +/-- Subcell `10113112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell10113112 : AngleCell := + childHL (childLH (childLH (childHH thetaBelowCell1011))) + +/-- Subcell `10113113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell10113113 : AngleCell := + childHH (childLH (childLH (childHH thetaBelowCell1011))) + +/-- Subcell `10113120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell10113120 : AngleCell := + childLL (childHL (childLH (childHH thetaBelowCell1011))) + +/-- Subcell `10113121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell10113121 : AngleCell := + childLH (childHL (childLH (childHH thetaBelowCell1011))) + +/-- Subcell `10113122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell10113122 : AngleCell := + childHL (childHL (childLH (childHH thetaBelowCell1011))) + +/-- Subcell `10113123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell10113123 : AngleCell := + childHH (childHL (childLH (childHH thetaBelowCell1011))) + +/-- Subcell `10113130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell10113130 : AngleCell := + childLL (childHH (childLH (childHH thetaBelowCell1011))) + +/-- Subcell `10113131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell10113131 : AngleCell := + childLH (childHH (childLH (childHH thetaBelowCell1011))) + +/-- Subcell `10113132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell10113132 : AngleCell := + childHL (childHH (childLH (childHH thetaBelowCell1011))) + +/-- Subcell `10113133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell10113133 : AngleCell := + childHH (childHH (childLH (childHH thetaBelowCell1011))) + +end GerverSofa.PartE.CertificateCells2f4f8ea4fc + +namespace GerverSofa.PartE.CertificateCells2d2385ed48 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `000022103100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00002210))) + +/-- Subcell `000022110220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022110220 : AngleCell := + childLL (childHL (childHL (childLL thetaAboveCell00002211))) + +/-- Subcell `000022110221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022110221 : AngleCell := + childLH (childHL (childHL (childLL thetaAboveCell00002211))) + +/-- Subcell `000022110222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022110222 : AngleCell := + childHL (childHL (childHL (childLL thetaAboveCell00002211))) + +/-- Subcell `000022110223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022110223 : AngleCell := + childHH (childHL (childHL (childLL thetaAboveCell00002211))) + +/-- Subcell `000022110230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022110230 : AngleCell := + childLL (childHH (childHL (childLL thetaAboveCell00002211))) + +/-- Subcell `000022110231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022110231 : AngleCell := + childLH (childHH (childHL (childLL thetaAboveCell00002211))) + +/-- Subcell `000022110232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022110232 : AngleCell := + childHL (childHH (childHL (childLL thetaAboveCell00002211))) + +/-- Subcell `000022110233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022110233 : AngleCell := + childHH (childHH (childHL (childLL thetaAboveCell00002211))) + +/-- Subcell `000022110320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022110320 : AngleCell := + childLL (childHL (childHH (childLL thetaAboveCell00002211))) + +/-- Subcell `000022110321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022110321 : AngleCell := + childLH (childHL (childHH (childLL thetaAboveCell00002211))) + +/-- Subcell `000022110322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022110322 : AngleCell := + childHL (childHL (childHH (childLL thetaAboveCell00002211))) + +/-- Subcell `000022110323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022110323 : AngleCell := + childHH (childHL (childHH (childLL thetaAboveCell00002211))) + +/-- Subcell `000022110330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022110330 : AngleCell := + childLL (childHH (childHH (childLL thetaAboveCell00002211))) + +/-- Subcell `000022110331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022110331 : AngleCell := + childLH (childHH (childHH (childLL thetaAboveCell00002211))) + +/-- Subcell `000022110332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022110332 : AngleCell := + childHL (childHH (childHH (childLL thetaAboveCell00002211))) + +/-- Subcell `000022110333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022110333 : AngleCell := + childHH (childHH (childHH (childLL thetaAboveCell00002211))) + +/-- Subcell `000022111220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022111220 : AngleCell := + childLL (childHL (childHL (childLH thetaAboveCell00002211))) + +/-- Subcell `000022111221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022111221 : AngleCell := + childLH (childHL (childHL (childLH thetaAboveCell00002211))) + +/-- Subcell `000022111222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022111222 : AngleCell := + childHL (childHL (childHL (childLH thetaAboveCell00002211))) + +/-- Subcell `000022111223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022111223 : AngleCell := + childHH (childHL (childHL (childLH thetaAboveCell00002211))) + +/-- Subcell `000022111230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022111230 : AngleCell := + childLL (childHH (childHL (childLH thetaAboveCell00002211))) + +/-- Subcell `000022111231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022111231 : AngleCell := + childLH (childHH (childHL (childLH thetaAboveCell00002211))) + +/-- Subcell `000022111232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022111232 : AngleCell := + childHL (childHH (childHL (childLH thetaAboveCell00002211))) + +/-- Subcell `000022111233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022111233 : AngleCell := + childHH (childHH (childHL (childLH thetaAboveCell00002211))) + +/-- Subcell `000022111320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022111320 : AngleCell := + childLL (childHL (childHH (childLH thetaAboveCell00002211))) + +/-- Subcell `000022111321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022111321 : AngleCell := + childLH (childHL (childHH (childLH thetaAboveCell00002211))) + +/-- Subcell `000022111322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022111322 : AngleCell := + childHL (childHL (childHH (childLH thetaAboveCell00002211))) + +/-- Subcell `000022111323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022111323 : AngleCell := + childHH (childHL (childHH (childLH thetaAboveCell00002211))) + +/-- Subcell `000022111330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022111330 : AngleCell := + childLL (childHH (childHH (childLH thetaAboveCell00002211))) + +/-- Subcell `000022111331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022111331 : AngleCell := + childLH (childHH (childHH (childLH thetaAboveCell00002211))) + +/-- Subcell `000022111332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022111332 : AngleCell := + childHL (childHH (childHH (childLH thetaAboveCell00002211))) + +/-- Subcell `000022111333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022111333 : AngleCell := + childHH (childHH (childHH (childLH thetaAboveCell00002211))) + +/-- Subcell `000022112000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00002211))) + +/-- Subcell `000022112133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022112133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00002211))) + +/-- Subcell `000022113000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00002211))) + +/-- Subcell `000022113133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022113133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00002211))) + +/-- Subcell `000023000220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023000220 : AngleCell := + childLL (childHL (childHL (childLL thetaAboveCell00002300))) + +/-- Subcell `000023000221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023000221 : AngleCell := + childLH (childHL (childHL (childLL thetaAboveCell00002300))) + +/-- Subcell `000023000222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023000222 : AngleCell := + childHL (childHL (childHL (childLL thetaAboveCell00002300))) + +/-- Subcell `000023000223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023000223 : AngleCell := + childHH (childHL (childHL (childLL thetaAboveCell00002300))) + +/-- Subcell `000023000230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023000230 : AngleCell := + childLL (childHH (childHL (childLL thetaAboveCell00002300))) + +/-- Subcell `000023000231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023000231 : AngleCell := + childLH (childHH (childHL (childLL thetaAboveCell00002300))) + +/-- Subcell `000023000232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023000232 : AngleCell := + childHL (childHH (childHL (childLL thetaAboveCell00002300))) + +/-- Subcell `000023000233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023000233 : AngleCell := + childHH (childHH (childHL (childLL thetaAboveCell00002300))) + +/-- Subcell `000023000320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023000320 : AngleCell := + childLL (childHL (childHH (childLL thetaAboveCell00002300))) + +/-- Subcell `000023000321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023000321 : AngleCell := + childLH (childHL (childHH (childLL thetaAboveCell00002300))) + +/-- Subcell `000023000322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023000322 : AngleCell := + childHL (childHL (childHH (childLL thetaAboveCell00002300))) + +/-- Subcell `000023000323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023000323 : AngleCell := + childHH (childHL (childHH (childLL thetaAboveCell00002300))) + +/-- Subcell `000023000330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023000330 : AngleCell := + childLL (childHH (childHH (childLL thetaAboveCell00002300))) + +/-- Subcell `000023000331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023000331 : AngleCell := + childLH (childHH (childHH (childLL thetaAboveCell00002300))) + +/-- Subcell `000023000332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023000332 : AngleCell := + childHL (childHH (childHH (childLL thetaAboveCell00002300))) + +/-- Subcell `000023000333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023000333 : AngleCell := + childHH (childHH (childHH (childLL thetaAboveCell00002300))) + +/-- Subcell `000023001220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023001220 : AngleCell := + childLL (childHL (childHL (childLH thetaAboveCell00002300))) + +/-- Subcell `000023001221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023001221 : AngleCell := + childLH (childHL (childHL (childLH thetaAboveCell00002300))) + +/-- Subcell `000023001222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023001222 : AngleCell := + childHL (childHL (childHL (childLH thetaAboveCell00002300))) + +/-- Subcell `000023001223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023001223 : AngleCell := + childHH (childHL (childHL (childLH thetaAboveCell00002300))) + +/-- Subcell `000023001230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023001230 : AngleCell := + childLL (childHH (childHL (childLH thetaAboveCell00002300))) + +/-- Subcell `000023001231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023001231 : AngleCell := + childLH (childHH (childHL (childLH thetaAboveCell00002300))) + +/-- Subcell `000023001232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023001232 : AngleCell := + childHL (childHH (childHL (childLH thetaAboveCell00002300))) + +/-- Subcell `000023001233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023001233 : AngleCell := + childHH (childHH (childHL (childLH thetaAboveCell00002300))) + +/-- Subcell `000023001320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023001320 : AngleCell := + childLL (childHL (childHH (childLH thetaAboveCell00002300))) + +/-- Subcell `000023001321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023001321 : AngleCell := + childLH (childHL (childHH (childLH thetaAboveCell00002300))) + +/-- Subcell `000023001322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023001322 : AngleCell := + childHL (childHL (childHH (childLH thetaAboveCell00002300))) + +/-- Subcell `000023001323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023001323 : AngleCell := + childHH (childHL (childHH (childLH thetaAboveCell00002300))) + +/-- Subcell `000023001330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023001330 : AngleCell := + childLL (childHH (childHH (childLH thetaAboveCell00002300))) + +/-- Subcell `000023001331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023001331 : AngleCell := + childLH (childHH (childHH (childLH thetaAboveCell00002300))) + +/-- Subcell `000023001332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023001332 : AngleCell := + childHL (childHH (childHH (childLH thetaAboveCell00002300))) + +/-- Subcell `000023001333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000023001333 : AngleCell := + childHH (childHH (childHH (childLH thetaAboveCell00002300))) + +end GerverSofa.PartE.CertificateCells2d2385ed48 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC5TerminalBatchT614400015`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2f4f8ea4fc + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2f4f8ea4fc + +open CertificateCells2f4f8ea4fc +theorem e24KC2ThetaAboveLeaf111123311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11112331) = true := by + have h : ((childLH thetaAboveCell11112331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11112331) h +theorem e24KC2ThetaAboveLeaf111123312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11112331) = true := by + have h : ((childHL thetaAboveCell11112331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11112331) h +theorem e24KC2ThetaAboveLeaf111123313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11112331) = true := by + have h : ((childHH thetaAboveCell11112331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11112331) h +theorem e24KC2ThetaAboveLeaf111123320 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11112332) = true := by + have h : ((childLL thetaAboveCell11112332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11112332) h +theorem e24KC2ThetaAboveLeaf111123321 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11112332) = true := by + have h : ((childLH thetaAboveCell11112332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11112332) h +theorem e24KC2ThetaAboveLeaf111123322 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11112332) = true := by + have h : ((childHL thetaAboveCell11112332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11112332) h +theorem e24KC2ThetaAboveLeaf111123323 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11112332) = true := by + have h : ((childHH thetaAboveCell11112332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11112332) h +theorem e24KC2ThetaAboveLeaf111123330 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11112333) = true := by + have h : ((childLL thetaAboveCell11112333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11112333) h +theorem e24KC2ThetaAboveLeaf111123331 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11112333) = true := by + have h : ((childLH thetaAboveCell11112333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11112333) h +theorem e24KC2ThetaAboveLeaf111123332 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11112333) = true := by + have h : ((childHL thetaAboveCell11112333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11112333) h +theorem e24KC2ThetaAboveLeaf111123333 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11112333) = true := by + have h : ((childHH thetaAboveCell11112333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11112333) h +theorem e24KC2ThetaAboveLeaf1111300 : + adaptiveCoverCheck 12 (childLL (childLL (childHH thetaAboveCell1111))) = true := by + have h : ((childLL (childLL (childHH thetaAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childHH thetaAboveCell1111))) h +theorem e24KC2ThetaAboveLeaf1111301 : + adaptiveCoverCheck 12 (childLH (childLL (childHH thetaAboveCell1111))) = true := by + have h : ((childLH (childLL (childHH thetaAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childHH thetaAboveCell1111))) h +theorem e24KC2ThetaAboveLeaf1111302 : + adaptiveCoverCheck 12 (childHL (childLL (childHH thetaAboveCell1111))) = true := by + have h : ((childHL (childLL (childHH thetaAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childHH thetaAboveCell1111))) h +theorem e24KC2ThetaAboveLeaf1111303 : + adaptiveCoverCheck 12 (childHH (childLL (childHH thetaAboveCell1111))) = true := by + have h : ((childHH (childLL (childHH thetaAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childHH thetaAboveCell1111))) h +theorem e24KC2ThetaAboveLeaf1111310 : + adaptiveCoverCheck 12 (childLL (childLH (childHH thetaAboveCell1111))) = true := by + have h : ((childLL (childLH (childHH thetaAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childHH thetaAboveCell1111))) h +theorem e24KC2ThetaAboveLeaf1111311 : + adaptiveCoverCheck 12 (childLH (childLH (childHH thetaAboveCell1111))) = true := by + have h : ((childLH (childLH (childHH thetaAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childHH thetaAboveCell1111))) h +theorem e24KC2ThetaAboveLeaf1111312 : + adaptiveCoverCheck 12 (childHL (childLH (childHH thetaAboveCell1111))) = true := by + have h : ((childHL (childLH (childHH thetaAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childHH thetaAboveCell1111))) h +theorem e24KC2ThetaAboveLeaf1111313 : + adaptiveCoverCheck 12 (childHH (childLH (childHH thetaAboveCell1111))) = true := by + have h : ((childHH (childLH (childHH thetaAboveCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childHH thetaAboveCell1111))) h +theorem e24KC2ThetaAboveLeaf11113200 : + adaptiveCoverCheck 11 thetaAboveCell11113200 = true := by + have h : (thetaAboveCell11113200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11113200 h +theorem e24KC2ThetaAboveLeaf11113201 : + adaptiveCoverCheck 11 thetaAboveCell11113201 = true := by + have h : (thetaAboveCell11113201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11113201 h +theorem e24KC2ThetaAboveLeaf111132020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113202) = true := by + have h : ((childLL thetaAboveCell11113202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113202) h +theorem e24KC2ThetaAboveLeaf111132021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113202) = true := by + have h : ((childLH thetaAboveCell11113202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113202) h +theorem e24KC2ThetaAboveLeaf111132022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113202) = true := by + have h : ((childHL thetaAboveCell11113202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113202) h +theorem e24KC2ThetaAboveLeaf111132023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113202) = true := by + have h : ((childHH thetaAboveCell11113202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113202) h +theorem e24KC2ThetaAboveLeaf111132030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113203) = true := by + have h : ((childLL thetaAboveCell11113203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113203) h +theorem e24KC2ThetaAboveLeaf111132031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113203) = true := by + have h : ((childLH thetaAboveCell11113203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113203) h +theorem e24KC2ThetaAboveLeaf111132032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113203) = true := by + have h : ((childHL thetaAboveCell11113203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113203) h +theorem e24KC2ThetaAboveLeaf111132033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113203) = true := by + have h : ((childHH thetaAboveCell11113203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113203) h +theorem e24KC2ThetaAboveLeaf11113210 : + adaptiveCoverCheck 11 thetaAboveCell11113210 = true := by + have h : (thetaAboveCell11113210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11113210 h +theorem e24KC2ThetaAboveLeaf11113211 : + adaptiveCoverCheck 11 thetaAboveCell11113211 = true := by + have h : (thetaAboveCell11113211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11113211 h +theorem e24KC2ThetaAboveLeaf111132120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113212) = true := by + have h : ((childLL thetaAboveCell11113212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113212) h +theorem e24KC2ThetaAboveLeaf111132121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113212) = true := by + have h : ((childLH thetaAboveCell11113212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113212) h +theorem e24KC2ThetaAboveLeaf111132122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113212) = true := by + have h : ((childHL thetaAboveCell11113212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113212) h +theorem e24KC2ThetaAboveLeaf111132123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113212) = true := by + have h : ((childHH thetaAboveCell11113212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113212) h +theorem e24KC2ThetaAboveLeaf111132130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113213) = true := by + have h : ((childLL thetaAboveCell11113213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113213) h +theorem e24KC2ThetaAboveLeaf111132131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113213) = true := by + have h : ((childLH thetaAboveCell11113213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113213) h +theorem e24KC2ThetaAboveLeaf111132132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113213) = true := by + have h : ((childHL thetaAboveCell11113213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113213) h +theorem e24KC2ThetaAboveLeaf111132133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113213) = true := by + have h : ((childHH thetaAboveCell11113213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113213) h +theorem e24KC2ThetaAboveLeaf111132200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113220) = true := by + have h : ((childLL thetaAboveCell11113220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113220) h +theorem e24KC2ThetaAboveLeaf111132201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113220) = true := by + have h : ((childLH thetaAboveCell11113220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113220) h +theorem e24KC2ThetaAboveLeaf111132202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113220) = true := by + have h : ((childHL thetaAboveCell11113220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113220) h +theorem e24KC2ThetaAboveLeaf111132203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113220) = true := by + have h : ((childHH thetaAboveCell11113220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113220) h +theorem e24KC2ThetaAboveLeaf111132210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113221) = true := by + have h : ((childLL thetaAboveCell11113221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113221) h +theorem e24KC2ThetaAboveLeaf111132211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113221) = true := by + have h : ((childLH thetaAboveCell11113221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113221) h +theorem e24KC2ThetaAboveLeaf111132212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113221) = true := by + have h : ((childHL thetaAboveCell11113221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113221) h +theorem e24KC2ThetaAboveLeaf111132213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113221) = true := by + have h : ((childHH thetaAboveCell11113221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113221) h +theorem e24KC2ThetaAboveLeaf111132220 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113222) = true := by + have h : ((childLL thetaAboveCell11113222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113222) h +theorem e24KC2ThetaAboveLeaf111132221 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113222) = true := by + have h : ((childLH thetaAboveCell11113222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113222) h +theorem e24KC2ThetaAboveLeaf111132222 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113222) = true := by + have h : ((childHL thetaAboveCell11113222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113222) h +theorem e24KC2ThetaAboveLeaf111132223 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113222) = true := by + have h : ((childHH thetaAboveCell11113222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113222) h +theorem e24KC2ThetaAboveLeaf111132230 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113223) = true := by + have h : ((childLL thetaAboveCell11113223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113223) h +theorem e24KC2ThetaAboveLeaf111132231 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113223) = true := by + have h : ((childLH thetaAboveCell11113223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113223) h +theorem e24KC2ThetaAboveLeaf111132232 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113223) = true := by + have h : ((childHL thetaAboveCell11113223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113223) h +theorem e24KC2ThetaAboveLeaf111132233 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113223) = true := by + have h : ((childHH thetaAboveCell11113223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113223) h +theorem e24KC2ThetaAboveLeaf111132300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113230) = true := by + have h : ((childLL thetaAboveCell11113230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113230) h +theorem e24KC2ThetaAboveLeaf111132301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113230) = true := by + have h : ((childLH thetaAboveCell11113230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113230) h +theorem e24KC2ThetaAboveLeaf111132302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113230) = true := by + have h : ((childHL thetaAboveCell11113230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113230) h +theorem e24KC2ThetaAboveLeaf111132303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113230) = true := by + have h : ((childHH thetaAboveCell11113230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113230) h +theorem e24KC2ThetaAboveLeaf111132310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113231) = true := by + have h : ((childLL thetaAboveCell11113231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113231) h +theorem e24KC2ThetaAboveLeaf111132311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113231) = true := by + have h : ((childLH thetaAboveCell11113231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113231) h +theorem e24KC2ThetaAboveLeaf111132312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113231) = true := by + have h : ((childHL thetaAboveCell11113231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113231) h +theorem e24KC2ThetaAboveLeaf111132313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113231) = true := by + have h : ((childHH thetaAboveCell11113231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113231) h +theorem e24KC2ThetaAboveLeaf111132320 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113232) = true := by + have h : ((childLL thetaAboveCell11113232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113232) h +theorem e24KC2ThetaAboveLeaf111132321 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113232) = true := by + have h : ((childLH thetaAboveCell11113232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113232) h +theorem e24KC2ThetaAboveLeaf111132322 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113232) = true := by + have h : ((childHL thetaAboveCell11113232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113232) h +theorem e24KC2ThetaAboveLeaf111132323 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113232) = true := by + have h : ((childHH thetaAboveCell11113232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113232) h +theorem e24KC2ThetaAboveLeaf111132330 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113233) = true := by + have h : ((childLL thetaAboveCell11113233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113233) h +theorem e24KC2ThetaAboveLeaf111132331 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113233) = true := by + have h : ((childLH thetaAboveCell11113233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113233) h +theorem e24KC2ThetaAboveLeaf111132332 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113233) = true := by + have h : ((childHL thetaAboveCell11113233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113233) h +theorem e24KC2ThetaAboveLeaf111132333 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113233) = true := by + have h : ((childHH thetaAboveCell11113233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113233) h +theorem e24KC2ThetaAboveLeaf11113300 : + adaptiveCoverCheck 11 thetaAboveCell11113300 = true := by + have h : (thetaAboveCell11113300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11113300 h +theorem e24KC2ThetaAboveLeaf11113301 : + adaptiveCoverCheck 11 thetaAboveCell11113301 = true := by + have h : (thetaAboveCell11113301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11113301 h +theorem e24KC2ThetaAboveLeaf111133020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113302) = true := by + have h : ((childLL thetaAboveCell11113302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113302) h +theorem e24KC2ThetaAboveLeaf111133021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113302) = true := by + have h : ((childLH thetaAboveCell11113302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113302) h +theorem e24KC2ThetaAboveLeaf111133022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113302) = true := by + have h : ((childHL thetaAboveCell11113302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113302) h +theorem e24KC2ThetaAboveLeaf111133023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113302) = true := by + have h : ((childHH thetaAboveCell11113302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113302) h +theorem e24KC2ThetaAboveLeaf111133030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113303) = true := by + have h : ((childLL thetaAboveCell11113303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113303) h +theorem e24KC2ThetaAboveLeaf111133031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113303) = true := by + have h : ((childLH thetaAboveCell11113303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113303) h +theorem e24KC2ThetaAboveLeaf111133032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113303) = true := by + have h : ((childHL thetaAboveCell11113303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113303) h +theorem e24KC2ThetaAboveLeaf111133033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113303) = true := by + have h : ((childHH thetaAboveCell11113303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113303) h +theorem e24KC2ThetaAboveLeaf11113310 : + adaptiveCoverCheck 11 thetaAboveCell11113310 = true := by + have h : (thetaAboveCell11113310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11113310 h +theorem e24KC2ThetaAboveLeaf11113311 : + adaptiveCoverCheck 11 thetaAboveCell11113311 = true := by + have h : (thetaAboveCell11113311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 thetaAboveCell11113311 h +theorem e24KC2ThetaAboveLeaf111133120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113312) = true := by + have h : ((childLL thetaAboveCell11113312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113312) h +theorem e24KC2ThetaAboveLeaf111133121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113312) = true := by + have h : ((childLH thetaAboveCell11113312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113312) h +theorem e24KC2ThetaAboveLeaf111133122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113312) = true := by + have h : ((childHL thetaAboveCell11113312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113312) h +theorem e24KC2ThetaAboveLeaf111133123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113312) = true := by + have h : ((childHH thetaAboveCell11113312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113312) h +theorem e24KC2ThetaAboveLeaf111133130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113313) = true := by + have h : ((childLL thetaAboveCell11113313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113313) h +theorem e24KC2ThetaAboveLeaf111133131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113313) = true := by + have h : ((childLH thetaAboveCell11113313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113313) h +theorem e24KC2ThetaAboveLeaf111133132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113313) = true := by + have h : ((childHL thetaAboveCell11113313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113313) h +theorem e24KC2ThetaAboveLeaf111133133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113313) = true := by + have h : ((childHH thetaAboveCell11113313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113313) h +theorem e24KC2ThetaAboveLeaf111133200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113320) = true := by + have h : ((childLL thetaAboveCell11113320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113320) h +theorem e24KC2ThetaAboveLeaf111133201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113320) = true := by + have h : ((childLH thetaAboveCell11113320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113320) h +theorem e24KC2ThetaAboveLeaf111133202 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113320) = true := by + have h : ((childHL thetaAboveCell11113320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113320) h +theorem e24KC2ThetaAboveLeaf111133203 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113320) = true := by + have h : ((childHH thetaAboveCell11113320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113320) h +theorem e24KC2ThetaAboveLeaf111133210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113321) = true := by + have h : ((childLL thetaAboveCell11113321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113321) h +theorem e24KC2ThetaAboveLeaf111133211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113321) = true := by + have h : ((childLH thetaAboveCell11113321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113321) h +theorem e24KC2ThetaAboveLeaf111133212 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113321) = true := by + have h : ((childHL thetaAboveCell11113321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113321) h +theorem e24KC2ThetaAboveLeaf111133213 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113321) = true := by + have h : ((childHH thetaAboveCell11113321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113321) h +theorem e24KC2ThetaAboveLeaf111133220 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113322) = true := by + have h : ((childLL thetaAboveCell11113322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113322) h +theorem e24KC2ThetaAboveLeaf111133221 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113322) = true := by + have h : ((childLH thetaAboveCell11113322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113322) h +theorem e24KC2ThetaAboveLeaf111133222 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113322) = true := by + have h : ((childHL thetaAboveCell11113322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113322) h +theorem e24KC2ThetaAboveLeaf111133223 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113322) = true := by + have h : ((childHH thetaAboveCell11113322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113322) h +theorem e24KC2ThetaAboveLeaf111133230 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113323) = true := by + have h : ((childLL thetaAboveCell11113323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113323) h +theorem e24KC2ThetaAboveLeaf111133231 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113323) = true := by + have h : ((childLH thetaAboveCell11113323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113323) h +theorem e24KC2ThetaAboveLeaf111133232 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113323) = true := by + have h : ((childHL thetaAboveCell11113323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113323) h +theorem e24KC2ThetaAboveLeaf111133233 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113323) = true := by + have h : ((childHH thetaAboveCell11113323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113323) h +theorem e24KC2ThetaAboveLeaf111133300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113330) = true := by + have h : ((childLL thetaAboveCell11113330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113330) h +theorem e24KC2ThetaAboveLeaf111133301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113330) = true := by + have h : ((childLH thetaAboveCell11113330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113330) h +theorem e24KC2ThetaAboveLeaf111133302 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113330) = true := by + have h : ((childHL thetaAboveCell11113330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113330) h +theorem e24KC2ThetaAboveLeaf111133303 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113330) = true := by + have h : ((childHH thetaAboveCell11113330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113330) h +theorem e24KC2ThetaAboveLeaf111133310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113331) = true := by + have h : ((childLL thetaAboveCell11113331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113331) h +theorem e24KC2ThetaAboveLeaf111133311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113331) = true := by + have h : ((childLH thetaAboveCell11113331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113331) h +theorem e24KC2ThetaAboveLeaf111133312 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113331) = true := by + have h : ((childHL thetaAboveCell11113331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113331) h +theorem e24KC2ThetaAboveLeaf111133313 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113331) = true := by + have h : ((childHH thetaAboveCell11113331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113331) h +theorem e24KC2ThetaAboveLeaf111133320 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113332) = true := by + have h : ((childLL thetaAboveCell11113332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113332) h +theorem e24KC2ThetaAboveLeaf111133321 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113332) = true := by + have h : ((childLH thetaAboveCell11113332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113332) h +theorem e24KC2ThetaAboveLeaf111133322 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113332) = true := by + have h : ((childHL thetaAboveCell11113332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113332) h +theorem e24KC2ThetaAboveLeaf111133323 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113332) = true := by + have h : ((childHH thetaAboveCell11113332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113332) h +theorem e24KC2ThetaAboveLeaf111133330 : + adaptiveCoverCheck 10 (childLL thetaAboveCell11113333) = true := by + have h : ((childLL thetaAboveCell11113333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLL thetaAboveCell11113333) h +theorem e24KC2ThetaAboveLeaf111133331 : + adaptiveCoverCheck 10 (childLH thetaAboveCell11113333) = true := by + have h : ((childLH thetaAboveCell11113333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childLH thetaAboveCell11113333) h +theorem e24KC2ThetaAboveLeaf111133332 : + adaptiveCoverCheck 10 (childHL thetaAboveCell11113333) = true := by + have h : ((childHL thetaAboveCell11113333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHL thetaAboveCell11113333) h +theorem e24KC2ThetaAboveLeaf111133333 : + adaptiveCoverCheck 10 (childHH thetaAboveCell11113333) = true := by + have h : ((childHH thetaAboveCell11113333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 (childHH thetaAboveCell11113333) h +theorem e24KC2ThetaAboveLeaf1112000 : + adaptiveCoverCheck 12 (childLL (childLL (childLL thetaAboveCell1112))) = true := by + have h : ((childLL (childLL (childLL thetaAboveCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLL thetaAboveCell1112))) h +theorem e24KC2ThetaAboveLeaf1112001 : + adaptiveCoverCheck 12 (childLH (childLL (childLL thetaAboveCell1112))) = true := by + have h : ((childLH (childLL (childLL thetaAboveCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLL thetaAboveCell1112))) h +theorem e24KC2ThetaAboveLeaf1112002 : + adaptiveCoverCheck 12 (childHL (childLL (childLL thetaAboveCell1112))) = true := by + have h : ((childHL (childLL (childLL thetaAboveCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLL thetaAboveCell1112))) h +theorem e24KC2ThetaAboveLeaf1112003 : + adaptiveCoverCheck 12 (childHH (childLL (childLL thetaAboveCell1112))) = true := by + have h : ((childHH (childLL (childLL thetaAboveCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLL thetaAboveCell1112))) h +theorem e24KC2ThetaAboveLeaf1112010 : + adaptiveCoverCheck 12 (childLL (childLH (childLL thetaAboveCell1112))) = true := by + have h : ((childLL (childLH (childLL thetaAboveCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLL thetaAboveCell1112))) h +theorem e24KC2ThetaAboveLeaf1112011 : + adaptiveCoverCheck 12 (childLH (childLH (childLL thetaAboveCell1112))) = true := by + have h : ((childLH (childLH (childLL thetaAboveCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLL thetaAboveCell1112))) h +theorem e24KC2ThetaAboveLeaf1112012 : + adaptiveCoverCheck 12 (childHL (childLH (childLL thetaAboveCell1112))) = true := by + have h : ((childHL (childLH (childLL thetaAboveCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLL thetaAboveCell1112))) h +theorem e24KC2ThetaAboveLeaf1112013 : + adaptiveCoverCheck 12 (childHH (childLH (childLL thetaAboveCell1112))) = true := by + have h : ((childHH (childLH (childLL thetaAboveCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLL thetaAboveCell1112))) h +theorem e24KC2ThetaAboveLeaf111202 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell1112)) = true := by + have h : ((childHL (childLL thetaAboveCell1112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell1112)) h +theorem e24KC2ThetaAboveLeaf111203 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell1112)) = true := by + have h : ((childHH (childLL thetaAboveCell1112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell1112)) h +theorem e24KC2ThetaAboveLeaf1112100 : + adaptiveCoverCheck 12 (childLL (childLL (childLH thetaAboveCell1112))) = true := by + have h : ((childLL (childLL (childLH thetaAboveCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLH thetaAboveCell1112))) h +theorem e24KC2ThetaAboveLeaf1112101 : + adaptiveCoverCheck 12 (childLH (childLL (childLH thetaAboveCell1112))) = true := by + have h : ((childLH (childLL (childLH thetaAboveCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLH thetaAboveCell1112))) h +theorem e24KC2ThetaAboveLeaf1112102 : + adaptiveCoverCheck 12 (childHL (childLL (childLH thetaAboveCell1112))) = true := by + have h : ((childHL (childLL (childLH thetaAboveCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLH thetaAboveCell1112))) h +theorem e24KC2ThetaAboveLeaf1112103 : + adaptiveCoverCheck 12 (childHH (childLL (childLH thetaAboveCell1112))) = true := by + have h : ((childHH (childLL (childLH thetaAboveCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLH thetaAboveCell1112))) h +theorem e24KC2ThetaAboveLeaf1112110 : + adaptiveCoverCheck 12 (childLL (childLH (childLH thetaAboveCell1112))) = true := by + have h : ((childLL (childLH (childLH thetaAboveCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLH thetaAboveCell1112))) h +theorem e24KC2ThetaAboveLeaf1112111 : + adaptiveCoverCheck 12 (childLH (childLH (childLH thetaAboveCell1112))) = true := by + have h : ((childLH (childLH (childLH thetaAboveCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLH thetaAboveCell1112))) h +theorem e24KC2ThetaAboveLeaf1112112 : + adaptiveCoverCheck 12 (childHL (childLH (childLH thetaAboveCell1112))) = true := by + have h : ((childHL (childLH (childLH thetaAboveCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLH thetaAboveCell1112))) h +theorem e24KC2ThetaAboveLeaf1112113 : + adaptiveCoverCheck 12 (childHH (childLH (childLH thetaAboveCell1112))) = true := by + have h : ((childHH (childLH (childLH thetaAboveCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLH thetaAboveCell1112))) h +theorem e24KC2ThetaAboveLeaf111212 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell1112)) = true := by + have h : ((childHL (childLH thetaAboveCell1112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell1112)) h +theorem e24KC2ThetaAboveLeaf111213 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell1112)) = true := by + have h : ((childHH (childLH thetaAboveCell1112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell1112)) h +theorem e24KC2ThetaAboveLeaf11122 : + adaptiveCoverCheck 14 (childHL thetaAboveCell1112) = true := by + have h : ((childHL thetaAboveCell1112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHL thetaAboveCell1112) h +theorem e24KC2ThetaAboveLeaf11123 : + adaptiveCoverCheck 14 (childHH thetaAboveCell1112) = true := by + have h : ((childHH thetaAboveCell1112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHH thetaAboveCell1112) h +theorem e24KC2ThetaAboveLeaf1113000 : + adaptiveCoverCheck 12 (childLL (childLL (childLL thetaAboveCell1113))) = true := by + have h : ((childLL (childLL (childLL thetaAboveCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLL thetaAboveCell1113))) h +theorem e24KC2ThetaAboveLeaf1113001 : + adaptiveCoverCheck 12 (childLH (childLL (childLL thetaAboveCell1113))) = true := by + have h : ((childLH (childLL (childLL thetaAboveCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLL thetaAboveCell1113))) h +theorem e24KC2ThetaAboveLeaf1113002 : + adaptiveCoverCheck 12 (childHL (childLL (childLL thetaAboveCell1113))) = true := by + have h : ((childHL (childLL (childLL thetaAboveCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLL thetaAboveCell1113))) h +theorem e24KC2ThetaAboveLeaf1113003 : + adaptiveCoverCheck 12 (childHH (childLL (childLL thetaAboveCell1113))) = true := by + have h : ((childHH (childLL (childLL thetaAboveCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLL thetaAboveCell1113))) h +theorem e24KC2ThetaAboveLeaf1113010 : + adaptiveCoverCheck 12 (childLL (childLH (childLL thetaAboveCell1113))) = true := by + have h : ((childLL (childLH (childLL thetaAboveCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLL thetaAboveCell1113))) h +theorem e24KC2ThetaAboveLeaf1113011 : + adaptiveCoverCheck 12 (childLH (childLH (childLL thetaAboveCell1113))) = true := by + have h : ((childLH (childLH (childLL thetaAboveCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLL thetaAboveCell1113))) h +theorem e24KC2ThetaAboveLeaf1113012 : + adaptiveCoverCheck 12 (childHL (childLH (childLL thetaAboveCell1113))) = true := by + have h : ((childHL (childLH (childLL thetaAboveCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLL thetaAboveCell1113))) h +theorem e24KC2ThetaAboveLeaf1113013 : + adaptiveCoverCheck 12 (childHH (childLH (childLL thetaAboveCell1113))) = true := by + have h : ((childHH (childLH (childLL thetaAboveCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLL thetaAboveCell1113))) h +theorem e24KC2ThetaAboveLeaf111302 : + adaptiveCoverCheck 13 (childHL (childLL thetaAboveCell1113)) = true := by + have h : ((childHL (childLL thetaAboveCell1113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLL thetaAboveCell1113)) h +theorem e24KC2ThetaAboveLeaf111303 : + adaptiveCoverCheck 13 (childHH (childLL thetaAboveCell1113)) = true := by + have h : ((childHH (childLL thetaAboveCell1113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLL thetaAboveCell1113)) h +theorem e24KC2ThetaAboveLeaf1113100 : + adaptiveCoverCheck 12 (childLL (childLL (childLH thetaAboveCell1113))) = true := by + have h : ((childLL (childLL (childLH thetaAboveCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL (childLH thetaAboveCell1113))) h +theorem e24KC2ThetaAboveLeaf1113101 : + adaptiveCoverCheck 12 (childLH (childLL (childLH thetaAboveCell1113))) = true := by + have h : ((childLH (childLL (childLH thetaAboveCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL (childLH thetaAboveCell1113))) h +theorem e24KC2ThetaAboveLeaf1113102 : + adaptiveCoverCheck 12 (childHL (childLL (childLH thetaAboveCell1113))) = true := by + have h : ((childHL (childLL (childLH thetaAboveCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL (childLH thetaAboveCell1113))) h +theorem e24KC2ThetaAboveLeaf1113103 : + adaptiveCoverCheck 12 (childHH (childLL (childLH thetaAboveCell1113))) = true := by + have h : ((childHH (childLL (childLH thetaAboveCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL (childLH thetaAboveCell1113))) h +theorem e24KC2ThetaAboveLeaf1113110 : + adaptiveCoverCheck 12 (childLL (childLH (childLH thetaAboveCell1113))) = true := by + have h : ((childLL (childLH (childLH thetaAboveCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH (childLH thetaAboveCell1113))) h +theorem e24KC2ThetaAboveLeaf1113111 : + adaptiveCoverCheck 12 (childLH (childLH (childLH thetaAboveCell1113))) = true := by + have h : ((childLH (childLH (childLH thetaAboveCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH (childLH thetaAboveCell1113))) h +theorem e24KC2ThetaAboveLeaf1113112 : + adaptiveCoverCheck 12 (childHL (childLH (childLH thetaAboveCell1113))) = true := by + have h : ((childHL (childLH (childLH thetaAboveCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH (childLH thetaAboveCell1113))) h +theorem e24KC2ThetaAboveLeaf1113113 : + adaptiveCoverCheck 12 (childHH (childLH (childLH thetaAboveCell1113))) = true := by + have h : ((childHH (childLH (childLH thetaAboveCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH (childLH thetaAboveCell1113))) h +theorem e24KC2ThetaAboveLeaf111312 : + adaptiveCoverCheck 13 (childHL (childLH thetaAboveCell1113)) = true := by + have h : ((childHL (childLH thetaAboveCell1113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL (childLH thetaAboveCell1113)) h +theorem e24KC2ThetaAboveLeaf111313 : + adaptiveCoverCheck 13 (childHH (childLH thetaAboveCell1113)) = true := by + have h : ((childHH (childLH thetaAboveCell1113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH (childLH thetaAboveCell1113)) h +theorem e24KC2ThetaAboveLeaf11132 : + adaptiveCoverCheck 14 (childHL thetaAboveCell1113) = true := by + have h : ((childHL thetaAboveCell1113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHL thetaAboveCell1113) h +theorem e24KC2ThetaAboveLeaf11133 : + adaptiveCoverCheck 14 (childHH thetaAboveCell1113) = true := by + have h : ((childHH thetaAboveCell1113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 (childHH thetaAboveCell1113) h +theorem e24KC2ThetaAboveLeaf1120 : + adaptiveCoverCheck 15 thetaAboveCell1120 = true := by + have h : (thetaAboveCell1120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell1120 h +theorem e24KC2ThetaAboveLeaf1121 : + adaptiveCoverCheck 15 thetaAboveCell1121 = true := by + have h : (thetaAboveCell1121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell1121 h +theorem e24KC2ThetaAboveLeaf1122 : + adaptiveCoverCheck 15 thetaAboveCell1122 = true := by + have h : (thetaAboveCell1122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell1122 h +theorem e24KC2ThetaAboveLeaf1123 : + adaptiveCoverCheck 15 thetaAboveCell1123 = true := by + have h : (thetaAboveCell1123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell1123 h +theorem e24KC2ThetaAboveLeaf1130 : + adaptiveCoverCheck 15 thetaAboveCell1130 = true := by + have h : (thetaAboveCell1130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell1130 h +theorem e24KC2ThetaAboveLeaf1131 : + adaptiveCoverCheck 15 thetaAboveCell1131 = true := by + have h : (thetaAboveCell1131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell1131 h +theorem e24KC2ThetaAboveLeaf1132 : + adaptiveCoverCheck 15 thetaAboveCell1132 = true := by + have h : (thetaAboveCell1132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell1132 h +theorem e24KC2ThetaAboveLeaf1133 : + adaptiveCoverCheck 15 thetaAboveCell1133 = true := by + have h : (thetaAboveCell1133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 thetaAboveCell1133 h +theorem e24KC2ThetaAboveLeaf120 : + adaptiveCoverCheck 16 (childLL (childHL (childLH e24ThetaAboveRoot))) = true := by + have h : ((childLL (childHL (childLH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLL (childHL (childLH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf121 : + adaptiveCoverCheck 16 (childLH (childHL (childLH e24ThetaAboveRoot))) = true := by + have h : ((childLH (childHL (childLH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLH (childHL (childLH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf122 : + adaptiveCoverCheck 16 (childHL (childHL (childLH e24ThetaAboveRoot))) = true := by + have h : ((childHL (childHL (childLH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHL (childHL (childLH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf123 : + adaptiveCoverCheck 16 (childHH (childHL (childLH e24ThetaAboveRoot))) = true := by + have h : ((childHH (childHL (childLH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHH (childHL (childLH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf130 : + adaptiveCoverCheck 16 (childLL (childHH (childLH e24ThetaAboveRoot))) = true := by + have h : ((childLL (childHH (childLH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLL (childHH (childLH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf131 : + adaptiveCoverCheck 16 (childLH (childHH (childLH e24ThetaAboveRoot))) = true := by + have h : ((childLH (childHH (childLH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLH (childHH (childLH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf132 : + adaptiveCoverCheck 16 (childHL (childHH (childLH e24ThetaAboveRoot))) = true := by + have h : ((childHL (childHH (childLH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHL (childHH (childLH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf133 : + adaptiveCoverCheck 16 (childHH (childHH (childLH e24ThetaAboveRoot))) = true := by + have h : ((childHH (childHH (childLH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHH (childHH (childLH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf200 : + adaptiveCoverCheck 16 (childLL (childLL (childHL e24ThetaAboveRoot))) = true := by + have h : ((childLL (childLL (childHL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLL (childLL (childHL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf201 : + adaptiveCoverCheck 16 (childLH (childLL (childHL e24ThetaAboveRoot))) = true := by + have h : ((childLH (childLL (childHL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLH (childLL (childHL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf202 : + adaptiveCoverCheck 16 (childHL (childLL (childHL e24ThetaAboveRoot))) = true := by + have h : ((childHL (childLL (childHL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHL (childLL (childHL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf203 : + adaptiveCoverCheck 16 (childHH (childLL (childHL e24ThetaAboveRoot))) = true := by + have h : ((childHH (childLL (childHL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHH (childLL (childHL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf210 : + adaptiveCoverCheck 16 (childLL (childLH (childHL e24ThetaAboveRoot))) = true := by + have h : ((childLL (childLH (childHL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLL (childLH (childHL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf211 : + adaptiveCoverCheck 16 (childLH (childLH (childHL e24ThetaAboveRoot))) = true := by + have h : ((childLH (childLH (childHL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLH (childLH (childHL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf212 : + adaptiveCoverCheck 16 (childHL (childLH (childHL e24ThetaAboveRoot))) = true := by + have h : ((childHL (childLH (childHL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHL (childLH (childHL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf213 : + adaptiveCoverCheck 16 (childHH (childLH (childHL e24ThetaAboveRoot))) = true := by + have h : ((childHH (childLH (childHL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHH (childLH (childHL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf220 : + adaptiveCoverCheck 16 (childLL (childHL (childHL e24ThetaAboveRoot))) = true := by + have h : ((childLL (childHL (childHL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLL (childHL (childHL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf221 : + adaptiveCoverCheck 16 (childLH (childHL (childHL e24ThetaAboveRoot))) = true := by + have h : ((childLH (childHL (childHL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLH (childHL (childHL e24ThetaAboveRoot))) h + +theorem e24KC2ThetaAboveLeaf222 : + adaptiveCoverCheck 16 (childHL (childHL (childHL e24ThetaAboveRoot))) = true := by + have h : physicallyIrrelevant (childHL (childHL (childHL e24ThetaAboveRoot))) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 16 (childHL (childHL (childHL + e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf223 : + adaptiveCoverCheck 16 (childHH (childHL (childHL e24ThetaAboveRoot))) = true := by + have h : ((childHH (childHL (childHL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHH (childHL (childHL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf230 : + adaptiveCoverCheck 16 (childLL (childHH (childHL e24ThetaAboveRoot))) = true := by + have h : ((childLL (childHH (childHL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLL (childHH (childHL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf231 : + adaptiveCoverCheck 16 (childLH (childHH (childHL e24ThetaAboveRoot))) = true := by + have h : ((childLH (childHH (childHL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLH (childHH (childHL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf232 : + adaptiveCoverCheck 16 (childHL (childHH (childHL e24ThetaAboveRoot))) = true := by + have h : ((childHL (childHH (childHL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHL (childHH (childHL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf233 : + adaptiveCoverCheck 16 (childHH (childHH (childHL e24ThetaAboveRoot))) = true := by + have h : ((childHH (childHH (childHL e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHH (childHH (childHL e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf300 : + adaptiveCoverCheck 16 (childLL (childLL (childHH e24ThetaAboveRoot))) = true := by + have h : ((childLL (childLL (childHH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLL (childLL (childHH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf301 : + adaptiveCoverCheck 16 (childLH (childLL (childHH e24ThetaAboveRoot))) = true := by + have h : ((childLH (childLL (childHH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLH (childLL (childHH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf302 : + adaptiveCoverCheck 16 (childHL (childLL (childHH e24ThetaAboveRoot))) = true := by + have h : ((childHL (childLL (childHH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHL (childLL (childHH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf303 : + adaptiveCoverCheck 16 (childHH (childLL (childHH e24ThetaAboveRoot))) = true := by + have h : ((childHH (childLL (childHH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHH (childLL (childHH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf310 : + adaptiveCoverCheck 16 (childLL (childLH (childHH e24ThetaAboveRoot))) = true := by + have h : ((childLL (childLH (childHH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLL (childLH (childHH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf311 : + adaptiveCoverCheck 16 (childLH (childLH (childHH e24ThetaAboveRoot))) = true := by + have h : ((childLH (childLH (childHH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLH (childLH (childHH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf312 : + adaptiveCoverCheck 16 (childHL (childLH (childHH e24ThetaAboveRoot))) = true := by + have h : ((childHL (childLH (childHH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHL (childLH (childHH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf313 : + adaptiveCoverCheck 16 (childHH (childLH (childHH e24ThetaAboveRoot))) = true := by + have h : ((childHH (childLH (childHH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHH (childLH (childHH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf320 : + adaptiveCoverCheck 16 (childLL (childHL (childHH e24ThetaAboveRoot))) = true := by + have h : ((childLL (childHL (childHH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLL (childHL (childHH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf321 : + adaptiveCoverCheck 16 (childLH (childHL (childHH e24ThetaAboveRoot))) = true := by + have h : ((childLH (childHL (childHH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLH (childHL (childHH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf322 : + adaptiveCoverCheck 16 (childHL (childHL (childHH e24ThetaAboveRoot))) = true := by + have h : ((childHL (childHL (childHH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHL (childHL (childHH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf323 : + adaptiveCoverCheck 16 (childHH (childHL (childHH e24ThetaAboveRoot))) = true := by + have h : ((childHH (childHL (childHH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHH (childHL (childHH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf330 : + adaptiveCoverCheck 16 (childLL (childHH (childHH e24ThetaAboveRoot))) = true := by + have h : ((childLL (childHH (childHH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLL (childHH (childHH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf331 : + adaptiveCoverCheck 16 (childLH (childHH (childHH e24ThetaAboveRoot))) = true := by + have h : ((childLH (childHH (childHH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childLH (childHH (childHH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf332 : + adaptiveCoverCheck 16 (childHL (childHH (childHH e24ThetaAboveRoot))) = true := by + have h : ((childHL (childHH (childHH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHL (childHH (childHH e24ThetaAboveRoot))) h +theorem e24KC2ThetaAboveLeaf333 : + adaptiveCoverCheck 16 (childHH (childHH (childHH e24ThetaAboveRoot))) = true := by + have h : ((childHH (childHH (childHH e24ThetaAboveRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 16 (childHH (childHH (childHH e24ThetaAboveRoot))) h +theorem e24KC2ThetaBelowLeaf0000 : + adaptiveCoverCheck 14 thetaBelowCell0000 = true := by + have h : (thetaBelowCell0000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell0000 h +theorem e24KC2ThetaBelowLeaf0001 : + adaptiveCoverCheck 14 thetaBelowCell0001 = true := by + have h : (thetaBelowCell0001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell0001 h + +theorem e24KC2ThetaBelowLeaf0002 : + adaptiveCoverCheck 14 thetaBelowCell0002 = true := by + have h : physicallyIrrelevant thetaBelowCell0002 = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 14 thetaBelowCell0002 h +theorem e24KC2ThetaBelowLeaf00030 : + adaptiveCoverCheck 13 (childLL thetaBelowCell0003) = true := by + have h : ((childLL thetaBelowCell0003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL thetaBelowCell0003) h +theorem e24KC2ThetaBelowLeaf00031 : + adaptiveCoverCheck 13 (childLH thetaBelowCell0003) = true := by + have h : ((childLH thetaBelowCell0003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH thetaBelowCell0003) h + +theorem e24KC2ThetaBelowLeaf00032 : + adaptiveCoverCheck 13 (childHL thetaBelowCell0003) = true := by + have h : physicallyIrrelevant (childHL thetaBelowCell0003) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 13 (childHL thetaBelowCell0003) h +theorem e24KC2ThetaBelowLeaf00033 : + adaptiveCoverCheck 13 (childHH thetaBelowCell0003) = true := by + have h : ((childHH thetaBelowCell0003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell0003) h +theorem e24KC2ThetaBelowLeaf00100 : + adaptiveCoverCheck 13 (childLL thetaBelowCell0010) = true := by + have h : ((childLL thetaBelowCell0010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL thetaBelowCell0010) h +theorem e24KC2ThetaBelowLeaf00101 : + adaptiveCoverCheck 13 (childLH thetaBelowCell0010) = true := by + have h : ((childLH thetaBelowCell0010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH thetaBelowCell0010) h +theorem e24KC2ThetaBelowLeaf00102 : + adaptiveCoverCheck 13 (childHL thetaBelowCell0010) = true := by + have h : ((childHL thetaBelowCell0010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell0010) h +theorem e24KC2ThetaBelowLeaf00103 : + adaptiveCoverCheck 13 (childHH thetaBelowCell0010) = true := by + have h : ((childHH thetaBelowCell0010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell0010) h +theorem e24KC2ThetaBelowLeaf00110 : + adaptiveCoverCheck 13 (childLL thetaBelowCell0011) = true := by + have h : ((childLL thetaBelowCell0011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL thetaBelowCell0011) h +theorem e24KC2ThetaBelowLeaf00111 : + adaptiveCoverCheck 13 (childLH thetaBelowCell0011) = true := by + have h : ((childLH thetaBelowCell0011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH thetaBelowCell0011) h +theorem e24KC2ThetaBelowLeaf00112 : + adaptiveCoverCheck 13 (childHL thetaBelowCell0011) = true := by + have h : ((childHL thetaBelowCell0011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell0011) h +theorem e24KC2ThetaBelowLeaf00113 : + adaptiveCoverCheck 13 (childHH thetaBelowCell0011) = true := by + have h : ((childHH thetaBelowCell0011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell0011) h +theorem e24KC2ThetaBelowLeaf00120 : + adaptiveCoverCheck 13 (childLL thetaBelowCell0012) = true := by + have h : ((childLL thetaBelowCell0012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL thetaBelowCell0012) h +theorem e24KC2ThetaBelowLeaf00121 : + adaptiveCoverCheck 13 (childLH thetaBelowCell0012) = true := by + have h : ((childLH thetaBelowCell0012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH thetaBelowCell0012) h +theorem e24KC2ThetaBelowLeaf00122 : + adaptiveCoverCheck 13 (childHL thetaBelowCell0012) = true := by + have h : ((childHL thetaBelowCell0012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell0012) h +theorem e24KC2ThetaBelowLeaf00123 : + adaptiveCoverCheck 13 (childHH thetaBelowCell0012) = true := by + have h : ((childHH thetaBelowCell0012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell0012) h +theorem e24KC2ThetaBelowLeaf00130 : + adaptiveCoverCheck 13 (childLL thetaBelowCell0013) = true := by + have h : ((childLL thetaBelowCell0013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL thetaBelowCell0013) h +theorem e24KC2ThetaBelowLeaf00131 : + adaptiveCoverCheck 13 (childLH thetaBelowCell0013) = true := by + have h : ((childLH thetaBelowCell0013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH thetaBelowCell0013) h +theorem e24KC2ThetaBelowLeaf00132 : + adaptiveCoverCheck 13 (childHL thetaBelowCell0013) = true := by + have h : ((childHL thetaBelowCell0013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell0013) h +theorem e24KC2ThetaBelowLeaf00133 : + adaptiveCoverCheck 13 (childHH thetaBelowCell0013) = true := by + have h : ((childHH thetaBelowCell0013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell0013) h + +theorem e24KC2ThetaBelowLeaf002 : + adaptiveCoverCheck 15 (childHL (childLL (childLL e24ThetaBelowRoot))) = true := by + have h : physicallyIrrelevant (childHL (childLL (childLL e24ThetaBelowRoot))) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 15 (childHL (childLL (childLL + e24ThetaBelowRoot))) h +theorem e24KC2ThetaBelowLeaf0030 : + adaptiveCoverCheck 14 thetaBelowCell0030 = true := by + have h : (thetaBelowCell0030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell0030 h +theorem e24KC2ThetaBelowLeaf0031 : + adaptiveCoverCheck 14 thetaBelowCell0031 = true := by + have h : (thetaBelowCell0031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell0031 h + +theorem e24KC2ThetaBelowLeaf0032 : + adaptiveCoverCheck 14 thetaBelowCell0032 = true := by + have h : physicallyIrrelevant thetaBelowCell0032 = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 14 thetaBelowCell0032 h +theorem e24KC2ThetaBelowLeaf0033 : + adaptiveCoverCheck 14 thetaBelowCell0033 = true := by + have h : (thetaBelowCell0033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell0033 h +theorem e24KC2ThetaBelowLeaf01000 : + adaptiveCoverCheck 13 (childLL thetaBelowCell0100) = true := by + have h : ((childLL thetaBelowCell0100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL thetaBelowCell0100) h +theorem e24KC2ThetaBelowLeaf01001 : + adaptiveCoverCheck 13 (childLH thetaBelowCell0100) = true := by + have h : ((childLH thetaBelowCell0100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH thetaBelowCell0100) h +theorem e24KC2ThetaBelowLeaf01002 : + adaptiveCoverCheck 13 (childHL thetaBelowCell0100) = true := by + have h : ((childHL thetaBelowCell0100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell0100) h +theorem e24KC2ThetaBelowLeaf01003 : + adaptiveCoverCheck 13 (childHH thetaBelowCell0100) = true := by + have h : ((childHH thetaBelowCell0100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell0100) h +theorem e24KC2ThetaBelowLeaf01010 : + adaptiveCoverCheck 13 (childLL thetaBelowCell0101) = true := by + have h : ((childLL thetaBelowCell0101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL thetaBelowCell0101) h +theorem e24KC2ThetaBelowLeaf01011 : + adaptiveCoverCheck 13 (childLH thetaBelowCell0101) = true := by + have h : ((childLH thetaBelowCell0101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH thetaBelowCell0101) h +theorem e24KC2ThetaBelowLeaf01012 : + adaptiveCoverCheck 13 (childHL thetaBelowCell0101) = true := by + have h : ((childHL thetaBelowCell0101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell0101) h +theorem e24KC2ThetaBelowLeaf010130 : + adaptiveCoverCheck 12 (childLL (childHH thetaBelowCell0101)) = true := by + have h : ((childLL (childHH thetaBelowCell0101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childHH thetaBelowCell0101)) h +theorem e24KC2ThetaBelowLeaf010131 : + adaptiveCoverCheck 12 (childLH (childHH thetaBelowCell0101)) = true := by + have h : ((childLH (childHH thetaBelowCell0101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childHH thetaBelowCell0101)) h +theorem e24KC2ThetaBelowLeaf010132 : + adaptiveCoverCheck 12 (childHL (childHH thetaBelowCell0101)) = true := by + have h : ((childHL (childHH thetaBelowCell0101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childHH thetaBelowCell0101)) h +theorem e24KC2ThetaBelowLeaf010133 : + adaptiveCoverCheck 12 (childHH (childHH thetaBelowCell0101)) = true := by + have h : ((childHH (childHH thetaBelowCell0101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childHH thetaBelowCell0101)) h +theorem e24KC2ThetaBelowLeaf01020 : + adaptiveCoverCheck 13 (childLL thetaBelowCell0102) = true := by + have h : ((childLL thetaBelowCell0102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL thetaBelowCell0102) h +theorem e24KC2ThetaBelowLeaf01021 : + adaptiveCoverCheck 13 (childLH thetaBelowCell0102) = true := by + have h : ((childLH thetaBelowCell0102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH thetaBelowCell0102) h +theorem e24KC2ThetaBelowLeaf01022 : + adaptiveCoverCheck 13 (childHL thetaBelowCell0102) = true := by + have h : ((childHL thetaBelowCell0102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell0102) h +theorem e24KC2ThetaBelowLeaf01023 : + adaptiveCoverCheck 13 (childHH thetaBelowCell0102) = true := by + have h : ((childHH thetaBelowCell0102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell0102) h +theorem e24KC2ThetaBelowLeaf01030 : + adaptiveCoverCheck 13 (childLL thetaBelowCell0103) = true := by + have h : ((childLL thetaBelowCell0103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL thetaBelowCell0103) h +theorem e24KC2ThetaBelowLeaf01031 : + adaptiveCoverCheck 13 (childLH thetaBelowCell0103) = true := by + have h : ((childLH thetaBelowCell0103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH thetaBelowCell0103) h +theorem e24KC2ThetaBelowLeaf01032 : + adaptiveCoverCheck 13 (childHL thetaBelowCell0103) = true := by + have h : ((childHL thetaBelowCell0103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell0103) h +theorem e24KC2ThetaBelowLeaf01033 : + adaptiveCoverCheck 13 (childHH thetaBelowCell0103) = true := by + have h : ((childHH thetaBelowCell0103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell0103) h +theorem e24KC2ThetaBelowLeaf01100 : + adaptiveCoverCheck 13 (childLL thetaBelowCell0110) = true := by + have h : ((childLL thetaBelowCell0110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL thetaBelowCell0110) h +theorem e24KC2ThetaBelowLeaf011010 : + adaptiveCoverCheck 12 (childLL (childLH thetaBelowCell0110)) = true := by + have h : ((childLL (childLH thetaBelowCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH thetaBelowCell0110)) h +theorem e24KC2ThetaBelowLeaf011011 : + adaptiveCoverCheck 12 (childLH (childLH thetaBelowCell0110)) = true := by + have h : ((childLH (childLH thetaBelowCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH thetaBelowCell0110)) h +theorem e24KC2ThetaBelowLeaf011012 : + adaptiveCoverCheck 12 (childHL (childLH thetaBelowCell0110)) = true := by + have h : ((childHL (childLH thetaBelowCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH thetaBelowCell0110)) h +theorem e24KC2ThetaBelowLeaf011013 : + adaptiveCoverCheck 12 (childHH (childLH thetaBelowCell0110)) = true := by + have h : ((childHH (childLH thetaBelowCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH thetaBelowCell0110)) h +theorem e24KC2ThetaBelowLeaf011020 : + adaptiveCoverCheck 12 (childLL (childHL thetaBelowCell0110)) = true := by + have h : ((childLL (childHL thetaBelowCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childHL thetaBelowCell0110)) h +theorem e24KC2ThetaBelowLeaf011021 : + adaptiveCoverCheck 12 (childLH (childHL thetaBelowCell0110)) = true := by + have h : ((childLH (childHL thetaBelowCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childHL thetaBelowCell0110)) h +theorem e24KC2ThetaBelowLeaf011022 : + adaptiveCoverCheck 12 (childHL (childHL thetaBelowCell0110)) = true := by + have h : ((childHL (childHL thetaBelowCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childHL thetaBelowCell0110)) h +theorem e24KC2ThetaBelowLeaf011023 : + adaptiveCoverCheck 12 (childHH (childHL thetaBelowCell0110)) = true := by + have h : ((childHH (childHL thetaBelowCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childHL thetaBelowCell0110)) h +theorem e24KC2ThetaBelowLeaf011030 : + adaptiveCoverCheck 12 (childLL (childHH thetaBelowCell0110)) = true := by + have h : ((childLL (childHH thetaBelowCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childHH thetaBelowCell0110)) h +theorem e24KC2ThetaBelowLeaf011031 : + adaptiveCoverCheck 12 (childLH (childHH thetaBelowCell0110)) = true := by + have h : ((childLH (childHH thetaBelowCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childHH thetaBelowCell0110)) h +theorem e24KC2ThetaBelowLeaf011032 : + adaptiveCoverCheck 12 (childHL (childHH thetaBelowCell0110)) = true := by + have h : ((childHL (childHH thetaBelowCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childHH thetaBelowCell0110)) h +theorem e24KC2ThetaBelowLeaf011033 : + adaptiveCoverCheck 12 (childHH (childHH thetaBelowCell0110)) = true := by + have h : ((childHH (childHH thetaBelowCell0110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childHH thetaBelowCell0110)) h +theorem e24KC2ThetaBelowLeaf011100 : + adaptiveCoverCheck 12 (childLL (childLL thetaBelowCell0111)) = true := by + have h : ((childLL (childLL thetaBelowCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL thetaBelowCell0111)) h +theorem e24KC2ThetaBelowLeaf011101 : + adaptiveCoverCheck 12 (childLH (childLL thetaBelowCell0111)) = true := by + have h : ((childLH (childLL thetaBelowCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL thetaBelowCell0111)) h +theorem e24KC2ThetaBelowLeaf011102 : + adaptiveCoverCheck 12 (childHL (childLL thetaBelowCell0111)) = true := by + have h : ((childHL (childLL thetaBelowCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL thetaBelowCell0111)) h +theorem e24KC2ThetaBelowLeaf011103 : + adaptiveCoverCheck 12 (childHH (childLL thetaBelowCell0111)) = true := by + have h : ((childHH (childLL thetaBelowCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL thetaBelowCell0111)) h +theorem e24KC2ThetaBelowLeaf011110 : + adaptiveCoverCheck 12 (childLL (childLH thetaBelowCell0111)) = true := by + have h : ((childLL (childLH thetaBelowCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH thetaBelowCell0111)) h +theorem e24KC2ThetaBelowLeaf011111 : + adaptiveCoverCheck 12 (childLH (childLH thetaBelowCell0111)) = true := by + have h : ((childLH (childLH thetaBelowCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH thetaBelowCell0111)) h +theorem e24KC2ThetaBelowLeaf011112 : + adaptiveCoverCheck 12 (childHL (childLH thetaBelowCell0111)) = true := by + have h : ((childHL (childLH thetaBelowCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH thetaBelowCell0111)) h +theorem e24KC2ThetaBelowLeaf011113 : + adaptiveCoverCheck 12 (childHH (childLH thetaBelowCell0111)) = true := by + have h : ((childHH (childLH thetaBelowCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH thetaBelowCell0111)) h +theorem e24KC2ThetaBelowLeaf011120 : + adaptiveCoverCheck 12 (childLL (childHL thetaBelowCell0111)) = true := by + have h : ((childLL (childHL thetaBelowCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childHL thetaBelowCell0111)) h +theorem e24KC2ThetaBelowLeaf011121 : + adaptiveCoverCheck 12 (childLH (childHL thetaBelowCell0111)) = true := by + have h : ((childLH (childHL thetaBelowCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childHL thetaBelowCell0111)) h +theorem e24KC2ThetaBelowLeaf011122 : + adaptiveCoverCheck 12 (childHL (childHL thetaBelowCell0111)) = true := by + have h : ((childHL (childHL thetaBelowCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childHL thetaBelowCell0111)) h +theorem e24KC2ThetaBelowLeaf011123 : + adaptiveCoverCheck 12 (childHH (childHL thetaBelowCell0111)) = true := by + have h : ((childHH (childHL thetaBelowCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childHL thetaBelowCell0111)) h +theorem e24KC2ThetaBelowLeaf011130 : + adaptiveCoverCheck 12 (childLL (childHH thetaBelowCell0111)) = true := by + have h : ((childLL (childHH thetaBelowCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childHH thetaBelowCell0111)) h +theorem e24KC2ThetaBelowLeaf011131 : + adaptiveCoverCheck 12 (childLH (childHH thetaBelowCell0111)) = true := by + have h : ((childLH (childHH thetaBelowCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childHH thetaBelowCell0111)) h +theorem e24KC2ThetaBelowLeaf011132 : + adaptiveCoverCheck 12 (childHL (childHH thetaBelowCell0111)) = true := by + have h : ((childHL (childHH thetaBelowCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childHH thetaBelowCell0111)) h +theorem e24KC2ThetaBelowLeaf011133 : + adaptiveCoverCheck 12 (childHH (childHH thetaBelowCell0111)) = true := by + have h : ((childHH (childHH thetaBelowCell0111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childHH thetaBelowCell0111)) h +theorem e24KC2ThetaBelowLeaf01120 : + adaptiveCoverCheck 13 (childLL thetaBelowCell0112) = true := by + have h : ((childLL thetaBelowCell0112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL thetaBelowCell0112) h +theorem e24KC2ThetaBelowLeaf01121 : + adaptiveCoverCheck 13 (childLH thetaBelowCell0112) = true := by + have h : ((childLH thetaBelowCell0112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH thetaBelowCell0112) h +theorem e24KC2ThetaBelowLeaf01122 : + adaptiveCoverCheck 13 (childHL thetaBelowCell0112) = true := by + have h : ((childHL thetaBelowCell0112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell0112) h +theorem e24KC2ThetaBelowLeaf01123 : + adaptiveCoverCheck 13 (childHH thetaBelowCell0112) = true := by + have h : ((childHH thetaBelowCell0112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell0112) h +theorem e24KC2ThetaBelowLeaf01130 : + adaptiveCoverCheck 13 (childLL thetaBelowCell0113) = true := by + have h : ((childLL thetaBelowCell0113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL thetaBelowCell0113) h +theorem e24KC2ThetaBelowLeaf01131 : + adaptiveCoverCheck 13 (childLH thetaBelowCell0113) = true := by + have h : ((childLH thetaBelowCell0113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH thetaBelowCell0113) h +theorem e24KC2ThetaBelowLeaf01132 : + adaptiveCoverCheck 13 (childHL thetaBelowCell0113) = true := by + have h : ((childHL thetaBelowCell0113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell0113) h +theorem e24KC2ThetaBelowLeaf01133 : + adaptiveCoverCheck 13 (childHH thetaBelowCell0113) = true := by + have h : ((childHH thetaBelowCell0113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell0113) h +theorem e24KC2ThetaBelowLeaf0120 : + adaptiveCoverCheck 14 thetaBelowCell0120 = true := by + have h : (thetaBelowCell0120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell0120 h +theorem e24KC2ThetaBelowLeaf0121 : + adaptiveCoverCheck 14 thetaBelowCell0121 = true := by + have h : (thetaBelowCell0121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell0121 h +theorem e24KC2ThetaBelowLeaf0122 : + adaptiveCoverCheck 14 thetaBelowCell0122 = true := by + have h : (thetaBelowCell0122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell0122 h +theorem e24KC2ThetaBelowLeaf0123 : + adaptiveCoverCheck 14 thetaBelowCell0123 = true := by + have h : (thetaBelowCell0123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell0123 h +theorem e24KC2ThetaBelowLeaf0130 : + adaptiveCoverCheck 14 thetaBelowCell0130 = true := by + have h : (thetaBelowCell0130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell0130 h +theorem e24KC2ThetaBelowLeaf0131 : + adaptiveCoverCheck 14 thetaBelowCell0131 = true := by + have h : (thetaBelowCell0131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell0131 h +theorem e24KC2ThetaBelowLeaf0132 : + adaptiveCoverCheck 14 thetaBelowCell0132 = true := by + have h : (thetaBelowCell0132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell0132 h +theorem e24KC2ThetaBelowLeaf0133 : + adaptiveCoverCheck 14 thetaBelowCell0133 = true := by + have h : (thetaBelowCell0133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell0133 h + +theorem e24KC2ThetaBelowLeaf02 : + adaptiveCoverCheck 16 (childHL (childLL e24ThetaBelowRoot)) = true := by + have h : physicallyIrrelevant (childHL (childLL e24ThetaBelowRoot)) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 16 (childHL (childLL e24ThetaBelowRoot)) h +theorem e24KC2ThetaBelowLeaf030 : + adaptiveCoverCheck 15 (childLL (childHH (childLL e24ThetaBelowRoot))) = true := by + have h : ((childLL (childHH (childLL e24ThetaBelowRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 (childLL (childHH (childLL e24ThetaBelowRoot))) h +theorem e24KC2ThetaBelowLeaf031 : + adaptiveCoverCheck 15 (childLH (childHH (childLL e24ThetaBelowRoot))) = true := by + have h : ((childLH (childHH (childLL e24ThetaBelowRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 (childLH (childHH (childLL e24ThetaBelowRoot))) h + +theorem e24KC2ThetaBelowLeaf032 : + adaptiveCoverCheck 15 (childHL (childHH (childLL e24ThetaBelowRoot))) = true := by + have h : physicallyIrrelevant (childHL (childHH (childLL e24ThetaBelowRoot))) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 15 (childHL (childHH (childLL + e24ThetaBelowRoot))) h +theorem e24KC2ThetaBelowLeaf033 : + adaptiveCoverCheck 15 (childHH (childHH (childLL e24ThetaBelowRoot))) = true := by + have h : ((childHH (childHH (childLL e24ThetaBelowRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 (childHH (childHH (childLL e24ThetaBelowRoot))) h +theorem e24KC2ThetaBelowLeaf100000 : + adaptiveCoverCheck 12 (childLL (childLL thetaBelowCell1000)) = true := by + have h : ((childLL (childLL thetaBelowCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL thetaBelowCell1000)) h +theorem e24KC2ThetaBelowLeaf100001 : + adaptiveCoverCheck 12 (childLH (childLL thetaBelowCell1000)) = true := by + have h : ((childLH (childLL thetaBelowCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL thetaBelowCell1000)) h +theorem e24KC2ThetaBelowLeaf100002 : + adaptiveCoverCheck 12 (childHL (childLL thetaBelowCell1000)) = true := by + have h : ((childHL (childLL thetaBelowCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL thetaBelowCell1000)) h +theorem e24KC2ThetaBelowLeaf100003 : + adaptiveCoverCheck 12 (childHH (childLL thetaBelowCell1000)) = true := by + have h : ((childHH (childLL thetaBelowCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL thetaBelowCell1000)) h +theorem e24KC2ThetaBelowLeaf100010 : + adaptiveCoverCheck 12 (childLL (childLH thetaBelowCell1000)) = true := by + have h : ((childLL (childLH thetaBelowCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH thetaBelowCell1000)) h +theorem e24KC2ThetaBelowLeaf100011 : + adaptiveCoverCheck 12 (childLH (childLH thetaBelowCell1000)) = true := by + have h : ((childLH (childLH thetaBelowCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH thetaBelowCell1000)) h +theorem e24KC2ThetaBelowLeaf100012 : + adaptiveCoverCheck 12 (childHL (childLH thetaBelowCell1000)) = true := by + have h : ((childHL (childLH thetaBelowCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH thetaBelowCell1000)) h +theorem e24KC2ThetaBelowLeaf100013 : + adaptiveCoverCheck 12 (childHH (childLH thetaBelowCell1000)) = true := by + have h : ((childHH (childLH thetaBelowCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH thetaBelowCell1000)) h +theorem e24KC2ThetaBelowLeaf100020 : + adaptiveCoverCheck 12 (childLL (childHL thetaBelowCell1000)) = true := by + have h : ((childLL (childHL thetaBelowCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childHL thetaBelowCell1000)) h +theorem e24KC2ThetaBelowLeaf100021 : + adaptiveCoverCheck 12 (childLH (childHL thetaBelowCell1000)) = true := by + have h : ((childLH (childHL thetaBelowCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childHL thetaBelowCell1000)) h +theorem e24KC2ThetaBelowLeaf100022 : + adaptiveCoverCheck 12 (childHL (childHL thetaBelowCell1000)) = true := by + have h : ((childHL (childHL thetaBelowCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childHL thetaBelowCell1000)) h +theorem e24KC2ThetaBelowLeaf100023 : + adaptiveCoverCheck 12 (childHH (childHL thetaBelowCell1000)) = true := by + have h : ((childHH (childHL thetaBelowCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childHL thetaBelowCell1000)) h +theorem e24KC2ThetaBelowLeaf100030 : + adaptiveCoverCheck 12 (childLL (childHH thetaBelowCell1000)) = true := by + have h : ((childLL (childHH thetaBelowCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childHH thetaBelowCell1000)) h +theorem e24KC2ThetaBelowLeaf100031 : + adaptiveCoverCheck 12 (childLH (childHH thetaBelowCell1000)) = true := by + have h : ((childLH (childHH thetaBelowCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childHH thetaBelowCell1000)) h +theorem e24KC2ThetaBelowLeaf100032 : + adaptiveCoverCheck 12 (childHL (childHH thetaBelowCell1000)) = true := by + have h : ((childHL (childHH thetaBelowCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childHH thetaBelowCell1000)) h +theorem e24KC2ThetaBelowLeaf100033 : + adaptiveCoverCheck 12 (childHH (childHH thetaBelowCell1000)) = true := by + have h : ((childHH (childHH thetaBelowCell1000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childHH thetaBelowCell1000)) h +theorem e24KC2ThetaBelowLeaf100100 : + adaptiveCoverCheck 12 (childLL (childLL thetaBelowCell1001)) = true := by + have h : ((childLL (childLL thetaBelowCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL thetaBelowCell1001)) h +theorem e24KC2ThetaBelowLeaf100101 : + adaptiveCoverCheck 12 (childLH (childLL thetaBelowCell1001)) = true := by + have h : ((childLH (childLL thetaBelowCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL thetaBelowCell1001)) h +theorem e24KC2ThetaBelowLeaf100102 : + adaptiveCoverCheck 12 (childHL (childLL thetaBelowCell1001)) = true := by + have h : ((childHL (childLL thetaBelowCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL thetaBelowCell1001)) h +theorem e24KC2ThetaBelowLeaf100103 : + adaptiveCoverCheck 12 (childHH (childLL thetaBelowCell1001)) = true := by + have h : ((childHH (childLL thetaBelowCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL thetaBelowCell1001)) h +theorem e24KC2ThetaBelowLeaf100110 : + adaptiveCoverCheck 12 (childLL (childLH thetaBelowCell1001)) = true := by + have h : ((childLL (childLH thetaBelowCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH thetaBelowCell1001)) h +theorem e24KC2ThetaBelowLeaf100111 : + adaptiveCoverCheck 12 (childLH (childLH thetaBelowCell1001)) = true := by + have h : ((childLH (childLH thetaBelowCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH thetaBelowCell1001)) h +theorem e24KC2ThetaBelowLeaf100112 : + adaptiveCoverCheck 12 (childHL (childLH thetaBelowCell1001)) = true := by + have h : ((childHL (childLH thetaBelowCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH thetaBelowCell1001)) h +theorem e24KC2ThetaBelowLeaf1001130 : + adaptiveCoverCheck 11 (childLL (childHH (childLH thetaBelowCell1001))) = true := by + have h : ((childLL (childHH (childLH thetaBelowCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHH (childLH thetaBelowCell1001))) h +theorem e24KC2ThetaBelowLeaf1001131 : + adaptiveCoverCheck 11 (childLH (childHH (childLH thetaBelowCell1001))) = true := by + have h : ((childLH (childHH (childLH thetaBelowCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHH (childLH thetaBelowCell1001))) h +theorem e24KC2ThetaBelowLeaf1001132 : + adaptiveCoverCheck 11 (childHL (childHH (childLH thetaBelowCell1001))) = true := by + have h : ((childHL (childHH (childLH thetaBelowCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childLH thetaBelowCell1001))) h +theorem e24KC2ThetaBelowLeaf1001133 : + adaptiveCoverCheck 11 (childHH (childHH (childLH thetaBelowCell1001))) = true := by + have h : ((childHH (childHH (childLH thetaBelowCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childLH thetaBelowCell1001))) h +theorem e24KC2ThetaBelowLeaf100120 : + adaptiveCoverCheck 12 (childLL (childHL thetaBelowCell1001)) = true := by + have h : ((childLL (childHL thetaBelowCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childHL thetaBelowCell1001)) h +theorem e24KC2ThetaBelowLeaf1001210 : + adaptiveCoverCheck 11 (childLL (childLH (childHL thetaBelowCell1001))) = true := by + have h : ((childLL (childLH (childHL thetaBelowCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLH (childHL thetaBelowCell1001))) h +theorem e24KC2ThetaBelowLeaf1001211 : + adaptiveCoverCheck 11 (childLH (childLH (childHL thetaBelowCell1001))) = true := by + have h : ((childLH (childLH (childHL thetaBelowCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLH (childHL thetaBelowCell1001))) h +theorem e24KC2ThetaBelowLeaf1001212 : + adaptiveCoverCheck 11 (childHL (childLH (childHL thetaBelowCell1001))) = true := by + have h : ((childHL (childLH (childHL thetaBelowCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLH (childHL thetaBelowCell1001))) h +theorem e24KC2ThetaBelowLeaf1001213 : + adaptiveCoverCheck 11 (childHH (childLH (childHL thetaBelowCell1001))) = true := by + have h : ((childHH (childLH (childHL thetaBelowCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLH (childHL thetaBelowCell1001))) h +theorem e24KC2ThetaBelowLeaf100122 : + adaptiveCoverCheck 12 (childHL (childHL thetaBelowCell1001)) = true := by + have h : ((childHL (childHL thetaBelowCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childHL thetaBelowCell1001)) h +theorem e24KC2ThetaBelowLeaf100123 : + adaptiveCoverCheck 12 (childHH (childHL thetaBelowCell1001)) = true := by + have h : ((childHH (childHL thetaBelowCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childHL thetaBelowCell1001)) h +theorem e24KC2ThetaBelowLeaf1001300 : + adaptiveCoverCheck 11 (childLL (childLL (childHH thetaBelowCell1001))) = true := by + have h : ((childLL (childLL (childHH thetaBelowCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLL (childHH thetaBelowCell1001))) h +theorem e24KC2ThetaBelowLeaf1001301 : + adaptiveCoverCheck 11 (childLH (childLL (childHH thetaBelowCell1001))) = true := by + have h : ((childLH (childLL (childHH thetaBelowCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLL (childHH thetaBelowCell1001))) h +theorem e24KC2ThetaBelowLeaf1001302 : + adaptiveCoverCheck 11 (childHL (childLL (childHH thetaBelowCell1001))) = true := by + have h : ((childHL (childLL (childHH thetaBelowCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLL (childHH thetaBelowCell1001))) h +theorem e24KC2ThetaBelowLeaf1001303 : + adaptiveCoverCheck 11 (childHH (childLL (childHH thetaBelowCell1001))) = true := by + have h : ((childHH (childLL (childHH thetaBelowCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLL (childHH thetaBelowCell1001))) h +theorem e24KC2ThetaBelowLeaf1001310 : + adaptiveCoverCheck 11 (childLL (childLH (childHH thetaBelowCell1001))) = true := by + have h : ((childLL (childLH (childHH thetaBelowCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLH (childHH thetaBelowCell1001))) h +theorem e24KC2ThetaBelowLeaf1001311 : + adaptiveCoverCheck 11 (childLH (childLH (childHH thetaBelowCell1001))) = true := by + have h : ((childLH (childLH (childHH thetaBelowCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLH (childHH thetaBelowCell1001))) h +theorem e24KC2ThetaBelowLeaf1001312 : + adaptiveCoverCheck 11 (childHL (childLH (childHH thetaBelowCell1001))) = true := by + have h : ((childHL (childLH (childHH thetaBelowCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLH (childHH thetaBelowCell1001))) h +theorem e24KC2ThetaBelowLeaf1001313 : + adaptiveCoverCheck 11 (childHH (childLH (childHH thetaBelowCell1001))) = true := by + have h : ((childHH (childLH (childHH thetaBelowCell1001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLH (childHH thetaBelowCell1001))) h +theorem e24KC2ThetaBelowLeaf100132 : + adaptiveCoverCheck 12 (childHL (childHH thetaBelowCell1001)) = true := by + have h : ((childHL (childHH thetaBelowCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childHH thetaBelowCell1001)) h +theorem e24KC2ThetaBelowLeaf100133 : + adaptiveCoverCheck 12 (childHH (childHH thetaBelowCell1001)) = true := by + have h : ((childHH (childHH thetaBelowCell1001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childHH thetaBelowCell1001)) h +theorem e24KC2ThetaBelowLeaf10020 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1002) = true := by + have h : ((childLL thetaBelowCell1002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL thetaBelowCell1002) h +theorem e24KC2ThetaBelowLeaf10021 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1002) = true := by + have h : ((childLH thetaBelowCell1002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH thetaBelowCell1002) h +theorem e24KC2ThetaBelowLeaf10022 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1002) = true := by + have h : ((childHL thetaBelowCell1002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell1002) h +theorem e24KC2ThetaBelowLeaf10023 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1002) = true := by + have h : ((childHH thetaBelowCell1002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell1002) h +theorem e24KC2ThetaBelowLeaf10030 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1003) = true := by + have h : ((childLL thetaBelowCell1003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL thetaBelowCell1003) h +theorem e24KC2ThetaBelowLeaf100310 : + adaptiveCoverCheck 12 (childLL (childLH thetaBelowCell1003)) = true := by + have h : ((childLL (childLH thetaBelowCell1003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH thetaBelowCell1003)) h +theorem e24KC2ThetaBelowLeaf100311 : + adaptiveCoverCheck 12 (childLH (childLH thetaBelowCell1003)) = true := by + have h : ((childLH (childLH thetaBelowCell1003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH thetaBelowCell1003)) h +theorem e24KC2ThetaBelowLeaf100312 : + adaptiveCoverCheck 12 (childHL (childLH thetaBelowCell1003)) = true := by + have h : ((childHL (childLH thetaBelowCell1003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH thetaBelowCell1003)) h +theorem e24KC2ThetaBelowLeaf100313 : + adaptiveCoverCheck 12 (childHH (childLH thetaBelowCell1003)) = true := by + have h : ((childHH (childLH thetaBelowCell1003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH thetaBelowCell1003)) h +theorem e24KC2ThetaBelowLeaf10032 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1003) = true := by + have h : ((childHL thetaBelowCell1003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell1003) h +theorem e24KC2ThetaBelowLeaf10033 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1003) = true := by + have h : ((childHH thetaBelowCell1003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell1003) h +theorem e24KC2ThetaBelowLeaf101000 : + adaptiveCoverCheck 12 (childLL (childLL thetaBelowCell1010)) = true := by + have h : ((childLL (childLL thetaBelowCell1010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL thetaBelowCell1010)) h +theorem e24KC2ThetaBelowLeaf1010010 : + adaptiveCoverCheck 11 (childLL (childLH (childLL thetaBelowCell1010))) = true := by + have h : ((childLL (childLH (childLL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLH (childLL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010011 : + adaptiveCoverCheck 11 (childLH (childLH (childLL thetaBelowCell1010))) = true := by + have h : ((childLH (childLH (childLL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLH (childLL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010012 : + adaptiveCoverCheck 11 (childHL (childLH (childLL thetaBelowCell1010))) = true := by + have h : ((childHL (childLH (childLL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLH (childLL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010013 : + adaptiveCoverCheck 11 (childHH (childLH (childLL thetaBelowCell1010))) = true := by + have h : ((childHH (childLH (childLL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLH (childLL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010020 : + adaptiveCoverCheck 11 (childLL (childHL (childLL thetaBelowCell1010))) = true := by + have h : ((childLL (childHL (childLL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHL (childLL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010021 : + adaptiveCoverCheck 11 (childLH (childHL (childLL thetaBelowCell1010))) = true := by + have h : ((childLH (childHL (childLL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHL (childLL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010022 : + adaptiveCoverCheck 11 (childHL (childHL (childLL thetaBelowCell1010))) = true := by + have h : ((childHL (childHL (childLL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childLL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010023 : + adaptiveCoverCheck 11 (childHH (childHL (childLL thetaBelowCell1010))) = true := by + have h : ((childHH (childHL (childLL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childLL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010030 : + adaptiveCoverCheck 11 (childLL (childHH (childLL thetaBelowCell1010))) = true := by + have h : ((childLL (childHH (childLL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHH (childLL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010031 : + adaptiveCoverCheck 11 (childLH (childHH (childLL thetaBelowCell1010))) = true := by + have h : ((childLH (childHH (childLL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHH (childLL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010032 : + adaptiveCoverCheck 11 (childHL (childHH (childLL thetaBelowCell1010))) = true := by + have h : ((childHL (childHH (childLL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childLL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010033 : + adaptiveCoverCheck 11 (childHH (childHH (childLL thetaBelowCell1010))) = true := by + have h : ((childHH (childHH (childLL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childLL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010100 : + adaptiveCoverCheck 11 (childLL (childLL (childLH thetaBelowCell1010))) = true := by + have h : ((childLL (childLL (childLH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLL (childLH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010101 : + adaptiveCoverCheck 11 (childLH (childLL (childLH thetaBelowCell1010))) = true := by + have h : ((childLH (childLL (childLH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLL (childLH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010102 : + adaptiveCoverCheck 11 (childHL (childLL (childLH thetaBelowCell1010))) = true := by + have h : ((childHL (childLL (childLH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLL (childLH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010103 : + adaptiveCoverCheck 11 (childHH (childLL (childLH thetaBelowCell1010))) = true := by + have h : ((childHH (childLL (childLH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLL (childLH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010110 : + adaptiveCoverCheck 11 (childLL (childLH (childLH thetaBelowCell1010))) = true := by + have h : ((childLL (childLH (childLH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLH (childLH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010111 : + adaptiveCoverCheck 11 (childLH (childLH (childLH thetaBelowCell1010))) = true := by + have h : ((childLH (childLH (childLH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLH (childLH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010112 : + adaptiveCoverCheck 11 (childHL (childLH (childLH thetaBelowCell1010))) = true := by + have h : ((childHL (childLH (childLH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLH (childLH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010113 : + adaptiveCoverCheck 11 (childHH (childLH (childLH thetaBelowCell1010))) = true := by + have h : ((childHH (childLH (childLH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLH (childLH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010120 : + adaptiveCoverCheck 11 (childLL (childHL (childLH thetaBelowCell1010))) = true := by + have h : ((childLL (childHL (childLH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHL (childLH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010121 : + adaptiveCoverCheck 11 (childLH (childHL (childLH thetaBelowCell1010))) = true := by + have h : ((childLH (childHL (childLH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHL (childLH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010122 : + adaptiveCoverCheck 11 (childHL (childHL (childLH thetaBelowCell1010))) = true := by + have h : ((childHL (childHL (childLH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childLH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010123 : + adaptiveCoverCheck 11 (childHH (childHL (childLH thetaBelowCell1010))) = true := by + have h : ((childHH (childHL (childLH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childLH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010130 : + adaptiveCoverCheck 11 (childLL (childHH (childLH thetaBelowCell1010))) = true := by + have h : ((childLL (childHH (childLH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHH (childLH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010131 : + adaptiveCoverCheck 11 (childLH (childHH (childLH thetaBelowCell1010))) = true := by + have h : ((childLH (childHH (childLH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHH (childLH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010132 : + adaptiveCoverCheck 11 (childHL (childHH (childLH thetaBelowCell1010))) = true := by + have h : ((childHL (childHH (childLH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childLH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010133 : + adaptiveCoverCheck 11 (childHH (childHH (childLH thetaBelowCell1010))) = true := by + have h : ((childHH (childHH (childLH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childLH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010200 : + adaptiveCoverCheck 11 (childLL (childLL (childHL thetaBelowCell1010))) = true := by + have h : ((childLL (childLL (childHL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLL (childHL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010201 : + adaptiveCoverCheck 11 (childLH (childLL (childHL thetaBelowCell1010))) = true := by + have h : ((childLH (childLL (childHL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLL (childHL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010202 : + adaptiveCoverCheck 11 (childHL (childLL (childHL thetaBelowCell1010))) = true := by + have h : ((childHL (childLL (childHL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLL (childHL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010203 : + adaptiveCoverCheck 11 (childHH (childLL (childHL thetaBelowCell1010))) = true := by + have h : ((childHH (childLL (childHL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLL (childHL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010210 : + adaptiveCoverCheck 11 (childLL (childLH (childHL thetaBelowCell1010))) = true := by + have h : ((childLL (childLH (childHL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLH (childHL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010211 : + adaptiveCoverCheck 11 (childLH (childLH (childHL thetaBelowCell1010))) = true := by + have h : ((childLH (childLH (childHL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLH (childHL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010212 : + adaptiveCoverCheck 11 (childHL (childLH (childHL thetaBelowCell1010))) = true := by + have h : ((childHL (childLH (childHL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLH (childHL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010213 : + adaptiveCoverCheck 11 (childHH (childLH (childHL thetaBelowCell1010))) = true := by + have h : ((childHH (childLH (childHL thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLH (childHL thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf101022 : + adaptiveCoverCheck 12 (childHL (childHL thetaBelowCell1010)) = true := by + have h : ((childHL (childHL thetaBelowCell1010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childHL thetaBelowCell1010)) h +theorem e24KC2ThetaBelowLeaf101023 : + adaptiveCoverCheck 12 (childHH (childHL thetaBelowCell1010)) = true := by + have h : ((childHH (childHL thetaBelowCell1010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childHL thetaBelowCell1010)) h +theorem e24KC2ThetaBelowLeaf1010300 : + adaptiveCoverCheck 11 (childLL (childLL (childHH thetaBelowCell1010))) = true := by + have h : ((childLL (childLL (childHH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLL (childHH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010301 : + adaptiveCoverCheck 11 (childLH (childLL (childHH thetaBelowCell1010))) = true := by + have h : ((childLH (childLL (childHH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLL (childHH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010302 : + adaptiveCoverCheck 11 (childHL (childLL (childHH thetaBelowCell1010))) = true := by + have h : ((childHL (childLL (childHH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLL (childHH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010303 : + adaptiveCoverCheck 11 (childHH (childLL (childHH thetaBelowCell1010))) = true := by + have h : ((childHH (childLL (childHH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLL (childHH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010310 : + adaptiveCoverCheck 11 (childLL (childLH (childHH thetaBelowCell1010))) = true := by + have h : ((childLL (childLH (childHH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLH (childHH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010311 : + adaptiveCoverCheck 11 (childLH (childLH (childHH thetaBelowCell1010))) = true := by + have h : ((childLH (childLH (childHH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLH (childHH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010312 : + adaptiveCoverCheck 11 (childHL (childLH (childHH thetaBelowCell1010))) = true := by + have h : ((childHL (childLH (childHH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLH (childHH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010313 : + adaptiveCoverCheck 11 (childHH (childLH (childHH thetaBelowCell1010))) = true := by + have h : ((childHH (childLH (childHH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLH (childHH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010320 : + adaptiveCoverCheck 11 (childLL (childHL (childHH thetaBelowCell1010))) = true := by + have h : ((childLL (childHL (childHH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHL (childHH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010321 : + adaptiveCoverCheck 11 (childLH (childHL (childHH thetaBelowCell1010))) = true := by + have h : ((childLH (childHL (childHH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHL (childHH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010322 : + adaptiveCoverCheck 11 (childHL (childHL (childHH thetaBelowCell1010))) = true := by + have h : ((childHL (childHL (childHH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childHH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010323 : + adaptiveCoverCheck 11 (childHH (childHL (childHH thetaBelowCell1010))) = true := by + have h : ((childHH (childHL (childHH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childHH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010330 : + adaptiveCoverCheck 11 (childLL (childHH (childHH thetaBelowCell1010))) = true := by + have h : ((childLL (childHH (childHH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHH (childHH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010331 : + adaptiveCoverCheck 11 (childLH (childHH (childHH thetaBelowCell1010))) = true := by + have h : ((childLH (childHH (childHH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHH (childHH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010332 : + adaptiveCoverCheck 11 (childHL (childHH (childHH thetaBelowCell1010))) = true := by + have h : ((childHL (childHH (childHH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childHH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1010333 : + adaptiveCoverCheck 11 (childHH (childHH (childHH thetaBelowCell1010))) = true := by + have h : ((childHH (childHH (childHH thetaBelowCell1010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childHH thetaBelowCell1010))) h +theorem e24KC2ThetaBelowLeaf1011000 : + adaptiveCoverCheck 11 (childLL (childLL (childLL thetaBelowCell1011))) = true := by + have h : ((childLL (childLL (childLL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLL (childLL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011001 : + adaptiveCoverCheck 11 (childLH (childLL (childLL thetaBelowCell1011))) = true := by + have h : ((childLH (childLL (childLL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLL (childLL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011002 : + adaptiveCoverCheck 11 (childHL (childLL (childLL thetaBelowCell1011))) = true := by + have h : ((childHL (childLL (childLL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLL (childLL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011003 : + adaptiveCoverCheck 11 (childHH (childLL (childLL thetaBelowCell1011))) = true := by + have h : ((childHH (childLL (childLL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLL (childLL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf101101 : + adaptiveCoverCheck 12 (childLH (childLL thetaBelowCell1011)) = true := by + have h : ((childLH (childLL thetaBelowCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL thetaBelowCell1011)) h +theorem e24KC2ThetaBelowLeaf1011020 : + adaptiveCoverCheck 11 (childLL (childHL (childLL thetaBelowCell1011))) = true := by + have h : ((childLL (childHL (childLL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHL (childLL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011021 : + adaptiveCoverCheck 11 (childLH (childHL (childLL thetaBelowCell1011))) = true := by + have h : ((childLH (childHL (childLL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHL (childLL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011022 : + adaptiveCoverCheck 11 (childHL (childHL (childLL thetaBelowCell1011))) = true := by + have h : ((childHL (childHL (childLL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childLL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011023 : + adaptiveCoverCheck 11 (childHH (childHL (childLL thetaBelowCell1011))) = true := by + have h : ((childHH (childHL (childLL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childLL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011030 : + adaptiveCoverCheck 11 (childLL (childHH (childLL thetaBelowCell1011))) = true := by + have h : ((childLL (childHH (childLL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHH (childLL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011031 : + adaptiveCoverCheck 11 (childLH (childHH (childLL thetaBelowCell1011))) = true := by + have h : ((childLH (childHH (childLL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHH (childLL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011032 : + adaptiveCoverCheck 11 (childHL (childHH (childLL thetaBelowCell1011))) = true := by + have h : ((childHL (childHH (childLL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childLL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011033 : + adaptiveCoverCheck 11 (childHH (childHH (childLL thetaBelowCell1011))) = true := by + have h : ((childHH (childHH (childLL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childLL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf101110 : + adaptiveCoverCheck 12 (childLL (childLH thetaBelowCell1011)) = true := by + have h : ((childLL (childLH thetaBelowCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH thetaBelowCell1011)) h +theorem e24KC2ThetaBelowLeaf101111 : + adaptiveCoverCheck 12 (childLH (childLH thetaBelowCell1011)) = true := by + have h : ((childLH (childLH thetaBelowCell1011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH thetaBelowCell1011)) h +theorem e24KC2ThetaBelowLeaf1011120 : + adaptiveCoverCheck 11 (childLL (childHL (childLH thetaBelowCell1011))) = true := by + have h : ((childLL (childHL (childLH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHL (childLH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011121 : + adaptiveCoverCheck 11 (childLH (childHL (childLH thetaBelowCell1011))) = true := by + have h : ((childLH (childHL (childLH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHL (childLH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011122 : + adaptiveCoverCheck 11 (childHL (childHL (childLH thetaBelowCell1011))) = true := by + have h : ((childHL (childHL (childLH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childLH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011123 : + adaptiveCoverCheck 11 (childHH (childHL (childLH thetaBelowCell1011))) = true := by + have h : ((childHH (childHL (childLH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childLH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011130 : + adaptiveCoverCheck 11 (childLL (childHH (childLH thetaBelowCell1011))) = true := by + have h : ((childLL (childHH (childLH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHH (childLH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011131 : + adaptiveCoverCheck 11 (childLH (childHH (childLH thetaBelowCell1011))) = true := by + have h : ((childLH (childHH (childLH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHH (childLH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011132 : + adaptiveCoverCheck 11 (childHL (childHH (childLH thetaBelowCell1011))) = true := by + have h : ((childHL (childHH (childLH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childLH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011133 : + adaptiveCoverCheck 11 (childHH (childHH (childLH thetaBelowCell1011))) = true := by + have h : ((childHH (childHH (childLH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childLH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011200 : + adaptiveCoverCheck 11 (childLL (childLL (childHL thetaBelowCell1011))) = true := by + have h : ((childLL (childLL (childHL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLL (childHL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011201 : + adaptiveCoverCheck 11 (childLH (childLL (childHL thetaBelowCell1011))) = true := by + have h : ((childLH (childLL (childHL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLL (childHL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011202 : + adaptiveCoverCheck 11 (childHL (childLL (childHL thetaBelowCell1011))) = true := by + have h : ((childHL (childLL (childHL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLL (childHL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011203 : + adaptiveCoverCheck 11 (childHH (childLL (childHL thetaBelowCell1011))) = true := by + have h : ((childHH (childLL (childHL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLL (childHL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011210 : + adaptiveCoverCheck 11 (childLL (childLH (childHL thetaBelowCell1011))) = true := by + have h : ((childLL (childLH (childHL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLH (childHL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011211 : + adaptiveCoverCheck 11 (childLH (childLH (childHL thetaBelowCell1011))) = true := by + have h : ((childLH (childLH (childHL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLH (childHL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011212 : + adaptiveCoverCheck 11 (childHL (childLH (childHL thetaBelowCell1011))) = true := by + have h : ((childHL (childLH (childHL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLH (childHL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011213 : + adaptiveCoverCheck 11 (childHH (childLH (childHL thetaBelowCell1011))) = true := by + have h : ((childHH (childLH (childHL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLH (childHL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011220 : + adaptiveCoverCheck 11 (childLL (childHL (childHL thetaBelowCell1011))) = true := by + have h : ((childLL (childHL (childHL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHL (childHL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011221 : + adaptiveCoverCheck 11 (childLH (childHL (childHL thetaBelowCell1011))) = true := by + have h : ((childLH (childHL (childHL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHL (childHL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011222 : + adaptiveCoverCheck 11 (childHL (childHL (childHL thetaBelowCell1011))) = true := by + have h : ((childHL (childHL (childHL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childHL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011223 : + adaptiveCoverCheck 11 (childHH (childHL (childHL thetaBelowCell1011))) = true := by + have h : ((childHH (childHL (childHL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childHL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011230 : + adaptiveCoverCheck 11 (childLL (childHH (childHL thetaBelowCell1011))) = true := by + have h : ((childLL (childHH (childHL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHH (childHL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011231 : + adaptiveCoverCheck 11 (childLH (childHH (childHL thetaBelowCell1011))) = true := by + have h : ((childLH (childHH (childHL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHH (childHL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011232 : + adaptiveCoverCheck 11 (childHL (childHH (childHL thetaBelowCell1011))) = true := by + have h : ((childHL (childHH (childHL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childHL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011233 : + adaptiveCoverCheck 11 (childHH (childHH (childHL thetaBelowCell1011))) = true := by + have h : ((childHH (childHH (childHL thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childHL thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011300 : + adaptiveCoverCheck 11 (childLL (childLL (childHH thetaBelowCell1011))) = true := by + have h : ((childLL (childLL (childHH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLL (childHH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011301 : + adaptiveCoverCheck 11 (childLH (childLL (childHH thetaBelowCell1011))) = true := by + have h : ((childLH (childLL (childHH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLL (childHH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011302 : + adaptiveCoverCheck 11 (childHL (childLL (childHH thetaBelowCell1011))) = true := by + have h : ((childHL (childLL (childHH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLL (childHH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf10113030 : + adaptiveCoverCheck 10 thetaBelowCell10113030 = true := by + have h : (thetaBelowCell10113030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell10113030 h +theorem e24KC2ThetaBelowLeaf10113031 : + adaptiveCoverCheck 10 thetaBelowCell10113031 = true := by + have h : (thetaBelowCell10113031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell10113031 h +theorem e24KC2ThetaBelowLeaf10113032 : + adaptiveCoverCheck 10 thetaBelowCell10113032 = true := by + have h : (thetaBelowCell10113032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell10113032 h +theorem e24KC2ThetaBelowLeaf10113033 : + adaptiveCoverCheck 10 thetaBelowCell10113033 = true := by + have h : (thetaBelowCell10113033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell10113033 h +theorem e24KC2ThetaBelowLeaf1011310 : + adaptiveCoverCheck 11 (childLL (childLH (childHH thetaBelowCell1011))) = true := by + have h : ((childLL (childLH (childHH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLH (childHH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf10113110 : + adaptiveCoverCheck 10 thetaBelowCell10113110 = true := by + have h : (thetaBelowCell10113110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell10113110 h +theorem e24KC2ThetaBelowLeaf10113111 : + adaptiveCoverCheck 10 thetaBelowCell10113111 = true := by + have h : (thetaBelowCell10113111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell10113111 h +theorem e24KC2ThetaBelowLeaf10113112 : + adaptiveCoverCheck 10 thetaBelowCell10113112 = true := by + have h : (thetaBelowCell10113112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell10113112 h +theorem e24KC2ThetaBelowLeaf10113113 : + adaptiveCoverCheck 10 thetaBelowCell10113113 = true := by + have h : (thetaBelowCell10113113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell10113113 h +theorem e24KC2ThetaBelowLeaf10113120 : + adaptiveCoverCheck 10 thetaBelowCell10113120 = true := by + have h : (thetaBelowCell10113120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell10113120 h +theorem e24KC2ThetaBelowLeaf10113121 : + adaptiveCoverCheck 10 thetaBelowCell10113121 = true := by + have h : (thetaBelowCell10113121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell10113121 h +theorem e24KC2ThetaBelowLeaf10113122 : + adaptiveCoverCheck 10 thetaBelowCell10113122 = true := by + have h : (thetaBelowCell10113122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell10113122 h +theorem e24KC2ThetaBelowLeaf10113123 : + adaptiveCoverCheck 10 thetaBelowCell10113123 = true := by + have h : (thetaBelowCell10113123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell10113123 h +theorem e24KC2ThetaBelowLeaf10113130 : + adaptiveCoverCheck 10 thetaBelowCell10113130 = true := by + have h : (thetaBelowCell10113130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell10113130 h +theorem e24KC2ThetaBelowLeaf10113131 : + adaptiveCoverCheck 10 thetaBelowCell10113131 = true := by + have h : (thetaBelowCell10113131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell10113131 h +theorem e24KC2ThetaBelowLeaf10113132 : + adaptiveCoverCheck 10 thetaBelowCell10113132 = true := by + have h : (thetaBelowCell10113132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell10113132 h +theorem e24KC2ThetaBelowLeaf10113133 : + adaptiveCoverCheck 10 thetaBelowCell10113133 = true := by + have h : (thetaBelowCell10113133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell10113133 h +theorem e24KC2ThetaBelowLeaf1011320 : + adaptiveCoverCheck 11 (childLL (childHL (childHH thetaBelowCell1011))) = true := by + have h : ((childLL (childHL (childHH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHL (childHH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011321 : + adaptiveCoverCheck 11 (childLH (childHL (childHH thetaBelowCell1011))) = true := by + have h : ((childLH (childHL (childHH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHL (childHH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011322 : + adaptiveCoverCheck 11 (childHL (childHL (childHH thetaBelowCell1011))) = true := by + have h : ((childHL (childHL (childHH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childHH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011323 : + adaptiveCoverCheck 11 (childHH (childHL (childHH thetaBelowCell1011))) = true := by + have h : ((childHH (childHL (childHH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childHH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011330 : + adaptiveCoverCheck 11 (childLL (childHH (childHH thetaBelowCell1011))) = true := by + have h : ((childLL (childHH (childHH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHH (childHH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011331 : + adaptiveCoverCheck 11 (childLH (childHH (childHH thetaBelowCell1011))) = true := by + have h : ((childLH (childHH (childHH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHH (childHH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011332 : + adaptiveCoverCheck 11 (childHL (childHH (childHH thetaBelowCell1011))) = true := by + have h : ((childHL (childHH (childHH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childHH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf1011333 : + adaptiveCoverCheck 11 (childHH (childHH (childHH thetaBelowCell1011))) = true := by + have h : ((childHH (childHH (childHH thetaBelowCell1011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childHH thetaBelowCell1011))) h +theorem e24KC2ThetaBelowLeaf101200 : + adaptiveCoverCheck 12 (childLL (childLL thetaBelowCell1012)) = true := by + have h : ((childLL (childLL thetaBelowCell1012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL thetaBelowCell1012)) h +theorem e24KC2ThetaBelowLeaf101201 : + adaptiveCoverCheck 12 (childLH (childLL thetaBelowCell1012)) = true := by + have h : ((childLH (childLL thetaBelowCell1012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL thetaBelowCell1012)) h +theorem e24KC2ThetaBelowLeaf101202 : + adaptiveCoverCheck 12 (childHL (childLL thetaBelowCell1012)) = true := by + have h : ((childHL (childLL thetaBelowCell1012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL thetaBelowCell1012)) h +theorem e24KC2ThetaBelowLeaf101203 : + adaptiveCoverCheck 12 (childHH (childLL thetaBelowCell1012)) = true := by + have h : ((childHH (childLL thetaBelowCell1012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL thetaBelowCell1012)) h +theorem e24KC2ThetaBelowLeaf101210 : + adaptiveCoverCheck 12 (childLL (childLH thetaBelowCell1012)) = true := by + have h : ((childLL (childLH thetaBelowCell1012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH thetaBelowCell1012)) h +theorem e24KC2ThetaBelowLeaf101211 : + adaptiveCoverCheck 12 (childLH (childLH thetaBelowCell1012)) = true := by + have h : ((childLH (childLH thetaBelowCell1012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH thetaBelowCell1012)) h +theorem e24KC2ThetaBelowLeaf101212 : + adaptiveCoverCheck 12 (childHL (childLH thetaBelowCell1012)) = true := by + have h : ((childHL (childLH thetaBelowCell1012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH thetaBelowCell1012)) h +theorem e24KC2ThetaBelowLeaf101213 : + adaptiveCoverCheck 12 (childHH (childLH thetaBelowCell1012)) = true := by + have h : ((childHH (childLH thetaBelowCell1012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH thetaBelowCell1012)) h +theorem e24KC2ThetaBelowLeaf10122 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1012) = true := by + have h : ((childHL thetaBelowCell1012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell1012) h +theorem e24KC2ThetaBelowLeaf10123 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1012) = true := by + have h : ((childHH thetaBelowCell1012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell1012) h +theorem e24KC2ThetaBelowLeaf101300 : + adaptiveCoverCheck 12 (childLL (childLL thetaBelowCell1013)) = true := by + have h : ((childLL (childLL thetaBelowCell1013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL thetaBelowCell1013)) h +theorem e24KC2ThetaBelowLeaf101301 : + adaptiveCoverCheck 12 (childLH (childLL thetaBelowCell1013)) = true := by + have h : ((childLH (childLL thetaBelowCell1013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL thetaBelowCell1013)) h +theorem e24KC2ThetaBelowLeaf101302 : + adaptiveCoverCheck 12 (childHL (childLL thetaBelowCell1013)) = true := by + have h : ((childHL (childLL thetaBelowCell1013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL thetaBelowCell1013)) h +theorem e24KC2ThetaBelowLeaf101303 : + adaptiveCoverCheck 12 (childHH (childLL thetaBelowCell1013)) = true := by + have h : ((childHH (childLL thetaBelowCell1013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL thetaBelowCell1013)) h +theorem e24KC2ThetaBelowLeaf101310 : + adaptiveCoverCheck 12 (childLL (childLH thetaBelowCell1013)) = true := by + have h : ((childLL (childLH thetaBelowCell1013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH thetaBelowCell1013)) h +theorem e24KC2ThetaBelowLeaf101311 : + adaptiveCoverCheck 12 (childLH (childLH thetaBelowCell1013)) = true := by + have h : ((childLH (childLH thetaBelowCell1013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH thetaBelowCell1013)) h +theorem e24KC2ThetaBelowLeaf101312 : + adaptiveCoverCheck 12 (childHL (childLH thetaBelowCell1013)) = true := by + have h : ((childHL (childLH thetaBelowCell1013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH thetaBelowCell1013)) h +theorem e24KC2ThetaBelowLeaf101313 : + adaptiveCoverCheck 12 (childHH (childLH thetaBelowCell1013)) = true := by + have h : ((childHH (childLH thetaBelowCell1013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH thetaBelowCell1013)) h +theorem e24KC2ThetaBelowLeaf10132 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1013) = true := by + have h : ((childHL thetaBelowCell1013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell1013) h +theorem e24KC2ThetaBelowLeaf10133 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1013) = true := by + have h : ((childHH thetaBelowCell1013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell1013) h +theorem e24KC2ThetaBelowLeaf1020 : + adaptiveCoverCheck 14 thetaBelowCell1020 = true := by + have h : (thetaBelowCell1020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1020 h +theorem e24KC2ThetaBelowLeaf1021 : + adaptiveCoverCheck 14 thetaBelowCell1021 = true := by + have h : (thetaBelowCell1021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1021 h +theorem e24KC2ThetaBelowLeaf1022 : + adaptiveCoverCheck 14 thetaBelowCell1022 = true := by + have h : (thetaBelowCell1022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1022 h + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC6ProofBatch11b2bedf1dcd3516`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC6 explicit proof-producing certificate batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2d2385ed48 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2d2385ed48 + +open CertificateCells2d2385ed48 +theorem cover_subtree_edb64f01a0c6 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022103100) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022103100) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022103100)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022103100))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022103100))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHL + thetaAboveCell000022103100))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHL + thetaAboveCell000022103100))) h)) + (by + have h : ((childLH (childHL thetaAboveCell000022103100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022103100)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022103100)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022103100))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022103100))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022103100))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022103100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022103100)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022103100))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022103100))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022103100))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022103100))) h)) + +theorem cover_subtree_a40a1df9b3a1 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022103100) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022103100) + (by + have h : ((childLL (childHH thetaAboveCell000022103100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022103100)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022103100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022103100)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022103100)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022103100))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022103100))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022103100))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022103100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022103100)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022103100))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022103100))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022103100))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022103100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022103100))) h)) + +theorem cover_subtree_e870c75d402b : + adaptiveCoverCheck 7 thetaAboveCell000022103100 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022103100 + (by + have h : ((childLL thetaAboveCell000022103100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022103100) h) + (by + have h : ((childLH thetaAboveCell000022103100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022103100) h) + cover_subtree_edb64f01a0c6 + cover_subtree_a40a1df9b3a1 + +theorem cover_subtree_5efea1d56268 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022103101) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022103101) + (by + have h : ((childLL (childHL thetaAboveCell000022103101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022103101)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022103101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022103101)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022103101)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022103101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022103101))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022103101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022103101))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022103101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022103101))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022103101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022103101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022103101)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022103101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022103101))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022103101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022103101))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022103101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022103101))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022103101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022103101))) h)) + +theorem cover_subtree_d2aa99fffe31 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022103101) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022103101) + (by + have h : ((childLL (childHH thetaAboveCell000022103101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022103101)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022103101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022103101)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022103101)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022103101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022103101))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022103101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022103101))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022103101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022103101))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022103101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022103101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022103101)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022103101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022103101))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022103101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022103101))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022103101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022103101))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022103101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022103101))) h)) + +theorem cover_subtree_0abbf33fdebf : + adaptiveCoverCheck 7 thetaAboveCell000022103101 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022103101 + (by + have h : ((childLL thetaAboveCell000022103101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022103101) h) + (by + have h : ((childLH thetaAboveCell000022103101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022103101) h) + cover_subtree_5efea1d56268 + cover_subtree_d2aa99fffe31 + +theorem cover_subtree_1d0945e98034 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022103102) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022103102) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022103102)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022103102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022103102))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022103102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022103102))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022103102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022103102))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022103102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022103102))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022103102)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022103102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022103102))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022103102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022103102))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022103102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022103102))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022103102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022103102))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022103102)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022103102)) h) + +theorem cover_subtree_e19e97fa44f4 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022103102) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022103102) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022103102)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022103102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022103102))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022103102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022103102))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022103102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022103102))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022103102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022103102))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022103102)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022103102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022103102))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022103102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022103102))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022103102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022103102))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022103102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022103102))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022103102)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022103102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022103102)) h) + +theorem cover_subtree_92cf9ed4da50 : + adaptiveCoverCheck 7 thetaAboveCell000022103102 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022103102 + cover_subtree_1d0945e98034 + cover_subtree_e19e97fa44f4 + (by + have h : ((childHL thetaAboveCell000022103102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022103102) h) + (by + have h : ((childHH thetaAboveCell000022103102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022103102) h) + +theorem cover_subtree_637f019f84f2 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022103103) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022103103) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022103103)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022103103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022103103))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022103103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022103103))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022103103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022103103))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022103103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022103103))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022103103)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022103103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022103103))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022103103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022103103))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022103103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022103103))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022103103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022103103))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022103103)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022103103)) h) + +theorem cover_subtree_2f9a3a39c9a5 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022103103) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022103103) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022103103)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022103103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022103103))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022103103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022103103))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022103103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022103103))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022103103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022103103))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022103103)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022103103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022103103))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022103103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022103103))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022103103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022103103))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022103103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022103103))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022103103)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022103103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022103103)) h) + +theorem cover_subtree_30350e948f84 : + adaptiveCoverCheck 7 thetaAboveCell000022103103 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022103103 + cover_subtree_637f019f84f2 + cover_subtree_2f9a3a39c9a5 + (by + have h : ((childHL thetaAboveCell000022103103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022103103) h) + (by + have h : ((childHH thetaAboveCell000022103103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022103103) h) + +theorem cover_subtree_4a228fe99e26 : + adaptiveCoverCheck 8 (childLL (childLH (childHH thetaAboveCell00002210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH thetaAboveCell00002210))) + cover_subtree_e870c75d402b + cover_subtree_0abbf33fdebf + cover_subtree_92cf9ed4da50 + cover_subtree_30350e948f84 + +theorem cover_subtree_dec56845b136 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022103110) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022103110) + (by + have h : ((childLL (childHL thetaAboveCell000022103110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022103110)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022103110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022103110)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022103110)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022103110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022103110))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022103110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022103110))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022103110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022103110))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022103110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022103110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022103110)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022103110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022103110))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022103110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022103110))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022103110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022103110))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022103110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022103110))) h)) + +theorem cover_subtree_6de59f8bb098 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022103110) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022103110) + (by + have h : ((childLL (childHH thetaAboveCell000022103110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022103110)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022103110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022103110)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022103110)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022103110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022103110))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022103110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022103110))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022103110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022103110))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022103110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022103110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022103110)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022103110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022103110))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022103110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022103110))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022103110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022103110))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022103110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022103110))) h)) + +theorem cover_subtree_ab36c8726f5a : + adaptiveCoverCheck 7 thetaAboveCell000022103110 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022103110 + (by + have h : ((childLL thetaAboveCell000022103110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022103110) h) + (by + have h : ((childLH thetaAboveCell000022103110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022103110) h) + cover_subtree_dec56845b136 + cover_subtree_6de59f8bb098 + +theorem cover_subtree_59e28493c6fc : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022103111) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022103111) + (by + have h : ((childLL (childHL thetaAboveCell000022103111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022103111)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022103111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022103111)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022103111)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022103111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022103111))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022103111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022103111))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022103111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022103111))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022103111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022103111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022103111)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022103111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022103111))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022103111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022103111))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022103111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022103111))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022103111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022103111))) h)) + +theorem cover_subtree_de44712e43a7 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022103111) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022103111) + (by + have h : ((childLL (childHH thetaAboveCell000022103111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022103111)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022103111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022103111)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022103111)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022103111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022103111))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022103111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022103111))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022103111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022103111))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022103111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022103111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022103111)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022103111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022103111))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022103111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022103111))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022103111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022103111))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022103111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022103111))) h)) + +theorem cover_subtree_526ec4bd5c8b : + adaptiveCoverCheck 7 thetaAboveCell000022103111 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022103111 + (by + have h : ((childLL thetaAboveCell000022103111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022103111) h) + (by + have h : ((childLH thetaAboveCell000022103111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022103111) h) + cover_subtree_59e28493c6fc + cover_subtree_de44712e43a7 + +theorem cover_subtree_f14f28c14e3c : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022103112) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022103112) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022103112)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022103112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022103112))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022103112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022103112))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022103112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022103112))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022103112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022103112))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022103112)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022103112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022103112))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022103112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022103112))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022103112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022103112))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022103112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022103112))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022103112)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022103112)) h) + +theorem cover_subtree_2e18124844df : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022103112) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022103112) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022103112)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022103112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022103112))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022103112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022103112))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022103112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022103112))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022103112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022103112))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022103112)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022103112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022103112))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022103112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022103112))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022103112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022103112))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022103112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022103112))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022103112)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022103112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022103112)) h) + +theorem cover_subtree_f0199f1a57d7 : + adaptiveCoverCheck 7 thetaAboveCell000022103112 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022103112 + cover_subtree_f14f28c14e3c + cover_subtree_2e18124844df + (by + have h : ((childHL thetaAboveCell000022103112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022103112) h) + (by + have h : ((childHH thetaAboveCell000022103112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022103112) h) + +theorem cover_subtree_48a3af012806 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022103113) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022103113) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022103113)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022103113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022103113))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022103113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022103113))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022103113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022103113))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022103113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022103113))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022103113)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022103113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022103113))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022103113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022103113))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022103113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022103113))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022103113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022103113))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022103113)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022103113)) h) + +theorem cover_subtree_e9c96ebadfa8 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022103113) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022103113) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022103113)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022103113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022103113))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022103113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022103113))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022103113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022103113))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022103113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022103113))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022103113)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022103113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022103113))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022103113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022103113))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022103113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022103113))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022103113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022103113))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022103113)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022103113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022103113)) h) + +theorem cover_subtree_88cc51539fac : + adaptiveCoverCheck 7 thetaAboveCell000022103113 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022103113 + cover_subtree_48a3af012806 + cover_subtree_e9c96ebadfa8 + (by + have h : ((childHL thetaAboveCell000022103113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022103113) h) + (by + have h : ((childHH thetaAboveCell000022103113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022103113) h) + +theorem cover_subtree_a1d8aa321d27 : + adaptiveCoverCheck 8 (childLH (childLH (childHH thetaAboveCell00002210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH thetaAboveCell00002210))) + cover_subtree_ab36c8726f5a + cover_subtree_526ec4bd5c8b + cover_subtree_f0199f1a57d7 + cover_subtree_88cc51539fac + +theorem e24KC2ThetaAboveLeaf0000221031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00002210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00002210)) + cover_subtree_4a228fe99e26 + cover_subtree_a1d8aa321d27 + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00002210))) + (by + have h : (thetaAboveCell000022103120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022103120 h) + (by + have h : (thetaAboveCell000022103121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022103121 h) + (by + have h : (thetaAboveCell000022103122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022103122 h) + (by + have h : (thetaAboveCell000022103123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022103123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00002210))) + (by + have h : (thetaAboveCell000022103130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022103130 h) + (by + have h : (thetaAboveCell000022103131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022103131 h) + (by + have h : (thetaAboveCell000022103132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022103132 h) + (by + have h : (thetaAboveCell000022103133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022103133 h)) +theorem e24KC2ThetaAboveLeaf0000221032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00002210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00002210)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00002210))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00002210))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00002210))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00002210))) h) +theorem e24KC2ThetaAboveLeaf0000221033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00002210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00002210)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00002210))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00002210))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00002210))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00002210))) h) +theorem e24KC2ThetaAboveLeaf0000221102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00002211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00002211)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00002211))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00002211))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childLL + thetaAboveCell00002211))) + (by + have h : (thetaAboveCell000022110220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022110220 h) + (by + have h : (thetaAboveCell000022110221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022110221 h) + (by + have h : (thetaAboveCell000022110222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022110222 h) + (by + have h : (thetaAboveCell000022110223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022110223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childLL + thetaAboveCell00002211))) + (by + have h : (thetaAboveCell000022110230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022110230 h) + (by + have h : (thetaAboveCell000022110231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022110231 h) + (by + have h : (thetaAboveCell000022110232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022110232 h) + (by + have h : (thetaAboveCell000022110233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022110233 h)) +theorem e24KC2ThetaAboveLeaf0000221103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00002211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00002211)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00002211))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00002211))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childLL + thetaAboveCell00002211))) + (by + have h : (thetaAboveCell000022110320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022110320 h) + (by + have h : (thetaAboveCell000022110321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022110321 h) + (by + have h : (thetaAboveCell000022110322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022110322 h) + (by + have h : (thetaAboveCell000022110323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022110323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childLL + thetaAboveCell00002211))) + (by + have h : (thetaAboveCell000022110330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022110330 h) + (by + have h : (thetaAboveCell000022110331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022110331 h) + (by + have h : (thetaAboveCell000022110332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022110332 h) + (by + have h : (thetaAboveCell000022110333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022110333 h)) +theorem e24KC2ThetaAboveLeaf0000221112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00002211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00002211)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00002211))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00002211))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childLH + thetaAboveCell00002211))) + (by + have h : (thetaAboveCell000022111220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022111220 h) + (by + have h : (thetaAboveCell000022111221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022111221 h) + (by + have h : (thetaAboveCell000022111222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022111222 h) + (by + have h : (thetaAboveCell000022111223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022111223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childLH + thetaAboveCell00002211))) + (by + have h : (thetaAboveCell000022111230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022111230 h) + (by + have h : (thetaAboveCell000022111231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022111231 h) + (by + have h : (thetaAboveCell000022111232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022111232 h) + (by + have h : (thetaAboveCell000022111233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022111233 h)) +theorem e24KC2ThetaAboveLeaf0000221113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00002211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00002211)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00002211))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00002211))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childLH + thetaAboveCell00002211))) + (by + have h : (thetaAboveCell000022111320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022111320 h) + (by + have h : (thetaAboveCell000022111321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022111321 h) + (by + have h : (thetaAboveCell000022111322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022111322 h) + (by + have h : (thetaAboveCell000022111323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022111323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childLH + thetaAboveCell00002211))) + (by + have h : (thetaAboveCell000022111330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022111330 h) + (by + have h : (thetaAboveCell000022111331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022111331 h) + (by + have h : (thetaAboveCell000022111332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022111332 h) + (by + have h : (thetaAboveCell000022111333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022111333 h)) +theorem cover_subtree_43fd6107c581 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022112000) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022112000) + (by + have h : ((childLL (childHL thetaAboveCell000022112000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022112000)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022112000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022112000)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022112000)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022112000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022112000))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022112000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022112000))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022112000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022112000))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022112000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022112000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022112000)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022112000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022112000))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022112000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022112000))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022112000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022112000))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022112000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022112000))) h)) + +theorem cover_subtree_2f5d0def195d : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022112000) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022112000) + (by + have h : ((childLL (childHH thetaAboveCell000022112000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022112000)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022112000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022112000)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022112000)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022112000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022112000))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022112000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022112000))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022112000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022112000))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022112000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022112000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022112000)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022112000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022112000))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022112000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022112000))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022112000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022112000))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022112000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022112000))) h)) + +theorem cover_subtree_b847b0feac2d : + adaptiveCoverCheck 7 thetaAboveCell000022112000 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022112000 + (by + have h : ((childLL thetaAboveCell000022112000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022112000) h) + (by + have h : ((childLH thetaAboveCell000022112000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022112000) h) + cover_subtree_43fd6107c581 + cover_subtree_2f5d0def195d + +theorem cover_subtree_4950fac9bab9 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022112001) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022112001) + (by + have h : ((childLL (childHL thetaAboveCell000022112001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022112001)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022112001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022112001)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022112001)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022112001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022112001))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022112001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022112001))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022112001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022112001))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022112001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022112001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022112001)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022112001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022112001))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022112001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022112001))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022112001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022112001))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022112001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022112001))) h)) + +theorem cover_subtree_0e72524614ed : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022112001) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022112001) + (by + have h : ((childLL (childHH thetaAboveCell000022112001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022112001)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022112001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022112001)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022112001)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022112001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022112001))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022112001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022112001))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022112001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022112001))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022112001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022112001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022112001)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022112001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022112001))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022112001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022112001))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022112001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022112001))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022112001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022112001))) h)) + +theorem cover_subtree_b10e2b341d50 : + adaptiveCoverCheck 7 thetaAboveCell000022112001 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022112001 + (by + have h : ((childLL thetaAboveCell000022112001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022112001) h) + (by + have h : ((childLH thetaAboveCell000022112001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022112001) h) + cover_subtree_4950fac9bab9 + cover_subtree_0e72524614ed + +theorem cover_subtree_76b490d87a4e : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022112002) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022112002) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022112002)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022112002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022112002))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022112002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022112002))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022112002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022112002))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022112002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022112002))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022112002)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022112002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022112002))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022112002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022112002))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022112002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022112002))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022112002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022112002))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022112002)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022112002)) h) + +theorem cover_subtree_4b9c90d07695 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022112002) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022112002) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022112002)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022112002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022112002))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022112002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022112002))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022112002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022112002))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022112002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022112002))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022112002)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022112002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022112002))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022112002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022112002))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022112002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022112002))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022112002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022112002))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022112002)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022112002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022112002)) h) + +theorem cover_subtree_b7dd7162f0b9 : + adaptiveCoverCheck 7 thetaAboveCell000022112002 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022112002 + cover_subtree_76b490d87a4e + cover_subtree_4b9c90d07695 + (by + have h : ((childHL thetaAboveCell000022112002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022112002) h) + (by + have h : ((childHH thetaAboveCell000022112002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022112002) h) + +theorem cover_subtree_de29b5c5a11d : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022112003) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022112003) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022112003)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022112003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022112003))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022112003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022112003))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022112003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022112003))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022112003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022112003))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022112003)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022112003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022112003))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022112003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022112003))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022112003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022112003))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022112003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022112003))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022112003)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022112003)) h) + +theorem cover_subtree_31f4d5809705 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022112003) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022112003) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022112003)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022112003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022112003))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022112003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022112003))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022112003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022112003))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022112003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022112003))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022112003)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022112003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022112003))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022112003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022112003))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022112003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022112003))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022112003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022112003))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022112003)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022112003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022112003)) h) + +theorem cover_subtree_c9c566e964a9 : + adaptiveCoverCheck 7 thetaAboveCell000022112003 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022112003 + cover_subtree_de29b5c5a11d + cover_subtree_31f4d5809705 + (by + have h : ((childHL thetaAboveCell000022112003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022112003) h) + (by + have h : ((childHH thetaAboveCell000022112003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022112003) h) + +theorem cover_subtree_da67754fe633 : + adaptiveCoverCheck 8 (childLL (childLL (childHL thetaAboveCell00002211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL thetaAboveCell00002211))) + cover_subtree_b847b0feac2d + cover_subtree_b10e2b341d50 + cover_subtree_b7dd7162f0b9 + cover_subtree_c9c566e964a9 + +theorem cover_subtree_95f6e6d97c24 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022112010) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022112010) + (by + have h : ((childLL (childHL thetaAboveCell000022112010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022112010)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022112010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022112010)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022112010)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022112010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022112010))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022112010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022112010))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022112010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022112010))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022112010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022112010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022112010)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022112010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022112010))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022112010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022112010))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022112010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022112010))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022112010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022112010))) h)) + +theorem cover_subtree_9c844972ea1f : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022112010) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022112010) + (by + have h : ((childLL (childHH thetaAboveCell000022112010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022112010)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022112010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022112010)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022112010)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022112010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022112010))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022112010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022112010))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022112010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022112010))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022112010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022112010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022112010)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022112010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022112010))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022112010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022112010))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022112010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022112010))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022112010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022112010))) h)) + +theorem cover_subtree_04ff1f51c7c8 : + adaptiveCoverCheck 7 thetaAboveCell000022112010 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022112010 + (by + have h : ((childLL thetaAboveCell000022112010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022112010) h) + (by + have h : ((childLH thetaAboveCell000022112010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022112010) h) + cover_subtree_95f6e6d97c24 + cover_subtree_9c844972ea1f + +theorem cover_subtree_754b681a3e26 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022112011) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022112011) + (by + have h : ((childLL (childHL thetaAboveCell000022112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022112011)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022112011)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022112011)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022112011))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022112011))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022112011))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022112011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022112011)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022112011))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022112011))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022112011))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022112011))) h)) + +theorem cover_subtree_497a7c55810a : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022112011) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022112011) + (by + have h : ((childLL (childHH thetaAboveCell000022112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022112011)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022112011)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022112011)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022112011))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022112011))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022112011))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022112011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022112011)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022112011))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022112011))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022112011))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022112011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022112011))) h)) + +theorem cover_subtree_92922a2edd2b : + adaptiveCoverCheck 7 thetaAboveCell000022112011 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022112011 + (by + have h : ((childLL thetaAboveCell000022112011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022112011) h) + (by + have h : ((childLH thetaAboveCell000022112011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022112011) h) + cover_subtree_754b681a3e26 + cover_subtree_497a7c55810a + +theorem cover_subtree_bfdd630a1f02 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022112012) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022112012) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022112012)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022112012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022112012))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022112012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022112012))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022112012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022112012))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022112012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022112012))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022112012)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022112012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022112012))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022112012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022112012))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022112012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022112012))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022112012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022112012))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022112012)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022112012)) h) + +theorem cover_subtree_d41a2b9225dd : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022112012) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022112012) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022112012)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022112012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022112012))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022112012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022112012))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022112012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022112012))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022112012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022112012))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022112012)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022112012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022112012))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022112012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022112012))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022112012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022112012))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022112012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022112012))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022112012)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022112012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022112012)) h) + +theorem cover_subtree_b54fc51b3ec8 : + adaptiveCoverCheck 7 thetaAboveCell000022112012 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022112012 + cover_subtree_bfdd630a1f02 + cover_subtree_d41a2b9225dd + (by + have h : ((childHL thetaAboveCell000022112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022112012) h) + (by + have h : ((childHH thetaAboveCell000022112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022112012) h) + +theorem cover_subtree_1ae8b8609603 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022112013) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022112013) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022112013)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022112013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022112013))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022112013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022112013))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022112013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022112013))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022112013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022112013))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022112013)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022112013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022112013))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022112013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022112013))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022112013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022112013))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022112013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022112013))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022112013)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022112013)) h) + +theorem cover_subtree_254e7d6a1a8d : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022112013) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022112013) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022112013)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022112013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022112013))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022112013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022112013))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022112013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022112013))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022112013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022112013))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022112013)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022112013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022112013))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022112013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022112013))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022112013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022112013))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022112013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022112013))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022112013)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022112013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022112013)) h) + +theorem cover_subtree_316108a366aa : + adaptiveCoverCheck 7 thetaAboveCell000022112013 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022112013 + cover_subtree_1ae8b8609603 + cover_subtree_254e7d6a1a8d + (by + have h : ((childHL thetaAboveCell000022112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022112013) h) + (by + have h : ((childHH thetaAboveCell000022112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022112013) h) + +theorem cover_subtree_23a35d53c9e2 : + adaptiveCoverCheck 8 (childLH (childLL (childHL thetaAboveCell00002211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL thetaAboveCell00002211))) + cover_subtree_04ff1f51c7c8 + cover_subtree_92922a2edd2b + cover_subtree_b54fc51b3ec8 + cover_subtree_316108a366aa + +theorem e24KC2ThetaAboveLeaf0000221120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00002211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00002211)) + cover_subtree_da67754fe633 + cover_subtree_23a35d53c9e2 + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00002211))) + (by + have h : (thetaAboveCell000022112020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022112020 h) + (by + have h : (thetaAboveCell000022112021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022112021 h) + (by + have h : (thetaAboveCell000022112022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022112022 h) + (by + have h : (thetaAboveCell000022112023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022112023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00002211))) + (by + have h : (thetaAboveCell000022112030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022112030 h) + (by + have h : (thetaAboveCell000022112031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022112031 h) + (by + have h : (thetaAboveCell000022112032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022112032 h) + (by + have h : (thetaAboveCell000022112033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022112033 h)) +theorem cover_subtree_021e44d85b50 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022112100) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022112100) + (by + have h : ((childLL (childHL thetaAboveCell000022112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022112100)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022112100)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022112100)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022112100))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022112100))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022112100))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022112100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022112100)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022112100))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022112100))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022112100))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022112100))) h)) + +theorem cover_subtree_62fa6c2e1429 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022112100) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022112100) + (by + have h : ((childLL (childHH thetaAboveCell000022112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022112100)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022112100)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022112100)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022112100))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022112100))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022112100))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022112100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022112100)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022112100))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022112100))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022112100))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022112100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022112100))) h)) + +theorem cover_subtree_ff28352fdcbd : + adaptiveCoverCheck 7 thetaAboveCell000022112100 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022112100 + (by + have h : ((childLL thetaAboveCell000022112100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022112100) h) + (by + have h : ((childLH thetaAboveCell000022112100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022112100) h) + cover_subtree_021e44d85b50 + cover_subtree_62fa6c2e1429 + +theorem cover_subtree_4284ed2ee8d6 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022112101) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022112101) + (by + have h : ((childLL (childHL thetaAboveCell000022112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022112101)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022112101)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022112101)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022112101))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022112101))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022112101))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022112101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022112101)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022112101))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022112101))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022112101))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022112101))) h)) + +theorem cover_subtree_21c449726701 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022112101) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022112101) + (by + have h : ((childLL (childHH thetaAboveCell000022112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022112101)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022112101)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022112101)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022112101))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022112101))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022112101))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022112101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022112101)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022112101))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022112101))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022112101))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022112101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022112101))) h)) + +theorem cover_subtree_ecd8fe40a0e6 : + adaptiveCoverCheck 7 thetaAboveCell000022112101 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022112101 + (by + have h : ((childLL thetaAboveCell000022112101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022112101) h) + (by + have h : ((childLH thetaAboveCell000022112101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022112101) h) + cover_subtree_4284ed2ee8d6 + cover_subtree_21c449726701 + +theorem cover_subtree_4e862092a132 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022112102) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022112102) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022112102)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022112102))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022112102))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022112102))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022112102))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022112102)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022112102))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022112102))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022112102))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022112102))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022112102)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022112102)) h) + +theorem cover_subtree_aa7a39051514 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022112102) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022112102) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022112102)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022112102))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022112102))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022112102))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022112102))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022112102)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022112102))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022112102))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022112102))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022112102))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022112102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022112102)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLH thetaAboveCell000022112102)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLH + thetaAboveCell000022112102))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLH + thetaAboveCell000022112102))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLH + thetaAboveCell000022112102))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell000022112102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLH + thetaAboveCell000022112102))) h)) + +theorem cover_subtree_bcfbc1ac2009 : + adaptiveCoverCheck 7 thetaAboveCell000022112102 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022112102 + cover_subtree_4e862092a132 + cover_subtree_aa7a39051514 + (by + have h : ((childHL thetaAboveCell000022112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022112102) h) + (by + have h : ((childHH thetaAboveCell000022112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022112102) h) + +theorem cover_subtree_340b36315559 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022112103) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022112103) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022112103)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022112103))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022112103))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022112103))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022112103))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022112103)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022112103))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022112103))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022112103))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022112103))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLL thetaAboveCell000022112103)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLL + thetaAboveCell000022112103))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLL + thetaAboveCell000022112103))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLL + thetaAboveCell000022112103))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLL + thetaAboveCell000022112103))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLL thetaAboveCell000022112103)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLL + thetaAboveCell000022112103))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLL + thetaAboveCell000022112103))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLL + thetaAboveCell000022112103))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLL + thetaAboveCell000022112103))) h)) + +theorem cover_subtree_3ea1443179e3 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022112103) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022112103) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022112103)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022112103))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022112103))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022112103))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022112103))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022112103)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022112103))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022112103))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022112103))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022112103))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLH thetaAboveCell000022112103)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLH + thetaAboveCell000022112103))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLH + thetaAboveCell000022112103))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLH + thetaAboveCell000022112103))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLH + thetaAboveCell000022112103))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLH thetaAboveCell000022112103)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLH + thetaAboveCell000022112103))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLH + thetaAboveCell000022112103))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLH + thetaAboveCell000022112103))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell000022112103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLH + thetaAboveCell000022112103))) h)) + +theorem cover_subtree_333ca6341b52 : + adaptiveCoverCheck 7 thetaAboveCell000022112103 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022112103 + cover_subtree_340b36315559 + cover_subtree_3ea1443179e3 + (by + have h : ((childHL thetaAboveCell000022112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022112103) h) + (by + have h : ((childHH thetaAboveCell000022112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022112103) h) + +theorem cover_subtree_0a317c2968a3 : + adaptiveCoverCheck 8 (childLL (childLH (childHL thetaAboveCell00002211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL thetaAboveCell00002211))) + cover_subtree_ff28352fdcbd + cover_subtree_ecd8fe40a0e6 + cover_subtree_bcfbc1ac2009 + cover_subtree_333ca6341b52 + +theorem cover_subtree_0f6a5316da7f : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022112110) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022112110) + (by + have h : ((childLL (childHL thetaAboveCell000022112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022112110)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022112110)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022112110)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022112110))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022112110))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022112110))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022112110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022112110)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022112110))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022112110))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022112110))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022112110))) h)) + +theorem cover_subtree_8b21324e2245 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022112110) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022112110) + (by + have h : ((childLL (childHH thetaAboveCell000022112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022112110)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022112110)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022112110)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022112110))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022112110))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022112110))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022112110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022112110)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022112110))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022112110))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022112110))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022112110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022112110))) h)) + +theorem cover_subtree_2b3d980fd10a : + adaptiveCoverCheck 7 thetaAboveCell000022112110 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022112110 + (by + have h : ((childLL thetaAboveCell000022112110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022112110) h) + (by + have h : ((childLH thetaAboveCell000022112110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022112110) h) + cover_subtree_0f6a5316da7f + cover_subtree_8b21324e2245 + +theorem cover_subtree_3d8086490270 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022112111) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022112111) + (by + have h : ((childLL (childHL thetaAboveCell000022112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022112111)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022112111)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022112111)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022112111))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022112111))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022112111))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022112111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022112111)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022112111))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022112111))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022112111))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022112111))) h)) + +theorem cover_subtree_13b36b31ee50 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022112111) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022112111) + (by + have h : ((childLL (childHH thetaAboveCell000022112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022112111)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022112111)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022112111)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022112111))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022112111))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022112111))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022112111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022112111)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022112111))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022112111))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022112111))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022112111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022112111))) h)) + +theorem cover_subtree_fe061292783d : + adaptiveCoverCheck 7 thetaAboveCell000022112111 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022112111 + (by + have h : ((childLL thetaAboveCell000022112111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022112111) h) + (by + have h : ((childLH thetaAboveCell000022112111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022112111) h) + cover_subtree_3d8086490270 + cover_subtree_13b36b31ee50 + +theorem cover_subtree_acdbdc38c196 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022112112) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022112112) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022112112)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022112112))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022112112))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022112112))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022112112))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022112112)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022112112))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022112112))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022112112))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022112112))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLL thetaAboveCell000022112112)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLL + thetaAboveCell000022112112))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLL + thetaAboveCell000022112112))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLL + thetaAboveCell000022112112))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLL + thetaAboveCell000022112112))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLL thetaAboveCell000022112112)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLL + thetaAboveCell000022112112))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLL + thetaAboveCell000022112112))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLL + thetaAboveCell000022112112))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLL + thetaAboveCell000022112112))) h)) + +theorem cover_subtree_f4b1386a9f86 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022112112) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022112112) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022112112)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022112112))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022112112))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022112112))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022112112))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022112112)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022112112))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022112112))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022112112))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022112112))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLH thetaAboveCell000022112112)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLH + thetaAboveCell000022112112))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLH + thetaAboveCell000022112112))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLH + thetaAboveCell000022112112))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLH + thetaAboveCell000022112112))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLH thetaAboveCell000022112112)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLH + thetaAboveCell000022112112))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLH + thetaAboveCell000022112112))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLH + thetaAboveCell000022112112))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell000022112112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLH + thetaAboveCell000022112112))) h)) + +theorem cover_subtree_280eb01136d6 : + adaptiveCoverCheck 7 thetaAboveCell000022112112 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022112112 + cover_subtree_acdbdc38c196 + cover_subtree_f4b1386a9f86 + (by + have h : ((childHL thetaAboveCell000022112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022112112) h) + (by + have h : ((childHH thetaAboveCell000022112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022112112) h) + +theorem cover_subtree_3add30d6277d : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022112113) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022112113) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022112113)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022112113))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022112113))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022112113))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022112113))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022112113)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022112113))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022112113))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022112113))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022112113))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLL thetaAboveCell000022112113)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLL + thetaAboveCell000022112113))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLL + thetaAboveCell000022112113))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLL + thetaAboveCell000022112113))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLL + thetaAboveCell000022112113))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLL thetaAboveCell000022112113)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLL + thetaAboveCell000022112113))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLL + thetaAboveCell000022112113))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLL + thetaAboveCell000022112113))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLL + thetaAboveCell000022112113))) h)) + +theorem cover_subtree_4b342ee841c3 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022112113) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022112113) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022112113)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022112113))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022112113))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022112113))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022112113))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022112113)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022112113))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022112113))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022112113))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022112113))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLH thetaAboveCell000022112113)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLH + thetaAboveCell000022112113))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLH + thetaAboveCell000022112113))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLH + thetaAboveCell000022112113))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLH + thetaAboveCell000022112113))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLH thetaAboveCell000022112113)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLH + thetaAboveCell000022112113))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLH + thetaAboveCell000022112113))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLH + thetaAboveCell000022112113))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell000022112113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLH + thetaAboveCell000022112113))) h)) + +theorem cover_subtree_95d32084082d : + adaptiveCoverCheck 7 thetaAboveCell000022112113 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022112113 + cover_subtree_3add30d6277d + cover_subtree_4b342ee841c3 + (by + have h : ((childHL thetaAboveCell000022112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022112113) h) + (by + have h : ((childHH thetaAboveCell000022112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022112113) h) + +theorem cover_subtree_9112d0843a89 : + adaptiveCoverCheck 8 (childLH (childLH (childHL thetaAboveCell00002211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL thetaAboveCell00002211))) + cover_subtree_2b3d980fd10a + cover_subtree_fe061292783d + cover_subtree_280eb01136d6 + cover_subtree_95d32084082d + +theorem e24KC2ThetaAboveLeaf0000221121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00002211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00002211)) + cover_subtree_0a317c2968a3 + cover_subtree_9112d0843a89 + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00002211))) + (by + have h : (thetaAboveCell000022112120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022112120 h) + (by + have h : (thetaAboveCell000022112121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022112121 h) + (by + have h : (thetaAboveCell000022112122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022112122 h) + (by + have h : (thetaAboveCell000022112123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022112123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00002211))) + (by + have h : (thetaAboveCell000022112130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022112130 h) + (by + have h : (thetaAboveCell000022112131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022112131 h) + (by + have h : (thetaAboveCell000022112132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022112132 h) + (by + have h : (thetaAboveCell000022112133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022112133 h)) +theorem e24KC2ThetaAboveLeaf0000221122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00002211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00002211)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00002211))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00002211))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00002211))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00002211))) h) +theorem e24KC2ThetaAboveLeaf0000221123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00002211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00002211)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00002211))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00002211))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00002211))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00002211))) h) +theorem cover_subtree_c69725c188d3 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022113000) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022113000) + (by + have h : ((childLL (childHL thetaAboveCell000022113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022113000)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022113000)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022113000)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022113000))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022113000))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022113000))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022113000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022113000)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022113000))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022113000))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022113000))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022113000))) h)) + +theorem cover_subtree_a8d579475d23 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022113000) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022113000) + (by + have h : ((childLL (childHH thetaAboveCell000022113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022113000)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022113000)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022113000)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022113000))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022113000))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022113000))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022113000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022113000)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022113000))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022113000))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022113000))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022113000))) h)) + +theorem cover_subtree_560b815bd286 : + adaptiveCoverCheck 7 thetaAboveCell000022113000 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022113000 + (by + have h : ((childLL thetaAboveCell000022113000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022113000) h) + (by + have h : ((childLH thetaAboveCell000022113000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022113000) h) + cover_subtree_c69725c188d3 + cover_subtree_a8d579475d23 + +theorem cover_subtree_995ab0851a0f : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022113001) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022113001) + (by + have h : ((childLL (childHL thetaAboveCell000022113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022113001)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022113001)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022113001)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022113001))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022113001))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022113001))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022113001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022113001)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022113001))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022113001))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022113001))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022113001))) h)) + +theorem cover_subtree_f5e3b9ffae68 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022113001) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022113001) + (by + have h : ((childLL (childHH thetaAboveCell000022113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022113001)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022113001)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022113001)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022113001))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022113001))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022113001))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022113001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022113001)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022113001))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022113001))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022113001))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022113001))) h)) + +theorem cover_subtree_e2b5567129eb : + adaptiveCoverCheck 7 thetaAboveCell000022113001 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022113001 + (by + have h : ((childLL thetaAboveCell000022113001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022113001) h) + (by + have h : ((childLH thetaAboveCell000022113001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022113001) h) + cover_subtree_995ab0851a0f + cover_subtree_f5e3b9ffae68 + +theorem cover_subtree_2a8071ef107e : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022113002) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022113002) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022113002)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022113002))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022113002))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022113002))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022113002))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022113002)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022113002))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022113002))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022113002))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022113002))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLL thetaAboveCell000022113002)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLL + thetaAboveCell000022113002))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLL + thetaAboveCell000022113002))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLL + thetaAboveCell000022113002))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLL + thetaAboveCell000022113002))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLL thetaAboveCell000022113002)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLL + thetaAboveCell000022113002))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLL + thetaAboveCell000022113002))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLL + thetaAboveCell000022113002))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLL + thetaAboveCell000022113002))) h)) + +theorem cover_subtree_1f4e667d89aa : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022113002) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022113002) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022113002)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022113002))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022113002))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022113002))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022113002))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022113002)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022113002))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022113002))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022113002))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022113002))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLH thetaAboveCell000022113002)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLH + thetaAboveCell000022113002))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLH + thetaAboveCell000022113002))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLH + thetaAboveCell000022113002))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLH + thetaAboveCell000022113002))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLH thetaAboveCell000022113002)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLH + thetaAboveCell000022113002))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLH + thetaAboveCell000022113002))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLH + thetaAboveCell000022113002))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell000022113002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLH + thetaAboveCell000022113002))) h)) + +theorem cover_subtree_cf43677b186a : + adaptiveCoverCheck 7 thetaAboveCell000022113002 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022113002 + cover_subtree_2a8071ef107e + cover_subtree_1f4e667d89aa + (by + have h : ((childHL thetaAboveCell000022113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022113002) h) + (by + have h : ((childHH thetaAboveCell000022113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022113002) h) + +theorem cover_subtree_e06c4b38ee49 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022113003) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022113003) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022113003)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022113003))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022113003))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022113003))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022113003))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022113003)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022113003))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022113003))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022113003))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022113003))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLL thetaAboveCell000022113003)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLL + thetaAboveCell000022113003))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLL + thetaAboveCell000022113003))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLL + thetaAboveCell000022113003))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLL + thetaAboveCell000022113003))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLL thetaAboveCell000022113003)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLL + thetaAboveCell000022113003))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLL + thetaAboveCell000022113003))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLL + thetaAboveCell000022113003))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLL + thetaAboveCell000022113003))) h)) + +theorem cover_subtree_5735fc3146a5 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022113003) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022113003) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022113003)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022113003))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022113003))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022113003))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022113003))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022113003)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022113003))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022113003))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022113003))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022113003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022113003))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022113003)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022113003)) h) + +theorem cover_subtree_b9715c0ddc62 : + adaptiveCoverCheck 7 thetaAboveCell000022113003 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022113003 + cover_subtree_e06c4b38ee49 + cover_subtree_5735fc3146a5 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022113003) + (by + have h : ((childLL (childHL thetaAboveCell000022113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000022113003)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000022113003)) h) + (by + have h : ((childHL (childHL thetaAboveCell000022113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000022113003)) h) + (by + have h : ((childHH (childHL thetaAboveCell000022113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000022113003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022113003) + (by + have h : ((childLL (childHH thetaAboveCell000022113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000022113003)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000022113003)) h) + (by + have h : ((childHL (childHH thetaAboveCell000022113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000022113003)) h) + (by + have h : ((childHH (childHH thetaAboveCell000022113003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000022113003)) h)) + +theorem cover_subtree_0338ef548092 : + adaptiveCoverCheck 8 (childLL (childLL (childHH thetaAboveCell00002211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH thetaAboveCell00002211))) + cover_subtree_560b815bd286 + cover_subtree_e2b5567129eb + cover_subtree_cf43677b186a + cover_subtree_b9715c0ddc62 + +theorem cover_subtree_8babef05283e : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022113010) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022113010) + (by + have h : ((childLL (childHL thetaAboveCell000022113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022113010)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022113010)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022113010)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022113010))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022113010))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022113010))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022113010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022113010)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022113010))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022113010))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022113010))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022113010))) h)) + +theorem cover_subtree_453a26c2a0ce : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022113010) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022113010) + (by + have h : ((childLL (childHH thetaAboveCell000022113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022113010)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022113010)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022113010)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022113010))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022113010))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022113010))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022113010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022113010)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022113010))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022113010))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022113010))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022113010))) h)) + +theorem cover_subtree_9a8d1e8ff5df : + adaptiveCoverCheck 7 thetaAboveCell000022113010 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022113010 + (by + have h : ((childLL thetaAboveCell000022113010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022113010) h) + (by + have h : ((childLH thetaAboveCell000022113010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022113010) h) + cover_subtree_8babef05283e + cover_subtree_453a26c2a0ce + +theorem cover_subtree_d4f84dde625a : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022113011) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022113011) + (by + have h : ((childLL (childHL thetaAboveCell000022113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022113011)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022113011)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022113011)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022113011))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022113011))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022113011))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022113011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022113011)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022113011))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022113011))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022113011))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022113011))) h)) + +theorem cover_subtree_a97cdaa163bd : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022113011) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022113011) + (by + have h : ((childLL (childHH thetaAboveCell000022113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022113011)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022113011)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022113011)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022113011))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022113011))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022113011))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022113011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022113011)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022113011))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022113011))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022113011))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022113011))) h)) + +theorem cover_subtree_caad7b9ebe18 : + adaptiveCoverCheck 7 thetaAboveCell000022113011 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022113011 + (by + have h : ((childLL thetaAboveCell000022113011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022113011) h) + (by + have h : ((childLH thetaAboveCell000022113011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022113011) h) + cover_subtree_d4f84dde625a + cover_subtree_a97cdaa163bd + +theorem cover_subtree_fbb8d3b85bf4 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022113012) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022113012) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022113012)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022113012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022113012))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022113012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022113012))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022113012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022113012))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022113012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022113012))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022113012)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022113012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022113012))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022113012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022113012))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022113012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022113012))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022113012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022113012))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022113012)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022113012)) h) + +theorem cover_subtree_f025663eb4cc : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022113012) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022113012) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022113012)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022113012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022113012))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022113012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022113012))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022113012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022113012))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022113012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022113012))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022113012)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022113012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022113012))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022113012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022113012))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022113012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022113012))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022113012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022113012))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022113012)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022113012)) h) + +theorem cover_subtree_6d9b8f942e07 : + adaptiveCoverCheck 7 thetaAboveCell000022113012 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022113012 + cover_subtree_fbb8d3b85bf4 + cover_subtree_f025663eb4cc + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022113012) + (by + have h : ((childLL (childHL thetaAboveCell000022113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000022113012)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000022113012)) h) + (by + have h : ((childHL (childHL thetaAboveCell000022113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000022113012)) h) + (by + have h : ((childHH (childHL thetaAboveCell000022113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000022113012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022113012) + (by + have h : ((childLL (childHH thetaAboveCell000022113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000022113012)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000022113012)) h) + (by + have h : ((childHL (childHH thetaAboveCell000022113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000022113012)) h) + (by + have h : ((childHH (childHH thetaAboveCell000022113012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000022113012)) h)) + +theorem cover_subtree_c85e1b57b2c5 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022113013) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022113013) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022113013)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022113013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022113013))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022113013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022113013))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022113013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022113013))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022113013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022113013))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022113013)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022113013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022113013))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022113013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022113013))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022113013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022113013))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022113013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022113013))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022113013)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022113013)) h) + +theorem cover_subtree_a12be2bf4817 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022113013) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022113013) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022113013)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022113013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022113013))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022113013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022113013))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022113013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022113013))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022113013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022113013))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022113013)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022113013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022113013))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022113013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022113013))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022113013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022113013))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022113013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022113013))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022113013)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022113013)) h) + +theorem cover_subtree_d1382a844a10 : + adaptiveCoverCheck 7 thetaAboveCell000022113013 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022113013 + cover_subtree_c85e1b57b2c5 + cover_subtree_a12be2bf4817 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022113013) + (by + have h : ((childLL (childHL thetaAboveCell000022113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000022113013)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000022113013)) h) + (by + have h : ((childHL (childHL thetaAboveCell000022113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000022113013)) h) + (by + have h : ((childHH (childHL thetaAboveCell000022113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000022113013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022113013) + (by + have h : ((childLL (childHH thetaAboveCell000022113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000022113013)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000022113013)) h) + (by + have h : ((childHL (childHH thetaAboveCell000022113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000022113013)) h) + (by + have h : ((childHH (childHH thetaAboveCell000022113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000022113013)) h)) + +theorem cover_subtree_d4d29d86cd96 : + adaptiveCoverCheck 8 (childLH (childLL (childHH thetaAboveCell00002211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH thetaAboveCell00002211))) + cover_subtree_9a8d1e8ff5df + cover_subtree_caad7b9ebe18 + cover_subtree_6d9b8f942e07 + cover_subtree_d1382a844a10 + +theorem e24KC2ThetaAboveLeaf0000221130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00002211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00002211)) + cover_subtree_0338ef548092 + cover_subtree_d4d29d86cd96 + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00002211))) + (by + have h : (thetaAboveCell000022113020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022113020 h) + (by + have h : (thetaAboveCell000022113021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022113021 h) + (by + have h : (thetaAboveCell000022113022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022113022 h) + (by + have h : (thetaAboveCell000022113023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022113023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00002211))) + (by + have h : (thetaAboveCell000022113030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022113030 h) + (by + have h : (thetaAboveCell000022113031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022113031 h) + (by + have h : (thetaAboveCell000022113032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022113032 h) + (by + have h : (thetaAboveCell000022113033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022113033 h)) +theorem cover_subtree_836d962e65ac : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022113100) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022113100) + (by + have h : ((childLL (childHL thetaAboveCell000022113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022113100)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022113100)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022113100)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022113100))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022113100))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022113100))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022113100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022113100)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022113100))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022113100))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022113100))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022113100))) h)) + +theorem cover_subtree_ecf6c7f90571 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022113100) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022113100) + (by + have h : ((childLL (childHH thetaAboveCell000022113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022113100)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022113100)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022113100)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022113100))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022113100))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022113100))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022113100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022113100)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022113100))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022113100))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022113100))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022113100))) h)) + +theorem cover_subtree_fa2b1e57d306 : + adaptiveCoverCheck 7 thetaAboveCell000022113100 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022113100 + (by + have h : ((childLL thetaAboveCell000022113100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022113100) h) + (by + have h : ((childLH thetaAboveCell000022113100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022113100) h) + cover_subtree_836d962e65ac + cover_subtree_ecf6c7f90571 + +theorem cover_subtree_2c032bc482bc : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022113101) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022113101) + (by + have h : ((childLL (childHL thetaAboveCell000022113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022113101)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022113101)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022113101)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022113101))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022113101))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022113101))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022113101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022113101)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022113101))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022113101))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022113101))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022113101))) h)) + +theorem cover_subtree_3eddb0efc253 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022113101) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022113101) + (by + have h : ((childLL (childHH thetaAboveCell000022113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022113101)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022113101)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022113101)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022113101))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022113101))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022113101))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022113101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022113101)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022113101))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022113101))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022113101))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022113101))) h)) + +theorem cover_subtree_cbdd15c92455 : + adaptiveCoverCheck 7 thetaAboveCell000022113101 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022113101 + (by + have h : ((childLL thetaAboveCell000022113101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022113101) h) + (by + have h : ((childLH thetaAboveCell000022113101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022113101) h) + cover_subtree_2c032bc482bc + cover_subtree_3eddb0efc253 + +theorem cover_subtree_e867c54455aa : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022113102) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022113102) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022113102)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022113102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022113102))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022113102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022113102))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022113102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022113102))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022113102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022113102))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022113102)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022113102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022113102))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022113102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022113102))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022113102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022113102))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022113102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022113102))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022113102)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022113102)) h) + +theorem cover_subtree_d8e5977bc823 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022113102) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022113102) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022113102)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022113102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022113102))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022113102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022113102))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022113102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022113102))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022113102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022113102))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022113102)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022113102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022113102))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022113102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022113102))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022113102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022113102))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022113102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022113102))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022113102)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022113102)) h) + +theorem cover_subtree_81e578425a2e : + adaptiveCoverCheck 7 thetaAboveCell000022113102 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022113102 + cover_subtree_e867c54455aa + cover_subtree_d8e5977bc823 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022113102) + (by + have h : ((childLL (childHL thetaAboveCell000022113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000022113102)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000022113102)) h) + (by + have h : ((childHL (childHL thetaAboveCell000022113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000022113102)) h) + (by + have h : ((childHH (childHL thetaAboveCell000022113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000022113102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022113102) + (by + have h : ((childLL (childHH thetaAboveCell000022113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000022113102)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000022113102)) h) + (by + have h : ((childHL (childHH thetaAboveCell000022113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000022113102)) h) + (by + have h : ((childHH (childHH thetaAboveCell000022113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000022113102)) h)) + +theorem cover_subtree_6af7504512c8 : + adaptiveCoverCheck 7 thetaAboveCell000022113103 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022113103 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022113103) + (by + have h : ((childLL (childLL thetaAboveCell000022113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022113103)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022113103)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022113103)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022113103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022113103) + (by + have h : ((childLL (childLH thetaAboveCell000022113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022113103)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022113103)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022113103)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022113103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022113103) + (by + have h : ((childLL (childHL thetaAboveCell000022113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000022113103)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000022113103)) h) + (by + have h : ((childHL (childHL thetaAboveCell000022113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000022113103)) h) + (by + have h : ((childHH (childHL thetaAboveCell000022113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000022113103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022113103) + (by + have h : ((childLL (childHH thetaAboveCell000022113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000022113103)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000022113103)) h) + (by + have h : ((childHL (childHH thetaAboveCell000022113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000022113103)) h) + (by + have h : ((childHH (childHH thetaAboveCell000022113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000022113103)) h)) + +theorem cover_subtree_dc05a5cb4d61 : + adaptiveCoverCheck 8 (childLL (childLH (childHH thetaAboveCell00002211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH thetaAboveCell00002211))) + cover_subtree_fa2b1e57d306 + cover_subtree_cbdd15c92455 + cover_subtree_81e578425a2e + cover_subtree_6af7504512c8 + +theorem cover_subtree_fcbdf3a9e595 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022113110) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022113110) + (by + have h : ((childLL (childHL thetaAboveCell000022113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022113110)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022113110)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022113110)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022113110))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022113110))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022113110))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022113110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022113110)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022113110))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022113110))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022113110))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022113110))) h)) + +theorem cover_subtree_2828e56e478f : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022113110) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022113110) + (by + have h : ((childLL (childHH thetaAboveCell000022113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022113110)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022113110)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022113110)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022113110))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022113110))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022113110))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022113110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022113110)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022113110))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022113110))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022113110))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022113110))) h)) + +theorem cover_subtree_15fb86545eea : + adaptiveCoverCheck 7 thetaAboveCell000022113110 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022113110 + (by + have h : ((childLL thetaAboveCell000022113110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022113110) h) + (by + have h : ((childLH thetaAboveCell000022113110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022113110) h) + cover_subtree_fcbdf3a9e595 + cover_subtree_2828e56e478f + +theorem cover_subtree_0f38c8258b2e : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022113111) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022113111) + (by + have h : ((childLL (childHL thetaAboveCell000022113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL thetaAboveCell000022113111)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL thetaAboveCell000022113111)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022113111)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022113111))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022113111))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022113111))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022113111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022113111)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022113111))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022113111))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022113111))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022113111))) h)) + +theorem cover_subtree_13fc46665967 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022113111) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022113111) + (by + have h : ((childLL (childHH thetaAboveCell000022113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH thetaAboveCell000022113111)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH thetaAboveCell000022113111)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022113111)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022113111))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022113111))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022113111))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022113111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022113111)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022113111))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022113111))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022113111))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022113111))) h)) + +theorem cover_subtree_83c447d13cd0 : + adaptiveCoverCheck 7 thetaAboveCell000022113111 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022113111 + (by + have h : ((childLL thetaAboveCell000022113111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022113111) h) + (by + have h : ((childLH thetaAboveCell000022113111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022113111) h) + cover_subtree_0f38c8258b2e + cover_subtree_13fc46665967 + +theorem cover_subtree_02c32f65c578 : + adaptiveCoverCheck 7 thetaAboveCell000022113112 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022113112 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022113112) + (by + have h : ((childLL (childLL thetaAboveCell000022113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022113112)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022113112)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022113112)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022113112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022113112) + (by + have h : ((childLL (childLH thetaAboveCell000022113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022113112)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022113112)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022113112)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022113112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022113112) + (by + have h : ((childLL (childHL thetaAboveCell000022113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000022113112)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000022113112)) h) + (by + have h : ((childHL (childHL thetaAboveCell000022113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000022113112)) h) + (by + have h : ((childHH (childHL thetaAboveCell000022113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000022113112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022113112) + (by + have h : ((childLL (childHH thetaAboveCell000022113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000022113112)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000022113112)) h) + (by + have h : ((childHL (childHH thetaAboveCell000022113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000022113112)) h) + (by + have h : ((childHH (childHH thetaAboveCell000022113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000022113112)) h)) + +theorem cover_subtree_74079318656f : + adaptiveCoverCheck 7 thetaAboveCell000022113113 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022113113 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022113113) + (by + have h : ((childLL (childLL thetaAboveCell000022113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022113113)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022113113)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022113113)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022113113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022113113) + (by + have h : ((childLL (childLH thetaAboveCell000022113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022113113)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022113113)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022113113)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022113113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022113113) + (by + have h : ((childLL (childHL thetaAboveCell000022113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHL + thetaAboveCell000022113113)) h) + (by + have h : ((childLH (childHL thetaAboveCell000022113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHL + thetaAboveCell000022113113)) h) + (by + have h : ((childHL (childHL thetaAboveCell000022113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHL + thetaAboveCell000022113113)) h) + (by + have h : ((childHH (childHL thetaAboveCell000022113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHL + thetaAboveCell000022113113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022113113) + (by + have h : ((childLL (childHH thetaAboveCell000022113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childHH + thetaAboveCell000022113113)) h) + (by + have h : ((childLH (childHH thetaAboveCell000022113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childHH + thetaAboveCell000022113113)) h) + (by + have h : ((childHL (childHH thetaAboveCell000022113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childHH + thetaAboveCell000022113113)) h) + (by + have h : ((childHH (childHH thetaAboveCell000022113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childHH + thetaAboveCell000022113113)) h)) + +theorem cover_subtree_6a41f1f44284 : + adaptiveCoverCheck 8 (childLH (childLH (childHH thetaAboveCell00002211))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH thetaAboveCell00002211))) + cover_subtree_15fb86545eea + cover_subtree_83c447d13cd0 + cover_subtree_02c32f65c578 + cover_subtree_74079318656f + +theorem e24KC2ThetaAboveLeaf0000221131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00002211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00002211)) + cover_subtree_dc05a5cb4d61 + cover_subtree_6a41f1f44284 + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00002211))) + (by + have h : (thetaAboveCell000022113120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022113120 h) + (by + have h : (thetaAboveCell000022113121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022113121 h) + (by + have h : (thetaAboveCell000022113122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022113122 h) + (by + have h : (thetaAboveCell000022113123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022113123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00002211))) + (by + have h : (thetaAboveCell000022113130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022113130 h) + (by + have h : (thetaAboveCell000022113131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022113131 h) + (by + have h : (thetaAboveCell000022113132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022113132 h) + (by + have h : (thetaAboveCell000022113133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022113133 h)) +theorem e24KC2ThetaAboveLeaf0000221132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00002211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00002211)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00002211))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00002211))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00002211))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00002211))) h) +theorem e24KC2ThetaAboveLeaf0000221133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00002211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00002211)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00002211))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00002211))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00002211))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00002211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00002211))) h) +theorem e24KC2ThetaAboveLeaf0000230002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00002300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00002300)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00002300))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00002300))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childLL + thetaAboveCell00002300))) + (by + have h : (thetaAboveCell000023000220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023000220 h) + (by + have h : (thetaAboveCell000023000221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023000221 h) + (by + have h : (thetaAboveCell000023000222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023000222 h) + (by + have h : (thetaAboveCell000023000223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023000223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childLL + thetaAboveCell00002300))) + (by + have h : (thetaAboveCell000023000230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023000230 h) + (by + have h : (thetaAboveCell000023000231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023000231 h) + (by + have h : (thetaAboveCell000023000232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023000232 h) + (by + have h : (thetaAboveCell000023000233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023000233 h)) +theorem e24KC2ThetaAboveLeaf0000230003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00002300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00002300)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00002300))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00002300))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childLL + thetaAboveCell00002300))) + (by + have h : (thetaAboveCell000023000320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023000320 h) + (by + have h : (thetaAboveCell000023000321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023000321 h) + (by + have h : (thetaAboveCell000023000322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023000322 h) + (by + have h : (thetaAboveCell000023000323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023000323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childLL + thetaAboveCell00002300))) + (by + have h : (thetaAboveCell000023000330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023000330 h) + (by + have h : (thetaAboveCell000023000331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023000331 h) + (by + have h : (thetaAboveCell000023000332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023000332 h) + (by + have h : (thetaAboveCell000023000333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023000333 h)) +theorem e24KC2ThetaAboveLeaf0000230012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00002300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00002300)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00002300))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00002300))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childLH + thetaAboveCell00002300))) + (by + have h : (thetaAboveCell000023001220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023001220 h) + (by + have h : (thetaAboveCell000023001221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023001221 h) + (by + have h : (thetaAboveCell000023001222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023001222 h) + (by + have h : (thetaAboveCell000023001223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023001223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childLH + thetaAboveCell00002300))) + (by + have h : (thetaAboveCell000023001230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023001230 h) + (by + have h : (thetaAboveCell000023001231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023001231 h) + (by + have h : (thetaAboveCell000023001232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023001232 h) + (by + have h : (thetaAboveCell000023001233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023001233 h)) +theorem e24KC2ThetaAboveLeaf0000230013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00002300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00002300)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00002300))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00002300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00002300))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childLH + thetaAboveCell00002300))) + (by + have h : (thetaAboveCell000023001320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023001320 h) + (by + have h : (thetaAboveCell000023001321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023001321 h) + (by + have h : (thetaAboveCell000023001322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023001322 h) + (by + have h : (thetaAboveCell000023001323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023001323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childLH + thetaAboveCell00002300))) + (by + have h : (thetaAboveCell000023001330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023001330 h) + (by + have h : (thetaAboveCell000023001331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023001331 h) + (by + have h : (thetaAboveCell000023001332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023001332 h) + (by + have h : (thetaAboveCell000023001333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000023001333 h)) + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle012.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle012.lean new file mode 100644 index 0000000000..2ca6c09200 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle012.lean @@ -0,0 +1,11476 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch017`. +* `GerverSofa.KernelOnly.PartE.Certificates.Batch021`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCells2af6f575e7 + +/-- Subcell `1110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1112 : AngleCell := + childHL (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1113 : AngleCell := + childHH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1120 : AngleCell := + childLL (childHL (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1121 : AngleCell := + childLH (childHL (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1122 : AngleCell := + childHL (childHL (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1123 : AngleCell := + childHH (childHL (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1130 : AngleCell := + childLL (childHH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1131 : AngleCell := + childLH (childHH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1132 : AngleCell := + childHL (childHH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1133 : AngleCell := + childHH (childHH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1300 : AngleCell := + childLL (childLL (childHH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1301 : AngleCell := + childLH (childLL (childHH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1302 : AngleCell := + childHL (childLL (childHH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1303 : AngleCell := + childHH (childLL (childHH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1310 : AngleCell := + childLL (childLH (childHH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1311 : AngleCell := + childLH (childLH (childHH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1312 : AngleCell := + childHL (childLH (childHH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1313 : AngleCell := + childHH (childLH (childHH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11103020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103020 : AngleCell := + childLL (childHL (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103021 : AngleCell := + childLH (childHL (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103022 : AngleCell := + childHL (childHL (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103023 : AngleCell := + childHH (childHL (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103030 : AngleCell := + childLL (childHH (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103031 : AngleCell := + childLH (childHH (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103100 : AngleCell := + childLL (childLL (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103101 : AngleCell := + childLH (childLL (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103102 : AngleCell := + childHL (childLL (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103103 : AngleCell := + childHH (childLL (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103110 : AngleCell := + childLL (childLH (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103112 : AngleCell := + childHL (childLH (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103113 : AngleCell := + childHH (childLH (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103120 : AngleCell := + childLL (childHL (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103121 : AngleCell := + childLH (childHL (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103130 : AngleCell := + childLL (childHH (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103131 : AngleCell := + childLH (childHH (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103200 : AngleCell := + childLL (childLL (childHL (childHH thetaBelowCell1110))) + +/-- Subcell `11103201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103201 : AngleCell := + childLH (childLL (childHL (childHH thetaBelowCell1110))) + +/-- Subcell `11103202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103202 : AngleCell := + childHL (childLL (childHL (childHH thetaBelowCell1110))) + +/-- Subcell `11103203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103203 : AngleCell := + childHH (childLL (childHL (childHH thetaBelowCell1110))) + +/-- Subcell `11103210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103210 : AngleCell := + childLL (childLH (childHL (childHH thetaBelowCell1110))) + +/-- Subcell `11103211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103211 : AngleCell := + childLH (childLH (childHL (childHH thetaBelowCell1110))) + +/-- Subcell `11103212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103212 : AngleCell := + childHL (childLH (childHL (childHH thetaBelowCell1110))) + +/-- Subcell `11103213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103213 : AngleCell := + childHH (childLH (childHL (childHH thetaBelowCell1110))) + +/-- Subcell `11103300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103300 : AngleCell := + childLL (childLL (childHH (childHH thetaBelowCell1110))) + +/-- Subcell `11103301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103301 : AngleCell := + childLH (childLL (childHH (childHH thetaBelowCell1110))) + +/-- Subcell `11103302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103302 : AngleCell := + childHL (childLL (childHH (childHH thetaBelowCell1110))) + +/-- Subcell `11103303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103303 : AngleCell := + childHH (childLL (childHH (childHH thetaBelowCell1110))) + +/-- Subcell `11103310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103310 : AngleCell := + childLL (childLH (childHH (childHH thetaBelowCell1110))) + +/-- Subcell `11103311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1110))) + +/-- Subcell `11103312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103312 : AngleCell := + childHL (childLH (childHH (childHH thetaBelowCell1110))) + +/-- Subcell `11103313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103313 : AngleCell := + childHH (childLH (childHH (childHH thetaBelowCell1110))) + +/-- Subcell `11112000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112000 : AngleCell := + childLL (childLL (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112001 : AngleCell := + childLH (childLL (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112002 : AngleCell := + childHL (childLL (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112003 : AngleCell := + childHH (childLL (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112010 : AngleCell := + childLL (childLH (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112011 : AngleCell := + childLH (childLH (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112012 : AngleCell := + childHL (childLH (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112013 : AngleCell := + childHH (childLH (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112020 : AngleCell := + childLL (childHL (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112021 : AngleCell := + childLH (childHL (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112030 : AngleCell := + childLL (childHH (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112031 : AngleCell := + childLH (childHH (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112100 : AngleCell := + childLL (childLL (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112101 : AngleCell := + childLH (childLL (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112102 : AngleCell := + childHL (childLL (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112103 : AngleCell := + childHH (childLL (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112110 : AngleCell := + childLL (childLH (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112111 : AngleCell := + childLH (childLH (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112112 : AngleCell := + childHL (childLH (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112113 : AngleCell := + childHH (childLH (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112120 : AngleCell := + childLL (childHL (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112121 : AngleCell := + childLH (childHL (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112130 : AngleCell := + childLL (childHH (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112131 : AngleCell := + childLH (childHH (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112132 : AngleCell := + childHL (childHH (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112133 : AngleCell := + childHH (childHH (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112200 : AngleCell := + childLL (childLL (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112201 : AngleCell := + childLH (childLL (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112202 : AngleCell := + childHL (childLL (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112203 : AngleCell := + childHH (childLL (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112210 : AngleCell := + childLL (childLH (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112211 : AngleCell := + childLH (childLH (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112212 : AngleCell := + childHL (childLH (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112213 : AngleCell := + childHH (childLH (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112220 : AngleCell := + childLL (childHL (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112221 : AngleCell := + childLH (childHL (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112222 : AngleCell := + childHL (childHL (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112223 : AngleCell := + childHH (childHL (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112230 : AngleCell := + childLL (childHH (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112231 : AngleCell := + childLH (childHH (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112232 : AngleCell := + childHL (childHH (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112233 : AngleCell := + childHH (childHH (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112302 : AngleCell := + childHL (childLL (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112303 : AngleCell := + childHH (childLL (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112312 : AngleCell := + childHL (childLH (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112313 : AngleCell := + childHH (childLH (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112320 : AngleCell := + childLL (childHL (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112321 : AngleCell := + childLH (childHL (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112322 : AngleCell := + childHL (childHL (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112323 : AngleCell := + childHH (childHL (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112330 : AngleCell := + childLL (childHH (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112331 : AngleCell := + childLH (childHH (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112332 : AngleCell := + childHL (childHH (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112333 : AngleCell := + childHH (childHH (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11113020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113020 : AngleCell := + childLL (childHL (childLL (childHH thetaBelowCell1111))) + +/-- Subcell `11113021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113021 : AngleCell := + childLH (childHL (childLL (childHH thetaBelowCell1111))) + +/-- Subcell `11113022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113022 : AngleCell := + childHL (childHL (childLL (childHH thetaBelowCell1111))) + +/-- Subcell `11113023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113023 : AngleCell := + childHH (childHL (childLL (childHH thetaBelowCell1111))) + +/-- Subcell `11113030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113030 : AngleCell := + childLL (childHH (childLL (childHH thetaBelowCell1111))) + +/-- Subcell `11113031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113031 : AngleCell := + childLH (childHH (childLL (childHH thetaBelowCell1111))) + +/-- Subcell `11113032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113032 : AngleCell := + childHL (childHH (childLL (childHH thetaBelowCell1111))) + +/-- Subcell `11113033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113033 : AngleCell := + childHH (childHH (childLL (childHH thetaBelowCell1111))) + +/-- Subcell `11113120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113120 : AngleCell := + childLL (childHL (childLH (childHH thetaBelowCell1111))) + +/-- Subcell `11113121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113121 : AngleCell := + childLH (childHL (childLH (childHH thetaBelowCell1111))) + +/-- Subcell `11113122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113122 : AngleCell := + childHL (childHL (childLH (childHH thetaBelowCell1111))) + +/-- Subcell `11113123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113123 : AngleCell := + childHH (childHL (childLH (childHH thetaBelowCell1111))) + +/-- Subcell `11113130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113130 : AngleCell := + childLL (childHH (childLH (childHH thetaBelowCell1111))) + +/-- Subcell `11113131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113131 : AngleCell := + childLH (childHH (childLH (childHH thetaBelowCell1111))) + +/-- Subcell `11113132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113132 : AngleCell := + childHL (childHH (childLH (childHH thetaBelowCell1111))) + +/-- Subcell `11113133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113133 : AngleCell := + childHH (childHH (childLH (childHH thetaBelowCell1111))) + +/-- Subcell `11113202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113202 : AngleCell := + childHL (childLL (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113203 : AngleCell := + childHH (childLL (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113212 : AngleCell := + childHL (childLH (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113213 : AngleCell := + childHH (childLH (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113220 : AngleCell := + childLL (childHL (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113221 : AngleCell := + childLH (childHL (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113222 : AngleCell := + childHL (childHL (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113223 : AngleCell := + childHH (childHL (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113230 : AngleCell := + childLL (childHH (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113231 : AngleCell := + childLH (childHH (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113232 : AngleCell := + childHL (childHH (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113233 : AngleCell := + childHH (childHH (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113302 : AngleCell := + childHL (childLL (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113303 : AngleCell := + childHH (childLL (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113312 : AngleCell := + childHL (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113313 : AngleCell := + childHH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113320 : AngleCell := + childLL (childHL (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113321 : AngleCell := + childLH (childHL (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113322 : AngleCell := + childHL (childHL (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113323 : AngleCell := + childHH (childHL (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113330 : AngleCell := + childLL (childHH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113331 : AngleCell := + childLH (childHH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113332 : AngleCell := + childHL (childHH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113333 : AngleCell := + childHH (childHH (childHH (childHH thetaBelowCell1111))) + +end GerverSofa.PartE.CertificateCells2af6f575e7 + +namespace GerverSofa.PartE.CertificateCellsc9f578345f + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022003100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00002200))) + +/-- Subcell `000022010220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022010220 : AngleCell := + childLL (childHL (childHL (childLL thetaAboveCell00002201))) + +/-- Subcell `000022010221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022010221 : AngleCell := + childLH (childHL (childHL (childLL thetaAboveCell00002201))) + +/-- Subcell `000022010222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022010222 : AngleCell := + childHL (childHL (childHL (childLL thetaAboveCell00002201))) + +/-- Subcell `000022010223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022010223 : AngleCell := + childHH (childHL (childHL (childLL thetaAboveCell00002201))) + +/-- Subcell `000022010230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022010230 : AngleCell := + childLL (childHH (childHL (childLL thetaAboveCell00002201))) + +/-- Subcell `000022010231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022010231 : AngleCell := + childLH (childHH (childHL (childLL thetaAboveCell00002201))) + +/-- Subcell `000022010232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022010232 : AngleCell := + childHL (childHH (childHL (childLL thetaAboveCell00002201))) + +/-- Subcell `000022010233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022010233 : AngleCell := + childHH (childHH (childHL (childLL thetaAboveCell00002201))) + +/-- Subcell `000022010320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022010320 : AngleCell := + childLL (childHL (childHH (childLL thetaAboveCell00002201))) + +/-- Subcell `000022010321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022010321 : AngleCell := + childLH (childHL (childHH (childLL thetaAboveCell00002201))) + +/-- Subcell `000022010322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022010322 : AngleCell := + childHL (childHL (childHH (childLL thetaAboveCell00002201))) + +/-- Subcell `000022010323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022010323 : AngleCell := + childHH (childHL (childHH (childLL thetaAboveCell00002201))) + +/-- Subcell `000022010330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022010330 : AngleCell := + childLL (childHH (childHH (childLL thetaAboveCell00002201))) + +/-- Subcell `000022010331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022010331 : AngleCell := + childLH (childHH (childHH (childLL thetaAboveCell00002201))) + +/-- Subcell `000022010332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022010332 : AngleCell := + childHL (childHH (childHH (childLL thetaAboveCell00002201))) + +/-- Subcell `000022010333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022010333 : AngleCell := + childHH (childHH (childHH (childLL thetaAboveCell00002201))) + +/-- Subcell `000022011220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022011220 : AngleCell := + childLL (childHL (childHL (childLH thetaAboveCell00002201))) + +/-- Subcell `000022011221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022011221 : AngleCell := + childLH (childHL (childHL (childLH thetaAboveCell00002201))) + +/-- Subcell `000022011222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022011222 : AngleCell := + childHL (childHL (childHL (childLH thetaAboveCell00002201))) + +/-- Subcell `000022011223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022011223 : AngleCell := + childHH (childHL (childHL (childLH thetaAboveCell00002201))) + +/-- Subcell `000022011230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022011230 : AngleCell := + childLL (childHH (childHL (childLH thetaAboveCell00002201))) + +/-- Subcell `000022011231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022011231 : AngleCell := + childLH (childHH (childHL (childLH thetaAboveCell00002201))) + +/-- Subcell `000022011232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022011232 : AngleCell := + childHL (childHH (childHL (childLH thetaAboveCell00002201))) + +/-- Subcell `000022011233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022011233 : AngleCell := + childHH (childHH (childHL (childLH thetaAboveCell00002201))) + +/-- Subcell `000022011320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022011320 : AngleCell := + childLL (childHL (childHH (childLH thetaAboveCell00002201))) + +/-- Subcell `000022011321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022011321 : AngleCell := + childLH (childHL (childHH (childLH thetaAboveCell00002201))) + +/-- Subcell `000022011322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022011322 : AngleCell := + childHL (childHL (childHH (childLH thetaAboveCell00002201))) + +/-- Subcell `000022011323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022011323 : AngleCell := + childHH (childHL (childHH (childLH thetaAboveCell00002201))) + +/-- Subcell `000022011330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022011330 : AngleCell := + childLL (childHH (childHH (childLH thetaAboveCell00002201))) + +/-- Subcell `000022011331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022011331 : AngleCell := + childLH (childHH (childHH (childLH thetaAboveCell00002201))) + +/-- Subcell `000022011332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022011332 : AngleCell := + childHL (childHH (childHH (childLH thetaAboveCell00002201))) + +/-- Subcell `000022011333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022011333 : AngleCell := + childHH (childHH (childHH (childLH thetaAboveCell00002201))) + +/-- Subcell `000022012000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00002201))) + +/-- Subcell `0000220031002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022003100))) + +/-- Subcell `0000220031003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022003100))) + +/-- Subcell `0000220031012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022003101))) + +/-- Subcell `0000220031013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022003101))) + +/-- Subcell `0000220031102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022003110))) + +/-- Subcell `0000220031103000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022003110))) + +/-- Subcell `0000220031112000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022003111))) + +/-- Subcell `0000220031113020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220031113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220031113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022003111))) + +/-- Subcell `0000220120002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022012000))) + +/-- Subcell `0000220120003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022012000))) + +/-- Subcell `0000220120012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022012001))) + +/-- Subcell `0000220120013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022012001))) + +/-- Subcell `0000220120102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022012010))) + +/-- Subcell `0000220120103020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022012010))) + +/-- Subcell `0000220120112020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022012011))) + +/-- Subcell `0000220120113020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell000022012011))) + +/-- Subcell `0000220120113333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220120113333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell000022012011))) + +end GerverSofa.PartE.CertificateCellsc9f578345f + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC5TerminalBatchT716800017`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC5 checkpoint-aware kernel batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2af6f575e7 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2af6f575e7 + +open CertificateCells2af6f575e7 +theorem e24KC2ThetaBelowLeaf111030203 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103020) = true := by + have h : ((childHH thetaBelowCell11103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11103020) h +theorem e24KC2ThetaBelowLeaf111030210 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103021) = true := by + have h : ((childLL thetaBelowCell11103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11103021) h +theorem e24KC2ThetaBelowLeaf111030211 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103021) = true := by + have h : ((childLH thetaBelowCell11103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11103021) h +theorem e24KC2ThetaBelowLeaf111030212 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103021) = true := by + have h : ((childHL thetaBelowCell11103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11103021) h +theorem e24KC2ThetaBelowLeaf111030213 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103021) = true := by + have h : ((childHH thetaBelowCell11103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11103021) h +theorem e24KC2ThetaBelowLeaf111030220 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103022) = true := by + have h : ((childLL thetaBelowCell11103022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11103022) h +theorem e24KC2ThetaBelowLeaf111030221 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103022) = true := by + have h : ((childLH thetaBelowCell11103022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11103022) h +theorem e24KC2ThetaBelowLeaf111030222 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103022) = true := by + have h : ((childHL thetaBelowCell11103022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11103022) h +theorem e24KC2ThetaBelowLeaf111030230 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103023) = true := by + have h : ((childLL thetaBelowCell11103023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11103023) h +theorem e24KC2ThetaBelowLeaf111030231 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103023) = true := by + have h : ((childLH thetaBelowCell11103023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11103023) h +theorem e24KC2ThetaBelowLeaf111030300 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103030) = true := by + have h : ((childLL thetaBelowCell11103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11103030) h +theorem e24KC2ThetaBelowLeaf111030301 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103030) = true := by + have h : ((childLH thetaBelowCell11103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11103030) h +theorem e24KC2ThetaBelowLeaf111030302 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103030) = true := by + have h : ((childHL thetaBelowCell11103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11103030) h +theorem e24KC2ThetaBelowLeaf111030303 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103030) = true := by + have h : ((childHH thetaBelowCell11103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11103030) h +theorem e24KC2ThetaBelowLeaf111030310 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103031) = true := by + have h : ((childLL thetaBelowCell11103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11103031) h +theorem e24KC2ThetaBelowLeaf111030311 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103031) = true := by + have h : ((childLH thetaBelowCell11103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11103031) h +theorem e24KC2ThetaBelowLeaf11103100 : + adaptiveCoverCheck 10 thetaBelowCell11103100 = true := by + have h : (thetaBelowCell11103100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103100 h +theorem e24KC2ThetaBelowLeaf11103101 : + adaptiveCoverCheck 10 thetaBelowCell11103101 = true := by + have h : (thetaBelowCell11103101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103101 h +theorem e24KC2ThetaBelowLeaf11103102 : + adaptiveCoverCheck 10 thetaBelowCell11103102 = true := by + have h : (thetaBelowCell11103102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103102 h +theorem e24KC2ThetaBelowLeaf11103103 : + adaptiveCoverCheck 10 thetaBelowCell11103103 = true := by + have h : (thetaBelowCell11103103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103103 h +theorem e24KC2ThetaBelowLeaf11103110 : + adaptiveCoverCheck 10 thetaBelowCell11103110 = true := by + have h : (thetaBelowCell11103110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103110 h +theorem e24KC2ThetaBelowLeaf11103111 : + adaptiveCoverCheck 10 thetaBelowCell11103111 = true := by + have h : (thetaBelowCell11103111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103111 h +theorem e24KC2ThetaBelowLeaf11103112 : + adaptiveCoverCheck 10 thetaBelowCell11103112 = true := by + have h : (thetaBelowCell11103112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103112 h +theorem e24KC2ThetaBelowLeaf11103113 : + adaptiveCoverCheck 10 thetaBelowCell11103113 = true := by + have h : (thetaBelowCell11103113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103113 h +theorem e24KC2ThetaBelowLeaf111031200 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103120) = true := by + have h : ((childLL thetaBelowCell11103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11103120) h +theorem e24KC2ThetaBelowLeaf111031201 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103120) = true := by + have h : ((childLH thetaBelowCell11103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11103120) h +theorem e24KC2ThetaBelowLeaf111031203 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103120) = true := by + have h : ((childHH thetaBelowCell11103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11103120) h +theorem e24KC2ThetaBelowLeaf111031210 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103121) = true := by + have h : ((childLL thetaBelowCell11103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11103121) h +theorem e24KC2ThetaBelowLeaf111031211 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103121) = true := by + have h : ((childLH thetaBelowCell11103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11103121) h +theorem e24KC2ThetaBelowLeaf111031212 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103121) = true := by + have h : ((childHL thetaBelowCell11103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11103121) h +theorem e24KC2ThetaBelowLeaf111031213 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103121) = true := by + have h : ((childHH thetaBelowCell11103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11103121) h +theorem e24KC2ThetaBelowLeaf111031300 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103130) = true := by + have h : ((childLL thetaBelowCell11103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11103130) h +theorem e24KC2ThetaBelowLeaf111031301 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103130) = true := by + have h : ((childLH thetaBelowCell11103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11103130) h +theorem e24KC2ThetaBelowLeaf111031302 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103130) = true := by + have h : ((childHL thetaBelowCell11103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11103130) h +theorem e24KC2ThetaBelowLeaf111031303 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103130) = true := by + have h : ((childHH thetaBelowCell11103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11103130) h +theorem e24KC2ThetaBelowLeaf111031310 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103131) = true := by + have h : ((childLL thetaBelowCell11103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11103131) h +theorem e24KC2ThetaBelowLeaf111031311 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103131) = true := by + have h : ((childLH thetaBelowCell11103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11103131) h +theorem e24KC2ThetaBelowLeaf111031312 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103131) = true := by + have h : ((childHL thetaBelowCell11103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11103131) h +theorem e24KC2ThetaBelowLeaf111031313 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103131) = true := by + have h : ((childHH thetaBelowCell11103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11103131) h +theorem e24KC2ThetaBelowLeaf111032000 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103200) = true := by + have h : ((childLL thetaBelowCell11103200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11103200) h +theorem e24KC2ThetaBelowLeaf111032001 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103200) = true := by + have h : ((childLH thetaBelowCell11103200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11103200) h +theorem e24KC2ThetaBelowLeaf111032002 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103200) = true := by + have h : ((childHL thetaBelowCell11103200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11103200) h +theorem e24KC2ThetaBelowLeaf111032003 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103200) = true := by + have h : ((childHH thetaBelowCell11103200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11103200) h +theorem e24KC2ThetaBelowLeaf111032010 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11103201) = true := by + have h : ((childLL thetaBelowCell11103201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11103201) h +theorem e24KC2ThetaBelowLeaf111032011 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11103201) = true := by + have h : ((childLH thetaBelowCell11103201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11103201) h +theorem e24KC2ThetaBelowLeaf111032012 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103201) = true := by + have h : ((childHL thetaBelowCell11103201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11103201) h +theorem e24KC2ThetaBelowLeaf111032013 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103201) = true := by + have h : ((childHH thetaBelowCell11103201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11103201) h +theorem e24KC2ThetaBelowLeaf11103202 : + adaptiveCoverCheck 10 thetaBelowCell11103202 = true := by + have h : (thetaBelowCell11103202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103202 h +theorem e24KC2ThetaBelowLeaf11103203 : + adaptiveCoverCheck 10 thetaBelowCell11103203 = true := by + have h : (thetaBelowCell11103203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103203 h +theorem e24KC2ThetaBelowLeaf111032102 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103210) = true := by + have h : ((childHL thetaBelowCell11103210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11103210) h +theorem e24KC2ThetaBelowLeaf111032103 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103210) = true := by + have h : ((childHH thetaBelowCell11103210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11103210) h +theorem e24KC2ThetaBelowLeaf111032112 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103211) = true := by + have h : ((childHL thetaBelowCell11103211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11103211) h +theorem e24KC2ThetaBelowLeaf111032113 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103211) = true := by + have h : ((childHH thetaBelowCell11103211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11103211) h +theorem e24KC2ThetaBelowLeaf11103212 : + adaptiveCoverCheck 10 thetaBelowCell11103212 = true := by + have h : (thetaBelowCell11103212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103212 h +theorem e24KC2ThetaBelowLeaf11103213 : + adaptiveCoverCheck 10 thetaBelowCell11103213 = true := by + have h : (thetaBelowCell11103213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103213 h +theorem e24KC2ThetaBelowLeaf1110322 : + adaptiveCoverCheck 11 (childHL (childHL (childHH thetaBelowCell1110))) = true := by + have h : ((childHL (childHL (childHH thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childHH thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf1110323 : + adaptiveCoverCheck 11 (childHH (childHL (childHH thetaBelowCell1110))) = true := by + have h : ((childHH (childHL (childHH thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childHH thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf111033002 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103300) = true := by + have h : ((childHL thetaBelowCell11103300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11103300) h +theorem e24KC2ThetaBelowLeaf111033003 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103300) = true := by + have h : ((childHH thetaBelowCell11103300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11103300) h +theorem e24KC2ThetaBelowLeaf111033012 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103301) = true := by + have h : ((childHL thetaBelowCell11103301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11103301) h +theorem e24KC2ThetaBelowLeaf111033013 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103301) = true := by + have h : ((childHH thetaBelowCell11103301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11103301) h +theorem e24KC2ThetaBelowLeaf11103302 : + adaptiveCoverCheck 10 thetaBelowCell11103302 = true := by + have h : (thetaBelowCell11103302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103302 h +theorem e24KC2ThetaBelowLeaf11103303 : + adaptiveCoverCheck 10 thetaBelowCell11103303 = true := by + have h : (thetaBelowCell11103303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103303 h +theorem e24KC2ThetaBelowLeaf111033102 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103310) = true := by + have h : ((childHL thetaBelowCell11103310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11103310) h +theorem e24KC2ThetaBelowLeaf111033103 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103310) = true := by + have h : ((childHH thetaBelowCell11103310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11103310) h +theorem e24KC2ThetaBelowLeaf111033112 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11103311) = true := by + have h : ((childHL thetaBelowCell11103311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11103311) h +theorem e24KC2ThetaBelowLeaf111033113 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11103311) = true := by + have h : ((childHH thetaBelowCell11103311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11103311) h +theorem e24KC2ThetaBelowLeaf11103312 : + adaptiveCoverCheck 10 thetaBelowCell11103312 = true := by + have h : (thetaBelowCell11103312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103312 h +theorem e24KC2ThetaBelowLeaf11103313 : + adaptiveCoverCheck 10 thetaBelowCell11103313 = true := by + have h : (thetaBelowCell11103313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11103313 h +theorem e24KC2ThetaBelowLeaf1110332 : + adaptiveCoverCheck 11 (childHL (childHH (childHH thetaBelowCell1110))) = true := by + have h : ((childHL (childHH (childHH thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childHH thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf1110333 : + adaptiveCoverCheck 11 (childHH (childHH (childHH thetaBelowCell1110))) = true := by + have h : ((childHH (childHH (childHH thetaBelowCell1110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childHH thetaBelowCell1110))) h +theorem e24KC2ThetaBelowLeaf111100 : + adaptiveCoverCheck 12 (childLL (childLL thetaBelowCell1111)) = true := by + have h : ((childLL (childLL thetaBelowCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL thetaBelowCell1111)) h +theorem e24KC2ThetaBelowLeaf111101 : + adaptiveCoverCheck 12 (childLH (childLL thetaBelowCell1111)) = true := by + have h : ((childLH (childLL thetaBelowCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL thetaBelowCell1111)) h +theorem e24KC2ThetaBelowLeaf1111020 : + adaptiveCoverCheck 11 (childLL (childHL (childLL thetaBelowCell1111))) = true := by + have h : ((childLL (childHL (childLL thetaBelowCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHL (childLL thetaBelowCell1111))) h +theorem e24KC2ThetaBelowLeaf1111021 : + adaptiveCoverCheck 11 (childLH (childHL (childLL thetaBelowCell1111))) = true := by + have h : ((childLH (childHL (childLL thetaBelowCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHL (childLL thetaBelowCell1111))) h +theorem e24KC2ThetaBelowLeaf1111022 : + adaptiveCoverCheck 11 (childHL (childHL (childLL thetaBelowCell1111))) = true := by + have h : ((childHL (childHL (childLL thetaBelowCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childLL thetaBelowCell1111))) h +theorem e24KC2ThetaBelowLeaf1111023 : + adaptiveCoverCheck 11 (childHH (childHL (childLL thetaBelowCell1111))) = true := by + have h : ((childHH (childHL (childLL thetaBelowCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childLL thetaBelowCell1111))) h +theorem e24KC2ThetaBelowLeaf1111030 : + adaptiveCoverCheck 11 (childLL (childHH (childLL thetaBelowCell1111))) = true := by + have h : ((childLL (childHH (childLL thetaBelowCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHH (childLL thetaBelowCell1111))) h +theorem e24KC2ThetaBelowLeaf1111031 : + adaptiveCoverCheck 11 (childLH (childHH (childLL thetaBelowCell1111))) = true := by + have h : ((childLH (childHH (childLL thetaBelowCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHH (childLL thetaBelowCell1111))) h +theorem e24KC2ThetaBelowLeaf1111032 : + adaptiveCoverCheck 11 (childHL (childHH (childLL thetaBelowCell1111))) = true := by + have h : ((childHL (childHH (childLL thetaBelowCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHH (childLL thetaBelowCell1111))) h +theorem e24KC2ThetaBelowLeaf1111033 : + adaptiveCoverCheck 11 (childHH (childHH (childLL thetaBelowCell1111))) = true := by + have h : ((childHH (childHH (childLL thetaBelowCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHH (childLL thetaBelowCell1111))) h +theorem e24KC2ThetaBelowLeaf111110 : + adaptiveCoverCheck 12 (childLL (childLH thetaBelowCell1111)) = true := by + have h : ((childLL (childLH thetaBelowCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLH thetaBelowCell1111)) h +theorem e24KC2ThetaBelowLeaf111111 : + adaptiveCoverCheck 12 (childLH (childLH thetaBelowCell1111)) = true := by + have h : ((childLH (childLH thetaBelowCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLH thetaBelowCell1111)) h +theorem e24KC2ThetaBelowLeaf1111120 : + adaptiveCoverCheck 11 (childLL (childHL (childLH thetaBelowCell1111))) = true := by + have h : ((childLL (childHL (childLH thetaBelowCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childHL (childLH thetaBelowCell1111))) h +theorem e24KC2ThetaBelowLeaf1111121 : + adaptiveCoverCheck 11 (childLH (childHL (childLH thetaBelowCell1111))) = true := by + have h : ((childLH (childHL (childLH thetaBelowCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childHL (childLH thetaBelowCell1111))) h +theorem e24KC2ThetaBelowLeaf1111122 : + adaptiveCoverCheck 11 (childHL (childHL (childLH thetaBelowCell1111))) = true := by + have h : ((childHL (childHL (childLH thetaBelowCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childHL (childLH thetaBelowCell1111))) h +theorem e24KC2ThetaBelowLeaf1111123 : + adaptiveCoverCheck 11 (childHH (childHL (childLH thetaBelowCell1111))) = true := by + have h : ((childHH (childHL (childLH thetaBelowCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childHL (childLH thetaBelowCell1111))) h +theorem e24KC2ThetaBelowLeaf111113 : + adaptiveCoverCheck 12 (childHH (childLH thetaBelowCell1111)) = true := by + have h : ((childHH (childLH thetaBelowCell1111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH thetaBelowCell1111)) h +theorem e24KC2ThetaBelowLeaf11112000 : + adaptiveCoverCheck 10 thetaBelowCell11112000 = true := by + have h : (thetaBelowCell11112000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112000 h +theorem e24KC2ThetaBelowLeaf11112001 : + adaptiveCoverCheck 10 thetaBelowCell11112001 = true := by + have h : (thetaBelowCell11112001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112001 h +theorem e24KC2ThetaBelowLeaf11112002 : + adaptiveCoverCheck 10 thetaBelowCell11112002 = true := by + have h : (thetaBelowCell11112002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112002 h +theorem e24KC2ThetaBelowLeaf11112003 : + adaptiveCoverCheck 10 thetaBelowCell11112003 = true := by + have h : (thetaBelowCell11112003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112003 h +theorem e24KC2ThetaBelowLeaf11112010 : + adaptiveCoverCheck 10 thetaBelowCell11112010 = true := by + have h : (thetaBelowCell11112010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112010 h +theorem e24KC2ThetaBelowLeaf11112011 : + adaptiveCoverCheck 10 thetaBelowCell11112011 = true := by + have h : (thetaBelowCell11112011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112011 h +theorem e24KC2ThetaBelowLeaf11112012 : + adaptiveCoverCheck 10 thetaBelowCell11112012 = true := by + have h : (thetaBelowCell11112012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112012 h +theorem e24KC2ThetaBelowLeaf11112013 : + adaptiveCoverCheck 10 thetaBelowCell11112013 = true := by + have h : (thetaBelowCell11112013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112013 h +theorem e24KC2ThetaBelowLeaf111120200 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112020) = true := by + have h : ((childLL thetaBelowCell11112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11112020) h +theorem e24KC2ThetaBelowLeaf111120201 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112020) = true := by + have h : ((childLH thetaBelowCell11112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11112020) h +theorem e24KC2ThetaBelowLeaf111120202 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112020) = true := by + have h : ((childHL thetaBelowCell11112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11112020) h +theorem e24KC2ThetaBelowLeaf111120203 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112020) = true := by + have h : ((childHH thetaBelowCell11112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11112020) h +theorem e24KC2ThetaBelowLeaf111120210 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112021) = true := by + have h : ((childLL thetaBelowCell11112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11112021) h +theorem e24KC2ThetaBelowLeaf111120211 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112021) = true := by + have h : ((childLH thetaBelowCell11112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11112021) h +theorem e24KC2ThetaBelowLeaf111120212 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112021) = true := by + have h : ((childHL thetaBelowCell11112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11112021) h +theorem e24KC2ThetaBelowLeaf111120213 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112021) = true := by + have h : ((childHH thetaBelowCell11112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11112021) h +theorem e24KC2ThetaBelowLeaf111120300 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112030) = true := by + have h : ((childLL thetaBelowCell11112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11112030) h +theorem e24KC2ThetaBelowLeaf111120301 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112030) = true := by + have h : ((childLH thetaBelowCell11112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11112030) h +theorem e24KC2ThetaBelowLeaf111120302 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112030) = true := by + have h : ((childHL thetaBelowCell11112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11112030) h +theorem e24KC2ThetaBelowLeaf111120303 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112030) = true := by + have h : ((childHH thetaBelowCell11112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11112030) h +theorem e24KC2ThetaBelowLeaf111120310 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112031) = true := by + have h : ((childLL thetaBelowCell11112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11112031) h +theorem e24KC2ThetaBelowLeaf111120311 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112031) = true := by + have h : ((childLH thetaBelowCell11112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11112031) h +theorem e24KC2ThetaBelowLeaf111120312 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112031) = true := by + have h : ((childHL thetaBelowCell11112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11112031) h +theorem e24KC2ThetaBelowLeaf111120313 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112031) = true := by + have h : ((childHH thetaBelowCell11112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11112031) h +theorem e24KC2ThetaBelowLeaf11112100 : + adaptiveCoverCheck 10 thetaBelowCell11112100 = true := by + have h : (thetaBelowCell11112100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112100 h +theorem e24KC2ThetaBelowLeaf11112101 : + adaptiveCoverCheck 10 thetaBelowCell11112101 = true := by + have h : (thetaBelowCell11112101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112101 h +theorem e24KC2ThetaBelowLeaf11112102 : + adaptiveCoverCheck 10 thetaBelowCell11112102 = true := by + have h : (thetaBelowCell11112102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112102 h +theorem e24KC2ThetaBelowLeaf11112103 : + adaptiveCoverCheck 10 thetaBelowCell11112103 = true := by + have h : (thetaBelowCell11112103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112103 h +theorem e24KC2ThetaBelowLeaf11112110 : + adaptiveCoverCheck 10 thetaBelowCell11112110 = true := by + have h : (thetaBelowCell11112110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112110 h +theorem e24KC2ThetaBelowLeaf11112111 : + adaptiveCoverCheck 10 thetaBelowCell11112111 = true := by + have h : (thetaBelowCell11112111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112111 h +theorem e24KC2ThetaBelowLeaf11112112 : + adaptiveCoverCheck 10 thetaBelowCell11112112 = true := by + have h : (thetaBelowCell11112112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112112 h +theorem e24KC2ThetaBelowLeaf11112113 : + adaptiveCoverCheck 10 thetaBelowCell11112113 = true := by + have h : (thetaBelowCell11112113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112113 h +theorem e24KC2ThetaBelowLeaf111121200 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112120) = true := by + have h : ((childLL thetaBelowCell11112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11112120) h +theorem e24KC2ThetaBelowLeaf111121201 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112120) = true := by + have h : ((childLH thetaBelowCell11112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11112120) h +theorem e24KC2ThetaBelowLeaf111121202 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112120) = true := by + have h : ((childHL thetaBelowCell11112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11112120) h +theorem e24KC2ThetaBelowLeaf111121203 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112120) = true := by + have h : ((childHH thetaBelowCell11112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11112120) h +theorem e24KC2ThetaBelowLeaf111121210 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112121) = true := by + have h : ((childLL thetaBelowCell11112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11112121) h +theorem e24KC2ThetaBelowLeaf111121211 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112121) = true := by + have h : ((childLH thetaBelowCell11112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11112121) h +theorem e24KC2ThetaBelowLeaf111121212 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112121) = true := by + have h : ((childHL thetaBelowCell11112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11112121) h +theorem e24KC2ThetaBelowLeaf111121213 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112121) = true := by + have h : ((childHH thetaBelowCell11112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11112121) h +theorem e24KC2ThetaBelowLeaf111121300 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112130) = true := by + have h : ((childLL thetaBelowCell11112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11112130) h +theorem e24KC2ThetaBelowLeaf111121301 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112130) = true := by + have h : ((childLH thetaBelowCell11112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11112130) h +theorem e24KC2ThetaBelowLeaf111121302 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112130) = true := by + have h : ((childHL thetaBelowCell11112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11112130) h +theorem e24KC2ThetaBelowLeaf111121303 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112130) = true := by + have h : ((childHH thetaBelowCell11112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11112130) h +theorem e24KC2ThetaBelowLeaf11112131 : + adaptiveCoverCheck 10 thetaBelowCell11112131 = true := by + have h : (thetaBelowCell11112131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112131 h +theorem e24KC2ThetaBelowLeaf111121320 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112132) = true := by + have h : ((childLL thetaBelowCell11112132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11112132) h +theorem e24KC2ThetaBelowLeaf111121321 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112132) = true := by + have h : ((childLH thetaBelowCell11112132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11112132) h +theorem e24KC2ThetaBelowLeaf111121330 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112133) = true := by + have h : ((childLL thetaBelowCell11112133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11112133) h +theorem e24KC2ThetaBelowLeaf111121331 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112133) = true := by + have h : ((childLH thetaBelowCell11112133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11112133) h +theorem e24KC2ThetaBelowLeaf111122002 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112200) = true := by + have h : ((childHL thetaBelowCell11112200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11112200) h +theorem e24KC2ThetaBelowLeaf111122003 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112200) = true := by + have h : ((childHH thetaBelowCell11112200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11112200) h +theorem e24KC2ThetaBelowLeaf111122012 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112201) = true := by + have h : ((childHL thetaBelowCell11112201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11112201) h +theorem e24KC2ThetaBelowLeaf111122013 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112201) = true := by + have h : ((childHH thetaBelowCell11112201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11112201) h +theorem e24KC2ThetaBelowLeaf11112202 : + adaptiveCoverCheck 10 thetaBelowCell11112202 = true := by + have h : (thetaBelowCell11112202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112202 h +theorem e24KC2ThetaBelowLeaf11112203 : + adaptiveCoverCheck 10 thetaBelowCell11112203 = true := by + have h : (thetaBelowCell11112203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112203 h +theorem e24KC2ThetaBelowLeaf111122102 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112210) = true := by + have h : ((childHL thetaBelowCell11112210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11112210) h +theorem e24KC2ThetaBelowLeaf111122103 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112210) = true := by + have h : ((childHH thetaBelowCell11112210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11112210) h +theorem e24KC2ThetaBelowLeaf111122112 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112211) = true := by + have h : ((childHL thetaBelowCell11112211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11112211) h +theorem e24KC2ThetaBelowLeaf111122120 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112212) = true := by + have h : ((childLL thetaBelowCell11112212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11112212) h +theorem e24KC2ThetaBelowLeaf111122121 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112212) = true := by + have h : ((childLH thetaBelowCell11112212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11112212) h +theorem e24KC2ThetaBelowLeaf111122122 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112212) = true := by + have h : ((childHL thetaBelowCell11112212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11112212) h +theorem e24KC2ThetaBelowLeaf111122123 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112212) = true := by + have h : ((childHH thetaBelowCell11112212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11112212) h +theorem e24KC2ThetaBelowLeaf111122130 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112213) = true := by + have h : ((childLL thetaBelowCell11112213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11112213) h +theorem e24KC2ThetaBelowLeaf111122131 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112213) = true := by + have h : ((childLH thetaBelowCell11112213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11112213) h +theorem e24KC2ThetaBelowLeaf111122132 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112213) = true := by + have h : ((childHL thetaBelowCell11112213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11112213) h +theorem e24KC2ThetaBelowLeaf111122133 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112213) = true := by + have h : ((childHH thetaBelowCell11112213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11112213) h +theorem e24KC2ThetaBelowLeaf11112220 : + adaptiveCoverCheck 10 thetaBelowCell11112220 = true := by + have h : (thetaBelowCell11112220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112220 h +theorem e24KC2ThetaBelowLeaf11112221 : + adaptiveCoverCheck 10 thetaBelowCell11112221 = true := by + have h : (thetaBelowCell11112221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112221 h +theorem e24KC2ThetaBelowLeaf11112222 : + adaptiveCoverCheck 10 thetaBelowCell11112222 = true := by + have h : (thetaBelowCell11112222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112222 h +theorem e24KC2ThetaBelowLeaf11112223 : + adaptiveCoverCheck 10 thetaBelowCell11112223 = true := by + have h : (thetaBelowCell11112223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112223 h +theorem e24KC2ThetaBelowLeaf11112230 : + adaptiveCoverCheck 10 thetaBelowCell11112230 = true := by + have h : (thetaBelowCell11112230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112230 h +theorem e24KC2ThetaBelowLeaf11112231 : + adaptiveCoverCheck 10 thetaBelowCell11112231 = true := by + have h : (thetaBelowCell11112231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112231 h +theorem e24KC2ThetaBelowLeaf11112232 : + adaptiveCoverCheck 10 thetaBelowCell11112232 = true := by + have h : (thetaBelowCell11112232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112232 h +theorem e24KC2ThetaBelowLeaf11112233 : + adaptiveCoverCheck 10 thetaBelowCell11112233 = true := by + have h : (thetaBelowCell11112233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112233 h +theorem e24KC2ThetaBelowLeaf111123020 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112302) = true := by + have h : ((childLL thetaBelowCell11112302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11112302) h +theorem e24KC2ThetaBelowLeaf111123021 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112302) = true := by + have h : ((childLH thetaBelowCell11112302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11112302) h +theorem e24KC2ThetaBelowLeaf111123022 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112302) = true := by + have h : ((childHL thetaBelowCell11112302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11112302) h +theorem e24KC2ThetaBelowLeaf111123023 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112302) = true := by + have h : ((childHH thetaBelowCell11112302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11112302) h +theorem e24KC2ThetaBelowLeaf111123030 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112303) = true := by + have h : ((childLL thetaBelowCell11112303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11112303) h +theorem e24KC2ThetaBelowLeaf111123031 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112303) = true := by + have h : ((childLH thetaBelowCell11112303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11112303) h +theorem e24KC2ThetaBelowLeaf111123032 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112303) = true := by + have h : ((childHL thetaBelowCell11112303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11112303) h +theorem e24KC2ThetaBelowLeaf111123033 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112303) = true := by + have h : ((childHH thetaBelowCell11112303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11112303) h +theorem e24KC2ThetaBelowLeaf111123120 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112312) = true := by + have h : ((childLL thetaBelowCell11112312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11112312) h +theorem e24KC2ThetaBelowLeaf111123121 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112312) = true := by + have h : ((childLH thetaBelowCell11112312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11112312) h +theorem e24KC2ThetaBelowLeaf111123122 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112312) = true := by + have h : ((childHL thetaBelowCell11112312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11112312) h +theorem e24KC2ThetaBelowLeaf111123123 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112312) = true := by + have h : ((childHH thetaBelowCell11112312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11112312) h +theorem e24KC2ThetaBelowLeaf111123130 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11112313) = true := by + have h : ((childLL thetaBelowCell11112313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11112313) h +theorem e24KC2ThetaBelowLeaf111123131 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11112313) = true := by + have h : ((childLH thetaBelowCell11112313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11112313) h +theorem e24KC2ThetaBelowLeaf111123132 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11112313) = true := by + have h : ((childHL thetaBelowCell11112313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11112313) h +theorem e24KC2ThetaBelowLeaf111123133 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11112313) = true := by + have h : ((childHH thetaBelowCell11112313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11112313) h +theorem e24KC2ThetaBelowLeaf11112320 : + adaptiveCoverCheck 10 thetaBelowCell11112320 = true := by + have h : (thetaBelowCell11112320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112320 h +theorem e24KC2ThetaBelowLeaf11112321 : + adaptiveCoverCheck 10 thetaBelowCell11112321 = true := by + have h : (thetaBelowCell11112321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112321 h +theorem e24KC2ThetaBelowLeaf11112322 : + adaptiveCoverCheck 10 thetaBelowCell11112322 = true := by + have h : (thetaBelowCell11112322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112322 h +theorem e24KC2ThetaBelowLeaf11112323 : + adaptiveCoverCheck 10 thetaBelowCell11112323 = true := by + have h : (thetaBelowCell11112323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112323 h +theorem e24KC2ThetaBelowLeaf11112330 : + adaptiveCoverCheck 10 thetaBelowCell11112330 = true := by + have h : (thetaBelowCell11112330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112330 h +theorem e24KC2ThetaBelowLeaf11112331 : + adaptiveCoverCheck 10 thetaBelowCell11112331 = true := by + have h : (thetaBelowCell11112331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112331 h +theorem e24KC2ThetaBelowLeaf11112332 : + adaptiveCoverCheck 10 thetaBelowCell11112332 = true := by + have h : (thetaBelowCell11112332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112332 h +theorem e24KC2ThetaBelowLeaf11112333 : + adaptiveCoverCheck 10 thetaBelowCell11112333 = true := by + have h : (thetaBelowCell11112333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11112333 h +theorem e24KC2ThetaBelowLeaf1111300 : + adaptiveCoverCheck 11 (childLL (childLL (childHH thetaBelowCell1111))) = true := by + have h : ((childLL (childLL (childHH thetaBelowCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLL (childHH thetaBelowCell1111))) h +theorem e24KC2ThetaBelowLeaf1111301 : + adaptiveCoverCheck 11 (childLH (childLL (childHH thetaBelowCell1111))) = true := by + have h : ((childLH (childLL (childHH thetaBelowCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLL (childHH thetaBelowCell1111))) h +theorem e24KC2ThetaBelowLeaf11113020 : + adaptiveCoverCheck 10 thetaBelowCell11113020 = true := by + have h : (thetaBelowCell11113020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113020 h +theorem e24KC2ThetaBelowLeaf11113021 : + adaptiveCoverCheck 10 thetaBelowCell11113021 = true := by + have h : (thetaBelowCell11113021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113021 h +theorem e24KC2ThetaBelowLeaf111130220 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113022) = true := by + have h : ((childLL thetaBelowCell11113022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11113022) h +theorem e24KC2ThetaBelowLeaf111130221 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113022) = true := by + have h : ((childLH thetaBelowCell11113022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11113022) h +theorem e24KC2ThetaBelowLeaf111130230 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113023) = true := by + have h : ((childLL thetaBelowCell11113023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11113023) h +theorem e24KC2ThetaBelowLeaf111130231 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113023) = true := by + have h : ((childLH thetaBelowCell11113023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11113023) h +theorem e24KC2ThetaBelowLeaf11113030 : + adaptiveCoverCheck 10 thetaBelowCell11113030 = true := by + have h : (thetaBelowCell11113030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113030 h +theorem e24KC2ThetaBelowLeaf11113031 : + adaptiveCoverCheck 10 thetaBelowCell11113031 = true := by + have h : (thetaBelowCell11113031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113031 h +theorem e24KC2ThetaBelowLeaf111130320 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113032) = true := by + have h : ((childLL thetaBelowCell11113032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11113032) h +theorem e24KC2ThetaBelowLeaf111130321 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113032) = true := by + have h : ((childLH thetaBelowCell11113032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11113032) h +theorem e24KC2ThetaBelowLeaf111130330 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113033) = true := by + have h : ((childLL thetaBelowCell11113033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11113033) h +theorem e24KC2ThetaBelowLeaf111130331 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113033) = true := by + have h : ((childLH thetaBelowCell11113033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11113033) h +theorem e24KC2ThetaBelowLeaf1111310 : + adaptiveCoverCheck 11 (childLL (childLH (childHH thetaBelowCell1111))) = true := by + have h : ((childLL (childLH (childHH thetaBelowCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLH (childHH thetaBelowCell1111))) h +theorem e24KC2ThetaBelowLeaf1111311 : + adaptiveCoverCheck 11 (childLH (childLH (childHH thetaBelowCell1111))) = true := by + have h : ((childLH (childLH (childHH thetaBelowCell1111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLH (childHH thetaBelowCell1111))) h +theorem e24KC2ThetaBelowLeaf11113120 : + adaptiveCoverCheck 10 thetaBelowCell11113120 = true := by + have h : (thetaBelowCell11113120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113120 h +theorem e24KC2ThetaBelowLeaf11113121 : + adaptiveCoverCheck 10 thetaBelowCell11113121 = true := by + have h : (thetaBelowCell11113121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113121 h +theorem e24KC2ThetaBelowLeaf111131220 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113122) = true := by + have h : ((childLL thetaBelowCell11113122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11113122) h +theorem e24KC2ThetaBelowLeaf111131221 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113122) = true := by + have h : ((childLH thetaBelowCell11113122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11113122) h +theorem e24KC2ThetaBelowLeaf111131230 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113123) = true := by + have h : ((childLL thetaBelowCell11113123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11113123) h +theorem e24KC2ThetaBelowLeaf111131231 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113123) = true := by + have h : ((childLH thetaBelowCell11113123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11113123) h +theorem e24KC2ThetaBelowLeaf11113130 : + adaptiveCoverCheck 10 thetaBelowCell11113130 = true := by + have h : (thetaBelowCell11113130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113130 h +theorem e24KC2ThetaBelowLeaf11113131 : + adaptiveCoverCheck 10 thetaBelowCell11113131 = true := by + have h : (thetaBelowCell11113131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113131 h +theorem e24KC2ThetaBelowLeaf111131320 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113132) = true := by + have h : ((childLL thetaBelowCell11113132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11113132) h +theorem e24KC2ThetaBelowLeaf111131321 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113132) = true := by + have h : ((childLH thetaBelowCell11113132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11113132) h +theorem e24KC2ThetaBelowLeaf111131330 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113133) = true := by + have h : ((childLL thetaBelowCell11113133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11113133) h +theorem e24KC2ThetaBelowLeaf111131331 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113133) = true := by + have h : ((childLH thetaBelowCell11113133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11113133) h +theorem e24KC2ThetaBelowLeaf111132020 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113202) = true := by + have h : ((childLL thetaBelowCell11113202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11113202) h +theorem e24KC2ThetaBelowLeaf111132021 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113202) = true := by + have h : ((childLH thetaBelowCell11113202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11113202) h +theorem e24KC2ThetaBelowLeaf111132022 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113202) = true := by + have h : ((childHL thetaBelowCell11113202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11113202) h +theorem e24KC2ThetaBelowLeaf111132023 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113202) = true := by + have h : ((childHH thetaBelowCell11113202)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11113202) h +theorem e24KC2ThetaBelowLeaf111132030 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113203) = true := by + have h : ((childLL thetaBelowCell11113203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11113203) h +theorem e24KC2ThetaBelowLeaf111132031 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113203) = true := by + have h : ((childLH thetaBelowCell11113203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11113203) h +theorem e24KC2ThetaBelowLeaf111132032 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113203) = true := by + have h : ((childHL thetaBelowCell11113203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11113203) h +theorem e24KC2ThetaBelowLeaf111132033 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113203) = true := by + have h : ((childHH thetaBelowCell11113203)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11113203) h +theorem e24KC2ThetaBelowLeaf111132120 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113212) = true := by + have h : ((childLL thetaBelowCell11113212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11113212) h +theorem e24KC2ThetaBelowLeaf111132121 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113212) = true := by + have h : ((childLH thetaBelowCell11113212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11113212) h +theorem e24KC2ThetaBelowLeaf111132122 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113212) = true := by + have h : ((childHL thetaBelowCell11113212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11113212) h +theorem e24KC2ThetaBelowLeaf111132123 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113212) = true := by + have h : ((childHH thetaBelowCell11113212)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11113212) h +theorem e24KC2ThetaBelowLeaf111132130 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113213) = true := by + have h : ((childLL thetaBelowCell11113213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11113213) h +theorem e24KC2ThetaBelowLeaf111132131 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113213) = true := by + have h : ((childLH thetaBelowCell11113213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11113213) h +theorem e24KC2ThetaBelowLeaf111132132 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113213) = true := by + have h : ((childHL thetaBelowCell11113213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11113213) h +theorem e24KC2ThetaBelowLeaf111132133 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113213) = true := by + have h : ((childHH thetaBelowCell11113213)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11113213) h +theorem e24KC2ThetaBelowLeaf11113220 : + adaptiveCoverCheck 10 thetaBelowCell11113220 = true := by + have h : (thetaBelowCell11113220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113220 h +theorem e24KC2ThetaBelowLeaf11113221 : + adaptiveCoverCheck 10 thetaBelowCell11113221 = true := by + have h : (thetaBelowCell11113221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113221 h +theorem e24KC2ThetaBelowLeaf11113222 : + adaptiveCoverCheck 10 thetaBelowCell11113222 = true := by + have h : (thetaBelowCell11113222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113222 h +theorem e24KC2ThetaBelowLeaf11113223 : + adaptiveCoverCheck 10 thetaBelowCell11113223 = true := by + have h : (thetaBelowCell11113223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113223 h +theorem e24KC2ThetaBelowLeaf11113230 : + adaptiveCoverCheck 10 thetaBelowCell11113230 = true := by + have h : (thetaBelowCell11113230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113230 h +theorem e24KC2ThetaBelowLeaf11113231 : + adaptiveCoverCheck 10 thetaBelowCell11113231 = true := by + have h : (thetaBelowCell11113231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113231 h +theorem e24KC2ThetaBelowLeaf11113232 : + adaptiveCoverCheck 10 thetaBelowCell11113232 = true := by + have h : (thetaBelowCell11113232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113232 h +theorem e24KC2ThetaBelowLeaf11113233 : + adaptiveCoverCheck 10 thetaBelowCell11113233 = true := by + have h : (thetaBelowCell11113233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113233 h +theorem e24KC2ThetaBelowLeaf111133020 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113302) = true := by + have h : ((childLL thetaBelowCell11113302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11113302) h +theorem e24KC2ThetaBelowLeaf111133021 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113302) = true := by + have h : ((childLH thetaBelowCell11113302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11113302) h +theorem e24KC2ThetaBelowLeaf111133022 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113302) = true := by + have h : ((childHL thetaBelowCell11113302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11113302) h +theorem e24KC2ThetaBelowLeaf111133023 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113302) = true := by + have h : ((childHH thetaBelowCell11113302)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11113302) h +theorem e24KC2ThetaBelowLeaf111133030 : + adaptiveCoverCheck 9 (childLL thetaBelowCell11113303) = true := by + have h : ((childLL thetaBelowCell11113303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLL thetaBelowCell11113303) h +theorem e24KC2ThetaBelowLeaf111133031 : + adaptiveCoverCheck 9 (childLH thetaBelowCell11113303) = true := by + have h : ((childLH thetaBelowCell11113303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childLH thetaBelowCell11113303) h +theorem e24KC2ThetaBelowLeaf111133032 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113303) = true := by + have h : ((childHL thetaBelowCell11113303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11113303) h +theorem e24KC2ThetaBelowLeaf111133033 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113303) = true := by + have h : ((childHH thetaBelowCell11113303)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11113303) h +theorem e24KC2ThetaBelowLeaf111133122 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113312) = true := by + have h : ((childHL thetaBelowCell11113312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11113312) h +theorem e24KC2ThetaBelowLeaf111133123 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113312) = true := by + have h : ((childHH thetaBelowCell11113312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11113312) h +theorem e24KC2ThetaBelowLeaf111133132 : + adaptiveCoverCheck 9 (childHL thetaBelowCell11113313) = true := by + have h : ((childHL thetaBelowCell11113313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHL thetaBelowCell11113313) h +theorem e24KC2ThetaBelowLeaf111133133 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113313) = true := by + have h : ((childHH thetaBelowCell11113313)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 9 (childHH thetaBelowCell11113313) h +theorem e24KC2ThetaBelowLeaf11113320 : + adaptiveCoverCheck 10 thetaBelowCell11113320 = true := by + have h : (thetaBelowCell11113320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113320 h +theorem e24KC2ThetaBelowLeaf11113321 : + adaptiveCoverCheck 10 thetaBelowCell11113321 = true := by + have h : (thetaBelowCell11113321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113321 h +theorem e24KC2ThetaBelowLeaf11113322 : + adaptiveCoverCheck 10 thetaBelowCell11113322 = true := by + have h : (thetaBelowCell11113322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113322 h +theorem e24KC2ThetaBelowLeaf11113323 : + adaptiveCoverCheck 10 thetaBelowCell11113323 = true := by + have h : (thetaBelowCell11113323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113323 h +theorem e24KC2ThetaBelowLeaf11113330 : + adaptiveCoverCheck 10 thetaBelowCell11113330 = true := by + have h : (thetaBelowCell11113330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113330 h +theorem e24KC2ThetaBelowLeaf11113331 : + adaptiveCoverCheck 10 thetaBelowCell11113331 = true := by + have h : (thetaBelowCell11113331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113331 h +theorem e24KC2ThetaBelowLeaf11113332 : + adaptiveCoverCheck 10 thetaBelowCell11113332 = true := by + have h : (thetaBelowCell11113332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113332 h +theorem e24KC2ThetaBelowLeaf11113333 : + adaptiveCoverCheck 10 thetaBelowCell11113333 = true := by + have h : (thetaBelowCell11113333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 10 thetaBelowCell11113333 h +theorem e24KC2ThetaBelowLeaf111200 : + adaptiveCoverCheck 12 (childLL (childLL thetaBelowCell1112)) = true := by + have h : ((childLL (childLL thetaBelowCell1112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLL (childLL thetaBelowCell1112)) h +theorem e24KC2ThetaBelowLeaf111201 : + adaptiveCoverCheck 12 (childLH (childLL thetaBelowCell1112)) = true := by + have h : ((childLH (childLL thetaBelowCell1112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childLH (childLL thetaBelowCell1112)) h +theorem e24KC2ThetaBelowLeaf111202 : + adaptiveCoverCheck 12 (childHL (childLL thetaBelowCell1112)) = true := by + have h : ((childHL (childLL thetaBelowCell1112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL thetaBelowCell1112)) h +theorem e24KC2ThetaBelowLeaf111203 : + adaptiveCoverCheck 12 (childHH (childLL thetaBelowCell1112)) = true := by + have h : ((childHH (childLL thetaBelowCell1112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL thetaBelowCell1112)) h +theorem e24KC2ThetaBelowLeaf1112100 : + adaptiveCoverCheck 11 (childLL (childLL (childLH thetaBelowCell1112))) = true := by + have h : ((childLL (childLL (childLH thetaBelowCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLL (childLH thetaBelowCell1112))) h +theorem e24KC2ThetaBelowLeaf1112101 : + adaptiveCoverCheck 11 (childLH (childLL (childLH thetaBelowCell1112))) = true := by + have h : ((childLH (childLL (childLH thetaBelowCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLL (childLH thetaBelowCell1112))) h +theorem e24KC2ThetaBelowLeaf1112102 : + adaptiveCoverCheck 11 (childHL (childLL (childLH thetaBelowCell1112))) = true := by + have h : ((childHL (childLL (childLH thetaBelowCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLL (childLH thetaBelowCell1112))) h +theorem e24KC2ThetaBelowLeaf1112103 : + adaptiveCoverCheck 11 (childHH (childLL (childLH thetaBelowCell1112))) = true := by + have h : ((childHH (childLL (childLH thetaBelowCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLL (childLH thetaBelowCell1112))) h +theorem e24KC2ThetaBelowLeaf1112110 : + adaptiveCoverCheck 11 (childLL (childLH (childLH thetaBelowCell1112))) = true := by + have h : ((childLL (childLH (childLH thetaBelowCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLH (childLH thetaBelowCell1112))) h +theorem e24KC2ThetaBelowLeaf1112111 : + adaptiveCoverCheck 11 (childLH (childLH (childLH thetaBelowCell1112))) = true := by + have h : ((childLH (childLH (childLH thetaBelowCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLH (childLH thetaBelowCell1112))) h +theorem e24KC2ThetaBelowLeaf1112112 : + adaptiveCoverCheck 11 (childHL (childLH (childLH thetaBelowCell1112))) = true := by + have h : ((childHL (childLH (childLH thetaBelowCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLH (childLH thetaBelowCell1112))) h +theorem e24KC2ThetaBelowLeaf1112113 : + adaptiveCoverCheck 11 (childHH (childLH (childLH thetaBelowCell1112))) = true := by + have h : ((childHH (childLH (childLH thetaBelowCell1112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLH (childLH thetaBelowCell1112))) h +theorem e24KC2ThetaBelowLeaf111212 : + adaptiveCoverCheck 12 (childHL (childLH thetaBelowCell1112)) = true := by + have h : ((childHL (childLH thetaBelowCell1112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH thetaBelowCell1112)) h +theorem e24KC2ThetaBelowLeaf111213 : + adaptiveCoverCheck 12 (childHH (childLH thetaBelowCell1112)) = true := by + have h : ((childHH (childLH thetaBelowCell1112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH thetaBelowCell1112)) h +theorem e24KC2ThetaBelowLeaf11122 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1112) = true := by + have h : ((childHL thetaBelowCell1112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell1112) h +theorem e24KC2ThetaBelowLeaf11123 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1112) = true := by + have h : ((childHH thetaBelowCell1112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell1112) h +theorem e24KC2ThetaBelowLeaf1113000 : + adaptiveCoverCheck 11 (childLL (childLL (childLL thetaBelowCell1113))) = true := by + have h : ((childLL (childLL (childLL thetaBelowCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLL (childLL thetaBelowCell1113))) h +theorem e24KC2ThetaBelowLeaf1113001 : + adaptiveCoverCheck 11 (childLH (childLL (childLL thetaBelowCell1113))) = true := by + have h : ((childLH (childLL (childLL thetaBelowCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLL (childLL thetaBelowCell1113))) h +theorem e24KC2ThetaBelowLeaf1113002 : + adaptiveCoverCheck 11 (childHL (childLL (childLL thetaBelowCell1113))) = true := by + have h : ((childHL (childLL (childLL thetaBelowCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLL (childLL thetaBelowCell1113))) h +theorem e24KC2ThetaBelowLeaf1113003 : + adaptiveCoverCheck 11 (childHH (childLL (childLL thetaBelowCell1113))) = true := by + have h : ((childHH (childLL (childLL thetaBelowCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLL (childLL thetaBelowCell1113))) h +theorem e24KC2ThetaBelowLeaf1113010 : + adaptiveCoverCheck 11 (childLL (childLH (childLL thetaBelowCell1113))) = true := by + have h : ((childLL (childLH (childLL thetaBelowCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLH (childLL thetaBelowCell1113))) h +theorem e24KC2ThetaBelowLeaf1113011 : + adaptiveCoverCheck 11 (childLH (childLH (childLL thetaBelowCell1113))) = true := by + have h : ((childLH (childLH (childLL thetaBelowCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLH (childLL thetaBelowCell1113))) h +theorem e24KC2ThetaBelowLeaf1113012 : + adaptiveCoverCheck 11 (childHL (childLH (childLL thetaBelowCell1113))) = true := by + have h : ((childHL (childLH (childLL thetaBelowCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLH (childLL thetaBelowCell1113))) h +theorem e24KC2ThetaBelowLeaf1113013 : + adaptiveCoverCheck 11 (childHH (childLH (childLL thetaBelowCell1113))) = true := by + have h : ((childHH (childLH (childLL thetaBelowCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLH (childLL thetaBelowCell1113))) h +theorem e24KC2ThetaBelowLeaf111302 : + adaptiveCoverCheck 12 (childHL (childLL thetaBelowCell1113)) = true := by + have h : ((childHL (childLL thetaBelowCell1113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLL thetaBelowCell1113)) h +theorem e24KC2ThetaBelowLeaf111303 : + adaptiveCoverCheck 12 (childHH (childLL thetaBelowCell1113)) = true := by + have h : ((childHH (childLL thetaBelowCell1113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLL thetaBelowCell1113)) h +theorem e24KC2ThetaBelowLeaf1113100 : + adaptiveCoverCheck 11 (childLL (childLL (childLH thetaBelowCell1113))) = true := by + have h : ((childLL (childLL (childLH thetaBelowCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLL (childLH thetaBelowCell1113))) h +theorem e24KC2ThetaBelowLeaf1113101 : + adaptiveCoverCheck 11 (childLH (childLL (childLH thetaBelowCell1113))) = true := by + have h : ((childLH (childLL (childLH thetaBelowCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLL (childLH thetaBelowCell1113))) h +theorem e24KC2ThetaBelowLeaf1113102 : + adaptiveCoverCheck 11 (childHL (childLL (childLH thetaBelowCell1113))) = true := by + have h : ((childHL (childLL (childLH thetaBelowCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLL (childLH thetaBelowCell1113))) h +theorem e24KC2ThetaBelowLeaf1113103 : + adaptiveCoverCheck 11 (childHH (childLL (childLH thetaBelowCell1113))) = true := by + have h : ((childHH (childLL (childLH thetaBelowCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLL (childLH thetaBelowCell1113))) h +theorem e24KC2ThetaBelowLeaf1113110 : + adaptiveCoverCheck 11 (childLL (childLH (childLH thetaBelowCell1113))) = true := by + have h : ((childLL (childLH (childLH thetaBelowCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLL (childLH (childLH thetaBelowCell1113))) h +theorem e24KC2ThetaBelowLeaf1113111 : + adaptiveCoverCheck 11 (childLH (childLH (childLH thetaBelowCell1113))) = true := by + have h : ((childLH (childLH (childLH thetaBelowCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childLH (childLH (childLH thetaBelowCell1113))) h +theorem e24KC2ThetaBelowLeaf1113112 : + adaptiveCoverCheck 11 (childHL (childLH (childLH thetaBelowCell1113))) = true := by + have h : ((childHL (childLH (childLH thetaBelowCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHL (childLH (childLH thetaBelowCell1113))) h +theorem e24KC2ThetaBelowLeaf1113113 : + adaptiveCoverCheck 11 (childHH (childLH (childLH thetaBelowCell1113))) = true := by + have h : ((childHH (childLH (childLH thetaBelowCell1113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 11 (childHH (childLH (childLH thetaBelowCell1113))) h +theorem e24KC2ThetaBelowLeaf111312 : + adaptiveCoverCheck 12 (childHL (childLH thetaBelowCell1113)) = true := by + have h : ((childHL (childLH thetaBelowCell1113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHL (childLH thetaBelowCell1113)) h +theorem e24KC2ThetaBelowLeaf111313 : + adaptiveCoverCheck 12 (childHH (childLH thetaBelowCell1113)) = true := by + have h : ((childHH (childLH thetaBelowCell1113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 12 (childHH (childLH thetaBelowCell1113)) h +theorem e24KC2ThetaBelowLeaf11132 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1113) = true := by + have h : ((childHL thetaBelowCell1113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell1113) h +theorem e24KC2ThetaBelowLeaf11133 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1113) = true := by + have h : ((childHH thetaBelowCell1113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell1113) h +theorem e24KC2ThetaBelowLeaf1120 : + adaptiveCoverCheck 14 thetaBelowCell1120 = true := by + have h : (thetaBelowCell1120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1120 h +theorem e24KC2ThetaBelowLeaf11210 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1121) = true := by + have h : ((childLL thetaBelowCell1121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL thetaBelowCell1121) h +theorem e24KC2ThetaBelowLeaf11211 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1121) = true := by + have h : ((childLH thetaBelowCell1121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH thetaBelowCell1121) h +theorem e24KC2ThetaBelowLeaf11212 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1121) = true := by + have h : ((childHL thetaBelowCell1121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell1121) h +theorem e24KC2ThetaBelowLeaf11213 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1121) = true := by + have h : ((childHH thetaBelowCell1121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell1121) h +theorem e24KC2ThetaBelowLeaf1122 : + adaptiveCoverCheck 14 thetaBelowCell1122 = true := by + have h : (thetaBelowCell1122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1122 h +theorem e24KC2ThetaBelowLeaf1123 : + adaptiveCoverCheck 14 thetaBelowCell1123 = true := by + have h : (thetaBelowCell1123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1123 h +theorem e24KC2ThetaBelowLeaf11300 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1130) = true := by + have h : ((childLL thetaBelowCell1130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL thetaBelowCell1130) h +theorem e24KC2ThetaBelowLeaf11301 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1130) = true := by + have h : ((childLH thetaBelowCell1130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH thetaBelowCell1130) h +theorem e24KC2ThetaBelowLeaf11302 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1130) = true := by + have h : ((childHL thetaBelowCell1130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell1130) h +theorem e24KC2ThetaBelowLeaf11303 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1130) = true := by + have h : ((childHH thetaBelowCell1130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell1130) h +theorem e24KC2ThetaBelowLeaf11310 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1131) = true := by + have h : ((childLL thetaBelowCell1131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLL thetaBelowCell1131) h +theorem e24KC2ThetaBelowLeaf11311 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1131) = true := by + have h : ((childLH thetaBelowCell1131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childLH thetaBelowCell1131) h +theorem e24KC2ThetaBelowLeaf11312 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1131) = true := by + have h : ((childHL thetaBelowCell1131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHL thetaBelowCell1131) h +theorem e24KC2ThetaBelowLeaf11313 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1131) = true := by + have h : ((childHH thetaBelowCell1131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 13 (childHH thetaBelowCell1131) h +theorem e24KC2ThetaBelowLeaf1132 : + adaptiveCoverCheck 14 thetaBelowCell1132 = true := by + have h : (thetaBelowCell1132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1132 h +theorem e24KC2ThetaBelowLeaf1133 : + adaptiveCoverCheck 14 thetaBelowCell1133 = true := by + have h : (thetaBelowCell1133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1133 h +theorem e24KC2ThetaBelowLeaf120 : + adaptiveCoverCheck 15 (childLL (childHL (childLH e24ThetaBelowRoot))) = true := by + have h : ((childLL (childHL (childLH e24ThetaBelowRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 (childLL (childHL (childLH e24ThetaBelowRoot))) h +theorem e24KC2ThetaBelowLeaf121 : + adaptiveCoverCheck 15 (childLH (childHL (childLH e24ThetaBelowRoot))) = true := by + have h : ((childLH (childHL (childLH e24ThetaBelowRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 (childLH (childHL (childLH e24ThetaBelowRoot))) h +theorem e24KC2ThetaBelowLeaf122 : + adaptiveCoverCheck 15 (childHL (childHL (childLH e24ThetaBelowRoot))) = true := by + have h : ((childHL (childHL (childLH e24ThetaBelowRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 (childHL (childHL (childLH e24ThetaBelowRoot))) h +theorem e24KC2ThetaBelowLeaf123 : + adaptiveCoverCheck 15 (childHH (childHL (childLH e24ThetaBelowRoot))) = true := by + have h : ((childHH (childHL (childLH e24ThetaBelowRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 (childHH (childHL (childLH e24ThetaBelowRoot))) h +theorem e24KC2ThetaBelowLeaf1300 : + adaptiveCoverCheck 14 thetaBelowCell1300 = true := by + have h : (thetaBelowCell1300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1300 h +theorem e24KC2ThetaBelowLeaf1301 : + adaptiveCoverCheck 14 thetaBelowCell1301 = true := by + have h : (thetaBelowCell1301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1301 h +theorem e24KC2ThetaBelowLeaf1302 : + adaptiveCoverCheck 14 thetaBelowCell1302 = true := by + have h : (thetaBelowCell1302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1302 h +theorem e24KC2ThetaBelowLeaf1303 : + adaptiveCoverCheck 14 thetaBelowCell1303 = true := by + have h : (thetaBelowCell1303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1303 h +theorem e24KC2ThetaBelowLeaf1310 : + adaptiveCoverCheck 14 thetaBelowCell1310 = true := by + have h : (thetaBelowCell1310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1310 h +theorem e24KC2ThetaBelowLeaf1311 : + adaptiveCoverCheck 14 thetaBelowCell1311 = true := by + have h : (thetaBelowCell1311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1311 h +theorem e24KC2ThetaBelowLeaf1312 : + adaptiveCoverCheck 14 thetaBelowCell1312 = true := by + have h : (thetaBelowCell1312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1312 h +theorem e24KC2ThetaBelowLeaf1313 : + adaptiveCoverCheck 14 thetaBelowCell1313 = true := by + have h : (thetaBelowCell1313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 14 thetaBelowCell1313 h +theorem e24KC2ThetaBelowLeaf132 : + adaptiveCoverCheck 15 (childHL (childHH (childLH e24ThetaBelowRoot))) = true := by + have h : ((childHL (childHH (childLH e24ThetaBelowRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 (childHL (childHH (childLH e24ThetaBelowRoot))) h +theorem e24KC2ThetaBelowLeaf133 : + adaptiveCoverCheck 15 (childHH (childHH (childLH e24ThetaBelowRoot))) = true := by + have h : ((childHH (childHH (childLH e24ThetaBelowRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 (childHH (childHH (childLH e24ThetaBelowRoot))) h + +theorem e24KC2ThetaBelowLeaf2 : + adaptiveCoverCheck 17 (childHL e24ThetaBelowRoot) = true := by + have h : physicallyIrrelevant (childHL e24ThetaBelowRoot) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 17 (childHL e24ThetaBelowRoot) h +theorem e24KC2ThetaBelowLeaf300 : + adaptiveCoverCheck 15 (childLL (childLL (childHH e24ThetaBelowRoot))) = true := by + have h : ((childLL (childLL (childHH e24ThetaBelowRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 (childLL (childLL (childHH e24ThetaBelowRoot))) h +theorem e24KC2ThetaBelowLeaf301 : + adaptiveCoverCheck 15 (childLH (childLL (childHH e24ThetaBelowRoot))) = true := by + have h : ((childLH (childLL (childHH e24ThetaBelowRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 (childLH (childLL (childHH e24ThetaBelowRoot))) h + +theorem e24KC2ThetaBelowLeaf302 : + adaptiveCoverCheck 15 (childHL (childLL (childHH e24ThetaBelowRoot))) = true := by + have h : physicallyIrrelevant (childHL (childLL (childHH e24ThetaBelowRoot))) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 15 (childHL (childLL (childHH + e24ThetaBelowRoot))) h +theorem e24KC2ThetaBelowLeaf303 : + adaptiveCoverCheck 15 (childHH (childLL (childHH e24ThetaBelowRoot))) = true := by + have h : ((childHH (childLL (childHH e24ThetaBelowRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 (childHH (childLL (childHH e24ThetaBelowRoot))) h +theorem e24KC2ThetaBelowLeaf310 : + adaptiveCoverCheck 15 (childLL (childLH (childHH e24ThetaBelowRoot))) = true := by + have h : ((childLL (childLH (childHH e24ThetaBelowRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 (childLL (childLH (childHH e24ThetaBelowRoot))) h +theorem e24KC2ThetaBelowLeaf311 : + adaptiveCoverCheck 15 (childLH (childLH (childHH e24ThetaBelowRoot))) = true := by + have h : ((childLH (childLH (childHH e24ThetaBelowRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 (childLH (childLH (childHH e24ThetaBelowRoot))) h +theorem e24KC2ThetaBelowLeaf312 : + adaptiveCoverCheck 15 (childHL (childLH (childHH e24ThetaBelowRoot))) = true := by + have h : ((childHL (childLH (childHH e24ThetaBelowRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 (childHL (childLH (childHH e24ThetaBelowRoot))) h +theorem e24KC2ThetaBelowLeaf313 : + adaptiveCoverCheck 15 (childHH (childLH (childHH e24ThetaBelowRoot))) = true := by + have h : ((childHH (childLH (childHH e24ThetaBelowRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 (childHH (childLH (childHH e24ThetaBelowRoot))) h + +theorem e24KC2ThetaBelowLeaf32 : + adaptiveCoverCheck 16 (childHL (childHH e24ThetaBelowRoot)) = true := by + have h : physicallyIrrelevant (childHL (childHH e24ThetaBelowRoot)) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 16 (childHL (childHH e24ThetaBelowRoot)) h + +theorem e24KC2ThetaBelowLeaf330 : + adaptiveCoverCheck 15 (childLL (childHH (childHH e24ThetaBelowRoot))) = true := by + have h : physicallyIrrelevant (childLL (childHH (childHH e24ThetaBelowRoot))) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 15 (childLL (childHH (childHH + e24ThetaBelowRoot))) h +theorem e24KC2ThetaBelowLeaf331 : + adaptiveCoverCheck 15 (childLH (childHH (childHH e24ThetaBelowRoot))) = true := by + have h : ((childLH (childHH (childHH e24ThetaBelowRoot)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 15 (childLH (childHH (childHH e24ThetaBelowRoot))) h + +theorem e24KC2ThetaBelowLeaf332 : + adaptiveCoverCheck 15 (childHL (childHH (childHH e24ThetaBelowRoot))) = true := by + have h : physicallyIrrelevant (childHL (childHH (childHH e24ThetaBelowRoot))) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 15 (childHL (childHH (childHH + e24ThetaBelowRoot))) h + +theorem e24KC2ThetaBelowLeaf333 : + adaptiveCoverCheck 15 (childHH (childHH (childHH e24ThetaBelowRoot))) = true := by + have h : physicallyIrrelevant (childHH (childHH (childHH e24ThetaBelowRoot))) = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_physicallyIrrelevant 15 (childHH (childHH (childHH + e24ThetaBelowRoot))) h + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC6ProofBatch38ee6acacaee22e4`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC6 explicit proof-producing certificate batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc9f578345f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc9f578345f + +open CertificateCellsc9f578345f +theorem cover_subtree_27436d0eee02 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022003100) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022003100) + (by + have h : ((childLL (childLL thetaAboveCell000022003100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL thetaAboveCell000022003100)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022003100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL thetaAboveCell000022003100)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLL thetaAboveCell000022003100)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLL + thetaAboveCell000022003100))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLL + thetaAboveCell000022003100))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLL + thetaAboveCell000022003100))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLL + thetaAboveCell000022003100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLL thetaAboveCell000022003100)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLL + thetaAboveCell000022003100))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLL + thetaAboveCell000022003100))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLL + thetaAboveCell000022003100))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLL + thetaAboveCell000022003100))) h)) + +theorem cover_subtree_3bcbb01846ea : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022003100) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022003100) + (by + have h : ((childLL (childLH thetaAboveCell000022003100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH thetaAboveCell000022003100)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022003100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH thetaAboveCell000022003100)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLH thetaAboveCell000022003100)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLH + thetaAboveCell000022003100))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLH + thetaAboveCell000022003100))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLH + thetaAboveCell000022003100))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLH + thetaAboveCell000022003100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLH thetaAboveCell000022003100)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLH + thetaAboveCell000022003100))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLH + thetaAboveCell000022003100))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLH + thetaAboveCell000022003100))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLH + thetaAboveCell000022003100))) h)) + +theorem cover_subtree_ffb85ef67591 : + adaptiveCoverCheck 4 (childHL (childLL (childHL thetaAboveCell000022003100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022003100))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002020 + (by + have h : ((childLL thetaAboveCell0000220031002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002020) h) + (by + have h : ((childLH thetaAboveCell0000220031002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002020) h) + (by + have h : ((childHL thetaAboveCell0000220031002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002020) h) + (by + have h : ((childHH thetaAboveCell0000220031002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002021 + (by + have h : ((childLL thetaAboveCell0000220031002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002021) h) + (by + have h : ((childLH thetaAboveCell0000220031002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002021) h) + (by + have h : ((childHL thetaAboveCell0000220031002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002021) h) + (by + have h : ((childHH thetaAboveCell0000220031002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002022 + (by + have h : ((childLL thetaAboveCell0000220031002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002022) h) + (by + have h : ((childLH thetaAboveCell0000220031002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002022) h) + (by + have h : ((childHL thetaAboveCell0000220031002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002022) h) + (by + have h : ((childHH thetaAboveCell0000220031002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002023 + (by + have h : ((childLL thetaAboveCell0000220031002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002023) h) + (by + have h : ((childLH thetaAboveCell0000220031002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002023) h) + (by + have h : ((childHL thetaAboveCell0000220031002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002023) h) + (by + have h : ((childHH thetaAboveCell0000220031002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002023) h)) + +theorem cover_subtree_86bc98112499 : + adaptiveCoverCheck 4 (childHH (childLL (childHL thetaAboveCell000022003100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022003100))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002030 + (by + have h : ((childLL thetaAboveCell0000220031002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002030) h) + (by + have h : ((childLH thetaAboveCell0000220031002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002030) h) + (by + have h : ((childHL thetaAboveCell0000220031002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002030) h) + (by + have h : ((childHH thetaAboveCell0000220031002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002031 + (by + have h : ((childLL thetaAboveCell0000220031002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002031) h) + (by + have h : ((childLH thetaAboveCell0000220031002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002031) h) + (by + have h : ((childHL thetaAboveCell0000220031002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002031) h) + (by + have h : ((childHH thetaAboveCell0000220031002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002032 + (by + have h : ((childLL thetaAboveCell0000220031002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002032) h) + (by + have h : ((childLH thetaAboveCell0000220031002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002032) h) + (by + have h : ((childHL thetaAboveCell0000220031002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002032) h) + (by + have h : ((childHH thetaAboveCell0000220031002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002033 + (by + have h : ((childLL thetaAboveCell0000220031002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002033) h) + (by + have h : ((childLH thetaAboveCell0000220031002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002033) h) + (by + have h : ((childHL thetaAboveCell0000220031002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002033) h) + (by + have h : ((childHH thetaAboveCell0000220031002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002033) h)) + +theorem cover_subtree_7cd81c60142e : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022003100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022003100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHL + thetaAboveCell000022003100))) + (by + have h : (thetaAboveCell0000220031002000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002000 h) + (by + have h : (thetaAboveCell0000220031002001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002001 h) + (by + have h : (thetaAboveCell0000220031002002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002002 h) + (by + have h : (thetaAboveCell0000220031002003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHL + thetaAboveCell000022003100))) + (by + have h : (thetaAboveCell0000220031002010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002010 h) + (by + have h : (thetaAboveCell0000220031002011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002011 h) + (by + have h : (thetaAboveCell0000220031002012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002012 h) + (by + have h : (thetaAboveCell0000220031002013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002013 h)) + cover_subtree_ffb85ef67591 + cover_subtree_86bc98112499 + +theorem cover_subtree_5fb03cd03eba : + adaptiveCoverCheck 4 (childHL (childLH (childHL thetaAboveCell000022003100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022003100))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002120 + (by + have h : ((childLL thetaAboveCell0000220031002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002120) h) + (by + have h : ((childLH thetaAboveCell0000220031002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002120) h) + (by + have h : ((childHL thetaAboveCell0000220031002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002120) h) + (by + have h : ((childHH thetaAboveCell0000220031002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002121 + (by + have h : ((childLL thetaAboveCell0000220031002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002121) h) + (by + have h : ((childLH thetaAboveCell0000220031002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002121) h) + (by + have h : ((childHL thetaAboveCell0000220031002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002121) h) + (by + have h : ((childHH thetaAboveCell0000220031002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002122 + (by + have h : ((childLL thetaAboveCell0000220031002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002122) h) + (by + have h : ((childLH thetaAboveCell0000220031002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002122) h) + (by + have h : ((childHL thetaAboveCell0000220031002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002122) h) + (by + have h : ((childHH thetaAboveCell0000220031002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002123 + (by + have h : ((childLL thetaAboveCell0000220031002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002123) h) + (by + have h : ((childLH thetaAboveCell0000220031002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002123) h) + (by + have h : ((childHL thetaAboveCell0000220031002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002123) h) + (by + have h : ((childHH thetaAboveCell0000220031002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002123) h)) + +theorem cover_subtree_4ea44b529295 : + adaptiveCoverCheck 4 (childHH (childLH (childHL thetaAboveCell000022003100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022003100))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002130 + (by + have h : ((childLL thetaAboveCell0000220031002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002130) h) + (by + have h : ((childLH thetaAboveCell0000220031002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002130) h) + (by + have h : ((childHL thetaAboveCell0000220031002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002130) h) + (by + have h : ((childHH thetaAboveCell0000220031002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002131 + (by + have h : ((childLL thetaAboveCell0000220031002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002131) h) + (by + have h : ((childLH thetaAboveCell0000220031002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002131) h) + (by + have h : ((childHL thetaAboveCell0000220031002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002131) h) + (by + have h : ((childHH thetaAboveCell0000220031002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002132 + (by + have h : ((childLL thetaAboveCell0000220031002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002132) h) + (by + have h : ((childLH thetaAboveCell0000220031002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002132) h) + (by + have h : ((childHL thetaAboveCell0000220031002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002132) h) + (by + have h : ((childHH thetaAboveCell0000220031002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002133 + (by + have h : ((childLL thetaAboveCell0000220031002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002133) h) + (by + have h : ((childLH thetaAboveCell0000220031002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002133) h) + (by + have h : ((childHL thetaAboveCell0000220031002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002133) h) + (by + have h : ((childHH thetaAboveCell0000220031002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002133) h)) + +theorem cover_subtree_db4866b2cd56 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022003100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022003100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHL + thetaAboveCell000022003100))) + (by + have h : (thetaAboveCell0000220031002100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002100 h) + (by + have h : (thetaAboveCell0000220031002101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002101 h) + (by + have h : (thetaAboveCell0000220031002102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002102 h) + (by + have h : (thetaAboveCell0000220031002103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHL + thetaAboveCell000022003100))) + (by + have h : (thetaAboveCell0000220031002110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002110 h) + (by + have h : (thetaAboveCell0000220031002111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002111 h) + (by + have h : (thetaAboveCell0000220031002112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002112 h) + (by + have h : (thetaAboveCell0000220031002113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002113 h)) + cover_subtree_5fb03cd03eba + cover_subtree_4ea44b529295 + +theorem cover_subtree_da1ce2a1ea10 : + adaptiveCoverCheck 4 (childLL (childHL (childHL thetaAboveCell000022003100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022003100))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002200 + (by + have h : ((childLL thetaAboveCell0000220031002200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002200) h) + (by + have h : ((childLH thetaAboveCell0000220031002200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002200) h) + (by + have h : ((childHL thetaAboveCell0000220031002200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002200) h) + (by + have h : ((childHH thetaAboveCell0000220031002200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002200) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002201 + (by + have h : ((childLL thetaAboveCell0000220031002201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002201) h) + (by + have h : ((childLH thetaAboveCell0000220031002201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002201) h) + (by + have h : ((childHL thetaAboveCell0000220031002201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002201) h) + (by + have h : ((childHH thetaAboveCell0000220031002201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002201) h)) + (by + have h : (thetaAboveCell0000220031002202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002202 h) + (by + have h : (thetaAboveCell0000220031002203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002203 h) + +theorem cover_subtree_ea6d149e7e1e : + adaptiveCoverCheck 4 (childLH (childHL (childHL thetaAboveCell000022003100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022003100))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002210 + (by + have h : ((childLL thetaAboveCell0000220031002210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002210) h) + (by + have h : ((childLH thetaAboveCell0000220031002210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002210) h) + (by + have h : ((childHL thetaAboveCell0000220031002210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002210) h) + (by + have h : ((childHH thetaAboveCell0000220031002210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002210) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002211 + (by + have h : ((childLL thetaAboveCell0000220031002211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002211) h) + (by + have h : ((childLH thetaAboveCell0000220031002211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002211) h) + (by + have h : ((childHL thetaAboveCell0000220031002211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002211) h) + (by + have h : ((childHH thetaAboveCell0000220031002211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002211) h)) + (by + have h : (thetaAboveCell0000220031002212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002212 h) + (by + have h : (thetaAboveCell0000220031002213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002213 h) + +theorem cover_subtree_5106e0b16eef : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022003100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022003100)) + cover_subtree_da1ce2a1ea10 + cover_subtree_ea6d149e7e1e + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022003100))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022003100))) h) + +theorem cover_subtree_a4e3e0266d1a : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022003100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022003100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022003100))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031002300 + (by + have h : ((childLL thetaAboveCell0000220031002300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031002300) + h) + (by + have h : ((childLH thetaAboveCell0000220031002300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031002300) + h) + (by + have h : ((childHL thetaAboveCell0000220031002300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031002300) + h) + (by + have h : ((childHH thetaAboveCell0000220031002300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031002300) + h)) + (by + have h : (thetaAboveCell0000220031002301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002301 h) + (by + have h : (thetaAboveCell0000220031002302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002302 h) + (by + have h : (thetaAboveCell0000220031002303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022003100))) + (by + have h : (thetaAboveCell0000220031002310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002310 h) + (by + have h : (thetaAboveCell0000220031002311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002311 h) + (by + have h : (thetaAboveCell0000220031002312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002312 h) + (by + have h : (thetaAboveCell0000220031002313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031002313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022003100))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022003100))) h) + +theorem cover_subtree_e3fd3e08cd04 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022003100) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022003100) + cover_subtree_7cd81c60142e + cover_subtree_db4866b2cd56 + cover_subtree_5106e0b16eef + cover_subtree_a4e3e0266d1a + +theorem cover_subtree_fed900b890f0 : + adaptiveCoverCheck 4 (childHL (childLL (childHH thetaAboveCell000022003100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022003100))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031003020 + (by + have h : ((childLL thetaAboveCell0000220031003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031003020) h) + (by + have h : ((childLH thetaAboveCell0000220031003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031003020) h) + (by + have h : ((childHL thetaAboveCell0000220031003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031003020) h) + (by + have h : ((childHH thetaAboveCell0000220031003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031003020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031003021 + (by + have h : ((childLL thetaAboveCell0000220031003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031003021) h) + (by + have h : ((childLH thetaAboveCell0000220031003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031003021) h) + (by + have h : ((childHL thetaAboveCell0000220031003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031003021) h) + (by + have h : ((childHH thetaAboveCell0000220031003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031003021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031003022 + (by + have h : ((childLL thetaAboveCell0000220031003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031003022) h) + (by + have h : ((childLH thetaAboveCell0000220031003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031003022) h) + (by + have h : ((childHL thetaAboveCell0000220031003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031003022) h) + (by + have h : ((childHH thetaAboveCell0000220031003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031003022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031003023 + (by + have h : ((childLL thetaAboveCell0000220031003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031003023) h) + (by + have h : ((childLH thetaAboveCell0000220031003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031003023) h) + (by + have h : ((childHL thetaAboveCell0000220031003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031003023) h) + (by + have h : ((childHH thetaAboveCell0000220031003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031003023) h)) + +theorem cover_subtree_f5a67bd75b07 : + adaptiveCoverCheck 4 (childHH (childLL (childHH thetaAboveCell000022003100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022003100))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031003030 + (by + have h : ((childLL thetaAboveCell0000220031003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031003030) h) + (by + have h : ((childLH thetaAboveCell0000220031003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031003030) h) + (by + have h : ((childHL thetaAboveCell0000220031003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031003030) h) + (by + have h : ((childHH thetaAboveCell0000220031003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031003030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031003031 + (by + have h : ((childLL thetaAboveCell0000220031003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031003031) h) + (by + have h : ((childLH thetaAboveCell0000220031003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031003031) h) + (by + have h : ((childHL thetaAboveCell0000220031003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031003031) h) + (by + have h : ((childHH thetaAboveCell0000220031003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031003031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031003032 + (by + have h : ((childLL thetaAboveCell0000220031003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031003032) h) + (by + have h : ((childLH thetaAboveCell0000220031003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031003032) h) + (by + have h : ((childHL thetaAboveCell0000220031003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031003032) h) + (by + have h : ((childHH thetaAboveCell0000220031003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031003032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031003033 + (by + have h : ((childLL thetaAboveCell0000220031003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031003033) h) + (by + have h : ((childLH thetaAboveCell0000220031003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031003033) h) + (by + have h : ((childHL thetaAboveCell0000220031003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031003033) h) + (by + have h : ((childHH thetaAboveCell0000220031003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031003033) h)) + +theorem cover_subtree_dc2ce2de1a67 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022003100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022003100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHH + thetaAboveCell000022003100))) + (by + have h : (thetaAboveCell0000220031003000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003000 h) + (by + have h : (thetaAboveCell0000220031003001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003001 h) + (by + have h : (thetaAboveCell0000220031003002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003002 h) + (by + have h : (thetaAboveCell0000220031003003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHH + thetaAboveCell000022003100))) + (by + have h : (thetaAboveCell0000220031003010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003010 h) + (by + have h : (thetaAboveCell0000220031003011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003011 h) + (by + have h : (thetaAboveCell0000220031003012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003012 h) + (by + have h : (thetaAboveCell0000220031003013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003013 h)) + cover_subtree_fed900b890f0 + cover_subtree_f5a67bd75b07 + +theorem cover_subtree_ecb8f710d653 : + adaptiveCoverCheck 4 (childHL (childLH (childHH thetaAboveCell000022003100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022003100))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031003120 + (by + have h : ((childLL thetaAboveCell0000220031003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031003120) h) + (by + have h : ((childLH thetaAboveCell0000220031003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031003120) h) + (by + have h : ((childHL thetaAboveCell0000220031003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031003120) h) + (by + have h : ((childHH thetaAboveCell0000220031003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031003120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031003121 + (by + have h : ((childLL thetaAboveCell0000220031003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031003121) h) + (by + have h : ((childLH thetaAboveCell0000220031003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031003121) h) + (by + have h : ((childHL thetaAboveCell0000220031003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031003121) h) + (by + have h : ((childHH thetaAboveCell0000220031003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031003121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031003122 + (by + have h : ((childLL thetaAboveCell0000220031003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031003122) h) + (by + have h : ((childLH thetaAboveCell0000220031003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031003122) h) + (by + have h : ((childHL thetaAboveCell0000220031003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031003122) h) + (by + have h : ((childHH thetaAboveCell0000220031003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031003122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031003123 + (by + have h : ((childLL thetaAboveCell0000220031003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031003123) h) + (by + have h : ((childLH thetaAboveCell0000220031003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031003123) h) + (by + have h : ((childHL thetaAboveCell0000220031003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031003123) h) + (by + have h : ((childHH thetaAboveCell0000220031003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031003123) h)) + +theorem cover_subtree_0f60a6ff8480 : + adaptiveCoverCheck 4 (childHH (childLH (childHH thetaAboveCell000022003100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022003100))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031003130 + (by + have h : ((childLL thetaAboveCell0000220031003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031003130) h) + (by + have h : ((childLH thetaAboveCell0000220031003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031003130) h) + (by + have h : ((childHL thetaAboveCell0000220031003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031003130) h) + (by + have h : ((childHH thetaAboveCell0000220031003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031003130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031003131 + (by + have h : ((childLL thetaAboveCell0000220031003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031003131) h) + (by + have h : ((childLH thetaAboveCell0000220031003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031003131) h) + (by + have h : ((childHL thetaAboveCell0000220031003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031003131) h) + (by + have h : ((childHH thetaAboveCell0000220031003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031003131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031003132 + (by + have h : ((childLL thetaAboveCell0000220031003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031003132) h) + (by + have h : ((childLH thetaAboveCell0000220031003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031003132) h) + (by + have h : ((childHL thetaAboveCell0000220031003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031003132) h) + (by + have h : ((childHH thetaAboveCell0000220031003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031003132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031003133 + (by + have h : ((childLL thetaAboveCell0000220031003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031003133) h) + (by + have h : ((childLH thetaAboveCell0000220031003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031003133) h) + (by + have h : ((childHL thetaAboveCell0000220031003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031003133) h) + (by + have h : ((childHH thetaAboveCell0000220031003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031003133) h)) + +theorem cover_subtree_12980021aa15 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022003100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022003100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHH + thetaAboveCell000022003100))) + (by + have h : (thetaAboveCell0000220031003100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003100 h) + (by + have h : (thetaAboveCell0000220031003101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003101 h) + (by + have h : (thetaAboveCell0000220031003102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003102 h) + (by + have h : (thetaAboveCell0000220031003103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHH + thetaAboveCell000022003100))) + (by + have h : (thetaAboveCell0000220031003110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003110 h) + (by + have h : (thetaAboveCell0000220031003111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003111 h) + (by + have h : (thetaAboveCell0000220031003112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003112 h) + (by + have h : (thetaAboveCell0000220031003113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003113 h)) + cover_subtree_ecb8f710d653 + cover_subtree_0f60a6ff8480 + +theorem cover_subtree_96b385ccf927 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022003100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022003100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022003100))) + (by + have h : (thetaAboveCell0000220031003200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003200 h) + (by + have h : (thetaAboveCell0000220031003201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003201 h) + (by + have h : (thetaAboveCell0000220031003202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003202 h) + (by + have h : (thetaAboveCell0000220031003203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022003100))) + (by + have h : (thetaAboveCell0000220031003210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003210 h) + (by + have h : (thetaAboveCell0000220031003211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003211 h) + (by + have h : (thetaAboveCell0000220031003212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003212 h) + (by + have h : (thetaAboveCell0000220031003213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022003100))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022003100))) h) + +theorem cover_subtree_22b398081cb0 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022003100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022003100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022003100))) + (by + have h : (thetaAboveCell0000220031003300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003300 h) + (by + have h : (thetaAboveCell0000220031003301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003301 h) + (by + have h : (thetaAboveCell0000220031003302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003302 h) + (by + have h : (thetaAboveCell0000220031003303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022003100))) + (by + have h : (thetaAboveCell0000220031003310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003310 h) + (by + have h : (thetaAboveCell0000220031003311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003311 h) + (by + have h : (thetaAboveCell0000220031003312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003312 h) + (by + have h : (thetaAboveCell0000220031003313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031003313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022003100))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022003100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022003100))) h) + +theorem cover_subtree_b9c469e743af : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022003100) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022003100) + cover_subtree_dc2ce2de1a67 + cover_subtree_12980021aa15 + cover_subtree_96b385ccf927 + cover_subtree_22b398081cb0 + +theorem cover_subtree_2d90eed026dd : + adaptiveCoverCheck 7 thetaAboveCell000022003100 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022003100 + cover_subtree_27436d0eee02 + cover_subtree_3bcbb01846ea + cover_subtree_e3fd3e08cd04 + cover_subtree_b9c469e743af + +theorem cover_subtree_e582f747675b : + adaptiveCoverCheck 4 (childHL (childLL (childHL thetaAboveCell000022003101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022003101))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031012020 + (by + have h : ((childLL thetaAboveCell0000220031012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031012020) h) + (by + have h : ((childLH thetaAboveCell0000220031012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031012020) h) + (by + have h : ((childHL thetaAboveCell0000220031012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031012020) h) + (by + have h : ((childHH thetaAboveCell0000220031012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031012020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031012021 + (by + have h : ((childLL thetaAboveCell0000220031012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031012021) h) + (by + have h : ((childLH thetaAboveCell0000220031012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031012021) h) + (by + have h : ((childHL thetaAboveCell0000220031012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031012021) h) + (by + have h : ((childHH thetaAboveCell0000220031012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031012021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031012022 + (by + have h : ((childLL thetaAboveCell0000220031012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031012022) h) + (by + have h : ((childLH thetaAboveCell0000220031012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031012022) h) + (by + have h : ((childHL thetaAboveCell0000220031012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031012022) h) + (by + have h : ((childHH thetaAboveCell0000220031012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031012022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031012023 + (by + have h : ((childLL thetaAboveCell0000220031012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031012023) h) + (by + have h : ((childLH thetaAboveCell0000220031012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031012023) h) + (by + have h : ((childHL thetaAboveCell0000220031012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031012023) h) + (by + have h : ((childHH thetaAboveCell0000220031012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031012023) h)) + +theorem cover_subtree_9833e059fd15 : + adaptiveCoverCheck 4 (childHH (childLL (childHL thetaAboveCell000022003101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022003101))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031012030 + (by + have h : ((childLL thetaAboveCell0000220031012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031012030) h) + (by + have h : ((childLH thetaAboveCell0000220031012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031012030) h) + (by + have h : ((childHL thetaAboveCell0000220031012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031012030) h) + (by + have h : ((childHH thetaAboveCell0000220031012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031012030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031012031 + (by + have h : ((childLL thetaAboveCell0000220031012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031012031) h) + (by + have h : ((childLH thetaAboveCell0000220031012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031012031) h) + (by + have h : ((childHL thetaAboveCell0000220031012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031012031) h) + (by + have h : ((childHH thetaAboveCell0000220031012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031012031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031012032 + (by + have h : ((childLL thetaAboveCell0000220031012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031012032) h) + (by + have h : ((childLH thetaAboveCell0000220031012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031012032) h) + (by + have h : ((childHL thetaAboveCell0000220031012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031012032) h) + (by + have h : ((childHH thetaAboveCell0000220031012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031012032) h)) + (by + have h : (thetaAboveCell0000220031012033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012033 h) + +theorem cover_subtree_f35cbab27ebd : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022003101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022003101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHL + thetaAboveCell000022003101))) + (by + have h : (thetaAboveCell0000220031012000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012000 h) + (by + have h : (thetaAboveCell0000220031012001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012001 h) + (by + have h : (thetaAboveCell0000220031012002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012002 h) + (by + have h : (thetaAboveCell0000220031012003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHL + thetaAboveCell000022003101))) + (by + have h : (thetaAboveCell0000220031012010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012010 h) + (by + have h : (thetaAboveCell0000220031012011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012011 h) + (by + have h : (thetaAboveCell0000220031012012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012012 h) + (by + have h : (thetaAboveCell0000220031012013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012013 h)) + cover_subtree_e582f747675b + cover_subtree_9833e059fd15 + +theorem cover_subtree_4567a99abbdc : + adaptiveCoverCheck 4 (childHL (childLH (childHL thetaAboveCell000022003101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022003101))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031012120 + (by + have h : ((childLL thetaAboveCell0000220031012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031012120) h) + (by + have h : ((childLH thetaAboveCell0000220031012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031012120) h) + (by + have h : ((childHL thetaAboveCell0000220031012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031012120) h) + (by + have h : ((childHH thetaAboveCell0000220031012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031012120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031012121 + (by + have h : ((childLL thetaAboveCell0000220031012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031012121) h) + (by + have h : ((childLH thetaAboveCell0000220031012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031012121) h) + (by + have h : ((childHL thetaAboveCell0000220031012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031012121) h) + (by + have h : ((childHH thetaAboveCell0000220031012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031012121) h)) + (by + have h : (thetaAboveCell0000220031012122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012122 h) + (by + have h : (thetaAboveCell0000220031012123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012123 h) + +theorem cover_subtree_7c0ef6ceebf5 : + adaptiveCoverCheck 4 (childHH (childLH (childHL thetaAboveCell000022003101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022003101))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031012130 + (by + have h : ((childLL thetaAboveCell0000220031012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031012130) h) + (by + have h : ((childLH thetaAboveCell0000220031012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031012130) h) + (by + have h : ((childHL thetaAboveCell0000220031012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031012130) h) + (by + have h : ((childHH thetaAboveCell0000220031012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031012130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031012131 + (by + have h : ((childLL thetaAboveCell0000220031012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031012131) h) + (by + have h : ((childLH thetaAboveCell0000220031012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031012131) h) + (by + have h : ((childHL thetaAboveCell0000220031012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031012131) h) + (by + have h : ((childHH thetaAboveCell0000220031012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031012131) h)) + (by + have h : (thetaAboveCell0000220031012132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012132 h) + (by + have h : (thetaAboveCell0000220031012133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012133 h) + +theorem cover_subtree_8358923d8e75 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022003101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022003101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHL + thetaAboveCell000022003101))) + (by + have h : (thetaAboveCell0000220031012100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012100 h) + (by + have h : (thetaAboveCell0000220031012101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012101 h) + (by + have h : (thetaAboveCell0000220031012102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012102 h) + (by + have h : (thetaAboveCell0000220031012103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHL + thetaAboveCell000022003101))) + (by + have h : (thetaAboveCell0000220031012110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012110 h) + (by + have h : (thetaAboveCell0000220031012111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012111 h) + (by + have h : (thetaAboveCell0000220031012112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012112 h) + (by + have h : (thetaAboveCell0000220031012113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012113 h)) + cover_subtree_4567a99abbdc + cover_subtree_7c0ef6ceebf5 + +theorem cover_subtree_d6a0244cc9dc : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022003101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022003101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022003101))) + (by + have h : (thetaAboveCell0000220031012200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012200 h) + (by + have h : (thetaAboveCell0000220031012201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012201 h) + (by + have h : (thetaAboveCell0000220031012202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012202 h) + (by + have h : (thetaAboveCell0000220031012203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022003101))) + (by + have h : (thetaAboveCell0000220031012210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012210 h) + (by + have h : (thetaAboveCell0000220031012211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012211 h) + (by + have h : (thetaAboveCell0000220031012212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012212 h) + (by + have h : (thetaAboveCell0000220031012213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022003101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022003101))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022003101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022003101))) h) + +theorem cover_subtree_0a6d165e5f89 : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022003101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022003101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022003101))) + (by + have h : (thetaAboveCell0000220031012300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012300 h) + (by + have h : (thetaAboveCell0000220031012301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012301 h) + (by + have h : (thetaAboveCell0000220031012302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012302 h) + (by + have h : (thetaAboveCell0000220031012303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022003101))) + (by + have h : (thetaAboveCell0000220031012310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012310 h) + (by + have h : (thetaAboveCell0000220031012311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012311 h) + (by + have h : (thetaAboveCell0000220031012312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012312 h) + (by + have h : (thetaAboveCell0000220031012313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031012313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022003101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022003101))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022003101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022003101))) h) + +theorem cover_subtree_0b78493a586a : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022003101) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022003101) + cover_subtree_f35cbab27ebd + cover_subtree_8358923d8e75 + cover_subtree_d6a0244cc9dc + cover_subtree_0a6d165e5f89 + +theorem cover_subtree_57ad90623a2b : + adaptiveCoverCheck 4 (childHL (childLL (childHH thetaAboveCell000022003101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022003101))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031013020 + (by + have h : ((childLL thetaAboveCell0000220031013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031013020) h) + (by + have h : ((childLH thetaAboveCell0000220031013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031013020) h) + (by + have h : ((childHL thetaAboveCell0000220031013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031013020) h) + (by + have h : ((childHH thetaAboveCell0000220031013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031013020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031013021 + (by + have h : ((childLL thetaAboveCell0000220031013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031013021) h) + (by + have h : ((childLH thetaAboveCell0000220031013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031013021) h) + (by + have h : ((childHL thetaAboveCell0000220031013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031013021) h) + (by + have h : ((childHH thetaAboveCell0000220031013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031013021) h)) + (by + have h : (thetaAboveCell0000220031013022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013022 h) + (by + have h : (thetaAboveCell0000220031013023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013023 h) + +theorem cover_subtree_cab424cfd961 : + adaptiveCoverCheck 4 (childHH (childLL (childHH thetaAboveCell000022003101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022003101))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031013030 + (by + have h : ((childLL thetaAboveCell0000220031013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031013030) h) + (by + have h : ((childLH thetaAboveCell0000220031013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031013030) h) + (by + have h : ((childHL thetaAboveCell0000220031013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031013030) h) + (by + have h : ((childHH thetaAboveCell0000220031013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031013030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031013031 + (by + have h : ((childLL thetaAboveCell0000220031013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031013031) h) + (by + have h : ((childLH thetaAboveCell0000220031013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031013031) h) + (by + have h : ((childHL thetaAboveCell0000220031013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031013031) h) + (by + have h : ((childHH thetaAboveCell0000220031013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031013031) h)) + (by + have h : (thetaAboveCell0000220031013032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013032 h) + (by + have h : (thetaAboveCell0000220031013033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013033 h) + +theorem cover_subtree_af6ea412af3a : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022003101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022003101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHH + thetaAboveCell000022003101))) + (by + have h : (thetaAboveCell0000220031013000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013000 h) + (by + have h : (thetaAboveCell0000220031013001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013001 h) + (by + have h : (thetaAboveCell0000220031013002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013002 h) + (by + have h : (thetaAboveCell0000220031013003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHH + thetaAboveCell000022003101))) + (by + have h : (thetaAboveCell0000220031013010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013010 h) + (by + have h : (thetaAboveCell0000220031013011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013011 h) + (by + have h : (thetaAboveCell0000220031013012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013012 h) + (by + have h : (thetaAboveCell0000220031013013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013013 h)) + cover_subtree_57ad90623a2b + cover_subtree_cab424cfd961 + +theorem cover_subtree_ab0d022d0753 : + adaptiveCoverCheck 4 (childHL (childLH (childHH thetaAboveCell000022003101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022003101))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031013120 + (by + have h : ((childLL thetaAboveCell0000220031013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031013120) h) + (by + have h : ((childLH thetaAboveCell0000220031013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031013120) h) + (by + have h : ((childHL thetaAboveCell0000220031013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031013120) h) + (by + have h : ((childHH thetaAboveCell0000220031013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031013120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031013121 + (by + have h : ((childLL thetaAboveCell0000220031013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031013121) h) + (by + have h : ((childLH thetaAboveCell0000220031013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031013121) h) + (by + have h : ((childHL thetaAboveCell0000220031013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031013121) h) + (by + have h : ((childHH thetaAboveCell0000220031013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031013121) h)) + (by + have h : (thetaAboveCell0000220031013122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013122 h) + (by + have h : (thetaAboveCell0000220031013123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013123 h) + +theorem cover_subtree_6515bfe621d1 : + adaptiveCoverCheck 4 (childHH (childLH (childHH thetaAboveCell000022003101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022003101))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031013130 + (by + have h : ((childLL thetaAboveCell0000220031013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031013130) h) + (by + have h : ((childLH thetaAboveCell0000220031013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031013130) h) + (by + have h : ((childHL thetaAboveCell0000220031013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031013130) h) + (by + have h : ((childHH thetaAboveCell0000220031013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031013130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031013131 + (by + have h : ((childLL thetaAboveCell0000220031013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031013131) h) + (by + have h : ((childLH thetaAboveCell0000220031013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031013131) h) + (by + have h : ((childHL thetaAboveCell0000220031013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031013131) h) + (by + have h : ((childHH thetaAboveCell0000220031013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031013131) h)) + (by + have h : (thetaAboveCell0000220031013132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013132 h) + (by + have h : (thetaAboveCell0000220031013133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013133 h) + +theorem cover_subtree_9d368eedb456 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022003101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022003101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHH + thetaAboveCell000022003101))) + (by + have h : (thetaAboveCell0000220031013100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013100 h) + (by + have h : (thetaAboveCell0000220031013101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013101 h) + (by + have h : (thetaAboveCell0000220031013102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013102 h) + (by + have h : (thetaAboveCell0000220031013103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHH + thetaAboveCell000022003101))) + (by + have h : (thetaAboveCell0000220031013110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013110 h) + (by + have h : (thetaAboveCell0000220031013111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013111 h) + (by + have h : (thetaAboveCell0000220031013112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013112 h) + (by + have h : (thetaAboveCell0000220031013113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013113 h)) + cover_subtree_ab0d022d0753 + cover_subtree_6515bfe621d1 + +theorem cover_subtree_a19642467be9 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022003101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022003101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022003101))) + (by + have h : (thetaAboveCell0000220031013200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013200 h) + (by + have h : (thetaAboveCell0000220031013201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013201 h) + (by + have h : (thetaAboveCell0000220031013202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013202 h) + (by + have h : (thetaAboveCell0000220031013203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022003101))) + (by + have h : (thetaAboveCell0000220031013210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013210 h) + (by + have h : (thetaAboveCell0000220031013211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013211 h) + (by + have h : (thetaAboveCell0000220031013212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013212 h) + (by + have h : (thetaAboveCell0000220031013213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022003101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022003101))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022003101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022003101))) h) + +theorem cover_subtree_6b1d70907da0 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022003101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022003101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022003101))) + (by + have h : (thetaAboveCell0000220031013300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013300 h) + (by + have h : (thetaAboveCell0000220031013301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013301 h) + (by + have h : (thetaAboveCell0000220031013302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013302 h) + (by + have h : (thetaAboveCell0000220031013303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022003101))) + (by + have h : (thetaAboveCell0000220031013310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013310 h) + (by + have h : (thetaAboveCell0000220031013311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013311 h) + (by + have h : (thetaAboveCell0000220031013312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013312 h) + (by + have h : (thetaAboveCell0000220031013313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031013313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022003101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022003101))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022003101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022003101))) h) + +theorem cover_subtree_e3814f5f5798 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022003101) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022003101) + cover_subtree_af6ea412af3a + cover_subtree_9d368eedb456 + cover_subtree_a19642467be9 + cover_subtree_6b1d70907da0 + +theorem cover_subtree_ff20fb20b987 : + adaptiveCoverCheck 7 thetaAboveCell000022003101 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022003101 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022003101) + (by + have h : ((childLL (childLL thetaAboveCell000022003101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022003101)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022003101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022003101)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022003101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022003101)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022003101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022003101)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022003101) + (by + have h : ((childLL (childLH thetaAboveCell000022003101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022003101)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022003101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022003101)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022003101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022003101)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022003101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022003101)) h)) + cover_subtree_0b78493a586a + cover_subtree_e3814f5f5798 + +theorem cover_subtree_2108b1583905 : + adaptiveCoverCheck 7 thetaAboveCell000022003102 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022003102 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022003102) + (by + have h : ((childLL (childLL thetaAboveCell000022003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022003102)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022003102)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022003102)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022003102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022003102) + (by + have h : ((childLL (childLH thetaAboveCell000022003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022003102)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022003102)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022003102)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022003102)) h)) + (by + have h : ((childHL thetaAboveCell000022003102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022003102) h) + (by + have h : ((childHH thetaAboveCell000022003102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022003102) h) + +theorem cover_subtree_c8767f5a98fb : + adaptiveCoverCheck 7 thetaAboveCell000022003103 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022003103 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022003103) + (by + have h : ((childLL (childLL thetaAboveCell000022003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022003103)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022003103)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022003103)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022003103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022003103) + (by + have h : ((childLL (childLH thetaAboveCell000022003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022003103)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022003103)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022003103)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022003103)) h)) + (by + have h : ((childHL thetaAboveCell000022003103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022003103) h) + (by + have h : ((childHH thetaAboveCell000022003103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022003103) h) + +theorem cover_subtree_2ae0e1bf4a6f : + adaptiveCoverCheck 8 (childLL (childLH (childHH thetaAboveCell00002200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH thetaAboveCell00002200))) + cover_subtree_2d90eed026dd + cover_subtree_ff20fb20b987 + cover_subtree_2108b1583905 + cover_subtree_c8767f5a98fb + +theorem cover_subtree_4c6415abff0a : + adaptiveCoverCheck 4 (childHL (childLL (childHL thetaAboveCell000022003110))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022003110))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031102020 + (by + have h : ((childLL thetaAboveCell0000220031102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031102020) h) + (by + have h : ((childLH thetaAboveCell0000220031102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031102020) h) + (by + have h : ((childHL thetaAboveCell0000220031102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031102020) h) + (by + have h : ((childHH thetaAboveCell0000220031102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031102020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220031102021 + (by + have h : ((childLL thetaAboveCell0000220031102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220031102021) h) + (by + have h : ((childLH thetaAboveCell0000220031102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220031102021) h) + (by + have h : ((childHL thetaAboveCell0000220031102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220031102021) h) + (by + have h : ((childHH thetaAboveCell0000220031102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220031102021) h)) + (by + have h : (thetaAboveCell0000220031102022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102022 h) + (by + have h : (thetaAboveCell0000220031102023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102023 h) + +theorem cover_subtree_2eee4b5c26e8 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022003110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022003110)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHL + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031102000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102000 h) + (by + have h : (thetaAboveCell0000220031102001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102001 h) + (by + have h : (thetaAboveCell0000220031102002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102002 h) + (by + have h : (thetaAboveCell0000220031102003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHL + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031102010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102010 h) + (by + have h : (thetaAboveCell0000220031102011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102011 h) + (by + have h : (thetaAboveCell0000220031102012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102012 h) + (by + have h : (thetaAboveCell0000220031102013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102013 h)) + cover_subtree_4c6415abff0a + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031102030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102030 h) + (by + have h : (thetaAboveCell0000220031102031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102031 h) + (by + have h : (thetaAboveCell0000220031102032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102032 h) + (by + have h : (thetaAboveCell0000220031102033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102033 h)) + +theorem cover_subtree_a1a430be962f : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022003110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022003110)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHL + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031102100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102100 h) + (by + have h : (thetaAboveCell0000220031102101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102101 h) + (by + have h : (thetaAboveCell0000220031102102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102102 h) + (by + have h : (thetaAboveCell0000220031102103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHL + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031102110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102110 h) + (by + have h : (thetaAboveCell0000220031102111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102111 h) + (by + have h : (thetaAboveCell0000220031102112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102112 h) + (by + have h : (thetaAboveCell0000220031102113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102113 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031102120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102120 h) + (by + have h : (thetaAboveCell0000220031102121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102121 h) + (by + have h : (thetaAboveCell0000220031102122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102122 h) + (by + have h : (thetaAboveCell0000220031102123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031102130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102130 h) + (by + have h : (thetaAboveCell0000220031102131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102131 h) + (by + have h : (thetaAboveCell0000220031102132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102132 h) + (by + have h : (thetaAboveCell0000220031102133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102133 h)) + +theorem cover_subtree_175aa4a9f2f2 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022003110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022003110)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031102200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102200 h) + (by + have h : (thetaAboveCell0000220031102201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102201 h) + (by + have h : (thetaAboveCell0000220031102202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102202 h) + (by + have h : (thetaAboveCell0000220031102203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031102210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102210 h) + (by + have h : (thetaAboveCell0000220031102211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102211 h) + (by + have h : (thetaAboveCell0000220031102212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102212 h) + (by + have h : (thetaAboveCell0000220031102213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022003110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022003110))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022003110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022003110))) h) + +theorem cover_subtree_b6a561db1a8e : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022003110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022003110)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031102300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102300 h) + (by + have h : (thetaAboveCell0000220031102301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102301 h) + (by + have h : (thetaAboveCell0000220031102302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102302 h) + (by + have h : (thetaAboveCell0000220031102303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031102310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102310 h) + (by + have h : (thetaAboveCell0000220031102311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102311 h) + (by + have h : (thetaAboveCell0000220031102312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102312 h) + (by + have h : (thetaAboveCell0000220031102313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031102313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022003110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022003110))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022003110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022003110))) h) + +theorem cover_subtree_e6198bf2e2be : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022003110) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022003110) + cover_subtree_2eee4b5c26e8 + cover_subtree_a1a430be962f + cover_subtree_175aa4a9f2f2 + cover_subtree_b6a561db1a8e + +theorem cover_subtree_03c6f1190393 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022003110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022003110)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHH + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031103000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103000 h) + (by + have h : (thetaAboveCell0000220031103001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103001 h) + (by + have h : (thetaAboveCell0000220031103002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103002 h) + (by + have h : (thetaAboveCell0000220031103003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHH + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031103010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103010 h) + (by + have h : (thetaAboveCell0000220031103011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103011 h) + (by + have h : (thetaAboveCell0000220031103012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103012 h) + (by + have h : (thetaAboveCell0000220031103013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103013 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031103020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103020 h) + (by + have h : (thetaAboveCell0000220031103021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103021 h) + (by + have h : (thetaAboveCell0000220031103022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103022 h) + (by + have h : (thetaAboveCell0000220031103023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031103030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103030 h) + (by + have h : (thetaAboveCell0000220031103031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103031 h) + (by + have h : (thetaAboveCell0000220031103032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103032 h) + (by + have h : (thetaAboveCell0000220031103033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103033 h)) + +theorem cover_subtree_40c139979b71 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022003110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022003110)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHH + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031103100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103100 h) + (by + have h : (thetaAboveCell0000220031103101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103101 h) + (by + have h : (thetaAboveCell0000220031103102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103102 h) + (by + have h : (thetaAboveCell0000220031103103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHH + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031103110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103110 h) + (by + have h : (thetaAboveCell0000220031103111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103111 h) + (by + have h : (thetaAboveCell0000220031103112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103112 h) + (by + have h : (thetaAboveCell0000220031103113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103113 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031103120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103120 h) + (by + have h : (thetaAboveCell0000220031103121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103121 h) + (by + have h : (thetaAboveCell0000220031103122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103122 h) + (by + have h : (thetaAboveCell0000220031103123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031103130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103130 h) + (by + have h : (thetaAboveCell0000220031103131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103131 h) + (by + have h : (thetaAboveCell0000220031103132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103132 h) + (by + have h : (thetaAboveCell0000220031103133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103133 h)) + +theorem cover_subtree_aa0d2321f3c9 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022003110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022003110)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031103200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103200 h) + (by + have h : (thetaAboveCell0000220031103201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103201 h) + (by + have h : (thetaAboveCell0000220031103202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103202 h) + (by + have h : (thetaAboveCell0000220031103203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031103210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103210 h) + (by + have h : (thetaAboveCell0000220031103211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103211 h) + (by + have h : (thetaAboveCell0000220031103212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103212 h) + (by + have h : (thetaAboveCell0000220031103213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022003110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022003110))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022003110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022003110))) h) + +theorem cover_subtree_fea12d0bbf6a : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022003110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022003110)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031103300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103300 h) + (by + have h : (thetaAboveCell0000220031103301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103301 h) + (by + have h : (thetaAboveCell0000220031103302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103302 h) + (by + have h : (thetaAboveCell0000220031103303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022003110))) + (by + have h : (thetaAboveCell0000220031103310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103310 h) + (by + have h : (thetaAboveCell0000220031103311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103311 h) + (by + have h : (thetaAboveCell0000220031103312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103312 h) + (by + have h : (thetaAboveCell0000220031103313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031103313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022003110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022003110))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022003110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022003110))) h) + +theorem cover_subtree_aa69ae74ebd2 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022003110) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022003110) + cover_subtree_03c6f1190393 + cover_subtree_40c139979b71 + cover_subtree_aa0d2321f3c9 + cover_subtree_fea12d0bbf6a + +theorem cover_subtree_2ac73ef77180 : + adaptiveCoverCheck 7 thetaAboveCell000022003110 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022003110 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022003110) + (by + have h : ((childLL (childLL thetaAboveCell000022003110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022003110)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022003110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022003110)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022003110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022003110)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022003110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022003110)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022003110) + (by + have h : ((childLL (childLH thetaAboveCell000022003110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022003110)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022003110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022003110)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022003110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022003110)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022003110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022003110)) h)) + cover_subtree_e6198bf2e2be + cover_subtree_aa69ae74ebd2 + +theorem cover_subtree_b28aebcb8c2e : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022003111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022003111)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHL + thetaAboveCell000022003111))) + (by + have h : (thetaAboveCell0000220031112000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112000 h) + (by + have h : (thetaAboveCell0000220031112001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112001 h) + (by + have h : (thetaAboveCell0000220031112002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112002 h) + (by + have h : (thetaAboveCell0000220031112003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHL + thetaAboveCell000022003111))) + (by + have h : (thetaAboveCell0000220031112010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112010 h) + (by + have h : (thetaAboveCell0000220031112011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112011 h) + (by + have h : (thetaAboveCell0000220031112012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112012 h) + (by + have h : (thetaAboveCell0000220031112013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112013 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022003111))) + (by + have h : (thetaAboveCell0000220031112020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112020 h) + (by + have h : (thetaAboveCell0000220031112021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112021 h) + (by + have h : (thetaAboveCell0000220031112022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112022 h) + (by + have h : (thetaAboveCell0000220031112023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022003111))) + (by + have h : (thetaAboveCell0000220031112030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112030 h) + (by + have h : (thetaAboveCell0000220031112031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112031 h) + (by + have h : (thetaAboveCell0000220031112032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112032 h) + (by + have h : (thetaAboveCell0000220031112033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112033 h)) + +theorem cover_subtree_d16c7f3cc99a : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022003111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022003111)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022003111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022003111))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022003111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022003111))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022003111))) + (by + have h : (thetaAboveCell0000220031112120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112120 h) + (by + have h : (thetaAboveCell0000220031112121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112121 h) + (by + have h : (thetaAboveCell0000220031112122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112122 h) + (by + have h : (thetaAboveCell0000220031112123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022003111))) + (by + have h : (thetaAboveCell0000220031112130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112130 h) + (by + have h : (thetaAboveCell0000220031112131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112131 h) + (by + have h : (thetaAboveCell0000220031112132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112132 h) + (by + have h : (thetaAboveCell0000220031112133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112133 h)) + +theorem cover_subtree_b18c7ceea6b5 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022003111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022003111)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022003111))) + (by + have h : (thetaAboveCell0000220031112200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112200 h) + (by + have h : (thetaAboveCell0000220031112201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112201 h) + (by + have h : (thetaAboveCell0000220031112202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112202 h) + (by + have h : (thetaAboveCell0000220031112203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022003111))) + (by + have h : (thetaAboveCell0000220031112210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112210 h) + (by + have h : (thetaAboveCell0000220031112211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112211 h) + (by + have h : (thetaAboveCell0000220031112212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112212 h) + (by + have h : (thetaAboveCell0000220031112213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022003111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022003111))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022003111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022003111))) h) + +theorem cover_subtree_acda22cf7e9d : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022003111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022003111)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022003111))) + (by + have h : (thetaAboveCell0000220031112300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112300 h) + (by + have h : (thetaAboveCell0000220031112301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112301 h) + (by + have h : (thetaAboveCell0000220031112302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112302 h) + (by + have h : (thetaAboveCell0000220031112303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022003111))) + (by + have h : (thetaAboveCell0000220031112310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112310 h) + (by + have h : (thetaAboveCell0000220031112311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112311 h) + (by + have h : (thetaAboveCell0000220031112312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112312 h) + (by + have h : (thetaAboveCell0000220031112313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031112313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022003111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022003111))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022003111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022003111))) h) + +theorem cover_subtree_e026b8ce03c7 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022003111) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022003111) + cover_subtree_b28aebcb8c2e + cover_subtree_d16c7f3cc99a + cover_subtree_b18c7ceea6b5 + cover_subtree_acda22cf7e9d + +theorem cover_subtree_f521b363acbf : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022003111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022003111)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022003111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022003111))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022003111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022003111))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022003111))) + (by + have h : (thetaAboveCell0000220031113020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113020 h) + (by + have h : (thetaAboveCell0000220031113021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113021 h) + (by + have h : (thetaAboveCell0000220031113022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113022 h) + (by + have h : (thetaAboveCell0000220031113023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022003111))) + (by + have h : (thetaAboveCell0000220031113030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113030 h) + (by + have h : (thetaAboveCell0000220031113031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113031 h) + (by + have h : (thetaAboveCell0000220031113032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113032 h) + (by + have h : (thetaAboveCell0000220031113033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113033 h)) + +theorem cover_subtree_524c47da8fe4 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022003111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022003111)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022003111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022003111))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022003111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022003111))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022003111))) + (by + have h : (thetaAboveCell0000220031113120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113120 h) + (by + have h : (thetaAboveCell0000220031113121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113121 h) + (by + have h : (thetaAboveCell0000220031113122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113122 h) + (by + have h : (thetaAboveCell0000220031113123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022003111))) + (by + have h : (thetaAboveCell0000220031113130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113130 h) + (by + have h : (thetaAboveCell0000220031113131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113131 h) + (by + have h : (thetaAboveCell0000220031113132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113132 h) + (by + have h : (thetaAboveCell0000220031113133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113133 h)) + +theorem cover_subtree_43c4b871b5bc : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022003111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022003111)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022003111))) + (by + have h : (thetaAboveCell0000220031113200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113200 h) + (by + have h : (thetaAboveCell0000220031113201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113201 h) + (by + have h : (thetaAboveCell0000220031113202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113202 h) + (by + have h : (thetaAboveCell0000220031113203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022003111))) + (by + have h : (thetaAboveCell0000220031113210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113210 h) + (by + have h : (thetaAboveCell0000220031113211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113211 h) + (by + have h : (thetaAboveCell0000220031113212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113212 h) + (by + have h : (thetaAboveCell0000220031113213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022003111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022003111))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022003111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022003111))) h) + +theorem cover_subtree_2318bf66cd31 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022003111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022003111)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022003111))) + (by + have h : (thetaAboveCell0000220031113300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113300 h) + (by + have h : (thetaAboveCell0000220031113301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113301 h) + (by + have h : (thetaAboveCell0000220031113302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113302 h) + (by + have h : (thetaAboveCell0000220031113303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022003111))) + (by + have h : (thetaAboveCell0000220031113310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113310 h) + (by + have h : (thetaAboveCell0000220031113311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113311 h) + (by + have h : (thetaAboveCell0000220031113312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113312 h) + (by + have h : (thetaAboveCell0000220031113313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220031113313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022003111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022003111))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022003111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022003111))) h) + +theorem cover_subtree_db44c7b5c525 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022003111) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022003111) + cover_subtree_f521b363acbf + cover_subtree_524c47da8fe4 + cover_subtree_43c4b871b5bc + cover_subtree_2318bf66cd31 + +theorem cover_subtree_65fd7134399d : + adaptiveCoverCheck 7 thetaAboveCell000022003111 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022003111 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022003111) + (by + have h : ((childLL (childLL thetaAboveCell000022003111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022003111)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022003111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022003111)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022003111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022003111)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022003111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022003111)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022003111) + (by + have h : ((childLL (childLH thetaAboveCell000022003111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022003111)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022003111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022003111)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022003111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022003111)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022003111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022003111)) h)) + cover_subtree_e026b8ce03c7 + cover_subtree_db44c7b5c525 + +theorem cover_subtree_0003bc3e2951 : + adaptiveCoverCheck 7 thetaAboveCell000022003112 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022003112 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022003112) + (by + have h : ((childLL (childLL thetaAboveCell000022003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022003112)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022003112)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022003112)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022003112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022003112) + (by + have h : ((childLL (childLH thetaAboveCell000022003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022003112)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022003112)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022003112)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022003112)) h)) + (by + have h : ((childHL thetaAboveCell000022003112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022003112) h) + (by + have h : ((childHH thetaAboveCell000022003112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022003112) h) + +theorem cover_subtree_3bc7bdc69c3a : + adaptiveCoverCheck 7 thetaAboveCell000022003113 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022003113 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022003113) + (by + have h : ((childLL (childLL thetaAboveCell000022003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022003113)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022003113)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022003113)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022003113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022003113) + (by + have h : ((childLL (childLH thetaAboveCell000022003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022003113)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022003113)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022003113)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022003113)) h)) + (by + have h : ((childHL thetaAboveCell000022003113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022003113) h) + (by + have h : ((childHH thetaAboveCell000022003113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022003113) h) + +theorem cover_subtree_63491c075e54 : + adaptiveCoverCheck 8 (childLH (childLH (childHH thetaAboveCell00002200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH thetaAboveCell00002200))) + cover_subtree_2ac73ef77180 + cover_subtree_65fd7134399d + cover_subtree_0003bc3e2951 + cover_subtree_3bc7bdc69c3a + +theorem e24KC2ThetaAboveLeaf0000220031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00002200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00002200)) + cover_subtree_2ae0e1bf4a6f + cover_subtree_63491c075e54 + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00002200))) + (by + have h : (thetaAboveCell000022003120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022003120 h) + (by + have h : (thetaAboveCell000022003121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022003121 h) + (by + have h : (thetaAboveCell000022003122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022003122 h) + (by + have h : (thetaAboveCell000022003123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022003123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00002200))) + (by + have h : (thetaAboveCell000022003130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022003130 h) + (by + have h : (thetaAboveCell000022003131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022003131 h) + (by + have h : (thetaAboveCell000022003132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022003132 h) + (by + have h : (thetaAboveCell000022003133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022003133 h)) +theorem e24KC2ThetaAboveLeaf0000220032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00002200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00002200)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00002200))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00002200))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00002200))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00002200))) h) +theorem e24KC2ThetaAboveLeaf0000220033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00002200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00002200)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00002200))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00002200))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00002200))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00002200))) h) +theorem e24KC2ThetaAboveLeaf0000220102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00002201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00002201)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00002201))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00002201))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childLL + thetaAboveCell00002201))) + (by + have h : (thetaAboveCell000022010220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022010220 h) + (by + have h : (thetaAboveCell000022010221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022010221 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022010222 + (by + have h : ((childLL thetaAboveCell000022010222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022010222) h) + (by + have h : ((childLH thetaAboveCell000022010222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022010222) h) + (by + have h : ((childHL thetaAboveCell000022010222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022010222) h) + (by + have h : ((childHH thetaAboveCell000022010222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022010222) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022010223 + (by + have h : ((childLL thetaAboveCell000022010223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022010223) h) + (by + have h : ((childLH thetaAboveCell000022010223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022010223) h) + (by + have h : ((childHL thetaAboveCell000022010223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022010223) h) + (by + have h : ((childHH thetaAboveCell000022010223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022010223) h))) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childLL + thetaAboveCell00002201))) + (by + have h : (thetaAboveCell000022010230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022010230 h) + (by + have h : (thetaAboveCell000022010231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022010231 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022010232 + (by + have h : ((childLL thetaAboveCell000022010232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022010232) h) + (by + have h : ((childLH thetaAboveCell000022010232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022010232) h) + (by + have h : ((childHL thetaAboveCell000022010232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022010232) h) + (by + have h : ((childHH thetaAboveCell000022010232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022010232) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022010233 + (by + have h : ((childLL thetaAboveCell000022010233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022010233) h) + (by + have h : ((childLH thetaAboveCell000022010233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022010233) h) + (by + have h : ((childHL thetaAboveCell000022010233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022010233) h) + (by + have h : ((childHH thetaAboveCell000022010233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022010233) h))) +theorem e24KC2ThetaAboveLeaf0000220103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00002201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00002201)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00002201))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00002201))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childLL + thetaAboveCell00002201))) + (by + have h : (thetaAboveCell000022010320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022010320 h) + (by + have h : (thetaAboveCell000022010321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022010321 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022010322 + (by + have h : ((childLL thetaAboveCell000022010322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022010322) h) + (by + have h : ((childLH thetaAboveCell000022010322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022010322) h) + (by + have h : ((childHL thetaAboveCell000022010322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022010322) h) + (by + have h : ((childHH thetaAboveCell000022010322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022010322) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022010323 + (by + have h : ((childLL thetaAboveCell000022010323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022010323) h) + (by + have h : ((childLH thetaAboveCell000022010323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022010323) h) + (by + have h : ((childHL thetaAboveCell000022010323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022010323) h) + (by + have h : ((childHH thetaAboveCell000022010323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022010323) h))) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childLL + thetaAboveCell00002201))) + (by + have h : (thetaAboveCell000022010330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022010330 h) + (by + have h : (thetaAboveCell000022010331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022010331 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022010332 + (by + have h : ((childLL thetaAboveCell000022010332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022010332) h) + (by + have h : ((childLH thetaAboveCell000022010332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022010332) h) + (by + have h : ((childHL thetaAboveCell000022010332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022010332) h) + (by + have h : ((childHH thetaAboveCell000022010332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022010332) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022010333 + (by + have h : ((childLL thetaAboveCell000022010333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022010333) h) + (by + have h : ((childLH thetaAboveCell000022010333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022010333) h) + (by + have h : ((childHL thetaAboveCell000022010333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022010333) h) + (by + have h : ((childHH thetaAboveCell000022010333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022010333) h))) +theorem e24KC2ThetaAboveLeaf0000220112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00002201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00002201)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00002201))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00002201))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childLH + thetaAboveCell00002201))) + (by + have h : (thetaAboveCell000022011220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022011220 h) + (by + have h : (thetaAboveCell000022011221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022011221 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022011222 + (by + have h : ((childLL thetaAboveCell000022011222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022011222) h) + (by + have h : ((childLH thetaAboveCell000022011222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022011222) h) + (by + have h : ((childHL thetaAboveCell000022011222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022011222) h) + (by + have h : ((childHH thetaAboveCell000022011222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022011222) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022011223 + (by + have h : ((childLL thetaAboveCell000022011223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022011223) h) + (by + have h : ((childLH thetaAboveCell000022011223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022011223) h) + (by + have h : ((childHL thetaAboveCell000022011223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022011223) h) + (by + have h : ((childHH thetaAboveCell000022011223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022011223) h))) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childLH + thetaAboveCell00002201))) + (by + have h : (thetaAboveCell000022011230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022011230 h) + (by + have h : (thetaAboveCell000022011231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022011231 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022011232 + (by + have h : ((childLL thetaAboveCell000022011232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022011232) h) + (by + have h : ((childLH thetaAboveCell000022011232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022011232) h) + (by + have h : ((childHL thetaAboveCell000022011232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022011232) h) + (by + have h : ((childHH thetaAboveCell000022011232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022011232) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022011233 + (by + have h : ((childLL thetaAboveCell000022011233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022011233) h) + (by + have h : ((childLH thetaAboveCell000022011233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022011233) h) + (by + have h : ((childHL thetaAboveCell000022011233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022011233) h) + (by + have h : ((childHH thetaAboveCell000022011233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022011233) h))) +theorem e24KC2ThetaAboveLeaf0000220113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00002201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00002201)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00002201))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00002201))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childLH + thetaAboveCell00002201))) + (by + have h : (thetaAboveCell000022011320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022011320 h) + (by + have h : (thetaAboveCell000022011321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022011321 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022011322 + (by + have h : ((childLL thetaAboveCell000022011322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022011322) h) + (by + have h : ((childLH thetaAboveCell000022011322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022011322) h) + (by + have h : ((childHL thetaAboveCell000022011322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022011322) h) + (by + have h : ((childHH thetaAboveCell000022011322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022011322) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022011323 + (by + have h : ((childLL thetaAboveCell000022011323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022011323) h) + (by + have h : ((childLH thetaAboveCell000022011323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022011323) h) + (by + have h : ((childHL thetaAboveCell000022011323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022011323) h) + (by + have h : ((childHH thetaAboveCell000022011323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022011323) h))) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childLH + thetaAboveCell00002201))) + (by + have h : (thetaAboveCell000022011330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022011330 h) + (by + have h : (thetaAboveCell000022011331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022011331 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022011332 + (by + have h : ((childLL thetaAboveCell000022011332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022011332) h) + (by + have h : ((childLH thetaAboveCell000022011332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022011332) h) + (by + have h : ((childHL thetaAboveCell000022011332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022011332) h) + (by + have h : ((childHH thetaAboveCell000022011332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022011332) h)) + (by + have h : (thetaAboveCell000022011333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022011333 h)) +theorem cover_subtree_cb61b2523d2d : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022012000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022012000)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022012000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022012000))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022012000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022012000))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022012000))) + (by + have h : (thetaAboveCell0000220120002020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002020 h) + (by + have h : (thetaAboveCell0000220120002021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002021 h) + (by + have h : (thetaAboveCell0000220120002022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002022 h) + (by + have h : (thetaAboveCell0000220120002023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022012000))) + (by + have h : (thetaAboveCell0000220120002030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002030 h) + (by + have h : (thetaAboveCell0000220120002031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002031 h) + (by + have h : (thetaAboveCell0000220120002032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002032 h) + (by + have h : (thetaAboveCell0000220120002033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002033 h)) + +theorem cover_subtree_51c2832454de : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022012000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022012000)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022012000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022012000))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022012000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022012000))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022012000))) + (by + have h : (thetaAboveCell0000220120002120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002120 h) + (by + have h : (thetaAboveCell0000220120002121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002121 h) + (by + have h : (thetaAboveCell0000220120002122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002122 h) + (by + have h : (thetaAboveCell0000220120002123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022012000))) + (by + have h : (thetaAboveCell0000220120002130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002130 h) + (by + have h : (thetaAboveCell0000220120002131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002131 h) + (by + have h : (thetaAboveCell0000220120002132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002132 h) + (by + have h : (thetaAboveCell0000220120002133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002133 h)) + +theorem cover_subtree_1ce463e93cf8 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022012000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022012000)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022012000))) + (by + have h : (thetaAboveCell0000220120002200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002200 h) + (by + have h : (thetaAboveCell0000220120002201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002201 h) + (by + have h : (thetaAboveCell0000220120002202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002202 h) + (by + have h : (thetaAboveCell0000220120002203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022012000))) + (by + have h : (thetaAboveCell0000220120002210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002210 h) + (by + have h : (thetaAboveCell0000220120002211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002211 h) + (by + have h : (thetaAboveCell0000220120002212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002212 h) + (by + have h : (thetaAboveCell0000220120002213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022012000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022012000))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022012000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022012000))) h) + +theorem cover_subtree_106de882d2f1 : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022012000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022012000)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022012000))) + (by + have h : (thetaAboveCell0000220120002300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002300 h) + (by + have h : (thetaAboveCell0000220120002301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002301 h) + (by + have h : (thetaAboveCell0000220120002302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002302 h) + (by + have h : (thetaAboveCell0000220120002303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022012000))) + (by + have h : (thetaAboveCell0000220120002310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002310 h) + (by + have h : (thetaAboveCell0000220120002311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002311 h) + (by + have h : (thetaAboveCell0000220120002312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002312 h) + (by + have h : (thetaAboveCell0000220120002313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120002313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022012000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022012000))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022012000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022012000))) h) + +theorem cover_subtree_a41df9d2526f : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022012000) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022012000) + cover_subtree_cb61b2523d2d + cover_subtree_51c2832454de + cover_subtree_1ce463e93cf8 + cover_subtree_106de882d2f1 + +theorem cover_subtree_850bf723be77 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022012000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022012000)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022012000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022012000))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022012000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022012000))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022012000))) + (by + have h : (thetaAboveCell0000220120003020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003020 h) + (by + have h : (thetaAboveCell0000220120003021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003021 h) + (by + have h : (thetaAboveCell0000220120003022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003022 h) + (by + have h : (thetaAboveCell0000220120003023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022012000))) + (by + have h : (thetaAboveCell0000220120003030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003030 h) + (by + have h : (thetaAboveCell0000220120003031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003031 h) + (by + have h : (thetaAboveCell0000220120003032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003032 h) + (by + have h : (thetaAboveCell0000220120003033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003033 h)) + +theorem cover_subtree_2b3d22a9b597 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022012000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022012000)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022012000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022012000))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022012000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022012000))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022012000))) + (by + have h : (thetaAboveCell0000220120003120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003120 h) + (by + have h : (thetaAboveCell0000220120003121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003121 h) + (by + have h : (thetaAboveCell0000220120003122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003122 h) + (by + have h : (thetaAboveCell0000220120003123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022012000))) + (by + have h : (thetaAboveCell0000220120003130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003130 h) + (by + have h : (thetaAboveCell0000220120003131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003131 h) + (by + have h : (thetaAboveCell0000220120003132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003132 h) + (by + have h : (thetaAboveCell0000220120003133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003133 h)) + +theorem cover_subtree_29b231fa0c5a : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022012000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022012000)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022012000))) + (by + have h : (thetaAboveCell0000220120003200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003200 h) + (by + have h : (thetaAboveCell0000220120003201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003201 h) + (by + have h : (thetaAboveCell0000220120003202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003202 h) + (by + have h : (thetaAboveCell0000220120003203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022012000))) + (by + have h : (thetaAboveCell0000220120003210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003210 h) + (by + have h : (thetaAboveCell0000220120003211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003211 h) + (by + have h : (thetaAboveCell0000220120003212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003212 h) + (by + have h : (thetaAboveCell0000220120003213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022012000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022012000))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022012000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022012000))) h) + +theorem cover_subtree_2f6ee77c9edb : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022012000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022012000)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022012000))) + (by + have h : (thetaAboveCell0000220120003300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003300 h) + (by + have h : (thetaAboveCell0000220120003301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003301 h) + (by + have h : (thetaAboveCell0000220120003302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003302 h) + (by + have h : (thetaAboveCell0000220120003303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022012000))) + (by + have h : (thetaAboveCell0000220120003310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003310 h) + (by + have h : (thetaAboveCell0000220120003311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003311 h) + (by + have h : (thetaAboveCell0000220120003312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003312 h) + (by + have h : (thetaAboveCell0000220120003313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120003313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022012000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022012000))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022012000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022012000))) h) + +theorem cover_subtree_aea54c77bf9f : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022012000) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022012000) + cover_subtree_850bf723be77 + cover_subtree_2b3d22a9b597 + cover_subtree_29b231fa0c5a + cover_subtree_2f6ee77c9edb + +theorem cover_subtree_b33563914493 : + adaptiveCoverCheck 7 thetaAboveCell000022012000 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022012000 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022012000) + (by + have h : ((childLL (childLL thetaAboveCell000022012000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022012000)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022012000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022012000)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022012000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022012000)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022012000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022012000)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022012000) + (by + have h : ((childLL (childLH thetaAboveCell000022012000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022012000)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022012000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022012000)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022012000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022012000)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022012000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022012000)) h)) + cover_subtree_a41df9d2526f + cover_subtree_aea54c77bf9f + +theorem cover_subtree_40103f36b622 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022012001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022012001)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022012001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022012001))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022012001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022012001))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022012001))) + (by + have h : (thetaAboveCell0000220120012020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012020 h) + (by + have h : (thetaAboveCell0000220120012021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012021 h) + (by + have h : (thetaAboveCell0000220120012022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012022 h) + (by + have h : (thetaAboveCell0000220120012023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022012001))) + (by + have h : (thetaAboveCell0000220120012030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012030 h) + (by + have h : (thetaAboveCell0000220120012031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012031 h) + (by + have h : (thetaAboveCell0000220120012032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012032 h) + (by + have h : (thetaAboveCell0000220120012033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012033 h)) + +theorem cover_subtree_68b551c015fb : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022012001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022012001)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022012001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022012001))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022012001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022012001))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022012001))) + (by + have h : (thetaAboveCell0000220120012120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012120 h) + (by + have h : (thetaAboveCell0000220120012121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012121 h) + (by + have h : (thetaAboveCell0000220120012122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012122 h) + (by + have h : (thetaAboveCell0000220120012123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022012001))) + (by + have h : (thetaAboveCell0000220120012130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012130 h) + (by + have h : (thetaAboveCell0000220120012131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012131 h) + (by + have h : (thetaAboveCell0000220120012132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012132 h) + (by + have h : (thetaAboveCell0000220120012133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012133 h)) + +theorem cover_subtree_26644cd8d850 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022012001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022012001)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022012001))) + (by + have h : (thetaAboveCell0000220120012200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012200 h) + (by + have h : (thetaAboveCell0000220120012201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012201 h) + (by + have h : (thetaAboveCell0000220120012202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012202 h) + (by + have h : (thetaAboveCell0000220120012203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022012001))) + (by + have h : (thetaAboveCell0000220120012210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012210 h) + (by + have h : (thetaAboveCell0000220120012211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012211 h) + (by + have h : (thetaAboveCell0000220120012212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012212 h) + (by + have h : (thetaAboveCell0000220120012213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022012001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022012001))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022012001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022012001))) h) + +theorem cover_subtree_ceab235367fd : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022012001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022012001)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022012001))) + (by + have h : (thetaAboveCell0000220120012300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012300 h) + (by + have h : (thetaAboveCell0000220120012301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012301 h) + (by + have h : (thetaAboveCell0000220120012302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012302 h) + (by + have h : (thetaAboveCell0000220120012303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022012001))) + (by + have h : (thetaAboveCell0000220120012310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012310 h) + (by + have h : (thetaAboveCell0000220120012311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012311 h) + (by + have h : (thetaAboveCell0000220120012312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012312 h) + (by + have h : (thetaAboveCell0000220120012313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120012313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022012001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022012001))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022012001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022012001))) h) + +theorem cover_subtree_4fe093f5b1c6 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022012001) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022012001) + cover_subtree_40103f36b622 + cover_subtree_68b551c015fb + cover_subtree_26644cd8d850 + cover_subtree_ceab235367fd + +theorem cover_subtree_2a612fb4e5f9 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022012001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022012001)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022012001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022012001))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022012001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022012001))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022012001))) + (by + have h : (thetaAboveCell0000220120013020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013020 h) + (by + have h : (thetaAboveCell0000220120013021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013021 h) + (by + have h : (thetaAboveCell0000220120013022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013022 h) + (by + have h : (thetaAboveCell0000220120013023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022012001))) + (by + have h : (thetaAboveCell0000220120013030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013030 h) + (by + have h : (thetaAboveCell0000220120013031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013031 h) + (by + have h : (thetaAboveCell0000220120013032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013032 h) + (by + have h : (thetaAboveCell0000220120013033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013033 h)) + +theorem cover_subtree_9768153a3fc8 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022012001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022012001)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022012001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022012001))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022012001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022012001))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022012001))) + (by + have h : (thetaAboveCell0000220120013120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013120 h) + (by + have h : (thetaAboveCell0000220120013121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013121 h) + (by + have h : (thetaAboveCell0000220120013122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013122 h) + (by + have h : (thetaAboveCell0000220120013123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022012001))) + (by + have h : (thetaAboveCell0000220120013130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013130 h) + (by + have h : (thetaAboveCell0000220120013131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013131 h) + (by + have h : (thetaAboveCell0000220120013132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013132 h) + (by + have h : (thetaAboveCell0000220120013133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013133 h)) + +theorem cover_subtree_cc445576ceb2 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022012001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022012001)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022012001))) + (by + have h : (thetaAboveCell0000220120013200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013200 h) + (by + have h : (thetaAboveCell0000220120013201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013201 h) + (by + have h : (thetaAboveCell0000220120013202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013202 h) + (by + have h : (thetaAboveCell0000220120013203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022012001))) + (by + have h : (thetaAboveCell0000220120013210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013210 h) + (by + have h : (thetaAboveCell0000220120013211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013211 h) + (by + have h : (thetaAboveCell0000220120013212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013212 h) + (by + have h : (thetaAboveCell0000220120013213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022012001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022012001))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022012001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022012001))) h) + +theorem cover_subtree_f5eaea7b07a1 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022012001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022012001)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022012001))) + (by + have h : (thetaAboveCell0000220120013300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013300 h) + (by + have h : (thetaAboveCell0000220120013301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013301 h) + (by + have h : (thetaAboveCell0000220120013302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013302 h) + (by + have h : (thetaAboveCell0000220120013303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022012001))) + (by + have h : (thetaAboveCell0000220120013310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013310 h) + (by + have h : (thetaAboveCell0000220120013311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013311 h) + (by + have h : (thetaAboveCell0000220120013312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013312 h) + (by + have h : (thetaAboveCell0000220120013313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120013313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022012001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022012001))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022012001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022012001))) h) + +theorem cover_subtree_4bf63b1ca0fb : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022012001) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022012001) + cover_subtree_2a612fb4e5f9 + cover_subtree_9768153a3fc8 + cover_subtree_cc445576ceb2 + cover_subtree_f5eaea7b07a1 + +theorem cover_subtree_6c90b6564adf : + adaptiveCoverCheck 7 thetaAboveCell000022012001 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022012001 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022012001) + (by + have h : ((childLL (childLL thetaAboveCell000022012001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022012001)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022012001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022012001)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022012001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022012001)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022012001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022012001)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022012001) + (by + have h : ((childLL (childLH thetaAboveCell000022012001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022012001)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022012001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022012001)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022012001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022012001)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022012001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022012001)) h)) + cover_subtree_4fe093f5b1c6 + cover_subtree_4bf63b1ca0fb + +theorem cover_subtree_4289605d46bf : + adaptiveCoverCheck 7 thetaAboveCell000022012002 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022012002 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022012002) + (by + have h : ((childLL (childLL thetaAboveCell000022012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022012002)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022012002)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022012002)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022012002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022012002) + (by + have h : ((childLL (childLH thetaAboveCell000022012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022012002)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022012002)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022012002)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022012002)) h)) + (by + have h : ((childHL thetaAboveCell000022012002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022012002) h) + (by + have h : ((childHH thetaAboveCell000022012002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022012002) h) + +theorem cover_subtree_c487c7959b39 : + adaptiveCoverCheck 7 thetaAboveCell000022012003 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022012003 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022012003) + (by + have h : ((childLL (childLL thetaAboveCell000022012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022012003)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022012003)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022012003)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022012003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022012003) + (by + have h : ((childLL (childLH thetaAboveCell000022012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022012003)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022012003)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022012003)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022012003)) h)) + (by + have h : ((childHL thetaAboveCell000022012003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022012003) h) + (by + have h : ((childHH thetaAboveCell000022012003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022012003) h) + +theorem cover_subtree_a0fc96b8fbeb : + adaptiveCoverCheck 8 (childLL (childLL (childHL thetaAboveCell00002201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL thetaAboveCell00002201))) + cover_subtree_b33563914493 + cover_subtree_6c90b6564adf + cover_subtree_4289605d46bf + cover_subtree_c487c7959b39 + +theorem cover_subtree_5e121ac8879b : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022012010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022012010)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022012010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022012010))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022012010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022012010))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022012010))) + (by + have h : (thetaAboveCell0000220120102020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102020 h) + (by + have h : (thetaAboveCell0000220120102021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102021 h) + (by + have h : (thetaAboveCell0000220120102022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102022 h) + (by + have h : (thetaAboveCell0000220120102023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022012010))) + (by + have h : (thetaAboveCell0000220120102030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102030 h) + (by + have h : (thetaAboveCell0000220120102031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102031 h) + (by + have h : (thetaAboveCell0000220120102032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102032 h) + (by + have h : (thetaAboveCell0000220120102033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102033 h)) + +theorem cover_subtree_85f348686687 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022012010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022012010)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022012010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022012010))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022012010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022012010))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022012010))) + (by + have h : (thetaAboveCell0000220120102120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102120 h) + (by + have h : (thetaAboveCell0000220120102121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102121 h) + (by + have h : (thetaAboveCell0000220120102122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102122 h) + (by + have h : (thetaAboveCell0000220120102123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022012010))) + (by + have h : (thetaAboveCell0000220120102130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102130 h) + (by + have h : (thetaAboveCell0000220120102131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102131 h) + (by + have h : (thetaAboveCell0000220120102132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102132 h) + (by + have h : (thetaAboveCell0000220120102133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102133 h)) + +theorem cover_subtree_0b577b76b19a : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022012010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022012010)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022012010))) + (by + have h : (thetaAboveCell0000220120102200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102200 h) + (by + have h : (thetaAboveCell0000220120102201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102201 h) + (by + have h : (thetaAboveCell0000220120102202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102202 h) + (by + have h : (thetaAboveCell0000220120102203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022012010))) + (by + have h : (thetaAboveCell0000220120102210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102210 h) + (by + have h : (thetaAboveCell0000220120102211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102211 h) + (by + have h : (thetaAboveCell0000220120102212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102212 h) + (by + have h : (thetaAboveCell0000220120102213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022012010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022012010))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022012010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022012010))) h) + +theorem cover_subtree_56442d1d29fc : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022012010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022012010)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022012010))) + (by + have h : (thetaAboveCell0000220120102300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102300 h) + (by + have h : (thetaAboveCell0000220120102301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102301 h) + (by + have h : (thetaAboveCell0000220120102302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102302 h) + (by + have h : (thetaAboveCell0000220120102303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022012010))) + (by + have h : (thetaAboveCell0000220120102310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102310 h) + (by + have h : (thetaAboveCell0000220120102311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102311 h) + (by + have h : (thetaAboveCell0000220120102312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102312 h) + (by + have h : (thetaAboveCell0000220120102313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120102313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022012010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022012010))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022012010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022012010))) h) + +theorem cover_subtree_077e5d53ad41 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022012010) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022012010) + cover_subtree_5e121ac8879b + cover_subtree_85f348686687 + cover_subtree_0b577b76b19a + cover_subtree_56442d1d29fc + +theorem cover_subtree_afc343ef6d9c : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022012010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022012010)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022012010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022012010))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022012010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022012010))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022012010))) + (by + have h : (thetaAboveCell0000220120103020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103020 h) + (by + have h : (thetaAboveCell0000220120103021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103021 h) + (by + have h : (thetaAboveCell0000220120103022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103022 h) + (by + have h : (thetaAboveCell0000220120103023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022012010))) + (by + have h : (thetaAboveCell0000220120103030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103030 h) + (by + have h : (thetaAboveCell0000220120103031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103031 h) + (by + have h : (thetaAboveCell0000220120103032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103032 h) + (by + have h : (thetaAboveCell0000220120103033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103033 h)) + +theorem cover_subtree_bd1c188bd5cc : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022012010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022012010)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022012010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022012010))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022012010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022012010))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022012010))) + (by + have h : (thetaAboveCell0000220120103120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103120 h) + (by + have h : (thetaAboveCell0000220120103121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103121 h) + (by + have h : (thetaAboveCell0000220120103122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103122 h) + (by + have h : (thetaAboveCell0000220120103123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022012010))) + (by + have h : (thetaAboveCell0000220120103130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103130 h) + (by + have h : (thetaAboveCell0000220120103131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103131 h) + (by + have h : (thetaAboveCell0000220120103132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103132 h) + (by + have h : (thetaAboveCell0000220120103133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103133 h)) + +theorem cover_subtree_89214ff44665 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022012010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022012010)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022012010))) + (by + have h : (thetaAboveCell0000220120103200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103200 h) + (by + have h : (thetaAboveCell0000220120103201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103201 h) + (by + have h : (thetaAboveCell0000220120103202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103202 h) + (by + have h : (thetaAboveCell0000220120103203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022012010))) + (by + have h : (thetaAboveCell0000220120103210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103210 h) + (by + have h : (thetaAboveCell0000220120103211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103211 h) + (by + have h : (thetaAboveCell0000220120103212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103212 h) + (by + have h : (thetaAboveCell0000220120103213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022012010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022012010))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022012010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022012010))) h) + +theorem cover_subtree_287e5af130bf : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022012010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022012010)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022012010))) + (by + have h : (thetaAboveCell0000220120103300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103300 h) + (by + have h : (thetaAboveCell0000220120103301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103301 h) + (by + have h : (thetaAboveCell0000220120103302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103302 h) + (by + have h : (thetaAboveCell0000220120103303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022012010))) + (by + have h : (thetaAboveCell0000220120103310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103310 h) + (by + have h : (thetaAboveCell0000220120103311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103311 h) + (by + have h : (thetaAboveCell0000220120103312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103312 h) + (by + have h : (thetaAboveCell0000220120103313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120103313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022012010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022012010))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022012010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022012010))) h) + +theorem cover_subtree_bdb6f38b6019 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022012010) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022012010) + cover_subtree_afc343ef6d9c + cover_subtree_bd1c188bd5cc + cover_subtree_89214ff44665 + cover_subtree_287e5af130bf + +theorem cover_subtree_d23bef969ca7 : + adaptiveCoverCheck 7 thetaAboveCell000022012010 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022012010 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022012010) + (by + have h : ((childLL (childLL thetaAboveCell000022012010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022012010)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022012010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022012010)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022012010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022012010)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022012010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022012010)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022012010) + (by + have h : ((childLL (childLH thetaAboveCell000022012010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022012010)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022012010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022012010)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022012010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022012010)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022012010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022012010)) h)) + cover_subtree_077e5d53ad41 + cover_subtree_bdb6f38b6019 + +theorem cover_subtree_4667900dcf78 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022012011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022012011)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022012011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022012011))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022012011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022012011))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120112020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112020 h) + (by + have h : (thetaAboveCell0000220120112021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112021 h) + (by + have h : (thetaAboveCell0000220120112022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112022 h) + (by + have h : (thetaAboveCell0000220120112023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120112030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112030 h) + (by + have h : (thetaAboveCell0000220120112031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112031 h) + (by + have h : (thetaAboveCell0000220120112032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112032 h) + (by + have h : (thetaAboveCell0000220120112033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112033 h)) + +theorem cover_subtree_d9c26d139205 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022012011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022012011)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022012011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022012011))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022012011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022012011))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120112120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112120 h) + (by + have h : (thetaAboveCell0000220120112121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112121 h) + (by + have h : (thetaAboveCell0000220120112122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112122 h) + (by + have h : (thetaAboveCell0000220120112123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120112130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112130 h) + (by + have h : (thetaAboveCell0000220120112131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112131 h) + (by + have h : (thetaAboveCell0000220120112132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112132 h) + (by + have h : (thetaAboveCell0000220120112133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112133 h)) + +theorem cover_subtree_295321b3b4d6 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022012011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022012011)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120112200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112200 h) + (by + have h : (thetaAboveCell0000220120112201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112201 h) + (by + have h : (thetaAboveCell0000220120112202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112202 h) + (by + have h : (thetaAboveCell0000220120112203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120112210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112210 h) + (by + have h : (thetaAboveCell0000220120112211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112211 h) + (by + have h : (thetaAboveCell0000220120112212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112212 h) + (by + have h : (thetaAboveCell0000220120112213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022012011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022012011))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022012011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022012011))) h) + +theorem cover_subtree_9f2040bb35ca : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022012011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022012011)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120112300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112300 h) + (by + have h : (thetaAboveCell0000220120112301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112301 h) + (by + have h : (thetaAboveCell0000220120112302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112302 h) + (by + have h : (thetaAboveCell0000220120112303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120112310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112310 h) + (by + have h : (thetaAboveCell0000220120112311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112311 h) + (by + have h : (thetaAboveCell0000220120112312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112312 h) + (by + have h : (thetaAboveCell0000220120112313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120112313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022012011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022012011))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022012011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022012011))) h) + +theorem cover_subtree_738fba336a14 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022012011) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022012011) + cover_subtree_4667900dcf78 + cover_subtree_d9c26d139205 + cover_subtree_295321b3b4d6 + cover_subtree_9f2040bb35ca + +theorem cover_subtree_4ddaba414c0c : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022012011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022012011)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022012011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022012011))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022012011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022012011))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120113020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113020 h) + (by + have h : (thetaAboveCell0000220120113021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113021 h) + (by + have h : (thetaAboveCell0000220120113022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113022 h) + (by + have h : (thetaAboveCell0000220120113023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120113030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113030 h) + (by + have h : (thetaAboveCell0000220120113031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113031 h) + (by + have h : (thetaAboveCell0000220120113032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113032 h) + (by + have h : (thetaAboveCell0000220120113033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113033 h)) + +theorem cover_subtree_ecd6fc119970 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022012011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022012011)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022012011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022012011))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022012011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022012011))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120113120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113120 h) + (by + have h : (thetaAboveCell0000220120113121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113121 h) + (by + have h : (thetaAboveCell0000220120113122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113122 h) + (by + have h : (thetaAboveCell0000220120113123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120113130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113130 h) + (by + have h : (thetaAboveCell0000220120113131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113131 h) + (by + have h : (thetaAboveCell0000220120113132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113132 h) + (by + have h : (thetaAboveCell0000220120113133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113133 h)) + +theorem cover_subtree_9104ec057e37 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022012011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022012011)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120113200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113200 h) + (by + have h : (thetaAboveCell0000220120113201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113201 h) + (by + have h : (thetaAboveCell0000220120113202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113202 h) + (by + have h : (thetaAboveCell0000220120113203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120113210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113210 h) + (by + have h : (thetaAboveCell0000220120113211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113211 h) + (by + have h : (thetaAboveCell0000220120113212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113212 h) + (by + have h : (thetaAboveCell0000220120113213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL (childHH + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120113220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113220 h) + (by + have h : (thetaAboveCell0000220120113221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113221 h) + (by + have h : (thetaAboveCell0000220120113222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113222 h) + (by + have h : (thetaAboveCell0000220120113223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL (childHH + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120113230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113230 h) + (by + have h : (thetaAboveCell0000220120113231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113231 h) + (by + have h : (thetaAboveCell0000220120113232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113232 h) + (by + have h : (thetaAboveCell0000220120113233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113233 h)) + +theorem cover_subtree_019584cb80e9 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022012011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022012011)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120113300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113300 h) + (by + have h : (thetaAboveCell0000220120113301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113301 h) + (by + have h : (thetaAboveCell0000220120113302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113302 h) + (by + have h : (thetaAboveCell0000220120113303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120113310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113310 h) + (by + have h : (thetaAboveCell0000220120113311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113311 h) + (by + have h : (thetaAboveCell0000220120113312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113312 h) + (by + have h : (thetaAboveCell0000220120113313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH (childHH + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120113320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113320 h) + (by + have h : (thetaAboveCell0000220120113321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113321 h) + (by + have h : (thetaAboveCell0000220120113322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113322 h) + (by + have h : (thetaAboveCell0000220120113323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH (childHH + thetaAboveCell000022012011))) + (by + have h : (thetaAboveCell0000220120113330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113330 h) + (by + have h : (thetaAboveCell0000220120113331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113331 h) + (by + have h : (thetaAboveCell0000220120113332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113332 h) + (by + have h : (thetaAboveCell0000220120113333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220120113333 h)) + +theorem cover_subtree_a099f2429294 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022012011) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022012011) + cover_subtree_4ddaba414c0c + cover_subtree_ecd6fc119970 + cover_subtree_9104ec057e37 + cover_subtree_019584cb80e9 + +theorem cover_subtree_3ff73ea428ff : + adaptiveCoverCheck 7 thetaAboveCell000022012011 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022012011 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022012011) + (by + have h : ((childLL (childLL thetaAboveCell000022012011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022012011)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022012011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022012011)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022012011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022012011)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022012011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022012011)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022012011) + (by + have h : ((childLL (childLH thetaAboveCell000022012011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022012011)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022012011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022012011)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022012011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022012011)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022012011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022012011)) h)) + cover_subtree_738fba336a14 + cover_subtree_a099f2429294 + +theorem cover_subtree_9d5ad8202394 : + adaptiveCoverCheck 7 thetaAboveCell000022012012 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022012012 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022012012) + (by + have h : ((childLL (childLL thetaAboveCell000022012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022012012)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022012012)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022012012)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022012012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022012012) + (by + have h : ((childLL (childLH thetaAboveCell000022012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022012012)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022012012)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022012012)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022012012)) h)) + (by + have h : ((childHL thetaAboveCell000022012012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022012012) h) + (by + have h : ((childHH thetaAboveCell000022012012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022012012) h) + +theorem cover_subtree_32e4797e8235 : + adaptiveCoverCheck 7 thetaAboveCell000022012013 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022012013 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022012013) + (by + have h : ((childLL (childLL thetaAboveCell000022012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022012013)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022012013)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022012013)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022012013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022012013) + (by + have h : ((childLL (childLH thetaAboveCell000022012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022012013)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022012013)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022012013)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022012013)) h)) + (by + have h : ((childHL thetaAboveCell000022012013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022012013) h) + (by + have h : ((childHH thetaAboveCell000022012013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022012013) h) + +theorem cover_subtree_86e078def774 : + adaptiveCoverCheck 8 (childLH (childLL (childHL thetaAboveCell00002201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL thetaAboveCell00002201))) + cover_subtree_d23bef969ca7 + cover_subtree_3ff73ea428ff + cover_subtree_9d5ad8202394 + cover_subtree_32e4797e8235 + +theorem e24KC2ThetaAboveLeaf0000220120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00002201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00002201)) + cover_subtree_a0fc96b8fbeb + cover_subtree_86e078def774 + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00002201))) + (by + have h : (thetaAboveCell000022012020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022012020 h) + (by + have h : (thetaAboveCell000022012021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022012021 h) + (by + have h : (thetaAboveCell000022012022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022012022 h) + (by + have h : (thetaAboveCell000022012023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022012023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00002201))) + (by + have h : (thetaAboveCell000022012030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022012030 h) + (by + have h : (thetaAboveCell000022012031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022012031 h) + (by + have h : (thetaAboveCell000022012032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022012032 h) + (by + have h : (thetaAboveCell000022012033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022012033 h)) + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle013.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle013.lean new file mode 100644 index 0000000000..f8f6bcab7e --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle013.lean @@ -0,0 +1,11302 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch018`. +* `GerverSofa.KernelOnly.PartE.Certificates.Batch044`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCellsfa7ef730fc + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022003000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00002200))) + +/-- Subcell `000022003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00002200))) + +/-- Subcell `0000220030002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022003000))) + +/-- Subcell `0000220030003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022003000))) + +/-- Subcell `0000220030012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022003001))) + +/-- Subcell `0000220030013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022003001))) + +/-- Subcell `0000220030102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022003010))) + +/-- Subcell `0000220030103020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022003010))) + +/-- Subcell `0000220030112020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022003011))) + +/-- Subcell `0000220030113020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022003011))) + +/-- Subcell `0000220030113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220030113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022003011))) + +end GerverSofa.PartE.CertificateCellsfa7ef730fc + +namespace GerverSofa.PartE.CoverCertificate1bb21a49a4 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLH (childLL (childHL (childLL (childLL (childHL (childHL (childLL + (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate1bb21a49a4 + +namespace GerverSofa.PartE.CoverCertificatec9db3a1aba + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLH (childLL (childHL (childLL (childLL (childHL (childHL (childLL + (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatec9db3a1aba + +namespace GerverSofa.PartE.CoverCertificatefb03004e1f + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childHL (childLH (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatefb03004e1f + +namespace GerverSofa.PartE.CoverCertificate045cecfd86 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childHL (childLH (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate045cecfd86 + +namespace GerverSofa.PartE.CoverCertificatef837300024 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childHL (childLH (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +end GerverSofa.PartE.CoverCertificatef837300024 + +namespace GerverSofa.PartE.CoverCertificate2943ba0b5c + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childHL (childLH (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +end GerverSofa.PartE.CoverCertificate2943ba0b5c + +namespace GerverSofa.PartE.CoverCertificate42a60e756f + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childHL (childLH (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate42a60e756f + +namespace GerverSofa.PartE.CoverCertificate0cee658f4b + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childHL (childLH (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate0cee658f4b + +namespace GerverSofa.PartE.CoverCertificateeb376f6b8e + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childHL (childLH (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +end GerverSofa.PartE.CoverCertificateeb376f6b8e + +namespace GerverSofa.PartE.CoverCertificate1e208f1b6e + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childHL (childLH (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +end GerverSofa.PartE.CoverCertificate1e208f1b6e + +namespace GerverSofa.PartE.CoverCertificate6fd62aabed + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childLH (childLH (childLL (childHL (childLL (childLL (childHL (childHL + (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate6fd62aabed + +namespace GerverSofa.PartE.CoverCertificate22515ac7bd + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childLH (childLH (childLL (childHL (childLL (childLL (childHL (childHL + (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate22515ac7bd + +namespace GerverSofa.PartE.CoverCertificatebad9a9b575 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childHH (childLH (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatebad9a9b575 + +namespace GerverSofa.PartE.CoverCertificate13a680926b + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childHH (childLH (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate13a680926b + +namespace GerverSofa.PartE.CoverCertificatebdefa88d14 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childHH (childLH (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +end GerverSofa.PartE.CoverCertificatebdefa88d14 + +namespace GerverSofa.PartE.CoverCertificateb54a5d06ec + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childHH (childLH (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +end GerverSofa.PartE.CoverCertificateb54a5d06ec + +namespace GerverSofa.PartE.CertificateCells5e16eb2f1b + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells5e16eb2f1b + +namespace GerverSofa.PartE.CertificateCellsb7fa51f50b + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsb7fa51f50b + +namespace GerverSofa.PartE.CertificateCellsd618452127 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsd618452127 + +namespace GerverSofa.PartE.CertificateCells82d3525350 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells82d3525350 + +namespace GerverSofa.PartE.CertificateCells632f810978 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells632f810978 + +namespace GerverSofa.PartE.CertificateCells15b8174174 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells15b8174174 + +namespace GerverSofa.PartE.CertificateCells1f25007fe8 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells1f25007fe8 + +namespace GerverSofa.PartE.CertificateCells1e9acaa8be + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells1e9acaa8be + +namespace GerverSofa.PartE.CertificateCells231d66ab0c + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells231d66ab0c + +namespace GerverSofa.PartE.CertificateCells2c11250698 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells2c11250698 + +namespace GerverSofa.PartE.CertificateCells3ce31f23ce + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells3ce31f23ce + +namespace GerverSofa.PartE.CertificateCells3c3d48c1eb + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells3c3d48c1eb + +namespace GerverSofa.PartE.CertificateCells4d022b961f + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells4d022b961f + +namespace GerverSofa.PartE.CertificateCells9798c9c840 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells9798c9c840 + +namespace GerverSofa.PartE.CertificateCells6832cee036 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells6832cee036 + +namespace GerverSofa.PartE.CertificateCellsab896aa443 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsab896aa443 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC6ProofBatch0bae0a82ed09fca0`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC6 explicit proof-producing certificate batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsfa7ef730fc + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsfa7ef730fc + +open CertificateCellsfa7ef730fc +theorem e24KC2ThetaAboveLeaf0000220022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00002200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00002200)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00002200))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00002200))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00002200))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00002200))) h) +theorem e24KC2ThetaAboveLeaf0000220023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00002200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00002200)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00002200))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00002200))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00002200))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00002200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00002200))) h) +theorem cover_subtree_98370144a0ae : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022003000) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022003000) + (by + have h : ((childLL (childLL thetaAboveCell000022003000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL thetaAboveCell000022003000)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022003000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL thetaAboveCell000022003000)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLL thetaAboveCell000022003000)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLL + thetaAboveCell000022003000))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLL + thetaAboveCell000022003000))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLL + thetaAboveCell000022003000))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLL + thetaAboveCell000022003000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLL thetaAboveCell000022003000)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLL + thetaAboveCell000022003000))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLL + thetaAboveCell000022003000))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLL + thetaAboveCell000022003000))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLL + thetaAboveCell000022003000))) h)) + +theorem cover_subtree_2b8c79c37576 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022003000) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022003000) + (by + have h : ((childLL (childLH thetaAboveCell000022003000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH thetaAboveCell000022003000)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022003000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH thetaAboveCell000022003000)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLH thetaAboveCell000022003000)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLH + thetaAboveCell000022003000))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLH + thetaAboveCell000022003000))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLH + thetaAboveCell000022003000))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLH + thetaAboveCell000022003000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLH thetaAboveCell000022003000)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLH + thetaAboveCell000022003000))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLH + thetaAboveCell000022003000))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLH + thetaAboveCell000022003000))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLH + thetaAboveCell000022003000))) h)) + +theorem cover_subtree_c9f10be4f818 : + adaptiveCoverCheck 4 (childLL (childLL (childHL thetaAboveCell000022003000))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHL + thetaAboveCell000022003000))) + (by + have h : (thetaAboveCell0000220030002000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002000 h) + (by + have h : (thetaAboveCell0000220030002001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002001 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002002 + (by + have h : ((childLL thetaAboveCell0000220030002002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002002) h) + (by + have h : ((childLH thetaAboveCell0000220030002002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002002) h) + (by + have h : ((childHL thetaAboveCell0000220030002002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002002) h) + (by + have h : ((childHH thetaAboveCell0000220030002002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002003 + (by + have h : ((childLL thetaAboveCell0000220030002003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002003) h) + (by + have h : ((childLH thetaAboveCell0000220030002003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002003) h) + (by + have h : ((childHL thetaAboveCell0000220030002003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002003) h) + (by + have h : ((childHH thetaAboveCell0000220030002003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002003) h)) + +theorem cover_subtree_b44dc0179b82 : + adaptiveCoverCheck 4 (childLH (childLL (childHL thetaAboveCell000022003000))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHL + thetaAboveCell000022003000))) + (by + have h : (thetaAboveCell0000220030002010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002010 h) + (by + have h : (thetaAboveCell0000220030002011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002011 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002012 + (by + have h : ((childLL thetaAboveCell0000220030002012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002012) h) + (by + have h : ((childLH thetaAboveCell0000220030002012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002012) h) + (by + have h : ((childHL thetaAboveCell0000220030002012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002012) h) + (by + have h : ((childHH thetaAboveCell0000220030002012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002013 + (by + have h : ((childLL thetaAboveCell0000220030002013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002013) h) + (by + have h : ((childLH thetaAboveCell0000220030002013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002013) h) + (by + have h : ((childHL thetaAboveCell0000220030002013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002013) h) + (by + have h : ((childHH thetaAboveCell0000220030002013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002013) h)) + +theorem cover_subtree_2d51606740be : + adaptiveCoverCheck 4 (childHL (childLL (childHL thetaAboveCell000022003000))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022003000))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002020 + (by + have h : ((childLL thetaAboveCell0000220030002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002020) h) + (by + have h : ((childLH thetaAboveCell0000220030002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002020) h) + (by + have h : ((childHL thetaAboveCell0000220030002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002020) h) + (by + have h : ((childHH thetaAboveCell0000220030002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002021 + (by + have h : ((childLL thetaAboveCell0000220030002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002021) h) + (by + have h : ((childLH thetaAboveCell0000220030002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002021) h) + (by + have h : ((childHL thetaAboveCell0000220030002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002021) h) + (by + have h : ((childHH thetaAboveCell0000220030002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002022 + (by + have h : ((childLL thetaAboveCell0000220030002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002022) h) + (by + have h : ((childLH thetaAboveCell0000220030002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002022) h) + (by + have h : ((childHL thetaAboveCell0000220030002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002022) h) + (by + have h : ((childHH thetaAboveCell0000220030002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002023 + (by + have h : ((childLL thetaAboveCell0000220030002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002023) h) + (by + have h : ((childLH thetaAboveCell0000220030002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002023) h) + (by + have h : ((childHL thetaAboveCell0000220030002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002023) h) + (by + have h : ((childHH thetaAboveCell0000220030002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002023) h)) + +theorem cover_subtree_84975093d7db : + adaptiveCoverCheck 4 (childHH (childLL (childHL thetaAboveCell000022003000))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022003000))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002030 + (by + have h : ((childLL thetaAboveCell0000220030002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002030) h) + (by + have h : ((childLH thetaAboveCell0000220030002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002030) h) + (by + have h : ((childHL thetaAboveCell0000220030002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002030) h) + (by + have h : ((childHH thetaAboveCell0000220030002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002031 + (by + have h : ((childLL thetaAboveCell0000220030002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002031) h) + (by + have h : ((childLH thetaAboveCell0000220030002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002031) h) + (by + have h : ((childHL thetaAboveCell0000220030002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002031) h) + (by + have h : ((childHH thetaAboveCell0000220030002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002032 + (by + have h : ((childLL thetaAboveCell0000220030002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002032) h) + (by + have h : ((childLH thetaAboveCell0000220030002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002032) h) + (by + have h : ((childHL thetaAboveCell0000220030002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002032) h) + (by + have h : ((childHH thetaAboveCell0000220030002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002033 + (by + have h : ((childLL thetaAboveCell0000220030002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002033) h) + (by + have h : ((childLH thetaAboveCell0000220030002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002033) h) + (by + have h : ((childHL thetaAboveCell0000220030002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002033) h) + (by + have h : ((childHH thetaAboveCell0000220030002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002033) h)) + +theorem cover_subtree_ba9d19bd9151 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022003000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022003000)) + cover_subtree_c9f10be4f818 + cover_subtree_b44dc0179b82 + cover_subtree_2d51606740be + cover_subtree_84975093d7db + +theorem cover_subtree_625b3384c249 : + adaptiveCoverCheck 4 (childLL (childLH (childHL thetaAboveCell000022003000))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHL + thetaAboveCell000022003000))) + (by + have h : (thetaAboveCell0000220030002100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002100 h) + (by + have h : (thetaAboveCell0000220030002101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002101 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002102 + (by + have h : ((childLL thetaAboveCell0000220030002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002102) h) + (by + have h : ((childLH thetaAboveCell0000220030002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002102) h) + (by + have h : ((childHL thetaAboveCell0000220030002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002102) h) + (by + have h : ((childHH thetaAboveCell0000220030002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002103 + (by + have h : ((childLL thetaAboveCell0000220030002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002103) h) + (by + have h : ((childLH thetaAboveCell0000220030002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002103) h) + (by + have h : ((childHL thetaAboveCell0000220030002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002103) h) + (by + have h : ((childHH thetaAboveCell0000220030002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002103) h)) + +theorem cover_subtree_90e4b8e577d3 : + adaptiveCoverCheck 4 (childLH (childLH (childHL thetaAboveCell000022003000))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHL + thetaAboveCell000022003000))) + (by + have h : (thetaAboveCell0000220030002110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002110 h) + (by + have h : (thetaAboveCell0000220030002111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002111 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002112 + (by + have h : ((childLL thetaAboveCell0000220030002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002112) h) + (by + have h : ((childLH thetaAboveCell0000220030002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002112) h) + (by + have h : ((childHL thetaAboveCell0000220030002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002112) h) + (by + have h : ((childHH thetaAboveCell0000220030002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002113 + (by + have h : ((childLL thetaAboveCell0000220030002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002113) h) + (by + have h : ((childLH thetaAboveCell0000220030002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002113) h) + (by + have h : ((childHL thetaAboveCell0000220030002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002113) h) + (by + have h : ((childHH thetaAboveCell0000220030002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002113) h)) + +theorem cover_subtree_675556e82299 : + adaptiveCoverCheck 4 (childHL (childLH (childHL thetaAboveCell000022003000))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022003000))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002120 + (by + have h : ((childLL thetaAboveCell0000220030002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002120) h) + (by + have h : ((childLH thetaAboveCell0000220030002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002120) h) + (by + have h : ((childHL thetaAboveCell0000220030002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002120) h) + (by + have h : ((childHH thetaAboveCell0000220030002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002121 + (by + have h : ((childLL thetaAboveCell0000220030002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002121) h) + (by + have h : ((childLH thetaAboveCell0000220030002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002121) h) + (by + have h : ((childHL thetaAboveCell0000220030002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002121) h) + (by + have h : ((childHH thetaAboveCell0000220030002121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002122 + (by + have h : ((childLL thetaAboveCell0000220030002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002122) h) + (by + have h : ((childLH thetaAboveCell0000220030002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002122) h) + (by + have h : ((childHL thetaAboveCell0000220030002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002122) h) + (by + have h : ((childHH thetaAboveCell0000220030002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002123 + (by + have h : ((childLL thetaAboveCell0000220030002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002123) h) + (by + have h : ((childLH thetaAboveCell0000220030002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002123) h) + (by + have h : ((childHL thetaAboveCell0000220030002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002123) h) + (by + have h : ((childHH thetaAboveCell0000220030002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002123) h)) + +theorem cover_subtree_a828876ee758 : + adaptiveCoverCheck 4 (childHH (childLH (childHL thetaAboveCell000022003000))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022003000))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002130 + (by + have h : ((childLL thetaAboveCell0000220030002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002130) h) + (by + have h : ((childLH thetaAboveCell0000220030002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002130) h) + (by + have h : ((childHL thetaAboveCell0000220030002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002130) h) + (by + have h : ((childHH thetaAboveCell0000220030002130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002131 + (by + have h : ((childLL thetaAboveCell0000220030002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002131) h) + (by + have h : ((childLH thetaAboveCell0000220030002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002131) h) + (by + have h : ((childHL thetaAboveCell0000220030002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002131) h) + (by + have h : ((childHH thetaAboveCell0000220030002131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002132 + (by + have h : ((childLL thetaAboveCell0000220030002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002132) h) + (by + have h : ((childLH thetaAboveCell0000220030002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002132) h) + (by + have h : ((childHL thetaAboveCell0000220030002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002132) h) + (by + have h : ((childHH thetaAboveCell0000220030002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030002133 + (by + have h : ((childLL thetaAboveCell0000220030002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030002133) h) + (by + have h : ((childLH thetaAboveCell0000220030002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030002133) h) + (by + have h : ((childHL thetaAboveCell0000220030002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030002133) h) + (by + have h : ((childHH thetaAboveCell0000220030002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030002133) h)) + +theorem cover_subtree_ab8ac75e68d0 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022003000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022003000)) + cover_subtree_625b3384c249 + cover_subtree_90e4b8e577d3 + cover_subtree_675556e82299 + cover_subtree_a828876ee758 + +theorem cover_subtree_bdc92ad9349d : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022003000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022003000)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022003000))) + (by + have h : (thetaAboveCell0000220030002200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002200 h) + (by + have h : (thetaAboveCell0000220030002201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002201 h) + (by + have h : (thetaAboveCell0000220030002202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002202 h) + (by + have h : (thetaAboveCell0000220030002203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022003000))) + (by + have h : (thetaAboveCell0000220030002210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002210 h) + (by + have h : (thetaAboveCell0000220030002211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002211 h) + (by + have h : (thetaAboveCell0000220030002212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002212 h) + (by + have h : (thetaAboveCell0000220030002213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022003000))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022003000))) h) + +theorem cover_subtree_d20715622b71 : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022003000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022003000)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022003000))) + (by + have h : (thetaAboveCell0000220030002300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002300 h) + (by + have h : (thetaAboveCell0000220030002301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002301 h) + (by + have h : (thetaAboveCell0000220030002302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002302 h) + (by + have h : (thetaAboveCell0000220030002303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022003000))) + (by + have h : (thetaAboveCell0000220030002310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002310 h) + (by + have h : (thetaAboveCell0000220030002311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002311 h) + (by + have h : (thetaAboveCell0000220030002312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002312 h) + (by + have h : (thetaAboveCell0000220030002313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030002313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022003000))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022003000))) h) + +theorem cover_subtree_b30ba9777925 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022003000) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022003000) + cover_subtree_ba9d19bd9151 + cover_subtree_ab8ac75e68d0 + cover_subtree_bdc92ad9349d + cover_subtree_d20715622b71 + +theorem cover_subtree_ee2f6d25ebfc : + adaptiveCoverCheck 4 (childHL (childLL (childHH thetaAboveCell000022003000))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022003000))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030003020 + (by + have h : ((childLL thetaAboveCell0000220030003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030003020) h) + (by + have h : ((childLH thetaAboveCell0000220030003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030003020) h) + (by + have h : ((childHL thetaAboveCell0000220030003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030003020) h) + (by + have h : ((childHH thetaAboveCell0000220030003020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030003020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030003021 + (by + have h : ((childLL thetaAboveCell0000220030003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030003021) h) + (by + have h : ((childLH thetaAboveCell0000220030003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030003021) h) + (by + have h : ((childHL thetaAboveCell0000220030003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030003021) h) + (by + have h : ((childHH thetaAboveCell0000220030003021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030003021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030003022 + (by + have h : ((childLL thetaAboveCell0000220030003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030003022) h) + (by + have h : ((childLH thetaAboveCell0000220030003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030003022) h) + (by + have h : ((childHL thetaAboveCell0000220030003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030003022) h) + (by + have h : ((childHH thetaAboveCell0000220030003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030003022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030003023 + (by + have h : ((childLL thetaAboveCell0000220030003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030003023) h) + (by + have h : ((childLH thetaAboveCell0000220030003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030003023) h) + (by + have h : ((childHL thetaAboveCell0000220030003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030003023) h) + (by + have h : ((childHH thetaAboveCell0000220030003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030003023) h)) + +theorem cover_subtree_a96993ac001b : + adaptiveCoverCheck 4 (childHH (childLL (childHH thetaAboveCell000022003000))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022003000))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030003030 + (by + have h : ((childLL thetaAboveCell0000220030003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030003030) h) + (by + have h : ((childLH thetaAboveCell0000220030003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030003030) h) + (by + have h : ((childHL thetaAboveCell0000220030003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030003030) h) + (by + have h : ((childHH thetaAboveCell0000220030003030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030003030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030003031 + (by + have h : ((childLL thetaAboveCell0000220030003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030003031) h) + (by + have h : ((childLH thetaAboveCell0000220030003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030003031) h) + (by + have h : ((childHL thetaAboveCell0000220030003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030003031) h) + (by + have h : ((childHH thetaAboveCell0000220030003031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030003031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030003032 + (by + have h : ((childLL thetaAboveCell0000220030003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030003032) h) + (by + have h : ((childLH thetaAboveCell0000220030003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030003032) h) + (by + have h : ((childHL thetaAboveCell0000220030003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030003032) h) + (by + have h : ((childHH thetaAboveCell0000220030003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030003032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030003033 + (by + have h : ((childLL thetaAboveCell0000220030003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030003033) h) + (by + have h : ((childLH thetaAboveCell0000220030003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030003033) h) + (by + have h : ((childHL thetaAboveCell0000220030003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030003033) h) + (by + have h : ((childHH thetaAboveCell0000220030003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030003033) h)) + +theorem cover_subtree_7c880bebec81 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022003000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022003000)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHH + thetaAboveCell000022003000))) + (by + have h : (thetaAboveCell0000220030003000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003000 h) + (by + have h : (thetaAboveCell0000220030003001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003001 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030003002 + (by + have h : ((childLL thetaAboveCell0000220030003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030003002) + h) + (by + have h : ((childLH thetaAboveCell0000220030003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030003002) + h) + (by + have h : ((childHL thetaAboveCell0000220030003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030003002) + h) + (by + have h : ((childHH thetaAboveCell0000220030003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030003002) + h)) + (by + have h : (thetaAboveCell0000220030003003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHH + thetaAboveCell000022003000))) + (by + have h : (thetaAboveCell0000220030003010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003010 h) + (by + have h : (thetaAboveCell0000220030003011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003011 h) + (by + have h : (thetaAboveCell0000220030003012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003012 h) + (by + have h : (thetaAboveCell0000220030003013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003013 h)) + cover_subtree_ee2f6d25ebfc + cover_subtree_a96993ac001b + +theorem cover_subtree_cde3dc3c4679 : + adaptiveCoverCheck 4 (childHL (childLH (childHH thetaAboveCell000022003000))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022003000))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030003120 + (by + have h : ((childLL thetaAboveCell0000220030003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030003120) h) + (by + have h : ((childLH thetaAboveCell0000220030003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030003120) h) + (by + have h : ((childHL thetaAboveCell0000220030003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030003120) h) + (by + have h : ((childHH thetaAboveCell0000220030003120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030003120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030003121 + (by + have h : ((childLL thetaAboveCell0000220030003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030003121) h) + (by + have h : ((childLH thetaAboveCell0000220030003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030003121) h) + (by + have h : ((childHL thetaAboveCell0000220030003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030003121) h) + (by + have h : ((childHH thetaAboveCell0000220030003121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030003121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030003122 + (by + have h : ((childLL thetaAboveCell0000220030003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030003122) h) + (by + have h : ((childLH thetaAboveCell0000220030003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030003122) h) + (by + have h : ((childHL thetaAboveCell0000220030003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030003122) h) + (by + have h : ((childHH thetaAboveCell0000220030003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030003122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030003123 + (by + have h : ((childLL thetaAboveCell0000220030003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030003123) h) + (by + have h : ((childLH thetaAboveCell0000220030003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030003123) h) + (by + have h : ((childHL thetaAboveCell0000220030003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030003123) h) + (by + have h : ((childHH thetaAboveCell0000220030003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030003123) h)) + +theorem cover_subtree_026c8979d7e8 : + adaptiveCoverCheck 4 (childHH (childLH (childHH thetaAboveCell000022003000))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022003000))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030003130 + (by + have h : ((childLL thetaAboveCell0000220030003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030003130) h) + (by + have h : ((childLH thetaAboveCell0000220030003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030003130) h) + (by + have h : ((childHL thetaAboveCell0000220030003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030003130) h) + (by + have h : ((childHH thetaAboveCell0000220030003130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030003130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030003131 + (by + have h : ((childLL thetaAboveCell0000220030003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030003131) h) + (by + have h : ((childLH thetaAboveCell0000220030003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030003131) h) + (by + have h : ((childHL thetaAboveCell0000220030003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030003131) h) + (by + have h : ((childHH thetaAboveCell0000220030003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030003131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030003132 + (by + have h : ((childLL thetaAboveCell0000220030003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030003132) h) + (by + have h : ((childLH thetaAboveCell0000220030003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030003132) h) + (by + have h : ((childHL thetaAboveCell0000220030003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030003132) h) + (by + have h : ((childHH thetaAboveCell0000220030003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030003132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030003133 + (by + have h : ((childLL thetaAboveCell0000220030003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030003133) h) + (by + have h : ((childLH thetaAboveCell0000220030003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030003133) h) + (by + have h : ((childHL thetaAboveCell0000220030003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030003133) h) + (by + have h : ((childHH thetaAboveCell0000220030003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030003133) h)) + +theorem cover_subtree_e9a5f301f08e : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022003000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022003000)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHH + thetaAboveCell000022003000))) + (by + have h : (thetaAboveCell0000220030003100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003100 h) + (by + have h : (thetaAboveCell0000220030003101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003101 h) + (by + have h : (thetaAboveCell0000220030003102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003102 h) + (by + have h : (thetaAboveCell0000220030003103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHH + thetaAboveCell000022003000))) + (by + have h : (thetaAboveCell0000220030003110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003110 h) + (by + have h : (thetaAboveCell0000220030003111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003111 h) + (by + have h : (thetaAboveCell0000220030003112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003112 h) + (by + have h : (thetaAboveCell0000220030003113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003113 h)) + cover_subtree_cde3dc3c4679 + cover_subtree_026c8979d7e8 + +theorem cover_subtree_6c8da8a57403 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022003000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022003000)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022003000))) + (by + have h : (thetaAboveCell0000220030003200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003200 h) + (by + have h : (thetaAboveCell0000220030003201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003201 h) + (by + have h : (thetaAboveCell0000220030003202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003202 h) + (by + have h : (thetaAboveCell0000220030003203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022003000))) + (by + have h : (thetaAboveCell0000220030003210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003210 h) + (by + have h : (thetaAboveCell0000220030003211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003211 h) + (by + have h : (thetaAboveCell0000220030003212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003212 h) + (by + have h : (thetaAboveCell0000220030003213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022003000))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022003000))) h) + +theorem cover_subtree_c7667f731e87 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022003000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022003000)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022003000))) + (by + have h : (thetaAboveCell0000220030003300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003300 h) + (by + have h : (thetaAboveCell0000220030003301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003301 h) + (by + have h : (thetaAboveCell0000220030003302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003302 h) + (by + have h : (thetaAboveCell0000220030003303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022003000))) + (by + have h : (thetaAboveCell0000220030003310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003310 h) + (by + have h : (thetaAboveCell0000220030003311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003311 h) + (by + have h : (thetaAboveCell0000220030003312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003312 h) + (by + have h : (thetaAboveCell0000220030003313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030003313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022003000))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022003000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022003000))) h) + +theorem cover_subtree_d916df227547 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022003000) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022003000) + cover_subtree_7c880bebec81 + cover_subtree_e9a5f301f08e + cover_subtree_6c8da8a57403 + cover_subtree_c7667f731e87 + +theorem cover_subtree_df29b2bfe6c5 : + adaptiveCoverCheck 7 thetaAboveCell000022003000 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022003000 + cover_subtree_98370144a0ae + cover_subtree_2b8c79c37576 + cover_subtree_b30ba9777925 + cover_subtree_d916df227547 + +theorem cover_subtree_b0fbdd86b439 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022003001) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022003001) + (by + have h : ((childLL (childLL thetaAboveCell000022003001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL thetaAboveCell000022003001)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022003001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL thetaAboveCell000022003001)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLL thetaAboveCell000022003001)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLL + thetaAboveCell000022003001))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLL + thetaAboveCell000022003001))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLL + thetaAboveCell000022003001))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLL + thetaAboveCell000022003001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLL thetaAboveCell000022003001)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLL + thetaAboveCell000022003001))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLL + thetaAboveCell000022003001))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLL + thetaAboveCell000022003001))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLL + thetaAboveCell000022003001))) h)) + +theorem cover_subtree_f6d73cfc8f96 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022003001) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022003001) + (by + have h : ((childLL (childLH thetaAboveCell000022003001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH thetaAboveCell000022003001)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022003001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH thetaAboveCell000022003001)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLH thetaAboveCell000022003001)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLH + thetaAboveCell000022003001))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLH + thetaAboveCell000022003001))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLH + thetaAboveCell000022003001))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLH + thetaAboveCell000022003001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLH thetaAboveCell000022003001)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLH + thetaAboveCell000022003001))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLH + thetaAboveCell000022003001))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLH + thetaAboveCell000022003001))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLH + thetaAboveCell000022003001))) h)) + +theorem cover_subtree_b01bf826b90b : + adaptiveCoverCheck 4 (childHL (childLL (childHL thetaAboveCell000022003001))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022003001))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030012020 + (by + have h : ((childLL thetaAboveCell0000220030012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030012020) h) + (by + have h : ((childLH thetaAboveCell0000220030012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030012020) h) + (by + have h : ((childHL thetaAboveCell0000220030012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030012020) h) + (by + have h : ((childHH thetaAboveCell0000220030012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030012020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030012021 + (by + have h : ((childLL thetaAboveCell0000220030012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030012021) h) + (by + have h : ((childLH thetaAboveCell0000220030012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030012021) h) + (by + have h : ((childHL thetaAboveCell0000220030012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030012021) h) + (by + have h : ((childHH thetaAboveCell0000220030012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030012021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030012022 + (by + have h : ((childLL thetaAboveCell0000220030012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030012022) h) + (by + have h : ((childLH thetaAboveCell0000220030012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030012022) h) + (by + have h : ((childHL thetaAboveCell0000220030012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030012022) h) + (by + have h : ((childHH thetaAboveCell0000220030012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030012022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030012023 + (by + have h : ((childLL thetaAboveCell0000220030012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030012023) h) + (by + have h : ((childLH thetaAboveCell0000220030012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030012023) h) + (by + have h : ((childHL thetaAboveCell0000220030012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030012023) h) + (by + have h : ((childHH thetaAboveCell0000220030012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030012023) h)) + +theorem cover_subtree_97058acb92ef : + adaptiveCoverCheck 4 (childHH (childLL (childHL thetaAboveCell000022003001))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022003001))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030012030 + (by + have h : ((childLL thetaAboveCell0000220030012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030012030) h) + (by + have h : ((childLH thetaAboveCell0000220030012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030012030) h) + (by + have h : ((childHL thetaAboveCell0000220030012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030012030) h) + (by + have h : ((childHH thetaAboveCell0000220030012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030012030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030012031 + (by + have h : ((childLL thetaAboveCell0000220030012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030012031) h) + (by + have h : ((childLH thetaAboveCell0000220030012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030012031) h) + (by + have h : ((childHL thetaAboveCell0000220030012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030012031) h) + (by + have h : ((childHH thetaAboveCell0000220030012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030012031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030012032 + (by + have h : ((childLL thetaAboveCell0000220030012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030012032) h) + (by + have h : ((childLH thetaAboveCell0000220030012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030012032) h) + (by + have h : ((childHL thetaAboveCell0000220030012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030012032) h) + (by + have h : ((childHH thetaAboveCell0000220030012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030012032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030012033 + (by + have h : ((childLL thetaAboveCell0000220030012033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030012033) h) + (by + have h : ((childLH thetaAboveCell0000220030012033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030012033) h) + (by + have h : ((childHL thetaAboveCell0000220030012033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030012033) h) + (by + have h : ((childHH thetaAboveCell0000220030012033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030012033) h)) + +theorem cover_subtree_6f0d223fa251 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022003001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022003001)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHL + thetaAboveCell000022003001))) + (by + have h : (thetaAboveCell0000220030012000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012000 h) + (by + have h : (thetaAboveCell0000220030012001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012001 h) + (by + have h : (thetaAboveCell0000220030012002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012002 h) + (by + have h : (thetaAboveCell0000220030012003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHL + thetaAboveCell000022003001))) + (by + have h : (thetaAboveCell0000220030012010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012010 h) + (by + have h : (thetaAboveCell0000220030012011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012011 h) + (by + have h : (thetaAboveCell0000220030012012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012012 h) + (by + have h : (thetaAboveCell0000220030012013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012013 h)) + cover_subtree_b01bf826b90b + cover_subtree_97058acb92ef + +theorem cover_subtree_587871b3f6fc : + adaptiveCoverCheck 4 (childHL (childLH (childHL thetaAboveCell000022003001))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022003001))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030012120 + (by + have h : ((childLL thetaAboveCell0000220030012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030012120) h) + (by + have h : ((childLH thetaAboveCell0000220030012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030012120) h) + (by + have h : ((childHL thetaAboveCell0000220030012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030012120) h) + (by + have h : ((childHH thetaAboveCell0000220030012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030012120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030012121 + (by + have h : ((childLL thetaAboveCell0000220030012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030012121) h) + (by + have h : ((childLH thetaAboveCell0000220030012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030012121) h) + (by + have h : ((childHL thetaAboveCell0000220030012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030012121) h) + (by + have h : ((childHH thetaAboveCell0000220030012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030012121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030012122 + (by + have h : ((childLL thetaAboveCell0000220030012122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030012122) h) + (by + have h : ((childLH thetaAboveCell0000220030012122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030012122) h) + (by + have h : ((childHL thetaAboveCell0000220030012122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030012122) h) + (by + have h : ((childHH thetaAboveCell0000220030012122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030012122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030012123 + (by + have h : ((childLL thetaAboveCell0000220030012123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030012123) h) + (by + have h : ((childLH thetaAboveCell0000220030012123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030012123) h) + (by + have h : ((childHL thetaAboveCell0000220030012123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030012123) h) + (by + have h : ((childHH thetaAboveCell0000220030012123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030012123) h)) + +theorem cover_subtree_665ba5a76616 : + adaptiveCoverCheck 4 (childHH (childLH (childHL thetaAboveCell000022003001))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022003001))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030012130 + (by + have h : ((childLL thetaAboveCell0000220030012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030012130) h) + (by + have h : ((childLH thetaAboveCell0000220030012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030012130) h) + (by + have h : ((childHL thetaAboveCell0000220030012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030012130) h) + (by + have h : ((childHH thetaAboveCell0000220030012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030012130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030012131 + (by + have h : ((childLL thetaAboveCell0000220030012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030012131) h) + (by + have h : ((childLH thetaAboveCell0000220030012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030012131) h) + (by + have h : ((childHL thetaAboveCell0000220030012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030012131) h) + (by + have h : ((childHH thetaAboveCell0000220030012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030012131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030012132 + (by + have h : ((childLL thetaAboveCell0000220030012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030012132) h) + (by + have h : ((childLH thetaAboveCell0000220030012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030012132) h) + (by + have h : ((childHL thetaAboveCell0000220030012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030012132) h) + (by + have h : ((childHH thetaAboveCell0000220030012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030012132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030012133 + (by + have h : ((childLL thetaAboveCell0000220030012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030012133) h) + (by + have h : ((childLH thetaAboveCell0000220030012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030012133) h) + (by + have h : ((childHL thetaAboveCell0000220030012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030012133) h) + (by + have h : ((childHH thetaAboveCell0000220030012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030012133) h)) + +theorem cover_subtree_17de4b0fb6aa : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022003001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022003001)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHL + thetaAboveCell000022003001))) + (by + have h : (thetaAboveCell0000220030012100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012100 h) + (by + have h : (thetaAboveCell0000220030012101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012101 h) + (by + have h : (thetaAboveCell0000220030012102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012102 h) + (by + have h : (thetaAboveCell0000220030012103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHL + thetaAboveCell000022003001))) + (by + have h : (thetaAboveCell0000220030012110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012110 h) + (by + have h : (thetaAboveCell0000220030012111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012111 h) + (by + have h : (thetaAboveCell0000220030012112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012112 h) + (by + have h : (thetaAboveCell0000220030012113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012113 h)) + cover_subtree_587871b3f6fc + cover_subtree_665ba5a76616 + +theorem cover_subtree_2dc0f946809c : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022003001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022003001)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022003001))) + (by + have h : (thetaAboveCell0000220030012200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012200 h) + (by + have h : (thetaAboveCell0000220030012201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012201 h) + (by + have h : (thetaAboveCell0000220030012202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012202 h) + (by + have h : (thetaAboveCell0000220030012203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022003001))) + (by + have h : (thetaAboveCell0000220030012210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012210 h) + (by + have h : (thetaAboveCell0000220030012211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012211 h) + (by + have h : (thetaAboveCell0000220030012212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012212 h) + (by + have h : (thetaAboveCell0000220030012213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022003001))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022003001))) h) + +theorem cover_subtree_9ae7d1f286db : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022003001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022003001)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022003001))) + (by + have h : (thetaAboveCell0000220030012300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012300 h) + (by + have h : (thetaAboveCell0000220030012301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012301 h) + (by + have h : (thetaAboveCell0000220030012302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012302 h) + (by + have h : (thetaAboveCell0000220030012303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022003001))) + (by + have h : (thetaAboveCell0000220030012310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012310 h) + (by + have h : (thetaAboveCell0000220030012311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012311 h) + (by + have h : (thetaAboveCell0000220030012312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012312 h) + (by + have h : (thetaAboveCell0000220030012313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030012313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022003001))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022003001))) h) + +theorem cover_subtree_6705ea0fc5a0 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022003001) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022003001) + cover_subtree_6f0d223fa251 + cover_subtree_17de4b0fb6aa + cover_subtree_2dc0f946809c + cover_subtree_9ae7d1f286db + +theorem cover_subtree_542c541386a0 : + adaptiveCoverCheck 4 (childHL (childLL (childHH thetaAboveCell000022003001))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022003001))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030013020 + (by + have h : ((childLL thetaAboveCell0000220030013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030013020) h) + (by + have h : ((childLH thetaAboveCell0000220030013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030013020) h) + (by + have h : ((childHL thetaAboveCell0000220030013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030013020) h) + (by + have h : ((childHH thetaAboveCell0000220030013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030013020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030013021 + (by + have h : ((childLL thetaAboveCell0000220030013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030013021) h) + (by + have h : ((childLH thetaAboveCell0000220030013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030013021) h) + (by + have h : ((childHL thetaAboveCell0000220030013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030013021) h) + (by + have h : ((childHH thetaAboveCell0000220030013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030013021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030013022 + (by + have h : ((childLL thetaAboveCell0000220030013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030013022) h) + (by + have h : ((childLH thetaAboveCell0000220030013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030013022) h) + (by + have h : ((childHL thetaAboveCell0000220030013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030013022) h) + (by + have h : ((childHH thetaAboveCell0000220030013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030013022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030013023 + (by + have h : ((childLL thetaAboveCell0000220030013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030013023) h) + (by + have h : ((childLH thetaAboveCell0000220030013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030013023) h) + (by + have h : ((childHL thetaAboveCell0000220030013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030013023) h) + (by + have h : ((childHH thetaAboveCell0000220030013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030013023) h)) + +theorem cover_subtree_95991c39b4ae : + adaptiveCoverCheck 4 (childHH (childLL (childHH thetaAboveCell000022003001))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022003001))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030013030 + (by + have h : ((childLL thetaAboveCell0000220030013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030013030) h) + (by + have h : ((childLH thetaAboveCell0000220030013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030013030) h) + (by + have h : ((childHL thetaAboveCell0000220030013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030013030) h) + (by + have h : ((childHH thetaAboveCell0000220030013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030013030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030013031 + (by + have h : ((childLL thetaAboveCell0000220030013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030013031) h) + (by + have h : ((childLH thetaAboveCell0000220030013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030013031) h) + (by + have h : ((childHL thetaAboveCell0000220030013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030013031) h) + (by + have h : ((childHH thetaAboveCell0000220030013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030013031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030013032 + (by + have h : ((childLL thetaAboveCell0000220030013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030013032) h) + (by + have h : ((childLH thetaAboveCell0000220030013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030013032) h) + (by + have h : ((childHL thetaAboveCell0000220030013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030013032) h) + (by + have h : ((childHH thetaAboveCell0000220030013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030013032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030013033 + (by + have h : ((childLL thetaAboveCell0000220030013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030013033) h) + (by + have h : ((childLH thetaAboveCell0000220030013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030013033) h) + (by + have h : ((childHL thetaAboveCell0000220030013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030013033) h) + (by + have h : ((childHH thetaAboveCell0000220030013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030013033) h)) + +theorem cover_subtree_f11aed5a1b39 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022003001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022003001)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHH + thetaAboveCell000022003001))) + (by + have h : (thetaAboveCell0000220030013000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013000 h) + (by + have h : (thetaAboveCell0000220030013001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013001 h) + (by + have h : (thetaAboveCell0000220030013002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013002 h) + (by + have h : (thetaAboveCell0000220030013003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHH + thetaAboveCell000022003001))) + (by + have h : (thetaAboveCell0000220030013010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013010 h) + (by + have h : (thetaAboveCell0000220030013011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013011 h) + (by + have h : (thetaAboveCell0000220030013012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013012 h) + (by + have h : (thetaAboveCell0000220030013013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013013 h)) + cover_subtree_542c541386a0 + cover_subtree_95991c39b4ae + +theorem cover_subtree_36cc60506fd2 : + adaptiveCoverCheck 4 (childHL (childLH (childHH thetaAboveCell000022003001))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022003001))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030013120 + (by + have h : ((childLL thetaAboveCell0000220030013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030013120) h) + (by + have h : ((childLH thetaAboveCell0000220030013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030013120) h) + (by + have h : ((childHL thetaAboveCell0000220030013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030013120) h) + (by + have h : ((childHH thetaAboveCell0000220030013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030013120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030013121 + (by + have h : ((childLL thetaAboveCell0000220030013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030013121) h) + (by + have h : ((childLH thetaAboveCell0000220030013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030013121) h) + (by + have h : ((childHL thetaAboveCell0000220030013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030013121) h) + (by + have h : ((childHH thetaAboveCell0000220030013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030013121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030013122 + (by + have h : ((childLL thetaAboveCell0000220030013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030013122) h) + (by + have h : ((childLH thetaAboveCell0000220030013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030013122) h) + (by + have h : ((childHL thetaAboveCell0000220030013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030013122) h) + (by + have h : ((childHH thetaAboveCell0000220030013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030013122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030013123 + (by + have h : ((childLL thetaAboveCell0000220030013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030013123) h) + (by + have h : ((childLH thetaAboveCell0000220030013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030013123) h) + (by + have h : ((childHL thetaAboveCell0000220030013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030013123) h) + (by + have h : ((childHH thetaAboveCell0000220030013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030013123) h)) + +theorem cover_subtree_3db2622a8526 : + adaptiveCoverCheck 4 (childHH (childLH (childHH thetaAboveCell000022003001))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022003001))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030013130 + (by + have h : ((childLL thetaAboveCell0000220030013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030013130) h) + (by + have h : ((childLH thetaAboveCell0000220030013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030013130) h) + (by + have h : ((childHL thetaAboveCell0000220030013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030013130) h) + (by + have h : ((childHH thetaAboveCell0000220030013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030013130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030013131 + (by + have h : ((childLL thetaAboveCell0000220030013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030013131) h) + (by + have h : ((childLH thetaAboveCell0000220030013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030013131) h) + (by + have h : ((childHL thetaAboveCell0000220030013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030013131) h) + (by + have h : ((childHH thetaAboveCell0000220030013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030013131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030013132 + (by + have h : ((childLL thetaAboveCell0000220030013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030013132) h) + (by + have h : ((childLH thetaAboveCell0000220030013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030013132) h) + (by + have h : ((childHL thetaAboveCell0000220030013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030013132) h) + (by + have h : ((childHH thetaAboveCell0000220030013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030013132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030013133 + (by + have h : ((childLL thetaAboveCell0000220030013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030013133) h) + (by + have h : ((childLH thetaAboveCell0000220030013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030013133) h) + (by + have h : ((childHL thetaAboveCell0000220030013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030013133) h) + (by + have h : ((childHH thetaAboveCell0000220030013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030013133) h)) + +theorem cover_subtree_13cfd42cc1e7 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022003001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022003001)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHH + thetaAboveCell000022003001))) + (by + have h : (thetaAboveCell0000220030013100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013100 h) + (by + have h : (thetaAboveCell0000220030013101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013101 h) + (by + have h : (thetaAboveCell0000220030013102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013102 h) + (by + have h : (thetaAboveCell0000220030013103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHH + thetaAboveCell000022003001))) + (by + have h : (thetaAboveCell0000220030013110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013110 h) + (by + have h : (thetaAboveCell0000220030013111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013111 h) + (by + have h : (thetaAboveCell0000220030013112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013112 h) + (by + have h : (thetaAboveCell0000220030013113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013113 h)) + cover_subtree_36cc60506fd2 + cover_subtree_3db2622a8526 + +theorem cover_subtree_49af2ce5bec1 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022003001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022003001)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022003001))) + (by + have h : (thetaAboveCell0000220030013200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013200 h) + (by + have h : (thetaAboveCell0000220030013201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013201 h) + (by + have h : (thetaAboveCell0000220030013202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013202 h) + (by + have h : (thetaAboveCell0000220030013203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022003001))) + (by + have h : (thetaAboveCell0000220030013210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013210 h) + (by + have h : (thetaAboveCell0000220030013211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013211 h) + (by + have h : (thetaAboveCell0000220030013212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013212 h) + (by + have h : (thetaAboveCell0000220030013213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022003001))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022003001))) h) + +theorem cover_subtree_8008b2d13d89 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022003001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022003001)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022003001))) + (by + have h : (thetaAboveCell0000220030013300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013300 h) + (by + have h : (thetaAboveCell0000220030013301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013301 h) + (by + have h : (thetaAboveCell0000220030013302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013302 h) + (by + have h : (thetaAboveCell0000220030013303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022003001))) + (by + have h : (thetaAboveCell0000220030013310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013310 h) + (by + have h : (thetaAboveCell0000220030013311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013311 h) + (by + have h : (thetaAboveCell0000220030013312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013312 h) + (by + have h : (thetaAboveCell0000220030013313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030013313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022003001))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022003001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022003001))) h) + +theorem cover_subtree_bb781a080715 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022003001) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022003001) + cover_subtree_f11aed5a1b39 + cover_subtree_13cfd42cc1e7 + cover_subtree_49af2ce5bec1 + cover_subtree_8008b2d13d89 + +theorem cover_subtree_77cd353d9ac1 : + adaptiveCoverCheck 7 thetaAboveCell000022003001 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022003001 + cover_subtree_b0fbdd86b439 + cover_subtree_f6d73cfc8f96 + cover_subtree_6705ea0fc5a0 + cover_subtree_bb781a080715 + +theorem cover_subtree_728def59c89b : + adaptiveCoverCheck 7 thetaAboveCell000022003002 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022003002 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022003002) + (by + have h : ((childLL (childLL thetaAboveCell000022003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022003002)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022003002)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022003002)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022003002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022003002) + (by + have h : ((childLL (childLH thetaAboveCell000022003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022003002)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022003002)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022003002)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022003002)) h)) + (by + have h : ((childHL thetaAboveCell000022003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022003002) h) + (by + have h : ((childHH thetaAboveCell000022003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022003002) h) + +theorem cover_subtree_14ed04390cca : + adaptiveCoverCheck 7 thetaAboveCell000022003003 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022003003 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022003003) + (by + have h : ((childLL (childLL thetaAboveCell000022003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022003003)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022003003)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022003003)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022003003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022003003) + (by + have h : ((childLL (childLH thetaAboveCell000022003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022003003)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022003003)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022003003)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022003003)) h)) + (by + have h : ((childHL thetaAboveCell000022003003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022003003) h) + (by + have h : ((childHH thetaAboveCell000022003003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022003003) h) + +theorem cover_subtree_f2d4d32c5725 : + adaptiveCoverCheck 8 (childLL (childLL (childHH thetaAboveCell00002200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH thetaAboveCell00002200))) + cover_subtree_df29b2bfe6c5 + cover_subtree_77cd353d9ac1 + cover_subtree_728def59c89b + cover_subtree_14ed04390cca + +theorem cover_subtree_6de0f218ce5a : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022003010) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022003010) + (by + have h : ((childLL (childLL thetaAboveCell000022003010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL thetaAboveCell000022003010)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022003010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL thetaAboveCell000022003010)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLL thetaAboveCell000022003010)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLL + thetaAboveCell000022003010))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLL + thetaAboveCell000022003010))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLL + thetaAboveCell000022003010))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLL + thetaAboveCell000022003010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLL thetaAboveCell000022003010)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLL + thetaAboveCell000022003010))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLL + thetaAboveCell000022003010))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLL + thetaAboveCell000022003010))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLL + thetaAboveCell000022003010))) h)) + +theorem cover_subtree_09a87211ea0e : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022003010) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022003010) + (by + have h : ((childLL (childLH thetaAboveCell000022003010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH thetaAboveCell000022003010)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022003010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH thetaAboveCell000022003010)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLH thetaAboveCell000022003010)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLH + thetaAboveCell000022003010))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLH + thetaAboveCell000022003010))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLH + thetaAboveCell000022003010))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLH + thetaAboveCell000022003010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLH thetaAboveCell000022003010)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLH + thetaAboveCell000022003010))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLH + thetaAboveCell000022003010))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLH + thetaAboveCell000022003010))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLH + thetaAboveCell000022003010))) h)) + +theorem cover_subtree_1222a4bbaf46 : + adaptiveCoverCheck 4 (childHL (childLL (childHL thetaAboveCell000022003010))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022003010))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030102020 + (by + have h : ((childLL thetaAboveCell0000220030102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030102020) h) + (by + have h : ((childLH thetaAboveCell0000220030102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030102020) h) + (by + have h : ((childHL thetaAboveCell0000220030102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030102020) h) + (by + have h : ((childHH thetaAboveCell0000220030102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030102020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030102021 + (by + have h : ((childLL thetaAboveCell0000220030102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030102021) h) + (by + have h : ((childLH thetaAboveCell0000220030102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030102021) h) + (by + have h : ((childHL thetaAboveCell0000220030102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030102021) h) + (by + have h : ((childHH thetaAboveCell0000220030102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030102021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030102022 + (by + have h : ((childLL thetaAboveCell0000220030102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030102022) h) + (by + have h : ((childLH thetaAboveCell0000220030102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030102022) h) + (by + have h : ((childHL thetaAboveCell0000220030102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030102022) h) + (by + have h : ((childHH thetaAboveCell0000220030102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030102022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030102023 + (by + have h : ((childLL thetaAboveCell0000220030102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030102023) h) + (by + have h : ((childLH thetaAboveCell0000220030102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030102023) h) + (by + have h : ((childHL thetaAboveCell0000220030102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030102023) h) + (by + have h : ((childHH thetaAboveCell0000220030102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030102023) h)) + +theorem cover_subtree_f813068a0ab7 : + adaptiveCoverCheck 4 (childHH (childLL (childHL thetaAboveCell000022003010))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022003010))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030102030 + (by + have h : ((childLL thetaAboveCell0000220030102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030102030) h) + (by + have h : ((childLH thetaAboveCell0000220030102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030102030) h) + (by + have h : ((childHL thetaAboveCell0000220030102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030102030) h) + (by + have h : ((childHH thetaAboveCell0000220030102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030102030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030102031 + (by + have h : ((childLL thetaAboveCell0000220030102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030102031) h) + (by + have h : ((childLH thetaAboveCell0000220030102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030102031) h) + (by + have h : ((childHL thetaAboveCell0000220030102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030102031) h) + (by + have h : ((childHH thetaAboveCell0000220030102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030102031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030102032 + (by + have h : ((childLL thetaAboveCell0000220030102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030102032) h) + (by + have h : ((childLH thetaAboveCell0000220030102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030102032) h) + (by + have h : ((childHL thetaAboveCell0000220030102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030102032) h) + (by + have h : ((childHH thetaAboveCell0000220030102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030102032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030102033 + (by + have h : ((childLL thetaAboveCell0000220030102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030102033) h) + (by + have h : ((childLH thetaAboveCell0000220030102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030102033) h) + (by + have h : ((childHL thetaAboveCell0000220030102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030102033) h) + (by + have h : ((childHH thetaAboveCell0000220030102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030102033) h)) + +theorem cover_subtree_4a16ed9c24b8 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022003010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022003010)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHL + thetaAboveCell000022003010))) + (by + have h : (thetaAboveCell0000220030102000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102000 h) + (by + have h : (thetaAboveCell0000220030102001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102001 h) + (by + have h : (thetaAboveCell0000220030102002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102002 h) + (by + have h : (thetaAboveCell0000220030102003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHL + thetaAboveCell000022003010))) + (by + have h : (thetaAboveCell0000220030102010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102010 h) + (by + have h : (thetaAboveCell0000220030102011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102011 h) + (by + have h : (thetaAboveCell0000220030102012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102012 h) + (by + have h : (thetaAboveCell0000220030102013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102013 h)) + cover_subtree_1222a4bbaf46 + cover_subtree_f813068a0ab7 + +theorem cover_subtree_f9b60e2c6701 : + adaptiveCoverCheck 4 (childHL (childLH (childHL thetaAboveCell000022003010))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022003010))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030102120 + (by + have h : ((childLL thetaAboveCell0000220030102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030102120) h) + (by + have h : ((childLH thetaAboveCell0000220030102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030102120) h) + (by + have h : ((childHL thetaAboveCell0000220030102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030102120) h) + (by + have h : ((childHH thetaAboveCell0000220030102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030102120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030102121 + (by + have h : ((childLL thetaAboveCell0000220030102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030102121) h) + (by + have h : ((childLH thetaAboveCell0000220030102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030102121) h) + (by + have h : ((childHL thetaAboveCell0000220030102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030102121) h) + (by + have h : ((childHH thetaAboveCell0000220030102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030102121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030102122 + (by + have h : ((childLL thetaAboveCell0000220030102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030102122) h) + (by + have h : ((childLH thetaAboveCell0000220030102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030102122) h) + (by + have h : ((childHL thetaAboveCell0000220030102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030102122) h) + (by + have h : ((childHH thetaAboveCell0000220030102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030102122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030102123 + (by + have h : ((childLL thetaAboveCell0000220030102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030102123) h) + (by + have h : ((childLH thetaAboveCell0000220030102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030102123) h) + (by + have h : ((childHL thetaAboveCell0000220030102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030102123) h) + (by + have h : ((childHH thetaAboveCell0000220030102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030102123) h)) + +theorem cover_subtree_ccf472fb2f11 : + adaptiveCoverCheck 4 (childHH (childLH (childHL thetaAboveCell000022003010))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022003010))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030102130 + (by + have h : ((childLL thetaAboveCell0000220030102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030102130) h) + (by + have h : ((childLH thetaAboveCell0000220030102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030102130) h) + (by + have h : ((childHL thetaAboveCell0000220030102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030102130) h) + (by + have h : ((childHH thetaAboveCell0000220030102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030102130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030102131 + (by + have h : ((childLL thetaAboveCell0000220030102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030102131) h) + (by + have h : ((childLH thetaAboveCell0000220030102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030102131) h) + (by + have h : ((childHL thetaAboveCell0000220030102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030102131) h) + (by + have h : ((childHH thetaAboveCell0000220030102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030102131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030102132 + (by + have h : ((childLL thetaAboveCell0000220030102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030102132) h) + (by + have h : ((childLH thetaAboveCell0000220030102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030102132) h) + (by + have h : ((childHL thetaAboveCell0000220030102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030102132) h) + (by + have h : ((childHH thetaAboveCell0000220030102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030102132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030102133 + (by + have h : ((childLL thetaAboveCell0000220030102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030102133) h) + (by + have h : ((childLH thetaAboveCell0000220030102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030102133) h) + (by + have h : ((childHL thetaAboveCell0000220030102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030102133) h) + (by + have h : ((childHH thetaAboveCell0000220030102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030102133) h)) + +theorem cover_subtree_7315e35a4c15 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022003010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022003010)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHL + thetaAboveCell000022003010))) + (by + have h : (thetaAboveCell0000220030102100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102100 h) + (by + have h : (thetaAboveCell0000220030102101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102101 h) + (by + have h : (thetaAboveCell0000220030102102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102102 h) + (by + have h : (thetaAboveCell0000220030102103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHL + thetaAboveCell000022003010))) + (by + have h : (thetaAboveCell0000220030102110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102110 h) + (by + have h : (thetaAboveCell0000220030102111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102111 h) + (by + have h : (thetaAboveCell0000220030102112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102112 h) + (by + have h : (thetaAboveCell0000220030102113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102113 h)) + cover_subtree_f9b60e2c6701 + cover_subtree_ccf472fb2f11 + +theorem cover_subtree_5d09bb0853a8 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022003010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022003010)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022003010))) + (by + have h : (thetaAboveCell0000220030102200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102200 h) + (by + have h : (thetaAboveCell0000220030102201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102201 h) + (by + have h : (thetaAboveCell0000220030102202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102202 h) + (by + have h : (thetaAboveCell0000220030102203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022003010))) + (by + have h : (thetaAboveCell0000220030102210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102210 h) + (by + have h : (thetaAboveCell0000220030102211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102211 h) + (by + have h : (thetaAboveCell0000220030102212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102212 h) + (by + have h : (thetaAboveCell0000220030102213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022003010))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022003010))) h) + +theorem cover_subtree_b82287a58720 : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022003010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022003010)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022003010))) + (by + have h : (thetaAboveCell0000220030102300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102300 h) + (by + have h : (thetaAboveCell0000220030102301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102301 h) + (by + have h : (thetaAboveCell0000220030102302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102302 h) + (by + have h : (thetaAboveCell0000220030102303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022003010))) + (by + have h : (thetaAboveCell0000220030102310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102310 h) + (by + have h : (thetaAboveCell0000220030102311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102311 h) + (by + have h : (thetaAboveCell0000220030102312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102312 h) + (by + have h : (thetaAboveCell0000220030102313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030102313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022003010))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022003010))) h) + +theorem cover_subtree_8668bec96df6 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022003010) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022003010) + cover_subtree_4a16ed9c24b8 + cover_subtree_7315e35a4c15 + cover_subtree_5d09bb0853a8 + cover_subtree_b82287a58720 + +theorem cover_subtree_f7763668c82e : + adaptiveCoverCheck 4 (childHL (childLL (childHH thetaAboveCell000022003010))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022003010))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103020 + (by + have h : ((childLL thetaAboveCell0000220030103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103020) h) + (by + have h : ((childLH thetaAboveCell0000220030103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103020) h) + (by + have h : ((childHL thetaAboveCell0000220030103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103020) h) + (by + have h : ((childHH thetaAboveCell0000220030103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103021 + (by + have h : ((childLL thetaAboveCell0000220030103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103021) h) + (by + have h : ((childLH thetaAboveCell0000220030103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103021) h) + (by + have h : ((childHL thetaAboveCell0000220030103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103021) h) + (by + have h : ((childHH thetaAboveCell0000220030103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103022 + (by + have h : ((childLL thetaAboveCell0000220030103022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103022) h) + (by + have h : ((childLH thetaAboveCell0000220030103022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103022) h) + (by + have h : ((childHL thetaAboveCell0000220030103022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103022) h) + (by + have h : ((childHH thetaAboveCell0000220030103022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103023 + (by + have h : ((childLL thetaAboveCell0000220030103023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103023) h) + (by + have h : ((childLH thetaAboveCell0000220030103023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103023) h) + (by + have h : ((childHL thetaAboveCell0000220030103023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103023) h) + (by + have h : ((childHH thetaAboveCell0000220030103023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103023) h)) + +theorem cover_subtree_8b7188d14517 : + adaptiveCoverCheck 4 (childHH (childLL (childHH thetaAboveCell000022003010))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022003010))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103030 + (by + have h : ((childLL thetaAboveCell0000220030103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103030) h) + (by + have h : ((childLH thetaAboveCell0000220030103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103030) h) + (by + have h : ((childHL thetaAboveCell0000220030103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103030) h) + (by + have h : ((childHH thetaAboveCell0000220030103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103031 + (by + have h : ((childLL thetaAboveCell0000220030103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103031) h) + (by + have h : ((childLH thetaAboveCell0000220030103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103031) h) + (by + have h : ((childHL thetaAboveCell0000220030103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103031) h) + (by + have h : ((childHH thetaAboveCell0000220030103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103032 + (by + have h : ((childLL thetaAboveCell0000220030103032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103032) h) + (by + have h : ((childLH thetaAboveCell0000220030103032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103032) h) + (by + have h : ((childHL thetaAboveCell0000220030103032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103032) h) + (by + have h : ((childHH thetaAboveCell0000220030103032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103033 + (by + have h : ((childLL thetaAboveCell0000220030103033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103033) h) + (by + have h : ((childLH thetaAboveCell0000220030103033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103033) h) + (by + have h : ((childHL thetaAboveCell0000220030103033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103033) h) + (by + have h : ((childHH thetaAboveCell0000220030103033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103033) h)) + +theorem cover_subtree_7cb6055f8e6a : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022003010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022003010)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHH + thetaAboveCell000022003010))) + (by + have h : (thetaAboveCell0000220030103000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103000 h) + (by + have h : (thetaAboveCell0000220030103001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103001 h) + (by + have h : (thetaAboveCell0000220030103002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103002 h) + (by + have h : (thetaAboveCell0000220030103003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHH + thetaAboveCell000022003010))) + (by + have h : (thetaAboveCell0000220030103010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103010 h) + (by + have h : (thetaAboveCell0000220030103011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103011 h) + (by + have h : (thetaAboveCell0000220030103012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103012 h) + (by + have h : (thetaAboveCell0000220030103013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103013 h)) + cover_subtree_f7763668c82e + cover_subtree_8b7188d14517 + +theorem cover_subtree_d99c2055d296 : + adaptiveCoverCheck 4 (childHL (childLH (childHH thetaAboveCell000022003010))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022003010))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103120 + (by + have h : ((childLL thetaAboveCell0000220030103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103120) h) + (by + have h : ((childLH thetaAboveCell0000220030103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103120) h) + (by + have h : ((childHL thetaAboveCell0000220030103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103120) h) + (by + have h : ((childHH thetaAboveCell0000220030103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103121 + (by + have h : ((childLL thetaAboveCell0000220030103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103121) h) + (by + have h : ((childLH thetaAboveCell0000220030103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103121) h) + (by + have h : ((childHL thetaAboveCell0000220030103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103121) h) + (by + have h : ((childHH thetaAboveCell0000220030103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103122 + (by + have h : ((childLL thetaAboveCell0000220030103122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103122) h) + (by + have h : ((childLH thetaAboveCell0000220030103122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103122) h) + (by + have h : ((childHL thetaAboveCell0000220030103122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103122) h) + (by + have h : ((childHH thetaAboveCell0000220030103122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103123 + (by + have h : ((childLL thetaAboveCell0000220030103123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103123) h) + (by + have h : ((childLH thetaAboveCell0000220030103123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103123) h) + (by + have h : ((childHL thetaAboveCell0000220030103123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103123) h) + (by + have h : ((childHH thetaAboveCell0000220030103123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103123) h)) + +theorem cover_subtree_a6b3a4adb113 : + adaptiveCoverCheck 4 (childHH (childLH (childHH thetaAboveCell000022003010))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022003010))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103130 + (by + have h : ((childLL thetaAboveCell0000220030103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103130) h) + (by + have h : ((childLH thetaAboveCell0000220030103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103130) h) + (by + have h : ((childHL thetaAboveCell0000220030103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103130) h) + (by + have h : ((childHH thetaAboveCell0000220030103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103131 + (by + have h : ((childLL thetaAboveCell0000220030103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103131) h) + (by + have h : ((childLH thetaAboveCell0000220030103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103131) h) + (by + have h : ((childHL thetaAboveCell0000220030103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103131) h) + (by + have h : ((childHH thetaAboveCell0000220030103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103132 + (by + have h : ((childLL thetaAboveCell0000220030103132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103132) h) + (by + have h : ((childLH thetaAboveCell0000220030103132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103132) h) + (by + have h : ((childHL thetaAboveCell0000220030103132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103132) h) + (by + have h : ((childHH thetaAboveCell0000220030103132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103133 + (by + have h : ((childLL thetaAboveCell0000220030103133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103133) h) + (by + have h : ((childLH thetaAboveCell0000220030103133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103133) h) + (by + have h : ((childHL thetaAboveCell0000220030103133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103133) h) + (by + have h : ((childHH thetaAboveCell0000220030103133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103133) h)) + +theorem cover_subtree_b64accded341 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022003010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022003010)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHH + thetaAboveCell000022003010))) + (by + have h : (thetaAboveCell0000220030103100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103100 h) + (by + have h : (thetaAboveCell0000220030103101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103101 h) + (by + have h : (thetaAboveCell0000220030103102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103102 h) + (by + have h : (thetaAboveCell0000220030103103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHH + thetaAboveCell000022003010))) + (by + have h : (thetaAboveCell0000220030103110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103110 h) + (by + have h : (thetaAboveCell0000220030103111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103111 h) + (by + have h : (thetaAboveCell0000220030103112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103112 h) + (by + have h : (thetaAboveCell0000220030103113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103113 h)) + cover_subtree_d99c2055d296 + cover_subtree_a6b3a4adb113 + +theorem cover_subtree_cf9e35b58ea8 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022003010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022003010)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022003010))) + (by + have h : (thetaAboveCell0000220030103200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103200 h) + (by + have h : (thetaAboveCell0000220030103201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103201 h) + (by + have h : (thetaAboveCell0000220030103202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103202 h) + (by + have h : (thetaAboveCell0000220030103203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022003010))) + (by + have h : (thetaAboveCell0000220030103210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103210 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103211 + (by + have h : ((childLL thetaAboveCell0000220030103211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103211) + h) + (by + have h : ((childLH thetaAboveCell0000220030103211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103211) + h) + (by + have h : ((childHL thetaAboveCell0000220030103211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103211) + h) + (by + have h : ((childHH thetaAboveCell0000220030103211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103211) + h)) + (by + have h : (thetaAboveCell0000220030103212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103212 h) + (by + have h : (thetaAboveCell0000220030103213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022003010))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022003010))) h) + +theorem cover_subtree_f351407ea291 : + adaptiveCoverCheck 4 (childLL (childHH (childHH thetaAboveCell000022003010))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022003010))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103300 + (by + have h : ((childLL thetaAboveCell0000220030103300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103300) h) + (by + have h : ((childLH thetaAboveCell0000220030103300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103300) h) + (by + have h : ((childHL thetaAboveCell0000220030103300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103300) h) + (by + have h : ((childHH thetaAboveCell0000220030103300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103300) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103301 + (by + have h : ((childLL thetaAboveCell0000220030103301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103301) h) + (by + have h : ((childLH thetaAboveCell0000220030103301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103301) h) + (by + have h : ((childHL thetaAboveCell0000220030103301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103301) h) + (by + have h : ((childHH thetaAboveCell0000220030103301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103301) h)) + (by + have h : (thetaAboveCell0000220030103302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103302 h) + (by + have h : (thetaAboveCell0000220030103303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103303 h) + +theorem cover_subtree_0ec74c623b25 : + adaptiveCoverCheck 4 (childLH (childHH (childHH thetaAboveCell000022003010))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022003010))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103310 + (by + have h : ((childLL thetaAboveCell0000220030103310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103310) h) + (by + have h : ((childLH thetaAboveCell0000220030103310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103310) h) + (by + have h : ((childHL thetaAboveCell0000220030103310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103310) h) + (by + have h : ((childHH thetaAboveCell0000220030103310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103310) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030103311 + (by + have h : ((childLL thetaAboveCell0000220030103311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030103311) h) + (by + have h : ((childLH thetaAboveCell0000220030103311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030103311) h) + (by + have h : ((childHL thetaAboveCell0000220030103311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030103311) h) + (by + have h : ((childHH thetaAboveCell0000220030103311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030103311) h)) + (by + have h : (thetaAboveCell0000220030103312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103312 h) + (by + have h : (thetaAboveCell0000220030103313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030103313 h) + +theorem cover_subtree_5b0864ff4bca : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022003010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022003010)) + cover_subtree_f351407ea291 + cover_subtree_0ec74c623b25 + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022003010))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022003010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022003010))) h) + +theorem cover_subtree_deeae114ec93 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022003010) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022003010) + cover_subtree_7cb6055f8e6a + cover_subtree_b64accded341 + cover_subtree_cf9e35b58ea8 + cover_subtree_5b0864ff4bca + +theorem cover_subtree_591cadb839e1 : + adaptiveCoverCheck 7 thetaAboveCell000022003010 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022003010 + cover_subtree_6de0f218ce5a + cover_subtree_09a87211ea0e + cover_subtree_8668bec96df6 + cover_subtree_deeae114ec93 + +theorem cover_subtree_30fdf3821f37 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022003011) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022003011) + (by + have h : ((childLL (childLL thetaAboveCell000022003011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL thetaAboveCell000022003011)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022003011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL thetaAboveCell000022003011)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLL thetaAboveCell000022003011)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLL + thetaAboveCell000022003011))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLL + thetaAboveCell000022003011))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLL + thetaAboveCell000022003011))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLL + thetaAboveCell000022003011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLL thetaAboveCell000022003011)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLL + thetaAboveCell000022003011))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLL + thetaAboveCell000022003011))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLL + thetaAboveCell000022003011))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLL + thetaAboveCell000022003011))) h)) + +theorem cover_subtree_c04a84ca091e : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022003011) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022003011) + (by + have h : ((childLL (childLH thetaAboveCell000022003011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH thetaAboveCell000022003011)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022003011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH thetaAboveCell000022003011)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLH thetaAboveCell000022003011)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLH + thetaAboveCell000022003011))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLH + thetaAboveCell000022003011))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLH + thetaAboveCell000022003011))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLH + thetaAboveCell000022003011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLH thetaAboveCell000022003011)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLH + thetaAboveCell000022003011))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLH + thetaAboveCell000022003011))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLH + thetaAboveCell000022003011))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLH + thetaAboveCell000022003011))) h)) + +theorem cover_subtree_665b5a9e2762 : + adaptiveCoverCheck 4 (childHL (childLL (childHL thetaAboveCell000022003011))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022003011))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112020 + (by + have h : ((childLL thetaAboveCell0000220030112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112020) h) + (by + have h : ((childLH thetaAboveCell0000220030112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112020) h) + (by + have h : ((childHL thetaAboveCell0000220030112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112020) h) + (by + have h : ((childHH thetaAboveCell0000220030112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112021 + (by + have h : ((childLL thetaAboveCell0000220030112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112021) h) + (by + have h : ((childLH thetaAboveCell0000220030112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112021) h) + (by + have h : ((childHL thetaAboveCell0000220030112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112021) h) + (by + have h : ((childHH thetaAboveCell0000220030112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112022 + (by + have h : ((childLL thetaAboveCell0000220030112022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112022) h) + (by + have h : ((childLH thetaAboveCell0000220030112022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112022) h) + (by + have h : ((childHL thetaAboveCell0000220030112022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112022) h) + (by + have h : ((childHH thetaAboveCell0000220030112022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112023 + (by + have h : ((childLL thetaAboveCell0000220030112023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112023) h) + (by + have h : ((childLH thetaAboveCell0000220030112023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112023) h) + (by + have h : ((childHL thetaAboveCell0000220030112023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112023) h) + (by + have h : ((childHH thetaAboveCell0000220030112023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112023) h)) + +theorem cover_subtree_5b6db01eac76 : + adaptiveCoverCheck 4 (childHH (childLL (childHL thetaAboveCell000022003011))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022003011))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112030 + (by + have h : ((childLL thetaAboveCell0000220030112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112030) h) + (by + have h : ((childLH thetaAboveCell0000220030112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112030) h) + (by + have h : ((childHL thetaAboveCell0000220030112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112030) h) + (by + have h : ((childHH thetaAboveCell0000220030112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112031 + (by + have h : ((childLL thetaAboveCell0000220030112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112031) h) + (by + have h : ((childLH thetaAboveCell0000220030112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112031) h) + (by + have h : ((childHL thetaAboveCell0000220030112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112031) h) + (by + have h : ((childHH thetaAboveCell0000220030112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112032 + (by + have h : ((childLL thetaAboveCell0000220030112032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112032) h) + (by + have h : ((childLH thetaAboveCell0000220030112032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112032) h) + (by + have h : ((childHL thetaAboveCell0000220030112032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112032) h) + (by + have h : ((childHH thetaAboveCell0000220030112032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112033 + (by + have h : ((childLL thetaAboveCell0000220030112033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112033) h) + (by + have h : ((childLH thetaAboveCell0000220030112033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112033) h) + (by + have h : ((childHL thetaAboveCell0000220030112033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112033) h) + (by + have h : ((childHH thetaAboveCell0000220030112033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112033) h)) + +theorem cover_subtree_f193f827132f : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022003011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022003011)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHL + thetaAboveCell000022003011))) + (by + have h : (thetaAboveCell0000220030112000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112000 h) + (by + have h : (thetaAboveCell0000220030112001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112001 h) + (by + have h : (thetaAboveCell0000220030112002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112002 h) + (by + have h : (thetaAboveCell0000220030112003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHL + thetaAboveCell000022003011))) + (by + have h : (thetaAboveCell0000220030112010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112010 h) + (by + have h : (thetaAboveCell0000220030112011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112011 h) + (by + have h : (thetaAboveCell0000220030112012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112012 h) + (by + have h : (thetaAboveCell0000220030112013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112013 h)) + cover_subtree_665b5a9e2762 + cover_subtree_5b6db01eac76 + +theorem cover_subtree_852b952eb7f8 : + adaptiveCoverCheck 4 (childHL (childLH (childHL thetaAboveCell000022003011))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022003011))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112120 + (by + have h : ((childLL thetaAboveCell0000220030112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112120) h) + (by + have h : ((childLH thetaAboveCell0000220030112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112120) h) + (by + have h : ((childHL thetaAboveCell0000220030112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112120) h) + (by + have h : ((childHH thetaAboveCell0000220030112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112121 + (by + have h : ((childLL thetaAboveCell0000220030112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112121) h) + (by + have h : ((childLH thetaAboveCell0000220030112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112121) h) + (by + have h : ((childHL thetaAboveCell0000220030112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112121) h) + (by + have h : ((childHH thetaAboveCell0000220030112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112122 + (by + have h : ((childLL thetaAboveCell0000220030112122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112122) h) + (by + have h : ((childLH thetaAboveCell0000220030112122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112122) h) + (by + have h : ((childHL thetaAboveCell0000220030112122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112122) h) + (by + have h : ((childHH thetaAboveCell0000220030112122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112123 + (by + have h : ((childLL thetaAboveCell0000220030112123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112123) h) + (by + have h : ((childLH thetaAboveCell0000220030112123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112123) h) + (by + have h : ((childHL thetaAboveCell0000220030112123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112123) h) + (by + have h : ((childHH thetaAboveCell0000220030112123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112123) h)) + +theorem cover_subtree_aaaee1c4417b : + adaptiveCoverCheck 4 (childHH (childLH (childHL thetaAboveCell000022003011))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022003011))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112130 + (by + have h : ((childLL thetaAboveCell0000220030112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112130) h) + (by + have h : ((childLH thetaAboveCell0000220030112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112130) h) + (by + have h : ((childHL thetaAboveCell0000220030112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112130) h) + (by + have h : ((childHH thetaAboveCell0000220030112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112131 + (by + have h : ((childLL thetaAboveCell0000220030112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112131) h) + (by + have h : ((childLH thetaAboveCell0000220030112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112131) h) + (by + have h : ((childHL thetaAboveCell0000220030112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112131) h) + (by + have h : ((childHH thetaAboveCell0000220030112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112132 + (by + have h : ((childLL thetaAboveCell0000220030112132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112132) h) + (by + have h : ((childLH thetaAboveCell0000220030112132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112132) h) + (by + have h : ((childHL thetaAboveCell0000220030112132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112132) h) + (by + have h : ((childHH thetaAboveCell0000220030112132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112133 + (by + have h : ((childLL thetaAboveCell0000220030112133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112133) h) + (by + have h : ((childLH thetaAboveCell0000220030112133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112133) h) + (by + have h : ((childHL thetaAboveCell0000220030112133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112133) h) + (by + have h : ((childHH thetaAboveCell0000220030112133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112133) h)) + +theorem cover_subtree_351a53bd4fd0 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022003011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022003011)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHL + thetaAboveCell000022003011))) + (by + have h : (thetaAboveCell0000220030112100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112100 h) + (by + have h : (thetaAboveCell0000220030112101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112101 h) + (by + have h : (thetaAboveCell0000220030112102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112102 h) + (by + have h : (thetaAboveCell0000220030112103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHL + thetaAboveCell000022003011))) + (by + have h : (thetaAboveCell0000220030112110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112110 h) + (by + have h : (thetaAboveCell0000220030112111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112111 h) + (by + have h : (thetaAboveCell0000220030112112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112112 h) + (by + have h : (thetaAboveCell0000220030112113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112113 h)) + cover_subtree_852b952eb7f8 + cover_subtree_aaaee1c4417b + +theorem cover_subtree_272316153167 : + adaptiveCoverCheck 4 (childLL (childHL (childHL thetaAboveCell000022003011))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022003011))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112200 + (by + have h : ((childLL thetaAboveCell0000220030112200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112200) h) + (by + have h : ((childLH thetaAboveCell0000220030112200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112200) h) + (by + have h : ((childHL thetaAboveCell0000220030112200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112200) h) + (by + have h : ((childHH thetaAboveCell0000220030112200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112200) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112201 + (by + have h : ((childLL thetaAboveCell0000220030112201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112201) h) + (by + have h : ((childLH thetaAboveCell0000220030112201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112201) h) + (by + have h : ((childHL thetaAboveCell0000220030112201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112201) h) + (by + have h : ((childHH thetaAboveCell0000220030112201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112201) h)) + (by + have h : (thetaAboveCell0000220030112202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112202 h) + (by + have h : (thetaAboveCell0000220030112203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112203 h) + +theorem cover_subtree_665ac8a38e4e : + adaptiveCoverCheck 4 (childLH (childHL (childHL thetaAboveCell000022003011))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022003011))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112210 + (by + have h : ((childLL thetaAboveCell0000220030112210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112210) h) + (by + have h : ((childLH thetaAboveCell0000220030112210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112210) h) + (by + have h : ((childHL thetaAboveCell0000220030112210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112210) h) + (by + have h : ((childHH thetaAboveCell0000220030112210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112210) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112211 + (by + have h : ((childLL thetaAboveCell0000220030112211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112211) h) + (by + have h : ((childLH thetaAboveCell0000220030112211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112211) h) + (by + have h : ((childHL thetaAboveCell0000220030112211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112211) h) + (by + have h : ((childHH thetaAboveCell0000220030112211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112211) h)) + (by + have h : (thetaAboveCell0000220030112212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112212 h) + (by + have h : (thetaAboveCell0000220030112213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112213 h) + +theorem cover_subtree_53d66be9fa12 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022003011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022003011)) + cover_subtree_272316153167 + cover_subtree_665ac8a38e4e + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022003011))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022003011))) h) + +theorem cover_subtree_173035df5204 : + adaptiveCoverCheck 4 (childLL (childHH (childHL thetaAboveCell000022003011))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022003011))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112300 + (by + have h : ((childLL thetaAboveCell0000220030112300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112300) h) + (by + have h : ((childLH thetaAboveCell0000220030112300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112300) h) + (by + have h : ((childHL thetaAboveCell0000220030112300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112300) h) + (by + have h : ((childHH thetaAboveCell0000220030112300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112300) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112301 + (by + have h : ((childLL thetaAboveCell0000220030112301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112301) h) + (by + have h : ((childLH thetaAboveCell0000220030112301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112301) h) + (by + have h : ((childHL thetaAboveCell0000220030112301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112301) h) + (by + have h : ((childHH thetaAboveCell0000220030112301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112301) h)) + (by + have h : (thetaAboveCell0000220030112302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112302 h) + (by + have h : (thetaAboveCell0000220030112303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112303 h) + +theorem cover_subtree_9b2979ef98c7 : + adaptiveCoverCheck 4 (childLH (childHH (childHL thetaAboveCell000022003011))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022003011))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112310 + (by + have h : ((childLL thetaAboveCell0000220030112310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112310) h) + (by + have h : ((childLH thetaAboveCell0000220030112310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112310) h) + (by + have h : ((childHL thetaAboveCell0000220030112310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112310) h) + (by + have h : ((childHH thetaAboveCell0000220030112310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112310) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030112311 + (by + have h : ((childLL thetaAboveCell0000220030112311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030112311) h) + (by + have h : ((childLH thetaAboveCell0000220030112311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030112311) h) + (by + have h : ((childHL thetaAboveCell0000220030112311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030112311) h) + (by + have h : ((childHH thetaAboveCell0000220030112311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030112311) h)) + (by + have h : (thetaAboveCell0000220030112312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112312 h) + (by + have h : (thetaAboveCell0000220030112313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030112313 h) + +theorem cover_subtree_c1dab1b76c15 : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022003011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022003011)) + cover_subtree_173035df5204 + cover_subtree_9b2979ef98c7 + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022003011))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022003011))) h) + +theorem cover_subtree_7f164fbda87a : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022003011) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022003011) + cover_subtree_f193f827132f + cover_subtree_351a53bd4fd0 + cover_subtree_53d66be9fa12 + cover_subtree_c1dab1b76c15 + +theorem cover_subtree_45ff29f15e49 : + adaptiveCoverCheck 4 (childHL (childLL (childHH thetaAboveCell000022003011))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022003011))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113020 + (by + have h : ((childLL thetaAboveCell0000220030113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113020) h) + (by + have h : ((childLH thetaAboveCell0000220030113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113020) h) + (by + have h : ((childHL thetaAboveCell0000220030113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113020) h) + (by + have h : ((childHH thetaAboveCell0000220030113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113021 + (by + have h : ((childLL thetaAboveCell0000220030113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113021) h) + (by + have h : ((childLH thetaAboveCell0000220030113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113021) h) + (by + have h : ((childHL thetaAboveCell0000220030113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113021) h) + (by + have h : ((childHH thetaAboveCell0000220030113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113022 + (by + have h : ((childLL thetaAboveCell0000220030113022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113022) h) + (by + have h : ((childLH thetaAboveCell0000220030113022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113022) h) + (by + have h : ((childHL thetaAboveCell0000220030113022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113022) h) + (by + have h : ((childHH thetaAboveCell0000220030113022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113023 + (by + have h : ((childLL thetaAboveCell0000220030113023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113023) h) + (by + have h : ((childLH thetaAboveCell0000220030113023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113023) h) + (by + have h : ((childHL thetaAboveCell0000220030113023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113023) h) + (by + have h : ((childHH thetaAboveCell0000220030113023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113023) h)) + +theorem cover_subtree_2ca50076570c : + adaptiveCoverCheck 4 (childHH (childLL (childHH thetaAboveCell000022003011))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022003011))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113030 + (by + have h : ((childLL thetaAboveCell0000220030113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113030) h) + (by + have h : ((childLH thetaAboveCell0000220030113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113030) h) + (by + have h : ((childHL thetaAboveCell0000220030113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113030) h) + (by + have h : ((childHH thetaAboveCell0000220030113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113031 + (by + have h : ((childLL thetaAboveCell0000220030113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113031) h) + (by + have h : ((childLH thetaAboveCell0000220030113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113031) h) + (by + have h : ((childHL thetaAboveCell0000220030113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113031) h) + (by + have h : ((childHH thetaAboveCell0000220030113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113032 + (by + have h : ((childLL thetaAboveCell0000220030113032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113032) h) + (by + have h : ((childLH thetaAboveCell0000220030113032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113032) h) + (by + have h : ((childHL thetaAboveCell0000220030113032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113032) h) + (by + have h : ((childHH thetaAboveCell0000220030113032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113033 + (by + have h : ((childLL thetaAboveCell0000220030113033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113033) h) + (by + have h : ((childLH thetaAboveCell0000220030113033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113033) h) + (by + have h : ((childHL thetaAboveCell0000220030113033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113033) h) + (by + have h : ((childHH thetaAboveCell0000220030113033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113033) h)) + +theorem cover_subtree_6cee8ff9ebee : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022003011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022003011)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHH + thetaAboveCell000022003011))) + (by + have h : (thetaAboveCell0000220030113000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113000 h) + (by + have h : (thetaAboveCell0000220030113001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113001 h) + (by + have h : (thetaAboveCell0000220030113002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113002 h) + (by + have h : (thetaAboveCell0000220030113003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHH + thetaAboveCell000022003011))) + (by + have h : (thetaAboveCell0000220030113010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113010 h) + (by + have h : (thetaAboveCell0000220030113011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113011 h) + (by + have h : (thetaAboveCell0000220030113012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113012 h) + (by + have h : (thetaAboveCell0000220030113013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113013 h)) + cover_subtree_45ff29f15e49 + cover_subtree_2ca50076570c + +theorem cover_subtree_ce8d22ab5f51 : + adaptiveCoverCheck 4 (childHL (childLH (childHH thetaAboveCell000022003011))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022003011))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113120 + (by + have h : ((childLL thetaAboveCell0000220030113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113120) h) + (by + have h : ((childLH thetaAboveCell0000220030113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113120) h) + (by + have h : ((childHL thetaAboveCell0000220030113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113120) h) + (by + have h : ((childHH thetaAboveCell0000220030113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113121 + (by + have h : ((childLL thetaAboveCell0000220030113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113121) h) + (by + have h : ((childLH thetaAboveCell0000220030113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113121) h) + (by + have h : ((childHL thetaAboveCell0000220030113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113121) h) + (by + have h : ((childHH thetaAboveCell0000220030113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113122 + (by + have h : ((childLL thetaAboveCell0000220030113122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113122) h) + (by + have h : ((childLH thetaAboveCell0000220030113122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113122) h) + (by + have h : ((childHL thetaAboveCell0000220030113122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113122) h) + (by + have h : ((childHH thetaAboveCell0000220030113122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113123 + (by + have h : ((childLL thetaAboveCell0000220030113123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113123) h) + (by + have h : ((childLH thetaAboveCell0000220030113123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113123) h) + (by + have h : ((childHL thetaAboveCell0000220030113123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113123) h) + (by + have h : ((childHH thetaAboveCell0000220030113123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113123) h)) + +theorem cover_subtree_23abbb95182b : + adaptiveCoverCheck 4 (childHH (childLH (childHH thetaAboveCell000022003011))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022003011))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113130 + (by + have h : ((childLL thetaAboveCell0000220030113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113130) h) + (by + have h : ((childLH thetaAboveCell0000220030113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113130) h) + (by + have h : ((childHL thetaAboveCell0000220030113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113130) h) + (by + have h : ((childHH thetaAboveCell0000220030113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113131 + (by + have h : ((childLL thetaAboveCell0000220030113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113131) h) + (by + have h : ((childLH thetaAboveCell0000220030113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113131) h) + (by + have h : ((childHL thetaAboveCell0000220030113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113131) h) + (by + have h : ((childHH thetaAboveCell0000220030113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113132 + (by + have h : ((childLL thetaAboveCell0000220030113132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113132) h) + (by + have h : ((childLH thetaAboveCell0000220030113132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113132) h) + (by + have h : ((childHL thetaAboveCell0000220030113132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113132) h) + (by + have h : ((childHH thetaAboveCell0000220030113132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113133 + (by + have h : ((childLL thetaAboveCell0000220030113133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113133) h) + (by + have h : ((childLH thetaAboveCell0000220030113133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113133) h) + (by + have h : ((childHL thetaAboveCell0000220030113133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113133) h) + (by + have h : ((childHH thetaAboveCell0000220030113133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113133) h)) + +theorem cover_subtree_7ed35f4a5f6c : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022003011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022003011)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHH + thetaAboveCell000022003011))) + (by + have h : (thetaAboveCell0000220030113100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113100 h) + (by + have h : (thetaAboveCell0000220030113101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113101 h) + (by + have h : (thetaAboveCell0000220030113102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113102 h) + (by + have h : (thetaAboveCell0000220030113103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHH + thetaAboveCell000022003011))) + (by + have h : (thetaAboveCell0000220030113110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113110 h) + (by + have h : (thetaAboveCell0000220030113111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113111 h) + (by + have h : (thetaAboveCell0000220030113112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113112 h) + (by + have h : (thetaAboveCell0000220030113113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113113 h)) + cover_subtree_ce8d22ab5f51 + cover_subtree_23abbb95182b + +theorem cover_subtree_c767073053c7 : + adaptiveCoverCheck 4 (childLL (childHL (childHH thetaAboveCell000022003011))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022003011))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113200 + (by + have h : ((childLL thetaAboveCell0000220030113200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113200) h) + (by + have h : ((childLH thetaAboveCell0000220030113200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113200) h) + (by + have h : ((childHL thetaAboveCell0000220030113200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113200) h) + (by + have h : ((childHH thetaAboveCell0000220030113200)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113200) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113201 + (by + have h : ((childLL thetaAboveCell0000220030113201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113201) h) + (by + have h : ((childLH thetaAboveCell0000220030113201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113201) h) + (by + have h : ((childHL thetaAboveCell0000220030113201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113201) h) + (by + have h : ((childHH thetaAboveCell0000220030113201)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113201) h)) + (by + have h : (thetaAboveCell0000220030113202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113202 h) + (by + have h : (thetaAboveCell0000220030113203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113203 h) + +theorem cover_subtree_76bb187113c3 : + adaptiveCoverCheck 4 (childLH (childHL (childHH thetaAboveCell000022003011))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022003011))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113210 + (by + have h : ((childLL thetaAboveCell0000220030113210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113210) h) + (by + have h : ((childLH thetaAboveCell0000220030113210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113210) h) + (by + have h : ((childHL thetaAboveCell0000220030113210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113210) h) + (by + have h : ((childHH thetaAboveCell0000220030113210)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113210) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113211 + (by + have h : ((childLL thetaAboveCell0000220030113211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113211) h) + (by + have h : ((childLH thetaAboveCell0000220030113211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113211) h) + (by + have h : ((childHL thetaAboveCell0000220030113211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113211) h) + (by + have h : ((childHH thetaAboveCell0000220030113211)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113211) h)) + (by + have h : (thetaAboveCell0000220030113212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113212 h) + (by + have h : (thetaAboveCell0000220030113213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113213 h) + +theorem cover_subtree_9060e2b44288 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022003011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022003011)) + cover_subtree_c767073053c7 + cover_subtree_76bb187113c3 + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022003011))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022003011))) h) + +theorem cover_subtree_15620f5ff6d8 : + adaptiveCoverCheck 4 (childLL (childHH (childHH thetaAboveCell000022003011))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022003011))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113300 + (by + have h : ((childLL thetaAboveCell0000220030113300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113300) h) + (by + have h : ((childLH thetaAboveCell0000220030113300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113300) h) + (by + have h : ((childHL thetaAboveCell0000220030113300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113300) h) + (by + have h : ((childHH thetaAboveCell0000220030113300)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113300) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113301 + (by + have h : ((childLL thetaAboveCell0000220030113301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113301) h) + (by + have h : ((childLH thetaAboveCell0000220030113301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113301) h) + (by + have h : ((childHL thetaAboveCell0000220030113301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113301) h) + (by + have h : ((childHH thetaAboveCell0000220030113301)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113301) h)) + (by + have h : (thetaAboveCell0000220030113302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113302 h) + (by + have h : (thetaAboveCell0000220030113303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113303 h) + +theorem cover_subtree_4b9adb2a2d0e : + adaptiveCoverCheck 4 (childLH (childHH (childHH thetaAboveCell000022003011))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022003011))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113310 + (by + have h : ((childLL thetaAboveCell0000220030113310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113310) h) + (by + have h : ((childLH thetaAboveCell0000220030113310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113310) h) + (by + have h : ((childHL thetaAboveCell0000220030113310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113310) h) + (by + have h : ((childHH thetaAboveCell0000220030113310)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113310) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220030113311 + (by + have h : ((childLL thetaAboveCell0000220030113311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220030113311) h) + (by + have h : ((childLH thetaAboveCell0000220030113311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220030113311) h) + (by + have h : ((childHL thetaAboveCell0000220030113311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220030113311) h) + (by + have h : ((childHH thetaAboveCell0000220030113311)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220030113311) h)) + (by + have h : (thetaAboveCell0000220030113312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113312 h) + (by + have h : (thetaAboveCell0000220030113313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220030113313 h) + +theorem cover_subtree_92d2cedcde3a : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022003011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022003011)) + cover_subtree_15620f5ff6d8 + cover_subtree_4b9adb2a2d0e + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022003011))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022003011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022003011))) h) + +theorem cover_subtree_f164ca59fbf6 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022003011) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022003011) + cover_subtree_6cee8ff9ebee + cover_subtree_7ed35f4a5f6c + cover_subtree_9060e2b44288 + cover_subtree_92d2cedcde3a + +theorem cover_subtree_a889ceb5a59d : + adaptiveCoverCheck 7 thetaAboveCell000022003011 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022003011 + cover_subtree_30fdf3821f37 + cover_subtree_c04a84ca091e + cover_subtree_7f164fbda87a + cover_subtree_f164ca59fbf6 + +theorem cover_subtree_258ec0944afe : + adaptiveCoverCheck 7 thetaAboveCell000022003012 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022003012 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022003012) + (by + have h : ((childLL (childLL thetaAboveCell000022003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022003012)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022003012)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022003012)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022003012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022003012) + (by + have h : ((childLL (childLH thetaAboveCell000022003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022003012)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022003012)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022003012)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022003012)) h)) + (by + have h : ((childHL thetaAboveCell000022003012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022003012) h) + (by + have h : ((childHH thetaAboveCell000022003012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022003012) h) + +theorem cover_subtree_935d1978c95d : + adaptiveCoverCheck 7 thetaAboveCell000022003013 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022003013 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022003013) + (by + have h : ((childLL (childLL thetaAboveCell000022003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022003013)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022003013)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022003013)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022003013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022003013) + (by + have h : ((childLL (childLH thetaAboveCell000022003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022003013)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022003013)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022003013)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022003013)) h)) + (by + have h : ((childHL thetaAboveCell000022003013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022003013) h) + (by + have h : ((childHH thetaAboveCell000022003013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022003013) h) + +theorem cover_subtree_53052734842a : + adaptiveCoverCheck 8 (childLH (childLL (childHH thetaAboveCell00002200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH thetaAboveCell00002200))) + cover_subtree_591cadb839e1 + cover_subtree_a889ceb5a59d + cover_subtree_258ec0944afe + cover_subtree_935d1978c95d + +theorem e24KC2ThetaAboveLeaf0000220030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00002200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00002200)) + cover_subtree_f2d4d32c5725 + cover_subtree_53052734842a + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00002200))) + (by + have h : (thetaAboveCell000022003020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022003020 h) + (by + have h : (thetaAboveCell000022003021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022003021 h) + (by + have h : (thetaAboveCell000022003022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022003022 h) + (by + have h : (thetaAboveCell000022003023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022003023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00002200))) + (by + have h : (thetaAboveCell000022003030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022003030 h) + (by + have h : (thetaAboveCell000022003031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022003031 h) + (by + have h : (thetaAboveCell000022003032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022003032 h) + (by + have h : (thetaAboveCell000022003033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022003033 h)) + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.ThetaAbove.Leaf00642`. +* `KernelOnly.PartE.ThetaAbove.Leaf00643`. +* `KernelOnly.PartE.ThetaAbove.Leaf00646`. +* `KernelOnly.PartE.ThetaAbove.Leaf00647`. +* `KernelOnly.PartE.ThetaAbove.Leaf00648`. +* `KernelOnly.PartE.ThetaAbove.Leaf00649`. +* `KernelOnly.PartE.ThetaAbove.Leaf00652`. +* `KernelOnly.PartE.ThetaAbove.Leaf00653`. +* `KernelOnly.PartE.ThetaAbove.Leaf00654`. +* `KernelOnly.PartE.ThetaAbove.Leaf00655`. +* `KernelOnly.PartE.ThetaAbove.Leaf00657`. +* `KernelOnly.PartE.ThetaAbove.Leaf00658`. +* `KernelOnly.PartE.ThetaAbove.Leaf00662`. +* `KernelOnly.PartE.ThetaAbove.Leaf00663`. +* `KernelOnly.PartE.ThetaAbove.Leaf00664`. +* `KernelOnly.PartE.ThetaAbove.Leaf00665`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c0_6_00642 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5e16eb2f1b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5e16eb2f1b + +open CertificateCells5e16eb2f1b +namespace CoverCertificate1bb21a49a4 + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1bb21a49a4 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c0 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022002011) = true := by + exact CoverCertificate1bb21a49a4.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c1_6_00643 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb7fa51f50b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb7fa51f50b + +open CertificateCellsb7fa51f50b +namespace CoverCertificatec9db3a1aba + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec9db3a1aba + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c1 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022002011) = true := by + exact CoverCertificatec9db3a1aba.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c2_c0_c0_4_00646 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd618452127 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd618452127 + +open CertificateCellsd618452127 +namespace CoverCertificatefb03004e1f + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatefb03004e1f + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c0_c0 : + adaptiveCoverCheck 4 (childLL (childLL (childHL thetaAboveCell000022002011))) = true := by + exact CoverCertificatefb03004e1f.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c2_c0_c1_4_00647 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells82d3525350 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells82d3525350 + +open CertificateCells82d3525350 +namespace CoverCertificate045cecfd86 + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate045cecfd86 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c0_c1 : + adaptiveCoverCheck 4 (childLH (childLL (childHL thetaAboveCell000022002011))) = true := by + exact CoverCertificate045cecfd86.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c2_c0_c2_4_00648 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells632f810978 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells632f810978 + +open CertificateCells632f810978 +namespace CoverCertificatef837300024 + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 1 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 1 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 1 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 1 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef837300024 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c0_c2 : + adaptiveCoverCheck 4 (childHL (childLL (childHL thetaAboveCell000022002011))) = true := by + exact CoverCertificatef837300024.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c2_c0_c3_4_00649 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells15b8174174 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells15b8174174 + +open CertificateCells15b8174174 +namespace CoverCertificate2943ba0b5c + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 1 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 1 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 1 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 1 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate2943ba0b5c + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c0_c3 : + adaptiveCoverCheck 4 (childHH (childLL (childHL thetaAboveCell000022002011))) = true := by + exact CoverCertificate2943ba0b5c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c2_c1_c0_4_00652 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1f25007fe8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1f25007fe8 + +open CertificateCells1f25007fe8 +namespace CoverCertificate42a60e756f + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate42a60e756f + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c1_c0 : + adaptiveCoverCheck 4 (childLL (childLH (childHL thetaAboveCell000022002011))) = true := by + exact CoverCertificate42a60e756f.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c2_c1_c1_4_00653 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1e9acaa8be + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1e9acaa8be + +open CertificateCells1e9acaa8be +namespace CoverCertificate0cee658f4b + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0cee658f4b + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c1_c1 : + adaptiveCoverCheck 4 (childLH (childLH (childHL thetaAboveCell000022002011))) = true := by + exact CoverCertificate0cee658f4b.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c2_c1_c2_4_00654 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells231d66ab0c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells231d66ab0c + +open CertificateCells231d66ab0c +namespace CoverCertificateeb376f6b8e + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 1 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 1 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 1 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 1 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateeb376f6b8e + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c1_c2 : + adaptiveCoverCheck 4 (childHL (childLH (childHL thetaAboveCell000022002011))) = true := by + exact CoverCertificateeb376f6b8e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c2_c1_c3_4_00655 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2c11250698 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2c11250698 + +open CertificateCells2c11250698 +namespace CoverCertificate1e208f1b6e + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 1 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 1 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 1 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 1 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1e208f1b6e + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c1_c3 : + adaptiveCoverCheck 4 (childHH (childLH (childHL thetaAboveCell000022002011))) = true := by + exact CoverCertificate1e208f1b6e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c2_c2_5_00657 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3ce31f23ce + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3ce31f23ce + +open CertificateCells3ce31f23ce +namespace CoverCertificate6fd62aabed + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate6fd62aabed + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c2 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022002011)) = true := by + exact CoverCertificate6fd62aabed.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c2_c3_5_00658 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3c3d48c1eb + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3c3d48c1eb + +open CertificateCells3c3d48c1eb +namespace CoverCertificate22515ac7bd + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate22515ac7bd + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c3 : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022002011)) = true := by + exact CoverCertificate22515ac7bd.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c0_c0_4_00662 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4d022b961f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4d022b961f + +open CertificateCells4d022b961f +namespace CoverCertificatebad9a9b575 + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatebad9a9b575 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c0_c0 : + adaptiveCoverCheck 4 (childLL (childLL (childHH thetaAboveCell000022002011))) = true := by + exact CoverCertificatebad9a9b575.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c0_c1_4_00663 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9798c9c840 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9798c9c840 + +open CertificateCells9798c9c840 +namespace CoverCertificate13a680926b + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate13a680926b + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c0_c1 : + adaptiveCoverCheck 4 (childLH (childLL (childHH thetaAboveCell000022002011))) = true := by + exact CoverCertificate13a680926b.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c0_c2_4_00664 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6832cee036 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6832cee036 + +open CertificateCells6832cee036 +namespace CoverCertificatebdefa88d14 + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 1 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 1 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 1 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 1 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatebdefa88d14 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c0_c2 : + adaptiveCoverCheck 4 (childHL (childLL (childHH thetaAboveCell000022002011))) = true := by + exact CoverCertificatebdefa88d14.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c0_c3_4_00665 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsab896aa443 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsab896aa443 + +open CertificateCellsab896aa443 +namespace CoverCertificateb54a5d06ec + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 1 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 1 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 1 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 1 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateb54a5d06ec + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c0_c3 : + adaptiveCoverCheck 4 (childHH (childLL (childHH thetaAboveCell000022002011))) = true := by + exact CoverCertificateb54a5d06ec.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle014.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle014.lean new file mode 100644 index 0000000000..bb9633bce3 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle014.lean @@ -0,0 +1,8986 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch020`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCellsea1d7ddac9 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0001 : AngleCell := + childLH (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `000033102100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00003310))) + +/-- Subcell `000033103000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00003310))) + +/-- Subcell `000033112000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00003311))) + +/-- Subcell `000033113000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00003311))) + +/-- Subcell `000033113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000033113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00003311))) + +/-- Subcell `000122002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00012200))) + +/-- Subcell `000122003000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00012200))) + +/-- Subcell `000122012000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00012201))) + +/-- Subcell `000122013000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00012201))) + +/-- Subcell `000122102000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00012210))) + +/-- Subcell `000122103000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00012210))) + +/-- Subcell `000122112000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00012211))) + +/-- Subcell `000122113000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00012211))) + +/-- Subcell `000122113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000122113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00012211))) + +/-- Subcell `000123002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00012300))) + +/-- Subcell `000123003000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00012300))) + +/-- Subcell `000123012000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00012301))) + +/-- Subcell `000123013000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00012301))) + +end GerverSofa.PartE.CertificateCellsea1d7ddac9 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC6ProofBatch32fd0d2bad1c3ab1`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC6 explicit proof-producing certificate batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsea1d7ddac9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsea1d7ddac9 + +open CertificateCellsea1d7ddac9 +theorem cover_subtree_0099e6c88888 : + adaptiveCoverCheck 8 (childLL (childLH (childHL thetaAboveCell00003310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL thetaAboveCell00003310))) + (by + have h : (thetaAboveCell000033102100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102100 h) + (by + have h : (thetaAboveCell000033102101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102101 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102102 + (by + have h : ((childLL thetaAboveCell000033102102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102102) h) + (by + have h : ((childLH thetaAboveCell000033102102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102102) h) + (by + have h : ((childHL thetaAboveCell000033102102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102102) h) + (by + have h : ((childHH thetaAboveCell000033102102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102103 + (by + have h : ((childLL thetaAboveCell000033102103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102103) h) + (by + have h : ((childLH thetaAboveCell000033102103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102103) h) + (by + have h : ((childHL thetaAboveCell000033102103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102103) h) + (by + have h : ((childHH thetaAboveCell000033102103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102103) h)) + +theorem cover_subtree_ba641df32bfd : + adaptiveCoverCheck 8 (childLH (childLH (childHL thetaAboveCell00003310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL thetaAboveCell00003310))) + (by + have h : (thetaAboveCell000033102110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102110 h) + (by + have h : (thetaAboveCell000033102111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102111 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102112 + (by + have h : ((childLL thetaAboveCell000033102112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102112) h) + (by + have h : ((childLH thetaAboveCell000033102112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102112) h) + (by + have h : ((childHL thetaAboveCell000033102112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102112) h) + (by + have h : ((childHH thetaAboveCell000033102112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102113 + (by + have h : ((childLL thetaAboveCell000033102113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102113) h) + (by + have h : ((childLH thetaAboveCell000033102113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102113) h) + (by + have h : ((childHL thetaAboveCell000033102113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102113) h) + (by + have h : ((childHH thetaAboveCell000033102113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102113) h)) + +theorem cover_subtree_7ba93df0d4c7 : + adaptiveCoverCheck 8 (childHL (childLH (childHL thetaAboveCell00003310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL thetaAboveCell00003310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102120 + (by + have h : ((childLL thetaAboveCell000033102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102120) h) + (by + have h : ((childLH thetaAboveCell000033102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102120) h) + (by + have h : ((childHL thetaAboveCell000033102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102120) h) + (by + have h : ((childHH thetaAboveCell000033102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102121 + (by + have h : ((childLL thetaAboveCell000033102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102121) h) + (by + have h : ((childLH thetaAboveCell000033102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102121) h) + (by + have h : ((childHL thetaAboveCell000033102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102121) h) + (by + have h : ((childHH thetaAboveCell000033102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102122 + (by + have h : ((childLL thetaAboveCell000033102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102122) h) + (by + have h : ((childLH thetaAboveCell000033102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102122) h) + (by + have h : ((childHL thetaAboveCell000033102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102122) h) + (by + have h : ((childHH thetaAboveCell000033102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102123 + (by + have h : ((childLL thetaAboveCell000033102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102123) h) + (by + have h : ((childLH thetaAboveCell000033102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102123) h) + (by + have h : ((childHL thetaAboveCell000033102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102123) h) + (by + have h : ((childHH thetaAboveCell000033102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102123) h)) + +theorem cover_subtree_65f8fb6981b4 : + adaptiveCoverCheck 8 (childHH (childLH (childHL thetaAboveCell00003310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL thetaAboveCell00003310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102130 + (by + have h : ((childLL thetaAboveCell000033102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102130) h) + (by + have h : ((childLH thetaAboveCell000033102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102130) h) + (by + have h : ((childHL thetaAboveCell000033102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102130) h) + (by + have h : ((childHH thetaAboveCell000033102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102131 + (by + have h : ((childLL thetaAboveCell000033102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102131) h) + (by + have h : ((childLH thetaAboveCell000033102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102131) h) + (by + have h : ((childHL thetaAboveCell000033102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102131) h) + (by + have h : ((childHH thetaAboveCell000033102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102132 + (by + have h : ((childLL thetaAboveCell000033102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102132) h) + (by + have h : ((childLH thetaAboveCell000033102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102132) h) + (by + have h : ((childHL thetaAboveCell000033102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102132) h) + (by + have h : ((childHH thetaAboveCell000033102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033102133 + (by + have h : ((childLL thetaAboveCell000033102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033102133) h) + (by + have h : ((childLH thetaAboveCell000033102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033102133) h) + (by + have h : ((childHL thetaAboveCell000033102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033102133) h) + (by + have h : ((childHH thetaAboveCell000033102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033102133) h)) + +theorem e24KC2ThetaAboveLeaf0000331021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00003310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00003310)) + cover_subtree_0099e6c88888 + cover_subtree_ba641df32bfd + cover_subtree_7ba93df0d4c7 + cover_subtree_65f8fb6981b4 +theorem e24KC2ThetaAboveLeaf0000331022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00003310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00003310)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00003310))) + (by + have h : (thetaAboveCell000033102200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102200 h) + (by + have h : (thetaAboveCell000033102201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102201 h) + (by + have h : (thetaAboveCell000033102202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102202 h) + (by + have h : (thetaAboveCell000033102203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00003310))) + (by + have h : (thetaAboveCell000033102210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102210 h) + (by + have h : (thetaAboveCell000033102211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102211 h) + (by + have h : (thetaAboveCell000033102212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102212 h) + (by + have h : (thetaAboveCell000033102213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00003310))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00003310))) h) +theorem e24KC2ThetaAboveLeaf0000331023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00003310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00003310)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00003310))) + (by + have h : (thetaAboveCell000033102300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102300 h) + (by + have h : (thetaAboveCell000033102301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102301 h) + (by + have h : (thetaAboveCell000033102302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102302 h) + (by + have h : (thetaAboveCell000033102303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00003310))) + (by + have h : (thetaAboveCell000033102310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102310 h) + (by + have h : (thetaAboveCell000033102311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102311 h) + (by + have h : (thetaAboveCell000033102312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102312 h) + (by + have h : (thetaAboveCell000033102313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033102313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00003310))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00003310))) h) +theorem cover_subtree_3709c9a249b6 : + adaptiveCoverCheck 8 (childLL (childLL (childHH thetaAboveCell00003310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH thetaAboveCell00003310))) + (by + have h : (thetaAboveCell000033103000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103000 h) + (by + have h : (thetaAboveCell000033103001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103001 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103002 + (by + have h : ((childLL thetaAboveCell000033103002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103002) h) + (by + have h : ((childLH thetaAboveCell000033103002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103002) h) + (by + have h : ((childHL thetaAboveCell000033103002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103002) h) + (by + have h : ((childHH thetaAboveCell000033103002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103003 + (by + have h : ((childLL thetaAboveCell000033103003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103003) h) + (by + have h : ((childLH thetaAboveCell000033103003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103003) h) + (by + have h : ((childHL thetaAboveCell000033103003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103003) h) + (by + have h : ((childHH thetaAboveCell000033103003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103003) h)) + +theorem cover_subtree_2b5889a2610f : + adaptiveCoverCheck 8 (childLH (childLL (childHH thetaAboveCell00003310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH thetaAboveCell00003310))) + (by + have h : (thetaAboveCell000033103010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103010 h) + (by + have h : (thetaAboveCell000033103011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103011 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103012 + (by + have h : ((childLL thetaAboveCell000033103012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103012) h) + (by + have h : ((childLH thetaAboveCell000033103012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103012) h) + (by + have h : ((childHL thetaAboveCell000033103012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103012) h) + (by + have h : ((childHH thetaAboveCell000033103012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103013 + (by + have h : ((childLL thetaAboveCell000033103013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103013) h) + (by + have h : ((childLH thetaAboveCell000033103013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103013) h) + (by + have h : ((childHL thetaAboveCell000033103013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103013) h) + (by + have h : ((childHH thetaAboveCell000033103013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103013) h)) + +theorem cover_subtree_81afd77398fe : + adaptiveCoverCheck 8 (childHL (childLL (childHH thetaAboveCell00003310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH thetaAboveCell00003310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103020 + (by + have h : ((childLL thetaAboveCell000033103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103020) h) + (by + have h : ((childLH thetaAboveCell000033103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103020) h) + (by + have h : ((childHL thetaAboveCell000033103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103020) h) + (by + have h : ((childHH thetaAboveCell000033103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103021 + (by + have h : ((childLL thetaAboveCell000033103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103021) h) + (by + have h : ((childLH thetaAboveCell000033103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103021) h) + (by + have h : ((childHL thetaAboveCell000033103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103021) h) + (by + have h : ((childHH thetaAboveCell000033103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103022 + (by + have h : ((childLL thetaAboveCell000033103022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103022) h) + (by + have h : ((childLH thetaAboveCell000033103022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103022) h) + (by + have h : ((childHL thetaAboveCell000033103022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103022) h) + (by + have h : ((childHH thetaAboveCell000033103022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103023 + (by + have h : ((childLL thetaAboveCell000033103023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103023) h) + (by + have h : ((childLH thetaAboveCell000033103023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103023) h) + (by + have h : ((childHL thetaAboveCell000033103023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103023) h) + (by + have h : ((childHH thetaAboveCell000033103023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103023) h)) + +theorem cover_subtree_56217b7b19f0 : + adaptiveCoverCheck 8 (childHH (childLL (childHH thetaAboveCell00003310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH thetaAboveCell00003310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103030 + (by + have h : ((childLL thetaAboveCell000033103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103030) h) + (by + have h : ((childLH thetaAboveCell000033103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103030) h) + (by + have h : ((childHL thetaAboveCell000033103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103030) h) + (by + have h : ((childHH thetaAboveCell000033103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103031 + (by + have h : ((childLL thetaAboveCell000033103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103031) h) + (by + have h : ((childLH thetaAboveCell000033103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103031) h) + (by + have h : ((childHL thetaAboveCell000033103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103031) h) + (by + have h : ((childHH thetaAboveCell000033103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103032 + (by + have h : ((childLL thetaAboveCell000033103032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103032) h) + (by + have h : ((childLH thetaAboveCell000033103032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103032) h) + (by + have h : ((childHL thetaAboveCell000033103032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103032) h) + (by + have h : ((childHH thetaAboveCell000033103032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103033 + (by + have h : ((childLL thetaAboveCell000033103033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103033) h) + (by + have h : ((childLH thetaAboveCell000033103033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103033) h) + (by + have h : ((childHL thetaAboveCell000033103033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103033) h) + (by + have h : ((childHH thetaAboveCell000033103033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103033) h)) + +theorem e24KC2ThetaAboveLeaf0000331030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00003310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00003310)) + cover_subtree_3709c9a249b6 + cover_subtree_2b5889a2610f + cover_subtree_81afd77398fe + cover_subtree_56217b7b19f0 +theorem cover_subtree_126d0c7909f0 : + adaptiveCoverCheck 8 (childLL (childLH (childHH thetaAboveCell00003310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH thetaAboveCell00003310))) + (by + have h : (thetaAboveCell000033103100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103100 h) + (by + have h : (thetaAboveCell000033103101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103101 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103102 + (by + have h : ((childLL thetaAboveCell000033103102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103102) h) + (by + have h : ((childLH thetaAboveCell000033103102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103102) h) + (by + have h : ((childHL thetaAboveCell000033103102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103102) h) + (by + have h : ((childHH thetaAboveCell000033103102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103103 + (by + have h : ((childLL thetaAboveCell000033103103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103103) h) + (by + have h : ((childLH thetaAboveCell000033103103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103103) h) + (by + have h : ((childHL thetaAboveCell000033103103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103103) h) + (by + have h : ((childHH thetaAboveCell000033103103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103103) h)) + +theorem cover_subtree_978b69a1c1bd : + adaptiveCoverCheck 8 (childLH (childLH (childHH thetaAboveCell00003310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH thetaAboveCell00003310))) + (by + have h : (thetaAboveCell000033103110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103110 h) + (by + have h : (thetaAboveCell000033103111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103111 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103112 + (by + have h : ((childLL thetaAboveCell000033103112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103112) h) + (by + have h : ((childLH thetaAboveCell000033103112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103112) h) + (by + have h : ((childHL thetaAboveCell000033103112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103112) h) + (by + have h : ((childHH thetaAboveCell000033103112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103113 + (by + have h : ((childLL thetaAboveCell000033103113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103113) h) + (by + have h : ((childLH thetaAboveCell000033103113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103113) h) + (by + have h : ((childHL thetaAboveCell000033103113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103113) h) + (by + have h : ((childHH thetaAboveCell000033103113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103113) h)) + +theorem cover_subtree_6f4368c59bdb : + adaptiveCoverCheck 8 (childHL (childLH (childHH thetaAboveCell00003310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH thetaAboveCell00003310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103120 + (by + have h : ((childLL thetaAboveCell000033103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103120) h) + (by + have h : ((childLH thetaAboveCell000033103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103120) h) + (by + have h : ((childHL thetaAboveCell000033103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103120) h) + (by + have h : ((childHH thetaAboveCell000033103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103121 + (by + have h : ((childLL thetaAboveCell000033103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103121) h) + (by + have h : ((childLH thetaAboveCell000033103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103121) h) + (by + have h : ((childHL thetaAboveCell000033103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103121) h) + (by + have h : ((childHH thetaAboveCell000033103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103122 + (by + have h : ((childLL thetaAboveCell000033103122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103122) h) + (by + have h : ((childLH thetaAboveCell000033103122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103122) h) + (by + have h : ((childHL thetaAboveCell000033103122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103122) h) + (by + have h : ((childHH thetaAboveCell000033103122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103123 + (by + have h : ((childLL thetaAboveCell000033103123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103123) h) + (by + have h : ((childLH thetaAboveCell000033103123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103123) h) + (by + have h : ((childHL thetaAboveCell000033103123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103123) h) + (by + have h : ((childHH thetaAboveCell000033103123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103123) h)) + +theorem cover_subtree_12a65271b941 : + adaptiveCoverCheck 8 (childHH (childLH (childHH thetaAboveCell00003310))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH thetaAboveCell00003310))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103130 + (by + have h : ((childLL thetaAboveCell000033103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103130) h) + (by + have h : ((childLH thetaAboveCell000033103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103130) h) + (by + have h : ((childHL thetaAboveCell000033103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103130) h) + (by + have h : ((childHH thetaAboveCell000033103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103131 + (by + have h : ((childLL thetaAboveCell000033103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103131) h) + (by + have h : ((childLH thetaAboveCell000033103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103131) h) + (by + have h : ((childHL thetaAboveCell000033103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103131) h) + (by + have h : ((childHH thetaAboveCell000033103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103132 + (by + have h : ((childLL thetaAboveCell000033103132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103132) h) + (by + have h : ((childLH thetaAboveCell000033103132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103132) h) + (by + have h : ((childHL thetaAboveCell000033103132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103132) h) + (by + have h : ((childHH thetaAboveCell000033103132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033103133 + (by + have h : ((childLL thetaAboveCell000033103133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033103133) h) + (by + have h : ((childLH thetaAboveCell000033103133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033103133) h) + (by + have h : ((childHL thetaAboveCell000033103133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033103133) h) + (by + have h : ((childHH thetaAboveCell000033103133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033103133) h)) + +theorem e24KC2ThetaAboveLeaf0000331031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00003310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00003310)) + cover_subtree_126d0c7909f0 + cover_subtree_978b69a1c1bd + cover_subtree_6f4368c59bdb + cover_subtree_12a65271b941 +theorem e24KC2ThetaAboveLeaf0000331032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00003310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00003310)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00003310))) + (by + have h : (thetaAboveCell000033103200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103200 h) + (by + have h : (thetaAboveCell000033103201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103201 h) + (by + have h : (thetaAboveCell000033103202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103202 h) + (by + have h : (thetaAboveCell000033103203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00003310))) + (by + have h : (thetaAboveCell000033103210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103210 h) + (by + have h : (thetaAboveCell000033103211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103211 h) + (by + have h : (thetaAboveCell000033103212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103212 h) + (by + have h : (thetaAboveCell000033103213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00003310))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00003310))) h) +theorem e24KC2ThetaAboveLeaf0000331033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00003310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00003310)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00003310))) + (by + have h : (thetaAboveCell000033103300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103300 h) + (by + have h : (thetaAboveCell000033103301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103301 h) + (by + have h : (thetaAboveCell000033103302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103302 h) + (by + have h : (thetaAboveCell000033103303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00003310))) + (by + have h : (thetaAboveCell000033103310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103310 h) + (by + have h : (thetaAboveCell000033103311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103311 h) + (by + have h : (thetaAboveCell000033103312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103312 h) + (by + have h : (thetaAboveCell000033103313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033103313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00003310))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00003310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00003310))) h) +theorem e24KC2ThetaAboveLeaf0000331102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00003311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00003311)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00003311))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00003311))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLL + thetaAboveCell00003311))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLL + thetaAboveCell00003311))) h) +theorem e24KC2ThetaAboveLeaf0000331103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00003311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00003311)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00003311))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00003311))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLL + thetaAboveCell00003311))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLL + thetaAboveCell00003311))) h) +theorem e24KC2ThetaAboveLeaf0000331112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00003311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00003311)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00003311))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00003311))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLH + thetaAboveCell00003311))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLH + thetaAboveCell00003311))) h) +theorem e24KC2ThetaAboveLeaf0000331113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00003311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00003311)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00003311))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00003311))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLH + thetaAboveCell00003311))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLH + thetaAboveCell00003311))) h) +theorem cover_subtree_40b30098358c : + adaptiveCoverCheck 8 (childLL (childLL (childHL thetaAboveCell00003311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL thetaAboveCell00003311))) + (by + have h : (thetaAboveCell000033112000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112000 h) + (by + have h : (thetaAboveCell000033112001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112001 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112002 + (by + have h : ((childLL thetaAboveCell000033112002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112002) h) + (by + have h : ((childLH thetaAboveCell000033112002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112002) h) + (by + have h : ((childHL thetaAboveCell000033112002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112002) h) + (by + have h : ((childHH thetaAboveCell000033112002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112003 + (by + have h : ((childLL thetaAboveCell000033112003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112003) h) + (by + have h : ((childLH thetaAboveCell000033112003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112003) h) + (by + have h : ((childHL thetaAboveCell000033112003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112003) h) + (by + have h : ((childHH thetaAboveCell000033112003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112003) h)) + +theorem cover_subtree_0f9e0e377596 : + adaptiveCoverCheck 8 (childLH (childLL (childHL thetaAboveCell00003311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL thetaAboveCell00003311))) + (by + have h : (thetaAboveCell000033112010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112010 h) + (by + have h : (thetaAboveCell000033112011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112011 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112012 + (by + have h : ((childLL thetaAboveCell000033112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112012) h) + (by + have h : ((childLH thetaAboveCell000033112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112012) h) + (by + have h : ((childHL thetaAboveCell000033112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112012) h) + (by + have h : ((childHH thetaAboveCell000033112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112013 + (by + have h : ((childLL thetaAboveCell000033112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112013) h) + (by + have h : ((childLH thetaAboveCell000033112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112013) h) + (by + have h : ((childHL thetaAboveCell000033112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112013) h) + (by + have h : ((childHH thetaAboveCell000033112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112013) h)) + +theorem cover_subtree_562ee101dc47 : + adaptiveCoverCheck 8 (childHL (childLL (childHL thetaAboveCell00003311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL thetaAboveCell00003311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112020 + (by + have h : ((childLL thetaAboveCell000033112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112020) h) + (by + have h : ((childLH thetaAboveCell000033112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112020) h) + (by + have h : ((childHL thetaAboveCell000033112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112020) h) + (by + have h : ((childHH thetaAboveCell000033112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112021 + (by + have h : ((childLL thetaAboveCell000033112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112021) h) + (by + have h : ((childLH thetaAboveCell000033112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112021) h) + (by + have h : ((childHL thetaAboveCell000033112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112021) h) + (by + have h : ((childHH thetaAboveCell000033112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112022 + (by + have h : ((childLL thetaAboveCell000033112022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112022) h) + (by + have h : ((childLH thetaAboveCell000033112022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112022) h) + (by + have h : ((childHL thetaAboveCell000033112022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112022) h) + (by + have h : ((childHH thetaAboveCell000033112022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112023 + (by + have h : ((childLL thetaAboveCell000033112023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112023) h) + (by + have h : ((childLH thetaAboveCell000033112023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112023) h) + (by + have h : ((childHL thetaAboveCell000033112023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112023) h) + (by + have h : ((childHH thetaAboveCell000033112023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112023) h)) + +theorem cover_subtree_bc17552a24a4 : + adaptiveCoverCheck 8 (childHH (childLL (childHL thetaAboveCell00003311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL thetaAboveCell00003311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112030 + (by + have h : ((childLL thetaAboveCell000033112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112030) h) + (by + have h : ((childLH thetaAboveCell000033112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112030) h) + (by + have h : ((childHL thetaAboveCell000033112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112030) h) + (by + have h : ((childHH thetaAboveCell000033112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112031 + (by + have h : ((childLL thetaAboveCell000033112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112031) h) + (by + have h : ((childLH thetaAboveCell000033112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112031) h) + (by + have h : ((childHL thetaAboveCell000033112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112031) h) + (by + have h : ((childHH thetaAboveCell000033112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112032 + (by + have h : ((childLL thetaAboveCell000033112032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112032) h) + (by + have h : ((childLH thetaAboveCell000033112032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112032) h) + (by + have h : ((childHL thetaAboveCell000033112032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112032) h) + (by + have h : ((childHH thetaAboveCell000033112032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112033 + (by + have h : ((childLL thetaAboveCell000033112033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112033) h) + (by + have h : ((childLH thetaAboveCell000033112033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112033) h) + (by + have h : ((childHL thetaAboveCell000033112033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112033) h) + (by + have h : ((childHH thetaAboveCell000033112033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112033) h)) + +theorem e24KC2ThetaAboveLeaf0000331120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00003311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00003311)) + cover_subtree_40b30098358c + cover_subtree_0f9e0e377596 + cover_subtree_562ee101dc47 + cover_subtree_bc17552a24a4 +theorem cover_subtree_260aee4b9fa3 : + adaptiveCoverCheck 8 (childLL (childLH (childHL thetaAboveCell00003311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL thetaAboveCell00003311))) + (by + have h : (thetaAboveCell000033112100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112100 h) + (by + have h : (thetaAboveCell000033112101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112101 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112102 + (by + have h : ((childLL thetaAboveCell000033112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112102) h) + (by + have h : ((childLH thetaAboveCell000033112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112102) h) + (by + have h : ((childHL thetaAboveCell000033112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112102) h) + (by + have h : ((childHH thetaAboveCell000033112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112103 + (by + have h : ((childLL thetaAboveCell000033112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112103) h) + (by + have h : ((childLH thetaAboveCell000033112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112103) h) + (by + have h : ((childHL thetaAboveCell000033112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112103) h) + (by + have h : ((childHH thetaAboveCell000033112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112103) h)) + +theorem cover_subtree_674fd6a8471c : + adaptiveCoverCheck 8 (childLH (childLH (childHL thetaAboveCell00003311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL thetaAboveCell00003311))) + (by + have h : (thetaAboveCell000033112110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112110 h) + (by + have h : (thetaAboveCell000033112111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112111 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112112 + (by + have h : ((childLL thetaAboveCell000033112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112112) h) + (by + have h : ((childLH thetaAboveCell000033112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112112) h) + (by + have h : ((childHL thetaAboveCell000033112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112112) h) + (by + have h : ((childHH thetaAboveCell000033112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112113 + (by + have h : ((childLL thetaAboveCell000033112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112113) h) + (by + have h : ((childLH thetaAboveCell000033112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112113) h) + (by + have h : ((childHL thetaAboveCell000033112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112113) h) + (by + have h : ((childHH thetaAboveCell000033112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112113) h)) + +theorem cover_subtree_38509f162ffa : + adaptiveCoverCheck 8 (childHL (childLH (childHL thetaAboveCell00003311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL thetaAboveCell00003311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112120 + (by + have h : ((childLL thetaAboveCell000033112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112120) h) + (by + have h : ((childLH thetaAboveCell000033112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112120) h) + (by + have h : ((childHL thetaAboveCell000033112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112120) h) + (by + have h : ((childHH thetaAboveCell000033112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112121 + (by + have h : ((childLL thetaAboveCell000033112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112121) h) + (by + have h : ((childLH thetaAboveCell000033112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112121) h) + (by + have h : ((childHL thetaAboveCell000033112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112121) h) + (by + have h : ((childHH thetaAboveCell000033112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112122 + (by + have h : ((childLL thetaAboveCell000033112122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112122) h) + (by + have h : ((childLH thetaAboveCell000033112122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112122) h) + (by + have h : ((childHL thetaAboveCell000033112122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112122) h) + (by + have h : ((childHH thetaAboveCell000033112122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112123 + (by + have h : ((childLL thetaAboveCell000033112123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112123) h) + (by + have h : ((childLH thetaAboveCell000033112123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112123) h) + (by + have h : ((childHL thetaAboveCell000033112123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112123) h) + (by + have h : ((childHH thetaAboveCell000033112123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112123) h)) + +theorem cover_subtree_2b615745aa63 : + adaptiveCoverCheck 8 (childHH (childLH (childHL thetaAboveCell00003311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL thetaAboveCell00003311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112130 + (by + have h : ((childLL thetaAboveCell000033112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112130) h) + (by + have h : ((childLH thetaAboveCell000033112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112130) h) + (by + have h : ((childHL thetaAboveCell000033112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112130) h) + (by + have h : ((childHH thetaAboveCell000033112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033112131 + (by + have h : ((childLL thetaAboveCell000033112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033112131) h) + (by + have h : ((childLH thetaAboveCell000033112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033112131) h) + (by + have h : ((childHL thetaAboveCell000033112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033112131) h) + (by + have h : ((childHH thetaAboveCell000033112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033112131) h)) + (by + have h : (thetaAboveCell000033112132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112132 h) + (by + have h : (thetaAboveCell000033112133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112133 h) + +theorem e24KC2ThetaAboveLeaf0000331121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00003311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00003311)) + cover_subtree_260aee4b9fa3 + cover_subtree_674fd6a8471c + cover_subtree_38509f162ffa + cover_subtree_2b615745aa63 +theorem e24KC2ThetaAboveLeaf0000331122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00003311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00003311)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00003311))) + (by + have h : (thetaAboveCell000033112200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112200 h) + (by + have h : (thetaAboveCell000033112201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112201 h) + (by + have h : (thetaAboveCell000033112202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112202 h) + (by + have h : (thetaAboveCell000033112203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00003311))) + (by + have h : (thetaAboveCell000033112210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112210 h) + (by + have h : (thetaAboveCell000033112211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112211 h) + (by + have h : (thetaAboveCell000033112212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112212 h) + (by + have h : (thetaAboveCell000033112213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00003311))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00003311))) h) +theorem e24KC2ThetaAboveLeaf0000331123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00003311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00003311)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00003311))) + (by + have h : (thetaAboveCell000033112300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112300 h) + (by + have h : (thetaAboveCell000033112301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112301 h) + (by + have h : (thetaAboveCell000033112302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112302 h) + (by + have h : (thetaAboveCell000033112303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00003311))) + (by + have h : (thetaAboveCell000033112310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112310 h) + (by + have h : (thetaAboveCell000033112311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112311 h) + (by + have h : (thetaAboveCell000033112312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112312 h) + (by + have h : (thetaAboveCell000033112313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033112313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00003311))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00003311))) h) +theorem cover_subtree_7b02d095f599 : + adaptiveCoverCheck 8 (childLL (childLL (childHH thetaAboveCell00003311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH thetaAboveCell00003311))) + (by + have h : (thetaAboveCell000033113000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113000 h) + (by + have h : (thetaAboveCell000033113001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113001 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033113002 + (by + have h : ((childLL thetaAboveCell000033113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033113002) h) + (by + have h : ((childLH thetaAboveCell000033113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033113002) h) + (by + have h : ((childHL thetaAboveCell000033113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033113002) h) + (by + have h : ((childHH thetaAboveCell000033113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033113002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033113003 + (by + have h : ((childLL thetaAboveCell000033113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033113003) h) + (by + have h : ((childLH thetaAboveCell000033113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033113003) h) + (by + have h : ((childHL thetaAboveCell000033113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033113003) h) + (by + have h : ((childHH thetaAboveCell000033113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033113003) h)) + +theorem cover_subtree_27bc40bbefb0 : + adaptiveCoverCheck 8 (childLH (childLL (childHH thetaAboveCell00003311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH thetaAboveCell00003311))) + (by + have h : (thetaAboveCell000033113010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113010 h) + (by + have h : (thetaAboveCell000033113011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113011 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033113012 + (by + have h : ((childLL thetaAboveCell000033113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033113012) h) + (by + have h : ((childLH thetaAboveCell000033113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033113012) h) + (by + have h : ((childHL thetaAboveCell000033113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033113012) h) + (by + have h : ((childHH thetaAboveCell000033113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033113012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033113013 + (by + have h : ((childLL thetaAboveCell000033113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033113013) h) + (by + have h : ((childLH thetaAboveCell000033113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033113013) h) + (by + have h : ((childHL thetaAboveCell000033113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033113013) h) + (by + have h : ((childHH thetaAboveCell000033113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033113013) h)) + +theorem cover_subtree_d6ec9d4db7c3 : + adaptiveCoverCheck 8 (childHL (childLL (childHH thetaAboveCell00003311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH thetaAboveCell00003311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033113020 + (by + have h : ((childLL thetaAboveCell000033113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033113020) h) + (by + have h : ((childLH thetaAboveCell000033113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033113020) h) + (by + have h : ((childHL thetaAboveCell000033113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033113020) h) + (by + have h : ((childHH thetaAboveCell000033113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033113020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033113021 + (by + have h : ((childLL thetaAboveCell000033113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033113021) h) + (by + have h : ((childLH thetaAboveCell000033113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033113021) h) + (by + have h : ((childHL thetaAboveCell000033113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033113021) h) + (by + have h : ((childHH thetaAboveCell000033113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033113021) h)) + (by + have h : (thetaAboveCell000033113022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113022 h) + (by + have h : (thetaAboveCell000033113023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113023 h) + +theorem cover_subtree_c7a6802137f2 : + adaptiveCoverCheck 8 (childHH (childLL (childHH thetaAboveCell00003311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH thetaAboveCell00003311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033113030 + (by + have h : ((childLL thetaAboveCell000033113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033113030) h) + (by + have h : ((childLH thetaAboveCell000033113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033113030) h) + (by + have h : ((childHL thetaAboveCell000033113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033113030) h) + (by + have h : ((childHH thetaAboveCell000033113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033113030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033113031 + (by + have h : ((childLL thetaAboveCell000033113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033113031) h) + (by + have h : ((childLH thetaAboveCell000033113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033113031) h) + (by + have h : ((childHL thetaAboveCell000033113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033113031) h) + (by + have h : ((childHH thetaAboveCell000033113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033113031) h)) + (by + have h : (thetaAboveCell000033113032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113032 h) + (by + have h : (thetaAboveCell000033113033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113033 h) + +theorem e24KC2ThetaAboveLeaf0000331130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00003311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00003311)) + cover_subtree_7b02d095f599 + cover_subtree_27bc40bbefb0 + cover_subtree_d6ec9d4db7c3 + cover_subtree_c7a6802137f2 +theorem cover_subtree_525965b29b43 : + adaptiveCoverCheck 8 (childLL (childLH (childHH thetaAboveCell00003311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH thetaAboveCell00003311))) + (by + have h : (thetaAboveCell000033113100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113100 h) + (by + have h : (thetaAboveCell000033113101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113101 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033113102 + (by + have h : ((childLL thetaAboveCell000033113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033113102) h) + (by + have h : ((childLH thetaAboveCell000033113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033113102) h) + (by + have h : ((childHL thetaAboveCell000033113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033113102) h) + (by + have h : ((childHH thetaAboveCell000033113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033113102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033113103 + (by + have h : ((childLL thetaAboveCell000033113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033113103) h) + (by + have h : ((childLH thetaAboveCell000033113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033113103) h) + (by + have h : ((childHL thetaAboveCell000033113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033113103) h) + (by + have h : ((childHH thetaAboveCell000033113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033113103) h)) + +theorem cover_subtree_426a701a7fc0 : + adaptiveCoverCheck 8 (childLH (childLH (childHH thetaAboveCell00003311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH thetaAboveCell00003311))) + (by + have h : (thetaAboveCell000033113110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113110 h) + (by + have h : (thetaAboveCell000033113111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113111 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033113112 + (by + have h : ((childLL thetaAboveCell000033113112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033113112) h) + (by + have h : ((childLH thetaAboveCell000033113112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033113112) h) + (by + have h : ((childHL thetaAboveCell000033113112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033113112) h) + (by + have h : ((childHH thetaAboveCell000033113112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033113112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033113113 + (by + have h : ((childLL thetaAboveCell000033113113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033113113) h) + (by + have h : ((childLH thetaAboveCell000033113113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033113113) h) + (by + have h : ((childHL thetaAboveCell000033113113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033113113) h) + (by + have h : ((childHH thetaAboveCell000033113113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033113113) h)) + +theorem cover_subtree_c43488da1c36 : + adaptiveCoverCheck 8 (childHL (childLH (childHH thetaAboveCell00003311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH thetaAboveCell00003311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033113120 + (by + have h : ((childLL thetaAboveCell000033113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033113120) h) + (by + have h : ((childLH thetaAboveCell000033113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033113120) h) + (by + have h : ((childHL thetaAboveCell000033113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033113120) h) + (by + have h : ((childHH thetaAboveCell000033113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033113120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033113121 + (by + have h : ((childLL thetaAboveCell000033113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033113121) h) + (by + have h : ((childLH thetaAboveCell000033113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033113121) h) + (by + have h : ((childHL thetaAboveCell000033113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033113121) h) + (by + have h : ((childHH thetaAboveCell000033113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033113121) h)) + (by + have h : (thetaAboveCell000033113122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113122 h) + (by + have h : (thetaAboveCell000033113123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113123 h) + +theorem cover_subtree_f77c14a0f9b2 : + adaptiveCoverCheck 8 (childHH (childLH (childHH thetaAboveCell00003311))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH thetaAboveCell00003311))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033113130 + (by + have h : ((childLL thetaAboveCell000033113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033113130) h) + (by + have h : ((childLH thetaAboveCell000033113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033113130) h) + (by + have h : ((childHL thetaAboveCell000033113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033113130) h) + (by + have h : ((childHH thetaAboveCell000033113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033113130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000033113131 + (by + have h : ((childLL thetaAboveCell000033113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000033113131) h) + (by + have h : ((childLH thetaAboveCell000033113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000033113131) h) + (by + have h : ((childHL thetaAboveCell000033113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000033113131) h) + (by + have h : ((childHH thetaAboveCell000033113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000033113131) h)) + (by + have h : (thetaAboveCell000033113132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113132 h) + (by + have h : (thetaAboveCell000033113133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113133 h) + +theorem e24KC2ThetaAboveLeaf0000331131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00003311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00003311)) + cover_subtree_525965b29b43 + cover_subtree_426a701a7fc0 + cover_subtree_c43488da1c36 + cover_subtree_f77c14a0f9b2 +theorem e24KC2ThetaAboveLeaf0000331132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00003311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00003311)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00003311))) + (by + have h : (thetaAboveCell000033113200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113200 h) + (by + have h : (thetaAboveCell000033113201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113201 h) + (by + have h : (thetaAboveCell000033113202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113202 h) + (by + have h : (thetaAboveCell000033113203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00003311))) + (by + have h : (thetaAboveCell000033113210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113210 h) + (by + have h : (thetaAboveCell000033113211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113211 h) + (by + have h : (thetaAboveCell000033113212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113212 h) + (by + have h : (thetaAboveCell000033113213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00003311))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00003311))) h) +theorem e24KC2ThetaAboveLeaf0000331133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00003311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00003311)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00003311))) + (by + have h : (thetaAboveCell000033113300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113300 h) + (by + have h : (thetaAboveCell000033113301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113301 h) + (by + have h : (thetaAboveCell000033113302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113302 h) + (by + have h : (thetaAboveCell000033113303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00003311))) + (by + have h : (thetaAboveCell000033113310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113310 h) + (by + have h : (thetaAboveCell000033113311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113311 h) + (by + have h : (thetaAboveCell000033113312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113312 h) + (by + have h : (thetaAboveCell000033113313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000033113313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00003311))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00003311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00003311))) h) +theorem e24KC2ThetaAboveLeaf0001220002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00012200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00012200)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00012200))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00012200))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLL + thetaAboveCell00012200))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLL + thetaAboveCell00012200))) h) +theorem e24KC2ThetaAboveLeaf0001220003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00012200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00012200)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00012200))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00012200))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLL + thetaAboveCell00012200))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLL + thetaAboveCell00012200))) h) +theorem e24KC2ThetaAboveLeaf0001220012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00012200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00012200)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00012200))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00012200))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLH + thetaAboveCell00012200))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLH + thetaAboveCell00012200))) h) +theorem e24KC2ThetaAboveLeaf0001220013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00012200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00012200)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00012200))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00012200))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLH + thetaAboveCell00012200))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLH + thetaAboveCell00012200))) h) +theorem cover_subtree_bc394da66032 : + adaptiveCoverCheck 8 (childLL (childLL (childHL thetaAboveCell00012200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122002000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002000 h) + (by + have h : (thetaAboveCell000122002001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002001 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122002002 + (by + have h : ((childLL thetaAboveCell000122002002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122002002) h) + (by + have h : ((childLH thetaAboveCell000122002002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122002002) h) + (by + have h : ((childHL thetaAboveCell000122002002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122002002) h) + (by + have h : ((childHH thetaAboveCell000122002002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122002002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122002003 + (by + have h : ((childLL thetaAboveCell000122002003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122002003) h) + (by + have h : ((childLH thetaAboveCell000122002003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122002003) h) + (by + have h : ((childHL thetaAboveCell000122002003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122002003) h) + (by + have h : ((childHH thetaAboveCell000122002003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122002003) h)) + +theorem cover_subtree_0f99148bdc12 : + adaptiveCoverCheck 8 (childLH (childLL (childHL thetaAboveCell00012200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122002010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002010 h) + (by + have h : (thetaAboveCell000122002011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002011 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122002012 + (by + have h : ((childLL thetaAboveCell000122002012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122002012) h) + (by + have h : ((childLH thetaAboveCell000122002012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122002012) h) + (by + have h : ((childHL thetaAboveCell000122002012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122002012) h) + (by + have h : ((childHH thetaAboveCell000122002012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122002012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122002013 + (by + have h : ((childLL thetaAboveCell000122002013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122002013) h) + (by + have h : ((childLH thetaAboveCell000122002013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122002013) h) + (by + have h : ((childHL thetaAboveCell000122002013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122002013) h) + (by + have h : ((childHH thetaAboveCell000122002013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122002013) h)) + +theorem cover_subtree_39d9268879db : + adaptiveCoverCheck 8 (childHL (childLL (childHL thetaAboveCell00012200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL thetaAboveCell00012200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122002020 + (by + have h : ((childLL thetaAboveCell000122002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122002020) h) + (by + have h : ((childLH thetaAboveCell000122002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122002020) h) + (by + have h : ((childHL thetaAboveCell000122002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122002020) h) + (by + have h : ((childHH thetaAboveCell000122002020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122002020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122002021 + (by + have h : ((childLL thetaAboveCell000122002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122002021) h) + (by + have h : ((childLH thetaAboveCell000122002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122002021) h) + (by + have h : ((childHL thetaAboveCell000122002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122002021) h) + (by + have h : ((childHH thetaAboveCell000122002021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122002021) h)) + (by + have h : (thetaAboveCell000122002022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002022 h) + (by + have h : (thetaAboveCell000122002023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002023 h) + +theorem cover_subtree_39d9037f050e : + adaptiveCoverCheck 8 (childHH (childLL (childHL thetaAboveCell00012200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL thetaAboveCell00012200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122002030 + (by + have h : ((childLL thetaAboveCell000122002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122002030) h) + (by + have h : ((childLH thetaAboveCell000122002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122002030) h) + (by + have h : ((childHL thetaAboveCell000122002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122002030) h) + (by + have h : ((childHH thetaAboveCell000122002030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122002030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122002031 + (by + have h : ((childLL thetaAboveCell000122002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122002031) h) + (by + have h : ((childLH thetaAboveCell000122002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122002031) h) + (by + have h : ((childHL thetaAboveCell000122002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122002031) h) + (by + have h : ((childHH thetaAboveCell000122002031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122002031) h)) + (by + have h : (thetaAboveCell000122002032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002032 h) + (by + have h : (thetaAboveCell000122002033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002033 h) + +theorem e24KC2ThetaAboveLeaf0001220020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00012200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00012200)) + cover_subtree_bc394da66032 + cover_subtree_0f99148bdc12 + cover_subtree_39d9268879db + cover_subtree_39d9037f050e +theorem e24KC2ThetaAboveLeaf0001220021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00012200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00012200)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122002100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002100 h) + (by + have h : (thetaAboveCell000122002101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002101 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122002102 + (by + have h : ((childLL thetaAboveCell000122002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122002102) h) + (by + have h : ((childLH thetaAboveCell000122002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122002102) h) + (by + have h : ((childHL thetaAboveCell000122002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122002102) h) + (by + have h : ((childHH thetaAboveCell000122002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122002102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122002103 + (by + have h : ((childLL thetaAboveCell000122002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122002103) h) + (by + have h : ((childLH thetaAboveCell000122002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122002103) h) + (by + have h : ((childHL thetaAboveCell000122002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122002103) h) + (by + have h : ((childHH thetaAboveCell000122002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122002103) h))) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122002110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002110 h) + (by + have h : (thetaAboveCell000122002111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002111 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122002112 + (by + have h : ((childLL thetaAboveCell000122002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122002112) h) + (by + have h : ((childLH thetaAboveCell000122002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122002112) h) + (by + have h : ((childHL thetaAboveCell000122002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122002112) h) + (by + have h : ((childHH thetaAboveCell000122002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122002112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122002113 + (by + have h : ((childLL thetaAboveCell000122002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122002113) h) + (by + have h : ((childLH thetaAboveCell000122002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122002113) h) + (by + have h : ((childHL thetaAboveCell000122002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122002113) h) + (by + have h : ((childHH thetaAboveCell000122002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122002113) h))) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00012200))) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122002120 + (by + have h : ((childLL thetaAboveCell000122002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122002120) h) + (by + have h : ((childLH thetaAboveCell000122002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122002120) h) + (by + have h : ((childHL thetaAboveCell000122002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122002120) h) + (by + have h : ((childHH thetaAboveCell000122002120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122002120) h)) + (by + have h : (thetaAboveCell000122002121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002121 h) + (by + have h : (thetaAboveCell000122002122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002122 h) + (by + have h : (thetaAboveCell000122002123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122002130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002130 h) + (by + have h : (thetaAboveCell000122002131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002131 h) + (by + have h : (thetaAboveCell000122002132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002132 h) + (by + have h : (thetaAboveCell000122002133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002133 h)) +theorem e24KC2ThetaAboveLeaf0001220022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00012200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00012200)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122002200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002200 h) + (by + have h : (thetaAboveCell000122002201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002201 h) + (by + have h : (thetaAboveCell000122002202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002202 h) + (by + have h : (thetaAboveCell000122002203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122002210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002210 h) + (by + have h : (thetaAboveCell000122002211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002211 h) + (by + have h : (thetaAboveCell000122002212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002212 h) + (by + have h : (thetaAboveCell000122002213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00012200))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00012200))) h) +theorem e24KC2ThetaAboveLeaf0001220023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00012200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00012200)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122002300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002300 h) + (by + have h : (thetaAboveCell000122002301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002301 h) + (by + have h : (thetaAboveCell000122002302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002302 h) + (by + have h : (thetaAboveCell000122002303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122002310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002310 h) + (by + have h : (thetaAboveCell000122002311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002311 h) + (by + have h : (thetaAboveCell000122002312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002312 h) + (by + have h : (thetaAboveCell000122002313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122002313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00012200))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00012200))) h) +theorem e24KC2ThetaAboveLeaf0001220030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00012200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00012200)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122003000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003000 h) + (by + have h : (thetaAboveCell000122003001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003001 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122003002 + (by + have h : ((childLL thetaAboveCell000122003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122003002) h) + (by + have h : ((childLH thetaAboveCell000122003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122003002) h) + (by + have h : ((childHL thetaAboveCell000122003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122003002) h) + (by + have h : ((childHH thetaAboveCell000122003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122003002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122003003 + (by + have h : ((childLL thetaAboveCell000122003003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122003003) h) + (by + have h : ((childLH thetaAboveCell000122003003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122003003) h) + (by + have h : ((childHL thetaAboveCell000122003003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122003003) h) + (by + have h : ((childHH thetaAboveCell000122003003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122003003) h))) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122003010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003010 h) + (by + have h : (thetaAboveCell000122003011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003011 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122003012 + (by + have h : ((childLL thetaAboveCell000122003012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122003012) h) + (by + have h : ((childLH thetaAboveCell000122003012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122003012) h) + (by + have h : ((childHL thetaAboveCell000122003012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122003012) h) + (by + have h : ((childHH thetaAboveCell000122003012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122003012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122003013 + (by + have h : ((childLL thetaAboveCell000122003013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122003013) h) + (by + have h : ((childLH thetaAboveCell000122003013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122003013) h) + (by + have h : ((childHL thetaAboveCell000122003013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122003013) h) + (by + have h : ((childHH thetaAboveCell000122003013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122003013) h))) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122003020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003020 h) + (by + have h : (thetaAboveCell000122003021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003021 h) + (by + have h : (thetaAboveCell000122003022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003022 h) + (by + have h : (thetaAboveCell000122003023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122003030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003030 h) + (by + have h : (thetaAboveCell000122003031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003031 h) + (by + have h : (thetaAboveCell000122003032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003032 h) + (by + have h : (thetaAboveCell000122003033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003033 h)) +theorem e24KC2ThetaAboveLeaf0001220031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00012200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00012200)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122003100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003100 h) + (by + have h : (thetaAboveCell000122003101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003101 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122003102 + (by + have h : ((childLL thetaAboveCell000122003102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122003102) h) + (by + have h : ((childLH thetaAboveCell000122003102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122003102) h) + (by + have h : ((childHL thetaAboveCell000122003102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122003102) h) + (by + have h : ((childHH thetaAboveCell000122003102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122003102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122003103 + (by + have h : ((childLL thetaAboveCell000122003103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122003103) h) + (by + have h : ((childLH thetaAboveCell000122003103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122003103) h) + (by + have h : ((childHL thetaAboveCell000122003103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122003103) h) + (by + have h : ((childHH thetaAboveCell000122003103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122003103) h))) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122003110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003110 h) + (by + have h : (thetaAboveCell000122003111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003111 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122003112 + (by + have h : ((childLL thetaAboveCell000122003112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122003112) h) + (by + have h : ((childLH thetaAboveCell000122003112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122003112) h) + (by + have h : ((childHL thetaAboveCell000122003112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122003112) h) + (by + have h : ((childHH thetaAboveCell000122003112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122003112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122003113 + (by + have h : ((childLL thetaAboveCell000122003113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122003113) h) + (by + have h : ((childLH thetaAboveCell000122003113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122003113) h) + (by + have h : ((childHL thetaAboveCell000122003113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122003113) h) + (by + have h : ((childHH thetaAboveCell000122003113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122003113) h))) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122003120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003120 h) + (by + have h : (thetaAboveCell000122003121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003121 h) + (by + have h : (thetaAboveCell000122003122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003122 h) + (by + have h : (thetaAboveCell000122003123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122003130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003130 h) + (by + have h : (thetaAboveCell000122003131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003131 h) + (by + have h : (thetaAboveCell000122003132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003132 h) + (by + have h : (thetaAboveCell000122003133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003133 h)) +theorem e24KC2ThetaAboveLeaf0001220032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00012200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00012200)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122003200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003200 h) + (by + have h : (thetaAboveCell000122003201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003201 h) + (by + have h : (thetaAboveCell000122003202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003202 h) + (by + have h : (thetaAboveCell000122003203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122003210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003210 h) + (by + have h : (thetaAboveCell000122003211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003211 h) + (by + have h : (thetaAboveCell000122003212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003212 h) + (by + have h : (thetaAboveCell000122003213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00012200))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00012200))) h) +theorem e24KC2ThetaAboveLeaf0001220033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00012200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00012200)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122003300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003300 h) + (by + have h : (thetaAboveCell000122003301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003301 h) + (by + have h : (thetaAboveCell000122003302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003302 h) + (by + have h : (thetaAboveCell000122003303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00012200))) + (by + have h : (thetaAboveCell000122003310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003310 h) + (by + have h : (thetaAboveCell000122003311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003311 h) + (by + have h : (thetaAboveCell000122003312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003312 h) + (by + have h : (thetaAboveCell000122003313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122003313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00012200))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00012200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00012200))) h) +theorem e24KC2ThetaAboveLeaf0001220102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00012201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00012201)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00012201))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00012201))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLL + thetaAboveCell00012201))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLL + thetaAboveCell00012201))) h) +theorem e24KC2ThetaAboveLeaf0001220103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00012201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00012201)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00012201))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00012201))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLL + thetaAboveCell00012201))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLL + thetaAboveCell00012201))) h) +theorem e24KC2ThetaAboveLeaf0001220112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00012201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00012201)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00012201))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00012201))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLH + thetaAboveCell00012201))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLH + thetaAboveCell00012201))) h) +theorem e24KC2ThetaAboveLeaf0001220113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00012201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00012201)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00012201))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00012201))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLH + thetaAboveCell00012201))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLH + thetaAboveCell00012201))) h) +theorem e24KC2ThetaAboveLeaf0001220120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00012201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00012201)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122012000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012000 h) + (by + have h : (thetaAboveCell000122012001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012001 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122012002 + (by + have h : ((childLL thetaAboveCell000122012002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122012002) h) + (by + have h : ((childLH thetaAboveCell000122012002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122012002) h) + (by + have h : ((childHL thetaAboveCell000122012002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122012002) h) + (by + have h : ((childHH thetaAboveCell000122012002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122012002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122012003 + (by + have h : ((childLL thetaAboveCell000122012003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122012003) h) + (by + have h : ((childLH thetaAboveCell000122012003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122012003) h) + (by + have h : ((childHL thetaAboveCell000122012003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122012003) h) + (by + have h : ((childHH thetaAboveCell000122012003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122012003) h))) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122012010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012010 h) + (by + have h : (thetaAboveCell000122012011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012011 h) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122012012 + (by + have h : ((childLL thetaAboveCell000122012012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122012012) h) + (by + have h : ((childLH thetaAboveCell000122012012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122012012) h) + (by + have h : ((childHL thetaAboveCell000122012012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122012012) h) + (by + have h : ((childHH thetaAboveCell000122012012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122012012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000122012013 + (by + have h : ((childLL thetaAboveCell000122012013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000122012013) h) + (by + have h : ((childLH thetaAboveCell000122012013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000122012013) h) + (by + have h : ((childHL thetaAboveCell000122012013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000122012013) h) + (by + have h : ((childHH thetaAboveCell000122012013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000122012013) h))) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122012020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012020 h) + (by + have h : (thetaAboveCell000122012021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012021 h) + (by + have h : (thetaAboveCell000122012022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012022 h) + (by + have h : (thetaAboveCell000122012023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122012030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012030 h) + (by + have h : (thetaAboveCell000122012031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012031 h) + (by + have h : (thetaAboveCell000122012032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012032 h) + (by + have h : (thetaAboveCell000122012033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012033 h)) +theorem e24KC2ThetaAboveLeaf0001220121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00012201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00012201)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122012100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012100 h) + (by + have h : (thetaAboveCell000122012101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012101 h) + (by + have h : (thetaAboveCell000122012102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012102 h) + (by + have h : (thetaAboveCell000122012103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122012110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012110 h) + (by + have h : (thetaAboveCell000122012111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012111 h) + (by + have h : (thetaAboveCell000122012112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012112 h) + (by + have h : (thetaAboveCell000122012113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012113 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122012120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012120 h) + (by + have h : (thetaAboveCell000122012121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012121 h) + (by + have h : (thetaAboveCell000122012122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012122 h) + (by + have h : (thetaAboveCell000122012123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122012130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012130 h) + (by + have h : (thetaAboveCell000122012131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012131 h) + (by + have h : (thetaAboveCell000122012132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012132 h) + (by + have h : (thetaAboveCell000122012133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012133 h)) +theorem e24KC2ThetaAboveLeaf0001220122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00012201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00012201)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122012200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012200 h) + (by + have h : (thetaAboveCell000122012201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012201 h) + (by + have h : (thetaAboveCell000122012202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012202 h) + (by + have h : (thetaAboveCell000122012203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122012210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012210 h) + (by + have h : (thetaAboveCell000122012211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012211 h) + (by + have h : (thetaAboveCell000122012212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012212 h) + (by + have h : (thetaAboveCell000122012213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00012201))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00012201))) h) +theorem e24KC2ThetaAboveLeaf0001220123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00012201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00012201)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122012300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012300 h) + (by + have h : (thetaAboveCell000122012301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012301 h) + (by + have h : (thetaAboveCell000122012302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012302 h) + (by + have h : (thetaAboveCell000122012303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122012310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012310 h) + (by + have h : (thetaAboveCell000122012311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012311 h) + (by + have h : (thetaAboveCell000122012312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012312 h) + (by + have h : (thetaAboveCell000122012313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122012313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00012201))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00012201))) h) +theorem e24KC2ThetaAboveLeaf0001220130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00012201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00012201)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122013000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013000 h) + (by + have h : (thetaAboveCell000122013001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013001 h) + (by + have h : (thetaAboveCell000122013002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013002 h) + (by + have h : (thetaAboveCell000122013003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122013010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013010 h) + (by + have h : (thetaAboveCell000122013011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013011 h) + (by + have h : (thetaAboveCell000122013012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013012 h) + (by + have h : (thetaAboveCell000122013013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013013 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122013020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013020 h) + (by + have h : (thetaAboveCell000122013021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013021 h) + (by + have h : (thetaAboveCell000122013022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013022 h) + (by + have h : (thetaAboveCell000122013023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122013030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013030 h) + (by + have h : (thetaAboveCell000122013031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013031 h) + (by + have h : (thetaAboveCell000122013032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013032 h) + (by + have h : (thetaAboveCell000122013033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013033 h)) +theorem e24KC2ThetaAboveLeaf0001220131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00012201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00012201)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122013100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013100 h) + (by + have h : (thetaAboveCell000122013101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013101 h) + (by + have h : (thetaAboveCell000122013102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013102 h) + (by + have h : (thetaAboveCell000122013103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122013110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013110 h) + (by + have h : (thetaAboveCell000122013111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013111 h) + (by + have h : (thetaAboveCell000122013112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013112 h) + (by + have h : (thetaAboveCell000122013113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013113 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122013120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013120 h) + (by + have h : (thetaAboveCell000122013121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013121 h) + (by + have h : (thetaAboveCell000122013122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013122 h) + (by + have h : (thetaAboveCell000122013123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122013130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013130 h) + (by + have h : (thetaAboveCell000122013131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013131 h) + (by + have h : (thetaAboveCell000122013132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013132 h) + (by + have h : (thetaAboveCell000122013133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013133 h)) +theorem e24KC2ThetaAboveLeaf0001220132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00012201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00012201)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122013200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013200 h) + (by + have h : (thetaAboveCell000122013201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013201 h) + (by + have h : (thetaAboveCell000122013202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013202 h) + (by + have h : (thetaAboveCell000122013203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122013210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013210 h) + (by + have h : (thetaAboveCell000122013211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013211 h) + (by + have h : (thetaAboveCell000122013212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013212 h) + (by + have h : (thetaAboveCell000122013213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00012201))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00012201))) h) +theorem e24KC2ThetaAboveLeaf0001220133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00012201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00012201)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122013300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013300 h) + (by + have h : (thetaAboveCell000122013301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013301 h) + (by + have h : (thetaAboveCell000122013302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013302 h) + (by + have h : (thetaAboveCell000122013303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00012201))) + (by + have h : (thetaAboveCell000122013310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013310 h) + (by + have h : (thetaAboveCell000122013311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013311 h) + (by + have h : (thetaAboveCell000122013312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013312 h) + (by + have h : (thetaAboveCell000122013313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122013313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00012201))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00012201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00012201))) h) +theorem e24KC2ThetaAboveLeaf0001221002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00012210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00012210)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00012210))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00012210))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLL + thetaAboveCell00012210))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLL + thetaAboveCell00012210))) h) +theorem e24KC2ThetaAboveLeaf0001221003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00012210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00012210)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00012210))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00012210))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLL + thetaAboveCell00012210))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLL + thetaAboveCell00012210))) h) +theorem e24KC2ThetaAboveLeaf0001221012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00012210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00012210)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00012210))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00012210))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLH + thetaAboveCell00012210))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLH + thetaAboveCell00012210))) h) +theorem e24KC2ThetaAboveLeaf0001221013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00012210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00012210)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00012210))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00012210))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLH + thetaAboveCell00012210))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLH + thetaAboveCell00012210))) h) +theorem e24KC2ThetaAboveLeaf0001221020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00012210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00012210)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122102000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102000 h) + (by + have h : (thetaAboveCell000122102001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102001 h) + (by + have h : (thetaAboveCell000122102002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102002 h) + (by + have h : (thetaAboveCell000122102003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122102010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102010 h) + (by + have h : (thetaAboveCell000122102011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102011 h) + (by + have h : (thetaAboveCell000122102012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102012 h) + (by + have h : (thetaAboveCell000122102013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102013 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122102020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102020 h) + (by + have h : (thetaAboveCell000122102021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102021 h) + (by + have h : (thetaAboveCell000122102022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102022 h) + (by + have h : (thetaAboveCell000122102023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122102030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102030 h) + (by + have h : (thetaAboveCell000122102031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102031 h) + (by + have h : (thetaAboveCell000122102032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102032 h) + (by + have h : (thetaAboveCell000122102033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102033 h)) +theorem e24KC2ThetaAboveLeaf0001221021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00012210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00012210)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122102100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102100 h) + (by + have h : (thetaAboveCell000122102101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102101 h) + (by + have h : (thetaAboveCell000122102102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102102 h) + (by + have h : (thetaAboveCell000122102103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122102110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102110 h) + (by + have h : (thetaAboveCell000122102111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102111 h) + (by + have h : (thetaAboveCell000122102112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102112 h) + (by + have h : (thetaAboveCell000122102113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102113 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122102120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102120 h) + (by + have h : (thetaAboveCell000122102121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102121 h) + (by + have h : (thetaAboveCell000122102122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102122 h) + (by + have h : (thetaAboveCell000122102123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122102130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102130 h) + (by + have h : (thetaAboveCell000122102131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102131 h) + (by + have h : (thetaAboveCell000122102132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102132 h) + (by + have h : (thetaAboveCell000122102133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102133 h)) +theorem e24KC2ThetaAboveLeaf0001221022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00012210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00012210)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122102200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102200 h) + (by + have h : (thetaAboveCell000122102201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102201 h) + (by + have h : (thetaAboveCell000122102202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102202 h) + (by + have h : (thetaAboveCell000122102203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122102210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102210 h) + (by + have h : (thetaAboveCell000122102211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102211 h) + (by + have h : (thetaAboveCell000122102212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102212 h) + (by + have h : (thetaAboveCell000122102213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00012210))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00012210))) h) +theorem e24KC2ThetaAboveLeaf0001221023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00012210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00012210)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122102300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102300 h) + (by + have h : (thetaAboveCell000122102301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102301 h) + (by + have h : (thetaAboveCell000122102302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102302 h) + (by + have h : (thetaAboveCell000122102303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122102310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102310 h) + (by + have h : (thetaAboveCell000122102311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102311 h) + (by + have h : (thetaAboveCell000122102312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102312 h) + (by + have h : (thetaAboveCell000122102313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122102313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00012210))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00012210))) h) +theorem e24KC2ThetaAboveLeaf0001221030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00012210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00012210)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122103000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103000 h) + (by + have h : (thetaAboveCell000122103001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103001 h) + (by + have h : (thetaAboveCell000122103002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103002 h) + (by + have h : (thetaAboveCell000122103003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122103010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103010 h) + (by + have h : (thetaAboveCell000122103011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103011 h) + (by + have h : (thetaAboveCell000122103012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103012 h) + (by + have h : (thetaAboveCell000122103013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103013 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122103020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103020 h) + (by + have h : (thetaAboveCell000122103021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103021 h) + (by + have h : (thetaAboveCell000122103022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103022 h) + (by + have h : (thetaAboveCell000122103023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122103030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103030 h) + (by + have h : (thetaAboveCell000122103031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103031 h) + (by + have h : (thetaAboveCell000122103032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103032 h) + (by + have h : (thetaAboveCell000122103033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103033 h)) +theorem e24KC2ThetaAboveLeaf0001221031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00012210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00012210)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122103100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103100 h) + (by + have h : (thetaAboveCell000122103101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103101 h) + (by + have h : (thetaAboveCell000122103102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103102 h) + (by + have h : (thetaAboveCell000122103103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122103110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103110 h) + (by + have h : (thetaAboveCell000122103111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103111 h) + (by + have h : (thetaAboveCell000122103112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103112 h) + (by + have h : (thetaAboveCell000122103113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103113 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122103120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103120 h) + (by + have h : (thetaAboveCell000122103121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103121 h) + (by + have h : (thetaAboveCell000122103122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103122 h) + (by + have h : (thetaAboveCell000122103123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122103130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103130 h) + (by + have h : (thetaAboveCell000122103131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103131 h) + (by + have h : (thetaAboveCell000122103132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103132 h) + (by + have h : (thetaAboveCell000122103133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103133 h)) +theorem e24KC2ThetaAboveLeaf0001221032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00012210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00012210)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122103200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103200 h) + (by + have h : (thetaAboveCell000122103201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103201 h) + (by + have h : (thetaAboveCell000122103202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103202 h) + (by + have h : (thetaAboveCell000122103203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122103210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103210 h) + (by + have h : (thetaAboveCell000122103211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103211 h) + (by + have h : (thetaAboveCell000122103212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103212 h) + (by + have h : (thetaAboveCell000122103213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00012210))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00012210))) h) +theorem e24KC2ThetaAboveLeaf0001221033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00012210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00012210)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122103300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103300 h) + (by + have h : (thetaAboveCell000122103301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103301 h) + (by + have h : (thetaAboveCell000122103302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103302 h) + (by + have h : (thetaAboveCell000122103303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00012210))) + (by + have h : (thetaAboveCell000122103310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103310 h) + (by + have h : (thetaAboveCell000122103311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103311 h) + (by + have h : (thetaAboveCell000122103312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103312 h) + (by + have h : (thetaAboveCell000122103313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122103313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00012210))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00012210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00012210))) h) +theorem e24KC2ThetaAboveLeaf0001221102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00012211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00012211)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00012211))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00012211))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLL + thetaAboveCell00012211))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLL + thetaAboveCell00012211))) h) +theorem e24KC2ThetaAboveLeaf0001221103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00012211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00012211)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00012211))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00012211))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLL + thetaAboveCell00012211))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLL + thetaAboveCell00012211))) h) +theorem e24KC2ThetaAboveLeaf0001221112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00012211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00012211)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00012211))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00012211))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLH + thetaAboveCell00012211))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLH + thetaAboveCell00012211))) h) +theorem e24KC2ThetaAboveLeaf0001221113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00012211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00012211)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00012211))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00012211))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLH + thetaAboveCell00012211))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLH + thetaAboveCell00012211))) h) +theorem e24KC2ThetaAboveLeaf0001221120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00012211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00012211)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122112000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112000 h) + (by + have h : (thetaAboveCell000122112001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112001 h) + (by + have h : (thetaAboveCell000122112002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112002 h) + (by + have h : (thetaAboveCell000122112003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122112010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112010 h) + (by + have h : (thetaAboveCell000122112011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112011 h) + (by + have h : (thetaAboveCell000122112012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112012 h) + (by + have h : (thetaAboveCell000122112013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112013 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122112020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112020 h) + (by + have h : (thetaAboveCell000122112021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112021 h) + (by + have h : (thetaAboveCell000122112022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112022 h) + (by + have h : (thetaAboveCell000122112023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122112030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112030 h) + (by + have h : (thetaAboveCell000122112031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112031 h) + (by + have h : (thetaAboveCell000122112032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112032 h) + (by + have h : (thetaAboveCell000122112033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112033 h)) +theorem e24KC2ThetaAboveLeaf0001221121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00012211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00012211)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122112100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112100 h) + (by + have h : (thetaAboveCell000122112101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112101 h) + (by + have h : (thetaAboveCell000122112102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112102 h) + (by + have h : (thetaAboveCell000122112103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122112110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112110 h) + (by + have h : (thetaAboveCell000122112111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112111 h) + (by + have h : (thetaAboveCell000122112112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112112 h) + (by + have h : (thetaAboveCell000122112113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112113 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122112120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112120 h) + (by + have h : (thetaAboveCell000122112121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112121 h) + (by + have h : (thetaAboveCell000122112122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112122 h) + (by + have h : (thetaAboveCell000122112123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122112130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112130 h) + (by + have h : (thetaAboveCell000122112131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112131 h) + (by + have h : (thetaAboveCell000122112132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112132 h) + (by + have h : (thetaAboveCell000122112133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112133 h)) +theorem e24KC2ThetaAboveLeaf0001221122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00012211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00012211)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122112200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112200 h) + (by + have h : (thetaAboveCell000122112201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112201 h) + (by + have h : (thetaAboveCell000122112202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112202 h) + (by + have h : (thetaAboveCell000122112203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122112210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112210 h) + (by + have h : (thetaAboveCell000122112211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112211 h) + (by + have h : (thetaAboveCell000122112212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112212 h) + (by + have h : (thetaAboveCell000122112213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00012211))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00012211))) h) +theorem e24KC2ThetaAboveLeaf0001221123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00012211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00012211)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122112300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112300 h) + (by + have h : (thetaAboveCell000122112301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112301 h) + (by + have h : (thetaAboveCell000122112302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112302 h) + (by + have h : (thetaAboveCell000122112303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122112310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112310 h) + (by + have h : (thetaAboveCell000122112311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112311 h) + (by + have h : (thetaAboveCell000122112312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112312 h) + (by + have h : (thetaAboveCell000122112313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122112313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00012211))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00012211))) h) +theorem e24KC2ThetaAboveLeaf0001221130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00012211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00012211)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122113000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113000 h) + (by + have h : (thetaAboveCell000122113001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113001 h) + (by + have h : (thetaAboveCell000122113002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113002 h) + (by + have h : (thetaAboveCell000122113003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122113010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113010 h) + (by + have h : (thetaAboveCell000122113011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113011 h) + (by + have h : (thetaAboveCell000122113012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113012 h) + (by + have h : (thetaAboveCell000122113013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113013 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122113020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113020 h) + (by + have h : (thetaAboveCell000122113021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113021 h) + (by + have h : (thetaAboveCell000122113022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113022 h) + (by + have h : (thetaAboveCell000122113023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122113030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113030 h) + (by + have h : (thetaAboveCell000122113031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113031 h) + (by + have h : (thetaAboveCell000122113032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113032 h) + (by + have h : (thetaAboveCell000122113033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113033 h)) +theorem e24KC2ThetaAboveLeaf0001221131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00012211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00012211)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122113100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113100 h) + (by + have h : (thetaAboveCell000122113101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113101 h) + (by + have h : (thetaAboveCell000122113102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113102 h) + (by + have h : (thetaAboveCell000122113103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122113110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113110 h) + (by + have h : (thetaAboveCell000122113111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113111 h) + (by + have h : (thetaAboveCell000122113112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113112 h) + (by + have h : (thetaAboveCell000122113113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113113 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122113120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113120 h) + (by + have h : (thetaAboveCell000122113121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113121 h) + (by + have h : (thetaAboveCell000122113122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113122 h) + (by + have h : (thetaAboveCell000122113123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122113130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113130 h) + (by + have h : (thetaAboveCell000122113131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113131 h) + (by + have h : (thetaAboveCell000122113132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113132 h) + (by + have h : (thetaAboveCell000122113133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113133 h)) +theorem e24KC2ThetaAboveLeaf0001221132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00012211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00012211)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122113200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113200 h) + (by + have h : (thetaAboveCell000122113201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113201 h) + (by + have h : (thetaAboveCell000122113202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113202 h) + (by + have h : (thetaAboveCell000122113203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122113210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113210 h) + (by + have h : (thetaAboveCell000122113211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113211 h) + (by + have h : (thetaAboveCell000122113212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113212 h) + (by + have h : (thetaAboveCell000122113213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00012211))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00012211))) h) +theorem e24KC2ThetaAboveLeaf0001221133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00012211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00012211)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122113300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113300 h) + (by + have h : (thetaAboveCell000122113301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113301 h) + (by + have h : (thetaAboveCell000122113302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113302 h) + (by + have h : (thetaAboveCell000122113303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00012211))) + (by + have h : (thetaAboveCell000122113310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113310 h) + (by + have h : (thetaAboveCell000122113311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113311 h) + (by + have h : (thetaAboveCell000122113312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113312 h) + (by + have h : (thetaAboveCell000122113313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000122113313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00012211))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00012211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00012211))) h) +theorem e24KC2ThetaAboveLeaf0001230002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00012300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00012300)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00012300))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00012300))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLL + thetaAboveCell00012300))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLL + thetaAboveCell00012300))) h) +theorem e24KC2ThetaAboveLeaf0001230003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00012300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00012300)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00012300))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00012300))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLL + thetaAboveCell00012300))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLL + thetaAboveCell00012300))) h) +theorem e24KC2ThetaAboveLeaf0001230012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00012300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00012300)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00012300))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00012300))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLH + thetaAboveCell00012300))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLH + thetaAboveCell00012300))) h) +theorem e24KC2ThetaAboveLeaf0001230013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00012300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00012300)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00012300))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00012300))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLH + thetaAboveCell00012300))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLH + thetaAboveCell00012300))) h) +theorem e24KC2ThetaAboveLeaf0001230020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00012300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00012300)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123002000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002000 h) + (by + have h : (thetaAboveCell000123002001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002001 h) + (by + have h : (thetaAboveCell000123002002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002002 h) + (by + have h : (thetaAboveCell000123002003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123002010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002010 h) + (by + have h : (thetaAboveCell000123002011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002011 h) + (by + have h : (thetaAboveCell000123002012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002012 h) + (by + have h : (thetaAboveCell000123002013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002013 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123002020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002020 h) + (by + have h : (thetaAboveCell000123002021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002021 h) + (by + have h : (thetaAboveCell000123002022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002022 h) + (by + have h : (thetaAboveCell000123002023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123002030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002030 h) + (by + have h : (thetaAboveCell000123002031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002031 h) + (by + have h : (thetaAboveCell000123002032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002032 h) + (by + have h : (thetaAboveCell000123002033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002033 h)) +theorem e24KC2ThetaAboveLeaf0001230021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00012300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00012300)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123002100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002100 h) + (by + have h : (thetaAboveCell000123002101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002101 h) + (by + have h : (thetaAboveCell000123002102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002102 h) + (by + have h : (thetaAboveCell000123002103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123002110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002110 h) + (by + have h : (thetaAboveCell000123002111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002111 h) + (by + have h : (thetaAboveCell000123002112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002112 h) + (by + have h : (thetaAboveCell000123002113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002113 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123002120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002120 h) + (by + have h : (thetaAboveCell000123002121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002121 h) + (by + have h : (thetaAboveCell000123002122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002122 h) + (by + have h : (thetaAboveCell000123002123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123002130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002130 h) + (by + have h : (thetaAboveCell000123002131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002131 h) + (by + have h : (thetaAboveCell000123002132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002132 h) + (by + have h : (thetaAboveCell000123002133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002133 h)) +theorem e24KC2ThetaAboveLeaf0001230022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00012300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00012300)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123002200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002200 h) + (by + have h : (thetaAboveCell000123002201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002201 h) + (by + have h : (thetaAboveCell000123002202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002202 h) + (by + have h : (thetaAboveCell000123002203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123002210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002210 h) + (by + have h : (thetaAboveCell000123002211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002211 h) + (by + have h : (thetaAboveCell000123002212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002212 h) + (by + have h : (thetaAboveCell000123002213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00012300))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00012300))) h) +theorem e24KC2ThetaAboveLeaf0001230023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00012300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00012300)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123002300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002300 h) + (by + have h : (thetaAboveCell000123002301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002301 h) + (by + have h : (thetaAboveCell000123002302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002302 h) + (by + have h : (thetaAboveCell000123002303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123002310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002310 h) + (by + have h : (thetaAboveCell000123002311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002311 h) + (by + have h : (thetaAboveCell000123002312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002312 h) + (by + have h : (thetaAboveCell000123002313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123002313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00012300))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00012300))) h) +theorem e24KC2ThetaAboveLeaf0001230030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00012300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00012300)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123003000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003000 h) + (by + have h : (thetaAboveCell000123003001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003001 h) + (by + have h : (thetaAboveCell000123003002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003002 h) + (by + have h : (thetaAboveCell000123003003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123003010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003010 h) + (by + have h : (thetaAboveCell000123003011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003011 h) + (by + have h : (thetaAboveCell000123003012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003012 h) + (by + have h : (thetaAboveCell000123003013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003013 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123003020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003020 h) + (by + have h : (thetaAboveCell000123003021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003021 h) + (by + have h : (thetaAboveCell000123003022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003022 h) + (by + have h : (thetaAboveCell000123003023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123003030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003030 h) + (by + have h : (thetaAboveCell000123003031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003031 h) + (by + have h : (thetaAboveCell000123003032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003032 h) + (by + have h : (thetaAboveCell000123003033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003033 h)) +theorem e24KC2ThetaAboveLeaf0001230031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00012300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00012300)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123003100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003100 h) + (by + have h : (thetaAboveCell000123003101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003101 h) + (by + have h : (thetaAboveCell000123003102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003102 h) + (by + have h : (thetaAboveCell000123003103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123003110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003110 h) + (by + have h : (thetaAboveCell000123003111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003111 h) + (by + have h : (thetaAboveCell000123003112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003112 h) + (by + have h : (thetaAboveCell000123003113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003113 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123003120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003120 h) + (by + have h : (thetaAboveCell000123003121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003121 h) + (by + have h : (thetaAboveCell000123003122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003122 h) + (by + have h : (thetaAboveCell000123003123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123003130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003130 h) + (by + have h : (thetaAboveCell000123003131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003131 h) + (by + have h : (thetaAboveCell000123003132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003132 h) + (by + have h : (thetaAboveCell000123003133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003133 h)) +theorem e24KC2ThetaAboveLeaf0001230032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00012300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00012300)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123003200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003200 h) + (by + have h : (thetaAboveCell000123003201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003201 h) + (by + have h : (thetaAboveCell000123003202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003202 h) + (by + have h : (thetaAboveCell000123003203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123003210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003210 h) + (by + have h : (thetaAboveCell000123003211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003211 h) + (by + have h : (thetaAboveCell000123003212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003212 h) + (by + have h : (thetaAboveCell000123003213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00012300))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00012300))) h) +theorem e24KC2ThetaAboveLeaf0001230033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00012300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00012300)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123003300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003300 h) + (by + have h : (thetaAboveCell000123003301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003301 h) + (by + have h : (thetaAboveCell000123003302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003302 h) + (by + have h : (thetaAboveCell000123003303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00012300))) + (by + have h : (thetaAboveCell000123003310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003310 h) + (by + have h : (thetaAboveCell000123003311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003311 h) + (by + have h : (thetaAboveCell000123003312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003312 h) + (by + have h : (thetaAboveCell000123003313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123003313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00012300))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00012300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00012300))) h) +theorem e24KC2ThetaAboveLeaf0001230102 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00012301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00012301)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00012301))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00012301))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLL + thetaAboveCell00012301))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLL + thetaAboveCell00012301))) h) +theorem e24KC2ThetaAboveLeaf0001230103 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00012301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00012301)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00012301))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00012301))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLL + thetaAboveCell00012301))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLL + thetaAboveCell00012301))) h) +theorem e24KC2ThetaAboveLeaf0001230112 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00012301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00012301)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00012301))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00012301))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLH + thetaAboveCell00012301))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLH + thetaAboveCell00012301))) h) +theorem e24KC2ThetaAboveLeaf0001230113 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00012301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00012301)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00012301))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00012301))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childLH + thetaAboveCell00012301))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childLH + thetaAboveCell00012301))) h) +theorem e24KC2ThetaAboveLeaf0001230120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00012301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00012301)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123012000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012000 h) + (by + have h : (thetaAboveCell000123012001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012001 h) + (by + have h : (thetaAboveCell000123012002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012002 h) + (by + have h : (thetaAboveCell000123012003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123012010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012010 h) + (by + have h : (thetaAboveCell000123012011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012011 h) + (by + have h : (thetaAboveCell000123012012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012012 h) + (by + have h : (thetaAboveCell000123012013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012013 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123012020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012020 h) + (by + have h : (thetaAboveCell000123012021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012021 h) + (by + have h : (thetaAboveCell000123012022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012022 h) + (by + have h : (thetaAboveCell000123012023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123012030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012030 h) + (by + have h : (thetaAboveCell000123012031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012031 h) + (by + have h : (thetaAboveCell000123012032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012032 h) + (by + have h : (thetaAboveCell000123012033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012033 h)) +theorem e24KC2ThetaAboveLeaf0001230121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00012301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00012301)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123012100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012100 h) + (by + have h : (thetaAboveCell000123012101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012101 h) + (by + have h : (thetaAboveCell000123012102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012102 h) + (by + have h : (thetaAboveCell000123012103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123012110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012110 h) + (by + have h : (thetaAboveCell000123012111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012111 h) + (by + have h : (thetaAboveCell000123012112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012112 h) + (by + have h : (thetaAboveCell000123012113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012113 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123012120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012120 h) + (by + have h : (thetaAboveCell000123012121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012121 h) + (by + have h : (thetaAboveCell000123012122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012122 h) + (by + have h : (thetaAboveCell000123012123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123012130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012130 h) + (by + have h : (thetaAboveCell000123012131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012131 h) + (by + have h : (thetaAboveCell000123012132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012132 h) + (by + have h : (thetaAboveCell000123012133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012133 h)) +theorem e24KC2ThetaAboveLeaf0001230122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00012301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00012301)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123012200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012200 h) + (by + have h : (thetaAboveCell000123012201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012201 h) + (by + have h : (thetaAboveCell000123012202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012202 h) + (by + have h : (thetaAboveCell000123012203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123012210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012210 h) + (by + have h : (thetaAboveCell000123012211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012211 h) + (by + have h : (thetaAboveCell000123012212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012212 h) + (by + have h : (thetaAboveCell000123012213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00012301))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00012301))) h) +theorem e24KC2ThetaAboveLeaf0001230123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00012301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00012301)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123012300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012300 h) + (by + have h : (thetaAboveCell000123012301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012301 h) + (by + have h : (thetaAboveCell000123012302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012302 h) + (by + have h : (thetaAboveCell000123012303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123012310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012310 h) + (by + have h : (thetaAboveCell000123012311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012311 h) + (by + have h : (thetaAboveCell000123012312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012312 h) + (by + have h : (thetaAboveCell000123012313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123012313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00012301))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00012301))) h) +theorem e24KC2ThetaAboveLeaf0001230130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00012301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00012301)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123013000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013000 h) + (by + have h : (thetaAboveCell000123013001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013001 h) + (by + have h : (thetaAboveCell000123013002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013002 h) + (by + have h : (thetaAboveCell000123013003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123013010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013010 h) + (by + have h : (thetaAboveCell000123013011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013011 h) + (by + have h : (thetaAboveCell000123013012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013012 h) + (by + have h : (thetaAboveCell000123013013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013013 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123013020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013020 h) + (by + have h : (thetaAboveCell000123013021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013021 h) + (by + have h : (thetaAboveCell000123013022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013022 h) + (by + have h : (thetaAboveCell000123013023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123013030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013030 h) + (by + have h : (thetaAboveCell000123013031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013031 h) + (by + have h : (thetaAboveCell000123013032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013032 h) + (by + have h : (thetaAboveCell000123013033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013033 h)) + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle015.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle015.lean new file mode 100644 index 0000000000..407e2b379b --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle015.lean @@ -0,0 +1,7200 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch022`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCells9faa13f35d + +/-- Subcell `0010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0010 : AngleCell := + childLL (childLH (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0011 : AngleCell := + childLH (childLH (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell0011))) + +end GerverSofa.PartE.CertificateCells9faa13f35d + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC6ProofBatch3b6d17fd8ecf6129`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC6 explicit proof-producing certificate batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9faa13f35d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9faa13f35d + +open CertificateCells9faa13f35d +theorem e24KC2ThetaAboveLeaf0010221121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00102211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00102211)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00102211))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00102211))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00102211))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00102211))) h) +theorem e24KC2ThetaAboveLeaf0010221122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00102211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00102211)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00102211))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00102211))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00102211))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00102211))) h) +theorem e24KC2ThetaAboveLeaf0010221123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00102211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00102211)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00102211))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00102211))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00102211))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00102211))) h) +theorem e24KC2ThetaAboveLeaf0010221130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00102211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00102211)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00102211))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00102211))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00102211))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00102211))) h) +theorem e24KC2ThetaAboveLeaf0010221131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00102211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00102211)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00102211))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00102211))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00102211))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00102211))) h) +theorem e24KC2ThetaAboveLeaf0010221132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00102211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00102211)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00102211))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00102211))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00102211))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00102211))) h) +theorem e24KC2ThetaAboveLeaf0010221133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00102211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00102211)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00102211))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00102211))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00102211))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00102211))) h) +theorem e24KC2ThetaAboveLeaf0010221200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00102212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00102212)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00102212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00102212))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00102212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00102212))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00102212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00102212))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00102212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00102212))) h) +theorem e24KC2ThetaAboveLeaf0010221201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00102212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00102212)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00102212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00102212))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00102212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00102212))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00102212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00102212))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00102212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00102212))) h) +theorem e24KC2ThetaAboveLeaf0010221210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00102212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00102212)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00102212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00102212))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00102212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00102212))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00102212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00102212))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00102212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00102212))) h) +theorem e24KC2ThetaAboveLeaf0010221211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00102212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00102212)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00102212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00102212))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00102212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00102212))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00102212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00102212))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00102212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00102212))) h) +theorem e24KC2ThetaAboveLeaf0010221300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00102213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00102213)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00102213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00102213))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00102213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00102213))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00102213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00102213))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00102213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00102213))) h) +theorem e24KC2ThetaAboveLeaf0010221301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00102213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00102213)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00102213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00102213))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00102213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00102213))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00102213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00102213))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00102213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00102213))) h) +theorem e24KC2ThetaAboveLeaf0010221310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00102213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00102213)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00102213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00102213))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00102213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00102213))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00102213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00102213))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00102213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00102213))) h) +theorem e24KC2ThetaAboveLeaf0010221311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00102213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00102213)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00102213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00102213))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00102213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00102213))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00102213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00102213))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00102213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00102213))) h) +theorem e24KC2ThetaAboveLeaf0010230020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00102300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00102300)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00102300))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00102300))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00102300))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00102300))) h) +theorem e24KC2ThetaAboveLeaf0010230021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00102300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00102300)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00102300))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00102300))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00102300))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00102300))) h) +theorem e24KC2ThetaAboveLeaf0010230022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00102300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00102300)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00102300))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00102300))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00102300))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00102300))) h) +theorem e24KC2ThetaAboveLeaf0010230023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00102300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00102300)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00102300))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00102300))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00102300))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00102300))) h) +theorem e24KC2ThetaAboveLeaf0010230030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00102300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00102300)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00102300))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00102300))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00102300))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00102300))) h) +theorem e24KC2ThetaAboveLeaf0010230031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00102300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00102300)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00102300))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00102300))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00102300))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00102300))) h) +theorem e24KC2ThetaAboveLeaf0010230032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00102300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00102300)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00102300))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00102300))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00102300))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00102300))) h) +theorem e24KC2ThetaAboveLeaf0010230033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00102300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00102300)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00102300))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00102300))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00102300))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00102300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00102300))) h) +theorem e24KC2ThetaAboveLeaf0010230120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00102301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00102301)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00102301))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00102301))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00102301))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00102301))) h) +theorem e24KC2ThetaAboveLeaf0010230121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00102301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00102301)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00102301))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00102301))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00102301))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00102301))) h) +theorem e24KC2ThetaAboveLeaf0010230122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00102301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00102301)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00102301))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00102301))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00102301))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00102301))) h) +theorem e24KC2ThetaAboveLeaf0010230123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00102301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00102301)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00102301))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00102301))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00102301))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00102301))) h) +theorem e24KC2ThetaAboveLeaf0010230130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00102301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00102301)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00102301))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00102301))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00102301))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00102301))) h) +theorem e24KC2ThetaAboveLeaf0010230131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00102301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00102301)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00102301))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00102301))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00102301))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00102301))) h) +theorem e24KC2ThetaAboveLeaf0010230132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00102301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00102301)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00102301))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00102301))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00102301))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00102301))) h) +theorem e24KC2ThetaAboveLeaf0010230133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00102301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00102301)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00102301))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00102301))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00102301))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00102301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00102301))) h) +theorem e24KC2ThetaAboveLeaf0010230200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00102302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00102302)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00102302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00102302))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00102302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00102302))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00102302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00102302))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00102302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00102302))) h) +theorem e24KC2ThetaAboveLeaf0010230201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00102302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00102302)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00102302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00102302))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00102302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00102302))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00102302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00102302))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00102302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00102302))) h) +theorem e24KC2ThetaAboveLeaf0010230210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00102302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00102302)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00102302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00102302))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00102302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00102302))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00102302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00102302))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00102302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00102302))) h) +theorem e24KC2ThetaAboveLeaf0010230211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00102302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00102302)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00102302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00102302))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00102302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00102302))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00102302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00102302))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00102302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00102302))) h) +theorem e24KC2ThetaAboveLeaf0010230300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00102303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00102303)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00102303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00102303))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00102303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00102303))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00102303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00102303))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00102303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00102303))) h) +theorem e24KC2ThetaAboveLeaf0010230301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00102303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00102303)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00102303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00102303))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00102303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00102303))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00102303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00102303))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00102303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00102303))) h) +theorem e24KC2ThetaAboveLeaf0010230310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00102303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00102303)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00102303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00102303))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00102303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00102303))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00102303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00102303))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00102303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00102303))) h) +theorem e24KC2ThetaAboveLeaf0010230311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00102303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00102303)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00102303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00102303))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00102303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00102303))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00102303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00102303))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00102303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00102303))) h) +theorem e24KC2ThetaAboveLeaf0010231020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00102310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00102310)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00102310))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00102310))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00102310))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00102310))) h) +theorem e24KC2ThetaAboveLeaf0010231021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00102310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00102310)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00102310))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00102310))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00102310))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00102310))) h) +theorem e24KC2ThetaAboveLeaf0010231022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00102310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00102310)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00102310))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00102310))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00102310))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00102310))) h) +theorem e24KC2ThetaAboveLeaf0010231023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00102310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00102310)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00102310))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00102310))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00102310))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00102310))) h) +theorem e24KC2ThetaAboveLeaf0010231030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00102310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00102310)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00102310))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00102310))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00102310))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00102310))) h) +theorem e24KC2ThetaAboveLeaf0010231031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00102310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00102310)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00102310))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00102310))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00102310))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00102310))) h) +theorem e24KC2ThetaAboveLeaf0010231032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00102310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00102310)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00102310))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00102310))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00102310))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00102310))) h) +theorem e24KC2ThetaAboveLeaf0010231033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00102310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00102310)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00102310))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00102310))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00102310))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00102310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00102310))) h) +theorem e24KC2ThetaAboveLeaf0010231120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00102311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00102311)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00102311))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00102311))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00102311))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00102311))) h) +theorem e24KC2ThetaAboveLeaf0010231121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00102311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00102311)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00102311))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00102311))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00102311))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00102311))) h) +theorem e24KC2ThetaAboveLeaf0010231122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00102311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00102311)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00102311))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00102311))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00102311))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00102311))) h) +theorem e24KC2ThetaAboveLeaf0010231123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00102311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00102311)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00102311))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00102311))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00102311))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00102311))) h) +theorem e24KC2ThetaAboveLeaf0010231130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00102311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00102311)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00102311))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00102311))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00102311))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00102311))) h) +theorem e24KC2ThetaAboveLeaf0010231131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00102311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00102311)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00102311))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00102311))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00102311))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00102311))) h) +theorem e24KC2ThetaAboveLeaf0010231132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00102311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00102311)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00102311))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00102311))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00102311))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00102311))) h) +theorem e24KC2ThetaAboveLeaf0010231133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00102311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00102311)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00102311))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00102311))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00102311))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00102311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00102311))) h) +theorem e24KC2ThetaAboveLeaf0010231200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00102312)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00102312)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00102312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00102312))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00102312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00102312))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00102312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00102312))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00102312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00102312))) h) +theorem e24KC2ThetaAboveLeaf0010231201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00102312)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00102312)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00102312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00102312))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00102312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00102312))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00102312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00102312))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00102312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00102312))) h) +theorem e24KC2ThetaAboveLeaf0010231210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00102312)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00102312)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00102312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00102312))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00102312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00102312))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00102312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00102312))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00102312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00102312))) h) +theorem e24KC2ThetaAboveLeaf0010231211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00102312)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00102312)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00102312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00102312))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00102312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00102312))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00102312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00102312))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00102312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00102312))) h) +theorem e24KC2ThetaAboveLeaf0010231300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00102313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00102313)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00102313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00102313))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00102313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00102313))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00102313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00102313))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00102313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00102313))) h) +theorem e24KC2ThetaAboveLeaf0010231301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00102313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00102313)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00102313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00102313))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00102313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00102313))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00102313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00102313))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00102313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00102313))) h) +theorem e24KC2ThetaAboveLeaf0010231310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00102313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00102313)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00102313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00102313))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00102313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00102313))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00102313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00102313))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00102313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00102313))) h) +theorem e24KC2ThetaAboveLeaf0010231311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00102313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00102313)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00102313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00102313))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00102313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00102313))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00102313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00102313))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00102313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00102313))) h) +theorem e24KC2ThetaAboveLeaf0010320020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00103200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00103200)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00103200))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00103200))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00103200))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00103200))) h) +theorem e24KC2ThetaAboveLeaf0010320021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00103200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00103200)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00103200))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00103200))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00103200))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00103200))) h) +theorem e24KC2ThetaAboveLeaf0010320022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00103200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00103200)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00103200))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00103200))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00103200))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00103200))) h) +theorem e24KC2ThetaAboveLeaf0010320023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00103200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00103200)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00103200))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00103200))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00103200))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00103200))) h) +theorem e24KC2ThetaAboveLeaf0010320030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00103200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00103200)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00103200))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00103200))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00103200))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00103200))) h) +theorem e24KC2ThetaAboveLeaf0010320031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00103200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00103200)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00103200))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00103200))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00103200))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00103200))) h) +theorem e24KC2ThetaAboveLeaf0010320032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00103200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00103200)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00103200))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00103200))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00103200))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00103200))) h) +theorem e24KC2ThetaAboveLeaf0010320033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00103200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00103200)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00103200))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00103200))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00103200))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00103200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00103200))) h) +theorem e24KC2ThetaAboveLeaf0010320120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00103201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00103201)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00103201))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00103201))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00103201))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00103201))) h) +theorem e24KC2ThetaAboveLeaf0010320121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00103201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00103201)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00103201))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00103201))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00103201))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00103201))) h) +theorem e24KC2ThetaAboveLeaf0010320122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00103201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00103201)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00103201))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00103201))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00103201))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00103201))) h) +theorem e24KC2ThetaAboveLeaf0010320123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00103201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00103201)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00103201))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00103201))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00103201))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00103201))) h) +theorem e24KC2ThetaAboveLeaf0010320130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00103201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00103201)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00103201))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00103201))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00103201))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00103201))) h) +theorem e24KC2ThetaAboveLeaf0010320131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00103201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00103201)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00103201))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00103201))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00103201))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00103201))) h) +theorem e24KC2ThetaAboveLeaf0010320132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00103201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00103201)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00103201))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00103201))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00103201))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00103201))) h) +theorem e24KC2ThetaAboveLeaf0010320133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00103201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00103201)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00103201))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00103201))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00103201))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00103201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00103201))) h) +theorem e24KC2ThetaAboveLeaf0010320200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00103202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00103202)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00103202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00103202))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00103202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00103202))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00103202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00103202))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00103202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00103202))) h) +theorem e24KC2ThetaAboveLeaf0010320201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00103202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00103202)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00103202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00103202))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00103202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00103202))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00103202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00103202))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00103202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00103202))) h) +theorem e24KC2ThetaAboveLeaf0010320210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00103202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00103202)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00103202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00103202))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00103202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00103202))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00103202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00103202))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00103202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00103202))) h) +theorem e24KC2ThetaAboveLeaf0010320211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00103202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00103202)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00103202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00103202))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00103202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00103202))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00103202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00103202))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00103202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00103202))) h) +theorem e24KC2ThetaAboveLeaf0010320300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00103203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00103203)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00103203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00103203))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00103203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00103203))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00103203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00103203))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00103203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00103203))) h) +theorem e24KC2ThetaAboveLeaf0010320301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00103203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00103203)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00103203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00103203))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00103203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00103203))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00103203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00103203))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00103203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00103203))) h) +theorem e24KC2ThetaAboveLeaf0010320310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00103203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00103203)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00103203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00103203))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00103203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00103203))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00103203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00103203))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00103203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00103203))) h) +theorem e24KC2ThetaAboveLeaf0010320311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00103203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00103203)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00103203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00103203))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00103203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00103203))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00103203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00103203))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00103203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00103203))) h) +theorem e24KC2ThetaAboveLeaf0010321020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00103210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00103210)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00103210))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00103210))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00103210))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00103210))) h) +theorem e24KC2ThetaAboveLeaf0010321021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00103210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00103210)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00103210))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00103210))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00103210))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00103210))) h) +theorem e24KC2ThetaAboveLeaf0010321022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00103210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00103210)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00103210))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00103210))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00103210))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00103210))) h) +theorem e24KC2ThetaAboveLeaf0010321023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00103210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00103210)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00103210))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00103210))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00103210))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00103210))) h) +theorem e24KC2ThetaAboveLeaf0010321030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00103210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00103210)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00103210))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00103210))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00103210))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00103210))) h) +theorem e24KC2ThetaAboveLeaf0010321031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00103210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00103210)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00103210))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00103210))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00103210))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00103210))) h) +theorem e24KC2ThetaAboveLeaf0010321032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00103210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00103210)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00103210))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00103210))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00103210))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00103210))) h) +theorem e24KC2ThetaAboveLeaf0010321033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00103210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00103210)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00103210))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00103210))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00103210))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00103210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00103210))) h) +theorem e24KC2ThetaAboveLeaf0010321120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00103211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00103211)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00103211))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00103211))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00103211))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00103211))) h) +theorem e24KC2ThetaAboveLeaf0010321121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00103211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00103211)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00103211))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00103211))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00103211))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00103211))) h) +theorem e24KC2ThetaAboveLeaf0010321122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00103211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00103211)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00103211))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00103211))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00103211))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00103211))) h) +theorem e24KC2ThetaAboveLeaf0010321123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00103211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00103211)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00103211))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00103211))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00103211))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00103211))) h) +theorem e24KC2ThetaAboveLeaf0010321130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00103211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00103211)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00103211))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00103211))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00103211))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00103211))) h) +theorem e24KC2ThetaAboveLeaf0010321131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00103211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00103211)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00103211))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00103211))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00103211))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00103211))) h) +theorem e24KC2ThetaAboveLeaf0010321132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00103211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00103211)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00103211))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00103211))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00103211))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00103211))) h) +theorem e24KC2ThetaAboveLeaf0010321133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00103211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00103211)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00103211))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00103211))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00103211))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00103211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00103211))) h) +theorem e24KC2ThetaAboveLeaf0010321200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00103212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00103212)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00103212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00103212))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00103212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00103212))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00103212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00103212))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00103212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00103212))) h) +theorem e24KC2ThetaAboveLeaf0010321201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00103212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00103212)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00103212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00103212))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00103212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00103212))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00103212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00103212))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00103212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00103212))) h) +theorem e24KC2ThetaAboveLeaf0010321210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00103212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00103212)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00103212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00103212))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00103212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00103212))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00103212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00103212))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00103212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00103212))) h) +theorem e24KC2ThetaAboveLeaf0010321211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00103212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00103212)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00103212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00103212))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00103212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00103212))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00103212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00103212))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00103212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00103212))) h) +theorem e24KC2ThetaAboveLeaf0010321300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00103213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00103213)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00103213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00103213))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00103213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00103213))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00103213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00103213))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00103213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00103213))) h) +theorem e24KC2ThetaAboveLeaf0010321301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00103213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00103213)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00103213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00103213))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00103213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00103213))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00103213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00103213))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00103213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00103213))) h) +theorem e24KC2ThetaAboveLeaf0010321310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00103213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00103213)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00103213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00103213))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00103213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00103213))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00103213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00103213))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00103213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00103213))) h) +theorem e24KC2ThetaAboveLeaf0010321311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00103213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00103213)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00103213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00103213))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00103213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00103213))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00103213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00103213))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00103213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00103213))) h) +theorem e24KC2ThetaAboveLeaf0010330020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00103300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00103300)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00103300))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00103300))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00103300))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00103300))) h) +theorem e24KC2ThetaAboveLeaf0010330021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00103300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00103300)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00103300))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00103300))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00103300))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00103300))) h) +theorem e24KC2ThetaAboveLeaf0010330022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00103300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00103300)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00103300))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00103300))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00103300))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00103300))) h) +theorem e24KC2ThetaAboveLeaf0010330023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00103300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00103300)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00103300))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00103300))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00103300))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00103300))) h) +theorem e24KC2ThetaAboveLeaf0010330030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00103300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00103300)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00103300))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00103300))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00103300))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00103300))) h) +theorem e24KC2ThetaAboveLeaf0010330031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00103300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00103300)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00103300))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00103300))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00103300))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00103300))) h) +theorem e24KC2ThetaAboveLeaf0010330032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00103300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00103300)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00103300))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00103300))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00103300))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00103300))) h) +theorem e24KC2ThetaAboveLeaf0010330033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00103300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00103300)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00103300))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00103300))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00103300))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00103300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00103300))) h) +theorem e24KC2ThetaAboveLeaf0010330120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00103301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00103301)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00103301))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00103301))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00103301))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00103301))) h) +theorem e24KC2ThetaAboveLeaf0010330121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00103301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00103301)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00103301))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00103301))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00103301))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00103301))) h) +theorem e24KC2ThetaAboveLeaf0010330122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00103301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00103301)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00103301))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00103301))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00103301))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00103301))) h) +theorem e24KC2ThetaAboveLeaf0010330123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00103301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00103301)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00103301))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00103301))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00103301))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00103301))) h) +theorem e24KC2ThetaAboveLeaf0010330130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00103301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00103301)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00103301))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00103301))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00103301))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00103301))) h) +theorem e24KC2ThetaAboveLeaf0010330131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00103301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00103301)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00103301))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00103301))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00103301))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00103301))) h) +theorem e24KC2ThetaAboveLeaf0010330132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00103301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00103301)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00103301))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00103301))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00103301))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00103301))) h) +theorem e24KC2ThetaAboveLeaf0010330133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00103301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00103301)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00103301))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00103301))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00103301))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00103301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00103301))) h) +theorem e24KC2ThetaAboveLeaf0010330200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00103302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00103302)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00103302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00103302))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00103302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00103302))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00103302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00103302))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00103302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00103302))) h) +theorem e24KC2ThetaAboveLeaf0010330201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00103302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00103302)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00103302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00103302))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00103302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00103302))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00103302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00103302))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00103302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00103302))) h) +theorem e24KC2ThetaAboveLeaf0010330210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00103302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00103302)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00103302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00103302))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00103302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00103302))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00103302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00103302))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00103302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00103302))) h) +theorem e24KC2ThetaAboveLeaf0010330211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00103302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00103302)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00103302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00103302))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00103302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00103302))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00103302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00103302))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00103302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00103302))) h) +theorem e24KC2ThetaAboveLeaf0010330300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00103303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00103303)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00103303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00103303))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00103303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00103303))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00103303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00103303))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00103303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00103303))) h) +theorem e24KC2ThetaAboveLeaf0010330301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00103303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00103303)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00103303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00103303))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00103303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00103303))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00103303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00103303))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00103303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00103303))) h) +theorem e24KC2ThetaAboveLeaf0010330310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00103303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00103303)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00103303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00103303))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00103303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00103303))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00103303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00103303))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00103303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00103303))) h) +theorem e24KC2ThetaAboveLeaf0010330311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00103303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00103303)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00103303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00103303))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00103303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00103303))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00103303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00103303))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00103303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00103303))) h) +theorem e24KC2ThetaAboveLeaf0010331020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00103310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00103310)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00103310))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00103310))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00103310))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00103310))) h) +theorem e24KC2ThetaAboveLeaf0010331021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00103310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00103310)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00103310))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00103310))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00103310))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00103310))) h) +theorem e24KC2ThetaAboveLeaf0010331022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00103310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00103310)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00103310))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00103310))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00103310))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00103310))) h) +theorem e24KC2ThetaAboveLeaf0010331023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00103310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00103310)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00103310))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00103310))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00103310))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00103310))) h) +theorem e24KC2ThetaAboveLeaf0010331030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00103310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00103310)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00103310))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00103310))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00103310))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00103310))) h) +theorem e24KC2ThetaAboveLeaf0010331031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00103310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00103310)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00103310))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00103310))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00103310))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00103310))) h) +theorem e24KC2ThetaAboveLeaf0010331032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00103310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00103310)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00103310))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00103310))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00103310))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00103310))) h) +theorem e24KC2ThetaAboveLeaf0010331033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00103310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00103310)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00103310))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00103310))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00103310))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00103310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00103310))) h) +theorem e24KC2ThetaAboveLeaf0010331120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00103311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00103311)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00103311))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00103311))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00103311))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00103311))) h) +theorem e24KC2ThetaAboveLeaf0010331121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00103311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00103311)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00103311))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00103311))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00103311))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00103311))) h) +theorem e24KC2ThetaAboveLeaf0010331122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00103311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00103311)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00103311))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00103311))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00103311))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00103311))) h) +theorem e24KC2ThetaAboveLeaf0010331123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00103311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00103311)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00103311))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00103311))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00103311))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00103311))) h) +theorem e24KC2ThetaAboveLeaf0010331130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00103311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00103311)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00103311))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00103311))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00103311))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00103311))) h) +theorem e24KC2ThetaAboveLeaf0010331131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00103311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00103311)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00103311))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00103311))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00103311))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00103311))) h) +theorem e24KC2ThetaAboveLeaf0010331132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00103311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00103311)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00103311))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00103311))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00103311))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00103311))) h) +theorem e24KC2ThetaAboveLeaf0010331133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00103311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00103311)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00103311))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00103311))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00103311))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00103311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00103311))) h) +theorem e24KC2ThetaAboveLeaf0010331200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00103312)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00103312)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00103312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00103312))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00103312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00103312))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00103312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00103312))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00103312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00103312))) h) +theorem e24KC2ThetaAboveLeaf0010331201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00103312)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00103312)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00103312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00103312))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00103312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00103312))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00103312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00103312))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00103312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00103312))) h) +theorem e24KC2ThetaAboveLeaf0010331210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00103312)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00103312)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00103312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00103312))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00103312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00103312))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00103312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00103312))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00103312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00103312))) h) +theorem e24KC2ThetaAboveLeaf0010331211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00103312)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00103312)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00103312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00103312))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00103312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00103312))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00103312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00103312))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00103312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00103312))) h) +theorem e24KC2ThetaAboveLeaf0010331300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00103313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00103313)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00103313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00103313))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00103313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00103313))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00103313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00103313))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00103313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00103313))) h) +theorem e24KC2ThetaAboveLeaf0010331301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00103313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00103313)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00103313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00103313))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00103313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00103313))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00103313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00103313))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00103313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00103313))) h) +theorem e24KC2ThetaAboveLeaf0010331310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00103313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00103313)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00103313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00103313))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00103313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00103313))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00103313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00103313))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00103313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00103313))) h) +theorem e24KC2ThetaAboveLeaf0010331311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00103313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00103313)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00103313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00103313))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00103313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00103313))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00103313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00103313))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00103313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00103313))) h) +theorem e24KC2ThetaAboveLeaf0011220020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00112200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00112200)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00112200))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00112200))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00112200))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00112200))) h) +theorem e24KC2ThetaAboveLeaf0011220021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00112200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00112200)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00112200))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00112200))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00112200))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00112200))) h) +theorem e24KC2ThetaAboveLeaf0011220022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00112200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00112200)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00112200))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00112200))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00112200))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00112200))) h) +theorem e24KC2ThetaAboveLeaf0011220023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00112200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00112200)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00112200))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00112200))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00112200))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00112200))) h) +theorem e24KC2ThetaAboveLeaf0011220030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00112200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00112200)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00112200))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00112200))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00112200))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00112200))) h) +theorem e24KC2ThetaAboveLeaf0011220031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00112200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00112200)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00112200))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00112200))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00112200))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00112200))) h) +theorem e24KC2ThetaAboveLeaf0011220032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00112200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00112200)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00112200))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00112200))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00112200))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00112200))) h) +theorem e24KC2ThetaAboveLeaf0011220033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00112200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00112200)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00112200))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00112200))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00112200))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00112200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00112200))) h) +theorem e24KC2ThetaAboveLeaf0011220120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00112201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00112201)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00112201))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00112201))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00112201))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00112201))) h) +theorem e24KC2ThetaAboveLeaf0011220121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00112201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00112201)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00112201))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00112201))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00112201))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00112201))) h) +theorem e24KC2ThetaAboveLeaf0011220122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00112201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00112201)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00112201))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00112201))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00112201))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00112201))) h) +theorem e24KC2ThetaAboveLeaf0011220123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00112201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00112201)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00112201))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00112201))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00112201))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00112201))) h) +theorem e24KC2ThetaAboveLeaf0011220130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00112201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00112201)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00112201))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00112201))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00112201))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00112201))) h) +theorem e24KC2ThetaAboveLeaf0011220131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00112201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00112201)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00112201))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00112201))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00112201))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00112201))) h) +theorem e24KC2ThetaAboveLeaf0011220132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00112201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00112201)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00112201))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00112201))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00112201))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00112201))) h) +theorem e24KC2ThetaAboveLeaf0011220133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00112201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00112201)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00112201))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00112201))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00112201))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00112201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00112201))) h) +theorem e24KC2ThetaAboveLeaf0011220200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00112202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00112202)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00112202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00112202))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00112202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00112202))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00112202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00112202))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00112202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00112202))) h) +theorem e24KC2ThetaAboveLeaf0011220201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00112202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00112202)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00112202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00112202))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00112202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00112202))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00112202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00112202))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00112202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00112202))) h) +theorem e24KC2ThetaAboveLeaf0011220210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00112202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00112202)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00112202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00112202))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00112202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00112202))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00112202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00112202))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00112202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00112202))) h) +theorem e24KC2ThetaAboveLeaf0011220211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00112202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00112202)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00112202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00112202))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00112202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00112202))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00112202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00112202))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00112202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00112202))) h) +theorem e24KC2ThetaAboveLeaf0011220300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00112203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00112203)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00112203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00112203))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00112203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00112203))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00112203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00112203))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00112203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00112203))) h) +theorem e24KC2ThetaAboveLeaf0011220301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00112203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00112203)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00112203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00112203))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00112203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00112203))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00112203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00112203))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00112203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00112203))) h) +theorem e24KC2ThetaAboveLeaf0011220310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00112203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00112203)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00112203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00112203))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00112203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00112203))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00112203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00112203))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00112203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00112203))) h) +theorem e24KC2ThetaAboveLeaf0011220311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00112203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00112203)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00112203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00112203))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00112203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00112203))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00112203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00112203))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00112203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00112203))) h) +theorem e24KC2ThetaAboveLeaf0011221020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00112210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00112210)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00112210))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00112210))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00112210))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00112210))) h) +theorem e24KC2ThetaAboveLeaf0011221021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00112210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00112210)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00112210))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00112210))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00112210))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00112210))) h) +theorem e24KC2ThetaAboveLeaf0011221022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00112210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00112210)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00112210))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00112210))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00112210))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00112210))) h) +theorem e24KC2ThetaAboveLeaf0011221023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00112210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00112210)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00112210))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00112210))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00112210))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00112210))) h) +theorem e24KC2ThetaAboveLeaf0011221030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00112210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00112210)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00112210))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00112210))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00112210))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00112210))) h) +theorem e24KC2ThetaAboveLeaf0011221031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00112210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00112210)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00112210))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00112210))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00112210))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00112210))) h) +theorem e24KC2ThetaAboveLeaf0011221032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00112210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00112210)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00112210))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00112210))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00112210))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00112210))) h) +theorem e24KC2ThetaAboveLeaf0011221033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00112210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00112210)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00112210))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00112210))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00112210))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00112210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00112210))) h) +theorem e24KC2ThetaAboveLeaf0011221120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00112211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00112211)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00112211))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00112211))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00112211))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00112211))) h) +theorem e24KC2ThetaAboveLeaf0011221121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00112211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00112211)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00112211))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00112211))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00112211))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00112211))) h) +theorem e24KC2ThetaAboveLeaf0011221122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00112211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00112211)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00112211))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00112211))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00112211))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00112211))) h) +theorem e24KC2ThetaAboveLeaf0011221123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00112211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00112211)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00112211))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00112211))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00112211))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00112211))) h) +theorem e24KC2ThetaAboveLeaf0011221130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00112211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00112211)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00112211))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00112211))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00112211))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00112211))) h) +theorem e24KC2ThetaAboveLeaf0011221131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00112211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00112211)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00112211))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00112211))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00112211))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00112211))) h) +theorem e24KC2ThetaAboveLeaf0011221132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00112211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00112211)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00112211))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00112211))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00112211))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00112211))) h) +theorem e24KC2ThetaAboveLeaf0011221133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00112211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00112211)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00112211))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00112211))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00112211))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00112211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00112211))) h) +theorem e24KC2ThetaAboveLeaf0011221200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00112212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00112212)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00112212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00112212))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00112212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00112212))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00112212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00112212))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00112212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00112212))) h) +theorem e24KC2ThetaAboveLeaf0011221201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00112212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00112212)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00112212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00112212))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00112212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00112212))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00112212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00112212))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00112212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00112212))) h) +theorem e24KC2ThetaAboveLeaf0011221210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00112212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00112212)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00112212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00112212))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00112212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00112212))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00112212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00112212))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00112212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00112212))) h) +theorem e24KC2ThetaAboveLeaf0011221211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00112212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00112212)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00112212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00112212))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00112212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00112212))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00112212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00112212))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00112212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00112212))) h) +theorem e24KC2ThetaAboveLeaf0011221300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00112213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00112213)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00112213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00112213))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00112213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00112213))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00112213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00112213))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00112213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00112213))) h) +theorem e24KC2ThetaAboveLeaf0011221301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00112213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00112213)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00112213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00112213))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00112213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00112213))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00112213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00112213))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00112213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00112213))) h) +theorem e24KC2ThetaAboveLeaf0011221310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00112213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00112213)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00112213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00112213))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00112213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00112213))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00112213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00112213))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00112213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00112213))) h) +theorem e24KC2ThetaAboveLeaf0011221311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00112213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00112213)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00112213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00112213))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00112213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00112213))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00112213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00112213))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00112213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00112213))) h) +theorem e24KC2ThetaAboveLeaf0011230020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00112300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00112300)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00112300))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00112300))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00112300))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00112300))) h) +theorem e24KC2ThetaAboveLeaf0011230021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00112300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00112300)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00112300))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00112300))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00112300))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00112300))) h) +theorem e24KC2ThetaAboveLeaf0011230022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00112300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00112300)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00112300))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00112300))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00112300))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00112300))) h) +theorem e24KC2ThetaAboveLeaf0011230023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00112300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00112300)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00112300))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00112300))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00112300))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00112300))) h) +theorem e24KC2ThetaAboveLeaf0011230030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00112300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00112300)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00112300))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00112300))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00112300))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00112300))) h) +theorem e24KC2ThetaAboveLeaf0011230031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00112300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00112300)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00112300))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00112300))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00112300))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00112300))) h) +theorem e24KC2ThetaAboveLeaf0011230032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00112300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00112300)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00112300))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00112300))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00112300))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00112300))) h) +theorem e24KC2ThetaAboveLeaf0011230033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00112300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00112300)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00112300))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00112300))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00112300))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00112300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00112300))) h) +theorem e24KC2ThetaAboveLeaf0011230120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00112301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00112301)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00112301))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00112301))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00112301))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00112301))) h) +theorem e24KC2ThetaAboveLeaf0011230121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00112301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00112301)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00112301))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00112301))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00112301))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00112301))) h) +theorem e24KC2ThetaAboveLeaf0011230122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00112301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00112301)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00112301))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00112301))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00112301))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00112301))) h) +theorem e24KC2ThetaAboveLeaf0011230123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00112301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00112301)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00112301))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00112301))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00112301))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00112301))) h) +theorem e24KC2ThetaAboveLeaf0011230130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00112301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00112301)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00112301))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00112301))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00112301))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00112301))) h) +theorem e24KC2ThetaAboveLeaf0011230131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00112301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00112301)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00112301))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00112301))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00112301))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00112301))) h) +theorem e24KC2ThetaAboveLeaf0011230132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00112301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00112301)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00112301))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00112301))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00112301))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00112301))) h) +theorem e24KC2ThetaAboveLeaf0011230133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00112301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00112301)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00112301))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00112301))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00112301))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00112301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00112301))) h) +theorem e24KC2ThetaAboveLeaf0011230200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00112302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00112302)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00112302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00112302))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00112302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00112302))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00112302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00112302))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00112302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00112302))) h) +theorem e24KC2ThetaAboveLeaf0011230201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00112302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00112302)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00112302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00112302))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00112302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00112302))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00112302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00112302))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00112302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00112302))) h) +theorem e24KC2ThetaAboveLeaf0011230210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00112302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00112302)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00112302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00112302))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00112302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00112302))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00112302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00112302))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00112302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00112302))) h) +theorem e24KC2ThetaAboveLeaf0011230211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00112302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00112302)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00112302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00112302))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00112302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00112302))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00112302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00112302))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00112302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00112302))) h) +theorem e24KC2ThetaAboveLeaf0011230300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00112303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00112303)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00112303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00112303))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00112303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00112303))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00112303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00112303))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00112303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00112303))) h) +theorem e24KC2ThetaAboveLeaf0011230301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00112303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00112303)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00112303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00112303))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00112303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00112303))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00112303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00112303))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00112303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00112303))) h) +theorem e24KC2ThetaAboveLeaf0011230310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00112303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00112303)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00112303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00112303))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00112303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00112303))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00112303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00112303))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00112303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00112303))) h) +theorem e24KC2ThetaAboveLeaf0011230311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00112303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00112303)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00112303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00112303))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00112303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00112303))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00112303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00112303))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00112303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00112303))) h) +theorem e24KC2ThetaAboveLeaf0011231020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00112310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00112310)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00112310))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00112310))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00112310))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00112310))) h) +theorem e24KC2ThetaAboveLeaf0011231021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00112310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00112310)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00112310))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00112310))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHL + thetaAboveCell00112310))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHL + thetaAboveCell00112310))) h) +theorem e24KC2ThetaAboveLeaf0011231022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00112310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00112310)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00112310))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00112310))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00112310))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00112310))) h) +theorem e24KC2ThetaAboveLeaf0011231023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00112310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00112310)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00112310))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00112310))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00112310))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00112310))) h) +theorem e24KC2ThetaAboveLeaf0011231030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00112310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00112310)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00112310))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00112310))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHH + thetaAboveCell00112310))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHH + thetaAboveCell00112310))) h) +theorem e24KC2ThetaAboveLeaf0011231031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00112310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00112310)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00112310))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00112310))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childHH + thetaAboveCell00112310))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childHH + thetaAboveCell00112310))) h) +theorem e24KC2ThetaAboveLeaf0011231032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00112310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00112310)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00112310))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00112310))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00112310))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00112310))) h) +theorem e24KC2ThetaAboveLeaf0011231033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00112310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00112310)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00112310))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00112310))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00112310))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00112310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00112310))) h) +theorem e24KC2ThetaAboveLeaf0011231120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00112311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00112311)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00112311))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00112311))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00112311))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00112311))) h) +theorem e24KC2ThetaAboveLeaf0011231122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00112311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00112311)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00112311))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00112311))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00112311))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00112311))) h) +theorem e24KC2ThetaAboveLeaf0011231123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00112311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00112311)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00112311))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00112311))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00112311))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00112311))) h) +theorem e24KC2ThetaAboveLeaf0011231132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00112311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00112311)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00112311))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00112311))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00112311))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00112311))) h) +theorem e24KC2ThetaAboveLeaf0011231133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00112311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00112311)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00112311))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00112311))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00112311))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00112311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00112311))) h) +theorem e24KC2ThetaAboveLeaf0011231200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00112312)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00112312)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00112312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00112312))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00112312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00112312))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00112312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00112312))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00112312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00112312))) h) +theorem e24KC2ThetaAboveLeaf0011231201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00112312)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00112312)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00112312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00112312))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00112312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00112312))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00112312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00112312))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00112312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00112312))) h) +theorem e24KC2ThetaAboveLeaf0011231210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00112312)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00112312)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00112312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00112312))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00112312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00112312))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00112312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00112312))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00112312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00112312))) h) +theorem e24KC2ThetaAboveLeaf0011231211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00112312)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00112312)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00112312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00112312))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00112312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00112312))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00112312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00112312))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00112312)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00112312))) h) +theorem e24KC2ThetaAboveLeaf0011231300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00112313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00112313)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00112313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00112313))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00112313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00112313))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00112313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00112313))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00112313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00112313))) h) +theorem e24KC2ThetaAboveLeaf0011231301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00112313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00112313)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00112313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00112313))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00112313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00112313))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00112313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00112313))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00112313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00112313))) h) +theorem e24KC2ThetaAboveLeaf0011231310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00112313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00112313)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00112313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00112313))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00112313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00112313))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00112313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00112313))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00112313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00112313))) h) +theorem e24KC2ThetaAboveLeaf0011231311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00112313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00112313)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00112313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00112313))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00112313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00112313))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00112313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00112313))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00112313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00112313))) h) +theorem e24KC2ThetaAboveLeaf0011320022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00113200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00113200)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00113200))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00113200))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00113200))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00113200))) h) +theorem e24KC2ThetaAboveLeaf0011320023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00113200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00113200)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00113200))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00113200))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00113200))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00113200))) h) +theorem e24KC2ThetaAboveLeaf0011320032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00113200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00113200)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00113200))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00113200))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00113200))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00113200))) h) +theorem e24KC2ThetaAboveLeaf0011320033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00113200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00113200)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00113200))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00113200))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00113200))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00113200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00113200))) h) +theorem e24KC2ThetaAboveLeaf0011320122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00113201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00113201)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00113201))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00113201))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00113201))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00113201))) h) +theorem e24KC2ThetaAboveLeaf0011320123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00113201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00113201)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00113201))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00113201))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00113201))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00113201))) h) +theorem e24KC2ThetaAboveLeaf0011320132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00113201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00113201)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00113201))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00113201))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00113201))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00113201))) h) +theorem e24KC2ThetaAboveLeaf0011320133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00113201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00113201)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00113201))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00113201))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00113201))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00113201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00113201))) h) +theorem e24KC2ThetaAboveLeaf0011320200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00113202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00113202)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00113202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00113202))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00113202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00113202))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00113202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00113202))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00113202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00113202))) h) +theorem e24KC2ThetaAboveLeaf0011320201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00113202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00113202)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00113202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00113202))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00113202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00113202))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00113202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00113202))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00113202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00113202))) h) +theorem e24KC2ThetaAboveLeaf0011320210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00113202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00113202)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00113202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00113202))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00113202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00113202))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00113202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00113202))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00113202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00113202))) h) +theorem e24KC2ThetaAboveLeaf0011320211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00113202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00113202)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00113202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00113202))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00113202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00113202))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00113202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00113202))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00113202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00113202))) h) +theorem e24KC2ThetaAboveLeaf0011320300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00113203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00113203)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00113203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00113203))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00113203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00113203))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00113203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00113203))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00113203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00113203))) h) +theorem e24KC2ThetaAboveLeaf0011320301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00113203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00113203)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00113203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00113203))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00113203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00113203))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00113203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00113203))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00113203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00113203))) h) +theorem e24KC2ThetaAboveLeaf0011320310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00113203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00113203)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00113203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00113203))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00113203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00113203))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00113203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00113203))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00113203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00113203))) h) +theorem e24KC2ThetaAboveLeaf0011320311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00113203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00113203)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00113203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00113203))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00113203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00113203))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00113203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00113203))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00113203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00113203))) h) +theorem e24KC2ThetaAboveLeaf0011321022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00113210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00113210)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00113210))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00113210))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00113210))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00113210))) h) +theorem e24KC2ThetaAboveLeaf0011321023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00113210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00113210)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00113210))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00113210))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00113210))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00113210))) h) +theorem e24KC2ThetaAboveLeaf0011321032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00113210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00113210)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00113210))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00113210))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00113210))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00113210))) h) +theorem e24KC2ThetaAboveLeaf0011321033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00113210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00113210)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00113210))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00113210))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00113210))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00113210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00113210))) h) +theorem e24KC2ThetaAboveLeaf0011321122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00113211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00113211)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00113211))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00113211))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00113211))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00113211))) h) +theorem e24KC2ThetaAboveLeaf0011321123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00113211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00113211)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00113211))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00113211))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00113211))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00113211))) h) +theorem e24KC2ThetaAboveLeaf0011321132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00113211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00113211)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00113211))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00113211))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00113211))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00113211))) h) +theorem e24KC2ThetaAboveLeaf0011321133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00113211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00113211)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00113211))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00113211))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00113211))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00113211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00113211))) h) +theorem e24KC2ThetaAboveLeaf0011321200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00113212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00113212)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00113212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00113212))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00113212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00113212))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00113212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00113212))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00113212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00113212))) h) +theorem e24KC2ThetaAboveLeaf0011321201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00113212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00113212)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00113212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00113212))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00113212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00113212))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00113212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00113212))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00113212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00113212))) h) +theorem e24KC2ThetaAboveLeaf0011321210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00113212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00113212)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00113212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00113212))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00113212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00113212))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00113212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00113212))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00113212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00113212))) h) +theorem e24KC2ThetaAboveLeaf0011321211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00113212)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00113212)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00113212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00113212))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00113212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00113212))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00113212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00113212))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00113212)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00113212))) h) +theorem e24KC2ThetaAboveLeaf0011321300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00113213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00113213)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00113213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00113213))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00113213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00113213))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00113213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00113213))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00113213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00113213))) h) +theorem e24KC2ThetaAboveLeaf0011321301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00113213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00113213)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00113213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00113213))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00113213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00113213))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00113213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00113213))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00113213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00113213))) h) +theorem e24KC2ThetaAboveLeaf0011321310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00113213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00113213)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00113213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00113213))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00113213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00113213))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00113213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00113213))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00113213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00113213))) h) +theorem e24KC2ThetaAboveLeaf0011321311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00113213)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00113213)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00113213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00113213))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00113213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00113213))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00113213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00113213))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00113213)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00113213))) h) +theorem e24KC2ThetaAboveLeaf0011330022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00113300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00113300)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00113300))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00113300))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00113300))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00113300))) h) +theorem e24KC2ThetaAboveLeaf0011330023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00113300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00113300)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00113300))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00113300))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00113300))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00113300))) h) +theorem e24KC2ThetaAboveLeaf0011330032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00113300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00113300)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00113300))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00113300))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00113300))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00113300))) h) +theorem e24KC2ThetaAboveLeaf0011330033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00113300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00113300)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00113300))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00113300))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00113300))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00113300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00113300))) h) +theorem e24KC2ThetaAboveLeaf0011330122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00113301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00113301)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00113301))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00113301))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00113301))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00113301))) h) +theorem e24KC2ThetaAboveLeaf0011330123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00113301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00113301)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00113301))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00113301))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00113301))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00113301))) h) +theorem e24KC2ThetaAboveLeaf0011330132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00113301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00113301)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00113301))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00113301))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00113301))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00113301))) h) +theorem e24KC2ThetaAboveLeaf0011330133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00113301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00113301)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00113301))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00113301))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00113301))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00113301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00113301))) h) +theorem e24KC2ThetaAboveLeaf0011330200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00113302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00113302)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00113302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00113302))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00113302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00113302))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00113302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00113302))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00113302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00113302))) h) +theorem e24KC2ThetaAboveLeaf0011330201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00113302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00113302)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00113302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00113302))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00113302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00113302))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00113302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00113302))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00113302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00113302))) h) +theorem e24KC2ThetaAboveLeaf0011330210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00113302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00113302)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00113302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00113302))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00113302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00113302))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00113302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00113302))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00113302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00113302))) h) +theorem e24KC2ThetaAboveLeaf0011330211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00113302)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00113302)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00113302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00113302))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00113302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00113302))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00113302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00113302))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00113302)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00113302))) h) +theorem e24KC2ThetaAboveLeaf0011330300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00113303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00113303)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00113303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00113303))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00113303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00113303))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00113303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00113303))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00113303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00113303))) h) +theorem e24KC2ThetaAboveLeaf0011330301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00113303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00113303)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00113303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00113303))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00113303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00113303))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00113303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00113303))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00113303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00113303))) h) +theorem e24KC2ThetaAboveLeaf0011330310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00113303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00113303)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00113303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00113303))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00113303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00113303))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00113303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00113303))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00113303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00113303))) h) +theorem e24KC2ThetaAboveLeaf0011330311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00113303)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00113303)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00113303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00113303))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00113303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00113303))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00113303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00113303))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00113303)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00113303))) h) + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle016.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle016.lean new file mode 100644 index 0000000000..61a95aa6e6 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle016.lean @@ -0,0 +1,10082 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch025`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCells4a1452a6c6 + +/-- Subcell `0001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0001 : AngleCell := + childLH (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0010 : AngleCell := + childLL (childLH (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `000123013100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00012301))) + +/-- Subcell `000123102000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00012310))) + +/-- Subcell `000123103000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00012310))) + +/-- Subcell `000123112000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00012311))) + +/-- Subcell `000123113000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00012311))) + +/-- Subcell `000123113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000123113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00012311))) + +/-- Subcell `000132002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00013200))) + +/-- Subcell `000132003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00013200))) + +/-- Subcell `000132003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00013200))) + +/-- Subcell `000132012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00013201))) + +/-- Subcell `000132012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00013201))) + +/-- Subcell `000132013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00013201))) + +/-- Subcell `000132013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00013201))) + +/-- Subcell `000132102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00013210))) + +/-- Subcell `000132102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00013210))) + +/-- Subcell `000132103020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00013210))) + +/-- Subcell `000132103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00013210))) + +/-- Subcell `000132112020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00013211))) + +/-- Subcell `000132112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00013211))) + +/-- Subcell `000132113020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00013211))) + +/-- Subcell `000132113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000132113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00013211))) + +/-- Subcell `000133002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00013300))) + +/-- Subcell `000133002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00013300))) + +/-- Subcell `000133003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00013300))) + +/-- Subcell `000133003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00013300))) + +/-- Subcell `000133012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133012333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133012333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell00013301))) + +/-- Subcell `000133013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133013333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133013333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell00013301))) + +/-- Subcell `000133102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133102333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133102333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell00013310))) + +/-- Subcell `000133103020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133103333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133103333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell00013310))) + +/-- Subcell `000133112020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00013311))) + +/-- Subcell `000133112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00013311))) + +/-- Subcell `000133113020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00013311))) + +/-- Subcell `000133113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000133113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00013311))) + +/-- Subcell `001022002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell00102200))) + +/-- Subcell `001022002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell00102200))) + +/-- Subcell `001022003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell00102200))) + +/-- Subcell `001022003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell00102200))) + +/-- Subcell `001022012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell00102201))) + +/-- Subcell `001022012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell00102201))) + +/-- Subcell `001022013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00102201))) + +/-- Subcell `001022013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00102201))) + +/-- Subcell `001022013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00102201))) + +/-- Subcell `001022013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00102201))) + +/-- Subcell `001022013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00102201))) + +/-- Subcell `001022013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00102201))) + +/-- Subcell `001022013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00102201))) + +/-- Subcell `001022013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00102201))) + +/-- Subcell `001022013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00102201))) + +/-- Subcell `001022013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00102201))) + +/-- Subcell `001022013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00102201))) + +/-- Subcell `001022013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00102201))) + +/-- Subcell `001022013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00102201))) + +/-- Subcell `001022013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00102201))) + +/-- Subcell `001022013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00102201))) + +/-- Subcell `001022013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00102201))) + +/-- Subcell `001022102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00102210))) + +/-- Subcell `001022102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00102210))) + +/-- Subcell `001022102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00102210))) + +/-- Subcell `001022102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00102210))) + +/-- Subcell `001022102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00102210))) + +/-- Subcell `001022102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00102210))) + +/-- Subcell `001022102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00102210))) + +/-- Subcell `001022102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00102210))) + +/-- Subcell `001022102120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022102120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00102210))) + +/-- Subcell `001022102121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022102121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00102210))) + +/-- Subcell `001022102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00102210))) + +/-- Subcell `001022102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00102210))) + +/-- Subcell `001022102130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022102130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00102210))) + +/-- Subcell `001022102131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022102131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00102210))) + +/-- Subcell `001022102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00102210))) + +/-- Subcell `001022102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00102210))) + +/-- Subcell `001022103020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022103020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00102210))) + +/-- Subcell `001022103021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022103021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00102210))) + +/-- Subcell `001022103022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022103022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00102210))) + +/-- Subcell `001022103023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022103023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00102210))) + +/-- Subcell `001022103030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022103030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00102210))) + +/-- Subcell `001022103031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022103031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00102210))) + +/-- Subcell `001022103032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022103032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00102210))) + +/-- Subcell `001022103033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022103033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00102210))) + +/-- Subcell `001022103120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022103120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00102210))) + +/-- Subcell `001022103121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022103121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00102210))) + +/-- Subcell `001022103122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022103122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00102210))) + +/-- Subcell `001022103123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022103123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00102210))) + +/-- Subcell `001022103130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022103130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00102210))) + +/-- Subcell `001022103131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022103131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00102210))) + +/-- Subcell `001022103132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022103132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00102210))) + +/-- Subcell `001022103133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell001022103133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00102210))) + +end GerverSofa.PartE.CertificateCells4a1452a6c6 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC6ProofBatchAeb87c7b95a29e08`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC6 explicit proof-producing certificate batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4a1452a6c6 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4a1452a6c6 + +open CertificateCells4a1452a6c6 +theorem e24KC2ThetaAboveLeaf0001230131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00012301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00012301)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123013100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013100 h) + (by + have h : (thetaAboveCell000123013101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013101 h) + (by + have h : (thetaAboveCell000123013102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013102 h) + (by + have h : (thetaAboveCell000123013103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123013110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013110 h) + (by + have h : (thetaAboveCell000123013111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013111 h) + (by + have h : (thetaAboveCell000123013112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013112 h) + (by + have h : (thetaAboveCell000123013113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013113 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123013120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013120 h) + (by + have h : (thetaAboveCell000123013121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013121 h) + (by + have h : (thetaAboveCell000123013122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013122 h) + (by + have h : (thetaAboveCell000123013123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123013130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013130 h) + (by + have h : (thetaAboveCell000123013131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013131 h) + (by + have h : (thetaAboveCell000123013132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013132 h) + (by + have h : (thetaAboveCell000123013133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013133 h)) +theorem e24KC2ThetaAboveLeaf0001230132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00012301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00012301)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123013200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013200 h) + (by + have h : (thetaAboveCell000123013201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013201 h) + (by + have h : (thetaAboveCell000123013202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013202 h) + (by + have h : (thetaAboveCell000123013203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123013210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013210 h) + (by + have h : (thetaAboveCell000123013211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013211 h) + (by + have h : (thetaAboveCell000123013212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013212 h) + (by + have h : (thetaAboveCell000123013213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00012301))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00012301))) h) +theorem e24KC2ThetaAboveLeaf0001230133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00012301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00012301)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123013300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013300 h) + (by + have h : (thetaAboveCell000123013301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013301 h) + (by + have h : (thetaAboveCell000123013302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013302 h) + (by + have h : (thetaAboveCell000123013303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00012301))) + (by + have h : (thetaAboveCell000123013310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013310 h) + (by + have h : (thetaAboveCell000123013311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013311 h) + (by + have h : (thetaAboveCell000123013312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013312 h) + (by + have h : (thetaAboveCell000123013313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123013313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00012301))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00012301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00012301))) h) +theorem e24KC2ThetaAboveLeaf0001231002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00012310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00012310)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00012310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00012310))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00012310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00012310))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell00012310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childLL + thetaAboveCell00012310))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell00012310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childLL + thetaAboveCell00012310))) h) +theorem e24KC2ThetaAboveLeaf0001231020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00012310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00012310)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123102000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102000 h) + (by + have h : (thetaAboveCell000123102001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102001 h) + (by + have h : (thetaAboveCell000123102002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102002 h) + (by + have h : (thetaAboveCell000123102003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123102010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102010 h) + (by + have h : (thetaAboveCell000123102011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102011 h) + (by + have h : (thetaAboveCell000123102012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102012 h) + (by + have h : (thetaAboveCell000123102013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102013 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123102020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102020 h) + (by + have h : (thetaAboveCell000123102021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102021 h) + (by + have h : (thetaAboveCell000123102022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102022 h) + (by + have h : (thetaAboveCell000123102023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123102030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102030 h) + (by + have h : (thetaAboveCell000123102031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102031 h) + (by + have h : (thetaAboveCell000123102032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102032 h) + (by + have h : (thetaAboveCell000123102033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102033 h)) +theorem e24KC2ThetaAboveLeaf0001231021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00012310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00012310)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123102100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102100 h) + (by + have h : (thetaAboveCell000123102101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102101 h) + (by + have h : (thetaAboveCell000123102102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102102 h) + (by + have h : (thetaAboveCell000123102103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123102110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102110 h) + (by + have h : (thetaAboveCell000123102111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102111 h) + (by + have h : (thetaAboveCell000123102112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102112 h) + (by + have h : (thetaAboveCell000123102113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102113 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123102120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102120 h) + (by + have h : (thetaAboveCell000123102121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102121 h) + (by + have h : (thetaAboveCell000123102122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102122 h) + (by + have h : (thetaAboveCell000123102123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123102130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102130 h) + (by + have h : (thetaAboveCell000123102131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102131 h) + (by + have h : (thetaAboveCell000123102132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102132 h) + (by + have h : (thetaAboveCell000123102133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102133 h)) +theorem e24KC2ThetaAboveLeaf0001231022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00012310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00012310)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123102200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102200 h) + (by + have h : (thetaAboveCell000123102201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102201 h) + (by + have h : (thetaAboveCell000123102202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102202 h) + (by + have h : (thetaAboveCell000123102203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123102210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102210 h) + (by + have h : (thetaAboveCell000123102211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102211 h) + (by + have h : (thetaAboveCell000123102212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102212 h) + (by + have h : (thetaAboveCell000123102213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00012310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00012310))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00012310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00012310))) h) +theorem e24KC2ThetaAboveLeaf0001231023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00012310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00012310)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123102300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102300 h) + (by + have h : (thetaAboveCell000123102301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102301 h) + (by + have h : (thetaAboveCell000123102302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102302 h) + (by + have h : (thetaAboveCell000123102303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123102310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102310 h) + (by + have h : (thetaAboveCell000123102311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102311 h) + (by + have h : (thetaAboveCell000123102312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102312 h) + (by + have h : (thetaAboveCell000123102313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123102313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00012310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00012310))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00012310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00012310))) h) +theorem e24KC2ThetaAboveLeaf0001231030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00012310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00012310)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123103000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103000 h) + (by + have h : (thetaAboveCell000123103001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103001 h) + (by + have h : (thetaAboveCell000123103002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103002 h) + (by + have h : (thetaAboveCell000123103003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123103010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103010 h) + (by + have h : (thetaAboveCell000123103011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103011 h) + (by + have h : (thetaAboveCell000123103012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103012 h) + (by + have h : (thetaAboveCell000123103013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103013 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123103020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103020 h) + (by + have h : (thetaAboveCell000123103021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103021 h) + (by + have h : (thetaAboveCell000123103022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103022 h) + (by + have h : (thetaAboveCell000123103023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123103030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103030 h) + (by + have h : (thetaAboveCell000123103031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103031 h) + (by + have h : (thetaAboveCell000123103032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103032 h) + (by + have h : (thetaAboveCell000123103033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103033 h)) +theorem e24KC2ThetaAboveLeaf0001231031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00012310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00012310)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123103100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103100 h) + (by + have h : (thetaAboveCell000123103101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103101 h) + (by + have h : (thetaAboveCell000123103102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103102 h) + (by + have h : (thetaAboveCell000123103103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123103110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103110 h) + (by + have h : (thetaAboveCell000123103111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103111 h) + (by + have h : (thetaAboveCell000123103112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103112 h) + (by + have h : (thetaAboveCell000123103113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103113 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123103120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103120 h) + (by + have h : (thetaAboveCell000123103121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103121 h) + (by + have h : (thetaAboveCell000123103122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103122 h) + (by + have h : (thetaAboveCell000123103123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123103130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103130 h) + (by + have h : (thetaAboveCell000123103131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103131 h) + (by + have h : (thetaAboveCell000123103132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103132 h) + (by + have h : (thetaAboveCell000123103133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103133 h)) +theorem e24KC2ThetaAboveLeaf0001231032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00012310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00012310)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123103200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103200 h) + (by + have h : (thetaAboveCell000123103201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103201 h) + (by + have h : (thetaAboveCell000123103202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103202 h) + (by + have h : (thetaAboveCell000123103203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123103210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103210 h) + (by + have h : (thetaAboveCell000123103211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103211 h) + (by + have h : (thetaAboveCell000123103212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103212 h) + (by + have h : (thetaAboveCell000123103213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00012310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00012310))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00012310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00012310))) h) +theorem e24KC2ThetaAboveLeaf0001231033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00012310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00012310)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123103300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103300 h) + (by + have h : (thetaAboveCell000123103301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103301 h) + (by + have h : (thetaAboveCell000123103302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103302 h) + (by + have h : (thetaAboveCell000123103303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00012310))) + (by + have h : (thetaAboveCell000123103310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103310 h) + (by + have h : (thetaAboveCell000123103311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103311 h) + (by + have h : (thetaAboveCell000123103312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103312 h) + (by + have h : (thetaAboveCell000123103313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123103313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00012310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00012310))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00012310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00012310))) h) +theorem e24KC2ThetaAboveLeaf0001231120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00012311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00012311)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123112000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112000 h) + (by + have h : (thetaAboveCell000123112001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112001 h) + (by + have h : (thetaAboveCell000123112002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112002 h) + (by + have h : (thetaAboveCell000123112003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123112010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112010 h) + (by + have h : (thetaAboveCell000123112011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112011 h) + (by + have h : (thetaAboveCell000123112012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112012 h) + (by + have h : (thetaAboveCell000123112013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112013 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123112020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112020 h) + (by + have h : (thetaAboveCell000123112021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112021 h) + (by + have h : (thetaAboveCell000123112022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112022 h) + (by + have h : (thetaAboveCell000123112023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123112030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112030 h) + (by + have h : (thetaAboveCell000123112031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112031 h) + (by + have h : (thetaAboveCell000123112032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112032 h) + (by + have h : (thetaAboveCell000123112033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112033 h)) +theorem e24KC2ThetaAboveLeaf0001231121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00012311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00012311)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123112100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112100 h) + (by + have h : (thetaAboveCell000123112101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112101 h) + (by + have h : (thetaAboveCell000123112102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112102 h) + (by + have h : (thetaAboveCell000123112103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123112110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112110 h) + (by + have h : (thetaAboveCell000123112111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112111 h) + (by + have h : (thetaAboveCell000123112112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112112 h) + (by + have h : (thetaAboveCell000123112113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112113 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123112120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112120 h) + (by + have h : (thetaAboveCell000123112121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112121 h) + (by + have h : (thetaAboveCell000123112122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112122 h) + (by + have h : (thetaAboveCell000123112123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123112130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112130 h) + (by + have h : (thetaAboveCell000123112131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112131 h) + (by + have h : (thetaAboveCell000123112132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112132 h) + (by + have h : (thetaAboveCell000123112133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112133 h)) +theorem e24KC2ThetaAboveLeaf0001231122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00012311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00012311)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123112200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112200 h) + (by + have h : (thetaAboveCell000123112201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112201 h) + (by + have h : (thetaAboveCell000123112202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112202 h) + (by + have h : (thetaAboveCell000123112203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123112210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112210 h) + (by + have h : (thetaAboveCell000123112211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112211 h) + (by + have h : (thetaAboveCell000123112212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112212 h) + (by + have h : (thetaAboveCell000123112213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00012311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00012311))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00012311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00012311))) h) +theorem e24KC2ThetaAboveLeaf0001231123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00012311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00012311)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123112300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112300 h) + (by + have h : (thetaAboveCell000123112301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112301 h) + (by + have h : (thetaAboveCell000123112302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112302 h) + (by + have h : (thetaAboveCell000123112303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123112310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112310 h) + (by + have h : (thetaAboveCell000123112311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112311 h) + (by + have h : (thetaAboveCell000123112312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112312 h) + (by + have h : (thetaAboveCell000123112313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123112313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00012311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00012311))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00012311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00012311))) h) +theorem e24KC2ThetaAboveLeaf0001231130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00012311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00012311)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123113000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113000 h) + (by + have h : (thetaAboveCell000123113001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113001 h) + (by + have h : (thetaAboveCell000123113002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113002 h) + (by + have h : (thetaAboveCell000123113003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123113010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113010 h) + (by + have h : (thetaAboveCell000123113011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113011 h) + (by + have h : (thetaAboveCell000123113012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113012 h) + (by + have h : (thetaAboveCell000123113013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113013 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123113020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113020 h) + (by + have h : (thetaAboveCell000123113021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113021 h) + (by + have h : (thetaAboveCell000123113022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113022 h) + (by + have h : (thetaAboveCell000123113023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123113030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113030 h) + (by + have h : (thetaAboveCell000123113031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113031 h) + (by + have h : (thetaAboveCell000123113032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113032 h) + (by + have h : (thetaAboveCell000123113033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113033 h)) +theorem e24KC2ThetaAboveLeaf0001231131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00012311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00012311)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123113100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113100 h) + (by + have h : (thetaAboveCell000123113101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113101 h) + (by + have h : (thetaAboveCell000123113102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113102 h) + (by + have h : (thetaAboveCell000123113103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123113110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113110 h) + (by + have h : (thetaAboveCell000123113111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113111 h) + (by + have h : (thetaAboveCell000123113112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113112 h) + (by + have h : (thetaAboveCell000123113113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113113 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123113120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113120 h) + (by + have h : (thetaAboveCell000123113121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113121 h) + (by + have h : (thetaAboveCell000123113122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113122 h) + (by + have h : (thetaAboveCell000123113123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123113130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113130 h) + (by + have h : (thetaAboveCell000123113131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113131 h) + (by + have h : (thetaAboveCell000123113132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113132 h) + (by + have h : (thetaAboveCell000123113133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113133 h)) +theorem e24KC2ThetaAboveLeaf0001231132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00012311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00012311)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123113200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113200 h) + (by + have h : (thetaAboveCell000123113201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113201 h) + (by + have h : (thetaAboveCell000123113202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113202 h) + (by + have h : (thetaAboveCell000123113203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123113210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113210 h) + (by + have h : (thetaAboveCell000123113211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113211 h) + (by + have h : (thetaAboveCell000123113212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113212 h) + (by + have h : (thetaAboveCell000123113213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00012311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00012311))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00012311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00012311))) h) +theorem e24KC2ThetaAboveLeaf0001231133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00012311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00012311)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123113300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113300 h) + (by + have h : (thetaAboveCell000123113301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113301 h) + (by + have h : (thetaAboveCell000123113302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113302 h) + (by + have h : (thetaAboveCell000123113303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00012311))) + (by + have h : (thetaAboveCell000123113310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113310 h) + (by + have h : (thetaAboveCell000123113311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113311 h) + (by + have h : (thetaAboveCell000123113312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113312 h) + (by + have h : (thetaAboveCell000123113313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000123113313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00012311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00012311))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00012311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00012311))) h) +theorem e24KC2ThetaAboveLeaf0001320020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00013200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00013200)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132002000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002000 h) + (by + have h : (thetaAboveCell000132002001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002001 h) + (by + have h : (thetaAboveCell000132002002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002002 h) + (by + have h : (thetaAboveCell000132002003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132002010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002010 h) + (by + have h : (thetaAboveCell000132002011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002011 h) + (by + have h : (thetaAboveCell000132002012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002012 h) + (by + have h : (thetaAboveCell000132002013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002013 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132002020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002020 h) + (by + have h : (thetaAboveCell000132002021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002021 h) + (by + have h : (thetaAboveCell000132002022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002022 h) + (by + have h : (thetaAboveCell000132002023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132002030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002030 h) + (by + have h : (thetaAboveCell000132002031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002031 h) + (by + have h : (thetaAboveCell000132002032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002032 h) + (by + have h : (thetaAboveCell000132002033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002033 h)) +theorem e24KC2ThetaAboveLeaf0001320021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00013200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00013200)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132002100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002100 h) + (by + have h : (thetaAboveCell000132002101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002101 h) + (by + have h : (thetaAboveCell000132002102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002102 h) + (by + have h : (thetaAboveCell000132002103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132002110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002110 h) + (by + have h : (thetaAboveCell000132002111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002111 h) + (by + have h : (thetaAboveCell000132002112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002112 h) + (by + have h : (thetaAboveCell000132002113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002113 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132002120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002120 h) + (by + have h : (thetaAboveCell000132002121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002121 h) + (by + have h : (thetaAboveCell000132002122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002122 h) + (by + have h : (thetaAboveCell000132002123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132002130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002130 h) + (by + have h : (thetaAboveCell000132002131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002131 h) + (by + have h : (thetaAboveCell000132002132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002132 h) + (by + have h : (thetaAboveCell000132002133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002133 h)) +theorem e24KC2ThetaAboveLeaf0001320022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00013200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00013200)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132002200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002200 h) + (by + have h : (thetaAboveCell000132002201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002201 h) + (by + have h : (thetaAboveCell000132002202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002202 h) + (by + have h : (thetaAboveCell000132002203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132002210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002210 h) + (by + have h : (thetaAboveCell000132002211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002211 h) + (by + have h : (thetaAboveCell000132002212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002212 h) + (by + have h : (thetaAboveCell000132002213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00013200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00013200))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00013200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00013200))) h) +theorem e24KC2ThetaAboveLeaf0001320023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00013200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00013200)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132002300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002300 h) + (by + have h : (thetaAboveCell000132002301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002301 h) + (by + have h : (thetaAboveCell000132002302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002302 h) + (by + have h : (thetaAboveCell000132002303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132002310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002310 h) + (by + have h : (thetaAboveCell000132002311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002311 h) + (by + have h : (thetaAboveCell000132002312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002312 h) + (by + have h : (thetaAboveCell000132002313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132002313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00013200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00013200))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00013200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00013200))) h) +theorem e24KC2ThetaAboveLeaf0001320030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00013200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00013200)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00013200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00013200))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00013200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00013200))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132003020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003020 h) + (by + have h : (thetaAboveCell000132003021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003021 h) + (by + have h : (thetaAboveCell000132003022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003022 h) + (by + have h : (thetaAboveCell000132003023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132003030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003030 h) + (by + have h : (thetaAboveCell000132003031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003031 h) + (by + have h : (thetaAboveCell000132003032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003032 h) + (by + have h : (thetaAboveCell000132003033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003033 h)) +theorem e24KC2ThetaAboveLeaf0001320031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00013200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00013200)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00013200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00013200))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00013200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00013200))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132003120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003120 h) + (by + have h : (thetaAboveCell000132003121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003121 h) + (by + have h : (thetaAboveCell000132003122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003122 h) + (by + have h : (thetaAboveCell000132003123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132003130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003130 h) + (by + have h : (thetaAboveCell000132003131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003131 h) + (by + have h : (thetaAboveCell000132003132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003132 h) + (by + have h : (thetaAboveCell000132003133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003133 h)) +theorem e24KC2ThetaAboveLeaf0001320032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00013200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00013200)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132003200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003200 h) + (by + have h : (thetaAboveCell000132003201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003201 h) + (by + have h : (thetaAboveCell000132003202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003202 h) + (by + have h : (thetaAboveCell000132003203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132003210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003210 h) + (by + have h : (thetaAboveCell000132003211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003211 h) + (by + have h : (thetaAboveCell000132003212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003212 h) + (by + have h : (thetaAboveCell000132003213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00013200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00013200))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00013200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00013200))) h) +theorem e24KC2ThetaAboveLeaf0001320033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00013200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00013200)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132003300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003300 h) + (by + have h : (thetaAboveCell000132003301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003301 h) + (by + have h : (thetaAboveCell000132003302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003302 h) + (by + have h : (thetaAboveCell000132003303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00013200))) + (by + have h : (thetaAboveCell000132003310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003310 h) + (by + have h : (thetaAboveCell000132003311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003311 h) + (by + have h : (thetaAboveCell000132003312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003312 h) + (by + have h : (thetaAboveCell000132003313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132003313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00013200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00013200))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00013200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00013200))) h) +theorem e24KC2ThetaAboveLeaf0001320120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00013201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00013201)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00013201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00013201))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00013201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00013201))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00013201))) + (by + have h : (thetaAboveCell000132012020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012020 h) + (by + have h : (thetaAboveCell000132012021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012021 h) + (by + have h : (thetaAboveCell000132012022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012022 h) + (by + have h : (thetaAboveCell000132012023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00013201))) + (by + have h : (thetaAboveCell000132012030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012030 h) + (by + have h : (thetaAboveCell000132012031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012031 h) + (by + have h : (thetaAboveCell000132012032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012032 h) + (by + have h : (thetaAboveCell000132012033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012033 h)) +theorem e24KC2ThetaAboveLeaf0001320121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00013201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00013201)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00013201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00013201))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00013201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00013201))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00013201))) + (by + have h : (thetaAboveCell000132012120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012120 h) + (by + have h : (thetaAboveCell000132012121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012121 h) + (by + have h : (thetaAboveCell000132012122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012122 h) + (by + have h : (thetaAboveCell000132012123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00013201))) + (by + have h : (thetaAboveCell000132012130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012130 h) + (by + have h : (thetaAboveCell000132012131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012131 h) + (by + have h : (thetaAboveCell000132012132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012132 h) + (by + have h : (thetaAboveCell000132012133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012133 h)) +theorem e24KC2ThetaAboveLeaf0001320122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00013201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00013201)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00013201))) + (by + have h : (thetaAboveCell000132012200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012200 h) + (by + have h : (thetaAboveCell000132012201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012201 h) + (by + have h : (thetaAboveCell000132012202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012202 h) + (by + have h : (thetaAboveCell000132012203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00013201))) + (by + have h : (thetaAboveCell000132012210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012210 h) + (by + have h : (thetaAboveCell000132012211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012211 h) + (by + have h : (thetaAboveCell000132012212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012212 h) + (by + have h : (thetaAboveCell000132012213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00013201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00013201))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00013201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00013201))) h) +theorem e24KC2ThetaAboveLeaf0001320123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00013201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00013201)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00013201))) + (by + have h : (thetaAboveCell000132012300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012300 h) + (by + have h : (thetaAboveCell000132012301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012301 h) + (by + have h : (thetaAboveCell000132012302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012302 h) + (by + have h : (thetaAboveCell000132012303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00013201))) + (by + have h : (thetaAboveCell000132012310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012310 h) + (by + have h : (thetaAboveCell000132012311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012311 h) + (by + have h : (thetaAboveCell000132012312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012312 h) + (by + have h : (thetaAboveCell000132012313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132012313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00013201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00013201))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00013201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00013201))) h) +theorem e24KC2ThetaAboveLeaf0001320130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00013201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00013201)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00013201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00013201))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00013201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00013201))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00013201))) + (by + have h : (thetaAboveCell000132013020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013020 h) + (by + have h : (thetaAboveCell000132013021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013021 h) + (by + have h : (thetaAboveCell000132013022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013022 h) + (by + have h : (thetaAboveCell000132013023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00013201))) + (by + have h : (thetaAboveCell000132013030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013030 h) + (by + have h : (thetaAboveCell000132013031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013031 h) + (by + have h : (thetaAboveCell000132013032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013032 h) + (by + have h : (thetaAboveCell000132013033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013033 h)) +theorem e24KC2ThetaAboveLeaf0001320131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00013201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00013201)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00013201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00013201))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00013201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00013201))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00013201))) + (by + have h : (thetaAboveCell000132013120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013120 h) + (by + have h : (thetaAboveCell000132013121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013121 h) + (by + have h : (thetaAboveCell000132013122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013122 h) + (by + have h : (thetaAboveCell000132013123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00013201))) + (by + have h : (thetaAboveCell000132013130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013130 h) + (by + have h : (thetaAboveCell000132013131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013131 h) + (by + have h : (thetaAboveCell000132013132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013132 h) + (by + have h : (thetaAboveCell000132013133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013133 h)) +theorem e24KC2ThetaAboveLeaf0001320132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00013201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00013201)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00013201))) + (by + have h : (thetaAboveCell000132013200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013200 h) + (by + have h : (thetaAboveCell000132013201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013201 h) + (by + have h : (thetaAboveCell000132013202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013202 h) + (by + have h : (thetaAboveCell000132013203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00013201))) + (by + have h : (thetaAboveCell000132013210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013210 h) + (by + have h : (thetaAboveCell000132013211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013211 h) + (by + have h : (thetaAboveCell000132013212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013212 h) + (by + have h : (thetaAboveCell000132013213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00013201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00013201))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00013201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00013201))) h) +theorem e24KC2ThetaAboveLeaf0001320133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00013201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00013201)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00013201))) + (by + have h : (thetaAboveCell000132013300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013300 h) + (by + have h : (thetaAboveCell000132013301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013301 h) + (by + have h : (thetaAboveCell000132013302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013302 h) + (by + have h : (thetaAboveCell000132013303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00013201))) + (by + have h : (thetaAboveCell000132013310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013310 h) + (by + have h : (thetaAboveCell000132013311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013311 h) + (by + have h : (thetaAboveCell000132013312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013312 h) + (by + have h : (thetaAboveCell000132013313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132013313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00013201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00013201))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00013201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00013201))) h) +theorem e24KC2ThetaAboveLeaf0001321020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00013210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00013210)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00013210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00013210))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00013210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00013210))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00013210))) + (by + have h : (thetaAboveCell000132102020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102020 h) + (by + have h : (thetaAboveCell000132102021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102021 h) + (by + have h : (thetaAboveCell000132102022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102022 h) + (by + have h : (thetaAboveCell000132102023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00013210))) + (by + have h : (thetaAboveCell000132102030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102030 h) + (by + have h : (thetaAboveCell000132102031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102031 h) + (by + have h : (thetaAboveCell000132102032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102032 h) + (by + have h : (thetaAboveCell000132102033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102033 h)) +theorem e24KC2ThetaAboveLeaf0001321021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00013210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00013210)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00013210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00013210))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00013210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00013210))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00013210))) + (by + have h : (thetaAboveCell000132102120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102120 h) + (by + have h : (thetaAboveCell000132102121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102121 h) + (by + have h : (thetaAboveCell000132102122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102122 h) + (by + have h : (thetaAboveCell000132102123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00013210))) + (by + have h : (thetaAboveCell000132102130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102130 h) + (by + have h : (thetaAboveCell000132102131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102131 h) + (by + have h : (thetaAboveCell000132102132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102132 h) + (by + have h : (thetaAboveCell000132102133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102133 h)) +theorem e24KC2ThetaAboveLeaf0001321022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00013210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00013210)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00013210))) + (by + have h : (thetaAboveCell000132102200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102200 h) + (by + have h : (thetaAboveCell000132102201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102201 h) + (by + have h : (thetaAboveCell000132102202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102202 h) + (by + have h : (thetaAboveCell000132102203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00013210))) + (by + have h : (thetaAboveCell000132102210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102210 h) + (by + have h : (thetaAboveCell000132102211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102211 h) + (by + have h : (thetaAboveCell000132102212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102212 h) + (by + have h : (thetaAboveCell000132102213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00013210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00013210))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00013210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00013210))) h) +theorem e24KC2ThetaAboveLeaf0001321023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00013210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00013210)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00013210))) + (by + have h : (thetaAboveCell000132102300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102300 h) + (by + have h : (thetaAboveCell000132102301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102301 h) + (by + have h : (thetaAboveCell000132102302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102302 h) + (by + have h : (thetaAboveCell000132102303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00013210))) + (by + have h : (thetaAboveCell000132102310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102310 h) + (by + have h : (thetaAboveCell000132102311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102311 h) + (by + have h : (thetaAboveCell000132102312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102312 h) + (by + have h : (thetaAboveCell000132102313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132102313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00013210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00013210))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00013210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00013210))) h) +theorem e24KC2ThetaAboveLeaf0001321030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00013210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00013210)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00013210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00013210))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00013210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00013210))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00013210))) + (by + have h : (thetaAboveCell000132103020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103020 h) + (by + have h : (thetaAboveCell000132103021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103021 h) + (by + have h : (thetaAboveCell000132103022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103022 h) + (by + have h : (thetaAboveCell000132103023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00013210))) + (by + have h : (thetaAboveCell000132103030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103030 h) + (by + have h : (thetaAboveCell000132103031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103031 h) + (by + have h : (thetaAboveCell000132103032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103032 h) + (by + have h : (thetaAboveCell000132103033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103033 h)) +theorem e24KC2ThetaAboveLeaf0001321031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00013210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00013210)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00013210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00013210))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00013210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00013210))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00013210))) + (by + have h : (thetaAboveCell000132103120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103120 h) + (by + have h : (thetaAboveCell000132103121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103121 h) + (by + have h : (thetaAboveCell000132103122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103122 h) + (by + have h : (thetaAboveCell000132103123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00013210))) + (by + have h : (thetaAboveCell000132103130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103130 h) + (by + have h : (thetaAboveCell000132103131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103131 h) + (by + have h : (thetaAboveCell000132103132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103132 h) + (by + have h : (thetaAboveCell000132103133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103133 h)) +theorem e24KC2ThetaAboveLeaf0001321032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00013210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00013210)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00013210))) + (by + have h : (thetaAboveCell000132103200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103200 h) + (by + have h : (thetaAboveCell000132103201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103201 h) + (by + have h : (thetaAboveCell000132103202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103202 h) + (by + have h : (thetaAboveCell000132103203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00013210))) + (by + have h : (thetaAboveCell000132103210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103210 h) + (by + have h : (thetaAboveCell000132103211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103211 h) + (by + have h : (thetaAboveCell000132103212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103212 h) + (by + have h : (thetaAboveCell000132103213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00013210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00013210))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00013210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00013210))) h) +theorem e24KC2ThetaAboveLeaf0001321033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00013210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00013210)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00013210))) + (by + have h : (thetaAboveCell000132103300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103300 h) + (by + have h : (thetaAboveCell000132103301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103301 h) + (by + have h : (thetaAboveCell000132103302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103302 h) + (by + have h : (thetaAboveCell000132103303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00013210))) + (by + have h : (thetaAboveCell000132103310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103310 h) + (by + have h : (thetaAboveCell000132103311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103311 h) + (by + have h : (thetaAboveCell000132103312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103312 h) + (by + have h : (thetaAboveCell000132103313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132103313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00013210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00013210))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00013210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00013210))) h) +theorem e24KC2ThetaAboveLeaf0001321120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00013211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00013211)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00013211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00013211))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00013211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00013211))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00013211))) + (by + have h : (thetaAboveCell000132112020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112020 h) + (by + have h : (thetaAboveCell000132112021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112021 h) + (by + have h : (thetaAboveCell000132112022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112022 h) + (by + have h : (thetaAboveCell000132112023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00013211))) + (by + have h : (thetaAboveCell000132112030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112030 h) + (by + have h : (thetaAboveCell000132112031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112031 h) + (by + have h : (thetaAboveCell000132112032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112032 h) + (by + have h : (thetaAboveCell000132112033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112033 h)) +theorem e24KC2ThetaAboveLeaf0001321121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00013211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00013211)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00013211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00013211))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00013211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00013211))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00013211))) + (by + have h : (thetaAboveCell000132112120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112120 h) + (by + have h : (thetaAboveCell000132112121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112121 h) + (by + have h : (thetaAboveCell000132112122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112122 h) + (by + have h : (thetaAboveCell000132112123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00013211))) + (by + have h : (thetaAboveCell000132112130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112130 h) + (by + have h : (thetaAboveCell000132112131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112131 h) + (by + have h : (thetaAboveCell000132112132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112132 h) + (by + have h : (thetaAboveCell000132112133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112133 h)) +theorem e24KC2ThetaAboveLeaf0001321122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00013211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00013211)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00013211))) + (by + have h : (thetaAboveCell000132112200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112200 h) + (by + have h : (thetaAboveCell000132112201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112201 h) + (by + have h : (thetaAboveCell000132112202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112202 h) + (by + have h : (thetaAboveCell000132112203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00013211))) + (by + have h : (thetaAboveCell000132112210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112210 h) + (by + have h : (thetaAboveCell000132112211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112211 h) + (by + have h : (thetaAboveCell000132112212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112212 h) + (by + have h : (thetaAboveCell000132112213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00013211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00013211))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00013211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00013211))) h) +theorem e24KC2ThetaAboveLeaf0001321123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00013211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00013211)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00013211))) + (by + have h : (thetaAboveCell000132112300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112300 h) + (by + have h : (thetaAboveCell000132112301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112301 h) + (by + have h : (thetaAboveCell000132112302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112302 h) + (by + have h : (thetaAboveCell000132112303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00013211))) + (by + have h : (thetaAboveCell000132112310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112310 h) + (by + have h : (thetaAboveCell000132112311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112311 h) + (by + have h : (thetaAboveCell000132112312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112312 h) + (by + have h : (thetaAboveCell000132112313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132112313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00013211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00013211))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00013211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00013211))) h) +theorem e24KC2ThetaAboveLeaf0001321130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00013211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00013211)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00013211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00013211))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00013211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00013211))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00013211))) + (by + have h : (thetaAboveCell000132113020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113020 h) + (by + have h : (thetaAboveCell000132113021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113021 h) + (by + have h : (thetaAboveCell000132113022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113022 h) + (by + have h : (thetaAboveCell000132113023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00013211))) + (by + have h : (thetaAboveCell000132113030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113030 h) + (by + have h : (thetaAboveCell000132113031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113031 h) + (by + have h : (thetaAboveCell000132113032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113032 h) + (by + have h : (thetaAboveCell000132113033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113033 h)) +theorem e24KC2ThetaAboveLeaf0001321131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00013211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00013211)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00013211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00013211))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00013211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00013211))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00013211))) + (by + have h : (thetaAboveCell000132113120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113120 h) + (by + have h : (thetaAboveCell000132113121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113121 h) + (by + have h : (thetaAboveCell000132113122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113122 h) + (by + have h : (thetaAboveCell000132113123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00013211))) + (by + have h : (thetaAboveCell000132113130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113130 h) + (by + have h : (thetaAboveCell000132113131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113131 h) + (by + have h : (thetaAboveCell000132113132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113132 h) + (by + have h : (thetaAboveCell000132113133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113133 h)) +theorem e24KC2ThetaAboveLeaf0001321132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00013211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00013211)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00013211))) + (by + have h : (thetaAboveCell000132113200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113200 h) + (by + have h : (thetaAboveCell000132113201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113201 h) + (by + have h : (thetaAboveCell000132113202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113202 h) + (by + have h : (thetaAboveCell000132113203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00013211))) + (by + have h : (thetaAboveCell000132113210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113210 h) + (by + have h : (thetaAboveCell000132113211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113211 h) + (by + have h : (thetaAboveCell000132113212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113212 h) + (by + have h : (thetaAboveCell000132113213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00013211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00013211))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00013211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00013211))) h) +theorem e24KC2ThetaAboveLeaf0001321133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00013211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00013211)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00013211))) + (by + have h : (thetaAboveCell000132113300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113300 h) + (by + have h : (thetaAboveCell000132113301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113301 h) + (by + have h : (thetaAboveCell000132113302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113302 h) + (by + have h : (thetaAboveCell000132113303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00013211))) + (by + have h : (thetaAboveCell000132113310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113310 h) + (by + have h : (thetaAboveCell000132113311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113311 h) + (by + have h : (thetaAboveCell000132113312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113312 h) + (by + have h : (thetaAboveCell000132113313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000132113313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00013211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00013211))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00013211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00013211))) h) +theorem e24KC2ThetaAboveLeaf0001330020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00013300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00013300)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00013300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00013300))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00013300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00013300))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00013300))) + (by + have h : (thetaAboveCell000133002020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002020 h) + (by + have h : (thetaAboveCell000133002021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002021 h) + (by + have h : (thetaAboveCell000133002022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002022 h) + (by + have h : (thetaAboveCell000133002023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00013300))) + (by + have h : (thetaAboveCell000133002030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002030 h) + (by + have h : (thetaAboveCell000133002031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002031 h) + (by + have h : (thetaAboveCell000133002032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002032 h) + (by + have h : (thetaAboveCell000133002033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002033 h)) +theorem e24KC2ThetaAboveLeaf0001330021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00013300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00013300)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00013300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00013300))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00013300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00013300))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00013300))) + (by + have h : (thetaAboveCell000133002120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002120 h) + (by + have h : (thetaAboveCell000133002121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002121 h) + (by + have h : (thetaAboveCell000133002122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002122 h) + (by + have h : (thetaAboveCell000133002123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00013300))) + (by + have h : (thetaAboveCell000133002130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002130 h) + (by + have h : (thetaAboveCell000133002131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002131 h) + (by + have h : (thetaAboveCell000133002132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002132 h) + (by + have h : (thetaAboveCell000133002133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002133 h)) +theorem e24KC2ThetaAboveLeaf0001330022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00013300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00013300)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00013300))) + (by + have h : (thetaAboveCell000133002200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002200 h) + (by + have h : (thetaAboveCell000133002201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002201 h) + (by + have h : (thetaAboveCell000133002202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002202 h) + (by + have h : (thetaAboveCell000133002203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00013300))) + (by + have h : (thetaAboveCell000133002210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002210 h) + (by + have h : (thetaAboveCell000133002211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002211 h) + (by + have h : (thetaAboveCell000133002212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002212 h) + (by + have h : (thetaAboveCell000133002213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00013300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00013300))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00013300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00013300))) h) +theorem e24KC2ThetaAboveLeaf0001330023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00013300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00013300)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00013300))) + (by + have h : (thetaAboveCell000133002300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002300 h) + (by + have h : (thetaAboveCell000133002301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002301 h) + (by + have h : (thetaAboveCell000133002302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002302 h) + (by + have h : (thetaAboveCell000133002303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00013300))) + (by + have h : (thetaAboveCell000133002310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002310 h) + (by + have h : (thetaAboveCell000133002311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002311 h) + (by + have h : (thetaAboveCell000133002312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002312 h) + (by + have h : (thetaAboveCell000133002313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133002313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00013300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00013300))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00013300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00013300))) h) +theorem e24KC2ThetaAboveLeaf0001330030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00013300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00013300)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00013300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00013300))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00013300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00013300))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00013300))) + (by + have h : (thetaAboveCell000133003020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003020 h) + (by + have h : (thetaAboveCell000133003021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003021 h) + (by + have h : (thetaAboveCell000133003022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003022 h) + (by + have h : (thetaAboveCell000133003023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00013300))) + (by + have h : (thetaAboveCell000133003030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003030 h) + (by + have h : (thetaAboveCell000133003031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003031 h) + (by + have h : (thetaAboveCell000133003032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003032 h) + (by + have h : (thetaAboveCell000133003033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003033 h)) +theorem e24KC2ThetaAboveLeaf0001330031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00013300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00013300)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00013300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00013300))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00013300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00013300))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00013300))) + (by + have h : (thetaAboveCell000133003120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003120 h) + (by + have h : (thetaAboveCell000133003121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003121 h) + (by + have h : (thetaAboveCell000133003122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003122 h) + (by + have h : (thetaAboveCell000133003123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00013300))) + (by + have h : (thetaAboveCell000133003130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003130 h) + (by + have h : (thetaAboveCell000133003131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003131 h) + (by + have h : (thetaAboveCell000133003132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003132 h) + (by + have h : (thetaAboveCell000133003133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003133 h)) +theorem e24KC2ThetaAboveLeaf0001330032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00013300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00013300)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00013300))) + (by + have h : (thetaAboveCell000133003200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003200 h) + (by + have h : (thetaAboveCell000133003201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003201 h) + (by + have h : (thetaAboveCell000133003202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003202 h) + (by + have h : (thetaAboveCell000133003203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00013300))) + (by + have h : (thetaAboveCell000133003210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003210 h) + (by + have h : (thetaAboveCell000133003211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003211 h) + (by + have h : (thetaAboveCell000133003212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003212 h) + (by + have h : (thetaAboveCell000133003213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00013300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00013300))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00013300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00013300))) h) +theorem e24KC2ThetaAboveLeaf0001330033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00013300)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00013300)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00013300))) + (by + have h : (thetaAboveCell000133003300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003300 h) + (by + have h : (thetaAboveCell000133003301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003301 h) + (by + have h : (thetaAboveCell000133003302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003302 h) + (by + have h : (thetaAboveCell000133003303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00013300))) + (by + have h : (thetaAboveCell000133003310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003310 h) + (by + have h : (thetaAboveCell000133003311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003311 h) + (by + have h : (thetaAboveCell000133003312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003312 h) + (by + have h : (thetaAboveCell000133003313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133003313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00013300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00013300))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00013300)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00013300))) h) +theorem e24KC2ThetaAboveLeaf0001330120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00013301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00013301)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00013301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00013301))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00013301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00013301))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133012020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012020 h) + (by + have h : (thetaAboveCell000133012021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012021 h) + (by + have h : (thetaAboveCell000133012022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012022 h) + (by + have h : (thetaAboveCell000133012023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133012030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012030 h) + (by + have h : (thetaAboveCell000133012031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012031 h) + (by + have h : (thetaAboveCell000133012032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012032 h) + (by + have h : (thetaAboveCell000133012033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012033 h)) +theorem e24KC2ThetaAboveLeaf0001330121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00013301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00013301)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00013301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00013301))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00013301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00013301))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133012120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012120 h) + (by + have h : (thetaAboveCell000133012121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012121 h) + (by + have h : (thetaAboveCell000133012122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012122 h) + (by + have h : (thetaAboveCell000133012123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133012130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012130 h) + (by + have h : (thetaAboveCell000133012131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012131 h) + (by + have h : (thetaAboveCell000133012132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012132 h) + (by + have h : (thetaAboveCell000133012133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012133 h)) +theorem e24KC2ThetaAboveLeaf0001330122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00013301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00013301)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133012200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012200 h) + (by + have h : (thetaAboveCell000133012201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012201 h) + (by + have h : (thetaAboveCell000133012202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012202 h) + (by + have h : (thetaAboveCell000133012203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133012210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012210 h) + (by + have h : (thetaAboveCell000133012211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012211 h) + (by + have h : (thetaAboveCell000133012212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012212 h) + (by + have h : (thetaAboveCell000133012213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childHL + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133012220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012220 h) + (by + have h : (thetaAboveCell000133012221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012221 h) + (by + have h : (thetaAboveCell000133012222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012222 h) + (by + have h : (thetaAboveCell000133012223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childHL + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133012230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012230 h) + (by + have h : (thetaAboveCell000133012231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012231 h) + (by + have h : (thetaAboveCell000133012232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012232 h) + (by + have h : (thetaAboveCell000133012233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012233 h)) +theorem e24KC2ThetaAboveLeaf0001330123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00013301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00013301)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133012300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012300 h) + (by + have h : (thetaAboveCell000133012301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012301 h) + (by + have h : (thetaAboveCell000133012302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012302 h) + (by + have h : (thetaAboveCell000133012303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133012310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012310 h) + (by + have h : (thetaAboveCell000133012311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012311 h) + (by + have h : (thetaAboveCell000133012312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012312 h) + (by + have h : (thetaAboveCell000133012313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childHL + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133012320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012320 h) + (by + have h : (thetaAboveCell000133012321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012321 h) + (by + have h : (thetaAboveCell000133012322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012322 h) + (by + have h : (thetaAboveCell000133012323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childHL + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133012330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012330 h) + (by + have h : (thetaAboveCell000133012331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012331 h) + (by + have h : (thetaAboveCell000133012332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012332 h) + (by + have h : (thetaAboveCell000133012333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133012333 h)) +theorem e24KC2ThetaAboveLeaf0001330130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00013301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00013301)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00013301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00013301))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00013301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00013301))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133013020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013020 h) + (by + have h : (thetaAboveCell000133013021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013021 h) + (by + have h : (thetaAboveCell000133013022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013022 h) + (by + have h : (thetaAboveCell000133013023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133013030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013030 h) + (by + have h : (thetaAboveCell000133013031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013031 h) + (by + have h : (thetaAboveCell000133013032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013032 h) + (by + have h : (thetaAboveCell000133013033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013033 h)) +theorem e24KC2ThetaAboveLeaf0001330131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00013301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00013301)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00013301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00013301))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00013301)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00013301))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133013120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013120 h) + (by + have h : (thetaAboveCell000133013121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013121 h) + (by + have h : (thetaAboveCell000133013122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013122 h) + (by + have h : (thetaAboveCell000133013123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133013130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013130 h) + (by + have h : (thetaAboveCell000133013131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013131 h) + (by + have h : (thetaAboveCell000133013132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013132 h) + (by + have h : (thetaAboveCell000133013133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013133 h)) +theorem e24KC2ThetaAboveLeaf0001330132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00013301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00013301)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133013200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013200 h) + (by + have h : (thetaAboveCell000133013201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013201 h) + (by + have h : (thetaAboveCell000133013202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013202 h) + (by + have h : (thetaAboveCell000133013203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133013210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013210 h) + (by + have h : (thetaAboveCell000133013211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013211 h) + (by + have h : (thetaAboveCell000133013212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013212 h) + (by + have h : (thetaAboveCell000133013213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childHH + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133013220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013220 h) + (by + have h : (thetaAboveCell000133013221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013221 h) + (by + have h : (thetaAboveCell000133013222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013222 h) + (by + have h : (thetaAboveCell000133013223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childHH + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133013230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013230 h) + (by + have h : (thetaAboveCell000133013231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013231 h) + (by + have h : (thetaAboveCell000133013232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013232 h) + (by + have h : (thetaAboveCell000133013233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013233 h)) +theorem e24KC2ThetaAboveLeaf0001330133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00013301)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00013301)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133013300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013300 h) + (by + have h : (thetaAboveCell000133013301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013301 h) + (by + have h : (thetaAboveCell000133013302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013302 h) + (by + have h : (thetaAboveCell000133013303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133013310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013310 h) + (by + have h : (thetaAboveCell000133013311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013311 h) + (by + have h : (thetaAboveCell000133013312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013312 h) + (by + have h : (thetaAboveCell000133013313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childHH + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133013320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013320 h) + (by + have h : (thetaAboveCell000133013321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013321 h) + (by + have h : (thetaAboveCell000133013322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013322 h) + (by + have h : (thetaAboveCell000133013323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childHH + thetaAboveCell00013301))) + (by + have h : (thetaAboveCell000133013330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013330 h) + (by + have h : (thetaAboveCell000133013331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013331 h) + (by + have h : (thetaAboveCell000133013332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013332 h) + (by + have h : (thetaAboveCell000133013333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133013333 h)) +theorem e24KC2ThetaAboveLeaf0001331020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00013310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00013310)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00013310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00013310))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00013310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00013310))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133102020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102020 h) + (by + have h : (thetaAboveCell000133102021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102021 h) + (by + have h : (thetaAboveCell000133102022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102022 h) + (by + have h : (thetaAboveCell000133102023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133102030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102030 h) + (by + have h : (thetaAboveCell000133102031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102031 h) + (by + have h : (thetaAboveCell000133102032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102032 h) + (by + have h : (thetaAboveCell000133102033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102033 h)) +theorem e24KC2ThetaAboveLeaf0001331021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00013310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00013310)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00013310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00013310))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00013310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00013310))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133102120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102120 h) + (by + have h : (thetaAboveCell000133102121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102121 h) + (by + have h : (thetaAboveCell000133102122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102122 h) + (by + have h : (thetaAboveCell000133102123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133102130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102130 h) + (by + have h : (thetaAboveCell000133102131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102131 h) + (by + have h : (thetaAboveCell000133102132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102132 h) + (by + have h : (thetaAboveCell000133102133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102133 h)) +theorem e24KC2ThetaAboveLeaf0001331022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00013310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00013310)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133102200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102200 h) + (by + have h : (thetaAboveCell000133102201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102201 h) + (by + have h : (thetaAboveCell000133102202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102202 h) + (by + have h : (thetaAboveCell000133102203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133102210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102210 h) + (by + have h : (thetaAboveCell000133102211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102211 h) + (by + have h : (thetaAboveCell000133102212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102212 h) + (by + have h : (thetaAboveCell000133102213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childHL + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133102220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102220 h) + (by + have h : (thetaAboveCell000133102221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102221 h) + (by + have h : (thetaAboveCell000133102222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102222 h) + (by + have h : (thetaAboveCell000133102223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childHL + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133102230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102230 h) + (by + have h : (thetaAboveCell000133102231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102231 h) + (by + have h : (thetaAboveCell000133102232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102232 h) + (by + have h : (thetaAboveCell000133102233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102233 h)) +theorem e24KC2ThetaAboveLeaf0001331023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00013310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00013310)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133102300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102300 h) + (by + have h : (thetaAboveCell000133102301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102301 h) + (by + have h : (thetaAboveCell000133102302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102302 h) + (by + have h : (thetaAboveCell000133102303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133102310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102310 h) + (by + have h : (thetaAboveCell000133102311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102311 h) + (by + have h : (thetaAboveCell000133102312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102312 h) + (by + have h : (thetaAboveCell000133102313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childHL + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133102320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102320 h) + (by + have h : (thetaAboveCell000133102321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102321 h) + (by + have h : (thetaAboveCell000133102322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102322 h) + (by + have h : (thetaAboveCell000133102323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childHL + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133102330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102330 h) + (by + have h : (thetaAboveCell000133102331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102331 h) + (by + have h : (thetaAboveCell000133102332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102332 h) + (by + have h : (thetaAboveCell000133102333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133102333 h)) +theorem e24KC2ThetaAboveLeaf0001331030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00013310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00013310)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00013310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00013310))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00013310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00013310))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133103020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103020 h) + (by + have h : (thetaAboveCell000133103021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103021 h) + (by + have h : (thetaAboveCell000133103022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103022 h) + (by + have h : (thetaAboveCell000133103023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133103030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103030 h) + (by + have h : (thetaAboveCell000133103031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103031 h) + (by + have h : (thetaAboveCell000133103032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103032 h) + (by + have h : (thetaAboveCell000133103033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103033 h)) +theorem e24KC2ThetaAboveLeaf0001331031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00013310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00013310)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00013310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00013310))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00013310)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00013310))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133103120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103120 h) + (by + have h : (thetaAboveCell000133103121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103121 h) + (by + have h : (thetaAboveCell000133103122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103122 h) + (by + have h : (thetaAboveCell000133103123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133103130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103130 h) + (by + have h : (thetaAboveCell000133103131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103131 h) + (by + have h : (thetaAboveCell000133103132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103132 h) + (by + have h : (thetaAboveCell000133103133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103133 h)) +theorem e24KC2ThetaAboveLeaf0001331032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00013310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00013310)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133103200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103200 h) + (by + have h : (thetaAboveCell000133103201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103201 h) + (by + have h : (thetaAboveCell000133103202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103202 h) + (by + have h : (thetaAboveCell000133103203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133103210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103210 h) + (by + have h : (thetaAboveCell000133103211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103211 h) + (by + have h : (thetaAboveCell000133103212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103212 h) + (by + have h : (thetaAboveCell000133103213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childHH + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133103220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103220 h) + (by + have h : (thetaAboveCell000133103221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103221 h) + (by + have h : (thetaAboveCell000133103222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103222 h) + (by + have h : (thetaAboveCell000133103223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childHH + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133103230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103230 h) + (by + have h : (thetaAboveCell000133103231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103231 h) + (by + have h : (thetaAboveCell000133103232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103232 h) + (by + have h : (thetaAboveCell000133103233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103233 h)) +theorem e24KC2ThetaAboveLeaf0001331033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00013310)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00013310)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133103300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103300 h) + (by + have h : (thetaAboveCell000133103301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103301 h) + (by + have h : (thetaAboveCell000133103302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103302 h) + (by + have h : (thetaAboveCell000133103303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133103310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103310 h) + (by + have h : (thetaAboveCell000133103311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103311 h) + (by + have h : (thetaAboveCell000133103312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103312 h) + (by + have h : (thetaAboveCell000133103313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childHH + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133103320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103320 h) + (by + have h : (thetaAboveCell000133103321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103321 h) + (by + have h : (thetaAboveCell000133103322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103322 h) + (by + have h : (thetaAboveCell000133103323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childHH + thetaAboveCell00013310))) + (by + have h : (thetaAboveCell000133103330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103330 h) + (by + have h : (thetaAboveCell000133103331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103331 h) + (by + have h : (thetaAboveCell000133103332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103332 h) + (by + have h : (thetaAboveCell000133103333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133103333 h)) +theorem e24KC2ThetaAboveLeaf0001331120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00013311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00013311)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00013311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00013311))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00013311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00013311))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00013311))) + (by + have h : (thetaAboveCell000133112020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112020 h) + (by + have h : (thetaAboveCell000133112021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112021 h) + (by + have h : (thetaAboveCell000133112022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112022 h) + (by + have h : (thetaAboveCell000133112023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00013311))) + (by + have h : (thetaAboveCell000133112030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112030 h) + (by + have h : (thetaAboveCell000133112031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112031 h) + (by + have h : (thetaAboveCell000133112032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112032 h) + (by + have h : (thetaAboveCell000133112033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112033 h)) +theorem e24KC2ThetaAboveLeaf0001331121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00013311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00013311)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00013311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00013311))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00013311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00013311))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00013311))) + (by + have h : (thetaAboveCell000133112120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112120 h) + (by + have h : (thetaAboveCell000133112121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112121 h) + (by + have h : (thetaAboveCell000133112122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112122 h) + (by + have h : (thetaAboveCell000133112123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00013311))) + (by + have h : (thetaAboveCell000133112130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112130 h) + (by + have h : (thetaAboveCell000133112131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112131 h) + (by + have h : (thetaAboveCell000133112132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112132 h) + (by + have h : (thetaAboveCell000133112133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112133 h)) +theorem e24KC2ThetaAboveLeaf0001331122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00013311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00013311)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00013311))) + (by + have h : (thetaAboveCell000133112200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112200 h) + (by + have h : (thetaAboveCell000133112201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112201 h) + (by + have h : (thetaAboveCell000133112202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112202 h) + (by + have h : (thetaAboveCell000133112203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00013311))) + (by + have h : (thetaAboveCell000133112210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112210 h) + (by + have h : (thetaAboveCell000133112211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112211 h) + (by + have h : (thetaAboveCell000133112212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112212 h) + (by + have h : (thetaAboveCell000133112213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childHL + thetaAboveCell00013311))) + (by + have h : (thetaAboveCell000133112220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112220 h) + (by + have h : (thetaAboveCell000133112221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112221 h) + (by + have h : (thetaAboveCell000133112222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112222 h) + (by + have h : (thetaAboveCell000133112223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childHL + thetaAboveCell00013311))) + (by + have h : (thetaAboveCell000133112230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112230 h) + (by + have h : (thetaAboveCell000133112231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112231 h) + (by + have h : (thetaAboveCell000133112232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112232 h) + (by + have h : (thetaAboveCell000133112233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112233 h)) +theorem e24KC2ThetaAboveLeaf0001331123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00013311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00013311)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00013311))) + (by + have h : (thetaAboveCell000133112300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112300 h) + (by + have h : (thetaAboveCell000133112301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112301 h) + (by + have h : (thetaAboveCell000133112302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112302 h) + (by + have h : (thetaAboveCell000133112303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00013311))) + (by + have h : (thetaAboveCell000133112310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112310 h) + (by + have h : (thetaAboveCell000133112311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112311 h) + (by + have h : (thetaAboveCell000133112312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112312 h) + (by + have h : (thetaAboveCell000133112313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133112313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00013311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00013311))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00013311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00013311))) h) +theorem e24KC2ThetaAboveLeaf0001331130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00013311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00013311)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00013311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00013311))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00013311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00013311))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00013311))) + (by + have h : (thetaAboveCell000133113020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113020 h) + (by + have h : (thetaAboveCell000133113021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113021 h) + (by + have h : (thetaAboveCell000133113022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113022 h) + (by + have h : (thetaAboveCell000133113023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00013311))) + (by + have h : (thetaAboveCell000133113030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113030 h) + (by + have h : (thetaAboveCell000133113031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113031 h) + (by + have h : (thetaAboveCell000133113032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113032 h) + (by + have h : (thetaAboveCell000133113033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113033 h)) +theorem e24KC2ThetaAboveLeaf0001331131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00013311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00013311)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00013311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00013311))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00013311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00013311))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00013311))) + (by + have h : (thetaAboveCell000133113120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113120 h) + (by + have h : (thetaAboveCell000133113121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113121 h) + (by + have h : (thetaAboveCell000133113122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113122 h) + (by + have h : (thetaAboveCell000133113123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00013311))) + (by + have h : (thetaAboveCell000133113130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113130 h) + (by + have h : (thetaAboveCell000133113131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113131 h) + (by + have h : (thetaAboveCell000133113132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113132 h) + (by + have h : (thetaAboveCell000133113133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113133 h)) +theorem e24KC2ThetaAboveLeaf0001331132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00013311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00013311)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00013311))) + (by + have h : (thetaAboveCell000133113200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113200 h) + (by + have h : (thetaAboveCell000133113201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113201 h) + (by + have h : (thetaAboveCell000133113202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113202 h) + (by + have h : (thetaAboveCell000133113203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00013311))) + (by + have h : (thetaAboveCell000133113210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113210 h) + (by + have h : (thetaAboveCell000133113211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113211 h) + (by + have h : (thetaAboveCell000133113212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113212 h) + (by + have h : (thetaAboveCell000133113213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00013311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00013311))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00013311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00013311))) h) +theorem e24KC2ThetaAboveLeaf0001331133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00013311)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00013311)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00013311))) + (by + have h : (thetaAboveCell000133113300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113300 h) + (by + have h : (thetaAboveCell000133113301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113301 h) + (by + have h : (thetaAboveCell000133113302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113302 h) + (by + have h : (thetaAboveCell000133113303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00013311))) + (by + have h : (thetaAboveCell000133113310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113310 h) + (by + have h : (thetaAboveCell000133113311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113311 h) + (by + have h : (thetaAboveCell000133113312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113312 h) + (by + have h : (thetaAboveCell000133113313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000133113313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00013311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00013311))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00013311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00013311))) h) +theorem e24KC2ThetaAboveLeaf0001331301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00013313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00013313)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00013313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00013313))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00013313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00013313))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00013313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00013313))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00013313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00013313))) h) +theorem e24KC2ThetaAboveLeaf0001331310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00013313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00013313)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00013313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00013313))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00013313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00013313))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00013313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00013313))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00013313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00013313))) h) +theorem e24KC2ThetaAboveLeaf0001331311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00013313)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00013313)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00013313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00013313))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00013313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00013313))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00013313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00013313))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00013313)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00013313))) h) +theorem e24KC2ThetaAboveLeaf0010220020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00102200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00102200)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00102200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00102200))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00102200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00102200))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00102200))) + (by + have h : (thetaAboveCell001022002020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002020 h) + (by + have h : (thetaAboveCell001022002021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002021 h) + (by + have h : (thetaAboveCell001022002022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002022 h) + (by + have h : (thetaAboveCell001022002023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00102200))) + (by + have h : (thetaAboveCell001022002030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002030 h) + (by + have h : (thetaAboveCell001022002031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002031 h) + (by + have h : (thetaAboveCell001022002032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002032 h) + (by + have h : (thetaAboveCell001022002033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002033 h)) +theorem e24KC2ThetaAboveLeaf0010220021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00102200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00102200)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00102200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00102200))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00102200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00102200))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00102200))) + (by + have h : (thetaAboveCell001022002120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002120 h) + (by + have h : (thetaAboveCell001022002121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002121 h) + (by + have h : (thetaAboveCell001022002122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002122 h) + (by + have h : (thetaAboveCell001022002123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00102200))) + (by + have h : (thetaAboveCell001022002130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002130 h) + (by + have h : (thetaAboveCell001022002131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002131 h) + (by + have h : (thetaAboveCell001022002132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002132 h) + (by + have h : (thetaAboveCell001022002133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002133 h)) +theorem e24KC2ThetaAboveLeaf0010220022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00102200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00102200)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00102200))) + (by + have h : (thetaAboveCell001022002200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002200 h) + (by + have h : (thetaAboveCell001022002201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002201 h) + (by + have h : (thetaAboveCell001022002202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002202 h) + (by + have h : (thetaAboveCell001022002203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHL + thetaAboveCell00102200))) + (by + have h : (thetaAboveCell001022002210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002210 h) + (by + have h : (thetaAboveCell001022002211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002211 h) + (by + have h : (thetaAboveCell001022002212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002212 h) + (by + have h : (thetaAboveCell001022002213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00102200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00102200))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00102200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00102200))) h) +theorem e24KC2ThetaAboveLeaf0010220023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00102200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00102200)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHL + thetaAboveCell00102200))) + (by + have h : (thetaAboveCell001022002300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002300 h) + (by + have h : (thetaAboveCell001022002301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002301 h) + (by + have h : (thetaAboveCell001022002302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002302 h) + (by + have h : (thetaAboveCell001022002303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHL + thetaAboveCell00102200))) + (by + have h : (thetaAboveCell001022002310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002310 h) + (by + have h : (thetaAboveCell001022002311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002311 h) + (by + have h : (thetaAboveCell001022002312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002312 h) + (by + have h : (thetaAboveCell001022002313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022002313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00102200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00102200))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00102200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00102200))) h) +theorem e24KC2ThetaAboveLeaf0010220030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00102200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00102200)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00102200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00102200))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00102200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00102200))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00102200))) + (by + have h : (thetaAboveCell001022003020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003020 h) + (by + have h : (thetaAboveCell001022003021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003021 h) + (by + have h : (thetaAboveCell001022003022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003022 h) + (by + have h : (thetaAboveCell001022003023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00102200))) + (by + have h : (thetaAboveCell001022003030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003030 h) + (by + have h : (thetaAboveCell001022003031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003031 h) + (by + have h : (thetaAboveCell001022003032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003032 h) + (by + have h : (thetaAboveCell001022003033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003033 h)) +theorem e24KC2ThetaAboveLeaf0010220031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00102200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00102200)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00102200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00102200))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00102200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00102200))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00102200))) + (by + have h : (thetaAboveCell001022003120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003120 h) + (by + have h : (thetaAboveCell001022003121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003121 h) + (by + have h : (thetaAboveCell001022003122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003122 h) + (by + have h : (thetaAboveCell001022003123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00102200))) + (by + have h : (thetaAboveCell001022003130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003130 h) + (by + have h : (thetaAboveCell001022003131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003131 h) + (by + have h : (thetaAboveCell001022003132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003132 h) + (by + have h : (thetaAboveCell001022003133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003133 h)) +theorem e24KC2ThetaAboveLeaf0010220032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00102200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00102200)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHH + thetaAboveCell00102200))) + (by + have h : (thetaAboveCell001022003200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003200 h) + (by + have h : (thetaAboveCell001022003201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003201 h) + (by + have h : (thetaAboveCell001022003202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003202 h) + (by + have h : (thetaAboveCell001022003203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHL (childHH + thetaAboveCell00102200))) + (by + have h : (thetaAboveCell001022003210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003210 h) + (by + have h : (thetaAboveCell001022003211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003211 h) + (by + have h : (thetaAboveCell001022003212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003212 h) + (by + have h : (thetaAboveCell001022003213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00102200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00102200))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00102200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00102200))) h) +theorem e24KC2ThetaAboveLeaf0010220033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00102200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00102200)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHH (childHH + thetaAboveCell00102200))) + (by + have h : (thetaAboveCell001022003300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003300 h) + (by + have h : (thetaAboveCell001022003301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003301 h) + (by + have h : (thetaAboveCell001022003302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003302 h) + (by + have h : (thetaAboveCell001022003303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childHH (childHH + thetaAboveCell00102200))) + (by + have h : (thetaAboveCell001022003310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003310 h) + (by + have h : (thetaAboveCell001022003311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003311 h) + (by + have h : (thetaAboveCell001022003312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003312 h) + (by + have h : (thetaAboveCell001022003313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022003313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00102200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00102200))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00102200)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00102200))) h) +theorem e24KC2ThetaAboveLeaf0010220120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00102201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00102201)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00102201))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00102201))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00102201))) + (by + have h : (thetaAboveCell001022012020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012020 h) + (by + have h : (thetaAboveCell001022012021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012021 h) + (by + have h : (thetaAboveCell001022012022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012022 h) + (by + have h : (thetaAboveCell001022012023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00102201))) + (by + have h : (thetaAboveCell001022012030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012030 h) + (by + have h : (thetaAboveCell001022012031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012031 h) + (by + have h : (thetaAboveCell001022012032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012032 h) + (by + have h : (thetaAboveCell001022012033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012033 h)) +theorem e24KC2ThetaAboveLeaf0010220121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00102201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00102201)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00102201))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00102201))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00102201))) + (by + have h : (thetaAboveCell001022012120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012120 h) + (by + have h : (thetaAboveCell001022012121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012121 h) + (by + have h : (thetaAboveCell001022012122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012122 h) + (by + have h : (thetaAboveCell001022012123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00102201))) + (by + have h : (thetaAboveCell001022012130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012130 h) + (by + have h : (thetaAboveCell001022012131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012131 h) + (by + have h : (thetaAboveCell001022012132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012132 h) + (by + have h : (thetaAboveCell001022012133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012133 h)) +theorem e24KC2ThetaAboveLeaf0010220122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00102201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00102201)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childHL (childHL + thetaAboveCell00102201))) + (by + have h : (thetaAboveCell001022012200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012200 h) + (by + have h : (thetaAboveCell001022012201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012201 h) + (by + have h : (thetaAboveCell001022012202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012202 h) + (by + have h : (thetaAboveCell001022012203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022012203 h)) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00102201))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00102201))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00102201))) h) +theorem e24KC2ThetaAboveLeaf0010220123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00102201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00102201)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00102201))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00102201))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00102201))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00102201))) h) +theorem e24KC2ThetaAboveLeaf0010220130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00102201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00102201)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00102201))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00102201))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00102201))) + (by + have h : (thetaAboveCell001022013020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022013020 h) + (by + have h : (thetaAboveCell001022013021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022013021 h) + (by + have h : (thetaAboveCell001022013022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022013022 h) + (by + have h : (thetaAboveCell001022013023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022013023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00102201))) + (by + have h : (thetaAboveCell001022013030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022013030 h) + (by + have h : (thetaAboveCell001022013031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022013031 h) + (by + have h : (thetaAboveCell001022013032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022013032 h) + (by + have h : (thetaAboveCell001022013033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022013033 h)) +theorem e24KC2ThetaAboveLeaf0010220131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00102201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00102201)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00102201))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00102201))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00102201))) + (by + have h : (thetaAboveCell001022013120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022013120 h) + (by + have h : (thetaAboveCell001022013121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022013121 h) + (by + have h : (thetaAboveCell001022013122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022013122 h) + (by + have h : (thetaAboveCell001022013123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022013123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00102201))) + (by + have h : (thetaAboveCell001022013130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022013130 h) + (by + have h : (thetaAboveCell001022013131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022013131 h) + (by + have h : (thetaAboveCell001022013132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022013132 h) + (by + have h : (thetaAboveCell001022013133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022013133 h)) +theorem e24KC2ThetaAboveLeaf0010220132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00102201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00102201)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00102201))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00102201))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00102201))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00102201))) h) +theorem e24KC2ThetaAboveLeaf0010220133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00102201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00102201)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00102201))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00102201))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00102201))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00102201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00102201))) h) +theorem e24KC2ThetaAboveLeaf0010220200 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00102202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00102202)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00102202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00102202))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00102202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00102202))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00102202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00102202))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00102202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00102202))) h) +theorem e24KC2ThetaAboveLeaf0010220201 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00102202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00102202)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00102202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00102202))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00102202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00102202))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00102202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00102202))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00102202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00102202))) h) +theorem e24KC2ThetaAboveLeaf0010220210 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00102202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00102202)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00102202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00102202))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00102202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00102202))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00102202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00102202))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00102202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00102202))) h) +theorem e24KC2ThetaAboveLeaf0010220211 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00102202)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00102202)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00102202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00102202))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00102202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00102202))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00102202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00102202))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00102202)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00102202))) h) +theorem e24KC2ThetaAboveLeaf0010220300 : + adaptiveCoverCheck 9 (childLL (childLL thetaAboveCell00102203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLL thetaAboveCell00102203)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell00102203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLL + thetaAboveCell00102203))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell00102203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLL + thetaAboveCell00102203))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell00102203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLL + thetaAboveCell00102203))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell00102203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLL + thetaAboveCell00102203))) h) +theorem e24KC2ThetaAboveLeaf0010220301 : + adaptiveCoverCheck 9 (childLH (childLL thetaAboveCell00102203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLL thetaAboveCell00102203)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell00102203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLL + thetaAboveCell00102203))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell00102203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLL + thetaAboveCell00102203))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell00102203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLL + thetaAboveCell00102203))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell00102203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLL + thetaAboveCell00102203))) h) +theorem e24KC2ThetaAboveLeaf0010220310 : + adaptiveCoverCheck 9 (childLL (childLH thetaAboveCell00102203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childLH thetaAboveCell00102203)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell00102203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childLH + thetaAboveCell00102203))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell00102203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childLH + thetaAboveCell00102203))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell00102203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childLH + thetaAboveCell00102203))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell00102203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childLH + thetaAboveCell00102203))) h) +theorem e24KC2ThetaAboveLeaf0010220311 : + adaptiveCoverCheck 9 (childLH (childLH thetaAboveCell00102203)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childLH thetaAboveCell00102203)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell00102203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childLH + thetaAboveCell00102203))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell00102203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childLH + thetaAboveCell00102203))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell00102203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLH (childLH + thetaAboveCell00102203))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell00102203)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLH (childLH + thetaAboveCell00102203))) h) +theorem e24KC2ThetaAboveLeaf0010221020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00102210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00102210)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00102210))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00102210))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00102210))) + (by + have h : (thetaAboveCell001022102020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022102020 h) + (by + have h : (thetaAboveCell001022102021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022102021 h) + (by + have h : (thetaAboveCell001022102022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022102022 h) + (by + have h : (thetaAboveCell001022102023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022102023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00102210))) + (by + have h : (thetaAboveCell001022102030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022102030 h) + (by + have h : (thetaAboveCell001022102031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022102031 h) + (by + have h : (thetaAboveCell001022102032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022102032 h) + (by + have h : (thetaAboveCell001022102033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022102033 h)) +theorem e24KC2ThetaAboveLeaf0010221021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00102210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00102210)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHL + thetaAboveCell00102210))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHL + thetaAboveCell00102210))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00102210))) + (by + have h : (thetaAboveCell001022102120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022102120 h) + (by + have h : (thetaAboveCell001022102121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022102121 h) + (by + have h : (thetaAboveCell001022102122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022102122 h) + (by + have h : (thetaAboveCell001022102123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022102123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00102210))) + (by + have h : (thetaAboveCell001022102130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022102130 h) + (by + have h : (thetaAboveCell001022102131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022102131 h) + (by + have h : (thetaAboveCell001022102132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022102132 h) + (by + have h : (thetaAboveCell001022102133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022102133 h)) +theorem e24KC2ThetaAboveLeaf0010221022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00102210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00102210)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00102210))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00102210))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00102210))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00102210))) h) +theorem e24KC2ThetaAboveLeaf0010221023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00102210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00102210)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00102210))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00102210))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00102210))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00102210))) h) +theorem e24KC2ThetaAboveLeaf0010221030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00102210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00102210)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHH + thetaAboveCell00102210))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHH + thetaAboveCell00102210))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00102210))) + (by + have h : (thetaAboveCell001022103020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022103020 h) + (by + have h : (thetaAboveCell001022103021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022103021 h) + (by + have h : (thetaAboveCell001022103022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022103022 h) + (by + have h : (thetaAboveCell001022103023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022103023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00102210))) + (by + have h : (thetaAboveCell001022103030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022103030 h) + (by + have h : (thetaAboveCell001022103031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022103031 h) + (by + have h : (thetaAboveCell001022103032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022103032 h) + (by + have h : (thetaAboveCell001022103033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022103033 h)) +theorem e24KC2ThetaAboveLeaf0010221031 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00102210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00102210)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLH (childHH + thetaAboveCell00102210))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLH (childHH + thetaAboveCell00102210))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00102210))) + (by + have h : (thetaAboveCell001022103120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022103120 h) + (by + have h : (thetaAboveCell001022103121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022103121 h) + (by + have h : (thetaAboveCell001022103122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022103122 h) + (by + have h : (thetaAboveCell001022103123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022103123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00102210))) + (by + have h : (thetaAboveCell001022103130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022103130 h) + (by + have h : (thetaAboveCell001022103131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022103131 h) + (by + have h : (thetaAboveCell001022103132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022103132 h) + (by + have h : (thetaAboveCell001022103133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell001022103133 h)) +theorem e24KC2ThetaAboveLeaf0010221032 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00102210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00102210)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00102210))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00102210))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00102210))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00102210))) h) +theorem e24KC2ThetaAboveLeaf0010221033 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00102210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00102210)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00102210))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00102210))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00102210))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00102210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00102210))) h) +theorem e24KC2ThetaAboveLeaf0010221120 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00102211)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00102211)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childLL (childHL + thetaAboveCell00102211))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childLL (childHL + thetaAboveCell00102211))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childLL (childHL + thetaAboveCell00102211))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell00102211)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childLL (childHL + thetaAboveCell00102211))) h) + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle017.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle017.lean new file mode 100644 index 0000000000..bf2391e38d --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle017.lean @@ -0,0 +1,9055 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch030`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCellsbc9ee1179f + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022012100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00002201))) + +/-- Subcell `000022012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00002201))) + +/-- Subcell `000022013000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00002201))) + +/-- Subcell `0000220121002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121002333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121002333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell000022012100))) + +/-- Subcell `0000220121003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121003333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121003333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell000022012100))) + +/-- Subcell `0000220121012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121012333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121012333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell000022012101))) + +/-- Subcell `0000220121013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121013333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121013333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell000022012101))) + +/-- Subcell `0000220121102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121102333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121102333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell000022012110))) + +/-- Subcell `0000220121103020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121103333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121103333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell000022012110))) + +/-- Subcell `0000220121112020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121112333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121112333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell000022012111))) + +/-- Subcell `0000220121113020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220121113333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220121113333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell000022012111))) + +/-- Subcell `0000220130002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130002333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130002333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell000022013000))) + +/-- Subcell `0000220130003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130003333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130003333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell000022013000))) + +/-- Subcell `0000220130012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130012333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130012333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell000022013001))) + +/-- Subcell `0000220130013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130013333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130013333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell000022013001))) + +/-- Subcell `0000220130102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130102333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130102333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell000022013010))) + +/-- Subcell `0000220130103020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130103333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130103333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell000022013010))) + +/-- Subcell `0000220130112020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112222 : AngleCell := + childHL (childHL (childHL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112223 : AngleCell := + childHH (childHL (childHL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112232 : AngleCell := + childHL (childHH (childHL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112233 : AngleCell := + childHH (childHH (childHL (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112322 : AngleCell := + childHL (childHL (childHH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112323 : AngleCell := + childHH (childHL (childHH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130112333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130112333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell000022013011))) + +/-- Subcell `0000220130113020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell000022013011))) + +/-- Subcell `0000220130113323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220130113323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell000022013011))) + +end GerverSofa.PartE.CertificateCellsbc9ee1179f + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC6ProofBatchE7cbedc8143c8e9f`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC6 explicit proof-producing certificate batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsbc9ee1179f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsbc9ee1179f + +open CertificateCellsbc9ee1179f +theorem cover_subtree_c4eb81eb7e49 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022012100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022012100)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022012100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022012100))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022012100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022012100))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121002020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002020 h) + (by + have h : (thetaAboveCell0000220121002021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002021 h) + (by + have h : (thetaAboveCell0000220121002022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002022 h) + (by + have h : (thetaAboveCell0000220121002023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121002030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002030 h) + (by + have h : (thetaAboveCell0000220121002031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002031 h) + (by + have h : (thetaAboveCell0000220121002032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002032 h) + (by + have h : (thetaAboveCell0000220121002033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002033 h)) + +theorem cover_subtree_20c58a0c1f65 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022012100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022012100)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022012100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022012100))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022012100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022012100))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121002120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002120 h) + (by + have h : (thetaAboveCell0000220121002121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002121 h) + (by + have h : (thetaAboveCell0000220121002122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002122 h) + (by + have h : (thetaAboveCell0000220121002123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121002130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002130 h) + (by + have h : (thetaAboveCell0000220121002131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002131 h) + (by + have h : (thetaAboveCell0000220121002132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002132 h) + (by + have h : (thetaAboveCell0000220121002133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002133 h)) + +theorem cover_subtree_a8a40a37bd16 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022012100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022012100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121002200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002200 h) + (by + have h : (thetaAboveCell0000220121002201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002201 h) + (by + have h : (thetaAboveCell0000220121002202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002202 h) + (by + have h : (thetaAboveCell0000220121002203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121002210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002210 h) + (by + have h : (thetaAboveCell0000220121002211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002211 h) + (by + have h : (thetaAboveCell0000220121002212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002212 h) + (by + have h : (thetaAboveCell0000220121002213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL (childHL + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121002220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002220 h) + (by + have h : (thetaAboveCell0000220121002221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002221 h) + (by + have h : (thetaAboveCell0000220121002222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002222 h) + (by + have h : (thetaAboveCell0000220121002223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL (childHL + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121002230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002230 h) + (by + have h : (thetaAboveCell0000220121002231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002231 h) + (by + have h : (thetaAboveCell0000220121002232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002232 h) + (by + have h : (thetaAboveCell0000220121002233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002233 h)) + +theorem cover_subtree_71af7f863f59 : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022012100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022012100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121002300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002300 h) + (by + have h : (thetaAboveCell0000220121002301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002301 h) + (by + have h : (thetaAboveCell0000220121002302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002302 h) + (by + have h : (thetaAboveCell0000220121002303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121002310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002310 h) + (by + have h : (thetaAboveCell0000220121002311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002311 h) + (by + have h : (thetaAboveCell0000220121002312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002312 h) + (by + have h : (thetaAboveCell0000220121002313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH (childHL + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121002320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002320 h) + (by + have h : (thetaAboveCell0000220121002321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002321 h) + (by + have h : (thetaAboveCell0000220121002322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002322 h) + (by + have h : (thetaAboveCell0000220121002323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH (childHL + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121002330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002330 h) + (by + have h : (thetaAboveCell0000220121002331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002331 h) + (by + have h : (thetaAboveCell0000220121002332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002332 h) + (by + have h : (thetaAboveCell0000220121002333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121002333 h)) + +theorem cover_subtree_e8b421b5f980 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022012100) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022012100) + cover_subtree_c4eb81eb7e49 + cover_subtree_20c58a0c1f65 + cover_subtree_a8a40a37bd16 + cover_subtree_71af7f863f59 + +theorem cover_subtree_807256c88993 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022012100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022012100)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022012100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022012100))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022012100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022012100))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121003020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003020 h) + (by + have h : (thetaAboveCell0000220121003021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003021 h) + (by + have h : (thetaAboveCell0000220121003022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003022 h) + (by + have h : (thetaAboveCell0000220121003023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121003030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003030 h) + (by + have h : (thetaAboveCell0000220121003031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003031 h) + (by + have h : (thetaAboveCell0000220121003032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003032 h) + (by + have h : (thetaAboveCell0000220121003033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003033 h)) + +theorem cover_subtree_8f2cea51bbf4 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022012100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022012100)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022012100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022012100))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022012100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022012100))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121003120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003120 h) + (by + have h : (thetaAboveCell0000220121003121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003121 h) + (by + have h : (thetaAboveCell0000220121003122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003122 h) + (by + have h : (thetaAboveCell0000220121003123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121003130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003130 h) + (by + have h : (thetaAboveCell0000220121003131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003131 h) + (by + have h : (thetaAboveCell0000220121003132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003132 h) + (by + have h : (thetaAboveCell0000220121003133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003133 h)) + +theorem cover_subtree_c244889fccb8 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022012100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022012100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121003200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003200 h) + (by + have h : (thetaAboveCell0000220121003201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003201 h) + (by + have h : (thetaAboveCell0000220121003202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003202 h) + (by + have h : (thetaAboveCell0000220121003203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121003210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003210 h) + (by + have h : (thetaAboveCell0000220121003211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003211 h) + (by + have h : (thetaAboveCell0000220121003212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003212 h) + (by + have h : (thetaAboveCell0000220121003213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL (childHH + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121003220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003220 h) + (by + have h : (thetaAboveCell0000220121003221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003221 h) + (by + have h : (thetaAboveCell0000220121003222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003222 h) + (by + have h : (thetaAboveCell0000220121003223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL (childHH + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121003230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003230 h) + (by + have h : (thetaAboveCell0000220121003231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003231 h) + (by + have h : (thetaAboveCell0000220121003232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003232 h) + (by + have h : (thetaAboveCell0000220121003233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003233 h)) + +theorem cover_subtree_2684f740078d : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022012100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022012100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121003300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003300 h) + (by + have h : (thetaAboveCell0000220121003301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003301 h) + (by + have h : (thetaAboveCell0000220121003302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003302 h) + (by + have h : (thetaAboveCell0000220121003303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121003310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003310 h) + (by + have h : (thetaAboveCell0000220121003311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003311 h) + (by + have h : (thetaAboveCell0000220121003312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003312 h) + (by + have h : (thetaAboveCell0000220121003313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH (childHH + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121003320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003320 h) + (by + have h : (thetaAboveCell0000220121003321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003321 h) + (by + have h : (thetaAboveCell0000220121003322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003322 h) + (by + have h : (thetaAboveCell0000220121003323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH (childHH + thetaAboveCell000022012100))) + (by + have h : (thetaAboveCell0000220121003330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003330 h) + (by + have h : (thetaAboveCell0000220121003331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003331 h) + (by + have h : (thetaAboveCell0000220121003332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003332 h) + (by + have h : (thetaAboveCell0000220121003333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121003333 h)) + +theorem cover_subtree_38440f81d562 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022012100) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022012100) + cover_subtree_807256c88993 + cover_subtree_8f2cea51bbf4 + cover_subtree_c244889fccb8 + cover_subtree_2684f740078d + +theorem cover_subtree_c0614247fef2 : + adaptiveCoverCheck 7 thetaAboveCell000022012100 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022012100 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022012100) + (by + have h : ((childLL (childLL thetaAboveCell000022012100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022012100)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022012100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022012100)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022012100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022012100)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022012100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022012100)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022012100) + (by + have h : ((childLL (childLH thetaAboveCell000022012100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022012100)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022012100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022012100)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022012100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022012100)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022012100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022012100)) h)) + cover_subtree_e8b421b5f980 + cover_subtree_38440f81d562 + +theorem cover_subtree_31258573aaec : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022012101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022012101)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022012101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022012101))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022012101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022012101))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121012020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012020 h) + (by + have h : (thetaAboveCell0000220121012021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012021 h) + (by + have h : (thetaAboveCell0000220121012022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012022 h) + (by + have h : (thetaAboveCell0000220121012023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121012030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012030 h) + (by + have h : (thetaAboveCell0000220121012031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012031 h) + (by + have h : (thetaAboveCell0000220121012032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012032 h) + (by + have h : (thetaAboveCell0000220121012033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012033 h)) + +theorem cover_subtree_72b7b156e7ee : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022012101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022012101)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022012101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022012101))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022012101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022012101))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121012120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012120 h) + (by + have h : (thetaAboveCell0000220121012121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012121 h) + (by + have h : (thetaAboveCell0000220121012122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012122 h) + (by + have h : (thetaAboveCell0000220121012123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121012130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012130 h) + (by + have h : (thetaAboveCell0000220121012131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012131 h) + (by + have h : (thetaAboveCell0000220121012132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012132 h) + (by + have h : (thetaAboveCell0000220121012133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012133 h)) + +theorem cover_subtree_49d59b40ac80 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022012101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022012101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121012200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012200 h) + (by + have h : (thetaAboveCell0000220121012201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012201 h) + (by + have h : (thetaAboveCell0000220121012202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012202 h) + (by + have h : (thetaAboveCell0000220121012203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121012210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012210 h) + (by + have h : (thetaAboveCell0000220121012211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012211 h) + (by + have h : (thetaAboveCell0000220121012212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012212 h) + (by + have h : (thetaAboveCell0000220121012213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL (childHL + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121012220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012220 h) + (by + have h : (thetaAboveCell0000220121012221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012221 h) + (by + have h : (thetaAboveCell0000220121012222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012222 h) + (by + have h : (thetaAboveCell0000220121012223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL (childHL + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121012230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012230 h) + (by + have h : (thetaAboveCell0000220121012231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012231 h) + (by + have h : (thetaAboveCell0000220121012232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012232 h) + (by + have h : (thetaAboveCell0000220121012233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012233 h)) + +theorem cover_subtree_de88d1b7e4d0 : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022012101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022012101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121012300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012300 h) + (by + have h : (thetaAboveCell0000220121012301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012301 h) + (by + have h : (thetaAboveCell0000220121012302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012302 h) + (by + have h : (thetaAboveCell0000220121012303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121012310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012310 h) + (by + have h : (thetaAboveCell0000220121012311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012311 h) + (by + have h : (thetaAboveCell0000220121012312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012312 h) + (by + have h : (thetaAboveCell0000220121012313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH (childHL + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121012320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012320 h) + (by + have h : (thetaAboveCell0000220121012321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012321 h) + (by + have h : (thetaAboveCell0000220121012322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012322 h) + (by + have h : (thetaAboveCell0000220121012323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH (childHL + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121012330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012330 h) + (by + have h : (thetaAboveCell0000220121012331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012331 h) + (by + have h : (thetaAboveCell0000220121012332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012332 h) + (by + have h : (thetaAboveCell0000220121012333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121012333 h)) + +theorem cover_subtree_8fb6927013d7 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022012101) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022012101) + cover_subtree_31258573aaec + cover_subtree_72b7b156e7ee + cover_subtree_49d59b40ac80 + cover_subtree_de88d1b7e4d0 + +theorem cover_subtree_02e81ee0d1ef : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022012101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022012101)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022012101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022012101))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022012101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022012101))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121013020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013020 h) + (by + have h : (thetaAboveCell0000220121013021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013021 h) + (by + have h : (thetaAboveCell0000220121013022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013022 h) + (by + have h : (thetaAboveCell0000220121013023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121013030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013030 h) + (by + have h : (thetaAboveCell0000220121013031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013031 h) + (by + have h : (thetaAboveCell0000220121013032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013032 h) + (by + have h : (thetaAboveCell0000220121013033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013033 h)) + +theorem cover_subtree_cc00f203ac8d : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022012101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022012101)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022012101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022012101))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022012101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022012101))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121013120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013120 h) + (by + have h : (thetaAboveCell0000220121013121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013121 h) + (by + have h : (thetaAboveCell0000220121013122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013122 h) + (by + have h : (thetaAboveCell0000220121013123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121013130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013130 h) + (by + have h : (thetaAboveCell0000220121013131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013131 h) + (by + have h : (thetaAboveCell0000220121013132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013132 h) + (by + have h : (thetaAboveCell0000220121013133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013133 h)) + +theorem cover_subtree_d22ca7c15af3 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022012101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022012101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121013200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013200 h) + (by + have h : (thetaAboveCell0000220121013201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013201 h) + (by + have h : (thetaAboveCell0000220121013202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013202 h) + (by + have h : (thetaAboveCell0000220121013203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121013210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013210 h) + (by + have h : (thetaAboveCell0000220121013211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013211 h) + (by + have h : (thetaAboveCell0000220121013212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013212 h) + (by + have h : (thetaAboveCell0000220121013213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL (childHH + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121013220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013220 h) + (by + have h : (thetaAboveCell0000220121013221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013221 h) + (by + have h : (thetaAboveCell0000220121013222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013222 h) + (by + have h : (thetaAboveCell0000220121013223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL (childHH + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121013230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013230 h) + (by + have h : (thetaAboveCell0000220121013231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013231 h) + (by + have h : (thetaAboveCell0000220121013232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013232 h) + (by + have h : (thetaAboveCell0000220121013233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013233 h)) + +theorem cover_subtree_f04c91fe2c64 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022012101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022012101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121013300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013300 h) + (by + have h : (thetaAboveCell0000220121013301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013301 h) + (by + have h : (thetaAboveCell0000220121013302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013302 h) + (by + have h : (thetaAboveCell0000220121013303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121013310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013310 h) + (by + have h : (thetaAboveCell0000220121013311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013311 h) + (by + have h : (thetaAboveCell0000220121013312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013312 h) + (by + have h : (thetaAboveCell0000220121013313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH (childHH + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121013320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013320 h) + (by + have h : (thetaAboveCell0000220121013321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013321 h) + (by + have h : (thetaAboveCell0000220121013322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013322 h) + (by + have h : (thetaAboveCell0000220121013323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH (childHH + thetaAboveCell000022012101))) + (by + have h : (thetaAboveCell0000220121013330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013330 h) + (by + have h : (thetaAboveCell0000220121013331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013331 h) + (by + have h : (thetaAboveCell0000220121013332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013332 h) + (by + have h : (thetaAboveCell0000220121013333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121013333 h)) + +theorem cover_subtree_893a2b14ea46 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022012101) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022012101) + cover_subtree_02e81ee0d1ef + cover_subtree_cc00f203ac8d + cover_subtree_d22ca7c15af3 + cover_subtree_f04c91fe2c64 + +theorem cover_subtree_8bce29d5bf8e : + adaptiveCoverCheck 7 thetaAboveCell000022012101 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022012101 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022012101) + (by + have h : ((childLL (childLL thetaAboveCell000022012101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022012101)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022012101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022012101)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022012101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022012101)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022012101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022012101)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022012101) + (by + have h : ((childLL (childLH thetaAboveCell000022012101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022012101)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022012101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022012101)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022012101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022012101)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022012101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022012101)) h)) + cover_subtree_8fb6927013d7 + cover_subtree_893a2b14ea46 + +theorem cover_subtree_042414b8b05d : + adaptiveCoverCheck 7 thetaAboveCell000022012102 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022012102 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022012102) + (by + have h : ((childLL (childLL thetaAboveCell000022012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022012102)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022012102)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022012102)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022012102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022012102) + (by + have h : ((childLL (childLH thetaAboveCell000022012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022012102)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022012102)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022012102)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022012102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022012102)) h)) + (by + have h : ((childHL thetaAboveCell000022012102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022012102) h) + (by + have h : ((childHH thetaAboveCell000022012102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022012102) h) + +theorem cover_subtree_7648aff1a886 : + adaptiveCoverCheck 7 thetaAboveCell000022012103 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022012103 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022012103) + (by + have h : ((childLL (childLL thetaAboveCell000022012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022012103)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022012103)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022012103)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022012103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022012103) + (by + have h : ((childLL (childLH thetaAboveCell000022012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022012103)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022012103)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022012103)))).rejected = true + := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022012103))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022012103)))).rejected = true + := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022012103))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022012103)))).rejected = true + := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022012103))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022012103)))).rejected = true + := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022012103))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022012103)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022012103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022012103)) h)) + (by + have h : ((childHL thetaAboveCell000022012103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022012103) h) + (by + have h : ((childHH thetaAboveCell000022012103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022012103) h) + +theorem cover_subtree_c6c6b7e63010 : + adaptiveCoverCheck 8 (childLL (childLH (childHL thetaAboveCell00002201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL thetaAboveCell00002201))) + cover_subtree_c0614247fef2 + cover_subtree_8bce29d5bf8e + cover_subtree_042414b8b05d + cover_subtree_7648aff1a886 + +theorem cover_subtree_7be42b58a89a : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022012110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022012110)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022012110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022012110))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022012110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022012110))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121102020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102020 h) + (by + have h : (thetaAboveCell0000220121102021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102021 h) + (by + have h : (thetaAboveCell0000220121102022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102022 h) + (by + have h : (thetaAboveCell0000220121102023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121102030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102030 h) + (by + have h : (thetaAboveCell0000220121102031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102031 h) + (by + have h : (thetaAboveCell0000220121102032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102032 h) + (by + have h : (thetaAboveCell0000220121102033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102033 h)) + +theorem cover_subtree_b2dbe383f962 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022012110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022012110)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022012110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022012110))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022012110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022012110))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121102120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102120 h) + (by + have h : (thetaAboveCell0000220121102121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102121 h) + (by + have h : (thetaAboveCell0000220121102122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102122 h) + (by + have h : (thetaAboveCell0000220121102123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121102130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102130 h) + (by + have h : (thetaAboveCell0000220121102131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102131 h) + (by + have h : (thetaAboveCell0000220121102132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102132 h) + (by + have h : (thetaAboveCell0000220121102133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102133 h)) + +theorem cover_subtree_62ab94416880 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022012110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022012110)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121102200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102200 h) + (by + have h : (thetaAboveCell0000220121102201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102201 h) + (by + have h : (thetaAboveCell0000220121102202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102202 h) + (by + have h : (thetaAboveCell0000220121102203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121102210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102210 h) + (by + have h : (thetaAboveCell0000220121102211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102211 h) + (by + have h : (thetaAboveCell0000220121102212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102212 h) + (by + have h : (thetaAboveCell0000220121102213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL (childHL + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121102220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102220 h) + (by + have h : (thetaAboveCell0000220121102221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102221 h) + (by + have h : (thetaAboveCell0000220121102222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102222 h) + (by + have h : (thetaAboveCell0000220121102223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL (childHL + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121102230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102230 h) + (by + have h : (thetaAboveCell0000220121102231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102231 h) + (by + have h : (thetaAboveCell0000220121102232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102232 h) + (by + have h : (thetaAboveCell0000220121102233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102233 h)) + +theorem cover_subtree_55ef04fe757d : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022012110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022012110)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121102300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102300 h) + (by + have h : (thetaAboveCell0000220121102301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102301 h) + (by + have h : (thetaAboveCell0000220121102302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102302 h) + (by + have h : (thetaAboveCell0000220121102303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121102310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102310 h) + (by + have h : (thetaAboveCell0000220121102311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102311 h) + (by + have h : (thetaAboveCell0000220121102312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102312 h) + (by + have h : (thetaAboveCell0000220121102313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH (childHL + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121102320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102320 h) + (by + have h : (thetaAboveCell0000220121102321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102321 h) + (by + have h : (thetaAboveCell0000220121102322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102322 h) + (by + have h : (thetaAboveCell0000220121102323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH (childHL + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121102330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102330 h) + (by + have h : (thetaAboveCell0000220121102331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102331 h) + (by + have h : (thetaAboveCell0000220121102332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102332 h) + (by + have h : (thetaAboveCell0000220121102333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121102333 h)) + +theorem cover_subtree_3e8ada6913b4 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022012110) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022012110) + cover_subtree_7be42b58a89a + cover_subtree_b2dbe383f962 + cover_subtree_62ab94416880 + cover_subtree_55ef04fe757d + +theorem cover_subtree_9b287e7b4186 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022012110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022012110)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022012110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022012110))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022012110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022012110))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121103020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103020 h) + (by + have h : (thetaAboveCell0000220121103021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103021 h) + (by + have h : (thetaAboveCell0000220121103022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103022 h) + (by + have h : (thetaAboveCell0000220121103023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121103030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103030 h) + (by + have h : (thetaAboveCell0000220121103031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103031 h) + (by + have h : (thetaAboveCell0000220121103032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103032 h) + (by + have h : (thetaAboveCell0000220121103033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103033 h)) + +theorem cover_subtree_6f0c3876c853 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022012110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022012110)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022012110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022012110))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022012110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022012110))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121103120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103120 h) + (by + have h : (thetaAboveCell0000220121103121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103121 h) + (by + have h : (thetaAboveCell0000220121103122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103122 h) + (by + have h : (thetaAboveCell0000220121103123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121103130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103130 h) + (by + have h : (thetaAboveCell0000220121103131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103131 h) + (by + have h : (thetaAboveCell0000220121103132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103132 h) + (by + have h : (thetaAboveCell0000220121103133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103133 h)) + +theorem cover_subtree_b459e9c4ef11 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022012110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022012110)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121103200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103200 h) + (by + have h : (thetaAboveCell0000220121103201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103201 h) + (by + have h : (thetaAboveCell0000220121103202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103202 h) + (by + have h : (thetaAboveCell0000220121103203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121103210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103210 h) + (by + have h : (thetaAboveCell0000220121103211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103211 h) + (by + have h : (thetaAboveCell0000220121103212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103212 h) + (by + have h : (thetaAboveCell0000220121103213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL (childHH + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121103220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103220 h) + (by + have h : (thetaAboveCell0000220121103221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103221 h) + (by + have h : (thetaAboveCell0000220121103222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103222 h) + (by + have h : (thetaAboveCell0000220121103223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL (childHH + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121103230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103230 h) + (by + have h : (thetaAboveCell0000220121103231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103231 h) + (by + have h : (thetaAboveCell0000220121103232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103232 h) + (by + have h : (thetaAboveCell0000220121103233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103233 h)) + +theorem cover_subtree_59308c01291f : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022012110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022012110)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121103300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103300 h) + (by + have h : (thetaAboveCell0000220121103301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103301 h) + (by + have h : (thetaAboveCell0000220121103302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103302 h) + (by + have h : (thetaAboveCell0000220121103303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121103310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103310 h) + (by + have h : (thetaAboveCell0000220121103311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103311 h) + (by + have h : (thetaAboveCell0000220121103312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103312 h) + (by + have h : (thetaAboveCell0000220121103313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH (childHH + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121103320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103320 h) + (by + have h : (thetaAboveCell0000220121103321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103321 h) + (by + have h : (thetaAboveCell0000220121103322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103322 h) + (by + have h : (thetaAboveCell0000220121103323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH (childHH + thetaAboveCell000022012110))) + (by + have h : (thetaAboveCell0000220121103330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103330 h) + (by + have h : (thetaAboveCell0000220121103331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103331 h) + (by + have h : (thetaAboveCell0000220121103332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103332 h) + (by + have h : (thetaAboveCell0000220121103333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121103333 h)) + +theorem cover_subtree_cc7dfcac2ef6 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022012110) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022012110) + cover_subtree_9b287e7b4186 + cover_subtree_6f0c3876c853 + cover_subtree_b459e9c4ef11 + cover_subtree_59308c01291f + +theorem cover_subtree_4255f05ab59f : + adaptiveCoverCheck 7 thetaAboveCell000022012110 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022012110 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022012110) + (by + have h : ((childLL (childLL thetaAboveCell000022012110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022012110)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022012110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022012110)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022012110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022012110)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022012110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022012110)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022012110) + (by + have h : ((childLL (childLH thetaAboveCell000022012110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022012110)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022012110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022012110)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022012110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022012110)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022012110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022012110)) h)) + cover_subtree_3e8ada6913b4 + cover_subtree_cc7dfcac2ef6 + +theorem cover_subtree_2c166d84fe59 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022012111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022012111)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022012111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022012111))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022012111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022012111))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121112020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112020 h) + (by + have h : (thetaAboveCell0000220121112021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112021 h) + (by + have h : (thetaAboveCell0000220121112022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112022 h) + (by + have h : (thetaAboveCell0000220121112023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121112030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112030 h) + (by + have h : (thetaAboveCell0000220121112031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112031 h) + (by + have h : (thetaAboveCell0000220121112032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112032 h) + (by + have h : (thetaAboveCell0000220121112033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112033 h)) + +theorem cover_subtree_d41cf2e18f87 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022012111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022012111)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022012111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022012111))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022012111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022012111))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121112120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112120 h) + (by + have h : (thetaAboveCell0000220121112121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112121 h) + (by + have h : (thetaAboveCell0000220121112122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112122 h) + (by + have h : (thetaAboveCell0000220121112123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121112130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112130 h) + (by + have h : (thetaAboveCell0000220121112131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112131 h) + (by + have h : (thetaAboveCell0000220121112132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112132 h) + (by + have h : (thetaAboveCell0000220121112133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112133 h)) + +theorem cover_subtree_1fd2ad12dba0 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022012111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022012111)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121112200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112200 h) + (by + have h : (thetaAboveCell0000220121112201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112201 h) + (by + have h : (thetaAboveCell0000220121112202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112202 h) + (by + have h : (thetaAboveCell0000220121112203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121112210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112210 h) + (by + have h : (thetaAboveCell0000220121112211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112211 h) + (by + have h : (thetaAboveCell0000220121112212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112212 h) + (by + have h : (thetaAboveCell0000220121112213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL (childHL + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121112220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112220 h) + (by + have h : (thetaAboveCell0000220121112221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112221 h) + (by + have h : (thetaAboveCell0000220121112222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112222 h) + (by + have h : (thetaAboveCell0000220121112223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL (childHL + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121112230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112230 h) + (by + have h : (thetaAboveCell0000220121112231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112231 h) + (by + have h : (thetaAboveCell0000220121112232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112232 h) + (by + have h : (thetaAboveCell0000220121112233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112233 h)) + +theorem cover_subtree_88e81007f06f : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022012111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022012111)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121112300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112300 h) + (by + have h : (thetaAboveCell0000220121112301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112301 h) + (by + have h : (thetaAboveCell0000220121112302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112302 h) + (by + have h : (thetaAboveCell0000220121112303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121112310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112310 h) + (by + have h : (thetaAboveCell0000220121112311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112311 h) + (by + have h : (thetaAboveCell0000220121112312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112312 h) + (by + have h : (thetaAboveCell0000220121112313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH (childHL + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121112320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112320 h) + (by + have h : (thetaAboveCell0000220121112321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112321 h) + (by + have h : (thetaAboveCell0000220121112322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112322 h) + (by + have h : (thetaAboveCell0000220121112323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH (childHL + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121112330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112330 h) + (by + have h : (thetaAboveCell0000220121112331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112331 h) + (by + have h : (thetaAboveCell0000220121112332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112332 h) + (by + have h : (thetaAboveCell0000220121112333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121112333 h)) + +theorem cover_subtree_c6507edf1fb6 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022012111) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022012111) + cover_subtree_2c166d84fe59 + cover_subtree_d41cf2e18f87 + cover_subtree_1fd2ad12dba0 + cover_subtree_88e81007f06f + +theorem cover_subtree_fa22cb64c6e6 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022012111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022012111)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022012111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022012111))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022012111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022012111))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121113020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113020 h) + (by + have h : (thetaAboveCell0000220121113021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113021 h) + (by + have h : (thetaAboveCell0000220121113022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113022 h) + (by + have h : (thetaAboveCell0000220121113023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121113030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113030 h) + (by + have h : (thetaAboveCell0000220121113031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113031 h) + (by + have h : (thetaAboveCell0000220121113032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113032 h) + (by + have h : (thetaAboveCell0000220121113033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113033 h)) + +theorem cover_subtree_8b0952b6da88 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022012111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022012111)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022012111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022012111))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022012111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022012111))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121113120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113120 h) + (by + have h : (thetaAboveCell0000220121113121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113121 h) + (by + have h : (thetaAboveCell0000220121113122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113122 h) + (by + have h : (thetaAboveCell0000220121113123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121113130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113130 h) + (by + have h : (thetaAboveCell0000220121113131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113131 h) + (by + have h : (thetaAboveCell0000220121113132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113132 h) + (by + have h : (thetaAboveCell0000220121113133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113133 h)) + +theorem cover_subtree_549042ebc77b : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022012111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022012111)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121113200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113200 h) + (by + have h : (thetaAboveCell0000220121113201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113201 h) + (by + have h : (thetaAboveCell0000220121113202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113202 h) + (by + have h : (thetaAboveCell0000220121113203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121113210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113210 h) + (by + have h : (thetaAboveCell0000220121113211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113211 h) + (by + have h : (thetaAboveCell0000220121113212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113212 h) + (by + have h : (thetaAboveCell0000220121113213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL (childHH + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121113220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113220 h) + (by + have h : (thetaAboveCell0000220121113221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113221 h) + (by + have h : (thetaAboveCell0000220121113222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113222 h) + (by + have h : (thetaAboveCell0000220121113223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL (childHH + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121113230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113230 h) + (by + have h : (thetaAboveCell0000220121113231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113231 h) + (by + have h : (thetaAboveCell0000220121113232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113232 h) + (by + have h : (thetaAboveCell0000220121113233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113233 h)) + +theorem cover_subtree_de6e3b296ec1 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022012111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022012111)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121113300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113300 h) + (by + have h : (thetaAboveCell0000220121113301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113301 h) + (by + have h : (thetaAboveCell0000220121113302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113302 h) + (by + have h : (thetaAboveCell0000220121113303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121113310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113310 h) + (by + have h : (thetaAboveCell0000220121113311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113311 h) + (by + have h : (thetaAboveCell0000220121113312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113312 h) + (by + have h : (thetaAboveCell0000220121113313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH (childHH + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121113320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113320 h) + (by + have h : (thetaAboveCell0000220121113321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113321 h) + (by + have h : (thetaAboveCell0000220121113322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113322 h) + (by + have h : (thetaAboveCell0000220121113323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH (childHH + thetaAboveCell000022012111))) + (by + have h : (thetaAboveCell0000220121113330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113330 h) + (by + have h : (thetaAboveCell0000220121113331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113331 h) + (by + have h : (thetaAboveCell0000220121113332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113332 h) + (by + have h : (thetaAboveCell0000220121113333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220121113333 h)) + +theorem cover_subtree_0f2e720f6017 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022012111) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022012111) + cover_subtree_fa22cb64c6e6 + cover_subtree_8b0952b6da88 + cover_subtree_549042ebc77b + cover_subtree_de6e3b296ec1 + +theorem cover_subtree_35e94d0e7310 : + adaptiveCoverCheck 7 thetaAboveCell000022012111 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022012111 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022012111) + (by + have h : ((childLL (childLL thetaAboveCell000022012111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022012111)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022012111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022012111)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022012111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022012111)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022012111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022012111)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022012111) + (by + have h : ((childLL (childLH thetaAboveCell000022012111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022012111)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022012111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022012111)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022012111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022012111)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022012111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022012111)) h)) + cover_subtree_c6507edf1fb6 + cover_subtree_0f2e720f6017 + +theorem cover_subtree_65f4b19fe529 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022012112) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022012112) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022012112)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022012112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022012112))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022012112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022012112))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022012112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022012112))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022012112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022012112))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022012112)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022012112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022012112))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022012112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022012112))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022012112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022012112))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022012112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022012112))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022012112)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022012112)) h) + +theorem cover_subtree_334b61157880 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022012112) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022012112) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022012112)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022012112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022012112))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022012112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022012112))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022012112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022012112))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022012112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022012112))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022012112)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022012112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022012112))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022012112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022012112))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022012112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022012112))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022012112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022012112))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022012112)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022012112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022012112)) h) + +theorem cover_subtree_681fbeb68abf : + adaptiveCoverCheck 7 thetaAboveCell000022012112 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022012112 + cover_subtree_65f4b19fe529 + cover_subtree_334b61157880 + (by + have h : ((childHL thetaAboveCell000022012112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022012112) h) + (by + have h : ((childHH thetaAboveCell000022012112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022012112) h) + +theorem cover_subtree_2f0ab83958c9 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022012113) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022012113) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022012113)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022012113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022012113))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022012113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022012113))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022012113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022012113))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022012113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022012113))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022012113)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022012113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022012113))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022012113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022012113))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022012113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022012113))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022012113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022012113))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022012113)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022012113)) h) + +theorem cover_subtree_4675766b5fc3 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022012113) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022012113) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022012113)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022012113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022012113))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022012113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022012113))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022012113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022012113))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022012113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022012113))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022012113)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022012113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022012113))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022012113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022012113))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022012113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022012113))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022012113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022012113))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022012113)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022012113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022012113)) h) + +theorem cover_subtree_9e9d455fd0db : + adaptiveCoverCheck 7 thetaAboveCell000022012113 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022012113 + cover_subtree_2f0ab83958c9 + cover_subtree_4675766b5fc3 + (by + have h : ((childHL thetaAboveCell000022012113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022012113) h) + (by + have h : ((childHH thetaAboveCell000022012113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022012113) h) + +theorem cover_subtree_ba2ddc618064 : + adaptiveCoverCheck 8 (childLH (childLH (childHL thetaAboveCell00002201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL thetaAboveCell00002201))) + cover_subtree_4255f05ab59f + cover_subtree_35e94d0e7310 + cover_subtree_681fbeb68abf + cover_subtree_9e9d455fd0db + +theorem e24KC2ThetaAboveLeaf0000220121 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00002201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00002201)) + cover_subtree_c6c6b7e63010 + cover_subtree_ba2ddc618064 + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00002201))) + (by + have h : (thetaAboveCell000022012120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022012120 h) + (by + have h : (thetaAboveCell000022012121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022012121 h) + (by + have h : (thetaAboveCell000022012122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022012122 h) + (by + have h : (thetaAboveCell000022012123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022012123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00002201))) + (by + have h : (thetaAboveCell000022012130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022012130 h) + (by + have h : (thetaAboveCell000022012131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022012131 h) + (by + have h : (thetaAboveCell000022012132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022012132 h) + (by + have h : (thetaAboveCell000022012133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022012133 h)) +theorem e24KC2ThetaAboveLeaf0000220122 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00002201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00002201)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00002201))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00002201))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00002201))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00002201))) h) +theorem e24KC2ThetaAboveLeaf0000220123 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00002201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00002201)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00002201))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00002201))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00002201))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00002201))) h) +theorem cover_subtree_cb54dc4a2aa0 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022013000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022013000)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022013000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022013000))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022013000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022013000))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130002020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002020 h) + (by + have h : (thetaAboveCell0000220130002021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002021 h) + (by + have h : (thetaAboveCell0000220130002022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002022 h) + (by + have h : (thetaAboveCell0000220130002023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130002030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002030 h) + (by + have h : (thetaAboveCell0000220130002031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002031 h) + (by + have h : (thetaAboveCell0000220130002032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002032 h) + (by + have h : (thetaAboveCell0000220130002033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002033 h)) + +theorem cover_subtree_348d77482bf3 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022013000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022013000)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022013000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022013000))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022013000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022013000))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130002120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002120 h) + (by + have h : (thetaAboveCell0000220130002121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002121 h) + (by + have h : (thetaAboveCell0000220130002122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002122 h) + (by + have h : (thetaAboveCell0000220130002123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130002130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002130 h) + (by + have h : (thetaAboveCell0000220130002131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002131 h) + (by + have h : (thetaAboveCell0000220130002132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002132 h) + (by + have h : (thetaAboveCell0000220130002133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002133 h)) + +theorem cover_subtree_cc712ad349df : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022013000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022013000)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130002200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002200 h) + (by + have h : (thetaAboveCell0000220130002201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002201 h) + (by + have h : (thetaAboveCell0000220130002202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002202 h) + (by + have h : (thetaAboveCell0000220130002203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130002210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002210 h) + (by + have h : (thetaAboveCell0000220130002211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002211 h) + (by + have h : (thetaAboveCell0000220130002212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002212 h) + (by + have h : (thetaAboveCell0000220130002213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL (childHL + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130002220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002220 h) + (by + have h : (thetaAboveCell0000220130002221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002221 h) + (by + have h : (thetaAboveCell0000220130002222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002222 h) + (by + have h : (thetaAboveCell0000220130002223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL (childHL + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130002230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002230 h) + (by + have h : (thetaAboveCell0000220130002231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002231 h) + (by + have h : (thetaAboveCell0000220130002232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002232 h) + (by + have h : (thetaAboveCell0000220130002233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002233 h)) + +theorem cover_subtree_791e2ddd0c41 : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022013000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022013000)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130002300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002300 h) + (by + have h : (thetaAboveCell0000220130002301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002301 h) + (by + have h : (thetaAboveCell0000220130002302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002302 h) + (by + have h : (thetaAboveCell0000220130002303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130002310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002310 h) + (by + have h : (thetaAboveCell0000220130002311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002311 h) + (by + have h : (thetaAboveCell0000220130002312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002312 h) + (by + have h : (thetaAboveCell0000220130002313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH (childHL + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130002320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002320 h) + (by + have h : (thetaAboveCell0000220130002321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002321 h) + (by + have h : (thetaAboveCell0000220130002322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002322 h) + (by + have h : (thetaAboveCell0000220130002323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH (childHL + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130002330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002330 h) + (by + have h : (thetaAboveCell0000220130002331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002331 h) + (by + have h : (thetaAboveCell0000220130002332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002332 h) + (by + have h : (thetaAboveCell0000220130002333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130002333 h)) + +theorem cover_subtree_3a2f1fd548a5 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022013000) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022013000) + cover_subtree_cb54dc4a2aa0 + cover_subtree_348d77482bf3 + cover_subtree_cc712ad349df + cover_subtree_791e2ddd0c41 + +theorem cover_subtree_bd2306545933 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022013000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022013000)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022013000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022013000))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022013000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022013000))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130003020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003020 h) + (by + have h : (thetaAboveCell0000220130003021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003021 h) + (by + have h : (thetaAboveCell0000220130003022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003022 h) + (by + have h : (thetaAboveCell0000220130003023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130003030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003030 h) + (by + have h : (thetaAboveCell0000220130003031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003031 h) + (by + have h : (thetaAboveCell0000220130003032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003032 h) + (by + have h : (thetaAboveCell0000220130003033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003033 h)) + +theorem cover_subtree_65fba8c7a135 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022013000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022013000)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022013000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022013000))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022013000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022013000))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130003120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003120 h) + (by + have h : (thetaAboveCell0000220130003121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003121 h) + (by + have h : (thetaAboveCell0000220130003122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003122 h) + (by + have h : (thetaAboveCell0000220130003123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130003130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003130 h) + (by + have h : (thetaAboveCell0000220130003131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003131 h) + (by + have h : (thetaAboveCell0000220130003132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003132 h) + (by + have h : (thetaAboveCell0000220130003133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003133 h)) + +theorem cover_subtree_f63aaf9046af : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022013000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022013000)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130003200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003200 h) + (by + have h : (thetaAboveCell0000220130003201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003201 h) + (by + have h : (thetaAboveCell0000220130003202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003202 h) + (by + have h : (thetaAboveCell0000220130003203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130003210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003210 h) + (by + have h : (thetaAboveCell0000220130003211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003211 h) + (by + have h : (thetaAboveCell0000220130003212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003212 h) + (by + have h : (thetaAboveCell0000220130003213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL (childHH + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130003220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003220 h) + (by + have h : (thetaAboveCell0000220130003221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003221 h) + (by + have h : (thetaAboveCell0000220130003222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003222 h) + (by + have h : (thetaAboveCell0000220130003223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL (childHH + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130003230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003230 h) + (by + have h : (thetaAboveCell0000220130003231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003231 h) + (by + have h : (thetaAboveCell0000220130003232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003232 h) + (by + have h : (thetaAboveCell0000220130003233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003233 h)) + +theorem cover_subtree_dff62e50df3b : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022013000)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022013000)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130003300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003300 h) + (by + have h : (thetaAboveCell0000220130003301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003301 h) + (by + have h : (thetaAboveCell0000220130003302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003302 h) + (by + have h : (thetaAboveCell0000220130003303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130003310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003310 h) + (by + have h : (thetaAboveCell0000220130003311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003311 h) + (by + have h : (thetaAboveCell0000220130003312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003312 h) + (by + have h : (thetaAboveCell0000220130003313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH (childHH + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130003320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003320 h) + (by + have h : (thetaAboveCell0000220130003321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003321 h) + (by + have h : (thetaAboveCell0000220130003322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003322 h) + (by + have h : (thetaAboveCell0000220130003323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH (childHH + thetaAboveCell000022013000))) + (by + have h : (thetaAboveCell0000220130003330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003330 h) + (by + have h : (thetaAboveCell0000220130003331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003331 h) + (by + have h : (thetaAboveCell0000220130003332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003332 h) + (by + have h : (thetaAboveCell0000220130003333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130003333 h)) + +theorem cover_subtree_c954080a5fc2 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022013000) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022013000) + cover_subtree_bd2306545933 + cover_subtree_65fba8c7a135 + cover_subtree_f63aaf9046af + cover_subtree_dff62e50df3b + +theorem cover_subtree_701e722ef144 : + adaptiveCoverCheck 7 thetaAboveCell000022013000 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022013000 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022013000) + (by + have h : ((childLL (childLL thetaAboveCell000022013000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022013000)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022013000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022013000)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022013000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022013000)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022013000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022013000)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022013000) + (by + have h : ((childLL (childLH thetaAboveCell000022013000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022013000)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022013000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022013000)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022013000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022013000)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022013000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022013000)) h)) + cover_subtree_3a2f1fd548a5 + cover_subtree_c954080a5fc2 + +theorem cover_subtree_1812a1843696 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022013001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022013001)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022013001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022013001))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022013001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022013001))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130012020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012020 h) + (by + have h : (thetaAboveCell0000220130012021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012021 h) + (by + have h : (thetaAboveCell0000220130012022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012022 h) + (by + have h : (thetaAboveCell0000220130012023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130012030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012030 h) + (by + have h : (thetaAboveCell0000220130012031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012031 h) + (by + have h : (thetaAboveCell0000220130012032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012032 h) + (by + have h : (thetaAboveCell0000220130012033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012033 h)) + +theorem cover_subtree_422793f2f2c6 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022013001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022013001)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022013001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022013001))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022013001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022013001))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130012120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012120 h) + (by + have h : (thetaAboveCell0000220130012121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012121 h) + (by + have h : (thetaAboveCell0000220130012122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012122 h) + (by + have h : (thetaAboveCell0000220130012123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130012130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012130 h) + (by + have h : (thetaAboveCell0000220130012131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012131 h) + (by + have h : (thetaAboveCell0000220130012132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012132 h) + (by + have h : (thetaAboveCell0000220130012133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012133 h)) + +theorem cover_subtree_386e2b83e45a : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022013001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022013001)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130012200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012200 h) + (by + have h : (thetaAboveCell0000220130012201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012201 h) + (by + have h : (thetaAboveCell0000220130012202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012202 h) + (by + have h : (thetaAboveCell0000220130012203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130012210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012210 h) + (by + have h : (thetaAboveCell0000220130012211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012211 h) + (by + have h : (thetaAboveCell0000220130012212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012212 h) + (by + have h : (thetaAboveCell0000220130012213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL (childHL + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130012220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012220 h) + (by + have h : (thetaAboveCell0000220130012221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012221 h) + (by + have h : (thetaAboveCell0000220130012222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012222 h) + (by + have h : (thetaAboveCell0000220130012223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL (childHL + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130012230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012230 h) + (by + have h : (thetaAboveCell0000220130012231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012231 h) + (by + have h : (thetaAboveCell0000220130012232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012232 h) + (by + have h : (thetaAboveCell0000220130012233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012233 h)) + +theorem cover_subtree_37513ddf0672 : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022013001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022013001)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130012300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012300 h) + (by + have h : (thetaAboveCell0000220130012301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012301 h) + (by + have h : (thetaAboveCell0000220130012302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012302 h) + (by + have h : (thetaAboveCell0000220130012303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130012310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012310 h) + (by + have h : (thetaAboveCell0000220130012311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012311 h) + (by + have h : (thetaAboveCell0000220130012312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012312 h) + (by + have h : (thetaAboveCell0000220130012313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH (childHL + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130012320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012320 h) + (by + have h : (thetaAboveCell0000220130012321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012321 h) + (by + have h : (thetaAboveCell0000220130012322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012322 h) + (by + have h : (thetaAboveCell0000220130012323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH (childHL + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130012330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012330 h) + (by + have h : (thetaAboveCell0000220130012331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012331 h) + (by + have h : (thetaAboveCell0000220130012332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012332 h) + (by + have h : (thetaAboveCell0000220130012333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130012333 h)) + +theorem cover_subtree_6d7b5fde1ce9 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022013001) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022013001) + cover_subtree_1812a1843696 + cover_subtree_422793f2f2c6 + cover_subtree_386e2b83e45a + cover_subtree_37513ddf0672 + +theorem cover_subtree_dc89c8b48c1d : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022013001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022013001)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022013001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022013001))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022013001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022013001))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130013020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013020 h) + (by + have h : (thetaAboveCell0000220130013021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013021 h) + (by + have h : (thetaAboveCell0000220130013022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013022 h) + (by + have h : (thetaAboveCell0000220130013023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130013030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013030 h) + (by + have h : (thetaAboveCell0000220130013031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013031 h) + (by + have h : (thetaAboveCell0000220130013032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013032 h) + (by + have h : (thetaAboveCell0000220130013033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013033 h)) + +theorem cover_subtree_b7e0401eaa5c : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022013001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022013001)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022013001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022013001))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022013001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022013001))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130013120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013120 h) + (by + have h : (thetaAboveCell0000220130013121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013121 h) + (by + have h : (thetaAboveCell0000220130013122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013122 h) + (by + have h : (thetaAboveCell0000220130013123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130013130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013130 h) + (by + have h : (thetaAboveCell0000220130013131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013131 h) + (by + have h : (thetaAboveCell0000220130013132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013132 h) + (by + have h : (thetaAboveCell0000220130013133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013133 h)) + +theorem cover_subtree_3178ee01a645 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022013001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022013001)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130013200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013200 h) + (by + have h : (thetaAboveCell0000220130013201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013201 h) + (by + have h : (thetaAboveCell0000220130013202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013202 h) + (by + have h : (thetaAboveCell0000220130013203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130013210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013210 h) + (by + have h : (thetaAboveCell0000220130013211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013211 h) + (by + have h : (thetaAboveCell0000220130013212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013212 h) + (by + have h : (thetaAboveCell0000220130013213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL (childHH + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130013220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013220 h) + (by + have h : (thetaAboveCell0000220130013221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013221 h) + (by + have h : (thetaAboveCell0000220130013222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013222 h) + (by + have h : (thetaAboveCell0000220130013223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL (childHH + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130013230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013230 h) + (by + have h : (thetaAboveCell0000220130013231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013231 h) + (by + have h : (thetaAboveCell0000220130013232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013232 h) + (by + have h : (thetaAboveCell0000220130013233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013233 h)) + +theorem cover_subtree_2842986097c5 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022013001)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022013001)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130013300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013300 h) + (by + have h : (thetaAboveCell0000220130013301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013301 h) + (by + have h : (thetaAboveCell0000220130013302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013302 h) + (by + have h : (thetaAboveCell0000220130013303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130013310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013310 h) + (by + have h : (thetaAboveCell0000220130013311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013311 h) + (by + have h : (thetaAboveCell0000220130013312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013312 h) + (by + have h : (thetaAboveCell0000220130013313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH (childHH + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130013320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013320 h) + (by + have h : (thetaAboveCell0000220130013321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013321 h) + (by + have h : (thetaAboveCell0000220130013322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013322 h) + (by + have h : (thetaAboveCell0000220130013323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH (childHH + thetaAboveCell000022013001))) + (by + have h : (thetaAboveCell0000220130013330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013330 h) + (by + have h : (thetaAboveCell0000220130013331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013331 h) + (by + have h : (thetaAboveCell0000220130013332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013332 h) + (by + have h : (thetaAboveCell0000220130013333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130013333 h)) + +theorem cover_subtree_0385d11aabba : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022013001) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022013001) + cover_subtree_dc89c8b48c1d + cover_subtree_b7e0401eaa5c + cover_subtree_3178ee01a645 + cover_subtree_2842986097c5 + +theorem cover_subtree_f1411005533f : + adaptiveCoverCheck 7 thetaAboveCell000022013001 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022013001 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022013001) + (by + have h : ((childLL (childLL thetaAboveCell000022013001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022013001)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022013001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022013001)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022013001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022013001)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022013001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022013001)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022013001) + (by + have h : ((childLL (childLH thetaAboveCell000022013001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022013001)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022013001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022013001)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022013001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022013001)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022013001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022013001)) h)) + cover_subtree_6d7b5fde1ce9 + cover_subtree_0385d11aabba + +theorem cover_subtree_1032efc16567 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022013002) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022013002) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022013002)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022013002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022013002))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022013002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022013002))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022013002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022013002))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022013002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022013002))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022013002)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022013002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022013002))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022013002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022013002))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022013002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022013002))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022013002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022013002))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022013002)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022013002)) h) + +theorem cover_subtree_9fa6122a45d4 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022013002) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022013002) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022013002)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022013002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022013002))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022013002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022013002))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022013002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022013002))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022013002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022013002))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022013002)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022013002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022013002))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022013002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022013002))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022013002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022013002))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022013002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022013002))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022013002)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022013002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022013002)) h) + +theorem cover_subtree_144d92380fd4 : + adaptiveCoverCheck 7 thetaAboveCell000022013002 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022013002 + cover_subtree_1032efc16567 + cover_subtree_9fa6122a45d4 + (by + have h : ((childHL thetaAboveCell000022013002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022013002) h) + (by + have h : ((childHH thetaAboveCell000022013002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022013002) h) + +theorem cover_subtree_fd47657a07ff : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022013003) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022013003) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022013003)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022013003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022013003))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022013003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022013003))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022013003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022013003))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022013003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022013003))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022013003)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022013003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022013003))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022013003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022013003))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022013003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022013003))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022013003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022013003))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022013003)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022013003)) h) + +theorem cover_subtree_e586a2e528dc : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022013003) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022013003) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022013003)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022013003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022013003))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022013003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022013003))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022013003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022013003))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022013003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022013003))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022013003)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022013003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022013003))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022013003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022013003))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022013003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022013003))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022013003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022013003))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022013003)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022013003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022013003)) h) + +theorem cover_subtree_b0c1a95db5a1 : + adaptiveCoverCheck 7 thetaAboveCell000022013003 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022013003 + cover_subtree_fd47657a07ff + cover_subtree_e586a2e528dc + (by + have h : ((childHL thetaAboveCell000022013003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022013003) h) + (by + have h : ((childHH thetaAboveCell000022013003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022013003) h) + +theorem cover_subtree_deb83366e758 : + adaptiveCoverCheck 8 (childLL (childLL (childHH thetaAboveCell00002201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH thetaAboveCell00002201))) + cover_subtree_701e722ef144 + cover_subtree_f1411005533f + cover_subtree_144d92380fd4 + cover_subtree_b0c1a95db5a1 + +theorem cover_subtree_39d8fa6eaebd : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022013010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022013010)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022013010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022013010))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022013010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022013010))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130102020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102020 h) + (by + have h : (thetaAboveCell0000220130102021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102021 h) + (by + have h : (thetaAboveCell0000220130102022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102022 h) + (by + have h : (thetaAboveCell0000220130102023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130102030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102030 h) + (by + have h : (thetaAboveCell0000220130102031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102031 h) + (by + have h : (thetaAboveCell0000220130102032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102032 h) + (by + have h : (thetaAboveCell0000220130102033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102033 h)) + +theorem cover_subtree_c9870a8382fd : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022013010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022013010)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022013010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022013010))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022013010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022013010))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130102120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102120 h) + (by + have h : (thetaAboveCell0000220130102121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102121 h) + (by + have h : (thetaAboveCell0000220130102122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102122 h) + (by + have h : (thetaAboveCell0000220130102123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130102130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102130 h) + (by + have h : (thetaAboveCell0000220130102131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102131 h) + (by + have h : (thetaAboveCell0000220130102132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102132 h) + (by + have h : (thetaAboveCell0000220130102133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102133 h)) + +theorem cover_subtree_9ebf3cbb8048 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022013010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022013010)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130102200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102200 h) + (by + have h : (thetaAboveCell0000220130102201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102201 h) + (by + have h : (thetaAboveCell0000220130102202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102202 h) + (by + have h : (thetaAboveCell0000220130102203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130102210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102210 h) + (by + have h : (thetaAboveCell0000220130102211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102211 h) + (by + have h : (thetaAboveCell0000220130102212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102212 h) + (by + have h : (thetaAboveCell0000220130102213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL (childHL + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130102220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102220 h) + (by + have h : (thetaAboveCell0000220130102221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102221 h) + (by + have h : (thetaAboveCell0000220130102222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102222 h) + (by + have h : (thetaAboveCell0000220130102223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL (childHL + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130102230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102230 h) + (by + have h : (thetaAboveCell0000220130102231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102231 h) + (by + have h : (thetaAboveCell0000220130102232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102232 h) + (by + have h : (thetaAboveCell0000220130102233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102233 h)) + +theorem cover_subtree_5943bf03a25d : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022013010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022013010)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130102300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102300 h) + (by + have h : (thetaAboveCell0000220130102301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102301 h) + (by + have h : (thetaAboveCell0000220130102302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102302 h) + (by + have h : (thetaAboveCell0000220130102303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130102310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102310 h) + (by + have h : (thetaAboveCell0000220130102311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102311 h) + (by + have h : (thetaAboveCell0000220130102312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102312 h) + (by + have h : (thetaAboveCell0000220130102313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH (childHL + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130102320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102320 h) + (by + have h : (thetaAboveCell0000220130102321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102321 h) + (by + have h : (thetaAboveCell0000220130102322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102322 h) + (by + have h : (thetaAboveCell0000220130102323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH (childHL + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130102330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102330 h) + (by + have h : (thetaAboveCell0000220130102331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102331 h) + (by + have h : (thetaAboveCell0000220130102332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102332 h) + (by + have h : (thetaAboveCell0000220130102333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130102333 h)) + +theorem cover_subtree_6b97e89b4d72 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022013010) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022013010) + cover_subtree_39d8fa6eaebd + cover_subtree_c9870a8382fd + cover_subtree_9ebf3cbb8048 + cover_subtree_5943bf03a25d + +theorem cover_subtree_b9a006cc60d2 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022013010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022013010)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022013010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022013010))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022013010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022013010))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130103020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103020 h) + (by + have h : (thetaAboveCell0000220130103021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103021 h) + (by + have h : (thetaAboveCell0000220130103022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103022 h) + (by + have h : (thetaAboveCell0000220130103023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130103030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103030 h) + (by + have h : (thetaAboveCell0000220130103031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103031 h) + (by + have h : (thetaAboveCell0000220130103032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103032 h) + (by + have h : (thetaAboveCell0000220130103033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103033 h)) + +theorem cover_subtree_a77e4838b8e6 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022013010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022013010)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022013010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022013010))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022013010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022013010))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130103120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103120 h) + (by + have h : (thetaAboveCell0000220130103121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103121 h) + (by + have h : (thetaAboveCell0000220130103122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103122 h) + (by + have h : (thetaAboveCell0000220130103123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130103130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103130 h) + (by + have h : (thetaAboveCell0000220130103131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103131 h) + (by + have h : (thetaAboveCell0000220130103132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103132 h) + (by + have h : (thetaAboveCell0000220130103133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103133 h)) + +theorem cover_subtree_c5585ab205b2 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022013010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022013010)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130103200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103200 h) + (by + have h : (thetaAboveCell0000220130103201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103201 h) + (by + have h : (thetaAboveCell0000220130103202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103202 h) + (by + have h : (thetaAboveCell0000220130103203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130103210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103210 h) + (by + have h : (thetaAboveCell0000220130103211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103211 h) + (by + have h : (thetaAboveCell0000220130103212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103212 h) + (by + have h : (thetaAboveCell0000220130103213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL (childHH + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130103220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103220 h) + (by + have h : (thetaAboveCell0000220130103221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103221 h) + (by + have h : (thetaAboveCell0000220130103222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103222 h) + (by + have h : (thetaAboveCell0000220130103223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL (childHH + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130103230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103230 h) + (by + have h : (thetaAboveCell0000220130103231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103231 h) + (by + have h : (thetaAboveCell0000220130103232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103232 h) + (by + have h : (thetaAboveCell0000220130103233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103233 h)) + +theorem cover_subtree_0a8fc7348d19 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022013010)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022013010)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130103300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103300 h) + (by + have h : (thetaAboveCell0000220130103301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103301 h) + (by + have h : (thetaAboveCell0000220130103302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103302 h) + (by + have h : (thetaAboveCell0000220130103303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130103310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103310 h) + (by + have h : (thetaAboveCell0000220130103311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103311 h) + (by + have h : (thetaAboveCell0000220130103312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103312 h) + (by + have h : (thetaAboveCell0000220130103313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH (childHH + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130103320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103320 h) + (by + have h : (thetaAboveCell0000220130103321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103321 h) + (by + have h : (thetaAboveCell0000220130103322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103322 h) + (by + have h : (thetaAboveCell0000220130103323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH (childHH + thetaAboveCell000022013010))) + (by + have h : (thetaAboveCell0000220130103330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103330 h) + (by + have h : (thetaAboveCell0000220130103331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103331 h) + (by + have h : (thetaAboveCell0000220130103332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103332 h) + (by + have h : (thetaAboveCell0000220130103333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130103333 h)) + +theorem cover_subtree_dffa22b1c9a1 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022013010) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022013010) + cover_subtree_b9a006cc60d2 + cover_subtree_a77e4838b8e6 + cover_subtree_c5585ab205b2 + cover_subtree_0a8fc7348d19 + +theorem cover_subtree_3a257d8444b0 : + adaptiveCoverCheck 7 thetaAboveCell000022013010 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022013010 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022013010) + (by + have h : ((childLL (childLL thetaAboveCell000022013010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022013010)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022013010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022013010)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022013010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022013010)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022013010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022013010)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022013010) + (by + have h : ((childLL (childLH thetaAboveCell000022013010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022013010)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022013010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022013010)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022013010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022013010)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022013010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022013010)) h)) + cover_subtree_6b97e89b4d72 + cover_subtree_dffa22b1c9a1 + +theorem cover_subtree_0ba56921169a : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022013011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022013011)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022013011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022013011))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022013011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022013011))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130112020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112020 h) + (by + have h : (thetaAboveCell0000220130112021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112021 h) + (by + have h : (thetaAboveCell0000220130112022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112022 h) + (by + have h : (thetaAboveCell0000220130112023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130112030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112030 h) + (by + have h : (thetaAboveCell0000220130112031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112031 h) + (by + have h : (thetaAboveCell0000220130112032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112032 h) + (by + have h : (thetaAboveCell0000220130112033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112033 h)) + +theorem cover_subtree_7969bce7dc99 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022013011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022013011)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022013011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022013011))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022013011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022013011))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130112120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112120 h) + (by + have h : (thetaAboveCell0000220130112121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112121 h) + (by + have h : (thetaAboveCell0000220130112122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112122 h) + (by + have h : (thetaAboveCell0000220130112123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130112130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112130 h) + (by + have h : (thetaAboveCell0000220130112131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112131 h) + (by + have h : (thetaAboveCell0000220130112132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112132 h) + (by + have h : (thetaAboveCell0000220130112133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112133 h)) + +theorem cover_subtree_6a708e0151cf : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022013011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022013011)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130112200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112200 h) + (by + have h : (thetaAboveCell0000220130112201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112201 h) + (by + have h : (thetaAboveCell0000220130112202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112202 h) + (by + have h : (thetaAboveCell0000220130112203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130112210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112210 h) + (by + have h : (thetaAboveCell0000220130112211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112211 h) + (by + have h : (thetaAboveCell0000220130112212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112212 h) + (by + have h : (thetaAboveCell0000220130112213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL (childHL + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130112220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112220 h) + (by + have h : (thetaAboveCell0000220130112221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112221 h) + (by + have h : (thetaAboveCell0000220130112222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112222 h) + (by + have h : (thetaAboveCell0000220130112223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL (childHL + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130112230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112230 h) + (by + have h : (thetaAboveCell0000220130112231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112231 h) + (by + have h : (thetaAboveCell0000220130112232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112232 h) + (by + have h : (thetaAboveCell0000220130112233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112233 h)) + +theorem cover_subtree_8de093d065af : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022013011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022013011)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130112300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112300 h) + (by + have h : (thetaAboveCell0000220130112301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112301 h) + (by + have h : (thetaAboveCell0000220130112302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112302 h) + (by + have h : (thetaAboveCell0000220130112303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130112310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112310 h) + (by + have h : (thetaAboveCell0000220130112311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112311 h) + (by + have h : (thetaAboveCell0000220130112312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112312 h) + (by + have h : (thetaAboveCell0000220130112313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH (childHL + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130112320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112320 h) + (by + have h : (thetaAboveCell0000220130112321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112321 h) + (by + have h : (thetaAboveCell0000220130112322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112322 h) + (by + have h : (thetaAboveCell0000220130112323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH (childHL + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130112330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112330 h) + (by + have h : (thetaAboveCell0000220130112331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112331 h) + (by + have h : (thetaAboveCell0000220130112332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112332 h) + (by + have h : (thetaAboveCell0000220130112333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130112333 h)) + +theorem cover_subtree_03f7c5873741 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022013011) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022013011) + cover_subtree_0ba56921169a + cover_subtree_7969bce7dc99 + cover_subtree_6a708e0151cf + cover_subtree_8de093d065af + +theorem cover_subtree_b3bbbe006bfc : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022013011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022013011)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022013011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022013011))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022013011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022013011))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130113020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113020 h) + (by + have h : (thetaAboveCell0000220130113021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113021 h) + (by + have h : (thetaAboveCell0000220130113022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113022 h) + (by + have h : (thetaAboveCell0000220130113023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130113030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113030 h) + (by + have h : (thetaAboveCell0000220130113031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113031 h) + (by + have h : (thetaAboveCell0000220130113032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113032 h) + (by + have h : (thetaAboveCell0000220130113033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113033 h)) + +theorem cover_subtree_10ce55f7ce75 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022013011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022013011)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022013011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022013011))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022013011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022013011))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130113120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113120 h) + (by + have h : (thetaAboveCell0000220130113121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113121 h) + (by + have h : (thetaAboveCell0000220130113122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113122 h) + (by + have h : (thetaAboveCell0000220130113123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130113130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113130 h) + (by + have h : (thetaAboveCell0000220130113131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113131 h) + (by + have h : (thetaAboveCell0000220130113132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113132 h) + (by + have h : (thetaAboveCell0000220130113133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113133 h)) + +theorem cover_subtree_b98ded6b50f2 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022013011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022013011)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130113200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113200 h) + (by + have h : (thetaAboveCell0000220130113201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113201 h) + (by + have h : (thetaAboveCell0000220130113202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113202 h) + (by + have h : (thetaAboveCell0000220130113203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130113210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113210 h) + (by + have h : (thetaAboveCell0000220130113211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113211 h) + (by + have h : (thetaAboveCell0000220130113212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113212 h) + (by + have h : (thetaAboveCell0000220130113213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL (childHH + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130113220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113220 h) + (by + have h : (thetaAboveCell0000220130113221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113221 h) + (by + have h : (thetaAboveCell0000220130113222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113222 h) + (by + have h : (thetaAboveCell0000220130113223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL (childHH + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130113230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113230 h) + (by + have h : (thetaAboveCell0000220130113231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113231 h) + (by + have h : (thetaAboveCell0000220130113232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113232 h) + (by + have h : (thetaAboveCell0000220130113233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113233 h)) + +theorem cover_subtree_6021efadc4fa : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022013011)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022013011)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130113300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113300 h) + (by + have h : (thetaAboveCell0000220130113301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113301 h) + (by + have h : (thetaAboveCell0000220130113302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113302 h) + (by + have h : (thetaAboveCell0000220130113303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130113310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113310 h) + (by + have h : (thetaAboveCell0000220130113311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113311 h) + (by + have h : (thetaAboveCell0000220130113312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113312 h) + (by + have h : (thetaAboveCell0000220130113313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH (childHH + thetaAboveCell000022013011))) + (by + have h : (thetaAboveCell0000220130113320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113320 h) + (by + have h : (thetaAboveCell0000220130113321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113321 h) + (by + have h : (thetaAboveCell0000220130113322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113322 h) + (by + have h : (thetaAboveCell0000220130113323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220130113323 h)) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022013011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022013011))) h) + +theorem cover_subtree_3daa6e2b09d9 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022013011) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022013011) + cover_subtree_b3bbbe006bfc + cover_subtree_10ce55f7ce75 + cover_subtree_b98ded6b50f2 + cover_subtree_6021efadc4fa + +theorem cover_subtree_adb5bf33bc5c : + adaptiveCoverCheck 7 thetaAboveCell000022013011 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022013011 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022013011) + (by + have h : ((childLL (childLL thetaAboveCell000022013011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022013011)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022013011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022013011)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022013011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022013011)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022013011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022013011)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022013011) + (by + have h : ((childLL (childLH thetaAboveCell000022013011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022013011)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022013011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022013011)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022013011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022013011)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022013011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022013011)) h)) + cover_subtree_03f7c5873741 + cover_subtree_3daa6e2b09d9 + +theorem cover_subtree_b3708d7f6b8c : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022013012) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022013012) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022013012)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022013012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022013012))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022013012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022013012))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022013012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022013012))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022013012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022013012))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022013012)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022013012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022013012))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022013012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022013012))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022013012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022013012))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022013012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022013012))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022013012)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022013012)) h) + +theorem cover_subtree_74cca09731bd : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022013012) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022013012) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022013012)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022013012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022013012))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022013012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022013012))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022013012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022013012))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022013012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022013012))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022013012)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022013012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022013012))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022013012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022013012))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022013012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022013012))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022013012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022013012))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022013012)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022013012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022013012)) h) + +theorem cover_subtree_04cd22005970 : + adaptiveCoverCheck 7 thetaAboveCell000022013012 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022013012 + cover_subtree_b3708d7f6b8c + cover_subtree_74cca09731bd + (by + have h : ((childHL thetaAboveCell000022013012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022013012) h) + (by + have h : ((childHH thetaAboveCell000022013012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022013012) h) + +theorem cover_subtree_f57488cb8c35 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022013013) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022013013) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022013013)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022013013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022013013))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022013013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022013013))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022013013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022013013))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022013013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022013013))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022013013)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022013013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022013013))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022013013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022013013))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022013013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022013013))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022013013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022013013))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022013013)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022013013)) h) + +theorem cover_subtree_5e11cdd5ab21 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022013013) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022013013) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022013013)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022013013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022013013))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022013013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022013013))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022013013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022013013))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022013013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022013013))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022013013)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022013013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022013013))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022013013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022013013))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022013013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022013013))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022013013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022013013))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022013013)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022013013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022013013)) h) + +theorem cover_subtree_d6f5101b1ccd : + adaptiveCoverCheck 7 thetaAboveCell000022013013 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022013013 + cover_subtree_f57488cb8c35 + cover_subtree_5e11cdd5ab21 + (by + have h : ((childHL thetaAboveCell000022013013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022013013) h) + (by + have h : ((childHH thetaAboveCell000022013013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022013013) h) + +theorem cover_subtree_2784ec883b01 : + adaptiveCoverCheck 8 (childLH (childLL (childHH thetaAboveCell00002201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH thetaAboveCell00002201))) + cover_subtree_3a257d8444b0 + cover_subtree_adb5bf33bc5c + cover_subtree_04cd22005970 + cover_subtree_d6f5101b1ccd + +theorem e24KC2ThetaAboveLeaf0000220130 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00002201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00002201)) + cover_subtree_deb83366e758 + cover_subtree_2784ec883b01 + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00002201))) + (by + have h : (thetaAboveCell000022013020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022013020 h) + (by + have h : (thetaAboveCell000022013021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022013021 h) + (by + have h : (thetaAboveCell000022013022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022013022 h) + (by + have h : (thetaAboveCell000022013023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022013023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00002201))) + (by + have h : (thetaAboveCell000022013030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022013030 h) + (by + have h : (thetaAboveCell000022013031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022013031 h) + (by + have h : (thetaAboveCell000022013032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022013032 h) + (by + have h : (thetaAboveCell000022013033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022013033 h)) + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle018.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle018.lean new file mode 100644 index 0000000000..c6fffa5fd9 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle018.lean @@ -0,0 +1,7878 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch031`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCells4f78f3c271 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022013100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell00002201))) + +/-- Subcell `000022013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell00002201))) + +/-- Subcell `000022100220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022100220 : AngleCell := + childLL (childHL (childHL (childLL thetaAboveCell00002210))) + +/-- Subcell `000022100221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022100221 : AngleCell := + childLH (childHL (childHL (childLL thetaAboveCell00002210))) + +/-- Subcell `000022100222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022100222 : AngleCell := + childHL (childHL (childHL (childLL thetaAboveCell00002210))) + +/-- Subcell `000022100223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022100223 : AngleCell := + childHH (childHL (childHL (childLL thetaAboveCell00002210))) + +/-- Subcell `000022100230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022100230 : AngleCell := + childLL (childHH (childHL (childLL thetaAboveCell00002210))) + +/-- Subcell `000022100231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022100231 : AngleCell := + childLH (childHH (childHL (childLL thetaAboveCell00002210))) + +/-- Subcell `000022100232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022100232 : AngleCell := + childHL (childHH (childHL (childLL thetaAboveCell00002210))) + +/-- Subcell `000022100233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022100233 : AngleCell := + childHH (childHH (childHL (childLL thetaAboveCell00002210))) + +/-- Subcell `000022100320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022100320 : AngleCell := + childLL (childHL (childHH (childLL thetaAboveCell00002210))) + +/-- Subcell `000022100321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022100321 : AngleCell := + childLH (childHL (childHH (childLL thetaAboveCell00002210))) + +/-- Subcell `000022100322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022100322 : AngleCell := + childHL (childHL (childHH (childLL thetaAboveCell00002210))) + +/-- Subcell `000022100323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022100323 : AngleCell := + childHH (childHL (childHH (childLL thetaAboveCell00002210))) + +/-- Subcell `000022100330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022100330 : AngleCell := + childLL (childHH (childHH (childLL thetaAboveCell00002210))) + +/-- Subcell `000022100331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022100331 : AngleCell := + childLH (childHH (childHH (childLL thetaAboveCell00002210))) + +/-- Subcell `000022100332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022100332 : AngleCell := + childHL (childHH (childHH (childLL thetaAboveCell00002210))) + +/-- Subcell `000022100333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022100333 : AngleCell := + childHH (childHH (childHH (childLL thetaAboveCell00002210))) + +/-- Subcell `000022101220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022101220 : AngleCell := + childLL (childHL (childHL (childLH thetaAboveCell00002210))) + +/-- Subcell `000022101221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022101221 : AngleCell := + childLH (childHL (childHL (childLH thetaAboveCell00002210))) + +/-- Subcell `000022101222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022101222 : AngleCell := + childHL (childHL (childHL (childLH thetaAboveCell00002210))) + +/-- Subcell `000022101223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022101223 : AngleCell := + childHH (childHL (childHL (childLH thetaAboveCell00002210))) + +/-- Subcell `000022101230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022101230 : AngleCell := + childLL (childHH (childHL (childLH thetaAboveCell00002210))) + +/-- Subcell `000022101231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022101231 : AngleCell := + childLH (childHH (childHL (childLH thetaAboveCell00002210))) + +/-- Subcell `000022101232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022101232 : AngleCell := + childHL (childHH (childHL (childLH thetaAboveCell00002210))) + +/-- Subcell `000022101233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022101233 : AngleCell := + childHH (childHH (childHL (childLH thetaAboveCell00002210))) + +/-- Subcell `000022101320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022101320 : AngleCell := + childLL (childHL (childHH (childLH thetaAboveCell00002210))) + +/-- Subcell `000022101321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022101321 : AngleCell := + childLH (childHL (childHH (childLH thetaAboveCell00002210))) + +/-- Subcell `000022101322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022101322 : AngleCell := + childHL (childHL (childHH (childLH thetaAboveCell00002210))) + +/-- Subcell `000022101323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022101323 : AngleCell := + childHH (childHL (childHH (childLH thetaAboveCell00002210))) + +/-- Subcell `000022101330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022101330 : AngleCell := + childLL (childHH (childHH (childLH thetaAboveCell00002210))) + +/-- Subcell `000022101331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022101331 : AngleCell := + childLH (childHH (childHH (childLH thetaAboveCell00002210))) + +/-- Subcell `000022101332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022101332 : AngleCell := + childHL (childHH (childHH (childLH thetaAboveCell00002210))) + +/-- Subcell `000022101333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022101333 : AngleCell := + childHH (childHH (childHH (childLH thetaAboveCell00002210))) + +/-- Subcell `000022102000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00002210))) + +/-- Subcell `000022102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00002210))) + +/-- Subcell `000022103000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell00002210))) + +/-- Subcell `000022103033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022103033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell00002210))) + +/-- Subcell `0000220131002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022013100))) + +/-- Subcell `0000220131003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022013100))) + +/-- Subcell `0000220131012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022013101))) + +/-- Subcell `0000220131013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022013101))) + +/-- Subcell `0000220131102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022013110))) + +/-- Subcell `0000220131102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022013110))) + +/-- Subcell `0000220131102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022013110))) + +/-- Subcell `0000220131102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022013110))) + +/-- Subcell `0000220131102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022013110))) + +/-- Subcell `0000220131102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022013110))) + +/-- Subcell `0000220131102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022013110))) + +/-- Subcell `0000220131102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022013110))) + +/-- Subcell `0000220131102120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131102120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022013110))) + +/-- Subcell `0000220131102121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131102121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022013110))) + +/-- Subcell `0000220131102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022013110))) + +/-- Subcell `0000220131102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022013110))) + +/-- Subcell `0000220131102130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131102130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022013110))) + +/-- Subcell `0000220131102131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131102131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022013110))) + +/-- Subcell `0000220131102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022013110))) + +/-- Subcell `0000220131102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022013110))) + +/-- Subcell `0000220131103020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131103020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022013110))) + +/-- Subcell `0000220131103021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131103021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022013110))) + +/-- Subcell `0000220131103022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131103022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022013110))) + +/-- Subcell `0000220131103023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131103023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022013110))) + +/-- Subcell `0000220131103030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131103030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022013110))) + +/-- Subcell `0000220131103031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131103031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022013110))) + +/-- Subcell `0000220131103032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131103032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022013110))) + +/-- Subcell `0000220131103033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220131103033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022013110))) + +end GerverSofa.PartE.CertificateCells4f78f3c271 + +namespace GerverSofa.PartE.CertificateCellsea4abf6409 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220021003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022002100))) + +end GerverSofa.PartE.CertificateCellsea4abf6409 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC6ProofBatchF910cf651a2033b4`. +* `KernelOnly.PartE.E24KC6R4Subtree001eda2c378d570b`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! E24KC6 explicit proof-producing certificate batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4f78f3c271 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4f78f3c271 + +open CertificateCells4f78f3c271 +theorem cover_subtree_be10dc5c5840 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022013100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022013100)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022013100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022013100))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022013100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022013100))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022013100))) + (by + have h : (thetaAboveCell0000220131002020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002020 h) + (by + have h : (thetaAboveCell0000220131002021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002021 h) + (by + have h : (thetaAboveCell0000220131002022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002022 h) + (by + have h : (thetaAboveCell0000220131002023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022013100))) + (by + have h : (thetaAboveCell0000220131002030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002030 h) + (by + have h : (thetaAboveCell0000220131002031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002031 h) + (by + have h : (thetaAboveCell0000220131002032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002032 h) + (by + have h : (thetaAboveCell0000220131002033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002033 h)) + +theorem cover_subtree_e2664fa77be7 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022013100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022013100)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022013100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022013100))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022013100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022013100))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022013100))) + (by + have h : (thetaAboveCell0000220131002120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002120 h) + (by + have h : (thetaAboveCell0000220131002121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002121 h) + (by + have h : (thetaAboveCell0000220131002122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002122 h) + (by + have h : (thetaAboveCell0000220131002123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022013100))) + (by + have h : (thetaAboveCell0000220131002130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002130 h) + (by + have h : (thetaAboveCell0000220131002131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002131 h) + (by + have h : (thetaAboveCell0000220131002132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002132 h) + (by + have h : (thetaAboveCell0000220131002133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002133 h)) + +theorem cover_subtree_aabbbf73f733 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022013100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022013100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022013100))) + (by + have h : (thetaAboveCell0000220131002200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002200 h) + (by + have h : (thetaAboveCell0000220131002201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002201 h) + (by + have h : (thetaAboveCell0000220131002202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002202 h) + (by + have h : (thetaAboveCell0000220131002203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022013100))) + (by + have h : (thetaAboveCell0000220131002210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002210 h) + (by + have h : (thetaAboveCell0000220131002211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002211 h) + (by + have h : (thetaAboveCell0000220131002212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002212 h) + (by + have h : (thetaAboveCell0000220131002213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022013100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022013100))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022013100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022013100))) h) + +theorem cover_subtree_9241fb51793c : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022013100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022013100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022013100))) + (by + have h : (thetaAboveCell0000220131002300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002300 h) + (by + have h : (thetaAboveCell0000220131002301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002301 h) + (by + have h : (thetaAboveCell0000220131002302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002302 h) + (by + have h : (thetaAboveCell0000220131002303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022013100))) + (by + have h : (thetaAboveCell0000220131002310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002310 h) + (by + have h : (thetaAboveCell0000220131002311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002311 h) + (by + have h : (thetaAboveCell0000220131002312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002312 h) + (by + have h : (thetaAboveCell0000220131002313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131002313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022013100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022013100))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022013100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022013100))) h) + +theorem cover_subtree_2c937348b9e5 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022013100) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022013100) + cover_subtree_be10dc5c5840 + cover_subtree_e2664fa77be7 + cover_subtree_aabbbf73f733 + cover_subtree_9241fb51793c + +theorem cover_subtree_ebd2440c450c : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022013100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022013100)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022013100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022013100))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022013100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022013100))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022013100))) + (by + have h : (thetaAboveCell0000220131003020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003020 h) + (by + have h : (thetaAboveCell0000220131003021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003021 h) + (by + have h : (thetaAboveCell0000220131003022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003022 h) + (by + have h : (thetaAboveCell0000220131003023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022013100))) + (by + have h : (thetaAboveCell0000220131003030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003030 h) + (by + have h : (thetaAboveCell0000220131003031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003031 h) + (by + have h : (thetaAboveCell0000220131003032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003032 h) + (by + have h : (thetaAboveCell0000220131003033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003033 h)) + +theorem cover_subtree_7da0e2645020 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022013100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022013100)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022013100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022013100))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022013100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022013100))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022013100))) + (by + have h : (thetaAboveCell0000220131003120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003120 h) + (by + have h : (thetaAboveCell0000220131003121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003121 h) + (by + have h : (thetaAboveCell0000220131003122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003122 h) + (by + have h : (thetaAboveCell0000220131003123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022013100))) + (by + have h : (thetaAboveCell0000220131003130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003130 h) + (by + have h : (thetaAboveCell0000220131003131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003131 h) + (by + have h : (thetaAboveCell0000220131003132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003132 h) + (by + have h : (thetaAboveCell0000220131003133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003133 h)) + +theorem cover_subtree_f0b1927352c1 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022013100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022013100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022013100))) + (by + have h : (thetaAboveCell0000220131003200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003200 h) + (by + have h : (thetaAboveCell0000220131003201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003201 h) + (by + have h : (thetaAboveCell0000220131003202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003202 h) + (by + have h : (thetaAboveCell0000220131003203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022013100))) + (by + have h : (thetaAboveCell0000220131003210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003210 h) + (by + have h : (thetaAboveCell0000220131003211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003211 h) + (by + have h : (thetaAboveCell0000220131003212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003212 h) + (by + have h : (thetaAboveCell0000220131003213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022013100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022013100))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022013100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022013100))) h) + +theorem cover_subtree_183a71e75e23 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022013100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022013100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022013100))) + (by + have h : (thetaAboveCell0000220131003300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003300 h) + (by + have h : (thetaAboveCell0000220131003301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003301 h) + (by + have h : (thetaAboveCell0000220131003302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003302 h) + (by + have h : (thetaAboveCell0000220131003303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022013100))) + (by + have h : (thetaAboveCell0000220131003310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003310 h) + (by + have h : (thetaAboveCell0000220131003311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003311 h) + (by + have h : (thetaAboveCell0000220131003312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003312 h) + (by + have h : (thetaAboveCell0000220131003313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131003313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022013100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022013100))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022013100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022013100))) h) + +theorem cover_subtree_fed838534b7a : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022013100) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022013100) + cover_subtree_ebd2440c450c + cover_subtree_7da0e2645020 + cover_subtree_f0b1927352c1 + cover_subtree_183a71e75e23 + +theorem cover_subtree_90b4414de137 : + adaptiveCoverCheck 7 thetaAboveCell000022013100 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022013100 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022013100) + (by + have h : ((childLL (childLL thetaAboveCell000022013100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022013100)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022013100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022013100)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022013100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022013100)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022013100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022013100)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022013100) + (by + have h : ((childLL (childLH thetaAboveCell000022013100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022013100)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022013100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022013100)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022013100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022013100)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022013100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022013100)) h)) + cover_subtree_2c937348b9e5 + cover_subtree_fed838534b7a + +theorem cover_subtree_68d45fba5878 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022013101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022013101)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022013101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022013101))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022013101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022013101))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022013101))) + (by + have h : (thetaAboveCell0000220131012020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012020 h) + (by + have h : (thetaAboveCell0000220131012021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012021 h) + (by + have h : (thetaAboveCell0000220131012022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012022 h) + (by + have h : (thetaAboveCell0000220131012023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022013101))) + (by + have h : (thetaAboveCell0000220131012030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012030 h) + (by + have h : (thetaAboveCell0000220131012031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012031 h) + (by + have h : (thetaAboveCell0000220131012032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012032 h) + (by + have h : (thetaAboveCell0000220131012033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012033 h)) + +theorem cover_subtree_1378cfbe9d41 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022013101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022013101)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022013101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022013101))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022013101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022013101))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022013101))) + (by + have h : (thetaAboveCell0000220131012120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012120 h) + (by + have h : (thetaAboveCell0000220131012121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012121 h) + (by + have h : (thetaAboveCell0000220131012122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012122 h) + (by + have h : (thetaAboveCell0000220131012123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022013101))) + (by + have h : (thetaAboveCell0000220131012130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012130 h) + (by + have h : (thetaAboveCell0000220131012131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012131 h) + (by + have h : (thetaAboveCell0000220131012132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012132 h) + (by + have h : (thetaAboveCell0000220131012133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012133 h)) + +theorem cover_subtree_d4c18a11dbdf : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022013101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022013101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022013101))) + (by + have h : (thetaAboveCell0000220131012200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012200 h) + (by + have h : (thetaAboveCell0000220131012201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012201 h) + (by + have h : (thetaAboveCell0000220131012202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012202 h) + (by + have h : (thetaAboveCell0000220131012203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022013101))) + (by + have h : (thetaAboveCell0000220131012210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012210 h) + (by + have h : (thetaAboveCell0000220131012211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012211 h) + (by + have h : (thetaAboveCell0000220131012212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012212 h) + (by + have h : (thetaAboveCell0000220131012213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022013101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022013101))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022013101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022013101))) h) + +theorem cover_subtree_5c02510827fa : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022013101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022013101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022013101))) + (by + have h : (thetaAboveCell0000220131012300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012300 h) + (by + have h : (thetaAboveCell0000220131012301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012301 h) + (by + have h : (thetaAboveCell0000220131012302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012302 h) + (by + have h : (thetaAboveCell0000220131012303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022013101))) + (by + have h : (thetaAboveCell0000220131012310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012310 h) + (by + have h : (thetaAboveCell0000220131012311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012311 h) + (by + have h : (thetaAboveCell0000220131012312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012312 h) + (by + have h : (thetaAboveCell0000220131012313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131012313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022013101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022013101))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022013101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022013101))) h) + +theorem cover_subtree_a9496679df68 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022013101) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022013101) + cover_subtree_68d45fba5878 + cover_subtree_1378cfbe9d41 + cover_subtree_d4c18a11dbdf + cover_subtree_5c02510827fa + +theorem cover_subtree_489a9c102105 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022013101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022013101)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022013101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022013101))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022013101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022013101))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022013101))) + (by + have h : (thetaAboveCell0000220131013020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013020 h) + (by + have h : (thetaAboveCell0000220131013021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013021 h) + (by + have h : (thetaAboveCell0000220131013022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013022 h) + (by + have h : (thetaAboveCell0000220131013023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022013101))) + (by + have h : (thetaAboveCell0000220131013030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013030 h) + (by + have h : (thetaAboveCell0000220131013031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013031 h) + (by + have h : (thetaAboveCell0000220131013032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013032 h) + (by + have h : (thetaAboveCell0000220131013033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013033 h)) + +theorem cover_subtree_83fbbe580c99 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022013101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022013101)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022013101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022013101))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022013101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022013101))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022013101))) + (by + have h : (thetaAboveCell0000220131013120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013120 h) + (by + have h : (thetaAboveCell0000220131013121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013121 h) + (by + have h : (thetaAboveCell0000220131013122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013122 h) + (by + have h : (thetaAboveCell0000220131013123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022013101))) + (by + have h : (thetaAboveCell0000220131013130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013130 h) + (by + have h : (thetaAboveCell0000220131013131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013131 h) + (by + have h : (thetaAboveCell0000220131013132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013132 h) + (by + have h : (thetaAboveCell0000220131013133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013133 h)) + +theorem cover_subtree_41d6d032c729 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022013101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022013101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022013101))) + (by + have h : (thetaAboveCell0000220131013200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013200 h) + (by + have h : (thetaAboveCell0000220131013201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013201 h) + (by + have h : (thetaAboveCell0000220131013202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013202 h) + (by + have h : (thetaAboveCell0000220131013203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022013101))) + (by + have h : (thetaAboveCell0000220131013210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013210 h) + (by + have h : (thetaAboveCell0000220131013211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013211 h) + (by + have h : (thetaAboveCell0000220131013212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013212 h) + (by + have h : (thetaAboveCell0000220131013213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131013213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022013101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022013101))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022013101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022013101))) h) + +theorem cover_subtree_51fa07c59358 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022013101) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022013101) + cover_subtree_489a9c102105 + cover_subtree_83fbbe580c99 + cover_subtree_41d6d032c729 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022013101)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022013101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022013101))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022013101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022013101))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022013101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022013101))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022013101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022013101))) h)) + +theorem cover_subtree_e719563f2a9a : + adaptiveCoverCheck 7 thetaAboveCell000022013101 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022013101 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022013101) + (by + have h : ((childLL (childLL thetaAboveCell000022013101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022013101)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022013101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022013101)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022013101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022013101)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022013101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022013101)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022013101) + (by + have h : ((childLL (childLH thetaAboveCell000022013101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022013101)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022013101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022013101)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022013101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022013101)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022013101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022013101)) h)) + cover_subtree_a9496679df68 + cover_subtree_51fa07c59358 + +theorem cover_subtree_5da232081c3f : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022013102) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022013102) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022013102)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022013102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022013102))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022013102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022013102))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022013102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022013102))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022013102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022013102))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022013102)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022013102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022013102))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022013102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022013102))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022013102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022013102))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022013102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022013102))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022013102)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022013102)) h) + +theorem cover_subtree_5c0d2361729f : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022013102) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022013102) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022013102)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022013102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022013102))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022013102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022013102))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022013102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022013102))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022013102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022013102))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022013102)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022013102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022013102))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022013102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022013102))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022013102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022013102))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022013102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022013102))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022013102)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022013102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022013102)) h) + +theorem cover_subtree_7dff7749156d : + adaptiveCoverCheck 7 thetaAboveCell000022013102 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022013102 + cover_subtree_5da232081c3f + cover_subtree_5c0d2361729f + (by + have h : ((childHL thetaAboveCell000022013102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022013102) h) + (by + have h : ((childHH thetaAboveCell000022013102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022013102) h) + +theorem cover_subtree_c4dcfe2e3e24 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022013103) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022013103) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022013103)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022013103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022013103))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022013103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022013103))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022013103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022013103))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022013103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022013103))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022013103)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022013103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022013103))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022013103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022013103))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022013103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022013103))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022013103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022013103))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022013103)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022013103)) h) + +theorem cover_subtree_264dbac80856 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022013103) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022013103) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022013103)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022013103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022013103))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022013103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022013103))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022013103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022013103))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022013103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022013103))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022013103)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022013103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022013103))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022013103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022013103))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022013103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022013103))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022013103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022013103))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022013103)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022013103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022013103)) h) + +theorem cover_subtree_e684324b85dc : + adaptiveCoverCheck 7 thetaAboveCell000022013103 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022013103 + cover_subtree_c4dcfe2e3e24 + cover_subtree_264dbac80856 + (by + have h : ((childHL thetaAboveCell000022013103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022013103) h) + (by + have h : ((childHH thetaAboveCell000022013103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022013103) h) + +theorem cover_subtree_ce7ce9f6c591 : + adaptiveCoverCheck 8 (childLL (childLH (childHH thetaAboveCell00002201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHH thetaAboveCell00002201))) + cover_subtree_90b4414de137 + cover_subtree_e719563f2a9a + cover_subtree_7dff7749156d + cover_subtree_e684324b85dc + +theorem cover_subtree_a70ca499a0b4 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022013110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022013110)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022013110))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022013110))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022013110))) + (by + have h : (thetaAboveCell0000220131102020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131102020 h) + (by + have h : (thetaAboveCell0000220131102021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131102021 h) + (by + have h : (thetaAboveCell0000220131102022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131102022 h) + (by + have h : (thetaAboveCell0000220131102023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131102023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022013110))) + (by + have h : (thetaAboveCell0000220131102030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131102030 h) + (by + have h : (thetaAboveCell0000220131102031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131102031 h) + (by + have h : (thetaAboveCell0000220131102032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131102032 h) + (by + have h : (thetaAboveCell0000220131102033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131102033 h)) + +theorem cover_subtree_6d4fa0be4462 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022013110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022013110)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022013110))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022013110))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022013110))) + (by + have h : (thetaAboveCell0000220131102120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131102120 h) + (by + have h : (thetaAboveCell0000220131102121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131102121 h) + (by + have h : (thetaAboveCell0000220131102122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131102122 h) + (by + have h : (thetaAboveCell0000220131102123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131102123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022013110))) + (by + have h : (thetaAboveCell0000220131102130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131102130 h) + (by + have h : (thetaAboveCell0000220131102131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131102131 h) + (by + have h : (thetaAboveCell0000220131102132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131102132 h) + (by + have h : (thetaAboveCell0000220131102133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131102133 h)) + +theorem cover_subtree_a8973ec340e4 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022013110) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022013110) + cover_subtree_a70ca499a0b4 + cover_subtree_6d4fa0be4462 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022013110)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022013110))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022013110))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022013110))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022013110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022013110)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022013110))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022013110))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022013110))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022013110))) h)) + +theorem cover_subtree_3831ad0b2d96 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022013110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022013110)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022013110))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022013110))) h) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022013110))) + (by + have h : (thetaAboveCell0000220131103020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131103020 h) + (by + have h : (thetaAboveCell0000220131103021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131103021 h) + (by + have h : (thetaAboveCell0000220131103022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131103022 h) + (by + have h : (thetaAboveCell0000220131103023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131103023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022013110))) + (by + have h : (thetaAboveCell0000220131103030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131103030 h) + (by + have h : (thetaAboveCell0000220131103031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131103031 h) + (by + have h : (thetaAboveCell0000220131103032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131103032 h) + (by + have h : (thetaAboveCell0000220131103033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220131103033 h)) + +theorem cover_subtree_209916dfc771 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022013110) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022013110) + cover_subtree_3831ad0b2d96 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022013110)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022013110))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022013110))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHH + thetaAboveCell000022013110))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHH + thetaAboveCell000022013110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022013110)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022013110))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022013110))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022013110))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022013110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022013110)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022013110))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022013110))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022013110))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022013110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022013110))) h)) + +theorem cover_subtree_9102dd71dbed : + adaptiveCoverCheck 7 thetaAboveCell000022013110 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022013110 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022013110) + (by + have h : ((childLL (childLL thetaAboveCell000022013110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022013110)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022013110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022013110)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022013110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022013110)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022013110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022013110)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022013110) + (by + have h : ((childLL (childLH thetaAboveCell000022013110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022013110)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022013110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022013110)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022013110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022013110)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022013110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022013110)) h)) + cover_subtree_a8973ec340e4 + cover_subtree_209916dfc771 + +theorem cover_subtree_62849ad9787b : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022013111) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022013111) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022013111)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022013111))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022013111))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHL + thetaAboveCell000022013111))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHL + thetaAboveCell000022013111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022013111)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022013111))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022013111))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHL + thetaAboveCell000022013111))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHL + thetaAboveCell000022013111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022013111)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022013111))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022013111))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022013111))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022013111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022013111)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022013111))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022013111))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022013111))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022013111))) h)) + +theorem cover_subtree_bfb0ae9bf369 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022013111) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022013111) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022013111)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022013111))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022013111))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHH + thetaAboveCell000022013111))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHH + thetaAboveCell000022013111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022013111)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022013111))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022013111))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHH + thetaAboveCell000022013111))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHH + thetaAboveCell000022013111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022013111)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022013111))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022013111))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022013111))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022013111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022013111)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022013111))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022013111))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022013111))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022013111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022013111))) h)) + +theorem cover_subtree_eaa4ec2c0c14 : + adaptiveCoverCheck 7 thetaAboveCell000022013111 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022013111 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022013111) + (by + have h : ((childLL (childLL thetaAboveCell000022013111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022013111)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022013111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022013111)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022013111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022013111)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022013111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022013111)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022013111) + (by + have h : ((childLL (childLH thetaAboveCell000022013111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022013111)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022013111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022013111)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022013111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022013111)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022013111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022013111)) h)) + cover_subtree_62849ad9787b + cover_subtree_bfb0ae9bf369 + +theorem cover_subtree_e17df11d5039 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022013112) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022013112) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022013112)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022013112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022013112))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022013112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022013112))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022013112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022013112))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022013112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022013112))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022013112)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022013112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022013112))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022013112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022013112))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022013112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022013112))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022013112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022013112))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022013112)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022013112)) h) + +theorem cover_subtree_c71b0926b90d : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022013112) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022013112) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022013112)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022013112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022013112))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022013112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022013112))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022013112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022013112))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022013112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022013112))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022013112)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022013112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022013112))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022013112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022013112))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022013112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022013112))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022013112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022013112))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022013112)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022013112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022013112)) h) + +theorem cover_subtree_9a7254ea80d1 : + adaptiveCoverCheck 7 thetaAboveCell000022013112 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022013112 + cover_subtree_e17df11d5039 + cover_subtree_c71b0926b90d + (by + have h : ((childHL thetaAboveCell000022013112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022013112) h) + (by + have h : ((childHH thetaAboveCell000022013112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022013112) h) + +theorem cover_subtree_6a20205ec3a1 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022013113) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022013113) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022013113)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022013113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022013113))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022013113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022013113))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022013113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022013113))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022013113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022013113))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022013113)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022013113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022013113))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022013113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022013113))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022013113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022013113))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022013113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022013113))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022013113)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022013113)) h) + +theorem cover_subtree_1b35fa72d695 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022013113) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022013113) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022013113)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022013113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022013113))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022013113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022013113))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022013113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022013113))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022013113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022013113))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022013113)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022013113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022013113))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022013113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022013113))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022013113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022013113))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022013113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022013113))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022013113)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022013113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022013113)) h) + +theorem cover_subtree_19dbc3a1cabf : + adaptiveCoverCheck 7 thetaAboveCell000022013113 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022013113 + cover_subtree_6a20205ec3a1 + cover_subtree_1b35fa72d695 + (by + have h : ((childHL thetaAboveCell000022013113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022013113) h) + (by + have h : ((childHH thetaAboveCell000022013113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022013113) h) + +theorem cover_subtree_306835c71900 : + adaptiveCoverCheck 8 (childLH (childLH (childHH thetaAboveCell00002201))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHH thetaAboveCell00002201))) + cover_subtree_9102dd71dbed + cover_subtree_eaa4ec2c0c14 + cover_subtree_9a7254ea80d1 + cover_subtree_19dbc3a1cabf + +theorem e24KC2ThetaAboveLeaf0000220131 : + adaptiveCoverCheck 9 (childLH (childHH thetaAboveCell00002201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHH thetaAboveCell00002201)) + cover_subtree_ce7ce9f6c591 + cover_subtree_306835c71900 + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHH + thetaAboveCell00002201))) + (by + have h : (thetaAboveCell000022013120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022013120 h) + (by + have h : (thetaAboveCell000022013121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022013121 h) + (by + have h : (thetaAboveCell000022013122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022013122 h) + (by + have h : (thetaAboveCell000022013123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022013123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHH + thetaAboveCell00002201))) + (by + have h : (thetaAboveCell000022013130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022013130 h) + (by + have h : (thetaAboveCell000022013131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022013131 h) + (by + have h : (thetaAboveCell000022013132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022013132 h) + (by + have h : (thetaAboveCell000022013133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022013133 h)) +theorem e24KC2ThetaAboveLeaf0000220132 : + adaptiveCoverCheck 9 (childHL (childHH thetaAboveCell00002201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHH thetaAboveCell00002201)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHH + thetaAboveCell00002201))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHH + thetaAboveCell00002201))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHH + thetaAboveCell00002201))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHH + thetaAboveCell00002201))) h) +theorem e24KC2ThetaAboveLeaf0000220133 : + adaptiveCoverCheck 9 (childHH (childHH thetaAboveCell00002201)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHH thetaAboveCell00002201)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHH + thetaAboveCell00002201))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHH + thetaAboveCell00002201))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHH + thetaAboveCell00002201))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell00002201)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHH + thetaAboveCell00002201))) h) +theorem e24KC2ThetaAboveLeaf0000221002 : + adaptiveCoverCheck 9 (childHL (childLL thetaAboveCell00002210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLL thetaAboveCell00002210)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLL + thetaAboveCell00002210))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLL + thetaAboveCell00002210))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childLL + thetaAboveCell00002210))) + (by + have h : (thetaAboveCell000022100220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022100220 h) + (by + have h : (thetaAboveCell000022100221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022100221 h) + (by + have h : (thetaAboveCell000022100222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022100222 h) + (by + have h : (thetaAboveCell000022100223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022100223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childLL + thetaAboveCell00002210))) + (by + have h : (thetaAboveCell000022100230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022100230 h) + (by + have h : (thetaAboveCell000022100231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022100231 h) + (by + have h : (thetaAboveCell000022100232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022100232 h) + (by + have h : (thetaAboveCell000022100233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022100233 h)) +theorem e24KC2ThetaAboveLeaf0000221003 : + adaptiveCoverCheck 9 (childHH (childLL thetaAboveCell00002210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLL thetaAboveCell00002210)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLL + thetaAboveCell00002210))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLL + thetaAboveCell00002210))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childLL + thetaAboveCell00002210))) + (by + have h : (thetaAboveCell000022100320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022100320 h) + (by + have h : (thetaAboveCell000022100321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022100321 h) + (by + have h : (thetaAboveCell000022100322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022100322 h) + (by + have h : (thetaAboveCell000022100323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022100323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childLL + thetaAboveCell00002210))) + (by + have h : (thetaAboveCell000022100330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022100330 h) + (by + have h : (thetaAboveCell000022100331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022100331 h) + (by + have h : (thetaAboveCell000022100332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022100332 h) + (by + have h : (thetaAboveCell000022100333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022100333 h)) +theorem e24KC2ThetaAboveLeaf0000221012 : + adaptiveCoverCheck 9 (childHL (childLH thetaAboveCell00002210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childLH thetaAboveCell00002210)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childLH + thetaAboveCell00002210))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childLH + thetaAboveCell00002210))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHL (childLH + thetaAboveCell00002210))) + (by + have h : (thetaAboveCell000022101220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022101220 h) + (by + have h : (thetaAboveCell000022101221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022101221 h) + (by + have h : (thetaAboveCell000022101222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022101222 h) + (by + have h : (thetaAboveCell000022101223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022101223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHL (childLH + thetaAboveCell00002210))) + (by + have h : (thetaAboveCell000022101230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022101230 h) + (by + have h : (thetaAboveCell000022101231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022101231 h) + (by + have h : (thetaAboveCell000022101232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022101232 h) + (by + have h : (thetaAboveCell000022101233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022101233 h)) +theorem e24KC2ThetaAboveLeaf0000221013 : + adaptiveCoverCheck 9 (childHH (childLH thetaAboveCell00002210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childLH thetaAboveCell00002210)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childLH + thetaAboveCell00002210))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childLH + thetaAboveCell00002210))) h) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH (childLH + thetaAboveCell00002210))) + (by + have h : (thetaAboveCell000022101320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022101320 h) + (by + have h : (thetaAboveCell000022101321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022101321 h) + (by + have h : (thetaAboveCell000022101322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022101322 h) + (by + have h : (thetaAboveCell000022101323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022101323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH (childLH + thetaAboveCell00002210))) + (by + have h : (thetaAboveCell000022101330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022101330 h) + (by + have h : (thetaAboveCell000022101331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022101331 h) + (by + have h : (thetaAboveCell000022101332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022101332 h) + (by + have h : (thetaAboveCell000022101333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022101333 h)) +theorem cover_subtree_c6b00b0efe5e : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022102000) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022102000) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022102000)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022102000))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022102000))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHL + thetaAboveCell000022102000))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHL + thetaAboveCell000022102000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022102000)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022102000))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022102000))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHL + thetaAboveCell000022102000))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHL + thetaAboveCell000022102000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022102000)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022102000))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022102000))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022102000))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022102000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022102000)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022102000))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022102000))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022102000))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022102000))) h)) + +theorem cover_subtree_da57798dbd9f : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022102000) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022102000) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022102000)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022102000))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022102000))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHH + thetaAboveCell000022102000))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHH + thetaAboveCell000022102000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022102000)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022102000))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022102000))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHH + thetaAboveCell000022102000))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHH + thetaAboveCell000022102000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022102000)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022102000))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022102000))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022102000))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022102000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022102000)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022102000))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022102000))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022102000))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022102000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022102000))) h)) + +theorem cover_subtree_bf93e03bf258 : + adaptiveCoverCheck 7 thetaAboveCell000022102000 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022102000 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022102000) + (by + have h : ((childLL (childLL thetaAboveCell000022102000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022102000)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022102000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022102000)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022102000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022102000)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022102000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022102000)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022102000) + (by + have h : ((childLL (childLH thetaAboveCell000022102000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022102000)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022102000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022102000)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022102000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022102000)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022102000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022102000)) h)) + cover_subtree_c6b00b0efe5e + cover_subtree_da57798dbd9f + +theorem cover_subtree_77f8696b5d47 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022102001) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022102001) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022102001)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022102001))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022102001))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHL + thetaAboveCell000022102001))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHL + thetaAboveCell000022102001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022102001)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022102001))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022102001))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHL + thetaAboveCell000022102001))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHL + thetaAboveCell000022102001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022102001)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022102001))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022102001))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022102001))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022102001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022102001)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022102001))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022102001))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022102001))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022102001))) h)) + +theorem cover_subtree_d9ace3f5364c : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022102001) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022102001) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022102001)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022102001))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022102001))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHH + thetaAboveCell000022102001))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHH + thetaAboveCell000022102001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022102001)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022102001))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022102001))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHH + thetaAboveCell000022102001))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHH + thetaAboveCell000022102001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022102001)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022102001))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022102001))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022102001))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022102001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022102001)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022102001))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022102001))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022102001))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022102001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022102001))) h)) + +theorem cover_subtree_31e6b90084eb : + adaptiveCoverCheck 7 thetaAboveCell000022102001 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022102001 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022102001) + (by + have h : ((childLL (childLL thetaAboveCell000022102001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022102001)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022102001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022102001)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022102001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022102001)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022102001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022102001)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022102001) + (by + have h : ((childLL (childLH thetaAboveCell000022102001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022102001)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022102001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022102001)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022102001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022102001)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022102001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022102001)) h)) + cover_subtree_77f8696b5d47 + cover_subtree_d9ace3f5364c + +theorem cover_subtree_bf46f98b974d : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022102002) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022102002) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022102002)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022102002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022102002))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022102002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022102002))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022102002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022102002))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022102002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022102002))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022102002)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022102002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022102002))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022102002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022102002))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022102002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022102002))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022102002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022102002))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022102002)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022102002)) h) + +theorem cover_subtree_1ce6ea29c41d : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022102002) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022102002) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022102002)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022102002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022102002))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022102002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022102002))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022102002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022102002))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022102002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022102002))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022102002)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022102002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022102002))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022102002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022102002))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022102002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022102002))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022102002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022102002))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022102002)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022102002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022102002)) h) + +theorem cover_subtree_5f2916b0629e : + adaptiveCoverCheck 7 thetaAboveCell000022102002 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022102002 + cover_subtree_bf46f98b974d + cover_subtree_1ce6ea29c41d + (by + have h : ((childHL thetaAboveCell000022102002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022102002) h) + (by + have h : ((childHH thetaAboveCell000022102002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022102002) h) + +theorem cover_subtree_bf2a6b948a6e : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022102003) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022102003) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022102003)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022102003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022102003))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022102003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022102003))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022102003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022102003))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022102003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022102003))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022102003)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022102003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022102003))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022102003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022102003))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022102003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022102003))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022102003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022102003))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022102003)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022102003)) h) + +theorem cover_subtree_80d3b8565aa4 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022102003) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022102003) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022102003)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022102003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022102003))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022102003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022102003))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022102003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022102003))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022102003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022102003))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022102003)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022102003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022102003))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022102003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022102003))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022102003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022102003))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022102003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022102003))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022102003)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022102003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022102003)) h) + +theorem cover_subtree_256b0c79e2b4 : + adaptiveCoverCheck 7 thetaAboveCell000022102003 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022102003 + cover_subtree_bf2a6b948a6e + cover_subtree_80d3b8565aa4 + (by + have h : ((childHL thetaAboveCell000022102003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022102003) h) + (by + have h : ((childHH thetaAboveCell000022102003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022102003) h) + +theorem cover_subtree_2cb6fcc01da2 : + adaptiveCoverCheck 8 (childLL (childLL (childHL thetaAboveCell00002210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL thetaAboveCell00002210))) + cover_subtree_bf93e03bf258 + cover_subtree_31e6b90084eb + cover_subtree_5f2916b0629e + cover_subtree_256b0c79e2b4 + +theorem cover_subtree_9079844093a9 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022102010) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022102010) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022102010)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022102010))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022102010))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHL + thetaAboveCell000022102010))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHL + thetaAboveCell000022102010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022102010)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022102010))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022102010))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHL + thetaAboveCell000022102010))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHL + thetaAboveCell000022102010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022102010)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022102010))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022102010))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022102010))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022102010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022102010)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022102010))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022102010))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022102010))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022102010))) h)) + +theorem cover_subtree_dfea94ec6240 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022102010) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022102010) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022102010)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022102010))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022102010))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHH + thetaAboveCell000022102010))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHH + thetaAboveCell000022102010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022102010)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022102010))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022102010))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHH + thetaAboveCell000022102010))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHH + thetaAboveCell000022102010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022102010)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022102010))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022102010))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022102010))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022102010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022102010)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022102010))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022102010))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022102010))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022102010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022102010))) h)) + +theorem cover_subtree_b660fcad9ea4 : + adaptiveCoverCheck 7 thetaAboveCell000022102010 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022102010 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022102010) + (by + have h : ((childLL (childLL thetaAboveCell000022102010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022102010)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022102010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022102010)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022102010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022102010)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022102010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022102010)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022102010) + (by + have h : ((childLL (childLH thetaAboveCell000022102010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022102010)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022102010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022102010)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022102010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022102010)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022102010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022102010)) h)) + cover_subtree_9079844093a9 + cover_subtree_dfea94ec6240 + +theorem cover_subtree_5c3913aa5f15 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022102011) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022102011) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022102011)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022102011))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022102011))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHL + thetaAboveCell000022102011))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHL + thetaAboveCell000022102011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022102011)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022102011))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022102011))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHL + thetaAboveCell000022102011))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHL + thetaAboveCell000022102011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022102011)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022102011))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022102011))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022102011))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022102011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022102011)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022102011))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022102011))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022102011))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022102011))) h)) + +theorem cover_subtree_fbab0316abef : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022102011) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022102011) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022102011)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022102011))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022102011))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHH + thetaAboveCell000022102011))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHH + thetaAboveCell000022102011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022102011)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022102011))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022102011))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHH + thetaAboveCell000022102011))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHH + thetaAboveCell000022102011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022102011)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022102011))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022102011))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022102011))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022102011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022102011)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022102011))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022102011))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022102011))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022102011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022102011))) h)) + +theorem cover_subtree_c4d768804304 : + adaptiveCoverCheck 7 thetaAboveCell000022102011 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022102011 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022102011) + (by + have h : ((childLL (childLL thetaAboveCell000022102011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022102011)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022102011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022102011)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022102011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022102011)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022102011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022102011)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022102011) + (by + have h : ((childLL (childLH thetaAboveCell000022102011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022102011)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022102011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022102011)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022102011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022102011)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022102011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022102011)) h)) + cover_subtree_5c3913aa5f15 + cover_subtree_fbab0316abef + +theorem cover_subtree_241920b95407 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022102012) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022102012) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022102012)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022102012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022102012))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022102012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022102012))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022102012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022102012))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022102012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022102012))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022102012)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022102012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022102012))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022102012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022102012))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022102012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022102012))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022102012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022102012))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022102012)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022102012)) h) + +theorem cover_subtree_7da00eb7f7ae : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022102012) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022102012) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022102012)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022102012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022102012))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022102012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022102012))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022102012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022102012))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022102012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022102012))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022102012)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022102012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022102012))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022102012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022102012))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022102012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022102012))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022102012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022102012))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022102012)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022102012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022102012)) h) + +theorem cover_subtree_f82bf90640b6 : + adaptiveCoverCheck 7 thetaAboveCell000022102012 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022102012 + cover_subtree_241920b95407 + cover_subtree_7da00eb7f7ae + (by + have h : ((childHL thetaAboveCell000022102012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022102012) h) + (by + have h : ((childHH thetaAboveCell000022102012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022102012) h) + +theorem cover_subtree_afdbba9126b4 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022102013) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022102013) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022102013)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022102013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022102013))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022102013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022102013))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022102013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022102013))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022102013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022102013))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022102013)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022102013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022102013))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022102013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022102013))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022102013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022102013))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022102013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022102013))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022102013)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022102013)) h) + +theorem cover_subtree_66c22a722e78 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022102013) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022102013) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022102013)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022102013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022102013))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022102013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022102013))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022102013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022102013))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022102013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022102013))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022102013)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022102013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022102013))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022102013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022102013))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022102013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022102013))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022102013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022102013))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022102013)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022102013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022102013)) h) + +theorem cover_subtree_21534bc80804 : + adaptiveCoverCheck 7 thetaAboveCell000022102013 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022102013 + cover_subtree_afdbba9126b4 + cover_subtree_66c22a722e78 + (by + have h : ((childHL thetaAboveCell000022102013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022102013) h) + (by + have h : ((childHH thetaAboveCell000022102013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022102013) h) + +theorem cover_subtree_e39770fd6802 : + adaptiveCoverCheck 8 (childLH (childLL (childHL thetaAboveCell00002210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL thetaAboveCell00002210))) + cover_subtree_b660fcad9ea4 + cover_subtree_c4d768804304 + cover_subtree_f82bf90640b6 + cover_subtree_21534bc80804 + +theorem e24KC2ThetaAboveLeaf0000221020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00002210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00002210)) + cover_subtree_2cb6fcc01da2 + cover_subtree_e39770fd6802 + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00002210))) + (by + have h : (thetaAboveCell000022102020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022102020 h) + (by + have h : (thetaAboveCell000022102021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022102021 h) + (by + have h : (thetaAboveCell000022102022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022102022 h) + (by + have h : (thetaAboveCell000022102023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022102023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00002210))) + (by + have h : (thetaAboveCell000022102030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022102030 h) + (by + have h : (thetaAboveCell000022102031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022102031 h) + (by + have h : (thetaAboveCell000022102032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022102032 h) + (by + have h : (thetaAboveCell000022102033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022102033 h)) +theorem cover_subtree_5ec7a41b8f5f : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022102100) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022102100) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022102100)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022102100))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022102100))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHL + thetaAboveCell000022102100))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHL + thetaAboveCell000022102100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022102100)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022102100))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022102100))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHL + thetaAboveCell000022102100))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHL + thetaAboveCell000022102100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022102100)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022102100))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022102100))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022102100))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022102100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022102100)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022102100))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022102100))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022102100))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022102100))) h)) + +theorem cover_subtree_cd20ac2a69b7 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022102100) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022102100) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022102100)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022102100))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022102100))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHH + thetaAboveCell000022102100))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHH + thetaAboveCell000022102100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022102100)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022102100))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022102100))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHH + thetaAboveCell000022102100))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHH + thetaAboveCell000022102100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022102100)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022102100))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022102100))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022102100))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022102100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022102100)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022102100))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022102100))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022102100))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022102100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022102100))) h)) + +theorem cover_subtree_15babda5d60b : + adaptiveCoverCheck 7 thetaAboveCell000022102100 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022102100 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022102100) + (by + have h : ((childLL (childLL thetaAboveCell000022102100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022102100)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022102100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022102100)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022102100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022102100)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022102100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022102100)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022102100) + (by + have h : ((childLL (childLH thetaAboveCell000022102100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022102100)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022102100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022102100)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022102100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022102100)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022102100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022102100)) h)) + cover_subtree_5ec7a41b8f5f + cover_subtree_cd20ac2a69b7 + +theorem cover_subtree_b76fce14d656 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022102101) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022102101) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022102101)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022102101))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022102101))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHL + thetaAboveCell000022102101))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHL + thetaAboveCell000022102101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022102101)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022102101))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022102101))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHL + thetaAboveCell000022102101))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHL + thetaAboveCell000022102101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022102101)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022102101))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022102101))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022102101))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022102101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022102101)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022102101))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022102101))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022102101))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022102101))) h)) + +theorem cover_subtree_b7fed3746307 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022102101) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022102101) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022102101)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022102101))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022102101))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHH + thetaAboveCell000022102101))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHH + thetaAboveCell000022102101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022102101)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022102101))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022102101))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHH + thetaAboveCell000022102101))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHH + thetaAboveCell000022102101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022102101)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022102101))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022102101))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022102101))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022102101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022102101)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022102101))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022102101))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022102101))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022102101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022102101))) h)) + +theorem cover_subtree_a92382a463a3 : + adaptiveCoverCheck 7 thetaAboveCell000022102101 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022102101 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022102101) + (by + have h : ((childLL (childLL thetaAboveCell000022102101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022102101)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022102101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022102101)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022102101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022102101)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022102101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022102101)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022102101) + (by + have h : ((childLL (childLH thetaAboveCell000022102101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022102101)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022102101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022102101)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022102101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022102101)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022102101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022102101)) h)) + cover_subtree_b76fce14d656 + cover_subtree_b7fed3746307 + +theorem cover_subtree_1f53d26ec077 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022102102) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022102102) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022102102)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022102102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022102102))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022102102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022102102))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022102102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022102102))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022102102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022102102))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022102102)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022102102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022102102))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022102102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022102102))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022102102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022102102))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022102102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022102102))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022102102)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022102102)) h) + +theorem cover_subtree_d3e2670ab1ea : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022102102) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022102102) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022102102)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022102102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022102102))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022102102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022102102))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022102102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022102102))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022102102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022102102))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022102102)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022102102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022102102))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022102102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022102102))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022102102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022102102))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022102102)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022102102))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022102102)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022102102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022102102)) h) + +theorem cover_subtree_98de717668b3 : + adaptiveCoverCheck 7 thetaAboveCell000022102102 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022102102 + cover_subtree_1f53d26ec077 + cover_subtree_d3e2670ab1ea + (by + have h : ((childHL thetaAboveCell000022102102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022102102) h) + (by + have h : ((childHH thetaAboveCell000022102102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022102102) h) + +theorem cover_subtree_db5013993ba5 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022102103) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022102103) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022102103)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022102103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022102103))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022102103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022102103))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022102103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022102103))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022102103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022102103))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022102103)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022102103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022102103))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022102103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022102103))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022102103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022102103))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022102103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022102103))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022102103)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022102103)) h) + +theorem cover_subtree_9589615e51ad : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022102103) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022102103) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022102103)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022102103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022102103))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022102103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022102103))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022102103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022102103))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022102103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022102103))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022102103)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022102103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022102103))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022102103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022102103))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022102103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022102103))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022102103)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022102103))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022102103)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022102103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022102103)) h) + +theorem cover_subtree_fdef224c05a8 : + adaptiveCoverCheck 7 thetaAboveCell000022102103 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022102103 + cover_subtree_db5013993ba5 + cover_subtree_9589615e51ad + (by + have h : ((childHL thetaAboveCell000022102103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022102103) h) + (by + have h : ((childHH thetaAboveCell000022102103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022102103) h) + +theorem cover_subtree_6fb265308e16 : + adaptiveCoverCheck 8 (childLL (childLH (childHL thetaAboveCell00002210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL thetaAboveCell00002210))) + cover_subtree_15babda5d60b + cover_subtree_a92382a463a3 + cover_subtree_98de717668b3 + cover_subtree_fdef224c05a8 + +theorem cover_subtree_460dcf0085c5 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022102110) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022102110) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022102110)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022102110))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022102110))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHL + thetaAboveCell000022102110))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHL + thetaAboveCell000022102110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022102110)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022102110))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022102110))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHL + thetaAboveCell000022102110))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHL + thetaAboveCell000022102110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022102110)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022102110))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022102110))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022102110))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022102110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022102110)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022102110))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022102110))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022102110))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022102110))) h)) + +theorem cover_subtree_51ce5942d936 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022102110) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022102110) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022102110)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022102110))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022102110))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHH + thetaAboveCell000022102110))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHH + thetaAboveCell000022102110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022102110)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022102110))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022102110))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHH + thetaAboveCell000022102110))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHH + thetaAboveCell000022102110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022102110)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022102110))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022102110))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022102110))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022102110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022102110)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022102110))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022102110))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022102110))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022102110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022102110))) h)) + +theorem cover_subtree_2be474cb7a0f : + adaptiveCoverCheck 7 thetaAboveCell000022102110 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022102110 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022102110) + (by + have h : ((childLL (childLL thetaAboveCell000022102110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022102110)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022102110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022102110)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022102110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022102110)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022102110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022102110)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022102110) + (by + have h : ((childLL (childLH thetaAboveCell000022102110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022102110)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022102110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022102110)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022102110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022102110)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022102110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022102110)) h)) + cover_subtree_460dcf0085c5 + cover_subtree_51ce5942d936 + +theorem cover_subtree_4bc40a8305e2 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022102111) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022102111) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022102111)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022102111))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022102111))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHL + thetaAboveCell000022102111))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHL + thetaAboveCell000022102111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022102111)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022102111))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022102111))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHL + thetaAboveCell000022102111))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHL + thetaAboveCell000022102111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022102111)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022102111))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022102111))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022102111))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022102111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022102111)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022102111))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022102111))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022102111))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022102111))) h)) + +theorem cover_subtree_bc2667f250d6 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022102111) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022102111) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022102111)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022102111))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022102111))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHH + thetaAboveCell000022102111))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHH + thetaAboveCell000022102111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022102111)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022102111))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022102111))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHH + thetaAboveCell000022102111))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHH + thetaAboveCell000022102111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022102111)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022102111))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022102111))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022102111))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022102111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022102111)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022102111))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022102111))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022102111))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022102111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022102111))) h)) + +theorem cover_subtree_100b7236ad12 : + adaptiveCoverCheck 7 thetaAboveCell000022102111 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022102111 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022102111) + (by + have h : ((childLL (childLL thetaAboveCell000022102111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022102111)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022102111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022102111)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022102111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022102111)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022102111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022102111)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022102111) + (by + have h : ((childLL (childLH thetaAboveCell000022102111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022102111)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022102111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022102111)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022102111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022102111)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022102111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022102111)) h)) + cover_subtree_4bc40a8305e2 + cover_subtree_bc2667f250d6 + +theorem cover_subtree_968e16bde444 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022102112) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022102112) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022102112)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022102112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022102112))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022102112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022102112))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022102112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022102112))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022102112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022102112))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022102112)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022102112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022102112))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022102112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022102112))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022102112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022102112))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022102112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022102112))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022102112)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022102112)) h) + +theorem cover_subtree_069815638772 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022102112) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022102112) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022102112)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022102112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022102112))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022102112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022102112))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022102112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022102112))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022102112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022102112))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022102112)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022102112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022102112))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022102112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022102112))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022102112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022102112))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022102112)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022102112))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022102112)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022102112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022102112)) h) + +theorem cover_subtree_da19516a51b8 : + adaptiveCoverCheck 7 thetaAboveCell000022102112 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022102112 + cover_subtree_968e16bde444 + cover_subtree_069815638772 + (by + have h : ((childHL thetaAboveCell000022102112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022102112) h) + (by + have h : ((childHH thetaAboveCell000022102112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022102112) h) + +theorem cover_subtree_7602df0c45bd : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022102113) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022102113) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022102113)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022102113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022102113))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022102113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022102113))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022102113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022102113))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022102113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022102113))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022102113)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022102113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022102113))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022102113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022102113))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022102113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022102113))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022102113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022102113))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022102113)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022102113)) h) + +theorem cover_subtree_4f04fe0498c3 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022102113) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022102113) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022102113)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022102113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022102113))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022102113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022102113))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022102113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022102113))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022102113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022102113))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022102113)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022102113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022102113))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022102113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022102113))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022102113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022102113))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022102113)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022102113))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022102113)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022102113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022102113)) h) + +theorem cover_subtree_69b60a777b1c : + adaptiveCoverCheck 7 thetaAboveCell000022102113 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022102113 + cover_subtree_7602df0c45bd + cover_subtree_4f04fe0498c3 + (by + have h : ((childHL thetaAboveCell000022102113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022102113) h) + (by + have h : ((childHH thetaAboveCell000022102113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022102113) h) + +theorem cover_subtree_13f3502e8052 : + adaptiveCoverCheck 8 (childLH (childLH (childHL thetaAboveCell00002210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL thetaAboveCell00002210))) + cover_subtree_2be474cb7a0f + cover_subtree_100b7236ad12 + cover_subtree_da19516a51b8 + cover_subtree_69b60a777b1c + +theorem e24KC2ThetaAboveLeaf0000221021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00002210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00002210)) + cover_subtree_6fb265308e16 + cover_subtree_13f3502e8052 + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL + thetaAboveCell00002210))) + (by + have h : (thetaAboveCell000022102120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022102120 h) + (by + have h : (thetaAboveCell000022102121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022102121 h) + (by + have h : (thetaAboveCell000022102122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022102122 h) + (by + have h : (thetaAboveCell000022102123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022102123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL + thetaAboveCell00002210))) + (by + have h : (thetaAboveCell000022102130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022102130 h) + (by + have h : (thetaAboveCell000022102131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022102131 h) + (by + have h : (thetaAboveCell000022102132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022102132 h) + (by + have h : (thetaAboveCell000022102133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022102133 h)) +theorem e24KC2ThetaAboveLeaf0000221022 : + adaptiveCoverCheck 9 (childHL (childHL thetaAboveCell00002210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHL (childHL thetaAboveCell00002210)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHL (childHL + thetaAboveCell00002210))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHL (childHL + thetaAboveCell00002210))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHL (childHL + thetaAboveCell00002210))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHL (childHL + thetaAboveCell00002210))) h) +theorem e24KC2ThetaAboveLeaf0000221023 : + adaptiveCoverCheck 9 (childHH (childHL thetaAboveCell00002210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childHH (childHL thetaAboveCell00002210)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLL (childHH (childHL + thetaAboveCell00002210))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childLH (childHH (childHL + thetaAboveCell00002210))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHL (childHH (childHL + thetaAboveCell00002210))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell00002210)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 8 (childHH (childHH (childHL + thetaAboveCell00002210))) h) +theorem cover_subtree_4e4a856a348d : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022103000) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022103000) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022103000)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022103000))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022103000))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHL + thetaAboveCell000022103000))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHL + thetaAboveCell000022103000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022103000)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022103000))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022103000))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHL + thetaAboveCell000022103000))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHL + thetaAboveCell000022103000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022103000)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022103000))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022103000))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022103000))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022103000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022103000)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022103000))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022103000))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022103000))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022103000))) h)) + +theorem cover_subtree_a9ec07ce774e : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022103000) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022103000) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022103000)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022103000))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022103000))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHH + thetaAboveCell000022103000))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHH + thetaAboveCell000022103000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022103000)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022103000))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022103000))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHH + thetaAboveCell000022103000))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHH + thetaAboveCell000022103000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022103000)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022103000))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022103000))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022103000))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022103000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022103000)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022103000))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022103000))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022103000))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022103000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022103000))) h)) + +theorem cover_subtree_4f8bdd1a7038 : + adaptiveCoverCheck 7 thetaAboveCell000022103000 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022103000 + (by + have h : ((childLL thetaAboveCell000022103000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022103000) h) + (by + have h : ((childLH thetaAboveCell000022103000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022103000) h) + cover_subtree_4e4a856a348d + cover_subtree_a9ec07ce774e + +theorem cover_subtree_45d6d513875c : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022103001) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022103001) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022103001)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022103001))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022103001))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHL + thetaAboveCell000022103001))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHL + thetaAboveCell000022103001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022103001)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022103001))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022103001))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHL + thetaAboveCell000022103001))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHL + thetaAboveCell000022103001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022103001)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022103001))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022103001))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022103001))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022103001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022103001)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022103001))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022103001))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022103001))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022103001))) h)) + +theorem cover_subtree_e48f2ce51ae0 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022103001) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022103001) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022103001)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022103001))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022103001))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHH + thetaAboveCell000022103001))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHH + thetaAboveCell000022103001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022103001)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022103001))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022103001))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHH + thetaAboveCell000022103001))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHH + thetaAboveCell000022103001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022103001)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022103001))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022103001))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022103001))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022103001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022103001)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022103001))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022103001))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022103001))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022103001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022103001))) h)) + +theorem cover_subtree_3fbacc491dec : + adaptiveCoverCheck 7 thetaAboveCell000022103001 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022103001 + (by + have h : ((childLL thetaAboveCell000022103001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022103001) h) + (by + have h : ((childLH thetaAboveCell000022103001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022103001) h) + cover_subtree_45d6d513875c + cover_subtree_e48f2ce51ae0 + +theorem cover_subtree_c5ade50b08f1 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022103002) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022103002) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022103002)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022103002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022103002))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022103002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022103002))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022103002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022103002))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022103002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022103002))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022103002)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022103002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022103002))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022103002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022103002))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022103002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022103002))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022103002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022103002))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022103002)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022103002)) h) + +theorem cover_subtree_65c0c0fb0c61 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022103002) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022103002) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022103002)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022103002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022103002))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022103002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022103002))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022103002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022103002))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022103002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022103002))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022103002)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022103002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022103002))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022103002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022103002))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022103002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022103002))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022103002)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022103002))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022103002)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022103002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022103002)) h) + +theorem cover_subtree_81fc74c0ffd0 : + adaptiveCoverCheck 7 thetaAboveCell000022103002 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022103002 + cover_subtree_c5ade50b08f1 + cover_subtree_65c0c0fb0c61 + (by + have h : ((childHL thetaAboveCell000022103002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022103002) h) + (by + have h : ((childHH thetaAboveCell000022103002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022103002) h) + +theorem cover_subtree_7eb489ebb172 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022103003) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022103003) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022103003)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022103003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022103003))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022103003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022103003))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022103003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022103003))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022103003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022103003))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022103003)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022103003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022103003))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022103003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022103003))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022103003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022103003))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022103003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022103003))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022103003)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022103003)) h) + +theorem cover_subtree_f21141f5d5d1 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022103003) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022103003) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022103003)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022103003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022103003))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022103003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022103003))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022103003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022103003))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022103003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022103003))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022103003)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022103003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022103003))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022103003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022103003))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022103003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022103003))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022103003)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022103003))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022103003)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022103003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022103003)) h) + +theorem cover_subtree_ac4f9a09671e : + adaptiveCoverCheck 7 thetaAboveCell000022103003 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022103003 + cover_subtree_7eb489ebb172 + cover_subtree_f21141f5d5d1 + (by + have h : ((childHL thetaAboveCell000022103003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022103003) h) + (by + have h : ((childHH thetaAboveCell000022103003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022103003) h) + +theorem cover_subtree_dc732abf341f : + adaptiveCoverCheck 8 (childLL (childLL (childHH thetaAboveCell00002210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHH thetaAboveCell00002210))) + cover_subtree_4f8bdd1a7038 + cover_subtree_3fbacc491dec + cover_subtree_81fc74c0ffd0 + cover_subtree_ac4f9a09671e + +theorem cover_subtree_4c23e9a4e125 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022103010) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022103010) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022103010)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022103010))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022103010))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHL + thetaAboveCell000022103010))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHL + thetaAboveCell000022103010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022103010)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022103010))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022103010))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHL + thetaAboveCell000022103010))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHL + thetaAboveCell000022103010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022103010)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022103010))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022103010))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022103010))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022103010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022103010)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022103010))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022103010))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022103010))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022103010))) h)) + +theorem cover_subtree_100c345ae68a : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022103010) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022103010) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022103010)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022103010))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022103010))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHH + thetaAboveCell000022103010))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHH + thetaAboveCell000022103010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022103010)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022103010))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022103010))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHH + thetaAboveCell000022103010))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHH + thetaAboveCell000022103010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022103010)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022103010))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022103010))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022103010))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022103010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022103010)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022103010))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022103010))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022103010))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022103010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022103010))) h)) + +theorem cover_subtree_712a58fdc8d3 : + adaptiveCoverCheck 7 thetaAboveCell000022103010 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022103010 + (by + have h : ((childLL thetaAboveCell000022103010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022103010) h) + (by + have h : ((childLH thetaAboveCell000022103010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022103010) h) + cover_subtree_4c23e9a4e125 + cover_subtree_100c345ae68a + +theorem cover_subtree_38c5b4ed074a : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022103011) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022103011) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022103011)) + (by + have h : ((childLL (childLL (childHL thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHL + thetaAboveCell000022103011))) h) + (by + have h : ((childLH (childLL (childHL thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHL + thetaAboveCell000022103011))) h) + (by + have h : ((childHL (childLL (childHL thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHL + thetaAboveCell000022103011))) h) + (by + have h : ((childHH (childLL (childHL thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHL + thetaAboveCell000022103011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022103011)) + (by + have h : ((childLL (childLH (childHL thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHL + thetaAboveCell000022103011))) h) + (by + have h : ((childLH (childLH (childHL thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHL + thetaAboveCell000022103011))) h) + (by + have h : ((childHL (childLH (childHL thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHL + thetaAboveCell000022103011))) h) + (by + have h : ((childHH (childLH (childHL thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHL + thetaAboveCell000022103011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022103011)) + (by + have h : ((childLL (childHL (childHL thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHL + thetaAboveCell000022103011))) h) + (by + have h : ((childLH (childHL (childHL thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHL + thetaAboveCell000022103011))) h) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022103011))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022103011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022103011)) + (by + have h : ((childLL (childHH (childHL thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHL + thetaAboveCell000022103011))) h) + (by + have h : ((childLH (childHH (childHL thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHL + thetaAboveCell000022103011))) h) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022103011))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022103011))) h)) + +theorem cover_subtree_0e2d12c802dd : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022103011) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022103011) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022103011)) + (by + have h : ((childLL (childLL (childHH thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childHH + thetaAboveCell000022103011))) h) + (by + have h : ((childLH (childLL (childHH thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childHH + thetaAboveCell000022103011))) h) + (by + have h : ((childHL (childLL (childHH thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childHH + thetaAboveCell000022103011))) h) + (by + have h : ((childHH (childLL (childHH thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childHH + thetaAboveCell000022103011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022103011)) + (by + have h : ((childLL (childLH (childHH thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childHH + thetaAboveCell000022103011))) h) + (by + have h : ((childLH (childLH (childHH thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childHH + thetaAboveCell000022103011))) h) + (by + have h : ((childHL (childLH (childHH thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childHH + thetaAboveCell000022103011))) h) + (by + have h : ((childHH (childLH (childHH thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childHH + thetaAboveCell000022103011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022103011)) + (by + have h : ((childLL (childHL (childHH thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childHH + thetaAboveCell000022103011))) h) + (by + have h : ((childLH (childHL (childHH thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childHH + thetaAboveCell000022103011))) h) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022103011))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022103011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022103011)) + (by + have h : ((childLL (childHH (childHH thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childHH + thetaAboveCell000022103011))) h) + (by + have h : ((childLH (childHH (childHH thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childHH + thetaAboveCell000022103011))) h) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022103011))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022103011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022103011))) h)) + +theorem cover_subtree_cb9f911d2fd7 : + adaptiveCoverCheck 7 thetaAboveCell000022103011 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022103011 + (by + have h : ((childLL thetaAboveCell000022103011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLL thetaAboveCell000022103011) h) + (by + have h : ((childLH thetaAboveCell000022103011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childLH thetaAboveCell000022103011) h) + cover_subtree_38c5b4ed074a + cover_subtree_0e2d12c802dd + +theorem cover_subtree_f068368a2274 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022103012) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022103012) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022103012)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022103012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022103012))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022103012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022103012))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022103012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022103012))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022103012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022103012))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022103012)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022103012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022103012))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022103012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022103012))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022103012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022103012))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022103012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022103012))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022103012)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022103012)) h) + +theorem cover_subtree_2a95bb96602e : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022103012) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022103012) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022103012)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022103012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022103012))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022103012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022103012))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022103012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022103012))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022103012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022103012))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022103012)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022103012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022103012))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022103012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022103012))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022103012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022103012))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022103012)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022103012))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022103012)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022103012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022103012)) h) + +theorem cover_subtree_75584557442b : + adaptiveCoverCheck 7 thetaAboveCell000022103012 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022103012 + cover_subtree_f068368a2274 + cover_subtree_2a95bb96602e + (by + have h : ((childHL thetaAboveCell000022103012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022103012) h) + (by + have h : ((childHH thetaAboveCell000022103012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022103012) h) + +theorem cover_subtree_5dbf852f82f6 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022103013) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022103013) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLL thetaAboveCell000022103013)) + (by + have h : ((childLL (childLL (childLL thetaAboveCell000022103013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLL + thetaAboveCell000022103013))) h) + (by + have h : ((childLH (childLL (childLL thetaAboveCell000022103013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLL + thetaAboveCell000022103013))) h) + (by + have h : ((childHL (childLL (childLL thetaAboveCell000022103013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLL + thetaAboveCell000022103013))) h) + (by + have h : ((childHH (childLL (childLL thetaAboveCell000022103013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLL + thetaAboveCell000022103013))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLL thetaAboveCell000022103013)) + (by + have h : ((childLL (childLH (childLL thetaAboveCell000022103013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLL + thetaAboveCell000022103013))) h) + (by + have h : ((childLH (childLH (childLL thetaAboveCell000022103013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLL + thetaAboveCell000022103013))) h) + (by + have h : ((childHL (childLH (childLL thetaAboveCell000022103013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLL + thetaAboveCell000022103013))) h) + (by + have h : ((childHH (childLH (childLL thetaAboveCell000022103013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLL + thetaAboveCell000022103013))) h)) + (by + have h : ((childHL (childLL thetaAboveCell000022103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL thetaAboveCell000022103013)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL thetaAboveCell000022103013)) h) + +theorem cover_subtree_4ebc7849af7a : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022103013) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022103013) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childLH thetaAboveCell000022103013)) + (by + have h : ((childLL (childLL (childLH thetaAboveCell000022103013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL (childLH + thetaAboveCell000022103013))) h) + (by + have h : ((childLH (childLL (childLH thetaAboveCell000022103013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL (childLH + thetaAboveCell000022103013))) h) + (by + have h : ((childHL (childLL (childLH thetaAboveCell000022103013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL (childLH + thetaAboveCell000022103013))) h) + (by + have h : ((childHH (childLL (childLH thetaAboveCell000022103013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL (childLH + thetaAboveCell000022103013))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childLH thetaAboveCell000022103013)) + (by + have h : ((childLL (childLH (childLH thetaAboveCell000022103013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH (childLH + thetaAboveCell000022103013))) h) + (by + have h : ((childLH (childLH (childLH thetaAboveCell000022103013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH (childLH + thetaAboveCell000022103013))) h) + (by + have h : ((childHL (childLH (childLH thetaAboveCell000022103013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH (childLH + thetaAboveCell000022103013))) h) + (by + have h : ((childHH (childLH (childLH thetaAboveCell000022103013)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH (childLH + thetaAboveCell000022103013))) h)) + (by + have h : ((childHL (childLH thetaAboveCell000022103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH thetaAboveCell000022103013)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022103013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH thetaAboveCell000022103013)) h) + +theorem cover_subtree_e5feda84d791 : + adaptiveCoverCheck 7 thetaAboveCell000022103013 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022103013 + cover_subtree_5dbf852f82f6 + cover_subtree_4ebc7849af7a + (by + have h : ((childHL thetaAboveCell000022103013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022103013) h) + (by + have h : ((childHH thetaAboveCell000022103013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022103013) h) + +theorem cover_subtree_7644ff41fef4 : + adaptiveCoverCheck 8 (childLH (childLL (childHH thetaAboveCell00002210))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHH thetaAboveCell00002210))) + cover_subtree_712a58fdc8d3 + cover_subtree_cb9f911d2fd7 + cover_subtree_75584557442b + cover_subtree_e5feda84d791 + +theorem e24KC2ThetaAboveLeaf0000221030 : + adaptiveCoverCheck 9 (childLL (childHH thetaAboveCell00002210)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHH thetaAboveCell00002210)) + cover_subtree_dc732abf341f + cover_subtree_7644ff41fef4 + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHH + thetaAboveCell00002210))) + (by + have h : (thetaAboveCell000022103020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022103020 h) + (by + have h : (thetaAboveCell000022103021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022103021 h) + (by + have h : (thetaAboveCell000022103022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022103022 h) + (by + have h : (thetaAboveCell000022103023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022103023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHH + thetaAboveCell00002210))) + (by + have h : (thetaAboveCell000022103030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022103030 h) + (by + have h : (thetaAboveCell000022103031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022103031 h) + (by + have h : (thetaAboveCell000022103032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022103032 h) + (by + have h : (thetaAboveCell000022103033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022103033 h)) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsea4abf6409 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsea4abf6409 + +open CertificateCellsea4abf6409 +theorem e24KC2ThetaAboveLeaf0000220021_c0_c0_c3_c3 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022002100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022002100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022002100))) + (by + have h : (thetaAboveCell0000220021003300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003300 h) + (by + have h : (thetaAboveCell0000220021003301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003301 h) + (by + have h : (thetaAboveCell0000220021003302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003302 h) + (by + have h : (thetaAboveCell0000220021003303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022002100))) + (by + have h : (thetaAboveCell0000220021003310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003310 h) + (by + have h : (thetaAboveCell0000220021003311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003311 h) + (by + have h : (thetaAboveCell0000220021003312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003312 h) + (by + have h : (thetaAboveCell0000220021003313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022002100))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022002100))) h) + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle019.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle019.lean new file mode 100644 index 0000000000..849bcc3ca6 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle019.lean @@ -0,0 +1,10233 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch032`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCells27082ce600 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113010 : AngleCell := + childLL (childLH (childLL (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331130100210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100210 : AngleCell := + childLL (childLH (childHL (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100211 : AngleCell := + childLH (childLH (childHL (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100212 : AngleCell := + childHL (childLH (childHL (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100213 : AngleCell := + childHH (childLH (childHL (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100220 : AngleCell := + childLL (childHL (childHL (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100221 : AngleCell := + childLH (childHL (childHL (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100222 : AngleCell := + childHL (childHL (childHL (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100223 : AngleCell := + childHH (childHL (childHL (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100230 : AngleCell := + childLL (childHH (childHL (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100231 : AngleCell := + childLH (childHH (childHL (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100232 : AngleCell := + childHL (childHH (childHL (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100233 : AngleCell := + childHH (childHH (childHL (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100300 : AngleCell := + childLL (childLL (childHH (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100301 : AngleCell := + childLH (childLL (childHH (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100302 : AngleCell := + childHL (childLL (childHH (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100303 : AngleCell := + childHH (childLL (childHH (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100310 : AngleCell := + childLL (childLH (childHH (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100311 : AngleCell := + childLH (childLH (childHH (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100312 : AngleCell := + childHL (childLH (childHH (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100313 : AngleCell := + childHH (childLH (childHH (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100320 : AngleCell := + childLL (childHL (childHH (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100321 : AngleCell := + childLH (childHL (childHH (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100322 : AngleCell := + childHL (childHL (childHH (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100323 : AngleCell := + childHH (childHL (childHH (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100330 : AngleCell := + childLL (childHH (childHH (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100331 : AngleCell := + childLH (childHH (childHH (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100332 : AngleCell := + childHL (childHH (childHH (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130100333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130100333 : AngleCell := + childHH (childHH (childHH (childLL thetaBelowCell111133113010))) + +/-- Subcell `1111331130101020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101020 : AngleCell := + childLL (childHL (childLL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101021 : AngleCell := + childLH (childHL (childLL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101022 : AngleCell := + childHL (childHL (childLL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101023 : AngleCell := + childHH (childHL (childLL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101030 : AngleCell := + childLL (childHH (childLL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101031 : AngleCell := + childLH (childHH (childLL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101032 : AngleCell := + childHL (childHH (childLL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101033 : AngleCell := + childHH (childHH (childLL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101120 : AngleCell := + childLL (childHL (childLH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101121 : AngleCell := + childLH (childHL (childLH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101122 : AngleCell := + childHL (childHL (childLH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101123 : AngleCell := + childHH (childHL (childLH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101130 : AngleCell := + childLL (childHH (childLH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101131 : AngleCell := + childLH (childHH (childLH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101132 : AngleCell := + childHL (childHH (childLH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101133 : AngleCell := + childHH (childHH (childLH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101200 : AngleCell := + childLL (childLL (childHL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101201 : AngleCell := + childLH (childLL (childHL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101202 : AngleCell := + childHL (childLL (childHL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101203 : AngleCell := + childHH (childLL (childHL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101210 : AngleCell := + childLL (childLH (childHL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101211 : AngleCell := + childLH (childLH (childHL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101212 : AngleCell := + childHL (childLH (childHL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101213 : AngleCell := + childHH (childLH (childHL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101220 : AngleCell := + childLL (childHL (childHL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101221 : AngleCell := + childLH (childHL (childHL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101222 : AngleCell := + childHL (childHL (childHL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101223 : AngleCell := + childHH (childHL (childHL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101230 : AngleCell := + childLL (childHH (childHL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101231 : AngleCell := + childLH (childHH (childHL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101232 : AngleCell := + childHL (childHH (childHL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101233 : AngleCell := + childHH (childHH (childHL (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101300 : AngleCell := + childLL (childLL (childHH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101301 : AngleCell := + childLH (childLL (childHH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101302 : AngleCell := + childHL (childLL (childHH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101303 : AngleCell := + childHH (childLL (childHH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101310 : AngleCell := + childLL (childLH (childHH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101311 : AngleCell := + childLH (childLH (childHH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101312 : AngleCell := + childHL (childLH (childHH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101313 : AngleCell := + childHH (childLH (childHH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101320 : AngleCell := + childLL (childHL (childHH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101321 : AngleCell := + childLH (childHL (childHH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101322 : AngleCell := + childHL (childHL (childHH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101323 : AngleCell := + childHH (childHL (childHH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101330 : AngleCell := + childLL (childHH (childHH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101331 : AngleCell := + childLH (childHH (childHH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101332 : AngleCell := + childHL (childHH (childHH (childLH thetaBelowCell111133113010))) + +/-- Subcell `1111331130101333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130101333 : AngleCell := + childHH (childHH (childHH (childLH thetaBelowCell111133113010))) + +end GerverSofa.PartE.CertificateCells27082ce600 + +namespace GerverSofa.PartE.CertificateCellsc3c599388b + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113120 : AngleCell := + childLL (childHL (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `111133113121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113121 : AngleCell := + childLH (childHL (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `111133113122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113122 : AngleCell := + childHL (childHL (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `111133113123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113123 : AngleCell := + childHH (childHL (childLH (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCellsc3c599388b + +namespace GerverSofa.PartE.CertificateCells6f9c2931ea + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `000022002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `000022002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `000022002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells6f9c2931ea + +namespace GerverSofa.PartE.CertificateCells5955d51af9 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220021013000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022002101))) + +/-- Subcell `0000220021013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022002101))) + +end GerverSofa.PartE.CertificateCells5955d51af9 + +namespace GerverSofa.PartE.CertificateCellsde04ff5fef + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113100 : AngleCell := + childLL (childLL (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331131000020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000020 : AngleCell := + childLL (childHL (childLL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000021 : AngleCell := + childLH (childHL (childLL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000022 : AngleCell := + childHL (childHL (childLL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000023 : AngleCell := + childHH (childHL (childLL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000030 : AngleCell := + childLL (childHH (childLL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000031 : AngleCell := + childLH (childHH (childLL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000032 : AngleCell := + childHL (childHH (childLL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000033 : AngleCell := + childHH (childHH (childLL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000120 : AngleCell := + childLL (childHL (childLH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000121 : AngleCell := + childLH (childHL (childLH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000122 : AngleCell := + childHL (childHL (childLH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000123 : AngleCell := + childHH (childHL (childLH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000130 : AngleCell := + childLL (childHH (childLH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000131 : AngleCell := + childLH (childHH (childLH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000132 : AngleCell := + childHL (childHH (childLH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000133 : AngleCell := + childHH (childHH (childLH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000200 : AngleCell := + childLL (childLL (childHL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000201 : AngleCell := + childLH (childLL (childHL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000202 : AngleCell := + childHL (childLL (childHL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000203 : AngleCell := + childHH (childLL (childHL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000210 : AngleCell := + childLL (childLH (childHL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000211 : AngleCell := + childLH (childLH (childHL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000212 : AngleCell := + childHL (childLH (childHL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000213 : AngleCell := + childHH (childLH (childHL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000220 : AngleCell := + childLL (childHL (childHL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000221 : AngleCell := + childLH (childHL (childHL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000222 : AngleCell := + childHL (childHL (childHL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000223 : AngleCell := + childHH (childHL (childHL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000230 : AngleCell := + childLL (childHH (childHL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000231 : AngleCell := + childLH (childHH (childHL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000232 : AngleCell := + childHL (childHH (childHL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000233 : AngleCell := + childHH (childHH (childHL (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000300 : AngleCell := + childLL (childLL (childHH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000301 : AngleCell := + childLH (childLL (childHH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000302 : AngleCell := + childHL (childLL (childHH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000303 : AngleCell := + childHH (childLL (childHH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000310 : AngleCell := + childLL (childLH (childHH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000311 : AngleCell := + childLH (childLH (childHH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000312 : AngleCell := + childHL (childLH (childHH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000313 : AngleCell := + childHH (childLH (childHH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000320 : AngleCell := + childLL (childHL (childHH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000321 : AngleCell := + childLH (childHL (childHH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000322 : AngleCell := + childHL (childHL (childHH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000323 : AngleCell := + childHH (childHL (childHH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000330 : AngleCell := + childLL (childHH (childHH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000331 : AngleCell := + childLH (childHH (childHH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000332 : AngleCell := + childHL (childHH (childHH (childLL thetaBelowCell111133113100))) + +/-- Subcell `1111331131000333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131000333 : AngleCell := + childHH (childHH (childHH (childLL thetaBelowCell111133113100))) + +end GerverSofa.PartE.CertificateCellsde04ff5fef + +namespace GerverSofa.PartE.CertificateCells750522796b + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113102 : AngleCell := + childHL (childLL (childLH (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCells750522796b + +namespace GerverSofa.PartE.CertificateCells99ba2b246f + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220021012100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022002101))) + +end GerverSofa.PartE.CertificateCells99ba2b246f + +namespace GerverSofa.PartE.CertificateCells6443c5ba4b + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220021112000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022002111))) + +/-- Subcell `0000220021112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022002111))) + +end GerverSofa.PartE.CertificateCells6443c5ba4b + +namespace GerverSofa.PartE.CertificateCells03dbb8f506 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells03dbb8f506 + +namespace GerverSofa.PartE.CertificateCells15b8ca5094 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220021012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022002101))) + +end GerverSofa.PartE.CertificateCells15b8ca5094 + +namespace GerverSofa.PartE.CertificateCellsecf9e4e90b + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCellsecf9e4e90b + +namespace GerverSofa.PartE.CertificateCellsdb6ee29ee4 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220021103000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022002110))) + +/-- Subcell `0000220021103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022002110))) + +end GerverSofa.PartE.CertificateCellsdb6ee29ee4 + +namespace GerverSofa.PartE.CertificateCells4003309a28 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `000022002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `000022002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `000022002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells4003309a28 + +namespace GerverSofa.PartE.CertificateCellsf3f1dbc459 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220021002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022002100))) + +end GerverSofa.PartE.CertificateCellsf3f1dbc459 + +namespace GerverSofa.PartE.CertificateCells441cc2b0d8 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331131113100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113100 : AngleCell := + childLL (childLL (childLH (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113101 : AngleCell := + childLH (childLL (childLH (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113102 : AngleCell := + childHL (childLL (childLH (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113103 : AngleCell := + childHH (childLL (childLH (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113110 : AngleCell := + childLL (childLH (childLH (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113112 : AngleCell := + childHL (childLH (childLH (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113113 : AngleCell := + childHH (childLH (childLH (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113120 : AngleCell := + childLL (childHL (childLH (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113121 : AngleCell := + childLH (childHL (childLH (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113122 : AngleCell := + childHL (childHL (childLH (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113123 : AngleCell := + childHH (childHL (childLH (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113130 : AngleCell := + childLL (childHH (childLH (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113131 : AngleCell := + childLH (childHH (childLH (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113132 : AngleCell := + childHL (childHH (childLH (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113133 : AngleCell := + childHH (childHH (childLH (childHH thetaBelowCell111133113111))) + +end GerverSofa.PartE.CertificateCells441cc2b0d8 + +namespace GerverSofa.PartE.CertificateCells5980303e93 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells5980303e93 + +namespace GerverSofa.PartE.CertificateCellsa9276513a2 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113112 : AngleCell := + childHL (childLH (childLH (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCellsa9276513a2 + +namespace GerverSofa.PartE.CertificateCells9972cada5a + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +end GerverSofa.PartE.CertificateCells9972cada5a + +namespace GerverSofa.PartE.CertificateCellsa6306b8bb7 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331131112000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112000 : AngleCell := + childLL (childLL (childLL (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112001 : AngleCell := + childLH (childLL (childLL (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112002 : AngleCell := + childHL (childLL (childLL (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112003 : AngleCell := + childHH (childLL (childLL (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112010 : AngleCell := + childLL (childLH (childLL (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112011 : AngleCell := + childLH (childLH (childLL (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112012 : AngleCell := + childHL (childLH (childLL (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112013 : AngleCell := + childHH (childLH (childLL (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112020 : AngleCell := + childLL (childHL (childLL (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112021 : AngleCell := + childLH (childHL (childLL (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112022 : AngleCell := + childHL (childHL (childLL (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112023 : AngleCell := + childHH (childHL (childLL (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112030 : AngleCell := + childLL (childHH (childLL (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112031 : AngleCell := + childLH (childHH (childLL (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112032 : AngleCell := + childHL (childHH (childLL (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112033 : AngleCell := + childHH (childHH (childLL (childHL thetaBelowCell111133113111))) + +end GerverSofa.PartE.CertificateCellsa6306b8bb7 + +namespace GerverSofa.PartE.CertificateCellsc1e1941644 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113101 : AngleCell := + childLH (childLL (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331131012000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131012000 : AngleCell := + childLL (childLL (childLL (childHL thetaBelowCell111133113101))) + +/-- Subcell `1111331131012001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131012001 : AngleCell := + childLH (childLL (childLL (childHL thetaBelowCell111133113101))) + +/-- Subcell `1111331131012002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131012002 : AngleCell := + childHL (childLL (childLL (childHL thetaBelowCell111133113101))) + +/-- Subcell `1111331131012003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131012003 : AngleCell := + childHH (childLL (childLL (childHL thetaBelowCell111133113101))) + +/-- Subcell `1111331131012010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131012010 : AngleCell := + childLL (childLH (childLL (childHL thetaBelowCell111133113101))) + +/-- Subcell `1111331131012011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131012011 : AngleCell := + childLH (childLH (childLL (childHL thetaBelowCell111133113101))) + +/-- Subcell `1111331131012012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131012012 : AngleCell := + childHL (childLH (childLL (childHL thetaBelowCell111133113101))) + +/-- Subcell `1111331131012013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131012013 : AngleCell := + childHH (childLH (childLL (childHL thetaBelowCell111133113101))) + +/-- Subcell `1111331131012100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131012100 : AngleCell := + childLL (childLL (childLH (childHL thetaBelowCell111133113101))) + +/-- Subcell `1111331131012101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131012101 : AngleCell := + childLH (childLL (childLH (childHL thetaBelowCell111133113101))) + +/-- Subcell `1111331131012102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131012102 : AngleCell := + childHL (childLL (childLH (childHL thetaBelowCell111133113101))) + +/-- Subcell `1111331131012103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131012103 : AngleCell := + childHH (childLL (childLH (childHL thetaBelowCell111133113101))) + +/-- Subcell `1111331131012110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131012110 : AngleCell := + childLL (childLH (childLH (childHL thetaBelowCell111133113101))) + +/-- Subcell `1111331131012111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131012111 : AngleCell := + childLH (childLH (childLH (childHL thetaBelowCell111133113101))) + +/-- Subcell `1111331131012112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131012112 : AngleCell := + childHL (childLH (childLH (childHL thetaBelowCell111133113101))) + +/-- Subcell `1111331131012113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131012113 : AngleCell := + childHH (childLH (childLH (childHL thetaBelowCell111133113101))) + +end GerverSofa.PartE.CertificateCellsc1e1941644 + +namespace GerverSofa.PartE.CertificateCells5a169f617b + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells5a169f617b + +namespace GerverSofa.PartE.CertificateCellsc15ab9b9a5 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113013 : AngleCell := + childHH (childLH (childLL (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCellsc15ab9b9a5 + +namespace GerverSofa.PartE.CertificateCells861ec8c785 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells861ec8c785 + +namespace GerverSofa.PartE.CertificateCells854f59bf16 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113000 : AngleCell := + childLL (childLL (childLL (childHH thetaBelowCell11113311))) + +/-- Subcell `111133113001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113001 : AngleCell := + childLH (childLL (childLL (childHH thetaBelowCell11113311))) + +/-- Subcell `111133113002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113002 : AngleCell := + childHL (childLL (childLL (childHH thetaBelowCell11113311))) + +/-- Subcell `111133113003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113003 : AngleCell := + childHH (childLL (childLL (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331130011320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130011320 : AngleCell := + childLL (childHL (childHH (childLH thetaBelowCell111133113001))) + +/-- Subcell `1111331130011321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130011321 : AngleCell := + childLH (childHL (childHH (childLH thetaBelowCell111133113001))) + +/-- Subcell `1111331130011322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130011322 : AngleCell := + childHL (childHL (childHH (childLH thetaBelowCell111133113001))) + +/-- Subcell `1111331130011323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130011323 : AngleCell := + childHH (childHL (childHH (childLH thetaBelowCell111133113001))) + +/-- Subcell `1111331130011330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130011330 : AngleCell := + childLL (childHH (childHH (childLH thetaBelowCell111133113001))) + +/-- Subcell `1111331130011331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130011331 : AngleCell := + childLH (childHH (childHH (childLH thetaBelowCell111133113001))) + +/-- Subcell `1111331130011332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130011332 : AngleCell := + childHL (childHH (childHH (childLH thetaBelowCell111133113001))) + +/-- Subcell `1111331130011333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130011333 : AngleCell := + childHH (childHH (childHH (childLH thetaBelowCell111133113001))) + +end GerverSofa.PartE.CertificateCells854f59bf16 + +namespace GerverSofa.PartE.CertificateCells5153122198 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331131112100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112100 : AngleCell := + childLL (childLL (childLH (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112101 : AngleCell := + childLH (childLL (childLH (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112102 : AngleCell := + childHL (childLL (childLH (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112103 : AngleCell := + childHH (childLL (childLH (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112110 : AngleCell := + childLL (childLH (childLH (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112111 : AngleCell := + childLH (childLH (childLH (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112112 : AngleCell := + childHL (childLH (childLH (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112113 : AngleCell := + childHH (childLH (childLH (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112120 : AngleCell := + childLL (childHL (childLH (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112121 : AngleCell := + childLH (childHL (childLH (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112122 : AngleCell := + childHL (childHL (childLH (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112123 : AngleCell := + childHH (childHL (childLH (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112130 : AngleCell := + childLL (childHH (childLH (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112131 : AngleCell := + childLH (childHH (childLH (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112132 : AngleCell := + childHL (childHH (childLH (childHL thetaBelowCell111133113111))) + +/-- Subcell `1111331131112133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131112133 : AngleCell := + childHH (childHH (childLH (childHL thetaBelowCell111133113111))) + +end GerverSofa.PartE.CertificateCells5153122198 + +namespace GerverSofa.PartE.CertificateCells0a969d2c42 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113110 : AngleCell := + childLL (childLH (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331131102000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131102000 : AngleCell := + childLL (childLL (childLL (childHL thetaBelowCell111133113110))) + +/-- Subcell `1111331131102001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131102001 : AngleCell := + childLH (childLL (childLL (childHL thetaBelowCell111133113110))) + +/-- Subcell `1111331131102002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131102002 : AngleCell := + childHL (childLL (childLL (childHL thetaBelowCell111133113110))) + +/-- Subcell `1111331131102003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131102003 : AngleCell := + childHH (childLL (childLL (childHL thetaBelowCell111133113110))) + +/-- Subcell `1111331131102010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131102010 : AngleCell := + childLL (childLH (childLL (childHL thetaBelowCell111133113110))) + +/-- Subcell `1111331131102011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131102011 : AngleCell := + childLH (childLH (childLL (childHL thetaBelowCell111133113110))) + +/-- Subcell `1111331131102012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131102012 : AngleCell := + childHL (childLH (childLL (childHL thetaBelowCell111133113110))) + +/-- Subcell `1111331131102013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131102013 : AngleCell := + childHH (childLH (childLL (childHL thetaBelowCell111133113110))) + +/-- Subcell `1111331131102100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131102100 : AngleCell := + childLL (childLL (childLH (childHL thetaBelowCell111133113110))) + +/-- Subcell `1111331131102101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131102101 : AngleCell := + childLH (childLL (childLH (childHL thetaBelowCell111133113110))) + +/-- Subcell `1111331131102102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131102102 : AngleCell := + childHL (childLL (childLH (childHL thetaBelowCell111133113110))) + +/-- Subcell `1111331131102103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131102103 : AngleCell := + childHH (childLL (childLH (childHL thetaBelowCell111133113110))) + +/-- Subcell `1111331131102110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131102110 : AngleCell := + childLL (childLH (childLH (childHL thetaBelowCell111133113110))) + +/-- Subcell `1111331131102111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131102111 : AngleCell := + childLH (childLH (childLH (childHL thetaBelowCell111133113110))) + +/-- Subcell `1111331131102112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131102112 : AngleCell := + childHL (childLH (childLH (childHL thetaBelowCell111133113110))) + +/-- Subcell `1111331131102113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131102113 : AngleCell := + childHH (childLH (childLH (childHL thetaBelowCell111133113110))) + +end GerverSofa.PartE.CertificateCells0a969d2c42 + +namespace GerverSofa.PartE.CertificateCells50ae5a428f + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113110 : AngleCell := + childLL (childLH (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331131101220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101220 : AngleCell := + childLL (childHL (childHL (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101221 : AngleCell := + childLH (childHL (childHL (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101222 : AngleCell := + childHL (childHL (childHL (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101223 : AngleCell := + childHH (childHL (childHL (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101230 : AngleCell := + childLL (childHH (childHL (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101231 : AngleCell := + childLH (childHH (childHL (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101232 : AngleCell := + childHL (childHH (childHL (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101233 : AngleCell := + childHH (childHH (childHL (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101200 : AngleCell := + childLL (childLL (childHL (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101201 : AngleCell := + childLH (childLL (childHL (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101202 : AngleCell := + childHL (childLL (childHL (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101203 : AngleCell := + childHH (childLL (childHL (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101210 : AngleCell := + childLL (childLH (childHL (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101211 : AngleCell := + childLH (childLH (childHL (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101212 : AngleCell := + childHL (childLH (childHL (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101213 : AngleCell := + childHH (childLH (childHL (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101320 : AngleCell := + childLL (childHL (childHH (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101321 : AngleCell := + childLH (childHL (childHH (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101322 : AngleCell := + childHL (childHL (childHH (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101323 : AngleCell := + childHH (childHL (childHH (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101330 : AngleCell := + childLL (childHH (childHH (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101331 : AngleCell := + childLH (childHH (childHH (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101332 : AngleCell := + childHL (childHH (childHH (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101333 : AngleCell := + childHH (childHH (childHH (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101300 : AngleCell := + childLL (childLL (childHH (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101301 : AngleCell := + childLH (childLL (childHH (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101302 : AngleCell := + childHL (childLL (childHH (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101303 : AngleCell := + childHH (childLL (childHH (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101310 : AngleCell := + childLL (childLH (childHH (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101311 : AngleCell := + childLH (childLH (childHH (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101312 : AngleCell := + childHL (childLH (childHH (childLH thetaBelowCell111133113110))) + +/-- Subcell `1111331131101313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131101313 : AngleCell := + childHH (childLH (childHH (childLH thetaBelowCell111133113110))) + +end GerverSofa.PartE.CertificateCells50ae5a428f + +namespace GerverSofa.PartE.CertificateCells754567fdeb + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220021012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022002101))) + +end GerverSofa.PartE.CertificateCells754567fdeb + +namespace GerverSofa.PartE.CertificateCells146a7460c7 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220021002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022002100))) + +end GerverSofa.PartE.CertificateCells146a7460c7 + +namespace GerverSofa.PartE.CertificateCells5446bfae87 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113110 : AngleCell := + childLL (childLH (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331131100220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100220 : AngleCell := + childLL (childHL (childHL (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100221 : AngleCell := + childLH (childHL (childHL (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100222 : AngleCell := + childHL (childHL (childHL (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100223 : AngleCell := + childHH (childHL (childHL (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100230 : AngleCell := + childLL (childHH (childHL (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100231 : AngleCell := + childLH (childHH (childHL (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100232 : AngleCell := + childHL (childHH (childHL (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100233 : AngleCell := + childHH (childHH (childHL (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100200 : AngleCell := + childLL (childLL (childHL (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100201 : AngleCell := + childLH (childLL (childHL (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100202 : AngleCell := + childHL (childLL (childHL (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100203 : AngleCell := + childHH (childLL (childHL (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100210 : AngleCell := + childLL (childLH (childHL (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100211 : AngleCell := + childLH (childLH (childHL (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100212 : AngleCell := + childHL (childLH (childHL (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100213 : AngleCell := + childHH (childLH (childHL (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100320 : AngleCell := + childLL (childHL (childHH (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100321 : AngleCell := + childLH (childHL (childHH (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100322 : AngleCell := + childHL (childHL (childHH (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100323 : AngleCell := + childHH (childHL (childHH (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100330 : AngleCell := + childLL (childHH (childHH (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100331 : AngleCell := + childLH (childHH (childHH (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100332 : AngleCell := + childHL (childHH (childHH (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100333 : AngleCell := + childHH (childHH (childHH (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100300 : AngleCell := + childLL (childLL (childHH (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100301 : AngleCell := + childLH (childLL (childHH (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100302 : AngleCell := + childHL (childLL (childHH (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100303 : AngleCell := + childHH (childLL (childHH (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100310 : AngleCell := + childLL (childLH (childHH (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100311 : AngleCell := + childLH (childLH (childHH (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100312 : AngleCell := + childHL (childLH (childHH (childLL thetaBelowCell111133113110))) + +/-- Subcell `1111331131100313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131100313 : AngleCell := + childHH (childLH (childHH (childLL thetaBelowCell111133113110))) + +end GerverSofa.PartE.CertificateCells5446bfae87 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC6R4Subtree01d19858ee032aa8`. +* `KernelOnly.PartE.E24KC6R4Subtree04c8a4da4d3d19a1`. +* `KernelOnly.PartE.E24KC6R4Subtree1033056e03edbb99`. +* `KernelOnly.PartE.E24KC6R4Subtree1952c351f5a890d0`. +* `KernelOnly.PartE.E24KC6R4Subtree1974d41b8023f47d`. +* `KernelOnly.PartE.E24KC6R4Subtree19ea3647d9c4385d`. +* `KernelOnly.PartE.E24KC6R4Subtree1df7325990c509b9`. +* `KernelOnly.PartE.E24KC6R4Subtree1ec47ff132608c89`. +* `KernelOnly.PartE.E24KC6R4Subtree23aa11edc1c0beab`. +* `KernelOnly.PartE.E24KC6R4Subtree291bec528ce09a45`. +* `KernelOnly.PartE.E24KC6R4Subtree31a1bf2506de3a6b`. +* `KernelOnly.PartE.E24KC6R4Subtree35d8a6b024243cfb`. +* `KernelOnly.PartE.E24KC6R4Subtree369cc1bf8a73ac93`. +* `KernelOnly.PartE.E24KC6R4Subtree3bdce31885f964fb`. +* `KernelOnly.PartE.E24KC6R4Subtree3e7c6f0a436cdb12`. +* `KernelOnly.PartE.E24KC6R4Subtree403b497f85c69738`. +* `KernelOnly.PartE.E24KC6R4Subtree428fdb9c294c5957`. +* `KernelOnly.PartE.E24KC6R4Subtree4417485270da2542`. +* `KernelOnly.PartE.E24KC6R4Subtree55d98d161eaa82bf`. +* `KernelOnly.PartE.E24KC6R4Subtree60715e5435db178e`. +* `KernelOnly.PartE.E24KC6R4Subtree60cca7d0a876716e`. +* `KernelOnly.PartE.E24KC6R4Subtree639075a28aed7212`. +* `KernelOnly.PartE.E24KC6R4Subtree6ec7ee50125cb2b8`. +* `KernelOnly.PartE.E24KC6R4Subtree70c72a172c9cfd93`. +* `KernelOnly.PartE.E24KC6R4Subtree70d61ab175d41a4a`. +* `KernelOnly.PartE.E24KC6R4Subtree7734a7147db71699`. +* `KernelOnly.PartE.E24KC6R4Subtree77fe1988ff8cd192`. +* `KernelOnly.PartE.E24KC6R4Subtree7a80e3dfcc4f34f3`. +* `KernelOnly.PartE.E24KC6R4Subtree7a9ec2fb66ec8862`. +* `KernelOnly.PartE.E24KC6R4Subtree7ae79e99a9b79eaf`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells27082ce600 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells27082ce600 + +open CertificateCells27082ce600 +theorem cover_subtree_49690a55e534 : + adaptiveCoverCheck 4 (childHL (childLL thetaBelowCell111133113010)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL thetaBelowCell111133113010)) + (by + have h : ((childLL (childHL (childLL thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childLL + thetaBelowCell111133113010))) h) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHL (childLL + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130100210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100210 h) + (by + have h : (thetaBelowCell1111331130100211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100211 h) + (by + have h : (thetaBelowCell1111331130100212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100212 h) + (by + have h : (thetaBelowCell1111331130100213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHL (childLL + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130100220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100220 h) + (by + have h : (thetaBelowCell1111331130100221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100221 h) + (by + have h : (thetaBelowCell1111331130100222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100222 h) + (by + have h : (thetaBelowCell1111331130100223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHL (childLL + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130100230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100230 h) + (by + have h : (thetaBelowCell1111331130100231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100231 h) + (by + have h : (thetaBelowCell1111331130100232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100232 h) + (by + have h : (thetaBelowCell1111331130100233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100233 h)) + +theorem cover_subtree_ca9ffb091c53 : + adaptiveCoverCheck 4 (childHH (childLL thetaBelowCell111133113010)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL thetaBelowCell111133113010)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHH (childLL + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130100300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100300 h) + (by + have h : (thetaBelowCell1111331130100301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100301 h) + (by + have h : (thetaBelowCell1111331130100302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100302 h) + (by + have h : (thetaBelowCell1111331130100303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHH (childLL + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130100310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100310 h) + (by + have h : (thetaBelowCell1111331130100311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100311 h) + (by + have h : (thetaBelowCell1111331130100312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100312 h) + (by + have h : (thetaBelowCell1111331130100313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHH (childLL + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130100320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100320 h) + (by + have h : (thetaBelowCell1111331130100321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100321 h) + (by + have h : (thetaBelowCell1111331130100322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100322 h) + (by + have h : (thetaBelowCell1111331130100323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHH (childLL + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130100330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100330 h) + (by + have h : (thetaBelowCell1111331130100331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100331 h) + (by + have h : (thetaBelowCell1111331130100332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100332 h) + (by + have h : (thetaBelowCell1111331130100333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130100333 h)) + +theorem cover_subtree_afcf5ef458d7 : + adaptiveCoverCheck 5 (childLL thetaBelowCell111133113010) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133113010) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL thetaBelowCell111133113010)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLL + thetaBelowCell111133113010))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLL + thetaBelowCell111133113010))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLL + thetaBelowCell111133113010))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLL + thetaBelowCell111133113010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL thetaBelowCell111133113010)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLL + thetaBelowCell111133113010))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLL + thetaBelowCell111133113010))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLL + thetaBelowCell111133113010))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLL + thetaBelowCell111133113010))) h)) + cover_subtree_49690a55e534 + cover_subtree_ca9ffb091c53 + +theorem cover_subtree_51fb51ed5b56 : + adaptiveCoverCheck 4 (childLL (childLH thetaBelowCell111133113010)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH thetaBelowCell111133113010)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLH + thetaBelowCell111133113010))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLH + thetaBelowCell111133113010))) h) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childLL (childLH + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130101020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101020 h) + (by + have h : (thetaBelowCell1111331130101021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101021 h) + (by + have h : (thetaBelowCell1111331130101022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101022 h) + (by + have h : (thetaBelowCell1111331130101023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childLL (childLH + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130101030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101030 h) + (by + have h : (thetaBelowCell1111331130101031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101031 h) + (by + have h : (thetaBelowCell1111331130101032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101032 h) + (by + have h : (thetaBelowCell1111331130101033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101033 h)) + +theorem cover_subtree_f305258c7368 : + adaptiveCoverCheck 4 (childLH (childLH thetaBelowCell111133113010)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH thetaBelowCell111133113010)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLH + thetaBelowCell111133113010))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLH + thetaBelowCell111133113010))) h) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childLH (childLH + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130101120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101120 h) + (by + have h : (thetaBelowCell1111331130101121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101121 h) + (by + have h : (thetaBelowCell1111331130101122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101122 h) + (by + have h : (thetaBelowCell1111331130101123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childLH (childLH + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130101130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101130 h) + (by + have h : (thetaBelowCell1111331130101131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101131 h) + (by + have h : (thetaBelowCell1111331130101132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101132 h) + (by + have h : (thetaBelowCell1111331130101133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101133 h)) + +theorem cover_subtree_5599471dbfbf : + adaptiveCoverCheck 4 (childHL (childLH thetaBelowCell111133113010)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH thetaBelowCell111133113010)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHL (childLH + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130101200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101200 h) + (by + have h : (thetaBelowCell1111331130101201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101201 h) + (by + have h : (thetaBelowCell1111331130101202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101202 h) + (by + have h : (thetaBelowCell1111331130101203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHL (childLH + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130101210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101210 h) + (by + have h : (thetaBelowCell1111331130101211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101211 h) + (by + have h : (thetaBelowCell1111331130101212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101212 h) + (by + have h : (thetaBelowCell1111331130101213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHL (childLH + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130101220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101220 h) + (by + have h : (thetaBelowCell1111331130101221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101221 h) + (by + have h : (thetaBelowCell1111331130101222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101222 h) + (by + have h : (thetaBelowCell1111331130101223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHL (childLH + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130101230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101230 h) + (by + have h : (thetaBelowCell1111331130101231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101231 h) + (by + have h : (thetaBelowCell1111331130101232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101232 h) + (by + have h : (thetaBelowCell1111331130101233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101233 h)) + +theorem cover_subtree_5b939cb0e15c : + adaptiveCoverCheck 4 (childHH (childLH thetaBelowCell111133113010)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH thetaBelowCell111133113010)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHH (childLH + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130101300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101300 h) + (by + have h : (thetaBelowCell1111331130101301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101301 h) + (by + have h : (thetaBelowCell1111331130101302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101302 h) + (by + have h : (thetaBelowCell1111331130101303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHH (childLH + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130101310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101310 h) + (by + have h : (thetaBelowCell1111331130101311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101311 h) + (by + have h : (thetaBelowCell1111331130101312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101312 h) + (by + have h : (thetaBelowCell1111331130101313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHH (childLH + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130101320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101320 h) + (by + have h : (thetaBelowCell1111331130101321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101321 h) + (by + have h : (thetaBelowCell1111331130101322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101322 h) + (by + have h : (thetaBelowCell1111331130101323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHH (childLH + thetaBelowCell111133113010))) + (by + have h : (thetaBelowCell1111331130101330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101330 h) + (by + have h : (thetaBelowCell1111331130101331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101331 h) + (by + have h : (thetaBelowCell1111331130101332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101332 h) + (by + have h : (thetaBelowCell1111331130101333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130101333 h)) + +theorem cover_subtree_2f4f93c67946 : + adaptiveCoverCheck 5 (childLH thetaBelowCell111133113010) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133113010) + cover_subtree_51fb51ed5b56 + cover_subtree_f305258c7368 + cover_subtree_5599471dbfbf + cover_subtree_5b939cb0e15c + +theorem cover_subtree_1374b272a307 : + adaptiveCoverCheck 5 (childHL thetaBelowCell111133113010) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133113010) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL thetaBelowCell111133113010)) + (by + have h : ((childLL (childLL (childHL thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childHL + thetaBelowCell111133113010))) h) + (by + have h : ((childLH (childLL (childHL thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childHL + thetaBelowCell111133113010))) h) + (by + have h : ((childHL (childLL (childHL thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childHL + thetaBelowCell111133113010))) h) + (by + have h : ((childHH (childLL (childHL thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childHL + thetaBelowCell111133113010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL thetaBelowCell111133113010)) + (by + have h : ((childLL (childLH (childHL thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childHL + thetaBelowCell111133113010))) h) + (by + have h : ((childLH (childLH (childHL thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childHL + thetaBelowCell111133113010))) h) + (by + have h : ((childHL (childLH (childHL thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childHL + thetaBelowCell111133113010))) h) + (by + have h : ((childHH (childLH (childHL thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childHL + thetaBelowCell111133113010))) h)) + (by + have h : ((childHL (childHL thetaBelowCell111133113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL thetaBelowCell111133113010)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL thetaBelowCell111133113010)) h) + +theorem cover_subtree_91c9f04664e0 : + adaptiveCoverCheck 5 (childHH thetaBelowCell111133113010) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133113010) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH thetaBelowCell111133113010)) + (by + have h : ((childLL (childLL (childHH thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childHH + thetaBelowCell111133113010))) h) + (by + have h : ((childLH (childLL (childHH thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childHH + thetaBelowCell111133113010))) h) + (by + have h : ((childHL (childLL (childHH thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childHH + thetaBelowCell111133113010))) h) + (by + have h : ((childHH (childLL (childHH thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childHH + thetaBelowCell111133113010))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH thetaBelowCell111133113010)) + (by + have h : ((childLL (childLH (childHH thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childHH + thetaBelowCell111133113010))) h) + (by + have h : ((childLH (childLH (childHH thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childHH + thetaBelowCell111133113010))) h) + (by + have h : ((childHL (childLH (childHH thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childHH + thetaBelowCell111133113010))) h) + (by + have h : ((childHH (childLH (childHH thetaBelowCell111133113010)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childHH + thetaBelowCell111133113010))) h)) + (by + have h : ((childHL (childHH thetaBelowCell111133113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH thetaBelowCell111133113010)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH thetaBelowCell111133113010)) h) + +theorem e24KC2ThetaBelowLeaf111133113_c0_c1_c0 : + adaptiveCoverCheck 6 thetaBelowCell111133113010 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133113010 + cover_subtree_afcf5ef458d7 + cover_subtree_2f4f93c67946 + cover_subtree_1374b272a307 + cover_subtree_91c9f04664e0 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc3c599388b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc3c599388b + +open CertificateCellsc3c599388b +theorem e24KC2ThetaBelowLeaf111133113_c1_c2 : + adaptiveCoverCheck 7 (childHL (childLH (childHH thetaBelowCell11113311))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childLH (childHH thetaBelowCell11113311))) + (by + have h : (thetaBelowCell111133113120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133113120 h) + (by + have h : (thetaBelowCell111133113121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133113121 h) + (by + have h : (thetaBelowCell111133113122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133113122 h) + (by + have h : (thetaBelowCell111133113123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133113123 h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6f9c2931ea + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6f9c2931ea + +open CertificateCells6f9c2931ea +theorem e24KC2ThetaAboveLeaf0000220021_c2 : + adaptiveCoverCheck 8 (childHL (childLH (childHL thetaAboveCell00002200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLH (childHL thetaAboveCell00002200))) + (by + have h : (thetaAboveCell000022002120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022002120 h) + (by + have h : (thetaAboveCell000022002121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022002121 h) + (by + have h : (thetaAboveCell000022002122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022002122 h) + (by + have h : (thetaAboveCell000022002123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022002123 h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5955d51af9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5955d51af9 + +open CertificateCells5955d51af9 +theorem cover_subtree_f2e068b42d23 : + adaptiveCoverCheck 4 (childLL (childLL (childHH thetaAboveCell000022002101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHH + thetaAboveCell000022002101))) + (by + have h : (thetaAboveCell0000220021013000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013000 h) + (by + have h : (thetaAboveCell0000220021013001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013001 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013002 + (by + have h : ((childLL thetaAboveCell0000220021013002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013002) h) + (by + have h : ((childLH thetaAboveCell0000220021013002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013002) h) + (by + have h : ((childHL thetaAboveCell0000220021013002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013002) h) + (by + have h : ((childHH thetaAboveCell0000220021013002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013003 + (by + have h : ((childLL thetaAboveCell0000220021013003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013003) h) + (by + have h : ((childLH thetaAboveCell0000220021013003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013003) h) + (by + have h : ((childHL thetaAboveCell0000220021013003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013003) h) + (by + have h : ((childHH thetaAboveCell0000220021013003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013003) h)) + +theorem cover_subtree_6c2a359fbe9a : + adaptiveCoverCheck 4 (childLH (childLL (childHH thetaAboveCell000022002101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHH + thetaAboveCell000022002101))) + (by + have h : (thetaAboveCell0000220021013010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013010 h) + (by + have h : (thetaAboveCell0000220021013011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013011 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013012 + (by + have h : ((childLL thetaAboveCell0000220021013012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013012) h) + (by + have h : ((childLH thetaAboveCell0000220021013012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013012) h) + (by + have h : ((childHL thetaAboveCell0000220021013012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013012) h) + (by + have h : ((childHH thetaAboveCell0000220021013012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013013 + (by + have h : ((childLL thetaAboveCell0000220021013013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013013) h) + (by + have h : ((childLH thetaAboveCell0000220021013013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013013) h) + (by + have h : ((childHL thetaAboveCell0000220021013013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013013) h) + (by + have h : ((childHH thetaAboveCell0000220021013013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013013) h)) + +theorem cover_subtree_fe0ef8f0f647 : + adaptiveCoverCheck 4 (childHL (childLL (childHH thetaAboveCell000022002101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022002101))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013020 + (by + have h : ((childLL thetaAboveCell0000220021013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013020) h) + (by + have h : ((childLH thetaAboveCell0000220021013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013020) h) + (by + have h : ((childHL thetaAboveCell0000220021013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013020) h) + (by + have h : ((childHH thetaAboveCell0000220021013020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013021 + (by + have h : ((childLL thetaAboveCell0000220021013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013021) h) + (by + have h : ((childLH thetaAboveCell0000220021013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013021) h) + (by + have h : ((childHL thetaAboveCell0000220021013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013021) h) + (by + have h : ((childHH thetaAboveCell0000220021013021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013022 + (by + have h : ((childLL thetaAboveCell0000220021013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013022) h) + (by + have h : ((childLH thetaAboveCell0000220021013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013022) h) + (by + have h : ((childHL thetaAboveCell0000220021013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013022) h) + (by + have h : ((childHH thetaAboveCell0000220021013022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013023 + (by + have h : ((childLL thetaAboveCell0000220021013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013023) h) + (by + have h : ((childLH thetaAboveCell0000220021013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013023) h) + (by + have h : ((childHL thetaAboveCell0000220021013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013023) h) + (by + have h : ((childHH thetaAboveCell0000220021013023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013023) h)) + +theorem cover_subtree_fdabca9a4955 : + adaptiveCoverCheck 4 (childHH (childLL (childHH thetaAboveCell000022002101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022002101))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013030 + (by + have h : ((childLL thetaAboveCell0000220021013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013030) h) + (by + have h : ((childLH thetaAboveCell0000220021013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013030) h) + (by + have h : ((childHL thetaAboveCell0000220021013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013030) h) + (by + have h : ((childHH thetaAboveCell0000220021013030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013031 + (by + have h : ((childLL thetaAboveCell0000220021013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013031) h) + (by + have h : ((childLH thetaAboveCell0000220021013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013031) h) + (by + have h : ((childHL thetaAboveCell0000220021013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013031) h) + (by + have h : ((childHH thetaAboveCell0000220021013031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013032 + (by + have h : ((childLL thetaAboveCell0000220021013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013032) h) + (by + have h : ((childLH thetaAboveCell0000220021013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013032) h) + (by + have h : ((childHL thetaAboveCell0000220021013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013032) h) + (by + have h : ((childHH thetaAboveCell0000220021013032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013033 + (by + have h : ((childLL thetaAboveCell0000220021013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013033) h) + (by + have h : ((childLH thetaAboveCell0000220021013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013033) h) + (by + have h : ((childHL thetaAboveCell0000220021013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013033) h) + (by + have h : ((childHH thetaAboveCell0000220021013033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013033) h)) + +theorem cover_subtree_c4b02e6e9e8a : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022002101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022002101)) + cover_subtree_f2e068b42d23 + cover_subtree_6c2a359fbe9a + cover_subtree_fe0ef8f0f647 + cover_subtree_fdabca9a4955 + +theorem cover_subtree_6859a502ecc6 : + adaptiveCoverCheck 4 (childLL (childLH (childHH thetaAboveCell000022002101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHH + thetaAboveCell000022002101))) + (by + have h : (thetaAboveCell0000220021013100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013100 h) + (by + have h : (thetaAboveCell0000220021013101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013101 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013102 + (by + have h : ((childLL thetaAboveCell0000220021013102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013102) h) + (by + have h : ((childLH thetaAboveCell0000220021013102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013102) h) + (by + have h : ((childHL thetaAboveCell0000220021013102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013102) h) + (by + have h : ((childHH thetaAboveCell0000220021013102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013103 + (by + have h : ((childLL thetaAboveCell0000220021013103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013103) h) + (by + have h : ((childLH thetaAboveCell0000220021013103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013103) h) + (by + have h : ((childHL thetaAboveCell0000220021013103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013103) h) + (by + have h : ((childHH thetaAboveCell0000220021013103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013103) h)) + +theorem cover_subtree_f4d742b10a6f : + adaptiveCoverCheck 4 (childLH (childLH (childHH thetaAboveCell000022002101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHH + thetaAboveCell000022002101))) + (by + have h : (thetaAboveCell0000220021013110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013110 h) + (by + have h : (thetaAboveCell0000220021013111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013111 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013112 + (by + have h : ((childLL thetaAboveCell0000220021013112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013112) h) + (by + have h : ((childLH thetaAboveCell0000220021013112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013112) h) + (by + have h : ((childHL thetaAboveCell0000220021013112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013112) h) + (by + have h : ((childHH thetaAboveCell0000220021013112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013113 + (by + have h : ((childLL thetaAboveCell0000220021013113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013113) h) + (by + have h : ((childLH thetaAboveCell0000220021013113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013113) h) + (by + have h : ((childHL thetaAboveCell0000220021013113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013113) h) + (by + have h : ((childHH thetaAboveCell0000220021013113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013113) h)) + +theorem cover_subtree_659abecde61a : + adaptiveCoverCheck 4 (childHL (childLH (childHH thetaAboveCell000022002101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022002101))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013120 + (by + have h : ((childLL thetaAboveCell0000220021013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013120) h) + (by + have h : ((childLH thetaAboveCell0000220021013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013120) h) + (by + have h : ((childHL thetaAboveCell0000220021013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013120) h) + (by + have h : ((childHH thetaAboveCell0000220021013120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013121 + (by + have h : ((childLL thetaAboveCell0000220021013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013121) h) + (by + have h : ((childLH thetaAboveCell0000220021013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013121) h) + (by + have h : ((childHL thetaAboveCell0000220021013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013121) h) + (by + have h : ((childHH thetaAboveCell0000220021013121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013122 + (by + have h : ((childLL thetaAboveCell0000220021013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013122) h) + (by + have h : ((childLH thetaAboveCell0000220021013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013122) h) + (by + have h : ((childHL thetaAboveCell0000220021013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013122) h) + (by + have h : ((childHH thetaAboveCell0000220021013122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013123 + (by + have h : ((childLL thetaAboveCell0000220021013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013123) h) + (by + have h : ((childLH thetaAboveCell0000220021013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013123) h) + (by + have h : ((childHL thetaAboveCell0000220021013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013123) h) + (by + have h : ((childHH thetaAboveCell0000220021013123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013123) h)) + +theorem cover_subtree_ad8d4e6209b9 : + adaptiveCoverCheck 4 (childHH (childLH (childHH thetaAboveCell000022002101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022002101))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013130 + (by + have h : ((childLL thetaAboveCell0000220021013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013130) h) + (by + have h : ((childLH thetaAboveCell0000220021013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013130) h) + (by + have h : ((childHL thetaAboveCell0000220021013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013130) h) + (by + have h : ((childHH thetaAboveCell0000220021013130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013131 + (by + have h : ((childLL thetaAboveCell0000220021013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013131) h) + (by + have h : ((childLH thetaAboveCell0000220021013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013131) h) + (by + have h : ((childHL thetaAboveCell0000220021013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013131) h) + (by + have h : ((childHH thetaAboveCell0000220021013131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013132 + (by + have h : ((childLL thetaAboveCell0000220021013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013132) h) + (by + have h : ((childLH thetaAboveCell0000220021013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013132) h) + (by + have h : ((childHL thetaAboveCell0000220021013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013132) h) + (by + have h : ((childHH thetaAboveCell0000220021013132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021013133 + (by + have h : ((childLL thetaAboveCell0000220021013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021013133) h) + (by + have h : ((childLH thetaAboveCell0000220021013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021013133) h) + (by + have h : ((childHL thetaAboveCell0000220021013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021013133) h) + (by + have h : ((childHH thetaAboveCell0000220021013133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021013133) h)) + +theorem cover_subtree_465622ba8fb4 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022002101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022002101)) + cover_subtree_6859a502ecc6 + cover_subtree_f4d742b10a6f + cover_subtree_659abecde61a + cover_subtree_ad8d4e6209b9 + +theorem cover_subtree_f5a0481cebfc : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022002101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022002101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022002101))) + (by + have h : (thetaAboveCell0000220021013200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013200 h) + (by + have h : (thetaAboveCell0000220021013201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013201 h) + (by + have h : (thetaAboveCell0000220021013202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013202 h) + (by + have h : (thetaAboveCell0000220021013203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022002101))) + (by + have h : (thetaAboveCell0000220021013210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013210 h) + (by + have h : (thetaAboveCell0000220021013211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013211 h) + (by + have h : (thetaAboveCell0000220021013212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013212 h) + (by + have h : (thetaAboveCell0000220021013213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022002101))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022002101))) h) + +theorem cover_subtree_c6ead7987dc9 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022002101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022002101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022002101))) + (by + have h : (thetaAboveCell0000220021013300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013300 h) + (by + have h : (thetaAboveCell0000220021013301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013301 h) + (by + have h : (thetaAboveCell0000220021013302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013302 h) + (by + have h : (thetaAboveCell0000220021013303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022002101))) + (by + have h : (thetaAboveCell0000220021013310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013310 h) + (by + have h : (thetaAboveCell0000220021013311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013311 h) + (by + have h : (thetaAboveCell0000220021013312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013312 h) + (by + have h : (thetaAboveCell0000220021013313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021013313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022002101))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022002101))) h) + +theorem e24KC2ThetaAboveLeaf0000220021_c0_c1_c3 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022002101) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022002101) + cover_subtree_c4b02e6e9e8a + cover_subtree_465622ba8fb4 + cover_subtree_f5a0481cebfc + cover_subtree_c6ead7987dc9 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsde04ff5fef + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsde04ff5fef + +open CertificateCellsde04ff5fef +theorem cover_subtree_0d52430fd500 : + adaptiveCoverCheck 4 (childLL (childLL thetaBelowCell111133113100)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL thetaBelowCell111133113100)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLL + thetaBelowCell111133113100))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLL + thetaBelowCell111133113100))) h) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childLL (childLL + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131000020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000020 h) + (by + have h : (thetaBelowCell1111331131000021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000021 h) + (by + have h : (thetaBelowCell1111331131000022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000022 h) + (by + have h : (thetaBelowCell1111331131000023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childLL (childLL + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131000030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000030 h) + (by + have h : (thetaBelowCell1111331131000031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000031 h) + (by + have h : (thetaBelowCell1111331131000032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000032 h) + (by + have h : (thetaBelowCell1111331131000033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000033 h)) + +theorem cover_subtree_f0f2a49a1c42 : + adaptiveCoverCheck 4 (childLH (childLL thetaBelowCell111133113100)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL thetaBelowCell111133113100)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLL + thetaBelowCell111133113100))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLL + thetaBelowCell111133113100))) h) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childLH (childLL + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131000120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000120 h) + (by + have h : (thetaBelowCell1111331131000121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000121 h) + (by + have h : (thetaBelowCell1111331131000122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000122 h) + (by + have h : (thetaBelowCell1111331131000123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childLH (childLL + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131000130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000130 h) + (by + have h : (thetaBelowCell1111331131000131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000131 h) + (by + have h : (thetaBelowCell1111331131000132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000132 h) + (by + have h : (thetaBelowCell1111331131000133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000133 h)) + +theorem cover_subtree_ac65d29ed71a : + adaptiveCoverCheck 4 (childHL (childLL thetaBelowCell111133113100)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL thetaBelowCell111133113100)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHL (childLL + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131000200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000200 h) + (by + have h : (thetaBelowCell1111331131000201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000201 h) + (by + have h : (thetaBelowCell1111331131000202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000202 h) + (by + have h : (thetaBelowCell1111331131000203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHL (childLL + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131000210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000210 h) + (by + have h : (thetaBelowCell1111331131000211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000211 h) + (by + have h : (thetaBelowCell1111331131000212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000212 h) + (by + have h : (thetaBelowCell1111331131000213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHL (childLL + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131000220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000220 h) + (by + have h : (thetaBelowCell1111331131000221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000221 h) + (by + have h : (thetaBelowCell1111331131000222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000222 h) + (by + have h : (thetaBelowCell1111331131000223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHL (childLL + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131000230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000230 h) + (by + have h : (thetaBelowCell1111331131000231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000231 h) + (by + have h : (thetaBelowCell1111331131000232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000232 h) + (by + have h : (thetaBelowCell1111331131000233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000233 h)) + +theorem cover_subtree_b80d2217aa18 : + adaptiveCoverCheck 4 (childHH (childLL thetaBelowCell111133113100)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL thetaBelowCell111133113100)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHH (childLL + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131000300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000300 h) + (by + have h : (thetaBelowCell1111331131000301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000301 h) + (by + have h : (thetaBelowCell1111331131000302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000302 h) + (by + have h : (thetaBelowCell1111331131000303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHH (childLL + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131000310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000310 h) + (by + have h : (thetaBelowCell1111331131000311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000311 h) + (by + have h : (thetaBelowCell1111331131000312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000312 h) + (by + have h : (thetaBelowCell1111331131000313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHH (childLL + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131000320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000320 h) + (by + have h : (thetaBelowCell1111331131000321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000321 h) + (by + have h : (thetaBelowCell1111331131000322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000322 h) + (by + have h : (thetaBelowCell1111331131000323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHH (childLL + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131000330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000330 h) + (by + have h : (thetaBelowCell1111331131000331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000331 h) + (by + have h : (thetaBelowCell1111331131000332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000332 h) + (by + have h : (thetaBelowCell1111331131000333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131000333 h)) + +theorem e24KC2ThetaBelowLeaf111133113_c1_c0_c0_c0 : + adaptiveCoverCheck 5 (childLL thetaBelowCell111133113100) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133113100) + cover_subtree_0d52430fd500 + cover_subtree_f0f2a49a1c42 + cover_subtree_ac65d29ed71a + cover_subtree_b80d2217aa18 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells750522796b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells750522796b + +open CertificateCells750522796b +theorem e24KC2ThetaBelowLeaf111133113_c1_c0_c2 : + adaptiveCoverCheck 6 thetaBelowCell111133113102 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133113102 + (by + have h : ((childLL thetaBelowCell111133113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133113102) h) + (by + have h : ((childLH thetaBelowCell111133113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133113102) h) + (by + have h : ((childHL thetaBelowCell111133113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133113102) h) + (by + have h : ((childHH thetaBelowCell111133113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133113102) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells99ba2b246f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells99ba2b246f + +open CertificateCells99ba2b246f +theorem cover_subtree_bda1c51066a4 : + adaptiveCoverCheck 4 (childLL (childLH (childHL thetaAboveCell000022002101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHL + thetaAboveCell000022002101))) + (by + have h : (thetaAboveCell0000220021012100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012100 h) + (by + have h : (thetaAboveCell0000220021012101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012101 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012102 + (by + have h : ((childLL thetaAboveCell0000220021012102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021012102) h) + (by + have h : ((childLH thetaAboveCell0000220021012102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021012102) h) + (by + have h : ((childHL thetaAboveCell0000220021012102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012102) h) + (by + have h : ((childHH thetaAboveCell0000220021012102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012103 + (by + have h : ((childLL thetaAboveCell0000220021012103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021012103) h) + (by + have h : ((childLH thetaAboveCell0000220021012103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021012103) h) + (by + have h : ((childHL thetaAboveCell0000220021012103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012103) h) + (by + have h : ((childHH thetaAboveCell0000220021012103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012103) h)) + +theorem cover_subtree_c820aa5287c7 : + adaptiveCoverCheck 4 (childLH (childLH (childHL thetaAboveCell000022002101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHL + thetaAboveCell000022002101))) + (by + have h : (thetaAboveCell0000220021012110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012110 h) + (by + have h : (thetaAboveCell0000220021012111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012111 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012112 + (by + have h : ((childLL thetaAboveCell0000220021012112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021012112) h) + (by + have h : ((childLH thetaAboveCell0000220021012112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021012112) h) + (by + have h : ((childHL thetaAboveCell0000220021012112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012112) h) + (by + have h : ((childHH thetaAboveCell0000220021012112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012113 + (by + have h : ((childLL thetaAboveCell0000220021012113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021012113) h) + (by + have h : ((childLH thetaAboveCell0000220021012113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021012113) h) + (by + have h : ((childHL thetaAboveCell0000220021012113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012113) h) + (by + have h : ((childHH thetaAboveCell0000220021012113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012113) h)) + +theorem cover_subtree_538d3ba3b92e : + adaptiveCoverCheck 3 thetaAboveCell0000220021012120 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012120 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021012120) + (by + have h : ((childLL (childLL thetaAboveCell0000220021012120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021012120)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021012120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021012120)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021012120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021012120)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021012120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021012120)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021012120) + (by + have h : ((childLL (childLH thetaAboveCell0000220021012120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021012120)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021012120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021012120)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021012120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021012120)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021012120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021012120)) h)) + (by + have h : ((childHL thetaAboveCell0000220021012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012120) h) + (by + have h : ((childHH thetaAboveCell0000220021012120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012120) h) + +theorem cover_subtree_ba0b8d4abb41 : + adaptiveCoverCheck 3 thetaAboveCell0000220021012121 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012121 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021012121) + (by + have h : ((childLL (childLL thetaAboveCell0000220021012121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021012121)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021012121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021012121)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021012121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021012121)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021012121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021012121)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021012121) + (by + have h : ((childLL (childLH thetaAboveCell0000220021012121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021012121)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021012121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021012121)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021012121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021012121)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021012121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021012121)) h)) + (by + have h : ((childHL thetaAboveCell0000220021012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012121) h) + (by + have h : ((childHH thetaAboveCell0000220021012121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012121) h) + +theorem cover_subtree_d11d13dd2be9 : + adaptiveCoverCheck 4 (childHL (childLH (childHL thetaAboveCell000022002101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022002101))) + cover_subtree_538d3ba3b92e + cover_subtree_ba0b8d4abb41 + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012122 + (by + have h : ((childLL thetaAboveCell0000220021012122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021012122) h) + (by + have h : ((childLH thetaAboveCell0000220021012122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021012122) h) + (by + have h : ((childHL thetaAboveCell0000220021012122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012122) h) + (by + have h : ((childHH thetaAboveCell0000220021012122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012123 + (by + have h : ((childLL thetaAboveCell0000220021012123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021012123) h) + (by + have h : ((childLH thetaAboveCell0000220021012123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021012123) h) + (by + have h : ((childHL thetaAboveCell0000220021012123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012123) h) + (by + have h : ((childHH thetaAboveCell0000220021012123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012123) h)) + +theorem cover_subtree_60696ffddf60 : + adaptiveCoverCheck 3 thetaAboveCell0000220021012130 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012130 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021012130) + (by + have h : ((childLL (childLL thetaAboveCell0000220021012130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021012130)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021012130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021012130)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021012130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021012130)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021012130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021012130)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021012130) + (by + have h : ((childLL (childLH thetaAboveCell0000220021012130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021012130)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021012130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021012130)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021012130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021012130)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021012130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021012130)) h)) + (by + have h : ((childHL thetaAboveCell0000220021012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012130) h) + (by + have h : ((childHH thetaAboveCell0000220021012130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012130) h) + +theorem cover_subtree_90c18ca6ca12 : + adaptiveCoverCheck 4 (childHH (childLH (childHL thetaAboveCell000022002101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022002101))) + cover_subtree_60696ffddf60 + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012131 + (by + have h : ((childLL thetaAboveCell0000220021012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021012131) h) + (by + have h : ((childLH thetaAboveCell0000220021012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021012131) h) + (by + have h : ((childHL thetaAboveCell0000220021012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012131) h) + (by + have h : ((childHH thetaAboveCell0000220021012131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012132 + (by + have h : ((childLL thetaAboveCell0000220021012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021012132) h) + (by + have h : ((childLH thetaAboveCell0000220021012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021012132) h) + (by + have h : ((childHL thetaAboveCell0000220021012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012132) h) + (by + have h : ((childHH thetaAboveCell0000220021012132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012133 + (by + have h : ((childLL thetaAboveCell0000220021012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021012133) h) + (by + have h : ((childLH thetaAboveCell0000220021012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021012133) h) + (by + have h : ((childHL thetaAboveCell0000220021012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012133) h) + (by + have h : ((childHH thetaAboveCell0000220021012133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012133) h)) + +theorem e24KC2ThetaAboveLeaf0000220021_c0_c1_c2_c1 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022002101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022002101)) + cover_subtree_bda1c51066a4 + cover_subtree_c820aa5287c7 + cover_subtree_d11d13dd2be9 + cover_subtree_90c18ca6ca12 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6443c5ba4b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6443c5ba4b + +open CertificateCells6443c5ba4b +theorem cover_subtree_100284623361 : + adaptiveCoverCheck 4 (childLL (childLL (childHL thetaAboveCell000022002111))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHL + thetaAboveCell000022002111))) + (by + have h : (thetaAboveCell0000220021112000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112000 h) + (by + have h : (thetaAboveCell0000220021112001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112001 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112002 + (by + have h : ((childLL thetaAboveCell0000220021112002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112002) h) + (by + have h : ((childLH thetaAboveCell0000220021112002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112002) h) + (by + have h : ((childHL thetaAboveCell0000220021112002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112002) h) + (by + have h : ((childHH thetaAboveCell0000220021112002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112003 + (by + have h : ((childLL thetaAboveCell0000220021112003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112003) h) + (by + have h : ((childLH thetaAboveCell0000220021112003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112003) h) + (by + have h : ((childHL thetaAboveCell0000220021112003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112003) h) + (by + have h : ((childHH thetaAboveCell0000220021112003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112003) h)) + +theorem cover_subtree_06468370fe05 : + adaptiveCoverCheck 4 (childLH (childLL (childHL thetaAboveCell000022002111))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHL + thetaAboveCell000022002111))) + (by + have h : (thetaAboveCell0000220021112010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112010 h) + (by + have h : (thetaAboveCell0000220021112011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112011 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112012 + (by + have h : ((childLL thetaAboveCell0000220021112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112012) h) + (by + have h : ((childLH thetaAboveCell0000220021112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112012) h) + (by + have h : ((childHL thetaAboveCell0000220021112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112012) h) + (by + have h : ((childHH thetaAboveCell0000220021112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112013 + (by + have h : ((childLL thetaAboveCell0000220021112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112013) h) + (by + have h : ((childLH thetaAboveCell0000220021112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112013) h) + (by + have h : ((childHL thetaAboveCell0000220021112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112013) h) + (by + have h : ((childHH thetaAboveCell0000220021112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112013) h)) + +theorem cover_subtree_a6aeae3aff5e : + adaptiveCoverCheck 4 (childHL (childLL (childHL thetaAboveCell000022002111))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022002111))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112020 + (by + have h : ((childLL thetaAboveCell0000220021112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112020) h) + (by + have h : ((childLH thetaAboveCell0000220021112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112020) h) + (by + have h : ((childHL thetaAboveCell0000220021112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112020) h) + (by + have h : ((childHH thetaAboveCell0000220021112020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112021 + (by + have h : ((childLL thetaAboveCell0000220021112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112021) h) + (by + have h : ((childLH thetaAboveCell0000220021112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112021) h) + (by + have h : ((childHL thetaAboveCell0000220021112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112021) h) + (by + have h : ((childHH thetaAboveCell0000220021112021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112022 + (by + have h : ((childLL thetaAboveCell0000220021112022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112022) h) + (by + have h : ((childLH thetaAboveCell0000220021112022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112022) h) + (by + have h : ((childHL thetaAboveCell0000220021112022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112022) h) + (by + have h : ((childHH thetaAboveCell0000220021112022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112023 + (by + have h : ((childLL thetaAboveCell0000220021112023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112023) h) + (by + have h : ((childLH thetaAboveCell0000220021112023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112023) h) + (by + have h : ((childHL thetaAboveCell0000220021112023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112023) h) + (by + have h : ((childHH thetaAboveCell0000220021112023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112023) h)) + +theorem cover_subtree_e6a5a6a1c8c7 : + adaptiveCoverCheck 4 (childHH (childLL (childHL thetaAboveCell000022002111))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022002111))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112030 + (by + have h : ((childLL thetaAboveCell0000220021112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112030) h) + (by + have h : ((childLH thetaAboveCell0000220021112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112030) h) + (by + have h : ((childHL thetaAboveCell0000220021112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112030) h) + (by + have h : ((childHH thetaAboveCell0000220021112030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112031 + (by + have h : ((childLL thetaAboveCell0000220021112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112031) h) + (by + have h : ((childLH thetaAboveCell0000220021112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112031) h) + (by + have h : ((childHL thetaAboveCell0000220021112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112031) h) + (by + have h : ((childHH thetaAboveCell0000220021112031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112032 + (by + have h : ((childLL thetaAboveCell0000220021112032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112032) h) + (by + have h : ((childLH thetaAboveCell0000220021112032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112032) h) + (by + have h : ((childHL thetaAboveCell0000220021112032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112032) h) + (by + have h : ((childHH thetaAboveCell0000220021112032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112033 + (by + have h : ((childLL thetaAboveCell0000220021112033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112033) h) + (by + have h : ((childLH thetaAboveCell0000220021112033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112033) h) + (by + have h : ((childHL thetaAboveCell0000220021112033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112033) h) + (by + have h : ((childHH thetaAboveCell0000220021112033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112033) h)) + +theorem cover_subtree_b7bd7dd08527 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022002111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022002111)) + cover_subtree_100284623361 + cover_subtree_06468370fe05 + cover_subtree_a6aeae3aff5e + cover_subtree_e6a5a6a1c8c7 + +theorem cover_subtree_19177aff5ede : + adaptiveCoverCheck 4 (childLL (childLH (childHL thetaAboveCell000022002111))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHL + thetaAboveCell000022002111))) + (by + have h : (thetaAboveCell0000220021112100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112100 h) + (by + have h : (thetaAboveCell0000220021112101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112101 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112102 + (by + have h : ((childLL thetaAboveCell0000220021112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112102) h) + (by + have h : ((childLH thetaAboveCell0000220021112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112102) h) + (by + have h : ((childHL thetaAboveCell0000220021112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112102) h) + (by + have h : ((childHH thetaAboveCell0000220021112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112103 + (by + have h : ((childLL thetaAboveCell0000220021112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112103) h) + (by + have h : ((childLH thetaAboveCell0000220021112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112103) h) + (by + have h : ((childHL thetaAboveCell0000220021112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112103) h) + (by + have h : ((childHH thetaAboveCell0000220021112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112103) h)) + +theorem cover_subtree_a6e5897577a8 : + adaptiveCoverCheck 4 (childLH (childLH (childHL thetaAboveCell000022002111))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHL + thetaAboveCell000022002111))) + (by + have h : (thetaAboveCell0000220021112110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112110 h) + (by + have h : (thetaAboveCell0000220021112111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112111 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112112 + (by + have h : ((childLL thetaAboveCell0000220021112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112112) h) + (by + have h : ((childLH thetaAboveCell0000220021112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112112) h) + (by + have h : ((childHL thetaAboveCell0000220021112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112112) h) + (by + have h : ((childHH thetaAboveCell0000220021112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112113 + (by + have h : ((childLL thetaAboveCell0000220021112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112113) h) + (by + have h : ((childLH thetaAboveCell0000220021112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112113) h) + (by + have h : ((childHL thetaAboveCell0000220021112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112113) h) + (by + have h : ((childHH thetaAboveCell0000220021112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112113) h)) + +theorem cover_subtree_c0e11192bd72 : + adaptiveCoverCheck 4 (childHL (childLH (childHL thetaAboveCell000022002111))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022002111))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112120 + (by + have h : ((childLL thetaAboveCell0000220021112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112120) h) + (by + have h : ((childLH thetaAboveCell0000220021112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112120) h) + (by + have h : ((childHL thetaAboveCell0000220021112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112120) h) + (by + have h : ((childHH thetaAboveCell0000220021112120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112121 + (by + have h : ((childLL thetaAboveCell0000220021112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112121) h) + (by + have h : ((childLH thetaAboveCell0000220021112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112121) h) + (by + have h : ((childHL thetaAboveCell0000220021112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112121) h) + (by + have h : ((childHH thetaAboveCell0000220021112121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112122 + (by + have h : ((childLL thetaAboveCell0000220021112122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112122) h) + (by + have h : ((childLH thetaAboveCell0000220021112122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112122) h) + (by + have h : ((childHL thetaAboveCell0000220021112122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112122) h) + (by + have h : ((childHH thetaAboveCell0000220021112122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112123 + (by + have h : ((childLL thetaAboveCell0000220021112123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112123) h) + (by + have h : ((childLH thetaAboveCell0000220021112123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112123) h) + (by + have h : ((childHL thetaAboveCell0000220021112123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112123) h) + (by + have h : ((childHH thetaAboveCell0000220021112123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112123) h)) + +theorem cover_subtree_3544788b12c5 : + adaptiveCoverCheck 4 (childHH (childLH (childHL thetaAboveCell000022002111))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022002111))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112130 + (by + have h : ((childLL thetaAboveCell0000220021112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112130) h) + (by + have h : ((childLH thetaAboveCell0000220021112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112130) h) + (by + have h : ((childHL thetaAboveCell0000220021112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112130) h) + (by + have h : ((childHH thetaAboveCell0000220021112130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112131 + (by + have h : ((childLL thetaAboveCell0000220021112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112131) h) + (by + have h : ((childLH thetaAboveCell0000220021112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112131) h) + (by + have h : ((childHL thetaAboveCell0000220021112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112131) h) + (by + have h : ((childHH thetaAboveCell0000220021112131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112132 + (by + have h : ((childLL thetaAboveCell0000220021112132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112132) h) + (by + have h : ((childLH thetaAboveCell0000220021112132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112132) h) + (by + have h : ((childHL thetaAboveCell0000220021112132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112132) h) + (by + have h : ((childHH thetaAboveCell0000220021112132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021112133 + (by + have h : ((childLL thetaAboveCell0000220021112133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021112133) h) + (by + have h : ((childLH thetaAboveCell0000220021112133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021112133) h) + (by + have h : ((childHL thetaAboveCell0000220021112133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021112133) h) + (by + have h : ((childHH thetaAboveCell0000220021112133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021112133) h)) + +theorem cover_subtree_4f053fea53cc : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022002111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022002111)) + cover_subtree_19177aff5ede + cover_subtree_a6e5897577a8 + cover_subtree_c0e11192bd72 + cover_subtree_3544788b12c5 + +theorem cover_subtree_ad3586fc5d64 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022002111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022002111)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022002111))) + (by + have h : (thetaAboveCell0000220021112200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112200 h) + (by + have h : (thetaAboveCell0000220021112201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112201 h) + (by + have h : (thetaAboveCell0000220021112202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112202 h) + (by + have h : (thetaAboveCell0000220021112203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022002111))) + (by + have h : (thetaAboveCell0000220021112210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112210 h) + (by + have h : (thetaAboveCell0000220021112211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112211 h) + (by + have h : (thetaAboveCell0000220021112212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112212 h) + (by + have h : (thetaAboveCell0000220021112213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022002111))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022002111))) h) + +theorem cover_subtree_a8dfb5281914 : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022002111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022002111)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022002111))) + (by + have h : (thetaAboveCell0000220021112300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112300 h) + (by + have h : (thetaAboveCell0000220021112301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112301 h) + (by + have h : (thetaAboveCell0000220021112302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112302 h) + (by + have h : (thetaAboveCell0000220021112303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022002111))) + (by + have h : (thetaAboveCell0000220021112310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112310 h) + (by + have h : (thetaAboveCell0000220021112311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112311 h) + (by + have h : (thetaAboveCell0000220021112312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112312 h) + (by + have h : (thetaAboveCell0000220021112313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021112313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022002111))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022002111))) h) + +theorem e24KC2ThetaAboveLeaf0000220021_c1_c1_c2 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022002111) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022002111) + cover_subtree_b7bd7dd08527 + cover_subtree_4f053fea53cc + cover_subtree_ad3586fc5d64 + cover_subtree_a8dfb5281914 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells03dbb8f506 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells03dbb8f506 + +open CertificateCells03dbb8f506 +theorem e24KC2ThetaAboveLeaf0000220021_c0_c1_c1 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022002101) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022002101) + (by + have h : ((childLL (childLH thetaAboveCell000022002101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH thetaAboveCell000022002101)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022002101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH thetaAboveCell000022002101)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLH thetaAboveCell000022002101)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLH + thetaAboveCell000022002101))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLH + thetaAboveCell000022002101))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLH + thetaAboveCell000022002101))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLH + thetaAboveCell000022002101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLH thetaAboveCell000022002101)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLH + thetaAboveCell000022002101))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLH + thetaAboveCell000022002101))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLH + thetaAboveCell000022002101))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLH + thetaAboveCell000022002101))) h)) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells15b8ca5094 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells15b8ca5094 + +open CertificateCells15b8ca5094 +theorem e24KC2ThetaAboveLeaf0000220021_c0_c1_c2_c3 : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022002101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022002101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022002101))) + (by + have h : (thetaAboveCell0000220021012300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012300 h) + (by + have h : (thetaAboveCell0000220021012301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012301 h) + (by + have h : (thetaAboveCell0000220021012302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012302 h) + (by + have h : (thetaAboveCell0000220021012303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022002101))) + (by + have h : (thetaAboveCell0000220021012310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012310 h) + (by + have h : (thetaAboveCell0000220021012311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012311 h) + (by + have h : (thetaAboveCell0000220021012312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012312 h) + (by + have h : (thetaAboveCell0000220021012313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022002101))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022002101))) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsecf9e4e90b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsecf9e4e90b + +open CertificateCellsecf9e4e90b +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c2_c2 : + adaptiveCoverCheck 4 (childHL (childHL thetaBelowCell111133113111)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHL thetaBelowCell111133113111)) + (by + have h : ((childLL (childHL (childHL thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childHL + thetaBelowCell111133113111))) h) + (by + have h : ((childLH (childHL (childHL thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childHL + thetaBelowCell111133113111))) h) + (by + have h : ((childHL (childHL (childHL thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childHL + thetaBelowCell111133113111))) h) + (by + have h : ((childHH (childHL (childHL thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childHL + thetaBelowCell111133113111))) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsdb6ee29ee4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsdb6ee29ee4 + +open CertificateCellsdb6ee29ee4 +theorem cover_subtree_4cc417ccb089 : + adaptiveCoverCheck 4 (childLL (childLL (childHH thetaAboveCell000022002110))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHH + thetaAboveCell000022002110))) + (by + have h : (thetaAboveCell0000220021103000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103000 h) + (by + have h : (thetaAboveCell0000220021103001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103001 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103002 + (by + have h : ((childLL thetaAboveCell0000220021103002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103002) h) + (by + have h : ((childLH thetaAboveCell0000220021103002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103002) h) + (by + have h : ((childHL thetaAboveCell0000220021103002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103002) h) + (by + have h : ((childHH thetaAboveCell0000220021103002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103003 + (by + have h : ((childLL thetaAboveCell0000220021103003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103003) h) + (by + have h : ((childLH thetaAboveCell0000220021103003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103003) h) + (by + have h : ((childHL thetaAboveCell0000220021103003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103003) h) + (by + have h : ((childHH thetaAboveCell0000220021103003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103003) h)) + +theorem cover_subtree_3b70ffafef44 : + adaptiveCoverCheck 4 (childLH (childLL (childHH thetaAboveCell000022002110))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHH + thetaAboveCell000022002110))) + (by + have h : (thetaAboveCell0000220021103010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103010 h) + (by + have h : (thetaAboveCell0000220021103011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103011 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103012 + (by + have h : ((childLL thetaAboveCell0000220021103012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103012) h) + (by + have h : ((childLH thetaAboveCell0000220021103012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103012) h) + (by + have h : ((childHL thetaAboveCell0000220021103012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103012) h) + (by + have h : ((childHH thetaAboveCell0000220021103012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103013 + (by + have h : ((childLL thetaAboveCell0000220021103013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103013) h) + (by + have h : ((childLH thetaAboveCell0000220021103013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103013) h) + (by + have h : ((childHL thetaAboveCell0000220021103013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103013) h) + (by + have h : ((childHH thetaAboveCell0000220021103013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103013) h)) + +theorem cover_subtree_dcf1d830bfb7 : + adaptiveCoverCheck 4 (childHL (childLL (childHH thetaAboveCell000022002110))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022002110))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103020 + (by + have h : ((childLL thetaAboveCell0000220021103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103020) h) + (by + have h : ((childLH thetaAboveCell0000220021103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103020) h) + (by + have h : ((childHL thetaAboveCell0000220021103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103020) h) + (by + have h : ((childHH thetaAboveCell0000220021103020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103021 + (by + have h : ((childLL thetaAboveCell0000220021103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103021) h) + (by + have h : ((childLH thetaAboveCell0000220021103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103021) h) + (by + have h : ((childHL thetaAboveCell0000220021103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103021) h) + (by + have h : ((childHH thetaAboveCell0000220021103021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103022 + (by + have h : ((childLL thetaAboveCell0000220021103022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103022) h) + (by + have h : ((childLH thetaAboveCell0000220021103022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103022) h) + (by + have h : ((childHL thetaAboveCell0000220021103022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103022) h) + (by + have h : ((childHH thetaAboveCell0000220021103022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103023 + (by + have h : ((childLL thetaAboveCell0000220021103023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103023) h) + (by + have h : ((childLH thetaAboveCell0000220021103023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103023) h) + (by + have h : ((childHL thetaAboveCell0000220021103023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103023) h) + (by + have h : ((childHH thetaAboveCell0000220021103023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103023) h)) + +theorem cover_subtree_8808b93a2a5b : + adaptiveCoverCheck 4 (childHH (childLL (childHH thetaAboveCell000022002110))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022002110))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103030 + (by + have h : ((childLL thetaAboveCell0000220021103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103030) h) + (by + have h : ((childLH thetaAboveCell0000220021103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103030) h) + (by + have h : ((childHL thetaAboveCell0000220021103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103030) h) + (by + have h : ((childHH thetaAboveCell0000220021103030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103031 + (by + have h : ((childLL thetaAboveCell0000220021103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103031) h) + (by + have h : ((childLH thetaAboveCell0000220021103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103031) h) + (by + have h : ((childHL thetaAboveCell0000220021103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103031) h) + (by + have h : ((childHH thetaAboveCell0000220021103031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103032 + (by + have h : ((childLL thetaAboveCell0000220021103032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103032) h) + (by + have h : ((childLH thetaAboveCell0000220021103032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103032) h) + (by + have h : ((childHL thetaAboveCell0000220021103032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103032) h) + (by + have h : ((childHH thetaAboveCell0000220021103032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103033 + (by + have h : ((childLL thetaAboveCell0000220021103033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103033) h) + (by + have h : ((childLH thetaAboveCell0000220021103033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103033) h) + (by + have h : ((childHL thetaAboveCell0000220021103033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103033) h) + (by + have h : ((childHH thetaAboveCell0000220021103033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103033) h)) + +theorem cover_subtree_adc568740138 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022002110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022002110)) + cover_subtree_4cc417ccb089 + cover_subtree_3b70ffafef44 + cover_subtree_dcf1d830bfb7 + cover_subtree_8808b93a2a5b + +theorem cover_subtree_9d7ffe00b1e7 : + adaptiveCoverCheck 4 (childLL (childLH (childHH thetaAboveCell000022002110))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHH + thetaAboveCell000022002110))) + (by + have h : (thetaAboveCell0000220021103100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103100 h) + (by + have h : (thetaAboveCell0000220021103101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103101 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103102 + (by + have h : ((childLL thetaAboveCell0000220021103102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103102) h) + (by + have h : ((childLH thetaAboveCell0000220021103102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103102) h) + (by + have h : ((childHL thetaAboveCell0000220021103102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103102) h) + (by + have h : ((childHH thetaAboveCell0000220021103102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103103 + (by + have h : ((childLL thetaAboveCell0000220021103103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103103) h) + (by + have h : ((childLH thetaAboveCell0000220021103103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103103) h) + (by + have h : ((childHL thetaAboveCell0000220021103103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103103) h) + (by + have h : ((childHH thetaAboveCell0000220021103103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103103) h)) + +theorem cover_subtree_0d9aaf9c725c : + adaptiveCoverCheck 4 (childLH (childLH (childHH thetaAboveCell000022002110))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHH + thetaAboveCell000022002110))) + (by + have h : (thetaAboveCell0000220021103110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103110 h) + (by + have h : (thetaAboveCell0000220021103111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103111 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103112 + (by + have h : ((childLL thetaAboveCell0000220021103112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103112) h) + (by + have h : ((childLH thetaAboveCell0000220021103112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103112) h) + (by + have h : ((childHL thetaAboveCell0000220021103112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103112) h) + (by + have h : ((childHH thetaAboveCell0000220021103112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103113 + (by + have h : ((childLL thetaAboveCell0000220021103113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103113) h) + (by + have h : ((childLH thetaAboveCell0000220021103113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103113) h) + (by + have h : ((childHL thetaAboveCell0000220021103113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103113) h) + (by + have h : ((childHH thetaAboveCell0000220021103113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103113) h)) + +theorem cover_subtree_d26de62ce5c2 : + adaptiveCoverCheck 4 (childHL (childLH (childHH thetaAboveCell000022002110))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022002110))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103120 + (by + have h : ((childLL thetaAboveCell0000220021103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103120) h) + (by + have h : ((childLH thetaAboveCell0000220021103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103120) h) + (by + have h : ((childHL thetaAboveCell0000220021103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103120) h) + (by + have h : ((childHH thetaAboveCell0000220021103120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103121 + (by + have h : ((childLL thetaAboveCell0000220021103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103121) h) + (by + have h : ((childLH thetaAboveCell0000220021103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103121) h) + (by + have h : ((childHL thetaAboveCell0000220021103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103121) h) + (by + have h : ((childHH thetaAboveCell0000220021103121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103122 + (by + have h : ((childLL thetaAboveCell0000220021103122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103122) h) + (by + have h : ((childLH thetaAboveCell0000220021103122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103122) h) + (by + have h : ((childHL thetaAboveCell0000220021103122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103122) h) + (by + have h : ((childHH thetaAboveCell0000220021103122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103123 + (by + have h : ((childLL thetaAboveCell0000220021103123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103123) h) + (by + have h : ((childLH thetaAboveCell0000220021103123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103123) h) + (by + have h : ((childHL thetaAboveCell0000220021103123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103123) h) + (by + have h : ((childHH thetaAboveCell0000220021103123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103123) h)) + +theorem cover_subtree_6e084944e1b7 : + adaptiveCoverCheck 4 (childHH (childLH (childHH thetaAboveCell000022002110))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022002110))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103130 + (by + have h : ((childLL thetaAboveCell0000220021103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103130) h) + (by + have h : ((childLH thetaAboveCell0000220021103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103130) h) + (by + have h : ((childHL thetaAboveCell0000220021103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103130) h) + (by + have h : ((childHH thetaAboveCell0000220021103130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103131 + (by + have h : ((childLL thetaAboveCell0000220021103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103131) h) + (by + have h : ((childLH thetaAboveCell0000220021103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103131) h) + (by + have h : ((childHL thetaAboveCell0000220021103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103131) h) + (by + have h : ((childHH thetaAboveCell0000220021103131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103132 + (by + have h : ((childLL thetaAboveCell0000220021103132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103132) h) + (by + have h : ((childLH thetaAboveCell0000220021103132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103132) h) + (by + have h : ((childHL thetaAboveCell0000220021103132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103132) h) + (by + have h : ((childHH thetaAboveCell0000220021103132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021103133 + (by + have h : ((childLL thetaAboveCell0000220021103133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021103133) h) + (by + have h : ((childLH thetaAboveCell0000220021103133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021103133) h) + (by + have h : ((childHL thetaAboveCell0000220021103133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021103133) h) + (by + have h : ((childHH thetaAboveCell0000220021103133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021103133) h)) + +theorem cover_subtree_e73271ac6053 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022002110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022002110)) + cover_subtree_9d7ffe00b1e7 + cover_subtree_0d9aaf9c725c + cover_subtree_d26de62ce5c2 + cover_subtree_6e084944e1b7 + +theorem cover_subtree_0ec46983a3e4 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022002110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022002110)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022002110))) + (by + have h : (thetaAboveCell0000220021103200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103200 h) + (by + have h : (thetaAboveCell0000220021103201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103201 h) + (by + have h : (thetaAboveCell0000220021103202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103202 h) + (by + have h : (thetaAboveCell0000220021103203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022002110))) + (by + have h : (thetaAboveCell0000220021103210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103210 h) + (by + have h : (thetaAboveCell0000220021103211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103211 h) + (by + have h : (thetaAboveCell0000220021103212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103212 h) + (by + have h : (thetaAboveCell0000220021103213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022002110))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022002110))) h) + +theorem cover_subtree_5cbb0735d9b5 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022002110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022002110)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022002110))) + (by + have h : (thetaAboveCell0000220021103300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103300 h) + (by + have h : (thetaAboveCell0000220021103301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103301 h) + (by + have h : (thetaAboveCell0000220021103302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103302 h) + (by + have h : (thetaAboveCell0000220021103303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022002110))) + (by + have h : (thetaAboveCell0000220021103310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103310 h) + (by + have h : (thetaAboveCell0000220021103311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103311 h) + (by + have h : (thetaAboveCell0000220021103312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103312 h) + (by + have h : (thetaAboveCell0000220021103313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021103313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022002110))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022002110))) h) + +theorem e24KC2ThetaAboveLeaf0000220021_c1_c0_c3 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022002110) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022002110) + cover_subtree_adc568740138 + cover_subtree_e73271ac6053 + cover_subtree_0ec46983a3e4 + cover_subtree_5cbb0735d9b5 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4003309a28 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4003309a28 + +open CertificateCells4003309a28 +theorem e24KC2ThetaAboveLeaf0000220021_c3 : + adaptiveCoverCheck 8 (childHH (childLH (childHL thetaAboveCell00002200))) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLH (childHL thetaAboveCell00002200))) + (by + have h : (thetaAboveCell000022002130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022002130 h) + (by + have h : (thetaAboveCell000022002131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022002131 h) + (by + have h : (thetaAboveCell000022002132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022002132 h) + (by + have h : (thetaAboveCell000022002133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022002133 h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf3f1dbc459 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf3f1dbc459 + +open CertificateCellsf3f1dbc459 +theorem e24KC2ThetaAboveLeaf0000220021_c0_c0_c2_c3 : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022002100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022002100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022002100))) + (by + have h : (thetaAboveCell0000220021002300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002300 h) + (by + have h : (thetaAboveCell0000220021002301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002301 h) + (by + have h : (thetaAboveCell0000220021002302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002302 h) + (by + have h : (thetaAboveCell0000220021002303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022002100))) + (by + have h : (thetaAboveCell0000220021002310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002310 h) + (by + have h : (thetaAboveCell0000220021002311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002311 h) + (by + have h : (thetaAboveCell0000220021002312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002312 h) + (by + have h : (thetaAboveCell0000220021002313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022002100))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022002100))) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells441cc2b0d8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells441cc2b0d8 + +open CertificateCells441cc2b0d8 +theorem cover_subtree_9a19b7b479a6 : + adaptiveCoverCheck 2 thetaBelowCell1111331131113100 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131113100 + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLL thetaBelowCell1111331131113100) + (by + have h : ((childLL (childLL thetaBelowCell1111331131113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLL + thetaBelowCell1111331131113100)) h) + (by + have h : ((childLH (childLL thetaBelowCell1111331131113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLL + thetaBelowCell1111331131113100)) h) + (by + have h : ((childHL (childLL thetaBelowCell1111331131113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLL + thetaBelowCell1111331131113100)) h) + (by + have h : ((childHH (childLL thetaBelowCell1111331131113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLL + thetaBelowCell1111331131113100)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLH thetaBelowCell1111331131113100) + (by + have h : ((childLL (childLH thetaBelowCell1111331131113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLH + thetaBelowCell1111331131113100)) h) + (by + have h : ((childLH (childLH thetaBelowCell1111331131113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLH + thetaBelowCell1111331131113100)) h) + (by + have h : ((childHL (childLH thetaBelowCell1111331131113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLH + thetaBelowCell1111331131113100)) h) + (by + have h : ((childHH (childLH thetaBelowCell1111331131113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLH + thetaBelowCell1111331131113100)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131113100) + (by + have h : ((childLL (childHL thetaBelowCell1111331131113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131113100)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131113100)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131113100)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131113100)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131113100) + (by + have h : ((childLL (childHH thetaBelowCell1111331131113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131113100)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131113100)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131113100)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131113100)) h)) + +theorem cover_subtree_d45287132b6e : + adaptiveCoverCheck 2 thetaBelowCell1111331131113101 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131113101 + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLL thetaBelowCell1111331131113101) + (by + have h : ((childLL (childLL thetaBelowCell1111331131113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLL + thetaBelowCell1111331131113101)) h) + (by + have h : ((childLH (childLL thetaBelowCell1111331131113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLL + thetaBelowCell1111331131113101)) h) + (by + have h : ((childHL (childLL thetaBelowCell1111331131113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLL + thetaBelowCell1111331131113101)) h) + (by + have h : ((childHH (childLL thetaBelowCell1111331131113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLL + thetaBelowCell1111331131113101)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLH thetaBelowCell1111331131113101) + (by + have h : ((childLL (childLH thetaBelowCell1111331131113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLH + thetaBelowCell1111331131113101)) h) + (by + have h : ((childLH (childLH thetaBelowCell1111331131113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLH + thetaBelowCell1111331131113101)) h) + (by + have h : ((childHL (childLH thetaBelowCell1111331131113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLH + thetaBelowCell1111331131113101)) h) + (by + have h : ((childHH (childLH thetaBelowCell1111331131113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLH + thetaBelowCell1111331131113101)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131113101) + (by + have h : ((childLL (childHL thetaBelowCell1111331131113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131113101)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131113101)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131113101)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131113101)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131113101) + (by + have h : ((childLL (childHH thetaBelowCell1111331131113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131113101)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131113101)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131113101)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131113101)) h)) + +theorem cover_subtree_e155163f58e6 : + adaptiveCoverCheck 2 thetaBelowCell1111331131113102 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131113102 + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLL thetaBelowCell1111331131113102) + (by + have h : ((childLL (childLL thetaBelowCell1111331131113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLL + thetaBelowCell1111331131113102)) h) + (by + have h : ((childLH (childLL thetaBelowCell1111331131113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLL + thetaBelowCell1111331131113102)) h) + (by + have h : ((childHL (childLL thetaBelowCell1111331131113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLL + thetaBelowCell1111331131113102)) h) + (by + have h : ((childHH (childLL thetaBelowCell1111331131113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLL + thetaBelowCell1111331131113102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLH thetaBelowCell1111331131113102) + (by + have h : ((childLL (childLH thetaBelowCell1111331131113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLH + thetaBelowCell1111331131113102)) h) + (by + have h : ((childLH (childLH thetaBelowCell1111331131113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLH + thetaBelowCell1111331131113102)) h) + (by + have h : ((childHL (childLH thetaBelowCell1111331131113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLH + thetaBelowCell1111331131113102)) h) + (by + have h : ((childHH (childLH thetaBelowCell1111331131113102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLH + thetaBelowCell1111331131113102)) h)) + (by + have h : ((childHL thetaBelowCell1111331131113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131113102) h) + (by + have h : ((childHH thetaBelowCell1111331131113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131113102) h) + +theorem cover_subtree_8c5c60491e76 : + adaptiveCoverCheck 2 thetaBelowCell1111331131113103 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131113103 + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLL thetaBelowCell1111331131113103) + (by + have h : ((childLL (childLL thetaBelowCell1111331131113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLL + thetaBelowCell1111331131113103)) h) + (by + have h : ((childLH (childLL thetaBelowCell1111331131113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLL + thetaBelowCell1111331131113103)) h) + (by + have h : ((childHL (childLL thetaBelowCell1111331131113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLL + thetaBelowCell1111331131113103)) h) + (by + have h : ((childHH (childLL thetaBelowCell1111331131113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLL + thetaBelowCell1111331131113103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLH thetaBelowCell1111331131113103) + (by + have h : ((childLL (childLH thetaBelowCell1111331131113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLH + thetaBelowCell1111331131113103)) h) + (by + have h : ((childLH (childLH thetaBelowCell1111331131113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLH + thetaBelowCell1111331131113103)) h) + (by + have h : ((childHL (childLH thetaBelowCell1111331131113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLH + thetaBelowCell1111331131113103)) h) + (by + have h : ((childHH (childLH thetaBelowCell1111331131113103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLH + thetaBelowCell1111331131113103)) h)) + (by + have h : ((childHL thetaBelowCell1111331131113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131113103) h) + (by + have h : ((childHH thetaBelowCell1111331131113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131113103) h) + +theorem cover_subtree_deda1d8f689c : + adaptiveCoverCheck 3 (childLL (childLH (childHH thetaBelowCell111133113111))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childLH (childHH + thetaBelowCell111133113111))) + cover_subtree_9a19b7b479a6 + cover_subtree_d45287132b6e + cover_subtree_e155163f58e6 + cover_subtree_8c5c60491e76 + +theorem cover_subtree_afe933400d68 : + adaptiveCoverCheck 2 thetaBelowCell1111331131113110 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131113110 + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLL thetaBelowCell1111331131113110) + (by + have h : ((childLL (childLL thetaBelowCell1111331131113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLL + thetaBelowCell1111331131113110)) h) + (by + have h : ((childLH (childLL thetaBelowCell1111331131113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLL + thetaBelowCell1111331131113110)) h) + (by + have h : ((childHL (childLL thetaBelowCell1111331131113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLL + thetaBelowCell1111331131113110)) h) + (by + have h : ((childHH (childLL thetaBelowCell1111331131113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLL + thetaBelowCell1111331131113110)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLH thetaBelowCell1111331131113110) + (by + have h : ((childLL (childLH thetaBelowCell1111331131113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLH + thetaBelowCell1111331131113110)) h) + (by + have h : ((childLH (childLH thetaBelowCell1111331131113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLH + thetaBelowCell1111331131113110)) h) + (by + have h : ((childHL (childLH thetaBelowCell1111331131113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLH + thetaBelowCell1111331131113110)) h) + (by + have h : ((childHH (childLH thetaBelowCell1111331131113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLH + thetaBelowCell1111331131113110)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131113110) + (by + have h : ((childLL (childHL thetaBelowCell1111331131113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131113110)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131113110)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131113110)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131113110)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131113110) + (by + have h : ((childLL (childHH thetaBelowCell1111331131113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131113110)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131113110)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131113110)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131113110)) h)) + +theorem cover_subtree_3d26797fa2c0 : + adaptiveCoverCheck 2 thetaBelowCell1111331131113111 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131113111 + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLL thetaBelowCell1111331131113111) + (by + have h : ((childLL (childLL thetaBelowCell1111331131113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLL + thetaBelowCell1111331131113111)) h) + (by + have h : ((childLH (childLL thetaBelowCell1111331131113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLL + thetaBelowCell1111331131113111)) h) + (by + have h : ((childHL (childLL thetaBelowCell1111331131113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLL + thetaBelowCell1111331131113111)) h) + (by + have h : ((childHH (childLL thetaBelowCell1111331131113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLL + thetaBelowCell1111331131113111)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLH thetaBelowCell1111331131113111) + (by + have h : ((childLL (childLH thetaBelowCell1111331131113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLH + thetaBelowCell1111331131113111)) h) + (by + have h : ((childLH (childLH thetaBelowCell1111331131113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLH + thetaBelowCell1111331131113111)) h) + (by + have h : ((childHL (childLH thetaBelowCell1111331131113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLH + thetaBelowCell1111331131113111)) h) + (by + have h : ((childHH (childLH thetaBelowCell1111331131113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLH + thetaBelowCell1111331131113111)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131113111) + (by + have h : ((childLL (childHL thetaBelowCell1111331131113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131113111)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131113111)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131113111)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131113111)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131113111) + (by + have h : ((childLL (childHH thetaBelowCell1111331131113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131113111)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131113111)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131113111)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131113111)) h)) + +theorem cover_subtree_2306090dc6e1 : + adaptiveCoverCheck 2 thetaBelowCell1111331131113112 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131113112 + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLL thetaBelowCell1111331131113112) + (by + have h : ((childLL (childLL thetaBelowCell1111331131113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLL + thetaBelowCell1111331131113112)) h) + (by + have h : ((childLH (childLL thetaBelowCell1111331131113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLL + thetaBelowCell1111331131113112)) h) + (by + have h : ((childHL (childLL thetaBelowCell1111331131113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLL + thetaBelowCell1111331131113112)) h) + (by + have h : ((childHH (childLL thetaBelowCell1111331131113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLL + thetaBelowCell1111331131113112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLH thetaBelowCell1111331131113112) + (by + have h : ((childLL (childLH thetaBelowCell1111331131113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLH + thetaBelowCell1111331131113112)) h) + (by + have h : ((childLH (childLH thetaBelowCell1111331131113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLH + thetaBelowCell1111331131113112)) h) + (by + have h : ((childHL (childLH thetaBelowCell1111331131113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLH + thetaBelowCell1111331131113112)) h) + (by + have h : ((childHH (childLH thetaBelowCell1111331131113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLH + thetaBelowCell1111331131113112)) h)) + (by + have h : ((childHL thetaBelowCell1111331131113112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131113112) h) + (by + have h : ((childHH thetaBelowCell1111331131113112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131113112) h) + +theorem cover_subtree_f50a24eff089 : + adaptiveCoverCheck 2 thetaBelowCell1111331131113113 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131113113 + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLL thetaBelowCell1111331131113113) + (by + have h : ((childLL (childLL thetaBelowCell1111331131113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLL + thetaBelowCell1111331131113113)) h) + (by + have h : ((childLH (childLL thetaBelowCell1111331131113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLL + thetaBelowCell1111331131113113)) h) + (by + have h : ((childHL (childLL thetaBelowCell1111331131113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLL + thetaBelowCell1111331131113113)) h) + (by + have h : ((childHH (childLL thetaBelowCell1111331131113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLL + thetaBelowCell1111331131113113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLH thetaBelowCell1111331131113113) + (by + have h : ((childLL (childLH thetaBelowCell1111331131113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLH + thetaBelowCell1111331131113113)) h) + (by + have h : ((childLH (childLH thetaBelowCell1111331131113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLH + thetaBelowCell1111331131113113)) h) + (by + have h : ((childHL (childLH thetaBelowCell1111331131113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLH + thetaBelowCell1111331131113113)) h) + (by + have h : ((childHH (childLH thetaBelowCell1111331131113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLH + thetaBelowCell1111331131113113)) h)) + (by + have h : ((childHL thetaBelowCell1111331131113113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131113113) h) + (by + have h : ((childHH thetaBelowCell1111331131113113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131113113) h) + +theorem cover_subtree_5a8fcf48e536 : + adaptiveCoverCheck 3 (childLH (childLH (childHH thetaBelowCell111133113111))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childLH (childHH + thetaBelowCell111133113111))) + cover_subtree_afe933400d68 + cover_subtree_3d26797fa2c0 + cover_subtree_2306090dc6e1 + cover_subtree_f50a24eff089 + +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c3_c1 : + adaptiveCoverCheck 4 (childLH (childHH thetaBelowCell111133113111)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH thetaBelowCell111133113111)) + cover_subtree_deda1d8f689c + cover_subtree_5a8fcf48e536 + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childLH (childHH + thetaBelowCell111133113111))) + (by + have h : (thetaBelowCell1111331131113120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131113120 h) + (by + have h : (thetaBelowCell1111331131113121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131113121 h) + (by + have h : (thetaBelowCell1111331131113122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131113122 h) + (by + have h : (thetaBelowCell1111331131113123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131113123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childLH (childHH + thetaBelowCell111133113111))) + (by + have h : (thetaBelowCell1111331131113130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131113130 h) + (by + have h : (thetaBelowCell1111331131113131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131113131 h) + (by + have h : (thetaBelowCell1111331131113132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131113132 h) + (by + have h : (thetaBelowCell1111331131113133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131113133 h)) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5980303e93 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5980303e93 + +open CertificateCells5980303e93 +theorem e24KC2ThetaAboveLeaf0000220021_c1_c0_c1 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022002110) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022002110) + (by + have h : ((childLL (childLH thetaAboveCell000022002110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH thetaAboveCell000022002110)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022002110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH thetaAboveCell000022002110)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLH thetaAboveCell000022002110)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLH + thetaAboveCell000022002110))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLH + thetaAboveCell000022002110))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLH + thetaAboveCell000022002110))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLH + thetaAboveCell000022002110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLH thetaAboveCell000022002110)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLH + thetaAboveCell000022002110))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLH + thetaAboveCell000022002110))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLH + thetaAboveCell000022002110))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLH + thetaAboveCell000022002110))) h)) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa9276513a2 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa9276513a2 + +open CertificateCellsa9276513a2 +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c2 : + adaptiveCoverCheck 6 thetaBelowCell111133113112 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133113112 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133113112) + (by + have h : ((childLL (childLL thetaBelowCell111133113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133113112)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133113112)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133113112)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133113112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133113112) + (by + have h : ((childLL (childLH thetaBelowCell111133113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133113112)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133113112)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133113112)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133113112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133113112)) h)) + (by + have h : ((childHL thetaBelowCell111133113112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133113112) h) + (by + have h : ((childHH thetaBelowCell111133113112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133113112) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9972cada5a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9972cada5a + +open CertificateCells9972cada5a +theorem e24KC2ThetaBelowLeaf111133113_c2 : + adaptiveCoverCheck 8 (childHL (childHH thetaBelowCell11113311)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childHH thetaBelowCell11113311)) + (by + have h : ((childLL (childHL (childHH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHL (childHH + thetaBelowCell11113311))) h) + (by + have h : ((childLH (childHL (childHH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHL (childHH + thetaBelowCell11113311))) h) + (by + have h : ((childHL (childHL (childHH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHL (childHH + thetaBelowCell11113311))) h) + (by + have h : ((childHH (childHL (childHH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHL (childHH + thetaBelowCell11113311))) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa6306b8bb7 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa6306b8bb7 + +open CertificateCellsa6306b8bb7 +theorem cover_subtree_64ca6a23a782 : + adaptiveCoverCheck 3 (childLL (childLL (childHL thetaBelowCell111133113111))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childLL (childHL + thetaBelowCell111133113111))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131112000 + (by + have h : ((childLL thetaBelowCell1111331131112000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131112000) h) + (by + have h : ((childLH thetaBelowCell1111331131112000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131112000) h) + (by + have h : ((childHL thetaBelowCell1111331131112000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131112000) h) + (by + have h : ((childHH thetaBelowCell1111331131112000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131112000) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131112001 + (by + have h : ((childLL thetaBelowCell1111331131112001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131112001) h) + (by + have h : ((childLH thetaBelowCell1111331131112001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131112001) h) + (by + have h : ((childHL thetaBelowCell1111331131112001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131112001) h) + (by + have h : ((childHH thetaBelowCell1111331131112001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131112001) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131112002 + (by + have h : ((childLL thetaBelowCell1111331131112002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131112002) h) + (by + have h : ((childLH thetaBelowCell1111331131112002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131112002) h) + (by + have h : ((childHL thetaBelowCell1111331131112002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131112002) h) + (by + have h : ((childHH thetaBelowCell1111331131112002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131112002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131112003 + (by + have h : ((childLL thetaBelowCell1111331131112003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131112003) h) + (by + have h : ((childLH thetaBelowCell1111331131112003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131112003) h) + (by + have h : ((childHL thetaBelowCell1111331131112003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131112003) h) + (by + have h : ((childHH thetaBelowCell1111331131112003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131112003) h)) + +theorem cover_subtree_5f702c8c435f : + adaptiveCoverCheck 3 (childLH (childLL (childHL thetaBelowCell111133113111))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childLL (childHL + thetaBelowCell111133113111))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131112010 + (by + have h : ((childLL thetaBelowCell1111331131112010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131112010) h) + (by + have h : ((childLH thetaBelowCell1111331131112010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131112010) h) + (by + have h : ((childHL thetaBelowCell1111331131112010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131112010) h) + (by + have h : ((childHH thetaBelowCell1111331131112010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131112010) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131112011 + (by + have h : ((childLL thetaBelowCell1111331131112011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131112011) h) + (by + have h : ((childLH thetaBelowCell1111331131112011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131112011) h) + (by + have h : ((childHL thetaBelowCell1111331131112011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131112011) h) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131112011) + (by + have h : ((childLL (childHH thetaBelowCell1111331131112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131112011)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131112011)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131112011)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131112011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131112011)) h))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131112012 + (by + have h : ((childLL thetaBelowCell1111331131112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131112012) h) + (by + have h : ((childLH thetaBelowCell1111331131112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131112012) h) + (by + have h : ((childHL thetaBelowCell1111331131112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131112012) h) + (by + have h : ((childHH thetaBelowCell1111331131112012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131112012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131112013 + (by + have h : ((childLL thetaBelowCell1111331131112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131112013) h) + (by + have h : ((childLH thetaBelowCell1111331131112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131112013) h) + (by + have h : ((childHL thetaBelowCell1111331131112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131112013) h) + (by + have h : ((childHH thetaBelowCell1111331131112013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131112013) h)) + +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c2_c0 : + adaptiveCoverCheck 4 (childLL (childHL thetaBelowCell111133113111)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL thetaBelowCell111133113111)) + cover_subtree_64ca6a23a782 + cover_subtree_5f702c8c435f + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childLL (childHL + thetaBelowCell111133113111))) + (by + have h : (thetaBelowCell1111331131112020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131112020 h) + (by + have h : (thetaBelowCell1111331131112021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131112021 h) + (by + have h : (thetaBelowCell1111331131112022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131112022 h) + (by + have h : (thetaBelowCell1111331131112023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131112023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childLL (childHL + thetaBelowCell111133113111))) + (by + have h : (thetaBelowCell1111331131112030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131112030 h) + (by + have h : (thetaBelowCell1111331131112031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131112031 h) + (by + have h : (thetaBelowCell1111331131112032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131112032 h) + (by + have h : (thetaBelowCell1111331131112033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131112033 h)) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc1e1941644 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc1e1941644 + +open CertificateCellsc1e1941644 +theorem e24KC2ThetaBelowLeaf111133113_c1_c0_c1_c2 : + adaptiveCoverCheck 5 (childHL thetaBelowCell111133113101) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133113101) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL thetaBelowCell111133113101)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childLL (childHL + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131012000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131012000 h) + (by + have h : (thetaBelowCell1111331131012001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131012001 h) + (by + have h : (thetaBelowCell1111331131012002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131012002 h) + (by + have h : (thetaBelowCell1111331131012003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131012003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childLL (childHL + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131012010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131012010 h) + (by + have h : (thetaBelowCell1111331131012011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131012011 h) + (by + have h : (thetaBelowCell1111331131012012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131012012 h) + (by + have h : (thetaBelowCell1111331131012013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131012013 h)) + (by + have h : ((childHL (childLL (childHL thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childHL + thetaBelowCell111133113101))) h) + (by + have h : ((childHH (childLL (childHL thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childHL + thetaBelowCell111133113101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL thetaBelowCell111133113101)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childLH (childHL + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131012100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131012100 h) + (by + have h : (thetaBelowCell1111331131012101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131012101 h) + (by + have h : (thetaBelowCell1111331131012102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131012102 h) + (by + have h : (thetaBelowCell1111331131012103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131012103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childLH (childHL + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131012110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131012110 h) + (by + have h : (thetaBelowCell1111331131012111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131012111 h) + (by + have h : (thetaBelowCell1111331131012112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131012112 h) + (by + have h : (thetaBelowCell1111331131012113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131012113 h)) + (by + have h : ((childHL (childLH (childHL thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childHL + thetaBelowCell111133113101))) h) + (by + have h : ((childHH (childLH (childHL thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childHL + thetaBelowCell111133113101))) h)) + (by + have h : ((childHL (childHL thetaBelowCell111133113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL thetaBelowCell111133113101)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL thetaBelowCell111133113101)) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5a169f617b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5a169f617b + +open CertificateCells5a169f617b +theorem e24KC2ThetaAboveLeaf0000220021_c1_c1_c1 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022002111) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022002111) + (by + have h : ((childLL (childLH thetaAboveCell000022002111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH thetaAboveCell000022002111)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022002111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH thetaAboveCell000022002111)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLH thetaAboveCell000022002111)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLH + thetaAboveCell000022002111))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLH + thetaAboveCell000022002111))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLH + thetaAboveCell000022002111))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLH + thetaAboveCell000022002111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLH thetaAboveCell000022002111)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLH + thetaAboveCell000022002111))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLH + thetaAboveCell000022002111))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLH + thetaAboveCell000022002111))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLH + thetaAboveCell000022002111))) h)) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc15ab9b9a5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc15ab9b9a5 + +open CertificateCellsc15ab9b9a5 +theorem e24KC2ThetaBelowLeaf111133113_c0_c1_c3 : + adaptiveCoverCheck 6 thetaBelowCell111133113013 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133113013 + (by + have h : ((childLL thetaBelowCell111133113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133113013) h) + (by + have h : ((childLH thetaBelowCell111133113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133113013) h) + (by + have h : ((childHL thetaBelowCell111133113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133113013) h) + (by + have h : ((childHH thetaBelowCell111133113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133113013) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells861ec8c785 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells861ec8c785 + +open CertificateCells861ec8c785 +theorem e24KC2ThetaAboveLeaf0000220021_c1_c0_c0 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022002110) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022002110) + (by + have h : ((childLL (childLL thetaAboveCell000022002110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL thetaAboveCell000022002110)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022002110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL thetaAboveCell000022002110)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLL thetaAboveCell000022002110)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLL + thetaAboveCell000022002110))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLL + thetaAboveCell000022002110))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLL + thetaAboveCell000022002110))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLL + thetaAboveCell000022002110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLL thetaAboveCell000022002110)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLL + thetaAboveCell000022002110))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLL + thetaAboveCell000022002110))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLL + thetaAboveCell000022002110))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLL + thetaAboveCell000022002110))) h)) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells854f59bf16 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells854f59bf16 + +open CertificateCells854f59bf16 +theorem cover_subtree_868906559995 : + adaptiveCoverCheck 5 (childLL thetaBelowCell111133113000) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133113000) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL thetaBelowCell111133113000)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLL + thetaBelowCell111133113000))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLL + thetaBelowCell111133113000))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLL + thetaBelowCell111133113000))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLL + thetaBelowCell111133113000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL thetaBelowCell111133113000)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLL + thetaBelowCell111133113000))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLL + thetaBelowCell111133113000))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLL + thetaBelowCell111133113000))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLL + thetaBelowCell111133113000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL thetaBelowCell111133113000)) + (by + have h : ((childLL (childHL (childLL thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childLL + thetaBelowCell111133113000))) h) + (by + have h : ((childLH (childHL (childLL thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childLL + thetaBelowCell111133113000))) h) + (by + have h : ((childHL (childHL (childLL thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childLL + thetaBelowCell111133113000))) h) + (by + have h : ((childHH (childHL (childLL thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childLL + thetaBelowCell111133113000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL thetaBelowCell111133113000)) + (by + have h : ((childLL (childHH (childLL thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childLL + thetaBelowCell111133113000))) h) + (by + have h : ((childLH (childHH (childLL thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childLL + thetaBelowCell111133113000))) h) + (by + have h : ((childHL (childHH (childLL thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childLL + thetaBelowCell111133113000))) h) + (by + have h : ((childHH (childHH (childLL thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childLL + thetaBelowCell111133113000))) h)) + +theorem cover_subtree_cf661e32fd3c : + adaptiveCoverCheck 5 (childLH thetaBelowCell111133113000) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133113000) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH thetaBelowCell111133113000)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLH + thetaBelowCell111133113000))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLH + thetaBelowCell111133113000))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLH + thetaBelowCell111133113000))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLH + thetaBelowCell111133113000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH thetaBelowCell111133113000)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLH + thetaBelowCell111133113000))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLH + thetaBelowCell111133113000))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLH + thetaBelowCell111133113000))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLH + thetaBelowCell111133113000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH thetaBelowCell111133113000)) + (by + have h : ((childLL (childHL (childLH thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childLH + thetaBelowCell111133113000))) h) + (by + have h : ((childLH (childHL (childLH thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childLH + thetaBelowCell111133113000))) h) + (by + have h : ((childHL (childHL (childLH thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childLH + thetaBelowCell111133113000))) h) + (by + have h : ((childHH (childHL (childLH thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childLH + thetaBelowCell111133113000))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH thetaBelowCell111133113000)) + (by + have h : ((childLL (childHH (childLH thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childLH + thetaBelowCell111133113000))) h) + (by + have h : ((childLH (childHH (childLH thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childLH + thetaBelowCell111133113000))) h) + (by + have h : ((childHL (childHH (childLH thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childLH + thetaBelowCell111133113000))) h) + (by + have h : ((childHH (childHH (childLH thetaBelowCell111133113000)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childLH + thetaBelowCell111133113000))) h)) + +theorem cover_subtree_852412a1da1f : + adaptiveCoverCheck 6 thetaBelowCell111133113000 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133113000 + cover_subtree_868906559995 + cover_subtree_cf661e32fd3c + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133113000) + (by + have h : ((childLL (childHL thetaBelowCell111133113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL + thetaBelowCell111133113000)) h) + (by + have h : ((childLH (childHL thetaBelowCell111133113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL + thetaBelowCell111133113000)) h) + (by + have h : ((childHL (childHL thetaBelowCell111133113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL + thetaBelowCell111133113000)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL + thetaBelowCell111133113000)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133113000) + (by + have h : ((childLL (childHH thetaBelowCell111133113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH + thetaBelowCell111133113000)) h) + (by + have h : ((childLH (childHH thetaBelowCell111133113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH + thetaBelowCell111133113000)) h) + (by + have h : ((childHL (childHH thetaBelowCell111133113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH + thetaBelowCell111133113000)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH + thetaBelowCell111133113000)) h)) + +theorem cover_subtree_5c713f8b8f83 : + adaptiveCoverCheck 5 (childLL thetaBelowCell111133113001) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133113001) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL thetaBelowCell111133113001)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLL + thetaBelowCell111133113001))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLL + thetaBelowCell111133113001))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLL + thetaBelowCell111133113001))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLL + thetaBelowCell111133113001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL thetaBelowCell111133113001)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLL + thetaBelowCell111133113001))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLL + thetaBelowCell111133113001))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLL + thetaBelowCell111133113001))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLL + thetaBelowCell111133113001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL thetaBelowCell111133113001)) + (by + have h : ((childLL (childHL (childLL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childLL + thetaBelowCell111133113001))) h) + (by + have h : ((childLH (childHL (childLL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childLL + thetaBelowCell111133113001))) h) + (by + have h : ((childHL (childHL (childLL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childLL + thetaBelowCell111133113001))) h) + (by + have h : ((childHH (childHL (childLL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childLL + thetaBelowCell111133113001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL thetaBelowCell111133113001)) + (by + have h : ((childLL (childHH (childLL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childLL + thetaBelowCell111133113001))) h) + (by + have h : ((childLH (childHH (childLL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childLL + thetaBelowCell111133113001))) h) + (by + have h : ((childHL (childHH (childLL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childLL + thetaBelowCell111133113001))) h) + (by + have h : ((childHH (childHH (childLL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childLL + thetaBelowCell111133113001))) h)) + +theorem cover_subtree_9ce321b0f1ea : + adaptiveCoverCheck 4 (childHH (childLH thetaBelowCell111133113001)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH thetaBelowCell111133113001)) + (by + have h : ((childLL (childHH (childLH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childLH + thetaBelowCell111133113001))) h) + (by + have h : ((childLH (childHH (childLH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childLH + thetaBelowCell111133113001))) h) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHH (childLH + thetaBelowCell111133113001))) + (by + have h : (thetaBelowCell1111331130011320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130011320 h) + (by + have h : (thetaBelowCell1111331130011321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130011321 h) + (by + have h : (thetaBelowCell1111331130011322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130011322 h) + (by + have h : (thetaBelowCell1111331130011323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130011323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHH (childLH + thetaBelowCell111133113001))) + (by + have h : (thetaBelowCell1111331130011330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130011330 h) + (by + have h : (thetaBelowCell1111331130011331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130011331 h) + (by + have h : (thetaBelowCell1111331130011332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130011332 h) + (by + have h : (thetaBelowCell1111331130011333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130011333 h)) + +theorem cover_subtree_5f41a0b225f7 : + adaptiveCoverCheck 5 (childLH thetaBelowCell111133113001) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133113001) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH thetaBelowCell111133113001)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLH + thetaBelowCell111133113001))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLH + thetaBelowCell111133113001))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLH + thetaBelowCell111133113001))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLH + thetaBelowCell111133113001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH thetaBelowCell111133113001)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLH + thetaBelowCell111133113001))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLH + thetaBelowCell111133113001))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLH + thetaBelowCell111133113001))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLH + thetaBelowCell111133113001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH thetaBelowCell111133113001)) + (by + have h : ((childLL (childHL (childLH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childLH + thetaBelowCell111133113001))) h) + (by + have h : ((childLH (childHL (childLH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childLH + thetaBelowCell111133113001))) h) + (by + have h : ((childHL (childHL (childLH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childLH + thetaBelowCell111133113001))) h) + (by + have h : ((childHH (childHL (childLH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childLH + thetaBelowCell111133113001))) h)) + cover_subtree_9ce321b0f1ea + +theorem cover_subtree_dce958c46e4b : + adaptiveCoverCheck 5 (childHL thetaBelowCell111133113001) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133113001) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL thetaBelowCell111133113001)) + (by + have h : ((childLL (childLL (childHL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childHL + thetaBelowCell111133113001))) h) + (by + have h : ((childLH (childLL (childHL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childHL + thetaBelowCell111133113001))) h) + (by + have h : ((childHL (childLL (childHL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childHL + thetaBelowCell111133113001))) h) + (by + have h : ((childHH (childLL (childHL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childHL + thetaBelowCell111133113001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL thetaBelowCell111133113001)) + (by + have h : ((childLL (childLH (childHL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childHL + thetaBelowCell111133113001))) h) + (by + have h : ((childLH (childLH (childHL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childHL + thetaBelowCell111133113001))) h) + (by + have h : ((childHL (childLH (childHL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childHL + thetaBelowCell111133113001))) h) + (by + have h : ((childHH (childLH (childHL thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childHL + thetaBelowCell111133113001))) h)) + (by + have h : ((childHL (childHL thetaBelowCell111133113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL thetaBelowCell111133113001)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL thetaBelowCell111133113001)) h) + +theorem cover_subtree_5f44219dd9e0 : + adaptiveCoverCheck 5 (childHH thetaBelowCell111133113001) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133113001) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH thetaBelowCell111133113001)) + (by + have h : ((childLL (childLL (childHH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childHH + thetaBelowCell111133113001))) h) + (by + have h : ((childLH (childLL (childHH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childHH + thetaBelowCell111133113001))) h) + (by + have h : ((childHL (childLL (childHH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childHH + thetaBelowCell111133113001))) h) + (by + have h : ((childHH (childLL (childHH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childHH + thetaBelowCell111133113001))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH thetaBelowCell111133113001)) + (by + have h : ((childLL (childLH (childHH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childHH + thetaBelowCell111133113001))) h) + (by + have h : ((childLH (childLH (childHH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childHH + thetaBelowCell111133113001))) h) + (by + have h : ((childHL (childLH (childHH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childHH + thetaBelowCell111133113001))) h) + (by + have h : ((childHH (childLH (childHH thetaBelowCell111133113001)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childHH + thetaBelowCell111133113001))) h)) + (by + have h : ((childHL (childHH thetaBelowCell111133113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH thetaBelowCell111133113001)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH thetaBelowCell111133113001)) h) + +theorem cover_subtree_f79674f0cd5e : + adaptiveCoverCheck 6 thetaBelowCell111133113001 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133113001 + cover_subtree_5c713f8b8f83 + cover_subtree_5f41a0b225f7 + cover_subtree_dce958c46e4b + cover_subtree_5f44219dd9e0 + +theorem e24KC2ThetaBelowLeaf111133113_c0_c0 : + adaptiveCoverCheck 7 (childLL (childLL (childHH thetaBelowCell11113311))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childLL (childLL (childHH thetaBelowCell11113311))) + cover_subtree_852412a1da1f + cover_subtree_f79674f0cd5e + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133113002 + (by + have h : ((childLL thetaBelowCell111133113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133113002) h) + (by + have h : ((childLH thetaBelowCell111133113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133113002) h) + (by + have h : ((childHL thetaBelowCell111133113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133113002) h) + (by + have h : ((childHH thetaBelowCell111133113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133113002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133113003 + (by + have h : ((childLL thetaBelowCell111133113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133113003) h) + (by + have h : ((childLH thetaBelowCell111133113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133113003) h) + (by + have h : ((childHL thetaBelowCell111133113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133113003) h) + (by + have h : ((childHH thetaBelowCell111133113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133113003) h)) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5153122198 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5153122198 + +open CertificateCells5153122198 +theorem cover_subtree_4d0609015f95 : + adaptiveCoverCheck 2 thetaBelowCell1111331131112100 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131112100 + (by + have h : ((childLL thetaBelowCell1111331131112100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131112100) h) + (by + have h : ((childLH thetaBelowCell1111331131112100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131112100) h) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131112100) + (by + have h : ((childLL (childHL thetaBelowCell1111331131112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131112100)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131112100)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131112100)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131112100)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131112100) + (by + have h : ((childLL (childHH thetaBelowCell1111331131112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131112100)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131112100)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131112100)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131112100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131112100)) h)) + +theorem cover_subtree_dc10eb0281eb : + adaptiveCoverCheck 2 thetaBelowCell1111331131112101 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131112101 + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLL thetaBelowCell1111331131112101) + (by + have h : ((childLL (childLL thetaBelowCell1111331131112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLL + thetaBelowCell1111331131112101)) h) + (by + have h : ((childLH (childLL thetaBelowCell1111331131112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLL + thetaBelowCell1111331131112101)) h) + (by + have h : ((childHL (childLL thetaBelowCell1111331131112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLL + thetaBelowCell1111331131112101)) h) + (by + have h : ((childHH (childLL thetaBelowCell1111331131112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLL + thetaBelowCell1111331131112101)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLH thetaBelowCell1111331131112101) + (by + have h : ((childLL (childLH thetaBelowCell1111331131112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLH + thetaBelowCell1111331131112101)) h) + (by + have h : ((childLH (childLH thetaBelowCell1111331131112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLH + thetaBelowCell1111331131112101)) h) + (by + have h : ((childHL (childLH thetaBelowCell1111331131112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLH + thetaBelowCell1111331131112101)) h) + (by + have h : ((childHH (childLH thetaBelowCell1111331131112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLH + thetaBelowCell1111331131112101)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131112101) + (by + have h : ((childLL (childHL thetaBelowCell1111331131112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131112101)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131112101)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131112101)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131112101)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131112101) + (by + have h : ((childLL (childHH thetaBelowCell1111331131112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131112101)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131112101)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131112101)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131112101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131112101)) h)) + +theorem cover_subtree_115058b1a8cb : + adaptiveCoverCheck 3 (childLL (childLH (childHL thetaBelowCell111133113111))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childLH (childHL + thetaBelowCell111133113111))) + cover_subtree_4d0609015f95 + cover_subtree_dc10eb0281eb + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131112102 + (by + have h : ((childLL thetaBelowCell1111331131112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131112102) h) + (by + have h : ((childLH thetaBelowCell1111331131112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131112102) h) + (by + have h : ((childHL thetaBelowCell1111331131112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131112102) h) + (by + have h : ((childHH thetaBelowCell1111331131112102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131112102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131112103 + (by + have h : ((childLL thetaBelowCell1111331131112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131112103) h) + (by + have h : ((childLH thetaBelowCell1111331131112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131112103) h) + (by + have h : ((childHL thetaBelowCell1111331131112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131112103) h) + (by + have h : ((childHH thetaBelowCell1111331131112103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131112103) h)) + +theorem cover_subtree_73eb4fcea78d : + adaptiveCoverCheck 2 thetaBelowCell1111331131112110 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131112110 + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLL thetaBelowCell1111331131112110) + (by + have h : ((childLL (childLL thetaBelowCell1111331131112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLL + thetaBelowCell1111331131112110)) h) + (by + have h : ((childLH (childLL thetaBelowCell1111331131112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLL + thetaBelowCell1111331131112110)) h) + (by + have h : ((childHL (childLL thetaBelowCell1111331131112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLL + thetaBelowCell1111331131112110)) h) + (by + have h : ((childHH (childLL thetaBelowCell1111331131112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLL + thetaBelowCell1111331131112110)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLH thetaBelowCell1111331131112110) + (by + have h : ((childLL (childLH thetaBelowCell1111331131112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLH + thetaBelowCell1111331131112110)) h) + (by + have h : ((childLH (childLH thetaBelowCell1111331131112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLH + thetaBelowCell1111331131112110)) h) + (by + have h : ((childHL (childLH thetaBelowCell1111331131112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLH + thetaBelowCell1111331131112110)) h) + (by + have h : ((childHH (childLH thetaBelowCell1111331131112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLH + thetaBelowCell1111331131112110)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131112110) + (by + have h : ((childLL (childHL thetaBelowCell1111331131112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131112110)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131112110)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131112110)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131112110)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131112110) + (by + have h : ((childLL (childHH thetaBelowCell1111331131112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131112110)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131112110)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131112110)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131112110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131112110)) h)) + +theorem cover_subtree_44584246e90e : + adaptiveCoverCheck 2 thetaBelowCell1111331131112111 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131112111 + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLL thetaBelowCell1111331131112111) + (by + have h : ((childLL (childLL thetaBelowCell1111331131112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLL + thetaBelowCell1111331131112111)) h) + (by + have h : ((childLH (childLL thetaBelowCell1111331131112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLL + thetaBelowCell1111331131112111)) h) + (by + have h : ((childHL (childLL thetaBelowCell1111331131112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLL + thetaBelowCell1111331131112111)) h) + (by + have h : ((childHH (childLL thetaBelowCell1111331131112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLL + thetaBelowCell1111331131112111)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLH thetaBelowCell1111331131112111) + (by + have h : ((childLL (childLH thetaBelowCell1111331131112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLH + thetaBelowCell1111331131112111)) h) + (by + have h : ((childLH (childLH thetaBelowCell1111331131112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLH + thetaBelowCell1111331131112111)) h) + (by + have h : ((childHL (childLH thetaBelowCell1111331131112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLH + thetaBelowCell1111331131112111)) h) + (by + have h : ((childHH (childLH thetaBelowCell1111331131112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLH + thetaBelowCell1111331131112111)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131112111) + (by + have h : ((childLL (childHL thetaBelowCell1111331131112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131112111)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131112111)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131112111)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131112111)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131112111) + (by + have h : ((childLL (childHH thetaBelowCell1111331131112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131112111)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131112111)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131112111)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131112111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131112111)) h)) + +theorem cover_subtree_0e57e75e5954 : + adaptiveCoverCheck 3 (childLH (childLH (childHL thetaBelowCell111133113111))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childLH (childHL + thetaBelowCell111133113111))) + cover_subtree_73eb4fcea78d + cover_subtree_44584246e90e + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131112112 + (by + have h : ((childLL thetaBelowCell1111331131112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131112112) h) + (by + have h : ((childLH thetaBelowCell1111331131112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131112112) h) + (by + have h : ((childHL thetaBelowCell1111331131112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131112112) h) + (by + have h : ((childHH thetaBelowCell1111331131112112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131112112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131112113 + (by + have h : ((childLL thetaBelowCell1111331131112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131112113) h) + (by + have h : ((childLH thetaBelowCell1111331131112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131112113) h) + (by + have h : ((childHL thetaBelowCell1111331131112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131112113) h) + (by + have h : ((childHH thetaBelowCell1111331131112113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131112113) h)) + +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c2_c1 : + adaptiveCoverCheck 4 (childLH (childHL thetaBelowCell111133113111)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL thetaBelowCell111133113111)) + cover_subtree_115058b1a8cb + cover_subtree_0e57e75e5954 + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childLH (childHL + thetaBelowCell111133113111))) + (by + have h : (thetaBelowCell1111331131112120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131112120 h) + (by + have h : (thetaBelowCell1111331131112121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131112121 h) + (by + have h : (thetaBelowCell1111331131112122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131112122 h) + (by + have h : (thetaBelowCell1111331131112123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131112123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childLH (childHL + thetaBelowCell111133113111))) + (by + have h : (thetaBelowCell1111331131112130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131112130 h) + (by + have h : (thetaBelowCell1111331131112131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131112131 h) + (by + have h : (thetaBelowCell1111331131112132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131112132 h) + (by + have h : (thetaBelowCell1111331131112133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131112133 h)) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0a969d2c42 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0a969d2c42 + +open CertificateCells0a969d2c42 +theorem cover_subtree_6164650f4936 : + adaptiveCoverCheck 3 (childLL (childLL (childHL thetaBelowCell111133113110))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childLL (childHL + thetaBelowCell111133113110))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131102000 + (by + have h : ((childLL thetaBelowCell1111331131102000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131102000) h) + (by + have h : ((childLH thetaBelowCell1111331131102000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131102000) h) + (by + have h : ((childHL thetaBelowCell1111331131102000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131102000) h) + (by + have h : ((childHH thetaBelowCell1111331131102000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131102000) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131102001 + (by + have h : ((childLL thetaBelowCell1111331131102001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131102001) h) + (by + have h : ((childLH thetaBelowCell1111331131102001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131102001) h) + (by + have h : ((childHL thetaBelowCell1111331131102001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131102001) h) + (by + have h : ((childHH thetaBelowCell1111331131102001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131102001) h)) + (by + have h : (thetaBelowCell1111331131102002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131102002 h) + (by + have h : (thetaBelowCell1111331131102003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131102003 h) + +theorem cover_subtree_3db66bc1eb1b : + adaptiveCoverCheck 3 (childLH (childLL (childHL thetaBelowCell111133113110))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childLL (childHL + thetaBelowCell111133113110))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131102010 + (by + have h : ((childLL thetaBelowCell1111331131102010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131102010) h) + (by + have h : ((childLH thetaBelowCell1111331131102010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131102010) h) + (by + have h : ((childHL thetaBelowCell1111331131102010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131102010) h) + (by + have h : ((childHH thetaBelowCell1111331131102010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131102010) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131102011 + (by + have h : ((childLL thetaBelowCell1111331131102011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131102011) h) + (by + have h : ((childLH thetaBelowCell1111331131102011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131102011) h) + (by + have h : ((childHL thetaBelowCell1111331131102011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131102011) h) + (by + have h : ((childHH thetaBelowCell1111331131102011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131102011) h)) + (by + have h : (thetaBelowCell1111331131102012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131102012 h) + (by + have h : (thetaBelowCell1111331131102013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131102013 h) + +theorem cover_subtree_3f70d11b4e7e : + adaptiveCoverCheck 4 (childLL (childHL thetaBelowCell111133113110)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL thetaBelowCell111133113110)) + cover_subtree_6164650f4936 + cover_subtree_3db66bc1eb1b + (by + have h : ((childHL (childLL (childHL thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childHL + thetaBelowCell111133113110))) h) + (by + have h : ((childHH (childLL (childHL thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childHL + thetaBelowCell111133113110))) h) + +theorem cover_subtree_261557c5db75 : + adaptiveCoverCheck 3 (childLL (childLH (childHL thetaBelowCell111133113110))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childLH (childHL + thetaBelowCell111133113110))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131102100 + (by + have h : ((childLL thetaBelowCell1111331131102100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131102100) h) + (by + have h : ((childLH thetaBelowCell1111331131102100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131102100) h) + (by + have h : ((childHL thetaBelowCell1111331131102100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131102100) h) + (by + have h : ((childHH thetaBelowCell1111331131102100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131102100) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131102101 + (by + have h : ((childLL thetaBelowCell1111331131102101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131102101) h) + (by + have h : ((childLH thetaBelowCell1111331131102101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131102101) h) + (by + have h : ((childHL thetaBelowCell1111331131102101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131102101) h) + (by + have h : ((childHH thetaBelowCell1111331131102101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131102101) h)) + (by + have h : (thetaBelowCell1111331131102102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131102102 h) + (by + have h : (thetaBelowCell1111331131102103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131102103 h) + +theorem cover_subtree_12428cd495c4 : + adaptiveCoverCheck 3 (childLH (childLH (childHL thetaBelowCell111133113110))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childLH (childHL + thetaBelowCell111133113110))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131102110 + (by + have h : ((childLL thetaBelowCell1111331131102110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131102110) h) + (by + have h : ((childLH thetaBelowCell1111331131102110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131102110) h) + (by + have h : ((childHL thetaBelowCell1111331131102110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131102110) h) + (by + have h : ((childHH thetaBelowCell1111331131102110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131102110) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131102111 + (by + have h : ((childLL thetaBelowCell1111331131102111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131102111) h) + (by + have h : ((childLH thetaBelowCell1111331131102111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131102111) h) + (by + have h : ((childHL thetaBelowCell1111331131102111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131102111) h) + (by + have h : ((childHH thetaBelowCell1111331131102111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131102111) h)) + (by + have h : (thetaBelowCell1111331131102112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131102112 h) + (by + have h : (thetaBelowCell1111331131102113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131102113 h) + +theorem cover_subtree_adb043cdb732 : + adaptiveCoverCheck 4 (childLH (childHL thetaBelowCell111133113110)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL thetaBelowCell111133113110)) + cover_subtree_261557c5db75 + cover_subtree_12428cd495c4 + (by + have h : ((childHL (childLH (childHL thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childHL + thetaBelowCell111133113110))) h) + (by + have h : ((childHH (childLH (childHL thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childHL + thetaBelowCell111133113110))) h) + +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c0_c2 : + adaptiveCoverCheck 5 (childHL thetaBelowCell111133113110) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133113110) + cover_subtree_3f70d11b4e7e + cover_subtree_adb043cdb732 + (by + have h : ((childHL (childHL thetaBelowCell111133113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL thetaBelowCell111133113110)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133113110))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL thetaBelowCell111133113110)) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells50ae5a428f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells50ae5a428f + +open CertificateCells50ae5a428f +theorem cover_subtree_2e97d4844408 : + adaptiveCoverCheck 3 (childHL (childHL (childLH thetaBelowCell111133113110))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHL (childLH + thetaBelowCell111133113110))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131101220 + (by + have h : ((childLL thetaBelowCell1111331131101220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131101220) h) + (by + have h : ((childLH thetaBelowCell1111331131101220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131101220) h) + (by + have h : ((childHL thetaBelowCell1111331131101220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131101220) h) + (by + have h : ((childHH thetaBelowCell1111331131101220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131101220) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131101221 + (by + have h : ((childLL thetaBelowCell1111331131101221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131101221) h) + (by + have h : ((childLH thetaBelowCell1111331131101221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131101221) h) + (by + have h : ((childHL thetaBelowCell1111331131101221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131101221) h) + (by + have h : ((childHH thetaBelowCell1111331131101221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131101221) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131101222 + (by + have h : ((childLL thetaBelowCell1111331131101222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131101222) h) + (by + have h : ((childLH thetaBelowCell1111331131101222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131101222) h) + (by + have h : ((childHL thetaBelowCell1111331131101222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131101222) h) + (by + have h : ((childHH thetaBelowCell1111331131101222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131101222) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131101223 + (by + have h : ((childLL thetaBelowCell1111331131101223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131101223) h) + (by + have h : ((childLH thetaBelowCell1111331131101223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131101223) h) + (by + have h : ((childHL thetaBelowCell1111331131101223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131101223) h) + (by + have h : ((childHH thetaBelowCell1111331131101223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131101223) h)) + +theorem cover_subtree_0dc0f2664d18 : + adaptiveCoverCheck 3 (childHH (childHL (childLH thetaBelowCell111133113110))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHL (childLH + thetaBelowCell111133113110))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131101230 + (by + have h : ((childLL thetaBelowCell1111331131101230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131101230) h) + (by + have h : ((childLH thetaBelowCell1111331131101230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131101230) h) + (by + have h : ((childHL thetaBelowCell1111331131101230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131101230) h) + (by + have h : ((childHH thetaBelowCell1111331131101230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131101230) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131101231 + (by + have h : ((childLL thetaBelowCell1111331131101231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131101231) h) + (by + have h : ((childLH thetaBelowCell1111331131101231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131101231) h) + (by + have h : ((childHL thetaBelowCell1111331131101231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131101231) h) + (by + have h : ((childHH thetaBelowCell1111331131101231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131101231) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131101232 + (by + have h : ((childLL thetaBelowCell1111331131101232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131101232) h) + (by + have h : ((childLH thetaBelowCell1111331131101232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131101232) h) + (by + have h : ((childHL thetaBelowCell1111331131101232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131101232) h) + (by + have h : ((childHH thetaBelowCell1111331131101232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131101232) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131101233 + (by + have h : ((childLL thetaBelowCell1111331131101233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131101233) h) + (by + have h : ((childLH thetaBelowCell1111331131101233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131101233) h) + (by + have h : ((childHL thetaBelowCell1111331131101233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131101233) h) + (by + have h : ((childHH thetaBelowCell1111331131101233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131101233) h)) + +theorem cover_subtree_60a2aff6cef2 : + adaptiveCoverCheck 4 (childHL (childLH thetaBelowCell111133113110)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH thetaBelowCell111133113110)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHL (childLH + thetaBelowCell111133113110))) + (by + have h : (thetaBelowCell1111331131101200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131101200 h) + (by + have h : (thetaBelowCell1111331131101201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131101201 h) + (by + have h : (thetaBelowCell1111331131101202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131101202 h) + (by + have h : (thetaBelowCell1111331131101203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131101203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHL (childLH + thetaBelowCell111133113110))) + (by + have h : (thetaBelowCell1111331131101210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131101210 h) + (by + have h : (thetaBelowCell1111331131101211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131101211 h) + (by + have h : (thetaBelowCell1111331131101212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131101212 h) + (by + have h : (thetaBelowCell1111331131101213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131101213 h)) + cover_subtree_2e97d4844408 + cover_subtree_0dc0f2664d18 + +theorem cover_subtree_ab4066e0c111 : + adaptiveCoverCheck 3 (childHL (childHH (childLH thetaBelowCell111133113110))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHH (childLH + thetaBelowCell111133113110))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131101320 + (by + have h : ((childLL thetaBelowCell1111331131101320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131101320) h) + (by + have h : ((childLH thetaBelowCell1111331131101320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131101320) h) + (by + have h : ((childHL thetaBelowCell1111331131101320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131101320) h) + (by + have h : ((childHH thetaBelowCell1111331131101320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131101320) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131101321 + (by + have h : ((childLL thetaBelowCell1111331131101321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131101321) h) + (by + have h : ((childLH thetaBelowCell1111331131101321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131101321) h) + (by + have h : ((childHL thetaBelowCell1111331131101321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131101321) h) + (by + have h : ((childHH thetaBelowCell1111331131101321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131101321) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131101322 + (by + have h : ((childLL thetaBelowCell1111331131101322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131101322) h) + (by + have h : ((childLH thetaBelowCell1111331131101322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131101322) h) + (by + have h : ((childHL thetaBelowCell1111331131101322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131101322) h) + (by + have h : ((childHH thetaBelowCell1111331131101322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131101322) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131101323 + (by + have h : ((childLL thetaBelowCell1111331131101323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131101323) h) + (by + have h : ((childLH thetaBelowCell1111331131101323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131101323) h) + (by + have h : ((childHL thetaBelowCell1111331131101323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131101323) h) + (by + have h : ((childHH thetaBelowCell1111331131101323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131101323) h)) + +theorem cover_subtree_8607f2894d1c : + adaptiveCoverCheck 3 (childHH (childHH (childLH thetaBelowCell111133113110))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHH (childLH + thetaBelowCell111133113110))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131101330 + (by + have h : ((childLL thetaBelowCell1111331131101330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131101330) h) + (by + have h : ((childLH thetaBelowCell1111331131101330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131101330) h) + (by + have h : ((childHL thetaBelowCell1111331131101330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131101330) h) + (by + have h : ((childHH thetaBelowCell1111331131101330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131101330) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131101331 + (by + have h : ((childLL thetaBelowCell1111331131101331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131101331) h) + (by + have h : ((childLH thetaBelowCell1111331131101331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131101331) h) + (by + have h : ((childHL thetaBelowCell1111331131101331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131101331) h) + (by + have h : ((childHH thetaBelowCell1111331131101331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131101331) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131101332 + (by + have h : ((childLL thetaBelowCell1111331131101332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131101332) h) + (by + have h : ((childLH thetaBelowCell1111331131101332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131101332) h) + (by + have h : ((childHL thetaBelowCell1111331131101332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131101332) h) + (by + have h : ((childHH thetaBelowCell1111331131101332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131101332) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131101333 + (by + have h : ((childLL thetaBelowCell1111331131101333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131101333) h) + (by + have h : ((childLH thetaBelowCell1111331131101333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131101333) h) + (by + have h : ((childHL thetaBelowCell1111331131101333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131101333) h) + (by + have h : ((childHH thetaBelowCell1111331131101333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131101333) h)) + +theorem cover_subtree_dca1503025ec : + adaptiveCoverCheck 4 (childHH (childLH thetaBelowCell111133113110)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH thetaBelowCell111133113110)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHH (childLH + thetaBelowCell111133113110))) + (by + have h : (thetaBelowCell1111331131101300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131101300 h) + (by + have h : (thetaBelowCell1111331131101301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131101301 h) + (by + have h : (thetaBelowCell1111331131101302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131101302 h) + (by + have h : (thetaBelowCell1111331131101303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131101303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHH (childLH + thetaBelowCell111133113110))) + (by + have h : (thetaBelowCell1111331131101310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131101310 h) + (by + have h : (thetaBelowCell1111331131101311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131101311 h) + (by + have h : (thetaBelowCell1111331131101312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131101312 h) + (by + have h : (thetaBelowCell1111331131101313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131101313 h)) + cover_subtree_ab4066e0c111 + cover_subtree_8607f2894d1c + +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c0_c1 : + adaptiveCoverCheck 5 (childLH thetaBelowCell111133113110) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133113110) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH thetaBelowCell111133113110)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLH + thetaBelowCell111133113110))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLH + thetaBelowCell111133113110))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLH + thetaBelowCell111133113110))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLH + thetaBelowCell111133113110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH thetaBelowCell111133113110)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLH + thetaBelowCell111133113110))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLH + thetaBelowCell111133113110))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLH + thetaBelowCell111133113110))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLH + thetaBelowCell111133113110))) h)) + cover_subtree_60a2aff6cef2 + cover_subtree_dca1503025ec + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells754567fdeb + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells754567fdeb + +open CertificateCells754567fdeb +theorem e24KC2ThetaAboveLeaf0000220021_c0_c1_c2_c2 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022002101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022002101)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022002101))) + (by + have h : (thetaAboveCell0000220021012200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012200 h) + (by + have h : (thetaAboveCell0000220021012201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012201 h) + (by + have h : (thetaAboveCell0000220021012202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012202 h) + (by + have h : (thetaAboveCell0000220021012203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022002101))) + (by + have h : (thetaAboveCell0000220021012210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012210 h) + (by + have h : (thetaAboveCell0000220021012211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012211 h) + (by + have h : (thetaAboveCell0000220021012212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012212 h) + (by + have h : (thetaAboveCell0000220021012213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022002101))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022002101))) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells146a7460c7 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells146a7460c7 + +open CertificateCells146a7460c7 +theorem e24KC2ThetaAboveLeaf0000220021_c0_c0_c2_c2 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022002100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022002100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022002100))) + (by + have h : (thetaAboveCell0000220021002200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002200 h) + (by + have h : (thetaAboveCell0000220021002201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002201 h) + (by + have h : (thetaAboveCell0000220021002202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002202 h) + (by + have h : (thetaAboveCell0000220021002203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022002100))) + (by + have h : (thetaAboveCell0000220021002210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002210 h) + (by + have h : (thetaAboveCell0000220021002211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002211 h) + (by + have h : (thetaAboveCell0000220021002212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002212 h) + (by + have h : (thetaAboveCell0000220021002213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022002100))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022002100))) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5446bfae87 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5446bfae87 + +open CertificateCells5446bfae87 +theorem cover_subtree_847043a66fa6 : + adaptiveCoverCheck 3 (childHL (childHL (childLL thetaBelowCell111133113110))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHL (childLL + thetaBelowCell111133113110))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131100220 + (by + have h : ((childLL thetaBelowCell1111331131100220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131100220) h) + (by + have h : ((childLH thetaBelowCell1111331131100220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131100220) h) + (by + have h : ((childHL thetaBelowCell1111331131100220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131100220) h) + (by + have h : ((childHH thetaBelowCell1111331131100220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131100220) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131100221 + (by + have h : ((childLL thetaBelowCell1111331131100221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131100221) h) + (by + have h : ((childLH thetaBelowCell1111331131100221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131100221) h) + (by + have h : ((childHL thetaBelowCell1111331131100221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131100221) h) + (by + have h : ((childHH thetaBelowCell1111331131100221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131100221) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131100222 + (by + have h : ((childLL thetaBelowCell1111331131100222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131100222) h) + (by + have h : ((childLH thetaBelowCell1111331131100222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131100222) h) + (by + have h : ((childHL thetaBelowCell1111331131100222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131100222) h) + (by + have h : ((childHH thetaBelowCell1111331131100222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131100222) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131100223 + (by + have h : ((childLL thetaBelowCell1111331131100223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131100223) h) + (by + have h : ((childLH thetaBelowCell1111331131100223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131100223) h) + (by + have h : ((childHL thetaBelowCell1111331131100223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131100223) h) + (by + have h : ((childHH thetaBelowCell1111331131100223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131100223) h)) + +theorem cover_subtree_9cd5da4b1592 : + adaptiveCoverCheck 3 (childHH (childHL (childLL thetaBelowCell111133113110))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHL (childLL + thetaBelowCell111133113110))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131100230 + (by + have h : ((childLL thetaBelowCell1111331131100230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131100230) h) + (by + have h : ((childLH thetaBelowCell1111331131100230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131100230) h) + (by + have h : ((childHL thetaBelowCell1111331131100230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131100230) h) + (by + have h : ((childHH thetaBelowCell1111331131100230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131100230) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131100231 + (by + have h : ((childLL thetaBelowCell1111331131100231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131100231) h) + (by + have h : ((childLH thetaBelowCell1111331131100231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131100231) h) + (by + have h : ((childHL thetaBelowCell1111331131100231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131100231) h) + (by + have h : ((childHH thetaBelowCell1111331131100231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131100231) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131100232 + (by + have h : ((childLL thetaBelowCell1111331131100232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131100232) h) + (by + have h : ((childLH thetaBelowCell1111331131100232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131100232) h) + (by + have h : ((childHL thetaBelowCell1111331131100232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131100232) h) + (by + have h : ((childHH thetaBelowCell1111331131100232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131100232) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131100233 + (by + have h : ((childLL thetaBelowCell1111331131100233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131100233) h) + (by + have h : ((childLH thetaBelowCell1111331131100233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131100233) h) + (by + have h : ((childHL thetaBelowCell1111331131100233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131100233) h) + (by + have h : ((childHH thetaBelowCell1111331131100233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131100233) h)) + +theorem cover_subtree_49612604cfd8 : + adaptiveCoverCheck 4 (childHL (childLL thetaBelowCell111133113110)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL thetaBelowCell111133113110)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHL (childLL + thetaBelowCell111133113110))) + (by + have h : (thetaBelowCell1111331131100200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131100200 h) + (by + have h : (thetaBelowCell1111331131100201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131100201 h) + (by + have h : (thetaBelowCell1111331131100202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131100202 h) + (by + have h : (thetaBelowCell1111331131100203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131100203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHL (childLL + thetaBelowCell111133113110))) + (by + have h : (thetaBelowCell1111331131100210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131100210 h) + (by + have h : (thetaBelowCell1111331131100211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131100211 h) + (by + have h : (thetaBelowCell1111331131100212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131100212 h) + (by + have h : (thetaBelowCell1111331131100213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131100213 h)) + cover_subtree_847043a66fa6 + cover_subtree_9cd5da4b1592 + +theorem cover_subtree_e94de792d061 : + adaptiveCoverCheck 3 (childHL (childHH (childLL thetaBelowCell111133113110))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHH (childLL + thetaBelowCell111133113110))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131100320 + (by + have h : ((childLL thetaBelowCell1111331131100320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131100320) h) + (by + have h : ((childLH thetaBelowCell1111331131100320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131100320) h) + (by + have h : ((childHL thetaBelowCell1111331131100320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131100320) h) + (by + have h : ((childHH thetaBelowCell1111331131100320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131100320) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131100321 + (by + have h : ((childLL thetaBelowCell1111331131100321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131100321) h) + (by + have h : ((childLH thetaBelowCell1111331131100321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131100321) h) + (by + have h : ((childHL thetaBelowCell1111331131100321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131100321) h) + (by + have h : ((childHH thetaBelowCell1111331131100321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131100321) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131100322 + (by + have h : ((childLL thetaBelowCell1111331131100322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131100322) h) + (by + have h : ((childLH thetaBelowCell1111331131100322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131100322) h) + (by + have h : ((childHL thetaBelowCell1111331131100322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131100322) h) + (by + have h : ((childHH thetaBelowCell1111331131100322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131100322) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131100323 + (by + have h : ((childLL thetaBelowCell1111331131100323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131100323) h) + (by + have h : ((childLH thetaBelowCell1111331131100323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131100323) h) + (by + have h : ((childHL thetaBelowCell1111331131100323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131100323) h) + (by + have h : ((childHH thetaBelowCell1111331131100323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131100323) h)) + +theorem cover_subtree_0fbb14a9cae8 : + adaptiveCoverCheck 3 (childHH (childHH (childLL thetaBelowCell111133113110))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHH (childLL + thetaBelowCell111133113110))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131100330 + (by + have h : ((childLL thetaBelowCell1111331131100330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131100330) h) + (by + have h : ((childLH thetaBelowCell1111331131100330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131100330) h) + (by + have h : ((childHL thetaBelowCell1111331131100330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131100330) h) + (by + have h : ((childHH thetaBelowCell1111331131100330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131100330) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131100331 + (by + have h : ((childLL thetaBelowCell1111331131100331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131100331) h) + (by + have h : ((childLH thetaBelowCell1111331131100331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131100331) h) + (by + have h : ((childHL thetaBelowCell1111331131100331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131100331) h) + (by + have h : ((childHH thetaBelowCell1111331131100331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131100331) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131100332 + (by + have h : ((childLL thetaBelowCell1111331131100332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131100332) h) + (by + have h : ((childLH thetaBelowCell1111331131100332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131100332) h) + (by + have h : ((childHL thetaBelowCell1111331131100332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131100332) h) + (by + have h : ((childHH thetaBelowCell1111331131100332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131100332) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131100333 + (by + have h : ((childLL thetaBelowCell1111331131100333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131100333) h) + (by + have h : ((childLH thetaBelowCell1111331131100333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131100333) h) + (by + have h : ((childHL thetaBelowCell1111331131100333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131100333) h) + (by + have h : ((childHH thetaBelowCell1111331131100333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131100333) h)) + +theorem cover_subtree_ac6486a45a05 : + adaptiveCoverCheck 4 (childHH (childLL thetaBelowCell111133113110)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL thetaBelowCell111133113110)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHH (childLL + thetaBelowCell111133113110))) + (by + have h : (thetaBelowCell1111331131100300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131100300 h) + (by + have h : (thetaBelowCell1111331131100301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131100301 h) + (by + have h : (thetaBelowCell1111331131100302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131100302 h) + (by + have h : (thetaBelowCell1111331131100303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131100303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHH (childLL + thetaBelowCell111133113110))) + (by + have h : (thetaBelowCell1111331131100310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131100310 h) + (by + have h : (thetaBelowCell1111331131100311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131100311 h) + (by + have h : (thetaBelowCell1111331131100312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131100312 h) + (by + have h : (thetaBelowCell1111331131100313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131100313 h)) + cover_subtree_e94de792d061 + cover_subtree_0fbb14a9cae8 + +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c0_c0 : + adaptiveCoverCheck 5 (childLL thetaBelowCell111133113110) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133113110) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL thetaBelowCell111133113110)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLL + thetaBelowCell111133113110))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLL + thetaBelowCell111133113110))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLL + thetaBelowCell111133113110))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLL + thetaBelowCell111133113110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL thetaBelowCell111133113110)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLL + thetaBelowCell111133113110))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLL + thetaBelowCell111133113110))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLL + thetaBelowCell111133113110))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLL + thetaBelowCell111133113110))) h)) + cover_subtree_49612604cfd8 + cover_subtree_ac6486a45a05 + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle020.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle020.lean new file mode 100644 index 0000000000..14911cdd02 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle020.lean @@ -0,0 +1,13044 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle019 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch033`. +* `GerverSofa.KernelOnly.PartE.Certificates.Batch043`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCellsefec3b1324 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331131111222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131111222 : AngleCell := + childHL (childHL (childHL (childLH thetaBelowCell111133113111))) + +/-- Subcell `1111331131111223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131111223 : AngleCell := + childHH (childHL (childHL (childLH thetaBelowCell111133113111))) + +/-- Subcell `1111331131111220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131111220 : AngleCell := + childLL (childHL (childHL (childLH thetaBelowCell111133113111))) + +/-- Subcell `1111331131111221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131111221 : AngleCell := + childLH (childHL (childHL (childLH thetaBelowCell111133113111))) + +/-- Subcell `1111331131111232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131111232 : AngleCell := + childHL (childHH (childHL (childLH thetaBelowCell111133113111))) + +/-- Subcell `1111331131111233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131111233 : AngleCell := + childHH (childHH (childHL (childLH thetaBelowCell111133113111))) + +/-- Subcell `1111331131111230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131111230 : AngleCell := + childLL (childHH (childHL (childLH thetaBelowCell111133113111))) + +/-- Subcell `1111331131111231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131111231 : AngleCell := + childLH (childHH (childHL (childLH thetaBelowCell111133113111))) + +/-- Subcell `1111331131111322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131111322 : AngleCell := + childHL (childHL (childHH (childLH thetaBelowCell111133113111))) + +/-- Subcell `1111331131111323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131111323 : AngleCell := + childHH (childHL (childHH (childLH thetaBelowCell111133113111))) + +/-- Subcell `1111331131111320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131111320 : AngleCell := + childLL (childHL (childHH (childLH thetaBelowCell111133113111))) + +/-- Subcell `1111331131111321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131111321 : AngleCell := + childLH (childHL (childHH (childLH thetaBelowCell111133113111))) + +/-- Subcell `1111331131111330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131111330 : AngleCell := + childLL (childHH (childHH (childLH thetaBelowCell111133113111))) + +/-- Subcell `1111331131111331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131111331 : AngleCell := + childLH (childHH (childHH (childLH thetaBelowCell111133113111))) + +/-- Subcell `1111331131111332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131111332 : AngleCell := + childHL (childHH (childHH (childLH thetaBelowCell111133113111))) + +/-- Subcell `1111331131111333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131111333 : AngleCell := + childHH (childHH (childHH (childLH thetaBelowCell111133113111))) + +end GerverSofa.PartE.CertificateCellsefec3b1324 + +namespace GerverSofa.PartE.CertificateCells11cd3db1c7 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113110 : AngleCell := + childLL (childLH (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331131103000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103000 : AngleCell := + childLL (childLL (childLL (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103001 : AngleCell := + childLH (childLL (childLL (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103002 : AngleCell := + childHL (childLL (childLL (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103003 : AngleCell := + childHH (childLL (childLL (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103010 : AngleCell := + childLL (childLH (childLL (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103011 : AngleCell := + childLH (childLH (childLL (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103012 : AngleCell := + childHL (childLH (childLL (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103013 : AngleCell := + childHH (childLH (childLL (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103100 : AngleCell := + childLL (childLL (childLH (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103101 : AngleCell := + childLH (childLL (childLH (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103102 : AngleCell := + childHL (childLL (childLH (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103103 : AngleCell := + childHH (childLL (childLH (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103110 : AngleCell := + childLL (childLH (childLH (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103112 : AngleCell := + childHL (childLH (childLH (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103113 : AngleCell := + childHH (childLH (childLH (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103130 : AngleCell := + childLL (childHH (childLH (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103131 : AngleCell := + childLH (childHH (childLH (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103132 : AngleCell := + childHL (childHH (childLH (childHH thetaBelowCell111133113110))) + +/-- Subcell `1111331131103133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131103133 : AngleCell := + childHH (childHH (childLH (childHH thetaBelowCell111133113110))) + +end GerverSofa.PartE.CertificateCells11cd3db1c7 + +namespace GerverSofa.PartE.CertificateCellse82c2dced4 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113110 : AngleCell := + childLL (childLH (childLH (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCellse82c2dced4 + +namespace GerverSofa.PartE.CertificateCells7a1b24c2da + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113101 : AngleCell := + childLH (childLL (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331131011220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011220 : AngleCell := + childLL (childHL (childHL (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011221 : AngleCell := + childLH (childHL (childHL (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011222 : AngleCell := + childHL (childHL (childHL (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011223 : AngleCell := + childHH (childHL (childHL (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011230 : AngleCell := + childLL (childHH (childHL (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011231 : AngleCell := + childLH (childHH (childHL (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011232 : AngleCell := + childHL (childHH (childHL (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011233 : AngleCell := + childHH (childHH (childHL (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011200 : AngleCell := + childLL (childLL (childHL (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011201 : AngleCell := + childLH (childLL (childHL (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011202 : AngleCell := + childHL (childLL (childHL (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011203 : AngleCell := + childHH (childLL (childHL (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011210 : AngleCell := + childLL (childLH (childHL (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011211 : AngleCell := + childLH (childLH (childHL (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011212 : AngleCell := + childHL (childLH (childHL (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011213 : AngleCell := + childHH (childLH (childHL (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011320 : AngleCell := + childLL (childHL (childHH (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011321 : AngleCell := + childLH (childHL (childHH (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011322 : AngleCell := + childHL (childHL (childHH (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011323 : AngleCell := + childHH (childHL (childHH (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011330 : AngleCell := + childLL (childHH (childHH (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011331 : AngleCell := + childLH (childHH (childHH (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011332 : AngleCell := + childHL (childHH (childHH (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011333 : AngleCell := + childHH (childHH (childHH (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011300 : AngleCell := + childLL (childLL (childHH (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011301 : AngleCell := + childLH (childLL (childHH (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011302 : AngleCell := + childHL (childLL (childHH (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011303 : AngleCell := + childHH (childLL (childHH (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011310 : AngleCell := + childLL (childLH (childHH (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011311 : AngleCell := + childLH (childLH (childHH (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011312 : AngleCell := + childHL (childLH (childHH (childLH thetaBelowCell111133113101))) + +/-- Subcell `1111331131011313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131011313 : AngleCell := + childHH (childLH (childHH (childLH thetaBelowCell111133113101))) + +end GerverSofa.PartE.CertificateCells7a1b24c2da + +namespace GerverSofa.PartE.CertificateCells3846b81fdf + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220021003002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022002100))) + +end GerverSofa.PartE.CertificateCells3846b81fdf + +namespace GerverSofa.PartE.CertificateCells8d8f6e86b1 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells8d8f6e86b1 + +namespace GerverSofa.PartE.CertificateCells67d4ab08b2 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220021003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022002100))) + +end GerverSofa.PartE.CertificateCells67d4ab08b2 + +namespace GerverSofa.PartE.CertificateCells37e4000123 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113113 : AngleCell := + childHH (childLH (childLH (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCells37e4000123 + +namespace GerverSofa.PartE.CertificateCells61d6915992 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCells61d6915992 + +namespace GerverSofa.PartE.CertificateCells49a6e2db55 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCells49a6e2db55 + +namespace GerverSofa.PartE.CertificateCells23cc985c42 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCells23cc985c42 + +namespace GerverSofa.PartE.CoverCertificate19031d0370 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childHL (childLH (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell0000 : AngleCell := + childLL cell000 + +private abbrev cell0001 : AngleCell := + childLH cell000 + +private abbrev cell0002 : AngleCell := + childHL cell000 + +private abbrev cell0003 : AngleCell := + childHH cell000 + +private abbrev cell0010 : AngleCell := + childLL cell001 + +private abbrev cell0011 : AngleCell := + childLH cell001 + +private abbrev cell0012 : AngleCell := + childHL cell001 + +private abbrev cell0013 : AngleCell := + childHH cell001 + +private abbrev cell0100 : AngleCell := + childLL cell010 + +private abbrev cell0101 : AngleCell := + childLH cell010 + +private abbrev cell0102 : AngleCell := + childHL cell010 + +private abbrev cell0103 : AngleCell := + childHH cell010 + +private abbrev cell0110 : AngleCell := + childLL cell011 + +private abbrev cell0111 : AngleCell := + childLH cell011 + +private abbrev cell0112 : AngleCell := + childHL cell011 + +private abbrev cell0113 : AngleCell := + childHH cell011 + +private abbrev cell1000 : AngleCell := + childLL cell100 + +private abbrev cell1001 : AngleCell := + childLH cell100 + +private abbrev cell1002 : AngleCell := + childHL cell100 + +private abbrev cell1003 : AngleCell := + childHH cell100 + +private abbrev cell1010 : AngleCell := + childLL cell101 + +private abbrev cell1011 : AngleCell := + childLH cell101 + +private abbrev cell1012 : AngleCell := + childHL cell101 + +private abbrev cell1013 : AngleCell := + childHH cell101 + +end GerverSofa.PartE.CoverCertificate19031d0370 + +namespace GerverSofa.PartE.CoverCertificate30936f26ba + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childHL (childLH (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +end GerverSofa.PartE.CoverCertificate30936f26ba + +namespace GerverSofa.PartE.CoverCertificate953a140331 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childHL (childLH (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate953a140331 + +namespace GerverSofa.PartE.CoverCertificatec0f3040bb9 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLH (childHL (childLH (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +end GerverSofa.PartE.CoverCertificatec0f3040bb9 + +namespace GerverSofa.PartE.CoverCertificatec5d26eacb3 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childHL (childLH (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +private abbrev cell2200 : AngleCell := + childLL cell220 + +private abbrev cell2201 : AngleCell := + childLH cell220 + +private abbrev cell2202 : AngleCell := + childHL cell220 + +private abbrev cell2203 : AngleCell := + childHH cell220 + +private abbrev cell2210 : AngleCell := + childLL cell221 + +private abbrev cell2211 : AngleCell := + childLH cell221 + +private abbrev cell2212 : AngleCell := + childHL cell221 + +private abbrev cell2213 : AngleCell := + childHH cell221 + +private abbrev cell2300 : AngleCell := + childLL cell230 + +private abbrev cell2301 : AngleCell := + childLH cell230 + +private abbrev cell2302 : AngleCell := + childHL cell230 + +private abbrev cell2303 : AngleCell := + childHH cell230 + +private abbrev cell2310 : AngleCell := + childLL cell231 + +private abbrev cell2311 : AngleCell := + childLH cell231 + +private abbrev cell2312 : AngleCell := + childHL cell231 + +private abbrev cell2313 : AngleCell := + childHH cell231 + +private abbrev cell3200 : AngleCell := + childLL cell320 + +private abbrev cell3201 : AngleCell := + childLH cell320 + +private abbrev cell3202 : AngleCell := + childHL cell320 + +private abbrev cell3203 : AngleCell := + childHH cell320 + +private abbrev cell3210 : AngleCell := + childLL cell321 + +private abbrev cell3211 : AngleCell := + childLH cell321 + +private abbrev cell3212 : AngleCell := + childHL cell321 + +private abbrev cell3213 : AngleCell := + childHH cell321 + +private abbrev cell3300 : AngleCell := + childLL cell330 + +private abbrev cell3301 : AngleCell := + childLH cell330 + +private abbrev cell3302 : AngleCell := + childHL cell330 + +private abbrev cell3303 : AngleCell := + childHH cell330 + +private abbrev cell3310 : AngleCell := + childLL cell331 + +private abbrev cell3311 : AngleCell := + childLH cell331 + +private abbrev cell3312 : AngleCell := + childHL cell331 + +private abbrev cell3313 : AngleCell := + childHH cell331 + +end GerverSofa.PartE.CoverCertificatec5d26eacb3 + +namespace GerverSofa.PartE.CoverCertificate3612aa63be + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childHL (childLH (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +end GerverSofa.PartE.CoverCertificate3612aa63be + +namespace GerverSofa.PartE.CoverCertificateba32fc9e0a + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childHL (childLH (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +end GerverSofa.PartE.CoverCertificateba32fc9e0a + +namespace GerverSofa.PartE.CoverCertificate2170ad4ca0 + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childLH (childLL (childLL (childHL (childLL (childLL (childHL (childHL + (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate2170ad4ca0 + +namespace GerverSofa.PartE.CoverCertificate513511aa15 + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childLH (childLL (childLL (childHL (childLL (childLL (childHL (childHL + (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate513511aa15 + +namespace GerverSofa.PartE.CoverCertificate3743e2f873 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childHH (childLH (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +private abbrev cell2200 : AngleCell := + childLL cell220 + +private abbrev cell2201 : AngleCell := + childLH cell220 + +private abbrev cell2202 : AngleCell := + childHL cell220 + +private abbrev cell2203 : AngleCell := + childHH cell220 + +private abbrev cell2210 : AngleCell := + childLL cell221 + +private abbrev cell2211 : AngleCell := + childLH cell221 + +private abbrev cell2212 : AngleCell := + childHL cell221 + +private abbrev cell2213 : AngleCell := + childHH cell221 + +private abbrev cell2300 : AngleCell := + childLL cell230 + +private abbrev cell2301 : AngleCell := + childLH cell230 + +private abbrev cell2302 : AngleCell := + childHL cell230 + +private abbrev cell2303 : AngleCell := + childHH cell230 + +end GerverSofa.PartE.CoverCertificate3743e2f873 + +namespace GerverSofa.PartE.CoverCertificate3e2742ca77 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childHH (childLH (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate3e2742ca77 + +namespace GerverSofa.PartE.CoverCertificate05d280259b + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childHH (childLH (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +end GerverSofa.PartE.CoverCertificate05d280259b + +namespace GerverSofa.PartE.CoverCertificate73ec5d89dc + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childHH (childLH (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +end GerverSofa.PartE.CoverCertificate73ec5d89dc + +namespace GerverSofa.PartE.CoverCertificated1fc30835b + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childHH (childLH (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificated1fc30835b + +namespace GerverSofa.PartE.CoverCertificatec03bec1842 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childHH (childLH (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatec03bec1842 + +namespace GerverSofa.PartE.CoverCertificate854ce4fcce + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childHH (childLH (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +end GerverSofa.PartE.CoverCertificate854ce4fcce + +namespace GerverSofa.PartE.CoverCertificate756063c6fb + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childHH (childLH (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +end GerverSofa.PartE.CoverCertificate756063c6fb + +namespace GerverSofa.PartE.CoverCertificatebb637b4eef + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childLH (childLL (childLL (childHL (childLL (childLL (childHL (childHL + (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatebb637b4eef + +namespace GerverSofa.PartE.CoverCertificate7fa5919613 + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childLH (childLL (childLL (childHL (childLL (childLL (childHL (childHL + (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate7fa5919613 + +namespace GerverSofa.PartE.CoverCertificateb766a036ce + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLL (childHL (childLL (childLL (childHL (childHL (childLL (childLL + (childLL (childLL (e24ThetaAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificateb766a036ce + +namespace GerverSofa.PartE.CoverCertificate61295956d2 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLL (childHL (childLL (childLL (childHL (childHL (childLL (childLL + (childLL (childLL (e24ThetaAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate61295956d2 + +namespace GerverSofa.PartE.CoverCertificate828511f0b8 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLH (childLL (childHL (childLL (childLL (childHL (childHL (childLL + (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate828511f0b8 + +namespace GerverSofa.PartE.CoverCertificated54c339469 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLH (childLL (childHL (childLL (childLL (childHL (childHL (childLL + (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificated54c339469 + +namespace GerverSofa.PartE.CoverCertificate4dd8dcfac0 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childHL (childLL (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate4dd8dcfac0 + +namespace GerverSofa.PartE.CoverCertificate4ee27c37fd + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childHL (childLL (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate4ee27c37fd + +namespace GerverSofa.PartE.CoverCertificated7b655454c + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childHL (childLL (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +end GerverSofa.PartE.CoverCertificated7b655454c + +namespace GerverSofa.PartE.CoverCertificate34bc1a6525 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childHL (childLL (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +end GerverSofa.PartE.CoverCertificate34bc1a6525 + +namespace GerverSofa.PartE.CoverCertificate6e40ca0512 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childHL (childLL (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate6e40ca0512 + +namespace GerverSofa.PartE.CoverCertificateefd035cf65 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childHL (childLL (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificateefd035cf65 + +namespace GerverSofa.PartE.CoverCertificatea4b667aaa0 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childHL (childLL (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +end GerverSofa.PartE.CoverCertificatea4b667aaa0 + +namespace GerverSofa.PartE.CoverCertificateccad0dc048 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childHL (childLL (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +end GerverSofa.PartE.CoverCertificateccad0dc048 + +namespace GerverSofa.PartE.CoverCertificate89deca0334 + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childLL (childLH (childLL (childHL (childLL (childLL (childHL (childHL + (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate89deca0334 + +namespace GerverSofa.PartE.CoverCertificate8778f820bd + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childLL (childLH (childLL (childHL (childLL (childLL (childHL (childHL + (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate8778f820bd + +namespace GerverSofa.PartE.CoverCertificatef14d24461a + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childHH (childLL (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatef14d24461a + +namespace GerverSofa.PartE.CoverCertificate79980b2e6c + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childHH (childLL (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate79980b2e6c + +namespace GerverSofa.PartE.CoverCertificateed2ff1f24e + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childHH (childLL (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +end GerverSofa.PartE.CoverCertificateed2ff1f24e + +namespace GerverSofa.PartE.CoverCertificate4bcf50db3e + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childHH (childLL (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +end GerverSofa.PartE.CoverCertificate4bcf50db3e + +namespace GerverSofa.PartE.CoverCertificate1e4788169b + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childHH (childLL (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate1e4788169b + +namespace GerverSofa.PartE.CoverCertificate4f5a63a5df + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childHH (childLL (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate4f5a63a5df + +namespace GerverSofa.PartE.CoverCertificate89bb9fd21e + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childHH (childLL (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +end GerverSofa.PartE.CoverCertificate89bb9fd21e + +namespace GerverSofa.PartE.CoverCertificate5c80136736 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childHH (childLL (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +end GerverSofa.PartE.CoverCertificate5c80136736 + +namespace GerverSofa.PartE.CoverCertificate645f79320a + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childLL (childLH (childLL (childHL (childLL (childLL (childHL (childHL + (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate645f79320a + +namespace GerverSofa.PartE.CoverCertificate3e0a4a2c6f + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childLL (childLH (childLL (childHL (childLL (childLL (childHL (childHL + (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate3e0a4a2c6f + +namespace GerverSofa.PartE.CertificateCells6deb17ad88 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells6deb17ad88 + +namespace GerverSofa.PartE.CertificateCells21b7c7dcb8 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells21b7c7dcb8 + +namespace GerverSofa.PartE.CertificateCells51629e8703 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020012100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020012100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell000022002001))) + +end GerverSofa.PartE.CertificateCells51629e8703 + +namespace GerverSofa.PartE.CertificateCellse4c4271ea3 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020012101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020012101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell000022002001))) + +end GerverSofa.PartE.CertificateCellse4c4271ea3 + +namespace GerverSofa.PartE.CertificateCells07d8bdd7d9 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020012102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020012102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell000022002001))) + +end GerverSofa.PartE.CertificateCells07d8bdd7d9 + +namespace GerverSofa.PartE.CertificateCells2bf9eb5708 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020012103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020012103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell000022002001))) + +end GerverSofa.PartE.CertificateCells2bf9eb5708 + +namespace GerverSofa.PartE.CertificateCells7eefa0b856 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells7eefa0b856 + +namespace GerverSofa.PartE.CertificateCellsdb6ef42c13 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsdb6ef42c13 + +namespace GerverSofa.PartE.CertificateCells91885e0374 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells91885e0374 + +namespace GerverSofa.PartE.CertificateCellsba71b1d520 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsba71b1d520 + +namespace GerverSofa.PartE.CertificateCells54caf0dec0 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells54caf0dec0 + +namespace GerverSofa.PartE.CertificateCells22ecf07105 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells22ecf07105 + +namespace GerverSofa.PartE.CertificateCells2d236bc977 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells2d236bc977 + +namespace GerverSofa.PartE.CertificateCellsfbf08c6815 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsfbf08c6815 + +namespace GerverSofa.PartE.CertificateCellsb2588049db + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsb2588049db + +namespace GerverSofa.PartE.CertificateCells80702a4342 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells80702a4342 + +namespace GerverSofa.PartE.CertificateCellsfcacd99e70 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsfcacd99e70 + +namespace GerverSofa.PartE.CertificateCellsc63c49e043 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsc63c49e043 + +namespace GerverSofa.PartE.CertificateCellse2c2881509 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellse2c2881509 + +namespace GerverSofa.PartE.CertificateCells1273bfc545 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells1273bfc545 + +namespace GerverSofa.PartE.CertificateCells758d72a450 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells758d72a450 + +namespace GerverSofa.PartE.CertificateCells898eeb07c6 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells898eeb07c6 + +namespace GerverSofa.PartE.CertificateCells3b9ec898a9 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells3b9ec898a9 + +namespace GerverSofa.PartE.CertificateCellscbef0a66a7 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellscbef0a66a7 + +namespace GerverSofa.PartE.CertificateCells0e30799078 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells0e30799078 + +namespace GerverSofa.PartE.CertificateCellsaa7ab31314 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsaa7ab31314 + +namespace GerverSofa.PartE.CertificateCellsa4a7cbe7b2 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsa4a7cbe7b2 + +namespace GerverSofa.PartE.CertificateCells9f358cc74d + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells9f358cc74d + +namespace GerverSofa.PartE.CertificateCellsf2bd9cd8f9 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsf2bd9cd8f9 + +namespace GerverSofa.PartE.CertificateCellse30fe464b6 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellse30fe464b6 + +namespace GerverSofa.PartE.CertificateCells50e57ae8a7 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells50e57ae8a7 + +namespace GerverSofa.PartE.CertificateCells6831b5295c + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells6831b5295c + +namespace GerverSofa.PartE.CertificateCells6ec7ee0b32 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells6ec7ee0b32 + +namespace GerverSofa.PartE.CertificateCellscdb025ab65 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellscdb025ab65 + +namespace GerverSofa.PartE.CertificateCells251eb00cd5 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells251eb00cd5 + +namespace GerverSofa.PartE.CertificateCellsb46fd93863 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsb46fd93863 + +namespace GerverSofa.PartE.CertificateCells02c02b7fd3 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells02c02b7fd3 + +namespace GerverSofa.PartE.CertificateCells969e2199d5 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells969e2199d5 + +namespace GerverSofa.PartE.CertificateCells99f6185557 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells99f6185557 + +namespace GerverSofa.PartE.CertificateCellsea3eb05dc6 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsea3eb05dc6 + +namespace GerverSofa.PartE.CertificateCells1daa3566d0 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells1daa3566d0 + +namespace GerverSofa.PartE.CertificateCells04b8a575e1 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells04b8a575e1 + +namespace GerverSofa.PartE.CertificateCellsb52fa9450d + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsb52fa9450d + +namespace GerverSofa.PartE.CertificateCells75262755f1 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells75262755f1 + +namespace GerverSofa.PartE.CertificateCells88775d9be2 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells88775d9be2 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC6R4Subtree7c075da8e9f0577b`. +* `KernelOnly.PartE.E24KC6R4Subtree7e83efce8bd8caa9`. +* `KernelOnly.PartE.E24KC6R4Join57ced70670a400e2`. +* `KernelOnly.PartE.E24KC6R4Subtree81ebe3f900bc76a5`. +* `KernelOnly.PartE.E24KC6R4Subtree84bebec26b36007b`. +* `KernelOnly.PartE.E24KC6R4Subtree879f3ccc81ca9b24`. +* `KernelOnly.PartE.E24KC6R4Subtree88f80fd4db374a2d`. +* `KernelOnly.PartE.E24KC6R4Subtree8921da6a3153d018`. +* `KernelOnly.PartE.E24KC6R4Subtree89badd31312e459d`. +* `KernelOnly.PartE.E24KC6R4Subtree8b6172e52c41dded`. +* `KernelOnly.PartE.E24KC6R4Join0f0434a94ae699a2`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsefec3b1324 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsefec3b1324 + +open CertificateCellsefec3b1324 +theorem cover_subtree_7aa3d52e724a : + adaptiveCoverCheck 2 thetaBelowCell1111331131111222 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131111222 + (by + have h : ((childLL thetaBelowCell1111331131111222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131111222) h) + (by + have h : ((childLH thetaBelowCell1111331131111222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131111222) h) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131111222) + (by + have h : ((childLL (childHL thetaBelowCell1111331131111222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131111222)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131111222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131111222)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131111222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131111222)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131111222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131111222)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131111222) + (by + have h : ((childLL (childHH thetaBelowCell1111331131111222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131111222)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131111222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131111222)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131111222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131111222)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131111222))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131111222)) h)) + +theorem cover_subtree_818c6b64504a : + adaptiveCoverCheck 2 thetaBelowCell1111331131111223 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131111223 + (by + have h : ((childLL thetaBelowCell1111331131111223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131111223) h) + (by + have h : ((childLH thetaBelowCell1111331131111223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131111223) h) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131111223) + (by + have h : ((childLL (childHL thetaBelowCell1111331131111223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131111223)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131111223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131111223)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131111223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131111223)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131111223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131111223)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131111223) + (by + have h : ((childLL (childHH thetaBelowCell1111331131111223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131111223)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131111223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131111223)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131111223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131111223)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131111223))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131111223)) h)) + +theorem cover_subtree_75546d36bae0 : + adaptiveCoverCheck 3 (childHL (childHL (childLH thetaBelowCell111133113111))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHL (childLH + thetaBelowCell111133113111))) + (by + have h : (thetaBelowCell1111331131111220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131111220 h) + (by + have h : (thetaBelowCell1111331131111221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131111221 h) + cover_subtree_7aa3d52e724a + cover_subtree_818c6b64504a + +theorem cover_subtree_38aeeec8d754 : + adaptiveCoverCheck 2 thetaBelowCell1111331131111232 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131111232 + (by + have h : ((childLL thetaBelowCell1111331131111232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131111232) h) + (by + have h : ((childLH thetaBelowCell1111331131111232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131111232) h) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131111232) + (by + have h : ((childLL (childHL thetaBelowCell1111331131111232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131111232)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131111232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131111232)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131111232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131111232)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131111232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131111232)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131111232) + (by + have h : ((childLL (childHH thetaBelowCell1111331131111232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131111232)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131111232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131111232)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131111232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131111232)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131111232))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131111232)) h)) + +theorem cover_subtree_7653e3da7d41 : + adaptiveCoverCheck 2 thetaBelowCell1111331131111233 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131111233 + (by + have h : ((childLL thetaBelowCell1111331131111233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131111233) h) + (by + have h : ((childLH thetaBelowCell1111331131111233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131111233) h) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131111233) + (by + have h : ((childLL (childHL thetaBelowCell1111331131111233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131111233)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131111233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131111233)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131111233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131111233)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131111233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131111233)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131111233) + (by + have h : ((childLL (childHH thetaBelowCell1111331131111233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131111233)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131111233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131111233)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131111233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131111233)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131111233))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131111233)) h)) + +theorem cover_subtree_c48c3d0e1082 : + adaptiveCoverCheck 3 (childHH (childHL (childLH thetaBelowCell111133113111))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHL (childLH + thetaBelowCell111133113111))) + (by + have h : (thetaBelowCell1111331131111230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131111230 h) + (by + have h : (thetaBelowCell1111331131111231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131111231 h) + cover_subtree_38aeeec8d754 + cover_subtree_7653e3da7d41 + +theorem cover_subtree_850575b22b27 : + adaptiveCoverCheck 4 (childHL (childLH thetaBelowCell111133113111)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH thetaBelowCell111133113111)) + (by + have h : ((childLL (childHL (childLH thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childLH + thetaBelowCell111133113111))) h) + (by + have h : ((childLH (childHL (childLH thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childLH + thetaBelowCell111133113111))) h) + cover_subtree_75546d36bae0 + cover_subtree_c48c3d0e1082 + +theorem cover_subtree_8b97f2fa7857 : + adaptiveCoverCheck 2 thetaBelowCell1111331131111322 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131111322 + (by + have h : ((childLL thetaBelowCell1111331131111322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131111322) h) + (by + have h : ((childLH thetaBelowCell1111331131111322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131111322) h) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131111322) + (by + have h : ((childLL (childHL thetaBelowCell1111331131111322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131111322)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131111322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131111322)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131111322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131111322)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131111322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131111322)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131111322) + (by + have h : ((childLL (childHH thetaBelowCell1111331131111322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131111322)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131111322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131111322)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131111322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131111322)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131111322))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131111322)) h)) + +theorem cover_subtree_4e37d42ba06c : + adaptiveCoverCheck 2 thetaBelowCell1111331131111323 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131111323 + (by + have h : ((childLL thetaBelowCell1111331131111323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131111323) h) + (by + have h : ((childLH thetaBelowCell1111331131111323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131111323) h) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131111323) + (by + have h : ((childLL (childHL thetaBelowCell1111331131111323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131111323)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131111323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131111323)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131111323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131111323)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131111323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131111323)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131111323) + (by + have h : ((childLL (childHH thetaBelowCell1111331131111323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131111323)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131111323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131111323)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131111323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131111323)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131111323))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131111323)) h)) + +theorem cover_subtree_27a9e6ae3bf9 : + adaptiveCoverCheck 3 (childHL (childHH (childLH thetaBelowCell111133113111))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHH (childLH + thetaBelowCell111133113111))) + (by + have h : (thetaBelowCell1111331131111320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131111320 h) + (by + have h : (thetaBelowCell1111331131111321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131111321 h) + cover_subtree_8b97f2fa7857 + cover_subtree_4e37d42ba06c + +theorem cover_subtree_73b432883d7f : + adaptiveCoverCheck 3 (childHH (childHH (childLH thetaBelowCell111133113111))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHH (childLH + thetaBelowCell111133113111))) + (by + have h : (thetaBelowCell1111331131111330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131111330 h) + (by + have h : (thetaBelowCell1111331131111331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131111331 h) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131111332 + (by + have h : ((childLL thetaBelowCell1111331131111332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131111332) h) + (by + have h : ((childLH thetaBelowCell1111331131111332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131111332) h) + (by + have h : ((childHL thetaBelowCell1111331131111332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131111332) h) + (by + have h : ((childHH thetaBelowCell1111331131111332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131111332) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131111333 + (by + have h : ((childLL thetaBelowCell1111331131111333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131111333) h) + (by + have h : ((childLH thetaBelowCell1111331131111333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131111333) h) + (by + have h : ((childHL thetaBelowCell1111331131111333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131111333) h) + (by + have h : ((childHH thetaBelowCell1111331131111333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131111333) h)) + +theorem cover_subtree_cff1fffcbf04 : + adaptiveCoverCheck 4 (childHH (childLH thetaBelowCell111133113111)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH thetaBelowCell111133113111)) + (by + have h : ((childLL (childHH (childLH thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childLH + thetaBelowCell111133113111))) h) + (by + have h : ((childLH (childHH (childLH thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childLH + thetaBelowCell111133113111))) h) + cover_subtree_27a9e6ae3bf9 + cover_subtree_73b432883d7f + +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c1 : + adaptiveCoverCheck 5 (childLH thetaBelowCell111133113111) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133113111) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH thetaBelowCell111133113111)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLH + thetaBelowCell111133113111))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLH + thetaBelowCell111133113111))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLH + thetaBelowCell111133113111))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLH + thetaBelowCell111133113111))) h)) + (by + have h : ((childLH (childLH thetaBelowCell111133113111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH thetaBelowCell111133113111)) h) + cover_subtree_850575b22b27 + cover_subtree_cff1fffcbf04 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells11cd3db1c7 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells11cd3db1c7 + +open CertificateCells11cd3db1c7 +theorem cover_subtree_36a7bfb19453 : + adaptiveCoverCheck 3 (childLL (childLL (childHH thetaBelowCell111133113110))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childLL (childHH + thetaBelowCell111133113110))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131103000 + (by + have h : ((childLL thetaBelowCell1111331131103000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131103000) h) + (by + have h : ((childLH thetaBelowCell1111331131103000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131103000) h) + (by + have h : ((childHL thetaBelowCell1111331131103000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131103000) h) + (by + have h : ((childHH thetaBelowCell1111331131103000)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131103000) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131103001 + (by + have h : ((childLL thetaBelowCell1111331131103001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131103001) h) + (by + have h : ((childLH thetaBelowCell1111331131103001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131103001) h) + (by + have h : ((childHL thetaBelowCell1111331131103001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131103001) h) + (by + have h : ((childHH thetaBelowCell1111331131103001)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131103001) h)) + (by + have h : (thetaBelowCell1111331131103002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131103002 h) + (by + have h : (thetaBelowCell1111331131103003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131103003 h) + +theorem cover_subtree_05a08e0bea5f : + adaptiveCoverCheck 3 (childLH (childLL (childHH thetaBelowCell111133113110))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childLL (childHH + thetaBelowCell111133113110))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131103010 + (by + have h : ((childLL thetaBelowCell1111331131103010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131103010) h) + (by + have h : ((childLH thetaBelowCell1111331131103010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131103010) h) + (by + have h : ((childHL thetaBelowCell1111331131103010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131103010) h) + (by + have h : ((childHH thetaBelowCell1111331131103010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131103010) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131103011 + (by + have h : ((childLL thetaBelowCell1111331131103011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131103011) h) + (by + have h : ((childLH thetaBelowCell1111331131103011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131103011) h) + (by + have h : ((childHL thetaBelowCell1111331131103011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131103011) h) + (by + have h : ((childHH thetaBelowCell1111331131103011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131103011) h)) + (by + have h : (thetaBelowCell1111331131103012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131103012 h) + (by + have h : (thetaBelowCell1111331131103013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131103013 h) + +theorem cover_subtree_e2abbc5cba3c : + adaptiveCoverCheck 4 (childLL (childHH thetaBelowCell111133113110)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH thetaBelowCell111133113110)) + cover_subtree_36a7bfb19453 + cover_subtree_05a08e0bea5f + (by + have h : ((childHL (childLL (childHH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childHH + thetaBelowCell111133113110))) h) + (by + have h : ((childHH (childLL (childHH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childHH + thetaBelowCell111133113110))) h) + +theorem cover_subtree_09ec3c616243 : + adaptiveCoverCheck 3 (childLL (childLH (childHH thetaBelowCell111133113110))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childLH (childHH + thetaBelowCell111133113110))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131103100 + (by + have h : ((childLL thetaBelowCell1111331131103100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131103100) h) + (by + have h : ((childLH thetaBelowCell1111331131103100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131103100) h) + (by + have h : ((childHL thetaBelowCell1111331131103100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131103100) h) + (by + have h : ((childHH thetaBelowCell1111331131103100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131103100) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131103101 + (by + have h : ((childLL thetaBelowCell1111331131103101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131103101) h) + (by + have h : ((childLH thetaBelowCell1111331131103101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131103101) h) + (by + have h : ((childHL thetaBelowCell1111331131103101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131103101) h) + (by + have h : ((childHH thetaBelowCell1111331131103101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131103101) h)) + (by + have h : (thetaBelowCell1111331131103102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131103102 h) + (by + have h : (thetaBelowCell1111331131103103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131103103 h) + +theorem cover_subtree_6c69a3f38b7c : + adaptiveCoverCheck 3 (childLH (childLH (childHH thetaBelowCell111133113110))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childLH (childHH + thetaBelowCell111133113110))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131103110 + (by + have h : ((childLL thetaBelowCell1111331131103110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131103110) h) + (by + have h : ((childLH thetaBelowCell1111331131103110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131103110) h) + (by + have h : ((childHL thetaBelowCell1111331131103110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131103110) h) + (by + have h : ((childHH thetaBelowCell1111331131103110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131103110) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131103111 + (by + have h : ((childLL thetaBelowCell1111331131103111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131103111) h) + (by + have h : ((childLH thetaBelowCell1111331131103111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131103111) h) + (by + have h : ((childHL thetaBelowCell1111331131103111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131103111) h) + (by + have h : ((childHH thetaBelowCell1111331131103111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131103111) h)) + (by + have h : (thetaBelowCell1111331131103112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131103112 h) + (by + have h : (thetaBelowCell1111331131103113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131103113 h) + +theorem cover_subtree_5b1de072a154 : + adaptiveCoverCheck 4 (childLH (childHH thetaBelowCell111133113110)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH thetaBelowCell111133113110)) + cover_subtree_09ec3c616243 + cover_subtree_6c69a3f38b7c + (by + have h : ((childHL (childLH (childHH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childHH + thetaBelowCell111133113110))) h) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childLH (childHH + thetaBelowCell111133113110))) + (by + have h : (thetaBelowCell1111331131103130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131103130 h) + (by + have h : (thetaBelowCell1111331131103131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131103131 h) + (by + have h : (thetaBelowCell1111331131103132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131103132 h) + (by + have h : (thetaBelowCell1111331131103133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131103133 h)) + +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c0_c3 : + adaptiveCoverCheck 5 (childHH thetaBelowCell111133113110) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133113110) + cover_subtree_e2abbc5cba3c + cover_subtree_5b1de072a154 + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH thetaBelowCell111133113110)) + (by + have h : ((childLL (childHL (childHH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childHH + thetaBelowCell111133113110))) h) + (by + have h : ((childLH (childHL (childHH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childHH + thetaBelowCell111133113110))) h) + (by + have h : ((childHL (childHL (childHH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childHH + thetaBelowCell111133113110))) h) + (by + have h : ((childHH (childHL (childHH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childHH + thetaBelowCell111133113110))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH thetaBelowCell111133113110)) + (by + have h : ((childLL (childHH (childHH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childHH + thetaBelowCell111133113110))) h) + (by + have h : ((childLH (childHH (childHH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childHH + thetaBelowCell111133113110))) h) + (by + have h : ((childHL (childHH (childHH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childHH + thetaBelowCell111133113110))) h) + (by + have h : ((childHH (childHH (childHH thetaBelowCell111133113110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childHH + thetaBelowCell111133113110))) h)) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse82c2dced4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse82c2dced4 + +open CertificateCellse82c2dced4 + +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c0 : + adaptiveCoverCheck 6 thetaBelowCell111133113110 = true := + adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133113110 + e24KC2ThetaBelowLeaf111133113_c1_c1_c0_c0 e24KC2ThetaBelowLeaf111133113_c1_c1_c0_c1 + e24KC2ThetaBelowLeaf111133113_c1_c1_c0_c2 e24KC2ThetaBelowLeaf111133113_c1_c1_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells7a1b24c2da + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells7a1b24c2da + +open CertificateCells7a1b24c2da +theorem cover_subtree_9615f1192754 : + adaptiveCoverCheck 3 (childHL (childHL (childLH thetaBelowCell111133113101))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHL (childLH + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131011220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131011220 h) + (by + have h : (thetaBelowCell1111331131011221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131011221 h) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131011222 + (by + have h : ((childLL thetaBelowCell1111331131011222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131011222) h) + (by + have h : ((childLH thetaBelowCell1111331131011222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131011222) h) + (by + have h : ((childHL thetaBelowCell1111331131011222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131011222) h) + (by + have h : ((childHH thetaBelowCell1111331131011222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131011222) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131011223 + (by + have h : ((childLL thetaBelowCell1111331131011223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131011223) h) + (by + have h : ((childLH thetaBelowCell1111331131011223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131011223) h) + (by + have h : ((childHL thetaBelowCell1111331131011223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131011223) h) + (by + have h : ((childHH thetaBelowCell1111331131011223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131011223) h)) + +theorem cover_subtree_1f726b3116b0 : + adaptiveCoverCheck 3 (childHH (childHL (childLH thetaBelowCell111133113101))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHL (childLH + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131011230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131011230 h) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131011231 + (by + have h : ((childLL thetaBelowCell1111331131011231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131011231) h) + (by + have h : ((childLH thetaBelowCell1111331131011231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131011231) h) + (by + have h : ((childHL thetaBelowCell1111331131011231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131011231) h) + (by + have h : ((childHH thetaBelowCell1111331131011231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131011231) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131011232 + (by + have h : ((childLL thetaBelowCell1111331131011232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131011232) h) + (by + have h : ((childLH thetaBelowCell1111331131011232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131011232) h) + (by + have h : ((childHL thetaBelowCell1111331131011232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131011232) h) + (by + have h : ((childHH thetaBelowCell1111331131011232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131011232) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131011233 + (by + have h : ((childLL thetaBelowCell1111331131011233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131011233) h) + (by + have h : ((childLH thetaBelowCell1111331131011233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131011233) h) + (by + have h : ((childHL thetaBelowCell1111331131011233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131011233) h) + (by + have h : ((childHH thetaBelowCell1111331131011233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131011233) h)) + +theorem cover_subtree_cac2e3b1401d : + adaptiveCoverCheck 4 (childHL (childLH thetaBelowCell111133113101)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH thetaBelowCell111133113101)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHL (childLH + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131011200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131011200 h) + (by + have h : (thetaBelowCell1111331131011201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131011201 h) + (by + have h : (thetaBelowCell1111331131011202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131011202 h) + (by + have h : (thetaBelowCell1111331131011203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131011203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHL (childLH + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131011210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131011210 h) + (by + have h : (thetaBelowCell1111331131011211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131011211 h) + (by + have h : (thetaBelowCell1111331131011212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131011212 h) + (by + have h : (thetaBelowCell1111331131011213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131011213 h)) + cover_subtree_9615f1192754 + cover_subtree_1f726b3116b0 + +theorem cover_subtree_4f3cdd0c257d : + adaptiveCoverCheck 3 (childHL (childHH (childLH thetaBelowCell111133113101))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHH (childLH + thetaBelowCell111133113101))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131011320 + (by + have h : ((childLL thetaBelowCell1111331131011320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131011320) h) + (by + have h : ((childLH thetaBelowCell1111331131011320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131011320) h) + (by + have h : ((childHL thetaBelowCell1111331131011320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131011320) h) + (by + have h : ((childHH thetaBelowCell1111331131011320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131011320) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131011321 + (by + have h : ((childLL thetaBelowCell1111331131011321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131011321) h) + (by + have h : ((childLH thetaBelowCell1111331131011321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131011321) h) + (by + have h : ((childHL thetaBelowCell1111331131011321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131011321) h) + (by + have h : ((childHH thetaBelowCell1111331131011321)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131011321) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131011322 + (by + have h : ((childLL thetaBelowCell1111331131011322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131011322) h) + (by + have h : ((childLH thetaBelowCell1111331131011322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131011322) h) + (by + have h : ((childHL thetaBelowCell1111331131011322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131011322) h) + (by + have h : ((childHH thetaBelowCell1111331131011322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131011322) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131011323 + (by + have h : ((childLL thetaBelowCell1111331131011323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131011323) h) + (by + have h : ((childLH thetaBelowCell1111331131011323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131011323) h) + (by + have h : ((childHL thetaBelowCell1111331131011323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131011323) h) + (by + have h : ((childHH thetaBelowCell1111331131011323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131011323) h)) + +theorem cover_subtree_8b305093aef1 : + adaptiveCoverCheck 3 (childHH (childHH (childLH thetaBelowCell111133113101))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHH (childLH + thetaBelowCell111133113101))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131011330 + (by + have h : ((childLL thetaBelowCell1111331131011330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131011330) h) + (by + have h : ((childLH thetaBelowCell1111331131011330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131011330) h) + (by + have h : ((childHL thetaBelowCell1111331131011330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131011330) h) + (by + have h : ((childHH thetaBelowCell1111331131011330)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131011330) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131011331 + (by + have h : ((childLL thetaBelowCell1111331131011331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131011331) h) + (by + have h : ((childLH thetaBelowCell1111331131011331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131011331) h) + (by + have h : ((childHL thetaBelowCell1111331131011331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131011331) h) + (by + have h : ((childHH thetaBelowCell1111331131011331)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131011331) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131011332 + (by + have h : ((childLL thetaBelowCell1111331131011332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131011332) h) + (by + have h : ((childLH thetaBelowCell1111331131011332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131011332) h) + (by + have h : ((childHL thetaBelowCell1111331131011332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131011332) h) + (by + have h : ((childHH thetaBelowCell1111331131011332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131011332) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131011333 + (by + have h : ((childLL thetaBelowCell1111331131011333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131011333) h) + (by + have h : ((childLH thetaBelowCell1111331131011333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131011333) h) + (by + have h : ((childHL thetaBelowCell1111331131011333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131011333) h) + (by + have h : ((childHH thetaBelowCell1111331131011333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131011333) h)) + +theorem cover_subtree_38619e7e6aac : + adaptiveCoverCheck 4 (childHH (childLH thetaBelowCell111133113101)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH thetaBelowCell111133113101)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHH (childLH + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131011300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131011300 h) + (by + have h : (thetaBelowCell1111331131011301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131011301 h) + (by + have h : (thetaBelowCell1111331131011302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131011302 h) + (by + have h : (thetaBelowCell1111331131011303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131011303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHH (childLH + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131011310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131011310 h) + (by + have h : (thetaBelowCell1111331131011311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131011311 h) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131011312 + (by + have h : ((childLL thetaBelowCell1111331131011312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131011312) + h) + (by + have h : ((childLH thetaBelowCell1111331131011312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131011312) + h) + (by + have h : ((childHL thetaBelowCell1111331131011312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131011312) + h) + (by + have h : ((childHH thetaBelowCell1111331131011312)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131011312) + h)) + (by + have h : (thetaBelowCell1111331131011313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131011313 h)) + cover_subtree_4f3cdd0c257d + cover_subtree_8b305093aef1 + +theorem e24KC2ThetaBelowLeaf111133113_c1_c0_c1_c1 : + adaptiveCoverCheck 5 (childLH thetaBelowCell111133113101) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133113101) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH thetaBelowCell111133113101)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLH + thetaBelowCell111133113101))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLH + thetaBelowCell111133113101))) h) + (by + have h : ((childHL (childLL (childLH thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLH + thetaBelowCell111133113101))) h) + (by + have h : ((childHH (childLL (childLH thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLH + thetaBelowCell111133113101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH thetaBelowCell111133113101)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLH + thetaBelowCell111133113101))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLH + thetaBelowCell111133113101))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLH + thetaBelowCell111133113101))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLH + thetaBelowCell111133113101))) h)) + cover_subtree_cac2e3b1401d + cover_subtree_38619e7e6aac + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3846b81fdf + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3846b81fdf + +open CertificateCells3846b81fdf +theorem cover_subtree_c9cdbb673d76 : + adaptiveCoverCheck 3 thetaAboveCell0000220021003002 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003002 + (by + have h : ((childLL thetaAboveCell0000220021003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021003002) h) + (by + have h : ((childLH thetaAboveCell0000220021003002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021003002) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021003002) + (by + have h : ((childLL (childHL thetaAboveCell0000220021003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021003002)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021003002)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021003002)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021003002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021003002) + (by + have h : ((childLL (childHH thetaAboveCell0000220021003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021003002)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021003002)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021003002)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021003002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021003002)) h)) + +theorem cover_subtree_0d25773c4d7a : + adaptiveCoverCheck 3 thetaAboveCell0000220021003003 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003003 + (by + have h : ((childLL thetaAboveCell0000220021003003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021003003) h) + (by + have h : ((childLH thetaAboveCell0000220021003003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021003003) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021003003) + (by + have h : ((childLL (childHL thetaAboveCell0000220021003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021003003)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021003003)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021003003)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021003003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021003003) + (by + have h : ((childLL (childHH thetaAboveCell0000220021003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021003003)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021003003)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021003003)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021003003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021003003)) h)) + +theorem cover_subtree_d91230c1595a : + adaptiveCoverCheck 4 (childLL (childLL (childHH thetaAboveCell000022002100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHH + thetaAboveCell000022002100))) + (by + have h : (thetaAboveCell0000220021003000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003000 h) + (by + have h : (thetaAboveCell0000220021003001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003001 h) + cover_subtree_c9cdbb673d76 + cover_subtree_0d25773c4d7a + +theorem cover_subtree_3b00f6acc230 : + adaptiveCoverCheck 3 thetaAboveCell0000220021003012 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003012 + (by + have h : ((childLL thetaAboveCell0000220021003012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021003012) h) + (by + have h : ((childLH thetaAboveCell0000220021003012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021003012) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021003012) + (by + have h : ((childLL (childHL thetaAboveCell0000220021003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021003012)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021003012)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021003012)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021003012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021003012) + (by + have h : ((childLL (childHH thetaAboveCell0000220021003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021003012)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021003012)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021003012)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021003012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021003012)) h)) + +theorem cover_subtree_7ad163274380 : + adaptiveCoverCheck 3 thetaAboveCell0000220021003013 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003013 + (by + have h : ((childLL thetaAboveCell0000220021003013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021003013) h) + (by + have h : ((childLH thetaAboveCell0000220021003013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021003013) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021003013) + (by + have h : ((childLL (childHL thetaAboveCell0000220021003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021003013)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021003013)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021003013)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021003013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021003013) + (by + have h : ((childLL (childHH thetaAboveCell0000220021003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021003013)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021003013)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021003013)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021003013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021003013)) h)) + +theorem cover_subtree_5685dda3095f : + adaptiveCoverCheck 4 (childLH (childLL (childHH thetaAboveCell000022002100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHH + thetaAboveCell000022002100))) + (by + have h : (thetaAboveCell0000220021003010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003010 h) + (by + have h : (thetaAboveCell0000220021003011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003011 h) + cover_subtree_3b00f6acc230 + cover_subtree_7ad163274380 + +theorem cover_subtree_f7f8133fac9a : + adaptiveCoverCheck 3 thetaAboveCell0000220021003020 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003020 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021003020) + (by + have h : ((childLL (childLL thetaAboveCell0000220021003020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021003020)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021003020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021003020)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021003020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021003020)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021003020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021003020)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021003020) + (by + have h : ((childLL (childLH thetaAboveCell0000220021003020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021003020)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021003020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021003020)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021003020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021003020)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021003020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021003020)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021003020) + (by + have h : ((childLL (childHL thetaAboveCell0000220021003020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021003020)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021003020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021003020)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021003020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021003020)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021003020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021003020)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021003020) + (by + have h : ((childLL (childHH thetaAboveCell0000220021003020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021003020)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021003020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021003020)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021003020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021003020)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021003020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021003020)) h)) + +theorem cover_subtree_34eb89665f6e : + adaptiveCoverCheck 3 thetaAboveCell0000220021003021 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003021 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021003021) + (by + have h : ((childLL (childLL thetaAboveCell0000220021003021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021003021)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021003021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021003021)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021003021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021003021)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021003021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021003021)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021003021) + (by + have h : ((childLL (childLH thetaAboveCell0000220021003021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021003021)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021003021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021003021)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021003021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021003021)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021003021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021003021)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021003021) + (by + have h : ((childLL (childHL thetaAboveCell0000220021003021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021003021)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021003021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021003021)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021003021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021003021)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021003021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021003021)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021003021) + (by + have h : ((childLL (childHH thetaAboveCell0000220021003021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021003021)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021003021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021003021)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021003021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021003021)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021003021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021003021)) h)) + +theorem cover_subtree_854759339591 : + adaptiveCoverCheck 4 (childHL (childLL (childHH thetaAboveCell000022002100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022002100))) + cover_subtree_f7f8133fac9a + cover_subtree_34eb89665f6e + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003022 + (by + have h : ((childLL thetaAboveCell0000220021003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021003022) h) + (by + have h : ((childLH thetaAboveCell0000220021003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021003022) h) + (by + have h : ((childHL thetaAboveCell0000220021003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021003022) h) + (by + have h : ((childHH thetaAboveCell0000220021003022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021003022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003023 + (by + have h : ((childLL thetaAboveCell0000220021003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021003023) h) + (by + have h : ((childLH thetaAboveCell0000220021003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021003023) h) + (by + have h : ((childHL thetaAboveCell0000220021003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021003023) h) + (by + have h : ((childHH thetaAboveCell0000220021003023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021003023) h)) + +theorem cover_subtree_a49deaaa8f12 : + adaptiveCoverCheck 3 thetaAboveCell0000220021003030 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003030 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021003030) + (by + have h : ((childLL (childLL thetaAboveCell0000220021003030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021003030)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021003030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021003030)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021003030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021003030)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021003030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021003030)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021003030) + (by + have h : ((childLL (childLH thetaAboveCell0000220021003030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021003030)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021003030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021003030)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021003030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021003030)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021003030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021003030)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021003030) + (by + have h : ((childLL (childHL thetaAboveCell0000220021003030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021003030)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021003030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021003030)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021003030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021003030)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021003030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021003030)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021003030) + (by + have h : ((childLL (childHH thetaAboveCell0000220021003030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021003030)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021003030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021003030)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021003030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021003030)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021003030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021003030)) h)) + +theorem cover_subtree_2236023309b5 : + adaptiveCoverCheck 3 thetaAboveCell0000220021003031 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003031 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021003031) + (by + have h : ((childLL (childLL thetaAboveCell0000220021003031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021003031)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021003031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021003031)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021003031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021003031)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021003031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021003031)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021003031) + (by + have h : ((childLL (childLH thetaAboveCell0000220021003031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021003031)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021003031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021003031)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021003031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021003031)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021003031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021003031)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021003031) + (by + have h : ((childLL (childHL thetaAboveCell0000220021003031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021003031)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021003031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021003031)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021003031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021003031)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021003031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021003031)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021003031) + (by + have h : ((childLL (childHH thetaAboveCell0000220021003031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021003031)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021003031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021003031)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021003031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021003031)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021003031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021003031)) h)) + +theorem cover_subtree_2c168101607b : + adaptiveCoverCheck 4 (childHH (childLL (childHH thetaAboveCell000022002100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022002100))) + cover_subtree_a49deaaa8f12 + cover_subtree_2236023309b5 + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003032 + (by + have h : ((childLL thetaAboveCell0000220021003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021003032) h) + (by + have h : ((childLH thetaAboveCell0000220021003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021003032) h) + (by + have h : ((childHL thetaAboveCell0000220021003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021003032) h) + (by + have h : ((childHH thetaAboveCell0000220021003032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021003032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003033 + (by + have h : ((childLL thetaAboveCell0000220021003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021003033) h) + (by + have h : ((childLH thetaAboveCell0000220021003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021003033) h) + (by + have h : ((childHL thetaAboveCell0000220021003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021003033) h) + (by + have h : ((childHH thetaAboveCell0000220021003033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021003033) h)) + +theorem e24KC2ThetaAboveLeaf0000220021_c0_c0_c3_c0 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022002100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022002100)) + cover_subtree_d91230c1595a + cover_subtree_5685dda3095f + cover_subtree_854759339591 + cover_subtree_2c168101607b + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8d8f6e86b1 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8d8f6e86b1 + +open CertificateCells8d8f6e86b1 +theorem e24KC2ThetaAboveLeaf0000220021_c1_c2 : + adaptiveCoverCheck 7 thetaAboveCell000022002112 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022002112 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022002112) + (by + have h : ((childLL (childLL thetaAboveCell000022002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022002112)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022002112)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022002112)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022002112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022002112) + (by + have h : ((childLL (childLH thetaAboveCell000022002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022002112)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022002112)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022002112)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022002112)) h)) + (by + have h : ((childHL thetaAboveCell000022002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022002112) h) + (by + have h : ((childHH thetaAboveCell000022002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022002112) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells67d4ab08b2 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells67d4ab08b2 + +open CertificateCells67d4ab08b2 +theorem e24KC2ThetaAboveLeaf0000220021_c0_c0_c3_c2 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022002100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022002100)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022002100))) + (by + have h : (thetaAboveCell0000220021003200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003200 h) + (by + have h : (thetaAboveCell0000220021003201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003201 h) + (by + have h : (thetaAboveCell0000220021003202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003202 h) + (by + have h : (thetaAboveCell0000220021003203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022002100))) + (by + have h : (thetaAboveCell0000220021003210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003210 h) + (by + have h : (thetaAboveCell0000220021003211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003211 h) + (by + have h : (thetaAboveCell0000220021003212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003212 h) + (by + have h : (thetaAboveCell0000220021003213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022002100))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022002100))) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells37e4000123 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells37e4000123 + +open CertificateCells37e4000123 +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c3 : + adaptiveCoverCheck 6 thetaBelowCell111133113113 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133113113 + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133113113) + (by + have h : ((childLL (childLL thetaBelowCell111133113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLL + thetaBelowCell111133113113)) h) + (by + have h : ((childLH (childLL thetaBelowCell111133113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLL + thetaBelowCell111133113113)) h) + (by + have h : ((childHL (childLL thetaBelowCell111133113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLL + thetaBelowCell111133113113)) h) + (by + have h : ((childHH (childLL thetaBelowCell111133113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLL + thetaBelowCell111133113113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133113113) + (by + have h : ((childLL (childLH thetaBelowCell111133113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childLH + thetaBelowCell111133113113)) h) + (by + have h : ((childLH (childLH thetaBelowCell111133113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childLH + thetaBelowCell111133113113)) h) + (by + have h : ((childHL (childLH thetaBelowCell111133113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childLH + thetaBelowCell111133113113)) h) + (by + have h : ((childHH (childLH thetaBelowCell111133113113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childLH + thetaBelowCell111133113113)) h)) + (by + have h : ((childHL thetaBelowCell111133113113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133113113) h) + (by + have h : ((childHH thetaBelowCell111133113113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133113113) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells61d6915992 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells61d6915992 + +open CertificateCells61d6915992 +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c3_c2 : + adaptiveCoverCheck 4 (childHL (childHH thetaBelowCell111133113111)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childHH thetaBelowCell111133113111)) + (by + have h : ((childLL (childHL (childHH thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHL (childHH + thetaBelowCell111133113111))) h) + (by + have h : ((childLH (childHL (childHH thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHL (childHH + thetaBelowCell111133113111))) h) + (by + have h : ((childHL (childHL (childHH thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHL (childHH + thetaBelowCell111133113111))) h) + (by + have h : ((childHH (childHL (childHH thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHL (childHH + thetaBelowCell111133113111))) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells49a6e2db55 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells49a6e2db55 + +open CertificateCells49a6e2db55 +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c2_c3 : + adaptiveCoverCheck 4 (childHH (childHL thetaBelowCell111133113111)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHL thetaBelowCell111133113111)) + (by + have h : ((childLL (childHH (childHL thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childHL + thetaBelowCell111133113111))) h) + (by + have h : ((childLH (childHH (childHL thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childHL + thetaBelowCell111133113111))) h) + (by + have h : ((childHL (childHH (childHL thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childHL + thetaBelowCell111133113111))) h) + (by + have h : ((childHH (childHH (childHL thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childHL + thetaBelowCell111133113111))) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells23cc985c42 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells23cc985c42 + +open CertificateCells23cc985c42 + +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c2 : + adaptiveCoverCheck 5 (childHL thetaBelowCell111133113111) = true := + adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133113111) + e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c2_c0 e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c2_c1 + e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c2_c2 e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c2_c3 + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.ThetaAbove.Leaf00567`. +* `KernelOnly.PartE.ThetaAbove.Leaf00568`. +* `KernelOnly.PartE.ThetaAbove.Leaf00572`. +* `KernelOnly.PartE.ThetaAbove.Leaf00573`. +* `KernelOnly.PartE.ThetaAbove.Leaf00574`. +* `KernelOnly.PartE.ThetaAbove.Leaf00575`. +* `KernelOnly.PartE.ThetaAbove.Leaf00577`. +* `KernelOnly.PartE.ThetaAbove.Leaf00578`. +* `KernelOnly.PartE.ThetaAbove.Leaf00579`. +* `KernelOnly.PartE.ThetaAbove.Leaf00581`. +* `KernelOnly.PartE.ThetaAbove.Leaf00582`. +* `KernelOnly.PartE.ThetaAbove.Leaf00586`. +* `KernelOnly.PartE.ThetaAbove.Leaf00587`. +* `KernelOnly.PartE.ThetaAbove.Leaf00588`. +* `KernelOnly.PartE.ThetaAbove.Leaf00589`. +* `KernelOnly.PartE.ThetaAbove.Leaf00592`. +* `KernelOnly.PartE.ThetaAbove.Leaf00593`. +* `KernelOnly.PartE.ThetaAbove.Leaf00594`. +* `KernelOnly.PartE.ThetaAbove.Leaf00595`. +* `KernelOnly.PartE.ThetaAbove.Leaf00597`. +* `KernelOnly.PartE.ThetaAbove.Leaf00598`. +* `KernelOnly.PartE.ThetaAbove.Leaf00601`. +* `KernelOnly.PartE.ThetaAbove.Leaf00602`. +* `KernelOnly.PartE.ThetaAbove.Leaf00606`. +* `KernelOnly.PartE.ThetaAbove.Leaf00607`. +* `KernelOnly.PartE.ThetaAbove.Leaf00610`. +* `KernelOnly.PartE.ThetaAbove.Leaf00611`. +* `KernelOnly.PartE.ThetaAbove.Leaf00612`. +* `KernelOnly.PartE.ThetaAbove.Leaf00613`. +* `KernelOnly.PartE.ThetaAbove.Leaf00616`. +* `KernelOnly.PartE.ThetaAbove.Leaf00617`. +* `KernelOnly.PartE.ThetaAbove.Leaf00618`. +* `KernelOnly.PartE.ThetaAbove.Leaf00619`. +* `KernelOnly.PartE.ThetaAbove.Leaf00621`. +* `KernelOnly.PartE.ThetaAbove.Leaf00622`. +* `KernelOnly.PartE.ThetaAbove.Leaf00626`. +* `KernelOnly.PartE.ThetaAbove.Leaf00627`. +* `KernelOnly.PartE.ThetaAbove.Leaf00628`. +* `KernelOnly.PartE.ThetaAbove.Leaf00629`. +* `KernelOnly.PartE.ThetaAbove.Leaf00632`. +* `KernelOnly.PartE.ThetaAbove.Leaf00633`. +* `KernelOnly.PartE.ThetaAbove.Leaf00634`. +* `KernelOnly.PartE.ThetaAbove.Leaf00635`. +* `KernelOnly.PartE.ThetaAbove.Leaf00637`. +* `KernelOnly.PartE.ThetaAbove.Leaf00638`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c0_c2_4_00567 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6deb17ad88 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6deb17ad88 + +open CertificateCells6deb17ad88 +namespace CoverCertificate19031d0370 + +private theorem checked0000 : adaptiveCoverCheck 0 cell0000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0000 (by decide +kernel) + +private theorem checked0001 : adaptiveCoverCheck 0 cell0001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0001 (by decide +kernel) + +private theorem checked0002 : adaptiveCoverCheck 0 cell0002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0002 (by decide +kernel) + +private theorem checked0003 : adaptiveCoverCheck 0 cell0003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0003 (by decide +kernel) + +private theorem checked0010 : adaptiveCoverCheck 0 cell0010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0010 (by decide +kernel) + +private theorem checked0011 : adaptiveCoverCheck 0 cell0011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0011 (by decide +kernel) + +private theorem checked0012 : adaptiveCoverCheck 0 cell0012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0012 (by decide +kernel) + +private theorem checked0013 : adaptiveCoverCheck 0 cell0013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0013 (by decide +kernel) + +private theorem checked0100 : adaptiveCoverCheck 0 cell0100 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0100 (by decide +kernel) + +private theorem checked0101 : adaptiveCoverCheck 0 cell0101 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0101 (by decide +kernel) + +private theorem checked0102 : adaptiveCoverCheck 0 cell0102 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0102 (by decide +kernel) + +private theorem checked0103 : adaptiveCoverCheck 0 cell0103 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0103 (by decide +kernel) + +private theorem checked0110 : adaptiveCoverCheck 0 cell0110 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0110 (by decide +kernel) + +private theorem checked0111 : adaptiveCoverCheck 0 cell0111 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0111 (by decide +kernel) + +private theorem checked0112 : adaptiveCoverCheck 0 cell0112 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0112 (by decide +kernel) + +private theorem checked0113 : adaptiveCoverCheck 0 cell0113 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0113 (by decide +kernel) + +private theorem checked1000 : adaptiveCoverCheck 0 cell1000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1000 (by decide +kernel) + +private theorem checked1001 : adaptiveCoverCheck 0 cell1001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1001 (by decide +kernel) + +private theorem checked1002 : adaptiveCoverCheck 0 cell1002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1002 (by decide +kernel) + +private theorem checked1003 : adaptiveCoverCheck 0 cell1003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1003 (by decide +kernel) + +private theorem checked1010 : adaptiveCoverCheck 0 cell1010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1010 (by decide +kernel) + +private theorem checked1011 : adaptiveCoverCheck 0 cell1011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1011 (by decide +kernel) + +private theorem checked1012 : adaptiveCoverCheck 0 cell1012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1012 (by decide +kernel) + +private theorem checked1013 : adaptiveCoverCheck 0 cell1013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1013 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell000 + checked0000 checked0001 checked0002 checked0003 + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell001 + checked0010 checked0011 checked0012 checked0013 + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell010 + checked0100 checked0101 checked0102 checked0103 + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell011 + checked0110 checked0111 checked0112 checked0113 + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell100 + checked1000 checked1001 checked1002 checked1003 + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell101 + checked1010 checked1011 checked1012 checked1013 + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate19031d0370 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c2 : + adaptiveCoverCheck 4 (childHL (childLL (childHL thetaAboveCell000022002001))) = true := by + exact CoverCertificate19031d0370.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c0_c3_4_00568 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells21b7c7dcb8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells21b7c7dcb8 + +open CertificateCells21b7c7dcb8 +namespace CoverCertificate30936f26ba + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate30936f26ba + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c3 : + adaptiveCoverCheck 4 (childHH (childLL (childHL thetaAboveCell000022002001))) = true := by + exact CoverCertificate30936f26ba.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c1_c0_c0_3_00572 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells51629e8703 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells51629e8703 + +open CertificateCells51629e8703 +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c1_c0_c0 : + adaptiveCoverCheck 3 thetaAboveCell0000220020012100 = true := by + decide +kernel + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c1_c0_c1_3_00573 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse4c4271ea3 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse4c4271ea3 + +open CertificateCellse4c4271ea3 +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c1_c0_c1 : + adaptiveCoverCheck 3 thetaAboveCell0000220020012101 = true := by + decide +kernel + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c1_c0_c2_3_00574 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells07d8bdd7d9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells07d8bdd7d9 + +open CertificateCells07d8bdd7d9 +namespace CoverCertificate953a140331 + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate953a140331 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c1_c0_c2 : + adaptiveCoverCheck 3 thetaAboveCell0000220020012102 = true := by + exact CoverCertificate953a140331.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c1_c0_c3_3_00575 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2bf9eb5708 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2bf9eb5708 + +open CertificateCells2bf9eb5708 +namespace CoverCertificatec0f3040bb9 + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec0f3040bb9 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c1_c0_c3 : + adaptiveCoverCheck 3 thetaAboveCell0000220020012103 = true := by + exact CoverCertificatec0f3040bb9.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c1_c1_4_00577 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells7eefa0b856 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells7eefa0b856 + +open CertificateCells7eefa0b856 +namespace CoverCertificatec5d26eacb3 + +private theorem checked2200 : adaptiveCoverCheck 0 cell2200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2200 (by decide +kernel) + +private theorem checked2201 : adaptiveCoverCheck 0 cell2201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2201 (by decide +kernel) + +private theorem checked2202 : adaptiveCoverCheck 0 cell2202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2202 (by decide +kernel) + +private theorem checked2203 : adaptiveCoverCheck 0 cell2203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2203 (by decide +kernel) + +private theorem checked2210 : adaptiveCoverCheck 0 cell2210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2210 (by decide +kernel) + +private theorem checked2211 : adaptiveCoverCheck 0 cell2211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2211 (by decide +kernel) + +private theorem checked2212 : adaptiveCoverCheck 0 cell2212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2212 (by decide +kernel) + +private theorem checked2213 : adaptiveCoverCheck 0 cell2213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2213 (by decide +kernel) + +private theorem checked2300 : adaptiveCoverCheck 0 cell2300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2300 (by decide +kernel) + +private theorem checked2301 : adaptiveCoverCheck 0 cell2301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2301 (by decide +kernel) + +private theorem checked2302 : adaptiveCoverCheck 0 cell2302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2302 (by decide +kernel) + +private theorem checked2303 : adaptiveCoverCheck 0 cell2303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2303 (by decide +kernel) + +private theorem checked2310 : adaptiveCoverCheck 0 cell2310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2310 (by decide +kernel) + +private theorem checked2311 : adaptiveCoverCheck 0 cell2311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2311 (by decide +kernel) + +private theorem checked2312 : adaptiveCoverCheck 0 cell2312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2312 (by decide +kernel) + +private theorem checked2313 : adaptiveCoverCheck 0 cell2313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2313 (by decide +kernel) + +private theorem checked3200 : adaptiveCoverCheck 0 cell3200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell3200 (by decide +kernel) + +private theorem checked3201 : adaptiveCoverCheck 0 cell3201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell3201 (by decide +kernel) + +private theorem checked3202 : adaptiveCoverCheck 0 cell3202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell3202 (by decide +kernel) + +private theorem checked3203 : adaptiveCoverCheck 0 cell3203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell3203 (by decide +kernel) + +private theorem checked3210 : adaptiveCoverCheck 0 cell3210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell3210 (by decide +kernel) + +private theorem checked3211 : adaptiveCoverCheck 0 cell3211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell3211 (by decide +kernel) + +private theorem checked3212 : adaptiveCoverCheck 0 cell3212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell3212 (by decide +kernel) + +private theorem checked3213 : adaptiveCoverCheck 0 cell3213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell3213 (by decide +kernel) + +private theorem checked3300 : adaptiveCoverCheck 0 cell3300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell3300 (by decide +kernel) + +private theorem checked3301 : adaptiveCoverCheck 0 cell3301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell3301 (by decide +kernel) + +private theorem checked3302 : adaptiveCoverCheck 0 cell3302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell3302 (by decide +kernel) + +private theorem checked3303 : adaptiveCoverCheck 0 cell3303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell3303 (by decide +kernel) + +private theorem checked3310 : adaptiveCoverCheck 0 cell3310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell3310 (by decide +kernel) + +private theorem checked3311 : adaptiveCoverCheck 0 cell3311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell3311 (by decide +kernel) + +private theorem checked3312 : adaptiveCoverCheck 0 cell3312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell3312 (by decide +kernel) + +private theorem checked3313 : adaptiveCoverCheck 0 cell3313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell3313 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell220 + checked2200 checked2201 checked2202 checked2203 + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell221 + checked2210 checked2211 checked2212 checked2213 + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell230 + checked2300 checked2301 checked2302 checked2303 + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell231 + checked2310 checked2311 checked2312 checked2313 + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell320 + checked3200 checked3201 checked3202 checked3203 + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell321 + checked3210 checked3211 checked3212 checked3213 + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell330 + checked3300 checked3301 checked3302 checked3303 + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell331 + checked3310 checked3311 checked3312 checked3313 + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec5d26eacb3 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c1_c1 : + adaptiveCoverCheck 4 (childLH (childLH (childHL thetaAboveCell000022002001))) = true := by + exact CoverCertificatec5d26eacb3.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c1_c2_4_00578 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsdb6ef42c13 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsdb6ef42c13 + +open CertificateCellsdb6ef42c13 +namespace CoverCertificate3612aa63be + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3612aa63be + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c1_c2 : + adaptiveCoverCheck 4 (childHL (childLH (childHL thetaAboveCell000022002001))) = true := by + exact CoverCertificate3612aa63be.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c1_c3_4_00579 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells91885e0374 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells91885e0374 + +open CertificateCells91885e0374 +namespace CoverCertificateba32fc9e0a + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateba32fc9e0a + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c1_c3 : + adaptiveCoverCheck 4 (childHH (childLH (childHL thetaAboveCell000022002001))) = true := by + exact CoverCertificateba32fc9e0a.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c2_5_00581 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsba71b1d520 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsba71b1d520 + +open CertificateCellsba71b1d520 +namespace CoverCertificate2170ad4ca0 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate2170ad4ca0 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c2 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022002001)) = true := by + exact CoverCertificate2170ad4ca0.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c3_5_00582 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells54caf0dec0 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells54caf0dec0 + +open CertificateCells54caf0dec0 +namespace CoverCertificate513511aa15 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate513511aa15 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c3 : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022002001)) = true := by + exact CoverCertificate513511aa15.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c3_c0_c0_4_00586 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells22ecf07105 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells22ecf07105 + +open CertificateCells22ecf07105 +namespace CoverCertificate3743e2f873 + +private theorem checked2200 : adaptiveCoverCheck 0 cell2200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2200 (by decide +kernel) + +private theorem checked2201 : adaptiveCoverCheck 0 cell2201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2201 (by decide +kernel) + +private theorem checked2202 : adaptiveCoverCheck 0 cell2202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2202 (by decide +kernel) + +private theorem checked2203 : adaptiveCoverCheck 0 cell2203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2203 (by decide +kernel) + +private theorem checked2210 : adaptiveCoverCheck 0 cell2210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2210 (by decide +kernel) + +private theorem checked2211 : adaptiveCoverCheck 0 cell2211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2211 (by decide +kernel) + +private theorem checked2212 : adaptiveCoverCheck 0 cell2212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2212 (by decide +kernel) + +private theorem checked2213 : adaptiveCoverCheck 0 cell2213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2213 (by decide +kernel) + +private theorem checked2300 : adaptiveCoverCheck 0 cell2300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2300 (by decide +kernel) + +private theorem checked2301 : adaptiveCoverCheck 0 cell2301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2301 (by decide +kernel) + +private theorem checked2302 : adaptiveCoverCheck 0 cell2302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2302 (by decide +kernel) + +private theorem checked2303 : adaptiveCoverCheck 0 cell2303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2303 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell220 + checked2200 checked2201 checked2202 checked2203 + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell221 + checked2210 checked2211 checked2212 checked2213 + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell230 + checked2300 checked2301 checked2302 checked2303 + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3743e2f873 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c0_c0 : + adaptiveCoverCheck 4 (childLL (childLL (childHH thetaAboveCell000022002001))) = true := by + exact CoverCertificate3743e2f873.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c3_c0_c1_4_00587 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2d236bc977 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2d236bc977 + +open CertificateCells2d236bc977 +namespace CoverCertificate3e2742ca77 + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3e2742ca77 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c0_c1 : + adaptiveCoverCheck 4 (childLH (childLL (childHH thetaAboveCell000022002001))) = true := by + exact CoverCertificate3e2742ca77.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c3_c0_c2_4_00588 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsfbf08c6815 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsfbf08c6815 + +open CertificateCellsfbf08c6815 +namespace CoverCertificate05d280259b + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate05d280259b + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c0_c2 : + adaptiveCoverCheck 4 (childHL (childLL (childHH thetaAboveCell000022002001))) = true := by + exact CoverCertificate05d280259b.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c3_c0_c3_4_00589 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb2588049db + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb2588049db + +open CertificateCellsb2588049db +namespace CoverCertificate73ec5d89dc + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate73ec5d89dc + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c0_c3 : + adaptiveCoverCheck 4 (childHH (childLL (childHH thetaAboveCell000022002001))) = true := by + exact CoverCertificate73ec5d89dc.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c3_c1_c0_4_00592 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells80702a4342 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells80702a4342 + +open CertificateCells80702a4342 +namespace CoverCertificated1fc30835b + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated1fc30835b + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c1_c0 : + adaptiveCoverCheck 4 (childLL (childLH (childHH thetaAboveCell000022002001))) = true := by + exact CoverCertificated1fc30835b.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c3_c1_c1_4_00593 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsfcacd99e70 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsfcacd99e70 + +open CertificateCellsfcacd99e70 +namespace CoverCertificatec03bec1842 + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec03bec1842 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c1_c1 : + adaptiveCoverCheck 4 (childLH (childLH (childHH thetaAboveCell000022002001))) = true := by + exact CoverCertificatec03bec1842.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c3_c1_c2_4_00594 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc63c49e043 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc63c49e043 + +open CertificateCellsc63c49e043 +namespace CoverCertificate854ce4fcce + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate854ce4fcce + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c1_c2 : + adaptiveCoverCheck 4 (childHL (childLH (childHH thetaAboveCell000022002001))) = true := by + exact CoverCertificate854ce4fcce.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c3_c1_c3_4_00595 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse2c2881509 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse2c2881509 + +open CertificateCellse2c2881509 +namespace CoverCertificate756063c6fb + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate756063c6fb + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c1_c3 : + adaptiveCoverCheck 4 (childHH (childLH (childHH thetaAboveCell000022002001))) = true := by + exact CoverCertificate756063c6fb.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c3_c2_5_00597 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1273bfc545 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1273bfc545 + +open CertificateCells1273bfc545 +namespace CoverCertificatebb637b4eef + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatebb637b4eef + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c2 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022002001)) = true := by + exact CoverCertificatebb637b4eef.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c3_c3_5_00598 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells758d72a450 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells758d72a450 + +open CertificateCells758d72a450 +namespace CoverCertificate7fa5919613 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate7fa5919613 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c3 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022002001)) = true := by + exact CoverCertificate7fa5919613.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above Leaf0000220020_c0_c2_7_00601 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells898eeb07c6 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells898eeb07c6 + +open CertificateCells898eeb07c6 +namespace CoverCertificateb766a036ce + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateb766a036ce + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c2 : + adaptiveCoverCheck 7 thetaAboveCell000022002002 = true := by + exact CoverCertificateb766a036ce.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above Leaf0000220020_c0_c3_7_00602 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3b9ec898a9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3b9ec898a9 + +open CertificateCells3b9ec898a9 +namespace CoverCertificate61295956d2 + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate61295956d2 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c3 : + adaptiveCoverCheck 7 thetaAboveCell000022002003 = true := by + exact CoverCertificate61295956d2.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c0_6_00606 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellscbef0a66a7 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellscbef0a66a7 + +open CertificateCellscbef0a66a7 +namespace CoverCertificate828511f0b8 + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate828511f0b8 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c0 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022002010) = true := by + exact CoverCertificate828511f0b8.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c1_6_00607 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0e30799078 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0e30799078 + +open CertificateCells0e30799078 +namespace CoverCertificated54c339469 + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated54c339469 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c1 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022002010) = true := by + exact CoverCertificated54c339469.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c2_c0_c0_4_00610 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsaa7ab31314 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsaa7ab31314 + +open CertificateCellsaa7ab31314 +namespace CoverCertificate4dd8dcfac0 + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4dd8dcfac0 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c0_c0 : + adaptiveCoverCheck 4 (childLL (childLL (childHL thetaAboveCell000022002010))) = true := by + exact CoverCertificate4dd8dcfac0.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c2_c0_c1_4_00611 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa4a7cbe7b2 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa4a7cbe7b2 + +open CertificateCellsa4a7cbe7b2 +namespace CoverCertificate4ee27c37fd + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4ee27c37fd + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c0_c1 : + adaptiveCoverCheck 4 (childLH (childLL (childHL thetaAboveCell000022002010))) = true := by + exact CoverCertificate4ee27c37fd.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c2_c0_c2_4_00612 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9f358cc74d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9f358cc74d + +open CertificateCells9f358cc74d +namespace CoverCertificated7b655454c + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated7b655454c + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c0_c2 : + adaptiveCoverCheck 4 (childHL (childLL (childHL thetaAboveCell000022002010))) = true := by + exact CoverCertificated7b655454c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c2_c0_c3_4_00613 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf2bd9cd8f9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf2bd9cd8f9 + +open CertificateCellsf2bd9cd8f9 +namespace CoverCertificate34bc1a6525 + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate34bc1a6525 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c0_c3 : + adaptiveCoverCheck 4 (childHH (childLL (childHL thetaAboveCell000022002010))) = true := by + exact CoverCertificate34bc1a6525.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c2_c1_c0_4_00616 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse30fe464b6 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse30fe464b6 + +open CertificateCellse30fe464b6 +namespace CoverCertificate6e40ca0512 + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate6e40ca0512 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c1_c0 : + adaptiveCoverCheck 4 (childLL (childLH (childHL thetaAboveCell000022002010))) = true := by + exact CoverCertificate6e40ca0512.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c2_c1_c1_4_00617 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells50e57ae8a7 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells50e57ae8a7 + +open CertificateCells50e57ae8a7 +namespace CoverCertificateefd035cf65 + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateefd035cf65 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c1_c1 : + adaptiveCoverCheck 4 (childLH (childLH (childHL thetaAboveCell000022002010))) = true := by + exact CoverCertificateefd035cf65.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c2_c1_c2_4_00618 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6831b5295c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6831b5295c + +open CertificateCells6831b5295c +namespace CoverCertificatea4b667aaa0 + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea4b667aaa0 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c1_c2 : + adaptiveCoverCheck 4 (childHL (childLH (childHL thetaAboveCell000022002010))) = true := by + exact CoverCertificatea4b667aaa0.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c2_c1_c3_4_00619 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6ec7ee0b32 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6ec7ee0b32 + +open CertificateCells6ec7ee0b32 +namespace CoverCertificateccad0dc048 + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateccad0dc048 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c1_c3 : + adaptiveCoverCheck 4 (childHH (childLH (childHL thetaAboveCell000022002010))) = true := by + exact CoverCertificateccad0dc048.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c2_c2_5_00621 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellscdb025ab65 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellscdb025ab65 + +open CertificateCellscdb025ab65 +namespace CoverCertificate89deca0334 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate89deca0334 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c2 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022002010)) = true := by + exact CoverCertificate89deca0334.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c2_c3_5_00622 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells251eb00cd5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells251eb00cd5 + +open CertificateCells251eb00cd5 +namespace CoverCertificate8778f820bd + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate8778f820bd + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c3 : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022002010)) = true := by + exact CoverCertificate8778f820bd.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c3_c0_c0_4_00626 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb46fd93863 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb46fd93863 + +open CertificateCellsb46fd93863 +namespace CoverCertificatef14d24461a + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef14d24461a + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c0_c0 : + adaptiveCoverCheck 4 (childLL (childLL (childHH thetaAboveCell000022002010))) = true := by + exact CoverCertificatef14d24461a.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c3_c0_c1_4_00627 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells02c02b7fd3 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells02c02b7fd3 + +open CertificateCells02c02b7fd3 +namespace CoverCertificate79980b2e6c + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate79980b2e6c + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c0_c1 : + adaptiveCoverCheck 4 (childLH (childLL (childHH thetaAboveCell000022002010))) = true := by + exact CoverCertificate79980b2e6c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c3_c0_c2_4_00628 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells969e2199d5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells969e2199d5 + +open CertificateCells969e2199d5 +namespace CoverCertificateed2ff1f24e + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 1 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 1 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 1 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 1 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateed2ff1f24e + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c0_c2 : + adaptiveCoverCheck 4 (childHL (childLL (childHH thetaAboveCell000022002010))) = true := by + exact CoverCertificateed2ff1f24e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c3_c0_c3_4_00629 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells99f6185557 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells99f6185557 + +open CertificateCells99f6185557 +namespace CoverCertificate4bcf50db3e + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 1 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 1 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 1 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 1 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4bcf50db3e + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c0_c3 : + adaptiveCoverCheck 4 (childHH (childLL (childHH thetaAboveCell000022002010))) = true := by + exact CoverCertificate4bcf50db3e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c3_c1_c0_4_00632 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsea3eb05dc6 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsea3eb05dc6 + +open CertificateCellsea3eb05dc6 +namespace CoverCertificate1e4788169b + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1e4788169b + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c1_c0 : + adaptiveCoverCheck 4 (childLL (childLH (childHH thetaAboveCell000022002010))) = true := by + exact CoverCertificate1e4788169b.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c3_c1_c1_4_00633 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1daa3566d0 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1daa3566d0 + +open CertificateCells1daa3566d0 +namespace CoverCertificate4f5a63a5df + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4f5a63a5df + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c1_c1 : + adaptiveCoverCheck 4 (childLH (childLH (childHH thetaAboveCell000022002010))) = true := by + exact CoverCertificate4f5a63a5df.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c3_c1_c2_4_00634 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells04b8a575e1 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells04b8a575e1 + +open CertificateCells04b8a575e1 +namespace CoverCertificate89bb9fd21e + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 1 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 1 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 1 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 1 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate89bb9fd21e + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c1_c2 : + adaptiveCoverCheck 4 (childHL (childLH (childHH thetaAboveCell000022002010))) = true := by + exact CoverCertificate89bb9fd21e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c3_c1_c3_4_00635 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb52fa9450d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb52fa9450d + +open CertificateCellsb52fa9450d +namespace CoverCertificate5c80136736 + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 1 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 1 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 1 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 1 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5c80136736 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c1_c3 : + adaptiveCoverCheck 4 (childHH (childLH (childHH thetaAboveCell000022002010))) = true := by + exact CoverCertificate5c80136736.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c3_c2_5_00637 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells75262755f1 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells75262755f1 + +open CertificateCells75262755f1 +namespace CoverCertificate645f79320a + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate645f79320a + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c2 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022002010)) = true := by + exact CoverCertificate645f79320a.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c0_c3_c3_5_00638 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells88775d9be2 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells88775d9be2 + +open CertificateCells88775d9be2 +namespace CoverCertificate3e0a4a2c6f + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3e0a4a2c6f + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c3 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022002010)) = true := by + exact CoverCertificate3e0a4a2c6f.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle021.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle021.lean new file mode 100644 index 0000000000..8078acacaf --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle021.lean @@ -0,0 +1,10989 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle018 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle019 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle020 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch034`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCells84b6dd5403 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113011 : AngleCell := + childLH (childLH (childLL (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331130110020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110020 : AngleCell := + childLL (childHL (childLL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110021 : AngleCell := + childLH (childHL (childLL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110022 : AngleCell := + childHL (childHL (childLL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110023 : AngleCell := + childHH (childHL (childLL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110030 : AngleCell := + childLL (childHH (childLL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110031 : AngleCell := + childLH (childHH (childLL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110032 : AngleCell := + childHL (childHH (childLL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110033 : AngleCell := + childHH (childHH (childLL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110120 : AngleCell := + childLL (childHL (childLH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110121 : AngleCell := + childLH (childHL (childLH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110122 : AngleCell := + childHL (childHL (childLH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110123 : AngleCell := + childHH (childHL (childLH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110130 : AngleCell := + childLL (childHH (childLH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110131 : AngleCell := + childLH (childHH (childLH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110132 : AngleCell := + childHL (childHH (childLH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110133 : AngleCell := + childHH (childHH (childLH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110200 : AngleCell := + childLL (childLL (childHL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110201 : AngleCell := + childLH (childLL (childHL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110202 : AngleCell := + childHL (childLL (childHL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110203 : AngleCell := + childHH (childLL (childHL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110210 : AngleCell := + childLL (childLH (childHL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110211 : AngleCell := + childLH (childLH (childHL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110212 : AngleCell := + childHL (childLH (childHL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110213 : AngleCell := + childHH (childLH (childHL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110220 : AngleCell := + childLL (childHL (childHL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110221 : AngleCell := + childLH (childHL (childHL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110222 : AngleCell := + childHL (childHL (childHL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110223 : AngleCell := + childHH (childHL (childHL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110230 : AngleCell := + childLL (childHH (childHL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110231 : AngleCell := + childLH (childHH (childHL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110232 : AngleCell := + childHL (childHH (childHL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110233 : AngleCell := + childHH (childHH (childHL (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110300 : AngleCell := + childLL (childLL (childHH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110301 : AngleCell := + childLH (childLL (childHH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110302 : AngleCell := + childHL (childLL (childHH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110303 : AngleCell := + childHH (childLL (childHH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110310 : AngleCell := + childLL (childLH (childHH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110311 : AngleCell := + childLH (childLH (childHH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110312 : AngleCell := + childHL (childLH (childHH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110313 : AngleCell := + childHH (childLH (childHH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110320 : AngleCell := + childLL (childHL (childHH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110321 : AngleCell := + childLH (childHL (childHH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110322 : AngleCell := + childHL (childHL (childHH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110323 : AngleCell := + childHH (childHL (childHH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110330 : AngleCell := + childLL (childHH (childHH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110331 : AngleCell := + childLH (childHH (childHH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110332 : AngleCell := + childHL (childHH (childHH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130110333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130110333 : AngleCell := + childHH (childHH (childHH (childLL thetaBelowCell111133113011))) + +/-- Subcell `1111331130111020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111020 : AngleCell := + childLL (childHL (childLL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111021 : AngleCell := + childLH (childHL (childLL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111022 : AngleCell := + childHL (childHL (childLL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111023 : AngleCell := + childHH (childHL (childLL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111030 : AngleCell := + childLL (childHH (childLL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111031 : AngleCell := + childLH (childHH (childLL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111032 : AngleCell := + childHL (childHH (childLL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111033 : AngleCell := + childHH (childHH (childLL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111120 : AngleCell := + childLL (childHL (childLH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111121 : AngleCell := + childLH (childHL (childLH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111122 : AngleCell := + childHL (childHL (childLH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111123 : AngleCell := + childHH (childHL (childLH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111130 : AngleCell := + childLL (childHH (childLH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111131 : AngleCell := + childLH (childHH (childLH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111132 : AngleCell := + childHL (childHH (childLH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111133 : AngleCell := + childHH (childHH (childLH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111200 : AngleCell := + childLL (childLL (childHL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111201 : AngleCell := + childLH (childLL (childHL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111202 : AngleCell := + childHL (childLL (childHL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111203 : AngleCell := + childHH (childLL (childHL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111210 : AngleCell := + childLL (childLH (childHL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111211 : AngleCell := + childLH (childLH (childHL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111212 : AngleCell := + childHL (childLH (childHL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111213 : AngleCell := + childHH (childLH (childHL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111220 : AngleCell := + childLL (childHL (childHL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111221 : AngleCell := + childLH (childHL (childHL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111222 : AngleCell := + childHL (childHL (childHL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111223 : AngleCell := + childHH (childHL (childHL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111230 : AngleCell := + childLL (childHH (childHL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111231 : AngleCell := + childLH (childHH (childHL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111232 : AngleCell := + childHL (childHH (childHL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111233 : AngleCell := + childHH (childHH (childHL (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111300 : AngleCell := + childLL (childLL (childHH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111301 : AngleCell := + childLH (childLL (childHH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111302 : AngleCell := + childHL (childLL (childHH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111303 : AngleCell := + childHH (childLL (childHH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111310 : AngleCell := + childLL (childLH (childHH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111311 : AngleCell := + childLH (childLH (childHH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111312 : AngleCell := + childHL (childLH (childHH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111313 : AngleCell := + childHH (childLH (childHH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111320 : AngleCell := + childLL (childHL (childHH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111321 : AngleCell := + childLH (childHL (childHH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111322 : AngleCell := + childHL (childHL (childHH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111323 : AngleCell := + childHH (childHL (childHH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111330 : AngleCell := + childLL (childHH (childHH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111331 : AngleCell := + childLH (childHH (childHH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111332 : AngleCell := + childHL (childHH (childHH (childLH thetaBelowCell111133113011))) + +/-- Subcell `1111331130111333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331130111333 : AngleCell := + childHH (childHH (childHH (childLH thetaBelowCell111133113011))) + +end GerverSofa.PartE.CertificateCells84b6dd5403 + +namespace GerverSofa.PartE.CertificateCellsa837c94d6b + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsa837c94d6b + +namespace GerverSofa.PartE.CertificateCellsad9f83220e + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +end GerverSofa.PartE.CertificateCellsad9f83220e + +namespace GerverSofa.PartE.CertificateCells9fb4000a9c + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells9fb4000a9c + +namespace GerverSofa.PartE.CertificateCells39e4b63459 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells39e4b63459 + +namespace GerverSofa.PartE.CertificateCells1f04a5458e + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220021003102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022002100))) + +/-- Subcell `0000220021003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022002100))) + +end GerverSofa.PartE.CertificateCells1f04a5458e + +namespace GerverSofa.PartE.CertificateCells6fd31b8688 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells6fd31b8688 + +namespace GerverSofa.PartE.CertificateCells228f0f8fd4 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220021113000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113020 : AngleCell := + childLL (childHL (childLL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113021 : AngleCell := + childLH (childHL (childLL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113030 : AngleCell := + childLL (childHH (childLL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113031 : AngleCell := + childLH (childHH (childLL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell000022002111))) + +/-- Subcell `0000220021113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell000022002111))) + +end GerverSofa.PartE.CertificateCells228f0f8fd4 + +namespace GerverSofa.PartE.CertificateCells0a19d30544 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells0a19d30544 + +namespace GerverSofa.PartE.CertificateCells2ee5d31193 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113103 : AngleCell := + childHH (childLL (childLH (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCells2ee5d31193 + +namespace GerverSofa.PartE.CertificateCells41213b9d19 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells41213b9d19 + +namespace GerverSofa.PartE.CertificateCellsb64c3c15bb + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsb64c3c15bb + +namespace GerverSofa.PartE.CertificateCells32e697bee5 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113100 : AngleCell := + childLL (childLL (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331131001020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001020 : AngleCell := + childLL (childHL (childLL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001021 : AngleCell := + childLH (childHL (childLL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001022 : AngleCell := + childHL (childHL (childLL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001023 : AngleCell := + childHH (childHL (childLL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001030 : AngleCell := + childLL (childHH (childLL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001031 : AngleCell := + childLH (childHH (childLL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001032 : AngleCell := + childHL (childHH (childLL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001033 : AngleCell := + childHH (childHH (childLL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001200 : AngleCell := + childLL (childLL (childHL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001201 : AngleCell := + childLH (childLL (childHL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001202 : AngleCell := + childHL (childLL (childHL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001203 : AngleCell := + childHH (childLL (childHL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001210 : AngleCell := + childLL (childLH (childHL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001211 : AngleCell := + childLH (childLH (childHL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001212 : AngleCell := + childHL (childLH (childHL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001213 : AngleCell := + childHH (childLH (childHL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001220 : AngleCell := + childLL (childHL (childHL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001221 : AngleCell := + childLH (childHL (childHL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001222 : AngleCell := + childHL (childHL (childHL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001223 : AngleCell := + childHH (childHL (childHL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001230 : AngleCell := + childLL (childHH (childHL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001231 : AngleCell := + childLH (childHH (childHL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001232 : AngleCell := + childHL (childHH (childHL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001233 : AngleCell := + childHH (childHH (childHL (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001300 : AngleCell := + childLL (childLL (childHH (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001301 : AngleCell := + childLH (childLL (childHH (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001302 : AngleCell := + childHL (childLL (childHH (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001303 : AngleCell := + childHH (childLL (childHH (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001310 : AngleCell := + childLL (childLH (childHH (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001311 : AngleCell := + childLH (childLH (childHH (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001312 : AngleCell := + childHL (childLH (childHH (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001313 : AngleCell := + childHH (childLH (childHH (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001320 : AngleCell := + childLL (childHL (childHH (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001321 : AngleCell := + childLH (childHL (childHH (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001322 : AngleCell := + childHL (childHL (childHH (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001323 : AngleCell := + childHH (childHL (childHH (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001330 : AngleCell := + childLL (childHH (childHH (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001331 : AngleCell := + childLH (childHH (childHH (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001332 : AngleCell := + childHL (childHH (childHH (childLH thetaBelowCell111133113100))) + +/-- Subcell `1111331131001333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131001333 : AngleCell := + childHH (childHH (childHH (childLH thetaBelowCell111133113100))) + +end GerverSofa.PartE.CertificateCells32e697bee5 + +namespace GerverSofa.PartE.CertificateCells64ee0fdc2a + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113100 : AngleCell := + childLL (childLL (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331131002010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131002010 : AngleCell := + childLL (childLH (childLL (childHL thetaBelowCell111133113100))) + +/-- Subcell `1111331131002011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131002011 : AngleCell := + childLH (childLH (childLL (childHL thetaBelowCell111133113100))) + +/-- Subcell `1111331131002012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131002012 : AngleCell := + childHL (childLH (childLL (childHL thetaBelowCell111133113100))) + +/-- Subcell `1111331131002013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131002013 : AngleCell := + childHH (childLH (childLL (childHL thetaBelowCell111133113100))) + +/-- Subcell `1111331131002100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131002100 : AngleCell := + childLL (childLL (childLH (childHL thetaBelowCell111133113100))) + +/-- Subcell `1111331131002101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131002101 : AngleCell := + childLH (childLL (childLH (childHL thetaBelowCell111133113100))) + +/-- Subcell `1111331131002102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131002102 : AngleCell := + childHL (childLL (childLH (childHL thetaBelowCell111133113100))) + +/-- Subcell `1111331131002103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131002103 : AngleCell := + childHH (childLL (childLH (childHL thetaBelowCell111133113100))) + +/-- Subcell `1111331131002110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131002110 : AngleCell := + childLL (childLH (childLH (childHL thetaBelowCell111133113100))) + +/-- Subcell `1111331131002111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131002111 : AngleCell := + childLH (childLH (childLH (childHL thetaBelowCell111133113100))) + +/-- Subcell `1111331131002112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131002112 : AngleCell := + childHL (childLH (childLH (childHL thetaBelowCell111133113100))) + +/-- Subcell `1111331131002113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131002113 : AngleCell := + childHH (childLH (childLH (childHL thetaBelowCell111133113100))) + +end GerverSofa.PartE.CertificateCells64ee0fdc2a + +namespace GerverSofa.PartE.CertificateCells30e97e201e + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220021002002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022002100))) + +end GerverSofa.PartE.CertificateCells30e97e201e + +namespace GerverSofa.PartE.CertificateCellsd48981846f + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCellsd48981846f + +namespace GerverSofa.PartE.CertificateCells2454b18c1c + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113012 : AngleCell := + childHL (childLH (childLL (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCells2454b18c1c + +namespace GerverSofa.PartE.CertificateCellsd87c25aa46 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +end GerverSofa.PartE.CertificateCellsd87c25aa46 + +namespace GerverSofa.PartE.CertificateCells90183e831a + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113100 : AngleCell := + childLL (childLL (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331131003000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131003000 : AngleCell := + childLL (childLL (childLL (childHH thetaBelowCell111133113100))) + +/-- Subcell `1111331131003001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131003001 : AngleCell := + childLH (childLL (childLL (childHH thetaBelowCell111133113100))) + +/-- Subcell `1111331131003002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131003002 : AngleCell := + childHL (childLL (childLL (childHH thetaBelowCell111133113100))) + +/-- Subcell `1111331131003003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131003003 : AngleCell := + childHH (childLL (childLL (childHH thetaBelowCell111133113100))) + +/-- Subcell `1111331131003010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131003010 : AngleCell := + childLL (childLH (childLL (childHH thetaBelowCell111133113100))) + +/-- Subcell `1111331131003011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131003011 : AngleCell := + childLH (childLH (childLL (childHH thetaBelowCell111133113100))) + +/-- Subcell `1111331131003012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131003012 : AngleCell := + childHL (childLH (childLL (childHH thetaBelowCell111133113100))) + +/-- Subcell `1111331131003013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131003013 : AngleCell := + childHH (childLH (childLL (childHH thetaBelowCell111133113100))) + +/-- Subcell `1111331131003100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131003100 : AngleCell := + childLL (childLL (childLH (childHH thetaBelowCell111133113100))) + +/-- Subcell `1111331131003101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131003101 : AngleCell := + childLH (childLL (childLH (childHH thetaBelowCell111133113100))) + +/-- Subcell `1111331131003102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131003102 : AngleCell := + childHL (childLL (childLH (childHH thetaBelowCell111133113100))) + +/-- Subcell `1111331131003103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131003103 : AngleCell := + childHH (childLL (childLH (childHH thetaBelowCell111133113100))) + +/-- Subcell `1111331131003110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131003110 : AngleCell := + childLL (childLH (childLH (childHH thetaBelowCell111133113100))) + +/-- Subcell `1111331131003111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131003111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell111133113100))) + +/-- Subcell `1111331131003112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131003112 : AngleCell := + childHL (childLH (childLH (childHH thetaBelowCell111133113100))) + +/-- Subcell `1111331131003113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131003113 : AngleCell := + childHH (childLH (childLH (childHH thetaBelowCell111133113100))) + +end GerverSofa.PartE.CertificateCells90183e831a + +namespace GerverSofa.PartE.CertificateCells47753ffbe9 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113100 : AngleCell := + childLL (childLL (childLH (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCells47753ffbe9 + +namespace GerverSofa.PartE.CertificateCellse21bcf4574 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellse21bcf4574 + +namespace GerverSofa.PartE.CertificateCellsda9a873863 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsda9a873863 + +namespace GerverSofa.PartE.CertificateCells7d865d7559 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331131113000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113000 : AngleCell := + childLL (childLL (childLL (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113001 : AngleCell := + childLH (childLL (childLL (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113002 : AngleCell := + childHL (childLL (childLL (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113003 : AngleCell := + childHH (childLL (childLL (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113010 : AngleCell := + childLL (childLH (childLL (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113011 : AngleCell := + childLH (childLH (childLL (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113012 : AngleCell := + childHL (childLH (childLL (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113013 : AngleCell := + childHH (childLH (childLL (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113020 : AngleCell := + childLL (childHL (childLL (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113021 : AngleCell := + childLH (childHL (childLL (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113022 : AngleCell := + childHL (childHL (childLL (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113023 : AngleCell := + childHH (childHL (childLL (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113030 : AngleCell := + childLL (childHH (childLL (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113031 : AngleCell := + childLH (childHH (childLL (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113032 : AngleCell := + childHL (childHH (childLL (childHH thetaBelowCell111133113111))) + +/-- Subcell `1111331131113033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131113033 : AngleCell := + childHH (childHH (childLL (childHH thetaBelowCell111133113111))) + +end GerverSofa.PartE.CertificateCells7d865d7559 + +namespace GerverSofa.PartE.CertificateCellsca42d19ac6 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCellsca42d19ac6 + +namespace GerverSofa.PartE.CertificateCells257a1a1faa + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113101 : AngleCell := + childLH (childLL (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331131010200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010200 : AngleCell := + childLL (childLL (childHL (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010201 : AngleCell := + childLH (childLL (childHL (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010202 : AngleCell := + childHL (childLL (childHL (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010203 : AngleCell := + childHH (childLL (childHL (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010210 : AngleCell := + childLL (childLH (childHL (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010211 : AngleCell := + childLH (childLH (childHL (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010212 : AngleCell := + childHL (childLH (childHL (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010213 : AngleCell := + childHH (childLH (childHL (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010220 : AngleCell := + childLL (childHL (childHL (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010221 : AngleCell := + childLH (childHL (childHL (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010222 : AngleCell := + childHL (childHL (childHL (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010223 : AngleCell := + childHH (childHL (childHL (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010230 : AngleCell := + childLL (childHH (childHL (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010231 : AngleCell := + childLH (childHH (childHL (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010232 : AngleCell := + childHL (childHH (childHL (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010233 : AngleCell := + childHH (childHH (childHL (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010300 : AngleCell := + childLL (childLL (childHH (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010301 : AngleCell := + childLH (childLL (childHH (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010302 : AngleCell := + childHL (childLL (childHH (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010303 : AngleCell := + childHH (childLL (childHH (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010310 : AngleCell := + childLL (childLH (childHH (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010311 : AngleCell := + childLH (childLH (childHH (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010312 : AngleCell := + childHL (childLH (childHH (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010313 : AngleCell := + childHH (childLH (childHH (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010320 : AngleCell := + childLL (childHL (childHH (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010321 : AngleCell := + childLH (childHL (childHH (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010322 : AngleCell := + childHL (childHL (childHH (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010323 : AngleCell := + childHH (childHL (childHH (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010330 : AngleCell := + childLL (childHH (childHH (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010331 : AngleCell := + childLH (childHH (childHH (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010332 : AngleCell := + childHL (childHH (childHH (childLL thetaBelowCell111133113101))) + +/-- Subcell `1111331131010333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131010333 : AngleCell := + childHH (childHH (childHH (childLL thetaBelowCell111133113101))) + +end GerverSofa.PartE.CertificateCells257a1a1faa + +namespace GerverSofa.PartE.CertificateCellsb187906d24 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220021012002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022002101))) + +/-- Subcell `0000220021012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022002101))) + +end GerverSofa.PartE.CertificateCellsb187906d24 + +namespace GerverSofa.PartE.CertificateCellseb98bd469c + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellseb98bd469c + +namespace GerverSofa.PartE.CertificateCells0fb8590a1f + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells0fb8590a1f + +namespace GerverSofa.PartE.CertificateCells21614274e2 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113130 : AngleCell := + childLL (childHH (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `111133113131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113131 : AngleCell := + childLH (childHH (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `111133113132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113132 : AngleCell := + childHL (childHH (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `111133113133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113133 : AngleCell := + childHH (childHH (childLH (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCells21614274e2 + +namespace GerverSofa.PartE.CertificateCells075667848d + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220021002102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022002100))) + +/-- Subcell `0000220021002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022002100))) + +end GerverSofa.PartE.CertificateCells075667848d + +namespace GerverSofa.PartE.CertificateCells135b119fc2 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells135b119fc2 + +namespace GerverSofa.PartE.CertificateCellse53a016898 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellse53a016898 + +namespace GerverSofa.PartE.CertificateCells8b72842cc0 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +end GerverSofa.PartE.CertificateCells8b72842cc0 + +namespace GerverSofa.PartE.CertificateCells3d04a04d91 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113030 : AngleCell := + childLL (childHH (childLL (childHH thetaBelowCell11113311))) + +/-- Subcell `111133113031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113031 : AngleCell := + childLH (childHH (childLL (childHH thetaBelowCell11113311))) + +/-- Subcell `111133113032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113032 : AngleCell := + childHL (childHH (childLL (childHH thetaBelowCell11113311))) + +/-- Subcell `111133113033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113033 : AngleCell := + childHH (childHH (childLL (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCells3d04a04d91 + +namespace GerverSofa.PartE.CertificateCells665e67ba22 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113101 : AngleCell := + childLH (childLL (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331131013010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131013010 : AngleCell := + childLL (childLH (childLL (childHH thetaBelowCell111133113101))) + +/-- Subcell `1111331131013011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131013011 : AngleCell := + childLH (childLH (childLL (childHH thetaBelowCell111133113101))) + +/-- Subcell `1111331131013012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131013012 : AngleCell := + childHL (childLH (childLL (childHH thetaBelowCell111133113101))) + +/-- Subcell `1111331131013013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131013013 : AngleCell := + childHH (childLH (childLL (childHH thetaBelowCell111133113101))) + +/-- Subcell `1111331131013000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131013000 : AngleCell := + childLL (childLL (childLL (childHH thetaBelowCell111133113101))) + +/-- Subcell `1111331131013001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131013001 : AngleCell := + childLH (childLL (childLL (childHH thetaBelowCell111133113101))) + +/-- Subcell `1111331131013002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131013002 : AngleCell := + childHL (childLL (childLL (childHH thetaBelowCell111133113101))) + +/-- Subcell `1111331131013003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131013003 : AngleCell := + childHH (childLL (childLL (childHH thetaBelowCell111133113101))) + +/-- Subcell `1111331131013100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131013100 : AngleCell := + childLL (childLL (childLH (childHH thetaBelowCell111133113101))) + +/-- Subcell `1111331131013101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131013101 : AngleCell := + childLH (childLL (childLH (childHH thetaBelowCell111133113101))) + +/-- Subcell `1111331131013102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131013102 : AngleCell := + childHL (childLL (childLH (childHH thetaBelowCell111133113101))) + +/-- Subcell `1111331131013103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131013103 : AngleCell := + childHH (childLL (childLH (childHH thetaBelowCell111133113101))) + +/-- Subcell `1111331131013110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131013110 : AngleCell := + childLL (childLH (childLH (childHH thetaBelowCell111133113101))) + +/-- Subcell `1111331131013111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131013111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell111133113101))) + +/-- Subcell `1111331131013112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131013112 : AngleCell := + childHL (childLH (childLH (childHH thetaBelowCell111133113101))) + +/-- Subcell `1111331131013113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131013113 : AngleCell := + childHH (childLH (childLH (childHH thetaBelowCell111133113101))) + +end GerverSofa.PartE.CertificateCells665e67ba22 + +namespace GerverSofa.PartE.CertificateCellsa275032fe9 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113101 : AngleCell := + childLH (childLL (childLH (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCellsa275032fe9 + +namespace GerverSofa.PartE.CertificateCells09124dcbf9 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +end GerverSofa.PartE.CertificateCells09124dcbf9 + +namespace GerverSofa.PartE.CertificateCellse133bf0420 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220021102000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102120 : AngleCell := + childLL (childHL (childLH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102121 : AngleCell := + childLH (childHL (childLH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102130 : AngleCell := + childLL (childHH (childLH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102131 : AngleCell := + childLH (childHH (childLH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell000022002110))) + +/-- Subcell `0000220021102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220021102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell000022002110))) + +end GerverSofa.PartE.CertificateCellse133bf0420 + +namespace GerverSofa.PartE.CertificateCellsf1833757d0 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsf1833757d0 + +namespace GerverSofa.PartE.CertificateCells21f94a2daf + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +end GerverSofa.PartE.CertificateCells21f94a2daf + +namespace GerverSofa.PartE.CertificateCellsbb4f00460c + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +end GerverSofa.PartE.CertificateCellsbb4f00460c + +namespace GerverSofa.PartE.CertificateCells232e7e9a76 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113020 : AngleCell := + childLL (childHL (childLL (childHH thetaBelowCell11113311))) + +/-- Subcell `111133113021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113021 : AngleCell := + childLH (childHL (childLL (childHH thetaBelowCell11113311))) + +/-- Subcell `111133113022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113022 : AngleCell := + childHL (childHL (childLL (childHH thetaBelowCell11113311))) + +/-- Subcell `111133113023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113023 : AngleCell := + childHH (childHL (childLL (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCells232e7e9a76 + +namespace GerverSofa.PartE.CertificateCellse657ecadb5 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +end GerverSofa.PartE.CertificateCellse657ecadb5 + +namespace GerverSofa.PartE.CertificateCells78b824f474 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell11113311))) + +/-- Subcell `1111331131110220` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110220 : AngleCell := + childLL (childHL (childHL (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110221` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110221 : AngleCell := + childLH (childHL (childHL (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110222` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110222 : AngleCell := + childHL (childHL (childHL (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110223` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110223 : AngleCell := + childHH (childHL (childHL (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110230` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110230 : AngleCell := + childLL (childHH (childHL (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110231` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110231 : AngleCell := + childLH (childHH (childHL (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110232` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110232 : AngleCell := + childHL (childHH (childHL (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110233` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110233 : AngleCell := + childHH (childHH (childHL (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110200 : AngleCell := + childLL (childLL (childHL (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110201 : AngleCell := + childLH (childLL (childHL (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110202 : AngleCell := + childHL (childLL (childHL (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110203 : AngleCell := + childHH (childLL (childHL (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110210 : AngleCell := + childLL (childLH (childHL (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110211 : AngleCell := + childLH (childLH (childHL (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110212 : AngleCell := + childHL (childLH (childHL (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110213 : AngleCell := + childHH (childLH (childHL (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110320` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110320 : AngleCell := + childLL (childHL (childHH (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110321` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110321 : AngleCell := + childLH (childHL (childHH (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110322` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110322 : AngleCell := + childHL (childHL (childHH (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110323` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110323 : AngleCell := + childHH (childHL (childHH (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110332` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110332 : AngleCell := + childHL (childHH (childHH (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110333` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110333 : AngleCell := + childHH (childHH (childHH (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110330` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110330 : AngleCell := + childLL (childHH (childHH (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110331` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110331 : AngleCell := + childLH (childHH (childHH (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110300 : AngleCell := + childLL (childLL (childHH (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110301 : AngleCell := + childLH (childLL (childHH (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110302 : AngleCell := + childHL (childLL (childHH (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110303 : AngleCell := + childHH (childLL (childHH (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110310 : AngleCell := + childLL (childLH (childHH (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110311 : AngleCell := + childLH (childLH (childHH (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110312 : AngleCell := + childHL (childLH (childHH (childLL thetaBelowCell111133113111))) + +/-- Subcell `1111331131110313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111331131110313 : AngleCell := + childHH (childLH (childHH (childLL thetaBelowCell111133113111))) + +end GerverSofa.PartE.CertificateCells78b824f474 + +namespace GerverSofa.PartE.CertificateCellsccc2f90403 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `111133113111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell111133113111 : AngleCell := + childLH (childLH (childLH (childHH thetaBelowCell11113311))) + +end GerverSofa.PartE.CertificateCellsccc2f90403 + +namespace GerverSofa.PartE.CertificateCellse5aa25a242 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +end GerverSofa.PartE.CertificateCellse5aa25a242 + +namespace GerverSofa.PartE.CertificateCells0d1c7d48ff + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +end GerverSofa.PartE.CertificateCells0d1c7d48ff + +namespace GerverSofa.PartE.CertificateCells1d418dae20 + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +end GerverSofa.PartE.CertificateCells1d418dae20 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.E24KC6R4Subtree8dd4d0d86bb3ff9f`. +* `KernelOnly.PartE.E24KC6R4Subtree8e967390514267d6`. +* `KernelOnly.PartE.E24KC6R4Subtree91992483bb6a8f04`. +* `KernelOnly.PartE.E24KC6R4Subtree924080aa784e817a`. +* `KernelOnly.PartE.E24KC6R4Subtree9eb1f025174c3177`. +* `KernelOnly.PartE.E24KC6R4SubtreeA095c7ff4c6ad6b6`. +* `KernelOnly.PartE.E24KC6R4Join32513267a6450294`. +* `KernelOnly.PartE.E24KC6R4SubtreeA80f1d406f4d338d`. +* `KernelOnly.PartE.E24KC6R4SubtreeAea2c9f5ded50576`. +* `KernelOnly.PartE.E24KC6R4SubtreeB93b1c054dba72bb`. +* `KernelOnly.PartE.E24KC6R4SubtreeC309c137435a4a8a`. +* `KernelOnly.PartE.E24KC6R4Join1c93c00761c21de7`. +* `KernelOnly.PartE.E24KC6R4SubtreeC8b63043186f1b44`. +* `KernelOnly.PartE.E24KC6R4SubtreeCbd4f9934ee17393`. +* `KernelOnly.PartE.E24KC6R4SubtreeD658abc468986ad2`. +* `KernelOnly.PartE.E24KC6R4SubtreeDc47723dc66dfda8`. +* `KernelOnly.PartE.E24KC6R4SubtreeE07cf48cb1b589f9`. +* `KernelOnly.PartE.E24KC6R4JoinA1daf15b91aa7155`. +* `KernelOnly.PartE.E24KC6R4SubtreeE1aad79037162af3`. +* `KernelOnly.PartE.E24KC6R4JoinB6430364d883da5c`. +* `KernelOnly.PartE.E24KC6R4SubtreeE3bcfcc291fdb5b4`. +* `KernelOnly.PartE.E24KC6R4SubtreeE5b6fc380e82e47e`. +* `KernelOnly.PartE.E24KC6R4SubtreeE8870b13405ffc13`. +* `KernelOnly.PartE.E24KC6R4Join3b19a6737a79b00f`. +* `KernelOnly.PartE.E24KC6R4SubtreeE91aff9c114b660b`. +* `KernelOnly.PartE.E24KC6R4SubtreeEc06b97bc924fb9a`. +* `KernelOnly.PartE.E24KC6R4Join62d0e072891eacfc`. +* `KernelOnly.PartE.E24KC6R4Join45f1be0097db6fa8`. +* `KernelOnly.PartE.E24KC6R4SubtreeEd73d41bc0ae6f27`. +* `KernelOnly.PartE.E24KC6R4SubtreeEdd4c8d57c5a9ded`. +* `KernelOnly.PartE.E24KC6R4Join96d3935117f8c848`. +* `KernelOnly.PartE.E24KC6R4Join7c9f3e2241f40b54`. +* `KernelOnly.PartE.E24KC6R4Join489f93824ca49e04`. +* `KernelOnly.PartE.E24KC6R4SubtreeF553a12d6978535b`. +* `KernelOnly.PartE.E24KC6R4SubtreeF60ae8a1c3b6076a`. +* `KernelOnly.PartE.E24KC6R4Join978735cf4a10b0c4`. +* `KernelOnly.PartE.E24KC6R4JoinAf86a73e06a6d340`. +* `KernelOnly.PartE.E24KC6R4SubtreeF8d6ff3220b818df`. +* `KernelOnly.PartE.E24KC6R4JoinB118d49025de8b76`. +* `KernelOnly.PartE.E24KC6R4JoinE6a27f6b8bf66074`. +* `KernelOnly.PartE.E24KC6R4Join1480e3e518aaa8b9`. +* `KernelOnly.PartE.E24KC6R4SubtreeF9a00b60dcd28a42`. +* `KernelOnly.PartE.E24KC6R4Join68100c5f054c8ea2`. +* `KernelOnly.PartE.E24KC6R4SubtreeFfa75b98dddd4b5e`. +* `KernelOnly.PartE.E24KC6R4Join25ba04fb03bf9d4a`. +* `KernelOnly.PartE.E24KC6R4JoinB0c26eb36c2c399d`. +* `KernelOnly.PartE.E24KC6R4JoinC502233200399653`. +* `KernelOnly.PartE.E24KC6R4Join459e5b5f3815ebd2`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells84b6dd5403 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells84b6dd5403 + +open CertificateCells84b6dd5403 +theorem cover_subtree_ae17a6be47c3 : + adaptiveCoverCheck 4 (childLL (childLL thetaBelowCell111133113011)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL thetaBelowCell111133113011)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLL + thetaBelowCell111133113011))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLL + thetaBelowCell111133113011))) h) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childLL (childLL + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130110020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110020 h) + (by + have h : (thetaBelowCell1111331130110021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110021 h) + (by + have h : (thetaBelowCell1111331130110022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110022 h) + (by + have h : (thetaBelowCell1111331130110023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childLL (childLL + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130110030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110030 h) + (by + have h : (thetaBelowCell1111331130110031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110031 h) + (by + have h : (thetaBelowCell1111331130110032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110032 h) + (by + have h : (thetaBelowCell1111331130110033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110033 h)) + +theorem cover_subtree_370884aab783 : + adaptiveCoverCheck 4 (childLH (childLL thetaBelowCell111133113011)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL thetaBelowCell111133113011)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLL + thetaBelowCell111133113011))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLL + thetaBelowCell111133113011))) h) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childLH (childLL + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130110120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110120 h) + (by + have h : (thetaBelowCell1111331130110121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110121 h) + (by + have h : (thetaBelowCell1111331130110122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110122 h) + (by + have h : (thetaBelowCell1111331130110123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childLH (childLL + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130110130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110130 h) + (by + have h : (thetaBelowCell1111331130110131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110131 h) + (by + have h : (thetaBelowCell1111331130110132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110132 h) + (by + have h : (thetaBelowCell1111331130110133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110133 h)) + +theorem cover_subtree_73e4cb204c73 : + adaptiveCoverCheck 4 (childHL (childLL thetaBelowCell111133113011)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL thetaBelowCell111133113011)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHL (childLL + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130110200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110200 h) + (by + have h : (thetaBelowCell1111331130110201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110201 h) + (by + have h : (thetaBelowCell1111331130110202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110202 h) + (by + have h : (thetaBelowCell1111331130110203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHL (childLL + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130110210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110210 h) + (by + have h : (thetaBelowCell1111331130110211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110211 h) + (by + have h : (thetaBelowCell1111331130110212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110212 h) + (by + have h : (thetaBelowCell1111331130110213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHL (childLL + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130110220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110220 h) + (by + have h : (thetaBelowCell1111331130110221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110221 h) + (by + have h : (thetaBelowCell1111331130110222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110222 h) + (by + have h : (thetaBelowCell1111331130110223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHL (childLL + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130110230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110230 h) + (by + have h : (thetaBelowCell1111331130110231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110231 h) + (by + have h : (thetaBelowCell1111331130110232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110232 h) + (by + have h : (thetaBelowCell1111331130110233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110233 h)) + +theorem cover_subtree_c1c14ad83b45 : + adaptiveCoverCheck 4 (childHH (childLL thetaBelowCell111133113011)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL thetaBelowCell111133113011)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHH (childLL + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130110300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110300 h) + (by + have h : (thetaBelowCell1111331130110301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110301 h) + (by + have h : (thetaBelowCell1111331130110302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110302 h) + (by + have h : (thetaBelowCell1111331130110303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHH (childLL + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130110310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110310 h) + (by + have h : (thetaBelowCell1111331130110311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110311 h) + (by + have h : (thetaBelowCell1111331130110312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110312 h) + (by + have h : (thetaBelowCell1111331130110313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHH (childLL + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130110320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110320 h) + (by + have h : (thetaBelowCell1111331130110321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110321 h) + (by + have h : (thetaBelowCell1111331130110322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110322 h) + (by + have h : (thetaBelowCell1111331130110323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHH (childLL + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130110330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110330 h) + (by + have h : (thetaBelowCell1111331130110331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110331 h) + (by + have h : (thetaBelowCell1111331130110332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110332 h) + (by + have h : (thetaBelowCell1111331130110333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130110333 h)) + +theorem cover_subtree_f30e12efeb1a : + adaptiveCoverCheck 5 (childLL thetaBelowCell111133113011) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133113011) + cover_subtree_ae17a6be47c3 + cover_subtree_370884aab783 + cover_subtree_73e4cb204c73 + cover_subtree_c1c14ad83b45 + +theorem cover_subtree_98d9e5389017 : + adaptiveCoverCheck 4 (childLL (childLH thetaBelowCell111133113011)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH thetaBelowCell111133113011)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLH + thetaBelowCell111133113011))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLH + thetaBelowCell111133113011))) h) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childLL (childLH + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130111020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111020 h) + (by + have h : (thetaBelowCell1111331130111021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111021 h) + (by + have h : (thetaBelowCell1111331130111022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111022 h) + (by + have h : (thetaBelowCell1111331130111023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childLL (childLH + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130111030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111030 h) + (by + have h : (thetaBelowCell1111331130111031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111031 h) + (by + have h : (thetaBelowCell1111331130111032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111032 h) + (by + have h : (thetaBelowCell1111331130111033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111033 h)) + +theorem cover_subtree_0bc86d85f103 : + adaptiveCoverCheck 4 (childLH (childLH thetaBelowCell111133113011)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH thetaBelowCell111133113011)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLH + thetaBelowCell111133113011))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLH + thetaBelowCell111133113011))) h) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childLH (childLH + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130111120).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111120 h) + (by + have h : (thetaBelowCell1111331130111121).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111121 h) + (by + have h : (thetaBelowCell1111331130111122).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111122 h) + (by + have h : (thetaBelowCell1111331130111123).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111123 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childLH (childLH + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130111130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111130 h) + (by + have h : (thetaBelowCell1111331130111131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111131 h) + (by + have h : (thetaBelowCell1111331130111132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111132 h) + (by + have h : (thetaBelowCell1111331130111133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111133 h)) + +theorem cover_subtree_29f3a4c72110 : + adaptiveCoverCheck 4 (childHL (childLH thetaBelowCell111133113011)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH thetaBelowCell111133113011)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHL (childLH + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130111200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111200 h) + (by + have h : (thetaBelowCell1111331130111201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111201 h) + (by + have h : (thetaBelowCell1111331130111202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111202 h) + (by + have h : (thetaBelowCell1111331130111203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHL (childLH + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130111210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111210 h) + (by + have h : (thetaBelowCell1111331130111211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111211 h) + (by + have h : (thetaBelowCell1111331130111212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111212 h) + (by + have h : (thetaBelowCell1111331130111213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHL (childLH + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130111220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111220 h) + (by + have h : (thetaBelowCell1111331130111221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111221 h) + (by + have h : (thetaBelowCell1111331130111222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111222 h) + (by + have h : (thetaBelowCell1111331130111223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHL (childLH + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130111230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111230 h) + (by + have h : (thetaBelowCell1111331130111231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111231 h) + (by + have h : (thetaBelowCell1111331130111232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111232 h) + (by + have h : (thetaBelowCell1111331130111233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111233 h)) + +theorem cover_subtree_71904a1bf379 : + adaptiveCoverCheck 4 (childHH (childLH thetaBelowCell111133113011)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH thetaBelowCell111133113011)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHH (childLH + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130111300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111300 h) + (by + have h : (thetaBelowCell1111331130111301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111301 h) + (by + have h : (thetaBelowCell1111331130111302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111302 h) + (by + have h : (thetaBelowCell1111331130111303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHH (childLH + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130111310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111310 h) + (by + have h : (thetaBelowCell1111331130111311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111311 h) + (by + have h : (thetaBelowCell1111331130111312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111312 h) + (by + have h : (thetaBelowCell1111331130111313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHH (childLH + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130111320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111320 h) + (by + have h : (thetaBelowCell1111331130111321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111321 h) + (by + have h : (thetaBelowCell1111331130111322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111322 h) + (by + have h : (thetaBelowCell1111331130111323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHH (childLH + thetaBelowCell111133113011))) + (by + have h : (thetaBelowCell1111331130111330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111330 h) + (by + have h : (thetaBelowCell1111331130111331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111331 h) + (by + have h : (thetaBelowCell1111331130111332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111332 h) + (by + have h : (thetaBelowCell1111331130111333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331130111333 h)) + +theorem cover_subtree_c4f09e9f0953 : + adaptiveCoverCheck 5 (childLH thetaBelowCell111133113011) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133113011) + cover_subtree_98d9e5389017 + cover_subtree_0bc86d85f103 + cover_subtree_29f3a4c72110 + cover_subtree_71904a1bf379 + +theorem cover_subtree_f6e8aaad1d7c : + adaptiveCoverCheck 5 (childHL thetaBelowCell111133113011) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133113011) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL thetaBelowCell111133113011)) + (by + have h : ((childLL (childLL (childHL thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childHL + thetaBelowCell111133113011))) h) + (by + have h : ((childLH (childLL (childHL thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childHL + thetaBelowCell111133113011))) h) + (by + have h : ((childHL (childLL (childHL thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childHL + thetaBelowCell111133113011))) h) + (by + have h : ((childHH (childLL (childHL thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childHL + thetaBelowCell111133113011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL thetaBelowCell111133113011)) + (by + have h : ((childLL (childLH (childHL thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childHL + thetaBelowCell111133113011))) h) + (by + have h : ((childLH (childLH (childHL thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childHL + thetaBelowCell111133113011))) h) + (by + have h : ((childHL (childLH (childHL thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childHL + thetaBelowCell111133113011))) h) + (by + have h : ((childHH (childLH (childHL thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childHL + thetaBelowCell111133113011))) h)) + (by + have h : ((childHL (childHL thetaBelowCell111133113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL thetaBelowCell111133113011)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL thetaBelowCell111133113011)) h) + +theorem cover_subtree_29b6f04811a1 : + adaptiveCoverCheck 5 (childHH thetaBelowCell111133113011) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133113011) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH thetaBelowCell111133113011)) + (by + have h : ((childLL (childLL (childHH thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childHH + thetaBelowCell111133113011))) h) + (by + have h : ((childLH (childLL (childHH thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childHH + thetaBelowCell111133113011))) h) + (by + have h : ((childHL (childLL (childHH thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childHH + thetaBelowCell111133113011))) h) + (by + have h : ((childHH (childLL (childHH thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childHH + thetaBelowCell111133113011))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH thetaBelowCell111133113011)) + (by + have h : ((childLL (childLH (childHH thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childHH + thetaBelowCell111133113011))) h) + (by + have h : ((childLH (childLH (childHH thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childHH + thetaBelowCell111133113011))) h) + (by + have h : ((childHL (childLH (childHH thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childHH + thetaBelowCell111133113011))) h) + (by + have h : ((childHH (childLH (childHH thetaBelowCell111133113011)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childHH + thetaBelowCell111133113011))) h)) + (by + have h : ((childHL (childHH thetaBelowCell111133113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH thetaBelowCell111133113011)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH thetaBelowCell111133113011)) h) + +theorem e24KC2ThetaBelowLeaf111133113_c0_c1_c1 : + adaptiveCoverCheck 6 thetaBelowCell111133113011 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133113011 + cover_subtree_f30e12efeb1a + cover_subtree_c4f09e9f0953 + cover_subtree_f6e8aaad1d7c + cover_subtree_29b6f04811a1 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa837c94d6b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa837c94d6b + +open CertificateCellsa837c94d6b +theorem e24KC2ThetaAboveLeaf0000220021_c0_c0_c1 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022002100) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022002100) + (by + have h : ((childLL (childLH thetaAboveCell000022002100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH thetaAboveCell000022002100)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022002100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH thetaAboveCell000022002100)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLH thetaAboveCell000022002100)) + (by + have h : ((childLL (childHL (childLH thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLH + thetaAboveCell000022002100))) h) + (by + have h : ((childLH (childHL (childLH thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLH + thetaAboveCell000022002100))) h) + (by + have h : ((childHL (childHL (childLH thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLH + thetaAboveCell000022002100))) h) + (by + have h : ((childHH (childHL (childLH thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLH + thetaAboveCell000022002100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLH thetaAboveCell000022002100)) + (by + have h : ((childLL (childHH (childLH thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLH + thetaAboveCell000022002100))) h) + (by + have h : ((childLH (childHH (childLH thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLH + thetaAboveCell000022002100))) h) + (by + have h : ((childHL (childHH (childLH thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLH + thetaAboveCell000022002100))) h) + (by + have h : ((childHH (childHH (childLH thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLH + thetaAboveCell000022002100))) h)) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsad9f83220e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsad9f83220e + +open CertificateCellsad9f83220e +theorem e24KC2ThetaBelowLeaf111133113_c3 : + adaptiveCoverCheck 8 (childHH (childHH thetaBelowCell11113311)) = true := by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childHH thetaBelowCell11113311)) + (by + have h : ((childLL (childHH (childHH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLL (childHH (childHH + thetaBelowCell11113311))) h) + (by + have h : ((childLH (childHH (childHH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childLH (childHH (childHH + thetaBelowCell11113311))) h) + (by + have h : ((childHL (childHH (childHH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHL (childHH (childHH + thetaBelowCell11113311))) h) + (by + have h : ((childHH (childHH (childHH thetaBelowCell11113311)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 (childHH (childHH (childHH + thetaBelowCell11113311))) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9fb4000a9c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9fb4000a9c + +open CertificateCells9fb4000a9c +theorem e24KC2ThetaAboveLeaf0000220021_c0_c0_c0 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022002100) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022002100) + (by + have h : ((childLL (childLL thetaAboveCell000022002100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL thetaAboveCell000022002100)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022002100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL thetaAboveCell000022002100)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLL thetaAboveCell000022002100)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLL + thetaAboveCell000022002100))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLL + thetaAboveCell000022002100))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLL + thetaAboveCell000022002100))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLL + thetaAboveCell000022002100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLL thetaAboveCell000022002100)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLL + thetaAboveCell000022002100))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLL + thetaAboveCell000022002100))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLL + thetaAboveCell000022002100))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell000022002100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLL + thetaAboveCell000022002100))) h)) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells39e4b63459 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells39e4b63459 + +open CertificateCells39e4b63459 +theorem e24KC2ThetaAboveLeaf0000220021_c0_c3 : + adaptiveCoverCheck 7 thetaAboveCell000022002103 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022002103 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022002103) + (by + have h : ((childLL (childLL thetaAboveCell000022002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022002103)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022002103)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022002103)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022002103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022002103) + (by + have h : ((childLL (childLH thetaAboveCell000022002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022002103)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022002103)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022002103)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022002103)) h)) + (by + have h : ((childHL thetaAboveCell000022002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022002103) h) + (by + have h : ((childHH thetaAboveCell000022002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022002103) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1f04a5458e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1f04a5458e + +open CertificateCells1f04a5458e +theorem cover_subtree_ac4ab9e2280b : + adaptiveCoverCheck 3 thetaAboveCell0000220021003102 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003102 + (by + have h : ((childLL thetaAboveCell0000220021003102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021003102) h) + (by + have h : ((childLH thetaAboveCell0000220021003102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021003102) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021003102) + (by + have h : ((childLL (childHL thetaAboveCell0000220021003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021003102)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021003102)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021003102)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021003102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021003102) + (by + have h : ((childLL (childHH thetaAboveCell0000220021003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021003102)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021003102)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021003102)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021003102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021003102)) h)) + +theorem cover_subtree_f32049ef12fd : + adaptiveCoverCheck 3 thetaAboveCell0000220021003103 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003103 + (by + have h : ((childLL thetaAboveCell0000220021003103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021003103) h) + (by + have h : ((childLH thetaAboveCell0000220021003103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021003103) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021003103) + (by + have h : ((childLL (childHL thetaAboveCell0000220021003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021003103)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021003103)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021003103)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021003103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021003103) + (by + have h : ((childLL (childHH thetaAboveCell0000220021003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021003103)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021003103)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021003103)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021003103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021003103)) h)) + +theorem cover_subtree_f8ee2b69a6a4 : + adaptiveCoverCheck 4 (childLL (childLH (childHH thetaAboveCell000022002100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHH + thetaAboveCell000022002100))) + (by + have h : (thetaAboveCell0000220021003100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003100 h) + (by + have h : (thetaAboveCell0000220021003101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003101 h) + cover_subtree_ac4ab9e2280b + cover_subtree_f32049ef12fd + +theorem cover_subtree_81e656cd512a : + adaptiveCoverCheck 3 thetaAboveCell0000220021003112 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003112 + (by + have h : ((childLL thetaAboveCell0000220021003112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021003112) h) + (by + have h : ((childLH thetaAboveCell0000220021003112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021003112) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021003112) + (by + have h : ((childLL (childHL thetaAboveCell0000220021003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021003112)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021003112)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021003112)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021003112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021003112) + (by + have h : ((childLL (childHH thetaAboveCell0000220021003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021003112)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021003112)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021003112)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021003112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021003112)) h)) + +theorem cover_subtree_4d1806a48386 : + adaptiveCoverCheck 3 thetaAboveCell0000220021003113 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003113 + (by + have h : ((childLL thetaAboveCell0000220021003113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021003113) h) + (by + have h : ((childLH thetaAboveCell0000220021003113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021003113) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021003113) + (by + have h : ((childLL (childHL thetaAboveCell0000220021003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021003113)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021003113)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021003113)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021003113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021003113) + (by + have h : ((childLL (childHH thetaAboveCell0000220021003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021003113)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021003113)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021003113)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021003113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021003113)) h)) + +theorem cover_subtree_08c961b8fea6 : + adaptiveCoverCheck 4 (childLH (childLH (childHH thetaAboveCell000022002100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHH + thetaAboveCell000022002100))) + (by + have h : (thetaAboveCell0000220021003110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003110 h) + (by + have h : (thetaAboveCell0000220021003111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021003111 h) + cover_subtree_81e656cd512a + cover_subtree_4d1806a48386 + +theorem cover_subtree_ac21c862ec3a : + adaptiveCoverCheck 3 thetaAboveCell0000220021003120 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003120 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021003120) + (by + have h : ((childLL (childLL thetaAboveCell0000220021003120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021003120)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021003120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021003120)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021003120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021003120)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021003120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021003120)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021003120) + (by + have h : ((childLL (childLH thetaAboveCell0000220021003120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021003120)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021003120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021003120)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021003120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021003120)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021003120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021003120)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021003120) + (by + have h : ((childLL (childHL thetaAboveCell0000220021003120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021003120)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021003120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021003120)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021003120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021003120)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021003120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021003120)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021003120) + (by + have h : ((childLL (childHH thetaAboveCell0000220021003120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021003120)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021003120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021003120)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021003120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021003120)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021003120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021003120)) h)) + +theorem cover_subtree_535d1cff404c : + adaptiveCoverCheck 3 thetaAboveCell0000220021003121 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003121 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021003121) + (by + have h : ((childLL (childLL thetaAboveCell0000220021003121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021003121)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021003121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021003121)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021003121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021003121)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021003121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021003121)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021003121) + (by + have h : ((childLL (childLH thetaAboveCell0000220021003121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021003121)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021003121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021003121)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021003121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021003121)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021003121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021003121)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021003121) + (by + have h : ((childLL (childHL thetaAboveCell0000220021003121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021003121)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021003121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021003121)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021003121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021003121)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021003121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021003121)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021003121) + (by + have h : ((childLL (childHH thetaAboveCell0000220021003121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021003121)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021003121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021003121)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021003121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021003121)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021003121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021003121)) h)) + +theorem cover_subtree_c98fab407e07 : + adaptiveCoverCheck 4 (childHL (childLH (childHH thetaAboveCell000022002100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022002100))) + cover_subtree_ac21c862ec3a + cover_subtree_535d1cff404c + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003122 + (by + have h : ((childLL thetaAboveCell0000220021003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021003122) h) + (by + have h : ((childLH thetaAboveCell0000220021003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021003122) h) + (by + have h : ((childHL thetaAboveCell0000220021003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021003122) h) + (by + have h : ((childHH thetaAboveCell0000220021003122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021003122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003123 + (by + have h : ((childLL thetaAboveCell0000220021003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021003123) h) + (by + have h : ((childLH thetaAboveCell0000220021003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021003123) h) + (by + have h : ((childHL thetaAboveCell0000220021003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021003123) h) + (by + have h : ((childHH thetaAboveCell0000220021003123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021003123) h)) + +theorem cover_subtree_6d1eab6c80cc : + adaptiveCoverCheck 3 thetaAboveCell0000220021003130 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003130 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021003130) + (by + have h : ((childLL (childLL thetaAboveCell0000220021003130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021003130)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021003130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021003130)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021003130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021003130)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021003130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021003130)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021003130) + (by + have h : ((childLL (childLH thetaAboveCell0000220021003130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021003130)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021003130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021003130)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021003130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021003130)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021003130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021003130)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021003130) + (by + have h : ((childLL (childHL thetaAboveCell0000220021003130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021003130)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021003130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021003130)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021003130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021003130)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021003130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021003130)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021003130) + (by + have h : ((childLL (childHH thetaAboveCell0000220021003130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021003130)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021003130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021003130)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021003130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021003130)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021003130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021003130)) h)) + +theorem cover_subtree_d7741bcc2937 : + adaptiveCoverCheck 3 thetaAboveCell0000220021003131 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003131 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021003131) + (by + have h : ((childLL (childLL thetaAboveCell0000220021003131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021003131)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021003131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021003131)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021003131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021003131)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021003131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021003131)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021003131) + (by + have h : ((childLL (childLH thetaAboveCell0000220021003131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021003131)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021003131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021003131)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021003131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021003131)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021003131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021003131)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021003131) + (by + have h : ((childLL (childHL thetaAboveCell0000220021003131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021003131)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021003131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021003131)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021003131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021003131)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021003131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021003131)) h)) + (by + have h : ((childHH thetaAboveCell0000220021003131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021003131) h) + +theorem cover_subtree_db05fb36c692 : + adaptiveCoverCheck 4 (childHH (childLH (childHH thetaAboveCell000022002100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022002100))) + cover_subtree_6d1eab6c80cc + cover_subtree_d7741bcc2937 + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003132 + (by + have h : ((childLL thetaAboveCell0000220021003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021003132) h) + (by + have h : ((childLH thetaAboveCell0000220021003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021003132) h) + (by + have h : ((childHL thetaAboveCell0000220021003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021003132) h) + (by + have h : ((childHH thetaAboveCell0000220021003132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021003132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021003133 + (by + have h : ((childLL thetaAboveCell0000220021003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021003133) h) + (by + have h : ((childLH thetaAboveCell0000220021003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021003133) h) + (by + have h : ((childHL thetaAboveCell0000220021003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021003133) h) + (by + have h : ((childHH thetaAboveCell0000220021003133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021003133) h)) + +theorem e24KC2ThetaAboveLeaf0000220021_c0_c0_c3_c1 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022002100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022002100)) + cover_subtree_f8ee2b69a6a4 + cover_subtree_08c961b8fea6 + cover_subtree_c98fab407e07 + cover_subtree_db05fb36c692 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6fd31b8688 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6fd31b8688 + +open CertificateCells6fd31b8688 + +theorem e24KC2ThetaAboveLeaf0000220021_c0_c0_c3 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022002100) = true := + adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022002100) + e24KC2ThetaAboveLeaf0000220021_c0_c0_c3_c0 e24KC2ThetaAboveLeaf0000220021_c0_c0_c3_c1 + e24KC2ThetaAboveLeaf0000220021_c0_c0_c3_c2 e24KC2ThetaAboveLeaf0000220021_c0_c0_c3_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells228f0f8fd4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells228f0f8fd4 + +open CertificateCells228f0f8fd4 +theorem cover_subtree_d5a5e06650ce : + adaptiveCoverCheck 4 (childLL (childLL (childHH thetaAboveCell000022002111))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHH + thetaAboveCell000022002111))) + (by + have h : (thetaAboveCell0000220021113000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113000 h) + (by + have h : (thetaAboveCell0000220021113001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113001 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113002 + (by + have h : ((childLL thetaAboveCell0000220021113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113002) h) + (by + have h : ((childLH thetaAboveCell0000220021113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113002) h) + (by + have h : ((childHL thetaAboveCell0000220021113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113002) h) + (by + have h : ((childHH thetaAboveCell0000220021113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113003 + (by + have h : ((childLL thetaAboveCell0000220021113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113003) h) + (by + have h : ((childLH thetaAboveCell0000220021113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113003) h) + (by + have h : ((childHL thetaAboveCell0000220021113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113003) h) + (by + have h : ((childHH thetaAboveCell0000220021113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113003) h)) + +theorem cover_subtree_cc0b6dcb9698 : + adaptiveCoverCheck 4 (childLH (childLL (childHH thetaAboveCell000022002111))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHH + thetaAboveCell000022002111))) + (by + have h : (thetaAboveCell0000220021113010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113010 h) + (by + have h : (thetaAboveCell0000220021113011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113011 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113012 + (by + have h : ((childLL thetaAboveCell0000220021113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113012) h) + (by + have h : ((childLH thetaAboveCell0000220021113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113012) h) + (by + have h : ((childHL thetaAboveCell0000220021113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113012) h) + (by + have h : ((childHH thetaAboveCell0000220021113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113013 + (by + have h : ((childLL thetaAboveCell0000220021113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113013) h) + (by + have h : ((childLH thetaAboveCell0000220021113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113013) h) + (by + have h : ((childHL thetaAboveCell0000220021113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113013) h) + (by + have h : ((childHH thetaAboveCell0000220021113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113013) h)) + +theorem cover_subtree_4b6a6f343911 : + adaptiveCoverCheck 4 (childHL (childLL (childHH thetaAboveCell000022002111))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHH + thetaAboveCell000022002111))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113020 + (by + have h : ((childLL thetaAboveCell0000220021113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113020) h) + (by + have h : ((childLH thetaAboveCell0000220021113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113020) h) + (by + have h : ((childHL thetaAboveCell0000220021113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113020) h) + (by + have h : ((childHH thetaAboveCell0000220021113020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113021 + (by + have h : ((childLL thetaAboveCell0000220021113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113021) h) + (by + have h : ((childLH thetaAboveCell0000220021113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113021) h) + (by + have h : ((childHL thetaAboveCell0000220021113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113021) h) + (by + have h : ((childHH thetaAboveCell0000220021113021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113022 + (by + have h : ((childLL thetaAboveCell0000220021113022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113022) h) + (by + have h : ((childLH thetaAboveCell0000220021113022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113022) h) + (by + have h : ((childHL thetaAboveCell0000220021113022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113022) h) + (by + have h : ((childHH thetaAboveCell0000220021113022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113023 + (by + have h : ((childLL thetaAboveCell0000220021113023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113023) h) + (by + have h : ((childLH thetaAboveCell0000220021113023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113023) h) + (by + have h : ((childHL thetaAboveCell0000220021113023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113023) h) + (by + have h : ((childHH thetaAboveCell0000220021113023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113023) h)) + +theorem cover_subtree_3b5c8a093b1d : + adaptiveCoverCheck 4 (childHH (childLL (childHH thetaAboveCell000022002111))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHH + thetaAboveCell000022002111))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113030 + (by + have h : ((childLL thetaAboveCell0000220021113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113030) h) + (by + have h : ((childLH thetaAboveCell0000220021113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113030) h) + (by + have h : ((childHL thetaAboveCell0000220021113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113030) h) + (by + have h : ((childHH thetaAboveCell0000220021113030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113031 + (by + have h : ((childLL thetaAboveCell0000220021113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113031) h) + (by + have h : ((childLH thetaAboveCell0000220021113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113031) h) + (by + have h : ((childHL thetaAboveCell0000220021113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113031) h) + (by + have h : ((childHH thetaAboveCell0000220021113031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113032 + (by + have h : ((childLL thetaAboveCell0000220021113032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113032) h) + (by + have h : ((childLH thetaAboveCell0000220021113032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113032) h) + (by + have h : ((childHL thetaAboveCell0000220021113032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113032) h) + (by + have h : ((childHH thetaAboveCell0000220021113032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113033 + (by + have h : ((childLL thetaAboveCell0000220021113033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113033) h) + (by + have h : ((childLH thetaAboveCell0000220021113033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113033) h) + (by + have h : ((childHL thetaAboveCell0000220021113033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113033) h) + (by + have h : ((childHH thetaAboveCell0000220021113033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113033) h)) + +theorem cover_subtree_536b999011e3 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022002111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022002111)) + cover_subtree_d5a5e06650ce + cover_subtree_cc0b6dcb9698 + cover_subtree_4b6a6f343911 + cover_subtree_3b5c8a093b1d + +theorem cover_subtree_34d62deb6720 : + adaptiveCoverCheck 4 (childLL (childLH (childHH thetaAboveCell000022002111))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHH + thetaAboveCell000022002111))) + (by + have h : (thetaAboveCell0000220021113100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113100 h) + (by + have h : (thetaAboveCell0000220021113101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113101 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113102 + (by + have h : ((childLL thetaAboveCell0000220021113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113102) h) + (by + have h : ((childLH thetaAboveCell0000220021113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113102) h) + (by + have h : ((childHL thetaAboveCell0000220021113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113102) h) + (by + have h : ((childHH thetaAboveCell0000220021113102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113103 + (by + have h : ((childLL thetaAboveCell0000220021113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113103) h) + (by + have h : ((childLH thetaAboveCell0000220021113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113103) h) + (by + have h : ((childHL thetaAboveCell0000220021113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113103) h) + (by + have h : ((childHH thetaAboveCell0000220021113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113103) h)) + +theorem cover_subtree_e8b5cb8c6a09 : + adaptiveCoverCheck 4 (childLH (childLH (childHH thetaAboveCell000022002111))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHH + thetaAboveCell000022002111))) + (by + have h : (thetaAboveCell0000220021113110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113110 h) + (by + have h : (thetaAboveCell0000220021113111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113111 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113112 + (by + have h : ((childLL thetaAboveCell0000220021113112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113112) h) + (by + have h : ((childLH thetaAboveCell0000220021113112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113112) h) + (by + have h : ((childHL thetaAboveCell0000220021113112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113112) h) + (by + have h : ((childHH thetaAboveCell0000220021113112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113113 + (by + have h : ((childLL thetaAboveCell0000220021113113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113113) h) + (by + have h : ((childLH thetaAboveCell0000220021113113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113113) h) + (by + have h : ((childHL thetaAboveCell0000220021113113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113113) h) + (by + have h : ((childHH thetaAboveCell0000220021113113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113113) h)) + +theorem cover_subtree_ef6f45c91ec2 : + adaptiveCoverCheck 4 (childHL (childLH (childHH thetaAboveCell000022002111))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH + thetaAboveCell000022002111))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113120 + (by + have h : ((childLL thetaAboveCell0000220021113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113120) h) + (by + have h : ((childLH thetaAboveCell0000220021113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113120) h) + (by + have h : ((childHL thetaAboveCell0000220021113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113120) h) + (by + have h : ((childHH thetaAboveCell0000220021113120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113121 + (by + have h : ((childLL thetaAboveCell0000220021113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113121) h) + (by + have h : ((childLH thetaAboveCell0000220021113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113121) h) + (by + have h : ((childHL thetaAboveCell0000220021113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113121) h) + (by + have h : ((childHH thetaAboveCell0000220021113121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113122 + (by + have h : ((childLL thetaAboveCell0000220021113122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113122) h) + (by + have h : ((childLH thetaAboveCell0000220021113122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113122) h) + (by + have h : ((childHL thetaAboveCell0000220021113122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113122) h) + (by + have h : ((childHH thetaAboveCell0000220021113122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113123 + (by + have h : ((childLL thetaAboveCell0000220021113123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113123) h) + (by + have h : ((childLH thetaAboveCell0000220021113123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113123) h) + (by + have h : ((childHL thetaAboveCell0000220021113123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113123) h) + (by + have h : ((childHH thetaAboveCell0000220021113123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113123) h)) + +theorem cover_subtree_a2fe78f78c5a : + adaptiveCoverCheck 4 (childHH (childLH (childHH thetaAboveCell000022002111))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH + thetaAboveCell000022002111))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113130 + (by + have h : ((childLL thetaAboveCell0000220021113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113130) h) + (by + have h : ((childLH thetaAboveCell0000220021113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113130) h) + (by + have h : ((childHL thetaAboveCell0000220021113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113130) h) + (by + have h : ((childHH thetaAboveCell0000220021113130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113131 + (by + have h : ((childLL thetaAboveCell0000220021113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113131) h) + (by + have h : ((childLH thetaAboveCell0000220021113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113131) h) + (by + have h : ((childHL thetaAboveCell0000220021113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113131) h) + (by + have h : ((childHH thetaAboveCell0000220021113131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113132 + (by + have h : ((childLL thetaAboveCell0000220021113132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113132) h) + (by + have h : ((childLH thetaAboveCell0000220021113132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113132) h) + (by + have h : ((childHL thetaAboveCell0000220021113132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113132) h) + (by + have h : ((childHH thetaAboveCell0000220021113132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021113133 + (by + have h : ((childLL thetaAboveCell0000220021113133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021113133) h) + (by + have h : ((childLH thetaAboveCell0000220021113133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021113133) h) + (by + have h : ((childHL thetaAboveCell0000220021113133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021113133) h) + (by + have h : ((childHH thetaAboveCell0000220021113133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021113133) h)) + +theorem cover_subtree_42bf432f3a23 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022002111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022002111)) + cover_subtree_34d62deb6720 + cover_subtree_e8b5cb8c6a09 + cover_subtree_ef6f45c91ec2 + cover_subtree_a2fe78f78c5a + +theorem cover_subtree_a6728f6d4a12 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022002111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHH thetaAboveCell000022002111)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHH + thetaAboveCell000022002111))) + (by + have h : (thetaAboveCell0000220021113200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113200 h) + (by + have h : (thetaAboveCell0000220021113201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113201 h) + (by + have h : (thetaAboveCell0000220021113202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113202 h) + (by + have h : (thetaAboveCell0000220021113203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHH + thetaAboveCell000022002111))) + (by + have h : (thetaAboveCell0000220021113210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113210 h) + (by + have h : (thetaAboveCell0000220021113211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113211 h) + (by + have h : (thetaAboveCell0000220021113212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113212 h) + (by + have h : (thetaAboveCell0000220021113213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113213 h)) + (by + have h : ((childHL (childHL (childHH thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHH + thetaAboveCell000022002111))) h) + (by + have h : ((childHH (childHL (childHH thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHH + thetaAboveCell000022002111))) h) + +theorem cover_subtree_fafcbbc2f9f1 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022002111)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHH thetaAboveCell000022002111)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHH + thetaAboveCell000022002111))) + (by + have h : (thetaAboveCell0000220021113300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113300 h) + (by + have h : (thetaAboveCell0000220021113301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113301 h) + (by + have h : (thetaAboveCell0000220021113302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113302 h) + (by + have h : (thetaAboveCell0000220021113303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHH + thetaAboveCell000022002111))) + (by + have h : (thetaAboveCell0000220021113310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113310 h) + (by + have h : (thetaAboveCell0000220021113311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113311 h) + (by + have h : (thetaAboveCell0000220021113312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113312 h) + (by + have h : (thetaAboveCell0000220021113313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021113313 h)) + (by + have h : ((childHL (childHH (childHH thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHH + thetaAboveCell000022002111))) h) + (by + have h : ((childHH (childHH (childHH thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHH + thetaAboveCell000022002111))) h) + +theorem e24KC2ThetaAboveLeaf0000220021_c1_c1_c3 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022002111) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022002111) + cover_subtree_536b999011e3 + cover_subtree_42bf432f3a23 + cover_subtree_a6728f6d4a12 + cover_subtree_fafcbbc2f9f1 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0a19d30544 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0a19d30544 + +open CertificateCells0a19d30544 +theorem e24KC2ThetaAboveLeaf0000220021_c1_c3 : + adaptiveCoverCheck 7 thetaAboveCell000022002113 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022002113 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022002113) + (by + have h : ((childLL (childLL thetaAboveCell000022002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022002113)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022002113)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022002113)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022002113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022002113) + (by + have h : ((childLL (childLH thetaAboveCell000022002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022002113)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022002113)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022002113)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022002113)) h)) + (by + have h : ((childHL thetaAboveCell000022002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022002113) h) + (by + have h : ((childHH thetaAboveCell000022002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022002113) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2ee5d31193 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2ee5d31193 + +open CertificateCells2ee5d31193 +theorem e24KC2ThetaBelowLeaf111133113_c1_c0_c3 : + adaptiveCoverCheck 6 thetaBelowCell111133113103 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133113103 + (by + have h : ((childLL thetaBelowCell111133113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133113103) h) + (by + have h : ((childLH thetaBelowCell111133113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133113103) h) + (by + have h : ((childHL thetaBelowCell111133113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133113103) h) + (by + have h : ((childHH thetaBelowCell111133113103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133113103) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells41213b9d19 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells41213b9d19 + +open CertificateCells41213b9d19 +theorem e24KC2ThetaAboveLeaf0000220021_c1_c1_c0 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022002111) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022002111) + (by + have h : ((childLL (childLL thetaAboveCell000022002111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL thetaAboveCell000022002111)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022002111))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL thetaAboveCell000022002111)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLL thetaAboveCell000022002111)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLL + thetaAboveCell000022002111))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLL + thetaAboveCell000022002111))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLL + thetaAboveCell000022002111))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLL + thetaAboveCell000022002111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLL thetaAboveCell000022002111)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLL + thetaAboveCell000022002111))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLL + thetaAboveCell000022002111))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLL + thetaAboveCell000022002111))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell000022002111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLL + thetaAboveCell000022002111))) h)) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb64c3c15bb + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb64c3c15bb + +open CertificateCellsb64c3c15bb + +theorem e24KC2ThetaAboveLeaf0000220021_c1_c1 : + adaptiveCoverCheck 7 thetaAboveCell000022002111 = true := + adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022002111 + e24KC2ThetaAboveLeaf0000220021_c1_c1_c0 e24KC2ThetaAboveLeaf0000220021_c1_c1_c1 + e24KC2ThetaAboveLeaf0000220021_c1_c1_c2 e24KC2ThetaAboveLeaf0000220021_c1_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells32e697bee5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells32e697bee5 + +open CertificateCells32e697bee5 +theorem cover_subtree_401efdae503c : + adaptiveCoverCheck 4 (childLL (childLH thetaBelowCell111133113100)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH thetaBelowCell111133113100)) + (by + have h : ((childLL (childLL (childLH thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLH + thetaBelowCell111133113100))) h) + (by + have h : ((childLH (childLL (childLH thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLH + thetaBelowCell111133113100))) h) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childLL (childLH + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131001020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001020 h) + (by + have h : (thetaBelowCell1111331131001021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001021 h) + (by + have h : (thetaBelowCell1111331131001022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001022 h) + (by + have h : (thetaBelowCell1111331131001023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childLL (childLH + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131001030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001030 h) + (by + have h : (thetaBelowCell1111331131001031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001031 h) + (by + have h : (thetaBelowCell1111331131001032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001032 h) + (by + have h : (thetaBelowCell1111331131001033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001033 h)) + +theorem cover_subtree_d2432b059763 : + adaptiveCoverCheck 4 (childHL (childLH thetaBelowCell111133113100)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH thetaBelowCell111133113100)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHL (childLH + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131001200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001200 h) + (by + have h : (thetaBelowCell1111331131001201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001201 h) + (by + have h : (thetaBelowCell1111331131001202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001202 h) + (by + have h : (thetaBelowCell1111331131001203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHL (childLH + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131001210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001210 h) + (by + have h : (thetaBelowCell1111331131001211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001211 h) + (by + have h : (thetaBelowCell1111331131001212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001212 h) + (by + have h : (thetaBelowCell1111331131001213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHL (childLH + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131001220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001220 h) + (by + have h : (thetaBelowCell1111331131001221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001221 h) + (by + have h : (thetaBelowCell1111331131001222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001222 h) + (by + have h : (thetaBelowCell1111331131001223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHL (childLH + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131001230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001230 h) + (by + have h : (thetaBelowCell1111331131001231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001231 h) + (by + have h : (thetaBelowCell1111331131001232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001232 h) + (by + have h : (thetaBelowCell1111331131001233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001233 h)) + +theorem cover_subtree_a9ad7d61343c : + adaptiveCoverCheck 4 (childHH (childLH thetaBelowCell111133113100)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH thetaBelowCell111133113100)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHH (childLH + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131001300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001300 h) + (by + have h : (thetaBelowCell1111331131001301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001301 h) + (by + have h : (thetaBelowCell1111331131001302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001302 h) + (by + have h : (thetaBelowCell1111331131001303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHH (childLH + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131001310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001310 h) + (by + have h : (thetaBelowCell1111331131001311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001311 h) + (by + have h : (thetaBelowCell1111331131001312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001312 h) + (by + have h : (thetaBelowCell1111331131001313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHH (childLH + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131001320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001320 h) + (by + have h : (thetaBelowCell1111331131001321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001321 h) + (by + have h : (thetaBelowCell1111331131001322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001322 h) + (by + have h : (thetaBelowCell1111331131001323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHH (childLH + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131001330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001330 h) + (by + have h : (thetaBelowCell1111331131001331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001331 h) + (by + have h : (thetaBelowCell1111331131001332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001332 h) + (by + have h : (thetaBelowCell1111331131001333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131001333 h)) + +theorem e24KC2ThetaBelowLeaf111133113_c1_c0_c0_c1 : + adaptiveCoverCheck 5 (childLH thetaBelowCell111133113100) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH thetaBelowCell111133113100) + cover_subtree_401efdae503c + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH thetaBelowCell111133113100)) + (by + have h : ((childLL (childLH (childLH thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLH + thetaBelowCell111133113100))) h) + (by + have h : ((childLH (childLH (childLH thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLH + thetaBelowCell111133113100))) h) + (by + have h : ((childHL (childLH (childLH thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLH + thetaBelowCell111133113100))) h) + (by + have h : ((childHH (childLH (childLH thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLH + thetaBelowCell111133113100))) h)) + cover_subtree_d2432b059763 + cover_subtree_a9ad7d61343c + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells64ee0fdc2a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells64ee0fdc2a + +open CertificateCells64ee0fdc2a +theorem e24KC2ThetaBelowLeaf111133113_c1_c0_c0_c2 : + adaptiveCoverCheck 5 (childHL thetaBelowCell111133113100) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL thetaBelowCell111133113100) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL thetaBelowCell111133113100)) + (by + have h : ((childLL (childLL (childHL thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childHL + thetaBelowCell111133113100))) h) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childLL (childHL + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131002010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131002010 h) + (by + have h : (thetaBelowCell1111331131002011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131002011 h) + (by + have h : (thetaBelowCell1111331131002012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131002012 h) + (by + have h : (thetaBelowCell1111331131002013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131002013 h)) + (by + have h : ((childHL (childLL (childHL thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childHL + thetaBelowCell111133113100))) h) + (by + have h : ((childHH (childLL (childHL thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childHL + thetaBelowCell111133113100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL thetaBelowCell111133113100)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childLH (childHL + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131002100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131002100 h) + (by + have h : (thetaBelowCell1111331131002101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131002101 h) + (by + have h : (thetaBelowCell1111331131002102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131002102 h) + (by + have h : (thetaBelowCell1111331131002103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131002103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childLH (childHL + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131002110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131002110 h) + (by + have h : (thetaBelowCell1111331131002111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131002111 h) + (by + have h : (thetaBelowCell1111331131002112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131002112 h) + (by + have h : (thetaBelowCell1111331131002113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131002113 h)) + (by + have h : ((childHL (childLH (childHL thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childHL + thetaBelowCell111133113100))) h) + (by + have h : ((childHH (childLH (childHL thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childHL + thetaBelowCell111133113100))) h)) + (by + have h : ((childHL (childHL thetaBelowCell111133113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL thetaBelowCell111133113100)) h) + (by + have h : ((childHH (childHL thetaBelowCell111133113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL thetaBelowCell111133113100)) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells30e97e201e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells30e97e201e + +open CertificateCells30e97e201e +theorem cover_subtree_5271df7a6cfb : + adaptiveCoverCheck 3 thetaAboveCell0000220021002002 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002002 + (by + have h : ((childLL thetaAboveCell0000220021002002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021002002) h) + (by + have h : ((childLH thetaAboveCell0000220021002002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021002002) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021002002) + (by + have h : ((childLL (childHL thetaAboveCell0000220021002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021002002)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021002002)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021002002)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021002002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021002002) + (by + have h : ((childLL (childHH thetaAboveCell0000220021002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021002002)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021002002)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021002002)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021002002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021002002)) h)) + +theorem cover_subtree_ecb69e009e0c : + adaptiveCoverCheck 3 thetaAboveCell0000220021002003 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002003 + (by + have h : ((childLL thetaAboveCell0000220021002003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021002003) h) + (by + have h : ((childLH thetaAboveCell0000220021002003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021002003) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021002003) + (by + have h : ((childLL (childHL thetaAboveCell0000220021002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021002003)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021002003)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021002003)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021002003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021002003) + (by + have h : ((childLL (childHH thetaAboveCell0000220021002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021002003)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021002003)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021002003)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021002003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021002003)) h)) + +theorem cover_subtree_3d1aed828393 : + adaptiveCoverCheck 4 (childLL (childLL (childHL thetaAboveCell000022002100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHL + thetaAboveCell000022002100))) + (by + have h : (thetaAboveCell0000220021002000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002000 h) + (by + have h : (thetaAboveCell0000220021002001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002001 h) + cover_subtree_5271df7a6cfb + cover_subtree_ecb69e009e0c + +theorem cover_subtree_b9bf7e1adc6d : + adaptiveCoverCheck 3 thetaAboveCell0000220021002012 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002012 + (by + have h : ((childLL thetaAboveCell0000220021002012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021002012) h) + (by + have h : ((childLH thetaAboveCell0000220021002012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021002012) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021002012) + (by + have h : ((childLL (childHL thetaAboveCell0000220021002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021002012)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021002012)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021002012)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021002012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021002012) + (by + have h : ((childLL (childHH thetaAboveCell0000220021002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021002012)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021002012)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021002012)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021002012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021002012)) h)) + +theorem cover_subtree_e49d7d8f5134 : + adaptiveCoverCheck 3 thetaAboveCell0000220021002013 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002013 + (by + have h : ((childLL thetaAboveCell0000220021002013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021002013) h) + (by + have h : ((childLH thetaAboveCell0000220021002013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021002013) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021002013) + (by + have h : ((childLL (childHL thetaAboveCell0000220021002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021002013)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021002013)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021002013)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021002013)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021002013) + (by + have h : ((childLL (childHH thetaAboveCell0000220021002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021002013)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021002013)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021002013)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021002013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021002013)) h)) + +theorem cover_subtree_e1d0aa057fae : + adaptiveCoverCheck 4 (childLH (childLL (childHL thetaAboveCell000022002100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHL + thetaAboveCell000022002100))) + (by + have h : (thetaAboveCell0000220021002010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002010 h) + (by + have h : (thetaAboveCell0000220021002011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002011 h) + cover_subtree_b9bf7e1adc6d + cover_subtree_e49d7d8f5134 + +theorem cover_subtree_da176857c63b : + adaptiveCoverCheck 3 thetaAboveCell0000220021002020 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002020 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021002020) + (by + have h : ((childLL (childLL thetaAboveCell0000220021002020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021002020)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021002020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021002020)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021002020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021002020)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021002020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021002020)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021002020) + (by + have h : ((childLL (childLH thetaAboveCell0000220021002020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021002020)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021002020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021002020)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021002020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021002020)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021002020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021002020)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021002020) + (by + have h : ((childLL (childHL thetaAboveCell0000220021002020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021002020)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021002020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021002020)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021002020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021002020)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021002020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021002020)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021002020) + (by + have h : ((childLL (childHH thetaAboveCell0000220021002020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021002020)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021002020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021002020)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021002020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021002020)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021002020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021002020)) h)) + +theorem cover_subtree_6fcd4b6c5e8d : + adaptiveCoverCheck 3 thetaAboveCell0000220021002021 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002021 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021002021) + (by + have h : ((childLL (childLL thetaAboveCell0000220021002021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021002021)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021002021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021002021)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021002021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021002021)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021002021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021002021)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021002021) + (by + have h : ((childLL (childLH thetaAboveCell0000220021002021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021002021)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021002021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021002021)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021002021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021002021)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021002021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021002021)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021002021) + (by + have h : ((childLL (childHL thetaAboveCell0000220021002021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021002021)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021002021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021002021)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021002021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021002021)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021002021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021002021)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021002021) + (by + have h : ((childLL (childHH thetaAboveCell0000220021002021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021002021)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021002021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021002021)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021002021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021002021)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021002021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021002021)) h)) + +theorem cover_subtree_6d0fa2f909d3 : + adaptiveCoverCheck 4 (childHL (childLL (childHL thetaAboveCell000022002100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022002100))) + cover_subtree_da176857c63b + cover_subtree_6fcd4b6c5e8d + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002022 + (by + have h : ((childLL thetaAboveCell0000220021002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021002022) h) + (by + have h : ((childLH thetaAboveCell0000220021002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021002022) h) + (by + have h : ((childHL thetaAboveCell0000220021002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021002022) h) + (by + have h : ((childHH thetaAboveCell0000220021002022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021002022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002023 + (by + have h : ((childLL thetaAboveCell0000220021002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021002023) h) + (by + have h : ((childLH thetaAboveCell0000220021002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021002023) h) + (by + have h : ((childHL thetaAboveCell0000220021002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021002023) h) + (by + have h : ((childHH thetaAboveCell0000220021002023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021002023) h)) + +theorem cover_subtree_db002a1c8e4f : + adaptiveCoverCheck 3 thetaAboveCell0000220021002030 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002030 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021002030) + (by + have h : ((childLL (childLL thetaAboveCell0000220021002030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021002030)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021002030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021002030)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021002030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021002030)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021002030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021002030)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021002030) + (by + have h : ((childLL (childLH thetaAboveCell0000220021002030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021002030)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021002030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021002030)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021002030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021002030)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021002030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021002030)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021002030) + (by + have h : ((childLL (childHL thetaAboveCell0000220021002030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021002030)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021002030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021002030)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021002030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021002030)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021002030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021002030)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021002030) + (by + have h : ((childLL (childHH thetaAboveCell0000220021002030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021002030)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021002030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021002030)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021002030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021002030)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021002030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021002030)) h)) + +theorem cover_subtree_b3dca0ca0dcf : + adaptiveCoverCheck 3 thetaAboveCell0000220021002031 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002031 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021002031) + (by + have h : ((childLL (childLL thetaAboveCell0000220021002031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021002031)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021002031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021002031)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021002031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021002031)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021002031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021002031)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021002031) + (by + have h : ((childLL (childLH thetaAboveCell0000220021002031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021002031)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021002031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021002031)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021002031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021002031)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021002031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021002031)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021002031) + (by + have h : ((childLL (childHL thetaAboveCell0000220021002031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021002031)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021002031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021002031)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021002031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021002031)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021002031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021002031)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021002031) + (by + have h : ((childLL (childHH thetaAboveCell0000220021002031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021002031)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021002031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021002031)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021002031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021002031)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021002031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021002031)) h)) + +theorem cover_subtree_78fc8a461c2f : + adaptiveCoverCheck 4 (childHH (childLL (childHL thetaAboveCell000022002100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022002100))) + cover_subtree_db002a1c8e4f + cover_subtree_b3dca0ca0dcf + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002032 + (by + have h : ((childLL thetaAboveCell0000220021002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021002032) h) + (by + have h : ((childLH thetaAboveCell0000220021002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021002032) h) + (by + have h : ((childHL thetaAboveCell0000220021002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021002032) h) + (by + have h : ((childHH thetaAboveCell0000220021002032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021002032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002033 + (by + have h : ((childLL thetaAboveCell0000220021002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021002033) h) + (by + have h : ((childLH thetaAboveCell0000220021002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021002033) h) + (by + have h : ((childHL thetaAboveCell0000220021002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021002033) h) + (by + have h : ((childHH thetaAboveCell0000220021002033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021002033) h)) + +theorem e24KC2ThetaAboveLeaf0000220021_c0_c0_c2_c0 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022002100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022002100)) + cover_subtree_3d1aed828393 + cover_subtree_e1d0aa057fae + cover_subtree_6d0fa2f909d3 + cover_subtree_78fc8a461c2f + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd48981846f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd48981846f + +open CertificateCellsd48981846f +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c3_c3 : + adaptiveCoverCheck 4 (childHH (childHH thetaBelowCell111133113111)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childHH thetaBelowCell111133113111)) + (by + have h : ((childLL (childHH (childHH thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childHH (childHH + thetaBelowCell111133113111))) h) + (by + have h : ((childLH (childHH (childHH thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childHH (childHH + thetaBelowCell111133113111))) h) + (by + have h : ((childHL (childHH (childHH thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childHH (childHH + thetaBelowCell111133113111))) h) + (by + have h : ((childHH (childHH (childHH thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childHH (childHH + thetaBelowCell111133113111))) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2454b18c1c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2454b18c1c + +open CertificateCells2454b18c1c +theorem e24KC2ThetaBelowLeaf111133113_c0_c1_c2 : + adaptiveCoverCheck 6 thetaBelowCell111133113012 = true := by + exact adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133113012 + (by + have h : ((childLL thetaBelowCell111133113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL thetaBelowCell111133113012) h) + (by + have h : ((childLH thetaBelowCell111133113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH thetaBelowCell111133113012) h) + (by + have h : ((childHL thetaBelowCell111133113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL thetaBelowCell111133113012) h) + (by + have h : ((childHH thetaBelowCell111133113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH thetaBelowCell111133113012) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd87c25aa46 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd87c25aa46 + +open CertificateCellsd87c25aa46 + +theorem e24KC2ThetaBelowLeaf111133113_c0_c1 : + adaptiveCoverCheck 7 (childLH (childLL (childHH thetaBelowCell11113311))) = true := + adaptiveCoverCheck_succ_of_children 6 (childLH (childLL (childHH thetaBelowCell11113311))) + e24KC2ThetaBelowLeaf111133113_c0_c1_c0 e24KC2ThetaBelowLeaf111133113_c0_c1_c1 + e24KC2ThetaBelowLeaf111133113_c0_c1_c2 e24KC2ThetaBelowLeaf111133113_c0_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells90183e831a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells90183e831a + +open CertificateCells90183e831a +theorem e24KC2ThetaBelowLeaf111133113_c1_c0_c0_c3 : + adaptiveCoverCheck 5 (childHH thetaBelowCell111133113100) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133113100) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH thetaBelowCell111133113100)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childLL (childHH + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131003000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131003000 h) + (by + have h : (thetaBelowCell1111331131003001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131003001 h) + (by + have h : (thetaBelowCell1111331131003002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131003002 h) + (by + have h : (thetaBelowCell1111331131003003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131003003 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childLL (childHH + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131003010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131003010 h) + (by + have h : (thetaBelowCell1111331131003011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131003011 h) + (by + have h : (thetaBelowCell1111331131003012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131003012 h) + (by + have h : (thetaBelowCell1111331131003013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131003013 h)) + (by + have h : ((childHL (childLL (childHH thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childHH + thetaBelowCell111133113100))) h) + (by + have h : ((childHH (childLL (childHH thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childHH + thetaBelowCell111133113100))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH thetaBelowCell111133113100)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childLH (childHH + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131003100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131003100 h) + (by + have h : (thetaBelowCell1111331131003101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131003101 h) + (by + have h : (thetaBelowCell1111331131003102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131003102 h) + (by + have h : (thetaBelowCell1111331131003103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131003103 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childLH (childHH + thetaBelowCell111133113100))) + (by + have h : (thetaBelowCell1111331131003110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131003110 h) + (by + have h : (thetaBelowCell1111331131003111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131003111 h) + (by + have h : (thetaBelowCell1111331131003112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131003112 h) + (by + have h : (thetaBelowCell1111331131003113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131003113 h)) + (by + have h : ((childHL (childLH (childHH thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childHH + thetaBelowCell111133113100))) h) + (by + have h : ((childHH (childLH (childHH thetaBelowCell111133113100)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childHH + thetaBelowCell111133113100))) h)) + (by + have h : ((childHL (childHH thetaBelowCell111133113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH thetaBelowCell111133113100)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133113100))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH thetaBelowCell111133113100)) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells47753ffbe9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells47753ffbe9 + +open CertificateCells47753ffbe9 + +theorem e24KC2ThetaBelowLeaf111133113_c1_c0_c0 : + adaptiveCoverCheck 6 thetaBelowCell111133113100 = true := + adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133113100 + e24KC2ThetaBelowLeaf111133113_c1_c0_c0_c0 e24KC2ThetaBelowLeaf111133113_c1_c0_c0_c1 + e24KC2ThetaBelowLeaf111133113_c1_c0_c0_c2 e24KC2ThetaBelowLeaf111133113_c1_c0_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse21bcf4574 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse21bcf4574 + +open CertificateCellse21bcf4574 +theorem e24KC2ThetaAboveLeaf0000220021_c0_c1_c0 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022002101) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022002101) + (by + have h : ((childLL (childLL thetaAboveCell000022002101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL thetaAboveCell000022002101)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022002101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL thetaAboveCell000022002101)) h) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childLL thetaAboveCell000022002101)) + (by + have h : ((childLL (childHL (childLL thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHL (childLL + thetaAboveCell000022002101))) h) + (by + have h : ((childLH (childHL (childLL thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHL (childLL + thetaAboveCell000022002101))) h) + (by + have h : ((childHL (childHL (childLL thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childLL + thetaAboveCell000022002101))) h) + (by + have h : ((childHH (childHL (childLL thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childLL + thetaAboveCell000022002101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childLL thetaAboveCell000022002101)) + (by + have h : ((childLL (childHH (childLL thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLL (childHH (childLL + thetaAboveCell000022002101))) h) + (by + have h : ((childLH (childHH (childLL thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childLH (childHH (childLL + thetaAboveCell000022002101))) h) + (by + have h : ((childHL (childHH (childLL thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childLL + thetaAboveCell000022002101))) h) + (by + have h : ((childHH (childHH (childLL thetaAboveCell000022002101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childLL + thetaAboveCell000022002101))) h)) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsda9a873863 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsda9a873863 + +open CertificateCellsda9a873863 +theorem e24KC2ThetaAboveLeaf0000220021_c0_c2 : + adaptiveCoverCheck 7 thetaAboveCell000022002102 = true := by + exact adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022002102 + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLL thetaAboveCell000022002102) + (by + have h : ((childLL (childLL thetaAboveCell000022002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLL + thetaAboveCell000022002102)) h) + (by + have h : ((childLH (childLL thetaAboveCell000022002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLL + thetaAboveCell000022002102)) h) + (by + have h : ((childHL (childLL thetaAboveCell000022002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLL + thetaAboveCell000022002102)) h) + (by + have h : ((childHH (childLL thetaAboveCell000022002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLL + thetaAboveCell000022002102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 5 (childLH thetaAboveCell000022002102) + (by + have h : ((childLL (childLH thetaAboveCell000022002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLL (childLH + thetaAboveCell000022002102)) h) + (by + have h : ((childLH (childLH thetaAboveCell000022002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childLH (childLH + thetaAboveCell000022002102)) h) + (by + have h : ((childHL (childLH thetaAboveCell000022002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHL (childLH + thetaAboveCell000022002102)) h) + (by + have h : ((childHH (childLH thetaAboveCell000022002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 5 (childHH (childLH + thetaAboveCell000022002102)) h)) + (by + have h : ((childHL thetaAboveCell000022002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHL thetaAboveCell000022002102) h) + (by + have h : ((childHH thetaAboveCell000022002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 (childHH thetaAboveCell000022002102) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells7d865d7559 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells7d865d7559 + +open CertificateCells7d865d7559 +theorem cover_subtree_6a2ae51f01eb : + adaptiveCoverCheck 2 thetaBelowCell1111331131113000 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131113000 + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLL thetaBelowCell1111331131113000) + (by + have h : ((childLL (childLL thetaBelowCell1111331131113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLL + thetaBelowCell1111331131113000)) h) + (by + have h : ((childLH (childLL thetaBelowCell1111331131113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLL + thetaBelowCell1111331131113000)) h) + (by + have h : ((childHL (childLL thetaBelowCell1111331131113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLL + thetaBelowCell1111331131113000)) h) + (by + have h : ((childHH (childLL thetaBelowCell1111331131113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLL + thetaBelowCell1111331131113000)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLH thetaBelowCell1111331131113000) + (by + have h : ((childLL (childLH thetaBelowCell1111331131113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLH + thetaBelowCell1111331131113000)) h) + (by + have h : ((childLH (childLH thetaBelowCell1111331131113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLH + thetaBelowCell1111331131113000)) h) + (by + have h : ((childHL (childLH thetaBelowCell1111331131113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLH + thetaBelowCell1111331131113000)) h) + (by + have h : ((childHH (childLH thetaBelowCell1111331131113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLH + thetaBelowCell1111331131113000)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131113000) + (by + have h : ((childLL (childHL thetaBelowCell1111331131113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131113000)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131113000)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131113000)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131113000)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131113000) + (by + have h : ((childLL (childHH thetaBelowCell1111331131113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131113000)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131113000)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131113000)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131113000))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131113000)) h)) + +theorem cover_subtree_a45c44028853 : + adaptiveCoverCheck 2 thetaBelowCell1111331131113001 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131113001 + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLL thetaBelowCell1111331131113001) + (by + have h : ((childLL (childLL thetaBelowCell1111331131113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLL + thetaBelowCell1111331131113001)) h) + (by + have h : ((childLH (childLL thetaBelowCell1111331131113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLL + thetaBelowCell1111331131113001)) h) + (by + have h : ((childHL (childLL thetaBelowCell1111331131113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLL + thetaBelowCell1111331131113001)) h) + (by + have h : ((childHH (childLL thetaBelowCell1111331131113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLL + thetaBelowCell1111331131113001)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLH thetaBelowCell1111331131113001) + (by + have h : ((childLL (childLH thetaBelowCell1111331131113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLH + thetaBelowCell1111331131113001)) h) + (by + have h : ((childLH (childLH thetaBelowCell1111331131113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLH + thetaBelowCell1111331131113001)) h) + (by + have h : ((childHL (childLH thetaBelowCell1111331131113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLH + thetaBelowCell1111331131113001)) h) + (by + have h : ((childHH (childLH thetaBelowCell1111331131113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLH + thetaBelowCell1111331131113001)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131113001) + (by + have h : ((childLL (childHL thetaBelowCell1111331131113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131113001)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131113001)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131113001)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131113001)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131113001) + (by + have h : ((childLL (childHH thetaBelowCell1111331131113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131113001)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131113001)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131113001)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131113001))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131113001)) h)) + +theorem cover_subtree_d2590f3569cd : + adaptiveCoverCheck 3 (childLL (childLL (childHH thetaBelowCell111133113111))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childLL (childHH + thetaBelowCell111133113111))) + cover_subtree_6a2ae51f01eb + cover_subtree_a45c44028853 + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131113002 + (by + have h : ((childLL thetaBelowCell1111331131113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131113002) h) + (by + have h : ((childLH thetaBelowCell1111331131113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131113002) h) + (by + have h : ((childHL thetaBelowCell1111331131113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131113002) h) + (by + have h : ((childHH thetaBelowCell1111331131113002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131113002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131113003 + (by + have h : ((childLL thetaBelowCell1111331131113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131113003) h) + (by + have h : ((childLH thetaBelowCell1111331131113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131113003) h) + (by + have h : ((childHL thetaBelowCell1111331131113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131113003) h) + (by + have h : ((childHH thetaBelowCell1111331131113003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131113003) h)) + +theorem cover_subtree_903db5f2747c : + adaptiveCoverCheck 2 thetaBelowCell1111331131113010 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131113010 + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLL thetaBelowCell1111331131113010) + (by + have h : ((childLL (childLL thetaBelowCell1111331131113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLL + thetaBelowCell1111331131113010)) h) + (by + have h : ((childLH (childLL thetaBelowCell1111331131113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLL + thetaBelowCell1111331131113010)) h) + (by + have h : ((childHL (childLL thetaBelowCell1111331131113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLL + thetaBelowCell1111331131113010)) h) + (by + have h : ((childHH (childLL thetaBelowCell1111331131113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLL + thetaBelowCell1111331131113010)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLH thetaBelowCell1111331131113010) + (by + have h : ((childLL (childLH thetaBelowCell1111331131113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLH + thetaBelowCell1111331131113010)) h) + (by + have h : ((childLH (childLH thetaBelowCell1111331131113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLH + thetaBelowCell1111331131113010)) h) + (by + have h : ((childHL (childLH thetaBelowCell1111331131113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLH + thetaBelowCell1111331131113010)) h) + (by + have h : ((childHH (childLH thetaBelowCell1111331131113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLH + thetaBelowCell1111331131113010)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131113010) + (by + have h : ((childLL (childHL thetaBelowCell1111331131113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131113010)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131113010)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131113010)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131113010)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131113010) + (by + have h : ((childLL (childHH thetaBelowCell1111331131113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131113010)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131113010)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131113010)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131113010))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131113010)) h)) + +theorem cover_subtree_4ba95efb8e56 : + adaptiveCoverCheck 2 thetaBelowCell1111331131113011 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131113011 + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLL thetaBelowCell1111331131113011) + (by + have h : ((childLL (childLL thetaBelowCell1111331131113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLL + thetaBelowCell1111331131113011)) h) + (by + have h : ((childLH (childLL thetaBelowCell1111331131113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLL + thetaBelowCell1111331131113011)) h) + (by + have h : ((childHL (childLL thetaBelowCell1111331131113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLL + thetaBelowCell1111331131113011)) h) + (by + have h : ((childHH (childLL thetaBelowCell1111331131113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLL + thetaBelowCell1111331131113011)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLH thetaBelowCell1111331131113011) + (by + have h : ((childLL (childLH thetaBelowCell1111331131113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLH + thetaBelowCell1111331131113011)) h) + (by + have h : ((childLH (childLH thetaBelowCell1111331131113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLH + thetaBelowCell1111331131113011)) h) + (by + have h : ((childHL (childLH thetaBelowCell1111331131113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLH + thetaBelowCell1111331131113011)) h) + (by + have h : ((childHH (childLH thetaBelowCell1111331131113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLH + thetaBelowCell1111331131113011)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131113011) + (by + have h : ((childLL (childHL thetaBelowCell1111331131113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131113011)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131113011)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131113011)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131113011)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131113011) + (by + have h : ((childLL (childHH thetaBelowCell1111331131113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131113011)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131113011)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131113011)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131113011))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131113011)) h)) + +theorem cover_subtree_189c3ed220c3 : + adaptiveCoverCheck 3 (childLH (childLL (childHH thetaBelowCell111133113111))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childLL (childHH + thetaBelowCell111133113111))) + cover_subtree_903db5f2747c + cover_subtree_4ba95efb8e56 + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131113012 + (by + have h : ((childLL thetaBelowCell1111331131113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131113012) h) + (by + have h : ((childLH thetaBelowCell1111331131113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131113012) h) + (by + have h : ((childHL thetaBelowCell1111331131113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131113012) h) + (by + have h : ((childHH thetaBelowCell1111331131113012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131113012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131113013 + (by + have h : ((childLL thetaBelowCell1111331131113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131113013) h) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childLH thetaBelowCell1111331131113013) + (by + have h : ((childLL (childLH thetaBelowCell1111331131113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childLH + thetaBelowCell1111331131113013)) h) + (by + have h : ((childLH (childLH thetaBelowCell1111331131113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childLH + thetaBelowCell1111331131113013)) h) + (by + have h : ((childHL (childLH thetaBelowCell1111331131113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childLH + thetaBelowCell1111331131113013)) h) + (by + have h : ((childHH (childLH thetaBelowCell1111331131113013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childLH + thetaBelowCell1111331131113013)) h)) + (by + have h : ((childHL thetaBelowCell1111331131113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131113013) h) + (by + have h : ((childHH thetaBelowCell1111331131113013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131113013) h)) + +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c3_c0 : + adaptiveCoverCheck 4 (childLL (childHH thetaBelowCell111133113111)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH thetaBelowCell111133113111)) + cover_subtree_d2590f3569cd + cover_subtree_189c3ed220c3 + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childLL (childHH + thetaBelowCell111133113111))) + (by + have h : (thetaBelowCell1111331131113020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131113020 h) + (by + have h : (thetaBelowCell1111331131113021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131113021 h) + (by + have h : (thetaBelowCell1111331131113022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131113022 h) + (by + have h : (thetaBelowCell1111331131113023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131113023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childLL (childHH + thetaBelowCell111133113111))) + (by + have h : (thetaBelowCell1111331131113030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131113030 h) + (by + have h : (thetaBelowCell1111331131113031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131113031 h) + (by + have h : (thetaBelowCell1111331131113032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131113032 h) + (by + have h : (thetaBelowCell1111331131113033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131113033 h)) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsca42d19ac6 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsca42d19ac6 + +open CertificateCellsca42d19ac6 + +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c3 : + adaptiveCoverCheck 5 (childHH thetaBelowCell111133113111) = true := + adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133113111) + e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c3_c0 e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c3_c1 + e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c3_c2 e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c3_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells257a1a1faa + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells257a1a1faa + +open CertificateCells257a1a1faa +theorem cover_subtree_596b54980499 : + adaptiveCoverCheck 4 (childHL (childLL thetaBelowCell111133113101)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL thetaBelowCell111133113101)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHL (childLL + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131010200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010200 h) + (by + have h : (thetaBelowCell1111331131010201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010201 h) + (by + have h : (thetaBelowCell1111331131010202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010202 h) + (by + have h : (thetaBelowCell1111331131010203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHL (childLL + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131010210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010210 h) + (by + have h : (thetaBelowCell1111331131010211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010211 h) + (by + have h : (thetaBelowCell1111331131010212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010212 h) + (by + have h : (thetaBelowCell1111331131010213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010213 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHL (childLL + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131010220).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010220 h) + (by + have h : (thetaBelowCell1111331131010221).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010221 h) + (by + have h : (thetaBelowCell1111331131010222).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010222 h) + (by + have h : (thetaBelowCell1111331131010223).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010223 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHL (childLL + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131010230).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010230 h) + (by + have h : (thetaBelowCell1111331131010231).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010231 h) + (by + have h : (thetaBelowCell1111331131010232).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010232 h) + (by + have h : (thetaBelowCell1111331131010233).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010233 h)) + +theorem cover_subtree_e230aaf0d2f3 : + adaptiveCoverCheck 4 (childHH (childLL thetaBelowCell111133113101)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL thetaBelowCell111133113101)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHH (childLL + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131010300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010300 h) + (by + have h : (thetaBelowCell1111331131010301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010301 h) + (by + have h : (thetaBelowCell1111331131010302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010302 h) + (by + have h : (thetaBelowCell1111331131010303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHH (childLL + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131010310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010310 h) + (by + have h : (thetaBelowCell1111331131010311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010311 h) + (by + have h : (thetaBelowCell1111331131010312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010312 h) + (by + have h : (thetaBelowCell1111331131010313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010313 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHH (childLL + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131010320).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010320 h) + (by + have h : (thetaBelowCell1111331131010321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010321 h) + (by + have h : (thetaBelowCell1111331131010322).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010322 h) + (by + have h : (thetaBelowCell1111331131010323).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010323 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHH (childLL + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131010330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010330 h) + (by + have h : (thetaBelowCell1111331131010331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010331 h) + (by + have h : (thetaBelowCell1111331131010332).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010332 h) + (by + have h : (thetaBelowCell1111331131010333).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131010333 h)) + +theorem e24KC2ThetaBelowLeaf111133113_c1_c0_c1_c0 : + adaptiveCoverCheck 5 (childLL thetaBelowCell111133113101) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133113101) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL thetaBelowCell111133113101)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLL + thetaBelowCell111133113101))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLL + thetaBelowCell111133113101))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLL + thetaBelowCell111133113101))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLL + thetaBelowCell111133113101))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL thetaBelowCell111133113101)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLL + thetaBelowCell111133113101))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLL + thetaBelowCell111133113101))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLL + thetaBelowCell111133113101))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLL + thetaBelowCell111133113101))) h)) + cover_subtree_596b54980499 + cover_subtree_e230aaf0d2f3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb187906d24 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb187906d24 + +open CertificateCellsb187906d24 +theorem cover_subtree_504c637fe057 : + adaptiveCoverCheck 3 thetaAboveCell0000220021012002 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012002 + (by + have h : ((childLL thetaAboveCell0000220021012002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021012002) h) + (by + have h : ((childLH thetaAboveCell0000220021012002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021012002) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021012002) + (by + have h : ((childLL (childHL thetaAboveCell0000220021012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021012002)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021012002)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021012002)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021012002)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021012002) + (by + have h : ((childLL (childHH thetaAboveCell0000220021012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021012002)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021012002)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021012002)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021012002))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021012002)) h)) + +theorem cover_subtree_2a357587fe2c : + adaptiveCoverCheck 3 thetaAboveCell0000220021012003 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012003 + (by + have h : ((childLL thetaAboveCell0000220021012003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021012003) h) + (by + have h : ((childLH thetaAboveCell0000220021012003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021012003) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021012003) + (by + have h : ((childLL (childHL thetaAboveCell0000220021012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021012003)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021012003)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021012003)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021012003)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021012003) + (by + have h : ((childLL (childHH thetaAboveCell0000220021012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021012003)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021012003)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021012003)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021012003))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021012003)) h)) + +theorem cover_subtree_e90aeadfa33e : + adaptiveCoverCheck 4 (childLL (childLL (childHL thetaAboveCell000022002101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHL + thetaAboveCell000022002101))) + (by + have h : (thetaAboveCell0000220021012000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012000 h) + (by + have h : (thetaAboveCell0000220021012001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012001 h) + cover_subtree_504c637fe057 + cover_subtree_2a357587fe2c + +theorem cover_subtree_fb92afbe7b07 : + adaptiveCoverCheck 3 thetaAboveCell0000220021012012 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012012 + (by + have h : ((childLL thetaAboveCell0000220021012012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021012012) h) + (by + have h : ((childLH thetaAboveCell0000220021012012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021012012) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021012012) + (by + have h : ((childLL (childHL thetaAboveCell0000220021012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021012012)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021012012)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021012012)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021012012)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021012012) + (by + have h : ((childLL (childHH thetaAboveCell0000220021012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021012012)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021012012)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021012012)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021012012))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021012012)) h)) + +theorem cover_subtree_0e32fa63735b : + adaptiveCoverCheck 4 (childLH (childLL (childHL thetaAboveCell000022002101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHL + thetaAboveCell000022002101))) + (by + have h : (thetaAboveCell0000220021012010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012010 h) + (by + have h : (thetaAboveCell0000220021012011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021012011 h) + cover_subtree_fb92afbe7b07 + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012013 + (by + have h : ((childLL thetaAboveCell0000220021012013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021012013) h) + (by + have h : ((childLH thetaAboveCell0000220021012013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021012013) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021012013) + (by + have h : ((childLL (childHL thetaAboveCell0000220021012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021012013)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021012013)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021012013)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021012013))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021012013)) h)) + (by + have h : ((childHH thetaAboveCell0000220021012013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012013) h)) + +theorem cover_subtree_2d2c3f59bbe5 : + adaptiveCoverCheck 3 thetaAboveCell0000220021012020 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012020 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021012020) + (by + have h : ((childLL (childLL thetaAboveCell0000220021012020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021012020)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021012020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021012020)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021012020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021012020)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021012020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021012020)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021012020) + (by + have h : ((childLL (childLH thetaAboveCell0000220021012020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021012020)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021012020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021012020)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021012020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021012020)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021012020))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021012020)) h)) + (by + have h : ((childHL thetaAboveCell0000220021012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012020) h) + (by + have h : ((childHH thetaAboveCell0000220021012020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012020) h) + +theorem cover_subtree_118ca13c27e0 : + adaptiveCoverCheck 3 thetaAboveCell0000220021012021 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012021 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021012021) + (by + have h : ((childLL (childLL thetaAboveCell0000220021012021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021012021)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021012021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021012021)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021012021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021012021)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021012021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021012021)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021012021) + (by + have h : ((childLL (childLH thetaAboveCell0000220021012021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021012021)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021012021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021012021)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021012021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021012021)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021012021))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021012021)) h)) + (by + have h : ((childHL thetaAboveCell0000220021012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012021) h) + (by + have h : ((childHH thetaAboveCell0000220021012021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012021) h) + +theorem cover_subtree_1582f7d2c473 : + adaptiveCoverCheck 4 (childHL (childLL (childHL thetaAboveCell000022002101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022002101))) + cover_subtree_2d2c3f59bbe5 + cover_subtree_118ca13c27e0 + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012022 + (by + have h : ((childLL thetaAboveCell0000220021012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021012022) h) + (by + have h : ((childLH thetaAboveCell0000220021012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021012022) h) + (by + have h : ((childHL thetaAboveCell0000220021012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012022) h) + (by + have h : ((childHH thetaAboveCell0000220021012022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012023 + (by + have h : ((childLL thetaAboveCell0000220021012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021012023) h) + (by + have h : ((childLH thetaAboveCell0000220021012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021012023) h) + (by + have h : ((childHL thetaAboveCell0000220021012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012023) h) + (by + have h : ((childHH thetaAboveCell0000220021012023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012023) h)) + +theorem cover_subtree_b689532944b1 : + adaptiveCoverCheck 3 thetaAboveCell0000220021012030 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012030 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021012030) + (by + have h : ((childLL (childLL thetaAboveCell0000220021012030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021012030)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021012030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021012030)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021012030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021012030)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021012030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021012030)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021012030) + (by + have h : ((childLL (childLH thetaAboveCell0000220021012030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021012030)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021012030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021012030)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021012030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021012030)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021012030))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021012030)) h)) + (by + have h : ((childHL thetaAboveCell0000220021012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012030) h) + (by + have h : ((childHH thetaAboveCell0000220021012030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012030) h) + +theorem cover_subtree_229b7653f1bc : + adaptiveCoverCheck 3 thetaAboveCell0000220021012031 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012031 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021012031) + (by + have h : ((childLL (childLL thetaAboveCell0000220021012031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021012031)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021012031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021012031)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021012031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021012031)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021012031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021012031)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021012031) + (by + have h : ((childLL (childLH thetaAboveCell0000220021012031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021012031)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021012031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021012031)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021012031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021012031)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021012031))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021012031)) h)) + (by + have h : ((childHL thetaAboveCell0000220021012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012031) h) + (by + have h : ((childHH thetaAboveCell0000220021012031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012031) h) + +theorem cover_subtree_b1c2b8600845 : + adaptiveCoverCheck 4 (childHH (childLL (childHL thetaAboveCell000022002101))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022002101))) + cover_subtree_b689532944b1 + cover_subtree_229b7653f1bc + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012032 + (by + have h : ((childLL thetaAboveCell0000220021012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021012032) h) + (by + have h : ((childLH thetaAboveCell0000220021012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021012032) h) + (by + have h : ((childHL thetaAboveCell0000220021012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012032) h) + (by + have h : ((childHH thetaAboveCell0000220021012032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021012033 + (by + have h : ((childLL thetaAboveCell0000220021012033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021012033) h) + (by + have h : ((childLH thetaAboveCell0000220021012033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021012033) h) + (by + have h : ((childHL thetaAboveCell0000220021012033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021012033) h) + (by + have h : ((childHH thetaAboveCell0000220021012033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021012033) h)) + +theorem e24KC2ThetaAboveLeaf0000220021_c0_c1_c2_c0 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022002101)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022002101)) + cover_subtree_e90aeadfa33e + cover_subtree_0e32fa63735b + cover_subtree_1582f7d2c473 + cover_subtree_b1c2b8600845 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellseb98bd469c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellseb98bd469c + +open CertificateCellseb98bd469c + +theorem e24KC2ThetaAboveLeaf0000220021_c0_c1_c2 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022002101) = true := + adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022002101) + e24KC2ThetaAboveLeaf0000220021_c0_c1_c2_c0 e24KC2ThetaAboveLeaf0000220021_c0_c1_c2_c1 + e24KC2ThetaAboveLeaf0000220021_c0_c1_c2_c2 e24KC2ThetaAboveLeaf0000220021_c0_c1_c2_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0fb8590a1f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0fb8590a1f + +open CertificateCells0fb8590a1f + +theorem e24KC2ThetaAboveLeaf0000220021_c0_c1 : + adaptiveCoverCheck 7 thetaAboveCell000022002101 = true := + adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022002101 + e24KC2ThetaAboveLeaf0000220021_c0_c1_c0 e24KC2ThetaAboveLeaf0000220021_c0_c1_c1 + e24KC2ThetaAboveLeaf0000220021_c0_c1_c2 e24KC2ThetaAboveLeaf0000220021_c0_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells21614274e2 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells21614274e2 + +open CertificateCells21614274e2 +theorem e24KC2ThetaBelowLeaf111133113_c1_c3 : + adaptiveCoverCheck 7 (childHH (childLH (childHH thetaBelowCell11113311))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childLH (childHH thetaBelowCell11113311))) + (by + have h : (thetaBelowCell111133113130).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133113130 h) + (by + have h : (thetaBelowCell111133113131).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133113131 h) + (by + have h : (thetaBelowCell111133113132).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133113132 h) + (by + have h : (thetaBelowCell111133113133).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133113133 h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells075667848d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells075667848d + +open CertificateCells075667848d +theorem cover_subtree_162fb6940e90 : + adaptiveCoverCheck 3 thetaAboveCell0000220021002102 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002102 + (by + have h : ((childLL thetaAboveCell0000220021002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021002102) h) + (by + have h : ((childLH thetaAboveCell0000220021002102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021002102) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021002102) + (by + have h : ((childLL (childHL thetaAboveCell0000220021002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021002102)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021002102)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021002102)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021002102)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021002102) + (by + have h : ((childLL (childHH thetaAboveCell0000220021002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021002102)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021002102)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021002102)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021002102))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021002102)) h)) + +theorem cover_subtree_2b38e4b2557d : + adaptiveCoverCheck 3 thetaAboveCell0000220021002103 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002103 + (by + have h : ((childLL thetaAboveCell0000220021002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021002103) h) + (by + have h : ((childLH thetaAboveCell0000220021002103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021002103) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021002103) + (by + have h : ((childLL (childHL thetaAboveCell0000220021002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021002103)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021002103)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021002103)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021002103)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021002103) + (by + have h : ((childLL (childHH thetaAboveCell0000220021002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021002103)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021002103)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021002103)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021002103))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021002103)) h)) + +theorem cover_subtree_ee2829c05e95 : + adaptiveCoverCheck 4 (childLL (childLH (childHL thetaAboveCell000022002100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHL + thetaAboveCell000022002100))) + (by + have h : (thetaAboveCell0000220021002100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002100 h) + (by + have h : (thetaAboveCell0000220021002101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002101 h) + cover_subtree_162fb6940e90 + cover_subtree_2b38e4b2557d + +theorem cover_subtree_d302433685b0 : + adaptiveCoverCheck 3 thetaAboveCell0000220021002112 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002112 + (by + have h : ((childLL thetaAboveCell0000220021002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021002112) h) + (by + have h : ((childLH thetaAboveCell0000220021002112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021002112) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021002112) + (by + have h : ((childLL (childHL thetaAboveCell0000220021002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021002112)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021002112)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021002112)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021002112)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021002112) + (by + have h : ((childLL (childHH thetaAboveCell0000220021002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021002112)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021002112)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021002112)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021002112))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021002112)) h)) + +theorem cover_subtree_549e46a5d3e3 : + adaptiveCoverCheck 3 thetaAboveCell0000220021002113 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002113 + (by + have h : ((childLL thetaAboveCell0000220021002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021002113) h) + (by + have h : ((childLH thetaAboveCell0000220021002113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021002113) h) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021002113) + (by + have h : ((childLL (childHL thetaAboveCell0000220021002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021002113)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021002113)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021002113)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021002113)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021002113) + (by + have h : ((childLL (childHH thetaAboveCell0000220021002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021002113)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021002113)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021002113)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021002113))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021002113)) h)) + +theorem cover_subtree_4c9680a92e0c : + adaptiveCoverCheck 4 (childLH (childLH (childHL thetaAboveCell000022002100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHL + thetaAboveCell000022002100))) + (by + have h : (thetaAboveCell0000220021002110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002110 h) + (by + have h : (thetaAboveCell0000220021002111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021002111 h) + cover_subtree_d302433685b0 + cover_subtree_549e46a5d3e3 + +theorem cover_subtree_78071866416e : + adaptiveCoverCheck 3 thetaAboveCell0000220021002120 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002120 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021002120) + (by + have h : ((childLL (childLL thetaAboveCell0000220021002120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021002120)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021002120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021002120)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021002120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021002120)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021002120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021002120)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021002120) + (by + have h : ((childLL (childLH thetaAboveCell0000220021002120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021002120)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021002120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021002120)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021002120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021002120)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021002120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021002120)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021002120) + (by + have h : ((childLL (childHL thetaAboveCell0000220021002120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021002120)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021002120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021002120)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021002120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021002120)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021002120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021002120)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021002120) + (by + have h : ((childLL (childHH thetaAboveCell0000220021002120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021002120)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021002120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021002120)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021002120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021002120)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021002120))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021002120)) h)) + +theorem cover_subtree_088dc6ec9713 : + adaptiveCoverCheck 3 thetaAboveCell0000220021002121 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002121 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021002121) + (by + have h : ((childLL (childLL thetaAboveCell0000220021002121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021002121)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021002121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021002121)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021002121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021002121)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021002121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021002121)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021002121) + (by + have h : ((childLL (childLH thetaAboveCell0000220021002121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021002121)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021002121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021002121)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021002121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021002121)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021002121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021002121)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021002121) + (by + have h : ((childLL (childHL thetaAboveCell0000220021002121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021002121)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021002121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021002121)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021002121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021002121)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021002121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021002121)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021002121) + (by + have h : ((childLL (childHH thetaAboveCell0000220021002121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021002121)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021002121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021002121)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021002121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021002121)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021002121))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021002121)) h)) + +theorem cover_subtree_e0b48be7f1b2 : + adaptiveCoverCheck 4 (childHL (childLH (childHL thetaAboveCell000022002100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022002100))) + cover_subtree_78071866416e + cover_subtree_088dc6ec9713 + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002122 + (by + have h : ((childLL thetaAboveCell0000220021002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021002122) h) + (by + have h : ((childLH thetaAboveCell0000220021002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021002122) h) + (by + have h : ((childHL thetaAboveCell0000220021002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021002122) h) + (by + have h : ((childHH thetaAboveCell0000220021002122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021002122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002123 + (by + have h : ((childLL thetaAboveCell0000220021002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021002123) h) + (by + have h : ((childLH thetaAboveCell0000220021002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021002123) h) + (by + have h : ((childHL thetaAboveCell0000220021002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021002123) h) + (by + have h : ((childHH thetaAboveCell0000220021002123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021002123) h)) + +theorem cover_subtree_cb8fede25e6d : + adaptiveCoverCheck 3 thetaAboveCell0000220021002130 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002130 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021002130) + (by + have h : ((childLL (childLL thetaAboveCell0000220021002130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021002130)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021002130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021002130)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021002130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021002130)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021002130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021002130)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021002130) + (by + have h : ((childLL (childLH thetaAboveCell0000220021002130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021002130)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021002130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021002130)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021002130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021002130)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021002130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021002130)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021002130) + (by + have h : ((childLL (childHL thetaAboveCell0000220021002130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021002130)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021002130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021002130)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021002130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021002130)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021002130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021002130)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021002130) + (by + have h : ((childLL (childHH thetaAboveCell0000220021002130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021002130)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021002130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021002130)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021002130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021002130)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021002130))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021002130)) h)) + +theorem cover_subtree_9df38978a25b : + adaptiveCoverCheck 3 thetaAboveCell0000220021002131 = true := by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002131 + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLL thetaAboveCell0000220021002131) + (by + have h : ((childLL (childLL thetaAboveCell0000220021002131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLL + thetaAboveCell0000220021002131)) h) + (by + have h : ((childLH (childLL thetaAboveCell0000220021002131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLL + thetaAboveCell0000220021002131)) h) + (by + have h : ((childHL (childLL thetaAboveCell0000220021002131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLL + thetaAboveCell0000220021002131)) h) + (by + have h : ((childHH (childLL thetaAboveCell0000220021002131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLL + thetaAboveCell0000220021002131)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childLH thetaAboveCell0000220021002131) + (by + have h : ((childLL (childLH thetaAboveCell0000220021002131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childLH + thetaAboveCell0000220021002131)) h) + (by + have h : ((childLH (childLH thetaAboveCell0000220021002131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childLH + thetaAboveCell0000220021002131)) h) + (by + have h : ((childHL (childLH thetaAboveCell0000220021002131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childLH + thetaAboveCell0000220021002131)) h) + (by + have h : ((childHH (childLH thetaAboveCell0000220021002131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childLH + thetaAboveCell0000220021002131)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHL thetaAboveCell0000220021002131) + (by + have h : ((childLL (childHL thetaAboveCell0000220021002131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHL + thetaAboveCell0000220021002131)) h) + (by + have h : ((childLH (childHL thetaAboveCell0000220021002131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHL + thetaAboveCell0000220021002131)) h) + (by + have h : ((childHL (childHL thetaAboveCell0000220021002131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHL + thetaAboveCell0000220021002131)) h) + (by + have h : ((childHH (childHL thetaAboveCell0000220021002131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHL + thetaAboveCell0000220021002131)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 (childHH thetaAboveCell0000220021002131) + (by + have h : ((childLL (childHH thetaAboveCell0000220021002131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL (childHH + thetaAboveCell0000220021002131)) h) + (by + have h : ((childLH (childHH thetaAboveCell0000220021002131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH (childHH + thetaAboveCell0000220021002131)) h) + (by + have h : ((childHL (childHH thetaAboveCell0000220021002131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL (childHH + thetaAboveCell0000220021002131)) h) + (by + have h : ((childHH (childHH thetaAboveCell0000220021002131))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH (childHH + thetaAboveCell0000220021002131)) h)) + +theorem cover_subtree_413edc037905 : + adaptiveCoverCheck 4 (childHH (childLH (childHL thetaAboveCell000022002100))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022002100))) + cover_subtree_cb8fede25e6d + cover_subtree_9df38978a25b + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002132 + (by + have h : ((childLL thetaAboveCell0000220021002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021002132) h) + (by + have h : ((childLH thetaAboveCell0000220021002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021002132) h) + (by + have h : ((childHL thetaAboveCell0000220021002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021002132) h) + (by + have h : ((childHH thetaAboveCell0000220021002132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021002132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021002133 + (by + have h : ((childLL thetaAboveCell0000220021002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021002133) h) + (by + have h : ((childLH thetaAboveCell0000220021002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021002133) h) + (by + have h : ((childHL thetaAboveCell0000220021002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021002133) h) + (by + have h : ((childHH thetaAboveCell0000220021002133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021002133) h)) + +theorem e24KC2ThetaAboveLeaf0000220021_c0_c0_c2_c1 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022002100)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022002100)) + cover_subtree_ee2829c05e95 + cover_subtree_4c9680a92e0c + cover_subtree_e0b48be7f1b2 + cover_subtree_413edc037905 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells135b119fc2 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells135b119fc2 + +open CertificateCells135b119fc2 + +theorem e24KC2ThetaAboveLeaf0000220021_c0_c0_c2 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022002100) = true := + adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022002100) + e24KC2ThetaAboveLeaf0000220021_c0_c0_c2_c0 e24KC2ThetaAboveLeaf0000220021_c0_c0_c2_c1 + e24KC2ThetaAboveLeaf0000220021_c0_c0_c2_c2 e24KC2ThetaAboveLeaf0000220021_c0_c0_c2_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse53a016898 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse53a016898 + +open CertificateCellse53a016898 + +theorem e24KC2ThetaAboveLeaf0000220021_c0_c0 : + adaptiveCoverCheck 7 thetaAboveCell000022002100 = true := + adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022002100 + e24KC2ThetaAboveLeaf0000220021_c0_c0_c0 e24KC2ThetaAboveLeaf0000220021_c0_c0_c1 + e24KC2ThetaAboveLeaf0000220021_c0_c0_c2 e24KC2ThetaAboveLeaf0000220021_c0_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8b72842cc0 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8b72842cc0 + +open CertificateCells8b72842cc0 + +theorem e24KC2ThetaAboveLeaf0000220021_c0 : + adaptiveCoverCheck 8 (childLL (childLH (childHL thetaAboveCell00002200))) = true := + adaptiveCoverCheck_succ_of_children 7 (childLL (childLH (childHL thetaAboveCell00002200))) + e24KC2ThetaAboveLeaf0000220021_c0_c0 e24KC2ThetaAboveLeaf0000220021_c0_c1 + e24KC2ThetaAboveLeaf0000220021_c0_c2 e24KC2ThetaAboveLeaf0000220021_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3d04a04d91 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3d04a04d91 + +open CertificateCells3d04a04d91 +theorem e24KC2ThetaBelowLeaf111133113_c0_c3 : + adaptiveCoverCheck 7 (childHH (childLL (childHH thetaBelowCell11113311))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHH (childLL (childHH thetaBelowCell11113311))) + (by + have h : (thetaBelowCell111133113030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133113030 h) + (by + have h : (thetaBelowCell111133113031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133113031 h) + (by + have h : (thetaBelowCell111133113032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133113032 h) + (by + have h : (thetaBelowCell111133113033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133113033 h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells665e67ba22 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells665e67ba22 + +open CertificateCells665e67ba22 +theorem cover_subtree_1c545d2d332e : + adaptiveCoverCheck 3 (childLH (childLL (childHH thetaBelowCell111133113101))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childLL (childHH + thetaBelowCell111133113101))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131013010 + (by + have h : ((childLL thetaBelowCell1111331131013010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131013010) h) + (by + have h : ((childLH thetaBelowCell1111331131013010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131013010) h) + (by + have h : ((childHL thetaBelowCell1111331131013010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131013010) h) + (by + have h : ((childHH thetaBelowCell1111331131013010)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131013010) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131013011 + (by + have h : ((childLL thetaBelowCell1111331131013011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131013011) h) + (by + have h : ((childLH thetaBelowCell1111331131013011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131013011) h) + (by + have h : ((childHL thetaBelowCell1111331131013011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131013011) h) + (by + have h : ((childHH thetaBelowCell1111331131013011)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131013011) h)) + (by + have h : (thetaBelowCell1111331131013012).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131013012 h) + (by + have h : (thetaBelowCell1111331131013013).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131013013 h) + +theorem cover_subtree_a6892a976bdc : + adaptiveCoverCheck 4 (childLL (childHH thetaBelowCell111133113101)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH thetaBelowCell111133113101)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childLL (childHH + thetaBelowCell111133113101))) + (by + have h : (thetaBelowCell1111331131013000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131013000 h) + (by + have h : (thetaBelowCell1111331131013001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131013001 h) + (by + have h : (thetaBelowCell1111331131013002).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131013002 h) + (by + have h : (thetaBelowCell1111331131013003).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131013003 h)) + cover_subtree_1c545d2d332e + (by + have h : ((childHL (childLL (childHH thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childHH + thetaBelowCell111133113101))) h) + (by + have h : ((childHH (childLL (childHH thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childHH + thetaBelowCell111133113101))) h) + +theorem cover_subtree_8f27cd7d62f9 : + adaptiveCoverCheck 3 (childLL (childLH (childHH thetaBelowCell111133113101))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childLH (childHH + thetaBelowCell111133113101))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131013100 + (by + have h : ((childLL thetaBelowCell1111331131013100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131013100) h) + (by + have h : ((childLH thetaBelowCell1111331131013100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131013100) h) + (by + have h : ((childHL thetaBelowCell1111331131013100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131013100) h) + (by + have h : ((childHH thetaBelowCell1111331131013100)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131013100) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131013101 + (by + have h : ((childLL thetaBelowCell1111331131013101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131013101) h) + (by + have h : ((childLH thetaBelowCell1111331131013101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131013101) h) + (by + have h : ((childHL thetaBelowCell1111331131013101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131013101) h) + (by + have h : ((childHH thetaBelowCell1111331131013101)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131013101) h)) + (by + have h : (thetaBelowCell1111331131013102).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131013102 h) + (by + have h : (thetaBelowCell1111331131013103).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131013103 h) + +theorem cover_subtree_3a8993d4b677 : + adaptiveCoverCheck 3 (childLH (childLH (childHH thetaBelowCell111133113101))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childLH (childHH + thetaBelowCell111133113101))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131013110 + (by + have h : ((childLL thetaBelowCell1111331131013110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131013110) h) + (by + have h : ((childLH thetaBelowCell1111331131013110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131013110) h) + (by + have h : ((childHL thetaBelowCell1111331131013110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131013110) h) + (by + have h : ((childHH thetaBelowCell1111331131013110)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131013110) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131013111 + (by + have h : ((childLL thetaBelowCell1111331131013111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131013111) h) + (by + have h : ((childLH thetaBelowCell1111331131013111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131013111) h) + (by + have h : ((childHL thetaBelowCell1111331131013111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131013111) h) + (by + have h : ((childHH thetaBelowCell1111331131013111)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131013111) h)) + (by + have h : (thetaBelowCell1111331131013112).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131013112 h) + (by + have h : (thetaBelowCell1111331131013113).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131013113 h) + +theorem cover_subtree_f225800535b1 : + adaptiveCoverCheck 4 (childLH (childHH thetaBelowCell111133113101)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH thetaBelowCell111133113101)) + cover_subtree_8f27cd7d62f9 + cover_subtree_3a8993d4b677 + (by + have h : ((childHL (childLH (childHH thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childHH + thetaBelowCell111133113101))) h) + (by + have h : ((childHH (childLH (childHH thetaBelowCell111133113101)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childHH + thetaBelowCell111133113101))) h) + +theorem e24KC2ThetaBelowLeaf111133113_c1_c0_c1_c3 : + adaptiveCoverCheck 5 (childHH thetaBelowCell111133113101) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH thetaBelowCell111133113101) + cover_subtree_a6892a976bdc + cover_subtree_f225800535b1 + (by + have h : ((childHL (childHH thetaBelowCell111133113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH thetaBelowCell111133113101)) h) + (by + have h : ((childHH (childHH thetaBelowCell111133113101))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH thetaBelowCell111133113101)) h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa275032fe9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa275032fe9 + +open CertificateCellsa275032fe9 + +theorem e24KC2ThetaBelowLeaf111133113_c1_c0_c1 : + adaptiveCoverCheck 6 thetaBelowCell111133113101 = true := + adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133113101 + e24KC2ThetaBelowLeaf111133113_c1_c0_c1_c0 e24KC2ThetaBelowLeaf111133113_c1_c0_c1_c1 + e24KC2ThetaBelowLeaf111133113_c1_c0_c1_c2 e24KC2ThetaBelowLeaf111133113_c1_c0_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells09124dcbf9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells09124dcbf9 + +open CertificateCells09124dcbf9 + +theorem e24KC2ThetaBelowLeaf111133113_c1_c0 : + adaptiveCoverCheck 7 (childLL (childLH (childHH thetaBelowCell11113311))) = true := + adaptiveCoverCheck_succ_of_children 6 (childLL (childLH (childHH thetaBelowCell11113311))) + e24KC2ThetaBelowLeaf111133113_c1_c0_c0 e24KC2ThetaBelowLeaf111133113_c1_c0_c1 + e24KC2ThetaBelowLeaf111133113_c1_c0_c2 e24KC2ThetaBelowLeaf111133113_c1_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse133bf0420 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse133bf0420 + +open CertificateCellse133bf0420 +theorem cover_subtree_8c4e3e00c778 : + adaptiveCoverCheck 4 (childLL (childLL (childHL thetaAboveCell000022002110))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHL + thetaAboveCell000022002110))) + (by + have h : (thetaAboveCell0000220021102000).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102000 h) + (by + have h : (thetaAboveCell0000220021102001).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102001 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102002 + (by + have h : ((childLL thetaAboveCell0000220021102002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102002) h) + (by + have h : ((childLH thetaAboveCell0000220021102002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102002) h) + (by + have h : ((childHL thetaAboveCell0000220021102002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102002) h) + (by + have h : ((childHH thetaAboveCell0000220021102002)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102002) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102003 + (by + have h : ((childLL thetaAboveCell0000220021102003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102003) h) + (by + have h : ((childLH thetaAboveCell0000220021102003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102003) h) + (by + have h : ((childHL thetaAboveCell0000220021102003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102003) h) + (by + have h : ((childHH thetaAboveCell0000220021102003)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102003) h)) + +theorem cover_subtree_49f6eb3ee7e0 : + adaptiveCoverCheck 4 (childLH (childLL (childHL thetaAboveCell000022002110))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHL + thetaAboveCell000022002110))) + (by + have h : (thetaAboveCell0000220021102010).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102010 h) + (by + have h : (thetaAboveCell0000220021102011).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102011 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102012 + (by + have h : ((childLL thetaAboveCell0000220021102012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102012) h) + (by + have h : ((childLH thetaAboveCell0000220021102012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102012) h) + (by + have h : ((childHL thetaAboveCell0000220021102012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102012) h) + (by + have h : ((childHH thetaAboveCell0000220021102012)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102012) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102013 + (by + have h : ((childLL thetaAboveCell0000220021102013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102013) h) + (by + have h : ((childLH thetaAboveCell0000220021102013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102013) h) + (by + have h : ((childHL thetaAboveCell0000220021102013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102013) h) + (by + have h : ((childHH thetaAboveCell0000220021102013)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102013) h)) + +theorem cover_subtree_adebd26c440a : + adaptiveCoverCheck 4 (childHL (childLL (childHL thetaAboveCell000022002110))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL (childHL + thetaAboveCell000022002110))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102020 + (by + have h : ((childLL thetaAboveCell0000220021102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102020) h) + (by + have h : ((childLH thetaAboveCell0000220021102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102020) h) + (by + have h : ((childHL thetaAboveCell0000220021102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102020) h) + (by + have h : ((childHH thetaAboveCell0000220021102020)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102020) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102021 + (by + have h : ((childLL thetaAboveCell0000220021102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102021) h) + (by + have h : ((childLH thetaAboveCell0000220021102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102021) h) + (by + have h : ((childHL thetaAboveCell0000220021102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102021) h) + (by + have h : ((childHH thetaAboveCell0000220021102021)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102021) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102022 + (by + have h : ((childLL thetaAboveCell0000220021102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102022) h) + (by + have h : ((childLH thetaAboveCell0000220021102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102022) h) + (by + have h : ((childHL thetaAboveCell0000220021102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102022) h) + (by + have h : ((childHH thetaAboveCell0000220021102022)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102022) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102023 + (by + have h : ((childLL thetaAboveCell0000220021102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102023) h) + (by + have h : ((childLH thetaAboveCell0000220021102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102023) h) + (by + have h : ((childHL thetaAboveCell0000220021102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102023) h) + (by + have h : ((childHH thetaAboveCell0000220021102023)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102023) h)) + +theorem cover_subtree_cfe74f698d24 : + adaptiveCoverCheck 4 (childHH (childLL (childHL thetaAboveCell000022002110))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL (childHL + thetaAboveCell000022002110))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102030 + (by + have h : ((childLL thetaAboveCell0000220021102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102030) h) + (by + have h : ((childLH thetaAboveCell0000220021102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102030) h) + (by + have h : ((childHL thetaAboveCell0000220021102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102030) h) + (by + have h : ((childHH thetaAboveCell0000220021102030)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102030) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102031 + (by + have h : ((childLL thetaAboveCell0000220021102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102031) h) + (by + have h : ((childLH thetaAboveCell0000220021102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102031) h) + (by + have h : ((childHL thetaAboveCell0000220021102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102031) h) + (by + have h : ((childHH thetaAboveCell0000220021102031)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102031) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102032 + (by + have h : ((childLL thetaAboveCell0000220021102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102032) h) + (by + have h : ((childLH thetaAboveCell0000220021102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102032) h) + (by + have h : ((childHL thetaAboveCell0000220021102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102032) h) + (by + have h : ((childHH thetaAboveCell0000220021102032)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102032) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102033 + (by + have h : ((childLL thetaAboveCell0000220021102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102033) h) + (by + have h : ((childLH thetaAboveCell0000220021102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102033) h) + (by + have h : ((childHL thetaAboveCell0000220021102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102033) h) + (by + have h : ((childHH thetaAboveCell0000220021102033)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102033) h)) + +theorem cover_subtree_64b5e3c15e8d : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022002110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022002110)) + cover_subtree_8c4e3e00c778 + cover_subtree_49f6eb3ee7e0 + cover_subtree_adebd26c440a + cover_subtree_cfe74f698d24 + +theorem cover_subtree_aeac3ba6168f : + adaptiveCoverCheck 4 (childLL (childLH (childHL thetaAboveCell000022002110))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHL + thetaAboveCell000022002110))) + (by + have h : (thetaAboveCell0000220021102100).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102100 h) + (by + have h : (thetaAboveCell0000220021102101).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102101 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102102 + (by + have h : ((childLL thetaAboveCell0000220021102102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102102) h) + (by + have h : ((childLH thetaAboveCell0000220021102102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102102) h) + (by + have h : ((childHL thetaAboveCell0000220021102102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102102) h) + (by + have h : ((childHH thetaAboveCell0000220021102102)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102102) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102103 + (by + have h : ((childLL thetaAboveCell0000220021102103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102103) h) + (by + have h : ((childLH thetaAboveCell0000220021102103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102103) h) + (by + have h : ((childHL thetaAboveCell0000220021102103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102103) h) + (by + have h : ((childHH thetaAboveCell0000220021102103)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102103) h)) + +theorem cover_subtree_325d50012465 : + adaptiveCoverCheck 4 (childLH (childLH (childHL thetaAboveCell000022002110))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHL + thetaAboveCell000022002110))) + (by + have h : (thetaAboveCell0000220021102110).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102110 h) + (by + have h : (thetaAboveCell0000220021102111).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102111 h) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102112 + (by + have h : ((childLL thetaAboveCell0000220021102112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102112) h) + (by + have h : ((childLH thetaAboveCell0000220021102112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102112) h) + (by + have h : ((childHL thetaAboveCell0000220021102112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102112) h) + (by + have h : ((childHH thetaAboveCell0000220021102112)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102112) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102113 + (by + have h : ((childLL thetaAboveCell0000220021102113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102113) h) + (by + have h : ((childLH thetaAboveCell0000220021102113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102113) h) + (by + have h : ((childHL thetaAboveCell0000220021102113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102113) h) + (by + have h : ((childHH thetaAboveCell0000220021102113)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102113) h)) + +theorem cover_subtree_b265451cd007 : + adaptiveCoverCheck 4 (childHL (childLH (childHL thetaAboveCell000022002110))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHL + thetaAboveCell000022002110))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102120 + (by + have h : ((childLL thetaAboveCell0000220021102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102120) h) + (by + have h : ((childLH thetaAboveCell0000220021102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102120) h) + (by + have h : ((childHL thetaAboveCell0000220021102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102120) h) + (by + have h : ((childHH thetaAboveCell0000220021102120)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102120) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102121 + (by + have h : ((childLL thetaAboveCell0000220021102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102121) h) + (by + have h : ((childLH thetaAboveCell0000220021102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102121) h) + (by + have h : ((childHL thetaAboveCell0000220021102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102121) h) + (by + have h : ((childHH thetaAboveCell0000220021102121)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102121) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102122 + (by + have h : ((childLL thetaAboveCell0000220021102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102122) h) + (by + have h : ((childLH thetaAboveCell0000220021102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102122) h) + (by + have h : ((childHL thetaAboveCell0000220021102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102122) h) + (by + have h : ((childHH thetaAboveCell0000220021102122)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102122) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102123 + (by + have h : ((childLL thetaAboveCell0000220021102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102123) h) + (by + have h : ((childLH thetaAboveCell0000220021102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102123) h) + (by + have h : ((childHL thetaAboveCell0000220021102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102123) h) + (by + have h : ((childHH thetaAboveCell0000220021102123)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102123) h)) + +theorem cover_subtree_613b8841c9c0 : + adaptiveCoverCheck 4 (childHH (childLH (childHL thetaAboveCell000022002110))) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHL + thetaAboveCell000022002110))) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102130 + (by + have h : ((childLL thetaAboveCell0000220021102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102130) h) + (by + have h : ((childLH thetaAboveCell0000220021102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102130) h) + (by + have h : ((childHL thetaAboveCell0000220021102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102130) h) + (by + have h : ((childHH thetaAboveCell0000220021102130)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102130) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102131 + (by + have h : ((childLL thetaAboveCell0000220021102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102131) h) + (by + have h : ((childLH thetaAboveCell0000220021102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102131) h) + (by + have h : ((childHL thetaAboveCell0000220021102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102131) h) + (by + have h : ((childHH thetaAboveCell0000220021102131)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102131) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102132 + (by + have h : ((childLL thetaAboveCell0000220021102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102132) h) + (by + have h : ((childLH thetaAboveCell0000220021102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102132) h) + (by + have h : ((childHL thetaAboveCell0000220021102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102132) h) + (by + have h : ((childHH thetaAboveCell0000220021102132)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102132) h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 thetaAboveCell0000220021102133 + (by + have h : ((childLL thetaAboveCell0000220021102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLL thetaAboveCell0000220021102133) h) + (by + have h : ((childLH thetaAboveCell0000220021102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childLH thetaAboveCell0000220021102133) h) + (by + have h : ((childHL thetaAboveCell0000220021102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHL thetaAboveCell0000220021102133) h) + (by + have h : ((childHH thetaAboveCell0000220021102133)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 (childHH thetaAboveCell0000220021102133) h)) + +theorem cover_subtree_52c3ab758725 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022002110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022002110)) + cover_subtree_aeac3ba6168f + cover_subtree_325d50012465 + cover_subtree_b265451cd007 + cover_subtree_613b8841c9c0 + +theorem cover_subtree_1c021cc633a3 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022002110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHL (childHL thetaAboveCell000022002110)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHL (childHL + thetaAboveCell000022002110))) + (by + have h : (thetaAboveCell0000220021102200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102200 h) + (by + have h : (thetaAboveCell0000220021102201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102201 h) + (by + have h : (thetaAboveCell0000220021102202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102202 h) + (by + have h : (thetaAboveCell0000220021102203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHL (childHL + thetaAboveCell000022002110))) + (by + have h : (thetaAboveCell0000220021102210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102210 h) + (by + have h : (thetaAboveCell0000220021102211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102211 h) + (by + have h : (thetaAboveCell0000220021102212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102212 h) + (by + have h : (thetaAboveCell0000220021102213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102213 h)) + (by + have h : ((childHL (childHL (childHL thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHL (childHL + thetaAboveCell000022002110))) h) + (by + have h : ((childHH (childHL (childHL thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHL (childHL + thetaAboveCell000022002110))) h) + +theorem cover_subtree_191cbd679a04 : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022002110)) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childHH (childHL thetaAboveCell000022002110)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childHH (childHL + thetaAboveCell000022002110))) + (by + have h : (thetaAboveCell0000220021102300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102300 h) + (by + have h : (thetaAboveCell0000220021102301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102301 h) + (by + have h : (thetaAboveCell0000220021102302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102302 h) + (by + have h : (thetaAboveCell0000220021102303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childHH (childHL + thetaAboveCell000022002110))) + (by + have h : (thetaAboveCell0000220021102310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102310 h) + (by + have h : (thetaAboveCell0000220021102311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102311 h) + (by + have h : (thetaAboveCell0000220021102312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102312 h) + (by + have h : (thetaAboveCell0000220021102313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 thetaAboveCell0000220021102313 h)) + (by + have h : ((childHL (childHH (childHL thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHL (childHH (childHL + thetaAboveCell000022002110))) h) + (by + have h : ((childHH (childHH (childHL thetaAboveCell000022002110)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 4 (childHH (childHH (childHL + thetaAboveCell000022002110))) h) + +theorem e24KC2ThetaAboveLeaf0000220021_c1_c0_c2 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022002110) = true := by + exact adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022002110) + cover_subtree_64b5e3c15e8d + cover_subtree_52c3ab758725 + cover_subtree_1c021cc633a3 + cover_subtree_191cbd679a04 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf1833757d0 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf1833757d0 + +open CertificateCellsf1833757d0 + +theorem e24KC2ThetaAboveLeaf0000220021_c1_c0 : + adaptiveCoverCheck 7 thetaAboveCell000022002110 = true := + adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022002110 + e24KC2ThetaAboveLeaf0000220021_c1_c0_c0 e24KC2ThetaAboveLeaf0000220021_c1_c0_c1 + e24KC2ThetaAboveLeaf0000220021_c1_c0_c2 e24KC2ThetaAboveLeaf0000220021_c1_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells21f94a2daf + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells21f94a2daf + +open CertificateCells21f94a2daf + +theorem e24KC2ThetaAboveLeaf0000220021_c1 : + adaptiveCoverCheck 8 (childLH (childLH (childHL thetaAboveCell00002200))) = true := + adaptiveCoverCheck_succ_of_children 7 (childLH (childLH (childHL thetaAboveCell00002200))) + e24KC2ThetaAboveLeaf0000220021_c1_c0 e24KC2ThetaAboveLeaf0000220021_c1_c1 + e24KC2ThetaAboveLeaf0000220021_c1_c2 e24KC2ThetaAboveLeaf0000220021_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsbb4f00460c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsbb4f00460c + +open CertificateCellsbb4f00460c + +theorem e24KC2ThetaAboveLeaf0000220021 : + adaptiveCoverCheck 9 (childLH (childHL thetaAboveCell00002200)) = true := + adaptiveCoverCheck_succ_of_children 8 (childLH (childHL thetaAboveCell00002200)) + e24KC2ThetaAboveLeaf0000220021_c0 e24KC2ThetaAboveLeaf0000220021_c1 + e24KC2ThetaAboveLeaf0000220021_c2 e24KC2ThetaAboveLeaf0000220021_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells232e7e9a76 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells232e7e9a76 + +open CertificateCells232e7e9a76 +theorem e24KC2ThetaBelowLeaf111133113_c0_c2 : + adaptiveCoverCheck 7 (childHL (childLL (childHH thetaBelowCell11113311))) = true := by + exact adaptiveCoverCheck_succ_of_children 6 (childHL (childLL (childHH thetaBelowCell11113311))) + (by + have h : (thetaBelowCell111133113020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133113020 h) + (by + have h : (thetaBelowCell111133113021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133113021 h) + (by + have h : (thetaBelowCell111133113022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133113022 h) + (by + have h : (thetaBelowCell111133113023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 6 thetaBelowCell111133113023 h) + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse657ecadb5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse657ecadb5 + +open CertificateCellse657ecadb5 + +theorem e24KC2ThetaBelowLeaf111133113_c0 : + adaptiveCoverCheck 8 (childLL (childHH thetaBelowCell11113311)) = true := + adaptiveCoverCheck_succ_of_children 7 (childLL (childHH thetaBelowCell11113311)) + e24KC2ThetaBelowLeaf111133113_c0_c0 e24KC2ThetaBelowLeaf111133113_c0_c1 + e24KC2ThetaBelowLeaf111133113_c0_c2 e24KC2ThetaBelowLeaf111133113_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 explicit terminal-certificate subtree. No adaptive search. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells78b824f474 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells78b824f474 + +open CertificateCells78b824f474 +theorem cover_subtree_7d1a4629139c : + adaptiveCoverCheck 3 (childHL (childHL (childLL thetaBelowCell111133113111))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHL (childLL + thetaBelowCell111133113111))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131110220 + (by + have h : ((childLL thetaBelowCell1111331131110220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131110220) h) + (by + have h : ((childLH thetaBelowCell1111331131110220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131110220) h) + (by + have h : ((childHL thetaBelowCell1111331131110220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131110220) h) + (by + have h : ((childHH thetaBelowCell1111331131110220)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131110220) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131110221 + (by + have h : ((childLL thetaBelowCell1111331131110221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131110221) h) + (by + have h : ((childLH thetaBelowCell1111331131110221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131110221) h) + (by + have h : ((childHL thetaBelowCell1111331131110221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131110221) h) + (by + have h : ((childHH thetaBelowCell1111331131110221)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131110221) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131110222 + (by + have h : ((childLL thetaBelowCell1111331131110222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131110222) h) + (by + have h : ((childLH thetaBelowCell1111331131110222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131110222) h) + (by + have h : ((childHL thetaBelowCell1111331131110222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131110222) h) + (by + have h : ((childHH thetaBelowCell1111331131110222)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131110222) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131110223 + (by + have h : ((childLL thetaBelowCell1111331131110223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131110223) h) + (by + have h : ((childLH thetaBelowCell1111331131110223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131110223) h) + (by + have h : ((childHL thetaBelowCell1111331131110223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131110223) h) + (by + have h : ((childHH thetaBelowCell1111331131110223)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131110223) h)) + +theorem cover_subtree_271c266eebff : + adaptiveCoverCheck 3 (childHH (childHL (childLL thetaBelowCell111133113111))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHL (childLL + thetaBelowCell111133113111))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131110230 + (by + have h : ((childLL thetaBelowCell1111331131110230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131110230) h) + (by + have h : ((childLH thetaBelowCell1111331131110230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131110230) h) + (by + have h : ((childHL thetaBelowCell1111331131110230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131110230) h) + (by + have h : ((childHH thetaBelowCell1111331131110230)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131110230) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131110231 + (by + have h : ((childLL thetaBelowCell1111331131110231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131110231) h) + (by + have h : ((childLH thetaBelowCell1111331131110231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131110231) h) + (by + have h : ((childHL thetaBelowCell1111331131110231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131110231) h) + (by + have h : ((childHH thetaBelowCell1111331131110231)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131110231) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131110232 + (by + have h : ((childLL thetaBelowCell1111331131110232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131110232) h) + (by + have h : ((childLH thetaBelowCell1111331131110232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131110232) h) + (by + have h : ((childHL thetaBelowCell1111331131110232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131110232) h) + (by + have h : ((childHH thetaBelowCell1111331131110232)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131110232) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131110233 + (by + have h : ((childLL thetaBelowCell1111331131110233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131110233) h) + (by + have h : ((childLH thetaBelowCell1111331131110233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131110233) h) + (by + have h : ((childHL thetaBelowCell1111331131110233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131110233) h) + (by + have h : ((childHH thetaBelowCell1111331131110233)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131110233) h)) + +theorem cover_subtree_f2e98bb9d295 : + adaptiveCoverCheck 4 (childHL (childLL thetaBelowCell111133113111)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHL (childLL thetaBelowCell111133113111)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHL (childLL + thetaBelowCell111133113111))) + (by + have h : (thetaBelowCell1111331131110200).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110200 h) + (by + have h : (thetaBelowCell1111331131110201).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110201 h) + (by + have h : (thetaBelowCell1111331131110202).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110202 h) + (by + have h : (thetaBelowCell1111331131110203).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110203 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHL (childLL + thetaBelowCell111133113111))) + (by + have h : (thetaBelowCell1111331131110210).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110210 h) + (by + have h : (thetaBelowCell1111331131110211).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110211 h) + (by + have h : (thetaBelowCell1111331131110212).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110212 h) + (by + have h : (thetaBelowCell1111331131110213).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110213 h)) + cover_subtree_7d1a4629139c + cover_subtree_271c266eebff + +theorem cover_subtree_9fadcdfbc6fb : + adaptiveCoverCheck 3 (childHL (childHH (childLL thetaBelowCell111133113111))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHL (childHH (childLL + thetaBelowCell111133113111))) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131110320 + (by + have h : ((childLL thetaBelowCell1111331131110320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131110320) h) + (by + have h : ((childLH thetaBelowCell1111331131110320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131110320) h) + (by + have h : ((childHL thetaBelowCell1111331131110320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131110320) h) + (by + have h : ((childHH thetaBelowCell1111331131110320)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131110320) h)) + (by + have h : (thetaBelowCell1111331131110321).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110321 h) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131110322 + (by + have h : ((childLL thetaBelowCell1111331131110322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131110322) h) + (by + have h : ((childLH thetaBelowCell1111331131110322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131110322) h) + (by + have h : ((childHL thetaBelowCell1111331131110322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131110322) h) + (by + have h : ((childHH thetaBelowCell1111331131110322)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131110322) h)) + (by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131110323 + (by + have h : ((childLL thetaBelowCell1111331131110323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131110323) h) + (by + have h : ((childLH thetaBelowCell1111331131110323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131110323) h) + (by + have h : ((childHL thetaBelowCell1111331131110323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHL thetaBelowCell1111331131110323) h) + (by + have h : ((childHH thetaBelowCell1111331131110323)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childHH thetaBelowCell1111331131110323) h)) + +theorem cover_subtree_3e826769a774 : + adaptiveCoverCheck 2 thetaBelowCell1111331131110332 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131110332 + (by + have h : ((childLL thetaBelowCell1111331131110332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131110332) h) + (by + have h : ((childLH thetaBelowCell1111331131110332)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131110332) h) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131110332) + (by + have h : ((childLL (childHL thetaBelowCell1111331131110332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131110332)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131110332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131110332)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131110332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131110332)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131110332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131110332)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131110332) + (by + have h : ((childLL (childHH thetaBelowCell1111331131110332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131110332)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131110332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131110332)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131110332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131110332)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131110332))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131110332)) h)) + +theorem cover_subtree_647c14158ebb : + adaptiveCoverCheck 2 thetaBelowCell1111331131110333 = true := by + exact adaptiveCoverCheck_succ_of_children 1 thetaBelowCell1111331131110333 + (by + have h : ((childLL thetaBelowCell1111331131110333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLL thetaBelowCell1111331131110333) h) + (by + have h : ((childLH thetaBelowCell1111331131110333)).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 1 (childLH thetaBelowCell1111331131110333) h) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHL thetaBelowCell1111331131110333) + (by + have h : ((childLL (childHL thetaBelowCell1111331131110333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHL + thetaBelowCell1111331131110333)) h) + (by + have h : ((childLH (childHL thetaBelowCell1111331131110333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHL + thetaBelowCell1111331131110333)) h) + (by + have h : ((childHL (childHL thetaBelowCell1111331131110333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHL + thetaBelowCell1111331131110333)) h) + (by + have h : ((childHH (childHL thetaBelowCell1111331131110333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHL + thetaBelowCell1111331131110333)) h)) + (by + exact adaptiveCoverCheck_succ_of_children 0 (childHH thetaBelowCell1111331131110333) + (by + have h : ((childLL (childHH thetaBelowCell1111331131110333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLL (childHH + thetaBelowCell1111331131110333)) h) + (by + have h : ((childLH (childHH thetaBelowCell1111331131110333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childLH (childHH + thetaBelowCell1111331131110333)) h) + (by + have h : ((childHL (childHH thetaBelowCell1111331131110333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHL (childHH + thetaBelowCell1111331131110333)) h) + (by + have h : ((childHH (childHH thetaBelowCell1111331131110333))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 0 (childHH (childHH + thetaBelowCell1111331131110333)) h)) + +theorem cover_subtree_7bb13e3867b3 : + adaptiveCoverCheck 3 (childHH (childHH (childLL thetaBelowCell111133113111))) = true := by + exact adaptiveCoverCheck_succ_of_children 2 (childHH (childHH (childLL + thetaBelowCell111133113111))) + (by + have h : (thetaBelowCell1111331131110330).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110330 h) + (by + have h : (thetaBelowCell1111331131110331).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110331 h) + cover_subtree_3e826769a774 + cover_subtree_647c14158ebb + +theorem cover_subtree_108f8990274f : + adaptiveCoverCheck 4 (childHH (childLL thetaBelowCell111133113111)) = true := by + exact adaptiveCoverCheck_succ_of_children 3 (childHH (childLL thetaBelowCell111133113111)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLL (childHH (childLL + thetaBelowCell111133113111))) + (by + have h : (thetaBelowCell1111331131110300).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110300 h) + (by + have h : (thetaBelowCell1111331131110301).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110301 h) + (by + have h : (thetaBelowCell1111331131110302).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110302 h) + (by + have h : (thetaBelowCell1111331131110303).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110303 h)) + (by + exact adaptiveCoverCheck_succ_of_children 2 (childLH (childHH (childLL + thetaBelowCell111133113111))) + (by + have h : (thetaBelowCell1111331131110310).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110310 h) + (by + have h : (thetaBelowCell1111331131110311).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110311 h) + (by + have h : (thetaBelowCell1111331131110312).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110312 h) + (by + have h : (thetaBelowCell1111331131110313).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 2 thetaBelowCell1111331131110313 h)) + cover_subtree_9fadcdfbc6fb + cover_subtree_7bb13e3867b3 + +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c0 : + adaptiveCoverCheck 5 (childLL thetaBelowCell111133113111) = true := by + exact adaptiveCoverCheck_succ_of_children 4 (childLL thetaBelowCell111133113111) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLL (childLL thetaBelowCell111133113111)) + (by + have h : ((childLL (childLL (childLL thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLL (childLL + thetaBelowCell111133113111))) h) + (by + have h : ((childLH (childLL (childLL thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLL (childLL + thetaBelowCell111133113111))) h) + (by + have h : ((childHL (childLL (childLL thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLL (childLL + thetaBelowCell111133113111))) h) + (by + have h : ((childHH (childLL (childLL thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLL (childLL + thetaBelowCell111133113111))) h)) + (by + exact adaptiveCoverCheck_succ_of_children 3 (childLH (childLL thetaBelowCell111133113111)) + (by + have h : ((childLL (childLH (childLL thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLL (childLH (childLL + thetaBelowCell111133113111))) h) + (by + have h : ((childLH (childLH (childLL thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childLH (childLH (childLL + thetaBelowCell111133113111))) h) + (by + have h : ((childHL (childLH (childLL thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHL (childLH (childLL + thetaBelowCell111133113111))) h) + (by + have h : ((childHH (childLH (childLL thetaBelowCell111133113111)))).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 3 (childHH (childLH (childLL + thetaBelowCell111133113111))) h)) + cover_subtree_f2e98bb9d295 + cover_subtree_108f8990274f + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsccc2f90403 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsccc2f90403 + +open CertificateCellsccc2f90403 + +theorem e24KC2ThetaBelowLeaf111133113_c1_c1_c1 : + adaptiveCoverCheck 6 thetaBelowCell111133113111 = true := + adaptiveCoverCheck_succ_of_children 5 thetaBelowCell111133113111 + e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c0 e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c1 + e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c2 e24KC2ThetaBelowLeaf111133113_c1_c1_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse5aa25a242 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse5aa25a242 + +open CertificateCellse5aa25a242 + +theorem e24KC2ThetaBelowLeaf111133113_c1_c1 : + adaptiveCoverCheck 7 (childLH (childLH (childHH thetaBelowCell11113311))) = true := + adaptiveCoverCheck_succ_of_children 6 (childLH (childLH (childHH thetaBelowCell11113311))) + e24KC2ThetaBelowLeaf111133113_c1_c1_c0 e24KC2ThetaBelowLeaf111133113_c1_c1_c1 + e24KC2ThetaBelowLeaf111133113_c1_c1_c2 e24KC2ThetaBelowLeaf111133113_c1_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0d1c7d48ff + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0d1c7d48ff + +open CertificateCells0d1c7d48ff + +theorem e24KC2ThetaBelowLeaf111133113_c1 : + adaptiveCoverCheck 8 (childLH (childHH thetaBelowCell11113311)) = true := + adaptiveCoverCheck_succ_of_children 7 (childLH (childHH thetaBelowCell11113311)) + e24KC2ThetaBelowLeaf111133113_c1_c0 e24KC2ThetaBelowLeaf111133113_c1_c1 + e24KC2ThetaBelowLeaf111133113_c1_c2 e24KC2ThetaBelowLeaf111133113_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! KC6R4 pure logical subtree join. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1d418dae20 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1d418dae20 + +open CertificateCells1d418dae20 + +theorem e24KC2ThetaBelowLeaf111133113 : + adaptiveCoverCheck 9 (childHH thetaBelowCell11113311) = true := + adaptiveCoverCheck_succ_of_children 8 (childHH thetaBelowCell11113311) + e24KC2ThetaBelowLeaf111133113_c0 e24KC2ThetaBelowLeaf111133113_c1 + e24KC2ThetaBelowLeaf111133113_c2 e24KC2ThetaBelowLeaf111133113_c3 + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle022.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle022.lean new file mode 100644 index 0000000000..62de062094 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle022.lean @@ -0,0 +1,7154 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch035`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CoverCertificatefdb2e5aa72 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLL (childLL (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +end GerverSofa.PartE.CoverCertificatefdb2e5aa72 + +namespace GerverSofa.PartE.CoverCertificatefeab482a88 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLL (childLL (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell0000 : AngleCell := + childLL cell000 + +private abbrev cell0001 : AngleCell := + childLH cell000 + +private abbrev cell0002 : AngleCell := + childHL cell000 + +private abbrev cell0003 : AngleCell := + childHH cell000 + +private abbrev cell0010 : AngleCell := + childLL cell001 + +private abbrev cell0011 : AngleCell := + childLH cell001 + +private abbrev cell0012 : AngleCell := + childHL cell001 + +private abbrev cell0013 : AngleCell := + childHH cell001 + +private abbrev cell0100 : AngleCell := + childLL cell010 + +private abbrev cell0101 : AngleCell := + childLH cell010 + +private abbrev cell0102 : AngleCell := + childHL cell010 + +private abbrev cell0103 : AngleCell := + childHH cell010 + +private abbrev cell0110 : AngleCell := + childLL cell011 + +private abbrev cell0111 : AngleCell := + childLH cell011 + +private abbrev cell0112 : AngleCell := + childHL cell011 + +private abbrev cell0113 : AngleCell := + childHH cell011 + +private abbrev cell1000 : AngleCell := + childLL cell100 + +private abbrev cell1001 : AngleCell := + childLH cell100 + +private abbrev cell1002 : AngleCell := + childHL cell100 + +private abbrev cell1003 : AngleCell := + childHH cell100 + +private abbrev cell1010 : AngleCell := + childLL cell101 + +private abbrev cell1011 : AngleCell := + childLH cell101 + +private abbrev cell1012 : AngleCell := + childHL cell101 + +private abbrev cell1013 : AngleCell := + childHH cell101 + +private abbrev cell1100 : AngleCell := + childLL cell110 + +private abbrev cell1101 : AngleCell := + childLH cell110 + +private abbrev cell1102 : AngleCell := + childHL cell110 + +private abbrev cell1103 : AngleCell := + childHH cell110 + +private abbrev cell1110 : AngleCell := + childLL cell111 + +private abbrev cell1111 : AngleCell := + childLH cell111 + +private abbrev cell1112 : AngleCell := + childHL cell111 + +private abbrev cell1113 : AngleCell := + childHH cell111 + +end GerverSofa.PartE.CoverCertificatefeab482a88 + +namespace GerverSofa.PartE.CoverCertificatebf967458da + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLL (childLL (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatebf967458da + +namespace GerverSofa.PartE.CoverCertificate0ae56857be + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLL (childLL (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate0ae56857be + +namespace GerverSofa.PartE.CoverCertificate2ea7c8ddef + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLH (childLL (childLL (childLH (childLL (childLH (childLH (childLL + (childLH (childLH (e24PhiAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell1000 : AngleCell := + childLL cell100 + +private abbrev cell1001 : AngleCell := + childLH cell100 + +private abbrev cell1002 : AngleCell := + childHL cell100 + +private abbrev cell1003 : AngleCell := + childHH cell100 + +private abbrev cell1010 : AngleCell := + childLL cell101 + +private abbrev cell1011 : AngleCell := + childLH cell101 + +private abbrev cell1012 : AngleCell := + childHL cell101 + +private abbrev cell1013 : AngleCell := + childHH cell101 + +private abbrev cell1100 : AngleCell := + childLL cell110 + +private abbrev cell1101 : AngleCell := + childLH cell110 + +private abbrev cell1102 : AngleCell := + childHL cell110 + +private abbrev cell1103 : AngleCell := + childHH cell110 + +private abbrev cell1110 : AngleCell := + childLL cell111 + +private abbrev cell1111 : AngleCell := + childLH cell111 + +private abbrev cell1112 : AngleCell := + childHL cell111 + +private abbrev cell1113 : AngleCell := + childHH cell111 + +end GerverSofa.PartE.CoverCertificate2ea7c8ddef + +namespace GerverSofa.PartE.CoverCertificate75cf82dc9c + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLH (childLL (childLL (childLH (childLL (childLH (childLH (childLL + (childLH (childLH (e24PhiAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell0000 : AngleCell := + childLL cell000 + +private abbrev cell0001 : AngleCell := + childLH cell000 + +private abbrev cell0002 : AngleCell := + childHL cell000 + +private abbrev cell0003 : AngleCell := + childHH cell000 + +private abbrev cell0010 : AngleCell := + childLL cell001 + +private abbrev cell0011 : AngleCell := + childLH cell001 + +private abbrev cell0012 : AngleCell := + childHL cell001 + +private abbrev cell0013 : AngleCell := + childHH cell001 + +private abbrev cell0100 : AngleCell := + childLL cell010 + +private abbrev cell0101 : AngleCell := + childLH cell010 + +private abbrev cell0102 : AngleCell := + childHL cell010 + +private abbrev cell0103 : AngleCell := + childHH cell010 + +private abbrev cell0110 : AngleCell := + childLL cell011 + +private abbrev cell0111 : AngleCell := + childLH cell011 + +private abbrev cell0112 : AngleCell := + childHL cell011 + +private abbrev cell0113 : AngleCell := + childHH cell011 + +private abbrev cell1000 : AngleCell := + childLL cell100 + +private abbrev cell1001 : AngleCell := + childLH cell100 + +private abbrev cell1002 : AngleCell := + childHL cell100 + +private abbrev cell1003 : AngleCell := + childHH cell100 + +private abbrev cell1010 : AngleCell := + childLL cell101 + +private abbrev cell1011 : AngleCell := + childLH cell101 + +private abbrev cell1012 : AngleCell := + childHL cell101 + +private abbrev cell1013 : AngleCell := + childHH cell101 + +private abbrev cell1100 : AngleCell := + childLL cell110 + +private abbrev cell1101 : AngleCell := + childLH cell110 + +private abbrev cell1102 : AngleCell := + childHL cell110 + +private abbrev cell1103 : AngleCell := + childHH cell110 + +end GerverSofa.PartE.CoverCertificate75cf82dc9c + +namespace GerverSofa.PartE.CoverCertificate94c7306624 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childLL (childLL (childLH (childLL (childLH (childLH (childLL + (childLH (childLH (e24PhiAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate94c7306624 + +namespace GerverSofa.PartE.CoverCertificatefc8969e3d2 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLH (childLL (childLL (childLH (childLL (childLH (childLH (childLL + (childLH (childLH (e24PhiAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatefc8969e3d2 + +namespace GerverSofa.PartE.CoverCertificate0773e6576d + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLH (childLL (childLL (childLH (childLL (childLH (childLH (childLL + (childLH (childLH (e24PhiAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +end GerverSofa.PartE.CoverCertificate0773e6576d + +namespace GerverSofa.PartE.CoverCertificate6cd163be74 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLH (childLL (childLL (childLH (childLL (childLH (childLH (childLL + (childLH (childLH (e24PhiAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +end GerverSofa.PartE.CoverCertificate6cd163be74 + +namespace GerverSofa.PartE.CoverCertificate105a276d33 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLH (childLL (childLL (childLH (childLL (childLH (childLH (childLL + (childLH (childLH (e24PhiAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate105a276d33 + +namespace GerverSofa.PartE.CoverCertificate7b7ada8a92 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLH (childLL (childLL (childLH (childLL (childLH (childLH (childLL + (childLH (childLH (e24PhiAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate7b7ada8a92 + +namespace GerverSofa.PartE.CoverCertificate216e1a86b9 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLL (childLL (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate216e1a86b9 + +namespace GerverSofa.PartE.CoverCertificatecbce86617c + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childLL (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatecbce86617c + +namespace GerverSofa.PartE.CoverCertificate5b9a8c2094 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLL (childLH (childLL (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate5b9a8c2094 + +namespace GerverSofa.PartE.CoverCertificatee500b98dc1 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLL (childLH (childLL (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatee500b98dc1 + +namespace GerverSofa.PartE.CoverCertificatec4a9c16244 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLL (childLH (childLL (childLH (childLL (childLH (childLH (childLL + (childLH (childLH (e24PhiAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +end GerverSofa.PartE.CoverCertificatec4a9c16244 + +namespace GerverSofa.PartE.CoverCertificated58785d59b + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLL (childLH (childLL (childLH (childLL (childLH (childLH (childLL + (childLH (childLH (e24PhiAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +end GerverSofa.PartE.CoverCertificated58785d59b + +namespace GerverSofa.PartE.CoverCertificate770e3357d2 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLL (childLH (childLL (childLH (childLL (childLH (childLH (childLL + (childLH (childLH (e24PhiAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate770e3357d2 + +namespace GerverSofa.PartE.CoverCertificate4042eb5094 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLL (childLH (childLL (childLH (childLL (childLH (childLH (childLL + (childLH (childLH (e24PhiAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate4042eb5094 + +namespace GerverSofa.PartE.CoverCertificate9283dd1f18 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLL (childLH (childLL (childLH (childLL (childLH (childLH (childLL + (childLH (childLH (e24PhiAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +end GerverSofa.PartE.CoverCertificate9283dd1f18 + +namespace GerverSofa.PartE.CoverCertificate5607aeacca + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLL (childLH (childLL (childLH (childLL (childLH (childLH (childLL + (childLH (childLH (e24PhiAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +end GerverSofa.PartE.CoverCertificate5607aeacca + +namespace GerverSofa.PartE.CoverCertificate093986cbf5 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLL (childLH (childLL (childLH (childLL (childLH (childLH (childLL + (childLH (childLH (e24PhiAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate093986cbf5 + +namespace GerverSofa.PartE.CoverCertificate4478c1ce2d + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childLH (childLL (childLH (childLL (childLH (childLH (childLL + (childLH (childLH (e24PhiAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate4478c1ce2d + +namespace GerverSofa.PartE.CoverCertificate52d1f78193 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childLL (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate52d1f78193 + +namespace GerverSofa.PartE.CoverCertificate263f6f95b0 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLH (childLL (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate263f6f95b0 + +namespace GerverSofa.PartE.CoverCertificatefad4f5904e + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLH (childLL (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell0000 : AngleCell := + childLL cell000 + +private abbrev cell0001 : AngleCell := + childLH cell000 + +private abbrev cell0002 : AngleCell := + childHL cell000 + +private abbrev cell0003 : AngleCell := + childHH cell000 + +end GerverSofa.PartE.CoverCertificatefad4f5904e + +namespace GerverSofa.PartE.CoverCertificatec88446cc5e + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLH (childLL (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +end GerverSofa.PartE.CoverCertificatec88446cc5e + +namespace GerverSofa.PartE.CoverCertificate8053b84bb6 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLH (childLL (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate8053b84bb6 + +namespace GerverSofa.PartE.CoverCertificatea83bf6868e + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLH (childLL (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatea83bf6868e + +namespace GerverSofa.PartE.CoverCertificatec458632307 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLL (childLH (childLL (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatec458632307 + +namespace GerverSofa.PartE.CoverCertificate5ac90060dc + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childLH (childLL (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate5ac90060dc + +namespace GerverSofa.PartE.CoverCertificatee2e2523660 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childLL (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatee2e2523660 + +namespace GerverSofa.PartE.CoverCertificate2c610dcf32 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLH (childLL (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate2c610dcf32 + +namespace GerverSofa.PartE.CoverCertificate7a43bce112 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLL (childLH (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +end GerverSofa.PartE.CoverCertificate7a43bce112 + +namespace GerverSofa.PartE.CertificateCells9e0a1773d8 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells9e0a1773d8 + +namespace GerverSofa.PartE.CertificateCells5867c25b03 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells5867c25b03 + +namespace GerverSofa.PartE.CertificateCellsca01649193 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsca01649193 + +namespace GerverSofa.PartE.CertificateCells469c6912b9 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells469c6912b9 + +namespace GerverSofa.PartE.CertificateCellscf0a854a36 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +/-- Subcell `110110100100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell110110100100 : AngleCell := + childLL (childLL (childLH (childLL phiAboveCell11011010))) + +end GerverSofa.PartE.CertificateCellscf0a854a36 + +namespace GerverSofa.PartE.CertificateCellseb0fd3147a + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +/-- Subcell `110110100101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell110110100101 : AngleCell := + childLH (childLL (childLH (childLL phiAboveCell11011010))) + +end GerverSofa.PartE.CertificateCellseb0fd3147a + +namespace GerverSofa.PartE.CertificateCellsa5ae349f6a + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +/-- Subcell `110110100102` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell110110100102 : AngleCell := + childHL (childLL (childLH (childLL phiAboveCell11011010))) + +end GerverSofa.PartE.CertificateCellsa5ae349f6a + +namespace GerverSofa.PartE.CertificateCellsed6c91cc2c + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +/-- Subcell `110110100103` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell110110100103 : AngleCell := + childHH (childLL (childLH (childLL phiAboveCell11011010))) + +end GerverSofa.PartE.CertificateCellsed6c91cc2c + +namespace GerverSofa.PartE.CertificateCellsd58d6f2902 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +/-- Subcell `110110100110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell110110100110 : AngleCell := + childLL (childLH (childLH (childLL phiAboveCell11011010))) + +end GerverSofa.PartE.CertificateCellsd58d6f2902 + +namespace GerverSofa.PartE.CertificateCellsaa730af275 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +/-- Subcell `110110100111` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell110110100111 : AngleCell := + childLH (childLH (childLH (childLL phiAboveCell11011010))) + +end GerverSofa.PartE.CertificateCellsaa730af275 + +namespace GerverSofa.PartE.CertificateCellse47b06e09b + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +/-- Subcell `110110100112` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell110110100112 : AngleCell := + childHL (childLH (childLH (childLL phiAboveCell11011010))) + +end GerverSofa.PartE.CertificateCellse47b06e09b + +namespace GerverSofa.PartE.CertificateCells6d37377041 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +/-- Subcell `110110100113` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell110110100113 : AngleCell := + childHH (childLH (childLH (childLL phiAboveCell11011010))) + +end GerverSofa.PartE.CertificateCells6d37377041 + +namespace GerverSofa.PartE.CertificateCellse508f838c4 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellse508f838c4 + +namespace GerverSofa.PartE.CertificateCells1cda533a6e + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells1cda533a6e + +namespace GerverSofa.PartE.CertificateCells3babcd7448 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells3babcd7448 + +namespace GerverSofa.PartE.CertificateCellsbbdc1f9510 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsbbdc1f9510 + +namespace GerverSofa.PartE.CertificateCells44a650755e + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +/-- Subcell `110110101000` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell110110101000 : AngleCell := + childLL (childLL (childLL (childLH phiAboveCell11011010))) + +end GerverSofa.PartE.CertificateCells44a650755e + +namespace GerverSofa.PartE.CertificateCells9dff8fd68c + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +/-- Subcell `110110101001` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell110110101001 : AngleCell := + childLH (childLL (childLL (childLH phiAboveCell11011010))) + +end GerverSofa.PartE.CertificateCells9dff8fd68c + +namespace GerverSofa.PartE.CertificateCells0eb9c7dd4e + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +/-- Subcell `110110101002` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell110110101002 : AngleCell := + childHL (childLL (childLL (childLH phiAboveCell11011010))) + +end GerverSofa.PartE.CertificateCells0eb9c7dd4e + +namespace GerverSofa.PartE.CertificateCellsa1f8281244 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +/-- Subcell `110110101003` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell110110101003 : AngleCell := + childHH (childLL (childLL (childLH phiAboveCell11011010))) + +end GerverSofa.PartE.CertificateCellsa1f8281244 + +namespace GerverSofa.PartE.CertificateCellsa31bfb0e48 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +/-- Subcell `110110101010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell110110101010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell11011010))) + +end GerverSofa.PartE.CertificateCellsa31bfb0e48 + +namespace GerverSofa.PartE.CertificateCellsba54477f25 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +/-- Subcell `110110101011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell110110101011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell11011010))) + +end GerverSofa.PartE.CertificateCellsba54477f25 + +namespace GerverSofa.PartE.CertificateCells40378f08af + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +/-- Subcell `110110101012` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell110110101012 : AngleCell := + childHL (childLH (childLL (childLH phiAboveCell11011010))) + +end GerverSofa.PartE.CertificateCells40378f08af + +namespace GerverSofa.PartE.CertificateCellsbef31c9887 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +/-- Subcell `110110101013` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell110110101013 : AngleCell := + childHH (childLH (childLL (childLH phiAboveCell11011010))) + +end GerverSofa.PartE.CertificateCellsbef31c9887 + +namespace GerverSofa.PartE.CertificateCells6837eba069 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells6837eba069 + +namespace GerverSofa.PartE.CertificateCells21829695a9 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells21829695a9 + +namespace GerverSofa.PartE.CertificateCellsd170a2bed6 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsd170a2bed6 + +namespace GerverSofa.PartE.CertificateCells3fed941c0c + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells3fed941c0c + +namespace GerverSofa.PartE.CertificateCellsb780467ddc + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsb780467ddc + +namespace GerverSofa.PartE.CertificateCellse5752d8306 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellse5752d8306 + +namespace GerverSofa.PartE.CertificateCells18ee7077e5 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells18ee7077e5 + +namespace GerverSofa.PartE.CertificateCells481c5d2cb5 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells481c5d2cb5 + +namespace GerverSofa.PartE.CertificateCellsc1762ca3ac + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsc1762ca3ac + +namespace GerverSofa.PartE.CertificateCells105558b317 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells105558b317 + +namespace GerverSofa.PartE.CertificateCells411895cea3 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells411895cea3 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.PhiAbove.Leaf00025`. +* `KernelOnly.PartE.PhiAbove.Leaf00026`. +* `KernelOnly.PartE.PhiAbove.Leaf00027`. +* `KernelOnly.PartE.PhiAbove.Leaf00028`. +* `KernelOnly.PartE.PhiAbove.Leaf00032`. +* `KernelOnly.PartE.PhiAbove.Leaf00033`. +* `KernelOnly.PartE.PhiAbove.Leaf00034`. +* `KernelOnly.PartE.PhiAbove.Leaf00035`. +* `KernelOnly.PartE.PhiAbove.Leaf00038`. +* `KernelOnly.PartE.PhiAbove.Leaf00039`. +* `KernelOnly.PartE.PhiAbove.Leaf00040`. +* `KernelOnly.PartE.PhiAbove.Leaf00041`. +* `KernelOnly.PartE.PhiAbove.Leaf00043`. +* `KernelOnly.PartE.PhiAbove.Leaf00044`. +* `KernelOnly.PartE.PhiAbove.Leaf00046`. +* `KernelOnly.PartE.PhiAbove.Leaf00047`. +* `KernelOnly.PartE.PhiAbove.Leaf00052`. +* `KernelOnly.PartE.PhiAbove.Leaf00053`. +* `KernelOnly.PartE.PhiAbove.Leaf00054`. +* `KernelOnly.PartE.PhiAbove.Leaf00055`. +* `KernelOnly.PartE.PhiAbove.Leaf00058`. +* `KernelOnly.PartE.PhiAbove.Leaf00059`. +* `KernelOnly.PartE.PhiAbove.Leaf00060`. +* `KernelOnly.PartE.PhiAbove.Leaf00061`. +* `KernelOnly.PartE.PhiAbove.Leaf00063`. +* `KernelOnly.PartE.PhiAbove.Leaf00064`. +* `KernelOnly.PartE.PhiAbove.Leaf00067`. +* `KernelOnly.PartE.PhiAbove.Leaf00068`. +* `KernelOnly.PartE.PhiAbove.Leaf00069`. +* `KernelOnly.PartE.PhiAbove.Leaf00070`. +* `KernelOnly.PartE.PhiAbove.Leaf00072`. +* `KernelOnly.PartE.PhiAbove.Leaf00073`. +* `KernelOnly.PartE.PhiAbove.Leaf00075`. +* `KernelOnly.PartE.PhiAbove.Leaf00076`. +* `KernelOnly.PartE.PhiAbove.Leaf00081`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c0_c0_c0_c0_5_00025 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9e0a1773d8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9e0a1773d8 + +open CertificateCells9e0a1773d8 +namespace CoverCertificatefdb2e5aa72 + +private theorem checked000 : adaptiveCoverCheck 2 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 2 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 2 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 2 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 2 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 2 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 2 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 2 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 2 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 2 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 2 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 2 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 2 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 2 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 2 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 2 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatefdb2e5aa72 + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c0_c0 : + adaptiveCoverCheck 5 (childLL (childLL (childLL phiAboveCell11011010))) = true := by + exact CoverCertificatefdb2e5aa72.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c0_c0_c0_c1_5_00026 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5867c25b03 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5867c25b03 + +open CertificateCells5867c25b03 +namespace CoverCertificatefeab482a88 + +private theorem checked0000 : adaptiveCoverCheck 1 cell0000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0000 (by decide +kernel) + +private theorem checked0001 : adaptiveCoverCheck 1 cell0001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0001 (by decide +kernel) + +private theorem checked0002 : adaptiveCoverCheck 1 cell0002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0002 (by decide +kernel) + +private theorem checked0003 : adaptiveCoverCheck 1 cell0003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0003 (by decide +kernel) + +private theorem checked0010 : adaptiveCoverCheck 1 cell0010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0010 (by decide +kernel) + +private theorem checked0011 : adaptiveCoverCheck 1 cell0011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0011 (by decide +kernel) + +private theorem checked0012 : adaptiveCoverCheck 1 cell0012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0012 (by decide +kernel) + +private theorem checked0013 : adaptiveCoverCheck 1 cell0013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0013 (by decide +kernel) + +private theorem checked0100 : adaptiveCoverCheck 1 cell0100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0100 (by decide +kernel) + +private theorem checked0101 : adaptiveCoverCheck 1 cell0101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0101 (by decide +kernel) + +private theorem checked0102 : adaptiveCoverCheck 1 cell0102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0102 (by decide +kernel) + +private theorem checked0103 : adaptiveCoverCheck 1 cell0103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0103 (by decide +kernel) + +private theorem checked0110 : adaptiveCoverCheck 1 cell0110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0110 (by decide +kernel) + +private theorem checked0111 : adaptiveCoverCheck 1 cell0111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0111 (by decide +kernel) + +private theorem checked0112 : adaptiveCoverCheck 1 cell0112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0112 (by decide +kernel) + +private theorem checked0113 : adaptiveCoverCheck 1 cell0113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0113 (by decide +kernel) + +private theorem checked1000 : adaptiveCoverCheck 1 cell1000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1000 (by decide +kernel) + +private theorem checked1001 : adaptiveCoverCheck 1 cell1001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1001 (by decide +kernel) + +private theorem checked1002 : adaptiveCoverCheck 1 cell1002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1002 (by decide +kernel) + +private theorem checked1003 : adaptiveCoverCheck 1 cell1003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1003 (by decide +kernel) + +private theorem checked1010 : adaptiveCoverCheck 1 cell1010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1010 (by decide +kernel) + +private theorem checked1011 : adaptiveCoverCheck 1 cell1011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1011 (by decide +kernel) + +private theorem checked1012 : adaptiveCoverCheck 1 cell1012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1012 (by decide +kernel) + +private theorem checked1013 : adaptiveCoverCheck 1 cell1013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1013 (by decide +kernel) + +private theorem checked1100 : adaptiveCoverCheck 1 cell1100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1100 (by decide +kernel) + +private theorem checked1101 : adaptiveCoverCheck 1 cell1101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1101 (by decide +kernel) + +private theorem checked1102 : adaptiveCoverCheck 1 cell1102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1102 (by decide +kernel) + +private theorem checked1103 : adaptiveCoverCheck 1 cell1103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1103 (by decide +kernel) + +private theorem checked1110 : adaptiveCoverCheck 1 cell1110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1110 (by decide +kernel) + +private theorem checked1111 : adaptiveCoverCheck 1 cell1111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1111 (by decide +kernel) + +private theorem checked1112 : adaptiveCoverCheck 1 cell1112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1112 (by decide +kernel) + +private theorem checked1113 : adaptiveCoverCheck 1 cell1113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1113 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 2 cell000 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell000 + checked0000 checked0001 checked0002 checked0003 + +private theorem checked001 : adaptiveCoverCheck 2 cell001 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell001 + checked0010 checked0011 checked0012 checked0013 + +private theorem checked002 : adaptiveCoverCheck 2 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 2 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 2 cell010 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell010 + checked0100 checked0101 checked0102 checked0103 + +private theorem checked011 : adaptiveCoverCheck 2 cell011 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell011 + checked0110 checked0111 checked0112 checked0113 + +private theorem checked012 : adaptiveCoverCheck 2 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 2 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 2 cell100 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell100 + checked1000 checked1001 checked1002 checked1003 + +private theorem checked101 : adaptiveCoverCheck 2 cell101 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell101 + checked1010 checked1011 checked1012 checked1013 + +private theorem checked102 : adaptiveCoverCheck 2 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 2 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 2 cell110 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell110 + checked1100 checked1101 checked1102 checked1103 + +private theorem checked111 : adaptiveCoverCheck 2 cell111 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell111 + checked1110 checked1111 checked1112 checked1113 + +private theorem checked112 : adaptiveCoverCheck 2 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 2 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatefeab482a88 + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c0_c1 : + adaptiveCoverCheck 5 (childLH (childLL (childLL phiAboveCell11011010))) = true := by + exact CoverCertificatefeab482a88.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c0_c0_c0_c2_5_00027 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsca01649193 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsca01649193 + +open CertificateCellsca01649193 +namespace CoverCertificatebf967458da + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatebf967458da + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c0_c2 : + adaptiveCoverCheck 5 (childHL (childLL (childLL phiAboveCell11011010))) = true := by + exact CoverCertificatebf967458da.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c0_c0_c0_c3_5_00028 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells469c6912b9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells469c6912b9 + +open CertificateCells469c6912b9 +namespace CoverCertificate0ae56857be + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0ae56857be + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c0_c3 : + adaptiveCoverCheck 5 (childHH (childLL (childLL phiAboveCell11011010))) = true := by + exact CoverCertificate0ae56857be.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above +Leaf1101101_c0_c0_c1_c0_c0_4_00032 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellscf0a854a36 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellscf0a854a36 + +open CertificateCellscf0a854a36 +namespace CoverCertificate2ea7c8ddef + +private theorem checked1000 : adaptiveCoverCheck 0 cell1000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1000 (by decide +kernel) + +private theorem checked1001 : adaptiveCoverCheck 0 cell1001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1001 (by decide +kernel) + +private theorem checked1002 : adaptiveCoverCheck 0 cell1002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1002 (by decide +kernel) + +private theorem checked1003 : adaptiveCoverCheck 0 cell1003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1003 (by decide +kernel) + +private theorem checked1010 : adaptiveCoverCheck 0 cell1010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1010 (by decide +kernel) + +private theorem checked1011 : adaptiveCoverCheck 0 cell1011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1011 (by decide +kernel) + +private theorem checked1012 : adaptiveCoverCheck 0 cell1012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1012 (by decide +kernel) + +private theorem checked1013 : adaptiveCoverCheck 0 cell1013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1013 (by decide +kernel) + +private theorem checked1100 : adaptiveCoverCheck 0 cell1100 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1100 (by decide +kernel) + +private theorem checked1101 : adaptiveCoverCheck 0 cell1101 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1101 (by decide +kernel) + +private theorem checked1102 : adaptiveCoverCheck 0 cell1102 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1102 (by decide +kernel) + +private theorem checked1103 : adaptiveCoverCheck 0 cell1103 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1103 (by decide +kernel) + +private theorem checked1110 : adaptiveCoverCheck 0 cell1110 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1110 (by decide +kernel) + +private theorem checked1111 : adaptiveCoverCheck 0 cell1111 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1111 (by decide +kernel) + +private theorem checked1112 : adaptiveCoverCheck 0 cell1112 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1112 (by decide +kernel) + +private theorem checked1113 : adaptiveCoverCheck 0 cell1113 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1113 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell100 + checked1000 checked1001 checked1002 checked1003 + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell101 + checked1010 checked1011 checked1012 checked1013 + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell110 + checked1100 checked1101 checked1102 checked1103 + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell111 + checked1110 checked1111 checked1112 checked1113 + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate2ea7c8ddef + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c1_c0_c0 : + adaptiveCoverCheck 4 phiAboveCell110110100100 = true := by + exact CoverCertificate2ea7c8ddef.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above +Leaf1101101_c0_c0_c1_c0_c1_4_00033 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellseb0fd3147a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellseb0fd3147a + +open CertificateCellseb0fd3147a +namespace CoverCertificate75cf82dc9c + +private theorem checked0000 : adaptiveCoverCheck 0 cell0000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0000 (by decide +kernel) + +private theorem checked0001 : adaptiveCoverCheck 0 cell0001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0001 (by decide +kernel) + +private theorem checked0002 : adaptiveCoverCheck 0 cell0002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0002 (by decide +kernel) + +private theorem checked0003 : adaptiveCoverCheck 0 cell0003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0003 (by decide +kernel) + +private theorem checked0010 : adaptiveCoverCheck 0 cell0010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0010 (by decide +kernel) + +private theorem checked0011 : adaptiveCoverCheck 0 cell0011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0011 (by decide +kernel) + +private theorem checked0012 : adaptiveCoverCheck 0 cell0012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0012 (by decide +kernel) + +private theorem checked0013 : adaptiveCoverCheck 0 cell0013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0013 (by decide +kernel) + +private theorem checked0100 : adaptiveCoverCheck 0 cell0100 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0100 (by decide +kernel) + +private theorem checked0101 : adaptiveCoverCheck 0 cell0101 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0101 (by decide +kernel) + +private theorem checked0102 : adaptiveCoverCheck 0 cell0102 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0102 (by decide +kernel) + +private theorem checked0103 : adaptiveCoverCheck 0 cell0103 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0103 (by decide +kernel) + +private theorem checked0110 : adaptiveCoverCheck 0 cell0110 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0110 (by decide +kernel) + +private theorem checked0111 : adaptiveCoverCheck 0 cell0111 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0111 (by decide +kernel) + +private theorem checked0112 : adaptiveCoverCheck 0 cell0112 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0112 (by decide +kernel) + +private theorem checked0113 : adaptiveCoverCheck 0 cell0113 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0113 (by decide +kernel) + +private theorem checked1000 : adaptiveCoverCheck 0 cell1000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1000 (by decide +kernel) + +private theorem checked1001 : adaptiveCoverCheck 0 cell1001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1001 (by decide +kernel) + +private theorem checked1002 : adaptiveCoverCheck 0 cell1002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1002 (by decide +kernel) + +private theorem checked1003 : adaptiveCoverCheck 0 cell1003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1003 (by decide +kernel) + +private theorem checked1010 : adaptiveCoverCheck 0 cell1010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1010 (by decide +kernel) + +private theorem checked1011 : adaptiveCoverCheck 0 cell1011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1011 (by decide +kernel) + +private theorem checked1012 : adaptiveCoverCheck 0 cell1012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1012 (by decide +kernel) + +private theorem checked1013 : adaptiveCoverCheck 0 cell1013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1013 (by decide +kernel) + +private theorem checked1100 : adaptiveCoverCheck 0 cell1100 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1100 (by decide +kernel) + +private theorem checked1101 : adaptiveCoverCheck 0 cell1101 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1101 (by decide +kernel) + +private theorem checked1102 : adaptiveCoverCheck 0 cell1102 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1102 (by decide +kernel) + +private theorem checked1103 : adaptiveCoverCheck 0 cell1103 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1103 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell000 + checked0000 checked0001 checked0002 checked0003 + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell001 + checked0010 checked0011 checked0012 checked0013 + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell010 + checked0100 checked0101 checked0102 checked0103 + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell011 + checked0110 checked0111 checked0112 checked0113 + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell100 + checked1000 checked1001 checked1002 checked1003 + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell101 + checked1010 checked1011 checked1012 checked1013 + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell110 + checked1100 checked1101 checked1102 checked1103 + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate75cf82dc9c + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c1_c0_c1 : + adaptiveCoverCheck 4 phiAboveCell110110100101 = true := by + exact CoverCertificate75cf82dc9c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above +Leaf1101101_c0_c0_c1_c0_c2_4_00034 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa5ae349f6a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa5ae349f6a + +open CertificateCellsa5ae349f6a +namespace CoverCertificate94c7306624 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate94c7306624 + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c1_c0_c2 : + adaptiveCoverCheck 4 phiAboveCell110110100102 = true := by + exact CoverCertificate94c7306624.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above +Leaf1101101_c0_c0_c1_c0_c3_4_00035 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsed6c91cc2c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsed6c91cc2c + +open CertificateCellsed6c91cc2c +namespace CoverCertificatefc8969e3d2 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatefc8969e3d2 + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c1_c0_c3 : + adaptiveCoverCheck 4 phiAboveCell110110100103 = true := by + exact CoverCertificatefc8969e3d2.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above +Leaf1101101_c0_c0_c1_c1_c0_4_00038 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd58d6f2902 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd58d6f2902 + +open CertificateCellsd58d6f2902 +namespace CoverCertificate0773e6576d + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0773e6576d + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c1_c1_c0 : + adaptiveCoverCheck 4 phiAboveCell110110100110 = true := by + exact CoverCertificate0773e6576d.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above +Leaf1101101_c0_c0_c1_c1_c1_4_00039 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsaa730af275 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsaa730af275 + +open CertificateCellsaa730af275 +namespace CoverCertificate6cd163be74 + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 1 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 1 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 1 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 1 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate6cd163be74 + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c1_c1_c1 : + adaptiveCoverCheck 4 phiAboveCell110110100111 = true := by + exact CoverCertificate6cd163be74.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above +Leaf1101101_c0_c0_c1_c1_c2_4_00040 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse47b06e09b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse47b06e09b + +open CertificateCellse47b06e09b +namespace CoverCertificate105a276d33 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate105a276d33 + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c1_c1_c2 : + adaptiveCoverCheck 4 phiAboveCell110110100112 = true := by + exact CoverCertificate105a276d33.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above +Leaf1101101_c0_c0_c1_c1_c3_4_00041 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6d37377041 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6d37377041 + +open CertificateCells6d37377041 +namespace CoverCertificate7b7ada8a92 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate7b7ada8a92 + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c1_c1_c3 : + adaptiveCoverCheck 4 phiAboveCell110110100113 = true := by + exact CoverCertificate7b7ada8a92.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c0_c0_c1_c2_5_00043 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse508f838c4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse508f838c4 + +open CertificateCellse508f838c4 +namespace CoverCertificate216e1a86b9 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate216e1a86b9 + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c1_c2 : + adaptiveCoverCheck 5 (childHL (childLH (childLL phiAboveCell11011010))) = true := by + exact CoverCertificate216e1a86b9.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c0_c0_c1_c3_5_00044 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1cda533a6e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1cda533a6e + +open CertificateCells1cda533a6e +namespace CoverCertificatecbce86617c + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatecbce86617c + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c1_c3 : + adaptiveCoverCheck 5 (childHH (childLH (childLL phiAboveCell11011010))) = true := by + exact CoverCertificatecbce86617c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c0_c0_c2_6_00046 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3babcd7448 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3babcd7448 + +open CertificateCells3babcd7448 +namespace CoverCertificate5b9a8c2094 + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5b9a8c2094 + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c2 : + adaptiveCoverCheck 6 (childHL (childLL phiAboveCell11011010)) = true := by + exact CoverCertificate5b9a8c2094.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c0_c0_c3_6_00047 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsbbdc1f9510 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsbbdc1f9510 + +open CertificateCellsbbdc1f9510 +namespace CoverCertificatee500b98dc1 + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee500b98dc1 + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c3 : + adaptiveCoverCheck 6 (childHH (childLL phiAboveCell11011010)) = true := by + exact CoverCertificatee500b98dc1.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above +Leaf1101101_c0_c1_c0_c0_c0_4_00052 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells44a650755e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells44a650755e + +open CertificateCells44a650755e +namespace CoverCertificatec4a9c16244 + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 1 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 1 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 1 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 1 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec4a9c16244 + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c0_c0_c0 : + adaptiveCoverCheck 4 phiAboveCell110110101000 = true := by + exact CoverCertificatec4a9c16244.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above +Leaf1101101_c0_c1_c0_c0_c1_4_00053 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9dff8fd68c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9dff8fd68c + +open CertificateCells9dff8fd68c +namespace CoverCertificated58785d59b + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 1 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 1 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 1 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 1 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated58785d59b + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c0_c0_c1 : + adaptiveCoverCheck 4 phiAboveCell110110101001 = true := by + exact CoverCertificated58785d59b.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above +Leaf1101101_c0_c1_c0_c0_c2_4_00054 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0eb9c7dd4e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0eb9c7dd4e + +open CertificateCells0eb9c7dd4e +namespace CoverCertificate770e3357d2 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate770e3357d2 + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c0_c0_c2 : + adaptiveCoverCheck 4 phiAboveCell110110101002 = true := by + exact CoverCertificate770e3357d2.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above +Leaf1101101_c0_c1_c0_c0_c3_4_00055 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa1f8281244 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa1f8281244 + +open CertificateCellsa1f8281244 +namespace CoverCertificate4042eb5094 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4042eb5094 + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c0_c0_c3 : + adaptiveCoverCheck 4 phiAboveCell110110101003 = true := by + exact CoverCertificate4042eb5094.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above +Leaf1101101_c0_c1_c0_c1_c0_4_00058 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa31bfb0e48 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa31bfb0e48 + +open CertificateCellsa31bfb0e48 +namespace CoverCertificate9283dd1f18 + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 1 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 1 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 1 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 1 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 1 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 1 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 1 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 1 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell313 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate9283dd1f18 + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c0_c1_c0 : + adaptiveCoverCheck 4 phiAboveCell110110101010 = true := by + exact CoverCertificate9283dd1f18.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above +Leaf1101101_c0_c1_c0_c1_c1_4_00059 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsba54477f25 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsba54477f25 + +open CertificateCellsba54477f25 +namespace CoverCertificate5607aeacca + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 1 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 1 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 1 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 1 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 1 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 1 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 1 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 1 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell203 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5607aeacca + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c0_c1_c1 : + adaptiveCoverCheck 4 phiAboveCell110110101011 = true := by + exact CoverCertificate5607aeacca.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above +Leaf1101101_c0_c1_c0_c1_c2_4_00060 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells40378f08af + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells40378f08af + +open CertificateCells40378f08af +namespace CoverCertificate093986cbf5 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate093986cbf5 + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c0_c1_c2 : + adaptiveCoverCheck 4 phiAboveCell110110101012 = true := by + exact CoverCertificate093986cbf5.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above +Leaf1101101_c0_c1_c0_c1_c3_4_00061 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsbef31c9887 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsbef31c9887 + +open CertificateCellsbef31c9887 +namespace CoverCertificate4478c1ce2d + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4478c1ce2d + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c0_c1_c3 : + adaptiveCoverCheck 4 phiAboveCell110110101013 = true := by + exact CoverCertificate4478c1ce2d.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c0_c1_c0_c2_5_00063 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6837eba069 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6837eba069 + +open CertificateCells6837eba069 +namespace CoverCertificate52d1f78193 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate52d1f78193 + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c0_c2 : + adaptiveCoverCheck 5 (childHL (childLL (childLH phiAboveCell11011010))) = true := by + exact CoverCertificate52d1f78193.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c0_c1_c0_c3_5_00064 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells21829695a9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells21829695a9 + +open CertificateCells21829695a9 +namespace CoverCertificate263f6f95b0 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate263f6f95b0 + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c0_c3 : + adaptiveCoverCheck 5 (childHH (childLL (childLH phiAboveCell11011010))) = true := by + exact CoverCertificate263f6f95b0.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c0_c1_c1_c0_5_00067 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd170a2bed6 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd170a2bed6 + +open CertificateCellsd170a2bed6 +namespace CoverCertificatefad4f5904e + +private theorem checked0000 : adaptiveCoverCheck 1 cell0000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0000 (by decide +kernel) + +private theorem checked0001 : adaptiveCoverCheck 1 cell0001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0001 (by decide +kernel) + +private theorem checked0002 : adaptiveCoverCheck 1 cell0002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0002 (by decide +kernel) + +private theorem checked0003 : adaptiveCoverCheck 1 cell0003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0003 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 2 cell000 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell000 + checked0000 checked0001 checked0002 checked0003 + +private theorem checked001 : adaptiveCoverCheck 2 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 2 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 2 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 2 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 2 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 2 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 2 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 2 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 2 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 2 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 2 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 2 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 2 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 2 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 2 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 2 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 2 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 2 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 2 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 2 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 2 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 2 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 2 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 2 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 2 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 2 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 2 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 2 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 2 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 2 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 2 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell133 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatefad4f5904e + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c1_c0 : + adaptiveCoverCheck 5 (childLL (childLH (childLH phiAboveCell11011010))) = true := by + exact CoverCertificatefad4f5904e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c0_c1_c1_c1_5_00068 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3fed941c0c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3fed941c0c + +open CertificateCells3fed941c0c +namespace CoverCertificatec88446cc5e + +private theorem checked000 : adaptiveCoverCheck 2 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 2 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 2 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 2 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 2 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 2 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 2 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 2 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 2 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 2 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 2 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 2 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 2 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 2 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 2 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 2 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 2 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 2 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 2 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 2 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 2 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 2 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 2 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 2 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 2 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 2 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 2 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 2 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 2 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 2 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 2 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 2 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 2 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 2 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 2 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 2 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 2 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 2 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 2 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 2 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 2 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 2 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 2 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 2 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 2 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 2 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 2 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 2 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell313 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec88446cc5e + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c1_c1 : + adaptiveCoverCheck 5 (childLH (childLH (childLH phiAboveCell11011010))) = true := by + exact CoverCertificatec88446cc5e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c0_c1_c1_c2_5_00069 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb780467ddc + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb780467ddc + +open CertificateCellsb780467ddc +namespace CoverCertificate8053b84bb6 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate8053b84bb6 + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c1_c2 : + adaptiveCoverCheck 5 (childHL (childLH (childLH phiAboveCell11011010))) = true := by + exact CoverCertificate8053b84bb6.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c0_c1_c1_c3_5_00070 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse5752d8306 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse5752d8306 + +open CertificateCellse5752d8306 +namespace CoverCertificatea83bf6868e + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea83bf6868e + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c1_c3 : + adaptiveCoverCheck 5 (childHH (childLH (childLH phiAboveCell11011010))) = true := by + exact CoverCertificatea83bf6868e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c0_c1_c2_6_00072 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells18ee7077e5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells18ee7077e5 + +open CertificateCells18ee7077e5 +namespace CoverCertificatec458632307 + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec458632307 + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c2 : + adaptiveCoverCheck 6 (childHL (childLH phiAboveCell11011010)) = true := by + exact CoverCertificatec458632307.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c0_c1_c3_6_00073 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells481c5d2cb5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells481c5d2cb5 + +open CertificateCells481c5d2cb5 +namespace CoverCertificate5ac90060dc + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5ac90060dc + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c3 : + adaptiveCoverCheck 6 (childHH (childLH phiAboveCell11011010)) = true := by + exact CoverCertificate5ac90060dc.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c0_c2_7_00075 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc1762ca3ac + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc1762ca3ac + +open CertificateCellsc1762ca3ac +namespace CoverCertificatee2e2523660 + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee2e2523660 + +theorem e24KC2PhiAboveLeaf1101101_c0_c2 : + adaptiveCoverCheck 7 (childHL phiAboveCell11011010) = true := by + exact CoverCertificatee2e2523660.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c0_c3_7_00076 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells105558b317 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells105558b317 + +open CertificateCells105558b317 +namespace CoverCertificate2c610dcf32 + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate2c610dcf32 + +theorem e24KC2PhiAboveLeaf1101101_c0_c3 : + adaptiveCoverCheck 7 (childHH phiAboveCell11011010) = true := by + exact CoverCertificate2c610dcf32.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c0_c0_c0_5_00081 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells411895cea3 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells411895cea3 + +open CertificateCells411895cea3 +namespace CoverCertificate7a43bce112 + +private theorem checked000 : adaptiveCoverCheck 2 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 2 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 2 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 2 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 2 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 2 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 2 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 2 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 2 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 2 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 2 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 2 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 2 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 2 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 2 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 2 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 2 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 2 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 2 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 2 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 2 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 2 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 2 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 2 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 2 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 2 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 2 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 2 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 2 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 2 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 2 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 2 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 2 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 2 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 2 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 2 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 2 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 2 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 2 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 2 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 2 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 2 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 2 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 2 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 2 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 2 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 2 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 2 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell313 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate7a43bce112 + +theorem e24KC2PhiAboveLeaf1101101_c1_c0_c0_c0 : + adaptiveCoverCheck 5 (childLL (childLL (childLL phiAboveCell11011011))) = true := by + exact CoverCertificate7a43bce112.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle023.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle023.lean new file mode 100644 index 0000000000..d2f714e2ab --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle023.lean @@ -0,0 +1,9566 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch036`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CoverCertificate33f50162e9 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLL (childLH (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +end GerverSofa.PartE.CoverCertificate33f50162e9 + +namespace GerverSofa.PartE.CoverCertificatea52e53d66e + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLL (childLH (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatea52e53d66e + +namespace GerverSofa.PartE.CoverCertificate68f30819ed + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLL (childLH (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate68f30819ed + +namespace GerverSofa.PartE.CoverCertificatef50e05a2d9 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLL (childLH (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +end GerverSofa.PartE.CoverCertificatef50e05a2d9 + +namespace GerverSofa.PartE.CoverCertificate886cd459b6 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLL (childLH (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +end GerverSofa.PartE.CoverCertificate886cd459b6 + +namespace GerverSofa.PartE.CoverCertificate6334bf560d + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLL (childLH (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate6334bf560d + +namespace GerverSofa.PartE.CoverCertificate40b0f107ea + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childLH (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate40b0f107ea + +namespace GerverSofa.PartE.CoverCertificatee77541b394 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childLH (childLL (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatee77541b394 + +namespace GerverSofa.PartE.CoverCertificate5ffc90202d + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLH (childLH (childLL (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate5ffc90202d + +namespace GerverSofa.PartE.CoverCertificatee265233880 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLH (childLH (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +end GerverSofa.PartE.CoverCertificatee265233880 + +namespace GerverSofa.PartE.CoverCertificatef18591c0b6 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLH (childLH (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatef18591c0b6 + +namespace GerverSofa.PartE.CoverCertificatef7582d4176 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childLH (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificatef7582d4176 + +namespace GerverSofa.PartE.CoverCertificate042241a8e3 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLH (childLH (childLH (childLL (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate042241a8e3 + +namespace GerverSofa.PartE.CoverCertificateb30a576a6c + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLH (childLH (childLL (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +end GerverSofa.PartE.CoverCertificateb30a576a6c + +namespace GerverSofa.PartE.CoverCertificatee29f1ec14c + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLH (childLH (childLL (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatee29f1ec14c + +namespace GerverSofa.PartE.CoverCertificate7c835f5bcd + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLH (childLH (childLL (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate7c835f5bcd + +namespace GerverSofa.PartE.CoverCertificate1847743b04 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLH (childLL (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate1847743b04 + +namespace GerverSofa.PartE.CoverCertificated22de6b6b3 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLH (childLL (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificated22de6b6b3 + +namespace GerverSofa.PartE.CoverCertificatec9d844cfa1 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLL (childLH (childLH (childLL (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatec9d844cfa1 + +namespace GerverSofa.PartE.CoverCertificate0b1bb49c5e + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childLH (childLH (childLL (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate0b1bb49c5e + +namespace GerverSofa.PartE.CoverCertificatedcf0833de3 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLL (childLL (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +end GerverSofa.PartE.CoverCertificatedcf0833de3 + +namespace GerverSofa.PartE.CoverCertificate292a59b81b + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLL (childLL (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate292a59b81b + +namespace GerverSofa.PartE.CoverCertificate38c27d4b72 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLL (childLL (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate38c27d4b72 + +namespace GerverSofa.PartE.CoverCertificate80ac67346e + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLL (childLL (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate80ac67346e + +namespace GerverSofa.PartE.CoverCertificate6a3da1aa29 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLH (childLL (childLL (childLH (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate6a3da1aa29 + +namespace GerverSofa.PartE.CoverCertificatec0de2b5230 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLH (childLL (childLL (childLH (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatec0de2b5230 + +namespace GerverSofa.PartE.CoverCertificateeb67261010 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childLL (childLL (childLH (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificateeb67261010 + +namespace GerverSofa.PartE.CoverCertificate4ceb0bf432 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLH (childLL (childLL (childLH (childLH (childLH (childLL (childLH + (childLH (e24PhiAboveRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate4ceb0bf432 + +namespace GerverSofa.PartE.CoverCertificate1407c62e79 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLL (childLL (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +end GerverSofa.PartE.CoverCertificate1407c62e79 + +namespace GerverSofa.PartE.CoverCertificate3835f13788 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLL (childLL (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate3835f13788 + +namespace GerverSofa.PartE.CoverCertificate2b398d0240 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childLL (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate2b398d0240 + +namespace GerverSofa.PartE.CoverCertificate46690a85d6 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLL (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate46690a85d6 + +namespace GerverSofa.PartE.CoverCertificate79d55c50a4 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLL (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate79d55c50a4 + +namespace GerverSofa.PartE.CoverCertificate3882c70981 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLL (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell0020 : AngleCell := + childLL cell002 + +private abbrev cell0021 : AngleCell := + childLH cell002 + +private abbrev cell0022 : AngleCell := + childHL cell002 + +private abbrev cell0023 : AngleCell := + childHH cell002 + +private abbrev cell0030 : AngleCell := + childLL cell003 + +private abbrev cell0031 : AngleCell := + childLH cell003 + +private abbrev cell0032 : AngleCell := + childHL cell003 + +private abbrev cell0033 : AngleCell := + childHH cell003 + +end GerverSofa.PartE.CoverCertificate3882c70981 + +namespace GerverSofa.PartE.CoverCertificate749186c43c + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLL (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +end GerverSofa.PartE.CoverCertificate749186c43c + +namespace GerverSofa.PartE.CoverCertificate69709d6517 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLL (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate69709d6517 + +namespace GerverSofa.PartE.CoverCertificate9b05e6137c + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate9b05e6137c + +namespace GerverSofa.PartE.CoverCertificatea08e6229dd + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childLH (childLH (childLL (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatea08e6229dd + +namespace GerverSofa.PartE.CoverCertificate80957e0c30 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLH (childLH (childLH (childLL (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate80957e0c30 + +namespace GerverSofa.PartE.CoverCertificate6b5d6c54cf + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLH (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +end GerverSofa.PartE.CoverCertificate6b5d6c54cf + +namespace GerverSofa.PartE.CoverCertificate5e2d2d50e9 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLL (childLH (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate5e2d2d50e9 + +namespace GerverSofa.PartE.CoverCertificate4eafbde6a7 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLL (childLH (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate4eafbde6a7 + +namespace GerverSofa.PartE.CoverCertificateb57436bcb4 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLL (childLH (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificateb57436bcb4 + +namespace GerverSofa.PartE.CoverCertificate8e406c3a19 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childLH (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate8e406c3a19 + +namespace GerverSofa.PartE.CoverCertificate11dc9c1c2a + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate11dc9c1c2a + +namespace GerverSofa.PartE.CoverCertificate52298353c4 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLH (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate52298353c4 + +namespace GerverSofa.PartE.CertificateCells02f8aca2f2 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells02f8aca2f2 + +namespace GerverSofa.PartE.CertificateCellsca6ca7b54c + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsca6ca7b54c + +namespace GerverSofa.PartE.CertificateCells8161bed319 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells8161bed319 + +namespace GerverSofa.PartE.CertificateCells5f2ef3defa + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells5f2ef3defa + +namespace GerverSofa.PartE.CertificateCellsd4f6865820 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsd4f6865820 + +namespace GerverSofa.PartE.CertificateCellsaca7f76cfa + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsaca7f76cfa + +namespace GerverSofa.PartE.CertificateCellsa7ad4ac263 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsa7ad4ac263 + +namespace GerverSofa.PartE.CertificateCells53f8862830 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells53f8862830 + +namespace GerverSofa.PartE.CertificateCellsb6a37b0947 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsb6a37b0947 + +namespace GerverSofa.PartE.CertificateCellsbc3b77fd62 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsbc3b77fd62 + +namespace GerverSofa.PartE.CertificateCellsec2a80bcb9 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsec2a80bcb9 + +namespace GerverSofa.PartE.CertificateCells69b4ed96bb + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells69b4ed96bb + +namespace GerverSofa.PartE.CertificateCells81024818f0 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells81024818f0 + +namespace GerverSofa.PartE.CertificateCellsbaba88fb03 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsbaba88fb03 + +namespace GerverSofa.PartE.CertificateCells4431add919 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells4431add919 + +namespace GerverSofa.PartE.CertificateCells0c4c476da0 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells0c4c476da0 + +namespace GerverSofa.PartE.CertificateCells4cc4ec35a2 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells4cc4ec35a2 + +namespace GerverSofa.PartE.CertificateCells35cb6fddbf + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells35cb6fddbf + +namespace GerverSofa.PartE.CertificateCells23ac2ec29f + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011012` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011012 : AngleCell := + childHL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells23ac2ec29f + +namespace GerverSofa.PartE.CertificateCellsfeaf82eaaf + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011013` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011013 : AngleCell := + childHH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsfeaf82eaaf + +namespace GerverSofa.PartE.CertificateCellsb3a5df470b + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011100 : AngleCell := + childLL (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsb3a5df470b + +namespace GerverSofa.PartE.CertificateCells347f84d8ab + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011100 : AngleCell := + childLL (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells347f84d8ab + +namespace GerverSofa.PartE.CertificateCells7c0e2d8793 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011100 : AngleCell := + childLL (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells7c0e2d8793 + +namespace GerverSofa.PartE.CertificateCells7ce200bf6e + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011100 : AngleCell := + childLL (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells7ce200bf6e + +namespace GerverSofa.PartE.CertificateCells947c600e46 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011100 : AngleCell := + childLL (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells947c600e46 + +namespace GerverSofa.PartE.CertificateCells8f0ac2a0b1 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011100 : AngleCell := + childLL (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells8f0ac2a0b1 + +namespace GerverSofa.PartE.CertificateCells3019c743c4 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011100 : AngleCell := + childLL (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells3019c743c4 + +namespace GerverSofa.PartE.CertificateCellsa28fd06134 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011100 : AngleCell := + childLL (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsa28fd06134 + +namespace GerverSofa.PartE.CertificateCells77eee4a3e4 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011100 : AngleCell := + childLL (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells77eee4a3e4 + +namespace GerverSofa.PartE.CertificateCells49eb854006 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011100 : AngleCell := + childLL (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells49eb854006 + +namespace GerverSofa.PartE.CertificateCellsfd1ec1f302 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011100 : AngleCell := + childLL (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsfd1ec1f302 + +namespace GerverSofa.PartE.CertificateCellsc041f3b547 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011100 : AngleCell := + childLL (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsc041f3b547 + +namespace GerverSofa.PartE.CertificateCells4859223aba + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011100 : AngleCell := + childLL (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells4859223aba + +namespace GerverSofa.PartE.CertificateCellsfd6149c12c + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011101 : AngleCell := + childLH (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsfd6149c12c + +namespace GerverSofa.PartE.CertificateCells858f68cb01 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011101 : AngleCell := + childLH (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells858f68cb01 + +namespace GerverSofa.PartE.CertificateCellsfd737d0524 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011101 : AngleCell := + childLH (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsfd737d0524 + +namespace GerverSofa.PartE.CertificateCells8872ea9267 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011101 : AngleCell := + childLH (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells8872ea9267 + +namespace GerverSofa.PartE.CertificateCells911bdd7a98 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011102` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011102 : AngleCell := + childHL (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells911bdd7a98 + +namespace GerverSofa.PartE.CertificateCells6b2d569c3f + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011103` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011103 : AngleCell := + childHH (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells6b2d569c3f + +namespace GerverSofa.PartE.CertificateCells692b3d6bf8 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011110 : AngleCell := + childLL (childLH (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells692b3d6bf8 + +namespace GerverSofa.PartE.CertificateCells6503060a21 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011110 : AngleCell := + childLL (childLH (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells6503060a21 + +namespace GerverSofa.PartE.CertificateCells262d88f1dc + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011110 : AngleCell := + childLL (childLH (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells262d88f1dc + +namespace GerverSofa.PartE.CertificateCellse46caf457c + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011110 : AngleCell := + childLL (childLH (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellse46caf457c + +namespace GerverSofa.PartE.CertificateCells16ed6aeb9e + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011110 : AngleCell := + childLL (childLH (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells16ed6aeb9e + +namespace GerverSofa.PartE.CertificateCellsde6b2a5e55 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011110 : AngleCell := + childLL (childLH (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsde6b2a5e55 + +namespace GerverSofa.PartE.CertificateCells522fe632f2 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011110 : AngleCell := + childLL (childLH (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells522fe632f2 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.PhiAbove.Leaf00082`. +* `KernelOnly.PartE.PhiAbove.Leaf00083`. +* `KernelOnly.PartE.PhiAbove.Leaf00084`. +* `KernelOnly.PartE.PhiAbove.Leaf00087`. +* `KernelOnly.PartE.PhiAbove.Leaf00088`. +* `KernelOnly.PartE.PhiAbove.Leaf00089`. +* `KernelOnly.PartE.PhiAbove.Leaf00090`. +* `KernelOnly.PartE.PhiAbove.Leaf00092`. +* `KernelOnly.PartE.PhiAbove.Leaf00093`. +* `KernelOnly.PartE.PhiAbove.Leaf00097`. +* `KernelOnly.PartE.PhiAbove.Leaf00098`. +* `KernelOnly.PartE.PhiAbove.Leaf00099`. +* `KernelOnly.PartE.PhiAbove.Leaf00100`. +* `KernelOnly.PartE.PhiAbove.Leaf00102`. +* `KernelOnly.PartE.PhiAbove.Leaf00103`. +* `KernelOnly.PartE.PhiAbove.Leaf00104`. +* `KernelOnly.PartE.PhiAbove.Leaf00106`. +* `KernelOnly.PartE.PhiAbove.Leaf00107`. +* `KernelOnly.PartE.PhiAbove.Leaf00109`. +* `KernelOnly.PartE.PhiAbove.Leaf00110`. +* `KernelOnly.PartE.PhiAbove.Leaf00118`. +* `KernelOnly.PartE.PhiAbove.Leaf00119`. +* `KernelOnly.PartE.PhiAbove.Leaf00120`. +* `KernelOnly.PartE.PhiAbove.Leaf00121`. +* `KernelOnly.PartE.PhiAbove.Leaf00125`. +* `KernelOnly.PartE.PhiAbove.Leaf00126`. +* `KernelOnly.PartE.PhiAbove.Leaf00127`. +* `KernelOnly.PartE.PhiAbove.Leaf00128`. +* `KernelOnly.PartE.PhiAbove.Leaf00130`. +* `KernelOnly.PartE.PhiAbove.Leaf00131`. +* `KernelOnly.PartE.PhiAbove.Leaf00132`. +* `KernelOnly.PartE.PhiAbove.Leaf00134`. +* `KernelOnly.PartE.PhiAbove.Leaf00135`. +* `KernelOnly.PartE.PhiAbove.Leaf00138`. +* `KernelOnly.PartE.PhiAbove.Leaf00139`. +* `KernelOnly.PartE.PhiAbove.Leaf00140`. +* `KernelOnly.PartE.PhiAbove.Leaf00141`. +* `KernelOnly.PartE.PhiAbove.Leaf00143`. +* `KernelOnly.PartE.PhiAbove.Leaf00144`. +* `KernelOnly.PartE.PhiAbove.Leaf00150`. +* `KernelOnly.PartE.PhiAbove.Leaf00152`. +* `KernelOnly.PartE.PhiAbove.Leaf00153`. +* `KernelOnly.PartE.PhiAbove.Leaf00154`. +* `KernelOnly.PartE.PhiAbove.Leaf00155`. +* `KernelOnly.PartE.PhiAbove.Leaf00157`. +* `KernelOnly.PartE.PhiAbove.Leaf00158`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c0_c0_c1_5_00082 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells02f8aca2f2 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells02f8aca2f2 + +open CertificateCells02f8aca2f2 +namespace CoverCertificate33f50162e9 + +private theorem checked000 : adaptiveCoverCheck 2 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 2 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 2 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 2 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 2 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 2 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 2 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 2 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 2 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 2 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 2 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 2 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 2 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 2 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 2 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 2 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 2 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 2 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 2 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 2 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 2 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 2 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 2 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 2 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 2 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 2 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 2 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 2 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 2 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 2 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 2 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 2 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 2 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 2 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 2 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 2 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 2 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 2 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 2 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 2 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 2 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 2 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 2 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 2 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 2 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 2 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 2 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 2 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell313 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate33f50162e9 + +theorem e24KC2PhiAboveLeaf1101101_c1_c0_c0_c1 : + adaptiveCoverCheck 5 (childLH (childLL (childLL phiAboveCell11011011))) = true := by + exact CoverCertificate33f50162e9.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c0_c0_c2_5_00083 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsca6ca7b54c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsca6ca7b54c + +open CertificateCellsca6ca7b54c +namespace CoverCertificatea52e53d66e + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea52e53d66e + +theorem e24KC2PhiAboveLeaf1101101_c1_c0_c0_c2 : + adaptiveCoverCheck 5 (childHL (childLL (childLL phiAboveCell11011011))) = true := by + exact CoverCertificatea52e53d66e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c0_c0_c3_5_00084 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8161bed319 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8161bed319 + +open CertificateCells8161bed319 +namespace CoverCertificate68f30819ed + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate68f30819ed + +theorem e24KC2PhiAboveLeaf1101101_c1_c0_c0_c3 : + adaptiveCoverCheck 5 (childHH (childLL (childLL phiAboveCell11011011))) = true := by + exact CoverCertificate68f30819ed.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c0_c1_c0_5_00087 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5f2ef3defa + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5f2ef3defa + +open CertificateCells5f2ef3defa +namespace CoverCertificatef50e05a2d9 + +private theorem checked000 : adaptiveCoverCheck 2 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 2 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 2 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 2 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 2 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 2 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 2 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 2 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 2 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 2 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 2 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 2 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 2 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 2 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 2 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 2 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 2 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 2 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 2 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 2 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 2 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 2 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 2 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 2 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 2 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 2 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 2 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 2 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 2 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 2 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 2 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 2 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 2 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 2 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 2 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 2 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 2 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 2 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 2 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 2 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 2 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 2 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 2 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 2 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 2 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 2 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 2 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 2 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell313 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef50e05a2d9 + +theorem e24KC2PhiAboveLeaf1101101_c1_c0_c1_c0 : + adaptiveCoverCheck 5 (childLL (childLH (childLL phiAboveCell11011011))) = true := by + exact CoverCertificatef50e05a2d9.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c0_c1_c1_5_00088 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd4f6865820 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd4f6865820 + +open CertificateCellsd4f6865820 +namespace CoverCertificate886cd459b6 + +private theorem checked000 : adaptiveCoverCheck 2 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 2 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 2 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 2 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 2 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 2 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 2 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 2 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 2 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 2 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 2 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 2 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 2 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 2 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 2 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 2 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 2 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 2 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 2 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 2 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 2 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 2 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 2 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 2 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 2 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 2 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 2 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 2 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 2 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 2 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 2 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 2 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 2 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 2 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 2 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 2 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 2 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 2 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 2 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 2 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 2 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 2 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 2 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 2 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell303 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate886cd459b6 + +theorem e24KC2PhiAboveLeaf1101101_c1_c0_c1_c1 : + adaptiveCoverCheck 5 (childLH (childLH (childLL phiAboveCell11011011))) = true := by + exact CoverCertificate886cd459b6.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c0_c1_c2_5_00089 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsaca7f76cfa + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsaca7f76cfa + +open CertificateCellsaca7f76cfa +namespace CoverCertificate6334bf560d + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate6334bf560d + +theorem e24KC2PhiAboveLeaf1101101_c1_c0_c1_c2 : + adaptiveCoverCheck 5 (childHL (childLH (childLL phiAboveCell11011011))) = true := by + exact CoverCertificate6334bf560d.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c0_c1_c3_5_00090 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa7ad4ac263 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa7ad4ac263 + +open CertificateCellsa7ad4ac263 +namespace CoverCertificate40b0f107ea + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate40b0f107ea + +theorem e24KC2PhiAboveLeaf1101101_c1_c0_c1_c3 : + adaptiveCoverCheck 5 (childHH (childLH (childLL phiAboveCell11011011))) = true := by + exact CoverCertificate40b0f107ea.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c0_c2_6_00092 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells53f8862830 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells53f8862830 + +open CertificateCells53f8862830 +namespace CoverCertificatee77541b394 + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee77541b394 + +theorem e24KC2PhiAboveLeaf1101101_c1_c0_c2 : + adaptiveCoverCheck 6 (childHL (childLL phiAboveCell11011011)) = true := by + exact CoverCertificatee77541b394.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c0_c3_6_00093 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb6a37b0947 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb6a37b0947 + +open CertificateCellsb6a37b0947 +namespace CoverCertificate5ffc90202d + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5ffc90202d + +theorem e24KC2PhiAboveLeaf1101101_c1_c0_c3 : + adaptiveCoverCheck 6 (childHH (childLL phiAboveCell11011011)) = true := by + exact CoverCertificate5ffc90202d.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c1_c0_c0_5_00097 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsbc3b77fd62 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsbc3b77fd62 + +open CertificateCellsbc3b77fd62 +namespace CoverCertificatee265233880 + +private theorem checked000 : adaptiveCoverCheck 2 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 2 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 2 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 2 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 2 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 2 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 2 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 2 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 2 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 2 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 2 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 2 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell023 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 2 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 2 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 2 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 2 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell103 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee265233880 + +theorem e24KC2PhiAboveLeaf1101101_c1_c1_c0_c0 : + adaptiveCoverCheck 5 (childLL (childLL (childLH phiAboveCell11011011))) = true := by + exact CoverCertificatee265233880.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c1_c0_c1_5_00098 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsec2a80bcb9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsec2a80bcb9 + +open CertificateCellsec2a80bcb9 +namespace CoverCertificatef18591c0b6 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef18591c0b6 + +theorem e24KC2PhiAboveLeaf1101101_c1_c1_c0_c1 : + adaptiveCoverCheck 5 (childLH (childLL (childLH phiAboveCell11011011))) = true := by + exact CoverCertificatef18591c0b6.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c1_c0_c2_5_00099 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells69b4ed96bb + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells69b4ed96bb + +open CertificateCells69b4ed96bb +namespace CoverCertificatef7582d4176 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef7582d4176 + +theorem e24KC2PhiAboveLeaf1101101_c1_c1_c0_c2 : + adaptiveCoverCheck 5 (childHL (childLL (childLH phiAboveCell11011011))) = true := by + exact CoverCertificatef7582d4176.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c1_c0_c3_5_00100 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells81024818f0 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells81024818f0 + +open CertificateCells81024818f0 +namespace CoverCertificate042241a8e3 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate042241a8e3 + +theorem e24KC2PhiAboveLeaf1101101_c1_c1_c0_c3 : + adaptiveCoverCheck 5 (childHH (childLL (childLH phiAboveCell11011011))) = true := by + exact CoverCertificate042241a8e3.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c1_c1_6_00102 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsbaba88fb03 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsbaba88fb03 + +open CertificateCellsbaba88fb03 +namespace CoverCertificateb30a576a6c + +private theorem checked000 : adaptiveCoverCheck 3 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 3 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 3 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 3 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 3 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 3 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 3 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 3 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 3 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 3 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 3 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 3 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 3 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 3 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 3 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 3 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 3 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 3 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 3 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 3 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 3 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 3 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 3 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 3 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 3 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 3 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 3 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 3 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 3 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 3 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 3 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 3 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 3 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 3 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 3 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 3 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 3 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 3 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 3 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 3 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 3 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 3 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 3 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 3 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 3 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 3 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 3 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 3 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell313 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateb30a576a6c + +theorem e24KC2PhiAboveLeaf1101101_c1_c1_c1 : + adaptiveCoverCheck 6 (childLH (childLH phiAboveCell11011011)) = true := by + exact CoverCertificateb30a576a6c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c1_c2_6_00103 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4431add919 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4431add919 + +open CertificateCells4431add919 +namespace CoverCertificatee29f1ec14c + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee29f1ec14c + +theorem e24KC2PhiAboveLeaf1101101_c1_c1_c2 : + adaptiveCoverCheck 6 (childHL (childLH phiAboveCell11011011)) = true := by + exact CoverCertificatee29f1ec14c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c1_c3_6_00104 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0c4c476da0 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0c4c476da0 + +open CertificateCells0c4c476da0 +namespace CoverCertificate7c835f5bcd + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate7c835f5bcd + +theorem e24KC2PhiAboveLeaf1101101_c1_c1_c3 : + adaptiveCoverCheck 6 (childHH (childLH phiAboveCell11011011)) = true := by + exact CoverCertificate7c835f5bcd.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c2_7_00106 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4cc4ec35a2 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4cc4ec35a2 + +open CertificateCells4cc4ec35a2 +namespace CoverCertificate1847743b04 + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1847743b04 + +theorem e24KC2PhiAboveLeaf1101101_c1_c2 : + adaptiveCoverCheck 7 (childHL phiAboveCell11011011) = true := by + exact CoverCertificate1847743b04.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c1_c3_7_00107 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells35cb6fddbf + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells35cb6fddbf + +open CertificateCells35cb6fddbf +namespace CoverCertificated22de6b6b3 + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated22de6b6b3 + +theorem e24KC2PhiAboveLeaf1101101_c1_c3 : + adaptiveCoverCheck 7 (childHH phiAboveCell11011011) = true := by + exact CoverCertificated22de6b6b3.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c2_8_00109 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells23ac2ec29f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells23ac2ec29f + +open CertificateCells23ac2ec29f +namespace CoverCertificatec9d844cfa1 + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec9d844cfa1 + +theorem e24KC2PhiAboveLeaf1101101_c2 : + adaptiveCoverCheck 8 phiAboveCell11011012 = true := by + exact CoverCertificatec9d844cfa1.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101101_c3_8_00110 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsfeaf82eaaf + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsfeaf82eaaf + +open CertificateCellsfeaf82eaaf +namespace CoverCertificate0b1bb49c5e + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0b1bb49c5e + +theorem e24KC2PhiAboveLeaf1101101_c3 : + adaptiveCoverCheck 8 phiAboveCell11011013 = true := by + exact CoverCertificate0b1bb49c5e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c0_c0_c0_6_00118 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb3a5df470b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb3a5df470b + +open CertificateCellsb3a5df470b +namespace CoverCertificatedcf0833de3 + +private theorem checked000 : adaptiveCoverCheck 3 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 3 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 3 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 3 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 3 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 3 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 3 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 3 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 3 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 3 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 3 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 3 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 3 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 3 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 3 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 3 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 3 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 3 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 3 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 3 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 3 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 3 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 3 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 3 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 3 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 3 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 3 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 3 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 3 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 3 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 3 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 3 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 3 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 3 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 3 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 3 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 3 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 3 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 3 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 3 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 3 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 3 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 3 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 3 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 3 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 3 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 3 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 3 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell313 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatedcf0833de3 + +theorem e24KC2PhiAboveLeaf1101110_c0_c0_c0 : + adaptiveCoverCheck 6 (childLL (childLL phiAboveCell11011100)) = true := by + exact CoverCertificatedcf0833de3.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c0_c0_c1_6_00119 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells347f84d8ab + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells347f84d8ab + +open CertificateCells347f84d8ab +namespace CoverCertificate292a59b81b + +private theorem checked000 : adaptiveCoverCheck 3 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 3 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 3 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 3 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 3 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 3 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 3 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 3 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 3 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 3 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 3 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 3 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 3 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 3 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 3 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 3 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 3 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 3 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 3 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 3 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 3 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 3 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 3 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 3 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 3 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 3 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 3 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 3 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 3 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 3 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 3 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 3 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 3 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 3 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 3 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 3 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 3 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 3 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 3 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 3 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 3 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 3 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 3 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 3 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 3 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 3 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 3 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 3 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell313 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 3 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 3 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 3 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 3 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate292a59b81b + +theorem e24KC2PhiAboveLeaf1101110_c0_c0_c1 : + adaptiveCoverCheck 6 (childLH (childLL phiAboveCell11011100)) = true := by + exact CoverCertificate292a59b81b.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c0_c0_c2_6_00120 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells7c0e2d8793 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells7c0e2d8793 + +open CertificateCells7c0e2d8793 +namespace CoverCertificate38c27d4b72 + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate38c27d4b72 + +theorem e24KC2PhiAboveLeaf1101110_c0_c0_c2 : + adaptiveCoverCheck 6 (childHL (childLL phiAboveCell11011100)) = true := by + exact CoverCertificate38c27d4b72.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c0_c0_c3_6_00121 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells7ce200bf6e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells7ce200bf6e + +open CertificateCells7ce200bf6e +namespace CoverCertificate80ac67346e + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate80ac67346e + +theorem e24KC2PhiAboveLeaf1101110_c0_c0_c3 : + adaptiveCoverCheck 6 (childHH (childLL phiAboveCell11011100)) = true := by + exact CoverCertificate80ac67346e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c0_c1_c0_c0_5_00125 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells947c600e46 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells947c600e46 + +open CertificateCells947c600e46 +namespace CoverCertificate6a3da1aa29 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate6a3da1aa29 + +theorem e24KC2PhiAboveLeaf1101110_c0_c1_c0_c0 : + adaptiveCoverCheck 5 (childLL (childLL (childLH phiAboveCell11011100))) = true := by + exact CoverCertificate6a3da1aa29.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c0_c1_c0_c1_5_00126 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8f0ac2a0b1 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8f0ac2a0b1 + +open CertificateCells8f0ac2a0b1 +namespace CoverCertificatec0de2b5230 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec0de2b5230 + +theorem e24KC2PhiAboveLeaf1101110_c0_c1_c0_c1 : + adaptiveCoverCheck 5 (childLH (childLL (childLH phiAboveCell11011100))) = true := by + exact CoverCertificatec0de2b5230.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c0_c1_c0_c2_5_00127 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3019c743c4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3019c743c4 + +open CertificateCells3019c743c4 +namespace CoverCertificateeb67261010 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateeb67261010 + +theorem e24KC2PhiAboveLeaf1101110_c0_c1_c0_c2 : + adaptiveCoverCheck 5 (childHL (childLL (childLH phiAboveCell11011100))) = true := by + exact CoverCertificateeb67261010.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c0_c1_c0_c3_5_00128 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa28fd06134 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa28fd06134 + +open CertificateCellsa28fd06134 +namespace CoverCertificate4ceb0bf432 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4ceb0bf432 + +theorem e24KC2PhiAboveLeaf1101110_c0_c1_c0_c3 : + adaptiveCoverCheck 5 (childHH (childLL (childLH phiAboveCell11011100))) = true := by + exact CoverCertificate4ceb0bf432.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c0_c1_c1_6_00130 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells77eee4a3e4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells77eee4a3e4 + +open CertificateCells77eee4a3e4 +namespace CoverCertificate1407c62e79 + +private theorem checked000 : adaptiveCoverCheck 3 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 3 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 3 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 3 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 3 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 3 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 3 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 3 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 3 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 3 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 3 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 3 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 3 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 3 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 3 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 3 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 3 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 3 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 3 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 3 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 3 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 3 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 3 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 3 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 3 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 3 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 3 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 3 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 3 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 3 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 3 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 3 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 3 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 3 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 3 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 3 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 3 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 3 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 3 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 3 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 3 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 3 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 3 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 3 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 3 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 3 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 3 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 3 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell313 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1407c62e79 + +theorem e24KC2PhiAboveLeaf1101110_c0_c1_c1 : + adaptiveCoverCheck 6 (childLH (childLH phiAboveCell11011100)) = true := by + exact CoverCertificate1407c62e79.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c0_c1_c2_6_00131 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells49eb854006 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells49eb854006 + +open CertificateCells49eb854006 +namespace CoverCertificate3835f13788 + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3835f13788 + +theorem e24KC2PhiAboveLeaf1101110_c0_c1_c2 : + adaptiveCoverCheck 6 (childHL (childLH phiAboveCell11011100)) = true := by + exact CoverCertificate3835f13788.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c0_c1_c3_6_00132 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsfd1ec1f302 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsfd1ec1f302 + +open CertificateCellsfd1ec1f302 +namespace CoverCertificate2b398d0240 + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate2b398d0240 + +theorem e24KC2PhiAboveLeaf1101110_c0_c1_c3 : + adaptiveCoverCheck 6 (childHH (childLH phiAboveCell11011100)) = true := by + exact CoverCertificate2b398d0240.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c0_c2_7_00134 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc041f3b547 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc041f3b547 + +open CertificateCellsc041f3b547 +namespace CoverCertificate46690a85d6 + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate46690a85d6 + +theorem e24KC2PhiAboveLeaf1101110_c0_c2 : + adaptiveCoverCheck 7 (childHL phiAboveCell11011100) = true := by + exact CoverCertificate46690a85d6.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c0_c3_7_00135 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4859223aba + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4859223aba + +open CertificateCells4859223aba +namespace CoverCertificate79d55c50a4 + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate79d55c50a4 + +theorem e24KC2PhiAboveLeaf1101110_c0_c3 : + adaptiveCoverCheck 7 (childHH phiAboveCell11011100) = true := by + exact CoverCertificate79d55c50a4.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c1_c0_7_00138 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsfd6149c12c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsfd6149c12c + +open CertificateCellsfd6149c12c +namespace CoverCertificate3882c70981 + +private theorem checked0020 : adaptiveCoverCheck 3 cell0020 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0020 (by decide +kernel) + +private theorem checked0021 : adaptiveCoverCheck 3 cell0021 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0021 (by decide +kernel) + +private theorem checked0022 : adaptiveCoverCheck 3 cell0022 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0022 (by decide +kernel) + +private theorem checked0023 : adaptiveCoverCheck 3 cell0023 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0023 (by decide +kernel) + +private theorem checked0030 : adaptiveCoverCheck 3 cell0030 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0030 (by decide +kernel) + +private theorem checked0031 : adaptiveCoverCheck 3 cell0031 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0031 (by decide +kernel) + +private theorem checked0032 : adaptiveCoverCheck 3 cell0032 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0032 (by decide +kernel) + +private theorem checked0033 : adaptiveCoverCheck 3 cell0033 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0033 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 4 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 4 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 4 cell002 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell002 + checked0020 checked0021 checked0022 checked0023 + +private theorem checked003 : adaptiveCoverCheck 4 cell003 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell003 + checked0030 checked0031 checked0032 checked0033 + +private theorem checked010 : adaptiveCoverCheck 4 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 4 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 4 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 4 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 4 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 4 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 4 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 4 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 4 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 4 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 4 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 4 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 4 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 4 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 4 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 4 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 4 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 4 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 4 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 4 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 4 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 4 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 4 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 4 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 4 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 4 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 4 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 4 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 4 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 4 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 4 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 4 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 4 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 4 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 4 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 4 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 4 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 4 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 4 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 4 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 4 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 4 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 4 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 4 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell313 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3882c70981 + +theorem e24KC2PhiAboveLeaf1101110_c1_c0 : + adaptiveCoverCheck 7 (childLL phiAboveCell11011101) = true := by + exact CoverCertificate3882c70981.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c1_c1_7_00139 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells858f68cb01 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells858f68cb01 + +open CertificateCells858f68cb01 +namespace CoverCertificate749186c43c + +private theorem checked000 : adaptiveCoverCheck 4 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 4 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 4 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 4 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 4 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 4 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 4 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 4 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 4 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 4 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 4 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 4 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 4 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 4 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 4 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 4 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 4 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 4 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 4 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 4 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 4 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 4 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 4 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 4 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 4 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 4 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 4 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 4 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 4 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 4 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 4 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 4 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 4 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 4 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 4 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 4 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 4 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 4 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 4 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 4 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 4 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 4 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 4 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 4 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 4 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 4 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 4 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 4 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell313 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate749186c43c + +theorem e24KC2PhiAboveLeaf1101110_c1_c1 : + adaptiveCoverCheck 7 (childLH phiAboveCell11011101) = true := by + exact CoverCertificate749186c43c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c1_c2_7_00140 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsfd737d0524 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsfd737d0524 + +open CertificateCellsfd737d0524 +namespace CoverCertificate69709d6517 + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate69709d6517 + +theorem e24KC2PhiAboveLeaf1101110_c1_c2 : + adaptiveCoverCheck 7 (childHL phiAboveCell11011101) = true := by + exact CoverCertificate69709d6517.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c1_c3_7_00141 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8872ea9267 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8872ea9267 + +open CertificateCells8872ea9267 +namespace CoverCertificate9b05e6137c + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate9b05e6137c + +theorem e24KC2PhiAboveLeaf1101110_c1_c3 : + adaptiveCoverCheck 7 (childHH phiAboveCell11011101) = true := by + exact CoverCertificate9b05e6137c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c2_8_00143 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells911bdd7a98 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells911bdd7a98 + +open CertificateCells911bdd7a98 +namespace CoverCertificatea08e6229dd + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea08e6229dd + +theorem e24KC2PhiAboveLeaf1101110_c2 : + adaptiveCoverCheck 8 phiAboveCell11011102 = true := by + exact CoverCertificatea08e6229dd.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101110_c3_8_00144 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6b2d569c3f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6b2d569c3f + +open CertificateCells6b2d569c3f +namespace CoverCertificate80957e0c30 + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate80957e0c30 + +theorem e24KC2PhiAboveLeaf1101110_c3 : + adaptiveCoverCheck 8 phiAboveCell11011103 = true := by + exact CoverCertificate80957e0c30.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101111_c0_c0_7_00150 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells692b3d6bf8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells692b3d6bf8 + +open CertificateCells692b3d6bf8 +namespace CoverCertificate6b5d6c54cf + +private theorem checked000 : adaptiveCoverCheck 4 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 4 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 4 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 4 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 4 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 4 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 4 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 4 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 4 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 4 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 4 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 4 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 4 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 4 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 4 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 4 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 4 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 4 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 4 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 4 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 4 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 4 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 4 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 4 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 4 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 4 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 4 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 4 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 4 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 4 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 4 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 4 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 4 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 4 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 4 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 4 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 4 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 4 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 4 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 4 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 4 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 4 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 4 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 4 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 4 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 4 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 4 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 4 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell313 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate6b5d6c54cf + +theorem e24KC2PhiAboveLeaf1101111_c0_c0 : + adaptiveCoverCheck 7 (childLL phiAboveCell11011110) = true := by + exact CoverCertificate6b5d6c54cf.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101111_c0_c1_c0_6_00152 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6503060a21 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6503060a21 + +open CertificateCells6503060a21 +namespace CoverCertificate5e2d2d50e9 + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5e2d2d50e9 + +theorem e24KC2PhiAboveLeaf1101111_c0_c1_c0 : + adaptiveCoverCheck 6 (childLL (childLH phiAboveCell11011110)) = true := by + exact CoverCertificate5e2d2d50e9.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101111_c0_c1_c1_6_00153 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells262d88f1dc + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells262d88f1dc + +open CertificateCells262d88f1dc +namespace CoverCertificate4eafbde6a7 + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4eafbde6a7 + +theorem e24KC2PhiAboveLeaf1101111_c0_c1_c1 : + adaptiveCoverCheck 6 (childLH (childLH phiAboveCell11011110)) = true := by + exact CoverCertificate4eafbde6a7.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101111_c0_c1_c2_6_00154 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse46caf457c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse46caf457c + +open CertificateCellse46caf457c +namespace CoverCertificateb57436bcb4 + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateb57436bcb4 + +theorem e24KC2PhiAboveLeaf1101111_c0_c1_c2 : + adaptiveCoverCheck 6 (childHL (childLH phiAboveCell11011110)) = true := by + exact CoverCertificateb57436bcb4.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101111_c0_c1_c3_6_00155 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells16ed6aeb9e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells16ed6aeb9e + +open CertificateCells16ed6aeb9e +namespace CoverCertificate8e406c3a19 + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate8e406c3a19 + +theorem e24KC2PhiAboveLeaf1101111_c0_c1_c3 : + adaptiveCoverCheck 6 (childHH (childLH phiAboveCell11011110)) = true := by + exact CoverCertificate8e406c3a19.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101111_c0_c2_7_00157 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsde6b2a5e55 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsde6b2a5e55 + +open CertificateCellsde6b2a5e55 +namespace CoverCertificate11dc9c1c2a + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate11dc9c1c2a + +theorem e24KC2PhiAboveLeaf1101111_c0_c2 : + adaptiveCoverCheck 7 (childHL phiAboveCell11011110) = true := by + exact CoverCertificate11dc9c1c2a.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101111_c0_c3_7_00158 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells522fe632f2 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells522fe632f2 + +open CertificateCells522fe632f2 +namespace CoverCertificate52298353c4 + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate52298353c4 + +theorem e24KC2PhiAboveLeaf1101111_c0_c3 : + adaptiveCoverCheck 7 (childHH phiAboveCell11011110) = true := by + exact CoverCertificate52298353c4.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle024.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle024.lean new file mode 100644 index 0000000000..32c18f00e4 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle024.lean @@ -0,0 +1,8995 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch037`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CoverCertificate276a139af5 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLH (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate276a139af5 + +namespace GerverSofa.PartE.CoverCertificatee02eecb06a + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLH (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatee02eecb06a + +namespace GerverSofa.PartE.CoverCertificate783b4cee82 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLH (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate783b4cee82 + +namespace GerverSofa.PartE.CoverCertificate90fa7d5883 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLH (childLH (childLH (childLH (childLL (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate90fa7d5883 + +namespace GerverSofa.PartE.CoverCertificate0133fea31e + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLH (childLH (childLH (childLL (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate0133fea31e + +namespace GerverSofa.PartE.CoverCertificate3a1ac6bacd + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLH (childLH (childLH (childLL (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate3a1ac6bacd + +namespace GerverSofa.PartE.CoverCertificateff206b6a85 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLL (childLL (childLL (childLL (childLH (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +end GerverSofa.PartE.CoverCertificateff206b6a85 + +namespace GerverSofa.PartE.CoverCertificate71299415d1 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLL (childLL (childLL (childLL (childLH (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate71299415d1 + +namespace GerverSofa.PartE.CoverCertificate176775891f + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLL (childLL (childLL (childLL (childLH (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate176775891f + +namespace GerverSofa.PartE.CoverCertificate09737eefc3 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLL (childLL (childLL (childLL (childLH (childLH (childLH + (e24PhiAboveRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate09737eefc3 + +namespace GerverSofa.PartE.CoverCertificatea812690e7e + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLL (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +end GerverSofa.PartE.CoverCertificatea812690e7e + +namespace GerverSofa.PartE.CoverCertificate35de9fca65 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLL (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate35de9fca65 + +namespace GerverSofa.PartE.CoverCertificatee6cd0593fa + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLL (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatee6cd0593fa + +namespace GerverSofa.PartE.CoverCertificate30c4e37720 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLL (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate30c4e37720 + +namespace GerverSofa.PartE.CoverCertificatedfaf53edbb + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLL (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatedfaf53edbb + +namespace GerverSofa.PartE.CoverCertificatea7d865eaeb + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLL (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificatea7d865eaeb + +namespace GerverSofa.PartE.CoverCertificate59a502ab21 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate59a502ab21 + +namespace GerverSofa.PartE.CoverCertificatedb9da39caf + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLH (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatedb9da39caf + +namespace GerverSofa.PartE.CoverCertificateefd199c221 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLH (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificateefd199c221 + +namespace GerverSofa.PartE.CoverCertificatedb27ad4afe + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificatedb27ad4afe + +namespace GerverSofa.PartE.CoverCertificate05565992a9 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLH (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate05565992a9 + +namespace GerverSofa.PartE.CoverCertificatec7fa9ff5d0 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLH (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatec7fa9ff5d0 + +namespace GerverSofa.PartE.CoverCertificatef60369d605 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLH (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +end GerverSofa.PartE.CoverCertificatef60369d605 + +namespace GerverSofa.PartE.CoverCertificate5759c94c52 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLH (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate5759c94c52 + +namespace GerverSofa.PartE.CoverCertificate03a553a361 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLH (childLL (childLL (childLH (childLH (childLH (e24PhiAboveRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate03a553a361 + +namespace GerverSofa.PartE.CoverCertificated3212f4a8b + +private abbrev cellRoot : AngleCell := + (childLL (childHH (childLL (childHL (childHH (childHH (e24PhiBelowRoot))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificated3212f4a8b + +namespace GerverSofa.PartE.CoverCertificate92ae3ca2d2 + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childLL (childHL (childHH (childHH (e24PhiBelowRoot))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate92ae3ca2d2 + +namespace GerverSofa.PartE.CoverCertificate126af0396e + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childLL (childHL (childHH (childHH (e24PhiBelowRoot))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate126af0396e + +namespace GerverSofa.PartE.CoverCertificate7a0799a8ec + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childLL (childHL (childHH (childHH (e24PhiBelowRoot))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate7a0799a8ec + +namespace GerverSofa.PartE.CoverCertificate0c897fb4ca + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childHL (childHL (childHH (childHH (e24PhiBelowRoot))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate0c897fb4ca + +namespace GerverSofa.PartE.CoverCertificateac87260947 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childHL (childHL (childHH (childHH (e24PhiBelowRoot))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificateac87260947 + +namespace GerverSofa.PartE.CoverCertificatee4e72882c5 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childHL (childHL (childHH (childHH (e24PhiBelowRoot))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatee4e72882c5 + +namespace GerverSofa.PartE.CoverCertificateeab8fed9d7 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childHL (childHL (childHH (childHH (e24PhiBelowRoot))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificateeab8fed9d7 + +namespace GerverSofa.PartE.CertificateCells018fd5e668 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011111` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011111 : AngleCell := + childLH (childLH (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells018fd5e668 + +namespace GerverSofa.PartE.CertificateCells63f0679649 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011111` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011111 : AngleCell := + childLH (childLH (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells63f0679649 + +namespace GerverSofa.PartE.CertificateCellsa5edf5ee06 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011111` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011111 : AngleCell := + childLH (childLH (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsa5edf5ee06 + +namespace GerverSofa.PartE.CertificateCellsd0bb651e18 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011111` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011111 : AngleCell := + childLH (childLH (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsd0bb651e18 + +namespace GerverSofa.PartE.CertificateCells347e84a45d + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011112` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011112 : AngleCell := + childHL (childLH (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells347e84a45d + +namespace GerverSofa.PartE.CertificateCells06372696b5 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011113` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011113 : AngleCell := + childHH (childLH (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells06372696b5 + +namespace GerverSofa.PartE.CertificateCellsdc3bb009fb + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100000` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100000 : AngleCell := + childLL (childLL (childLL (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCellsdc3bb009fb + +namespace GerverSofa.PartE.CertificateCellsa17c45a931 + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100000` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100000 : AngleCell := + childLL (childLL (childLL (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCellsa17c45a931 + +namespace GerverSofa.PartE.CertificateCells11ac46d6b2 + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100000` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100000 : AngleCell := + childLL (childLL (childLL (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCells11ac46d6b2 + +namespace GerverSofa.PartE.CertificateCells4bb3cae3bb + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100000` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100000 : AngleCell := + childLL (childLL (childLL (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCells4bb3cae3bb + +namespace GerverSofa.PartE.CertificateCells517a8caf86 + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100001` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100001 : AngleCell := + childLH (childLL (childLL (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCells517a8caf86 + +namespace GerverSofa.PartE.CertificateCells5795a3d5ea + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100002` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100002 : AngleCell := + childHL (childLL (childLL (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCells5795a3d5ea + +namespace GerverSofa.PartE.CertificateCellsa32d189193 + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100003` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100003 : AngleCell := + childHH (childLL (childLL (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCellsa32d189193 + +namespace GerverSofa.PartE.CertificateCellsf628113fc1 + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100010 : AngleCell := + childLL (childLH (childLL (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCellsf628113fc1 + +namespace GerverSofa.PartE.CertificateCells740eeaba32 + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100011 : AngleCell := + childLH (childLH (childLL (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCells740eeaba32 + +namespace GerverSofa.PartE.CertificateCells626f3fc028 + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100012` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100012 : AngleCell := + childHL (childLH (childLL (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCells626f3fc028 + +namespace GerverSofa.PartE.CertificateCells15f9582e4b + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100013` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100013 : AngleCell := + childHH (childLH (childLL (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCells15f9582e4b + +namespace GerverSofa.PartE.CertificateCellsc156062d1b + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100100 : AngleCell := + childLL (childLL (childLH (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCellsc156062d1b + +namespace GerverSofa.PartE.CertificateCellsdb4a23ce5a + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100101 : AngleCell := + childLH (childLL (childLH (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCellsdb4a23ce5a + +namespace GerverSofa.PartE.CertificateCells8ced9a3143 + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100102` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100102 : AngleCell := + childHL (childLL (childLH (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCells8ced9a3143 + +namespace GerverSofa.PartE.CertificateCells1c46ec9a00 + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100103` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100103 : AngleCell := + childHH (childLL (childLH (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCells1c46ec9a00 + +namespace GerverSofa.PartE.CertificateCellsc9ea34c02b + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100110 : AngleCell := + childLL (childLH (childLH (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCellsc9ea34c02b + +namespace GerverSofa.PartE.CertificateCells7575776df3 + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100111` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100111 : AngleCell := + childLH (childLH (childLH (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCells7575776df3 + +namespace GerverSofa.PartE.CertificateCells8b638b7054 + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100112` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100112 : AngleCell := + childHL (childLH (childLH (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCells8b638b7054 + +namespace GerverSofa.PartE.CertificateCells3bd9cbb8df + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100113` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100113 : AngleCell := + childHH (childLH (childLH (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCells3bd9cbb8df + +namespace GerverSofa.PartE.CertificateCells41c704a1f1 + +/-- Subcell `3320` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3320 : AngleCell := + childLL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells41c704a1f1 + +namespace GerverSofa.PartE.CertificateCells67d940c92a + +/-- Subcell `3320` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3320 : AngleCell := + childLL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells67d940c92a + +namespace GerverSofa.PartE.CertificateCells8d68909634 + +/-- Subcell `3320` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3320 : AngleCell := + childLL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells8d68909634 + +namespace GerverSofa.PartE.CertificateCellsc208943a95 + +/-- Subcell `3320` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3320 : AngleCell := + childLL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsc208943a95 + +namespace GerverSofa.PartE.CertificateCells42a66228ec + +/-- Subcell `3322` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3322 : AngleCell := + childHL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells42a66228ec + +namespace GerverSofa.PartE.CertificateCells67af310b24 + +/-- Subcell `3322` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3322 : AngleCell := + childHL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells67af310b24 + +namespace GerverSofa.PartE.CertificateCells9b91503b21 + +/-- Subcell `3322` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3322 : AngleCell := + childHL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells9b91503b21 + +namespace GerverSofa.PartE.CertificateCellsb36cfca8f0 + +/-- Subcell `3322` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3322 : AngleCell := + childHL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsb36cfca8f0 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.PhiAbove.Leaf00161`. +* `KernelOnly.PartE.PhiAbove.Leaf00162`. +* `KernelOnly.PartE.PhiAbove.Leaf00163`. +* `KernelOnly.PartE.PhiAbove.Leaf00164`. +* `KernelOnly.PartE.PhiAbove.Leaf00166`. +* `KernelOnly.PartE.PhiAbove.Leaf00167`. +* `KernelOnly.PartE.PhiAbove.Leaf00174`. +* `KernelOnly.PartE.PhiAbove.Leaf00175`. +* `KernelOnly.PartE.PhiAbove.Leaf00176`. +* `KernelOnly.PartE.PhiAbove.Leaf00177`. +* `KernelOnly.PartE.PhiAbove.Leaf00179`. +* `KernelOnly.PartE.PhiAbove.Leaf00180`. +* `KernelOnly.PartE.PhiAbove.Leaf00181`. +* `KernelOnly.PartE.PhiAbove.Leaf00187`. +* `KernelOnly.PartE.PhiAbove.Leaf00188`. +* `KernelOnly.PartE.PhiAbove.Leaf00189`. +* `KernelOnly.PartE.PhiAbove.Leaf00190`. +* `KernelOnly.PartE.PhiAbove.Leaf00196`. +* `KernelOnly.PartE.PhiAbove.Leaf00197`. +* `KernelOnly.PartE.PhiAbove.Leaf00198`. +* `KernelOnly.PartE.PhiAbove.Leaf00199`. +* `KernelOnly.PartE.PhiAbove.Leaf00204`. +* `KernelOnly.PartE.PhiAbove.Leaf00205`. +* `KernelOnly.PartE.PhiAbove.Leaf00206`. +* `KernelOnly.PartE.PhiAbove.Leaf00207`. +* `KernelOnly.PartE.PhiBelow.Leaf00242`. +* `KernelOnly.PartE.PhiBelow.Leaf00243`. +* `KernelOnly.PartE.PhiBelow.Leaf00244`. +* `KernelOnly.PartE.PhiBelow.Leaf00245`. +* `KernelOnly.PartE.PhiBelow.Leaf00256`. +* `KernelOnly.PartE.PhiBelow.Leaf00257`. +* `KernelOnly.PartE.PhiBelow.Leaf00258`. +* `KernelOnly.PartE.PhiBelow.Leaf00259`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101111_c1_c0_7_00161 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells018fd5e668 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells018fd5e668 + +open CertificateCells018fd5e668 +namespace CoverCertificate276a139af5 + +private theorem checked000 : adaptiveCoverCheck 4 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 4 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 4 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 4 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 4 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 4 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 4 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 4 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 4 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 4 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 4 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 4 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 4 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 4 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 4 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 4 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 4 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 4 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 4 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 4 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell103 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 4 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 4 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 4 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 4 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 4 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 4 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 4 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 4 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 4 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 4 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 4 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 4 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 4 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 4 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 4 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 4 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 4 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 4 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 4 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 4 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 4 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 4 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 4 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 4 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 4 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 4 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 4 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 4 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 4 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 4 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 4 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 4 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 4 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 4 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 4 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 4 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 4 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 4 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 4 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 4 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate276a139af5 + +theorem e24KC2PhiAboveLeaf1101111_c1_c0 : + adaptiveCoverCheck 7 (childLL phiAboveCell11011111) = true := by + exact CoverCertificate276a139af5.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101111_c1_c1_7_00162 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells63f0679649 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells63f0679649 + +open CertificateCells63f0679649 +namespace CoverCertificatee02eecb06a + +private theorem checked020 : adaptiveCoverCheck 4 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 4 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 4 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 4 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 4 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 4 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 4 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 4 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 4 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 4 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 4 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 4 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 4 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 4 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 4 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 4 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 4 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 4 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 4 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 4 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 4 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 4 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 4 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 4 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 4 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 4 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 4 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 4 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 4 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 4 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 4 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 4 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 4 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 4 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 4 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 4 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 4 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 4 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 4 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 4 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 4 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 4 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 4 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 4 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 4 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 4 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 4 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 4 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee02eecb06a + +theorem e24KC2PhiAboveLeaf1101111_c1_c1 : + adaptiveCoverCheck 7 (childLH phiAboveCell11011111) = true := by + exact CoverCertificatee02eecb06a.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101111_c1_c2_7_00163 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa5edf5ee06 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa5edf5ee06 + +open CertificateCellsa5edf5ee06 +namespace CoverCertificate783b4cee82 + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate783b4cee82 + +theorem e24KC2PhiAboveLeaf1101111_c1_c2 : + adaptiveCoverCheck 7 (childHL phiAboveCell11011111) = true := by + exact CoverCertificate783b4cee82.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101111_c1_c3_7_00164 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd0bb651e18 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd0bb651e18 + +open CertificateCellsd0bb651e18 +namespace CoverCertificate90fa7d5883 + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate90fa7d5883 + +theorem e24KC2PhiAboveLeaf1101111_c1_c3 : + adaptiveCoverCheck 7 (childHH phiAboveCell11011111) = true := by + exact CoverCertificate90fa7d5883.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101111_c2_8_00166 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells347e84a45d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells347e84a45d + +open CertificateCells347e84a45d +namespace CoverCertificate0133fea31e + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0133fea31e + +theorem e24KC2PhiAboveLeaf1101111_c2 : + adaptiveCoverCheck 8 phiAboveCell11011112 = true := by + exact CoverCertificate0133fea31e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1101111_c3_8_00167 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells06372696b5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells06372696b5 + +open CertificateCells06372696b5 +namespace CoverCertificate3a1ac6bacd + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3a1ac6bacd + +theorem e24KC2PhiAboveLeaf1101111_c3 : + adaptiveCoverCheck 8 phiAboveCell11011113 = true := by + exact CoverCertificate3a1ac6bacd.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110000_c0_c0_7_00174 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsdc3bb009fb + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsdc3bb009fb + +open CertificateCellsdc3bb009fb +namespace CoverCertificateff206b6a85 + +private theorem checked020 : adaptiveCoverCheck 4 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 4 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 4 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 4 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 4 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 4 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 4 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 4 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 4 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 4 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 4 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 4 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 4 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 4 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 4 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 4 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 4 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 4 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 4 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 4 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 4 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 4 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 4 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 4 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell213 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateff206b6a85 + +theorem e24KC2PhiAboveLeaf1110000_c0_c0 : + adaptiveCoverCheck 7 (childLL phiAboveCell11100000) = true := by + exact CoverCertificateff206b6a85.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110000_c0_c1_7_00175 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa17c45a931 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa17c45a931 + +open CertificateCellsa17c45a931 +namespace CoverCertificate71299415d1 + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate71299415d1 + +theorem e24KC2PhiAboveLeaf1110000_c0_c1 : + adaptiveCoverCheck 7 (childLH phiAboveCell11100000) = true := by + exact CoverCertificate71299415d1.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110000_c0_c2_7_00176 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells11ac46d6b2 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells11ac46d6b2 + +open CertificateCells11ac46d6b2 +namespace CoverCertificate176775891f + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate176775891f + +theorem e24KC2PhiAboveLeaf1110000_c0_c2 : + adaptiveCoverCheck 7 (childHL phiAboveCell11100000) = true := by + exact CoverCertificate176775891f.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110000_c0_c3_7_00177 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4bb3cae3bb + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4bb3cae3bb + +open CertificateCells4bb3cae3bb +namespace CoverCertificate09737eefc3 + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate09737eefc3 + +theorem e24KC2PhiAboveLeaf1110000_c0_c3 : + adaptiveCoverCheck 7 (childHH phiAboveCell11100000) = true := by + exact CoverCertificate09737eefc3.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110000_c1_8_00179 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells517a8caf86 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells517a8caf86 + +open CertificateCells517a8caf86 +namespace CoverCertificatea812690e7e + +private theorem checked000 : adaptiveCoverCheck 5 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 5 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 5 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 5 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 5 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 5 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 5 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 5 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 5 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 5 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 5 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 5 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 5 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 5 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 5 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 5 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 5 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 5 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 5 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 5 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 5 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 5 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 5 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 5 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 5 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 5 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 5 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 5 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 5 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 5 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 5 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 5 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 5 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 5 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 5 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 5 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 5 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 5 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 5 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 5 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 5 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 5 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 5 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 5 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 5 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 5 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 5 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 5 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell313 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea812690e7e + +theorem e24KC2PhiAboveLeaf1110000_c1 : + adaptiveCoverCheck 8 phiAboveCell11100001 = true := by + exact CoverCertificatea812690e7e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110000_c2_8_00180 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5795a3d5ea + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5795a3d5ea + +open CertificateCells5795a3d5ea +namespace CoverCertificate35de9fca65 + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate35de9fca65 + +theorem e24KC2PhiAboveLeaf1110000_c2 : + adaptiveCoverCheck 8 phiAboveCell11100002 = true := by + exact CoverCertificate35de9fca65.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110000_c3_8_00181 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa32d189193 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa32d189193 + +open CertificateCellsa32d189193 +namespace CoverCertificatee6cd0593fa + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee6cd0593fa + +theorem e24KC2PhiAboveLeaf1110000_c3 : + adaptiveCoverCheck 8 phiAboveCell11100003 = true := by + exact CoverCertificatee6cd0593fa.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110001_c0_8_00187 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf628113fc1 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf628113fc1 + +open CertificateCellsf628113fc1 +namespace CoverCertificate30c4e37720 + +private theorem checked000 : adaptiveCoverCheck 5 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 5 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 5 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 5 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 5 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 5 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 5 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 5 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 5 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 5 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 5 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 5 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 5 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 5 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 5 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 5 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 5 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 5 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 5 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 5 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 5 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 5 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 5 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 5 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 5 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 5 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 5 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 5 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 5 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 5 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 5 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 5 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 5 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 5 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 5 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 5 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 5 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 5 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 5 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 5 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 5 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 5 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 5 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 5 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 5 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 5 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 5 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 5 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell313 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 5 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 5 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 5 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 5 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate30c4e37720 + +theorem e24KC2PhiAboveLeaf1110001_c0 : + adaptiveCoverCheck 8 phiAboveCell11100010 = true := by + exact CoverCertificate30c4e37720.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110001_c1_8_00188 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells740eeaba32 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells740eeaba32 + +open CertificateCells740eeaba32 +namespace CoverCertificatedfaf53edbb + +private theorem checked000 : adaptiveCoverCheck 5 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 5 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 5 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 5 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 5 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 5 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 5 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 5 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 5 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 5 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 5 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 5 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 5 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 5 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 5 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 5 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 5 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 5 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 5 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 5 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 5 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 5 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 5 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 5 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 5 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 5 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 5 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 5 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 5 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 5 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 5 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 5 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 5 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 5 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 5 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 5 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 5 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 5 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 5 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 5 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 5 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 5 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 5 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 5 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 5 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 5 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 5 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 5 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 5 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 5 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 5 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 5 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 5 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 5 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 5 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 5 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 5 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 5 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 5 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 5 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 5 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 5 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 5 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 5 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatedfaf53edbb + +theorem e24KC2PhiAboveLeaf1110001_c1 : + adaptiveCoverCheck 8 phiAboveCell11100011 = true := by + exact CoverCertificatedfaf53edbb.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110001_c2_8_00189 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells626f3fc028 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells626f3fc028 + +open CertificateCells626f3fc028 +namespace CoverCertificatea7d865eaeb + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea7d865eaeb + +theorem e24KC2PhiAboveLeaf1110001_c2 : + adaptiveCoverCheck 8 phiAboveCell11100012 = true := by + exact CoverCertificatea7d865eaeb.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110001_c3_8_00190 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells15f9582e4b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells15f9582e4b + +open CertificateCells15f9582e4b +namespace CoverCertificate59a502ab21 + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate59a502ab21 + +theorem e24KC2PhiAboveLeaf1110001_c3 : + adaptiveCoverCheck 8 phiAboveCell11100013 = true := by + exact CoverCertificate59a502ab21.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110010_c0_8_00196 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc156062d1b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc156062d1b + +open CertificateCellsc156062d1b +namespace CoverCertificatedb9da39caf + +private theorem checked000 : adaptiveCoverCheck 5 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 5 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 5 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 5 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 5 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 5 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 5 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 5 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 5 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 5 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 5 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 5 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 5 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 5 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 5 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 5 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 5 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 5 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 5 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 5 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 5 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 5 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 5 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 5 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 5 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 5 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 5 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 5 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 5 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 5 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 5 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 5 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 5 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 5 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 5 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 5 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 5 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 5 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 5 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 5 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 5 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 5 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 5 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 5 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 5 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 5 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 5 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 5 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 5 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 5 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 5 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 5 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 5 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 5 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 5 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 5 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatedb9da39caf + +theorem e24KC2PhiAboveLeaf1110010_c0 : + adaptiveCoverCheck 8 phiAboveCell11100100 = true := by + exact CoverCertificatedb9da39caf.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110010_c1_8_00197 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsdb4a23ce5a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsdb4a23ce5a + +open CertificateCellsdb4a23ce5a +namespace CoverCertificateefd199c221 + +private theorem checked020 : adaptiveCoverCheck 5 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 5 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 5 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 5 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 5 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 5 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 5 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 5 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 5 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 5 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 5 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 5 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 5 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 5 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 5 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 5 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 5 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 5 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 5 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 5 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 5 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 5 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 5 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 5 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 5 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 5 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 5 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 5 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 5 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 5 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 5 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 5 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 5 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 5 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 5 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 5 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 5 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 5 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 5 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 5 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 5 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 5 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 5 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 5 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 5 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 5 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 5 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 5 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateefd199c221 + +theorem e24KC2PhiAboveLeaf1110010_c1 : + adaptiveCoverCheck 8 phiAboveCell11100101 = true := by + exact CoverCertificateefd199c221.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110010_c2_8_00198 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8ced9a3143 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8ced9a3143 + +open CertificateCells8ced9a3143 +namespace CoverCertificatedb27ad4afe + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatedb27ad4afe + +theorem e24KC2PhiAboveLeaf1110010_c2 : + adaptiveCoverCheck 8 phiAboveCell11100102 = true := by + exact CoverCertificatedb27ad4afe.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110010_c3_8_00199 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1c46ec9a00 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1c46ec9a00 + +open CertificateCells1c46ec9a00 +namespace CoverCertificate05565992a9 + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate05565992a9 + +theorem e24KC2PhiAboveLeaf1110010_c3 : + adaptiveCoverCheck 8 phiAboveCell11100103 = true := by + exact CoverCertificate05565992a9.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110011_c0_8_00204 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc9ea34c02b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc9ea34c02b + +open CertificateCellsc9ea34c02b +namespace CoverCertificatec7fa9ff5d0 + +private theorem checked020 : adaptiveCoverCheck 5 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 5 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 5 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 5 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 5 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 5 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 5 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 5 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 5 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 5 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 5 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 5 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 5 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 5 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 5 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 5 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 5 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 5 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 5 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 5 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 5 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 5 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 5 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 5 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 5 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 5 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 5 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 5 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 5 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 5 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 5 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 5 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 5 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 5 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 5 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 5 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 5 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 5 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 5 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 5 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 5 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 5 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 5 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 5 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 5 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 5 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 5 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 5 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec7fa9ff5d0 + +theorem e24KC2PhiAboveLeaf1110011_c0 : + adaptiveCoverCheck 8 phiAboveCell11100110 = true := by + exact CoverCertificatec7fa9ff5d0.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110011_c1_8_00205 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells7575776df3 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells7575776df3 + +open CertificateCells7575776df3 +namespace CoverCertificatef60369d605 + +private theorem checked020 : adaptiveCoverCheck 5 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 5 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 5 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 5 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 5 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 5 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 5 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 5 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 5 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 5 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 5 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 5 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 5 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 5 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 5 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 5 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 5 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 5 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 5 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 5 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 5 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 5 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 5 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 5 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell213 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef60369d605 + +theorem e24KC2PhiAboveLeaf1110011_c1 : + adaptiveCoverCheck 8 phiAboveCell11100111 = true := by + exact CoverCertificatef60369d605.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110011_c2_8_00206 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8b638b7054 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8b638b7054 + +open CertificateCells8b638b7054 +namespace CoverCertificate5759c94c52 + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5759c94c52 + +theorem e24KC2PhiAboveLeaf1110011_c2 : + adaptiveCoverCheck 8 phiAboveCell11100112 = true := by + exact CoverCertificate5759c94c52.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Above Leaf1110011_c3_8_00207 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3bd9cbb8df + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3bd9cbb8df + +open CertificateCells3bd9cbb8df +namespace CoverCertificate03a553a361 + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate03a553a361 + +theorem e24KC2PhiAboveLeaf1110011_c3 : + adaptiveCoverCheck 8 phiAboveCell11100113 = true := by + exact CoverCertificate03a553a361.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33203_c0_8_00242 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells41c704a1f1 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells41c704a1f1 + +open CertificateCells41c704a1f1 +namespace CoverCertificated3212f4a8b + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated3212f4a8b + +theorem e24KC2PhiBelowLeaf33203_c0 : + adaptiveCoverCheck 8 (childLL (childHH phiBelowCell3320)) = true := by + exact CoverCertificated3212f4a8b.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33203_c1_8_00243 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells67d940c92a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells67d940c92a + +open CertificateCells67d940c92a +namespace CoverCertificate92ae3ca2d2 + +private theorem checked300 : adaptiveCoverCheck 5 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 5 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 5 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 5 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell303 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 5 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 5 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 5 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 5 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 5 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 5 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 5 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 5 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate92ae3ca2d2 + +theorem e24KC2PhiBelowLeaf33203_c1 : + adaptiveCoverCheck 8 (childLH (childHH phiBelowCell3320)) = true := by + exact CoverCertificate92ae3ca2d2.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33203_c2_8_00244 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8d68909634 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8d68909634 + +open CertificateCells8d68909634 +namespace CoverCertificate126af0396e + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate126af0396e + +theorem e24KC2PhiBelowLeaf33203_c2 : + adaptiveCoverCheck 8 (childHL (childHH phiBelowCell3320)) = true := by + exact CoverCertificate126af0396e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33203_c3_8_00245 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc208943a95 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc208943a95 + +open CertificateCellsc208943a95 +namespace CoverCertificate7a0799a8ec + +private theorem checked100 : adaptiveCoverCheck 5 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 5 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 5 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 5 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 5 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 5 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 5 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 5 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 5 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 5 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 5 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 5 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 5 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 5 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 5 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 5 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell133 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 5 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 5 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 5 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 5 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 5 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 5 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 5 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 5 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 5 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 5 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 5 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 5 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 5 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 5 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 5 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 5 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate7a0799a8ec + +theorem e24KC2PhiBelowLeaf33203_c3 : + adaptiveCoverCheck 8 (childHH (childHH phiBelowCell3320)) = true := by + exact CoverCertificate7a0799a8ec.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33221_c0_8_00256 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells42a66228ec + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells42a66228ec + +open CertificateCells42a66228ec +namespace CoverCertificate0c897fb4ca + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0c897fb4ca + +theorem e24KC2PhiBelowLeaf33221_c0 : + adaptiveCoverCheck 8 (childLL (childLH phiBelowCell3322)) = true := by + exact CoverCertificate0c897fb4ca.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33221_c1_8_00257 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells67af310b24 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells67af310b24 + +open CertificateCells67af310b24 +namespace CoverCertificateac87260947 + +private theorem checked100 : adaptiveCoverCheck 5 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 5 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 5 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 5 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 5 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 5 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 5 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 5 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 5 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 5 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 5 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 5 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 5 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 5 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 5 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 5 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell133 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 5 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 5 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 5 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 5 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell213 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 5 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 5 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 5 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 5 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 5 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 5 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 5 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 5 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 5 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 5 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 5 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 5 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 5 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 5 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 5 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 5 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 5 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 5 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 5 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 5 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateac87260947 + +theorem e24KC2PhiBelowLeaf33221_c1 : + adaptiveCoverCheck 8 (childLH (childLH phiBelowCell3322)) = true := by + exact CoverCertificateac87260947.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33221_c2_8_00258 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9b91503b21 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9b91503b21 + +open CertificateCells9b91503b21 +namespace CoverCertificatee4e72882c5 + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee4e72882c5 + +theorem e24KC2PhiBelowLeaf33221_c2 : + adaptiveCoverCheck 8 (childHL (childLH phiBelowCell3322)) = true := by + exact CoverCertificatee4e72882c5.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33221_c3_8_00259 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb36cfca8f0 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb36cfca8f0 + +open CertificateCellsb36cfca8f0 +namespace CoverCertificateeab8fed9d7 + +private theorem checked010 : adaptiveCoverCheck 5 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 5 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 5 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 5 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell013 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 5 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 5 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 5 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 5 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 5 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 5 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 5 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 5 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 5 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 5 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 5 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 5 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 5 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 5 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 5 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 5 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 5 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 5 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 5 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 5 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell133 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 5 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 5 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 5 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 5 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell213 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 5 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 5 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 5 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 5 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 5 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 5 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 5 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 5 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 5 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 5 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 5 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 5 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 5 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 5 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 5 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 5 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 5 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 5 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 5 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 5 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateeab8fed9d7 + +theorem e24KC2PhiBelowLeaf33221_c3 : + adaptiveCoverCheck 8 (childHH (childLH phiBelowCell3322)) = true := by + exact CoverCertificateeab8fed9d7.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle025.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle025.lean new file mode 100644 index 0000000000..793c240b01 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle025.lean @@ -0,0 +1,9692 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch038`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CoverCertificate23bfa411d5 + +private abbrev cellRoot : AngleCell := + (childLL (childHH (childHL (childHL (childHH (childHH (e24PhiBelowRoot))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate23bfa411d5 + +namespace GerverSofa.PartE.CoverCertificate6b64856605 + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childHL (childHL (childHH (childHH (e24PhiBelowRoot))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate6b64856605 + +namespace GerverSofa.PartE.CoverCertificate1cb4de1b4d + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childHL (childHL (childHH (childHH (e24PhiBelowRoot))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate1cb4de1b4d + +namespace GerverSofa.PartE.CoverCertificate3f82ba6920 + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childHL (childHL (childHH (childHH (e24PhiBelowRoot))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +end GerverSofa.PartE.CoverCertificate3f82ba6920 + +namespace GerverSofa.PartE.CoverCertificate01ce83adcb + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate01ce83adcb + +namespace GerverSofa.PartE.CoverCertificatea44c879c6c + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +end GerverSofa.PartE.CoverCertificatea44c879c6c + +namespace GerverSofa.PartE.CoverCertificateed570ec179 + +private abbrev cellRoot : AngleCell := + (childLL (childHL (childLL (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificateed570ec179 + +namespace GerverSofa.PartE.CoverCertificate40a2855a31 + +private abbrev cellRoot : AngleCell := + (childLH (childHL (childLL (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate40a2855a31 + +namespace GerverSofa.PartE.CoverCertificate1f5c554cb5 + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childLL (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate1f5c554cb5 + +namespace GerverSofa.PartE.CoverCertificate4c26cf7a20 + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childLL (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate4c26cf7a20 + +namespace GerverSofa.PartE.CoverCertificate3fd78c5005 + +private abbrev cellRoot : AngleCell := + (childLL (childHH (childLL (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +end GerverSofa.PartE.CoverCertificate3fd78c5005 + +namespace GerverSofa.PartE.CoverCertificateb53ccd0a15 + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childLL (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificateb53ccd0a15 + +namespace GerverSofa.PartE.CoverCertificate1f18ab38ed + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childLL (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate1f18ab38ed + +namespace GerverSofa.PartE.CoverCertificatef023150b0c + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childLL (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatef023150b0c + +namespace GerverSofa.PartE.CoverCertificateaf9fa2570b + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificateaf9fa2570b + +namespace GerverSofa.PartE.CoverCertificate837ca9ea44 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate837ca9ea44 + +namespace GerverSofa.PartE.CoverCertificatebe04593b3c + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatebe04593b3c + +namespace GerverSofa.PartE.CoverCertificate0452312845 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate0452312845 + +namespace GerverSofa.PartE.CoverCertificate3947a065a0 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate3947a065a0 + +namespace GerverSofa.PartE.CoverCertificate4722a46e95 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate4722a46e95 + +namespace GerverSofa.PartE.CoverCertificate31c2c5878b + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate31c2c5878b + +namespace GerverSofa.PartE.CoverCertificate5543096fd0 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate5543096fd0 + +namespace GerverSofa.PartE.CoverCertificate0e40621a3c + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate0e40621a3c + +namespace GerverSofa.PartE.CoverCertificate63d38ae319 + +private abbrev cellRoot : AngleCell := + (childLL (childHL (childLH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate63d38ae319 + +namespace GerverSofa.PartE.CoverCertificated27c8c9957 + +private abbrev cellRoot : AngleCell := + (childLH (childHL (childLH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificated27c8c9957 + +namespace GerverSofa.PartE.CoverCertificatedd39c23c21 + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childLH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatedd39c23c21 + +namespace GerverSofa.PartE.CoverCertificate93b82d2646 + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childLH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate93b82d2646 + +namespace GerverSofa.PartE.CoverCertificateb0fb1ed898 + +private abbrev cellRoot : AngleCell := + (childLL (childHH (childLH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificateb0fb1ed898 + +namespace GerverSofa.PartE.CoverCertificatee4cd586f88 + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childLH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatee4cd586f88 + +namespace GerverSofa.PartE.CoverCertificate6f132ca828 + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childLH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate6f132ca828 + +namespace GerverSofa.PartE.CoverCertificate3f0c4cdced + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childLH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +end GerverSofa.PartE.CoverCertificate3f0c4cdced + +namespace GerverSofa.PartE.CoverCertificatee4839d9dd1 + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +private abbrev cell1100 : AngleCell := + childLL cell110 + +private abbrev cell1101 : AngleCell := + childLH cell110 + +private abbrev cell1102 : AngleCell := + childHL cell110 + +private abbrev cell1103 : AngleCell := + childHH cell110 + +private abbrev cell1110 : AngleCell := + childLL cell111 + +private abbrev cell1111 : AngleCell := + childLH cell111 + +private abbrev cell1112 : AngleCell := + childHL cell111 + +private abbrev cell1113 : AngleCell := + childHH cell111 + +private abbrev cell1120 : AngleCell := + childLL cell112 + +private abbrev cell1121 : AngleCell := + childLH cell112 + +private abbrev cell1122 : AngleCell := + childHL cell112 + +private abbrev cell1123 : AngleCell := + childHH cell112 + +private abbrev cell1130 : AngleCell := + childLL cell113 + +private abbrev cell1131 : AngleCell := + childLH cell113 + +private abbrev cell1132 : AngleCell := + childHL cell113 + +private abbrev cell1133 : AngleCell := + childHH cell113 + +private abbrev cell1310 : AngleCell := + childLL cell131 + +private abbrev cell1311 : AngleCell := + childLH cell131 + +private abbrev cell1312 : AngleCell := + childHL cell131 + +private abbrev cell1313 : AngleCell := + childHH cell131 + +end GerverSofa.PartE.CoverCertificatee4839d9dd1 + +namespace GerverSofa.PartE.CoverCertificateb46d993ac8 + +private abbrev cellRoot : AngleCell := + (childLL (childHH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificateb46d993ac8 + +namespace GerverSofa.PartE.CoverCertificate98e57d34e4 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childHH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate98e57d34e4 + +namespace GerverSofa.PartE.CoverCertificate27d7b561c3 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLH (childHH (childHL (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate27d7b561c3 + +namespace GerverSofa.PartE.CoverCertificate25f92715ca + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLH (childHH (childHL (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate25f92715ca + +namespace GerverSofa.PartE.CertificateCells8d1955d9db + +/-- Subcell `3322` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3322 : AngleCell := + childHL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells8d1955d9db + +namespace GerverSofa.PartE.CertificateCells5a22a388aa + +/-- Subcell `3322` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3322 : AngleCell := + childHL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells5a22a388aa + +namespace GerverSofa.PartE.CertificateCells24ba63b604 + +/-- Subcell `3322` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3322 : AngleCell := + childHL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells24ba63b604 + +namespace GerverSofa.PartE.CertificateCells78208ba1a7 + +/-- Subcell `3322` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3322 : AngleCell := + childHL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells78208ba1a7 + +namespace GerverSofa.PartE.CertificateCellsc3455a44b7 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsc3455a44b7 + +namespace GerverSofa.PartE.CertificateCells9c4f656d63 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells9c4f656d63 + +namespace GerverSofa.PartE.CertificateCells37244c6e24 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells37244c6e24 + +namespace GerverSofa.PartE.CertificateCells3e4038f4ea + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells3e4038f4ea + +namespace GerverSofa.PartE.CertificateCells25be007753 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells25be007753 + +namespace GerverSofa.PartE.CertificateCells9371db9199 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells9371db9199 + +namespace GerverSofa.PartE.CertificateCells2426e39946 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells2426e39946 + +namespace GerverSofa.PartE.CertificateCellsa09b62ac68 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa09b62ac68 + +namespace GerverSofa.PartE.CertificateCells296b03de2f + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells296b03de2f + +namespace GerverSofa.PartE.CertificateCells230653113b + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells230653113b + +namespace GerverSofa.PartE.CertificateCells02421cb4a8 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells02421cb4a8 + +namespace GerverSofa.PartE.CertificateCells8af559ef49 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells8af559ef49 + +namespace GerverSofa.PartE.CertificateCells874482b603 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells874482b603 + +namespace GerverSofa.PartE.CertificateCellse5b788289b + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellse5b788289b + +namespace GerverSofa.PartE.CertificateCellsc2714ba804 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232100` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232100 : AngleCell := + childLL (childLL (childLH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsc2714ba804 + +namespace GerverSofa.PartE.CertificateCellscab6c01cd3 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232101` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232101 : AngleCell := + childLH (childLL (childLH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellscab6c01cd3 + +namespace GerverSofa.PartE.CertificateCells50cb464285 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232102` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232102 : AngleCell := + childHL (childLL (childLH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells50cb464285 + +namespace GerverSofa.PartE.CertificateCellsb0d9885c34 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232103` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232103 : AngleCell := + childHH (childLL (childLH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsb0d9885c34 + +namespace GerverSofa.PartE.CertificateCellsa6cd731e2a + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa6cd731e2a + +namespace GerverSofa.PartE.CertificateCells786c9d28c6 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232120` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232120 : AngleCell := + childLL (childHL (childLH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells786c9d28c6 + +namespace GerverSofa.PartE.CertificateCellsf9e248a6ed + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232121` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232121 : AngleCell := + childLH (childHL (childLH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsf9e248a6ed + +namespace GerverSofa.PartE.CertificateCells576f3a7876 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232122` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232122 : AngleCell := + childHL (childHL (childLH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells576f3a7876 + +namespace GerverSofa.PartE.CertificateCellsf783690d6f + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232123` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232123 : AngleCell := + childHH (childHL (childLH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsf783690d6f + +namespace GerverSofa.PartE.CertificateCellsde47ee26bd + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232130` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232130 : AngleCell := + childLL (childHH (childLH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsde47ee26bd + +namespace GerverSofa.PartE.CertificateCells05c25def9b + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232131` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232131 : AngleCell := + childLH (childHH (childLH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells05c25def9b + +namespace GerverSofa.PartE.CertificateCellsc4f0c2a140 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232132` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232132 : AngleCell := + childHL (childHH (childLH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsc4f0c2a140 + +namespace GerverSofa.PartE.CertificateCellsc119914926 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232133` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232133 : AngleCell := + childHH (childHH (childLH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsc119914926 + +namespace GerverSofa.PartE.CertificateCells70881db6a6 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells70881db6a6 + +namespace GerverSofa.PartE.CertificateCellsfed0e78e01 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsfed0e78e01 + +namespace GerverSofa.PartE.CertificateCells4781918595 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232310` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232310 : AngleCell := + childLL (childLH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells4781918595 + +namespace GerverSofa.PartE.CertificateCellsa584418aa1 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232311` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232311 : AngleCell := + childLH (childLH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsa584418aa1 + +namespace GerverSofa.PartE.CertificateCells09c85e6b71 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232311` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232311 : AngleCell := + childLH (childLH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells09c85e6b71 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.PhiBelow.Leaf00265`. +* `KernelOnly.PartE.PhiBelow.Leaf00266`. +* `KernelOnly.PartE.PhiBelow.Leaf00267`. +* `KernelOnly.PartE.PhiBelow.Leaf00268`. +* `KernelOnly.PartE.PhiBelow.Leaf00271`. +* `KernelOnly.PartE.PhiBelow.Leaf00272`. +* `KernelOnly.PartE.PhiBelow.Leaf00274`. +* `KernelOnly.PartE.PhiBelow.Leaf00275`. +* `KernelOnly.PartE.PhiBelow.Leaf00276`. +* `KernelOnly.PartE.PhiBelow.Leaf00277`. +* `KernelOnly.PartE.PhiBelow.Leaf00280`. +* `KernelOnly.PartE.PhiBelow.Leaf00281`. +* `KernelOnly.PartE.PhiBelow.Leaf00282`. +* `KernelOnly.PartE.PhiBelow.Leaf00283`. +* `KernelOnly.PartE.PhiBelow.Leaf00290`. +* `KernelOnly.PartE.PhiBelow.Leaf00291`. +* `KernelOnly.PartE.PhiBelow.Leaf00292`. +* `KernelOnly.PartE.PhiBelow.Leaf00293`. +* `KernelOnly.PartE.PhiBelow.Leaf00297`. +* `KernelOnly.PartE.PhiBelow.Leaf00298`. +* `KernelOnly.PartE.PhiBelow.Leaf00299`. +* `KernelOnly.PartE.PhiBelow.Leaf00300`. +* `KernelOnly.PartE.PhiBelow.Leaf00302`. +* `KernelOnly.PartE.PhiBelow.Leaf00304`. +* `KernelOnly.PartE.PhiBelow.Leaf00305`. +* `KernelOnly.PartE.PhiBelow.Leaf00306`. +* `KernelOnly.PartE.PhiBelow.Leaf00307`. +* `KernelOnly.PartE.PhiBelow.Leaf00310`. +* `KernelOnly.PartE.PhiBelow.Leaf00311`. +* `KernelOnly.PartE.PhiBelow.Leaf00312`. +* `KernelOnly.PartE.PhiBelow.Leaf00313`. +* `KernelOnly.PartE.PhiBelow.Leaf00316`. +* `KernelOnly.PartE.PhiBelow.Leaf00318`. +* `KernelOnly.PartE.PhiBelow.Leaf00320`. +* `KernelOnly.PartE.PhiBelow.Leaf00322`. +* `KernelOnly.PartE.PhiBelow.Leaf00323`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33223_c0_8_00265 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8d1955d9db + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8d1955d9db + +open CertificateCells8d1955d9db +namespace CoverCertificate23bfa411d5 + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate23bfa411d5 + +theorem e24KC2PhiBelowLeaf33223_c0 : + adaptiveCoverCheck 8 (childLL (childHH phiBelowCell3322)) = true := by + exact CoverCertificate23bfa411d5.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33223_c1_8_00266 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5a22a388aa + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5a22a388aa + +open CertificateCells5a22a388aa +namespace CoverCertificate6b64856605 + +private theorem checked010 : adaptiveCoverCheck 5 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 5 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 5 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 5 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell013 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 5 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 5 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 5 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 5 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 5 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 5 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 5 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 5 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 5 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 5 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 5 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 5 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 5 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 5 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 5 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 5 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 5 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 5 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 5 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 5 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell133 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 5 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 5 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 5 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 5 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 5 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 5 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 5 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 5 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 5 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 5 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 5 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 5 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 5 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 5 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 5 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 5 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 5 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 5 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 5 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 5 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate6b64856605 + +theorem e24KC2PhiBelowLeaf33223_c1 : + adaptiveCoverCheck 8 (childLH (childHH phiBelowCell3322)) = true := by + exact CoverCertificate6b64856605.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33223_c2_8_00267 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells24ba63b604 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells24ba63b604 + +open CertificateCells24ba63b604 +namespace CoverCertificate1cb4de1b4d + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell13 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 7 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1cb4de1b4d + +theorem e24KC2PhiBelowLeaf33223_c2 : + adaptiveCoverCheck 8 (childHL (childHH phiBelowCell3322)) = true := by + exact CoverCertificate1cb4de1b4d.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33223_c3_8_00268 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells78208ba1a7 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells78208ba1a7 + +open CertificateCells78208ba1a7 +namespace CoverCertificate3f82ba6920 + +private theorem checked110 : adaptiveCoverCheck 5 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 5 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 5 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 5 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3f82ba6920 + +theorem e24KC2PhiBelowLeaf33223_c3 : + adaptiveCoverCheck 8 (childHH (childHH phiBelowCell3322)) = true := by + exact CoverCertificate3f82ba6920.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33230_c0_8_00271 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc3455a44b7 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc3455a44b7 + +open CertificateCellsc3455a44b7 +namespace CoverCertificate01ce83adcb + +private theorem checked000 : adaptiveCoverCheck 5 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 5 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 5 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 5 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 5 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 5 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 5 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 5 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 5 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 5 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 5 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 5 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 5 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 5 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 5 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 5 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 5 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 5 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 5 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 5 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 5 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 5 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 5 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 5 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 5 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 5 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 5 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 5 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 5 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 5 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 5 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 5 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 5 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 5 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 5 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 5 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 5 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 5 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 5 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 5 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 5 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 5 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 5 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 5 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 5 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 5 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 5 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 5 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 5 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 5 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 5 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 5 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 5 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 5 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 5 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 5 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 5 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 5 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 5 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 5 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 5 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 5 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 5 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 5 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate01ce83adcb + +theorem e24KC2PhiBelowLeaf33230_c0 : + adaptiveCoverCheck 8 (childLL (childLL phiBelowCell3323)) = true := by + exact CoverCertificate01ce83adcb.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33230_c1_8_00272 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9c4f656d63 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9c4f656d63 + +open CertificateCells9c4f656d63 +namespace CoverCertificatea44c879c6c + +private theorem checked020 : adaptiveCoverCheck 5 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 5 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 5 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 5 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell023 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 5 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 5 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 5 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 5 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell203 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 5 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 5 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 5 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 5 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 5 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 5 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 5 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 5 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell233 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea44c879c6c + +theorem e24KC2PhiBelowLeaf33230_c1 : + adaptiveCoverCheck 8 (childLH (childLL phiBelowCell3323)) = true := by + exact CoverCertificatea44c879c6c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33230_c2_c0_7_00274 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells37244c6e24 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells37244c6e24 + +open CertificateCells37244c6e24 +namespace CoverCertificateed570ec179 + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateed570ec179 + +theorem e24KC2PhiBelowLeaf33230_c2_c0 : + adaptiveCoverCheck 7 (childLL (childHL (childLL phiBelowCell3323))) = true := by + exact CoverCertificateed570ec179.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33230_c2_c1_7_00275 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3e4038f4ea + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3e4038f4ea + +open CertificateCells3e4038f4ea +namespace CoverCertificate40a2855a31 + +private theorem checked330 : adaptiveCoverCheck 4 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 4 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 4 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 4 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate40a2855a31 + +theorem e24KC2PhiBelowLeaf33230_c2_c1 : + adaptiveCoverCheck 7 (childLH (childHL (childLL phiBelowCell3323))) = true := by + exact CoverCertificate40a2855a31.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33230_c2_c2_7_00276 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells25be007753 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells25be007753 + +open CertificateCells25be007753 +namespace CoverCertificate1f5c554cb5 + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1f5c554cb5 + +theorem e24KC2PhiBelowLeaf33230_c2_c2 : + adaptiveCoverCheck 7 (childHL (childHL (childLL phiBelowCell3323))) = true := by + exact CoverCertificate1f5c554cb5.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33230_c2_c3_7_00277 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9371db9199 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9371db9199 + +open CertificateCells9371db9199 +namespace CoverCertificate4c26cf7a20 + +private theorem checked110 : adaptiveCoverCheck 4 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 4 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 4 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 4 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell113 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 4 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 4 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 4 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 4 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell133 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 4 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 4 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 4 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 4 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell313 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 4 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 4 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 4 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 4 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4c26cf7a20 + +theorem e24KC2PhiBelowLeaf33230_c2_c3 : + adaptiveCoverCheck 7 (childHH (childHL (childLL phiBelowCell3323))) = true := by + exact CoverCertificate4c26cf7a20.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33230_c3_c0_7_00280 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2426e39946 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2426e39946 + +open CertificateCells2426e39946 +namespace CoverCertificate3fd78c5005 + +private theorem checked220 : adaptiveCoverCheck 4 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 4 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 4 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 4 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell223 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3fd78c5005 + +theorem e24KC2PhiBelowLeaf33230_c3_c0 : + adaptiveCoverCheck 7 (childLL (childHH (childLL phiBelowCell3323))) = true := by + exact CoverCertificate3fd78c5005.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33230_c3_c1_7_00281 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa09b62ac68 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa09b62ac68 + +open CertificateCellsa09b62ac68 +namespace CoverCertificateb53ccd0a15 + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateb53ccd0a15 + +theorem e24KC2PhiBelowLeaf33230_c3_c1 : + adaptiveCoverCheck 7 (childLH (childHH (childLL phiBelowCell3323))) = true := by + exact CoverCertificateb53ccd0a15.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33230_c3_c2_7_00282 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells296b03de2f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells296b03de2f + +open CertificateCells296b03de2f +namespace CoverCertificate1f18ab38ed + +private theorem checked000 : adaptiveCoverCheck 4 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 4 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 4 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 4 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 4 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 4 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 4 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 4 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 4 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 4 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 4 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 4 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 4 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 4 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 4 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 4 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 4 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 4 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 4 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 4 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell123 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 4 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 4 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 4 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 4 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 4 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 4 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 4 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 4 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 4 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 4 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 4 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 4 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 4 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 4 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 4 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 4 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 4 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 4 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 4 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 4 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell303 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 4 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 4 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 4 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 4 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 4 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 4 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 4 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 4 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1f18ab38ed + +theorem e24KC2PhiBelowLeaf33230_c3_c2 : + adaptiveCoverCheck 7 (childHL (childHH (childLL phiBelowCell3323))) = true := by + exact CoverCertificate1f18ab38ed.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33230_c3_c3_7_00283 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells230653113b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells230653113b + +open CertificateCells230653113b +namespace CoverCertificatef023150b0c + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef023150b0c + +theorem e24KC2PhiBelowLeaf33230_c3_c3 : + adaptiveCoverCheck 7 (childHH (childHH (childLL phiBelowCell3323))) = true := by + exact CoverCertificatef023150b0c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c0_c0_7_00290 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells02421cb4a8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells02421cb4a8 + +open CertificateCells02421cb4a8 +namespace CoverCertificateaf9fa2570b + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateaf9fa2570b + +theorem e24KC2PhiBelowLeaf33232_c0_c0 : + adaptiveCoverCheck 7 (childLL (childLL (childHL phiBelowCell3323))) = true := by + exact CoverCertificateaf9fa2570b.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c0_c1_7_00291 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8af559ef49 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8af559ef49 + +open CertificateCells8af559ef49 +namespace CoverCertificate837ca9ea44 + +private theorem checked110 : adaptiveCoverCheck 4 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 4 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 4 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 4 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell113 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 4 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 4 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 4 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 4 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell133 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 4 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 4 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 4 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 4 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell313 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 4 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 4 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 4 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 4 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate837ca9ea44 + +theorem e24KC2PhiBelowLeaf33232_c0_c1 : + adaptiveCoverCheck 7 (childLH (childLL (childHL phiBelowCell3323))) = true := by + exact CoverCertificate837ca9ea44.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c0_c2_7_00292 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells874482b603 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells874482b603 + +open CertificateCells874482b603 +namespace CoverCertificatebe04593b3c + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatebe04593b3c + +theorem e24KC2PhiBelowLeaf33232_c0_c2 : + adaptiveCoverCheck 7 (childHL (childLL (childHL phiBelowCell3323))) = true := by + exact CoverCertificatebe04593b3c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c0_c3_7_00293 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse5b788289b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse5b788289b + +open CertificateCellse5b788289b +namespace CoverCertificate0452312845 + +private theorem checked110 : adaptiveCoverCheck 4 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 4 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 4 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 4 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 4 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 4 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 4 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 4 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 4 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 4 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 4 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 4 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell133 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 4 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 4 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 4 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 4 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 4 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 4 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 4 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 4 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 4 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 4 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 4 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 4 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 4 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 4 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 4 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 4 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0452312845 + +theorem e24KC2PhiBelowLeaf33232_c0_c3 : + adaptiveCoverCheck 7 (childHH (childLL (childHL phiBelowCell3323))) = true := by + exact CoverCertificate0452312845.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c1_c0_c0_6_00297 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc2714ba804 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc2714ba804 + +open CertificateCellsc2714ba804 +namespace CoverCertificate3947a065a0 + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3947a065a0 + +theorem e24KC2PhiBelowLeaf33232_c1_c0_c0 : + adaptiveCoverCheck 6 phiBelowCell33232100 = true := by + exact CoverCertificate3947a065a0.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c1_c0_c1_6_00298 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellscab6c01cd3 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellscab6c01cd3 + +open CertificateCellscab6c01cd3 +namespace CoverCertificate4722a46e95 + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4722a46e95 + +theorem e24KC2PhiBelowLeaf33232_c1_c0_c1 : + adaptiveCoverCheck 6 phiBelowCell33232101 = true := by + exact CoverCertificate4722a46e95.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c1_c0_c2_6_00299 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells50cb464285 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells50cb464285 + +open CertificateCells50cb464285 +namespace CoverCertificate31c2c5878b + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate31c2c5878b + +theorem e24KC2PhiBelowLeaf33232_c1_c0_c2 : + adaptiveCoverCheck 6 phiBelowCell33232102 = true := by + exact CoverCertificate31c2c5878b.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c1_c0_c3_6_00300 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb0d9885c34 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb0d9885c34 + +open CertificateCellsb0d9885c34 +namespace CoverCertificate5543096fd0 + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5543096fd0 + +theorem e24KC2PhiBelowLeaf33232_c1_c0_c3 : + adaptiveCoverCheck 6 phiBelowCell33232103 = true := by + exact CoverCertificate5543096fd0.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c1_c1_7_00302 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa6cd731e2a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa6cd731e2a + +open CertificateCellsa6cd731e2a +namespace CoverCertificate0e40621a3c + +private theorem checked000 : adaptiveCoverCheck 4 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 4 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 4 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 4 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell003 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 4 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 4 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 4 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 4 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 4 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 4 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 4 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 4 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell033 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 4 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 4 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 4 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 4 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 4 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 4 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 4 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 4 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 4 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 4 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 4 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 4 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 4 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 4 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 4 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 4 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 4 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 4 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 4 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 4 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell303 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 4 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 4 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 4 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 4 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 4 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 4 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 4 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 4 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0e40621a3c + +theorem e24KC2PhiBelowLeaf33232_c1_c1 : + adaptiveCoverCheck 7 (childLH (childLH (childHL phiBelowCell3323))) = true := by + exact CoverCertificate0e40621a3c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c1_c2_c0_6_00304 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells786c9d28c6 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells786c9d28c6 + +open CertificateCells786c9d28c6 +namespace CoverCertificate63d38ae319 + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate63d38ae319 + +theorem e24KC2PhiBelowLeaf33232_c1_c2_c0 : + adaptiveCoverCheck 6 phiBelowCell33232120 = true := by + exact CoverCertificate63d38ae319.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c1_c2_c1_6_00305 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf9e248a6ed + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf9e248a6ed + +open CertificateCellsf9e248a6ed +namespace CoverCertificated27c8c9957 + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated27c8c9957 + +theorem e24KC2PhiBelowLeaf33232_c1_c2_c1 : + adaptiveCoverCheck 6 phiBelowCell33232121 = true := by + exact CoverCertificated27c8c9957.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c1_c2_c2_6_00306 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells576f3a7876 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells576f3a7876 + +open CertificateCells576f3a7876 +namespace CoverCertificatedd39c23c21 + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatedd39c23c21 + +theorem e24KC2PhiBelowLeaf33232_c1_c2_c2 : + adaptiveCoverCheck 6 phiBelowCell33232122 = true := by + exact CoverCertificatedd39c23c21.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c1_c2_c3_6_00307 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf783690d6f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf783690d6f + +open CertificateCellsf783690d6f +namespace CoverCertificate93b82d2646 + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate93b82d2646 + +theorem e24KC2PhiBelowLeaf33232_c1_c2_c3 : + adaptiveCoverCheck 6 phiBelowCell33232123 = true := by + exact CoverCertificate93b82d2646.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c1_c3_c0_6_00310 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsde47ee26bd + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsde47ee26bd + +open CertificateCellsde47ee26bd +namespace CoverCertificateb0fb1ed898 + +private theorem checked330 : adaptiveCoverCheck 3 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 3 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 3 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 3 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateb0fb1ed898 + +theorem e24KC2PhiBelowLeaf33232_c1_c3_c0 : + adaptiveCoverCheck 6 phiBelowCell33232130 = true := by + exact CoverCertificateb0fb1ed898.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c1_c3_c1_6_00311 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells05c25def9b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells05c25def9b + +open CertificateCells05c25def9b +namespace CoverCertificatee4cd586f88 + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee4cd586f88 + +theorem e24KC2PhiBelowLeaf33232_c1_c3_c1 : + adaptiveCoverCheck 6 phiBelowCell33232131 = true := by + exact CoverCertificatee4cd586f88.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c1_c3_c2_6_00312 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc4f0c2a140 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc4f0c2a140 + +open CertificateCellsc4f0c2a140 +namespace CoverCertificate6f132ca828 + +private theorem checked110 : adaptiveCoverCheck 3 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 3 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 3 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 3 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell113 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 3 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 3 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 3 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 3 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell133 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 3 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 3 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 3 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 3 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell313 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 3 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 3 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 3 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 3 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate6f132ca828 + +theorem e24KC2PhiBelowLeaf33232_c1_c3_c2 : + adaptiveCoverCheck 6 phiBelowCell33232132 = true := by + exact CoverCertificate6f132ca828.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c1_c3_c3_6_00313 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc119914926 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc119914926 + +open CertificateCellsc119914926 +namespace CoverCertificate3f0c4cdced + +private theorem checked000 : adaptiveCoverCheck 3 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 3 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 3 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 3 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell003 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 3 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 3 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 3 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 3 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 3 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 3 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 3 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 3 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell033 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 3 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 3 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 3 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 3 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 3 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 3 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 3 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 3 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 3 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 3 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 3 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 3 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 3 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 3 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 3 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 3 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 3 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 3 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 3 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 3 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell303 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 3 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 3 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 3 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 3 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell323 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3f0c4cdced + +theorem e24KC2PhiBelowLeaf33232_c1_c3_c3 : + adaptiveCoverCheck 6 phiBelowCell33232133 = true := by + exact CoverCertificate3f0c4cdced.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c2_8_00316 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells70881db6a6 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells70881db6a6 + +open CertificateCells70881db6a6 +namespace CoverCertificatee4839d9dd1 + +private theorem checked1100 : adaptiveCoverCheck 4 cell1100 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1100 (by decide +kernel) + +private theorem checked1101 : adaptiveCoverCheck 4 cell1101 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1101 (by decide +kernel) + +private theorem checked1102 : adaptiveCoverCheck 4 cell1102 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1102 (by decide +kernel) + +private theorem checked1103 : adaptiveCoverCheck 4 cell1103 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1103 (by decide +kernel) + +private theorem checked1110 : adaptiveCoverCheck 4 cell1110 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1110 (by decide +kernel) + +private theorem checked1111 : adaptiveCoverCheck 4 cell1111 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1111 (by decide +kernel) + +private theorem checked1112 : adaptiveCoverCheck 4 cell1112 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1112 (by decide +kernel) + +private theorem checked1113 : adaptiveCoverCheck 4 cell1113 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1113 (by decide +kernel) + +private theorem checked1120 : adaptiveCoverCheck 4 cell1120 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1120 (by decide +kernel) + +private theorem checked1121 : adaptiveCoverCheck 4 cell1121 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1121 (by decide +kernel) + +private theorem checked1122 : adaptiveCoverCheck 4 cell1122 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1122 (by decide +kernel) + +private theorem checked1123 : adaptiveCoverCheck 4 cell1123 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1123 (by decide +kernel) + +private theorem checked1130 : adaptiveCoverCheck 4 cell1130 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1130 (by decide +kernel) + +private theorem checked1131 : adaptiveCoverCheck 4 cell1131 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1131 (by decide +kernel) + +private theorem checked1132 : adaptiveCoverCheck 4 cell1132 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1132 (by decide +kernel) + +private theorem checked1133 : adaptiveCoverCheck 4 cell1133 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1133 (by decide +kernel) + +private theorem checked1310 : adaptiveCoverCheck 4 cell1310 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1310 (by decide +kernel) + +private theorem checked1311 : adaptiveCoverCheck 4 cell1311 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1311 (by decide +kernel) + +private theorem checked1312 : adaptiveCoverCheck 4 cell1312 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1312 (by decide +kernel) + +private theorem checked1313 : adaptiveCoverCheck 4 cell1313 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1313 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 5 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 5 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 5 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 5 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 5 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 5 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 5 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 5 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 5 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 5 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 5 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 5 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 5 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 5 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 5 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 5 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 5 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 5 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 5 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 5 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 5 cell110 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell110 + checked1100 checked1101 checked1102 checked1103 + +private theorem checked111 : adaptiveCoverCheck 5 cell111 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell111 + checked1110 checked1111 checked1112 checked1113 + +private theorem checked112 : adaptiveCoverCheck 5 cell112 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell112 + checked1120 checked1121 checked1122 checked1123 + +private theorem checked113 : adaptiveCoverCheck 5 cell113 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell113 + checked1130 checked1131 checked1132 checked1133 + +private theorem checked120 : adaptiveCoverCheck 5 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 5 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 5 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 5 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 5 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 5 cell131 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell131 + checked1310 checked1311 checked1312 checked1313 + +private theorem checked132 : adaptiveCoverCheck 5 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 5 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell133 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 5 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 5 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 5 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 5 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 5 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 5 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 5 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 5 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 5 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 5 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 5 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 5 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 5 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 5 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 5 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 5 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 5 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 5 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 5 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 5 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee4839d9dd1 + +theorem e24KC2PhiBelowLeaf33232_c2 : + adaptiveCoverCheck 8 (childHL (childHL phiBelowCell3323)) = true := by + exact CoverCertificatee4839d9dd1.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c0_7_00318 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsfed0e78e01 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsfed0e78e01 + +open CertificateCellsfed0e78e01 +namespace CoverCertificateb46d993ac8 + +private theorem checked000 : adaptiveCoverCheck 4 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 4 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 4 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 4 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 4 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 4 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 4 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 4 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 4 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 4 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 4 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 4 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 4 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 4 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 4 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 4 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 4 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 4 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 4 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 4 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 4 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 4 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 4 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 4 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 4 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 4 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 4 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 4 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 4 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 4 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 4 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 4 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 4 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 4 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 4 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 4 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 4 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 4 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 4 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 4 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 4 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 4 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 4 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 4 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 4 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 4 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 4 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 4 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 4 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 4 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 4 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 4 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 4 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 4 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 4 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 4 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 4 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 4 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 4 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 4 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 4 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 4 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 4 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 4 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateb46d993ac8 + +theorem e24KC2PhiBelowLeaf33232_c3_c0 : + adaptiveCoverCheck 7 (childLL (childHH (childHL phiBelowCell3323))) = true := by + exact CoverCertificateb46d993ac8.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c1_c0_6_00320 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4781918595 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4781918595 + +open CertificateCells4781918595 +namespace CoverCertificate98e57d34e4 + +private theorem checked110 : adaptiveCoverCheck 3 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 3 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 3 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 3 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell113 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 3 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 3 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 3 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 3 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell133 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 3 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 3 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 3 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 3 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 3 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 3 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 3 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 3 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 3 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 3 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 3 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 3 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 3 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 3 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 3 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 3 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate98e57d34e4 + +theorem e24KC2PhiBelowLeaf33232_c3_c1_c0 : + adaptiveCoverCheck 6 phiBelowCell33232310 = true := by + exact CoverCertificate98e57d34e4.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c1_c1_c0_5_00322 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa584418aa1 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa584418aa1 + +open CertificateCellsa584418aa1 +namespace CoverCertificate27d7b561c3 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate27d7b561c3 + +theorem e24KC2PhiBelowLeaf33232_c3_c1_c1_c0 : + adaptiveCoverCheck 5 (childLL phiBelowCell33232311) = true := by + exact CoverCertificate27d7b561c3.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c1_c1_c1_5_00323 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells09c85e6b71 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells09c85e6b71 + +open CertificateCells09c85e6b71 +namespace CoverCertificate25f92715ca + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate25f92715ca + +theorem e24KC2PhiBelowLeaf33232_c3_c1_c1_c1 : + adaptiveCoverCheck 5 (childLH phiBelowCell33232311) = true := by + exact CoverCertificate25f92715ca.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle026.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle026.lean new file mode 100644 index 0000000000..51c152e716 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle026.lean @@ -0,0 +1,9304 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch039`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CoverCertificatecb0042e211 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLH (childHH (childHL (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatecb0042e211 + +namespace GerverSofa.PartE.CoverCertificated3159d9210 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLH (childHH (childHL (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificated3159d9210 + +namespace GerverSofa.PartE.CoverCertificate738ac21cf7 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childHH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate738ac21cf7 + +namespace GerverSofa.PartE.CoverCertificate0da9d99aab + +private abbrev cellRoot : AngleCell := + (childLL (childHH (childLH (childHH (childHL (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate0da9d99aab + +namespace GerverSofa.PartE.CoverCertificate04249ac52d + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childLH (childHH (childHL (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate04249ac52d + +namespace GerverSofa.PartE.CoverCertificate09e47636f9 + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childLH (childHH (childHL (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate09e47636f9 + +namespace GerverSofa.PartE.CoverCertificatedaf0eef81a + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childLH (childHH (childHL (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatedaf0eef81a + +namespace GerverSofa.PartE.CoverCertificatec3b1c42cf8 + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatec3b1c42cf8 + +namespace GerverSofa.PartE.CoverCertificate5d5fa4761b + +private abbrev cellRoot : AngleCell := + (childLL (childHH (childHH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate5d5fa4761b + +namespace GerverSofa.PartE.CoverCertificate05931abc25 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childHH (childHH (childHL (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate05931abc25 + +namespace GerverSofa.PartE.CoverCertificate954b4350f7 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childHH (childHH (childHL (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate954b4350f7 + +namespace GerverSofa.PartE.CoverCertificate1011a55380 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childHH (childHH (childHL (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate1011a55380 + +namespace GerverSofa.PartE.CoverCertificate8bfb4ead96 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childHH (childHH (childHL (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate8bfb4ead96 + +namespace GerverSofa.PartE.CoverCertificated8d96e8252 + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childHH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +end GerverSofa.PartE.CoverCertificated8d96e8252 + +namespace GerverSofa.PartE.CoverCertificate0df7da9c96 + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childHH (childHL (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate0df7da9c96 + +namespace GerverSofa.PartE.CoverCertificate264c040c94 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childHH (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate264c040c94 + +namespace GerverSofa.PartE.CoverCertificate603f728f09 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childHH (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate603f728f09 + +namespace GerverSofa.PartE.CoverCertificate2808f47ef6 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childHH (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +end GerverSofa.PartE.CoverCertificate2808f47ef6 + +namespace GerverSofa.PartE.CoverCertificate233b768290 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childHH (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate233b768290 + +namespace GerverSofa.PartE.CoverCertificate857c2cf2d4 + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +end GerverSofa.PartE.CoverCertificate857c2cf2d4 + +namespace GerverSofa.PartE.CoverCertificated5abd49324 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childHL (childHH (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +end GerverSofa.PartE.CoverCertificated5abd49324 + +namespace GerverSofa.PartE.CoverCertificatea1a8b4adcc + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childHL (childHH (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatea1a8b4adcc + +namespace GerverSofa.PartE.CoverCertificate77d08095a5 + +private abbrev cellRoot : AngleCell := + (childLL (childHL (childLL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate77d08095a5 + +namespace GerverSofa.PartE.CoverCertificate74ace5aa8c + +private abbrev cellRoot : AngleCell := + (childLH (childHL (childLL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate74ace5aa8c + +namespace GerverSofa.PartE.CoverCertificatea0eb5f4855 + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childLL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatea0eb5f4855 + +namespace GerverSofa.PartE.CoverCertificate9f8da47b45 + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childLL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +end GerverSofa.PartE.CoverCertificate9f8da47b45 + +namespace GerverSofa.PartE.CoverCertificate9e0a37c11f + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childHL (childHH (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +end GerverSofa.PartE.CoverCertificate9e0a37c11f + +namespace GerverSofa.PartE.CoverCertificate0e160b9225 + +private abbrev cellRoot : AngleCell := + (childLH (childHL (childHH (childHH (childHL (childHH (childHH (e24PhiBelowRoot)))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +end GerverSofa.PartE.CoverCertificate0e160b9225 + +namespace GerverSofa.PartE.CoverCertificate684c483ac7 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate684c483ac7 + +namespace GerverSofa.PartE.CoverCertificatef33b36c2e8 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatef33b36c2e8 + +namespace GerverSofa.PartE.CoverCertificate31a518d7cc + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate31a518d7cc + +namespace GerverSofa.PartE.CoverCertificateaad2dcb95d + +private abbrev cellRoot : AngleCell := + (childLL (childHH (childLL (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificateaad2dcb95d + +namespace GerverSofa.PartE.CoverCertificate282e3cce1c + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childLL (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate282e3cce1c + +namespace GerverSofa.PartE.CoverCertificate81553dd700 + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childLL (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate81553dd700 + +namespace GerverSofa.PartE.CoverCertificatef041c45414 + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childLL (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatef041c45414 + +namespace GerverSofa.PartE.CoverCertificatea6cedf179d + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +end GerverSofa.PartE.CoverCertificatea6cedf179d + +namespace GerverSofa.PartE.CoverCertificated71b8c6f81 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificated71b8c6f81 + +namespace GerverSofa.PartE.CertificateCells88f33db9e4 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232311` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232311 : AngleCell := + childLH (childLH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells88f33db9e4 + +namespace GerverSofa.PartE.CertificateCellsbe3ab504ac + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232311` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232311 : AngleCell := + childLH (childLH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsbe3ab504ac + +namespace GerverSofa.PartE.CertificateCellsc46bd88a54 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232312` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232312 : AngleCell := + childHL (childLH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsc46bd88a54 + +namespace GerverSofa.PartE.CertificateCellse089a8f9ae + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232313` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232313 : AngleCell := + childHH (childLH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellse089a8f9ae + +namespace GerverSofa.PartE.CertificateCellsf5ba6a429c + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232313` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232313 : AngleCell := + childHH (childLH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsf5ba6a429c + +namespace GerverSofa.PartE.CertificateCellsff1f5625e7 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232313` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232313 : AngleCell := + childHH (childLH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsff1f5625e7 + +namespace GerverSofa.PartE.CertificateCells2a20ecd725 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232313` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232313 : AngleCell := + childHH (childLH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells2a20ecd725 + +namespace GerverSofa.PartE.CertificateCellsa4ad8d7233 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa4ad8d7233 + +namespace GerverSofa.PartE.CertificateCells6d4400643e + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232330` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232330 : AngleCell := + childLL (childHH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells6d4400643e + +namespace GerverSofa.PartE.CertificateCellsa7c3c8a0e8 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232331` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232331 : AngleCell := + childLH (childHH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsa7c3c8a0e8 + +namespace GerverSofa.PartE.CertificateCellsee53a497bf + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232331` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232331 : AngleCell := + childLH (childHH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsee53a497bf + +namespace GerverSofa.PartE.CertificateCells672c985771 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232331` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232331 : AngleCell := + childLH (childHH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells672c985771 + +namespace GerverSofa.PartE.CertificateCellsbdc9b1cb1f + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232331` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232331 : AngleCell := + childLH (childHH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsbdc9b1cb1f + +namespace GerverSofa.PartE.CertificateCells6f8943a51a + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232332` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232332 : AngleCell := + childHL (childHH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells6f8943a51a + +namespace GerverSofa.PartE.CertificateCells3c06cca83d + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232333` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232333 : AngleCell := + childHH (childHH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells3c06cca83d + +namespace GerverSofa.PartE.CertificateCells9a18487959 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells9a18487959 + +namespace GerverSofa.PartE.CertificateCells5679b6d0b8 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells5679b6d0b8 + +namespace GerverSofa.PartE.CertificateCells94565979ef + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells94565979ef + +namespace GerverSofa.PartE.CertificateCells1a32aff68c + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells1a32aff68c + +namespace GerverSofa.PartE.CertificateCells170ce03ef2 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells170ce03ef2 + +namespace GerverSofa.PartE.CertificateCells8706070b49 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233200` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233200 : AngleCell := + childLL (childLL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells8706070b49 + +namespace GerverSofa.PartE.CertificateCells29218b6dfb + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233201` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233201 : AngleCell := + childLH (childLL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells29218b6dfb + +namespace GerverSofa.PartE.CertificateCellscd85cede4b + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233202` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233202 : AngleCell := + childHL (childLL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellscd85cede4b + +namespace GerverSofa.PartE.CertificateCells14bc720168 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233202` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233202 : AngleCell := + childHL (childLL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells14bc720168 + +namespace GerverSofa.PartE.CertificateCellsc20163bbb0 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233202` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233202 : AngleCell := + childHL (childLL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsc20163bbb0 + +namespace GerverSofa.PartE.CertificateCellsfb4e8d760d + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233202` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233202 : AngleCell := + childHL (childLL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsfb4e8d760d + +namespace GerverSofa.PartE.CertificateCells1167e65ac9 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233203` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233203 : AngleCell := + childHH (childLL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells1167e65ac9 + +namespace GerverSofa.PartE.CertificateCellsa97cd5b1f9 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsa97cd5b1f9 + +namespace GerverSofa.PartE.CertificateCells33181810b4 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233220` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233220 : AngleCell := + childLL (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells33181810b4 + +namespace GerverSofa.PartE.CertificateCellseb15d79203 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233220` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233220 : AngleCell := + childLL (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellseb15d79203 + +namespace GerverSofa.PartE.CertificateCellse0133145f0 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233220` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233220 : AngleCell := + childLL (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellse0133145f0 + +namespace GerverSofa.PartE.CertificateCellsdabae3eeeb + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233220` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233220 : AngleCell := + childLL (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsdabae3eeeb + +namespace GerverSofa.PartE.CertificateCells18d43d056c + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233220` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233220 : AngleCell := + childLL (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells18d43d056c + +namespace GerverSofa.PartE.CertificateCellse49667421f + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233220` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233220 : AngleCell := + childLL (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellse49667421f + +namespace GerverSofa.PartE.CertificateCellsd4600f4c86 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233220` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233220 : AngleCell := + childLL (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsd4600f4c86 + +namespace GerverSofa.PartE.CertificateCells368be09a97 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233221` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233221 : AngleCell := + childLH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells368be09a97 + +namespace GerverSofa.PartE.CertificateCells1f54f397e7 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233221` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233221 : AngleCell := + childLH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells1f54f397e7 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.PhiBelow.Leaf00324`. +* `KernelOnly.PartE.PhiBelow.Leaf00325`. +* `KernelOnly.PartE.PhiBelow.Leaf00327`. +* `KernelOnly.PartE.PhiBelow.Leaf00329`. +* `KernelOnly.PartE.PhiBelow.Leaf00330`. +* `KernelOnly.PartE.PhiBelow.Leaf00331`. +* `KernelOnly.PartE.PhiBelow.Leaf00332`. +* `KernelOnly.PartE.PhiBelow.Leaf00335`. +* `KernelOnly.PartE.PhiBelow.Leaf00337`. +* `KernelOnly.PartE.PhiBelow.Leaf00339`. +* `KernelOnly.PartE.PhiBelow.Leaf00340`. +* `KernelOnly.PartE.PhiBelow.Leaf00341`. +* `KernelOnly.PartE.PhiBelow.Leaf00342`. +* `KernelOnly.PartE.PhiBelow.Leaf00344`. +* `KernelOnly.PartE.PhiBelow.Leaf00345`. +* `KernelOnly.PartE.PhiBelow.Leaf00354`. +* `KernelOnly.PartE.PhiBelow.Leaf00355`. +* `KernelOnly.PartE.PhiBelow.Leaf00356`. +* `KernelOnly.PartE.PhiBelow.Leaf00357`. +* `KernelOnly.PartE.PhiBelow.Leaf00359`. +* `KernelOnly.PartE.PhiBelow.Leaf00362`. +* `KernelOnly.PartE.PhiBelow.Leaf00363`. +* `KernelOnly.PartE.PhiBelow.Leaf00365`. +* `KernelOnly.PartE.PhiBelow.Leaf00366`. +* `KernelOnly.PartE.PhiBelow.Leaf00367`. +* `KernelOnly.PartE.PhiBelow.Leaf00368`. +* `KernelOnly.PartE.PhiBelow.Leaf00370`. +* `KernelOnly.PartE.PhiBelow.Leaf00372`. +* `KernelOnly.PartE.PhiBelow.Leaf00375`. +* `KernelOnly.PartE.PhiBelow.Leaf00376`. +* `KernelOnly.PartE.PhiBelow.Leaf00377`. +* `KernelOnly.PartE.PhiBelow.Leaf00379`. +* `KernelOnly.PartE.PhiBelow.Leaf00380`. +* `KernelOnly.PartE.PhiBelow.Leaf00381`. +* `KernelOnly.PartE.PhiBelow.Leaf00382`. +* `KernelOnly.PartE.PhiBelow.Leaf00386`. +* `KernelOnly.PartE.PhiBelow.Leaf00387`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c1_c1_c2_5_00324 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells88f33db9e4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells88f33db9e4 + +open CertificateCells88f33db9e4 +namespace CoverCertificatecb0042e211 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatecb0042e211 + +theorem e24KC2PhiBelowLeaf33232_c3_c1_c1_c2 : + adaptiveCoverCheck 5 (childHL phiBelowCell33232311) = true := by + exact CoverCertificatecb0042e211.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c1_c1_c3_5_00325 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsbe3ab504ac + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsbe3ab504ac + +open CertificateCellsbe3ab504ac +namespace CoverCertificated3159d9210 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated3159d9210 + +theorem e24KC2PhiBelowLeaf33232_c3_c1_c1_c3 : + adaptiveCoverCheck 5 (childHH phiBelowCell33232311) = true := by + exact CoverCertificated3159d9210.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c1_c2_6_00327 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc46bd88a54 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc46bd88a54 + +open CertificateCellsc46bd88a54 +namespace CoverCertificate738ac21cf7 + +private theorem checked100 : adaptiveCoverCheck 3 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 3 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 3 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 3 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 3 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 3 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 3 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 3 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 3 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 3 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 3 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 3 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 3 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 3 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 3 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 3 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell133 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 3 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 3 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 3 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 3 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 3 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 3 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 3 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 3 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 3 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 3 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 3 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 3 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 3 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 3 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 3 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 3 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate738ac21cf7 + +theorem e24KC2PhiBelowLeaf33232_c3_c1_c2 : + adaptiveCoverCheck 6 phiBelowCell33232312 = true := by + exact CoverCertificate738ac21cf7.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c1_c3_c0_5_00329 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse089a8f9ae + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse089a8f9ae + +open CertificateCellse089a8f9ae +namespace CoverCertificate0da9d99aab + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0da9d99aab + +theorem e24KC2PhiBelowLeaf33232_c3_c1_c3_c0 : + adaptiveCoverCheck 5 (childLL phiBelowCell33232313) = true := by + exact CoverCertificate0da9d99aab.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c1_c3_c1_5_00330 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf5ba6a429c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf5ba6a429c + +open CertificateCellsf5ba6a429c +namespace CoverCertificate04249ac52d + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate04249ac52d + +theorem e24KC2PhiBelowLeaf33232_c3_c1_c3_c1 : + adaptiveCoverCheck 5 (childLH phiBelowCell33232313) = true := by + exact CoverCertificate04249ac52d.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c1_c3_c2_5_00331 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsff1f5625e7 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsff1f5625e7 + +open CertificateCellsff1f5625e7 +namespace CoverCertificate09e47636f9 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate09e47636f9 + +theorem e24KC2PhiBelowLeaf33232_c3_c1_c3_c2 : + adaptiveCoverCheck 5 (childHL phiBelowCell33232313) = true := by + exact CoverCertificate09e47636f9.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c1_c3_c3_5_00332 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2a20ecd725 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2a20ecd725 + +open CertificateCells2a20ecd725 +namespace CoverCertificatedaf0eef81a + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatedaf0eef81a + +theorem e24KC2PhiBelowLeaf33232_c3_c1_c3_c3 : + adaptiveCoverCheck 5 (childHH phiBelowCell33232313) = true := by + exact CoverCertificatedaf0eef81a.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c2_7_00335 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa4ad8d7233 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa4ad8d7233 + +open CertificateCellsa4ad8d7233 +namespace CoverCertificatec3b1c42cf8 + +private theorem checked000 : adaptiveCoverCheck 4 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 4 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 4 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 4 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 4 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 4 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 4 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 4 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell013 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 4 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 4 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 4 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 4 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 4 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 4 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 4 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 4 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 4 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 4 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 4 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 4 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 4 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 4 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 4 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 4 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 4 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 4 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 4 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 4 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell133 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 4 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 4 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 4 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 4 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 4 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 4 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 4 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 4 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell313 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 4 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 4 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 4 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 4 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec3b1c42cf8 + +theorem e24KC2PhiBelowLeaf33232_c3_c2 : + adaptiveCoverCheck 7 (childHL (childHH (childHL phiBelowCell3323))) = true := by + exact CoverCertificatec3b1c42cf8.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c3_c0_6_00337 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6d4400643e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6d4400643e + +open CertificateCells6d4400643e +namespace CoverCertificate5d5fa4761b + +private theorem checked100 : adaptiveCoverCheck 3 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 3 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 3 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 3 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 3 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 3 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 3 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 3 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 3 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 3 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 3 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 3 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 3 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 3 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 3 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 3 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell133 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 3 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 3 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 3 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 3 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 3 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 3 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 3 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 3 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell313 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 3 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 3 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 3 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 3 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5d5fa4761b + +theorem e24KC2PhiBelowLeaf33232_c3_c3_c0 : + adaptiveCoverCheck 6 phiBelowCell33232330 = true := by + exact CoverCertificate5d5fa4761b.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c3_c1_c0_5_00339 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa7c3c8a0e8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa7c3c8a0e8 + +open CertificateCellsa7c3c8a0e8 +namespace CoverCertificate05931abc25 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate05931abc25 + +theorem e24KC2PhiBelowLeaf33232_c3_c3_c1_c0 : + adaptiveCoverCheck 5 (childLL phiBelowCell33232331) = true := by + exact CoverCertificate05931abc25.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c3_c1_c1_5_00340 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsee53a497bf + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsee53a497bf + +open CertificateCellsee53a497bf +namespace CoverCertificate954b4350f7 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate954b4350f7 + +theorem e24KC2PhiBelowLeaf33232_c3_c3_c1_c1 : + adaptiveCoverCheck 5 (childLH phiBelowCell33232331) = true := by + exact CoverCertificate954b4350f7.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c3_c1_c2_5_00341 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells672c985771 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells672c985771 + +open CertificateCells672c985771 +namespace CoverCertificate1011a55380 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1011a55380 + +theorem e24KC2PhiBelowLeaf33232_c3_c3_c1_c2 : + adaptiveCoverCheck 5 (childHL phiBelowCell33232331) = true := by + exact CoverCertificate1011a55380.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c3_c1_c3_5_00342 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsbdc9b1cb1f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsbdc9b1cb1f + +open CertificateCellsbdc9b1cb1f +namespace CoverCertificate8bfb4ead96 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate8bfb4ead96 + +theorem e24KC2PhiBelowLeaf33232_c3_c3_c1_c3 : + adaptiveCoverCheck 5 (childHH phiBelowCell33232331) = true := by + exact CoverCertificate8bfb4ead96.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c3_c2_6_00344 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6f8943a51a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6f8943a51a + +open CertificateCells6f8943a51a +namespace CoverCertificated8d96e8252 + +private theorem checked110 : adaptiveCoverCheck 3 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 3 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 3 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 3 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated8d96e8252 + +theorem e24KC2PhiBelowLeaf33232_c3_c3_c2 : + adaptiveCoverCheck 6 phiBelowCell33232332 = true := by + exact CoverCertificated8d96e8252.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33232_c3_c3_c3_6_00345 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3c06cca83d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3c06cca83d + +open CertificateCells3c06cca83d +namespace CoverCertificate0df7da9c96 + +private theorem checked000 : adaptiveCoverCheck 3 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 3 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 3 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 3 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 3 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 3 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 3 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 3 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 3 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 3 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 3 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 3 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 3 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 3 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 3 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 3 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 3 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 3 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 3 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 3 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 3 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 3 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 3 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 3 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 3 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 3 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 3 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 3 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 3 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 3 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 3 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 3 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell133 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 3 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 3 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 3 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 3 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell213 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 3 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 3 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 3 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 3 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 3 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 3 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 3 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 3 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 3 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 3 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 3 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 3 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 3 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 3 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 3 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 3 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0df7da9c96 + +theorem e24KC2PhiBelowLeaf33232_c3_c3_c3 : + adaptiveCoverCheck 6 phiBelowCell33232333 = true := by + exact CoverCertificate0df7da9c96.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c0_c0_7_00354 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9a18487959 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9a18487959 + +open CertificateCells9a18487959 +namespace CoverCertificate264c040c94 + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate264c040c94 + +theorem e24KC2PhiBelowLeaf33233_c0_c0 : + adaptiveCoverCheck 7 (childLL (childLL (childHH phiBelowCell3323))) = true := by + exact CoverCertificate264c040c94.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c0_c1_7_00355 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5679b6d0b8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5679b6d0b8 + +open CertificateCells5679b6d0b8 +namespace CoverCertificate603f728f09 + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate603f728f09 + +theorem e24KC2PhiBelowLeaf33233_c0_c1 : + adaptiveCoverCheck 7 (childLH (childLL (childHH phiBelowCell3323))) = true := by + exact CoverCertificate603f728f09.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c0_c2_7_00356 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells94565979ef + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells94565979ef + +open CertificateCells94565979ef +namespace CoverCertificate2808f47ef6 + +private theorem checked000 : adaptiveCoverCheck 4 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 4 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 4 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 4 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell003 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 4 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 4 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 4 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 4 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 4 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 4 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 4 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 4 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell033 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 4 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 4 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 4 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 4 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 4 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 4 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 4 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 4 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 4 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 4 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 4 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 4 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 4 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 4 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 4 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 4 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 4 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 4 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 4 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 4 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell323 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate2808f47ef6 + +theorem e24KC2PhiBelowLeaf33233_c0_c2 : + adaptiveCoverCheck 7 (childHL (childLL (childHH phiBelowCell3323))) = true := by + exact CoverCertificate2808f47ef6.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c0_c3_7_00357 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1a32aff68c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1a32aff68c + +open CertificateCells1a32aff68c +namespace CoverCertificate233b768290 + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate233b768290 + +theorem e24KC2PhiBelowLeaf33233_c0_c3 : + adaptiveCoverCheck 7 (childHH (childLL (childHH phiBelowCell3323))) = true := by + exact CoverCertificate233b768290.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c1_8_00359 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells170ce03ef2 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells170ce03ef2 + +open CertificateCells170ce03ef2 +namespace CoverCertificate857c2cf2d4 + +private theorem checked220 : adaptiveCoverCheck 5 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 5 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 5 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 5 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell223 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate857c2cf2d4 + +theorem e24KC2PhiBelowLeaf33233_c1 : + adaptiveCoverCheck 8 (childLH (childHH phiBelowCell3323)) = true := by + exact CoverCertificate857c2cf2d4.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c0_c0_6_00362 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8706070b49 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8706070b49 + +open CertificateCells8706070b49 +namespace CoverCertificated5abd49324 + +private theorem checked020 : adaptiveCoverCheck 3 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 3 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 3 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 3 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell023 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 3 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 3 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 3 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 3 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 3 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 3 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 3 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 3 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 3 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 3 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 3 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 3 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 3 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 3 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 3 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 3 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 3 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 3 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 3 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 3 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell323 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated5abd49324 + +theorem e24KC2PhiBelowLeaf33233_c2_c0_c0 : + adaptiveCoverCheck 6 phiBelowCell33233200 = true := by + exact CoverCertificated5abd49324.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c0_c1_6_00363 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells29218b6dfb + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells29218b6dfb + +open CertificateCells29218b6dfb +namespace CoverCertificatea1a8b4adcc + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea1a8b4adcc + +theorem e24KC2PhiBelowLeaf33233_c2_c0_c1 : + adaptiveCoverCheck 6 phiBelowCell33233201 = true := by + exact CoverCertificatea1a8b4adcc.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c0_c2_c0_5_00365 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellscd85cede4b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellscd85cede4b + +open CertificateCellscd85cede4b +namespace CoverCertificate77d08095a5 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate77d08095a5 + +theorem e24KC2PhiBelowLeaf33233_c2_c0_c2_c0 : + adaptiveCoverCheck 5 (childLL phiBelowCell33233202) = true := by + exact CoverCertificate77d08095a5.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c0_c2_c1_5_00366 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells14bc720168 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells14bc720168 + +open CertificateCells14bc720168 +namespace CoverCertificate74ace5aa8c + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate74ace5aa8c + +theorem e24KC2PhiBelowLeaf33233_c2_c0_c2_c1 : + adaptiveCoverCheck 5 (childLH phiBelowCell33233202) = true := by + exact CoverCertificate74ace5aa8c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c0_c2_c2_5_00367 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc20163bbb0 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc20163bbb0 + +open CertificateCellsc20163bbb0 +namespace CoverCertificatea0eb5f4855 + +private theorem checked130 : adaptiveCoverCheck 2 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 2 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 2 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 2 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell133 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 2 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 2 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 2 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 2 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell313 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 2 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 2 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 2 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 2 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea0eb5f4855 + +theorem e24KC2PhiBelowLeaf33233_c2_c0_c2_c2 : + adaptiveCoverCheck 5 (childHL phiBelowCell33233202) = true := by + exact CoverCertificatea0eb5f4855.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c0_c2_c3_5_00368 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsfb4e8d760d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsfb4e8d760d + +open CertificateCellsfb4e8d760d +namespace CoverCertificate9f8da47b45 + +private theorem checked200 : adaptiveCoverCheck 2 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 2 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 2 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 2 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell203 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 2 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 2 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 2 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 2 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 2 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 2 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 2 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 2 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell233 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate9f8da47b45 + +theorem e24KC2PhiBelowLeaf33233_c2_c0_c2_c3 : + adaptiveCoverCheck 5 (childHH phiBelowCell33233202) = true := by + exact CoverCertificate9f8da47b45.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c0_c3_6_00370 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1167e65ac9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1167e65ac9 + +open CertificateCells1167e65ac9 +namespace CoverCertificate9e0a37c11f + +private theorem checked020 : adaptiveCoverCheck 3 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 3 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 3 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 3 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell023 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 3 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 3 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 3 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 3 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 3 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 3 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 3 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 3 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 3 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 3 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 3 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 3 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 3 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 3 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 3 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 3 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell233 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate9e0a37c11f + +theorem e24KC2PhiBelowLeaf33233_c2_c0_c3 : + adaptiveCoverCheck 6 phiBelowCell33233203 = true := by + exact CoverCertificate9e0a37c11f.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c1_7_00372 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa97cd5b1f9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa97cd5b1f9 + +open CertificateCellsa97cd5b1f9 +namespace CoverCertificate0e160b9225 + +private theorem checked020 : adaptiveCoverCheck 4 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 4 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 4 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 4 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell023 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 4 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 4 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 4 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 4 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 4 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 4 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 4 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 4 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 4 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 4 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 4 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 4 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 4 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 4 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 4 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 4 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 4 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 4 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 4 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 4 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell323 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 5 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 5 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 5 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 5 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 5 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 5 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 5 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 5 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0e160b9225 + +theorem e24KC2PhiBelowLeaf33233_c2_c1 : + adaptiveCoverCheck 7 (childLH (childHL (childHH phiBelowCell3323))) = true := by + exact CoverCertificate0e160b9225.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c0_c0_5_00375 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells33181810b4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells33181810b4 + +open CertificateCells33181810b4 +namespace CoverCertificate684c483ac7 + +private theorem checked110 : adaptiveCoverCheck 2 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 2 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 2 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 2 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell113 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 2 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 2 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 2 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 2 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell133 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 2 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 2 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 2 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 2 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 2 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 2 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 2 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 2 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 2 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 2 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 2 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 2 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 2 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 2 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 2 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 2 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate684c483ac7 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c0_c0 : + adaptiveCoverCheck 5 (childLL phiBelowCell33233220) = true := by + exact CoverCertificate684c483ac7.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c0_c1_5_00376 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellseb15d79203 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellseb15d79203 + +open CertificateCellseb15d79203 +namespace CoverCertificatef33b36c2e8 + +private theorem checked000 : adaptiveCoverCheck 2 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 2 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 2 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 2 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 2 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 2 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 2 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 2 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 2 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 2 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 2 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 2 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 2 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 2 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 2 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 2 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 2 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 2 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 2 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 2 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell123 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 2 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 2 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 2 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 2 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 2 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 2 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 2 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 2 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 2 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 2 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 2 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 2 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 2 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 2 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 2 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 2 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 2 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 2 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 2 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 2 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 2 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 2 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 2 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 2 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 2 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 2 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 2 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 2 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 2 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 2 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 2 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 2 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef33b36c2e8 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c0_c1 : + adaptiveCoverCheck 5 (childLH phiBelowCell33233220) = true := by + exact CoverCertificatef33b36c2e8.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c0_c2_5_00377 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse0133145f0 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse0133145f0 + +open CertificateCellse0133145f0 +namespace CoverCertificate31a518d7cc + +private theorem checked100 : adaptiveCoverCheck 2 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 2 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 2 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 2 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 2 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 2 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 2 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 2 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 2 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 2 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 2 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 2 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 2 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 2 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 2 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 2 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell133 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 2 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 2 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 2 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 2 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 2 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 2 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 2 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 2 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 2 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 2 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 2 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 2 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 2 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 2 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 2 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 2 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate31a518d7cc + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c0_c2 : + adaptiveCoverCheck 5 (childHL phiBelowCell33233220) = true := by + exact CoverCertificate31a518d7cc.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c0_c3_c0_4_00379 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsdabae3eeeb + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsdabae3eeeb + +open CertificateCellsdabae3eeeb +namespace CoverCertificateaad2dcb95d + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateaad2dcb95d + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c0_c3_c0 : + adaptiveCoverCheck 4 (childLL (childHH phiBelowCell33233220)) = true := by + exact CoverCertificateaad2dcb95d.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c0_c3_c1_4_00380 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells18d43d056c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells18d43d056c + +open CertificateCells18d43d056c +namespace CoverCertificate282e3cce1c + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate282e3cce1c + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c0_c3_c1 : + adaptiveCoverCheck 4 (childLH (childHH phiBelowCell33233220)) = true := by + exact CoverCertificate282e3cce1c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c0_c3_c2_4_00381 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse49667421f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse49667421f + +open CertificateCellse49667421f +namespace CoverCertificate81553dd700 + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate81553dd700 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c0_c3_c2 : + adaptiveCoverCheck 4 (childHL (childHH phiBelowCell33233220)) = true := by + exact CoverCertificate81553dd700.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c0_c3_c3_4_00382 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd4600f4c86 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd4600f4c86 + +open CertificateCellsd4600f4c86 +namespace CoverCertificatef041c45414 + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef041c45414 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c0_c3_c3 : + adaptiveCoverCheck 4 (childHH (childHH phiBelowCell33233220)) = true := by + exact CoverCertificatef041c45414.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c1_c0_5_00386 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells368be09a97 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells368be09a97 + +open CertificateCells368be09a97 +namespace CoverCertificatea6cedf179d + +private theorem checked220 : adaptiveCoverCheck 2 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 2 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 2 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 2 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell223 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea6cedf179d + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c1_c0 : + adaptiveCoverCheck 5 (childLL phiBelowCell33233221) = true := by + exact CoverCertificatea6cedf179d.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c1_c1_5_00387 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1f54f397e7 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1f54f397e7 + +open CertificateCells1f54f397e7 +namespace CoverCertificated71b8c6f81 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated71b8c6f81 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c1_c1 : + adaptiveCoverCheck 5 (childLH phiBelowCell33233221) = true := by + exact CoverCertificated71b8c6f81.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle027.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle027.lean new file mode 100644 index 0000000000..6d4b1387d1 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle027.lean @@ -0,0 +1,9396 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch040`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CoverCertificate1d94560d47 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate1d94560d47 + +namespace GerverSofa.PartE.CoverCertificatefa0ec53117 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +end GerverSofa.PartE.CoverCertificatefa0ec53117 + +namespace GerverSofa.PartE.CoverCertificate38482fd67b + +private abbrev cellRoot : AngleCell := + (childLL (childHL (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate38482fd67b + +namespace GerverSofa.PartE.CoverCertificate774f03a3cd + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childHL (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate774f03a3cd + +namespace GerverSofa.PartE.CoverCertificate141819f8d7 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childHL (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate141819f8d7 + +namespace GerverSofa.PartE.CoverCertificated9624571ac + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childHL (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificated9624571ac + +namespace GerverSofa.PartE.CoverCertificate6840dd8bca + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childHL (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate6840dd8bca + +namespace GerverSofa.PartE.CoverCertificate781ead79bd + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +end GerverSofa.PartE.CoverCertificate781ead79bd + +namespace GerverSofa.PartE.CoverCertificatefcce63a7f6 + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatefcce63a7f6 + +namespace GerverSofa.PartE.CoverCertificate84a4f6988f + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childHH (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate84a4f6988f + +namespace GerverSofa.PartE.CoverCertificate03b35dd0cf + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childHH (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +end GerverSofa.PartE.CoverCertificate03b35dd0cf + +namespace GerverSofa.PartE.CoverCertificate2781da35b5 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childHH (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate2781da35b5 + +namespace GerverSofa.PartE.CoverCertificate7c9b16d986 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childHH (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate7c9b16d986 + +namespace GerverSofa.PartE.CoverCertificate7a97434462 + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +private abbrev cell2220 : AngleCell := + childLL cell222 + +private abbrev cell2221 : AngleCell := + childLH cell222 + +private abbrev cell2222 : AngleCell := + childHL cell222 + +private abbrev cell2223 : AngleCell := + childHH cell222 + +end GerverSofa.PartE.CoverCertificate7a97434462 + +namespace GerverSofa.PartE.CoverCertificate993722881e + +private abbrev cellRoot : AngleCell := + (childLL (childHL (childHH (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate993722881e + +namespace GerverSofa.PartE.CoverCertificate8f03b44673 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childHL (childHH (childHL (childHL (childHH (childHH (childHL (childHH + (childHH (e24PhiBelowRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate8f03b44673 + +namespace GerverSofa.PartE.CoverCertificatefffe180fcd + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childHL (childHH (childHL (childHL (childHH (childHH (childHL (childHH + (childHH (e24PhiBelowRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatefffe180fcd + +namespace GerverSofa.PartE.CoverCertificated2a9415b82 + +private abbrev cellRoot : AngleCell := + (childLH (childHL (childLH (childHL (childHH (childHL (childHL (childHH (childHH (childHL + (childHH (childHH (e24PhiBelowRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificated2a9415b82 + +namespace GerverSofa.PartE.CoverCertificatef93658a45e + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childLH (childHL (childHH (childHL (childHL (childHH (childHH (childHL + (childHH (childHH (e24PhiBelowRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatef93658a45e + +namespace GerverSofa.PartE.CoverCertificate3d3c2d6223 + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childLH (childHL (childHH (childHL (childHL (childHH (childHH (childHL + (childHH (childHH (e24PhiBelowRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate3d3c2d6223 + +namespace GerverSofa.PartE.CoverCertificatea6d03c9687 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childHL (childHH (childHL (childHL (childHH (childHH (childHL (childHH + (childHH (e24PhiBelowRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatea6d03c9687 + +namespace GerverSofa.PartE.CoverCertificatefce6b2559b + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childHH (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatefce6b2559b + +namespace GerverSofa.PartE.CoverCertificate0ac0b8c68f + +private abbrev cellRoot : AngleCell := + (childLL (childHH (childHL (childHH (childHL (childHL (childHH (childHH (childHL (childHH + (childHH (e24PhiBelowRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate0ac0b8c68f + +namespace GerverSofa.PartE.CoverCertificate9ea4339e1a + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childHL (childHH (childHL (childHL (childHH (childHH (childHL (childHH + (childHH (e24PhiBelowRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate9ea4339e1a + +namespace GerverSofa.PartE.CoverCertificatec65ef0b520 + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childHL (childHH (childHL (childHL (childHH (childHH (childHL (childHH + (childHH (e24PhiBelowRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatec65ef0b520 + +namespace GerverSofa.PartE.CoverCertificate64e89cb34c + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childHL (childHH (childHL (childHL (childHH (childHH (childHL (childHH + (childHH (e24PhiBelowRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate64e89cb34c + +namespace GerverSofa.PartE.CoverCertificatef71635c89a + +private abbrev cellRoot : AngleCell := + (childLL (childHH (childHH (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatef71635c89a + +namespace GerverSofa.PartE.CoverCertificate4d208d4148 + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childHH (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +end GerverSofa.PartE.CoverCertificate4d208d4148 + +namespace GerverSofa.PartE.CoverCertificatebbc2bd14f5 + +private abbrev cellRoot : AngleCell := + (childLL (childHL (childHH (childHH (childHL (childHL (childHH (childHH (childHL (childHH + (childHH (e24PhiBelowRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatebbc2bd14f5 + +namespace GerverSofa.PartE.CoverCertificate0f826c338a + +private abbrev cellRoot : AngleCell := + (childLH (childHL (childHH (childHH (childHL (childHL (childHH (childHH (childHL (childHH + (childHH (e24PhiBelowRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +end GerverSofa.PartE.CoverCertificate0f826c338a + +namespace GerverSofa.PartE.CoverCertificate8518e81351 + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childHH (childHH (childHL (childHL (childHH (childHH (childHL (childHH + (childHH (e24PhiBelowRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate8518e81351 + +namespace GerverSofa.PartE.CoverCertificate4ecdb55cf7 + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childHH (childHH (childHL (childHL (childHH (childHH (childHL (childHH + (childHH (e24PhiBelowRoot)))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell130 : AngleCell := + childLL cell13 + +private abbrev cell131 : AngleCell := + childLH cell13 + +private abbrev cell132 : AngleCell := + childHL cell13 + +private abbrev cell133 : AngleCell := + childHH cell13 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate4ecdb55cf7 + +namespace GerverSofa.PartE.CertificateCells6309ffd285 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233221` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233221 : AngleCell := + childLH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells6309ffd285 + +namespace GerverSofa.PartE.CertificateCells48d3b8afd4 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233221` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233221 : AngleCell := + childLH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells48d3b8afd4 + +namespace GerverSofa.PartE.CertificateCellsf95c4e9f9f + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233222` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233222 : AngleCell := + childHL (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsf95c4e9f9f + +namespace GerverSofa.PartE.CertificateCells38449ac605 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233222` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233222 : AngleCell := + childHL (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells38449ac605 + +namespace GerverSofa.PartE.CertificateCells43ee04fc11 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233222` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233222 : AngleCell := + childHL (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells43ee04fc11 + +namespace GerverSofa.PartE.CertificateCells303915a97c + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233222` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233222 : AngleCell := + childHL (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells303915a97c + +namespace GerverSofa.PartE.CertificateCells88a95e6b6b + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233222` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233222 : AngleCell := + childHL (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells88a95e6b6b + +namespace GerverSofa.PartE.CertificateCells4611c2250a + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233222` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233222 : AngleCell := + childHL (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells4611c2250a + +namespace GerverSofa.PartE.CertificateCellscbfda2707a + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233222` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233222 : AngleCell := + childHL (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellscbfda2707a + +namespace GerverSofa.PartE.CertificateCells003531f536 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells003531f536 + +namespace GerverSofa.PartE.CertificateCells1f3e328824 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells1f3e328824 + +namespace GerverSofa.PartE.CertificateCells47ff5dcac0 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells47ff5dcac0 + +namespace GerverSofa.PartE.CertificateCells65a3665007 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells65a3665007 + +namespace GerverSofa.PartE.CertificateCells45a72ee869 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells45a72ee869 + +namespace GerverSofa.PartE.CertificateCells3d2f3b2d12 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells3d2f3b2d12 + +namespace GerverSofa.PartE.CertificateCellsce18f6e886 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsce18f6e886 + +namespace GerverSofa.PartE.CertificateCellsb5cebfd5b6 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsb5cebfd5b6 + +namespace GerverSofa.PartE.CertificateCells2aad13d936 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +/-- Subcell `332332232120` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell332332232120 : AngleCell := + childLL (childHL (childLH (childHL phiBelowCell33233223))) + +end GerverSofa.PartE.CertificateCells2aad13d936 + +namespace GerverSofa.PartE.CertificateCells6a90bc785d + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +/-- Subcell `332332232120` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell332332232120 : AngleCell := + childLL (childHL (childLH (childHL phiBelowCell33233223))) + +end GerverSofa.PartE.CertificateCells6a90bc785d + +namespace GerverSofa.PartE.CertificateCellsdb781a1ec8 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +/-- Subcell `332332232120` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell332332232120 : AngleCell := + childLL (childHL (childLH (childHL phiBelowCell33233223))) + +end GerverSofa.PartE.CertificateCellsdb781a1ec8 + +namespace GerverSofa.PartE.CertificateCells1cfc9442b0 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +/-- Subcell `332332232120` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell332332232120 : AngleCell := + childLL (childHL (childLH (childHL phiBelowCell33233223))) + +end GerverSofa.PartE.CertificateCells1cfc9442b0 + +namespace GerverSofa.PartE.CertificateCells2dfa44feb0 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +/-- Subcell `332332232121` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell332332232121 : AngleCell := + childLH (childHL (childLH (childHL phiBelowCell33233223))) + +end GerverSofa.PartE.CertificateCells2dfa44feb0 + +namespace GerverSofa.PartE.CertificateCells0c5519e954 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +/-- Subcell `332332232122` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell332332232122 : AngleCell := + childHL (childHL (childLH (childHL phiBelowCell33233223))) + +end GerverSofa.PartE.CertificateCells0c5519e954 + +namespace GerverSofa.PartE.CertificateCells06dff71a35 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +/-- Subcell `332332232123` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell332332232123 : AngleCell := + childHH (childHL (childLH (childHL phiBelowCell33233223))) + +end GerverSofa.PartE.CertificateCells06dff71a35 + +namespace GerverSofa.PartE.CertificateCells529c7df50a + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells529c7df50a + +namespace GerverSofa.PartE.CertificateCells25a838feeb + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells25a838feeb + +namespace GerverSofa.PartE.CertificateCellsbc23e0e6af + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsbc23e0e6af + +namespace GerverSofa.PartE.CertificateCells13f9420722 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells13f9420722 + +namespace GerverSofa.PartE.CertificateCells8f726fb04b + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells8f726fb04b + +namespace GerverSofa.PartE.CertificateCells7e3f428846 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells7e3f428846 + +namespace GerverSofa.PartE.CertificateCells4caf1a7a91 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells4caf1a7a91 + +namespace GerverSofa.PartE.CertificateCells2907beb942 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells2907beb942 + +namespace GerverSofa.PartE.CertificateCellsb81ac6c2c5 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsb81ac6c2c5 + +namespace GerverSofa.PartE.CertificateCells6afa02519f + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells6afa02519f + +namespace GerverSofa.PartE.CertificateCells27566e6112 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells27566e6112 + +namespace GerverSofa.PartE.CertificateCellsc20116b798 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsc20116b798 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.PhiBelow.Leaf00388`. +* `KernelOnly.PartE.PhiBelow.Leaf00389`. +* `KernelOnly.PartE.PhiBelow.Leaf00392`. +* `KernelOnly.PartE.PhiBelow.Leaf00394`. +* `KernelOnly.PartE.PhiBelow.Leaf00395`. +* `KernelOnly.PartE.PhiBelow.Leaf00396`. +* `KernelOnly.PartE.PhiBelow.Leaf00397`. +* `KernelOnly.PartE.PhiBelow.Leaf00399`. +* `KernelOnly.PartE.PhiBelow.Leaf00400`. +* `KernelOnly.PartE.PhiBelow.Leaf00404`. +* `KernelOnly.PartE.PhiBelow.Leaf00405`. +* `KernelOnly.PartE.PhiBelow.Leaf00406`. +* `KernelOnly.PartE.PhiBelow.Leaf00407`. +* `KernelOnly.PartE.PhiBelow.Leaf00409`. +* `KernelOnly.PartE.PhiBelow.Leaf00411`. +* `KernelOnly.PartE.PhiBelow.Leaf00413`. +* `KernelOnly.PartE.PhiBelow.Leaf00414`. +* `KernelOnly.PartE.PhiBelow.Leaf00417`. +* `KernelOnly.PartE.PhiBelow.Leaf00418`. +* `KernelOnly.PartE.PhiBelow.Leaf00419`. +* `KernelOnly.PartE.PhiBelow.Leaf00420`. +* `KernelOnly.PartE.PhiBelow.Leaf00422`. +* `KernelOnly.PartE.PhiBelow.Leaf00423`. +* `KernelOnly.PartE.PhiBelow.Leaf00424`. +* `KernelOnly.PartE.PhiBelow.Leaf00426`. +* `KernelOnly.PartE.PhiBelow.Leaf00428`. +* `KernelOnly.PartE.PhiBelow.Leaf00430`. +* `KernelOnly.PartE.PhiBelow.Leaf00431`. +* `KernelOnly.PartE.PhiBelow.Leaf00432`. +* `KernelOnly.PartE.PhiBelow.Leaf00433`. +* `KernelOnly.PartE.PhiBelow.Leaf00437`. +* `KernelOnly.PartE.PhiBelow.Leaf00438`. +* `KernelOnly.PartE.PhiBelow.Leaf00440`. +* `KernelOnly.PartE.PhiBelow.Leaf00441`. +* `KernelOnly.PartE.PhiBelow.Leaf00442`. +* `KernelOnly.PartE.PhiBelow.Leaf00443`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c1_c2_5_00388 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6309ffd285 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6309ffd285 + +open CertificateCells6309ffd285 +namespace CoverCertificate1d94560d47 + +private theorem checked000 : adaptiveCoverCheck 2 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 2 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 2 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 2 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 2 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 2 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 2 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 2 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 2 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 2 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 2 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 2 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 2 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 2 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 2 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 2 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 2 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 2 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 2 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 2 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell123 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 2 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 2 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 2 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 2 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 2 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 2 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 2 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 2 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 2 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 2 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 2 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 2 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 2 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 2 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 2 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 2 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 2 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 2 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 2 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 2 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 2 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 2 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 2 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 2 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 2 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 2 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 2 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 2 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 2 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 2 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 2 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 2 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1d94560d47 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c1_c2 : + adaptiveCoverCheck 5 (childHL phiBelowCell33233221) = true := by + exact CoverCertificate1d94560d47.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c1_c3_5_00389 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells48d3b8afd4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells48d3b8afd4 + +open CertificateCells48d3b8afd4 +namespace CoverCertificatefa0ec53117 + +private theorem checked220 : adaptiveCoverCheck 2 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 2 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 2 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 2 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell223 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatefa0ec53117 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c1_c3 : + adaptiveCoverCheck 5 (childHH phiBelowCell33233221) = true := by + exact CoverCertificatefa0ec53117.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c2_c0_5_00392 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf95c4e9f9f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf95c4e9f9f + +open CertificateCellsf95c4e9f9f +namespace CoverCertificate38482fd67b + +private theorem checked100 : adaptiveCoverCheck 2 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 2 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 2 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 2 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 2 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 2 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 2 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 2 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 2 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 2 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 2 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 2 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 2 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 2 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 2 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 2 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell133 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 2 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 2 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 2 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 2 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 2 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 2 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 2 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 2 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 2 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 2 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 2 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 2 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 2 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 2 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 2 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 2 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 2 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 2 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 2 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 2 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate38482fd67b + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c2_c0 : + adaptiveCoverCheck 5 (childLL phiBelowCell33233222) = true := by + exact CoverCertificate38482fd67b.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c2_c1_c0_4_00394 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells38449ac605 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells38449ac605 + +open CertificateCells38449ac605 +namespace CoverCertificate774f03a3cd + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate774f03a3cd + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c2_c1_c0 : + adaptiveCoverCheck 4 (childLL (childLH phiBelowCell33233222)) = true := by + exact CoverCertificate774f03a3cd.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c2_c1_c1_4_00395 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells43ee04fc11 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells43ee04fc11 + +open CertificateCells43ee04fc11 +namespace CoverCertificate141819f8d7 + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate141819f8d7 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c2_c1_c1 : + adaptiveCoverCheck 4 (childLH (childLH phiBelowCell33233222)) = true := by + exact CoverCertificate141819f8d7.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c2_c1_c2_4_00396 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells303915a97c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells303915a97c + +open CertificateCells303915a97c +namespace CoverCertificated9624571ac + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated9624571ac + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c2_c1_c2 : + adaptiveCoverCheck 4 (childHL (childLH phiBelowCell33233222)) = true := by + exact CoverCertificated9624571ac.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c2_c1_c3_4_00397 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells88a95e6b6b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells88a95e6b6b + +open CertificateCells88a95e6b6b +namespace CoverCertificate6840dd8bca + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate6840dd8bca + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c2_c1_c3 : + adaptiveCoverCheck 4 (childHH (childLH phiBelowCell33233222)) = true := by + exact CoverCertificate6840dd8bca.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c2_c2_5_00399 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4611c2250a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4611c2250a + +open CertificateCells4611c2250a +namespace CoverCertificate781ead79bd + +private theorem checked100 : adaptiveCoverCheck 2 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 2 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 2 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 2 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 2 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 2 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 2 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 2 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 2 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 2 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 2 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 2 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 2 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 2 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 2 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 2 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell133 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 2 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 2 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 2 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 2 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell313 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate781ead79bd + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c2_c2 : + adaptiveCoverCheck 5 (childHL phiBelowCell33233222) = true := by + exact CoverCertificate781ead79bd.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c2_c3_5_00400 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellscbfda2707a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellscbfda2707a + +open CertificateCellscbfda2707a +namespace CoverCertificatefcce63a7f6 + +private theorem checked000 : adaptiveCoverCheck 2 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 2 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 2 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 2 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 2 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 2 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 2 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 2 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 2 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 2 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 2 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 2 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 2 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 2 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 2 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 2 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 2 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 2 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 2 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 2 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 2 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 2 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 2 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 2 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 2 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 2 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 2 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 2 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 2 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 2 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 2 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 2 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 2 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 2 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 2 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 2 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 2 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 2 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 2 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 2 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 2 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 2 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 2 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 2 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 2 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 2 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 2 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 2 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 2 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 2 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 2 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 2 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 2 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 2 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 2 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 2 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 2 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 2 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 2 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 2 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 2 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 2 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 2 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 2 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatefcce63a7f6 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c2_c3 : + adaptiveCoverCheck 5 (childHH phiBelowCell33233222) = true := by + exact CoverCertificatefcce63a7f6.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c3_c0_c0_4_00404 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells003531f536 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells003531f536 + +open CertificateCells003531f536 +namespace CoverCertificate84a4f6988f + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 1 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 1 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 1 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 1 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell313 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate84a4f6988f + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c0_c0 : + adaptiveCoverCheck 4 (childLL (childLL phiBelowCell33233223)) = true := by + exact CoverCertificate84a4f6988f.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c3_c0_c1_4_00405 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1f3e328824 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1f3e328824 + +open CertificateCells1f3e328824 +namespace CoverCertificate03b35dd0cf + +private theorem checked200 : adaptiveCoverCheck 1 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 1 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 1 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 1 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell203 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate03b35dd0cf + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c0_c1 : + adaptiveCoverCheck 4 (childLH (childLL phiBelowCell33233223)) = true := by + exact CoverCertificate03b35dd0cf.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c3_c0_c2_4_00406 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells47ff5dcac0 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells47ff5dcac0 + +open CertificateCells47ff5dcac0 +namespace CoverCertificate2781da35b5 + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 1 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 1 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 1 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 1 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 1 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 1 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 1 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 1 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate2781da35b5 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c0_c2 : + adaptiveCoverCheck 4 (childHL (childLL phiBelowCell33233223)) = true := by + exact CoverCertificate2781da35b5.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c3_c0_c3_4_00407 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells65a3665007 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells65a3665007 + +open CertificateCells65a3665007 +namespace CoverCertificate7c9b16d986 + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 1 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 1 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 1 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 1 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 1 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 1 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 1 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 1 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 1 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 1 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 1 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 1 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 1 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 1 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 1 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 1 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 1 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 1 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 1 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 1 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate7c9b16d986 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c0_c3 : + adaptiveCoverCheck 4 (childHH (childLL phiBelowCell33233223)) = true := by + exact CoverCertificate7c9b16d986.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c3_c1_5_00409 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells45a72ee869 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells45a72ee869 + +open CertificateCells45a72ee869 +namespace CoverCertificate7a97434462 + +private theorem checked2220 : adaptiveCoverCheck 1 cell2220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell2220 (by decide +kernel) + +private theorem checked2221 : adaptiveCoverCheck 1 cell2221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell2221 (by decide +kernel) + +private theorem checked2222 : adaptiveCoverCheck 1 cell2222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell2222 (by decide +kernel) + +private theorem checked2223 : adaptiveCoverCheck 1 cell2223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell2223 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 2 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 2 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 2 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 2 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 2 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 2 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 2 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 2 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 2 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 2 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 2 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 2 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 2 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 2 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 2 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 2 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 2 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 2 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 2 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 2 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell123 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 2 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 2 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 2 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 2 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 2 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 2 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 2 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 2 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 2 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 2 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 2 cell222 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell222 + checked2220 checked2221 checked2222 checked2223 + +private theorem checked223 : adaptiveCoverCheck 2 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 2 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 2 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 2 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 2 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 2 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 2 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 2 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 2 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell303 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 2 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 2 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 2 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 2 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 2 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 2 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 2 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 2 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate7a97434462 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c1 : + adaptiveCoverCheck 5 (childLH phiBelowCell33233223) = true := by + exact CoverCertificate7a97434462.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c3_c2_c0_4_00411 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3d2f3b2d12 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3d2f3b2d12 + +open CertificateCells3d2f3b2d12 +namespace CoverCertificate993722881e + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 1 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 1 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 1 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 1 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 1 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 1 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 1 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 1 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate993722881e + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c0 : + adaptiveCoverCheck 4 (childLL (childHL phiBelowCell33233223)) = true := by + exact CoverCertificate993722881e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below +Leaf33233_c2_c2_c3_c2_c1_c0_3_00413 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsce18f6e886 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsce18f6e886 + +open CertificateCellsce18f6e886 +namespace CoverCertificate8f03b44673 + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate8f03b44673 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c0 : + adaptiveCoverCheck 3 (childLL (childLH (childHL phiBelowCell33233223))) = true := by + exact CoverCertificate8f03b44673.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below +Leaf33233_c2_c2_c3_c2_c1_c1_3_00414 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb5cebfd5b6 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb5cebfd5b6 + +open CertificateCellsb5cebfd5b6 +namespace CoverCertificatefffe180fcd + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatefffe180fcd + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c1 : + adaptiveCoverCheck 3 (childLH (childLH (childHL phiBelowCell33233223))) = true := by + exact CoverCertificatefffe180fcd.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below +Leaf33233_c2_c2_c3_c2_c1_c2_c0_c0_1_00417 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2aad13d936 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2aad13d936 + +open CertificateCells2aad13d936 +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c2_c0_c0 : + adaptiveCoverCheck 1 (childLL phiBelowCell332332232120) = true := by + decide +kernel + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below +Leaf33233_c2_c2_c3_c2_c1_c2_c0_c1_1_00418 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6a90bc785d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6a90bc785d + +open CertificateCells6a90bc785d +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c2_c0_c1 : + adaptiveCoverCheck 1 (childLH phiBelowCell332332232120) = true := by + decide +kernel + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below +Leaf33233_c2_c2_c3_c2_c1_c2_c0_c2_1_00419 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsdb781a1ec8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsdb781a1ec8 + +open CertificateCellsdb781a1ec8 +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c2_c0_c2 : + adaptiveCoverCheck 1 (childHL phiBelowCell332332232120) = true := by + decide +kernel + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below +Leaf33233_c2_c2_c3_c2_c1_c2_c0_c3_1_00420 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1cfc9442b0 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1cfc9442b0 + +open CertificateCells1cfc9442b0 +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c2_c0_c3 : + adaptiveCoverCheck 1 (childHH phiBelowCell332332232120) = true := by + decide +kernel + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below +Leaf33233_c2_c2_c3_c2_c1_c2_c1_2_00422 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2dfa44feb0 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2dfa44feb0 + +open CertificateCells2dfa44feb0 +namespace CoverCertificated2a9415b82 + +private theorem checked0 : adaptiveCoverCheck 1 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 1 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 1 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 1 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 2 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 1 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated2a9415b82 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c2_c1 : + adaptiveCoverCheck 2 phiBelowCell332332232121 = true := by + exact CoverCertificated2a9415b82.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below +Leaf33233_c2_c2_c3_c2_c1_c2_c2_2_00423 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0c5519e954 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0c5519e954 + +open CertificateCells0c5519e954 +namespace CoverCertificatef93658a45e + +private theorem checked0 : adaptiveCoverCheck 1 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 1 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 1 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 1 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 2 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 1 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef93658a45e + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c2_c2 : + adaptiveCoverCheck 2 phiBelowCell332332232122 = true := by + exact CoverCertificatef93658a45e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below +Leaf33233_c2_c2_c3_c2_c1_c2_c3_2_00424 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells06dff71a35 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells06dff71a35 + +open CertificateCells06dff71a35 +namespace CoverCertificate3d3c2d6223 + +private theorem checked0 : adaptiveCoverCheck 1 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 1 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 1 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 1 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 2 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 1 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3d3c2d6223 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c2_c3 : + adaptiveCoverCheck 2 phiBelowCell332332232123 = true := by + exact CoverCertificate3d3c2d6223.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below +Leaf33233_c2_c2_c3_c2_c1_c3_3_00426 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells529c7df50a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells529c7df50a + +open CertificateCells529c7df50a +namespace CoverCertificatea6d03c9687 + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea6d03c9687 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c3 : + adaptiveCoverCheck 3 (childHH (childLH (childHL phiBelowCell33233223))) = true := by + exact CoverCertificatea6d03c9687.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c3_c2_c2_4_00428 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells25a838feeb + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells25a838feeb + +open CertificateCells25a838feeb +namespace CoverCertificatefce6b2559b + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 1 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 1 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 1 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 1 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell133 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 1 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 1 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 1 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 1 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 1 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 1 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 1 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 1 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatefce6b2559b + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c2 : + adaptiveCoverCheck 4 (childHL (childHL phiBelowCell33233223)) = true := by + exact CoverCertificatefce6b2559b.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below +Leaf33233_c2_c2_c3_c2_c3_c0_3_00430 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsbc23e0e6af + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsbc23e0e6af + +open CertificateCellsbc23e0e6af +namespace CoverCertificate0ac0b8c68f + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0ac0b8c68f + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c3_c0 : + adaptiveCoverCheck 3 (childLL (childHH (childHL phiBelowCell33233223))) = true := by + exact CoverCertificate0ac0b8c68f.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below +Leaf33233_c2_c2_c3_c2_c3_c1_3_00431 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells13f9420722 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells13f9420722 + +open CertificateCells13f9420722 +namespace CoverCertificate9ea4339e1a + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate9ea4339e1a + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c3_c1 : + adaptiveCoverCheck 3 (childLH (childHH (childHL phiBelowCell33233223))) = true := by + exact CoverCertificate9ea4339e1a.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below +Leaf33233_c2_c2_c3_c2_c3_c2_3_00432 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8f726fb04b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8f726fb04b + +open CertificateCells8f726fb04b +namespace CoverCertificatec65ef0b520 + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec65ef0b520 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c3_c2 : + adaptiveCoverCheck 3 (childHL (childHH (childHL phiBelowCell33233223))) = true := by + exact CoverCertificatec65ef0b520.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below +Leaf33233_c2_c2_c3_c2_c3_c3_3_00433 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells7e3f428846 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells7e3f428846 + +open CertificateCells7e3f428846 +namespace CoverCertificate64e89cb34c + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate64e89cb34c + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c3_c3 : + adaptiveCoverCheck 3 (childHH (childHH (childHL phiBelowCell33233223))) = true := by + exact CoverCertificate64e89cb34c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c3_c3_c0_4_00437 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4caf1a7a91 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4caf1a7a91 + +open CertificateCells4caf1a7a91 +namespace CoverCertificatef71635c89a + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 1 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 1 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 1 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 1 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 1 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 1 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 1 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 1 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 1 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 1 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 1 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 1 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 1 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 1 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 1 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 1 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 1 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 1 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 1 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 1 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef71635c89a + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c3_c0 : + adaptiveCoverCheck 4 (childLL (childHH phiBelowCell33233223)) = true := by + exact CoverCertificatef71635c89a.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c3_c3_c1_4_00438 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2907beb942 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2907beb942 + +open CertificateCells2907beb942 +namespace CoverCertificate4d208d4148 + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4d208d4148 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c3_c1 : + adaptiveCoverCheck 4 (childLH (childHH phiBelowCell33233223)) = true := by + exact CoverCertificate4d208d4148.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below +Leaf33233_c2_c2_c3_c3_c2_c0_3_00440 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb81ac6c2c5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb81ac6c2c5 + +open CertificateCellsb81ac6c2c5 +namespace CoverCertificatebbc2bd14f5 + +private theorem checked130 : adaptiveCoverCheck 0 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 0 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 0 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 0 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell133 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatebbc2bd14f5 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c3_c2_c0 : + adaptiveCoverCheck 3 (childLL (childHL (childHH phiBelowCell33233223))) = true := by + exact CoverCertificatebbc2bd14f5.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below +Leaf33233_c2_c2_c3_c3_c2_c1_3_00441 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6afa02519f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6afa02519f + +open CertificateCells6afa02519f +namespace CoverCertificate0f826c338a + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0f826c338a + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c3_c2_c1 : + adaptiveCoverCheck 3 (childLH (childHL (childHH phiBelowCell33233223))) = true := by + exact CoverCertificate0f826c338a.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below +Leaf33233_c2_c2_c3_c3_c2_c2_3_00442 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells27566e6112 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells27566e6112 + +open CertificateCells27566e6112 +namespace CoverCertificate8518e81351 + +private theorem checked110 : adaptiveCoverCheck 0 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 0 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 0 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 0 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell113 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 0 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 0 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 0 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 0 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell133 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate8518e81351 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c3_c2_c2 : + adaptiveCoverCheck 3 (childHL (childHL (childHH phiBelowCell33233223))) = true := by + exact CoverCertificate8518e81351.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below +Leaf33233_c2_c2_c3_c3_c2_c3_3_00443 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc20116b798 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc20116b798 + +open CertificateCellsc20116b798 +namespace CoverCertificate4ecdb55cf7 + +private theorem checked000 : adaptiveCoverCheck 0 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 0 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 0 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 0 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 0 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 0 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 0 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 0 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 0 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 0 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 0 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 0 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 0 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 0 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 0 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 0 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell033 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 0 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 0 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 0 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 0 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell103 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 0 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 0 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 0 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 0 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell123 (by decide +kernel) + +private theorem checked130 : adaptiveCoverCheck 0 cell130 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell130 (by decide +kernel) + +private theorem checked131 : adaptiveCoverCheck 0 cell131 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell131 (by decide +kernel) + +private theorem checked132 : adaptiveCoverCheck 0 cell132 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell132 (by decide +kernel) + +private theorem checked133 : adaptiveCoverCheck 0 cell133 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell133 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell13 + checked130 checked131 checked132 checked133 + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4ecdb55cf7 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c3_c2_c3 : + adaptiveCoverCheck 3 (childHH (childHL (childHH phiBelowCell33233223))) = true := by + exact CoverCertificate4ecdb55cf7.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle028.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle028.lean new file mode 100644 index 0000000000..df46e5e903 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle028.lean @@ -0,0 +1,8979 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle007 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch041`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CoverCertificate68b045bc3f + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childHH (childHL (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +private abbrev cell2220 : AngleCell := + childLL cell222 + +private abbrev cell2221 : AngleCell := + childLH cell222 + +private abbrev cell2222 : AngleCell := + childHL cell222 + +private abbrev cell2223 : AngleCell := + childHH cell222 + +end GerverSofa.PartE.CoverCertificate68b045bc3f + +namespace GerverSofa.PartE.CoverCertificate56f1cababc + +private abbrev cellRoot : AngleCell := + (childLL (childHH (childHL (childHH (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +end GerverSofa.PartE.CoverCertificate56f1cababc + +namespace GerverSofa.PartE.CoverCertificateb43d9cc590 + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childHL (childHH (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificateb43d9cc590 + +namespace GerverSofa.PartE.CoverCertificate3c8c170ddf + +private abbrev cellRoot : AngleCell := + (childLL (childHL (childHH (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate3c8c170ddf + +namespace GerverSofa.PartE.CoverCertificate31d8f6a3a1 + +private abbrev cellRoot : AngleCell := + (childLH (childHL (childHH (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate31d8f6a3a1 + +namespace GerverSofa.PartE.CoverCertificate3406557cb6 + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childHH (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate3406557cb6 + +namespace GerverSofa.PartE.CoverCertificated5f4efe538 + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childHH (childHL (childHH (childHH (childHL (childHH (childHH + (e24PhiBelowRoot)))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificated5f4efe538 + +namespace GerverSofa.PartE.CoverCertificatecb887b449d + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childHL (childHH (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +end GerverSofa.PartE.CoverCertificatecb887b449d + +namespace GerverSofa.PartE.CoverCertificateb1645a3287 + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childHH (childHL (childHH (childHH (e24PhiBelowRoot))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell020 : AngleCell := + childLL cell02 + +private abbrev cell021 : AngleCell := + childLH cell02 + +private abbrev cell022 : AngleCell := + childHL cell02 + +private abbrev cell023 : AngleCell := + childHH cell02 + +private abbrev cell030 : AngleCell := + childLL cell03 + +private abbrev cell031 : AngleCell := + childLH cell03 + +private abbrev cell032 : AngleCell := + childHL cell03 + +private abbrev cell033 : AngleCell := + childHH cell03 + +private abbrev cell120 : AngleCell := + childLL cell12 + +private abbrev cell121 : AngleCell := + childLH cell12 + +private abbrev cell122 : AngleCell := + childHL cell12 + +private abbrev cell123 : AngleCell := + childHH cell12 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +private abbrev cell2020 : AngleCell := + childLL cell202 + +private abbrev cell2021 : AngleCell := + childLH cell202 + +private abbrev cell2022 : AngleCell := + childHL cell202 + +private abbrev cell2023 : AngleCell := + childHH cell202 + +private abbrev cell2200 : AngleCell := + childLL cell220 + +private abbrev cell2201 : AngleCell := + childLH cell220 + +private abbrev cell2202 : AngleCell := + childHL cell220 + +private abbrev cell2203 : AngleCell := + childHH cell220 + +private abbrev cell2210 : AngleCell := + childLL cell221 + +private abbrev cell2211 : AngleCell := + childLH cell221 + +private abbrev cell2212 : AngleCell := + childHL cell221 + +private abbrev cell2213 : AngleCell := + childHH cell221 + +private abbrev cell2220 : AngleCell := + childLL cell222 + +private abbrev cell2221 : AngleCell := + childLH cell222 + +private abbrev cell2222 : AngleCell := + childHL cell222 + +private abbrev cell2223 : AngleCell := + childHH cell222 + +private abbrev cell2230 : AngleCell := + childLL cell223 + +private abbrev cell2231 : AngleCell := + childLH cell223 + +private abbrev cell2232 : AngleCell := + childHL cell223 + +private abbrev cell2233 : AngleCell := + childHH cell223 + +private abbrev cell2320 : AngleCell := + childLL cell232 + +private abbrev cell2321 : AngleCell := + childLH cell232 + +private abbrev cell2322 : AngleCell := + childHL cell232 + +private abbrev cell2323 : AngleCell := + childHH cell232 + +end GerverSofa.PartE.CoverCertificateb1645a3287 + +namespace GerverSofa.PartE.CoverCertificatef6f28b19e8 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childHH (childLH (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatef6f28b19e8 + +namespace GerverSofa.PartE.CoverCertificate15902c79ec + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childHH (childLH (childLH (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate15902c79ec + +namespace GerverSofa.PartE.CoverCertificate36f48ed6fa + +private abbrev cellRoot : AngleCell := + (childLL (childHL (childLH (childHH (childLH (childLH (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate36f48ed6fa + +namespace GerverSofa.PartE.CoverCertificate80e1d488d9 + +private abbrev cellRoot : AngleCell := + (childLH (childHL (childLH (childHH (childLH (childLH (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate80e1d488d9 + +namespace GerverSofa.PartE.CoverCertificate24ddeb8618 + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childLH (childHH (childLH (childLH (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate24ddeb8618 + +namespace GerverSofa.PartE.CoverCertificatea600465144 + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childLH (childHH (childLH (childLH (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatea600465144 + +namespace GerverSofa.PartE.CoverCertificatefdcad14d68 + +private abbrev cellRoot : AngleCell := + (childLL (childHH (childLH (childHH (childLH (childLH (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatefdcad14d68 + +namespace GerverSofa.PartE.CoverCertificate3ad1ac00a7 + +private abbrev cellRoot : AngleCell := + (childLH (childHH (childLH (childHH (childLH (childLH (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate3ad1ac00a7 + +namespace GerverSofa.PartE.CoverCertificatea3bd708439 + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childLH (childHH (childLH (childLH (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatea3bd708439 + +namespace GerverSofa.PartE.CoverCertificateaf7d47a996 + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childLH (childHH (childLH (childLH (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificateaf7d47a996 + +namespace GerverSofa.PartE.CoverCertificatec662ef9997 + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childLH (childLH (childLL (childHL (childLL (childLL (childHL (childHL + (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatec662ef9997 + +namespace GerverSofa.PartE.CoverCertificate32e68ad46a + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childLH (childLH (childLL (childHL (childLL (childLL (childHL (childHL + (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate32e68ad46a + +namespace GerverSofa.PartE.CoverCertificate713bbdaba3 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLL (childHL (childLL (childLL (childHL (childHL (childLL (childLL + (childLL (childLL (e24ThetaAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate713bbdaba3 + +namespace GerverSofa.PartE.CoverCertificate5832573e8a + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childHL (childLL (childLL (childHL (childHL (childLL (childLL + (childLL (childLL (e24ThetaAboveRoot))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +end GerverSofa.PartE.CoverCertificate5832573e8a + +namespace GerverSofa.PartE.CoverCertificatec47ffcf2f2 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLL (childLL (childHL (childLL (childLL (childHL (childHL (childLL + (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatec47ffcf2f2 + +namespace GerverSofa.PartE.CoverCertificate535ad25afd + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLL (childLL (childHL (childLL (childLL (childHL (childHL (childLL + (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate535ad25afd + +namespace GerverSofa.PartE.CoverCertificate746010fa88 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLL (childHL (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate746010fa88 + +namespace GerverSofa.PartE.CoverCertificate1f629121b3 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLL (childHL (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate1f629121b3 + +namespace GerverSofa.PartE.CoverCertificatec4d5c9280e + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLL (childHL (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatec4d5c9280e + +namespace GerverSofa.PartE.CoverCertificate68a7675d0f + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLL (childHL (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate68a7675d0f + +namespace GerverSofa.PartE.CoverCertificateaaac1ef041 + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLL (childHL (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificateaaac1ef041 + +namespace GerverSofa.PartE.CoverCertificateeac308265d + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLL (childHL (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificateeac308265d + +namespace GerverSofa.PartE.CoverCertificateee7e82afcc + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLL (childHL (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificateee7e82afcc + +namespace GerverSofa.PartE.CoverCertificatec74fdabb9c + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childHL (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatec74fdabb9c + +namespace GerverSofa.PartE.CoverCertificateb0390aea72 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childHL (childLL (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +end GerverSofa.PartE.CoverCertificateb0390aea72 + +namespace GerverSofa.PartE.CoverCertificate1f25ee1c58 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childHL (childLL (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell1000 : AngleCell := + childLL cell100 + +private abbrev cell1001 : AngleCell := + childLH cell100 + +private abbrev cell1002 : AngleCell := + childHL cell100 + +private abbrev cell1003 : AngleCell := + childHH cell100 + +private abbrev cell1010 : AngleCell := + childLL cell101 + +private abbrev cell1011 : AngleCell := + childLH cell101 + +private abbrev cell1012 : AngleCell := + childHL cell101 + +private abbrev cell1013 : AngleCell := + childHH cell101 + +private abbrev cell1100 : AngleCell := + childLL cell110 + +private abbrev cell1101 : AngleCell := + childLH cell110 + +private abbrev cell1102 : AngleCell := + childHL cell110 + +private abbrev cell1103 : AngleCell := + childHH cell110 + +private abbrev cell1110 : AngleCell := + childLL cell111 + +private abbrev cell1111 : AngleCell := + childLH cell111 + +private abbrev cell1112 : AngleCell := + childHL cell111 + +private abbrev cell1113 : AngleCell := + childHH cell111 + +end GerverSofa.PartE.CoverCertificate1f25ee1c58 + +namespace GerverSofa.PartE.CoverCertificate64365f01f0 + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLH (childHL (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate64365f01f0 + +namespace GerverSofa.PartE.CoverCertificatea308b70bb8 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLH (childHL (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatea308b70bb8 + +namespace GerverSofa.PartE.CoverCertificate181aa5f0fe + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childHL (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate181aa5f0fe + +namespace GerverSofa.PartE.CoverCertificatee52fd52368 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLH (childHL (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatee52fd52368 + +namespace GerverSofa.PartE.CoverCertificate5b77908b1d + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLH (childHL (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate5b77908b1d + +namespace GerverSofa.PartE.CoverCertificatea6ac82148c + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLH (childHL (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatea6ac82148c + +namespace GerverSofa.PartE.CertificateCellsd112ae8b34 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsd112ae8b34 + +namespace GerverSofa.PartE.CertificateCells005204f093 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233230` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233230 : AngleCell := + childLL (childHH (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells005204f093 + +namespace GerverSofa.PartE.CertificateCells1db372ce58 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233231` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233231 : AngleCell := + childLH (childHH (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells1db372ce58 + +namespace GerverSofa.PartE.CertificateCells747d0e3511 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233232` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233232 : AngleCell := + childHL (childHH (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells747d0e3511 + +namespace GerverSofa.PartE.CertificateCells2c20a17ff6 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233232` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233232 : AngleCell := + childHL (childHH (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells2c20a17ff6 + +namespace GerverSofa.PartE.CertificateCells6d9a408f54 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233232` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233232 : AngleCell := + childHL (childHH (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells6d9a408f54 + +namespace GerverSofa.PartE.CertificateCells26c5fe31ab + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233232` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233232 : AngleCell := + childHL (childHH (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells26c5fe31ab + +namespace GerverSofa.PartE.CertificateCells8faba9c99a + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233233` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233233 : AngleCell := + childHH (childHH (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells8faba9c99a + +namespace GerverSofa.PartE.CertificateCellsd0acf0005e + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsd0acf0005e + +namespace GerverSofa.PartE.CertificateCellsd9f8181f0f + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsd9f8181f0f + +namespace GerverSofa.PartE.CertificateCellsc3ac49754f + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsc3ac49754f + +namespace GerverSofa.PartE.CertificateCellsa708f81b81 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020113120` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020113120 : AngleCell := + childLL (childHL (childLH (childHH thetaAboveCell000022002011))) + +end GerverSofa.PartE.CertificateCellsa708f81b81 + +namespace GerverSofa.PartE.CertificateCellsd0cc56b48c + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020113121` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020113121 : AngleCell := + childLH (childHL (childLH (childHH thetaAboveCell000022002011))) + +end GerverSofa.PartE.CertificateCellsd0cc56b48c + +namespace GerverSofa.PartE.CertificateCellsecda937af3 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020113122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020113122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell000022002011))) + +end GerverSofa.PartE.CertificateCellsecda937af3 + +namespace GerverSofa.PartE.CertificateCellsefa0cf83b9 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020113123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020113123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell000022002011))) + +end GerverSofa.PartE.CertificateCellsefa0cf83b9 + +namespace GerverSofa.PartE.CertificateCells38fe0cae80 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020113130` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020113130 : AngleCell := + childLL (childHH (childLH (childHH thetaAboveCell000022002011))) + +end GerverSofa.PartE.CertificateCells38fe0cae80 + +namespace GerverSofa.PartE.CertificateCells32c7b8b1fa + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020113131` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020113131 : AngleCell := + childLH (childHH (childLH (childHH thetaAboveCell000022002011))) + +end GerverSofa.PartE.CertificateCells32c7b8b1fa + +namespace GerverSofa.PartE.CertificateCellsb136ba3941 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020113132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020113132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell000022002011))) + +end GerverSofa.PartE.CertificateCellsb136ba3941 + +namespace GerverSofa.PartE.CertificateCells8ac48dda13 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020113133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020113133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell000022002011))) + +end GerverSofa.PartE.CertificateCells8ac48dda13 + +namespace GerverSofa.PartE.CertificateCellsde5c2f11fb + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsde5c2f11fb + +namespace GerverSofa.PartE.CertificateCellsc44d408296 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsc44d408296 + +namespace GerverSofa.PartE.CertificateCells057d5ed82d + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells057d5ed82d + +namespace GerverSofa.PartE.CertificateCellsc56edf0af2 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsc56edf0af2 + +namespace GerverSofa.PartE.CertificateCells38f587bebf + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells38f587bebf + +namespace GerverSofa.PartE.CertificateCellsc330c6667b + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsc330c6667b + +namespace GerverSofa.PartE.CertificateCells8addf3ec0f + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells8addf3ec0f + +namespace GerverSofa.PartE.CertificateCells06b0cdd59e + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells06b0cdd59e + +namespace GerverSofa.PartE.CertificateCellsf1a599f1e1 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020002002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020002002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCellsf1a599f1e1 + +namespace GerverSofa.PartE.CertificateCells260222ce28 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020002003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020002003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells260222ce28 + +namespace GerverSofa.PartE.CertificateCells5c03b20b81 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells5c03b20b81 + +namespace GerverSofa.PartE.CertificateCells36e0f7722b + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells36e0f7722b + +namespace GerverSofa.PartE.CertificateCellsb7dd59a80a + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020002012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020002012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCellsb7dd59a80a + +namespace GerverSofa.PartE.CertificateCellsef0079dc28 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020002013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020002013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCellsef0079dc28 + +namespace GerverSofa.PartE.CertificateCells58fa53de1e + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells58fa53de1e + +namespace GerverSofa.PartE.CertificateCells5c48ba0580 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells5c48ba0580 + +namespace GerverSofa.PartE.CertificateCells35af4df13c + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020002100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020002100 : AngleCell := + childLL (childLL (childLH (childHL thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells35af4df13c + +namespace GerverSofa.PartE.CertificateCellsbb596d2a3e + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020002101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020002101 : AngleCell := + childLH (childLL (childLH (childHL thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCellsbb596d2a3e + +namespace GerverSofa.PartE.CertificateCells8645eca0c5 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020002102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020002102 : AngleCell := + childHL (childLL (childLH (childHL thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells8645eca0c5 + +namespace GerverSofa.PartE.CertificateCellsbe94e44cff + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020002103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020002103 : AngleCell := + childHH (childLL (childLH (childHL thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCellsbe94e44cff + +namespace GerverSofa.PartE.CertificateCellsd01cbbb894 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020002110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020002110 : AngleCell := + childLL (childLH (childLH (childHL thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCellsd01cbbb894 + +namespace GerverSofa.PartE.CertificateCells768f9f5a16 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020002111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020002111 : AngleCell := + childLH (childLH (childLH (childHL thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells768f9f5a16 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.PhiBelow.Leaf00445`. +* `KernelOnly.PartE.PhiBelow.Leaf00450`. +* `KernelOnly.PartE.PhiBelow.Leaf00451`. +* `KernelOnly.PartE.PhiBelow.Leaf00453`. +* `KernelOnly.PartE.PhiBelow.Leaf00454`. +* `KernelOnly.PartE.PhiBelow.Leaf00455`. +* `KernelOnly.PartE.PhiBelow.Leaf00456`. +* `KernelOnly.PartE.PhiBelow.Leaf00458`. +* `KernelOnly.PartE.PhiBelow.Leaf00461`. +* `KernelOnly.PartE.ThetaAbove.Leaf00009`. +* `KernelOnly.PartE.ThetaAbove.Leaf00010`. +* `KernelOnly.PartE.ThetaAbove.Leaf00012`. +* `KernelOnly.PartE.ThetaAbove.Leaf00013`. +* `KernelOnly.PartE.ThetaAbove.Leaf00014`. +* `KernelOnly.PartE.ThetaAbove.Leaf00015`. +* `KernelOnly.PartE.ThetaAbove.Leaf00018`. +* `KernelOnly.PartE.ThetaAbove.Leaf00019`. +* `KernelOnly.PartE.ThetaAbove.Leaf00020`. +* `KernelOnly.PartE.ThetaAbove.Leaf00021`. +* `KernelOnly.PartE.ThetaAbove.Leaf00024`. +* `KernelOnly.PartE.ThetaAbove.Leaf00025`. +* `KernelOnly.PartE.ThetaAbove.Leaf00028`. +* `KernelOnly.PartE.ThetaAbove.Leaf00029`. +* `KernelOnly.PartE.ThetaAbove.Leaf00475`. +* `KernelOnly.PartE.ThetaAbove.Leaf00476`. +* `KernelOnly.PartE.ThetaAbove.Leaf00480`. +* `KernelOnly.PartE.ThetaAbove.Leaf00481`. +* `KernelOnly.PartE.ThetaAbove.Leaf00482`. +* `KernelOnly.PartE.ThetaAbove.Leaf00483`. +* `KernelOnly.PartE.ThetaAbove.Leaf00486`. +* `KernelOnly.PartE.ThetaAbove.Leaf00487`. +* `KernelOnly.PartE.ThetaAbove.Leaf00488`. +* `KernelOnly.PartE.ThetaAbove.Leaf00489`. +* `KernelOnly.PartE.ThetaAbove.Leaf00491`. +* `KernelOnly.PartE.ThetaAbove.Leaf00492`. +* `KernelOnly.PartE.ThetaAbove.Leaf00496`. +* `KernelOnly.PartE.ThetaAbove.Leaf00497`. +* `KernelOnly.PartE.ThetaAbove.Leaf00498`. +* `KernelOnly.PartE.ThetaAbove.Leaf00499`. +* `KernelOnly.PartE.ThetaAbove.Leaf00502`. +* `KernelOnly.PartE.ThetaAbove.Leaf00503`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c2_c3_c3_c3_4_00445 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd112ae8b34 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd112ae8b34 + +open CertificateCellsd112ae8b34 +namespace CoverCertificate68b045bc3f + +private theorem checked2220 : adaptiveCoverCheck 0 cell2220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2220 (by decide +kernel) + +private theorem checked2221 : adaptiveCoverCheck 0 cell2221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2221 (by decide +kernel) + +private theorem checked2222 : adaptiveCoverCheck 0 cell2222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2222 (by decide +kernel) + +private theorem checked2223 : adaptiveCoverCheck 0 cell2223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell2223 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 1 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 1 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 1 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 1 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 1 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 1 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 1 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 1 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 1 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 1 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 1 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 1 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell123 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 1 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 1 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 1 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 1 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 1 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 1 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 1 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 1 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell222 + checked2220 checked2221 checked2222 checked2223 + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 1 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 1 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 1 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 1 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell303 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate68b045bc3f + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c3_c3 : + adaptiveCoverCheck 4 (childHH (childHH phiBelowCell33233223)) = true := by + exact CoverCertificate68b045bc3f.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c3_c0_6_00450 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells005204f093 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells005204f093 + +open CertificateCells005204f093 +namespace CoverCertificate56f1cababc + +private theorem checked200 : adaptiveCoverCheck 3 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 3 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 3 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 3 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell203 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 3 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 3 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 3 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 3 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 3 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 3 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 3 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 3 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell233 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate56f1cababc + +theorem e24KC2PhiBelowLeaf33233_c2_c3_c0 : + adaptiveCoverCheck 6 phiBelowCell33233230 = true := by + exact CoverCertificate56f1cababc.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c3_c1_6_00451 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1db372ce58 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1db372ce58 + +open CertificateCells1db372ce58 +namespace CoverCertificateb43d9cc590 + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateb43d9cc590 + +theorem e24KC2PhiBelowLeaf33233_c2_c3_c1 : + adaptiveCoverCheck 6 phiBelowCell33233231 = true := by + exact CoverCertificateb43d9cc590.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c3_c2_c0_5_00453 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells747d0e3511 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells747d0e3511 + +open CertificateCells747d0e3511 +namespace CoverCertificate3c8c170ddf + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3c8c170ddf + +theorem e24KC2PhiBelowLeaf33233_c2_c3_c2_c0 : + adaptiveCoverCheck 5 (childLL phiBelowCell33233232) = true := by + exact CoverCertificate3c8c170ddf.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c3_c2_c1_5_00454 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2c20a17ff6 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2c20a17ff6 + +open CertificateCells2c20a17ff6 +namespace CoverCertificate31d8f6a3a1 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate31d8f6a3a1 + +theorem e24KC2PhiBelowLeaf33233_c2_c3_c2_c1 : + adaptiveCoverCheck 5 (childLH phiBelowCell33233232) = true := by + exact CoverCertificate31d8f6a3a1.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c3_c2_c2_5_00455 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6d9a408f54 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6d9a408f54 + +open CertificateCells6d9a408f54 +namespace CoverCertificate3406557cb6 + +private theorem checked000 : adaptiveCoverCheck 2 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 2 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 2 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 2 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell003 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 2 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 2 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 2 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 2 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 2 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 2 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 2 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 2 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell033 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 2 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 2 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 2 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 2 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 2 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 2 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 2 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 2 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 2 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 2 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 2 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 2 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 2 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 2 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 2 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 2 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 2 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 2 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 2 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 2 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell303 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 2 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 2 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 2 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 2 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 2 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 2 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 2 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 2 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3406557cb6 + +theorem e24KC2PhiBelowLeaf33233_c2_c3_c2_c2 : + adaptiveCoverCheck 5 (childHL phiBelowCell33233232) = true := by + exact CoverCertificate3406557cb6.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c3_c2_c3_5_00456 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells26c5fe31ab + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells26c5fe31ab + +open CertificateCells26c5fe31ab +namespace CoverCertificated5f4efe538 + +private theorem checked00 : adaptiveCoverCheck 3 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 3 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 3 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 3 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 3 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 3 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 3 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 3 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 3 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 3 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 3 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 3 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 3 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 3 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 3 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 3 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated5f4efe538 + +theorem e24KC2PhiBelowLeaf33233_c2_c3_c2_c3 : + adaptiveCoverCheck 5 (childHH phiBelowCell33233232) = true := by + exact CoverCertificated5f4efe538.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c2_c3_c3_6_00458 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8faba9c99a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8faba9c99a + +open CertificateCells8faba9c99a +namespace CoverCertificatecb887b449d + +private theorem checked200 : adaptiveCoverCheck 3 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 3 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 3 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 3 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell203 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 3 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 3 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 3 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 3 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 3 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 3 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 3 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 3 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell233 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 4 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 4 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 4 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 4 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 4 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 4 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 4 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 4 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 3 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatecb887b449d + +theorem e24KC2PhiBelowLeaf33233_c2_c3_c3 : + adaptiveCoverCheck 6 phiBelowCell33233233 = true := by + exact CoverCertificatecb887b449d.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Phi Below Leaf33233_c3_8_00461 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd0acf0005e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd0acf0005e + +open CertificateCellsd0acf0005e +namespace CoverCertificateb1645a3287 + +private theorem checked2020 : adaptiveCoverCheck 4 cell2020 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2020 (by decide +kernel) + +private theorem checked2021 : adaptiveCoverCheck 4 cell2021 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2021 (by decide +kernel) + +private theorem checked2022 : adaptiveCoverCheck 4 cell2022 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2022 (by decide +kernel) + +private theorem checked2023 : adaptiveCoverCheck 4 cell2023 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2023 (by decide +kernel) + +private theorem checked2200 : adaptiveCoverCheck 4 cell2200 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2200 (by decide +kernel) + +private theorem checked2201 : adaptiveCoverCheck 4 cell2201 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2201 (by decide +kernel) + +private theorem checked2202 : adaptiveCoverCheck 4 cell2202 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2202 (by decide +kernel) + +private theorem checked2203 : adaptiveCoverCheck 4 cell2203 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2203 (by decide +kernel) + +private theorem checked2210 : adaptiveCoverCheck 4 cell2210 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2210 (by decide +kernel) + +private theorem checked2211 : adaptiveCoverCheck 4 cell2211 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2211 (by decide +kernel) + +private theorem checked2212 : adaptiveCoverCheck 4 cell2212 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2212 (by decide +kernel) + +private theorem checked2213 : adaptiveCoverCheck 4 cell2213 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2213 (by decide +kernel) + +private theorem checked2220 : adaptiveCoverCheck 4 cell2220 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2220 (by decide +kernel) + +private theorem checked2221 : adaptiveCoverCheck 4 cell2221 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2221 (by decide +kernel) + +private theorem checked2222 : adaptiveCoverCheck 4 cell2222 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2222 (by decide +kernel) + +private theorem checked2223 : adaptiveCoverCheck 4 cell2223 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2223 (by decide +kernel) + +private theorem checked2230 : adaptiveCoverCheck 4 cell2230 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2230 (by decide +kernel) + +private theorem checked2231 : adaptiveCoverCheck 4 cell2231 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2231 (by decide +kernel) + +private theorem checked2232 : adaptiveCoverCheck 4 cell2232 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2232 (by decide +kernel) + +private theorem checked2233 : adaptiveCoverCheck 4 cell2233 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2233 (by decide +kernel) + +private theorem checked2320 : adaptiveCoverCheck 4 cell2320 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2320 (by decide +kernel) + +private theorem checked2321 : adaptiveCoverCheck 4 cell2321 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2321 (by decide +kernel) + +private theorem checked2322 : adaptiveCoverCheck 4 cell2322 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2322 (by decide +kernel) + +private theorem checked2323 : adaptiveCoverCheck 4 cell2323 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2323 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 5 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 5 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 5 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 5 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 5 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 5 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 5 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 5 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell013 (by decide +kernel) + +private theorem checked020 : adaptiveCoverCheck 5 cell020 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell020 (by decide +kernel) + +private theorem checked021 : adaptiveCoverCheck 5 cell021 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell021 (by decide +kernel) + +private theorem checked022 : adaptiveCoverCheck 5 cell022 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell022 (by decide +kernel) + +private theorem checked023 : adaptiveCoverCheck 5 cell023 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell023 (by decide +kernel) + +private theorem checked030 : adaptiveCoverCheck 5 cell030 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell030 (by decide +kernel) + +private theorem checked031 : adaptiveCoverCheck 5 cell031 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell031 (by decide +kernel) + +private theorem checked032 : adaptiveCoverCheck 5 cell032 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell032 (by decide +kernel) + +private theorem checked033 : adaptiveCoverCheck 5 cell033 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell033 (by decide +kernel) + +private theorem checked120 : adaptiveCoverCheck 5 cell120 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell120 (by decide +kernel) + +private theorem checked121 : adaptiveCoverCheck 5 cell121 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell121 (by decide +kernel) + +private theorem checked122 : adaptiveCoverCheck 5 cell122 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell122 (by decide +kernel) + +private theorem checked123 : adaptiveCoverCheck 5 cell123 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell123 (by decide +kernel) + +private theorem checked200 : adaptiveCoverCheck 5 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 5 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 5 cell202 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell202 + checked2020 checked2021 checked2022 checked2023 + +private theorem checked203 : adaptiveCoverCheck 5 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 5 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 5 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 5 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 5 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 5 cell220 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell220 + checked2200 checked2201 checked2202 checked2203 + +private theorem checked221 : adaptiveCoverCheck 5 cell221 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell221 + checked2210 checked2211 checked2212 checked2213 + +private theorem checked222 : adaptiveCoverCheck 5 cell222 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell222 + checked2220 checked2221 checked2222 checked2223 + +private theorem checked223 : adaptiveCoverCheck 5 cell223 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell223 + checked2230 checked2231 checked2232 checked2233 + +private theorem checked230 : adaptiveCoverCheck 5 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 5 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 5 cell232 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell232 + checked2320 checked2321 checked2322 checked2323 + +private theorem checked233 : adaptiveCoverCheck 5 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 5 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 5 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 5 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 5 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 5 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 5 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 5 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 5 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 5 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 5 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 5 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 5 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 5 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 5 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 5 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 5 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 6 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 6 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 6 cell02 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell02 + checked020 checked021 checked022 checked023 + +private theorem checked03 : adaptiveCoverCheck 6 cell03 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell03 + checked030 checked031 checked032 checked033 + +private theorem checked10 : adaptiveCoverCheck 6 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 6 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 6 cell12 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell12 + checked120 checked121 checked122 checked123 + +private theorem checked13 : adaptiveCoverCheck 6 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 6 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 6 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 6 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 6 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 6 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 6 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 6 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 6 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 7 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 7 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 7 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 7 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 6 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 8 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 7 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateb1645a3287 + +theorem e24KC2PhiBelowLeaf33233_c3 : + adaptiveCoverCheck 8 (childHH (childHH phiBelowCell3323)) = true := by + exact CoverCertificateb1645a3287.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c1_c0_4_00009 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd9f8181f0f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd9f8181f0f + +open CertificateCellsd9f8181f0f +namespace CoverCertificatef6f28b19e8 + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatef6f28b19e8 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c0 : + adaptiveCoverCheck 4 (childLL (childLH (childHH thetaAboveCell000022002011))) = true := by + exact CoverCertificatef6f28b19e8.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c1_c1_4_00010 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc3ac49754f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc3ac49754f + +open CertificateCellsc3ac49754f +namespace CoverCertificate15902c79ec + +private theorem checked220 : adaptiveCoverCheck 1 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 1 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 1 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 1 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 1 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 1 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 1 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 1 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell233 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 1 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 1 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 1 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 1 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 1 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 1 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 1 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 1 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell333 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 2 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 2 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 2 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 2 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 2 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 2 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 2 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 2 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate15902c79ec + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c1 : + adaptiveCoverCheck 4 (childLH (childLH (childHH thetaAboveCell000022002011))) = true := by + exact CoverCertificate15902c79ec.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c1_c2_c0_3_00012 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa708f81b81 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa708f81b81 + +open CertificateCellsa708f81b81 +namespace CoverCertificate36f48ed6fa + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate36f48ed6fa + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c2_c0 : + adaptiveCoverCheck 3 thetaAboveCell0000220020113120 = true := by + exact CoverCertificate36f48ed6fa.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c1_c2_c1_3_00013 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd0cc56b48c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd0cc56b48c + +open CertificateCellsd0cc56b48c +namespace CoverCertificate80e1d488d9 + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate80e1d488d9 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c2_c1 : + adaptiveCoverCheck 3 thetaAboveCell0000220020113121 = true := by + exact CoverCertificate80e1d488d9.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c1_c2_c2_3_00014 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsecda937af3 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsecda937af3 + +open CertificateCellsecda937af3 +namespace CoverCertificate24ddeb8618 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate24ddeb8618 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c2_c2 : + adaptiveCoverCheck 3 thetaAboveCell0000220020113122 = true := by + exact CoverCertificate24ddeb8618.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c1_c2_c3_3_00015 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsefa0cf83b9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsefa0cf83b9 + +open CertificateCellsefa0cf83b9 +namespace CoverCertificatea600465144 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea600465144 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c2_c3 : + adaptiveCoverCheck 3 thetaAboveCell0000220020113123 = true := by + exact CoverCertificatea600465144.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c1_c3_c0_3_00018 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells38fe0cae80 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells38fe0cae80 + +open CertificateCells38fe0cae80 +namespace CoverCertificatefdcad14d68 + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatefdcad14d68 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c3_c0 : + adaptiveCoverCheck 3 thetaAboveCell0000220020113130 = true := by + exact CoverCertificatefdcad14d68.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c1_c3_c1_3_00019 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells32c7b8b1fa + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells32c7b8b1fa + +open CertificateCells32c7b8b1fa +namespace CoverCertificate3ad1ac00a7 + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate3ad1ac00a7 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c3_c1 : + adaptiveCoverCheck 3 thetaAboveCell0000220020113131 = true := by + exact CoverCertificate3ad1ac00a7.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c1_c3_c2_3_00020 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb136ba3941 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb136ba3941 + +open CertificateCellsb136ba3941 +namespace CoverCertificatea3bd708439 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea3bd708439 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c3_c2 : + adaptiveCoverCheck 3 thetaAboveCell0000220020113132 = true := by + exact CoverCertificatea3bd708439.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c1_c3_c3_3_00021 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8ac48dda13 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8ac48dda13 + +open CertificateCells8ac48dda13 +namespace CoverCertificateaf7d47a996 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateaf7d47a996 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c3_c3 : + adaptiveCoverCheck 3 thetaAboveCell0000220020113133 = true := by + exact CoverCertificateaf7d47a996.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c2_5_00024 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsde5c2f11fb + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsde5c2f11fb + +open CertificateCellsde5c2f11fb +namespace CoverCertificatec662ef9997 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec662ef9997 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c2 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022002011)) = true := by + exact CoverCertificatec662ef9997.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c3_5_00025 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc44d408296 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc44d408296 + +open CertificateCellsc44d408296 +namespace CoverCertificate32e68ad46a + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate32e68ad46a + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c3 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022002011)) = true := by + exact CoverCertificate32e68ad46a.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above Leaf0000220020_c1_c2_7_00028 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells057d5ed82d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells057d5ed82d + +open CertificateCells057d5ed82d +namespace CoverCertificate713bbdaba3 + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate713bbdaba3 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c2 : + adaptiveCoverCheck 7 thetaAboveCell000022002012 = true := by + exact CoverCertificate713bbdaba3.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above Leaf0000220020_c1_c3_7_00029 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc56edf0af2 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc56edf0af2 + +open CertificateCellsc56edf0af2 +namespace CoverCertificate5832573e8a + +private theorem checked00 : adaptiveCoverCheck 5 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 5 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 5 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 5 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 5 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 5 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 5 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 5 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 6 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 6 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 5 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 6 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 6 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 6 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 7 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 6 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5832573e8a + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c3 : + adaptiveCoverCheck 7 thetaAboveCell000022002013 = true := by + exact CoverCertificate5832573e8a.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c0_6_00475 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells38f587bebf + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells38f587bebf + +open CertificateCells38f587bebf +namespace CoverCertificatec47ffcf2f2 + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec47ffcf2f2 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c0 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022002000) = true := by + exact CoverCertificatec47ffcf2f2.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c1_6_00476 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc330c6667b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc330c6667b + +open CertificateCellsc330c6667b +namespace CoverCertificate535ad25afd + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate535ad25afd + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c1 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022002000) = true := by + exact CoverCertificate535ad25afd.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c0_c0_c0_3_00480 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8addf3ec0f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8addf3ec0f + +open CertificateCells8addf3ec0f +namespace CoverCertificate746010fa88 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate746010fa88 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c0_c0 : + adaptiveCoverCheck 3 thetaAboveCell0000220020002000 = true := by + exact CoverCertificate746010fa88.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c0_c0_c1_3_00481 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells06b0cdd59e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells06b0cdd59e + +open CertificateCells06b0cdd59e +namespace CoverCertificate1f629121b3 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1f629121b3 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c0_c1 : + adaptiveCoverCheck 3 thetaAboveCell0000220020002001 = true := by + exact CoverCertificate1f629121b3.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c0_c0_c2_3_00482 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf1a599f1e1 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf1a599f1e1 + +open CertificateCellsf1a599f1e1 +namespace CoverCertificatec4d5c9280e + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec4d5c9280e + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c0_c2 : + adaptiveCoverCheck 3 thetaAboveCell0000220020002002 = true := by + exact CoverCertificatec4d5c9280e.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c0_c0_c3_3_00483 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells260222ce28 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells260222ce28 + +open CertificateCells260222ce28 +namespace CoverCertificate68a7675d0f + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate68a7675d0f + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c0_c3 : + adaptiveCoverCheck 3 thetaAboveCell0000220020002003 = true := by + exact CoverCertificate68a7675d0f.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c0_c1_c0_3_00486 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5c03b20b81 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5c03b20b81 + +open CertificateCells5c03b20b81 +namespace CoverCertificateaaac1ef041 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateaaac1ef041 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c1_c0 : + adaptiveCoverCheck 3 thetaAboveCell0000220020002010 = true := by + exact CoverCertificateaaac1ef041.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c0_c1_c1_3_00487 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells36e0f7722b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells36e0f7722b + +open CertificateCells36e0f7722b +namespace CoverCertificateeac308265d + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateeac308265d + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c1_c1 : + adaptiveCoverCheck 3 thetaAboveCell0000220020002011 = true := by + exact CoverCertificateeac308265d.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c0_c1_c2_3_00488 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb7dd59a80a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb7dd59a80a + +open CertificateCellsb7dd59a80a +namespace CoverCertificateee7e82afcc + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateee7e82afcc + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c1_c2 : + adaptiveCoverCheck 3 thetaAboveCell0000220020002012 = true := by + exact CoverCertificateee7e82afcc.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c0_c1_c3_3_00489 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsef0079dc28 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsef0079dc28 + +open CertificateCellsef0079dc28 +namespace CoverCertificatec74fdabb9c + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec74fdabb9c + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c1_c3 : + adaptiveCoverCheck 3 thetaAboveCell0000220020002013 = true := by + exact CoverCertificatec74fdabb9c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c0_c2_4_00491 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells58fa53de1e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells58fa53de1e + +open CertificateCells58fa53de1e +namespace CoverCertificateb0390aea72 + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell100 (by decide +kernel) + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell101 (by decide +kernel) + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell110 (by decide +kernel) + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell111 (by decide +kernel) + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateb0390aea72 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c2 : + adaptiveCoverCheck 4 (childHL (childLL (childHL thetaAboveCell000022002000))) = true := by + exact CoverCertificateb0390aea72.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c0_c3_4_00492 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5c48ba0580 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5c48ba0580 + +open CertificateCells5c48ba0580 +namespace CoverCertificate1f25ee1c58 + +private theorem checked1000 : adaptiveCoverCheck 0 cell1000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1000 (by decide +kernel) + +private theorem checked1001 : adaptiveCoverCheck 0 cell1001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1001 (by decide +kernel) + +private theorem checked1002 : adaptiveCoverCheck 0 cell1002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1002 (by decide +kernel) + +private theorem checked1003 : adaptiveCoverCheck 0 cell1003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1003 (by decide +kernel) + +private theorem checked1010 : adaptiveCoverCheck 0 cell1010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1010 (by decide +kernel) + +private theorem checked1011 : adaptiveCoverCheck 0 cell1011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1011 (by decide +kernel) + +private theorem checked1012 : adaptiveCoverCheck 0 cell1012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1012 (by decide +kernel) + +private theorem checked1013 : adaptiveCoverCheck 0 cell1013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1013 (by decide +kernel) + +private theorem checked1100 : adaptiveCoverCheck 0 cell1100 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1100 (by decide +kernel) + +private theorem checked1101 : adaptiveCoverCheck 0 cell1101 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1101 (by decide +kernel) + +private theorem checked1102 : adaptiveCoverCheck 0 cell1102 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1102 (by decide +kernel) + +private theorem checked1103 : adaptiveCoverCheck 0 cell1103 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1103 (by decide +kernel) + +private theorem checked1110 : adaptiveCoverCheck 0 cell1110 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1110 (by decide +kernel) + +private theorem checked1111 : adaptiveCoverCheck 0 cell1111 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1111 (by decide +kernel) + +private theorem checked1112 : adaptiveCoverCheck 0 cell1112 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1112 (by decide +kernel) + +private theorem checked1113 : adaptiveCoverCheck 0 cell1113 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1113 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell000 (by decide +kernel) + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell001 (by decide +kernel) + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell010 (by decide +kernel) + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell011 (by decide +kernel) + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell100 + checked1000 checked1001 checked1002 checked1003 + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell101 + checked1010 checked1011 checked1012 checked1013 + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell110 + checked1100 checked1101 checked1102 checked1103 + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell111 + checked1110 checked1111 checked1112 checked1113 + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1f25ee1c58 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c3 : + adaptiveCoverCheck 4 (childHH (childLL (childHL thetaAboveCell000022002000))) = true := by + exact CoverCertificate1f25ee1c58.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c1_c0_c0_3_00496 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells35af4df13c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells35af4df13c + +open CertificateCells35af4df13c +namespace CoverCertificate64365f01f0 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate64365f01f0 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c0_c0 : + adaptiveCoverCheck 3 thetaAboveCell0000220020002100 = true := by + exact CoverCertificate64365f01f0.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c1_c0_c1_3_00497 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsbb596d2a3e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsbb596d2a3e + +open CertificateCellsbb596d2a3e +namespace CoverCertificatea308b70bb8 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea308b70bb8 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c0_c1 : + adaptiveCoverCheck 3 thetaAboveCell0000220020002101 = true := by + exact CoverCertificatea308b70bb8.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c1_c0_c2_3_00498 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8645eca0c5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8645eca0c5 + +open CertificateCells8645eca0c5 +namespace CoverCertificate181aa5f0fe + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate181aa5f0fe + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c0_c2 : + adaptiveCoverCheck 3 thetaAboveCell0000220020002102 = true := by + exact CoverCertificate181aa5f0fe.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c1_c0_c3_3_00499 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsbe94e44cff + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsbe94e44cff + +open CertificateCellsbe94e44cff +namespace CoverCertificatee52fd52368 + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee52fd52368 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c0_c3 : + adaptiveCoverCheck 3 thetaAboveCell0000220020002103 = true := by + exact CoverCertificatee52fd52368.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c1_c1_c0_3_00502 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd01cbbb894 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd01cbbb894 + +open CertificateCellsd01cbbb894 +namespace CoverCertificate5b77908b1d + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate5b77908b1d + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c1_c0 : + adaptiveCoverCheck 3 thetaAboveCell0000220020002110 = true := by + exact CoverCertificate5b77908b1d.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c1_c1_c1_3_00503 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells768f9f5a16 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells768f9f5a16 + +open CertificateCells768f9f5a16 +namespace CoverCertificatea6ac82148c + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea6ac82148c + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c1_c1 : + adaptiveCoverCheck 3 thetaAboveCell0000220020002111 = true := by + exact CoverCertificatea6ac82148c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle029.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle029.lean new file mode 100644 index 0000000000..334f934a27 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle029.lean @@ -0,0 +1,9721 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch042`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CoverCertificate09deb4be62 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLH (childHL (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate09deb4be62 + +namespace GerverSofa.PartE.CoverCertificate80b49a8860 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLH (childHL (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate80b49a8860 + +namespace GerverSofa.PartE.CoverCertificate8fa79bb108 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childHL (childLL (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell0000 : AngleCell := + childLL cell000 + +private abbrev cell0001 : AngleCell := + childLH cell000 + +private abbrev cell0002 : AngleCell := + childHL cell000 + +private abbrev cell0003 : AngleCell := + childHH cell000 + +private abbrev cell0010 : AngleCell := + childLL cell001 + +private abbrev cell0011 : AngleCell := + childLH cell001 + +private abbrev cell0012 : AngleCell := + childHL cell001 + +private abbrev cell0013 : AngleCell := + childHH cell001 + +private abbrev cell0100 : AngleCell := + childLL cell010 + +private abbrev cell0101 : AngleCell := + childLH cell010 + +private abbrev cell0102 : AngleCell := + childHL cell010 + +private abbrev cell0103 : AngleCell := + childHH cell010 + +private abbrev cell0110 : AngleCell := + childLL cell011 + +private abbrev cell0111 : AngleCell := + childLH cell011 + +private abbrev cell0112 : AngleCell := + childHL cell011 + +private abbrev cell0113 : AngleCell := + childHH cell011 + +private abbrev cell1000 : AngleCell := + childLL cell100 + +private abbrev cell1001 : AngleCell := + childLH cell100 + +private abbrev cell1002 : AngleCell := + childHL cell100 + +private abbrev cell1003 : AngleCell := + childHH cell100 + +private abbrev cell1010 : AngleCell := + childLL cell101 + +private abbrev cell1011 : AngleCell := + childLH cell101 + +private abbrev cell1012 : AngleCell := + childHL cell101 + +private abbrev cell1013 : AngleCell := + childHH cell101 + +private abbrev cell1100 : AngleCell := + childLL cell110 + +private abbrev cell1101 : AngleCell := + childLH cell110 + +private abbrev cell1102 : AngleCell := + childHL cell110 + +private abbrev cell1103 : AngleCell := + childHH cell110 + +private abbrev cell1110 : AngleCell := + childLL cell111 + +private abbrev cell1111 : AngleCell := + childLH cell111 + +private abbrev cell1112 : AngleCell := + childHL cell111 + +private abbrev cell1113 : AngleCell := + childHH cell111 + +end GerverSofa.PartE.CoverCertificate8fa79bb108 + +namespace GerverSofa.PartE.CoverCertificate9198440329 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childHL (childLL (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell0000 : AngleCell := + childLL cell000 + +private abbrev cell0001 : AngleCell := + childLH cell000 + +private abbrev cell0002 : AngleCell := + childHL cell000 + +private abbrev cell0003 : AngleCell := + childHH cell000 + +private abbrev cell0010 : AngleCell := + childLL cell001 + +private abbrev cell0011 : AngleCell := + childLH cell001 + +private abbrev cell0012 : AngleCell := + childHL cell001 + +private abbrev cell0013 : AngleCell := + childHH cell001 + +private abbrev cell0100 : AngleCell := + childLL cell010 + +private abbrev cell0101 : AngleCell := + childLH cell010 + +private abbrev cell0102 : AngleCell := + childHL cell010 + +private abbrev cell0103 : AngleCell := + childHH cell010 + +private abbrev cell0110 : AngleCell := + childLL cell011 + +private abbrev cell0111 : AngleCell := + childLH cell011 + +private abbrev cell0112 : AngleCell := + childHL cell011 + +private abbrev cell0113 : AngleCell := + childHH cell011 + +private abbrev cell1000 : AngleCell := + childLL cell100 + +private abbrev cell1001 : AngleCell := + childLH cell100 + +private abbrev cell1002 : AngleCell := + childHL cell100 + +private abbrev cell1003 : AngleCell := + childHH cell100 + +private abbrev cell1010 : AngleCell := + childLL cell101 + +private abbrev cell1011 : AngleCell := + childLH cell101 + +private abbrev cell1012 : AngleCell := + childHL cell101 + +private abbrev cell1013 : AngleCell := + childHH cell101 + +private abbrev cell1100 : AngleCell := + childLL cell110 + +private abbrev cell1101 : AngleCell := + childLH cell110 + +private abbrev cell1102 : AngleCell := + childHL cell110 + +private abbrev cell1103 : AngleCell := + childHH cell110 + +private abbrev cell1110 : AngleCell := + childLL cell111 + +private abbrev cell1111 : AngleCell := + childLH cell111 + +private abbrev cell1112 : AngleCell := + childHL cell111 + +private abbrev cell1113 : AngleCell := + childHH cell111 + +end GerverSofa.PartE.CoverCertificate9198440329 + +namespace GerverSofa.PartE.CoverCertificate54d2ea68c4 + +private abbrev cellRoot : AngleCell := + (childHL (childHL (childLL (childLL (childLL (childHL (childLL (childLL (childHL (childHL + (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate54d2ea68c4 + +namespace GerverSofa.PartE.CoverCertificate9a90f66090 + +private abbrev cellRoot : AngleCell := + (childHH (childHL (childLL (childLL (childLL (childHL (childLL (childLL (childHL (childHL + (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate9a90f66090 + +namespace GerverSofa.PartE.CoverCertificate9a54be935a + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLL (childHH (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate9a54be935a + +namespace GerverSofa.PartE.CoverCertificatea35db1f021 + +private abbrev cellRoot : AngleCell := + (childLH (childLL (childLL (childHH (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificatea35db1f021 + +namespace GerverSofa.PartE.CoverCertificate8333a307a4 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLL (childHH (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate8333a307a4 + +namespace GerverSofa.PartE.CoverCertificated46e97b4d3 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLL (childHH (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificated46e97b4d3 + +namespace GerverSofa.PartE.CoverCertificate39bdb9b52b + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLL (childHH (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate39bdb9b52b + +namespace GerverSofa.PartE.CoverCertificate21662757e3 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLL (childHH (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate21662757e3 + +namespace GerverSofa.PartE.CoverCertificate7ec8971130 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLL (childHH (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate7ec8971130 + +namespace GerverSofa.PartE.CoverCertificatec012db59ec + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childHH (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatec012db59ec + +namespace GerverSofa.PartE.CoverCertificate418c92a9a1 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childHH (childLL (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell0000 : AngleCell := + childLL cell000 + +private abbrev cell0001 : AngleCell := + childLH cell000 + +private abbrev cell0002 : AngleCell := + childHL cell000 + +private abbrev cell0003 : AngleCell := + childHH cell000 + +private abbrev cell0010 : AngleCell := + childLL cell001 + +private abbrev cell0011 : AngleCell := + childLH cell001 + +private abbrev cell0012 : AngleCell := + childHL cell001 + +private abbrev cell0013 : AngleCell := + childHH cell001 + +private abbrev cell0100 : AngleCell := + childLL cell010 + +private abbrev cell0101 : AngleCell := + childLH cell010 + +private abbrev cell0102 : AngleCell := + childHL cell010 + +private abbrev cell0103 : AngleCell := + childHH cell010 + +private abbrev cell0110 : AngleCell := + childLL cell011 + +private abbrev cell0111 : AngleCell := + childLH cell011 + +private abbrev cell0112 : AngleCell := + childHL cell011 + +private abbrev cell0113 : AngleCell := + childHH cell011 + +private abbrev cell1000 : AngleCell := + childLL cell100 + +private abbrev cell1001 : AngleCell := + childLH cell100 + +private abbrev cell1002 : AngleCell := + childHL cell100 + +private abbrev cell1003 : AngleCell := + childHH cell100 + +private abbrev cell1010 : AngleCell := + childLL cell101 + +private abbrev cell1011 : AngleCell := + childLH cell101 + +private abbrev cell1012 : AngleCell := + childHL cell101 + +private abbrev cell1013 : AngleCell := + childHH cell101 + +private abbrev cell1100 : AngleCell := + childLL cell110 + +private abbrev cell1101 : AngleCell := + childLH cell110 + +private abbrev cell1102 : AngleCell := + childHL cell110 + +private abbrev cell1103 : AngleCell := + childHH cell110 + +private abbrev cell1110 : AngleCell := + childLL cell111 + +private abbrev cell1111 : AngleCell := + childLH cell111 + +private abbrev cell1112 : AngleCell := + childHL cell111 + +private abbrev cell1113 : AngleCell := + childHH cell111 + +end GerverSofa.PartE.CoverCertificate418c92a9a1 + +namespace GerverSofa.PartE.CoverCertificate69c64655e6 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childHH (childLL (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell0000 : AngleCell := + childLL cell000 + +private abbrev cell0001 : AngleCell := + childLH cell000 + +private abbrev cell0002 : AngleCell := + childHL cell000 + +private abbrev cell0003 : AngleCell := + childHH cell000 + +private abbrev cell0010 : AngleCell := + childLL cell001 + +private abbrev cell0011 : AngleCell := + childLH cell001 + +private abbrev cell0012 : AngleCell := + childHL cell001 + +private abbrev cell0013 : AngleCell := + childHH cell001 + +private abbrev cell0100 : AngleCell := + childLL cell010 + +private abbrev cell0101 : AngleCell := + childLH cell010 + +private abbrev cell0102 : AngleCell := + childHL cell010 + +private abbrev cell0103 : AngleCell := + childHH cell010 + +private abbrev cell0110 : AngleCell := + childLL cell011 + +private abbrev cell0111 : AngleCell := + childLH cell011 + +private abbrev cell0112 : AngleCell := + childHL cell011 + +private abbrev cell0113 : AngleCell := + childHH cell011 + +private abbrev cell1000 : AngleCell := + childLL cell100 + +private abbrev cell1001 : AngleCell := + childLH cell100 + +private abbrev cell1002 : AngleCell := + childHL cell100 + +private abbrev cell1003 : AngleCell := + childHH cell100 + +private abbrev cell1010 : AngleCell := + childLL cell101 + +private abbrev cell1011 : AngleCell := + childLH cell101 + +private abbrev cell1012 : AngleCell := + childHL cell101 + +private abbrev cell1013 : AngleCell := + childHH cell101 + +private abbrev cell1100 : AngleCell := + childLL cell110 + +private abbrev cell1101 : AngleCell := + childLH cell110 + +private abbrev cell1102 : AngleCell := + childHL cell110 + +private abbrev cell1103 : AngleCell := + childHH cell110 + +private abbrev cell1110 : AngleCell := + childLL cell111 + +private abbrev cell1111 : AngleCell := + childLH cell111 + +private abbrev cell1112 : AngleCell := + childHL cell111 + +private abbrev cell1113 : AngleCell := + childHH cell111 + +end GerverSofa.PartE.CoverCertificate69c64655e6 + +namespace GerverSofa.PartE.CoverCertificateca69cb479d + +private abbrev cellRoot : AngleCell := + (childLL (childLL (childLH (childHH (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificateca69cb479d + +namespace GerverSofa.PartE.CoverCertificate25b8e68ebd + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLH (childHH (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate25b8e68ebd + +namespace GerverSofa.PartE.CoverCertificate0b5492bc32 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLH (childHH (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate0b5492bc32 + +namespace GerverSofa.PartE.CoverCertificatec2a3e401f5 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLH (childHH (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatec2a3e401f5 + +namespace GerverSofa.PartE.CoverCertificatee2dbedfd13 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLH (childHH (childLL (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatee2dbedfd13 + +namespace GerverSofa.PartE.CoverCertificate558b871c6c + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childHH (childLL (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell0000 : AngleCell := + childLL cell000 + +private abbrev cell0001 : AngleCell := + childLH cell000 + +private abbrev cell0002 : AngleCell := + childHL cell000 + +private abbrev cell0003 : AngleCell := + childHH cell000 + +private abbrev cell0010 : AngleCell := + childLL cell001 + +private abbrev cell0011 : AngleCell := + childLH cell001 + +private abbrev cell0012 : AngleCell := + childHL cell001 + +private abbrev cell0013 : AngleCell := + childHH cell001 + +private abbrev cell0100 : AngleCell := + childLL cell010 + +private abbrev cell0101 : AngleCell := + childLH cell010 + +private abbrev cell0102 : AngleCell := + childHL cell010 + +private abbrev cell0103 : AngleCell := + childHH cell010 + +private abbrev cell0110 : AngleCell := + childLL cell011 + +private abbrev cell0111 : AngleCell := + childLH cell011 + +private abbrev cell0112 : AngleCell := + childHL cell011 + +private abbrev cell0113 : AngleCell := + childHH cell011 + +private abbrev cell1000 : AngleCell := + childLL cell100 + +private abbrev cell1001 : AngleCell := + childLH cell100 + +private abbrev cell1002 : AngleCell := + childHL cell100 + +private abbrev cell1003 : AngleCell := + childHH cell100 + +private abbrev cell1010 : AngleCell := + childLL cell101 + +private abbrev cell1011 : AngleCell := + childLH cell101 + +private abbrev cell1012 : AngleCell := + childHL cell101 + +private abbrev cell1013 : AngleCell := + childHH cell101 + +private abbrev cell1100 : AngleCell := + childLL cell110 + +private abbrev cell1101 : AngleCell := + childLH cell110 + +private abbrev cell1102 : AngleCell := + childHL cell110 + +private abbrev cell1103 : AngleCell := + childHH cell110 + +private abbrev cell1110 : AngleCell := + childLL cell111 + +private abbrev cell1111 : AngleCell := + childLH cell111 + +private abbrev cell1112 : AngleCell := + childHL cell111 + +private abbrev cell1113 : AngleCell := + childHH cell111 + +end GerverSofa.PartE.CoverCertificate558b871c6c + +namespace GerverSofa.PartE.CoverCertificatec90af2cbcd + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childHH (childLL (childLL (childLL (childHL (childLL (childLL (childHL + (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell000 : AngleCell := + childLL cell00 + +private abbrev cell001 : AngleCell := + childLH cell00 + +private abbrev cell002 : AngleCell := + childHL cell00 + +private abbrev cell003 : AngleCell := + childHH cell00 + +private abbrev cell010 : AngleCell := + childLL cell01 + +private abbrev cell011 : AngleCell := + childLH cell01 + +private abbrev cell012 : AngleCell := + childHL cell01 + +private abbrev cell013 : AngleCell := + childHH cell01 + +private abbrev cell100 : AngleCell := + childLL cell10 + +private abbrev cell101 : AngleCell := + childLH cell10 + +private abbrev cell102 : AngleCell := + childHL cell10 + +private abbrev cell103 : AngleCell := + childHH cell10 + +private abbrev cell110 : AngleCell := + childLL cell11 + +private abbrev cell111 : AngleCell := + childLH cell11 + +private abbrev cell112 : AngleCell := + childHL cell11 + +private abbrev cell113 : AngleCell := + childHH cell11 + +private abbrev cell0000 : AngleCell := + childLL cell000 + +private abbrev cell0001 : AngleCell := + childLH cell000 + +private abbrev cell0002 : AngleCell := + childHL cell000 + +private abbrev cell0003 : AngleCell := + childHH cell000 + +private abbrev cell0010 : AngleCell := + childLL cell001 + +private abbrev cell0011 : AngleCell := + childLH cell001 + +private abbrev cell0012 : AngleCell := + childHL cell001 + +private abbrev cell0013 : AngleCell := + childHH cell001 + +private abbrev cell0100 : AngleCell := + childLL cell010 + +private abbrev cell0101 : AngleCell := + childLH cell010 + +private abbrev cell0102 : AngleCell := + childHL cell010 + +private abbrev cell0103 : AngleCell := + childHH cell010 + +private abbrev cell0110 : AngleCell := + childLL cell011 + +private abbrev cell0111 : AngleCell := + childLH cell011 + +private abbrev cell0112 : AngleCell := + childHL cell011 + +private abbrev cell0113 : AngleCell := + childHH cell011 + +private abbrev cell1000 : AngleCell := + childLL cell100 + +private abbrev cell1001 : AngleCell := + childLH cell100 + +private abbrev cell1002 : AngleCell := + childHL cell100 + +private abbrev cell1003 : AngleCell := + childHH cell100 + +private abbrev cell1010 : AngleCell := + childLL cell101 + +private abbrev cell1011 : AngleCell := + childLH cell101 + +private abbrev cell1012 : AngleCell := + childHL cell101 + +private abbrev cell1013 : AngleCell := + childHH cell101 + +private abbrev cell1100 : AngleCell := + childLL cell110 + +private abbrev cell1101 : AngleCell := + childLH cell110 + +private abbrev cell1102 : AngleCell := + childHL cell110 + +private abbrev cell1103 : AngleCell := + childHH cell110 + +private abbrev cell1110 : AngleCell := + childLL cell111 + +private abbrev cell1111 : AngleCell := + childLH cell111 + +private abbrev cell1112 : AngleCell := + childHL cell111 + +private abbrev cell1113 : AngleCell := + childHH cell111 + +end GerverSofa.PartE.CoverCertificatec90af2cbcd + +namespace GerverSofa.PartE.CoverCertificate850c59f3da + +private abbrev cellRoot : AngleCell := + (childHL (childHH (childLL (childLL (childLL (childHL (childLL (childLL (childHL (childHL + (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate850c59f3da + +namespace GerverSofa.PartE.CoverCertificate1c095a90b4 + +private abbrev cellRoot : AngleCell := + (childHH (childHH (childLL (childLL (childLL (childHL (childLL (childLL (childHL (childHL + (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +end GerverSofa.PartE.CoverCertificate1c095a90b4 + +namespace GerverSofa.PartE.CoverCertificate0341d165df + +private abbrev cellRoot : AngleCell := + (childLL (childLH (childLL (childLL (childHL (childLL (childLL (childHL (childHL (childLL + (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificate0341d165df + +namespace GerverSofa.PartE.CoverCertificatedfaaa383f3 + +private abbrev cellRoot : AngleCell := + (childLH (childLH (childLL (childLL (childHL (childLL (childLL (childHL (childHL (childLL + (childLL (childLL (childLL (e24ThetaAboveRoot)))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +end GerverSofa.PartE.CoverCertificatedfaaa383f3 + +namespace GerverSofa.PartE.CoverCertificatea8d5b0d3f5 + +private abbrev cellRoot : AngleCell := + (childHL (childLL (childLL (childHL (childLH (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificatea8d5b0d3f5 + +namespace GerverSofa.PartE.CoverCertificate0573161232 + +private abbrev cellRoot : AngleCell := + (childHH (childLL (childLL (childHL (childLH (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate0573161232 + +namespace GerverSofa.PartE.CoverCertificate4fc67a95c3 + +private abbrev cellRoot : AngleCell := + (childHL (childLH (childLL (childHL (childLH (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificate4fc67a95c3 + +namespace GerverSofa.PartE.CoverCertificateba1f6e5865 + +private abbrev cellRoot : AngleCell := + (childHH (childLH (childLL (childHL (childLH (childLL (childLL (childHL (childLL (childLL + (childHL (childHL (childLL (childLL (childLL (childLL (e24ThetaAboveRoot))))))))))))))))) + +private abbrev cell0 : AngleCell := + childLL cellRoot + +private abbrev cell1 : AngleCell := + childLH cellRoot + +private abbrev cell2 : AngleCell := + childHL cellRoot + +private abbrev cell3 : AngleCell := + childHH cellRoot + +private abbrev cell00 : AngleCell := + childLL cell0 + +private abbrev cell01 : AngleCell := + childLH cell0 + +private abbrev cell02 : AngleCell := + childHL cell0 + +private abbrev cell03 : AngleCell := + childHH cell0 + +private abbrev cell10 : AngleCell := + childLL cell1 + +private abbrev cell11 : AngleCell := + childLH cell1 + +private abbrev cell12 : AngleCell := + childHL cell1 + +private abbrev cell13 : AngleCell := + childHH cell1 + +private abbrev cell20 : AngleCell := + childLL cell2 + +private abbrev cell21 : AngleCell := + childLH cell2 + +private abbrev cell22 : AngleCell := + childHL cell2 + +private abbrev cell23 : AngleCell := + childHH cell2 + +private abbrev cell30 : AngleCell := + childLL cell3 + +private abbrev cell31 : AngleCell := + childLH cell3 + +private abbrev cell32 : AngleCell := + childHL cell3 + +private abbrev cell33 : AngleCell := + childHH cell3 + +private abbrev cell200 : AngleCell := + childLL cell20 + +private abbrev cell201 : AngleCell := + childLH cell20 + +private abbrev cell202 : AngleCell := + childHL cell20 + +private abbrev cell203 : AngleCell := + childHH cell20 + +private abbrev cell210 : AngleCell := + childLL cell21 + +private abbrev cell211 : AngleCell := + childLH cell21 + +private abbrev cell212 : AngleCell := + childHL cell21 + +private abbrev cell213 : AngleCell := + childHH cell21 + +private abbrev cell220 : AngleCell := + childLL cell22 + +private abbrev cell221 : AngleCell := + childLH cell22 + +private abbrev cell222 : AngleCell := + childHL cell22 + +private abbrev cell223 : AngleCell := + childHH cell22 + +private abbrev cell230 : AngleCell := + childLL cell23 + +private abbrev cell231 : AngleCell := + childLH cell23 + +private abbrev cell232 : AngleCell := + childHL cell23 + +private abbrev cell233 : AngleCell := + childHH cell23 + +private abbrev cell300 : AngleCell := + childLL cell30 + +private abbrev cell301 : AngleCell := + childLH cell30 + +private abbrev cell302 : AngleCell := + childHL cell30 + +private abbrev cell303 : AngleCell := + childHH cell30 + +private abbrev cell310 : AngleCell := + childLL cell31 + +private abbrev cell311 : AngleCell := + childLH cell31 + +private abbrev cell312 : AngleCell := + childHL cell31 + +private abbrev cell313 : AngleCell := + childHH cell31 + +private abbrev cell320 : AngleCell := + childLL cell32 + +private abbrev cell321 : AngleCell := + childLH cell32 + +private abbrev cell322 : AngleCell := + childHL cell32 + +private abbrev cell323 : AngleCell := + childHH cell32 + +private abbrev cell330 : AngleCell := + childLL cell33 + +private abbrev cell331 : AngleCell := + childLH cell33 + +private abbrev cell332 : AngleCell := + childHL cell33 + +private abbrev cell333 : AngleCell := + childHH cell33 + +end GerverSofa.PartE.CoverCertificateba1f6e5865 + +namespace GerverSofa.PartE.CertificateCells508bd70e72 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020002112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020002112 : AngleCell := + childHL (childLH (childLH (childHL thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells508bd70e72 + +namespace GerverSofa.PartE.CertificateCells2ebb3ae727 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020002113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020002113 : AngleCell := + childHH (childLH (childLH (childHL thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells2ebb3ae727 + +namespace GerverSofa.PartE.CertificateCells808549b800 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells808549b800 + +namespace GerverSofa.PartE.CertificateCellsd717193e27 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsd717193e27 + +namespace GerverSofa.PartE.CertificateCellsc9eea5ae86 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsc9eea5ae86 + +namespace GerverSofa.PartE.CertificateCells883d9c2359 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells883d9c2359 + +namespace GerverSofa.PartE.CertificateCells81adac8f59 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020003000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020003000 : AngleCell := + childLL (childLL (childLL (childHH thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells81adac8f59 + +namespace GerverSofa.PartE.CertificateCellsd02c0d99aa + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020003001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020003001 : AngleCell := + childLH (childLL (childLL (childHH thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCellsd02c0d99aa + +namespace GerverSofa.PartE.CertificateCellsb3e2fb602b + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020003002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020003002 : AngleCell := + childHL (childLL (childLL (childHH thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCellsb3e2fb602b + +namespace GerverSofa.PartE.CertificateCells4e515808c8 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020003003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020003003 : AngleCell := + childHH (childLL (childLL (childHH thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells4e515808c8 + +namespace GerverSofa.PartE.CertificateCellsc37a4f0e7c + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020003010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020003010 : AngleCell := + childLL (childLH (childLL (childHH thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCellsc37a4f0e7c + +namespace GerverSofa.PartE.CertificateCells6662eefeaf + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020003011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020003011 : AngleCell := + childLH (childLH (childLL (childHH thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells6662eefeaf + +namespace GerverSofa.PartE.CertificateCells9cbe967e81 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020003012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020003012 : AngleCell := + childHL (childLH (childLL (childHH thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells9cbe967e81 + +namespace GerverSofa.PartE.CertificateCells868d9f8f69 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020003013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020003013 : AngleCell := + childHH (childLH (childLL (childHH thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells868d9f8f69 + +namespace GerverSofa.PartE.CertificateCells3c1ed7e077 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells3c1ed7e077 + +namespace GerverSofa.PartE.CertificateCellsda1171cd1c + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsda1171cd1c + +namespace GerverSofa.PartE.CertificateCells00487431af + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020003100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020003100 : AngleCell := + childLL (childLL (childLH (childHH thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells00487431af + +namespace GerverSofa.PartE.CertificateCellsebfda2d52e + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020003101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020003101 : AngleCell := + childLH (childLL (childLH (childHH thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCellsebfda2d52e + +namespace GerverSofa.PartE.CertificateCells0d7543751e + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020003102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020003102 : AngleCell := + childHL (childLL (childLH (childHH thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells0d7543751e + +namespace GerverSofa.PartE.CertificateCells3d57dcf8b1 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020003103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020003103 : AngleCell := + childHH (childLL (childLH (childHH thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells3d57dcf8b1 + +namespace GerverSofa.PartE.CertificateCells280bbc9838 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020003110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020003110 : AngleCell := + childLL (childLH (childLH (childHH thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells280bbc9838 + +namespace GerverSofa.PartE.CertificateCells86fd793561 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020003111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020003111 : AngleCell := + childLH (childLH (childLH (childHH thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells86fd793561 + +namespace GerverSofa.PartE.CertificateCellsc0e73f28b6 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020003112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020003112 : AngleCell := + childHL (childLH (childLH (childHH thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCellsc0e73f28b6 + +namespace GerverSofa.PartE.CertificateCells97ab098fbd + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020003113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020003113 : AngleCell := + childHH (childLH (childLH (childHH thetaAboveCell000022002000))) + +end GerverSofa.PartE.CertificateCells97ab098fbd + +namespace GerverSofa.PartE.CertificateCells90296eb122 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells90296eb122 + +namespace GerverSofa.PartE.CertificateCells48c4f5a54f + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells48c4f5a54f + +namespace GerverSofa.PartE.CertificateCellsd47d097993 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsd47d097993 + +namespace GerverSofa.PartE.CertificateCells861c7fa81d + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells861c7fa81d + +namespace GerverSofa.PartE.CertificateCells96a538a32c + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells96a538a32c + +namespace GerverSofa.PartE.CertificateCells867b92c925 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells867b92c925 + +namespace GerverSofa.PartE.CertificateCellse8beb6dc5c + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020012000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020012000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell000022002001))) + +end GerverSofa.PartE.CertificateCellse8beb6dc5c + +namespace GerverSofa.PartE.CertificateCellsa4fa334623 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020012001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020012001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell000022002001))) + +end GerverSofa.PartE.CertificateCellsa4fa334623 + +namespace GerverSofa.PartE.CertificateCellsd70a3df0a0 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020012002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020012002 : AngleCell := + childHL (childLL (childLL (childHL thetaAboveCell000022002001))) + +end GerverSofa.PartE.CertificateCellsd70a3df0a0 + +namespace GerverSofa.PartE.CertificateCells02a2748806 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020012003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020012003 : AngleCell := + childHH (childLL (childLL (childHL thetaAboveCell000022002001))) + +end GerverSofa.PartE.CertificateCells02a2748806 + +namespace GerverSofa.PartE.CertificateCells3863a30667 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020012010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020012010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell000022002001))) + +end GerverSofa.PartE.CertificateCells3863a30667 + +namespace GerverSofa.PartE.CertificateCellsd6d3f4989a + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020012011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020012011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell000022002001))) + +end GerverSofa.PartE.CertificateCellsd6d3f4989a + +namespace GerverSofa.PartE.CertificateCellsb420376865 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020012012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020012012 : AngleCell := + childHL (childLH (childLL (childHL thetaAboveCell000022002001))) + +end GerverSofa.PartE.CertificateCellsb420376865 + +namespace GerverSofa.PartE.CertificateCellsa9306cab0b + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `0000220020012013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000220020012013 : AngleCell := + childHH (childLH (childLL (childHL thetaAboveCell000022002001))) + +end GerverSofa.PartE.CertificateCellsa9306cab0b + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.ThetaAbove.Leaf00504`. +* `KernelOnly.PartE.ThetaAbove.Leaf00505`. +* `KernelOnly.PartE.ThetaAbove.Leaf00507`. +* `KernelOnly.PartE.ThetaAbove.Leaf00508`. +* `KernelOnly.PartE.ThetaAbove.Leaf00510`. +* `KernelOnly.PartE.ThetaAbove.Leaf00511`. +* `KernelOnly.PartE.ThetaAbove.Leaf00516`. +* `KernelOnly.PartE.ThetaAbove.Leaf00517`. +* `KernelOnly.PartE.ThetaAbove.Leaf00518`. +* `KernelOnly.PartE.ThetaAbove.Leaf00519`. +* `KernelOnly.PartE.ThetaAbove.Leaf00522`. +* `KernelOnly.PartE.ThetaAbove.Leaf00523`. +* `KernelOnly.PartE.ThetaAbove.Leaf00524`. +* `KernelOnly.PartE.ThetaAbove.Leaf00525`. +* `KernelOnly.PartE.ThetaAbove.Leaf00527`. +* `KernelOnly.PartE.ThetaAbove.Leaf00528`. +* `KernelOnly.PartE.ThetaAbove.Leaf00532`. +* `KernelOnly.PartE.ThetaAbove.Leaf00533`. +* `KernelOnly.PartE.ThetaAbove.Leaf00534`. +* `KernelOnly.PartE.ThetaAbove.Leaf00535`. +* `KernelOnly.PartE.ThetaAbove.Leaf00538`. +* `KernelOnly.PartE.ThetaAbove.Leaf00539`. +* `KernelOnly.PartE.ThetaAbove.Leaf00540`. +* `KernelOnly.PartE.ThetaAbove.Leaf00541`. +* `KernelOnly.PartE.ThetaAbove.Leaf00543`. +* `KernelOnly.PartE.ThetaAbove.Leaf00544`. +* `KernelOnly.PartE.ThetaAbove.Leaf00546`. +* `KernelOnly.PartE.ThetaAbove.Leaf00547`. +* `KernelOnly.PartE.ThetaAbove.Leaf00551`. +* `KernelOnly.PartE.ThetaAbove.Leaf00552`. +* `KernelOnly.PartE.ThetaAbove.Leaf00556`. +* `KernelOnly.PartE.ThetaAbove.Leaf00557`. +* `KernelOnly.PartE.ThetaAbove.Leaf00558`. +* `KernelOnly.PartE.ThetaAbove.Leaf00559`. +* `KernelOnly.PartE.ThetaAbove.Leaf00562`. +* `KernelOnly.PartE.ThetaAbove.Leaf00563`. +* `KernelOnly.PartE.ThetaAbove.Leaf00564`. +* `KernelOnly.PartE.ThetaAbove.Leaf00565`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c1_c1_c2_3_00504 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells508bd70e72 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells508bd70e72 + +open CertificateCells508bd70e72 +namespace CoverCertificate09deb4be62 + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate09deb4be62 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c1_c2 : + adaptiveCoverCheck 3 thetaAboveCell0000220020002112 = true := by + exact CoverCertificate09deb4be62.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c1_c1_c3_3_00505 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2ebb3ae727 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2ebb3ae727 + +open CertificateCells2ebb3ae727 +namespace CoverCertificate80b49a8860 + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate80b49a8860 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c1_c3 : + adaptiveCoverCheck 3 thetaAboveCell0000220020002113 = true := by + exact CoverCertificate80b49a8860.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c1_c2_4_00507 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells808549b800 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells808549b800 + +open CertificateCells808549b800 +namespace CoverCertificate8fa79bb108 + +private theorem checked0000 : adaptiveCoverCheck 0 cell0000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0000 (by decide +kernel) + +private theorem checked0001 : adaptiveCoverCheck 0 cell0001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0001 (by decide +kernel) + +private theorem checked0002 : adaptiveCoverCheck 0 cell0002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0002 (by decide +kernel) + +private theorem checked0003 : adaptiveCoverCheck 0 cell0003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0003 (by decide +kernel) + +private theorem checked0010 : adaptiveCoverCheck 0 cell0010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0010 (by decide +kernel) + +private theorem checked0011 : adaptiveCoverCheck 0 cell0011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0011 (by decide +kernel) + +private theorem checked0012 : adaptiveCoverCheck 0 cell0012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0012 (by decide +kernel) + +private theorem checked0013 : adaptiveCoverCheck 0 cell0013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0013 (by decide +kernel) + +private theorem checked0100 : adaptiveCoverCheck 0 cell0100 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0100 (by decide +kernel) + +private theorem checked0101 : adaptiveCoverCheck 0 cell0101 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0101 (by decide +kernel) + +private theorem checked0102 : adaptiveCoverCheck 0 cell0102 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0102 (by decide +kernel) + +private theorem checked0103 : adaptiveCoverCheck 0 cell0103 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0103 (by decide +kernel) + +private theorem checked0110 : adaptiveCoverCheck 0 cell0110 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0110 (by decide +kernel) + +private theorem checked0111 : adaptiveCoverCheck 0 cell0111 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0111 (by decide +kernel) + +private theorem checked0112 : adaptiveCoverCheck 0 cell0112 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0112 (by decide +kernel) + +private theorem checked0113 : adaptiveCoverCheck 0 cell0113 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0113 (by decide +kernel) + +private theorem checked1000 : adaptiveCoverCheck 0 cell1000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1000 (by decide +kernel) + +private theorem checked1001 : adaptiveCoverCheck 0 cell1001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1001 (by decide +kernel) + +private theorem checked1002 : adaptiveCoverCheck 0 cell1002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1002 (by decide +kernel) + +private theorem checked1003 : adaptiveCoverCheck 0 cell1003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1003 (by decide +kernel) + +private theorem checked1010 : adaptiveCoverCheck 0 cell1010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1010 (by decide +kernel) + +private theorem checked1011 : adaptiveCoverCheck 0 cell1011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1011 (by decide +kernel) + +private theorem checked1012 : adaptiveCoverCheck 0 cell1012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1012 (by decide +kernel) + +private theorem checked1013 : adaptiveCoverCheck 0 cell1013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1013 (by decide +kernel) + +private theorem checked1100 : adaptiveCoverCheck 0 cell1100 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1100 (by decide +kernel) + +private theorem checked1101 : adaptiveCoverCheck 0 cell1101 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1101 (by decide +kernel) + +private theorem checked1102 : adaptiveCoverCheck 0 cell1102 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1102 (by decide +kernel) + +private theorem checked1103 : adaptiveCoverCheck 0 cell1103 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1103 (by decide +kernel) + +private theorem checked1110 : adaptiveCoverCheck 0 cell1110 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1110 (by decide +kernel) + +private theorem checked1111 : adaptiveCoverCheck 0 cell1111 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1111 (by decide +kernel) + +private theorem checked1112 : adaptiveCoverCheck 0 cell1112 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1112 (by decide +kernel) + +private theorem checked1113 : adaptiveCoverCheck 0 cell1113 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1113 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell000 + checked0000 checked0001 checked0002 checked0003 + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell001 + checked0010 checked0011 checked0012 checked0013 + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell010 + checked0100 checked0101 checked0102 checked0103 + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell011 + checked0110 checked0111 checked0112 checked0113 + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell100 + checked1000 checked1001 checked1002 checked1003 + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell101 + checked1010 checked1011 checked1012 checked1013 + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell110 + checked1100 checked1101 checked1102 checked1103 + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell111 + checked1110 checked1111 checked1112 checked1113 + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate8fa79bb108 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c2 : + adaptiveCoverCheck 4 (childHL (childLH (childHL thetaAboveCell000022002000))) = true := by + exact CoverCertificate8fa79bb108.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c1_c3_4_00508 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd717193e27 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd717193e27 + +open CertificateCellsd717193e27 +namespace CoverCertificate9198440329 + +private theorem checked0000 : adaptiveCoverCheck 0 cell0000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0000 (by decide +kernel) + +private theorem checked0001 : adaptiveCoverCheck 0 cell0001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0001 (by decide +kernel) + +private theorem checked0002 : adaptiveCoverCheck 0 cell0002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0002 (by decide +kernel) + +private theorem checked0003 : adaptiveCoverCheck 0 cell0003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0003 (by decide +kernel) + +private theorem checked0010 : adaptiveCoverCheck 0 cell0010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0010 (by decide +kernel) + +private theorem checked0011 : adaptiveCoverCheck 0 cell0011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0011 (by decide +kernel) + +private theorem checked0012 : adaptiveCoverCheck 0 cell0012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0012 (by decide +kernel) + +private theorem checked0013 : adaptiveCoverCheck 0 cell0013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0013 (by decide +kernel) + +private theorem checked0100 : adaptiveCoverCheck 0 cell0100 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0100 (by decide +kernel) + +private theorem checked0101 : adaptiveCoverCheck 0 cell0101 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0101 (by decide +kernel) + +private theorem checked0102 : adaptiveCoverCheck 0 cell0102 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0102 (by decide +kernel) + +private theorem checked0103 : adaptiveCoverCheck 0 cell0103 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0103 (by decide +kernel) + +private theorem checked0110 : adaptiveCoverCheck 0 cell0110 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0110 (by decide +kernel) + +private theorem checked0111 : adaptiveCoverCheck 0 cell0111 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0111 (by decide +kernel) + +private theorem checked0112 : adaptiveCoverCheck 0 cell0112 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0112 (by decide +kernel) + +private theorem checked0113 : adaptiveCoverCheck 0 cell0113 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0113 (by decide +kernel) + +private theorem checked1000 : adaptiveCoverCheck 0 cell1000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1000 (by decide +kernel) + +private theorem checked1001 : adaptiveCoverCheck 0 cell1001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1001 (by decide +kernel) + +private theorem checked1002 : adaptiveCoverCheck 0 cell1002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1002 (by decide +kernel) + +private theorem checked1003 : adaptiveCoverCheck 0 cell1003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1003 (by decide +kernel) + +private theorem checked1010 : adaptiveCoverCheck 0 cell1010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1010 (by decide +kernel) + +private theorem checked1011 : adaptiveCoverCheck 0 cell1011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1011 (by decide +kernel) + +private theorem checked1012 : adaptiveCoverCheck 0 cell1012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1012 (by decide +kernel) + +private theorem checked1013 : adaptiveCoverCheck 0 cell1013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1013 (by decide +kernel) + +private theorem checked1100 : adaptiveCoverCheck 0 cell1100 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1100 (by decide +kernel) + +private theorem checked1101 : adaptiveCoverCheck 0 cell1101 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1101 (by decide +kernel) + +private theorem checked1102 : adaptiveCoverCheck 0 cell1102 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1102 (by decide +kernel) + +private theorem checked1103 : adaptiveCoverCheck 0 cell1103 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1103 (by decide +kernel) + +private theorem checked1110 : adaptiveCoverCheck 0 cell1110 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1110 (by decide +kernel) + +private theorem checked1111 : adaptiveCoverCheck 0 cell1111 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1111 (by decide +kernel) + +private theorem checked1112 : adaptiveCoverCheck 0 cell1112 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1112 (by decide +kernel) + +private theorem checked1113 : adaptiveCoverCheck 0 cell1113 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1113 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell000 + checked0000 checked0001 checked0002 checked0003 + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell001 + checked0010 checked0011 checked0012 checked0013 + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell010 + checked0100 checked0101 checked0102 checked0103 + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell011 + checked0110 checked0111 checked0112 checked0113 + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell100 + checked1000 checked1001 checked1002 checked1003 + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell101 + checked1010 checked1011 checked1012 checked1013 + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell110 + checked1100 checked1101 checked1102 checked1103 + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell111 + checked1110 checked1111 checked1112 checked1113 + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate9198440329 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c3 : + adaptiveCoverCheck 4 (childHH (childLH (childHL thetaAboveCell000022002000))) = true := by + exact CoverCertificate9198440329.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c2_5_00510 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc9eea5ae86 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc9eea5ae86 + +open CertificateCellsc9eea5ae86 +namespace CoverCertificate54d2ea68c4 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate54d2ea68c4 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c2 : + adaptiveCoverCheck 5 (childHL (childHL thetaAboveCell000022002000)) = true := by + exact CoverCertificate54d2ea68c4.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c3_5_00511 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells883d9c2359 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells883d9c2359 + +open CertificateCells883d9c2359 +namespace CoverCertificate9a90f66090 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate9a90f66090 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c3 : + adaptiveCoverCheck 5 (childHH (childHL thetaAboveCell000022002000)) = true := by + exact CoverCertificate9a90f66090.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c0_c0_c0_3_00516 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells81adac8f59 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells81adac8f59 + +open CertificateCells81adac8f59 +namespace CoverCertificate9a54be935a + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate9a54be935a + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c0_c0 : + adaptiveCoverCheck 3 thetaAboveCell0000220020003000 = true := by + exact CoverCertificate9a54be935a.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c0_c0_c1_3_00517 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd02c0d99aa + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd02c0d99aa + +open CertificateCellsd02c0d99aa +namespace CoverCertificatea35db1f021 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea35db1f021 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c0_c1 : + adaptiveCoverCheck 3 thetaAboveCell0000220020003001 = true := by + exact CoverCertificatea35db1f021.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c0_c0_c2_3_00518 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb3e2fb602b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb3e2fb602b + +open CertificateCellsb3e2fb602b +namespace CoverCertificate8333a307a4 + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate8333a307a4 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c0_c2 : + adaptiveCoverCheck 3 thetaAboveCell0000220020003002 = true := by + exact CoverCertificate8333a307a4.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c0_c0_c3_3_00519 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4e515808c8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4e515808c8 + +open CertificateCells4e515808c8 +namespace CoverCertificated46e97b4d3 + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificated46e97b4d3 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c0_c3 : + adaptiveCoverCheck 3 thetaAboveCell0000220020003003 = true := by + exact CoverCertificated46e97b4d3.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c0_c1_c0_3_00522 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc37a4f0e7c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc37a4f0e7c + +open CertificateCellsc37a4f0e7c +namespace CoverCertificate39bdb9b52b + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate39bdb9b52b + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c1_c0 : + adaptiveCoverCheck 3 thetaAboveCell0000220020003010 = true := by + exact CoverCertificate39bdb9b52b.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c0_c1_c1_3_00523 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6662eefeaf + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6662eefeaf + +open CertificateCells6662eefeaf +namespace CoverCertificate21662757e3 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate21662757e3 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c1_c1 : + adaptiveCoverCheck 3 thetaAboveCell0000220020003011 = true := by + exact CoverCertificate21662757e3.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c0_c1_c2_3_00524 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9cbe967e81 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9cbe967e81 + +open CertificateCells9cbe967e81 +namespace CoverCertificate7ec8971130 + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate7ec8971130 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c1_c2 : + adaptiveCoverCheck 3 thetaAboveCell0000220020003012 = true := by + exact CoverCertificate7ec8971130.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c0_c1_c3_3_00525 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells868d9f8f69 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells868d9f8f69 + +open CertificateCells868d9f8f69 +namespace CoverCertificatec012db59ec + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec012db59ec + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c1_c3 : + adaptiveCoverCheck 3 thetaAboveCell0000220020003013 = true := by + exact CoverCertificatec012db59ec.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c0_c2_4_00527 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3c1ed7e077 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3c1ed7e077 + +open CertificateCells3c1ed7e077 +namespace CoverCertificate418c92a9a1 + +private theorem checked0000 : adaptiveCoverCheck 0 cell0000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0000 (by decide +kernel) + +private theorem checked0001 : adaptiveCoverCheck 0 cell0001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0001 (by decide +kernel) + +private theorem checked0002 : adaptiveCoverCheck 0 cell0002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0002 (by decide +kernel) + +private theorem checked0003 : adaptiveCoverCheck 0 cell0003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0003 (by decide +kernel) + +private theorem checked0010 : adaptiveCoverCheck 0 cell0010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0010 (by decide +kernel) + +private theorem checked0011 : adaptiveCoverCheck 0 cell0011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0011 (by decide +kernel) + +private theorem checked0012 : adaptiveCoverCheck 0 cell0012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0012 (by decide +kernel) + +private theorem checked0013 : adaptiveCoverCheck 0 cell0013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0013 (by decide +kernel) + +private theorem checked0100 : adaptiveCoverCheck 0 cell0100 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0100 (by decide +kernel) + +private theorem checked0101 : adaptiveCoverCheck 0 cell0101 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0101 (by decide +kernel) + +private theorem checked0102 : adaptiveCoverCheck 0 cell0102 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0102 (by decide +kernel) + +private theorem checked0103 : adaptiveCoverCheck 0 cell0103 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0103 (by decide +kernel) + +private theorem checked0110 : adaptiveCoverCheck 0 cell0110 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0110 (by decide +kernel) + +private theorem checked0111 : adaptiveCoverCheck 0 cell0111 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0111 (by decide +kernel) + +private theorem checked0112 : adaptiveCoverCheck 0 cell0112 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0112 (by decide +kernel) + +private theorem checked0113 : adaptiveCoverCheck 0 cell0113 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0113 (by decide +kernel) + +private theorem checked1000 : adaptiveCoverCheck 0 cell1000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1000 (by decide +kernel) + +private theorem checked1001 : adaptiveCoverCheck 0 cell1001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1001 (by decide +kernel) + +private theorem checked1002 : adaptiveCoverCheck 0 cell1002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1002 (by decide +kernel) + +private theorem checked1003 : adaptiveCoverCheck 0 cell1003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1003 (by decide +kernel) + +private theorem checked1010 : adaptiveCoverCheck 0 cell1010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1010 (by decide +kernel) + +private theorem checked1011 : adaptiveCoverCheck 0 cell1011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1011 (by decide +kernel) + +private theorem checked1012 : adaptiveCoverCheck 0 cell1012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1012 (by decide +kernel) + +private theorem checked1013 : adaptiveCoverCheck 0 cell1013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1013 (by decide +kernel) + +private theorem checked1100 : adaptiveCoverCheck 0 cell1100 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1100 (by decide +kernel) + +private theorem checked1101 : adaptiveCoverCheck 0 cell1101 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1101 (by decide +kernel) + +private theorem checked1102 : adaptiveCoverCheck 0 cell1102 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1102 (by decide +kernel) + +private theorem checked1103 : adaptiveCoverCheck 0 cell1103 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1103 (by decide +kernel) + +private theorem checked1110 : adaptiveCoverCheck 0 cell1110 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1110 (by decide +kernel) + +private theorem checked1111 : adaptiveCoverCheck 0 cell1111 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1111 (by decide +kernel) + +private theorem checked1112 : adaptiveCoverCheck 0 cell1112 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1112 (by decide +kernel) + +private theorem checked1113 : adaptiveCoverCheck 0 cell1113 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1113 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell000 + checked0000 checked0001 checked0002 checked0003 + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell001 + checked0010 checked0011 checked0012 checked0013 + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell010 + checked0100 checked0101 checked0102 checked0103 + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell011 + checked0110 checked0111 checked0112 checked0113 + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell100 + checked1000 checked1001 checked1002 checked1003 + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell101 + checked1010 checked1011 checked1012 checked1013 + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell110 + checked1100 checked1101 checked1102 checked1103 + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell111 + checked1110 checked1111 checked1112 checked1113 + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate418c92a9a1 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c2 : + adaptiveCoverCheck 4 (childHL (childLL (childHH thetaAboveCell000022002000))) = true := by + exact CoverCertificate418c92a9a1.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c0_c3_4_00528 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsda1171cd1c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsda1171cd1c + +open CertificateCellsda1171cd1c +namespace CoverCertificate69c64655e6 + +private theorem checked0000 : adaptiveCoverCheck 0 cell0000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0000 (by decide +kernel) + +private theorem checked0001 : adaptiveCoverCheck 0 cell0001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0001 (by decide +kernel) + +private theorem checked0002 : adaptiveCoverCheck 0 cell0002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0002 (by decide +kernel) + +private theorem checked0003 : adaptiveCoverCheck 0 cell0003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0003 (by decide +kernel) + +private theorem checked0010 : adaptiveCoverCheck 0 cell0010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0010 (by decide +kernel) + +private theorem checked0011 : adaptiveCoverCheck 0 cell0011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0011 (by decide +kernel) + +private theorem checked0012 : adaptiveCoverCheck 0 cell0012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0012 (by decide +kernel) + +private theorem checked0013 : adaptiveCoverCheck 0 cell0013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0013 (by decide +kernel) + +private theorem checked0100 : adaptiveCoverCheck 0 cell0100 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0100 (by decide +kernel) + +private theorem checked0101 : adaptiveCoverCheck 0 cell0101 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0101 (by decide +kernel) + +private theorem checked0102 : adaptiveCoverCheck 0 cell0102 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0102 (by decide +kernel) + +private theorem checked0103 : adaptiveCoverCheck 0 cell0103 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0103 (by decide +kernel) + +private theorem checked0110 : adaptiveCoverCheck 0 cell0110 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0110 (by decide +kernel) + +private theorem checked0111 : adaptiveCoverCheck 0 cell0111 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0111 (by decide +kernel) + +private theorem checked0112 : adaptiveCoverCheck 0 cell0112 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0112 (by decide +kernel) + +private theorem checked0113 : adaptiveCoverCheck 0 cell0113 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0113 (by decide +kernel) + +private theorem checked1000 : adaptiveCoverCheck 0 cell1000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1000 (by decide +kernel) + +private theorem checked1001 : adaptiveCoverCheck 0 cell1001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1001 (by decide +kernel) + +private theorem checked1002 : adaptiveCoverCheck 0 cell1002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1002 (by decide +kernel) + +private theorem checked1003 : adaptiveCoverCheck 0 cell1003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1003 (by decide +kernel) + +private theorem checked1010 : adaptiveCoverCheck 0 cell1010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1010 (by decide +kernel) + +private theorem checked1011 : adaptiveCoverCheck 0 cell1011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1011 (by decide +kernel) + +private theorem checked1012 : adaptiveCoverCheck 0 cell1012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1012 (by decide +kernel) + +private theorem checked1013 : adaptiveCoverCheck 0 cell1013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1013 (by decide +kernel) + +private theorem checked1100 : adaptiveCoverCheck 0 cell1100 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1100 (by decide +kernel) + +private theorem checked1101 : adaptiveCoverCheck 0 cell1101 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1101 (by decide +kernel) + +private theorem checked1102 : adaptiveCoverCheck 0 cell1102 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1102 (by decide +kernel) + +private theorem checked1103 : adaptiveCoverCheck 0 cell1103 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1103 (by decide +kernel) + +private theorem checked1110 : adaptiveCoverCheck 0 cell1110 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1110 (by decide +kernel) + +private theorem checked1111 : adaptiveCoverCheck 0 cell1111 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1111 (by decide +kernel) + +private theorem checked1112 : adaptiveCoverCheck 0 cell1112 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1112 (by decide +kernel) + +private theorem checked1113 : adaptiveCoverCheck 0 cell1113 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1113 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell000 + checked0000 checked0001 checked0002 checked0003 + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell001 + checked0010 checked0011 checked0012 checked0013 + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell010 + checked0100 checked0101 checked0102 checked0103 + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell011 + checked0110 checked0111 checked0112 checked0113 + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell100 + checked1000 checked1001 checked1002 checked1003 + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell101 + checked1010 checked1011 checked1012 checked1013 + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell110 + checked1100 checked1101 checked1102 checked1103 + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell111 + checked1110 checked1111 checked1112 checked1113 + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate69c64655e6 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c3 : + adaptiveCoverCheck 4 (childHH (childLL (childHH thetaAboveCell000022002000))) = true := by + exact CoverCertificate69c64655e6.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c1_c0_c0_3_00532 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells00487431af + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells00487431af + +open CertificateCells00487431af +namespace CoverCertificateca69cb479d + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateca69cb479d + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c0_c0 : + adaptiveCoverCheck 3 thetaAboveCell0000220020003100 = true := by + exact CoverCertificateca69cb479d.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c1_c0_c1_3_00533 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsebfda2d52e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsebfda2d52e + +open CertificateCellsebfda2d52e +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c0_c1 : + adaptiveCoverCheck 3 thetaAboveCell0000220020003101 = true := by + decide +kernel + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c1_c0_c2_3_00534 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0d7543751e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0d7543751e + +open CertificateCells0d7543751e +namespace CoverCertificate25b8e68ebd + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate25b8e68ebd + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c0_c2 : + adaptiveCoverCheck 3 thetaAboveCell0000220020003102 = true := by + exact CoverCertificate25b8e68ebd.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c1_c0_c3_3_00535 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3d57dcf8b1 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3d57dcf8b1 + +open CertificateCells3d57dcf8b1 +namespace CoverCertificate0b5492bc32 + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0b5492bc32 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c0_c3 : + adaptiveCoverCheck 3 thetaAboveCell0000220020003103 = true := by + exact CoverCertificate0b5492bc32.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c1_c1_c0_3_00538 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells280bbc9838 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells280bbc9838 + +open CertificateCells280bbc9838 +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c1_c0 : + adaptiveCoverCheck 3 thetaAboveCell0000220020003110 = true := by + decide +kernel + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c1_c1_c1_3_00539 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells86fd793561 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells86fd793561 + +open CertificateCells86fd793561 +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c1_c1 : + adaptiveCoverCheck 3 thetaAboveCell0000220020003111 = true := by + decide +kernel + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c1_c1_c2_3_00540 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc0e73f28b6 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc0e73f28b6 + +open CertificateCellsc0e73f28b6 +namespace CoverCertificatec2a3e401f5 + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec2a3e401f5 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c1_c2 : + adaptiveCoverCheck 3 thetaAboveCell0000220020003112 = true := by + exact CoverCertificatec2a3e401f5.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c1_c1_c3_3_00541 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells97ab098fbd + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells97ab098fbd + +open CertificateCells97ab098fbd +namespace CoverCertificatee2dbedfd13 + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatee2dbedfd13 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c1_c3 : + adaptiveCoverCheck 3 thetaAboveCell0000220020003113 = true := by + exact CoverCertificatee2dbedfd13.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c1_c2_4_00543 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells90296eb122 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells90296eb122 + +open CertificateCells90296eb122 +namespace CoverCertificate558b871c6c + +private theorem checked0000 : adaptiveCoverCheck 0 cell0000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0000 (by decide +kernel) + +private theorem checked0001 : adaptiveCoverCheck 0 cell0001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0001 (by decide +kernel) + +private theorem checked0002 : adaptiveCoverCheck 0 cell0002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0002 (by decide +kernel) + +private theorem checked0003 : adaptiveCoverCheck 0 cell0003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0003 (by decide +kernel) + +private theorem checked0010 : adaptiveCoverCheck 0 cell0010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0010 (by decide +kernel) + +private theorem checked0011 : adaptiveCoverCheck 0 cell0011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0011 (by decide +kernel) + +private theorem checked0012 : adaptiveCoverCheck 0 cell0012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0012 (by decide +kernel) + +private theorem checked0013 : adaptiveCoverCheck 0 cell0013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0013 (by decide +kernel) + +private theorem checked0100 : adaptiveCoverCheck 0 cell0100 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0100 (by decide +kernel) + +private theorem checked0101 : adaptiveCoverCheck 0 cell0101 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0101 (by decide +kernel) + +private theorem checked0102 : adaptiveCoverCheck 0 cell0102 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0102 (by decide +kernel) + +private theorem checked0103 : adaptiveCoverCheck 0 cell0103 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0103 (by decide +kernel) + +private theorem checked0110 : adaptiveCoverCheck 0 cell0110 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0110 (by decide +kernel) + +private theorem checked0111 : adaptiveCoverCheck 0 cell0111 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0111 (by decide +kernel) + +private theorem checked0112 : adaptiveCoverCheck 0 cell0112 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0112 (by decide +kernel) + +private theorem checked0113 : adaptiveCoverCheck 0 cell0113 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0113 (by decide +kernel) + +private theorem checked1000 : adaptiveCoverCheck 0 cell1000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1000 (by decide +kernel) + +private theorem checked1001 : adaptiveCoverCheck 0 cell1001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1001 (by decide +kernel) + +private theorem checked1002 : adaptiveCoverCheck 0 cell1002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1002 (by decide +kernel) + +private theorem checked1003 : adaptiveCoverCheck 0 cell1003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1003 (by decide +kernel) + +private theorem checked1010 : adaptiveCoverCheck 0 cell1010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1010 (by decide +kernel) + +private theorem checked1011 : adaptiveCoverCheck 0 cell1011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1011 (by decide +kernel) + +private theorem checked1012 : adaptiveCoverCheck 0 cell1012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1012 (by decide +kernel) + +private theorem checked1013 : adaptiveCoverCheck 0 cell1013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1013 (by decide +kernel) + +private theorem checked1100 : adaptiveCoverCheck 0 cell1100 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1100 (by decide +kernel) + +private theorem checked1101 : adaptiveCoverCheck 0 cell1101 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1101 (by decide +kernel) + +private theorem checked1102 : adaptiveCoverCheck 0 cell1102 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1102 (by decide +kernel) + +private theorem checked1103 : adaptiveCoverCheck 0 cell1103 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1103 (by decide +kernel) + +private theorem checked1110 : adaptiveCoverCheck 0 cell1110 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1110 (by decide +kernel) + +private theorem checked1111 : adaptiveCoverCheck 0 cell1111 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1111 (by decide +kernel) + +private theorem checked1112 : adaptiveCoverCheck 0 cell1112 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1112 (by decide +kernel) + +private theorem checked1113 : adaptiveCoverCheck 0 cell1113 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1113 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell000 + checked0000 checked0001 checked0002 checked0003 + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell001 + checked0010 checked0011 checked0012 checked0013 + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell010 + checked0100 checked0101 checked0102 checked0103 + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell011 + checked0110 checked0111 checked0112 checked0113 + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell100 + checked1000 checked1001 checked1002 checked1003 + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell101 + checked1010 checked1011 checked1012 checked1013 + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell110 + checked1100 checked1101 checked1102 checked1103 + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell111 + checked1110 checked1111 checked1112 checked1113 + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate558b871c6c + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c2 : + adaptiveCoverCheck 4 (childHL (childLH (childHH thetaAboveCell000022002000))) = true := by + exact CoverCertificate558b871c6c.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c1_c3_4_00544 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells48c4f5a54f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells48c4f5a54f + +open CertificateCells48c4f5a54f +namespace CoverCertificatec90af2cbcd + +private theorem checked0000 : adaptiveCoverCheck 0 cell0000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0000 (by decide +kernel) + +private theorem checked0001 : adaptiveCoverCheck 0 cell0001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0001 (by decide +kernel) + +private theorem checked0002 : adaptiveCoverCheck 0 cell0002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0002 (by decide +kernel) + +private theorem checked0003 : adaptiveCoverCheck 0 cell0003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0003 (by decide +kernel) + +private theorem checked0010 : adaptiveCoverCheck 0 cell0010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0010 (by decide +kernel) + +private theorem checked0011 : adaptiveCoverCheck 0 cell0011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0011 (by decide +kernel) + +private theorem checked0012 : adaptiveCoverCheck 0 cell0012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0012 (by decide +kernel) + +private theorem checked0013 : adaptiveCoverCheck 0 cell0013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0013 (by decide +kernel) + +private theorem checked0100 : adaptiveCoverCheck 0 cell0100 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0100 (by decide +kernel) + +private theorem checked0101 : adaptiveCoverCheck 0 cell0101 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0101 (by decide +kernel) + +private theorem checked0102 : adaptiveCoverCheck 0 cell0102 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0102 (by decide +kernel) + +private theorem checked0103 : adaptiveCoverCheck 0 cell0103 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0103 (by decide +kernel) + +private theorem checked0110 : adaptiveCoverCheck 0 cell0110 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0110 (by decide +kernel) + +private theorem checked0111 : adaptiveCoverCheck 0 cell0111 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0111 (by decide +kernel) + +private theorem checked0112 : adaptiveCoverCheck 0 cell0112 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0112 (by decide +kernel) + +private theorem checked0113 : adaptiveCoverCheck 0 cell0113 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell0113 (by decide +kernel) + +private theorem checked1000 : adaptiveCoverCheck 0 cell1000 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1000 (by decide +kernel) + +private theorem checked1001 : adaptiveCoverCheck 0 cell1001 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1001 (by decide +kernel) + +private theorem checked1002 : adaptiveCoverCheck 0 cell1002 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1002 (by decide +kernel) + +private theorem checked1003 : adaptiveCoverCheck 0 cell1003 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1003 (by decide +kernel) + +private theorem checked1010 : adaptiveCoverCheck 0 cell1010 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1010 (by decide +kernel) + +private theorem checked1011 : adaptiveCoverCheck 0 cell1011 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1011 (by decide +kernel) + +private theorem checked1012 : adaptiveCoverCheck 0 cell1012 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1012 (by decide +kernel) + +private theorem checked1013 : adaptiveCoverCheck 0 cell1013 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1013 (by decide +kernel) + +private theorem checked1100 : adaptiveCoverCheck 0 cell1100 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1100 (by decide +kernel) + +private theorem checked1101 : adaptiveCoverCheck 0 cell1101 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1101 (by decide +kernel) + +private theorem checked1102 : adaptiveCoverCheck 0 cell1102 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1102 (by decide +kernel) + +private theorem checked1103 : adaptiveCoverCheck 0 cell1103 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1103 (by decide +kernel) + +private theorem checked1110 : adaptiveCoverCheck 0 cell1110 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1110 (by decide +kernel) + +private theorem checked1111 : adaptiveCoverCheck 0 cell1111 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1111 (by decide +kernel) + +private theorem checked1112 : adaptiveCoverCheck 0 cell1112 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1112 (by decide +kernel) + +private theorem checked1113 : adaptiveCoverCheck 0 cell1113 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell1113 (by decide +kernel) + +private theorem checked000 : adaptiveCoverCheck 1 cell000 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell000 + checked0000 checked0001 checked0002 checked0003 + +private theorem checked001 : adaptiveCoverCheck 1 cell001 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell001 + checked0010 checked0011 checked0012 checked0013 + +private theorem checked002 : adaptiveCoverCheck 1 cell002 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell002 (by decide +kernel) + +private theorem checked003 : adaptiveCoverCheck 1 cell003 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell003 (by decide +kernel) + +private theorem checked010 : adaptiveCoverCheck 1 cell010 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell010 + checked0100 checked0101 checked0102 checked0103 + +private theorem checked011 : adaptiveCoverCheck 1 cell011 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell011 + checked0110 checked0111 checked0112 checked0113 + +private theorem checked012 : adaptiveCoverCheck 1 cell012 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell012 (by decide +kernel) + +private theorem checked013 : adaptiveCoverCheck 1 cell013 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell013 (by decide +kernel) + +private theorem checked100 : adaptiveCoverCheck 1 cell100 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell100 + checked1000 checked1001 checked1002 checked1003 + +private theorem checked101 : adaptiveCoverCheck 1 cell101 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell101 + checked1010 checked1011 checked1012 checked1013 + +private theorem checked102 : adaptiveCoverCheck 1 cell102 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell102 (by decide +kernel) + +private theorem checked103 : adaptiveCoverCheck 1 cell103 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell103 (by decide +kernel) + +private theorem checked110 : adaptiveCoverCheck 1 cell110 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell110 + checked1100 checked1101 checked1102 checked1103 + +private theorem checked111 : adaptiveCoverCheck 1 cell111 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell111 + checked1110 checked1111 checked1112 checked1113 + +private theorem checked112 : adaptiveCoverCheck 1 cell112 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell112 (by decide +kernel) + +private theorem checked113 : adaptiveCoverCheck 1 cell113 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell113 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 2 cell00 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell00 + checked000 checked001 checked002 checked003 + +private theorem checked01 : adaptiveCoverCheck 2 cell01 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell01 + checked010 checked011 checked012 checked013 + +private theorem checked02 : adaptiveCoverCheck 2 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 2 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 2 cell10 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell10 + checked100 checked101 checked102 checked103 + +private theorem checked11 : adaptiveCoverCheck 2 cell11 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell11 + checked110 checked111 checked112 checked113 + +private theorem checked12 : adaptiveCoverCheck 2 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 2 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 2 cell13 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 3 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 3 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 2 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 3 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 3 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 3 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 4 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 3 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatec90af2cbcd + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c3 : + adaptiveCoverCheck 4 (childHH (childLH (childHH thetaAboveCell000022002000))) = true := by + exact CoverCertificatec90af2cbcd.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c2_5_00546 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd47d097993 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd47d097993 + +open CertificateCellsd47d097993 +namespace CoverCertificate850c59f3da + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate850c59f3da + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c2 : + adaptiveCoverCheck 5 (childHL (childHH thetaAboveCell000022002000)) = true := by + exact CoverCertificate850c59f3da.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c3_5_00547 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells861c7fa81d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells861c7fa81d + +open CertificateCells861c7fa81d +namespace CoverCertificate1c095a90b4 + +private theorem checked0 : adaptiveCoverCheck 4 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 4 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 4 cell2 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell2 (by decide +kernel) + +private theorem checked3 : adaptiveCoverCheck 4 cell3 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell3 (by decide +kernel) + +private theorem checkedRoot : adaptiveCoverCheck 5 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 4 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate1c095a90b4 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c3 : + adaptiveCoverCheck 5 (childHH (childHH thetaAboveCell000022002000)) = true := by + exact CoverCertificate1c095a90b4.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c0_6_00551 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells96a538a32c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells96a538a32c + +open CertificateCells96a538a32c +namespace CoverCertificate0341d165df + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0341d165df + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c0 : + adaptiveCoverCheck 6 (childLL thetaAboveCell000022002001) = true := by + exact CoverCertificate0341d165df.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c1_6_00552 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells867b92c925 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells867b92c925 + +open CertificateCells867b92c925 +namespace CoverCertificatedfaaa383f3 + +private theorem checked20 : adaptiveCoverCheck 4 cell20 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell20 (by decide +kernel) + +private theorem checked21 : adaptiveCoverCheck 4 cell21 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell21 (by decide +kernel) + +private theorem checked22 : adaptiveCoverCheck 4 cell22 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell22 (by decide +kernel) + +private theorem checked23 : adaptiveCoverCheck 4 cell23 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell23 (by decide +kernel) + +private theorem checked30 : adaptiveCoverCheck 4 cell30 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell30 (by decide +kernel) + +private theorem checked31 : adaptiveCoverCheck 4 cell31 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell31 (by decide +kernel) + +private theorem checked32 : adaptiveCoverCheck 4 cell32 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell32 (by decide +kernel) + +private theorem checked33 : adaptiveCoverCheck 4 cell33 = true := by + exact adaptiveCoverCheck_true_of_rejected 4 cell33 (by decide +kernel) + +private theorem checked0 : adaptiveCoverCheck 5 cell0 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell0 (by decide +kernel) + +private theorem checked1 : adaptiveCoverCheck 5 cell1 = true := by + exact adaptiveCoverCheck_true_of_rejected 5 cell1 (by decide +kernel) + +private theorem checked2 : adaptiveCoverCheck 5 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 5 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 4 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 6 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 5 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatedfaaa383f3 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c1 : + adaptiveCoverCheck 6 (childLH thetaAboveCell000022002001) = true := by + exact CoverCertificatedfaaa383f3.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c0_c0_c0_3_00556 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse8beb6dc5c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse8beb6dc5c + +open CertificateCellse8beb6dc5c +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c0_c0 : + adaptiveCoverCheck 3 thetaAboveCell0000220020012000 = true := by + decide +kernel + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c0_c0_c1_3_00557 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa4fa334623 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa4fa334623 + +open CertificateCellsa4fa334623 +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c0_c1 : + adaptiveCoverCheck 3 thetaAboveCell0000220020012001 = true := by + decide +kernel + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c0_c0_c2_3_00558 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd70a3df0a0 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd70a3df0a0 + +open CertificateCellsd70a3df0a0 +namespace CoverCertificatea8d5b0d3f5 + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificatea8d5b0d3f5 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c0_c2 : + adaptiveCoverCheck 3 thetaAboveCell0000220020012002 = true := by + exact CoverCertificatea8d5b0d3f5.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c0_c0_c3_3_00559 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells02a2748806 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells02a2748806 + +open CertificateCells02a2748806 +namespace CoverCertificate0573161232 + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate0573161232 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c0_c3 : + adaptiveCoverCheck 3 thetaAboveCell0000220020012003 = true := by + exact CoverCertificate0573161232.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c0_c1_c0_3_00562 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3863a30667 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3863a30667 + +open CertificateCells3863a30667 +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c1_c0 : + adaptiveCoverCheck 3 thetaAboveCell0000220020012010 = true := by + decide +kernel + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c0_c1_c1_3_00563 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd6d3f4989a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd6d3f4989a + +open CertificateCellsd6d3f4989a +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c1_c1 : + adaptiveCoverCheck 3 thetaAboveCell0000220020012011 = true := by + decide +kernel + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c0_c1_c2_3_00564 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb420376865 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb420376865 + +open CertificateCellsb420376865 +namespace CoverCertificate4fc67a95c3 + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificate4fc67a95c3 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c1_c2 : + adaptiveCoverCheck 3 thetaAboveCell0000220020012012 = true := by + exact CoverCertificate4fc67a95c3.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Direct_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c0_c1_c3_3_00565 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa9306cab0b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa9306cab0b + +open CertificateCellsa9306cab0b +namespace CoverCertificateba1f6e5865 + +private theorem checked200 : adaptiveCoverCheck 0 cell200 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell200 (by decide +kernel) + +private theorem checked201 : adaptiveCoverCheck 0 cell201 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell201 (by decide +kernel) + +private theorem checked202 : adaptiveCoverCheck 0 cell202 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell202 (by decide +kernel) + +private theorem checked203 : adaptiveCoverCheck 0 cell203 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell203 (by decide +kernel) + +private theorem checked210 : adaptiveCoverCheck 0 cell210 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell210 (by decide +kernel) + +private theorem checked211 : adaptiveCoverCheck 0 cell211 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell211 (by decide +kernel) + +private theorem checked212 : adaptiveCoverCheck 0 cell212 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell212 (by decide +kernel) + +private theorem checked213 : adaptiveCoverCheck 0 cell213 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell213 (by decide +kernel) + +private theorem checked220 : adaptiveCoverCheck 0 cell220 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell220 (by decide +kernel) + +private theorem checked221 : adaptiveCoverCheck 0 cell221 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell221 (by decide +kernel) + +private theorem checked222 : adaptiveCoverCheck 0 cell222 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell222 (by decide +kernel) + +private theorem checked223 : adaptiveCoverCheck 0 cell223 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell223 (by decide +kernel) + +private theorem checked230 : adaptiveCoverCheck 0 cell230 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell230 (by decide +kernel) + +private theorem checked231 : adaptiveCoverCheck 0 cell231 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell231 (by decide +kernel) + +private theorem checked232 : adaptiveCoverCheck 0 cell232 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell232 (by decide +kernel) + +private theorem checked233 : adaptiveCoverCheck 0 cell233 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell233 (by decide +kernel) + +private theorem checked300 : adaptiveCoverCheck 0 cell300 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell300 (by decide +kernel) + +private theorem checked301 : adaptiveCoverCheck 0 cell301 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell301 (by decide +kernel) + +private theorem checked302 : adaptiveCoverCheck 0 cell302 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell302 (by decide +kernel) + +private theorem checked303 : adaptiveCoverCheck 0 cell303 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell303 (by decide +kernel) + +private theorem checked310 : adaptiveCoverCheck 0 cell310 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell310 (by decide +kernel) + +private theorem checked311 : adaptiveCoverCheck 0 cell311 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell311 (by decide +kernel) + +private theorem checked312 : adaptiveCoverCheck 0 cell312 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell312 (by decide +kernel) + +private theorem checked313 : adaptiveCoverCheck 0 cell313 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell313 (by decide +kernel) + +private theorem checked320 : adaptiveCoverCheck 0 cell320 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell320 (by decide +kernel) + +private theorem checked321 : adaptiveCoverCheck 0 cell321 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell321 (by decide +kernel) + +private theorem checked322 : adaptiveCoverCheck 0 cell322 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell322 (by decide +kernel) + +private theorem checked323 : adaptiveCoverCheck 0 cell323 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell323 (by decide +kernel) + +private theorem checked330 : adaptiveCoverCheck 0 cell330 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell330 (by decide +kernel) + +private theorem checked331 : adaptiveCoverCheck 0 cell331 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell331 (by decide +kernel) + +private theorem checked332 : adaptiveCoverCheck 0 cell332 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell332 (by decide +kernel) + +private theorem checked333 : adaptiveCoverCheck 0 cell333 = true := by + exact adaptiveCoverCheck_true_of_rejected 0 cell333 (by decide +kernel) + +private theorem checked00 : adaptiveCoverCheck 1 cell00 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell00 (by decide +kernel) + +private theorem checked01 : adaptiveCoverCheck 1 cell01 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell01 (by decide +kernel) + +private theorem checked02 : adaptiveCoverCheck 1 cell02 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell02 (by decide +kernel) + +private theorem checked03 : adaptiveCoverCheck 1 cell03 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell03 (by decide +kernel) + +private theorem checked10 : adaptiveCoverCheck 1 cell10 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell10 (by decide +kernel) + +private theorem checked11 : adaptiveCoverCheck 1 cell11 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell11 (by decide +kernel) + +private theorem checked12 : adaptiveCoverCheck 1 cell12 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell12 (by decide +kernel) + +private theorem checked13 : adaptiveCoverCheck 1 cell13 = true := by + exact adaptiveCoverCheck_true_of_rejected 1 cell13 (by decide +kernel) + +private theorem checked20 : adaptiveCoverCheck 1 cell20 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell20 + checked200 checked201 checked202 checked203 + +private theorem checked21 : adaptiveCoverCheck 1 cell21 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell21 + checked210 checked211 checked212 checked213 + +private theorem checked22 : adaptiveCoverCheck 1 cell22 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell22 + checked220 checked221 checked222 checked223 + +private theorem checked23 : adaptiveCoverCheck 1 cell23 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell23 + checked230 checked231 checked232 checked233 + +private theorem checked30 : adaptiveCoverCheck 1 cell30 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell30 + checked300 checked301 checked302 checked303 + +private theorem checked31 : adaptiveCoverCheck 1 cell31 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell31 + checked310 checked311 checked312 checked313 + +private theorem checked32 : adaptiveCoverCheck 1 cell32 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell32 + checked320 checked321 checked322 checked323 + +private theorem checked33 : adaptiveCoverCheck 1 cell33 = true := by + exact adaptiveCoverCheck_succ_of_children 0 cell33 + checked330 checked331 checked332 checked333 + +private theorem checked0 : adaptiveCoverCheck 2 cell0 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell0 + checked00 checked01 checked02 checked03 + +private theorem checked1 : adaptiveCoverCheck 2 cell1 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell1 + checked10 checked11 checked12 checked13 + +private theorem checked2 : adaptiveCoverCheck 2 cell2 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell2 + checked20 checked21 checked22 checked23 + +private theorem checked3 : adaptiveCoverCheck 2 cell3 = true := by + exact adaptiveCoverCheck_succ_of_children 1 cell3 + checked30 checked31 checked32 checked33 + +private theorem checkedRoot : adaptiveCoverCheck 3 cellRoot = true := by + exact adaptiveCoverCheck_succ_of_children 2 cellRoot + checked0 checked1 checked2 checked3 + +end CoverCertificateba1f6e5865 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c1_c3 : + adaptiveCoverCheck 3 thetaAboveCell0000220020012013 = true := by + exact CoverCertificateba1f6e5865.checkedRoot + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle030.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle030.lean new file mode 100644 index 0000000000..39a05442cf --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle030.lean @@ -0,0 +1,10735 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle001 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle002 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle003 + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle004 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle005 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle006 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle007 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle008 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle009 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle010 + + + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle011 + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle012 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle013 + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle014 + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle015 + + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle016 + + + + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle017 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle018 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle019 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle020 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle021 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle022 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle023 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle024 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle025 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle026 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle027 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle028 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle029 + + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle005 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.Core.Bundle007 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Reconstruction`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCells6754c8bb3e + +/-- Subcell `1101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1011 : AngleCell := + childLH (childLH (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1100 : AngleCell := + childLL (childLL (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1001` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1001 : AngleCell := + childLH (childLL (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1010 : AngleCell := + childLL (childLH (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1112 : AngleCell := + childHL (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1113 : AngleCell := + childHH (childLH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `0101` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0101 : AngleCell := + childLH (childLL (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0110` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0110 : AngleCell := + childLL (childLH (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0111` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0111 : AngleCell := + childLH (childLH (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `1000` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1000 : AngleCell := + childLL (childLL (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1003 : AngleCell := + childHH (childLL (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1012 : AngleCell := + childHL (childLH (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1013 : AngleCell := + childHH (childLH (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1102 : AngleCell := + childHL (childLL (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1103 : AngleCell := + childHH (childLL (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `0003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0003 : AngleCell := + childHH (childLL (childLL (childLL e24ThetaBelowRoot))) + +/-- Subcell `0010` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0010 : AngleCell := + childLL (childLH (childLL (childLL e24ThetaBelowRoot))) + +/-- Subcell `0011` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0011 : AngleCell := + childLH (childLH (childLL (childLL e24ThetaBelowRoot))) + +/-- Subcell `0012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0012 : AngleCell := + childHL (childLH (childLL (childLL e24ThetaBelowRoot))) + +/-- Subcell `0013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0013 : AngleCell := + childHH (childLH (childLL (childLL e24ThetaBelowRoot))) + +/-- Subcell `0100` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0100 : AngleCell := + childLL (childLL (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0102 : AngleCell := + childHL (childLL (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0103 : AngleCell := + childHH (childLL (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0112 : AngleCell := + childHL (childLH (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `0113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell0113 : AngleCell := + childHH (childLH (childLH (childLL e24ThetaBelowRoot))) + +/-- Subcell `1002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1002 : AngleCell := + childHL (childLL (childLL (childLH e24ThetaBelowRoot))) + +/-- Subcell `1121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1121 : AngleCell := + childLH (childHL (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1130 : AngleCell := + childLL (childHH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `1131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell1131 : AngleCell := + childLH (childHH (childLH (childLH e24ThetaBelowRoot))) + +/-- Subcell `11012132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012132 : AngleCell := + childHL (childHH (childLH (childHL thetaBelowCell1101))) + +/-- Subcell `11012133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11012133 : AngleCell := + childHH (childHH (childLH (childHL thetaBelowCell1101))) + +/-- Subcell `11013013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013013 : AngleCell := + childHH (childLH (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013021 : AngleCell := + childLH (childHL (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013022 : AngleCell := + childHL (childHL (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013023 : AngleCell := + childHH (childHL (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013030 : AngleCell := + childLL (childHH (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013031 : AngleCell := + childLH (childHH (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013032 : AngleCell := + childHL (childHH (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013033 : AngleCell := + childHH (childHH (childLL (childHH thetaBelowCell1101))) + +/-- Subcell `11013102` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013102 : AngleCell := + childHL (childLL (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013103` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013103 : AngleCell := + childHH (childLL (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013112` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013112 : AngleCell := + childHL (childLH (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013113` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013113 : AngleCell := + childHH (childLH (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013120 : AngleCell := + childLL (childHL (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013121 : AngleCell := + childLH (childHL (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013122 : AngleCell := + childHL (childHL (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013123 : AngleCell := + childHH (childHL (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013130 : AngleCell := + childLL (childHH (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013131 : AngleCell := + childLH (childHH (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013132 : AngleCell := + childHL (childHH (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11013133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11013133 : AngleCell := + childHH (childHH (childLH (childHH thetaBelowCell1101))) + +/-- Subcell `11102002` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102002 : AngleCell := + childHL (childLL (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102003` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102003 : AngleCell := + childHH (childLL (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102012` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102012 : AngleCell := + childHL (childLH (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102013` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102013 : AngleCell := + childHH (childLH (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102020 : AngleCell := + childLL (childHL (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102021 : AngleCell := + childLH (childHL (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102022 : AngleCell := + childHL (childHL (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102023 : AngleCell := + childHH (childHL (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102030 : AngleCell := + childLL (childHH (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102031 : AngleCell := + childLH (childHH (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102032 : AngleCell := + childHL (childHH (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102033 : AngleCell := + childHH (childHH (childLL (childHL thetaBelowCell1110))) + +/-- Subcell `11102120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102120 : AngleCell := + childLL (childHL (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102121 : AngleCell := + childLH (childHL (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102122 : AngleCell := + childHL (childHL (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102123 : AngleCell := + childHH (childHL (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102130 : AngleCell := + childLL (childHH (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102131 : AngleCell := + childLH (childHH (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102132 : AngleCell := + childHL (childHH (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102133 : AngleCell := + childHH (childHH (childLH (childHL thetaBelowCell1110))) + +/-- Subcell `11102200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102200 : AngleCell := + childLL (childLL (childHL (childHL thetaBelowCell1110))) + +/-- Subcell `11102201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102201 : AngleCell := + childLH (childLL (childHL (childHL thetaBelowCell1110))) + +/-- Subcell `11102210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102210 : AngleCell := + childLL (childLH (childHL (childHL thetaBelowCell1110))) + +/-- Subcell `11102211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102211 : AngleCell := + childLH (childLH (childHL (childHL thetaBelowCell1110))) + +/-- Subcell `11102300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102300 : AngleCell := + childLL (childLL (childHH (childHL thetaBelowCell1110))) + +/-- Subcell `11102301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102301 : AngleCell := + childLH (childLL (childHH (childHL thetaBelowCell1110))) + +/-- Subcell `11102310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102310 : AngleCell := + childLL (childLH (childHH (childHL thetaBelowCell1110))) + +/-- Subcell `11102311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11102311 : AngleCell := + childLH (childLH (childHH (childHL thetaBelowCell1110))) + +/-- Subcell `11103020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103020 : AngleCell := + childLL (childHL (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103021 : AngleCell := + childLH (childHL (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103022 : AngleCell := + childHL (childHL (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103023 : AngleCell := + childHH (childHL (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103030 : AngleCell := + childLL (childHH (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103031 : AngleCell := + childLH (childHH (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103032 : AngleCell := + childHL (childHH (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103033 : AngleCell := + childHH (childHH (childLL (childHH thetaBelowCell1110))) + +/-- Subcell `11103120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103120 : AngleCell := + childLL (childHL (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103121 : AngleCell := + childLH (childHL (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103122 : AngleCell := + childHL (childHL (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103123 : AngleCell := + childHH (childHL (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103130 : AngleCell := + childLL (childHH (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103131` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103131 : AngleCell := + childLH (childHH (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103132 : AngleCell := + childHL (childHH (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103133 : AngleCell := + childHH (childHH (childLH (childHH thetaBelowCell1110))) + +/-- Subcell `11103200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103200 : AngleCell := + childLL (childLL (childHL (childHH thetaBelowCell1110))) + +/-- Subcell `11103201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103201 : AngleCell := + childLH (childLL (childHL (childHH thetaBelowCell1110))) + +/-- Subcell `11103210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103210 : AngleCell := + childLL (childLH (childHL (childHH thetaBelowCell1110))) + +/-- Subcell `11103211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103211 : AngleCell := + childLH (childLH (childHL (childHH thetaBelowCell1110))) + +/-- Subcell `11103300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103300 : AngleCell := + childLL (childLL (childHH (childHH thetaBelowCell1110))) + +/-- Subcell `11103301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103301 : AngleCell := + childLH (childLL (childHH (childHH thetaBelowCell1110))) + +/-- Subcell `11103310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103310 : AngleCell := + childLL (childLH (childHH (childHH thetaBelowCell1110))) + +/-- Subcell `11103311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11103311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1110))) + +/-- Subcell `11112020` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112020 : AngleCell := + childLL (childHL (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112021` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112021 : AngleCell := + childLH (childHL (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112022 : AngleCell := + childHL (childHL (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112023 : AngleCell := + childHH (childHL (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112030` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112030 : AngleCell := + childLL (childHH (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112031` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112031 : AngleCell := + childLH (childHH (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112032 : AngleCell := + childHL (childHH (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112033 : AngleCell := + childHH (childHH (childLL (childHL thetaBelowCell1111))) + +/-- Subcell `11112120` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112120 : AngleCell := + childLL (childHL (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112121` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112121 : AngleCell := + childLH (childHL (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112122 : AngleCell := + childHL (childHL (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112123 : AngleCell := + childHH (childHL (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112130` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112130 : AngleCell := + childLL (childHH (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112132 : AngleCell := + childHL (childHH (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112133 : AngleCell := + childHH (childHH (childLH (childHL thetaBelowCell1111))) + +/-- Subcell `11112200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112200 : AngleCell := + childLL (childLL (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112201 : AngleCell := + childLH (childLL (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112210 : AngleCell := + childLL (childLH (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112211 : AngleCell := + childLH (childLH (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112212 : AngleCell := + childHL (childLH (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112213 : AngleCell := + childHH (childLH (childHL (childHL thetaBelowCell1111))) + +/-- Subcell `11112300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112300 : AngleCell := + childLL (childLL (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112301 : AngleCell := + childLH (childLL (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112302 : AngleCell := + childHL (childLL (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112303 : AngleCell := + childHH (childLL (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112310 : AngleCell := + childLL (childLH (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112311 : AngleCell := + childLH (childLH (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112312 : AngleCell := + childHL (childLH (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11112313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11112313 : AngleCell := + childHH (childLH (childHH (childHL thetaBelowCell1111))) + +/-- Subcell `11113022` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113022 : AngleCell := + childHL (childHL (childLL (childHH thetaBelowCell1111))) + +/-- Subcell `11113023` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113023 : AngleCell := + childHH (childHL (childLL (childHH thetaBelowCell1111))) + +/-- Subcell `11113032` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113032 : AngleCell := + childHL (childHH (childLL (childHH thetaBelowCell1111))) + +/-- Subcell `11113033` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113033 : AngleCell := + childHH (childHH (childLL (childHH thetaBelowCell1111))) + +/-- Subcell `11113122` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113122 : AngleCell := + childHL (childHL (childLH (childHH thetaBelowCell1111))) + +/-- Subcell `11113123` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113123 : AngleCell := + childHH (childHL (childLH (childHH thetaBelowCell1111))) + +/-- Subcell `11113132` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113132 : AngleCell := + childHL (childHH (childLH (childHH thetaBelowCell1111))) + +/-- Subcell `11113133` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113133 : AngleCell := + childHH (childHH (childLH (childHH thetaBelowCell1111))) + +/-- Subcell `11113200` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113200 : AngleCell := + childLL (childLL (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113201` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113201 : AngleCell := + childLH (childLL (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113202` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113202 : AngleCell := + childHL (childLL (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113203` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113203 : AngleCell := + childHH (childLL (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113210` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113210 : AngleCell := + childLL (childLH (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113211` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113211 : AngleCell := + childLH (childLH (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113212` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113212 : AngleCell := + childHL (childLH (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113213` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113213 : AngleCell := + childHH (childLH (childHL (childHH thetaBelowCell1111))) + +/-- Subcell `11113300` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113300 : AngleCell := + childLL (childLL (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113301` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113301 : AngleCell := + childLH (childLL (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113302` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113302 : AngleCell := + childHL (childLL (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113303` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113303 : AngleCell := + childHH (childLL (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113310` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113310 : AngleCell := + childLL (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113311` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113311 : AngleCell := + childLH (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113312` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113312 : AngleCell := + childHL (childLH (childHH (childHH thetaBelowCell1111))) + +/-- Subcell `11113313` of the theta-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaBelowCell11113313 : AngleCell := + childHH (childLH (childHH (childHH thetaBelowCell1111))) + +end GerverSofa.PartE.CertificateCells6754c8bb3e + +namespace GerverSofa.PartE.CertificateCellse9ea903ef1 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellse9ea903ef1 + +namespace GerverSofa.PartE.CertificateCells89d797401e + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells89d797401e + +namespace GerverSofa.PartE.CertificateCellsafdf6e4305 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsafdf6e4305 + +namespace GerverSofa.PartE.CertificateCells0d2c374949 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells0d2c374949 + +namespace GerverSofa.PartE.CertificateCells3df86e4955 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells3df86e4955 + +namespace GerverSofa.PartE.CertificateCells3298a326ef + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells3298a326ef + +namespace GerverSofa.PartE.CertificateCells47980ca575 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells47980ca575 + +namespace GerverSofa.PartE.CertificateCellsfed39385df + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsfed39385df + +namespace GerverSofa.PartE.CertificateCellsb1b33fecca + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsb1b33fecca + +namespace GerverSofa.PartE.CertificateCellsc427a8578f + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsc427a8578f + +namespace GerverSofa.PartE.CertificateCells25978ec18d + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011010 : AngleCell := + childLL (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells25978ec18d + +namespace GerverSofa.PartE.CertificateCellse6161a42be + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellse6161a42be + +namespace GerverSofa.PartE.CertificateCells1f6ffcc997 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells1f6ffcc997 + +namespace GerverSofa.PartE.CertificateCells1275d3adc4 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells1275d3adc4 + +namespace GerverSofa.PartE.CertificateCells021b870816 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells021b870816 + +namespace GerverSofa.PartE.CertificateCells9ade3f586f + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells9ade3f586f + +namespace GerverSofa.PartE.CertificateCellsfd8221930a + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011011 : AngleCell := + childLH (childLH (childLL (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsfd8221930a + +namespace GerverSofa.PartE.CertificateCells5aaf24f73d + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCells5aaf24f73d + +namespace GerverSofa.PartE.CertificateCells31cca9f2c5 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011100 : AngleCell := + childLL (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells31cca9f2c5 + +namespace GerverSofa.PartE.CertificateCells0a8495a296 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011100 : AngleCell := + childLL (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells0a8495a296 + +namespace GerverSofa.PartE.CertificateCells4cabb07dbd + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011100 : AngleCell := + childLL (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells4cabb07dbd + +namespace GerverSofa.PartE.CertificateCellsc6c93e8f5c + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011100 : AngleCell := + childLL (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsc6c93e8f5c + +namespace GerverSofa.PartE.CertificateCellsaa40da30f6 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011101 : AngleCell := + childLH (childLL (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsaa40da30f6 + +namespace GerverSofa.PartE.CertificateCells919c5d7ca9 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCells919c5d7ca9 + +namespace GerverSofa.PartE.CertificateCells87d4f5e678 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011110 : AngleCell := + childLL (childLH (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCells87d4f5e678 + +namespace GerverSofa.PartE.CertificateCellsefc5f924ee + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011110 : AngleCell := + childLL (childLH (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsefc5f924ee + +namespace GerverSofa.PartE.CertificateCellsac583a159d + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11011111` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11011111 : AngleCell := + childLH (childLH (childLH (childLH phiAboveCell1101))) + +end GerverSofa.PartE.CertificateCellsac583a159d + +namespace GerverSofa.PartE.CertificateCellsf317a94cb3 + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCellsf317a94cb3 + +namespace GerverSofa.PartE.CertificateCellsf7dce840c8 + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `11100000` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell11100000 : AngleCell := + childLL (childLL (childLL (childLL phiAboveCell1110))) + +end GerverSofa.PartE.CertificateCellsf7dce840c8 + +namespace GerverSofa.PartE.CertificateCells5fe660c4fc + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCells5fe660c4fc + +namespace GerverSofa.PartE.CertificateCells7e3a6c7b6b + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCells7e3a6c7b6b + +namespace GerverSofa.PartE.CertificateCellsa5efdb03f3 + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCellsa5efdb03f3 + +namespace GerverSofa.PartE.CertificateCells4f05b2093e + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCells4f05b2093e + +namespace GerverSofa.PartE.CertificateCellsa15368d7db + +/-- Subcell `1001` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1001 : AngleCell := + childLH (childLL (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1010 : AngleCell := + childLL (childLH (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1011 : AngleCell := + childLH (childLH (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1100 : AngleCell := + childLL (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1111` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `0101` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0101 : AngleCell := + childLH (childLL (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `0110` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0110 : AngleCell := + childLL (childLH (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `0111` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0111 : AngleCell := + childLH (childLH (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `1000` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1000 : AngleCell := + childLL (childLL (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `0000` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24PhiAboveRoot))) + +/-- Subcell `0001` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0001 : AngleCell := + childLH (childLL (childLL (childLL e24PhiAboveRoot))) + +/-- Subcell `0010` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0010 : AngleCell := + childLL (childLH (childLL (childLL e24PhiAboveRoot))) + +/-- Subcell `0011` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0011 : AngleCell := + childLH (childLH (childLL (childLL e24PhiAboveRoot))) + +/-- Subcell `0100` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell0100 : AngleCell := + childLL (childLL (childLH (childLL e24PhiAboveRoot))) + +/-- Subcell `1002` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1002 : AngleCell := + childHL (childLL (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1003` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1003 : AngleCell := + childHH (childLL (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1012` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1012 : AngleCell := + childHL (childLH (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1013` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1013 : AngleCell := + childHH (childLH (childLL (childLH e24PhiAboveRoot))) + +/-- Subcell `1102` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1102 : AngleCell := + childHL (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1103` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1103 : AngleCell := + childHH (childLL (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1112` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1112 : AngleCell := + childHL (childLH (childLH (childLH e24PhiAboveRoot))) + +/-- Subcell `1113` of the phi-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiAboveCell1113 : AngleCell := + childHH (childLH (childLH (childLH e24PhiAboveRoot))) + +end GerverSofa.PartE.CertificateCellsa15368d7db + +namespace GerverSofa.PartE.CertificateCells12ecbb1984 + +/-- Subcell `3320` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3320 : AngleCell := + childLL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells12ecbb1984 + +namespace GerverSofa.PartE.CertificateCellsf9b1d22c2c + +/-- Subcell `3322` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3322 : AngleCell := + childHL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsf9b1d22c2c + +namespace GerverSofa.PartE.CertificateCells5481d87062 + +/-- Subcell `3322` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3322 : AngleCell := + childHL (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells5481d87062 + +namespace GerverSofa.PartE.CertificateCellsc99c114252 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsc99c114252 + +namespace GerverSofa.PartE.CertificateCells85102f4bff + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells85102f4bff + +namespace GerverSofa.PartE.CertificateCellsd7423e4c3b + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsd7423e4c3b + +namespace GerverSofa.PartE.CertificateCells8ae9088aab + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells8ae9088aab + +namespace GerverSofa.PartE.CertificateCellsb8a79b56b3 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsb8a79b56b3 + +namespace GerverSofa.PartE.CertificateCells13ae325d6d + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells13ae325d6d + +namespace GerverSofa.PartE.CertificateCells6add7bae04 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells6add7bae04 + +namespace GerverSofa.PartE.CertificateCellscd1d17c9b4 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellscd1d17c9b4 + +namespace GerverSofa.PartE.CertificateCells709ea69226 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232311` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232311 : AngleCell := + childLH (childLH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells709ea69226 + +namespace GerverSofa.PartE.CertificateCellsade8569b0a + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232313` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232313 : AngleCell := + childHH (childLH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsade8569b0a + +namespace GerverSofa.PartE.CertificateCellsfece773e85 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsfece773e85 + +namespace GerverSofa.PartE.CertificateCellse593ec4a84 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33232331` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33232331 : AngleCell := + childLH (childHH (childHH (childHL phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellse593ec4a84 + +namespace GerverSofa.PartE.CertificateCells0ccc164bd1 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells0ccc164bd1 + +namespace GerverSofa.PartE.CertificateCells072df6b25f + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells072df6b25f + +namespace GerverSofa.PartE.CertificateCells215f6c9ebd + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells215f6c9ebd + +namespace GerverSofa.PartE.CertificateCellsef857ed1c7 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCellsef857ed1c7 + +namespace GerverSofa.PartE.CertificateCells2ebe0c2db9 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233202` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233202 : AngleCell := + childHL (childLL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells2ebe0c2db9 + +namespace GerverSofa.PartE.CertificateCells27c0e8c594 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells27c0e8c594 + +namespace GerverSofa.PartE.CertificateCells4d117fb26d + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233220` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233220 : AngleCell := + childLL (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells4d117fb26d + +namespace GerverSofa.PartE.CertificateCells848f180c5a + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233220` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233220 : AngleCell := + childLL (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells848f180c5a + +namespace GerverSofa.PartE.CertificateCells090e12bc76 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233221` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233221 : AngleCell := + childLH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells090e12bc76 + +namespace GerverSofa.PartE.CertificateCells857be56025 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233222` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233222 : AngleCell := + childHL (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells857be56025 + +namespace GerverSofa.PartE.CertificateCellsea76f7562d + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233222` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233222 : AngleCell := + childHL (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsea76f7562d + +namespace GerverSofa.PartE.CertificateCellsdd77c2320b + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsdd77c2320b + +namespace GerverSofa.PartE.CertificateCells08c6706994 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +/-- Subcell `332332232120` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell332332232120 : AngleCell := + childLL (childHL (childLH (childHL phiBelowCell33233223))) + +end GerverSofa.PartE.CertificateCells08c6706994 + +namespace GerverSofa.PartE.CertificateCells96d537e773 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells96d537e773 + +namespace GerverSofa.PartE.CertificateCells0abe1d75a7 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells0abe1d75a7 + +namespace GerverSofa.PartE.CertificateCells4849d1c13b + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells4849d1c13b + +namespace GerverSofa.PartE.CertificateCellsf2740dc787 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsf2740dc787 + +namespace GerverSofa.PartE.CertificateCells3f18540de9 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells3f18540de9 + +namespace GerverSofa.PartE.CertificateCellsa21caf16f2 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCellsa21caf16f2 + +namespace GerverSofa.PartE.CertificateCells21943a9b83 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233223 : AngleCell := + childHH (childHL (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells21943a9b83 + +namespace GerverSofa.PartE.CertificateCells62ff50a4e8 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells62ff50a4e8 + +namespace GerverSofa.PartE.CertificateCells6677fc4b7c + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `33233232` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell33233232 : AngleCell := + childHL (childHH (childHL (childHH phiBelowCell3323))) + +end GerverSofa.PartE.CertificateCells6677fc4b7c + +namespace GerverSofa.PartE.CertificateCells07875eeb47 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells07875eeb47 + +namespace GerverSofa.PartE.CertificateCells5ed2775b48 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells5ed2775b48 + +namespace GerverSofa.PartE.CertificateCells83d9ff7319 + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells83d9ff7319 + +namespace GerverSofa.PartE.CertificateCells240a9bf558 + +/-- Subcell `3000` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3000 : AngleCell := + childLL (childLL (childLL (childHH e24PhiBelowRoot))) + +/-- Subcell `3001` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3001 : AngleCell := + childLH (childLL (childLL (childHH e24PhiBelowRoot))) + +/-- Subcell `3002` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3002 : AngleCell := + childHL (childLL (childLL (childHH e24PhiBelowRoot))) + +/-- Subcell `3003` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3003 : AngleCell := + childHH (childLL (childLL (childHH e24PhiBelowRoot))) + +/-- Subcell `3010` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3010 : AngleCell := + childLL (childLH (childLL (childHH e24PhiBelowRoot))) + +/-- Subcell `3011` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3011 : AngleCell := + childLH (childLH (childLL (childHH e24PhiBelowRoot))) + +/-- Subcell `3012` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3012 : AngleCell := + childHL (childLH (childLL (childHH e24PhiBelowRoot))) + +/-- Subcell `3013` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3013 : AngleCell := + childHH (childLH (childLL (childHH e24PhiBelowRoot))) + +/-- Subcell `3020` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3020 : AngleCell := + childLL (childHL (childLL (childHH e24PhiBelowRoot))) + +/-- Subcell `3021` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3021 : AngleCell := + childLH (childHL (childLL (childHH e24PhiBelowRoot))) + +/-- Subcell `3022` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3022 : AngleCell := + childHL (childHL (childLL (childHH e24PhiBelowRoot))) + +/-- Subcell `3023` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3023 : AngleCell := + childHH (childHL (childLL (childHH e24PhiBelowRoot))) + +/-- Subcell `3030` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3030 : AngleCell := + childLL (childHH (childLL (childHH e24PhiBelowRoot))) + +/-- Subcell `3031` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3031 : AngleCell := + childLH (childHH (childLL (childHH e24PhiBelowRoot))) + +/-- Subcell `3032` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3032 : AngleCell := + childHL (childHH (childLL (childHH e24PhiBelowRoot))) + +/-- Subcell `3033` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3033 : AngleCell := + childHH (childHH (childLL (childHH e24PhiBelowRoot))) + +/-- Subcell `3100` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3100 : AngleCell := + childLL (childLL (childLH (childHH e24PhiBelowRoot))) + +/-- Subcell `3101` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3101 : AngleCell := + childLH (childLL (childLH (childHH e24PhiBelowRoot))) + +/-- Subcell `3102` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3102 : AngleCell := + childHL (childLL (childLH (childHH e24PhiBelowRoot))) + +/-- Subcell `3103` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3103 : AngleCell := + childHH (childLL (childLH (childHH e24PhiBelowRoot))) + +/-- Subcell `3112` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3112 : AngleCell := + childHL (childLH (childLH (childHH e24PhiBelowRoot))) + +/-- Subcell `3120` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3120 : AngleCell := + childLL (childHL (childLH (childHH e24PhiBelowRoot))) + +/-- Subcell `3121` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3121 : AngleCell := + childLH (childHL (childLH (childHH e24PhiBelowRoot))) + +/-- Subcell `3122` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3122 : AngleCell := + childHL (childHL (childLH (childHH e24PhiBelowRoot))) + +/-- Subcell `3123` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3123 : AngleCell := + childHH (childHL (childLH (childHH e24PhiBelowRoot))) + +/-- Subcell `3130` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3130 : AngleCell := + childLL (childHH (childLH (childHH e24PhiBelowRoot))) + +/-- Subcell `3131` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3131 : AngleCell := + childLH (childHH (childLH (childHH e24PhiBelowRoot))) + +/-- Subcell `3132` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3132 : AngleCell := + childHL (childHH (childLH (childHH e24PhiBelowRoot))) + +/-- Subcell `3133` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3133 : AngleCell := + childHH (childHH (childLH (childHH e24PhiBelowRoot))) + +/-- Subcell `3200` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3200 : AngleCell := + childLL (childLL (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3201` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3201 : AngleCell := + childLH (childLL (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3202` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3202 : AngleCell := + childHL (childLL (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3203` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3203 : AngleCell := + childHH (childLL (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3210` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3210 : AngleCell := + childLL (childLH (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3211` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3211 : AngleCell := + childLH (childLH (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3212` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3212 : AngleCell := + childHL (childLH (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3213` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3213 : AngleCell := + childHH (childLH (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3220` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3220 : AngleCell := + childLL (childHL (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3221` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3221 : AngleCell := + childLH (childHL (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3222` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3222 : AngleCell := + childHL (childHL (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3223` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3223 : AngleCell := + childHH (childHL (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3230` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3230 : AngleCell := + childLL (childHH (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3231` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3231 : AngleCell := + childLH (childHH (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3232` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3232 : AngleCell := + childHL (childHH (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3233` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3233 : AngleCell := + childHH (childHH (childHL (childHH e24PhiBelowRoot))) + +/-- Subcell `3300` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3300 : AngleCell := + childLL (childLL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3301` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3301 : AngleCell := + childLH (childLL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3302` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3302 : AngleCell := + childHL (childLL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3303` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3303 : AngleCell := + childHH (childLL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3310` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3310 : AngleCell := + childLL (childLH (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3311` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3311 : AngleCell := + childLH (childLH (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3312` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3312 : AngleCell := + childHL (childLH (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3313` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3313 : AngleCell := + childHH (childLH (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3320` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3320 : AngleCell := + childLL (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3321` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3321 : AngleCell := + childLH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3322` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3322 : AngleCell := + childHL (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3323` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3323 : AngleCell := + childHH (childHL (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3330` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3330 : AngleCell := + childLL (childHH (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3331` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3331 : AngleCell := + childLH (childHH (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3332` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3332 : AngleCell := + childHL (childHH (childHH (childHH e24PhiBelowRoot))) + +/-- Subcell `3333` of the phi-below root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev phiBelowCell3333 : AngleCell := + childHH (childHH (childHH (childHH e24PhiBelowRoot))) + +end GerverSofa.PartE.CertificateCells240a9bf558 + +namespace GerverSofa.PartE.CertificateCells22695df69a + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells22695df69a + +namespace GerverSofa.PartE.CertificateCells782ac45202 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells782ac45202 + +namespace GerverSofa.PartE.CertificateCellsb8f48433cf + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsb8f48433cf + +namespace GerverSofa.PartE.CertificateCells5bc1aa1a31 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells5bc1aa1a31 + +namespace GerverSofa.PartE.CertificateCells29b43c6eb7 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells29b43c6eb7 + +namespace GerverSofa.PartE.CertificateCells64bf70ad53 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells64bf70ad53 + +namespace GerverSofa.PartE.CertificateCellsc935d550f9 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsc935d550f9 + +namespace GerverSofa.PartE.CertificateCells0a80d69c2b + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells0a80d69c2b + +namespace GerverSofa.PartE.CertificateCellsfd35b16333 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsfd35b16333 + +namespace GerverSofa.PartE.CertificateCellsd8bbac8cc5 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsd8bbac8cc5 + +namespace GerverSofa.PartE.CertificateCells2eb3bc7e90 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells2eb3bc7e90 + +namespace GerverSofa.PartE.CertificateCellsbc99de789e + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsbc99de789e + +namespace GerverSofa.PartE.CertificateCellsdc52d78b64 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsdc52d78b64 + +namespace GerverSofa.PartE.CertificateCells69f98d6dd4 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells69f98d6dd4 + +namespace GerverSofa.PartE.CertificateCells675835e7b9 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells675835e7b9 + +namespace GerverSofa.PartE.CertificateCellsda5cde5aa9 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsda5cde5aa9 + +namespace GerverSofa.PartE.CertificateCellsed33eab041 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsed33eab041 + +namespace GerverSofa.PartE.CertificateCellsf997ca54bf + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002000 : AngleCell := + childLL (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsf997ca54bf + +namespace GerverSofa.PartE.CertificateCellsba35077fe5 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsba35077fe5 + +namespace GerverSofa.PartE.CertificateCells5d0bfdcc89 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells5d0bfdcc89 + +namespace GerverSofa.PartE.CertificateCellsb9eba9ae01 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsb9eba9ae01 + +namespace GerverSofa.PartE.CertificateCells5ae8bbaf2e + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells5ae8bbaf2e + +namespace GerverSofa.PartE.CertificateCellsbec28e0304 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsbec28e0304 + +namespace GerverSofa.PartE.CertificateCells1b578c3d10 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells1b578c3d10 + +namespace GerverSofa.PartE.CertificateCells2bc65b7190 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells2bc65b7190 + +namespace GerverSofa.PartE.CertificateCellsc46dbfc77b + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsc46dbfc77b + +namespace GerverSofa.PartE.CertificateCells752b604750 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells752b604750 + +namespace GerverSofa.PartE.CertificateCellse66f3ce3f5 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002001 : AngleCell := + childLH (childLL (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellse66f3ce3f5 + +namespace GerverSofa.PartE.CertificateCells45a373af38 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +end GerverSofa.PartE.CertificateCells45a373af38 + +namespace GerverSofa.PartE.CertificateCellsdabf824b24 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsdabf824b24 + +namespace GerverSofa.PartE.CertificateCells11c2c46ea8 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells11c2c46ea8 + +namespace GerverSofa.PartE.CertificateCellsfc2738963a + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsfc2738963a + +namespace GerverSofa.PartE.CertificateCells2c3b2a68a2 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells2c3b2a68a2 + +namespace GerverSofa.PartE.CertificateCells024fe9d391 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells024fe9d391 + +namespace GerverSofa.PartE.CertificateCells95bf7ab700 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells95bf7ab700 + +namespace GerverSofa.PartE.CertificateCellsb2f77f238f + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002010 : AngleCell := + childLL (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsb2f77f238f + +namespace GerverSofa.PartE.CertificateCells8179cb7dd8 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells8179cb7dd8 + +namespace GerverSofa.PartE.CertificateCellsdb257f0c7c + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsdb257f0c7c + +namespace GerverSofa.PartE.CertificateCells3a304b7358 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells3a304b7358 + +namespace GerverSofa.PartE.CertificateCells6cdc8e3bc2 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells6cdc8e3bc2 + +namespace GerverSofa.PartE.CertificateCells0157659d62 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells0157659d62 + +namespace GerverSofa.PartE.CertificateCells834e9932ec + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002011 : AngleCell := + childLH (childLH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCells834e9932ec + +namespace GerverSofa.PartE.CertificateCellsb02c7d0e39 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `000022002020` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002020 : AngleCell := + childLL (childHL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `000022002021` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002021 : AngleCell := + childLH (childHL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `000022002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `000022002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `000022002030` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002030 : AngleCell := + childLL (childHH (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `000022002031` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002031 : AngleCell := + childLH (childHH (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `000022002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell00002200))) + +/-- Subcell `000022002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell000022002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell00002200))) + +end GerverSofa.PartE.CertificateCellsb02c7d0e39 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Combining adaptive-cover certificates + +The numerical leaf checks are imported separately so that they can compile in parallel. +This module combines them using the adaptive-cover soundness lemmas. + +* `KernelOnly.PartE.E24KC6ThetaBelowReconstruct`. +* `KernelOnly.PartE.PhiAbove.Join00029`. +* `KernelOnly.PartE.PhiAbove.Join00036`. +* `KernelOnly.PartE.PhiAbove.Join00042`. +* `KernelOnly.PartE.PhiAbove.Join00045`. +* `KernelOnly.PartE.PhiAbove.Join00048`. +* `KernelOnly.PartE.PhiAbove.Join00056`. +* `KernelOnly.PartE.PhiAbove.Join00062`. +* `KernelOnly.PartE.PhiAbove.Join00065`. +* `KernelOnly.PartE.PhiAbove.Join00071`. +* `KernelOnly.PartE.PhiAbove.Join00074`. +* `KernelOnly.PartE.PhiAbove.Join00077`. +* `KernelOnly.PartE.PhiAbove.Join00085`. +* `KernelOnly.PartE.PhiAbove.Join00091`. +* `KernelOnly.PartE.PhiAbove.Join00094`. +* `KernelOnly.PartE.PhiAbove.Join00101`. +* `KernelOnly.PartE.PhiAbove.Join00105`. +* `KernelOnly.PartE.PhiAbove.Join00108`. +* `KernelOnly.PartE.PhiAbove.Join00111`. +* `KernelOnly.PartE.PhiAbove.Join00122`. +* `KernelOnly.PartE.PhiAbove.Join00129`. +* `KernelOnly.PartE.PhiAbove.Join00133`. +* `KernelOnly.PartE.PhiAbove.Join00136`. +* `KernelOnly.PartE.PhiAbove.Join00142`. +* `KernelOnly.PartE.PhiAbove.Join00145`. +* `KernelOnly.PartE.PhiAbove.Join00156`. +* `KernelOnly.PartE.PhiAbove.Join00159`. +* `KernelOnly.PartE.PhiAbove.Join00165`. +* `KernelOnly.PartE.PhiAbove.Join00168`. +* `KernelOnly.PartE.PhiAbove.Join00178`. +* `KernelOnly.PartE.PhiAbove.Join00182`. +* `KernelOnly.PartE.PhiAbove.Join00191`. +* `KernelOnly.PartE.PhiAbove.Join00200`. +* `KernelOnly.PartE.PhiAbove.Join00208`. +* `KernelOnly.PartE.E24KC6PhiAboveReconstruct`. +* `KernelOnly.PartE.PhiBelow.Join00246`. +* `KernelOnly.PartE.PhiBelow.Join00260`. +* `KernelOnly.PartE.PhiBelow.Join00269`. +* `KernelOnly.PartE.PhiBelow.Join00278`. +* `KernelOnly.PartE.PhiBelow.Join00284`. +* `KernelOnly.PartE.PhiBelow.Join00285`. +* `KernelOnly.PartE.PhiBelow.Join00294`. +* `KernelOnly.PartE.PhiBelow.Join00301`. +* `KernelOnly.PartE.PhiBelow.Join00308`. +* `KernelOnly.PartE.PhiBelow.Join00314`. +* `KernelOnly.PartE.PhiBelow.Join00315`. +* `KernelOnly.PartE.PhiBelow.Join00326`. +* `KernelOnly.PartE.PhiBelow.Join00333`. +* `KernelOnly.PartE.PhiBelow.Join00334`. +* `KernelOnly.PartE.PhiBelow.Join00343`. +* `KernelOnly.PartE.PhiBelow.Join00346`. +* `KernelOnly.PartE.PhiBelow.Join00347`. +* `KernelOnly.PartE.PhiBelow.Join00348`. +* `KernelOnly.PartE.PhiBelow.Join00358`. +* `KernelOnly.PartE.PhiBelow.Join00369`. +* `KernelOnly.PartE.PhiBelow.Join00371`. +* `KernelOnly.PartE.PhiBelow.Join00383`. +* `KernelOnly.PartE.PhiBelow.Join00384`. +* `KernelOnly.PartE.PhiBelow.Join00390`. +* `KernelOnly.PartE.PhiBelow.Join00398`. +* `KernelOnly.PartE.PhiBelow.Join00401`. +* `KernelOnly.PartE.PhiBelow.Join00408`. +* `KernelOnly.PartE.PhiBelow.Join00421`. +* `KernelOnly.PartE.PhiBelow.Join00425`. +* `KernelOnly.PartE.PhiBelow.Join00427`. +* `KernelOnly.PartE.PhiBelow.Join00434`. +* `KernelOnly.PartE.PhiBelow.Join00435`. +* `KernelOnly.PartE.PhiBelow.Join00444`. +* `KernelOnly.PartE.PhiBelow.Join00446`. +* `KernelOnly.PartE.PhiBelow.Join00447`. +* `KernelOnly.PartE.PhiBelow.Join00448`. +* `KernelOnly.PartE.PhiBelow.Join00457`. +* `KernelOnly.PartE.PhiBelow.Join00459`. +* `KernelOnly.PartE.PhiBelow.Join00460`. +* `KernelOnly.PartE.PhiBelow.Join00462`. +* `KernelOnly.PartE.E24KC6PhiBelowReconstruct`. +* `KernelOnly.PartE.ThetaAbove.Join00016`. +* `KernelOnly.PartE.ThetaAbove.Join00022`. +* `KernelOnly.PartE.ThetaAbove.Join00023`. +* `KernelOnly.PartE.ThetaAbove.Join00484`. +* `KernelOnly.PartE.ThetaAbove.Join00490`. +* `KernelOnly.PartE.ThetaAbove.Join00493`. +* `KernelOnly.PartE.ThetaAbove.Join00500`. +* `KernelOnly.PartE.ThetaAbove.Join00506`. +* `KernelOnly.PartE.ThetaAbove.Join00509`. +* `KernelOnly.PartE.ThetaAbove.Join00512`. +* `KernelOnly.PartE.ThetaAbove.Join00520`. +* `KernelOnly.PartE.ThetaAbove.Join00526`. +* `KernelOnly.PartE.ThetaAbove.Join00529`. +* `KernelOnly.PartE.ThetaAbove.Join00536`. +* `KernelOnly.PartE.ThetaAbove.Join00542`. +* `KernelOnly.PartE.ThetaAbove.Join00545`. +* `KernelOnly.PartE.ThetaAbove.Join00548`. +* `KernelOnly.PartE.ThetaAbove.Join00549`. +* `KernelOnly.PartE.ThetaAbove.Join00560`. +* `KernelOnly.PartE.ThetaAbove.Join00566`. +* `KernelOnly.PartE.ThetaAbove.Join00569`. +* `KernelOnly.PartE.ThetaAbove.Join00576`. +* `KernelOnly.PartE.ThetaAbove.Join00580`. +* `KernelOnly.PartE.ThetaAbove.Join00583`. +* `KernelOnly.PartE.ThetaAbove.Join00590`. +* `KernelOnly.PartE.ThetaAbove.Join00596`. +* `KernelOnly.PartE.ThetaAbove.Join00599`. +* `KernelOnly.PartE.ThetaAbove.Join00600`. +* `KernelOnly.PartE.ThetaAbove.Join00603`. +* `KernelOnly.PartE.ThetaAbove.Join00614`. +* `KernelOnly.PartE.ThetaAbove.Join00620`. +* `KernelOnly.PartE.ThetaAbove.Join00623`. +* `KernelOnly.PartE.ThetaAbove.Join00630`. +* `KernelOnly.PartE.ThetaAbove.Join00636`. +* `KernelOnly.PartE.ThetaAbove.Join00639`. +* `KernelOnly.PartE.ThetaAbove.Join00640`. +* `KernelOnly.PartE.ThetaAbove.Join00650`. +* `KernelOnly.PartE.ThetaAbove.Join00656`. +* `KernelOnly.PartE.ThetaAbove.Join00659`. +* `KernelOnly.PartE.ThetaAbove.Join00666`. +* `KernelOnly.PartE.ThetaAbove.Join00026`. +* `KernelOnly.PartE.ThetaAbove.Join00027`. +* `KernelOnly.PartE.E24KC6ProofBatch9b503cfa8ccc3ab1`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC6Theta Below Reconstruct +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6754c8bb3e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6754c8bb3e + +open CertificateCells6754c8bb3e + +theorem e24KC2ThetaBelowNode11012132 : + adaptiveCoverCheck 10 thetaBelowCell11012132 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11012132 + e24KC2ThetaBelowLeaf110121320 e24KC2ThetaBelowLeaf110121321 e24KC2ThetaBelowLeaf110121322 + e24KC2ThetaBelowLeaf110121323 + +theorem e24KC2ThetaBelowNode11012133 : + adaptiveCoverCheck 10 thetaBelowCell11012133 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11012133 + e24KC2ThetaBelowLeaf110121330 e24KC2ThetaBelowLeaf110121331 e24KC2ThetaBelowLeaf110121332 + e24KC2ThetaBelowLeaf110121333 + +theorem e24KC2ThetaBelowNode11013013 : + adaptiveCoverCheck 10 thetaBelowCell11013013 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013013 + e24KC2ThetaBelowLeaf110130130 e24KC2ThetaBelowLeaf110130131 e24KC2ThetaBelowLeaf110130132 + e24KC2ThetaBelowLeaf110130133 + +theorem e24KC2ThetaBelowNode11013021 : + adaptiveCoverCheck 10 thetaBelowCell11013021 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013021 + e24KC2ThetaBelowLeaf110130210 e24KC2ThetaBelowLeaf110130211 e24KC2ThetaBelowLeaf110130212 + e24KC2ThetaBelowLeaf110130213 + +theorem e24KC2ThetaBelowNode11013022 : + adaptiveCoverCheck 10 thetaBelowCell11013022 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013022 + e24KC2ThetaBelowLeaf110130220 e24KC2ThetaBelowLeaf110130221 e24KC2ThetaBelowLeaf110130222 + e24KC2ThetaBelowLeaf110130223 + +theorem e24KC2ThetaBelowNode11013023 : + adaptiveCoverCheck 10 thetaBelowCell11013023 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013023 + e24KC2ThetaBelowLeaf110130230 e24KC2ThetaBelowLeaf110130231 e24KC2ThetaBelowLeaf110130232 + e24KC2ThetaBelowLeaf110130233 + +theorem e24KC2ThetaBelowNode11013030 : + adaptiveCoverCheck 10 thetaBelowCell11013030 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013030 + e24KC2ThetaBelowLeaf110130300 e24KC2ThetaBelowLeaf110130301 e24KC2ThetaBelowLeaf110130302 + e24KC2ThetaBelowLeaf110130303 + +theorem e24KC2ThetaBelowNode11013031 : + adaptiveCoverCheck 10 thetaBelowCell11013031 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013031 + e24KC2ThetaBelowLeaf110130310 e24KC2ThetaBelowLeaf110130311 e24KC2ThetaBelowLeaf110130312 + e24KC2ThetaBelowLeaf110130313 + +theorem e24KC2ThetaBelowNode11013032 : + adaptiveCoverCheck 10 thetaBelowCell11013032 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013032 + e24KC2ThetaBelowLeaf110130320 e24KC2ThetaBelowLeaf110130321 e24KC2ThetaBelowLeaf110130322 + e24KC2ThetaBelowLeaf110130323 + +theorem e24KC2ThetaBelowNode11013033 : + adaptiveCoverCheck 10 thetaBelowCell11013033 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013033 + e24KC2ThetaBelowLeaf110130330 e24KC2ThetaBelowLeaf110130331 e24KC2ThetaBelowLeaf110130332 + e24KC2ThetaBelowLeaf110130333 + +theorem e24KC2ThetaBelowNode11013102 : + adaptiveCoverCheck 10 thetaBelowCell11013102 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013102 + e24KC2ThetaBelowLeaf110131020 e24KC2ThetaBelowLeaf110131021 e24KC2ThetaBelowLeaf110131022 + e24KC2ThetaBelowLeaf110131023 + +theorem e24KC2ThetaBelowNode11013103 : + adaptiveCoverCheck 10 thetaBelowCell11013103 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013103 + e24KC2ThetaBelowLeaf110131030 e24KC2ThetaBelowLeaf110131031 e24KC2ThetaBelowLeaf110131032 + e24KC2ThetaBelowLeaf110131033 + +theorem e24KC2ThetaBelowNode11013112 : + adaptiveCoverCheck 10 thetaBelowCell11013112 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013112 + e24KC2ThetaBelowLeaf110131120 e24KC2ThetaBelowLeaf110131121 e24KC2ThetaBelowLeaf110131122 + e24KC2ThetaBelowLeaf110131123 + +theorem e24KC2ThetaBelowNode11013113 : + adaptiveCoverCheck 10 thetaBelowCell11013113 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013113 + e24KC2ThetaBelowLeaf110131130 e24KC2ThetaBelowLeaf110131131 e24KC2ThetaBelowLeaf110131132 + e24KC2ThetaBelowLeaf110131133 + +theorem e24KC2ThetaBelowNode11013120 : + adaptiveCoverCheck 10 thetaBelowCell11013120 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013120 + e24KC2ThetaBelowLeaf110131200 e24KC2ThetaBelowLeaf110131201 e24KC2ThetaBelowLeaf110131202 + e24KC2ThetaBelowLeaf110131203 + +theorem e24KC2ThetaBelowNode11013121 : + adaptiveCoverCheck 10 thetaBelowCell11013121 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013121 + e24KC2ThetaBelowLeaf110131210 e24KC2ThetaBelowLeaf110131211 e24KC2ThetaBelowLeaf110131212 + e24KC2ThetaBelowLeaf110131213 + +theorem e24KC2ThetaBelowNode11013122 : + adaptiveCoverCheck 10 thetaBelowCell11013122 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013122 + e24KC2ThetaBelowLeaf110131220 e24KC2ThetaBelowLeaf110131221 e24KC2ThetaBelowLeaf110131222 + e24KC2ThetaBelowLeaf110131223 + +theorem e24KC2ThetaBelowNode11013123 : + adaptiveCoverCheck 10 thetaBelowCell11013123 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013123 + e24KC2ThetaBelowLeaf110131230 e24KC2ThetaBelowLeaf110131231 e24KC2ThetaBelowLeaf110131232 + e24KC2ThetaBelowLeaf110131233 + +theorem e24KC2ThetaBelowNode11013130 : + adaptiveCoverCheck 10 thetaBelowCell11013130 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013130 + e24KC2ThetaBelowLeaf110131300 e24KC2ThetaBelowLeaf110131301 e24KC2ThetaBelowLeaf110131302 + e24KC2ThetaBelowLeaf110131303 + +theorem e24KC2ThetaBelowNode11013131 : + adaptiveCoverCheck 10 thetaBelowCell11013131 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013131 + e24KC2ThetaBelowLeaf110131310 e24KC2ThetaBelowLeaf110131311 e24KC2ThetaBelowLeaf110131312 + e24KC2ThetaBelowLeaf110131313 + +theorem e24KC2ThetaBelowNode11013132 : + adaptiveCoverCheck 10 thetaBelowCell11013132 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013132 + e24KC2ThetaBelowLeaf110131320 e24KC2ThetaBelowLeaf110131321 e24KC2ThetaBelowLeaf110131322 + e24KC2ThetaBelowLeaf110131323 + +theorem e24KC2ThetaBelowNode11013133 : + adaptiveCoverCheck 10 thetaBelowCell11013133 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11013133 + e24KC2ThetaBelowLeaf110131330 e24KC2ThetaBelowLeaf110131331 e24KC2ThetaBelowLeaf110131332 + e24KC2ThetaBelowLeaf110131333 + +theorem e24KC2ThetaBelowNode11102002 : + adaptiveCoverCheck 10 thetaBelowCell11102002 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102002 + e24KC2ThetaBelowLeaf111020020 e24KC2ThetaBelowLeaf111020021 e24KC2ThetaBelowLeaf111020022 + e24KC2ThetaBelowLeaf111020023 + +theorem e24KC2ThetaBelowNode11102003 : + adaptiveCoverCheck 10 thetaBelowCell11102003 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102003 + e24KC2ThetaBelowLeaf111020030 e24KC2ThetaBelowLeaf111020031 e24KC2ThetaBelowLeaf111020032 + e24KC2ThetaBelowLeaf111020033 + +theorem e24KC2ThetaBelowNode11102012 : + adaptiveCoverCheck 10 thetaBelowCell11102012 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102012 + e24KC2ThetaBelowLeaf111020120 e24KC2ThetaBelowLeaf111020121 e24KC2ThetaBelowLeaf111020122 + e24KC2ThetaBelowLeaf111020123 + +theorem e24KC2ThetaBelowNode11102013 : + adaptiveCoverCheck 10 thetaBelowCell11102013 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102013 + e24KC2ThetaBelowLeaf111020130 e24KC2ThetaBelowLeaf111020131 e24KC2ThetaBelowLeaf111020132 + e24KC2ThetaBelowLeaf111020133 + +theorem e24KC2ThetaBelowNode11102020 : + adaptiveCoverCheck 10 thetaBelowCell11102020 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102020 + e24KC2ThetaBelowLeaf111020200 e24KC2ThetaBelowLeaf111020201 e24KC2ThetaBelowLeaf111020202 + e24KC2ThetaBelowLeaf111020203 + +theorem e24KC2ThetaBelowNode11102021 : + adaptiveCoverCheck 10 thetaBelowCell11102021 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102021 + e24KC2ThetaBelowLeaf111020210 e24KC2ThetaBelowLeaf111020211 e24KC2ThetaBelowLeaf111020212 + e24KC2ThetaBelowLeaf111020213 + +theorem e24KC2ThetaBelowNode11102022 : + adaptiveCoverCheck 10 thetaBelowCell11102022 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102022 + e24KC2ThetaBelowLeaf111020220 e24KC2ThetaBelowLeaf111020221 e24KC2ThetaBelowLeaf111020222 + e24KC2ThetaBelowLeaf111020223 + +theorem e24KC2ThetaBelowNode11102023 : + adaptiveCoverCheck 10 thetaBelowCell11102023 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102023 + e24KC2ThetaBelowLeaf111020230 e24KC2ThetaBelowLeaf111020231 e24KC2ThetaBelowLeaf111020232 + e24KC2ThetaBelowLeaf111020233 + +theorem e24KC2ThetaBelowNode11102030 : + adaptiveCoverCheck 10 thetaBelowCell11102030 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102030 + e24KC2ThetaBelowLeaf111020300 e24KC2ThetaBelowLeaf111020301 e24KC2ThetaBelowLeaf111020302 + e24KC2ThetaBelowLeaf111020303 + +theorem e24KC2ThetaBelowNode11102031 : + adaptiveCoverCheck 10 thetaBelowCell11102031 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102031 + e24KC2ThetaBelowLeaf111020310 e24KC2ThetaBelowLeaf111020311 e24KC2ThetaBelowLeaf111020312 + e24KC2ThetaBelowLeaf111020313 + +theorem e24KC2ThetaBelowNode11102032 : + adaptiveCoverCheck 10 thetaBelowCell11102032 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102032 + e24KC2ThetaBelowLeaf111020320 e24KC2ThetaBelowLeaf111020321 e24KC2ThetaBelowLeaf111020322 + e24KC2ThetaBelowLeaf111020323 + +theorem e24KC2ThetaBelowNode11102033 : + adaptiveCoverCheck 10 thetaBelowCell11102033 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102033 + e24KC2ThetaBelowLeaf111020330 e24KC2ThetaBelowLeaf111020331 e24KC2ThetaBelowLeaf111020332 + e24KC2ThetaBelowLeaf111020333 + +theorem e24KC2ThetaBelowNode11102120 : + adaptiveCoverCheck 10 thetaBelowCell11102120 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102120 + e24KC2ThetaBelowLeaf111021200 e24KC2ThetaBelowLeaf111021201 e24KC2ThetaBelowLeaf111021202 + e24KC2ThetaBelowLeaf111021203 + +theorem e24KC2ThetaBelowNode11102121 : + adaptiveCoverCheck 10 thetaBelowCell11102121 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102121 + e24KC2ThetaBelowLeaf111021210 e24KC2ThetaBelowLeaf111021211 e24KC2ThetaBelowLeaf111021212 + e24KC2ThetaBelowLeaf111021213 + +theorem e24KC2ThetaBelowNode11102122 : + adaptiveCoverCheck 10 thetaBelowCell11102122 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102122 + e24KC2ThetaBelowLeaf111021220 e24KC2ThetaBelowLeaf111021221 e24KC2ThetaBelowLeaf111021222 + e24KC2ThetaBelowLeaf111021223 + +theorem e24KC2ThetaBelowNode11102123 : + adaptiveCoverCheck 10 thetaBelowCell11102123 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102123 + e24KC2ThetaBelowLeaf111021230 e24KC2ThetaBelowLeaf111021231 e24KC2ThetaBelowLeaf111021232 + e24KC2ThetaBelowLeaf111021233 + +theorem e24KC2ThetaBelowNode11102130 : + adaptiveCoverCheck 10 thetaBelowCell11102130 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102130 + e24KC2ThetaBelowLeaf111021300 e24KC2ThetaBelowLeaf111021301 e24KC2ThetaBelowLeaf111021302 + e24KC2ThetaBelowLeaf111021303 + +theorem e24KC2ThetaBelowNode11102131 : + adaptiveCoverCheck 10 thetaBelowCell11102131 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102131 + e24KC2ThetaBelowLeaf111021310 e24KC2ThetaBelowLeaf111021311 e24KC2ThetaBelowLeaf111021312 + e24KC2ThetaBelowLeaf111021313 + +theorem e24KC2ThetaBelowNode11102132 : + adaptiveCoverCheck 10 thetaBelowCell11102132 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102132 + e24KC2ThetaBelowLeaf111021320 e24KC2ThetaBelowLeaf111021321 e24KC2ThetaBelowLeaf111021322 + e24KC2ThetaBelowLeaf111021323 + +theorem e24KC2ThetaBelowNode11102133 : + adaptiveCoverCheck 10 thetaBelowCell11102133 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102133 + e24KC2ThetaBelowLeaf111021330 e24KC2ThetaBelowLeaf111021331 e24KC2ThetaBelowLeaf111021332 + e24KC2ThetaBelowLeaf111021333 + +theorem e24KC2ThetaBelowNode11102200 : + adaptiveCoverCheck 10 thetaBelowCell11102200 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102200 + e24KC2ThetaBelowLeaf111022000 e24KC2ThetaBelowLeaf111022001 e24KC2ThetaBelowLeaf111022002 + e24KC2ThetaBelowLeaf111022003 + +theorem e24KC2ThetaBelowNode11102201 : + adaptiveCoverCheck 10 thetaBelowCell11102201 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102201 + e24KC2ThetaBelowLeaf111022010 e24KC2ThetaBelowLeaf111022011 e24KC2ThetaBelowLeaf111022012 + e24KC2ThetaBelowLeaf111022013 + +theorem e24KC2ThetaBelowNode11102210 : + adaptiveCoverCheck 10 thetaBelowCell11102210 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102210 + e24KC2ThetaBelowLeaf111022100 e24KC2ThetaBelowLeaf111022101 e24KC2ThetaBelowLeaf111022102 + e24KC2ThetaBelowLeaf111022103 + +theorem e24KC2ThetaBelowNode11102211 : + adaptiveCoverCheck 10 thetaBelowCell11102211 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102211 + e24KC2ThetaBelowLeaf111022110 e24KC2ThetaBelowLeaf111022111 e24KC2ThetaBelowLeaf111022112 + e24KC2ThetaBelowLeaf111022113 + +theorem e24KC2ThetaBelowNode11102300 : + adaptiveCoverCheck 10 thetaBelowCell11102300 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102300 + e24KC2ThetaBelowLeaf111023000 e24KC2ThetaBelowLeaf111023001 e24KC2ThetaBelowLeaf111023002 + e24KC2ThetaBelowLeaf111023003 + +theorem e24KC2ThetaBelowNode11102301 : + adaptiveCoverCheck 10 thetaBelowCell11102301 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102301 + e24KC2ThetaBelowLeaf111023010 e24KC2ThetaBelowLeaf111023011 e24KC2ThetaBelowLeaf111023012 + e24KC2ThetaBelowLeaf111023013 + +theorem e24KC2ThetaBelowNode11102310 : + adaptiveCoverCheck 10 thetaBelowCell11102310 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102310 + e24KC2ThetaBelowLeaf111023100 e24KC2ThetaBelowLeaf111023101 e24KC2ThetaBelowLeaf111023102 + e24KC2ThetaBelowLeaf111023103 + +theorem e24KC2ThetaBelowNode11102311 : + adaptiveCoverCheck 10 thetaBelowCell11102311 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11102311 + e24KC2ThetaBelowLeaf111023110 e24KC2ThetaBelowLeaf111023111 e24KC2ThetaBelowLeaf111023112 + e24KC2ThetaBelowLeaf111023113 + +theorem e24KC2ThetaBelowNode11103020 : + adaptiveCoverCheck 10 thetaBelowCell11103020 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103020 + e24KC2ThetaBelowLeaf111030200 e24KC2ThetaBelowLeaf111030201 e24KC2ThetaBelowLeaf111030202 + e24KC2ThetaBelowLeaf111030203 + +theorem e24KC2ThetaBelowNode11103021 : + adaptiveCoverCheck 10 thetaBelowCell11103021 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103021 + e24KC2ThetaBelowLeaf111030210 e24KC2ThetaBelowLeaf111030211 e24KC2ThetaBelowLeaf111030212 + e24KC2ThetaBelowLeaf111030213 + +theorem e24KC2ThetaBelowNode11103022 : + adaptiveCoverCheck 10 thetaBelowCell11103022 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103022 + e24KC2ThetaBelowLeaf111030220 e24KC2ThetaBelowLeaf111030221 e24KC2ThetaBelowLeaf111030222 + e24KC2ThetaBelowLeaf111030223 + +theorem e24KC2ThetaBelowNode11103023 : + adaptiveCoverCheck 10 thetaBelowCell11103023 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103023 + e24KC2ThetaBelowLeaf111030230 e24KC2ThetaBelowLeaf111030231 e24KC2ThetaBelowLeaf111030232 + e24KC2ThetaBelowLeaf111030233 + +theorem e24KC2ThetaBelowNode11103030 : + adaptiveCoverCheck 10 thetaBelowCell11103030 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103030 + e24KC2ThetaBelowLeaf111030300 e24KC2ThetaBelowLeaf111030301 e24KC2ThetaBelowLeaf111030302 + e24KC2ThetaBelowLeaf111030303 + +theorem e24KC2ThetaBelowNode11103031 : + adaptiveCoverCheck 10 thetaBelowCell11103031 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103031 + e24KC2ThetaBelowLeaf111030310 e24KC2ThetaBelowLeaf111030311 e24KC2ThetaBelowLeaf111030312 + e24KC2ThetaBelowLeaf111030313 + +theorem e24KC2ThetaBelowNode11103032 : + adaptiveCoverCheck 10 thetaBelowCell11103032 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103032 + e24KC2ThetaBelowLeaf111030320 e24KC2ThetaBelowLeaf111030321 e24KC2ThetaBelowLeaf111030322 + e24KC2ThetaBelowLeaf111030323 + +theorem e24KC2ThetaBelowNode11103033 : + adaptiveCoverCheck 10 thetaBelowCell11103033 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103033 + e24KC2ThetaBelowLeaf111030330 e24KC2ThetaBelowLeaf111030331 e24KC2ThetaBelowLeaf111030332 + e24KC2ThetaBelowLeaf111030333 + +theorem e24KC2ThetaBelowNode11103120 : + adaptiveCoverCheck 10 thetaBelowCell11103120 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103120 + e24KC2ThetaBelowLeaf111031200 e24KC2ThetaBelowLeaf111031201 e24KC2ThetaBelowLeaf111031202 + e24KC2ThetaBelowLeaf111031203 + +theorem e24KC2ThetaBelowNode11103121 : + adaptiveCoverCheck 10 thetaBelowCell11103121 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103121 + e24KC2ThetaBelowLeaf111031210 e24KC2ThetaBelowLeaf111031211 e24KC2ThetaBelowLeaf111031212 + e24KC2ThetaBelowLeaf111031213 + +theorem e24KC2ThetaBelowNode11103122 : + adaptiveCoverCheck 10 thetaBelowCell11103122 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103122 + e24KC2ThetaBelowLeaf111031220 e24KC2ThetaBelowLeaf111031221 e24KC2ThetaBelowLeaf111031222 + e24KC2ThetaBelowLeaf111031223 + +theorem e24KC2ThetaBelowNode11103123 : + adaptiveCoverCheck 10 thetaBelowCell11103123 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103123 + e24KC2ThetaBelowLeaf111031230 e24KC2ThetaBelowLeaf111031231 e24KC2ThetaBelowLeaf111031232 + e24KC2ThetaBelowLeaf111031233 + +theorem e24KC2ThetaBelowNode11103130 : + adaptiveCoverCheck 10 thetaBelowCell11103130 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103130 + e24KC2ThetaBelowLeaf111031300 e24KC2ThetaBelowLeaf111031301 e24KC2ThetaBelowLeaf111031302 + e24KC2ThetaBelowLeaf111031303 + +theorem e24KC2ThetaBelowNode11103131 : + adaptiveCoverCheck 10 thetaBelowCell11103131 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103131 + e24KC2ThetaBelowLeaf111031310 e24KC2ThetaBelowLeaf111031311 e24KC2ThetaBelowLeaf111031312 + e24KC2ThetaBelowLeaf111031313 + +theorem e24KC2ThetaBelowNode11103132 : + adaptiveCoverCheck 10 thetaBelowCell11103132 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103132 + e24KC2ThetaBelowLeaf111031320 e24KC2ThetaBelowLeaf111031321 e24KC2ThetaBelowLeaf111031322 + e24KC2ThetaBelowLeaf111031323 + +theorem e24KC2ThetaBelowNode11103133 : + adaptiveCoverCheck 10 thetaBelowCell11103133 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103133 + e24KC2ThetaBelowLeaf111031330 e24KC2ThetaBelowLeaf111031331 e24KC2ThetaBelowLeaf111031332 + e24KC2ThetaBelowLeaf111031333 + +theorem e24KC2ThetaBelowNode11103200 : + adaptiveCoverCheck 10 thetaBelowCell11103200 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103200 + e24KC2ThetaBelowLeaf111032000 e24KC2ThetaBelowLeaf111032001 e24KC2ThetaBelowLeaf111032002 + e24KC2ThetaBelowLeaf111032003 + +theorem e24KC2ThetaBelowNode11103201 : + adaptiveCoverCheck 10 thetaBelowCell11103201 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103201 + e24KC2ThetaBelowLeaf111032010 e24KC2ThetaBelowLeaf111032011 e24KC2ThetaBelowLeaf111032012 + e24KC2ThetaBelowLeaf111032013 + +theorem e24KC2ThetaBelowNode11103210 : + adaptiveCoverCheck 10 thetaBelowCell11103210 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103210 + e24KC2ThetaBelowLeaf111032100 e24KC2ThetaBelowLeaf111032101 e24KC2ThetaBelowLeaf111032102 + e24KC2ThetaBelowLeaf111032103 + +theorem e24KC2ThetaBelowNode11103211 : + adaptiveCoverCheck 10 thetaBelowCell11103211 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103211 + e24KC2ThetaBelowLeaf111032110 e24KC2ThetaBelowLeaf111032111 e24KC2ThetaBelowLeaf111032112 + e24KC2ThetaBelowLeaf111032113 + +theorem e24KC2ThetaBelowNode11103300 : + adaptiveCoverCheck 10 thetaBelowCell11103300 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103300 + e24KC2ThetaBelowLeaf111033000 e24KC2ThetaBelowLeaf111033001 e24KC2ThetaBelowLeaf111033002 + e24KC2ThetaBelowLeaf111033003 + +theorem e24KC2ThetaBelowNode11103301 : + adaptiveCoverCheck 10 thetaBelowCell11103301 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103301 + e24KC2ThetaBelowLeaf111033010 e24KC2ThetaBelowLeaf111033011 e24KC2ThetaBelowLeaf111033012 + e24KC2ThetaBelowLeaf111033013 + +theorem e24KC2ThetaBelowNode11103310 : + adaptiveCoverCheck 10 thetaBelowCell11103310 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103310 + e24KC2ThetaBelowLeaf111033100 e24KC2ThetaBelowLeaf111033101 e24KC2ThetaBelowLeaf111033102 + e24KC2ThetaBelowLeaf111033103 + +theorem e24KC2ThetaBelowNode11103311 : + adaptiveCoverCheck 10 thetaBelowCell11103311 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11103311 + e24KC2ThetaBelowLeaf111033110 e24KC2ThetaBelowLeaf111033111 e24KC2ThetaBelowLeaf111033112 + e24KC2ThetaBelowLeaf111033113 + +theorem e24KC2ThetaBelowNode11112020 : + adaptiveCoverCheck 10 thetaBelowCell11112020 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112020 + e24KC2ThetaBelowLeaf111120200 e24KC2ThetaBelowLeaf111120201 e24KC2ThetaBelowLeaf111120202 + e24KC2ThetaBelowLeaf111120203 + +theorem e24KC2ThetaBelowNode11112021 : + adaptiveCoverCheck 10 thetaBelowCell11112021 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112021 + e24KC2ThetaBelowLeaf111120210 e24KC2ThetaBelowLeaf111120211 e24KC2ThetaBelowLeaf111120212 + e24KC2ThetaBelowLeaf111120213 + +theorem e24KC2ThetaBelowNode11112022 : + adaptiveCoverCheck 10 thetaBelowCell11112022 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112022 + e24KC2ThetaBelowLeaf111120220 e24KC2ThetaBelowLeaf111120221 e24KC2ThetaBelowLeaf111120222 + e24KC2ThetaBelowLeaf111120223 + +theorem e24KC2ThetaBelowNode11112023 : + adaptiveCoverCheck 10 thetaBelowCell11112023 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112023 + e24KC2ThetaBelowLeaf111120230 e24KC2ThetaBelowLeaf111120231 e24KC2ThetaBelowLeaf111120232 + e24KC2ThetaBelowLeaf111120233 + +theorem e24KC2ThetaBelowNode11112030 : + adaptiveCoverCheck 10 thetaBelowCell11112030 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112030 + e24KC2ThetaBelowLeaf111120300 e24KC2ThetaBelowLeaf111120301 e24KC2ThetaBelowLeaf111120302 + e24KC2ThetaBelowLeaf111120303 + +theorem e24KC2ThetaBelowNode11112031 : + adaptiveCoverCheck 10 thetaBelowCell11112031 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112031 + e24KC2ThetaBelowLeaf111120310 e24KC2ThetaBelowLeaf111120311 e24KC2ThetaBelowLeaf111120312 + e24KC2ThetaBelowLeaf111120313 + +theorem e24KC2ThetaBelowNode11112032 : + adaptiveCoverCheck 10 thetaBelowCell11112032 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112032 + e24KC2ThetaBelowLeaf111120320 e24KC2ThetaBelowLeaf111120321 e24KC2ThetaBelowLeaf111120322 + e24KC2ThetaBelowLeaf111120323 + +theorem e24KC2ThetaBelowNode11112033 : + adaptiveCoverCheck 10 thetaBelowCell11112033 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112033 + e24KC2ThetaBelowLeaf111120330 e24KC2ThetaBelowLeaf111120331 e24KC2ThetaBelowLeaf111120332 + e24KC2ThetaBelowLeaf111120333 + +theorem e24KC2ThetaBelowNode11112120 : + adaptiveCoverCheck 10 thetaBelowCell11112120 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112120 + e24KC2ThetaBelowLeaf111121200 e24KC2ThetaBelowLeaf111121201 e24KC2ThetaBelowLeaf111121202 + e24KC2ThetaBelowLeaf111121203 + +theorem e24KC2ThetaBelowNode11112121 : + adaptiveCoverCheck 10 thetaBelowCell11112121 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112121 + e24KC2ThetaBelowLeaf111121210 e24KC2ThetaBelowLeaf111121211 e24KC2ThetaBelowLeaf111121212 + e24KC2ThetaBelowLeaf111121213 + +theorem e24KC2ThetaBelowNode11112122 : + adaptiveCoverCheck 10 thetaBelowCell11112122 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112122 + e24KC2ThetaBelowLeaf111121220 e24KC2ThetaBelowLeaf111121221 e24KC2ThetaBelowLeaf111121222 + e24KC2ThetaBelowLeaf111121223 + +theorem e24KC2ThetaBelowNode11112123 : + adaptiveCoverCheck 10 thetaBelowCell11112123 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112123 + e24KC2ThetaBelowLeaf111121230 e24KC2ThetaBelowLeaf111121231 e24KC2ThetaBelowLeaf111121232 + e24KC2ThetaBelowLeaf111121233 + +theorem e24KC2ThetaBelowNode11112130 : + adaptiveCoverCheck 10 thetaBelowCell11112130 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112130 + e24KC2ThetaBelowLeaf111121300 e24KC2ThetaBelowLeaf111121301 e24KC2ThetaBelowLeaf111121302 + e24KC2ThetaBelowLeaf111121303 + +theorem e24KC2ThetaBelowNode11112132 : + adaptiveCoverCheck 10 thetaBelowCell11112132 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112132 + e24KC2ThetaBelowLeaf111121320 e24KC2ThetaBelowLeaf111121321 e24KC2ThetaBelowLeaf111121322 + e24KC2ThetaBelowLeaf111121323 + +theorem e24KC2ThetaBelowNode11112133 : + adaptiveCoverCheck 10 thetaBelowCell11112133 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112133 + e24KC2ThetaBelowLeaf111121330 e24KC2ThetaBelowLeaf111121331 e24KC2ThetaBelowLeaf111121332 + e24KC2ThetaBelowLeaf111121333 + +theorem e24KC2ThetaBelowNode11112200 : + adaptiveCoverCheck 10 thetaBelowCell11112200 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112200 + e24KC2ThetaBelowLeaf111122000 e24KC2ThetaBelowLeaf111122001 e24KC2ThetaBelowLeaf111122002 + e24KC2ThetaBelowLeaf111122003 + +theorem e24KC2ThetaBelowNode11112201 : + adaptiveCoverCheck 10 thetaBelowCell11112201 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112201 + e24KC2ThetaBelowLeaf111122010 e24KC2ThetaBelowLeaf111122011 e24KC2ThetaBelowLeaf111122012 + e24KC2ThetaBelowLeaf111122013 + +theorem e24KC2ThetaBelowNode11112210 : + adaptiveCoverCheck 10 thetaBelowCell11112210 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112210 + e24KC2ThetaBelowLeaf111122100 e24KC2ThetaBelowLeaf111122101 e24KC2ThetaBelowLeaf111122102 + e24KC2ThetaBelowLeaf111122103 + +theorem e24KC2ThetaBelowNode11112211 : + adaptiveCoverCheck 10 thetaBelowCell11112211 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112211 + e24KC2ThetaBelowLeaf111122110 e24KC2ThetaBelowLeaf111122111 e24KC2ThetaBelowLeaf111122112 + e24KC2ThetaBelowLeaf111122113 + +theorem e24KC2ThetaBelowNode11112212 : + adaptiveCoverCheck 10 thetaBelowCell11112212 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112212 + e24KC2ThetaBelowLeaf111122120 e24KC2ThetaBelowLeaf111122121 e24KC2ThetaBelowLeaf111122122 + e24KC2ThetaBelowLeaf111122123 + +theorem e24KC2ThetaBelowNode11112213 : + adaptiveCoverCheck 10 thetaBelowCell11112213 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112213 + e24KC2ThetaBelowLeaf111122130 e24KC2ThetaBelowLeaf111122131 e24KC2ThetaBelowLeaf111122132 + e24KC2ThetaBelowLeaf111122133 + +theorem e24KC2ThetaBelowNode11112300 : + adaptiveCoverCheck 10 thetaBelowCell11112300 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112300 + e24KC2ThetaBelowLeaf111123000 e24KC2ThetaBelowLeaf111123001 e24KC2ThetaBelowLeaf111123002 + e24KC2ThetaBelowLeaf111123003 + +theorem e24KC2ThetaBelowNode11112301 : + adaptiveCoverCheck 10 thetaBelowCell11112301 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112301 + e24KC2ThetaBelowLeaf111123010 e24KC2ThetaBelowLeaf111123011 e24KC2ThetaBelowLeaf111123012 + e24KC2ThetaBelowLeaf111123013 + +theorem e24KC2ThetaBelowNode11112302 : + adaptiveCoverCheck 10 thetaBelowCell11112302 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112302 + e24KC2ThetaBelowLeaf111123020 e24KC2ThetaBelowLeaf111123021 e24KC2ThetaBelowLeaf111123022 + e24KC2ThetaBelowLeaf111123023 + +theorem e24KC2ThetaBelowNode11112303 : + adaptiveCoverCheck 10 thetaBelowCell11112303 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112303 + e24KC2ThetaBelowLeaf111123030 e24KC2ThetaBelowLeaf111123031 e24KC2ThetaBelowLeaf111123032 + e24KC2ThetaBelowLeaf111123033 + +theorem e24KC2ThetaBelowNode11112310 : + adaptiveCoverCheck 10 thetaBelowCell11112310 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112310 + e24KC2ThetaBelowLeaf111123100 e24KC2ThetaBelowLeaf111123101 e24KC2ThetaBelowLeaf111123102 + e24KC2ThetaBelowLeaf111123103 + +theorem e24KC2ThetaBelowNode11112311 : + adaptiveCoverCheck 10 thetaBelowCell11112311 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112311 + e24KC2ThetaBelowLeaf111123110 e24KC2ThetaBelowLeaf111123111 e24KC2ThetaBelowLeaf111123112 + e24KC2ThetaBelowLeaf111123113 + +theorem e24KC2ThetaBelowNode11112312 : + adaptiveCoverCheck 10 thetaBelowCell11112312 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112312 + e24KC2ThetaBelowLeaf111123120 e24KC2ThetaBelowLeaf111123121 e24KC2ThetaBelowLeaf111123122 + e24KC2ThetaBelowLeaf111123123 + +theorem e24KC2ThetaBelowNode11112313 : + adaptiveCoverCheck 10 thetaBelowCell11112313 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11112313 + e24KC2ThetaBelowLeaf111123130 e24KC2ThetaBelowLeaf111123131 e24KC2ThetaBelowLeaf111123132 + e24KC2ThetaBelowLeaf111123133 + +theorem e24KC2ThetaBelowNode11113022 : + adaptiveCoverCheck 10 thetaBelowCell11113022 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113022 + e24KC2ThetaBelowLeaf111130220 e24KC2ThetaBelowLeaf111130221 e24KC2ThetaBelowLeaf111130222 + e24KC2ThetaBelowLeaf111130223 + +theorem e24KC2ThetaBelowNode11113023 : + adaptiveCoverCheck 10 thetaBelowCell11113023 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113023 + e24KC2ThetaBelowLeaf111130230 e24KC2ThetaBelowLeaf111130231 e24KC2ThetaBelowLeaf111130232 + e24KC2ThetaBelowLeaf111130233 + +theorem e24KC2ThetaBelowNode11113032 : + adaptiveCoverCheck 10 thetaBelowCell11113032 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113032 + e24KC2ThetaBelowLeaf111130320 e24KC2ThetaBelowLeaf111130321 e24KC2ThetaBelowLeaf111130322 + e24KC2ThetaBelowLeaf111130323 + +theorem e24KC2ThetaBelowNode11113033 : + adaptiveCoverCheck 10 thetaBelowCell11113033 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113033 + e24KC2ThetaBelowLeaf111130330 e24KC2ThetaBelowLeaf111130331 e24KC2ThetaBelowLeaf111130332 + e24KC2ThetaBelowLeaf111130333 + +theorem e24KC2ThetaBelowNode11113122 : + adaptiveCoverCheck 10 thetaBelowCell11113122 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113122 + e24KC2ThetaBelowLeaf111131220 e24KC2ThetaBelowLeaf111131221 e24KC2ThetaBelowLeaf111131222 + e24KC2ThetaBelowLeaf111131223 + +theorem e24KC2ThetaBelowNode11113123 : + adaptiveCoverCheck 10 thetaBelowCell11113123 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113123 + e24KC2ThetaBelowLeaf111131230 e24KC2ThetaBelowLeaf111131231 e24KC2ThetaBelowLeaf111131232 + e24KC2ThetaBelowLeaf111131233 + +theorem e24KC2ThetaBelowNode11113132 : + adaptiveCoverCheck 10 thetaBelowCell11113132 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113132 + e24KC2ThetaBelowLeaf111131320 e24KC2ThetaBelowLeaf111131321 e24KC2ThetaBelowLeaf111131322 + e24KC2ThetaBelowLeaf111131323 + +theorem e24KC2ThetaBelowNode11113133 : + adaptiveCoverCheck 10 thetaBelowCell11113133 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113133 + e24KC2ThetaBelowLeaf111131330 e24KC2ThetaBelowLeaf111131331 e24KC2ThetaBelowLeaf111131332 + e24KC2ThetaBelowLeaf111131333 + +theorem e24KC2ThetaBelowNode11113200 : + adaptiveCoverCheck 10 thetaBelowCell11113200 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113200 + e24KC2ThetaBelowLeaf111132000 e24KC2ThetaBelowLeaf111132001 e24KC2ThetaBelowLeaf111132002 + e24KC2ThetaBelowLeaf111132003 + +theorem e24KC2ThetaBelowNode11113201 : + adaptiveCoverCheck 10 thetaBelowCell11113201 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113201 + e24KC2ThetaBelowLeaf111132010 e24KC2ThetaBelowLeaf111132011 e24KC2ThetaBelowLeaf111132012 + e24KC2ThetaBelowLeaf111132013 + +theorem e24KC2ThetaBelowNode11113202 : + adaptiveCoverCheck 10 thetaBelowCell11113202 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113202 + e24KC2ThetaBelowLeaf111132020 e24KC2ThetaBelowLeaf111132021 e24KC2ThetaBelowLeaf111132022 + e24KC2ThetaBelowLeaf111132023 + +theorem e24KC2ThetaBelowNode11113203 : + adaptiveCoverCheck 10 thetaBelowCell11113203 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113203 + e24KC2ThetaBelowLeaf111132030 e24KC2ThetaBelowLeaf111132031 e24KC2ThetaBelowLeaf111132032 + e24KC2ThetaBelowLeaf111132033 + +theorem e24KC2ThetaBelowNode11113210 : + adaptiveCoverCheck 10 thetaBelowCell11113210 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113210 + e24KC2ThetaBelowLeaf111132100 e24KC2ThetaBelowLeaf111132101 e24KC2ThetaBelowLeaf111132102 + e24KC2ThetaBelowLeaf111132103 + +theorem e24KC2ThetaBelowNode11113211 : + adaptiveCoverCheck 10 thetaBelowCell11113211 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113211 + e24KC2ThetaBelowLeaf111132110 e24KC2ThetaBelowLeaf111132111 e24KC2ThetaBelowLeaf111132112 + e24KC2ThetaBelowLeaf111132113 + +theorem e24KC2ThetaBelowNode11113212 : + adaptiveCoverCheck 10 thetaBelowCell11113212 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113212 + e24KC2ThetaBelowLeaf111132120 e24KC2ThetaBelowLeaf111132121 e24KC2ThetaBelowLeaf111132122 + e24KC2ThetaBelowLeaf111132123 + +theorem e24KC2ThetaBelowNode11113213 : + adaptiveCoverCheck 10 thetaBelowCell11113213 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113213 + e24KC2ThetaBelowLeaf111132130 e24KC2ThetaBelowLeaf111132131 e24KC2ThetaBelowLeaf111132132 + e24KC2ThetaBelowLeaf111132133 + +theorem e24KC2ThetaBelowNode11113300 : + adaptiveCoverCheck 10 thetaBelowCell11113300 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113300 + e24KC2ThetaBelowLeaf111133000 e24KC2ThetaBelowLeaf111133001 e24KC2ThetaBelowLeaf111133002 + e24KC2ThetaBelowLeaf111133003 + +theorem e24KC2ThetaBelowNode11113301 : + adaptiveCoverCheck 10 thetaBelowCell11113301 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113301 + e24KC2ThetaBelowLeaf111133010 e24KC2ThetaBelowLeaf111133011 e24KC2ThetaBelowLeaf111133012 + e24KC2ThetaBelowLeaf111133013 + +theorem e24KC2ThetaBelowNode11113302 : + adaptiveCoverCheck 10 thetaBelowCell11113302 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113302 + e24KC2ThetaBelowLeaf111133020 e24KC2ThetaBelowLeaf111133021 e24KC2ThetaBelowLeaf111133022 + e24KC2ThetaBelowLeaf111133023 + +theorem e24KC2ThetaBelowNode11113303 : + adaptiveCoverCheck 10 thetaBelowCell11113303 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113303 + e24KC2ThetaBelowLeaf111133030 e24KC2ThetaBelowLeaf111133031 e24KC2ThetaBelowLeaf111133032 + e24KC2ThetaBelowLeaf111133033 + +theorem e24KC2ThetaBelowNode11113310 : + adaptiveCoverCheck 10 thetaBelowCell11113310 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113310 + e24KC2ThetaBelowLeaf111133100 e24KC2ThetaBelowLeaf111133101 e24KC2ThetaBelowLeaf111133102 + e24KC2ThetaBelowLeaf111133103 + +theorem e24KC2ThetaBelowNode11113311 : + adaptiveCoverCheck 10 thetaBelowCell11113311 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113311 + e24KC2ThetaBelowLeaf111133110 e24KC2ThetaBelowLeaf111133111 e24KC2ThetaBelowLeaf111133112 + e24KC2ThetaBelowLeaf111133113 + +theorem e24KC2ThetaBelowNode11113312 : + adaptiveCoverCheck 10 thetaBelowCell11113312 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113312 + e24KC2ThetaBelowLeaf111133120 e24KC2ThetaBelowLeaf111133121 e24KC2ThetaBelowLeaf111133122 + e24KC2ThetaBelowLeaf111133123 + +theorem e24KC2ThetaBelowNode11113313 : + adaptiveCoverCheck 10 thetaBelowCell11113313 = true := + adaptiveCoverCheck_succ_of_children 9 thetaBelowCell11113313 + e24KC2ThetaBelowLeaf111133130 e24KC2ThetaBelowLeaf111133131 e24KC2ThetaBelowLeaf111133132 + e24KC2ThetaBelowLeaf111133133 + +theorem e24KC2ThetaBelowNode1011303 : + adaptiveCoverCheck 11 (childHH (childLL (childHH thetaBelowCell1011))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLL (childHH thetaBelowCell1011))) + e24KC2ThetaBelowLeaf10113030 e24KC2ThetaBelowLeaf10113031 e24KC2ThetaBelowLeaf10113032 + e24KC2ThetaBelowLeaf10113033 + +theorem e24KC2ThetaBelowNode1011311 : + adaptiveCoverCheck 11 (childLH (childLH (childHH thetaBelowCell1011))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childLH (childHH thetaBelowCell1011))) + e24KC2ThetaBelowLeaf10113110 e24KC2ThetaBelowLeaf10113111 e24KC2ThetaBelowLeaf10113112 + e24KC2ThetaBelowLeaf10113113 + +theorem e24KC2ThetaBelowNode1011312 : + adaptiveCoverCheck 11 (childHL (childLH (childHH thetaBelowCell1011))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLH (childHH thetaBelowCell1011))) + e24KC2ThetaBelowLeaf10113120 e24KC2ThetaBelowLeaf10113121 e24KC2ThetaBelowLeaf10113122 + e24KC2ThetaBelowLeaf10113123 + +theorem e24KC2ThetaBelowNode1011313 : + adaptiveCoverCheck 11 (childHH (childLH (childHH thetaBelowCell1011))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLH (childHH thetaBelowCell1011))) + e24KC2ThetaBelowLeaf10113130 e24KC2ThetaBelowLeaf10113131 e24KC2ThetaBelowLeaf10113132 + e24KC2ThetaBelowLeaf10113133 + +theorem e24KC2ThetaBelowNode1100032 : + adaptiveCoverCheck 11 (childHL (childHH (childLL thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childHH (childLL thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11000320 e24KC2ThetaBelowLeaf11000321 e24KC2ThetaBelowLeaf11000322 + e24KC2ThetaBelowLeaf11000323 + +theorem e24KC2ThetaBelowNode1100033 : + adaptiveCoverCheck 11 (childHH (childHH (childLL thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childHH (childLL thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11000330 e24KC2ThetaBelowLeaf11000331 e24KC2ThetaBelowLeaf11000332 + e24KC2ThetaBelowLeaf11000333 + +theorem e24KC2ThetaBelowNode1100122 : + adaptiveCoverCheck 11 (childHL (childHL (childLH thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childHL (childLH thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11001220 e24KC2ThetaBelowLeaf11001221 e24KC2ThetaBelowLeaf11001222 + e24KC2ThetaBelowLeaf11001223 + +theorem e24KC2ThetaBelowNode1100123 : + adaptiveCoverCheck 11 (childHH (childHL (childLH thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childHL (childLH thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11001230 e24KC2ThetaBelowLeaf11001231 e24KC2ThetaBelowLeaf11001232 + e24KC2ThetaBelowLeaf11001233 + +theorem e24KC2ThetaBelowNode1100132 : + adaptiveCoverCheck 11 (childHL (childHH (childLH thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childHH (childLH thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11001320 e24KC2ThetaBelowLeaf11001321 e24KC2ThetaBelowLeaf11001322 + e24KC2ThetaBelowLeaf11001323 + +theorem e24KC2ThetaBelowNode1100133 : + adaptiveCoverCheck 11 (childHH (childHH (childLH thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childHH (childLH thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11001330 e24KC2ThetaBelowLeaf11001331 e24KC2ThetaBelowLeaf11001332 + e24KC2ThetaBelowLeaf11001333 + +theorem e24KC2ThetaBelowNode1100200 : + adaptiveCoverCheck 11 (childLL (childLL (childHL thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childLL (childHL thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11002000 e24KC2ThetaBelowLeaf11002001 e24KC2ThetaBelowLeaf11002002 + e24KC2ThetaBelowLeaf11002003 + +theorem e24KC2ThetaBelowNode1100201 : + adaptiveCoverCheck 11 (childLH (childLL (childHL thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childLL (childHL thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11002010 e24KC2ThetaBelowLeaf11002011 e24KC2ThetaBelowLeaf11002012 + e24KC2ThetaBelowLeaf11002013 + +theorem e24KC2ThetaBelowNode1100202 : + adaptiveCoverCheck 11 (childHL (childLL (childHL thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLL (childHL thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11002020 e24KC2ThetaBelowLeaf11002021 e24KC2ThetaBelowLeaf11002022 + e24KC2ThetaBelowLeaf11002023 + +theorem e24KC2ThetaBelowNode1100203 : + adaptiveCoverCheck 11 (childHH (childLL (childHL thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLL (childHL thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11002030 e24KC2ThetaBelowLeaf11002031 e24KC2ThetaBelowLeaf11002032 + e24KC2ThetaBelowLeaf11002033 + +theorem e24KC2ThetaBelowNode1100210 : + adaptiveCoverCheck 11 (childLL (childLH (childHL thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childLH (childHL thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11002100 e24KC2ThetaBelowLeaf11002101 e24KC2ThetaBelowLeaf11002102 + e24KC2ThetaBelowLeaf11002103 + +theorem e24KC2ThetaBelowNode1100211 : + adaptiveCoverCheck 11 (childLH (childLH (childHL thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childLH (childHL thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11002110 e24KC2ThetaBelowLeaf11002111 e24KC2ThetaBelowLeaf11002112 + e24KC2ThetaBelowLeaf11002113 + +theorem e24KC2ThetaBelowNode1100212 : + adaptiveCoverCheck 11 (childHL (childLH (childHL thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLH (childHL thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11002120 e24KC2ThetaBelowLeaf11002121 e24KC2ThetaBelowLeaf11002122 + e24KC2ThetaBelowLeaf11002123 + +theorem e24KC2ThetaBelowNode1100213 : + adaptiveCoverCheck 11 (childHH (childLH (childHL thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLH (childHL thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11002130 e24KC2ThetaBelowLeaf11002131 e24KC2ThetaBelowLeaf11002132 + e24KC2ThetaBelowLeaf11002133 + +theorem e24KC2ThetaBelowNode1100300 : + adaptiveCoverCheck 11 (childLL (childLL (childHH thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childLL (childHH thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11003000 e24KC2ThetaBelowLeaf11003001 e24KC2ThetaBelowLeaf11003002 + e24KC2ThetaBelowLeaf11003003 + +theorem e24KC2ThetaBelowNode1100301 : + adaptiveCoverCheck 11 (childLH (childLL (childHH thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childLL (childHH thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11003010 e24KC2ThetaBelowLeaf11003011 e24KC2ThetaBelowLeaf11003012 + e24KC2ThetaBelowLeaf11003013 + +theorem e24KC2ThetaBelowNode1100302 : + adaptiveCoverCheck 11 (childHL (childLL (childHH thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLL (childHH thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11003020 e24KC2ThetaBelowLeaf11003021 e24KC2ThetaBelowLeaf11003022 + e24KC2ThetaBelowLeaf11003023 + +theorem e24KC2ThetaBelowNode1100303 : + adaptiveCoverCheck 11 (childHH (childLL (childHH thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLL (childHH thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11003030 e24KC2ThetaBelowLeaf11003031 e24KC2ThetaBelowLeaf11003032 + e24KC2ThetaBelowLeaf11003033 + +theorem e24KC2ThetaBelowNode1100310 : + adaptiveCoverCheck 11 (childLL (childLH (childHH thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childLH (childHH thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11003100 e24KC2ThetaBelowLeaf11003101 e24KC2ThetaBelowLeaf11003102 + e24KC2ThetaBelowLeaf11003103 + +theorem e24KC2ThetaBelowNode1100311 : + adaptiveCoverCheck 11 (childLH (childLH (childHH thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childLH (childHH thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11003110 e24KC2ThetaBelowLeaf11003111 e24KC2ThetaBelowLeaf11003112 + e24KC2ThetaBelowLeaf11003113 + +theorem e24KC2ThetaBelowNode1100312 : + adaptiveCoverCheck 11 (childHL (childLH (childHH thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLH (childHH thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11003120 e24KC2ThetaBelowLeaf11003121 e24KC2ThetaBelowLeaf11003122 + e24KC2ThetaBelowLeaf11003123 + +theorem e24KC2ThetaBelowNode1100313 : + adaptiveCoverCheck 11 (childHH (childLH (childHH thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLH (childHH thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11003130 e24KC2ThetaBelowLeaf11003131 e24KC2ThetaBelowLeaf11003132 + e24KC2ThetaBelowLeaf11003133 + +theorem e24KC2ThetaBelowNode1100330 : + adaptiveCoverCheck 11 (childLL (childHH (childHH thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childHH (childHH thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11003300 e24KC2ThetaBelowLeaf11003301 e24KC2ThetaBelowLeaf11003302 + e24KC2ThetaBelowLeaf11003303 + +theorem e24KC2ThetaBelowNode1100331 : + adaptiveCoverCheck 11 (childLH (childHH (childHH thetaBelowCell1100))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childHH (childHH thetaBelowCell1100))) + e24KC2ThetaBelowLeaf11003310 e24KC2ThetaBelowLeaf11003311 e24KC2ThetaBelowLeaf11003312 + e24KC2ThetaBelowLeaf11003313 + +theorem e24KC2ThetaBelowNode1101022 : + adaptiveCoverCheck 11 (childHL (childHL (childLL thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childHL (childLL thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11010220 e24KC2ThetaBelowLeaf11010221 e24KC2ThetaBelowLeaf11010222 + e24KC2ThetaBelowLeaf11010223 + +theorem e24KC2ThetaBelowNode1101023 : + adaptiveCoverCheck 11 (childHH (childHL (childLL thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childHL (childLL thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11010230 e24KC2ThetaBelowLeaf11010231 e24KC2ThetaBelowLeaf11010232 + e24KC2ThetaBelowLeaf11010233 + +theorem e24KC2ThetaBelowNode1101200 : + adaptiveCoverCheck 11 (childLL (childLL (childHL thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childLL (childHL thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11012000 e24KC2ThetaBelowLeaf11012001 e24KC2ThetaBelowLeaf11012002 + e24KC2ThetaBelowLeaf11012003 + +theorem e24KC2ThetaBelowNode1101201 : + adaptiveCoverCheck 11 (childLH (childLL (childHL thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childLL (childHL thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11012010 e24KC2ThetaBelowLeaf11012011 e24KC2ThetaBelowLeaf11012012 + e24KC2ThetaBelowLeaf11012013 + +theorem e24KC2ThetaBelowNode1101202 : + adaptiveCoverCheck 11 (childHL (childLL (childHL thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLL (childHL thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11012020 e24KC2ThetaBelowLeaf11012021 e24KC2ThetaBelowLeaf11012022 + e24KC2ThetaBelowLeaf11012023 + +theorem e24KC2ThetaBelowNode1101203 : + adaptiveCoverCheck 11 (childHH (childLL (childHL thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLL (childHL thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11012030 e24KC2ThetaBelowLeaf11012031 e24KC2ThetaBelowLeaf11012032 + e24KC2ThetaBelowLeaf11012033 + +theorem e24KC2ThetaBelowNode1101210 : + adaptiveCoverCheck 11 (childLL (childLH (childHL thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childLH (childHL thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11012100 e24KC2ThetaBelowLeaf11012101 e24KC2ThetaBelowLeaf11012102 + e24KC2ThetaBelowLeaf11012103 + +theorem e24KC2ThetaBelowNode1101211 : + adaptiveCoverCheck 11 (childLH (childLH (childHL thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childLH (childHL thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11012110 e24KC2ThetaBelowLeaf11012111 e24KC2ThetaBelowLeaf11012112 + e24KC2ThetaBelowLeaf11012113 + +theorem e24KC2ThetaBelowNode1101212 : + adaptiveCoverCheck 11 (childHL (childLH (childHL thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLH (childHL thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11012120 e24KC2ThetaBelowLeaf11012121 e24KC2ThetaBelowLeaf11012122 + e24KC2ThetaBelowLeaf11012123 + +theorem e24KC2ThetaBelowNode1101213 : + adaptiveCoverCheck 11 (childHH (childLH (childHL thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLH (childHL thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11012130 e24KC2ThetaBelowLeaf11012131 e24KC2ThetaBelowNode11012132 + e24KC2ThetaBelowNode11012133 + +theorem e24KC2ThetaBelowNode1101220 : + adaptiveCoverCheck 11 (childLL (childHL (childHL thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childHL (childHL thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11012200 e24KC2ThetaBelowLeaf11012201 e24KC2ThetaBelowLeaf11012202 + e24KC2ThetaBelowLeaf11012203 + +theorem e24KC2ThetaBelowNode1101221 : + adaptiveCoverCheck 11 (childLH (childHL (childHL thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childHL (childHL thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11012210 e24KC2ThetaBelowLeaf11012211 e24KC2ThetaBelowLeaf11012212 + e24KC2ThetaBelowLeaf11012213 + +theorem e24KC2ThetaBelowNode1101230 : + adaptiveCoverCheck 11 (childLL (childHH (childHL thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childHH (childHL thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11012300 e24KC2ThetaBelowLeaf11012301 e24KC2ThetaBelowLeaf11012302 + e24KC2ThetaBelowLeaf11012303 + +theorem e24KC2ThetaBelowNode1101231 : + adaptiveCoverCheck 11 (childLH (childHH (childHL thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childHH (childHL thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11012310 e24KC2ThetaBelowLeaf11012311 e24KC2ThetaBelowLeaf11012312 + e24KC2ThetaBelowLeaf11012313 + +theorem e24KC2ThetaBelowNode1101300 : + adaptiveCoverCheck 11 (childLL (childLL (childHH thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childLL (childHH thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11013000 e24KC2ThetaBelowLeaf11013001 e24KC2ThetaBelowLeaf11013002 + e24KC2ThetaBelowLeaf11013003 + +theorem e24KC2ThetaBelowNode1101301 : + adaptiveCoverCheck 11 (childLH (childLL (childHH thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childLL (childHH thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11013010 e24KC2ThetaBelowLeaf11013011 e24KC2ThetaBelowLeaf11013012 + e24KC2ThetaBelowNode11013013 + +theorem e24KC2ThetaBelowNode1101302 : + adaptiveCoverCheck 11 (childHL (childLL (childHH thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLL (childHH thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11013020 e24KC2ThetaBelowNode11013021 e24KC2ThetaBelowNode11013022 + e24KC2ThetaBelowNode11013023 + +theorem e24KC2ThetaBelowNode1101303 : + adaptiveCoverCheck 11 (childHH (childLL (childHH thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLL (childHH thetaBelowCell1101))) + e24KC2ThetaBelowNode11013030 e24KC2ThetaBelowNode11013031 e24KC2ThetaBelowNode11013032 + e24KC2ThetaBelowNode11013033 + +theorem e24KC2ThetaBelowNode1101310 : + adaptiveCoverCheck 11 (childLL (childLH (childHH thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childLH (childHH thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11013100 e24KC2ThetaBelowLeaf11013101 e24KC2ThetaBelowNode11013102 + e24KC2ThetaBelowNode11013103 + +theorem e24KC2ThetaBelowNode1101311 : + adaptiveCoverCheck 11 (childLH (childLH (childHH thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childLH (childHH thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11013110 e24KC2ThetaBelowLeaf11013111 e24KC2ThetaBelowNode11013112 + e24KC2ThetaBelowNode11013113 + +theorem e24KC2ThetaBelowNode1101312 : + adaptiveCoverCheck 11 (childHL (childLH (childHH thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLH (childHH thetaBelowCell1101))) + e24KC2ThetaBelowNode11013120 e24KC2ThetaBelowNode11013121 e24KC2ThetaBelowNode11013122 + e24KC2ThetaBelowNode11013123 + +theorem e24KC2ThetaBelowNode1101313 : + adaptiveCoverCheck 11 (childHH (childLH (childHH thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLH (childHH thetaBelowCell1101))) + e24KC2ThetaBelowNode11013130 e24KC2ThetaBelowNode11013131 e24KC2ThetaBelowNode11013132 + e24KC2ThetaBelowNode11013133 + +theorem e24KC2ThetaBelowNode1101320 : + adaptiveCoverCheck 11 (childLL (childHL (childHH thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childHL (childHH thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11013200 e24KC2ThetaBelowLeaf11013201 e24KC2ThetaBelowLeaf11013202 + e24KC2ThetaBelowLeaf11013203 + +theorem e24KC2ThetaBelowNode1101321 : + adaptiveCoverCheck 11 (childLH (childHL (childHH thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childHL (childHH thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11013210 e24KC2ThetaBelowLeaf11013211 e24KC2ThetaBelowLeaf11013212 + e24KC2ThetaBelowLeaf11013213 + +theorem e24KC2ThetaBelowNode1101330 : + adaptiveCoverCheck 11 (childLL (childHH (childHH thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childHH (childHH thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11013300 e24KC2ThetaBelowLeaf11013301 e24KC2ThetaBelowLeaf11013302 + e24KC2ThetaBelowLeaf11013303 + +theorem e24KC2ThetaBelowNode1101331 : + adaptiveCoverCheck 11 (childLH (childHH (childHH thetaBelowCell1101))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childHH (childHH thetaBelowCell1101))) + e24KC2ThetaBelowLeaf11013310 e24KC2ThetaBelowLeaf11013311 e24KC2ThetaBelowLeaf11013312 + e24KC2ThetaBelowLeaf11013313 + +theorem e24KC2ThetaBelowNode1110200 : + adaptiveCoverCheck 11 (childLL (childLL (childHL thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childLL (childHL thetaBelowCell1110))) + e24KC2ThetaBelowLeaf11102000 e24KC2ThetaBelowLeaf11102001 e24KC2ThetaBelowNode11102002 + e24KC2ThetaBelowNode11102003 + +theorem e24KC2ThetaBelowNode1110201 : + adaptiveCoverCheck 11 (childLH (childLL (childHL thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childLL (childHL thetaBelowCell1110))) + e24KC2ThetaBelowLeaf11102010 e24KC2ThetaBelowLeaf11102011 e24KC2ThetaBelowNode11102012 + e24KC2ThetaBelowNode11102013 + +theorem e24KC2ThetaBelowNode1110202 : + adaptiveCoverCheck 11 (childHL (childLL (childHL thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLL (childHL thetaBelowCell1110))) + e24KC2ThetaBelowNode11102020 e24KC2ThetaBelowNode11102021 e24KC2ThetaBelowNode11102022 + e24KC2ThetaBelowNode11102023 + +theorem e24KC2ThetaBelowNode1110203 : + adaptiveCoverCheck 11 (childHH (childLL (childHL thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLL (childHL thetaBelowCell1110))) + e24KC2ThetaBelowNode11102030 e24KC2ThetaBelowNode11102031 e24KC2ThetaBelowNode11102032 + e24KC2ThetaBelowNode11102033 + +theorem e24KC2ThetaBelowNode1110210 : + adaptiveCoverCheck 11 (childLL (childLH (childHL thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childLH (childHL thetaBelowCell1110))) + e24KC2ThetaBelowLeaf11102100 e24KC2ThetaBelowLeaf11102101 e24KC2ThetaBelowLeaf11102102 + e24KC2ThetaBelowLeaf11102103 + +theorem e24KC2ThetaBelowNode1110211 : + adaptiveCoverCheck 11 (childLH (childLH (childHL thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childLH (childHL thetaBelowCell1110))) + e24KC2ThetaBelowLeaf11102110 e24KC2ThetaBelowLeaf11102111 e24KC2ThetaBelowLeaf11102112 + e24KC2ThetaBelowLeaf11102113 + +theorem e24KC2ThetaBelowNode1110212 : + adaptiveCoverCheck 11 (childHL (childLH (childHL thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLH (childHL thetaBelowCell1110))) + e24KC2ThetaBelowNode11102120 e24KC2ThetaBelowNode11102121 e24KC2ThetaBelowNode11102122 + e24KC2ThetaBelowNode11102123 + +theorem e24KC2ThetaBelowNode1110213 : + adaptiveCoverCheck 11 (childHH (childLH (childHL thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLH (childHL thetaBelowCell1110))) + e24KC2ThetaBelowNode11102130 e24KC2ThetaBelowNode11102131 e24KC2ThetaBelowNode11102132 + e24KC2ThetaBelowNode11102133 + +theorem e24KC2ThetaBelowNode1110220 : + adaptiveCoverCheck 11 (childLL (childHL (childHL thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childHL (childHL thetaBelowCell1110))) + e24KC2ThetaBelowNode11102200 e24KC2ThetaBelowNode11102201 e24KC2ThetaBelowLeaf11102202 + e24KC2ThetaBelowLeaf11102203 + +theorem e24KC2ThetaBelowNode1110221 : + adaptiveCoverCheck 11 (childLH (childHL (childHL thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childHL (childHL thetaBelowCell1110))) + e24KC2ThetaBelowNode11102210 e24KC2ThetaBelowNode11102211 e24KC2ThetaBelowLeaf11102212 + e24KC2ThetaBelowLeaf11102213 + +theorem e24KC2ThetaBelowNode1110230 : + adaptiveCoverCheck 11 (childLL (childHH (childHL thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childHH (childHL thetaBelowCell1110))) + e24KC2ThetaBelowNode11102300 e24KC2ThetaBelowNode11102301 e24KC2ThetaBelowLeaf11102302 + e24KC2ThetaBelowLeaf11102303 + +theorem e24KC2ThetaBelowNode1110231 : + adaptiveCoverCheck 11 (childLH (childHH (childHL thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childHH (childHL thetaBelowCell1110))) + e24KC2ThetaBelowNode11102310 e24KC2ThetaBelowNode11102311 e24KC2ThetaBelowLeaf11102312 + e24KC2ThetaBelowLeaf11102313 + +theorem e24KC2ThetaBelowNode1110300 : + adaptiveCoverCheck 11 (childLL (childLL (childHH thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childLL (childHH thetaBelowCell1110))) + e24KC2ThetaBelowLeaf11103000 e24KC2ThetaBelowLeaf11103001 e24KC2ThetaBelowLeaf11103002 + e24KC2ThetaBelowLeaf11103003 + +theorem e24KC2ThetaBelowNode1110301 : + adaptiveCoverCheck 11 (childLH (childLL (childHH thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childLL (childHH thetaBelowCell1110))) + e24KC2ThetaBelowLeaf11103010 e24KC2ThetaBelowLeaf11103011 e24KC2ThetaBelowLeaf11103012 + e24KC2ThetaBelowLeaf11103013 + +theorem e24KC2ThetaBelowNode1110302 : + adaptiveCoverCheck 11 (childHL (childLL (childHH thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLL (childHH thetaBelowCell1110))) + e24KC2ThetaBelowNode11103020 e24KC2ThetaBelowNode11103021 e24KC2ThetaBelowNode11103022 + e24KC2ThetaBelowNode11103023 + +theorem e24KC2ThetaBelowNode1110303 : + adaptiveCoverCheck 11 (childHH (childLL (childHH thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLL (childHH thetaBelowCell1110))) + e24KC2ThetaBelowNode11103030 e24KC2ThetaBelowNode11103031 e24KC2ThetaBelowNode11103032 + e24KC2ThetaBelowNode11103033 + +theorem e24KC2ThetaBelowNode1110310 : + adaptiveCoverCheck 11 (childLL (childLH (childHH thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childLH (childHH thetaBelowCell1110))) + e24KC2ThetaBelowLeaf11103100 e24KC2ThetaBelowLeaf11103101 e24KC2ThetaBelowLeaf11103102 + e24KC2ThetaBelowLeaf11103103 + +theorem e24KC2ThetaBelowNode1110311 : + adaptiveCoverCheck 11 (childLH (childLH (childHH thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childLH (childHH thetaBelowCell1110))) + e24KC2ThetaBelowLeaf11103110 e24KC2ThetaBelowLeaf11103111 e24KC2ThetaBelowLeaf11103112 + e24KC2ThetaBelowLeaf11103113 + +theorem e24KC2ThetaBelowNode1110312 : + adaptiveCoverCheck 11 (childHL (childLH (childHH thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLH (childHH thetaBelowCell1110))) + e24KC2ThetaBelowNode11103120 e24KC2ThetaBelowNode11103121 e24KC2ThetaBelowNode11103122 + e24KC2ThetaBelowNode11103123 + +theorem e24KC2ThetaBelowNode1110313 : + adaptiveCoverCheck 11 (childHH (childLH (childHH thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLH (childHH thetaBelowCell1110))) + e24KC2ThetaBelowNode11103130 e24KC2ThetaBelowNode11103131 e24KC2ThetaBelowNode11103132 + e24KC2ThetaBelowNode11103133 + +theorem e24KC2ThetaBelowNode1110320 : + adaptiveCoverCheck 11 (childLL (childHL (childHH thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childHL (childHH thetaBelowCell1110))) + e24KC2ThetaBelowNode11103200 e24KC2ThetaBelowNode11103201 e24KC2ThetaBelowLeaf11103202 + e24KC2ThetaBelowLeaf11103203 + +theorem e24KC2ThetaBelowNode1110321 : + adaptiveCoverCheck 11 (childLH (childHL (childHH thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childHL (childHH thetaBelowCell1110))) + e24KC2ThetaBelowNode11103210 e24KC2ThetaBelowNode11103211 e24KC2ThetaBelowLeaf11103212 + e24KC2ThetaBelowLeaf11103213 + +theorem e24KC2ThetaBelowNode1110330 : + adaptiveCoverCheck 11 (childLL (childHH (childHH thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childHH (childHH thetaBelowCell1110))) + e24KC2ThetaBelowNode11103300 e24KC2ThetaBelowNode11103301 e24KC2ThetaBelowLeaf11103302 + e24KC2ThetaBelowLeaf11103303 + +theorem e24KC2ThetaBelowNode1110331 : + adaptiveCoverCheck 11 (childLH (childHH (childHH thetaBelowCell1110))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childHH (childHH thetaBelowCell1110))) + e24KC2ThetaBelowNode11103310 e24KC2ThetaBelowNode11103311 e24KC2ThetaBelowLeaf11103312 + e24KC2ThetaBelowLeaf11103313 + +theorem e24KC2ThetaBelowNode1111200 : + adaptiveCoverCheck 11 (childLL (childLL (childHL thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childLL (childHL thetaBelowCell1111))) + e24KC2ThetaBelowLeaf11112000 e24KC2ThetaBelowLeaf11112001 e24KC2ThetaBelowLeaf11112002 + e24KC2ThetaBelowLeaf11112003 + +theorem e24KC2ThetaBelowNode1111201 : + adaptiveCoverCheck 11 (childLH (childLL (childHL thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childLL (childHL thetaBelowCell1111))) + e24KC2ThetaBelowLeaf11112010 e24KC2ThetaBelowLeaf11112011 e24KC2ThetaBelowLeaf11112012 + e24KC2ThetaBelowLeaf11112013 + +theorem e24KC2ThetaBelowNode1111202 : + adaptiveCoverCheck 11 (childHL (childLL (childHL thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLL (childHL thetaBelowCell1111))) + e24KC2ThetaBelowNode11112020 e24KC2ThetaBelowNode11112021 e24KC2ThetaBelowNode11112022 + e24KC2ThetaBelowNode11112023 + +theorem e24KC2ThetaBelowNode1111203 : + adaptiveCoverCheck 11 (childHH (childLL (childHL thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLL (childHL thetaBelowCell1111))) + e24KC2ThetaBelowNode11112030 e24KC2ThetaBelowNode11112031 e24KC2ThetaBelowNode11112032 + e24KC2ThetaBelowNode11112033 + +theorem e24KC2ThetaBelowNode1111210 : + adaptiveCoverCheck 11 (childLL (childLH (childHL thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childLH (childHL thetaBelowCell1111))) + e24KC2ThetaBelowLeaf11112100 e24KC2ThetaBelowLeaf11112101 e24KC2ThetaBelowLeaf11112102 + e24KC2ThetaBelowLeaf11112103 + +theorem e24KC2ThetaBelowNode1111211 : + adaptiveCoverCheck 11 (childLH (childLH (childHL thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childLH (childHL thetaBelowCell1111))) + e24KC2ThetaBelowLeaf11112110 e24KC2ThetaBelowLeaf11112111 e24KC2ThetaBelowLeaf11112112 + e24KC2ThetaBelowLeaf11112113 + +theorem e24KC2ThetaBelowNode1111212 : + adaptiveCoverCheck 11 (childHL (childLH (childHL thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLH (childHL thetaBelowCell1111))) + e24KC2ThetaBelowNode11112120 e24KC2ThetaBelowNode11112121 e24KC2ThetaBelowNode11112122 + e24KC2ThetaBelowNode11112123 + +theorem e24KC2ThetaBelowNode1111213 : + adaptiveCoverCheck 11 (childHH (childLH (childHL thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLH (childHL thetaBelowCell1111))) + e24KC2ThetaBelowNode11112130 e24KC2ThetaBelowLeaf11112131 e24KC2ThetaBelowNode11112132 + e24KC2ThetaBelowNode11112133 + +theorem e24KC2ThetaBelowNode1111220 : + adaptiveCoverCheck 11 (childLL (childHL (childHL thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childHL (childHL thetaBelowCell1111))) + e24KC2ThetaBelowNode11112200 e24KC2ThetaBelowNode11112201 e24KC2ThetaBelowLeaf11112202 + e24KC2ThetaBelowLeaf11112203 + +theorem e24KC2ThetaBelowNode1111221 : + adaptiveCoverCheck 11 (childLH (childHL (childHL thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childHL (childHL thetaBelowCell1111))) + e24KC2ThetaBelowNode11112210 e24KC2ThetaBelowNode11112211 e24KC2ThetaBelowNode11112212 + e24KC2ThetaBelowNode11112213 + +theorem e24KC2ThetaBelowNode1111222 : + adaptiveCoverCheck 11 (childHL (childHL (childHL thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childHL (childHL thetaBelowCell1111))) + e24KC2ThetaBelowLeaf11112220 e24KC2ThetaBelowLeaf11112221 e24KC2ThetaBelowLeaf11112222 + e24KC2ThetaBelowLeaf11112223 + +theorem e24KC2ThetaBelowNode1111223 : + adaptiveCoverCheck 11 (childHH (childHL (childHL thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childHL (childHL thetaBelowCell1111))) + e24KC2ThetaBelowLeaf11112230 e24KC2ThetaBelowLeaf11112231 e24KC2ThetaBelowLeaf11112232 + e24KC2ThetaBelowLeaf11112233 + +theorem e24KC2ThetaBelowNode1111230 : + adaptiveCoverCheck 11 (childLL (childHH (childHL thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childHH (childHL thetaBelowCell1111))) + e24KC2ThetaBelowNode11112300 e24KC2ThetaBelowNode11112301 e24KC2ThetaBelowNode11112302 + e24KC2ThetaBelowNode11112303 + +theorem e24KC2ThetaBelowNode1111231 : + adaptiveCoverCheck 11 (childLH (childHH (childHL thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childHH (childHL thetaBelowCell1111))) + e24KC2ThetaBelowNode11112310 e24KC2ThetaBelowNode11112311 e24KC2ThetaBelowNode11112312 + e24KC2ThetaBelowNode11112313 + +theorem e24KC2ThetaBelowNode1111232 : + adaptiveCoverCheck 11 (childHL (childHH (childHL thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childHH (childHL thetaBelowCell1111))) + e24KC2ThetaBelowLeaf11112320 e24KC2ThetaBelowLeaf11112321 e24KC2ThetaBelowLeaf11112322 + e24KC2ThetaBelowLeaf11112323 + +theorem e24KC2ThetaBelowNode1111233 : + adaptiveCoverCheck 11 (childHH (childHH (childHL thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childHH (childHL thetaBelowCell1111))) + e24KC2ThetaBelowLeaf11112330 e24KC2ThetaBelowLeaf11112331 e24KC2ThetaBelowLeaf11112332 + e24KC2ThetaBelowLeaf11112333 + +theorem e24KC2ThetaBelowNode1111302 : + adaptiveCoverCheck 11 (childHL (childLL (childHH thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLL (childHH thetaBelowCell1111))) + e24KC2ThetaBelowLeaf11113020 e24KC2ThetaBelowLeaf11113021 e24KC2ThetaBelowNode11113022 + e24KC2ThetaBelowNode11113023 + +theorem e24KC2ThetaBelowNode1111303 : + adaptiveCoverCheck 11 (childHH (childLL (childHH thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLL (childHH thetaBelowCell1111))) + e24KC2ThetaBelowLeaf11113030 e24KC2ThetaBelowLeaf11113031 e24KC2ThetaBelowNode11113032 + e24KC2ThetaBelowNode11113033 + +theorem e24KC2ThetaBelowNode1111312 : + adaptiveCoverCheck 11 (childHL (childLH (childHH thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLH (childHH thetaBelowCell1111))) + e24KC2ThetaBelowLeaf11113120 e24KC2ThetaBelowLeaf11113121 e24KC2ThetaBelowNode11113122 + e24KC2ThetaBelowNode11113123 + +theorem e24KC2ThetaBelowNode1111313 : + adaptiveCoverCheck 11 (childHH (childLH (childHH thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLH (childHH thetaBelowCell1111))) + e24KC2ThetaBelowLeaf11113130 e24KC2ThetaBelowLeaf11113131 e24KC2ThetaBelowNode11113132 + e24KC2ThetaBelowNode11113133 + +theorem e24KC2ThetaBelowNode1111320 : + adaptiveCoverCheck 11 (childLL (childHL (childHH thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childHL (childHH thetaBelowCell1111))) + e24KC2ThetaBelowNode11113200 e24KC2ThetaBelowNode11113201 e24KC2ThetaBelowNode11113202 + e24KC2ThetaBelowNode11113203 + +theorem e24KC2ThetaBelowNode1111321 : + adaptiveCoverCheck 11 (childLH (childHL (childHH thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childHL (childHH thetaBelowCell1111))) + e24KC2ThetaBelowNode11113210 e24KC2ThetaBelowNode11113211 e24KC2ThetaBelowNode11113212 + e24KC2ThetaBelowNode11113213 + +theorem e24KC2ThetaBelowNode1111322 : + adaptiveCoverCheck 11 (childHL (childHL (childHH thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childHL (childHH thetaBelowCell1111))) + e24KC2ThetaBelowLeaf11113220 e24KC2ThetaBelowLeaf11113221 e24KC2ThetaBelowLeaf11113222 + e24KC2ThetaBelowLeaf11113223 + +theorem e24KC2ThetaBelowNode1111323 : + adaptiveCoverCheck 11 (childHH (childHL (childHH thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childHL (childHH thetaBelowCell1111))) + e24KC2ThetaBelowLeaf11113230 e24KC2ThetaBelowLeaf11113231 e24KC2ThetaBelowLeaf11113232 + e24KC2ThetaBelowLeaf11113233 + +theorem e24KC2ThetaBelowNode1111330 : + adaptiveCoverCheck 11 (childLL (childHH (childHH thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childHH (childHH thetaBelowCell1111))) + e24KC2ThetaBelowNode11113300 e24KC2ThetaBelowNode11113301 e24KC2ThetaBelowNode11113302 + e24KC2ThetaBelowNode11113303 + +theorem e24KC2ThetaBelowNode1111331 : + adaptiveCoverCheck 11 (childLH (childHH (childHH thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childHH (childHH thetaBelowCell1111))) + e24KC2ThetaBelowNode11113310 e24KC2ThetaBelowNode11113311 e24KC2ThetaBelowNode11113312 + e24KC2ThetaBelowNode11113313 + +theorem e24KC2ThetaBelowNode1111332 : + adaptiveCoverCheck 11 (childHL (childHH (childHH thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childHH (childHH thetaBelowCell1111))) + e24KC2ThetaBelowLeaf11113320 e24KC2ThetaBelowLeaf11113321 e24KC2ThetaBelowLeaf11113322 + e24KC2ThetaBelowLeaf11113323 + +theorem e24KC2ThetaBelowNode1111333 : + adaptiveCoverCheck 11 (childHH (childHH (childHH thetaBelowCell1111))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childHH (childHH thetaBelowCell1111))) + e24KC2ThetaBelowLeaf11113330 e24KC2ThetaBelowLeaf11113331 e24KC2ThetaBelowLeaf11113332 + e24KC2ThetaBelowLeaf11113333 + +theorem e24KC2ThetaBelowNode100113 : + adaptiveCoverCheck 12 (childHH (childLH thetaBelowCell1001)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH thetaBelowCell1001)) + e24KC2ThetaBelowLeaf1001130 e24KC2ThetaBelowLeaf1001131 e24KC2ThetaBelowLeaf1001132 + e24KC2ThetaBelowLeaf1001133 + +theorem e24KC2ThetaBelowNode100121 : + adaptiveCoverCheck 12 (childLH (childHL thetaBelowCell1001)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL thetaBelowCell1001)) + e24KC2ThetaBelowLeaf1001210 e24KC2ThetaBelowLeaf1001211 e24KC2ThetaBelowLeaf1001212 + e24KC2ThetaBelowLeaf1001213 + +theorem e24KC2ThetaBelowNode100130 : + adaptiveCoverCheck 12 (childLL (childHH thetaBelowCell1001)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH thetaBelowCell1001)) + e24KC2ThetaBelowLeaf1001300 e24KC2ThetaBelowLeaf1001301 e24KC2ThetaBelowLeaf1001302 + e24KC2ThetaBelowLeaf1001303 + +theorem e24KC2ThetaBelowNode100131 : + adaptiveCoverCheck 12 (childLH (childHH thetaBelowCell1001)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH thetaBelowCell1001)) + e24KC2ThetaBelowLeaf1001310 e24KC2ThetaBelowLeaf1001311 e24KC2ThetaBelowLeaf1001312 + e24KC2ThetaBelowLeaf1001313 + +theorem e24KC2ThetaBelowNode101001 : + adaptiveCoverCheck 12 (childLH (childLL thetaBelowCell1010)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childLL thetaBelowCell1010)) + e24KC2ThetaBelowLeaf1010010 e24KC2ThetaBelowLeaf1010011 e24KC2ThetaBelowLeaf1010012 + e24KC2ThetaBelowLeaf1010013 + +theorem e24KC2ThetaBelowNode101002 : + adaptiveCoverCheck 12 (childHL (childLL thetaBelowCell1010)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL thetaBelowCell1010)) + e24KC2ThetaBelowLeaf1010020 e24KC2ThetaBelowLeaf1010021 e24KC2ThetaBelowLeaf1010022 + e24KC2ThetaBelowLeaf1010023 + +theorem e24KC2ThetaBelowNode101003 : + adaptiveCoverCheck 12 (childHH (childLL thetaBelowCell1010)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL thetaBelowCell1010)) + e24KC2ThetaBelowLeaf1010030 e24KC2ThetaBelowLeaf1010031 e24KC2ThetaBelowLeaf1010032 + e24KC2ThetaBelowLeaf1010033 + +theorem e24KC2ThetaBelowNode101010 : + adaptiveCoverCheck 12 (childLL (childLH thetaBelowCell1010)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childLH thetaBelowCell1010)) + e24KC2ThetaBelowLeaf1010100 e24KC2ThetaBelowLeaf1010101 e24KC2ThetaBelowLeaf1010102 + e24KC2ThetaBelowLeaf1010103 + +theorem e24KC2ThetaBelowNode101011 : + adaptiveCoverCheck 12 (childLH (childLH thetaBelowCell1010)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childLH thetaBelowCell1010)) + e24KC2ThetaBelowLeaf1010110 e24KC2ThetaBelowLeaf1010111 e24KC2ThetaBelowLeaf1010112 + e24KC2ThetaBelowLeaf1010113 + +theorem e24KC2ThetaBelowNode101012 : + adaptiveCoverCheck 12 (childHL (childLH thetaBelowCell1010)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH thetaBelowCell1010)) + e24KC2ThetaBelowLeaf1010120 e24KC2ThetaBelowLeaf1010121 e24KC2ThetaBelowLeaf1010122 + e24KC2ThetaBelowLeaf1010123 + +theorem e24KC2ThetaBelowNode101013 : + adaptiveCoverCheck 12 (childHH (childLH thetaBelowCell1010)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH thetaBelowCell1010)) + e24KC2ThetaBelowLeaf1010130 e24KC2ThetaBelowLeaf1010131 e24KC2ThetaBelowLeaf1010132 + e24KC2ThetaBelowLeaf1010133 + +theorem e24KC2ThetaBelowNode101020 : + adaptiveCoverCheck 12 (childLL (childHL thetaBelowCell1010)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL thetaBelowCell1010)) + e24KC2ThetaBelowLeaf1010200 e24KC2ThetaBelowLeaf1010201 e24KC2ThetaBelowLeaf1010202 + e24KC2ThetaBelowLeaf1010203 + +theorem e24KC2ThetaBelowNode101021 : + adaptiveCoverCheck 12 (childLH (childHL thetaBelowCell1010)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL thetaBelowCell1010)) + e24KC2ThetaBelowLeaf1010210 e24KC2ThetaBelowLeaf1010211 e24KC2ThetaBelowLeaf1010212 + e24KC2ThetaBelowLeaf1010213 + +theorem e24KC2ThetaBelowNode101030 : + adaptiveCoverCheck 12 (childLL (childHH thetaBelowCell1010)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH thetaBelowCell1010)) + e24KC2ThetaBelowLeaf1010300 e24KC2ThetaBelowLeaf1010301 e24KC2ThetaBelowLeaf1010302 + e24KC2ThetaBelowLeaf1010303 + +theorem e24KC2ThetaBelowNode101031 : + adaptiveCoverCheck 12 (childLH (childHH thetaBelowCell1010)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH thetaBelowCell1010)) + e24KC2ThetaBelowLeaf1010310 e24KC2ThetaBelowLeaf1010311 e24KC2ThetaBelowLeaf1010312 + e24KC2ThetaBelowLeaf1010313 + +theorem e24KC2ThetaBelowNode101032 : + adaptiveCoverCheck 12 (childHL (childHH thetaBelowCell1010)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH thetaBelowCell1010)) + e24KC2ThetaBelowLeaf1010320 e24KC2ThetaBelowLeaf1010321 e24KC2ThetaBelowLeaf1010322 + e24KC2ThetaBelowLeaf1010323 + +theorem e24KC2ThetaBelowNode101033 : + adaptiveCoverCheck 12 (childHH (childHH thetaBelowCell1010)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH thetaBelowCell1010)) + e24KC2ThetaBelowLeaf1010330 e24KC2ThetaBelowLeaf1010331 e24KC2ThetaBelowLeaf1010332 + e24KC2ThetaBelowLeaf1010333 + +theorem e24KC2ThetaBelowNode101100 : + adaptiveCoverCheck 12 (childLL (childLL thetaBelowCell1011)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childLL thetaBelowCell1011)) + e24KC2ThetaBelowLeaf1011000 e24KC2ThetaBelowLeaf1011001 e24KC2ThetaBelowLeaf1011002 + e24KC2ThetaBelowLeaf1011003 + +theorem e24KC2ThetaBelowNode101102 : + adaptiveCoverCheck 12 (childHL (childLL thetaBelowCell1011)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL thetaBelowCell1011)) + e24KC2ThetaBelowLeaf1011020 e24KC2ThetaBelowLeaf1011021 e24KC2ThetaBelowLeaf1011022 + e24KC2ThetaBelowLeaf1011023 + +theorem e24KC2ThetaBelowNode101103 : + adaptiveCoverCheck 12 (childHH (childLL thetaBelowCell1011)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL thetaBelowCell1011)) + e24KC2ThetaBelowLeaf1011030 e24KC2ThetaBelowLeaf1011031 e24KC2ThetaBelowLeaf1011032 + e24KC2ThetaBelowLeaf1011033 + +theorem e24KC2ThetaBelowNode101112 : + adaptiveCoverCheck 12 (childHL (childLH thetaBelowCell1011)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH thetaBelowCell1011)) + e24KC2ThetaBelowLeaf1011120 e24KC2ThetaBelowLeaf1011121 e24KC2ThetaBelowLeaf1011122 + e24KC2ThetaBelowLeaf1011123 + +theorem e24KC2ThetaBelowNode101113 : + adaptiveCoverCheck 12 (childHH (childLH thetaBelowCell1011)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH thetaBelowCell1011)) + e24KC2ThetaBelowLeaf1011130 e24KC2ThetaBelowLeaf1011131 e24KC2ThetaBelowLeaf1011132 + e24KC2ThetaBelowLeaf1011133 + +theorem e24KC2ThetaBelowNode101120 : + adaptiveCoverCheck 12 (childLL (childHL thetaBelowCell1011)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL thetaBelowCell1011)) + e24KC2ThetaBelowLeaf1011200 e24KC2ThetaBelowLeaf1011201 e24KC2ThetaBelowLeaf1011202 + e24KC2ThetaBelowLeaf1011203 + +theorem e24KC2ThetaBelowNode101121 : + adaptiveCoverCheck 12 (childLH (childHL thetaBelowCell1011)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL thetaBelowCell1011)) + e24KC2ThetaBelowLeaf1011210 e24KC2ThetaBelowLeaf1011211 e24KC2ThetaBelowLeaf1011212 + e24KC2ThetaBelowLeaf1011213 + +theorem e24KC2ThetaBelowNode101122 : + adaptiveCoverCheck 12 (childHL (childHL thetaBelowCell1011)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL thetaBelowCell1011)) + e24KC2ThetaBelowLeaf1011220 e24KC2ThetaBelowLeaf1011221 e24KC2ThetaBelowLeaf1011222 + e24KC2ThetaBelowLeaf1011223 + +theorem e24KC2ThetaBelowNode101123 : + adaptiveCoverCheck 12 (childHH (childHL thetaBelowCell1011)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL thetaBelowCell1011)) + e24KC2ThetaBelowLeaf1011230 e24KC2ThetaBelowLeaf1011231 e24KC2ThetaBelowLeaf1011232 + e24KC2ThetaBelowLeaf1011233 + +theorem e24KC2ThetaBelowNode101130 : + adaptiveCoverCheck 12 (childLL (childHH thetaBelowCell1011)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH thetaBelowCell1011)) + e24KC2ThetaBelowLeaf1011300 e24KC2ThetaBelowLeaf1011301 e24KC2ThetaBelowLeaf1011302 + e24KC2ThetaBelowNode1011303 + +theorem e24KC2ThetaBelowNode101131 : + adaptiveCoverCheck 12 (childLH (childHH thetaBelowCell1011)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH thetaBelowCell1011)) + e24KC2ThetaBelowLeaf1011310 e24KC2ThetaBelowNode1011311 e24KC2ThetaBelowNode1011312 + e24KC2ThetaBelowNode1011313 + +theorem e24KC2ThetaBelowNode101132 : + adaptiveCoverCheck 12 (childHL (childHH thetaBelowCell1011)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH thetaBelowCell1011)) + e24KC2ThetaBelowLeaf1011320 e24KC2ThetaBelowLeaf1011321 e24KC2ThetaBelowLeaf1011322 + e24KC2ThetaBelowLeaf1011323 + +theorem e24KC2ThetaBelowNode101133 : + adaptiveCoverCheck 12 (childHH (childHH thetaBelowCell1011)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH thetaBelowCell1011)) + e24KC2ThetaBelowLeaf1011330 e24KC2ThetaBelowLeaf1011331 e24KC2ThetaBelowLeaf1011332 + e24KC2ThetaBelowLeaf1011333 + +theorem e24KC2ThetaBelowNode110002 : + adaptiveCoverCheck 12 (childHL (childLL thetaBelowCell1100)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL thetaBelowCell1100)) + e24KC2ThetaBelowLeaf1100020 e24KC2ThetaBelowLeaf1100021 e24KC2ThetaBelowLeaf1100022 + e24KC2ThetaBelowLeaf1100023 + +theorem e24KC2ThetaBelowNode110003 : + adaptiveCoverCheck 12 (childHH (childLL thetaBelowCell1100)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL thetaBelowCell1100)) + e24KC2ThetaBelowLeaf1100030 e24KC2ThetaBelowLeaf1100031 e24KC2ThetaBelowNode1100032 + e24KC2ThetaBelowNode1100033 + +theorem e24KC2ThetaBelowNode110012 : + adaptiveCoverCheck 12 (childHL (childLH thetaBelowCell1100)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH thetaBelowCell1100)) + e24KC2ThetaBelowLeaf1100120 e24KC2ThetaBelowLeaf1100121 e24KC2ThetaBelowNode1100122 + e24KC2ThetaBelowNode1100123 + +theorem e24KC2ThetaBelowNode110013 : + adaptiveCoverCheck 12 (childHH (childLH thetaBelowCell1100)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH thetaBelowCell1100)) + e24KC2ThetaBelowLeaf1100130 e24KC2ThetaBelowLeaf1100131 e24KC2ThetaBelowNode1100132 + e24KC2ThetaBelowNode1100133 + +theorem e24KC2ThetaBelowNode110020 : + adaptiveCoverCheck 12 (childLL (childHL thetaBelowCell1100)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL thetaBelowCell1100)) + e24KC2ThetaBelowNode1100200 e24KC2ThetaBelowNode1100201 e24KC2ThetaBelowNode1100202 + e24KC2ThetaBelowNode1100203 + +theorem e24KC2ThetaBelowNode110021 : + adaptiveCoverCheck 12 (childLH (childHL thetaBelowCell1100)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL thetaBelowCell1100)) + e24KC2ThetaBelowNode1100210 e24KC2ThetaBelowNode1100211 e24KC2ThetaBelowNode1100212 + e24KC2ThetaBelowNode1100213 + +theorem e24KC2ThetaBelowNode110022 : + adaptiveCoverCheck 12 (childHL (childHL thetaBelowCell1100)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL thetaBelowCell1100)) + e24KC2ThetaBelowLeaf1100220 e24KC2ThetaBelowLeaf1100221 e24KC2ThetaBelowLeaf1100222 + e24KC2ThetaBelowLeaf1100223 + +theorem e24KC2ThetaBelowNode110023 : + adaptiveCoverCheck 12 (childHH (childHL thetaBelowCell1100)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL thetaBelowCell1100)) + e24KC2ThetaBelowLeaf1100230 e24KC2ThetaBelowLeaf1100231 e24KC2ThetaBelowLeaf1100232 + e24KC2ThetaBelowLeaf1100233 + +theorem e24KC2ThetaBelowNode110030 : + adaptiveCoverCheck 12 (childLL (childHH thetaBelowCell1100)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH thetaBelowCell1100)) + e24KC2ThetaBelowNode1100300 e24KC2ThetaBelowNode1100301 e24KC2ThetaBelowNode1100302 + e24KC2ThetaBelowNode1100303 + +theorem e24KC2ThetaBelowNode110031 : + adaptiveCoverCheck 12 (childLH (childHH thetaBelowCell1100)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH thetaBelowCell1100)) + e24KC2ThetaBelowNode1100310 e24KC2ThetaBelowNode1100311 e24KC2ThetaBelowNode1100312 + e24KC2ThetaBelowNode1100313 + +theorem e24KC2ThetaBelowNode110032 : + adaptiveCoverCheck 12 (childHL (childHH thetaBelowCell1100)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH thetaBelowCell1100)) + e24KC2ThetaBelowLeaf1100320 e24KC2ThetaBelowLeaf1100321 e24KC2ThetaBelowLeaf1100322 + e24KC2ThetaBelowLeaf1100323 + +theorem e24KC2ThetaBelowNode110033 : + adaptiveCoverCheck 12 (childHH (childHH thetaBelowCell1100)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH thetaBelowCell1100)) + e24KC2ThetaBelowNode1100330 e24KC2ThetaBelowNode1100331 e24KC2ThetaBelowLeaf1100332 + e24KC2ThetaBelowLeaf1100333 + +theorem e24KC2ThetaBelowNode110102 : + adaptiveCoverCheck 12 (childHL (childLL thetaBelowCell1101)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL thetaBelowCell1101)) + e24KC2ThetaBelowLeaf1101020 e24KC2ThetaBelowLeaf1101021 e24KC2ThetaBelowNode1101022 + e24KC2ThetaBelowNode1101023 + +theorem e24KC2ThetaBelowNode110103 : + adaptiveCoverCheck 12 (childHH (childLL thetaBelowCell1101)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL thetaBelowCell1101)) + e24KC2ThetaBelowLeaf1101030 e24KC2ThetaBelowLeaf1101031 e24KC2ThetaBelowLeaf1101032 + e24KC2ThetaBelowLeaf1101033 + +theorem e24KC2ThetaBelowNode110112 : + adaptiveCoverCheck 12 (childHL (childLH thetaBelowCell1101)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH thetaBelowCell1101)) + e24KC2ThetaBelowLeaf1101120 e24KC2ThetaBelowLeaf1101121 e24KC2ThetaBelowLeaf1101122 + e24KC2ThetaBelowLeaf1101123 + +theorem e24KC2ThetaBelowNode110113 : + adaptiveCoverCheck 12 (childHH (childLH thetaBelowCell1101)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH thetaBelowCell1101)) + e24KC2ThetaBelowLeaf1101130 e24KC2ThetaBelowLeaf1101131 e24KC2ThetaBelowLeaf1101132 + e24KC2ThetaBelowLeaf1101133 + +theorem e24KC2ThetaBelowNode110120 : + adaptiveCoverCheck 12 (childLL (childHL thetaBelowCell1101)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL thetaBelowCell1101)) + e24KC2ThetaBelowNode1101200 e24KC2ThetaBelowNode1101201 e24KC2ThetaBelowNode1101202 + e24KC2ThetaBelowNode1101203 + +theorem e24KC2ThetaBelowNode110121 : + adaptiveCoverCheck 12 (childLH (childHL thetaBelowCell1101)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL thetaBelowCell1101)) + e24KC2ThetaBelowNode1101210 e24KC2ThetaBelowNode1101211 e24KC2ThetaBelowNode1101212 + e24KC2ThetaBelowNode1101213 + +theorem e24KC2ThetaBelowNode110122 : + adaptiveCoverCheck 12 (childHL (childHL thetaBelowCell1101)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL thetaBelowCell1101)) + e24KC2ThetaBelowNode1101220 e24KC2ThetaBelowNode1101221 e24KC2ThetaBelowLeaf1101222 + e24KC2ThetaBelowLeaf1101223 + +theorem e24KC2ThetaBelowNode110123 : + adaptiveCoverCheck 12 (childHH (childHL thetaBelowCell1101)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL thetaBelowCell1101)) + e24KC2ThetaBelowNode1101230 e24KC2ThetaBelowNode1101231 e24KC2ThetaBelowLeaf1101232 + e24KC2ThetaBelowLeaf1101233 + +theorem e24KC2ThetaBelowNode110130 : + adaptiveCoverCheck 12 (childLL (childHH thetaBelowCell1101)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH thetaBelowCell1101)) + e24KC2ThetaBelowNode1101300 e24KC2ThetaBelowNode1101301 e24KC2ThetaBelowNode1101302 + e24KC2ThetaBelowNode1101303 + +theorem e24KC2ThetaBelowNode110131 : + adaptiveCoverCheck 12 (childLH (childHH thetaBelowCell1101)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH thetaBelowCell1101)) + e24KC2ThetaBelowNode1101310 e24KC2ThetaBelowNode1101311 e24KC2ThetaBelowNode1101312 + e24KC2ThetaBelowNode1101313 + +theorem e24KC2ThetaBelowNode110132 : + adaptiveCoverCheck 12 (childHL (childHH thetaBelowCell1101)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH thetaBelowCell1101)) + e24KC2ThetaBelowNode1101320 e24KC2ThetaBelowNode1101321 e24KC2ThetaBelowLeaf1101322 + e24KC2ThetaBelowLeaf1101323 + +theorem e24KC2ThetaBelowNode110133 : + adaptiveCoverCheck 12 (childHH (childHH thetaBelowCell1101)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH thetaBelowCell1101)) + e24KC2ThetaBelowNode1101330 e24KC2ThetaBelowNode1101331 e24KC2ThetaBelowLeaf1101332 + e24KC2ThetaBelowLeaf1101333 + +theorem e24KC2ThetaBelowNode111002 : + adaptiveCoverCheck 12 (childHL (childLL thetaBelowCell1110)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL thetaBelowCell1110)) + e24KC2ThetaBelowLeaf1110020 e24KC2ThetaBelowLeaf1110021 e24KC2ThetaBelowLeaf1110022 + e24KC2ThetaBelowLeaf1110023 + +theorem e24KC2ThetaBelowNode111003 : + adaptiveCoverCheck 12 (childHH (childLL thetaBelowCell1110)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL thetaBelowCell1110)) + e24KC2ThetaBelowLeaf1110030 e24KC2ThetaBelowLeaf1110031 e24KC2ThetaBelowLeaf1110032 + e24KC2ThetaBelowLeaf1110033 + +theorem e24KC2ThetaBelowNode111012 : + adaptiveCoverCheck 12 (childHL (childLH thetaBelowCell1110)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH thetaBelowCell1110)) + e24KC2ThetaBelowLeaf1110120 e24KC2ThetaBelowLeaf1110121 e24KC2ThetaBelowLeaf1110122 + e24KC2ThetaBelowLeaf1110123 + +theorem e24KC2ThetaBelowNode111013 : + adaptiveCoverCheck 12 (childHH (childLH thetaBelowCell1110)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH thetaBelowCell1110)) + e24KC2ThetaBelowLeaf1110130 e24KC2ThetaBelowLeaf1110131 e24KC2ThetaBelowLeaf1110132 + e24KC2ThetaBelowLeaf1110133 + +theorem e24KC2ThetaBelowNode111020 : + adaptiveCoverCheck 12 (childLL (childHL thetaBelowCell1110)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL thetaBelowCell1110)) + e24KC2ThetaBelowNode1110200 e24KC2ThetaBelowNode1110201 e24KC2ThetaBelowNode1110202 + e24KC2ThetaBelowNode1110203 + +theorem e24KC2ThetaBelowNode111021 : + adaptiveCoverCheck 12 (childLH (childHL thetaBelowCell1110)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL thetaBelowCell1110)) + e24KC2ThetaBelowNode1110210 e24KC2ThetaBelowNode1110211 e24KC2ThetaBelowNode1110212 + e24KC2ThetaBelowNode1110213 + +theorem e24KC2ThetaBelowNode111022 : + adaptiveCoverCheck 12 (childHL (childHL thetaBelowCell1110)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL thetaBelowCell1110)) + e24KC2ThetaBelowNode1110220 e24KC2ThetaBelowNode1110221 e24KC2ThetaBelowLeaf1110222 + e24KC2ThetaBelowLeaf1110223 + +theorem e24KC2ThetaBelowNode111023 : + adaptiveCoverCheck 12 (childHH (childHL thetaBelowCell1110)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL thetaBelowCell1110)) + e24KC2ThetaBelowNode1110230 e24KC2ThetaBelowNode1110231 e24KC2ThetaBelowLeaf1110232 + e24KC2ThetaBelowLeaf1110233 + +theorem e24KC2ThetaBelowNode111030 : + adaptiveCoverCheck 12 (childLL (childHH thetaBelowCell1110)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH thetaBelowCell1110)) + e24KC2ThetaBelowNode1110300 e24KC2ThetaBelowNode1110301 e24KC2ThetaBelowNode1110302 + e24KC2ThetaBelowNode1110303 + +theorem e24KC2ThetaBelowNode111031 : + adaptiveCoverCheck 12 (childLH (childHH thetaBelowCell1110)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH thetaBelowCell1110)) + e24KC2ThetaBelowNode1110310 e24KC2ThetaBelowNode1110311 e24KC2ThetaBelowNode1110312 + e24KC2ThetaBelowNode1110313 + +theorem e24KC2ThetaBelowNode111032 : + adaptiveCoverCheck 12 (childHL (childHH thetaBelowCell1110)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH thetaBelowCell1110)) + e24KC2ThetaBelowNode1110320 e24KC2ThetaBelowNode1110321 e24KC2ThetaBelowLeaf1110322 + e24KC2ThetaBelowLeaf1110323 + +theorem e24KC2ThetaBelowNode111033 : + adaptiveCoverCheck 12 (childHH (childHH thetaBelowCell1110)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH thetaBelowCell1110)) + e24KC2ThetaBelowNode1110330 e24KC2ThetaBelowNode1110331 e24KC2ThetaBelowLeaf1110332 + e24KC2ThetaBelowLeaf1110333 + +theorem e24KC2ThetaBelowNode111102 : + adaptiveCoverCheck 12 (childHL (childLL thetaBelowCell1111)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL thetaBelowCell1111)) + e24KC2ThetaBelowLeaf1111020 e24KC2ThetaBelowLeaf1111021 e24KC2ThetaBelowLeaf1111022 + e24KC2ThetaBelowLeaf1111023 + +theorem e24KC2ThetaBelowNode111103 : + adaptiveCoverCheck 12 (childHH (childLL thetaBelowCell1111)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL thetaBelowCell1111)) + e24KC2ThetaBelowLeaf1111030 e24KC2ThetaBelowLeaf1111031 e24KC2ThetaBelowLeaf1111032 + e24KC2ThetaBelowLeaf1111033 + +theorem e24KC2ThetaBelowNode111112 : + adaptiveCoverCheck 12 (childHL (childLH thetaBelowCell1111)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH thetaBelowCell1111)) + e24KC2ThetaBelowLeaf1111120 e24KC2ThetaBelowLeaf1111121 e24KC2ThetaBelowLeaf1111122 + e24KC2ThetaBelowLeaf1111123 + +theorem e24KC2ThetaBelowNode111120 : + adaptiveCoverCheck 12 (childLL (childHL thetaBelowCell1111)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL thetaBelowCell1111)) + e24KC2ThetaBelowNode1111200 e24KC2ThetaBelowNode1111201 e24KC2ThetaBelowNode1111202 + e24KC2ThetaBelowNode1111203 + +theorem e24KC2ThetaBelowNode111121 : + adaptiveCoverCheck 12 (childLH (childHL thetaBelowCell1111)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL thetaBelowCell1111)) + e24KC2ThetaBelowNode1111210 e24KC2ThetaBelowNode1111211 e24KC2ThetaBelowNode1111212 + e24KC2ThetaBelowNode1111213 + +theorem e24KC2ThetaBelowNode111122 : + adaptiveCoverCheck 12 (childHL (childHL thetaBelowCell1111)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL thetaBelowCell1111)) + e24KC2ThetaBelowNode1111220 e24KC2ThetaBelowNode1111221 e24KC2ThetaBelowNode1111222 + e24KC2ThetaBelowNode1111223 + +theorem e24KC2ThetaBelowNode111123 : + adaptiveCoverCheck 12 (childHH (childHL thetaBelowCell1111)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL thetaBelowCell1111)) + e24KC2ThetaBelowNode1111230 e24KC2ThetaBelowNode1111231 e24KC2ThetaBelowNode1111232 + e24KC2ThetaBelowNode1111233 + +theorem e24KC2ThetaBelowNode111130 : + adaptiveCoverCheck 12 (childLL (childHH thetaBelowCell1111)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH thetaBelowCell1111)) + e24KC2ThetaBelowLeaf1111300 e24KC2ThetaBelowLeaf1111301 e24KC2ThetaBelowNode1111302 + e24KC2ThetaBelowNode1111303 + +theorem e24KC2ThetaBelowNode111131 : + adaptiveCoverCheck 12 (childLH (childHH thetaBelowCell1111)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH thetaBelowCell1111)) + e24KC2ThetaBelowLeaf1111310 e24KC2ThetaBelowLeaf1111311 e24KC2ThetaBelowNode1111312 + e24KC2ThetaBelowNode1111313 + +theorem e24KC2ThetaBelowNode111132 : + adaptiveCoverCheck 12 (childHL (childHH thetaBelowCell1111)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH thetaBelowCell1111)) + e24KC2ThetaBelowNode1111320 e24KC2ThetaBelowNode1111321 e24KC2ThetaBelowNode1111322 + e24KC2ThetaBelowNode1111323 + +theorem e24KC2ThetaBelowNode111133 : + adaptiveCoverCheck 12 (childHH (childHH thetaBelowCell1111)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH thetaBelowCell1111)) + e24KC2ThetaBelowNode1111330 e24KC2ThetaBelowNode1111331 e24KC2ThetaBelowNode1111332 + e24KC2ThetaBelowNode1111333 + +theorem e24KC2ThetaBelowNode111210 : + adaptiveCoverCheck 12 (childLL (childLH thetaBelowCell1112)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childLH thetaBelowCell1112)) + e24KC2ThetaBelowLeaf1112100 e24KC2ThetaBelowLeaf1112101 e24KC2ThetaBelowLeaf1112102 + e24KC2ThetaBelowLeaf1112103 + +theorem e24KC2ThetaBelowNode111211 : + adaptiveCoverCheck 12 (childLH (childLH thetaBelowCell1112)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childLH thetaBelowCell1112)) + e24KC2ThetaBelowLeaf1112110 e24KC2ThetaBelowLeaf1112111 e24KC2ThetaBelowLeaf1112112 + e24KC2ThetaBelowLeaf1112113 + +theorem e24KC2ThetaBelowNode111300 : + adaptiveCoverCheck 12 (childLL (childLL thetaBelowCell1113)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childLL thetaBelowCell1113)) + e24KC2ThetaBelowLeaf1113000 e24KC2ThetaBelowLeaf1113001 e24KC2ThetaBelowLeaf1113002 + e24KC2ThetaBelowLeaf1113003 + +theorem e24KC2ThetaBelowNode111301 : + adaptiveCoverCheck 12 (childLH (childLL thetaBelowCell1113)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childLL thetaBelowCell1113)) + e24KC2ThetaBelowLeaf1113010 e24KC2ThetaBelowLeaf1113011 e24KC2ThetaBelowLeaf1113012 + e24KC2ThetaBelowLeaf1113013 + +theorem e24KC2ThetaBelowNode111310 : + adaptiveCoverCheck 12 (childLL (childLH thetaBelowCell1113)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childLH thetaBelowCell1113)) + e24KC2ThetaBelowLeaf1113100 e24KC2ThetaBelowLeaf1113101 e24KC2ThetaBelowLeaf1113102 + e24KC2ThetaBelowLeaf1113103 + +theorem e24KC2ThetaBelowNode111311 : + adaptiveCoverCheck 12 (childLH (childLH thetaBelowCell1113)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childLH thetaBelowCell1113)) + e24KC2ThetaBelowLeaf1113110 e24KC2ThetaBelowLeaf1113111 e24KC2ThetaBelowLeaf1113112 + e24KC2ThetaBelowLeaf1113113 + +theorem e24KC2ThetaBelowNode01013 : + adaptiveCoverCheck 13 (childHH thetaBelowCell0101) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH thetaBelowCell0101) + e24KC2ThetaBelowLeaf010130 e24KC2ThetaBelowLeaf010131 e24KC2ThetaBelowLeaf010132 + e24KC2ThetaBelowLeaf010133 + +theorem e24KC2ThetaBelowNode01101 : + adaptiveCoverCheck 13 (childLH thetaBelowCell0110) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH thetaBelowCell0110) + e24KC2ThetaBelowLeaf011010 e24KC2ThetaBelowLeaf011011 e24KC2ThetaBelowLeaf011012 + e24KC2ThetaBelowLeaf011013 + +theorem e24KC2ThetaBelowNode01102 : + adaptiveCoverCheck 13 (childHL thetaBelowCell0110) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL thetaBelowCell0110) + e24KC2ThetaBelowLeaf011020 e24KC2ThetaBelowLeaf011021 e24KC2ThetaBelowLeaf011022 + e24KC2ThetaBelowLeaf011023 + +theorem e24KC2ThetaBelowNode01103 : + adaptiveCoverCheck 13 (childHH thetaBelowCell0110) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH thetaBelowCell0110) + e24KC2ThetaBelowLeaf011030 e24KC2ThetaBelowLeaf011031 e24KC2ThetaBelowLeaf011032 + e24KC2ThetaBelowLeaf011033 + +theorem e24KC2ThetaBelowNode01110 : + adaptiveCoverCheck 13 (childLL thetaBelowCell0111) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL thetaBelowCell0111) + e24KC2ThetaBelowLeaf011100 e24KC2ThetaBelowLeaf011101 e24KC2ThetaBelowLeaf011102 + e24KC2ThetaBelowLeaf011103 + +theorem e24KC2ThetaBelowNode01111 : + adaptiveCoverCheck 13 (childLH thetaBelowCell0111) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH thetaBelowCell0111) + e24KC2ThetaBelowLeaf011110 e24KC2ThetaBelowLeaf011111 e24KC2ThetaBelowLeaf011112 + e24KC2ThetaBelowLeaf011113 + +theorem e24KC2ThetaBelowNode01112 : + adaptiveCoverCheck 13 (childHL thetaBelowCell0111) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL thetaBelowCell0111) + e24KC2ThetaBelowLeaf011120 e24KC2ThetaBelowLeaf011121 e24KC2ThetaBelowLeaf011122 + e24KC2ThetaBelowLeaf011123 + +theorem e24KC2ThetaBelowNode01113 : + adaptiveCoverCheck 13 (childHH thetaBelowCell0111) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH thetaBelowCell0111) + e24KC2ThetaBelowLeaf011130 e24KC2ThetaBelowLeaf011131 e24KC2ThetaBelowLeaf011132 + e24KC2ThetaBelowLeaf011133 + +theorem e24KC2ThetaBelowNode10000 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1000) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL thetaBelowCell1000) + e24KC2ThetaBelowLeaf100000 e24KC2ThetaBelowLeaf100001 e24KC2ThetaBelowLeaf100002 + e24KC2ThetaBelowLeaf100003 + +theorem e24KC2ThetaBelowNode10001 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1000) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH thetaBelowCell1000) + e24KC2ThetaBelowLeaf100010 e24KC2ThetaBelowLeaf100011 e24KC2ThetaBelowLeaf100012 + e24KC2ThetaBelowLeaf100013 + +theorem e24KC2ThetaBelowNode10002 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1000) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL thetaBelowCell1000) + e24KC2ThetaBelowLeaf100020 e24KC2ThetaBelowLeaf100021 e24KC2ThetaBelowLeaf100022 + e24KC2ThetaBelowLeaf100023 + +theorem e24KC2ThetaBelowNode10003 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1000) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH thetaBelowCell1000) + e24KC2ThetaBelowLeaf100030 e24KC2ThetaBelowLeaf100031 e24KC2ThetaBelowLeaf100032 + e24KC2ThetaBelowLeaf100033 + +theorem e24KC2ThetaBelowNode10010 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1001) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL thetaBelowCell1001) + e24KC2ThetaBelowLeaf100100 e24KC2ThetaBelowLeaf100101 e24KC2ThetaBelowLeaf100102 + e24KC2ThetaBelowLeaf100103 + +theorem e24KC2ThetaBelowNode10011 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1001) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH thetaBelowCell1001) + e24KC2ThetaBelowLeaf100110 e24KC2ThetaBelowLeaf100111 e24KC2ThetaBelowLeaf100112 + e24KC2ThetaBelowNode100113 + +theorem e24KC2ThetaBelowNode10012 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1001) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL thetaBelowCell1001) + e24KC2ThetaBelowLeaf100120 e24KC2ThetaBelowNode100121 e24KC2ThetaBelowLeaf100122 + e24KC2ThetaBelowLeaf100123 + +theorem e24KC2ThetaBelowNode10013 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1001) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH thetaBelowCell1001) + e24KC2ThetaBelowNode100130 e24KC2ThetaBelowNode100131 e24KC2ThetaBelowLeaf100132 + e24KC2ThetaBelowLeaf100133 + +theorem e24KC2ThetaBelowNode10031 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1003) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH thetaBelowCell1003) + e24KC2ThetaBelowLeaf100310 e24KC2ThetaBelowLeaf100311 e24KC2ThetaBelowLeaf100312 + e24KC2ThetaBelowLeaf100313 + +theorem e24KC2ThetaBelowNode10100 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1010) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL thetaBelowCell1010) + e24KC2ThetaBelowLeaf101000 e24KC2ThetaBelowNode101001 e24KC2ThetaBelowNode101002 + e24KC2ThetaBelowNode101003 + +theorem e24KC2ThetaBelowNode10101 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1010) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH thetaBelowCell1010) + e24KC2ThetaBelowNode101010 e24KC2ThetaBelowNode101011 e24KC2ThetaBelowNode101012 + e24KC2ThetaBelowNode101013 + +theorem e24KC2ThetaBelowNode10102 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1010) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL thetaBelowCell1010) + e24KC2ThetaBelowNode101020 e24KC2ThetaBelowNode101021 e24KC2ThetaBelowLeaf101022 + e24KC2ThetaBelowLeaf101023 + +theorem e24KC2ThetaBelowNode10103 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1010) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH thetaBelowCell1010) + e24KC2ThetaBelowNode101030 e24KC2ThetaBelowNode101031 e24KC2ThetaBelowNode101032 + e24KC2ThetaBelowNode101033 + +theorem e24KC2ThetaBelowNode10110 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1011) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL thetaBelowCell1011) + e24KC2ThetaBelowNode101100 e24KC2ThetaBelowLeaf101101 e24KC2ThetaBelowNode101102 + e24KC2ThetaBelowNode101103 + +theorem e24KC2ThetaBelowNode10111 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1011) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH thetaBelowCell1011) + e24KC2ThetaBelowLeaf101110 e24KC2ThetaBelowLeaf101111 e24KC2ThetaBelowNode101112 + e24KC2ThetaBelowNode101113 + +theorem e24KC2ThetaBelowNode10112 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1011) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL thetaBelowCell1011) + e24KC2ThetaBelowNode101120 e24KC2ThetaBelowNode101121 e24KC2ThetaBelowNode101122 + e24KC2ThetaBelowNode101123 + +theorem e24KC2ThetaBelowNode10113 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1011) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH thetaBelowCell1011) + e24KC2ThetaBelowNode101130 e24KC2ThetaBelowNode101131 e24KC2ThetaBelowNode101132 + e24KC2ThetaBelowNode101133 + +theorem e24KC2ThetaBelowNode10120 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1012) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL thetaBelowCell1012) + e24KC2ThetaBelowLeaf101200 e24KC2ThetaBelowLeaf101201 e24KC2ThetaBelowLeaf101202 + e24KC2ThetaBelowLeaf101203 + +theorem e24KC2ThetaBelowNode10121 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1012) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH thetaBelowCell1012) + e24KC2ThetaBelowLeaf101210 e24KC2ThetaBelowLeaf101211 e24KC2ThetaBelowLeaf101212 + e24KC2ThetaBelowLeaf101213 + +theorem e24KC2ThetaBelowNode10130 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1013) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL thetaBelowCell1013) + e24KC2ThetaBelowLeaf101300 e24KC2ThetaBelowLeaf101301 e24KC2ThetaBelowLeaf101302 + e24KC2ThetaBelowLeaf101303 + +theorem e24KC2ThetaBelowNode10131 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1013) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH thetaBelowCell1013) + e24KC2ThetaBelowLeaf101310 e24KC2ThetaBelowLeaf101311 e24KC2ThetaBelowLeaf101312 + e24KC2ThetaBelowLeaf101313 + +theorem e24KC2ThetaBelowNode11000 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1100) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL thetaBelowCell1100) + e24KC2ThetaBelowLeaf110000 e24KC2ThetaBelowLeaf110001 e24KC2ThetaBelowNode110002 + e24KC2ThetaBelowNode110003 + +theorem e24KC2ThetaBelowNode11001 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1100) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH thetaBelowCell1100) + e24KC2ThetaBelowLeaf110010 e24KC2ThetaBelowLeaf110011 e24KC2ThetaBelowNode110012 + e24KC2ThetaBelowNode110013 + +theorem e24KC2ThetaBelowNode11002 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1100) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL thetaBelowCell1100) + e24KC2ThetaBelowNode110020 e24KC2ThetaBelowNode110021 e24KC2ThetaBelowNode110022 + e24KC2ThetaBelowNode110023 + +theorem e24KC2ThetaBelowNode11003 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1100) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH thetaBelowCell1100) + e24KC2ThetaBelowNode110030 e24KC2ThetaBelowNode110031 e24KC2ThetaBelowNode110032 + e24KC2ThetaBelowNode110033 + +theorem e24KC2ThetaBelowNode11010 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1101) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL thetaBelowCell1101) + e24KC2ThetaBelowLeaf110100 e24KC2ThetaBelowLeaf110101 e24KC2ThetaBelowNode110102 + e24KC2ThetaBelowNode110103 + +theorem e24KC2ThetaBelowNode11011 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1101) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH thetaBelowCell1101) + e24KC2ThetaBelowLeaf110110 e24KC2ThetaBelowLeaf110111 e24KC2ThetaBelowNode110112 + e24KC2ThetaBelowNode110113 + +theorem e24KC2ThetaBelowNode11012 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1101) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL thetaBelowCell1101) + e24KC2ThetaBelowNode110120 e24KC2ThetaBelowNode110121 e24KC2ThetaBelowNode110122 + e24KC2ThetaBelowNode110123 + +theorem e24KC2ThetaBelowNode11013 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1101) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH thetaBelowCell1101) + e24KC2ThetaBelowNode110130 e24KC2ThetaBelowNode110131 e24KC2ThetaBelowNode110132 + e24KC2ThetaBelowNode110133 + +theorem e24KC2ThetaBelowNode11020 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1102) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL thetaBelowCell1102) + e24KC2ThetaBelowLeaf110200 e24KC2ThetaBelowLeaf110201 e24KC2ThetaBelowLeaf110202 + e24KC2ThetaBelowLeaf110203 + +theorem e24KC2ThetaBelowNode11021 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1102) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH thetaBelowCell1102) + e24KC2ThetaBelowLeaf110210 e24KC2ThetaBelowLeaf110211 e24KC2ThetaBelowLeaf110212 + e24KC2ThetaBelowLeaf110213 + +theorem e24KC2ThetaBelowNode11030 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1103) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL thetaBelowCell1103) + e24KC2ThetaBelowLeaf110300 e24KC2ThetaBelowLeaf110301 e24KC2ThetaBelowLeaf110302 + e24KC2ThetaBelowLeaf110303 + +theorem e24KC2ThetaBelowNode11031 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1103) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH thetaBelowCell1103) + e24KC2ThetaBelowLeaf110310 e24KC2ThetaBelowLeaf110311 e24KC2ThetaBelowLeaf110312 + e24KC2ThetaBelowLeaf110313 + +theorem e24KC2ThetaBelowNode11100 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1110) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL thetaBelowCell1110) + e24KC2ThetaBelowLeaf111000 e24KC2ThetaBelowLeaf111001 e24KC2ThetaBelowNode111002 + e24KC2ThetaBelowNode111003 + +theorem e24KC2ThetaBelowNode11101 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1110) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH thetaBelowCell1110) + e24KC2ThetaBelowLeaf111010 e24KC2ThetaBelowLeaf111011 e24KC2ThetaBelowNode111012 + e24KC2ThetaBelowNode111013 + +theorem e24KC2ThetaBelowNode11102 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1110) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL thetaBelowCell1110) + e24KC2ThetaBelowNode111020 e24KC2ThetaBelowNode111021 e24KC2ThetaBelowNode111022 + e24KC2ThetaBelowNode111023 + +theorem e24KC2ThetaBelowNode11103 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1110) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH thetaBelowCell1110) + e24KC2ThetaBelowNode111030 e24KC2ThetaBelowNode111031 e24KC2ThetaBelowNode111032 + e24KC2ThetaBelowNode111033 + +theorem e24KC2ThetaBelowNode11110 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1111) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL thetaBelowCell1111) + e24KC2ThetaBelowLeaf111100 e24KC2ThetaBelowLeaf111101 e24KC2ThetaBelowNode111102 + e24KC2ThetaBelowNode111103 + +theorem e24KC2ThetaBelowNode11111 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1111) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH thetaBelowCell1111) + e24KC2ThetaBelowLeaf111110 e24KC2ThetaBelowLeaf111111 e24KC2ThetaBelowNode111112 + e24KC2ThetaBelowLeaf111113 + +theorem e24KC2ThetaBelowNode11112 : + adaptiveCoverCheck 13 (childHL thetaBelowCell1111) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL thetaBelowCell1111) + e24KC2ThetaBelowNode111120 e24KC2ThetaBelowNode111121 e24KC2ThetaBelowNode111122 + e24KC2ThetaBelowNode111123 + +theorem e24KC2ThetaBelowNode11113 : + adaptiveCoverCheck 13 (childHH thetaBelowCell1111) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH thetaBelowCell1111) + e24KC2ThetaBelowNode111130 e24KC2ThetaBelowNode111131 e24KC2ThetaBelowNode111132 + e24KC2ThetaBelowNode111133 + +theorem e24KC2ThetaBelowNode11120 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1112) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL thetaBelowCell1112) + e24KC2ThetaBelowLeaf111200 e24KC2ThetaBelowLeaf111201 e24KC2ThetaBelowLeaf111202 + e24KC2ThetaBelowLeaf111203 + +theorem e24KC2ThetaBelowNode11121 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1112) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH thetaBelowCell1112) + e24KC2ThetaBelowNode111210 e24KC2ThetaBelowNode111211 e24KC2ThetaBelowLeaf111212 + e24KC2ThetaBelowLeaf111213 + +theorem e24KC2ThetaBelowNode11130 : + adaptiveCoverCheck 13 (childLL thetaBelowCell1113) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL thetaBelowCell1113) + e24KC2ThetaBelowNode111300 e24KC2ThetaBelowNode111301 e24KC2ThetaBelowLeaf111302 + e24KC2ThetaBelowLeaf111303 + +theorem e24KC2ThetaBelowNode11131 : + adaptiveCoverCheck 13 (childLH thetaBelowCell1113) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH thetaBelowCell1113) + e24KC2ThetaBelowNode111310 e24KC2ThetaBelowNode111311 e24KC2ThetaBelowLeaf111312 + e24KC2ThetaBelowLeaf111313 + +theorem e24KC2ThetaBelowNode0003 : + adaptiveCoverCheck 14 thetaBelowCell0003 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell0003 + e24KC2ThetaBelowLeaf00030 e24KC2ThetaBelowLeaf00031 e24KC2ThetaBelowLeaf00032 + e24KC2ThetaBelowLeaf00033 + +theorem e24KC2ThetaBelowNode0010 : + adaptiveCoverCheck 14 thetaBelowCell0010 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell0010 + e24KC2ThetaBelowLeaf00100 e24KC2ThetaBelowLeaf00101 e24KC2ThetaBelowLeaf00102 + e24KC2ThetaBelowLeaf00103 + +theorem e24KC2ThetaBelowNode0011 : + adaptiveCoverCheck 14 thetaBelowCell0011 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell0011 + e24KC2ThetaBelowLeaf00110 e24KC2ThetaBelowLeaf00111 e24KC2ThetaBelowLeaf00112 + e24KC2ThetaBelowLeaf00113 + +theorem e24KC2ThetaBelowNode0012 : + adaptiveCoverCheck 14 thetaBelowCell0012 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell0012 + e24KC2ThetaBelowLeaf00120 e24KC2ThetaBelowLeaf00121 e24KC2ThetaBelowLeaf00122 + e24KC2ThetaBelowLeaf00123 + +theorem e24KC2ThetaBelowNode0013 : + adaptiveCoverCheck 14 thetaBelowCell0013 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell0013 + e24KC2ThetaBelowLeaf00130 e24KC2ThetaBelowLeaf00131 e24KC2ThetaBelowLeaf00132 + e24KC2ThetaBelowLeaf00133 + +theorem e24KC2ThetaBelowNode0100 : + adaptiveCoverCheck 14 thetaBelowCell0100 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell0100 + e24KC2ThetaBelowLeaf01000 e24KC2ThetaBelowLeaf01001 e24KC2ThetaBelowLeaf01002 + e24KC2ThetaBelowLeaf01003 + +theorem e24KC2ThetaBelowNode0101 : + adaptiveCoverCheck 14 thetaBelowCell0101 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell0101 + e24KC2ThetaBelowLeaf01010 e24KC2ThetaBelowLeaf01011 e24KC2ThetaBelowLeaf01012 + e24KC2ThetaBelowNode01013 + +theorem e24KC2ThetaBelowNode0102 : + adaptiveCoverCheck 14 thetaBelowCell0102 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell0102 + e24KC2ThetaBelowLeaf01020 e24KC2ThetaBelowLeaf01021 e24KC2ThetaBelowLeaf01022 + e24KC2ThetaBelowLeaf01023 + +theorem e24KC2ThetaBelowNode0103 : + adaptiveCoverCheck 14 thetaBelowCell0103 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell0103 + e24KC2ThetaBelowLeaf01030 e24KC2ThetaBelowLeaf01031 e24KC2ThetaBelowLeaf01032 + e24KC2ThetaBelowLeaf01033 + +theorem e24KC2ThetaBelowNode0110 : + adaptiveCoverCheck 14 thetaBelowCell0110 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell0110 + e24KC2ThetaBelowLeaf01100 e24KC2ThetaBelowNode01101 e24KC2ThetaBelowNode01102 + e24KC2ThetaBelowNode01103 + +theorem e24KC2ThetaBelowNode0111 : + adaptiveCoverCheck 14 thetaBelowCell0111 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell0111 + e24KC2ThetaBelowNode01110 e24KC2ThetaBelowNode01111 e24KC2ThetaBelowNode01112 + e24KC2ThetaBelowNode01113 + +theorem e24KC2ThetaBelowNode0112 : + adaptiveCoverCheck 14 thetaBelowCell0112 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell0112 + e24KC2ThetaBelowLeaf01120 e24KC2ThetaBelowLeaf01121 e24KC2ThetaBelowLeaf01122 + e24KC2ThetaBelowLeaf01123 + +theorem e24KC2ThetaBelowNode0113 : + adaptiveCoverCheck 14 thetaBelowCell0113 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell0113 + e24KC2ThetaBelowLeaf01130 e24KC2ThetaBelowLeaf01131 e24KC2ThetaBelowLeaf01132 + e24KC2ThetaBelowLeaf01133 + +theorem e24KC2ThetaBelowNode1000 : + adaptiveCoverCheck 14 thetaBelowCell1000 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1000 + e24KC2ThetaBelowNode10000 e24KC2ThetaBelowNode10001 e24KC2ThetaBelowNode10002 + e24KC2ThetaBelowNode10003 + +theorem e24KC2ThetaBelowNode1001 : + adaptiveCoverCheck 14 thetaBelowCell1001 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1001 + e24KC2ThetaBelowNode10010 e24KC2ThetaBelowNode10011 e24KC2ThetaBelowNode10012 + e24KC2ThetaBelowNode10013 + +theorem e24KC2ThetaBelowNode1002 : + adaptiveCoverCheck 14 thetaBelowCell1002 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1002 + e24KC2ThetaBelowLeaf10020 e24KC2ThetaBelowLeaf10021 e24KC2ThetaBelowLeaf10022 + e24KC2ThetaBelowLeaf10023 + +theorem e24KC2ThetaBelowNode1003 : + adaptiveCoverCheck 14 thetaBelowCell1003 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1003 + e24KC2ThetaBelowLeaf10030 e24KC2ThetaBelowNode10031 e24KC2ThetaBelowLeaf10032 + e24KC2ThetaBelowLeaf10033 + +theorem e24KC2ThetaBelowNode1010 : + adaptiveCoverCheck 14 thetaBelowCell1010 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1010 + e24KC2ThetaBelowNode10100 e24KC2ThetaBelowNode10101 e24KC2ThetaBelowNode10102 + e24KC2ThetaBelowNode10103 + +theorem e24KC2ThetaBelowNode1011 : + adaptiveCoverCheck 14 thetaBelowCell1011 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1011 + e24KC2ThetaBelowNode10110 e24KC2ThetaBelowNode10111 e24KC2ThetaBelowNode10112 + e24KC2ThetaBelowNode10113 + +theorem e24KC2ThetaBelowNode1012 : + adaptiveCoverCheck 14 thetaBelowCell1012 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1012 + e24KC2ThetaBelowNode10120 e24KC2ThetaBelowNode10121 e24KC2ThetaBelowLeaf10122 + e24KC2ThetaBelowLeaf10123 + +theorem e24KC2ThetaBelowNode1013 : + adaptiveCoverCheck 14 thetaBelowCell1013 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1013 + e24KC2ThetaBelowNode10130 e24KC2ThetaBelowNode10131 e24KC2ThetaBelowLeaf10132 + e24KC2ThetaBelowLeaf10133 + +theorem e24KC2ThetaBelowNode1100 : + adaptiveCoverCheck 14 thetaBelowCell1100 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1100 + e24KC2ThetaBelowNode11000 e24KC2ThetaBelowNode11001 e24KC2ThetaBelowNode11002 + e24KC2ThetaBelowNode11003 + +theorem e24KC2ThetaBelowNode1101 : + adaptiveCoverCheck 14 thetaBelowCell1101 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1101 + e24KC2ThetaBelowNode11010 e24KC2ThetaBelowNode11011 e24KC2ThetaBelowNode11012 + e24KC2ThetaBelowNode11013 + +theorem e24KC2ThetaBelowNode1102 : + adaptiveCoverCheck 14 thetaBelowCell1102 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1102 + e24KC2ThetaBelowNode11020 e24KC2ThetaBelowNode11021 e24KC2ThetaBelowLeaf11022 + e24KC2ThetaBelowLeaf11023 + +theorem e24KC2ThetaBelowNode1103 : + adaptiveCoverCheck 14 thetaBelowCell1103 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1103 + e24KC2ThetaBelowNode11030 e24KC2ThetaBelowNode11031 e24KC2ThetaBelowLeaf11032 + e24KC2ThetaBelowLeaf11033 + +theorem e24KC2ThetaBelowNode1110 : + adaptiveCoverCheck 14 thetaBelowCell1110 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1110 + e24KC2ThetaBelowNode11100 e24KC2ThetaBelowNode11101 e24KC2ThetaBelowNode11102 + e24KC2ThetaBelowNode11103 + +theorem e24KC2ThetaBelowNode1111 : + adaptiveCoverCheck 14 thetaBelowCell1111 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1111 + e24KC2ThetaBelowNode11110 e24KC2ThetaBelowNode11111 e24KC2ThetaBelowNode11112 + e24KC2ThetaBelowNode11113 + +theorem e24KC2ThetaBelowNode1112 : + adaptiveCoverCheck 14 thetaBelowCell1112 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1112 + e24KC2ThetaBelowNode11120 e24KC2ThetaBelowNode11121 e24KC2ThetaBelowLeaf11122 + e24KC2ThetaBelowLeaf11123 + +theorem e24KC2ThetaBelowNode1113 : + adaptiveCoverCheck 14 thetaBelowCell1113 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1113 + e24KC2ThetaBelowNode11130 e24KC2ThetaBelowNode11131 e24KC2ThetaBelowLeaf11132 + e24KC2ThetaBelowLeaf11133 + +theorem e24KC2ThetaBelowNode1121 : + adaptiveCoverCheck 14 thetaBelowCell1121 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1121 + e24KC2ThetaBelowLeaf11210 e24KC2ThetaBelowLeaf11211 e24KC2ThetaBelowLeaf11212 + e24KC2ThetaBelowLeaf11213 + +theorem e24KC2ThetaBelowNode1130 : + adaptiveCoverCheck 14 thetaBelowCell1130 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1130 + e24KC2ThetaBelowLeaf11300 e24KC2ThetaBelowLeaf11301 e24KC2ThetaBelowLeaf11302 + e24KC2ThetaBelowLeaf11303 + +theorem e24KC2ThetaBelowNode1131 : + adaptiveCoverCheck 14 thetaBelowCell1131 = true := + adaptiveCoverCheck_succ_of_children 13 thetaBelowCell1131 + e24KC2ThetaBelowLeaf11310 e24KC2ThetaBelowLeaf11311 e24KC2ThetaBelowLeaf11312 + e24KC2ThetaBelowLeaf11313 + +theorem e24KC2ThetaBelowNode000 : + adaptiveCoverCheck 15 (childLL (childLL (childLL e24ThetaBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 14 (childLL (childLL (childLL e24ThetaBelowRoot))) + e24KC2ThetaBelowLeaf0000 e24KC2ThetaBelowLeaf0001 e24KC2ThetaBelowLeaf0002 + e24KC2ThetaBelowNode0003 + +theorem e24KC2ThetaBelowNode001 : + adaptiveCoverCheck 15 (childLH (childLL (childLL e24ThetaBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 14 (childLH (childLL (childLL e24ThetaBelowRoot))) + e24KC2ThetaBelowNode0010 e24KC2ThetaBelowNode0011 e24KC2ThetaBelowNode0012 + e24KC2ThetaBelowNode0013 + +theorem e24KC2ThetaBelowNode003 : + adaptiveCoverCheck 15 (childHH (childLL (childLL e24ThetaBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 14 (childHH (childLL (childLL e24ThetaBelowRoot))) + e24KC2ThetaBelowLeaf0030 e24KC2ThetaBelowLeaf0031 e24KC2ThetaBelowLeaf0032 + e24KC2ThetaBelowLeaf0033 + +theorem e24KC2ThetaBelowNode010 : + adaptiveCoverCheck 15 (childLL (childLH (childLL e24ThetaBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 14 (childLL (childLH (childLL e24ThetaBelowRoot))) + e24KC2ThetaBelowNode0100 e24KC2ThetaBelowNode0101 e24KC2ThetaBelowNode0102 + e24KC2ThetaBelowNode0103 + +theorem e24KC2ThetaBelowNode011 : + adaptiveCoverCheck 15 (childLH (childLH (childLL e24ThetaBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 14 (childLH (childLH (childLL e24ThetaBelowRoot))) + e24KC2ThetaBelowNode0110 e24KC2ThetaBelowNode0111 e24KC2ThetaBelowNode0112 + e24KC2ThetaBelowNode0113 + +theorem e24KC2ThetaBelowNode012 : + adaptiveCoverCheck 15 (childHL (childLH (childLL e24ThetaBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 14 (childHL (childLH (childLL e24ThetaBelowRoot))) + e24KC2ThetaBelowLeaf0120 e24KC2ThetaBelowLeaf0121 e24KC2ThetaBelowLeaf0122 + e24KC2ThetaBelowLeaf0123 + +theorem e24KC2ThetaBelowNode013 : + adaptiveCoverCheck 15 (childHH (childLH (childLL e24ThetaBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 14 (childHH (childLH (childLL e24ThetaBelowRoot))) + e24KC2ThetaBelowLeaf0130 e24KC2ThetaBelowLeaf0131 e24KC2ThetaBelowLeaf0132 + e24KC2ThetaBelowLeaf0133 + +theorem e24KC2ThetaBelowNode100 : + adaptiveCoverCheck 15 (childLL (childLL (childLH e24ThetaBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 14 (childLL (childLL (childLH e24ThetaBelowRoot))) + e24KC2ThetaBelowNode1000 e24KC2ThetaBelowNode1001 e24KC2ThetaBelowNode1002 + e24KC2ThetaBelowNode1003 + +theorem e24KC2ThetaBelowNode101 : + adaptiveCoverCheck 15 (childLH (childLL (childLH e24ThetaBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 14 (childLH (childLL (childLH e24ThetaBelowRoot))) + e24KC2ThetaBelowNode1010 e24KC2ThetaBelowNode1011 e24KC2ThetaBelowNode1012 + e24KC2ThetaBelowNode1013 + +theorem e24KC2ThetaBelowNode102 : + adaptiveCoverCheck 15 (childHL (childLL (childLH e24ThetaBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 14 (childHL (childLL (childLH e24ThetaBelowRoot))) + e24KC2ThetaBelowLeaf1020 e24KC2ThetaBelowLeaf1021 e24KC2ThetaBelowLeaf1022 + e24KC2ThetaBelowLeaf1023 + +theorem e24KC2ThetaBelowNode103 : + adaptiveCoverCheck 15 (childHH (childLL (childLH e24ThetaBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 14 (childHH (childLL (childLH e24ThetaBelowRoot))) + e24KC2ThetaBelowLeaf1030 e24KC2ThetaBelowLeaf1031 e24KC2ThetaBelowLeaf1032 + e24KC2ThetaBelowLeaf1033 + +theorem e24KC2ThetaBelowNode110 : + adaptiveCoverCheck 15 (childLL (childLH (childLH e24ThetaBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 14 (childLL (childLH (childLH e24ThetaBelowRoot))) + e24KC2ThetaBelowNode1100 e24KC2ThetaBelowNode1101 e24KC2ThetaBelowNode1102 + e24KC2ThetaBelowNode1103 + +theorem e24KC2ThetaBelowNode111 : + adaptiveCoverCheck 15 (childLH (childLH (childLH e24ThetaBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 14 (childLH (childLH (childLH e24ThetaBelowRoot))) + e24KC2ThetaBelowNode1110 e24KC2ThetaBelowNode1111 e24KC2ThetaBelowNode1112 + e24KC2ThetaBelowNode1113 + +theorem e24KC2ThetaBelowNode112 : + adaptiveCoverCheck 15 (childHL (childLH (childLH e24ThetaBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 14 (childHL (childLH (childLH e24ThetaBelowRoot))) + e24KC2ThetaBelowLeaf1120 e24KC2ThetaBelowNode1121 e24KC2ThetaBelowLeaf1122 + e24KC2ThetaBelowLeaf1123 + +theorem e24KC2ThetaBelowNode113 : + adaptiveCoverCheck 15 (childHH (childLH (childLH e24ThetaBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 14 (childHH (childLH (childLH e24ThetaBelowRoot))) + e24KC2ThetaBelowNode1130 e24KC2ThetaBelowNode1131 e24KC2ThetaBelowLeaf1132 + e24KC2ThetaBelowLeaf1133 + +theorem e24KC2ThetaBelowNode130 : + adaptiveCoverCheck 15 (childLL (childHH (childLH e24ThetaBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 14 (childLL (childHH (childLH e24ThetaBelowRoot))) + e24KC2ThetaBelowLeaf1300 e24KC2ThetaBelowLeaf1301 e24KC2ThetaBelowLeaf1302 + e24KC2ThetaBelowLeaf1303 + +theorem e24KC2ThetaBelowNode131 : + adaptiveCoverCheck 15 (childLH (childHH (childLH e24ThetaBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 14 (childLH (childHH (childLH e24ThetaBelowRoot))) + e24KC2ThetaBelowLeaf1310 e24KC2ThetaBelowLeaf1311 e24KC2ThetaBelowLeaf1312 + e24KC2ThetaBelowLeaf1313 + +theorem e24KC2ThetaBelowNode00 : + adaptiveCoverCheck 16 (childLL (childLL e24ThetaBelowRoot)) = true := + adaptiveCoverCheck_succ_of_children 15 (childLL (childLL e24ThetaBelowRoot)) + e24KC2ThetaBelowNode000 e24KC2ThetaBelowNode001 e24KC2ThetaBelowLeaf002 e24KC2ThetaBelowNode003 + +theorem e24KC2ThetaBelowNode01 : + adaptiveCoverCheck 16 (childLH (childLL e24ThetaBelowRoot)) = true := + adaptiveCoverCheck_succ_of_children 15 (childLH (childLL e24ThetaBelowRoot)) + e24KC2ThetaBelowNode010 e24KC2ThetaBelowNode011 e24KC2ThetaBelowNode012 e24KC2ThetaBelowNode013 + +theorem e24KC2ThetaBelowNode03 : + adaptiveCoverCheck 16 (childHH (childLL e24ThetaBelowRoot)) = true := + adaptiveCoverCheck_succ_of_children 15 (childHH (childLL e24ThetaBelowRoot)) + e24KC2ThetaBelowLeaf030 e24KC2ThetaBelowLeaf031 e24KC2ThetaBelowLeaf032 e24KC2ThetaBelowLeaf033 + +theorem e24KC2ThetaBelowNode10 : + adaptiveCoverCheck 16 (childLL (childLH e24ThetaBelowRoot)) = true := + adaptiveCoverCheck_succ_of_children 15 (childLL (childLH e24ThetaBelowRoot)) + e24KC2ThetaBelowNode100 e24KC2ThetaBelowNode101 e24KC2ThetaBelowNode102 e24KC2ThetaBelowNode103 + +theorem e24KC2ThetaBelowNode11 : + adaptiveCoverCheck 16 (childLH (childLH e24ThetaBelowRoot)) = true := + adaptiveCoverCheck_succ_of_children 15 (childLH (childLH e24ThetaBelowRoot)) + e24KC2ThetaBelowNode110 e24KC2ThetaBelowNode111 e24KC2ThetaBelowNode112 e24KC2ThetaBelowNode113 + +theorem e24KC2ThetaBelowNode12 : + adaptiveCoverCheck 16 (childHL (childLH e24ThetaBelowRoot)) = true := + adaptiveCoverCheck_succ_of_children 15 (childHL (childLH e24ThetaBelowRoot)) + e24KC2ThetaBelowLeaf120 e24KC2ThetaBelowLeaf121 e24KC2ThetaBelowLeaf122 e24KC2ThetaBelowLeaf123 + +theorem e24KC2ThetaBelowNode13 : + adaptiveCoverCheck 16 (childHH (childLH e24ThetaBelowRoot)) = true := + adaptiveCoverCheck_succ_of_children 15 (childHH (childLH e24ThetaBelowRoot)) + e24KC2ThetaBelowNode130 e24KC2ThetaBelowNode131 e24KC2ThetaBelowLeaf132 e24KC2ThetaBelowLeaf133 + +theorem e24KC2ThetaBelowNode30 : + adaptiveCoverCheck 16 (childLL (childHH e24ThetaBelowRoot)) = true := + adaptiveCoverCheck_succ_of_children 15 (childLL (childHH e24ThetaBelowRoot)) + e24KC2ThetaBelowLeaf300 e24KC2ThetaBelowLeaf301 e24KC2ThetaBelowLeaf302 e24KC2ThetaBelowLeaf303 + +theorem e24KC2ThetaBelowNode31 : + adaptiveCoverCheck 16 (childLH (childHH e24ThetaBelowRoot)) = true := + adaptiveCoverCheck_succ_of_children 15 (childLH (childHH e24ThetaBelowRoot)) + e24KC2ThetaBelowLeaf310 e24KC2ThetaBelowLeaf311 e24KC2ThetaBelowLeaf312 e24KC2ThetaBelowLeaf313 + +theorem e24KC2ThetaBelowNode33 : + adaptiveCoverCheck 16 (childHH (childHH e24ThetaBelowRoot)) = true := + adaptiveCoverCheck_succ_of_children 15 (childHH (childHH e24ThetaBelowRoot)) + e24KC2ThetaBelowLeaf330 e24KC2ThetaBelowLeaf331 e24KC2ThetaBelowLeaf332 e24KC2ThetaBelowLeaf333 + +theorem e24KC2ThetaBelowNode0 : + adaptiveCoverCheck 17 (childLL e24ThetaBelowRoot) = true := + adaptiveCoverCheck_succ_of_children 16 (childLL e24ThetaBelowRoot) + e24KC2ThetaBelowNode00 e24KC2ThetaBelowNode01 e24KC2ThetaBelowLeaf02 e24KC2ThetaBelowNode03 + +theorem e24KC2ThetaBelowNode1 : + adaptiveCoverCheck 17 (childLH e24ThetaBelowRoot) = true := + adaptiveCoverCheck_succ_of_children 16 (childLH e24ThetaBelowRoot) + e24KC2ThetaBelowNode10 e24KC2ThetaBelowNode11 e24KC2ThetaBelowNode12 e24KC2ThetaBelowNode13 + +theorem e24KC2ThetaBelowNode3 : + adaptiveCoverCheck 17 (childHH e24ThetaBelowRoot) = true := + adaptiveCoverCheck_succ_of_children 16 (childHH e24ThetaBelowRoot) + e24KC2ThetaBelowNode30 e24KC2ThetaBelowNode31 e24KC2ThetaBelowLeaf32 e24KC2ThetaBelowNode33 + +theorem e24KC2ThetaBelowNodeROOT : + adaptiveCoverCheck 18 e24ThetaBelowRoot = true := + adaptiveCoverCheck_succ_of_children 17 e24ThetaBelowRoot + e24KC2ThetaBelowNode0 e24KC2ThetaBelowNode1 e24KC2ThetaBelowLeaf2 e24KC2ThetaBelowNode3 + +theorem e24ThetaBelowKernelCheck : + adaptiveCoverCheck 18 e24ThetaBelowRoot = true := + e24KC2ThetaBelowNodeROOT + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101101_c0_c0_c0_6_00029 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse9ea903ef1 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse9ea903ef1 + +open CertificateCellse9ea903ef1 + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c0 : + adaptiveCoverCheck 6 (childLL (childLL phiAboveCell11011010)) = true := + adaptiveCoverCheck_succ_of_children 5 (childLL (childLL phiAboveCell11011010)) + e24KC2PhiAboveLeaf1101101_c0_c0_c0_c0 e24KC2PhiAboveLeaf1101101_c0_c0_c0_c1 + e24KC2PhiAboveLeaf1101101_c0_c0_c0_c2 e24KC2PhiAboveLeaf1101101_c0_c0_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101101_c0_c0_c1_c0_5_00036 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells89d797401e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells89d797401e + +open CertificateCells89d797401e + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c1_c0 : + adaptiveCoverCheck 5 (childLL (childLH (childLL phiAboveCell11011010))) = true := + adaptiveCoverCheck_succ_of_children 4 (childLL (childLH (childLL phiAboveCell11011010))) + e24KC2PhiAboveLeaf1101101_c0_c0_c1_c0_c0 e24KC2PhiAboveLeaf1101101_c0_c0_c1_c0_c1 + e24KC2PhiAboveLeaf1101101_c0_c0_c1_c0_c2 e24KC2PhiAboveLeaf1101101_c0_c0_c1_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101101_c0_c0_c1_c1_5_00042 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsafdf6e4305 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsafdf6e4305 + +open CertificateCellsafdf6e4305 + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c1_c1 : + adaptiveCoverCheck 5 (childLH (childLH (childLL phiAboveCell11011010))) = true := + adaptiveCoverCheck_succ_of_children 4 (childLH (childLH (childLL phiAboveCell11011010))) + e24KC2PhiAboveLeaf1101101_c0_c0_c1_c1_c0 e24KC2PhiAboveLeaf1101101_c0_c0_c1_c1_c1 + e24KC2PhiAboveLeaf1101101_c0_c0_c1_c1_c2 e24KC2PhiAboveLeaf1101101_c0_c0_c1_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101101_c0_c0_c1_6_00045 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0d2c374949 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0d2c374949 + +open CertificateCells0d2c374949 + +theorem e24KC2PhiAboveLeaf1101101_c0_c0_c1 : + adaptiveCoverCheck 6 (childLH (childLL phiAboveCell11011010)) = true := + adaptiveCoverCheck_succ_of_children 5 (childLH (childLL phiAboveCell11011010)) + e24KC2PhiAboveLeaf1101101_c0_c0_c1_c0 e24KC2PhiAboveLeaf1101101_c0_c0_c1_c1 + e24KC2PhiAboveLeaf1101101_c0_c0_c1_c2 e24KC2PhiAboveLeaf1101101_c0_c0_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101101_c0_c0_7_00048 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3df86e4955 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3df86e4955 + +open CertificateCells3df86e4955 + +theorem e24KC2PhiAboveLeaf1101101_c0_c0 : + adaptiveCoverCheck 7 (childLL phiAboveCell11011010) = true := + adaptiveCoverCheck_succ_of_children 6 (childLL phiAboveCell11011010) + e24KC2PhiAboveLeaf1101101_c0_c0_c0 e24KC2PhiAboveLeaf1101101_c0_c0_c1 + e24KC2PhiAboveLeaf1101101_c0_c0_c2 e24KC2PhiAboveLeaf1101101_c0_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101101_c0_c1_c0_c0_5_00056 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3298a326ef + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3298a326ef + +open CertificateCells3298a326ef + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c0_c0 : + adaptiveCoverCheck 5 (childLL (childLL (childLH phiAboveCell11011010))) = true := + adaptiveCoverCheck_succ_of_children 4 (childLL (childLL (childLH phiAboveCell11011010))) + e24KC2PhiAboveLeaf1101101_c0_c1_c0_c0_c0 e24KC2PhiAboveLeaf1101101_c0_c1_c0_c0_c1 + e24KC2PhiAboveLeaf1101101_c0_c1_c0_c0_c2 e24KC2PhiAboveLeaf1101101_c0_c1_c0_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101101_c0_c1_c0_c1_5_00062 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells47980ca575 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells47980ca575 + +open CertificateCells47980ca575 + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c0_c1 : + adaptiveCoverCheck 5 (childLH (childLL (childLH phiAboveCell11011010))) = true := + adaptiveCoverCheck_succ_of_children 4 (childLH (childLL (childLH phiAboveCell11011010))) + e24KC2PhiAboveLeaf1101101_c0_c1_c0_c1_c0 e24KC2PhiAboveLeaf1101101_c0_c1_c0_c1_c1 + e24KC2PhiAboveLeaf1101101_c0_c1_c0_c1_c2 e24KC2PhiAboveLeaf1101101_c0_c1_c0_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101101_c0_c1_c0_6_00065 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsfed39385df + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsfed39385df + +open CertificateCellsfed39385df + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c0 : + adaptiveCoverCheck 6 (childLL (childLH phiAboveCell11011010)) = true := + adaptiveCoverCheck_succ_of_children 5 (childLL (childLH phiAboveCell11011010)) + e24KC2PhiAboveLeaf1101101_c0_c1_c0_c0 e24KC2PhiAboveLeaf1101101_c0_c1_c0_c1 + e24KC2PhiAboveLeaf1101101_c0_c1_c0_c2 e24KC2PhiAboveLeaf1101101_c0_c1_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101101_c0_c1_c1_6_00071 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb1b33fecca + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb1b33fecca + +open CertificateCellsb1b33fecca + +theorem e24KC2PhiAboveLeaf1101101_c0_c1_c1 : + adaptiveCoverCheck 6 (childLH (childLH phiAboveCell11011010)) = true := + adaptiveCoverCheck_succ_of_children 5 (childLH (childLH phiAboveCell11011010)) + e24KC2PhiAboveLeaf1101101_c0_c1_c1_c0 e24KC2PhiAboveLeaf1101101_c0_c1_c1_c1 + e24KC2PhiAboveLeaf1101101_c0_c1_c1_c2 e24KC2PhiAboveLeaf1101101_c0_c1_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101101_c0_c1_7_00074 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc427a8578f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc427a8578f + +open CertificateCellsc427a8578f + +theorem e24KC2PhiAboveLeaf1101101_c0_c1 : + adaptiveCoverCheck 7 (childLH phiAboveCell11011010) = true := + adaptiveCoverCheck_succ_of_children 6 (childLH phiAboveCell11011010) + e24KC2PhiAboveLeaf1101101_c0_c1_c0 e24KC2PhiAboveLeaf1101101_c0_c1_c1 + e24KC2PhiAboveLeaf1101101_c0_c1_c2 e24KC2PhiAboveLeaf1101101_c0_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101101_c0_8_00077 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells25978ec18d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells25978ec18d + +open CertificateCells25978ec18d + +theorem e24KC2PhiAboveLeaf1101101_c0 : + adaptiveCoverCheck 8 phiAboveCell11011010 = true := + adaptiveCoverCheck_succ_of_children 7 phiAboveCell11011010 + e24KC2PhiAboveLeaf1101101_c0_c0 e24KC2PhiAboveLeaf1101101_c0_c1 + e24KC2PhiAboveLeaf1101101_c0_c2 e24KC2PhiAboveLeaf1101101_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101101_c1_c0_c0_6_00085 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse6161a42be + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse6161a42be + +open CertificateCellse6161a42be + +theorem e24KC2PhiAboveLeaf1101101_c1_c0_c0 : + adaptiveCoverCheck 6 (childLL (childLL phiAboveCell11011011)) = true := + adaptiveCoverCheck_succ_of_children 5 (childLL (childLL phiAboveCell11011011)) + e24KC2PhiAboveLeaf1101101_c1_c0_c0_c0 e24KC2PhiAboveLeaf1101101_c1_c0_c0_c1 + e24KC2PhiAboveLeaf1101101_c1_c0_c0_c2 e24KC2PhiAboveLeaf1101101_c1_c0_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101101_c1_c0_c1_6_00091 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1f6ffcc997 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1f6ffcc997 + +open CertificateCells1f6ffcc997 + +theorem e24KC2PhiAboveLeaf1101101_c1_c0_c1 : + adaptiveCoverCheck 6 (childLH (childLL phiAboveCell11011011)) = true := + adaptiveCoverCheck_succ_of_children 5 (childLH (childLL phiAboveCell11011011)) + e24KC2PhiAboveLeaf1101101_c1_c0_c1_c0 e24KC2PhiAboveLeaf1101101_c1_c0_c1_c1 + e24KC2PhiAboveLeaf1101101_c1_c0_c1_c2 e24KC2PhiAboveLeaf1101101_c1_c0_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101101_c1_c0_7_00094 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1275d3adc4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1275d3adc4 + +open CertificateCells1275d3adc4 + +theorem e24KC2PhiAboveLeaf1101101_c1_c0 : + adaptiveCoverCheck 7 (childLL phiAboveCell11011011) = true := + adaptiveCoverCheck_succ_of_children 6 (childLL phiAboveCell11011011) + e24KC2PhiAboveLeaf1101101_c1_c0_c0 e24KC2PhiAboveLeaf1101101_c1_c0_c1 + e24KC2PhiAboveLeaf1101101_c1_c0_c2 e24KC2PhiAboveLeaf1101101_c1_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101101_c1_c1_c0_6_00101 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells021b870816 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells021b870816 + +open CertificateCells021b870816 + +theorem e24KC2PhiAboveLeaf1101101_c1_c1_c0 : + adaptiveCoverCheck 6 (childLL (childLH phiAboveCell11011011)) = true := + adaptiveCoverCheck_succ_of_children 5 (childLL (childLH phiAboveCell11011011)) + e24KC2PhiAboveLeaf1101101_c1_c1_c0_c0 e24KC2PhiAboveLeaf1101101_c1_c1_c0_c1 + e24KC2PhiAboveLeaf1101101_c1_c1_c0_c2 e24KC2PhiAboveLeaf1101101_c1_c1_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101101_c1_c1_7_00105 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells9ade3f586f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells9ade3f586f + +open CertificateCells9ade3f586f + +theorem e24KC2PhiAboveLeaf1101101_c1_c1 : + adaptiveCoverCheck 7 (childLH phiAboveCell11011011) = true := + adaptiveCoverCheck_succ_of_children 6 (childLH phiAboveCell11011011) + e24KC2PhiAboveLeaf1101101_c1_c1_c0 e24KC2PhiAboveLeaf1101101_c1_c1_c1 + e24KC2PhiAboveLeaf1101101_c1_c1_c2 e24KC2PhiAboveLeaf1101101_c1_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101101_c1_8_00108 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsfd8221930a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsfd8221930a + +open CertificateCellsfd8221930a + +theorem e24KC2PhiAboveLeaf1101101_c1 : + adaptiveCoverCheck 8 phiAboveCell11011011 = true := + adaptiveCoverCheck_succ_of_children 7 phiAboveCell11011011 + e24KC2PhiAboveLeaf1101101_c1_c0 e24KC2PhiAboveLeaf1101101_c1_c1 + e24KC2PhiAboveLeaf1101101_c1_c2 e24KC2PhiAboveLeaf1101101_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101101_9_00111 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5aaf24f73d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5aaf24f73d + +open CertificateCells5aaf24f73d + +theorem e24KC2PhiAboveLeaf1101101 : + adaptiveCoverCheck 9 (childLH (childLL (childLH phiAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 8 (childLH (childLL (childLH phiAboveCell1101))) + e24KC2PhiAboveLeaf1101101_c0 e24KC2PhiAboveLeaf1101101_c1 e24KC2PhiAboveLeaf1101101_c2 + e24KC2PhiAboveLeaf1101101_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101110_c0_c0_7_00122 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells31cca9f2c5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells31cca9f2c5 + +open CertificateCells31cca9f2c5 + +theorem e24KC2PhiAboveLeaf1101110_c0_c0 : + adaptiveCoverCheck 7 (childLL phiAboveCell11011100) = true := + adaptiveCoverCheck_succ_of_children 6 (childLL phiAboveCell11011100) + e24KC2PhiAboveLeaf1101110_c0_c0_c0 e24KC2PhiAboveLeaf1101110_c0_c0_c1 + e24KC2PhiAboveLeaf1101110_c0_c0_c2 e24KC2PhiAboveLeaf1101110_c0_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101110_c0_c1_c0_6_00129 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0a8495a296 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0a8495a296 + +open CertificateCells0a8495a296 + +theorem e24KC2PhiAboveLeaf1101110_c0_c1_c0 : + adaptiveCoverCheck 6 (childLL (childLH phiAboveCell11011100)) = true := + adaptiveCoverCheck_succ_of_children 5 (childLL (childLH phiAboveCell11011100)) + e24KC2PhiAboveLeaf1101110_c0_c1_c0_c0 e24KC2PhiAboveLeaf1101110_c0_c1_c0_c1 + e24KC2PhiAboveLeaf1101110_c0_c1_c0_c2 e24KC2PhiAboveLeaf1101110_c0_c1_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101110_c0_c1_7_00133 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4cabb07dbd + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4cabb07dbd + +open CertificateCells4cabb07dbd + +theorem e24KC2PhiAboveLeaf1101110_c0_c1 : + adaptiveCoverCheck 7 (childLH phiAboveCell11011100) = true := + adaptiveCoverCheck_succ_of_children 6 (childLH phiAboveCell11011100) + e24KC2PhiAboveLeaf1101110_c0_c1_c0 e24KC2PhiAboveLeaf1101110_c0_c1_c1 + e24KC2PhiAboveLeaf1101110_c0_c1_c2 e24KC2PhiAboveLeaf1101110_c0_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101110_c0_8_00136 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc6c93e8f5c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc6c93e8f5c + +open CertificateCellsc6c93e8f5c + +theorem e24KC2PhiAboveLeaf1101110_c0 : + adaptiveCoverCheck 8 phiAboveCell11011100 = true := + adaptiveCoverCheck_succ_of_children 7 phiAboveCell11011100 + e24KC2PhiAboveLeaf1101110_c0_c0 e24KC2PhiAboveLeaf1101110_c0_c1 + e24KC2PhiAboveLeaf1101110_c0_c2 e24KC2PhiAboveLeaf1101110_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101110_c1_8_00142 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsaa40da30f6 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsaa40da30f6 + +open CertificateCellsaa40da30f6 + +theorem e24KC2PhiAboveLeaf1101110_c1 : + adaptiveCoverCheck 8 phiAboveCell11011101 = true := + adaptiveCoverCheck_succ_of_children 7 phiAboveCell11011101 + e24KC2PhiAboveLeaf1101110_c1_c0 e24KC2PhiAboveLeaf1101110_c1_c1 + e24KC2PhiAboveLeaf1101110_c1_c2 e24KC2PhiAboveLeaf1101110_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101110_9_00145 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells919c5d7ca9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells919c5d7ca9 + +open CertificateCells919c5d7ca9 + +theorem e24KC2PhiAboveLeaf1101110 : + adaptiveCoverCheck 9 (childLL (childLH (childLH phiAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 8 (childLL (childLH (childLH phiAboveCell1101))) + e24KC2PhiAboveLeaf1101110_c0 e24KC2PhiAboveLeaf1101110_c1 e24KC2PhiAboveLeaf1101110_c2 + e24KC2PhiAboveLeaf1101110_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101111_c0_c1_7_00156 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells87d4f5e678 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells87d4f5e678 + +open CertificateCells87d4f5e678 + +theorem e24KC2PhiAboveLeaf1101111_c0_c1 : + adaptiveCoverCheck 7 (childLH phiAboveCell11011110) = true := + adaptiveCoverCheck_succ_of_children 6 (childLH phiAboveCell11011110) + e24KC2PhiAboveLeaf1101111_c0_c1_c0 e24KC2PhiAboveLeaf1101111_c0_c1_c1 + e24KC2PhiAboveLeaf1101111_c0_c1_c2 e24KC2PhiAboveLeaf1101111_c0_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101111_c0_8_00159 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsefc5f924ee + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsefc5f924ee + +open CertificateCellsefc5f924ee + +theorem e24KC2PhiAboveLeaf1101111_c0 : + adaptiveCoverCheck 8 phiAboveCell11011110 = true := + adaptiveCoverCheck_succ_of_children 7 phiAboveCell11011110 + e24KC2PhiAboveLeaf1101111_c0_c0 e24KC2PhiAboveLeaf1101111_c0_c1 + e24KC2PhiAboveLeaf1101111_c0_c2 e24KC2PhiAboveLeaf1101111_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101111_c1_8_00165 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsac583a159d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsac583a159d + +open CertificateCellsac583a159d + +theorem e24KC2PhiAboveLeaf1101111_c1 : + adaptiveCoverCheck 8 phiAboveCell11011111 = true := + adaptiveCoverCheck_succ_of_children 7 phiAboveCell11011111 + e24KC2PhiAboveLeaf1101111_c1_c0 e24KC2PhiAboveLeaf1101111_c1_c1 + e24KC2PhiAboveLeaf1101111_c1_c2 e24KC2PhiAboveLeaf1101111_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1101111_9_00168 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf317a94cb3 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf317a94cb3 + +open CertificateCellsf317a94cb3 + +theorem e24KC2PhiAboveLeaf1101111 : + adaptiveCoverCheck 9 (childLH (childLH (childLH phiAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 8 (childLH (childLH (childLH phiAboveCell1101))) + e24KC2PhiAboveLeaf1101111_c0 e24KC2PhiAboveLeaf1101111_c1 e24KC2PhiAboveLeaf1101111_c2 + e24KC2PhiAboveLeaf1101111_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1110000_c0_8_00178 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf7dce840c8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf7dce840c8 + +open CertificateCellsf7dce840c8 + +theorem e24KC2PhiAboveLeaf1110000_c0 : + adaptiveCoverCheck 8 phiAboveCell11100000 = true := + adaptiveCoverCheck_succ_of_children 7 phiAboveCell11100000 + e24KC2PhiAboveLeaf1110000_c0_c0 e24KC2PhiAboveLeaf1110000_c0_c1 + e24KC2PhiAboveLeaf1110000_c0_c2 e24KC2PhiAboveLeaf1110000_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1110000_9_00182 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5fe660c4fc + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5fe660c4fc + +open CertificateCells5fe660c4fc + +theorem e24KC2PhiAboveLeaf1110000 : + adaptiveCoverCheck 9 (childLL (childLL (childLL phiAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 8 (childLL (childLL (childLL phiAboveCell1110))) + e24KC2PhiAboveLeaf1110000_c0 e24KC2PhiAboveLeaf1110000_c1 e24KC2PhiAboveLeaf1110000_c2 + e24KC2PhiAboveLeaf1110000_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1110001_9_00191 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells7e3a6c7b6b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells7e3a6c7b6b + +open CertificateCells7e3a6c7b6b + +theorem e24KC2PhiAboveLeaf1110001 : + adaptiveCoverCheck 9 (childLH (childLL (childLL phiAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 8 (childLH (childLL (childLL phiAboveCell1110))) + e24KC2PhiAboveLeaf1110001_c0 e24KC2PhiAboveLeaf1110001_c1 e24KC2PhiAboveLeaf1110001_c2 + e24KC2PhiAboveLeaf1110001_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1110010_9_00200 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa5efdb03f3 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa5efdb03f3 + +open CertificateCellsa5efdb03f3 + +theorem e24KC2PhiAboveLeaf1110010 : + adaptiveCoverCheck 9 (childLL (childLH (childLL phiAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 8 (childLL (childLH (childLL phiAboveCell1110))) + e24KC2PhiAboveLeaf1110010_c0 e24KC2PhiAboveLeaf1110010_c1 e24KC2PhiAboveLeaf1110010_c2 + e24KC2PhiAboveLeaf1110010_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Above Leaf1110011_9_00208 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4f05b2093e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4f05b2093e + +open CertificateCells4f05b2093e + +theorem e24KC2PhiAboveLeaf1110011 : + adaptiveCoverCheck 9 (childLH (childLH (childLL phiAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 8 (childLH (childLH (childLL phiAboveCell1110))) + e24KC2PhiAboveLeaf1110011_c0 e24KC2PhiAboveLeaf1110011_c1 e24KC2PhiAboveLeaf1110011_c2 + e24KC2PhiAboveLeaf1110011_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC6Phi Above Reconstruct +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa15368d7db + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa15368d7db + +open CertificateCellsa15368d7db + +theorem e24KC2PhiAboveNode100101 : + adaptiveCoverCheck 10 (childLH (childLL phiAboveCell1001)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH (childLL phiAboveCell1001)) + e24KC2PhiAboveLeaf1001010 e24KC2PhiAboveLeaf1001011 e24KC2PhiAboveLeaf1001012 + e24KC2PhiAboveLeaf1001013 + +theorem e24KC2PhiAboveNode100110 : + adaptiveCoverCheck 10 (childLL (childLH phiAboveCell1001)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL (childLH phiAboveCell1001)) + e24KC2PhiAboveLeaf1001100 e24KC2PhiAboveLeaf1001101 e24KC2PhiAboveLeaf1001102 + e24KC2PhiAboveLeaf1001103 + +theorem e24KC2PhiAboveNode100111 : + adaptiveCoverCheck 10 (childLH (childLH phiAboveCell1001)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH (childLH phiAboveCell1001)) + e24KC2PhiAboveLeaf1001110 e24KC2PhiAboveLeaf1001111 e24KC2PhiAboveLeaf1001112 + e24KC2PhiAboveLeaf1001113 + +theorem e24KC2PhiAboveNode101000 : + adaptiveCoverCheck 10 (childLL (childLL phiAboveCell1010)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL (childLL phiAboveCell1010)) + e24KC2PhiAboveLeaf1010000 e24KC2PhiAboveLeaf1010001 e24KC2PhiAboveLeaf1010002 + e24KC2PhiAboveLeaf1010003 + +theorem e24KC2PhiAboveNode101001 : + adaptiveCoverCheck 10 (childLH (childLL phiAboveCell1010)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH (childLL phiAboveCell1010)) + e24KC2PhiAboveLeaf1010010 e24KC2PhiAboveLeaf1010011 e24KC2PhiAboveLeaf1010012 + e24KC2PhiAboveLeaf1010013 + +theorem e24KC2PhiAboveNode101010 : + adaptiveCoverCheck 10 (childLL (childLH phiAboveCell1010)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL (childLH phiAboveCell1010)) + e24KC2PhiAboveLeaf1010100 e24KC2PhiAboveLeaf1010101 e24KC2PhiAboveLeaf1010102 + e24KC2PhiAboveLeaf1010103 + +theorem e24KC2PhiAboveNode101011 : + adaptiveCoverCheck 10 (childLH (childLH phiAboveCell1010)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH (childLH phiAboveCell1010)) + e24KC2PhiAboveLeaf1010110 e24KC2PhiAboveLeaf1010111 e24KC2PhiAboveLeaf1010112 + e24KC2PhiAboveLeaf1010113 + +theorem e24KC2PhiAboveNode101100 : + adaptiveCoverCheck 10 (childLL (childLL phiAboveCell1011)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL (childLL phiAboveCell1011)) + e24KC2PhiAboveLeaf1011000 e24KC2PhiAboveLeaf1011001 e24KC2PhiAboveLeaf1011002 + e24KC2PhiAboveLeaf1011003 + +theorem e24KC2PhiAboveNode101101 : + adaptiveCoverCheck 10 (childLH (childLL phiAboveCell1011)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH (childLL phiAboveCell1011)) + e24KC2PhiAboveLeaf1011010 e24KC2PhiAboveLeaf1011011 e24KC2PhiAboveLeaf1011012 + e24KC2PhiAboveLeaf1011013 + +theorem e24KC2PhiAboveNode101110 : + adaptiveCoverCheck 10 (childLL (childLH phiAboveCell1011)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL (childLH phiAboveCell1011)) + e24KC2PhiAboveLeaf1011100 e24KC2PhiAboveLeaf1011101 e24KC2PhiAboveLeaf1011102 + e24KC2PhiAboveLeaf1011103 + +theorem e24KC2PhiAboveNode101111 : + adaptiveCoverCheck 10 (childLH (childLH phiAboveCell1011)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH (childLH phiAboveCell1011)) + e24KC2PhiAboveLeaf1011110 e24KC2PhiAboveLeaf1011111 e24KC2PhiAboveLeaf1011112 + e24KC2PhiAboveLeaf1011113 + +theorem e24KC2PhiAboveNode110000 : + adaptiveCoverCheck 10 (childLL (childLL phiAboveCell1100)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL (childLL phiAboveCell1100)) + e24KC2PhiAboveLeaf1100000 e24KC2PhiAboveLeaf1100001 e24KC2PhiAboveLeaf1100002 + e24KC2PhiAboveLeaf1100003 + +theorem e24KC2PhiAboveNode110001 : + adaptiveCoverCheck 10 (childLH (childLL phiAboveCell1100)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH (childLL phiAboveCell1100)) + e24KC2PhiAboveLeaf1100010 e24KC2PhiAboveLeaf1100011 e24KC2PhiAboveLeaf1100012 + e24KC2PhiAboveLeaf1100013 + +theorem e24KC2PhiAboveNode110010 : + adaptiveCoverCheck 10 (childLL (childLH phiAboveCell1100)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL (childLH phiAboveCell1100)) + e24KC2PhiAboveLeaf1100100 e24KC2PhiAboveLeaf1100101 e24KC2PhiAboveLeaf1100102 + e24KC2PhiAboveLeaf1100103 + +theorem e24KC2PhiAboveNode110011 : + adaptiveCoverCheck 10 (childLH (childLH phiAboveCell1100)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH (childLH phiAboveCell1100)) + e24KC2PhiAboveLeaf1100110 e24KC2PhiAboveLeaf1100111 e24KC2PhiAboveLeaf1100112 + e24KC2PhiAboveLeaf1100113 + +theorem e24KC2PhiAboveNode110013 : + adaptiveCoverCheck 10 (childHH (childLH phiAboveCell1100)) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH (childLH phiAboveCell1100)) + e24KC2PhiAboveLeaf1100130 e24KC2PhiAboveLeaf1100131 e24KC2PhiAboveLeaf1100132 + e24KC2PhiAboveLeaf1100133 + +theorem e24KC2PhiAboveNode110100 : + adaptiveCoverCheck 10 (childLL (childLL phiAboveCell1101)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL (childLL phiAboveCell1101)) + e24KC2PhiAboveLeaf1101000 e24KC2PhiAboveLeaf1101001 e24KC2PhiAboveLeaf1101002 + e24KC2PhiAboveLeaf1101003 + +theorem e24KC2PhiAboveNode110101 : + adaptiveCoverCheck 10 (childLH (childLL phiAboveCell1101)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH (childLL phiAboveCell1101)) + e24KC2PhiAboveLeaf1101010 e24KC2PhiAboveLeaf1101011 e24KC2PhiAboveLeaf1101012 + e24KC2PhiAboveLeaf1101013 + +theorem e24KC2PhiAboveNode110102 : + adaptiveCoverCheck 10 (childHL (childLL phiAboveCell1101)) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL (childLL phiAboveCell1101)) + e24KC2PhiAboveLeaf1101020 e24KC2PhiAboveLeaf1101021 e24KC2PhiAboveLeaf1101022 + e24KC2PhiAboveLeaf1101023 + +theorem e24KC2PhiAboveNode110103 : + adaptiveCoverCheck 10 (childHH (childLL phiAboveCell1101)) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH (childLL phiAboveCell1101)) + e24KC2PhiAboveLeaf1101030 e24KC2PhiAboveLeaf1101031 e24KC2PhiAboveLeaf1101032 + e24KC2PhiAboveLeaf1101033 + +theorem e24KC2PhiAboveNode110110 : + adaptiveCoverCheck 10 (childLL (childLH phiAboveCell1101)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL (childLH phiAboveCell1101)) + e24KC2PhiAboveLeaf1101100 e24KC2PhiAboveLeaf1101101 e24KC2PhiAboveLeaf1101102 + e24KC2PhiAboveLeaf1101103 + +theorem e24KC2PhiAboveNode110111 : + adaptiveCoverCheck 10 (childLH (childLH phiAboveCell1101)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH (childLH phiAboveCell1101)) + e24KC2PhiAboveLeaf1101110 e24KC2PhiAboveLeaf1101111 e24KC2PhiAboveLeaf1101112 + e24KC2PhiAboveLeaf1101113 + +theorem e24KC2PhiAboveNode110112 : + adaptiveCoverCheck 10 (childHL (childLH phiAboveCell1101)) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL (childLH phiAboveCell1101)) + e24KC2PhiAboveLeaf1101120 e24KC2PhiAboveLeaf1101121 e24KC2PhiAboveLeaf1101122 + e24KC2PhiAboveLeaf1101123 + +theorem e24KC2PhiAboveNode110113 : + adaptiveCoverCheck 10 (childHH (childLH phiAboveCell1101)) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH (childLH phiAboveCell1101)) + e24KC2PhiAboveLeaf1101130 e24KC2PhiAboveLeaf1101131 e24KC2PhiAboveLeaf1101132 + e24KC2PhiAboveLeaf1101133 + +theorem e24KC2PhiAboveNode111000 : + adaptiveCoverCheck 10 (childLL (childLL phiAboveCell1110)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL (childLL phiAboveCell1110)) + e24KC2PhiAboveLeaf1110000 e24KC2PhiAboveLeaf1110001 e24KC2PhiAboveLeaf1110002 + e24KC2PhiAboveLeaf1110003 + +theorem e24KC2PhiAboveNode111001 : + adaptiveCoverCheck 10 (childLH (childLL phiAboveCell1110)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH (childLL phiAboveCell1110)) + e24KC2PhiAboveLeaf1110010 e24KC2PhiAboveLeaf1110011 e24KC2PhiAboveLeaf1110012 + e24KC2PhiAboveLeaf1110013 + +theorem e24KC2PhiAboveNode111002 : + adaptiveCoverCheck 10 (childHL (childLL phiAboveCell1110)) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL (childLL phiAboveCell1110)) + e24KC2PhiAboveLeaf1110020 e24KC2PhiAboveLeaf1110021 e24KC2PhiAboveLeaf1110022 + e24KC2PhiAboveLeaf1110023 + +theorem e24KC2PhiAboveNode111003 : + adaptiveCoverCheck 10 (childHH (childLL phiAboveCell1110)) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH (childLL phiAboveCell1110)) + e24KC2PhiAboveLeaf1110030 e24KC2PhiAboveLeaf1110031 e24KC2PhiAboveLeaf1110032 + e24KC2PhiAboveLeaf1110033 + +theorem e24KC2PhiAboveNode111010 : + adaptiveCoverCheck 10 (childLL (childLH phiAboveCell1110)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL (childLH phiAboveCell1110)) + e24KC2PhiAboveLeaf1110100 e24KC2PhiAboveLeaf1110101 e24KC2PhiAboveLeaf1110102 + e24KC2PhiAboveLeaf1110103 + +theorem e24KC2PhiAboveNode111011 : + adaptiveCoverCheck 10 (childLH (childLH phiAboveCell1110)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH (childLH phiAboveCell1110)) + e24KC2PhiAboveLeaf1110110 e24KC2PhiAboveLeaf1110111 e24KC2PhiAboveLeaf1110112 + e24KC2PhiAboveLeaf1110113 + +theorem e24KC2PhiAboveNode111012 : + adaptiveCoverCheck 10 (childHL (childLH phiAboveCell1110)) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL (childLH phiAboveCell1110)) + e24KC2PhiAboveLeaf1110120 e24KC2PhiAboveLeaf1110121 e24KC2PhiAboveLeaf1110122 + e24KC2PhiAboveLeaf1110123 + +theorem e24KC2PhiAboveNode111013 : + adaptiveCoverCheck 10 (childHH (childLH phiAboveCell1110)) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH (childLH phiAboveCell1110)) + e24KC2PhiAboveLeaf1110130 e24KC2PhiAboveLeaf1110131 e24KC2PhiAboveLeaf1110132 + e24KC2PhiAboveLeaf1110133 + +theorem e24KC2PhiAboveNode111100 : + adaptiveCoverCheck 10 (childLL (childLL phiAboveCell1111)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL (childLL phiAboveCell1111)) + e24KC2PhiAboveLeaf1111000 e24KC2PhiAboveLeaf1111001 e24KC2PhiAboveLeaf1111002 + e24KC2PhiAboveLeaf1111003 + +theorem e24KC2PhiAboveNode111101 : + adaptiveCoverCheck 10 (childLH (childLL phiAboveCell1111)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH (childLL phiAboveCell1111)) + e24KC2PhiAboveLeaf1111010 e24KC2PhiAboveLeaf1111011 e24KC2PhiAboveLeaf1111012 + e24KC2PhiAboveLeaf1111013 + +theorem e24KC2PhiAboveNode111102 : + adaptiveCoverCheck 10 (childHL (childLL phiAboveCell1111)) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL (childLL phiAboveCell1111)) + e24KC2PhiAboveLeaf1111020 e24KC2PhiAboveLeaf1111021 e24KC2PhiAboveLeaf1111022 + e24KC2PhiAboveLeaf1111023 + +theorem e24KC2PhiAboveNode111103 : + adaptiveCoverCheck 10 (childHH (childLL phiAboveCell1111)) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH (childLL phiAboveCell1111)) + e24KC2PhiAboveLeaf1111030 e24KC2PhiAboveLeaf1111031 e24KC2PhiAboveLeaf1111032 + e24KC2PhiAboveLeaf1111033 + +theorem e24KC2PhiAboveNode111110 : + adaptiveCoverCheck 10 (childLL (childLH phiAboveCell1111)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL (childLH phiAboveCell1111)) + e24KC2PhiAboveLeaf1111100 e24KC2PhiAboveLeaf1111101 e24KC2PhiAboveLeaf1111102 + e24KC2PhiAboveLeaf1111103 + +theorem e24KC2PhiAboveNode111111 : + adaptiveCoverCheck 10 (childLH (childLH phiAboveCell1111)) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH (childLH phiAboveCell1111)) + e24KC2PhiAboveLeaf1111110 e24KC2PhiAboveLeaf1111111 e24KC2PhiAboveLeaf1111112 + e24KC2PhiAboveLeaf1111113 + +theorem e24KC2PhiAboveNode111112 : + adaptiveCoverCheck 10 (childHL (childLH phiAboveCell1111)) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL (childLH phiAboveCell1111)) + e24KC2PhiAboveLeaf1111120 e24KC2PhiAboveLeaf1111121 e24KC2PhiAboveLeaf1111122 + e24KC2PhiAboveLeaf1111123 + +theorem e24KC2PhiAboveNode111113 : + adaptiveCoverCheck 10 (childHH (childLH phiAboveCell1111)) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH (childLH phiAboveCell1111)) + e24KC2PhiAboveLeaf1111130 e24KC2PhiAboveLeaf1111131 e24KC2PhiAboveLeaf1111132 + e24KC2PhiAboveLeaf1111133 + +theorem e24KC2PhiAboveNode01011 : + adaptiveCoverCheck 11 (childLH phiAboveCell0101) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH phiAboveCell0101) + e24KC2PhiAboveLeaf010110 e24KC2PhiAboveLeaf010111 e24KC2PhiAboveLeaf010112 + e24KC2PhiAboveLeaf010113 + +theorem e24KC2PhiAboveNode01100 : + adaptiveCoverCheck 11 (childLL phiAboveCell0110) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL phiAboveCell0110) + e24KC2PhiAboveLeaf011000 e24KC2PhiAboveLeaf011001 e24KC2PhiAboveLeaf011002 + e24KC2PhiAboveLeaf011003 + +theorem e24KC2PhiAboveNode01101 : + adaptiveCoverCheck 11 (childLH phiAboveCell0110) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH phiAboveCell0110) + e24KC2PhiAboveLeaf011010 e24KC2PhiAboveLeaf011011 e24KC2PhiAboveLeaf011012 + e24KC2PhiAboveLeaf011013 + +theorem e24KC2PhiAboveNode01110 : + adaptiveCoverCheck 11 (childLL phiAboveCell0111) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL phiAboveCell0111) + e24KC2PhiAboveLeaf011100 e24KC2PhiAboveLeaf011101 e24KC2PhiAboveLeaf011102 + e24KC2PhiAboveLeaf011103 + +theorem e24KC2PhiAboveNode01111 : + adaptiveCoverCheck 11 (childLH phiAboveCell0111) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH phiAboveCell0111) + e24KC2PhiAboveLeaf011110 e24KC2PhiAboveLeaf011111 e24KC2PhiAboveLeaf011112 + e24KC2PhiAboveLeaf011113 + +theorem e24KC2PhiAboveNode10000 : + adaptiveCoverCheck 11 (childLL phiAboveCell1000) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL phiAboveCell1000) + e24KC2PhiAboveLeaf100000 e24KC2PhiAboveLeaf100001 e24KC2PhiAboveLeaf100002 + e24KC2PhiAboveLeaf100003 + +theorem e24KC2PhiAboveNode10001 : + adaptiveCoverCheck 11 (childLH phiAboveCell1000) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH phiAboveCell1000) + e24KC2PhiAboveLeaf100010 e24KC2PhiAboveLeaf100011 e24KC2PhiAboveLeaf100012 + e24KC2PhiAboveLeaf100013 + +theorem e24KC2PhiAboveNode10010 : + adaptiveCoverCheck 11 (childLL phiAboveCell1001) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL phiAboveCell1001) + e24KC2PhiAboveLeaf100100 e24KC2PhiAboveNode100101 e24KC2PhiAboveLeaf100102 + e24KC2PhiAboveLeaf100103 + +theorem e24KC2PhiAboveNode10011 : + adaptiveCoverCheck 11 (childLH phiAboveCell1001) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH phiAboveCell1001) + e24KC2PhiAboveNode100110 e24KC2PhiAboveNode100111 e24KC2PhiAboveLeaf100112 + e24KC2PhiAboveLeaf100113 + +theorem e24KC2PhiAboveNode10100 : + adaptiveCoverCheck 11 (childLL phiAboveCell1010) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL phiAboveCell1010) + e24KC2PhiAboveNode101000 e24KC2PhiAboveNode101001 e24KC2PhiAboveLeaf101002 + e24KC2PhiAboveLeaf101003 + +theorem e24KC2PhiAboveNode10101 : + adaptiveCoverCheck 11 (childLH phiAboveCell1010) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH phiAboveCell1010) + e24KC2PhiAboveNode101010 e24KC2PhiAboveNode101011 e24KC2PhiAboveLeaf101012 + e24KC2PhiAboveLeaf101013 + +theorem e24KC2PhiAboveNode10110 : + adaptiveCoverCheck 11 (childLL phiAboveCell1011) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL phiAboveCell1011) + e24KC2PhiAboveNode101100 e24KC2PhiAboveNode101101 e24KC2PhiAboveLeaf101102 + e24KC2PhiAboveLeaf101103 + +theorem e24KC2PhiAboveNode10111 : + adaptiveCoverCheck 11 (childLH phiAboveCell1011) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH phiAboveCell1011) + e24KC2PhiAboveNode101110 e24KC2PhiAboveNode101111 e24KC2PhiAboveLeaf101112 + e24KC2PhiAboveLeaf101113 + +theorem e24KC2PhiAboveNode10113 : + adaptiveCoverCheck 11 (childHH phiAboveCell1011) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH phiAboveCell1011) + e24KC2PhiAboveLeaf101130 e24KC2PhiAboveLeaf101131 e24KC2PhiAboveLeaf101132 + e24KC2PhiAboveLeaf101133 + +theorem e24KC2PhiAboveNode11000 : + adaptiveCoverCheck 11 (childLL phiAboveCell1100) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL phiAboveCell1100) + e24KC2PhiAboveNode110000 e24KC2PhiAboveNode110001 e24KC2PhiAboveLeaf110002 + e24KC2PhiAboveLeaf110003 + +theorem e24KC2PhiAboveNode11001 : + adaptiveCoverCheck 11 (childLH phiAboveCell1100) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH phiAboveCell1100) + e24KC2PhiAboveNode110010 e24KC2PhiAboveNode110011 e24KC2PhiAboveLeaf110012 + e24KC2PhiAboveNode110013 + +theorem e24KC2PhiAboveNode11002 : + adaptiveCoverCheck 11 (childHL phiAboveCell1100) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL phiAboveCell1100) + e24KC2PhiAboveLeaf110020 e24KC2PhiAboveLeaf110021 e24KC2PhiAboveLeaf110022 + e24KC2PhiAboveLeaf110023 + +theorem e24KC2PhiAboveNode11003 : + adaptiveCoverCheck 11 (childHH phiAboveCell1100) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH phiAboveCell1100) + e24KC2PhiAboveLeaf110030 e24KC2PhiAboveLeaf110031 e24KC2PhiAboveLeaf110032 + e24KC2PhiAboveLeaf110033 + +theorem e24KC2PhiAboveNode11010 : + adaptiveCoverCheck 11 (childLL phiAboveCell1101) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL phiAboveCell1101) + e24KC2PhiAboveNode110100 e24KC2PhiAboveNode110101 e24KC2PhiAboveNode110102 + e24KC2PhiAboveNode110103 + +theorem e24KC2PhiAboveNode11011 : + adaptiveCoverCheck 11 (childLH phiAboveCell1101) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH phiAboveCell1101) + e24KC2PhiAboveNode110110 e24KC2PhiAboveNode110111 e24KC2PhiAboveNode110112 + e24KC2PhiAboveNode110113 + +theorem e24KC2PhiAboveNode11012 : + adaptiveCoverCheck 11 (childHL phiAboveCell1101) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL phiAboveCell1101) + e24KC2PhiAboveLeaf110120 e24KC2PhiAboveLeaf110121 e24KC2PhiAboveLeaf110122 + e24KC2PhiAboveLeaf110123 + +theorem e24KC2PhiAboveNode11013 : + adaptiveCoverCheck 11 (childHH phiAboveCell1101) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH phiAboveCell1101) + e24KC2PhiAboveLeaf110130 e24KC2PhiAboveLeaf110131 e24KC2PhiAboveLeaf110132 + e24KC2PhiAboveLeaf110133 + +theorem e24KC2PhiAboveNode11100 : + adaptiveCoverCheck 11 (childLL phiAboveCell1110) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL phiAboveCell1110) + e24KC2PhiAboveNode111000 e24KC2PhiAboveNode111001 e24KC2PhiAboveNode111002 + e24KC2PhiAboveNode111003 + +theorem e24KC2PhiAboveNode11101 : + adaptiveCoverCheck 11 (childLH phiAboveCell1110) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH phiAboveCell1110) + e24KC2PhiAboveNode111010 e24KC2PhiAboveNode111011 e24KC2PhiAboveNode111012 + e24KC2PhiAboveNode111013 + +theorem e24KC2PhiAboveNode11102 : + adaptiveCoverCheck 11 (childHL phiAboveCell1110) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL phiAboveCell1110) + e24KC2PhiAboveLeaf111020 e24KC2PhiAboveLeaf111021 e24KC2PhiAboveLeaf111022 + e24KC2PhiAboveLeaf111023 + +theorem e24KC2PhiAboveNode11103 : + adaptiveCoverCheck 11 (childHH phiAboveCell1110) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH phiAboveCell1110) + e24KC2PhiAboveLeaf111030 e24KC2PhiAboveLeaf111031 e24KC2PhiAboveLeaf111032 + e24KC2PhiAboveLeaf111033 + +theorem e24KC2PhiAboveNode11110 : + adaptiveCoverCheck 11 (childLL phiAboveCell1111) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL phiAboveCell1111) + e24KC2PhiAboveNode111100 e24KC2PhiAboveNode111101 e24KC2PhiAboveNode111102 + e24KC2PhiAboveNode111103 + +theorem e24KC2PhiAboveNode11111 : + adaptiveCoverCheck 11 (childLH phiAboveCell1111) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH phiAboveCell1111) + e24KC2PhiAboveNode111110 e24KC2PhiAboveNode111111 e24KC2PhiAboveNode111112 + e24KC2PhiAboveNode111113 + +theorem e24KC2PhiAboveNode11112 : + adaptiveCoverCheck 11 (childHL phiAboveCell1111) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL phiAboveCell1111) + e24KC2PhiAboveLeaf111120 e24KC2PhiAboveLeaf111121 e24KC2PhiAboveLeaf111122 + e24KC2PhiAboveLeaf111123 + +theorem e24KC2PhiAboveNode11113 : + adaptiveCoverCheck 11 (childHH phiAboveCell1111) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH phiAboveCell1111) + e24KC2PhiAboveLeaf111130 e24KC2PhiAboveLeaf111131 e24KC2PhiAboveLeaf111132 + e24KC2PhiAboveLeaf111133 + +theorem e24KC2PhiAboveNode0000 : + adaptiveCoverCheck 12 phiAboveCell0000 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell0000 + e24KC2PhiAboveLeaf00000 e24KC2PhiAboveLeaf00001 e24KC2PhiAboveLeaf00002 e24KC2PhiAboveLeaf00003 + +theorem e24KC2PhiAboveNode0001 : + adaptiveCoverCheck 12 phiAboveCell0001 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell0001 + e24KC2PhiAboveLeaf00010 e24KC2PhiAboveLeaf00011 e24KC2PhiAboveLeaf00012 e24KC2PhiAboveLeaf00013 + +theorem e24KC2PhiAboveNode0010 : + adaptiveCoverCheck 12 phiAboveCell0010 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell0010 + e24KC2PhiAboveLeaf00100 e24KC2PhiAboveLeaf00101 e24KC2PhiAboveLeaf00102 e24KC2PhiAboveLeaf00103 + +theorem e24KC2PhiAboveNode0011 : + adaptiveCoverCheck 12 phiAboveCell0011 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell0011 + e24KC2PhiAboveLeaf00110 e24KC2PhiAboveLeaf00111 e24KC2PhiAboveLeaf00112 e24KC2PhiAboveLeaf00113 + +theorem e24KC2PhiAboveNode0100 : + adaptiveCoverCheck 12 phiAboveCell0100 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell0100 + e24KC2PhiAboveLeaf01000 e24KC2PhiAboveLeaf01001 e24KC2PhiAboveLeaf01002 e24KC2PhiAboveLeaf01003 + +theorem e24KC2PhiAboveNode0101 : + adaptiveCoverCheck 12 phiAboveCell0101 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell0101 + e24KC2PhiAboveLeaf01010 e24KC2PhiAboveNode01011 e24KC2PhiAboveLeaf01012 e24KC2PhiAboveLeaf01013 + +theorem e24KC2PhiAboveNode0110 : + adaptiveCoverCheck 12 phiAboveCell0110 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell0110 + e24KC2PhiAboveNode01100 e24KC2PhiAboveNode01101 e24KC2PhiAboveLeaf01102 e24KC2PhiAboveLeaf01103 + +theorem e24KC2PhiAboveNode0111 : + adaptiveCoverCheck 12 phiAboveCell0111 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell0111 + e24KC2PhiAboveNode01110 e24KC2PhiAboveNode01111 e24KC2PhiAboveLeaf01112 e24KC2PhiAboveLeaf01113 + +theorem e24KC2PhiAboveNode1000 : + adaptiveCoverCheck 12 phiAboveCell1000 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell1000 + e24KC2PhiAboveNode10000 e24KC2PhiAboveNode10001 e24KC2PhiAboveLeaf10002 e24KC2PhiAboveLeaf10003 + +theorem e24KC2PhiAboveNode1001 : + adaptiveCoverCheck 12 phiAboveCell1001 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell1001 + e24KC2PhiAboveNode10010 e24KC2PhiAboveNode10011 e24KC2PhiAboveLeaf10012 e24KC2PhiAboveLeaf10013 + +theorem e24KC2PhiAboveNode1002 : + adaptiveCoverCheck 12 phiAboveCell1002 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell1002 + e24KC2PhiAboveLeaf10020 e24KC2PhiAboveLeaf10021 e24KC2PhiAboveLeaf10022 e24KC2PhiAboveLeaf10023 + +theorem e24KC2PhiAboveNode1003 : + adaptiveCoverCheck 12 phiAboveCell1003 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell1003 + e24KC2PhiAboveLeaf10030 e24KC2PhiAboveLeaf10031 e24KC2PhiAboveLeaf10032 e24KC2PhiAboveLeaf10033 + +theorem e24KC2PhiAboveNode1010 : + adaptiveCoverCheck 12 phiAboveCell1010 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell1010 + e24KC2PhiAboveNode10100 e24KC2PhiAboveNode10101 e24KC2PhiAboveLeaf10102 e24KC2PhiAboveLeaf10103 + +theorem e24KC2PhiAboveNode1011 : + adaptiveCoverCheck 12 phiAboveCell1011 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell1011 + e24KC2PhiAboveNode10110 e24KC2PhiAboveNode10111 e24KC2PhiAboveLeaf10112 e24KC2PhiAboveNode10113 + +theorem e24KC2PhiAboveNode1012 : + adaptiveCoverCheck 12 phiAboveCell1012 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell1012 + e24KC2PhiAboveLeaf10120 e24KC2PhiAboveLeaf10121 e24KC2PhiAboveLeaf10122 e24KC2PhiAboveLeaf10123 + +theorem e24KC2PhiAboveNode1013 : + adaptiveCoverCheck 12 phiAboveCell1013 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell1013 + e24KC2PhiAboveLeaf10130 e24KC2PhiAboveLeaf10131 e24KC2PhiAboveLeaf10132 e24KC2PhiAboveLeaf10133 + +theorem e24KC2PhiAboveNode1100 : + adaptiveCoverCheck 12 phiAboveCell1100 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell1100 + e24KC2PhiAboveNode11000 e24KC2PhiAboveNode11001 e24KC2PhiAboveNode11002 e24KC2PhiAboveNode11003 + +theorem e24KC2PhiAboveNode1101 : + adaptiveCoverCheck 12 phiAboveCell1101 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell1101 + e24KC2PhiAboveNode11010 e24KC2PhiAboveNode11011 e24KC2PhiAboveNode11012 e24KC2PhiAboveNode11013 + +theorem e24KC2PhiAboveNode1102 : + adaptiveCoverCheck 12 phiAboveCell1102 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell1102 + e24KC2PhiAboveLeaf11020 e24KC2PhiAboveLeaf11021 e24KC2PhiAboveLeaf11022 e24KC2PhiAboveLeaf11023 + +theorem e24KC2PhiAboveNode1103 : + adaptiveCoverCheck 12 phiAboveCell1103 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell1103 + e24KC2PhiAboveLeaf11030 e24KC2PhiAboveLeaf11031 e24KC2PhiAboveLeaf11032 e24KC2PhiAboveLeaf11033 + +theorem e24KC2PhiAboveNode1110 : + adaptiveCoverCheck 12 phiAboveCell1110 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell1110 + e24KC2PhiAboveNode11100 e24KC2PhiAboveNode11101 e24KC2PhiAboveNode11102 e24KC2PhiAboveNode11103 + +theorem e24KC2PhiAboveNode1111 : + adaptiveCoverCheck 12 phiAboveCell1111 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell1111 + e24KC2PhiAboveNode11110 e24KC2PhiAboveNode11111 e24KC2PhiAboveNode11112 e24KC2PhiAboveNode11113 + +theorem e24KC2PhiAboveNode1112 : + adaptiveCoverCheck 12 phiAboveCell1112 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell1112 + e24KC2PhiAboveLeaf11120 e24KC2PhiAboveLeaf11121 e24KC2PhiAboveLeaf11122 e24KC2PhiAboveLeaf11123 + +theorem e24KC2PhiAboveNode1113 : + adaptiveCoverCheck 12 phiAboveCell1113 = true := + adaptiveCoverCheck_succ_of_children 11 phiAboveCell1113 + e24KC2PhiAboveLeaf11130 e24KC2PhiAboveLeaf11131 e24KC2PhiAboveLeaf11132 e24KC2PhiAboveLeaf11133 + +theorem e24KC2PhiAboveNode000 : + adaptiveCoverCheck 13 (childLL (childLL (childLL e24PhiAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLL (childLL e24PhiAboveRoot))) + e24KC2PhiAboveNode0000 e24KC2PhiAboveNode0001 e24KC2PhiAboveLeaf0002 e24KC2PhiAboveLeaf0003 + +theorem e24KC2PhiAboveNode001 : + adaptiveCoverCheck 13 (childLH (childLL (childLL e24PhiAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLL (childLL e24PhiAboveRoot))) + e24KC2PhiAboveNode0010 e24KC2PhiAboveNode0011 e24KC2PhiAboveLeaf0012 e24KC2PhiAboveLeaf0013 + +theorem e24KC2PhiAboveNode003 : + adaptiveCoverCheck 13 (childHH (childLL (childLL e24PhiAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childLL (childLL e24PhiAboveRoot))) + e24KC2PhiAboveLeaf0030 e24KC2PhiAboveLeaf0031 e24KC2PhiAboveLeaf0032 e24KC2PhiAboveLeaf0033 + +theorem e24KC2PhiAboveNode010 : + adaptiveCoverCheck 13 (childLL (childLH (childLL e24PhiAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLH (childLL e24PhiAboveRoot))) + e24KC2PhiAboveNode0100 e24KC2PhiAboveNode0101 e24KC2PhiAboveLeaf0102 e24KC2PhiAboveLeaf0103 + +theorem e24KC2PhiAboveNode011 : + adaptiveCoverCheck 13 (childLH (childLH (childLL e24PhiAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLH (childLL e24PhiAboveRoot))) + e24KC2PhiAboveNode0110 e24KC2PhiAboveNode0111 e24KC2PhiAboveLeaf0112 e24KC2PhiAboveLeaf0113 + +theorem e24KC2PhiAboveNode012 : + adaptiveCoverCheck 13 (childHL (childLH (childLL e24PhiAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childLH (childLL e24PhiAboveRoot))) + e24KC2PhiAboveLeaf0120 e24KC2PhiAboveLeaf0121 e24KC2PhiAboveLeaf0122 e24KC2PhiAboveLeaf0123 + +theorem e24KC2PhiAboveNode013 : + adaptiveCoverCheck 13 (childHH (childLH (childLL e24PhiAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childLH (childLL e24PhiAboveRoot))) + e24KC2PhiAboveLeaf0130 e24KC2PhiAboveLeaf0131 e24KC2PhiAboveLeaf0132 e24KC2PhiAboveLeaf0133 + +theorem e24KC2PhiAboveNode100 : + adaptiveCoverCheck 13 (childLL (childLL (childLH e24PhiAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLL (childLH e24PhiAboveRoot))) + e24KC2PhiAboveNode1000 e24KC2PhiAboveNode1001 e24KC2PhiAboveNode1002 e24KC2PhiAboveNode1003 + +theorem e24KC2PhiAboveNode101 : + adaptiveCoverCheck 13 (childLH (childLL (childLH e24PhiAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLL (childLH e24PhiAboveRoot))) + e24KC2PhiAboveNode1010 e24KC2PhiAboveNode1011 e24KC2PhiAboveNode1012 e24KC2PhiAboveNode1013 + +theorem e24KC2PhiAboveNode102 : + adaptiveCoverCheck 13 (childHL (childLL (childLH e24PhiAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childLL (childLH e24PhiAboveRoot))) + e24KC2PhiAboveLeaf1020 e24KC2PhiAboveLeaf1021 e24KC2PhiAboveLeaf1022 e24KC2PhiAboveLeaf1023 + +theorem e24KC2PhiAboveNode103 : + adaptiveCoverCheck 13 (childHH (childLL (childLH e24PhiAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childLL (childLH e24PhiAboveRoot))) + e24KC2PhiAboveLeaf1030 e24KC2PhiAboveLeaf1031 e24KC2PhiAboveLeaf1032 e24KC2PhiAboveLeaf1033 + +theorem e24KC2PhiAboveNode110 : + adaptiveCoverCheck 13 (childLL (childLH (childLH e24PhiAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLH (childLH e24PhiAboveRoot))) + e24KC2PhiAboveNode1100 e24KC2PhiAboveNode1101 e24KC2PhiAboveNode1102 e24KC2PhiAboveNode1103 + +theorem e24KC2PhiAboveNode111 : + adaptiveCoverCheck 13 (childLH (childLH (childLH e24PhiAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLH (childLH e24PhiAboveRoot))) + e24KC2PhiAboveNode1110 e24KC2PhiAboveNode1111 e24KC2PhiAboveNode1112 e24KC2PhiAboveNode1113 + +theorem e24KC2PhiAboveNode112 : + adaptiveCoverCheck 13 (childHL (childLH (childLH e24PhiAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childLH (childLH e24PhiAboveRoot))) + e24KC2PhiAboveLeaf1120 e24KC2PhiAboveLeaf1121 e24KC2PhiAboveLeaf1122 e24KC2PhiAboveLeaf1123 + +theorem e24KC2PhiAboveNode113 : + adaptiveCoverCheck 13 (childHH (childLH (childLH e24PhiAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childLH (childLH e24PhiAboveRoot))) + e24KC2PhiAboveLeaf1130 e24KC2PhiAboveLeaf1131 e24KC2PhiAboveLeaf1132 e24KC2PhiAboveLeaf1133 + +theorem e24KC2PhiAboveNode00 : + adaptiveCoverCheck 14 (childLL (childLL e24PhiAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL (childLL e24PhiAboveRoot)) + e24KC2PhiAboveNode000 e24KC2PhiAboveNode001 e24KC2PhiAboveLeaf002 e24KC2PhiAboveNode003 + +theorem e24KC2PhiAboveNode01 : + adaptiveCoverCheck 14 (childLH (childLL e24PhiAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH (childLL e24PhiAboveRoot)) + e24KC2PhiAboveNode010 e24KC2PhiAboveNode011 e24KC2PhiAboveNode012 e24KC2PhiAboveNode013 + +theorem e24KC2PhiAboveNode03 : + adaptiveCoverCheck 14 (childHH (childLL e24PhiAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH (childLL e24PhiAboveRoot)) + e24KC2PhiAboveLeaf030 e24KC2PhiAboveLeaf031 e24KC2PhiAboveLeaf032 e24KC2PhiAboveLeaf033 + +theorem e24KC2PhiAboveNode10 : + adaptiveCoverCheck 14 (childLL (childLH e24PhiAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL (childLH e24PhiAboveRoot)) + e24KC2PhiAboveNode100 e24KC2PhiAboveNode101 e24KC2PhiAboveNode102 e24KC2PhiAboveNode103 + +theorem e24KC2PhiAboveNode11 : + adaptiveCoverCheck 14 (childLH (childLH e24PhiAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH (childLH e24PhiAboveRoot)) + e24KC2PhiAboveNode110 e24KC2PhiAboveNode111 e24KC2PhiAboveNode112 e24KC2PhiAboveNode113 + +theorem e24KC2PhiAboveNode12 : + adaptiveCoverCheck 14 (childHL (childLH e24PhiAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 13 (childHL (childLH e24PhiAboveRoot)) + e24KC2PhiAboveLeaf120 e24KC2PhiAboveLeaf121 e24KC2PhiAboveLeaf122 e24KC2PhiAboveLeaf123 + +theorem e24KC2PhiAboveNode13 : + adaptiveCoverCheck 14 (childHH (childLH e24PhiAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH (childLH e24PhiAboveRoot)) + e24KC2PhiAboveLeaf130 e24KC2PhiAboveLeaf131 e24KC2PhiAboveLeaf132 e24KC2PhiAboveLeaf133 + +theorem e24KC2PhiAboveNode30 : + adaptiveCoverCheck 14 (childLL (childHH e24PhiAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL (childHH e24PhiAboveRoot)) + e24KC2PhiAboveLeaf300 e24KC2PhiAboveLeaf301 e24KC2PhiAboveLeaf302 e24KC2PhiAboveLeaf303 + +theorem e24KC2PhiAboveNode31 : + adaptiveCoverCheck 14 (childLH (childHH e24PhiAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH (childHH e24PhiAboveRoot)) + e24KC2PhiAboveLeaf310 e24KC2PhiAboveLeaf311 e24KC2PhiAboveLeaf312 e24KC2PhiAboveLeaf313 + +theorem e24KC2PhiAboveNode33 : + adaptiveCoverCheck 14 (childHH (childHH e24PhiAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH (childHH e24PhiAboveRoot)) + e24KC2PhiAboveLeaf330 e24KC2PhiAboveLeaf331 e24KC2PhiAboveLeaf332 e24KC2PhiAboveLeaf333 + +theorem e24KC2PhiAboveNode0 : + adaptiveCoverCheck 15 (childLL e24PhiAboveRoot) = true := + adaptiveCoverCheck_succ_of_children 14 (childLL e24PhiAboveRoot) + e24KC2PhiAboveNode00 e24KC2PhiAboveNode01 e24KC2PhiAboveLeaf02 e24KC2PhiAboveNode03 + +theorem e24KC2PhiAboveNode1 : + adaptiveCoverCheck 15 (childLH e24PhiAboveRoot) = true := + adaptiveCoverCheck_succ_of_children 14 (childLH e24PhiAboveRoot) + e24KC2PhiAboveNode10 e24KC2PhiAboveNode11 e24KC2PhiAboveNode12 e24KC2PhiAboveNode13 + +theorem e24KC2PhiAboveNode3 : + adaptiveCoverCheck 15 (childHH e24PhiAboveRoot) = true := + adaptiveCoverCheck_succ_of_children 14 (childHH e24PhiAboveRoot) + e24KC2PhiAboveNode30 e24KC2PhiAboveNode31 e24KC2PhiAboveLeaf32 e24KC2PhiAboveNode33 + +theorem e24KC2PhiAboveNodeROOT : + adaptiveCoverCheck 16 e24PhiAboveRoot = true := + adaptiveCoverCheck_succ_of_children 15 e24PhiAboveRoot + e24KC2PhiAboveNode0 e24KC2PhiAboveNode1 e24KC2PhiAboveLeaf2 e24KC2PhiAboveNode3 + +theorem e24PhiAboveKernelCheck : + adaptiveCoverCheck 16 e24PhiAboveRoot = true := + e24KC2PhiAboveNodeROOT + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33203_9_00246 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells12ecbb1984 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells12ecbb1984 + +open CertificateCells12ecbb1984 + +theorem e24KC2PhiBelowLeaf33203 : + adaptiveCoverCheck 9 (childHH phiBelowCell3320) = true := + adaptiveCoverCheck_succ_of_children 8 (childHH phiBelowCell3320) + e24KC2PhiBelowLeaf33203_c0 e24KC2PhiBelowLeaf33203_c1 e24KC2PhiBelowLeaf33203_c2 + e24KC2PhiBelowLeaf33203_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33221_9_00260 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf9b1d22c2c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf9b1d22c2c + +open CertificateCellsf9b1d22c2c + +theorem e24KC2PhiBelowLeaf33221 : + adaptiveCoverCheck 9 (childLH phiBelowCell3322) = true := + adaptiveCoverCheck_succ_of_children 8 (childLH phiBelowCell3322) + e24KC2PhiBelowLeaf33221_c0 e24KC2PhiBelowLeaf33221_c1 e24KC2PhiBelowLeaf33221_c2 + e24KC2PhiBelowLeaf33221_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33223_9_00269 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5481d87062 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5481d87062 + +open CertificateCells5481d87062 + +theorem e24KC2PhiBelowLeaf33223 : + adaptiveCoverCheck 9 (childHH phiBelowCell3322) = true := + adaptiveCoverCheck_succ_of_children 8 (childHH phiBelowCell3322) + e24KC2PhiBelowLeaf33223_c0 e24KC2PhiBelowLeaf33223_c1 e24KC2PhiBelowLeaf33223_c2 + e24KC2PhiBelowLeaf33223_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33230_c2_8_00278 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc99c114252 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc99c114252 + +open CertificateCellsc99c114252 + +theorem e24KC2PhiBelowLeaf33230_c2 : + adaptiveCoverCheck 8 (childHL (childLL phiBelowCell3323)) = true := + adaptiveCoverCheck_succ_of_children 7 (childHL (childLL phiBelowCell3323)) + e24KC2PhiBelowLeaf33230_c2_c0 e24KC2PhiBelowLeaf33230_c2_c1 e24KC2PhiBelowLeaf33230_c2_c2 + e24KC2PhiBelowLeaf33230_c2_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33230_c3_8_00284 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells85102f4bff + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells85102f4bff + +open CertificateCells85102f4bff + +theorem e24KC2PhiBelowLeaf33230_c3 : + adaptiveCoverCheck 8 (childHH (childLL phiBelowCell3323)) = true := + adaptiveCoverCheck_succ_of_children 7 (childHH (childLL phiBelowCell3323)) + e24KC2PhiBelowLeaf33230_c3_c0 e24KC2PhiBelowLeaf33230_c3_c1 e24KC2PhiBelowLeaf33230_c3_c2 + e24KC2PhiBelowLeaf33230_c3_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33230_9_00285 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd7423e4c3b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd7423e4c3b + +open CertificateCellsd7423e4c3b + +theorem e24KC2PhiBelowLeaf33230 : + adaptiveCoverCheck 9 (childLL phiBelowCell3323) = true := + adaptiveCoverCheck_succ_of_children 8 (childLL phiBelowCell3323) + e24KC2PhiBelowLeaf33230_c0 e24KC2PhiBelowLeaf33230_c1 e24KC2PhiBelowLeaf33230_c2 + e24KC2PhiBelowLeaf33230_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33232_c0_8_00294 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8ae9088aab + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8ae9088aab + +open CertificateCells8ae9088aab + +theorem e24KC2PhiBelowLeaf33232_c0 : + adaptiveCoverCheck 8 (childLL (childHL phiBelowCell3323)) = true := + adaptiveCoverCheck_succ_of_children 7 (childLL (childHL phiBelowCell3323)) + e24KC2PhiBelowLeaf33232_c0_c0 e24KC2PhiBelowLeaf33232_c0_c1 e24KC2PhiBelowLeaf33232_c0_c2 + e24KC2PhiBelowLeaf33232_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33232_c1_c0_7_00301 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb8a79b56b3 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb8a79b56b3 + +open CertificateCellsb8a79b56b3 + +theorem e24KC2PhiBelowLeaf33232_c1_c0 : + adaptiveCoverCheck 7 (childLL (childLH (childHL phiBelowCell3323))) = true := + adaptiveCoverCheck_succ_of_children 6 (childLL (childLH (childHL phiBelowCell3323))) + e24KC2PhiBelowLeaf33232_c1_c0_c0 e24KC2PhiBelowLeaf33232_c1_c0_c1 + e24KC2PhiBelowLeaf33232_c1_c0_c2 e24KC2PhiBelowLeaf33232_c1_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33232_c1_c2_7_00308 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells13ae325d6d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells13ae325d6d + +open CertificateCells13ae325d6d + +theorem e24KC2PhiBelowLeaf33232_c1_c2 : + adaptiveCoverCheck 7 (childHL (childLH (childHL phiBelowCell3323))) = true := + adaptiveCoverCheck_succ_of_children 6 (childHL (childLH (childHL phiBelowCell3323))) + e24KC2PhiBelowLeaf33232_c1_c2_c0 e24KC2PhiBelowLeaf33232_c1_c2_c1 + e24KC2PhiBelowLeaf33232_c1_c2_c2 e24KC2PhiBelowLeaf33232_c1_c2_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33232_c1_c3_7_00314 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6add7bae04 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6add7bae04 + +open CertificateCells6add7bae04 + +theorem e24KC2PhiBelowLeaf33232_c1_c3 : + adaptiveCoverCheck 7 (childHH (childLH (childHL phiBelowCell3323))) = true := + adaptiveCoverCheck_succ_of_children 6 (childHH (childLH (childHL phiBelowCell3323))) + e24KC2PhiBelowLeaf33232_c1_c3_c0 e24KC2PhiBelowLeaf33232_c1_c3_c1 + e24KC2PhiBelowLeaf33232_c1_c3_c2 e24KC2PhiBelowLeaf33232_c1_c3_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33232_c1_8_00315 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellscd1d17c9b4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellscd1d17c9b4 + +open CertificateCellscd1d17c9b4 + +theorem e24KC2PhiBelowLeaf33232_c1 : + adaptiveCoverCheck 8 (childLH (childHL phiBelowCell3323)) = true := + adaptiveCoverCheck_succ_of_children 7 (childLH (childHL phiBelowCell3323)) + e24KC2PhiBelowLeaf33232_c1_c0 e24KC2PhiBelowLeaf33232_c1_c1 e24KC2PhiBelowLeaf33232_c1_c2 + e24KC2PhiBelowLeaf33232_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33232_c3_c1_c1_6_00326 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells709ea69226 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells709ea69226 + +open CertificateCells709ea69226 + +theorem e24KC2PhiBelowLeaf33232_c3_c1_c1 : + adaptiveCoverCheck 6 phiBelowCell33232311 = true := + adaptiveCoverCheck_succ_of_children 5 phiBelowCell33232311 + e24KC2PhiBelowLeaf33232_c3_c1_c1_c0 e24KC2PhiBelowLeaf33232_c3_c1_c1_c1 + e24KC2PhiBelowLeaf33232_c3_c1_c1_c2 e24KC2PhiBelowLeaf33232_c3_c1_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33232_c3_c1_c3_6_00333 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsade8569b0a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsade8569b0a + +open CertificateCellsade8569b0a + +theorem e24KC2PhiBelowLeaf33232_c3_c1_c3 : + adaptiveCoverCheck 6 phiBelowCell33232313 = true := + adaptiveCoverCheck_succ_of_children 5 phiBelowCell33232313 + e24KC2PhiBelowLeaf33232_c3_c1_c3_c0 e24KC2PhiBelowLeaf33232_c3_c1_c3_c1 + e24KC2PhiBelowLeaf33232_c3_c1_c3_c2 e24KC2PhiBelowLeaf33232_c3_c1_c3_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33232_c3_c1_7_00334 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsfece773e85 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsfece773e85 + +open CertificateCellsfece773e85 + +theorem e24KC2PhiBelowLeaf33232_c3_c1 : + adaptiveCoverCheck 7 (childLH (childHH (childHL phiBelowCell3323))) = true := + adaptiveCoverCheck_succ_of_children 6 (childLH (childHH (childHL phiBelowCell3323))) + e24KC2PhiBelowLeaf33232_c3_c1_c0 e24KC2PhiBelowLeaf33232_c3_c1_c1 + e24KC2PhiBelowLeaf33232_c3_c1_c2 e24KC2PhiBelowLeaf33232_c3_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33232_c3_c3_c1_6_00343 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse593ec4a84 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse593ec4a84 + +open CertificateCellse593ec4a84 + +theorem e24KC2PhiBelowLeaf33232_c3_c3_c1 : + adaptiveCoverCheck 6 phiBelowCell33232331 = true := + adaptiveCoverCheck_succ_of_children 5 phiBelowCell33232331 + e24KC2PhiBelowLeaf33232_c3_c3_c1_c0 e24KC2PhiBelowLeaf33232_c3_c3_c1_c1 + e24KC2PhiBelowLeaf33232_c3_c3_c1_c2 e24KC2PhiBelowLeaf33232_c3_c3_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33232_c3_c3_7_00346 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0ccc164bd1 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0ccc164bd1 + +open CertificateCells0ccc164bd1 + +theorem e24KC2PhiBelowLeaf33232_c3_c3 : + adaptiveCoverCheck 7 (childHH (childHH (childHL phiBelowCell3323))) = true := + adaptiveCoverCheck_succ_of_children 6 (childHH (childHH (childHL phiBelowCell3323))) + e24KC2PhiBelowLeaf33232_c3_c3_c0 e24KC2PhiBelowLeaf33232_c3_c3_c1 + e24KC2PhiBelowLeaf33232_c3_c3_c2 e24KC2PhiBelowLeaf33232_c3_c3_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33232_c3_8_00347 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells072df6b25f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells072df6b25f + +open CertificateCells072df6b25f + +theorem e24KC2PhiBelowLeaf33232_c3 : + adaptiveCoverCheck 8 (childHH (childHL phiBelowCell3323)) = true := + adaptiveCoverCheck_succ_of_children 7 (childHH (childHL phiBelowCell3323)) + e24KC2PhiBelowLeaf33232_c3_c0 e24KC2PhiBelowLeaf33232_c3_c1 e24KC2PhiBelowLeaf33232_c3_c2 + e24KC2PhiBelowLeaf33232_c3_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33232_9_00348 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells215f6c9ebd + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells215f6c9ebd + +open CertificateCells215f6c9ebd + +theorem e24KC2PhiBelowLeaf33232 : + adaptiveCoverCheck 9 (childHL phiBelowCell3323) = true := + adaptiveCoverCheck_succ_of_children 8 (childHL phiBelowCell3323) + e24KC2PhiBelowLeaf33232_c0 e24KC2PhiBelowLeaf33232_c1 e24KC2PhiBelowLeaf33232_c2 + e24KC2PhiBelowLeaf33232_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c0_8_00358 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsef857ed1c7 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsef857ed1c7 + +open CertificateCellsef857ed1c7 + +theorem e24KC2PhiBelowLeaf33233_c0 : + adaptiveCoverCheck 8 (childLL (childHH phiBelowCell3323)) = true := + adaptiveCoverCheck_succ_of_children 7 (childLL (childHH phiBelowCell3323)) + e24KC2PhiBelowLeaf33233_c0_c0 e24KC2PhiBelowLeaf33233_c0_c1 e24KC2PhiBelowLeaf33233_c0_c2 + e24KC2PhiBelowLeaf33233_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c2_c0_c2_6_00369 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2ebe0c2db9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2ebe0c2db9 + +open CertificateCells2ebe0c2db9 + +theorem e24KC2PhiBelowLeaf33233_c2_c0_c2 : + adaptiveCoverCheck 6 phiBelowCell33233202 = true := + adaptiveCoverCheck_succ_of_children 5 phiBelowCell33233202 + e24KC2PhiBelowLeaf33233_c2_c0_c2_c0 e24KC2PhiBelowLeaf33233_c2_c0_c2_c1 + e24KC2PhiBelowLeaf33233_c2_c0_c2_c2 e24KC2PhiBelowLeaf33233_c2_c0_c2_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c2_c0_7_00371 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells27c0e8c594 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells27c0e8c594 + +open CertificateCells27c0e8c594 + +theorem e24KC2PhiBelowLeaf33233_c2_c0 : + adaptiveCoverCheck 7 (childLL (childHL (childHH phiBelowCell3323))) = true := + adaptiveCoverCheck_succ_of_children 6 (childLL (childHL (childHH phiBelowCell3323))) + e24KC2PhiBelowLeaf33233_c2_c0_c0 e24KC2PhiBelowLeaf33233_c2_c0_c1 + e24KC2PhiBelowLeaf33233_c2_c0_c2 e24KC2PhiBelowLeaf33233_c2_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c2_c2_c0_c3_5_00383 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4d117fb26d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4d117fb26d + +open CertificateCells4d117fb26d + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c0_c3 : + adaptiveCoverCheck 5 (childHH phiBelowCell33233220) = true := + adaptiveCoverCheck_succ_of_children 4 (childHH phiBelowCell33233220) + e24KC2PhiBelowLeaf33233_c2_c2_c0_c3_c0 e24KC2PhiBelowLeaf33233_c2_c2_c0_c3_c1 + e24KC2PhiBelowLeaf33233_c2_c2_c0_c3_c2 e24KC2PhiBelowLeaf33233_c2_c2_c0_c3_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c2_c2_c0_6_00384 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells848f180c5a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells848f180c5a + +open CertificateCells848f180c5a + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c0 : + adaptiveCoverCheck 6 phiBelowCell33233220 = true := + adaptiveCoverCheck_succ_of_children 5 phiBelowCell33233220 + e24KC2PhiBelowLeaf33233_c2_c2_c0_c0 e24KC2PhiBelowLeaf33233_c2_c2_c0_c1 + e24KC2PhiBelowLeaf33233_c2_c2_c0_c2 e24KC2PhiBelowLeaf33233_c2_c2_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c2_c2_c1_6_00390 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells090e12bc76 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells090e12bc76 + +open CertificateCells090e12bc76 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c1 : + adaptiveCoverCheck 6 phiBelowCell33233221 = true := + adaptiveCoverCheck_succ_of_children 5 phiBelowCell33233221 + e24KC2PhiBelowLeaf33233_c2_c2_c1_c0 e24KC2PhiBelowLeaf33233_c2_c2_c1_c1 + e24KC2PhiBelowLeaf33233_c2_c2_c1_c2 e24KC2PhiBelowLeaf33233_c2_c2_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c2_c2_c2_c1_5_00398 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells857be56025 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells857be56025 + +open CertificateCells857be56025 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c2_c1 : + adaptiveCoverCheck 5 (childLH phiBelowCell33233222) = true := + adaptiveCoverCheck_succ_of_children 4 (childLH phiBelowCell33233222) + e24KC2PhiBelowLeaf33233_c2_c2_c2_c1_c0 e24KC2PhiBelowLeaf33233_c2_c2_c2_c1_c1 + e24KC2PhiBelowLeaf33233_c2_c2_c2_c1_c2 e24KC2PhiBelowLeaf33233_c2_c2_c2_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c2_c2_c2_6_00401 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsea76f7562d + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsea76f7562d + +open CertificateCellsea76f7562d + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c2 : + adaptiveCoverCheck 6 phiBelowCell33233222 = true := + adaptiveCoverCheck_succ_of_children 5 phiBelowCell33233222 + e24KC2PhiBelowLeaf33233_c2_c2_c2_c0 e24KC2PhiBelowLeaf33233_c2_c2_c2_c1 + e24KC2PhiBelowLeaf33233_c2_c2_c2_c2 e24KC2PhiBelowLeaf33233_c2_c2_c2_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c2_c2_c3_c0_5_00408 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsdd77c2320b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsdd77c2320b + +open CertificateCellsdd77c2320b + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c0 : + adaptiveCoverCheck 5 (childLL phiBelowCell33233223) = true := + adaptiveCoverCheck_succ_of_children 4 (childLL phiBelowCell33233223) + e24KC2PhiBelowLeaf33233_c2_c2_c3_c0_c0 e24KC2PhiBelowLeaf33233_c2_c2_c3_c0_c1 + e24KC2PhiBelowLeaf33233_c2_c2_c3_c0_c2 e24KC2PhiBelowLeaf33233_c2_c2_c3_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below +Leaf33233_c2_c2_c3_c2_c1_c2_c0_2_00421 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells08c6706994 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells08c6706994 + +open CertificateCells08c6706994 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c2_c0 : + adaptiveCoverCheck 2 phiBelowCell332332232120 = true := + adaptiveCoverCheck_succ_of_children 1 phiBelowCell332332232120 + e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c2_c0_c0 + e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c2_c0_c1 + e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c2_c0_c2 + e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c2_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below +Leaf33233_c2_c2_c3_c2_c1_c2_3_00425 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells96d537e773 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells96d537e773 + +open CertificateCells96d537e773 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c2 : + adaptiveCoverCheck 3 (childHL (childLH (childHL phiBelowCell33233223))) = true := + adaptiveCoverCheck_succ_of_children 2 (childHL (childLH (childHL phiBelowCell33233223))) + e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c2_c0 e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c2_c1 + e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c2_c2 e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c2_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c2_c2_c3_c2_c1_4_00427 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0abe1d75a7 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0abe1d75a7 + +open CertificateCells0abe1d75a7 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1 : + adaptiveCoverCheck 4 (childLH (childHL phiBelowCell33233223)) = true := + adaptiveCoverCheck_succ_of_children 3 (childLH (childHL phiBelowCell33233223)) + e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c0 e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c1 + e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c2 e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c2_c2_c3_c2_c3_4_00434 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells4849d1c13b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells4849d1c13b + +open CertificateCells4849d1c13b + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c3 : + adaptiveCoverCheck 4 (childHH (childHL phiBelowCell33233223)) = true := + adaptiveCoverCheck_succ_of_children 3 (childHH (childHL phiBelowCell33233223)) + e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c3_c0 e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c3_c1 + e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c3_c2 e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c3_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c2_c2_c3_c2_5_00435 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf2740dc787 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf2740dc787 + +open CertificateCellsf2740dc787 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c2 : + adaptiveCoverCheck 5 (childHL phiBelowCell33233223) = true := + adaptiveCoverCheck_succ_of_children 4 (childHL phiBelowCell33233223) + e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c0 e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c1 + e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c2 e24KC2PhiBelowLeaf33233_c2_c2_c3_c2_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c2_c2_c3_c3_c2_4_00444 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3f18540de9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3f18540de9 + +open CertificateCells3f18540de9 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c3_c2 : + adaptiveCoverCheck 4 (childHL (childHH phiBelowCell33233223)) = true := + adaptiveCoverCheck_succ_of_children 3 (childHL (childHH phiBelowCell33233223)) + e24KC2PhiBelowLeaf33233_c2_c2_c3_c3_c2_c0 e24KC2PhiBelowLeaf33233_c2_c2_c3_c3_c2_c1 + e24KC2PhiBelowLeaf33233_c2_c2_c3_c3_c2_c2 e24KC2PhiBelowLeaf33233_c2_c2_c3_c3_c2_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c2_c2_c3_c3_5_00446 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsa21caf16f2 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsa21caf16f2 + +open CertificateCellsa21caf16f2 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3_c3 : + adaptiveCoverCheck 5 (childHH phiBelowCell33233223) = true := + adaptiveCoverCheck_succ_of_children 4 (childHH phiBelowCell33233223) + e24KC2PhiBelowLeaf33233_c2_c2_c3_c3_c0 e24KC2PhiBelowLeaf33233_c2_c2_c3_c3_c1 + e24KC2PhiBelowLeaf33233_c2_c2_c3_c3_c2 e24KC2PhiBelowLeaf33233_c2_c2_c3_c3_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c2_c2_c3_6_00447 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells21943a9b83 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells21943a9b83 + +open CertificateCells21943a9b83 + +theorem e24KC2PhiBelowLeaf33233_c2_c2_c3 : + adaptiveCoverCheck 6 phiBelowCell33233223 = true := + adaptiveCoverCheck_succ_of_children 5 phiBelowCell33233223 + e24KC2PhiBelowLeaf33233_c2_c2_c3_c0 e24KC2PhiBelowLeaf33233_c2_c2_c3_c1 + e24KC2PhiBelowLeaf33233_c2_c2_c3_c2 e24KC2PhiBelowLeaf33233_c2_c2_c3_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c2_c2_7_00448 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells62ff50a4e8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells62ff50a4e8 + +open CertificateCells62ff50a4e8 + +theorem e24KC2PhiBelowLeaf33233_c2_c2 : + adaptiveCoverCheck 7 (childHL (childHL (childHH phiBelowCell3323))) = true := + adaptiveCoverCheck_succ_of_children 6 (childHL (childHL (childHH phiBelowCell3323))) + e24KC2PhiBelowLeaf33233_c2_c2_c0 e24KC2PhiBelowLeaf33233_c2_c2_c1 + e24KC2PhiBelowLeaf33233_c2_c2_c2 e24KC2PhiBelowLeaf33233_c2_c2_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c2_c3_c2_6_00457 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6677fc4b7c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6677fc4b7c + +open CertificateCells6677fc4b7c + +theorem e24KC2PhiBelowLeaf33233_c2_c3_c2 : + adaptiveCoverCheck 6 phiBelowCell33233232 = true := + adaptiveCoverCheck_succ_of_children 5 phiBelowCell33233232 + e24KC2PhiBelowLeaf33233_c2_c3_c2_c0 e24KC2PhiBelowLeaf33233_c2_c3_c2_c1 + e24KC2PhiBelowLeaf33233_c2_c3_c2_c2 e24KC2PhiBelowLeaf33233_c2_c3_c2_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c2_c3_7_00459 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells07875eeb47 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells07875eeb47 + +open CertificateCells07875eeb47 + +theorem e24KC2PhiBelowLeaf33233_c2_c3 : + adaptiveCoverCheck 7 (childHH (childHL (childHH phiBelowCell3323))) = true := + adaptiveCoverCheck_succ_of_children 6 (childHH (childHL (childHH phiBelowCell3323))) + e24KC2PhiBelowLeaf33233_c2_c3_c0 e24KC2PhiBelowLeaf33233_c2_c3_c1 + e24KC2PhiBelowLeaf33233_c2_c3_c2 e24KC2PhiBelowLeaf33233_c2_c3_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_c2_8_00460 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5ed2775b48 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5ed2775b48 + +open CertificateCells5ed2775b48 + +theorem e24KC2PhiBelowLeaf33233_c2 : + adaptiveCoverCheck 8 (childHL (childHH phiBelowCell3323)) = true := + adaptiveCoverCheck_succ_of_children 7 (childHL (childHH phiBelowCell3323)) + e24KC2PhiBelowLeaf33233_c2_c0 e24KC2PhiBelowLeaf33233_c2_c1 e24KC2PhiBelowLeaf33233_c2_c2 + e24KC2PhiBelowLeaf33233_c2_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Phi Below Leaf33233_9_00462 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells83d9ff7319 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells83d9ff7319 + +open CertificateCells83d9ff7319 + +theorem e24KC2PhiBelowLeaf33233 : + adaptiveCoverCheck 9 (childHH phiBelowCell3323) = true := + adaptiveCoverCheck_succ_of_children 8 (childHH phiBelowCell3323) + e24KC2PhiBelowLeaf33233_c0 e24KC2PhiBelowLeaf33233_c1 e24KC2PhiBelowLeaf33233_c2 + e24KC2PhiBelowLeaf33233_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC6Phi Below Reconstruct +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells240a9bf558 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells240a9bf558 + +open CertificateCells240a9bf558 + +theorem e24KC2PhiBelowNode3000 : + adaptiveCoverCheck 10 phiBelowCell3000 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3000 + e24KC2PhiBelowLeaf30000 e24KC2PhiBelowLeaf30001 e24KC2PhiBelowLeaf30002 e24KC2PhiBelowLeaf30003 + +theorem e24KC2PhiBelowNode3001 : + adaptiveCoverCheck 10 phiBelowCell3001 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3001 + e24KC2PhiBelowLeaf30010 e24KC2PhiBelowLeaf30011 e24KC2PhiBelowLeaf30012 e24KC2PhiBelowLeaf30013 + +theorem e24KC2PhiBelowNode3002 : + adaptiveCoverCheck 10 phiBelowCell3002 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3002 + e24KC2PhiBelowLeaf30020 e24KC2PhiBelowLeaf30021 e24KC2PhiBelowLeaf30022 e24KC2PhiBelowLeaf30023 + +theorem e24KC2PhiBelowNode3003 : + adaptiveCoverCheck 10 phiBelowCell3003 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3003 + e24KC2PhiBelowLeaf30030 e24KC2PhiBelowLeaf30031 e24KC2PhiBelowLeaf30032 e24KC2PhiBelowLeaf30033 + +theorem e24KC2PhiBelowNode3010 : + adaptiveCoverCheck 10 phiBelowCell3010 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3010 + e24KC2PhiBelowLeaf30100 e24KC2PhiBelowLeaf30101 e24KC2PhiBelowLeaf30102 e24KC2PhiBelowLeaf30103 + +theorem e24KC2PhiBelowNode3011 : + adaptiveCoverCheck 10 phiBelowCell3011 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3011 + e24KC2PhiBelowLeaf30110 e24KC2PhiBelowLeaf30111 e24KC2PhiBelowLeaf30112 e24KC2PhiBelowLeaf30113 + +theorem e24KC2PhiBelowNode3012 : + adaptiveCoverCheck 10 phiBelowCell3012 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3012 + e24KC2PhiBelowLeaf30120 e24KC2PhiBelowLeaf30121 e24KC2PhiBelowLeaf30122 e24KC2PhiBelowLeaf30123 + +theorem e24KC2PhiBelowNode3013 : + adaptiveCoverCheck 10 phiBelowCell3013 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3013 + e24KC2PhiBelowLeaf30130 e24KC2PhiBelowLeaf30131 e24KC2PhiBelowLeaf30132 e24KC2PhiBelowLeaf30133 + +theorem e24KC2PhiBelowNode3020 : + adaptiveCoverCheck 10 phiBelowCell3020 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3020 + e24KC2PhiBelowLeaf30200 e24KC2PhiBelowLeaf30201 e24KC2PhiBelowLeaf30202 e24KC2PhiBelowLeaf30203 + +theorem e24KC2PhiBelowNode3021 : + adaptiveCoverCheck 10 phiBelowCell3021 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3021 + e24KC2PhiBelowLeaf30210 e24KC2PhiBelowLeaf30211 e24KC2PhiBelowLeaf30212 e24KC2PhiBelowLeaf30213 + +theorem e24KC2PhiBelowNode3022 : + adaptiveCoverCheck 10 phiBelowCell3022 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3022 + e24KC2PhiBelowLeaf30220 e24KC2PhiBelowLeaf30221 e24KC2PhiBelowLeaf30222 e24KC2PhiBelowLeaf30223 + +theorem e24KC2PhiBelowNode3023 : + adaptiveCoverCheck 10 phiBelowCell3023 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3023 + e24KC2PhiBelowLeaf30230 e24KC2PhiBelowLeaf30231 e24KC2PhiBelowLeaf30232 e24KC2PhiBelowLeaf30233 + +theorem e24KC2PhiBelowNode3030 : + adaptiveCoverCheck 10 phiBelowCell3030 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3030 + e24KC2PhiBelowLeaf30300 e24KC2PhiBelowLeaf30301 e24KC2PhiBelowLeaf30302 e24KC2PhiBelowLeaf30303 + +theorem e24KC2PhiBelowNode3031 : + adaptiveCoverCheck 10 phiBelowCell3031 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3031 + e24KC2PhiBelowLeaf30310 e24KC2PhiBelowLeaf30311 e24KC2PhiBelowLeaf30312 e24KC2PhiBelowLeaf30313 + +theorem e24KC2PhiBelowNode3032 : + adaptiveCoverCheck 10 phiBelowCell3032 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3032 + e24KC2PhiBelowLeaf30320 e24KC2PhiBelowLeaf30321 e24KC2PhiBelowLeaf30322 e24KC2PhiBelowLeaf30323 + +theorem e24KC2PhiBelowNode3033 : + adaptiveCoverCheck 10 phiBelowCell3033 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3033 + e24KC2PhiBelowLeaf30330 e24KC2PhiBelowLeaf30331 e24KC2PhiBelowLeaf30332 e24KC2PhiBelowLeaf30333 + +theorem e24KC2PhiBelowNode3100 : + adaptiveCoverCheck 10 phiBelowCell3100 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3100 + e24KC2PhiBelowLeaf31000 e24KC2PhiBelowLeaf31001 e24KC2PhiBelowLeaf31002 e24KC2PhiBelowLeaf31003 + +theorem e24KC2PhiBelowNode3101 : + adaptiveCoverCheck 10 phiBelowCell3101 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3101 + e24KC2PhiBelowLeaf31010 e24KC2PhiBelowLeaf31011 e24KC2PhiBelowLeaf31012 e24KC2PhiBelowLeaf31013 + +theorem e24KC2PhiBelowNode3102 : + adaptiveCoverCheck 10 phiBelowCell3102 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3102 + e24KC2PhiBelowLeaf31020 e24KC2PhiBelowLeaf31021 e24KC2PhiBelowLeaf31022 e24KC2PhiBelowLeaf31023 + +theorem e24KC2PhiBelowNode3103 : + adaptiveCoverCheck 10 phiBelowCell3103 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3103 + e24KC2PhiBelowLeaf31030 e24KC2PhiBelowLeaf31031 e24KC2PhiBelowLeaf31032 e24KC2PhiBelowLeaf31033 + +theorem e24KC2PhiBelowNode3112 : + adaptiveCoverCheck 10 phiBelowCell3112 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3112 + e24KC2PhiBelowLeaf31120 e24KC2PhiBelowLeaf31121 e24KC2PhiBelowLeaf31122 e24KC2PhiBelowLeaf31123 + +theorem e24KC2PhiBelowNode3120 : + adaptiveCoverCheck 10 phiBelowCell3120 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3120 + e24KC2PhiBelowLeaf31200 e24KC2PhiBelowLeaf31201 e24KC2PhiBelowLeaf31202 e24KC2PhiBelowLeaf31203 + +theorem e24KC2PhiBelowNode3121 : + adaptiveCoverCheck 10 phiBelowCell3121 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3121 + e24KC2PhiBelowLeaf31210 e24KC2PhiBelowLeaf31211 e24KC2PhiBelowLeaf31212 e24KC2PhiBelowLeaf31213 + +theorem e24KC2PhiBelowNode3122 : + adaptiveCoverCheck 10 phiBelowCell3122 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3122 + e24KC2PhiBelowLeaf31220 e24KC2PhiBelowLeaf31221 e24KC2PhiBelowLeaf31222 e24KC2PhiBelowLeaf31223 + +theorem e24KC2PhiBelowNode3123 : + adaptiveCoverCheck 10 phiBelowCell3123 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3123 + e24KC2PhiBelowLeaf31230 e24KC2PhiBelowLeaf31231 e24KC2PhiBelowLeaf31232 e24KC2PhiBelowLeaf31233 + +theorem e24KC2PhiBelowNode3130 : + adaptiveCoverCheck 10 phiBelowCell3130 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3130 + e24KC2PhiBelowLeaf31300 e24KC2PhiBelowLeaf31301 e24KC2PhiBelowLeaf31302 e24KC2PhiBelowLeaf31303 + +theorem e24KC2PhiBelowNode3131 : + adaptiveCoverCheck 10 phiBelowCell3131 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3131 + e24KC2PhiBelowLeaf31310 e24KC2PhiBelowLeaf31311 e24KC2PhiBelowLeaf31312 e24KC2PhiBelowLeaf31313 + +theorem e24KC2PhiBelowNode3132 : + adaptiveCoverCheck 10 phiBelowCell3132 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3132 + e24KC2PhiBelowLeaf31320 e24KC2PhiBelowLeaf31321 e24KC2PhiBelowLeaf31322 e24KC2PhiBelowLeaf31323 + +theorem e24KC2PhiBelowNode3133 : + adaptiveCoverCheck 10 phiBelowCell3133 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3133 + e24KC2PhiBelowLeaf31330 e24KC2PhiBelowLeaf31331 e24KC2PhiBelowLeaf31332 e24KC2PhiBelowLeaf31333 + +theorem e24KC2PhiBelowNode3200 : + adaptiveCoverCheck 10 phiBelowCell3200 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3200 + e24KC2PhiBelowLeaf32000 e24KC2PhiBelowLeaf32001 e24KC2PhiBelowLeaf32002 e24KC2PhiBelowLeaf32003 + +theorem e24KC2PhiBelowNode3201 : + adaptiveCoverCheck 10 phiBelowCell3201 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3201 + e24KC2PhiBelowLeaf32010 e24KC2PhiBelowLeaf32011 e24KC2PhiBelowLeaf32012 e24KC2PhiBelowLeaf32013 + +theorem e24KC2PhiBelowNode3202 : + adaptiveCoverCheck 10 phiBelowCell3202 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3202 + e24KC2PhiBelowLeaf32020 e24KC2PhiBelowLeaf32021 e24KC2PhiBelowLeaf32022 e24KC2PhiBelowLeaf32023 + +theorem e24KC2PhiBelowNode3203 : + adaptiveCoverCheck 10 phiBelowCell3203 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3203 + e24KC2PhiBelowLeaf32030 e24KC2PhiBelowLeaf32031 e24KC2PhiBelowLeaf32032 e24KC2PhiBelowLeaf32033 + +theorem e24KC2PhiBelowNode3210 : + adaptiveCoverCheck 10 phiBelowCell3210 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3210 + e24KC2PhiBelowLeaf32100 e24KC2PhiBelowLeaf32101 e24KC2PhiBelowLeaf32102 e24KC2PhiBelowLeaf32103 + +theorem e24KC2PhiBelowNode3211 : + adaptiveCoverCheck 10 phiBelowCell3211 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3211 + e24KC2PhiBelowLeaf32110 e24KC2PhiBelowLeaf32111 e24KC2PhiBelowLeaf32112 e24KC2PhiBelowLeaf32113 + +theorem e24KC2PhiBelowNode3212 : + adaptiveCoverCheck 10 phiBelowCell3212 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3212 + e24KC2PhiBelowLeaf32120 e24KC2PhiBelowLeaf32121 e24KC2PhiBelowLeaf32122 e24KC2PhiBelowLeaf32123 + +theorem e24KC2PhiBelowNode3213 : + adaptiveCoverCheck 10 phiBelowCell3213 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3213 + e24KC2PhiBelowLeaf32130 e24KC2PhiBelowLeaf32131 e24KC2PhiBelowLeaf32132 e24KC2PhiBelowLeaf32133 + +theorem e24KC2PhiBelowNode3220 : + adaptiveCoverCheck 10 phiBelowCell3220 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3220 + e24KC2PhiBelowLeaf32200 e24KC2PhiBelowLeaf32201 e24KC2PhiBelowLeaf32202 e24KC2PhiBelowLeaf32203 + +theorem e24KC2PhiBelowNode3221 : + adaptiveCoverCheck 10 phiBelowCell3221 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3221 + e24KC2PhiBelowLeaf32210 e24KC2PhiBelowLeaf32211 e24KC2PhiBelowLeaf32212 e24KC2PhiBelowLeaf32213 + +theorem e24KC2PhiBelowNode3222 : + adaptiveCoverCheck 10 phiBelowCell3222 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3222 + e24KC2PhiBelowLeaf32220 e24KC2PhiBelowLeaf32221 e24KC2PhiBelowLeaf32222 e24KC2PhiBelowLeaf32223 + +theorem e24KC2PhiBelowNode3223 : + adaptiveCoverCheck 10 phiBelowCell3223 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3223 + e24KC2PhiBelowLeaf32230 e24KC2PhiBelowLeaf32231 e24KC2PhiBelowLeaf32232 e24KC2PhiBelowLeaf32233 + +theorem e24KC2PhiBelowNode3230 : + adaptiveCoverCheck 10 phiBelowCell3230 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3230 + e24KC2PhiBelowLeaf32300 e24KC2PhiBelowLeaf32301 e24KC2PhiBelowLeaf32302 e24KC2PhiBelowLeaf32303 + +theorem e24KC2PhiBelowNode3231 : + adaptiveCoverCheck 10 phiBelowCell3231 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3231 + e24KC2PhiBelowLeaf32310 e24KC2PhiBelowLeaf32311 e24KC2PhiBelowLeaf32312 e24KC2PhiBelowLeaf32313 + +theorem e24KC2PhiBelowNode3232 : + adaptiveCoverCheck 10 phiBelowCell3232 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3232 + e24KC2PhiBelowLeaf32320 e24KC2PhiBelowLeaf32321 e24KC2PhiBelowLeaf32322 e24KC2PhiBelowLeaf32323 + +theorem e24KC2PhiBelowNode3233 : + adaptiveCoverCheck 10 phiBelowCell3233 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3233 + e24KC2PhiBelowLeaf32330 e24KC2PhiBelowLeaf32331 e24KC2PhiBelowLeaf32332 e24KC2PhiBelowLeaf32333 + +theorem e24KC2PhiBelowNode3300 : + adaptiveCoverCheck 10 phiBelowCell3300 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3300 + e24KC2PhiBelowLeaf33000 e24KC2PhiBelowLeaf33001 e24KC2PhiBelowLeaf33002 e24KC2PhiBelowLeaf33003 + +theorem e24KC2PhiBelowNode3301 : + adaptiveCoverCheck 10 phiBelowCell3301 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3301 + e24KC2PhiBelowLeaf33010 e24KC2PhiBelowLeaf33011 e24KC2PhiBelowLeaf33012 e24KC2PhiBelowLeaf33013 + +theorem e24KC2PhiBelowNode3302 : + adaptiveCoverCheck 10 phiBelowCell3302 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3302 + e24KC2PhiBelowLeaf33020 e24KC2PhiBelowLeaf33021 e24KC2PhiBelowLeaf33022 e24KC2PhiBelowLeaf33023 + +theorem e24KC2PhiBelowNode3303 : + adaptiveCoverCheck 10 phiBelowCell3303 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3303 + e24KC2PhiBelowLeaf33030 e24KC2PhiBelowLeaf33031 e24KC2PhiBelowLeaf33032 e24KC2PhiBelowLeaf33033 + +theorem e24KC2PhiBelowNode3310 : + adaptiveCoverCheck 10 phiBelowCell3310 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3310 + e24KC2PhiBelowLeaf33100 e24KC2PhiBelowLeaf33101 e24KC2PhiBelowLeaf33102 e24KC2PhiBelowLeaf33103 + +theorem e24KC2PhiBelowNode3311 : + adaptiveCoverCheck 10 phiBelowCell3311 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3311 + e24KC2PhiBelowLeaf33110 e24KC2PhiBelowLeaf33111 e24KC2PhiBelowLeaf33112 e24KC2PhiBelowLeaf33113 + +theorem e24KC2PhiBelowNode3312 : + adaptiveCoverCheck 10 phiBelowCell3312 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3312 + e24KC2PhiBelowLeaf33120 e24KC2PhiBelowLeaf33121 e24KC2PhiBelowLeaf33122 e24KC2PhiBelowLeaf33123 + +theorem e24KC2PhiBelowNode3313 : + adaptiveCoverCheck 10 phiBelowCell3313 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3313 + e24KC2PhiBelowLeaf33130 e24KC2PhiBelowLeaf33131 e24KC2PhiBelowLeaf33132 e24KC2PhiBelowLeaf33133 + +theorem e24KC2PhiBelowNode3320 : + adaptiveCoverCheck 10 phiBelowCell3320 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3320 + e24KC2PhiBelowLeaf33200 e24KC2PhiBelowLeaf33201 e24KC2PhiBelowLeaf33202 e24KC2PhiBelowLeaf33203 + +theorem e24KC2PhiBelowNode3321 : + adaptiveCoverCheck 10 phiBelowCell3321 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3321 + e24KC2PhiBelowLeaf33210 e24KC2PhiBelowLeaf33211 e24KC2PhiBelowLeaf33212 e24KC2PhiBelowLeaf33213 + +theorem e24KC2PhiBelowNode3322 : + adaptiveCoverCheck 10 phiBelowCell3322 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3322 + e24KC2PhiBelowLeaf33220 e24KC2PhiBelowLeaf33221 e24KC2PhiBelowLeaf33222 e24KC2PhiBelowLeaf33223 + +theorem e24KC2PhiBelowNode3323 : + adaptiveCoverCheck 10 phiBelowCell3323 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3323 + e24KC2PhiBelowLeaf33230 e24KC2PhiBelowLeaf33231 e24KC2PhiBelowLeaf33232 e24KC2PhiBelowLeaf33233 + +theorem e24KC2PhiBelowNode3330 : + adaptiveCoverCheck 10 phiBelowCell3330 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3330 + e24KC2PhiBelowLeaf33300 e24KC2PhiBelowLeaf33301 e24KC2PhiBelowLeaf33302 e24KC2PhiBelowLeaf33303 + +theorem e24KC2PhiBelowNode3331 : + adaptiveCoverCheck 10 phiBelowCell3331 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3331 + e24KC2PhiBelowLeaf33310 e24KC2PhiBelowLeaf33311 e24KC2PhiBelowLeaf33312 e24KC2PhiBelowLeaf33313 + +theorem e24KC2PhiBelowNode3332 : + adaptiveCoverCheck 10 phiBelowCell3332 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3332 + e24KC2PhiBelowLeaf33320 e24KC2PhiBelowLeaf33321 e24KC2PhiBelowLeaf33322 e24KC2PhiBelowLeaf33323 + +theorem e24KC2PhiBelowNode3333 : + adaptiveCoverCheck 10 phiBelowCell3333 = true := + adaptiveCoverCheck_succ_of_children 9 phiBelowCell3333 + e24KC2PhiBelowLeaf33330 e24KC2PhiBelowLeaf33331 e24KC2PhiBelowLeaf33332 e24KC2PhiBelowLeaf33333 + +theorem e24KC2PhiBelowNode300 : + adaptiveCoverCheck 11 (childLL (childLL (childHH e24PhiBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childLL (childHH e24PhiBelowRoot))) + e24KC2PhiBelowNode3000 e24KC2PhiBelowNode3001 e24KC2PhiBelowNode3002 e24KC2PhiBelowNode3003 + +theorem e24KC2PhiBelowNode301 : + adaptiveCoverCheck 11 (childLH (childLL (childHH e24PhiBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childLL (childHH e24PhiBelowRoot))) + e24KC2PhiBelowNode3010 e24KC2PhiBelowNode3011 e24KC2PhiBelowNode3012 e24KC2PhiBelowNode3013 + +theorem e24KC2PhiBelowNode302 : + adaptiveCoverCheck 11 (childHL (childLL (childHH e24PhiBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLL (childHH e24PhiBelowRoot))) + e24KC2PhiBelowNode3020 e24KC2PhiBelowNode3021 e24KC2PhiBelowNode3022 e24KC2PhiBelowNode3023 + +theorem e24KC2PhiBelowNode303 : + adaptiveCoverCheck 11 (childHH (childLL (childHH e24PhiBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLL (childHH e24PhiBelowRoot))) + e24KC2PhiBelowNode3030 e24KC2PhiBelowNode3031 e24KC2PhiBelowNode3032 e24KC2PhiBelowNode3033 + +theorem e24KC2PhiBelowNode310 : + adaptiveCoverCheck 11 (childLL (childLH (childHH e24PhiBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childLH (childHH e24PhiBelowRoot))) + e24KC2PhiBelowNode3100 e24KC2PhiBelowNode3101 e24KC2PhiBelowNode3102 e24KC2PhiBelowNode3103 + +theorem e24KC2PhiBelowNode311 : + adaptiveCoverCheck 11 (childLH (childLH (childHH e24PhiBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childLH (childHH e24PhiBelowRoot))) + e24KC2PhiBelowLeaf3110 e24KC2PhiBelowLeaf3111 e24KC2PhiBelowNode3112 e24KC2PhiBelowLeaf3113 + +theorem e24KC2PhiBelowNode312 : + adaptiveCoverCheck 11 (childHL (childLH (childHH e24PhiBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childLH (childHH e24PhiBelowRoot))) + e24KC2PhiBelowNode3120 e24KC2PhiBelowNode3121 e24KC2PhiBelowNode3122 e24KC2PhiBelowNode3123 + +theorem e24KC2PhiBelowNode313 : + adaptiveCoverCheck 11 (childHH (childLH (childHH e24PhiBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childLH (childHH e24PhiBelowRoot))) + e24KC2PhiBelowNode3130 e24KC2PhiBelowNode3131 e24KC2PhiBelowNode3132 e24KC2PhiBelowNode3133 + +theorem e24KC2PhiBelowNode320 : + adaptiveCoverCheck 11 (childLL (childHL (childHH e24PhiBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childHL (childHH e24PhiBelowRoot))) + e24KC2PhiBelowNode3200 e24KC2PhiBelowNode3201 e24KC2PhiBelowNode3202 e24KC2PhiBelowNode3203 + +theorem e24KC2PhiBelowNode321 : + adaptiveCoverCheck 11 (childLH (childHL (childHH e24PhiBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childHL (childHH e24PhiBelowRoot))) + e24KC2PhiBelowNode3210 e24KC2PhiBelowNode3211 e24KC2PhiBelowNode3212 e24KC2PhiBelowNode3213 + +theorem e24KC2PhiBelowNode322 : + adaptiveCoverCheck 11 (childHL (childHL (childHH e24PhiBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childHL (childHH e24PhiBelowRoot))) + e24KC2PhiBelowNode3220 e24KC2PhiBelowNode3221 e24KC2PhiBelowNode3222 e24KC2PhiBelowNode3223 + +theorem e24KC2PhiBelowNode323 : + adaptiveCoverCheck 11 (childHH (childHL (childHH e24PhiBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childHL (childHH e24PhiBelowRoot))) + e24KC2PhiBelowNode3230 e24KC2PhiBelowNode3231 e24KC2PhiBelowNode3232 e24KC2PhiBelowNode3233 + +theorem e24KC2PhiBelowNode330 : + adaptiveCoverCheck 11 (childLL (childHH (childHH e24PhiBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLL (childHH (childHH e24PhiBelowRoot))) + e24KC2PhiBelowNode3300 e24KC2PhiBelowNode3301 e24KC2PhiBelowNode3302 e24KC2PhiBelowNode3303 + +theorem e24KC2PhiBelowNode331 : + adaptiveCoverCheck 11 (childLH (childHH (childHH e24PhiBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 10 (childLH (childHH (childHH e24PhiBelowRoot))) + e24KC2PhiBelowNode3310 e24KC2PhiBelowNode3311 e24KC2PhiBelowNode3312 e24KC2PhiBelowNode3313 + +theorem e24KC2PhiBelowNode332 : + adaptiveCoverCheck 11 (childHL (childHH (childHH e24PhiBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHL (childHH (childHH e24PhiBelowRoot))) + e24KC2PhiBelowNode3320 e24KC2PhiBelowNode3321 e24KC2PhiBelowNode3322 e24KC2PhiBelowNode3323 + +theorem e24KC2PhiBelowNode333 : + adaptiveCoverCheck 11 (childHH (childHH (childHH e24PhiBelowRoot))) = true := + adaptiveCoverCheck_succ_of_children 10 (childHH (childHH (childHH e24PhiBelowRoot))) + e24KC2PhiBelowNode3330 e24KC2PhiBelowNode3331 e24KC2PhiBelowNode3332 e24KC2PhiBelowNode3333 + +theorem e24KC2PhiBelowNode30 : + adaptiveCoverCheck 12 (childLL (childHH e24PhiBelowRoot)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH e24PhiBelowRoot)) + e24KC2PhiBelowNode300 e24KC2PhiBelowNode301 e24KC2PhiBelowNode302 e24KC2PhiBelowNode303 + +theorem e24KC2PhiBelowNode31 : + adaptiveCoverCheck 12 (childLH (childHH e24PhiBelowRoot)) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH e24PhiBelowRoot)) + e24KC2PhiBelowNode310 e24KC2PhiBelowNode311 e24KC2PhiBelowNode312 e24KC2PhiBelowNode313 + +theorem e24KC2PhiBelowNode32 : + adaptiveCoverCheck 12 (childHL (childHH e24PhiBelowRoot)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH e24PhiBelowRoot)) + e24KC2PhiBelowNode320 e24KC2PhiBelowNode321 e24KC2PhiBelowNode322 e24KC2PhiBelowNode323 + +theorem e24KC2PhiBelowNode33 : + adaptiveCoverCheck 12 (childHH (childHH e24PhiBelowRoot)) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH e24PhiBelowRoot)) + e24KC2PhiBelowNode330 e24KC2PhiBelowNode331 e24KC2PhiBelowNode332 e24KC2PhiBelowNode333 + +theorem e24KC2PhiBelowNode3 : + adaptiveCoverCheck 13 (childHH e24PhiBelowRoot) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH e24PhiBelowRoot) + e24KC2PhiBelowNode30 e24KC2PhiBelowNode31 e24KC2PhiBelowNode32 e24KC2PhiBelowNode33 + +theorem e24KC2PhiBelowNodeROOT : + adaptiveCoverCheck 14 e24PhiBelowRoot = true := + adaptiveCoverCheck_succ_of_children 13 e24PhiBelowRoot + e24PhiBelowKernelLL e24PhiBelowKernelLH e24PhiBelowKernelHL e24KC2PhiBelowNode3 + +theorem e24PhiBelowKernelCheck : + adaptiveCoverCheck 14 e24PhiBelowRoot = true := + e24KC2PhiBelowNodeROOT + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c1_c2_4_00016 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells22695df69a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells22695df69a + +open CertificateCells22695df69a + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c2 : + adaptiveCoverCheck 4 (childHL (childLH (childHH thetaAboveCell000022002011))) = true := + adaptiveCoverCheck_succ_of_children 3 (childHL (childLH (childHH thetaAboveCell000022002011))) + e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c2_c0 + e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c2_c1 + e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c2_c2 + e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c2_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c1_c3_4_00022 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells782ac45202 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells782ac45202 + +open CertificateCells782ac45202 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c3 : + adaptiveCoverCheck 4 (childHH (childLH (childHH thetaAboveCell000022002011))) = true := + adaptiveCoverCheck_succ_of_children 3 (childHH (childLH (childHH thetaAboveCell000022002011))) + e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c3_c0 + e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c3_c1 + e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c3_c2 + e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c3_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c1_5_00023 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb8f48433cf + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb8f48433cf + +open CertificateCellsb8f48433cf + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022002011)) = true := + adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022002011)) + e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c0 e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c1 + e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c2 e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c0_c0_4_00484 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5bc1aa1a31 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5bc1aa1a31 + +open CertificateCells5bc1aa1a31 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c0 : + adaptiveCoverCheck 4 (childLL (childLL (childHL thetaAboveCell000022002000))) = true := + adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHL thetaAboveCell000022002000))) + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c0_c0 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c0_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c0_c2 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c0_c1_4_00490 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells29b43c6eb7 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells29b43c6eb7 + +open CertificateCells29b43c6eb7 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c1 : + adaptiveCoverCheck 4 (childLH (childLL (childHL thetaAboveCell000022002000))) = true := + adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHL thetaAboveCell000022002000))) + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c1_c0 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c1_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c1_c2 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c0_5_00493 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells64bf70ad53 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells64bf70ad53 + +open CertificateCells64bf70ad53 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022002000)) = true := + adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022002000)) + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c0 e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c2 e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c1_c0_4_00500 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc935d550f9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc935d550f9 + +open CertificateCellsc935d550f9 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c0 : + adaptiveCoverCheck 4 (childLL (childLH (childHL thetaAboveCell000022002000))) = true := + adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHL thetaAboveCell000022002000))) + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c0_c0 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c0_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c0_c2 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c1_c1_4_00506 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0a80d69c2b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0a80d69c2b + +open CertificateCells0a80d69c2b + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c1 : + adaptiveCoverCheck 4 (childLH (childLH (childHL thetaAboveCell000022002000))) = true := + adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHL thetaAboveCell000022002000))) + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c1_c0 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c1_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c1_c2 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c0_c2_c1_5_00509 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsfd35b16333 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsfd35b16333 + +open CertificateCellsfd35b16333 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022002000)) = true := + adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022002000)) + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c0 e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c2 e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above Leaf0000220020_c0_c0_c2_6_00512 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsd8bbac8cc5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsd8bbac8cc5 + +open CertificateCellsd8bbac8cc5 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c2 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022002000) = true := + adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022002000) + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c0 e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c2 e24KC2ThetaAboveLeaf0000220020_c0_c0_c2_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c0_c0_4_00520 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2eb3bc7e90 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2eb3bc7e90 + +open CertificateCells2eb3bc7e90 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c0 : + adaptiveCoverCheck 4 (childLL (childLL (childHH thetaAboveCell000022002000))) = true := + adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHH thetaAboveCell000022002000))) + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c0_c0 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c0_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c0_c2 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c0_c1_4_00526 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsbc99de789e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsbc99de789e + +open CertificateCellsbc99de789e + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c1 : + adaptiveCoverCheck 4 (childLH (childLL (childHH thetaAboveCell000022002000))) = true := + adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHH thetaAboveCell000022002000))) + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c1_c0 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c1_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c1_c2 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c0_5_00529 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsdc52d78b64 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsdc52d78b64 + +open CertificateCellsdc52d78b64 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022002000)) = true := + adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022002000)) + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c0 e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c2 e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c1_c0_4_00536 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells69f98d6dd4 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells69f98d6dd4 + +open CertificateCells69f98d6dd4 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c0 : + adaptiveCoverCheck 4 (childLL (childLH (childHH thetaAboveCell000022002000))) = true := + adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHH thetaAboveCell000022002000))) + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c0_c0 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c0_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c0_c2 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c1_c1_4_00542 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells675835e7b9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells675835e7b9 + +open CertificateCells675835e7b9 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c1 : + adaptiveCoverCheck 4 (childLH (childLH (childHH thetaAboveCell000022002000))) = true := + adaptiveCoverCheck_succ_of_children 3 (childLH (childLH (childHH thetaAboveCell000022002000))) + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c1_c0 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c1_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c1_c2 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c0_c3_c1_5_00545 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsda5cde5aa9 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsda5cde5aa9 + +open CertificateCellsda5cde5aa9 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022002000)) = true := + adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022002000)) + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c0 e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c2 e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above Leaf0000220020_c0_c0_c3_6_00548 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsed33eab041 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsed33eab041 + +open CertificateCellsed33eab041 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0_c3 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022002000) = true := + adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022002000) + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c0 e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c2 e24KC2ThetaAboveLeaf0000220020_c0_c0_c3_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above Leaf0000220020_c0_c0_7_00549 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsf997ca54bf + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsf997ca54bf + +open CertificateCellsf997ca54bf + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c0 : + adaptiveCoverCheck 7 thetaAboveCell000022002000 = true := + adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022002000 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c0 e24KC2ThetaAboveLeaf0000220020_c0_c0_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c0_c2 e24KC2ThetaAboveLeaf0000220020_c0_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c0_c0_4_00560 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsba35077fe5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsba35077fe5 + +open CertificateCellsba35077fe5 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c0 : + adaptiveCoverCheck 4 (childLL (childLL (childHL thetaAboveCell000022002001))) = true := + adaptiveCoverCheck_succ_of_children 3 (childLL (childLL (childHL thetaAboveCell000022002001))) + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c0_c0 + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c0_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c0_c2 + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c0_c1_4_00566 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5d0bfdcc89 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5d0bfdcc89 + +open CertificateCells5d0bfdcc89 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c1 : + adaptiveCoverCheck 4 (childLH (childLL (childHL thetaAboveCell000022002001))) = true := + adaptiveCoverCheck_succ_of_children 3 (childLH (childLL (childHL thetaAboveCell000022002001))) + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c1_c0 + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c1_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c1_c2 + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c0_5_00569 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb9eba9ae01 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb9eba9ae01 + +open CertificateCellsb9eba9ae01 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022002001)) = true := + adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022002001)) + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c0 e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c2 e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c1_c0_4_00576 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells5ae8bbaf2e + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells5ae8bbaf2e + +open CertificateCells5ae8bbaf2e + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c1_c0 : + adaptiveCoverCheck 4 (childLL (childLH (childHL thetaAboveCell000022002001))) = true := + adaptiveCoverCheck_succ_of_children 3 (childLL (childLH (childHL thetaAboveCell000022002001))) + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c1_c0_c0 + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c1_c0_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c1_c0_c2 + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c1_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c1_c2_c1_5_00580 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsbec28e0304 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsbec28e0304 + +open CertificateCellsbec28e0304 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c1 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022002001)) = true := + adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022002001)) + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c1_c0 e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c1_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c1_c2 e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above Leaf0000220020_c0_c1_c2_6_00583 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1b578c3d10 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1b578c3d10 + +open CertificateCells1b578c3d10 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c2 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022002001) = true := + adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022002001) + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c0 e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c2 e24KC2ThetaAboveLeaf0000220020_c0_c1_c2_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c1_c3_c0_5_00590 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2bc65b7190 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2bc65b7190 + +open CertificateCells2bc65b7190 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c0 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022002001)) = true := + adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022002001)) + e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c0_c0 e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c0_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c0_c2 e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c0_c1_c3_c1_5_00596 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsc46dbfc77b + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsc46dbfc77b + +open CertificateCellsc46dbfc77b + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c1 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022002001)) = true := + adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022002001)) + e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c1_c0 e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c1_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c1_c2 e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above Leaf0000220020_c0_c1_c3_6_00599 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells752b604750 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells752b604750 + +open CertificateCells752b604750 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1_c3 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022002001) = true := + adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022002001) + e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c0 e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c2 e24KC2ThetaAboveLeaf0000220020_c0_c1_c3_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above Leaf0000220020_c0_c1_7_00600 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellse66f3ce3f5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellse66f3ce3f5 + +open CertificateCellse66f3ce3f5 + +theorem e24KC2ThetaAboveLeaf0000220020_c0_c1 : + adaptiveCoverCheck 7 thetaAboveCell000022002001 = true := + adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022002001 + e24KC2ThetaAboveLeaf0000220020_c0_c1_c0 e24KC2ThetaAboveLeaf0000220020_c0_c1_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c1_c2 e24KC2ThetaAboveLeaf0000220020_c0_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above Leaf0000220020_c0_8_00603 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells45a373af38 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells45a373af38 + +open CertificateCells45a373af38 + +theorem e24KC2ThetaAboveLeaf0000220020_c0 : + adaptiveCoverCheck 8 (childLL (childLL (childHL thetaAboveCell00002200))) = true := + adaptiveCoverCheck_succ_of_children 7 (childLL (childLL (childHL thetaAboveCell00002200))) + e24KC2ThetaAboveLeaf0000220020_c0_c0 e24KC2ThetaAboveLeaf0000220020_c0_c1 + e24KC2ThetaAboveLeaf0000220020_c0_c2 e24KC2ThetaAboveLeaf0000220020_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c1_c0_c2_c0_5_00614 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsdabf824b24 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsdabf824b24 + +open CertificateCellsdabf824b24 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c0 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022002010)) = true := + adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022002010)) + e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c0_c0 e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c0_c1 + e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c0_c2 e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c1_c0_c2_c1_5_00620 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells11c2c46ea8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells11c2c46ea8 + +open CertificateCells11c2c46ea8 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c1 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022002010)) = true := + adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022002010)) + e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c1_c0 e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c1_c1 + e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c1_c2 e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above Leaf0000220020_c1_c0_c2_6_00623 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsfc2738963a + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsfc2738963a + +open CertificateCellsfc2738963a + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c2 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022002010) = true := + adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022002010) + e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c0 e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c1 + e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c2 e24KC2ThetaAboveLeaf0000220020_c1_c0_c2_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c1_c0_c3_c0_5_00630 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells2c3b2a68a2 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells2c3b2a68a2 + +open CertificateCells2c3b2a68a2 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c0 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022002010)) = true := + adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022002010)) + e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c0_c0 e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c0_c1 + e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c0_c2 e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c1_c0_c3_c1_5_00636 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells024fe9d391 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells024fe9d391 + +open CertificateCells024fe9d391 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c1 : + adaptiveCoverCheck 5 (childLH (childHH thetaAboveCell000022002010)) = true := + adaptiveCoverCheck_succ_of_children 4 (childLH (childHH thetaAboveCell000022002010)) + e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c1_c0 e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c1_c1 + e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c1_c2 e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above Leaf0000220020_c1_c0_c3_6_00639 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells95bf7ab700 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells95bf7ab700 + +open CertificateCells95bf7ab700 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0_c3 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022002010) = true := + adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022002010) + e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c0 e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c1 + e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c2 e24KC2ThetaAboveLeaf0000220020_c1_c0_c3_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above Leaf0000220020_c1_c0_7_00640 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb2f77f238f + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb2f77f238f + +open CertificateCellsb2f77f238f + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c0 : + adaptiveCoverCheck 7 thetaAboveCell000022002010 = true := + adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022002010 + e24KC2ThetaAboveLeaf0000220020_c1_c0_c0 e24KC2ThetaAboveLeaf0000220020_c1_c0_c1 + e24KC2ThetaAboveLeaf0000220020_c1_c0_c2 e24KC2ThetaAboveLeaf0000220020_c1_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c1_c1_c2_c0_5_00650 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells8179cb7dd8 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells8179cb7dd8 + +open CertificateCells8179cb7dd8 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c0 : + adaptiveCoverCheck 5 (childLL (childHL thetaAboveCell000022002011)) = true := + adaptiveCoverCheck_succ_of_children 4 (childLL (childHL thetaAboveCell000022002011)) + e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c0_c0 e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c0_c1 + e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c0_c2 e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c1_c1_c2_c1_5_00656 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsdb257f0c7c + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsdb257f0c7c + +open CertificateCellsdb257f0c7c + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c1 : + adaptiveCoverCheck 5 (childLH (childHL thetaAboveCell000022002011)) = true := + adaptiveCoverCheck_succ_of_children 4 (childLH (childHL thetaAboveCell000022002011)) + e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c1_c0 e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c1_c1 + e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c1_c2 e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above Leaf0000220020_c1_c1_c2_6_00659 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells3a304b7358 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells3a304b7358 + +open CertificateCells3a304b7358 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c2 : + adaptiveCoverCheck 6 (childHL thetaAboveCell000022002011) = true := + adaptiveCoverCheck_succ_of_children 5 (childHL thetaAboveCell000022002011) + e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c0 e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c1 + e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c2 e24KC2ThetaAboveLeaf0000220020_c1_c1_c2_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above +Leaf0000220020_c1_c1_c3_c0_5_00666 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells6cdc8e3bc2 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells6cdc8e3bc2 + +open CertificateCells6cdc8e3bc2 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c0 : + adaptiveCoverCheck 5 (childLL (childHH thetaAboveCell000022002011)) = true := + adaptiveCoverCheck_succ_of_children 4 (childLL (childHH thetaAboveCell000022002011)) + e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c0_c0 e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c0_c1 + e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c0_c2 e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c0_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above Leaf0000220020_c1_c1_c3_6_00026 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells0157659d62 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells0157659d62 + +open CertificateCells0157659d62 + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1_c3 : + adaptiveCoverCheck 6 (childHH thetaAboveCell000022002011) = true := + adaptiveCoverCheck_succ_of_children 5 (childHH thetaAboveCell000022002011) + e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c0 e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c1 + e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c2 e24KC2ThetaAboveLeaf0000220020_c1_c1_c3_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC5Join_e24KC2Theta Above Leaf0000220020_c1_c1_7_00027 +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells834e9932ec + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells834e9932ec + +open CertificateCells834e9932ec + +theorem e24KC2ThetaAboveLeaf0000220020_c1_c1 : + adaptiveCoverCheck 7 thetaAboveCell000022002011 = true := + adaptiveCoverCheck_succ_of_children 6 thetaAboveCell000022002011 + e24KC2ThetaAboveLeaf0000220020_c1_c1_c0 e24KC2ThetaAboveLeaf0000220020_c1_c1_c1 + e24KC2ThetaAboveLeaf0000220020_c1_c1_c2 e24KC2ThetaAboveLeaf0000220020_c1_c1_c3 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! E24KC6 explicit proof-producing certificate batch. -/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCellsb02c7d0e39 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCellsb02c7d0e39 + +open CertificateCellsb02c7d0e39 +theorem e24KC2ThetaAboveLeaf0000220020 : + adaptiveCoverCheck 9 (childLL (childHL thetaAboveCell00002200)) = true := by + exact adaptiveCoverCheck_succ_of_children 8 (childLL (childHL thetaAboveCell00002200)) + (by + exact e24KC2ThetaAboveLeaf0000220020_c0) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childLH (childLL (childHL + thetaAboveCell00002200))) + (by + exact e24KC2ThetaAboveLeaf0000220020_c1_c0) + (by + exact e24KC2ThetaAboveLeaf0000220020_c1_c1) + (by + exact e24KC2ThetaAboveLeaf0000220020_c1_c2) + (by + exact e24KC2ThetaAboveLeaf0000220020_c1_c3)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHL (childLL (childHL + thetaAboveCell00002200))) + (by + have h : (thetaAboveCell000022002020).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022002020 h) + (by + have h : (thetaAboveCell000022002021).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022002021 h) + (by + have h : (thetaAboveCell000022002022).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022002022 h) + (by + have h : (thetaAboveCell000022002023).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022002023 h)) + (by + exact adaptiveCoverCheck_succ_of_children 7 (childHH (childLL (childHL + thetaAboveCell00002200))) + (by + have h : (thetaAboveCell000022002030).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022002030 h) + (by + have h : (thetaAboveCell000022002031).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022002031 h) + (by + have h : (thetaAboveCell000022002032).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022002032 h) + (by + have h : (thetaAboveCell000022002033).rejected = true := by + decide +kernel + exact adaptiveCoverCheck_true_of_rejected 7 thetaAboveCell000022002033 h)) + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle031.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle031.lean new file mode 100644 index 0000000000..352247b91f --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle031.lean @@ -0,0 +1,6932 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle030 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch045`. +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa.PartE.CertificateCells1a75b359b5 + +/-- Subcell `0000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0000 : AngleCell := + childLL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0001 : AngleCell := + childLH (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0010 : AngleCell := + childLL (childLH (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0011 : AngleCell := + childLH (childLH (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0100 : AngleCell := + childLL (childLL (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0101 : AngleCell := + childLH (childLL (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0110 : AngleCell := + childLL (childLH (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0111 : AngleCell := + childLH (childLH (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `1000` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1000 : AngleCell := + childLL (childLL (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1001` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1001 : AngleCell := + childLH (childLL (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1010` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1010 : AngleCell := + childLL (childLH (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1011` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1011 : AngleCell := + childLH (childLH (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1100` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1100 : AngleCell := + childLL (childLL (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1101` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1101 : AngleCell := + childLH (childLL (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1110` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1110 : AngleCell := + childLL (childLH (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1111` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1111 : AngleCell := + childLH (childLH (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `0002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0002 : AngleCell := + childHL (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0003 : AngleCell := + childHH (childLL (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0012 : AngleCell := + childHL (childLH (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0013 : AngleCell := + childHH (childLH (childLL (childLL e24ThetaAboveRoot))) + +/-- Subcell `0102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0102 : AngleCell := + childHL (childLL (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0103 : AngleCell := + childHH (childLL (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0112 : AngleCell := + childHL (childLH (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `0113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell0113 : AngleCell := + childHH (childLH (childLH (childLL e24ThetaAboveRoot))) + +/-- Subcell `1002` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1002 : AngleCell := + childHL (childLL (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1003` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1003 : AngleCell := + childHH (childLL (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1012` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1012 : AngleCell := + childHL (childLH (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1013` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1013 : AngleCell := + childHH (childLH (childLL (childLH e24ThetaAboveRoot))) + +/-- Subcell `1102` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1102 : AngleCell := + childHL (childLL (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1103` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1103 : AngleCell := + childHH (childLL (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1112` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1112 : AngleCell := + childHL (childLH (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `1113` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell1113 : AngleCell := + childHH (childLH (childLH (childLH e24ThetaAboveRoot))) + +/-- Subcell `00002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0000))) + +/-- Subcell `00003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell0000))) + +/-- Subcell `00003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0000))) + +/-- Subcell `00012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0001))) + +/-- Subcell `00012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0001))) + +/-- Subcell `00013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell0001))) + +/-- Subcell `00013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0001))) + +/-- Subcell `00102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0010))) + +/-- Subcell `00102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0010))) + +/-- Subcell `00103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell0010))) + +/-- Subcell `00103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0010))) + +/-- Subcell `00112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0011))) + +/-- Subcell `00112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0011))) + +/-- Subcell `00113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell0011))) + +/-- Subcell `00113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `00113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0011))) + +/-- Subcell `01002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0100))) + +/-- Subcell `01002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0100))) + +/-- Subcell `01003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell0100))) + +/-- Subcell `01003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `10002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `00002022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell0000))) + +/-- Subcell `00002023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell0000))) + +/-- Subcell `00002032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell0000))) + +/-- Subcell `00002033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell0000))) + +/-- Subcell `00002122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell0000))) + +/-- Subcell `00002123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell0000))) + +/-- Subcell `00002132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell0000))) + +/-- Subcell `00002133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell0000))) + +/-- Subcell `00002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell0000))) + +/-- Subcell `00003022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell0000))) + +/-- Subcell `00003023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell0000))) + +/-- Subcell `00003032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell0000))) + +/-- Subcell `00003033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell0000))) + +/-- Subcell `00003122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell0000))) + +/-- Subcell `00003123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell0000))) + +/-- Subcell `00003132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell0000))) + +/-- Subcell `00003133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00003133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell0000))) + +/-- Subcell `00012022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell0001))) + +/-- Subcell `00012023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell0001))) + +/-- Subcell `00012032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell0001))) + +/-- Subcell `00012033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell0001))) + +/-- Subcell `00012122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell0001))) + +/-- Subcell `00012123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell0001))) + +/-- Subcell `00012132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell0001))) + +/-- Subcell `00012133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00012133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell0001))) + +/-- Subcell `00013022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013022 : AngleCell := + childHL (childHL (childLL (childHH thetaAboveCell0001))) + +/-- Subcell `00013023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013023 : AngleCell := + childHH (childHL (childLL (childHH thetaAboveCell0001))) + +/-- Subcell `00013032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013032 : AngleCell := + childHL (childHH (childLL (childHH thetaAboveCell0001))) + +/-- Subcell `00013033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013033 : AngleCell := + childHH (childHH (childLL (childHH thetaAboveCell0001))) + +/-- Subcell `00013122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013122 : AngleCell := + childHL (childHL (childLH (childHH thetaAboveCell0001))) + +/-- Subcell `00013123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013123 : AngleCell := + childHH (childHL (childLH (childHH thetaAboveCell0001))) + +/-- Subcell `00013132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013132 : AngleCell := + childHL (childHH (childLH (childHH thetaAboveCell0001))) + +/-- Subcell `00013133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00013133 : AngleCell := + childHH (childHH (childLH (childHH thetaAboveCell0001))) + +/-- Subcell `00102022` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102022 : AngleCell := + childHL (childHL (childLL (childHL thetaAboveCell0010))) + +/-- Subcell `00102023` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102023 : AngleCell := + childHH (childHL (childLL (childHL thetaAboveCell0010))) + +/-- Subcell `00102032` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102032 : AngleCell := + childHL (childHH (childLL (childHL thetaAboveCell0010))) + +/-- Subcell `00102033` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102033 : AngleCell := + childHH (childHH (childLL (childHL thetaAboveCell0010))) + +/-- Subcell `00102122` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102122 : AngleCell := + childHL (childHL (childLH (childHL thetaAboveCell0010))) + +/-- Subcell `00102123` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102123 : AngleCell := + childHH (childHL (childLH (childHL thetaAboveCell0010))) + +/-- Subcell `00102132` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102132 : AngleCell := + childHL (childHH (childLH (childHL thetaAboveCell0010))) + +/-- Subcell `00102133` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell00102133 : AngleCell := + childHH (childHH (childLH (childHL thetaAboveCell0010))) + +/-- Subcell `01003330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01003331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01003331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell0100))) + +/-- Subcell `01012220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell0101))) + +/-- Subcell `01012320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01012331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01012331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell0101))) + +/-- Subcell `01013220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell0101))) + +/-- Subcell `01013320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01013331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01013331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell0101))) + +/-- Subcell `01102220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell0110))) + +/-- Subcell `01102320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01102331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01102331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell0110))) + +/-- Subcell `01103220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell0110))) + +/-- Subcell `01103320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01103331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01103331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell0110))) + +/-- Subcell `01112220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell0111))) + +/-- Subcell `01112320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01112331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01112331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell0111))) + +/-- Subcell `01113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell0111))) + +/-- Subcell `01113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `01113331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell01113331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell0111))) + +/-- Subcell `10002200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell1000))) + +/-- Subcell `10002300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10002331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10002331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell1000))) + +/-- Subcell `10003200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell1000))) + +/-- Subcell `10003300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10003330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10003330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell1000))) + +/-- Subcell `10012200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell1001))) + +/-- Subcell `10012300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10012311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10012311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell1001))) + +/-- Subcell `10013200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell1001))) + +/-- Subcell `10013300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10013331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10013331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell1001))) + +/-- Subcell `10102200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell1010))) + +/-- Subcell `10102300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10102331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10102331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell1010))) + +/-- Subcell `10103200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell1010))) + +/-- Subcell `10103300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10103331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10103331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell1010))) + +/-- Subcell `10112200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112200 : AngleCell := + childLL (childLL (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112201 : AngleCell := + childLH (childLL (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112210 : AngleCell := + childLL (childLH (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112211 : AngleCell := + childLH (childLH (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell1011))) + +/-- Subcell `10112300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112300 : AngleCell := + childLL (childLL (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112301 : AngleCell := + childLH (childLL (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112310 : AngleCell := + childLL (childLH (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112311 : AngleCell := + childLH (childLH (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10112331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10112331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell1011))) + +/-- Subcell `10113200` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113200 : AngleCell := + childLL (childLL (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113201` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113201 : AngleCell := + childLH (childLL (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113210` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113210 : AngleCell := + childLL (childLH (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113211` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113211 : AngleCell := + childLH (childLH (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell1011))) + +/-- Subcell `10113300` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113300 : AngleCell := + childLL (childLL (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113301` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113301 : AngleCell := + childLH (childLL (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113310` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113310 : AngleCell := + childLL (childLH (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113311` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113311 : AngleCell := + childLH (childLH (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `10113331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell10113331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell1011))) + +/-- Subcell `11002202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell1100))) + +/-- Subcell `11002302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11002331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11002331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell1100))) + +/-- Subcell `11003202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell1100))) + +/-- Subcell `11003302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11003331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11003331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell1100))) + +/-- Subcell `11012202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell1101))) + +/-- Subcell `11012302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11012331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11012331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell1101))) + +/-- Subcell `11013202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell1101))) + +/-- Subcell `11013302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11013331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11013331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell1101))) + +/-- Subcell `11102202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell1110))) + +/-- Subcell `11102302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11102331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11102331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell1110))) + +/-- Subcell `11103202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell1110))) + +/-- Subcell `11103302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11103331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11103331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell1110))) + +/-- Subcell `11112202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112202 : AngleCell := + childHL (childLL (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112203 : AngleCell := + childHH (childLL (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112212 : AngleCell := + childHL (childLH (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112213 : AngleCell := + childHH (childLH (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112220 : AngleCell := + childLL (childHL (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112221 : AngleCell := + childLH (childHL (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112230 : AngleCell := + childLL (childHH (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112231 : AngleCell := + childLH (childHH (childHL (childHL thetaAboveCell1111))) + +/-- Subcell `11112302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112302 : AngleCell := + childHL (childLL (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112303 : AngleCell := + childHH (childLL (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112312 : AngleCell := + childHL (childLH (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112313 : AngleCell := + childHH (childLH (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112320 : AngleCell := + childLL (childHL (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112321 : AngleCell := + childLH (childHL (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112330 : AngleCell := + childLL (childHH (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112331 : AngleCell := + childLH (childHH (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112332 : AngleCell := + childHL (childHH (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11112333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11112333 : AngleCell := + childHH (childHH (childHH (childHL thetaAboveCell1111))) + +/-- Subcell `11113202` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113202 : AngleCell := + childHL (childLL (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113203` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113203 : AngleCell := + childHH (childLL (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113212` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113212 : AngleCell := + childHL (childLH (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113213` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113213 : AngleCell := + childHH (childLH (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113220` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113220 : AngleCell := + childLL (childHL (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113221` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113221 : AngleCell := + childLH (childHL (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113222` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113222 : AngleCell := + childHL (childHL (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113223` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113223 : AngleCell := + childHH (childHL (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113230` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113230 : AngleCell := + childLL (childHH (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113231` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113231 : AngleCell := + childLH (childHH (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113232` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113232 : AngleCell := + childHL (childHH (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113233` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113233 : AngleCell := + childHH (childHH (childHL (childHH thetaAboveCell1111))) + +/-- Subcell `11113302` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113302 : AngleCell := + childHL (childLL (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113303` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113303 : AngleCell := + childHH (childLL (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113312` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113312 : AngleCell := + childHL (childLH (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113313` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113313 : AngleCell := + childHH (childLH (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113320` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113320 : AngleCell := + childLL (childHL (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113321` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113321 : AngleCell := + childLH (childHL (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113322` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113322 : AngleCell := + childHL (childHL (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113323` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113323 : AngleCell := + childHH (childHL (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113330` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113330 : AngleCell := + childLL (childHH (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113331` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113331 : AngleCell := + childLH (childHH (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113332` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113332 : AngleCell := + childHL (childHH (childHH (childHH thetaAboveCell1111))) + +/-- Subcell `11113333` of the theta-above root; digits 0–3 mean LL, LH, HL, HH. -/ +abbrev thetaAboveCell11113333 : AngleCell := + childHH (childHH (childHH (childHH thetaAboveCell1111))) + +end GerverSofa.PartE.CertificateCells1a75b359b5 + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.ThetaAbove.ReconstructionBase`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC6Theta Above Reconstruct +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +namespace CertificateCells1a75b359b5 + +-- Base-four digits encode LL, LH, HL, HH subdivisions of the named root. + +end CertificateCells1a75b359b5 + +open CertificateCells1a75b359b5 + +theorem e24KC2ThetaAboveNode000022000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002200) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00002200) + e24KC2ThetaAboveLeaf0000220000 e24KC2ThetaAboveLeaf0000220001 e24KC2ThetaAboveLeaf0000220002 + e24KC2ThetaAboveLeaf0000220003 + +theorem e24KC2ThetaAboveNode000022001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002200) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00002200) + e24KC2ThetaAboveLeaf0000220010 e24KC2ThetaAboveLeaf0000220011 e24KC2ThetaAboveLeaf0000220012 + e24KC2ThetaAboveLeaf0000220013 + +theorem e24KC2ThetaAboveNode000022002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00002200) + e24KC2ThetaAboveLeaf0000220020 e24KC2ThetaAboveLeaf0000220021 e24KC2ThetaAboveLeaf0000220022 + e24KC2ThetaAboveLeaf0000220023 + +theorem e24KC2ThetaAboveNode000022003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00002200) + e24KC2ThetaAboveLeaf0000220030 e24KC2ThetaAboveLeaf0000220031 e24KC2ThetaAboveLeaf0000220032 + e24KC2ThetaAboveLeaf0000220033 + +theorem e24KC2ThetaAboveNode000022010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002201) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00002201) + e24KC2ThetaAboveLeaf0000220100 e24KC2ThetaAboveLeaf0000220101 e24KC2ThetaAboveLeaf0000220102 + e24KC2ThetaAboveLeaf0000220103 + +theorem e24KC2ThetaAboveNode000022011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002201) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00002201) + e24KC2ThetaAboveLeaf0000220110 e24KC2ThetaAboveLeaf0000220111 e24KC2ThetaAboveLeaf0000220112 + e24KC2ThetaAboveLeaf0000220113 + +theorem e24KC2ThetaAboveNode000022012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00002201) + e24KC2ThetaAboveLeaf0000220120 e24KC2ThetaAboveLeaf0000220121 e24KC2ThetaAboveLeaf0000220122 + e24KC2ThetaAboveLeaf0000220123 + +theorem e24KC2ThetaAboveNode000022013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00002201) + e24KC2ThetaAboveLeaf0000220130 e24KC2ThetaAboveLeaf0000220131 e24KC2ThetaAboveLeaf0000220132 + e24KC2ThetaAboveLeaf0000220133 + +theorem e24KC2ThetaAboveNode000022100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002210) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00002210) + e24KC2ThetaAboveLeaf0000221000 e24KC2ThetaAboveLeaf0000221001 e24KC2ThetaAboveLeaf0000221002 + e24KC2ThetaAboveLeaf0000221003 + +theorem e24KC2ThetaAboveNode000022101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002210) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00002210) + e24KC2ThetaAboveLeaf0000221010 e24KC2ThetaAboveLeaf0000221011 e24KC2ThetaAboveLeaf0000221012 + e24KC2ThetaAboveLeaf0000221013 + +theorem e24KC2ThetaAboveNode000022102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00002210) + e24KC2ThetaAboveLeaf0000221020 e24KC2ThetaAboveLeaf0000221021 e24KC2ThetaAboveLeaf0000221022 + e24KC2ThetaAboveLeaf0000221023 + +theorem e24KC2ThetaAboveNode000022103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00002210) + e24KC2ThetaAboveLeaf0000221030 e24KC2ThetaAboveLeaf0000221031 e24KC2ThetaAboveLeaf0000221032 + e24KC2ThetaAboveLeaf0000221033 + +theorem e24KC2ThetaAboveNode000022110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002211) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00002211) + e24KC2ThetaAboveLeaf0000221100 e24KC2ThetaAboveLeaf0000221101 e24KC2ThetaAboveLeaf0000221102 + e24KC2ThetaAboveLeaf0000221103 + +theorem e24KC2ThetaAboveNode000022111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002211) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00002211) + e24KC2ThetaAboveLeaf0000221110 e24KC2ThetaAboveLeaf0000221111 e24KC2ThetaAboveLeaf0000221112 + e24KC2ThetaAboveLeaf0000221113 + +theorem e24KC2ThetaAboveNode000022112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00002211) + e24KC2ThetaAboveLeaf0000221120 e24KC2ThetaAboveLeaf0000221121 e24KC2ThetaAboveLeaf0000221122 + e24KC2ThetaAboveLeaf0000221123 + +theorem e24KC2ThetaAboveNode000022113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00002211) + e24KC2ThetaAboveLeaf0000221130 e24KC2ThetaAboveLeaf0000221131 e24KC2ThetaAboveLeaf0000221132 + e24KC2ThetaAboveLeaf0000221133 + +theorem e24KC2ThetaAboveNode000022131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00002213) + e24KC2ThetaAboveLeaf0000221310 e24KC2ThetaAboveLeaf0000221311 e24KC2ThetaAboveLeaf0000221312 + e24KC2ThetaAboveLeaf0000221313 + +theorem e24KC2ThetaAboveNode000023000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002300) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00002300) + e24KC2ThetaAboveLeaf0000230000 e24KC2ThetaAboveLeaf0000230001 e24KC2ThetaAboveLeaf0000230002 + e24KC2ThetaAboveLeaf0000230003 + +theorem e24KC2ThetaAboveNode000023001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002300) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00002300) + e24KC2ThetaAboveLeaf0000230010 e24KC2ThetaAboveLeaf0000230011 e24KC2ThetaAboveLeaf0000230012 + e24KC2ThetaAboveLeaf0000230013 + +theorem e24KC2ThetaAboveNode000023002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00002300) + e24KC2ThetaAboveLeaf0000230020 e24KC2ThetaAboveLeaf0000230021 e24KC2ThetaAboveLeaf0000230022 + e24KC2ThetaAboveLeaf0000230023 + +theorem e24KC2ThetaAboveNode000023003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00002300) + e24KC2ThetaAboveLeaf0000230030 e24KC2ThetaAboveLeaf0000230031 e24KC2ThetaAboveLeaf0000230032 + e24KC2ThetaAboveLeaf0000230033 + +theorem e24KC2ThetaAboveNode000023010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002301) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00002301) + e24KC2ThetaAboveLeaf0000230100 e24KC2ThetaAboveLeaf0000230101 e24KC2ThetaAboveLeaf0000230102 + e24KC2ThetaAboveLeaf0000230103 + +theorem e24KC2ThetaAboveNode000023011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002301) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00002301) + e24KC2ThetaAboveLeaf0000230110 e24KC2ThetaAboveLeaf0000230111 e24KC2ThetaAboveLeaf0000230112 + e24KC2ThetaAboveLeaf0000230113 + +theorem e24KC2ThetaAboveNode000023012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00002301) + e24KC2ThetaAboveLeaf0000230120 e24KC2ThetaAboveLeaf0000230121 e24KC2ThetaAboveLeaf0000230122 + e24KC2ThetaAboveLeaf0000230123 + +theorem e24KC2ThetaAboveNode000023013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00002301) + e24KC2ThetaAboveLeaf0000230130 e24KC2ThetaAboveLeaf0000230131 e24KC2ThetaAboveLeaf0000230132 + e24KC2ThetaAboveLeaf0000230133 + +theorem e24KC2ThetaAboveNode000023020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00002302) + e24KC2ThetaAboveLeaf0000230200 e24KC2ThetaAboveLeaf0000230201 e24KC2ThetaAboveLeaf0000230202 + e24KC2ThetaAboveLeaf0000230203 + +theorem e24KC2ThetaAboveNode000023021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00002302) + e24KC2ThetaAboveLeaf0000230210 e24KC2ThetaAboveLeaf0000230211 e24KC2ThetaAboveLeaf0000230212 + e24KC2ThetaAboveLeaf0000230213 + +theorem e24KC2ThetaAboveNode000023030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00002303) + e24KC2ThetaAboveLeaf0000230300 e24KC2ThetaAboveLeaf0000230301 e24KC2ThetaAboveLeaf0000230302 + e24KC2ThetaAboveLeaf0000230303 + +theorem e24KC2ThetaAboveNode000023031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00002303) + e24KC2ThetaAboveLeaf0000230310 e24KC2ThetaAboveLeaf0000230311 e24KC2ThetaAboveLeaf0000230312 + e24KC2ThetaAboveLeaf0000230313 + +theorem e24KC2ThetaAboveNode000023100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002310) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00002310) + e24KC2ThetaAboveLeaf0000231000 e24KC2ThetaAboveLeaf0000231001 e24KC2ThetaAboveLeaf0000231002 + e24KC2ThetaAboveLeaf0000231003 + +theorem e24KC2ThetaAboveNode000023101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002310) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00002310) + e24KC2ThetaAboveLeaf0000231010 e24KC2ThetaAboveLeaf0000231011 e24KC2ThetaAboveLeaf0000231012 + e24KC2ThetaAboveLeaf0000231013 + +theorem e24KC2ThetaAboveNode000023102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00002310) + e24KC2ThetaAboveLeaf0000231020 e24KC2ThetaAboveLeaf0000231021 e24KC2ThetaAboveLeaf0000231022 + e24KC2ThetaAboveLeaf0000231023 + +theorem e24KC2ThetaAboveNode000023103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00002310) + e24KC2ThetaAboveLeaf0000231030 e24KC2ThetaAboveLeaf0000231031 e24KC2ThetaAboveLeaf0000231032 + e24KC2ThetaAboveLeaf0000231033 + +theorem e24KC2ThetaAboveNode000023110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002311) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00002311) + e24KC2ThetaAboveLeaf0000231100 e24KC2ThetaAboveLeaf0000231101 e24KC2ThetaAboveLeaf0000231102 + e24KC2ThetaAboveLeaf0000231103 + +theorem e24KC2ThetaAboveNode000023111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002311) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00002311) + e24KC2ThetaAboveLeaf0000231110 e24KC2ThetaAboveLeaf0000231111 e24KC2ThetaAboveLeaf0000231112 + e24KC2ThetaAboveLeaf0000231113 + +theorem e24KC2ThetaAboveNode000023112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00002311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00002311) + e24KC2ThetaAboveLeaf0000231120 e24KC2ThetaAboveLeaf0000231121 e24KC2ThetaAboveLeaf0000231122 + e24KC2ThetaAboveLeaf0000231123 + +theorem e24KC2ThetaAboveNode000023113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00002311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00002311) + e24KC2ThetaAboveLeaf0000231130 e24KC2ThetaAboveLeaf0000231131 e24KC2ThetaAboveLeaf0000231132 + e24KC2ThetaAboveLeaf0000231133 + +theorem e24KC2ThetaAboveNode000023120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00002312) + e24KC2ThetaAboveLeaf0000231200 e24KC2ThetaAboveLeaf0000231201 e24KC2ThetaAboveLeaf0000231202 + e24KC2ThetaAboveLeaf0000231203 + +theorem e24KC2ThetaAboveNode000023121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00002312) + e24KC2ThetaAboveLeaf0000231210 e24KC2ThetaAboveLeaf0000231211 e24KC2ThetaAboveLeaf0000231212 + e24KC2ThetaAboveLeaf0000231213 + +theorem e24KC2ThetaAboveNode000023130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00002313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00002313) + e24KC2ThetaAboveLeaf0000231300 e24KC2ThetaAboveLeaf0000231301 e24KC2ThetaAboveLeaf0000231302 + e24KC2ThetaAboveLeaf0000231303 + +theorem e24KC2ThetaAboveNode000023131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00002313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00002313) + e24KC2ThetaAboveLeaf0000231310 e24KC2ThetaAboveLeaf0000231311 e24KC2ThetaAboveLeaf0000231312 + e24KC2ThetaAboveLeaf0000231313 + +theorem e24KC2ThetaAboveNode000032000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003200) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00003200) + e24KC2ThetaAboveLeaf0000320000 e24KC2ThetaAboveLeaf0000320001 e24KC2ThetaAboveLeaf0000320002 + e24KC2ThetaAboveLeaf0000320003 + +theorem e24KC2ThetaAboveNode000032001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003200) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00003200) + e24KC2ThetaAboveLeaf0000320010 e24KC2ThetaAboveLeaf0000320011 e24KC2ThetaAboveLeaf0000320012 + e24KC2ThetaAboveLeaf0000320013 + +theorem e24KC2ThetaAboveNode000032002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00003200) + e24KC2ThetaAboveLeaf0000320020 e24KC2ThetaAboveLeaf0000320021 e24KC2ThetaAboveLeaf0000320022 + e24KC2ThetaAboveLeaf0000320023 + +theorem e24KC2ThetaAboveNode000032003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00003200) + e24KC2ThetaAboveLeaf0000320030 e24KC2ThetaAboveLeaf0000320031 e24KC2ThetaAboveLeaf0000320032 + e24KC2ThetaAboveLeaf0000320033 + +theorem e24KC2ThetaAboveNode000032010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003201) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00003201) + e24KC2ThetaAboveLeaf0000320100 e24KC2ThetaAboveLeaf0000320101 e24KC2ThetaAboveLeaf0000320102 + e24KC2ThetaAboveLeaf0000320103 + +theorem e24KC2ThetaAboveNode000032011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003201) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00003201) + e24KC2ThetaAboveLeaf0000320110 e24KC2ThetaAboveLeaf0000320111 e24KC2ThetaAboveLeaf0000320112 + e24KC2ThetaAboveLeaf0000320113 + +theorem e24KC2ThetaAboveNode000032012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00003201) + e24KC2ThetaAboveLeaf0000320120 e24KC2ThetaAboveLeaf0000320121 e24KC2ThetaAboveLeaf0000320122 + e24KC2ThetaAboveLeaf0000320123 + +theorem e24KC2ThetaAboveNode000032013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00003201) + e24KC2ThetaAboveLeaf0000320130 e24KC2ThetaAboveLeaf0000320131 e24KC2ThetaAboveLeaf0000320132 + e24KC2ThetaAboveLeaf0000320133 + +theorem e24KC2ThetaAboveNode000032020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00003202) + e24KC2ThetaAboveLeaf0000320200 e24KC2ThetaAboveLeaf0000320201 e24KC2ThetaAboveLeaf0000320202 + e24KC2ThetaAboveLeaf0000320203 + +theorem e24KC2ThetaAboveNode000032021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00003202) + e24KC2ThetaAboveLeaf0000320210 e24KC2ThetaAboveLeaf0000320211 e24KC2ThetaAboveLeaf0000320212 + e24KC2ThetaAboveLeaf0000320213 + +theorem e24KC2ThetaAboveNode000032030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00003203) + e24KC2ThetaAboveLeaf0000320300 e24KC2ThetaAboveLeaf0000320301 e24KC2ThetaAboveLeaf0000320302 + e24KC2ThetaAboveLeaf0000320303 + +theorem e24KC2ThetaAboveNode000032031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00003203) + e24KC2ThetaAboveLeaf0000320310 e24KC2ThetaAboveLeaf0000320311 e24KC2ThetaAboveLeaf0000320312 + e24KC2ThetaAboveLeaf0000320313 + +theorem e24KC2ThetaAboveNode000032100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003210) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00003210) + e24KC2ThetaAboveLeaf0000321000 e24KC2ThetaAboveLeaf0000321001 e24KC2ThetaAboveLeaf0000321002 + e24KC2ThetaAboveLeaf0000321003 + +theorem e24KC2ThetaAboveNode000032101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003210) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00003210) + e24KC2ThetaAboveLeaf0000321010 e24KC2ThetaAboveLeaf0000321011 e24KC2ThetaAboveLeaf0000321012 + e24KC2ThetaAboveLeaf0000321013 + +theorem e24KC2ThetaAboveNode000032102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00003210) + e24KC2ThetaAboveLeaf0000321020 e24KC2ThetaAboveLeaf0000321021 e24KC2ThetaAboveLeaf0000321022 + e24KC2ThetaAboveLeaf0000321023 + +theorem e24KC2ThetaAboveNode000032103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00003210) + e24KC2ThetaAboveLeaf0000321030 e24KC2ThetaAboveLeaf0000321031 e24KC2ThetaAboveLeaf0000321032 + e24KC2ThetaAboveLeaf0000321033 + +theorem e24KC2ThetaAboveNode000032110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003211) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00003211) + e24KC2ThetaAboveLeaf0000321100 e24KC2ThetaAboveLeaf0000321101 e24KC2ThetaAboveLeaf0000321102 + e24KC2ThetaAboveLeaf0000321103 + +theorem e24KC2ThetaAboveNode000032111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003211) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00003211) + e24KC2ThetaAboveLeaf0000321110 e24KC2ThetaAboveLeaf0000321111 e24KC2ThetaAboveLeaf0000321112 + e24KC2ThetaAboveLeaf0000321113 + +theorem e24KC2ThetaAboveNode000032112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00003211) + e24KC2ThetaAboveLeaf0000321120 e24KC2ThetaAboveLeaf0000321121 e24KC2ThetaAboveLeaf0000321122 + e24KC2ThetaAboveLeaf0000321123 + +theorem e24KC2ThetaAboveNode000032113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00003211) + e24KC2ThetaAboveLeaf0000321130 e24KC2ThetaAboveLeaf0000321131 e24KC2ThetaAboveLeaf0000321132 + e24KC2ThetaAboveLeaf0000321133 + +theorem e24KC2ThetaAboveNode000032120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00003212) + e24KC2ThetaAboveLeaf0000321200 e24KC2ThetaAboveLeaf0000321201 e24KC2ThetaAboveLeaf0000321202 + e24KC2ThetaAboveLeaf0000321203 + +theorem e24KC2ThetaAboveNode000032121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00003212) + e24KC2ThetaAboveLeaf0000321210 e24KC2ThetaAboveLeaf0000321211 e24KC2ThetaAboveLeaf0000321212 + e24KC2ThetaAboveLeaf0000321213 + +theorem e24KC2ThetaAboveNode000032130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00003213) + e24KC2ThetaAboveLeaf0000321300 e24KC2ThetaAboveLeaf0000321301 e24KC2ThetaAboveLeaf0000321302 + e24KC2ThetaAboveLeaf0000321303 + +theorem e24KC2ThetaAboveNode000032131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00003213) + e24KC2ThetaAboveLeaf0000321310 e24KC2ThetaAboveLeaf0000321311 e24KC2ThetaAboveLeaf0000321312 + e24KC2ThetaAboveLeaf0000321313 + +theorem e24KC2ThetaAboveNode000033000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003300) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00003300) + e24KC2ThetaAboveLeaf0000330000 e24KC2ThetaAboveLeaf0000330001 e24KC2ThetaAboveLeaf0000330002 + e24KC2ThetaAboveLeaf0000330003 + +theorem e24KC2ThetaAboveNode000033001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003300) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00003300) + e24KC2ThetaAboveLeaf0000330010 e24KC2ThetaAboveLeaf0000330011 e24KC2ThetaAboveLeaf0000330012 + e24KC2ThetaAboveLeaf0000330013 + +theorem e24KC2ThetaAboveNode000033002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00003300) + e24KC2ThetaAboveLeaf0000330020 e24KC2ThetaAboveLeaf0000330021 e24KC2ThetaAboveLeaf0000330022 + e24KC2ThetaAboveLeaf0000330023 + +theorem e24KC2ThetaAboveNode000033003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00003300) + e24KC2ThetaAboveLeaf0000330030 e24KC2ThetaAboveLeaf0000330031 e24KC2ThetaAboveLeaf0000330032 + e24KC2ThetaAboveLeaf0000330033 + +theorem e24KC2ThetaAboveNode000033010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003301) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00003301) + e24KC2ThetaAboveLeaf0000330100 e24KC2ThetaAboveLeaf0000330101 e24KC2ThetaAboveLeaf0000330102 + e24KC2ThetaAboveLeaf0000330103 + +theorem e24KC2ThetaAboveNode000033011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003301) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00003301) + e24KC2ThetaAboveLeaf0000330110 e24KC2ThetaAboveLeaf0000330111 e24KC2ThetaAboveLeaf0000330112 + e24KC2ThetaAboveLeaf0000330113 + +theorem e24KC2ThetaAboveNode000033012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00003301) + e24KC2ThetaAboveLeaf0000330120 e24KC2ThetaAboveLeaf0000330121 e24KC2ThetaAboveLeaf0000330122 + e24KC2ThetaAboveLeaf0000330123 + +theorem e24KC2ThetaAboveNode000033013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00003301) + e24KC2ThetaAboveLeaf0000330130 e24KC2ThetaAboveLeaf0000330131 e24KC2ThetaAboveLeaf0000330132 + e24KC2ThetaAboveLeaf0000330133 + +theorem e24KC2ThetaAboveNode000033020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00003302) + e24KC2ThetaAboveLeaf0000330200 e24KC2ThetaAboveLeaf0000330201 e24KC2ThetaAboveLeaf0000330202 + e24KC2ThetaAboveLeaf0000330203 + +theorem e24KC2ThetaAboveNode000033021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00003302) + e24KC2ThetaAboveLeaf0000330210 e24KC2ThetaAboveLeaf0000330211 e24KC2ThetaAboveLeaf0000330212 + e24KC2ThetaAboveLeaf0000330213 + +theorem e24KC2ThetaAboveNode000033030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00003303) + e24KC2ThetaAboveLeaf0000330300 e24KC2ThetaAboveLeaf0000330301 e24KC2ThetaAboveLeaf0000330302 + e24KC2ThetaAboveLeaf0000330303 + +theorem e24KC2ThetaAboveNode000033031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00003303) + e24KC2ThetaAboveLeaf0000330310 e24KC2ThetaAboveLeaf0000330311 e24KC2ThetaAboveLeaf0000330312 + e24KC2ThetaAboveLeaf0000330313 + +theorem e24KC2ThetaAboveNode000033100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003310) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00003310) + e24KC2ThetaAboveLeaf0000331000 e24KC2ThetaAboveLeaf0000331001 e24KC2ThetaAboveLeaf0000331002 + e24KC2ThetaAboveLeaf0000331003 + +theorem e24KC2ThetaAboveNode000033101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003310) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00003310) + e24KC2ThetaAboveLeaf0000331010 e24KC2ThetaAboveLeaf0000331011 e24KC2ThetaAboveLeaf0000331012 + e24KC2ThetaAboveLeaf0000331013 + +theorem e24KC2ThetaAboveNode000033102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00003310) + e24KC2ThetaAboveLeaf0000331020 e24KC2ThetaAboveLeaf0000331021 e24KC2ThetaAboveLeaf0000331022 + e24KC2ThetaAboveLeaf0000331023 + +theorem e24KC2ThetaAboveNode000033103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00003310) + e24KC2ThetaAboveLeaf0000331030 e24KC2ThetaAboveLeaf0000331031 e24KC2ThetaAboveLeaf0000331032 + e24KC2ThetaAboveLeaf0000331033 + +theorem e24KC2ThetaAboveNode000033110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003311) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00003311) + e24KC2ThetaAboveLeaf0000331100 e24KC2ThetaAboveLeaf0000331101 e24KC2ThetaAboveLeaf0000331102 + e24KC2ThetaAboveLeaf0000331103 + +theorem e24KC2ThetaAboveNode000033111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003311) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00003311) + e24KC2ThetaAboveLeaf0000331110 e24KC2ThetaAboveLeaf0000331111 e24KC2ThetaAboveLeaf0000331112 + e24KC2ThetaAboveLeaf0000331113 + +theorem e24KC2ThetaAboveNode000033112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00003311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00003311) + e24KC2ThetaAboveLeaf0000331120 e24KC2ThetaAboveLeaf0000331121 e24KC2ThetaAboveLeaf0000331122 + e24KC2ThetaAboveLeaf0000331123 + +theorem e24KC2ThetaAboveNode000033113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00003311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00003311) + e24KC2ThetaAboveLeaf0000331130 e24KC2ThetaAboveLeaf0000331131 e24KC2ThetaAboveLeaf0000331132 + e24KC2ThetaAboveLeaf0000331133 + +theorem e24KC2ThetaAboveNode000033120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00003312) + e24KC2ThetaAboveLeaf0000331200 e24KC2ThetaAboveLeaf0000331201 e24KC2ThetaAboveLeaf0000331202 + e24KC2ThetaAboveLeaf0000331203 + +theorem e24KC2ThetaAboveNode000033121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00003312) + e24KC2ThetaAboveLeaf0000331210 e24KC2ThetaAboveLeaf0000331211 e24KC2ThetaAboveLeaf0000331212 + e24KC2ThetaAboveLeaf0000331213 + +theorem e24KC2ThetaAboveNode000033130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00003313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00003313) + e24KC2ThetaAboveLeaf0000331300 e24KC2ThetaAboveLeaf0000331301 e24KC2ThetaAboveLeaf0000331302 + e24KC2ThetaAboveLeaf0000331303 + +theorem e24KC2ThetaAboveNode000033131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00003313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00003313) + e24KC2ThetaAboveLeaf0000331310 e24KC2ThetaAboveLeaf0000331311 e24KC2ThetaAboveLeaf0000331312 + e24KC2ThetaAboveLeaf0000331313 + +theorem e24KC2ThetaAboveNode000122000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012200) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00012200) + e24KC2ThetaAboveLeaf0001220000 e24KC2ThetaAboveLeaf0001220001 e24KC2ThetaAboveLeaf0001220002 + e24KC2ThetaAboveLeaf0001220003 + +theorem e24KC2ThetaAboveNode000122001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012200) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00012200) + e24KC2ThetaAboveLeaf0001220010 e24KC2ThetaAboveLeaf0001220011 e24KC2ThetaAboveLeaf0001220012 + e24KC2ThetaAboveLeaf0001220013 + +theorem e24KC2ThetaAboveNode000122002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00012200) + e24KC2ThetaAboveLeaf0001220020 e24KC2ThetaAboveLeaf0001220021 e24KC2ThetaAboveLeaf0001220022 + e24KC2ThetaAboveLeaf0001220023 + +theorem e24KC2ThetaAboveNode000122003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00012200) + e24KC2ThetaAboveLeaf0001220030 e24KC2ThetaAboveLeaf0001220031 e24KC2ThetaAboveLeaf0001220032 + e24KC2ThetaAboveLeaf0001220033 + +theorem e24KC2ThetaAboveNode000122010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012201) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00012201) + e24KC2ThetaAboveLeaf0001220100 e24KC2ThetaAboveLeaf0001220101 e24KC2ThetaAboveLeaf0001220102 + e24KC2ThetaAboveLeaf0001220103 + +theorem e24KC2ThetaAboveNode000122011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012201) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00012201) + e24KC2ThetaAboveLeaf0001220110 e24KC2ThetaAboveLeaf0001220111 e24KC2ThetaAboveLeaf0001220112 + e24KC2ThetaAboveLeaf0001220113 + +theorem e24KC2ThetaAboveNode000122012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00012201) + e24KC2ThetaAboveLeaf0001220120 e24KC2ThetaAboveLeaf0001220121 e24KC2ThetaAboveLeaf0001220122 + e24KC2ThetaAboveLeaf0001220123 + +theorem e24KC2ThetaAboveNode000122013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00012201) + e24KC2ThetaAboveLeaf0001220130 e24KC2ThetaAboveLeaf0001220131 e24KC2ThetaAboveLeaf0001220132 + e24KC2ThetaAboveLeaf0001220133 + +theorem e24KC2ThetaAboveNode000122020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00012202) + e24KC2ThetaAboveLeaf0001220200 e24KC2ThetaAboveLeaf0001220201 e24KC2ThetaAboveLeaf0001220202 + e24KC2ThetaAboveLeaf0001220203 + +theorem e24KC2ThetaAboveNode000122021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00012202) + e24KC2ThetaAboveLeaf0001220210 e24KC2ThetaAboveLeaf0001220211 e24KC2ThetaAboveLeaf0001220212 + e24KC2ThetaAboveLeaf0001220213 + +theorem e24KC2ThetaAboveNode000122030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00012203) + e24KC2ThetaAboveLeaf0001220300 e24KC2ThetaAboveLeaf0001220301 e24KC2ThetaAboveLeaf0001220302 + e24KC2ThetaAboveLeaf0001220303 + +theorem e24KC2ThetaAboveNode000122031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00012203) + e24KC2ThetaAboveLeaf0001220310 e24KC2ThetaAboveLeaf0001220311 e24KC2ThetaAboveLeaf0001220312 + e24KC2ThetaAboveLeaf0001220313 + +theorem e24KC2ThetaAboveNode000122100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012210) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00012210) + e24KC2ThetaAboveLeaf0001221000 e24KC2ThetaAboveLeaf0001221001 e24KC2ThetaAboveLeaf0001221002 + e24KC2ThetaAboveLeaf0001221003 + +theorem e24KC2ThetaAboveNode000122101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012210) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00012210) + e24KC2ThetaAboveLeaf0001221010 e24KC2ThetaAboveLeaf0001221011 e24KC2ThetaAboveLeaf0001221012 + e24KC2ThetaAboveLeaf0001221013 + +theorem e24KC2ThetaAboveNode000122102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00012210) + e24KC2ThetaAboveLeaf0001221020 e24KC2ThetaAboveLeaf0001221021 e24KC2ThetaAboveLeaf0001221022 + e24KC2ThetaAboveLeaf0001221023 + +theorem e24KC2ThetaAboveNode000122103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00012210) + e24KC2ThetaAboveLeaf0001221030 e24KC2ThetaAboveLeaf0001221031 e24KC2ThetaAboveLeaf0001221032 + e24KC2ThetaAboveLeaf0001221033 + +theorem e24KC2ThetaAboveNode000122110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012211) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00012211) + e24KC2ThetaAboveLeaf0001221100 e24KC2ThetaAboveLeaf0001221101 e24KC2ThetaAboveLeaf0001221102 + e24KC2ThetaAboveLeaf0001221103 + +theorem e24KC2ThetaAboveNode000122111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012211) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00012211) + e24KC2ThetaAboveLeaf0001221110 e24KC2ThetaAboveLeaf0001221111 e24KC2ThetaAboveLeaf0001221112 + e24KC2ThetaAboveLeaf0001221113 + +theorem e24KC2ThetaAboveNode000122112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00012211) + e24KC2ThetaAboveLeaf0001221120 e24KC2ThetaAboveLeaf0001221121 e24KC2ThetaAboveLeaf0001221122 + e24KC2ThetaAboveLeaf0001221123 + +theorem e24KC2ThetaAboveNode000122113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00012211) + e24KC2ThetaAboveLeaf0001221130 e24KC2ThetaAboveLeaf0001221131 e24KC2ThetaAboveLeaf0001221132 + e24KC2ThetaAboveLeaf0001221133 + +theorem e24KC2ThetaAboveNode000122120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00012212) + e24KC2ThetaAboveLeaf0001221200 e24KC2ThetaAboveLeaf0001221201 e24KC2ThetaAboveLeaf0001221202 + e24KC2ThetaAboveLeaf0001221203 + +theorem e24KC2ThetaAboveNode000122121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00012212) + e24KC2ThetaAboveLeaf0001221210 e24KC2ThetaAboveLeaf0001221211 e24KC2ThetaAboveLeaf0001221212 + e24KC2ThetaAboveLeaf0001221213 + +theorem e24KC2ThetaAboveNode000122130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00012213) + e24KC2ThetaAboveLeaf0001221300 e24KC2ThetaAboveLeaf0001221301 e24KC2ThetaAboveLeaf0001221302 + e24KC2ThetaAboveLeaf0001221303 + +theorem e24KC2ThetaAboveNode000122131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00012213) + e24KC2ThetaAboveLeaf0001221310 e24KC2ThetaAboveLeaf0001221311 e24KC2ThetaAboveLeaf0001221312 + e24KC2ThetaAboveLeaf0001221313 + +theorem e24KC2ThetaAboveNode000123000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012300) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00012300) + e24KC2ThetaAboveLeaf0001230000 e24KC2ThetaAboveLeaf0001230001 e24KC2ThetaAboveLeaf0001230002 + e24KC2ThetaAboveLeaf0001230003 + +theorem e24KC2ThetaAboveNode000123001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012300) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00012300) + e24KC2ThetaAboveLeaf0001230010 e24KC2ThetaAboveLeaf0001230011 e24KC2ThetaAboveLeaf0001230012 + e24KC2ThetaAboveLeaf0001230013 + +theorem e24KC2ThetaAboveNode000123002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00012300) + e24KC2ThetaAboveLeaf0001230020 e24KC2ThetaAboveLeaf0001230021 e24KC2ThetaAboveLeaf0001230022 + e24KC2ThetaAboveLeaf0001230023 + +theorem e24KC2ThetaAboveNode000123003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00012300) + e24KC2ThetaAboveLeaf0001230030 e24KC2ThetaAboveLeaf0001230031 e24KC2ThetaAboveLeaf0001230032 + e24KC2ThetaAboveLeaf0001230033 + +theorem e24KC2ThetaAboveNode000123010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012301) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00012301) + e24KC2ThetaAboveLeaf0001230100 e24KC2ThetaAboveLeaf0001230101 e24KC2ThetaAboveLeaf0001230102 + e24KC2ThetaAboveLeaf0001230103 + +theorem e24KC2ThetaAboveNode000123011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012301) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00012301) + e24KC2ThetaAboveLeaf0001230110 e24KC2ThetaAboveLeaf0001230111 e24KC2ThetaAboveLeaf0001230112 + e24KC2ThetaAboveLeaf0001230113 + +theorem e24KC2ThetaAboveNode000123012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00012301) + e24KC2ThetaAboveLeaf0001230120 e24KC2ThetaAboveLeaf0001230121 e24KC2ThetaAboveLeaf0001230122 + e24KC2ThetaAboveLeaf0001230123 + +theorem e24KC2ThetaAboveNode000123013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00012301) + e24KC2ThetaAboveLeaf0001230130 e24KC2ThetaAboveLeaf0001230131 e24KC2ThetaAboveLeaf0001230132 + e24KC2ThetaAboveLeaf0001230133 + +theorem e24KC2ThetaAboveNode000123020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00012302) + e24KC2ThetaAboveLeaf0001230200 e24KC2ThetaAboveLeaf0001230201 e24KC2ThetaAboveLeaf0001230202 + e24KC2ThetaAboveLeaf0001230203 + +theorem e24KC2ThetaAboveNode000123021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00012302) + e24KC2ThetaAboveLeaf0001230210 e24KC2ThetaAboveLeaf0001230211 e24KC2ThetaAboveLeaf0001230212 + e24KC2ThetaAboveLeaf0001230213 + +theorem e24KC2ThetaAboveNode000123030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00012303) + e24KC2ThetaAboveLeaf0001230300 e24KC2ThetaAboveLeaf0001230301 e24KC2ThetaAboveLeaf0001230302 + e24KC2ThetaAboveLeaf0001230303 + +theorem e24KC2ThetaAboveNode000123031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00012303) + e24KC2ThetaAboveLeaf0001230310 e24KC2ThetaAboveLeaf0001230311 e24KC2ThetaAboveLeaf0001230312 + e24KC2ThetaAboveLeaf0001230313 + +theorem e24KC2ThetaAboveNode000123100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012310) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00012310) + e24KC2ThetaAboveLeaf0001231000 e24KC2ThetaAboveLeaf0001231001 e24KC2ThetaAboveLeaf0001231002 + e24KC2ThetaAboveLeaf0001231003 + +theorem e24KC2ThetaAboveNode000123101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012310) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00012310) + e24KC2ThetaAboveLeaf0001231010 e24KC2ThetaAboveLeaf0001231011 e24KC2ThetaAboveLeaf0001231012 + e24KC2ThetaAboveLeaf0001231013 + +theorem e24KC2ThetaAboveNode000123102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00012310) + e24KC2ThetaAboveLeaf0001231020 e24KC2ThetaAboveLeaf0001231021 e24KC2ThetaAboveLeaf0001231022 + e24KC2ThetaAboveLeaf0001231023 + +theorem e24KC2ThetaAboveNode000123103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00012310) + e24KC2ThetaAboveLeaf0001231030 e24KC2ThetaAboveLeaf0001231031 e24KC2ThetaAboveLeaf0001231032 + e24KC2ThetaAboveLeaf0001231033 + +theorem e24KC2ThetaAboveNode000123110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012311) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00012311) + e24KC2ThetaAboveLeaf0001231100 e24KC2ThetaAboveLeaf0001231101 e24KC2ThetaAboveLeaf0001231102 + e24KC2ThetaAboveLeaf0001231103 + +theorem e24KC2ThetaAboveNode000123111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012311) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00012311) + e24KC2ThetaAboveLeaf0001231110 e24KC2ThetaAboveLeaf0001231111 e24KC2ThetaAboveLeaf0001231112 + e24KC2ThetaAboveLeaf0001231113 + +theorem e24KC2ThetaAboveNode000123112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00012311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00012311) + e24KC2ThetaAboveLeaf0001231120 e24KC2ThetaAboveLeaf0001231121 e24KC2ThetaAboveLeaf0001231122 + e24KC2ThetaAboveLeaf0001231123 + +theorem e24KC2ThetaAboveNode000123113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00012311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00012311) + e24KC2ThetaAboveLeaf0001231130 e24KC2ThetaAboveLeaf0001231131 e24KC2ThetaAboveLeaf0001231132 + e24KC2ThetaAboveLeaf0001231133 + +theorem e24KC2ThetaAboveNode000123120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00012312) + e24KC2ThetaAboveLeaf0001231200 e24KC2ThetaAboveLeaf0001231201 e24KC2ThetaAboveLeaf0001231202 + e24KC2ThetaAboveLeaf0001231203 + +theorem e24KC2ThetaAboveNode000123121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00012312) + e24KC2ThetaAboveLeaf0001231210 e24KC2ThetaAboveLeaf0001231211 e24KC2ThetaAboveLeaf0001231212 + e24KC2ThetaAboveLeaf0001231213 + +theorem e24KC2ThetaAboveNode000123130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00012313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00012313) + e24KC2ThetaAboveLeaf0001231300 e24KC2ThetaAboveLeaf0001231301 e24KC2ThetaAboveLeaf0001231302 + e24KC2ThetaAboveLeaf0001231303 + +theorem e24KC2ThetaAboveNode000123131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00012313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00012313) + e24KC2ThetaAboveLeaf0001231310 e24KC2ThetaAboveLeaf0001231311 e24KC2ThetaAboveLeaf0001231312 + e24KC2ThetaAboveLeaf0001231313 + +theorem e24KC2ThetaAboveNode000132000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013200) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00013200) + e24KC2ThetaAboveLeaf0001320000 e24KC2ThetaAboveLeaf0001320001 e24KC2ThetaAboveLeaf0001320002 + e24KC2ThetaAboveLeaf0001320003 + +theorem e24KC2ThetaAboveNode000132001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013200) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00013200) + e24KC2ThetaAboveLeaf0001320010 e24KC2ThetaAboveLeaf0001320011 e24KC2ThetaAboveLeaf0001320012 + e24KC2ThetaAboveLeaf0001320013 + +theorem e24KC2ThetaAboveNode000132002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00013200) + e24KC2ThetaAboveLeaf0001320020 e24KC2ThetaAboveLeaf0001320021 e24KC2ThetaAboveLeaf0001320022 + e24KC2ThetaAboveLeaf0001320023 + +theorem e24KC2ThetaAboveNode000132003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00013200) + e24KC2ThetaAboveLeaf0001320030 e24KC2ThetaAboveLeaf0001320031 e24KC2ThetaAboveLeaf0001320032 + e24KC2ThetaAboveLeaf0001320033 + +theorem e24KC2ThetaAboveNode000132010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013201) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00013201) + e24KC2ThetaAboveLeaf0001320100 e24KC2ThetaAboveLeaf0001320101 e24KC2ThetaAboveLeaf0001320102 + e24KC2ThetaAboveLeaf0001320103 + +theorem e24KC2ThetaAboveNode000132011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013201) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00013201) + e24KC2ThetaAboveLeaf0001320110 e24KC2ThetaAboveLeaf0001320111 e24KC2ThetaAboveLeaf0001320112 + e24KC2ThetaAboveLeaf0001320113 + +theorem e24KC2ThetaAboveNode000132012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00013201) + e24KC2ThetaAboveLeaf0001320120 e24KC2ThetaAboveLeaf0001320121 e24KC2ThetaAboveLeaf0001320122 + e24KC2ThetaAboveLeaf0001320123 + +theorem e24KC2ThetaAboveNode000132013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00013201) + e24KC2ThetaAboveLeaf0001320130 e24KC2ThetaAboveLeaf0001320131 e24KC2ThetaAboveLeaf0001320132 + e24KC2ThetaAboveLeaf0001320133 + +theorem e24KC2ThetaAboveNode000132020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00013202) + e24KC2ThetaAboveLeaf0001320200 e24KC2ThetaAboveLeaf0001320201 e24KC2ThetaAboveLeaf0001320202 + e24KC2ThetaAboveLeaf0001320203 + +theorem e24KC2ThetaAboveNode000132021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00013202) + e24KC2ThetaAboveLeaf0001320210 e24KC2ThetaAboveLeaf0001320211 e24KC2ThetaAboveLeaf0001320212 + e24KC2ThetaAboveLeaf0001320213 + +theorem e24KC2ThetaAboveNode000132030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00013203) + e24KC2ThetaAboveLeaf0001320300 e24KC2ThetaAboveLeaf0001320301 e24KC2ThetaAboveLeaf0001320302 + e24KC2ThetaAboveLeaf0001320303 + +theorem e24KC2ThetaAboveNode000132031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00013203) + e24KC2ThetaAboveLeaf0001320310 e24KC2ThetaAboveLeaf0001320311 e24KC2ThetaAboveLeaf0001320312 + e24KC2ThetaAboveLeaf0001320313 + +theorem e24KC2ThetaAboveNode000132100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013210) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00013210) + e24KC2ThetaAboveLeaf0001321000 e24KC2ThetaAboveLeaf0001321001 e24KC2ThetaAboveLeaf0001321002 + e24KC2ThetaAboveLeaf0001321003 + +theorem e24KC2ThetaAboveNode000132101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013210) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00013210) + e24KC2ThetaAboveLeaf0001321010 e24KC2ThetaAboveLeaf0001321011 e24KC2ThetaAboveLeaf0001321012 + e24KC2ThetaAboveLeaf0001321013 + +theorem e24KC2ThetaAboveNode000132102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00013210) + e24KC2ThetaAboveLeaf0001321020 e24KC2ThetaAboveLeaf0001321021 e24KC2ThetaAboveLeaf0001321022 + e24KC2ThetaAboveLeaf0001321023 + +theorem e24KC2ThetaAboveNode000132103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00013210) + e24KC2ThetaAboveLeaf0001321030 e24KC2ThetaAboveLeaf0001321031 e24KC2ThetaAboveLeaf0001321032 + e24KC2ThetaAboveLeaf0001321033 + +theorem e24KC2ThetaAboveNode000132110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013211) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00013211) + e24KC2ThetaAboveLeaf0001321100 e24KC2ThetaAboveLeaf0001321101 e24KC2ThetaAboveLeaf0001321102 + e24KC2ThetaAboveLeaf0001321103 + +theorem e24KC2ThetaAboveNode000132111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013211) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00013211) + e24KC2ThetaAboveLeaf0001321110 e24KC2ThetaAboveLeaf0001321111 e24KC2ThetaAboveLeaf0001321112 + e24KC2ThetaAboveLeaf0001321113 + +theorem e24KC2ThetaAboveNode000132112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00013211) + e24KC2ThetaAboveLeaf0001321120 e24KC2ThetaAboveLeaf0001321121 e24KC2ThetaAboveLeaf0001321122 + e24KC2ThetaAboveLeaf0001321123 + +theorem e24KC2ThetaAboveNode000132113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00013211) + e24KC2ThetaAboveLeaf0001321130 e24KC2ThetaAboveLeaf0001321131 e24KC2ThetaAboveLeaf0001321132 + e24KC2ThetaAboveLeaf0001321133 + +theorem e24KC2ThetaAboveNode000132120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00013212) + e24KC2ThetaAboveLeaf0001321200 e24KC2ThetaAboveLeaf0001321201 e24KC2ThetaAboveLeaf0001321202 + e24KC2ThetaAboveLeaf0001321203 + +theorem e24KC2ThetaAboveNode000132121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00013212) + e24KC2ThetaAboveLeaf0001321210 e24KC2ThetaAboveLeaf0001321211 e24KC2ThetaAboveLeaf0001321212 + e24KC2ThetaAboveLeaf0001321213 + +theorem e24KC2ThetaAboveNode000132130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00013213) + e24KC2ThetaAboveLeaf0001321300 e24KC2ThetaAboveLeaf0001321301 e24KC2ThetaAboveLeaf0001321302 + e24KC2ThetaAboveLeaf0001321303 + +theorem e24KC2ThetaAboveNode000132131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00013213) + e24KC2ThetaAboveLeaf0001321310 e24KC2ThetaAboveLeaf0001321311 e24KC2ThetaAboveLeaf0001321312 + e24KC2ThetaAboveLeaf0001321313 + +theorem e24KC2ThetaAboveNode000133000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013300) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00013300) + e24KC2ThetaAboveLeaf0001330000 e24KC2ThetaAboveLeaf0001330001 e24KC2ThetaAboveLeaf0001330002 + e24KC2ThetaAboveLeaf0001330003 + +theorem e24KC2ThetaAboveNode000133001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013300) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00013300) + e24KC2ThetaAboveLeaf0001330010 e24KC2ThetaAboveLeaf0001330011 e24KC2ThetaAboveLeaf0001330012 + e24KC2ThetaAboveLeaf0001330013 + +theorem e24KC2ThetaAboveNode000133002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00013300) + e24KC2ThetaAboveLeaf0001330020 e24KC2ThetaAboveLeaf0001330021 e24KC2ThetaAboveLeaf0001330022 + e24KC2ThetaAboveLeaf0001330023 + +theorem e24KC2ThetaAboveNode000133003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00013300) + e24KC2ThetaAboveLeaf0001330030 e24KC2ThetaAboveLeaf0001330031 e24KC2ThetaAboveLeaf0001330032 + e24KC2ThetaAboveLeaf0001330033 + +theorem e24KC2ThetaAboveNode000133010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013301) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00013301) + e24KC2ThetaAboveLeaf0001330100 e24KC2ThetaAboveLeaf0001330101 e24KC2ThetaAboveLeaf0001330102 + e24KC2ThetaAboveLeaf0001330103 + +theorem e24KC2ThetaAboveNode000133011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013301) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00013301) + e24KC2ThetaAboveLeaf0001330110 e24KC2ThetaAboveLeaf0001330111 e24KC2ThetaAboveLeaf0001330112 + e24KC2ThetaAboveLeaf0001330113 + +theorem e24KC2ThetaAboveNode000133012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00013301) + e24KC2ThetaAboveLeaf0001330120 e24KC2ThetaAboveLeaf0001330121 e24KC2ThetaAboveLeaf0001330122 + e24KC2ThetaAboveLeaf0001330123 + +theorem e24KC2ThetaAboveNode000133013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00013301) + e24KC2ThetaAboveLeaf0001330130 e24KC2ThetaAboveLeaf0001330131 e24KC2ThetaAboveLeaf0001330132 + e24KC2ThetaAboveLeaf0001330133 + +theorem e24KC2ThetaAboveNode000133020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00013302) + e24KC2ThetaAboveLeaf0001330200 e24KC2ThetaAboveLeaf0001330201 e24KC2ThetaAboveLeaf0001330202 + e24KC2ThetaAboveLeaf0001330203 + +theorem e24KC2ThetaAboveNode000133021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00013302) + e24KC2ThetaAboveLeaf0001330210 e24KC2ThetaAboveLeaf0001330211 e24KC2ThetaAboveLeaf0001330212 + e24KC2ThetaAboveLeaf0001330213 + +theorem e24KC2ThetaAboveNode000133030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00013303) + e24KC2ThetaAboveLeaf0001330300 e24KC2ThetaAboveLeaf0001330301 e24KC2ThetaAboveLeaf0001330302 + e24KC2ThetaAboveLeaf0001330303 + +theorem e24KC2ThetaAboveNode000133031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00013303) + e24KC2ThetaAboveLeaf0001330310 e24KC2ThetaAboveLeaf0001330311 e24KC2ThetaAboveLeaf0001330312 + e24KC2ThetaAboveLeaf0001330313 + +theorem e24KC2ThetaAboveNode000133100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013310) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00013310) + e24KC2ThetaAboveLeaf0001331000 e24KC2ThetaAboveLeaf0001331001 e24KC2ThetaAboveLeaf0001331002 + e24KC2ThetaAboveLeaf0001331003 + +theorem e24KC2ThetaAboveNode000133101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013310) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00013310) + e24KC2ThetaAboveLeaf0001331010 e24KC2ThetaAboveLeaf0001331011 e24KC2ThetaAboveLeaf0001331012 + e24KC2ThetaAboveLeaf0001331013 + +theorem e24KC2ThetaAboveNode000133102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00013310) + e24KC2ThetaAboveLeaf0001331020 e24KC2ThetaAboveLeaf0001331021 e24KC2ThetaAboveLeaf0001331022 + e24KC2ThetaAboveLeaf0001331023 + +theorem e24KC2ThetaAboveNode000133103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00013310) + e24KC2ThetaAboveLeaf0001331030 e24KC2ThetaAboveLeaf0001331031 e24KC2ThetaAboveLeaf0001331032 + e24KC2ThetaAboveLeaf0001331033 + +theorem e24KC2ThetaAboveNode000133110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013311) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00013311) + e24KC2ThetaAboveLeaf0001331100 e24KC2ThetaAboveLeaf0001331101 e24KC2ThetaAboveLeaf0001331102 + e24KC2ThetaAboveLeaf0001331103 + +theorem e24KC2ThetaAboveNode000133111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013311) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00013311) + e24KC2ThetaAboveLeaf0001331110 e24KC2ThetaAboveLeaf0001331111 e24KC2ThetaAboveLeaf0001331112 + e24KC2ThetaAboveLeaf0001331113 + +theorem e24KC2ThetaAboveNode000133112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00013311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00013311) + e24KC2ThetaAboveLeaf0001331120 e24KC2ThetaAboveLeaf0001331121 e24KC2ThetaAboveLeaf0001331122 + e24KC2ThetaAboveLeaf0001331123 + +theorem e24KC2ThetaAboveNode000133113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00013311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00013311) + e24KC2ThetaAboveLeaf0001331130 e24KC2ThetaAboveLeaf0001331131 e24KC2ThetaAboveLeaf0001331132 + e24KC2ThetaAboveLeaf0001331133 + +theorem e24KC2ThetaAboveNode000133120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00013312) + e24KC2ThetaAboveLeaf0001331200 e24KC2ThetaAboveLeaf0001331201 e24KC2ThetaAboveLeaf0001331202 + e24KC2ThetaAboveLeaf0001331203 + +theorem e24KC2ThetaAboveNode000133121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00013312) + e24KC2ThetaAboveLeaf0001331210 e24KC2ThetaAboveLeaf0001331211 e24KC2ThetaAboveLeaf0001331212 + e24KC2ThetaAboveLeaf0001331213 + +theorem e24KC2ThetaAboveNode000133130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00013313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00013313) + e24KC2ThetaAboveLeaf0001331300 e24KC2ThetaAboveLeaf0001331301 e24KC2ThetaAboveLeaf0001331302 + e24KC2ThetaAboveLeaf0001331303 + +theorem e24KC2ThetaAboveNode000133131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00013313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00013313) + e24KC2ThetaAboveLeaf0001331310 e24KC2ThetaAboveLeaf0001331311 e24KC2ThetaAboveLeaf0001331312 + e24KC2ThetaAboveLeaf0001331313 + +theorem e24KC2ThetaAboveNode001022000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102200) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00102200) + e24KC2ThetaAboveLeaf0010220000 e24KC2ThetaAboveLeaf0010220001 e24KC2ThetaAboveLeaf0010220002 + e24KC2ThetaAboveLeaf0010220003 + +theorem e24KC2ThetaAboveNode001022001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102200) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00102200) + e24KC2ThetaAboveLeaf0010220010 e24KC2ThetaAboveLeaf0010220011 e24KC2ThetaAboveLeaf0010220012 + e24KC2ThetaAboveLeaf0010220013 + +theorem e24KC2ThetaAboveNode001022002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00102200) + e24KC2ThetaAboveLeaf0010220020 e24KC2ThetaAboveLeaf0010220021 e24KC2ThetaAboveLeaf0010220022 + e24KC2ThetaAboveLeaf0010220023 + +theorem e24KC2ThetaAboveNode001022003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00102200) + e24KC2ThetaAboveLeaf0010220030 e24KC2ThetaAboveLeaf0010220031 e24KC2ThetaAboveLeaf0010220032 + e24KC2ThetaAboveLeaf0010220033 + +theorem e24KC2ThetaAboveNode001022010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102201) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00102201) + e24KC2ThetaAboveLeaf0010220100 e24KC2ThetaAboveLeaf0010220101 e24KC2ThetaAboveLeaf0010220102 + e24KC2ThetaAboveLeaf0010220103 + +theorem e24KC2ThetaAboveNode001022011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102201) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00102201) + e24KC2ThetaAboveLeaf0010220110 e24KC2ThetaAboveLeaf0010220111 e24KC2ThetaAboveLeaf0010220112 + e24KC2ThetaAboveLeaf0010220113 + +theorem e24KC2ThetaAboveNode001022012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00102201) + e24KC2ThetaAboveLeaf0010220120 e24KC2ThetaAboveLeaf0010220121 e24KC2ThetaAboveLeaf0010220122 + e24KC2ThetaAboveLeaf0010220123 + +theorem e24KC2ThetaAboveNode001022013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00102201) + e24KC2ThetaAboveLeaf0010220130 e24KC2ThetaAboveLeaf0010220131 e24KC2ThetaAboveLeaf0010220132 + e24KC2ThetaAboveLeaf0010220133 + +theorem e24KC2ThetaAboveNode001022020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00102202) + e24KC2ThetaAboveLeaf0010220200 e24KC2ThetaAboveLeaf0010220201 e24KC2ThetaAboveLeaf0010220202 + e24KC2ThetaAboveLeaf0010220203 + +theorem e24KC2ThetaAboveNode001022021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00102202) + e24KC2ThetaAboveLeaf0010220210 e24KC2ThetaAboveLeaf0010220211 e24KC2ThetaAboveLeaf0010220212 + e24KC2ThetaAboveLeaf0010220213 + +theorem e24KC2ThetaAboveNode001022030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00102203) + e24KC2ThetaAboveLeaf0010220300 e24KC2ThetaAboveLeaf0010220301 e24KC2ThetaAboveLeaf0010220302 + e24KC2ThetaAboveLeaf0010220303 + +theorem e24KC2ThetaAboveNode001022031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00102203) + e24KC2ThetaAboveLeaf0010220310 e24KC2ThetaAboveLeaf0010220311 e24KC2ThetaAboveLeaf0010220312 + e24KC2ThetaAboveLeaf0010220313 + +theorem e24KC2ThetaAboveNode001022100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102210) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00102210) + e24KC2ThetaAboveLeaf0010221000 e24KC2ThetaAboveLeaf0010221001 e24KC2ThetaAboveLeaf0010221002 + e24KC2ThetaAboveLeaf0010221003 + +theorem e24KC2ThetaAboveNode001022101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102210) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00102210) + e24KC2ThetaAboveLeaf0010221010 e24KC2ThetaAboveLeaf0010221011 e24KC2ThetaAboveLeaf0010221012 + e24KC2ThetaAboveLeaf0010221013 + +theorem e24KC2ThetaAboveNode001022102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00102210) + e24KC2ThetaAboveLeaf0010221020 e24KC2ThetaAboveLeaf0010221021 e24KC2ThetaAboveLeaf0010221022 + e24KC2ThetaAboveLeaf0010221023 + +theorem e24KC2ThetaAboveNode001022103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00102210) + e24KC2ThetaAboveLeaf0010221030 e24KC2ThetaAboveLeaf0010221031 e24KC2ThetaAboveLeaf0010221032 + e24KC2ThetaAboveLeaf0010221033 + +theorem e24KC2ThetaAboveNode001022110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102211) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00102211) + e24KC2ThetaAboveLeaf0010221100 e24KC2ThetaAboveLeaf0010221101 e24KC2ThetaAboveLeaf0010221102 + e24KC2ThetaAboveLeaf0010221103 + +theorem e24KC2ThetaAboveNode001022111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102211) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00102211) + e24KC2ThetaAboveLeaf0010221110 e24KC2ThetaAboveLeaf0010221111 e24KC2ThetaAboveLeaf0010221112 + e24KC2ThetaAboveLeaf0010221113 + +theorem e24KC2ThetaAboveNode001022112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00102211) + e24KC2ThetaAboveLeaf0010221120 e24KC2ThetaAboveLeaf0010221121 e24KC2ThetaAboveLeaf0010221122 + e24KC2ThetaAboveLeaf0010221123 + +theorem e24KC2ThetaAboveNode001022113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00102211) + e24KC2ThetaAboveLeaf0010221130 e24KC2ThetaAboveLeaf0010221131 e24KC2ThetaAboveLeaf0010221132 + e24KC2ThetaAboveLeaf0010221133 + +theorem e24KC2ThetaAboveNode001022120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00102212) + e24KC2ThetaAboveLeaf0010221200 e24KC2ThetaAboveLeaf0010221201 e24KC2ThetaAboveLeaf0010221202 + e24KC2ThetaAboveLeaf0010221203 + +theorem e24KC2ThetaAboveNode001022121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00102212) + e24KC2ThetaAboveLeaf0010221210 e24KC2ThetaAboveLeaf0010221211 e24KC2ThetaAboveLeaf0010221212 + e24KC2ThetaAboveLeaf0010221213 + +theorem e24KC2ThetaAboveNode001022130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00102213) + e24KC2ThetaAboveLeaf0010221300 e24KC2ThetaAboveLeaf0010221301 e24KC2ThetaAboveLeaf0010221302 + e24KC2ThetaAboveLeaf0010221303 + +theorem e24KC2ThetaAboveNode001022131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00102213) + e24KC2ThetaAboveLeaf0010221310 e24KC2ThetaAboveLeaf0010221311 e24KC2ThetaAboveLeaf0010221312 + e24KC2ThetaAboveLeaf0010221313 + +theorem e24KC2ThetaAboveNode001023000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102300) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00102300) + e24KC2ThetaAboveLeaf0010230000 e24KC2ThetaAboveLeaf0010230001 e24KC2ThetaAboveLeaf0010230002 + e24KC2ThetaAboveLeaf0010230003 + +theorem e24KC2ThetaAboveNode001023001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102300) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00102300) + e24KC2ThetaAboveLeaf0010230010 e24KC2ThetaAboveLeaf0010230011 e24KC2ThetaAboveLeaf0010230012 + e24KC2ThetaAboveLeaf0010230013 + +theorem e24KC2ThetaAboveNode001023002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00102300) + e24KC2ThetaAboveLeaf0010230020 e24KC2ThetaAboveLeaf0010230021 e24KC2ThetaAboveLeaf0010230022 + e24KC2ThetaAboveLeaf0010230023 + +theorem e24KC2ThetaAboveNode001023003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00102300) + e24KC2ThetaAboveLeaf0010230030 e24KC2ThetaAboveLeaf0010230031 e24KC2ThetaAboveLeaf0010230032 + e24KC2ThetaAboveLeaf0010230033 + +theorem e24KC2ThetaAboveNode001023010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102301) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00102301) + e24KC2ThetaAboveLeaf0010230100 e24KC2ThetaAboveLeaf0010230101 e24KC2ThetaAboveLeaf0010230102 + e24KC2ThetaAboveLeaf0010230103 + +theorem e24KC2ThetaAboveNode001023011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102301) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00102301) + e24KC2ThetaAboveLeaf0010230110 e24KC2ThetaAboveLeaf0010230111 e24KC2ThetaAboveLeaf0010230112 + e24KC2ThetaAboveLeaf0010230113 + +theorem e24KC2ThetaAboveNode001023012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00102301) + e24KC2ThetaAboveLeaf0010230120 e24KC2ThetaAboveLeaf0010230121 e24KC2ThetaAboveLeaf0010230122 + e24KC2ThetaAboveLeaf0010230123 + +theorem e24KC2ThetaAboveNode001023013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00102301) + e24KC2ThetaAboveLeaf0010230130 e24KC2ThetaAboveLeaf0010230131 e24KC2ThetaAboveLeaf0010230132 + e24KC2ThetaAboveLeaf0010230133 + +theorem e24KC2ThetaAboveNode001023020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00102302) + e24KC2ThetaAboveLeaf0010230200 e24KC2ThetaAboveLeaf0010230201 e24KC2ThetaAboveLeaf0010230202 + e24KC2ThetaAboveLeaf0010230203 + +theorem e24KC2ThetaAboveNode001023021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00102302) + e24KC2ThetaAboveLeaf0010230210 e24KC2ThetaAboveLeaf0010230211 e24KC2ThetaAboveLeaf0010230212 + e24KC2ThetaAboveLeaf0010230213 + +theorem e24KC2ThetaAboveNode001023030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00102303) + e24KC2ThetaAboveLeaf0010230300 e24KC2ThetaAboveLeaf0010230301 e24KC2ThetaAboveLeaf0010230302 + e24KC2ThetaAboveLeaf0010230303 + +theorem e24KC2ThetaAboveNode001023031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00102303) + e24KC2ThetaAboveLeaf0010230310 e24KC2ThetaAboveLeaf0010230311 e24KC2ThetaAboveLeaf0010230312 + e24KC2ThetaAboveLeaf0010230313 + +theorem e24KC2ThetaAboveNode001023100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102310) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00102310) + e24KC2ThetaAboveLeaf0010231000 e24KC2ThetaAboveLeaf0010231001 e24KC2ThetaAboveLeaf0010231002 + e24KC2ThetaAboveLeaf0010231003 + +theorem e24KC2ThetaAboveNode001023101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102310) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00102310) + e24KC2ThetaAboveLeaf0010231010 e24KC2ThetaAboveLeaf0010231011 e24KC2ThetaAboveLeaf0010231012 + e24KC2ThetaAboveLeaf0010231013 + +theorem e24KC2ThetaAboveNode001023102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00102310) + e24KC2ThetaAboveLeaf0010231020 e24KC2ThetaAboveLeaf0010231021 e24KC2ThetaAboveLeaf0010231022 + e24KC2ThetaAboveLeaf0010231023 + +theorem e24KC2ThetaAboveNode001023103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00102310) + e24KC2ThetaAboveLeaf0010231030 e24KC2ThetaAboveLeaf0010231031 e24KC2ThetaAboveLeaf0010231032 + e24KC2ThetaAboveLeaf0010231033 + +theorem e24KC2ThetaAboveNode001023110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102311) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00102311) + e24KC2ThetaAboveLeaf0010231100 e24KC2ThetaAboveLeaf0010231101 e24KC2ThetaAboveLeaf0010231102 + e24KC2ThetaAboveLeaf0010231103 + +theorem e24KC2ThetaAboveNode001023111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102311) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00102311) + e24KC2ThetaAboveLeaf0010231110 e24KC2ThetaAboveLeaf0010231111 e24KC2ThetaAboveLeaf0010231112 + e24KC2ThetaAboveLeaf0010231113 + +theorem e24KC2ThetaAboveNode001023112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00102311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00102311) + e24KC2ThetaAboveLeaf0010231120 e24KC2ThetaAboveLeaf0010231121 e24KC2ThetaAboveLeaf0010231122 + e24KC2ThetaAboveLeaf0010231123 + +theorem e24KC2ThetaAboveNode001023113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00102311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00102311) + e24KC2ThetaAboveLeaf0010231130 e24KC2ThetaAboveLeaf0010231131 e24KC2ThetaAboveLeaf0010231132 + e24KC2ThetaAboveLeaf0010231133 + +theorem e24KC2ThetaAboveNode001023120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00102312) + e24KC2ThetaAboveLeaf0010231200 e24KC2ThetaAboveLeaf0010231201 e24KC2ThetaAboveLeaf0010231202 + e24KC2ThetaAboveLeaf0010231203 + +theorem e24KC2ThetaAboveNode001023121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00102312) + e24KC2ThetaAboveLeaf0010231210 e24KC2ThetaAboveLeaf0010231211 e24KC2ThetaAboveLeaf0010231212 + e24KC2ThetaAboveLeaf0010231213 + +theorem e24KC2ThetaAboveNode001023130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00102313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00102313) + e24KC2ThetaAboveLeaf0010231300 e24KC2ThetaAboveLeaf0010231301 e24KC2ThetaAboveLeaf0010231302 + e24KC2ThetaAboveLeaf0010231303 + +theorem e24KC2ThetaAboveNode001023131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00102313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00102313) + e24KC2ThetaAboveLeaf0010231310 e24KC2ThetaAboveLeaf0010231311 e24KC2ThetaAboveLeaf0010231312 + e24KC2ThetaAboveLeaf0010231313 + +theorem e24KC2ThetaAboveNode001032000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00103200) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00103200) + e24KC2ThetaAboveLeaf0010320000 e24KC2ThetaAboveLeaf0010320001 e24KC2ThetaAboveLeaf0010320002 + e24KC2ThetaAboveLeaf0010320003 + +theorem e24KC2ThetaAboveNode001032001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00103200) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00103200) + e24KC2ThetaAboveLeaf0010320010 e24KC2ThetaAboveLeaf0010320011 e24KC2ThetaAboveLeaf0010320012 + e24KC2ThetaAboveLeaf0010320013 + +theorem e24KC2ThetaAboveNode001032002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00103200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00103200) + e24KC2ThetaAboveLeaf0010320020 e24KC2ThetaAboveLeaf0010320021 e24KC2ThetaAboveLeaf0010320022 + e24KC2ThetaAboveLeaf0010320023 + +theorem e24KC2ThetaAboveNode001032003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00103200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00103200) + e24KC2ThetaAboveLeaf0010320030 e24KC2ThetaAboveLeaf0010320031 e24KC2ThetaAboveLeaf0010320032 + e24KC2ThetaAboveLeaf0010320033 + +theorem e24KC2ThetaAboveNode001032010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00103201) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00103201) + e24KC2ThetaAboveLeaf0010320100 e24KC2ThetaAboveLeaf0010320101 e24KC2ThetaAboveLeaf0010320102 + e24KC2ThetaAboveLeaf0010320103 + +theorem e24KC2ThetaAboveNode001032011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00103201) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00103201) + e24KC2ThetaAboveLeaf0010320110 e24KC2ThetaAboveLeaf0010320111 e24KC2ThetaAboveLeaf0010320112 + e24KC2ThetaAboveLeaf0010320113 + +theorem e24KC2ThetaAboveNode001032012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00103201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00103201) + e24KC2ThetaAboveLeaf0010320120 e24KC2ThetaAboveLeaf0010320121 e24KC2ThetaAboveLeaf0010320122 + e24KC2ThetaAboveLeaf0010320123 + +theorem e24KC2ThetaAboveNode001032013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00103201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00103201) + e24KC2ThetaAboveLeaf0010320130 e24KC2ThetaAboveLeaf0010320131 e24KC2ThetaAboveLeaf0010320132 + e24KC2ThetaAboveLeaf0010320133 + +theorem e24KC2ThetaAboveNode001032020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00103202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00103202) + e24KC2ThetaAboveLeaf0010320200 e24KC2ThetaAboveLeaf0010320201 e24KC2ThetaAboveLeaf0010320202 + e24KC2ThetaAboveLeaf0010320203 + +theorem e24KC2ThetaAboveNode001032021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00103202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00103202) + e24KC2ThetaAboveLeaf0010320210 e24KC2ThetaAboveLeaf0010320211 e24KC2ThetaAboveLeaf0010320212 + e24KC2ThetaAboveLeaf0010320213 + +theorem e24KC2ThetaAboveNode001032030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00103203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00103203) + e24KC2ThetaAboveLeaf0010320300 e24KC2ThetaAboveLeaf0010320301 e24KC2ThetaAboveLeaf0010320302 + e24KC2ThetaAboveLeaf0010320303 + +theorem e24KC2ThetaAboveNode001032031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00103203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00103203) + e24KC2ThetaAboveLeaf0010320310 e24KC2ThetaAboveLeaf0010320311 e24KC2ThetaAboveLeaf0010320312 + e24KC2ThetaAboveLeaf0010320313 + +theorem e24KC2ThetaAboveNode001032100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00103210) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00103210) + e24KC2ThetaAboveLeaf0010321000 e24KC2ThetaAboveLeaf0010321001 e24KC2ThetaAboveLeaf0010321002 + e24KC2ThetaAboveLeaf0010321003 + +theorem e24KC2ThetaAboveNode001032101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00103210) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00103210) + e24KC2ThetaAboveLeaf0010321010 e24KC2ThetaAboveLeaf0010321011 e24KC2ThetaAboveLeaf0010321012 + e24KC2ThetaAboveLeaf0010321013 + +theorem e24KC2ThetaAboveNode001032102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00103210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00103210) + e24KC2ThetaAboveLeaf0010321020 e24KC2ThetaAboveLeaf0010321021 e24KC2ThetaAboveLeaf0010321022 + e24KC2ThetaAboveLeaf0010321023 + +theorem e24KC2ThetaAboveNode001032103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00103210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00103210) + e24KC2ThetaAboveLeaf0010321030 e24KC2ThetaAboveLeaf0010321031 e24KC2ThetaAboveLeaf0010321032 + e24KC2ThetaAboveLeaf0010321033 + +theorem e24KC2ThetaAboveNode001032110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00103211) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00103211) + e24KC2ThetaAboveLeaf0010321100 e24KC2ThetaAboveLeaf0010321101 e24KC2ThetaAboveLeaf0010321102 + e24KC2ThetaAboveLeaf0010321103 + +theorem e24KC2ThetaAboveNode001032111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00103211) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00103211) + e24KC2ThetaAboveLeaf0010321110 e24KC2ThetaAboveLeaf0010321111 e24KC2ThetaAboveLeaf0010321112 + e24KC2ThetaAboveLeaf0010321113 + +theorem e24KC2ThetaAboveNode001032112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00103211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00103211) + e24KC2ThetaAboveLeaf0010321120 e24KC2ThetaAboveLeaf0010321121 e24KC2ThetaAboveLeaf0010321122 + e24KC2ThetaAboveLeaf0010321123 + +theorem e24KC2ThetaAboveNode001032113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00103211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00103211) + e24KC2ThetaAboveLeaf0010321130 e24KC2ThetaAboveLeaf0010321131 e24KC2ThetaAboveLeaf0010321132 + e24KC2ThetaAboveLeaf0010321133 + +theorem e24KC2ThetaAboveNode001032120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00103212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00103212) + e24KC2ThetaAboveLeaf0010321200 e24KC2ThetaAboveLeaf0010321201 e24KC2ThetaAboveLeaf0010321202 + e24KC2ThetaAboveLeaf0010321203 + +theorem e24KC2ThetaAboveNode001032121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00103212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00103212) + e24KC2ThetaAboveLeaf0010321210 e24KC2ThetaAboveLeaf0010321211 e24KC2ThetaAboveLeaf0010321212 + e24KC2ThetaAboveLeaf0010321213 + +theorem e24KC2ThetaAboveNode001032130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00103213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00103213) + e24KC2ThetaAboveLeaf0010321300 e24KC2ThetaAboveLeaf0010321301 e24KC2ThetaAboveLeaf0010321302 + e24KC2ThetaAboveLeaf0010321303 + +theorem e24KC2ThetaAboveNode001032131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00103213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00103213) + e24KC2ThetaAboveLeaf0010321310 e24KC2ThetaAboveLeaf0010321311 e24KC2ThetaAboveLeaf0010321312 + e24KC2ThetaAboveLeaf0010321313 + +theorem e24KC2ThetaAboveNode001033000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00103300) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00103300) + e24KC2ThetaAboveLeaf0010330000 e24KC2ThetaAboveLeaf0010330001 e24KC2ThetaAboveLeaf0010330002 + e24KC2ThetaAboveLeaf0010330003 + +theorem e24KC2ThetaAboveNode001033001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00103300) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00103300) + e24KC2ThetaAboveLeaf0010330010 e24KC2ThetaAboveLeaf0010330011 e24KC2ThetaAboveLeaf0010330012 + e24KC2ThetaAboveLeaf0010330013 + +theorem e24KC2ThetaAboveNode001033002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00103300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00103300) + e24KC2ThetaAboveLeaf0010330020 e24KC2ThetaAboveLeaf0010330021 e24KC2ThetaAboveLeaf0010330022 + e24KC2ThetaAboveLeaf0010330023 + +theorem e24KC2ThetaAboveNode001033003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00103300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00103300) + e24KC2ThetaAboveLeaf0010330030 e24KC2ThetaAboveLeaf0010330031 e24KC2ThetaAboveLeaf0010330032 + e24KC2ThetaAboveLeaf0010330033 + +theorem e24KC2ThetaAboveNode001033010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00103301) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00103301) + e24KC2ThetaAboveLeaf0010330100 e24KC2ThetaAboveLeaf0010330101 e24KC2ThetaAboveLeaf0010330102 + e24KC2ThetaAboveLeaf0010330103 + +theorem e24KC2ThetaAboveNode001033011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00103301) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00103301) + e24KC2ThetaAboveLeaf0010330110 e24KC2ThetaAboveLeaf0010330111 e24KC2ThetaAboveLeaf0010330112 + e24KC2ThetaAboveLeaf0010330113 + +theorem e24KC2ThetaAboveNode001033012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00103301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00103301) + e24KC2ThetaAboveLeaf0010330120 e24KC2ThetaAboveLeaf0010330121 e24KC2ThetaAboveLeaf0010330122 + e24KC2ThetaAboveLeaf0010330123 + +theorem e24KC2ThetaAboveNode001033013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00103301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00103301) + e24KC2ThetaAboveLeaf0010330130 e24KC2ThetaAboveLeaf0010330131 e24KC2ThetaAboveLeaf0010330132 + e24KC2ThetaAboveLeaf0010330133 + +theorem e24KC2ThetaAboveNode001033020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00103302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00103302) + e24KC2ThetaAboveLeaf0010330200 e24KC2ThetaAboveLeaf0010330201 e24KC2ThetaAboveLeaf0010330202 + e24KC2ThetaAboveLeaf0010330203 + +theorem e24KC2ThetaAboveNode001033021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00103302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00103302) + e24KC2ThetaAboveLeaf0010330210 e24KC2ThetaAboveLeaf0010330211 e24KC2ThetaAboveLeaf0010330212 + e24KC2ThetaAboveLeaf0010330213 + +theorem e24KC2ThetaAboveNode001033030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00103303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00103303) + e24KC2ThetaAboveLeaf0010330300 e24KC2ThetaAboveLeaf0010330301 e24KC2ThetaAboveLeaf0010330302 + e24KC2ThetaAboveLeaf0010330303 + +theorem e24KC2ThetaAboveNode001033031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00103303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00103303) + e24KC2ThetaAboveLeaf0010330310 e24KC2ThetaAboveLeaf0010330311 e24KC2ThetaAboveLeaf0010330312 + e24KC2ThetaAboveLeaf0010330313 + +theorem e24KC2ThetaAboveNode001033100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00103310) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00103310) + e24KC2ThetaAboveLeaf0010331000 e24KC2ThetaAboveLeaf0010331001 e24KC2ThetaAboveLeaf0010331002 + e24KC2ThetaAboveLeaf0010331003 + +theorem e24KC2ThetaAboveNode001033101 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00103310) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00103310) + e24KC2ThetaAboveLeaf0010331010 e24KC2ThetaAboveLeaf0010331011 e24KC2ThetaAboveLeaf0010331012 + e24KC2ThetaAboveLeaf0010331013 + +theorem e24KC2ThetaAboveNode001033102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00103310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00103310) + e24KC2ThetaAboveLeaf0010331020 e24KC2ThetaAboveLeaf0010331021 e24KC2ThetaAboveLeaf0010331022 + e24KC2ThetaAboveLeaf0010331023 + +theorem e24KC2ThetaAboveNode001033103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00103310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00103310) + e24KC2ThetaAboveLeaf0010331030 e24KC2ThetaAboveLeaf0010331031 e24KC2ThetaAboveLeaf0010331032 + e24KC2ThetaAboveLeaf0010331033 + +theorem e24KC2ThetaAboveNode001033110 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00103311) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00103311) + e24KC2ThetaAboveLeaf0010331100 e24KC2ThetaAboveLeaf0010331101 e24KC2ThetaAboveLeaf0010331102 + e24KC2ThetaAboveLeaf0010331103 + +theorem e24KC2ThetaAboveNode001033111 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00103311) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00103311) + e24KC2ThetaAboveLeaf0010331110 e24KC2ThetaAboveLeaf0010331111 e24KC2ThetaAboveLeaf0010331112 + e24KC2ThetaAboveLeaf0010331113 + +theorem e24KC2ThetaAboveNode001033112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00103311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00103311) + e24KC2ThetaAboveLeaf0010331120 e24KC2ThetaAboveLeaf0010331121 e24KC2ThetaAboveLeaf0010331122 + e24KC2ThetaAboveLeaf0010331123 + +theorem e24KC2ThetaAboveNode001033113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00103311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00103311) + e24KC2ThetaAboveLeaf0010331130 e24KC2ThetaAboveLeaf0010331131 e24KC2ThetaAboveLeaf0010331132 + e24KC2ThetaAboveLeaf0010331133 + +theorem e24KC2ThetaAboveNode001033120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00103312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00103312) + e24KC2ThetaAboveLeaf0010331200 e24KC2ThetaAboveLeaf0010331201 e24KC2ThetaAboveLeaf0010331202 + e24KC2ThetaAboveLeaf0010331203 + +theorem e24KC2ThetaAboveNode001033121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00103312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00103312) + e24KC2ThetaAboveLeaf0010331210 e24KC2ThetaAboveLeaf0010331211 e24KC2ThetaAboveLeaf0010331212 + e24KC2ThetaAboveLeaf0010331213 + +theorem e24KC2ThetaAboveNode001033130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00103313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00103313) + e24KC2ThetaAboveLeaf0010331300 e24KC2ThetaAboveLeaf0010331301 e24KC2ThetaAboveLeaf0010331302 + e24KC2ThetaAboveLeaf0010331303 + +theorem e24KC2ThetaAboveNode001033131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00103313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00103313) + e24KC2ThetaAboveLeaf0010331310 e24KC2ThetaAboveLeaf0010331311 e24KC2ThetaAboveLeaf0010331312 + e24KC2ThetaAboveLeaf0010331313 + +theorem e24KC2ThetaAboveNode001122000 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00112200) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00112200) + e24KC2ThetaAboveLeaf0011220000 e24KC2ThetaAboveLeaf0011220001 e24KC2ThetaAboveLeaf0011220002 + e24KC2ThetaAboveLeaf0011220003 + +theorem e24KC2ThetaAboveNode001122001 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00112200) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00112200) + e24KC2ThetaAboveLeaf0011220010 e24KC2ThetaAboveLeaf0011220011 e24KC2ThetaAboveLeaf0011220012 + e24KC2ThetaAboveLeaf0011220013 + +theorem e24KC2ThetaAboveNode001122002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00112200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00112200) + e24KC2ThetaAboveLeaf0011220020 e24KC2ThetaAboveLeaf0011220021 e24KC2ThetaAboveLeaf0011220022 + e24KC2ThetaAboveLeaf0011220023 + +theorem e24KC2ThetaAboveNode001122003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00112200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00112200) + e24KC2ThetaAboveLeaf0011220030 e24KC2ThetaAboveLeaf0011220031 e24KC2ThetaAboveLeaf0011220032 + e24KC2ThetaAboveLeaf0011220033 + +theorem e24KC2ThetaAboveNode001122010 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00112201) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00112201) + e24KC2ThetaAboveLeaf0011220100 e24KC2ThetaAboveLeaf0011220101 e24KC2ThetaAboveLeaf0011220102 + e24KC2ThetaAboveLeaf0011220103 + +theorem e24KC2ThetaAboveNode001122011 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00112201) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00112201) + e24KC2ThetaAboveLeaf0011220110 e24KC2ThetaAboveLeaf0011220111 e24KC2ThetaAboveLeaf0011220112 + e24KC2ThetaAboveLeaf0011220113 + +theorem e24KC2ThetaAboveNode001122012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00112201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00112201) + e24KC2ThetaAboveLeaf0011220120 e24KC2ThetaAboveLeaf0011220121 e24KC2ThetaAboveLeaf0011220122 + e24KC2ThetaAboveLeaf0011220123 + +theorem e24KC2ThetaAboveNode001122013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00112201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00112201) + e24KC2ThetaAboveLeaf0011220130 e24KC2ThetaAboveLeaf0011220131 e24KC2ThetaAboveLeaf0011220132 + e24KC2ThetaAboveLeaf0011220133 + +theorem e24KC2ThetaAboveNode001122020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00112202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00112202) + e24KC2ThetaAboveLeaf0011220200 e24KC2ThetaAboveLeaf0011220201 e24KC2ThetaAboveLeaf0011220202 + e24KC2ThetaAboveLeaf0011220203 + +theorem e24KC2ThetaAboveNode001122021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00112202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00112202) + e24KC2ThetaAboveLeaf0011220210 e24KC2ThetaAboveLeaf0011220211 e24KC2ThetaAboveLeaf0011220212 + e24KC2ThetaAboveLeaf0011220213 + +theorem e24KC2ThetaAboveNode001122030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00112203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00112203) + e24KC2ThetaAboveLeaf0011220300 e24KC2ThetaAboveLeaf0011220301 e24KC2ThetaAboveLeaf0011220302 + e24KC2ThetaAboveLeaf0011220303 + +theorem e24KC2ThetaAboveNode001122031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00112203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00112203) + e24KC2ThetaAboveLeaf0011220310 e24KC2ThetaAboveLeaf0011220311 e24KC2ThetaAboveLeaf0011220312 + e24KC2ThetaAboveLeaf0011220313 + +theorem e24KC2ThetaAboveNode001122100 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00112210) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00112210) + e24KC2ThetaAboveLeaf0011221000 e24KC2ThetaAboveLeaf0011221001 e24KC2ThetaAboveLeaf0011221002 + e24KC2ThetaAboveLeaf0011221003 + +theorem e24KC2ThetaAboveNode001122102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00112210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00112210) + e24KC2ThetaAboveLeaf0011221020 e24KC2ThetaAboveLeaf0011221021 e24KC2ThetaAboveLeaf0011221022 + e24KC2ThetaAboveLeaf0011221023 + +theorem e24KC2ThetaAboveNode001122103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00112210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00112210) + e24KC2ThetaAboveLeaf0011221030 e24KC2ThetaAboveLeaf0011221031 e24KC2ThetaAboveLeaf0011221032 + e24KC2ThetaAboveLeaf0011221033 + +theorem e24KC2ThetaAboveNode001122112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00112211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00112211) + e24KC2ThetaAboveLeaf0011221120 e24KC2ThetaAboveLeaf0011221121 e24KC2ThetaAboveLeaf0011221122 + e24KC2ThetaAboveLeaf0011221123 + +theorem e24KC2ThetaAboveNode001122113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00112211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00112211) + e24KC2ThetaAboveLeaf0011221130 e24KC2ThetaAboveLeaf0011221131 e24KC2ThetaAboveLeaf0011221132 + e24KC2ThetaAboveLeaf0011221133 + +theorem e24KC2ThetaAboveNode001122120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00112212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00112212) + e24KC2ThetaAboveLeaf0011221200 e24KC2ThetaAboveLeaf0011221201 e24KC2ThetaAboveLeaf0011221202 + e24KC2ThetaAboveLeaf0011221203 + +theorem e24KC2ThetaAboveNode001122121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00112212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00112212) + e24KC2ThetaAboveLeaf0011221210 e24KC2ThetaAboveLeaf0011221211 e24KC2ThetaAboveLeaf0011221212 + e24KC2ThetaAboveLeaf0011221213 + +theorem e24KC2ThetaAboveNode001122130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00112213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00112213) + e24KC2ThetaAboveLeaf0011221300 e24KC2ThetaAboveLeaf0011221301 e24KC2ThetaAboveLeaf0011221302 + e24KC2ThetaAboveLeaf0011221303 + +theorem e24KC2ThetaAboveNode001122131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00112213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00112213) + e24KC2ThetaAboveLeaf0011221310 e24KC2ThetaAboveLeaf0011221311 e24KC2ThetaAboveLeaf0011221312 + e24KC2ThetaAboveLeaf0011221313 + +theorem e24KC2ThetaAboveNode001123002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00112300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00112300) + e24KC2ThetaAboveLeaf0011230020 e24KC2ThetaAboveLeaf0011230021 e24KC2ThetaAboveLeaf0011230022 + e24KC2ThetaAboveLeaf0011230023 + +theorem e24KC2ThetaAboveNode001123003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00112300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00112300) + e24KC2ThetaAboveLeaf0011230030 e24KC2ThetaAboveLeaf0011230031 e24KC2ThetaAboveLeaf0011230032 + e24KC2ThetaAboveLeaf0011230033 + +theorem e24KC2ThetaAboveNode001123012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00112301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00112301) + e24KC2ThetaAboveLeaf0011230120 e24KC2ThetaAboveLeaf0011230121 e24KC2ThetaAboveLeaf0011230122 + e24KC2ThetaAboveLeaf0011230123 + +theorem e24KC2ThetaAboveNode001123013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00112301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00112301) + e24KC2ThetaAboveLeaf0011230130 e24KC2ThetaAboveLeaf0011230131 e24KC2ThetaAboveLeaf0011230132 + e24KC2ThetaAboveLeaf0011230133 + +theorem e24KC2ThetaAboveNode001123020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00112302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00112302) + e24KC2ThetaAboveLeaf0011230200 e24KC2ThetaAboveLeaf0011230201 e24KC2ThetaAboveLeaf0011230202 + e24KC2ThetaAboveLeaf0011230203 + +theorem e24KC2ThetaAboveNode001123021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00112302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00112302) + e24KC2ThetaAboveLeaf0011230210 e24KC2ThetaAboveLeaf0011230211 e24KC2ThetaAboveLeaf0011230212 + e24KC2ThetaAboveLeaf0011230213 + +theorem e24KC2ThetaAboveNode001123030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00112303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00112303) + e24KC2ThetaAboveLeaf0011230300 e24KC2ThetaAboveLeaf0011230301 e24KC2ThetaAboveLeaf0011230302 + e24KC2ThetaAboveLeaf0011230303 + +theorem e24KC2ThetaAboveNode001123031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00112303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00112303) + e24KC2ThetaAboveLeaf0011230310 e24KC2ThetaAboveLeaf0011230311 e24KC2ThetaAboveLeaf0011230312 + e24KC2ThetaAboveLeaf0011230313 + +theorem e24KC2ThetaAboveNode001123102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00112310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00112310) + e24KC2ThetaAboveLeaf0011231020 e24KC2ThetaAboveLeaf0011231021 e24KC2ThetaAboveLeaf0011231022 + e24KC2ThetaAboveLeaf0011231023 + +theorem e24KC2ThetaAboveNode001123103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00112310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00112310) + e24KC2ThetaAboveLeaf0011231030 e24KC2ThetaAboveLeaf0011231031 e24KC2ThetaAboveLeaf0011231032 + e24KC2ThetaAboveLeaf0011231033 + +theorem e24KC2ThetaAboveNode001123112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00112311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00112311) + e24KC2ThetaAboveLeaf0011231120 e24KC2ThetaAboveLeaf0011231121 e24KC2ThetaAboveLeaf0011231122 + e24KC2ThetaAboveLeaf0011231123 + +theorem e24KC2ThetaAboveNode001123113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00112311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00112311) + e24KC2ThetaAboveLeaf0011231130 e24KC2ThetaAboveLeaf0011231131 e24KC2ThetaAboveLeaf0011231132 + e24KC2ThetaAboveLeaf0011231133 + +theorem e24KC2ThetaAboveNode001123120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00112312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00112312) + e24KC2ThetaAboveLeaf0011231200 e24KC2ThetaAboveLeaf0011231201 e24KC2ThetaAboveLeaf0011231202 + e24KC2ThetaAboveLeaf0011231203 + +theorem e24KC2ThetaAboveNode001123121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00112312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00112312) + e24KC2ThetaAboveLeaf0011231210 e24KC2ThetaAboveLeaf0011231211 e24KC2ThetaAboveLeaf0011231212 + e24KC2ThetaAboveLeaf0011231213 + +theorem e24KC2ThetaAboveNode001123130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00112313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00112313) + e24KC2ThetaAboveLeaf0011231300 e24KC2ThetaAboveLeaf0011231301 e24KC2ThetaAboveLeaf0011231302 + e24KC2ThetaAboveLeaf0011231303 + +theorem e24KC2ThetaAboveNode001123131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00112313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00112313) + e24KC2ThetaAboveLeaf0011231310 e24KC2ThetaAboveLeaf0011231311 e24KC2ThetaAboveLeaf0011231312 + e24KC2ThetaAboveLeaf0011231313 + +theorem e24KC2ThetaAboveNode001132002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00113200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00113200) + e24KC2ThetaAboveLeaf0011320020 e24KC2ThetaAboveLeaf0011320021 e24KC2ThetaAboveLeaf0011320022 + e24KC2ThetaAboveLeaf0011320023 + +theorem e24KC2ThetaAboveNode001132003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00113200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00113200) + e24KC2ThetaAboveLeaf0011320030 e24KC2ThetaAboveLeaf0011320031 e24KC2ThetaAboveLeaf0011320032 + e24KC2ThetaAboveLeaf0011320033 + +theorem e24KC2ThetaAboveNode001132012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00113201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00113201) + e24KC2ThetaAboveLeaf0011320120 e24KC2ThetaAboveLeaf0011320121 e24KC2ThetaAboveLeaf0011320122 + e24KC2ThetaAboveLeaf0011320123 + +theorem e24KC2ThetaAboveNode001132013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00113201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00113201) + e24KC2ThetaAboveLeaf0011320130 e24KC2ThetaAboveLeaf0011320131 e24KC2ThetaAboveLeaf0011320132 + e24KC2ThetaAboveLeaf0011320133 + +theorem e24KC2ThetaAboveNode001132020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00113202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00113202) + e24KC2ThetaAboveLeaf0011320200 e24KC2ThetaAboveLeaf0011320201 e24KC2ThetaAboveLeaf0011320202 + e24KC2ThetaAboveLeaf0011320203 + +theorem e24KC2ThetaAboveNode001132021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00113202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00113202) + e24KC2ThetaAboveLeaf0011320210 e24KC2ThetaAboveLeaf0011320211 e24KC2ThetaAboveLeaf0011320212 + e24KC2ThetaAboveLeaf0011320213 + +theorem e24KC2ThetaAboveNode001132030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00113203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00113203) + e24KC2ThetaAboveLeaf0011320300 e24KC2ThetaAboveLeaf0011320301 e24KC2ThetaAboveLeaf0011320302 + e24KC2ThetaAboveLeaf0011320303 + +theorem e24KC2ThetaAboveNode001132031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00113203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00113203) + e24KC2ThetaAboveLeaf0011320310 e24KC2ThetaAboveLeaf0011320311 e24KC2ThetaAboveLeaf0011320312 + e24KC2ThetaAboveLeaf0011320313 + +theorem e24KC2ThetaAboveNode001132102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00113210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00113210) + e24KC2ThetaAboveLeaf0011321020 e24KC2ThetaAboveLeaf0011321021 e24KC2ThetaAboveLeaf0011321022 + e24KC2ThetaAboveLeaf0011321023 + +theorem e24KC2ThetaAboveNode001132103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00113210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00113210) + e24KC2ThetaAboveLeaf0011321030 e24KC2ThetaAboveLeaf0011321031 e24KC2ThetaAboveLeaf0011321032 + e24KC2ThetaAboveLeaf0011321033 + +theorem e24KC2ThetaAboveNode001132112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00113211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00113211) + e24KC2ThetaAboveLeaf0011321120 e24KC2ThetaAboveLeaf0011321121 e24KC2ThetaAboveLeaf0011321122 + e24KC2ThetaAboveLeaf0011321123 + +theorem e24KC2ThetaAboveNode001132113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00113211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00113211) + e24KC2ThetaAboveLeaf0011321130 e24KC2ThetaAboveLeaf0011321131 e24KC2ThetaAboveLeaf0011321132 + e24KC2ThetaAboveLeaf0011321133 + +theorem e24KC2ThetaAboveNode001132120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00113212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00113212) + e24KC2ThetaAboveLeaf0011321200 e24KC2ThetaAboveLeaf0011321201 e24KC2ThetaAboveLeaf0011321202 + e24KC2ThetaAboveLeaf0011321203 + +theorem e24KC2ThetaAboveNode001132121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00113212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00113212) + e24KC2ThetaAboveLeaf0011321210 e24KC2ThetaAboveLeaf0011321211 e24KC2ThetaAboveLeaf0011321212 + e24KC2ThetaAboveLeaf0011321213 + +theorem e24KC2ThetaAboveNode001132130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00113213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00113213) + e24KC2ThetaAboveLeaf0011321300 e24KC2ThetaAboveLeaf0011321301 e24KC2ThetaAboveLeaf0011321302 + e24KC2ThetaAboveLeaf0011321303 + +theorem e24KC2ThetaAboveNode001132131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00113213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00113213) + e24KC2ThetaAboveLeaf0011321310 e24KC2ThetaAboveLeaf0011321311 e24KC2ThetaAboveLeaf0011321312 + e24KC2ThetaAboveLeaf0011321313 + +theorem e24KC2ThetaAboveNode001133002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00113300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00113300) + e24KC2ThetaAboveLeaf0011330020 e24KC2ThetaAboveLeaf0011330021 e24KC2ThetaAboveLeaf0011330022 + e24KC2ThetaAboveLeaf0011330023 + +theorem e24KC2ThetaAboveNode001133003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00113300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00113300) + e24KC2ThetaAboveLeaf0011330030 e24KC2ThetaAboveLeaf0011330031 e24KC2ThetaAboveLeaf0011330032 + e24KC2ThetaAboveLeaf0011330033 + +theorem e24KC2ThetaAboveNode001133012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00113301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00113301) + e24KC2ThetaAboveLeaf0011330120 e24KC2ThetaAboveLeaf0011330121 e24KC2ThetaAboveLeaf0011330122 + e24KC2ThetaAboveLeaf0011330123 + +theorem e24KC2ThetaAboveNode001133013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00113301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00113301) + e24KC2ThetaAboveLeaf0011330130 e24KC2ThetaAboveLeaf0011330131 e24KC2ThetaAboveLeaf0011330132 + e24KC2ThetaAboveLeaf0011330133 + +theorem e24KC2ThetaAboveNode001133020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00113302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00113302) + e24KC2ThetaAboveLeaf0011330200 e24KC2ThetaAboveLeaf0011330201 e24KC2ThetaAboveLeaf0011330202 + e24KC2ThetaAboveLeaf0011330203 + +theorem e24KC2ThetaAboveNode001133021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00113302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00113302) + e24KC2ThetaAboveLeaf0011330210 e24KC2ThetaAboveLeaf0011330211 e24KC2ThetaAboveLeaf0011330212 + e24KC2ThetaAboveLeaf0011330213 + +theorem e24KC2ThetaAboveNode001133030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00113303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00113303) + e24KC2ThetaAboveLeaf0011330300 e24KC2ThetaAboveLeaf0011330301 e24KC2ThetaAboveLeaf0011330302 + e24KC2ThetaAboveLeaf0011330303 + +theorem e24KC2ThetaAboveNode001133031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00113303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00113303) + e24KC2ThetaAboveLeaf0011330310 e24KC2ThetaAboveLeaf0011330311 e24KC2ThetaAboveLeaf0011330312 + e24KC2ThetaAboveLeaf0011330313 + +theorem e24KC2ThetaAboveNode001133102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00113310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00113310) + e24KC2ThetaAboveLeaf0011331020 e24KC2ThetaAboveLeaf0011331021 e24KC2ThetaAboveLeaf0011331022 + e24KC2ThetaAboveLeaf0011331023 + +theorem e24KC2ThetaAboveNode001133103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00113310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00113310) + e24KC2ThetaAboveLeaf0011331030 e24KC2ThetaAboveLeaf0011331031 e24KC2ThetaAboveLeaf0011331032 + e24KC2ThetaAboveLeaf0011331033 + +theorem e24KC2ThetaAboveNode001133112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell00113311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell00113311) + e24KC2ThetaAboveLeaf0011331120 e24KC2ThetaAboveLeaf0011331121 e24KC2ThetaAboveLeaf0011331122 + e24KC2ThetaAboveLeaf0011331123 + +theorem e24KC2ThetaAboveNode001133113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell00113311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell00113311) + e24KC2ThetaAboveLeaf0011331130 e24KC2ThetaAboveLeaf0011331131 e24KC2ThetaAboveLeaf0011331132 + e24KC2ThetaAboveLeaf0011331133 + +theorem e24KC2ThetaAboveNode001133120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00113312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00113312) + e24KC2ThetaAboveLeaf0011331200 e24KC2ThetaAboveLeaf0011331201 e24KC2ThetaAboveLeaf0011331202 + e24KC2ThetaAboveLeaf0011331203 + +theorem e24KC2ThetaAboveNode001133121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00113312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00113312) + e24KC2ThetaAboveLeaf0011331210 e24KC2ThetaAboveLeaf0011331211 e24KC2ThetaAboveLeaf0011331212 + e24KC2ThetaAboveLeaf0011331213 + +theorem e24KC2ThetaAboveNode001133130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell00113313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell00113313) + e24KC2ThetaAboveLeaf0011331300 e24KC2ThetaAboveLeaf0011331301 e24KC2ThetaAboveLeaf0011331302 + e24KC2ThetaAboveLeaf0011331303 + +theorem e24KC2ThetaAboveNode001133131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell00113313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell00113313) + e24KC2ThetaAboveLeaf0011331310 e24KC2ThetaAboveLeaf0011331311 e24KC2ThetaAboveLeaf0011331312 + e24KC2ThetaAboveLeaf0011331313 + +theorem e24KC2ThetaAboveNode010022002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01002200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01002200) + e24KC2ThetaAboveLeaf0100220020 e24KC2ThetaAboveLeaf0100220021 e24KC2ThetaAboveLeaf0100220022 + e24KC2ThetaAboveLeaf0100220023 + +theorem e24KC2ThetaAboveNode010022003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01002200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01002200) + e24KC2ThetaAboveLeaf0100220030 e24KC2ThetaAboveLeaf0100220031 e24KC2ThetaAboveLeaf0100220032 + e24KC2ThetaAboveLeaf0100220033 + +theorem e24KC2ThetaAboveNode010022012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01002201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01002201) + e24KC2ThetaAboveLeaf0100220120 e24KC2ThetaAboveLeaf0100220121 e24KC2ThetaAboveLeaf0100220122 + e24KC2ThetaAboveLeaf0100220123 + +theorem e24KC2ThetaAboveNode010022013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01002201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01002201) + e24KC2ThetaAboveLeaf0100220130 e24KC2ThetaAboveLeaf0100220131 e24KC2ThetaAboveLeaf0100220132 + e24KC2ThetaAboveLeaf0100220133 + +theorem e24KC2ThetaAboveNode010022020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01002202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01002202) + e24KC2ThetaAboveLeaf0100220200 e24KC2ThetaAboveLeaf0100220201 e24KC2ThetaAboveLeaf0100220202 + e24KC2ThetaAboveLeaf0100220203 + +theorem e24KC2ThetaAboveNode010022021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01002202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01002202) + e24KC2ThetaAboveLeaf0100220210 e24KC2ThetaAboveLeaf0100220211 e24KC2ThetaAboveLeaf0100220212 + e24KC2ThetaAboveLeaf0100220213 + +theorem e24KC2ThetaAboveNode010022030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01002203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01002203) + e24KC2ThetaAboveLeaf0100220300 e24KC2ThetaAboveLeaf0100220301 e24KC2ThetaAboveLeaf0100220302 + e24KC2ThetaAboveLeaf0100220303 + +theorem e24KC2ThetaAboveNode010022031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01002203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01002203) + e24KC2ThetaAboveLeaf0100220310 e24KC2ThetaAboveLeaf0100220311 e24KC2ThetaAboveLeaf0100220312 + e24KC2ThetaAboveLeaf0100220313 + +theorem e24KC2ThetaAboveNode010022102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01002210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01002210) + e24KC2ThetaAboveLeaf0100221020 e24KC2ThetaAboveLeaf0100221021 e24KC2ThetaAboveLeaf0100221022 + e24KC2ThetaAboveLeaf0100221023 + +theorem e24KC2ThetaAboveNode010022103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01002210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01002210) + e24KC2ThetaAboveLeaf0100221030 e24KC2ThetaAboveLeaf0100221031 e24KC2ThetaAboveLeaf0100221032 + e24KC2ThetaAboveLeaf0100221033 + +theorem e24KC2ThetaAboveNode010022112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01002211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01002211) + e24KC2ThetaAboveLeaf0100221120 e24KC2ThetaAboveLeaf0100221121 e24KC2ThetaAboveLeaf0100221122 + e24KC2ThetaAboveLeaf0100221123 + +theorem e24KC2ThetaAboveNode010022113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01002211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01002211) + e24KC2ThetaAboveLeaf0100221130 e24KC2ThetaAboveLeaf0100221131 e24KC2ThetaAboveLeaf0100221132 + e24KC2ThetaAboveLeaf0100221133 + +theorem e24KC2ThetaAboveNode010022120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01002212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01002212) + e24KC2ThetaAboveLeaf0100221200 e24KC2ThetaAboveLeaf0100221201 e24KC2ThetaAboveLeaf0100221202 + e24KC2ThetaAboveLeaf0100221203 + +theorem e24KC2ThetaAboveNode010022121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01002212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01002212) + e24KC2ThetaAboveLeaf0100221210 e24KC2ThetaAboveLeaf0100221211 e24KC2ThetaAboveLeaf0100221212 + e24KC2ThetaAboveLeaf0100221213 + +theorem e24KC2ThetaAboveNode010022130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01002213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01002213) + e24KC2ThetaAboveLeaf0100221300 e24KC2ThetaAboveLeaf0100221301 e24KC2ThetaAboveLeaf0100221302 + e24KC2ThetaAboveLeaf0100221303 + +theorem e24KC2ThetaAboveNode010022131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01002213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01002213) + e24KC2ThetaAboveLeaf0100221310 e24KC2ThetaAboveLeaf0100221311 e24KC2ThetaAboveLeaf0100221312 + e24KC2ThetaAboveLeaf0100221313 + +theorem e24KC2ThetaAboveNode010023002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01002300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01002300) + e24KC2ThetaAboveLeaf0100230020 e24KC2ThetaAboveLeaf0100230021 e24KC2ThetaAboveLeaf0100230022 + e24KC2ThetaAboveLeaf0100230023 + +theorem e24KC2ThetaAboveNode010023003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01002300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01002300) + e24KC2ThetaAboveLeaf0100230030 e24KC2ThetaAboveLeaf0100230031 e24KC2ThetaAboveLeaf0100230032 + e24KC2ThetaAboveLeaf0100230033 + +theorem e24KC2ThetaAboveNode010023012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01002301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01002301) + e24KC2ThetaAboveLeaf0100230120 e24KC2ThetaAboveLeaf0100230121 e24KC2ThetaAboveLeaf0100230122 + e24KC2ThetaAboveLeaf0100230123 + +theorem e24KC2ThetaAboveNode010023013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01002301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01002301) + e24KC2ThetaAboveLeaf0100230130 e24KC2ThetaAboveLeaf0100230131 e24KC2ThetaAboveLeaf0100230132 + e24KC2ThetaAboveLeaf0100230133 + +theorem e24KC2ThetaAboveNode010023020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01002302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01002302) + e24KC2ThetaAboveLeaf0100230200 e24KC2ThetaAboveLeaf0100230201 e24KC2ThetaAboveLeaf0100230202 + e24KC2ThetaAboveLeaf0100230203 + +theorem e24KC2ThetaAboveNode010023021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01002302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01002302) + e24KC2ThetaAboveLeaf0100230210 e24KC2ThetaAboveLeaf0100230211 e24KC2ThetaAboveLeaf0100230212 + e24KC2ThetaAboveLeaf0100230213 + +theorem e24KC2ThetaAboveNode010023030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01002303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01002303) + e24KC2ThetaAboveLeaf0100230300 e24KC2ThetaAboveLeaf0100230301 e24KC2ThetaAboveLeaf0100230302 + e24KC2ThetaAboveLeaf0100230303 + +theorem e24KC2ThetaAboveNode010023031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01002303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01002303) + e24KC2ThetaAboveLeaf0100230310 e24KC2ThetaAboveLeaf0100230311 e24KC2ThetaAboveLeaf0100230312 + e24KC2ThetaAboveLeaf0100230313 + +theorem e24KC2ThetaAboveNode010023032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01002303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01002303) + e24KC2ThetaAboveLeaf0100230320 e24KC2ThetaAboveLeaf0100230321 e24KC2ThetaAboveLeaf0100230322 + e24KC2ThetaAboveLeaf0100230323 + +theorem e24KC2ThetaAboveNode010023033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01002303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01002303) + e24KC2ThetaAboveLeaf0100230330 e24KC2ThetaAboveLeaf0100230331 e24KC2ThetaAboveLeaf0100230332 + e24KC2ThetaAboveLeaf0100230333 + +theorem e24KC2ThetaAboveNode010023102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01002310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01002310) + e24KC2ThetaAboveLeaf0100231020 e24KC2ThetaAboveLeaf0100231021 e24KC2ThetaAboveLeaf0100231022 + e24KC2ThetaAboveLeaf0100231023 + +theorem e24KC2ThetaAboveNode010023103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01002310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01002310) + e24KC2ThetaAboveLeaf0100231030 e24KC2ThetaAboveLeaf0100231031 e24KC2ThetaAboveLeaf0100231032 + e24KC2ThetaAboveLeaf0100231033 + +theorem e24KC2ThetaAboveNode010023112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01002311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01002311) + e24KC2ThetaAboveLeaf0100231120 e24KC2ThetaAboveLeaf0100231121 e24KC2ThetaAboveLeaf0100231122 + e24KC2ThetaAboveLeaf0100231123 + +theorem e24KC2ThetaAboveNode010023113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01002311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01002311) + e24KC2ThetaAboveLeaf0100231130 e24KC2ThetaAboveLeaf0100231131 e24KC2ThetaAboveLeaf0100231132 + e24KC2ThetaAboveLeaf0100231133 + +theorem e24KC2ThetaAboveNode010023120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01002312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01002312) + e24KC2ThetaAboveLeaf0100231200 e24KC2ThetaAboveLeaf0100231201 e24KC2ThetaAboveLeaf0100231202 + e24KC2ThetaAboveLeaf0100231203 + +theorem e24KC2ThetaAboveNode010023121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01002312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01002312) + e24KC2ThetaAboveLeaf0100231210 e24KC2ThetaAboveLeaf0100231211 e24KC2ThetaAboveLeaf0100231212 + e24KC2ThetaAboveLeaf0100231213 + +theorem e24KC2ThetaAboveNode010023122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01002312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01002312) + e24KC2ThetaAboveLeaf0100231220 e24KC2ThetaAboveLeaf0100231221 e24KC2ThetaAboveLeaf0100231222 + e24KC2ThetaAboveLeaf0100231223 + +theorem e24KC2ThetaAboveNode010023123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01002312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01002312) + e24KC2ThetaAboveLeaf0100231230 e24KC2ThetaAboveLeaf0100231231 e24KC2ThetaAboveLeaf0100231232 + e24KC2ThetaAboveLeaf0100231233 + +theorem e24KC2ThetaAboveNode010023130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01002313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01002313) + e24KC2ThetaAboveLeaf0100231300 e24KC2ThetaAboveLeaf0100231301 e24KC2ThetaAboveLeaf0100231302 + e24KC2ThetaAboveLeaf0100231303 + +theorem e24KC2ThetaAboveNode010023131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01002313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01002313) + e24KC2ThetaAboveLeaf0100231310 e24KC2ThetaAboveLeaf0100231311 e24KC2ThetaAboveLeaf0100231312 + e24KC2ThetaAboveLeaf0100231313 + +theorem e24KC2ThetaAboveNode010023132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01002313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01002313) + e24KC2ThetaAboveLeaf0100231320 e24KC2ThetaAboveLeaf0100231321 e24KC2ThetaAboveLeaf0100231322 + e24KC2ThetaAboveLeaf0100231323 + +theorem e24KC2ThetaAboveNode010023133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01002313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01002313) + e24KC2ThetaAboveLeaf0100231330 e24KC2ThetaAboveLeaf0100231331 e24KC2ThetaAboveLeaf0100231332 + e24KC2ThetaAboveLeaf0100231333 + +theorem e24KC2ThetaAboveNode010032002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01003200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01003200) + e24KC2ThetaAboveLeaf0100320020 e24KC2ThetaAboveLeaf0100320021 e24KC2ThetaAboveLeaf0100320022 + e24KC2ThetaAboveLeaf0100320023 + +theorem e24KC2ThetaAboveNode010032003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01003200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01003200) + e24KC2ThetaAboveLeaf0100320030 e24KC2ThetaAboveLeaf0100320031 e24KC2ThetaAboveLeaf0100320032 + e24KC2ThetaAboveLeaf0100320033 + +theorem e24KC2ThetaAboveNode010032012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01003201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01003201) + e24KC2ThetaAboveLeaf0100320120 e24KC2ThetaAboveLeaf0100320121 e24KC2ThetaAboveLeaf0100320122 + e24KC2ThetaAboveLeaf0100320123 + +theorem e24KC2ThetaAboveNode010032013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01003201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01003201) + e24KC2ThetaAboveLeaf0100320130 e24KC2ThetaAboveLeaf0100320131 e24KC2ThetaAboveLeaf0100320132 + e24KC2ThetaAboveLeaf0100320133 + +theorem e24KC2ThetaAboveNode010032020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01003202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01003202) + e24KC2ThetaAboveLeaf0100320200 e24KC2ThetaAboveLeaf0100320201 e24KC2ThetaAboveLeaf0100320202 + e24KC2ThetaAboveLeaf0100320203 + +theorem e24KC2ThetaAboveNode010032021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01003202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01003202) + e24KC2ThetaAboveLeaf0100320210 e24KC2ThetaAboveLeaf0100320211 e24KC2ThetaAboveLeaf0100320212 + e24KC2ThetaAboveLeaf0100320213 + +theorem e24KC2ThetaAboveNode010032022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01003202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01003202) + e24KC2ThetaAboveLeaf0100320220 e24KC2ThetaAboveLeaf0100320221 e24KC2ThetaAboveLeaf0100320222 + e24KC2ThetaAboveLeaf0100320223 + +theorem e24KC2ThetaAboveNode010032023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01003202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01003202) + e24KC2ThetaAboveLeaf0100320230 e24KC2ThetaAboveLeaf0100320231 e24KC2ThetaAboveLeaf0100320232 + e24KC2ThetaAboveLeaf0100320233 + +theorem e24KC2ThetaAboveNode010032030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01003203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01003203) + e24KC2ThetaAboveLeaf0100320300 e24KC2ThetaAboveLeaf0100320301 e24KC2ThetaAboveLeaf0100320302 + e24KC2ThetaAboveLeaf0100320303 + +theorem e24KC2ThetaAboveNode010032031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01003203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01003203) + e24KC2ThetaAboveLeaf0100320310 e24KC2ThetaAboveLeaf0100320311 e24KC2ThetaAboveLeaf0100320312 + e24KC2ThetaAboveLeaf0100320313 + +theorem e24KC2ThetaAboveNode010032032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01003203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01003203) + e24KC2ThetaAboveLeaf0100320320 e24KC2ThetaAboveLeaf0100320321 e24KC2ThetaAboveLeaf0100320322 + e24KC2ThetaAboveLeaf0100320323 + +theorem e24KC2ThetaAboveNode010032033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01003203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01003203) + e24KC2ThetaAboveLeaf0100320330 e24KC2ThetaAboveLeaf0100320331 e24KC2ThetaAboveLeaf0100320332 + e24KC2ThetaAboveLeaf0100320333 + +theorem e24KC2ThetaAboveNode010032102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01003210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01003210) + e24KC2ThetaAboveLeaf0100321020 e24KC2ThetaAboveLeaf0100321021 e24KC2ThetaAboveLeaf0100321022 + e24KC2ThetaAboveLeaf0100321023 + +theorem e24KC2ThetaAboveNode010032103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01003210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01003210) + e24KC2ThetaAboveLeaf0100321030 e24KC2ThetaAboveLeaf0100321031 e24KC2ThetaAboveLeaf0100321032 + e24KC2ThetaAboveLeaf0100321033 + +theorem e24KC2ThetaAboveNode010032112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01003211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01003211) + e24KC2ThetaAboveLeaf0100321120 e24KC2ThetaAboveLeaf0100321121 e24KC2ThetaAboveLeaf0100321122 + e24KC2ThetaAboveLeaf0100321123 + +theorem e24KC2ThetaAboveNode010032113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01003211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01003211) + e24KC2ThetaAboveLeaf0100321130 e24KC2ThetaAboveLeaf0100321131 e24KC2ThetaAboveLeaf0100321132 + e24KC2ThetaAboveLeaf0100321133 + +theorem e24KC2ThetaAboveNode010032120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01003212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01003212) + e24KC2ThetaAboveLeaf0100321200 e24KC2ThetaAboveLeaf0100321201 e24KC2ThetaAboveLeaf0100321202 + e24KC2ThetaAboveLeaf0100321203 + +theorem e24KC2ThetaAboveNode010032121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01003212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01003212) + e24KC2ThetaAboveLeaf0100321210 e24KC2ThetaAboveLeaf0100321211 e24KC2ThetaAboveLeaf0100321212 + e24KC2ThetaAboveLeaf0100321213 + +theorem e24KC2ThetaAboveNode010032122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01003212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01003212) + e24KC2ThetaAboveLeaf0100321220 e24KC2ThetaAboveLeaf0100321221 e24KC2ThetaAboveLeaf0100321222 + e24KC2ThetaAboveLeaf0100321223 + +theorem e24KC2ThetaAboveNode010032123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01003212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01003212) + e24KC2ThetaAboveLeaf0100321230 e24KC2ThetaAboveLeaf0100321231 e24KC2ThetaAboveLeaf0100321232 + e24KC2ThetaAboveLeaf0100321233 + +theorem e24KC2ThetaAboveNode010032130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01003213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01003213) + e24KC2ThetaAboveLeaf0100321300 e24KC2ThetaAboveLeaf0100321301 e24KC2ThetaAboveLeaf0100321302 + e24KC2ThetaAboveLeaf0100321303 + +theorem e24KC2ThetaAboveNode010032131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01003213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01003213) + e24KC2ThetaAboveLeaf0100321310 e24KC2ThetaAboveLeaf0100321311 e24KC2ThetaAboveLeaf0100321312 + e24KC2ThetaAboveLeaf0100321313 + +theorem e24KC2ThetaAboveNode010032132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01003213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01003213) + e24KC2ThetaAboveLeaf0100321320 e24KC2ThetaAboveLeaf0100321321 e24KC2ThetaAboveLeaf0100321322 + e24KC2ThetaAboveLeaf0100321323 + +theorem e24KC2ThetaAboveNode010032133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01003213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01003213) + e24KC2ThetaAboveLeaf0100321330 e24KC2ThetaAboveLeaf0100321331 e24KC2ThetaAboveLeaf0100321332 + e24KC2ThetaAboveLeaf0100321333 + +theorem e24KC2ThetaAboveNode010033002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01003300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01003300) + e24KC2ThetaAboveLeaf0100330020 e24KC2ThetaAboveLeaf0100330021 e24KC2ThetaAboveLeaf0100330022 + e24KC2ThetaAboveLeaf0100330023 + +theorem e24KC2ThetaAboveNode010033003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01003300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01003300) + e24KC2ThetaAboveLeaf0100330030 e24KC2ThetaAboveLeaf0100330031 e24KC2ThetaAboveLeaf0100330032 + e24KC2ThetaAboveLeaf0100330033 + +theorem e24KC2ThetaAboveNode010033012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01003301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01003301) + e24KC2ThetaAboveLeaf0100330120 e24KC2ThetaAboveLeaf0100330121 e24KC2ThetaAboveLeaf0100330122 + e24KC2ThetaAboveLeaf0100330123 + +theorem e24KC2ThetaAboveNode010033013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01003301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01003301) + e24KC2ThetaAboveLeaf0100330130 e24KC2ThetaAboveLeaf0100330131 e24KC2ThetaAboveLeaf0100330132 + e24KC2ThetaAboveLeaf0100330133 + +theorem e24KC2ThetaAboveNode010033020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01003302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01003302) + e24KC2ThetaAboveLeaf0100330200 e24KC2ThetaAboveLeaf0100330201 e24KC2ThetaAboveLeaf0100330202 + e24KC2ThetaAboveLeaf0100330203 + +theorem e24KC2ThetaAboveNode010033021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01003302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01003302) + e24KC2ThetaAboveLeaf0100330210 e24KC2ThetaAboveLeaf0100330211 e24KC2ThetaAboveLeaf0100330212 + e24KC2ThetaAboveLeaf0100330213 + +theorem e24KC2ThetaAboveNode010033022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01003302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01003302) + e24KC2ThetaAboveLeaf0100330220 e24KC2ThetaAboveLeaf0100330221 e24KC2ThetaAboveLeaf0100330222 + e24KC2ThetaAboveLeaf0100330223 + +theorem e24KC2ThetaAboveNode010033023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01003302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01003302) + e24KC2ThetaAboveLeaf0100330230 e24KC2ThetaAboveLeaf0100330231 e24KC2ThetaAboveLeaf0100330232 + e24KC2ThetaAboveLeaf0100330233 + +theorem e24KC2ThetaAboveNode010033030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01003303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01003303) + e24KC2ThetaAboveLeaf0100330300 e24KC2ThetaAboveLeaf0100330301 e24KC2ThetaAboveLeaf0100330302 + e24KC2ThetaAboveLeaf0100330303 + +theorem e24KC2ThetaAboveNode010033031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01003303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01003303) + e24KC2ThetaAboveLeaf0100330310 e24KC2ThetaAboveLeaf0100330311 e24KC2ThetaAboveLeaf0100330312 + e24KC2ThetaAboveLeaf0100330313 + +theorem e24KC2ThetaAboveNode010033032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01003303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01003303) + e24KC2ThetaAboveLeaf0100330320 e24KC2ThetaAboveLeaf0100330321 e24KC2ThetaAboveLeaf0100330322 + e24KC2ThetaAboveLeaf0100330323 + +theorem e24KC2ThetaAboveNode010033033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01003303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01003303) + e24KC2ThetaAboveLeaf0100330330 e24KC2ThetaAboveLeaf0100330331 e24KC2ThetaAboveLeaf0100330332 + e24KC2ThetaAboveLeaf0100330333 + +theorem e24KC2ThetaAboveNode010033102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01003310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01003310) + e24KC2ThetaAboveLeaf0100331020 e24KC2ThetaAboveLeaf0100331021 e24KC2ThetaAboveLeaf0100331022 + e24KC2ThetaAboveLeaf0100331023 + +theorem e24KC2ThetaAboveNode010033103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01003310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01003310) + e24KC2ThetaAboveLeaf0100331030 e24KC2ThetaAboveLeaf0100331031 e24KC2ThetaAboveLeaf0100331032 + e24KC2ThetaAboveLeaf0100331033 + +theorem e24KC2ThetaAboveNode010033112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01003311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01003311) + e24KC2ThetaAboveLeaf0100331120 e24KC2ThetaAboveLeaf0100331121 e24KC2ThetaAboveLeaf0100331122 + e24KC2ThetaAboveLeaf0100331123 + +theorem e24KC2ThetaAboveNode010033113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01003311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01003311) + e24KC2ThetaAboveLeaf0100331130 e24KC2ThetaAboveLeaf0100331131 e24KC2ThetaAboveLeaf0100331132 + e24KC2ThetaAboveLeaf0100331133 + +theorem e24KC2ThetaAboveNode010033120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01003312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01003312) + e24KC2ThetaAboveLeaf0100331200 e24KC2ThetaAboveLeaf0100331201 e24KC2ThetaAboveLeaf0100331202 + e24KC2ThetaAboveLeaf0100331203 + +theorem e24KC2ThetaAboveNode010033121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01003312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01003312) + e24KC2ThetaAboveLeaf0100331210 e24KC2ThetaAboveLeaf0100331211 e24KC2ThetaAboveLeaf0100331212 + e24KC2ThetaAboveLeaf0100331213 + +theorem e24KC2ThetaAboveNode010033122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01003312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01003312) + e24KC2ThetaAboveLeaf0100331220 e24KC2ThetaAboveLeaf0100331221 e24KC2ThetaAboveLeaf0100331222 + e24KC2ThetaAboveLeaf0100331223 + +theorem e24KC2ThetaAboveNode010033123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01003312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01003312) + e24KC2ThetaAboveLeaf0100331230 e24KC2ThetaAboveLeaf0100331231 e24KC2ThetaAboveLeaf0100331232 + e24KC2ThetaAboveLeaf0100331233 + +theorem e24KC2ThetaAboveNode010033130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01003313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01003313) + e24KC2ThetaAboveLeaf0100331300 e24KC2ThetaAboveLeaf0100331301 e24KC2ThetaAboveLeaf0100331302 + e24KC2ThetaAboveLeaf0100331303 + +theorem e24KC2ThetaAboveNode010033131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01003313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01003313) + e24KC2ThetaAboveLeaf0100331310 e24KC2ThetaAboveLeaf0100331311 e24KC2ThetaAboveLeaf0100331312 + e24KC2ThetaAboveLeaf0100331313 + +theorem e24KC2ThetaAboveNode010033132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01003313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01003313) + e24KC2ThetaAboveLeaf0100331320 e24KC2ThetaAboveLeaf0100331321 e24KC2ThetaAboveLeaf0100331322 + e24KC2ThetaAboveLeaf0100331323 + +theorem e24KC2ThetaAboveNode010033133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01003313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01003313) + e24KC2ThetaAboveLeaf0100331330 e24KC2ThetaAboveLeaf0100331331 e24KC2ThetaAboveLeaf0100331332 + e24KC2ThetaAboveLeaf0100331333 + +theorem e24KC2ThetaAboveNode010122002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01012200) + e24KC2ThetaAboveLeaf0101220020 e24KC2ThetaAboveLeaf0101220021 e24KC2ThetaAboveLeaf0101220022 + e24KC2ThetaAboveLeaf0101220023 + +theorem e24KC2ThetaAboveNode010122003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01012200) + e24KC2ThetaAboveLeaf0101220030 e24KC2ThetaAboveLeaf0101220031 e24KC2ThetaAboveLeaf0101220032 + e24KC2ThetaAboveLeaf0101220033 + +theorem e24KC2ThetaAboveNode010122012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01012201) + e24KC2ThetaAboveLeaf0101220120 e24KC2ThetaAboveLeaf0101220121 e24KC2ThetaAboveLeaf0101220122 + e24KC2ThetaAboveLeaf0101220123 + +theorem e24KC2ThetaAboveNode010122013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01012201) + e24KC2ThetaAboveLeaf0101220130 e24KC2ThetaAboveLeaf0101220131 e24KC2ThetaAboveLeaf0101220132 + e24KC2ThetaAboveLeaf0101220133 + +theorem e24KC2ThetaAboveNode010122020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01012202) + e24KC2ThetaAboveLeaf0101220200 e24KC2ThetaAboveLeaf0101220201 e24KC2ThetaAboveLeaf0101220202 + e24KC2ThetaAboveLeaf0101220203 + +theorem e24KC2ThetaAboveNode010122021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01012202) + e24KC2ThetaAboveLeaf0101220210 e24KC2ThetaAboveLeaf0101220211 e24KC2ThetaAboveLeaf0101220212 + e24KC2ThetaAboveLeaf0101220213 + +theorem e24KC2ThetaAboveNode010122022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01012202) + e24KC2ThetaAboveLeaf0101220220 e24KC2ThetaAboveLeaf0101220221 e24KC2ThetaAboveLeaf0101220222 + e24KC2ThetaAboveLeaf0101220223 + +theorem e24KC2ThetaAboveNode010122023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01012202) + e24KC2ThetaAboveLeaf0101220230 e24KC2ThetaAboveLeaf0101220231 e24KC2ThetaAboveLeaf0101220232 + e24KC2ThetaAboveLeaf0101220233 + +theorem e24KC2ThetaAboveNode010122030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01012203) + e24KC2ThetaAboveLeaf0101220300 e24KC2ThetaAboveLeaf0101220301 e24KC2ThetaAboveLeaf0101220302 + e24KC2ThetaAboveLeaf0101220303 + +theorem e24KC2ThetaAboveNode010122031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01012203) + e24KC2ThetaAboveLeaf0101220310 e24KC2ThetaAboveLeaf0101220311 e24KC2ThetaAboveLeaf0101220312 + e24KC2ThetaAboveLeaf0101220313 + +theorem e24KC2ThetaAboveNode010122032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01012203) + e24KC2ThetaAboveLeaf0101220320 e24KC2ThetaAboveLeaf0101220321 e24KC2ThetaAboveLeaf0101220322 + e24KC2ThetaAboveLeaf0101220323 + +theorem e24KC2ThetaAboveNode010122033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01012203) + e24KC2ThetaAboveLeaf0101220330 e24KC2ThetaAboveLeaf0101220331 e24KC2ThetaAboveLeaf0101220332 + e24KC2ThetaAboveLeaf0101220333 + +theorem e24KC2ThetaAboveNode010122102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01012210) + e24KC2ThetaAboveLeaf0101221020 e24KC2ThetaAboveLeaf0101221021 e24KC2ThetaAboveLeaf0101221022 + e24KC2ThetaAboveLeaf0101221023 + +theorem e24KC2ThetaAboveNode010122103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01012210) + e24KC2ThetaAboveLeaf0101221030 e24KC2ThetaAboveLeaf0101221031 e24KC2ThetaAboveLeaf0101221032 + e24KC2ThetaAboveLeaf0101221033 + +theorem e24KC2ThetaAboveNode010122112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01012211) + e24KC2ThetaAboveLeaf0101221120 e24KC2ThetaAboveLeaf0101221121 e24KC2ThetaAboveLeaf0101221122 + e24KC2ThetaAboveLeaf0101221123 + +theorem e24KC2ThetaAboveNode010122113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01012211) + e24KC2ThetaAboveLeaf0101221130 e24KC2ThetaAboveLeaf0101221131 e24KC2ThetaAboveLeaf0101221132 + e24KC2ThetaAboveLeaf0101221133 + +theorem e24KC2ThetaAboveNode010122120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01012212) + e24KC2ThetaAboveLeaf0101221200 e24KC2ThetaAboveLeaf0101221201 e24KC2ThetaAboveLeaf0101221202 + e24KC2ThetaAboveLeaf0101221203 + +theorem e24KC2ThetaAboveNode010122121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01012212) + e24KC2ThetaAboveLeaf0101221210 e24KC2ThetaAboveLeaf0101221211 e24KC2ThetaAboveLeaf0101221212 + e24KC2ThetaAboveLeaf0101221213 + +theorem e24KC2ThetaAboveNode010122122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01012212) + e24KC2ThetaAboveLeaf0101221220 e24KC2ThetaAboveLeaf0101221221 e24KC2ThetaAboveLeaf0101221222 + e24KC2ThetaAboveLeaf0101221223 + +theorem e24KC2ThetaAboveNode010122123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01012212) + e24KC2ThetaAboveLeaf0101221230 e24KC2ThetaAboveLeaf0101221231 e24KC2ThetaAboveLeaf0101221232 + e24KC2ThetaAboveLeaf0101221233 + +theorem e24KC2ThetaAboveNode010122130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01012213) + e24KC2ThetaAboveLeaf0101221300 e24KC2ThetaAboveLeaf0101221301 e24KC2ThetaAboveLeaf0101221302 + e24KC2ThetaAboveLeaf0101221303 + +theorem e24KC2ThetaAboveNode010122131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01012213) + e24KC2ThetaAboveLeaf0101221310 e24KC2ThetaAboveLeaf0101221311 e24KC2ThetaAboveLeaf0101221312 + e24KC2ThetaAboveLeaf0101221313 + +theorem e24KC2ThetaAboveNode010122132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01012213) + e24KC2ThetaAboveLeaf0101221320 e24KC2ThetaAboveLeaf0101221321 e24KC2ThetaAboveLeaf0101221322 + e24KC2ThetaAboveLeaf0101221323 + +theorem e24KC2ThetaAboveNode010122133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01012213) + e24KC2ThetaAboveLeaf0101221330 e24KC2ThetaAboveLeaf0101221331 e24KC2ThetaAboveLeaf0101221332 + e24KC2ThetaAboveLeaf0101221333 + +theorem e24KC2ThetaAboveNode010123002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01012300) + e24KC2ThetaAboveLeaf0101230020 e24KC2ThetaAboveLeaf0101230021 e24KC2ThetaAboveLeaf0101230022 + e24KC2ThetaAboveLeaf0101230023 + +theorem e24KC2ThetaAboveNode010123003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01012300) + e24KC2ThetaAboveLeaf0101230030 e24KC2ThetaAboveLeaf0101230031 e24KC2ThetaAboveLeaf0101230032 + e24KC2ThetaAboveLeaf0101230033 + +theorem e24KC2ThetaAboveNode010123012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01012301) + e24KC2ThetaAboveLeaf0101230120 e24KC2ThetaAboveLeaf0101230121 e24KC2ThetaAboveLeaf0101230122 + e24KC2ThetaAboveLeaf0101230123 + +theorem e24KC2ThetaAboveNode010123013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01012301) + e24KC2ThetaAboveLeaf0101230130 e24KC2ThetaAboveLeaf0101230131 e24KC2ThetaAboveLeaf0101230132 + e24KC2ThetaAboveLeaf0101230133 + +theorem e24KC2ThetaAboveNode010123020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01012302) + e24KC2ThetaAboveLeaf0101230200 e24KC2ThetaAboveLeaf0101230201 e24KC2ThetaAboveLeaf0101230202 + e24KC2ThetaAboveLeaf0101230203 + +theorem e24KC2ThetaAboveNode010123021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01012302) + e24KC2ThetaAboveLeaf0101230210 e24KC2ThetaAboveLeaf0101230211 e24KC2ThetaAboveLeaf0101230212 + e24KC2ThetaAboveLeaf0101230213 + +theorem e24KC2ThetaAboveNode010123022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01012302) + e24KC2ThetaAboveLeaf0101230220 e24KC2ThetaAboveLeaf0101230221 e24KC2ThetaAboveLeaf0101230222 + e24KC2ThetaAboveLeaf0101230223 + +theorem e24KC2ThetaAboveNode010123023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01012302) + e24KC2ThetaAboveLeaf0101230230 e24KC2ThetaAboveLeaf0101230231 e24KC2ThetaAboveLeaf0101230232 + e24KC2ThetaAboveLeaf0101230233 + +theorem e24KC2ThetaAboveNode010123030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01012303) + e24KC2ThetaAboveLeaf0101230300 e24KC2ThetaAboveLeaf0101230301 e24KC2ThetaAboveLeaf0101230302 + e24KC2ThetaAboveLeaf0101230303 + +theorem e24KC2ThetaAboveNode010123031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01012303) + e24KC2ThetaAboveLeaf0101230310 e24KC2ThetaAboveLeaf0101230311 e24KC2ThetaAboveLeaf0101230312 + e24KC2ThetaAboveLeaf0101230313 + +theorem e24KC2ThetaAboveNode010123032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01012303) + e24KC2ThetaAboveLeaf0101230320 e24KC2ThetaAboveLeaf0101230321 e24KC2ThetaAboveLeaf0101230322 + e24KC2ThetaAboveLeaf0101230323 + +theorem e24KC2ThetaAboveNode010123033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01012303) + e24KC2ThetaAboveLeaf0101230330 e24KC2ThetaAboveLeaf0101230331 e24KC2ThetaAboveLeaf0101230332 + e24KC2ThetaAboveLeaf0101230333 + +theorem e24KC2ThetaAboveNode010123102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01012310) + e24KC2ThetaAboveLeaf0101231020 e24KC2ThetaAboveLeaf0101231021 e24KC2ThetaAboveLeaf0101231022 + e24KC2ThetaAboveLeaf0101231023 + +theorem e24KC2ThetaAboveNode010123103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01012310) + e24KC2ThetaAboveLeaf0101231030 e24KC2ThetaAboveLeaf0101231031 e24KC2ThetaAboveLeaf0101231032 + e24KC2ThetaAboveLeaf0101231033 + +theorem e24KC2ThetaAboveNode010123112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01012311) + e24KC2ThetaAboveLeaf0101231120 e24KC2ThetaAboveLeaf0101231121 e24KC2ThetaAboveLeaf0101231122 + e24KC2ThetaAboveLeaf0101231123 + +theorem e24KC2ThetaAboveNode010123113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01012311) + e24KC2ThetaAboveLeaf0101231130 e24KC2ThetaAboveLeaf0101231131 e24KC2ThetaAboveLeaf0101231132 + e24KC2ThetaAboveLeaf0101231133 + +theorem e24KC2ThetaAboveNode010123120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01012312) + e24KC2ThetaAboveLeaf0101231200 e24KC2ThetaAboveLeaf0101231201 e24KC2ThetaAboveLeaf0101231202 + e24KC2ThetaAboveLeaf0101231203 + +theorem e24KC2ThetaAboveNode010123121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01012312) + e24KC2ThetaAboveLeaf0101231210 e24KC2ThetaAboveLeaf0101231211 e24KC2ThetaAboveLeaf0101231212 + e24KC2ThetaAboveLeaf0101231213 + +theorem e24KC2ThetaAboveNode010123122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01012312) + e24KC2ThetaAboveLeaf0101231220 e24KC2ThetaAboveLeaf0101231221 e24KC2ThetaAboveLeaf0101231222 + e24KC2ThetaAboveLeaf0101231223 + +theorem e24KC2ThetaAboveNode010123123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01012312) + e24KC2ThetaAboveLeaf0101231230 e24KC2ThetaAboveLeaf0101231231 e24KC2ThetaAboveLeaf0101231232 + e24KC2ThetaAboveLeaf0101231233 + +theorem e24KC2ThetaAboveNode010123130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01012313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01012313) + e24KC2ThetaAboveLeaf0101231300 e24KC2ThetaAboveLeaf0101231301 e24KC2ThetaAboveLeaf0101231302 + e24KC2ThetaAboveLeaf0101231303 + +theorem e24KC2ThetaAboveNode010123131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01012313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01012313) + e24KC2ThetaAboveLeaf0101231310 e24KC2ThetaAboveLeaf0101231311 e24KC2ThetaAboveLeaf0101231312 + e24KC2ThetaAboveLeaf0101231313 + +theorem e24KC2ThetaAboveNode010123132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01012313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01012313) + e24KC2ThetaAboveLeaf0101231320 e24KC2ThetaAboveLeaf0101231321 e24KC2ThetaAboveLeaf0101231322 + e24KC2ThetaAboveLeaf0101231323 + +theorem e24KC2ThetaAboveNode010123133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01012313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01012313) + e24KC2ThetaAboveLeaf0101231330 e24KC2ThetaAboveLeaf0101231331 e24KC2ThetaAboveLeaf0101231332 + e24KC2ThetaAboveLeaf0101231333 + +theorem e24KC2ThetaAboveNode010132002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01013200) + e24KC2ThetaAboveLeaf0101320020 e24KC2ThetaAboveLeaf0101320021 e24KC2ThetaAboveLeaf0101320022 + e24KC2ThetaAboveLeaf0101320023 + +theorem e24KC2ThetaAboveNode010132003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01013200) + e24KC2ThetaAboveLeaf0101320030 e24KC2ThetaAboveLeaf0101320031 e24KC2ThetaAboveLeaf0101320032 + e24KC2ThetaAboveLeaf0101320033 + +theorem e24KC2ThetaAboveNode010132012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01013201) + e24KC2ThetaAboveLeaf0101320120 e24KC2ThetaAboveLeaf0101320121 e24KC2ThetaAboveLeaf0101320122 + e24KC2ThetaAboveLeaf0101320123 + +theorem e24KC2ThetaAboveNode010132013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01013201) + e24KC2ThetaAboveLeaf0101320130 e24KC2ThetaAboveLeaf0101320131 e24KC2ThetaAboveLeaf0101320132 + e24KC2ThetaAboveLeaf0101320133 + +theorem e24KC2ThetaAboveNode010132020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01013202) + e24KC2ThetaAboveLeaf0101320200 e24KC2ThetaAboveLeaf0101320201 e24KC2ThetaAboveLeaf0101320202 + e24KC2ThetaAboveLeaf0101320203 + +theorem e24KC2ThetaAboveNode010132021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01013202) + e24KC2ThetaAboveLeaf0101320210 e24KC2ThetaAboveLeaf0101320211 e24KC2ThetaAboveLeaf0101320212 + e24KC2ThetaAboveLeaf0101320213 + +theorem e24KC2ThetaAboveNode010132022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01013202) + e24KC2ThetaAboveLeaf0101320220 e24KC2ThetaAboveLeaf0101320221 e24KC2ThetaAboveLeaf0101320222 + e24KC2ThetaAboveLeaf0101320223 + +theorem e24KC2ThetaAboveNode010132023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01013202) + e24KC2ThetaAboveLeaf0101320230 e24KC2ThetaAboveLeaf0101320231 e24KC2ThetaAboveLeaf0101320232 + e24KC2ThetaAboveLeaf0101320233 + +theorem e24KC2ThetaAboveNode010132030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01013203) + e24KC2ThetaAboveLeaf0101320300 e24KC2ThetaAboveLeaf0101320301 e24KC2ThetaAboveLeaf0101320302 + e24KC2ThetaAboveLeaf0101320303 + +theorem e24KC2ThetaAboveNode010132031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01013203) + e24KC2ThetaAboveLeaf0101320310 e24KC2ThetaAboveLeaf0101320311 e24KC2ThetaAboveLeaf0101320312 + e24KC2ThetaAboveLeaf0101320313 + +theorem e24KC2ThetaAboveNode010132032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01013203) + e24KC2ThetaAboveLeaf0101320320 e24KC2ThetaAboveLeaf0101320321 e24KC2ThetaAboveLeaf0101320322 + e24KC2ThetaAboveLeaf0101320323 + +theorem e24KC2ThetaAboveNode010132033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01013203) + e24KC2ThetaAboveLeaf0101320330 e24KC2ThetaAboveLeaf0101320331 e24KC2ThetaAboveLeaf0101320332 + e24KC2ThetaAboveLeaf0101320333 + +theorem e24KC2ThetaAboveNode010132102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01013210) + e24KC2ThetaAboveLeaf0101321020 e24KC2ThetaAboveLeaf0101321021 e24KC2ThetaAboveLeaf0101321022 + e24KC2ThetaAboveLeaf0101321023 + +theorem e24KC2ThetaAboveNode010132103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01013210) + e24KC2ThetaAboveLeaf0101321030 e24KC2ThetaAboveLeaf0101321031 e24KC2ThetaAboveLeaf0101321032 + e24KC2ThetaAboveLeaf0101321033 + +theorem e24KC2ThetaAboveNode010132112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01013211) + e24KC2ThetaAboveLeaf0101321120 e24KC2ThetaAboveLeaf0101321121 e24KC2ThetaAboveLeaf0101321122 + e24KC2ThetaAboveLeaf0101321123 + +theorem e24KC2ThetaAboveNode010132113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01013211) + e24KC2ThetaAboveLeaf0101321130 e24KC2ThetaAboveLeaf0101321131 e24KC2ThetaAboveLeaf0101321132 + e24KC2ThetaAboveLeaf0101321133 + +theorem e24KC2ThetaAboveNode010132120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01013212) + e24KC2ThetaAboveLeaf0101321200 e24KC2ThetaAboveLeaf0101321201 e24KC2ThetaAboveLeaf0101321202 + e24KC2ThetaAboveLeaf0101321203 + +theorem e24KC2ThetaAboveNode010132121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01013212) + e24KC2ThetaAboveLeaf0101321210 e24KC2ThetaAboveLeaf0101321211 e24KC2ThetaAboveLeaf0101321212 + e24KC2ThetaAboveLeaf0101321213 + +theorem e24KC2ThetaAboveNode010132122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01013212) + e24KC2ThetaAboveLeaf0101321220 e24KC2ThetaAboveLeaf0101321221 e24KC2ThetaAboveLeaf0101321222 + e24KC2ThetaAboveLeaf0101321223 + +theorem e24KC2ThetaAboveNode010132123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01013212) + e24KC2ThetaAboveLeaf0101321230 e24KC2ThetaAboveLeaf0101321231 e24KC2ThetaAboveLeaf0101321232 + e24KC2ThetaAboveLeaf0101321233 + +theorem e24KC2ThetaAboveNode010132130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01013213) + e24KC2ThetaAboveLeaf0101321300 e24KC2ThetaAboveLeaf0101321301 e24KC2ThetaAboveLeaf0101321302 + e24KC2ThetaAboveLeaf0101321303 + +theorem e24KC2ThetaAboveNode010132131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01013213) + e24KC2ThetaAboveLeaf0101321310 e24KC2ThetaAboveLeaf0101321311 e24KC2ThetaAboveLeaf0101321312 + e24KC2ThetaAboveLeaf0101321313 + +theorem e24KC2ThetaAboveNode010132132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01013213) + e24KC2ThetaAboveLeaf0101321320 e24KC2ThetaAboveLeaf0101321321 e24KC2ThetaAboveLeaf0101321322 + e24KC2ThetaAboveLeaf0101321323 + +theorem e24KC2ThetaAboveNode010132133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01013213) + e24KC2ThetaAboveLeaf0101321330 e24KC2ThetaAboveLeaf0101321331 e24KC2ThetaAboveLeaf0101321332 + e24KC2ThetaAboveLeaf0101321333 + +theorem e24KC2ThetaAboveNode010133002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01013300) + e24KC2ThetaAboveLeaf0101330020 e24KC2ThetaAboveLeaf0101330021 e24KC2ThetaAboveLeaf0101330022 + e24KC2ThetaAboveLeaf0101330023 + +theorem e24KC2ThetaAboveNode010133003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01013300) + e24KC2ThetaAboveLeaf0101330030 e24KC2ThetaAboveLeaf0101330031 e24KC2ThetaAboveLeaf0101330032 + e24KC2ThetaAboveLeaf0101330033 + +theorem e24KC2ThetaAboveNode010133012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01013301) + e24KC2ThetaAboveLeaf0101330120 e24KC2ThetaAboveLeaf0101330121 e24KC2ThetaAboveLeaf0101330122 + e24KC2ThetaAboveLeaf0101330123 + +theorem e24KC2ThetaAboveNode010133013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01013301) + e24KC2ThetaAboveLeaf0101330130 e24KC2ThetaAboveLeaf0101330131 e24KC2ThetaAboveLeaf0101330132 + e24KC2ThetaAboveLeaf0101330133 + +theorem e24KC2ThetaAboveNode010133020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01013302) + e24KC2ThetaAboveLeaf0101330200 e24KC2ThetaAboveLeaf0101330201 e24KC2ThetaAboveLeaf0101330202 + e24KC2ThetaAboveLeaf0101330203 + +theorem e24KC2ThetaAboveNode010133021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01013302) + e24KC2ThetaAboveLeaf0101330210 e24KC2ThetaAboveLeaf0101330211 e24KC2ThetaAboveLeaf0101330212 + e24KC2ThetaAboveLeaf0101330213 + +theorem e24KC2ThetaAboveNode010133022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01013302) + e24KC2ThetaAboveLeaf0101330220 e24KC2ThetaAboveLeaf0101330221 e24KC2ThetaAboveLeaf0101330222 + e24KC2ThetaAboveLeaf0101330223 + +theorem e24KC2ThetaAboveNode010133023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01013302) + e24KC2ThetaAboveLeaf0101330230 e24KC2ThetaAboveLeaf0101330231 e24KC2ThetaAboveLeaf0101330232 + e24KC2ThetaAboveLeaf0101330233 + +theorem e24KC2ThetaAboveNode010133030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01013303) + e24KC2ThetaAboveLeaf0101330300 e24KC2ThetaAboveLeaf0101330301 e24KC2ThetaAboveLeaf0101330302 + e24KC2ThetaAboveLeaf0101330303 + +theorem e24KC2ThetaAboveNode010133031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01013303) + e24KC2ThetaAboveLeaf0101330310 e24KC2ThetaAboveLeaf0101330311 e24KC2ThetaAboveLeaf0101330312 + e24KC2ThetaAboveLeaf0101330313 + +theorem e24KC2ThetaAboveNode010133032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01013303) + e24KC2ThetaAboveLeaf0101330320 e24KC2ThetaAboveLeaf0101330321 e24KC2ThetaAboveLeaf0101330322 + e24KC2ThetaAboveLeaf0101330323 + +theorem e24KC2ThetaAboveNode010133033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01013303) + e24KC2ThetaAboveLeaf0101330330 e24KC2ThetaAboveLeaf0101330331 e24KC2ThetaAboveLeaf0101330332 + e24KC2ThetaAboveLeaf0101330333 + +theorem e24KC2ThetaAboveNode010133102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01013310) + e24KC2ThetaAboveLeaf0101331020 e24KC2ThetaAboveLeaf0101331021 e24KC2ThetaAboveLeaf0101331022 + e24KC2ThetaAboveLeaf0101331023 + +theorem e24KC2ThetaAboveNode010133103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01013310) + e24KC2ThetaAboveLeaf0101331030 e24KC2ThetaAboveLeaf0101331031 e24KC2ThetaAboveLeaf0101331032 + e24KC2ThetaAboveLeaf0101331033 + +theorem e24KC2ThetaAboveNode010133112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01013311) + e24KC2ThetaAboveLeaf0101331120 e24KC2ThetaAboveLeaf0101331121 e24KC2ThetaAboveLeaf0101331122 + e24KC2ThetaAboveLeaf0101331123 + +theorem e24KC2ThetaAboveNode010133113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01013311) + e24KC2ThetaAboveLeaf0101331130 e24KC2ThetaAboveLeaf0101331131 e24KC2ThetaAboveLeaf0101331132 + e24KC2ThetaAboveLeaf0101331133 + +theorem e24KC2ThetaAboveNode010133120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01013312) + e24KC2ThetaAboveLeaf0101331200 e24KC2ThetaAboveLeaf0101331201 e24KC2ThetaAboveLeaf0101331202 + e24KC2ThetaAboveLeaf0101331203 + +theorem e24KC2ThetaAboveNode010133121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01013312) + e24KC2ThetaAboveLeaf0101331210 e24KC2ThetaAboveLeaf0101331211 e24KC2ThetaAboveLeaf0101331212 + e24KC2ThetaAboveLeaf0101331213 + +theorem e24KC2ThetaAboveNode010133122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01013312) + e24KC2ThetaAboveLeaf0101331220 e24KC2ThetaAboveLeaf0101331221 e24KC2ThetaAboveLeaf0101331222 + e24KC2ThetaAboveLeaf0101331223 + +theorem e24KC2ThetaAboveNode010133123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01013312) + e24KC2ThetaAboveLeaf0101331230 e24KC2ThetaAboveLeaf0101331231 e24KC2ThetaAboveLeaf0101331232 + e24KC2ThetaAboveLeaf0101331233 + +theorem e24KC2ThetaAboveNode010133130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01013313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01013313) + e24KC2ThetaAboveLeaf0101331300 e24KC2ThetaAboveLeaf0101331301 e24KC2ThetaAboveLeaf0101331302 + e24KC2ThetaAboveLeaf0101331303 + +theorem e24KC2ThetaAboveNode010133131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01013313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01013313) + e24KC2ThetaAboveLeaf0101331310 e24KC2ThetaAboveLeaf0101331311 e24KC2ThetaAboveLeaf0101331312 + e24KC2ThetaAboveLeaf0101331313 + +theorem e24KC2ThetaAboveNode010133132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01013313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01013313) + e24KC2ThetaAboveLeaf0101331320 e24KC2ThetaAboveLeaf0101331321 e24KC2ThetaAboveLeaf0101331322 + e24KC2ThetaAboveLeaf0101331323 + +theorem e24KC2ThetaAboveNode010133133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01013313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01013313) + e24KC2ThetaAboveLeaf0101331330 e24KC2ThetaAboveLeaf0101331331 e24KC2ThetaAboveLeaf0101331332 + e24KC2ThetaAboveLeaf0101331333 + +theorem e24KC2ThetaAboveNode011022002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01102200) + e24KC2ThetaAboveLeaf0110220020 e24KC2ThetaAboveLeaf0110220021 e24KC2ThetaAboveLeaf0110220022 + e24KC2ThetaAboveLeaf0110220023 + +theorem e24KC2ThetaAboveNode011022003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01102200) + e24KC2ThetaAboveLeaf0110220030 e24KC2ThetaAboveLeaf0110220031 e24KC2ThetaAboveLeaf0110220032 + e24KC2ThetaAboveLeaf0110220033 + +theorem e24KC2ThetaAboveNode011022012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01102201) + e24KC2ThetaAboveLeaf0110220120 e24KC2ThetaAboveLeaf0110220121 e24KC2ThetaAboveLeaf0110220122 + e24KC2ThetaAboveLeaf0110220123 + +theorem e24KC2ThetaAboveNode011022013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01102201) + e24KC2ThetaAboveLeaf0110220130 e24KC2ThetaAboveLeaf0110220131 e24KC2ThetaAboveLeaf0110220132 + e24KC2ThetaAboveLeaf0110220133 + +theorem e24KC2ThetaAboveNode011022020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01102202) + e24KC2ThetaAboveLeaf0110220200 e24KC2ThetaAboveLeaf0110220201 e24KC2ThetaAboveLeaf0110220202 + e24KC2ThetaAboveLeaf0110220203 + +theorem e24KC2ThetaAboveNode011022021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01102202) + e24KC2ThetaAboveLeaf0110220210 e24KC2ThetaAboveLeaf0110220211 e24KC2ThetaAboveLeaf0110220212 + e24KC2ThetaAboveLeaf0110220213 + +theorem e24KC2ThetaAboveNode011022022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01102202) + e24KC2ThetaAboveLeaf0110220220 e24KC2ThetaAboveLeaf0110220221 e24KC2ThetaAboveLeaf0110220222 + e24KC2ThetaAboveLeaf0110220223 + +theorem e24KC2ThetaAboveNode011022023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01102202) + e24KC2ThetaAboveLeaf0110220230 e24KC2ThetaAboveLeaf0110220231 e24KC2ThetaAboveLeaf0110220232 + e24KC2ThetaAboveLeaf0110220233 + +theorem e24KC2ThetaAboveNode011022030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01102203) + e24KC2ThetaAboveLeaf0110220300 e24KC2ThetaAboveLeaf0110220301 e24KC2ThetaAboveLeaf0110220302 + e24KC2ThetaAboveLeaf0110220303 + +theorem e24KC2ThetaAboveNode011022031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01102203) + e24KC2ThetaAboveLeaf0110220310 e24KC2ThetaAboveLeaf0110220311 e24KC2ThetaAboveLeaf0110220312 + e24KC2ThetaAboveLeaf0110220313 + +theorem e24KC2ThetaAboveNode011022032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01102203) + e24KC2ThetaAboveLeaf0110220320 e24KC2ThetaAboveLeaf0110220321 e24KC2ThetaAboveLeaf0110220322 + e24KC2ThetaAboveLeaf0110220323 + +theorem e24KC2ThetaAboveNode011022033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01102203) + e24KC2ThetaAboveLeaf0110220330 e24KC2ThetaAboveLeaf0110220331 e24KC2ThetaAboveLeaf0110220332 + e24KC2ThetaAboveLeaf0110220333 + +theorem e24KC2ThetaAboveNode011022102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01102210) + e24KC2ThetaAboveLeaf0110221020 e24KC2ThetaAboveLeaf0110221021 e24KC2ThetaAboveLeaf0110221022 + e24KC2ThetaAboveLeaf0110221023 + +theorem e24KC2ThetaAboveNode011022103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01102210) + e24KC2ThetaAboveLeaf0110221030 e24KC2ThetaAboveLeaf0110221031 e24KC2ThetaAboveLeaf0110221032 + e24KC2ThetaAboveLeaf0110221033 + +theorem e24KC2ThetaAboveNode011022112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01102211) + e24KC2ThetaAboveLeaf0110221120 e24KC2ThetaAboveLeaf0110221121 e24KC2ThetaAboveLeaf0110221122 + e24KC2ThetaAboveLeaf0110221123 + +theorem e24KC2ThetaAboveNode011022113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01102211) + e24KC2ThetaAboveLeaf0110221130 e24KC2ThetaAboveLeaf0110221131 e24KC2ThetaAboveLeaf0110221132 + e24KC2ThetaAboveLeaf0110221133 + +theorem e24KC2ThetaAboveNode011022120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01102212) + e24KC2ThetaAboveLeaf0110221200 e24KC2ThetaAboveLeaf0110221201 e24KC2ThetaAboveLeaf0110221202 + e24KC2ThetaAboveLeaf0110221203 + +theorem e24KC2ThetaAboveNode011022121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01102212) + e24KC2ThetaAboveLeaf0110221210 e24KC2ThetaAboveLeaf0110221211 e24KC2ThetaAboveLeaf0110221212 + e24KC2ThetaAboveLeaf0110221213 + +theorem e24KC2ThetaAboveNode011022122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01102212) + e24KC2ThetaAboveLeaf0110221220 e24KC2ThetaAboveLeaf0110221221 e24KC2ThetaAboveLeaf0110221222 + e24KC2ThetaAboveLeaf0110221223 + +theorem e24KC2ThetaAboveNode011022123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01102212) + e24KC2ThetaAboveLeaf0110221230 e24KC2ThetaAboveLeaf0110221231 e24KC2ThetaAboveLeaf0110221232 + e24KC2ThetaAboveLeaf0110221233 + +theorem e24KC2ThetaAboveNode011022130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01102213) + e24KC2ThetaAboveLeaf0110221300 e24KC2ThetaAboveLeaf0110221301 e24KC2ThetaAboveLeaf0110221302 + e24KC2ThetaAboveLeaf0110221303 + +theorem e24KC2ThetaAboveNode011022131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01102213) + e24KC2ThetaAboveLeaf0110221310 e24KC2ThetaAboveLeaf0110221311 e24KC2ThetaAboveLeaf0110221312 + e24KC2ThetaAboveLeaf0110221313 + +theorem e24KC2ThetaAboveNode011022132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01102213) + e24KC2ThetaAboveLeaf0110221320 e24KC2ThetaAboveLeaf0110221321 e24KC2ThetaAboveLeaf0110221322 + e24KC2ThetaAboveLeaf0110221323 + +theorem e24KC2ThetaAboveNode011022133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01102213) + e24KC2ThetaAboveLeaf0110221330 e24KC2ThetaAboveLeaf0110221331 e24KC2ThetaAboveLeaf0110221332 + e24KC2ThetaAboveLeaf0110221333 + +theorem e24KC2ThetaAboveNode011023002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01102300) + e24KC2ThetaAboveLeaf0110230020 e24KC2ThetaAboveLeaf0110230021 e24KC2ThetaAboveLeaf0110230022 + e24KC2ThetaAboveLeaf0110230023 + +theorem e24KC2ThetaAboveNode011023003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01102300) + e24KC2ThetaAboveLeaf0110230030 e24KC2ThetaAboveLeaf0110230031 e24KC2ThetaAboveLeaf0110230032 + e24KC2ThetaAboveLeaf0110230033 + +theorem e24KC2ThetaAboveNode011023012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01102301) + e24KC2ThetaAboveLeaf0110230120 e24KC2ThetaAboveLeaf0110230121 e24KC2ThetaAboveLeaf0110230122 + e24KC2ThetaAboveLeaf0110230123 + +theorem e24KC2ThetaAboveNode011023013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01102301) + e24KC2ThetaAboveLeaf0110230130 e24KC2ThetaAboveLeaf0110230131 e24KC2ThetaAboveLeaf0110230132 + e24KC2ThetaAboveLeaf0110230133 + +theorem e24KC2ThetaAboveNode011023020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01102302) + e24KC2ThetaAboveLeaf0110230200 e24KC2ThetaAboveLeaf0110230201 e24KC2ThetaAboveLeaf0110230202 + e24KC2ThetaAboveLeaf0110230203 + +theorem e24KC2ThetaAboveNode011023021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01102302) + e24KC2ThetaAboveLeaf0110230210 e24KC2ThetaAboveLeaf0110230211 e24KC2ThetaAboveLeaf0110230212 + e24KC2ThetaAboveLeaf0110230213 + +theorem e24KC2ThetaAboveNode011023022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01102302) + e24KC2ThetaAboveLeaf0110230220 e24KC2ThetaAboveLeaf0110230221 e24KC2ThetaAboveLeaf0110230222 + e24KC2ThetaAboveLeaf0110230223 + +theorem e24KC2ThetaAboveNode011023023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01102302) + e24KC2ThetaAboveLeaf0110230230 e24KC2ThetaAboveLeaf0110230231 e24KC2ThetaAboveLeaf0110230232 + e24KC2ThetaAboveLeaf0110230233 + +theorem e24KC2ThetaAboveNode011023030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01102303) + e24KC2ThetaAboveLeaf0110230300 e24KC2ThetaAboveLeaf0110230301 e24KC2ThetaAboveLeaf0110230302 + e24KC2ThetaAboveLeaf0110230303 + +theorem e24KC2ThetaAboveNode011023031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01102303) + e24KC2ThetaAboveLeaf0110230310 e24KC2ThetaAboveLeaf0110230311 e24KC2ThetaAboveLeaf0110230312 + e24KC2ThetaAboveLeaf0110230313 + +theorem e24KC2ThetaAboveNode011023032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01102303) + e24KC2ThetaAboveLeaf0110230320 e24KC2ThetaAboveLeaf0110230321 e24KC2ThetaAboveLeaf0110230322 + e24KC2ThetaAboveLeaf0110230323 + +theorem e24KC2ThetaAboveNode011023033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01102303) + e24KC2ThetaAboveLeaf0110230330 e24KC2ThetaAboveLeaf0110230331 e24KC2ThetaAboveLeaf0110230332 + e24KC2ThetaAboveLeaf0110230333 + +theorem e24KC2ThetaAboveNode011023102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01102310) + e24KC2ThetaAboveLeaf0110231020 e24KC2ThetaAboveLeaf0110231021 e24KC2ThetaAboveLeaf0110231022 + e24KC2ThetaAboveLeaf0110231023 + +theorem e24KC2ThetaAboveNode011023103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01102310) + e24KC2ThetaAboveLeaf0110231030 e24KC2ThetaAboveLeaf0110231031 e24KC2ThetaAboveLeaf0110231032 + e24KC2ThetaAboveLeaf0110231033 + +theorem e24KC2ThetaAboveNode011023112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01102311) + e24KC2ThetaAboveLeaf0110231120 e24KC2ThetaAboveLeaf0110231121 e24KC2ThetaAboveLeaf0110231122 + e24KC2ThetaAboveLeaf0110231123 + +theorem e24KC2ThetaAboveNode011023113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01102311) + e24KC2ThetaAboveLeaf0110231130 e24KC2ThetaAboveLeaf0110231131 e24KC2ThetaAboveLeaf0110231132 + e24KC2ThetaAboveLeaf0110231133 + +theorem e24KC2ThetaAboveNode011023120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01102312) + e24KC2ThetaAboveLeaf0110231200 e24KC2ThetaAboveLeaf0110231201 e24KC2ThetaAboveLeaf0110231202 + e24KC2ThetaAboveLeaf0110231203 + +theorem e24KC2ThetaAboveNode011023121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01102312) + e24KC2ThetaAboveLeaf0110231210 e24KC2ThetaAboveLeaf0110231211 e24KC2ThetaAboveLeaf0110231212 + e24KC2ThetaAboveLeaf0110231213 + +theorem e24KC2ThetaAboveNode011023122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01102312) + e24KC2ThetaAboveLeaf0110231220 e24KC2ThetaAboveLeaf0110231221 e24KC2ThetaAboveLeaf0110231222 + e24KC2ThetaAboveLeaf0110231223 + +theorem e24KC2ThetaAboveNode011023123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01102312) + e24KC2ThetaAboveLeaf0110231230 e24KC2ThetaAboveLeaf0110231231 e24KC2ThetaAboveLeaf0110231232 + e24KC2ThetaAboveLeaf0110231233 + +theorem e24KC2ThetaAboveNode011023130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01102313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01102313) + e24KC2ThetaAboveLeaf0110231300 e24KC2ThetaAboveLeaf0110231301 e24KC2ThetaAboveLeaf0110231302 + e24KC2ThetaAboveLeaf0110231303 + +theorem e24KC2ThetaAboveNode011023131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01102313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01102313) + e24KC2ThetaAboveLeaf0110231310 e24KC2ThetaAboveLeaf0110231311 e24KC2ThetaAboveLeaf0110231312 + e24KC2ThetaAboveLeaf0110231313 + +theorem e24KC2ThetaAboveNode011023132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01102313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01102313) + e24KC2ThetaAboveLeaf0110231320 e24KC2ThetaAboveLeaf0110231321 e24KC2ThetaAboveLeaf0110231322 + e24KC2ThetaAboveLeaf0110231323 + +theorem e24KC2ThetaAboveNode011023133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01102313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01102313) + e24KC2ThetaAboveLeaf0110231330 e24KC2ThetaAboveLeaf0110231331 e24KC2ThetaAboveLeaf0110231332 + e24KC2ThetaAboveLeaf0110231333 + +theorem e24KC2ThetaAboveNode011032002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01103200) + e24KC2ThetaAboveLeaf0110320020 e24KC2ThetaAboveLeaf0110320021 e24KC2ThetaAboveLeaf0110320022 + e24KC2ThetaAboveLeaf0110320023 + +theorem e24KC2ThetaAboveNode011032003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01103200) + e24KC2ThetaAboveLeaf0110320030 e24KC2ThetaAboveLeaf0110320031 e24KC2ThetaAboveLeaf0110320032 + e24KC2ThetaAboveLeaf0110320033 + +theorem e24KC2ThetaAboveNode011032012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01103201) + e24KC2ThetaAboveLeaf0110320120 e24KC2ThetaAboveLeaf0110320121 e24KC2ThetaAboveLeaf0110320122 + e24KC2ThetaAboveLeaf0110320123 + +theorem e24KC2ThetaAboveNode011032013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01103201) + e24KC2ThetaAboveLeaf0110320130 e24KC2ThetaAboveLeaf0110320131 e24KC2ThetaAboveLeaf0110320132 + e24KC2ThetaAboveLeaf0110320133 + +theorem e24KC2ThetaAboveNode011032020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01103202) + e24KC2ThetaAboveLeaf0110320200 e24KC2ThetaAboveLeaf0110320201 e24KC2ThetaAboveLeaf0110320202 + e24KC2ThetaAboveLeaf0110320203 + +theorem e24KC2ThetaAboveNode011032021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01103202) + e24KC2ThetaAboveLeaf0110320210 e24KC2ThetaAboveLeaf0110320211 e24KC2ThetaAboveLeaf0110320212 + e24KC2ThetaAboveLeaf0110320213 + +theorem e24KC2ThetaAboveNode011032022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01103202) + e24KC2ThetaAboveLeaf0110320220 e24KC2ThetaAboveLeaf0110320221 e24KC2ThetaAboveLeaf0110320222 + e24KC2ThetaAboveLeaf0110320223 + +theorem e24KC2ThetaAboveNode011032023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01103202) + e24KC2ThetaAboveLeaf0110320230 e24KC2ThetaAboveLeaf0110320231 e24KC2ThetaAboveLeaf0110320232 + e24KC2ThetaAboveLeaf0110320233 + +theorem e24KC2ThetaAboveNode011032030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01103203) + e24KC2ThetaAboveLeaf0110320300 e24KC2ThetaAboveLeaf0110320301 e24KC2ThetaAboveLeaf0110320302 + e24KC2ThetaAboveLeaf0110320303 + +theorem e24KC2ThetaAboveNode011032031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01103203) + e24KC2ThetaAboveLeaf0110320310 e24KC2ThetaAboveLeaf0110320311 e24KC2ThetaAboveLeaf0110320312 + e24KC2ThetaAboveLeaf0110320313 + +theorem e24KC2ThetaAboveNode011032032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01103203) + e24KC2ThetaAboveLeaf0110320320 e24KC2ThetaAboveLeaf0110320321 e24KC2ThetaAboveLeaf0110320322 + e24KC2ThetaAboveLeaf0110320323 + +theorem e24KC2ThetaAboveNode011032033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01103203) + e24KC2ThetaAboveLeaf0110320330 e24KC2ThetaAboveLeaf0110320331 e24KC2ThetaAboveLeaf0110320332 + e24KC2ThetaAboveLeaf0110320333 + +theorem e24KC2ThetaAboveNode011032102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01103210) + e24KC2ThetaAboveLeaf0110321020 e24KC2ThetaAboveLeaf0110321021 e24KC2ThetaAboveLeaf0110321022 + e24KC2ThetaAboveLeaf0110321023 + +theorem e24KC2ThetaAboveNode011032103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01103210) + e24KC2ThetaAboveLeaf0110321030 e24KC2ThetaAboveLeaf0110321031 e24KC2ThetaAboveLeaf0110321032 + e24KC2ThetaAboveLeaf0110321033 + +theorem e24KC2ThetaAboveNode011032112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01103211) + e24KC2ThetaAboveLeaf0110321120 e24KC2ThetaAboveLeaf0110321121 e24KC2ThetaAboveLeaf0110321122 + e24KC2ThetaAboveLeaf0110321123 + +theorem e24KC2ThetaAboveNode011032113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01103211) + e24KC2ThetaAboveLeaf0110321130 e24KC2ThetaAboveLeaf0110321131 e24KC2ThetaAboveLeaf0110321132 + e24KC2ThetaAboveLeaf0110321133 + +theorem e24KC2ThetaAboveNode011032120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01103212) + e24KC2ThetaAboveLeaf0110321200 e24KC2ThetaAboveLeaf0110321201 e24KC2ThetaAboveLeaf0110321202 + e24KC2ThetaAboveLeaf0110321203 + +theorem e24KC2ThetaAboveNode011032121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01103212) + e24KC2ThetaAboveLeaf0110321210 e24KC2ThetaAboveLeaf0110321211 e24KC2ThetaAboveLeaf0110321212 + e24KC2ThetaAboveLeaf0110321213 + +theorem e24KC2ThetaAboveNode011032122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01103212) + e24KC2ThetaAboveLeaf0110321220 e24KC2ThetaAboveLeaf0110321221 e24KC2ThetaAboveLeaf0110321222 + e24KC2ThetaAboveLeaf0110321223 + +theorem e24KC2ThetaAboveNode011032123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01103212) + e24KC2ThetaAboveLeaf0110321230 e24KC2ThetaAboveLeaf0110321231 e24KC2ThetaAboveLeaf0110321232 + e24KC2ThetaAboveLeaf0110321233 + +theorem e24KC2ThetaAboveNode011032130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01103213) + e24KC2ThetaAboveLeaf0110321300 e24KC2ThetaAboveLeaf0110321301 e24KC2ThetaAboveLeaf0110321302 + e24KC2ThetaAboveLeaf0110321303 + +theorem e24KC2ThetaAboveNode011032131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01103213) + e24KC2ThetaAboveLeaf0110321310 e24KC2ThetaAboveLeaf0110321311 e24KC2ThetaAboveLeaf0110321312 + e24KC2ThetaAboveLeaf0110321313 + +theorem e24KC2ThetaAboveNode011032132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01103213) + e24KC2ThetaAboveLeaf0110321320 e24KC2ThetaAboveLeaf0110321321 e24KC2ThetaAboveLeaf0110321322 + e24KC2ThetaAboveLeaf0110321323 + +theorem e24KC2ThetaAboveNode011032133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01103213) + e24KC2ThetaAboveLeaf0110321330 e24KC2ThetaAboveLeaf0110321331 e24KC2ThetaAboveLeaf0110321332 + e24KC2ThetaAboveLeaf0110321333 + +theorem e24KC2ThetaAboveNode011033002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01103300) + e24KC2ThetaAboveLeaf0110330020 e24KC2ThetaAboveLeaf0110330021 e24KC2ThetaAboveLeaf0110330022 + e24KC2ThetaAboveLeaf0110330023 + +theorem e24KC2ThetaAboveNode011033003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01103300) + e24KC2ThetaAboveLeaf0110330030 e24KC2ThetaAboveLeaf0110330031 e24KC2ThetaAboveLeaf0110330032 + e24KC2ThetaAboveLeaf0110330033 + +theorem e24KC2ThetaAboveNode011033012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01103301) + e24KC2ThetaAboveLeaf0110330120 e24KC2ThetaAboveLeaf0110330121 e24KC2ThetaAboveLeaf0110330122 + e24KC2ThetaAboveLeaf0110330123 + +theorem e24KC2ThetaAboveNode011033013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01103301) + e24KC2ThetaAboveLeaf0110330130 e24KC2ThetaAboveLeaf0110330131 e24KC2ThetaAboveLeaf0110330132 + e24KC2ThetaAboveLeaf0110330133 + +theorem e24KC2ThetaAboveNode011033020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01103302) + e24KC2ThetaAboveLeaf0110330200 e24KC2ThetaAboveLeaf0110330201 e24KC2ThetaAboveLeaf0110330202 + e24KC2ThetaAboveLeaf0110330203 + +theorem e24KC2ThetaAboveNode011033021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01103302) + e24KC2ThetaAboveLeaf0110330210 e24KC2ThetaAboveLeaf0110330211 e24KC2ThetaAboveLeaf0110330212 + e24KC2ThetaAboveLeaf0110330213 + +theorem e24KC2ThetaAboveNode011033022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01103302) + e24KC2ThetaAboveLeaf0110330220 e24KC2ThetaAboveLeaf0110330221 e24KC2ThetaAboveLeaf0110330222 + e24KC2ThetaAboveLeaf0110330223 + +theorem e24KC2ThetaAboveNode011033023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01103302) + e24KC2ThetaAboveLeaf0110330230 e24KC2ThetaAboveLeaf0110330231 e24KC2ThetaAboveLeaf0110330232 + e24KC2ThetaAboveLeaf0110330233 + +theorem e24KC2ThetaAboveNode011033030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01103303) + e24KC2ThetaAboveLeaf0110330300 e24KC2ThetaAboveLeaf0110330301 e24KC2ThetaAboveLeaf0110330302 + e24KC2ThetaAboveLeaf0110330303 + +theorem e24KC2ThetaAboveNode011033031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01103303) + e24KC2ThetaAboveLeaf0110330310 e24KC2ThetaAboveLeaf0110330311 e24KC2ThetaAboveLeaf0110330312 + e24KC2ThetaAboveLeaf0110330313 + +theorem e24KC2ThetaAboveNode011033032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01103303) + e24KC2ThetaAboveLeaf0110330320 e24KC2ThetaAboveLeaf0110330321 e24KC2ThetaAboveLeaf0110330322 + e24KC2ThetaAboveLeaf0110330323 + +theorem e24KC2ThetaAboveNode011033033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01103303) + e24KC2ThetaAboveLeaf0110330330 e24KC2ThetaAboveLeaf0110330331 e24KC2ThetaAboveLeaf0110330332 + e24KC2ThetaAboveLeaf0110330333 + +theorem e24KC2ThetaAboveNode011033102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01103310) + e24KC2ThetaAboveLeaf0110331020 e24KC2ThetaAboveLeaf0110331021 e24KC2ThetaAboveLeaf0110331022 + e24KC2ThetaAboveLeaf0110331023 + +theorem e24KC2ThetaAboveNode011033103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01103310) + e24KC2ThetaAboveLeaf0110331030 e24KC2ThetaAboveLeaf0110331031 e24KC2ThetaAboveLeaf0110331032 + e24KC2ThetaAboveLeaf0110331033 + +theorem e24KC2ThetaAboveNode011033112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01103311) + e24KC2ThetaAboveLeaf0110331120 e24KC2ThetaAboveLeaf0110331121 e24KC2ThetaAboveLeaf0110331122 + e24KC2ThetaAboveLeaf0110331123 + +theorem e24KC2ThetaAboveNode011033113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01103311) + e24KC2ThetaAboveLeaf0110331130 e24KC2ThetaAboveLeaf0110331131 e24KC2ThetaAboveLeaf0110331132 + e24KC2ThetaAboveLeaf0110331133 + +theorem e24KC2ThetaAboveNode011033120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01103312) + e24KC2ThetaAboveLeaf0110331200 e24KC2ThetaAboveLeaf0110331201 e24KC2ThetaAboveLeaf0110331202 + e24KC2ThetaAboveLeaf0110331203 + +theorem e24KC2ThetaAboveNode011033121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01103312) + e24KC2ThetaAboveLeaf0110331210 e24KC2ThetaAboveLeaf0110331211 e24KC2ThetaAboveLeaf0110331212 + e24KC2ThetaAboveLeaf0110331213 + +theorem e24KC2ThetaAboveNode011033122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01103312) + e24KC2ThetaAboveLeaf0110331220 e24KC2ThetaAboveLeaf0110331221 e24KC2ThetaAboveLeaf0110331222 + e24KC2ThetaAboveLeaf0110331223 + +theorem e24KC2ThetaAboveNode011033123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01103312) + e24KC2ThetaAboveLeaf0110331230 e24KC2ThetaAboveLeaf0110331231 e24KC2ThetaAboveLeaf0110331232 + e24KC2ThetaAboveLeaf0110331233 + +theorem e24KC2ThetaAboveNode011033130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01103313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01103313) + e24KC2ThetaAboveLeaf0110331300 e24KC2ThetaAboveLeaf0110331301 e24KC2ThetaAboveLeaf0110331302 + e24KC2ThetaAboveLeaf0110331303 + +theorem e24KC2ThetaAboveNode011033131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01103313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01103313) + e24KC2ThetaAboveLeaf0110331310 e24KC2ThetaAboveLeaf0110331311 e24KC2ThetaAboveLeaf0110331312 + e24KC2ThetaAboveLeaf0110331313 + +theorem e24KC2ThetaAboveNode011033132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01103313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01103313) + e24KC2ThetaAboveLeaf0110331320 e24KC2ThetaAboveLeaf0110331321 e24KC2ThetaAboveLeaf0110331322 + e24KC2ThetaAboveLeaf0110331323 + +theorem e24KC2ThetaAboveNode011033133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01103313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01103313) + e24KC2ThetaAboveLeaf0110331330 e24KC2ThetaAboveLeaf0110331331 e24KC2ThetaAboveLeaf0110331332 + e24KC2ThetaAboveLeaf0110331333 + +theorem e24KC2ThetaAboveNode011122002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01112200) + e24KC2ThetaAboveLeaf0111220020 e24KC2ThetaAboveLeaf0111220021 e24KC2ThetaAboveLeaf0111220022 + e24KC2ThetaAboveLeaf0111220023 + +theorem e24KC2ThetaAboveNode011122003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01112200) + e24KC2ThetaAboveLeaf0111220030 e24KC2ThetaAboveLeaf0111220031 e24KC2ThetaAboveLeaf0111220032 + e24KC2ThetaAboveLeaf0111220033 + +theorem e24KC2ThetaAboveNode011122012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01112201) + e24KC2ThetaAboveLeaf0111220120 e24KC2ThetaAboveLeaf0111220121 e24KC2ThetaAboveLeaf0111220122 + e24KC2ThetaAboveLeaf0111220123 + +theorem e24KC2ThetaAboveNode011122013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01112201) + e24KC2ThetaAboveLeaf0111220130 e24KC2ThetaAboveLeaf0111220131 e24KC2ThetaAboveLeaf0111220132 + e24KC2ThetaAboveLeaf0111220133 + +theorem e24KC2ThetaAboveNode011122020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01112202) + e24KC2ThetaAboveLeaf0111220200 e24KC2ThetaAboveLeaf0111220201 e24KC2ThetaAboveLeaf0111220202 + e24KC2ThetaAboveLeaf0111220203 + +theorem e24KC2ThetaAboveNode011122021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01112202) + e24KC2ThetaAboveLeaf0111220210 e24KC2ThetaAboveLeaf0111220211 e24KC2ThetaAboveLeaf0111220212 + e24KC2ThetaAboveLeaf0111220213 + +theorem e24KC2ThetaAboveNode011122022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01112202) + e24KC2ThetaAboveLeaf0111220220 e24KC2ThetaAboveLeaf0111220221 e24KC2ThetaAboveLeaf0111220222 + e24KC2ThetaAboveLeaf0111220223 + +theorem e24KC2ThetaAboveNode011122023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01112202) + e24KC2ThetaAboveLeaf0111220230 e24KC2ThetaAboveLeaf0111220231 e24KC2ThetaAboveLeaf0111220232 + e24KC2ThetaAboveLeaf0111220233 + +theorem e24KC2ThetaAboveNode011122030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01112203) + e24KC2ThetaAboveLeaf0111220300 e24KC2ThetaAboveLeaf0111220301 e24KC2ThetaAboveLeaf0111220302 + e24KC2ThetaAboveLeaf0111220303 + +theorem e24KC2ThetaAboveNode011122031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01112203) + e24KC2ThetaAboveLeaf0111220310 e24KC2ThetaAboveLeaf0111220311 e24KC2ThetaAboveLeaf0111220312 + e24KC2ThetaAboveLeaf0111220313 + +theorem e24KC2ThetaAboveNode011122032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01112203) + e24KC2ThetaAboveLeaf0111220320 e24KC2ThetaAboveLeaf0111220321 e24KC2ThetaAboveLeaf0111220322 + e24KC2ThetaAboveLeaf0111220323 + +theorem e24KC2ThetaAboveNode011122033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01112203) + e24KC2ThetaAboveLeaf0111220330 e24KC2ThetaAboveLeaf0111220331 e24KC2ThetaAboveLeaf0111220332 + e24KC2ThetaAboveLeaf0111220333 + +theorem e24KC2ThetaAboveNode011122102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01112210) + e24KC2ThetaAboveLeaf0111221020 e24KC2ThetaAboveLeaf0111221021 e24KC2ThetaAboveLeaf0111221022 + e24KC2ThetaAboveLeaf0111221023 + +theorem e24KC2ThetaAboveNode011122103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112210) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01112210) + e24KC2ThetaAboveLeaf0111221030 e24KC2ThetaAboveLeaf0111221031 e24KC2ThetaAboveLeaf0111221032 + e24KC2ThetaAboveLeaf0111221033 + +theorem e24KC2ThetaAboveNode011122112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01112211) + e24KC2ThetaAboveLeaf0111221120 e24KC2ThetaAboveLeaf0111221121 e24KC2ThetaAboveLeaf0111221122 + e24KC2ThetaAboveLeaf0111221123 + +theorem e24KC2ThetaAboveNode011122113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112211) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01112211) + e24KC2ThetaAboveLeaf0111221130 e24KC2ThetaAboveLeaf0111221131 e24KC2ThetaAboveLeaf0111221132 + e24KC2ThetaAboveLeaf0111221133 + +theorem e24KC2ThetaAboveNode011122120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01112212) + e24KC2ThetaAboveLeaf0111221200 e24KC2ThetaAboveLeaf0111221201 e24KC2ThetaAboveLeaf0111221202 + e24KC2ThetaAboveLeaf0111221203 + +theorem e24KC2ThetaAboveNode011122121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01112212) + e24KC2ThetaAboveLeaf0111221210 e24KC2ThetaAboveLeaf0111221211 e24KC2ThetaAboveLeaf0111221212 + e24KC2ThetaAboveLeaf0111221213 + +theorem e24KC2ThetaAboveNode011122122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01112212) + e24KC2ThetaAboveLeaf0111221220 e24KC2ThetaAboveLeaf0111221221 e24KC2ThetaAboveLeaf0111221222 + e24KC2ThetaAboveLeaf0111221223 + +theorem e24KC2ThetaAboveNode011122123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01112212) + e24KC2ThetaAboveLeaf0111221230 e24KC2ThetaAboveLeaf0111221231 e24KC2ThetaAboveLeaf0111221232 + e24KC2ThetaAboveLeaf0111221233 + +theorem e24KC2ThetaAboveNode011122130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01112213) + e24KC2ThetaAboveLeaf0111221300 e24KC2ThetaAboveLeaf0111221301 e24KC2ThetaAboveLeaf0111221302 + e24KC2ThetaAboveLeaf0111221303 + +theorem e24KC2ThetaAboveNode011122131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01112213) + e24KC2ThetaAboveLeaf0111221310 e24KC2ThetaAboveLeaf0111221311 e24KC2ThetaAboveLeaf0111221312 + e24KC2ThetaAboveLeaf0111221313 + +theorem e24KC2ThetaAboveNode011122132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01112213) + e24KC2ThetaAboveLeaf0111221320 e24KC2ThetaAboveLeaf0111221321 e24KC2ThetaAboveLeaf0111221322 + e24KC2ThetaAboveLeaf0111221323 + +theorem e24KC2ThetaAboveNode011122133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01112213) + e24KC2ThetaAboveLeaf0111221330 e24KC2ThetaAboveLeaf0111221331 e24KC2ThetaAboveLeaf0111221332 + e24KC2ThetaAboveLeaf0111221333 + +theorem e24KC2ThetaAboveNode011123002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01112300) + e24KC2ThetaAboveLeaf0111230020 e24KC2ThetaAboveLeaf0111230021 e24KC2ThetaAboveLeaf0111230022 + e24KC2ThetaAboveLeaf0111230023 + +theorem e24KC2ThetaAboveNode011123003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112300) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01112300) + e24KC2ThetaAboveLeaf0111230030 e24KC2ThetaAboveLeaf0111230031 e24KC2ThetaAboveLeaf0111230032 + e24KC2ThetaAboveLeaf0111230033 + +theorem e24KC2ThetaAboveNode011123012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01112301) + e24KC2ThetaAboveLeaf0111230120 e24KC2ThetaAboveLeaf0111230121 e24KC2ThetaAboveLeaf0111230122 + e24KC2ThetaAboveLeaf0111230123 + +theorem e24KC2ThetaAboveNode011123013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112301) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01112301) + e24KC2ThetaAboveLeaf0111230130 e24KC2ThetaAboveLeaf0111230131 e24KC2ThetaAboveLeaf0111230132 + e24KC2ThetaAboveLeaf0111230133 + +theorem e24KC2ThetaAboveNode011123020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01112302) + e24KC2ThetaAboveLeaf0111230200 e24KC2ThetaAboveLeaf0111230201 e24KC2ThetaAboveLeaf0111230202 + e24KC2ThetaAboveLeaf0111230203 + +theorem e24KC2ThetaAboveNode011123021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01112302) + e24KC2ThetaAboveLeaf0111230210 e24KC2ThetaAboveLeaf0111230211 e24KC2ThetaAboveLeaf0111230212 + e24KC2ThetaAboveLeaf0111230213 + +theorem e24KC2ThetaAboveNode011123022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01112302) + e24KC2ThetaAboveLeaf0111230220 e24KC2ThetaAboveLeaf0111230221 e24KC2ThetaAboveLeaf0111230222 + e24KC2ThetaAboveLeaf0111230223 + +theorem e24KC2ThetaAboveNode011123023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01112302) + e24KC2ThetaAboveLeaf0111230230 e24KC2ThetaAboveLeaf0111230231 e24KC2ThetaAboveLeaf0111230232 + e24KC2ThetaAboveLeaf0111230233 + +theorem e24KC2ThetaAboveNode011123030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01112303) + e24KC2ThetaAboveLeaf0111230300 e24KC2ThetaAboveLeaf0111230301 e24KC2ThetaAboveLeaf0111230302 + e24KC2ThetaAboveLeaf0111230303 + +theorem e24KC2ThetaAboveNode011123031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01112303) + e24KC2ThetaAboveLeaf0111230310 e24KC2ThetaAboveLeaf0111230311 e24KC2ThetaAboveLeaf0111230312 + e24KC2ThetaAboveLeaf0111230313 + +theorem e24KC2ThetaAboveNode011123032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01112303) + e24KC2ThetaAboveLeaf0111230320 e24KC2ThetaAboveLeaf0111230321 e24KC2ThetaAboveLeaf0111230322 + e24KC2ThetaAboveLeaf0111230323 + +theorem e24KC2ThetaAboveNode011123033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01112303) + e24KC2ThetaAboveLeaf0111230330 e24KC2ThetaAboveLeaf0111230331 e24KC2ThetaAboveLeaf0111230332 + e24KC2ThetaAboveLeaf0111230333 + +theorem e24KC2ThetaAboveNode011123102 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01112310) + e24KC2ThetaAboveLeaf0111231020 e24KC2ThetaAboveLeaf0111231021 e24KC2ThetaAboveLeaf0111231022 + e24KC2ThetaAboveLeaf0111231023 + +theorem e24KC2ThetaAboveNode011123103 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112310) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01112310) + e24KC2ThetaAboveLeaf0111231030 e24KC2ThetaAboveLeaf0111231031 e24KC2ThetaAboveLeaf0111231032 + e24KC2ThetaAboveLeaf0111231033 + +theorem e24KC2ThetaAboveNode011123112 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01112311) + e24KC2ThetaAboveLeaf0111231120 e24KC2ThetaAboveLeaf0111231121 e24KC2ThetaAboveLeaf0111231122 + e24KC2ThetaAboveLeaf0111231123 + +theorem e24KC2ThetaAboveNode011123113 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112311) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01112311) + e24KC2ThetaAboveLeaf0111231130 e24KC2ThetaAboveLeaf0111231131 e24KC2ThetaAboveLeaf0111231132 + e24KC2ThetaAboveLeaf0111231133 + +theorem e24KC2ThetaAboveNode011123120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01112312) + e24KC2ThetaAboveLeaf0111231200 e24KC2ThetaAboveLeaf0111231201 e24KC2ThetaAboveLeaf0111231202 + e24KC2ThetaAboveLeaf0111231203 + +theorem e24KC2ThetaAboveNode011123121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01112312) + e24KC2ThetaAboveLeaf0111231210 e24KC2ThetaAboveLeaf0111231211 e24KC2ThetaAboveLeaf0111231212 + e24KC2ThetaAboveLeaf0111231213 + +theorem e24KC2ThetaAboveNode011123122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01112312) + e24KC2ThetaAboveLeaf0111231220 e24KC2ThetaAboveLeaf0111231221 e24KC2ThetaAboveLeaf0111231222 + e24KC2ThetaAboveLeaf0111231223 + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle032.lean b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle032.lean new file mode 100644 index 0000000000..d895be5ff0 --- /dev/null +++ b/LeanPool/MovingSofa/GerverSofa/KernelOnly/PartE/Certificates/Bundle032.lean @@ -0,0 +1,9678 @@ +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +module + +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle022 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle024 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle028 +public import LeanPool.MovingSofa.GerverSofa.KernelOnly.PartE.Certificates.Bundle031 +/-! +# Gerver sofa: related certificate and semantic modules + +* `GerverSofa.KernelOnly.PartE.Certificates.Batch046`. +-/ + +@[expose] public section + +noncomputable section + +section + +/- +Copyright (c) 2026 Dawid Trela. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Dawid Trela +-/ +/-! +# Gerver sofa dependency batch + +* `KernelOnly.PartE.ThetaAbove.ReconstructionMiddle`. +* `KernelOnly.PartE.E24KC6ThetaAboveReconstruct`. +* `KernelOnly.PartE.E24KC6KernelFinalClosure`. +-/ + +@[expose] public section + +noncomputable section + +section + +/-! +# Intermediate reconstruction of the upper theta cover +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +open CertificateCells1a75b359b5 + +theorem e24KC2ThetaAboveNode011123123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01112312) + e24KC2ThetaAboveLeaf0111231230 e24KC2ThetaAboveLeaf0111231231 e24KC2ThetaAboveLeaf0111231232 + e24KC2ThetaAboveLeaf0111231233 + +theorem e24KC2ThetaAboveNode011123130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01112313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01112313) + e24KC2ThetaAboveLeaf0111231300 e24KC2ThetaAboveLeaf0111231301 e24KC2ThetaAboveLeaf0111231302 + e24KC2ThetaAboveLeaf0111231303 + +theorem e24KC2ThetaAboveNode011123131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01112313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01112313) + e24KC2ThetaAboveLeaf0111231310 e24KC2ThetaAboveLeaf0111231311 e24KC2ThetaAboveLeaf0111231312 + e24KC2ThetaAboveLeaf0111231313 + +theorem e24KC2ThetaAboveNode011123132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01112313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01112313) + e24KC2ThetaAboveLeaf0111231320 e24KC2ThetaAboveLeaf0111231321 e24KC2ThetaAboveLeaf0111231322 + e24KC2ThetaAboveLeaf0111231323 + +theorem e24KC2ThetaAboveNode011123133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01112313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01112313) + e24KC2ThetaAboveLeaf0111231330 e24KC2ThetaAboveLeaf0111231331 e24KC2ThetaAboveLeaf0111231332 + e24KC2ThetaAboveLeaf0111231333 + +theorem e24KC2ThetaAboveNode011132002 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01113200) + e24KC2ThetaAboveLeaf0111320020 e24KC2ThetaAboveLeaf0111320021 e24KC2ThetaAboveLeaf0111320022 + e24KC2ThetaAboveLeaf0111320023 + +theorem e24KC2ThetaAboveNode011132003 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113200) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01113200) + e24KC2ThetaAboveLeaf0111320030 e24KC2ThetaAboveLeaf0111320031 e24KC2ThetaAboveLeaf0111320032 + e24KC2ThetaAboveLeaf0111320033 + +theorem e24KC2ThetaAboveNode011132012 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01113201) + e24KC2ThetaAboveLeaf0111320120 e24KC2ThetaAboveLeaf0111320121 e24KC2ThetaAboveLeaf0111320122 + e24KC2ThetaAboveLeaf0111320123 + +theorem e24KC2ThetaAboveNode011132013 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113201) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01113201) + e24KC2ThetaAboveLeaf0111320130 e24KC2ThetaAboveLeaf0111320131 e24KC2ThetaAboveLeaf0111320132 + e24KC2ThetaAboveLeaf0111320133 + +theorem e24KC2ThetaAboveNode011132020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01113202) + e24KC2ThetaAboveLeaf0111320200 e24KC2ThetaAboveLeaf0111320201 e24KC2ThetaAboveLeaf0111320202 + e24KC2ThetaAboveLeaf0111320203 + +theorem e24KC2ThetaAboveNode011132021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01113202) + e24KC2ThetaAboveLeaf0111320210 e24KC2ThetaAboveLeaf0111320211 e24KC2ThetaAboveLeaf0111320212 + e24KC2ThetaAboveLeaf0111320213 + +theorem e24KC2ThetaAboveNode011132022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01113202) + e24KC2ThetaAboveLeaf0111320220 e24KC2ThetaAboveLeaf0111320221 e24KC2ThetaAboveLeaf0111320222 + e24KC2ThetaAboveLeaf0111320223 + +theorem e24KC2ThetaAboveNode011132023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01113202) + e24KC2ThetaAboveLeaf0111320230 e24KC2ThetaAboveLeaf0111320231 e24KC2ThetaAboveLeaf0111320232 + e24KC2ThetaAboveLeaf0111320233 + +theorem e24KC2ThetaAboveNode011132030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01113203) + e24KC2ThetaAboveLeaf0111320300 e24KC2ThetaAboveLeaf0111320301 e24KC2ThetaAboveLeaf0111320302 + e24KC2ThetaAboveLeaf0111320303 + +theorem e24KC2ThetaAboveNode011132031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01113203) + e24KC2ThetaAboveLeaf0111320310 e24KC2ThetaAboveLeaf0111320311 e24KC2ThetaAboveLeaf0111320312 + e24KC2ThetaAboveLeaf0111320313 + +theorem e24KC2ThetaAboveNode011132032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01113203) + e24KC2ThetaAboveLeaf0111320320 e24KC2ThetaAboveLeaf0111320321 e24KC2ThetaAboveLeaf0111320322 + e24KC2ThetaAboveLeaf0111320323 + +theorem e24KC2ThetaAboveNode011132033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01113203) + e24KC2ThetaAboveLeaf0111320330 e24KC2ThetaAboveLeaf0111320331 e24KC2ThetaAboveLeaf0111320332 + e24KC2ThetaAboveLeaf0111320333 + +theorem e24KC2ThetaAboveNode011132120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01113212) + e24KC2ThetaAboveLeaf0111321200 e24KC2ThetaAboveLeaf0111321201 e24KC2ThetaAboveLeaf0111321202 + e24KC2ThetaAboveLeaf0111321203 + +theorem e24KC2ThetaAboveNode011132121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01113212) + e24KC2ThetaAboveLeaf0111321210 e24KC2ThetaAboveLeaf0111321211 e24KC2ThetaAboveLeaf0111321212 + e24KC2ThetaAboveLeaf0111321213 + +theorem e24KC2ThetaAboveNode011132122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01113212) + e24KC2ThetaAboveLeaf0111321220 e24KC2ThetaAboveLeaf0111321221 e24KC2ThetaAboveLeaf0111321222 + e24KC2ThetaAboveLeaf0111321223 + +theorem e24KC2ThetaAboveNode011132123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01113212) + e24KC2ThetaAboveLeaf0111321230 e24KC2ThetaAboveLeaf0111321231 e24KC2ThetaAboveLeaf0111321232 + e24KC2ThetaAboveLeaf0111321233 + +theorem e24KC2ThetaAboveNode011132130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01113213) + e24KC2ThetaAboveLeaf0111321300 e24KC2ThetaAboveLeaf0111321301 e24KC2ThetaAboveLeaf0111321302 + e24KC2ThetaAboveLeaf0111321303 + +theorem e24KC2ThetaAboveNode011132131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01113213) + e24KC2ThetaAboveLeaf0111321310 e24KC2ThetaAboveLeaf0111321311 e24KC2ThetaAboveLeaf0111321312 + e24KC2ThetaAboveLeaf0111321313 + +theorem e24KC2ThetaAboveNode011132132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01113213) + e24KC2ThetaAboveLeaf0111321320 e24KC2ThetaAboveLeaf0111321321 e24KC2ThetaAboveLeaf0111321322 + e24KC2ThetaAboveLeaf0111321323 + +theorem e24KC2ThetaAboveNode011132133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01113213) + e24KC2ThetaAboveLeaf0111321330 e24KC2ThetaAboveLeaf0111321331 e24KC2ThetaAboveLeaf0111321332 + e24KC2ThetaAboveLeaf0111321333 + +theorem e24KC2ThetaAboveNode011133020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01113302) + e24KC2ThetaAboveLeaf0111330200 e24KC2ThetaAboveLeaf0111330201 e24KC2ThetaAboveLeaf0111330202 + e24KC2ThetaAboveLeaf0111330203 + +theorem e24KC2ThetaAboveNode011133021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01113302) + e24KC2ThetaAboveLeaf0111330210 e24KC2ThetaAboveLeaf0111330211 e24KC2ThetaAboveLeaf0111330212 + e24KC2ThetaAboveLeaf0111330213 + +theorem e24KC2ThetaAboveNode011133022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01113302) + e24KC2ThetaAboveLeaf0111330220 e24KC2ThetaAboveLeaf0111330221 e24KC2ThetaAboveLeaf0111330222 + e24KC2ThetaAboveLeaf0111330223 + +theorem e24KC2ThetaAboveNode011133023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01113302) + e24KC2ThetaAboveLeaf0111330230 e24KC2ThetaAboveLeaf0111330231 e24KC2ThetaAboveLeaf0111330232 + e24KC2ThetaAboveLeaf0111330233 + +theorem e24KC2ThetaAboveNode011133030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01113303) + e24KC2ThetaAboveLeaf0111330300 e24KC2ThetaAboveLeaf0111330301 e24KC2ThetaAboveLeaf0111330302 + e24KC2ThetaAboveLeaf0111330303 + +theorem e24KC2ThetaAboveNode011133031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01113303) + e24KC2ThetaAboveLeaf0111330310 e24KC2ThetaAboveLeaf0111330311 e24KC2ThetaAboveLeaf0111330312 + e24KC2ThetaAboveLeaf0111330313 + +theorem e24KC2ThetaAboveNode011133032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01113303) + e24KC2ThetaAboveLeaf0111330320 e24KC2ThetaAboveLeaf0111330321 e24KC2ThetaAboveLeaf0111330322 + e24KC2ThetaAboveLeaf0111330323 + +theorem e24KC2ThetaAboveNode011133033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01113303) + e24KC2ThetaAboveLeaf0111330330 e24KC2ThetaAboveLeaf0111330331 e24KC2ThetaAboveLeaf0111330332 + e24KC2ThetaAboveLeaf0111330333 + +theorem e24KC2ThetaAboveNode011133120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01113312) + e24KC2ThetaAboveLeaf0111331200 e24KC2ThetaAboveLeaf0111331201 e24KC2ThetaAboveLeaf0111331202 + e24KC2ThetaAboveLeaf0111331203 + +theorem e24KC2ThetaAboveNode011133121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01113312) + e24KC2ThetaAboveLeaf0111331210 e24KC2ThetaAboveLeaf0111331211 e24KC2ThetaAboveLeaf0111331212 + e24KC2ThetaAboveLeaf0111331213 + +theorem e24KC2ThetaAboveNode011133122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01113312) + e24KC2ThetaAboveLeaf0111331220 e24KC2ThetaAboveLeaf0111331221 e24KC2ThetaAboveLeaf0111331222 + e24KC2ThetaAboveLeaf0111331223 + +theorem e24KC2ThetaAboveNode011133123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01113312) + e24KC2ThetaAboveLeaf0111331230 e24KC2ThetaAboveLeaf0111331231 e24KC2ThetaAboveLeaf0111331232 + e24KC2ThetaAboveLeaf0111331233 + +theorem e24KC2ThetaAboveNode011133130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell01113313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell01113313) + e24KC2ThetaAboveLeaf0111331300 e24KC2ThetaAboveLeaf0111331301 e24KC2ThetaAboveLeaf0111331302 + e24KC2ThetaAboveLeaf0111331303 + +theorem e24KC2ThetaAboveNode011133131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell01113313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell01113313) + e24KC2ThetaAboveLeaf0111331310 e24KC2ThetaAboveLeaf0111331311 e24KC2ThetaAboveLeaf0111331312 + e24KC2ThetaAboveLeaf0111331313 + +theorem e24KC2ThetaAboveNode011133132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell01113313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell01113313) + e24KC2ThetaAboveLeaf0111331320 e24KC2ThetaAboveLeaf0111331321 e24KC2ThetaAboveLeaf0111331322 + e24KC2ThetaAboveLeaf0111331323 + +theorem e24KC2ThetaAboveNode011133133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell01113313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell01113313) + e24KC2ThetaAboveLeaf0111331330 e24KC2ThetaAboveLeaf0111331331 e24KC2ThetaAboveLeaf0111331332 + e24KC2ThetaAboveLeaf0111331333 + +theorem e24KC2ThetaAboveNode100022020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10002202) + e24KC2ThetaAboveLeaf1000220200 e24KC2ThetaAboveLeaf1000220201 e24KC2ThetaAboveLeaf1000220202 + e24KC2ThetaAboveLeaf1000220203 + +theorem e24KC2ThetaAboveNode100022021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10002202) + e24KC2ThetaAboveLeaf1000220210 e24KC2ThetaAboveLeaf1000220211 e24KC2ThetaAboveLeaf1000220212 + e24KC2ThetaAboveLeaf1000220213 + +theorem e24KC2ThetaAboveNode100022022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10002202) + e24KC2ThetaAboveLeaf1000220220 e24KC2ThetaAboveLeaf1000220221 e24KC2ThetaAboveLeaf1000220222 + e24KC2ThetaAboveLeaf1000220223 + +theorem e24KC2ThetaAboveNode100022023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10002202) + e24KC2ThetaAboveLeaf1000220230 e24KC2ThetaAboveLeaf1000220231 e24KC2ThetaAboveLeaf1000220232 + e24KC2ThetaAboveLeaf1000220233 + +theorem e24KC2ThetaAboveNode100022030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10002203) + e24KC2ThetaAboveLeaf1000220300 e24KC2ThetaAboveLeaf1000220301 e24KC2ThetaAboveLeaf1000220302 + e24KC2ThetaAboveLeaf1000220303 + +theorem e24KC2ThetaAboveNode100022031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10002203) + e24KC2ThetaAboveLeaf1000220310 e24KC2ThetaAboveLeaf1000220311 e24KC2ThetaAboveLeaf1000220312 + e24KC2ThetaAboveLeaf1000220313 + +theorem e24KC2ThetaAboveNode100022032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10002203) + e24KC2ThetaAboveLeaf1000220320 e24KC2ThetaAboveLeaf1000220321 e24KC2ThetaAboveLeaf1000220322 + e24KC2ThetaAboveLeaf1000220323 + +theorem e24KC2ThetaAboveNode100022033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10002203) + e24KC2ThetaAboveLeaf1000220330 e24KC2ThetaAboveLeaf1000220331 e24KC2ThetaAboveLeaf1000220332 + e24KC2ThetaAboveLeaf1000220333 + +theorem e24KC2ThetaAboveNode100022120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10002212) + e24KC2ThetaAboveLeaf1000221200 e24KC2ThetaAboveLeaf1000221201 e24KC2ThetaAboveLeaf1000221202 + e24KC2ThetaAboveLeaf1000221203 + +theorem e24KC2ThetaAboveNode100022121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10002212) + e24KC2ThetaAboveLeaf1000221210 e24KC2ThetaAboveLeaf1000221211 e24KC2ThetaAboveLeaf1000221212 + e24KC2ThetaAboveLeaf1000221213 + +theorem e24KC2ThetaAboveNode100022122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10002212) + e24KC2ThetaAboveLeaf1000221220 e24KC2ThetaAboveLeaf1000221221 e24KC2ThetaAboveLeaf1000221222 + e24KC2ThetaAboveLeaf1000221223 + +theorem e24KC2ThetaAboveNode100022123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10002212) + e24KC2ThetaAboveLeaf1000221230 e24KC2ThetaAboveLeaf1000221231 e24KC2ThetaAboveLeaf1000221232 + e24KC2ThetaAboveLeaf1000221233 + +theorem e24KC2ThetaAboveNode100022130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10002213) + e24KC2ThetaAboveLeaf1000221300 e24KC2ThetaAboveLeaf1000221301 e24KC2ThetaAboveLeaf1000221302 + e24KC2ThetaAboveLeaf1000221303 + +theorem e24KC2ThetaAboveNode100022131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10002213) + e24KC2ThetaAboveLeaf1000221310 e24KC2ThetaAboveLeaf1000221311 e24KC2ThetaAboveLeaf1000221312 + e24KC2ThetaAboveLeaf1000221313 + +theorem e24KC2ThetaAboveNode100022132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10002213) + e24KC2ThetaAboveLeaf1000221320 e24KC2ThetaAboveLeaf1000221321 e24KC2ThetaAboveLeaf1000221322 + e24KC2ThetaAboveLeaf1000221323 + +theorem e24KC2ThetaAboveNode100022133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10002213) + e24KC2ThetaAboveLeaf1000221330 e24KC2ThetaAboveLeaf1000221331 e24KC2ThetaAboveLeaf1000221332 + e24KC2ThetaAboveLeaf1000221333 + +theorem e24KC2ThetaAboveNode100023020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10002302) + e24KC2ThetaAboveLeaf1000230200 e24KC2ThetaAboveLeaf1000230201 e24KC2ThetaAboveLeaf1000230202 + e24KC2ThetaAboveLeaf1000230203 + +theorem e24KC2ThetaAboveNode100023021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10002302) + e24KC2ThetaAboveLeaf1000230210 e24KC2ThetaAboveLeaf1000230211 e24KC2ThetaAboveLeaf1000230212 + e24KC2ThetaAboveLeaf1000230213 + +theorem e24KC2ThetaAboveNode100023022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10002302) + e24KC2ThetaAboveLeaf1000230220 e24KC2ThetaAboveLeaf1000230221 e24KC2ThetaAboveLeaf1000230222 + e24KC2ThetaAboveLeaf1000230223 + +theorem e24KC2ThetaAboveNode100023023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10002302) + e24KC2ThetaAboveLeaf1000230230 e24KC2ThetaAboveLeaf1000230231 e24KC2ThetaAboveLeaf1000230232 + e24KC2ThetaAboveLeaf1000230233 + +theorem e24KC2ThetaAboveNode100023030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10002303) + e24KC2ThetaAboveLeaf1000230300 e24KC2ThetaAboveLeaf1000230301 e24KC2ThetaAboveLeaf1000230302 + e24KC2ThetaAboveLeaf1000230303 + +theorem e24KC2ThetaAboveNode100023031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10002303) + e24KC2ThetaAboveLeaf1000230310 e24KC2ThetaAboveLeaf1000230311 e24KC2ThetaAboveLeaf1000230312 + e24KC2ThetaAboveLeaf1000230313 + +theorem e24KC2ThetaAboveNode100023032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10002303) + e24KC2ThetaAboveLeaf1000230320 e24KC2ThetaAboveLeaf1000230321 e24KC2ThetaAboveLeaf1000230322 + e24KC2ThetaAboveLeaf1000230323 + +theorem e24KC2ThetaAboveNode100023033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10002303) + e24KC2ThetaAboveLeaf1000230330 e24KC2ThetaAboveLeaf1000230331 e24KC2ThetaAboveLeaf1000230332 + e24KC2ThetaAboveLeaf1000230333 + +theorem e24KC2ThetaAboveNode100023120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10002312) + e24KC2ThetaAboveLeaf1000231200 e24KC2ThetaAboveLeaf1000231201 e24KC2ThetaAboveLeaf1000231202 + e24KC2ThetaAboveLeaf1000231203 + +theorem e24KC2ThetaAboveNode100023121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10002312) + e24KC2ThetaAboveLeaf1000231210 e24KC2ThetaAboveLeaf1000231211 e24KC2ThetaAboveLeaf1000231212 + e24KC2ThetaAboveLeaf1000231213 + +theorem e24KC2ThetaAboveNode100023122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10002312) + e24KC2ThetaAboveLeaf1000231220 e24KC2ThetaAboveLeaf1000231221 e24KC2ThetaAboveLeaf1000231222 + e24KC2ThetaAboveLeaf1000231223 + +theorem e24KC2ThetaAboveNode100023123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10002312) + e24KC2ThetaAboveLeaf1000231230 e24KC2ThetaAboveLeaf1000231231 e24KC2ThetaAboveLeaf1000231232 + e24KC2ThetaAboveLeaf1000231233 + +theorem e24KC2ThetaAboveNode100023130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10002313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10002313) + e24KC2ThetaAboveLeaf1000231300 e24KC2ThetaAboveLeaf1000231301 e24KC2ThetaAboveLeaf1000231302 + e24KC2ThetaAboveLeaf1000231303 + +theorem e24KC2ThetaAboveNode100023131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10002313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10002313) + e24KC2ThetaAboveLeaf1000231310 e24KC2ThetaAboveLeaf1000231311 e24KC2ThetaAboveLeaf1000231312 + e24KC2ThetaAboveLeaf1000231313 + +theorem e24KC2ThetaAboveNode100023132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10002313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10002313) + e24KC2ThetaAboveLeaf1000231320 e24KC2ThetaAboveLeaf1000231321 e24KC2ThetaAboveLeaf1000231322 + e24KC2ThetaAboveLeaf1000231323 + +theorem e24KC2ThetaAboveNode100023133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10002313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10002313) + e24KC2ThetaAboveLeaf1000231330 e24KC2ThetaAboveLeaf1000231331 e24KC2ThetaAboveLeaf1000231332 + e24KC2ThetaAboveLeaf1000231333 + +theorem e24KC2ThetaAboveNode100032020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10003202) + e24KC2ThetaAboveLeaf1000320200 e24KC2ThetaAboveLeaf1000320201 e24KC2ThetaAboveLeaf1000320202 + e24KC2ThetaAboveLeaf1000320203 + +theorem e24KC2ThetaAboveNode100032021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10003202) + e24KC2ThetaAboveLeaf1000320210 e24KC2ThetaAboveLeaf1000320211 e24KC2ThetaAboveLeaf1000320212 + e24KC2ThetaAboveLeaf1000320213 + +theorem e24KC2ThetaAboveNode100032022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10003202) + e24KC2ThetaAboveLeaf1000320220 e24KC2ThetaAboveLeaf1000320221 e24KC2ThetaAboveLeaf1000320222 + e24KC2ThetaAboveLeaf1000320223 + +theorem e24KC2ThetaAboveNode100032023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10003202) + e24KC2ThetaAboveLeaf1000320230 e24KC2ThetaAboveLeaf1000320231 e24KC2ThetaAboveLeaf1000320232 + e24KC2ThetaAboveLeaf1000320233 + +theorem e24KC2ThetaAboveNode100032030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10003203) + e24KC2ThetaAboveLeaf1000320300 e24KC2ThetaAboveLeaf1000320301 e24KC2ThetaAboveLeaf1000320302 + e24KC2ThetaAboveLeaf1000320303 + +theorem e24KC2ThetaAboveNode100032031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10003203) + e24KC2ThetaAboveLeaf1000320310 e24KC2ThetaAboveLeaf1000320311 e24KC2ThetaAboveLeaf1000320312 + e24KC2ThetaAboveLeaf1000320313 + +theorem e24KC2ThetaAboveNode100032032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10003203) + e24KC2ThetaAboveLeaf1000320320 e24KC2ThetaAboveLeaf1000320321 e24KC2ThetaAboveLeaf1000320322 + e24KC2ThetaAboveLeaf1000320323 + +theorem e24KC2ThetaAboveNode100032033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10003203) + e24KC2ThetaAboveLeaf1000320330 e24KC2ThetaAboveLeaf1000320331 e24KC2ThetaAboveLeaf1000320332 + e24KC2ThetaAboveLeaf1000320333 + +theorem e24KC2ThetaAboveNode100032120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10003212) + e24KC2ThetaAboveLeaf1000321200 e24KC2ThetaAboveLeaf1000321201 e24KC2ThetaAboveLeaf1000321202 + e24KC2ThetaAboveLeaf1000321203 + +theorem e24KC2ThetaAboveNode100032121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10003212) + e24KC2ThetaAboveLeaf1000321210 e24KC2ThetaAboveLeaf1000321211 e24KC2ThetaAboveLeaf1000321212 + e24KC2ThetaAboveLeaf1000321213 + +theorem e24KC2ThetaAboveNode100032122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10003212) + e24KC2ThetaAboveLeaf1000321220 e24KC2ThetaAboveLeaf1000321221 e24KC2ThetaAboveLeaf1000321222 + e24KC2ThetaAboveLeaf1000321223 + +theorem e24KC2ThetaAboveNode100032123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10003212) + e24KC2ThetaAboveLeaf1000321230 e24KC2ThetaAboveLeaf1000321231 e24KC2ThetaAboveLeaf1000321232 + e24KC2ThetaAboveLeaf1000321233 + +theorem e24KC2ThetaAboveNode100032130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10003213) + e24KC2ThetaAboveLeaf1000321300 e24KC2ThetaAboveLeaf1000321301 e24KC2ThetaAboveLeaf1000321302 + e24KC2ThetaAboveLeaf1000321303 + +theorem e24KC2ThetaAboveNode100032131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10003213) + e24KC2ThetaAboveLeaf1000321310 e24KC2ThetaAboveLeaf1000321311 e24KC2ThetaAboveLeaf1000321312 + e24KC2ThetaAboveLeaf1000321313 + +theorem e24KC2ThetaAboveNode100032132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10003213) + e24KC2ThetaAboveLeaf1000321320 e24KC2ThetaAboveLeaf1000321321 e24KC2ThetaAboveLeaf1000321322 + e24KC2ThetaAboveLeaf1000321323 + +theorem e24KC2ThetaAboveNode100032133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10003213) + e24KC2ThetaAboveLeaf1000321330 e24KC2ThetaAboveLeaf1000321331 e24KC2ThetaAboveLeaf1000321332 + e24KC2ThetaAboveLeaf1000321333 + +theorem e24KC2ThetaAboveNode100033020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10003302) + e24KC2ThetaAboveLeaf1000330200 e24KC2ThetaAboveLeaf1000330201 e24KC2ThetaAboveLeaf1000330202 + e24KC2ThetaAboveLeaf1000330203 + +theorem e24KC2ThetaAboveNode100033021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10003302) + e24KC2ThetaAboveLeaf1000330210 e24KC2ThetaAboveLeaf1000330211 e24KC2ThetaAboveLeaf1000330212 + e24KC2ThetaAboveLeaf1000330213 + +theorem e24KC2ThetaAboveNode100033022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10003302) + e24KC2ThetaAboveLeaf1000330220 e24KC2ThetaAboveLeaf1000330221 e24KC2ThetaAboveLeaf1000330222 + e24KC2ThetaAboveLeaf1000330223 + +theorem e24KC2ThetaAboveNode100033023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10003302) + e24KC2ThetaAboveLeaf1000330230 e24KC2ThetaAboveLeaf1000330231 e24KC2ThetaAboveLeaf1000330232 + e24KC2ThetaAboveLeaf1000330233 + +theorem e24KC2ThetaAboveNode100033030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10003303) + e24KC2ThetaAboveLeaf1000330300 e24KC2ThetaAboveLeaf1000330301 e24KC2ThetaAboveLeaf1000330302 + e24KC2ThetaAboveLeaf1000330303 + +theorem e24KC2ThetaAboveNode100033031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10003303) + e24KC2ThetaAboveLeaf1000330310 e24KC2ThetaAboveLeaf1000330311 e24KC2ThetaAboveLeaf1000330312 + e24KC2ThetaAboveLeaf1000330313 + +theorem e24KC2ThetaAboveNode100033032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10003303) + e24KC2ThetaAboveLeaf1000330320 e24KC2ThetaAboveLeaf1000330321 e24KC2ThetaAboveLeaf1000330322 + e24KC2ThetaAboveLeaf1000330323 + +theorem e24KC2ThetaAboveNode100033033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10003303) + e24KC2ThetaAboveLeaf1000330330 e24KC2ThetaAboveLeaf1000330331 e24KC2ThetaAboveLeaf1000330332 + e24KC2ThetaAboveLeaf1000330333 + +theorem e24KC2ThetaAboveNode100033120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10003312) + e24KC2ThetaAboveLeaf1000331200 e24KC2ThetaAboveLeaf1000331201 e24KC2ThetaAboveLeaf1000331202 + e24KC2ThetaAboveLeaf1000331203 + +theorem e24KC2ThetaAboveNode100033121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10003312) + e24KC2ThetaAboveLeaf1000331210 e24KC2ThetaAboveLeaf1000331211 e24KC2ThetaAboveLeaf1000331212 + e24KC2ThetaAboveLeaf1000331213 + +theorem e24KC2ThetaAboveNode100033122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10003312) + e24KC2ThetaAboveLeaf1000331220 e24KC2ThetaAboveLeaf1000331221 e24KC2ThetaAboveLeaf1000331222 + e24KC2ThetaAboveLeaf1000331223 + +theorem e24KC2ThetaAboveNode100033123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10003312) + e24KC2ThetaAboveLeaf1000331230 e24KC2ThetaAboveLeaf1000331231 e24KC2ThetaAboveLeaf1000331232 + e24KC2ThetaAboveLeaf1000331233 + +theorem e24KC2ThetaAboveNode100033130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10003313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10003313) + e24KC2ThetaAboveLeaf1000331300 e24KC2ThetaAboveLeaf1000331301 e24KC2ThetaAboveLeaf1000331302 + e24KC2ThetaAboveLeaf1000331303 + +theorem e24KC2ThetaAboveNode100033131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10003313) + e24KC2ThetaAboveLeaf1000331310 e24KC2ThetaAboveLeaf1000331311 e24KC2ThetaAboveLeaf1000331312 + e24KC2ThetaAboveLeaf1000331313 + +theorem e24KC2ThetaAboveNode100033132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10003313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10003313) + e24KC2ThetaAboveLeaf1000331320 e24KC2ThetaAboveLeaf1000331321 e24KC2ThetaAboveLeaf1000331322 + e24KC2ThetaAboveLeaf1000331323 + +theorem e24KC2ThetaAboveNode100033133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10003313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10003313) + e24KC2ThetaAboveLeaf1000331330 e24KC2ThetaAboveLeaf1000331331 e24KC2ThetaAboveLeaf1000331332 + e24KC2ThetaAboveLeaf1000331333 + +theorem e24KC2ThetaAboveNode100033311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10003331) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10003331) + e24KC2ThetaAboveLeaf1000333110 e24KC2ThetaAboveLeaf1000333111 e24KC2ThetaAboveLeaf1000333112 + e24KC2ThetaAboveLeaf1000333113 + +theorem e24KC2ThetaAboveNode100122020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10012202) + e24KC2ThetaAboveLeaf1001220200 e24KC2ThetaAboveLeaf1001220201 e24KC2ThetaAboveLeaf1001220202 + e24KC2ThetaAboveLeaf1001220203 + +theorem e24KC2ThetaAboveNode100122021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10012202) + e24KC2ThetaAboveLeaf1001220210 e24KC2ThetaAboveLeaf1001220211 e24KC2ThetaAboveLeaf1001220212 + e24KC2ThetaAboveLeaf1001220213 + +theorem e24KC2ThetaAboveNode100122022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10012202) + e24KC2ThetaAboveLeaf1001220220 e24KC2ThetaAboveLeaf1001220221 e24KC2ThetaAboveLeaf1001220222 + e24KC2ThetaAboveLeaf1001220223 + +theorem e24KC2ThetaAboveNode100122023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10012202) + e24KC2ThetaAboveLeaf1001220230 e24KC2ThetaAboveLeaf1001220231 e24KC2ThetaAboveLeaf1001220232 + e24KC2ThetaAboveLeaf1001220233 + +theorem e24KC2ThetaAboveNode100122030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10012203) + e24KC2ThetaAboveLeaf1001220300 e24KC2ThetaAboveLeaf1001220301 e24KC2ThetaAboveLeaf1001220302 + e24KC2ThetaAboveLeaf1001220303 + +theorem e24KC2ThetaAboveNode100122031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10012203) + e24KC2ThetaAboveLeaf1001220310 e24KC2ThetaAboveLeaf1001220311 e24KC2ThetaAboveLeaf1001220312 + e24KC2ThetaAboveLeaf1001220313 + +theorem e24KC2ThetaAboveNode100122032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10012203) + e24KC2ThetaAboveLeaf1001220320 e24KC2ThetaAboveLeaf1001220321 e24KC2ThetaAboveLeaf1001220322 + e24KC2ThetaAboveLeaf1001220323 + +theorem e24KC2ThetaAboveNode100122033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10012203) + e24KC2ThetaAboveLeaf1001220330 e24KC2ThetaAboveLeaf1001220331 e24KC2ThetaAboveLeaf1001220332 + e24KC2ThetaAboveLeaf1001220333 + +theorem e24KC2ThetaAboveNode100122120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10012212) + e24KC2ThetaAboveLeaf1001221200 e24KC2ThetaAboveLeaf1001221201 e24KC2ThetaAboveLeaf1001221202 + e24KC2ThetaAboveLeaf1001221203 + +theorem e24KC2ThetaAboveNode100122121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10012212) + e24KC2ThetaAboveLeaf1001221210 e24KC2ThetaAboveLeaf1001221211 e24KC2ThetaAboveLeaf1001221212 + e24KC2ThetaAboveLeaf1001221213 + +theorem e24KC2ThetaAboveNode100122122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10012212) + e24KC2ThetaAboveLeaf1001221220 e24KC2ThetaAboveLeaf1001221221 e24KC2ThetaAboveLeaf1001221222 + e24KC2ThetaAboveLeaf1001221223 + +theorem e24KC2ThetaAboveNode100122123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10012212) + e24KC2ThetaAboveLeaf1001221230 e24KC2ThetaAboveLeaf1001221231 e24KC2ThetaAboveLeaf1001221232 + e24KC2ThetaAboveLeaf1001221233 + +theorem e24KC2ThetaAboveNode100122130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10012213) + e24KC2ThetaAboveLeaf1001221300 e24KC2ThetaAboveLeaf1001221301 e24KC2ThetaAboveLeaf1001221302 + e24KC2ThetaAboveLeaf1001221303 + +theorem e24KC2ThetaAboveNode100122131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10012213) + e24KC2ThetaAboveLeaf1001221310 e24KC2ThetaAboveLeaf1001221311 e24KC2ThetaAboveLeaf1001221312 + e24KC2ThetaAboveLeaf1001221313 + +theorem e24KC2ThetaAboveNode100122132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10012213) + e24KC2ThetaAboveLeaf1001221320 e24KC2ThetaAboveLeaf1001221321 e24KC2ThetaAboveLeaf1001221322 + e24KC2ThetaAboveLeaf1001221323 + +theorem e24KC2ThetaAboveNode100122133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10012213) + e24KC2ThetaAboveLeaf1001221330 e24KC2ThetaAboveLeaf1001221331 e24KC2ThetaAboveLeaf1001221332 + e24KC2ThetaAboveLeaf1001221333 + +theorem e24KC2ThetaAboveNode100122200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012220) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10012220) + e24KC2ThetaAboveLeaf1001222000 e24KC2ThetaAboveLeaf1001222001 e24KC2ThetaAboveLeaf1001222002 + e24KC2ThetaAboveLeaf1001222003 + +theorem e24KC2ThetaAboveNode100122201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012220) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10012220) + e24KC2ThetaAboveLeaf1001222010 e24KC2ThetaAboveLeaf1001222011 e24KC2ThetaAboveLeaf1001222012 + e24KC2ThetaAboveLeaf1001222013 + +theorem e24KC2ThetaAboveNode100122210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012221) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10012221) + e24KC2ThetaAboveLeaf1001222100 e24KC2ThetaAboveLeaf1001222101 e24KC2ThetaAboveLeaf1001222102 + e24KC2ThetaAboveLeaf1001222103 + +theorem e24KC2ThetaAboveNode100122211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012221) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10012221) + e24KC2ThetaAboveLeaf1001222110 e24KC2ThetaAboveLeaf1001222111 e24KC2ThetaAboveLeaf1001222112 + e24KC2ThetaAboveLeaf1001222113 + +theorem e24KC2ThetaAboveNode100122300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012230) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10012230) + e24KC2ThetaAboveLeaf1001223000 e24KC2ThetaAboveLeaf1001223001 e24KC2ThetaAboveLeaf1001223002 + e24KC2ThetaAboveLeaf1001223003 + +theorem e24KC2ThetaAboveNode100122301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012230) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10012230) + e24KC2ThetaAboveLeaf1001223010 e24KC2ThetaAboveLeaf1001223011 e24KC2ThetaAboveLeaf1001223012 + e24KC2ThetaAboveLeaf1001223013 + +theorem e24KC2ThetaAboveNode100122310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012231) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10012231) + e24KC2ThetaAboveLeaf1001223100 e24KC2ThetaAboveLeaf1001223101 e24KC2ThetaAboveLeaf1001223102 + e24KC2ThetaAboveLeaf1001223103 + +theorem e24KC2ThetaAboveNode100122311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012231) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10012231) + e24KC2ThetaAboveLeaf1001223110 e24KC2ThetaAboveLeaf1001223111 e24KC2ThetaAboveLeaf1001223112 + e24KC2ThetaAboveLeaf1001223113 + +theorem e24KC2ThetaAboveNode100123020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10012302) + e24KC2ThetaAboveLeaf1001230200 e24KC2ThetaAboveLeaf1001230201 e24KC2ThetaAboveLeaf1001230202 + e24KC2ThetaAboveLeaf1001230203 + +theorem e24KC2ThetaAboveNode100123021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10012302) + e24KC2ThetaAboveLeaf1001230210 e24KC2ThetaAboveLeaf1001230211 e24KC2ThetaAboveLeaf1001230212 + e24KC2ThetaAboveLeaf1001230213 + +theorem e24KC2ThetaAboveNode100123022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10012302) + e24KC2ThetaAboveLeaf1001230220 e24KC2ThetaAboveLeaf1001230221 e24KC2ThetaAboveLeaf1001230222 + e24KC2ThetaAboveLeaf1001230223 + +theorem e24KC2ThetaAboveNode100123023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10012302) + e24KC2ThetaAboveLeaf1001230230 e24KC2ThetaAboveLeaf1001230231 e24KC2ThetaAboveLeaf1001230232 + e24KC2ThetaAboveLeaf1001230233 + +theorem e24KC2ThetaAboveNode100123030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10012303) + e24KC2ThetaAboveLeaf1001230300 e24KC2ThetaAboveLeaf1001230301 e24KC2ThetaAboveLeaf1001230302 + e24KC2ThetaAboveLeaf1001230303 + +theorem e24KC2ThetaAboveNode100123031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10012303) + e24KC2ThetaAboveLeaf1001230310 e24KC2ThetaAboveLeaf1001230311 e24KC2ThetaAboveLeaf1001230312 + e24KC2ThetaAboveLeaf1001230313 + +theorem e24KC2ThetaAboveNode100123032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10012303) + e24KC2ThetaAboveLeaf1001230320 e24KC2ThetaAboveLeaf1001230321 e24KC2ThetaAboveLeaf1001230322 + e24KC2ThetaAboveLeaf1001230323 + +theorem e24KC2ThetaAboveNode100123033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10012303) + e24KC2ThetaAboveLeaf1001230330 e24KC2ThetaAboveLeaf1001230331 e24KC2ThetaAboveLeaf1001230332 + e24KC2ThetaAboveLeaf1001230333 + +theorem e24KC2ThetaAboveNode100123120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10012312) + e24KC2ThetaAboveLeaf1001231200 e24KC2ThetaAboveLeaf1001231201 e24KC2ThetaAboveLeaf1001231202 + e24KC2ThetaAboveLeaf1001231203 + +theorem e24KC2ThetaAboveNode100123121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10012312) + e24KC2ThetaAboveLeaf1001231210 e24KC2ThetaAboveLeaf1001231211 e24KC2ThetaAboveLeaf1001231212 + e24KC2ThetaAboveLeaf1001231213 + +theorem e24KC2ThetaAboveNode100123122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10012312) + e24KC2ThetaAboveLeaf1001231220 e24KC2ThetaAboveLeaf1001231221 e24KC2ThetaAboveLeaf1001231222 + e24KC2ThetaAboveLeaf1001231223 + +theorem e24KC2ThetaAboveNode100123123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10012312) + e24KC2ThetaAboveLeaf1001231230 e24KC2ThetaAboveLeaf1001231231 e24KC2ThetaAboveLeaf1001231232 + e24KC2ThetaAboveLeaf1001231233 + +theorem e24KC2ThetaAboveNode100123130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10012313) + e24KC2ThetaAboveLeaf1001231300 e24KC2ThetaAboveLeaf1001231301 e24KC2ThetaAboveLeaf1001231302 + e24KC2ThetaAboveLeaf1001231303 + +theorem e24KC2ThetaAboveNode100123131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10012313) + e24KC2ThetaAboveLeaf1001231310 e24KC2ThetaAboveLeaf1001231311 e24KC2ThetaAboveLeaf1001231312 + e24KC2ThetaAboveLeaf1001231313 + +theorem e24KC2ThetaAboveNode100123132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10012313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10012313) + e24KC2ThetaAboveLeaf1001231320 e24KC2ThetaAboveLeaf1001231321 e24KC2ThetaAboveLeaf1001231322 + e24KC2ThetaAboveLeaf1001231323 + +theorem e24KC2ThetaAboveNode100123133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10012313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10012313) + e24KC2ThetaAboveLeaf1001231330 e24KC2ThetaAboveLeaf1001231331 e24KC2ThetaAboveLeaf1001231332 + e24KC2ThetaAboveLeaf1001231333 + +theorem e24KC2ThetaAboveNode100123200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012320) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10012320) + e24KC2ThetaAboveLeaf1001232000 e24KC2ThetaAboveLeaf1001232001 e24KC2ThetaAboveLeaf1001232002 + e24KC2ThetaAboveLeaf1001232003 + +theorem e24KC2ThetaAboveNode100123201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012320) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10012320) + e24KC2ThetaAboveLeaf1001232010 e24KC2ThetaAboveLeaf1001232011 e24KC2ThetaAboveLeaf1001232012 + e24KC2ThetaAboveLeaf1001232013 + +theorem e24KC2ThetaAboveNode100123210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012321) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10012321) + e24KC2ThetaAboveLeaf1001232100 e24KC2ThetaAboveLeaf1001232101 e24KC2ThetaAboveLeaf1001232102 + e24KC2ThetaAboveLeaf1001232103 + +theorem e24KC2ThetaAboveNode100123211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012321) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10012321) + e24KC2ThetaAboveLeaf1001232110 e24KC2ThetaAboveLeaf1001232111 e24KC2ThetaAboveLeaf1001232112 + e24KC2ThetaAboveLeaf1001232113 + +theorem e24KC2ThetaAboveNode100123300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012330) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10012330) + e24KC2ThetaAboveLeaf1001233000 e24KC2ThetaAboveLeaf1001233001 e24KC2ThetaAboveLeaf1001233002 + e24KC2ThetaAboveLeaf1001233003 + +theorem e24KC2ThetaAboveNode100123301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012330) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10012330) + e24KC2ThetaAboveLeaf1001233010 e24KC2ThetaAboveLeaf1001233011 e24KC2ThetaAboveLeaf1001233012 + e24KC2ThetaAboveLeaf1001233013 + +theorem e24KC2ThetaAboveNode100123310 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10012331) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10012331) + e24KC2ThetaAboveLeaf1001233100 e24KC2ThetaAboveLeaf1001233101 e24KC2ThetaAboveLeaf1001233102 + e24KC2ThetaAboveLeaf1001233103 + +theorem e24KC2ThetaAboveNode100123311 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10012331) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10012331) + e24KC2ThetaAboveLeaf1001233110 e24KC2ThetaAboveLeaf1001233111 e24KC2ThetaAboveLeaf1001233112 + e24KC2ThetaAboveLeaf1001233113 + +theorem e24KC2ThetaAboveNode100132020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10013202) + e24KC2ThetaAboveLeaf1001320200 e24KC2ThetaAboveLeaf1001320201 e24KC2ThetaAboveLeaf1001320202 + e24KC2ThetaAboveLeaf1001320203 + +theorem e24KC2ThetaAboveNode100132021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10013202) + e24KC2ThetaAboveLeaf1001320210 e24KC2ThetaAboveLeaf1001320211 e24KC2ThetaAboveLeaf1001320212 + e24KC2ThetaAboveLeaf1001320213 + +theorem e24KC2ThetaAboveNode100132022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10013202) + e24KC2ThetaAboveLeaf1001320220 e24KC2ThetaAboveLeaf1001320221 e24KC2ThetaAboveLeaf1001320222 + e24KC2ThetaAboveLeaf1001320223 + +theorem e24KC2ThetaAboveNode100132023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10013202) + e24KC2ThetaAboveLeaf1001320230 e24KC2ThetaAboveLeaf1001320231 e24KC2ThetaAboveLeaf1001320232 + e24KC2ThetaAboveLeaf1001320233 + +theorem e24KC2ThetaAboveNode100132030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10013203) + e24KC2ThetaAboveLeaf1001320300 e24KC2ThetaAboveLeaf1001320301 e24KC2ThetaAboveLeaf1001320302 + e24KC2ThetaAboveLeaf1001320303 + +theorem e24KC2ThetaAboveNode100132031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10013203) + e24KC2ThetaAboveLeaf1001320310 e24KC2ThetaAboveLeaf1001320311 e24KC2ThetaAboveLeaf1001320312 + e24KC2ThetaAboveLeaf1001320313 + +theorem e24KC2ThetaAboveNode100132032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10013203) + e24KC2ThetaAboveLeaf1001320320 e24KC2ThetaAboveLeaf1001320321 e24KC2ThetaAboveLeaf1001320322 + e24KC2ThetaAboveLeaf1001320323 + +theorem e24KC2ThetaAboveNode100132033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10013203) + e24KC2ThetaAboveLeaf1001320330 e24KC2ThetaAboveLeaf1001320331 e24KC2ThetaAboveLeaf1001320332 + e24KC2ThetaAboveLeaf1001320333 + +theorem e24KC2ThetaAboveNode100132120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10013212) + e24KC2ThetaAboveLeaf1001321200 e24KC2ThetaAboveLeaf1001321201 e24KC2ThetaAboveLeaf1001321202 + e24KC2ThetaAboveLeaf1001321203 + +theorem e24KC2ThetaAboveNode100132121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10013212) + e24KC2ThetaAboveLeaf1001321210 e24KC2ThetaAboveLeaf1001321211 e24KC2ThetaAboveLeaf1001321212 + e24KC2ThetaAboveLeaf1001321213 + +theorem e24KC2ThetaAboveNode100132122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10013212) + e24KC2ThetaAboveLeaf1001321220 e24KC2ThetaAboveLeaf1001321221 e24KC2ThetaAboveLeaf1001321222 + e24KC2ThetaAboveLeaf1001321223 + +theorem e24KC2ThetaAboveNode100132123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10013212) + e24KC2ThetaAboveLeaf1001321230 e24KC2ThetaAboveLeaf1001321231 e24KC2ThetaAboveLeaf1001321232 + e24KC2ThetaAboveLeaf1001321233 + +theorem e24KC2ThetaAboveNode100132130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10013213) + e24KC2ThetaAboveLeaf1001321300 e24KC2ThetaAboveLeaf1001321301 e24KC2ThetaAboveLeaf1001321302 + e24KC2ThetaAboveLeaf1001321303 + +theorem e24KC2ThetaAboveNode100132131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10013213) + e24KC2ThetaAboveLeaf1001321310 e24KC2ThetaAboveLeaf1001321311 e24KC2ThetaAboveLeaf1001321312 + e24KC2ThetaAboveLeaf1001321313 + +theorem e24KC2ThetaAboveNode100132132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10013213) + e24KC2ThetaAboveLeaf1001321320 e24KC2ThetaAboveLeaf1001321321 e24KC2ThetaAboveLeaf1001321322 + e24KC2ThetaAboveLeaf1001321323 + +theorem e24KC2ThetaAboveNode100132133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10013213) + e24KC2ThetaAboveLeaf1001321330 e24KC2ThetaAboveLeaf1001321331 e24KC2ThetaAboveLeaf1001321332 + e24KC2ThetaAboveLeaf1001321333 + +theorem e24KC2ThetaAboveNode100132200 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013220) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10013220) + e24KC2ThetaAboveLeaf1001322000 e24KC2ThetaAboveLeaf1001322001 e24KC2ThetaAboveLeaf1001322002 + e24KC2ThetaAboveLeaf1001322003 + +theorem e24KC2ThetaAboveNode100132201 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013220) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10013220) + e24KC2ThetaAboveLeaf1001322010 e24KC2ThetaAboveLeaf1001322011 e24KC2ThetaAboveLeaf1001322012 + e24KC2ThetaAboveLeaf1001322013 + +theorem e24KC2ThetaAboveNode100132210 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013221) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10013221) + e24KC2ThetaAboveLeaf1001322100 e24KC2ThetaAboveLeaf1001322101 e24KC2ThetaAboveLeaf1001322102 + e24KC2ThetaAboveLeaf1001322103 + +theorem e24KC2ThetaAboveNode100132211 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013221) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10013221) + e24KC2ThetaAboveLeaf1001322110 e24KC2ThetaAboveLeaf1001322111 e24KC2ThetaAboveLeaf1001322112 + e24KC2ThetaAboveLeaf1001322113 + +theorem e24KC2ThetaAboveNode100132300 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013230) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10013230) + e24KC2ThetaAboveLeaf1001323000 e24KC2ThetaAboveLeaf1001323001 e24KC2ThetaAboveLeaf1001323002 + e24KC2ThetaAboveLeaf1001323003 + +theorem e24KC2ThetaAboveNode100132301 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013230) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10013230) + e24KC2ThetaAboveLeaf1001323010 e24KC2ThetaAboveLeaf1001323011 e24KC2ThetaAboveLeaf1001323012 + e24KC2ThetaAboveLeaf1001323013 + +theorem e24KC2ThetaAboveNode100133020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10013302) + e24KC2ThetaAboveLeaf1001330200 e24KC2ThetaAboveLeaf1001330201 e24KC2ThetaAboveLeaf1001330202 + e24KC2ThetaAboveLeaf1001330203 + +theorem e24KC2ThetaAboveNode100133021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10013302) + e24KC2ThetaAboveLeaf1001330210 e24KC2ThetaAboveLeaf1001330211 e24KC2ThetaAboveLeaf1001330212 + e24KC2ThetaAboveLeaf1001330213 + +theorem e24KC2ThetaAboveNode100133022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10013302) + e24KC2ThetaAboveLeaf1001330220 e24KC2ThetaAboveLeaf1001330221 e24KC2ThetaAboveLeaf1001330222 + e24KC2ThetaAboveLeaf1001330223 + +theorem e24KC2ThetaAboveNode100133023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013302) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10013302) + e24KC2ThetaAboveLeaf1001330230 e24KC2ThetaAboveLeaf1001330231 e24KC2ThetaAboveLeaf1001330232 + e24KC2ThetaAboveLeaf1001330233 + +theorem e24KC2ThetaAboveNode100133030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10013303) + e24KC2ThetaAboveLeaf1001330300 e24KC2ThetaAboveLeaf1001330301 e24KC2ThetaAboveLeaf1001330302 + e24KC2ThetaAboveLeaf1001330303 + +theorem e24KC2ThetaAboveNode100133031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10013303) + e24KC2ThetaAboveLeaf1001330310 e24KC2ThetaAboveLeaf1001330311 e24KC2ThetaAboveLeaf1001330312 + e24KC2ThetaAboveLeaf1001330313 + +theorem e24KC2ThetaAboveNode100133032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10013303) + e24KC2ThetaAboveLeaf1001330320 e24KC2ThetaAboveLeaf1001330321 e24KC2ThetaAboveLeaf1001330322 + e24KC2ThetaAboveLeaf1001330323 + +theorem e24KC2ThetaAboveNode100133033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013303) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10013303) + e24KC2ThetaAboveLeaf1001330330 e24KC2ThetaAboveLeaf1001330331 e24KC2ThetaAboveLeaf1001330332 + e24KC2ThetaAboveLeaf1001330333 + +theorem e24KC2ThetaAboveNode100133120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10013312) + e24KC2ThetaAboveLeaf1001331200 e24KC2ThetaAboveLeaf1001331201 e24KC2ThetaAboveLeaf1001331202 + e24KC2ThetaAboveLeaf1001331203 + +theorem e24KC2ThetaAboveNode100133121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10013312) + e24KC2ThetaAboveLeaf1001331210 e24KC2ThetaAboveLeaf1001331211 e24KC2ThetaAboveLeaf1001331212 + e24KC2ThetaAboveLeaf1001331213 + +theorem e24KC2ThetaAboveNode100133122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10013312) + e24KC2ThetaAboveLeaf1001331220 e24KC2ThetaAboveLeaf1001331221 e24KC2ThetaAboveLeaf1001331222 + e24KC2ThetaAboveLeaf1001331223 + +theorem e24KC2ThetaAboveNode100133123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013312) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10013312) + e24KC2ThetaAboveLeaf1001331230 e24KC2ThetaAboveLeaf1001331231 e24KC2ThetaAboveLeaf1001331232 + e24KC2ThetaAboveLeaf1001331233 + +theorem e24KC2ThetaAboveNode100133130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10013313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10013313) + e24KC2ThetaAboveLeaf1001331300 e24KC2ThetaAboveLeaf1001331301 e24KC2ThetaAboveLeaf1001331302 + e24KC2ThetaAboveLeaf1001331303 + +theorem e24KC2ThetaAboveNode100133131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10013313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10013313) + e24KC2ThetaAboveLeaf1001331310 e24KC2ThetaAboveLeaf1001331311 e24KC2ThetaAboveLeaf1001331312 + e24KC2ThetaAboveLeaf1001331313 + +theorem e24KC2ThetaAboveNode100133132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10013313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10013313) + e24KC2ThetaAboveLeaf1001331320 e24KC2ThetaAboveLeaf1001331321 e24KC2ThetaAboveLeaf1001331322 + e24KC2ThetaAboveLeaf1001331323 + +theorem e24KC2ThetaAboveNode100133133 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10013313) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10013313) + e24KC2ThetaAboveLeaf1001331330 e24KC2ThetaAboveLeaf1001331331 e24KC2ThetaAboveLeaf1001331332 + e24KC2ThetaAboveLeaf1001331333 + +theorem e24KC2ThetaAboveNode101022020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10102202) + e24KC2ThetaAboveLeaf1010220200 e24KC2ThetaAboveLeaf1010220201 e24KC2ThetaAboveLeaf1010220202 + e24KC2ThetaAboveLeaf1010220203 + +theorem e24KC2ThetaAboveNode101022021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10102202) + e24KC2ThetaAboveLeaf1010220210 e24KC2ThetaAboveLeaf1010220211 e24KC2ThetaAboveLeaf1010220212 + e24KC2ThetaAboveLeaf1010220213 + +theorem e24KC2ThetaAboveNode101022022 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10102202) + e24KC2ThetaAboveLeaf1010220220 e24KC2ThetaAboveLeaf1010220221 e24KC2ThetaAboveLeaf1010220222 + e24KC2ThetaAboveLeaf1010220223 + +theorem e24KC2ThetaAboveNode101022023 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102202) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10102202) + e24KC2ThetaAboveLeaf1010220230 e24KC2ThetaAboveLeaf1010220231 e24KC2ThetaAboveLeaf1010220232 + e24KC2ThetaAboveLeaf1010220233 + +theorem e24KC2ThetaAboveNode101022030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10102203) + e24KC2ThetaAboveLeaf1010220300 e24KC2ThetaAboveLeaf1010220301 e24KC2ThetaAboveLeaf1010220302 + e24KC2ThetaAboveLeaf1010220303 + +theorem e24KC2ThetaAboveNode101022031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10102203) + e24KC2ThetaAboveLeaf1010220310 e24KC2ThetaAboveLeaf1010220311 e24KC2ThetaAboveLeaf1010220312 + e24KC2ThetaAboveLeaf1010220313 + +theorem e24KC2ThetaAboveNode101022032 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10102203) + e24KC2ThetaAboveLeaf1010220320 e24KC2ThetaAboveLeaf1010220321 e24KC2ThetaAboveLeaf1010220322 + e24KC2ThetaAboveLeaf1010220323 + +theorem e24KC2ThetaAboveNode101022033 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102203) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10102203) + e24KC2ThetaAboveLeaf1010220330 e24KC2ThetaAboveLeaf1010220331 e24KC2ThetaAboveLeaf1010220332 + e24KC2ThetaAboveLeaf1010220333 + +theorem e24KC2ThetaAboveNode101022120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10102212) + e24KC2ThetaAboveLeaf1010221200 e24KC2ThetaAboveLeaf1010221201 e24KC2ThetaAboveLeaf1010221202 + e24KC2ThetaAboveLeaf1010221203 + +theorem e24KC2ThetaAboveNode101022121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10102212) + e24KC2ThetaAboveLeaf1010221210 e24KC2ThetaAboveLeaf1010221211 e24KC2ThetaAboveLeaf1010221212 + e24KC2ThetaAboveLeaf1010221213 + +theorem e24KC2ThetaAboveNode101022122 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10102212) + e24KC2ThetaAboveLeaf1010221220 e24KC2ThetaAboveLeaf1010221221 e24KC2ThetaAboveLeaf1010221222 + e24KC2ThetaAboveLeaf1010221223 + +theorem e24KC2ThetaAboveNode101022123 : + adaptiveCoverCheck 10 (childHH thetaAboveCell10102212) = true := + adaptiveCoverCheck_succ_of_children 9 (childHH thetaAboveCell10102212) + e24KC2ThetaAboveLeaf1010221230 e24KC2ThetaAboveLeaf1010221231 e24KC2ThetaAboveLeaf1010221232 + e24KC2ThetaAboveLeaf1010221233 + +theorem e24KC2ThetaAboveNode101022130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10102213) + e24KC2ThetaAboveLeaf1010221300 e24KC2ThetaAboveLeaf1010221301 e24KC2ThetaAboveLeaf1010221302 + e24KC2ThetaAboveLeaf1010221303 + +theorem e24KC2ThetaAboveNode101022131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10102213) + e24KC2ThetaAboveLeaf1010221310 e24KC2ThetaAboveLeaf1010221311 e24KC2ThetaAboveLeaf1010221312 + e24KC2ThetaAboveLeaf1010221313 + +theorem e24KC2ThetaAboveNode101022132 : + adaptiveCoverCheck 10 (childHL thetaAboveCell10102213) = true := + adaptiveCoverCheck_succ_of_children 9 (childHL thetaAboveCell10102213) + e24KC2ThetaAboveLeaf1010221320 e24KC2ThetaAboveLeaf1010221321 e24KC2ThetaAboveLeaf1010221322 + e24KC2ThetaAboveLeaf1010221323 + +theorem e24KC2ThetaAboveNode101023020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10102302) + e24KC2ThetaAboveLeaf1010230200 e24KC2ThetaAboveLeaf1010230201 e24KC2ThetaAboveLeaf1010230202 + e24KC2ThetaAboveLeaf1010230203 + +theorem e24KC2ThetaAboveNode101023021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10102302) + e24KC2ThetaAboveLeaf1010230210 e24KC2ThetaAboveLeaf1010230211 e24KC2ThetaAboveLeaf1010230212 + e24KC2ThetaAboveLeaf1010230213 + +theorem e24KC2ThetaAboveNode101023030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10102303) + e24KC2ThetaAboveLeaf1010230300 e24KC2ThetaAboveLeaf1010230301 e24KC2ThetaAboveLeaf1010230302 + e24KC2ThetaAboveLeaf1010230303 + +theorem e24KC2ThetaAboveNode101023031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102303) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10102303) + e24KC2ThetaAboveLeaf1010230310 e24KC2ThetaAboveLeaf1010230311 e24KC2ThetaAboveLeaf1010230312 + e24KC2ThetaAboveLeaf1010230313 + +theorem e24KC2ThetaAboveNode101023120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10102312) + e24KC2ThetaAboveLeaf1010231200 e24KC2ThetaAboveLeaf1010231201 e24KC2ThetaAboveLeaf1010231202 + e24KC2ThetaAboveLeaf1010231203 + +theorem e24KC2ThetaAboveNode101023121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102312) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10102312) + e24KC2ThetaAboveLeaf1010231210 e24KC2ThetaAboveLeaf1010231211 e24KC2ThetaAboveLeaf1010231212 + e24KC2ThetaAboveLeaf1010231213 + +theorem e24KC2ThetaAboveNode101023130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10102313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10102313) + e24KC2ThetaAboveLeaf1010231300 e24KC2ThetaAboveLeaf1010231301 e24KC2ThetaAboveLeaf1010231302 + e24KC2ThetaAboveLeaf1010231303 + +theorem e24KC2ThetaAboveNode101023131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10102313) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10102313) + e24KC2ThetaAboveLeaf1010231310 e24KC2ThetaAboveLeaf1010231311 e24KC2ThetaAboveLeaf1010231312 + e24KC2ThetaAboveLeaf1010231313 + +theorem e24KC2ThetaAboveNode101032020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10103202) + e24KC2ThetaAboveLeaf1010320200 e24KC2ThetaAboveLeaf1010320201 e24KC2ThetaAboveLeaf1010320202 + e24KC2ThetaAboveLeaf1010320203 + +theorem e24KC2ThetaAboveNode101032021 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103202) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10103202) + e24KC2ThetaAboveLeaf1010320210 e24KC2ThetaAboveLeaf1010320211 e24KC2ThetaAboveLeaf1010320212 + e24KC2ThetaAboveLeaf1010320213 + +theorem e24KC2ThetaAboveNode101032030 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10103203) + e24KC2ThetaAboveLeaf1010320300 e24KC2ThetaAboveLeaf1010320301 e24KC2ThetaAboveLeaf1010320302 + e24KC2ThetaAboveLeaf1010320303 + +theorem e24KC2ThetaAboveNode101032031 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103203) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10103203) + e24KC2ThetaAboveLeaf1010320310 e24KC2ThetaAboveLeaf1010320311 e24KC2ThetaAboveLeaf1010320312 + e24KC2ThetaAboveLeaf1010320313 + +theorem e24KC2ThetaAboveNode101032120 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10103212) + e24KC2ThetaAboveLeaf1010321200 e24KC2ThetaAboveLeaf1010321201 e24KC2ThetaAboveLeaf1010321202 + e24KC2ThetaAboveLeaf1010321203 + +theorem e24KC2ThetaAboveNode101032121 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103212) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10103212) + e24KC2ThetaAboveLeaf1010321210 e24KC2ThetaAboveLeaf1010321211 e24KC2ThetaAboveLeaf1010321212 + e24KC2ThetaAboveLeaf1010321213 + +theorem e24KC2ThetaAboveNode101032130 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10103213) + e24KC2ThetaAboveLeaf1010321300 e24KC2ThetaAboveLeaf1010321301 e24KC2ThetaAboveLeaf1010321302 + e24KC2ThetaAboveLeaf1010321303 + +theorem e24KC2ThetaAboveNode101032131 : + adaptiveCoverCheck 10 (childLH thetaAboveCell10103213) = true := + adaptiveCoverCheck_succ_of_children 9 (childLH thetaAboveCell10103213) + e24KC2ThetaAboveLeaf1010321310 e24KC2ThetaAboveLeaf1010321311 e24KC2ThetaAboveLeaf1010321312 + e24KC2ThetaAboveLeaf1010321313 + +theorem e24KC2ThetaAboveNode101033020 : + adaptiveCoverCheck 10 (childLL thetaAboveCell10103302) = true := + adaptiveCoverCheck_succ_of_children 9 (childLL thetaAboveCell10103302) + e24KC2ThetaAboveLeaf1010330200 e24KC2ThetaAboveLeaf1010330201 e24KC2ThetaAboveLeaf1010330202 + e24KC2ThetaAboveLeaf1010330203 + +theorem e24KC2ThetaAboveNode00002022 : + adaptiveCoverCheck 11 thetaAboveCell00002022 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002022 + e24KC2ThetaAboveLeaf000020220 e24KC2ThetaAboveLeaf000020221 e24KC2ThetaAboveLeaf000020222 + e24KC2ThetaAboveLeaf000020223 + +theorem e24KC2ThetaAboveNode00002023 : + adaptiveCoverCheck 11 thetaAboveCell00002023 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002023 + e24KC2ThetaAboveLeaf000020230 e24KC2ThetaAboveLeaf000020231 e24KC2ThetaAboveLeaf000020232 + e24KC2ThetaAboveLeaf000020233 + +theorem e24KC2ThetaAboveNode00002032 : + adaptiveCoverCheck 11 thetaAboveCell00002032 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002032 + e24KC2ThetaAboveLeaf000020320 e24KC2ThetaAboveLeaf000020321 e24KC2ThetaAboveLeaf000020322 + e24KC2ThetaAboveLeaf000020323 + +theorem e24KC2ThetaAboveNode00002033 : + adaptiveCoverCheck 11 thetaAboveCell00002033 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002033 + e24KC2ThetaAboveLeaf000020330 e24KC2ThetaAboveLeaf000020331 e24KC2ThetaAboveLeaf000020332 + e24KC2ThetaAboveLeaf000020333 + +theorem e24KC2ThetaAboveNode00002122 : + adaptiveCoverCheck 11 thetaAboveCell00002122 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002122 + e24KC2ThetaAboveLeaf000021220 e24KC2ThetaAboveLeaf000021221 e24KC2ThetaAboveLeaf000021222 + e24KC2ThetaAboveLeaf000021223 + +theorem e24KC2ThetaAboveNode00002123 : + adaptiveCoverCheck 11 thetaAboveCell00002123 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002123 + e24KC2ThetaAboveLeaf000021230 e24KC2ThetaAboveLeaf000021231 e24KC2ThetaAboveLeaf000021232 + e24KC2ThetaAboveLeaf000021233 + +theorem e24KC2ThetaAboveNode00002132 : + adaptiveCoverCheck 11 thetaAboveCell00002132 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002132 + e24KC2ThetaAboveLeaf000021320 e24KC2ThetaAboveLeaf000021321 e24KC2ThetaAboveLeaf000021322 + e24KC2ThetaAboveLeaf000021323 + +theorem e24KC2ThetaAboveNode00002133 : + adaptiveCoverCheck 11 thetaAboveCell00002133 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002133 + e24KC2ThetaAboveLeaf000021330 e24KC2ThetaAboveLeaf000021331 e24KC2ThetaAboveLeaf000021332 + e24KC2ThetaAboveLeaf000021333 + +theorem e24KC2ThetaAboveNode00002200 : + adaptiveCoverCheck 11 thetaAboveCell00002200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002200 + e24KC2ThetaAboveNode000022000 e24KC2ThetaAboveNode000022001 e24KC2ThetaAboveNode000022002 + e24KC2ThetaAboveNode000022003 + +theorem e24KC2ThetaAboveNode00002201 : + adaptiveCoverCheck 11 thetaAboveCell00002201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002201 + e24KC2ThetaAboveNode000022010 e24KC2ThetaAboveNode000022011 e24KC2ThetaAboveNode000022012 + e24KC2ThetaAboveNode000022013 + +theorem e24KC2ThetaAboveNode00002202 : + adaptiveCoverCheck 11 thetaAboveCell00002202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002202 + e24KC2ThetaAboveLeaf000022020 e24KC2ThetaAboveLeaf000022021 e24KC2ThetaAboveLeaf000022022 + e24KC2ThetaAboveLeaf000022023 + +theorem e24KC2ThetaAboveNode00002203 : + adaptiveCoverCheck 11 thetaAboveCell00002203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002203 + e24KC2ThetaAboveLeaf000022030 e24KC2ThetaAboveLeaf000022031 e24KC2ThetaAboveLeaf000022032 + e24KC2ThetaAboveLeaf000022033 + +theorem e24KC2ThetaAboveNode00002210 : + adaptiveCoverCheck 11 thetaAboveCell00002210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002210 + e24KC2ThetaAboveNode000022100 e24KC2ThetaAboveNode000022101 e24KC2ThetaAboveNode000022102 + e24KC2ThetaAboveNode000022103 + +theorem e24KC2ThetaAboveNode00002211 : + adaptiveCoverCheck 11 thetaAboveCell00002211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002211 + e24KC2ThetaAboveNode000022110 e24KC2ThetaAboveNode000022111 e24KC2ThetaAboveNode000022112 + e24KC2ThetaAboveNode000022113 + +theorem e24KC2ThetaAboveNode00002212 : + adaptiveCoverCheck 11 thetaAboveCell00002212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002212 + e24KC2ThetaAboveLeaf000022120 e24KC2ThetaAboveLeaf000022121 e24KC2ThetaAboveLeaf000022122 + e24KC2ThetaAboveLeaf000022123 + +theorem e24KC2ThetaAboveNode00002213 : + adaptiveCoverCheck 11 thetaAboveCell00002213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002213 + e24KC2ThetaAboveLeaf000022130 e24KC2ThetaAboveNode000022131 e24KC2ThetaAboveLeaf000022132 + e24KC2ThetaAboveLeaf000022133 + +theorem e24KC2ThetaAboveNode00002300 : + adaptiveCoverCheck 11 thetaAboveCell00002300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002300 + e24KC2ThetaAboveNode000023000 e24KC2ThetaAboveNode000023001 e24KC2ThetaAboveNode000023002 + e24KC2ThetaAboveNode000023003 + +theorem e24KC2ThetaAboveNode00002301 : + adaptiveCoverCheck 11 thetaAboveCell00002301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002301 + e24KC2ThetaAboveNode000023010 e24KC2ThetaAboveNode000023011 e24KC2ThetaAboveNode000023012 + e24KC2ThetaAboveNode000023013 + +theorem e24KC2ThetaAboveNode00002302 : + adaptiveCoverCheck 11 thetaAboveCell00002302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002302 + e24KC2ThetaAboveNode000023020 e24KC2ThetaAboveNode000023021 e24KC2ThetaAboveLeaf000023022 + e24KC2ThetaAboveLeaf000023023 + +theorem e24KC2ThetaAboveNode00002303 : + adaptiveCoverCheck 11 thetaAboveCell00002303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002303 + e24KC2ThetaAboveNode000023030 e24KC2ThetaAboveNode000023031 e24KC2ThetaAboveLeaf000023032 + e24KC2ThetaAboveLeaf000023033 + +theorem e24KC2ThetaAboveNode00002310 : + adaptiveCoverCheck 11 thetaAboveCell00002310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002310 + e24KC2ThetaAboveNode000023100 e24KC2ThetaAboveNode000023101 e24KC2ThetaAboveNode000023102 + e24KC2ThetaAboveNode000023103 + +theorem e24KC2ThetaAboveNode00002311 : + adaptiveCoverCheck 11 thetaAboveCell00002311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002311 + e24KC2ThetaAboveNode000023110 e24KC2ThetaAboveNode000023111 e24KC2ThetaAboveNode000023112 + e24KC2ThetaAboveNode000023113 + +theorem e24KC2ThetaAboveNode00002312 : + adaptiveCoverCheck 11 thetaAboveCell00002312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002312 + e24KC2ThetaAboveNode000023120 e24KC2ThetaAboveNode000023121 e24KC2ThetaAboveLeaf000023122 + e24KC2ThetaAboveLeaf000023123 + +theorem e24KC2ThetaAboveNode00002313 : + adaptiveCoverCheck 11 thetaAboveCell00002313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00002313 + e24KC2ThetaAboveNode000023130 e24KC2ThetaAboveNode000023131 e24KC2ThetaAboveLeaf000023132 + e24KC2ThetaAboveLeaf000023133 + +theorem e24KC2ThetaAboveNode00003022 : + adaptiveCoverCheck 11 thetaAboveCell00003022 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003022 + e24KC2ThetaAboveLeaf000030220 e24KC2ThetaAboveLeaf000030221 e24KC2ThetaAboveLeaf000030222 + e24KC2ThetaAboveLeaf000030223 + +theorem e24KC2ThetaAboveNode00003023 : + adaptiveCoverCheck 11 thetaAboveCell00003023 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003023 + e24KC2ThetaAboveLeaf000030230 e24KC2ThetaAboveLeaf000030231 e24KC2ThetaAboveLeaf000030232 + e24KC2ThetaAboveLeaf000030233 + +theorem e24KC2ThetaAboveNode00003032 : + adaptiveCoverCheck 11 thetaAboveCell00003032 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003032 + e24KC2ThetaAboveLeaf000030320 e24KC2ThetaAboveLeaf000030321 e24KC2ThetaAboveLeaf000030322 + e24KC2ThetaAboveLeaf000030323 + +theorem e24KC2ThetaAboveNode00003033 : + adaptiveCoverCheck 11 thetaAboveCell00003033 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003033 + e24KC2ThetaAboveLeaf000030330 e24KC2ThetaAboveLeaf000030331 e24KC2ThetaAboveLeaf000030332 + e24KC2ThetaAboveLeaf000030333 + +theorem e24KC2ThetaAboveNode00003122 : + adaptiveCoverCheck 11 thetaAboveCell00003122 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003122 + e24KC2ThetaAboveLeaf000031220 e24KC2ThetaAboveLeaf000031221 e24KC2ThetaAboveLeaf000031222 + e24KC2ThetaAboveLeaf000031223 + +theorem e24KC2ThetaAboveNode00003123 : + adaptiveCoverCheck 11 thetaAboveCell00003123 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003123 + e24KC2ThetaAboveLeaf000031230 e24KC2ThetaAboveLeaf000031231 e24KC2ThetaAboveLeaf000031232 + e24KC2ThetaAboveLeaf000031233 + +theorem e24KC2ThetaAboveNode00003132 : + adaptiveCoverCheck 11 thetaAboveCell00003132 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003132 + e24KC2ThetaAboveLeaf000031320 e24KC2ThetaAboveLeaf000031321 e24KC2ThetaAboveLeaf000031322 + e24KC2ThetaAboveLeaf000031323 + +theorem e24KC2ThetaAboveNode00003133 : + adaptiveCoverCheck 11 thetaAboveCell00003133 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003133 + e24KC2ThetaAboveLeaf000031330 e24KC2ThetaAboveLeaf000031331 e24KC2ThetaAboveLeaf000031332 + e24KC2ThetaAboveLeaf000031333 + +theorem e24KC2ThetaAboveNode00003200 : + adaptiveCoverCheck 11 thetaAboveCell00003200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003200 + e24KC2ThetaAboveNode000032000 e24KC2ThetaAboveNode000032001 e24KC2ThetaAboveNode000032002 + e24KC2ThetaAboveNode000032003 + +theorem e24KC2ThetaAboveNode00003201 : + adaptiveCoverCheck 11 thetaAboveCell00003201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003201 + e24KC2ThetaAboveNode000032010 e24KC2ThetaAboveNode000032011 e24KC2ThetaAboveNode000032012 + e24KC2ThetaAboveNode000032013 + +theorem e24KC2ThetaAboveNode00003202 : + adaptiveCoverCheck 11 thetaAboveCell00003202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003202 + e24KC2ThetaAboveNode000032020 e24KC2ThetaAboveNode000032021 e24KC2ThetaAboveLeaf000032022 + e24KC2ThetaAboveLeaf000032023 + +theorem e24KC2ThetaAboveNode00003203 : + adaptiveCoverCheck 11 thetaAboveCell00003203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003203 + e24KC2ThetaAboveNode000032030 e24KC2ThetaAboveNode000032031 e24KC2ThetaAboveLeaf000032032 + e24KC2ThetaAboveLeaf000032033 + +theorem e24KC2ThetaAboveNode00003210 : + adaptiveCoverCheck 11 thetaAboveCell00003210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003210 + e24KC2ThetaAboveNode000032100 e24KC2ThetaAboveNode000032101 e24KC2ThetaAboveNode000032102 + e24KC2ThetaAboveNode000032103 + +theorem e24KC2ThetaAboveNode00003211 : + adaptiveCoverCheck 11 thetaAboveCell00003211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003211 + e24KC2ThetaAboveNode000032110 e24KC2ThetaAboveNode000032111 e24KC2ThetaAboveNode000032112 + e24KC2ThetaAboveNode000032113 + +theorem e24KC2ThetaAboveNode00003212 : + adaptiveCoverCheck 11 thetaAboveCell00003212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003212 + e24KC2ThetaAboveNode000032120 e24KC2ThetaAboveNode000032121 e24KC2ThetaAboveLeaf000032122 + e24KC2ThetaAboveLeaf000032123 + +theorem e24KC2ThetaAboveNode00003213 : + adaptiveCoverCheck 11 thetaAboveCell00003213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003213 + e24KC2ThetaAboveNode000032130 e24KC2ThetaAboveNode000032131 e24KC2ThetaAboveLeaf000032132 + e24KC2ThetaAboveLeaf000032133 + +theorem e24KC2ThetaAboveNode00003300 : + adaptiveCoverCheck 11 thetaAboveCell00003300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003300 + e24KC2ThetaAboveNode000033000 e24KC2ThetaAboveNode000033001 e24KC2ThetaAboveNode000033002 + e24KC2ThetaAboveNode000033003 + +theorem e24KC2ThetaAboveNode00003301 : + adaptiveCoverCheck 11 thetaAboveCell00003301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003301 + e24KC2ThetaAboveNode000033010 e24KC2ThetaAboveNode000033011 e24KC2ThetaAboveNode000033012 + e24KC2ThetaAboveNode000033013 + +theorem e24KC2ThetaAboveNode00003302 : + adaptiveCoverCheck 11 thetaAboveCell00003302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003302 + e24KC2ThetaAboveNode000033020 e24KC2ThetaAboveNode000033021 e24KC2ThetaAboveLeaf000033022 + e24KC2ThetaAboveLeaf000033023 + +theorem e24KC2ThetaAboveNode00003303 : + adaptiveCoverCheck 11 thetaAboveCell00003303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003303 + e24KC2ThetaAboveNode000033030 e24KC2ThetaAboveNode000033031 e24KC2ThetaAboveLeaf000033032 + e24KC2ThetaAboveLeaf000033033 + +theorem e24KC2ThetaAboveNode00003310 : + adaptiveCoverCheck 11 thetaAboveCell00003310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003310 + e24KC2ThetaAboveNode000033100 e24KC2ThetaAboveNode000033101 e24KC2ThetaAboveNode000033102 + e24KC2ThetaAboveNode000033103 + +theorem e24KC2ThetaAboveNode00003311 : + adaptiveCoverCheck 11 thetaAboveCell00003311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003311 + e24KC2ThetaAboveNode000033110 e24KC2ThetaAboveNode000033111 e24KC2ThetaAboveNode000033112 + e24KC2ThetaAboveNode000033113 + +theorem e24KC2ThetaAboveNode00003312 : + adaptiveCoverCheck 11 thetaAboveCell00003312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003312 + e24KC2ThetaAboveNode000033120 e24KC2ThetaAboveNode000033121 e24KC2ThetaAboveLeaf000033122 + e24KC2ThetaAboveLeaf000033123 + +theorem e24KC2ThetaAboveNode00003313 : + adaptiveCoverCheck 11 thetaAboveCell00003313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00003313 + e24KC2ThetaAboveNode000033130 e24KC2ThetaAboveNode000033131 e24KC2ThetaAboveLeaf000033132 + e24KC2ThetaAboveLeaf000033133 + +theorem e24KC2ThetaAboveNode00012022 : + adaptiveCoverCheck 11 thetaAboveCell00012022 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012022 + e24KC2ThetaAboveLeaf000120220 e24KC2ThetaAboveLeaf000120221 e24KC2ThetaAboveLeaf000120222 + e24KC2ThetaAboveLeaf000120223 + +theorem e24KC2ThetaAboveNode00012023 : + adaptiveCoverCheck 11 thetaAboveCell00012023 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012023 + e24KC2ThetaAboveLeaf000120230 e24KC2ThetaAboveLeaf000120231 e24KC2ThetaAboveLeaf000120232 + e24KC2ThetaAboveLeaf000120233 + +theorem e24KC2ThetaAboveNode00012032 : + adaptiveCoverCheck 11 thetaAboveCell00012032 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012032 + e24KC2ThetaAboveLeaf000120320 e24KC2ThetaAboveLeaf000120321 e24KC2ThetaAboveLeaf000120322 + e24KC2ThetaAboveLeaf000120323 + +theorem e24KC2ThetaAboveNode00012033 : + adaptiveCoverCheck 11 thetaAboveCell00012033 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012033 + e24KC2ThetaAboveLeaf000120330 e24KC2ThetaAboveLeaf000120331 e24KC2ThetaAboveLeaf000120332 + e24KC2ThetaAboveLeaf000120333 + +theorem e24KC2ThetaAboveNode00012122 : + adaptiveCoverCheck 11 thetaAboveCell00012122 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012122 + e24KC2ThetaAboveLeaf000121220 e24KC2ThetaAboveLeaf000121221 e24KC2ThetaAboveLeaf000121222 + e24KC2ThetaAboveLeaf000121223 + +theorem e24KC2ThetaAboveNode00012123 : + adaptiveCoverCheck 11 thetaAboveCell00012123 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012123 + e24KC2ThetaAboveLeaf000121230 e24KC2ThetaAboveLeaf000121231 e24KC2ThetaAboveLeaf000121232 + e24KC2ThetaAboveLeaf000121233 + +theorem e24KC2ThetaAboveNode00012132 : + adaptiveCoverCheck 11 thetaAboveCell00012132 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012132 + e24KC2ThetaAboveLeaf000121320 e24KC2ThetaAboveLeaf000121321 e24KC2ThetaAboveLeaf000121322 + e24KC2ThetaAboveLeaf000121323 + +theorem e24KC2ThetaAboveNode00012133 : + adaptiveCoverCheck 11 thetaAboveCell00012133 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012133 + e24KC2ThetaAboveLeaf000121330 e24KC2ThetaAboveLeaf000121331 e24KC2ThetaAboveLeaf000121332 + e24KC2ThetaAboveLeaf000121333 + +theorem e24KC2ThetaAboveNode00012200 : + adaptiveCoverCheck 11 thetaAboveCell00012200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012200 + e24KC2ThetaAboveNode000122000 e24KC2ThetaAboveNode000122001 e24KC2ThetaAboveNode000122002 + e24KC2ThetaAboveNode000122003 + +theorem e24KC2ThetaAboveNode00012201 : + adaptiveCoverCheck 11 thetaAboveCell00012201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012201 + e24KC2ThetaAboveNode000122010 e24KC2ThetaAboveNode000122011 e24KC2ThetaAboveNode000122012 + e24KC2ThetaAboveNode000122013 + +theorem e24KC2ThetaAboveNode00012202 : + adaptiveCoverCheck 11 thetaAboveCell00012202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012202 + e24KC2ThetaAboveNode000122020 e24KC2ThetaAboveNode000122021 e24KC2ThetaAboveLeaf000122022 + e24KC2ThetaAboveLeaf000122023 + +theorem e24KC2ThetaAboveNode00012203 : + adaptiveCoverCheck 11 thetaAboveCell00012203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012203 + e24KC2ThetaAboveNode000122030 e24KC2ThetaAboveNode000122031 e24KC2ThetaAboveLeaf000122032 + e24KC2ThetaAboveLeaf000122033 + +theorem e24KC2ThetaAboveNode00012210 : + adaptiveCoverCheck 11 thetaAboveCell00012210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012210 + e24KC2ThetaAboveNode000122100 e24KC2ThetaAboveNode000122101 e24KC2ThetaAboveNode000122102 + e24KC2ThetaAboveNode000122103 + +theorem e24KC2ThetaAboveNode00012211 : + adaptiveCoverCheck 11 thetaAboveCell00012211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012211 + e24KC2ThetaAboveNode000122110 e24KC2ThetaAboveNode000122111 e24KC2ThetaAboveNode000122112 + e24KC2ThetaAboveNode000122113 + +theorem e24KC2ThetaAboveNode00012212 : + adaptiveCoverCheck 11 thetaAboveCell00012212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012212 + e24KC2ThetaAboveNode000122120 e24KC2ThetaAboveNode000122121 e24KC2ThetaAboveLeaf000122122 + e24KC2ThetaAboveLeaf000122123 + +theorem e24KC2ThetaAboveNode00012213 : + adaptiveCoverCheck 11 thetaAboveCell00012213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012213 + e24KC2ThetaAboveNode000122130 e24KC2ThetaAboveNode000122131 e24KC2ThetaAboveLeaf000122132 + e24KC2ThetaAboveLeaf000122133 + +theorem e24KC2ThetaAboveNode00012300 : + adaptiveCoverCheck 11 thetaAboveCell00012300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012300 + e24KC2ThetaAboveNode000123000 e24KC2ThetaAboveNode000123001 e24KC2ThetaAboveNode000123002 + e24KC2ThetaAboveNode000123003 + +theorem e24KC2ThetaAboveNode00012301 : + adaptiveCoverCheck 11 thetaAboveCell00012301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012301 + e24KC2ThetaAboveNode000123010 e24KC2ThetaAboveNode000123011 e24KC2ThetaAboveNode000123012 + e24KC2ThetaAboveNode000123013 + +theorem e24KC2ThetaAboveNode00012302 : + adaptiveCoverCheck 11 thetaAboveCell00012302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012302 + e24KC2ThetaAboveNode000123020 e24KC2ThetaAboveNode000123021 e24KC2ThetaAboveLeaf000123022 + e24KC2ThetaAboveLeaf000123023 + +theorem e24KC2ThetaAboveNode00012303 : + adaptiveCoverCheck 11 thetaAboveCell00012303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012303 + e24KC2ThetaAboveNode000123030 e24KC2ThetaAboveNode000123031 e24KC2ThetaAboveLeaf000123032 + e24KC2ThetaAboveLeaf000123033 + +theorem e24KC2ThetaAboveNode00012310 : + adaptiveCoverCheck 11 thetaAboveCell00012310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012310 + e24KC2ThetaAboveNode000123100 e24KC2ThetaAboveNode000123101 e24KC2ThetaAboveNode000123102 + e24KC2ThetaAboveNode000123103 + +theorem e24KC2ThetaAboveNode00012311 : + adaptiveCoverCheck 11 thetaAboveCell00012311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012311 + e24KC2ThetaAboveNode000123110 e24KC2ThetaAboveNode000123111 e24KC2ThetaAboveNode000123112 + e24KC2ThetaAboveNode000123113 + +theorem e24KC2ThetaAboveNode00012312 : + adaptiveCoverCheck 11 thetaAboveCell00012312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012312 + e24KC2ThetaAboveNode000123120 e24KC2ThetaAboveNode000123121 e24KC2ThetaAboveLeaf000123122 + e24KC2ThetaAboveLeaf000123123 + +theorem e24KC2ThetaAboveNode00012313 : + adaptiveCoverCheck 11 thetaAboveCell00012313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00012313 + e24KC2ThetaAboveNode000123130 e24KC2ThetaAboveNode000123131 e24KC2ThetaAboveLeaf000123132 + e24KC2ThetaAboveLeaf000123133 + +theorem e24KC2ThetaAboveNode00013022 : + adaptiveCoverCheck 11 thetaAboveCell00013022 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013022 + e24KC2ThetaAboveLeaf000130220 e24KC2ThetaAboveLeaf000130221 e24KC2ThetaAboveLeaf000130222 + e24KC2ThetaAboveLeaf000130223 + +theorem e24KC2ThetaAboveNode00013023 : + adaptiveCoverCheck 11 thetaAboveCell00013023 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013023 + e24KC2ThetaAboveLeaf000130230 e24KC2ThetaAboveLeaf000130231 e24KC2ThetaAboveLeaf000130232 + e24KC2ThetaAboveLeaf000130233 + +theorem e24KC2ThetaAboveNode00013032 : + adaptiveCoverCheck 11 thetaAboveCell00013032 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013032 + e24KC2ThetaAboveLeaf000130320 e24KC2ThetaAboveLeaf000130321 e24KC2ThetaAboveLeaf000130322 + e24KC2ThetaAboveLeaf000130323 + +theorem e24KC2ThetaAboveNode00013033 : + adaptiveCoverCheck 11 thetaAboveCell00013033 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013033 + e24KC2ThetaAboveLeaf000130330 e24KC2ThetaAboveLeaf000130331 e24KC2ThetaAboveLeaf000130332 + e24KC2ThetaAboveLeaf000130333 + +theorem e24KC2ThetaAboveNode00013122 : + adaptiveCoverCheck 11 thetaAboveCell00013122 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013122 + e24KC2ThetaAboveLeaf000131220 e24KC2ThetaAboveLeaf000131221 e24KC2ThetaAboveLeaf000131222 + e24KC2ThetaAboveLeaf000131223 + +theorem e24KC2ThetaAboveNode00013123 : + adaptiveCoverCheck 11 thetaAboveCell00013123 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013123 + e24KC2ThetaAboveLeaf000131230 e24KC2ThetaAboveLeaf000131231 e24KC2ThetaAboveLeaf000131232 + e24KC2ThetaAboveLeaf000131233 + +theorem e24KC2ThetaAboveNode00013132 : + adaptiveCoverCheck 11 thetaAboveCell00013132 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013132 + e24KC2ThetaAboveLeaf000131320 e24KC2ThetaAboveLeaf000131321 e24KC2ThetaAboveLeaf000131322 + e24KC2ThetaAboveLeaf000131323 + +theorem e24KC2ThetaAboveNode00013133 : + adaptiveCoverCheck 11 thetaAboveCell00013133 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013133 + e24KC2ThetaAboveLeaf000131330 e24KC2ThetaAboveLeaf000131331 e24KC2ThetaAboveLeaf000131332 + e24KC2ThetaAboveLeaf000131333 + +theorem e24KC2ThetaAboveNode00013200 : + adaptiveCoverCheck 11 thetaAboveCell00013200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013200 + e24KC2ThetaAboveNode000132000 e24KC2ThetaAboveNode000132001 e24KC2ThetaAboveNode000132002 + e24KC2ThetaAboveNode000132003 + +theorem e24KC2ThetaAboveNode00013201 : + adaptiveCoverCheck 11 thetaAboveCell00013201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013201 + e24KC2ThetaAboveNode000132010 e24KC2ThetaAboveNode000132011 e24KC2ThetaAboveNode000132012 + e24KC2ThetaAboveNode000132013 + +theorem e24KC2ThetaAboveNode00013202 : + adaptiveCoverCheck 11 thetaAboveCell00013202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013202 + e24KC2ThetaAboveNode000132020 e24KC2ThetaAboveNode000132021 e24KC2ThetaAboveLeaf000132022 + e24KC2ThetaAboveLeaf000132023 + +theorem e24KC2ThetaAboveNode00013203 : + adaptiveCoverCheck 11 thetaAboveCell00013203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013203 + e24KC2ThetaAboveNode000132030 e24KC2ThetaAboveNode000132031 e24KC2ThetaAboveLeaf000132032 + e24KC2ThetaAboveLeaf000132033 + +theorem e24KC2ThetaAboveNode00013210 : + adaptiveCoverCheck 11 thetaAboveCell00013210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013210 + e24KC2ThetaAboveNode000132100 e24KC2ThetaAboveNode000132101 e24KC2ThetaAboveNode000132102 + e24KC2ThetaAboveNode000132103 + +theorem e24KC2ThetaAboveNode00013211 : + adaptiveCoverCheck 11 thetaAboveCell00013211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013211 + e24KC2ThetaAboveNode000132110 e24KC2ThetaAboveNode000132111 e24KC2ThetaAboveNode000132112 + e24KC2ThetaAboveNode000132113 + +theorem e24KC2ThetaAboveNode00013212 : + adaptiveCoverCheck 11 thetaAboveCell00013212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013212 + e24KC2ThetaAboveNode000132120 e24KC2ThetaAboveNode000132121 e24KC2ThetaAboveLeaf000132122 + e24KC2ThetaAboveLeaf000132123 + +theorem e24KC2ThetaAboveNode00013213 : + adaptiveCoverCheck 11 thetaAboveCell00013213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013213 + e24KC2ThetaAboveNode000132130 e24KC2ThetaAboveNode000132131 e24KC2ThetaAboveLeaf000132132 + e24KC2ThetaAboveLeaf000132133 + +theorem e24KC2ThetaAboveNode00013300 : + adaptiveCoverCheck 11 thetaAboveCell00013300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013300 + e24KC2ThetaAboveNode000133000 e24KC2ThetaAboveNode000133001 e24KC2ThetaAboveNode000133002 + e24KC2ThetaAboveNode000133003 + +theorem e24KC2ThetaAboveNode00013301 : + adaptiveCoverCheck 11 thetaAboveCell00013301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013301 + e24KC2ThetaAboveNode000133010 e24KC2ThetaAboveNode000133011 e24KC2ThetaAboveNode000133012 + e24KC2ThetaAboveNode000133013 + +theorem e24KC2ThetaAboveNode00013302 : + adaptiveCoverCheck 11 thetaAboveCell00013302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013302 + e24KC2ThetaAboveNode000133020 e24KC2ThetaAboveNode000133021 e24KC2ThetaAboveLeaf000133022 + e24KC2ThetaAboveLeaf000133023 + +theorem e24KC2ThetaAboveNode00013303 : + adaptiveCoverCheck 11 thetaAboveCell00013303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013303 + e24KC2ThetaAboveNode000133030 e24KC2ThetaAboveNode000133031 e24KC2ThetaAboveLeaf000133032 + e24KC2ThetaAboveLeaf000133033 + +theorem e24KC2ThetaAboveNode00013310 : + adaptiveCoverCheck 11 thetaAboveCell00013310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013310 + e24KC2ThetaAboveNode000133100 e24KC2ThetaAboveNode000133101 e24KC2ThetaAboveNode000133102 + e24KC2ThetaAboveNode000133103 + +theorem e24KC2ThetaAboveNode00013311 : + adaptiveCoverCheck 11 thetaAboveCell00013311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013311 + e24KC2ThetaAboveNode000133110 e24KC2ThetaAboveNode000133111 e24KC2ThetaAboveNode000133112 + e24KC2ThetaAboveNode000133113 + +theorem e24KC2ThetaAboveNode00013312 : + adaptiveCoverCheck 11 thetaAboveCell00013312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013312 + e24KC2ThetaAboveNode000133120 e24KC2ThetaAboveNode000133121 e24KC2ThetaAboveLeaf000133122 + e24KC2ThetaAboveLeaf000133123 + +theorem e24KC2ThetaAboveNode00013313 : + adaptiveCoverCheck 11 thetaAboveCell00013313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00013313 + e24KC2ThetaAboveNode000133130 e24KC2ThetaAboveNode000133131 e24KC2ThetaAboveLeaf000133132 + e24KC2ThetaAboveLeaf000133133 + +theorem e24KC2ThetaAboveNode00102022 : + adaptiveCoverCheck 11 thetaAboveCell00102022 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102022 + e24KC2ThetaAboveLeaf001020220 e24KC2ThetaAboveLeaf001020221 e24KC2ThetaAboveLeaf001020222 + e24KC2ThetaAboveLeaf001020223 + +theorem e24KC2ThetaAboveNode00102023 : + adaptiveCoverCheck 11 thetaAboveCell00102023 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102023 + e24KC2ThetaAboveLeaf001020230 e24KC2ThetaAboveLeaf001020231 e24KC2ThetaAboveLeaf001020232 + e24KC2ThetaAboveLeaf001020233 + +theorem e24KC2ThetaAboveNode00102032 : + adaptiveCoverCheck 11 thetaAboveCell00102032 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102032 + e24KC2ThetaAboveLeaf001020320 e24KC2ThetaAboveLeaf001020321 e24KC2ThetaAboveLeaf001020322 + e24KC2ThetaAboveLeaf001020323 + +theorem e24KC2ThetaAboveNode00102033 : + adaptiveCoverCheck 11 thetaAboveCell00102033 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102033 + e24KC2ThetaAboveLeaf001020330 e24KC2ThetaAboveLeaf001020331 e24KC2ThetaAboveLeaf001020332 + e24KC2ThetaAboveLeaf001020333 + +theorem e24KC2ThetaAboveNode00102122 : + adaptiveCoverCheck 11 thetaAboveCell00102122 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102122 + e24KC2ThetaAboveLeaf001021220 e24KC2ThetaAboveLeaf001021221 e24KC2ThetaAboveLeaf001021222 + e24KC2ThetaAboveLeaf001021223 + +theorem e24KC2ThetaAboveNode00102123 : + adaptiveCoverCheck 11 thetaAboveCell00102123 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102123 + e24KC2ThetaAboveLeaf001021230 e24KC2ThetaAboveLeaf001021231 e24KC2ThetaAboveLeaf001021232 + e24KC2ThetaAboveLeaf001021233 + +theorem e24KC2ThetaAboveNode00102132 : + adaptiveCoverCheck 11 thetaAboveCell00102132 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102132 + e24KC2ThetaAboveLeaf001021320 e24KC2ThetaAboveLeaf001021321 e24KC2ThetaAboveLeaf001021322 + e24KC2ThetaAboveLeaf001021323 + +theorem e24KC2ThetaAboveNode00102133 : + adaptiveCoverCheck 11 thetaAboveCell00102133 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102133 + e24KC2ThetaAboveLeaf001021330 e24KC2ThetaAboveLeaf001021331 e24KC2ThetaAboveLeaf001021332 + e24KC2ThetaAboveLeaf001021333 + +theorem e24KC2ThetaAboveNode00102200 : + adaptiveCoverCheck 11 thetaAboveCell00102200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102200 + e24KC2ThetaAboveNode001022000 e24KC2ThetaAboveNode001022001 e24KC2ThetaAboveNode001022002 + e24KC2ThetaAboveNode001022003 + +theorem e24KC2ThetaAboveNode00102201 : + adaptiveCoverCheck 11 thetaAboveCell00102201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102201 + e24KC2ThetaAboveNode001022010 e24KC2ThetaAboveNode001022011 e24KC2ThetaAboveNode001022012 + e24KC2ThetaAboveNode001022013 + +theorem e24KC2ThetaAboveNode00102202 : + adaptiveCoverCheck 11 thetaAboveCell00102202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102202 + e24KC2ThetaAboveNode001022020 e24KC2ThetaAboveNode001022021 e24KC2ThetaAboveLeaf001022022 + e24KC2ThetaAboveLeaf001022023 + +theorem e24KC2ThetaAboveNode00102203 : + adaptiveCoverCheck 11 thetaAboveCell00102203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102203 + e24KC2ThetaAboveNode001022030 e24KC2ThetaAboveNode001022031 e24KC2ThetaAboveLeaf001022032 + e24KC2ThetaAboveLeaf001022033 + +theorem e24KC2ThetaAboveNode00102210 : + adaptiveCoverCheck 11 thetaAboveCell00102210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102210 + e24KC2ThetaAboveNode001022100 e24KC2ThetaAboveNode001022101 e24KC2ThetaAboveNode001022102 + e24KC2ThetaAboveNode001022103 + +theorem e24KC2ThetaAboveNode00102211 : + adaptiveCoverCheck 11 thetaAboveCell00102211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102211 + e24KC2ThetaAboveNode001022110 e24KC2ThetaAboveNode001022111 e24KC2ThetaAboveNode001022112 + e24KC2ThetaAboveNode001022113 + +theorem e24KC2ThetaAboveNode00102212 : + adaptiveCoverCheck 11 thetaAboveCell00102212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102212 + e24KC2ThetaAboveNode001022120 e24KC2ThetaAboveNode001022121 e24KC2ThetaAboveLeaf001022122 + e24KC2ThetaAboveLeaf001022123 + +theorem e24KC2ThetaAboveNode00102213 : + adaptiveCoverCheck 11 thetaAboveCell00102213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102213 + e24KC2ThetaAboveNode001022130 e24KC2ThetaAboveNode001022131 e24KC2ThetaAboveLeaf001022132 + e24KC2ThetaAboveLeaf001022133 + +theorem e24KC2ThetaAboveNode00102300 : + adaptiveCoverCheck 11 thetaAboveCell00102300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102300 + e24KC2ThetaAboveNode001023000 e24KC2ThetaAboveNode001023001 e24KC2ThetaAboveNode001023002 + e24KC2ThetaAboveNode001023003 + +theorem e24KC2ThetaAboveNode00102301 : + adaptiveCoverCheck 11 thetaAboveCell00102301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102301 + e24KC2ThetaAboveNode001023010 e24KC2ThetaAboveNode001023011 e24KC2ThetaAboveNode001023012 + e24KC2ThetaAboveNode001023013 + +theorem e24KC2ThetaAboveNode00102302 : + adaptiveCoverCheck 11 thetaAboveCell00102302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102302 + e24KC2ThetaAboveNode001023020 e24KC2ThetaAboveNode001023021 e24KC2ThetaAboveLeaf001023022 + e24KC2ThetaAboveLeaf001023023 + +theorem e24KC2ThetaAboveNode00102303 : + adaptiveCoverCheck 11 thetaAboveCell00102303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102303 + e24KC2ThetaAboveNode001023030 e24KC2ThetaAboveNode001023031 e24KC2ThetaAboveLeaf001023032 + e24KC2ThetaAboveLeaf001023033 + +theorem e24KC2ThetaAboveNode00102310 : + adaptiveCoverCheck 11 thetaAboveCell00102310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102310 + e24KC2ThetaAboveNode001023100 e24KC2ThetaAboveNode001023101 e24KC2ThetaAboveNode001023102 + e24KC2ThetaAboveNode001023103 + +theorem e24KC2ThetaAboveNode00102311 : + adaptiveCoverCheck 11 thetaAboveCell00102311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102311 + e24KC2ThetaAboveNode001023110 e24KC2ThetaAboveNode001023111 e24KC2ThetaAboveNode001023112 + e24KC2ThetaAboveNode001023113 + +theorem e24KC2ThetaAboveNode00102312 : + adaptiveCoverCheck 11 thetaAboveCell00102312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102312 + e24KC2ThetaAboveNode001023120 e24KC2ThetaAboveNode001023121 e24KC2ThetaAboveLeaf001023122 + e24KC2ThetaAboveLeaf001023123 + +theorem e24KC2ThetaAboveNode00102313 : + adaptiveCoverCheck 11 thetaAboveCell00102313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00102313 + e24KC2ThetaAboveNode001023130 e24KC2ThetaAboveNode001023131 e24KC2ThetaAboveLeaf001023132 + e24KC2ThetaAboveLeaf001023133 + +theorem e24KC2ThetaAboveNode00103200 : + adaptiveCoverCheck 11 thetaAboveCell00103200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00103200 + e24KC2ThetaAboveNode001032000 e24KC2ThetaAboveNode001032001 e24KC2ThetaAboveNode001032002 + e24KC2ThetaAboveNode001032003 + +theorem e24KC2ThetaAboveNode00103201 : + adaptiveCoverCheck 11 thetaAboveCell00103201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00103201 + e24KC2ThetaAboveNode001032010 e24KC2ThetaAboveNode001032011 e24KC2ThetaAboveNode001032012 + e24KC2ThetaAboveNode001032013 + +theorem e24KC2ThetaAboveNode00103202 : + adaptiveCoverCheck 11 thetaAboveCell00103202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00103202 + e24KC2ThetaAboveNode001032020 e24KC2ThetaAboveNode001032021 e24KC2ThetaAboveLeaf001032022 + e24KC2ThetaAboveLeaf001032023 + +theorem e24KC2ThetaAboveNode00103203 : + adaptiveCoverCheck 11 thetaAboveCell00103203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00103203 + e24KC2ThetaAboveNode001032030 e24KC2ThetaAboveNode001032031 e24KC2ThetaAboveLeaf001032032 + e24KC2ThetaAboveLeaf001032033 + +theorem e24KC2ThetaAboveNode00103210 : + adaptiveCoverCheck 11 thetaAboveCell00103210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00103210 + e24KC2ThetaAboveNode001032100 e24KC2ThetaAboveNode001032101 e24KC2ThetaAboveNode001032102 + e24KC2ThetaAboveNode001032103 + +theorem e24KC2ThetaAboveNode00103211 : + adaptiveCoverCheck 11 thetaAboveCell00103211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00103211 + e24KC2ThetaAboveNode001032110 e24KC2ThetaAboveNode001032111 e24KC2ThetaAboveNode001032112 + e24KC2ThetaAboveNode001032113 + +theorem e24KC2ThetaAboveNode00103212 : + adaptiveCoverCheck 11 thetaAboveCell00103212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00103212 + e24KC2ThetaAboveNode001032120 e24KC2ThetaAboveNode001032121 e24KC2ThetaAboveLeaf001032122 + e24KC2ThetaAboveLeaf001032123 + +theorem e24KC2ThetaAboveNode00103213 : + adaptiveCoverCheck 11 thetaAboveCell00103213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00103213 + e24KC2ThetaAboveNode001032130 e24KC2ThetaAboveNode001032131 e24KC2ThetaAboveLeaf001032132 + e24KC2ThetaAboveLeaf001032133 + +theorem e24KC2ThetaAboveNode00103300 : + adaptiveCoverCheck 11 thetaAboveCell00103300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00103300 + e24KC2ThetaAboveNode001033000 e24KC2ThetaAboveNode001033001 e24KC2ThetaAboveNode001033002 + e24KC2ThetaAboveNode001033003 + +theorem e24KC2ThetaAboveNode00103301 : + adaptiveCoverCheck 11 thetaAboveCell00103301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00103301 + e24KC2ThetaAboveNode001033010 e24KC2ThetaAboveNode001033011 e24KC2ThetaAboveNode001033012 + e24KC2ThetaAboveNode001033013 + +theorem e24KC2ThetaAboveNode00103302 : + adaptiveCoverCheck 11 thetaAboveCell00103302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00103302 + e24KC2ThetaAboveNode001033020 e24KC2ThetaAboveNode001033021 e24KC2ThetaAboveLeaf001033022 + e24KC2ThetaAboveLeaf001033023 + +theorem e24KC2ThetaAboveNode00103303 : + adaptiveCoverCheck 11 thetaAboveCell00103303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00103303 + e24KC2ThetaAboveNode001033030 e24KC2ThetaAboveNode001033031 e24KC2ThetaAboveLeaf001033032 + e24KC2ThetaAboveLeaf001033033 + +theorem e24KC2ThetaAboveNode00103310 : + adaptiveCoverCheck 11 thetaAboveCell00103310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00103310 + e24KC2ThetaAboveNode001033100 e24KC2ThetaAboveNode001033101 e24KC2ThetaAboveNode001033102 + e24KC2ThetaAboveNode001033103 + +theorem e24KC2ThetaAboveNode00103311 : + adaptiveCoverCheck 11 thetaAboveCell00103311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00103311 + e24KC2ThetaAboveNode001033110 e24KC2ThetaAboveNode001033111 e24KC2ThetaAboveNode001033112 + e24KC2ThetaAboveNode001033113 + +theorem e24KC2ThetaAboveNode00103312 : + adaptiveCoverCheck 11 thetaAboveCell00103312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00103312 + e24KC2ThetaAboveNode001033120 e24KC2ThetaAboveNode001033121 e24KC2ThetaAboveLeaf001033122 + e24KC2ThetaAboveLeaf001033123 + +theorem e24KC2ThetaAboveNode00103313 : + adaptiveCoverCheck 11 thetaAboveCell00103313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00103313 + e24KC2ThetaAboveNode001033130 e24KC2ThetaAboveNode001033131 e24KC2ThetaAboveLeaf001033132 + e24KC2ThetaAboveLeaf001033133 + +theorem e24KC2ThetaAboveNode00112200 : + adaptiveCoverCheck 11 thetaAboveCell00112200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00112200 + e24KC2ThetaAboveNode001122000 e24KC2ThetaAboveNode001122001 e24KC2ThetaAboveNode001122002 + e24KC2ThetaAboveNode001122003 + +theorem e24KC2ThetaAboveNode00112201 : + adaptiveCoverCheck 11 thetaAboveCell00112201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00112201 + e24KC2ThetaAboveNode001122010 e24KC2ThetaAboveNode001122011 e24KC2ThetaAboveNode001122012 + e24KC2ThetaAboveNode001122013 + +theorem e24KC2ThetaAboveNode00112202 : + adaptiveCoverCheck 11 thetaAboveCell00112202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00112202 + e24KC2ThetaAboveNode001122020 e24KC2ThetaAboveNode001122021 e24KC2ThetaAboveLeaf001122022 + e24KC2ThetaAboveLeaf001122023 + +theorem e24KC2ThetaAboveNode00112203 : + adaptiveCoverCheck 11 thetaAboveCell00112203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00112203 + e24KC2ThetaAboveNode001122030 e24KC2ThetaAboveNode001122031 e24KC2ThetaAboveLeaf001122032 + e24KC2ThetaAboveLeaf001122033 + +theorem e24KC2ThetaAboveNode00112210 : + adaptiveCoverCheck 11 thetaAboveCell00112210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00112210 + e24KC2ThetaAboveNode001122100 e24KC2ThetaAboveLeaf001122101 e24KC2ThetaAboveNode001122102 + e24KC2ThetaAboveNode001122103 + +theorem e24KC2ThetaAboveNode00112211 : + adaptiveCoverCheck 11 thetaAboveCell00112211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00112211 + e24KC2ThetaAboveLeaf001122110 e24KC2ThetaAboveLeaf001122111 e24KC2ThetaAboveNode001122112 + e24KC2ThetaAboveNode001122113 + +theorem e24KC2ThetaAboveNode00112212 : + adaptiveCoverCheck 11 thetaAboveCell00112212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00112212 + e24KC2ThetaAboveNode001122120 e24KC2ThetaAboveNode001122121 e24KC2ThetaAboveLeaf001122122 + e24KC2ThetaAboveLeaf001122123 + +theorem e24KC2ThetaAboveNode00112213 : + adaptiveCoverCheck 11 thetaAboveCell00112213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00112213 + e24KC2ThetaAboveNode001122130 e24KC2ThetaAboveNode001122131 e24KC2ThetaAboveLeaf001122132 + e24KC2ThetaAboveLeaf001122133 + +theorem e24KC2ThetaAboveNode00112300 : + adaptiveCoverCheck 11 thetaAboveCell00112300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00112300 + e24KC2ThetaAboveLeaf001123000 e24KC2ThetaAboveLeaf001123001 e24KC2ThetaAboveNode001123002 + e24KC2ThetaAboveNode001123003 + +theorem e24KC2ThetaAboveNode00112301 : + adaptiveCoverCheck 11 thetaAboveCell00112301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00112301 + e24KC2ThetaAboveLeaf001123010 e24KC2ThetaAboveLeaf001123011 e24KC2ThetaAboveNode001123012 + e24KC2ThetaAboveNode001123013 + +theorem e24KC2ThetaAboveNode00112302 : + adaptiveCoverCheck 11 thetaAboveCell00112302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00112302 + e24KC2ThetaAboveNode001123020 e24KC2ThetaAboveNode001123021 e24KC2ThetaAboveLeaf001123022 + e24KC2ThetaAboveLeaf001123023 + +theorem e24KC2ThetaAboveNode00112303 : + adaptiveCoverCheck 11 thetaAboveCell00112303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00112303 + e24KC2ThetaAboveNode001123030 e24KC2ThetaAboveNode001123031 e24KC2ThetaAboveLeaf001123032 + e24KC2ThetaAboveLeaf001123033 + +theorem e24KC2ThetaAboveNode00112310 : + adaptiveCoverCheck 11 thetaAboveCell00112310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00112310 + e24KC2ThetaAboveLeaf001123100 e24KC2ThetaAboveLeaf001123101 e24KC2ThetaAboveNode001123102 + e24KC2ThetaAboveNode001123103 + +theorem e24KC2ThetaAboveNode00112311 : + adaptiveCoverCheck 11 thetaAboveCell00112311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00112311 + e24KC2ThetaAboveLeaf001123110 e24KC2ThetaAboveLeaf001123111 e24KC2ThetaAboveNode001123112 + e24KC2ThetaAboveNode001123113 + +theorem e24KC2ThetaAboveNode00112312 : + adaptiveCoverCheck 11 thetaAboveCell00112312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00112312 + e24KC2ThetaAboveNode001123120 e24KC2ThetaAboveNode001123121 e24KC2ThetaAboveLeaf001123122 + e24KC2ThetaAboveLeaf001123123 + +theorem e24KC2ThetaAboveNode00112313 : + adaptiveCoverCheck 11 thetaAboveCell00112313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00112313 + e24KC2ThetaAboveNode001123130 e24KC2ThetaAboveNode001123131 e24KC2ThetaAboveLeaf001123132 + e24KC2ThetaAboveLeaf001123133 + +theorem e24KC2ThetaAboveNode00113200 : + adaptiveCoverCheck 11 thetaAboveCell00113200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00113200 + e24KC2ThetaAboveLeaf001132000 e24KC2ThetaAboveLeaf001132001 e24KC2ThetaAboveNode001132002 + e24KC2ThetaAboveNode001132003 + +theorem e24KC2ThetaAboveNode00113201 : + adaptiveCoverCheck 11 thetaAboveCell00113201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00113201 + e24KC2ThetaAboveLeaf001132010 e24KC2ThetaAboveLeaf001132011 e24KC2ThetaAboveNode001132012 + e24KC2ThetaAboveNode001132013 + +theorem e24KC2ThetaAboveNode00113202 : + adaptiveCoverCheck 11 thetaAboveCell00113202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00113202 + e24KC2ThetaAboveNode001132020 e24KC2ThetaAboveNode001132021 e24KC2ThetaAboveLeaf001132022 + e24KC2ThetaAboveLeaf001132023 + +theorem e24KC2ThetaAboveNode00113203 : + adaptiveCoverCheck 11 thetaAboveCell00113203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00113203 + e24KC2ThetaAboveNode001132030 e24KC2ThetaAboveNode001132031 e24KC2ThetaAboveLeaf001132032 + e24KC2ThetaAboveLeaf001132033 + +theorem e24KC2ThetaAboveNode00113210 : + adaptiveCoverCheck 11 thetaAboveCell00113210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00113210 + e24KC2ThetaAboveLeaf001132100 e24KC2ThetaAboveLeaf001132101 e24KC2ThetaAboveNode001132102 + e24KC2ThetaAboveNode001132103 + +theorem e24KC2ThetaAboveNode00113211 : + adaptiveCoverCheck 11 thetaAboveCell00113211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00113211 + e24KC2ThetaAboveLeaf001132110 e24KC2ThetaAboveLeaf001132111 e24KC2ThetaAboveNode001132112 + e24KC2ThetaAboveNode001132113 + +theorem e24KC2ThetaAboveNode00113212 : + adaptiveCoverCheck 11 thetaAboveCell00113212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00113212 + e24KC2ThetaAboveNode001132120 e24KC2ThetaAboveNode001132121 e24KC2ThetaAboveLeaf001132122 + e24KC2ThetaAboveLeaf001132123 + +theorem e24KC2ThetaAboveNode00113213 : + adaptiveCoverCheck 11 thetaAboveCell00113213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00113213 + e24KC2ThetaAboveNode001132130 e24KC2ThetaAboveNode001132131 e24KC2ThetaAboveLeaf001132132 + e24KC2ThetaAboveLeaf001132133 + +theorem e24KC2ThetaAboveNode00113300 : + adaptiveCoverCheck 11 thetaAboveCell00113300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00113300 + e24KC2ThetaAboveLeaf001133000 e24KC2ThetaAboveLeaf001133001 e24KC2ThetaAboveNode001133002 + e24KC2ThetaAboveNode001133003 + +theorem e24KC2ThetaAboveNode00113301 : + adaptiveCoverCheck 11 thetaAboveCell00113301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00113301 + e24KC2ThetaAboveLeaf001133010 e24KC2ThetaAboveLeaf001133011 e24KC2ThetaAboveNode001133012 + e24KC2ThetaAboveNode001133013 + +theorem e24KC2ThetaAboveNode00113302 : + adaptiveCoverCheck 11 thetaAboveCell00113302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00113302 + e24KC2ThetaAboveNode001133020 e24KC2ThetaAboveNode001133021 e24KC2ThetaAboveLeaf001133022 + e24KC2ThetaAboveLeaf001133023 + +theorem e24KC2ThetaAboveNode00113303 : + adaptiveCoverCheck 11 thetaAboveCell00113303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00113303 + e24KC2ThetaAboveNode001133030 e24KC2ThetaAboveNode001133031 e24KC2ThetaAboveLeaf001133032 + e24KC2ThetaAboveLeaf001133033 + +theorem e24KC2ThetaAboveNode00113310 : + adaptiveCoverCheck 11 thetaAboveCell00113310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00113310 + e24KC2ThetaAboveLeaf001133100 e24KC2ThetaAboveLeaf001133101 e24KC2ThetaAboveNode001133102 + e24KC2ThetaAboveNode001133103 + +theorem e24KC2ThetaAboveNode00113311 : + adaptiveCoverCheck 11 thetaAboveCell00113311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00113311 + e24KC2ThetaAboveLeaf001133110 e24KC2ThetaAboveLeaf001133111 e24KC2ThetaAboveNode001133112 + e24KC2ThetaAboveNode001133113 + +theorem e24KC2ThetaAboveNode00113312 : + adaptiveCoverCheck 11 thetaAboveCell00113312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00113312 + e24KC2ThetaAboveNode001133120 e24KC2ThetaAboveNode001133121 e24KC2ThetaAboveLeaf001133122 + e24KC2ThetaAboveLeaf001133123 + +theorem e24KC2ThetaAboveNode00113313 : + adaptiveCoverCheck 11 thetaAboveCell00113313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell00113313 + e24KC2ThetaAboveNode001133130 e24KC2ThetaAboveNode001133131 e24KC2ThetaAboveLeaf001133132 + e24KC2ThetaAboveLeaf001133133 + +theorem e24KC2ThetaAboveNode01002200 : + adaptiveCoverCheck 11 thetaAboveCell01002200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01002200 + e24KC2ThetaAboveLeaf010022000 e24KC2ThetaAboveLeaf010022001 e24KC2ThetaAboveNode010022002 + e24KC2ThetaAboveNode010022003 + +theorem e24KC2ThetaAboveNode01002201 : + adaptiveCoverCheck 11 thetaAboveCell01002201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01002201 + e24KC2ThetaAboveLeaf010022010 e24KC2ThetaAboveLeaf010022011 e24KC2ThetaAboveNode010022012 + e24KC2ThetaAboveNode010022013 + +theorem e24KC2ThetaAboveNode01002202 : + adaptiveCoverCheck 11 thetaAboveCell01002202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01002202 + e24KC2ThetaAboveNode010022020 e24KC2ThetaAboveNode010022021 e24KC2ThetaAboveLeaf010022022 + e24KC2ThetaAboveLeaf010022023 + +theorem e24KC2ThetaAboveNode01002203 : + adaptiveCoverCheck 11 thetaAboveCell01002203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01002203 + e24KC2ThetaAboveNode010022030 e24KC2ThetaAboveNode010022031 e24KC2ThetaAboveLeaf010022032 + e24KC2ThetaAboveLeaf010022033 + +theorem e24KC2ThetaAboveNode01002210 : + adaptiveCoverCheck 11 thetaAboveCell01002210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01002210 + e24KC2ThetaAboveLeaf010022100 e24KC2ThetaAboveLeaf010022101 e24KC2ThetaAboveNode010022102 + e24KC2ThetaAboveNode010022103 + +theorem e24KC2ThetaAboveNode01002211 : + adaptiveCoverCheck 11 thetaAboveCell01002211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01002211 + e24KC2ThetaAboveLeaf010022110 e24KC2ThetaAboveLeaf010022111 e24KC2ThetaAboveNode010022112 + e24KC2ThetaAboveNode010022113 + +theorem e24KC2ThetaAboveNode01002212 : + adaptiveCoverCheck 11 thetaAboveCell01002212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01002212 + e24KC2ThetaAboveNode010022120 e24KC2ThetaAboveNode010022121 e24KC2ThetaAboveLeaf010022122 + e24KC2ThetaAboveLeaf010022123 + +theorem e24KC2ThetaAboveNode01002213 : + adaptiveCoverCheck 11 thetaAboveCell01002213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01002213 + e24KC2ThetaAboveNode010022130 e24KC2ThetaAboveNode010022131 e24KC2ThetaAboveLeaf010022132 + e24KC2ThetaAboveLeaf010022133 + +theorem e24KC2ThetaAboveNode01002300 : + adaptiveCoverCheck 11 thetaAboveCell01002300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01002300 + e24KC2ThetaAboveLeaf010023000 e24KC2ThetaAboveLeaf010023001 e24KC2ThetaAboveNode010023002 + e24KC2ThetaAboveNode010023003 + +theorem e24KC2ThetaAboveNode01002301 : + adaptiveCoverCheck 11 thetaAboveCell01002301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01002301 + e24KC2ThetaAboveLeaf010023010 e24KC2ThetaAboveLeaf010023011 e24KC2ThetaAboveNode010023012 + e24KC2ThetaAboveNode010023013 + +theorem e24KC2ThetaAboveNode01002302 : + adaptiveCoverCheck 11 thetaAboveCell01002302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01002302 + e24KC2ThetaAboveNode010023020 e24KC2ThetaAboveNode010023021 e24KC2ThetaAboveLeaf010023022 + e24KC2ThetaAboveLeaf010023023 + +theorem e24KC2ThetaAboveNode01002303 : + adaptiveCoverCheck 11 thetaAboveCell01002303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01002303 + e24KC2ThetaAboveNode010023030 e24KC2ThetaAboveNode010023031 e24KC2ThetaAboveNode010023032 + e24KC2ThetaAboveNode010023033 + +theorem e24KC2ThetaAboveNode01002310 : + adaptiveCoverCheck 11 thetaAboveCell01002310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01002310 + e24KC2ThetaAboveLeaf010023100 e24KC2ThetaAboveLeaf010023101 e24KC2ThetaAboveNode010023102 + e24KC2ThetaAboveNode010023103 + +theorem e24KC2ThetaAboveNode01002311 : + adaptiveCoverCheck 11 thetaAboveCell01002311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01002311 + e24KC2ThetaAboveLeaf010023110 e24KC2ThetaAboveLeaf010023111 e24KC2ThetaAboveNode010023112 + e24KC2ThetaAboveNode010023113 + +theorem e24KC2ThetaAboveNode01002312 : + adaptiveCoverCheck 11 thetaAboveCell01002312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01002312 + e24KC2ThetaAboveNode010023120 e24KC2ThetaAboveNode010023121 e24KC2ThetaAboveNode010023122 + e24KC2ThetaAboveNode010023123 + +theorem e24KC2ThetaAboveNode01002313 : + adaptiveCoverCheck 11 thetaAboveCell01002313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01002313 + e24KC2ThetaAboveNode010023130 e24KC2ThetaAboveNode010023131 e24KC2ThetaAboveNode010023132 + e24KC2ThetaAboveNode010023133 + +theorem e24KC2ThetaAboveNode01003200 : + adaptiveCoverCheck 11 thetaAboveCell01003200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01003200 + e24KC2ThetaAboveLeaf010032000 e24KC2ThetaAboveLeaf010032001 e24KC2ThetaAboveNode010032002 + e24KC2ThetaAboveNode010032003 + +theorem e24KC2ThetaAboveNode01003201 : + adaptiveCoverCheck 11 thetaAboveCell01003201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01003201 + e24KC2ThetaAboveLeaf010032010 e24KC2ThetaAboveLeaf010032011 e24KC2ThetaAboveNode010032012 + e24KC2ThetaAboveNode010032013 + +theorem e24KC2ThetaAboveNode01003202 : + adaptiveCoverCheck 11 thetaAboveCell01003202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01003202 + e24KC2ThetaAboveNode010032020 e24KC2ThetaAboveNode010032021 e24KC2ThetaAboveNode010032022 + e24KC2ThetaAboveNode010032023 + +theorem e24KC2ThetaAboveNode01003203 : + adaptiveCoverCheck 11 thetaAboveCell01003203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01003203 + e24KC2ThetaAboveNode010032030 e24KC2ThetaAboveNode010032031 e24KC2ThetaAboveNode010032032 + e24KC2ThetaAboveNode010032033 + +theorem e24KC2ThetaAboveNode01003210 : + adaptiveCoverCheck 11 thetaAboveCell01003210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01003210 + e24KC2ThetaAboveLeaf010032100 e24KC2ThetaAboveLeaf010032101 e24KC2ThetaAboveNode010032102 + e24KC2ThetaAboveNode010032103 + +theorem e24KC2ThetaAboveNode01003211 : + adaptiveCoverCheck 11 thetaAboveCell01003211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01003211 + e24KC2ThetaAboveLeaf010032110 e24KC2ThetaAboveLeaf010032111 e24KC2ThetaAboveNode010032112 + e24KC2ThetaAboveNode010032113 + +theorem e24KC2ThetaAboveNode01003212 : + adaptiveCoverCheck 11 thetaAboveCell01003212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01003212 + e24KC2ThetaAboveNode010032120 e24KC2ThetaAboveNode010032121 e24KC2ThetaAboveNode010032122 + e24KC2ThetaAboveNode010032123 + +theorem e24KC2ThetaAboveNode01003213 : + adaptiveCoverCheck 11 thetaAboveCell01003213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01003213 + e24KC2ThetaAboveNode010032130 e24KC2ThetaAboveNode010032131 e24KC2ThetaAboveNode010032132 + e24KC2ThetaAboveNode010032133 + +theorem e24KC2ThetaAboveNode01003300 : + adaptiveCoverCheck 11 thetaAboveCell01003300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01003300 + e24KC2ThetaAboveLeaf010033000 e24KC2ThetaAboveLeaf010033001 e24KC2ThetaAboveNode010033002 + e24KC2ThetaAboveNode010033003 + +theorem e24KC2ThetaAboveNode01003301 : + adaptiveCoverCheck 11 thetaAboveCell01003301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01003301 + e24KC2ThetaAboveLeaf010033010 e24KC2ThetaAboveLeaf010033011 e24KC2ThetaAboveNode010033012 + e24KC2ThetaAboveNode010033013 + +theorem e24KC2ThetaAboveNode01003302 : + adaptiveCoverCheck 11 thetaAboveCell01003302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01003302 + e24KC2ThetaAboveNode010033020 e24KC2ThetaAboveNode010033021 e24KC2ThetaAboveNode010033022 + e24KC2ThetaAboveNode010033023 + +theorem e24KC2ThetaAboveNode01003303 : + adaptiveCoverCheck 11 thetaAboveCell01003303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01003303 + e24KC2ThetaAboveNode010033030 e24KC2ThetaAboveNode010033031 e24KC2ThetaAboveNode010033032 + e24KC2ThetaAboveNode010033033 + +theorem e24KC2ThetaAboveNode01003310 : + adaptiveCoverCheck 11 thetaAboveCell01003310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01003310 + e24KC2ThetaAboveLeaf010033100 e24KC2ThetaAboveLeaf010033101 e24KC2ThetaAboveNode010033102 + e24KC2ThetaAboveNode010033103 + +theorem e24KC2ThetaAboveNode01003311 : + adaptiveCoverCheck 11 thetaAboveCell01003311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01003311 + e24KC2ThetaAboveLeaf010033110 e24KC2ThetaAboveLeaf010033111 e24KC2ThetaAboveNode010033112 + e24KC2ThetaAboveNode010033113 + +theorem e24KC2ThetaAboveNode01003312 : + adaptiveCoverCheck 11 thetaAboveCell01003312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01003312 + e24KC2ThetaAboveNode010033120 e24KC2ThetaAboveNode010033121 e24KC2ThetaAboveNode010033122 + e24KC2ThetaAboveNode010033123 + +theorem e24KC2ThetaAboveNode01003313 : + adaptiveCoverCheck 11 thetaAboveCell01003313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01003313 + e24KC2ThetaAboveNode010033130 e24KC2ThetaAboveNode010033131 e24KC2ThetaAboveNode010033132 + e24KC2ThetaAboveNode010033133 + +theorem e24KC2ThetaAboveNode01003330 : + adaptiveCoverCheck 11 thetaAboveCell01003330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01003330 + e24KC2ThetaAboveLeaf010033300 e24KC2ThetaAboveLeaf010033301 e24KC2ThetaAboveLeaf010033302 + e24KC2ThetaAboveLeaf010033303 + +theorem e24KC2ThetaAboveNode01003331 : + adaptiveCoverCheck 11 thetaAboveCell01003331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01003331 + e24KC2ThetaAboveLeaf010033310 e24KC2ThetaAboveLeaf010033311 e24KC2ThetaAboveLeaf010033312 + e24KC2ThetaAboveLeaf010033313 + +theorem e24KC2ThetaAboveNode01012200 : + adaptiveCoverCheck 11 thetaAboveCell01012200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012200 + e24KC2ThetaAboveLeaf010122000 e24KC2ThetaAboveLeaf010122001 e24KC2ThetaAboveNode010122002 + e24KC2ThetaAboveNode010122003 + +theorem e24KC2ThetaAboveNode01012201 : + adaptiveCoverCheck 11 thetaAboveCell01012201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012201 + e24KC2ThetaAboveLeaf010122010 e24KC2ThetaAboveLeaf010122011 e24KC2ThetaAboveNode010122012 + e24KC2ThetaAboveNode010122013 + +theorem e24KC2ThetaAboveNode01012202 : + adaptiveCoverCheck 11 thetaAboveCell01012202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012202 + e24KC2ThetaAboveNode010122020 e24KC2ThetaAboveNode010122021 e24KC2ThetaAboveNode010122022 + e24KC2ThetaAboveNode010122023 + +theorem e24KC2ThetaAboveNode01012203 : + adaptiveCoverCheck 11 thetaAboveCell01012203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012203 + e24KC2ThetaAboveNode010122030 e24KC2ThetaAboveNode010122031 e24KC2ThetaAboveNode010122032 + e24KC2ThetaAboveNode010122033 + +theorem e24KC2ThetaAboveNode01012210 : + adaptiveCoverCheck 11 thetaAboveCell01012210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012210 + e24KC2ThetaAboveLeaf010122100 e24KC2ThetaAboveLeaf010122101 e24KC2ThetaAboveNode010122102 + e24KC2ThetaAboveNode010122103 + +theorem e24KC2ThetaAboveNode01012211 : + adaptiveCoverCheck 11 thetaAboveCell01012211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012211 + e24KC2ThetaAboveLeaf010122110 e24KC2ThetaAboveLeaf010122111 e24KC2ThetaAboveNode010122112 + e24KC2ThetaAboveNode010122113 + +theorem e24KC2ThetaAboveNode01012212 : + adaptiveCoverCheck 11 thetaAboveCell01012212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012212 + e24KC2ThetaAboveNode010122120 e24KC2ThetaAboveNode010122121 e24KC2ThetaAboveNode010122122 + e24KC2ThetaAboveNode010122123 + +theorem e24KC2ThetaAboveNode01012213 : + adaptiveCoverCheck 11 thetaAboveCell01012213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012213 + e24KC2ThetaAboveNode010122130 e24KC2ThetaAboveNode010122131 e24KC2ThetaAboveNode010122132 + e24KC2ThetaAboveNode010122133 + +theorem e24KC2ThetaAboveNode01012220 : + adaptiveCoverCheck 11 thetaAboveCell01012220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012220 + e24KC2ThetaAboveLeaf010122200 e24KC2ThetaAboveLeaf010122201 e24KC2ThetaAboveLeaf010122202 + e24KC2ThetaAboveLeaf010122203 + +theorem e24KC2ThetaAboveNode01012221 : + adaptiveCoverCheck 11 thetaAboveCell01012221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012221 + e24KC2ThetaAboveLeaf010122210 e24KC2ThetaAboveLeaf010122211 e24KC2ThetaAboveLeaf010122212 + e24KC2ThetaAboveLeaf010122213 + +theorem e24KC2ThetaAboveNode01012230 : + adaptiveCoverCheck 11 thetaAboveCell01012230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012230 + e24KC2ThetaAboveLeaf010122300 e24KC2ThetaAboveLeaf010122301 e24KC2ThetaAboveLeaf010122302 + e24KC2ThetaAboveLeaf010122303 + +theorem e24KC2ThetaAboveNode01012231 : + adaptiveCoverCheck 11 thetaAboveCell01012231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012231 + e24KC2ThetaAboveLeaf010122310 e24KC2ThetaAboveLeaf010122311 e24KC2ThetaAboveLeaf010122312 + e24KC2ThetaAboveLeaf010122313 + +theorem e24KC2ThetaAboveNode01012300 : + adaptiveCoverCheck 11 thetaAboveCell01012300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012300 + e24KC2ThetaAboveLeaf010123000 e24KC2ThetaAboveLeaf010123001 e24KC2ThetaAboveNode010123002 + e24KC2ThetaAboveNode010123003 + +theorem e24KC2ThetaAboveNode01012301 : + adaptiveCoverCheck 11 thetaAboveCell01012301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012301 + e24KC2ThetaAboveLeaf010123010 e24KC2ThetaAboveLeaf010123011 e24KC2ThetaAboveNode010123012 + e24KC2ThetaAboveNode010123013 + +theorem e24KC2ThetaAboveNode01012302 : + adaptiveCoverCheck 11 thetaAboveCell01012302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012302 + e24KC2ThetaAboveNode010123020 e24KC2ThetaAboveNode010123021 e24KC2ThetaAboveNode010123022 + e24KC2ThetaAboveNode010123023 + +theorem e24KC2ThetaAboveNode01012303 : + adaptiveCoverCheck 11 thetaAboveCell01012303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012303 + e24KC2ThetaAboveNode010123030 e24KC2ThetaAboveNode010123031 e24KC2ThetaAboveNode010123032 + e24KC2ThetaAboveNode010123033 + +theorem e24KC2ThetaAboveNode01012310 : + adaptiveCoverCheck 11 thetaAboveCell01012310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012310 + e24KC2ThetaAboveLeaf010123100 e24KC2ThetaAboveLeaf010123101 e24KC2ThetaAboveNode010123102 + e24KC2ThetaAboveNode010123103 + +theorem e24KC2ThetaAboveNode01012311 : + adaptiveCoverCheck 11 thetaAboveCell01012311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012311 + e24KC2ThetaAboveLeaf010123110 e24KC2ThetaAboveLeaf010123111 e24KC2ThetaAboveNode010123112 + e24KC2ThetaAboveNode010123113 + +theorem e24KC2ThetaAboveNode01012312 : + adaptiveCoverCheck 11 thetaAboveCell01012312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012312 + e24KC2ThetaAboveNode010123120 e24KC2ThetaAboveNode010123121 e24KC2ThetaAboveNode010123122 + e24KC2ThetaAboveNode010123123 + +theorem e24KC2ThetaAboveNode01012313 : + adaptiveCoverCheck 11 thetaAboveCell01012313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012313 + e24KC2ThetaAboveNode010123130 e24KC2ThetaAboveNode010123131 e24KC2ThetaAboveNode010123132 + e24KC2ThetaAboveNode010123133 + +theorem e24KC2ThetaAboveNode01012320 : + adaptiveCoverCheck 11 thetaAboveCell01012320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012320 + e24KC2ThetaAboveLeaf010123200 e24KC2ThetaAboveLeaf010123201 e24KC2ThetaAboveLeaf010123202 + e24KC2ThetaAboveLeaf010123203 + +theorem e24KC2ThetaAboveNode01012321 : + adaptiveCoverCheck 11 thetaAboveCell01012321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012321 + e24KC2ThetaAboveLeaf010123210 e24KC2ThetaAboveLeaf010123211 e24KC2ThetaAboveLeaf010123212 + e24KC2ThetaAboveLeaf010123213 + +theorem e24KC2ThetaAboveNode01012330 : + adaptiveCoverCheck 11 thetaAboveCell01012330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012330 + e24KC2ThetaAboveLeaf010123300 e24KC2ThetaAboveLeaf010123301 e24KC2ThetaAboveLeaf010123302 + e24KC2ThetaAboveLeaf010123303 + +theorem e24KC2ThetaAboveNode01012331 : + adaptiveCoverCheck 11 thetaAboveCell01012331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01012331 + e24KC2ThetaAboveLeaf010123310 e24KC2ThetaAboveLeaf010123311 e24KC2ThetaAboveLeaf010123312 + e24KC2ThetaAboveLeaf010123313 + +theorem e24KC2ThetaAboveNode01013200 : + adaptiveCoverCheck 11 thetaAboveCell01013200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013200 + e24KC2ThetaAboveLeaf010132000 e24KC2ThetaAboveLeaf010132001 e24KC2ThetaAboveNode010132002 + e24KC2ThetaAboveNode010132003 + +theorem e24KC2ThetaAboveNode01013201 : + adaptiveCoverCheck 11 thetaAboveCell01013201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013201 + e24KC2ThetaAboveLeaf010132010 e24KC2ThetaAboveLeaf010132011 e24KC2ThetaAboveNode010132012 + e24KC2ThetaAboveNode010132013 + +theorem e24KC2ThetaAboveNode01013202 : + adaptiveCoverCheck 11 thetaAboveCell01013202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013202 + e24KC2ThetaAboveNode010132020 e24KC2ThetaAboveNode010132021 e24KC2ThetaAboveNode010132022 + e24KC2ThetaAboveNode010132023 + +theorem e24KC2ThetaAboveNode01013203 : + adaptiveCoverCheck 11 thetaAboveCell01013203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013203 + e24KC2ThetaAboveNode010132030 e24KC2ThetaAboveNode010132031 e24KC2ThetaAboveNode010132032 + e24KC2ThetaAboveNode010132033 + +theorem e24KC2ThetaAboveNode01013210 : + adaptiveCoverCheck 11 thetaAboveCell01013210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013210 + e24KC2ThetaAboveLeaf010132100 e24KC2ThetaAboveLeaf010132101 e24KC2ThetaAboveNode010132102 + e24KC2ThetaAboveNode010132103 + +theorem e24KC2ThetaAboveNode01013211 : + adaptiveCoverCheck 11 thetaAboveCell01013211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013211 + e24KC2ThetaAboveLeaf010132110 e24KC2ThetaAboveLeaf010132111 e24KC2ThetaAboveNode010132112 + e24KC2ThetaAboveNode010132113 + +theorem e24KC2ThetaAboveNode01013212 : + adaptiveCoverCheck 11 thetaAboveCell01013212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013212 + e24KC2ThetaAboveNode010132120 e24KC2ThetaAboveNode010132121 e24KC2ThetaAboveNode010132122 + e24KC2ThetaAboveNode010132123 + +theorem e24KC2ThetaAboveNode01013213 : + adaptiveCoverCheck 11 thetaAboveCell01013213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013213 + e24KC2ThetaAboveNode010132130 e24KC2ThetaAboveNode010132131 e24KC2ThetaAboveNode010132132 + e24KC2ThetaAboveNode010132133 + +theorem e24KC2ThetaAboveNode01013220 : + adaptiveCoverCheck 11 thetaAboveCell01013220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013220 + e24KC2ThetaAboveLeaf010132200 e24KC2ThetaAboveLeaf010132201 e24KC2ThetaAboveLeaf010132202 + e24KC2ThetaAboveLeaf010132203 + +theorem e24KC2ThetaAboveNode01013221 : + adaptiveCoverCheck 11 thetaAboveCell01013221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013221 + e24KC2ThetaAboveLeaf010132210 e24KC2ThetaAboveLeaf010132211 e24KC2ThetaAboveLeaf010132212 + e24KC2ThetaAboveLeaf010132213 + +theorem e24KC2ThetaAboveNode01013230 : + adaptiveCoverCheck 11 thetaAboveCell01013230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013230 + e24KC2ThetaAboveLeaf010132300 e24KC2ThetaAboveLeaf010132301 e24KC2ThetaAboveLeaf010132302 + e24KC2ThetaAboveLeaf010132303 + +theorem e24KC2ThetaAboveNode01013231 : + adaptiveCoverCheck 11 thetaAboveCell01013231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013231 + e24KC2ThetaAboveLeaf010132310 e24KC2ThetaAboveLeaf010132311 e24KC2ThetaAboveLeaf010132312 + e24KC2ThetaAboveLeaf010132313 + +theorem e24KC2ThetaAboveNode01013300 : + adaptiveCoverCheck 11 thetaAboveCell01013300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013300 + e24KC2ThetaAboveLeaf010133000 e24KC2ThetaAboveLeaf010133001 e24KC2ThetaAboveNode010133002 + e24KC2ThetaAboveNode010133003 + +theorem e24KC2ThetaAboveNode01013301 : + adaptiveCoverCheck 11 thetaAboveCell01013301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013301 + e24KC2ThetaAboveLeaf010133010 e24KC2ThetaAboveLeaf010133011 e24KC2ThetaAboveNode010133012 + e24KC2ThetaAboveNode010133013 + +theorem e24KC2ThetaAboveNode01013302 : + adaptiveCoverCheck 11 thetaAboveCell01013302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013302 + e24KC2ThetaAboveNode010133020 e24KC2ThetaAboveNode010133021 e24KC2ThetaAboveNode010133022 + e24KC2ThetaAboveNode010133023 + +theorem e24KC2ThetaAboveNode01013303 : + adaptiveCoverCheck 11 thetaAboveCell01013303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013303 + e24KC2ThetaAboveNode010133030 e24KC2ThetaAboveNode010133031 e24KC2ThetaAboveNode010133032 + e24KC2ThetaAboveNode010133033 + +theorem e24KC2ThetaAboveNode01013310 : + adaptiveCoverCheck 11 thetaAboveCell01013310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013310 + e24KC2ThetaAboveLeaf010133100 e24KC2ThetaAboveLeaf010133101 e24KC2ThetaAboveNode010133102 + e24KC2ThetaAboveNode010133103 + +theorem e24KC2ThetaAboveNode01013311 : + adaptiveCoverCheck 11 thetaAboveCell01013311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013311 + e24KC2ThetaAboveLeaf010133110 e24KC2ThetaAboveLeaf010133111 e24KC2ThetaAboveNode010133112 + e24KC2ThetaAboveNode010133113 + +theorem e24KC2ThetaAboveNode01013312 : + adaptiveCoverCheck 11 thetaAboveCell01013312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013312 + e24KC2ThetaAboveNode010133120 e24KC2ThetaAboveNode010133121 e24KC2ThetaAboveNode010133122 + e24KC2ThetaAboveNode010133123 + +theorem e24KC2ThetaAboveNode01013313 : + adaptiveCoverCheck 11 thetaAboveCell01013313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013313 + e24KC2ThetaAboveNode010133130 e24KC2ThetaAboveNode010133131 e24KC2ThetaAboveNode010133132 + e24KC2ThetaAboveNode010133133 + +theorem e24KC2ThetaAboveNode01013320 : + adaptiveCoverCheck 11 thetaAboveCell01013320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013320 + e24KC2ThetaAboveLeaf010133200 e24KC2ThetaAboveLeaf010133201 e24KC2ThetaAboveLeaf010133202 + e24KC2ThetaAboveLeaf010133203 + +theorem e24KC2ThetaAboveNode01013321 : + adaptiveCoverCheck 11 thetaAboveCell01013321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013321 + e24KC2ThetaAboveLeaf010133210 e24KC2ThetaAboveLeaf010133211 e24KC2ThetaAboveLeaf010133212 + e24KC2ThetaAboveLeaf010133213 + +theorem e24KC2ThetaAboveNode01013330 : + adaptiveCoverCheck 11 thetaAboveCell01013330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013330 + e24KC2ThetaAboveLeaf010133300 e24KC2ThetaAboveLeaf010133301 e24KC2ThetaAboveLeaf010133302 + e24KC2ThetaAboveLeaf010133303 + +theorem e24KC2ThetaAboveNode01013331 : + adaptiveCoverCheck 11 thetaAboveCell01013331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01013331 + e24KC2ThetaAboveLeaf010133310 e24KC2ThetaAboveLeaf010133311 e24KC2ThetaAboveLeaf010133312 + e24KC2ThetaAboveLeaf010133313 + +theorem e24KC2ThetaAboveNode01102200 : + adaptiveCoverCheck 11 thetaAboveCell01102200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102200 + e24KC2ThetaAboveLeaf011022000 e24KC2ThetaAboveLeaf011022001 e24KC2ThetaAboveNode011022002 + e24KC2ThetaAboveNode011022003 + +theorem e24KC2ThetaAboveNode01102201 : + adaptiveCoverCheck 11 thetaAboveCell01102201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102201 + e24KC2ThetaAboveLeaf011022010 e24KC2ThetaAboveLeaf011022011 e24KC2ThetaAboveNode011022012 + e24KC2ThetaAboveNode011022013 + +theorem e24KC2ThetaAboveNode01102202 : + adaptiveCoverCheck 11 thetaAboveCell01102202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102202 + e24KC2ThetaAboveNode011022020 e24KC2ThetaAboveNode011022021 e24KC2ThetaAboveNode011022022 + e24KC2ThetaAboveNode011022023 + +theorem e24KC2ThetaAboveNode01102203 : + adaptiveCoverCheck 11 thetaAboveCell01102203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102203 + e24KC2ThetaAboveNode011022030 e24KC2ThetaAboveNode011022031 e24KC2ThetaAboveNode011022032 + e24KC2ThetaAboveNode011022033 + +theorem e24KC2ThetaAboveNode01102210 : + adaptiveCoverCheck 11 thetaAboveCell01102210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102210 + e24KC2ThetaAboveLeaf011022100 e24KC2ThetaAboveLeaf011022101 e24KC2ThetaAboveNode011022102 + e24KC2ThetaAboveNode011022103 + +theorem e24KC2ThetaAboveNode01102211 : + adaptiveCoverCheck 11 thetaAboveCell01102211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102211 + e24KC2ThetaAboveLeaf011022110 e24KC2ThetaAboveLeaf011022111 e24KC2ThetaAboveNode011022112 + e24KC2ThetaAboveNode011022113 + +theorem e24KC2ThetaAboveNode01102212 : + adaptiveCoverCheck 11 thetaAboveCell01102212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102212 + e24KC2ThetaAboveNode011022120 e24KC2ThetaAboveNode011022121 e24KC2ThetaAboveNode011022122 + e24KC2ThetaAboveNode011022123 + +theorem e24KC2ThetaAboveNode01102213 : + adaptiveCoverCheck 11 thetaAboveCell01102213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102213 + e24KC2ThetaAboveNode011022130 e24KC2ThetaAboveNode011022131 e24KC2ThetaAboveNode011022132 + e24KC2ThetaAboveNode011022133 + +theorem e24KC2ThetaAboveNode01102220 : + adaptiveCoverCheck 11 thetaAboveCell01102220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102220 + e24KC2ThetaAboveLeaf011022200 e24KC2ThetaAboveLeaf011022201 e24KC2ThetaAboveLeaf011022202 + e24KC2ThetaAboveLeaf011022203 + +theorem e24KC2ThetaAboveNode01102221 : + adaptiveCoverCheck 11 thetaAboveCell01102221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102221 + e24KC2ThetaAboveLeaf011022210 e24KC2ThetaAboveLeaf011022211 e24KC2ThetaAboveLeaf011022212 + e24KC2ThetaAboveLeaf011022213 + +theorem e24KC2ThetaAboveNode01102230 : + adaptiveCoverCheck 11 thetaAboveCell01102230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102230 + e24KC2ThetaAboveLeaf011022300 e24KC2ThetaAboveLeaf011022301 e24KC2ThetaAboveLeaf011022302 + e24KC2ThetaAboveLeaf011022303 + +theorem e24KC2ThetaAboveNode01102231 : + adaptiveCoverCheck 11 thetaAboveCell01102231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102231 + e24KC2ThetaAboveLeaf011022310 e24KC2ThetaAboveLeaf011022311 e24KC2ThetaAboveLeaf011022312 + e24KC2ThetaAboveLeaf011022313 + +theorem e24KC2ThetaAboveNode01102300 : + adaptiveCoverCheck 11 thetaAboveCell01102300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102300 + e24KC2ThetaAboveLeaf011023000 e24KC2ThetaAboveLeaf011023001 e24KC2ThetaAboveNode011023002 + e24KC2ThetaAboveNode011023003 + +theorem e24KC2ThetaAboveNode01102301 : + adaptiveCoverCheck 11 thetaAboveCell01102301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102301 + e24KC2ThetaAboveLeaf011023010 e24KC2ThetaAboveLeaf011023011 e24KC2ThetaAboveNode011023012 + e24KC2ThetaAboveNode011023013 + +theorem e24KC2ThetaAboveNode01102302 : + adaptiveCoverCheck 11 thetaAboveCell01102302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102302 + e24KC2ThetaAboveNode011023020 e24KC2ThetaAboveNode011023021 e24KC2ThetaAboveNode011023022 + e24KC2ThetaAboveNode011023023 + +theorem e24KC2ThetaAboveNode01102303 : + adaptiveCoverCheck 11 thetaAboveCell01102303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102303 + e24KC2ThetaAboveNode011023030 e24KC2ThetaAboveNode011023031 e24KC2ThetaAboveNode011023032 + e24KC2ThetaAboveNode011023033 + +theorem e24KC2ThetaAboveNode01102310 : + adaptiveCoverCheck 11 thetaAboveCell01102310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102310 + e24KC2ThetaAboveLeaf011023100 e24KC2ThetaAboveLeaf011023101 e24KC2ThetaAboveNode011023102 + e24KC2ThetaAboveNode011023103 + +theorem e24KC2ThetaAboveNode01102311 : + adaptiveCoverCheck 11 thetaAboveCell01102311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102311 + e24KC2ThetaAboveLeaf011023110 e24KC2ThetaAboveLeaf011023111 e24KC2ThetaAboveNode011023112 + e24KC2ThetaAboveNode011023113 + +theorem e24KC2ThetaAboveNode01102312 : + adaptiveCoverCheck 11 thetaAboveCell01102312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102312 + e24KC2ThetaAboveNode011023120 e24KC2ThetaAboveNode011023121 e24KC2ThetaAboveNode011023122 + e24KC2ThetaAboveNode011023123 + +theorem e24KC2ThetaAboveNode01102313 : + adaptiveCoverCheck 11 thetaAboveCell01102313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102313 + e24KC2ThetaAboveNode011023130 e24KC2ThetaAboveNode011023131 e24KC2ThetaAboveNode011023132 + e24KC2ThetaAboveNode011023133 + +theorem e24KC2ThetaAboveNode01102320 : + adaptiveCoverCheck 11 thetaAboveCell01102320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102320 + e24KC2ThetaAboveLeaf011023200 e24KC2ThetaAboveLeaf011023201 e24KC2ThetaAboveLeaf011023202 + e24KC2ThetaAboveLeaf011023203 + +theorem e24KC2ThetaAboveNode01102321 : + adaptiveCoverCheck 11 thetaAboveCell01102321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102321 + e24KC2ThetaAboveLeaf011023210 e24KC2ThetaAboveLeaf011023211 e24KC2ThetaAboveLeaf011023212 + e24KC2ThetaAboveLeaf011023213 + +theorem e24KC2ThetaAboveNode01102330 : + adaptiveCoverCheck 11 thetaAboveCell01102330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102330 + e24KC2ThetaAboveLeaf011023300 e24KC2ThetaAboveLeaf011023301 e24KC2ThetaAboveLeaf011023302 + e24KC2ThetaAboveLeaf011023303 + +theorem e24KC2ThetaAboveNode01102331 : + adaptiveCoverCheck 11 thetaAboveCell01102331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01102331 + e24KC2ThetaAboveLeaf011023310 e24KC2ThetaAboveLeaf011023311 e24KC2ThetaAboveLeaf011023312 + e24KC2ThetaAboveLeaf011023313 + +theorem e24KC2ThetaAboveNode01103200 : + adaptiveCoverCheck 11 thetaAboveCell01103200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103200 + e24KC2ThetaAboveLeaf011032000 e24KC2ThetaAboveLeaf011032001 e24KC2ThetaAboveNode011032002 + e24KC2ThetaAboveNode011032003 + +theorem e24KC2ThetaAboveNode01103201 : + adaptiveCoverCheck 11 thetaAboveCell01103201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103201 + e24KC2ThetaAboveLeaf011032010 e24KC2ThetaAboveLeaf011032011 e24KC2ThetaAboveNode011032012 + e24KC2ThetaAboveNode011032013 + +theorem e24KC2ThetaAboveNode01103202 : + adaptiveCoverCheck 11 thetaAboveCell01103202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103202 + e24KC2ThetaAboveNode011032020 e24KC2ThetaAboveNode011032021 e24KC2ThetaAboveNode011032022 + e24KC2ThetaAboveNode011032023 + +theorem e24KC2ThetaAboveNode01103203 : + adaptiveCoverCheck 11 thetaAboveCell01103203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103203 + e24KC2ThetaAboveNode011032030 e24KC2ThetaAboveNode011032031 e24KC2ThetaAboveNode011032032 + e24KC2ThetaAboveNode011032033 + +theorem e24KC2ThetaAboveNode01103210 : + adaptiveCoverCheck 11 thetaAboveCell01103210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103210 + e24KC2ThetaAboveLeaf011032100 e24KC2ThetaAboveLeaf011032101 e24KC2ThetaAboveNode011032102 + e24KC2ThetaAboveNode011032103 + +theorem e24KC2ThetaAboveNode01103211 : + adaptiveCoverCheck 11 thetaAboveCell01103211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103211 + e24KC2ThetaAboveLeaf011032110 e24KC2ThetaAboveLeaf011032111 e24KC2ThetaAboveNode011032112 + e24KC2ThetaAboveNode011032113 + +theorem e24KC2ThetaAboveNode01103212 : + adaptiveCoverCheck 11 thetaAboveCell01103212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103212 + e24KC2ThetaAboveNode011032120 e24KC2ThetaAboveNode011032121 e24KC2ThetaAboveNode011032122 + e24KC2ThetaAboveNode011032123 + +theorem e24KC2ThetaAboveNode01103213 : + adaptiveCoverCheck 11 thetaAboveCell01103213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103213 + e24KC2ThetaAboveNode011032130 e24KC2ThetaAboveNode011032131 e24KC2ThetaAboveNode011032132 + e24KC2ThetaAboveNode011032133 + +theorem e24KC2ThetaAboveNode01103220 : + adaptiveCoverCheck 11 thetaAboveCell01103220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103220 + e24KC2ThetaAboveLeaf011032200 e24KC2ThetaAboveLeaf011032201 e24KC2ThetaAboveLeaf011032202 + e24KC2ThetaAboveLeaf011032203 + +theorem e24KC2ThetaAboveNode01103221 : + adaptiveCoverCheck 11 thetaAboveCell01103221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103221 + e24KC2ThetaAboveLeaf011032210 e24KC2ThetaAboveLeaf011032211 e24KC2ThetaAboveLeaf011032212 + e24KC2ThetaAboveLeaf011032213 + +theorem e24KC2ThetaAboveNode01103230 : + adaptiveCoverCheck 11 thetaAboveCell01103230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103230 + e24KC2ThetaAboveLeaf011032300 e24KC2ThetaAboveLeaf011032301 e24KC2ThetaAboveLeaf011032302 + e24KC2ThetaAboveLeaf011032303 + +theorem e24KC2ThetaAboveNode01103231 : + adaptiveCoverCheck 11 thetaAboveCell01103231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103231 + e24KC2ThetaAboveLeaf011032310 e24KC2ThetaAboveLeaf011032311 e24KC2ThetaAboveLeaf011032312 + e24KC2ThetaAboveLeaf011032313 + +theorem e24KC2ThetaAboveNode01103300 : + adaptiveCoverCheck 11 thetaAboveCell01103300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103300 + e24KC2ThetaAboveLeaf011033000 e24KC2ThetaAboveLeaf011033001 e24KC2ThetaAboveNode011033002 + e24KC2ThetaAboveNode011033003 + +theorem e24KC2ThetaAboveNode01103301 : + adaptiveCoverCheck 11 thetaAboveCell01103301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103301 + e24KC2ThetaAboveLeaf011033010 e24KC2ThetaAboveLeaf011033011 e24KC2ThetaAboveNode011033012 + e24KC2ThetaAboveNode011033013 + +theorem e24KC2ThetaAboveNode01103302 : + adaptiveCoverCheck 11 thetaAboveCell01103302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103302 + e24KC2ThetaAboveNode011033020 e24KC2ThetaAboveNode011033021 e24KC2ThetaAboveNode011033022 + e24KC2ThetaAboveNode011033023 + +theorem e24KC2ThetaAboveNode01103303 : + adaptiveCoverCheck 11 thetaAboveCell01103303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103303 + e24KC2ThetaAboveNode011033030 e24KC2ThetaAboveNode011033031 e24KC2ThetaAboveNode011033032 + e24KC2ThetaAboveNode011033033 + +theorem e24KC2ThetaAboveNode01103310 : + adaptiveCoverCheck 11 thetaAboveCell01103310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103310 + e24KC2ThetaAboveLeaf011033100 e24KC2ThetaAboveLeaf011033101 e24KC2ThetaAboveNode011033102 + e24KC2ThetaAboveNode011033103 + +theorem e24KC2ThetaAboveNode01103311 : + adaptiveCoverCheck 11 thetaAboveCell01103311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103311 + e24KC2ThetaAboveLeaf011033110 e24KC2ThetaAboveLeaf011033111 e24KC2ThetaAboveNode011033112 + e24KC2ThetaAboveNode011033113 + +theorem e24KC2ThetaAboveNode01103312 : + adaptiveCoverCheck 11 thetaAboveCell01103312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103312 + e24KC2ThetaAboveNode011033120 e24KC2ThetaAboveNode011033121 e24KC2ThetaAboveNode011033122 + e24KC2ThetaAboveNode011033123 + +theorem e24KC2ThetaAboveNode01103313 : + adaptiveCoverCheck 11 thetaAboveCell01103313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103313 + e24KC2ThetaAboveNode011033130 e24KC2ThetaAboveNode011033131 e24KC2ThetaAboveNode011033132 + e24KC2ThetaAboveNode011033133 + +theorem e24KC2ThetaAboveNode01103320 : + adaptiveCoverCheck 11 thetaAboveCell01103320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103320 + e24KC2ThetaAboveLeaf011033200 e24KC2ThetaAboveLeaf011033201 e24KC2ThetaAboveLeaf011033202 + e24KC2ThetaAboveLeaf011033203 + +theorem e24KC2ThetaAboveNode01103321 : + adaptiveCoverCheck 11 thetaAboveCell01103321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103321 + e24KC2ThetaAboveLeaf011033210 e24KC2ThetaAboveLeaf011033211 e24KC2ThetaAboveLeaf011033212 + e24KC2ThetaAboveLeaf011033213 + +theorem e24KC2ThetaAboveNode01103330 : + adaptiveCoverCheck 11 thetaAboveCell01103330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103330 + e24KC2ThetaAboveLeaf011033300 e24KC2ThetaAboveLeaf011033301 e24KC2ThetaAboveLeaf011033302 + e24KC2ThetaAboveLeaf011033303 + +theorem e24KC2ThetaAboveNode01103331 : + adaptiveCoverCheck 11 thetaAboveCell01103331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01103331 + e24KC2ThetaAboveLeaf011033310 e24KC2ThetaAboveLeaf011033311 e24KC2ThetaAboveLeaf011033312 + e24KC2ThetaAboveLeaf011033313 + +theorem e24KC2ThetaAboveNode01112200 : + adaptiveCoverCheck 11 thetaAboveCell01112200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112200 + e24KC2ThetaAboveLeaf011122000 e24KC2ThetaAboveLeaf011122001 e24KC2ThetaAboveNode011122002 + e24KC2ThetaAboveNode011122003 + +theorem e24KC2ThetaAboveNode01112201 : + adaptiveCoverCheck 11 thetaAboveCell01112201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112201 + e24KC2ThetaAboveLeaf011122010 e24KC2ThetaAboveLeaf011122011 e24KC2ThetaAboveNode011122012 + e24KC2ThetaAboveNode011122013 + +theorem e24KC2ThetaAboveNode01112202 : + adaptiveCoverCheck 11 thetaAboveCell01112202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112202 + e24KC2ThetaAboveNode011122020 e24KC2ThetaAboveNode011122021 e24KC2ThetaAboveNode011122022 + e24KC2ThetaAboveNode011122023 + +theorem e24KC2ThetaAboveNode01112203 : + adaptiveCoverCheck 11 thetaAboveCell01112203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112203 + e24KC2ThetaAboveNode011122030 e24KC2ThetaAboveNode011122031 e24KC2ThetaAboveNode011122032 + e24KC2ThetaAboveNode011122033 + +theorem e24KC2ThetaAboveNode01112210 : + adaptiveCoverCheck 11 thetaAboveCell01112210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112210 + e24KC2ThetaAboveLeaf011122100 e24KC2ThetaAboveLeaf011122101 e24KC2ThetaAboveNode011122102 + e24KC2ThetaAboveNode011122103 + +theorem e24KC2ThetaAboveNode01112211 : + adaptiveCoverCheck 11 thetaAboveCell01112211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112211 + e24KC2ThetaAboveLeaf011122110 e24KC2ThetaAboveLeaf011122111 e24KC2ThetaAboveNode011122112 + e24KC2ThetaAboveNode011122113 + +theorem e24KC2ThetaAboveNode01112212 : + adaptiveCoverCheck 11 thetaAboveCell01112212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112212 + e24KC2ThetaAboveNode011122120 e24KC2ThetaAboveNode011122121 e24KC2ThetaAboveNode011122122 + e24KC2ThetaAboveNode011122123 + +theorem e24KC2ThetaAboveNode01112213 : + adaptiveCoverCheck 11 thetaAboveCell01112213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112213 + e24KC2ThetaAboveNode011122130 e24KC2ThetaAboveNode011122131 e24KC2ThetaAboveNode011122132 + e24KC2ThetaAboveNode011122133 + +theorem e24KC2ThetaAboveNode01112220 : + adaptiveCoverCheck 11 thetaAboveCell01112220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112220 + e24KC2ThetaAboveLeaf011122200 e24KC2ThetaAboveLeaf011122201 e24KC2ThetaAboveLeaf011122202 + e24KC2ThetaAboveLeaf011122203 + +theorem e24KC2ThetaAboveNode01112221 : + adaptiveCoverCheck 11 thetaAboveCell01112221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112221 + e24KC2ThetaAboveLeaf011122210 e24KC2ThetaAboveLeaf011122211 e24KC2ThetaAboveLeaf011122212 + e24KC2ThetaAboveLeaf011122213 + +theorem e24KC2ThetaAboveNode01112230 : + adaptiveCoverCheck 11 thetaAboveCell01112230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112230 + e24KC2ThetaAboveLeaf011122300 e24KC2ThetaAboveLeaf011122301 e24KC2ThetaAboveLeaf011122302 + e24KC2ThetaAboveLeaf011122303 + +theorem e24KC2ThetaAboveNode01112231 : + adaptiveCoverCheck 11 thetaAboveCell01112231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112231 + e24KC2ThetaAboveLeaf011122310 e24KC2ThetaAboveLeaf011122311 e24KC2ThetaAboveLeaf011122312 + e24KC2ThetaAboveLeaf011122313 + +theorem e24KC2ThetaAboveNode01112300 : + adaptiveCoverCheck 11 thetaAboveCell01112300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112300 + e24KC2ThetaAboveLeaf011123000 e24KC2ThetaAboveLeaf011123001 e24KC2ThetaAboveNode011123002 + e24KC2ThetaAboveNode011123003 + +theorem e24KC2ThetaAboveNode01112301 : + adaptiveCoverCheck 11 thetaAboveCell01112301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112301 + e24KC2ThetaAboveLeaf011123010 e24KC2ThetaAboveLeaf011123011 e24KC2ThetaAboveNode011123012 + e24KC2ThetaAboveNode011123013 + +theorem e24KC2ThetaAboveNode01112302 : + adaptiveCoverCheck 11 thetaAboveCell01112302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112302 + e24KC2ThetaAboveNode011123020 e24KC2ThetaAboveNode011123021 e24KC2ThetaAboveNode011123022 + e24KC2ThetaAboveNode011123023 + +theorem e24KC2ThetaAboveNode01112303 : + adaptiveCoverCheck 11 thetaAboveCell01112303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112303 + e24KC2ThetaAboveNode011123030 e24KC2ThetaAboveNode011123031 e24KC2ThetaAboveNode011123032 + e24KC2ThetaAboveNode011123033 + +theorem e24KC2ThetaAboveNode01112310 : + adaptiveCoverCheck 11 thetaAboveCell01112310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112310 + e24KC2ThetaAboveLeaf011123100 e24KC2ThetaAboveLeaf011123101 e24KC2ThetaAboveNode011123102 + e24KC2ThetaAboveNode011123103 + +theorem e24KC2ThetaAboveNode01112311 : + adaptiveCoverCheck 11 thetaAboveCell01112311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112311 + e24KC2ThetaAboveLeaf011123110 e24KC2ThetaAboveLeaf011123111 e24KC2ThetaAboveNode011123112 + e24KC2ThetaAboveNode011123113 + +theorem e24KC2ThetaAboveNode01112312 : + adaptiveCoverCheck 11 thetaAboveCell01112312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112312 + e24KC2ThetaAboveNode011123120 e24KC2ThetaAboveNode011123121 e24KC2ThetaAboveNode011123122 + e24KC2ThetaAboveNode011123123 + +theorem e24KC2ThetaAboveNode01112313 : + adaptiveCoverCheck 11 thetaAboveCell01112313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112313 + e24KC2ThetaAboveNode011123130 e24KC2ThetaAboveNode011123131 e24KC2ThetaAboveNode011123132 + e24KC2ThetaAboveNode011123133 + +theorem e24KC2ThetaAboveNode01112320 : + adaptiveCoverCheck 11 thetaAboveCell01112320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112320 + e24KC2ThetaAboveLeaf011123200 e24KC2ThetaAboveLeaf011123201 e24KC2ThetaAboveLeaf011123202 + e24KC2ThetaAboveLeaf011123203 + +theorem e24KC2ThetaAboveNode01112321 : + adaptiveCoverCheck 11 thetaAboveCell01112321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112321 + e24KC2ThetaAboveLeaf011123210 e24KC2ThetaAboveLeaf011123211 e24KC2ThetaAboveLeaf011123212 + e24KC2ThetaAboveLeaf011123213 + +theorem e24KC2ThetaAboveNode01112330 : + adaptiveCoverCheck 11 thetaAboveCell01112330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112330 + e24KC2ThetaAboveLeaf011123300 e24KC2ThetaAboveLeaf011123301 e24KC2ThetaAboveLeaf011123302 + e24KC2ThetaAboveLeaf011123303 + +theorem e24KC2ThetaAboveNode01112331 : + adaptiveCoverCheck 11 thetaAboveCell01112331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01112331 + e24KC2ThetaAboveLeaf011123310 e24KC2ThetaAboveLeaf011123311 e24KC2ThetaAboveLeaf011123312 + e24KC2ThetaAboveLeaf011123313 + +theorem e24KC2ThetaAboveNode01113200 : + adaptiveCoverCheck 11 thetaAboveCell01113200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113200 + e24KC2ThetaAboveLeaf011132000 e24KC2ThetaAboveLeaf011132001 e24KC2ThetaAboveNode011132002 + e24KC2ThetaAboveNode011132003 + +theorem e24KC2ThetaAboveNode01113201 : + adaptiveCoverCheck 11 thetaAboveCell01113201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113201 + e24KC2ThetaAboveLeaf011132010 e24KC2ThetaAboveLeaf011132011 e24KC2ThetaAboveNode011132012 + e24KC2ThetaAboveNode011132013 + +theorem e24KC2ThetaAboveNode01113202 : + adaptiveCoverCheck 11 thetaAboveCell01113202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113202 + e24KC2ThetaAboveNode011132020 e24KC2ThetaAboveNode011132021 e24KC2ThetaAboveNode011132022 + e24KC2ThetaAboveNode011132023 + +theorem e24KC2ThetaAboveNode01113203 : + adaptiveCoverCheck 11 thetaAboveCell01113203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113203 + e24KC2ThetaAboveNode011132030 e24KC2ThetaAboveNode011132031 e24KC2ThetaAboveNode011132032 + e24KC2ThetaAboveNode011132033 + +theorem e24KC2ThetaAboveNode01113210 : + adaptiveCoverCheck 11 thetaAboveCell01113210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113210 + e24KC2ThetaAboveLeaf011132100 e24KC2ThetaAboveLeaf011132101 e24KC2ThetaAboveLeaf011132102 + e24KC2ThetaAboveLeaf011132103 + +theorem e24KC2ThetaAboveNode01113211 : + adaptiveCoverCheck 11 thetaAboveCell01113211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113211 + e24KC2ThetaAboveLeaf011132110 e24KC2ThetaAboveLeaf011132111 e24KC2ThetaAboveLeaf011132112 + e24KC2ThetaAboveLeaf011132113 + +theorem e24KC2ThetaAboveNode01113212 : + adaptiveCoverCheck 11 thetaAboveCell01113212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113212 + e24KC2ThetaAboveNode011132120 e24KC2ThetaAboveNode011132121 e24KC2ThetaAboveNode011132122 + e24KC2ThetaAboveNode011132123 + +theorem e24KC2ThetaAboveNode01113213 : + adaptiveCoverCheck 11 thetaAboveCell01113213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113213 + e24KC2ThetaAboveNode011132130 e24KC2ThetaAboveNode011132131 e24KC2ThetaAboveNode011132132 + e24KC2ThetaAboveNode011132133 + +theorem e24KC2ThetaAboveNode01113220 : + adaptiveCoverCheck 11 thetaAboveCell01113220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113220 + e24KC2ThetaAboveLeaf011132200 e24KC2ThetaAboveLeaf011132201 e24KC2ThetaAboveLeaf011132202 + e24KC2ThetaAboveLeaf011132203 + +theorem e24KC2ThetaAboveNode01113221 : + adaptiveCoverCheck 11 thetaAboveCell01113221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113221 + e24KC2ThetaAboveLeaf011132210 e24KC2ThetaAboveLeaf011132211 e24KC2ThetaAboveLeaf011132212 + e24KC2ThetaAboveLeaf011132213 + +theorem e24KC2ThetaAboveNode01113230 : + adaptiveCoverCheck 11 thetaAboveCell01113230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113230 + e24KC2ThetaAboveLeaf011132300 e24KC2ThetaAboveLeaf011132301 e24KC2ThetaAboveLeaf011132302 + e24KC2ThetaAboveLeaf011132303 + +theorem e24KC2ThetaAboveNode01113231 : + adaptiveCoverCheck 11 thetaAboveCell01113231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113231 + e24KC2ThetaAboveLeaf011132310 e24KC2ThetaAboveLeaf011132311 e24KC2ThetaAboveLeaf011132312 + e24KC2ThetaAboveLeaf011132313 + +theorem e24KC2ThetaAboveNode01113300 : + adaptiveCoverCheck 11 thetaAboveCell01113300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113300 + e24KC2ThetaAboveLeaf011133000 e24KC2ThetaAboveLeaf011133001 e24KC2ThetaAboveLeaf011133002 + e24KC2ThetaAboveLeaf011133003 + +theorem e24KC2ThetaAboveNode01113301 : + adaptiveCoverCheck 11 thetaAboveCell01113301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113301 + e24KC2ThetaAboveLeaf011133010 e24KC2ThetaAboveLeaf011133011 e24KC2ThetaAboveLeaf011133012 + e24KC2ThetaAboveLeaf011133013 + +theorem e24KC2ThetaAboveNode01113302 : + adaptiveCoverCheck 11 thetaAboveCell01113302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113302 + e24KC2ThetaAboveNode011133020 e24KC2ThetaAboveNode011133021 e24KC2ThetaAboveNode011133022 + e24KC2ThetaAboveNode011133023 + +theorem e24KC2ThetaAboveNode01113303 : + adaptiveCoverCheck 11 thetaAboveCell01113303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113303 + e24KC2ThetaAboveNode011133030 e24KC2ThetaAboveNode011133031 e24KC2ThetaAboveNode011133032 + e24KC2ThetaAboveNode011133033 + +theorem e24KC2ThetaAboveNode01113310 : + adaptiveCoverCheck 11 thetaAboveCell01113310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113310 + e24KC2ThetaAboveLeaf011133100 e24KC2ThetaAboveLeaf011133101 e24KC2ThetaAboveLeaf011133102 + e24KC2ThetaAboveLeaf011133103 + +theorem e24KC2ThetaAboveNode01113311 : + adaptiveCoverCheck 11 thetaAboveCell01113311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113311 + e24KC2ThetaAboveLeaf011133110 e24KC2ThetaAboveLeaf011133111 e24KC2ThetaAboveLeaf011133112 + e24KC2ThetaAboveLeaf011133113 + +theorem e24KC2ThetaAboveNode01113312 : + adaptiveCoverCheck 11 thetaAboveCell01113312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113312 + e24KC2ThetaAboveNode011133120 e24KC2ThetaAboveNode011133121 e24KC2ThetaAboveNode011133122 + e24KC2ThetaAboveNode011133123 + +theorem e24KC2ThetaAboveNode01113313 : + adaptiveCoverCheck 11 thetaAboveCell01113313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113313 + e24KC2ThetaAboveNode011133130 e24KC2ThetaAboveNode011133131 e24KC2ThetaAboveNode011133132 + e24KC2ThetaAboveNode011133133 + +theorem e24KC2ThetaAboveNode01113320 : + adaptiveCoverCheck 11 thetaAboveCell01113320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113320 + e24KC2ThetaAboveLeaf011133200 e24KC2ThetaAboveLeaf011133201 e24KC2ThetaAboveLeaf011133202 + e24KC2ThetaAboveLeaf011133203 + +theorem e24KC2ThetaAboveNode01113321 : + adaptiveCoverCheck 11 thetaAboveCell01113321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113321 + e24KC2ThetaAboveLeaf011133210 e24KC2ThetaAboveLeaf011133211 e24KC2ThetaAboveLeaf011133212 + e24KC2ThetaAboveLeaf011133213 + +theorem e24KC2ThetaAboveNode01113330 : + adaptiveCoverCheck 11 thetaAboveCell01113330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113330 + e24KC2ThetaAboveLeaf011133300 e24KC2ThetaAboveLeaf011133301 e24KC2ThetaAboveLeaf011133302 + e24KC2ThetaAboveLeaf011133303 + +theorem e24KC2ThetaAboveNode01113331 : + adaptiveCoverCheck 11 thetaAboveCell01113331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell01113331 + e24KC2ThetaAboveLeaf011133310 e24KC2ThetaAboveLeaf011133311 e24KC2ThetaAboveLeaf011133312 + e24KC2ThetaAboveLeaf011133313 + +theorem e24KC2ThetaAboveNode10002200 : + adaptiveCoverCheck 11 thetaAboveCell10002200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002200 + e24KC2ThetaAboveLeaf100022000 e24KC2ThetaAboveLeaf100022001 e24KC2ThetaAboveLeaf100022002 + e24KC2ThetaAboveLeaf100022003 + +theorem e24KC2ThetaAboveNode10002201 : + adaptiveCoverCheck 11 thetaAboveCell10002201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002201 + e24KC2ThetaAboveLeaf100022010 e24KC2ThetaAboveLeaf100022011 e24KC2ThetaAboveLeaf100022012 + e24KC2ThetaAboveLeaf100022013 + +theorem e24KC2ThetaAboveNode10002202 : + adaptiveCoverCheck 11 thetaAboveCell10002202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002202 + e24KC2ThetaAboveNode100022020 e24KC2ThetaAboveNode100022021 e24KC2ThetaAboveNode100022022 + e24KC2ThetaAboveNode100022023 + +theorem e24KC2ThetaAboveNode10002203 : + adaptiveCoverCheck 11 thetaAboveCell10002203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002203 + e24KC2ThetaAboveNode100022030 e24KC2ThetaAboveNode100022031 e24KC2ThetaAboveNode100022032 + e24KC2ThetaAboveNode100022033 + +theorem e24KC2ThetaAboveNode10002210 : + adaptiveCoverCheck 11 thetaAboveCell10002210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002210 + e24KC2ThetaAboveLeaf100022100 e24KC2ThetaAboveLeaf100022101 e24KC2ThetaAboveLeaf100022102 + e24KC2ThetaAboveLeaf100022103 + +theorem e24KC2ThetaAboveNode10002211 : + adaptiveCoverCheck 11 thetaAboveCell10002211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002211 + e24KC2ThetaAboveLeaf100022110 e24KC2ThetaAboveLeaf100022111 e24KC2ThetaAboveLeaf100022112 + e24KC2ThetaAboveLeaf100022113 + +theorem e24KC2ThetaAboveNode10002212 : + adaptiveCoverCheck 11 thetaAboveCell10002212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002212 + e24KC2ThetaAboveNode100022120 e24KC2ThetaAboveNode100022121 e24KC2ThetaAboveNode100022122 + e24KC2ThetaAboveNode100022123 + +theorem e24KC2ThetaAboveNode10002213 : + adaptiveCoverCheck 11 thetaAboveCell10002213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002213 + e24KC2ThetaAboveNode100022130 e24KC2ThetaAboveNode100022131 e24KC2ThetaAboveNode100022132 + e24KC2ThetaAboveNode100022133 + +theorem e24KC2ThetaAboveNode10002220 : + adaptiveCoverCheck 11 thetaAboveCell10002220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002220 + e24KC2ThetaAboveLeaf100022200 e24KC2ThetaAboveLeaf100022201 e24KC2ThetaAboveLeaf100022202 + e24KC2ThetaAboveLeaf100022203 + +theorem e24KC2ThetaAboveNode10002221 : + adaptiveCoverCheck 11 thetaAboveCell10002221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002221 + e24KC2ThetaAboveLeaf100022210 e24KC2ThetaAboveLeaf100022211 e24KC2ThetaAboveLeaf100022212 + e24KC2ThetaAboveLeaf100022213 + +theorem e24KC2ThetaAboveNode10002230 : + adaptiveCoverCheck 11 thetaAboveCell10002230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002230 + e24KC2ThetaAboveLeaf100022300 e24KC2ThetaAboveLeaf100022301 e24KC2ThetaAboveLeaf100022302 + e24KC2ThetaAboveLeaf100022303 + +theorem e24KC2ThetaAboveNode10002231 : + adaptiveCoverCheck 11 thetaAboveCell10002231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002231 + e24KC2ThetaAboveLeaf100022310 e24KC2ThetaAboveLeaf100022311 e24KC2ThetaAboveLeaf100022312 + e24KC2ThetaAboveLeaf100022313 + +theorem e24KC2ThetaAboveNode10002300 : + adaptiveCoverCheck 11 thetaAboveCell10002300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002300 + e24KC2ThetaAboveLeaf100023000 e24KC2ThetaAboveLeaf100023001 e24KC2ThetaAboveLeaf100023002 + e24KC2ThetaAboveLeaf100023003 + +theorem e24KC2ThetaAboveNode10002301 : + adaptiveCoverCheck 11 thetaAboveCell10002301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002301 + e24KC2ThetaAboveLeaf100023010 e24KC2ThetaAboveLeaf100023011 e24KC2ThetaAboveLeaf100023012 + e24KC2ThetaAboveLeaf100023013 + +theorem e24KC2ThetaAboveNode10002302 : + adaptiveCoverCheck 11 thetaAboveCell10002302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002302 + e24KC2ThetaAboveNode100023020 e24KC2ThetaAboveNode100023021 e24KC2ThetaAboveNode100023022 + e24KC2ThetaAboveNode100023023 + +theorem e24KC2ThetaAboveNode10002303 : + adaptiveCoverCheck 11 thetaAboveCell10002303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002303 + e24KC2ThetaAboveNode100023030 e24KC2ThetaAboveNode100023031 e24KC2ThetaAboveNode100023032 + e24KC2ThetaAboveNode100023033 + +theorem e24KC2ThetaAboveNode10002310 : + adaptiveCoverCheck 11 thetaAboveCell10002310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002310 + e24KC2ThetaAboveLeaf100023100 e24KC2ThetaAboveLeaf100023101 e24KC2ThetaAboveLeaf100023102 + e24KC2ThetaAboveLeaf100023103 + +theorem e24KC2ThetaAboveNode10002311 : + adaptiveCoverCheck 11 thetaAboveCell10002311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002311 + e24KC2ThetaAboveLeaf100023110 e24KC2ThetaAboveLeaf100023111 e24KC2ThetaAboveLeaf100023112 + e24KC2ThetaAboveLeaf100023113 + +theorem e24KC2ThetaAboveNode10002312 : + adaptiveCoverCheck 11 thetaAboveCell10002312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002312 + e24KC2ThetaAboveNode100023120 e24KC2ThetaAboveNode100023121 e24KC2ThetaAboveNode100023122 + e24KC2ThetaAboveNode100023123 + +theorem e24KC2ThetaAboveNode10002313 : + adaptiveCoverCheck 11 thetaAboveCell10002313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002313 + e24KC2ThetaAboveNode100023130 e24KC2ThetaAboveNode100023131 e24KC2ThetaAboveNode100023132 + e24KC2ThetaAboveNode100023133 + +theorem e24KC2ThetaAboveNode10002320 : + adaptiveCoverCheck 11 thetaAboveCell10002320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002320 + e24KC2ThetaAboveLeaf100023200 e24KC2ThetaAboveLeaf100023201 e24KC2ThetaAboveLeaf100023202 + e24KC2ThetaAboveLeaf100023203 + +theorem e24KC2ThetaAboveNode10002321 : + adaptiveCoverCheck 11 thetaAboveCell10002321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002321 + e24KC2ThetaAboveLeaf100023210 e24KC2ThetaAboveLeaf100023211 e24KC2ThetaAboveLeaf100023212 + e24KC2ThetaAboveLeaf100023213 + +theorem e24KC2ThetaAboveNode10002330 : + adaptiveCoverCheck 11 thetaAboveCell10002330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002330 + e24KC2ThetaAboveLeaf100023300 e24KC2ThetaAboveLeaf100023301 e24KC2ThetaAboveLeaf100023302 + e24KC2ThetaAboveLeaf100023303 + +theorem e24KC2ThetaAboveNode10002331 : + adaptiveCoverCheck 11 thetaAboveCell10002331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10002331 + e24KC2ThetaAboveLeaf100023310 e24KC2ThetaAboveLeaf100023311 e24KC2ThetaAboveLeaf100023312 + e24KC2ThetaAboveLeaf100023313 + +theorem e24KC2ThetaAboveNode10003200 : + adaptiveCoverCheck 11 thetaAboveCell10003200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003200 + e24KC2ThetaAboveLeaf100032000 e24KC2ThetaAboveLeaf100032001 e24KC2ThetaAboveLeaf100032002 + e24KC2ThetaAboveLeaf100032003 + +theorem e24KC2ThetaAboveNode10003201 : + adaptiveCoverCheck 11 thetaAboveCell10003201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003201 + e24KC2ThetaAboveLeaf100032010 e24KC2ThetaAboveLeaf100032011 e24KC2ThetaAboveLeaf100032012 + e24KC2ThetaAboveLeaf100032013 + +theorem e24KC2ThetaAboveNode10003202 : + adaptiveCoverCheck 11 thetaAboveCell10003202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003202 + e24KC2ThetaAboveNode100032020 e24KC2ThetaAboveNode100032021 e24KC2ThetaAboveNode100032022 + e24KC2ThetaAboveNode100032023 + +theorem e24KC2ThetaAboveNode10003203 : + adaptiveCoverCheck 11 thetaAboveCell10003203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003203 + e24KC2ThetaAboveNode100032030 e24KC2ThetaAboveNode100032031 e24KC2ThetaAboveNode100032032 + e24KC2ThetaAboveNode100032033 + +theorem e24KC2ThetaAboveNode10003210 : + adaptiveCoverCheck 11 thetaAboveCell10003210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003210 + e24KC2ThetaAboveLeaf100032100 e24KC2ThetaAboveLeaf100032101 e24KC2ThetaAboveLeaf100032102 + e24KC2ThetaAboveLeaf100032103 + +theorem e24KC2ThetaAboveNode10003211 : + adaptiveCoverCheck 11 thetaAboveCell10003211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003211 + e24KC2ThetaAboveLeaf100032110 e24KC2ThetaAboveLeaf100032111 e24KC2ThetaAboveLeaf100032112 + e24KC2ThetaAboveLeaf100032113 + +theorem e24KC2ThetaAboveNode10003212 : + adaptiveCoverCheck 11 thetaAboveCell10003212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003212 + e24KC2ThetaAboveNode100032120 e24KC2ThetaAboveNode100032121 e24KC2ThetaAboveNode100032122 + e24KC2ThetaAboveNode100032123 + +theorem e24KC2ThetaAboveNode10003213 : + adaptiveCoverCheck 11 thetaAboveCell10003213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003213 + e24KC2ThetaAboveNode100032130 e24KC2ThetaAboveNode100032131 e24KC2ThetaAboveNode100032132 + e24KC2ThetaAboveNode100032133 + +theorem e24KC2ThetaAboveNode10003220 : + adaptiveCoverCheck 11 thetaAboveCell10003220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003220 + e24KC2ThetaAboveLeaf100032200 e24KC2ThetaAboveLeaf100032201 e24KC2ThetaAboveLeaf100032202 + e24KC2ThetaAboveLeaf100032203 + +theorem e24KC2ThetaAboveNode10003221 : + adaptiveCoverCheck 11 thetaAboveCell10003221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003221 + e24KC2ThetaAboveLeaf100032210 e24KC2ThetaAboveLeaf100032211 e24KC2ThetaAboveLeaf100032212 + e24KC2ThetaAboveLeaf100032213 + +theorem e24KC2ThetaAboveNode10003230 : + adaptiveCoverCheck 11 thetaAboveCell10003230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003230 + e24KC2ThetaAboveLeaf100032300 e24KC2ThetaAboveLeaf100032301 e24KC2ThetaAboveLeaf100032302 + e24KC2ThetaAboveLeaf100032303 + +theorem e24KC2ThetaAboveNode10003231 : + adaptiveCoverCheck 11 thetaAboveCell10003231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003231 + e24KC2ThetaAboveLeaf100032310 e24KC2ThetaAboveLeaf100032311 e24KC2ThetaAboveLeaf100032312 + e24KC2ThetaAboveLeaf100032313 + +theorem e24KC2ThetaAboveNode10003300 : + adaptiveCoverCheck 11 thetaAboveCell10003300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003300 + e24KC2ThetaAboveLeaf100033000 e24KC2ThetaAboveLeaf100033001 e24KC2ThetaAboveLeaf100033002 + e24KC2ThetaAboveLeaf100033003 + +theorem e24KC2ThetaAboveNode10003301 : + adaptiveCoverCheck 11 thetaAboveCell10003301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003301 + e24KC2ThetaAboveLeaf100033010 e24KC2ThetaAboveLeaf100033011 e24KC2ThetaAboveLeaf100033012 + e24KC2ThetaAboveLeaf100033013 + +theorem e24KC2ThetaAboveNode10003302 : + adaptiveCoverCheck 11 thetaAboveCell10003302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003302 + e24KC2ThetaAboveNode100033020 e24KC2ThetaAboveNode100033021 e24KC2ThetaAboveNode100033022 + e24KC2ThetaAboveNode100033023 + +theorem e24KC2ThetaAboveNode10003303 : + adaptiveCoverCheck 11 thetaAboveCell10003303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003303 + e24KC2ThetaAboveNode100033030 e24KC2ThetaAboveNode100033031 e24KC2ThetaAboveNode100033032 + e24KC2ThetaAboveNode100033033 + +theorem e24KC2ThetaAboveNode10003310 : + adaptiveCoverCheck 11 thetaAboveCell10003310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003310 + e24KC2ThetaAboveLeaf100033100 e24KC2ThetaAboveLeaf100033101 e24KC2ThetaAboveLeaf100033102 + e24KC2ThetaAboveLeaf100033103 + +theorem e24KC2ThetaAboveNode10003311 : + adaptiveCoverCheck 11 thetaAboveCell10003311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003311 + e24KC2ThetaAboveLeaf100033110 e24KC2ThetaAboveLeaf100033111 e24KC2ThetaAboveLeaf100033112 + e24KC2ThetaAboveLeaf100033113 + +theorem e24KC2ThetaAboveNode10003312 : + adaptiveCoverCheck 11 thetaAboveCell10003312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003312 + e24KC2ThetaAboveNode100033120 e24KC2ThetaAboveNode100033121 e24KC2ThetaAboveNode100033122 + e24KC2ThetaAboveNode100033123 + +theorem e24KC2ThetaAboveNode10003313 : + adaptiveCoverCheck 11 thetaAboveCell10003313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003313 + e24KC2ThetaAboveNode100033130 e24KC2ThetaAboveNode100033131 e24KC2ThetaAboveNode100033132 + e24KC2ThetaAboveNode100033133 + +theorem e24KC2ThetaAboveNode10003320 : + adaptiveCoverCheck 11 thetaAboveCell10003320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003320 + e24KC2ThetaAboveLeaf100033200 e24KC2ThetaAboveLeaf100033201 e24KC2ThetaAboveLeaf100033202 + e24KC2ThetaAboveLeaf100033203 + +theorem e24KC2ThetaAboveNode10003321 : + adaptiveCoverCheck 11 thetaAboveCell10003321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003321 + e24KC2ThetaAboveLeaf100033210 e24KC2ThetaAboveLeaf100033211 e24KC2ThetaAboveLeaf100033212 + e24KC2ThetaAboveLeaf100033213 + +theorem e24KC2ThetaAboveNode10003330 : + adaptiveCoverCheck 11 thetaAboveCell10003330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003330 + e24KC2ThetaAboveLeaf100033300 e24KC2ThetaAboveLeaf100033301 e24KC2ThetaAboveLeaf100033302 + e24KC2ThetaAboveLeaf100033303 + +theorem e24KC2ThetaAboveNode10003331 : + adaptiveCoverCheck 11 thetaAboveCell10003331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10003331 + e24KC2ThetaAboveLeaf100033310 e24KC2ThetaAboveNode100033311 e24KC2ThetaAboveLeaf100033312 + e24KC2ThetaAboveLeaf100033313 + +theorem e24KC2ThetaAboveNode10012200 : + adaptiveCoverCheck 11 thetaAboveCell10012200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012200 + e24KC2ThetaAboveLeaf100122000 e24KC2ThetaAboveLeaf100122001 e24KC2ThetaAboveLeaf100122002 + e24KC2ThetaAboveLeaf100122003 + +theorem e24KC2ThetaAboveNode10012201 : + adaptiveCoverCheck 11 thetaAboveCell10012201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012201 + e24KC2ThetaAboveLeaf100122010 e24KC2ThetaAboveLeaf100122011 e24KC2ThetaAboveLeaf100122012 + e24KC2ThetaAboveLeaf100122013 + +theorem e24KC2ThetaAboveNode10012202 : + adaptiveCoverCheck 11 thetaAboveCell10012202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012202 + e24KC2ThetaAboveNode100122020 e24KC2ThetaAboveNode100122021 e24KC2ThetaAboveNode100122022 + e24KC2ThetaAboveNode100122023 + +theorem e24KC2ThetaAboveNode10012203 : + adaptiveCoverCheck 11 thetaAboveCell10012203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012203 + e24KC2ThetaAboveNode100122030 e24KC2ThetaAboveNode100122031 e24KC2ThetaAboveNode100122032 + e24KC2ThetaAboveNode100122033 + +theorem e24KC2ThetaAboveNode10012210 : + adaptiveCoverCheck 11 thetaAboveCell10012210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012210 + e24KC2ThetaAboveLeaf100122100 e24KC2ThetaAboveLeaf100122101 e24KC2ThetaAboveLeaf100122102 + e24KC2ThetaAboveLeaf100122103 + +theorem e24KC2ThetaAboveNode10012211 : + adaptiveCoverCheck 11 thetaAboveCell10012211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012211 + e24KC2ThetaAboveLeaf100122110 e24KC2ThetaAboveLeaf100122111 e24KC2ThetaAboveLeaf100122112 + e24KC2ThetaAboveLeaf100122113 + +theorem e24KC2ThetaAboveNode10012212 : + adaptiveCoverCheck 11 thetaAboveCell10012212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012212 + e24KC2ThetaAboveNode100122120 e24KC2ThetaAboveNode100122121 e24KC2ThetaAboveNode100122122 + e24KC2ThetaAboveNode100122123 + +theorem e24KC2ThetaAboveNode10012213 : + adaptiveCoverCheck 11 thetaAboveCell10012213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012213 + e24KC2ThetaAboveNode100122130 e24KC2ThetaAboveNode100122131 e24KC2ThetaAboveNode100122132 + e24KC2ThetaAboveNode100122133 + +theorem e24KC2ThetaAboveNode10012220 : + adaptiveCoverCheck 11 thetaAboveCell10012220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012220 + e24KC2ThetaAboveNode100122200 e24KC2ThetaAboveNode100122201 e24KC2ThetaAboveLeaf100122202 + e24KC2ThetaAboveLeaf100122203 + +theorem e24KC2ThetaAboveNode10012221 : + adaptiveCoverCheck 11 thetaAboveCell10012221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012221 + e24KC2ThetaAboveNode100122210 e24KC2ThetaAboveNode100122211 e24KC2ThetaAboveLeaf100122212 + e24KC2ThetaAboveLeaf100122213 + +theorem e24KC2ThetaAboveNode10012230 : + adaptiveCoverCheck 11 thetaAboveCell10012230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012230 + e24KC2ThetaAboveNode100122300 e24KC2ThetaAboveNode100122301 e24KC2ThetaAboveLeaf100122302 + e24KC2ThetaAboveLeaf100122303 + +theorem e24KC2ThetaAboveNode10012231 : + adaptiveCoverCheck 11 thetaAboveCell10012231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012231 + e24KC2ThetaAboveNode100122310 e24KC2ThetaAboveNode100122311 e24KC2ThetaAboveLeaf100122312 + e24KC2ThetaAboveLeaf100122313 + +theorem e24KC2ThetaAboveNode10012300 : + adaptiveCoverCheck 11 thetaAboveCell10012300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012300 + e24KC2ThetaAboveLeaf100123000 e24KC2ThetaAboveLeaf100123001 e24KC2ThetaAboveLeaf100123002 + e24KC2ThetaAboveLeaf100123003 + +theorem e24KC2ThetaAboveNode10012301 : + adaptiveCoverCheck 11 thetaAboveCell10012301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012301 + e24KC2ThetaAboveLeaf100123010 e24KC2ThetaAboveLeaf100123011 e24KC2ThetaAboveLeaf100123012 + e24KC2ThetaAboveLeaf100123013 + +theorem e24KC2ThetaAboveNode10012302 : + adaptiveCoverCheck 11 thetaAboveCell10012302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012302 + e24KC2ThetaAboveNode100123020 e24KC2ThetaAboveNode100123021 e24KC2ThetaAboveNode100123022 + e24KC2ThetaAboveNode100123023 + +theorem e24KC2ThetaAboveNode10012303 : + adaptiveCoverCheck 11 thetaAboveCell10012303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012303 + e24KC2ThetaAboveNode100123030 e24KC2ThetaAboveNode100123031 e24KC2ThetaAboveNode100123032 + e24KC2ThetaAboveNode100123033 + +theorem e24KC2ThetaAboveNode10012310 : + adaptiveCoverCheck 11 thetaAboveCell10012310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012310 + e24KC2ThetaAboveLeaf100123100 e24KC2ThetaAboveLeaf100123101 e24KC2ThetaAboveLeaf100123102 + e24KC2ThetaAboveLeaf100123103 + +theorem e24KC2ThetaAboveNode10012311 : + adaptiveCoverCheck 11 thetaAboveCell10012311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012311 + e24KC2ThetaAboveLeaf100123110 e24KC2ThetaAboveLeaf100123111 e24KC2ThetaAboveLeaf100123112 + e24KC2ThetaAboveLeaf100123113 + +theorem e24KC2ThetaAboveNode10012312 : + adaptiveCoverCheck 11 thetaAboveCell10012312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012312 + e24KC2ThetaAboveNode100123120 e24KC2ThetaAboveNode100123121 e24KC2ThetaAboveNode100123122 + e24KC2ThetaAboveNode100123123 + +theorem e24KC2ThetaAboveNode10012313 : + adaptiveCoverCheck 11 thetaAboveCell10012313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012313 + e24KC2ThetaAboveNode100123130 e24KC2ThetaAboveNode100123131 e24KC2ThetaAboveNode100123132 + e24KC2ThetaAboveNode100123133 + +theorem e24KC2ThetaAboveNode10012320 : + adaptiveCoverCheck 11 thetaAboveCell10012320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012320 + e24KC2ThetaAboveNode100123200 e24KC2ThetaAboveNode100123201 e24KC2ThetaAboveLeaf100123202 + e24KC2ThetaAboveLeaf100123203 + +theorem e24KC2ThetaAboveNode10012321 : + adaptiveCoverCheck 11 thetaAboveCell10012321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012321 + e24KC2ThetaAboveNode100123210 e24KC2ThetaAboveNode100123211 e24KC2ThetaAboveLeaf100123212 + e24KC2ThetaAboveLeaf100123213 + +theorem e24KC2ThetaAboveNode10012330 : + adaptiveCoverCheck 11 thetaAboveCell10012330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012330 + e24KC2ThetaAboveNode100123300 e24KC2ThetaAboveNode100123301 e24KC2ThetaAboveLeaf100123302 + e24KC2ThetaAboveLeaf100123303 + +theorem e24KC2ThetaAboveNode10012331 : + adaptiveCoverCheck 11 thetaAboveCell10012331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10012331 + e24KC2ThetaAboveNode100123310 e24KC2ThetaAboveNode100123311 e24KC2ThetaAboveLeaf100123312 + e24KC2ThetaAboveLeaf100123313 + +theorem e24KC2ThetaAboveNode10013200 : + adaptiveCoverCheck 11 thetaAboveCell10013200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013200 + e24KC2ThetaAboveLeaf100132000 e24KC2ThetaAboveLeaf100132001 e24KC2ThetaAboveLeaf100132002 + e24KC2ThetaAboveLeaf100132003 + +theorem e24KC2ThetaAboveNode10013201 : + adaptiveCoverCheck 11 thetaAboveCell10013201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013201 + e24KC2ThetaAboveLeaf100132010 e24KC2ThetaAboveLeaf100132011 e24KC2ThetaAboveLeaf100132012 + e24KC2ThetaAboveLeaf100132013 + +theorem e24KC2ThetaAboveNode10013202 : + adaptiveCoverCheck 11 thetaAboveCell10013202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013202 + e24KC2ThetaAboveNode100132020 e24KC2ThetaAboveNode100132021 e24KC2ThetaAboveNode100132022 + e24KC2ThetaAboveNode100132023 + +theorem e24KC2ThetaAboveNode10013203 : + adaptiveCoverCheck 11 thetaAboveCell10013203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013203 + e24KC2ThetaAboveNode100132030 e24KC2ThetaAboveNode100132031 e24KC2ThetaAboveNode100132032 + e24KC2ThetaAboveNode100132033 + +theorem e24KC2ThetaAboveNode10013210 : + adaptiveCoverCheck 11 thetaAboveCell10013210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013210 + e24KC2ThetaAboveLeaf100132100 e24KC2ThetaAboveLeaf100132101 e24KC2ThetaAboveLeaf100132102 + e24KC2ThetaAboveLeaf100132103 + +theorem e24KC2ThetaAboveNode10013211 : + adaptiveCoverCheck 11 thetaAboveCell10013211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013211 + e24KC2ThetaAboveLeaf100132110 e24KC2ThetaAboveLeaf100132111 e24KC2ThetaAboveLeaf100132112 + e24KC2ThetaAboveLeaf100132113 + +theorem e24KC2ThetaAboveNode10013212 : + adaptiveCoverCheck 11 thetaAboveCell10013212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013212 + e24KC2ThetaAboveNode100132120 e24KC2ThetaAboveNode100132121 e24KC2ThetaAboveNode100132122 + e24KC2ThetaAboveNode100132123 + +theorem e24KC2ThetaAboveNode10013213 : + adaptiveCoverCheck 11 thetaAboveCell10013213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013213 + e24KC2ThetaAboveNode100132130 e24KC2ThetaAboveNode100132131 e24KC2ThetaAboveNode100132132 + e24KC2ThetaAboveNode100132133 + +theorem e24KC2ThetaAboveNode10013220 : + adaptiveCoverCheck 11 thetaAboveCell10013220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013220 + e24KC2ThetaAboveNode100132200 e24KC2ThetaAboveNode100132201 e24KC2ThetaAboveLeaf100132202 + e24KC2ThetaAboveLeaf100132203 + +theorem e24KC2ThetaAboveNode10013221 : + adaptiveCoverCheck 11 thetaAboveCell10013221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013221 + e24KC2ThetaAboveNode100132210 e24KC2ThetaAboveNode100132211 e24KC2ThetaAboveLeaf100132212 + e24KC2ThetaAboveLeaf100132213 + +theorem e24KC2ThetaAboveNode10013230 : + adaptiveCoverCheck 11 thetaAboveCell10013230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013230 + e24KC2ThetaAboveNode100132300 e24KC2ThetaAboveNode100132301 e24KC2ThetaAboveLeaf100132302 + e24KC2ThetaAboveLeaf100132303 + +theorem e24KC2ThetaAboveNode10013231 : + adaptiveCoverCheck 11 thetaAboveCell10013231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013231 + e24KC2ThetaAboveLeaf100132310 e24KC2ThetaAboveLeaf100132311 e24KC2ThetaAboveLeaf100132312 + e24KC2ThetaAboveLeaf100132313 + +theorem e24KC2ThetaAboveNode10013300 : + adaptiveCoverCheck 11 thetaAboveCell10013300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013300 + e24KC2ThetaAboveLeaf100133000 e24KC2ThetaAboveLeaf100133001 e24KC2ThetaAboveLeaf100133002 + e24KC2ThetaAboveLeaf100133003 + +theorem e24KC2ThetaAboveNode10013301 : + adaptiveCoverCheck 11 thetaAboveCell10013301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013301 + e24KC2ThetaAboveLeaf100133010 e24KC2ThetaAboveLeaf100133011 e24KC2ThetaAboveLeaf100133012 + e24KC2ThetaAboveLeaf100133013 + +theorem e24KC2ThetaAboveNode10013302 : + adaptiveCoverCheck 11 thetaAboveCell10013302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013302 + e24KC2ThetaAboveNode100133020 e24KC2ThetaAboveNode100133021 e24KC2ThetaAboveNode100133022 + e24KC2ThetaAboveNode100133023 + +theorem e24KC2ThetaAboveNode10013303 : + adaptiveCoverCheck 11 thetaAboveCell10013303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013303 + e24KC2ThetaAboveNode100133030 e24KC2ThetaAboveNode100133031 e24KC2ThetaAboveNode100133032 + e24KC2ThetaAboveNode100133033 + +theorem e24KC2ThetaAboveNode10013310 : + adaptiveCoverCheck 11 thetaAboveCell10013310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013310 + e24KC2ThetaAboveLeaf100133100 e24KC2ThetaAboveLeaf100133101 e24KC2ThetaAboveLeaf100133102 + e24KC2ThetaAboveLeaf100133103 + +theorem e24KC2ThetaAboveNode10013311 : + adaptiveCoverCheck 11 thetaAboveCell10013311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013311 + e24KC2ThetaAboveLeaf100133110 e24KC2ThetaAboveLeaf100133111 e24KC2ThetaAboveLeaf100133112 + e24KC2ThetaAboveLeaf100133113 + +theorem e24KC2ThetaAboveNode10013312 : + adaptiveCoverCheck 11 thetaAboveCell10013312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013312 + e24KC2ThetaAboveNode100133120 e24KC2ThetaAboveNode100133121 e24KC2ThetaAboveNode100133122 + e24KC2ThetaAboveNode100133123 + +theorem e24KC2ThetaAboveNode10013313 : + adaptiveCoverCheck 11 thetaAboveCell10013313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013313 + e24KC2ThetaAboveNode100133130 e24KC2ThetaAboveNode100133131 e24KC2ThetaAboveNode100133132 + e24KC2ThetaAboveNode100133133 + +theorem e24KC2ThetaAboveNode10013320 : + adaptiveCoverCheck 11 thetaAboveCell10013320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013320 + e24KC2ThetaAboveLeaf100133200 e24KC2ThetaAboveLeaf100133201 e24KC2ThetaAboveLeaf100133202 + e24KC2ThetaAboveLeaf100133203 + +theorem e24KC2ThetaAboveNode10013321 : + adaptiveCoverCheck 11 thetaAboveCell10013321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013321 + e24KC2ThetaAboveLeaf100133210 e24KC2ThetaAboveLeaf100133211 e24KC2ThetaAboveLeaf100133212 + e24KC2ThetaAboveLeaf100133213 + +theorem e24KC2ThetaAboveNode10013330 : + adaptiveCoverCheck 11 thetaAboveCell10013330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013330 + e24KC2ThetaAboveLeaf100133300 e24KC2ThetaAboveLeaf100133301 e24KC2ThetaAboveLeaf100133302 + e24KC2ThetaAboveLeaf100133303 + +theorem e24KC2ThetaAboveNode10013331 : + adaptiveCoverCheck 11 thetaAboveCell10013331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10013331 + e24KC2ThetaAboveLeaf100133310 e24KC2ThetaAboveLeaf100133311 e24KC2ThetaAboveLeaf100133312 + e24KC2ThetaAboveLeaf100133313 + +theorem e24KC2ThetaAboveNode10102200 : + adaptiveCoverCheck 11 thetaAboveCell10102200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102200 + e24KC2ThetaAboveLeaf101022000 e24KC2ThetaAboveLeaf101022001 e24KC2ThetaAboveLeaf101022002 + e24KC2ThetaAboveLeaf101022003 + +theorem e24KC2ThetaAboveNode10102201 : + adaptiveCoverCheck 11 thetaAboveCell10102201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102201 + e24KC2ThetaAboveLeaf101022010 e24KC2ThetaAboveLeaf101022011 e24KC2ThetaAboveLeaf101022012 + e24KC2ThetaAboveLeaf101022013 + +theorem e24KC2ThetaAboveNode10102202 : + adaptiveCoverCheck 11 thetaAboveCell10102202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102202 + e24KC2ThetaAboveNode101022020 e24KC2ThetaAboveNode101022021 e24KC2ThetaAboveNode101022022 + e24KC2ThetaAboveNode101022023 + +theorem e24KC2ThetaAboveNode10102203 : + adaptiveCoverCheck 11 thetaAboveCell10102203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102203 + e24KC2ThetaAboveNode101022030 e24KC2ThetaAboveNode101022031 e24KC2ThetaAboveNode101022032 + e24KC2ThetaAboveNode101022033 + +theorem e24KC2ThetaAboveNode10102210 : + adaptiveCoverCheck 11 thetaAboveCell10102210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102210 + e24KC2ThetaAboveLeaf101022100 e24KC2ThetaAboveLeaf101022101 e24KC2ThetaAboveLeaf101022102 + e24KC2ThetaAboveLeaf101022103 + +theorem e24KC2ThetaAboveNode10102211 : + adaptiveCoverCheck 11 thetaAboveCell10102211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102211 + e24KC2ThetaAboveLeaf101022110 e24KC2ThetaAboveLeaf101022111 e24KC2ThetaAboveLeaf101022112 + e24KC2ThetaAboveLeaf101022113 + +theorem e24KC2ThetaAboveNode10102212 : + adaptiveCoverCheck 11 thetaAboveCell10102212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102212 + e24KC2ThetaAboveNode101022120 e24KC2ThetaAboveNode101022121 e24KC2ThetaAboveNode101022122 + e24KC2ThetaAboveNode101022123 + +theorem e24KC2ThetaAboveNode10102213 : + adaptiveCoverCheck 11 thetaAboveCell10102213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102213 + e24KC2ThetaAboveNode101022130 e24KC2ThetaAboveNode101022131 e24KC2ThetaAboveNode101022132 + e24KC2ThetaAboveLeaf101022133 + +theorem e24KC2ThetaAboveNode10102220 : + adaptiveCoverCheck 11 thetaAboveCell10102220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102220 + e24KC2ThetaAboveLeaf101022200 e24KC2ThetaAboveLeaf101022201 e24KC2ThetaAboveLeaf101022202 + e24KC2ThetaAboveLeaf101022203 + +theorem e24KC2ThetaAboveNode10102221 : + adaptiveCoverCheck 11 thetaAboveCell10102221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102221 + e24KC2ThetaAboveLeaf101022210 e24KC2ThetaAboveLeaf101022211 e24KC2ThetaAboveLeaf101022212 + e24KC2ThetaAboveLeaf101022213 + +theorem e24KC2ThetaAboveNode10102230 : + adaptiveCoverCheck 11 thetaAboveCell10102230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102230 + e24KC2ThetaAboveLeaf101022300 e24KC2ThetaAboveLeaf101022301 e24KC2ThetaAboveLeaf101022302 + e24KC2ThetaAboveLeaf101022303 + +theorem e24KC2ThetaAboveNode10102231 : + adaptiveCoverCheck 11 thetaAboveCell10102231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102231 + e24KC2ThetaAboveLeaf101022310 e24KC2ThetaAboveLeaf101022311 e24KC2ThetaAboveLeaf101022312 + e24KC2ThetaAboveLeaf101022313 + +theorem e24KC2ThetaAboveNode10102300 : + adaptiveCoverCheck 11 thetaAboveCell10102300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102300 + e24KC2ThetaAboveLeaf101023000 e24KC2ThetaAboveLeaf101023001 e24KC2ThetaAboveLeaf101023002 + e24KC2ThetaAboveLeaf101023003 + +theorem e24KC2ThetaAboveNode10102301 : + adaptiveCoverCheck 11 thetaAboveCell10102301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102301 + e24KC2ThetaAboveLeaf101023010 e24KC2ThetaAboveLeaf101023011 e24KC2ThetaAboveLeaf101023012 + e24KC2ThetaAboveLeaf101023013 + +theorem e24KC2ThetaAboveNode10102302 : + adaptiveCoverCheck 11 thetaAboveCell10102302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102302 + e24KC2ThetaAboveNode101023020 e24KC2ThetaAboveNode101023021 e24KC2ThetaAboveLeaf101023022 + e24KC2ThetaAboveLeaf101023023 + +theorem e24KC2ThetaAboveNode10102303 : + adaptiveCoverCheck 11 thetaAboveCell10102303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102303 + e24KC2ThetaAboveNode101023030 e24KC2ThetaAboveNode101023031 e24KC2ThetaAboveLeaf101023032 + e24KC2ThetaAboveLeaf101023033 + +theorem e24KC2ThetaAboveNode10102310 : + adaptiveCoverCheck 11 thetaAboveCell10102310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102310 + e24KC2ThetaAboveLeaf101023100 e24KC2ThetaAboveLeaf101023101 e24KC2ThetaAboveLeaf101023102 + e24KC2ThetaAboveLeaf101023103 + +theorem e24KC2ThetaAboveNode10102311 : + adaptiveCoverCheck 11 thetaAboveCell10102311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102311 + e24KC2ThetaAboveLeaf101023110 e24KC2ThetaAboveLeaf101023111 e24KC2ThetaAboveLeaf101023112 + e24KC2ThetaAboveLeaf101023113 + +theorem e24KC2ThetaAboveNode10102312 : + adaptiveCoverCheck 11 thetaAboveCell10102312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102312 + e24KC2ThetaAboveNode101023120 e24KC2ThetaAboveNode101023121 e24KC2ThetaAboveLeaf101023122 + e24KC2ThetaAboveLeaf101023123 + +theorem e24KC2ThetaAboveNode10102313 : + adaptiveCoverCheck 11 thetaAboveCell10102313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102313 + e24KC2ThetaAboveNode101023130 e24KC2ThetaAboveNode101023131 e24KC2ThetaAboveLeaf101023132 + e24KC2ThetaAboveLeaf101023133 + +theorem e24KC2ThetaAboveNode10102320 : + adaptiveCoverCheck 11 thetaAboveCell10102320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102320 + e24KC2ThetaAboveLeaf101023200 e24KC2ThetaAboveLeaf101023201 e24KC2ThetaAboveLeaf101023202 + e24KC2ThetaAboveLeaf101023203 + +theorem e24KC2ThetaAboveNode10102321 : + adaptiveCoverCheck 11 thetaAboveCell10102321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102321 + e24KC2ThetaAboveLeaf101023210 e24KC2ThetaAboveLeaf101023211 e24KC2ThetaAboveLeaf101023212 + e24KC2ThetaAboveLeaf101023213 + +theorem e24KC2ThetaAboveNode10102330 : + adaptiveCoverCheck 11 thetaAboveCell10102330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102330 + e24KC2ThetaAboveLeaf101023300 e24KC2ThetaAboveLeaf101023301 e24KC2ThetaAboveLeaf101023302 + e24KC2ThetaAboveLeaf101023303 + +theorem e24KC2ThetaAboveNode10102331 : + adaptiveCoverCheck 11 thetaAboveCell10102331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10102331 + e24KC2ThetaAboveLeaf101023310 e24KC2ThetaAboveLeaf101023311 e24KC2ThetaAboveLeaf101023312 + e24KC2ThetaAboveLeaf101023313 + +theorem e24KC2ThetaAboveNode10103200 : + adaptiveCoverCheck 11 thetaAboveCell10103200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103200 + e24KC2ThetaAboveLeaf101032000 e24KC2ThetaAboveLeaf101032001 e24KC2ThetaAboveLeaf101032002 + e24KC2ThetaAboveLeaf101032003 + +theorem e24KC2ThetaAboveNode10103201 : + adaptiveCoverCheck 11 thetaAboveCell10103201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103201 + e24KC2ThetaAboveLeaf101032010 e24KC2ThetaAboveLeaf101032011 e24KC2ThetaAboveLeaf101032012 + e24KC2ThetaAboveLeaf101032013 + +theorem e24KC2ThetaAboveNode10103202 : + adaptiveCoverCheck 11 thetaAboveCell10103202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103202 + e24KC2ThetaAboveNode101032020 e24KC2ThetaAboveNode101032021 e24KC2ThetaAboveLeaf101032022 + e24KC2ThetaAboveLeaf101032023 + +theorem e24KC2ThetaAboveNode10103203 : + adaptiveCoverCheck 11 thetaAboveCell10103203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103203 + e24KC2ThetaAboveNode101032030 e24KC2ThetaAboveNode101032031 e24KC2ThetaAboveLeaf101032032 + e24KC2ThetaAboveLeaf101032033 + +theorem e24KC2ThetaAboveNode10103210 : + adaptiveCoverCheck 11 thetaAboveCell10103210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103210 + e24KC2ThetaAboveLeaf101032100 e24KC2ThetaAboveLeaf101032101 e24KC2ThetaAboveLeaf101032102 + e24KC2ThetaAboveLeaf101032103 + +theorem e24KC2ThetaAboveNode10103211 : + adaptiveCoverCheck 11 thetaAboveCell10103211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103211 + e24KC2ThetaAboveLeaf101032110 e24KC2ThetaAboveLeaf101032111 e24KC2ThetaAboveLeaf101032112 + e24KC2ThetaAboveLeaf101032113 + +theorem e24KC2ThetaAboveNode10103212 : + adaptiveCoverCheck 11 thetaAboveCell10103212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103212 + e24KC2ThetaAboveNode101032120 e24KC2ThetaAboveNode101032121 e24KC2ThetaAboveLeaf101032122 + e24KC2ThetaAboveLeaf101032123 + +theorem e24KC2ThetaAboveNode10103213 : + adaptiveCoverCheck 11 thetaAboveCell10103213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103213 + e24KC2ThetaAboveNode101032130 e24KC2ThetaAboveNode101032131 e24KC2ThetaAboveLeaf101032132 + e24KC2ThetaAboveLeaf101032133 + +theorem e24KC2ThetaAboveNode10103220 : + adaptiveCoverCheck 11 thetaAboveCell10103220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103220 + e24KC2ThetaAboveLeaf101032200 e24KC2ThetaAboveLeaf101032201 e24KC2ThetaAboveLeaf101032202 + e24KC2ThetaAboveLeaf101032203 + +theorem e24KC2ThetaAboveNode10103221 : + adaptiveCoverCheck 11 thetaAboveCell10103221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103221 + e24KC2ThetaAboveLeaf101032210 e24KC2ThetaAboveLeaf101032211 e24KC2ThetaAboveLeaf101032212 + e24KC2ThetaAboveLeaf101032213 + +theorem e24KC2ThetaAboveNode10103230 : + adaptiveCoverCheck 11 thetaAboveCell10103230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103230 + e24KC2ThetaAboveLeaf101032300 e24KC2ThetaAboveLeaf101032301 e24KC2ThetaAboveLeaf101032302 + e24KC2ThetaAboveLeaf101032303 + +theorem e24KC2ThetaAboveNode10103231 : + adaptiveCoverCheck 11 thetaAboveCell10103231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103231 + e24KC2ThetaAboveLeaf101032310 e24KC2ThetaAboveLeaf101032311 e24KC2ThetaAboveLeaf101032312 + e24KC2ThetaAboveLeaf101032313 + +theorem e24KC2ThetaAboveNode10103300 : + adaptiveCoverCheck 11 thetaAboveCell10103300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103300 + e24KC2ThetaAboveLeaf101033000 e24KC2ThetaAboveLeaf101033001 e24KC2ThetaAboveLeaf101033002 + e24KC2ThetaAboveLeaf101033003 + +theorem e24KC2ThetaAboveNode10103301 : + adaptiveCoverCheck 11 thetaAboveCell10103301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103301 + e24KC2ThetaAboveLeaf101033010 e24KC2ThetaAboveLeaf101033011 e24KC2ThetaAboveLeaf101033012 + e24KC2ThetaAboveLeaf101033013 + +theorem e24KC2ThetaAboveNode10103302 : + adaptiveCoverCheck 11 thetaAboveCell10103302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103302 + e24KC2ThetaAboveNode101033020 e24KC2ThetaAboveLeaf101033021 e24KC2ThetaAboveLeaf101033022 + e24KC2ThetaAboveLeaf101033023 + +theorem e24KC2ThetaAboveNode10103303 : + adaptiveCoverCheck 11 thetaAboveCell10103303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103303 + e24KC2ThetaAboveLeaf101033030 e24KC2ThetaAboveLeaf101033031 e24KC2ThetaAboveLeaf101033032 + e24KC2ThetaAboveLeaf101033033 + +theorem e24KC2ThetaAboveNode10103310 : + adaptiveCoverCheck 11 thetaAboveCell10103310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103310 + e24KC2ThetaAboveLeaf101033100 e24KC2ThetaAboveLeaf101033101 e24KC2ThetaAboveLeaf101033102 + e24KC2ThetaAboveLeaf101033103 + +theorem e24KC2ThetaAboveNode10103311 : + adaptiveCoverCheck 11 thetaAboveCell10103311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103311 + e24KC2ThetaAboveLeaf101033110 e24KC2ThetaAboveLeaf101033111 e24KC2ThetaAboveLeaf101033112 + e24KC2ThetaAboveLeaf101033113 + +theorem e24KC2ThetaAboveNode10103312 : + adaptiveCoverCheck 11 thetaAboveCell10103312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103312 + e24KC2ThetaAboveLeaf101033120 e24KC2ThetaAboveLeaf101033121 e24KC2ThetaAboveLeaf101033122 + e24KC2ThetaAboveLeaf101033123 + +theorem e24KC2ThetaAboveNode10103313 : + adaptiveCoverCheck 11 thetaAboveCell10103313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103313 + e24KC2ThetaAboveLeaf101033130 e24KC2ThetaAboveLeaf101033131 e24KC2ThetaAboveLeaf101033132 + e24KC2ThetaAboveLeaf101033133 + +theorem e24KC2ThetaAboveNode10103320 : + adaptiveCoverCheck 11 thetaAboveCell10103320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103320 + e24KC2ThetaAboveLeaf101033200 e24KC2ThetaAboveLeaf101033201 e24KC2ThetaAboveLeaf101033202 + e24KC2ThetaAboveLeaf101033203 + +theorem e24KC2ThetaAboveNode10103321 : + adaptiveCoverCheck 11 thetaAboveCell10103321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103321 + e24KC2ThetaAboveLeaf101033210 e24KC2ThetaAboveLeaf101033211 e24KC2ThetaAboveLeaf101033212 + e24KC2ThetaAboveLeaf101033213 + +theorem e24KC2ThetaAboveNode10103330 : + adaptiveCoverCheck 11 thetaAboveCell10103330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103330 + e24KC2ThetaAboveLeaf101033300 e24KC2ThetaAboveLeaf101033301 e24KC2ThetaAboveLeaf101033302 + e24KC2ThetaAboveLeaf101033303 + +theorem e24KC2ThetaAboveNode10103331 : + adaptiveCoverCheck 11 thetaAboveCell10103331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10103331 + e24KC2ThetaAboveLeaf101033310 e24KC2ThetaAboveLeaf101033311 e24KC2ThetaAboveLeaf101033312 + e24KC2ThetaAboveLeaf101033313 + +theorem e24KC2ThetaAboveNode10112200 : + adaptiveCoverCheck 11 thetaAboveCell10112200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112200 + e24KC2ThetaAboveLeaf101122000 e24KC2ThetaAboveLeaf101122001 e24KC2ThetaAboveLeaf101122002 + e24KC2ThetaAboveLeaf101122003 + +theorem e24KC2ThetaAboveNode10112201 : + adaptiveCoverCheck 11 thetaAboveCell10112201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112201 + e24KC2ThetaAboveLeaf101122010 e24KC2ThetaAboveLeaf101122011 e24KC2ThetaAboveLeaf101122012 + e24KC2ThetaAboveLeaf101122013 + +theorem e24KC2ThetaAboveNode10112202 : + adaptiveCoverCheck 11 thetaAboveCell10112202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112202 + e24KC2ThetaAboveLeaf101122020 e24KC2ThetaAboveLeaf101122021 e24KC2ThetaAboveLeaf101122022 + e24KC2ThetaAboveLeaf101122023 + +theorem e24KC2ThetaAboveNode10112203 : + adaptiveCoverCheck 11 thetaAboveCell10112203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112203 + e24KC2ThetaAboveLeaf101122030 e24KC2ThetaAboveLeaf101122031 e24KC2ThetaAboveLeaf101122032 + e24KC2ThetaAboveLeaf101122033 + +theorem e24KC2ThetaAboveNode10112210 : + adaptiveCoverCheck 11 thetaAboveCell10112210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112210 + e24KC2ThetaAboveLeaf101122100 e24KC2ThetaAboveLeaf101122101 e24KC2ThetaAboveLeaf101122102 + e24KC2ThetaAboveLeaf101122103 + +theorem e24KC2ThetaAboveNode10112211 : + adaptiveCoverCheck 11 thetaAboveCell10112211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112211 + e24KC2ThetaAboveLeaf101122110 e24KC2ThetaAboveLeaf101122111 e24KC2ThetaAboveLeaf101122112 + e24KC2ThetaAboveLeaf101122113 + +theorem e24KC2ThetaAboveNode10112212 : + adaptiveCoverCheck 11 thetaAboveCell10112212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112212 + e24KC2ThetaAboveLeaf101122120 e24KC2ThetaAboveLeaf101122121 e24KC2ThetaAboveLeaf101122122 + e24KC2ThetaAboveLeaf101122123 + +theorem e24KC2ThetaAboveNode10112213 : + adaptiveCoverCheck 11 thetaAboveCell10112213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112213 + e24KC2ThetaAboveLeaf101122130 e24KC2ThetaAboveLeaf101122131 e24KC2ThetaAboveLeaf101122132 + e24KC2ThetaAboveLeaf101122133 + +theorem e24KC2ThetaAboveNode10112220 : + adaptiveCoverCheck 11 thetaAboveCell10112220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112220 + e24KC2ThetaAboveLeaf101122200 e24KC2ThetaAboveLeaf101122201 e24KC2ThetaAboveLeaf101122202 + e24KC2ThetaAboveLeaf101122203 + +theorem e24KC2ThetaAboveNode10112221 : + adaptiveCoverCheck 11 thetaAboveCell10112221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112221 + e24KC2ThetaAboveLeaf101122210 e24KC2ThetaAboveLeaf101122211 e24KC2ThetaAboveLeaf101122212 + e24KC2ThetaAboveLeaf101122213 + +theorem e24KC2ThetaAboveNode10112230 : + adaptiveCoverCheck 11 thetaAboveCell10112230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112230 + e24KC2ThetaAboveLeaf101122300 e24KC2ThetaAboveLeaf101122301 e24KC2ThetaAboveLeaf101122302 + e24KC2ThetaAboveLeaf101122303 + +theorem e24KC2ThetaAboveNode10112231 : + adaptiveCoverCheck 11 thetaAboveCell10112231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112231 + e24KC2ThetaAboveLeaf101122310 e24KC2ThetaAboveLeaf101122311 e24KC2ThetaAboveLeaf101122312 + e24KC2ThetaAboveLeaf101122313 + +theorem e24KC2ThetaAboveNode10112300 : + adaptiveCoverCheck 11 thetaAboveCell10112300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112300 + e24KC2ThetaAboveLeaf101123000 e24KC2ThetaAboveLeaf101123001 e24KC2ThetaAboveLeaf101123002 + e24KC2ThetaAboveLeaf101123003 + +theorem e24KC2ThetaAboveNode10112301 : + adaptiveCoverCheck 11 thetaAboveCell10112301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112301 + e24KC2ThetaAboveLeaf101123010 e24KC2ThetaAboveLeaf101123011 e24KC2ThetaAboveLeaf101123012 + e24KC2ThetaAboveLeaf101123013 + +theorem e24KC2ThetaAboveNode10112302 : + adaptiveCoverCheck 11 thetaAboveCell10112302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112302 + e24KC2ThetaAboveLeaf101123020 e24KC2ThetaAboveLeaf101123021 e24KC2ThetaAboveLeaf101123022 + e24KC2ThetaAboveLeaf101123023 + +theorem e24KC2ThetaAboveNode10112303 : + adaptiveCoverCheck 11 thetaAboveCell10112303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112303 + e24KC2ThetaAboveLeaf101123030 e24KC2ThetaAboveLeaf101123031 e24KC2ThetaAboveLeaf101123032 + e24KC2ThetaAboveLeaf101123033 + +theorem e24KC2ThetaAboveNode10112310 : + adaptiveCoverCheck 11 thetaAboveCell10112310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112310 + e24KC2ThetaAboveLeaf101123100 e24KC2ThetaAboveLeaf101123101 e24KC2ThetaAboveLeaf101123102 + e24KC2ThetaAboveLeaf101123103 + +theorem e24KC2ThetaAboveNode10112311 : + adaptiveCoverCheck 11 thetaAboveCell10112311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112311 + e24KC2ThetaAboveLeaf101123110 e24KC2ThetaAboveLeaf101123111 e24KC2ThetaAboveLeaf101123112 + e24KC2ThetaAboveLeaf101123113 + +theorem e24KC2ThetaAboveNode10112312 : + adaptiveCoverCheck 11 thetaAboveCell10112312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112312 + e24KC2ThetaAboveLeaf101123120 e24KC2ThetaAboveLeaf101123121 e24KC2ThetaAboveLeaf101123122 + e24KC2ThetaAboveLeaf101123123 + +theorem e24KC2ThetaAboveNode10112313 : + adaptiveCoverCheck 11 thetaAboveCell10112313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112313 + e24KC2ThetaAboveLeaf101123130 e24KC2ThetaAboveLeaf101123131 e24KC2ThetaAboveLeaf101123132 + e24KC2ThetaAboveLeaf101123133 + +theorem e24KC2ThetaAboveNode10112320 : + adaptiveCoverCheck 11 thetaAboveCell10112320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112320 + e24KC2ThetaAboveLeaf101123200 e24KC2ThetaAboveLeaf101123201 e24KC2ThetaAboveLeaf101123202 + e24KC2ThetaAboveLeaf101123203 + +theorem e24KC2ThetaAboveNode10112321 : + adaptiveCoverCheck 11 thetaAboveCell10112321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112321 + e24KC2ThetaAboveLeaf101123210 e24KC2ThetaAboveLeaf101123211 e24KC2ThetaAboveLeaf101123212 + e24KC2ThetaAboveLeaf101123213 + +theorem e24KC2ThetaAboveNode10112330 : + adaptiveCoverCheck 11 thetaAboveCell10112330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112330 + e24KC2ThetaAboveLeaf101123300 e24KC2ThetaAboveLeaf101123301 e24KC2ThetaAboveLeaf101123302 + e24KC2ThetaAboveLeaf101123303 + +theorem e24KC2ThetaAboveNode10112331 : + adaptiveCoverCheck 11 thetaAboveCell10112331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10112331 + e24KC2ThetaAboveLeaf101123310 e24KC2ThetaAboveLeaf101123311 e24KC2ThetaAboveLeaf101123312 + e24KC2ThetaAboveLeaf101123313 + +theorem e24KC2ThetaAboveNode10113200 : + adaptiveCoverCheck 11 thetaAboveCell10113200 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113200 + e24KC2ThetaAboveLeaf101132000 e24KC2ThetaAboveLeaf101132001 e24KC2ThetaAboveLeaf101132002 + e24KC2ThetaAboveLeaf101132003 + +theorem e24KC2ThetaAboveNode10113201 : + adaptiveCoverCheck 11 thetaAboveCell10113201 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113201 + e24KC2ThetaAboveLeaf101132010 e24KC2ThetaAboveLeaf101132011 e24KC2ThetaAboveLeaf101132012 + e24KC2ThetaAboveLeaf101132013 + +theorem e24KC2ThetaAboveNode10113202 : + adaptiveCoverCheck 11 thetaAboveCell10113202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113202 + e24KC2ThetaAboveLeaf101132020 e24KC2ThetaAboveLeaf101132021 e24KC2ThetaAboveLeaf101132022 + e24KC2ThetaAboveLeaf101132023 + +theorem e24KC2ThetaAboveNode10113203 : + adaptiveCoverCheck 11 thetaAboveCell10113203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113203 + e24KC2ThetaAboveLeaf101132030 e24KC2ThetaAboveLeaf101132031 e24KC2ThetaAboveLeaf101132032 + e24KC2ThetaAboveLeaf101132033 + +theorem e24KC2ThetaAboveNode10113210 : + adaptiveCoverCheck 11 thetaAboveCell10113210 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113210 + e24KC2ThetaAboveLeaf101132100 e24KC2ThetaAboveLeaf101132101 e24KC2ThetaAboveLeaf101132102 + e24KC2ThetaAboveLeaf101132103 + +theorem e24KC2ThetaAboveNode10113211 : + adaptiveCoverCheck 11 thetaAboveCell10113211 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113211 + e24KC2ThetaAboveLeaf101132110 e24KC2ThetaAboveLeaf101132111 e24KC2ThetaAboveLeaf101132112 + e24KC2ThetaAboveLeaf101132113 + +theorem e24KC2ThetaAboveNode10113212 : + adaptiveCoverCheck 11 thetaAboveCell10113212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113212 + e24KC2ThetaAboveLeaf101132120 e24KC2ThetaAboveLeaf101132121 e24KC2ThetaAboveLeaf101132122 + e24KC2ThetaAboveLeaf101132123 + +theorem e24KC2ThetaAboveNode10113213 : + adaptiveCoverCheck 11 thetaAboveCell10113213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113213 + e24KC2ThetaAboveLeaf101132130 e24KC2ThetaAboveLeaf101132131 e24KC2ThetaAboveLeaf101132132 + e24KC2ThetaAboveLeaf101132133 + +theorem e24KC2ThetaAboveNode10113220 : + adaptiveCoverCheck 11 thetaAboveCell10113220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113220 + e24KC2ThetaAboveLeaf101132200 e24KC2ThetaAboveLeaf101132201 e24KC2ThetaAboveLeaf101132202 + e24KC2ThetaAboveLeaf101132203 + +theorem e24KC2ThetaAboveNode10113221 : + adaptiveCoverCheck 11 thetaAboveCell10113221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113221 + e24KC2ThetaAboveLeaf101132210 e24KC2ThetaAboveLeaf101132211 e24KC2ThetaAboveLeaf101132212 + e24KC2ThetaAboveLeaf101132213 + +theorem e24KC2ThetaAboveNode10113230 : + adaptiveCoverCheck 11 thetaAboveCell10113230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113230 + e24KC2ThetaAboveLeaf101132300 e24KC2ThetaAboveLeaf101132301 e24KC2ThetaAboveLeaf101132302 + e24KC2ThetaAboveLeaf101132303 + +theorem e24KC2ThetaAboveNode10113231 : + adaptiveCoverCheck 11 thetaAboveCell10113231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113231 + e24KC2ThetaAboveLeaf101132310 e24KC2ThetaAboveLeaf101132311 e24KC2ThetaAboveLeaf101132312 + e24KC2ThetaAboveLeaf101132313 + +theorem e24KC2ThetaAboveNode10113300 : + adaptiveCoverCheck 11 thetaAboveCell10113300 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113300 + e24KC2ThetaAboveLeaf101133000 e24KC2ThetaAboveLeaf101133001 e24KC2ThetaAboveLeaf101133002 + e24KC2ThetaAboveLeaf101133003 + +theorem e24KC2ThetaAboveNode10113301 : + adaptiveCoverCheck 11 thetaAboveCell10113301 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113301 + e24KC2ThetaAboveLeaf101133010 e24KC2ThetaAboveLeaf101133011 e24KC2ThetaAboveLeaf101133012 + e24KC2ThetaAboveLeaf101133013 + +theorem e24KC2ThetaAboveNode10113302 : + adaptiveCoverCheck 11 thetaAboveCell10113302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113302 + e24KC2ThetaAboveLeaf101133020 e24KC2ThetaAboveLeaf101133021 e24KC2ThetaAboveLeaf101133022 + e24KC2ThetaAboveLeaf101133023 + +theorem e24KC2ThetaAboveNode10113303 : + adaptiveCoverCheck 11 thetaAboveCell10113303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113303 + e24KC2ThetaAboveLeaf101133030 e24KC2ThetaAboveLeaf101133031 e24KC2ThetaAboveLeaf101133032 + e24KC2ThetaAboveLeaf101133033 + +theorem e24KC2ThetaAboveNode10113310 : + adaptiveCoverCheck 11 thetaAboveCell10113310 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113310 + e24KC2ThetaAboveLeaf101133100 e24KC2ThetaAboveLeaf101133101 e24KC2ThetaAboveLeaf101133102 + e24KC2ThetaAboveLeaf101133103 + +theorem e24KC2ThetaAboveNode10113311 : + adaptiveCoverCheck 11 thetaAboveCell10113311 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113311 + e24KC2ThetaAboveLeaf101133110 e24KC2ThetaAboveLeaf101133111 e24KC2ThetaAboveLeaf101133112 + e24KC2ThetaAboveLeaf101133113 + +theorem e24KC2ThetaAboveNode10113312 : + adaptiveCoverCheck 11 thetaAboveCell10113312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113312 + e24KC2ThetaAboveLeaf101133120 e24KC2ThetaAboveLeaf101133121 e24KC2ThetaAboveLeaf101133122 + e24KC2ThetaAboveLeaf101133123 + +theorem e24KC2ThetaAboveNode10113313 : + adaptiveCoverCheck 11 thetaAboveCell10113313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113313 + e24KC2ThetaAboveLeaf101133130 e24KC2ThetaAboveLeaf101133131 e24KC2ThetaAboveLeaf101133132 + e24KC2ThetaAboveLeaf101133133 + +theorem e24KC2ThetaAboveNode10113320 : + adaptiveCoverCheck 11 thetaAboveCell10113320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113320 + e24KC2ThetaAboveLeaf101133200 e24KC2ThetaAboveLeaf101133201 e24KC2ThetaAboveLeaf101133202 + e24KC2ThetaAboveLeaf101133203 + +theorem e24KC2ThetaAboveNode10113321 : + adaptiveCoverCheck 11 thetaAboveCell10113321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113321 + e24KC2ThetaAboveLeaf101133210 e24KC2ThetaAboveLeaf101133211 e24KC2ThetaAboveLeaf101133212 + e24KC2ThetaAboveLeaf101133213 + +theorem e24KC2ThetaAboveNode10113330 : + adaptiveCoverCheck 11 thetaAboveCell10113330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113330 + e24KC2ThetaAboveLeaf101133300 e24KC2ThetaAboveLeaf101133301 e24KC2ThetaAboveLeaf101133302 + e24KC2ThetaAboveLeaf101133303 + +theorem e24KC2ThetaAboveNode10113331 : + adaptiveCoverCheck 11 thetaAboveCell10113331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell10113331 + e24KC2ThetaAboveLeaf101133310 e24KC2ThetaAboveLeaf101133311 e24KC2ThetaAboveLeaf101133312 + e24KC2ThetaAboveLeaf101133313 + +theorem e24KC2ThetaAboveNode11002202 : + adaptiveCoverCheck 11 thetaAboveCell11002202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11002202 + e24KC2ThetaAboveLeaf110022020 e24KC2ThetaAboveLeaf110022021 e24KC2ThetaAboveLeaf110022022 + e24KC2ThetaAboveLeaf110022023 + +theorem e24KC2ThetaAboveNode11002203 : + adaptiveCoverCheck 11 thetaAboveCell11002203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11002203 + e24KC2ThetaAboveLeaf110022030 e24KC2ThetaAboveLeaf110022031 e24KC2ThetaAboveLeaf110022032 + e24KC2ThetaAboveLeaf110022033 + +theorem e24KC2ThetaAboveNode11002212 : + adaptiveCoverCheck 11 thetaAboveCell11002212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11002212 + e24KC2ThetaAboveLeaf110022120 e24KC2ThetaAboveLeaf110022121 e24KC2ThetaAboveLeaf110022122 + e24KC2ThetaAboveLeaf110022123 + +theorem e24KC2ThetaAboveNode11002213 : + adaptiveCoverCheck 11 thetaAboveCell11002213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11002213 + e24KC2ThetaAboveLeaf110022130 e24KC2ThetaAboveLeaf110022131 e24KC2ThetaAboveLeaf110022132 + e24KC2ThetaAboveLeaf110022133 + +theorem e24KC2ThetaAboveNode11002220 : + adaptiveCoverCheck 11 thetaAboveCell11002220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11002220 + e24KC2ThetaAboveLeaf110022200 e24KC2ThetaAboveLeaf110022201 e24KC2ThetaAboveLeaf110022202 + e24KC2ThetaAboveLeaf110022203 + +theorem e24KC2ThetaAboveNode11002221 : + adaptiveCoverCheck 11 thetaAboveCell11002221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11002221 + e24KC2ThetaAboveLeaf110022210 e24KC2ThetaAboveLeaf110022211 e24KC2ThetaAboveLeaf110022212 + e24KC2ThetaAboveLeaf110022213 + +theorem e24KC2ThetaAboveNode11002230 : + adaptiveCoverCheck 11 thetaAboveCell11002230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11002230 + e24KC2ThetaAboveLeaf110022300 e24KC2ThetaAboveLeaf110022301 e24KC2ThetaAboveLeaf110022302 + e24KC2ThetaAboveLeaf110022303 + +theorem e24KC2ThetaAboveNode11002231 : + adaptiveCoverCheck 11 thetaAboveCell11002231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11002231 + e24KC2ThetaAboveLeaf110022310 e24KC2ThetaAboveLeaf110022311 e24KC2ThetaAboveLeaf110022312 + e24KC2ThetaAboveLeaf110022313 + +theorem e24KC2ThetaAboveNode11002302 : + adaptiveCoverCheck 11 thetaAboveCell11002302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11002302 + e24KC2ThetaAboveLeaf110023020 e24KC2ThetaAboveLeaf110023021 e24KC2ThetaAboveLeaf110023022 + e24KC2ThetaAboveLeaf110023023 + +theorem e24KC2ThetaAboveNode11002303 : + adaptiveCoverCheck 11 thetaAboveCell11002303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11002303 + e24KC2ThetaAboveLeaf110023030 e24KC2ThetaAboveLeaf110023031 e24KC2ThetaAboveLeaf110023032 + e24KC2ThetaAboveLeaf110023033 + +theorem e24KC2ThetaAboveNode11002312 : + adaptiveCoverCheck 11 thetaAboveCell11002312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11002312 + e24KC2ThetaAboveLeaf110023120 e24KC2ThetaAboveLeaf110023121 e24KC2ThetaAboveLeaf110023122 + e24KC2ThetaAboveLeaf110023123 + +theorem e24KC2ThetaAboveNode11002313 : + adaptiveCoverCheck 11 thetaAboveCell11002313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11002313 + e24KC2ThetaAboveLeaf110023130 e24KC2ThetaAboveLeaf110023131 e24KC2ThetaAboveLeaf110023132 + e24KC2ThetaAboveLeaf110023133 + +theorem e24KC2ThetaAboveNode11002320 : + adaptiveCoverCheck 11 thetaAboveCell11002320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11002320 + e24KC2ThetaAboveLeaf110023200 e24KC2ThetaAboveLeaf110023201 e24KC2ThetaAboveLeaf110023202 + e24KC2ThetaAboveLeaf110023203 + +theorem e24KC2ThetaAboveNode11002321 : + adaptiveCoverCheck 11 thetaAboveCell11002321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11002321 + e24KC2ThetaAboveLeaf110023210 e24KC2ThetaAboveLeaf110023211 e24KC2ThetaAboveLeaf110023212 + e24KC2ThetaAboveLeaf110023213 + +theorem e24KC2ThetaAboveNode11002330 : + adaptiveCoverCheck 11 thetaAboveCell11002330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11002330 + e24KC2ThetaAboveLeaf110023300 e24KC2ThetaAboveLeaf110023301 e24KC2ThetaAboveLeaf110023302 + e24KC2ThetaAboveLeaf110023303 + +theorem e24KC2ThetaAboveNode11002331 : + adaptiveCoverCheck 11 thetaAboveCell11002331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11002331 + e24KC2ThetaAboveLeaf110023310 e24KC2ThetaAboveLeaf110023311 e24KC2ThetaAboveLeaf110023312 + e24KC2ThetaAboveLeaf110023313 + +theorem e24KC2ThetaAboveNode11003202 : + adaptiveCoverCheck 11 thetaAboveCell11003202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11003202 + e24KC2ThetaAboveLeaf110032020 e24KC2ThetaAboveLeaf110032021 e24KC2ThetaAboveLeaf110032022 + e24KC2ThetaAboveLeaf110032023 + +theorem e24KC2ThetaAboveNode11003203 : + adaptiveCoverCheck 11 thetaAboveCell11003203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11003203 + e24KC2ThetaAboveLeaf110032030 e24KC2ThetaAboveLeaf110032031 e24KC2ThetaAboveLeaf110032032 + e24KC2ThetaAboveLeaf110032033 + +theorem e24KC2ThetaAboveNode11003212 : + adaptiveCoverCheck 11 thetaAboveCell11003212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11003212 + e24KC2ThetaAboveLeaf110032120 e24KC2ThetaAboveLeaf110032121 e24KC2ThetaAboveLeaf110032122 + e24KC2ThetaAboveLeaf110032123 + +theorem e24KC2ThetaAboveNode11003213 : + adaptiveCoverCheck 11 thetaAboveCell11003213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11003213 + e24KC2ThetaAboveLeaf110032130 e24KC2ThetaAboveLeaf110032131 e24KC2ThetaAboveLeaf110032132 + e24KC2ThetaAboveLeaf110032133 + +theorem e24KC2ThetaAboveNode11003220 : + adaptiveCoverCheck 11 thetaAboveCell11003220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11003220 + e24KC2ThetaAboveLeaf110032200 e24KC2ThetaAboveLeaf110032201 e24KC2ThetaAboveLeaf110032202 + e24KC2ThetaAboveLeaf110032203 + +theorem e24KC2ThetaAboveNode11003221 : + adaptiveCoverCheck 11 thetaAboveCell11003221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11003221 + e24KC2ThetaAboveLeaf110032210 e24KC2ThetaAboveLeaf110032211 e24KC2ThetaAboveLeaf110032212 + e24KC2ThetaAboveLeaf110032213 + +theorem e24KC2ThetaAboveNode11003230 : + adaptiveCoverCheck 11 thetaAboveCell11003230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11003230 + e24KC2ThetaAboveLeaf110032300 e24KC2ThetaAboveLeaf110032301 e24KC2ThetaAboveLeaf110032302 + e24KC2ThetaAboveLeaf110032303 + +theorem e24KC2ThetaAboveNode11003231 : + adaptiveCoverCheck 11 thetaAboveCell11003231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11003231 + e24KC2ThetaAboveLeaf110032310 e24KC2ThetaAboveLeaf110032311 e24KC2ThetaAboveLeaf110032312 + e24KC2ThetaAboveLeaf110032313 + +theorem e24KC2ThetaAboveNode11003302 : + adaptiveCoverCheck 11 thetaAboveCell11003302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11003302 + e24KC2ThetaAboveLeaf110033020 e24KC2ThetaAboveLeaf110033021 e24KC2ThetaAboveLeaf110033022 + e24KC2ThetaAboveLeaf110033023 + +theorem e24KC2ThetaAboveNode11003303 : + adaptiveCoverCheck 11 thetaAboveCell11003303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11003303 + e24KC2ThetaAboveLeaf110033030 e24KC2ThetaAboveLeaf110033031 e24KC2ThetaAboveLeaf110033032 + e24KC2ThetaAboveLeaf110033033 + +theorem e24KC2ThetaAboveNode11003312 : + adaptiveCoverCheck 11 thetaAboveCell11003312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11003312 + e24KC2ThetaAboveLeaf110033120 e24KC2ThetaAboveLeaf110033121 e24KC2ThetaAboveLeaf110033122 + e24KC2ThetaAboveLeaf110033123 + +theorem e24KC2ThetaAboveNode11003313 : + adaptiveCoverCheck 11 thetaAboveCell11003313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11003313 + e24KC2ThetaAboveLeaf110033130 e24KC2ThetaAboveLeaf110033131 e24KC2ThetaAboveLeaf110033132 + e24KC2ThetaAboveLeaf110033133 + +theorem e24KC2ThetaAboveNode11003320 : + adaptiveCoverCheck 11 thetaAboveCell11003320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11003320 + e24KC2ThetaAboveLeaf110033200 e24KC2ThetaAboveLeaf110033201 e24KC2ThetaAboveLeaf110033202 + e24KC2ThetaAboveLeaf110033203 + +theorem e24KC2ThetaAboveNode11003321 : + adaptiveCoverCheck 11 thetaAboveCell11003321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11003321 + e24KC2ThetaAboveLeaf110033210 e24KC2ThetaAboveLeaf110033211 e24KC2ThetaAboveLeaf110033212 + e24KC2ThetaAboveLeaf110033213 + +theorem e24KC2ThetaAboveNode11003330 : + adaptiveCoverCheck 11 thetaAboveCell11003330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11003330 + e24KC2ThetaAboveLeaf110033300 e24KC2ThetaAboveLeaf110033301 e24KC2ThetaAboveLeaf110033302 + e24KC2ThetaAboveLeaf110033303 + +theorem e24KC2ThetaAboveNode11003331 : + adaptiveCoverCheck 11 thetaAboveCell11003331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11003331 + e24KC2ThetaAboveLeaf110033310 e24KC2ThetaAboveLeaf110033311 e24KC2ThetaAboveLeaf110033312 + e24KC2ThetaAboveLeaf110033313 + +theorem e24KC2ThetaAboveNode11012202 : + adaptiveCoverCheck 11 thetaAboveCell11012202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11012202 + e24KC2ThetaAboveLeaf110122020 e24KC2ThetaAboveLeaf110122021 e24KC2ThetaAboveLeaf110122022 + e24KC2ThetaAboveLeaf110122023 + +theorem e24KC2ThetaAboveNode11012203 : + adaptiveCoverCheck 11 thetaAboveCell11012203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11012203 + e24KC2ThetaAboveLeaf110122030 e24KC2ThetaAboveLeaf110122031 e24KC2ThetaAboveLeaf110122032 + e24KC2ThetaAboveLeaf110122033 + +theorem e24KC2ThetaAboveNode11012212 : + adaptiveCoverCheck 11 thetaAboveCell11012212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11012212 + e24KC2ThetaAboveLeaf110122120 e24KC2ThetaAboveLeaf110122121 e24KC2ThetaAboveLeaf110122122 + e24KC2ThetaAboveLeaf110122123 + +theorem e24KC2ThetaAboveNode11012213 : + adaptiveCoverCheck 11 thetaAboveCell11012213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11012213 + e24KC2ThetaAboveLeaf110122130 e24KC2ThetaAboveLeaf110122131 e24KC2ThetaAboveLeaf110122132 + e24KC2ThetaAboveLeaf110122133 + +theorem e24KC2ThetaAboveNode11012220 : + adaptiveCoverCheck 11 thetaAboveCell11012220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11012220 + e24KC2ThetaAboveLeaf110122200 e24KC2ThetaAboveLeaf110122201 e24KC2ThetaAboveLeaf110122202 + e24KC2ThetaAboveLeaf110122203 + +theorem e24KC2ThetaAboveNode11012221 : + adaptiveCoverCheck 11 thetaAboveCell11012221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11012221 + e24KC2ThetaAboveLeaf110122210 e24KC2ThetaAboveLeaf110122211 e24KC2ThetaAboveLeaf110122212 + e24KC2ThetaAboveLeaf110122213 + +theorem e24KC2ThetaAboveNode11012230 : + adaptiveCoverCheck 11 thetaAboveCell11012230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11012230 + e24KC2ThetaAboveLeaf110122300 e24KC2ThetaAboveLeaf110122301 e24KC2ThetaAboveLeaf110122302 + e24KC2ThetaAboveLeaf110122303 + +theorem e24KC2ThetaAboveNode11012231 : + adaptiveCoverCheck 11 thetaAboveCell11012231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11012231 + e24KC2ThetaAboveLeaf110122310 e24KC2ThetaAboveLeaf110122311 e24KC2ThetaAboveLeaf110122312 + e24KC2ThetaAboveLeaf110122313 + +theorem e24KC2ThetaAboveNode11012302 : + adaptiveCoverCheck 11 thetaAboveCell11012302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11012302 + e24KC2ThetaAboveLeaf110123020 e24KC2ThetaAboveLeaf110123021 e24KC2ThetaAboveLeaf110123022 + e24KC2ThetaAboveLeaf110123023 + +theorem e24KC2ThetaAboveNode11012303 : + adaptiveCoverCheck 11 thetaAboveCell11012303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11012303 + e24KC2ThetaAboveLeaf110123030 e24KC2ThetaAboveLeaf110123031 e24KC2ThetaAboveLeaf110123032 + e24KC2ThetaAboveLeaf110123033 + +theorem e24KC2ThetaAboveNode11012312 : + adaptiveCoverCheck 11 thetaAboveCell11012312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11012312 + e24KC2ThetaAboveLeaf110123120 e24KC2ThetaAboveLeaf110123121 e24KC2ThetaAboveLeaf110123122 + e24KC2ThetaAboveLeaf110123123 + +theorem e24KC2ThetaAboveNode11012313 : + adaptiveCoverCheck 11 thetaAboveCell11012313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11012313 + e24KC2ThetaAboveLeaf110123130 e24KC2ThetaAboveLeaf110123131 e24KC2ThetaAboveLeaf110123132 + e24KC2ThetaAboveLeaf110123133 + +theorem e24KC2ThetaAboveNode11012320 : + adaptiveCoverCheck 11 thetaAboveCell11012320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11012320 + e24KC2ThetaAboveLeaf110123200 e24KC2ThetaAboveLeaf110123201 e24KC2ThetaAboveLeaf110123202 + e24KC2ThetaAboveLeaf110123203 + +theorem e24KC2ThetaAboveNode11012321 : + adaptiveCoverCheck 11 thetaAboveCell11012321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11012321 + e24KC2ThetaAboveLeaf110123210 e24KC2ThetaAboveLeaf110123211 e24KC2ThetaAboveLeaf110123212 + e24KC2ThetaAboveLeaf110123213 + +theorem e24KC2ThetaAboveNode11012330 : + adaptiveCoverCheck 11 thetaAboveCell11012330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11012330 + e24KC2ThetaAboveLeaf110123300 e24KC2ThetaAboveLeaf110123301 e24KC2ThetaAboveLeaf110123302 + e24KC2ThetaAboveLeaf110123303 + +theorem e24KC2ThetaAboveNode11012331 : + adaptiveCoverCheck 11 thetaAboveCell11012331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11012331 + e24KC2ThetaAboveLeaf110123310 e24KC2ThetaAboveLeaf110123311 e24KC2ThetaAboveLeaf110123312 + e24KC2ThetaAboveLeaf110123313 + +theorem e24KC2ThetaAboveNode11013202 : + adaptiveCoverCheck 11 thetaAboveCell11013202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11013202 + e24KC2ThetaAboveLeaf110132020 e24KC2ThetaAboveLeaf110132021 e24KC2ThetaAboveLeaf110132022 + e24KC2ThetaAboveLeaf110132023 + +theorem e24KC2ThetaAboveNode11013203 : + adaptiveCoverCheck 11 thetaAboveCell11013203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11013203 + e24KC2ThetaAboveLeaf110132030 e24KC2ThetaAboveLeaf110132031 e24KC2ThetaAboveLeaf110132032 + e24KC2ThetaAboveLeaf110132033 + +theorem e24KC2ThetaAboveNode11013212 : + adaptiveCoverCheck 11 thetaAboveCell11013212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11013212 + e24KC2ThetaAboveLeaf110132120 e24KC2ThetaAboveLeaf110132121 e24KC2ThetaAboveLeaf110132122 + e24KC2ThetaAboveLeaf110132123 + +theorem e24KC2ThetaAboveNode11013213 : + adaptiveCoverCheck 11 thetaAboveCell11013213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11013213 + e24KC2ThetaAboveLeaf110132130 e24KC2ThetaAboveLeaf110132131 e24KC2ThetaAboveLeaf110132132 + e24KC2ThetaAboveLeaf110132133 + +theorem e24KC2ThetaAboveNode11013220 : + adaptiveCoverCheck 11 thetaAboveCell11013220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11013220 + e24KC2ThetaAboveLeaf110132200 e24KC2ThetaAboveLeaf110132201 e24KC2ThetaAboveLeaf110132202 + e24KC2ThetaAboveLeaf110132203 + +theorem e24KC2ThetaAboveNode11013221 : + adaptiveCoverCheck 11 thetaAboveCell11013221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11013221 + e24KC2ThetaAboveLeaf110132210 e24KC2ThetaAboveLeaf110132211 e24KC2ThetaAboveLeaf110132212 + e24KC2ThetaAboveLeaf110132213 + +theorem e24KC2ThetaAboveNode11013230 : + adaptiveCoverCheck 11 thetaAboveCell11013230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11013230 + e24KC2ThetaAboveLeaf110132300 e24KC2ThetaAboveLeaf110132301 e24KC2ThetaAboveLeaf110132302 + e24KC2ThetaAboveLeaf110132303 + +theorem e24KC2ThetaAboveNode11013231 : + adaptiveCoverCheck 11 thetaAboveCell11013231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11013231 + e24KC2ThetaAboveLeaf110132310 e24KC2ThetaAboveLeaf110132311 e24KC2ThetaAboveLeaf110132312 + e24KC2ThetaAboveLeaf110132313 + +theorem e24KC2ThetaAboveNode11013302 : + adaptiveCoverCheck 11 thetaAboveCell11013302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11013302 + e24KC2ThetaAboveLeaf110133020 e24KC2ThetaAboveLeaf110133021 e24KC2ThetaAboveLeaf110133022 + e24KC2ThetaAboveLeaf110133023 + +theorem e24KC2ThetaAboveNode11013303 : + adaptiveCoverCheck 11 thetaAboveCell11013303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11013303 + e24KC2ThetaAboveLeaf110133030 e24KC2ThetaAboveLeaf110133031 e24KC2ThetaAboveLeaf110133032 + e24KC2ThetaAboveLeaf110133033 + +theorem e24KC2ThetaAboveNode11013312 : + adaptiveCoverCheck 11 thetaAboveCell11013312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11013312 + e24KC2ThetaAboveLeaf110133120 e24KC2ThetaAboveLeaf110133121 e24KC2ThetaAboveLeaf110133122 + e24KC2ThetaAboveLeaf110133123 + +theorem e24KC2ThetaAboveNode11013313 : + adaptiveCoverCheck 11 thetaAboveCell11013313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11013313 + e24KC2ThetaAboveLeaf110133130 e24KC2ThetaAboveLeaf110133131 e24KC2ThetaAboveLeaf110133132 + e24KC2ThetaAboveLeaf110133133 + +theorem e24KC2ThetaAboveNode11013320 : + adaptiveCoverCheck 11 thetaAboveCell11013320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11013320 + e24KC2ThetaAboveLeaf110133200 e24KC2ThetaAboveLeaf110133201 e24KC2ThetaAboveLeaf110133202 + e24KC2ThetaAboveLeaf110133203 + +theorem e24KC2ThetaAboveNode11013321 : + adaptiveCoverCheck 11 thetaAboveCell11013321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11013321 + e24KC2ThetaAboveLeaf110133210 e24KC2ThetaAboveLeaf110133211 e24KC2ThetaAboveLeaf110133212 + e24KC2ThetaAboveLeaf110133213 + +theorem e24KC2ThetaAboveNode11013330 : + adaptiveCoverCheck 11 thetaAboveCell11013330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11013330 + e24KC2ThetaAboveLeaf110133300 e24KC2ThetaAboveLeaf110133301 e24KC2ThetaAboveLeaf110133302 + e24KC2ThetaAboveLeaf110133303 + +theorem e24KC2ThetaAboveNode11013331 : + adaptiveCoverCheck 11 thetaAboveCell11013331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11013331 + e24KC2ThetaAboveLeaf110133310 e24KC2ThetaAboveLeaf110133311 e24KC2ThetaAboveLeaf110133312 + e24KC2ThetaAboveLeaf110133313 + +theorem e24KC2ThetaAboveNode11102202 : + adaptiveCoverCheck 11 thetaAboveCell11102202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11102202 + e24KC2ThetaAboveLeaf111022020 e24KC2ThetaAboveLeaf111022021 e24KC2ThetaAboveLeaf111022022 + e24KC2ThetaAboveLeaf111022023 + +theorem e24KC2ThetaAboveNode11102203 : + adaptiveCoverCheck 11 thetaAboveCell11102203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11102203 + e24KC2ThetaAboveLeaf111022030 e24KC2ThetaAboveLeaf111022031 e24KC2ThetaAboveLeaf111022032 + e24KC2ThetaAboveLeaf111022033 + +theorem e24KC2ThetaAboveNode11102212 : + adaptiveCoverCheck 11 thetaAboveCell11102212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11102212 + e24KC2ThetaAboveLeaf111022120 e24KC2ThetaAboveLeaf111022121 e24KC2ThetaAboveLeaf111022122 + e24KC2ThetaAboveLeaf111022123 + +theorem e24KC2ThetaAboveNode11102213 : + adaptiveCoverCheck 11 thetaAboveCell11102213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11102213 + e24KC2ThetaAboveLeaf111022130 e24KC2ThetaAboveLeaf111022131 e24KC2ThetaAboveLeaf111022132 + e24KC2ThetaAboveLeaf111022133 + +theorem e24KC2ThetaAboveNode11102220 : + adaptiveCoverCheck 11 thetaAboveCell11102220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11102220 + e24KC2ThetaAboveLeaf111022200 e24KC2ThetaAboveLeaf111022201 e24KC2ThetaAboveLeaf111022202 + e24KC2ThetaAboveLeaf111022203 + +theorem e24KC2ThetaAboveNode11102221 : + adaptiveCoverCheck 11 thetaAboveCell11102221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11102221 + e24KC2ThetaAboveLeaf111022210 e24KC2ThetaAboveLeaf111022211 e24KC2ThetaAboveLeaf111022212 + e24KC2ThetaAboveLeaf111022213 + +theorem e24KC2ThetaAboveNode11102230 : + adaptiveCoverCheck 11 thetaAboveCell11102230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11102230 + e24KC2ThetaAboveLeaf111022300 e24KC2ThetaAboveLeaf111022301 e24KC2ThetaAboveLeaf111022302 + e24KC2ThetaAboveLeaf111022303 + +theorem e24KC2ThetaAboveNode11102231 : + adaptiveCoverCheck 11 thetaAboveCell11102231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11102231 + e24KC2ThetaAboveLeaf111022310 e24KC2ThetaAboveLeaf111022311 e24KC2ThetaAboveLeaf111022312 + e24KC2ThetaAboveLeaf111022313 + +theorem e24KC2ThetaAboveNode11102302 : + adaptiveCoverCheck 11 thetaAboveCell11102302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11102302 + e24KC2ThetaAboveLeaf111023020 e24KC2ThetaAboveLeaf111023021 e24KC2ThetaAboveLeaf111023022 + e24KC2ThetaAboveLeaf111023023 + +theorem e24KC2ThetaAboveNode11102303 : + adaptiveCoverCheck 11 thetaAboveCell11102303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11102303 + e24KC2ThetaAboveLeaf111023030 e24KC2ThetaAboveLeaf111023031 e24KC2ThetaAboveLeaf111023032 + e24KC2ThetaAboveLeaf111023033 + +theorem e24KC2ThetaAboveNode11102312 : + adaptiveCoverCheck 11 thetaAboveCell11102312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11102312 + e24KC2ThetaAboveLeaf111023120 e24KC2ThetaAboveLeaf111023121 e24KC2ThetaAboveLeaf111023122 + e24KC2ThetaAboveLeaf111023123 + +theorem e24KC2ThetaAboveNode11102313 : + adaptiveCoverCheck 11 thetaAboveCell11102313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11102313 + e24KC2ThetaAboveLeaf111023130 e24KC2ThetaAboveLeaf111023131 e24KC2ThetaAboveLeaf111023132 + e24KC2ThetaAboveLeaf111023133 + +theorem e24KC2ThetaAboveNode11102320 : + adaptiveCoverCheck 11 thetaAboveCell11102320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11102320 + e24KC2ThetaAboveLeaf111023200 e24KC2ThetaAboveLeaf111023201 e24KC2ThetaAboveLeaf111023202 + e24KC2ThetaAboveLeaf111023203 + +theorem e24KC2ThetaAboveNode11102321 : + adaptiveCoverCheck 11 thetaAboveCell11102321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11102321 + e24KC2ThetaAboveLeaf111023210 e24KC2ThetaAboveLeaf111023211 e24KC2ThetaAboveLeaf111023212 + e24KC2ThetaAboveLeaf111023213 + +theorem e24KC2ThetaAboveNode11102330 : + adaptiveCoverCheck 11 thetaAboveCell11102330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11102330 + e24KC2ThetaAboveLeaf111023300 e24KC2ThetaAboveLeaf111023301 e24KC2ThetaAboveLeaf111023302 + e24KC2ThetaAboveLeaf111023303 + +theorem e24KC2ThetaAboveNode11102331 : + adaptiveCoverCheck 11 thetaAboveCell11102331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11102331 + e24KC2ThetaAboveLeaf111023310 e24KC2ThetaAboveLeaf111023311 e24KC2ThetaAboveLeaf111023312 + e24KC2ThetaAboveLeaf111023313 + +theorem e24KC2ThetaAboveNode11103202 : + adaptiveCoverCheck 11 thetaAboveCell11103202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11103202 + e24KC2ThetaAboveLeaf111032020 e24KC2ThetaAboveLeaf111032021 e24KC2ThetaAboveLeaf111032022 + e24KC2ThetaAboveLeaf111032023 + +theorem e24KC2ThetaAboveNode11103203 : + adaptiveCoverCheck 11 thetaAboveCell11103203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11103203 + e24KC2ThetaAboveLeaf111032030 e24KC2ThetaAboveLeaf111032031 e24KC2ThetaAboveLeaf111032032 + e24KC2ThetaAboveLeaf111032033 + +theorem e24KC2ThetaAboveNode11103212 : + adaptiveCoverCheck 11 thetaAboveCell11103212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11103212 + e24KC2ThetaAboveLeaf111032120 e24KC2ThetaAboveLeaf111032121 e24KC2ThetaAboveLeaf111032122 + e24KC2ThetaAboveLeaf111032123 + +theorem e24KC2ThetaAboveNode11103213 : + adaptiveCoverCheck 11 thetaAboveCell11103213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11103213 + e24KC2ThetaAboveLeaf111032130 e24KC2ThetaAboveLeaf111032131 e24KC2ThetaAboveLeaf111032132 + e24KC2ThetaAboveLeaf111032133 + +theorem e24KC2ThetaAboveNode11103220 : + adaptiveCoverCheck 11 thetaAboveCell11103220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11103220 + e24KC2ThetaAboveLeaf111032200 e24KC2ThetaAboveLeaf111032201 e24KC2ThetaAboveLeaf111032202 + e24KC2ThetaAboveLeaf111032203 + +theorem e24KC2ThetaAboveNode11103221 : + adaptiveCoverCheck 11 thetaAboveCell11103221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11103221 + e24KC2ThetaAboveLeaf111032210 e24KC2ThetaAboveLeaf111032211 e24KC2ThetaAboveLeaf111032212 + e24KC2ThetaAboveLeaf111032213 + +theorem e24KC2ThetaAboveNode11103230 : + adaptiveCoverCheck 11 thetaAboveCell11103230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11103230 + e24KC2ThetaAboveLeaf111032300 e24KC2ThetaAboveLeaf111032301 e24KC2ThetaAboveLeaf111032302 + e24KC2ThetaAboveLeaf111032303 + +theorem e24KC2ThetaAboveNode11103231 : + adaptiveCoverCheck 11 thetaAboveCell11103231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11103231 + e24KC2ThetaAboveLeaf111032310 e24KC2ThetaAboveLeaf111032311 e24KC2ThetaAboveLeaf111032312 + e24KC2ThetaAboveLeaf111032313 + +theorem e24KC2ThetaAboveNode11103302 : + adaptiveCoverCheck 11 thetaAboveCell11103302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11103302 + e24KC2ThetaAboveLeaf111033020 e24KC2ThetaAboveLeaf111033021 e24KC2ThetaAboveLeaf111033022 + e24KC2ThetaAboveLeaf111033023 + +theorem e24KC2ThetaAboveNode11103303 : + adaptiveCoverCheck 11 thetaAboveCell11103303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11103303 + e24KC2ThetaAboveLeaf111033030 e24KC2ThetaAboveLeaf111033031 e24KC2ThetaAboveLeaf111033032 + e24KC2ThetaAboveLeaf111033033 + +theorem e24KC2ThetaAboveNode11103312 : + adaptiveCoverCheck 11 thetaAboveCell11103312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11103312 + e24KC2ThetaAboveLeaf111033120 e24KC2ThetaAboveLeaf111033121 e24KC2ThetaAboveLeaf111033122 + e24KC2ThetaAboveLeaf111033123 + +theorem e24KC2ThetaAboveNode11103313 : + adaptiveCoverCheck 11 thetaAboveCell11103313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11103313 + e24KC2ThetaAboveLeaf111033130 e24KC2ThetaAboveLeaf111033131 e24KC2ThetaAboveLeaf111033132 + e24KC2ThetaAboveLeaf111033133 + +theorem e24KC2ThetaAboveNode11103320 : + adaptiveCoverCheck 11 thetaAboveCell11103320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11103320 + e24KC2ThetaAboveLeaf111033200 e24KC2ThetaAboveLeaf111033201 e24KC2ThetaAboveLeaf111033202 + e24KC2ThetaAboveLeaf111033203 + +theorem e24KC2ThetaAboveNode11103321 : + adaptiveCoverCheck 11 thetaAboveCell11103321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11103321 + e24KC2ThetaAboveLeaf111033210 e24KC2ThetaAboveLeaf111033211 e24KC2ThetaAboveLeaf111033212 + e24KC2ThetaAboveLeaf111033213 + +theorem e24KC2ThetaAboveNode11103330 : + adaptiveCoverCheck 11 thetaAboveCell11103330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11103330 + e24KC2ThetaAboveLeaf111033300 e24KC2ThetaAboveLeaf111033301 e24KC2ThetaAboveLeaf111033302 + e24KC2ThetaAboveLeaf111033303 + +theorem e24KC2ThetaAboveNode11103331 : + adaptiveCoverCheck 11 thetaAboveCell11103331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11103331 + e24KC2ThetaAboveLeaf111033310 e24KC2ThetaAboveLeaf111033311 e24KC2ThetaAboveLeaf111033312 + e24KC2ThetaAboveLeaf111033313 + +theorem e24KC2ThetaAboveNode11112202 : + adaptiveCoverCheck 11 thetaAboveCell11112202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11112202 + e24KC2ThetaAboveLeaf111122020 e24KC2ThetaAboveLeaf111122021 e24KC2ThetaAboveLeaf111122022 + e24KC2ThetaAboveLeaf111122023 + +theorem e24KC2ThetaAboveNode11112203 : + adaptiveCoverCheck 11 thetaAboveCell11112203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11112203 + e24KC2ThetaAboveLeaf111122030 e24KC2ThetaAboveLeaf111122031 e24KC2ThetaAboveLeaf111122032 + e24KC2ThetaAboveLeaf111122033 + +theorem e24KC2ThetaAboveNode11112212 : + adaptiveCoverCheck 11 thetaAboveCell11112212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11112212 + e24KC2ThetaAboveLeaf111122120 e24KC2ThetaAboveLeaf111122121 e24KC2ThetaAboveLeaf111122122 + e24KC2ThetaAboveLeaf111122123 + +theorem e24KC2ThetaAboveNode11112213 : + adaptiveCoverCheck 11 thetaAboveCell11112213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11112213 + e24KC2ThetaAboveLeaf111122130 e24KC2ThetaAboveLeaf111122131 e24KC2ThetaAboveLeaf111122132 + e24KC2ThetaAboveLeaf111122133 + +theorem e24KC2ThetaAboveNode11112220 : + adaptiveCoverCheck 11 thetaAboveCell11112220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11112220 + e24KC2ThetaAboveLeaf111122200 e24KC2ThetaAboveLeaf111122201 e24KC2ThetaAboveLeaf111122202 + e24KC2ThetaAboveLeaf111122203 + +theorem e24KC2ThetaAboveNode11112221 : + adaptiveCoverCheck 11 thetaAboveCell11112221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11112221 + e24KC2ThetaAboveLeaf111122210 e24KC2ThetaAboveLeaf111122211 e24KC2ThetaAboveLeaf111122212 + e24KC2ThetaAboveLeaf111122213 + +theorem e24KC2ThetaAboveNode11112230 : + adaptiveCoverCheck 11 thetaAboveCell11112230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11112230 + e24KC2ThetaAboveLeaf111122300 e24KC2ThetaAboveLeaf111122301 e24KC2ThetaAboveLeaf111122302 + e24KC2ThetaAboveLeaf111122303 + +theorem e24KC2ThetaAboveNode11112231 : + adaptiveCoverCheck 11 thetaAboveCell11112231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11112231 + e24KC2ThetaAboveLeaf111122310 e24KC2ThetaAboveLeaf111122311 e24KC2ThetaAboveLeaf111122312 + e24KC2ThetaAboveLeaf111122313 + +theorem e24KC2ThetaAboveNode11112302 : + adaptiveCoverCheck 11 thetaAboveCell11112302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11112302 + e24KC2ThetaAboveLeaf111123020 e24KC2ThetaAboveLeaf111123021 e24KC2ThetaAboveLeaf111123022 + e24KC2ThetaAboveLeaf111123023 + +theorem e24KC2ThetaAboveNode11112303 : + adaptiveCoverCheck 11 thetaAboveCell11112303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11112303 + e24KC2ThetaAboveLeaf111123030 e24KC2ThetaAboveLeaf111123031 e24KC2ThetaAboveLeaf111123032 + e24KC2ThetaAboveLeaf111123033 + +theorem e24KC2ThetaAboveNode11112312 : + adaptiveCoverCheck 11 thetaAboveCell11112312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11112312 + e24KC2ThetaAboveLeaf111123120 e24KC2ThetaAboveLeaf111123121 e24KC2ThetaAboveLeaf111123122 + e24KC2ThetaAboveLeaf111123123 + +theorem e24KC2ThetaAboveNode11112313 : + adaptiveCoverCheck 11 thetaAboveCell11112313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11112313 + e24KC2ThetaAboveLeaf111123130 e24KC2ThetaAboveLeaf111123131 e24KC2ThetaAboveLeaf111123132 + e24KC2ThetaAboveLeaf111123133 + +theorem e24KC2ThetaAboveNode11112320 : + adaptiveCoverCheck 11 thetaAboveCell11112320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11112320 + e24KC2ThetaAboveLeaf111123200 e24KC2ThetaAboveLeaf111123201 e24KC2ThetaAboveLeaf111123202 + e24KC2ThetaAboveLeaf111123203 + +theorem e24KC2ThetaAboveNode11112321 : + adaptiveCoverCheck 11 thetaAboveCell11112321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11112321 + e24KC2ThetaAboveLeaf111123210 e24KC2ThetaAboveLeaf111123211 e24KC2ThetaAboveLeaf111123212 + e24KC2ThetaAboveLeaf111123213 + +theorem e24KC2ThetaAboveNode11112330 : + adaptiveCoverCheck 11 thetaAboveCell11112330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11112330 + e24KC2ThetaAboveLeaf111123300 e24KC2ThetaAboveLeaf111123301 e24KC2ThetaAboveLeaf111123302 + e24KC2ThetaAboveLeaf111123303 + +theorem e24KC2ThetaAboveNode11112331 : + adaptiveCoverCheck 11 thetaAboveCell11112331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11112331 + e24KC2ThetaAboveLeaf111123310 e24KC2ThetaAboveLeaf111123311 e24KC2ThetaAboveLeaf111123312 + e24KC2ThetaAboveLeaf111123313 + +theorem e24KC2ThetaAboveNode11112332 : + adaptiveCoverCheck 11 thetaAboveCell11112332 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11112332 + e24KC2ThetaAboveLeaf111123320 e24KC2ThetaAboveLeaf111123321 e24KC2ThetaAboveLeaf111123322 + e24KC2ThetaAboveLeaf111123323 + +theorem e24KC2ThetaAboveNode11112333 : + adaptiveCoverCheck 11 thetaAboveCell11112333 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11112333 + e24KC2ThetaAboveLeaf111123330 e24KC2ThetaAboveLeaf111123331 e24KC2ThetaAboveLeaf111123332 + e24KC2ThetaAboveLeaf111123333 + +theorem e24KC2ThetaAboveNode11113202 : + adaptiveCoverCheck 11 thetaAboveCell11113202 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113202 + e24KC2ThetaAboveLeaf111132020 e24KC2ThetaAboveLeaf111132021 e24KC2ThetaAboveLeaf111132022 + e24KC2ThetaAboveLeaf111132023 + +theorem e24KC2ThetaAboveNode11113203 : + adaptiveCoverCheck 11 thetaAboveCell11113203 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113203 + e24KC2ThetaAboveLeaf111132030 e24KC2ThetaAboveLeaf111132031 e24KC2ThetaAboveLeaf111132032 + e24KC2ThetaAboveLeaf111132033 + +theorem e24KC2ThetaAboveNode11113212 : + adaptiveCoverCheck 11 thetaAboveCell11113212 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113212 + e24KC2ThetaAboveLeaf111132120 e24KC2ThetaAboveLeaf111132121 e24KC2ThetaAboveLeaf111132122 + e24KC2ThetaAboveLeaf111132123 + +theorem e24KC2ThetaAboveNode11113213 : + adaptiveCoverCheck 11 thetaAboveCell11113213 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113213 + e24KC2ThetaAboveLeaf111132130 e24KC2ThetaAboveLeaf111132131 e24KC2ThetaAboveLeaf111132132 + e24KC2ThetaAboveLeaf111132133 + +theorem e24KC2ThetaAboveNode11113220 : + adaptiveCoverCheck 11 thetaAboveCell11113220 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113220 + e24KC2ThetaAboveLeaf111132200 e24KC2ThetaAboveLeaf111132201 e24KC2ThetaAboveLeaf111132202 + e24KC2ThetaAboveLeaf111132203 + +theorem e24KC2ThetaAboveNode11113221 : + adaptiveCoverCheck 11 thetaAboveCell11113221 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113221 + e24KC2ThetaAboveLeaf111132210 e24KC2ThetaAboveLeaf111132211 e24KC2ThetaAboveLeaf111132212 + e24KC2ThetaAboveLeaf111132213 + +theorem e24KC2ThetaAboveNode11113222 : + adaptiveCoverCheck 11 thetaAboveCell11113222 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113222 + e24KC2ThetaAboveLeaf111132220 e24KC2ThetaAboveLeaf111132221 e24KC2ThetaAboveLeaf111132222 + e24KC2ThetaAboveLeaf111132223 + +theorem e24KC2ThetaAboveNode11113223 : + adaptiveCoverCheck 11 thetaAboveCell11113223 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113223 + e24KC2ThetaAboveLeaf111132230 e24KC2ThetaAboveLeaf111132231 e24KC2ThetaAboveLeaf111132232 + e24KC2ThetaAboveLeaf111132233 + +theorem e24KC2ThetaAboveNode11113230 : + adaptiveCoverCheck 11 thetaAboveCell11113230 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113230 + e24KC2ThetaAboveLeaf111132300 e24KC2ThetaAboveLeaf111132301 e24KC2ThetaAboveLeaf111132302 + e24KC2ThetaAboveLeaf111132303 + +theorem e24KC2ThetaAboveNode11113231 : + adaptiveCoverCheck 11 thetaAboveCell11113231 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113231 + e24KC2ThetaAboveLeaf111132310 e24KC2ThetaAboveLeaf111132311 e24KC2ThetaAboveLeaf111132312 + e24KC2ThetaAboveLeaf111132313 + +theorem e24KC2ThetaAboveNode11113232 : + adaptiveCoverCheck 11 thetaAboveCell11113232 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113232 + e24KC2ThetaAboveLeaf111132320 e24KC2ThetaAboveLeaf111132321 e24KC2ThetaAboveLeaf111132322 + e24KC2ThetaAboveLeaf111132323 + +theorem e24KC2ThetaAboveNode11113233 : + adaptiveCoverCheck 11 thetaAboveCell11113233 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113233 + e24KC2ThetaAboveLeaf111132330 e24KC2ThetaAboveLeaf111132331 e24KC2ThetaAboveLeaf111132332 + e24KC2ThetaAboveLeaf111132333 + +theorem e24KC2ThetaAboveNode11113302 : + adaptiveCoverCheck 11 thetaAboveCell11113302 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113302 + e24KC2ThetaAboveLeaf111133020 e24KC2ThetaAboveLeaf111133021 e24KC2ThetaAboveLeaf111133022 + e24KC2ThetaAboveLeaf111133023 + +theorem e24KC2ThetaAboveNode11113303 : + adaptiveCoverCheck 11 thetaAboveCell11113303 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113303 + e24KC2ThetaAboveLeaf111133030 e24KC2ThetaAboveLeaf111133031 e24KC2ThetaAboveLeaf111133032 + e24KC2ThetaAboveLeaf111133033 + +theorem e24KC2ThetaAboveNode11113312 : + adaptiveCoverCheck 11 thetaAboveCell11113312 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113312 + e24KC2ThetaAboveLeaf111133120 e24KC2ThetaAboveLeaf111133121 e24KC2ThetaAboveLeaf111133122 + e24KC2ThetaAboveLeaf111133123 + +theorem e24KC2ThetaAboveNode11113313 : + adaptiveCoverCheck 11 thetaAboveCell11113313 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113313 + e24KC2ThetaAboveLeaf111133130 e24KC2ThetaAboveLeaf111133131 e24KC2ThetaAboveLeaf111133132 + e24KC2ThetaAboveLeaf111133133 + +theorem e24KC2ThetaAboveNode11113320 : + adaptiveCoverCheck 11 thetaAboveCell11113320 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113320 + e24KC2ThetaAboveLeaf111133200 e24KC2ThetaAboveLeaf111133201 e24KC2ThetaAboveLeaf111133202 + e24KC2ThetaAboveLeaf111133203 + +theorem e24KC2ThetaAboveNode11113321 : + adaptiveCoverCheck 11 thetaAboveCell11113321 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113321 + e24KC2ThetaAboveLeaf111133210 e24KC2ThetaAboveLeaf111133211 e24KC2ThetaAboveLeaf111133212 + e24KC2ThetaAboveLeaf111133213 + +theorem e24KC2ThetaAboveNode11113322 : + adaptiveCoverCheck 11 thetaAboveCell11113322 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113322 + e24KC2ThetaAboveLeaf111133220 e24KC2ThetaAboveLeaf111133221 e24KC2ThetaAboveLeaf111133222 + e24KC2ThetaAboveLeaf111133223 + +theorem e24KC2ThetaAboveNode11113323 : + adaptiveCoverCheck 11 thetaAboveCell11113323 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113323 + e24KC2ThetaAboveLeaf111133230 e24KC2ThetaAboveLeaf111133231 e24KC2ThetaAboveLeaf111133232 + e24KC2ThetaAboveLeaf111133233 + +theorem e24KC2ThetaAboveNode11113330 : + adaptiveCoverCheck 11 thetaAboveCell11113330 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113330 + e24KC2ThetaAboveLeaf111133300 e24KC2ThetaAboveLeaf111133301 e24KC2ThetaAboveLeaf111133302 + e24KC2ThetaAboveLeaf111133303 + +theorem e24KC2ThetaAboveNode11113331 : + adaptiveCoverCheck 11 thetaAboveCell11113331 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113331 + e24KC2ThetaAboveLeaf111133310 e24KC2ThetaAboveLeaf111133311 e24KC2ThetaAboveLeaf111133312 + e24KC2ThetaAboveLeaf111133313 + +theorem e24KC2ThetaAboveNode11113332 : + adaptiveCoverCheck 11 thetaAboveCell11113332 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113332 + e24KC2ThetaAboveLeaf111133320 e24KC2ThetaAboveLeaf111133321 e24KC2ThetaAboveLeaf111133322 + e24KC2ThetaAboveLeaf111133323 + +theorem e24KC2ThetaAboveNode11113333 : + adaptiveCoverCheck 11 thetaAboveCell11113333 = true := + adaptiveCoverCheck_succ_of_children 10 thetaAboveCell11113333 + e24KC2ThetaAboveLeaf111133330 e24KC2ThetaAboveLeaf111133331 e24KC2ThetaAboveLeaf111133332 + e24KC2ThetaAboveLeaf111133333 + +theorem e24KC2ThetaAboveNode0000202 : + adaptiveCoverCheck 12 (childHL (childLL (childHL thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHL thetaAboveCell0000))) + e24KC2ThetaAboveLeaf00002020 e24KC2ThetaAboveLeaf00002021 e24KC2ThetaAboveNode00002022 + e24KC2ThetaAboveNode00002023 + +theorem e24KC2ThetaAboveNode0000203 : + adaptiveCoverCheck 12 (childHH (childLL (childHL thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHL thetaAboveCell0000))) + e24KC2ThetaAboveLeaf00002030 e24KC2ThetaAboveLeaf00002031 e24KC2ThetaAboveNode00002032 + e24KC2ThetaAboveNode00002033 + +theorem e24KC2ThetaAboveNode0000212 : + adaptiveCoverCheck 12 (childHL (childLH (childHL thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHL thetaAboveCell0000))) + e24KC2ThetaAboveLeaf00002120 e24KC2ThetaAboveLeaf00002121 e24KC2ThetaAboveNode00002122 + e24KC2ThetaAboveNode00002123 + +theorem e24KC2ThetaAboveNode0000213 : + adaptiveCoverCheck 12 (childHH (childLH (childHL thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHL thetaAboveCell0000))) + e24KC2ThetaAboveLeaf00002130 e24KC2ThetaAboveLeaf00002131 e24KC2ThetaAboveNode00002132 + e24KC2ThetaAboveNode00002133 + +theorem e24KC2ThetaAboveNode0000220 : + adaptiveCoverCheck 12 (childLL (childHL (childHL thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHL thetaAboveCell0000))) + e24KC2ThetaAboveNode00002200 e24KC2ThetaAboveNode00002201 e24KC2ThetaAboveNode00002202 + e24KC2ThetaAboveNode00002203 + +theorem e24KC2ThetaAboveNode0000221 : + adaptiveCoverCheck 12 (childLH (childHL (childHL thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHL thetaAboveCell0000))) + e24KC2ThetaAboveNode00002210 e24KC2ThetaAboveNode00002211 e24KC2ThetaAboveNode00002212 + e24KC2ThetaAboveNode00002213 + +theorem e24KC2ThetaAboveNode0000222 : + adaptiveCoverCheck 12 (childHL (childHL (childHL thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHL thetaAboveCell0000))) + e24KC2ThetaAboveLeaf00002220 e24KC2ThetaAboveLeaf00002221 e24KC2ThetaAboveLeaf00002222 + e24KC2ThetaAboveLeaf00002223 + +theorem e24KC2ThetaAboveNode0000223 : + adaptiveCoverCheck 12 (childHH (childHL (childHL thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHL thetaAboveCell0000))) + e24KC2ThetaAboveLeaf00002230 e24KC2ThetaAboveLeaf00002231 e24KC2ThetaAboveLeaf00002232 + e24KC2ThetaAboveLeaf00002233 + +theorem e24KC2ThetaAboveNode0000230 : + adaptiveCoverCheck 12 (childLL (childHH (childHL thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHL thetaAboveCell0000))) + e24KC2ThetaAboveNode00002300 e24KC2ThetaAboveNode00002301 e24KC2ThetaAboveNode00002302 + e24KC2ThetaAboveNode00002303 + +theorem e24KC2ThetaAboveNode0000231 : + adaptiveCoverCheck 12 (childLH (childHH (childHL thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHL thetaAboveCell0000))) + e24KC2ThetaAboveNode00002310 e24KC2ThetaAboveNode00002311 e24KC2ThetaAboveNode00002312 + e24KC2ThetaAboveNode00002313 + +theorem e24KC2ThetaAboveNode0000232 : + adaptiveCoverCheck 12 (childHL (childHH (childHL thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHL thetaAboveCell0000))) + e24KC2ThetaAboveLeaf00002320 e24KC2ThetaAboveLeaf00002321 e24KC2ThetaAboveLeaf00002322 + e24KC2ThetaAboveLeaf00002323 + +theorem e24KC2ThetaAboveNode0000233 : + adaptiveCoverCheck 12 (childHH (childHH (childHL thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHL thetaAboveCell0000))) + e24KC2ThetaAboveLeaf00002330 e24KC2ThetaAboveLeaf00002331 e24KC2ThetaAboveLeaf00002332 + e24KC2ThetaAboveLeaf00002333 + +theorem e24KC2ThetaAboveNode0000302 : + adaptiveCoverCheck 12 (childHL (childLL (childHH thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHH thetaAboveCell0000))) + e24KC2ThetaAboveLeaf00003020 e24KC2ThetaAboveLeaf00003021 e24KC2ThetaAboveNode00003022 + e24KC2ThetaAboveNode00003023 + +theorem e24KC2ThetaAboveNode0000303 : + adaptiveCoverCheck 12 (childHH (childLL (childHH thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHH thetaAboveCell0000))) + e24KC2ThetaAboveLeaf00003030 e24KC2ThetaAboveLeaf00003031 e24KC2ThetaAboveNode00003032 + e24KC2ThetaAboveNode00003033 + +theorem e24KC2ThetaAboveNode0000312 : + adaptiveCoverCheck 12 (childHL (childLH (childHH thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHH thetaAboveCell0000))) + e24KC2ThetaAboveLeaf00003120 e24KC2ThetaAboveLeaf00003121 e24KC2ThetaAboveNode00003122 + e24KC2ThetaAboveNode00003123 + +theorem e24KC2ThetaAboveNode0000313 : + adaptiveCoverCheck 12 (childHH (childLH (childHH thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHH thetaAboveCell0000))) + e24KC2ThetaAboveLeaf00003130 e24KC2ThetaAboveLeaf00003131 e24KC2ThetaAboveNode00003132 + e24KC2ThetaAboveNode00003133 + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Reconstruction of the upper theta cover +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +open CertificateCells1a75b359b5 + +theorem e24KC2ThetaAboveNode0000320 : + adaptiveCoverCheck 12 (childLL (childHL (childHH thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHH thetaAboveCell0000))) + e24KC2ThetaAboveNode00003200 e24KC2ThetaAboveNode00003201 e24KC2ThetaAboveNode00003202 + e24KC2ThetaAboveNode00003203 + +theorem e24KC2ThetaAboveNode0000321 : + adaptiveCoverCheck 12 (childLH (childHL (childHH thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHH thetaAboveCell0000))) + e24KC2ThetaAboveNode00003210 e24KC2ThetaAboveNode00003211 e24KC2ThetaAboveNode00003212 + e24KC2ThetaAboveNode00003213 + +theorem e24KC2ThetaAboveNode0000322 : + adaptiveCoverCheck 12 (childHL (childHL (childHH thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHH thetaAboveCell0000))) + e24KC2ThetaAboveLeaf00003220 e24KC2ThetaAboveLeaf00003221 e24KC2ThetaAboveLeaf00003222 + e24KC2ThetaAboveLeaf00003223 + +theorem e24KC2ThetaAboveNode0000323 : + adaptiveCoverCheck 12 (childHH (childHL (childHH thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHH thetaAboveCell0000))) + e24KC2ThetaAboveLeaf00003230 e24KC2ThetaAboveLeaf00003231 e24KC2ThetaAboveLeaf00003232 + e24KC2ThetaAboveLeaf00003233 + +theorem e24KC2ThetaAboveNode0000330 : + adaptiveCoverCheck 12 (childLL (childHH (childHH thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHH thetaAboveCell0000))) + e24KC2ThetaAboveNode00003300 e24KC2ThetaAboveNode00003301 e24KC2ThetaAboveNode00003302 + e24KC2ThetaAboveNode00003303 + +theorem e24KC2ThetaAboveNode0000331 : + adaptiveCoverCheck 12 (childLH (childHH (childHH thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHH thetaAboveCell0000))) + e24KC2ThetaAboveNode00003310 e24KC2ThetaAboveNode00003311 e24KC2ThetaAboveNode00003312 + e24KC2ThetaAboveNode00003313 + +theorem e24KC2ThetaAboveNode0000332 : + adaptiveCoverCheck 12 (childHL (childHH (childHH thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHH thetaAboveCell0000))) + e24KC2ThetaAboveLeaf00003320 e24KC2ThetaAboveLeaf00003321 e24KC2ThetaAboveLeaf00003322 + e24KC2ThetaAboveLeaf00003323 + +theorem e24KC2ThetaAboveNode0000333 : + adaptiveCoverCheck 12 (childHH (childHH (childHH thetaAboveCell0000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHH thetaAboveCell0000))) + e24KC2ThetaAboveLeaf00003330 e24KC2ThetaAboveLeaf00003331 e24KC2ThetaAboveLeaf00003332 + e24KC2ThetaAboveLeaf00003333 + +theorem e24KC2ThetaAboveNode0001202 : + adaptiveCoverCheck 12 (childHL (childLL (childHL thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHL thetaAboveCell0001))) + e24KC2ThetaAboveLeaf00012020 e24KC2ThetaAboveLeaf00012021 e24KC2ThetaAboveNode00012022 + e24KC2ThetaAboveNode00012023 + +theorem e24KC2ThetaAboveNode0001203 : + adaptiveCoverCheck 12 (childHH (childLL (childHL thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHL thetaAboveCell0001))) + e24KC2ThetaAboveLeaf00012030 e24KC2ThetaAboveLeaf00012031 e24KC2ThetaAboveNode00012032 + e24KC2ThetaAboveNode00012033 + +theorem e24KC2ThetaAboveNode0001212 : + adaptiveCoverCheck 12 (childHL (childLH (childHL thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHL thetaAboveCell0001))) + e24KC2ThetaAboveLeaf00012120 e24KC2ThetaAboveLeaf00012121 e24KC2ThetaAboveNode00012122 + e24KC2ThetaAboveNode00012123 + +theorem e24KC2ThetaAboveNode0001213 : + adaptiveCoverCheck 12 (childHH (childLH (childHL thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHL thetaAboveCell0001))) + e24KC2ThetaAboveLeaf00012130 e24KC2ThetaAboveLeaf00012131 e24KC2ThetaAboveNode00012132 + e24KC2ThetaAboveNode00012133 + +theorem e24KC2ThetaAboveNode0001220 : + adaptiveCoverCheck 12 (childLL (childHL (childHL thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHL thetaAboveCell0001))) + e24KC2ThetaAboveNode00012200 e24KC2ThetaAboveNode00012201 e24KC2ThetaAboveNode00012202 + e24KC2ThetaAboveNode00012203 + +theorem e24KC2ThetaAboveNode0001221 : + adaptiveCoverCheck 12 (childLH (childHL (childHL thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHL thetaAboveCell0001))) + e24KC2ThetaAboveNode00012210 e24KC2ThetaAboveNode00012211 e24KC2ThetaAboveNode00012212 + e24KC2ThetaAboveNode00012213 + +theorem e24KC2ThetaAboveNode0001222 : + adaptiveCoverCheck 12 (childHL (childHL (childHL thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHL thetaAboveCell0001))) + e24KC2ThetaAboveLeaf00012220 e24KC2ThetaAboveLeaf00012221 e24KC2ThetaAboveLeaf00012222 + e24KC2ThetaAboveLeaf00012223 + +theorem e24KC2ThetaAboveNode0001223 : + adaptiveCoverCheck 12 (childHH (childHL (childHL thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHL thetaAboveCell0001))) + e24KC2ThetaAboveLeaf00012230 e24KC2ThetaAboveLeaf00012231 e24KC2ThetaAboveLeaf00012232 + e24KC2ThetaAboveLeaf00012233 + +theorem e24KC2ThetaAboveNode0001230 : + adaptiveCoverCheck 12 (childLL (childHH (childHL thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHL thetaAboveCell0001))) + e24KC2ThetaAboveNode00012300 e24KC2ThetaAboveNode00012301 e24KC2ThetaAboveNode00012302 + e24KC2ThetaAboveNode00012303 + +theorem e24KC2ThetaAboveNode0001231 : + adaptiveCoverCheck 12 (childLH (childHH (childHL thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHL thetaAboveCell0001))) + e24KC2ThetaAboveNode00012310 e24KC2ThetaAboveNode00012311 e24KC2ThetaAboveNode00012312 + e24KC2ThetaAboveNode00012313 + +theorem e24KC2ThetaAboveNode0001232 : + adaptiveCoverCheck 12 (childHL (childHH (childHL thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHL thetaAboveCell0001))) + e24KC2ThetaAboveLeaf00012320 e24KC2ThetaAboveLeaf00012321 e24KC2ThetaAboveLeaf00012322 + e24KC2ThetaAboveLeaf00012323 + +theorem e24KC2ThetaAboveNode0001233 : + adaptiveCoverCheck 12 (childHH (childHH (childHL thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHL thetaAboveCell0001))) + e24KC2ThetaAboveLeaf00012330 e24KC2ThetaAboveLeaf00012331 e24KC2ThetaAboveLeaf00012332 + e24KC2ThetaAboveLeaf00012333 + +theorem e24KC2ThetaAboveNode0001302 : + adaptiveCoverCheck 12 (childHL (childLL (childHH thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHH thetaAboveCell0001))) + e24KC2ThetaAboveLeaf00013020 e24KC2ThetaAboveLeaf00013021 e24KC2ThetaAboveNode00013022 + e24KC2ThetaAboveNode00013023 + +theorem e24KC2ThetaAboveNode0001303 : + adaptiveCoverCheck 12 (childHH (childLL (childHH thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHH thetaAboveCell0001))) + e24KC2ThetaAboveLeaf00013030 e24KC2ThetaAboveLeaf00013031 e24KC2ThetaAboveNode00013032 + e24KC2ThetaAboveNode00013033 + +theorem e24KC2ThetaAboveNode0001312 : + adaptiveCoverCheck 12 (childHL (childLH (childHH thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHH thetaAboveCell0001))) + e24KC2ThetaAboveLeaf00013120 e24KC2ThetaAboveLeaf00013121 e24KC2ThetaAboveNode00013122 + e24KC2ThetaAboveNode00013123 + +theorem e24KC2ThetaAboveNode0001313 : + adaptiveCoverCheck 12 (childHH (childLH (childHH thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHH thetaAboveCell0001))) + e24KC2ThetaAboveLeaf00013130 e24KC2ThetaAboveLeaf00013131 e24KC2ThetaAboveNode00013132 + e24KC2ThetaAboveNode00013133 + +theorem e24KC2ThetaAboveNode0001320 : + adaptiveCoverCheck 12 (childLL (childHL (childHH thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHH thetaAboveCell0001))) + e24KC2ThetaAboveNode00013200 e24KC2ThetaAboveNode00013201 e24KC2ThetaAboveNode00013202 + e24KC2ThetaAboveNode00013203 + +theorem e24KC2ThetaAboveNode0001321 : + adaptiveCoverCheck 12 (childLH (childHL (childHH thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHH thetaAboveCell0001))) + e24KC2ThetaAboveNode00013210 e24KC2ThetaAboveNode00013211 e24KC2ThetaAboveNode00013212 + e24KC2ThetaAboveNode00013213 + +theorem e24KC2ThetaAboveNode0001322 : + adaptiveCoverCheck 12 (childHL (childHL (childHH thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHH thetaAboveCell0001))) + e24KC2ThetaAboveLeaf00013220 e24KC2ThetaAboveLeaf00013221 e24KC2ThetaAboveLeaf00013222 + e24KC2ThetaAboveLeaf00013223 + +theorem e24KC2ThetaAboveNode0001323 : + adaptiveCoverCheck 12 (childHH (childHL (childHH thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHH thetaAboveCell0001))) + e24KC2ThetaAboveLeaf00013230 e24KC2ThetaAboveLeaf00013231 e24KC2ThetaAboveLeaf00013232 + e24KC2ThetaAboveLeaf00013233 + +theorem e24KC2ThetaAboveNode0001330 : + adaptiveCoverCheck 12 (childLL (childHH (childHH thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHH thetaAboveCell0001))) + e24KC2ThetaAboveNode00013300 e24KC2ThetaAboveNode00013301 e24KC2ThetaAboveNode00013302 + e24KC2ThetaAboveNode00013303 + +theorem e24KC2ThetaAboveNode0001331 : + adaptiveCoverCheck 12 (childLH (childHH (childHH thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHH thetaAboveCell0001))) + e24KC2ThetaAboveNode00013310 e24KC2ThetaAboveNode00013311 e24KC2ThetaAboveNode00013312 + e24KC2ThetaAboveNode00013313 + +theorem e24KC2ThetaAboveNode0001332 : + adaptiveCoverCheck 12 (childHL (childHH (childHH thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHH thetaAboveCell0001))) + e24KC2ThetaAboveLeaf00013320 e24KC2ThetaAboveLeaf00013321 e24KC2ThetaAboveLeaf00013322 + e24KC2ThetaAboveLeaf00013323 + +theorem e24KC2ThetaAboveNode0001333 : + adaptiveCoverCheck 12 (childHH (childHH (childHH thetaAboveCell0001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHH thetaAboveCell0001))) + e24KC2ThetaAboveLeaf00013330 e24KC2ThetaAboveLeaf00013331 e24KC2ThetaAboveLeaf00013332 + e24KC2ThetaAboveLeaf00013333 + +theorem e24KC2ThetaAboveNode0010202 : + adaptiveCoverCheck 12 (childHL (childLL (childHL thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHL thetaAboveCell0010))) + e24KC2ThetaAboveLeaf00102020 e24KC2ThetaAboveLeaf00102021 e24KC2ThetaAboveNode00102022 + e24KC2ThetaAboveNode00102023 + +theorem e24KC2ThetaAboveNode0010203 : + adaptiveCoverCheck 12 (childHH (childLL (childHL thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHL thetaAboveCell0010))) + e24KC2ThetaAboveLeaf00102030 e24KC2ThetaAboveLeaf00102031 e24KC2ThetaAboveNode00102032 + e24KC2ThetaAboveNode00102033 + +theorem e24KC2ThetaAboveNode0010212 : + adaptiveCoverCheck 12 (childHL (childLH (childHL thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHL thetaAboveCell0010))) + e24KC2ThetaAboveLeaf00102120 e24KC2ThetaAboveLeaf00102121 e24KC2ThetaAboveNode00102122 + e24KC2ThetaAboveNode00102123 + +theorem e24KC2ThetaAboveNode0010213 : + adaptiveCoverCheck 12 (childHH (childLH (childHL thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHL thetaAboveCell0010))) + e24KC2ThetaAboveLeaf00102130 e24KC2ThetaAboveLeaf00102131 e24KC2ThetaAboveNode00102132 + e24KC2ThetaAboveNode00102133 + +theorem e24KC2ThetaAboveNode0010220 : + adaptiveCoverCheck 12 (childLL (childHL (childHL thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHL thetaAboveCell0010))) + e24KC2ThetaAboveNode00102200 e24KC2ThetaAboveNode00102201 e24KC2ThetaAboveNode00102202 + e24KC2ThetaAboveNode00102203 + +theorem e24KC2ThetaAboveNode0010221 : + adaptiveCoverCheck 12 (childLH (childHL (childHL thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHL thetaAboveCell0010))) + e24KC2ThetaAboveNode00102210 e24KC2ThetaAboveNode00102211 e24KC2ThetaAboveNode00102212 + e24KC2ThetaAboveNode00102213 + +theorem e24KC2ThetaAboveNode0010222 : + adaptiveCoverCheck 12 (childHL (childHL (childHL thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHL thetaAboveCell0010))) + e24KC2ThetaAboveLeaf00102220 e24KC2ThetaAboveLeaf00102221 e24KC2ThetaAboveLeaf00102222 + e24KC2ThetaAboveLeaf00102223 + +theorem e24KC2ThetaAboveNode0010223 : + adaptiveCoverCheck 12 (childHH (childHL (childHL thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHL thetaAboveCell0010))) + e24KC2ThetaAboveLeaf00102230 e24KC2ThetaAboveLeaf00102231 e24KC2ThetaAboveLeaf00102232 + e24KC2ThetaAboveLeaf00102233 + +theorem e24KC2ThetaAboveNode0010230 : + adaptiveCoverCheck 12 (childLL (childHH (childHL thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHL thetaAboveCell0010))) + e24KC2ThetaAboveNode00102300 e24KC2ThetaAboveNode00102301 e24KC2ThetaAboveNode00102302 + e24KC2ThetaAboveNode00102303 + +theorem e24KC2ThetaAboveNode0010231 : + adaptiveCoverCheck 12 (childLH (childHH (childHL thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHL thetaAboveCell0010))) + e24KC2ThetaAboveNode00102310 e24KC2ThetaAboveNode00102311 e24KC2ThetaAboveNode00102312 + e24KC2ThetaAboveNode00102313 + +theorem e24KC2ThetaAboveNode0010232 : + adaptiveCoverCheck 12 (childHL (childHH (childHL thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHL thetaAboveCell0010))) + e24KC2ThetaAboveLeaf00102320 e24KC2ThetaAboveLeaf00102321 e24KC2ThetaAboveLeaf00102322 + e24KC2ThetaAboveLeaf00102323 + +theorem e24KC2ThetaAboveNode0010233 : + adaptiveCoverCheck 12 (childHH (childHH (childHL thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHL thetaAboveCell0010))) + e24KC2ThetaAboveLeaf00102330 e24KC2ThetaAboveLeaf00102331 e24KC2ThetaAboveLeaf00102332 + e24KC2ThetaAboveLeaf00102333 + +theorem e24KC2ThetaAboveNode0010302 : + adaptiveCoverCheck 12 (childHL (childLL (childHH thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHH thetaAboveCell0010))) + e24KC2ThetaAboveLeaf00103020 e24KC2ThetaAboveLeaf00103021 e24KC2ThetaAboveLeaf00103022 + e24KC2ThetaAboveLeaf00103023 + +theorem e24KC2ThetaAboveNode0010303 : + adaptiveCoverCheck 12 (childHH (childLL (childHH thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHH thetaAboveCell0010))) + e24KC2ThetaAboveLeaf00103030 e24KC2ThetaAboveLeaf00103031 e24KC2ThetaAboveLeaf00103032 + e24KC2ThetaAboveLeaf00103033 + +theorem e24KC2ThetaAboveNode0010312 : + adaptiveCoverCheck 12 (childHL (childLH (childHH thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHH thetaAboveCell0010))) + e24KC2ThetaAboveLeaf00103120 e24KC2ThetaAboveLeaf00103121 e24KC2ThetaAboveLeaf00103122 + e24KC2ThetaAboveLeaf00103123 + +theorem e24KC2ThetaAboveNode0010313 : + adaptiveCoverCheck 12 (childHH (childLH (childHH thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHH thetaAboveCell0010))) + e24KC2ThetaAboveLeaf00103130 e24KC2ThetaAboveLeaf00103131 e24KC2ThetaAboveLeaf00103132 + e24KC2ThetaAboveLeaf00103133 + +theorem e24KC2ThetaAboveNode0010320 : + adaptiveCoverCheck 12 (childLL (childHL (childHH thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHH thetaAboveCell0010))) + e24KC2ThetaAboveNode00103200 e24KC2ThetaAboveNode00103201 e24KC2ThetaAboveNode00103202 + e24KC2ThetaAboveNode00103203 + +theorem e24KC2ThetaAboveNode0010321 : + adaptiveCoverCheck 12 (childLH (childHL (childHH thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHH thetaAboveCell0010))) + e24KC2ThetaAboveNode00103210 e24KC2ThetaAboveNode00103211 e24KC2ThetaAboveNode00103212 + e24KC2ThetaAboveNode00103213 + +theorem e24KC2ThetaAboveNode0010322 : + adaptiveCoverCheck 12 (childHL (childHL (childHH thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHH thetaAboveCell0010))) + e24KC2ThetaAboveLeaf00103220 e24KC2ThetaAboveLeaf00103221 e24KC2ThetaAboveLeaf00103222 + e24KC2ThetaAboveLeaf00103223 + +theorem e24KC2ThetaAboveNode0010323 : + adaptiveCoverCheck 12 (childHH (childHL (childHH thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHH thetaAboveCell0010))) + e24KC2ThetaAboveLeaf00103230 e24KC2ThetaAboveLeaf00103231 e24KC2ThetaAboveLeaf00103232 + e24KC2ThetaAboveLeaf00103233 + +theorem e24KC2ThetaAboveNode0010330 : + adaptiveCoverCheck 12 (childLL (childHH (childHH thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHH thetaAboveCell0010))) + e24KC2ThetaAboveNode00103300 e24KC2ThetaAboveNode00103301 e24KC2ThetaAboveNode00103302 + e24KC2ThetaAboveNode00103303 + +theorem e24KC2ThetaAboveNode0010331 : + adaptiveCoverCheck 12 (childLH (childHH (childHH thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHH thetaAboveCell0010))) + e24KC2ThetaAboveNode00103310 e24KC2ThetaAboveNode00103311 e24KC2ThetaAboveNode00103312 + e24KC2ThetaAboveNode00103313 + +theorem e24KC2ThetaAboveNode0010332 : + adaptiveCoverCheck 12 (childHL (childHH (childHH thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHH thetaAboveCell0010))) + e24KC2ThetaAboveLeaf00103320 e24KC2ThetaAboveLeaf00103321 e24KC2ThetaAboveLeaf00103322 + e24KC2ThetaAboveLeaf00103323 + +theorem e24KC2ThetaAboveNode0010333 : + adaptiveCoverCheck 12 (childHH (childHH (childHH thetaAboveCell0010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHH thetaAboveCell0010))) + e24KC2ThetaAboveLeaf00103330 e24KC2ThetaAboveLeaf00103331 e24KC2ThetaAboveLeaf00103332 + e24KC2ThetaAboveLeaf00103333 + +theorem e24KC2ThetaAboveNode0011202 : + adaptiveCoverCheck 12 (childHL (childLL (childHL thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHL thetaAboveCell0011))) + e24KC2ThetaAboveLeaf00112020 e24KC2ThetaAboveLeaf00112021 e24KC2ThetaAboveLeaf00112022 + e24KC2ThetaAboveLeaf00112023 + +theorem e24KC2ThetaAboveNode0011203 : + adaptiveCoverCheck 12 (childHH (childLL (childHL thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHL thetaAboveCell0011))) + e24KC2ThetaAboveLeaf00112030 e24KC2ThetaAboveLeaf00112031 e24KC2ThetaAboveLeaf00112032 + e24KC2ThetaAboveLeaf00112033 + +theorem e24KC2ThetaAboveNode0011212 : + adaptiveCoverCheck 12 (childHL (childLH (childHL thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHL thetaAboveCell0011))) + e24KC2ThetaAboveLeaf00112120 e24KC2ThetaAboveLeaf00112121 e24KC2ThetaAboveLeaf00112122 + e24KC2ThetaAboveLeaf00112123 + +theorem e24KC2ThetaAboveNode0011213 : + adaptiveCoverCheck 12 (childHH (childLH (childHL thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHL thetaAboveCell0011))) + e24KC2ThetaAboveLeaf00112130 e24KC2ThetaAboveLeaf00112131 e24KC2ThetaAboveLeaf00112132 + e24KC2ThetaAboveLeaf00112133 + +theorem e24KC2ThetaAboveNode0011220 : + adaptiveCoverCheck 12 (childLL (childHL (childHL thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHL thetaAboveCell0011))) + e24KC2ThetaAboveNode00112200 e24KC2ThetaAboveNode00112201 e24KC2ThetaAboveNode00112202 + e24KC2ThetaAboveNode00112203 + +theorem e24KC2ThetaAboveNode0011221 : + adaptiveCoverCheck 12 (childLH (childHL (childHL thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHL thetaAboveCell0011))) + e24KC2ThetaAboveNode00112210 e24KC2ThetaAboveNode00112211 e24KC2ThetaAboveNode00112212 + e24KC2ThetaAboveNode00112213 + +theorem e24KC2ThetaAboveNode0011222 : + adaptiveCoverCheck 12 (childHL (childHL (childHL thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHL thetaAboveCell0011))) + e24KC2ThetaAboveLeaf00112220 e24KC2ThetaAboveLeaf00112221 e24KC2ThetaAboveLeaf00112222 + e24KC2ThetaAboveLeaf00112223 + +theorem e24KC2ThetaAboveNode0011223 : + adaptiveCoverCheck 12 (childHH (childHL (childHL thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHL thetaAboveCell0011))) + e24KC2ThetaAboveLeaf00112230 e24KC2ThetaAboveLeaf00112231 e24KC2ThetaAboveLeaf00112232 + e24KC2ThetaAboveLeaf00112233 + +theorem e24KC2ThetaAboveNode0011230 : + adaptiveCoverCheck 12 (childLL (childHH (childHL thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHL thetaAboveCell0011))) + e24KC2ThetaAboveNode00112300 e24KC2ThetaAboveNode00112301 e24KC2ThetaAboveNode00112302 + e24KC2ThetaAboveNode00112303 + +theorem e24KC2ThetaAboveNode0011231 : + adaptiveCoverCheck 12 (childLH (childHH (childHL thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHL thetaAboveCell0011))) + e24KC2ThetaAboveNode00112310 e24KC2ThetaAboveNode00112311 e24KC2ThetaAboveNode00112312 + e24KC2ThetaAboveNode00112313 + +theorem e24KC2ThetaAboveNode0011232 : + adaptiveCoverCheck 12 (childHL (childHH (childHL thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHL thetaAboveCell0011))) + e24KC2ThetaAboveLeaf00112320 e24KC2ThetaAboveLeaf00112321 e24KC2ThetaAboveLeaf00112322 + e24KC2ThetaAboveLeaf00112323 + +theorem e24KC2ThetaAboveNode0011233 : + adaptiveCoverCheck 12 (childHH (childHH (childHL thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHL thetaAboveCell0011))) + e24KC2ThetaAboveLeaf00112330 e24KC2ThetaAboveLeaf00112331 e24KC2ThetaAboveLeaf00112332 + e24KC2ThetaAboveLeaf00112333 + +theorem e24KC2ThetaAboveNode0011302 : + adaptiveCoverCheck 12 (childHL (childLL (childHH thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHH thetaAboveCell0011))) + e24KC2ThetaAboveLeaf00113020 e24KC2ThetaAboveLeaf00113021 e24KC2ThetaAboveLeaf00113022 + e24KC2ThetaAboveLeaf00113023 + +theorem e24KC2ThetaAboveNode0011303 : + adaptiveCoverCheck 12 (childHH (childLL (childHH thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHH thetaAboveCell0011))) + e24KC2ThetaAboveLeaf00113030 e24KC2ThetaAboveLeaf00113031 e24KC2ThetaAboveLeaf00113032 + e24KC2ThetaAboveLeaf00113033 + +theorem e24KC2ThetaAboveNode0011312 : + adaptiveCoverCheck 12 (childHL (childLH (childHH thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHH thetaAboveCell0011))) + e24KC2ThetaAboveLeaf00113120 e24KC2ThetaAboveLeaf00113121 e24KC2ThetaAboveLeaf00113122 + e24KC2ThetaAboveLeaf00113123 + +theorem e24KC2ThetaAboveNode0011313 : + adaptiveCoverCheck 12 (childHH (childLH (childHH thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHH thetaAboveCell0011))) + e24KC2ThetaAboveLeaf00113130 e24KC2ThetaAboveLeaf00113131 e24KC2ThetaAboveLeaf00113132 + e24KC2ThetaAboveLeaf00113133 + +theorem e24KC2ThetaAboveNode0011320 : + adaptiveCoverCheck 12 (childLL (childHL (childHH thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHH thetaAboveCell0011))) + e24KC2ThetaAboveNode00113200 e24KC2ThetaAboveNode00113201 e24KC2ThetaAboveNode00113202 + e24KC2ThetaAboveNode00113203 + +theorem e24KC2ThetaAboveNode0011321 : + adaptiveCoverCheck 12 (childLH (childHL (childHH thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHH thetaAboveCell0011))) + e24KC2ThetaAboveNode00113210 e24KC2ThetaAboveNode00113211 e24KC2ThetaAboveNode00113212 + e24KC2ThetaAboveNode00113213 + +theorem e24KC2ThetaAboveNode0011322 : + adaptiveCoverCheck 12 (childHL (childHL (childHH thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHH thetaAboveCell0011))) + e24KC2ThetaAboveLeaf00113220 e24KC2ThetaAboveLeaf00113221 e24KC2ThetaAboveLeaf00113222 + e24KC2ThetaAboveLeaf00113223 + +theorem e24KC2ThetaAboveNode0011323 : + adaptiveCoverCheck 12 (childHH (childHL (childHH thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHH thetaAboveCell0011))) + e24KC2ThetaAboveLeaf00113230 e24KC2ThetaAboveLeaf00113231 e24KC2ThetaAboveLeaf00113232 + e24KC2ThetaAboveLeaf00113233 + +theorem e24KC2ThetaAboveNode0011330 : + adaptiveCoverCheck 12 (childLL (childHH (childHH thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHH thetaAboveCell0011))) + e24KC2ThetaAboveNode00113300 e24KC2ThetaAboveNode00113301 e24KC2ThetaAboveNode00113302 + e24KC2ThetaAboveNode00113303 + +theorem e24KC2ThetaAboveNode0011331 : + adaptiveCoverCheck 12 (childLH (childHH (childHH thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHH thetaAboveCell0011))) + e24KC2ThetaAboveNode00113310 e24KC2ThetaAboveNode00113311 e24KC2ThetaAboveNode00113312 + e24KC2ThetaAboveNode00113313 + +theorem e24KC2ThetaAboveNode0011332 : + adaptiveCoverCheck 12 (childHL (childHH (childHH thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHH thetaAboveCell0011))) + e24KC2ThetaAboveLeaf00113320 e24KC2ThetaAboveLeaf00113321 e24KC2ThetaAboveLeaf00113322 + e24KC2ThetaAboveLeaf00113323 + +theorem e24KC2ThetaAboveNode0011333 : + adaptiveCoverCheck 12 (childHH (childHH (childHH thetaAboveCell0011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHH thetaAboveCell0011))) + e24KC2ThetaAboveLeaf00113330 e24KC2ThetaAboveLeaf00113331 e24KC2ThetaAboveLeaf00113332 + e24KC2ThetaAboveLeaf00113333 + +theorem e24KC2ThetaAboveNode0100202 : + adaptiveCoverCheck 12 (childHL (childLL (childHL thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHL thetaAboveCell0100))) + e24KC2ThetaAboveLeaf01002020 e24KC2ThetaAboveLeaf01002021 e24KC2ThetaAboveLeaf01002022 + e24KC2ThetaAboveLeaf01002023 + +theorem e24KC2ThetaAboveNode0100203 : + adaptiveCoverCheck 12 (childHH (childLL (childHL thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHL thetaAboveCell0100))) + e24KC2ThetaAboveLeaf01002030 e24KC2ThetaAboveLeaf01002031 e24KC2ThetaAboveLeaf01002032 + e24KC2ThetaAboveLeaf01002033 + +theorem e24KC2ThetaAboveNode0100212 : + adaptiveCoverCheck 12 (childHL (childLH (childHL thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHL thetaAboveCell0100))) + e24KC2ThetaAboveLeaf01002120 e24KC2ThetaAboveLeaf01002121 e24KC2ThetaAboveLeaf01002122 + e24KC2ThetaAboveLeaf01002123 + +theorem e24KC2ThetaAboveNode0100213 : + adaptiveCoverCheck 12 (childHH (childLH (childHL thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHL thetaAboveCell0100))) + e24KC2ThetaAboveLeaf01002130 e24KC2ThetaAboveLeaf01002131 e24KC2ThetaAboveLeaf01002132 + e24KC2ThetaAboveLeaf01002133 + +theorem e24KC2ThetaAboveNode0100220 : + adaptiveCoverCheck 12 (childLL (childHL (childHL thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHL thetaAboveCell0100))) + e24KC2ThetaAboveNode01002200 e24KC2ThetaAboveNode01002201 e24KC2ThetaAboveNode01002202 + e24KC2ThetaAboveNode01002203 + +theorem e24KC2ThetaAboveNode0100221 : + adaptiveCoverCheck 12 (childLH (childHL (childHL thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHL thetaAboveCell0100))) + e24KC2ThetaAboveNode01002210 e24KC2ThetaAboveNode01002211 e24KC2ThetaAboveNode01002212 + e24KC2ThetaAboveNode01002213 + +theorem e24KC2ThetaAboveNode0100222 : + adaptiveCoverCheck 12 (childHL (childHL (childHL thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHL thetaAboveCell0100))) + e24KC2ThetaAboveLeaf01002220 e24KC2ThetaAboveLeaf01002221 e24KC2ThetaAboveLeaf01002222 + e24KC2ThetaAboveLeaf01002223 + +theorem e24KC2ThetaAboveNode0100223 : + adaptiveCoverCheck 12 (childHH (childHL (childHL thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHL thetaAboveCell0100))) + e24KC2ThetaAboveLeaf01002230 e24KC2ThetaAboveLeaf01002231 e24KC2ThetaAboveLeaf01002232 + e24KC2ThetaAboveLeaf01002233 + +theorem e24KC2ThetaAboveNode0100230 : + adaptiveCoverCheck 12 (childLL (childHH (childHL thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHL thetaAboveCell0100))) + e24KC2ThetaAboveNode01002300 e24KC2ThetaAboveNode01002301 e24KC2ThetaAboveNode01002302 + e24KC2ThetaAboveNode01002303 + +theorem e24KC2ThetaAboveNode0100231 : + adaptiveCoverCheck 12 (childLH (childHH (childHL thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHL thetaAboveCell0100))) + e24KC2ThetaAboveNode01002310 e24KC2ThetaAboveNode01002311 e24KC2ThetaAboveNode01002312 + e24KC2ThetaAboveNode01002313 + +theorem e24KC2ThetaAboveNode0100232 : + adaptiveCoverCheck 12 (childHL (childHH (childHL thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHL thetaAboveCell0100))) + e24KC2ThetaAboveLeaf01002320 e24KC2ThetaAboveLeaf01002321 e24KC2ThetaAboveLeaf01002322 + e24KC2ThetaAboveLeaf01002323 + +theorem e24KC2ThetaAboveNode0100233 : + adaptiveCoverCheck 12 (childHH (childHH (childHL thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHL thetaAboveCell0100))) + e24KC2ThetaAboveLeaf01002330 e24KC2ThetaAboveLeaf01002331 e24KC2ThetaAboveLeaf01002332 + e24KC2ThetaAboveLeaf01002333 + +theorem e24KC2ThetaAboveNode0100302 : + adaptiveCoverCheck 12 (childHL (childLL (childHH thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHH thetaAboveCell0100))) + e24KC2ThetaAboveLeaf01003020 e24KC2ThetaAboveLeaf01003021 e24KC2ThetaAboveLeaf01003022 + e24KC2ThetaAboveLeaf01003023 + +theorem e24KC2ThetaAboveNode0100303 : + adaptiveCoverCheck 12 (childHH (childLL (childHH thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHH thetaAboveCell0100))) + e24KC2ThetaAboveLeaf01003030 e24KC2ThetaAboveLeaf01003031 e24KC2ThetaAboveLeaf01003032 + e24KC2ThetaAboveLeaf01003033 + +theorem e24KC2ThetaAboveNode0100312 : + adaptiveCoverCheck 12 (childHL (childLH (childHH thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHH thetaAboveCell0100))) + e24KC2ThetaAboveLeaf01003120 e24KC2ThetaAboveLeaf01003121 e24KC2ThetaAboveLeaf01003122 + e24KC2ThetaAboveLeaf01003123 + +theorem e24KC2ThetaAboveNode0100313 : + adaptiveCoverCheck 12 (childHH (childLH (childHH thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHH thetaAboveCell0100))) + e24KC2ThetaAboveLeaf01003130 e24KC2ThetaAboveLeaf01003131 e24KC2ThetaAboveLeaf01003132 + e24KC2ThetaAboveLeaf01003133 + +theorem e24KC2ThetaAboveNode0100320 : + adaptiveCoverCheck 12 (childLL (childHL (childHH thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHH thetaAboveCell0100))) + e24KC2ThetaAboveNode01003200 e24KC2ThetaAboveNode01003201 e24KC2ThetaAboveNode01003202 + e24KC2ThetaAboveNode01003203 + +theorem e24KC2ThetaAboveNode0100321 : + adaptiveCoverCheck 12 (childLH (childHL (childHH thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHH thetaAboveCell0100))) + e24KC2ThetaAboveNode01003210 e24KC2ThetaAboveNode01003211 e24KC2ThetaAboveNode01003212 + e24KC2ThetaAboveNode01003213 + +theorem e24KC2ThetaAboveNode0100322 : + adaptiveCoverCheck 12 (childHL (childHL (childHH thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHH thetaAboveCell0100))) + e24KC2ThetaAboveLeaf01003220 e24KC2ThetaAboveLeaf01003221 e24KC2ThetaAboveLeaf01003222 + e24KC2ThetaAboveLeaf01003223 + +theorem e24KC2ThetaAboveNode0100323 : + adaptiveCoverCheck 12 (childHH (childHL (childHH thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHH thetaAboveCell0100))) + e24KC2ThetaAboveLeaf01003230 e24KC2ThetaAboveLeaf01003231 e24KC2ThetaAboveLeaf01003232 + e24KC2ThetaAboveLeaf01003233 + +theorem e24KC2ThetaAboveNode0100330 : + adaptiveCoverCheck 12 (childLL (childHH (childHH thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHH thetaAboveCell0100))) + e24KC2ThetaAboveNode01003300 e24KC2ThetaAboveNode01003301 e24KC2ThetaAboveNode01003302 + e24KC2ThetaAboveNode01003303 + +theorem e24KC2ThetaAboveNode0100331 : + adaptiveCoverCheck 12 (childLH (childHH (childHH thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHH thetaAboveCell0100))) + e24KC2ThetaAboveNode01003310 e24KC2ThetaAboveNode01003311 e24KC2ThetaAboveNode01003312 + e24KC2ThetaAboveNode01003313 + +theorem e24KC2ThetaAboveNode0100332 : + adaptiveCoverCheck 12 (childHL (childHH (childHH thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHH thetaAboveCell0100))) + e24KC2ThetaAboveLeaf01003320 e24KC2ThetaAboveLeaf01003321 e24KC2ThetaAboveLeaf01003322 + e24KC2ThetaAboveLeaf01003323 + +theorem e24KC2ThetaAboveNode0100333 : + adaptiveCoverCheck 12 (childHH (childHH (childHH thetaAboveCell0100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHH thetaAboveCell0100))) + e24KC2ThetaAboveNode01003330 e24KC2ThetaAboveNode01003331 e24KC2ThetaAboveLeaf01003332 + e24KC2ThetaAboveLeaf01003333 + +theorem e24KC2ThetaAboveNode0101202 : + adaptiveCoverCheck 12 (childHL (childLL (childHL thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHL thetaAboveCell0101))) + e24KC2ThetaAboveLeaf01012020 e24KC2ThetaAboveLeaf01012021 e24KC2ThetaAboveLeaf01012022 + e24KC2ThetaAboveLeaf01012023 + +theorem e24KC2ThetaAboveNode0101203 : + adaptiveCoverCheck 12 (childHH (childLL (childHL thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHL thetaAboveCell0101))) + e24KC2ThetaAboveLeaf01012030 e24KC2ThetaAboveLeaf01012031 e24KC2ThetaAboveLeaf01012032 + e24KC2ThetaAboveLeaf01012033 + +theorem e24KC2ThetaAboveNode0101212 : + adaptiveCoverCheck 12 (childHL (childLH (childHL thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHL thetaAboveCell0101))) + e24KC2ThetaAboveLeaf01012120 e24KC2ThetaAboveLeaf01012121 e24KC2ThetaAboveLeaf01012122 + e24KC2ThetaAboveLeaf01012123 + +theorem e24KC2ThetaAboveNode0101213 : + adaptiveCoverCheck 12 (childHH (childLH (childHL thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHL thetaAboveCell0101))) + e24KC2ThetaAboveLeaf01012130 e24KC2ThetaAboveLeaf01012131 e24KC2ThetaAboveLeaf01012132 + e24KC2ThetaAboveLeaf01012133 + +theorem e24KC2ThetaAboveNode0101220 : + adaptiveCoverCheck 12 (childLL (childHL (childHL thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHL thetaAboveCell0101))) + e24KC2ThetaAboveNode01012200 e24KC2ThetaAboveNode01012201 e24KC2ThetaAboveNode01012202 + e24KC2ThetaAboveNode01012203 + +theorem e24KC2ThetaAboveNode0101221 : + adaptiveCoverCheck 12 (childLH (childHL (childHL thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHL thetaAboveCell0101))) + e24KC2ThetaAboveNode01012210 e24KC2ThetaAboveNode01012211 e24KC2ThetaAboveNode01012212 + e24KC2ThetaAboveNode01012213 + +theorem e24KC2ThetaAboveNode0101222 : + adaptiveCoverCheck 12 (childHL (childHL (childHL thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHL thetaAboveCell0101))) + e24KC2ThetaAboveNode01012220 e24KC2ThetaAboveNode01012221 e24KC2ThetaAboveLeaf01012222 + e24KC2ThetaAboveLeaf01012223 + +theorem e24KC2ThetaAboveNode0101223 : + adaptiveCoverCheck 12 (childHH (childHL (childHL thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHL thetaAboveCell0101))) + e24KC2ThetaAboveNode01012230 e24KC2ThetaAboveNode01012231 e24KC2ThetaAboveLeaf01012232 + e24KC2ThetaAboveLeaf01012233 + +theorem e24KC2ThetaAboveNode0101230 : + adaptiveCoverCheck 12 (childLL (childHH (childHL thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHL thetaAboveCell0101))) + e24KC2ThetaAboveNode01012300 e24KC2ThetaAboveNode01012301 e24KC2ThetaAboveNode01012302 + e24KC2ThetaAboveNode01012303 + +theorem e24KC2ThetaAboveNode0101231 : + adaptiveCoverCheck 12 (childLH (childHH (childHL thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHL thetaAboveCell0101))) + e24KC2ThetaAboveNode01012310 e24KC2ThetaAboveNode01012311 e24KC2ThetaAboveNode01012312 + e24KC2ThetaAboveNode01012313 + +theorem e24KC2ThetaAboveNode0101232 : + adaptiveCoverCheck 12 (childHL (childHH (childHL thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHL thetaAboveCell0101))) + e24KC2ThetaAboveNode01012320 e24KC2ThetaAboveNode01012321 e24KC2ThetaAboveLeaf01012322 + e24KC2ThetaAboveLeaf01012323 + +theorem e24KC2ThetaAboveNode0101233 : + adaptiveCoverCheck 12 (childHH (childHH (childHL thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHL thetaAboveCell0101))) + e24KC2ThetaAboveNode01012330 e24KC2ThetaAboveNode01012331 e24KC2ThetaAboveLeaf01012332 + e24KC2ThetaAboveLeaf01012333 + +theorem e24KC2ThetaAboveNode0101302 : + adaptiveCoverCheck 12 (childHL (childLL (childHH thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHH thetaAboveCell0101))) + e24KC2ThetaAboveLeaf01013020 e24KC2ThetaAboveLeaf01013021 e24KC2ThetaAboveLeaf01013022 + e24KC2ThetaAboveLeaf01013023 + +theorem e24KC2ThetaAboveNode0101303 : + adaptiveCoverCheck 12 (childHH (childLL (childHH thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHH thetaAboveCell0101))) + e24KC2ThetaAboveLeaf01013030 e24KC2ThetaAboveLeaf01013031 e24KC2ThetaAboveLeaf01013032 + e24KC2ThetaAboveLeaf01013033 + +theorem e24KC2ThetaAboveNode0101312 : + adaptiveCoverCheck 12 (childHL (childLH (childHH thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHH thetaAboveCell0101))) + e24KC2ThetaAboveLeaf01013120 e24KC2ThetaAboveLeaf01013121 e24KC2ThetaAboveLeaf01013122 + e24KC2ThetaAboveLeaf01013123 + +theorem e24KC2ThetaAboveNode0101313 : + adaptiveCoverCheck 12 (childHH (childLH (childHH thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHH thetaAboveCell0101))) + e24KC2ThetaAboveLeaf01013130 e24KC2ThetaAboveLeaf01013131 e24KC2ThetaAboveLeaf01013132 + e24KC2ThetaAboveLeaf01013133 + +theorem e24KC2ThetaAboveNode0101320 : + adaptiveCoverCheck 12 (childLL (childHL (childHH thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHH thetaAboveCell0101))) + e24KC2ThetaAboveNode01013200 e24KC2ThetaAboveNode01013201 e24KC2ThetaAboveNode01013202 + e24KC2ThetaAboveNode01013203 + +theorem e24KC2ThetaAboveNode0101321 : + adaptiveCoverCheck 12 (childLH (childHL (childHH thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHH thetaAboveCell0101))) + e24KC2ThetaAboveNode01013210 e24KC2ThetaAboveNode01013211 e24KC2ThetaAboveNode01013212 + e24KC2ThetaAboveNode01013213 + +theorem e24KC2ThetaAboveNode0101322 : + adaptiveCoverCheck 12 (childHL (childHL (childHH thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHH thetaAboveCell0101))) + e24KC2ThetaAboveNode01013220 e24KC2ThetaAboveNode01013221 e24KC2ThetaAboveLeaf01013222 + e24KC2ThetaAboveLeaf01013223 + +theorem e24KC2ThetaAboveNode0101323 : + adaptiveCoverCheck 12 (childHH (childHL (childHH thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHH thetaAboveCell0101))) + e24KC2ThetaAboveNode01013230 e24KC2ThetaAboveNode01013231 e24KC2ThetaAboveLeaf01013232 + e24KC2ThetaAboveLeaf01013233 + +theorem e24KC2ThetaAboveNode0101330 : + adaptiveCoverCheck 12 (childLL (childHH (childHH thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHH thetaAboveCell0101))) + e24KC2ThetaAboveNode01013300 e24KC2ThetaAboveNode01013301 e24KC2ThetaAboveNode01013302 + e24KC2ThetaAboveNode01013303 + +theorem e24KC2ThetaAboveNode0101331 : + adaptiveCoverCheck 12 (childLH (childHH (childHH thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHH thetaAboveCell0101))) + e24KC2ThetaAboveNode01013310 e24KC2ThetaAboveNode01013311 e24KC2ThetaAboveNode01013312 + e24KC2ThetaAboveNode01013313 + +theorem e24KC2ThetaAboveNode0101332 : + adaptiveCoverCheck 12 (childHL (childHH (childHH thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHH thetaAboveCell0101))) + e24KC2ThetaAboveNode01013320 e24KC2ThetaAboveNode01013321 e24KC2ThetaAboveLeaf01013322 + e24KC2ThetaAboveLeaf01013323 + +theorem e24KC2ThetaAboveNode0101333 : + adaptiveCoverCheck 12 (childHH (childHH (childHH thetaAboveCell0101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHH thetaAboveCell0101))) + e24KC2ThetaAboveNode01013330 e24KC2ThetaAboveNode01013331 e24KC2ThetaAboveLeaf01013332 + e24KC2ThetaAboveLeaf01013333 + +theorem e24KC2ThetaAboveNode0110202 : + adaptiveCoverCheck 12 (childHL (childLL (childHL thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHL thetaAboveCell0110))) + e24KC2ThetaAboveLeaf01102020 e24KC2ThetaAboveLeaf01102021 e24KC2ThetaAboveLeaf01102022 + e24KC2ThetaAboveLeaf01102023 + +theorem e24KC2ThetaAboveNode0110203 : + adaptiveCoverCheck 12 (childHH (childLL (childHL thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHL thetaAboveCell0110))) + e24KC2ThetaAboveLeaf01102030 e24KC2ThetaAboveLeaf01102031 e24KC2ThetaAboveLeaf01102032 + e24KC2ThetaAboveLeaf01102033 + +theorem e24KC2ThetaAboveNode0110212 : + adaptiveCoverCheck 12 (childHL (childLH (childHL thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHL thetaAboveCell0110))) + e24KC2ThetaAboveLeaf01102120 e24KC2ThetaAboveLeaf01102121 e24KC2ThetaAboveLeaf01102122 + e24KC2ThetaAboveLeaf01102123 + +theorem e24KC2ThetaAboveNode0110213 : + adaptiveCoverCheck 12 (childHH (childLH (childHL thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHL thetaAboveCell0110))) + e24KC2ThetaAboveLeaf01102130 e24KC2ThetaAboveLeaf01102131 e24KC2ThetaAboveLeaf01102132 + e24KC2ThetaAboveLeaf01102133 + +theorem e24KC2ThetaAboveNode0110220 : + adaptiveCoverCheck 12 (childLL (childHL (childHL thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHL thetaAboveCell0110))) + e24KC2ThetaAboveNode01102200 e24KC2ThetaAboveNode01102201 e24KC2ThetaAboveNode01102202 + e24KC2ThetaAboveNode01102203 + +theorem e24KC2ThetaAboveNode0110221 : + adaptiveCoverCheck 12 (childLH (childHL (childHL thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHL thetaAboveCell0110))) + e24KC2ThetaAboveNode01102210 e24KC2ThetaAboveNode01102211 e24KC2ThetaAboveNode01102212 + e24KC2ThetaAboveNode01102213 + +theorem e24KC2ThetaAboveNode0110222 : + adaptiveCoverCheck 12 (childHL (childHL (childHL thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHL thetaAboveCell0110))) + e24KC2ThetaAboveNode01102220 e24KC2ThetaAboveNode01102221 e24KC2ThetaAboveLeaf01102222 + e24KC2ThetaAboveLeaf01102223 + +theorem e24KC2ThetaAboveNode0110223 : + adaptiveCoverCheck 12 (childHH (childHL (childHL thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHL thetaAboveCell0110))) + e24KC2ThetaAboveNode01102230 e24KC2ThetaAboveNode01102231 e24KC2ThetaAboveLeaf01102232 + e24KC2ThetaAboveLeaf01102233 + +theorem e24KC2ThetaAboveNode0110230 : + adaptiveCoverCheck 12 (childLL (childHH (childHL thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHL thetaAboveCell0110))) + e24KC2ThetaAboveNode01102300 e24KC2ThetaAboveNode01102301 e24KC2ThetaAboveNode01102302 + e24KC2ThetaAboveNode01102303 + +theorem e24KC2ThetaAboveNode0110231 : + adaptiveCoverCheck 12 (childLH (childHH (childHL thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHL thetaAboveCell0110))) + e24KC2ThetaAboveNode01102310 e24KC2ThetaAboveNode01102311 e24KC2ThetaAboveNode01102312 + e24KC2ThetaAboveNode01102313 + +theorem e24KC2ThetaAboveNode0110232 : + adaptiveCoverCheck 12 (childHL (childHH (childHL thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHL thetaAboveCell0110))) + e24KC2ThetaAboveNode01102320 e24KC2ThetaAboveNode01102321 e24KC2ThetaAboveLeaf01102322 + e24KC2ThetaAboveLeaf01102323 + +theorem e24KC2ThetaAboveNode0110233 : + adaptiveCoverCheck 12 (childHH (childHH (childHL thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHL thetaAboveCell0110))) + e24KC2ThetaAboveNode01102330 e24KC2ThetaAboveNode01102331 e24KC2ThetaAboveLeaf01102332 + e24KC2ThetaAboveLeaf01102333 + +theorem e24KC2ThetaAboveNode0110302 : + adaptiveCoverCheck 12 (childHL (childLL (childHH thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHH thetaAboveCell0110))) + e24KC2ThetaAboveLeaf01103020 e24KC2ThetaAboveLeaf01103021 e24KC2ThetaAboveLeaf01103022 + e24KC2ThetaAboveLeaf01103023 + +theorem e24KC2ThetaAboveNode0110303 : + adaptiveCoverCheck 12 (childHH (childLL (childHH thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHH thetaAboveCell0110))) + e24KC2ThetaAboveLeaf01103030 e24KC2ThetaAboveLeaf01103031 e24KC2ThetaAboveLeaf01103032 + e24KC2ThetaAboveLeaf01103033 + +theorem e24KC2ThetaAboveNode0110312 : + adaptiveCoverCheck 12 (childHL (childLH (childHH thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHH thetaAboveCell0110))) + e24KC2ThetaAboveLeaf01103120 e24KC2ThetaAboveLeaf01103121 e24KC2ThetaAboveLeaf01103122 + e24KC2ThetaAboveLeaf01103123 + +theorem e24KC2ThetaAboveNode0110313 : + adaptiveCoverCheck 12 (childHH (childLH (childHH thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHH thetaAboveCell0110))) + e24KC2ThetaAboveLeaf01103130 e24KC2ThetaAboveLeaf01103131 e24KC2ThetaAboveLeaf01103132 + e24KC2ThetaAboveLeaf01103133 + +theorem e24KC2ThetaAboveNode0110320 : + adaptiveCoverCheck 12 (childLL (childHL (childHH thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHH thetaAboveCell0110))) + e24KC2ThetaAboveNode01103200 e24KC2ThetaAboveNode01103201 e24KC2ThetaAboveNode01103202 + e24KC2ThetaAboveNode01103203 + +theorem e24KC2ThetaAboveNode0110321 : + adaptiveCoverCheck 12 (childLH (childHL (childHH thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHH thetaAboveCell0110))) + e24KC2ThetaAboveNode01103210 e24KC2ThetaAboveNode01103211 e24KC2ThetaAboveNode01103212 + e24KC2ThetaAboveNode01103213 + +theorem e24KC2ThetaAboveNode0110322 : + adaptiveCoverCheck 12 (childHL (childHL (childHH thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHH thetaAboveCell0110))) + e24KC2ThetaAboveNode01103220 e24KC2ThetaAboveNode01103221 e24KC2ThetaAboveLeaf01103222 + e24KC2ThetaAboveLeaf01103223 + +theorem e24KC2ThetaAboveNode0110323 : + adaptiveCoverCheck 12 (childHH (childHL (childHH thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHH thetaAboveCell0110))) + e24KC2ThetaAboveNode01103230 e24KC2ThetaAboveNode01103231 e24KC2ThetaAboveLeaf01103232 + e24KC2ThetaAboveLeaf01103233 + +theorem e24KC2ThetaAboveNode0110330 : + adaptiveCoverCheck 12 (childLL (childHH (childHH thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHH thetaAboveCell0110))) + e24KC2ThetaAboveNode01103300 e24KC2ThetaAboveNode01103301 e24KC2ThetaAboveNode01103302 + e24KC2ThetaAboveNode01103303 + +theorem e24KC2ThetaAboveNode0110331 : + adaptiveCoverCheck 12 (childLH (childHH (childHH thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHH thetaAboveCell0110))) + e24KC2ThetaAboveNode01103310 e24KC2ThetaAboveNode01103311 e24KC2ThetaAboveNode01103312 + e24KC2ThetaAboveNode01103313 + +theorem e24KC2ThetaAboveNode0110332 : + adaptiveCoverCheck 12 (childHL (childHH (childHH thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHH thetaAboveCell0110))) + e24KC2ThetaAboveNode01103320 e24KC2ThetaAboveNode01103321 e24KC2ThetaAboveLeaf01103322 + e24KC2ThetaAboveLeaf01103323 + +theorem e24KC2ThetaAboveNode0110333 : + adaptiveCoverCheck 12 (childHH (childHH (childHH thetaAboveCell0110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHH thetaAboveCell0110))) + e24KC2ThetaAboveNode01103330 e24KC2ThetaAboveNode01103331 e24KC2ThetaAboveLeaf01103332 + e24KC2ThetaAboveLeaf01103333 + +theorem e24KC2ThetaAboveNode0111202 : + adaptiveCoverCheck 12 (childHL (childLL (childHL thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHL thetaAboveCell0111))) + e24KC2ThetaAboveLeaf01112020 e24KC2ThetaAboveLeaf01112021 e24KC2ThetaAboveLeaf01112022 + e24KC2ThetaAboveLeaf01112023 + +theorem e24KC2ThetaAboveNode0111203 : + adaptiveCoverCheck 12 (childHH (childLL (childHL thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHL thetaAboveCell0111))) + e24KC2ThetaAboveLeaf01112030 e24KC2ThetaAboveLeaf01112031 e24KC2ThetaAboveLeaf01112032 + e24KC2ThetaAboveLeaf01112033 + +theorem e24KC2ThetaAboveNode0111212 : + adaptiveCoverCheck 12 (childHL (childLH (childHL thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHL thetaAboveCell0111))) + e24KC2ThetaAboveLeaf01112120 e24KC2ThetaAboveLeaf01112121 e24KC2ThetaAboveLeaf01112122 + e24KC2ThetaAboveLeaf01112123 + +theorem e24KC2ThetaAboveNode0111213 : + adaptiveCoverCheck 12 (childHH (childLH (childHL thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHL thetaAboveCell0111))) + e24KC2ThetaAboveLeaf01112130 e24KC2ThetaAboveLeaf01112131 e24KC2ThetaAboveLeaf01112132 + e24KC2ThetaAboveLeaf01112133 + +theorem e24KC2ThetaAboveNode0111220 : + adaptiveCoverCheck 12 (childLL (childHL (childHL thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHL thetaAboveCell0111))) + e24KC2ThetaAboveNode01112200 e24KC2ThetaAboveNode01112201 e24KC2ThetaAboveNode01112202 + e24KC2ThetaAboveNode01112203 + +theorem e24KC2ThetaAboveNode0111221 : + adaptiveCoverCheck 12 (childLH (childHL (childHL thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHL thetaAboveCell0111))) + e24KC2ThetaAboveNode01112210 e24KC2ThetaAboveNode01112211 e24KC2ThetaAboveNode01112212 + e24KC2ThetaAboveNode01112213 + +theorem e24KC2ThetaAboveNode0111222 : + adaptiveCoverCheck 12 (childHL (childHL (childHL thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHL thetaAboveCell0111))) + e24KC2ThetaAboveNode01112220 e24KC2ThetaAboveNode01112221 e24KC2ThetaAboveLeaf01112222 + e24KC2ThetaAboveLeaf01112223 + +theorem e24KC2ThetaAboveNode0111223 : + adaptiveCoverCheck 12 (childHH (childHL (childHL thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHL thetaAboveCell0111))) + e24KC2ThetaAboveNode01112230 e24KC2ThetaAboveNode01112231 e24KC2ThetaAboveLeaf01112232 + e24KC2ThetaAboveLeaf01112233 + +theorem e24KC2ThetaAboveNode0111230 : + adaptiveCoverCheck 12 (childLL (childHH (childHL thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHL thetaAboveCell0111))) + e24KC2ThetaAboveNode01112300 e24KC2ThetaAboveNode01112301 e24KC2ThetaAboveNode01112302 + e24KC2ThetaAboveNode01112303 + +theorem e24KC2ThetaAboveNode0111231 : + adaptiveCoverCheck 12 (childLH (childHH (childHL thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHL thetaAboveCell0111))) + e24KC2ThetaAboveNode01112310 e24KC2ThetaAboveNode01112311 e24KC2ThetaAboveNode01112312 + e24KC2ThetaAboveNode01112313 + +theorem e24KC2ThetaAboveNode0111232 : + adaptiveCoverCheck 12 (childHL (childHH (childHL thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHL thetaAboveCell0111))) + e24KC2ThetaAboveNode01112320 e24KC2ThetaAboveNode01112321 e24KC2ThetaAboveLeaf01112322 + e24KC2ThetaAboveLeaf01112323 + +theorem e24KC2ThetaAboveNode0111233 : + adaptiveCoverCheck 12 (childHH (childHH (childHL thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHL thetaAboveCell0111))) + e24KC2ThetaAboveNode01112330 e24KC2ThetaAboveNode01112331 e24KC2ThetaAboveLeaf01112332 + e24KC2ThetaAboveLeaf01112333 + +theorem e24KC2ThetaAboveNode0111302 : + adaptiveCoverCheck 12 (childHL (childLL (childHH thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHH thetaAboveCell0111))) + e24KC2ThetaAboveLeaf01113020 e24KC2ThetaAboveLeaf01113021 e24KC2ThetaAboveLeaf01113022 + e24KC2ThetaAboveLeaf01113023 + +theorem e24KC2ThetaAboveNode0111303 : + adaptiveCoverCheck 12 (childHH (childLL (childHH thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHH thetaAboveCell0111))) + e24KC2ThetaAboveLeaf01113030 e24KC2ThetaAboveLeaf01113031 e24KC2ThetaAboveLeaf01113032 + e24KC2ThetaAboveLeaf01113033 + +theorem e24KC2ThetaAboveNode0111312 : + adaptiveCoverCheck 12 (childHL (childLH (childHH thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHH thetaAboveCell0111))) + e24KC2ThetaAboveLeaf01113120 e24KC2ThetaAboveLeaf01113121 e24KC2ThetaAboveLeaf01113122 + e24KC2ThetaAboveLeaf01113123 + +theorem e24KC2ThetaAboveNode0111313 : + adaptiveCoverCheck 12 (childHH (childLH (childHH thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHH thetaAboveCell0111))) + e24KC2ThetaAboveLeaf01113130 e24KC2ThetaAboveLeaf01113131 e24KC2ThetaAboveLeaf01113132 + e24KC2ThetaAboveLeaf01113133 + +theorem e24KC2ThetaAboveNode0111320 : + adaptiveCoverCheck 12 (childLL (childHL (childHH thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHH thetaAboveCell0111))) + e24KC2ThetaAboveNode01113200 e24KC2ThetaAboveNode01113201 e24KC2ThetaAboveNode01113202 + e24KC2ThetaAboveNode01113203 + +theorem e24KC2ThetaAboveNode0111321 : + adaptiveCoverCheck 12 (childLH (childHL (childHH thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHH thetaAboveCell0111))) + e24KC2ThetaAboveNode01113210 e24KC2ThetaAboveNode01113211 e24KC2ThetaAboveNode01113212 + e24KC2ThetaAboveNode01113213 + +theorem e24KC2ThetaAboveNode0111322 : + adaptiveCoverCheck 12 (childHL (childHL (childHH thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHH thetaAboveCell0111))) + e24KC2ThetaAboveNode01113220 e24KC2ThetaAboveNode01113221 e24KC2ThetaAboveLeaf01113222 + e24KC2ThetaAboveLeaf01113223 + +theorem e24KC2ThetaAboveNode0111323 : + adaptiveCoverCheck 12 (childHH (childHL (childHH thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHH thetaAboveCell0111))) + e24KC2ThetaAboveNode01113230 e24KC2ThetaAboveNode01113231 e24KC2ThetaAboveLeaf01113232 + e24KC2ThetaAboveLeaf01113233 + +theorem e24KC2ThetaAboveNode0111330 : + adaptiveCoverCheck 12 (childLL (childHH (childHH thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHH thetaAboveCell0111))) + e24KC2ThetaAboveNode01113300 e24KC2ThetaAboveNode01113301 e24KC2ThetaAboveNode01113302 + e24KC2ThetaAboveNode01113303 + +theorem e24KC2ThetaAboveNode0111331 : + adaptiveCoverCheck 12 (childLH (childHH (childHH thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHH thetaAboveCell0111))) + e24KC2ThetaAboveNode01113310 e24KC2ThetaAboveNode01113311 e24KC2ThetaAboveNode01113312 + e24KC2ThetaAboveNode01113313 + +theorem e24KC2ThetaAboveNode0111332 : + adaptiveCoverCheck 12 (childHL (childHH (childHH thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHH thetaAboveCell0111))) + e24KC2ThetaAboveNode01113320 e24KC2ThetaAboveNode01113321 e24KC2ThetaAboveLeaf01113322 + e24KC2ThetaAboveLeaf01113323 + +theorem e24KC2ThetaAboveNode0111333 : + adaptiveCoverCheck 12 (childHH (childHH (childHH thetaAboveCell0111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHH thetaAboveCell0111))) + e24KC2ThetaAboveNode01113330 e24KC2ThetaAboveNode01113331 e24KC2ThetaAboveLeaf01113332 + e24KC2ThetaAboveLeaf01113333 + +theorem e24KC2ThetaAboveNode1000202 : + adaptiveCoverCheck 12 (childHL (childLL (childHL thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHL thetaAboveCell1000))) + e24KC2ThetaAboveLeaf10002020 e24KC2ThetaAboveLeaf10002021 e24KC2ThetaAboveLeaf10002022 + e24KC2ThetaAboveLeaf10002023 + +theorem e24KC2ThetaAboveNode1000203 : + adaptiveCoverCheck 12 (childHH (childLL (childHL thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHL thetaAboveCell1000))) + e24KC2ThetaAboveLeaf10002030 e24KC2ThetaAboveLeaf10002031 e24KC2ThetaAboveLeaf10002032 + e24KC2ThetaAboveLeaf10002033 + +theorem e24KC2ThetaAboveNode1000212 : + adaptiveCoverCheck 12 (childHL (childLH (childHL thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHL thetaAboveCell1000))) + e24KC2ThetaAboveLeaf10002120 e24KC2ThetaAboveLeaf10002121 e24KC2ThetaAboveLeaf10002122 + e24KC2ThetaAboveLeaf10002123 + +theorem e24KC2ThetaAboveNode1000213 : + adaptiveCoverCheck 12 (childHH (childLH (childHL thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHL thetaAboveCell1000))) + e24KC2ThetaAboveLeaf10002130 e24KC2ThetaAboveLeaf10002131 e24KC2ThetaAboveLeaf10002132 + e24KC2ThetaAboveLeaf10002133 + +theorem e24KC2ThetaAboveNode1000220 : + adaptiveCoverCheck 12 (childLL (childHL (childHL thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHL thetaAboveCell1000))) + e24KC2ThetaAboveNode10002200 e24KC2ThetaAboveNode10002201 e24KC2ThetaAboveNode10002202 + e24KC2ThetaAboveNode10002203 + +theorem e24KC2ThetaAboveNode1000221 : + adaptiveCoverCheck 12 (childLH (childHL (childHL thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHL thetaAboveCell1000))) + e24KC2ThetaAboveNode10002210 e24KC2ThetaAboveNode10002211 e24KC2ThetaAboveNode10002212 + e24KC2ThetaAboveNode10002213 + +theorem e24KC2ThetaAboveNode1000222 : + adaptiveCoverCheck 12 (childHL (childHL (childHL thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHL thetaAboveCell1000))) + e24KC2ThetaAboveNode10002220 e24KC2ThetaAboveNode10002221 e24KC2ThetaAboveLeaf10002222 + e24KC2ThetaAboveLeaf10002223 + +theorem e24KC2ThetaAboveNode1000223 : + adaptiveCoverCheck 12 (childHH (childHL (childHL thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHL thetaAboveCell1000))) + e24KC2ThetaAboveNode10002230 e24KC2ThetaAboveNode10002231 e24KC2ThetaAboveLeaf10002232 + e24KC2ThetaAboveLeaf10002233 + +theorem e24KC2ThetaAboveNode1000230 : + adaptiveCoverCheck 12 (childLL (childHH (childHL thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHL thetaAboveCell1000))) + e24KC2ThetaAboveNode10002300 e24KC2ThetaAboveNode10002301 e24KC2ThetaAboveNode10002302 + e24KC2ThetaAboveNode10002303 + +theorem e24KC2ThetaAboveNode1000231 : + adaptiveCoverCheck 12 (childLH (childHH (childHL thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHL thetaAboveCell1000))) + e24KC2ThetaAboveNode10002310 e24KC2ThetaAboveNode10002311 e24KC2ThetaAboveNode10002312 + e24KC2ThetaAboveNode10002313 + +theorem e24KC2ThetaAboveNode1000232 : + adaptiveCoverCheck 12 (childHL (childHH (childHL thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHL thetaAboveCell1000))) + e24KC2ThetaAboveNode10002320 e24KC2ThetaAboveNode10002321 e24KC2ThetaAboveLeaf10002322 + e24KC2ThetaAboveLeaf10002323 + +theorem e24KC2ThetaAboveNode1000233 : + adaptiveCoverCheck 12 (childHH (childHH (childHL thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHL thetaAboveCell1000))) + e24KC2ThetaAboveNode10002330 e24KC2ThetaAboveNode10002331 e24KC2ThetaAboveLeaf10002332 + e24KC2ThetaAboveLeaf10002333 + +theorem e24KC2ThetaAboveNode1000302 : + adaptiveCoverCheck 12 (childHL (childLL (childHH thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHH thetaAboveCell1000))) + e24KC2ThetaAboveLeaf10003020 e24KC2ThetaAboveLeaf10003021 e24KC2ThetaAboveLeaf10003022 + e24KC2ThetaAboveLeaf10003023 + +theorem e24KC2ThetaAboveNode1000303 : + adaptiveCoverCheck 12 (childHH (childLL (childHH thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHH thetaAboveCell1000))) + e24KC2ThetaAboveLeaf10003030 e24KC2ThetaAboveLeaf10003031 e24KC2ThetaAboveLeaf10003032 + e24KC2ThetaAboveLeaf10003033 + +theorem e24KC2ThetaAboveNode1000312 : + adaptiveCoverCheck 12 (childHL (childLH (childHH thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHH thetaAboveCell1000))) + e24KC2ThetaAboveLeaf10003120 e24KC2ThetaAboveLeaf10003121 e24KC2ThetaAboveLeaf10003122 + e24KC2ThetaAboveLeaf10003123 + +theorem e24KC2ThetaAboveNode1000313 : + adaptiveCoverCheck 12 (childHH (childLH (childHH thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHH thetaAboveCell1000))) + e24KC2ThetaAboveLeaf10003130 e24KC2ThetaAboveLeaf10003131 e24KC2ThetaAboveLeaf10003132 + e24KC2ThetaAboveLeaf10003133 + +theorem e24KC2ThetaAboveNode1000320 : + adaptiveCoverCheck 12 (childLL (childHL (childHH thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHH thetaAboveCell1000))) + e24KC2ThetaAboveNode10003200 e24KC2ThetaAboveNode10003201 e24KC2ThetaAboveNode10003202 + e24KC2ThetaAboveNode10003203 + +theorem e24KC2ThetaAboveNode1000321 : + adaptiveCoverCheck 12 (childLH (childHL (childHH thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHH thetaAboveCell1000))) + e24KC2ThetaAboveNode10003210 e24KC2ThetaAboveNode10003211 e24KC2ThetaAboveNode10003212 + e24KC2ThetaAboveNode10003213 + +theorem e24KC2ThetaAboveNode1000322 : + adaptiveCoverCheck 12 (childHL (childHL (childHH thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHH thetaAboveCell1000))) + e24KC2ThetaAboveNode10003220 e24KC2ThetaAboveNode10003221 e24KC2ThetaAboveLeaf10003222 + e24KC2ThetaAboveLeaf10003223 + +theorem e24KC2ThetaAboveNode1000323 : + adaptiveCoverCheck 12 (childHH (childHL (childHH thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHH thetaAboveCell1000))) + e24KC2ThetaAboveNode10003230 e24KC2ThetaAboveNode10003231 e24KC2ThetaAboveLeaf10003232 + e24KC2ThetaAboveLeaf10003233 + +theorem e24KC2ThetaAboveNode1000330 : + adaptiveCoverCheck 12 (childLL (childHH (childHH thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHH thetaAboveCell1000))) + e24KC2ThetaAboveNode10003300 e24KC2ThetaAboveNode10003301 e24KC2ThetaAboveNode10003302 + e24KC2ThetaAboveNode10003303 + +theorem e24KC2ThetaAboveNode1000331 : + adaptiveCoverCheck 12 (childLH (childHH (childHH thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHH thetaAboveCell1000))) + e24KC2ThetaAboveNode10003310 e24KC2ThetaAboveNode10003311 e24KC2ThetaAboveNode10003312 + e24KC2ThetaAboveNode10003313 + +theorem e24KC2ThetaAboveNode1000332 : + adaptiveCoverCheck 12 (childHL (childHH (childHH thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHH thetaAboveCell1000))) + e24KC2ThetaAboveNode10003320 e24KC2ThetaAboveNode10003321 e24KC2ThetaAboveLeaf10003322 + e24KC2ThetaAboveLeaf10003323 + +theorem e24KC2ThetaAboveNode1000333 : + adaptiveCoverCheck 12 (childHH (childHH (childHH thetaAboveCell1000))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHH thetaAboveCell1000))) + e24KC2ThetaAboveNode10003330 e24KC2ThetaAboveNode10003331 e24KC2ThetaAboveLeaf10003332 + e24KC2ThetaAboveLeaf10003333 + +theorem e24KC2ThetaAboveNode1001202 : + adaptiveCoverCheck 12 (childHL (childLL (childHL thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHL thetaAboveCell1001))) + e24KC2ThetaAboveLeaf10012020 e24KC2ThetaAboveLeaf10012021 e24KC2ThetaAboveLeaf10012022 + e24KC2ThetaAboveLeaf10012023 + +theorem e24KC2ThetaAboveNode1001203 : + adaptiveCoverCheck 12 (childHH (childLL (childHL thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHL thetaAboveCell1001))) + e24KC2ThetaAboveLeaf10012030 e24KC2ThetaAboveLeaf10012031 e24KC2ThetaAboveLeaf10012032 + e24KC2ThetaAboveLeaf10012033 + +theorem e24KC2ThetaAboveNode1001212 : + adaptiveCoverCheck 12 (childHL (childLH (childHL thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHL thetaAboveCell1001))) + e24KC2ThetaAboveLeaf10012120 e24KC2ThetaAboveLeaf10012121 e24KC2ThetaAboveLeaf10012122 + e24KC2ThetaAboveLeaf10012123 + +theorem e24KC2ThetaAboveNode1001213 : + adaptiveCoverCheck 12 (childHH (childLH (childHL thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHL thetaAboveCell1001))) + e24KC2ThetaAboveLeaf10012130 e24KC2ThetaAboveLeaf10012131 e24KC2ThetaAboveLeaf10012132 + e24KC2ThetaAboveLeaf10012133 + +theorem e24KC2ThetaAboveNode1001220 : + adaptiveCoverCheck 12 (childLL (childHL (childHL thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHL thetaAboveCell1001))) + e24KC2ThetaAboveNode10012200 e24KC2ThetaAboveNode10012201 e24KC2ThetaAboveNode10012202 + e24KC2ThetaAboveNode10012203 + +theorem e24KC2ThetaAboveNode1001221 : + adaptiveCoverCheck 12 (childLH (childHL (childHL thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHL thetaAboveCell1001))) + e24KC2ThetaAboveNode10012210 e24KC2ThetaAboveNode10012211 e24KC2ThetaAboveNode10012212 + e24KC2ThetaAboveNode10012213 + +theorem e24KC2ThetaAboveNode1001222 : + adaptiveCoverCheck 12 (childHL (childHL (childHL thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHL thetaAboveCell1001))) + e24KC2ThetaAboveNode10012220 e24KC2ThetaAboveNode10012221 e24KC2ThetaAboveLeaf10012222 + e24KC2ThetaAboveLeaf10012223 + +theorem e24KC2ThetaAboveNode1001223 : + adaptiveCoverCheck 12 (childHH (childHL (childHL thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHL thetaAboveCell1001))) + e24KC2ThetaAboveNode10012230 e24KC2ThetaAboveNode10012231 e24KC2ThetaAboveLeaf10012232 + e24KC2ThetaAboveLeaf10012233 + +theorem e24KC2ThetaAboveNode1001230 : + adaptiveCoverCheck 12 (childLL (childHH (childHL thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHL thetaAboveCell1001))) + e24KC2ThetaAboveNode10012300 e24KC2ThetaAboveNode10012301 e24KC2ThetaAboveNode10012302 + e24KC2ThetaAboveNode10012303 + +theorem e24KC2ThetaAboveNode1001231 : + adaptiveCoverCheck 12 (childLH (childHH (childHL thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHL thetaAboveCell1001))) + e24KC2ThetaAboveNode10012310 e24KC2ThetaAboveNode10012311 e24KC2ThetaAboveNode10012312 + e24KC2ThetaAboveNode10012313 + +theorem e24KC2ThetaAboveNode1001232 : + adaptiveCoverCheck 12 (childHL (childHH (childHL thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHL thetaAboveCell1001))) + e24KC2ThetaAboveNode10012320 e24KC2ThetaAboveNode10012321 e24KC2ThetaAboveLeaf10012322 + e24KC2ThetaAboveLeaf10012323 + +theorem e24KC2ThetaAboveNode1001233 : + adaptiveCoverCheck 12 (childHH (childHH (childHL thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHL thetaAboveCell1001))) + e24KC2ThetaAboveNode10012330 e24KC2ThetaAboveNode10012331 e24KC2ThetaAboveLeaf10012332 + e24KC2ThetaAboveLeaf10012333 + +theorem e24KC2ThetaAboveNode1001302 : + adaptiveCoverCheck 12 (childHL (childLL (childHH thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHH thetaAboveCell1001))) + e24KC2ThetaAboveLeaf10013020 e24KC2ThetaAboveLeaf10013021 e24KC2ThetaAboveLeaf10013022 + e24KC2ThetaAboveLeaf10013023 + +theorem e24KC2ThetaAboveNode1001303 : + adaptiveCoverCheck 12 (childHH (childLL (childHH thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHH thetaAboveCell1001))) + e24KC2ThetaAboveLeaf10013030 e24KC2ThetaAboveLeaf10013031 e24KC2ThetaAboveLeaf10013032 + e24KC2ThetaAboveLeaf10013033 + +theorem e24KC2ThetaAboveNode1001312 : + adaptiveCoverCheck 12 (childHL (childLH (childHH thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLH (childHH thetaAboveCell1001))) + e24KC2ThetaAboveLeaf10013120 e24KC2ThetaAboveLeaf10013121 e24KC2ThetaAboveLeaf10013122 + e24KC2ThetaAboveLeaf10013123 + +theorem e24KC2ThetaAboveNode1001313 : + adaptiveCoverCheck 12 (childHH (childLH (childHH thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLH (childHH thetaAboveCell1001))) + e24KC2ThetaAboveLeaf10013130 e24KC2ThetaAboveLeaf10013131 e24KC2ThetaAboveLeaf10013132 + e24KC2ThetaAboveLeaf10013133 + +theorem e24KC2ThetaAboveNode1001320 : + adaptiveCoverCheck 12 (childLL (childHL (childHH thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHH thetaAboveCell1001))) + e24KC2ThetaAboveNode10013200 e24KC2ThetaAboveNode10013201 e24KC2ThetaAboveNode10013202 + e24KC2ThetaAboveNode10013203 + +theorem e24KC2ThetaAboveNode1001321 : + adaptiveCoverCheck 12 (childLH (childHL (childHH thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHH thetaAboveCell1001))) + e24KC2ThetaAboveNode10013210 e24KC2ThetaAboveNode10013211 e24KC2ThetaAboveNode10013212 + e24KC2ThetaAboveNode10013213 + +theorem e24KC2ThetaAboveNode1001322 : + adaptiveCoverCheck 12 (childHL (childHL (childHH thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHH thetaAboveCell1001))) + e24KC2ThetaAboveNode10013220 e24KC2ThetaAboveNode10013221 e24KC2ThetaAboveLeaf10013222 + e24KC2ThetaAboveLeaf10013223 + +theorem e24KC2ThetaAboveNode1001323 : + adaptiveCoverCheck 12 (childHH (childHL (childHH thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHH thetaAboveCell1001))) + e24KC2ThetaAboveNode10013230 e24KC2ThetaAboveNode10013231 e24KC2ThetaAboveLeaf10013232 + e24KC2ThetaAboveLeaf10013233 + +theorem e24KC2ThetaAboveNode1001330 : + adaptiveCoverCheck 12 (childLL (childHH (childHH thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHH thetaAboveCell1001))) + e24KC2ThetaAboveNode10013300 e24KC2ThetaAboveNode10013301 e24KC2ThetaAboveNode10013302 + e24KC2ThetaAboveNode10013303 + +theorem e24KC2ThetaAboveNode1001331 : + adaptiveCoverCheck 12 (childLH (childHH (childHH thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHH thetaAboveCell1001))) + e24KC2ThetaAboveNode10013310 e24KC2ThetaAboveNode10013311 e24KC2ThetaAboveNode10013312 + e24KC2ThetaAboveNode10013313 + +theorem e24KC2ThetaAboveNode1001332 : + adaptiveCoverCheck 12 (childHL (childHH (childHH thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHH thetaAboveCell1001))) + e24KC2ThetaAboveNode10013320 e24KC2ThetaAboveNode10013321 e24KC2ThetaAboveLeaf10013322 + e24KC2ThetaAboveLeaf10013323 + +theorem e24KC2ThetaAboveNode1001333 : + adaptiveCoverCheck 12 (childHH (childHH (childHH thetaAboveCell1001))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHH thetaAboveCell1001))) + e24KC2ThetaAboveNode10013330 e24KC2ThetaAboveNode10013331 e24KC2ThetaAboveLeaf10013332 + e24KC2ThetaAboveLeaf10013333 + +theorem e24KC2ThetaAboveNode1010202 : + adaptiveCoverCheck 12 (childHL (childLL (childHL thetaAboveCell1010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childLL (childHL thetaAboveCell1010))) + e24KC2ThetaAboveLeaf10102020 e24KC2ThetaAboveLeaf10102021 e24KC2ThetaAboveLeaf10102022 + e24KC2ThetaAboveLeaf10102023 + +theorem e24KC2ThetaAboveNode1010203 : + adaptiveCoverCheck 12 (childHH (childLL (childHL thetaAboveCell1010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childLL (childHL thetaAboveCell1010))) + e24KC2ThetaAboveLeaf10102030 e24KC2ThetaAboveLeaf10102031 e24KC2ThetaAboveLeaf10102032 + e24KC2ThetaAboveLeaf10102033 + +theorem e24KC2ThetaAboveNode1010220 : + adaptiveCoverCheck 12 (childLL (childHL (childHL thetaAboveCell1010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHL thetaAboveCell1010))) + e24KC2ThetaAboveNode10102200 e24KC2ThetaAboveNode10102201 e24KC2ThetaAboveNode10102202 + e24KC2ThetaAboveNode10102203 + +theorem e24KC2ThetaAboveNode1010221 : + adaptiveCoverCheck 12 (childLH (childHL (childHL thetaAboveCell1010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHL thetaAboveCell1010))) + e24KC2ThetaAboveNode10102210 e24KC2ThetaAboveNode10102211 e24KC2ThetaAboveNode10102212 + e24KC2ThetaAboveNode10102213 + +theorem e24KC2ThetaAboveNode1010222 : + adaptiveCoverCheck 12 (childHL (childHL (childHL thetaAboveCell1010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHL thetaAboveCell1010))) + e24KC2ThetaAboveNode10102220 e24KC2ThetaAboveNode10102221 e24KC2ThetaAboveLeaf10102222 + e24KC2ThetaAboveLeaf10102223 + +theorem e24KC2ThetaAboveNode1010223 : + adaptiveCoverCheck 12 (childHH (childHL (childHL thetaAboveCell1010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHL thetaAboveCell1010))) + e24KC2ThetaAboveNode10102230 e24KC2ThetaAboveNode10102231 e24KC2ThetaAboveLeaf10102232 + e24KC2ThetaAboveLeaf10102233 + +theorem e24KC2ThetaAboveNode1010230 : + adaptiveCoverCheck 12 (childLL (childHH (childHL thetaAboveCell1010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHL thetaAboveCell1010))) + e24KC2ThetaAboveNode10102300 e24KC2ThetaAboveNode10102301 e24KC2ThetaAboveNode10102302 + e24KC2ThetaAboveNode10102303 + +theorem e24KC2ThetaAboveNode1010231 : + adaptiveCoverCheck 12 (childLH (childHH (childHL thetaAboveCell1010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHL thetaAboveCell1010))) + e24KC2ThetaAboveNode10102310 e24KC2ThetaAboveNode10102311 e24KC2ThetaAboveNode10102312 + e24KC2ThetaAboveNode10102313 + +theorem e24KC2ThetaAboveNode1010232 : + adaptiveCoverCheck 12 (childHL (childHH (childHL thetaAboveCell1010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHL thetaAboveCell1010))) + e24KC2ThetaAboveNode10102320 e24KC2ThetaAboveNode10102321 e24KC2ThetaAboveLeaf10102322 + e24KC2ThetaAboveLeaf10102323 + +theorem e24KC2ThetaAboveNode1010233 : + adaptiveCoverCheck 12 (childHH (childHH (childHL thetaAboveCell1010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHL thetaAboveCell1010))) + e24KC2ThetaAboveNode10102330 e24KC2ThetaAboveNode10102331 e24KC2ThetaAboveLeaf10102332 + e24KC2ThetaAboveLeaf10102333 + +theorem e24KC2ThetaAboveNode1010320 : + adaptiveCoverCheck 12 (childLL (childHL (childHH thetaAboveCell1010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHH thetaAboveCell1010))) + e24KC2ThetaAboveNode10103200 e24KC2ThetaAboveNode10103201 e24KC2ThetaAboveNode10103202 + e24KC2ThetaAboveNode10103203 + +theorem e24KC2ThetaAboveNode1010321 : + adaptiveCoverCheck 12 (childLH (childHL (childHH thetaAboveCell1010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHH thetaAboveCell1010))) + e24KC2ThetaAboveNode10103210 e24KC2ThetaAboveNode10103211 e24KC2ThetaAboveNode10103212 + e24KC2ThetaAboveNode10103213 + +theorem e24KC2ThetaAboveNode1010322 : + adaptiveCoverCheck 12 (childHL (childHL (childHH thetaAboveCell1010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHH thetaAboveCell1010))) + e24KC2ThetaAboveNode10103220 e24KC2ThetaAboveNode10103221 e24KC2ThetaAboveLeaf10103222 + e24KC2ThetaAboveLeaf10103223 + +theorem e24KC2ThetaAboveNode1010323 : + adaptiveCoverCheck 12 (childHH (childHL (childHH thetaAboveCell1010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHH thetaAboveCell1010))) + e24KC2ThetaAboveNode10103230 e24KC2ThetaAboveNode10103231 e24KC2ThetaAboveLeaf10103232 + e24KC2ThetaAboveLeaf10103233 + +theorem e24KC2ThetaAboveNode1010330 : + adaptiveCoverCheck 12 (childLL (childHH (childHH thetaAboveCell1010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHH thetaAboveCell1010))) + e24KC2ThetaAboveNode10103300 e24KC2ThetaAboveNode10103301 e24KC2ThetaAboveNode10103302 + e24KC2ThetaAboveNode10103303 + +theorem e24KC2ThetaAboveNode1010331 : + adaptiveCoverCheck 12 (childLH (childHH (childHH thetaAboveCell1010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHH thetaAboveCell1010))) + e24KC2ThetaAboveNode10103310 e24KC2ThetaAboveNode10103311 e24KC2ThetaAboveNode10103312 + e24KC2ThetaAboveNode10103313 + +theorem e24KC2ThetaAboveNode1010332 : + adaptiveCoverCheck 12 (childHL (childHH (childHH thetaAboveCell1010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHH thetaAboveCell1010))) + e24KC2ThetaAboveNode10103320 e24KC2ThetaAboveNode10103321 e24KC2ThetaAboveLeaf10103322 + e24KC2ThetaAboveLeaf10103323 + +theorem e24KC2ThetaAboveNode1010333 : + adaptiveCoverCheck 12 (childHH (childHH (childHH thetaAboveCell1010))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHH thetaAboveCell1010))) + e24KC2ThetaAboveNode10103330 e24KC2ThetaAboveNode10103331 e24KC2ThetaAboveLeaf10103332 + e24KC2ThetaAboveLeaf10103333 + +theorem e24KC2ThetaAboveNode1011220 : + adaptiveCoverCheck 12 (childLL (childHL (childHL thetaAboveCell1011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHL thetaAboveCell1011))) + e24KC2ThetaAboveNode10112200 e24KC2ThetaAboveNode10112201 e24KC2ThetaAboveNode10112202 + e24KC2ThetaAboveNode10112203 + +theorem e24KC2ThetaAboveNode1011221 : + adaptiveCoverCheck 12 (childLH (childHL (childHL thetaAboveCell1011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHL thetaAboveCell1011))) + e24KC2ThetaAboveNode10112210 e24KC2ThetaAboveNode10112211 e24KC2ThetaAboveNode10112212 + e24KC2ThetaAboveNode10112213 + +theorem e24KC2ThetaAboveNode1011222 : + adaptiveCoverCheck 12 (childHL (childHL (childHL thetaAboveCell1011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHL thetaAboveCell1011))) + e24KC2ThetaAboveNode10112220 e24KC2ThetaAboveNode10112221 e24KC2ThetaAboveLeaf10112222 + e24KC2ThetaAboveLeaf10112223 + +theorem e24KC2ThetaAboveNode1011223 : + adaptiveCoverCheck 12 (childHH (childHL (childHL thetaAboveCell1011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHL thetaAboveCell1011))) + e24KC2ThetaAboveNode10112230 e24KC2ThetaAboveNode10112231 e24KC2ThetaAboveLeaf10112232 + e24KC2ThetaAboveLeaf10112233 + +theorem e24KC2ThetaAboveNode1011230 : + adaptiveCoverCheck 12 (childLL (childHH (childHL thetaAboveCell1011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHL thetaAboveCell1011))) + e24KC2ThetaAboveNode10112300 e24KC2ThetaAboveNode10112301 e24KC2ThetaAboveNode10112302 + e24KC2ThetaAboveNode10112303 + +theorem e24KC2ThetaAboveNode1011231 : + adaptiveCoverCheck 12 (childLH (childHH (childHL thetaAboveCell1011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHL thetaAboveCell1011))) + e24KC2ThetaAboveNode10112310 e24KC2ThetaAboveNode10112311 e24KC2ThetaAboveNode10112312 + e24KC2ThetaAboveNode10112313 + +theorem e24KC2ThetaAboveNode1011232 : + adaptiveCoverCheck 12 (childHL (childHH (childHL thetaAboveCell1011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHL thetaAboveCell1011))) + e24KC2ThetaAboveNode10112320 e24KC2ThetaAboveNode10112321 e24KC2ThetaAboveLeaf10112322 + e24KC2ThetaAboveLeaf10112323 + +theorem e24KC2ThetaAboveNode1011233 : + adaptiveCoverCheck 12 (childHH (childHH (childHL thetaAboveCell1011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHL thetaAboveCell1011))) + e24KC2ThetaAboveNode10112330 e24KC2ThetaAboveNode10112331 e24KC2ThetaAboveLeaf10112332 + e24KC2ThetaAboveLeaf10112333 + +theorem e24KC2ThetaAboveNode1011320 : + adaptiveCoverCheck 12 (childLL (childHL (childHH thetaAboveCell1011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHH thetaAboveCell1011))) + e24KC2ThetaAboveNode10113200 e24KC2ThetaAboveNode10113201 e24KC2ThetaAboveNode10113202 + e24KC2ThetaAboveNode10113203 + +theorem e24KC2ThetaAboveNode1011321 : + adaptiveCoverCheck 12 (childLH (childHL (childHH thetaAboveCell1011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHH thetaAboveCell1011))) + e24KC2ThetaAboveNode10113210 e24KC2ThetaAboveNode10113211 e24KC2ThetaAboveNode10113212 + e24KC2ThetaAboveNode10113213 + +theorem e24KC2ThetaAboveNode1011322 : + adaptiveCoverCheck 12 (childHL (childHL (childHH thetaAboveCell1011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHH thetaAboveCell1011))) + e24KC2ThetaAboveNode10113220 e24KC2ThetaAboveNode10113221 e24KC2ThetaAboveLeaf10113222 + e24KC2ThetaAboveLeaf10113223 + +theorem e24KC2ThetaAboveNode1011323 : + adaptiveCoverCheck 12 (childHH (childHL (childHH thetaAboveCell1011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHH thetaAboveCell1011))) + e24KC2ThetaAboveNode10113230 e24KC2ThetaAboveNode10113231 e24KC2ThetaAboveLeaf10113232 + e24KC2ThetaAboveLeaf10113233 + +theorem e24KC2ThetaAboveNode1011330 : + adaptiveCoverCheck 12 (childLL (childHH (childHH thetaAboveCell1011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHH thetaAboveCell1011))) + e24KC2ThetaAboveNode10113300 e24KC2ThetaAboveNode10113301 e24KC2ThetaAboveNode10113302 + e24KC2ThetaAboveNode10113303 + +theorem e24KC2ThetaAboveNode1011331 : + adaptiveCoverCheck 12 (childLH (childHH (childHH thetaAboveCell1011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHH thetaAboveCell1011))) + e24KC2ThetaAboveNode10113310 e24KC2ThetaAboveNode10113311 e24KC2ThetaAboveNode10113312 + e24KC2ThetaAboveNode10113313 + +theorem e24KC2ThetaAboveNode1011332 : + adaptiveCoverCheck 12 (childHL (childHH (childHH thetaAboveCell1011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHH thetaAboveCell1011))) + e24KC2ThetaAboveNode10113320 e24KC2ThetaAboveNode10113321 e24KC2ThetaAboveLeaf10113322 + e24KC2ThetaAboveLeaf10113323 + +theorem e24KC2ThetaAboveNode1011333 : + adaptiveCoverCheck 12 (childHH (childHH (childHH thetaAboveCell1011))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHH thetaAboveCell1011))) + e24KC2ThetaAboveNode10113330 e24KC2ThetaAboveNode10113331 e24KC2ThetaAboveLeaf10113332 + e24KC2ThetaAboveLeaf10113333 + +theorem e24KC2ThetaAboveNode1100220 : + adaptiveCoverCheck 12 (childLL (childHL (childHL thetaAboveCell1100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHL thetaAboveCell1100))) + e24KC2ThetaAboveLeaf11002200 e24KC2ThetaAboveLeaf11002201 e24KC2ThetaAboveNode11002202 + e24KC2ThetaAboveNode11002203 + +theorem e24KC2ThetaAboveNode1100221 : + adaptiveCoverCheck 12 (childLH (childHL (childHL thetaAboveCell1100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHL thetaAboveCell1100))) + e24KC2ThetaAboveLeaf11002210 e24KC2ThetaAboveLeaf11002211 e24KC2ThetaAboveNode11002212 + e24KC2ThetaAboveNode11002213 + +theorem e24KC2ThetaAboveNode1100222 : + adaptiveCoverCheck 12 (childHL (childHL (childHL thetaAboveCell1100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHL thetaAboveCell1100))) + e24KC2ThetaAboveNode11002220 e24KC2ThetaAboveNode11002221 e24KC2ThetaAboveLeaf11002222 + e24KC2ThetaAboveLeaf11002223 + +theorem e24KC2ThetaAboveNode1100223 : + adaptiveCoverCheck 12 (childHH (childHL (childHL thetaAboveCell1100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHL thetaAboveCell1100))) + e24KC2ThetaAboveNode11002230 e24KC2ThetaAboveNode11002231 e24KC2ThetaAboveLeaf11002232 + e24KC2ThetaAboveLeaf11002233 + +theorem e24KC2ThetaAboveNode1100230 : + adaptiveCoverCheck 12 (childLL (childHH (childHL thetaAboveCell1100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHL thetaAboveCell1100))) + e24KC2ThetaAboveLeaf11002300 e24KC2ThetaAboveLeaf11002301 e24KC2ThetaAboveNode11002302 + e24KC2ThetaAboveNode11002303 + +theorem e24KC2ThetaAboveNode1100231 : + adaptiveCoverCheck 12 (childLH (childHH (childHL thetaAboveCell1100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHL thetaAboveCell1100))) + e24KC2ThetaAboveLeaf11002310 e24KC2ThetaAboveLeaf11002311 e24KC2ThetaAboveNode11002312 + e24KC2ThetaAboveNode11002313 + +theorem e24KC2ThetaAboveNode1100232 : + adaptiveCoverCheck 12 (childHL (childHH (childHL thetaAboveCell1100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHL thetaAboveCell1100))) + e24KC2ThetaAboveNode11002320 e24KC2ThetaAboveNode11002321 e24KC2ThetaAboveLeaf11002322 + e24KC2ThetaAboveLeaf11002323 + +theorem e24KC2ThetaAboveNode1100233 : + adaptiveCoverCheck 12 (childHH (childHH (childHL thetaAboveCell1100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHL thetaAboveCell1100))) + e24KC2ThetaAboveNode11002330 e24KC2ThetaAboveNode11002331 e24KC2ThetaAboveLeaf11002332 + e24KC2ThetaAboveLeaf11002333 + +theorem e24KC2ThetaAboveNode1100320 : + adaptiveCoverCheck 12 (childLL (childHL (childHH thetaAboveCell1100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHH thetaAboveCell1100))) + e24KC2ThetaAboveLeaf11003200 e24KC2ThetaAboveLeaf11003201 e24KC2ThetaAboveNode11003202 + e24KC2ThetaAboveNode11003203 + +theorem e24KC2ThetaAboveNode1100321 : + adaptiveCoverCheck 12 (childLH (childHL (childHH thetaAboveCell1100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHH thetaAboveCell1100))) + e24KC2ThetaAboveLeaf11003210 e24KC2ThetaAboveLeaf11003211 e24KC2ThetaAboveNode11003212 + e24KC2ThetaAboveNode11003213 + +theorem e24KC2ThetaAboveNode1100322 : + adaptiveCoverCheck 12 (childHL (childHL (childHH thetaAboveCell1100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHH thetaAboveCell1100))) + e24KC2ThetaAboveNode11003220 e24KC2ThetaAboveNode11003221 e24KC2ThetaAboveLeaf11003222 + e24KC2ThetaAboveLeaf11003223 + +theorem e24KC2ThetaAboveNode1100323 : + adaptiveCoverCheck 12 (childHH (childHL (childHH thetaAboveCell1100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHH thetaAboveCell1100))) + e24KC2ThetaAboveNode11003230 e24KC2ThetaAboveNode11003231 e24KC2ThetaAboveLeaf11003232 + e24KC2ThetaAboveLeaf11003233 + +theorem e24KC2ThetaAboveNode1100330 : + adaptiveCoverCheck 12 (childLL (childHH (childHH thetaAboveCell1100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHH thetaAboveCell1100))) + e24KC2ThetaAboveLeaf11003300 e24KC2ThetaAboveLeaf11003301 e24KC2ThetaAboveNode11003302 + e24KC2ThetaAboveNode11003303 + +theorem e24KC2ThetaAboveNode1100331 : + adaptiveCoverCheck 12 (childLH (childHH (childHH thetaAboveCell1100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHH thetaAboveCell1100))) + e24KC2ThetaAboveLeaf11003310 e24KC2ThetaAboveLeaf11003311 e24KC2ThetaAboveNode11003312 + e24KC2ThetaAboveNode11003313 + +theorem e24KC2ThetaAboveNode1100332 : + adaptiveCoverCheck 12 (childHL (childHH (childHH thetaAboveCell1100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHH thetaAboveCell1100))) + e24KC2ThetaAboveNode11003320 e24KC2ThetaAboveNode11003321 e24KC2ThetaAboveLeaf11003322 + e24KC2ThetaAboveLeaf11003323 + +theorem e24KC2ThetaAboveNode1100333 : + adaptiveCoverCheck 12 (childHH (childHH (childHH thetaAboveCell1100))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHH thetaAboveCell1100))) + e24KC2ThetaAboveNode11003330 e24KC2ThetaAboveNode11003331 e24KC2ThetaAboveLeaf11003332 + e24KC2ThetaAboveLeaf11003333 + +theorem e24KC2ThetaAboveNode1101220 : + adaptiveCoverCheck 12 (childLL (childHL (childHL thetaAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHL thetaAboveCell1101))) + e24KC2ThetaAboveLeaf11012200 e24KC2ThetaAboveLeaf11012201 e24KC2ThetaAboveNode11012202 + e24KC2ThetaAboveNode11012203 + +theorem e24KC2ThetaAboveNode1101221 : + adaptiveCoverCheck 12 (childLH (childHL (childHL thetaAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHL thetaAboveCell1101))) + e24KC2ThetaAboveLeaf11012210 e24KC2ThetaAboveLeaf11012211 e24KC2ThetaAboveNode11012212 + e24KC2ThetaAboveNode11012213 + +theorem e24KC2ThetaAboveNode1101222 : + adaptiveCoverCheck 12 (childHL (childHL (childHL thetaAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHL thetaAboveCell1101))) + e24KC2ThetaAboveNode11012220 e24KC2ThetaAboveNode11012221 e24KC2ThetaAboveLeaf11012222 + e24KC2ThetaAboveLeaf11012223 + +theorem e24KC2ThetaAboveNode1101223 : + adaptiveCoverCheck 12 (childHH (childHL (childHL thetaAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHL thetaAboveCell1101))) + e24KC2ThetaAboveNode11012230 e24KC2ThetaAboveNode11012231 e24KC2ThetaAboveLeaf11012232 + e24KC2ThetaAboveLeaf11012233 + +theorem e24KC2ThetaAboveNode1101230 : + adaptiveCoverCheck 12 (childLL (childHH (childHL thetaAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHL thetaAboveCell1101))) + e24KC2ThetaAboveLeaf11012300 e24KC2ThetaAboveLeaf11012301 e24KC2ThetaAboveNode11012302 + e24KC2ThetaAboveNode11012303 + +theorem e24KC2ThetaAboveNode1101231 : + adaptiveCoverCheck 12 (childLH (childHH (childHL thetaAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHL thetaAboveCell1101))) + e24KC2ThetaAboveLeaf11012310 e24KC2ThetaAboveLeaf11012311 e24KC2ThetaAboveNode11012312 + e24KC2ThetaAboveNode11012313 + +theorem e24KC2ThetaAboveNode1101232 : + adaptiveCoverCheck 12 (childHL (childHH (childHL thetaAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHL thetaAboveCell1101))) + e24KC2ThetaAboveNode11012320 e24KC2ThetaAboveNode11012321 e24KC2ThetaAboveLeaf11012322 + e24KC2ThetaAboveLeaf11012323 + +theorem e24KC2ThetaAboveNode1101233 : + adaptiveCoverCheck 12 (childHH (childHH (childHL thetaAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHL thetaAboveCell1101))) + e24KC2ThetaAboveNode11012330 e24KC2ThetaAboveNode11012331 e24KC2ThetaAboveLeaf11012332 + e24KC2ThetaAboveLeaf11012333 + +theorem e24KC2ThetaAboveNode1101320 : + adaptiveCoverCheck 12 (childLL (childHL (childHH thetaAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHH thetaAboveCell1101))) + e24KC2ThetaAboveLeaf11013200 e24KC2ThetaAboveLeaf11013201 e24KC2ThetaAboveNode11013202 + e24KC2ThetaAboveNode11013203 + +theorem e24KC2ThetaAboveNode1101321 : + adaptiveCoverCheck 12 (childLH (childHL (childHH thetaAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHH thetaAboveCell1101))) + e24KC2ThetaAboveLeaf11013210 e24KC2ThetaAboveLeaf11013211 e24KC2ThetaAboveNode11013212 + e24KC2ThetaAboveNode11013213 + +theorem e24KC2ThetaAboveNode1101322 : + adaptiveCoverCheck 12 (childHL (childHL (childHH thetaAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHH thetaAboveCell1101))) + e24KC2ThetaAboveNode11013220 e24KC2ThetaAboveNode11013221 e24KC2ThetaAboveLeaf11013222 + e24KC2ThetaAboveLeaf11013223 + +theorem e24KC2ThetaAboveNode1101323 : + adaptiveCoverCheck 12 (childHH (childHL (childHH thetaAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHH thetaAboveCell1101))) + e24KC2ThetaAboveNode11013230 e24KC2ThetaAboveNode11013231 e24KC2ThetaAboveLeaf11013232 + e24KC2ThetaAboveLeaf11013233 + +theorem e24KC2ThetaAboveNode1101330 : + adaptiveCoverCheck 12 (childLL (childHH (childHH thetaAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHH thetaAboveCell1101))) + e24KC2ThetaAboveLeaf11013300 e24KC2ThetaAboveLeaf11013301 e24KC2ThetaAboveNode11013302 + e24KC2ThetaAboveNode11013303 + +theorem e24KC2ThetaAboveNode1101331 : + adaptiveCoverCheck 12 (childLH (childHH (childHH thetaAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHH thetaAboveCell1101))) + e24KC2ThetaAboveLeaf11013310 e24KC2ThetaAboveLeaf11013311 e24KC2ThetaAboveNode11013312 + e24KC2ThetaAboveNode11013313 + +theorem e24KC2ThetaAboveNode1101332 : + adaptiveCoverCheck 12 (childHL (childHH (childHH thetaAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHH thetaAboveCell1101))) + e24KC2ThetaAboveNode11013320 e24KC2ThetaAboveNode11013321 e24KC2ThetaAboveLeaf11013322 + e24KC2ThetaAboveLeaf11013323 + +theorem e24KC2ThetaAboveNode1101333 : + adaptiveCoverCheck 12 (childHH (childHH (childHH thetaAboveCell1101))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHH thetaAboveCell1101))) + e24KC2ThetaAboveNode11013330 e24KC2ThetaAboveNode11013331 e24KC2ThetaAboveLeaf11013332 + e24KC2ThetaAboveLeaf11013333 + +theorem e24KC2ThetaAboveNode1110220 : + adaptiveCoverCheck 12 (childLL (childHL (childHL thetaAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHL thetaAboveCell1110))) + e24KC2ThetaAboveLeaf11102200 e24KC2ThetaAboveLeaf11102201 e24KC2ThetaAboveNode11102202 + e24KC2ThetaAboveNode11102203 + +theorem e24KC2ThetaAboveNode1110221 : + adaptiveCoverCheck 12 (childLH (childHL (childHL thetaAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHL thetaAboveCell1110))) + e24KC2ThetaAboveLeaf11102210 e24KC2ThetaAboveLeaf11102211 e24KC2ThetaAboveNode11102212 + e24KC2ThetaAboveNode11102213 + +theorem e24KC2ThetaAboveNode1110222 : + adaptiveCoverCheck 12 (childHL (childHL (childHL thetaAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHL thetaAboveCell1110))) + e24KC2ThetaAboveNode11102220 e24KC2ThetaAboveNode11102221 e24KC2ThetaAboveLeaf11102222 + e24KC2ThetaAboveLeaf11102223 + +theorem e24KC2ThetaAboveNode1110223 : + adaptiveCoverCheck 12 (childHH (childHL (childHL thetaAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHL thetaAboveCell1110))) + e24KC2ThetaAboveNode11102230 e24KC2ThetaAboveNode11102231 e24KC2ThetaAboveLeaf11102232 + e24KC2ThetaAboveLeaf11102233 + +theorem e24KC2ThetaAboveNode1110230 : + adaptiveCoverCheck 12 (childLL (childHH (childHL thetaAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHL thetaAboveCell1110))) + e24KC2ThetaAboveLeaf11102300 e24KC2ThetaAboveLeaf11102301 e24KC2ThetaAboveNode11102302 + e24KC2ThetaAboveNode11102303 + +theorem e24KC2ThetaAboveNode1110231 : + adaptiveCoverCheck 12 (childLH (childHH (childHL thetaAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHL thetaAboveCell1110))) + e24KC2ThetaAboveLeaf11102310 e24KC2ThetaAboveLeaf11102311 e24KC2ThetaAboveNode11102312 + e24KC2ThetaAboveNode11102313 + +theorem e24KC2ThetaAboveNode1110232 : + adaptiveCoverCheck 12 (childHL (childHH (childHL thetaAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHL thetaAboveCell1110))) + e24KC2ThetaAboveNode11102320 e24KC2ThetaAboveNode11102321 e24KC2ThetaAboveLeaf11102322 + e24KC2ThetaAboveLeaf11102323 + +theorem e24KC2ThetaAboveNode1110233 : + adaptiveCoverCheck 12 (childHH (childHH (childHL thetaAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHL thetaAboveCell1110))) + e24KC2ThetaAboveNode11102330 e24KC2ThetaAboveNode11102331 e24KC2ThetaAboveLeaf11102332 + e24KC2ThetaAboveLeaf11102333 + +theorem e24KC2ThetaAboveNode1110320 : + adaptiveCoverCheck 12 (childLL (childHL (childHH thetaAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHH thetaAboveCell1110))) + e24KC2ThetaAboveLeaf11103200 e24KC2ThetaAboveLeaf11103201 e24KC2ThetaAboveNode11103202 + e24KC2ThetaAboveNode11103203 + +theorem e24KC2ThetaAboveNode1110321 : + adaptiveCoverCheck 12 (childLH (childHL (childHH thetaAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHH thetaAboveCell1110))) + e24KC2ThetaAboveLeaf11103210 e24KC2ThetaAboveLeaf11103211 e24KC2ThetaAboveNode11103212 + e24KC2ThetaAboveNode11103213 + +theorem e24KC2ThetaAboveNode1110322 : + adaptiveCoverCheck 12 (childHL (childHL (childHH thetaAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHH thetaAboveCell1110))) + e24KC2ThetaAboveNode11103220 e24KC2ThetaAboveNode11103221 e24KC2ThetaAboveLeaf11103222 + e24KC2ThetaAboveLeaf11103223 + +theorem e24KC2ThetaAboveNode1110323 : + adaptiveCoverCheck 12 (childHH (childHL (childHH thetaAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHH thetaAboveCell1110))) + e24KC2ThetaAboveNode11103230 e24KC2ThetaAboveNode11103231 e24KC2ThetaAboveLeaf11103232 + e24KC2ThetaAboveLeaf11103233 + +theorem e24KC2ThetaAboveNode1110330 : + adaptiveCoverCheck 12 (childLL (childHH (childHH thetaAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHH thetaAboveCell1110))) + e24KC2ThetaAboveLeaf11103300 e24KC2ThetaAboveLeaf11103301 e24KC2ThetaAboveNode11103302 + e24KC2ThetaAboveNode11103303 + +theorem e24KC2ThetaAboveNode1110331 : + adaptiveCoverCheck 12 (childLH (childHH (childHH thetaAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHH thetaAboveCell1110))) + e24KC2ThetaAboveLeaf11103310 e24KC2ThetaAboveLeaf11103311 e24KC2ThetaAboveNode11103312 + e24KC2ThetaAboveNode11103313 + +theorem e24KC2ThetaAboveNode1110332 : + adaptiveCoverCheck 12 (childHL (childHH (childHH thetaAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHH thetaAboveCell1110))) + e24KC2ThetaAboveNode11103320 e24KC2ThetaAboveNode11103321 e24KC2ThetaAboveLeaf11103322 + e24KC2ThetaAboveLeaf11103323 + +theorem e24KC2ThetaAboveNode1110333 : + adaptiveCoverCheck 12 (childHH (childHH (childHH thetaAboveCell1110))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHH thetaAboveCell1110))) + e24KC2ThetaAboveNode11103330 e24KC2ThetaAboveNode11103331 e24KC2ThetaAboveLeaf11103332 + e24KC2ThetaAboveLeaf11103333 + +theorem e24KC2ThetaAboveNode1111220 : + adaptiveCoverCheck 12 (childLL (childHL (childHL thetaAboveCell1111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHL thetaAboveCell1111))) + e24KC2ThetaAboveLeaf11112200 e24KC2ThetaAboveLeaf11112201 e24KC2ThetaAboveNode11112202 + e24KC2ThetaAboveNode11112203 + +theorem e24KC2ThetaAboveNode1111221 : + adaptiveCoverCheck 12 (childLH (childHL (childHL thetaAboveCell1111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHL thetaAboveCell1111))) + e24KC2ThetaAboveLeaf11112210 e24KC2ThetaAboveLeaf11112211 e24KC2ThetaAboveNode11112212 + e24KC2ThetaAboveNode11112213 + +theorem e24KC2ThetaAboveNode1111222 : + adaptiveCoverCheck 12 (childHL (childHL (childHL thetaAboveCell1111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHL thetaAboveCell1111))) + e24KC2ThetaAboveNode11112220 e24KC2ThetaAboveNode11112221 e24KC2ThetaAboveLeaf11112222 + e24KC2ThetaAboveLeaf11112223 + +theorem e24KC2ThetaAboveNode1111223 : + adaptiveCoverCheck 12 (childHH (childHL (childHL thetaAboveCell1111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHL thetaAboveCell1111))) + e24KC2ThetaAboveNode11112230 e24KC2ThetaAboveNode11112231 e24KC2ThetaAboveLeaf11112232 + e24KC2ThetaAboveLeaf11112233 + +theorem e24KC2ThetaAboveNode1111230 : + adaptiveCoverCheck 12 (childLL (childHH (childHL thetaAboveCell1111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHL thetaAboveCell1111))) + e24KC2ThetaAboveLeaf11112300 e24KC2ThetaAboveLeaf11112301 e24KC2ThetaAboveNode11112302 + e24KC2ThetaAboveNode11112303 + +theorem e24KC2ThetaAboveNode1111231 : + adaptiveCoverCheck 12 (childLH (childHH (childHL thetaAboveCell1111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHL thetaAboveCell1111))) + e24KC2ThetaAboveLeaf11112310 e24KC2ThetaAboveLeaf11112311 e24KC2ThetaAboveNode11112312 + e24KC2ThetaAboveNode11112313 + +theorem e24KC2ThetaAboveNode1111232 : + adaptiveCoverCheck 12 (childHL (childHH (childHL thetaAboveCell1111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHL thetaAboveCell1111))) + e24KC2ThetaAboveNode11112320 e24KC2ThetaAboveNode11112321 e24KC2ThetaAboveLeaf11112322 + e24KC2ThetaAboveLeaf11112323 + +theorem e24KC2ThetaAboveNode1111233 : + adaptiveCoverCheck 12 (childHH (childHH (childHL thetaAboveCell1111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHL thetaAboveCell1111))) + e24KC2ThetaAboveNode11112330 e24KC2ThetaAboveNode11112331 e24KC2ThetaAboveNode11112332 + e24KC2ThetaAboveNode11112333 + +theorem e24KC2ThetaAboveNode1111320 : + adaptiveCoverCheck 12 (childLL (childHL (childHH thetaAboveCell1111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHL (childHH thetaAboveCell1111))) + e24KC2ThetaAboveLeaf11113200 e24KC2ThetaAboveLeaf11113201 e24KC2ThetaAboveNode11113202 + e24KC2ThetaAboveNode11113203 + +theorem e24KC2ThetaAboveNode1111321 : + adaptiveCoverCheck 12 (childLH (childHL (childHH thetaAboveCell1111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHL (childHH thetaAboveCell1111))) + e24KC2ThetaAboveLeaf11113210 e24KC2ThetaAboveLeaf11113211 e24KC2ThetaAboveNode11113212 + e24KC2ThetaAboveNode11113213 + +theorem e24KC2ThetaAboveNode1111322 : + adaptiveCoverCheck 12 (childHL (childHL (childHH thetaAboveCell1111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHL (childHH thetaAboveCell1111))) + e24KC2ThetaAboveNode11113220 e24KC2ThetaAboveNode11113221 e24KC2ThetaAboveNode11113222 + e24KC2ThetaAboveNode11113223 + +theorem e24KC2ThetaAboveNode1111323 : + adaptiveCoverCheck 12 (childHH (childHL (childHH thetaAboveCell1111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHL (childHH thetaAboveCell1111))) + e24KC2ThetaAboveNode11113230 e24KC2ThetaAboveNode11113231 e24KC2ThetaAboveNode11113232 + e24KC2ThetaAboveNode11113233 + +theorem e24KC2ThetaAboveNode1111330 : + adaptiveCoverCheck 12 (childLL (childHH (childHH thetaAboveCell1111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLL (childHH (childHH thetaAboveCell1111))) + e24KC2ThetaAboveLeaf11113300 e24KC2ThetaAboveLeaf11113301 e24KC2ThetaAboveNode11113302 + e24KC2ThetaAboveNode11113303 + +theorem e24KC2ThetaAboveNode1111331 : + adaptiveCoverCheck 12 (childLH (childHH (childHH thetaAboveCell1111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childLH (childHH (childHH thetaAboveCell1111))) + e24KC2ThetaAboveLeaf11113310 e24KC2ThetaAboveLeaf11113311 e24KC2ThetaAboveNode11113312 + e24KC2ThetaAboveNode11113313 + +theorem e24KC2ThetaAboveNode1111332 : + adaptiveCoverCheck 12 (childHL (childHH (childHH thetaAboveCell1111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHL (childHH (childHH thetaAboveCell1111))) + e24KC2ThetaAboveNode11113320 e24KC2ThetaAboveNode11113321 e24KC2ThetaAboveNode11113322 + e24KC2ThetaAboveNode11113323 + +theorem e24KC2ThetaAboveNode1111333 : + adaptiveCoverCheck 12 (childHH (childHH (childHH thetaAboveCell1111))) = true := + adaptiveCoverCheck_succ_of_children 11 (childHH (childHH (childHH thetaAboveCell1111))) + e24KC2ThetaAboveNode11113330 e24KC2ThetaAboveNode11113331 e24KC2ThetaAboveNode11113332 + e24KC2ThetaAboveNode11113333 + +theorem e24KC2ThetaAboveNode000020 : + adaptiveCoverCheck 13 (childLL (childHL thetaAboveCell0000)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHL thetaAboveCell0000)) + e24KC2ThetaAboveLeaf0000200 e24KC2ThetaAboveLeaf0000201 e24KC2ThetaAboveNode0000202 + e24KC2ThetaAboveNode0000203 + +theorem e24KC2ThetaAboveNode000021 : + adaptiveCoverCheck 13 (childLH (childHL thetaAboveCell0000)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHL thetaAboveCell0000)) + e24KC2ThetaAboveLeaf0000210 e24KC2ThetaAboveLeaf0000211 e24KC2ThetaAboveNode0000212 + e24KC2ThetaAboveNode0000213 + +theorem e24KC2ThetaAboveNode000022 : + adaptiveCoverCheck 13 (childHL (childHL thetaAboveCell0000)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHL thetaAboveCell0000)) + e24KC2ThetaAboveNode0000220 e24KC2ThetaAboveNode0000221 e24KC2ThetaAboveNode0000222 + e24KC2ThetaAboveNode0000223 + +theorem e24KC2ThetaAboveNode000023 : + adaptiveCoverCheck 13 (childHH (childHL thetaAboveCell0000)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHL thetaAboveCell0000)) + e24KC2ThetaAboveNode0000230 e24KC2ThetaAboveNode0000231 e24KC2ThetaAboveNode0000232 + e24KC2ThetaAboveNode0000233 + +theorem e24KC2ThetaAboveNode000030 : + adaptiveCoverCheck 13 (childLL (childHH thetaAboveCell0000)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHH thetaAboveCell0000)) + e24KC2ThetaAboveLeaf0000300 e24KC2ThetaAboveLeaf0000301 e24KC2ThetaAboveNode0000302 + e24KC2ThetaAboveNode0000303 + +theorem e24KC2ThetaAboveNode000031 : + adaptiveCoverCheck 13 (childLH (childHH thetaAboveCell0000)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHH thetaAboveCell0000)) + e24KC2ThetaAboveLeaf0000310 e24KC2ThetaAboveLeaf0000311 e24KC2ThetaAboveNode0000312 + e24KC2ThetaAboveNode0000313 + +theorem e24KC2ThetaAboveNode000032 : + adaptiveCoverCheck 13 (childHL (childHH thetaAboveCell0000)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHH thetaAboveCell0000)) + e24KC2ThetaAboveNode0000320 e24KC2ThetaAboveNode0000321 e24KC2ThetaAboveNode0000322 + e24KC2ThetaAboveNode0000323 + +theorem e24KC2ThetaAboveNode000033 : + adaptiveCoverCheck 13 (childHH (childHH thetaAboveCell0000)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHH thetaAboveCell0000)) + e24KC2ThetaAboveNode0000330 e24KC2ThetaAboveNode0000331 e24KC2ThetaAboveNode0000332 + e24KC2ThetaAboveNode0000333 + +theorem e24KC2ThetaAboveNode000120 : + adaptiveCoverCheck 13 (childLL (childHL thetaAboveCell0001)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHL thetaAboveCell0001)) + e24KC2ThetaAboveLeaf0001200 e24KC2ThetaAboveLeaf0001201 e24KC2ThetaAboveNode0001202 + e24KC2ThetaAboveNode0001203 + +theorem e24KC2ThetaAboveNode000121 : + adaptiveCoverCheck 13 (childLH (childHL thetaAboveCell0001)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHL thetaAboveCell0001)) + e24KC2ThetaAboveLeaf0001210 e24KC2ThetaAboveLeaf0001211 e24KC2ThetaAboveNode0001212 + e24KC2ThetaAboveNode0001213 + +theorem e24KC2ThetaAboveNode000122 : + adaptiveCoverCheck 13 (childHL (childHL thetaAboveCell0001)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHL thetaAboveCell0001)) + e24KC2ThetaAboveNode0001220 e24KC2ThetaAboveNode0001221 e24KC2ThetaAboveNode0001222 + e24KC2ThetaAboveNode0001223 + +theorem e24KC2ThetaAboveNode000123 : + adaptiveCoverCheck 13 (childHH (childHL thetaAboveCell0001)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHL thetaAboveCell0001)) + e24KC2ThetaAboveNode0001230 e24KC2ThetaAboveNode0001231 e24KC2ThetaAboveNode0001232 + e24KC2ThetaAboveNode0001233 + +theorem e24KC2ThetaAboveNode000130 : + adaptiveCoverCheck 13 (childLL (childHH thetaAboveCell0001)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHH thetaAboveCell0001)) + e24KC2ThetaAboveLeaf0001300 e24KC2ThetaAboveLeaf0001301 e24KC2ThetaAboveNode0001302 + e24KC2ThetaAboveNode0001303 + +theorem e24KC2ThetaAboveNode000131 : + adaptiveCoverCheck 13 (childLH (childHH thetaAboveCell0001)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHH thetaAboveCell0001)) + e24KC2ThetaAboveLeaf0001310 e24KC2ThetaAboveLeaf0001311 e24KC2ThetaAboveNode0001312 + e24KC2ThetaAboveNode0001313 + +theorem e24KC2ThetaAboveNode000132 : + adaptiveCoverCheck 13 (childHL (childHH thetaAboveCell0001)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHH thetaAboveCell0001)) + e24KC2ThetaAboveNode0001320 e24KC2ThetaAboveNode0001321 e24KC2ThetaAboveNode0001322 + e24KC2ThetaAboveNode0001323 + +theorem e24KC2ThetaAboveNode000133 : + adaptiveCoverCheck 13 (childHH (childHH thetaAboveCell0001)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHH thetaAboveCell0001)) + e24KC2ThetaAboveNode0001330 e24KC2ThetaAboveNode0001331 e24KC2ThetaAboveNode0001332 + e24KC2ThetaAboveNode0001333 + +theorem e24KC2ThetaAboveNode000200 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell0002)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLL thetaAboveCell0002)) + e24KC2ThetaAboveLeaf0002000 e24KC2ThetaAboveLeaf0002001 e24KC2ThetaAboveLeaf0002002 + e24KC2ThetaAboveLeaf0002003 + +theorem e24KC2ThetaAboveNode000201 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell0002)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLL thetaAboveCell0002)) + e24KC2ThetaAboveLeaf0002010 e24KC2ThetaAboveLeaf0002011 e24KC2ThetaAboveLeaf0002012 + e24KC2ThetaAboveLeaf0002013 + +theorem e24KC2ThetaAboveNode000210 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell0002)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLH thetaAboveCell0002)) + e24KC2ThetaAboveLeaf0002100 e24KC2ThetaAboveLeaf0002101 e24KC2ThetaAboveLeaf0002102 + e24KC2ThetaAboveLeaf0002103 + +theorem e24KC2ThetaAboveNode000211 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell0002)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLH thetaAboveCell0002)) + e24KC2ThetaAboveLeaf0002110 e24KC2ThetaAboveLeaf0002111 e24KC2ThetaAboveLeaf0002112 + e24KC2ThetaAboveLeaf0002113 + +theorem e24KC2ThetaAboveNode000300 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell0003)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLL thetaAboveCell0003)) + e24KC2ThetaAboveLeaf0003000 e24KC2ThetaAboveLeaf0003001 e24KC2ThetaAboveLeaf0003002 + e24KC2ThetaAboveLeaf0003003 + +theorem e24KC2ThetaAboveNode000301 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell0003)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLL thetaAboveCell0003)) + e24KC2ThetaAboveLeaf0003010 e24KC2ThetaAboveLeaf0003011 e24KC2ThetaAboveLeaf0003012 + e24KC2ThetaAboveLeaf0003013 + +theorem e24KC2ThetaAboveNode000310 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell0003)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLH thetaAboveCell0003)) + e24KC2ThetaAboveLeaf0003100 e24KC2ThetaAboveLeaf0003101 e24KC2ThetaAboveLeaf0003102 + e24KC2ThetaAboveLeaf0003103 + +theorem e24KC2ThetaAboveNode000311 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell0003)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLH thetaAboveCell0003)) + e24KC2ThetaAboveLeaf0003110 e24KC2ThetaAboveLeaf0003111 e24KC2ThetaAboveLeaf0003112 + e24KC2ThetaAboveLeaf0003113 + +theorem e24KC2ThetaAboveNode001020 : + adaptiveCoverCheck 13 (childLL (childHL thetaAboveCell0010)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHL thetaAboveCell0010)) + e24KC2ThetaAboveLeaf0010200 e24KC2ThetaAboveLeaf0010201 e24KC2ThetaAboveNode0010202 + e24KC2ThetaAboveNode0010203 + +theorem e24KC2ThetaAboveNode001021 : + adaptiveCoverCheck 13 (childLH (childHL thetaAboveCell0010)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHL thetaAboveCell0010)) + e24KC2ThetaAboveLeaf0010210 e24KC2ThetaAboveLeaf0010211 e24KC2ThetaAboveNode0010212 + e24KC2ThetaAboveNode0010213 + +theorem e24KC2ThetaAboveNode001022 : + adaptiveCoverCheck 13 (childHL (childHL thetaAboveCell0010)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHL thetaAboveCell0010)) + e24KC2ThetaAboveNode0010220 e24KC2ThetaAboveNode0010221 e24KC2ThetaAboveNode0010222 + e24KC2ThetaAboveNode0010223 + +theorem e24KC2ThetaAboveNode001023 : + adaptiveCoverCheck 13 (childHH (childHL thetaAboveCell0010)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHL thetaAboveCell0010)) + e24KC2ThetaAboveNode0010230 e24KC2ThetaAboveNode0010231 e24KC2ThetaAboveNode0010232 + e24KC2ThetaAboveNode0010233 + +theorem e24KC2ThetaAboveNode001030 : + adaptiveCoverCheck 13 (childLL (childHH thetaAboveCell0010)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHH thetaAboveCell0010)) + e24KC2ThetaAboveLeaf0010300 e24KC2ThetaAboveLeaf0010301 e24KC2ThetaAboveNode0010302 + e24KC2ThetaAboveNode0010303 + +theorem e24KC2ThetaAboveNode001031 : + adaptiveCoverCheck 13 (childLH (childHH thetaAboveCell0010)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHH thetaAboveCell0010)) + e24KC2ThetaAboveLeaf0010310 e24KC2ThetaAboveLeaf0010311 e24KC2ThetaAboveNode0010312 + e24KC2ThetaAboveNode0010313 + +theorem e24KC2ThetaAboveNode001032 : + adaptiveCoverCheck 13 (childHL (childHH thetaAboveCell0010)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHH thetaAboveCell0010)) + e24KC2ThetaAboveNode0010320 e24KC2ThetaAboveNode0010321 e24KC2ThetaAboveNode0010322 + e24KC2ThetaAboveNode0010323 + +theorem e24KC2ThetaAboveNode001033 : + adaptiveCoverCheck 13 (childHH (childHH thetaAboveCell0010)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHH thetaAboveCell0010)) + e24KC2ThetaAboveNode0010330 e24KC2ThetaAboveNode0010331 e24KC2ThetaAboveNode0010332 + e24KC2ThetaAboveNode0010333 + +theorem e24KC2ThetaAboveNode001120 : + adaptiveCoverCheck 13 (childLL (childHL thetaAboveCell0011)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHL thetaAboveCell0011)) + e24KC2ThetaAboveLeaf0011200 e24KC2ThetaAboveLeaf0011201 e24KC2ThetaAboveNode0011202 + e24KC2ThetaAboveNode0011203 + +theorem e24KC2ThetaAboveNode001121 : + adaptiveCoverCheck 13 (childLH (childHL thetaAboveCell0011)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHL thetaAboveCell0011)) + e24KC2ThetaAboveLeaf0011210 e24KC2ThetaAboveLeaf0011211 e24KC2ThetaAboveNode0011212 + e24KC2ThetaAboveNode0011213 + +theorem e24KC2ThetaAboveNode001122 : + adaptiveCoverCheck 13 (childHL (childHL thetaAboveCell0011)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHL thetaAboveCell0011)) + e24KC2ThetaAboveNode0011220 e24KC2ThetaAboveNode0011221 e24KC2ThetaAboveNode0011222 + e24KC2ThetaAboveNode0011223 + +theorem e24KC2ThetaAboveNode001123 : + adaptiveCoverCheck 13 (childHH (childHL thetaAboveCell0011)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHL thetaAboveCell0011)) + e24KC2ThetaAboveNode0011230 e24KC2ThetaAboveNode0011231 e24KC2ThetaAboveNode0011232 + e24KC2ThetaAboveNode0011233 + +theorem e24KC2ThetaAboveNode001130 : + adaptiveCoverCheck 13 (childLL (childHH thetaAboveCell0011)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHH thetaAboveCell0011)) + e24KC2ThetaAboveLeaf0011300 e24KC2ThetaAboveLeaf0011301 e24KC2ThetaAboveNode0011302 + e24KC2ThetaAboveNode0011303 + +theorem e24KC2ThetaAboveNode001131 : + adaptiveCoverCheck 13 (childLH (childHH thetaAboveCell0011)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHH thetaAboveCell0011)) + e24KC2ThetaAboveLeaf0011310 e24KC2ThetaAboveLeaf0011311 e24KC2ThetaAboveNode0011312 + e24KC2ThetaAboveNode0011313 + +theorem e24KC2ThetaAboveNode001132 : + adaptiveCoverCheck 13 (childHL (childHH thetaAboveCell0011)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHH thetaAboveCell0011)) + e24KC2ThetaAboveNode0011320 e24KC2ThetaAboveNode0011321 e24KC2ThetaAboveNode0011322 + e24KC2ThetaAboveNode0011323 + +theorem e24KC2ThetaAboveNode001133 : + adaptiveCoverCheck 13 (childHH (childHH thetaAboveCell0011)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHH thetaAboveCell0011)) + e24KC2ThetaAboveNode0011330 e24KC2ThetaAboveNode0011331 e24KC2ThetaAboveNode0011332 + e24KC2ThetaAboveNode0011333 + +theorem e24KC2ThetaAboveNode001200 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell0012)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLL thetaAboveCell0012)) + e24KC2ThetaAboveLeaf0012000 e24KC2ThetaAboveLeaf0012001 e24KC2ThetaAboveLeaf0012002 + e24KC2ThetaAboveLeaf0012003 + +theorem e24KC2ThetaAboveNode001201 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell0012)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLL thetaAboveCell0012)) + e24KC2ThetaAboveLeaf0012010 e24KC2ThetaAboveLeaf0012011 e24KC2ThetaAboveLeaf0012012 + e24KC2ThetaAboveLeaf0012013 + +theorem e24KC2ThetaAboveNode001210 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell0012)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLH thetaAboveCell0012)) + e24KC2ThetaAboveLeaf0012100 e24KC2ThetaAboveLeaf0012101 e24KC2ThetaAboveLeaf0012102 + e24KC2ThetaAboveLeaf0012103 + +theorem e24KC2ThetaAboveNode001211 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell0012)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLH thetaAboveCell0012)) + e24KC2ThetaAboveLeaf0012110 e24KC2ThetaAboveLeaf0012111 e24KC2ThetaAboveLeaf0012112 + e24KC2ThetaAboveLeaf0012113 + +theorem e24KC2ThetaAboveNode001300 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell0013)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLL thetaAboveCell0013)) + e24KC2ThetaAboveLeaf0013000 e24KC2ThetaAboveLeaf0013001 e24KC2ThetaAboveLeaf0013002 + e24KC2ThetaAboveLeaf0013003 + +theorem e24KC2ThetaAboveNode001301 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell0013)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLL thetaAboveCell0013)) + e24KC2ThetaAboveLeaf0013010 e24KC2ThetaAboveLeaf0013011 e24KC2ThetaAboveLeaf0013012 + e24KC2ThetaAboveLeaf0013013 + +theorem e24KC2ThetaAboveNode001310 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell0013)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLH thetaAboveCell0013)) + e24KC2ThetaAboveLeaf0013100 e24KC2ThetaAboveLeaf0013101 e24KC2ThetaAboveLeaf0013102 + e24KC2ThetaAboveLeaf0013103 + +theorem e24KC2ThetaAboveNode001311 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell0013)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLH thetaAboveCell0013)) + e24KC2ThetaAboveLeaf0013110 e24KC2ThetaAboveLeaf0013111 e24KC2ThetaAboveLeaf0013112 + e24KC2ThetaAboveLeaf0013113 + +theorem e24KC2ThetaAboveNode010020 : + adaptiveCoverCheck 13 (childLL (childHL thetaAboveCell0100)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHL thetaAboveCell0100)) + e24KC2ThetaAboveLeaf0100200 e24KC2ThetaAboveLeaf0100201 e24KC2ThetaAboveNode0100202 + e24KC2ThetaAboveNode0100203 + +theorem e24KC2ThetaAboveNode010021 : + adaptiveCoverCheck 13 (childLH (childHL thetaAboveCell0100)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHL thetaAboveCell0100)) + e24KC2ThetaAboveLeaf0100210 e24KC2ThetaAboveLeaf0100211 e24KC2ThetaAboveNode0100212 + e24KC2ThetaAboveNode0100213 + +theorem e24KC2ThetaAboveNode010022 : + adaptiveCoverCheck 13 (childHL (childHL thetaAboveCell0100)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHL thetaAboveCell0100)) + e24KC2ThetaAboveNode0100220 e24KC2ThetaAboveNode0100221 e24KC2ThetaAboveNode0100222 + e24KC2ThetaAboveNode0100223 + +theorem e24KC2ThetaAboveNode010023 : + adaptiveCoverCheck 13 (childHH (childHL thetaAboveCell0100)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHL thetaAboveCell0100)) + e24KC2ThetaAboveNode0100230 e24KC2ThetaAboveNode0100231 e24KC2ThetaAboveNode0100232 + e24KC2ThetaAboveNode0100233 + +theorem e24KC2ThetaAboveNode010030 : + adaptiveCoverCheck 13 (childLL (childHH thetaAboveCell0100)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHH thetaAboveCell0100)) + e24KC2ThetaAboveLeaf0100300 e24KC2ThetaAboveLeaf0100301 e24KC2ThetaAboveNode0100302 + e24KC2ThetaAboveNode0100303 + +theorem e24KC2ThetaAboveNode010031 : + adaptiveCoverCheck 13 (childLH (childHH thetaAboveCell0100)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHH thetaAboveCell0100)) + e24KC2ThetaAboveLeaf0100310 e24KC2ThetaAboveLeaf0100311 e24KC2ThetaAboveNode0100312 + e24KC2ThetaAboveNode0100313 + +theorem e24KC2ThetaAboveNode010032 : + adaptiveCoverCheck 13 (childHL (childHH thetaAboveCell0100)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHH thetaAboveCell0100)) + e24KC2ThetaAboveNode0100320 e24KC2ThetaAboveNode0100321 e24KC2ThetaAboveNode0100322 + e24KC2ThetaAboveNode0100323 + +theorem e24KC2ThetaAboveNode010033 : + adaptiveCoverCheck 13 (childHH (childHH thetaAboveCell0100)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHH thetaAboveCell0100)) + e24KC2ThetaAboveNode0100330 e24KC2ThetaAboveNode0100331 e24KC2ThetaAboveNode0100332 + e24KC2ThetaAboveNode0100333 + +theorem e24KC2ThetaAboveNode010120 : + adaptiveCoverCheck 13 (childLL (childHL thetaAboveCell0101)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHL thetaAboveCell0101)) + e24KC2ThetaAboveLeaf0101200 e24KC2ThetaAboveLeaf0101201 e24KC2ThetaAboveNode0101202 + e24KC2ThetaAboveNode0101203 + +theorem e24KC2ThetaAboveNode010121 : + adaptiveCoverCheck 13 (childLH (childHL thetaAboveCell0101)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHL thetaAboveCell0101)) + e24KC2ThetaAboveLeaf0101210 e24KC2ThetaAboveLeaf0101211 e24KC2ThetaAboveNode0101212 + e24KC2ThetaAboveNode0101213 + +theorem e24KC2ThetaAboveNode010122 : + adaptiveCoverCheck 13 (childHL (childHL thetaAboveCell0101)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHL thetaAboveCell0101)) + e24KC2ThetaAboveNode0101220 e24KC2ThetaAboveNode0101221 e24KC2ThetaAboveNode0101222 + e24KC2ThetaAboveNode0101223 + +theorem e24KC2ThetaAboveNode010123 : + adaptiveCoverCheck 13 (childHH (childHL thetaAboveCell0101)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHL thetaAboveCell0101)) + e24KC2ThetaAboveNode0101230 e24KC2ThetaAboveNode0101231 e24KC2ThetaAboveNode0101232 + e24KC2ThetaAboveNode0101233 + +theorem e24KC2ThetaAboveNode010130 : + adaptiveCoverCheck 13 (childLL (childHH thetaAboveCell0101)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHH thetaAboveCell0101)) + e24KC2ThetaAboveLeaf0101300 e24KC2ThetaAboveLeaf0101301 e24KC2ThetaAboveNode0101302 + e24KC2ThetaAboveNode0101303 + +theorem e24KC2ThetaAboveNode010131 : + adaptiveCoverCheck 13 (childLH (childHH thetaAboveCell0101)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHH thetaAboveCell0101)) + e24KC2ThetaAboveLeaf0101310 e24KC2ThetaAboveLeaf0101311 e24KC2ThetaAboveNode0101312 + e24KC2ThetaAboveNode0101313 + +theorem e24KC2ThetaAboveNode010132 : + adaptiveCoverCheck 13 (childHL (childHH thetaAboveCell0101)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHH thetaAboveCell0101)) + e24KC2ThetaAboveNode0101320 e24KC2ThetaAboveNode0101321 e24KC2ThetaAboveNode0101322 + e24KC2ThetaAboveNode0101323 + +theorem e24KC2ThetaAboveNode010133 : + adaptiveCoverCheck 13 (childHH (childHH thetaAboveCell0101)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHH thetaAboveCell0101)) + e24KC2ThetaAboveNode0101330 e24KC2ThetaAboveNode0101331 e24KC2ThetaAboveNode0101332 + e24KC2ThetaAboveNode0101333 + +theorem e24KC2ThetaAboveNode010200 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell0102)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLL thetaAboveCell0102)) + e24KC2ThetaAboveLeaf0102000 e24KC2ThetaAboveLeaf0102001 e24KC2ThetaAboveLeaf0102002 + e24KC2ThetaAboveLeaf0102003 + +theorem e24KC2ThetaAboveNode010201 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell0102)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLL thetaAboveCell0102)) + e24KC2ThetaAboveLeaf0102010 e24KC2ThetaAboveLeaf0102011 e24KC2ThetaAboveLeaf0102012 + e24KC2ThetaAboveLeaf0102013 + +theorem e24KC2ThetaAboveNode010210 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell0102)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLH thetaAboveCell0102)) + e24KC2ThetaAboveLeaf0102100 e24KC2ThetaAboveLeaf0102101 e24KC2ThetaAboveLeaf0102102 + e24KC2ThetaAboveLeaf0102103 + +theorem e24KC2ThetaAboveNode010211 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell0102)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLH thetaAboveCell0102)) + e24KC2ThetaAboveLeaf0102110 e24KC2ThetaAboveLeaf0102111 e24KC2ThetaAboveLeaf0102112 + e24KC2ThetaAboveLeaf0102113 + +theorem e24KC2ThetaAboveNode010300 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell0103)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLL thetaAboveCell0103)) + e24KC2ThetaAboveLeaf0103000 e24KC2ThetaAboveLeaf0103001 e24KC2ThetaAboveLeaf0103002 + e24KC2ThetaAboveLeaf0103003 + +theorem e24KC2ThetaAboveNode010301 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell0103)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLL thetaAboveCell0103)) + e24KC2ThetaAboveLeaf0103010 e24KC2ThetaAboveLeaf0103011 e24KC2ThetaAboveLeaf0103012 + e24KC2ThetaAboveLeaf0103013 + +theorem e24KC2ThetaAboveNode010310 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell0103)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLH thetaAboveCell0103)) + e24KC2ThetaAboveLeaf0103100 e24KC2ThetaAboveLeaf0103101 e24KC2ThetaAboveLeaf0103102 + e24KC2ThetaAboveLeaf0103103 + +theorem e24KC2ThetaAboveNode010311 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell0103)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLH thetaAboveCell0103)) + e24KC2ThetaAboveLeaf0103110 e24KC2ThetaAboveLeaf0103111 e24KC2ThetaAboveLeaf0103112 + e24KC2ThetaAboveLeaf0103113 + +theorem e24KC2ThetaAboveNode011020 : + adaptiveCoverCheck 13 (childLL (childHL thetaAboveCell0110)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHL thetaAboveCell0110)) + e24KC2ThetaAboveLeaf0110200 e24KC2ThetaAboveLeaf0110201 e24KC2ThetaAboveNode0110202 + e24KC2ThetaAboveNode0110203 + +theorem e24KC2ThetaAboveNode011021 : + adaptiveCoverCheck 13 (childLH (childHL thetaAboveCell0110)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHL thetaAboveCell0110)) + e24KC2ThetaAboveLeaf0110210 e24KC2ThetaAboveLeaf0110211 e24KC2ThetaAboveNode0110212 + e24KC2ThetaAboveNode0110213 + +theorem e24KC2ThetaAboveNode011022 : + adaptiveCoverCheck 13 (childHL (childHL thetaAboveCell0110)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHL thetaAboveCell0110)) + e24KC2ThetaAboveNode0110220 e24KC2ThetaAboveNode0110221 e24KC2ThetaAboveNode0110222 + e24KC2ThetaAboveNode0110223 + +theorem e24KC2ThetaAboveNode011023 : + adaptiveCoverCheck 13 (childHH (childHL thetaAboveCell0110)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHL thetaAboveCell0110)) + e24KC2ThetaAboveNode0110230 e24KC2ThetaAboveNode0110231 e24KC2ThetaAboveNode0110232 + e24KC2ThetaAboveNode0110233 + +theorem e24KC2ThetaAboveNode011030 : + adaptiveCoverCheck 13 (childLL (childHH thetaAboveCell0110)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHH thetaAboveCell0110)) + e24KC2ThetaAboveLeaf0110300 e24KC2ThetaAboveLeaf0110301 e24KC2ThetaAboveNode0110302 + e24KC2ThetaAboveNode0110303 + +theorem e24KC2ThetaAboveNode011031 : + adaptiveCoverCheck 13 (childLH (childHH thetaAboveCell0110)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHH thetaAboveCell0110)) + e24KC2ThetaAboveLeaf0110310 e24KC2ThetaAboveLeaf0110311 e24KC2ThetaAboveNode0110312 + e24KC2ThetaAboveNode0110313 + +theorem e24KC2ThetaAboveNode011032 : + adaptiveCoverCheck 13 (childHL (childHH thetaAboveCell0110)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHH thetaAboveCell0110)) + e24KC2ThetaAboveNode0110320 e24KC2ThetaAboveNode0110321 e24KC2ThetaAboveNode0110322 + e24KC2ThetaAboveNode0110323 + +theorem e24KC2ThetaAboveNode011033 : + adaptiveCoverCheck 13 (childHH (childHH thetaAboveCell0110)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHH thetaAboveCell0110)) + e24KC2ThetaAboveNode0110330 e24KC2ThetaAboveNode0110331 e24KC2ThetaAboveNode0110332 + e24KC2ThetaAboveNode0110333 + +theorem e24KC2ThetaAboveNode011120 : + adaptiveCoverCheck 13 (childLL (childHL thetaAboveCell0111)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHL thetaAboveCell0111)) + e24KC2ThetaAboveLeaf0111200 e24KC2ThetaAboveLeaf0111201 e24KC2ThetaAboveNode0111202 + e24KC2ThetaAboveNode0111203 + +theorem e24KC2ThetaAboveNode011121 : + adaptiveCoverCheck 13 (childLH (childHL thetaAboveCell0111)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHL thetaAboveCell0111)) + e24KC2ThetaAboveLeaf0111210 e24KC2ThetaAboveLeaf0111211 e24KC2ThetaAboveNode0111212 + e24KC2ThetaAboveNode0111213 + +theorem e24KC2ThetaAboveNode011122 : + adaptiveCoverCheck 13 (childHL (childHL thetaAboveCell0111)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHL thetaAboveCell0111)) + e24KC2ThetaAboveNode0111220 e24KC2ThetaAboveNode0111221 e24KC2ThetaAboveNode0111222 + e24KC2ThetaAboveNode0111223 + +theorem e24KC2ThetaAboveNode011123 : + adaptiveCoverCheck 13 (childHH (childHL thetaAboveCell0111)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHL thetaAboveCell0111)) + e24KC2ThetaAboveNode0111230 e24KC2ThetaAboveNode0111231 e24KC2ThetaAboveNode0111232 + e24KC2ThetaAboveNode0111233 + +theorem e24KC2ThetaAboveNode011130 : + adaptiveCoverCheck 13 (childLL (childHH thetaAboveCell0111)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHH thetaAboveCell0111)) + e24KC2ThetaAboveLeaf0111300 e24KC2ThetaAboveLeaf0111301 e24KC2ThetaAboveNode0111302 + e24KC2ThetaAboveNode0111303 + +theorem e24KC2ThetaAboveNode011131 : + adaptiveCoverCheck 13 (childLH (childHH thetaAboveCell0111)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHH thetaAboveCell0111)) + e24KC2ThetaAboveLeaf0111310 e24KC2ThetaAboveLeaf0111311 e24KC2ThetaAboveNode0111312 + e24KC2ThetaAboveNode0111313 + +theorem e24KC2ThetaAboveNode011132 : + adaptiveCoverCheck 13 (childHL (childHH thetaAboveCell0111)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHH thetaAboveCell0111)) + e24KC2ThetaAboveNode0111320 e24KC2ThetaAboveNode0111321 e24KC2ThetaAboveNode0111322 + e24KC2ThetaAboveNode0111323 + +theorem e24KC2ThetaAboveNode011133 : + adaptiveCoverCheck 13 (childHH (childHH thetaAboveCell0111)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHH thetaAboveCell0111)) + e24KC2ThetaAboveNode0111330 e24KC2ThetaAboveNode0111331 e24KC2ThetaAboveNode0111332 + e24KC2ThetaAboveNode0111333 + +theorem e24KC2ThetaAboveNode011200 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell0112)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLL thetaAboveCell0112)) + e24KC2ThetaAboveLeaf0112000 e24KC2ThetaAboveLeaf0112001 e24KC2ThetaAboveLeaf0112002 + e24KC2ThetaAboveLeaf0112003 + +theorem e24KC2ThetaAboveNode011201 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell0112)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLL thetaAboveCell0112)) + e24KC2ThetaAboveLeaf0112010 e24KC2ThetaAboveLeaf0112011 e24KC2ThetaAboveLeaf0112012 + e24KC2ThetaAboveLeaf0112013 + +theorem e24KC2ThetaAboveNode011210 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell0112)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLH thetaAboveCell0112)) + e24KC2ThetaAboveLeaf0112100 e24KC2ThetaAboveLeaf0112101 e24KC2ThetaAboveLeaf0112102 + e24KC2ThetaAboveLeaf0112103 + +theorem e24KC2ThetaAboveNode011211 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell0112)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLH thetaAboveCell0112)) + e24KC2ThetaAboveLeaf0112110 e24KC2ThetaAboveLeaf0112111 e24KC2ThetaAboveLeaf0112112 + e24KC2ThetaAboveLeaf0112113 + +theorem e24KC2ThetaAboveNode011300 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell0113)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLL thetaAboveCell0113)) + e24KC2ThetaAboveLeaf0113000 e24KC2ThetaAboveLeaf0113001 e24KC2ThetaAboveLeaf0113002 + e24KC2ThetaAboveLeaf0113003 + +theorem e24KC2ThetaAboveNode011301 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell0113)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLL thetaAboveCell0113)) + e24KC2ThetaAboveLeaf0113010 e24KC2ThetaAboveLeaf0113011 e24KC2ThetaAboveLeaf0113012 + e24KC2ThetaAboveLeaf0113013 + +theorem e24KC2ThetaAboveNode011310 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell0113)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLH thetaAboveCell0113)) + e24KC2ThetaAboveLeaf0113100 e24KC2ThetaAboveLeaf0113101 e24KC2ThetaAboveLeaf0113102 + e24KC2ThetaAboveLeaf0113103 + +theorem e24KC2ThetaAboveNode011311 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell0113)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLH thetaAboveCell0113)) + e24KC2ThetaAboveLeaf0113110 e24KC2ThetaAboveLeaf0113111 e24KC2ThetaAboveLeaf0113112 + e24KC2ThetaAboveLeaf0113113 + +theorem e24KC2ThetaAboveNode100020 : + adaptiveCoverCheck 13 (childLL (childHL thetaAboveCell1000)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHL thetaAboveCell1000)) + e24KC2ThetaAboveLeaf1000200 e24KC2ThetaAboveLeaf1000201 e24KC2ThetaAboveNode1000202 + e24KC2ThetaAboveNode1000203 + +theorem e24KC2ThetaAboveNode100021 : + adaptiveCoverCheck 13 (childLH (childHL thetaAboveCell1000)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHL thetaAboveCell1000)) + e24KC2ThetaAboveLeaf1000210 e24KC2ThetaAboveLeaf1000211 e24KC2ThetaAboveNode1000212 + e24KC2ThetaAboveNode1000213 + +theorem e24KC2ThetaAboveNode100022 : + adaptiveCoverCheck 13 (childHL (childHL thetaAboveCell1000)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHL thetaAboveCell1000)) + e24KC2ThetaAboveNode1000220 e24KC2ThetaAboveNode1000221 e24KC2ThetaAboveNode1000222 + e24KC2ThetaAboveNode1000223 + +theorem e24KC2ThetaAboveNode100023 : + adaptiveCoverCheck 13 (childHH (childHL thetaAboveCell1000)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHL thetaAboveCell1000)) + e24KC2ThetaAboveNode1000230 e24KC2ThetaAboveNode1000231 e24KC2ThetaAboveNode1000232 + e24KC2ThetaAboveNode1000233 + +theorem e24KC2ThetaAboveNode100030 : + adaptiveCoverCheck 13 (childLL (childHH thetaAboveCell1000)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHH thetaAboveCell1000)) + e24KC2ThetaAboveLeaf1000300 e24KC2ThetaAboveLeaf1000301 e24KC2ThetaAboveNode1000302 + e24KC2ThetaAboveNode1000303 + +theorem e24KC2ThetaAboveNode100031 : + adaptiveCoverCheck 13 (childLH (childHH thetaAboveCell1000)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHH thetaAboveCell1000)) + e24KC2ThetaAboveLeaf1000310 e24KC2ThetaAboveLeaf1000311 e24KC2ThetaAboveNode1000312 + e24KC2ThetaAboveNode1000313 + +theorem e24KC2ThetaAboveNode100032 : + adaptiveCoverCheck 13 (childHL (childHH thetaAboveCell1000)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHH thetaAboveCell1000)) + e24KC2ThetaAboveNode1000320 e24KC2ThetaAboveNode1000321 e24KC2ThetaAboveNode1000322 + e24KC2ThetaAboveNode1000323 + +theorem e24KC2ThetaAboveNode100033 : + adaptiveCoverCheck 13 (childHH (childHH thetaAboveCell1000)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHH thetaAboveCell1000)) + e24KC2ThetaAboveNode1000330 e24KC2ThetaAboveNode1000331 e24KC2ThetaAboveNode1000332 + e24KC2ThetaAboveNode1000333 + +theorem e24KC2ThetaAboveNode100120 : + adaptiveCoverCheck 13 (childLL (childHL thetaAboveCell1001)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHL thetaAboveCell1001)) + e24KC2ThetaAboveLeaf1001200 e24KC2ThetaAboveLeaf1001201 e24KC2ThetaAboveNode1001202 + e24KC2ThetaAboveNode1001203 + +theorem e24KC2ThetaAboveNode100121 : + adaptiveCoverCheck 13 (childLH (childHL thetaAboveCell1001)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHL thetaAboveCell1001)) + e24KC2ThetaAboveLeaf1001210 e24KC2ThetaAboveLeaf1001211 e24KC2ThetaAboveNode1001212 + e24KC2ThetaAboveNode1001213 + +theorem e24KC2ThetaAboveNode100122 : + adaptiveCoverCheck 13 (childHL (childHL thetaAboveCell1001)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHL thetaAboveCell1001)) + e24KC2ThetaAboveNode1001220 e24KC2ThetaAboveNode1001221 e24KC2ThetaAboveNode1001222 + e24KC2ThetaAboveNode1001223 + +theorem e24KC2ThetaAboveNode100123 : + adaptiveCoverCheck 13 (childHH (childHL thetaAboveCell1001)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHL thetaAboveCell1001)) + e24KC2ThetaAboveNode1001230 e24KC2ThetaAboveNode1001231 e24KC2ThetaAboveNode1001232 + e24KC2ThetaAboveNode1001233 + +theorem e24KC2ThetaAboveNode100130 : + adaptiveCoverCheck 13 (childLL (childHH thetaAboveCell1001)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHH thetaAboveCell1001)) + e24KC2ThetaAboveLeaf1001300 e24KC2ThetaAboveLeaf1001301 e24KC2ThetaAboveNode1001302 + e24KC2ThetaAboveNode1001303 + +theorem e24KC2ThetaAboveNode100131 : + adaptiveCoverCheck 13 (childLH (childHH thetaAboveCell1001)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHH thetaAboveCell1001)) + e24KC2ThetaAboveLeaf1001310 e24KC2ThetaAboveLeaf1001311 e24KC2ThetaAboveNode1001312 + e24KC2ThetaAboveNode1001313 + +theorem e24KC2ThetaAboveNode100132 : + adaptiveCoverCheck 13 (childHL (childHH thetaAboveCell1001)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHH thetaAboveCell1001)) + e24KC2ThetaAboveNode1001320 e24KC2ThetaAboveNode1001321 e24KC2ThetaAboveNode1001322 + e24KC2ThetaAboveNode1001323 + +theorem e24KC2ThetaAboveNode100133 : + adaptiveCoverCheck 13 (childHH (childHH thetaAboveCell1001)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHH thetaAboveCell1001)) + e24KC2ThetaAboveNode1001330 e24KC2ThetaAboveNode1001331 e24KC2ThetaAboveNode1001332 + e24KC2ThetaAboveNode1001333 + +theorem e24KC2ThetaAboveNode100200 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell1002)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLL thetaAboveCell1002)) + e24KC2ThetaAboveLeaf1002000 e24KC2ThetaAboveLeaf1002001 e24KC2ThetaAboveLeaf1002002 + e24KC2ThetaAboveLeaf1002003 + +theorem e24KC2ThetaAboveNode100201 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell1002)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLL thetaAboveCell1002)) + e24KC2ThetaAboveLeaf1002010 e24KC2ThetaAboveLeaf1002011 e24KC2ThetaAboveLeaf1002012 + e24KC2ThetaAboveLeaf1002013 + +theorem e24KC2ThetaAboveNode100210 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell1002)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLH thetaAboveCell1002)) + e24KC2ThetaAboveLeaf1002100 e24KC2ThetaAboveLeaf1002101 e24KC2ThetaAboveLeaf1002102 + e24KC2ThetaAboveLeaf1002103 + +theorem e24KC2ThetaAboveNode100211 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell1002)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLH thetaAboveCell1002)) + e24KC2ThetaAboveLeaf1002110 e24KC2ThetaAboveLeaf1002111 e24KC2ThetaAboveLeaf1002112 + e24KC2ThetaAboveLeaf1002113 + +theorem e24KC2ThetaAboveNode100300 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell1003)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLL thetaAboveCell1003)) + e24KC2ThetaAboveLeaf1003000 e24KC2ThetaAboveLeaf1003001 e24KC2ThetaAboveLeaf1003002 + e24KC2ThetaAboveLeaf1003003 + +theorem e24KC2ThetaAboveNode100301 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell1003)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLL thetaAboveCell1003)) + e24KC2ThetaAboveLeaf1003010 e24KC2ThetaAboveLeaf1003011 e24KC2ThetaAboveLeaf1003012 + e24KC2ThetaAboveLeaf1003013 + +theorem e24KC2ThetaAboveNode100310 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell1003)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLH thetaAboveCell1003)) + e24KC2ThetaAboveLeaf1003100 e24KC2ThetaAboveLeaf1003101 e24KC2ThetaAboveLeaf1003102 + e24KC2ThetaAboveLeaf1003103 + +theorem e24KC2ThetaAboveNode100311 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell1003)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLH thetaAboveCell1003)) + e24KC2ThetaAboveLeaf1003110 e24KC2ThetaAboveLeaf1003111 e24KC2ThetaAboveLeaf1003112 + e24KC2ThetaAboveLeaf1003113 + +theorem e24KC2ThetaAboveNode101020 : + adaptiveCoverCheck 13 (childLL (childHL thetaAboveCell1010)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHL thetaAboveCell1010)) + e24KC2ThetaAboveLeaf1010200 e24KC2ThetaAboveLeaf1010201 e24KC2ThetaAboveNode1010202 + e24KC2ThetaAboveNode1010203 + +theorem e24KC2ThetaAboveNode101021 : + adaptiveCoverCheck 13 (childLH (childHL thetaAboveCell1010)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHL thetaAboveCell1010)) + e24KC2ThetaAboveLeaf1010210 e24KC2ThetaAboveLeaf1010211 e24KC2ThetaAboveLeaf1010212 + e24KC2ThetaAboveLeaf1010213 + +theorem e24KC2ThetaAboveNode101022 : + adaptiveCoverCheck 13 (childHL (childHL thetaAboveCell1010)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHL thetaAboveCell1010)) + e24KC2ThetaAboveNode1010220 e24KC2ThetaAboveNode1010221 e24KC2ThetaAboveNode1010222 + e24KC2ThetaAboveNode1010223 + +theorem e24KC2ThetaAboveNode101023 : + adaptiveCoverCheck 13 (childHH (childHL thetaAboveCell1010)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHL thetaAboveCell1010)) + e24KC2ThetaAboveNode1010230 e24KC2ThetaAboveNode1010231 e24KC2ThetaAboveNode1010232 + e24KC2ThetaAboveNode1010233 + +theorem e24KC2ThetaAboveNode101030 : + adaptiveCoverCheck 13 (childLL (childHH thetaAboveCell1010)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHH thetaAboveCell1010)) + e24KC2ThetaAboveLeaf1010300 e24KC2ThetaAboveLeaf1010301 e24KC2ThetaAboveLeaf1010302 + e24KC2ThetaAboveLeaf1010303 + +theorem e24KC2ThetaAboveNode101031 : + adaptiveCoverCheck 13 (childLH (childHH thetaAboveCell1010)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHH thetaAboveCell1010)) + e24KC2ThetaAboveLeaf1010310 e24KC2ThetaAboveLeaf1010311 e24KC2ThetaAboveLeaf1010312 + e24KC2ThetaAboveLeaf1010313 + +theorem e24KC2ThetaAboveNode101032 : + adaptiveCoverCheck 13 (childHL (childHH thetaAboveCell1010)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHH thetaAboveCell1010)) + e24KC2ThetaAboveNode1010320 e24KC2ThetaAboveNode1010321 e24KC2ThetaAboveNode1010322 + e24KC2ThetaAboveNode1010323 + +theorem e24KC2ThetaAboveNode101033 : + adaptiveCoverCheck 13 (childHH (childHH thetaAboveCell1010)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHH thetaAboveCell1010)) + e24KC2ThetaAboveNode1010330 e24KC2ThetaAboveNode1010331 e24KC2ThetaAboveNode1010332 + e24KC2ThetaAboveNode1010333 + +theorem e24KC2ThetaAboveNode101120 : + adaptiveCoverCheck 13 (childLL (childHL thetaAboveCell1011)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHL thetaAboveCell1011)) + e24KC2ThetaAboveLeaf1011200 e24KC2ThetaAboveLeaf1011201 e24KC2ThetaAboveLeaf1011202 + e24KC2ThetaAboveLeaf1011203 + +theorem e24KC2ThetaAboveNode101121 : + adaptiveCoverCheck 13 (childLH (childHL thetaAboveCell1011)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHL thetaAboveCell1011)) + e24KC2ThetaAboveLeaf1011210 e24KC2ThetaAboveLeaf1011211 e24KC2ThetaAboveLeaf1011212 + e24KC2ThetaAboveLeaf1011213 + +theorem e24KC2ThetaAboveNode101122 : + adaptiveCoverCheck 13 (childHL (childHL thetaAboveCell1011)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHL thetaAboveCell1011)) + e24KC2ThetaAboveNode1011220 e24KC2ThetaAboveNode1011221 e24KC2ThetaAboveNode1011222 + e24KC2ThetaAboveNode1011223 + +theorem e24KC2ThetaAboveNode101123 : + adaptiveCoverCheck 13 (childHH (childHL thetaAboveCell1011)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHL thetaAboveCell1011)) + e24KC2ThetaAboveNode1011230 e24KC2ThetaAboveNode1011231 e24KC2ThetaAboveNode1011232 + e24KC2ThetaAboveNode1011233 + +theorem e24KC2ThetaAboveNode101130 : + adaptiveCoverCheck 13 (childLL (childHH thetaAboveCell1011)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHH thetaAboveCell1011)) + e24KC2ThetaAboveLeaf1011300 e24KC2ThetaAboveLeaf1011301 e24KC2ThetaAboveLeaf1011302 + e24KC2ThetaAboveLeaf1011303 + +theorem e24KC2ThetaAboveNode101131 : + adaptiveCoverCheck 13 (childLH (childHH thetaAboveCell1011)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHH thetaAboveCell1011)) + e24KC2ThetaAboveLeaf1011310 e24KC2ThetaAboveLeaf1011311 e24KC2ThetaAboveLeaf1011312 + e24KC2ThetaAboveLeaf1011313 + +theorem e24KC2ThetaAboveNode101132 : + adaptiveCoverCheck 13 (childHL (childHH thetaAboveCell1011)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHH thetaAboveCell1011)) + e24KC2ThetaAboveNode1011320 e24KC2ThetaAboveNode1011321 e24KC2ThetaAboveNode1011322 + e24KC2ThetaAboveNode1011323 + +theorem e24KC2ThetaAboveNode101133 : + adaptiveCoverCheck 13 (childHH (childHH thetaAboveCell1011)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHH thetaAboveCell1011)) + e24KC2ThetaAboveNode1011330 e24KC2ThetaAboveNode1011331 e24KC2ThetaAboveNode1011332 + e24KC2ThetaAboveNode1011333 + +theorem e24KC2ThetaAboveNode101200 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell1012)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLL thetaAboveCell1012)) + e24KC2ThetaAboveLeaf1012000 e24KC2ThetaAboveLeaf1012001 e24KC2ThetaAboveLeaf1012002 + e24KC2ThetaAboveLeaf1012003 + +theorem e24KC2ThetaAboveNode101201 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell1012)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLL thetaAboveCell1012)) + e24KC2ThetaAboveLeaf1012010 e24KC2ThetaAboveLeaf1012011 e24KC2ThetaAboveLeaf1012012 + e24KC2ThetaAboveLeaf1012013 + +theorem e24KC2ThetaAboveNode101210 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell1012)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLH thetaAboveCell1012)) + e24KC2ThetaAboveLeaf1012100 e24KC2ThetaAboveLeaf1012101 e24KC2ThetaAboveLeaf1012102 + e24KC2ThetaAboveLeaf1012103 + +theorem e24KC2ThetaAboveNode101211 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell1012)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLH thetaAboveCell1012)) + e24KC2ThetaAboveLeaf1012110 e24KC2ThetaAboveLeaf1012111 e24KC2ThetaAboveLeaf1012112 + e24KC2ThetaAboveLeaf1012113 + +theorem e24KC2ThetaAboveNode101300 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell1013)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLL thetaAboveCell1013)) + e24KC2ThetaAboveLeaf1013000 e24KC2ThetaAboveLeaf1013001 e24KC2ThetaAboveLeaf1013002 + e24KC2ThetaAboveLeaf1013003 + +theorem e24KC2ThetaAboveNode101301 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell1013)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLL thetaAboveCell1013)) + e24KC2ThetaAboveLeaf1013010 e24KC2ThetaAboveLeaf1013011 e24KC2ThetaAboveLeaf1013012 + e24KC2ThetaAboveLeaf1013013 + +theorem e24KC2ThetaAboveNode101310 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell1013)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLH thetaAboveCell1013)) + e24KC2ThetaAboveLeaf1013100 e24KC2ThetaAboveLeaf1013101 e24KC2ThetaAboveLeaf1013102 + e24KC2ThetaAboveLeaf1013103 + +theorem e24KC2ThetaAboveNode101311 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell1013)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLH thetaAboveCell1013)) + e24KC2ThetaAboveLeaf1013110 e24KC2ThetaAboveLeaf1013111 e24KC2ThetaAboveLeaf1013112 + e24KC2ThetaAboveLeaf1013113 + +theorem e24KC2ThetaAboveNode110020 : + adaptiveCoverCheck 13 (childLL (childHL thetaAboveCell1100)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHL thetaAboveCell1100)) + e24KC2ThetaAboveLeaf1100200 e24KC2ThetaAboveLeaf1100201 e24KC2ThetaAboveLeaf1100202 + e24KC2ThetaAboveLeaf1100203 + +theorem e24KC2ThetaAboveNode110021 : + adaptiveCoverCheck 13 (childLH (childHL thetaAboveCell1100)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHL thetaAboveCell1100)) + e24KC2ThetaAboveLeaf1100210 e24KC2ThetaAboveLeaf1100211 e24KC2ThetaAboveLeaf1100212 + e24KC2ThetaAboveLeaf1100213 + +theorem e24KC2ThetaAboveNode110022 : + adaptiveCoverCheck 13 (childHL (childHL thetaAboveCell1100)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHL thetaAboveCell1100)) + e24KC2ThetaAboveNode1100220 e24KC2ThetaAboveNode1100221 e24KC2ThetaAboveNode1100222 + e24KC2ThetaAboveNode1100223 + +theorem e24KC2ThetaAboveNode110023 : + adaptiveCoverCheck 13 (childHH (childHL thetaAboveCell1100)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHL thetaAboveCell1100)) + e24KC2ThetaAboveNode1100230 e24KC2ThetaAboveNode1100231 e24KC2ThetaAboveNode1100232 + e24KC2ThetaAboveNode1100233 + +theorem e24KC2ThetaAboveNode110030 : + adaptiveCoverCheck 13 (childLL (childHH thetaAboveCell1100)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHH thetaAboveCell1100)) + e24KC2ThetaAboveLeaf1100300 e24KC2ThetaAboveLeaf1100301 e24KC2ThetaAboveLeaf1100302 + e24KC2ThetaAboveLeaf1100303 + +theorem e24KC2ThetaAboveNode110031 : + adaptiveCoverCheck 13 (childLH (childHH thetaAboveCell1100)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHH thetaAboveCell1100)) + e24KC2ThetaAboveLeaf1100310 e24KC2ThetaAboveLeaf1100311 e24KC2ThetaAboveLeaf1100312 + e24KC2ThetaAboveLeaf1100313 + +theorem e24KC2ThetaAboveNode110032 : + adaptiveCoverCheck 13 (childHL (childHH thetaAboveCell1100)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHH thetaAboveCell1100)) + e24KC2ThetaAboveNode1100320 e24KC2ThetaAboveNode1100321 e24KC2ThetaAboveNode1100322 + e24KC2ThetaAboveNode1100323 + +theorem e24KC2ThetaAboveNode110033 : + adaptiveCoverCheck 13 (childHH (childHH thetaAboveCell1100)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHH thetaAboveCell1100)) + e24KC2ThetaAboveNode1100330 e24KC2ThetaAboveNode1100331 e24KC2ThetaAboveNode1100332 + e24KC2ThetaAboveNode1100333 + +theorem e24KC2ThetaAboveNode110120 : + adaptiveCoverCheck 13 (childLL (childHL thetaAboveCell1101)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHL thetaAboveCell1101)) + e24KC2ThetaAboveLeaf1101200 e24KC2ThetaAboveLeaf1101201 e24KC2ThetaAboveLeaf1101202 + e24KC2ThetaAboveLeaf1101203 + +theorem e24KC2ThetaAboveNode110121 : + adaptiveCoverCheck 13 (childLH (childHL thetaAboveCell1101)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHL thetaAboveCell1101)) + e24KC2ThetaAboveLeaf1101210 e24KC2ThetaAboveLeaf1101211 e24KC2ThetaAboveLeaf1101212 + e24KC2ThetaAboveLeaf1101213 + +theorem e24KC2ThetaAboveNode110122 : + adaptiveCoverCheck 13 (childHL (childHL thetaAboveCell1101)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHL thetaAboveCell1101)) + e24KC2ThetaAboveNode1101220 e24KC2ThetaAboveNode1101221 e24KC2ThetaAboveNode1101222 + e24KC2ThetaAboveNode1101223 + +theorem e24KC2ThetaAboveNode110123 : + adaptiveCoverCheck 13 (childHH (childHL thetaAboveCell1101)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHL thetaAboveCell1101)) + e24KC2ThetaAboveNode1101230 e24KC2ThetaAboveNode1101231 e24KC2ThetaAboveNode1101232 + e24KC2ThetaAboveNode1101233 + +theorem e24KC2ThetaAboveNode110130 : + adaptiveCoverCheck 13 (childLL (childHH thetaAboveCell1101)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHH thetaAboveCell1101)) + e24KC2ThetaAboveLeaf1101300 e24KC2ThetaAboveLeaf1101301 e24KC2ThetaAboveLeaf1101302 + e24KC2ThetaAboveLeaf1101303 + +theorem e24KC2ThetaAboveNode110131 : + adaptiveCoverCheck 13 (childLH (childHH thetaAboveCell1101)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHH thetaAboveCell1101)) + e24KC2ThetaAboveLeaf1101310 e24KC2ThetaAboveLeaf1101311 e24KC2ThetaAboveLeaf1101312 + e24KC2ThetaAboveLeaf1101313 + +theorem e24KC2ThetaAboveNode110132 : + adaptiveCoverCheck 13 (childHL (childHH thetaAboveCell1101)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHH thetaAboveCell1101)) + e24KC2ThetaAboveNode1101320 e24KC2ThetaAboveNode1101321 e24KC2ThetaAboveNode1101322 + e24KC2ThetaAboveNode1101323 + +theorem e24KC2ThetaAboveNode110133 : + adaptiveCoverCheck 13 (childHH (childHH thetaAboveCell1101)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHH thetaAboveCell1101)) + e24KC2ThetaAboveNode1101330 e24KC2ThetaAboveNode1101331 e24KC2ThetaAboveNode1101332 + e24KC2ThetaAboveNode1101333 + +theorem e24KC2ThetaAboveNode110200 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell1102)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLL thetaAboveCell1102)) + e24KC2ThetaAboveLeaf1102000 e24KC2ThetaAboveLeaf1102001 e24KC2ThetaAboveLeaf1102002 + e24KC2ThetaAboveLeaf1102003 + +theorem e24KC2ThetaAboveNode110201 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell1102)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLL thetaAboveCell1102)) + e24KC2ThetaAboveLeaf1102010 e24KC2ThetaAboveLeaf1102011 e24KC2ThetaAboveLeaf1102012 + e24KC2ThetaAboveLeaf1102013 + +theorem e24KC2ThetaAboveNode110210 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell1102)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLH thetaAboveCell1102)) + e24KC2ThetaAboveLeaf1102100 e24KC2ThetaAboveLeaf1102101 e24KC2ThetaAboveLeaf1102102 + e24KC2ThetaAboveLeaf1102103 + +theorem e24KC2ThetaAboveNode110211 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell1102)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLH thetaAboveCell1102)) + e24KC2ThetaAboveLeaf1102110 e24KC2ThetaAboveLeaf1102111 e24KC2ThetaAboveLeaf1102112 + e24KC2ThetaAboveLeaf1102113 + +theorem e24KC2ThetaAboveNode110300 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell1103)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLL thetaAboveCell1103)) + e24KC2ThetaAboveLeaf1103000 e24KC2ThetaAboveLeaf1103001 e24KC2ThetaAboveLeaf1103002 + e24KC2ThetaAboveLeaf1103003 + +theorem e24KC2ThetaAboveNode110301 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell1103)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLL thetaAboveCell1103)) + e24KC2ThetaAboveLeaf1103010 e24KC2ThetaAboveLeaf1103011 e24KC2ThetaAboveLeaf1103012 + e24KC2ThetaAboveLeaf1103013 + +theorem e24KC2ThetaAboveNode110310 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell1103)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLH thetaAboveCell1103)) + e24KC2ThetaAboveLeaf1103100 e24KC2ThetaAboveLeaf1103101 e24KC2ThetaAboveLeaf1103102 + e24KC2ThetaAboveLeaf1103103 + +theorem e24KC2ThetaAboveNode110311 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell1103)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLH thetaAboveCell1103)) + e24KC2ThetaAboveLeaf1103110 e24KC2ThetaAboveLeaf1103111 e24KC2ThetaAboveLeaf1103112 + e24KC2ThetaAboveLeaf1103113 + +theorem e24KC2ThetaAboveNode111020 : + adaptiveCoverCheck 13 (childLL (childHL thetaAboveCell1110)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHL thetaAboveCell1110)) + e24KC2ThetaAboveLeaf1110200 e24KC2ThetaAboveLeaf1110201 e24KC2ThetaAboveLeaf1110202 + e24KC2ThetaAboveLeaf1110203 + +theorem e24KC2ThetaAboveNode111021 : + adaptiveCoverCheck 13 (childLH (childHL thetaAboveCell1110)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHL thetaAboveCell1110)) + e24KC2ThetaAboveLeaf1110210 e24KC2ThetaAboveLeaf1110211 e24KC2ThetaAboveLeaf1110212 + e24KC2ThetaAboveLeaf1110213 + +theorem e24KC2ThetaAboveNode111022 : + adaptiveCoverCheck 13 (childHL (childHL thetaAboveCell1110)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHL thetaAboveCell1110)) + e24KC2ThetaAboveNode1110220 e24KC2ThetaAboveNode1110221 e24KC2ThetaAboveNode1110222 + e24KC2ThetaAboveNode1110223 + +theorem e24KC2ThetaAboveNode111023 : + adaptiveCoverCheck 13 (childHH (childHL thetaAboveCell1110)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHL thetaAboveCell1110)) + e24KC2ThetaAboveNode1110230 e24KC2ThetaAboveNode1110231 e24KC2ThetaAboveNode1110232 + e24KC2ThetaAboveNode1110233 + +theorem e24KC2ThetaAboveNode111030 : + adaptiveCoverCheck 13 (childLL (childHH thetaAboveCell1110)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHH thetaAboveCell1110)) + e24KC2ThetaAboveLeaf1110300 e24KC2ThetaAboveLeaf1110301 e24KC2ThetaAboveLeaf1110302 + e24KC2ThetaAboveLeaf1110303 + +theorem e24KC2ThetaAboveNode111031 : + adaptiveCoverCheck 13 (childLH (childHH thetaAboveCell1110)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHH thetaAboveCell1110)) + e24KC2ThetaAboveLeaf1110310 e24KC2ThetaAboveLeaf1110311 e24KC2ThetaAboveLeaf1110312 + e24KC2ThetaAboveLeaf1110313 + +theorem e24KC2ThetaAboveNode111032 : + adaptiveCoverCheck 13 (childHL (childHH thetaAboveCell1110)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHH thetaAboveCell1110)) + e24KC2ThetaAboveNode1110320 e24KC2ThetaAboveNode1110321 e24KC2ThetaAboveNode1110322 + e24KC2ThetaAboveNode1110323 + +theorem e24KC2ThetaAboveNode111033 : + adaptiveCoverCheck 13 (childHH (childHH thetaAboveCell1110)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHH thetaAboveCell1110)) + e24KC2ThetaAboveNode1110330 e24KC2ThetaAboveNode1110331 e24KC2ThetaAboveNode1110332 + e24KC2ThetaAboveNode1110333 + +theorem e24KC2ThetaAboveNode111120 : + adaptiveCoverCheck 13 (childLL (childHL thetaAboveCell1111)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHL thetaAboveCell1111)) + e24KC2ThetaAboveLeaf1111200 e24KC2ThetaAboveLeaf1111201 e24KC2ThetaAboveLeaf1111202 + e24KC2ThetaAboveLeaf1111203 + +theorem e24KC2ThetaAboveNode111121 : + adaptiveCoverCheck 13 (childLH (childHL thetaAboveCell1111)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHL thetaAboveCell1111)) + e24KC2ThetaAboveLeaf1111210 e24KC2ThetaAboveLeaf1111211 e24KC2ThetaAboveLeaf1111212 + e24KC2ThetaAboveLeaf1111213 + +theorem e24KC2ThetaAboveNode111122 : + adaptiveCoverCheck 13 (childHL (childHL thetaAboveCell1111)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHL thetaAboveCell1111)) + e24KC2ThetaAboveNode1111220 e24KC2ThetaAboveNode1111221 e24KC2ThetaAboveNode1111222 + e24KC2ThetaAboveNode1111223 + +theorem e24KC2ThetaAboveNode111123 : + adaptiveCoverCheck 13 (childHH (childHL thetaAboveCell1111)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHL thetaAboveCell1111)) + e24KC2ThetaAboveNode1111230 e24KC2ThetaAboveNode1111231 e24KC2ThetaAboveNode1111232 + e24KC2ThetaAboveNode1111233 + +theorem e24KC2ThetaAboveNode111130 : + adaptiveCoverCheck 13 (childLL (childHH thetaAboveCell1111)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childHH thetaAboveCell1111)) + e24KC2ThetaAboveLeaf1111300 e24KC2ThetaAboveLeaf1111301 e24KC2ThetaAboveLeaf1111302 + e24KC2ThetaAboveLeaf1111303 + +theorem e24KC2ThetaAboveNode111131 : + adaptiveCoverCheck 13 (childLH (childHH thetaAboveCell1111)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childHH thetaAboveCell1111)) + e24KC2ThetaAboveLeaf1111310 e24KC2ThetaAboveLeaf1111311 e24KC2ThetaAboveLeaf1111312 + e24KC2ThetaAboveLeaf1111313 + +theorem e24KC2ThetaAboveNode111132 : + adaptiveCoverCheck 13 (childHL (childHH thetaAboveCell1111)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHL (childHH thetaAboveCell1111)) + e24KC2ThetaAboveNode1111320 e24KC2ThetaAboveNode1111321 e24KC2ThetaAboveNode1111322 + e24KC2ThetaAboveNode1111323 + +theorem e24KC2ThetaAboveNode111133 : + adaptiveCoverCheck 13 (childHH (childHH thetaAboveCell1111)) = true := + adaptiveCoverCheck_succ_of_children 12 (childHH (childHH thetaAboveCell1111)) + e24KC2ThetaAboveNode1111330 e24KC2ThetaAboveNode1111331 e24KC2ThetaAboveNode1111332 + e24KC2ThetaAboveNode1111333 + +theorem e24KC2ThetaAboveNode111200 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell1112)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLL thetaAboveCell1112)) + e24KC2ThetaAboveLeaf1112000 e24KC2ThetaAboveLeaf1112001 e24KC2ThetaAboveLeaf1112002 + e24KC2ThetaAboveLeaf1112003 + +theorem e24KC2ThetaAboveNode111201 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell1112)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLL thetaAboveCell1112)) + e24KC2ThetaAboveLeaf1112010 e24KC2ThetaAboveLeaf1112011 e24KC2ThetaAboveLeaf1112012 + e24KC2ThetaAboveLeaf1112013 + +theorem e24KC2ThetaAboveNode111210 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell1112)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLH thetaAboveCell1112)) + e24KC2ThetaAboveLeaf1112100 e24KC2ThetaAboveLeaf1112101 e24KC2ThetaAboveLeaf1112102 + e24KC2ThetaAboveLeaf1112103 + +theorem e24KC2ThetaAboveNode111211 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell1112)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLH thetaAboveCell1112)) + e24KC2ThetaAboveLeaf1112110 e24KC2ThetaAboveLeaf1112111 e24KC2ThetaAboveLeaf1112112 + e24KC2ThetaAboveLeaf1112113 + +theorem e24KC2ThetaAboveNode111300 : + adaptiveCoverCheck 13 (childLL (childLL thetaAboveCell1113)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLL thetaAboveCell1113)) + e24KC2ThetaAboveLeaf1113000 e24KC2ThetaAboveLeaf1113001 e24KC2ThetaAboveLeaf1113002 + e24KC2ThetaAboveLeaf1113003 + +theorem e24KC2ThetaAboveNode111301 : + adaptiveCoverCheck 13 (childLH (childLL thetaAboveCell1113)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLL thetaAboveCell1113)) + e24KC2ThetaAboveLeaf1113010 e24KC2ThetaAboveLeaf1113011 e24KC2ThetaAboveLeaf1113012 + e24KC2ThetaAboveLeaf1113013 + +theorem e24KC2ThetaAboveNode111310 : + adaptiveCoverCheck 13 (childLL (childLH thetaAboveCell1113)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLL (childLH thetaAboveCell1113)) + e24KC2ThetaAboveLeaf1113100 e24KC2ThetaAboveLeaf1113101 e24KC2ThetaAboveLeaf1113102 + e24KC2ThetaAboveLeaf1113103 + +theorem e24KC2ThetaAboveNode111311 : + adaptiveCoverCheck 13 (childLH (childLH thetaAboveCell1113)) = true := + adaptiveCoverCheck_succ_of_children 12 (childLH (childLH thetaAboveCell1113)) + e24KC2ThetaAboveLeaf1113110 e24KC2ThetaAboveLeaf1113111 e24KC2ThetaAboveLeaf1113112 + e24KC2ThetaAboveLeaf1113113 + +theorem e24KC2ThetaAboveNode00000 : + adaptiveCoverCheck 14 (childLL thetaAboveCell0000) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell0000) + e24KC2ThetaAboveLeaf000000 e24KC2ThetaAboveLeaf000001 e24KC2ThetaAboveLeaf000002 + e24KC2ThetaAboveLeaf000003 + +theorem e24KC2ThetaAboveNode00001 : + adaptiveCoverCheck 14 (childLH thetaAboveCell0000) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell0000) + e24KC2ThetaAboveLeaf000010 e24KC2ThetaAboveLeaf000011 e24KC2ThetaAboveLeaf000012 + e24KC2ThetaAboveLeaf000013 + +theorem e24KC2ThetaAboveNode00002 : + adaptiveCoverCheck 14 (childHL thetaAboveCell0000) = true := + adaptiveCoverCheck_succ_of_children 13 (childHL thetaAboveCell0000) + e24KC2ThetaAboveNode000020 e24KC2ThetaAboveNode000021 e24KC2ThetaAboveNode000022 + e24KC2ThetaAboveNode000023 + +theorem e24KC2ThetaAboveNode00003 : + adaptiveCoverCheck 14 (childHH thetaAboveCell0000) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH thetaAboveCell0000) + e24KC2ThetaAboveNode000030 e24KC2ThetaAboveNode000031 e24KC2ThetaAboveNode000032 + e24KC2ThetaAboveNode000033 + +theorem e24KC2ThetaAboveNode00010 : + adaptiveCoverCheck 14 (childLL thetaAboveCell0001) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell0001) + e24KC2ThetaAboveLeaf000100 e24KC2ThetaAboveLeaf000101 e24KC2ThetaAboveLeaf000102 + e24KC2ThetaAboveLeaf000103 + +theorem e24KC2ThetaAboveNode00011 : + adaptiveCoverCheck 14 (childLH thetaAboveCell0001) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell0001) + e24KC2ThetaAboveLeaf000110 e24KC2ThetaAboveLeaf000111 e24KC2ThetaAboveLeaf000112 + e24KC2ThetaAboveLeaf000113 + +theorem e24KC2ThetaAboveNode00012 : + adaptiveCoverCheck 14 (childHL thetaAboveCell0001) = true := + adaptiveCoverCheck_succ_of_children 13 (childHL thetaAboveCell0001) + e24KC2ThetaAboveNode000120 e24KC2ThetaAboveNode000121 e24KC2ThetaAboveNode000122 + e24KC2ThetaAboveNode000123 + +theorem e24KC2ThetaAboveNode00013 : + adaptiveCoverCheck 14 (childHH thetaAboveCell0001) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH thetaAboveCell0001) + e24KC2ThetaAboveNode000130 e24KC2ThetaAboveNode000131 e24KC2ThetaAboveNode000132 + e24KC2ThetaAboveNode000133 + +theorem e24KC2ThetaAboveNode00020 : + adaptiveCoverCheck 14 (childLL thetaAboveCell0002) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell0002) + e24KC2ThetaAboveNode000200 e24KC2ThetaAboveNode000201 e24KC2ThetaAboveLeaf000202 + e24KC2ThetaAboveLeaf000203 + +theorem e24KC2ThetaAboveNode00021 : + adaptiveCoverCheck 14 (childLH thetaAboveCell0002) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell0002) + e24KC2ThetaAboveNode000210 e24KC2ThetaAboveNode000211 e24KC2ThetaAboveLeaf000212 + e24KC2ThetaAboveLeaf000213 + +theorem e24KC2ThetaAboveNode00030 : + adaptiveCoverCheck 14 (childLL thetaAboveCell0003) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell0003) + e24KC2ThetaAboveNode000300 e24KC2ThetaAboveNode000301 e24KC2ThetaAboveLeaf000302 + e24KC2ThetaAboveLeaf000303 + +theorem e24KC2ThetaAboveNode00031 : + adaptiveCoverCheck 14 (childLH thetaAboveCell0003) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell0003) + e24KC2ThetaAboveNode000310 e24KC2ThetaAboveNode000311 e24KC2ThetaAboveLeaf000312 + e24KC2ThetaAboveLeaf000313 + +theorem e24KC2ThetaAboveNode00100 : + adaptiveCoverCheck 14 (childLL thetaAboveCell0010) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell0010) + e24KC2ThetaAboveLeaf001000 e24KC2ThetaAboveLeaf001001 e24KC2ThetaAboveLeaf001002 + e24KC2ThetaAboveLeaf001003 + +theorem e24KC2ThetaAboveNode00101 : + adaptiveCoverCheck 14 (childLH thetaAboveCell0010) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell0010) + e24KC2ThetaAboveLeaf001010 e24KC2ThetaAboveLeaf001011 e24KC2ThetaAboveLeaf001012 + e24KC2ThetaAboveLeaf001013 + +theorem e24KC2ThetaAboveNode00102 : + adaptiveCoverCheck 14 (childHL thetaAboveCell0010) = true := + adaptiveCoverCheck_succ_of_children 13 (childHL thetaAboveCell0010) + e24KC2ThetaAboveNode001020 e24KC2ThetaAboveNode001021 e24KC2ThetaAboveNode001022 + e24KC2ThetaAboveNode001023 + +theorem e24KC2ThetaAboveNode00103 : + adaptiveCoverCheck 14 (childHH thetaAboveCell0010) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH thetaAboveCell0010) + e24KC2ThetaAboveNode001030 e24KC2ThetaAboveNode001031 e24KC2ThetaAboveNode001032 + e24KC2ThetaAboveNode001033 + +theorem e24KC2ThetaAboveNode00110 : + adaptiveCoverCheck 14 (childLL thetaAboveCell0011) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell0011) + e24KC2ThetaAboveLeaf001100 e24KC2ThetaAboveLeaf001101 e24KC2ThetaAboveLeaf001102 + e24KC2ThetaAboveLeaf001103 + +theorem e24KC2ThetaAboveNode00111 : + adaptiveCoverCheck 14 (childLH thetaAboveCell0011) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell0011) + e24KC2ThetaAboveLeaf001110 e24KC2ThetaAboveLeaf001111 e24KC2ThetaAboveLeaf001112 + e24KC2ThetaAboveLeaf001113 + +theorem e24KC2ThetaAboveNode00112 : + adaptiveCoverCheck 14 (childHL thetaAboveCell0011) = true := + adaptiveCoverCheck_succ_of_children 13 (childHL thetaAboveCell0011) + e24KC2ThetaAboveNode001120 e24KC2ThetaAboveNode001121 e24KC2ThetaAboveNode001122 + e24KC2ThetaAboveNode001123 + +theorem e24KC2ThetaAboveNode00113 : + adaptiveCoverCheck 14 (childHH thetaAboveCell0011) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH thetaAboveCell0011) + e24KC2ThetaAboveNode001130 e24KC2ThetaAboveNode001131 e24KC2ThetaAboveNode001132 + e24KC2ThetaAboveNode001133 + +theorem e24KC2ThetaAboveNode00120 : + adaptiveCoverCheck 14 (childLL thetaAboveCell0012) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell0012) + e24KC2ThetaAboveNode001200 e24KC2ThetaAboveNode001201 e24KC2ThetaAboveLeaf001202 + e24KC2ThetaAboveLeaf001203 + +theorem e24KC2ThetaAboveNode00121 : + adaptiveCoverCheck 14 (childLH thetaAboveCell0012) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell0012) + e24KC2ThetaAboveNode001210 e24KC2ThetaAboveNode001211 e24KC2ThetaAboveLeaf001212 + e24KC2ThetaAboveLeaf001213 + +theorem e24KC2ThetaAboveNode00130 : + adaptiveCoverCheck 14 (childLL thetaAboveCell0013) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell0013) + e24KC2ThetaAboveNode001300 e24KC2ThetaAboveNode001301 e24KC2ThetaAboveLeaf001302 + e24KC2ThetaAboveLeaf001303 + +theorem e24KC2ThetaAboveNode00131 : + adaptiveCoverCheck 14 (childLH thetaAboveCell0013) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell0013) + e24KC2ThetaAboveNode001310 e24KC2ThetaAboveNode001311 e24KC2ThetaAboveLeaf001312 + e24KC2ThetaAboveLeaf001313 + +theorem e24KC2ThetaAboveNode01000 : + adaptiveCoverCheck 14 (childLL thetaAboveCell0100) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell0100) + e24KC2ThetaAboveLeaf010000 e24KC2ThetaAboveLeaf010001 e24KC2ThetaAboveLeaf010002 + e24KC2ThetaAboveLeaf010003 + +theorem e24KC2ThetaAboveNode01001 : + adaptiveCoverCheck 14 (childLH thetaAboveCell0100) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell0100) + e24KC2ThetaAboveLeaf010010 e24KC2ThetaAboveLeaf010011 e24KC2ThetaAboveLeaf010012 + e24KC2ThetaAboveLeaf010013 + +theorem e24KC2ThetaAboveNode01002 : + adaptiveCoverCheck 14 (childHL thetaAboveCell0100) = true := + adaptiveCoverCheck_succ_of_children 13 (childHL thetaAboveCell0100) + e24KC2ThetaAboveNode010020 e24KC2ThetaAboveNode010021 e24KC2ThetaAboveNode010022 + e24KC2ThetaAboveNode010023 + +theorem e24KC2ThetaAboveNode01003 : + adaptiveCoverCheck 14 (childHH thetaAboveCell0100) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH thetaAboveCell0100) + e24KC2ThetaAboveNode010030 e24KC2ThetaAboveNode010031 e24KC2ThetaAboveNode010032 + e24KC2ThetaAboveNode010033 + +theorem e24KC2ThetaAboveNode01010 : + adaptiveCoverCheck 14 (childLL thetaAboveCell0101) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell0101) + e24KC2ThetaAboveLeaf010100 e24KC2ThetaAboveLeaf010101 e24KC2ThetaAboveLeaf010102 + e24KC2ThetaAboveLeaf010103 + +theorem e24KC2ThetaAboveNode01011 : + adaptiveCoverCheck 14 (childLH thetaAboveCell0101) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell0101) + e24KC2ThetaAboveLeaf010110 e24KC2ThetaAboveLeaf010111 e24KC2ThetaAboveLeaf010112 + e24KC2ThetaAboveLeaf010113 + +theorem e24KC2ThetaAboveNode01012 : + adaptiveCoverCheck 14 (childHL thetaAboveCell0101) = true := + adaptiveCoverCheck_succ_of_children 13 (childHL thetaAboveCell0101) + e24KC2ThetaAboveNode010120 e24KC2ThetaAboveNode010121 e24KC2ThetaAboveNode010122 + e24KC2ThetaAboveNode010123 + +theorem e24KC2ThetaAboveNode01013 : + adaptiveCoverCheck 14 (childHH thetaAboveCell0101) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH thetaAboveCell0101) + e24KC2ThetaAboveNode010130 e24KC2ThetaAboveNode010131 e24KC2ThetaAboveNode010132 + e24KC2ThetaAboveNode010133 + +theorem e24KC2ThetaAboveNode01020 : + adaptiveCoverCheck 14 (childLL thetaAboveCell0102) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell0102) + e24KC2ThetaAboveNode010200 e24KC2ThetaAboveNode010201 e24KC2ThetaAboveLeaf010202 + e24KC2ThetaAboveLeaf010203 + +theorem e24KC2ThetaAboveNode01021 : + adaptiveCoverCheck 14 (childLH thetaAboveCell0102) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell0102) + e24KC2ThetaAboveNode010210 e24KC2ThetaAboveNode010211 e24KC2ThetaAboveLeaf010212 + e24KC2ThetaAboveLeaf010213 + +theorem e24KC2ThetaAboveNode01030 : + adaptiveCoverCheck 14 (childLL thetaAboveCell0103) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell0103) + e24KC2ThetaAboveNode010300 e24KC2ThetaAboveNode010301 e24KC2ThetaAboveLeaf010302 + e24KC2ThetaAboveLeaf010303 + +theorem e24KC2ThetaAboveNode01031 : + adaptiveCoverCheck 14 (childLH thetaAboveCell0103) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell0103) + e24KC2ThetaAboveNode010310 e24KC2ThetaAboveNode010311 e24KC2ThetaAboveLeaf010312 + e24KC2ThetaAboveLeaf010313 + +theorem e24KC2ThetaAboveNode01100 : + adaptiveCoverCheck 14 (childLL thetaAboveCell0110) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell0110) + e24KC2ThetaAboveLeaf011000 e24KC2ThetaAboveLeaf011001 e24KC2ThetaAboveLeaf011002 + e24KC2ThetaAboveLeaf011003 + +theorem e24KC2ThetaAboveNode01101 : + adaptiveCoverCheck 14 (childLH thetaAboveCell0110) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell0110) + e24KC2ThetaAboveLeaf011010 e24KC2ThetaAboveLeaf011011 e24KC2ThetaAboveLeaf011012 + e24KC2ThetaAboveLeaf011013 + +theorem e24KC2ThetaAboveNode01102 : + adaptiveCoverCheck 14 (childHL thetaAboveCell0110) = true := + adaptiveCoverCheck_succ_of_children 13 (childHL thetaAboveCell0110) + e24KC2ThetaAboveNode011020 e24KC2ThetaAboveNode011021 e24KC2ThetaAboveNode011022 + e24KC2ThetaAboveNode011023 + +theorem e24KC2ThetaAboveNode01103 : + adaptiveCoverCheck 14 (childHH thetaAboveCell0110) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH thetaAboveCell0110) + e24KC2ThetaAboveNode011030 e24KC2ThetaAboveNode011031 e24KC2ThetaAboveNode011032 + e24KC2ThetaAboveNode011033 + +theorem e24KC2ThetaAboveNode01110 : + adaptiveCoverCheck 14 (childLL thetaAboveCell0111) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell0111) + e24KC2ThetaAboveLeaf011100 e24KC2ThetaAboveLeaf011101 e24KC2ThetaAboveLeaf011102 + e24KC2ThetaAboveLeaf011103 + +theorem e24KC2ThetaAboveNode01111 : + adaptiveCoverCheck 14 (childLH thetaAboveCell0111) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell0111) + e24KC2ThetaAboveLeaf011110 e24KC2ThetaAboveLeaf011111 e24KC2ThetaAboveLeaf011112 + e24KC2ThetaAboveLeaf011113 + +theorem e24KC2ThetaAboveNode01112 : + adaptiveCoverCheck 14 (childHL thetaAboveCell0111) = true := + adaptiveCoverCheck_succ_of_children 13 (childHL thetaAboveCell0111) + e24KC2ThetaAboveNode011120 e24KC2ThetaAboveNode011121 e24KC2ThetaAboveNode011122 + e24KC2ThetaAboveNode011123 + +theorem e24KC2ThetaAboveNode01113 : + adaptiveCoverCheck 14 (childHH thetaAboveCell0111) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH thetaAboveCell0111) + e24KC2ThetaAboveNode011130 e24KC2ThetaAboveNode011131 e24KC2ThetaAboveNode011132 + e24KC2ThetaAboveNode011133 + +theorem e24KC2ThetaAboveNode01120 : + adaptiveCoverCheck 14 (childLL thetaAboveCell0112) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell0112) + e24KC2ThetaAboveNode011200 e24KC2ThetaAboveNode011201 e24KC2ThetaAboveLeaf011202 + e24KC2ThetaAboveLeaf011203 + +theorem e24KC2ThetaAboveNode01121 : + adaptiveCoverCheck 14 (childLH thetaAboveCell0112) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell0112) + e24KC2ThetaAboveNode011210 e24KC2ThetaAboveNode011211 e24KC2ThetaAboveLeaf011212 + e24KC2ThetaAboveLeaf011213 + +theorem e24KC2ThetaAboveNode01130 : + adaptiveCoverCheck 14 (childLL thetaAboveCell0113) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell0113) + e24KC2ThetaAboveNode011300 e24KC2ThetaAboveNode011301 e24KC2ThetaAboveLeaf011302 + e24KC2ThetaAboveLeaf011303 + +theorem e24KC2ThetaAboveNode01131 : + adaptiveCoverCheck 14 (childLH thetaAboveCell0113) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell0113) + e24KC2ThetaAboveNode011310 e24KC2ThetaAboveNode011311 e24KC2ThetaAboveLeaf011312 + e24KC2ThetaAboveLeaf011313 + +theorem e24KC2ThetaAboveNode10000 : + adaptiveCoverCheck 14 (childLL thetaAboveCell1000) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell1000) + e24KC2ThetaAboveLeaf100000 e24KC2ThetaAboveLeaf100001 e24KC2ThetaAboveLeaf100002 + e24KC2ThetaAboveLeaf100003 + +theorem e24KC2ThetaAboveNode10001 : + adaptiveCoverCheck 14 (childLH thetaAboveCell1000) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell1000) + e24KC2ThetaAboveLeaf100010 e24KC2ThetaAboveLeaf100011 e24KC2ThetaAboveLeaf100012 + e24KC2ThetaAboveLeaf100013 + +theorem e24KC2ThetaAboveNode10002 : + adaptiveCoverCheck 14 (childHL thetaAboveCell1000) = true := + adaptiveCoverCheck_succ_of_children 13 (childHL thetaAboveCell1000) + e24KC2ThetaAboveNode100020 e24KC2ThetaAboveNode100021 e24KC2ThetaAboveNode100022 + e24KC2ThetaAboveNode100023 + +theorem e24KC2ThetaAboveNode10003 : + adaptiveCoverCheck 14 (childHH thetaAboveCell1000) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH thetaAboveCell1000) + e24KC2ThetaAboveNode100030 e24KC2ThetaAboveNode100031 e24KC2ThetaAboveNode100032 + e24KC2ThetaAboveNode100033 + +theorem e24KC2ThetaAboveNode10010 : + adaptiveCoverCheck 14 (childLL thetaAboveCell1001) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell1001) + e24KC2ThetaAboveLeaf100100 e24KC2ThetaAboveLeaf100101 e24KC2ThetaAboveLeaf100102 + e24KC2ThetaAboveLeaf100103 + +theorem e24KC2ThetaAboveNode10011 : + adaptiveCoverCheck 14 (childLH thetaAboveCell1001) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell1001) + e24KC2ThetaAboveLeaf100110 e24KC2ThetaAboveLeaf100111 e24KC2ThetaAboveLeaf100112 + e24KC2ThetaAboveLeaf100113 + +theorem e24KC2ThetaAboveNode10012 : + adaptiveCoverCheck 14 (childHL thetaAboveCell1001) = true := + adaptiveCoverCheck_succ_of_children 13 (childHL thetaAboveCell1001) + e24KC2ThetaAboveNode100120 e24KC2ThetaAboveNode100121 e24KC2ThetaAboveNode100122 + e24KC2ThetaAboveNode100123 + +theorem e24KC2ThetaAboveNode10013 : + adaptiveCoverCheck 14 (childHH thetaAboveCell1001) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH thetaAboveCell1001) + e24KC2ThetaAboveNode100130 e24KC2ThetaAboveNode100131 e24KC2ThetaAboveNode100132 + e24KC2ThetaAboveNode100133 + +theorem e24KC2ThetaAboveNode10020 : + adaptiveCoverCheck 14 (childLL thetaAboveCell1002) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell1002) + e24KC2ThetaAboveNode100200 e24KC2ThetaAboveNode100201 e24KC2ThetaAboveLeaf100202 + e24KC2ThetaAboveLeaf100203 + +theorem e24KC2ThetaAboveNode10021 : + adaptiveCoverCheck 14 (childLH thetaAboveCell1002) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell1002) + e24KC2ThetaAboveNode100210 e24KC2ThetaAboveNode100211 e24KC2ThetaAboveLeaf100212 + e24KC2ThetaAboveLeaf100213 + +theorem e24KC2ThetaAboveNode10030 : + adaptiveCoverCheck 14 (childLL thetaAboveCell1003) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell1003) + e24KC2ThetaAboveNode100300 e24KC2ThetaAboveNode100301 e24KC2ThetaAboveLeaf100302 + e24KC2ThetaAboveLeaf100303 + +theorem e24KC2ThetaAboveNode10031 : + adaptiveCoverCheck 14 (childLH thetaAboveCell1003) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell1003) + e24KC2ThetaAboveNode100310 e24KC2ThetaAboveNode100311 e24KC2ThetaAboveLeaf100312 + e24KC2ThetaAboveLeaf100313 + +theorem e24KC2ThetaAboveNode10100 : + adaptiveCoverCheck 14 (childLL thetaAboveCell1010) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell1010) + e24KC2ThetaAboveLeaf101000 e24KC2ThetaAboveLeaf101001 e24KC2ThetaAboveLeaf101002 + e24KC2ThetaAboveLeaf101003 + +theorem e24KC2ThetaAboveNode10101 : + adaptiveCoverCheck 14 (childLH thetaAboveCell1010) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell1010) + e24KC2ThetaAboveLeaf101010 e24KC2ThetaAboveLeaf101011 e24KC2ThetaAboveLeaf101012 + e24KC2ThetaAboveLeaf101013 + +theorem e24KC2ThetaAboveNode10102 : + adaptiveCoverCheck 14 (childHL thetaAboveCell1010) = true := + adaptiveCoverCheck_succ_of_children 13 (childHL thetaAboveCell1010) + e24KC2ThetaAboveNode101020 e24KC2ThetaAboveNode101021 e24KC2ThetaAboveNode101022 + e24KC2ThetaAboveNode101023 + +theorem e24KC2ThetaAboveNode10103 : + adaptiveCoverCheck 14 (childHH thetaAboveCell1010) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH thetaAboveCell1010) + e24KC2ThetaAboveNode101030 e24KC2ThetaAboveNode101031 e24KC2ThetaAboveNode101032 + e24KC2ThetaAboveNode101033 + +theorem e24KC2ThetaAboveNode10110 : + adaptiveCoverCheck 14 (childLL thetaAboveCell1011) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell1011) + e24KC2ThetaAboveLeaf101100 e24KC2ThetaAboveLeaf101101 e24KC2ThetaAboveLeaf101102 + e24KC2ThetaAboveLeaf101103 + +theorem e24KC2ThetaAboveNode10111 : + adaptiveCoverCheck 14 (childLH thetaAboveCell1011) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell1011) + e24KC2ThetaAboveLeaf101110 e24KC2ThetaAboveLeaf101111 e24KC2ThetaAboveLeaf101112 + e24KC2ThetaAboveLeaf101113 + +theorem e24KC2ThetaAboveNode10112 : + adaptiveCoverCheck 14 (childHL thetaAboveCell1011) = true := + adaptiveCoverCheck_succ_of_children 13 (childHL thetaAboveCell1011) + e24KC2ThetaAboveNode101120 e24KC2ThetaAboveNode101121 e24KC2ThetaAboveNode101122 + e24KC2ThetaAboveNode101123 + +theorem e24KC2ThetaAboveNode10113 : + adaptiveCoverCheck 14 (childHH thetaAboveCell1011) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH thetaAboveCell1011) + e24KC2ThetaAboveNode101130 e24KC2ThetaAboveNode101131 e24KC2ThetaAboveNode101132 + e24KC2ThetaAboveNode101133 + +theorem e24KC2ThetaAboveNode10120 : + adaptiveCoverCheck 14 (childLL thetaAboveCell1012) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell1012) + e24KC2ThetaAboveNode101200 e24KC2ThetaAboveNode101201 e24KC2ThetaAboveLeaf101202 + e24KC2ThetaAboveLeaf101203 + +theorem e24KC2ThetaAboveNode10121 : + adaptiveCoverCheck 14 (childLH thetaAboveCell1012) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell1012) + e24KC2ThetaAboveNode101210 e24KC2ThetaAboveNode101211 e24KC2ThetaAboveLeaf101212 + e24KC2ThetaAboveLeaf101213 + +theorem e24KC2ThetaAboveNode10130 : + adaptiveCoverCheck 14 (childLL thetaAboveCell1013) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell1013) + e24KC2ThetaAboveNode101300 e24KC2ThetaAboveNode101301 e24KC2ThetaAboveLeaf101302 + e24KC2ThetaAboveLeaf101303 + +theorem e24KC2ThetaAboveNode10131 : + adaptiveCoverCheck 14 (childLH thetaAboveCell1013) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell1013) + e24KC2ThetaAboveNode101310 e24KC2ThetaAboveNode101311 e24KC2ThetaAboveLeaf101312 + e24KC2ThetaAboveLeaf101313 + +theorem e24KC2ThetaAboveNode11000 : + adaptiveCoverCheck 14 (childLL thetaAboveCell1100) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell1100) + e24KC2ThetaAboveLeaf110000 e24KC2ThetaAboveLeaf110001 e24KC2ThetaAboveLeaf110002 + e24KC2ThetaAboveLeaf110003 + +theorem e24KC2ThetaAboveNode11001 : + adaptiveCoverCheck 14 (childLH thetaAboveCell1100) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell1100) + e24KC2ThetaAboveLeaf110010 e24KC2ThetaAboveLeaf110011 e24KC2ThetaAboveLeaf110012 + e24KC2ThetaAboveLeaf110013 + +theorem e24KC2ThetaAboveNode11002 : + adaptiveCoverCheck 14 (childHL thetaAboveCell1100) = true := + adaptiveCoverCheck_succ_of_children 13 (childHL thetaAboveCell1100) + e24KC2ThetaAboveNode110020 e24KC2ThetaAboveNode110021 e24KC2ThetaAboveNode110022 + e24KC2ThetaAboveNode110023 + +theorem e24KC2ThetaAboveNode11003 : + adaptiveCoverCheck 14 (childHH thetaAboveCell1100) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH thetaAboveCell1100) + e24KC2ThetaAboveNode110030 e24KC2ThetaAboveNode110031 e24KC2ThetaAboveNode110032 + e24KC2ThetaAboveNode110033 + +theorem e24KC2ThetaAboveNode11010 : + adaptiveCoverCheck 14 (childLL thetaAboveCell1101) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell1101) + e24KC2ThetaAboveLeaf110100 e24KC2ThetaAboveLeaf110101 e24KC2ThetaAboveLeaf110102 + e24KC2ThetaAboveLeaf110103 + +theorem e24KC2ThetaAboveNode11011 : + adaptiveCoverCheck 14 (childLH thetaAboveCell1101) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell1101) + e24KC2ThetaAboveLeaf110110 e24KC2ThetaAboveLeaf110111 e24KC2ThetaAboveLeaf110112 + e24KC2ThetaAboveLeaf110113 + +theorem e24KC2ThetaAboveNode11012 : + adaptiveCoverCheck 14 (childHL thetaAboveCell1101) = true := + adaptiveCoverCheck_succ_of_children 13 (childHL thetaAboveCell1101) + e24KC2ThetaAboveNode110120 e24KC2ThetaAboveNode110121 e24KC2ThetaAboveNode110122 + e24KC2ThetaAboveNode110123 + +theorem e24KC2ThetaAboveNode11013 : + adaptiveCoverCheck 14 (childHH thetaAboveCell1101) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH thetaAboveCell1101) + e24KC2ThetaAboveNode110130 e24KC2ThetaAboveNode110131 e24KC2ThetaAboveNode110132 + e24KC2ThetaAboveNode110133 + +theorem e24KC2ThetaAboveNode11020 : + adaptiveCoverCheck 14 (childLL thetaAboveCell1102) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell1102) + e24KC2ThetaAboveNode110200 e24KC2ThetaAboveNode110201 e24KC2ThetaAboveLeaf110202 + e24KC2ThetaAboveLeaf110203 + +theorem e24KC2ThetaAboveNode11021 : + adaptiveCoverCheck 14 (childLH thetaAboveCell1102) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell1102) + e24KC2ThetaAboveNode110210 e24KC2ThetaAboveNode110211 e24KC2ThetaAboveLeaf110212 + e24KC2ThetaAboveLeaf110213 + +theorem e24KC2ThetaAboveNode11030 : + adaptiveCoverCheck 14 (childLL thetaAboveCell1103) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell1103) + e24KC2ThetaAboveNode110300 e24KC2ThetaAboveNode110301 e24KC2ThetaAboveLeaf110302 + e24KC2ThetaAboveLeaf110303 + +theorem e24KC2ThetaAboveNode11031 : + adaptiveCoverCheck 14 (childLH thetaAboveCell1103) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell1103) + e24KC2ThetaAboveNode110310 e24KC2ThetaAboveNode110311 e24KC2ThetaAboveLeaf110312 + e24KC2ThetaAboveLeaf110313 + +theorem e24KC2ThetaAboveNode11100 : + adaptiveCoverCheck 14 (childLL thetaAboveCell1110) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell1110) + e24KC2ThetaAboveLeaf111000 e24KC2ThetaAboveLeaf111001 e24KC2ThetaAboveLeaf111002 + e24KC2ThetaAboveLeaf111003 + +theorem e24KC2ThetaAboveNode11101 : + adaptiveCoverCheck 14 (childLH thetaAboveCell1110) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell1110) + e24KC2ThetaAboveLeaf111010 e24KC2ThetaAboveLeaf111011 e24KC2ThetaAboveLeaf111012 + e24KC2ThetaAboveLeaf111013 + +theorem e24KC2ThetaAboveNode11102 : + adaptiveCoverCheck 14 (childHL thetaAboveCell1110) = true := + adaptiveCoverCheck_succ_of_children 13 (childHL thetaAboveCell1110) + e24KC2ThetaAboveNode111020 e24KC2ThetaAboveNode111021 e24KC2ThetaAboveNode111022 + e24KC2ThetaAboveNode111023 + +theorem e24KC2ThetaAboveNode11103 : + adaptiveCoverCheck 14 (childHH thetaAboveCell1110) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH thetaAboveCell1110) + e24KC2ThetaAboveNode111030 e24KC2ThetaAboveNode111031 e24KC2ThetaAboveNode111032 + e24KC2ThetaAboveNode111033 + +theorem e24KC2ThetaAboveNode11110 : + adaptiveCoverCheck 14 (childLL thetaAboveCell1111) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell1111) + e24KC2ThetaAboveLeaf111100 e24KC2ThetaAboveLeaf111101 e24KC2ThetaAboveLeaf111102 + e24KC2ThetaAboveLeaf111103 + +theorem e24KC2ThetaAboveNode11111 : + adaptiveCoverCheck 14 (childLH thetaAboveCell1111) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell1111) + e24KC2ThetaAboveLeaf111110 e24KC2ThetaAboveLeaf111111 e24KC2ThetaAboveLeaf111112 + e24KC2ThetaAboveLeaf111113 + +theorem e24KC2ThetaAboveNode11112 : + adaptiveCoverCheck 14 (childHL thetaAboveCell1111) = true := + adaptiveCoverCheck_succ_of_children 13 (childHL thetaAboveCell1111) + e24KC2ThetaAboveNode111120 e24KC2ThetaAboveNode111121 e24KC2ThetaAboveNode111122 + e24KC2ThetaAboveNode111123 + +theorem e24KC2ThetaAboveNode11113 : + adaptiveCoverCheck 14 (childHH thetaAboveCell1111) = true := + adaptiveCoverCheck_succ_of_children 13 (childHH thetaAboveCell1111) + e24KC2ThetaAboveNode111130 e24KC2ThetaAboveNode111131 e24KC2ThetaAboveNode111132 + e24KC2ThetaAboveNode111133 + +theorem e24KC2ThetaAboveNode11120 : + adaptiveCoverCheck 14 (childLL thetaAboveCell1112) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell1112) + e24KC2ThetaAboveNode111200 e24KC2ThetaAboveNode111201 e24KC2ThetaAboveLeaf111202 + e24KC2ThetaAboveLeaf111203 + +theorem e24KC2ThetaAboveNode11121 : + adaptiveCoverCheck 14 (childLH thetaAboveCell1112) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell1112) + e24KC2ThetaAboveNode111210 e24KC2ThetaAboveNode111211 e24KC2ThetaAboveLeaf111212 + e24KC2ThetaAboveLeaf111213 + +theorem e24KC2ThetaAboveNode11130 : + adaptiveCoverCheck 14 (childLL thetaAboveCell1113) = true := + adaptiveCoverCheck_succ_of_children 13 (childLL thetaAboveCell1113) + e24KC2ThetaAboveNode111300 e24KC2ThetaAboveNode111301 e24KC2ThetaAboveLeaf111302 + e24KC2ThetaAboveLeaf111303 + +theorem e24KC2ThetaAboveNode11131 : + adaptiveCoverCheck 14 (childLH thetaAboveCell1113) = true := + adaptiveCoverCheck_succ_of_children 13 (childLH thetaAboveCell1113) + e24KC2ThetaAboveNode111310 e24KC2ThetaAboveNode111311 e24KC2ThetaAboveLeaf111312 + e24KC2ThetaAboveLeaf111313 + +theorem e24KC2ThetaAboveNode0000 : + adaptiveCoverCheck 15 thetaAboveCell0000 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell0000 + e24KC2ThetaAboveNode00000 e24KC2ThetaAboveNode00001 e24KC2ThetaAboveNode00002 + e24KC2ThetaAboveNode00003 + +theorem e24KC2ThetaAboveNode0001 : + adaptiveCoverCheck 15 thetaAboveCell0001 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell0001 + e24KC2ThetaAboveNode00010 e24KC2ThetaAboveNode00011 e24KC2ThetaAboveNode00012 + e24KC2ThetaAboveNode00013 + +theorem e24KC2ThetaAboveNode0002 : + adaptiveCoverCheck 15 thetaAboveCell0002 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell0002 + e24KC2ThetaAboveNode00020 e24KC2ThetaAboveNode00021 e24KC2ThetaAboveLeaf00022 + e24KC2ThetaAboveLeaf00023 + +theorem e24KC2ThetaAboveNode0003 : + adaptiveCoverCheck 15 thetaAboveCell0003 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell0003 + e24KC2ThetaAboveNode00030 e24KC2ThetaAboveNode00031 e24KC2ThetaAboveLeaf00032 + e24KC2ThetaAboveLeaf00033 + +theorem e24KC2ThetaAboveNode0010 : + adaptiveCoverCheck 15 thetaAboveCell0010 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell0010 + e24KC2ThetaAboveNode00100 e24KC2ThetaAboveNode00101 e24KC2ThetaAboveNode00102 + e24KC2ThetaAboveNode00103 + +theorem e24KC2ThetaAboveNode0011 : + adaptiveCoverCheck 15 thetaAboveCell0011 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell0011 + e24KC2ThetaAboveNode00110 e24KC2ThetaAboveNode00111 e24KC2ThetaAboveNode00112 + e24KC2ThetaAboveNode00113 + +theorem e24KC2ThetaAboveNode0012 : + adaptiveCoverCheck 15 thetaAboveCell0012 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell0012 + e24KC2ThetaAboveNode00120 e24KC2ThetaAboveNode00121 e24KC2ThetaAboveLeaf00122 + e24KC2ThetaAboveLeaf00123 + +theorem e24KC2ThetaAboveNode0013 : + adaptiveCoverCheck 15 thetaAboveCell0013 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell0013 + e24KC2ThetaAboveNode00130 e24KC2ThetaAboveNode00131 e24KC2ThetaAboveLeaf00132 + e24KC2ThetaAboveLeaf00133 + +theorem e24KC2ThetaAboveNode0100 : + adaptiveCoverCheck 15 thetaAboveCell0100 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell0100 + e24KC2ThetaAboveNode01000 e24KC2ThetaAboveNode01001 e24KC2ThetaAboveNode01002 + e24KC2ThetaAboveNode01003 + +theorem e24KC2ThetaAboveNode0101 : + adaptiveCoverCheck 15 thetaAboveCell0101 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell0101 + e24KC2ThetaAboveNode01010 e24KC2ThetaAboveNode01011 e24KC2ThetaAboveNode01012 + e24KC2ThetaAboveNode01013 + +theorem e24KC2ThetaAboveNode0102 : + adaptiveCoverCheck 15 thetaAboveCell0102 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell0102 + e24KC2ThetaAboveNode01020 e24KC2ThetaAboveNode01021 e24KC2ThetaAboveLeaf01022 + e24KC2ThetaAboveLeaf01023 + +theorem e24KC2ThetaAboveNode0103 : + adaptiveCoverCheck 15 thetaAboveCell0103 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell0103 + e24KC2ThetaAboveNode01030 e24KC2ThetaAboveNode01031 e24KC2ThetaAboveLeaf01032 + e24KC2ThetaAboveLeaf01033 + +theorem e24KC2ThetaAboveNode0110 : + adaptiveCoverCheck 15 thetaAboveCell0110 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell0110 + e24KC2ThetaAboveNode01100 e24KC2ThetaAboveNode01101 e24KC2ThetaAboveNode01102 + e24KC2ThetaAboveNode01103 + +theorem e24KC2ThetaAboveNode0111 : + adaptiveCoverCheck 15 thetaAboveCell0111 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell0111 + e24KC2ThetaAboveNode01110 e24KC2ThetaAboveNode01111 e24KC2ThetaAboveNode01112 + e24KC2ThetaAboveNode01113 + +theorem e24KC2ThetaAboveNode0112 : + adaptiveCoverCheck 15 thetaAboveCell0112 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell0112 + e24KC2ThetaAboveNode01120 e24KC2ThetaAboveNode01121 e24KC2ThetaAboveLeaf01122 + e24KC2ThetaAboveLeaf01123 + +theorem e24KC2ThetaAboveNode0113 : + adaptiveCoverCheck 15 thetaAboveCell0113 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell0113 + e24KC2ThetaAboveNode01130 e24KC2ThetaAboveNode01131 e24KC2ThetaAboveLeaf01132 + e24KC2ThetaAboveLeaf01133 + +theorem e24KC2ThetaAboveNode1000 : + adaptiveCoverCheck 15 thetaAboveCell1000 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell1000 + e24KC2ThetaAboveNode10000 e24KC2ThetaAboveNode10001 e24KC2ThetaAboveNode10002 + e24KC2ThetaAboveNode10003 + +theorem e24KC2ThetaAboveNode1001 : + adaptiveCoverCheck 15 thetaAboveCell1001 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell1001 + e24KC2ThetaAboveNode10010 e24KC2ThetaAboveNode10011 e24KC2ThetaAboveNode10012 + e24KC2ThetaAboveNode10013 + +theorem e24KC2ThetaAboveNode1002 : + adaptiveCoverCheck 15 thetaAboveCell1002 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell1002 + e24KC2ThetaAboveNode10020 e24KC2ThetaAboveNode10021 e24KC2ThetaAboveLeaf10022 + e24KC2ThetaAboveLeaf10023 + +theorem e24KC2ThetaAboveNode1003 : + adaptiveCoverCheck 15 thetaAboveCell1003 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell1003 + e24KC2ThetaAboveNode10030 e24KC2ThetaAboveNode10031 e24KC2ThetaAboveLeaf10032 + e24KC2ThetaAboveLeaf10033 + +theorem e24KC2ThetaAboveNode1010 : + adaptiveCoverCheck 15 thetaAboveCell1010 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell1010 + e24KC2ThetaAboveNode10100 e24KC2ThetaAboveNode10101 e24KC2ThetaAboveNode10102 + e24KC2ThetaAboveNode10103 + +theorem e24KC2ThetaAboveNode1011 : + adaptiveCoverCheck 15 thetaAboveCell1011 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell1011 + e24KC2ThetaAboveNode10110 e24KC2ThetaAboveNode10111 e24KC2ThetaAboveNode10112 + e24KC2ThetaAboveNode10113 + +theorem e24KC2ThetaAboveNode1012 : + adaptiveCoverCheck 15 thetaAboveCell1012 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell1012 + e24KC2ThetaAboveNode10120 e24KC2ThetaAboveNode10121 e24KC2ThetaAboveLeaf10122 + e24KC2ThetaAboveLeaf10123 + +theorem e24KC2ThetaAboveNode1013 : + adaptiveCoverCheck 15 thetaAboveCell1013 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell1013 + e24KC2ThetaAboveNode10130 e24KC2ThetaAboveNode10131 e24KC2ThetaAboveLeaf10132 + e24KC2ThetaAboveLeaf10133 + +theorem e24KC2ThetaAboveNode1100 : + adaptiveCoverCheck 15 thetaAboveCell1100 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell1100 + e24KC2ThetaAboveNode11000 e24KC2ThetaAboveNode11001 e24KC2ThetaAboveNode11002 + e24KC2ThetaAboveNode11003 + +theorem e24KC2ThetaAboveNode1101 : + adaptiveCoverCheck 15 thetaAboveCell1101 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell1101 + e24KC2ThetaAboveNode11010 e24KC2ThetaAboveNode11011 e24KC2ThetaAboveNode11012 + e24KC2ThetaAboveNode11013 + +theorem e24KC2ThetaAboveNode1102 : + adaptiveCoverCheck 15 thetaAboveCell1102 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell1102 + e24KC2ThetaAboveNode11020 e24KC2ThetaAboveNode11021 e24KC2ThetaAboveLeaf11022 + e24KC2ThetaAboveLeaf11023 + +theorem e24KC2ThetaAboveNode1103 : + adaptiveCoverCheck 15 thetaAboveCell1103 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell1103 + e24KC2ThetaAboveNode11030 e24KC2ThetaAboveNode11031 e24KC2ThetaAboveLeaf11032 + e24KC2ThetaAboveLeaf11033 + +theorem e24KC2ThetaAboveNode1110 : + adaptiveCoverCheck 15 thetaAboveCell1110 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell1110 + e24KC2ThetaAboveNode11100 e24KC2ThetaAboveNode11101 e24KC2ThetaAboveNode11102 + e24KC2ThetaAboveNode11103 + +theorem e24KC2ThetaAboveNode1111 : + adaptiveCoverCheck 15 thetaAboveCell1111 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell1111 + e24KC2ThetaAboveNode11110 e24KC2ThetaAboveNode11111 e24KC2ThetaAboveNode11112 + e24KC2ThetaAboveNode11113 + +theorem e24KC2ThetaAboveNode1112 : + adaptiveCoverCheck 15 thetaAboveCell1112 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell1112 + e24KC2ThetaAboveNode11120 e24KC2ThetaAboveNode11121 e24KC2ThetaAboveLeaf11122 + e24KC2ThetaAboveLeaf11123 + +theorem e24KC2ThetaAboveNode1113 : + adaptiveCoverCheck 15 thetaAboveCell1113 = true := + adaptiveCoverCheck_succ_of_children 14 thetaAboveCell1113 + e24KC2ThetaAboveNode11130 e24KC2ThetaAboveNode11131 e24KC2ThetaAboveLeaf11132 + e24KC2ThetaAboveLeaf11133 + +theorem e24KC2ThetaAboveNode000 : + adaptiveCoverCheck 16 (childLL (childLL (childLL e24ThetaAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 15 (childLL (childLL (childLL e24ThetaAboveRoot))) + e24KC2ThetaAboveNode0000 e24KC2ThetaAboveNode0001 e24KC2ThetaAboveNode0002 + e24KC2ThetaAboveNode0003 + +theorem e24KC2ThetaAboveNode001 : + adaptiveCoverCheck 16 (childLH (childLL (childLL e24ThetaAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 15 (childLH (childLL (childLL e24ThetaAboveRoot))) + e24KC2ThetaAboveNode0010 e24KC2ThetaAboveNode0011 e24KC2ThetaAboveNode0012 + e24KC2ThetaAboveNode0013 + +theorem e24KC2ThetaAboveNode002 : + adaptiveCoverCheck 16 (childHL (childLL (childLL e24ThetaAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 15 (childHL (childLL (childLL e24ThetaAboveRoot))) + e24KC2ThetaAboveLeaf0020 e24KC2ThetaAboveLeaf0021 e24KC2ThetaAboveLeaf0022 + e24KC2ThetaAboveLeaf0023 + +theorem e24KC2ThetaAboveNode003 : + adaptiveCoverCheck 16 (childHH (childLL (childLL e24ThetaAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 15 (childHH (childLL (childLL e24ThetaAboveRoot))) + e24KC2ThetaAboveLeaf0030 e24KC2ThetaAboveLeaf0031 e24KC2ThetaAboveLeaf0032 + e24KC2ThetaAboveLeaf0033 + +theorem e24KC2ThetaAboveNode010 : + adaptiveCoverCheck 16 (childLL (childLH (childLL e24ThetaAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 15 (childLL (childLH (childLL e24ThetaAboveRoot))) + e24KC2ThetaAboveNode0100 e24KC2ThetaAboveNode0101 e24KC2ThetaAboveNode0102 + e24KC2ThetaAboveNode0103 + +theorem e24KC2ThetaAboveNode011 : + adaptiveCoverCheck 16 (childLH (childLH (childLL e24ThetaAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 15 (childLH (childLH (childLL e24ThetaAboveRoot))) + e24KC2ThetaAboveNode0110 e24KC2ThetaAboveNode0111 e24KC2ThetaAboveNode0112 + e24KC2ThetaAboveNode0113 + +theorem e24KC2ThetaAboveNode012 : + adaptiveCoverCheck 16 (childHL (childLH (childLL e24ThetaAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 15 (childHL (childLH (childLL e24ThetaAboveRoot))) + e24KC2ThetaAboveLeaf0120 e24KC2ThetaAboveLeaf0121 e24KC2ThetaAboveLeaf0122 + e24KC2ThetaAboveLeaf0123 + +theorem e24KC2ThetaAboveNode013 : + adaptiveCoverCheck 16 (childHH (childLH (childLL e24ThetaAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 15 (childHH (childLH (childLL e24ThetaAboveRoot))) + e24KC2ThetaAboveLeaf0130 e24KC2ThetaAboveLeaf0131 e24KC2ThetaAboveLeaf0132 + e24KC2ThetaAboveLeaf0133 + +theorem e24KC2ThetaAboveNode100 : + adaptiveCoverCheck 16 (childLL (childLL (childLH e24ThetaAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 15 (childLL (childLL (childLH e24ThetaAboveRoot))) + e24KC2ThetaAboveNode1000 e24KC2ThetaAboveNode1001 e24KC2ThetaAboveNode1002 + e24KC2ThetaAboveNode1003 + +theorem e24KC2ThetaAboveNode101 : + adaptiveCoverCheck 16 (childLH (childLL (childLH e24ThetaAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 15 (childLH (childLL (childLH e24ThetaAboveRoot))) + e24KC2ThetaAboveNode1010 e24KC2ThetaAboveNode1011 e24KC2ThetaAboveNode1012 + e24KC2ThetaAboveNode1013 + +theorem e24KC2ThetaAboveNode102 : + adaptiveCoverCheck 16 (childHL (childLL (childLH e24ThetaAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 15 (childHL (childLL (childLH e24ThetaAboveRoot))) + e24KC2ThetaAboveLeaf1020 e24KC2ThetaAboveLeaf1021 e24KC2ThetaAboveLeaf1022 + e24KC2ThetaAboveLeaf1023 + +theorem e24KC2ThetaAboveNode103 : + adaptiveCoverCheck 16 (childHH (childLL (childLH e24ThetaAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 15 (childHH (childLL (childLH e24ThetaAboveRoot))) + e24KC2ThetaAboveLeaf1030 e24KC2ThetaAboveLeaf1031 e24KC2ThetaAboveLeaf1032 + e24KC2ThetaAboveLeaf1033 + +theorem e24KC2ThetaAboveNode110 : + adaptiveCoverCheck 16 (childLL (childLH (childLH e24ThetaAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 15 (childLL (childLH (childLH e24ThetaAboveRoot))) + e24KC2ThetaAboveNode1100 e24KC2ThetaAboveNode1101 e24KC2ThetaAboveNode1102 + e24KC2ThetaAboveNode1103 + +theorem e24KC2ThetaAboveNode111 : + adaptiveCoverCheck 16 (childLH (childLH (childLH e24ThetaAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 15 (childLH (childLH (childLH e24ThetaAboveRoot))) + e24KC2ThetaAboveNode1110 e24KC2ThetaAboveNode1111 e24KC2ThetaAboveNode1112 + e24KC2ThetaAboveNode1113 + +theorem e24KC2ThetaAboveNode112 : + adaptiveCoverCheck 16 (childHL (childLH (childLH e24ThetaAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 15 (childHL (childLH (childLH e24ThetaAboveRoot))) + e24KC2ThetaAboveLeaf1120 e24KC2ThetaAboveLeaf1121 e24KC2ThetaAboveLeaf1122 + e24KC2ThetaAboveLeaf1123 + +theorem e24KC2ThetaAboveNode113 : + adaptiveCoverCheck 16 (childHH (childLH (childLH e24ThetaAboveRoot))) = true := + adaptiveCoverCheck_succ_of_children 15 (childHH (childLH (childLH e24ThetaAboveRoot))) + e24KC2ThetaAboveLeaf1130 e24KC2ThetaAboveLeaf1131 e24KC2ThetaAboveLeaf1132 + e24KC2ThetaAboveLeaf1133 + +theorem e24KC2ThetaAboveNode00 : + adaptiveCoverCheck 17 (childLL (childLL e24ThetaAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 16 (childLL (childLL e24ThetaAboveRoot)) + e24KC2ThetaAboveNode000 e24KC2ThetaAboveNode001 e24KC2ThetaAboveNode002 e24KC2ThetaAboveNode003 + +theorem e24KC2ThetaAboveNode01 : + adaptiveCoverCheck 17 (childLH (childLL e24ThetaAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 16 (childLH (childLL e24ThetaAboveRoot)) + e24KC2ThetaAboveNode010 e24KC2ThetaAboveNode011 e24KC2ThetaAboveNode012 e24KC2ThetaAboveNode013 + +theorem e24KC2ThetaAboveNode02 : + adaptiveCoverCheck 17 (childHL (childLL e24ThetaAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 16 (childHL (childLL e24ThetaAboveRoot)) + e24KC2ThetaAboveLeaf020 e24KC2ThetaAboveLeaf021 e24KC2ThetaAboveLeaf022 e24KC2ThetaAboveLeaf023 + +theorem e24KC2ThetaAboveNode03 : + adaptiveCoverCheck 17 (childHH (childLL e24ThetaAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 16 (childHH (childLL e24ThetaAboveRoot)) + e24KC2ThetaAboveLeaf030 e24KC2ThetaAboveLeaf031 e24KC2ThetaAboveLeaf032 e24KC2ThetaAboveLeaf033 + +theorem e24KC2ThetaAboveNode10 : + adaptiveCoverCheck 17 (childLL (childLH e24ThetaAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 16 (childLL (childLH e24ThetaAboveRoot)) + e24KC2ThetaAboveNode100 e24KC2ThetaAboveNode101 e24KC2ThetaAboveNode102 e24KC2ThetaAboveNode103 + +theorem e24KC2ThetaAboveNode11 : + adaptiveCoverCheck 17 (childLH (childLH e24ThetaAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 16 (childLH (childLH e24ThetaAboveRoot)) + e24KC2ThetaAboveNode110 e24KC2ThetaAboveNode111 e24KC2ThetaAboveNode112 e24KC2ThetaAboveNode113 + +theorem e24KC2ThetaAboveNode12 : + adaptiveCoverCheck 17 (childHL (childLH e24ThetaAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 16 (childHL (childLH e24ThetaAboveRoot)) + e24KC2ThetaAboveLeaf120 e24KC2ThetaAboveLeaf121 e24KC2ThetaAboveLeaf122 e24KC2ThetaAboveLeaf123 + +theorem e24KC2ThetaAboveNode13 : + adaptiveCoverCheck 17 (childHH (childLH e24ThetaAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 16 (childHH (childLH e24ThetaAboveRoot)) + e24KC2ThetaAboveLeaf130 e24KC2ThetaAboveLeaf131 e24KC2ThetaAboveLeaf132 e24KC2ThetaAboveLeaf133 + +theorem e24KC2ThetaAboveNode20 : + adaptiveCoverCheck 17 (childLL (childHL e24ThetaAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 16 (childLL (childHL e24ThetaAboveRoot)) + e24KC2ThetaAboveLeaf200 e24KC2ThetaAboveLeaf201 e24KC2ThetaAboveLeaf202 e24KC2ThetaAboveLeaf203 + +theorem e24KC2ThetaAboveNode21 : + adaptiveCoverCheck 17 (childLH (childHL e24ThetaAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 16 (childLH (childHL e24ThetaAboveRoot)) + e24KC2ThetaAboveLeaf210 e24KC2ThetaAboveLeaf211 e24KC2ThetaAboveLeaf212 e24KC2ThetaAboveLeaf213 + +theorem e24KC2ThetaAboveNode22 : + adaptiveCoverCheck 17 (childHL (childHL e24ThetaAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 16 (childHL (childHL e24ThetaAboveRoot)) + e24KC2ThetaAboveLeaf220 e24KC2ThetaAboveLeaf221 e24KC2ThetaAboveLeaf222 e24KC2ThetaAboveLeaf223 + +theorem e24KC2ThetaAboveNode23 : + adaptiveCoverCheck 17 (childHH (childHL e24ThetaAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 16 (childHH (childHL e24ThetaAboveRoot)) + e24KC2ThetaAboveLeaf230 e24KC2ThetaAboveLeaf231 e24KC2ThetaAboveLeaf232 e24KC2ThetaAboveLeaf233 + +theorem e24KC2ThetaAboveNode30 : + adaptiveCoverCheck 17 (childLL (childHH e24ThetaAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 16 (childLL (childHH e24ThetaAboveRoot)) + e24KC2ThetaAboveLeaf300 e24KC2ThetaAboveLeaf301 e24KC2ThetaAboveLeaf302 e24KC2ThetaAboveLeaf303 + +theorem e24KC2ThetaAboveNode31 : + adaptiveCoverCheck 17 (childLH (childHH e24ThetaAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 16 (childLH (childHH e24ThetaAboveRoot)) + e24KC2ThetaAboveLeaf310 e24KC2ThetaAboveLeaf311 e24KC2ThetaAboveLeaf312 e24KC2ThetaAboveLeaf313 + +theorem e24KC2ThetaAboveNode32 : + adaptiveCoverCheck 17 (childHL (childHH e24ThetaAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 16 (childHL (childHH e24ThetaAboveRoot)) + e24KC2ThetaAboveLeaf320 e24KC2ThetaAboveLeaf321 e24KC2ThetaAboveLeaf322 e24KC2ThetaAboveLeaf323 + +theorem e24KC2ThetaAboveNode33 : + adaptiveCoverCheck 17 (childHH (childHH e24ThetaAboveRoot)) = true := + adaptiveCoverCheck_succ_of_children 16 (childHH (childHH e24ThetaAboveRoot)) + e24KC2ThetaAboveLeaf330 e24KC2ThetaAboveLeaf331 e24KC2ThetaAboveLeaf332 e24KC2ThetaAboveLeaf333 + +theorem e24KC2ThetaAboveNode0 : + adaptiveCoverCheck 18 (childLL e24ThetaAboveRoot) = true := + adaptiveCoverCheck_succ_of_children 17 (childLL e24ThetaAboveRoot) + e24KC2ThetaAboveNode00 e24KC2ThetaAboveNode01 e24KC2ThetaAboveNode02 e24KC2ThetaAboveNode03 + +theorem e24KC2ThetaAboveNode1 : + adaptiveCoverCheck 18 (childLH e24ThetaAboveRoot) = true := + adaptiveCoverCheck_succ_of_children 17 (childLH e24ThetaAboveRoot) + e24KC2ThetaAboveNode10 e24KC2ThetaAboveNode11 e24KC2ThetaAboveNode12 e24KC2ThetaAboveNode13 + +theorem e24KC2ThetaAboveNode2 : + adaptiveCoverCheck 18 (childHL e24ThetaAboveRoot) = true := + adaptiveCoverCheck_succ_of_children 17 (childHL e24ThetaAboveRoot) + e24KC2ThetaAboveNode20 e24KC2ThetaAboveNode21 e24KC2ThetaAboveNode22 e24KC2ThetaAboveNode23 + +theorem e24KC2ThetaAboveNode3 : + adaptiveCoverCheck 18 (childHH e24ThetaAboveRoot) = true := + adaptiveCoverCheck_succ_of_children 17 (childHH e24ThetaAboveRoot) + e24KC2ThetaAboveNode30 e24KC2ThetaAboveNode31 e24KC2ThetaAboveNode32 e24KC2ThetaAboveNode33 + +theorem e24KC2ThetaAboveNodeROOT : + adaptiveCoverCheck 19 e24ThetaAboveRoot = true := + adaptiveCoverCheck_succ_of_children 18 e24ThetaAboveRoot + e24KC2ThetaAboveNode0 e24KC2ThetaAboveNode1 e24KC2ThetaAboveNode2 e24KC2ThetaAboveNode3 + +theorem e24ThetaAboveKernelCheck : + adaptiveCoverCheck 19 e24ThetaAboveRoot = true := + e24KC2ThetaAboveNodeROOT + +end PartE +end GerverSofa + +end + +end + +end + +section + +/-! +# Gerver Sofa / Kernel Only / Part E / E24KC6Kernel Final Closure +-/ + +@[expose] public section + +noncomputable section + +namespace GerverSofa +namespace PartE + +theorem deepMindABPhiTheta_existsUnique : + ∃! ABphiTheta : ℝ × ℝ × ℝ × ℝ, + DeepMindABPhiThetaSpec + ABphiTheta.1 ABphiTheta.2.1 ABphiTheta.2.2.1 ABphiTheta.2.2.2 := + deepMindABPhiTheta_existsUnique_of_alignedChecks + e24PhiBelowKernelCheck + e24PhiAboveKernelCheck + e24ThetaBelowKernelCheck + e24ThetaAboveKernelCheck + +end PartE +end GerverSofa + +end + +end + +end + +end + +end + +end diff --git a/LeanPool/projects.yml b/LeanPool/projects.yml index 0214805fce..637c3322bb 100644 --- a/LeanPool/projects.yml +++ b/LeanPool/projects.yml @@ -1,4 +1,65 @@ projects: + - slug: moving-sofa + title: Optimality of Gerver's sofa + summary: >- + Formalizes Baek's solution of the moving sofa problem: Gerver's sofa attains + the supremum of the areas of closed connected shapes that can move continuously + around a right-angled corner in a unit-width hallway. Includes certified Gerver + parameters, admissibility, convex cap geometry, Stieltjes curve area, Jordan + separation, polygon approximation, and the concave quadratic upper bound. + branch: convex geometry + entry_module: LeanPool.MovingSofa + authors: + - Dean Cureton + - Dawid Trela + - Rado Kirov + - Kirill Alkhimov + source: + title: Optimality of Gerver's Sofa + authors: + - Jineon Baek + arxiv: '2411.19826' + url: https://github.com/deancureton/MovingSofa/tree/4d5569131940815f47a9ccf3e90a4c5043c56127 + github_repo: deancureton/MovingSofa + commit: 4d5569131940815f47a9ccf3e90a4c5043c56127 + license: Apache-2.0 + status: verified + provenance: AI + main_declarations: + - MovingSofa.sofaConstant_eq_volume_gerversSofa + main_results: + - declaration: MovingSofa.sofaConstant_eq_volume_gerversSofa + informal: >- + The supremum, in extended nonnegative real numbers, of the areas of all + admissible moving sofas equals the area of the explicitly defined Gerver sofa. + source_ref: >- + Baek, Optimality of Gerver's Sofa, Theorem 1.1. Upstream Lean completion + a0753860f1d2b4424e059c35e64ad611be71a415 (2026-09-20 10:55:24 UTC), announced + 2026-09-20 18:42:40 UTC at https://x.com/deancureton/status/2101743865392926967. + The imported commit has identical Lean sources; its later change is documentation only. + - declaration: MovingSofa.GerversSofa.ABφθSpec.existsUnique + informal: >- + Gerver's four defining equations have exactly one quadruple of parameters + with A and B nonnegative and 0 ≤ φ ≤ θ ≤ π/4. + source_ref: >- + Romik, Differential equations and exact solutions in the moving sofa problem, + equations (1)-(4), arXiv:1606.08111. The GerverSofaLean v1.1.0 release archive + (MIT, Dawid Trela) has SHA-256 + 7c496150f709ac709ae01f4836e9a702a18f752450efa69f15cf44264c0c2f77. + - declaration: MovingSofa.isMovingSofa_gerversSofa + informal: >- + Gerver's sofa is closed and connected and admits a continuous rigid motion + from the horizontal arm to the vertical arm, starting at the identity and + remaining within the unit-width hallway throughout. + tags: + - convex-geometry + - moving-sofa-problem + - geometric-optimization + - interval-arithmetic + msc: + - 52A40 + - 52A10 + - 49Q10 - slug: krohn-rhodes title: Aperiodic and simple-group wreath-division towers summary: >-